@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,286 @@
1
+ import { appendFileSync, existsSync, mkdirSync, readFileSync, writeFileSync, } from "node:fs";
2
+ import { basename, extname, join, relative } from "node:path";
3
+ import { appendAgentEventLog, } from "../agents/lib/logs.js";
4
+ import { ExpectedInputsFileSchema, ResourceRefSchema, SourceManifestSchema, } from "../../contracts/lib/schema.js";
5
+ import { normalizeLayerPath } from "../../contracts/lib/context-graph-layer.js";
6
+ import { listFilesRecursive, } from "../../contracts/utils/filesystem.js";
7
+ import { parseJsonFrontmatter, renderJsonFrontmatter, } from "../../contracts/utils/parse.js";
8
+ function markdownTitle(path, content) {
9
+ const parsed = parseJsonFrontmatter(content);
10
+ const title = parsed && typeof parsed.frontmatter.title === "string"
11
+ ? parsed.frontmatter.title.trim()
12
+ : "";
13
+ if (title)
14
+ return title;
15
+ const body = parsed?.body ?? content;
16
+ const heading = body.split(/\r?\n/).find((line) => /^#{1,3}\s+\S/.test(line));
17
+ if (heading)
18
+ return heading.replace(/^#{1,3}\s+/, "").trim();
19
+ return basename(path, extname(path));
20
+ }
21
+ function markdownSummary(content) {
22
+ const parsed = parseJsonFrontmatter(content);
23
+ if (parsed && typeof parsed.frontmatter.summary === "string" && parsed.frontmatter.summary.trim()) {
24
+ return parsed.frontmatter.summary.trim();
25
+ }
26
+ const body = parsed?.body ?? content;
27
+ const paragraph = body
28
+ .split(/\n\s*\n/)
29
+ .map((block) => block.replace(/\s+/g, " ").trim())
30
+ .find((block) => block.length > 0 && !block.startsWith("#"));
31
+ if (!paragraph)
32
+ return null;
33
+ return paragraph.length > 180 ? `${paragraph.slice(0, 177)}...` : paragraph;
34
+ }
35
+ function safeReadJson(path) {
36
+ try {
37
+ return JSON.parse(readFileSync(path, "utf8"));
38
+ }
39
+ catch {
40
+ return null;
41
+ }
42
+ }
43
+ function readExpectedInputs(shellRoot) {
44
+ const parsed = ExpectedInputsFileSchema.safeParse(safeReadJson(join(shellRoot, "runtime", "expected-inputs.json")));
45
+ return parsed.success ? parsed.data.expected : [];
46
+ }
47
+ function readSourceManifest(shellRoot) {
48
+ const raw = safeReadJson(join(shellRoot, "runtime", "source-manifest.json"));
49
+ const parsed = SourceManifestSchema.safeParse(raw);
50
+ return parsed.success ? parsed.data : null;
51
+ }
52
+ function readProjectIntent(shellRoot) {
53
+ const contract = safeReadJson(join(shellRoot, "runtime", "stage-contract.json"));
54
+ const intent = typeof contract?.project?.intent === "string" ? contract.project.intent.trim() : "";
55
+ return intent || "Build a task-specific Context Graph from the Project Source.";
56
+ }
57
+ function collectMarkdownResources(shellRoot, directory) {
58
+ const root = join(shellRoot, directory);
59
+ if (!existsSync(root))
60
+ return [];
61
+ return listFilesRecursive(root, (filePath) => filePath.endsWith(".md"))
62
+ .sort((left, right) => left.localeCompare(right))
63
+ .map((filePath) => {
64
+ const path = normalizeLayerPath(relative(shellRoot, filePath));
65
+ const content = readFileSync(filePath, "utf8");
66
+ const parsed = parseJsonFrontmatter(content);
67
+ const sourceRefs = sourceRefsFromFrontmatter(parsed?.frontmatter ?? {});
68
+ return ResourceRefSchema.parse({
69
+ id: `${directory}:${path.toLowerCase().replace(/[^a-z0-9]+/g, "-").replace(/^-+|-+$/g, "")}`,
70
+ role: directory === "knowledge" ? "knowledge" : "summary",
71
+ kind: directory === "knowledge" ? "knowledge.note" : "summary.note",
72
+ label: markdownTitle(path, content),
73
+ path,
74
+ source_refs: sourceRefs,
75
+ links: [],
76
+ metadata: {
77
+ ...(markdownSummary(content) ? { summary: markdownSummary(content) } : {}),
78
+ },
79
+ });
80
+ });
81
+ }
82
+ function sourceRefsFromFrontmatter(frontmatter) {
83
+ const values = [
84
+ frontmatter.source_refs,
85
+ frontmatter.source_ref,
86
+ frontmatter.source_path,
87
+ frontmatter.source,
88
+ ];
89
+ const refs = values.flatMap((value) => {
90
+ if (typeof value === "string" && value.trim())
91
+ return [value.trim()];
92
+ if (Array.isArray(value)) {
93
+ return value
94
+ .filter((item) => typeof item === "string" && item.trim().length > 0)
95
+ .map((item) => item.trim());
96
+ }
97
+ return [];
98
+ });
99
+ return [...new Set(refs)];
100
+ }
101
+ function collectSourceRefs(expected, manifest, notes) {
102
+ const refs = new Set();
103
+ for (const resource of [...expected, ...notes]) {
104
+ for (const ref of resource.source_refs)
105
+ refs.add(ref);
106
+ }
107
+ for (const file of manifest?.files ?? [])
108
+ refs.add(file.path);
109
+ return [...refs].sort((left, right) => left.localeCompare(right));
110
+ }
111
+ function markdownLink(resource) {
112
+ const path = resource.path ?? "";
113
+ return path ? `[${resource.label}](${path})` : resource.label;
114
+ }
115
+ function renderResourceList(resources, limit) {
116
+ return resources.slice(0, limit).map((resource) => {
117
+ const summary = typeof resource.metadata?.summary === "string" ? resource.metadata.summary : null;
118
+ return `- ${markdownLink(resource)}${summary ? ` - ${summary}` : ""}`;
119
+ });
120
+ }
121
+ function renderSourceRefList(sourceRefs, limit) {
122
+ return sourceRefs.slice(0, limit).map((ref) => `- \`${ref}\``);
123
+ }
124
+ function writeReviewedInputs(shellRoot, expected) {
125
+ const now = new Date().toISOString();
126
+ const reviewed = expected.map((resource) => ({
127
+ resource_id: resource.id,
128
+ decision: "used",
129
+ source_refs: resource.source_refs.length > 0 ? resource.source_refs : [resource.path ?? resource.id],
130
+ metadata: {
131
+ reviewer: "interf-native-entrypoint",
132
+ },
133
+ }));
134
+ writeFileSync(join(shellRoot, "runtime", "reviewed-inputs.json"), `${JSON.stringify({
135
+ kind: "interf-stage-reviewed-inputs",
136
+ version: 1,
137
+ generated_at: now,
138
+ stage_id: "entrypoint",
139
+ reviewed,
140
+ }, null, 2)}\n`);
141
+ }
142
+ function writeEntrypointOutputs(shellRoot) {
143
+ const intent = readProjectIntent(shellRoot);
144
+ const expected = readExpectedInputs(shellRoot);
145
+ const manifest = readSourceManifest(shellRoot);
146
+ const knowledge = collectMarkdownResources(shellRoot, "knowledge");
147
+ const summaries = collectMarkdownResources(shellRoot, "summaries");
148
+ const expectedByPath = new Map(expected.map((resource) => [resource.path, resource]));
149
+ const knowledgeForRouting = knowledge.length > 0
150
+ ? knowledge
151
+ : expected.filter((resource) => resource.role === "knowledge");
152
+ const notesForRefs = [...knowledgeForRouting, ...summaries, ...expectedByPath.values()];
153
+ const sourceRefs = collectSourceRefs(expected, manifest, notesForRefs);
154
+ const generatedAt = new Date().toISOString();
155
+ const topKnowledge = knowledgeForRouting.slice(0, 12);
156
+ const topSummaries = summaries.slice(0, 12);
157
+ const links = [
158
+ "artifacts/agent-handoff.md",
159
+ ...topKnowledge.map((resource) => resource.path).filter((path) => Boolean(path)),
160
+ ...topSummaries.slice(0, 6).map((resource) => resource.path).filter((path) => Boolean(path)),
161
+ ];
162
+ mkdirSync(join(shellRoot, "artifacts"), { recursive: true });
163
+ writeFileSync(join(shellRoot, "home.md"), [
164
+ renderJsonFrontmatter({
165
+ title: "Context Graph Home",
166
+ summary: "Primary agent entrypoint for the prepared Context Graph.",
167
+ task: intent,
168
+ source_refs: sourceRefs,
169
+ links,
170
+ generated_by: "interf-native-entrypoint",
171
+ }),
172
+ "",
173
+ "# Context Graph Home",
174
+ "",
175
+ `Project intent: ${intent}`,
176
+ "",
177
+ "Start with the task handoff, then follow the linked knowledge notes and summaries. Generated notes are routing and synthesis; original Source and source refs remain the authority for exact claims.",
178
+ "",
179
+ "## Start Here",
180
+ "",
181
+ "- [Agent handoff](artifacts/agent-handoff.md)",
182
+ ...renderResourceList(topKnowledge, 10),
183
+ "",
184
+ "## Coverage Routes",
185
+ "",
186
+ ...(topSummaries.length > 0
187
+ ? renderResourceList(topSummaries, 10)
188
+ : ["- No summary notes were available to route."]),
189
+ "",
190
+ "## Source Refs",
191
+ "",
192
+ ...(sourceRefs.length > 0
193
+ ? renderSourceRefList(sourceRefs, 20)
194
+ : ["- No source refs were recorded."]),
195
+ "",
196
+ ].join("\n"));
197
+ writeFileSync(join(shellRoot, "artifacts", "agent-handoff.md"), [
198
+ renderJsonFrontmatter({
199
+ title: "Agent Handoff",
200
+ summary: "Task-specific route through the prepared Context Graph.",
201
+ task: intent,
202
+ source_refs: sourceRefs,
203
+ handoff_type: "agent-context-handoff",
204
+ truth_mode: "source-backed routing",
205
+ verification_state: "Ready to use; follow original Source and source refs for exact claims.",
206
+ caveats: [
207
+ "Generated summaries and knowledge notes are prepared context, not replacement source material.",
208
+ "Use original Source and source refs when exact wording, table values, chart reads, dates, or provenance-sensitive claims matter.",
209
+ ],
210
+ links,
211
+ generated_at: generatedAt,
212
+ generated_by: "interf-native-entrypoint",
213
+ }),
214
+ "",
215
+ "# Agent Handoff",
216
+ "",
217
+ `Task: ${intent}`,
218
+ "",
219
+ "Use this Context Graph as prepared context. For exact claims, follow the original Source and source refs from the notes below back to the source files.",
220
+ "",
221
+ "## Useful Knowledge",
222
+ "",
223
+ ...(topKnowledge.length > 0
224
+ ? renderResourceList(topKnowledge, 12)
225
+ : ["- No knowledge notes were available."]),
226
+ "",
227
+ "## Coverage And Source Routes",
228
+ "",
229
+ ...(topSummaries.length > 0
230
+ ? renderResourceList(topSummaries, 12)
231
+ : ["- No summary notes were available."]),
232
+ "",
233
+ "## Source Refs To Recheck",
234
+ "",
235
+ ...(sourceRefs.length > 0
236
+ ? renderSourceRefList(sourceRefs, 30)
237
+ : ["- No source refs were recorded."]),
238
+ "",
239
+ ].join("\n"));
240
+ writeReviewedInputs(shellRoot, expected);
241
+ }
242
+ function appendStatus(options, line) {
243
+ appendAgentEventLog(options?.eventLogPath, {
244
+ type: "native-stage.status",
245
+ message: line,
246
+ });
247
+ options?.onStatus?.(line);
248
+ if (options?.statusLogPath) {
249
+ appendFileSync(options.statusLogPath, `${line}\n`);
250
+ }
251
+ }
252
+ function appendNativeEvent(options, event) {
253
+ appendAgentEventLog(options?.eventLogPath, {
254
+ type: "native-stage.event",
255
+ ...event,
256
+ });
257
+ }
258
+ export function createNativeEntrypointExecutor() {
259
+ return {
260
+ kind: "managed",
261
+ name: "interf-native-entrypoint",
262
+ displayName: "Interf native entrypoint",
263
+ command: null,
264
+ execute(rootPath, _prompt, options) {
265
+ try {
266
+ appendNativeEvent(options, { phase: "started", root_path: rootPath });
267
+ appendStatus(options, "STATUS: loaded entrypoint stage.");
268
+ appendStatus(options, "STATUS: reading declared inputs.");
269
+ writeEntrypointOutputs(rootPath);
270
+ appendStatus(options, "STATUS: writing declared outputs.");
271
+ appendStatus(options, "DONE: entrypoint complete.");
272
+ appendNativeEvent(options, { phase: "succeeded", root_path: rootPath });
273
+ return Promise.resolve(0);
274
+ }
275
+ catch (error) {
276
+ appendStatus(options, `ERROR: native entrypoint failed: ${error instanceof Error ? error.message : String(error)}`);
277
+ appendNativeEvent(options, {
278
+ phase: "failed",
279
+ root_path: rootPath,
280
+ error: error instanceof Error ? error.message : String(error),
281
+ });
282
+ return Promise.resolve(1);
283
+ }
284
+ },
285
+ };
286
+ }
@@ -0,0 +1,2 @@
1
+ export declare function clearBuildRuntimeDerivedArtifacts(contextGraphPath: string): void;
2
+ export declare function resetBuildGeneratedState(contextGraphPath: string, scope?: "build" | "all"): void;
@@ -0,0 +1,62 @@
1
+ import { existsSync, readdirSync, rmSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { initializeBuildRuntimeState } from "./state.js";
4
+ import { stageExecutionShellsRoot, testRootForContextGraph, testTargetsRootForContextGraph, buildPlanImprovementLoopsRoot, contextGraphQueryAcceptanceRoot, contextGraphRuntimeRoot, contextGraphRuntimeLogsRoot, } from "./context-graph-paths.js";
5
+ function removeIfExists(path) {
6
+ if (existsSync(path)) {
7
+ rmSync(path, { recursive: true, force: true });
8
+ }
9
+ }
10
+ const BUILD_RUNTIME_RESET_ENTRIES = [
11
+ "state.json",
12
+ "health.json",
13
+ "view-spec.json",
14
+ "inventory.json",
15
+ "run.json",
16
+ "source-manifest.json",
17
+ "source-manifest.audit.json",
18
+ "source-files.json",
19
+ "source-state.json",
20
+ "stage-contract.json",
21
+ "stages",
22
+ ];
23
+ const PRESERVED_CONTEXT_GRAPH_ROOTS = new Set([
24
+ ".agents",
25
+ ".claude",
26
+ ".codex",
27
+ ".cursor",
28
+ ".gitignore",
29
+ ".interf",
30
+ ".interfignore",
31
+ "AGENTS.md",
32
+ "CLAUDE.md",
33
+ ]);
34
+ export function clearBuildRuntimeDerivedArtifacts(contextGraphPath) {
35
+ const runtimeRoot = contextGraphRuntimeRoot(contextGraphPath);
36
+ for (const entry of BUILD_RUNTIME_RESET_ENTRIES) {
37
+ removeIfExists(join(runtimeRoot, entry));
38
+ }
39
+ removeIfExists(contextGraphQueryAcceptanceRoot(contextGraphPath));
40
+ }
41
+ function resetBuildGeneratedOutputs(contextGraphPath) {
42
+ for (const entry of readdirSync(contextGraphPath)) {
43
+ if (PRESERVED_CONTEXT_GRAPH_ROOTS.has(entry))
44
+ continue;
45
+ removeIfExists(join(contextGraphPath, entry));
46
+ }
47
+ }
48
+ export function resetBuildGeneratedState(contextGraphPath, scope = "build") {
49
+ resetBuildGeneratedOutputs(contextGraphPath);
50
+ // Stage reuse fingerprints live in state.json, so this is the load-bearing
51
+ // build reset path that forces a post-reset build to re-run every stage.
52
+ clearBuildRuntimeDerivedArtifacts(contextGraphPath);
53
+ initializeBuildRuntimeState(contextGraphPath);
54
+ if (scope === "all") {
55
+ removeIfExists(stageExecutionShellsRoot(contextGraphPath));
56
+ removeIfExists(buildPlanImprovementLoopsRoot(contextGraphPath));
57
+ removeIfExists(contextGraphRuntimeLogsRoot(contextGraphPath));
58
+ removeIfExists(join(contextGraphRuntimeRoot(contextGraphPath), "run-history.jsonl"));
59
+ removeIfExists(testRootForContextGraph(contextGraphPath));
60
+ removeIfExists(testTargetsRootForContextGraph(contextGraphPath));
61
+ }
62
+ }
@@ -1,9 +1,10 @@
1
- import { BUILD_PLAN_SCHEMA_FILE } from "./verifiable-context-schema.js";
1
+ import { BUILD_PLAN_SCHEMA_FILE } from "./context-graph-schema.js";
2
2
  export function buildRuntimeStageContract(options) {
3
3
  const localSkillDocs = options.localSkillDocs ?? [];
4
4
  const buildPlanNotes = options.buildPlanNotes ?? [];
5
5
  return {
6
6
  instructions: options.instructions,
7
+ project: options.project,
7
8
  counts: {
8
9
  ...(options.counts ?? {}),
9
10
  local_skill_docs: localSkillDocs.length,
@@ -19,16 +20,21 @@ export function buildRuntimeStageContract(options) {
19
20
  writes: options.stageWriteArtifacts,
20
21
  write_contracts: options.stageWriteContracts ?? [],
21
22
  },
23
+ context_checks: options.contextChecks ?? [],
22
24
  policies: {
23
25
  execution_mode: "deterministic",
24
26
  status_prefixes: ["STATUS:", "DONE:", "BLOCKED:", "ERROR:"],
25
27
  notes: [
26
- `This is the "${options.stageLabel}" stage for the verifiable context "${options.verifiableContextName}".`,
28
+ `This is the "${options.stageLabel}" stage for the context graph "${options.contextGraphName}".`,
29
+ options.project.intent
30
+ ? `Project intent: ${options.project.intent}`
31
+ : "Project intent is not set. Keep outputs source-grounded and explicitly note missing task focus where it limits usefulness.",
27
32
  "The Build Plan is the authoritative plan layer for this run.",
28
- `Use \`build-plan/${BUILD_PLAN_SCHEMA_FILE}\` as the deterministic context-interface reference for this verifiable context.`,
29
- "Honor the declared read and write artifacts instead of inventing a parallel process.",
33
+ `Use \`build-plan/${BUILD_PLAN_SCHEMA_FILE}\` as the deterministic requested output contract for this context graph.`,
34
+ "Use `context_checks[]` only as legacy coverage-goal context; StageManifest and GraphManifest metrics are the readiness proof.",
35
+ "Honor the declared read and write outputs instead of inventing a parallel process.",
30
36
  "Only create or update files that fall under the declared write targets for this stage.",
31
- "Before emitting DONE, satisfy every check listed under `artifacts.write_contracts[]` for the write Artifacts this stage owns.",
37
+ "Before emitting DONE, satisfy every check listed under `artifacts.write_contracts[]` for the write outputs this stage owns.",
32
38
  "Interf writes `.interf/runtime/` ledgers such as run, state, health, and view-spec files. Read them if needed, but do not create, edit, or replace them in this stage unless the contract explicitly marks a runtime artifact as stage-owned.",
33
39
  "Keep scratch extraction commands single-purpose and non-destructive. Avoid wildcard cleanup and multi-command chains.",
34
40
  ...buildPlanNotes,
@@ -36,8 +42,8 @@ export function buildRuntimeStageContract(options) {
36
42
  ? [
37
43
  "Read any local instruction docs listed in the contract before you write artifacts or declare the stage complete.",
38
44
  options.instructions.effective_mode === "override"
39
- ? "Local stage docs replace the default Build Plan guidance for this run, but they still do not bypass required writes, declared proof artifacts, or deterministic runtime reconciliation."
40
- : "Local stage docs can refine the stage behavior, but they do not bypass required writes, declared proof artifacts, or deterministic runtime reconciliation.",
45
+ ? "Local stage docs replace the default Build Plan guidance for this run, but they still do not bypass required writes, declared evidence artifacts, or deterministic runtime reconciliation."
46
+ : "Local stage docs can refine the stage behavior, but they do not bypass required writes, declared evidence artifacts, or deterministic runtime reconciliation.",
41
47
  ]
42
48
  : []),
43
49
  ],
@@ -0,0 +1,7 @@
1
+ import { type ExecutionInventory, type ExecutionInventoryEntry } from "./lib/schema.js";
2
+ export declare function emptyExecutionInventory(): ExecutionInventory;
3
+ export declare function buildInventoryFromEntries(entries: ExecutionInventoryEntry[], stage?: string): ExecutionInventory;
4
+ export declare function buildInventoryEntryCount(inventory: ExecutionInventory | null): number;
5
+ export declare function buildInventoryTotal(inventory: ExecutionInventory | null): number;
6
+ export declare function buildInventoryFrontmatterScannedCount(inventory: ExecutionInventory | null): number;
7
+ export declare function buildInventoryAbstractCoverageCount(inventory: ExecutionInventory | null): number;
@@ -1,6 +1,6 @@
1
- export function emptyRuntimeInventory() {
1
+ export function emptyExecutionInventory() {
2
2
  return {
3
- kind: "verifiable-context-runtime-ledger",
3
+ kind: "context-graph-runtime-ledger",
4
4
  version: 1,
5
5
  entries: [],
6
6
  total: 0,
@@ -8,7 +8,7 @@ export function emptyRuntimeInventory() {
8
8
  }
9
9
  export function buildInventoryFromEntries(entries, stage) {
10
10
  return {
11
- kind: "verifiable-context-runtime-ledger",
11
+ kind: "context-graph-runtime-ledger",
12
12
  version: 1,
13
13
  ...(stage ? { stage } : {}),
14
14
  entries,
@@ -0,0 +1,3 @@
1
+ export declare function promptLogPath(dirPath: string, runId: string): string;
2
+ export declare function eventLogPath(dirPath: string, runId: string): string;
3
+ export declare function statusLogPath(dirPath: string, runId: string): string;
@@ -0,0 +1,16 @@
1
+ import { join } from "node:path";
2
+ import { contextGraphRuntimeLogsRoot } from "./context-graph-paths.js";
3
+ // Canonical per-run log-file builders for stage execution without a shell.
4
+ // They share the runtime logs root with the archived stage contract
5
+ // (contextGraphRuntimeArchivedStageContractPath) and use the same
6
+ // `<runId>.<suffix>` naming. Shell-backed runs use the parallel
7
+ // shell-workspace builders instead.
8
+ export function promptLogPath(dirPath, runId) {
9
+ return join(contextGraphRuntimeLogsRoot(dirPath), `${runId}.prompt.txt`);
10
+ }
11
+ export function eventLogPath(dirPath, runId) {
12
+ return join(contextGraphRuntimeLogsRoot(dirPath), `${runId}.events.ndjson`);
13
+ }
14
+ export function statusLogPath(dirPath, runId) {
15
+ return join(contextGraphRuntimeLogsRoot(dirPath), `${runId}.status.log`);
16
+ }
@@ -8,7 +8,7 @@ export function buildStagePrompt(instructions, contractPath, statusLines) {
8
8
  ]
9
9
  : instructions.effective_mode === "extend"
10
10
  ? [
11
- "Use the current Build Plan docs as the default plan for this run.",
11
+ "Use the current Build Plan docs as the default instructions for this run.",
12
12
  "Then apply any additional local stage instruction docs referenced by the contract as stage-specific extensions.",
13
13
  ]
14
14
  : [
@@ -21,18 +21,21 @@ export function buildStagePrompt(instructions, contractPath, statusLines) {
21
21
  "The user has already invoked this stage through the Interf CLI. Execute it now.",
22
22
  "Do not ask what the user wants, offer help, list tools, or wait for another instruction.",
23
23
  `Read \`${contractPath}\` first. It is the authoritative contract for this stage.`,
24
- "If `runtime/paths.json` exists in this shell, read it next. It maps Build Plan Artifact ids onto the shell-local `inputs/` and `outputs/` mounts for this stage.",
25
- "For file Artifact mounts, `runtime/paths.json` also gives the exact file path inside the `inputs/` or `outputs/` mount root.",
24
+ "Use `project.intent` in that contract as the task focus for task-aware summaries, knowledge, entrypoints, and task note work.",
25
+ "Use `runtime/expected-inputs.json` as the coverage contract and write `runtime/reviewed-inputs.json` before DONE.",
26
+ "If `runtime/paths.json` exists in this shell, read it next. It maps Build Plan output ids onto the shell-local `inputs/` and `outputs/` mounts for this stage.",
27
+ "For file output mounts, `runtime/paths.json` also gives the exact file path inside the `inputs/` or `outputs/` mount root.",
28
+ "Before DONE, run `node runtime/check-stage.mjs` from the shell root and fix outputs until it prints `VALID:`.",
26
29
  "Honor the contract's counts, artifact paths, and policies instead of inventing another Build Plan.",
27
- "The contract's `artifacts.write_contracts[]` lists the checks Interf will run against the Artifacts this stage writes. Treat those checks as required output constraints.",
28
- "Read only the files named by the contract's `artifacts.reads` list plus any paths they explicitly direct you to open.",
30
+ "The contract's `artifacts.write_contracts[]` lists the checks Interf will run against the outputs this stage writes. Treat those checks as required output constraints.",
31
+ "Read only the files named by the contract's `artifacts.reads` list, `runtime/source-manifest.json`, `runtime/stage-inputs.json`, `runtime/expected-inputs.json`, and any paths those files explicitly assign to this stage. `runtime/source-state.json` is compatibility-only and is not stage authority.",
29
32
  "Prefer direct file-reading and search tools over shell commands when you inspect inputs, docs, or generated outputs.",
30
33
  "Do not use shell helpers like `cat`, `sed`, `ls`, or `find` for routine file inspection if a native read/search tool can do the same job.",
31
34
  "If the contract lists `instructions.local_docs`, open every one of those files before you write artifacts or declare the stage complete.",
32
- "If `AGENTS.md` is listed in the contract, use it only for verifiable-context routing that is directly relevant to this stage.",
33
- "`.interf/runtime/run.json`, `.interf/runtime/state.json`, `.interf/runtime/health.json`, and `.interf/runtime/view-spec.json` are runtime artifacts written by Interf. You may read them, but do not create, edit, or replace them unless the contract explicitly marks a different proof artifact as stage-owned.",
35
+ "If `AGENTS.md` is listed in the contract, use it only for context-graph routing that is directly relevant to this stage.",
36
+ "`.interf/runtime/run.json`, `.interf/runtime/state.json`, `.interf/runtime/health.json`, and `.interf/runtime/view-spec.json` are runtime artifacts written by Interf. You may read them, but do not create, edit, or replace them unless the contract explicitly marks a different evidence artifact as stage-owned.",
34
37
  "If a contract-listed output file does not exist yet, create it in one whole-file write. Do not attempt patch-style edits against a missing runtime path.",
35
- "Stay inside the current verifiable context. Do not try to open repo docs, repo source files, or other paths outside this context unless the stage contract explicitly requires them.",
38
+ "Stay inside the current context graph. Do not try to open repo docs, repo source files, or other paths outside this context unless the stage contract explicitly requires them.",
36
39
  instructions.effective_mode === "override"
37
40
  ? "Do not depend on any repo-root or globally installed skill cache for this run. Local stage instruction docs are the primary Build Plan layer for this run."
38
41
  : "Do not depend on any repo-root or globally installed skill cache for this run. Use the current Build Plan stage docs and the contract as the default behavior.",
@@ -43,7 +46,7 @@ export function buildStagePrompt(instructions, contractPath, statusLines) {
43
46
  "Before any long-running source inspection or shell-based helper step, emit a STATUS: line that names the current subtask.",
44
47
  "If work stays in progress, do not remain silent for more than about one minute. Emit another STATUS: line when you switch files, page groups, targets, or extraction passes.",
45
48
  "If you respond conversationally instead of executing the stage, the run will be treated as failed.",
46
- "As soon as the required proof artifacts are complete, stop. Do not keep browsing or auditing after the contract is satisfied.",
49
+ "As soon as the required evidence artifacts are complete, stop. Do not keep browsing or auditing after the contract is satisfied.",
47
50
  ...statusLines,
48
51
  ].join("\n");
49
52
  }
@@ -1,2 +1,2 @@
1
1
  import { type BuildPlanStageDefinition } from "../../build-plans/package/build-plan-definitions.js";
2
- export declare function reconcileBuildStageRun(dirPath: string, stage: Pick<BuildPlanStageDefinition, "id" | "contractType" | "reads" | "writes">): boolean;
2
+ export declare function reconcileBuildStageRun(dirPath: string, stage: BuildPlanStageDefinition): boolean;
@@ -1,16 +1,18 @@
1
- import { existsSync, readFileSync, statSync, writeFileSync, } from "node:fs";
1
+ import { existsSync, readFileSync, statSync, } from "node:fs";
2
2
  import { extname, join, relative } from "node:path";
3
3
  import { listFilesRecursive } from "../../contracts/utils/filesystem.js";
4
- import { verifiableContextArtifactAbsolutePath, findBuildPlanContextArtifact, readBuildPlanContextFile, } from "./verifiable-context-schema.js";
4
+ import { contextGraphArtifactAbsolutePath, findBuildPlanContextArtifact, readBuildPlanContextFile, } from "./context-graph-schema.js";
5
5
  import { parseJsonFrontmatter } from "../../contracts/utils/parse.js";
6
- import { loadRuntimeRun } from "./runtime.js";
7
- import { initVerifiableContextState, loadState, refreshVerifiableContextArtifacts, saveState, } from "./state.js";
6
+ import { loadExecutionStageLedger } from "./runtime.js";
7
+ import { initContextGraphState, loadState, refreshContextGraphArtifacts, saveState, } from "./state.js";
8
8
  import { buildInventoryFromEntries } from "./runtime-inventory.js";
9
9
  import { STANDARD_EVIDENCE_FRONTMATTER_KEYS, } from "../../contracts/lib/schema.js";
10
- import { verifiableContextRuntimeRoot, buildPlanPackagePathForVerifiableContext } from "./verifiable-context-paths.js";
10
+ import { contextGraphRuntimeRoot, buildPlanPackagePathForContextGraph } from "./context-graph-paths.js";
11
11
  import { extractSynthAbstract, isOutputMarkdownFile } from "./validate.js";
12
+ import { writeJsonAtomic } from "./atomic-fs.js";
13
+ import { computeStageFingerprint } from "./stage-reuse.js";
12
14
  function readActiveRunStartedAtMs(dirPath) {
13
- const run = loadRuntimeRun(dirPath);
15
+ const run = loadExecutionStageLedger(dirPath);
14
16
  if (!run)
15
17
  return null;
16
18
  const startedAtMs = Date.parse(run.started_at);
@@ -39,7 +41,7 @@ function anyPathUpdatedSince(absolutePath, sinceMs) {
39
41
  return false;
40
42
  }
41
43
  function artifactCount(dirPath, artifactPath, kind) {
42
- const absolutePath = verifiableContextArtifactAbsolutePath(dirPath, { path: artifactPath });
44
+ const absolutePath = contextGraphArtifactAbsolutePath(dirPath, { path: artifactPath });
43
45
  if (!existsSync(absolutePath))
44
46
  return 0;
45
47
  if (kind === "file")
@@ -53,8 +55,8 @@ function summaryAbstract(content) {
53
55
  return extractSynthAbstract(parsed.frontmatter, parsed.body);
54
56
  }
55
57
  function listZoneArtifacts(dirPath, artifact) {
56
- const absolutePath = verifiableContextArtifactAbsolutePath(dirPath, artifact);
57
- if (!existsSync(absolutePath) || artifact.kind === "runtime")
58
+ const absolutePath = contextGraphArtifactAbsolutePath(dirPath, artifact);
59
+ if (!existsSync(absolutePath))
58
60
  return [];
59
61
  if (artifact.kind === "file") {
60
62
  try {
@@ -95,15 +97,15 @@ function buildInventoryMetadata(options) {
95
97
  return metadata;
96
98
  }
97
99
  function buildStageInventoryEntries(dirPath, stage) {
98
- const schema = readBuildPlanContextFile(buildPlanPackagePathForVerifiableContext(dirPath));
100
+ const schema = readBuildPlanContextFile(buildPlanPackagePathForContextGraph(dirPath));
99
101
  if (!schema)
100
102
  return [];
101
103
  const readableInputArtifacts = stage.reads
102
104
  .map((artifactId) => findBuildPlanContextArtifact(schema, artifactId))
103
- .filter((artifact) => artifact !== null && artifact.kind !== "runtime");
105
+ .filter((artifact) => artifact !== null);
104
106
  const outputArtifacts = stage.writes
105
107
  .map((artifactId) => findBuildPlanContextArtifact(schema, artifactId))
106
- .filter((artifact) => artifact !== null && artifact.kind !== "runtime");
108
+ .filter((artifact) => artifact !== null);
107
109
  if (outputArtifacts.length === 0)
108
110
  return [];
109
111
  const entries = [];
@@ -148,16 +150,16 @@ function buildStageInventoryEntries(dirPath, stage) {
148
150
  return entries.sort((left, right) => `${left.output_artifact}:${left.output_path}`.localeCompare(`${right.output_artifact}:${right.output_path}`));
149
151
  }
150
152
  function writeStageInventory(dirPath, stageId, entries) {
151
- writeFileSync(join(verifiableContextRuntimeRoot(dirPath), "inventory.json"), JSON.stringify(buildInventoryFromEntries(entries, stageId), null, 2) + "\n");
153
+ writeJsonAtomic(join(contextGraphRuntimeRoot(dirPath), "inventory.json"), buildInventoryFromEntries(entries, stageId));
152
154
  }
153
155
  function activeRunCounts(dirPath) {
154
- return { ...(loadRuntimeRun(dirPath)?.counts ?? {}) };
156
+ return { ...(loadExecutionStageLedger(dirPath)?.counts ?? {}) };
155
157
  }
156
158
  export function reconcileBuildStageRun(dirPath, stage) {
157
159
  const startedAtMs = readActiveRunStartedAtMs(dirPath);
158
160
  if (startedAtMs === null)
159
161
  return false;
160
- const schema = readBuildPlanContextFile(buildPlanPackagePathForVerifiableContext(dirPath));
162
+ const schema = readBuildPlanContextFile(buildPlanPackagePathForContextGraph(dirPath));
161
163
  if (!schema)
162
164
  return false;
163
165
  const writeArtifacts = stage.writes
@@ -165,31 +167,33 @@ export function reconcileBuildStageRun(dirPath, stage) {
165
167
  .filter((artifact) => artifact !== null);
166
168
  if (writeArtifacts.length === 0)
167
169
  return false;
168
- if (!writeArtifacts.some((artifact) => anyPathUpdatedSince(verifiableContextArtifactAbsolutePath(dirPath, artifact), startedAtMs))) {
170
+ if (!writeArtifacts.some((artifact) => anyPathUpdatedSince(contextGraphArtifactAbsolutePath(dirPath, artifact), startedAtMs))) {
169
171
  return false;
170
172
  }
171
173
  writeStageInventory(dirPath, stage.id, buildStageInventoryEntries(dirPath, stage));
172
174
  const currentState = {
173
- ...initVerifiableContextState(),
175
+ ...initContextGraphState(),
174
176
  ...(loadState(dirPath) ?? {}),
175
177
  stages: {
176
178
  ...(loadState(dirPath)?.stages ?? {}),
177
179
  },
178
180
  };
179
181
  const now = new Date().toISOString();
182
+ const fingerprint = computeStageFingerprint(dirPath, stage);
180
183
  currentState.stages[stage.id] = {
181
184
  contract_type: stage.contractType,
182
185
  status: "succeeded",
183
- started_at: loadRuntimeRun(dirPath)?.started_at ?? now,
186
+ ...(fingerprint ? { fingerprint } : {}),
187
+ started_at: loadExecutionStageLedger(dirPath)?.started_at ?? now,
184
188
  finished_at: now,
185
189
  counts: activeRunCounts(dirPath),
186
190
  artifact_counts: Object.fromEntries(writeArtifacts.map((artifact) => [artifact.id, artifactCount(dirPath, artifact.path, artifact.kind)])),
187
191
  artifacts: writeArtifacts.map((artifact) => artifact.kind === "file" ? artifact.path : `${artifact.path}/`),
188
- summary: loadRuntimeRun(dirPath)?.summary ?? null,
189
- run_id: loadRuntimeRun(dirPath)?.run_id ?? null,
192
+ summary: loadExecutionStageLedger(dirPath)?.summary ?? null,
193
+ run_id: loadExecutionStageLedger(dirPath)?.run_id ?? null,
190
194
  };
191
195
  currentState.last_build = now;
192
196
  saveState(dirPath, currentState);
193
- refreshVerifiableContextArtifacts(dirPath, { ensureViewSpec: true });
197
+ refreshContextGraphArtifacts(dirPath, { ensureViewSpec: true });
194
198
  return true;
195
199
  }
@@ -0,0 +1,10 @@
1
+ import { type ExecutionStageLedger, type RuntimeStageContract } from "./lib/schema.js";
2
+ import { type ExecutionStageLedgerPatch, type RuntimeStageExecutionOptions } from "./runtime-types.js";
3
+ export declare function loadExecutionStageLedger(dirPath: string): ExecutionStageLedger | null;
4
+ export declare function saveExecutionStageLedger(dirPath: string, run: ExecutionStageLedger): void;
5
+ export declare function writeStageContract(dirPath: string, contract: RuntimeStageContract): string;
6
+ export declare function runExecutorStage(options: RuntimeStageExecutionOptions): Promise<number>;
7
+ export declare function beginExecutionStageLedger(dirPath: string, run: ExecutionStageLedger): ExecutionStageLedger;
8
+ export declare function updateExecutionStageLedger(dirPath: string, patch: ExecutionStageLedgerPatch): ExecutionStageLedger | null;
9
+ export declare function markExecutionStageLedgerFailedAfterValidation(dirPath: string, summary: string): ExecutionStageLedger | null;
10
+ export declare function markExecutionStageLedgerSucceededAfterValidation(dirPath: string, summary: string): ExecutionStageLedger | null;