@interf/compiler 0.22.2 → 0.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (616) hide show
  1. package/README.md +119 -282
  2. package/dist/bin-mcp.d.ts +2 -0
  3. package/dist/bin-mcp.js +63 -0
  4. package/dist/bin-runtime.d.ts +2 -0
  5. package/dist/bin-runtime.js +111 -0
  6. package/dist/cli/commands/agents.js +4 -35
  7. package/dist/cli/commands/auth.d.ts +20 -0
  8. package/dist/cli/commands/auth.js +161 -0
  9. package/dist/cli/commands/benchmark.d.ts +9 -0
  10. package/dist/cli/commands/benchmark.js +58 -0
  11. package/dist/cli/commands/build-plan.js +107 -139
  12. package/dist/cli/commands/build.d.ts +3 -4
  13. package/dist/cli/commands/build.js +16 -45
  14. package/dist/cli/commands/doctor.js +3 -3
  15. package/dist/cli/commands/graphs.d.ts +2 -0
  16. package/dist/cli/commands/graphs.js +344 -0
  17. package/dist/cli/commands/login.js +4 -6
  18. package/dist/cli/commands/logout.js +1 -1
  19. package/dist/cli/commands/mcp.d.ts +4 -2
  20. package/dist/cli/commands/mcp.js +846 -232
  21. package/dist/cli/commands/project.d.ts +2 -0
  22. package/dist/cli/commands/project.js +176 -0
  23. package/dist/cli/commands/reset.d.ts +3 -4
  24. package/dist/cli/commands/reset.js +10 -31
  25. package/dist/cli/commands/runs.js +136 -57
  26. package/dist/cli/commands/runtime.d.ts +24 -0
  27. package/dist/cli/commands/runtime.js +373 -0
  28. package/dist/cli/commands/status.d.ts +1 -0
  29. package/dist/cli/commands/status.js +35 -45
  30. package/dist/cli/commands/traces.d.ts +2 -0
  31. package/dist/cli/commands/traces.js +97 -0
  32. package/dist/cli/commands/wizard.js +171 -178
  33. package/dist/cli/index.d.ts +7 -4
  34. package/dist/cli/index.js +13 -7
  35. package/dist/cli/lib/http-client.d.ts +39 -0
  36. package/dist/cli/lib/http-client.js +73 -0
  37. package/dist/index.d.ts +2 -2
  38. package/dist/index.js +2 -2
  39. package/dist/packages/build-plans/authoring/brief.d.ts +538 -0
  40. package/dist/packages/build-plans/authoring/brief.js +89 -0
  41. package/dist/packages/build-plans/authoring/build-plan-authoring.d.ts +52 -11
  42. package/dist/packages/build-plans/authoring/build-plan-authoring.js +493 -46
  43. package/dist/packages/build-plans/authoring/build-plan-edit-session.d.ts +10 -1
  44. package/dist/packages/build-plans/authoring/build-plan-edit-session.js +27 -4
  45. package/dist/packages/build-plans/authoring/build-plan-improvement.d.ts +9 -6
  46. package/dist/packages/build-plans/authoring/build-plan-improvement.js +97 -46
  47. package/dist/packages/build-plans/authoring/lib/build-plan-edit-utils.d.ts +1 -0
  48. package/dist/packages/build-plans/authoring/lib/build-plan-edit-utils.js +7 -7
  49. package/dist/packages/build-plans/build-plan-resolution.d.ts +1 -1
  50. package/dist/packages/build-plans/build-plan-resolution.js +3 -3
  51. package/dist/packages/build-plans/index.d.ts +1 -1
  52. package/dist/packages/build-plans/index.js +1 -1
  53. package/dist/packages/build-plans/package/build-plan-definitions.d.ts +14 -13
  54. package/dist/packages/build-plans/package/build-plan-definitions.js +45 -42
  55. package/dist/packages/build-plans/package/build-plan-helpers.d.ts +3 -2
  56. package/dist/packages/build-plans/package/build-plan-helpers.js +27 -13
  57. package/dist/packages/build-plans/package/build-plan-review-paths.d.ts +5 -5
  58. package/dist/packages/build-plans/package/build-plan-review-paths.js +15 -15
  59. package/dist/packages/build-plans/package/build-plan-stage-runner.d.ts +5 -4
  60. package/dist/packages/build-plans/package/build-plan-stage-runner.js +23 -11
  61. package/dist/packages/build-plans/package/builtin-build-plan.d.ts +7 -8
  62. package/dist/packages/build-plans/package/builtin-build-plan.js +10 -11
  63. package/dist/packages/build-plans/package/context-interface.d.ts +14 -9
  64. package/dist/packages/build-plans/package/context-interface.js +14 -33
  65. package/dist/packages/build-plans/package/interf-build-plan-package.d.ts +6 -17
  66. package/dist/packages/build-plans/package/interf-build-plan-package.js +68 -64
  67. package/dist/packages/build-plans/package/local-build-plans.d.ts +21 -14
  68. package/dist/packages/build-plans/package/local-build-plans.js +105 -55
  69. package/dist/packages/build-plans/package/user-build-plans.js +1 -1
  70. package/dist/packages/contracts/index.d.ts +5 -2
  71. package/dist/packages/contracts/index.js +3 -1
  72. package/dist/packages/contracts/lib/context-graph-layer.d.ts +161 -0
  73. package/dist/packages/contracts/lib/context-graph-layer.js +216 -0
  74. package/dist/packages/contracts/lib/project-paths.d.ts +144 -0
  75. package/dist/packages/contracts/lib/project-paths.js +220 -0
  76. package/dist/packages/contracts/lib/project-schema.d.ts +423 -0
  77. package/dist/packages/contracts/lib/project-schema.js +138 -0
  78. package/dist/packages/contracts/lib/schema.d.ts +1273 -81
  79. package/dist/packages/contracts/lib/schema.js +675 -79
  80. package/dist/packages/contracts/utils/filesystem.d.ts +1 -0
  81. package/dist/packages/contracts/utils/filesystem.js +29 -1
  82. package/dist/packages/contracts/utils/parse.js +67 -0
  83. package/dist/packages/projects/index.d.ts +6 -0
  84. package/dist/packages/{project → projects}/index.js +0 -3
  85. package/dist/packages/{project → projects}/interf-detect.d.ts +12 -12
  86. package/dist/packages/{project → projects}/interf-detect.js +56 -50
  87. package/dist/packages/projects/interf.d.ts +2 -0
  88. package/dist/packages/projects/interf.js +1 -0
  89. package/dist/packages/projects/lib/schema.d.ts +77 -0
  90. package/dist/packages/projects/lib/schema.js +91 -0
  91. package/dist/packages/projects/source-config.d.ts +53 -0
  92. package/dist/packages/projects/source-config.js +339 -0
  93. package/dist/packages/projects/source-folders.d.ts +11 -0
  94. package/dist/packages/{project → projects}/source-folders.js +26 -26
  95. package/dist/packages/{engine → runtime}/action-planner.d.ts +1 -1
  96. package/dist/packages/{engine → runtime}/action-planner.js +20 -22
  97. package/dist/packages/runtime/action-values.d.ts +1 -0
  98. package/dist/packages/runtime/action-values.js +1 -0
  99. package/dist/packages/runtime/actions/errors.d.ts +2 -0
  100. package/dist/packages/runtime/actions/errors.js +12 -0
  101. package/dist/packages/runtime/actions/fields.d.ts +86 -0
  102. package/dist/packages/runtime/actions/form-builders.d.ts +14 -0
  103. package/dist/packages/runtime/actions/form-builders.js +667 -0
  104. package/dist/packages/runtime/actions/form-validators.d.ts +8 -0
  105. package/dist/packages/runtime/actions/form-validators.js +134 -0
  106. package/dist/packages/runtime/actions/helpers.d.ts +11 -0
  107. package/dist/packages/runtime/actions/helpers.js +80 -0
  108. package/dist/packages/runtime/actions/index.d.ts +8 -0
  109. package/dist/packages/runtime/actions/index.js +11 -0
  110. package/dist/packages/runtime/actions/registry.d.ts +64 -0
  111. package/dist/packages/runtime/actions/registry.js +62 -0
  112. package/dist/packages/runtime/actions/requests.d.ts +45 -0
  113. package/dist/packages/runtime/actions/requests.js +164 -0
  114. package/dist/packages/runtime/actions/schemas.d.ts +161 -0
  115. package/dist/packages/runtime/actions/schemas.js +37 -0
  116. package/dist/packages/runtime/agent-handoff.d.ts +11 -0
  117. package/dist/packages/runtime/agent-handoff.js +102 -0
  118. package/dist/packages/{engine → runtime}/agents/index.d.ts +1 -2
  119. package/dist/packages/{engine → runtime}/agents/index.js +1 -2
  120. package/dist/packages/runtime/agents/lib/args.d.ts +14 -0
  121. package/dist/packages/runtime/agents/lib/args.js +24 -0
  122. package/dist/packages/{engine → runtime}/agents/lib/constants.d.ts +4 -1
  123. package/dist/packages/runtime/agents/lib/constants.js +13 -0
  124. package/dist/packages/runtime/agents/lib/context-graph-bootstrap.d.ts +3 -0
  125. package/dist/packages/{engine/agents/lib/verifiable-context-bootstrap.js → runtime/agents/lib/context-graph-bootstrap.js} +5 -6
  126. package/dist/packages/{engine → runtime}/agents/lib/detection.d.ts +5 -0
  127. package/dist/packages/{engine → runtime}/agents/lib/detection.js +16 -7
  128. package/dist/packages/{engine → runtime}/agents/lib/execution-profile.d.ts +14 -0
  129. package/dist/packages/{engine → runtime}/agents/lib/execution-profile.js +31 -14
  130. package/dist/packages/{engine → runtime}/agents/lib/execution.js +22 -6
  131. package/dist/packages/{engine → runtime}/agents/lib/executors.d.ts +1 -0
  132. package/dist/packages/{engine → runtime}/agents/lib/executors.js +11 -2
  133. package/dist/packages/runtime/agents/lib/logs.d.ts +12 -0
  134. package/dist/packages/runtime/agents/lib/logs.js +41 -0
  135. package/dist/packages/{engine → runtime}/agents/lib/preflight.js +19 -14
  136. package/dist/packages/runtime/agents/lib/render.d.ts +26 -0
  137. package/dist/packages/{engine → runtime}/agents/lib/render.js +48 -22
  138. package/dist/packages/runtime/agents/lib/shell-fs.d.ts +18 -0
  139. package/dist/packages/runtime/agents/lib/shell-fs.js +190 -0
  140. package/dist/packages/runtime/agents/lib/shell-paths.d.ts +16 -0
  141. package/dist/packages/runtime/agents/lib/shell-paths.js +63 -0
  142. package/dist/packages/runtime/agents/lib/shell-projection.d.ts +25 -0
  143. package/dist/packages/runtime/agents/lib/shell-projection.js +314 -0
  144. package/dist/packages/runtime/agents/lib/shell-templates.d.ts +30 -0
  145. package/dist/packages/runtime/agents/lib/shell-templates.js +494 -0
  146. package/dist/packages/runtime/agents/lib/shell-workspace.d.ts +17 -0
  147. package/dist/packages/runtime/agents/lib/shell-workspace.js +70 -0
  148. package/dist/packages/runtime/agents/lib/shells.d.ts +92 -0
  149. package/dist/packages/runtime/agents/lib/shells.js +509 -0
  150. package/dist/packages/runtime/agents/lib/source-context-scan.d.ts +10 -0
  151. package/dist/packages/runtime/agents/lib/source-context-scan.js +388 -0
  152. package/dist/packages/{engine → runtime}/agents/lib/status.js +1 -14
  153. package/dist/packages/runtime/agents/lib/string-utils.d.ts +16 -0
  154. package/dist/packages/runtime/agents/lib/string-utils.js +36 -0
  155. package/dist/packages/{engine → runtime}/agents/lib/types.d.ts +1 -0
  156. package/dist/packages/{engine → runtime}/agents/lib/user-config.d.ts +8 -2
  157. package/dist/packages/{engine → runtime}/agents/lib/user-config.js +8 -2
  158. package/dist/packages/runtime/agents/providers/claude-code.d.ts +13 -0
  159. package/dist/packages/runtime/agents/providers/claude-code.js +45 -0
  160. package/dist/packages/runtime/agents/providers/codex.d.ts +17 -0
  161. package/dist/packages/runtime/agents/providers/codex.js +66 -0
  162. package/dist/packages/runtime/agents/providers/cursor.d.ts +9 -0
  163. package/dist/packages/runtime/agents/providers/cursor.js +24 -0
  164. package/dist/packages/runtime/agents/providers/index.d.ts +9 -0
  165. package/dist/packages/runtime/agents/providers/index.js +31 -0
  166. package/dist/packages/runtime/agents/providers/types.d.ts +50 -0
  167. package/dist/packages/{engine → runtime}/agents/registry.d.ts +13 -2
  168. package/dist/packages/{engine → runtime}/agents/registry.js +48 -10
  169. package/dist/packages/{engine → runtime}/agents/role-executors.d.ts +1 -1
  170. package/dist/packages/{engine → runtime}/agents/role-executors.js +9 -7
  171. package/dist/packages/{engine → runtime}/agents/role-router.js +7 -5
  172. package/dist/packages/runtime/auth/account-context.d.ts +52 -0
  173. package/dist/packages/runtime/auth/account-context.js +68 -0
  174. package/dist/packages/runtime/auth/auth-flow.d.ts +73 -0
  175. package/dist/packages/runtime/auth/auth-flow.js +189 -0
  176. package/dist/packages/runtime/auth/jwt-validator.d.ts +58 -0
  177. package/dist/packages/runtime/auth/jwt-validator.js +86 -0
  178. package/dist/packages/runtime/auth/keychain.d.ts +35 -0
  179. package/dist/packages/runtime/auth/keychain.js +85 -0
  180. package/dist/packages/runtime/auth/session-store.d.ts +38 -0
  181. package/dist/packages/runtime/auth/session-store.js +96 -0
  182. package/dist/packages/runtime/auth/workos-client.d.ts +58 -0
  183. package/dist/packages/runtime/auth/workos-client.js +87 -0
  184. package/dist/packages/runtime/benchmark-question-draft.d.ts +23 -0
  185. package/dist/packages/runtime/benchmark-question-draft.js +153 -0
  186. package/dist/packages/runtime/build/artifact-counts.d.ts +1 -0
  187. package/dist/packages/{engine → runtime}/build/artifact-counts.js +5 -9
  188. package/dist/packages/{engine → runtime}/build/artifact-status.d.ts +6 -6
  189. package/dist/packages/{engine → runtime}/build/artifact-status.js +26 -24
  190. package/dist/packages/runtime/build/atomic-fs.d.ts +3 -0
  191. package/dist/packages/runtime/build/atomic-fs.js +95 -0
  192. package/dist/packages/runtime/build/billing-events.d.ts +78 -0
  193. package/dist/packages/{engine → runtime}/build/billing-events.js +17 -19
  194. package/dist/packages/runtime/build/build-evidence.d.ts +16 -0
  195. package/dist/packages/runtime/build/build-evidence.js +179 -0
  196. package/dist/packages/{engine → runtime}/build/build-pipeline.d.ts +12 -8
  197. package/dist/packages/runtime/build/build-pipeline.js +388 -0
  198. package/dist/packages/{engine → runtime}/build/build-plan-primitives.d.ts +1 -1
  199. package/dist/packages/{engine → runtime}/build/build-plan-primitives.js +0 -1
  200. package/dist/packages/runtime/build/build-plan-runs.d.ts +14 -0
  201. package/dist/packages/runtime/build/build-plan-runs.js +31 -0
  202. package/dist/packages/runtime/build/build-stage-plan.d.ts +16 -0
  203. package/dist/packages/runtime/build/build-stage-plan.js +101 -0
  204. package/dist/packages/{engine → runtime}/build/build-stage-runner.d.ts +2 -1
  205. package/dist/packages/runtime/build/build-stage-runner.js +302 -0
  206. package/dist/packages/{engine → runtime}/build/build-target.d.ts +7 -4
  207. package/dist/packages/runtime/build/build-target.js +40 -0
  208. package/dist/packages/{engine → runtime}/build/check-evaluator.d.ts +14 -16
  209. package/dist/packages/runtime/build/check-evaluator.js +1226 -0
  210. package/dist/packages/runtime/build/context-graph-paths.d.ts +64 -0
  211. package/dist/packages/runtime/build/context-graph-paths.js +160 -0
  212. package/dist/packages/runtime/build/context-graph-schema.d.ts +19 -0
  213. package/dist/packages/runtime/build/context-graph-schema.js +39 -0
  214. package/dist/packages/{engine → runtime}/build/discovery.d.ts +2 -2
  215. package/dist/packages/{engine → runtime}/build/discovery.js +4 -4
  216. package/dist/packages/{engine → runtime}/build/index.d.ts +7 -5
  217. package/dist/packages/{engine → runtime}/build/index.js +7 -5
  218. package/dist/packages/runtime/build/inspect-map.d.ts +10 -0
  219. package/dist/packages/runtime/build/inspect-map.js +270 -0
  220. package/dist/packages/{engine → runtime}/build/lib/schema.d.ts +449 -123
  221. package/dist/packages/runtime/build/lib/schema.js +494 -0
  222. package/dist/packages/runtime/build/native-entrypoint.d.ts +2 -0
  223. package/dist/packages/runtime/build/native-entrypoint.js +286 -0
  224. package/dist/packages/runtime/build/reset.d.ts +2 -0
  225. package/dist/packages/runtime/build/reset.js +62 -0
  226. package/dist/packages/{engine → runtime}/build/runtime-contracts.js +13 -7
  227. package/dist/packages/runtime/build/runtime-inventory.d.ts +7 -0
  228. package/dist/packages/{engine → runtime}/build/runtime-inventory.js +3 -3
  229. package/dist/packages/runtime/build/runtime-log-paths.d.ts +3 -0
  230. package/dist/packages/runtime/build/runtime-log-paths.js +16 -0
  231. package/dist/packages/{engine → runtime}/build/runtime-prompt.js +12 -9
  232. package/dist/packages/{engine → runtime}/build/runtime-reconcile.d.ts +1 -1
  233. package/dist/packages/{engine → runtime}/build/runtime-reconcile.js +25 -21
  234. package/dist/packages/runtime/build/runtime-runs.d.ts +10 -0
  235. package/dist/packages/runtime/build/runtime-runs.js +318 -0
  236. package/dist/packages/{engine → runtime}/build/runtime-types.d.ts +9 -6
  237. package/dist/packages/runtime/build/runtime-types.js +1 -0
  238. package/dist/packages/runtime/build/runtime.d.ts +8 -0
  239. package/dist/packages/runtime/build/runtime.js +7 -0
  240. package/dist/packages/runtime/build/source-files.d.ts +58 -0
  241. package/dist/packages/runtime/build/source-files.js +193 -0
  242. package/dist/packages/runtime/build/source-inventory.d.ts +28 -0
  243. package/dist/packages/runtime/build/source-inventory.js +512 -0
  244. package/dist/packages/runtime/build/source-manifest.d.ts +63 -0
  245. package/dist/packages/runtime/build/source-manifest.js +220 -0
  246. package/dist/packages/runtime/build/stage-evidence.d.ts +22 -0
  247. package/dist/packages/runtime/build/stage-evidence.js +386 -0
  248. package/dist/packages/runtime/build/stage-manifest.d.ts +45 -0
  249. package/dist/packages/runtime/build/stage-manifest.js +1125 -0
  250. package/dist/packages/runtime/build/stage-reuse.d.ts +11 -0
  251. package/dist/packages/runtime/build/stage-reuse.js +154 -0
  252. package/dist/packages/runtime/build/stage-session.d.ts +81 -0
  253. package/dist/packages/runtime/build/stage-session.js +308 -0
  254. package/dist/packages/runtime/build/state-artifacts.d.ts +9 -0
  255. package/dist/packages/runtime/build/state-artifacts.js +14 -0
  256. package/dist/packages/runtime/build/state-health.d.ts +4 -0
  257. package/dist/packages/{engine → runtime}/build/state-health.js +21 -26
  258. package/dist/packages/runtime/build/state-io.d.ts +12 -0
  259. package/dist/packages/runtime/build/state-io.js +118 -0
  260. package/dist/packages/runtime/build/state-view.d.ts +5 -0
  261. package/dist/packages/runtime/build/state-view.js +121 -0
  262. package/dist/packages/runtime/build/state.d.ts +7 -0
  263. package/dist/packages/runtime/build/state.js +12 -0
  264. package/dist/packages/runtime/build/summary-coverage-index.d.ts +21 -0
  265. package/dist/packages/runtime/build/summary-coverage-index.js +189 -0
  266. package/dist/packages/runtime/build/traces.d.ts +30 -0
  267. package/dist/packages/runtime/build/traces.js +133 -0
  268. package/dist/packages/{engine/build/validate-verifiable-context.d.ts → runtime/build/validate-context-graph.d.ts} +6 -6
  269. package/dist/packages/{engine/build/validate-verifiable-context.js → runtime/build/validate-context-graph.js} +49 -36
  270. package/dist/packages/{engine → runtime}/build/validate.d.ts +5 -5
  271. package/dist/packages/{engine → runtime}/build/validate.js +26 -26
  272. package/dist/packages/{engine → runtime}/client.d.ts +18 -18
  273. package/dist/packages/{engine → runtime}/client.js +48 -36
  274. package/dist/packages/{engine → runtime}/connection-config.d.ts +3 -2
  275. package/dist/packages/{engine → runtime}/connection-config.js +9 -8
  276. package/dist/packages/runtime/context-checks.d.ts +10 -0
  277. package/dist/packages/runtime/context-checks.js +127 -0
  278. package/dist/packages/runtime/context-graph-scaffold.d.ts +9 -0
  279. package/dist/packages/runtime/context-graph-scaffold.js +135 -0
  280. package/dist/packages/runtime/context-graph-semantic-graph.d.ts +9 -0
  281. package/dist/packages/runtime/context-graph-semantic-graph.js +416 -0
  282. package/dist/packages/runtime/entitlement-guard.d.ts +43 -0
  283. package/dist/packages/runtime/entitlement-guard.js +70 -0
  284. package/dist/packages/{engine → runtime}/execution/index.d.ts +2 -2
  285. package/dist/packages/{engine → runtime}/execution/index.js +1 -1
  286. package/dist/packages/{engine → runtime}/execution/lib/schema.d.ts +272 -191
  287. package/dist/packages/{engine → runtime}/execution/lib/schema.js +35 -32
  288. package/dist/packages/runtime/index.d.ts +29 -0
  289. package/dist/packages/runtime/index.js +21 -0
  290. package/dist/packages/runtime/instance-paths.d.ts +30 -0
  291. package/dist/packages/runtime/instance-paths.js +29 -0
  292. package/dist/packages/runtime/native-run-handlers.d.ts +63 -0
  293. package/dist/packages/{engine → runtime}/native-run-handlers.js +217 -166
  294. package/dist/packages/runtime/plan-artifact-contract.d.ts +17 -0
  295. package/dist/packages/runtime/plan-artifact-contract.js +42 -0
  296. package/dist/packages/runtime/project-entries.d.ts +11 -0
  297. package/dist/packages/runtime/project-entries.js +49 -0
  298. package/dist/packages/runtime/project-source-state.d.ts +26 -0
  299. package/dist/packages/runtime/project-source-state.js +56 -0
  300. package/dist/packages/runtime/project-store.d.ts +90 -0
  301. package/dist/packages/runtime/project-store.js +195 -0
  302. package/dist/packages/runtime/requested-artifacts.d.ts +7 -0
  303. package/dist/packages/{engine → runtime}/requested-artifacts.js +23 -1
  304. package/dist/packages/{engine → runtime}/run-observability.d.ts +2 -1
  305. package/dist/packages/{engine → runtime}/run-observability.js +174 -87
  306. package/dist/packages/runtime/runtime-action-proposals.d.ts +7 -0
  307. package/dist/packages/runtime/runtime-action-proposals.js +542 -0
  308. package/dist/packages/runtime/runtime-build-plans.d.ts +5 -0
  309. package/dist/packages/runtime/runtime-build-plans.js +175 -0
  310. package/dist/packages/runtime/runtime-build-runs.d.ts +47 -0
  311. package/dist/packages/runtime/runtime-build-runs.js +555 -0
  312. package/dist/packages/runtime/runtime-caches.d.ts +117 -0
  313. package/dist/packages/runtime/runtime-caches.js +266 -0
  314. package/dist/packages/{engine → runtime}/runtime-event-applier.d.ts +3 -1
  315. package/dist/packages/{engine → runtime}/runtime-event-applier.js +53 -17
  316. package/dist/packages/runtime/runtime-executor.d.ts +22 -0
  317. package/dist/packages/runtime/runtime-executor.js +131 -0
  318. package/dist/packages/runtime/runtime-jobs.d.ts +13 -0
  319. package/dist/packages/runtime/runtime-jobs.js +463 -0
  320. package/dist/packages/runtime/runtime-observability.d.ts +11 -0
  321. package/dist/packages/runtime/runtime-observability.js +39 -0
  322. package/dist/packages/{engine → runtime}/runtime-persistence.d.ts +9 -18
  323. package/dist/packages/{engine → runtime}/runtime-persistence.js +25 -25
  324. package/dist/packages/runtime/runtime-project-mutations.d.ts +7 -0
  325. package/dist/packages/runtime/runtime-project-mutations.js +65 -0
  326. package/dist/packages/runtime/runtime-project-reads.d.ts +18 -0
  327. package/dist/packages/runtime/runtime-project-reads.js +574 -0
  328. package/dist/packages/runtime/runtime-proposal-helpers.d.ts +22 -0
  329. package/dist/packages/runtime/runtime-proposal-helpers.js +223 -0
  330. package/dist/packages/{engine → runtime}/runtime-resource-builders.d.ts +23 -16
  331. package/dist/packages/{engine → runtime}/runtime-resource-builders.js +58 -46
  332. package/dist/packages/runtime/runtime-status.d.ts +14 -0
  333. package/dist/packages/runtime/runtime-status.js +15 -0
  334. package/dist/packages/runtime/runtime-verify-runs.d.ts +84 -0
  335. package/dist/packages/runtime/runtime-verify-runs.js +296 -0
  336. package/dist/packages/runtime/runtime.d.ts +1582 -0
  337. package/dist/packages/runtime/runtime.js +431 -0
  338. package/dist/packages/runtime/schemas/actions.d.ts +1206 -0
  339. package/dist/packages/runtime/schemas/actions.js +117 -0
  340. package/dist/packages/runtime/schemas/agents.d.ts +104 -0
  341. package/dist/packages/runtime/schemas/agents.js +74 -0
  342. package/dist/packages/runtime/schemas/build-plans.d.ts +1132 -0
  343. package/dist/packages/runtime/schemas/build-plans.js +141 -0
  344. package/dist/packages/runtime/schemas/context-graphs.d.ts +1522 -0
  345. package/dist/packages/runtime/schemas/context-graphs.js +110 -0
  346. package/dist/packages/runtime/schemas/files.d.ts +227 -0
  347. package/dist/packages/runtime/schemas/files.js +28 -0
  348. package/dist/packages/runtime/schemas/index.d.ts +9 -0
  349. package/dist/packages/runtime/schemas/index.js +13 -0
  350. package/dist/packages/runtime/schemas/instance.d.ts +141 -0
  351. package/dist/packages/runtime/schemas/instance.js +143 -0
  352. package/dist/packages/runtime/schemas/jobs.d.ts +339 -0
  353. package/dist/packages/runtime/schemas/jobs.js +107 -0
  354. package/dist/packages/runtime/schemas/projects.d.ts +366 -0
  355. package/dist/packages/runtime/schemas/projects.js +160 -0
  356. package/dist/packages/runtime/schemas/runs.d.ts +3445 -0
  357. package/dist/packages/runtime/schemas/runs.js +115 -0
  358. package/dist/packages/runtime/service/index.d.ts +3 -0
  359. package/dist/packages/runtime/service/index.js +3 -0
  360. package/dist/packages/runtime/service/openapi.d.ts +7 -0
  361. package/dist/packages/runtime/service/openapi.js +118 -0
  362. package/dist/packages/runtime/service/operations.d.ts +3011 -0
  363. package/dist/packages/runtime/service/operations.js +375 -0
  364. package/dist/packages/runtime/service/routes.d.ts +114 -0
  365. package/dist/packages/runtime/service/routes.js +128 -0
  366. package/dist/packages/runtime/service/server-api-files.d.ts +10 -0
  367. package/dist/packages/runtime/service/server-api-files.js +85 -0
  368. package/dist/packages/runtime/service/server-app-boot.d.ts +4 -0
  369. package/dist/packages/runtime/service/server-app-boot.js +46 -0
  370. package/dist/packages/runtime/service/server-guards.d.ts +63 -0
  371. package/dist/packages/runtime/service/server-guards.js +181 -0
  372. package/dist/packages/runtime/service/server-helpers.d.ts +38 -0
  373. package/dist/packages/runtime/service/server-helpers.js +108 -0
  374. package/dist/packages/runtime/service/server-instance-helpers.d.ts +30 -0
  375. package/dist/packages/runtime/service/server-instance-helpers.js +114 -0
  376. package/dist/packages/runtime/service/server-routes-action-proposals.d.ts +3 -0
  377. package/dist/packages/runtime/service/server-routes-action-proposals.js +45 -0
  378. package/dist/packages/runtime/service/server-routes-agents.d.ts +4 -0
  379. package/dist/packages/runtime/service/server-routes-agents.js +132 -0
  380. package/dist/packages/runtime/service/server-routes-auth.d.ts +33 -0
  381. package/dist/packages/runtime/service/server-routes-auth.js +138 -0
  382. package/dist/packages/runtime/service/server-routes-build-plans.d.ts +3 -0
  383. package/dist/packages/runtime/service/server-routes-build-plans.js +86 -0
  384. package/dist/packages/runtime/service/server-routes-discovery.d.ts +4 -0
  385. package/dist/packages/runtime/service/server-routes-discovery.js +196 -0
  386. package/dist/packages/runtime/service/server-routes-events.d.ts +5 -0
  387. package/dist/packages/runtime/service/server-routes-events.js +99 -0
  388. package/dist/packages/runtime/service/server-routes-project-context.d.ts +9 -0
  389. package/dist/packages/runtime/service/server-routes-project-context.js +287 -0
  390. package/dist/packages/runtime/service/server-routes-project-jobs.d.ts +9 -0
  391. package/dist/packages/runtime/service/server-routes-project-jobs.js +137 -0
  392. package/dist/packages/runtime/service/server-routes-project-runs.d.ts +14 -0
  393. package/dist/packages/runtime/service/server-routes-project-runs.js +88 -0
  394. package/dist/packages/runtime/service/server-routes-projects.d.ts +4 -0
  395. package/dist/packages/runtime/service/server-routes-projects.js +96 -0
  396. package/dist/packages/runtime/service/server-routes-runs.d.ts +3 -0
  397. package/dist/packages/runtime/service/server-routes-runs.js +119 -0
  398. package/dist/packages/runtime/service/server.d.ts +37 -0
  399. package/dist/packages/runtime/service/server.js +300 -0
  400. package/dist/packages/{engine → runtime/service}/service-registry.d.ts +5 -5
  401. package/dist/packages/{engine → runtime/service}/service-registry.js +7 -7
  402. package/dist/packages/runtime/verify/benchmark-run.d.ts +81 -0
  403. package/dist/packages/runtime/verify/benchmark-run.js +303 -0
  404. package/dist/packages/{engine → runtime}/verify/index.d.ts +2 -2
  405. package/dist/packages/{engine → runtime}/verify/index.js +1 -1
  406. package/dist/packages/{engine → runtime}/verify/lib/schema.d.ts +83 -16
  407. package/dist/packages/{engine → runtime}/verify/lib/schema.js +38 -18
  408. package/dist/packages/runtime/verify/test-file-guard.d.ts +2 -0
  409. package/dist/packages/runtime/verify/test-file-guard.js +29 -0
  410. package/dist/packages/{engine → runtime}/verify/verify-execution.d.ts +7 -0
  411. package/dist/packages/{engine → runtime}/verify/verify-execution.js +119 -45
  412. package/dist/packages/{engine → runtime}/verify/verify-paths.d.ts +5 -4
  413. package/dist/packages/runtime/verify/verify-paths.js +65 -0
  414. package/dist/packages/{engine → runtime}/verify/verify-sandbox.d.ts +1 -1
  415. package/dist/packages/runtime/verify/verify-sandbox.js +88 -0
  416. package/dist/packages/{engine → runtime}/verify/verify-specs.d.ts +2 -0
  417. package/dist/packages/runtime/verify/verify-specs.js +126 -0
  418. package/dist/packages/runtime/verify/verify-targets.d.ts +5 -0
  419. package/dist/packages/{engine → runtime}/verify/verify-targets.js +12 -12
  420. package/dist/packages/runtime/verify/verify-types.js +1 -0
  421. package/dist/packages/{engine → runtime}/verify/verify.d.ts +1 -1
  422. package/dist/packages/{engine → runtime}/verify/verify.js +1 -1
  423. package/dist/packages/runtime/wire-schemas.d.ts +18 -0
  424. package/dist/packages/runtime/wire-schemas.js +27 -0
  425. package/package.json +32 -30
  426. package/public-repo/CONTRIBUTING.md +16 -18
  427. package/public-repo/README.md +119 -282
  428. package/public-repo/SECURITY.md +3 -4
  429. package/public-repo/build-plans/interf-default/README.md +24 -16
  430. package/public-repo/build-plans/interf-default/build/stages/entrypoint/SKILL.md +74 -0
  431. package/public-repo/build-plans/interf-default/build/stages/knowledge/SKILL.md +95 -0
  432. package/public-repo/build-plans/interf-default/build/stages/summarize/SKILL.md +49 -4
  433. package/public-repo/build-plans/interf-default/build-plan.json +49 -39
  434. package/public-repo/build-plans/interf-default/build-plan.schema.json +59 -33
  435. package/public-repo/build-plans/interf-default/improve/SKILL.md +3 -3
  436. package/public-repo/build-plans/interf-default/use/query/SKILL.md +18 -11
  437. package/public-repo/openapi/local-service.openapi.json +14227 -0
  438. package/public-repo/skills/interf/SKILL.md +508 -187
  439. package/dist/cli/commands/prep.d.ts +0 -2
  440. package/dist/cli/commands/prep.js +0 -240
  441. package/dist/cli/commands/test.d.ts +0 -10
  442. package/dist/cli/commands/test.js +0 -85
  443. package/dist/cli/commands/web.d.ts +0 -2
  444. package/dist/cli/commands/web.js +0 -286
  445. package/dist/interf-ui/404.html +0 -1
  446. package/dist/interf-ui/__next.__PAGE__.txt +0 -10
  447. package/dist/interf-ui/__next._full.txt +0 -20
  448. package/dist/interf-ui/__next._head.txt +0 -5
  449. package/dist/interf-ui/__next._index.txt +0 -5
  450. package/dist/interf-ui/__next._tree.txt +0 -5
  451. package/dist/interf-ui/_next/static/--reS3xBzM5zc6QxNjZd6/_buildManifest.js +0 -11
  452. package/dist/interf-ui/_next/static/--reS3xBzM5zc6QxNjZd6/_clientMiddlewareManifest.js +0 -1
  453. package/dist/interf-ui/_next/static/--reS3xBzM5zc6QxNjZd6/_ssgManifest.js +0 -1
  454. package/dist/interf-ui/_next/static/chunks/0.tjb6f4golw..css +0 -3
  455. package/dist/interf-ui/_next/static/chunks/03~yq9q893hmn.js +0 -1
  456. package/dist/interf-ui/_next/static/chunks/085-n_jv2ng_q.css +0 -1
  457. package/dist/interf-ui/_next/static/chunks/0dn41fa_zvgsl.js +0 -1
  458. package/dist/interf-ui/_next/static/chunks/0g-ea0zj5d-0k.js +0 -1
  459. package/dist/interf-ui/_next/static/chunks/0gwqglc4iz583.js +0 -1
  460. package/dist/interf-ui/_next/static/chunks/0haldgm65ve6l.js +0 -1
  461. package/dist/interf-ui/_next/static/chunks/0nv3am99vjzn4.js +0 -1
  462. package/dist/interf-ui/_next/static/chunks/0s77gt_o4jwtx.js +0 -1
  463. package/dist/interf-ui/_next/static/chunks/0y5z3t-z1c8ks.js.map +0 -5
  464. package/dist/interf-ui/_next/static/chunks/0~a36ujuzpaz..js +0 -116
  465. package/dist/interf-ui/_next/static/chunks/10jeodxe4nkgj.js +0 -31
  466. package/dist/interf-ui/_next/static/chunks/119h2rouych2t.js +0 -1
  467. package/dist/interf-ui/_next/static/chunks/13c8b~m8knjsf.js +0 -1
  468. package/dist/interf-ui/_next/static/chunks/14dznb2qpt-ho.js +0 -91
  469. package/dist/interf-ui/_next/static/chunks/15z_en80lrq-3.js +0 -5
  470. package/dist/interf-ui/_next/static/chunks/turbopack-0p.pvcjrtq-jh.js +0 -1
  471. package/dist/interf-ui/_next/static/chunks/turbopack-0usj_75.8frlw.js +0 -1
  472. package/dist/interf-ui/_next/static/chunks/turbopack-worker-0sjn--fhq~1cg.js +0 -1
  473. package/dist/interf-ui/_next/static/media/GeistMono_Variable.p.17jn9btb_52pq.woff2 +0 -0
  474. package/dist/interf-ui/_next/static/media/Geist_Variable-s.p.0-te~ja_gpvcf.woff2 +0 -0
  475. package/dist/interf-ui/_next/static/media/worker.102zas1s52_pf.js +0 -109
  476. package/dist/interf-ui/_not-found/__next._full.txt +0 -15
  477. package/dist/interf-ui/_not-found/__next._head.txt +0 -5
  478. package/dist/interf-ui/_not-found/__next._index.txt +0 -5
  479. package/dist/interf-ui/_not-found/__next._not-found.__PAGE__.txt +0 -5
  480. package/dist/interf-ui/_not-found/__next._not-found.txt +0 -5
  481. package/dist/interf-ui/_not-found/__next._tree.txt +0 -2
  482. package/dist/interf-ui/_not-found.html +0 -1
  483. package/dist/interf-ui/_not-found.txt +0 -15
  484. package/dist/interf-ui/index.html +0 -1
  485. package/dist/interf-ui/index.txt +0 -20
  486. package/dist/packages/contracts/lib/preparation-paths.d.ts +0 -117
  487. package/dist/packages/contracts/lib/preparation-paths.js +0 -177
  488. package/dist/packages/engine/action-definitions.d.ts +0 -407
  489. package/dist/packages/engine/action-definitions.js +0 -1158
  490. package/dist/packages/engine/action-values.d.ts +0 -1
  491. package/dist/packages/engine/action-values.js +0 -1
  492. package/dist/packages/engine/agents/lib/args.d.ts +0 -4
  493. package/dist/packages/engine/agents/lib/args.js +0 -52
  494. package/dist/packages/engine/agents/lib/chart-guidance.d.ts +0 -1
  495. package/dist/packages/engine/agents/lib/chart-guidance.js +0 -8
  496. package/dist/packages/engine/agents/lib/constants.js +0 -28
  497. package/dist/packages/engine/agents/lib/logs.d.ts +0 -2
  498. package/dist/packages/engine/agents/lib/logs.js +0 -17
  499. package/dist/packages/engine/agents/lib/render.d.ts +0 -8
  500. package/dist/packages/engine/agents/lib/schema.d.ts +0 -8
  501. package/dist/packages/engine/agents/lib/schema.js +0 -7
  502. package/dist/packages/engine/agents/lib/shells.d.ts +0 -74
  503. package/dist/packages/engine/agents/lib/shells.js +0 -1052
  504. package/dist/packages/engine/agents/lib/verifiable-context-bootstrap.d.ts +0 -3
  505. package/dist/packages/engine/build/artifact-counts.d.ts +0 -1
  506. package/dist/packages/engine/build/billing-events.d.ts +0 -89
  507. package/dist/packages/engine/build/build-pipeline.js +0 -175
  508. package/dist/packages/engine/build/build-plan-runs.d.ts +0 -14
  509. package/dist/packages/engine/build/build-plan-runs.js +0 -31
  510. package/dist/packages/engine/build/build-stage-plan.d.ts +0 -16
  511. package/dist/packages/engine/build/build-stage-plan.js +0 -100
  512. package/dist/packages/engine/build/build-stage-runner.js +0 -94
  513. package/dist/packages/engine/build/build-target.js +0 -16
  514. package/dist/packages/engine/build/check-evaluator.js +0 -298
  515. package/dist/packages/engine/build/lib/schema.js +0 -316
  516. package/dist/packages/engine/build/reset.d.ts +0 -2
  517. package/dist/packages/engine/build/reset.js +0 -74
  518. package/dist/packages/engine/build/runtime-inventory.d.ts +0 -7
  519. package/dist/packages/engine/build/runtime-paths.d.ts +0 -8
  520. package/dist/packages/engine/build/runtime-paths.js +0 -26
  521. package/dist/packages/engine/build/runtime-runs.d.ts +0 -10
  522. package/dist/packages/engine/build/runtime-runs.js +0 -224
  523. package/dist/packages/engine/build/runtime.d.ts +0 -5
  524. package/dist/packages/engine/build/runtime.js +0 -4
  525. package/dist/packages/engine/build/source-files.d.ts +0 -46
  526. package/dist/packages/engine/build/source-files.js +0 -149
  527. package/dist/packages/engine/build/state-artifacts.d.ts +0 -9
  528. package/dist/packages/engine/build/state-artifacts.js +0 -14
  529. package/dist/packages/engine/build/state-health.d.ts +0 -4
  530. package/dist/packages/engine/build/state-io.d.ts +0 -11
  531. package/dist/packages/engine/build/state-io.js +0 -82
  532. package/dist/packages/engine/build/state-paths.d.ts +0 -5
  533. package/dist/packages/engine/build/state-paths.js +0 -16
  534. package/dist/packages/engine/build/state-view.d.ts +0 -5
  535. package/dist/packages/engine/build/state-view.js +0 -94
  536. package/dist/packages/engine/build/state.d.ts +0 -7
  537. package/dist/packages/engine/build/state.js +0 -12
  538. package/dist/packages/engine/build/validate-helpers.d.ts +0 -12
  539. package/dist/packages/engine/build/validate-helpers.js +0 -41
  540. package/dist/packages/engine/build/verifiable-context-paths.d.ts +0 -47
  541. package/dist/packages/engine/build/verifiable-context-paths.js +0 -121
  542. package/dist/packages/engine/build/verifiable-context-schema.d.ts +0 -21
  543. package/dist/packages/engine/build/verifiable-context-schema.js +0 -126
  544. package/dist/packages/engine/cloud-seams.d.ts +0 -115
  545. package/dist/packages/engine/cloud-seams.js +0 -84
  546. package/dist/packages/engine/index.d.ts +0 -22
  547. package/dist/packages/engine/index.js +0 -15
  548. package/dist/packages/engine/instance-paths.d.ts +0 -106
  549. package/dist/packages/engine/instance-paths.js +0 -171
  550. package/dist/packages/engine/lib/schema.d.ts +0 -6304
  551. package/dist/packages/engine/lib/schema.js +0 -730
  552. package/dist/packages/engine/native-run-handlers.d.ts +0 -25
  553. package/dist/packages/engine/preparation-store.d.ts +0 -105
  554. package/dist/packages/engine/preparation-store.js +0 -213
  555. package/dist/packages/engine/readiness-check-draft.d.ts +0 -20
  556. package/dist/packages/engine/readiness-check-draft.js +0 -111
  557. package/dist/packages/engine/requested-artifacts.d.ts +0 -5
  558. package/dist/packages/engine/routes.d.ts +0 -85
  559. package/dist/packages/engine/routes.js +0 -99
  560. package/dist/packages/engine/runtime-caches.d.ts +0 -76
  561. package/dist/packages/engine/runtime-caches.js +0 -191
  562. package/dist/packages/engine/runtime-proposal-helpers.d.ts +0 -35
  563. package/dist/packages/engine/runtime-proposal-helpers.js +0 -247
  564. package/dist/packages/engine/runtime.d.ts +0 -371
  565. package/dist/packages/engine/runtime.js +0 -2463
  566. package/dist/packages/engine/server.d.ts +0 -58
  567. package/dist/packages/engine/server.js +0 -1399
  568. package/dist/packages/engine/verify/readiness-check-run.d.ts +0 -82
  569. package/dist/packages/engine/verify/readiness-check-run.js +0 -265
  570. package/dist/packages/engine/verify/verify-paths.js +0 -61
  571. package/dist/packages/engine/verify/verify-sandbox.js +0 -88
  572. package/dist/packages/engine/verify/verify-specs.js +0 -114
  573. package/dist/packages/engine/verify/verify-targets.d.ts +0 -5
  574. package/dist/packages/engine/wire-schemas.d.ts +0 -547
  575. package/dist/packages/engine/wire-schemas.js +0 -59
  576. package/dist/packages/project/index.d.ts +0 -9
  577. package/dist/packages/project/interf-bootstrap.d.ts +0 -1
  578. package/dist/packages/project/interf-bootstrap.js +0 -1
  579. package/dist/packages/project/interf-scaffold.d.ts +0 -3
  580. package/dist/packages/project/interf-scaffold.js +0 -136
  581. package/dist/packages/project/interf.d.ts +0 -4
  582. package/dist/packages/project/interf.js +0 -3
  583. package/dist/packages/project/lib/schema.d.ts +0 -328
  584. package/dist/packages/project/lib/schema.js +0 -136
  585. package/dist/packages/project/preparation-entries.d.ts +0 -11
  586. package/dist/packages/project/preparation-entries.js +0 -49
  587. package/dist/packages/project/source-config.d.ts +0 -46
  588. package/dist/packages/project/source-config.js +0 -394
  589. package/dist/packages/project/source-folders.d.ts +0 -11
  590. package/public-repo/build-plans/interf-default/build/stages/shape/SKILL.md +0 -27
  591. package/public-repo/build-plans/interf-default/build/stages/structure/SKILL.md +0 -21
  592. package/public-repo/plugins/README.md +0 -9
  593. package/public-repo/plugins/interf/.claude-plugin/plugin.json +0 -21
  594. package/public-repo/plugins/interf/.mcp.json +0 -12
  595. package/public-repo/plugins/interf/README.md +0 -32
  596. package/public-repo/plugins/interf/skills/interf/SKILL.md +0 -376
  597. /package/dist/packages/{engine/agents/lib/types.js → runtime/actions/fields.js} +0 -0
  598. /package/dist/packages/{engine → runtime}/agents/lib/agents.d.ts +0 -0
  599. /package/dist/packages/{engine → runtime}/agents/lib/agents.js +0 -0
  600. /package/dist/packages/{engine → runtime}/agents/lib/execution.d.ts +0 -0
  601. /package/dist/packages/{engine → runtime}/agents/lib/preflight.d.ts +0 -0
  602. /package/dist/packages/{engine → runtime}/agents/lib/status.d.ts +0 -0
  603. /package/dist/packages/{engine/build/runtime-types.js → runtime/agents/lib/types.js} +0 -0
  604. /package/dist/packages/{engine/verify/verify-types.js → runtime/agents/providers/types.js} +0 -0
  605. /package/dist/packages/{engine → runtime}/agents/role-router.d.ts +0 -0
  606. /package/dist/packages/{engine → runtime}/build/build-execution.d.ts +0 -0
  607. /package/dist/packages/{engine → runtime}/build/build-execution.js +0 -0
  608. /package/dist/packages/{engine → runtime}/build/runtime-contracts.d.ts +0 -0
  609. /package/dist/packages/{engine → runtime}/build/runtime-prompt.d.ts +0 -0
  610. /package/dist/packages/{engine → runtime}/execution/adapters.d.ts +0 -0
  611. /package/dist/packages/{engine → runtime}/execution/adapters.js +0 -0
  612. /package/dist/packages/{engine → runtime}/execution/events.d.ts +0 -0
  613. /package/dist/packages/{engine → runtime}/execution/events.js +0 -0
  614. /package/dist/packages/{engine → runtime}/verify/verify-profile-presets.d.ts +0 -0
  615. /package/dist/packages/{engine → runtime}/verify/verify-profile-presets.js +0 -0
  616. /package/dist/packages/{engine → runtime}/verify/verify-types.d.ts +0 -0
@@ -0,0 +1,463 @@
1
+ import { mkdirSync } from "node:fs";
2
+ import { asProjectDataDir, projectBuildPlanPackagePath, } from "../contracts/lib/project-paths.js";
3
+ import { createRunEventId, createRunEventTimestamp, } from "./execution/events.js";
4
+ import { byCreatedAtDesc, listJsonFiles, localJobPath, localJobsRoot, readLocalJobRunAt, writeJsonFile, } from "./runtime-persistence.js";
5
+ import { applyEventToLocalJob, } from "./runtime-event-applier.js";
6
+ import { createRunId } from "./runtime-resource-builders.js";
7
+ import { upsertProjectConfig, findProjectConfig, loadSourceFolderConfig, writeBenchmarkSpecsForProject, } from "../projects/source-config.js";
8
+ import { BuildPlanAuthoringRuntimeRequestSchema, BuildPlanAuthoringResultSchema, LocalJobEventAppendRequestSchema, LocalJobRunCreateRequestSchema, LocalJobRunResourceSchema, BenchmarkQuestionDraftRuntimeRequestSchema, BenchmarkQuestionDraftResultSchema, } from "./schemas/index.js";
9
+ import { artifactRequirementsForPlanAuthoring, requestedArtifactsForPlanAuthoring, } from "./plan-artifact-contract.js";
10
+ import { isTerminalStatus } from "./runtime-status.js";
11
+ const INTERRUPTED_JOB_RUN_MESSAGE = "Job interrupted because the local service stopped before the job reached a terminal state.";
12
+ export function listJobs(projectDataDir) {
13
+ return byCreatedAtDesc(listJsonFiles(localJobsRoot(projectDataDir))
14
+ .map(readLocalJobRunAt)
15
+ .filter((run) => run !== null));
16
+ }
17
+ export function getJob(projectDataDir, runId) {
18
+ return listJobs(projectDataDir).find((run) => run.run_id === runId) ?? null;
19
+ }
20
+ export function getJobEvents(projectDataDir, runId) {
21
+ return getJob(projectDataDir, runId)?.events ?? null;
22
+ }
23
+ export function createJobRun(runtime, projectDataDir, requestValue) {
24
+ const request = LocalJobRunCreateRequestSchema.parse(requestValue);
25
+ const runId = createRunId("job");
26
+ const now = new Date().toISOString();
27
+ const run = LocalJobRunResourceSchema.parse({
28
+ kind: "interf-local-job-run",
29
+ version: 1,
30
+ run_id: runId,
31
+ job_type: request.job_type,
32
+ status: "running",
33
+ title: request.title,
34
+ ...(request.project !== undefined ? { project: request.project } : {}),
35
+ ...(request.build_plan !== undefined ? { build_plan: request.build_plan } : {}),
36
+ ...(request.source_path !== undefined ? { source_path: request.source_path } : {}),
37
+ ...(request.output_path !== undefined ? { output_path: request.output_path } : {}),
38
+ ...(request.agent !== undefined ? { agent: request.agent } : {}),
39
+ created_at: now,
40
+ started_at: now,
41
+ steps: request.steps.map((step) => ({
42
+ ...step,
43
+ status: "queued",
44
+ })),
45
+ events: [
46
+ {
47
+ type: "job.started",
48
+ event_id: createRunEventId("event"),
49
+ run_id: runId,
50
+ timestamp: now,
51
+ message: request.title,
52
+ },
53
+ ],
54
+ });
55
+ writeJobRun(runtime, projectDataDir, run);
56
+ return run;
57
+ }
58
+ export function appendJobRunEvent(runtime, projectDataDir, runId, requestValue) {
59
+ const request = LocalJobEventAppendRequestSchema.parse(requestValue);
60
+ const current = getJob(projectDataDir, runId);
61
+ if (!current)
62
+ return null;
63
+ if (isTerminalStatus(current.status))
64
+ return current;
65
+ const event = {
66
+ type: request.type,
67
+ event_id: createRunEventId("event"),
68
+ run_id: runId,
69
+ timestamp: new Date().toISOString(),
70
+ ...(request.step_id ? { step_id: request.step_id } : {}),
71
+ ...(request.message ? { message: request.message } : {}),
72
+ ...(request.artifact ? { artifact: request.artifact } : {}),
73
+ ...(request.input ? { input: request.input } : {}),
74
+ ...(request.output ? { output: request.output } : {}),
75
+ };
76
+ const next = LocalJobRunResourceSchema.parse(applyEventToLocalJob(current, event));
77
+ writeJobRun(runtime, projectDataDir, next);
78
+ return next;
79
+ }
80
+ export async function createBenchmarkQuestionDraftRun(runtime, projectDataDir, requestValue) {
81
+ const request = BenchmarkQuestionDraftRuntimeRequestSchema.parse(requestValue);
82
+ const job = createJobRun(runtime, projectDataDir, {
83
+ job_type: "benchmark-question-draft",
84
+ title: `Draft benchmark questions for ${request.project}`,
85
+ project: request.project,
86
+ source_path: request.source_folder_path,
87
+ steps: [
88
+ {
89
+ id: "read-source",
90
+ label: "Prepare Source locator",
91
+ input: {
92
+ project: request.project,
93
+ source_folder_path: request.source_folder_path,
94
+ },
95
+ },
96
+ {
97
+ id: "agent-draft",
98
+ label: "Draft benchmark questions",
99
+ input: {
100
+ intent: request.intent ?? null,
101
+ target_count: request.target_count,
102
+ },
103
+ },
104
+ {
105
+ id: "normalize-checks",
106
+ label: "Normalize saved benchmark checks",
107
+ },
108
+ ],
109
+ });
110
+ appendJobRunEvent(runtime, projectDataDir, job.run_id, {
111
+ type: "step.started",
112
+ step_id: "read-source",
113
+ message: "Preparing Source locator for benchmark drafting.",
114
+ input: {
115
+ project: request.project,
116
+ source_folder_path: request.source_folder_path,
117
+ },
118
+ });
119
+ appendJobRunEvent(runtime, projectDataDir, job.run_id, {
120
+ type: "step.completed",
121
+ step_id: "read-source",
122
+ message: "Source locator is ready for the drafting agent.",
123
+ output: {
124
+ project: request.project,
125
+ source_folder_path: request.source_folder_path,
126
+ },
127
+ });
128
+ appendJobRunEvent(runtime, projectDataDir, job.run_id, {
129
+ type: "step.started",
130
+ step_id: "agent-draft",
131
+ message: "Drafting saved benchmark questions from agent-visible Source.",
132
+ input: {
133
+ intent: request.intent ?? null,
134
+ target_count: request.target_count,
135
+ },
136
+ });
137
+ void runBenchmarkQuestionDraftInBackground(runtime, projectDataDir, request, job.run_id);
138
+ return getJob(projectDataDir, job.run_id) ?? job;
139
+ }
140
+ export async function createBuildPlanAuthoringRun(runtime, projectDataDir, requestValue, jobType = "build-plan-draft") {
141
+ const parsedRequest = BuildPlanAuthoringRuntimeRequestSchema.parse(requestValue);
142
+ const savedProject = parsedRequest.project
143
+ ? findProjectConfig(loadSourceFolderConfig(projectDataDir), parsedRequest.project)
144
+ : null;
145
+ const requestedArtifacts = requestedArtifactsForPlanAuthoring({
146
+ projectDataDir,
147
+ projectConfig: savedProject,
148
+ explicitRequestedArtifacts: parsedRequest.requested_artifacts,
149
+ });
150
+ const request = {
151
+ ...parsedRequest,
152
+ checks: parsedRequest.checks ?? parsedRequest.context_checks ?? [],
153
+ requested_artifacts: requestedArtifacts,
154
+ artifact_requirements: artifactRequirementsForPlanAuthoring({
155
+ projectDataDir,
156
+ projectConfig: savedProject,
157
+ requestedArtifacts,
158
+ explicitArtifactRequirements: parsedRequest.artifact_requirements,
159
+ }),
160
+ source_context: parsedRequest.source_context ?? null,
161
+ };
162
+ const isImprovement = jobType === "build-plan-improvement";
163
+ const job = createJobRun(runtime, projectDataDir, {
164
+ job_type: jobType,
165
+ title: isImprovement ? `Improve Build Plan ${request.build_plan_id}` : `Draft Build Plan ${request.build_plan_id}`,
166
+ project: request.project ?? null,
167
+ build_plan: request.build_plan_id,
168
+ source_path: request.source_folder_path,
169
+ output_path: projectBuildPlanPackagePath(asProjectDataDir(projectDataDir), request.build_plan_id),
170
+ steps: [
171
+ {
172
+ id: "inspect-source",
173
+ label: "Prepare Source locator",
174
+ input: {
175
+ project: request.project ?? null,
176
+ source_folder_path: request.source_folder_path,
177
+ checks: request.checks.length,
178
+ requested_artifacts: request.requested_artifacts.length,
179
+ source_context: request.source_context ? "provided" : "none",
180
+ },
181
+ },
182
+ {
183
+ id: "draft-package",
184
+ label: isImprovement ? "Improve Build Plan definition" : "Draft Build Plan definition",
185
+ input: {
186
+ build_plan_id: request.build_plan_id,
187
+ label: request.label,
188
+ intent: request.intent,
189
+ requested_artifacts: request.requested_artifacts.length,
190
+ artifact_requirements: request.artifact_requirements.length,
191
+ },
192
+ },
193
+ {
194
+ id: "validate-package",
195
+ label: "Validate Build Plan definition",
196
+ input: {
197
+ build_plan_id: request.build_plan_id,
198
+ },
199
+ },
200
+ ],
201
+ });
202
+ appendJobRunEvent(runtime, projectDataDir, job.run_id, {
203
+ type: "step.started",
204
+ step_id: "inspect-source",
205
+ message: isImprovement ? "Preparing Source locator for Build Plan improvement." : "Preparing Source locator for Build Plan drafting.",
206
+ input: {
207
+ project: request.project ?? null,
208
+ source_folder_path: request.source_folder_path,
209
+ checks: request.checks.length,
210
+ requested_artifacts: request.requested_artifacts.length,
211
+ source_context: request.source_context ? "provided" : "none",
212
+ },
213
+ });
214
+ appendJobRunEvent(runtime, projectDataDir, job.run_id, {
215
+ type: "step.completed",
216
+ step_id: "inspect-source",
217
+ message: "Source context is ready.",
218
+ output: {
219
+ source_folder_path: request.source_folder_path,
220
+ checks: request.checks.length,
221
+ requested_artifacts: request.requested_artifacts.length,
222
+ },
223
+ });
224
+ appendJobRunEvent(runtime, projectDataDir, job.run_id, {
225
+ type: "step.started",
226
+ step_id: "draft-package",
227
+ message: isImprovement ? "Improving Build Plan definition." : "Drafting Build Plan definition.",
228
+ input: {
229
+ build_plan_id: request.build_plan_id,
230
+ label: request.label,
231
+ intent: request.intent,
232
+ requested_artifacts: request.requested_artifacts.length,
233
+ artifact_requirements: request.artifact_requirements.length,
234
+ },
235
+ });
236
+ void runBuildPlanAuthoringInBackground(runtime, projectDataDir, request, job.run_id);
237
+ return getJob(projectDataDir, job.run_id) ?? job;
238
+ }
239
+ async function runBenchmarkQuestionDraftInBackground(runtime, projectDataDir, request, runId) {
240
+ runtime.beginActiveJobRun(runId);
241
+ runtime.beginActiveRun();
242
+ return runBenchmarkQuestionDraftInBackgroundInner(runtime, projectDataDir, request, runId).finally(() => {
243
+ runtime.endActiveRun();
244
+ runtime.endActiveJobRun(runId);
245
+ });
246
+ }
247
+ async function runBenchmarkQuestionDraftInBackgroundInner(runtime, projectDataDir, request, runId) {
248
+ try {
249
+ if (!runtime.handlers.createBenchmarkQuestionDraft) {
250
+ throw new Error("No benchmark-question-draft handler is configured for this local service.");
251
+ }
252
+ const result = BenchmarkQuestionDraftResultSchema.parse(await runtime.handlers.createBenchmarkQuestionDraft(request, jobRunContext(runtime, projectDataDir, runId)));
253
+ const specPaths = writeBenchmarkSpecsForProject({
254
+ projectDataDir,
255
+ projectName: request.project,
256
+ checks: result.checks,
257
+ description: request.intent ?? `Saved benchmark checks for Project ${request.project}.`,
258
+ });
259
+ appendJobRunEvent(runtime, projectDataDir, runId, {
260
+ type: "step.completed",
261
+ step_id: "agent-draft",
262
+ message: `Drafted ${result.checks.length} benchmark checks.`,
263
+ output: {
264
+ checks: result.checks,
265
+ },
266
+ });
267
+ appendJobRunEvent(runtime, projectDataDir, runId, {
268
+ type: "step.started",
269
+ step_id: "normalize-checks",
270
+ message: "Normalizing drafted benchmark questions into saved check records.",
271
+ input: {
272
+ checks: result.checks.length,
273
+ },
274
+ });
275
+ appendJobRunEvent(runtime, projectDataDir, runId, {
276
+ type: "step.completed",
277
+ step_id: "normalize-checks",
278
+ message: `${result.checks.length} benchmark checks ready for review.`,
279
+ output: {
280
+ checks: result.checks.length,
281
+ spec_paths: specPaths,
282
+ },
283
+ });
284
+ setJobRunResult(runtime, projectDataDir, runId, { ...result, spec_paths: specPaths });
285
+ appendJobRunEvent(runtime, projectDataDir, runId, {
286
+ type: "job.completed",
287
+ message: `Drafted ${result.checks.length} benchmark checks.`,
288
+ });
289
+ }
290
+ catch (error) {
291
+ const message = error instanceof Error ? error.message : String(error);
292
+ appendJobRunEvent(runtime, projectDataDir, runId, {
293
+ type: "step.failed",
294
+ step_id: "agent-draft",
295
+ message,
296
+ output: {
297
+ error: message,
298
+ },
299
+ });
300
+ appendJobRunEvent(runtime, projectDataDir, runId, {
301
+ type: "job.failed",
302
+ message,
303
+ });
304
+ }
305
+ }
306
+ async function runBuildPlanAuthoringInBackground(runtime, projectDataDir, request, runId) {
307
+ runtime.beginActiveJobRun(runId);
308
+ runtime.beginActiveRun();
309
+ return runBuildPlanAuthoringInBackgroundInner(runtime, projectDataDir, request, runId).finally(() => {
310
+ runtime.endActiveRun();
311
+ runtime.endActiveJobRun(runId);
312
+ });
313
+ }
314
+ async function runBuildPlanAuthoringInBackgroundInner(runtime, projectDataDir, request, runId) {
315
+ try {
316
+ if (!runtime.handlers.createBuildPlanAuthoringRun) {
317
+ throw new Error("No Build Plan-authoring handler is configured for this local service.");
318
+ }
319
+ const result = BuildPlanAuthoringResultSchema.parse(await runtime.handlers.createBuildPlanAuthoringRun(request, jobRunContext(runtime, projectDataDir, runId)));
320
+ setJobRunResult(runtime, projectDataDir, runId, result);
321
+ appendJobRunEvent(runtime, projectDataDir, runId, {
322
+ type: result.status === "executor-failed" ? "step.failed" : "step.completed",
323
+ step_id: "draft-package",
324
+ message: result.summary,
325
+ output: {
326
+ status: result.status,
327
+ changed: result.changed,
328
+ build_plan_path: result.build_plan_path,
329
+ shell_path: result.shell_path,
330
+ },
331
+ });
332
+ appendJobRunEvent(runtime, projectDataDir, runId, {
333
+ type: "step.started",
334
+ step_id: "validate-package",
335
+ message: "Validating Build Plan package structure and stage contract.",
336
+ input: {
337
+ build_plan_path: result.build_plan_path,
338
+ },
339
+ });
340
+ if (result.status === "updated" || result.status === "no-change") {
341
+ let selectedProject = null;
342
+ if (request.project) {
343
+ const selected = runtime.resolveProjectConfig(projectDataDir, request.project, {
344
+ build_plan: request.build_plan_id,
345
+ });
346
+ upsertProjectConfig(projectDataDir, selected);
347
+ runtime.readinessCache.invalidateProject(projectDataDir, selected.name);
348
+ runtime.buildRunCache.invalidateProject(projectDataDir, selected.name);
349
+ runtime.verifyRunCache.invalidateProject(projectDataDir, selected.name);
350
+ runtime.contextGraphResourceCache.invalidateProject(projectDataDir);
351
+ runtime.buildPlanListingCache.invalidate(projectDataDir);
352
+ selectedProject = selected.name;
353
+ }
354
+ appendJobRunEvent(runtime, projectDataDir, runId, {
355
+ type: "step.completed",
356
+ step_id: "validate-package",
357
+ message: selectedProject
358
+ ? `${result.summary} Selected Build Plan ${request.build_plan_id} for Project ${selectedProject}.`
359
+ : result.summary,
360
+ output: {
361
+ status: result.status,
362
+ validation: result.validation ?? null,
363
+ selected_project: selectedProject,
364
+ },
365
+ });
366
+ appendJobRunEvent(runtime, projectDataDir, runId, {
367
+ type: "job.completed",
368
+ message: selectedProject
369
+ ? `${result.summary} Selected Build Plan ${request.build_plan_id} for Project ${selectedProject}.`
370
+ : result.summary,
371
+ });
372
+ }
373
+ else {
374
+ appendJobRunEvent(runtime, projectDataDir, runId, {
375
+ type: "step.failed",
376
+ step_id: "validate-package",
377
+ message: result.summary,
378
+ output: {
379
+ status: result.status,
380
+ validation: result.validation ?? null,
381
+ },
382
+ });
383
+ appendJobRunEvent(runtime, projectDataDir, runId, {
384
+ type: "job.failed",
385
+ message: result.summary,
386
+ });
387
+ }
388
+ }
389
+ catch (error) {
390
+ const message = error instanceof Error ? error.message : String(error);
391
+ appendJobRunEvent(runtime, projectDataDir, runId, {
392
+ type: "step.failed",
393
+ step_id: "draft-package",
394
+ message,
395
+ output: {
396
+ error: message,
397
+ },
398
+ });
399
+ appendJobRunEvent(runtime, projectDataDir, runId, {
400
+ type: "job.failed",
401
+ message,
402
+ });
403
+ }
404
+ }
405
+ export function jobRunContext(runtime, projectDataDir, runId) {
406
+ return {
407
+ runId,
408
+ sourcePath: projectDataDir,
409
+ emit: (event) => {
410
+ appendJobRunEvent(runtime, projectDataDir, runId, event);
411
+ },
412
+ };
413
+ }
414
+ export function writeJobRun(runtime, projectDataDir, run) {
415
+ mkdirSync(localJobsRoot(projectDataDir), { recursive: true });
416
+ writeJsonFile(localJobPath(projectDataDir, run.run_id), LocalJobRunResourceSchema.parse(run));
417
+ if (run.project) {
418
+ // Some job runs (benchmark-question drafts) flip readiness state.
419
+ runtime.readinessCache.invalidateProject(projectDataDir, run.project);
420
+ runtime.contextGraphResourceCache.invalidateProject(projectDataDir);
421
+ }
422
+ }
423
+ export function setJobRunResult(runtime, projectDataDir, runId, result) {
424
+ const current = getJob(projectDataDir, runId);
425
+ if (!current)
426
+ return;
427
+ if (isTerminalStatus(current.status))
428
+ return;
429
+ const normalizedResult = result && typeof result === "object" && !Array.isArray(result)
430
+ ? result
431
+ : { value: result };
432
+ writeJobRun(runtime, projectDataDir, LocalJobRunResourceSchema.parse({
433
+ ...current,
434
+ result: normalizedResult,
435
+ }));
436
+ }
437
+ export function finalizeInterruptedJobRuns(runtime, projectDataDir) {
438
+ for (const run of listJobs(projectDataDir)) {
439
+ if (isTerminalStatus(run.status) || runtime.activeJobRuns.has(run.run_id))
440
+ continue;
441
+ const timestamp = createRunEventTimestamp();
442
+ const interruptedRun = LocalJobRunResourceSchema.parse({
443
+ ...run,
444
+ steps: run.steps.map((step) => {
445
+ if (step.status !== "running")
446
+ return step;
447
+ return {
448
+ ...step,
449
+ status: "failed",
450
+ finished_at: step.finished_at ?? timestamp,
451
+ summary: step.summary ?? INTERRUPTED_JOB_RUN_MESSAGE,
452
+ };
453
+ }),
454
+ });
455
+ writeJobRun(runtime, projectDataDir, applyEventToLocalJob(interruptedRun, {
456
+ type: "job.failed",
457
+ event_id: createRunEventId("event"),
458
+ run_id: run.run_id,
459
+ timestamp,
460
+ message: INTERRUPTED_JOB_RUN_MESSAGE,
461
+ }));
462
+ }
463
+ }
@@ -0,0 +1,11 @@
1
+ import type { RunObservabilityResource } from "./schemas/index.js";
2
+ import type { LocalServiceRuntime } from "./runtime.js";
3
+ export declare function listRunObservability(runtime: LocalServiceRuntime, projectDataDir: string): RunObservabilityResource[];
4
+ export declare function getRunObservability(runtime: LocalServiceRuntime, projectDataDir: string, runId: string): RunObservabilityResource | null;
5
+ /**
6
+ * Build Plan Activity runs: every Build Plan draft or improvement job whose
7
+ * Build Plan id matches `buildPlanId`. Surfaced through
8
+ * `GET /v1/build-plans/<id>/runs` so Build Plan detail can show the full
9
+ * audit trail of authoring + improvement work.
10
+ */
11
+ export declare function listBuildPlanRuns(runtime: LocalServiceRuntime, projectDataDir: string, buildPlanId: string): RunObservabilityResource[];
@@ -0,0 +1,39 @@
1
+ import { buildRunToObservability, jobRunToObservability, verifyRunToObservability, } from "./run-observability.js";
2
+ import { timestampKey } from "./runtime-persistence.js";
3
+ import { listBuildRuns } from "./runtime-build-runs.js";
4
+ import { listVerifyRuns } from "./runtime-verify-runs.js";
5
+ import { listJobs } from "./runtime-jobs.js";
6
+ import { getReadiness } from "./runtime-project-reads.js";
7
+ export function listRunObservability(runtime, projectDataDir) {
8
+ return [
9
+ ...listBuildRuns(runtime, projectDataDir).map((resource) => buildRunToObservability({
10
+ ...resource.run,
11
+ readiness: getReadiness(runtime, projectDataDir, resource.run.project),
12
+ })),
13
+ ...listVerifyRuns(runtime, projectDataDir)
14
+ .filter((run) => !run.parent_run_id)
15
+ .map(verifyRunToObservability),
16
+ ...listJobs(projectDataDir).map(jobRunToObservability),
17
+ ].sort((left, right) => {
18
+ const leftTime = timestampKey(left.started_at ?? left.created_at ?? left.finished_at);
19
+ const rightTime = timestampKey(right.started_at ?? right.created_at ?? right.finished_at);
20
+ return rightTime - leftTime;
21
+ });
22
+ }
23
+ export function getRunObservability(runtime, projectDataDir, runId) {
24
+ return listRunObservability(runtime, projectDataDir).find((run) => run.run_id === runId) ?? null;
25
+ }
26
+ /**
27
+ * Build Plan Activity runs: every Build Plan draft or improvement job whose
28
+ * Build Plan id matches `buildPlanId`. Surfaced through
29
+ * `GET /v1/build-plans/<id>/runs` so Build Plan detail can show the full
30
+ * audit trail of authoring + improvement work.
31
+ */
32
+ export function listBuildPlanRuns(runtime, projectDataDir, buildPlanId) {
33
+ return listRunObservability(runtime, projectDataDir).filter((run) => {
34
+ if (run.build_plan !== buildPlanId)
35
+ return false;
36
+ return (run.run_type === "build-plan-draft" ||
37
+ run.run_type === "build-plan-improvement");
38
+ });
39
+ }
@@ -1,38 +1,29 @@
1
1
  import { type BuildRun } from "./execution/lib/schema.js";
2
- import { type RuntimeRun } from "./build/lib/schema.js";
3
- import { type ActionProposalResource, type LocalJobRunResource, type VerifyRunResource } from "./lib/schema.js";
4
- export declare function buildRunsRoot(verifiableContextPath: string): string;
5
- export declare function buildRunPath(verifiableContextPath: string, runId: string): string;
6
- export declare function verifyRunsRoot(verifiableContextPath: string): string;
7
- export declare function verifyRunPath(verifiableContextPath: string, runId: string): string;
2
+ import { type ExecutionStageLedger } from "./build/lib/schema.js";
3
+ import { type ActionProposalResource, type LocalJobRunResource, type VerifyRunResource } from "./schemas/index.js";
4
+ export declare function projectBuildRunsRoot(projectDataDir: string): string;
5
+ export declare function projectBuildRunPath(projectDataDir: string, runId: string): string;
6
+ export declare function verifyRunsRoot(contextGraphPath: string): string;
7
+ export declare function verifyRunPath(contextGraphPath: string, runId: string): string;
8
8
  export declare function localJobsRoot(rootPath: string): string;
9
9
  export declare function localJobPath(rootPath: string, runId: string): string;
10
10
  export declare function actionProposalsRoot(rootPath: string): string;
11
11
  export declare function actionProposalPath(rootPath: string, proposalId: string): string;
12
- export declare function readJsonFile(filePath: string): unknown | null;
13
12
  export declare function writeJsonFile(filePath: string, value: unknown): void;
14
- export declare function readJsonOrNull<T>(filePath: string, schema: {
15
- safeParse(value: unknown): {
16
- success: true;
17
- data: T;
18
- } | {
19
- success: false;
20
- };
21
- }): T | null;
22
13
  export declare function listJsonFiles(dirPath: string): string[];
23
14
  export declare function readBuildRunAt(filePath: string): BuildRun | null;
24
15
  export declare function readVerifyRunAt(filePath: string): VerifyRunResource | null;
25
16
  export declare function readLocalJobRunAt(filePath: string): LocalJobRunResource | null;
26
17
  export declare function readActionProposalAt(filePath: string): ActionProposalResource | null;
27
18
  /**
28
- * Read the per-stage runtime-run history NDJSON. Each line is a `RuntimeRun`
19
+ * Read the per-stage runtime-run history NDJSON. Each line is a `ExecutionStageLedger`
29
20
  * record; lines that fail to parse are silently skipped so the runtime can
30
21
  * tolerate a partially-written tail without crashing.
31
22
  */
32
- export declare function readRuntimeRunHistory(verifiableContextPath: string): RuntimeRun[];
23
+ export declare function readExecutionStageLedgerHistory(contextGraphPath: string): ExecutionStageLedger[];
33
24
  /**
34
25
  * Sort items newest-first using `started_at` (with a `finished_at` fallback).
35
- * Used for build/test run lists where the canonical order is by activity
26
+ * Used for Build/benchmark run lists where the canonical order is by activity
36
27
  * window, not by record-creation time.
37
28
  */
38
29
  export declare function newestFirst<T extends {
@@ -5,40 +5,41 @@
5
5
  * no shared state. Every other runtime module composes on top of this layer
6
6
  * so the runtime coordinator stays small.
7
7
  */
8
- import { existsSync, mkdirSync, readdirSync, readFileSync, statSync, writeFileSync, } from "node:fs";
9
- import { dirname, join } from "node:path";
8
+ import { existsSync, readdirSync, readFileSync, statSync, } from "node:fs";
9
+ import { join } from "node:path";
10
10
  import { BuildRunSchema, } from "./execution/lib/schema.js";
11
- import { verifiableContextRuntimeRunHistoryPath, verifiableContextRuntimeRoot, testRootForVerifiableContext, } from "./build/verifiable-context-paths.js";
12
- import { RuntimeRunSchema, } from "./build/lib/schema.js";
13
- import { asPreparationDataDir, preparationServiceActionProposalsRoot, preparationServiceJobsRoot, } from "../contracts/lib/preparation-paths.js";
14
- import { ActionProposalResourceSchema, LocalJobRunResourceSchema, VerifyRunResourceSchema, } from "./lib/schema.js";
11
+ import { contextGraphExecutionStageLedgerHistoryPath, testRootForContextGraph, } from "./build/context-graph-paths.js";
12
+ import { ExecutionStageLedgerSchema, } from "./build/lib/schema.js";
13
+ import { asProjectDataDir, projectServiceBuildRunsRoot, projectServiceActionProposalsRoot, projectServiceJobsRoot, } from "../contracts/lib/project-paths.js";
14
+ import { ActionProposalResourceSchema, LocalJobRunResourceSchema, VerifyRunResourceSchema, } from "./schemas/index.js";
15
+ import { writeJsonAtomic } from "./build/atomic-fs.js";
15
16
  // ---- Path helpers --------------------------------------------------------
16
- export function buildRunsRoot(verifiableContextPath) {
17
- return join(verifiableContextRuntimeRoot(verifiableContextPath), "build-runs");
17
+ export function projectBuildRunsRoot(projectDataDir) {
18
+ return projectServiceBuildRunsRoot(asProjectDataDir(projectDataDir));
18
19
  }
19
- export function buildRunPath(verifiableContextPath, runId) {
20
- return join(buildRunsRoot(verifiableContextPath), `${runId}.json`);
20
+ export function projectBuildRunPath(projectDataDir, runId) {
21
+ return join(projectBuildRunsRoot(projectDataDir), `${runId}.json`);
21
22
  }
22
- export function verifyRunsRoot(verifiableContextPath) {
23
- return join(testRootForVerifiableContext(verifiableContextPath), "service-runs");
23
+ export function verifyRunsRoot(contextGraphPath) {
24
+ return join(testRootForContextGraph(contextGraphPath), "service-runs");
24
25
  }
25
- export function verifyRunPath(verifiableContextPath, runId) {
26
- return join(verifyRunsRoot(verifiableContextPath), `${runId}.json`);
26
+ export function verifyRunPath(contextGraphPath, runId) {
27
+ return join(verifyRunsRoot(contextGraphPath), `${runId}.json`);
27
28
  }
28
29
  export function localJobsRoot(rootPath) {
29
- return preparationServiceJobsRoot(asPreparationDataDir(rootPath));
30
+ return projectServiceJobsRoot(asProjectDataDir(rootPath));
30
31
  }
31
32
  export function localJobPath(rootPath, runId) {
32
33
  return join(localJobsRoot(rootPath), `${runId}.json`);
33
34
  }
34
35
  export function actionProposalsRoot(rootPath) {
35
- return preparationServiceActionProposalsRoot(asPreparationDataDir(rootPath));
36
+ return projectServiceActionProposalsRoot(asProjectDataDir(rootPath));
36
37
  }
37
38
  export function actionProposalPath(rootPath, proposalId) {
38
39
  return join(actionProposalsRoot(rootPath), `${proposalId}.json`);
39
40
  }
40
41
  // ---- JSON IO -------------------------------------------------------------
41
- export function readJsonFile(filePath) {
42
+ function readJsonFile(filePath) {
42
43
  try {
43
44
  return JSON.parse(readFileSync(filePath, "utf8"));
44
45
  }
@@ -47,10 +48,9 @@ export function readJsonFile(filePath) {
47
48
  }
48
49
  }
49
50
  export function writeJsonFile(filePath, value) {
50
- mkdirSync(dirname(filePath), { recursive: true });
51
- writeFileSync(filePath, `${JSON.stringify(value, null, 2)}\n`);
51
+ writeJsonAtomic(filePath, value);
52
52
  }
53
- export function readJsonOrNull(filePath, schema) {
53
+ function readJsonOrNull(filePath, schema) {
54
54
  const raw = readJsonFile(filePath);
55
55
  if (raw === null)
56
56
  return null;
@@ -85,12 +85,12 @@ export function readActionProposalAt(filePath) {
85
85
  return readJsonOrNull(filePath, ActionProposalResourceSchema);
86
86
  }
87
87
  /**
88
- * Read the per-stage runtime-run history NDJSON. Each line is a `RuntimeRun`
88
+ * Read the per-stage runtime-run history NDJSON. Each line is a `ExecutionStageLedger`
89
89
  * record; lines that fail to parse are silently skipped so the runtime can
90
90
  * tolerate a partially-written tail without crashing.
91
91
  */
92
- export function readRuntimeRunHistory(verifiableContextPath) {
93
- const historyPath = verifiableContextRuntimeRunHistoryPath(verifiableContextPath);
92
+ export function readExecutionStageLedgerHistory(contextGraphPath) {
93
+ const historyPath = contextGraphExecutionStageLedgerHistoryPath(contextGraphPath);
94
94
  if (!existsSync(historyPath))
95
95
  return [];
96
96
  try {
@@ -100,7 +100,7 @@ export function readRuntimeRunHistory(verifiableContextPath) {
100
100
  .filter((line) => line.length > 0)
101
101
  .map((line) => {
102
102
  try {
103
- return RuntimeRunSchema.safeParse(JSON.parse(line));
103
+ return ExecutionStageLedgerSchema.safeParse(JSON.parse(line));
104
104
  }
105
105
  catch {
106
106
  return { success: false };
@@ -116,7 +116,7 @@ export function readRuntimeRunHistory(verifiableContextPath) {
116
116
  // ---- Sort helpers --------------------------------------------------------
117
117
  /**
118
118
  * Sort items newest-first using `started_at` (with a `finished_at` fallback).
119
- * Used for build/test run lists where the canonical order is by activity
119
+ * Used for Build/benchmark run lists where the canonical order is by activity
120
120
  * window, not by record-creation time.
121
121
  */
122
122
  export function newestFirst(items) {