Skip to content

Phase 6: cmd/ask CLI #7

@cjimti

Description

@cjimti

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.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions