@interf/compiler 0.22.0 → 0.33.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (575) hide show
  1. package/README.md +268 -0
  2. package/dist/bin-mcp.d.ts +2 -0
  3. package/dist/bin-mcp.js +63 -0
  4. package/dist/bin-runtime.d.ts +2 -0
  5. package/dist/bin-runtime.js +111 -0
  6. package/dist/cli/commands/agents.js +4 -4
  7. package/dist/cli/commands/auth.d.ts +20 -0
  8. package/dist/cli/commands/auth.js +161 -0
  9. package/dist/cli/commands/benchmark.d.ts +10 -0
  10. package/dist/cli/commands/benchmark.js +88 -0
  11. package/dist/cli/commands/build-plan.js +95 -103
  12. package/dist/cli/commands/build.d.ts +1 -1
  13. package/dist/cli/commands/build.js +16 -15
  14. package/dist/cli/commands/doctor.js +3 -3
  15. package/dist/cli/commands/graphs.d.ts +2 -0
  16. package/dist/cli/commands/graphs.js +199 -0
  17. package/dist/cli/commands/login.js +4 -6
  18. package/dist/cli/commands/logout.js +1 -1
  19. package/dist/cli/commands/mcp.d.ts +3 -2
  20. package/dist/cli/commands/mcp.js +721 -204
  21. package/dist/cli/commands/project.d.ts +2 -0
  22. package/dist/cli/commands/project.js +202 -0
  23. package/dist/cli/commands/reset.d.ts +1 -1
  24. package/dist/cli/commands/reset.js +10 -10
  25. package/dist/cli/commands/runs.js +52 -26
  26. package/dist/cli/commands/runtime.d.ts +24 -0
  27. package/dist/cli/commands/runtime.js +373 -0
  28. package/dist/cli/commands/status.d.ts +1 -0
  29. package/dist/cli/commands/status.js +33 -22
  30. package/dist/cli/commands/traces.d.ts +2 -0
  31. package/dist/cli/commands/traces.js +125 -0
  32. package/dist/cli/commands/wizard.js +155 -150
  33. package/dist/cli/index.d.ts +7 -4
  34. package/dist/cli/index.js +13 -7
  35. package/dist/index.d.ts +2 -2
  36. package/dist/index.js +2 -2
  37. package/dist/packages/build-plans/authoring/brief.d.ts +517 -0
  38. package/dist/packages/build-plans/authoring/brief.js +89 -0
  39. package/dist/packages/build-plans/authoring/build-plan-authoring.d.ts +10 -10
  40. package/dist/packages/build-plans/authoring/build-plan-authoring.js +66 -26
  41. package/dist/packages/build-plans/authoring/build-plan-edit-session.d.ts +1 -1
  42. package/dist/packages/build-plans/authoring/build-plan-edit-session.js +8 -2
  43. package/dist/packages/build-plans/authoring/build-plan-improvement.d.ts +9 -6
  44. package/dist/packages/build-plans/authoring/build-plan-improvement.js +39 -42
  45. package/dist/packages/build-plans/authoring/lib/build-plan-edit-utils.js +7 -7
  46. package/dist/packages/build-plans/build-plan-resolution.d.ts +1 -1
  47. package/dist/packages/build-plans/build-plan-resolution.js +3 -3
  48. package/dist/packages/build-plans/index.d.ts +1 -1
  49. package/dist/packages/build-plans/index.js +1 -1
  50. package/dist/packages/build-plans/package/build-plan-definitions.d.ts +14 -12
  51. package/dist/packages/build-plans/package/build-plan-definitions.js +40 -39
  52. package/dist/packages/build-plans/package/build-plan-helpers.d.ts +3 -2
  53. package/dist/packages/build-plans/package/build-plan-helpers.js +27 -13
  54. package/dist/packages/build-plans/package/build-plan-review-paths.d.ts +5 -5
  55. package/dist/packages/build-plans/package/build-plan-review-paths.js +15 -15
  56. package/dist/packages/build-plans/package/build-plan-stage-runner.d.ts +4 -4
  57. package/dist/packages/build-plans/package/build-plan-stage-runner.js +22 -11
  58. package/dist/packages/build-plans/package/builtin-build-plan.d.ts +5 -6
  59. package/dist/packages/build-plans/package/builtin-build-plan.js +7 -8
  60. package/dist/packages/build-plans/package/context-interface.d.ts +11 -9
  61. package/dist/packages/build-plans/package/context-interface.js +14 -33
  62. package/dist/packages/build-plans/package/interf-build-plan-package.d.ts +6 -17
  63. package/dist/packages/build-plans/package/interf-build-plan-package.js +56 -52
  64. package/dist/packages/build-plans/package/local-build-plans.d.ts +12 -10
  65. package/dist/packages/build-plans/package/local-build-plans.js +56 -31
  66. package/dist/packages/build-plans/package/user-build-plans.js +1 -1
  67. package/dist/packages/contracts/index.d.ts +4 -2
  68. package/dist/packages/contracts/index.js +2 -1
  69. package/dist/packages/contracts/lib/project-paths.d.ts +137 -0
  70. package/dist/packages/contracts/lib/project-paths.js +211 -0
  71. package/dist/packages/contracts/lib/project-schema.d.ts +160 -0
  72. package/dist/packages/contracts/lib/project-schema.js +113 -0
  73. package/dist/packages/contracts/lib/schema.d.ts +739 -80
  74. package/dist/packages/contracts/lib/schema.js +410 -75
  75. package/dist/packages/contracts/utils/parse.js +67 -0
  76. package/dist/packages/projects/index.d.ts +6 -0
  77. package/dist/packages/{project → projects}/index.js +0 -3
  78. package/dist/packages/{project → projects}/interf-detect.d.ts +12 -12
  79. package/dist/packages/{project → projects}/interf-detect.js +56 -50
  80. package/dist/packages/projects/interf.d.ts +2 -0
  81. package/dist/packages/projects/interf.js +1 -0
  82. package/dist/packages/projects/lib/schema.d.ts +79 -0
  83. package/dist/packages/projects/lib/schema.js +89 -0
  84. package/dist/packages/projects/source-config.d.ts +58 -0
  85. package/dist/packages/projects/source-config.js +352 -0
  86. package/dist/packages/projects/source-folders.d.ts +11 -0
  87. package/dist/packages/{project → projects}/source-folders.js +26 -26
  88. package/dist/packages/{engine → runtime}/action-planner.d.ts +1 -1
  89. package/dist/packages/{engine → runtime}/action-planner.js +20 -22
  90. package/dist/packages/runtime/action-values.d.ts +1 -0
  91. package/dist/packages/runtime/action-values.js +1 -0
  92. package/dist/packages/runtime/actions/errors.d.ts +2 -0
  93. package/dist/packages/runtime/actions/errors.js +12 -0
  94. package/dist/packages/runtime/actions/fields.d.ts +82 -0
  95. package/dist/packages/runtime/actions/form-builders.d.ts +14 -0
  96. package/dist/packages/runtime/actions/form-builders.js +619 -0
  97. package/dist/packages/runtime/actions/form-validators.d.ts +8 -0
  98. package/dist/packages/runtime/actions/form-validators.js +128 -0
  99. package/dist/packages/runtime/actions/helpers.d.ts +11 -0
  100. package/dist/packages/runtime/actions/helpers.js +80 -0
  101. package/dist/packages/runtime/actions/index.d.ts +8 -0
  102. package/dist/packages/runtime/actions/index.js +11 -0
  103. package/dist/packages/runtime/actions/registry.d.ts +64 -0
  104. package/dist/packages/runtime/actions/registry.js +62 -0
  105. package/dist/packages/runtime/actions/requests.d.ts +45 -0
  106. package/dist/packages/runtime/actions/requests.js +158 -0
  107. package/dist/packages/runtime/actions/schemas.d.ts +154 -0
  108. package/dist/packages/runtime/actions/schemas.js +36 -0
  109. package/dist/packages/runtime/agent-handoff.d.ts +11 -0
  110. package/dist/packages/runtime/agent-handoff.js +101 -0
  111. package/dist/packages/{engine → runtime}/agents/index.d.ts +1 -2
  112. package/dist/packages/{engine → runtime}/agents/index.js +1 -2
  113. package/dist/packages/runtime/agents/lib/args.d.ts +14 -0
  114. package/dist/packages/runtime/agents/lib/args.js +24 -0
  115. package/dist/packages/{engine → runtime}/agents/lib/constants.d.ts +4 -1
  116. package/dist/packages/runtime/agents/lib/constants.js +13 -0
  117. package/dist/packages/runtime/agents/lib/context-graph-bootstrap.d.ts +3 -0
  118. package/dist/packages/{engine/agents/lib/verifiable-context-bootstrap.js → runtime/agents/lib/context-graph-bootstrap.js} +5 -6
  119. package/dist/packages/{engine → runtime}/agents/lib/detection.d.ts +5 -0
  120. package/dist/packages/{engine → runtime}/agents/lib/detection.js +16 -7
  121. package/dist/packages/{engine → runtime}/agents/lib/execution-profile.js +8 -14
  122. package/dist/packages/{engine → runtime}/agents/lib/execution.js +14 -4
  123. package/dist/packages/{engine → runtime}/agents/lib/preflight.js +15 -13
  124. package/dist/packages/{engine → runtime}/agents/lib/render.js +4 -4
  125. package/dist/packages/runtime/agents/lib/shell-fs.d.ts +18 -0
  126. package/dist/packages/runtime/agents/lib/shell-fs.js +190 -0
  127. package/dist/packages/runtime/agents/lib/shell-paths.d.ts +16 -0
  128. package/dist/packages/runtime/agents/lib/shell-paths.js +63 -0
  129. package/dist/packages/runtime/agents/lib/shell-projection.d.ts +25 -0
  130. package/dist/packages/runtime/agents/lib/shell-projection.js +314 -0
  131. package/dist/packages/runtime/agents/lib/shell-templates.d.ts +30 -0
  132. package/dist/packages/runtime/agents/lib/shell-templates.js +452 -0
  133. package/dist/packages/runtime/agents/lib/shell-workspace.d.ts +17 -0
  134. package/dist/packages/runtime/agents/lib/shell-workspace.js +70 -0
  135. package/dist/packages/runtime/agents/lib/shells.d.ts +63 -0
  136. package/dist/packages/runtime/agents/lib/shells.js +383 -0
  137. package/dist/packages/{engine → runtime}/agents/lib/user-config.d.ts +8 -2
  138. package/dist/packages/{engine → runtime}/agents/lib/user-config.js +8 -2
  139. package/dist/packages/runtime/agents/providers/claude-code.d.ts +13 -0
  140. package/dist/packages/runtime/agents/providers/claude-code.js +45 -0
  141. package/dist/packages/runtime/agents/providers/codex.d.ts +17 -0
  142. package/dist/packages/runtime/agents/providers/codex.js +64 -0
  143. package/dist/packages/runtime/agents/providers/cursor.d.ts +9 -0
  144. package/dist/packages/runtime/agents/providers/cursor.js +24 -0
  145. package/dist/packages/runtime/agents/providers/index.d.ts +9 -0
  146. package/dist/packages/runtime/agents/providers/index.js +31 -0
  147. package/dist/packages/runtime/agents/providers/types.d.ts +50 -0
  148. package/dist/packages/{engine → runtime}/agents/registry.d.ts +13 -2
  149. package/dist/packages/{engine → runtime}/agents/registry.js +48 -10
  150. package/dist/packages/{engine → runtime}/agents/role-executors.d.ts +1 -1
  151. package/dist/packages/{engine → runtime}/agents/role-executors.js +7 -6
  152. package/dist/packages/{engine → runtime}/agents/role-router.js +7 -5
  153. package/dist/packages/runtime/auth/account-context.d.ts +52 -0
  154. package/dist/packages/runtime/auth/account-context.js +68 -0
  155. package/dist/packages/runtime/auth/auth-flow.d.ts +73 -0
  156. package/dist/packages/runtime/auth/auth-flow.js +189 -0
  157. package/dist/packages/runtime/auth/jwt-validator.d.ts +58 -0
  158. package/dist/packages/runtime/auth/jwt-validator.js +86 -0
  159. package/dist/packages/runtime/auth/keychain.d.ts +35 -0
  160. package/dist/packages/runtime/auth/keychain.js +85 -0
  161. package/dist/packages/runtime/auth/session-store.d.ts +38 -0
  162. package/dist/packages/runtime/auth/session-store.js +88 -0
  163. package/dist/packages/runtime/auth/workos-client.d.ts +58 -0
  164. package/dist/packages/runtime/auth/workos-client.js +87 -0
  165. package/dist/packages/runtime/benchmark-question-draft.d.ts +20 -0
  166. package/dist/packages/runtime/benchmark-question-draft.js +124 -0
  167. package/dist/packages/runtime/build/artifact-counts.d.ts +1 -0
  168. package/dist/packages/{engine → runtime}/build/artifact-counts.js +5 -9
  169. package/dist/packages/{engine → runtime}/build/artifact-status.d.ts +5 -5
  170. package/dist/packages/{engine → runtime}/build/artifact-status.js +25 -23
  171. package/dist/packages/runtime/build/atomic-fs.d.ts +3 -0
  172. package/dist/packages/runtime/build/atomic-fs.js +95 -0
  173. package/dist/packages/runtime/build/billing-events.d.ts +78 -0
  174. package/dist/packages/{engine → runtime}/build/billing-events.js +17 -19
  175. package/dist/packages/runtime/build/build-evidence.d.ts +15 -0
  176. package/dist/packages/runtime/build/build-evidence.js +173 -0
  177. package/dist/packages/{engine → runtime}/build/build-pipeline.d.ts +12 -8
  178. package/dist/packages/runtime/build/build-pipeline.js +304 -0
  179. package/dist/packages/{engine → runtime}/build/build-plan-primitives.d.ts +1 -1
  180. package/dist/packages/{engine → runtime}/build/build-plan-primitives.js +0 -1
  181. package/dist/packages/runtime/build/build-plan-runs.d.ts +14 -0
  182. package/dist/packages/runtime/build/build-plan-runs.js +31 -0
  183. package/dist/packages/runtime/build/build-stage-plan.d.ts +16 -0
  184. package/dist/packages/{engine → runtime}/build/build-stage-plan.js +28 -29
  185. package/dist/packages/{engine → runtime}/build/build-stage-runner.d.ts +2 -1
  186. package/dist/packages/runtime/build/build-stage-runner.js +165 -0
  187. package/dist/packages/{engine → runtime}/build/build-target.d.ts +4 -4
  188. package/dist/packages/runtime/build/build-target.js +16 -0
  189. package/dist/packages/{engine → runtime}/build/check-evaluator.d.ts +14 -16
  190. package/dist/packages/runtime/build/check-evaluator.js +575 -0
  191. package/dist/packages/runtime/build/context-graph-paths.d.ts +51 -0
  192. package/dist/packages/runtime/build/context-graph-paths.js +133 -0
  193. package/dist/packages/runtime/build/context-graph-schema.d.ts +19 -0
  194. package/dist/packages/runtime/build/context-graph-schema.js +39 -0
  195. package/dist/packages/{engine → runtime}/build/discovery.d.ts +2 -2
  196. package/dist/packages/{engine → runtime}/build/discovery.js +4 -4
  197. package/dist/packages/{engine → runtime}/build/index.d.ts +5 -3
  198. package/dist/packages/{engine → runtime}/build/index.js +5 -3
  199. package/dist/packages/{engine → runtime}/build/lib/schema.d.ts +221 -88
  200. package/dist/packages/{engine → runtime}/build/lib/schema.js +61 -41
  201. package/dist/packages/runtime/build/reset.d.ts +2 -0
  202. package/dist/packages/runtime/build/reset.js +62 -0
  203. package/dist/packages/{engine → runtime}/build/runtime-contracts.js +5 -5
  204. package/dist/packages/runtime/build/runtime-inventory.d.ts +7 -0
  205. package/dist/packages/{engine → runtime}/build/runtime-inventory.js +3 -3
  206. package/dist/packages/{engine → runtime}/build/runtime-paths.js +6 -6
  207. package/dist/packages/{engine → runtime}/build/runtime-prompt.js +7 -6
  208. package/dist/packages/{engine → runtime}/build/runtime-reconcile.d.ts +1 -1
  209. package/dist/packages/{engine → runtime}/build/runtime-reconcile.js +25 -21
  210. package/dist/packages/runtime/build/runtime-runs.d.ts +10 -0
  211. package/dist/packages/runtime/build/runtime-runs.js +265 -0
  212. package/dist/packages/{engine → runtime}/build/runtime-types.d.ts +6 -6
  213. package/dist/packages/runtime/build/runtime-types.js +1 -0
  214. package/dist/packages/runtime/build/runtime.d.ts +6 -0
  215. package/dist/packages/runtime/build/runtime.js +5 -0
  216. package/dist/packages/runtime/build/source-files.d.ts +58 -0
  217. package/dist/packages/runtime/build/source-files.js +184 -0
  218. package/dist/packages/runtime/build/source-inventory.d.ts +27 -0
  219. package/dist/packages/runtime/build/source-inventory.js +273 -0
  220. package/dist/packages/runtime/build/source-manifest.d.ts +52 -0
  221. package/dist/packages/runtime/build/source-manifest.js +192 -0
  222. package/dist/packages/runtime/build/stage-evidence.d.ts +22 -0
  223. package/dist/packages/runtime/build/stage-evidence.js +317 -0
  224. package/dist/packages/runtime/build/stage-reuse.d.ts +11 -0
  225. package/dist/packages/runtime/build/stage-reuse.js +142 -0
  226. package/dist/packages/runtime/build/state-artifacts.d.ts +9 -0
  227. package/dist/packages/runtime/build/state-artifacts.js +14 -0
  228. package/dist/packages/runtime/build/state-health.d.ts +4 -0
  229. package/dist/packages/{engine → runtime}/build/state-health.js +21 -26
  230. package/dist/packages/runtime/build/state-io.d.ts +12 -0
  231. package/dist/packages/runtime/build/state-io.js +119 -0
  232. package/dist/packages/{engine → runtime}/build/state-paths.d.ts +3 -1
  233. package/dist/packages/runtime/build/state-paths.js +22 -0
  234. package/dist/packages/runtime/build/state-view.d.ts +5 -0
  235. package/dist/packages/{engine → runtime}/build/state-view.js +60 -33
  236. package/dist/packages/runtime/build/state.d.ts +7 -0
  237. package/dist/packages/runtime/build/state.js +12 -0
  238. package/dist/packages/runtime/build/traces.d.ts +30 -0
  239. package/dist/packages/runtime/build/traces.js +133 -0
  240. package/dist/packages/{engine/build/validate-verifiable-context.d.ts → runtime/build/validate-context-graph.d.ts} +6 -6
  241. package/dist/packages/{engine/build/validate-verifiable-context.js → runtime/build/validate-context-graph.js} +48 -35
  242. package/dist/packages/{engine → runtime}/build/validate.d.ts +5 -5
  243. package/dist/packages/{engine → runtime}/build/validate.js +26 -26
  244. package/dist/packages/{engine → runtime}/client.d.ts +15 -15
  245. package/dist/packages/{engine → runtime}/client.js +41 -24
  246. package/dist/packages/{engine → runtime}/connection-config.d.ts +3 -2
  247. package/dist/packages/{engine → runtime}/connection-config.js +9 -8
  248. package/dist/packages/runtime/context-checks.d.ts +10 -0
  249. package/dist/packages/runtime/context-checks.js +114 -0
  250. package/dist/packages/runtime/context-graph-scaffold.d.ts +9 -0
  251. package/dist/packages/runtime/context-graph-scaffold.js +134 -0
  252. package/dist/packages/runtime/entitlement-guard.d.ts +43 -0
  253. package/dist/packages/runtime/entitlement-guard.js +70 -0
  254. package/dist/packages/{engine → runtime}/execution/index.d.ts +2 -2
  255. package/dist/packages/{engine → runtime}/execution/index.js +1 -1
  256. package/dist/packages/{engine → runtime}/execution/lib/schema.d.ts +270 -192
  257. package/dist/packages/{engine → runtime}/execution/lib/schema.js +35 -32
  258. package/dist/packages/runtime/index.d.ts +29 -0
  259. package/dist/packages/runtime/index.js +21 -0
  260. package/dist/packages/runtime/instance-paths.d.ts +30 -0
  261. package/dist/packages/runtime/instance-paths.js +29 -0
  262. package/dist/packages/{engine → runtime}/native-run-handlers.d.ts +4 -4
  263. package/dist/packages/{engine → runtime}/native-run-handlers.js +184 -152
  264. package/dist/packages/runtime/plan-artifact-contract.d.ts +17 -0
  265. package/dist/packages/runtime/plan-artifact-contract.js +42 -0
  266. package/dist/packages/runtime/project-entries.d.ts +11 -0
  267. package/dist/packages/runtime/project-entries.js +49 -0
  268. package/dist/packages/runtime/project-source-state.d.ts +26 -0
  269. package/dist/packages/runtime/project-source-state.js +53 -0
  270. package/dist/packages/runtime/project-store.d.ts +85 -0
  271. package/dist/packages/runtime/project-store.js +168 -0
  272. package/dist/packages/runtime/requested-artifacts.d.ts +7 -0
  273. package/dist/packages/{engine → runtime}/requested-artifacts.js +23 -1
  274. package/dist/packages/{engine → runtime}/run-observability.d.ts +2 -1
  275. package/dist/packages/{engine → runtime}/run-observability.js +166 -84
  276. package/dist/packages/runtime/runtime-action-proposals.d.ts +7 -0
  277. package/dist/packages/runtime/runtime-action-proposals.js +542 -0
  278. package/dist/packages/runtime/runtime-build-plans.d.ts +5 -0
  279. package/dist/packages/runtime/runtime-build-plans.js +131 -0
  280. package/dist/packages/runtime/runtime-build-runs.d.ts +47 -0
  281. package/dist/packages/runtime/runtime-build-runs.js +562 -0
  282. package/dist/packages/runtime/runtime-caches.d.ts +91 -0
  283. package/dist/packages/{engine → runtime}/runtime-caches.js +77 -49
  284. package/dist/packages/{engine → runtime}/runtime-event-applier.d.ts +3 -1
  285. package/dist/packages/{engine → runtime}/runtime-event-applier.js +53 -17
  286. package/dist/packages/runtime/runtime-executor.d.ts +22 -0
  287. package/dist/packages/runtime/runtime-executor.js +131 -0
  288. package/dist/packages/runtime/runtime-jobs.d.ts +13 -0
  289. package/dist/packages/runtime/runtime-jobs.js +463 -0
  290. package/dist/packages/runtime/runtime-observability.d.ts +11 -0
  291. package/dist/packages/runtime/runtime-observability.js +39 -0
  292. package/dist/packages/{engine → runtime}/runtime-persistence.d.ts +9 -18
  293. package/dist/packages/{engine → runtime}/runtime-persistence.js +25 -25
  294. package/dist/packages/runtime/runtime-project-mutations.d.ts +7 -0
  295. package/dist/packages/runtime/runtime-project-mutations.js +64 -0
  296. package/dist/packages/runtime/runtime-project-reads.d.ts +15 -0
  297. package/dist/packages/runtime/runtime-project-reads.js +381 -0
  298. package/dist/packages/runtime/runtime-proposal-helpers.d.ts +22 -0
  299. package/dist/packages/runtime/runtime-proposal-helpers.js +223 -0
  300. package/dist/packages/{engine → runtime}/runtime-resource-builders.d.ts +21 -16
  301. package/dist/packages/{engine → runtime}/runtime-resource-builders.js +48 -38
  302. package/dist/packages/runtime/runtime-verify-runs.d.ts +84 -0
  303. package/dist/packages/runtime/runtime-verify-runs.js +295 -0
  304. package/dist/packages/runtime/runtime.d.ts +1165 -0
  305. package/dist/packages/runtime/runtime.js +417 -0
  306. package/dist/packages/runtime/schemas/actions.d.ts +1182 -0
  307. package/dist/packages/runtime/schemas/actions.js +117 -0
  308. package/dist/packages/runtime/schemas/agents.d.ts +76 -0
  309. package/dist/packages/runtime/schemas/agents.js +41 -0
  310. package/dist/packages/runtime/schemas/build-plans.d.ts +959 -0
  311. package/dist/packages/runtime/schemas/build-plans.js +107 -0
  312. package/dist/packages/runtime/schemas/files.d.ts +567 -0
  313. package/dist/packages/runtime/schemas/files.js +51 -0
  314. package/dist/packages/runtime/schemas/index.d.ts +8 -0
  315. package/dist/packages/runtime/schemas/index.js +12 -0
  316. package/dist/packages/runtime/schemas/instance.d.ts +141 -0
  317. package/dist/packages/runtime/schemas/instance.js +143 -0
  318. package/dist/packages/runtime/schemas/jobs.d.ts +339 -0
  319. package/dist/packages/runtime/schemas/jobs.js +103 -0
  320. package/dist/packages/runtime/schemas/projects.d.ts +339 -0
  321. package/dist/packages/runtime/schemas/projects.js +136 -0
  322. package/dist/packages/runtime/schemas/runs.d.ts +2676 -0
  323. package/dist/packages/runtime/schemas/runs.js +98 -0
  324. package/dist/packages/runtime/service/index.d.ts +3 -0
  325. package/dist/packages/runtime/service/index.js +3 -0
  326. package/dist/packages/runtime/service/openapi.d.ts +7 -0
  327. package/dist/packages/runtime/service/openapi.js +117 -0
  328. package/dist/packages/runtime/service/operations.d.ts +1490 -0
  329. package/dist/packages/runtime/service/operations.js +245 -0
  330. package/dist/packages/runtime/service/routes.d.ts +106 -0
  331. package/dist/packages/runtime/service/routes.js +120 -0
  332. package/dist/packages/runtime/service/server-api-files.d.ts +10 -0
  333. package/dist/packages/runtime/service/server-api-files.js +85 -0
  334. package/dist/packages/runtime/service/server-app-boot.d.ts +4 -0
  335. package/dist/packages/runtime/service/server-app-boot.js +46 -0
  336. package/dist/packages/runtime/service/server-guards.d.ts +63 -0
  337. package/dist/packages/runtime/service/server-guards.js +181 -0
  338. package/dist/packages/runtime/service/server-helpers.d.ts +27 -0
  339. package/dist/packages/runtime/service/server-helpers.js +89 -0
  340. package/dist/packages/runtime/service/server-instance-helpers.d.ts +30 -0
  341. package/dist/packages/runtime/service/server-instance-helpers.js +114 -0
  342. package/dist/packages/runtime/service/server-routes-action-proposals.d.ts +3 -0
  343. package/dist/packages/runtime/service/server-routes-action-proposals.js +43 -0
  344. package/dist/packages/runtime/service/server-routes-agents.d.ts +4 -0
  345. package/dist/packages/runtime/service/server-routes-agents.js +198 -0
  346. package/dist/packages/runtime/service/server-routes-auth.d.ts +33 -0
  347. package/dist/packages/runtime/service/server-routes-auth.js +138 -0
  348. package/dist/packages/runtime/service/server-routes-build-plans.d.ts +3 -0
  349. package/dist/packages/runtime/service/server-routes-build-plans.js +83 -0
  350. package/dist/packages/runtime/service/server-routes-discovery.d.ts +4 -0
  351. package/dist/packages/runtime/service/server-routes-discovery.js +196 -0
  352. package/dist/packages/runtime/service/server-routes-events.d.ts +5 -0
  353. package/dist/packages/runtime/service/server-routes-events.js +99 -0
  354. package/dist/packages/runtime/service/server-routes-project-context.d.ts +9 -0
  355. package/dist/packages/runtime/service/server-routes-project-context.js +192 -0
  356. package/dist/packages/runtime/service/server-routes-project-jobs.d.ts +9 -0
  357. package/dist/packages/runtime/service/server-routes-project-jobs.js +130 -0
  358. package/dist/packages/runtime/service/server-routes-project-runs.d.ts +14 -0
  359. package/dist/packages/runtime/service/server-routes-project-runs.js +85 -0
  360. package/dist/packages/runtime/service/server-routes-projects.d.ts +4 -0
  361. package/dist/packages/runtime/service/server-routes-projects.js +92 -0
  362. package/dist/packages/runtime/service/server-routes-runs.d.ts +3 -0
  363. package/dist/packages/runtime/service/server-routes-runs.js +112 -0
  364. package/dist/packages/runtime/service/server.d.ts +37 -0
  365. package/dist/packages/runtime/service/server.js +300 -0
  366. package/dist/packages/{engine → runtime/service}/service-registry.d.ts +5 -5
  367. package/dist/packages/{engine → runtime/service}/service-registry.js +7 -7
  368. package/dist/packages/runtime/verify/benchmark-run.d.ts +81 -0
  369. package/dist/packages/runtime/verify/benchmark-run.js +303 -0
  370. package/dist/packages/{engine → runtime}/verify/index.d.ts +2 -2
  371. package/dist/packages/{engine → runtime}/verify/index.js +1 -1
  372. package/dist/packages/{engine → runtime}/verify/lib/schema.d.ts +83 -16
  373. package/dist/packages/{engine → runtime}/verify/lib/schema.js +26 -18
  374. package/dist/packages/{engine → runtime}/verify/verify-execution.js +11 -11
  375. package/dist/packages/{engine → runtime}/verify/verify-paths.d.ts +4 -4
  376. package/dist/packages/runtime/verify/verify-paths.js +61 -0
  377. package/dist/packages/{engine → runtime}/verify/verify-sandbox.d.ts +1 -1
  378. package/dist/packages/runtime/verify/verify-sandbox.js +88 -0
  379. package/dist/packages/{engine → runtime}/verify/verify-specs.d.ts +2 -0
  380. package/dist/packages/{engine → runtime}/verify/verify-specs.js +5 -3
  381. package/dist/packages/runtime/verify/verify-targets.d.ts +5 -0
  382. package/dist/packages/{engine → runtime}/verify/verify-targets.js +12 -12
  383. package/dist/packages/runtime/verify/verify-types.js +1 -0
  384. package/dist/packages/{engine → runtime}/verify/verify.d.ts +1 -1
  385. package/dist/packages/{engine → runtime}/verify/verify.js +1 -1
  386. package/dist/packages/runtime/wire-schemas.d.ts +18 -0
  387. package/dist/packages/runtime/wire-schemas.js +27 -0
  388. package/package.json +40 -30
  389. package/public-repo/CONTRIBUTING.md +7 -16
  390. package/public-repo/README.md +175 -234
  391. package/public-repo/SECURITY.md +3 -4
  392. package/public-repo/build-plans/interf-default/README.md +19 -14
  393. package/public-repo/build-plans/interf-default/build/stages/shape/SKILL.md +18 -11
  394. package/public-repo/build-plans/interf-default/build/stages/structure/SKILL.md +12 -5
  395. package/public-repo/build-plans/interf-default/build/stages/summarize/SKILL.md +16 -4
  396. package/public-repo/build-plans/interf-default/build-plan.json +34 -28
  397. package/public-repo/build-plans/interf-default/build-plan.schema.json +54 -32
  398. package/public-repo/build-plans/interf-default/improve/SKILL.md +3 -3
  399. package/public-repo/build-plans/interf-default/use/query/SKILL.md +17 -11
  400. package/public-repo/openapi/local-service.openapi.json +6803 -0
  401. package/public-repo/skills/interf/SKILL.md +460 -179
  402. package/dist/cli/commands/prep.d.ts +0 -2
  403. package/dist/cli/commands/prep.js +0 -240
  404. package/dist/cli/commands/test.d.ts +0 -10
  405. package/dist/cli/commands/test.js +0 -85
  406. package/dist/cli/commands/web.d.ts +0 -2
  407. package/dist/cli/commands/web.js +0 -286
  408. package/dist/interf-ui/404.html +0 -1
  409. package/dist/interf-ui/__next.__PAGE__.txt +0 -10
  410. package/dist/interf-ui/__next._full.txt +0 -20
  411. package/dist/interf-ui/__next._head.txt +0 -5
  412. package/dist/interf-ui/__next._index.txt +0 -5
  413. package/dist/interf-ui/__next._tree.txt +0 -5
  414. package/dist/interf-ui/_next/static/_qJKnA0dammQ306MG_zMq/_buildManifest.js +0 -11
  415. package/dist/interf-ui/_next/static/_qJKnA0dammQ306MG_zMq/_clientMiddlewareManifest.js +0 -1
  416. package/dist/interf-ui/_next/static/_qJKnA0dammQ306MG_zMq/_ssgManifest.js +0 -1
  417. package/dist/interf-ui/_next/static/chunks/0.tjb6f4golw..css +0 -3
  418. package/dist/interf-ui/_next/static/chunks/03~yq9q893hmn.js +0 -1
  419. package/dist/interf-ui/_next/static/chunks/085-n_jv2ng_q.css +0 -1
  420. package/dist/interf-ui/_next/static/chunks/0dn41fa_zvgsl.js +0 -1
  421. package/dist/interf-ui/_next/static/chunks/0g-ea0zj5d-0k.js +0 -1
  422. package/dist/interf-ui/_next/static/chunks/0gwqglc4iz583.js +0 -1
  423. package/dist/interf-ui/_next/static/chunks/0haldgm65ve6l.js +0 -1
  424. package/dist/interf-ui/_next/static/chunks/0nv3am99vjzn4.js +0 -1
  425. package/dist/interf-ui/_next/static/chunks/0s77gt_o4jwtx.js +0 -1
  426. package/dist/interf-ui/_next/static/chunks/0y5z3t-z1c8ks.js.map +0 -5
  427. package/dist/interf-ui/_next/static/chunks/0~a36ujuzpaz..js +0 -116
  428. package/dist/interf-ui/_next/static/chunks/10jeodxe4nkgj.js +0 -31
  429. package/dist/interf-ui/_next/static/chunks/119h2rouych2t.js +0 -1
  430. package/dist/interf-ui/_next/static/chunks/13c8b~m8knjsf.js +0 -1
  431. package/dist/interf-ui/_next/static/chunks/14dznb2qpt-ho.js +0 -91
  432. package/dist/interf-ui/_next/static/chunks/15z_en80lrq-3.js +0 -5
  433. package/dist/interf-ui/_next/static/chunks/turbopack-0p.pvcjrtq-jh.js +0 -1
  434. package/dist/interf-ui/_next/static/chunks/turbopack-0usj_75.8frlw.js +0 -1
  435. package/dist/interf-ui/_next/static/chunks/turbopack-worker-0sjn--fhq~1cg.js +0 -1
  436. package/dist/interf-ui/_next/static/media/GeistMono_Variable.p.17jn9btb_52pq.woff2 +0 -0
  437. package/dist/interf-ui/_next/static/media/Geist_Variable-s.p.0-te~ja_gpvcf.woff2 +0 -0
  438. package/dist/interf-ui/_next/static/media/worker.102zas1s52_pf.js +0 -109
  439. package/dist/interf-ui/_not-found/__next._full.txt +0 -15
  440. package/dist/interf-ui/_not-found/__next._head.txt +0 -5
  441. package/dist/interf-ui/_not-found/__next._index.txt +0 -5
  442. package/dist/interf-ui/_not-found/__next._not-found.__PAGE__.txt +0 -5
  443. package/dist/interf-ui/_not-found/__next._not-found.txt +0 -5
  444. package/dist/interf-ui/_not-found/__next._tree.txt +0 -2
  445. package/dist/interf-ui/_not-found.html +0 -1
  446. package/dist/interf-ui/_not-found.txt +0 -15
  447. package/dist/interf-ui/index.html +0 -1
  448. package/dist/interf-ui/index.txt +0 -20
  449. package/dist/packages/contracts/lib/preparation-paths.d.ts +0 -117
  450. package/dist/packages/contracts/lib/preparation-paths.js +0 -177
  451. package/dist/packages/engine/action-definitions.d.ts +0 -407
  452. package/dist/packages/engine/action-definitions.js +0 -1158
  453. package/dist/packages/engine/action-values.d.ts +0 -1
  454. package/dist/packages/engine/action-values.js +0 -1
  455. package/dist/packages/engine/agents/lib/args.d.ts +0 -4
  456. package/dist/packages/engine/agents/lib/args.js +0 -52
  457. package/dist/packages/engine/agents/lib/chart-guidance.d.ts +0 -1
  458. package/dist/packages/engine/agents/lib/chart-guidance.js +0 -8
  459. package/dist/packages/engine/agents/lib/constants.js +0 -28
  460. package/dist/packages/engine/agents/lib/schema.d.ts +0 -8
  461. package/dist/packages/engine/agents/lib/schema.js +0 -7
  462. package/dist/packages/engine/agents/lib/shells.d.ts +0 -74
  463. package/dist/packages/engine/agents/lib/shells.js +0 -1052
  464. package/dist/packages/engine/agents/lib/verifiable-context-bootstrap.d.ts +0 -3
  465. package/dist/packages/engine/build/artifact-counts.d.ts +0 -1
  466. package/dist/packages/engine/build/billing-events.d.ts +0 -89
  467. package/dist/packages/engine/build/build-pipeline.js +0 -175
  468. package/dist/packages/engine/build/build-plan-runs.d.ts +0 -14
  469. package/dist/packages/engine/build/build-plan-runs.js +0 -31
  470. package/dist/packages/engine/build/build-stage-plan.d.ts +0 -16
  471. package/dist/packages/engine/build/build-stage-runner.js +0 -94
  472. package/dist/packages/engine/build/build-target.js +0 -16
  473. package/dist/packages/engine/build/check-evaluator.js +0 -298
  474. package/dist/packages/engine/build/reset.d.ts +0 -2
  475. package/dist/packages/engine/build/reset.js +0 -74
  476. package/dist/packages/engine/build/runtime-inventory.d.ts +0 -7
  477. package/dist/packages/engine/build/runtime-runs.d.ts +0 -10
  478. package/dist/packages/engine/build/runtime-runs.js +0 -224
  479. package/dist/packages/engine/build/runtime.d.ts +0 -5
  480. package/dist/packages/engine/build/runtime.js +0 -4
  481. package/dist/packages/engine/build/source-files.d.ts +0 -46
  482. package/dist/packages/engine/build/source-files.js +0 -149
  483. package/dist/packages/engine/build/state-artifacts.d.ts +0 -9
  484. package/dist/packages/engine/build/state-artifacts.js +0 -14
  485. package/dist/packages/engine/build/state-health.d.ts +0 -4
  486. package/dist/packages/engine/build/state-io.d.ts +0 -11
  487. package/dist/packages/engine/build/state-io.js +0 -82
  488. package/dist/packages/engine/build/state-paths.js +0 -16
  489. package/dist/packages/engine/build/state-view.d.ts +0 -5
  490. package/dist/packages/engine/build/state.d.ts +0 -7
  491. package/dist/packages/engine/build/state.js +0 -12
  492. package/dist/packages/engine/build/validate-helpers.d.ts +0 -12
  493. package/dist/packages/engine/build/validate-helpers.js +0 -41
  494. package/dist/packages/engine/build/verifiable-context-paths.d.ts +0 -47
  495. package/dist/packages/engine/build/verifiable-context-paths.js +0 -121
  496. package/dist/packages/engine/build/verifiable-context-schema.d.ts +0 -21
  497. package/dist/packages/engine/build/verifiable-context-schema.js +0 -126
  498. package/dist/packages/engine/cloud-seams.d.ts +0 -115
  499. package/dist/packages/engine/cloud-seams.js +0 -84
  500. package/dist/packages/engine/index.d.ts +0 -22
  501. package/dist/packages/engine/index.js +0 -15
  502. package/dist/packages/engine/instance-paths.d.ts +0 -106
  503. package/dist/packages/engine/instance-paths.js +0 -171
  504. package/dist/packages/engine/lib/schema.d.ts +0 -6304
  505. package/dist/packages/engine/lib/schema.js +0 -730
  506. package/dist/packages/engine/preparation-store.d.ts +0 -105
  507. package/dist/packages/engine/preparation-store.js +0 -213
  508. package/dist/packages/engine/readiness-check-draft.d.ts +0 -20
  509. package/dist/packages/engine/readiness-check-draft.js +0 -111
  510. package/dist/packages/engine/requested-artifacts.d.ts +0 -5
  511. package/dist/packages/engine/routes.d.ts +0 -85
  512. package/dist/packages/engine/routes.js +0 -99
  513. package/dist/packages/engine/runtime-caches.d.ts +0 -76
  514. package/dist/packages/engine/runtime-proposal-helpers.d.ts +0 -35
  515. package/dist/packages/engine/runtime-proposal-helpers.js +0 -247
  516. package/dist/packages/engine/runtime.d.ts +0 -371
  517. package/dist/packages/engine/runtime.js +0 -2463
  518. package/dist/packages/engine/server.d.ts +0 -58
  519. package/dist/packages/engine/server.js +0 -1399
  520. package/dist/packages/engine/verify/readiness-check-run.d.ts +0 -82
  521. package/dist/packages/engine/verify/readiness-check-run.js +0 -265
  522. package/dist/packages/engine/verify/verify-paths.js +0 -61
  523. package/dist/packages/engine/verify/verify-sandbox.js +0 -88
  524. package/dist/packages/engine/verify/verify-targets.d.ts +0 -5
  525. package/dist/packages/engine/wire-schemas.d.ts +0 -547
  526. package/dist/packages/engine/wire-schemas.js +0 -59
  527. package/dist/packages/project/index.d.ts +0 -9
  528. package/dist/packages/project/interf-bootstrap.d.ts +0 -1
  529. package/dist/packages/project/interf-bootstrap.js +0 -1
  530. package/dist/packages/project/interf-scaffold.d.ts +0 -3
  531. package/dist/packages/project/interf-scaffold.js +0 -136
  532. package/dist/packages/project/interf.d.ts +0 -4
  533. package/dist/packages/project/interf.js +0 -3
  534. package/dist/packages/project/lib/schema.d.ts +0 -328
  535. package/dist/packages/project/lib/schema.js +0 -136
  536. package/dist/packages/project/preparation-entries.d.ts +0 -11
  537. package/dist/packages/project/preparation-entries.js +0 -49
  538. package/dist/packages/project/source-config.d.ts +0 -46
  539. package/dist/packages/project/source-config.js +0 -394
  540. package/dist/packages/project/source-folders.d.ts +0 -11
  541. package/public-repo/plugins/README.md +0 -9
  542. package/public-repo/plugins/interf/.claude-plugin/plugin.json +0 -21
  543. package/public-repo/plugins/interf/.mcp.json +0 -12
  544. package/public-repo/plugins/interf/README.md +0 -32
  545. package/public-repo/plugins/interf/skills/interf/SKILL.md +0 -376
  546. /package/dist/packages/{engine/agents/lib/types.js → runtime/actions/fields.js} +0 -0
  547. /package/dist/packages/{engine → runtime}/agents/lib/agents.d.ts +0 -0
  548. /package/dist/packages/{engine → runtime}/agents/lib/agents.js +0 -0
  549. /package/dist/packages/{engine → runtime}/agents/lib/execution-profile.d.ts +0 -0
  550. /package/dist/packages/{engine → runtime}/agents/lib/execution.d.ts +0 -0
  551. /package/dist/packages/{engine → runtime}/agents/lib/executors.d.ts +0 -0
  552. /package/dist/packages/{engine → runtime}/agents/lib/executors.js +0 -0
  553. /package/dist/packages/{engine → runtime}/agents/lib/logs.d.ts +0 -0
  554. /package/dist/packages/{engine → runtime}/agents/lib/logs.js +0 -0
  555. /package/dist/packages/{engine → runtime}/agents/lib/preflight.d.ts +0 -0
  556. /package/dist/packages/{engine → runtime}/agents/lib/render.d.ts +0 -0
  557. /package/dist/packages/{engine → runtime}/agents/lib/status.d.ts +0 -0
  558. /package/dist/packages/{engine → runtime}/agents/lib/status.js +0 -0
  559. /package/dist/packages/{engine → runtime}/agents/lib/types.d.ts +0 -0
  560. /package/dist/packages/{engine/build/runtime-types.js → runtime/agents/lib/types.js} +0 -0
  561. /package/dist/packages/{engine/verify/verify-types.js → runtime/agents/providers/types.js} +0 -0
  562. /package/dist/packages/{engine → runtime}/agents/role-router.d.ts +0 -0
  563. /package/dist/packages/{engine → runtime}/build/build-execution.d.ts +0 -0
  564. /package/dist/packages/{engine → runtime}/build/build-execution.js +0 -0
  565. /package/dist/packages/{engine → runtime}/build/runtime-contracts.d.ts +0 -0
  566. /package/dist/packages/{engine → runtime}/build/runtime-paths.d.ts +0 -0
  567. /package/dist/packages/{engine → runtime}/build/runtime-prompt.d.ts +0 -0
  568. /package/dist/packages/{engine → runtime}/execution/adapters.d.ts +0 -0
  569. /package/dist/packages/{engine → runtime}/execution/adapters.js +0 -0
  570. /package/dist/packages/{engine → runtime}/execution/events.d.ts +0 -0
  571. /package/dist/packages/{engine → runtime}/execution/events.js +0 -0
  572. /package/dist/packages/{engine → runtime}/verify/verify-execution.d.ts +0 -0
  573. /package/dist/packages/{engine → runtime}/verify/verify-profile-presets.d.ts +0 -0
  574. /package/dist/packages/{engine → runtime}/verify/verify-profile-presets.js +0 -0
  575. /package/dist/packages/{engine → runtime}/verify/verify-types.d.ts +0 -0
@@ -0,0 +1,88 @@
1
+ /**
2
+ * `interf benchmark <project-id>` — run a benchmark/evaluation pass for a
3
+ * Project via a judge against the latest Context Graph and the source
4
+ * baseline by default. A specific target can be selected with `--target`.
5
+ *
6
+ * interf benchmark bristol
7
+ * interf benchmark bristol --target both
8
+ * interf benchmark bristol --target source-files
9
+ *
10
+ */
11
+ import chalk from "chalk";
12
+ import { CONNECT_OR_ERROR_HINT, readActiveConnection } from "../../packages/runtime/connection-config.js";
13
+ function resolveConnection(args) {
14
+ const conn = readActiveConnection({
15
+ urlOverride: args.url,
16
+ authTokenOverride: args.token,
17
+ });
18
+ if (!conn) {
19
+ console.error(CONNECT_OR_ERROR_HINT);
20
+ process.exit(1);
21
+ }
22
+ return { url: conn.url.replace(/\/+$/, ""), token: conn.auth_token };
23
+ }
24
+ async function callJson(url, token, init = {}) {
25
+ const headers = new Headers(init.headers ?? {});
26
+ if (token)
27
+ headers.set("authorization", `Bearer ${token}`);
28
+ if (init.body && !headers.has("content-type"))
29
+ headers.set("content-type", "application/json");
30
+ const response = await fetch(url, { ...init, headers });
31
+ const raw = await response.text();
32
+ let body = null;
33
+ if (raw.length > 0) {
34
+ try {
35
+ body = JSON.parse(raw);
36
+ }
37
+ catch {
38
+ body = null;
39
+ }
40
+ }
41
+ return { status: response.status, body, raw };
42
+ }
43
+ function buildBenchmarkArgs(yargs) {
44
+ return yargs
45
+ .positional("project-id", { type: "string", demandOption: true, describe: "Project id" })
46
+ .option("target", {
47
+ type: "string",
48
+ choices: ["both", "context-graph", "source-files"],
49
+ default: "both",
50
+ describe: "Benchmark target: 'both' (default) compares agent source access from the recorded Source Manifest with the Context Graph, 'context-graph' evaluates the built Context Graph only, 'source-files' evaluates the Source Manifest baseline only",
51
+ })
52
+ .option("url", { type: "string", describe: "Override the active connection URL" })
53
+ .option("token", { type: "string", describe: "Override the active bearer token" });
54
+ }
55
+ async function runBenchmark(args) {
56
+ const { url, token } = resolveConnection(args);
57
+ // hard-error: refuse to start a benchmark run if the local service
58
+ // has zero execution agents — verifier-role stages can't run without one.
59
+ const instance = await callJson(`${url}/v1/instance`, token);
60
+ if (instance.body && instance.body.agent_count === 0) {
61
+ console.error(chalk.red(" Cannot run benchmark evaluation — no agents available."));
62
+ console.error(" Install Claude Code, Codex, Gemini, or another agent CLI, or");
63
+ console.error(" register a custom CLI: `interf agents register <name> --command <cmd>`.");
64
+ process.exit(1);
65
+ }
66
+ const target = args.target ?? "both";
67
+ const { status, body, raw } = await callJson(`${url}/v1/projects/${encodeURIComponent(args.projectId)}/verify-runs`, token, { method: "POST", body: JSON.stringify({ target }) });
68
+ if (status !== 201 && status !== 200) {
69
+ console.error(chalk.red(`Failed to start benchmark/evaluation run for ${args.projectId} (HTTP ${status}).`));
70
+ if (raw)
71
+ console.error(raw);
72
+ process.exit(1);
73
+ }
74
+ console.log();
75
+ console.log(` Run ${chalk.bold(body?.run_id ?? "(?)")} ${chalk.dim(`(${body?.status ?? "started"})`)}`);
76
+ console.log(` Target: ${target}`);
77
+ if (body?.readiness?.status)
78
+ console.log(` Readiness: ${body.readiness.status}`);
79
+ if (body?.error)
80
+ console.log(chalk.red(` Error: ${body.error}`));
81
+ console.log();
82
+ }
83
+ export const benchmarkCommand = {
84
+ command: "benchmark <project-id>",
85
+ describe: "Run a benchmark/evaluation pass against a Project's Context Graph (or source-files baseline)",
86
+ builder: buildBenchmarkArgs,
87
+ handler: runBenchmark,
88
+ };
@@ -1,19 +1,22 @@
1
1
  /**
2
- * `interf build-plan` — manage Build Plans on the connected instance.
2
+ * `interf plan` — manage Build Plans on the connected instance.
3
3
  *
4
- * interf build-plan list # list Build Plans
5
- * interf build-plan show <build-plan-id> # show a Build Plan summary
6
- * interf build-plan select <prep-id> <id> # select a Build Plan for a Preparation
7
- * interf build-plan save <path-or-id> # save/promote a reusable Build Plan
8
- * interf build-plan draft <prep-id> # start a Build Plan draft run
9
- * interf build-plan improve <prep-id> # start a Build Plan improvement run
4
+ * interf plan list # list Build Plans
5
+ * interf plan show <plan-id> # show a Build Plan summary
6
+ * interf plan select <project-id> <id> # select a Build Plan for a Project
7
+ * interf plan save <path-or-id> # save/promote a reusable Build Plan
8
+ * interf plan draft <project-id> # start a Build Plan draft run
9
+ * interf plan improve <project-id> # start a Build Plan improvement run
10
+ *
11
+ * The command name stays short for CLI ergonomics; user-facing copy says
12
+ * Build Plan.
10
13
  */
11
14
  import chalk from "chalk";
12
15
  import { resolve } from "node:path";
13
- import { CONNECT_OR_ERROR_HINT, readActiveConnection } from "../../packages/engine/connection-config.js";
14
- import { buildPlanResourcePath, preparationResourcePath, preparationSubresourcePath, } from "../../packages/engine/routes.js";
15
- import { BuildPlanAuthoringArtifactRequirementSchema, } from "../../packages/engine/lib/schema.js";
16
- import { artifactRequirementsFromRequestedArtifacts, formatRequestedArtifactsForPrompt, } from "../../packages/engine/requested-artifacts.js";
16
+ import { CONNECT_OR_ERROR_HINT, readActiveConnection } from "../../packages/runtime/connection-config.js";
17
+ import { buildPlanResourcePath, projectResourcePath, projectSubresourcePath, } from "../../packages/runtime/service/routes.js";
18
+ import { BuildPlanAuthoringArtifactRequirementSchema, BuildPlanContextCheckDraftSchema, RequestedArtifactSchema, SourceContextSchema, } from "../../packages/runtime/schemas/index.js";
19
+ import { artifactRequirementsFromRequestedArtifacts, formatRequestedArtifactsForPrompt, requestedArtifactsFromPlanArtifacts, } from "../../packages/runtime/requested-artifacts.js";
17
20
  import { slugify } from "../../packages/contracts/utils/naming.js";
18
21
  function resolveConnection(args) {
19
22
  const conn = readActiveConnection({
@@ -45,10 +48,9 @@ async function callJson(url, token, init = {}) {
45
48
  }
46
49
  return { status: response.status, body, raw };
47
50
  }
48
- function asArray(value) {
49
- return Array.isArray(value) ? value : [];
50
- }
51
51
  const BuildPlanAuthoringArtifactRequirementsCliSchema = BuildPlanAuthoringArtifactRequirementSchema.array();
52
+ const BuildPlanChecksCliSchema = BuildPlanContextCheckDraftSchema.array();
53
+ const RequestedArtifactsCliSchema = RequestedArtifactSchema.array();
52
54
  function parseJsonOption(label, value, parse) {
53
55
  if (!value)
54
56
  return undefined;
@@ -70,16 +72,16 @@ function parseJsonOption(label, value, parse) {
70
72
  process.exit(1);
71
73
  }
72
74
  }
73
- function buildPreparationReviewUrl(url, prepId) {
74
- return `${url}/?section=preparations&preparation=${encodeURIComponent(prepId)}&preparationTab=build-plan`;
75
+ function buildProjectReviewUrl(url, projectId) {
76
+ return `${url}/?section=projects&project=${encodeURIComponent(projectId)}&projectTab=build-plan`;
75
77
  }
76
- function buildRunUrl(url, prepId, runId) {
78
+ function buildRunUrl(url, projectId, runId) {
77
79
  if (!runId)
78
80
  return null;
79
- return `${url}/?section=preparations&preparation=${encodeURIComponent(prepId)}&preparationTab=runs&run=${encodeURIComponent(runId)}`;
81
+ return `${url}/?section=projects&project=${encodeURIComponent(projectId)}&projectTab=runs&run=${encodeURIComponent(runId)}`;
80
82
  }
81
- function defaultBuildPlanIdForPreparation(prepId) {
82
- return slugify(`${prepId}-build-plan`) || "build-plan";
83
+ function defaultBuildPlanIdForProject(projectId) {
84
+ return slugify(`${projectId}-build-plan`) || "build-plan";
83
85
  }
84
86
  function labelFromBuildPlanId(buildPlanId) {
85
87
  const label = buildPlanId
@@ -132,121 +134,104 @@ function renderBuildPlanSummary(buildPlan) {
132
134
  console.log(chalk.dim(` writes: ${writes}`));
133
135
  }
134
136
  }
135
- if (buildPlan.active_for_preparations?.length) {
137
+ if (buildPlan.active_for_projects?.length) {
136
138
  console.log();
137
- console.log(chalk.dim(` used by: ${buildPlan.active_for_preparations.join(", ")}`));
139
+ console.log(chalk.dim(` used by: ${buildPlan.active_for_projects.join(", ")}`));
138
140
  }
139
141
  console.log();
140
142
  console.log(chalk.dim(" Run with --json for the raw Build Plan record."));
141
143
  console.log();
142
144
  }
143
- function preparationChecks(preparation) {
144
- return asArray(preparation.checks).length
145
- ? asArray(preparation.checks)
146
- : asArray(preparation.preparation?.checks);
147
- }
148
- function preparationRequestedArtifacts(preparation) {
149
- return preparation.requested_artifacts?.length
150
- ? preparation.requested_artifacts
151
- : preparation.preparation?.requested_artifacts ?? [];
152
- }
153
- function preparationSourceProfile(preparation) {
154
- return preparation.source_profile ?? preparation.preparation?.source_profile ?? null;
145
+ async function selectedBuildPlanRequestedArtifacts(url, token, buildPlanId) {
146
+ if (!buildPlanId)
147
+ return [];
148
+ const fetched = await callJson(`${url}${buildPlanResourcePath(buildPlanId)}`, token);
149
+ if (fetched.status !== 200 || !fetched.body)
150
+ return [];
151
+ return requestedArtifactsFromPlanArtifacts(fetched.body.artifacts ?? []);
155
152
  }
156
- function selectedBuildPlanId(preparation) {
157
- return preparation.build_plan_id ?? preparation.preparation?.build_plan ?? null;
153
+ function selectedBuildPlanId(project) {
154
+ return project.build_plan_id;
158
155
  }
159
- function sourceFolderPathFromPreparation(preparation, sourceFiles) {
160
- if (preparation.source?.kind === "local-folder" && preparation.source.locator)
161
- return preparation.source.locator;
162
- if (sourceFiles?.source_files?.[0]?.source_folder_path)
163
- return sourceFiles.source_files[0].source_folder_path;
164
- return preparation.source_path ?? null;
165
- }
166
- function buildTaskPrompt(args, preparation, prepId, mode) {
167
- const about = (preparation.about ?? preparation.preparation?.about)?.trim();
168
- const requestedArtifacts = formatRequestedArtifactsForPrompt(preparationRequestedArtifacts(preparation));
156
+ function buildTaskPrompt(args, requestedArtifacts, projectId, mode) {
157
+ const requestedArtifactsText = formatRequestedArtifactsForPrompt(requestedArtifacts);
169
158
  const sections = [
170
- `${mode === "improve" ? "Improve" : "Draft"} a Build Plan for Preparation "${prepId}".`,
171
- args.task?.trim() ? `Agent job:\n${args.task.trim()}` : null,
172
- about ? `Preparation context:\n${about}` : null,
173
- requestedArtifacts ? `Requested Artifacts saved on the Preparation:\n${requestedArtifacts}` : null,
159
+ `${mode === "improve" ? "Improve" : "Draft"} a Build Plan for Project "${projectId}".`,
160
+ args.intent?.trim() ? `Intent:\n${args.intent.trim()}` : null,
161
+ requestedArtifactsText ? `Requested Artifacts:\n${requestedArtifactsText}` : null,
174
162
  args.artifacts?.trim() ? `Additional Artifact notes:\n${args.artifacts.trim()}` : null,
175
- args.readyWhen?.trim() ? `Ready when:\n${args.readyWhen.trim()}` : null,
176
- "Return a Build Plan definition that declares the verifiable Artifacts, the stages that build them, and the checks that prove the verifiable context is ready for agent work.",
163
+ args.readyWhen?.trim() ? `Context Check:\n${args.readyWhen.trim()}` : null,
164
+ "Return a Build Plan definition that declares Context Checks, the requested Artifacts backing them, the stages that build those Artifacts, and Artifact diagnostics for internal validation.",
177
165
  ].filter((section) => Boolean(section));
178
166
  return sections.join("\n\n");
179
167
  }
180
- async function readPreparationContext(url, token, prepId) {
181
- const fetched = await callJson(`${url}${preparationResourcePath(prepId)}`, token);
168
+ async function readProjectContext(url, token, projectId) {
169
+ const fetched = await callJson(`${url}${projectResourcePath(projectId)}`, token);
182
170
  if (fetched.status !== 200 || !fetched.body) {
183
- console.error(chalk.red(`Failed to read Preparation ${prepId} (HTTP ${fetched.status}).`));
171
+ console.error(chalk.red(`Failed to read Project ${projectId} (HTTP ${fetched.status}).`));
184
172
  if (fetched.raw)
185
173
  console.error(fetched.raw);
186
174
  process.exit(1);
187
175
  }
188
- let sourceFiles = null;
189
- const sourcePath = sourceFolderPathFromPreparation(fetched.body, sourceFiles);
190
- if (!sourcePath) {
191
- const listed = await callJson(`${url}${preparationSubresourcePath(prepId, "sourceFiles")}`, token);
192
- if (listed.status === 200)
193
- sourceFiles = listed.body;
194
- }
195
- const sourceFolderPath = sourceFolderPathFromPreparation(fetched.body, sourceFiles);
196
- if (!sourceFolderPath) {
197
- console.error(chalk.red(`Preparation ${prepId} has no readable local Source binding.`));
198
- process.exit(1);
199
- }
200
176
  return {
201
- preparation: fetched.body,
202
- sourceFolderPath,
203
- checks: preparationChecks(fetched.body),
177
+ project: fetched.body,
204
178
  };
205
179
  }
206
180
  async function startBuildPlanRun(args, mode) {
207
181
  const { url, token } = resolveConnection(args);
208
- const { preparation, sourceFolderPath, checks } = await readPreparationContext(url, token, args.prepId);
209
- const existingBuildPlan = selectedBuildPlanId(preparation);
210
- const buildPlanId = args.buildPlan ?? (mode === "improve" ? existingBuildPlan : defaultBuildPlanIdForPreparation(args.prepId));
211
- const requestedArtifacts = preparationRequestedArtifacts(preparation);
182
+ const { project } = await readProjectContext(url, token, args.projectId);
183
+ const existingBuildPlan = selectedBuildPlanId(project);
184
+ const buildPlanId = args.buildPlan ?? (mode === "improve" ? existingBuildPlan : defaultBuildPlanIdForProject(args.projectId));
185
+ const explicitRequestedArtifacts = parseJsonOption("--requested-artifacts-json", args.requestedArtifactsJson, (input) => RequestedArtifactsCliSchema.parse(input));
186
+ const requestedArtifacts = explicitRequestedArtifacts
187
+ ?? await selectedBuildPlanRequestedArtifacts(url, token, existingBuildPlan);
212
188
  const explicitArtifactRequirements = parseJsonOption("--artifact-requirements-json", args.artifactRequirementsJson, (input) => BuildPlanAuthoringArtifactRequirementsCliSchema.parse(input));
213
189
  const artifactRequirements = explicitArtifactRequirements
214
190
  ?? artifactRequirementsFromRequestedArtifacts(requestedArtifacts);
191
+ const explicitChecks = parseJsonOption("--checks-json", args.checksJson, (input) => BuildPlanChecksCliSchema.parse(input));
192
+ const sourceContext = parseJsonOption("--source-context-json", args.sourceContextJson, (input) => SourceContextSchema.parse(input));
193
+ const buildPlanChecks = explicitChecks
194
+ ?? (args.readyWhen?.trim()
195
+ ? [{
196
+ label: args.readyWhen.trim(),
197
+ backed_by_artifact_ids: artifactRequirements.map((artifact) => artifact.id),
198
+ required: true,
199
+ }]
200
+ : []);
215
201
  if (!buildPlanId) {
216
- console.error(chalk.red(`Preparation ${args.prepId} has no selected Build Plan to improve.`));
217
- console.error(chalk.dim(`Draft one first: interf build-plan draft ${args.prepId} --task "..."`));
202
+ console.error(chalk.red(`Project ${args.projectId} has no selected Build Plan to improve.`));
203
+ console.error(chalk.dim(`Draft a Build Plan first: interf plan draft ${args.projectId} --intent "..."`));
218
204
  process.exit(1);
219
205
  }
220
206
  const body = {
221
- preparation: args.prepId,
222
- source_folder_path: sourceFolderPath,
207
+ project: args.projectId,
223
208
  ...(args.baseBuildPlan ? { base_build_plan_id: args.baseBuildPlan } : {}),
224
209
  ...(args.referenceBuildPlan ? { reference_build_plan_id: args.referenceBuildPlan } : {}),
225
210
  ...(mode === "improve" && !args.referenceBuildPlan && existingBuildPlan ? { reference_build_plan_id: existingBuildPlan } : {}),
226
211
  build_plan_id: buildPlanId,
227
212
  label: args.label ?? labelFromBuildPlanId(buildPlanId),
228
- hint: args.hint ?? `Build Plan for Preparation ${args.prepId}.`,
229
- task_prompt: buildTaskPrompt(args, preparation, args.prepId, mode),
230
- checks,
213
+ hint: args.hint ?? `Build Plan for Project ${args.projectId}.`,
214
+ intent: buildTaskPrompt(args, requestedArtifacts, args.projectId, mode),
215
+ checks: buildPlanChecks,
231
216
  requested_artifacts: requestedArtifacts,
232
- source_profile: preparationSourceProfile(preparation),
233
217
  artifact_requirements: artifactRequirements,
218
+ ...(sourceContext !== undefined ? { source_context: sourceContext } : {}),
234
219
  };
235
220
  const endpoint = mode === "improve" ? "buildPlanImprovementRuns" : "buildPlanDraftRuns";
236
- const { status, body: run, raw } = await callJson(`${url}${preparationSubresourcePath(args.prepId, endpoint)}`, token, { method: "POST", body: JSON.stringify(body) });
221
+ const { status, body: run, raw } = await callJson(`${url}${projectSubresourcePath(args.projectId, endpoint)}`, token, { method: "POST", body: JSON.stringify(body) });
237
222
  if (status !== 202 && status !== 201 && status !== 200) {
238
223
  console.error(chalk.red(`Failed to start Build Plan ${mode} run (HTTP ${status}).`));
239
224
  if (raw)
240
225
  console.error(raw);
241
226
  process.exit(1);
242
227
  }
243
- const runUrl = buildRunUrl(url, args.prepId, run?.run_id);
244
- const reviewUrl = buildPreparationReviewUrl(url, args.prepId);
228
+ const runUrl = buildRunUrl(url, args.projectId, run?.run_id);
229
+ const reviewUrl = buildProjectReviewUrl(url, args.projectId);
245
230
  if (args.json) {
246
231
  console.log(JSON.stringify({
247
232
  run_id: run?.run_id ?? null,
248
233
  status: run?.status ?? null,
249
- preparation: args.prepId,
234
+ project: args.projectId,
250
235
  build_plan_id: buildPlanId,
251
236
  run_url: runUrl,
252
237
  review_url: reviewUrl,
@@ -260,8 +245,9 @@ async function startBuildPlanRun(args, mode) {
260
245
  console.log(chalk.dim(` review after it finishes: ${reviewUrl}`));
261
246
  }
262
247
  export const buildPlanCommand = {
263
- command: "build-plan <subcommand>",
248
+ command: "plan <subcommand>",
264
249
  describe: "Manage Build Plans on the connected instance",
250
+ aliases: [],
265
251
  builder: (yargs) => yargs
266
252
  .option("url", { type: "string", describe: "Override the active connection URL" })
267
253
  .option("token", { type: "string", describe: "Override the active bearer token" })
@@ -285,8 +271,8 @@ export const buildPlanCommand = {
285
271
  const label = buildPlan.label ? ` ${chalk.dim(buildPlan.label)}` : "";
286
272
  const kind = buildPlan.source_kind ? chalk.dim(`[${buildPlan.source_kind}]`) : "";
287
273
  console.log(` ${chalk.bold(id)} ${kind}${label}`);
288
- if (buildPlan.active_for_preparations?.length) {
289
- console.log(chalk.dim(` used by: ${buildPlan.active_for_preparations.join(", ")}`));
274
+ if (buildPlan.active_for_projects?.length) {
275
+ console.log(chalk.dim(` used by: ${buildPlan.active_for_projects.join(", ")}`));
290
276
  }
291
277
  }
292
278
  console.log();
@@ -327,42 +313,48 @@ export const buildPlanCommand = {
327
313
  }
328
314
  renderBuildPlanSummary(body);
329
315
  })
330
- .command("select <prep-id> <build-plan-id>", "Select a Build Plan for a Preparation", (y) => y
331
- .positional("prep-id", { type: "string", demandOption: true, describe: "Preparation id" })
316
+ .command("select <project-id> <build-plan-id>", "Select a Build Plan for a Project", (y) => y
317
+ .positional("project-id", { type: "string", demandOption: true, describe: "Project id" })
332
318
  .positional("build-plan-id", { type: "string", demandOption: true, describe: "Build Plan id" }), async (args) => {
333
319
  const { url, token } = resolveConnection(args);
334
- const { status, raw } = await callJson(`${url}${preparationResourcePath(args.prepId)}`, token, { method: "PATCH", body: JSON.stringify({ build_plan_id: args.buildPlanId }) });
320
+ const { status, raw } = await callJson(`${url}${projectResourcePath(args.projectId)}`, token, { method: "PATCH", body: JSON.stringify({ build_plan_id: args.buildPlanId }) });
335
321
  if (status !== 200) {
336
322
  console.error(chalk.red(`Failed to select Build Plan (HTTP ${status}).`));
337
323
  if (raw)
338
324
  console.error(raw);
339
325
  process.exit(1);
340
326
  }
341
- console.log(chalk.green(`Selected Build Plan ${chalk.bold(args.buildPlanId)} for ${chalk.bold(args.prepId)}.`));
327
+ console.log(chalk.green(`Selected Build Plan ${chalk.bold(args.buildPlanId)} for ${chalk.bold(args.projectId)}.`));
342
328
  })
343
- .command("draft <prep-id>", "Start a Build Plan draft run for a preparation", (y) => y
344
- .positional("prep-id", { type: "string", demandOption: true, describe: "Preparation id" })
345
- .option("task", { type: "string", describe: "Agent job this Build Plan should support" })
329
+ .command("draft <project-id>", "Start a Build Plan draft run for a Project", (y) => y
330
+ .positional("project-id", { type: "string", demandOption: true, describe: "Project id" })
331
+ .option("intent", { type: "string", demandOption: true, describe: "Agent task this Build Plan should support" })
346
332
  .option("artifacts", { type: "string", describe: "Requested Artifacts and why the agent needs them" })
333
+ .option("requested-artifacts-json", { type: "string", describe: "JSON array of structured requested Artifacts for Build Plan authoring" })
334
+ .option("checks-json", { type: "string", describe: "JSON array of Context Checks for Build Plan authoring" })
347
335
  .option("artifact-requirements-json", { type: "string", describe: "JSON array of exact Artifact output requirements for the Build Plan" })
348
- .option("ready-when", { type: "string", describe: "Proof or readiness expectations for the Build Plan" })
336
+ .option("source-context-json", { type: "string", describe: "JSON object with advisory Source context for Build Plan authoring" })
337
+ .option("ready-when", { type: "string", describe: "Plain-English Context Check the requested Artifacts should satisfy" })
349
338
  .option("build-plan", { type: "string", describe: "Build Plan id to write" })
350
339
  .option("label", { type: "string", describe: "Human-readable Build Plan label" })
351
- .option("hint", { type: "string", describe: "Short Build Plan hint for reviewers" })
340
+ .option("hint", { type: "string", describe: "Short Build Plan summary for review" })
352
341
  .option("base-build-plan", { type: "string", describe: "Existing Build Plan id to use as a starting point" })
353
342
  .option("reference-build-plan", { type: "string", describe: "Existing Build Plan id to reference while drafting" })
354
343
  .option("json", { type: "boolean", default: false, describe: "Print machine-readable run metadata" }), async (args) => {
355
344
  await startBuildPlanRun(args, "draft");
356
345
  })
357
- .command("improve <prep-id>", "Start a Build Plan improvement run for a preparation", (y) => y
358
- .positional("prep-id", { type: "string", demandOption: true, describe: "Preparation id" })
359
- .option("task", { type: "string", describe: "Change request for the selected Build Plan" })
346
+ .command("improve <project-id>", "Start a Build Plan improvement run for a Project", (y) => y
347
+ .positional("project-id", { type: "string", demandOption: true, describe: "Project id" })
348
+ .option("intent", { type: "string", describe: "Change request for the selected Build Plan" })
360
349
  .option("artifacts", { type: "string", describe: "Requested Artifact changes and why they matter" })
350
+ .option("requested-artifacts-json", { type: "string", describe: "JSON array of structured requested Artifacts for Build Plan authoring" })
351
+ .option("checks-json", { type: "string", describe: "JSON array of Context Checks for Build Plan authoring" })
361
352
  .option("artifact-requirements-json", { type: "string", describe: "JSON array of exact Artifact output requirements for the Build Plan" })
362
- .option("ready-when", { type: "string", describe: "Proof or readiness expectations to add or change" })
353
+ .option("source-context-json", { type: "string", describe: "JSON object with advisory Source context for Build Plan authoring" })
354
+ .option("ready-when", { type: "string", describe: "Plain-English Context Check to add or change" })
363
355
  .option("build-plan", { type: "string", describe: "Build Plan id to update" })
364
356
  .option("label", { type: "string", describe: "Human-readable Build Plan label" })
365
- .option("hint", { type: "string", describe: "Short Build Plan hint for reviewers" })
357
+ .option("hint", { type: "string", describe: "Short Build Plan summary for review" })
366
358
  .option("base-build-plan", { type: "string", describe: "Existing Build Plan id to use as a starting point" })
367
359
  .option("reference-build-plan", { type: "string", describe: "Existing Build Plan id to reference while improving" })
368
360
  .option("json", { type: "boolean", default: false, describe: "Print machine-readable run metadata" }), async (args) => {
@@ -1,6 +1,6 @@
1
1
  import type { CommandModule } from "yargs";
2
2
  interface BuildArgs {
3
- prepId: string;
3
+ projectId: string;
4
4
  watch?: boolean;
5
5
  quiet?: boolean;
6
6
  idempotencyKey?: string;
@@ -5,10 +5,11 @@
5
5
  * interf build bristol --quiet # only the locator on stdout (scripting)
6
6
  * interf build bristol --watch # stream events
7
7
  *
8
- * Requires an active connection. Hits POST /v1/preparations/<id>/build-runs.
8
+ * Requires an active connection. Hits POST /v1/projects/<id>/build-runs.
9
9
  */
10
10
  import chalk from "chalk";
11
- import { CONNECT_OR_ERROR_HINT, readActiveConnection } from "../../packages/engine/connection-config.js";
11
+ import { CONNECT_OR_ERROR_HINT, readActiveConnection } from "../../packages/runtime/connection-config.js";
12
+ import { projectSubresourcePath } from "../../packages/runtime/service/routes.js";
12
13
  function resolveConnection(args) {
13
14
  const conn = readActiveConnection({
14
15
  urlOverride: args.url,
@@ -40,19 +41,19 @@ async function callJson(url, token, init = {}) {
40
41
  return { status: response.status, body, raw };
41
42
  }
42
43
  export const buildCommand = {
43
- command: "build <prep-id>",
44
- describe: "Run the selected Build Plan for a Preparation",
44
+ command: "build <project-id>",
45
+ describe: "Build Context Graph for a Project",
45
46
  builder: (yargs) => yargs
46
- .positional("prep-id", { type: "string", demandOption: true, describe: "Preparation id" })
47
- .option("watch", { type: "boolean", default: false, describe: "Stream build-run events" })
48
- .option("quiet", { type: "boolean", default: false, describe: "Print only the context locator on success" })
47
+ .positional("project-id", { type: "string", demandOption: true, describe: "Project id" })
48
+ .option("watch", { type: "boolean", default: false, describe: "Stream Run events" })
49
+ .option("quiet", { type: "boolean", default: false, describe: "Print only the Context Graph locator on success" })
49
50
  .option("idempotency-key", { type: "string", describe: "Client-supplied dedupe key" })
50
51
  .option("url", { type: "string", describe: "Override the active connection URL" })
51
52
  .option("token", { type: "string", describe: "Override the active bearer token" }),
52
53
  handler: async (args) => {
53
54
  const { url, token } = resolveConnection(args);
54
- // 0.15 hard-error: refuse to start a build if the engine has zero
55
- // connected agents — the build pipeline can't run without one.
55
+ // hard-error: refuse to start a Build if the local service has zero
56
+ // execution agents — the build pipeline can't run without one.
56
57
  const instance = await callJson(`${url}/v1/instance`, token);
57
58
  if (instance.body && instance.body.agent_count === 0) {
58
59
  console.error(chalk.red(" Cannot build — no agents available."));
@@ -63,26 +64,26 @@ export const buildCommand = {
63
64
  const headers = {};
64
65
  if (args.idempotencyKey)
65
66
  headers["x-interf-idempotency-key"] = args.idempotencyKey;
66
- const { status, body, raw } = await callJson(`${url}/v1/preparations/${encodeURIComponent(args.prepId)}/build-runs`, token, { method: "POST", headers, body: JSON.stringify({}) });
67
+ const { status, body, raw } = await callJson(`${url}${projectSubresourcePath(args.projectId, "buildRuns")}`, token, { method: "POST", headers, body: JSON.stringify({}) });
67
68
  if (status !== 201 && status !== 200 && status !== 202) {
68
- console.error(chalk.red(`Failed to start build run for ${args.prepId} (HTTP ${status}).`));
69
+ console.error(chalk.red(`Failed to build Context Graph for ${args.projectId} (HTTP ${status}).`));
69
70
  if (raw)
70
71
  console.error(raw);
71
72
  process.exit(1);
72
73
  }
73
74
  const run = body?.run;
74
75
  const runId = run?.run_id ?? "(unknown run)";
75
- const locator = run?.verifiable_context_path ?? "(no locator)";
76
+ const locator = run?.context_graph_path ?? "(no locator)";
76
77
  if (args.quiet) {
77
78
  console.log(locator);
78
79
  return;
79
80
  }
80
81
  console.log();
81
82
  console.log(` Build run ${chalk.bold(runId)} ${chalk.dim(`(${run?.status ?? "started"})`)}`);
82
- console.log(` Verifiable context: ${locator}`);
83
+ console.log(` Context Graph: ${locator}`);
83
84
  if (run?.status === "succeeded" || run?.finished_at) {
84
- const prepResp = await callJson(`${url}/v1/preparations/${encodeURIComponent(args.prepId)}`, token);
85
- const readiness = prepResp.body?.readiness?.status;
85
+ const projectResp = await callJson(`${url}/v1/projects/${encodeURIComponent(args.projectId)}`, token);
86
+ const readiness = projectResp.body?.readiness?.status;
86
87
  if (readiness)
87
88
  console.log(` Readiness: ${readiness}`);
88
89
  }
@@ -1,5 +1,5 @@
1
1
  import chalk from "chalk";
2
- import { agents, userConfig } from "../../packages/engine/agents/index.js";
2
+ import { agents, userConfig } from "../../packages/runtime/agents/index.js";
3
3
  function iconFor(status) {
4
4
  if (status === "pass")
5
5
  return chalk.green("✓");
@@ -97,7 +97,7 @@ export const doctorCommand = {
97
97
  id: "live",
98
98
  label: "Live executor preflight",
99
99
  status: "skipped",
100
- message: "Skipped. Run `interf doctor --live` to exercise the real local agent before drafting readiness checks, Build Plan authoring, a readiness check, or a Build run.",
100
+ message: "Skipped. Run `interf doctor --live` to exercise the real local agent before drafting benchmark questions, Build Plan authoring, a benchmark pass, or a Build.",
101
101
  });
102
102
  }
103
103
  const ok = checks.every((check) => check.status !== "fail");
@@ -121,7 +121,7 @@ export const doctorCommand = {
121
121
  }
122
122
  console.log();
123
123
  if (!argv.live) {
124
- console.log(chalk.dim(" Tip: run `interf doctor --live` before a first build on a new machine."));
124
+ console.log(chalk.dim(" Tip: run `interf doctor --live` before a first Build on a new machine."));
125
125
  console.log();
126
126
  }
127
127
  }
@@ -0,0 +1,2 @@
1
+ import type { CommandModule } from "yargs";
2
+ export declare const graphsCommand: CommandModule;