Commit Graph

469 Commits

Author SHA1 Message Date
yinwm e1583f3b13 refactor: simplify legacy_provider.go from 349 to 49 lines
- Move OAuth helper functions to factory_provider.go
- Add auto-migration in LoadConfig: old providers -> model_list
- Add Workspace field to ModelConfig for CLI-based providers
- Fix OAuth handling to use auth store instead of raw APIKey
- Update tests to use new model_list configuration format

This eliminates the giant switch-case in legacy_provider.go,
achieving the goal of "zero-code provider addition" from the
design document (issue #283).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 01:30:19 +08:00
yinwm ef7078a356 refactor: reorganize commands and provider architecture
Refactor command handlers into separate files to improve code organization
and maintainability. Each command (agent, auth, cron, gateway, migrate,
onboard, skills, status) now has its own dedicated file.

Restructure provider creation to support new model_list configuration
system that enables zero-code addition of OpenAI-compatible providers.
Move legacy provider logic to separate file for backward compatibility.

Move configuration functions from config.go to separate files
(defaults.go, migration.go) for better organization.
2026-02-19 01:03:34 +08:00
yinwm a73d8e1a16 feat: add model_list configuration for zero-code provider addition
- Add ModelConfig struct with protocol prefix support (openai/, anthropic/, etc.)
- Implement GetModelConfig with round-robin load balancing
- Add CreateProviderFromConfig factory for protocol-based routing
- Add ModelRegistry for thread-safe endpoint selection
- Maintain full backward compatibility with legacy providers config
- Update README.md and README.zh.md with model_list documentation
- Add migration guide at docs/migration/model-list-migration.md

Supported protocols: openai, anthropic, antigravity, claude-cli, codex-cli,
github-copilot, openrouter, groq, deepseek, cerebras, qwen, zhipu, gemini

Closes #283

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 23:26:00 +08:00
Leandro Barbosa b1e3b11a5d Merge pull request #304 from mymmrac/golangci-lint
feat(linters): Added golangci-lint config & CI job
2026-02-18 12:16:58 -03:00
zepan 1b3da2ca29 1. update wechat group qrcode 2026-02-18 23:03:24 +08:00
Leandro Barbosa 1eb6b83b8f Merge pull request #418 from DanielVenturini/fix/add-missing-accentuation-in-ptbr-readme
docs(readme): add brazilian accentuation on pt-br README
2026-02-18 11:52:48 -03:00
Leandro Barbosa ab805fd5e3 Merge pull request #131 from Leeaandrob/feat/multi-agent-routing
feat: model fallback chain + multi-agent routing
2026-02-18 11:48:37 -03:00
Leandro Barbosa 447c17aeb1 merge: sync upstream/main (PR #213) into feat/multi-agent-routing
Resolve conflicts in pkg/providers/types.go and pkg/agent/loop.go:
- types.go: use protocoltypes aliases from PR #213, keep fallback types
- loop.go: drop old single-agent createToolRegistry (replaced by multi-agent pattern)

Refactor to align with PR #213 patterns:
- instance.go: use NewExecToolWithConfig (accept full config for deny patterns)
- registry.go: pass full config to NewAgentInstance
- loop.go: add Perplexity web search options to registerSharedTools
2026-02-18 11:39:14 -03:00
Artem Yadelskyi df52d4ad01 feat(linters): Fix linter 2026-02-18 16:26:35 +02:00
Artem Yadelskyi ef8965048a Merge branch 'main' into golangci-lint 2026-02-18 16:26:18 +02:00
Leandro Barbosa e61786cc6b Merge pull request #213 from jmahotiedu/refactor/provider-protocol-122
Refactor providers by protocol family (discussion #122)
2026-02-18 11:25:01 -03:00
Artem Yadelskyi b88f4c9ab5 feat(linters): Fix linter 2026-02-18 16:24:55 +02:00
Artem Yadelskyi 272cabc627 feat(linters): Fix version 2026-02-18 16:24:30 +02:00
Artem Yadelskyi d6f052f6b1 feat(linters): Fixed golangci-lint version 2026-02-18 16:23:31 +02:00
Artem Yadelskyi 24e35a199b Merge branch 'main' into golangci-lint
# Conflicts:
#	.github/workflows/release.yml
2026-02-18 16:22:43 +02:00
Leandro Barbosa 8a3be993cd Merge remote-tracking branch 'upstream/main' into refactor/provider-protocol-122 2026-02-18 11:19:09 -03:00
Daniel Venturini f8bd883387 docs(readme): add brazilian accentuation on pt-br README 2026-02-18 11:11:41 -03:00
Leandro Barbosa 87aee78900 Merge pull request #337 from quybquang/docs/add-vietnamese-readme
docs: add Vietnamese README (README.vi.md)
2026-02-18 11:11:31 -03:00
Leandro Barbosa 2276bd149e merge: sync upstream/main, wire WebSearch through factory
Merge upstream/main into refactor/provider-protocol-122.
Resolve http_provider.go conflict (keep thin delegate).
Wire OpenAIProviderConfig.WebSearch through providerSelection
and into CodexProvider for codex-auth and codex-cli-token paths.
2026-02-18 11:09:18 -03:00
AlbertBui010 1e88df3ea8 Merge branch 'upstream/main' into docs/add-vietnamese-readme
Resolved conflicts in README.md, README.ja.md, and README.zh.md by keeping both Portuguese (upstream) and Vietnamese (local) language links.
2026-02-18 20:01:42 +07:00
lxowalle eda6e37332 feat: Support modifying the command filtering list of the exec tool (#410) 2026-02-18 19:31:15 +08:00
harshbansal7 02b5811b95 add support for \r as well 2026-02-18 16:58:27 +05:30
harshbansal7 994ec72d91 Fix parsing of SKILL.md file frontmatter - regex 2026-02-18 16:55:20 +05:30
Leandro Barbosa b77a40315e Merge pull request #218 from mattn/fix-readme-ja
Fix Japanese translation
2026-02-18 07:58:06 -03:00
Zenix 3390576eea Feature/websearch OpenAI (#118)
* feature: add web search for codex models

* fix: use more elegant way to solve the issue.
2026-02-18 16:30:30 +08:00
lxowalle 193fbcab11 docs: update PR template 2026-02-18 16:01:41 +08:00
lxowalle 01d694b998 fix: Add comprehensive command injection and system abuse prevention patterns (#401)
* Add comprehensive command injection and system abuse prevention patterns

* fix: Container running as root
2026-02-18 15:33:34 +08:00
Leandro Barbosa 8807d8254f Merge pull request #362 from blib/feat-bin-size
chore(build): reduce binary size by ~8 MB
2026-02-17 18:38:18 -03:00
Leandro Barbosa eeac7c7a67 Merge pull request #385 from Leeaandrob/docs/add-portuguese-br-readme
docs: add Brazilian Portuguese README (README.pt-br.md)
2026-02-17 17:56:36 -03:00
Leandro Barbosa f820da42d7 docs: add Brazilian Portuguese README (README.pt-br.md)
Add complete pt-BR translation of the README and update language
navigation links across all existing READMEs (English, Chinese,
Japanese) to include the Portuguese option.
2026-02-17 17:52:28 -03:00
Artem Yadelskyi 0785a05a48 Merge branch 'main' into golangci-lint 2026-02-17 20:20:22 +02:00
Luna Reed acac1972e6 fix(exec): terminate process tree on timeout 2026-02-18 02:01:29 +08:00
AlbertBui010 8428446d69 docs: fix allow_from typo in config examples 2026-02-18 00:17:56 +07:00
QUY BUI QUANG 2ee2858912 Merge branch 'main' into docs/add-vietnamese-readme 2026-02-17 23:46:19 +07:00
AlbertBui010 b83304845e docs: resolve conflict in README.ja.md 2026-02-17 23:39:17 +07:00
yinwm 5d1669ecc4 Merge PR #343: Add Google Antigravity provider and harden tool-call compatibility 2026-02-18 00:13:24 +08:00
Jared Mahotiere c4cbb5fb35 providers: finalize PR213 review fixes
Phase 1: centralize protocol message/tool/response types in protocoltypes and keep compatibility aliases in providers and protocol packages.

Phase 1: preserve HTTPProvider constructor compatibility and route Anthropic api_base through factory auth/provider constructors with base URL normalization.

Phase 2: expand provider routing/auth tests (deepseek/nvidia/shengsuanyun, codex/claude oauth/codex-cli) and add openai_compat + anthropic coverage for proxy transport, model normalization, numeric option coercion, token-source refresh, and base URL behavior.

Phase 3: apply gofmt and validate with Dockerized tests (go test ./pkg/providers/... ./pkg/migrate and go test ./...).
2026-02-17 11:13:10 -05:00
Leandro Barbosa ba47892bcf Merge pull request #327 from humaid0x/fix-japanese-readme-link
docs: add missing Chinese language link to Japanese README
2026-02-17 13:12:47 -03:00
Leandro Barbosa 4fde0175cf Merge pull request #227 from mattn/fix-shadowing-running
Fix shadowing field runnnig
2026-02-17 12:58:48 -03:00
yinwm 6913edbb5b Merge PR #368: Add Volcengine (doubao) provider 2026-02-17 23:51:40 +08:00
yinwm 6992012737 Merge PR #333: Add Cerebras provider 2026-02-17 23:41:19 +08:00
yinwm de4ef9a8be Merge PR #365: Add Qwen provider 2026-02-17 23:37:55 +08:00
likeaturtle bb0eadded0 Optimize ./picoclaw status output to support all config file configurations. 2026-02-17 23:29:27 +08:00
zenix.huang 0d16525fab fix: codex tool call 2026-02-17 22:56:31 +08:00
zenix.huang 4cd3f99dd6 fix: remove max_tokens 2026-02-17 22:56:31 +08:00
likeaturtle 6cd419b6e2 Fix the case sensitivity issue when automatically recognizing VolcEngine LLM model names. 2026-02-17 22:49:43 +08:00
mrbeandev 84110aa408 fix(antigravity): preserve thought signature on tool call parts 2026-02-17 20:05:47 +05:30
mrbeandev 99c32714f1 fix(antigravity): sanitize invalid tool-call history ordering 2026-02-17 20:05:41 +05:30
mrbeandev caf3913347 fix(antigravity): normalize tool calls to avoid empty function names 2026-02-17 20:05:35 +05:30
mrbeandev d1655d5996 fix(antigravity): update default model from gemini-3-flash-preview to gemini-3-flash 2026-02-17 20:05:29 +05:30