@kenkaiiii/ggcoder 5.34.2 → 5.35.0

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 (52) hide show
  1. package/dist/app-sidecar.js +11 -0
  2. package/dist/app-sidecar.js.map +1 -1
  3. package/dist/core/compaction/compactor.d.ts +50 -0
  4. package/dist/core/compaction/compactor.d.ts.map +1 -1
  5. package/dist/core/compaction/compactor.js +136 -35
  6. package/dist/core/compaction/compactor.js.map +1 -1
  7. package/dist/core/compaction/compactor.test.js +131 -1
  8. package/dist/core/compaction/compactor.test.js.map +1 -1
  9. package/dist/core/lsp/manager.d.ts +44 -9
  10. package/dist/core/lsp/manager.d.ts.map +1 -1
  11. package/dist/core/lsp/manager.js +64 -69
  12. package/dist/core/lsp/manager.js.map +1 -1
  13. package/dist/core/lsp/pool.d.ts +113 -0
  14. package/dist/core/lsp/pool.d.ts.map +1 -0
  15. package/dist/core/lsp/pool.js +255 -0
  16. package/dist/core/lsp/pool.js.map +1 -0
  17. package/dist/core/lsp/pool.test.d.ts +2 -0
  18. package/dist/core/lsp/pool.test.d.ts.map +1 -0
  19. package/dist/core/lsp/pool.test.js +286 -0
  20. package/dist/core/lsp/pool.test.js.map +1 -0
  21. package/dist/core/lsp/servers.d.ts.map +1 -1
  22. package/dist/core/lsp/servers.js +44 -3
  23. package/dist/core/lsp/servers.js.map +1 -1
  24. package/dist/core/lsp/servers.test.d.ts +2 -0
  25. package/dist/core/lsp/servers.test.d.ts.map +1 -0
  26. package/dist/core/lsp/servers.test.js +67 -0
  27. package/dist/core/lsp/servers.test.js.map +1 -0
  28. package/dist/core/lsp/windows.test.js +2 -14
  29. package/dist/core/lsp/windows.test.js.map +1 -1
  30. package/dist/core/mcp/client.d.ts +40 -0
  31. package/dist/core/mcp/client.d.ts.map +1 -1
  32. package/dist/core/mcp/client.js +119 -1
  33. package/dist/core/mcp/client.js.map +1 -1
  34. package/dist/core/mcp/index.d.ts +2 -0
  35. package/dist/core/mcp/index.d.ts.map +1 -1
  36. package/dist/core/mcp/index.js +1 -0
  37. package/dist/core/mcp/index.js.map +1 -1
  38. package/dist/core/mcp/session-elicitation-wiring.test.d.ts +2 -0
  39. package/dist/core/mcp/session-elicitation-wiring.test.d.ts.map +1 -0
  40. package/dist/core/mcp/session-elicitation-wiring.test.js +138 -0
  41. package/dist/core/mcp/session-elicitation-wiring.test.js.map +1 -0
  42. package/dist/core/mcp/shared-pool.d.ts +158 -0
  43. package/dist/core/mcp/shared-pool.d.ts.map +1 -0
  44. package/dist/core/mcp/shared-pool.js +235 -0
  45. package/dist/core/mcp/shared-pool.js.map +1 -0
  46. package/dist/core/mcp/shared-pool.test.d.ts +2 -0
  47. package/dist/core/mcp/shared-pool.test.d.ts.map +1 -0
  48. package/dist/core/mcp/shared-pool.test.js +425 -0
  49. package/dist/core/mcp/shared-pool.test.js.map +1 -0
  50. package/dist/core/mcp/types.d.ts +12 -0
  51. package/dist/core/mcp/types.d.ts.map +1 -1
  52. package/package.json +4 -4
@@ -2,6 +2,7 @@ import type { ElicitResult } from "@modelcontextprotocol/client";
2
2
  import type { AgentTool } from "@kenkaiiii/gg-agent";
3
3
  import type { MCPServerConfig } from "./types.js";
4
4
  import { McpCatalogCache } from "./catalog-cache.js";
5
+ import { type SharedMcpPool } from "./shared-pool.js";
5
6
  /** Per-server connection outcome for the dashboard / non-interactive list. */
6
7
  export interface MCPConnectResult {
7
8
  name: string;
@@ -54,6 +55,13 @@ export declare class MCPClientManager {
54
55
  * `this.servers`. Sharing one promise means exactly one reconnect per outage.
55
56
  */
56
57
  private reconnecting;
58
+ /**
59
+ * Claims on process-wide shared connections, keyed by server name. Held so
60
+ * `dispose` can hand them back: the pooled child only exits once the LAST
61
+ * manager holding it releases, so leaking a claim here would pin the process
62
+ * for the daemon's lifetime — the exact bug sharing is meant to fix.
63
+ */
64
+ private sharedHandles;
57
65
  private readonly catalogCache;
58
66
  /**
59
67
  * Opt into the 2026-07-28 revision. Off by default: `mode: "auto"` probes with
@@ -67,10 +75,25 @@ export declare class MCPClientManager {
67
75
  * how the CLI runs, since it has nowhere to render the form.
68
76
  */
69
77
  private readonly onElicit?;
78
+ /**
79
+ * Pool backing `shared: true` servers. Defaults to the daemon-wide singleton;
80
+ * injectable so tests can exercise sharing without touching global state.
81
+ */
82
+ private readonly pool;
83
+ /**
84
+ * Fired when a connected server's transport closes on its own — a crashed or
85
+ * exited child, not our own `dispose`. The pool uses it to drop a dead
86
+ * connection so the next session rebuilds instead of inheriting a corpse.
87
+ */
88
+ private readonly onServerClosed?;
89
+ /** Set while `dispose` runs, so our own teardown is not reported as a death. */
90
+ private disposing;
70
91
  constructor(opts?: {
71
92
  catalogCache?: McpCatalogCache;
72
93
  modernProtocol?: boolean;
73
94
  onElicit?: MCPElicitHandler;
95
+ sharedPool?: SharedMcpPool;
96
+ onServerClosed?: (name: string) => void;
74
97
  });
75
98
  /**
76
99
  * Build a `Client` for one server, declaring elicitation support and wiring
@@ -100,6 +123,15 @@ export declare class MCPClientManager {
100
123
  * timeout and let the normal timeout handling deal with a real outage.
101
124
  */
102
125
  private negotiationOptions;
126
+ /**
127
+ * Claim the pooled connection for a shared server and adopt its tools.
128
+ *
129
+ * Shaped like `connectServer` (resolve tools / throw on failure) so the
130
+ * caller's `allSettled` handling is identical for both kinds. The pool
131
+ * reports failure in-band, so it is rethrown here with the message the pool
132
+ * already formatted.
133
+ */
134
+ private connectShared;
103
135
  /** Get-or-create the settlement record for one server name. */
104
136
  private connectionSlot;
105
137
  /**
@@ -114,6 +146,14 @@ export declare class MCPClientManager {
114
146
  * Connect every enabled server and return one result per server (success →
115
147
  * ok + toolCount; failure → ok:false with a human-readable error string).
116
148
  * Keeps successfully connected servers in `this.servers`.
149
+ *
150
+ * Shareable servers — stdio, unless opted out with `shared: false` — are not
151
+ * connected here at all: they are claimed from the process-wide pool, so every
152
+ * session in the daemon multiplexes over one child process instead of spawning
153
+ * its own. The split is invisible to callers — results and tools come back in
154
+ * the same shape, `whenConnected` settles for both kinds, and `dispose`
155
+ * releases the pooled claims — so sharing applies wherever a manager is used
156
+ * (sessions, CLI, subagents) without each call site opting in.
117
157
  */
118
158
  connectAllDetailed(configs: MCPServerConfig[]): Promise<MCPConnectResult[]>;
119
159
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/core/mcp/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../src/core/mcp/client.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import { McpOAuthStore } from "./oauth-store.js";
9
9
  import { isLocalhost, alternateLoopback, isNetworkError } from "./loopback.js";
10
10
  import { resolveStdioCommand } from "./resolve-stdio.js";
11
11
  import { McpCatalogCache } from "./catalog-cache.js";
12
+ import { isShareableServer, sharedMcpPool, } from "./shared-pool.js";
12
13
  export class MCPClientManager {
13
14
  servers = [];
14
15
  /**
@@ -23,6 +24,13 @@ export class MCPClientManager {
23
24
  * `this.servers`. Sharing one promise means exactly one reconnect per outage.
24
25
  */
25
26
  reconnecting = new Map();
27
+ /**
28
+ * Claims on process-wide shared connections, keyed by server name. Held so
29
+ * `dispose` can hand them back: the pooled child only exits once the LAST
30
+ * manager holding it releases, so leaking a claim here would pin the process
31
+ * for the daemon's lifetime — the exact bug sharing is meant to fix.
32
+ */
33
+ sharedHandles = new Map();
26
34
  catalogCache;
27
35
  /**
28
36
  * Opt into the 2026-07-28 revision. Off by default: `mode: "auto"` probes with
@@ -36,10 +44,25 @@ export class MCPClientManager {
36
44
  * how the CLI runs, since it has nowhere to render the form.
37
45
  */
38
46
  onElicit;
47
+ /**
48
+ * Pool backing `shared: true` servers. Defaults to the daemon-wide singleton;
49
+ * injectable so tests can exercise sharing without touching global state.
50
+ */
51
+ pool;
52
+ /**
53
+ * Fired when a connected server's transport closes on its own — a crashed or
54
+ * exited child, not our own `dispose`. The pool uses it to drop a dead
55
+ * connection so the next session rebuilds instead of inheriting a corpse.
56
+ */
57
+ onServerClosed;
58
+ /** Set while `dispose` runs, so our own teardown is not reported as a death. */
59
+ disposing = false;
39
60
  constructor(opts = {}) {
40
61
  this.catalogCache = opts.catalogCache ?? new McpCatalogCache();
41
62
  this.modernProtocol = opts.modernProtocol ?? false;
42
63
  this.onElicit = opts.onElicit;
64
+ this.pool = opts.sharedPool ?? sharedMcpPool;
65
+ this.onServerClosed = opts.onServerClosed;
43
66
  }
44
67
  /**
45
68
  * Build a `Client` for one server, declaring elicitation support and wiring
@@ -97,6 +120,72 @@ export class MCPClientManager {
97
120
  },
98
121
  };
99
122
  }
123
+ /**
124
+ * Claim the pooled connection for a shared server and adopt its tools.
125
+ *
126
+ * Shaped like `connectServer` (resolve tools / throw on failure) so the
127
+ * caller's `allSettled` handling is identical for both kinds. The pool
128
+ * reports failure in-band, so it is rethrown here with the message the pool
129
+ * already formatted.
130
+ */
131
+ async connectShared(config) {
132
+ const handle = await this.pool.acquire(config,
133
+ // The pooled connection is just another manager with sharing switched
134
+ // off, so it takes the normal connect path instead of recursing into the
135
+ // pool. Its elicit handler is the pool's dispatcher, NOT this session's:
136
+ // the connection is shared, so each request has to be routed to whichever
137
+ // session actually provoked it.
138
+ (opts) => {
139
+ const manager = new MCPClientManager({
140
+ catalogCache: opts.catalogCache,
141
+ modernProtocol: opts.modernProtocol,
142
+ onElicit: opts.onElicit,
143
+ sharedPool: this.pool,
144
+ // Let the pool retire this connection if its server exits.
145
+ onServerClosed: opts.onClosed,
146
+ });
147
+ return {
148
+ connect: async (target) => {
149
+ const [result] = await manager.connectAllDetailed([{ ...target, shared: false }]);
150
+ return (result ?? {
151
+ name: target.name,
152
+ ok: false,
153
+ toolCount: 0,
154
+ tools: [],
155
+ error: "connection produced no result",
156
+ });
157
+ },
158
+ dispose: () => manager.dispose(),
159
+ };
160
+ }, {
161
+ catalogCache: this.catalogCache,
162
+ modernProtocol: this.modernProtocol,
163
+ onElicit: this.onElicit,
164
+ });
165
+ if (!handle.result.ok) {
166
+ // Nothing was claimed on a failed connect, but releasing is idempotent
167
+ // and keeps this path honest if that ever changes.
168
+ await handle.release();
169
+ throw new Error(handle.result.error ?? "connection failed");
170
+ }
171
+ this.sharedHandles.set(config.name, handle);
172
+ // Wrap each pooled tool so a call from THIS session is attributable while
173
+ // it runs. The pool needs that to answer "which window asked?" when the
174
+ // server elicits mid-call; without it a shared server could only ever
175
+ // cancel its prompts.
176
+ return handle.result.tools.map((tool) => ({
177
+ ...tool,
178
+ execute: async (args, context) => {
179
+ const endCall = handle.beginCall();
180
+ try {
181
+ return await tool.execute(args, context);
182
+ }
183
+ finally {
184
+ endCall();
185
+ }
186
+ },
187
+ }));
188
+ }
100
189
  /** Get-or-create the settlement record for one server name. */
101
190
  connectionSlot(name) {
102
191
  const existing = this.connections.get(name);
@@ -141,6 +230,14 @@ export class MCPClientManager {
141
230
  * Connect every enabled server and return one result per server (success →
142
231
  * ok + toolCount; failure → ok:false with a human-readable error string).
143
232
  * Keeps successfully connected servers in `this.servers`.
233
+ *
234
+ * Shareable servers — stdio, unless opted out with `shared: false` — are not
235
+ * connected here at all: they are claimed from the process-wide pool, so every
236
+ * session in the daemon multiplexes over one child process instead of spawning
237
+ * its own. The split is invisible to callers — results and tools come back in
238
+ * the same shape, `whenConnected` settles for both kinds, and `dispose`
239
+ * releases the pooled claims — so sharing applies wherever a manager is used
240
+ * (sessions, CLI, subagents) without each call site opting in.
144
241
  */
145
242
  async connectAllDetailed(configs) {
146
243
  const enabled = configs.filter((c) => c.enabled !== false);
@@ -151,7 +248,7 @@ export class MCPClientManager {
151
248
  // promise instead of creating a second one.
152
249
  for (const config of enabled)
153
250
  this.connectionSlot(config.name);
154
- const settled = await Promise.allSettled(enabled.map((c) => this.connectServer(c)));
251
+ const settled = await Promise.allSettled(enabled.map((c) => (isShareableServer(c) ? this.connectShared(c) : this.connectServer(c))));
155
252
  const results = settled.map((result, i) => {
156
253
  const name = enabled[i].name;
157
254
  if (result.status === "fulfilled") {
@@ -411,6 +508,18 @@ export class MCPClientManager {
411
508
  }
412
509
  }
413
510
  this.servers.push({ name: config.name, client, transport, lastCallTime: 0, config });
511
+ // Report an unexpected close. A stdio child that crashes has no recovery
512
+ // path (`canRecoverSession` excludes stdio deliberately: respawning one
513
+ // mid-call would be a surprise), so the only safe response is to let the
514
+ // owner drop this connection and rebuild on the next use. That matters most
515
+ // for a POOLED connection, where a corpse would otherwise be handed to every
516
+ // session in the daemon, including ones that connect later.
517
+ client.onclose = () => {
518
+ if (this.disposing)
519
+ return;
520
+ log("WARN", "mcp", `MCP server "${config.name}" closed unexpectedly`);
521
+ this.onServerClosed?.(config.name);
522
+ };
414
523
  const { tools } = await client.listTools(undefined, { timeout });
415
524
  // Persist the live tool list so the NEXT cold start can answer tool_search
416
525
  // before this server has finished connecting. Awaited (a small serialized
@@ -621,8 +730,17 @@ export class MCPClientManager {
621
730
  }
622
731
  }
623
732
  async dispose() {
733
+ // Our own teardown closes transports too; flag it so those closes are not
734
+ // reported as unexpected deaths.
735
+ this.disposing = true;
624
736
  this.connections.clear();
625
737
  this.reconnecting.clear();
738
+ // Hand back pooled claims first. These are references, not connections —
739
+ // the shared child survives if another session still holds it, and exits
740
+ // when this was the last claim.
741
+ const handles = [...this.sharedHandles.values()];
742
+ this.sharedHandles.clear();
743
+ await Promise.all(handles.map((handle) => handle.release()));
626
744
  for (const server of this.servers) {
627
745
  try {
628
746
  await server.client.close();
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/core/mcp/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../src/core/mcp/client.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ export type { ElicitationBridge, ElicitationPrompt } from "./elicitation-bridge.
5
5
  export { McpOAuthStore } from "./oauth-store.js";
6
6
  export { McpOAuthProvider, mcpOAuthRedirectUrl, MCP_OAUTH_CALLBACK_PORT, } from "./oauth-provider.js";
7
7
  export { DEFAULT_MCP_SERVERS, getMCPServers, getAllMcpServers } from "./defaults.js";
8
+ export { isShareableServer, SharedMcpPool, sharedMcpPool } from "./shared-pool.js";
9
+ export type { SharedConnector, SharedServerHandle } from "./shared-pool.js";
8
10
  export type { MCPServerConfig } from "./types.js";
9
11
  export { loadServers, addServer, removeServer, getServer, globalMcpPath, projectMcpPath, } from "./store.js";
10
12
  export type { MCPScope, ScopedServer } from "./store.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACzF,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACrF,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EACL,WAAW,EACX,SAAS,EACT,YAAY,EACZ,SAAS,EACT,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,YAAY,EACV,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,cAAc,GACf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACzF,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACnF,YAAY,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC5E,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EACL,WAAW,EACX,SAAS,EACT,YAAY,EACZ,SAAS,EACT,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,YAAY,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -3,6 +3,7 @@ export { createElicitationBridge, MCP_ELICIT_TIMEOUT_MS } from "./elicitation-br
3
3
  export { McpOAuthStore } from "./oauth-store.js";
4
4
  export { McpOAuthProvider, mcpOAuthRedirectUrl, MCP_OAUTH_CALLBACK_PORT, } from "./oauth-provider.js";
5
5
  export { DEFAULT_MCP_SERVERS, getMCPServers, getAllMcpServers } from "./defaults.js";
6
+ export { isShareableServer, SharedMcpPool, sharedMcpPool } from "./shared-pool.js";
6
7
  export { loadServers, addServer, removeServer, getServer, globalMcpPath, projectMcpPath, } from "./store.js";
7
8
  export { parseMcpAddCommand } from "./parse-add-command.js";
8
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAO/C,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEzF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAErF,OAAO,EACL,WAAW,EACX,SAAS,EACT,YAAY,EACZ,SAAS,EACT,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/mcp/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAO/C,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEzF,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGnF,OAAO,EACL,WAAW,EACX,SAAS,EACT,YAAY,EACZ,SAAS,EACT,aAAa,EACb,cAAc,GACf,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=session-elicitation-wiring.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-elicitation-wiring.test.d.ts","sourceRoot":"","sources":["../../../src/core/mcp/session-elicitation-wiring.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,138 @@
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { describe, expect, it } from "vitest";
5
+ import { SharedMcpPool } from "./shared-pool.js";
6
+ /**
7
+ * Guards the wiring that makes one MCP process serve a whole window.
8
+ *
9
+ * A daemon window runs THREE sessions — the coding agent, Ken chat, and Ken
10
+ * autopilot — and every one of them connects to the same MCP servers. They only
11
+ * collapse onto a single child process if they agree on one thing: whether they
12
+ * can prompt the user.
13
+ *
14
+ * That is not a stylistic detail. A connection declares its elicitation
15
+ * capability once, at initialize, and servers use that declaration to decide
16
+ * whether to ask at all — so the pool cannot hand a prompting session and a
17
+ * headless one the same connection without lying to one of them. It keys them
18
+ * apart instead (see shared-pool.ts `keyFor`).
19
+ *
20
+ * The regression this file exists to catch: Ken's two factories originally
21
+ * omitted `onMcpElicit`, which made them headless, which split the pool, which
22
+ * produced a SECOND kencode-search process per daemon — measured, before the
23
+ * fix, as 2 processes for 6 sessions instead of 1. Nothing else failed, which is
24
+ * exactly why it needs a test.
25
+ */
26
+ const APP_SIDECAR = path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../../app-sidecar.ts");
27
+ /**
28
+ * Extract the object literal passed to each `new AgentSession({ ... })`.
29
+ *
30
+ * Brace-balanced rather than regex-terminated: these literals contain nested
31
+ * callbacks with their own braces, so a non-greedy match would stop at the
32
+ * first inner `}` and silently "pass" by inspecting a fragment.
33
+ */
34
+ function agentSessionOptionBlocks(source) {
35
+ const blocks = [];
36
+ const marker = "new AgentSession({";
37
+ let from = 0;
38
+ for (;;) {
39
+ const start = source.indexOf(marker, from);
40
+ if (start === -1)
41
+ return blocks;
42
+ let depth = 0;
43
+ let end = start + marker.length - 1;
44
+ for (; end < source.length; end++) {
45
+ const ch = source[end];
46
+ if (ch === "{")
47
+ depth++;
48
+ else if (ch === "}") {
49
+ depth--;
50
+ if (depth === 0)
51
+ break;
52
+ }
53
+ }
54
+ blocks.push(source.slice(start, end + 1));
55
+ from = end + 1;
56
+ }
57
+ }
58
+ describe("app-sidecar wires every window session for elicitation", () => {
59
+ it("passes an elicit handler to all three session factories", async () => {
60
+ const source = await fs.readFile(APP_SIDECAR, "utf8");
61
+ const blocks = agentSessionOptionBlocks(source);
62
+ // Coding agent + Ken chat + Ken autopilot. If this count changes, a new
63
+ // session kind was added and it needs the same wiring decision made
64
+ // deliberately rather than inherited by accident.
65
+ expect(blocks).toHaveLength(3);
66
+ for (const block of blocks) {
67
+ // Either wired directly, or via the shared base options object that
68
+ // carries `onMcpElicit` for the coding session.
69
+ const wired = block.includes("onMcpElicit") || block.includes("...baseSessionOptions");
70
+ expect(wired).toBe(true);
71
+ }
72
+ });
73
+ /**
74
+ * Named factories specifically, so the assertion above cannot be satisfied by
75
+ * three blocks that happen to be the wrong three.
76
+ */
77
+ it("wires Ken chat and Ken autopilot specifically, not just the coding agent", async () => {
78
+ const source = await fs.readFile(APP_SIDECAR, "utf8");
79
+ for (const factory of ["ensureKenSession", "ensureKenAutoSession"]) {
80
+ const start = source.indexOf(`async function ${factory}(`);
81
+ expect(start, `${factory} should exist`).toBeGreaterThan(-1);
82
+ const [options] = agentSessionOptionBlocks(source.slice(start));
83
+ expect(options, `${factory} should construct an AgentSession`).toBeDefined();
84
+ expect(options).toContain("onMcpElicit");
85
+ }
86
+ });
87
+ /** `onMcpElicit` must still be the option AgentSession forwards to MCP. */
88
+ it("forwards that option into the MCP client as onElicit", async () => {
89
+ const agentSession = await fs.readFile(path.resolve(path.dirname(fileURLToPath(import.meta.url)), "../agent-session.ts"), "utf8");
90
+ expect(agentSession).toContain("onElicit: this.opts.onMcpElicit");
91
+ });
92
+ });
93
+ describe("pool keying for a window's three sessions", () => {
94
+ const config = { name: "kencode-search", command: "npx" };
95
+ function connector(spawns) {
96
+ spawns.count += 1;
97
+ return {
98
+ connect: async (target) => ({
99
+ name: target.name,
100
+ ok: true,
101
+ toolCount: 0,
102
+ tools: [],
103
+ }),
104
+ dispose: async () => { },
105
+ };
106
+ }
107
+ const handler = async () => ({ action: "cancel" });
108
+ /** The shipped arrangement: coding + Ken chat + Ken autopilot, all windowed. */
109
+ it("gives all three a single shared connection when each can prompt", async () => {
110
+ const pool = new SharedMcpPool();
111
+ const spawns = { count: 0 };
112
+ const coding = await pool.acquire(config, () => connector(spawns), { onElicit: handler });
113
+ const kenChat = await pool.acquire(config, () => connector(spawns), { onElicit: handler });
114
+ const kenAuto = await pool.acquire(config, () => connector(spawns), { onElicit: handler });
115
+ expect(spawns.count).toBe(1);
116
+ expect(pool.size).toBe(1);
117
+ expect(pool.refCount(config, { onElicit: handler })).toBe(3);
118
+ await coding.release();
119
+ await kenChat.release();
120
+ await kenAuto.release();
121
+ expect(pool.size).toBe(0);
122
+ });
123
+ /**
124
+ * The regression, reproduced: drop the handler from Ken's sessions and the
125
+ * pool splits — one connection for the coding agent, a second for the two
126
+ * headless Ken sessions. Two processes where there should be one.
127
+ */
128
+ it("splits into a second connection when Ken's sessions cannot prompt", async () => {
129
+ const pool = new SharedMcpPool();
130
+ const spawns = { count: 0 };
131
+ await pool.acquire(config, () => connector(spawns), { onElicit: handler });
132
+ await pool.acquire(config, () => connector(spawns), {});
133
+ await pool.acquire(config, () => connector(spawns), {});
134
+ expect(spawns.count).toBe(2);
135
+ expect(pool.size).toBe(2);
136
+ });
137
+ });
138
+ //# sourceMappingURL=session-elicitation-wiring.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-elicitation-wiring.test.js","sourceRoot":"","sources":["../../../src/core/mcp/session-elicitation-wiring.test.ts"],"names":[],"mappings":"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"}