instar 1.3.683 → 1.3.684

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 (78) hide show
  1. package/dist/core/DynamicMcpManager.d.ts +105 -0
  2. package/dist/core/DynamicMcpManager.d.ts.map +1 -0
  3. package/dist/core/DynamicMcpManager.js +119 -0
  4. package/dist/core/DynamicMcpManager.js.map +1 -0
  5. package/dist/core/DynamicMcpService.d.ts +60 -0
  6. package/dist/core/DynamicMcpService.d.ts.map +1 -0
  7. package/dist/core/DynamicMcpService.js +76 -0
  8. package/dist/core/DynamicMcpService.js.map +1 -0
  9. package/dist/core/McpApprovalNonceStore.d.ts +46 -0
  10. package/dist/core/McpApprovalNonceStore.d.ts.map +1 -0
  11. package/dist/core/McpApprovalNonceStore.js +83 -0
  12. package/dist/core/McpApprovalNonceStore.js.map +1 -0
  13. package/dist/core/McpLoadedSetStore.d.ts +39 -0
  14. package/dist/core/McpLoadedSetStore.d.ts.map +1 -0
  15. package/dist/core/McpLoadedSetStore.js +82 -0
  16. package/dist/core/McpLoadedSetStore.js.map +1 -0
  17. package/dist/core/PostUpdateMigrator.d.ts +1 -0
  18. package/dist/core/PostUpdateMigrator.d.ts.map +1 -1
  19. package/dist/core/PostUpdateMigrator.js +19 -0
  20. package/dist/core/PostUpdateMigrator.js.map +1 -1
  21. package/dist/core/SessionManager.d.ts +20 -0
  22. package/dist/core/SessionManager.d.ts.map +1 -1
  23. package/dist/core/SessionManager.js +89 -0
  24. package/dist/core/SessionManager.js.map +1 -1
  25. package/dist/core/dynamicMcpConfig.d.ts +141 -0
  26. package/dist/core/dynamicMcpConfig.d.ts.map +1 -0
  27. package/dist/core/dynamicMcpConfig.js +125 -0
  28. package/dist/core/dynamicMcpConfig.js.map +1 -0
  29. package/dist/core/frameworkSessionLaunch.d.ts +11 -0
  30. package/dist/core/frameworkSessionLaunch.d.ts.map +1 -1
  31. package/dist/core/frameworkSessionLaunch.js +7 -0
  32. package/dist/core/frameworkSessionLaunch.js.map +1 -1
  33. package/dist/core/mcpPidCapture.d.ts +43 -0
  34. package/dist/core/mcpPidCapture.d.ts.map +1 -0
  35. package/dist/core/mcpPidCapture.js +44 -0
  36. package/dist/core/mcpPidCapture.js.map +1 -0
  37. package/dist/core/types.d.ts +10 -0
  38. package/dist/core/types.d.ts.map +1 -1
  39. package/dist/core/types.js.map +1 -1
  40. package/dist/monitoring/McpIdleOffloadSweep.d.ts +61 -0
  41. package/dist/monitoring/McpIdleOffloadSweep.d.ts.map +1 -0
  42. package/dist/monitoring/McpIdleOffloadSweep.js +89 -0
  43. package/dist/monitoring/McpIdleOffloadSweep.js.map +1 -0
  44. package/dist/monitoring/mcpIdleLiveOffload.d.ts +68 -0
  45. package/dist/monitoring/mcpIdleLiveOffload.d.ts.map +1 -0
  46. package/dist/monitoring/mcpIdleLiveOffload.js +59 -0
  47. package/dist/monitoring/mcpIdleLiveOffload.js.map +1 -0
  48. package/dist/scaffold/templates.d.ts.map +1 -1
  49. package/dist/scaffold/templates.js +2 -1
  50. package/dist/scaffold/templates.js.map +1 -1
  51. package/dist/server/AgentServer.d.ts +2 -0
  52. package/dist/server/AgentServer.d.ts.map +1 -1
  53. package/dist/server/AgentServer.js +165 -0
  54. package/dist/server/AgentServer.js.map +1 -1
  55. package/dist/server/CapabilityIndex.d.ts.map +1 -1
  56. package/dist/server/CapabilityIndex.js +1 -0
  57. package/dist/server/CapabilityIndex.js.map +1 -1
  58. package/dist/server/routes.d.ts +4 -0
  59. package/dist/server/routes.d.ts.map +1 -1
  60. package/dist/server/routes.js +51 -0
  61. package/dist/server/routes.js.map +1 -1
  62. package/package.json +1 -1
  63. package/src/data/builtin-manifest.json +65 -65
  64. package/src/scaffold/templates.ts +2 -1
  65. package/upgrades/1.3.684.md +62 -0
  66. package/upgrades/side-effects/dynamic-mcp-awareness.md +36 -0
  67. package/upgrades/side-effects/dynamic-mcp-baseline-at-spawn.md +74 -0
  68. package/upgrades/side-effects/dynamic-mcp-capability-classification.md +36 -0
  69. package/upgrades/side-effects/dynamic-mcp-driver.md +53 -0
  70. package/upgrades/side-effects/dynamic-mcp-idle-sweep.md +40 -0
  71. package/upgrades/side-effects/dynamic-mcp-launch-resolver.md +44 -0
  72. package/upgrades/side-effects/dynamic-mcp-loaded-set-store.md +37 -0
  73. package/upgrades/side-effects/dynamic-mcp-nonce-store.md +38 -0
  74. package/upgrades/side-effects/dynamic-mcp-pure-cores.md +53 -0
  75. package/upgrades/side-effects/dynamic-mcp-real-offload.md +57 -0
  76. package/upgrades/side-effects/dynamic-mcp-routes-wiring.md +59 -0
  77. package/upgrades/side-effects/dynamic-mcp-service.md +41 -0
  78. package/upgrades/side-effects/dynamic-mcp-sweep-wiring.md +46 -0
@@ -0,0 +1,141 @@
1
+ /**
2
+ * Dynamic MCP config — the pure core of the on-demand MCP-server lifecycle.
3
+ *
4
+ * Claude Code fixes a session's MCP server set AT LAUNCH (it reads the project's
5
+ * `.mcp.json`, or an explicit `--mcp-config`). MCP servers are heavy and mostly
6
+ * idle (a whole Chromium for Playwright, an Electron bridge) and were a dominant
7
+ * share of the steady-state process footprint behind the 2026-06-26 resource
8
+ * panic. There is no hot-reload: changing a session's MCP set requires relaunching
9
+ * it with a different `--mcp-config` (a `claude --resume` keeps the conversation).
10
+ *
11
+ * Justin's correction (2026-06-27): a topic's MCP needs are NOT knowable at launch
12
+ * and must be changeable MID-SESSION (a restart is acceptable). So this is NOT a
13
+ * static per-topic profile. It is a small, mechanical state model:
14
+ *
15
+ * - resolveBaselineServers — the lean set a session LAUNCHES with (opt-in trim).
16
+ * - mutateLoadedServers — load/offload one server from the running set
17
+ * (the caller then rewrites the config + restarts).
18
+ *
19
+ * Policy lives OUTSIDE this module: WHEN to offload an idle server is decided by
20
+ * `decideIdleLiveOffload` (mcpIdleLiveOffload.ts); WHAT to keep warm is config.
21
+ * This module only computes the resulting server set, purely + deterministically,
22
+ * so the decision boundaries are unit-testable in isolation. It NEVER spawns,
23
+ * kills, or writes anything.
24
+ *
25
+ * Default-no-op + dark: with the feature off, `resolveBaselineServers` returns
26
+ * `null` ⇒ the caller adds NO `--mcp-config` flag ⇒ Claude reads the full
27
+ * `.mcp.json` exactly as today. A session only loses a server by EXPLICIT
28
+ * configuration or an explicit offload request.
29
+ */
30
+ /** The minimal `.mcp.json` shape we read/filter. */
31
+ export interface McpJson {
32
+ mcpServers?: Record<string, unknown>;
33
+ [k: string]: unknown;
34
+ }
35
+ /**
36
+ * Filter a parsed `.mcp.json` down to the allowed server set, preserving every
37
+ * other top-level field. Unknown names in `allowed` are ignored (they can't be
38
+ * launched). Pure — returns a new object, never mutates the input.
39
+ */
40
+ export declare function filterMcpConfig(full: McpJson, allowed: string[]): McpJson;
41
+ /** The `dynamicMcp` config shape (all optional; absence ⇒ no-op). */
42
+ export interface DynamicMcpConfig {
43
+ /** Master switch — DARK by default. Off ⇒ resolution returns null (full .mcp.json). */
44
+ enabled?: boolean;
45
+ /**
46
+ * Server names launched at baseline (the lean warm set). When provided, a
47
+ * session launches with ONLY the intersection of this list and the servers
48
+ * that actually exist in `.mcp.json`. When OMITTED (but enabled), the baseline
49
+ * is the FULL `.mcp.json` (no trim) — trimming is an explicit per-agent opt-in
50
+ * for an agent that has additional heavy dynamic servers. Justin's default
51
+ * intent: Playwright stays warm ("used often"); a heavy non-Playwright server
52
+ * is dynamic. Light stdio bridges (threadline/instar) are cheap and stay.
53
+ */
54
+ keepWarm?: string[];
55
+ /**
56
+ * The automatic idle-offload sweep (McpIdleOffloadSweep). Off by default; runs
57
+ * ONLY when `enabled` AND `sweep.enabled` are both true. `dryRun` defaults true
58
+ * (logs "would offload" without acting). `idleOffloadMs` is the continuous-idle
59
+ * window before a heavy server becomes offload-eligible; `intervalMs` the tick.
60
+ */
61
+ sweep?: {
62
+ enabled?: boolean;
63
+ dryRun?: boolean;
64
+ idleOffloadMs?: number;
65
+ intervalMs?: number;
66
+ };
67
+ }
68
+ /**
69
+ * Resolve which MCP servers a session should LAUNCH with, given the names that
70
+ * exist in `.mcp.json`. Returns `null` when the full `.mcp.json` should be used
71
+ * unchanged (the default): the feature is disabled. When enabled with no
72
+ * `keepWarm`, also returns null (no trim — explicit opt-in only). When enabled
73
+ * WITH `keepWarm`, returns the (de-duped) intersection with the real servers.
74
+ */
75
+ export declare function resolveBaselineServers(allServerNames: string[], cfg: DynamicMcpConfig | undefined): string[] | null;
76
+ /** A single load/offload request against a session's currently-loaded server set. */
77
+ export interface McpMutateOp {
78
+ kind: 'load' | 'offload';
79
+ /** The `.mcp.json` server name to add or remove. */
80
+ server: string;
81
+ }
82
+ export interface McpMutateResult {
83
+ /** Whether the resulting set differs from `current` (⇒ a restart is warranted). */
84
+ changed: boolean;
85
+ /** The resulting server set (always a fresh, de-duped, sorted-stable array). */
86
+ servers: string[];
87
+ /** Machine-readable outcome for audit/tests. */
88
+ reason: 'loaded' | 'already-loaded' | 'unknown-server' | 'offloaded' | 'not-loaded';
89
+ }
90
+ /**
91
+ * Apply ONE load/offload op to a session's currently-loaded server set.
92
+ * Purely mechanical — POLICY (when to offload, what to keep warm) lives elsewhere.
93
+ * - load an UNKNOWN server (not in `.mcp.json`) → rejected (`unknown-server`,
94
+ * no change): you cannot launch a server that isn't defined.
95
+ * - load an ALREADY-loaded server → no-op (`already-loaded`).
96
+ * - load a known, absent server → added (`loaded`).
97
+ * - offload an absent server → no-op (`not-loaded`).
98
+ * - offload a present server → removed (`offloaded`).
99
+ * Never mutates the input arrays.
100
+ */
101
+ export declare function mutateLoadedServers(current: string[], allServerNames: string[], op: McpMutateOp): McpMutateResult;
102
+ export declare const DEFAULT_DYNAMIC_MCP_CONFIG: DynamicMcpConfig;
103
+ /**
104
+ * The per-spawn inputs to the launch-set resolution (all already gathered by the
105
+ * caller, which does the IO). Kept pure so the load-bearing RESOLUTION ORDER —
106
+ * the part a wrong move strands a session on — is unit-testable in isolation.
107
+ */
108
+ export interface SessionMcpResolutionInput {
109
+ /** The feature switch AS ALREADY RESOLVED by the caller (dev-agent gate /
110
+ * explicit flag). The pure resolver does not re-derive it. */
111
+ enabled: boolean;
112
+ /** The launching session's framework. MCP `--mcp-config` is Claude-Code-specific. */
113
+ framework: string;
114
+ /** Servers from a COMMITTED loaded-set state file, or null if none/un-committed. */
115
+ committedStateServers: string[] | null;
116
+ /** True iff a state file EXISTS but could not be read/parsed (drives the M6
117
+ * fail-toward-lean-baseline, not fail-toward-full-config, decision). */
118
+ stateFileUnreadable: boolean;
119
+ /** `resolveBaselineServers(...)` result (the lean set, or null = full config). */
120
+ baselineServers: string[] | null;
121
+ }
122
+ /**
123
+ * Resolve which MCP servers a session should LAUNCH with — the gate ORDER is
124
+ * load-bearing (folds convergence findings C3 + M6):
125
+ * 1. enabled-gate: off ⇒ null (full .mcp.json). Checked FIRST, before any state
126
+ * file, so disabling the feature is a clean no-op even for a topic whose
127
+ * state file says ["threadline"] (it would otherwise relaunch trimmed +
128
+ * stranded after rollback). [C3]
129
+ * 2. framework-gate: non-claude-code ⇒ null (MCP flags are Claude-specific).
130
+ * 3. committed state file ⇒ its servers (an un-committed file was passed as null
131
+ * by the caller — the two-phase-commit contract).
132
+ * 4. state file unreadable ⇒ the LEAN baseline (NOT full config) — a transient
133
+ * state-dir error must not relaunch every heavy server warm and re-create the
134
+ * exhaustion condition. [M6]
135
+ * 5. baseline ⇒ its servers.
136
+ * 6. null (full .mcp.json — the default).
137
+ * Returns the allowed server-name list to filter `.mcp.json` to, or `null` when
138
+ * the full `.mcp.json` should be used unchanged.
139
+ */
140
+ export declare function resolveSessionMcpServers(input: SessionMcpResolutionInput): string[] | null;
141
+ //# sourceMappingURL=dynamicMcpConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamicMcpConfig.d.ts","sourceRoot":"","sources":["../../src/core/dynamicMcpConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,oDAAoD;AACpD,MAAM,WAAW,OAAO;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAQzE;AAED,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,uFAAuF;IACvF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;;;;OAKG;IACH,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,MAAM,EAAE,EACxB,GAAG,EAAE,gBAAgB,GAAG,SAAS,GAChC,MAAM,EAAE,GAAG,IAAI,CAMjB;AAED,qFAAqF;AACrF,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,oDAAoD;IACpD,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,mFAAmF;IACnF,OAAO,EAAE,OAAO,CAAC;IACjB,gFAAgF;IAChF,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gDAAgD;IAChD,MAAM,EACF,QAAQ,GACR,gBAAgB,GAChB,gBAAgB,GAChB,WAAW,GACX,YAAY,CAAC;CAClB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,MAAM,EAAE,EACjB,cAAc,EAAE,MAAM,EAAE,EACxB,EAAE,EAAE,WAAW,GACd,eAAe,CAsBjB;AAED,eAAO,MAAM,0BAA0B,EAAE,gBAExC,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC;mEAC+D;IAC/D,OAAO,EAAE,OAAO,CAAC;IACjB,qFAAqF;IACrF,SAAS,EAAE,MAAM,CAAC;IAClB,oFAAoF;IACpF,qBAAqB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACvC;6EACyE;IACzE,mBAAmB,EAAE,OAAO,CAAC;IAC7B,kFAAkF;IAClF,eAAe,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,yBAAyB,GAAG,MAAM,EAAE,GAAG,IAAI,CAM1F"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Dynamic MCP config — the pure core of the on-demand MCP-server lifecycle.
3
+ *
4
+ * Claude Code fixes a session's MCP server set AT LAUNCH (it reads the project's
5
+ * `.mcp.json`, or an explicit `--mcp-config`). MCP servers are heavy and mostly
6
+ * idle (a whole Chromium for Playwright, an Electron bridge) and were a dominant
7
+ * share of the steady-state process footprint behind the 2026-06-26 resource
8
+ * panic. There is no hot-reload: changing a session's MCP set requires relaunching
9
+ * it with a different `--mcp-config` (a `claude --resume` keeps the conversation).
10
+ *
11
+ * Justin's correction (2026-06-27): a topic's MCP needs are NOT knowable at launch
12
+ * and must be changeable MID-SESSION (a restart is acceptable). So this is NOT a
13
+ * static per-topic profile. It is a small, mechanical state model:
14
+ *
15
+ * - resolveBaselineServers — the lean set a session LAUNCHES with (opt-in trim).
16
+ * - mutateLoadedServers — load/offload one server from the running set
17
+ * (the caller then rewrites the config + restarts).
18
+ *
19
+ * Policy lives OUTSIDE this module: WHEN to offload an idle server is decided by
20
+ * `decideIdleLiveOffload` (mcpIdleLiveOffload.ts); WHAT to keep warm is config.
21
+ * This module only computes the resulting server set, purely + deterministically,
22
+ * so the decision boundaries are unit-testable in isolation. It NEVER spawns,
23
+ * kills, or writes anything.
24
+ *
25
+ * Default-no-op + dark: with the feature off, `resolveBaselineServers` returns
26
+ * `null` ⇒ the caller adds NO `--mcp-config` flag ⇒ Claude reads the full
27
+ * `.mcp.json` exactly as today. A session only loses a server by EXPLICIT
28
+ * configuration or an explicit offload request.
29
+ */
30
+ /**
31
+ * Filter a parsed `.mcp.json` down to the allowed server set, preserving every
32
+ * other top-level field. Unknown names in `allowed` are ignored (they can't be
33
+ * launched). Pure — returns a new object, never mutates the input.
34
+ */
35
+ export function filterMcpConfig(full, allowed) {
36
+ const allowSet = new Set(allowed);
37
+ const srcServers = (full && typeof full === 'object' ? full.mcpServers : undefined) ?? {};
38
+ const filtered = {};
39
+ for (const [name, def] of Object.entries(srcServers)) {
40
+ if (allowSet.has(name))
41
+ filtered[name] = def;
42
+ }
43
+ return { ...full, mcpServers: filtered };
44
+ }
45
+ /**
46
+ * Resolve which MCP servers a session should LAUNCH with, given the names that
47
+ * exist in `.mcp.json`. Returns `null` when the full `.mcp.json` should be used
48
+ * unchanged (the default): the feature is disabled. When enabled with no
49
+ * `keepWarm`, also returns null (no trim — explicit opt-in only). When enabled
50
+ * WITH `keepWarm`, returns the (de-duped) intersection with the real servers.
51
+ */
52
+ export function resolveBaselineServers(allServerNames, cfg) {
53
+ if (!cfg || cfg.enabled !== true)
54
+ return null;
55
+ if (!Array.isArray(cfg.keepWarm))
56
+ return null; // enabled but no trim configured ⇒ full set
57
+ const exists = new Set(allServerNames);
58
+ const warm = cfg.keepWarm.filter((s) => typeof s === 'string' && s.length > 0 && exists.has(s));
59
+ return [...new Set(warm)];
60
+ }
61
+ /**
62
+ * Apply ONE load/offload op to a session's currently-loaded server set.
63
+ * Purely mechanical — POLICY (when to offload, what to keep warm) lives elsewhere.
64
+ * - load an UNKNOWN server (not in `.mcp.json`) → rejected (`unknown-server`,
65
+ * no change): you cannot launch a server that isn't defined.
66
+ * - load an ALREADY-loaded server → no-op (`already-loaded`).
67
+ * - load a known, absent server → added (`loaded`).
68
+ * - offload an absent server → no-op (`not-loaded`).
69
+ * - offload a present server → removed (`offloaded`).
70
+ * Never mutates the input arrays.
71
+ */
72
+ export function mutateLoadedServers(current, allServerNames, op) {
73
+ const set = new Set(current.filter((s) => typeof s === 'string' && s.length > 0));
74
+ const known = new Set(allServerNames);
75
+ const server = op.server;
76
+ if (op.kind === 'load') {
77
+ if (!known.has(server)) {
78
+ return { changed: false, servers: [...set], reason: 'unknown-server' };
79
+ }
80
+ if (set.has(server)) {
81
+ return { changed: false, servers: [...set], reason: 'already-loaded' };
82
+ }
83
+ set.add(server);
84
+ return { changed: true, servers: [...set], reason: 'loaded' };
85
+ }
86
+ // offload
87
+ if (!set.has(server)) {
88
+ return { changed: false, servers: [...set], reason: 'not-loaded' };
89
+ }
90
+ set.delete(server);
91
+ return { changed: true, servers: [...set], reason: 'offloaded' };
92
+ }
93
+ export const DEFAULT_DYNAMIC_MCP_CONFIG = {
94
+ enabled: false,
95
+ };
96
+ /**
97
+ * Resolve which MCP servers a session should LAUNCH with — the gate ORDER is
98
+ * load-bearing (folds convergence findings C3 + M6):
99
+ * 1. enabled-gate: off ⇒ null (full .mcp.json). Checked FIRST, before any state
100
+ * file, so disabling the feature is a clean no-op even for a topic whose
101
+ * state file says ["threadline"] (it would otherwise relaunch trimmed +
102
+ * stranded after rollback). [C3]
103
+ * 2. framework-gate: non-claude-code ⇒ null (MCP flags are Claude-specific).
104
+ * 3. committed state file ⇒ its servers (an un-committed file was passed as null
105
+ * by the caller — the two-phase-commit contract).
106
+ * 4. state file unreadable ⇒ the LEAN baseline (NOT full config) — a transient
107
+ * state-dir error must not relaunch every heavy server warm and re-create the
108
+ * exhaustion condition. [M6]
109
+ * 5. baseline ⇒ its servers.
110
+ * 6. null (full .mcp.json — the default).
111
+ * Returns the allowed server-name list to filter `.mcp.json` to, or `null` when
112
+ * the full `.mcp.json` should be used unchanged.
113
+ */
114
+ export function resolveSessionMcpServers(input) {
115
+ if (!input.enabled)
116
+ return null; // [C3] enabled-gate FIRST
117
+ if (input.framework !== 'claude-code')
118
+ return null;
119
+ if (input.committedStateServers !== null)
120
+ return input.committedStateServers;
121
+ if (input.stateFileUnreadable)
122
+ return input.baselineServers; // [M6] lean, not full
123
+ return input.baselineServers;
124
+ }
125
+ //# sourceMappingURL=dynamicMcpConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamicMcpConfig.js","sourceRoot":"","sources":["../../src/core/dynamicMcpConfig.ts"],"names":[],"mappings":"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"}
@@ -100,6 +100,17 @@ export interface InteractiveLaunchOptions {
100
100
  * non-claude frameworks. NEVER a token — just the login location.
101
101
  */
102
102
  configHome?: string;
103
+ /**
104
+ * Dynamic MCP Lifecycle (claude-code only): the MCP-config CLI flags this
105
+ * session should launch with — e.g. `['--strict-mcp-config', '--mcp-config',
106
+ * '<filtered.json>']` to launch with only a lean subset of `.mcp.json`. Built
107
+ * by `SessionManager.buildSessionMcpFlags` (state-file/baseline resolution,
108
+ * fail-safe to `[]`). An empty/absent array ⇒ no flags ⇒ Claude reads the full
109
+ * project `.mcp.json` exactly as today (the dark default). No effect on
110
+ * non-claude frameworks (their builders ignore it — MCP `--mcp-config` is
111
+ * Claude-Code-specific). See DYNAMIC-MCP-LIFECYCLE-SPEC.
112
+ */
113
+ mcpFlags?: string[];
103
114
  /**
104
115
  * Topic Profile §6 — per-topic thinking mode. Mapped per framework:
105
116
  * - claude-code: `--effort <low|medium|high|max>` (the live CLI's verified
@@ -1 +1 @@
1
- {"version":3,"file":"frameworkSessionLaunch.d.ts","sourceRoot":"","sources":["../../src/core/frameworkSessionLaunch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frameworkSessionLaunch.d.ts","sourceRoot":"","sources":["../../src/core/frameworkSessionLaunch.ts"],"names":[],"mappings":"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"}
@@ -163,6 +163,13 @@ const claudeCodeBuilder = (options) => {
163
163
  if (options.configHome) {
164
164
  envOverrides.CLAUDE_CONFIG_DIR = options.configHome;
165
165
  }
166
+ // Dynamic MCP Lifecycle (claude-code only): launch with a lean/explicit MCP set
167
+ // when SessionManager.buildSessionMcpFlags resolved one. Empty/absent ⇒ no flags
168
+ // ⇒ full project .mcp.json (the dark default). The caller already fail-safed to
169
+ // [] on any error, so a bad resolution can never strand the launch here.
170
+ if (Array.isArray(options.mcpFlags) && options.mcpFlags.length > 0) {
171
+ argv.push(...options.mcpFlags);
172
+ }
166
173
  return { argv, envOverrides };
167
174
  };
168
175
  const codexCliBuilder = (options) => {
@@ -1 +1 @@
1
- {"version":3,"file":"frameworkSessionLaunch.js","sourceRoot":"","sources":["../../src/core/frameworkSessionLaunch.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frameworkSessionLaunch.js","sourceRoot":"","sources":["../../src/core/frameworkSessionLaunch.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * mcpPidCapture — pure helper for the dynamic-MCP offload's capture-then-reap
3
+ * (DYNAMIC-MCP-LIFECYCLE-SPEC, fold C1). Given the live MCP process list + the
4
+ * process tree + the tmux pane map, it returns the heavy MCP child PIDs that
5
+ * belong to a specific session AND a specific `.mcp.json` server — the orphans the
6
+ * driver must reap after an offload restart (killing a session does NOT cascade to
7
+ * its MCP children; they reparent to launchd and survive).
8
+ *
9
+ * Pure + conservative: an unknown / non-heavy server, or a proc whose owning
10
+ * session can't be resolved to the target, contributes NO pid. The worst case is
11
+ * "capture nothing" (a missed reclaim the generic reaper still backstops), never
12
+ * "kill the wrong pid".
13
+ */
14
+ import { type McpProcessInfo } from '../monitoring/McpProcessReaper.js';
15
+ import type { McpProcessSignature } from '../monitoring/mcpProcessSignatures.js';
16
+ /**
17
+ * Map a `.mcp.json` server NAME (what a load/offload request names) to the MCP
18
+ * process SIGNATURE id (what the process scan matches). Conservative: an unmapped
19
+ * server resolves to no signature ⇒ no pids captured. Extend as heavy servers are
20
+ * added (e.g. an Electron bridge) alongside HEAVY_MCP_SIGNATURE_IDS.
21
+ */
22
+ export declare const MCP_SERVER_NAME_TO_SIGNATURE: Readonly<Record<string, McpProcessSignature['id']>>;
23
+ export interface CaptureHeavyPidsInput {
24
+ /** The owning tmux session name the offload is restarting. */
25
+ sessionName: string;
26
+ /** The `.mcp.json` server name being offloaded. */
27
+ server: string;
28
+ /** The live MCP process scan. */
29
+ procs: McpProcessInfo[];
30
+ /** pid → ppid map (ancestor resolution). */
31
+ tree: Map<number, number>;
32
+ /** tmux pane pid → session name. */
33
+ paneMap: Map<number, string>;
34
+ /** Max ppid hops when resolving a proc's owning session. */
35
+ maxHops: number;
36
+ }
37
+ /**
38
+ * The heavy MCP child PIDs for (sessionName, server) — the offload-orphan capture.
39
+ * Returns [] when: the server has no known heavy signature, or no matching proc
40
+ * resolves to the target session.
41
+ */
42
+ export declare function captureHeavyMcpPidsForSession(input: CaptureHeavyPidsInput): number[];
43
+ //# sourceMappingURL=mcpPidCapture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpPidCapture.d.ts","sourceRoot":"","sources":["../../src/core/mcpPidCapture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAE9F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AAEjF;;;;;GAKG;AACH,eAAO,MAAM,4BAA4B,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAE5F,CAAC;AAEF,MAAM,WAAW,qBAAqB;IACpC,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,mDAAmD;IACnD,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,4CAA4C;IAC5C,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1B,oCAAoC;IACpC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,4DAA4D;IAC5D,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,6BAA6B,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,EAAE,CAWpF"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * mcpPidCapture — pure helper for the dynamic-MCP offload's capture-then-reap
3
+ * (DYNAMIC-MCP-LIFECYCLE-SPEC, fold C1). Given the live MCP process list + the
4
+ * process tree + the tmux pane map, it returns the heavy MCP child PIDs that
5
+ * belong to a specific session AND a specific `.mcp.json` server — the orphans the
6
+ * driver must reap after an offload restart (killing a session does NOT cascade to
7
+ * its MCP children; they reparent to launchd and survive).
8
+ *
9
+ * Pure + conservative: an unknown / non-heavy server, or a proc whose owning
10
+ * session can't be resolved to the target, contributes NO pid. The worst case is
11
+ * "capture nothing" (a missed reclaim the generic reaper still backstops), never
12
+ * "kill the wrong pid".
13
+ */
14
+ import { resolveOwningSession } from '../monitoring/McpProcessReaper.js';
15
+ import { isHeavyMcpSignature } from '../monitoring/mcpIdleLiveOffload.js';
16
+ /**
17
+ * Map a `.mcp.json` server NAME (what a load/offload request names) to the MCP
18
+ * process SIGNATURE id (what the process scan matches). Conservative: an unmapped
19
+ * server resolves to no signature ⇒ no pids captured. Extend as heavy servers are
20
+ * added (e.g. an Electron bridge) alongside HEAVY_MCP_SIGNATURE_IDS.
21
+ */
22
+ export const MCP_SERVER_NAME_TO_SIGNATURE = {
23
+ playwright: 'playwright-mcp',
24
+ };
25
+ /**
26
+ * The heavy MCP child PIDs for (sessionName, server) — the offload-orphan capture.
27
+ * Returns [] when: the server has no known heavy signature, or no matching proc
28
+ * resolves to the target session.
29
+ */
30
+ export function captureHeavyMcpPidsForSession(input) {
31
+ const sig = MCP_SERVER_NAME_TO_SIGNATURE[input.server];
32
+ if (!sig || !isHeavyMcpSignature(sig))
33
+ return []; // unknown / not-heavy ⇒ nothing to capture
34
+ const pids = [];
35
+ for (const p of input.procs) {
36
+ if (p.signatureId !== sig)
37
+ continue;
38
+ if (resolveOwningSession(p.pid, input.tree, input.paneMap, input.maxHops) === input.sessionName) {
39
+ pids.push(p.pid);
40
+ }
41
+ }
42
+ return pids;
43
+ }
44
+ //# sourceMappingURL=mcpPidCapture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpPidCapture.js","sourceRoot":"","sources":["../../src/core/mcpPidCapture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,oBAAoB,EAAuB,MAAM,mCAAmC,CAAC;AAC9F,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAG1E;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAwD;IAC/F,UAAU,EAAE,gBAAgB;CAC7B,CAAC;AAiBF;;;;GAIG;AACH,MAAM,UAAU,6BAA6B,CAAC,KAA4B;IACxE,MAAM,GAAG,GAAG,4BAA4B,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvD,IAAI,CAAC,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC,CAAC,2CAA2C;IAC7F,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC5B,IAAI,CAAC,CAAC,WAAW,KAAK,GAAG;YAAE,SAAS;QACpC,IAAI,oBAAoB,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,WAAW,EAAE,CAAC;YAChG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -248,6 +248,16 @@ export interface SessionManagerConfig {
248
248
  * field existed, spawnInteractiveSession hardcoded 'claude-code',
249
249
  * so messaging a Codex-only agent spawned a Claude session. */
250
250
  framework?: 'claude-code' | 'codex-cli' | 'gemini-cli' | 'pi-cli';
251
+ /**
252
+ * Dynamic MCP Lifecycle (DYNAMIC-MCP-LIFECYCLE-SPEC). When enabled, a
253
+ * claude-code interactive session launches with a lean MCP subset
254
+ * (`keepWarm`) instead of the full `.mcp.json`, and heavy servers load on
255
+ * demand / offload when idle. ABSENT by default ⇒ full `.mcp.json` (today's
256
+ * behavior). TYPE-ONLY and intentionally NOT in ConfigDefaults (a default here
257
+ * would inject the block into every existing config and break the
258
+ * absent-equals-unchanged guarantee). Consumed only by the claude-code spawn
259
+ * path; other frameworks ignore it. */
260
+ dynamicMcp?: import('./dynamicMcpConfig.js').DynamicMcpConfig;
251
261
  /** Project directory (where CLAUDE.md lives) */
252
262
  projectDir: string;
253
263
  /** Maximum concurrent sessions */