fix(athena): write council prompt to .sisyphus/tmp/, switch to allow-list permissions
Council members now use an allow-list (read, grep, glob, lsp_*, ast_grep_search) instead of a deny-list. Prompt file moved from /tmp/ to .sisyphus/tmp/ so no external_directory permission is needed. COUNCIL_MEMBER_PROMPT is included in the temp file for self-contained council member instructions.
This commit is contained in:
@@ -35,7 +35,7 @@ Agent factories following `createXXXAgent(model) → AgentConfig` pattern. Each
|
||||
| Atlas | task, call_omo_agent |
|
||||
| Momus | write, edit, task |
|
||||
| Athena | write, edit, call_omo_agent |
|
||||
| Council-Member | write, edit, task, call_omo_agent, switch_agent, background_wait, prepare_council_prompt |
|
||||
| Council-Member | ALL except read, grep, glob, lsp_*, ast_grep_search (allow-list) |
|
||||
|
||||
## STRUCTURE
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import type { AgentConfig } from "@opencode-ai/sdk"
|
||||
import type { AgentMode } from "../types"
|
||||
import { createAgentToolRestrictions } from "../../shared/permission-compat"
|
||||
import { createAgentToolAllowlist } from "../../shared"
|
||||
import { applyModelThinkingConfig } from "./model-thinking-config"
|
||||
|
||||
const MODE: AgentMode = "subagent"
|
||||
|
||||
const COUNCIL_MEMBER_PROMPT = `You are an independent code analyst in a multi-model analysis council. Your role is to provide thorough, evidence-based analysis.
|
||||
export const COUNCIL_MEMBER_PROMPT = `You are an independent code analyst in a multi-model analysis council. Your role is to provide thorough, evidence-based analysis.
|
||||
|
||||
## Your Role
|
||||
- You are one of several AI models analyzing the same question independently
|
||||
@@ -25,14 +25,16 @@ const COUNCIL_MEMBER_PROMPT = `You are an independent code analyst in a multi-mo
|
||||
5. Be concise but thorough — quality over quantity`
|
||||
|
||||
export function createCouncilMemberAgent(model: string): AgentConfig {
|
||||
const restrictions = createAgentToolRestrictions([
|
||||
"write",
|
||||
"edit",
|
||||
"task",
|
||||
"call_omo_agent",
|
||||
"switch_agent",
|
||||
"background_wait",
|
||||
"prepare_council_prompt",
|
||||
// Allow-list: only read-only analysis tools. Everything else is denied via `*: deny`.
|
||||
const restrictions = createAgentToolAllowlist([
|
||||
"read",
|
||||
"grep",
|
||||
"glob",
|
||||
"lsp_goto_definition",
|
||||
"lsp_find_references",
|
||||
"lsp_symbols",
|
||||
"lsp_diagnostics",
|
||||
"ast_grep_search",
|
||||
])
|
||||
|
||||
const base = {
|
||||
|
||||
Reference in New Issue
Block a user