lorenz 0.1.4 → 0.1.6

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 (249) hide show
  1. package/README.md +83 -20
  2. package/RELEASE-MANIFEST.json +6 -1
  3. package/node_modules/@lorenz/agent-sdk/dist/index.d.ts +1 -0
  4. package/node_modules/@lorenz/agent-sdk/dist/index.d.ts.map +1 -1
  5. package/node_modules/@lorenz/agent-sdk/dist/index.js +1 -0
  6. package/node_modules/@lorenz/agent-sdk/dist/index.js.map +1 -1
  7. package/node_modules/@lorenz/agent-sdk/dist/module.d.ts +38 -0
  8. package/node_modules/@lorenz/agent-sdk/dist/module.d.ts.map +1 -0
  9. package/node_modules/@lorenz/agent-sdk/dist/module.js +41 -0
  10. package/node_modules/@lorenz/agent-sdk/dist/module.js.map +1 -0
  11. package/node_modules/@lorenz/cli/dist/agentExecutorLoader.d.ts +30 -0
  12. package/node_modules/@lorenz/cli/dist/agentExecutorLoader.d.ts.map +1 -0
  13. package/node_modules/@lorenz/cli/dist/agentExecutorLoader.js +63 -0
  14. package/node_modules/@lorenz/cli/dist/agentExecutorLoader.js.map +1 -0
  15. package/node_modules/@lorenz/cli/dist/daemon.d.ts +42 -19
  16. package/node_modules/@lorenz/cli/dist/daemon.d.ts.map +1 -1
  17. package/node_modules/@lorenz/cli/dist/daemon.js +72 -23
  18. package/node_modules/@lorenz/cli/dist/daemon.js.map +1 -1
  19. package/node_modules/@lorenz/cli/dist/daemonLock.d.ts +59 -0
  20. package/node_modules/@lorenz/cli/dist/daemonLock.d.ts.map +1 -0
  21. package/node_modules/@lorenz/cli/dist/daemonLock.js +304 -0
  22. package/node_modules/@lorenz/cli/dist/daemonLock.js.map +1 -0
  23. package/node_modules/@lorenz/cli/dist/daemonStatus.d.ts +16 -0
  24. package/node_modules/@lorenz/cli/dist/daemonStatus.d.ts.map +1 -0
  25. package/node_modules/@lorenz/cli/dist/daemonStatus.js +21 -0
  26. package/node_modules/@lorenz/cli/dist/daemonStatus.js.map +1 -0
  27. package/node_modules/@lorenz/cli/dist/doctor.d.ts +6 -0
  28. package/node_modules/@lorenz/cli/dist/doctor.d.ts.map +1 -1
  29. package/node_modules/@lorenz/cli/dist/doctor.js +39 -2
  30. package/node_modules/@lorenz/cli/dist/doctor.js.map +1 -1
  31. package/node_modules/@lorenz/cli/dist/extensionLoader.d.ts +126 -0
  32. package/node_modules/@lorenz/cli/dist/extensionLoader.d.ts.map +1 -0
  33. package/node_modules/@lorenz/cli/dist/extensionLoader.js +187 -0
  34. package/node_modules/@lorenz/cli/dist/extensionLoader.js.map +1 -0
  35. package/node_modules/@lorenz/cli/dist/flags-manifest.d.ts +42 -0
  36. package/node_modules/@lorenz/cli/dist/flags-manifest.d.ts.map +1 -0
  37. package/node_modules/@lorenz/cli/dist/flags-manifest.js +67 -0
  38. package/node_modules/@lorenz/cli/dist/flags-manifest.js.map +1 -0
  39. package/node_modules/@lorenz/cli/dist/index.d.ts +6 -0
  40. package/node_modules/@lorenz/cli/dist/index.d.ts.map +1 -1
  41. package/node_modules/@lorenz/cli/dist/index.js +4 -0
  42. package/node_modules/@lorenz/cli/dist/index.js.map +1 -1
  43. package/node_modules/@lorenz/cli/dist/leadershipStore.d.ts +42 -0
  44. package/node_modules/@lorenz/cli/dist/leadershipStore.d.ts.map +1 -0
  45. package/node_modules/@lorenz/cli/dist/leadershipStore.js +2 -0
  46. package/node_modules/@lorenz/cli/dist/leadershipStore.js.map +1 -0
  47. package/node_modules/@lorenz/cli/dist/main.d.ts +11 -7
  48. package/node_modules/@lorenz/cli/dist/main.d.ts.map +1 -1
  49. package/node_modules/@lorenz/cli/dist/main.js +58 -8
  50. package/node_modules/@lorenz/cli/dist/main.js.map +1 -1
  51. package/node_modules/@lorenz/cli/dist/toolLoader.d.ts +28 -0
  52. package/node_modules/@lorenz/cli/dist/toolLoader.d.ts.map +1 -0
  53. package/node_modules/@lorenz/cli/dist/toolLoader.js +62 -0
  54. package/node_modules/@lorenz/cli/dist/toolLoader.js.map +1 -0
  55. package/node_modules/@lorenz/cli/dist/trackerLoader.d.ts +24 -0
  56. package/node_modules/@lorenz/cli/dist/trackerLoader.d.ts.map +1 -0
  57. package/node_modules/@lorenz/cli/dist/trackerLoader.js +34 -0
  58. package/node_modules/@lorenz/cli/dist/trackerLoader.js.map +1 -0
  59. package/node_modules/@lorenz/cli/dist/workerDriverLoader.d.ts +15 -55
  60. package/node_modules/@lorenz/cli/dist/workerDriverLoader.d.ts.map +1 -1
  61. package/node_modules/@lorenz/cli/dist/workerDriverLoader.js +26 -203
  62. package/node_modules/@lorenz/cli/dist/workerDriverLoader.js.map +1 -1
  63. package/node_modules/@lorenz/cli/package.json +1 -0
  64. package/node_modules/@lorenz/config/dist/index.d.ts +1 -1
  65. package/node_modules/@lorenz/config/dist/index.d.ts.map +1 -1
  66. package/node_modules/@lorenz/config/dist/index.js +1 -1
  67. package/node_modules/@lorenz/config/dist/index.js.map +1 -1
  68. package/node_modules/@lorenz/config/dist/parse.d.ts +17 -0
  69. package/node_modules/@lorenz/config/dist/parse.d.ts.map +1 -1
  70. package/node_modules/@lorenz/config/dist/parse.js +107 -11
  71. package/node_modules/@lorenz/config/dist/parse.js.map +1 -1
  72. package/node_modules/@lorenz/config/dist/schemas.d.ts +0 -2
  73. package/node_modules/@lorenz/config/dist/schemas.d.ts.map +1 -1
  74. package/node_modules/@lorenz/config/dist/schemas.js +5 -1
  75. package/node_modules/@lorenz/config/dist/schemas.js.map +1 -1
  76. package/node_modules/@lorenz/dispatch-coordinator/dist/coordinator.d.ts +55 -21
  77. package/node_modules/@lorenz/dispatch-coordinator/dist/coordinator.d.ts.map +1 -1
  78. package/node_modules/@lorenz/dispatch-coordinator/dist/coordinator.js +187 -82
  79. package/node_modules/@lorenz/dispatch-coordinator/dist/coordinator.js.map +1 -1
  80. package/node_modules/@lorenz/dispatch-coordinator/dist/gate.d.ts +6 -4
  81. package/node_modules/@lorenz/dispatch-coordinator/dist/gate.d.ts.map +1 -1
  82. package/node_modules/@lorenz/dispatch-coordinator/dist/gate.js +9 -6
  83. package/node_modules/@lorenz/dispatch-coordinator/dist/gate.js.map +1 -1
  84. package/node_modules/@lorenz/dispatch-coordinator/dist/index.d.ts +1 -1
  85. package/node_modules/@lorenz/dispatch-coordinator/dist/index.d.ts.map +1 -1
  86. package/node_modules/@lorenz/dispatch-coordinator/dist/index.js +5 -6
  87. package/node_modules/@lorenz/dispatch-coordinator/dist/index.js.map +1 -1
  88. package/node_modules/@lorenz/dispatch-coordinator/dist/mcpEndpointManager.d.ts +7 -5
  89. package/node_modules/@lorenz/dispatch-coordinator/dist/mcpEndpointManager.d.ts.map +1 -1
  90. package/node_modules/@lorenz/dispatch-coordinator/dist/mcpEndpointManager.js +12 -10
  91. package/node_modules/@lorenz/dispatch-coordinator/dist/mcpEndpointManager.js.map +1 -1
  92. package/node_modules/@lorenz/dispatch-coordinator/dist/nullEndpointManager.d.ts +11 -10
  93. package/node_modules/@lorenz/dispatch-coordinator/dist/nullEndpointManager.d.ts.map +1 -1
  94. package/node_modules/@lorenz/dispatch-coordinator/dist/nullEndpointManager.js +15 -22
  95. package/node_modules/@lorenz/dispatch-coordinator/dist/nullEndpointManager.js.map +1 -1
  96. package/node_modules/@lorenz/dispatch-coordinator/dist/types.d.ts +16 -15
  97. package/node_modules/@lorenz/dispatch-coordinator/dist/types.d.ts.map +1 -1
  98. package/node_modules/@lorenz/dispatch-coordinator/dist/types.js +6 -7
  99. package/node_modules/@lorenz/dispatch-coordinator/dist/types.js.map +1 -1
  100. package/node_modules/@lorenz/domain/dist/index.d.ts +75 -9
  101. package/node_modules/@lorenz/domain/dist/index.d.ts.map +1 -1
  102. package/node_modules/@lorenz/domain/dist/index.js +40 -0
  103. package/node_modules/@lorenz/domain/dist/index.js.map +1 -1
  104. package/node_modules/@lorenz/flags/dist/coerce.d.ts +12 -0
  105. package/node_modules/@lorenz/flags/dist/coerce.d.ts.map +1 -0
  106. package/node_modules/@lorenz/flags/dist/coerce.js +44 -0
  107. package/node_modules/@lorenz/flags/dist/coerce.js.map +1 -0
  108. package/node_modules/@lorenz/flags/dist/default.d.ts +6 -0
  109. package/node_modules/@lorenz/flags/dist/default.d.ts.map +1 -0
  110. package/node_modules/@lorenz/flags/dist/default.js +22 -0
  111. package/node_modules/@lorenz/flags/dist/default.js.map +1 -0
  112. package/node_modules/@lorenz/flags/dist/deprecations.d.ts +20 -0
  113. package/node_modules/@lorenz/flags/dist/deprecations.d.ts.map +1 -0
  114. package/node_modules/@lorenz/flags/dist/deprecations.js +42 -0
  115. package/node_modules/@lorenz/flags/dist/deprecations.js.map +1 -0
  116. package/node_modules/@lorenz/flags/dist/env.d.ts +17 -0
  117. package/node_modules/@lorenz/flags/dist/env.d.ts.map +1 -0
  118. package/node_modules/@lorenz/flags/dist/env.js +90 -0
  119. package/node_modules/@lorenz/flags/dist/env.js.map +1 -0
  120. package/node_modules/@lorenz/flags/dist/errors.d.ts +22 -0
  121. package/node_modules/@lorenz/flags/dist/errors.d.ts.map +1 -0
  122. package/node_modules/@lorenz/flags/dist/errors.js +61 -0
  123. package/node_modules/@lorenz/flags/dist/errors.js.map +1 -0
  124. package/node_modules/@lorenz/flags/dist/index.d.ts +8 -0
  125. package/node_modules/@lorenz/flags/dist/index.d.ts.map +1 -0
  126. package/node_modules/@lorenz/flags/dist/index.js +11 -0
  127. package/node_modules/@lorenz/flags/dist/index.js.map +1 -0
  128. package/node_modules/@lorenz/flags/dist/keys.d.ts +6 -0
  129. package/node_modules/@lorenz/flags/dist/keys.d.ts.map +1 -0
  130. package/node_modules/@lorenz/flags/dist/keys.js +15 -0
  131. package/node_modules/@lorenz/flags/dist/keys.js.map +1 -0
  132. package/node_modules/@lorenz/flags/dist/layers.d.ts +14 -0
  133. package/node_modules/@lorenz/flags/dist/layers.d.ts.map +1 -0
  134. package/node_modules/@lorenz/flags/dist/layers.js +107 -0
  135. package/node_modules/@lorenz/flags/dist/layers.js.map +1 -0
  136. package/node_modules/@lorenz/flags/dist/manifest.d.ts +71 -0
  137. package/node_modules/@lorenz/flags/dist/manifest.d.ts.map +1 -0
  138. package/node_modules/@lorenz/flags/dist/manifest.js +137 -0
  139. package/node_modules/@lorenz/flags/dist/manifest.js.map +1 -0
  140. package/node_modules/@lorenz/flags/dist/resolve.d.ts +8 -0
  141. package/node_modules/@lorenz/flags/dist/resolve.d.ts.map +1 -0
  142. package/node_modules/@lorenz/flags/dist/resolve.js +178 -0
  143. package/node_modules/@lorenz/flags/dist/resolve.js.map +1 -0
  144. package/node_modules/@lorenz/flags/dist/testing.d.ts +19 -0
  145. package/node_modules/@lorenz/flags/dist/testing.d.ts.map +1 -0
  146. package/node_modules/@lorenz/flags/dist/testing.js +68 -0
  147. package/node_modules/@lorenz/flags/dist/testing.js.map +1 -0
  148. package/node_modules/@lorenz/flags/dist/types.d.ts +93 -0
  149. package/node_modules/@lorenz/flags/dist/types.d.ts.map +1 -0
  150. package/node_modules/@lorenz/flags/dist/types.js +2 -0
  151. package/node_modules/@lorenz/flags/dist/types.js.map +1 -0
  152. package/node_modules/@lorenz/flags/package.json +16 -0
  153. package/node_modules/@lorenz/mcp/dist/agentEndpoint.d.ts +16 -3
  154. package/node_modules/@lorenz/mcp/dist/agentEndpoint.d.ts.map +1 -1
  155. package/node_modules/@lorenz/mcp/dist/agentEndpoint.js +105 -17
  156. package/node_modules/@lorenz/mcp/dist/agentEndpoint.js.map +1 -1
  157. package/node_modules/@lorenz/mcp/dist/auth.d.ts +88 -0
  158. package/node_modules/@lorenz/mcp/dist/auth.d.ts.map +1 -1
  159. package/node_modules/@lorenz/mcp/dist/auth.js +53 -0
  160. package/node_modules/@lorenz/mcp/dist/auth.js.map +1 -1
  161. package/node_modules/@lorenz/mcp/dist/index.d.ts +3 -2
  162. package/node_modules/@lorenz/mcp/dist/index.d.ts.map +1 -1
  163. package/node_modules/@lorenz/mcp/dist/index.js +1 -1
  164. package/node_modules/@lorenz/mcp/dist/index.js.map +1 -1
  165. package/node_modules/@lorenz/mcp/dist/server.d.ts +22 -0
  166. package/node_modules/@lorenz/mcp/dist/server.d.ts.map +1 -1
  167. package/node_modules/@lorenz/mcp/dist/server.js +85 -12
  168. package/node_modules/@lorenz/mcp/dist/server.js.map +1 -1
  169. package/node_modules/@lorenz/orchestrator/dist/claimStore.d.ts +157 -0
  170. package/node_modules/@lorenz/orchestrator/dist/claimStore.d.ts.map +1 -0
  171. package/node_modules/@lorenz/orchestrator/dist/claimStore.js +621 -0
  172. package/node_modules/@lorenz/orchestrator/dist/claimStore.js.map +1 -0
  173. package/node_modules/@lorenz/orchestrator/dist/codec.d.ts +38 -0
  174. package/node_modules/@lorenz/orchestrator/dist/codec.d.ts.map +1 -0
  175. package/node_modules/@lorenz/orchestrator/dist/codec.js +176 -0
  176. package/node_modules/@lorenz/orchestrator/dist/codec.js.map +1 -0
  177. package/node_modules/@lorenz/orchestrator/dist/index.d.ts +55 -51
  178. package/node_modules/@lorenz/orchestrator/dist/index.d.ts.map +1 -1
  179. package/node_modules/@lorenz/orchestrator/dist/index.js +285 -45
  180. package/node_modules/@lorenz/orchestrator/dist/index.js.map +1 -1
  181. package/node_modules/@lorenz/orchestrator/dist/sqlite.d.ts +34 -0
  182. package/node_modules/@lorenz/orchestrator/dist/sqlite.d.ts.map +1 -0
  183. package/node_modules/@lorenz/orchestrator/dist/sqlite.js +142 -0
  184. package/node_modules/@lorenz/orchestrator/dist/sqlite.js.map +1 -0
  185. package/node_modules/@lorenz/orchestrator/dist/state.d.ts +47 -0
  186. package/node_modules/@lorenz/orchestrator/dist/state.d.ts.map +1 -0
  187. package/node_modules/@lorenz/orchestrator/dist/state.js +15 -0
  188. package/node_modules/@lorenz/orchestrator/dist/state.js.map +1 -0
  189. package/node_modules/@lorenz/orchestrator/dist/turso.d.ts +28 -0
  190. package/node_modules/@lorenz/orchestrator/dist/turso.d.ts.map +1 -0
  191. package/node_modules/@lorenz/orchestrator/dist/turso.js +125 -0
  192. package/node_modules/@lorenz/orchestrator/dist/turso.js.map +1 -0
  193. package/node_modules/@lorenz/orchestrator/package.json +6 -2
  194. package/node_modules/@lorenz/presenter/dist/index.d.ts +14 -0
  195. package/node_modules/@lorenz/presenter/dist/index.d.ts.map +1 -1
  196. package/node_modules/@lorenz/presenter/dist/index.js +18 -0
  197. package/node_modules/@lorenz/presenter/dist/index.js.map +1 -1
  198. package/node_modules/@lorenz/projections/dist/index.d.ts.map +1 -1
  199. package/node_modules/@lorenz/projections/dist/index.js +1 -0
  200. package/node_modules/@lorenz/projections/dist/index.js.map +1 -1
  201. package/node_modules/@lorenz/runtime/dist/index.d.ts +27 -8
  202. package/node_modules/@lorenz/runtime/dist/index.d.ts.map +1 -1
  203. package/node_modules/@lorenz/runtime/dist/index.js +422 -98
  204. package/node_modules/@lorenz/runtime/dist/index.js.map +1 -1
  205. package/node_modules/@lorenz/runtime-events/dist/index.d.ts +14 -0
  206. package/node_modules/@lorenz/runtime-events/dist/index.d.ts.map +1 -1
  207. package/node_modules/@lorenz/server/dist/index.js +1 -1
  208. package/node_modules/@lorenz/server/dist/index.js.map +1 -1
  209. package/node_modules/@lorenz/ssh/dist/index.d.ts +2 -0
  210. package/node_modules/@lorenz/ssh/dist/index.d.ts.map +1 -1
  211. package/node_modules/@lorenz/ssh/dist/index.js +2 -1
  212. package/node_modules/@lorenz/ssh/dist/index.js.map +1 -1
  213. package/node_modules/@lorenz/tool-sdk/dist/index.d.ts +1 -0
  214. package/node_modules/@lorenz/tool-sdk/dist/index.d.ts.map +1 -1
  215. package/node_modules/@lorenz/tool-sdk/dist/index.js +1 -0
  216. package/node_modules/@lorenz/tool-sdk/dist/index.js.map +1 -1
  217. package/node_modules/@lorenz/tool-sdk/dist/module.d.ts +38 -0
  218. package/node_modules/@lorenz/tool-sdk/dist/module.d.ts.map +1 -0
  219. package/node_modules/@lorenz/tool-sdk/dist/module.js +42 -0
  220. package/node_modules/@lorenz/tool-sdk/dist/module.js.map +1 -0
  221. package/node_modules/@lorenz/tracker-sdk/dist/index.d.ts +1 -0
  222. package/node_modules/@lorenz/tracker-sdk/dist/index.d.ts.map +1 -1
  223. package/node_modules/@lorenz/tracker-sdk/dist/index.js +1 -0
  224. package/node_modules/@lorenz/tracker-sdk/dist/index.js.map +1 -1
  225. package/node_modules/@lorenz/tracker-sdk/dist/module.d.ts +37 -0
  226. package/node_modules/@lorenz/tracker-sdk/dist/module.d.ts.map +1 -0
  227. package/node_modules/@lorenz/tracker-sdk/dist/module.js +38 -0
  228. package/node_modules/@lorenz/tracker-sdk/dist/module.js.map +1 -0
  229. package/node_modules/@lorenz/worker-host-pool/dist/index.d.ts +34 -6
  230. package/node_modules/@lorenz/worker-host-pool/dist/index.d.ts.map +1 -1
  231. package/node_modules/@lorenz/worker-host-pool/dist/index.js +110 -143
  232. package/node_modules/@lorenz/worker-host-pool/dist/index.js.map +1 -1
  233. package/node_modules/@lorenz/worker-sdk/dist/index.d.ts +1 -0
  234. package/node_modules/@lorenz/worker-sdk/dist/index.d.ts.map +1 -1
  235. package/node_modules/@lorenz/worker-sdk/dist/index.js +1 -0
  236. package/node_modules/@lorenz/worker-sdk/dist/index.js.map +1 -1
  237. package/node_modules/@lorenz/worker-sdk/dist/local.d.ts +74 -0
  238. package/node_modules/@lorenz/worker-sdk/dist/local.d.ts.map +1 -0
  239. package/node_modules/@lorenz/worker-sdk/dist/local.js +112 -0
  240. package/node_modules/@lorenz/worker-sdk/dist/local.js.map +1 -0
  241. package/node_modules/@lorenz/worker-sdk/dist/module.d.ts +8 -16
  242. package/node_modules/@lorenz/worker-sdk/dist/module.d.ts.map +1 -1
  243. package/node_modules/@lorenz/worker-sdk/dist/module.js +15 -35
  244. package/node_modules/@lorenz/worker-sdk/dist/module.js.map +1 -1
  245. package/node_modules/@lorenz/workflow/dist/index.d.ts +11 -0
  246. package/node_modules/@lorenz/workflow/dist/index.d.ts.map +1 -1
  247. package/node_modules/@lorenz/workflow/dist/index.js +3 -0
  248. package/node_modules/@lorenz/workflow/dist/index.js.map +1 -1
  249. package/package.json +4 -1
@@ -4,9 +4,15 @@ import { match } from "ts-pattern";
4
4
  import { z } from "zod";
5
5
  import { httpUrlHost, isRecord, normalizeHttpBindHost } from "@lorenz/domain";
6
6
  import { defaultToolRegistry } from "@lorenz/tool-sdk";
7
- import { createMcpAuthScope, mcpAuthScopeForSettings, validMcpToken } from "./auth.js";
7
+ import { checkRunClaim, createMcpAuthScope, mcpAuthScopeForSettings, resolveRunClaim, validMcpToken, } from "./auth.js";
8
8
  import { executeTool, toolSpecs } from "./tools.js";
9
+ const defaultIsRunLive = () => false;
9
10
  const mcpPath = "/mcp";
11
+ // The claim middleware stashes the request body it already parsed here, keyed by
12
+ // the underlying `Request`, so `handleMcp` reads it back instead of re-parsing -
13
+ // the JSON is parsed once per request. A WeakMap avoids typing the untyped Hono
14
+ // app's context store and lets the entry be collected with the request.
15
+ const parsedRequestBodies = new WeakMap();
10
16
  export async function startMcpServer(settings, options) {
11
17
  const app = new Hono();
12
18
  const bindHost = normalizeHttpBindHost(options.host);
@@ -14,7 +20,7 @@ export async function startMcpServer(settings, options) {
14
20
  (options.port > 0
15
21
  ? mcpAuthScopeForSettings(settings, bindHost, options.port)
16
22
  : createMcpAuthScope());
17
- mountMcp(app, settings, { authScope, tools: options.tools });
23
+ mountMcp(app, settings, { authScope, tools: options.tools, isRunLive: options.isRunLive });
18
24
  app.notFound((c) => c.req.method === "GET"
19
25
  ? errorResponse(404, "not_found", "Route not found")
20
26
  : errorResponse(405, "method_not_allowed", "Method not allowed"));
@@ -28,18 +34,46 @@ export async function startMcpServer(settings, options) {
28
34
  export function mountMcp(app, settings, options = {}) {
29
35
  const currentSettings = typeof settings === "function" ? settings : () => settings;
30
36
  const authScope = options.authScope ?? createMcpAuthScope();
37
+ const isRunLive = options.isRunLive ?? defaultIsRunLive;
38
+ // A mount handed a real `isRunLive` oracle IS the per-run claim-enforcing
39
+ // (co-residence) MCP server: it accepts ONLY Token B and never falls back to
40
+ // the settings-wide Token A path, so a settings-wide token can never authorize
41
+ // a co-resident run's MCP calls. Non-claim mounts (the observability server,
42
+ // the legacy acp/local endpoint) inject no oracle and keep the Token A path.
43
+ const enforcePerRunClaim = options.isRunLive !== undefined;
31
44
  app.use(mcpPath, async (c, next) => {
32
45
  if (c.req.method !== "POST") {
33
46
  await next();
34
47
  return;
35
48
  }
36
- if (!authorizedMcpHeader(c.req.header("authorization"), authScope)) {
37
- return jsonResponse({
38
- error: {
39
- code: "unauthorized",
40
- message: "Missing or invalid MCP bearer token",
41
- },
42
- }, 401);
49
+ const bearer = bearerToken(c.req.header("authorization"));
50
+ // Token B (per-run scoped claim) is the only source of a request's runKey:
51
+ // resolve it server-side from the opaque token and re-check the owner on
52
+ // EVERY request. A self-reported runKey header is never trusted.
53
+ const claim = resolveRunClaim(bearer);
54
+ if (claim) {
55
+ // Parse the body ONCE here for the allowlist re-check and stash a record
56
+ // body for `handleMcp` to reuse (a malformed/non-record body is left
57
+ // unstashed so `handleMcp` re-parses and reports the JSON-RPC parse error).
58
+ const parsedBody = parseRequestBody(await c.req.text());
59
+ if (isRecord(parsedBody))
60
+ parsedRequestBodies.set(c.req.raw, parsedBody);
61
+ const decision = checkRunClaim(claim, { toolName: requestToolName(parsedBody), isRunLive });
62
+ if (!decision.ok)
63
+ return unauthorizedMcpResponse();
64
+ await next();
65
+ return;
66
+ }
67
+ // Claim-enforcing mount: NO Token A fallback. A bearer that is not a live
68
+ // Token B is refused outright (fail closed), closing the settings-wide
69
+ // bypass on the shared per-run server.
70
+ if (enforcePerRunClaim) {
71
+ return unauthorizedMcpResponse();
72
+ }
73
+ // Non-claim mount: the settings-wide Token A path (observability server,
74
+ // legacy acp/local endpoint).
75
+ if (!validMcpToken(bearer, authScope)) {
76
+ return unauthorizedMcpResponse();
43
77
  }
44
78
  await next();
45
79
  });
@@ -87,14 +121,53 @@ async function handleMcp(settings, c, tools) {
87
121
  return jsonResponse(response);
88
122
  }
89
123
  async function requestJson(c) {
124
+ // Reuse the record body the claim middleware already parsed, if present, so the
125
+ // per-request MCP path parses the JSON exactly once.
126
+ const cached = getRequestBody(c);
127
+ if (cached)
128
+ return cached;
90
129
  const parsed = JSON.parse(await c.req.text());
91
130
  if (!isRecord(parsed))
92
131
  throw new Error("request body must be an object");
93
132
  return parsed;
94
133
  }
95
- function authorizedMcpHeader(authorization, authScope) {
96
- const bearer = /^Bearer\s+(.+)$/.exec(authorization ?? "")?.[1];
97
- return validMcpToken(bearer, authScope);
134
+ function getRequestBody(c) {
135
+ return parsedRequestBodies.get(c.req.raw);
136
+ }
137
+ /** Parse a raw JSON body, returning `undefined` for unparseable input. */
138
+ function parseRequestBody(rawBody) {
139
+ try {
140
+ return JSON.parse(rawBody);
141
+ }
142
+ catch {
143
+ return undefined;
144
+ }
145
+ }
146
+ function bearerToken(authorization) {
147
+ return /^Bearer\s+(.+)$/.exec(authorization ?? "")?.[1];
148
+ }
149
+ function unauthorizedMcpResponse() {
150
+ return jsonResponse({
151
+ error: {
152
+ code: "unauthorized",
153
+ message: "Missing or invalid MCP bearer token",
154
+ },
155
+ }, 401);
156
+ }
157
+ /**
158
+ * Best-effort `tools/call` name for the per-run allowlist re-check, read from the
159
+ * already-parsed request body. Returns null for non-tool requests or
160
+ * unparseable/non-record bodies; the allowlist only narrows tool calls, so a null
161
+ * name simply skips the allowlist (the rest of the claim still gates the request).
162
+ */
163
+ function requestToolName(body) {
164
+ if (!isRecord(body) || body.method !== "tools/call")
165
+ return null;
166
+ const params = body.params;
167
+ if (!isRecord(params))
168
+ return null;
169
+ const name = params.name;
170
+ return typeof name === "string" ? name.trim() || null : null;
98
171
  }
99
172
  export async function mcpResponse(settings, body, tools = defaultToolRegistry) {
100
173
  const method = typeof body.method === "string" ? body.method : "";
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,157 @@
1
+ import { type HydrateStateOptions, type SerializedOrchestratorState } from "./codec.js";
2
+ import { type OrchestratorState } from "./state.js";
3
+ export type ClaimStoreOperation = "eligible_issues" | "claim" | "bind_reservation" | "cancel_reservation" | "refresh_running_issue" | "apply_update" | "finish" | "abandon_claim" | "cleanup_issue";
4
+ export interface ClaimStoreCapabilities {
5
+ crashRecovery: boolean;
6
+ sharedAcrossProcesses: boolean;
7
+ retryDurability: boolean;
8
+ }
9
+ export interface ClaimStoreStatus {
10
+ kind: string;
11
+ ownerId: string;
12
+ capabilities: ClaimStoreCapabilities;
13
+ hydratedAt: string;
14
+ transactionsApplied: number;
15
+ lastOperation: ClaimStoreOperation | null;
16
+ lastCheckpointAt: string | null;
17
+ }
18
+ export interface ClaimStore {
19
+ readonly kind: string;
20
+ readonly ownerId: string;
21
+ readonly capabilities: ClaimStoreCapabilities;
22
+ readonly state: OrchestratorState;
23
+ read<T>(run: (state: OrchestratorState) => T): T;
24
+ transaction<T>(operation: ClaimStoreOperation, run: (state: OrchestratorState) => T): T;
25
+ heartbeatOwner(): void;
26
+ status(): ClaimStoreStatus;
27
+ }
28
+ export interface AsyncClaimStore {
29
+ readonly async: true;
30
+ readonly kind: string;
31
+ readonly ownerId: string;
32
+ readonly capabilities: ClaimStoreCapabilities;
33
+ readonly state: OrchestratorState;
34
+ read<T>(run: (state: OrchestratorState) => T): Promise<T>;
35
+ transaction<T>(operation: ClaimStoreOperation, run: (state: OrchestratorState) => T): Promise<T>;
36
+ heartbeatOwner(): Promise<void>;
37
+ status(): ClaimStoreStatus;
38
+ }
39
+ export type ClaimStoreLike = ClaimStore | AsyncClaimStore;
40
+ export interface ClaimStoreCheckpoint {
41
+ version: 1;
42
+ ownerId: string;
43
+ writtenAt: string;
44
+ operation: ClaimStoreOperation | "hydrate" | "flush" | "recover_stale_owners";
45
+ state: SerializedOrchestratorState;
46
+ }
47
+ export interface ClaimStoreBackend {
48
+ readonly kind: string;
49
+ readonly capabilities: ClaimStoreCapabilities;
50
+ load(): ClaimStoreCheckpoint | null;
51
+ save(checkpoint: ClaimStoreCheckpoint): void;
52
+ withExclusiveTransaction?<T>(run: () => T): T;
53
+ heartbeatOwner?(ownerId: string, at: Date): void;
54
+ ownerIsActive?(ownerId: string, now: Date, staleMs: number): boolean;
55
+ close?(): void;
56
+ }
57
+ export interface AsyncClaimStoreBackend {
58
+ readonly kind: string;
59
+ readonly capabilities: ClaimStoreCapabilities;
60
+ load(): Promise<ClaimStoreCheckpoint | null>;
61
+ save(checkpoint: ClaimStoreCheckpoint): Promise<void>;
62
+ withExclusiveTransaction?<T>(run: () => Promise<T>): Promise<T>;
63
+ heartbeatOwner?(ownerId: string, at: Date): Promise<void>;
64
+ ownerIsActive?(ownerId: string, now: Date, staleMs: number): Promise<boolean>;
65
+ close?(): Promise<void>;
66
+ }
67
+ export interface InMemoryClaimStoreOptions {
68
+ ownerId?: string | undefined;
69
+ hydratedAt?: Date | undefined;
70
+ }
71
+ export declare class InMemoryClaimStore implements ClaimStore {
72
+ readonly state: OrchestratorState;
73
+ readonly kind = "memory";
74
+ readonly capabilities: ClaimStoreCapabilities;
75
+ readonly ownerId: string;
76
+ private readonly hydratedAt;
77
+ private transactionsApplied;
78
+ private lastOperation;
79
+ constructor(state: OrchestratorState, options?: InMemoryClaimStoreOptions);
80
+ read<T>(run: (state: OrchestratorState) => T): T;
81
+ transaction<T>(operation: ClaimStoreOperation, run: (state: OrchestratorState) => T): T;
82
+ heartbeatOwner(): void;
83
+ status(): ClaimStoreStatus;
84
+ }
85
+ export declare class AsyncPersistentClaimStore implements AsyncClaimStore {
86
+ private readonly backend;
87
+ readonly async: true;
88
+ readonly ownerId: string;
89
+ readonly kind: string;
90
+ readonly capabilities: ClaimStoreCapabilities;
91
+ readonly state: OrchestratorState;
92
+ private readonly hydratedAt;
93
+ private readonly now;
94
+ private readonly monotonicNow;
95
+ private readonly ownerLeaseStaleMs;
96
+ private readonly hydrateOptions;
97
+ private transactionsApplied;
98
+ private lastOperation;
99
+ private lastCheckpointAt;
100
+ private constructor();
101
+ static create(backend: AsyncClaimStoreBackend, options?: PersistentClaimStoreOptions): Promise<AsyncPersistentClaimStore>;
102
+ read<T>(run: (state: OrchestratorState) => T): Promise<T>;
103
+ transaction<T>(operation: ClaimStoreOperation, run: (state: OrchestratorState) => T): Promise<T>;
104
+ flush(): Promise<void>;
105
+ heartbeatOwner(): Promise<void>;
106
+ close(): Promise<void>;
107
+ status(): ClaimStoreStatus;
108
+ private loadInitial;
109
+ private save;
110
+ private reload;
111
+ private writeOwnerHeartbeat;
112
+ private recoverInactiveOwners;
113
+ private hydrate;
114
+ private recovery;
115
+ private retryEntryFromRunningClaim;
116
+ }
117
+ export interface PersistentClaimStoreOptions {
118
+ ownerId?: string | undefined;
119
+ hydratedAt?: Date | undefined;
120
+ now?: (() => Date) | undefined;
121
+ monotonicNow?: (() => number) | undefined;
122
+ ownerLeaseStaleMs?: number | undefined;
123
+ hydrate?: HydrateStateOptions | (() => HydrateStateOptions) | undefined;
124
+ }
125
+ export declare class PersistentClaimStore implements ClaimStore {
126
+ private readonly backend;
127
+ readonly ownerId: string;
128
+ readonly kind: string;
129
+ readonly capabilities: ClaimStoreCapabilities;
130
+ readonly state: OrchestratorState;
131
+ private readonly hydratedAt;
132
+ private readonly now;
133
+ private readonly monotonicNow;
134
+ private readonly ownerLeaseStaleMs;
135
+ private readonly hydrateOptions;
136
+ private transactionsApplied;
137
+ private lastOperation;
138
+ private lastCheckpointAt;
139
+ constructor(backend: ClaimStoreBackend, options?: PersistentClaimStoreOptions);
140
+ read<T>(run: (state: OrchestratorState) => T): T;
141
+ transaction<T>(operation: ClaimStoreOperation, run: (state: OrchestratorState) => T): T;
142
+ flush(): void;
143
+ heartbeatOwner(): void;
144
+ close(): void;
145
+ status(): ClaimStoreStatus;
146
+ private save;
147
+ private reload;
148
+ private writeOwnerHeartbeat;
149
+ private recoverInactiveOwners;
150
+ private hydrate;
151
+ private recovery;
152
+ private retryEntryFromRunningClaim;
153
+ }
154
+ export declare function isClaimStore(value: unknown): value is ClaimStore;
155
+ export declare function isAsyncClaimStore(value: unknown): value is AsyncClaimStore;
156
+ export declare function isClaimStoreLike(value: unknown): value is ClaimStoreLike;
157
+ //# sourceMappingURL=claimStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claimStore.d.ts","sourceRoot":"","sources":["../src/claimStore.ts"],"names":[],"mappings":"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"}