feat: add cli-based LLM provider

Add ClaudeCliProvider that executes the local CLI as a subprocess,
enabling PicoClaw to leverage advanced capabilities (MCP tools,
workspace awareness, session management) through any messaging channel.

- Implement LLMProvider interface via subprocess execution
- Support --system-prompt, --model, --output-format json flags
- Parse real v2.x JSON response format including usage tokens
- Handle error responses, stderr, context cancellation
- Register "claude-cli", "claude-code", "claudecode" aliases in CreateProvider
- 56 unit tests with mock scripts + 3 integration tests against real binary
- 100% coverage on all functions except stripToolCallsJSON (85.7%)
This commit is contained in:
Leandro Barbosa
2026-02-12 11:46:56 -03:00
parent a9a7a89c07
commit f6362ce7b1
3 changed files with 1390 additions and 0 deletions

File diff suppressed because it is too large Load Diff