SPB Git

spb/zyquo-agent Public MIT

The autonomous agent that actually operates your Mac — plans, runs real commands, verifies its own work.

Swift 94.7% Shell 4.1% Python 0.7% Makefile 0.5%
2.0 KB · 64 lines swift
Raw Blame History
1//2//  ChatParameters.swift3//  Zyquo Agent4//5//  Author: Simon-Pierre Boucher6//  Mail: contact@spboucher.ai7//8//  Shared value types extracted from Zyquo Cloud's Conversation.swift9//  (docs/PROVIDER-REUSE.md §6). Cloud's Conversation itself is superseded by10//  Zyquo Agent's Task model (Phase 2 Models/), which owns these parameters.11//1213import Foundation1415/// Per-task generation parameters. `nil` means "provider default" and the16/// parameter is omitted from the request entirely.17struct ChatParameters: Codable, Hashable {18    var temperature: Double?19    var topP: Double?20    var maxTokens: Int?21    var frequencyPenalty: Double?22    var presencePenalty: Double?23    /// "low" / "medium" / "high" for models supporting reasoning_effort.24    var reasoningEffort: String?25    /// Explicit thinking toggle for Anthropic/Qwen-style models.26    var thinkingEnabled: Bool?27}2829/// A reusable configuration: system prompt + preferred model + parameters.30/// Zyquo Agent adds `safetyMode` — the safety default a persona applies to31/// new tasks (nil = keep the app default).32struct Persona: Codable, Identifiable, Hashable {33    let id: UUID34    var name: String35    /// SF Symbol name for the persona glyph.36    var symbolName: String37    var systemPrompt: String38    var modelID: String?39    var provider: ProviderID?40    var parameters: ChatParameters41    /// Default safety mode applied when a new task adopts this persona.42    var safetyMode: SafetyMode?4344    init(45        id: UUID = UUID(),46        name: String,47        symbolName: String = "person.crop.circle",48        systemPrompt: String,49        modelID: String? = nil,50        provider: ProviderID? = nil,51        parameters: ChatParameters = ChatParameters(),52        safetyMode: SafetyMode? = nil53    ) {54        self.id = id55        self.name = name56        self.symbolName = symbolName57        self.systemPrompt = systemPrompt58        self.modelID = modelID59        self.provider = provider60        self.parameters = parameters61        self.safetyMode = safetyMode62    }63}64