pulse/opencode.json

162 lines
4.7 KiB
JSON

{
"$schema": "https://opencode.ai/config.json",
"agent": {
"build": {
"mode": "primary",
"model": "opencode/kimi-k2.5",
"prompt": "{file:./.opencode/prompts/build.txt}",
"permission": {
"edit": "allow",
"bash": {
"*": "ask",
"npm run *": "allow",
"npx vitest *": "allow",
"npx tsc *": "allow",
"git status": "allow",
"git diff *": "allow",
"git log *": "allow",
"git add *": "ask",
"git commit *": "ask",
"git push *": "ask"
}
}
},
"plan": {
"mode": "primary",
"model": "opencode/kimi-k2.5",
"temperature": 0.1,
"prompt": "{file:./.opencode/prompts/plan.txt}",
"permission": {
"edit": "deny",
"bash": "deny"
}
},
"orchestrator": {
"description": "Coordinates work across all Pulse modules. Plans tasks, delegates to module agents, owns no business logic.",
"mode": "subagent",
"model": "opencode/kimi-k2.5",
"temperature": 0.1,
"prompt": "{file:./.opencode/prompts/orchestrator.txt}",
"permission": {
"edit": "deny",
"bash": "deny",
"task": {
"*": "allow"
}
}
},
"fetcher-agent": {
"description": "Implements and maintains the fetcher module (modules/fetcher/). Handles HTTP fetching of RSS and Atom feeds.",
"mode": "subagent",
"model": "opencode/kimi-k2.5",
"temperature": 0.2,
"prompt": "{file:./.opencode/prompts/fetcher.txt}",
"permission": {
"edit": {
"modules/fetcher/**": "allow",
"interfaces/**": "ask",
"**": "deny"
},
"bash": {
"npx vitest run modules/fetcher*": "allow",
"npx tsc --noEmit": "allow",
"*": "deny"
}
}
},
"parser-agent": {
"description": "Implements and maintains the parser module (modules/parser/). Converts raw XML/Atom into FeedItem structs.",
"mode": "subagent",
"model": "opencode/kimi-k2.5",
"temperature": 0.2,
"prompt": "{file:./.opencode/prompts/parser.txt}",
"permission": {
"edit": {
"modules/parser/**": "allow",
"interfaces/**": "ask",
"**": "deny"
},
"bash": {
"npx vitest run modules/parser*": "allow",
"npx tsc --noEmit": "allow",
"*": "deny"
}
}
},
"dedup-agent": {
"description": "Implements and maintains the deduplication module (modules/dedup/). Filters already-seen feed items.",
"mode": "subagent",
"model": "opencode/kimi-k2.5",
"temperature": 0.2,
"prompt": "{file:./.opencode/prompts/dedup.txt}",
"permission": {
"edit": {
"modules/dedup/**": "allow",
"interfaces/**": "ask",
"**": "deny"
},
"bash": {
"npx vitest run modules/dedup*": "allow",
"npx tsc --noEmit": "allow",
"*": "deny"
}
}
},
"storage-agent": {
"description": "Implements and maintains the storage module (modules/storage/). Persists FeedItems to SQLite.",
"mode": "subagent",
"model": "opencode/kimi-k2.5",
"temperature": 0.2,
"prompt": "{file:./.opencode/prompts/storage.txt}",
"permission": {
"edit": {
"modules/storage/**": "allow",
"interfaces/**": "ask",
"**": "deny"
},
"bash": {
"npx vitest run modules/storage*": "allow",
"npx tsc --noEmit": "allow",
"*": "deny"
}
}
},
"formatter-agent": {
"description": "Implements and maintains the formatter module (modules/formatter/). Renders FeedItems to terminal, HTML, or JSON.",
"mode": "subagent",
"model": "opencode/kimi-k2.5",
"temperature": 0.2,
"prompt": "{file:./.opencode/prompts/formatter.txt}",
"permission": {
"edit": {
"modules/formatter/**": "allow",
"interfaces/**": "ask",
"**": "deny"
},
"bash": {
"npx vitest run modules/formatter*": "allow",
"npx tsc --noEmit": "allow",
"*": "deny"
}
}
},
"reviewer": {
"description": "Reviews code for quality, correctness, and interface compliance. Read-only.",
"mode": "subagent",
"model": "opencode/claude-sonnet-4-6",
"temperature": 0.1,
"prompt": "{file:./.opencode/prompts/reviewer.txt}",
"color": "accent",
"permission": {
"edit": "deny",
"bash": {
"npx tsc --noEmit": "allow",
"npx vitest run": "allow",
"git diff *": "allow",
"*": "deny"
}
}
}
}
}