diff options
| author | Adam Malczewski <[email protected]> | 2026-06-04 22:58:19 +0900 |
|---|---|---|
| committer | Adam Malczewski <[email protected]> | 2026-06-04 22:58:19 +0900 |
| commit | ae22da591474d4be7daf16be552ad7437ef1828b (patch) | |
| tree | bb3725770a75e7cef3a17523fc576a63e0342185 /packages/kernel/src/runtime/events.ts | |
| parent | 75f78873425ada97bc8428e9fe80760ab7be7fc7 (diff) | |
| download | dispatch-ae22da591474d4be7daf16be552ad7437ef1828b.tar.gz dispatch-ae22da591474d4be7daf16be552ad7437ef1828b.zip | |
feat(kernel): runTurn turn loop — tool dispatch policy (eager/semaphore/dedup/concurrencySafe/abort), 16 tests
Diffstat (limited to 'packages/kernel/src/runtime/events.ts')
| -rw-r--r-- | packages/kernel/src/runtime/events.ts | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/packages/kernel/src/runtime/events.ts b/packages/kernel/src/runtime/events.ts new file mode 100644 index 0000000..62218be --- /dev/null +++ b/packages/kernel/src/runtime/events.ts @@ -0,0 +1,57 @@ +import type { AgentEvent } from "../contracts/events.js"; +import type { Usage } from "../contracts/provider.js"; + +export function textDeltaEvent(tabId: string, turnId: string, delta: string): AgentEvent { + return { type: "text-delta", tabId, turnId, delta }; +} + +export function reasoningDeltaEvent(tabId: string, turnId: string, delta: string): AgentEvent { + return { type: "reasoning-delta", tabId, turnId, delta }; +} + +export function toolCallEvent( + tabId: string, + turnId: string, + toolCallId: string, + toolName: string, + input: unknown, +): AgentEvent { + return { type: "tool-call", tabId, turnId, toolCallId, toolName, input }; +} + +export function toolResultEvent( + tabId: string, + turnId: string, + toolCallId: string, + toolName: string, + content: string, + isError: boolean, +): AgentEvent { + return { type: "tool-result", tabId, turnId, toolCallId, toolName, content, isError }; +} + +export function toolOutputEvent( + tabId: string, + turnId: string, + toolCallId: string, + data: string, + stream: "stdout" | "stderr", +): AgentEvent { + return { type: "tool-output", tabId, turnId, toolCallId, data, stream }; +} + +export function usageEvent(tabId: string, turnId: string, usage: Usage): AgentEvent { + return { type: "usage", tabId, turnId, usage }; +} + +export function errorEvent( + tabId: string, + turnId: string, + message: string, + code?: string, +): AgentEvent { + if (code !== undefined) { + return { type: "error", tabId, turnId, message, code }; + } + return { type: "error", tabId, turnId, message }; +} |
