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%
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