@sentropic/h2a 0.97.1 → 0.97.3

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 (149) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/.codex-plugin/plugin.json +1 -1
  3. package/dist/bin.js +13 -0
  4. package/dist/bin.js.map +1 -1
  5. package/dist/cli.d.ts.map +1 -1
  6. package/dist/cli.js +14 -3
  7. package/dist/cli.js.map +1 -1
  8. package/dist/index.d.ts +1 -1
  9. package/dist/mcp.d.ts +1 -1
  10. package/dist/mcp.d.ts.map +1 -1
  11. package/dist/mcp.js +1 -0
  12. package/dist/mcp.js.map +1 -1
  13. package/dist/runtime/identity/bindings.d.ts.map +1 -1
  14. package/dist/runtime/identity/bindings.js +16 -1
  15. package/dist/runtime/identity/bindings.js.map +1 -1
  16. package/dist/runtime/identity/live.d.ts.map +1 -1
  17. package/dist/runtime/identity/live.js +15 -9
  18. package/dist/runtime/identity/live.js.map +1 -1
  19. package/dist/runtime/local-files/locks.d.ts +20 -0
  20. package/dist/runtime/local-files/locks.d.ts.map +1 -1
  21. package/dist/runtime/local-files/locks.js +42 -2
  22. package/dist/runtime/local-files/locks.js.map +1 -1
  23. package/dist/runtime/local-files/store.d.ts.map +1 -1
  24. package/dist/runtime/local-files/store.js +42 -4
  25. package/dist/runtime/local-files/store.js.map +1 -1
  26. package/dist/runtime/mcp/agent-launch.d.ts +2 -0
  27. package/dist/runtime/mcp/agent-launch.d.ts.map +1 -1
  28. package/dist/runtime/mcp/agent-launch.js +11 -0
  29. package/dist/runtime/mcp/agent-launch.js.map +1 -1
  30. package/dist/runtime/mcp/discovery-pagination.d.ts +73 -0
  31. package/dist/runtime/mcp/discovery-pagination.d.ts.map +1 -0
  32. package/dist/runtime/mcp/discovery-pagination.js +446 -0
  33. package/dist/runtime/mcp/discovery-pagination.js.map +1 -0
  34. package/dist/runtime/mcp/frame-budget.d.ts +149 -0
  35. package/dist/runtime/mcp/frame-budget.d.ts.map +1 -0
  36. package/dist/runtime/mcp/frame-budget.js +275 -0
  37. package/dist/runtime/mcp/frame-budget.js.map +1 -0
  38. package/dist/runtime/mcp/handlers.d.ts +14 -3
  39. package/dist/runtime/mcp/handlers.d.ts.map +1 -1
  40. package/dist/runtime/mcp/handlers.js +22 -1
  41. package/dist/runtime/mcp/handlers.js.map +1 -1
  42. package/dist/runtime/mcp/index.d.ts +1 -0
  43. package/dist/runtime/mcp/index.d.ts.map +1 -1
  44. package/dist/runtime/mcp/index.js +1 -0
  45. package/dist/runtime/mcp/index.js.map +1 -1
  46. package/dist/runtime/mcp/notifications.d.ts +13 -1
  47. package/dist/runtime/mcp/notifications.d.ts.map +1 -1
  48. package/dist/runtime/mcp/notifications.js +36 -20
  49. package/dist/runtime/mcp/notifications.js.map +1 -1
  50. package/dist/runtime/mcp/payload-store.d.ts +67 -0
  51. package/dist/runtime/mcp/payload-store.d.ts.map +1 -0
  52. package/dist/runtime/mcp/payload-store.js +242 -0
  53. package/dist/runtime/mcp/payload-store.js.map +1 -0
  54. package/dist/runtime/mcp/phase-trace.d.ts +98 -0
  55. package/dist/runtime/mcp/phase-trace.d.ts.map +1 -0
  56. package/dist/runtime/mcp/phase-trace.js +179 -0
  57. package/dist/runtime/mcp/phase-trace.js.map +1 -0
  58. package/dist/runtime/mcp/server.d.ts +13 -1
  59. package/dist/runtime/mcp/server.d.ts.map +1 -1
  60. package/dist/runtime/mcp/server.js +57 -3
  61. package/dist/runtime/mcp/server.js.map +1 -1
  62. package/dist/runtime/mcp/stdio.d.ts.map +1 -1
  63. package/dist/runtime/mcp/stdio.js +176 -15
  64. package/dist/runtime/mcp/stdio.js.map +1 -1
  65. package/dist/runtime/mcp/tools.d.ts.map +1 -1
  66. package/dist/runtime/mcp/tools.js +35 -4
  67. package/dist/runtime/mcp/tools.js.map +1 -1
  68. package/dist/runtime/mcp-central.d.ts.map +1 -1
  69. package/dist/runtime/mcp-central.js +17 -7
  70. package/dist/runtime/mcp-central.js.map +1 -1
  71. package/dist/runtime/mcp-http/hosted-mcp-server.d.ts.map +1 -1
  72. package/dist/runtime/mcp-http/hosted-mcp-server.js +16 -6
  73. package/dist/runtime/mcp-http/hosted-mcp-server.js.map +1 -1
  74. package/dist/runtime/mcp-http/readonly-allowlist.d.ts.map +1 -1
  75. package/dist/runtime/mcp-http/readonly-allowlist.js +3 -0
  76. package/dist/runtime/mcp-http/readonly-allowlist.js.map +1 -1
  77. package/focus-app/client/_app/immutable/chunks/BgBtu3IQ.js +2 -0
  78. package/focus-app/client/_app/immutable/chunks/BgBtu3IQ.js.br +0 -0
  79. package/focus-app/client/_app/immutable/chunks/BgBtu3IQ.js.gz +0 -0
  80. package/focus-app/client/_app/immutable/entry/{app.D1IjBbSs.js → app.D_yfk55R.js} +2 -2
  81. package/focus-app/client/_app/immutable/entry/app.D_yfk55R.js.br +0 -0
  82. package/focus-app/client/_app/immutable/entry/app.D_yfk55R.js.gz +0 -0
  83. package/focus-app/client/_app/immutable/entry/start.CoQWYNTs.js +1 -0
  84. package/focus-app/client/_app/immutable/entry/start.CoQWYNTs.js.br +2 -0
  85. package/focus-app/client/_app/immutable/entry/start.CoQWYNTs.js.gz +0 -0
  86. package/focus-app/client/_app/immutable/nodes/{1.CcZFi3uA.js → 1.Jo1uWTw0.js} +1 -1
  87. package/focus-app/client/_app/immutable/nodes/1.Jo1uWTw0.js.br +4 -0
  88. package/focus-app/client/_app/immutable/nodes/1.Jo1uWTw0.js.gz +0 -0
  89. package/focus-app/client/_app/version.json +1 -1
  90. package/focus-app/client/_app/version.json.br +0 -0
  91. package/focus-app/client/_app/version.json.gz +0 -0
  92. package/focus-app/h2a-focus.json +61 -61
  93. package/focus-app/handler.js +8 -8
  94. package/focus-app/index.js +8 -8
  95. package/focus-app/server/chunks/chunks/{AppShell.js-BDEpw0ai.js → AppShell.js-BoWxjmfr.js} +2 -2
  96. package/focus-app/server/chunks/chunks/{AppShell.js-BDEpw0ai.js.map → AppShell.js-BoWxjmfr.js.map} +1 -1
  97. package/focus-app/server/chunks/chunks/{exports.js-BZfNcFtJ.js → exports.js-D45A8dcc.js} +3 -3
  98. package/focus-app/server/chunks/chunks/{exports.js-BZfNcFtJ.js.map → exports.js-D45A8dcc.js.map} +1 -1
  99. package/focus-app/server/chunks/chunks/{index.js--xmWq8-W.js → index.js-e3L5MwfB.js} +2 -2
  100. package/focus-app/server/chunks/chunks/{index.js--xmWq8-W.js.map → index.js-e3L5MwfB.js.map} +1 -1
  101. package/focus-app/server/chunks/chunks/{internal.js-o4rWftwV.js → internal.js-DAV-A6NO.js} +3 -3
  102. package/focus-app/server/chunks/chunks/{internal.js-o4rWftwV.js.map → internal.js-DAV-A6NO.js.map} +1 -1
  103. package/focus-app/server/chunks/chunks/{root.js-ve7Sv8eD.js → root.js-CEypm32A.js} +2 -2
  104. package/focus-app/server/chunks/chunks/{root.js-ve7Sv8eD.js.map → root.js-CEypm32A.js.map} +1 -1
  105. package/focus-app/server/chunks/chunks/{utils.js-h3jETFNR.js → utils.js-Bzpr6vQU.js} +406 -141
  106. package/focus-app/server/chunks/chunks/utils.js-Bzpr6vQU.js.map +1 -0
  107. package/focus-app/server/chunks/entries/endpoints/api/actions/launch/{_server.ts.js-DVeNoSe-.js → _server.ts.js-Cah_Ivgw.js} +2 -2
  108. package/focus-app/server/chunks/entries/endpoints/api/actions/launch/{_server.ts.js-DVeNoSe-.js.map → _server.ts.js-Cah_Ivgw.js.map} +1 -1
  109. package/focus-app/server/chunks/entries/endpoints/api/decisions/inject/{_server.ts.js-CLfZIM0I.js → _server.ts.js-DW5wvcgH.js} +2 -2
  110. package/focus-app/server/chunks/entries/endpoints/api/decisions/inject/{_server.ts.js-CLfZIM0I.js.map → _server.ts.js-DW5wvcgH.js.map} +1 -1
  111. package/focus-app/server/chunks/entries/endpoints/api/dossiers/agent-memory/include/{_server.ts.js-DNQwbxOr.js → _server.ts.js-C2jIx8Jr.js} +2 -2
  112. package/focus-app/server/chunks/entries/endpoints/api/dossiers/agent-memory/include/{_server.ts.js-DNQwbxOr.js.map → _server.ts.js-C2jIx8Jr.js.map} +1 -1
  113. package/focus-app/server/chunks/entries/endpoints/api/h2a/targets/{_server.ts.js-BqneXTTN.js → _server.ts.js-BkAMLcHu.js} +2 -2
  114. package/focus-app/server/chunks/entries/endpoints/api/h2a/targets/{_server.ts.js-BqneXTTN.js.map → _server.ts.js-BkAMLcHu.js.map} +1 -1
  115. package/focus-app/server/chunks/entries/fallbacks/{error.svelte.js-VpNJnNVG.js → error.svelte.js-BWuS92Wk.js} +5 -5
  116. package/focus-app/server/chunks/entries/fallbacks/{error.svelte.js-VpNJnNVG.js.map → error.svelte.js-BWuS92Wk.js.map} +1 -1
  117. package/focus-app/server/chunks/entries/pages/{_layout.svelte.js-D_Rgb6oH.js → _layout.svelte.js-CKspI0Bw.js} +3 -3
  118. package/focus-app/server/chunks/entries/pages/{_layout.svelte.js-D_Rgb6oH.js.map → _layout.svelte.js-CKspI0Bw.js.map} +1 -1
  119. package/focus-app/server/chunks/entries/pages/{_page.svelte.js-2a7ZxK1n.js → _page.svelte.js-B8EWZmZj.js} +4 -4
  120. package/focus-app/server/chunks/entries/pages/{_page.svelte.js-2a7ZxK1n.js.map → _page.svelte.js-B8EWZmZj.js.map} +1 -1
  121. package/focus-app/server/chunks/entries/pages/dossier/agent-memory/{_page.svelte.js-Bl_4XjaL.js → _page.svelte.js-BZvcKeya.js} +4 -4
  122. package/focus-app/server/chunks/entries/pages/dossier/agent-memory/{_page.svelte.js-Bl_4XjaL.js.map → _page.svelte.js-BZvcKeya.js.map} +1 -1
  123. package/focus-app/server/chunks/{handler-B897YV9_.js → handler-BCBpURX0.js} +4 -4
  124. package/focus-app/server/chunks/{handler-B897YV9_.js.map → handler-BCBpURX0.js.map} +1 -1
  125. package/focus-app/server/chunks/{index.js-BkPsDsTn.js → index.js-CZWB6FqQ.js} +5 -5
  126. package/focus-app/server/chunks/{index.js-BkPsDsTn.js.map → index.js-CZWB6FqQ.js.map} +1 -1
  127. package/focus-app/server/chunks/{manifest.js-DZ6J-aM3.js → manifest.js-C2CyTiUe.js} +10 -10
  128. package/focus-app/server/chunks/{manifest.js-DZ6J-aM3.js.map → manifest.js-C2CyTiUe.js.map} +1 -1
  129. package/focus-app/server/chunks/nodes/{0.js-tlwNtUnO.js → 0.js-Cp9RMJ1x.js} +2 -2
  130. package/focus-app/server/chunks/nodes/{0.js-tlwNtUnO.js.map → 0.js-Cp9RMJ1x.js.map} +1 -1
  131. package/focus-app/server/chunks/nodes/1.js-DMWmTj0d.js +9 -0
  132. package/focus-app/server/chunks/nodes/{1.js-mLYMqMM3.js.map → 1.js-DMWmTj0d.js.map} +1 -1
  133. package/focus-app/server/chunks/nodes/{2.js-C_y8BeMm.js → 2.js-Dv8Q6LQc.js} +2 -2
  134. package/focus-app/server/chunks/nodes/{2.js-C_y8BeMm.js.map → 2.js-Dv8Q6LQc.js.map} +1 -1
  135. package/focus-app/server/chunks/nodes/{3.js-13r5MUAa.js → 3.js-DJH-zOae.js} +2 -2
  136. package/focus-app/server/chunks/nodes/{3.js-13r5MUAa.js.map → 3.js-DJH-zOae.js.map} +1 -1
  137. package/package.json +3 -3
  138. package/focus-app/client/_app/immutable/chunks/DAAR3e-c.js +0 -2
  139. package/focus-app/client/_app/immutable/chunks/DAAR3e-c.js.br +0 -0
  140. package/focus-app/client/_app/immutable/chunks/DAAR3e-c.js.gz +0 -0
  141. package/focus-app/client/_app/immutable/entry/app.D1IjBbSs.js.br +0 -0
  142. package/focus-app/client/_app/immutable/entry/app.D1IjBbSs.js.gz +0 -0
  143. package/focus-app/client/_app/immutable/entry/start.DHa1k4dG.js +0 -1
  144. package/focus-app/client/_app/immutable/entry/start.DHa1k4dG.js.br +0 -2
  145. package/focus-app/client/_app/immutable/entry/start.DHa1k4dG.js.gz +0 -0
  146. package/focus-app/client/_app/immutable/nodes/1.CcZFi3uA.js.br +0 -0
  147. package/focus-app/client/_app/immutable/nodes/1.CcZFi3uA.js.gz +0 -0
  148. package/focus-app/server/chunks/chunks/utils.js-h3jETFNR.js.map +0 -1
  149. package/focus-app/server/chunks/nodes/1.js-mLYMqMM3.js +0 -9
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase-trace.d.ts","sourceRoot":"","sources":["../../../src/runtime/mcp/phase-trace.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,179 @@
1
+ /**
2
+ * Per-phase MCP boot/serve tracing (lot L0 — measurement & diagnosis only).
3
+ *
4
+ * Emits correlated, closed-field JSONL spans to an injected stderr writer so a
5
+ * host or an out-of-process measurement probe can reconstruct the whole
6
+ * `mcp-serve` lifecycle — process start, identity resolution, lock waits,
7
+ * registry reads, transport `initialize` / `tools/list` / first tool — WITHOUT
8
+ * pulling in the CLI or the heavy runtime. It has three properties the rest of
9
+ * the fix relies on:
10
+ *
11
+ * 1. **Passive.** A measurement callback can never fail the MCP protocol:
12
+ * every emit is wrapped, a writer throw is swallowed, and the trace has no
13
+ * side effect on the JSON-RPC stream (it only ever writes to stderr).
14
+ * 2. **Confidential.** Fields are a fixed whitelist and every string is
15
+ * sanitized + length-capped, so no PEM, token, lock payload or binding
16
+ * content can ever reach an event — even if a caller passes it by mistake.
17
+ * 3. **Monotonic + correlated.** Every event carries `attemptId` (a locally
18
+ * minted UUID — a child process cannot inherit an identity from the MCP
19
+ * client), `pid`, a per-trace `seq`, and a monotonic `monotonicMs`. Two
20
+ * processes are correlated by matching events, never by subtracting their
21
+ * independent monotonic clocks.
22
+ *
23
+ * `H2A_MCP_TRACE=1` turns on the detailed spans (`begin`/`end` of internal
24
+ * phases). Lifecycle milestones and failure diagnostics stay visible without
25
+ * the flag.
26
+ */
27
+ import { performance } from "node:perf_hooks";
28
+ import { randomUUID } from "node:crypto";
29
+ /** Log line prefix; every trace event is `${TRACE_LINE_PREFIX}${json}\n` on stderr. */
30
+ export const TRACE_LINE_PREFIX = "h2a.mcp.phase ";
31
+ /** Env flag that turns on detailed (`begin`/`end`) spans. */
32
+ export const TRACE_DETAIL_ENV = "H2A_MCP_TRACE";
33
+ const MAX_STR = 200;
34
+ /** Strip control chars / newlines and cap length so a JSONL line stays one line. */
35
+ function safeStr(value) {
36
+ if (value === undefined || value === null)
37
+ return undefined;
38
+ const raw = typeof value === "string" ? value : String(value);
39
+ // eslint-disable-next-line no-control-regex
40
+ const cleaned = raw.replace(/[\u0000-\u001f\u007f-\u009f]/g, " ").trim();
41
+ if (cleaned.length === 0)
42
+ return undefined;
43
+ return cleaned.length > MAX_STR ? cleaned.slice(0, MAX_STR) : cleaned;
44
+ }
45
+ function safeNum(value) {
46
+ if (typeof value !== "number")
47
+ return undefined;
48
+ return Number.isFinite(value) ? value : undefined;
49
+ }
50
+ function safeId(value) {
51
+ if (typeof value === "number")
52
+ return Number.isFinite(value) ? value : undefined;
53
+ return safeStr(value);
54
+ }
55
+ /** Default writer: never throws into the caller (a broken stderr is not fatal). */
56
+ function defaultWriter(line) {
57
+ try {
58
+ process.stderr.write(line);
59
+ }
60
+ catch {
61
+ /* a measurement sink must never break the protocol */
62
+ }
63
+ }
64
+ class Trace {
65
+ attemptId;
66
+ role;
67
+ pid;
68
+ detailed;
69
+ writer;
70
+ now;
71
+ env;
72
+ seq = 0;
73
+ constructor(options) {
74
+ this.env = options.env ?? process.env;
75
+ this.role = options.role ?? "server";
76
+ this.attemptId = options.attemptId ?? randomUUID();
77
+ this.pid = options.pid ?? process.pid;
78
+ this.writer = options.writer ?? defaultWriter;
79
+ this.now = options.now ?? (() => performance.now());
80
+ this.detailed =
81
+ options.detailed ?? this.env[TRACE_DETAIL_ENV] === "1";
82
+ }
83
+ emit(phase, kind, fields) {
84
+ try {
85
+ const event = {
86
+ v: 1,
87
+ attemptId: this.attemptId,
88
+ pid: this.pid,
89
+ role: this.role,
90
+ seq: this.seq++,
91
+ monotonicMs: Math.round(this.now() * 1000) / 1000,
92
+ phase: safeStr(phase) ?? "unknown",
93
+ event: kind,
94
+ ...withField("durationMs", safeNum(fields?.durationMs)),
95
+ ...withField("requestId", safeId(fields?.requestId)),
96
+ ...withField("method", safeStr(fields?.method)),
97
+ ...withField("tool", safeStr(fields?.tool)),
98
+ ...withField("bytes", safeNum(fields?.bytes)),
99
+ ...withField("waitMs", safeNum(fields?.waitMs)),
100
+ ...withField("holdMs", safeNum(fields?.holdMs)),
101
+ ...withField("code", safeId(fields?.code))
102
+ };
103
+ this.writer(`${TRACE_LINE_PREFIX}${JSON.stringify(event)}\n`);
104
+ }
105
+ catch {
106
+ /* the trace is best-effort; it never disturbs the caller */
107
+ }
108
+ }
109
+ phase(name, fields) {
110
+ this.emit(name, "sample", fields);
111
+ }
112
+ begin(name, fields) {
113
+ if (this.detailed)
114
+ this.emit(name, "begin", fields);
115
+ }
116
+ end(name, fields) {
117
+ if (this.detailed)
118
+ this.emit(name, "end", fields);
119
+ }
120
+ error(name, fields) {
121
+ this.emit(name, "error", fields);
122
+ }
123
+ span(name, fn, fields) {
124
+ const start = this.now();
125
+ if (this.detailed)
126
+ this.emit(name, "begin", fields);
127
+ try {
128
+ const out = fn();
129
+ if (this.detailed) {
130
+ this.emit(name, "end", { ...fields, durationMs: round3(this.now() - start) });
131
+ }
132
+ return out;
133
+ }
134
+ catch (err) {
135
+ this.emit(name, "error", {
136
+ ...fields,
137
+ durationMs: round3(this.now() - start),
138
+ code: err instanceof Error ? err.name : "error"
139
+ });
140
+ throw err;
141
+ }
142
+ }
143
+ child(role, options) {
144
+ return new Trace({
145
+ role,
146
+ attemptId: this.attemptId,
147
+ detailed: this.detailed,
148
+ now: this.now,
149
+ env: this.env,
150
+ ...(options?.pid !== undefined ? { pid: options.pid } : {}),
151
+ ...(options?.writer !== undefined ? { writer: options.writer } : {})
152
+ });
153
+ }
154
+ }
155
+ function withField(key, value) {
156
+ return value === undefined ? {} : { [key]: value };
157
+ }
158
+ function round3(ms) {
159
+ return Math.round(ms * 1000) / 1000;
160
+ }
161
+ /** Create a fresh trace. `attemptId` defaults to a locally minted UUID. */
162
+ export function createMcpTrace(options = {}) {
163
+ return new Trace(options);
164
+ }
165
+ // --- Ambient, process-wide active trace ------------------------------------
166
+ //
167
+ // The boot path threads through many modules (bin → cli → identity → store →
168
+ // stdio). Rather than plumb a trace object through every signature, the entry
169
+ // point installs ONE active trace and the deep modules reach it via
170
+ // `getActiveMcpTrace()`. When none is installed (a normal CLI verb, or a unit
171
+ // test), every deep call is a no-op via optional chaining.
172
+ let active;
173
+ export function setActiveMcpTrace(trace) {
174
+ active = trace;
175
+ }
176
+ export function getActiveMcpTrace() {
177
+ return active;
178
+ }
179
+ //# sourceMappingURL=phase-trace.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phase-trace.js","sourceRoot":"","sources":["../../../src/runtime/mcp/phase-trace.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ import { SessionRegistry, type SessionRegistryOptions } from "./sessions.js";
5
5
  import { type McpToolDescriptor } from "./tools.js";
6
6
  import { type H2aRunDelegation, type H2aRunExecutor } from "./agent-launch.js";
7
7
  import type { H2ASendSigner } from "../send.js";
8
+ import { type PayloadStore } from "./payload-store.js";
9
+ import { type FrameBudget } from "./frame-budget.js";
8
10
  export interface CreateMcpServerOptions {
9
11
  /** Filesystem root for the backing local-files store. */
10
12
  root: string;
@@ -35,14 +37,24 @@ export interface CreateMcpServerOptions {
35
37
  intervalMs?: number;
36
38
  sink?: NotificationSink;
37
39
  };
40
+ /** L1: frame budget override (tests). Defaults to `resolveFrameBudget()`. */
41
+ frameBudget?: FrameBudget;
42
+ }
43
+ /** L1: optional per-call transport context (reserved for exact-id budgeting). */
44
+ export interface McpCallContext {
45
+ readonly budget?: FrameBudget;
38
46
  }
39
47
  export interface McpServer {
40
48
  listTools(): McpToolDescriptor[];
41
- callTool(name: string, args: Record<string, unknown> | undefined): McpToolResult | McpErrorResult | McpTransportResult;
49
+ callTool(name: string, args: Record<string, unknown> | undefined, context?: McpCallContext): McpToolResult | McpErrorResult | McpTransportResult;
42
50
  /** Per-server SessionRegistry, exposed for transport-layer shutdown hooks. */
43
51
  readonly sessions: SessionRegistry;
44
52
  /** Per-server NotificationDispatcher (DEC-052). */
45
53
  readonly notifications: NotificationDispatcher;
54
+ /** L1: per-root durable store for oversize output recovery. */
55
+ readonly payloadStore: PayloadStore;
56
+ /** L1: the frame budget bounding every emission of this server. */
57
+ readonly frameBudget: FrameBudget;
46
58
  }
47
59
  /** A tool result already formatted for the MCP transport (used by Track reads). */
48
60
  export interface McpTransportResult {
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/runtime/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,EAsCL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sBAAsB,EACtB,KAAK,gBAAgB,EACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,EAC5B,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,KAAK,iBAAiB,EAEvB,MAAM,YAAY,CAAC;AAOpB,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,sBAAsB;IACrC,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,gBAAgB,GAAG,SAAS,CAAC;IACvD;;;;OAIG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,oFAAoF;IACpF,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC;;;OAGG;IACH,aAAa,CAAC,EAAE;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,gBAAgB,CAAC;KACzB,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,IAAI,iBAAiB,EAAE,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,aAAa,GAAG,cAAc,GAAG,kBAAkB,CAAC;IACvH,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,mDAAmD;IACnD,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC;CAChD;AAED,mFAAmF;AACnF,MAAM,WAAW,kBAAkB;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAOhF;AAID;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,SAAS,CA+I1E"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/runtime/mcp/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,EAsCL,KAAK,cAAc,EACnB,KAAK,aAAa,EACnB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,sBAAsB,EACtB,KAAK,gBAAgB,EACtB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,eAAe,EACf,KAAK,sBAAsB,EAC5B,MAAM,eAAe,CAAC;AACvB,OAAO,EAEL,KAAK,iBAAiB,EAEvB,MAAM,YAAY,CAAC;AAOpB,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAsB,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGzE,MAAM,WAAW,sBAAsB;IACrC,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,gBAAgB,GAAG,SAAS,CAAC;IACvD;;;;OAIG;IACH,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,oFAAoF;IACpF,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC;;;OAGG;IACH,aAAa,CAAC,EAAE;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,IAAI,CAAC,EAAE,gBAAgB,CAAC;KACzB,CAAC;IACF,6EAA6E;IAC7E,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,iFAAiF;AACjF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;CAC/B;AAED,MAAM,WAAW,SAAS;IACxB,SAAS,IAAI,iBAAiB,EAAE,CAAC;IACjC,QAAQ,CACN,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACzC,OAAO,CAAC,EAAE,cAAc,GACvB,aAAa,GAAG,cAAc,GAAG,kBAAkB,CAAC;IACvD,8EAA8E;IAC9E,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,mDAAmD;IACnD,QAAQ,CAAC,aAAa,EAAE,sBAAsB,CAAC;IAC/C,+DAA+D;IAC/D,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC,mEAAmE;IACnE,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;CACnC;AAED,mFAAmF;AACnF,MAAM,WAAW,kBAAkB;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,kBAAkB,CAOhF;AAID;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,SAAS,CA8J1E"}
@@ -6,6 +6,10 @@ import { H2A_CLI_MCP_TOOL_DESCRIPTORS } from "./tools.js";
6
6
  import { TRACK_READ_TOOL_DESCRIPTORS, callTrackReadTool } from "@sentropic/track/mcp";
7
7
  import { H2A_SESSION_DEFAULT_HEARTBEAT_INTERVAL_MS } from "@sentropic/h2a";
8
8
  import { executeH2aRun, handleH2aRun, recordMcpRunDelegation } from "./agent-launch.js";
9
+ import { createDiscoveryPager } from "./discovery-pagination.js";
10
+ import { createPayloadStore } from "./payload-store.js";
11
+ import { resolveFrameBudget } from "./frame-budget.js";
12
+ import { PAYLOAD_MAX_READ_BYTES } from "./payload-store.js";
9
13
  export function isMcpTransportResult(value) {
10
14
  return (typeof value === "object" &&
11
15
  value !== null &&
@@ -28,7 +32,16 @@ export function createMcpServer(options) {
28
32
  });
29
33
  const notifications = new NotificationDispatcher(sessions, store, options.root, options.notifications?.sink, options.notifications?.intervalMs ??
30
34
  H2A_SESSION_DEFAULT_HEARTBEAT_INTERVAL_MS);
31
- function callTool(name, args) {
35
+ // L1: per-root recovery store + per-server paginating discovery pager. The
36
+ // pager carries a random per-instance HMAC secret + epoch, so a cursor from a
37
+ // restarted server fails `cursor_stale` (never a silent first page).
38
+ const frameBudget = options.frameBudget ?? resolveFrameBudget();
39
+ const payloadStore = createPayloadStore(options.root);
40
+ const discoveryPager = createDiscoveryPager(store, {
41
+ budget: frameBudget,
42
+ payloadStore
43
+ });
44
+ function callTool(name, args, _context) {
32
45
  if (TRACK_READ_TOOL_NAMES.has(name)) {
33
46
  try {
34
47
  const result = callTrackReadTool({ cwd: options.workspaceRoot ?? process.cwd() }, name, args ?? {});
@@ -56,7 +69,9 @@ export function createMcpServer(options) {
56
69
  case "h2a_register_instance":
57
70
  return handleRegisterInstance(store, args);
58
71
  case "h2a_discover_instances":
59
- return handleDiscoverInstances(store, args);
72
+ return handleDiscoverInstances(store, args, discoveryPager);
73
+ case "h2a_read_payload":
74
+ return handleReadPayload(payloadStore, args, frameBudget);
60
75
  case "h2a_inbox":
61
76
  return handleInbox(store, args);
62
77
  case "h2a_send":
@@ -142,7 +157,46 @@ export function createMcpServer(options) {
142
157
  listTools: () => H2A_CLI_MCP_TOOL_DESCRIPTORS.slice(),
143
158
  callTool,
144
159
  sessions,
145
- notifications
160
+ notifications,
161
+ payloadStore,
162
+ frameBudget
146
163
  };
147
164
  }
165
+ /**
166
+ * L1 `h2a_read_payload`: chunked, read-only recovery of an oversize output's
167
+ * INTACT bytes (base64), so "recover" never points at another too-big response.
168
+ * Tenant-confined by the per-root store; needs no signing identity. It never
169
+ * re-runs an effectful tool — it returns already-produced bytes.
170
+ */
171
+ function handleReadPayload(payloadStore, args, budget) {
172
+ const toolError = (code, message) => ({
173
+ content: [{ type: "text", text: JSON.stringify({ code, message }) }],
174
+ isError: true
175
+ });
176
+ const ref = args?.ref;
177
+ if (typeof ref !== "string" || ref.length === 0) {
178
+ return toolError("payload_not_found", "ref is required");
179
+ }
180
+ const rawOffset = args?.offset;
181
+ if (rawOffset !== undefined && (typeof rawOffset !== "number" || !Number.isInteger(rawOffset) || rawOffset < 0)) {
182
+ return toolError("invalid_offset", "offset must be a non-negative integer");
183
+ }
184
+ const rawMax = args?.maxBytes;
185
+ if (rawMax !== undefined &&
186
+ (typeof rawMax !== "number" || !Number.isInteger(rawMax) || rawMax < 1 || rawMax > PAYLOAD_MAX_READ_BYTES)) {
187
+ return toolError("invalid_offset", "maxBytes must be an integer between 1 and 65536");
188
+ }
189
+ const offset = typeof rawOffset === "number" ? rawOffset : 0;
190
+ const requested = typeof rawMax === "number" ? rawMax : PAYLOAD_MAX_READ_BYTES;
191
+ // maxBytes is a MAXIMUM: reduce the chunk further so the FINAL serialized frame
192
+ // (base64 ≈ 4/3 expansion + the JSON envelope, double-encoded into content
193
+ // text) stays within the budget — a recovery read must never itself overflow.
194
+ const budgetChunk = Math.max(1, Math.floor((budget.maxBytes - 4096) * 3 / 4));
195
+ const maxBytes = Math.max(1, Math.min(requested, budgetChunk));
196
+ const result = payloadStore.readPayload(ref, offset, maxBytes);
197
+ if ("error" in result) {
198
+ return toolError(result.error, `payload read failed: ${result.error}`);
199
+ }
200
+ return { content: [{ type: "text", text: JSON.stringify(result) }] };
201
+ }
148
202
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/runtime/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/runtime/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../../src/runtime/mcp/stdio.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD,OAAO,EAGL,KAAK,SAAS,EACf,MAAM,mBAAmB,CAAC;AAS3B,OAAO,KAAK,EAAoB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA4BhD,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,2EAA2E;IAC3E,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,8DAA8D;IAC9D,KAAK,EAAE,QAAQ,CAAC;IAChB,gEAAgE;IAChE,MAAM,EAAE,QAAQ,CAAC;IACjB,yEAAyE;IACzE,MAAM,EAAE,QAAQ,CAAC;IACjB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE;QACT,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACpC;;;;WAIG;QACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;QACvD,wEAAwE;QACxE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC;KACpC,CAAC;IACF;;;;OAIG;IACH,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,CAAC;IACF;;;;;;OAMG;IACH,IAAI,CAAC,EAAE;QACL,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;QAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,uEAAuE;QACvE,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;KACnC,CAAC;IACF;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AA2CD,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAC3D,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAC7D,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AA6FlD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoRtE"}
1
+ {"version":3,"file":"stdio.d.ts","sourceRoot":"","sources":["../../../src/runtime/mcp/stdio.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGtD,OAAO,EAGL,KAAK,SAAS,EACf,MAAM,mBAAmB,CAAC;AAW3B,OAAO,KAAK,EAAoB,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAsChD,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,IAAI,EAAE,MAAM,CAAC;IACb,0EAA0E;IAC1E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,WAAW,CAAC,EAAE,cAAc,CAAC;IAC7B,2EAA2E;IAC3E,WAAW,CAAC,EAAE,aAAa,CAAC;IAC5B,8DAA8D;IAC9D,KAAK,EAAE,QAAQ,CAAC;IAChB,gEAAgE;IAChE,MAAM,EAAE,QAAQ,CAAC;IACjB,yEAAyE;IACzE,MAAM,EAAE,QAAQ,CAAC;IACjB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE;QACT,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;QACrC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QACpC;;;;WAIG;QACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAC;QACvD,wEAAwE;QACxE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,IAAI,CAAC;KACpC,CAAC;IACF;;;;OAIG;IACH,SAAS,CAAC,EAAE;QACV,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;KACxB,CAAC;IACF;;;;;;OAMG;IACH,IAAI,CAAC,EAAE;QACL,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;QAC3B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;QAC/B,uEAAuE;QACvE,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;KACnC,CAAC;IACF;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AA2DD,eAAO,MAAM,sBAAsB,uBAAuB,CAAC;AAC3D,eAAO,MAAM,uBAAuB,wBAAwB,CAAC;AAC7D,eAAO,MAAM,kBAAkB,kBAAkB,CAAC;AAyFlD;;;;;;;GAOG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAkbtE"}