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:
@@ -289,6 +289,12 @@ func CreateProvider(cfg *config.Config) (LLMProvider, error) {
|
||||
apiKey = cfg.Providers.VLLM.APIKey
|
||||
apiBase = cfg.Providers.VLLM.APIBase
|
||||
}
|
||||
case "claude-cli", "claudecode", "claude-code":
|
||||
workspace := cfg.Agents.Defaults.Workspace
|
||||
if workspace == "" {
|
||||
workspace = "."
|
||||
}
|
||||
return NewClaudeCliProvider(workspace), nil
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user