mirror of
https://github.com/mark3labs/kit.git
synced 2026-06-13 19:20:06 +00:00
64caed57d4
* fix(sdk): stop leaking fantasy types through pkg/kit.AgentConfig (#30) Replace the alias-based AgentConfig and handler types with SDK-owned structs and function types. CoreTools / ExtraTools / ToolWrapper now accept []kit.Tool, and the handler types (ToolCallHandler, ToolExecutionHandler, ToolResultHandler, ResponseHandler, StreamingResponseHandler, ToolCallContentHandler) plus SpinnerFunc are declared in pkg/kit/ with signatures that reference only SDK types. Consumers no longer need to import charm.land/fantasy to populate an AgentConfig or assign a handler. go doc pkg/kit AgentConfig output no longer mentions fantasy.*. - Add unexported (*AgentConfig).toInternal() to convert at the SDK boundary; Tool is still an alias for the underlying tool type, so slice and function fields convert without allocation. - Add agent_config_internal_test.go covering nil receiver, scalar fields, tool slices, ToolWrapper invocation, OnMCPServerLoaded, and auth/token-factory wiring. - Add types_test.go cases that populate AgentConfig and SpinnerFunc without importing fantasy -- the file compiling is the regression proof for the leak. - Update pkg/kit/README.md Re-exported Types section to record that AgentConfig and the handler types are now Kit-owned. Fixes #30 * fix(sdk): add DebugLogger and MCPTaskConfig to kit.AgentConfig (#30) The first revision of the SDK-owned AgentConfig dropped two fields that internal/agent.AgentConfig carried: DebugLogger (tools.DebugLogger) and MCPTaskConfig (tools.MCPTaskConfig). Restore them with SDK-owned equivalents and wire them through toInternal(). - Add kit.DebugLogger interface (LogDebug / IsDebugEnabled) mirroring tools.DebugLogger. Interface-to-interface assignment is automatic because the method sets match. - Add kit.MCPTaskConfig struct mirroring tools.MCPTaskConfig with SDK types (MCPTaskMode, MCPTaskProgressHandler) and a toToolsConfig() helper that converts at the SDK boundary. - Wire both new fields in (*AgentConfig).toInternal(). - Extend agent_config_internal_test.go with cases for both fields. - Document the additions in pkg/kit/README.md.