summaryrefslogtreecommitdiffhomepage
path: root/packages/kernel/src
diff options
context:
space:
mode:
Diffstat (limited to 'packages/kernel/src')
-rw-r--r--packages/kernel/src/contracts/tool.ts8
-rw-r--r--packages/kernel/src/runtime/dispatch.ts1
2 files changed, 9 insertions, 0 deletions
diff --git a/packages/kernel/src/contracts/tool.ts b/packages/kernel/src/contracts/tool.ts
index f617f42..d5a835c 100644
--- a/packages/kernel/src/contracts/tool.ts
+++ b/packages/kernel/src/contracts/tool.ts
@@ -70,6 +70,14 @@ export interface ToolExecuteContext {
* workdir. The kernel never interprets it.
*/
readonly cwd?: string;
+
+ /**
+ * The conversation this tool-call belongs to. Tools that maintain
+ * per-conversation state (e.g. a todo list) key on this. Forwarded
+ * verbatim from `RunTurnInput.conversationId`. Optional: when omitted,
+ * a tool has no conversation scope (e.g. a global tool).
+ */
+ readonly conversationId?: string;
}
/**
diff --git a/packages/kernel/src/runtime/dispatch.ts b/packages/kernel/src/runtime/dispatch.ts
index d168319..d1c46cb 100644
--- a/packages/kernel/src/runtime/dispatch.ts
+++ b/packages/kernel/src/runtime/dispatch.ts
@@ -32,6 +32,7 @@ export async function executeToolCall(
emit(toolOutputEvent(conversationId, turnId, call.id, data, stream));
},
log: toolSpan?.log ?? createNoopLogger(),
+ conversationId,
...(cwd !== undefined ? { cwd } : {}),
};
try {