v1.3.11

v0.4.0 Release Notes

Released


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_weather tool for real-time weather conditions and multi-day forecasts via wttr.in, with automatic XML/JSON response parsing
  • Add fetch_yahoo_finance tool for stock quotes and candlestick data (interval: 1m–1wk, range: 1d–max)
  • Add fetch_google_rss tool for Google News RSS search with deduplication and locale/time-range filtering
  • Add apiAdapter package enabling JSON-config-driven dynamic API tool loading — extend built-in tools without modifying source code
  • Add patch_edit tool 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 in glob_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/ into internal/agents/provider/ subdirectory
  • Replace io.Writer output 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.go into internal/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/POSTForm into a single POST function controlled by contentType parameter in internal/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 directory internal/agents/prompt/)
  • Remove internal/tools/file.go (split into internal/tools/file/ subpackage)
  • Remove internal/tools/tools.json (moved to embedded internal/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 with sysPrompt.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.json as reference template for custom API definitions
  • Add internal/tools/types/executor.go for 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


FileStatusTag
internal/tools/apis/weatherReport/fetch.goAddedFEAT
internal/tools/apis/yahooFinance/fetch.goAddedFEAT
internal/tools/apis/googleRSS/fetch.goAddedFEAT
internal/tools/apiAdapter/execute.goAddedFEAT
internal/tools/apiAdapter/request.goAddedFEAT
internal/tools/apiAdapter/send.goAddedFEAT
internal/tools/apiAdapter/translate.goAddedFEAT
internal/tools/apiAdapter/translator.goAddedFEAT
internal/tools/file/patchEdit.goAddedFEAT
internal/tools/file/globFiles.goAddedFEAT
internal/tools/file/listExcludes.goAddedFEAT
internal/agents/prompt/skillSelector.mdAddedFEAT
internal/agents/exec.goModifiedREFACTOR
internal/agents/types/event.goAddedREFACTOR
internal/agents/provider/claude/new.goRenamedREFACTOR
internal/agents/provider/claude/send.goRenamedREFACTOR
internal/agents/provider/copilot/login.goRenamedREFACTOR
internal/agents/provider/copilot/new.goRenamedREFACTOR
internal/agents/provider/copilot/refresh.goRenamedREFACTOR
internal/agents/provider/copilot/send.goRenamedREFACTOR
internal/agents/provider/gemini/new.goRenamedREFACTOR
internal/agents/provider/gemini/send.goRenamedREFACTOR
internal/agents/provider/nvidia/new.goRenamedREFACTOR
internal/agents/provider/nvidia/send.goRenamedREFACTOR
internal/agents/provider/openai/new.goRenamedREFACTOR
internal/agents/provider/openai/send.goRenamedREFACTOR
internal/tools/file/readFile.goAddedREFACTOR
internal/tools/file/writeFile.goAddedREFACTOR
internal/tools/file/listFiles.goAddedREFACTOR
internal/tools/executor.goModifiedREFACTOR
internal/utils/utils.goModifiedREFACTOR
internal/agents/sysPrompt.mdDeletedREMOVE
internal/tools/file.goDeletedREMOVE
internal/tools/tools.jsonDeletedREMOVE
internal/agents/prompt/sysPrompt.mdAddedADD
internal/agents/prompt/sysPromptBase.mdAddedADD
internal/tools/embed/commands.jsonAddedADD
internal/tools/embed/tools.jsonAddedADD
internal/tools/file/embed/exclude.jsonAddedADD
internal/tools/apiAdapter/example.jsonAddedADD
internal/tools/types/executor.goAddedADD
cover.pngAddedADD
cmd/cli/main.goModifiedSTYLE
README.mdModifiedDOC
README.zh.mdModifiedDOC
doc.mdAddedDOC
doc.zh.mdAddedDOC
go.modModifiedCHORE
go.sumModifiedCHORE
.gitignoreModifiedCHORE



Generated by SKILL