@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
@@ -2,42 +2,43 @@ import { cpSync, existsSync, mkdirSync, mkdtempSync, rmSync } from "node:fs";
2
2
  import { tmpdir } from "node:os";
3
3
  import { dirname, join } from "node:path";
4
4
  import chalk from "chalk";
5
- import { buildVerifiableContext, } from "./build/build-plan-runs.js";
6
- import { readInterfConfig } from "../project/interf.js";
7
- import { resolveLocalExecutor, } from "./agents/lib/executors.js";
5
+ import { buildContextGraph, } from "./build/build-plan-runs.js";
6
+ import { readInterfConfig } from "../projects/interf.js";
7
+ import { buildRuntimeExecutorInfo, resolveLocalExecutor, } from "./agents/lib/executors.js";
8
8
  import { formatAgentExecutionProfile } from "./agents/lib/execution-profile.js";
9
9
  import { loadAgentsRegistry } from "./agents/registry.js";
10
10
  import { buildRoleExecutorBundle } from "./agents/role-executors.js";
11
11
  import { clearBuildRuntimeDerivedArtifacts, } from "./build/reset.js";
12
12
  import { formatActiveBuildPlanStageLabel, resolveRequiredBuildPlanFromConfig, } from "../build-plans/package/build-plan-definitions.js";
13
13
  import { createRunEventId, createRunEventTimestamp, } from "./execution/events.js";
14
- import { loadVerifiableContextPreparationConfig, resolvePreparationBuildMaxAttempts, resolvePreparationBuildMaxLoops, } from "../project/source-config.js";
14
+ import { loadContextGraphProjectConfig, resolveBuildMaxAttempts, resolveBuildMaxLoops, buildTestSpecFromSourceFolderConfig, } from "../projects/source-config.js";
15
15
  import { runBuildPlanImprovementLoop } from "../build-plans/authoring/build-plan-improvement.js";
16
- import { stageExecutionShellsRoot, buildPlanPackagePathForVerifiableContext, } from "./build/verifiable-context-paths.js";
17
- import { listBuildPlanContextArtifacts, readBuildPlanContextFile } from "./build/verifiable-context-schema.js";
16
+ import { stageExecutionShellsRoot, buildPlanPackagePathForContextGraph, } from "./build/context-graph-paths.js";
17
+ import { listBuildPlanContextArtifacts, readBuildPlanContextFile } from "./build/context-graph-schema.js";
18
18
  import { initializeBuildRuntimeState } from "./build/state.js";
19
- import { readinessPassRate, runReadinessChecksForExecutor, runSavedVerifiableContextCheck, } from "./verify/readiness-check-run.js";
19
+ import { benchmarkPassRate, runBenchmarkForExecutor, runSavedContextGraphBenchmark, } from "./verify/benchmark-run.js";
20
20
  import { runBuildPlanAuthoringDraft, } from "../build-plans/authoring/build-plan-authoring.js";
21
- import { draftReadinessChecks, } from "./readiness-check-draft.js";
21
+ import { draftBenchmarkQuestions, } from "./benchmark-question-draft.js";
22
+ import { asProjectDataDir, projectServiceJobShellsRoot, } from "../contracts/lib/project-paths.js";
22
23
  import { planActionProposalWithExecutor, } from "./action-planner.js";
23
- import { ActionProposalPlanSchema, } from "./lib/schema.js";
24
- function printBuildFailure(verifiableContextPath, failedStage) {
25
- resolveRequiredBuildPlanFromConfig(readInterfConfig(verifiableContextPath), `.interf/interf.json for ${verifiableContextPath}`);
24
+ import { ActionProposalPlanSchema, } from "./schemas/index.js";
25
+ function printBuildFailure(contextGraphPath, failedStage) {
26
+ resolveRequiredBuildPlanFromConfig(readInterfConfig(contextGraphPath), `.interf/interf.json for ${contextGraphPath}`);
26
27
  let failedStageLabel = failedStage ? `Stage "${failedStage}"` : "Build";
27
28
  try {
28
- failedStageLabel = formatActiveBuildPlanStageLabel(verifiableContextPath, failedStage ?? "build");
29
+ failedStageLabel = formatActiveBuildPlanStageLabel(contextGraphPath, failedStage ?? "build");
29
30
  }
30
31
  catch {
31
32
  // Keep the original failure visible even when the failure is outside a declared Build Plan stage.
32
33
  }
33
34
  console.log(chalk.red(` ${failedStageLabel} failed.`));
34
35
  }
35
- function testScore(outcome) {
36
+ export function testScore(outcome) {
36
37
  return (outcome.result.passedCases * 1000) + outcome.result.passedChecks;
37
38
  }
38
- async function buildVerifiableContextWithReporter(executor, verifiableContextPath, options = {}) {
39
+ async function buildContextGraphWithReporter(executor, contextGraphPath, options = {}) {
39
40
  console.log();
40
- console.log(chalk.bold(` ${options.heading ?? "Building Verifiable Context..."}`));
41
+ console.log(chalk.bold(` ${options.heading ?? "Building Context Graph..."}`));
41
42
  const profileLabel = formatAgentExecutionProfile(executor.executionProfile);
42
43
  if (profileLabel) {
43
44
  console.log(chalk.dim(` Execution profile: ${profileLabel}`));
@@ -47,27 +48,28 @@ async function buildVerifiableContextWithReporter(executor, verifiableContextPat
47
48
  line: (message) => console.log(chalk.dim(` ${message}`)),
48
49
  blankLine: () => console.log(),
49
50
  };
50
- const result = await buildVerifiableContext({
51
+ const result = await buildContextGraph({
51
52
  executor,
52
53
  resolveStageExecutor: options.resolveStageExecutor,
53
- verifiableContextPath,
54
+ contextGraphPath,
54
55
  reporter,
55
56
  preserveStageShells: options.preserveStageShells,
56
57
  runId: options.runId,
57
58
  events: options.events,
59
+ maxStageValidationAttempts: options.maxStageValidationAttempts,
58
60
  });
59
61
  if (!result.ok)
60
62
  return result;
61
63
  console.log();
62
- console.log(chalk.green(` ${options.successMessage ?? "Verifiable context ready."}`));
64
+ console.log(chalk.green(` ${options.successMessage ?? "Context Graph ready."}`));
63
65
  return result;
64
66
  }
65
- function printSavedReadinessOutcome(prefix, outcome) {
67
+ function printSavedBenchmarkOutcome(prefix, outcome) {
66
68
  const color = outcome.result.ok ? chalk.green : chalk.red;
67
69
  const status = outcome.result.ok ? chalk.green("PASS") : chalk.red("FAIL");
68
70
  console.log(chalk.bold(` ${prefix}`));
69
71
  console.log();
70
- console.log(color(` ${status} ${outcome.result.passedCases}/${outcome.result.totalCases} readiness checks`));
72
+ console.log(color(` ${status} ${outcome.result.passedCases}/${outcome.result.totalCases} benchmark checks`));
71
73
  console.log();
72
74
  for (const [index, caseResult] of outcome.result.caseResults.entries()) {
73
75
  const caseStatus = caseResult.ok ? chalk.green("PASS") : chalk.red("FAIL");
@@ -85,10 +87,9 @@ function printSavedReadinessOutcome(prefix, outcome) {
85
87
  }
86
88
  console.log(chalk.dim(` Saved run: ${outcome.displayRunPath ?? outcome.runPath}`));
87
89
  }
88
- function bestVariationRestorePaths(verifiableContextPath) {
89
- const schema = readBuildPlanContextFile(buildPlanPackagePathForVerifiableContext(verifiableContextPath));
90
+ function bestVariationRestorePaths(contextGraphPath) {
91
+ const schema = readBuildPlanContextFile(buildPlanPackagePathForContextGraph(contextGraphPath));
90
92
  const artifactPaths = (schema ? listBuildPlanContextArtifacts(schema) : [])
91
- .filter((artifact) => artifact.kind !== "runtime")
92
93
  .map((artifact) => artifact.path);
93
94
  return [
94
95
  "AGENTS.md",
@@ -114,45 +115,70 @@ function copyRelativePathIfPresent(sourceRoot, targetRoot, relativePath) {
114
115
  errorOnExist: false,
115
116
  });
116
117
  }
117
- function snapshotBestBuildState(verifiableContextPath) {
118
- const snapshotRoot = mkdtempSync(join(tmpdir(), "interf-build-attempt-"));
119
- const snapshotPath = join(snapshotRoot, "verifiable-context");
120
- for (const relativePath of bestVariationRestorePaths(verifiableContextPath)) {
121
- copyRelativePathIfPresent(verifiableContextPath, snapshotPath, relativePath);
118
+ function captureBestBuildState(contextGraphPath) {
119
+ const backupRoot = mkdtempSync(join(tmpdir(), "interf-build-attempt-"));
120
+ const backupPath = join(backupRoot, "context-graph");
121
+ for (const relativePath of bestVariationRestorePaths(contextGraphPath)) {
122
+ copyRelativePathIfPresent(contextGraphPath, backupPath, relativePath);
122
123
  }
123
- return snapshotPath;
124
+ return backupPath;
124
125
  }
125
- function restoreBestBuildState(snapshotPath, verifiableContextPath) {
126
- for (const relativePath of bestVariationRestorePaths(verifiableContextPath)) {
127
- rmSync(join(verifiableContextPath, relativePath), { recursive: true, force: true });
128
- copyRelativePathIfPresent(snapshotPath, verifiableContextPath, relativePath);
126
+ function restoreBestBuildState(backupPath, contextGraphPath) {
127
+ for (const relativePath of bestVariationRestorePaths(contextGraphPath)) {
128
+ rmSync(join(contextGraphPath, relativePath), { recursive: true, force: true });
129
+ copyRelativePathIfPresent(backupPath, contextGraphPath, relativePath);
130
+ }
131
+ // Restoring a changed Build Plan must invalidate stage fingerprints; the next
132
+ // build has to validate the restored graph against the restored Plan from zero.
133
+ clearBuildRuntimeDerivedArtifacts(contextGraphPath);
134
+ initializeBuildRuntimeState(contextGraphPath);
135
+ }
136
+ export function createVariationBestTracker() {
137
+ return { outcome: null, backupPath: null, attempt: 0, variation: 0 };
138
+ }
139
+ export function considerVariationBest(tracker, variation, result, prune) {
140
+ if (result.bestOutcome &&
141
+ result.bestGraphBackupPath &&
142
+ (!tracker.outcome || testScore(result.bestOutcome) > testScore(tracker.outcome))) {
143
+ if (tracker.backupPath) {
144
+ prune(tracker.backupPath);
145
+ }
146
+ tracker.outcome = result.bestOutcome;
147
+ tracker.backupPath = result.bestGraphBackupPath;
148
+ tracker.attempt = result.bestAttempt;
149
+ tracker.variation = variation;
150
+ result.bestGraphBackupPath = null;
151
+ return;
152
+ }
153
+ if (result.bestGraphBackupPath) {
154
+ prune(result.bestGraphBackupPath);
155
+ result.bestGraphBackupPath = null;
129
156
  }
130
- clearBuildRuntimeDerivedArtifacts(verifiableContextPath);
131
- initializeBuildRuntimeState(verifiableContextPath);
132
157
  }
133
158
  async function runBuildPlanVariation(options) {
134
159
  let bestOutcome = null;
135
- let bestSnapshotPath = null;
160
+ let bestGraphBackupPath = null;
136
161
  let bestAttempt = 0;
137
162
  let attemptsRun = 0;
138
163
  try {
139
164
  for (let attempt = 1; attempt <= options.maxAttempts; attempt += 1) {
140
165
  attemptsRun = attempt;
141
- const result = await buildVerifiableContextWithReporter(options.executor, options.verifiableContextPath, {
166
+ const result = await buildContextGraphWithReporter(options.executor, options.contextGraphPath, {
142
167
  heading: options.maxAttempts > 1
143
- ? `Building Verifiable Context (${options.variationLabel}, attempt ${attempt}/${options.maxAttempts})...`
144
- : `Building Verifiable Context (${options.variationLabel})...`,
168
+ ? `Building Context Graph (${options.variationLabel}, attempt ${attempt}/${options.maxAttempts})...`
169
+ : `Building Context Graph (${options.variationLabel})...`,
145
170
  successMessage: options.maxAttempts > 1
146
- ? `Verifiable context ready for ${options.variationLabel}, attempt ${attempt}.`
147
- : `Verifiable context ready for ${options.variationLabel}.`,
171
+ ? `Context Graph ready for ${options.variationLabel}, attempt ${attempt}.`
172
+ : `Context Graph ready for ${options.variationLabel}.`,
148
173
  preserveStageShells: options.preserveStageShells,
149
174
  runId: options.runId,
150
175
  events: options.events,
151
176
  resolveStageExecutor: options.resolveStageExecutor,
177
+ maxStageValidationAttempts: options.maxAttempts,
152
178
  });
153
179
  if (!result.ok) {
154
- printBuildFailure(options.verifiableContextPath, result.failedStage);
155
- printStageShellReviewHint(options.verifiableContextPath, options.preserveStageShells, "failure");
180
+ printBuildFailure(options.contextGraphPath, result.failedStage);
181
+ printStageShellReviewHint(options.contextGraphPath, options.preserveStageShells, "failure");
156
182
  if (attempt < options.maxAttempts) {
157
183
  console.log(chalk.yellow(` ${options.variationLabel} attempt ${attempt}/${options.maxAttempts} failed. Retrying with a fresh build.`));
158
184
  continue;
@@ -162,16 +188,16 @@ async function runBuildPlanVariation(options) {
162
188
  attemptsRun,
163
189
  failedStage: result.failedStage,
164
190
  bestOutcome,
165
- bestSnapshotPath,
191
+ bestGraphBackupPath,
166
192
  bestAttempt,
167
193
  fatalError: null,
168
194
  };
169
195
  }
170
- const outcome = await runSavedVerifiableContextCheck({
196
+ const outcome = await runSavedContextGraphBenchmark({
171
197
  sourcePath: options.sourcePath,
172
- preparationConfig: options.verifiableContextConfig,
198
+ projectConfig: options.contextGraphConfig,
173
199
  executor: options.testExecutor,
174
- verifiableContextPath: options.verifiableContextPath,
200
+ contextGraphPath: options.contextGraphPath,
175
201
  preserveSandboxes: options.preserveStageShells === "always" ? "always" : "on-failure",
176
202
  });
177
203
  if (!outcome) {
@@ -180,31 +206,31 @@ async function runBuildPlanVariation(options) {
180
206
  attemptsRun,
181
207
  failedStage: null,
182
208
  bestOutcome,
183
- bestSnapshotPath,
209
+ bestGraphBackupPath,
184
210
  bestAttempt,
185
- fatalError: "Could not run saved readiness checks against verifiable context after build.",
211
+ fatalError: "Could not run saved benchmark checks against Context Graph after build.",
186
212
  };
187
213
  }
188
214
  console.log();
189
- printSavedReadinessOutcome(`${options.variationLabel} · attempt ${attempt}/${options.maxAttempts}`, outcome);
215
+ printSavedBenchmarkOutcome(`${options.variationLabel} · attempt ${attempt}/${options.maxAttempts}`, outcome);
190
216
  if (!bestOutcome || testScore(outcome) > testScore(bestOutcome)) {
191
- if (bestSnapshotPath) {
192
- rmSync(bestSnapshotPath, { recursive: true, force: true });
217
+ if (bestGraphBackupPath) {
218
+ rmSync(bestGraphBackupPath, { recursive: true, force: true });
193
219
  }
194
220
  bestOutcome = outcome;
195
- bestSnapshotPath = snapshotBestBuildState(options.verifiableContextPath);
221
+ bestGraphBackupPath = captureBestBuildState(options.contextGraphPath);
196
222
  bestAttempt = attempt;
197
223
  }
198
224
  if (outcome.result.ok) {
199
225
  console.log();
200
- console.log(chalk.green(` Verifiable context passed on ${options.variationLabel}, attempt ${attempt}/${options.maxAttempts}.`));
201
- printStageShellReviewHint(options.verifiableContextPath, options.preserveStageShells, "success");
226
+ console.log(chalk.green(` Context Graph passed on ${options.variationLabel}, attempt ${attempt}/${options.maxAttempts}.`));
227
+ printStageShellReviewHint(options.contextGraphPath, options.preserveStageShells, "success");
202
228
  return {
203
229
  passed: true,
204
230
  attemptsRun,
205
231
  failedStage: null,
206
232
  bestOutcome,
207
- bestSnapshotPath,
233
+ bestGraphBackupPath,
208
234
  bestAttempt,
209
235
  fatalError: null,
210
236
  };
@@ -219,7 +245,7 @@ async function runBuildPlanVariation(options) {
219
245
  attemptsRun,
220
246
  failedStage: null,
221
247
  bestOutcome,
222
- bestSnapshotPath,
248
+ bestGraphBackupPath,
223
249
  bestAttempt,
224
250
  fatalError: null,
225
251
  };
@@ -230,7 +256,7 @@ async function runBuildPlanVariation(options) {
230
256
  attemptsRun,
231
257
  failedStage: null,
232
258
  bestOutcome,
233
- bestSnapshotPath,
259
+ bestGraphBackupPath,
234
260
  bestAttempt,
235
261
  fatalError: error instanceof Error ? error.message : String(error),
236
262
  };
@@ -240,11 +266,11 @@ function summarizeBuildPlanVariation(options) {
240
266
  const passedChecks = options.result.bestOutcome?.result.passedCases ?? 0;
241
267
  const totalChecks = options.result.bestOutcome?.result.totalCases ?? options.defaultTotalChecks;
242
268
  const summary = options.result.passed
243
- ? `Passed ${passedChecks}/${totalChecks} readiness checks.`
269
+ ? `Passed ${passedChecks}/${totalChecks} benchmark checks.`
244
270
  : options.result.bestOutcome
245
- ? `Best result: ${passedChecks}/${totalChecks} readiness checks passed.`
271
+ ? `Best result: ${passedChecks}/${totalChecks} benchmark checks passed.`
246
272
  : options.result.failedStage
247
- ? `Build failed at stage ${options.result.failedStage} before any saved readiness result.`
273
+ ? `Build failed at stage ${options.result.failedStage} before any saved benchmark result.`
248
274
  : "Build Plan variation did not produce a passing result.";
249
275
  return {
250
276
  variation: options.variation,
@@ -261,8 +287,8 @@ function summarizeBuildPlanVariation(options) {
261
287
  summary,
262
288
  };
263
289
  }
264
- function printStageShellReviewHint(verifiableContextPath, preserveStageShells, result) {
265
- const reviewRoot = stageExecutionShellsRoot(verifiableContextPath);
290
+ function printStageShellReviewHint(contextGraphPath, preserveStageShells, result) {
291
+ const reviewRoot = stageExecutionShellsRoot(contextGraphPath);
266
292
  if (preserveStageShells === "always") {
267
293
  console.log(chalk.dim(` Stage shells are saved under: ${reviewRoot}`));
268
294
  return;
@@ -272,18 +298,18 @@ function printStageShellReviewHint(verifiableContextPath, preserveStageShells, r
272
298
  }
273
299
  }
274
300
  function printPostBuildNextStep(options) {
275
- console.log(chalk.dim(` Verifiable context: ${options.verifiableContextPath}`));
301
+ console.log(chalk.dim(` Context Graph: ${options.contextGraphPath}`));
276
302
  if (options.checks === 0) {
277
- console.log(chalk.dim(" Next: run `interf` to add readiness checks, then `interf test`."));
303
+ console.log(chalk.dim(" Next: run `interf` to add benchmark questions, then `interf benchmark`."));
278
304
  return;
279
305
  }
280
306
  if (options.testedDuringBuild) {
281
- console.log(chalk.dim(" Next: inspect the verifiable context agents will use, or run `interf test` if you also want readiness evidence for source files and verifiable context."));
307
+ console.log(chalk.dim(" Next: inspect the Context Graph agents will use, or run `interf benchmark` if you also want a Source Manifest baseline versus Context Graph benchmark."));
282
308
  return;
283
309
  }
284
- console.log(chalk.dim(" Next: run `interf test` to collect readiness evidence for source files and verifiable context."));
310
+ console.log(chalk.dim(" Next: run `interf benchmark` to benchmark the Source Manifest baseline and/or the Context Graph."));
285
311
  }
286
- function formatVariationReadinessSummary(summary) {
312
+ function formatVariationBenchmarkSummary(summary) {
287
313
  return `${summary.passed_questions}/${summary.total_questions}`;
288
314
  }
289
315
  function printBuildPlanVariationSummary(summaries) {
@@ -292,101 +318,98 @@ function printBuildPlanVariationSummary(summaries) {
292
318
  console.log();
293
319
  console.log(chalk.bold(" Build Plan variation summary"));
294
320
  console.log();
295
- console.log(" | Variation | Kind | Readiness checks | Result |");
321
+ console.log(" | Variation | Kind | Benchmark checks | Result |");
296
322
  console.log(" | --- | --- | --- | --- |");
297
323
  for (const summary of summaries) {
298
- console.log(` | ${summary.variation} | ${summary.kind} | \`${formatVariationReadinessSummary(summary)}\` | ${summary.passed ? "pass" : "fail"} |`);
324
+ console.log(` | ${summary.variation} | ${summary.kind} | \`${formatVariationBenchmarkSummary(summary)}\` | ${summary.passed ? "pass" : "fail"} |`);
299
325
  }
300
326
  }
301
- function printSelectedBuildPlanOwnership(verifiableContextPath, bestVariation) {
327
+ function printSelectedBuildPlanOwnership(contextGraphPath, bestVariation) {
302
328
  if (bestVariation <= 1)
303
329
  return;
304
330
  console.log();
305
- console.log(chalk.dim(` Best Build Plan variation now lives in: ${buildPlanPackagePathForVerifiableContext(verifiableContextPath)}`));
306
- console.log(chalk.dim(" The project-level Build Plan selection was not changed automatically."));
307
- console.log(chalk.dim(" Rebuilding this existing verifiable context reuses that local Build Plan draft."));
331
+ console.log(chalk.dim(` Best Build Plan variation now lives in: ${buildPlanPackagePathForContextGraph(contextGraphPath)}`));
332
+ console.log(chalk.dim(" The Project-level Build Plan selection was not changed automatically."));
333
+ console.log(chalk.dim(" Building this existing Context Graph again reuses that local Build Plan draft."));
308
334
  }
309
335
  export async function runConfiguredBuild(options) {
310
- const preserveStageShells = options.preserveStageShells ?? "on-failure";
311
- const configuredMaxAttempts = resolvePreparationBuildMaxAttempts(options.verifiableContextConfig ?? { max_attempts: undefined }, options.maxAttemptsOverride);
312
- const maxLoops = resolvePreparationBuildMaxLoops(options.verifiableContextConfig ?? { max_loops: undefined }, options.maxLoopsOverride);
336
+ const preserveStageShells = options.preserveStageShells ?? "always";
337
+ const configuredMaxAttempts = resolveBuildMaxAttempts(options.maxAttemptsOverride);
338
+ const maxLoops = resolveBuildMaxLoops(options.maxLoopsOverride);
313
339
  const maxAttempts = configuredMaxAttempts ?? (maxLoops != null ? 1 : null);
314
340
  const loopEnabled = maxAttempts != null;
315
- const checks = options.verifiableContextConfig?.checks ?? [];
316
- if (loopEnabled && checks.length === 0) {
317
- console.log(chalk.yellow(" Retry and self-improving modes need saved readiness checks. Building once without those loops."));
341
+ // Read the persisted Interf config once for the entry path. `readInterfConfig`
342
+ // does fs I/O + JSON parse + zod validation, and nothing here mutates the
343
+ // config file before the improvement loop, so a single read drives the
344
+ // project-name fallback (below) and the improvement-loop config fallback
345
+ // identically. The in-loop read at the improvement step stays a live re-read
346
+ // because that loop edits the Build Plan/config between iterations.
347
+ const interfConfig = readInterfConfig(options.contextGraphPath);
348
+ const projectName = options.contextGraphConfig?.name ?? interfConfig?.name ?? "project";
349
+ const benchmarkSpec = buildTestSpecFromSourceFolderConfig({
350
+ projectDataDir: options.sourcePath,
351
+ targetName: projectName,
352
+ targetType: "context-graph",
353
+ });
354
+ const benchmarkCheckCount = benchmarkSpec?.cases.length ?? 0;
355
+ if (loopEnabled && benchmarkCheckCount === 0) {
356
+ console.log(chalk.yellow(" Retry and self-improving modes need saved benchmark checks. Building once without those loops."));
318
357
  }
319
358
  else if (loopEnabled) {
320
359
  if (maxAttempts > 1) {
321
360
  console.log(chalk.dim(` Retry mode: up to ${maxAttempts} build attempts.`));
322
- console.log(chalk.dim(" Interf will rerun the same Build Plan variation, check the verifiable context agents can use, and stop early if it passes."));
361
+ console.log(chalk.dim(" Interf will rerun the same Build Plan variation, check the Context Graph agents can use, and stop early if it passes."));
323
362
  }
324
363
  else {
325
364
  console.log(chalk.dim(" Build mode: 1 attempt per Build Plan variation."));
326
365
  }
327
366
  if (maxLoops != null) {
328
367
  console.log(chalk.dim(` Build Plan improvement: up to ${maxLoops} Build Plan edits after retries fail.`));
329
- console.log(chalk.dim(" Interf will review failed runs, edit the Build Plan, and test new Build Plan variations."));
368
+ console.log(chalk.dim(" Interf will review failed runs, edit the Build Plan, and benchmark new Build Plan variations."));
330
369
  }
331
370
  }
332
- if (!loopEnabled || checks.length === 0) {
333
- const result = await buildVerifiableContextWithReporter(options.executor, options.verifiableContextPath, {
371
+ if (!loopEnabled || benchmarkCheckCount === 0) {
372
+ const result = await buildContextGraphWithReporter(options.executor, options.contextGraphPath, {
334
373
  preserveStageShells,
335
374
  runId: options.runId,
336
375
  events: options.events,
337
376
  resolveStageExecutor: options.resolveStageExecutor,
377
+ maxStageValidationAttempts: configuredMaxAttempts ?? undefined,
338
378
  });
339
379
  if (!result.ok) {
340
380
  process.exitCode = 1;
341
- printBuildFailure(options.verifiableContextPath, result.failedStage);
342
- printStageShellReviewHint(options.verifiableContextPath, preserveStageShells, "failure");
381
+ printBuildFailure(options.contextGraphPath, result.failedStage);
382
+ printStageShellReviewHint(options.contextGraphPath, preserveStageShells, "failure");
343
383
  return false;
344
384
  }
345
- printStageShellReviewHint(options.verifiableContextPath, preserveStageShells, "success");
385
+ printStageShellReviewHint(options.contextGraphPath, preserveStageShells, "success");
346
386
  printPostBuildNextStep({
347
- verifiableContextPath: options.verifiableContextPath,
348
- checks: checks.length,
387
+ contextGraphPath: options.contextGraphPath,
388
+ checks: benchmarkCheckCount,
349
389
  testedDuringBuild: false,
350
390
  });
351
391
  return true;
352
392
  }
353
- let bestOutcome = null;
354
- let bestSnapshotPath = null;
355
- let bestAttempt = 0;
356
- let bestVariation = 0;
393
+ const best = createVariationBestTracker();
357
394
  const previousVariations = [];
358
395
  const improvementRunId = `${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 8)}`;
396
+ const pruneBackup = (backupPath) => rmSync(backupPath, { recursive: true, force: true });
359
397
  try {
360
- const verifiableContextConfig = options.verifiableContextConfig
361
- ?? loadVerifiableContextPreparationConfig(options.verifiableContextPath)
398
+ const contextGraphConfig = options.contextGraphConfig
399
+ ?? loadContextGraphProjectConfig(options.contextGraphPath)
362
400
  ?? {
363
- name: readInterfConfig(options.verifiableContextPath)?.name ?? "preparation",
401
+ name: interfConfig?.name ?? "project",
402
+ intent: interfConfig?.intent ?? "",
364
403
  path: "./source-folder",
365
- checks: [],
366
404
  };
367
- const adoptVariationBest = (variation, result) => {
368
- if (result.bestOutcome && result.bestSnapshotPath && (!bestOutcome || testScore(result.bestOutcome) > testScore(bestOutcome))) {
369
- if (bestSnapshotPath) {
370
- rmSync(bestSnapshotPath, { recursive: true, force: true });
371
- }
372
- bestOutcome = result.bestOutcome;
373
- bestSnapshotPath = result.bestSnapshotPath;
374
- bestAttempt = result.bestAttempt;
375
- bestVariation = variation;
376
- result.bestSnapshotPath = null;
377
- }
378
- if (result.bestSnapshotPath) {
379
- rmSync(result.bestSnapshotPath, { recursive: true, force: true });
380
- result.bestSnapshotPath = null;
381
- }
382
- };
405
+ const adoptVariationBest = (variation, result) => considerVariationBest(best, variation, result, pruneBackup);
383
406
  const baseline = await runBuildPlanVariation({
384
407
  executor: options.executor,
385
408
  testExecutor: options.testExecutor,
386
409
  resolveStageExecutor: options.resolveStageExecutor,
387
- verifiableContextPath: options.verifiableContextPath,
410
+ contextGraphPath: options.contextGraphPath,
388
411
  sourcePath: options.sourcePath,
389
- verifiableContextConfig,
412
+ contextGraphConfig,
390
413
  executionProfile: options.executionProfile,
391
414
  preserveStageShells,
392
415
  maxAttempts,
@@ -404,13 +427,13 @@ export async function runConfiguredBuild(options) {
404
427
  variation: 1,
405
428
  kind: "baseline",
406
429
  result: baseline,
407
- defaultTotalChecks: checks.length,
430
+ defaultTotalChecks: benchmarkCheckCount,
408
431
  }));
409
432
  if (baseline.passed) {
410
433
  printBuildPlanVariationSummary(previousVariations);
411
434
  printPostBuildNextStep({
412
- verifiableContextPath: options.verifiableContextPath,
413
- checks: checks.length,
435
+ contextGraphPath: options.contextGraphPath,
436
+ checks: benchmarkCheckCount,
414
437
  testedDuringBuild: true,
415
438
  });
416
439
  return true;
@@ -421,9 +444,12 @@ export async function runConfiguredBuild(options) {
421
444
  console.log(chalk.dim(` Self-improving loop ${loopIndex}/${maxLoops}: reviewing failed runs and editing the Build Plan.`));
422
445
  const improvement = await runBuildPlanImprovementLoop({
423
446
  executor: options.executor,
424
- verifiableContextPath: options.verifiableContextPath,
425
- buildPlanId: resolveRequiredBuildPlanFromConfig(readInterfConfig(options.verifiableContextPath), `.interf/interf.json for ${options.verifiableContextPath}`),
426
- verifiableContextConfig,
447
+ contextGraphPath: options.contextGraphPath,
448
+ buildPlanId: resolveRequiredBuildPlanFromConfig(readInterfConfig(options.contextGraphPath), `.interf/interf.json for ${options.contextGraphPath}`),
449
+ benchmarkChecks: benchmarkSpec?.cases.map((testCase) => ({
450
+ id: testCase.id,
451
+ question: testCase.question,
452
+ })) ?? [],
427
453
  runId: improvementRunId,
428
454
  loopIndex,
429
455
  maxLoops,
@@ -444,9 +470,9 @@ export async function runConfiguredBuild(options) {
444
470
  executor: options.executor,
445
471
  testExecutor: options.testExecutor,
446
472
  resolveStageExecutor: options.resolveStageExecutor,
447
- verifiableContextPath: options.verifiableContextPath,
473
+ contextGraphPath: options.contextGraphPath,
448
474
  sourcePath: options.sourcePath,
449
- verifiableContextConfig,
475
+ contextGraphConfig,
450
476
  executionProfile: options.executionProfile,
451
477
  preserveStageShells,
452
478
  maxAttempts,
@@ -464,44 +490,44 @@ export async function runConfiguredBuild(options) {
464
490
  variation: loopIndex + 1,
465
491
  kind: "edited",
466
492
  result: variation,
467
- defaultTotalChecks: checks.length,
493
+ defaultTotalChecks: benchmarkCheckCount,
468
494
  }));
469
495
  if (variation.passed) {
470
496
  printBuildPlanVariationSummary(previousVariations);
471
- printSelectedBuildPlanOwnership(options.verifiableContextPath, bestVariation);
497
+ printSelectedBuildPlanOwnership(options.contextGraphPath, best.variation);
472
498
  printPostBuildNextStep({
473
- verifiableContextPath: options.verifiableContextPath,
474
- checks: checks.length,
499
+ contextGraphPath: options.contextGraphPath,
500
+ checks: benchmarkCheckCount,
475
501
  testedDuringBuild: true,
476
502
  });
477
503
  return true;
478
504
  }
479
505
  }
480
506
  }
481
- if (bestSnapshotPath && bestVariation > 0) {
482
- restoreBestBuildState(bestSnapshotPath, options.verifiableContextPath);
507
+ if (best.backupPath && best.variation > 0) {
508
+ restoreBestBuildState(best.backupPath, options.contextGraphPath);
483
509
  console.log();
484
- console.log(chalk.dim(` Restored the best-performing verifiable context from variation ${bestVariation}, attempt ${bestAttempt}.`));
510
+ console.log(chalk.dim(` Restored the best-performing Context Graph from variation ${best.variation}, attempt ${best.attempt}.`));
485
511
  }
486
512
  process.exitCode = 1;
487
513
  console.log();
488
514
  printBuildPlanVariationSummary(previousVariations);
489
- printSelectedBuildPlanOwnership(options.verifiableContextPath, bestVariation);
515
+ printSelectedBuildPlanOwnership(options.contextGraphPath, best.variation);
490
516
  if (maxLoops != null) {
491
- console.log(chalk.red(` Verifiable context did not pass after ${maxAttempts} attempt${maxAttempts === 1 ? "" : "s"} per variation and ${maxLoops} Build Plan improvement loop${maxLoops === 1 ? "" : "s"}.`));
517
+ console.log(chalk.red(` Context Graph did not pass after ${maxAttempts} attempt${maxAttempts === 1 ? "" : "s"} per variation and ${maxLoops} Build Plan improvement loop${maxLoops === 1 ? "" : "s"}.`));
492
518
  }
493
519
  else {
494
- console.log(chalk.red(` Verifiable context did not pass within ${maxAttempts} attempt${maxAttempts === 1 ? "" : "s"}.`));
520
+ console.log(chalk.red(` Context Graph did not pass within ${maxAttempts} attempt${maxAttempts === 1 ? "" : "s"}.`));
495
521
  }
496
- if (bestOutcome) {
497
- console.log(chalk.dim(` Best attempt readiness-check pass rate: ${readinessPassRate(bestOutcome)}%.`));
522
+ if (best.outcome) {
523
+ console.log(chalk.dim(` Best attempt benchmark pass rate: ${benchmarkPassRate(best.outcome)}%.`));
498
524
  }
499
- printStageShellReviewHint(options.verifiableContextPath, preserveStageShells, "failure");
525
+ printStageShellReviewHint(options.contextGraphPath, preserveStageShells, "failure");
500
526
  return false;
501
527
  }
502
528
  finally {
503
- if (bestSnapshotPath) {
504
- rmSync(bestSnapshotPath, { recursive: true, force: true });
529
+ if (best.backupPath) {
530
+ rmSync(best.backupPath, { recursive: true, force: true });
505
531
  }
506
532
  }
507
533
  }
@@ -523,7 +549,7 @@ export function createNativeLocalServiceRunHandlers(options = {}) {
523
549
  if (!resolved.executor) {
524
550
  return ActionProposalPlanSchema.parse({
525
551
  action_type: "clarification",
526
- preparation: request.preparation,
552
+ project: request.project,
527
553
  assistant_message: resolved.error ?? "No local agent detected for action planning.",
528
554
  });
529
555
  }
@@ -568,9 +594,9 @@ export function createNativeLocalServiceRunHandlers(options = {}) {
568
594
  }
569
595
  return stageExecutor;
570
596
  },
571
- verifiableContextPath: context.verifiableContextPath,
597
+ contextGraphPath: context.contextGraphPath,
572
598
  sourcePath: context.sourcePath,
573
- verifiableContextConfig: context.preparationConfig,
599
+ contextGraphConfig: context.projectConfig,
574
600
  maxAttemptsOverride: request.max_attempts ?? null,
575
601
  maxLoopsOverride: request.max_loops ?? null,
576
602
  preserveStageShells: request.preserve_stage_shells,
@@ -590,47 +616,69 @@ export function createNativeLocalServiceRunHandlers(options = {}) {
590
616
  });
591
617
  // Verify runs always use the `verifier` role. We resolve here
592
618
  // for symmetry with Build runs — verify-run events are not
593
- // streamed in 0.15, so the resolution shows up only in the
594
- // executor field on the saved test run record.
595
- const { executor } = bundle.resolveExecutorForRole("verifier");
596
- const result = await runReadinessChecksForExecutor({
619
+ // streamed, so the resolution shows up only in the executor
620
+ // field on the saved benchmark run record.
621
+ const executor = request.agent_name
622
+ ? (() => {
623
+ const agent = registry.agents.find((entry) => entry.name === request.agent_name && entry.available !== false);
624
+ if (!agent) {
625
+ throw new Error(`Benchmark agent "${request.agent_name}" is not connected.`);
626
+ }
627
+ const requestedExecutor = bundle.executors.get(agent.name);
628
+ if (!requestedExecutor) {
629
+ throw new Error(`Benchmark agent "${agent.name}" is not available for automated runs.`);
630
+ }
631
+ return requestedExecutor;
632
+ })()
633
+ : bundle.resolveExecutorForRole("verifier").executor;
634
+ const executorInfo = buildRuntimeExecutorInfo(executor);
635
+ const result = await runBenchmarkForExecutor({
597
636
  sourcePath: context.sourcePath,
598
- preparationConfig: context.preparationConfig,
599
- verifiableContextPath: context.verifiableContextPath,
637
+ projectConfig: context.projectConfig,
638
+ contextGraphPath: context.contextGraphPath,
600
639
  executor,
601
640
  target: request.target,
602
641
  });
603
- const outcome = request.target === "source-files"
604
- ? result.sourceFilesOutcome
605
- : result.verifiableContextOutcome;
606
- if (!outcome) {
607
- const targetLabel = request.target === "source-files"
608
- ? "Source files"
609
- : "Verifiable context";
642
+ const missingTargets = [
643
+ ...(request.target === "source-files" || request.target === "both"
644
+ ? result.sourceFilesOutcome ? [] : ["Source files"]
645
+ : []),
646
+ ...(request.target === "context-graph" || request.target === "both"
647
+ ? result.contextGraphOutcome ? [] : ["Context Graph"]
648
+ : []),
649
+ ];
650
+ if (missingTargets.length > 0) {
610
651
  return {
611
652
  ok: false,
612
- readiness_run: result.readinessRun,
613
- error: `${targetLabel} is not ready for readiness checks.`,
653
+ benchmark_run: result.benchmarkRun,
654
+ executor: executorInfo,
655
+ agent_label: executor.displayName,
656
+ error: `${missingTargets.join(" and ")} ${missingTargets.length === 1 ? "is" : "are"} not ready for benchmark evaluation.`,
614
657
  };
615
658
  }
616
659
  return {
617
660
  ok: true,
618
- readiness_run: result.readinessRun,
661
+ benchmark_run: result.benchmarkRun,
662
+ executor: executorInfo,
663
+ agent_label: executor.displayName,
619
664
  };
620
665
  },
621
- async createReadinessCheckDraft(request, context) {
666
+ async createBenchmarkQuestionDraft(request, context) {
622
667
  const executor = resolveHandlerExecutor(options.executor);
623
668
  context.emit({
624
669
  type: "log.appended",
625
670
  step_id: "agent-draft",
626
- message: `Using ${executor.displayName} to draft readiness checks.`,
671
+ message: `Using ${executor.displayName} to draft benchmark questions.`,
627
672
  });
628
- const drafted = await draftReadinessChecks({
629
- preparationName: request.preparation,
673
+ const drafted = await draftBenchmarkQuestions({
674
+ projectName: request.project,
630
675
  sourceFolderPath: request.source_folder_path,
631
- about: request.about,
676
+ intent: request.intent,
632
677
  executor,
633
678
  targetCount: request.target_count,
679
+ // Preserve the drafting shell under the Project's durable job storage so
680
+ // the draft execution (prompt, reasoning, output, verdict) is inspectable.
681
+ preservedShellRoot: join(projectServiceJobShellsRoot(asProjectDataDir(context.sourcePath)), `benchmark-question-draft-${context.runId}`),
634
682
  onStatus: (line) => context.emit({
635
683
  type: "log.appended",
636
684
  step_id: "agent-draft",
@@ -638,10 +686,12 @@ export function createNativeLocalServiceRunHandlers(options = {}) {
638
686
  }),
639
687
  });
640
688
  if (!drafted.checks) {
641
- throw new Error(drafted.error ?? "Could not draft readiness checks from this Source Folder.");
689
+ throw new Error(drafted.error ?? "Could not draft benchmark questions from this Source Folder.");
642
690
  }
643
691
  return {
644
692
  checks: drafted.checks,
693
+ ...(drafted.shellPath ? { shell_path: drafted.shellPath } : {}),
694
+ ...(drafted.reasoningPath ? { reasoning_path: drafted.reasoningPath } : {}),
645
695
  };
646
696
  },
647
697
  async createBuildPlanAuthoringRun(request, context) {
@@ -652,16 +702,17 @@ export function createNativeLocalServiceRunHandlers(options = {}) {
652
702
  message: `Using ${executor.displayName} for Build Plan authoring.`,
653
703
  });
654
704
  const result = await runBuildPlanAuthoringDraft({
655
- prepDataDir: context.sourcePath,
705
+ projectDataDir: context.sourcePath,
656
706
  sourceFolderPath: request.source_folder_path,
657
707
  baseBuildPlanId: request.reference_build_plan_id ?? request.base_build_plan_id,
658
708
  buildPlanId: request.build_plan_id,
659
709
  label: request.label,
660
710
  hint: request.hint,
661
- taskPrompt: request.task_prompt,
711
+ intent: request.intent,
662
712
  checks: request.checks,
713
+ userPrepInstructions: request.user_prep_instructions,
663
714
  requestedArtifacts: request.requested_artifacts,
664
- sourceProfile: request.source_profile ?? null,
715
+ sourceContext: request.source_context ?? null,
665
716
  artifactRequirements: request.artifact_requirements,
666
717
  executor,
667
718
  onStatus: (line) => context.emit({