- Replace 'as AgentConfig' casts with proper typing in agent.ts and council-member-agent.ts - Extract permission into typed variable following Sisyphus pattern - Add GPT/non-GPT model branching to council-member-agent - Use parseModelString for schema validation instead of inline logic - Add strict() to council and athena config schemas - Fix athena restriction list (remove redundant athena_council deny) - Add orchestrator logging for council execution - Update system prompt to notification-based workflow Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
37 lines
1.0 KiB
TypeScript
37 lines
1.0 KiB
TypeScript
import type { AgentConfig } from "@opencode-ai/sdk"
|
|
import type { AgentMode } from "../types"
|
|
import { isGptModel } from "../types"
|
|
import { createAgentToolRestrictions } from "../../shared/permission-compat"
|
|
|
|
const MODE: AgentMode = "subagent"
|
|
|
|
const COUNCIL_MEMBER_PROMPT =
|
|
"You are an independent code analyst in a multi-model council. Provide thorough, evidence-based analysis."
|
|
|
|
export function createCouncilMemberAgent(model: string): AgentConfig {
|
|
const restrictions = createAgentToolRestrictions([
|
|
"write",
|
|
"edit",
|
|
"task",
|
|
"call_omo_agent",
|
|
"athena_council",
|
|
])
|
|
|
|
const base = {
|
|
description:
|
|
"Independent code analyst for Athena multi-model council. Read-only, evidence-based analysis. (Council Member - OhMyOpenCode)",
|
|
mode: MODE,
|
|
model,
|
|
temperature: 0.1,
|
|
prompt: COUNCIL_MEMBER_PROMPT,
|
|
...restrictions,
|
|
}
|
|
|
|
if (isGptModel(model)) {
|
|
return { ...base, reasoningEffort: "medium" }
|
|
}
|
|
|
|
return { ...base, thinking: { type: "enabled", budgetTokens: 32000 } }
|
|
}
|
|
createCouncilMemberAgent.mode = MODE
|