From e56b591d56ea3f3007c612da2f0fe2004d696f45 Mon Sep 17 00:00:00 2001 From: Adam Malczewski Date: Thu, 4 Jun 2026 23:55:29 +0900 Subject: fix(kernel): expose getProviders/getTools on HostAPI (CR-2) + runTurn uses input tabId/turnId (CR-3); simplify orchestrator wiring (167 tests) --- packages/kernel/src/runtime/run-turn.test.ts | 30 ++++++++++++++++++++++++++++ packages/kernel/src/runtime/run-turn.ts | 4 ++-- 2 files changed, 32 insertions(+), 2 deletions(-) (limited to 'packages/kernel/src/runtime') diff --git a/packages/kernel/src/runtime/run-turn.test.ts b/packages/kernel/src/runtime/run-turn.test.ts index f63a0a8..1ea6406 100644 --- a/packages/kernel/src/runtime/run-turn.test.ts +++ b/packages/kernel/src/runtime/run-turn.test.ts @@ -52,6 +52,36 @@ const userMessage: ChatMessage = { }; describe("runTurn", () => { + it("emits events with the tabId and turnId from input", async () => { + const provider = createFakeProvider([ + [ + { type: "text-delta", delta: "hi" }, + { type: "usage", usage: { inputTokens: 1, outputTokens: 1 } }, + { type: "finish", reason: "stop" }, + ], + ]); + + const { events, emit } = createCollectingEmit(); + + await runTurn({ + provider, + messages: [userMessage], + tools: [], + dispatch: { maxConcurrent: 1, eager: false }, + tabId: "conv-42", + turnId: "turn-99", + emit, + }); + + expect(events.length).toBeGreaterThan(0); + for (const event of events) { + expect(event.tabId).toBe("conv-42"); + if (event.type !== "status") { + expect(event.turnId).toBe("turn-99"); + } + } + }); + it("text-only turn emits correct events and returns correct result", async () => { const provider = createFakeProvider([ [ diff --git a/packages/kernel/src/runtime/run-turn.ts b/packages/kernel/src/runtime/run-turn.ts index 46b1465..919491a 100644 --- a/packages/kernel/src/runtime/run-turn.ts +++ b/packages/kernel/src/runtime/run-turn.ts @@ -217,8 +217,8 @@ export async function runTurn(input: RunTurnInput): Promise { toolMap.set(tool.name, tool); } - const tabId = ""; - const turnId = ""; + const tabId = input.tabId; + const turnId = input.turnId; const signal = input.signal ?? new AbortController().signal; for (let step = 0; step < MAX_STEPS; step++) { -- cgit v1.2.3