mirror of
https://github.com/mark3labs/kit.git
synced 2026-06-14 03:30:26 +00:00
ab2a77c95e
* feat(sdk): runtime skills and context-file management (#36) Let SDK consumers add, remove, and replace skills and AGENTS.md-style context files after Kit construction. Every mutation recomposes the system prompt and applies it to the agent so the next turn picks up the new instructions without restarting Kit. - AddSkill / LoadAndAddSkill / RemoveSkill / SetSkills on *kit.Kit - AddContextFile / AddContextFileContent / LoadAndAddContextFile / RemoveContextFile / SetContextFiles on *kit.Kit - RefreshSystemPrompt to force a manual recomposition - agent.SetSystemPrompt / GetSystemPrompt on the internal agent so the composed prompt rebuilds the fantasy agent on the next call - Per-instance runtimeMu guards skills/contextFiles; GetSkills and GetContextFiles return defensive snapshots safe for concurrent use - Capture the resolved basePrompt during New so recomposition keeps per-model overrides and --system-prompt file resolution intact - Skills dedupe by Name; context files dedupe by Path (opaque ID, not required to be a real filesystem path) Tests cover add/remove/set/replace semantics, validation errors, disk loading round-trips, prompt composition, and an 8-goroutine race-stress sweep (go test -race clean). Docs: pkg/kit/README, root README Go SDK section, www sdk/overview "Runtime skills and context files" section, www sdk/options callout cross-referencing the new API. Fixes #36 * fix(agent): synchronize SetSystemPrompt against concurrent rebuilds - add promptMu to Agent guarding systemPrompt writes and the fantasy agent rebuild, fixing a data race when Kit.applyComposedSystemPrompt is invoked concurrently - read systemPrompt under the same lock in GetSystemPrompt - update the thread-safety stress test to use a non-nil agent so the SetSystemPrompt path is actually exercised under -race