@interf/compiler 0.22.0 → 0.33.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 (575) hide show
  1. package/README.md +268 -0
  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 -4
  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 +10 -0
  10. package/dist/cli/commands/benchmark.js +88 -0
  11. package/dist/cli/commands/build-plan.js +95 -103
  12. package/dist/cli/commands/build.d.ts +1 -1
  13. package/dist/cli/commands/build.js +16 -15
  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 +199 -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 +3 -2
  20. package/dist/cli/commands/mcp.js +721 -204
  21. package/dist/cli/commands/project.d.ts +2 -0
  22. package/dist/cli/commands/project.js +202 -0
  23. package/dist/cli/commands/reset.d.ts +1 -1
  24. package/dist/cli/commands/reset.js +10 -10
  25. package/dist/cli/commands/runs.js +52 -26
  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 +33 -22
  30. package/dist/cli/commands/traces.d.ts +2 -0
  31. package/dist/cli/commands/traces.js +125 -0
  32. package/dist/cli/commands/wizard.js +155 -150
  33. package/dist/cli/index.d.ts +7 -4
  34. package/dist/cli/index.js +13 -7
  35. package/dist/index.d.ts +2 -2
  36. package/dist/index.js +2 -2
  37. package/dist/packages/build-plans/authoring/brief.d.ts +517 -0
  38. package/dist/packages/build-plans/authoring/brief.js +89 -0
  39. package/dist/packages/build-plans/authoring/build-plan-authoring.d.ts +10 -10
  40. package/dist/packages/build-plans/authoring/build-plan-authoring.js +66 -26
  41. package/dist/packages/build-plans/authoring/build-plan-edit-session.d.ts +1 -1
  42. package/dist/packages/build-plans/authoring/build-plan-edit-session.js +8 -2
  43. package/dist/packages/build-plans/authoring/build-plan-improvement.d.ts +9 -6
  44. package/dist/packages/build-plans/authoring/build-plan-improvement.js +39 -42
  45. package/dist/packages/build-plans/authoring/lib/build-plan-edit-utils.js +7 -7
  46. package/dist/packages/build-plans/build-plan-resolution.d.ts +1 -1
  47. package/dist/packages/build-plans/build-plan-resolution.js +3 -3
  48. package/dist/packages/build-plans/index.d.ts +1 -1
  49. package/dist/packages/build-plans/index.js +1 -1
  50. package/dist/packages/build-plans/package/build-plan-definitions.d.ts +14 -12
  51. package/dist/packages/build-plans/package/build-plan-definitions.js +40 -39
  52. package/dist/packages/build-plans/package/build-plan-helpers.d.ts +3 -2
  53. package/dist/packages/build-plans/package/build-plan-helpers.js +27 -13
  54. package/dist/packages/build-plans/package/build-plan-review-paths.d.ts +5 -5
  55. package/dist/packages/build-plans/package/build-plan-review-paths.js +15 -15
  56. package/dist/packages/build-plans/package/build-plan-stage-runner.d.ts +4 -4
  57. package/dist/packages/build-plans/package/build-plan-stage-runner.js +22 -11
  58. package/dist/packages/build-plans/package/builtin-build-plan.d.ts +5 -6
  59. package/dist/packages/build-plans/package/builtin-build-plan.js +7 -8
  60. package/dist/packages/build-plans/package/context-interface.d.ts +11 -9
  61. package/dist/packages/build-plans/package/context-interface.js +14 -33
  62. package/dist/packages/build-plans/package/interf-build-plan-package.d.ts +6 -17
  63. package/dist/packages/build-plans/package/interf-build-plan-package.js +56 -52
  64. package/dist/packages/build-plans/package/local-build-plans.d.ts +12 -10
  65. package/dist/packages/build-plans/package/local-build-plans.js +56 -31
  66. package/dist/packages/build-plans/package/user-build-plans.js +1 -1
  67. package/dist/packages/contracts/index.d.ts +4 -2
  68. package/dist/packages/contracts/index.js +2 -1
  69. package/dist/packages/contracts/lib/project-paths.d.ts +137 -0
  70. package/dist/packages/contracts/lib/project-paths.js +211 -0
  71. package/dist/packages/contracts/lib/project-schema.d.ts +160 -0
  72. package/dist/packages/contracts/lib/project-schema.js +113 -0
  73. package/dist/packages/contracts/lib/schema.d.ts +739 -80
  74. package/dist/packages/contracts/lib/schema.js +410 -75
  75. package/dist/packages/contracts/utils/parse.js +67 -0
  76. package/dist/packages/projects/index.d.ts +6 -0
  77. package/dist/packages/{project → projects}/index.js +0 -3
  78. package/dist/packages/{project → projects}/interf-detect.d.ts +12 -12
  79. package/dist/packages/{project → projects}/interf-detect.js +56 -50
  80. package/dist/packages/projects/interf.d.ts +2 -0
  81. package/dist/packages/projects/interf.js +1 -0
  82. package/dist/packages/projects/lib/schema.d.ts +79 -0
  83. package/dist/packages/projects/lib/schema.js +89 -0
  84. package/dist/packages/projects/source-config.d.ts +58 -0
  85. package/dist/packages/projects/source-config.js +352 -0
  86. package/dist/packages/projects/source-folders.d.ts +11 -0
  87. package/dist/packages/{project → projects}/source-folders.js +26 -26
  88. package/dist/packages/{engine → runtime}/action-planner.d.ts +1 -1
  89. package/dist/packages/{engine → runtime}/action-planner.js +20 -22
  90. package/dist/packages/runtime/action-values.d.ts +1 -0
  91. package/dist/packages/runtime/action-values.js +1 -0
  92. package/dist/packages/runtime/actions/errors.d.ts +2 -0
  93. package/dist/packages/runtime/actions/errors.js +12 -0
  94. package/dist/packages/runtime/actions/fields.d.ts +82 -0
  95. package/dist/packages/runtime/actions/form-builders.d.ts +14 -0
  96. package/dist/packages/runtime/actions/form-builders.js +619 -0
  97. package/dist/packages/runtime/actions/form-validators.d.ts +8 -0
  98. package/dist/packages/runtime/actions/form-validators.js +128 -0
  99. package/dist/packages/runtime/actions/helpers.d.ts +11 -0
  100. package/dist/packages/runtime/actions/helpers.js +80 -0
  101. package/dist/packages/runtime/actions/index.d.ts +8 -0
  102. package/dist/packages/runtime/actions/index.js +11 -0
  103. package/dist/packages/runtime/actions/registry.d.ts +64 -0
  104. package/dist/packages/runtime/actions/registry.js +62 -0
  105. package/dist/packages/runtime/actions/requests.d.ts +45 -0
  106. package/dist/packages/runtime/actions/requests.js +158 -0
  107. package/dist/packages/runtime/actions/schemas.d.ts +154 -0
  108. package/dist/packages/runtime/actions/schemas.js +36 -0
  109. package/dist/packages/runtime/agent-handoff.d.ts +11 -0
  110. package/dist/packages/runtime/agent-handoff.js +101 -0
  111. package/dist/packages/{engine → runtime}/agents/index.d.ts +1 -2
  112. package/dist/packages/{engine → runtime}/agents/index.js +1 -2
  113. package/dist/packages/runtime/agents/lib/args.d.ts +14 -0
  114. package/dist/packages/runtime/agents/lib/args.js +24 -0
  115. package/dist/packages/{engine → runtime}/agents/lib/constants.d.ts +4 -1
  116. package/dist/packages/runtime/agents/lib/constants.js +13 -0
  117. package/dist/packages/runtime/agents/lib/context-graph-bootstrap.d.ts +3 -0
  118. package/dist/packages/{engine/agents/lib/verifiable-context-bootstrap.js → runtime/agents/lib/context-graph-bootstrap.js} +5 -6
  119. package/dist/packages/{engine → runtime}/agents/lib/detection.d.ts +5 -0
  120. package/dist/packages/{engine → runtime}/agents/lib/detection.js +16 -7
  121. package/dist/packages/{engine → runtime}/agents/lib/execution-profile.js +8 -14
  122. package/dist/packages/{engine → runtime}/agents/lib/execution.js +14 -4
  123. package/dist/packages/{engine → runtime}/agents/lib/preflight.js +15 -13
  124. package/dist/packages/{engine → runtime}/agents/lib/render.js +4 -4
  125. package/dist/packages/runtime/agents/lib/shell-fs.d.ts +18 -0
  126. package/dist/packages/runtime/agents/lib/shell-fs.js +190 -0
  127. package/dist/packages/runtime/agents/lib/shell-paths.d.ts +16 -0
  128. package/dist/packages/runtime/agents/lib/shell-paths.js +63 -0
  129. package/dist/packages/runtime/agents/lib/shell-projection.d.ts +25 -0
  130. package/dist/packages/runtime/agents/lib/shell-projection.js +314 -0
  131. package/dist/packages/runtime/agents/lib/shell-templates.d.ts +30 -0
  132. package/dist/packages/runtime/agents/lib/shell-templates.js +452 -0
  133. package/dist/packages/runtime/agents/lib/shell-workspace.d.ts +17 -0
  134. package/dist/packages/runtime/agents/lib/shell-workspace.js +70 -0
  135. package/dist/packages/runtime/agents/lib/shells.d.ts +63 -0
  136. package/dist/packages/runtime/agents/lib/shells.js +383 -0
  137. package/dist/packages/{engine → runtime}/agents/lib/user-config.d.ts +8 -2
  138. package/dist/packages/{engine → runtime}/agents/lib/user-config.js +8 -2
  139. package/dist/packages/runtime/agents/providers/claude-code.d.ts +13 -0
  140. package/dist/packages/runtime/agents/providers/claude-code.js +45 -0
  141. package/dist/packages/runtime/agents/providers/codex.d.ts +17 -0
  142. package/dist/packages/runtime/agents/providers/codex.js +64 -0
  143. package/dist/packages/runtime/agents/providers/cursor.d.ts +9 -0
  144. package/dist/packages/runtime/agents/providers/cursor.js +24 -0
  145. package/dist/packages/runtime/agents/providers/index.d.ts +9 -0
  146. package/dist/packages/runtime/agents/providers/index.js +31 -0
  147. package/dist/packages/runtime/agents/providers/types.d.ts +50 -0
  148. package/dist/packages/{engine → runtime}/agents/registry.d.ts +13 -2
  149. package/dist/packages/{engine → runtime}/agents/registry.js +48 -10
  150. package/dist/packages/{engine → runtime}/agents/role-executors.d.ts +1 -1
  151. package/dist/packages/{engine → runtime}/agents/role-executors.js +7 -6
  152. package/dist/packages/{engine → runtime}/agents/role-router.js +7 -5
  153. package/dist/packages/runtime/auth/account-context.d.ts +52 -0
  154. package/dist/packages/runtime/auth/account-context.js +68 -0
  155. package/dist/packages/runtime/auth/auth-flow.d.ts +73 -0
  156. package/dist/packages/runtime/auth/auth-flow.js +189 -0
  157. package/dist/packages/runtime/auth/jwt-validator.d.ts +58 -0
  158. package/dist/packages/runtime/auth/jwt-validator.js +86 -0
  159. package/dist/packages/runtime/auth/keychain.d.ts +35 -0
  160. package/dist/packages/runtime/auth/keychain.js +85 -0
  161. package/dist/packages/runtime/auth/session-store.d.ts +38 -0
  162. package/dist/packages/runtime/auth/session-store.js +88 -0
  163. package/dist/packages/runtime/auth/workos-client.d.ts +58 -0
  164. package/dist/packages/runtime/auth/workos-client.js +87 -0
  165. package/dist/packages/runtime/benchmark-question-draft.d.ts +20 -0
  166. package/dist/packages/runtime/benchmark-question-draft.js +124 -0
  167. package/dist/packages/runtime/build/artifact-counts.d.ts +1 -0
  168. package/dist/packages/{engine → runtime}/build/artifact-counts.js +5 -9
  169. package/dist/packages/{engine → runtime}/build/artifact-status.d.ts +5 -5
  170. package/dist/packages/{engine → runtime}/build/artifact-status.js +25 -23
  171. package/dist/packages/runtime/build/atomic-fs.d.ts +3 -0
  172. package/dist/packages/runtime/build/atomic-fs.js +95 -0
  173. package/dist/packages/runtime/build/billing-events.d.ts +78 -0
  174. package/dist/packages/{engine → runtime}/build/billing-events.js +17 -19
  175. package/dist/packages/runtime/build/build-evidence.d.ts +15 -0
  176. package/dist/packages/runtime/build/build-evidence.js +173 -0
  177. package/dist/packages/{engine → runtime}/build/build-pipeline.d.ts +12 -8
  178. package/dist/packages/runtime/build/build-pipeline.js +304 -0
  179. package/dist/packages/{engine → runtime}/build/build-plan-primitives.d.ts +1 -1
  180. package/dist/packages/{engine → runtime}/build/build-plan-primitives.js +0 -1
  181. package/dist/packages/runtime/build/build-plan-runs.d.ts +14 -0
  182. package/dist/packages/runtime/build/build-plan-runs.js +31 -0
  183. package/dist/packages/runtime/build/build-stage-plan.d.ts +16 -0
  184. package/dist/packages/{engine → runtime}/build/build-stage-plan.js +28 -29
  185. package/dist/packages/{engine → runtime}/build/build-stage-runner.d.ts +2 -1
  186. package/dist/packages/runtime/build/build-stage-runner.js +165 -0
  187. package/dist/packages/{engine → runtime}/build/build-target.d.ts +4 -4
  188. package/dist/packages/runtime/build/build-target.js +16 -0
  189. package/dist/packages/{engine → runtime}/build/check-evaluator.d.ts +14 -16
  190. package/dist/packages/runtime/build/check-evaluator.js +575 -0
  191. package/dist/packages/runtime/build/context-graph-paths.d.ts +51 -0
  192. package/dist/packages/runtime/build/context-graph-paths.js +133 -0
  193. package/dist/packages/runtime/build/context-graph-schema.d.ts +19 -0
  194. package/dist/packages/runtime/build/context-graph-schema.js +39 -0
  195. package/dist/packages/{engine → runtime}/build/discovery.d.ts +2 -2
  196. package/dist/packages/{engine → runtime}/build/discovery.js +4 -4
  197. package/dist/packages/{engine → runtime}/build/index.d.ts +5 -3
  198. package/dist/packages/{engine → runtime}/build/index.js +5 -3
  199. package/dist/packages/{engine → runtime}/build/lib/schema.d.ts +221 -88
  200. package/dist/packages/{engine → runtime}/build/lib/schema.js +61 -41
  201. package/dist/packages/runtime/build/reset.d.ts +2 -0
  202. package/dist/packages/runtime/build/reset.js +62 -0
  203. package/dist/packages/{engine → runtime}/build/runtime-contracts.js +5 -5
  204. package/dist/packages/runtime/build/runtime-inventory.d.ts +7 -0
  205. package/dist/packages/{engine → runtime}/build/runtime-inventory.js +3 -3
  206. package/dist/packages/{engine → runtime}/build/runtime-paths.js +6 -6
  207. package/dist/packages/{engine → runtime}/build/runtime-prompt.js +7 -6
  208. package/dist/packages/{engine → runtime}/build/runtime-reconcile.d.ts +1 -1
  209. package/dist/packages/{engine → runtime}/build/runtime-reconcile.js +25 -21
  210. package/dist/packages/runtime/build/runtime-runs.d.ts +10 -0
  211. package/dist/packages/runtime/build/runtime-runs.js +265 -0
  212. package/dist/packages/{engine → runtime}/build/runtime-types.d.ts +6 -6
  213. package/dist/packages/runtime/build/runtime-types.js +1 -0
  214. package/dist/packages/runtime/build/runtime.d.ts +6 -0
  215. package/dist/packages/runtime/build/runtime.js +5 -0
  216. package/dist/packages/runtime/build/source-files.d.ts +58 -0
  217. package/dist/packages/runtime/build/source-files.js +184 -0
  218. package/dist/packages/runtime/build/source-inventory.d.ts +27 -0
  219. package/dist/packages/runtime/build/source-inventory.js +273 -0
  220. package/dist/packages/runtime/build/source-manifest.d.ts +52 -0
  221. package/dist/packages/runtime/build/source-manifest.js +192 -0
  222. package/dist/packages/runtime/build/stage-evidence.d.ts +22 -0
  223. package/dist/packages/runtime/build/stage-evidence.js +317 -0
  224. package/dist/packages/runtime/build/stage-reuse.d.ts +11 -0
  225. package/dist/packages/runtime/build/stage-reuse.js +142 -0
  226. package/dist/packages/runtime/build/state-artifacts.d.ts +9 -0
  227. package/dist/packages/runtime/build/state-artifacts.js +14 -0
  228. package/dist/packages/runtime/build/state-health.d.ts +4 -0
  229. package/dist/packages/{engine → runtime}/build/state-health.js +21 -26
  230. package/dist/packages/runtime/build/state-io.d.ts +12 -0
  231. package/dist/packages/runtime/build/state-io.js +119 -0
  232. package/dist/packages/{engine → runtime}/build/state-paths.d.ts +3 -1
  233. package/dist/packages/runtime/build/state-paths.js +22 -0
  234. package/dist/packages/runtime/build/state-view.d.ts +5 -0
  235. package/dist/packages/{engine → runtime}/build/state-view.js +60 -33
  236. package/dist/packages/runtime/build/state.d.ts +7 -0
  237. package/dist/packages/runtime/build/state.js +12 -0
  238. package/dist/packages/runtime/build/traces.d.ts +30 -0
  239. package/dist/packages/runtime/build/traces.js +133 -0
  240. package/dist/packages/{engine/build/validate-verifiable-context.d.ts → runtime/build/validate-context-graph.d.ts} +6 -6
  241. package/dist/packages/{engine/build/validate-verifiable-context.js → runtime/build/validate-context-graph.js} +48 -35
  242. package/dist/packages/{engine → runtime}/build/validate.d.ts +5 -5
  243. package/dist/packages/{engine → runtime}/build/validate.js +26 -26
  244. package/dist/packages/{engine → runtime}/client.d.ts +15 -15
  245. package/dist/packages/{engine → runtime}/client.js +41 -24
  246. package/dist/packages/{engine → runtime}/connection-config.d.ts +3 -2
  247. package/dist/packages/{engine → runtime}/connection-config.js +9 -8
  248. package/dist/packages/runtime/context-checks.d.ts +10 -0
  249. package/dist/packages/runtime/context-checks.js +114 -0
  250. package/dist/packages/runtime/context-graph-scaffold.d.ts +9 -0
  251. package/dist/packages/runtime/context-graph-scaffold.js +134 -0
  252. package/dist/packages/runtime/entitlement-guard.d.ts +43 -0
  253. package/dist/packages/runtime/entitlement-guard.js +70 -0
  254. package/dist/packages/{engine → runtime}/execution/index.d.ts +2 -2
  255. package/dist/packages/{engine → runtime}/execution/index.js +1 -1
  256. package/dist/packages/{engine → runtime}/execution/lib/schema.d.ts +270 -192
  257. package/dist/packages/{engine → runtime}/execution/lib/schema.js +35 -32
  258. package/dist/packages/runtime/index.d.ts +29 -0
  259. package/dist/packages/runtime/index.js +21 -0
  260. package/dist/packages/runtime/instance-paths.d.ts +30 -0
  261. package/dist/packages/runtime/instance-paths.js +29 -0
  262. package/dist/packages/{engine → runtime}/native-run-handlers.d.ts +4 -4
  263. package/dist/packages/{engine → runtime}/native-run-handlers.js +184 -152
  264. package/dist/packages/runtime/plan-artifact-contract.d.ts +17 -0
  265. package/dist/packages/runtime/plan-artifact-contract.js +42 -0
  266. package/dist/packages/runtime/project-entries.d.ts +11 -0
  267. package/dist/packages/runtime/project-entries.js +49 -0
  268. package/dist/packages/runtime/project-source-state.d.ts +26 -0
  269. package/dist/packages/runtime/project-source-state.js +53 -0
  270. package/dist/packages/runtime/project-store.d.ts +85 -0
  271. package/dist/packages/runtime/project-store.js +168 -0
  272. package/dist/packages/runtime/requested-artifacts.d.ts +7 -0
  273. package/dist/packages/{engine → runtime}/requested-artifacts.js +23 -1
  274. package/dist/packages/{engine → runtime}/run-observability.d.ts +2 -1
  275. package/dist/packages/{engine → runtime}/run-observability.js +166 -84
  276. package/dist/packages/runtime/runtime-action-proposals.d.ts +7 -0
  277. package/dist/packages/runtime/runtime-action-proposals.js +542 -0
  278. package/dist/packages/runtime/runtime-build-plans.d.ts +5 -0
  279. package/dist/packages/runtime/runtime-build-plans.js +131 -0
  280. package/dist/packages/runtime/runtime-build-runs.d.ts +47 -0
  281. package/dist/packages/runtime/runtime-build-runs.js +562 -0
  282. package/dist/packages/runtime/runtime-caches.d.ts +91 -0
  283. package/dist/packages/{engine → runtime}/runtime-caches.js +77 -49
  284. package/dist/packages/{engine → runtime}/runtime-event-applier.d.ts +3 -1
  285. package/dist/packages/{engine → runtime}/runtime-event-applier.js +53 -17
  286. package/dist/packages/runtime/runtime-executor.d.ts +22 -0
  287. package/dist/packages/runtime/runtime-executor.js +131 -0
  288. package/dist/packages/runtime/runtime-jobs.d.ts +13 -0
  289. package/dist/packages/runtime/runtime-jobs.js +463 -0
  290. package/dist/packages/runtime/runtime-observability.d.ts +11 -0
  291. package/dist/packages/runtime/runtime-observability.js +39 -0
  292. package/dist/packages/{engine → runtime}/runtime-persistence.d.ts +9 -18
  293. package/dist/packages/{engine → runtime}/runtime-persistence.js +25 -25
  294. package/dist/packages/runtime/runtime-project-mutations.d.ts +7 -0
  295. package/dist/packages/runtime/runtime-project-mutations.js +64 -0
  296. package/dist/packages/runtime/runtime-project-reads.d.ts +15 -0
  297. package/dist/packages/runtime/runtime-project-reads.js +381 -0
  298. package/dist/packages/runtime/runtime-proposal-helpers.d.ts +22 -0
  299. package/dist/packages/runtime/runtime-proposal-helpers.js +223 -0
  300. package/dist/packages/{engine → runtime}/runtime-resource-builders.d.ts +21 -16
  301. package/dist/packages/{engine → runtime}/runtime-resource-builders.js +48 -38
  302. package/dist/packages/runtime/runtime-verify-runs.d.ts +84 -0
  303. package/dist/packages/runtime/runtime-verify-runs.js +295 -0
  304. package/dist/packages/runtime/runtime.d.ts +1165 -0
  305. package/dist/packages/runtime/runtime.js +417 -0
  306. package/dist/packages/runtime/schemas/actions.d.ts +1182 -0
  307. package/dist/packages/runtime/schemas/actions.js +117 -0
  308. package/dist/packages/runtime/schemas/agents.d.ts +76 -0
  309. package/dist/packages/runtime/schemas/agents.js +41 -0
  310. package/dist/packages/runtime/schemas/build-plans.d.ts +959 -0
  311. package/dist/packages/runtime/schemas/build-plans.js +107 -0
  312. package/dist/packages/runtime/schemas/files.d.ts +567 -0
  313. package/dist/packages/runtime/schemas/files.js +51 -0
  314. package/dist/packages/runtime/schemas/index.d.ts +8 -0
  315. package/dist/packages/runtime/schemas/index.js +12 -0
  316. package/dist/packages/runtime/schemas/instance.d.ts +141 -0
  317. package/dist/packages/runtime/schemas/instance.js +143 -0
  318. package/dist/packages/runtime/schemas/jobs.d.ts +339 -0
  319. package/dist/packages/runtime/schemas/jobs.js +103 -0
  320. package/dist/packages/runtime/schemas/projects.d.ts +339 -0
  321. package/dist/packages/runtime/schemas/projects.js +136 -0
  322. package/dist/packages/runtime/schemas/runs.d.ts +2676 -0
  323. package/dist/packages/runtime/schemas/runs.js +98 -0
  324. package/dist/packages/runtime/service/index.d.ts +3 -0
  325. package/dist/packages/runtime/service/index.js +3 -0
  326. package/dist/packages/runtime/service/openapi.d.ts +7 -0
  327. package/dist/packages/runtime/service/openapi.js +117 -0
  328. package/dist/packages/runtime/service/operations.d.ts +1490 -0
  329. package/dist/packages/runtime/service/operations.js +245 -0
  330. package/dist/packages/runtime/service/routes.d.ts +106 -0
  331. package/dist/packages/runtime/service/routes.js +120 -0
  332. package/dist/packages/runtime/service/server-api-files.d.ts +10 -0
  333. package/dist/packages/runtime/service/server-api-files.js +85 -0
  334. package/dist/packages/runtime/service/server-app-boot.d.ts +4 -0
  335. package/dist/packages/runtime/service/server-app-boot.js +46 -0
  336. package/dist/packages/runtime/service/server-guards.d.ts +63 -0
  337. package/dist/packages/runtime/service/server-guards.js +181 -0
  338. package/dist/packages/runtime/service/server-helpers.d.ts +27 -0
  339. package/dist/packages/runtime/service/server-helpers.js +89 -0
  340. package/dist/packages/runtime/service/server-instance-helpers.d.ts +30 -0
  341. package/dist/packages/runtime/service/server-instance-helpers.js +114 -0
  342. package/dist/packages/runtime/service/server-routes-action-proposals.d.ts +3 -0
  343. package/dist/packages/runtime/service/server-routes-action-proposals.js +43 -0
  344. package/dist/packages/runtime/service/server-routes-agents.d.ts +4 -0
  345. package/dist/packages/runtime/service/server-routes-agents.js +198 -0
  346. package/dist/packages/runtime/service/server-routes-auth.d.ts +33 -0
  347. package/dist/packages/runtime/service/server-routes-auth.js +138 -0
  348. package/dist/packages/runtime/service/server-routes-build-plans.d.ts +3 -0
  349. package/dist/packages/runtime/service/server-routes-build-plans.js +83 -0
  350. package/dist/packages/runtime/service/server-routes-discovery.d.ts +4 -0
  351. package/dist/packages/runtime/service/server-routes-discovery.js +196 -0
  352. package/dist/packages/runtime/service/server-routes-events.d.ts +5 -0
  353. package/dist/packages/runtime/service/server-routes-events.js +99 -0
  354. package/dist/packages/runtime/service/server-routes-project-context.d.ts +9 -0
  355. package/dist/packages/runtime/service/server-routes-project-context.js +192 -0
  356. package/dist/packages/runtime/service/server-routes-project-jobs.d.ts +9 -0
  357. package/dist/packages/runtime/service/server-routes-project-jobs.js +130 -0
  358. package/dist/packages/runtime/service/server-routes-project-runs.d.ts +14 -0
  359. package/dist/packages/runtime/service/server-routes-project-runs.js +85 -0
  360. package/dist/packages/runtime/service/server-routes-projects.d.ts +4 -0
  361. package/dist/packages/runtime/service/server-routes-projects.js +92 -0
  362. package/dist/packages/runtime/service/server-routes-runs.d.ts +3 -0
  363. package/dist/packages/runtime/service/server-routes-runs.js +112 -0
  364. package/dist/packages/runtime/service/server.d.ts +37 -0
  365. package/dist/packages/runtime/service/server.js +300 -0
  366. package/dist/packages/{engine → runtime/service}/service-registry.d.ts +5 -5
  367. package/dist/packages/{engine → runtime/service}/service-registry.js +7 -7
  368. package/dist/packages/runtime/verify/benchmark-run.d.ts +81 -0
  369. package/dist/packages/runtime/verify/benchmark-run.js +303 -0
  370. package/dist/packages/{engine → runtime}/verify/index.d.ts +2 -2
  371. package/dist/packages/{engine → runtime}/verify/index.js +1 -1
  372. package/dist/packages/{engine → runtime}/verify/lib/schema.d.ts +83 -16
  373. package/dist/packages/{engine → runtime}/verify/lib/schema.js +26 -18
  374. package/dist/packages/{engine → runtime}/verify/verify-execution.js +11 -11
  375. package/dist/packages/{engine → runtime}/verify/verify-paths.d.ts +4 -4
  376. package/dist/packages/runtime/verify/verify-paths.js +61 -0
  377. package/dist/packages/{engine → runtime}/verify/verify-sandbox.d.ts +1 -1
  378. package/dist/packages/runtime/verify/verify-sandbox.js +88 -0
  379. package/dist/packages/{engine → runtime}/verify/verify-specs.d.ts +2 -0
  380. package/dist/packages/{engine → runtime}/verify/verify-specs.js +5 -3
  381. package/dist/packages/runtime/verify/verify-targets.d.ts +5 -0
  382. package/dist/packages/{engine → runtime}/verify/verify-targets.js +12 -12
  383. package/dist/packages/runtime/verify/verify-types.js +1 -0
  384. package/dist/packages/{engine → runtime}/verify/verify.d.ts +1 -1
  385. package/dist/packages/{engine → runtime}/verify/verify.js +1 -1
  386. package/dist/packages/runtime/wire-schemas.d.ts +18 -0
  387. package/dist/packages/runtime/wire-schemas.js +27 -0
  388. package/package.json +40 -30
  389. package/public-repo/CONTRIBUTING.md +7 -16
  390. package/public-repo/README.md +175 -234
  391. package/public-repo/SECURITY.md +3 -4
  392. package/public-repo/build-plans/interf-default/README.md +19 -14
  393. package/public-repo/build-plans/interf-default/build/stages/shape/SKILL.md +18 -11
  394. package/public-repo/build-plans/interf-default/build/stages/structure/SKILL.md +12 -5
  395. package/public-repo/build-plans/interf-default/build/stages/summarize/SKILL.md +16 -4
  396. package/public-repo/build-plans/interf-default/build-plan.json +34 -28
  397. package/public-repo/build-plans/interf-default/build-plan.schema.json +54 -32
  398. package/public-repo/build-plans/interf-default/improve/SKILL.md +3 -3
  399. package/public-repo/build-plans/interf-default/use/query/SKILL.md +17 -11
  400. package/public-repo/openapi/local-service.openapi.json +6803 -0
  401. package/public-repo/skills/interf/SKILL.md +460 -179
  402. package/dist/cli/commands/prep.d.ts +0 -2
  403. package/dist/cli/commands/prep.js +0 -240
  404. package/dist/cli/commands/test.d.ts +0 -10
  405. package/dist/cli/commands/test.js +0 -85
  406. package/dist/cli/commands/web.d.ts +0 -2
  407. package/dist/cli/commands/web.js +0 -286
  408. package/dist/interf-ui/404.html +0 -1
  409. package/dist/interf-ui/__next.__PAGE__.txt +0 -10
  410. package/dist/interf-ui/__next._full.txt +0 -20
  411. package/dist/interf-ui/__next._head.txt +0 -5
  412. package/dist/interf-ui/__next._index.txt +0 -5
  413. package/dist/interf-ui/__next._tree.txt +0 -5
  414. package/dist/interf-ui/_next/static/_qJKnA0dammQ306MG_zMq/_buildManifest.js +0 -11
  415. package/dist/interf-ui/_next/static/_qJKnA0dammQ306MG_zMq/_clientMiddlewareManifest.js +0 -1
  416. package/dist/interf-ui/_next/static/_qJKnA0dammQ306MG_zMq/_ssgManifest.js +0 -1
  417. package/dist/interf-ui/_next/static/chunks/0.tjb6f4golw..css +0 -3
  418. package/dist/interf-ui/_next/static/chunks/03~yq9q893hmn.js +0 -1
  419. package/dist/interf-ui/_next/static/chunks/085-n_jv2ng_q.css +0 -1
  420. package/dist/interf-ui/_next/static/chunks/0dn41fa_zvgsl.js +0 -1
  421. package/dist/interf-ui/_next/static/chunks/0g-ea0zj5d-0k.js +0 -1
  422. package/dist/interf-ui/_next/static/chunks/0gwqglc4iz583.js +0 -1
  423. package/dist/interf-ui/_next/static/chunks/0haldgm65ve6l.js +0 -1
  424. package/dist/interf-ui/_next/static/chunks/0nv3am99vjzn4.js +0 -1
  425. package/dist/interf-ui/_next/static/chunks/0s77gt_o4jwtx.js +0 -1
  426. package/dist/interf-ui/_next/static/chunks/0y5z3t-z1c8ks.js.map +0 -5
  427. package/dist/interf-ui/_next/static/chunks/0~a36ujuzpaz..js +0 -116
  428. package/dist/interf-ui/_next/static/chunks/10jeodxe4nkgj.js +0 -31
  429. package/dist/interf-ui/_next/static/chunks/119h2rouych2t.js +0 -1
  430. package/dist/interf-ui/_next/static/chunks/13c8b~m8knjsf.js +0 -1
  431. package/dist/interf-ui/_next/static/chunks/14dznb2qpt-ho.js +0 -91
  432. package/dist/interf-ui/_next/static/chunks/15z_en80lrq-3.js +0 -5
  433. package/dist/interf-ui/_next/static/chunks/turbopack-0p.pvcjrtq-jh.js +0 -1
  434. package/dist/interf-ui/_next/static/chunks/turbopack-0usj_75.8frlw.js +0 -1
  435. package/dist/interf-ui/_next/static/chunks/turbopack-worker-0sjn--fhq~1cg.js +0 -1
  436. package/dist/interf-ui/_next/static/media/GeistMono_Variable.p.17jn9btb_52pq.woff2 +0 -0
  437. package/dist/interf-ui/_next/static/media/Geist_Variable-s.p.0-te~ja_gpvcf.woff2 +0 -0
  438. package/dist/interf-ui/_next/static/media/worker.102zas1s52_pf.js +0 -109
  439. package/dist/interf-ui/_not-found/__next._full.txt +0 -15
  440. package/dist/interf-ui/_not-found/__next._head.txt +0 -5
  441. package/dist/interf-ui/_not-found/__next._index.txt +0 -5
  442. package/dist/interf-ui/_not-found/__next._not-found.__PAGE__.txt +0 -5
  443. package/dist/interf-ui/_not-found/__next._not-found.txt +0 -5
  444. package/dist/interf-ui/_not-found/__next._tree.txt +0 -2
  445. package/dist/interf-ui/_not-found.html +0 -1
  446. package/dist/interf-ui/_not-found.txt +0 -15
  447. package/dist/interf-ui/index.html +0 -1
  448. package/dist/interf-ui/index.txt +0 -20
  449. package/dist/packages/contracts/lib/preparation-paths.d.ts +0 -117
  450. package/dist/packages/contracts/lib/preparation-paths.js +0 -177
  451. package/dist/packages/engine/action-definitions.d.ts +0 -407
  452. package/dist/packages/engine/action-definitions.js +0 -1158
  453. package/dist/packages/engine/action-values.d.ts +0 -1
  454. package/dist/packages/engine/action-values.js +0 -1
  455. package/dist/packages/engine/agents/lib/args.d.ts +0 -4
  456. package/dist/packages/engine/agents/lib/args.js +0 -52
  457. package/dist/packages/engine/agents/lib/chart-guidance.d.ts +0 -1
  458. package/dist/packages/engine/agents/lib/chart-guidance.js +0 -8
  459. package/dist/packages/engine/agents/lib/constants.js +0 -28
  460. package/dist/packages/engine/agents/lib/schema.d.ts +0 -8
  461. package/dist/packages/engine/agents/lib/schema.js +0 -7
  462. package/dist/packages/engine/agents/lib/shells.d.ts +0 -74
  463. package/dist/packages/engine/agents/lib/shells.js +0 -1052
  464. package/dist/packages/engine/agents/lib/verifiable-context-bootstrap.d.ts +0 -3
  465. package/dist/packages/engine/build/artifact-counts.d.ts +0 -1
  466. package/dist/packages/engine/build/billing-events.d.ts +0 -89
  467. package/dist/packages/engine/build/build-pipeline.js +0 -175
  468. package/dist/packages/engine/build/build-plan-runs.d.ts +0 -14
  469. package/dist/packages/engine/build/build-plan-runs.js +0 -31
  470. package/dist/packages/engine/build/build-stage-plan.d.ts +0 -16
  471. package/dist/packages/engine/build/build-stage-runner.js +0 -94
  472. package/dist/packages/engine/build/build-target.js +0 -16
  473. package/dist/packages/engine/build/check-evaluator.js +0 -298
  474. package/dist/packages/engine/build/reset.d.ts +0 -2
  475. package/dist/packages/engine/build/reset.js +0 -74
  476. package/dist/packages/engine/build/runtime-inventory.d.ts +0 -7
  477. package/dist/packages/engine/build/runtime-runs.d.ts +0 -10
  478. package/dist/packages/engine/build/runtime-runs.js +0 -224
  479. package/dist/packages/engine/build/runtime.d.ts +0 -5
  480. package/dist/packages/engine/build/runtime.js +0 -4
  481. package/dist/packages/engine/build/source-files.d.ts +0 -46
  482. package/dist/packages/engine/build/source-files.js +0 -149
  483. package/dist/packages/engine/build/state-artifacts.d.ts +0 -9
  484. package/dist/packages/engine/build/state-artifacts.js +0 -14
  485. package/dist/packages/engine/build/state-health.d.ts +0 -4
  486. package/dist/packages/engine/build/state-io.d.ts +0 -11
  487. package/dist/packages/engine/build/state-io.js +0 -82
  488. package/dist/packages/engine/build/state-paths.js +0 -16
  489. package/dist/packages/engine/build/state-view.d.ts +0 -5
  490. package/dist/packages/engine/build/state.d.ts +0 -7
  491. package/dist/packages/engine/build/state.js +0 -12
  492. package/dist/packages/engine/build/validate-helpers.d.ts +0 -12
  493. package/dist/packages/engine/build/validate-helpers.js +0 -41
  494. package/dist/packages/engine/build/verifiable-context-paths.d.ts +0 -47
  495. package/dist/packages/engine/build/verifiable-context-paths.js +0 -121
  496. package/dist/packages/engine/build/verifiable-context-schema.d.ts +0 -21
  497. package/dist/packages/engine/build/verifiable-context-schema.js +0 -126
  498. package/dist/packages/engine/cloud-seams.d.ts +0 -115
  499. package/dist/packages/engine/cloud-seams.js +0 -84
  500. package/dist/packages/engine/index.d.ts +0 -22
  501. package/dist/packages/engine/index.js +0 -15
  502. package/dist/packages/engine/instance-paths.d.ts +0 -106
  503. package/dist/packages/engine/instance-paths.js +0 -171
  504. package/dist/packages/engine/lib/schema.d.ts +0 -6304
  505. package/dist/packages/engine/lib/schema.js +0 -730
  506. package/dist/packages/engine/preparation-store.d.ts +0 -105
  507. package/dist/packages/engine/preparation-store.js +0 -213
  508. package/dist/packages/engine/readiness-check-draft.d.ts +0 -20
  509. package/dist/packages/engine/readiness-check-draft.js +0 -111
  510. package/dist/packages/engine/requested-artifacts.d.ts +0 -5
  511. package/dist/packages/engine/routes.d.ts +0 -85
  512. package/dist/packages/engine/routes.js +0 -99
  513. package/dist/packages/engine/runtime-caches.d.ts +0 -76
  514. package/dist/packages/engine/runtime-proposal-helpers.d.ts +0 -35
  515. package/dist/packages/engine/runtime-proposal-helpers.js +0 -247
  516. package/dist/packages/engine/runtime.d.ts +0 -371
  517. package/dist/packages/engine/runtime.js +0 -2463
  518. package/dist/packages/engine/server.d.ts +0 -58
  519. package/dist/packages/engine/server.js +0 -1399
  520. package/dist/packages/engine/verify/readiness-check-run.d.ts +0 -82
  521. package/dist/packages/engine/verify/readiness-check-run.js +0 -265
  522. package/dist/packages/engine/verify/verify-paths.js +0 -61
  523. package/dist/packages/engine/verify/verify-sandbox.js +0 -88
  524. package/dist/packages/engine/verify/verify-targets.d.ts +0 -5
  525. package/dist/packages/engine/wire-schemas.d.ts +0 -547
  526. package/dist/packages/engine/wire-schemas.js +0 -59
  527. package/dist/packages/project/index.d.ts +0 -9
  528. package/dist/packages/project/interf-bootstrap.d.ts +0 -1
  529. package/dist/packages/project/interf-bootstrap.js +0 -1
  530. package/dist/packages/project/interf-scaffold.d.ts +0 -3
  531. package/dist/packages/project/interf-scaffold.js +0 -136
  532. package/dist/packages/project/interf.d.ts +0 -4
  533. package/dist/packages/project/interf.js +0 -3
  534. package/dist/packages/project/lib/schema.d.ts +0 -328
  535. package/dist/packages/project/lib/schema.js +0 -136
  536. package/dist/packages/project/preparation-entries.d.ts +0 -11
  537. package/dist/packages/project/preparation-entries.js +0 -49
  538. package/dist/packages/project/source-config.d.ts +0 -46
  539. package/dist/packages/project/source-config.js +0 -394
  540. package/dist/packages/project/source-folders.d.ts +0 -11
  541. package/public-repo/plugins/README.md +0 -9
  542. package/public-repo/plugins/interf/.claude-plugin/plugin.json +0 -21
  543. package/public-repo/plugins/interf/.mcp.json +0 -12
  544. package/public-repo/plugins/interf/README.md +0 -32
  545. package/public-repo/plugins/interf/skills/interf/SKILL.md +0 -376
  546. /package/dist/packages/{engine/agents/lib/types.js → runtime/actions/fields.js} +0 -0
  547. /package/dist/packages/{engine → runtime}/agents/lib/agents.d.ts +0 -0
  548. /package/dist/packages/{engine → runtime}/agents/lib/agents.js +0 -0
  549. /package/dist/packages/{engine → runtime}/agents/lib/execution-profile.d.ts +0 -0
  550. /package/dist/packages/{engine → runtime}/agents/lib/execution.d.ts +0 -0
  551. /package/dist/packages/{engine → runtime}/agents/lib/executors.d.ts +0 -0
  552. /package/dist/packages/{engine → runtime}/agents/lib/executors.js +0 -0
  553. /package/dist/packages/{engine → runtime}/agents/lib/logs.d.ts +0 -0
  554. /package/dist/packages/{engine → runtime}/agents/lib/logs.js +0 -0
  555. /package/dist/packages/{engine → runtime}/agents/lib/preflight.d.ts +0 -0
  556. /package/dist/packages/{engine → runtime}/agents/lib/render.d.ts +0 -0
  557. /package/dist/packages/{engine → runtime}/agents/lib/status.d.ts +0 -0
  558. /package/dist/packages/{engine → runtime}/agents/lib/status.js +0 -0
  559. /package/dist/packages/{engine → runtime}/agents/lib/types.d.ts +0 -0
  560. /package/dist/packages/{engine/build/runtime-types.js → runtime/agents/lib/types.js} +0 -0
  561. /package/dist/packages/{engine/verify/verify-types.js → runtime/agents/providers/types.js} +0 -0
  562. /package/dist/packages/{engine → runtime}/agents/role-router.d.ts +0 -0
  563. /package/dist/packages/{engine → runtime}/build/build-execution.d.ts +0 -0
  564. /package/dist/packages/{engine → runtime}/build/build-execution.js +0 -0
  565. /package/dist/packages/{engine → runtime}/build/runtime-contracts.d.ts +0 -0
  566. /package/dist/packages/{engine → runtime}/build/runtime-paths.d.ts +0 -0
  567. /package/dist/packages/{engine → runtime}/build/runtime-prompt.d.ts +0 -0
  568. /package/dist/packages/{engine → runtime}/execution/adapters.d.ts +0 -0
  569. /package/dist/packages/{engine → runtime}/execution/adapters.js +0 -0
  570. /package/dist/packages/{engine → runtime}/execution/events.d.ts +0 -0
  571. /package/dist/packages/{engine → runtime}/execution/events.js +0 -0
  572. /package/dist/packages/{engine → runtime}/verify/verify-execution.d.ts +0 -0
  573. /package/dist/packages/{engine → runtime}/verify/verify-profile-presets.d.ts +0 -0
  574. /package/dist/packages/{engine → runtime}/verify/verify-profile-presets.js +0 -0
  575. /package/dist/packages/{engine → runtime}/verify/verify-types.d.ts +0 -0
@@ -1,24 +1,21 @@
1
1
  import { appendFileSync, mkdirSync } from "node:fs";
2
2
  import { dirname, join } from "node:path";
3
3
  import { z } from "zod";
4
+ import { contextGraphRuntimeRoot } from "./context-graph-paths.js";
4
5
  /**
5
- * 0.17 — per-Artifact billing event record.
6
+ * Per-Artifact billing event record.
6
7
  *
7
8
  * Emitted once per Artifact each time a Build run produces it.
8
- * `account_id` is `null` for loopback (no auth); the cloud variant
9
- * fills it from the `tokenValidator` (B4.3) result.
10
- *
11
- * `event_kind`:
12
- * - `fresh` — first-time build of this Artifact in this run
13
- * - `resync` — incremental rebuild (deferred to 0.18+; not emitted in 0.17)
9
+ * `account_id` is `null` for loopback engines; hosted variants can fill it
10
+ * from the service auth layer.
14
11
  */
15
12
  export const BillingEventKindSchema = z.enum(["fresh", "resync"]);
16
- export const CompilationEventSchema = z.object({
17
- kind: z.literal("interf-compilation-event"),
13
+ export const BuildBillingEventSchema = z.object({
14
+ kind: z.literal("interf-build-billing-event"),
18
15
  version: z.literal(1),
19
16
  timestamp: z.string().min(1),
20
17
  run_id: z.string().min(1),
21
- preparation: z.string().min(1),
18
+ project: z.string().min(1),
22
19
  artifact_id: z.string().min(1),
23
20
  build_plan_id: z.string().min(1),
24
21
  account_id: z.string().min(1).nullable(),
@@ -32,27 +29,28 @@ export class JsonlBillingEventSink {
32
29
  this.logPath = logPath;
33
30
  }
34
31
  emit(event) {
35
- const validated = CompilationEventSchema.parse(event);
32
+ const validated = BuildBillingEventSchema.parse(event);
36
33
  mkdirSync(dirname(this.logPath), { recursive: true });
37
34
  appendFileSync(this.logPath, `${JSON.stringify(validated)}\n`);
38
35
  }
39
36
  }
40
37
  /**
41
38
  * Default sink path for a run. Each Build run gets its own JSONL
42
- * file alongside its other on-disk artifacts.
39
+ * file under hidden runtime metadata, not beside agent-facing Artifacts.
43
40
  */
44
41
  export function defaultBillingEventLogPath(options) {
45
- return join(options.preparationDataDir, options.preparationName, "runs", options.runId, "billing-events.jsonl");
42
+ const contextGraphPath = join(options.projectDataDir, options.projectName);
43
+ return join(contextGraphRuntimeRoot(contextGraphPath), "billing-events", options.runId, "billing-events.jsonl");
46
44
  }
47
45
  /**
48
- * Convert a list of per-Artifact statuses into compilation events for
46
+ * Convert a list of per-Artifact statuses into build events for
49
47
  * the run. Only `ready` and `failed` artifacts emit events — `skipped`
50
48
  * and `not_ready` represent work that didn't happen and shouldn't bill.
51
49
  *
52
- * 0.17 ships `event_kind: "fresh"` only. The resync optimization that
53
- * differentiates cached-vs-rebuilt artifacts lands in 0.18+.
50
+ * Local builds currently emit `event_kind: "fresh"` only. The `resync` value is
51
+ * reserved for incremental rebuilds.
54
52
  */
55
- export function buildCompilationEventsForRun(options) {
53
+ export function buildBillingEventsForRun(options) {
56
54
  const timestamp = options.timestamp ?? new Date().toISOString();
57
55
  const durationMs = options.startedAt && options.finishedAt
58
56
  ? Math.max(0, new Date(options.finishedAt).getTime() - new Date(options.startedAt).getTime())
@@ -60,11 +58,11 @@ export function buildCompilationEventsForRun(options) {
60
58
  return options.artifacts
61
59
  .filter((status) => status.status === "ready" || status.status === "failed")
62
60
  .map((status) => ({
63
- kind: "interf-compilation-event",
61
+ kind: "interf-build-billing-event",
64
62
  version: 1,
65
63
  timestamp,
66
64
  run_id: options.runId,
67
- preparation: options.preparation,
65
+ project: options.project,
68
66
  artifact_id: status.artifact_id,
69
67
  build_plan_id: options.buildPlanId,
70
68
  account_id: options.accountId,
@@ -0,0 +1,15 @@
1
+ import { type BuildEvidenceResource, type Readiness } from "../../contracts/lib/schema.js";
2
+ import type { BuildRun } from "../execution/lib/schema.js";
3
+ import type { StageEvidenceReconciliation } from "./lib/schema.js";
4
+ interface BuildBuildEvidenceInput {
5
+ projectId: string;
6
+ buildRun?: BuildRun | null;
7
+ readiness?: Readiness | null;
8
+ sourceFileCount: number;
9
+ expectedStageCount?: number;
10
+ expectedOutputCount?: number;
11
+ stageEvidence?: readonly StageEvidenceReconciliation[];
12
+ generatedAt?: string;
13
+ }
14
+ export declare function buildBuildEvidence(input: BuildBuildEvidenceInput): BuildEvidenceResource;
15
+ export {};
@@ -0,0 +1,173 @@
1
+ import { BuildEvidenceResourceSchema, } from "../../contracts/lib/schema.js";
2
+ function issueState(observed, total, options) {
3
+ if (options?.hardFailure)
4
+ return "fail";
5
+ if (typeof total !== "number")
6
+ return undefined;
7
+ if (total === 0)
8
+ return options?.reviewWhenEmpty ? "review" : undefined;
9
+ return observed >= total ? "pass" : "missing";
10
+ }
11
+ function metric(observed, total, unit) {
12
+ return {
13
+ observed: Math.max(0, Math.trunc(observed)),
14
+ ...(typeof total === "number" ? { total: Math.max(0, Math.trunc(total)) } : {}),
15
+ ...(unit ? { unit } : {}),
16
+ };
17
+ }
18
+ function sourceFilesProcessed(stages) {
19
+ let observed = 0;
20
+ for (const stage of stages) {
21
+ const value = stage.latest_evidence?.files_processed;
22
+ if (typeof value === "number" && Number.isFinite(value)) {
23
+ observed = Math.max(observed, Math.trunc(value));
24
+ }
25
+ }
26
+ return observed;
27
+ }
28
+ function requiredArtifactCheckResults(artifacts) {
29
+ return artifacts
30
+ .flatMap((artifact) => artifact.check_results ?? [])
31
+ .filter((result) => result.required !== false);
32
+ }
33
+ function stageCheckCounts(stages) {
34
+ const checks = stages.flatMap((stage) => stage.latest_evidence?.checks ?? []);
35
+ return {
36
+ passed: checks.filter((check) => check.ok).length,
37
+ total: checks.length,
38
+ };
39
+ }
40
+ function rowStateIssue(state, missingMessage, failMessage) {
41
+ if (!state)
42
+ return {};
43
+ if (state === "missing")
44
+ return { issue_state: state, issue: missingMessage };
45
+ if (state === "fail")
46
+ return { issue_state: state, issue: failMessage ?? missingMessage };
47
+ return { issue_state: state };
48
+ }
49
+ function rowsHaveBlockingIssue(rows) {
50
+ return rows.some((row) => row.issue_state === "missing" || row.issue_state === "fail");
51
+ }
52
+ export function buildBuildEvidence(input) {
53
+ const generatedAt = input.generatedAt ?? new Date().toISOString();
54
+ const buildRun = input.buildRun ?? null;
55
+ const stages = buildRun?.stages ?? [];
56
+ const artifactStatuses = buildRun?.artifacts ?? [];
57
+ const acceptedEvidenceCounts = (input.stageEvidence ?? []).flatMap((entry) => entry.accepted.counts);
58
+ const rows = [];
59
+ const filesTotal = Math.max(0, Math.trunc(input.sourceFileCount));
60
+ const hasAcceptedStageEvidence = (input.stageEvidence ?? []).length > 0;
61
+ const acceptedFilesProcessed = acceptedEvidenceCounts
62
+ .filter((count) => count.key === "files_processed")
63
+ .reduce((max, count) => Math.max(max, count.value), 0);
64
+ const filesObserved = buildRun
65
+ ? Math.min(hasAcceptedStageEvidence ? acceptedFilesProcessed : sourceFilesProcessed(stages), filesTotal)
66
+ : 0;
67
+ const filesState = issueState(filesObserved, filesTotal, { reviewWhenEmpty: true });
68
+ rows.push({
69
+ id: "files-processed",
70
+ assertion: "Source files processed",
71
+ metric: metric(filesObserved, filesTotal, filesTotal === 1 ? "file" : "files"),
72
+ evidence: {
73
+ kind: buildRun ? "stage-record" : "source-inventory",
74
+ label: buildRun ? "Build stage records" : "Source inventory",
75
+ ...(buildRun ? { run_id: buildRun.run_id, ref: `run:${buildRun.run_id}` } : { ref: "source-files" }),
76
+ },
77
+ ...rowStateIssue(filesState, `${filesTotal - filesObserved} Source file${filesTotal - filesObserved === 1 ? "" : "s"} lack accepted Build evidence.`),
78
+ });
79
+ const stageTotal = input.expectedStageCount ?? stages[0]?.stage_total ?? stages.length;
80
+ const stagesSucceeded = stages.filter((stage) => stage.status === "succeeded").length;
81
+ const stagesState = issueState(stagesSucceeded, stageTotal);
82
+ rows.push({
83
+ id: "stages-completed",
84
+ assertion: "Build Plan stages completed",
85
+ metric: metric(stagesSucceeded, stageTotal, stageTotal === 1 ? "stage" : "stages"),
86
+ evidence: {
87
+ kind: "stage-record",
88
+ label: "Build stage ledger",
89
+ ...(buildRun ? { run_id: buildRun.run_id, ref: `run:${buildRun.run_id}` } : { ref: "run:none" }),
90
+ },
91
+ ...rowStateIssue(stagesState, `${stageTotal - stagesSucceeded} stage${stageTotal - stagesSucceeded === 1 ? "" : "s"} did not complete.`),
92
+ });
93
+ const outputTotal = input.expectedOutputCount ?? Math.max(artifactStatuses.length, buildRun?.artifacts.length ?? 0);
94
+ const outputsReady = artifactStatuses.filter((artifact) => artifact.status === "ready").length;
95
+ const outputsState = issueState(outputsReady, outputTotal);
96
+ rows.push({
97
+ id: "outputs-ready",
98
+ assertion: "Build Plan outputs ready",
99
+ metric: metric(outputsReady, outputTotal, outputTotal === 1 ? "output" : "outputs"),
100
+ evidence: {
101
+ kind: "output",
102
+ label: "Accepted Build outputs",
103
+ ...(buildRun ? { run_id: buildRun.run_id, ref: `run:${buildRun.run_id}:artifacts` } : { ref: "outputs:none" }),
104
+ },
105
+ ...rowStateIssue(outputsState, `${outputTotal - outputsReady} output${outputTotal - outputsReady === 1 ? "" : "s"} are not ready.`),
106
+ });
107
+ const artifactCheckResults = requiredArtifactCheckResults(artifactStatuses);
108
+ const checkCounts = artifactCheckResults.length > 0
109
+ ? {
110
+ passed: artifactCheckResults.filter((result) => result.passed).length,
111
+ total: artifactCheckResults.length,
112
+ }
113
+ : stageCheckCounts(stages);
114
+ const checksState = issueState(checkCounts.passed, checkCounts.total, { reviewWhenEmpty: true });
115
+ rows.push({
116
+ id: "checks-passed",
117
+ assertion: "Build checks passed",
118
+ metric: metric(checkCounts.passed, checkCounts.total, checkCounts.total === 1 ? "check" : "checks"),
119
+ evidence: {
120
+ kind: artifactCheckResults.length > 0 ? "validator" : "stage-record",
121
+ label: artifactCheckResults.length > 0 ? "Runtime validators" : "Stage evidence records",
122
+ ...(buildRun ? { run_id: buildRun.run_id, ref: `run:${buildRun.run_id}:evidence` } : { ref: "checks:none" }),
123
+ },
124
+ ...rowStateIssue(checksState, `${checkCounts.total - checkCounts.passed} required check${checkCounts.total - checkCounts.passed === 1 ? "" : "s"} failed or are missing.`),
125
+ });
126
+ for (const count of acceptedEvidenceCounts.filter((entry) => entry.key !== "files_processed")) {
127
+ const countState = issueState(count.value, count.total);
128
+ rows.push({
129
+ id: `stage-evidence-${count.key.replaceAll("_", "-").replaceAll(".", "-").replaceAll(":", "-")}`,
130
+ assertion: count.label,
131
+ metric: metric(count.value, count.total, count.unit),
132
+ evidence: {
133
+ kind: "stage-evidence",
134
+ label: "Accepted stage evidence",
135
+ ...(count.stage_id ? { stage_id: count.stage_id } : {}),
136
+ ...(count.artifact_id ? { artifact_id: count.artifact_id } : {}),
137
+ ...(buildRun ? { run_id: buildRun.run_id, ref: `run:${buildRun.run_id}:stage-evidence` } : {}),
138
+ },
139
+ ...rowStateIssue(countState, `${count.label} is below the declared expectation.`),
140
+ });
141
+ }
142
+ const failed = buildRun?.status === "failed";
143
+ const hasBlockingRows = rowsHaveBlockingIssue(rows);
144
+ // Build evidence explains the runtime readiness verdict; it does not
145
+ // create a second readiness source of truth.
146
+ const ready = Boolean(input.readiness?.ready) && !failed;
147
+ const summary = failed
148
+ ? "Latest Build failed before the Context Graph was ready."
149
+ : ready
150
+ ? hasBlockingRows
151
+ ? "Ready by runtime readiness; review Build evidence rows for follow-up."
152
+ : "Ready for agent task."
153
+ : "Context Graph is not ready; review missing Build evidence.";
154
+ return BuildEvidenceResourceSchema.parse({
155
+ kind: "interf-build-evidence",
156
+ version: 1,
157
+ generated_at: generatedAt,
158
+ project_id: input.projectId,
159
+ build_run_id: buildRun?.run_id ?? null,
160
+ ready,
161
+ summary,
162
+ rows: failed
163
+ ? rows.map((row) => row.id === "stages-completed"
164
+ ? {
165
+ ...row,
166
+ issue_state: "fail",
167
+ issue: buildRun?.stages.find((stage) => stage.status === "failed")?.failure ??
168
+ "Latest Build failed.",
169
+ }
170
+ : row)
171
+ : rows,
172
+ });
173
+ }
@@ -18,15 +18,16 @@ export type StageShellRetentionMode = "on-failure" | "always";
18
18
  /**
19
19
  * Per-stage executor resolver. When provided, the pipeline calls this
20
20
  * for each stage and uses the returned executor instead of the
21
- * top-level `executor`. The top-level `executor` stays as the default
22
- * fallback so single-active-agent setups keep working without any
23
- * resolver wired up.
21
+ * top-level `executor`. If no resolver is provided, the top-level
22
+ * `executor` is the explicit single-agent execution path. Resolver
23
+ * failures are not swallowed: a broken role map must fail visibly
24
+ * instead of silently running a different agent.
24
25
  */
25
- export type ResolveStageExecutor = (stage: BuildStageExecutionDefinition) => AgentExecutor;
26
+ export type ResolveStageExecutor = (stage: BuildStageExecutionDefinition) => AgentExecutor | null | undefined;
26
27
  export declare function runBuildSummarize(options: {
27
28
  executor: AgentExecutor;
28
29
  resolveStageExecutor?: ResolveStageExecutor;
29
- verifiableContextPath: string;
30
+ contextGraphPath: string;
30
31
  reporter?: BuildPlanReporter;
31
32
  reportSummary?: boolean;
32
33
  reportStep?: boolean;
@@ -34,23 +35,26 @@ export declare function runBuildSummarize(options: {
34
35
  fullPass?: boolean;
35
36
  runId?: string;
36
37
  events?: RunEventSink;
38
+ maxStageValidationAttempts?: number;
37
39
  }): Promise<BuildSummarizeResult>;
38
40
  export declare function runBuildStages(options: {
39
41
  executor: AgentExecutor;
40
42
  resolveStageExecutor?: ResolveStageExecutor;
41
- verifiableContextPath: string;
43
+ contextGraphPath: string;
42
44
  reporter?: BuildPlanReporter;
43
45
  reportStep?: boolean;
44
46
  preserveStageShells?: StageShellRetentionMode;
45
47
  runId?: string;
46
48
  events?: RunEventSink;
49
+ maxStageValidationAttempts?: number;
47
50
  }): Promise<BuildPlanStageResult>;
48
- export declare function buildVerifiableContext(options: {
51
+ export declare function buildContextGraph(options: {
49
52
  executor: AgentExecutor;
50
53
  resolveStageExecutor?: ResolveStageExecutor;
51
- verifiableContextPath: string;
54
+ contextGraphPath: string;
52
55
  reporter?: BuildPlanReporter;
53
56
  preserveStageShells?: StageShellRetentionMode;
54
57
  runId?: string;
55
58
  events?: RunEventSink;
59
+ maxStageValidationAttempts?: number;
56
60
  }): Promise<BuildResult>;
@@ -0,0 +1,304 @@
1
+ import { refreshContextGraphBootstrapGuidance, } from "../agents/lib/context-graph-bootstrap.js";
2
+ import { validateBuildPlanPackage } from "../../build-plans/package/local-build-plans.js";
3
+ import { reportValidationFailure, } from "../../build-plans/package/build-plan-helpers.js";
4
+ import { validateContextGraph, } from "./validate.js";
5
+ import { pruneStageExecutionShells, } from "../agents/lib/shells.js";
6
+ import { buildExecutionStages, resolveBuildContext, } from "./build-target.js";
7
+ import { runBuildStage } from "./build-stage-runner.js";
8
+ import { buildPlanPackagePathForContextGraph } from "./context-graph-paths.js";
9
+ import { runSourceInventory } from "./source-inventory.js";
10
+ import { stageReuseDecision } from "./stage-reuse.js";
11
+ import { createRunEventId, createRunEventTimestamp, } from "../execution/events.js";
12
+ function pickStageExecutor(fallback, stage, resolve) {
13
+ if (!resolve)
14
+ return fallback;
15
+ const resolved = resolve(stage);
16
+ if (!resolved) {
17
+ throw new Error(`No executor resolved for Build Plan stage "${stage.id}" (role "${stage.role}").`);
18
+ }
19
+ return resolved;
20
+ }
21
+ function stageReadsSource(stage) {
22
+ if (stage.contractType === "build-file-evidence")
23
+ return true;
24
+ return stage.reads.includes("source");
25
+ }
26
+ function pickSourceInventoryExecutor(fallback, stages, resolve) {
27
+ const sourceReadingStage = stages.find(stageReadsSource) ?? stages[0];
28
+ if (!sourceReadingStage)
29
+ return fallback;
30
+ return pickStageExecutor(fallback, sourceReadingStage, resolve);
31
+ }
32
+ async function emitReusedStagePassed(options) {
33
+ if (!options.events || !options.runId)
34
+ return;
35
+ await options.events.emit({
36
+ type: "stage.started",
37
+ event_id: createRunEventId("event"),
38
+ run_id: options.runId,
39
+ timestamp: createRunEventTimestamp(),
40
+ stage_id: options.stageId,
41
+ ...(typeof options.stageIndex === "number" ? { stage_index: options.stageIndex } : {}),
42
+ ...(typeof options.stageTotal === "number" ? { stage_total: options.stageTotal } : {}),
43
+ });
44
+ await options.events.emit({
45
+ type: "stage.passed",
46
+ event_id: createRunEventId("event"),
47
+ run_id: options.runId,
48
+ timestamp: createRunEventTimestamp(),
49
+ stage_id: options.stageId,
50
+ summary: options.summary,
51
+ });
52
+ }
53
+ function reusedStageResult(summary = "reused (verified, unchanged)") {
54
+ return { ok: true, code: 0, summary };
55
+ }
56
+ export async function runBuildSummarize(options) {
57
+ const context = resolveBuildContext(options.contextGraphPath);
58
+ const stageDefinition = options.stageDefinition
59
+ ?? buildExecutionStages(context.buildPlanId, options.contextGraphPath).find((stage) => stage.id === "summarize");
60
+ if (!stageDefinition) {
61
+ return {
62
+ ok: false,
63
+ code: 1,
64
+ plan: { sourceCount: 0, summaryCount: 0, targetCount: 0 },
65
+ summary: "Build Plan does not declare a summarize stage.",
66
+ };
67
+ }
68
+ const sourceRuntime = await runSourceInventory({
69
+ executor: pickStageExecutor(options.executor, stageDefinition, options.resolveStageExecutor),
70
+ contextGraphPath: options.contextGraphPath,
71
+ project: context.contextGraphName,
72
+ sourceLocator: context.sourcePath,
73
+ buildPlanId: context.buildPlanId,
74
+ stageIds: [stageDefinition.id],
75
+ stages: [stageDefinition],
76
+ runId: options.runId ?? null,
77
+ events: options.events,
78
+ maxAttempts: options.maxStageValidationAttempts,
79
+ });
80
+ if (!sourceRuntime.ok || !sourceRuntime.manifest) {
81
+ return {
82
+ ok: false,
83
+ code: 1,
84
+ plan: { sourceCount: 0, summaryCount: 0, targetCount: 0 },
85
+ summary: sourceRuntime.summary,
86
+ };
87
+ }
88
+ const sourceCount = sourceRuntime.manifest.source_total;
89
+ const reuse = stageReuseDecision({
90
+ contextGraphPath: options.contextGraphPath,
91
+ stageDefinition,
92
+ });
93
+ if (reuse.reuse) {
94
+ await emitReusedStagePassed({
95
+ events: options.events,
96
+ runId: options.runId,
97
+ stageId: stageDefinition.id,
98
+ stageIndex: 0,
99
+ stageTotal: 1,
100
+ summary: reuse.summary,
101
+ });
102
+ return {
103
+ ...reusedStageResult(reuse.summary),
104
+ plan: {
105
+ sourceCount,
106
+ summaryCount: 0,
107
+ targetCount: sourceCount,
108
+ },
109
+ };
110
+ }
111
+ const result = await runBuildStage({
112
+ executor: pickStageExecutor(options.executor, stageDefinition, options.resolveStageExecutor),
113
+ contextGraphPath: options.contextGraphPath,
114
+ reporter: options.reporter,
115
+ reportStep: options.reportStep,
116
+ stageDefinition,
117
+ runId: options.runId,
118
+ events: options.events,
119
+ maxValidationAttempts: options.maxStageValidationAttempts,
120
+ });
121
+ return {
122
+ ...result,
123
+ plan: {
124
+ sourceCount,
125
+ summaryCount: 0,
126
+ targetCount: sourceCount,
127
+ },
128
+ };
129
+ }
130
+ export async function runBuildStages(options) {
131
+ const preserveMode = options.preserveStageShells ?? "on-failure";
132
+ if (preserveMode !== "always") {
133
+ pruneStageExecutionShells(options.contextGraphPath);
134
+ }
135
+ let lastResult = { ok: true, code: 0 };
136
+ try {
137
+ const context = resolveBuildContext(options.contextGraphPath);
138
+ const stages = buildExecutionStages(context.buildPlanId, options.contextGraphPath);
139
+ const sourceInventoryExecutor = pickSourceInventoryExecutor(options.executor, stages, options.resolveStageExecutor);
140
+ const sourceRuntime = await runSourceInventory({
141
+ executor: sourceInventoryExecutor,
142
+ contextGraphPath: options.contextGraphPath,
143
+ project: context.contextGraphName,
144
+ sourceLocator: context.sourcePath,
145
+ buildPlanId: context.buildPlanId,
146
+ stageIds: stages.map((stage) => stage.id),
147
+ stages,
148
+ runId: options.runId ?? null,
149
+ events: options.events,
150
+ maxAttempts: options.maxStageValidationAttempts,
151
+ });
152
+ if (!sourceRuntime.ok)
153
+ return sourceRuntime;
154
+ let forceRunFromHere = false;
155
+ for (const [index, stageDefinition] of stages.entries()) {
156
+ if (!forceRunFromHere) {
157
+ const reuse = stageReuseDecision({
158
+ contextGraphPath: options.contextGraphPath,
159
+ stageDefinition,
160
+ });
161
+ if (reuse.reuse) {
162
+ await emitReusedStagePassed({
163
+ events: options.events,
164
+ runId: options.runId,
165
+ stageId: stageDefinition.id,
166
+ stageIndex: index,
167
+ stageTotal: stages.length,
168
+ summary: reuse.summary,
169
+ });
170
+ lastResult = reusedStageResult(reuse.summary);
171
+ continue;
172
+ }
173
+ }
174
+ forceRunFromHere = true;
175
+ const result = await runBuildStage({
176
+ executor: pickStageExecutor(options.executor, stageDefinition, options.resolveStageExecutor),
177
+ contextGraphPath: options.contextGraphPath,
178
+ reporter: options.reporter,
179
+ reportStep: options.reportStep,
180
+ stageDefinition,
181
+ runId: options.runId,
182
+ events: options.events,
183
+ stageIndex: index,
184
+ stageTotal: stages.length,
185
+ maxValidationAttempts: options.maxStageValidationAttempts,
186
+ });
187
+ lastResult = result;
188
+ if (!result.ok)
189
+ return result;
190
+ }
191
+ return lastResult;
192
+ }
193
+ finally {
194
+ if (preserveMode !== "always" && lastResult.ok) {
195
+ pruneStageExecutionShells(options.contextGraphPath);
196
+ }
197
+ }
198
+ }
199
+ export async function buildContextGraph(options) {
200
+ const preserveMode = options.preserveStageShells ?? "on-failure";
201
+ if (preserveMode !== "always") {
202
+ pruneStageExecutionShells(options.contextGraphPath);
203
+ }
204
+ let result = {
205
+ ok: true,
206
+ stageResults: {},
207
+ failedStage: null,
208
+ };
209
+ try {
210
+ refreshContextGraphBootstrapGuidance(options.contextGraphPath);
211
+ const buildPlanValidation = validateBuildPlanPackage(buildPlanPackagePathForContextGraph(options.contextGraphPath));
212
+ if (!buildPlanValidation.ok) {
213
+ reportValidationFailure(options.reporter, buildPlanValidation.summary, buildPlanValidation.errors);
214
+ return {
215
+ ...result,
216
+ ok: false,
217
+ failedStage: "build-plan",
218
+ stageResults: {
219
+ ...result.stageResults,
220
+ "build-plan": {
221
+ ok: false,
222
+ code: 1,
223
+ summary: buildPlanValidation.summary,
224
+ },
225
+ },
226
+ };
227
+ }
228
+ const context = resolveBuildContext(options.contextGraphPath);
229
+ const stages = buildExecutionStages(context.buildPlanId, options.contextGraphPath);
230
+ const sourceInventoryExecutor = pickSourceInventoryExecutor(options.executor, stages, options.resolveStageExecutor);
231
+ const sourceRuntime = await runSourceInventory({
232
+ executor: sourceInventoryExecutor,
233
+ contextGraphPath: options.contextGraphPath,
234
+ project: context.contextGraphName,
235
+ sourceLocator: context.sourcePath,
236
+ buildPlanId: context.buildPlanId,
237
+ stageIds: stages.map((stage) => stage.id),
238
+ stages,
239
+ runId: options.runId ?? null,
240
+ events: options.events,
241
+ maxAttempts: options.maxStageValidationAttempts,
242
+ });
243
+ if (!sourceRuntime.ok) {
244
+ result.ok = false;
245
+ result.failedStage = "source-inventory";
246
+ result.stageResults["source-inventory"] = sourceRuntime;
247
+ return result;
248
+ }
249
+ let forceRunFromHere = false;
250
+ for (const [index, stageDefinition] of stages.entries()) {
251
+ if (!forceRunFromHere) {
252
+ const reuse = stageReuseDecision({
253
+ contextGraphPath: options.contextGraphPath,
254
+ stageDefinition,
255
+ });
256
+ if (reuse.reuse) {
257
+ await emitReusedStagePassed({
258
+ events: options.events,
259
+ runId: options.runId,
260
+ stageId: stageDefinition.id,
261
+ stageIndex: index,
262
+ stageTotal: stages.length,
263
+ summary: reuse.summary,
264
+ });
265
+ result.stageResults[stageDefinition.id] = reusedStageResult(reuse.summary);
266
+ continue;
267
+ }
268
+ }
269
+ forceRunFromHere = true;
270
+ const stageResult = await runBuildStage({
271
+ executor: pickStageExecutor(options.executor, stageDefinition, options.resolveStageExecutor),
272
+ contextGraphPath: options.contextGraphPath,
273
+ reporter: options.reporter,
274
+ reportStep: true,
275
+ stageDefinition,
276
+ runId: options.runId,
277
+ events: options.events,
278
+ stageIndex: index,
279
+ stageTotal: stages.length,
280
+ maxValidationAttempts: options.maxStageValidationAttempts,
281
+ });
282
+ result.stageResults[stageDefinition.id] = stageResult;
283
+ if (!stageResult.ok) {
284
+ result.ok = false;
285
+ result.failedStage = stageDefinition.id;
286
+ return result;
287
+ }
288
+ }
289
+ const buildPlanValidationResult = validateContextGraph(options.contextGraphPath);
290
+ result.ok = buildPlanValidationResult.ok;
291
+ result.failedStage = buildPlanValidationResult.ok ? null : buildPlanValidationResult.stage;
292
+ result.stageResults["context-graph"] = {
293
+ ok: buildPlanValidationResult.ok,
294
+ code: buildPlanValidationResult.ok ? 0 : 1,
295
+ summary: buildPlanValidationResult.summary,
296
+ };
297
+ return result;
298
+ }
299
+ finally {
300
+ if (preserveMode !== "always" && result.ok) {
301
+ pruneStageExecutionShells(options.contextGraphPath);
302
+ }
303
+ }
304
+ }
@@ -1,2 +1,2 @@
1
- export declare const BUILD_PLAN_ARTIFACT_KINDS: readonly ["directory", "file", "runtime"];
1
+ export declare const BUILD_PLAN_ARTIFACT_KINDS: readonly ["directory", "file"];
2
2
  export type BuildPlanArtifactKind = typeof BUILD_PLAN_ARTIFACT_KINDS[number];
@@ -1,5 +1,4 @@
1
1
  export const BUILD_PLAN_ARTIFACT_KINDS = [
2
2
  "directory",
3
3
  "file",
4
- "runtime",
5
4
  ];
@@ -0,0 +1,14 @@
1
+ import { type InterfConfig } from "../../projects/interf-detect.js";
2
+ export type { BuildPlanReporter } from "../../build-plans/package/build-plan-helpers.js";
3
+ export type BuildCheck = "context-graph" | "stage";
4
+ export interface DetectedInterfTarget {
5
+ path: string;
6
+ kind: "context-graph";
7
+ engineType: "build";
8
+ config: InterfConfig;
9
+ }
10
+ export declare function detectContextGraph(cwd: string): DetectedInterfTarget | null;
11
+ export declare function createContextGraph(name: string, sourcePath: string, buildPlanId: string | undefined, sourceFolderPath: string): string;
12
+ export declare function verifyBuildCheck(check: BuildCheck, contextGraphPath: string): import("./validate-context-graph.js").ContextGraphValidation;
13
+ export { runBuildSummarize, runBuildStages, buildContextGraph, resolveBuildContext, buildExecutionStages, } from "./build-execution.js";
14
+ export type { BuildSummarizeResult, BuildResult, BuildStageExecutionDefinition, StageShellRetentionMode, ResolveStageExecutor, } from "./build-execution.js";