v0.28.16 -> v0.28.17
Summary
Completes the provider-layer extraction into go-llm-router and makes request behavior explicit at the runtime boundary. Simplifies TUI model controls while adding live provider quota visibility.
翻譯
完成 provider 層抽離至 go-llm-router,並讓請求行為在 runtime 邊界明確傳遞。簡化 TUI 模型控制,同時新增即時供應商額度顯示。
⚠️ Breaking Changes
Shared message and response types moved to go-llm-router
The agent contract and session message fields now use the router module's shared types instead of Agenvoy-local definitions.
Before:
import agentTypes "github.com/pardnchiu/agenvoy/internal/agents/types"
var message agentTypes.Message
var output *agentTypes.Output
After:
import "github.com/pardnchiu/go-llm-router/core"
var message provider.Message
var output *provider.Output
Migration:
// Replace Agenvoy-local Message, Output, ToolCall, and Usage references
// with the corresponding go-llm-router/core types.
翻譯
Agent contract 與 session 訊息欄位改用 go-llm-router 的共用型別。請將 Agenvoy 內部的訊息、輸出、工具呼叫與用量型別參照改到 router module。
Agent.Send requires an explicit reasoning level and returns HTTP status
Reasoning is no longer implicit global state. Each send passes its reasoning level and receives the provider HTTP status for cooldown handling.
Before:
Send(ctx context.Context, messages []provider.Message, tools []provider.Tool) (*provider.Output, error)
After:
Send(ctx context.Context, messages []provider.Message, tools []provider.Tool, reasoning string) (*provider.Output, int, error)
Migration:
// Old
resp, err := agent.Send(ctx, messages, tools)
// New
resp, status, err := agent.Send(ctx, messages, tools, reasoning)
// Use status == http.StatusTooManyRequests to register provider cooldown.
翻譯
Agent.Send 改為明確接收 reasoning level,並回傳 HTTP status 供 cooldown 判斷。所有呼叫端與自訂 agent 實作都需更新函式簽章。
Provider and OAuth implementations moved to go-llm-router
Agenvoy no longer exposes its former internal provider, router, or OAuth implementation packages. Construction, model discovery, usage queries, authentication, and transport implementations now come from the external module.
Before:
import "github.com/pardnchiu/agenvoy/internal/agents/provider/router"
import oauthCodex "github.com/pardnchiu/agenvoy/internal/agents/oauth/codex"
After:
import "github.com/pardnchiu/go-llm-router/core/router"
import oauthCodex "github.com/pardnchiu/go-llm-router/core/oauth/codex"
Migration:
// Update imports from Agenvoy's internal provider and OAuth packages
// to github.com/pardnchiu/go-llm-router/core and its subpackages.
// Build agents through router.New with provider.Config.
翻譯
Agenvoy 內部的 provider、router 與 OAuth 實作已移至 go-llm-router。請更新 import,並透過外部 module 的 router 與共用設定建立 agent。
Global reasoning configuration and TUI model selectors were removed
Reasoning now defaults per session and is passed explicitly to sends. The TUI no longer exposes global reasoning selection, session model selection, or the model-menu reasoning entry; keyboard reasoning cycling remains session-scoped.
Before:
model session
model reasoning
reasoning global
reasoning session
After:
Session reasoning defaults to medium and can be cycled with the existing shortcuts.
Model management remains available for registry, dispatcher, and summary scopes.
Migration:
Remove automation that invokes the deleted TUI commands.
Store a session-specific reasoning value when a non-default level is required.
翻譯
全域 reasoning 設定、session model 選擇及相關 TUI 選單已移除。reasoning 預設改為 session 的 medium,非預設值請寫入 session 設定;既有快捷鍵循環仍保留。
Changes
BREAKING
- Move shared message, output, tool-call, and usage types to the router-facing provider layer (@pardnchiu) [b9f7d774]
- Pass reasoning level explicitly through every agent send call (@pardnchiu) [e0b0fd21]
- Return provider HTTP status from send calls and use it for cooldown registration (@pardnchiu) [65a96001]
- Migrate provider, router, OAuth, and usage implementations to go-llm-router (@pardnchiu) [8a13c7c2]
- Remove global reasoning configuration and TUI session model/reasoning selectors (@pardnchiu) [d50d1da9, b3976dcc]
翻譯
- 將共用訊息、輸出、工具呼叫與用量型別移至 router 對接的 provider 層
- 所有 agent send 呼叫改為明確傳入 reasoning level
- send 呼叫回傳 provider HTTP status,並用於 cooldown 註冊
- 將 provider、router、OAuth 與用量查詢實作遷移至 go-llm-router
- 移除全域 reasoning 設定與 TUI session model/reasoning 選擇器
FEAT
- Add live provider usage and balance reporting to the TUI usage view and completion footer (@pardnchiu) [47a77278]
翻譯
- 在 TUI 用量視圖與完成 footer 新增即時供應商額度及餘額顯示
REFACTOR
- Centralize usage-log recording at the agent send boundary (@pardnchiu) [ac27afb2]
- Centralize tool, content-part, OAuth-token, and agent interface types in the provider contract (@pardnchiu) [77ad9ef0, 2741d4a3]
翻譯
- 將用量記錄集中至 agent send 邊界
- 將工具、內容片段、OAuth token 與 agent interface 型別集中至 provider contract
Scope
internal/agents/provider/— BREAKING, REMOVE (multiple files)internal/agents/oauth/— BREAKING, REMOVE (multiple files)internal/agents/router/— BREAKING, REMOVE (router.go)internal/agents/types/— BREAKING, REFACTOR (agent.go,event.go,message.go,rateLimit.go)internal/agents/exec/— BREAKING, REFACTOR (multiple files)internal/agents/keychain/— BREAKING (keychain.go)internal/runtime/tui/— BREAKING, FEAT (multiple files)internal/runtime/routes/— BREAKING (multiple files)internal/runtime/telegram/— BREAKING (multiple files)internal/runtime/discord/— BREAKING (multiple files)internal/session/— BREAKING, REFACTOR (multiple files)internal/tools/— BREAKING, REFACTOR (multiple files)internal/utils/— BREAKING, REFACTOR (event.go,utils.go)cmd/app/— BREAKING (buildAgentRegistry.go,cmdDeamon.go,newTUI.go)go.mod,go.sum— CHORE
Generated by SKILL