MCPcopy
hub / github.com/CopilotKit/CopilotKit / AgentCoreRunner

Class AgentCoreRunner

packages/agentcore-runner/src/agentcore-runner.ts:26–67  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

24 * empty results for each past tool call before the snapshot.
25 */
26export class AgentCoreRunner extends InMemoryAgentRunner {
27 private readonly knownThreadIds = new Set<string>();
28
29 override run(request: Parameters<InMemoryAgentRunner["run"]>[0]) {
30 if (request.threadId) this.knownThreadIds.add(request.threadId);
31 return super.run(request);
32 }
33
34 override connect(request: Parameters<InMemoryAgentRunner["connect"]>[0]) {
35 if (!request.threadId || !this.knownThreadIds.has(request.threadId)) {
36 const threadId = request.threadId ?? randomUUID();
37 const runId = randomUUID();
38 return of(
39 { type: EventType.RUN_STARTED, threadId, runId },
40 { type: EventType.MESSAGES_SNAPSHOT, messages: [] },
41 { type: EventType.RUN_FINISHED, threadId, runId },
42 ) as Observable<BaseEvent>;
43 }
44
45 return super.connect(request).pipe(
46 concatMap((event: BaseEvent) => {
47 if (event.type !== EventType.MESSAGES_SNAPSHOT) return of(event);
48 const snapshot = event as MessagesSnapshotEvent;
49 const replayedResults: ToolCallResultEvent[] =
50 snapshot.messages.flatMap((message: Message) => {
51 if (message.role !== "assistant" || !message.toolCalls?.length)
52 return [];
53 return message.toolCalls.map<ToolCallResultEvent>(
54 (toolCall: ToolCall) => ({
55 type: EventType.TOOL_CALL_RESULT,
56 toolCallId: toolCall.id,
57 messageId: `${toolCall.id}-result`,
58 content: "",
59 role: "tool",
60 }),
61 );
62 });
63 return of(...replayedResults, snapshot) as Observable<BaseEvent>;
64 }),
65 );
66 }
67}

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…