@duetso/agent 0.1.26 → 0.1.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/README.md +18 -0
  2. package/dist/package.json +2 -1
  3. package/dist/src/cli.js +5 -5
  4. package/dist/src/cli.js.map +1 -1
  5. package/dist/src/lib/login.d.ts +0 -1
  6. package/dist/src/lib/login.d.ts.map +1 -1
  7. package/dist/src/lib/login.js +1 -3
  8. package/dist/src/lib/login.js.map +1 -1
  9. package/dist/src/lib/sync-skills.d.ts +2 -5
  10. package/dist/src/lib/sync-skills.d.ts.map +1 -1
  11. package/dist/src/lib/sync-skills.js +11 -8
  12. package/dist/src/lib/sync-skills.js.map +1 -1
  13. package/dist/src/session/session-manager.d.ts +3 -1
  14. package/dist/src/session/session-manager.d.ts.map +1 -1
  15. package/dist/src/session/session-manager.js +1 -0
  16. package/dist/src/session/session-manager.js.map +1 -1
  17. package/dist/src/session/session.d.ts +2 -0
  18. package/dist/src/session/session.d.ts.map +1 -1
  19. package/dist/src/session/session.js +1 -0
  20. package/dist/src/session/session.js.map +1 -1
  21. package/dist/src/tui/app.d.ts.map +1 -1
  22. package/dist/src/tui/app.js +64 -4
  23. package/dist/src/tui/app.js.map +1 -1
  24. package/dist/src/turn-runner/mcp.d.ts +29 -0
  25. package/dist/src/turn-runner/mcp.d.ts.map +1 -0
  26. package/dist/src/turn-runner/mcp.js +123 -0
  27. package/dist/src/turn-runner/mcp.js.map +1 -0
  28. package/dist/src/turn-runner/turn-runner.d.ts +9 -0
  29. package/dist/src/turn-runner/turn-runner.d.ts.map +1 -1
  30. package/dist/src/turn-runner/turn-runner.js +43 -11
  31. package/dist/src/turn-runner/turn-runner.js.map +1 -1
  32. package/dist/src/turn-runner/usage-accounting.d.ts +1 -3
  33. package/dist/src/turn-runner/usage-accounting.d.ts.map +1 -1
  34. package/dist/src/turn-runner/usage-accounting.js +20 -22
  35. package/dist/src/turn-runner/usage-accounting.js.map +1 -1
  36. package/dist/src/types/protocol.d.ts +34 -8
  37. package/dist/src/types/protocol.d.ts.map +1 -1
  38. package/package.json +2 -1
@@ -98,8 +98,31 @@ export async function runTui(input) {
98
98
  });
99
99
  smPanel.add(smTitle);
100
100
  smPanel.add(smBody);
101
+ const contextPanel = new BoxRenderable(renderer, {
102
+ flexDirection: "column",
103
+ border: true,
104
+ borderColor: COLORS.border,
105
+ padding: 1,
106
+ height: 7,
107
+ flexShrink: 0,
108
+ });
109
+ const contextTitle = new TextRenderable(renderer, {
110
+ content: "context",
111
+ fg: COLORS.status,
112
+ height: 1,
113
+ flexShrink: 0,
114
+ });
115
+ const contextBody = new TextRenderable(renderer, {
116
+ content: "(waiting for usage)",
117
+ fg: COLORS.hint,
118
+ flexGrow: 1,
119
+ flexShrink: 1,
120
+ });
121
+ contextPanel.add(contextTitle);
122
+ contextPanel.add(contextBody);
101
123
  sidebar.add(todoPanel);
102
124
  sidebar.add(smPanel);
125
+ sidebar.add(contextPanel);
103
126
  const transcript = new ScrollBoxRenderable(renderer, {
104
127
  flexGrow: 1,
105
128
  flexShrink: 1,
@@ -241,6 +264,7 @@ export async function runTui(input) {
241
264
  // ---- runtime state ---------------------------------------------------------
242
265
  let running = false;
243
266
  let lastTerminal;
267
+ let latestContextUsage;
244
268
  let activeTextStream;
245
269
  let activeReasoningStream;
246
270
  // Tool calls fire twice (running → completed/error). Track the rendered
@@ -267,6 +291,7 @@ export async function runTui(input) {
267
291
  const state = input.session.getState();
268
292
  renderTodoSidebar(state?.todos ?? []);
269
293
  renderStateMachineSidebar(state?.stateMachine);
294
+ renderContextUsageSidebar(latestContextUsage);
270
295
  }
271
296
  function renderTodoSidebar(todos) {
272
297
  if (todos.length === 0) {
@@ -304,6 +329,37 @@ export async function runTui(input) {
304
329
  smBody.content = lines.join("\n");
305
330
  smBody.fg = COLORS.agent;
306
331
  }
332
+ function renderContextUsageSidebar(usage) {
333
+ if (!usage) {
334
+ contextBody.content = "(waiting for usage)";
335
+ contextBody.fg = COLORS.hint;
336
+ return;
337
+ }
338
+ const usedTokens = usage.usage.totalTokens;
339
+ const percent = Math.min(1, usedTokens / usage.contextWindow);
340
+ contextBody.content = [
341
+ progressBar(percent, 18),
342
+ `${formatTokenCount(usedTokens)} / ${formatTokenCount(usage.contextWindow)}`,
343
+ ].join("\n");
344
+ contextBody.fg = usedTokens >= usage.contextWindow ? COLORS.error : COLORS.agent;
345
+ }
346
+ function progressBar(value, width) {
347
+ const clamped = Math.max(0, Math.min(1, value));
348
+ const filled = Math.round(clamped * width);
349
+ const empty = width - filled;
350
+ return `[${"█".repeat(filled)}${"░".repeat(empty)}] ${Math.round(clamped * 100)}%`;
351
+ }
352
+ function formatTokenCount(tokens) {
353
+ if (tokens >= 1_000_000)
354
+ return `${formatCompactNumber(tokens / 1_000_000)}m`;
355
+ if (tokens >= 1_000)
356
+ return `${formatCompactNumber(tokens / 1_000)}k`;
357
+ return String(tokens);
358
+ }
359
+ function formatCompactNumber(value) {
360
+ const rounded = value >= 10 ? Math.round(value) : Math.round(value * 10) / 10;
361
+ return Number.isInteger(rounded) ? String(rounded) : rounded.toFixed(1);
362
+ }
307
363
  const unsubscribe = input.session.subscribe((event) => {
308
364
  // Sidebar mirrors the runner's authoritative state, so refresh it on
309
365
  // every event rather than threading specific updates through each branch.
@@ -320,6 +376,10 @@ export async function runTui(input) {
320
376
  else if (event.type === "memory") {
321
377
  renderMemoryStatus(event);
322
378
  }
379
+ else if (event.type === "context_usage") {
380
+ latestContextUsage = event;
381
+ renderContextUsageSidebar(event);
382
+ }
323
383
  else if (event.type === "system") {
324
384
  appendBlock("[system]", event.message, COLORS.system);
325
385
  if (event.level === "error")
@@ -383,10 +443,10 @@ export async function runTui(input) {
383
443
  function renderUsage(usage) {
384
444
  if (!usage)
385
445
  return;
386
- const parts = [`in=${usage.inputTokens}`, `out=${usage.outputTokens}`];
387
- if (usage.cachedInputTokens !== undefined)
388
- parts.push(`cached=${usage.cachedInputTokens}`);
389
- const cost = usage.costUsd === undefined ? "" : ` · Cost: $${usage.costUsd.toFixed(4)}`;
446
+ const parts = [`in=${usage.input}`, `out=${usage.output}`];
447
+ if (usage.cacheRead > 0)
448
+ parts.push(`cached=${usage.cacheRead}`);
449
+ const cost = usage.cost.total === 0 ? "" : ` · Cost: $${usage.cost.total.toFixed(4)}`;
390
450
  appendLine(`[usage] Tokens: ${parts.join(" ")}${cost}`, COLORS.hint);
391
451
  }
392
452
  function renderTodos(todos) {
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/tui/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/tui/app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import type { AgentTool } from "@earendil-works/pi-agent-core";
2
+ import type { McpHttpServerConfig } from "../types/protocol.js";
3
+ /**
4
+ * Connected MCP server runtime.
5
+ *
6
+ * Owns one MCP client + transport per configured server, exposes the union of
7
+ * their tools as `AgentTool[]` ready to drop into the parent or state agents,
8
+ * and disposes connections when the turn runner shuts down.
9
+ *
10
+ * Tool names are namespaced as `{server}__{tool}` so multiple servers with
11
+ * overlapping tool names can coexist without collisions inside a single agent
12
+ * turn.
13
+ */
14
+ export interface McpRuntime {
15
+ /** Tools backed by every connected MCP server, in deterministic order. */
16
+ tools: AgentTool[];
17
+ /** Close every transport and client. Idempotent. */
18
+ dispose: () => Promise<void>;
19
+ }
20
+ /**
21
+ * Connect to every configured HTTP MCP server and build a flat list of
22
+ * `AgentTool`s. Servers that fail to connect are dropped with a warning so a
23
+ * single broken server cannot block the rest of the turn runner from starting.
24
+ */
25
+ export declare function connectMcpServers(servers: Record<string, McpHttpServerConfig>, options?: {
26
+ /** Optional sink for connection diagnostics. Defaults to `console.warn`. */
27
+ onWarn?: (message: string) => void;
28
+ }): Promise<McpRuntime>;
29
+ //# sourceMappingURL=mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../../src/turn-runner/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAmB,MAAM,+BAA+B,CAAC;AAMhF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAIhE;;;;;;;;;;GAUG;AACH,MAAM,WAAW,UAAU;IACzB,0EAA0E;IAC1E,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,oDAAoD;IACpD,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAQD;;;;GAIG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAC5C,OAAO,CAAC,EAAE;IACR,4EAA4E;IAC5E,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACpC,GACA,OAAO,CAAC,UAAU,CAAC,CA+DrB"}
@@ -0,0 +1,123 @@
1
+ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
2
+ import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
3
+ const MCP_TOOL_NAME_SEPARATOR = "__";
4
+ /**
5
+ * Connect to every configured HTTP MCP server and build a flat list of
6
+ * `AgentTool`s. Servers that fail to connect are dropped with a warning so a
7
+ * single broken server cannot block the rest of the turn runner from starting.
8
+ */
9
+ export async function connectMcpServers(servers, options) {
10
+ const warn = options?.onWarn ?? ((message) => console.warn(message));
11
+ const sessions = [];
12
+ const tools = [];
13
+ for (const [serverName, config] of Object.entries(servers)) {
14
+ if (config.type !== "http") {
15
+ warn(`mcp: unsupported transport "${config.type}" for server "${serverName}"; skipping.`);
16
+ continue;
17
+ }
18
+ let url;
19
+ try {
20
+ url = new URL(config.url);
21
+ }
22
+ catch {
23
+ warn(`mcp: invalid url for server "${serverName}": ${config.url}; skipping.`);
24
+ continue;
25
+ }
26
+ if (url.protocol !== "http:" && url.protocol !== "https:") {
27
+ warn(`mcp: unsupported protocol "${url.protocol}" for server "${serverName}"; skipping.`);
28
+ continue;
29
+ }
30
+ const transport = new StreamableHTTPClientTransport(url, {
31
+ requestInit: config.headers ? { headers: config.headers } : undefined,
32
+ });
33
+ const client = new Client({ name: "duet-agent", version: "0.0.0" });
34
+ try {
35
+ await client.connect(transport);
36
+ }
37
+ catch (error) {
38
+ warn(`mcp: failed to connect server "${serverName}": ${describeError(error)}`);
39
+ await transport.close().catch(() => { });
40
+ await client.close().catch(() => { });
41
+ continue;
42
+ }
43
+ let listed;
44
+ try {
45
+ listed = await client.listTools();
46
+ }
47
+ catch (error) {
48
+ warn(`mcp: failed to list tools for server "${serverName}": ${describeError(error)}`);
49
+ await disposeSession({ serverName, client, transport });
50
+ continue;
51
+ }
52
+ sessions.push({ serverName, client, transport });
53
+ for (const tool of listed.tools) {
54
+ tools.push(buildAgentTool(serverName, client, tool));
55
+ }
56
+ }
57
+ // Sort once so the tools block is stable across turns for prompt caching.
58
+ tools.sort((a, b) => a.name.localeCompare(b.name));
59
+ let disposed = false;
60
+ return {
61
+ tools,
62
+ dispose: async () => {
63
+ if (disposed)
64
+ return;
65
+ disposed = true;
66
+ await Promise.allSettled(sessions.map(disposeSession));
67
+ },
68
+ };
69
+ }
70
+ function buildAgentTool(serverName, client, tool) {
71
+ const namespacedName = `${serverName}${MCP_TOOL_NAME_SEPARATOR}${tool.name}`;
72
+ // MCP tool inputSchema is JSON Schema; pi-agent's Ajv validator runs with
73
+ // strictSchema:false so a plain JSON Schema object is accepted in the
74
+ // `parameters` slot that is typed as TSchema.
75
+ const parameters = (tool.inputSchema ?? { type: "object" });
76
+ return {
77
+ name: namespacedName,
78
+ label: tool.title ?? tool.name,
79
+ description: tool.description ?? `MCP tool "${tool.name}" provided by server "${serverName}".`,
80
+ parameters,
81
+ execute: async (_toolCallId, params) => {
82
+ const result = (await client.callTool({
83
+ name: tool.name,
84
+ arguments: isPlainObject(params) ? params : {},
85
+ }));
86
+ return toAgentToolResult(serverName, tool.name, result);
87
+ },
88
+ };
89
+ }
90
+ function toAgentToolResult(serverName, toolName, result) {
91
+ const rawContent = Array.isArray(result.content) ? result.content : [];
92
+ const content = rawContent.length > 0
93
+ ? rawContent
94
+ : [
95
+ {
96
+ type: "text",
97
+ text: result.structuredContent !== undefined
98
+ ? JSON.stringify(result.structuredContent, null, 2)
99
+ : JSON.stringify({ status: result.isError ? "error" : "ok", server: serverName, tool: toolName }, null, 2),
100
+ },
101
+ ];
102
+ return {
103
+ content,
104
+ details: {
105
+ mcpServer: serverName,
106
+ mcpTool: toolName,
107
+ structuredContent: result.structuredContent,
108
+ },
109
+ };
110
+ }
111
+ async function disposeSession(session) {
112
+ await session.transport.close().catch(() => { });
113
+ await session.client.close().catch(() => { });
114
+ }
115
+ function isPlainObject(value) {
116
+ return typeof value === "object" && value !== null && !Array.isArray(value);
117
+ }
118
+ function describeError(error) {
119
+ if (error instanceof Error)
120
+ return error.message;
121
+ return String(error);
122
+ }
123
+ //# sourceMappingURL=mcp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../../src/turn-runner/mcp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAMnG,MAAM,uBAAuB,GAAG,IAAI,CAAC;AA0BrC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAA4C,EAC5C,OAGC;IAED,MAAM,IAAI,GAAG,OAAO,EAAE,MAAM,IAAI,CAAC,CAAC,OAAe,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7E,MAAM,QAAQ,GAAiB,EAAE,CAAC;IAClC,MAAM,KAAK,GAAgB,EAAE,CAAC;IAE9B,KAAK,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3D,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,+BAA+B,MAAM,CAAC,IAAI,iBAAiB,UAAU,cAAc,CAAC,CAAC;YAC1F,SAAS;QACX,CAAC;QACD,IAAI,GAAQ,CAAC;QACb,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,gCAAgC,UAAU,MAAM,MAAM,CAAC,GAAG,aAAa,CAAC,CAAC;YAC9E,SAAS;QACX,CAAC;QACD,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;YAC1D,IAAI,CAAC,8BAA8B,GAAG,CAAC,QAAQ,iBAAiB,UAAU,cAAc,CAAC,CAAC;YAC1F,SAAS;QACX,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,6BAA6B,CAAC,GAAG,EAAE;YACvD,WAAW,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS;SACtE,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAEpE,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,kCAAkC,UAAU,MAAM,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YAC/E,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACxC,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACrC,SAAS;QACX,CAAC;QAED,IAAI,MAAgD,CAAC;QACrD,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;QACpC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,yCAAyC,UAAU,MAAM,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtF,MAAM,cAAc,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;YACxD,SAAS;QACX,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;QACjD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnD,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,OAAO;QACL,KAAK;QACL,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,IAAI,QAAQ;gBAAE,OAAO;YACrB,QAAQ,GAAG,IAAI,CAAC;YAChB,MAAM,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;QACzD,CAAC;KACF,CAAC;AACJ,CAAC;AASD,SAAS,cAAc,CAAC,UAAkB,EAAE,MAAc,EAAE,IAAmB;IAC7E,MAAM,cAAc,GAAG,GAAG,UAAU,GAAG,uBAAuB,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC7E,0EAA0E;IAC1E,sEAAsE;IACtE,8CAA8C;IAC9C,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAY,CAAC;IACvE,OAAO;QACL,IAAI,EAAE,cAAc;QACpB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI;QAC9B,WAAW,EAAE,IAAI,CAAC,WAAW,IAAI,aAAa,IAAI,CAAC,IAAI,yBAAyB,UAAU,IAAI;QAC9F,UAAU;QACV,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,QAAQ,CAAC;gBACpC,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,SAAS,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,CAAE,MAAkC,CAAC,CAAC,CAAC,EAAE;aAC5E,CAAC,CAAmB,CAAC;YACtB,OAAO,iBAAiB,CAAC,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC1D,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CACxB,UAAkB,EAClB,QAAgB,EAChB,MAAsB;IAEtB,MAAM,UAAU,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACvE,MAAM,OAAO,GACX,UAAU,CAAC,MAAM,GAAG,CAAC;QACnB,CAAC,CAAE,UAAkD;QACrD,CAAC,CAAE;YACC;gBACE,IAAI,EAAE,MAAM;gBACZ,IAAI,EACF,MAAM,CAAC,iBAAiB,KAAK,SAAS;oBACpC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;oBACnD,CAAC,CAAC,IAAI,CAAC,SAAS,CACZ,EAAE,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,EAC/E,IAAI,EACJ,CAAC,CACF;aACR;SACsC,CAAC;IAChD,OAAO;QACL,OAAO;QACP,OAAO,EAAE;YACP,SAAS,EAAE,UAAU;YACrB,OAAO,EAAE,QAAQ;YACjB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;SAC5C;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,OAAmB;IAC/C,MAAM,OAAO,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAChD,MAAM,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,YAAY,KAAK;QAAE,OAAO,KAAK,CAAC,OAAO,CAAC;IACjD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC"}
@@ -62,6 +62,8 @@ export declare class TurnRunner {
62
62
  private turnUsage?;
63
63
  /** Ensures persisted memory hydrates once before the first turn that needs it. */
64
64
  private memoryLoaded;
65
+ /** MCP servers connected during start(). Disposed on runner.dispose(). */
66
+ private mcpRuntime?;
65
67
  protected readonly skillContext: SkillContext;
66
68
  constructor(config: TurnRunnerConfig);
67
69
  dispose(): Promise<void>;
@@ -147,6 +149,12 @@ export declare class TurnRunner {
147
149
  getSkillCollisions(): Promise<readonly SkillCollision[]>;
148
150
  getSkillInstructions(skillId: string): string;
149
151
  private ensureSkillsLoaded;
152
+ /**
153
+ * Connect to remote MCP servers exactly once per session. Subsequent starts
154
+ * (e.g. resumed sessions) reuse the existing runtime so tool identity stays
155
+ * stable. The runtime is disposed in dispose().
156
+ */
157
+ private ensureMcpServersConnected;
150
158
  private ensureMemoryLoaded;
151
159
  protected createBaseSystemPromptWithAppendedLayers(input?: {
152
160
  append?: Array<string | undefined>;
@@ -156,5 +164,6 @@ export declare class TurnRunner {
156
164
  private resolveTurnOptions;
157
165
  protected recordUsage(usage?: TurnTokenUsage | Usage): void;
158
166
  protected emitAgentEvent(event: AgentEvent): void;
167
+ protected emitParentAgentEvent(event: AgentEvent): void;
159
168
  }
160
169
  //# sourceMappingURL=turn-runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"turn-runner.d.ts","sourceRoot":"","sources":["../../../src/turn-runner/turn-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turn-runner.d.ts","sourceRoot":"","sources":["../../../src/turn-runner/turn-runner.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,7 @@ import { DEFAULT_CLI_MEMORY_MODEL, DEFAULT_CLI_MODEL, resolveModelName, } from "
10
10
  import { agentEventToTurnEvents, agentMessageText } from "./agent-events.js";
11
11
  import { createStateMachineSystemPromptLayer } from "./prompts.js";
12
12
  import { createDefaultTurnRunnerTools, createTurnRunnerTools, isTurnRunnerControlResult, } from "./tools.js";
13
+ import { connectMcpServers } from "./mcp.js";
13
14
  import { SkillContext } from "./skill-context.js";
14
15
  import { currentScheduledState, isWaitingOnScheduledState } from "./state-machine-session.js";
15
16
  import { StateMachineController, } from "./state-machine-controller.js";
@@ -53,6 +54,8 @@ export class TurnRunner {
53
54
  turnUsage;
54
55
  /** Ensures persisted memory hydrates once before the first turn that needs it. */
55
56
  memoryLoaded = false;
57
+ /** MCP servers connected during start(). Disposed on runner.dispose(). */
58
+ mcpRuntime;
56
59
  skillContext;
57
60
  constructor(config) {
58
61
  this.config = config;
@@ -69,6 +72,8 @@ export class TurnRunner {
69
72
  this.clearFollowUpQueue();
70
73
  await this.memoryDispose?.();
71
74
  this.memoryDispose = undefined;
75
+ await this.mcpRuntime?.dispose();
76
+ this.mcpRuntime = undefined;
72
77
  }
73
78
  subscribe(handler) {
74
79
  this.eventHandlers.add(handler);
@@ -91,6 +96,7 @@ export class TurnRunner {
91
96
  async start(command) {
92
97
  await this.ensureMemoryLoaded();
93
98
  await this.ensureSkillsLoaded();
99
+ await this.ensureMcpServersConnected(command.mcpServers);
94
100
  const mode = command.mode ?? this.config.mode ?? "auto";
95
101
  const startOptions = command.options;
96
102
  const state = command.state
@@ -713,19 +719,25 @@ export class TurnRunner {
713
719
  },
714
720
  };
715
721
  const skills = this.skillContext.getSkills();
722
+ const mcpTools = this.mcpRuntime?.tools ?? [];
716
723
  if (mode === "agent") {
717
- return { tools: createDefaultTurnRunnerTools(cwd, todoStorage, skills) };
724
+ return {
725
+ tools: [...createDefaultTurnRunnerTools(cwd, todoStorage, skills), ...mcpTools],
726
+ };
718
727
  }
719
728
  return {
720
- tools: createTurnRunnerTools({
721
- cwd,
722
- mode,
723
- getDefinition: () => this.stateMachineController.getSession()?.definition,
724
- getStateMachine: () => this.stateMachineController.getSession(),
725
- getActiveStateOutput: () => this.stateMachineController.getActiveOutput(),
726
- todoStorage,
727
- skills,
728
- }),
729
+ tools: [
730
+ ...createTurnRunnerTools({
731
+ cwd,
732
+ mode,
733
+ getDefinition: () => this.stateMachineController.getSession()?.definition,
734
+ getStateMachine: () => this.stateMachineController.getSession(),
735
+ getActiveStateOutput: () => this.stateMachineController.getActiveOutput(),
736
+ todoStorage,
737
+ skills,
738
+ }),
739
+ ...mcpTools,
740
+ ],
729
741
  };
730
742
  }
731
743
  replayFollowUpQueueIntoAgent(agent) {
@@ -755,7 +767,7 @@ export class TurnRunner {
755
767
  this.parentControlResult = { type: "none" };
756
768
  const previousMessageCount = agent.state.messages.length;
757
769
  this.setParentAgentRunning(true);
758
- const unsubscribe = agent.subscribe((event) => this.emitAgentEvent(event));
770
+ const unsubscribe = agent.subscribe((event) => this.emitParentAgentEvent(event));
759
771
  let interruptedDuringPrompt;
760
772
  try {
761
773
  await agent.prompt(input.prompt);
@@ -866,6 +878,16 @@ export class TurnRunner {
866
878
  async ensureSkillsLoaded() {
867
879
  await this.skillContext.ensureLoaded();
868
880
  }
881
+ /**
882
+ * Connect to remote MCP servers exactly once per session. Subsequent starts
883
+ * (e.g. resumed sessions) reuse the existing runtime so tool identity stays
884
+ * stable. The runtime is disposed in dispose().
885
+ */
886
+ async ensureMcpServersConnected(servers) {
887
+ if (this.mcpRuntime || !servers || Object.keys(servers).length === 0)
888
+ return;
889
+ this.mcpRuntime = await connectMcpServers(servers);
890
+ }
869
891
  async ensureMemoryLoaded() {
870
892
  if (this.memoryLoaded)
871
893
  return;
@@ -903,5 +925,15 @@ export class TurnRunner {
903
925
  this.emit(turnEvent);
904
926
  }
905
927
  }
928
+ emitParentAgentEvent(event) {
929
+ this.emitAgentEvent(event);
930
+ if (event.type !== "message_end" || event.message.role !== "assistant")
931
+ return;
932
+ this.emit({
933
+ type: "context_usage",
934
+ usage: event.message.usage,
935
+ contextWindow: this.requireParentAgent().state.model.contextWindow,
936
+ });
937
+ }
906
938
  }
907
939
  //# sourceMappingURL=turn-runner.js.map