Commit Graph

288 Commits

Author SHA1 Message Date
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
lxowalle eda6e37332 feat: Support modifying the command filtering list of the exec tool (#410) 2026-02-18 19:31:15 +08:00
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
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
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
Jared Mahotiere e3c246a36f Merge origin/main into refactor/provider-protocol-122 2026-02-17 09:28:56 -05:00
Boris Bliznioukov 2d876eaa98 feat(goreleaser): enhance build flags with versioning and commit info
Signed-off-by: Boris Bliznioukov <blib@mail.com>
2026-02-17 15:00:06 +01:00
Boris Bliznioukov 2d758d714f feat(goreleaser): add 'stdjson' tag to picoclaw build configuration
Signed-off-by: Boris Bliznioukov <blib@mail.com>
2026-02-17 14:55:37 +01:00
lxowalle 920e30a241 fix:pr-272 reverted the changes from pr-227 (#361) 2026-02-17 21:31:54 +08:00
Boris Bliznioukov ad747e8e89 fix(Makefile): update LDFLAGS and GOFLAGS for optimized build size
Signed-off-by: Boris Bliznioukov <blib@mail.com>
2026-02-17 14:27:03 +01:00
daming大铭 7b9b8104c8 Merge pull request #225 from yinwm/feat/cron-exec-timeout-config
feat(cron): add configurable execution timeout for cron jobs
2026-02-17 21:12:59 +08:00
yinwm 881999aceb refactor(shell): interpret zero timeout as unlimited execution
Replace unconditional WithTimeout usage with conditional context creation
based on timeout configuration. Zero values now bypass timeout enforcement,
using WithCancel for graceful cancellation while preserving existing timeout
behavior for positive values. Simplifies CronTool initialization by removing
unnecessary conditional timeout assignment.
2026-02-17 21:10:20 +08:00
Hua Audio f929268ab2 feat: Add Perplexity search provider integration (#138)
* feat: Add Perplexity search provider integration

- Add PerplexityConfig struct to config package
- Add PerplexitySearchProvider implementing SearchProvider interface
- Update WebSearchTool to support Perplexity with priority system (Perplexity > Brave > DuckDuckGo)
- Update agent loop to pass Perplexity config options
- Update config.example.json with Perplexity configuration template
- Uses Perplexity's 'sonar' model for web search capabilities

* Edit config example

* make fmt

---------

Co-authored-by: Hua <zhangmikoto@gmail.com>
2026-02-17 21:02:56 +08:00
yinwm 684e7413e1 Merge remote-tracking branch 'origin/main' into feat/cron-exec-timeout-config 2026-02-17 20:53:31 +08:00
zepan da79c201c7 1. fix typo v0.1.2 2026-02-17 18:03:02 +08:00
zepan 5fb2721d22 1. add android phone termux quick guide 2026-02-17 18:01:39 +08:00
zepan 951b05d255 1. add AI Code Generation selection in pr template 2026-02-17 17:15:40 +08:00
zepan ac4b16dfb4 1. rename doc to docs 2026-02-17 16:51:38 +08:00
zepan 0fadbcd340 1. add roadmap.md 2026-02-17 16:03:07 +08:00
Guoguo a961a2df87 fix(ci): use env var for release tag (#342)
Signed-off-by: Guoguo <i@qwq.trade>
2026-02-17 14:32:51 +08:00
zepan 57dac394c5 update pr template 2026-02-17 09:30:30 +08:00
Humaid Koreshi ff3c875b3f docs: add missing Chinese language link to Japanese README 2026-02-17 02:15:59 +06:00
zepan 13e4028d42 1. update wechat group qrcode 2. publish roadmap 2026-02-16 20:10:20 +08:00
Caize Wu e7f15afdd4 Update issue templates 2026-02-16 19:17:27 +08:00
Tzufucius 8d757fbb6f Feat issue 183 (#189)
* feat: add slash command support (e.g., /show model, /help)

* style: fix code formatting

* feat: implement robust context compression and error recovery with user notifications
2026-02-16 16:30:54 +08:00
Goksu Ceylan e3f65fc3d6 fix(security): block critical symlink workspace escape (#188) 2026-02-16 16:20:35 +08:00
is-Xiaoen 5c321a90de fix: tighten file perms and enforce Slack ACL checks (#186)
- write config and cron store with 0600 instead of 0644
- check allow list in Slack slash commands and app mentions
- pass workspace restrict flag to cron exec tool

Closes #179
2026-02-16 16:06:39 +08:00
lxowalle 17685da584 feat: update the make deps logic to prevent the project from frequently updating dependency package versions (#277) 2026-02-16 15:48:02 +08:00
WÁNG Xuěruì 159a954122 build: support building for linux/loong64 (#272)
This platform has a growing desktop and embedded user base, and is fully
supported by Go. The only necessary change is the mapping between
`uname -m` output and GOARCH.

Due to non-technical reasons [1], there is currently no Docker official
image that provides linux/loong64 support, so Docker-based builds are
not included in this commit for now.

[1]: https://github.com/docker-library/official-images/issues/16404
2026-02-16 15:08:27 +08:00
mattn a371d53438 Prevent panic on publish after MessageBus is closed (#223) 2026-02-16 15:04:25 +08:00
Avisek Ray 9d5728ec5b feat: implement structured Telegram command handling with a dedicated command service and telegohandler integration. (#164) 2026-02-16 14:20:16 +08:00
Huaaudio 32cb8fdc12 Feat: Discord message length check and auto split (#143)
* feat: discord message auto split

* make fmt

* chore: remove failing discord_test.go

---------

Co-authored-by: Hua <zhangmikoto@gmail.com>
2026-02-16 13:39:26 +08:00
fahadahmadansari111 341dbd3007 Add health check endpoints (/health and /ready) for container orchestration liveness and readiness probes. (#104)
* added health endpoint

* formatted files

---------

Co-authored-by: lxowalle <83055338+lxowalle@users.noreply.github.com>
2026-02-16 11:53:11 +08:00
Zenix 0cb9387cf8 fix: codex agent 400 error (#102) 2026-02-16 11:46:02 +08:00
Leandro Barbosa e77b0a6755 feat: add Codex CLI provider for subprocess integration (#80)
* feat: add Codex CLI provider for OpenAI subprocess integration

Add CodexCliProvider that wraps `codex exec --json` as a subprocess,
analogous to the existing ClaudeCliProvider pattern. This enables using
OpenAI's Codex CLI tool as a local LLM backend.

- CodexCliProvider: subprocess wrapper parsing JSONL event stream
- Credential reader for ~/.codex/auth.json with token expiry detection
- Factory integration: provider "codex-cli" and auth_method "codex-cli"
- Fix tilde expansion in workspace path for CLI providers
- 37 unit tests covering parsing, prompt building, credentials, and mocks

* fix: add tool call extraction to Codex CLI provider

- Extract shared tool call parsing into tool_call_extract.go
  (extractToolCallsFromText, stripToolCallsFromText, findMatchingBrace)
- Both ClaudeCliProvider and CodexCliProvider now share the same
  tool call extraction logic for PicoClaw-specific tools
- Fix cache token accounting: include cached_input_tokens in total
- Add 2 new tests for tool call extraction from JSONL events
- Update existing tests for corrected token calculations

* fix(docker): update Go version to match go.mod requirement

Dockerfile used golang:1.24-alpine but go.mod requires go >= 1.25.7.
This caused Docker builds to fail on all branches with:
  "go: go.mod requires go >= 1.25.7 (running go 1.24.13)"

Update to golang:1.25-alpine to match the project requirement.

* fix: handle codex CLI stderr noise without losing valid stdout

Codex writes diagnostic messages to stderr (e.g. rollout errors) which
cause non-zero exit codes even when valid JSONL output exists on stdout.
Parse stdout first before checking exit code to avoid false errors.

* style: fix gofmt formatting and update web search API in tests

- Remove trailing whitespace in web.go and base_test.go
- Update config_test.go and web_test.go for WebSearchToolOptions API
2026-02-16 11:40:17 +08:00
Guoguo a5503aea36 build: temporary disable UPX compression (#257)
Signed-off-by: Guoguo <i@qwq.trade>
2026-02-16 11:29:04 +08:00
trungtt6 cd638fff6c Add local AI ollama for security purpose (#226)
Co-authored-by: PhotoPortfolio Developer <developer@photportfolio.local>
2026-02-16 11:28:38 +08:00
Guoguo 0d18210803 ci: use goreleaser to release docker and binary (#180)
Signed-off-by: Guoguo <i@qwq.trade>
2026-02-16 10:35:31 +08:00
mattn 1d748fb742 Remove duplicate file extension in DownloadFile (#230) 2026-02-16 02:20:20 +08:00
ian c6c82b3c44 feat(skills): add validation for skill info and test cases (#231)
Add validation logic for SkillInfo to ensure name and description meet requirements
Include test cases covering various validation scenarios
Add testify dependency for testing assertions
2026-02-16 02:12:50 +08:00
Luke Milby 811e4f8728 add when picoclaw responsed to discord message will show its typing (#236) 2026-02-16 01:37:32 +08:00