Repository navigation
0.10.0
Added
- Plugin/hook layer. 13 hooks (
sessionStart,userPromptSubmit,preModelCall,postModelCall,preToolUse,postToolUse,preCompact,postCompact,preFinalAnswer,subagentStart,subagentStop,notification,sessionEnd), 25 built-in plugins (cognipeerGuardrail,portkeyGuardrail,piiRedaction,promptInjectionGuard,toolPolicy,budgetGuard,rateLimit,responseCache,auditLog,langfuseTracing,otel, and more), andpluginCapabilities()to introspect what's actually wired. Multimodal input (image/audio/video) is carried through every hook. See the plugin guide. - Handoff targets (
asHandoff) now carry their own system prompt and name instead of running under the persona of the agent that handed off.
Fixed
createSmartAgentsilently dropped thehandoffsoption — the tool never reached the model.- A handoff swapped the tool menu but not the system prompt.
type: "image"content had no branch in the provider adapter and was never seen by the model.- Streaming emitted the final answer twice.
- A cancelled run left a dangling
tool_call, failing the next send with a 400. postToolUsenever ran on a tool error, and__finalStructuredOutputwas extracted before it — both leaked unredacted output.snapshot()threwDataCloneErrorafter any handoff, silently breaking checkpointing for exactly the runs that needed it.- Tools injected at runtime (
open_skillvia__runtimeToolsDelta) were dropped by the next tool-set sync. - An approval resume could strand its own approved tool call behind a synthetic
preopenedSkillsexchange, failing with "a model provider error or exhausted iteration budget" when neither had happened.
Full changelog: v0.9.7...v0.10.0