lorenz 0.1.5 → 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 (247) 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 +38 -1
  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/ssh/dist/index.d.ts +2 -0
  208. package/node_modules/@lorenz/ssh/dist/index.d.ts.map +1 -1
  209. package/node_modules/@lorenz/ssh/dist/index.js +2 -1
  210. package/node_modules/@lorenz/ssh/dist/index.js.map +1 -1
  211. package/node_modules/@lorenz/tool-sdk/dist/index.d.ts +1 -0
  212. package/node_modules/@lorenz/tool-sdk/dist/index.d.ts.map +1 -1
  213. package/node_modules/@lorenz/tool-sdk/dist/index.js +1 -0
  214. package/node_modules/@lorenz/tool-sdk/dist/index.js.map +1 -1
  215. package/node_modules/@lorenz/tool-sdk/dist/module.d.ts +38 -0
  216. package/node_modules/@lorenz/tool-sdk/dist/module.d.ts.map +1 -0
  217. package/node_modules/@lorenz/tool-sdk/dist/module.js +42 -0
  218. package/node_modules/@lorenz/tool-sdk/dist/module.js.map +1 -0
  219. package/node_modules/@lorenz/tracker-sdk/dist/index.d.ts +1 -0
  220. package/node_modules/@lorenz/tracker-sdk/dist/index.d.ts.map +1 -1
  221. package/node_modules/@lorenz/tracker-sdk/dist/index.js +1 -0
  222. package/node_modules/@lorenz/tracker-sdk/dist/index.js.map +1 -1
  223. package/node_modules/@lorenz/tracker-sdk/dist/module.d.ts +37 -0
  224. package/node_modules/@lorenz/tracker-sdk/dist/module.d.ts.map +1 -0
  225. package/node_modules/@lorenz/tracker-sdk/dist/module.js +38 -0
  226. package/node_modules/@lorenz/tracker-sdk/dist/module.js.map +1 -0
  227. package/node_modules/@lorenz/worker-host-pool/dist/index.d.ts +34 -6
  228. package/node_modules/@lorenz/worker-host-pool/dist/index.d.ts.map +1 -1
  229. package/node_modules/@lorenz/worker-host-pool/dist/index.js +110 -143
  230. package/node_modules/@lorenz/worker-host-pool/dist/index.js.map +1 -1
  231. package/node_modules/@lorenz/worker-sdk/dist/index.d.ts +1 -0
  232. package/node_modules/@lorenz/worker-sdk/dist/index.d.ts.map +1 -1
  233. package/node_modules/@lorenz/worker-sdk/dist/index.js +1 -0
  234. package/node_modules/@lorenz/worker-sdk/dist/index.js.map +1 -1
  235. package/node_modules/@lorenz/worker-sdk/dist/local.d.ts +74 -0
  236. package/node_modules/@lorenz/worker-sdk/dist/local.d.ts.map +1 -0
  237. package/node_modules/@lorenz/worker-sdk/dist/local.js +112 -0
  238. package/node_modules/@lorenz/worker-sdk/dist/local.js.map +1 -0
  239. package/node_modules/@lorenz/worker-sdk/dist/module.d.ts +8 -16
  240. package/node_modules/@lorenz/worker-sdk/dist/module.d.ts.map +1 -1
  241. package/node_modules/@lorenz/worker-sdk/dist/module.js +15 -35
  242. package/node_modules/@lorenz/worker-sdk/dist/module.js.map +1 -1
  243. package/node_modules/@lorenz/workflow/dist/index.d.ts +11 -0
  244. package/node_modules/@lorenz/workflow/dist/index.d.ts.map +1 -1
  245. package/node_modules/@lorenz/workflow/dist/index.js +3 -0
  246. package/node_modules/@lorenz/workflow/dist/index.js.map +1 -1
  247. package/package.json +4 -1
@@ -0,0 +1,67 @@
1
+ import { bindFlags, defineFeatures, defineFlags, feature, flag, flagInputsFromCli, flagInputsFromEnv, flagInputsFromFile, featureKeys, resolveFlags, validateManifest, } from "@lorenz/flags";
2
+ // The composition root owns the concrete flag/feature manifest; `@lorenz/flags` itself stays
3
+ // manifest-agnostic. The valid key universe is declared once here, so unknown keys fail explicitly
4
+ // at every layer. (When an engine package needs to read a flag with its precise type, this manifest
5
+ // moves to that engine package and the daemon imports it from there.)
6
+ const flags = defineFlags({
7
+ "diagnostics.log_flag_resolution": flag.bool({
8
+ default: false,
9
+ description: "Write the resolved flag set to stderr at startup.",
10
+ }),
11
+ "diagnostics.detail": flag.enum({
12
+ values: ["summary", "full"],
13
+ default: "summary",
14
+ description: "Startup flag-dump detail: summary lists non-default flags, full lists every flag and feature.",
15
+ }),
16
+ "diagnostics.sample_limit": flag.int({
17
+ default: 20,
18
+ refine: (n) => n >= 0,
19
+ refineMessage: "must be a non-negative integer",
20
+ description: "Maximum flags to print in the startup dump (0 = no limit).",
21
+ }),
22
+ });
23
+ const features = defineFeatures(flags, {
24
+ verbose_diagnostics: feature({
25
+ default: false,
26
+ description: "Dump the full resolved flag set to stderr at startup.",
27
+ preset: { "diagnostics.log_flag_resolution": true, "diagnostics.detail": "full" },
28
+ }),
29
+ });
30
+ const appManifest = { flags, features };
31
+ // Fail fast in CI if the manifest is internally inconsistent (bad default / bad preset).
32
+ validateManifest(appManifest);
33
+ const bound = bindFlags(appManifest);
34
+ /** Typed ambient accessor for the installed snapshot. Reads after `setDefaultFlags` at startup. */
35
+ export function getFlags() {
36
+ return bound.getFlags();
37
+ }
38
+ /** Commander accumulator for repeatable options: collects raw tokens, does no validation. */
39
+ export function accumulateOption(value, previous = []) {
40
+ return [...previous, value];
41
+ }
42
+ /** Resolve the app's flags from the three layers. Does NOT install the snapshot; the caller does. */
43
+ export function resolveAppFlags(inputs, fileConfig, env, options = {}) {
44
+ return resolveFlags(appManifest, {
45
+ cli: flagInputsFromCli(appManifest, inputs.flagTokens ?? [], inputs.featureTokens ?? []),
46
+ file: flagInputsFromFile(appManifest, fileConfig),
47
+ env: flagInputsFromEnv(appManifest, env),
48
+ }, options);
49
+ }
50
+ /** Render the resolved flag set with provenance for the startup dump and `lorenz doctor`. */
51
+ export function renderFlagDiagnostics(snapshot) {
52
+ const full = snapshot.get("diagnostics.detail") === "full";
53
+ const limit = snapshot.get("diagnostics.sample_limit");
54
+ const entries = Object.entries(snapshot.values).filter(([key]) => full || snapshot.source(key) !== "default");
55
+ const shown = limit > 0 ? entries.slice(0, limit) : entries;
56
+ const lines = shown.map(([key, value]) => ` ${key} = ${JSON.stringify(value)} (${snapshot.source(key)})`);
57
+ if (shown.length < entries.length) {
58
+ lines.push(` ... and ${entries.length - shown.length} more (raise diagnostics.sample_limit)`);
59
+ }
60
+ if (full) {
61
+ const enabled = featureKeys(appManifest).filter((name) => snapshot.feature(name));
62
+ lines.push(` features enabled: ${enabled.length > 0 ? enabled.join(", ") : "(none)"}`);
63
+ }
64
+ const header = full ? "Resolved flags (full):" : "Resolved flags (non-default):";
65
+ return `${header}\n${lines.join("\n")}\n`;
66
+ }
67
+ //# sourceMappingURL=flags-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flags-manifest.js","sourceRoot":"","sources":["../src/flags-manifest.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,12 @@ export { LinearClient } from "@lorenz/linear-tracker";
12
12
  export { JiraClient, JiraMcpClient } from "@lorenz/jira-tracker";
13
13
  export { MemoryTrackerClient, memoryIssuesFromEnv } from "@lorenz/memory-tracker";
14
14
  export { configureLogFile, appendLogEvent, defaultLogFile } from "@lorenz/log-file";
15
+ /** @beta */
16
+ export { acquireDaemonLock, createDaemonIdentity, daemonLockIsStale, daemonLockPath, LocalFileDaemonLeadershipStore, readDaemonLock, type AcquireDaemonLockOptions, type AcquireDaemonLockResult, type AcquireLocalFileDaemonLeadershipResult, type DaemonEndpoint, type DaemonIdentity, type DaemonLockRecord, } from "./daemonLock.js";
17
+ /** @beta */
18
+ export type { LeadershipAcquireResult, LeadershipEndpoint, LeadershipIdentity, LeadershipLease, LeadershipLeaseRecord, LeadershipStore, } from "./leadershipStore.js";
19
+ /** @beta */
20
+ export { daemonStatusPayload, type DaemonStatusPayload } from "./daemonStatus.js";
15
21
  export { Orchestrator } from "@lorenz/orchestrator";
16
22
  export type { RunResult } from "@lorenz/agent-runner";
17
23
  export { LorenzRuntime, RUNTIME_EVENT_TYPES } from "@lorenz/runtime";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,10 @@ export { LinearClient } from "@lorenz/linear-tracker";
12
12
  export { JiraClient, JiraMcpClient } from "@lorenz/jira-tracker";
13
13
  export { MemoryTrackerClient, memoryIssuesFromEnv } from "@lorenz/memory-tracker";
14
14
  export { configureLogFile, appendLogEvent, defaultLogFile } from "@lorenz/log-file";
15
+ /** @beta */
16
+ export { acquireDaemonLock, createDaemonIdentity, daemonLockIsStale, daemonLockPath, LocalFileDaemonLeadershipStore, readDaemonLock, } from "./daemonLock.js";
17
+ /** @beta */
18
+ export { daemonStatusPayload } from "./daemonStatus.js";
15
19
  export { Orchestrator } from "@lorenz/orchestrator";
16
20
  export { LorenzRuntime, RUNTIME_EVENT_TYPES } from "@lorenz/runtime";
17
21
  export { statePayload, issuePayload, runsPayload } from "@lorenz/presenter";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,EACf,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EACL,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EACL,cAAc,EACd,aAAa,EACb,uBAAuB,EACvB,6BAA6B,EAC7B,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACL,WAAW,EACX,aAAa,EACb,cAAc,EACd,aAAa,EACb,uBAAuB,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EACL,OAAO,EACP,UAAU,EACV,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAOvD,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AACtE,OAAO,EACL,eAAe,EACf,wBAAwB,EACxB,mBAAmB,EACnB,uBAAuB,EACvB,eAAe,EACf,eAAe,GAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACnG,OAAO,EACL,eAAe,EACf,WAAW,EACX,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,YAAY,EACZ,oBAAoB,EACpB,gBAAgB,GACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EACL,cAAc,EACd,aAAa,EACb,uBAAuB,EACvB,6BAA6B,EAC7B,eAAe,EACf,qBAAqB,EACrB,qBAAqB,EACrB,gBAAgB,EAChB,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EACL,WAAW,EACX,aAAa,EACb,cAAc,EACd,aAAa,EACb,uBAAuB,GACxB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACpF,YAAY;AACZ,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,8BAA8B,EAC9B,cAAc,GAOf,MAAM,iBAAiB,CAAC;AAUzB,YAAY;AACZ,OAAO,EAAE,mBAAmB,EAA4B,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EACL,OAAO,EACP,UAAU,EACV,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAOvD,OAAO,EACL,oBAAoB,EACpB,2BAA2B,EAC3B,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC"}
@@ -0,0 +1,42 @@
1
+ /** @beta */
2
+ export interface LeadershipEndpoint {
3
+ kind: "http" | "socket";
4
+ address: string;
5
+ }
6
+ /** @beta */
7
+ export interface LeadershipIdentity {
8
+ ownerId: string;
9
+ pid: number;
10
+ hostname: string;
11
+ startedAt: string;
12
+ workflowPath: string;
13
+ workspaceRoot: string;
14
+ }
15
+ /** @beta */
16
+ export interface LeadershipLeaseRecord extends LeadershipIdentity {
17
+ endpoint: LeadershipEndpoint;
18
+ heartbeatAt: string;
19
+ }
20
+ /** @beta */
21
+ export interface LeadershipLease<TRecord extends LeadershipLeaseRecord = LeadershipLeaseRecord> {
22
+ snapshot(): TRecord;
23
+ heartbeat(now?: Date): Promise<TRecord>;
24
+ release(): Promise<boolean>;
25
+ }
26
+ /** @beta */
27
+ export type LeadershipAcquireResult<TLease extends LeadershipLease<TRecord>, TRecord extends LeadershipLeaseRecord> = {
28
+ status: "acquired";
29
+ lease: TLease;
30
+ } | {
31
+ status: "conflict";
32
+ record: TRecord | null;
33
+ stale: boolean;
34
+ };
35
+ /** @beta */
36
+ export interface LeadershipStore<TAcquireOptions, TReadOptions, TRecord extends LeadershipLeaseRecord, TLease extends LeadershipLease<TRecord>> {
37
+ readonly kind: string;
38
+ acquire(options: TAcquireOptions): Promise<LeadershipAcquireResult<TLease, TRecord>>;
39
+ read(options: TReadOptions): Promise<TRecord | null>;
40
+ isStale(record: TRecord, now?: Date, staleAfterMs?: number): boolean;
41
+ }
42
+ //# sourceMappingURL=leadershipStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leadershipStore.d.ts","sourceRoot":"","sources":["../src/leadershipStore.ts"],"names":[],"mappings":"AAAA,YAAY;AACZ,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,YAAY;AACZ,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,YAAY;AACZ,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAC/D,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,YAAY;AACZ,MAAM,WAAW,eAAe,CAAC,OAAO,SAAS,qBAAqB,GAAG,qBAAqB;IAC5F,QAAQ,IAAI,OAAO,CAAC;IACpB,SAAS,CAAC,GAAG,CAAC,EAAE,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7B;AAED,YAAY;AACZ,MAAM,MAAM,uBAAuB,CACjC,MAAM,SAAS,eAAe,CAAC,OAAO,CAAC,EACvC,OAAO,SAAS,qBAAqB,IAEnC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACrC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAEnE,YAAY;AACZ,MAAM,WAAW,eAAe,CAC9B,eAAe,EACf,YAAY,EACZ,OAAO,SAAS,qBAAqB,EACrC,MAAM,SAAS,eAAe,CAAC,OAAO,CAAC;IAEvC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACrF,IAAI,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;IACrD,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CACtE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=leadershipStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leadershipStore.js","sourceRoot":"","sources":["../src/leadershipStore.ts"],"names":[],"mappings":""}
@@ -8,6 +8,8 @@ export interface CliOptions {
8
8
  dashboard: boolean;
9
9
  port: number | null;
10
10
  logsRoot: string | null;
11
+ flagTokens?: string[];
12
+ featureTokens?: string[];
11
13
  }
12
14
  export type CliParseResult = ParseResult<CliOptions>;
13
15
  export declare function parseCliArgs(args: string[]): CliParseResult;
@@ -19,22 +21,24 @@ export declare function projectUrlForSettings(settings: Settings): string | unde
19
21
  * (the canonical field behind the legacy `max_in_flight` key). Co-residence packs
20
22
  * multiple run slots onto one machine, so it requires BOTH:
21
23
  *
22
- * 1. a coordinator that advertises `capabilities.perRunEndpoint === true` (each
23
- * RunSlot owns its own MCP endpoint - token + local-server + tunnel - so two
24
- * co-resident runs never share or tear out each other's endpoint), and
24
+ * 1. a coordinator whose gateway advertises `capabilities.perRunClaimEnforcement
25
+ * === true`: the shared MCP gateway resolves each request's per-run scoped Token
26
+ * B claim server-side, re-checks the owning run is still live, fences it by
27
+ * generation, and fails closed otherwise - so two co-resident runs sharing one
28
+ * host + reverse tunnel can never authorize against each other's claim, and
25
29
  * 2. an explicit `worker.worker_pool.co_residence` operator opt-in, because a single
26
30
  * poisoned worker fails every co-resident run on recycle: widening that blast
27
31
  * radius is a deliberate tradeoff, not just a capability.
28
32
  *
29
33
  * `slotsPerMachine === 1` (the default) always passes - the gate never triggers, so
30
34
  * the single-tenant startup path stays byte-identical. This lives in the daemon
31
- * rather than {@link validateDispatchConfig} because the per-run-endpoint capability
32
- * only exists once the coordinator has been constructed; the per-poll config
33
- * validation must stay capability-free.
35
+ * rather than {@link validateDispatchConfig} because the per-run-claim-enforcement
36
+ * capability only exists once the coordinator has been constructed; the per-poll
37
+ * config validation must stay capability-free.
34
38
  */
35
39
  export declare function assertSlotsPerMachineGate(settings: Settings, coordinator: {
36
40
  readonly capabilities: {
37
- readonly perRunEndpoint: boolean;
41
+ readonly perRunClaimEnforcement: boolean;
38
42
  };
39
43
  } | undefined): void;
40
44
  //# sourceMappingURL=main.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAKA,OAAO,EAQL,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAazB,OAAO,EAAgB,KAAK,QAAQ,EAA2B,MAAM,gBAAgB,CAAC;AAwBtF,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAWD,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;AAErD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAW3D;AAED,wBAAsB,IAAI,CAAC,IAAI,WAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqCxE;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAwJpE;AA8CD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAE5E;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE;IAAE,QAAQ,CAAC,YAAY,EAAE;QAAE,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GAAG,SAAS,GACvF,IAAI,CAMN"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAKA,OAAO,EAQL,KAAK,WAAW,EACjB,MAAM,iBAAiB,CAAC;AAazB,OAAO,EAAgB,KAAK,QAAQ,EAA2B,MAAM,gBAAgB,CAAC;AAgCtF,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,GAAG,EAAE,OAAO,CAAC;IACb,SAAS,EAAE,OAAO,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAGxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAaD,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;AAErD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,cAAc,CAW3D;AAED,wBAAsB,IAAI,CAAC,IAAI,WAAwB,GAAG,OAAO,CAAC,MAAM,CAAC,CAqCxE;AAED,wBAAsB,SAAS,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAwMpE;AA2DD,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,GAAG,SAAS,CAE5E;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE;IAAE,QAAQ,CAAC,YAAY,EAAE;QAAE,QAAQ,CAAC,sBAAsB,EAAE,OAAO,CAAA;KAAE,CAAA;CAAE,GAAG,SAAS,GAC/F,IAAI,CAMN"}
@@ -16,9 +16,11 @@ import { defaultTrackerRegistry } from "@lorenz/tracker-sdk";
16
16
  import { TraceEmitter } from "@lorenz/traceviz-emitter";
17
17
  import { defaultIssueStorePath, IssueStore } from "@lorenz/server";
18
18
  import { errorMessage } from "@lorenz/domain";
19
+ import { setDefaultFlags } from "@lorenz/flags";
19
20
  import { createRunsCommand, runRunsCommand, runsOptionsFromCommanderOptions, } from "./runs.js";
20
21
  import { createDoctorCommand, doctorOptionsFromCommanderOptions, renderDoctorReport, runDoctorCommand, } from "./doctor.js";
21
- import { buildDispatchCoordinator, createTrackerClient, runAgentAttempt, registerBuiltinBackends, runtimeAdapters, runtimeDefaultSettingsOptions, } from "./daemon.js";
22
+ import { buildDispatchCoordinator, createTrackerClient, prepareTrackerExtensions, runAgentAttempt, registerBuiltinBackends, runtimeAdapters, runtimeDefaultSettingsOptions, } from "./daemon.js";
23
+ import { accumulateOption, getFlags, renderFlagDiagnostics, resolveAppFlags, } from "./flags-manifest.js";
22
24
  export function parseCliArgs(args) {
23
25
  const command = configureCommandForParse(createDaemonCommand());
24
26
  if (hasHelpFlag(args))
@@ -72,11 +74,28 @@ export async function runDaemon(options) {
72
74
  // Surface deprecated config keys once, on the first (startup) load. Reloads run the same
73
75
  // validation every poll, so re-warning there would spam an unchanged config.
74
76
  let deprecationsReported = false;
77
+ // Flags resolve once at startup and are reload-invariant; if a later reload changes the
78
+ // `flags:`/`features:` front matter, warn once that the edit was ignored rather than honoring
79
+ // or silently dropping it.
80
+ let flagFrontMatter = null;
81
+ let flagChangeWarned = false;
82
+ // Known after the first load; reused so the tracker loader's audit events
83
+ // reach the configured log file on every reload after startup.
84
+ let trackerLogFile;
75
85
  const loadRuntimeWorkflow = async () => {
76
86
  const workflow = await loadWorkflow(options.workflowPath ?? undefined, process.env, {
77
87
  ...runtimeDefaultSettingsOptions(),
78
88
  trackers: defaultTrackerRegistry,
89
+ // Pre-parse hook: dynamic-import any out-of-tree tracker named by
90
+ // `tracker.kind` BEFORE config parsing resolves the provider, so an
91
+ // out-of-tree tracker is option-parsed and validated exactly like a built-in.
92
+ prepareRegistries: async (rawConfig, ctx) => prepareTrackerExtensions(rawConfig, {
93
+ baseDir: ctx.baseDir,
94
+ logFile: trackerLogFile,
95
+ trackers: defaultTrackerRegistry,
96
+ }),
79
97
  });
98
+ trackerLogFile = workflow.settings.logging.logFile;
80
99
  applyCliOverrides(workflow, options);
81
100
  if (boundServerPort !== null)
82
101
  workflow.settings.server.port = boundServerPort;
@@ -87,9 +106,33 @@ export async function runDaemon(options) {
87
106
  warn: (message) => process.stderr.write(`Lorenz config deprecation: ${message}\n`),
88
107
  });
89
108
  deprecationsReported = true;
109
+ // Detect a post-startup edit to the reload-invariant flag front matter. Skip the work once the
110
+ // warning has fired, so the steady-state per-poll cost is zero.
111
+ if (!flagChangeWarned) {
112
+ const flagFingerprint = JSON.stringify({
113
+ flags: workflow.config.flags ?? null,
114
+ features: workflow.config.features ?? null,
115
+ });
116
+ if (flagFrontMatter === null) {
117
+ flagFrontMatter = flagFingerprint;
118
+ }
119
+ else if (flagFingerprint !== flagFrontMatter) {
120
+ flagChangeWarned = true;
121
+ process.stderr.write("warning: WORKFLOW.md flags/features changed after startup and were ignored; " +
122
+ "restart Lorenz to apply.\n");
123
+ }
124
+ }
90
125
  return workflow;
91
126
  };
92
127
  const workflow = await loadRuntimeWorkflow();
128
+ // Resolve flags once, from CLI > file (front matter) > env > defaults, and install the frozen
129
+ // snapshot before anything that might read it. Invalid flags throw and surface via the catch.
130
+ const flags = resolveAppFlags({ flagTokens: options.flagTokens, featureTokens: options.featureTokens }, workflow.config, process.env, { warn: (message) => process.stderr.write(`warning: ${message}\n`) });
131
+ setDefaultFlags(flags);
132
+ // Read back through the installed typed accessor, the same path engine code uses.
133
+ if (getFlags().get("diagnostics.log_flag_resolution")) {
134
+ process.stderr.write(renderFlagDiagnostics(getFlags()));
135
+ }
93
136
  await configureLogFile(workflow.settings.logging.logFile);
94
137
  // baseDir anchors `./relative` driver module specifiers to the workflow
95
138
  // file's directory - the most predictable anchor for operators.
@@ -213,7 +256,10 @@ function createDaemonCommand(name = "lorenz") {
213
256
  .option("--no-tui", "Disable the terminal dashboard.")
214
257
  .option("--no-dashboard", "Disable the web dashboard server.")
215
258
  .option("--logs-root <path>", "Root directory for Lorenz logs.", parseRequiredValue("--logs-root", "path"))
216
- .option("--port <port>", "Observability API port.", parseNonNegativeInteger("--port"));
259
+ .option("--port <port>", "Observability API port.", parseNonNegativeInteger("--port"))
260
+ .option("--flag <key=value>", "Override an internal feature flag (repeatable).", accumulateOption)
261
+ .option("--feature <name|name=bool>", "Enable or disable an internal feature preset, e.g. --feature verbose_diagnostics or " +
262
+ "--feature verbose_diagnostics=false (repeatable).", accumulateOption);
217
263
  }
218
264
  function createRootCommand() {
219
265
  return createDaemonCommand("lorenz");
@@ -227,6 +273,8 @@ function cliOptionsFromCommander(parsed, workflowPath) {
227
273
  dashboard: parsed.dashboard ?? true,
228
274
  port: parsed.port ?? null,
229
275
  logsRoot: parsed.logsRoot ?? null,
276
+ flagTokens: parsed.flag ?? [],
277
+ featureTokens: parsed.feature ?? [],
230
278
  };
231
279
  }
232
280
  function applyCliOverrides(workflow, options) {
@@ -244,18 +292,20 @@ export function projectUrlForSettings(settings) {
244
292
  * (the canonical field behind the legacy `max_in_flight` key). Co-residence packs
245
293
  * multiple run slots onto one machine, so it requires BOTH:
246
294
  *
247
- * 1. a coordinator that advertises `capabilities.perRunEndpoint === true` (each
248
- * RunSlot owns its own MCP endpoint - token + local-server + tunnel - so two
249
- * co-resident runs never share or tear out each other's endpoint), and
295
+ * 1. a coordinator whose gateway advertises `capabilities.perRunClaimEnforcement
296
+ * === true`: the shared MCP gateway resolves each request's per-run scoped Token
297
+ * B claim server-side, re-checks the owning run is still live, fences it by
298
+ * generation, and fails closed otherwise - so two co-resident runs sharing one
299
+ * host + reverse tunnel can never authorize against each other's claim, and
250
300
  * 2. an explicit `worker.worker_pool.co_residence` operator opt-in, because a single
251
301
  * poisoned worker fails every co-resident run on recycle: widening that blast
252
302
  * radius is a deliberate tradeoff, not just a capability.
253
303
  *
254
304
  * `slotsPerMachine === 1` (the default) always passes - the gate never triggers, so
255
305
  * the single-tenant startup path stays byte-identical. This lives in the daemon
256
- * rather than {@link validateDispatchConfig} because the per-run-endpoint capability
257
- * only exists once the coordinator has been constructed; the per-poll config
258
- * validation must stay capability-free.
306
+ * rather than {@link validateDispatchConfig} because the per-run-claim-enforcement
307
+ * capability only exists once the coordinator has been constructed; the per-poll
308
+ * config validation must stay capability-free.
259
309
  */
260
310
  export function assertSlotsPerMachineGate(settings, coordinator) {
261
311
  // Delegate to the shared PURE predicate so this STARTUP gate and the runtime
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAC7B,OAAO,EACL,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,WAAW,EACX,eAAe,EACf,uBAAuB,EACvB,kBAAkB,GAEnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,wBAAwB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACnE,OAAO,EAAE,YAAY,EAA0C,MAAM,gBAAgB,CAAC;AAEtF,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,+BAA+B,GAEhC,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,mBAAmB,EACnB,iCAAiC,EACjC,kBAAkB,EAClB,gBAAgB,GAEjB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,6BAA6B,GAC9B,MAAM,aAAa,CAAC;AAuBrB,MAAM,UAAU,YAAY,CAAC,IAAc;IACzC,MAAM,OAAO,GAAG,wBAAwB,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAChE,IAAI,WAAW,CAAC,IAAI,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC;IAE/F,IAAI,CAAC;QACH,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC;IACpE,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,uBAAuB,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC7F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,uBAAuB,EAAE,CAAC;IAC1B,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,OAAO,GAAG,uBAAuB,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAE7D,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,YAAgC,EAAE,MAA2B,EAAE,EAAE;QACrF,MAAM,GAAG,MAAM,SAAS,CAAC,uBAAuB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC9C,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE;QAC5B,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAuB,CAAC;QACxD,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,EAAwB,CAAC;QAC7D,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,MAAM,cAAc,CAAC,+BAA+B,CAAC,EAAE,GAAG,WAAW,EAAE,GAAG,WAAW,EAAE,CAAC,CAAC,CAC1F,CAAC;IACJ,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAEhC,MAAM,aAAa,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IACpD,aAAa,CAAC,MAAM,CAAC,KAAK,EAAE,YAAgC,EAAE,MAA8B,EAAE,EAAE;QAC9F,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,EAAuB,CAAC;QACxD,MAAM,aAAa,GAAG,iCAAiC,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAC3F,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,aAAa,CAAC,CAAC;QACrD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC;QACjD,MAAM,GAAG,MAAM,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IACH,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAElC,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QACjD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,eAAe,CAAC,KAAK,CAAC;YAAE,OAAO,CAAC,CAAC;QACrC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC1D,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,OAAmB;IACjD,uBAAuB,EAAE,CAAC;IAC1B,IAAI,CAAC;QACH,IAAI,eAAe,GAAkB,IAAI,CAAC;QAC1C,yFAAyF;QACzF,6EAA6E;QAC7E,IAAI,oBAAoB,GAAG,KAAK,CAAC;QACjC,MAAM,mBAAmB,GAAG,KAAK,IAAI,EAAE;YACrC,MAAM,QAAQ,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,YAAY,IAAI,SAAS,EAAE,OAAO,CAAC,GAAG,EAAE;gBAClF,GAAG,6BAA6B,EAAE;gBAClC,QAAQ,EAAE,sBAAsB;aACjC,CAAC,CAAC;YACH,iBAAiB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACrC,IAAI,eAAe,KAAK,IAAI;gBAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,eAAe,CAAC;YAC9E,sBAAsB,CACpB,QAAQ,CAAC,QAAQ,EACjB,sBAAsB,EACtB,4BAA4B,EAC5B,mBAAmB,EACnB,oBAAoB;gBAClB,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC;oBACE,SAAS,EAAE,QAAQ,CAAC,MAAM;oBAC1B,IAAI,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,8BAA8B,OAAO,IAAI,CAAC;iBACnF,CACN,CAAC;YACF,oBAAoB,GAAG,IAAI,CAAC;YAC5B,OAAO,QAAQ,CAAC;QAClB,CAAC,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,mBAAmB,EAAE,CAAC;QAC7C,MAAM,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE1D,wEAAwE;QACxE,gEAAgE;QAChE,MAAM,WAAW,GAAG,MAAM,wBAAwB,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,GAAG,EAAE;YACjF,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;SACrC,CAAC,CAAC;QACH,8EAA8E;QAC9E,8EAA8E;QAC9E,+EAA+E;QAC/E,8EAA8E;QAC9E,2EAA2E;QAC3E,yBAAyB,CAAC,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAS,CAAC;QACpD,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;QAC3D,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC;YAChC,QAAQ;YACR,aAAa,EAAE,mBAAmB;YAClC,cAAc,EAAE,mBAAmB;YACnC,MAAM,EAAE,eAAe;YACvB,WAAW;YACX,gBAAgB,EAAE,CAAC,QAAQ,EAAE,EAAE,CAC7B,sBAAsB,CACpB,QAAQ,EACR,sBAAsB,EACtB,4BAA4B,EAC5B,mBAAmB,CACpB;YACH,aAAa,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE;gBAC/B,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YACxD,CAAC;YACD,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE;gBAC3B,UAAU,CAAC,MAAM,CAAC;oBAChB,OAAO,EAAE,KAAK,CAAC,EAAE;oBACjB,eAAe,EAAE,KAAK,CAAC,UAAU;oBACjC,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,IAAI;iBACvB,CAAC,CAAC;YACL,CAAC;YACD,GAAG,eAAe;SACnB,CAAC,CAAC;QACH,MAAM,WAAW,EAAE,OAAO,EAAE,CAAC;QAC7B,IAAI,QAAQ,GAAqC,IAAI,CAAC;QACtD,yEAAyE;QACzE,2EAA2E;QAC3E,yEAAyE;QACzE,6EAA6E;QAC7E,4EAA4E;QAC5E,uEAAuE;QACvE,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,MAAM,WAAW,GAAG,GAAG,EAAE;YACvB,IAAI,YAAY,EAAE,CAAC;gBACjB,wEAAwE;gBACxE,qCAAqC;gBACrC,QAAQ,EAAE,OAAO,EAAE,CAAC;gBACpB,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;YACD,YAAY,GAAG,IAAI,CAAC;YACpB,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,CAAC,CAAC;QACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;QAClC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;QAEnC,IAAI,MAAM,GAAgE,IAAI,CAAC;QAC/E,IAAI,CAAC;YACH,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;gBACtB,MAAM,GAAG,MAAM,wBAAwB,CAAC,OAAO,EAAE;oBAC/C,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI;oBACnC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;oBACxC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,IAAI;wBACrD,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ;qBAC5C,CAAC;oBACF,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI;wBACtD,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS;qBAC9C,CAAC;oBACF,UAAU;oBACV,KAAK,EAAE,mBAAmB;iBAC3B,CAAC,CAAC;gBACH,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;gBAC5C,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC;gBAC9B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC9E,CAAC;YAED,QAAQ;gBACN,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK;oBACjC,CAAC,CAAC,MAAM,CACJ,KAAK,CAAC,aAAa,CAAC,UAAU,EAAE;wBAC9B,OAAO;wBACP,YAAY,EAAE,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI;wBACtC,UAAU,EAAE,qBAAqB,CAAC,QAAQ,CAAC,QAAQ,CAAC;qBACrD,CAAC,CACH;oBACH,CAAC,CAAC,IAAI,CAAC;YAEX,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE;oBAC7B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBACjE,CAAC,CAAC,CAAC;YACL,CAAC;YAED,MAAM,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;YACpE,OAAO,CAAC,CAAC;QACX,CAAC;gBAAS,CAAC;YACT,yEAAyE;YACzE,0DAA0D;YAC1D,IAAI,CAAC;gBACH,QAAQ,EAAE,OAAO,EAAE,CAAC;gBACpB,uEAAuE;gBACvE,8EAA8E;gBAC9E,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC;gBAChC,MAAM,MAAM,EAAE,IAAI,EAAE,CAAC;gBACrB,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;oBAAS,CAAC;gBACT,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;gBACnC,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACjD,OAAO,CAAC,CAAC;IACX,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAI,GAAG,QAAQ;IAC1C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;SACrB,WAAW,CAAC,yCAAyC,CAAC;SACtD,oBAAoB,CAAC,KAAK,CAAC;SAC3B,QAAQ,CAAC,gBAAgB,EAAE,yBAAyB,CAAC;SACrD,MAAM,CAAC,QAAQ,EAAE,qBAAqB,CAAC;SACvC,MAAM,CAAC,WAAW,EAAE,iDAAiD,CAAC;SACtE,MAAM,CAAC,UAAU,EAAE,iCAAiC,CAAC;SACrD,MAAM,CAAC,gBAAgB,EAAE,mCAAmC,CAAC;SAC7D,MAAM,CACL,oBAAoB,EACpB,iCAAiC,EACjC,kBAAkB,CAAC,aAAa,EAAE,MAAM,CAAC,CAC1C;SACA,MAAM,CAAC,eAAe,EAAE,yBAAyB,EAAE,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3F,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AACvC,CAAC;AAED,SAAS,uBAAuB,CAAC,MAA2B,EAAE,YAAqB;IACjF,OAAO;QACL,YAAY,EAAE,YAAY,IAAI,IAAI;QAClC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,KAAK;QAC1B,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,KAAK;QAC9B,GAAG,EAAE,MAAM,CAAC,GAAG,IAAI,IAAI;QACvB,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,IAAI;QACnC,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,IAAI;QACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,IAAI;KAClC,CAAC;AACJ,CAAC;AAED,SAAS,iBAAiB,CAAC,QAA4B,EAAE,OAAmB;IAC1E,IAAI,OAAO,CAAC,IAAI,KAAK,IAAI;QAAE,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IACxE,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC9B,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAC3C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAC9B,KAAK,EACL,YAAY,CACb,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,UAAU,qBAAqB,CAAC,QAAkB;IACtD,OAAO,sBAAsB,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,yBAAyB,CACvC,QAAkB,EAClB,WAAwF;IAExF,6EAA6E;IAC7E,6EAA6E;IAC7E,0EAA0E;IAC1E,MAAM,OAAO,GAAG,wBAAwB,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IAChG,IAAI,OAAO,KAAK,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;AACjD,CAAC"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ import { type ToolRegistry } from "@lorenz/tool-sdk";
2
+ import { type EnsureExtensionLoadedOptions, type ExtensionRef } from "./extensionLoader.js";
3
+ /**
4
+ * Out-of-tree tool-pack loading: a configured tool-pack name accepts a module
5
+ * specifier in addition to a registered pack name. Instantiates the axis-generic
6
+ * {@link createExtensionLoader}; identity field is the pack `name`. See
7
+ * {@link createExtensionLoader} for the trust boundary, module pinning, and
8
+ * exact-name-wins resolution shared by every axis.
9
+ *
10
+ * A caller (a `loadWorkflow` prepareRegistries hook or a startup MCP-mount step)
11
+ * invokes {@link ensureToolProviderLoaded} for the configured pack name BEFORE the
12
+ * registry resolves it, exactly as `prepareTrackerExtensions` does for trackers.
13
+ */
14
+ /** A parsed configured tool-pack value that is not a registered pack name. */
15
+ export type ToolRef = ExtensionRef;
16
+ /** Options for {@link ensureToolProviderLoaded}. */
17
+ export type EnsureToolProviderLoadedOptions = EnsureExtensionLoadedOptions;
18
+ /** Parses a configured tool-pack string into its module-specifier form. */
19
+ export declare function parseToolRef(name: string): ToolRef;
20
+ /**
21
+ * Idempotently makes the configured tool pack resolvable in `registry` (see
22
+ * {@link createExtensionLoader} for the load/pin semantics). A caller invokes this
23
+ * BEFORE the MCP mount resolves the pack at startup and on every reload, so the
24
+ * mount's `registry.require(name)` resolves an out-of-tree pack exactly like a
25
+ * built-in.
26
+ */
27
+ export declare function ensureToolProviderLoaded(name: string, registry: ToolRegistry, options?: EnsureToolProviderLoadedOptions): Promise<void>;
28
+ //# sourceMappingURL=toolLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolLoader.d.ts","sourceRoot":"","sources":["../src/toolLoader.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,YAAY,EAClB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,YAAY,EAElB,MAAM,sBAAsB,CAAC;AAE9B;;;;;;;;;;GAUG;AAEH,8EAA8E;AAC9E,MAAM,MAAM,OAAO,GAAG,YAAY,CAAC;AAEnC,oDAAoD;AACpD,MAAM,MAAM,+BAA+B,GAAG,4BAA4B,CAAC;AAiD3E,2EAA2E;AAC3E,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAElD;AAED;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,YAAY,EACtB,OAAO,GAAE,+BAAoC,GAC5C,OAAO,CAAC,IAAI,CAAC,CAEf"}
@@ -0,0 +1,62 @@
1
+ import { isRecord } from "@lorenz/domain";
2
+ import { assertToolProviderModule, } from "@lorenz/tool-sdk";
3
+ import { createExtensionLoader, } from "./extensionLoader.js";
4
+ const toolLoader = createExtensionLoader({
5
+ errorPrefix: "tool_provider",
6
+ eventNames: {
7
+ loaded: "tool_provider_loaded",
8
+ pinned: "tool_provider_module_pinned",
9
+ },
10
+ defineHelperName: "defineToolProvider",
11
+ unitNoun: "tool packs",
12
+ assertModule: assertToolProviderModule,
13
+ looksLikeModule: (value) => isRecord(value) && typeof value["executeTool"] === "function",
14
+ // Spread the loaded module so every provider hook (toolSpecs, executeTool,
15
+ // validateOptions, skills, ...) is preserved and only `name` is overridden to
16
+ // the configured specifier.
17
+ toFactory: (specifier, module) => ({ ...module, name: specifier }),
18
+ // The tool axis's identity field is `name`; map it onto the generic `kind`
19
+ // audit field so the loaded/pinned events stay uniform across axes.
20
+ describeModule: (module) => ({ kind: module.name, sdkVersion: module.sdkVersion }),
21
+ });
22
+ /**
23
+ * One stable {@link ExtensionRegistry} adapter per underlying {@link ToolRegistry}.
24
+ * The generic loader keys its pinned-specifier set in a WeakMap by the registry
25
+ * IDENTITY it is handed, so the adapter must be the SAME object across reload
26
+ * calls for the same tool registry - otherwise the module-pinned re-encounter
27
+ * event would never fire. Caching by the real registry preserves that identity.
28
+ */
29
+ const adapters = new WeakMap();
30
+ /**
31
+ * Adapts a {@link ToolRegistry} to the minimal {@link ExtensionRegistry} surface
32
+ * the generic loader needs. The tool registry exposes `names()` rather than the
33
+ * generic `kinds()`, so the loader sees registered pack names through this thin
34
+ * shim.
35
+ */
36
+ function asExtensionRegistry(registry) {
37
+ let adapter = adapters.get(registry);
38
+ if (adapter === undefined) {
39
+ adapter = {
40
+ get: (name) => registry.get(name),
41
+ register: (provider) => registry.register(provider),
42
+ kinds: () => registry.names(),
43
+ };
44
+ adapters.set(registry, adapter);
45
+ }
46
+ return adapter;
47
+ }
48
+ /** Parses a configured tool-pack string into its module-specifier form. */
49
+ export function parseToolRef(name) {
50
+ return toolLoader.parseRef(name);
51
+ }
52
+ /**
53
+ * Idempotently makes the configured tool pack resolvable in `registry` (see
54
+ * {@link createExtensionLoader} for the load/pin semantics). A caller invokes this
55
+ * BEFORE the MCP mount resolves the pack at startup and on every reload, so the
56
+ * mount's `registry.require(name)` resolves an out-of-tree pack exactly like a
57
+ * built-in.
58
+ */
59
+ export async function ensureToolProviderLoaded(name, registry, options = {}) {
60
+ return toolLoader.ensureLoaded(name, asExtensionRegistry(registry), options);
61
+ }
62
+ //# sourceMappingURL=toolLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toolLoader.js","sourceRoot":"","sources":["../src/toolLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,wBAAwB,GAIzB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EACL,qBAAqB,GAItB,MAAM,sBAAsB,CAAC;AAoB9B,MAAM,UAAU,GAAG,qBAAqB,CAAmC;IACzE,WAAW,EAAE,eAAe;IAC5B,UAAU,EAAE;QACV,MAAM,EAAE,sBAAsB;QAC9B,MAAM,EAAE,6BAA6B;KACtC;IACD,gBAAgB,EAAE,oBAAoB;IACtC,QAAQ,EAAE,YAAY;IACtB,YAAY,EAAE,wBAAwB;IACtC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,aAAa,CAAC,KAAK,UAAU;IACzF,2EAA2E;IAC3E,8EAA8E;IAC9E,4BAA4B;IAC5B,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAClE,2EAA2E;IAC3E,oEAAoE;IACpE,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;CACnF,CAAC,CAAC;AAEH;;;;;;GAMG;AACH,MAAM,QAAQ,GAAG,IAAI,OAAO,EAAiD,CAAC;AAE9E;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,QAAsB;IACjD,IAAI,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,GAAG;YACR,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;YACjC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC;YACnD,KAAK,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE;SAC9B,CAAC;QACF,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,IAAY,EACZ,QAAsB,EACtB,UAA2C,EAAE;IAE7C,OAAO,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,mBAAmB,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;AAC/E,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { type TrackerRegistry } from "@lorenz/tracker-sdk";
2
+ import { type EnsureExtensionLoadedOptions, type ExtensionRef } from "./extensionLoader.js";
3
+ /**
4
+ * Out-of-tree tracker loading: `tracker.kind` accepts a module specifier in
5
+ * addition to a registered kind. Instantiates the axis-generic
6
+ * {@link createExtensionLoader}; identity field is the provider `kind`. See
7
+ * {@link createExtensionLoader} for the trust boundary, module pinning, and
8
+ * exact-kind-wins resolution shared by every axis.
9
+ */
10
+ /** A parsed configured tracker value that is not a registered kind. */
11
+ export type TrackerRef = ExtensionRef;
12
+ /** Options for {@link ensureTrackerProviderLoaded}. */
13
+ export type EnsureTrackerProviderLoadedOptions = EnsureExtensionLoadedOptions;
14
+ /** Parses a configured tracker string into its module-specifier form. */
15
+ export declare function parseTrackerRef(kind: string): TrackerRef;
16
+ /**
17
+ * Idempotently makes the configured tracker resolvable in `registry` (see
18
+ * {@link createExtensionLoader} for the load/pin semantics). Called by the daemon
19
+ * BEFORE `validateDispatchConfig` at startup and on every reload, so the config
20
+ * validation's `trackers.require(settings.tracker.kind)` resolves an out-of-tree
21
+ * tracker exactly like a built-in.
22
+ */
23
+ export declare function ensureTrackerProviderLoaded(kind: string, registry: TrackerRegistry, options?: EnsureTrackerProviderLoadedOptions): Promise<void>;
24
+ //# sourceMappingURL=trackerLoader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackerLoader.d.ts","sourceRoot":"","sources":["../src/trackerLoader.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,eAAe,EACrB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAEL,KAAK,4BAA4B,EACjC,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAE9B;;;;;;GAMG;AAEH,uEAAuE;AACvE,MAAM,MAAM,UAAU,GAAG,YAAY,CAAC;AAEtC,uDAAuD;AACvD,MAAM,MAAM,kCAAkC,GAAG,4BAA4B,CAAC;AAmB9E,yEAAyE;AACzE,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAExD;AAED;;;;;;GAMG;AACH,wBAAsB,2BAA2B,CAC/C,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,eAAe,EACzB,OAAO,GAAE,kCAAuC,GAC/C,OAAO,CAAC,IAAI,CAAC,CAEf"}
@@ -0,0 +1,34 @@
1
+ import { isRecord } from "@lorenz/domain";
2
+ import { assertTrackerProviderModule, } from "@lorenz/tracker-sdk";
3
+ import { createExtensionLoader, } from "./extensionLoader.js";
4
+ const trackerLoader = createExtensionLoader({
5
+ errorPrefix: "tracker_provider",
6
+ eventNames: {
7
+ loaded: "tracker_provider_loaded",
8
+ pinned: "tracker_provider_module_pinned",
9
+ },
10
+ defineHelperName: "defineTrackerProvider",
11
+ unitNoun: "tracker providers",
12
+ assertModule: assertTrackerProviderModule,
13
+ looksLikeModule: (value) => isRecord(value) && typeof value["createClient"] === "function",
14
+ // Spread the loaded module so every provider hook (createClient, parseOptions,
15
+ // validateDispatch, createToolOps, ...) is preserved and only `kind` is
16
+ // overridden to the configured specifier.
17
+ toFactory: (specifier, module) => ({ ...module, kind: specifier }),
18
+ describeModule: (module) => ({ kind: module.kind, sdkVersion: module.sdkVersion }),
19
+ });
20
+ /** Parses a configured tracker string into its module-specifier form. */
21
+ export function parseTrackerRef(kind) {
22
+ return trackerLoader.parseRef(kind);
23
+ }
24
+ /**
25
+ * Idempotently makes the configured tracker resolvable in `registry` (see
26
+ * {@link createExtensionLoader} for the load/pin semantics). Called by the daemon
27
+ * BEFORE `validateDispatchConfig` at startup and on every reload, so the config
28
+ * validation's `trackers.require(settings.tracker.kind)` resolves an out-of-tree
29
+ * tracker exactly like a built-in.
30
+ */
31
+ export async function ensureTrackerProviderLoaded(kind, registry, options = {}) {
32
+ return trackerLoader.ensureLoaded(kind, registry, options);
33
+ }
34
+ //# sourceMappingURL=trackerLoader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trackerLoader.js","sourceRoot":"","sources":["../src/trackerLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EACL,2BAA2B,GAI5B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,qBAAqB,GAGtB,MAAM,sBAAsB,CAAC;AAgB9B,MAAM,aAAa,GAAG,qBAAqB,CAAyC;IAClF,WAAW,EAAE,kBAAkB;IAC/B,UAAU,EAAE;QACV,MAAM,EAAE,yBAAyB;QACjC,MAAM,EAAE,gCAAgC;KACzC;IACD,gBAAgB,EAAE,uBAAuB;IACzC,QAAQ,EAAE,mBAAmB;IAC7B,YAAY,EAAE,2BAA2B;IACzC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC,cAAc,CAAC,KAAK,UAAU;IAC1F,+EAA+E;IAC/E,wEAAwE;IACxE,0CAA0C;IAC1C,SAAS,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAClE,cAAc,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;CACnF,CAAC,CAAC;AAEH,yEAAyE;AACzE,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,OAAO,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,IAAY,EACZ,QAAyB,EACzB,UAA8C,EAAE;IAEhD,OAAO,aAAa,CAAC,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC7D,CAAC"}