Part of #1 (project bootstrap, v0.1). Blocked by #6.
Scope: the single-shot CLI binary.
Deliverables
cmd/ask/
main.go — target ~150 lines, composition only; if logic grows, push it into core
- Flags:
--model — model name passed to runtime
--mcp — named MCP config from ~/.config/plexara-agents/config.yaml, or a path
--no-router — disable toolkit narrowing
--auto-approve — bypass approval prompts (for scripted use)
--session FILE — append to or replay a session file
--json — structured event output (for piping into tooling)
--config PATH — override config location
--debug — dump assembled system prompt, narrowed tool list (with MCP descriptions), and messages to stderr before each turn
Config loader
- YAML at
~/.config/plexara-agents/config.yaml
- Schema per spec §10:
defaults.{model,provider,router,approval}
providers.<name>.{type,base_url,api_key_env}
mcp_servers.<name>.{transport,endpoint}
- Precedence: flag > env > config > built-in default; no silent overrides
Output rendering
- Default: human-readable streamed text
--json: one JSON object per event line
slog for diagnostics, JSON in pipes / text on TTY
Tests
- CLI flag/env/config precedence tests
- Output rendering snapshot tests
- End-to-end smoke test using
provider.Fake and a stub MCP
Out of scope
cmd/repl (v0.2)
- Slash commands (v0.2)
Branch
feat/bootstrap-ask
Spec reference: §9.1, §10 of the bootstrap spec in #1.
Part of #1 (project bootstrap, v0.1). Blocked by #6.
Scope: the single-shot CLI binary.
Deliverables
cmd/ask/main.go— target ~150 lines, composition only; if logic grows, push it intocore--model— model name passed to runtime--mcp— named MCP config from~/.config/plexara-agents/config.yaml, or a path--no-router— disable toolkit narrowing--auto-approve— bypass approval prompts (for scripted use)--session FILE— append to or replay a session file--json— structured event output (for piping into tooling)--config PATH— override config location--debug— dump assembled system prompt, narrowed tool list (with MCP descriptions), and messages to stderr before each turnConfig loader
~/.config/plexara-agents/config.yamldefaults.{model,provider,router,approval}providers.<name>.{type,base_url,api_key_env}mcp_servers.<name>.{transport,endpoint}Output rendering
--json: one JSON object per event lineslogfor diagnostics, JSON in pipes / text on TTYTests
provider.Fakeand a stub MCPOut of scope
cmd/repl(v0.2)Branch
feat/bootstrap-askSpec reference: §9.1, §10 of the bootstrap spec in #1.