summaryrefslogtreecommitdiffhomepage
path: root/packages/kernel/src/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'packages/kernel/src/runtime')
-rw-r--r--packages/kernel/src/runtime/run-turn.test.ts30
-rw-r--r--packages/kernel/src/runtime/run-turn.ts4
2 files changed, 32 insertions, 2 deletions
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<RunTurnResult> {
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++) {