v0.3.0 -> v0.4.0
Summary
Add four built-in API tools (weather, stock, news, HTTP) and a JSON-driven dynamic API adapter, alongside a Skill auto-matching engine and patch_edit tool. Internally, all provider packages migrate to a provider/ subdirectory, the output layer shifts from io.Writer to an event channel model, and file tools are reorganized into a dedicated internal/tools/file/ subpackage.
翻譯
新增四個內建 API 工具(天氣、股票、新聞、HTTP)與 JSON 驅動的動態 API 擴展套件,同時加入 Skill 自動匹配引擎與 patch_edit 工具。內部重構方面,所有 provider 套件遷移至 provider/ 子目錄,輸出層從 io.Writer 改為 Event Channel 模型,檔案工具也整理至獨立的 internal/tools/file/ 子套件。
Changes
FEAT
- Add
fetch_weathertool for real-time weather conditions and multi-day forecasts via wttr.in, with automatic XML/JSON response parsing - Add
fetch_yahoo_financetool for stock quotes and candlestick data (interval:1m–1wk, range:1d–max) - Add
fetch_google_rsstool for Google News RSS search with deduplication and locale/time-range filtering - Add
apiAdapterpackage enabling JSON-config-driven dynamic API tool loading — extend built-in tools without modifying source code - Add
patch_edittool for precise first-match string replacement, safer than full file rewrite - Add Skill auto-matching engine: LLM selects the best installed Skill from user input; falls back to tool-only mode when no match found
- Add dynamic
.gitignore-style exclude file parsing and correct**wildcard handling inglob_files
翻譯
- 新增
fetch_weather工具,透過 wttr.in 取得即時天氣與多日預報,自動解析 XML/JSON 回應格式 - 新增
fetch_yahoo_finance工具,取得股票報價與 K 線資料(interval:1m–1wk,range:1d–max) - 新增
fetch_google_rss工具,支援 Google News RSS 搜尋、去重、語言與時間範圍篩選 - 新增
apiAdapter套件,透過 JSON 設定檔動態載入 API 工具,無需修改原始碼即可擴展內建工具 - 新增
patch_edit工具,精確替換檔案中的第一個匹配字串,比全檔覆寫更安全 - 新增 Skill 自動匹配引擎:LLM 從已安裝的 Skill 中自動選擇最符合需求的項目;無匹配時降級至純工具模式
- 新增動態
.gitignore風格的排除檔解析機制,並修正glob_files對**萬用字元的處理邏輯
REFACTOR
- Migrate all provider packages (Claude, OpenAI, Copilot, Gemini, Nvidia) from flat
internal/agents/intointernal/agents/provider/subdirectory - Replace
io.Writeroutput stream with structured Event Channel model (internal/agents/types/event.go) for real-time streaming of text, tool calls, results, and errors - Reorganize monolithic
internal/tools/file.gointointernal/tools/file/subpackage (readFile,writeFile,listFiles,globFiles,patchEdit,listExcludes) - Serialize googleRSS and yahooFinance output from plain text to JSON for consistent LLM-parseable responses
- Unify
POSTJson/POSTForminto a singlePOSTfunction controlled bycontentTypeparameter ininternal/utils
翻譯
- 將所有 provider 套件(Claude、OpenAI、Copilot、Gemini、Nvidia)從
internal/agents/遷移至internal/agents/provider/子目錄 - 以結構化 Event Channel 模型(
internal/agents/types/event.go)取代io.Writer輸出串流,支援文字、工具呼叫、結果與錯誤的即時串流 - 將單體
internal/tools/file.go拆分為internal/tools/file/子套件(readFile、writeFile、listFiles、globFiles、patchEdit、listExcludes) - 將 googleRSS 與 yahooFinance 的格式化輸出從純文字重構為 JSON 序列化,確保 LLM 能一致解析
- 將
internal/utils中的POSTJson/POSTForm合併為以contentType參數控制格式的統一POST函式
REMOVE
- Remove
internal/agents/sysPrompt.md(replaced by structured prompt directoryinternal/agents/prompt/) - Remove
internal/tools/file.go(split intointernal/tools/file/subpackage) - Remove
internal/tools/tools.json(moved to embeddedinternal/tools/embed/tools.json)
翻譯
- 移除
internal/agents/sysPrompt.md(由結構化 prompt 目錄internal/agents/prompt/取代) - 移除
internal/tools/file.go(已拆分為internal/tools/file/子套件) - 移除
internal/tools/tools.json(已移至嵌入式internal/tools/embed/tools.json)
ADD
- Add
internal/agents/prompt/directory withsysPrompt.md,sysPromptBase.md,skillSelector.md - Add embedded config files:
internal/tools/embed/commands.json,internal/tools/embed/tools.json,internal/tools/file/embed/exclude.json - Add
internal/tools/apiAdapter/example.jsonas reference template for custom API definitions - Add
internal/tools/types/executor.gofor shared executor type definitions
翻譯
- 新增
internal/agents/prompt/目錄,包含sysPrompt.md、sysPromptBase.md、skillSelector.md - 新增嵌入式設定檔:
internal/tools/embed/commands.json、internal/tools/embed/tools.json、internal/tools/file/embed/exclude.json - 新增
internal/tools/apiAdapter/example.json作為自訂 API 定義的參考範本 - 新增
internal/tools/types/executor.go,統一 executor 型別定義
STYLE
- Standardize error message format to caller-prefix style across all provider packages and tool executor
翻譯
- 統一所有 provider 套件與工具執行器的 error message 格式為呼叫點前綴風格
Files Changed
| File | Status | Tag |
|---|---|---|
internal/tools/apis/weatherReport/fetch.go |
Added | FEAT |
internal/tools/apis/yahooFinance/fetch.go |
Added | FEAT |
internal/tools/apis/googleRSS/fetch.go |
Added | FEAT |
internal/tools/apiAdapter/execute.go |
Added | FEAT |
internal/tools/apiAdapter/request.go |
Added | FEAT |
internal/tools/apiAdapter/send.go |
Added | FEAT |
internal/tools/apiAdapter/translate.go |
Added | FEAT |
internal/tools/apiAdapter/translator.go |
Added | FEAT |
internal/tools/file/patchEdit.go |
Added | FEAT |
internal/tools/file/globFiles.go |
Added | FEAT |
internal/tools/file/listExcludes.go |
Added | FEAT |
internal/agents/prompt/skillSelector.md |
Added | FEAT |
internal/agents/exec.go |
Modified | REFACTOR |
internal/agents/types/event.go |
Added | REFACTOR |
internal/agents/provider/claude/new.go |
Renamed | REFACTOR |
internal/agents/provider/claude/send.go |
Renamed | REFACTOR |
internal/agents/provider/copilot/login.go |
Renamed | REFACTOR |
internal/agents/provider/copilot/new.go |
Renamed | REFACTOR |
internal/agents/provider/copilot/refresh.go |
Renamed | REFACTOR |
internal/agents/provider/copilot/send.go |
Renamed | REFACTOR |
internal/agents/provider/gemini/new.go |
Renamed | REFACTOR |
internal/agents/provider/gemini/send.go |
Renamed | REFACTOR |
internal/agents/provider/nvidia/new.go |
Renamed | REFACTOR |
internal/agents/provider/nvidia/send.go |
Renamed | REFACTOR |
internal/agents/provider/openai/new.go |
Renamed | REFACTOR |
internal/agents/provider/openai/send.go |
Renamed | REFACTOR |
internal/tools/file/readFile.go |
Added | REFACTOR |
internal/tools/file/writeFile.go |
Added | REFACTOR |
internal/tools/file/listFiles.go |
Added | REFACTOR |
internal/tools/executor.go |
Modified | REFACTOR |
internal/utils/utils.go |
Modified | REFACTOR |
internal/agents/sysPrompt.md |
Deleted | REMOVE |
internal/tools/file.go |
Deleted | REMOVE |
internal/tools/tools.json |
Deleted | REMOVE |
internal/agents/prompt/sysPrompt.md |
Added | ADD |
internal/agents/prompt/sysPromptBase.md |
Added | ADD |
internal/tools/embed/commands.json |
Added | ADD |
internal/tools/embed/tools.json |
Added | ADD |
internal/tools/file/embed/exclude.json |
Added | ADD |
internal/tools/apiAdapter/example.json |
Added | ADD |
internal/tools/types/executor.go |
Added | ADD |
cover.png |
Added | ADD |
cmd/cli/main.go |
Modified | STYLE |
README.md |
Modified | DOC |
README.zh.md |
Modified | DOC |
doc.md |
Added | DOC |
doc.zh.md |
Added | DOC |
go.mod |
Modified | CHORE |
go.sum |
Modified | CHORE |
.gitignore |
Modified | CHORE |
Generated by SKILL