mirror of
https://github.com/getcompanion-ai/co-mono.git
synced 2026-04-15 23:01:30 +00:00
Add session management and agent state methods to hooks API
HookAPI additions: - pi.newSession(options?) - create new session with optional setup callback - pi.branch(entryId) - branch from a specific entry - pi.navigateTree(targetId, options?) - navigate the session tree HookContext additions: - ctx.isIdle() - check if agent is streaming - ctx.waitForIdle() - wait for agent to finish - ctx.abort() - abort current operation - ctx.hasQueuedMessages() - check for queued user messages These enable hooks to programmatically manage sessions (handoff, templates) and check agent state before showing interactive UI. Fixes #388
This commit is contained in:
parent
484d7e06bb
commit
ccdd7bd283
9 changed files with 355 additions and 14 deletions
|
|
@ -80,6 +80,9 @@ describe.skipIf(!API_KEY)("Compaction hooks", () => {
|
|||
commands: new Map(),
|
||||
setSendMessageHandler: () => {},
|
||||
setAppendEntryHandler: () => {},
|
||||
setNewSessionHandler: () => {},
|
||||
setBranchHandler: () => {},
|
||||
setNavigateTreeHandler: () => {},
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -266,6 +269,9 @@ describe.skipIf(!API_KEY)("Compaction hooks", () => {
|
|||
commands: new Map(),
|
||||
setSendMessageHandler: () => {},
|
||||
setAppendEntryHandler: () => {},
|
||||
setNewSessionHandler: () => {},
|
||||
setBranchHandler: () => {},
|
||||
setNavigateTreeHandler: () => {},
|
||||
};
|
||||
|
||||
createSession([throwingHook]);
|
||||
|
|
@ -313,6 +319,9 @@ describe.skipIf(!API_KEY)("Compaction hooks", () => {
|
|||
commands: new Map(),
|
||||
setSendMessageHandler: () => {},
|
||||
setAppendEntryHandler: () => {},
|
||||
setNewSessionHandler: () => {},
|
||||
setBranchHandler: () => {},
|
||||
setNavigateTreeHandler: () => {},
|
||||
};
|
||||
|
||||
const hook2: LoadedHook = {
|
||||
|
|
@ -342,6 +351,9 @@ describe.skipIf(!API_KEY)("Compaction hooks", () => {
|
|||
commands: new Map(),
|
||||
setSendMessageHandler: () => {},
|
||||
setAppendEntryHandler: () => {},
|
||||
setNewSessionHandler: () => {},
|
||||
setBranchHandler: () => {},
|
||||
setNavigateTreeHandler: () => {},
|
||||
};
|
||||
|
||||
createSession([hook1, hook2]);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue