@interf/compiler 0.22.2 → 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 +175 -234
  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 +39 -31
  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/--reS3xBzM5zc6QxNjZd6/_buildManifest.js +0 -11
  415. package/dist/interf-ui/_next/static/--reS3xBzM5zc6QxNjZd6/_clientMiddlewareManifest.js +0 -1
  416. package/dist/interf-ui/_next/static/--reS3xBzM5zc6QxNjZd6/_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,303 @@
1
+ import { existsSync, mkdirSync, writeFileSync } from "node:fs";
2
+ import { dirname, join } from "node:path";
3
+ import { buildTestSpecFromProjectConfig, buildTestSpecFromSourceFolderConfig, fingerprintSavedBenchmarkSpec, } from "../../projects/source-config.js";
4
+ import { asProjectDataDir, projectLatestBenchmarkRunPath, projectLatestBenchmarkSummaryPath, projectTestRunPath, projectTestRunsRoot, projectTestsRoot, normalizeProjectTestRunId, projectContextGraphPath, } from "../../contracts/lib/project-paths.js";
5
+ import { testRootForContextGraph } from "../build/context-graph-paths.js";
6
+ import { readJsonFileWithSchema } from "../../contracts/utils/parse.js";
7
+ import { resolveBuildPlanId } from "../../build-plans/build-plan-resolution.js";
8
+ import { createContextGraphTestTarget, createSourceFilesTestTarget, runTargetTestsAuto, saveTargetTestRun, } from "./verify.js";
9
+ import { BenchmarkRunSchema, } from "./lib/schema.js";
10
+ export function benchmarkPassRate(outcome) {
11
+ return outcome.result.totalCases > 0
12
+ ? Math.round((outcome.result.passedCases / outcome.result.totalCases) * 100)
13
+ : 0;
14
+ }
15
+ function visibleRunPath(outcome) {
16
+ return outcome.displayRunPath ?? outcome.runPath;
17
+ }
18
+ function traceUsesSourceFiles(trace) {
19
+ if (!trace || typeof trace !== "object" || Array.isArray(trace))
20
+ return false;
21
+ const record = trace;
22
+ if (record.used_source_files === true)
23
+ return true;
24
+ const sourcePaths = record.source_paths_read;
25
+ return Array.isArray(sourcePaths) && sourcePaths.some((entry) => typeof entry === "string" && entry.trim().length > 0);
26
+ }
27
+ function sourceUsageForOutcome(outcome) {
28
+ if (outcome.target.type === "source-files")
29
+ return "source-baseline";
30
+ const caseResults = outcome.result.caseResults ?? [];
31
+ if (caseResults.length === 0)
32
+ return "unknown";
33
+ return caseResults.some((result) => traceUsesSourceFiles(result.trace))
34
+ ? "graph-source-verified"
35
+ : "graph-only";
36
+ }
37
+ function summarizeSavedTestOutcome(label, outcome) {
38
+ return {
39
+ label,
40
+ run_path: visibleRunPath(outcome),
41
+ ok: outcome.result.ok,
42
+ passed_cases: outcome.result.passedCases,
43
+ total_cases: outcome.result.totalCases,
44
+ passed_checks: outcome.result.passedChecks,
45
+ total_checks: outcome.result.totalChecks,
46
+ executor: outcome.executor ?? null,
47
+ source_usage: sourceUsageForOutcome(outcome),
48
+ target: outcome.target,
49
+ };
50
+ }
51
+ function writeProjectTargetRun(options) {
52
+ const dirPath = projectTestRunsRoot(asProjectDataDir(options.projectDataDir), options.projectName, options.target);
53
+ mkdirSync(dirPath, { recursive: true });
54
+ const runPath = projectTestRunPath(asProjectDataDir(options.projectDataDir), options.projectName, options.target, options.generatedAt, options.runId, options.runSuffix);
55
+ writeFileSync(runPath, `${JSON.stringify(options.payload, null, 2)}\n`);
56
+ return runPath;
57
+ }
58
+ function renderLatestSummaryMarkdown(payload) {
59
+ const lines = [
60
+ "# Latest Benchmark Results",
61
+ "",
62
+ "| Target | Benchmark checks | Source use |",
63
+ "| --- | --- | --- |",
64
+ ];
65
+ if (payload.source_files) {
66
+ lines.push(`| Source files | \`${payload.source_files.passed_cases}/${payload.source_files.total_cases}\` | ${payload.source_files.source_usage} |`);
67
+ }
68
+ if (payload.context_graph) {
69
+ lines.push(`| Context Graph | \`${payload.context_graph.passed_cases}/${payload.context_graph.total_cases}\` | ${payload.context_graph.source_usage} |`);
70
+ }
71
+ lines.push("");
72
+ if (payload.source_files) {
73
+ lines.push(`- Latest source-files run: ${payload.source_files.run_path}`);
74
+ }
75
+ if (payload.context_graph) {
76
+ lines.push(`- Latest context-graph run: ${payload.context_graph.run_path}`);
77
+ }
78
+ return `${lines.join("\n")}\n`;
79
+ }
80
+ export function readSavedBenchmarkRun(projectDataDir, projectName) {
81
+ const latestPath = projectLatestBenchmarkRunPath(asProjectDataDir(projectDataDir), projectName);
82
+ if (!existsSync(latestPath))
83
+ return null;
84
+ return readBenchmarkRunAtPath(latestPath, "latest benchmark/evaluation run");
85
+ }
86
+ export function parseBenchmarkRun(value) {
87
+ const parsed = BenchmarkRunSchema.safeParse(value);
88
+ return parsed.success ? parsed.data : null;
89
+ }
90
+ export function readBenchmarkRunAtPath(filePath, label = "benchmark/evaluation run") {
91
+ return readJsonFileWithSchema(filePath, label, BenchmarkRunSchema);
92
+ }
93
+ export function readCurrentSavedBenchmarkRun(options) {
94
+ const latestRun = readSavedBenchmarkRun(options.projectDataDir, options.projectName);
95
+ if (!latestRun) {
96
+ return { benchmarkRun: null, stale: false };
97
+ }
98
+ const currentFingerprint = fingerprintSavedBenchmarkSpec({
99
+ projectDataDir: options.projectDataDir,
100
+ projectName: options.projectName,
101
+ targetType: latestRun.mode === "source-files" ? "source-files" : "context-graph",
102
+ });
103
+ if (!currentFingerprint) {
104
+ return { benchmarkRun: null, stale: true };
105
+ }
106
+ if (!latestRun.checks_fingerprint || latestRun.checks_fingerprint !== currentFingerprint) {
107
+ return { benchmarkRun: null, stale: true };
108
+ }
109
+ return { benchmarkRun: latestRun, stale: false };
110
+ }
111
+ function modeForOutcomes(sourceFilesOutcome, contextGraphOutcome) {
112
+ if (sourceFilesOutcome && contextGraphOutcome)
113
+ return "both";
114
+ if (sourceFilesOutcome)
115
+ return "source-files";
116
+ return "context-graph";
117
+ }
118
+ function passRateOf(summary) {
119
+ if (!summary)
120
+ return null;
121
+ if (summary.total_cases <= 0)
122
+ return 0;
123
+ return Math.round((summary.passed_cases / summary.total_cases) * 100);
124
+ }
125
+ export function saveBenchmarkRun(options) {
126
+ const generatedAt = new Date().toISOString();
127
+ const sourceFilesOutcome = options.sourceFilesOutcome ?? null;
128
+ const sourceFilesSummary = sourceFilesOutcome
129
+ ? summarizeSavedTestOutcome("Source Files", sourceFilesOutcome)
130
+ : null;
131
+ const contextGraphSummary = options.contextGraphOutcome
132
+ ? summarizeSavedTestOutcome("Context Graph", options.contextGraphOutcome)
133
+ : null;
134
+ const payload = {
135
+ kind: "interf-benchmark-run",
136
+ version: 1,
137
+ generated_at: generatedAt,
138
+ // verify carries the target it ran against on the wire so
139
+ // Project activity and the UI can show source-files baselines alongside
140
+ // context-graph judgments. `both` is reserved for future combined runs.
141
+ mode: modeForOutcomes(sourceFilesOutcome, options.contextGraphOutcome),
142
+ source_path: options.sourcePath,
143
+ checks_fingerprint: options.checksFingerprint,
144
+ project: {
145
+ name: options.projectName,
146
+ context_graph_path: options.contextGraphPath,
147
+ },
148
+ source_files: sourceFilesSummary,
149
+ context_graph: contextGraphSummary,
150
+ summary: {
151
+ source_files_pass_rate: passRateOf(sourceFilesSummary),
152
+ context_graph_pass_rate: passRateOf(contextGraphSummary),
153
+ },
154
+ };
155
+ const latestStatePath = projectLatestBenchmarkRunPath(asProjectDataDir(options.sourcePath), options.projectName);
156
+ mkdirSync(dirname(latestStatePath), { recursive: true });
157
+ writeFileSync(latestStatePath, `${JSON.stringify(payload, null, 2)}\n`);
158
+ writeFileSync(projectLatestBenchmarkSummaryPath(asProjectDataDir(options.sourcePath), options.projectName), renderLatestSummaryMarkdown(payload));
159
+ if (options.contextGraphPath) {
160
+ mkdirSync(testRootForContextGraph(options.contextGraphPath), { recursive: true });
161
+ writeFileSync(join(testRootForContextGraph(options.contextGraphPath), "latest.json"), `${JSON.stringify(payload, null, 2)}\n`);
162
+ }
163
+ return latestStatePath;
164
+ }
165
+ export async function runSavedContextGraphBenchmark(options) {
166
+ const contextGraphPath = options.contextGraphPath
167
+ ?? contextGraphPathForProject(options.sourcePath, options.projectConfig.name);
168
+ const spec = buildTestSpecFromProjectConfig({
169
+ contextGraphPath: contextGraphPath,
170
+ targetType: "context-graph",
171
+ });
172
+ if (!spec)
173
+ return null;
174
+ const target = createContextGraphTestTarget(contextGraphPath, options.projectConfig.name, resolveBuildPlanId(options.projectConfig));
175
+ if (!target.eligible)
176
+ return null;
177
+ const run = await runTargetTestsAuto(options.sourcePath, spec, [target], {
178
+ executor: options.executor,
179
+ preserveSandboxes: options.preserveSandboxes ?? "on-failure",
180
+ artifactRootPath: contextGraphPath,
181
+ });
182
+ const result = run.results[0];
183
+ if (!result)
184
+ return null;
185
+ const contextGraphRunPath = saveTargetTestRun(contextGraphPath, run);
186
+ const projectRunPath = writeProjectTargetRun({
187
+ projectDataDir: options.sourcePath,
188
+ projectName: options.projectConfig.name,
189
+ target: "context-graph",
190
+ generatedAt: run.generated_at,
191
+ runId: normalizeProjectTestRunId(spec.id),
192
+ runSuffix: options.runSuffix,
193
+ payload: run,
194
+ });
195
+ return {
196
+ runPath: contextGraphRunPath,
197
+ displayRunPath: projectRunPath,
198
+ executor: run.executor ?? null,
199
+ target,
200
+ result,
201
+ };
202
+ }
203
+ /**
204
+ * Run the saved benchmark checks against Source references from the recorded
205
+ * Source Manifest so users can compare raw Source access with the Context Graph.
206
+ */
207
+ export async function runSavedSourceFilesBenchmark(options) {
208
+ const spec = buildTestSpecFromSourceFolderConfig({
209
+ projectDataDir: options.sourcePath,
210
+ targetName: options.projectConfig.name,
211
+ targetType: "source-files",
212
+ });
213
+ if (!spec)
214
+ return null;
215
+ if (!options.contextGraphPath)
216
+ return null;
217
+ const target = createSourceFilesTestTarget(options.contextGraphPath);
218
+ if (!target.eligible)
219
+ return null;
220
+ const run = await runTargetTestsAuto(options.contextGraphPath, spec, [target], {
221
+ executor: options.executor,
222
+ preserveSandboxes: options.preserveSandboxes ?? "on-failure",
223
+ artifactRootPath: projectTestsRoot(asProjectDataDir(options.sourcePath), options.projectConfig.name),
224
+ });
225
+ const result = run.results[0];
226
+ if (!result)
227
+ return null;
228
+ const projectRunPath = writeProjectTargetRun({
229
+ projectDataDir: options.sourcePath,
230
+ projectName: options.projectConfig.name,
231
+ target: "source-files",
232
+ generatedAt: run.generated_at,
233
+ runId: normalizeProjectTestRunId(spec.id),
234
+ runSuffix: options.runSuffix,
235
+ payload: run,
236
+ });
237
+ return {
238
+ runPath: projectRunPath,
239
+ executor: run.executor ?? null,
240
+ target,
241
+ result,
242
+ };
243
+ }
244
+ export async function runBenchmarkForExecutor(options) {
245
+ const target = options.target ?? "context-graph";
246
+ const contextGraphOutcomePromise = target === "context-graph" || target === "both"
247
+ ? runSavedContextGraphBenchmark({
248
+ sourcePath: options.sourcePath,
249
+ projectConfig: options.projectConfig,
250
+ executor: options.executor,
251
+ contextGraphPath: options.contextGraphPath,
252
+ preserveSandboxes: options.preserveSandboxes,
253
+ runSuffix: options.runSuffix,
254
+ })
255
+ : Promise.resolve(null);
256
+ const sourceFilesOutcomePromise = target === "source-files" || target === "both"
257
+ ? runSavedSourceFilesBenchmark({
258
+ sourcePath: options.sourcePath,
259
+ projectConfig: options.projectConfig,
260
+ contextGraphPath: options.contextGraphPath,
261
+ executor: options.executor,
262
+ preserveSandboxes: options.preserveSandboxes,
263
+ runSuffix: options.runSuffix,
264
+ })
265
+ : Promise.resolve(null);
266
+ const [contextGraphOutcome, sourceFilesOutcome] = await Promise.all([
267
+ contextGraphOutcomePromise,
268
+ sourceFilesOutcomePromise,
269
+ ]);
270
+ const modeSatisfied = target === "both"
271
+ ? Boolean(contextGraphOutcome && sourceFilesOutcome)
272
+ : Boolean(contextGraphOutcome || sourceFilesOutcome);
273
+ const shouldSave = options.saveLatest !== false;
274
+ const benchmarkRunPath = shouldSave && modeSatisfied
275
+ ? saveBenchmarkRun({
276
+ sourcePath: options.sourcePath,
277
+ contextGraphPath: options.contextGraphPath,
278
+ projectName: options.projectConfig.name,
279
+ checksFingerprint: fingerprintSavedBenchmarkSpec({
280
+ projectDataDir: options.sourcePath,
281
+ projectName: options.projectConfig.name,
282
+ targetType: target === "source-files" ? "source-files" : "context-graph",
283
+ }) ?? "missing-benchmark-spec",
284
+ sourceFilesOutcome,
285
+ contextGraphOutcome,
286
+ })
287
+ : null;
288
+ const benchmarkRun = shouldSave && modeSatisfied
289
+ ? benchmarkRunPath ? readBenchmarkRunAtPath(benchmarkRunPath) : null
290
+ : null;
291
+ return {
292
+ sourcePath: options.sourcePath,
293
+ projectConfig: options.projectConfig,
294
+ contextGraphPath: options.contextGraphPath,
295
+ sourceFilesOutcome,
296
+ contextGraphOutcome,
297
+ benchmarkRunPath,
298
+ benchmarkRun,
299
+ };
300
+ }
301
+ function contextGraphPathForProject(sourcePath, projectName) {
302
+ return projectContextGraphPath(asProjectDataDir(sourcePath), projectName);
303
+ }
@@ -3,11 +3,11 @@ export * as verify from "./verify.js";
3
3
  export * as execution from "./verify-execution.js";
4
4
  export * as paths from "./verify-paths.js";
5
5
  export * as profilePresets from "./verify-profile-presets.js";
6
- export * as readinessCheckRun from "./readiness-check-run.js";
6
+ export * as benchmarkRun from "./benchmark-run.js";
7
7
  export * as sandbox from "./verify-sandbox.js";
8
8
  export * as specs from "./verify-specs.js";
9
9
  export * as targets from "./verify-targets.js";
10
10
  export * as types from "./verify-types.js";
11
- export type { TestCase, TestCaseExpect, TestCheckResult, TestCaseResult, TestSpec, TestTargetResult, TestTargetRun, ReadinessCheckRun, TestTargetType, } from "./lib/schema.js";
11
+ export type { TestCase, TestCaseExpect, TestCheckResult, TestCaseResult, TestSpec, TestTargetResult, TestTargetRun, BenchmarkRun, TestTargetType, } from "./lib/schema.js";
12
12
  export type { LoadedTestSpec, TestTargetCandidate, } from "./verify-types.js";
13
13
  export type { TestSandboxRetentionMode, } from "./verify-sandbox.js";
@@ -3,7 +3,7 @@ export * as verify from "./verify.js";
3
3
  export * as execution from "./verify-execution.js";
4
4
  export * as paths from "./verify-paths.js";
5
5
  export * as profilePresets from "./verify-profile-presets.js";
6
- export * as readinessCheckRun from "./readiness-check-run.js";
6
+ export * as benchmarkRun from "./benchmark-run.js";
7
7
  export * as sandbox from "./verify-sandbox.js";
8
8
  export * as specs from "./verify-specs.js";
9
9
  export * as targets from "./verify-targets.js";
@@ -16,8 +16,8 @@ export declare const TestCaseSchema: z.ZodObject<{
16
16
  }, z.core.$strip>;
17
17
  export declare const TestSpecSchema: z.ZodObject<{
18
18
  type: z.ZodEnum<{
19
- "verifiable-context": "verifiable-context";
20
19
  "source-files": "source-files";
20
+ "context-graph": "context-graph";
21
21
  }>;
22
22
  name: z.ZodString;
23
23
  description: z.ZodOptional<z.ZodString>;
@@ -60,8 +60,8 @@ export declare const TestCaseResultSchema: z.ZodObject<{
60
60
  export declare const TestTargetResultSchema: z.ZodObject<{
61
61
  target: z.ZodObject<{
62
62
  type: z.ZodEnum<{
63
- "verifiable-context": "verifiable-context";
64
63
  "source-files": "source-files";
64
+ "context-graph": "context-graph";
65
65
  }>;
66
66
  name: z.ZodString;
67
67
  path: z.ZodString;
@@ -98,8 +98,8 @@ export declare const TestTargetRunSchema: z.ZodObject<{
98
98
  id: z.ZodString;
99
99
  name: z.ZodString;
100
100
  type: z.ZodEnum<{
101
- "verifiable-context": "verifiable-context";
102
101
  "source-files": "source-files";
102
+ "context-graph": "context-graph";
103
103
  }>;
104
104
  file: z.ZodString;
105
105
  description: z.ZodOptional<z.ZodString>;
@@ -138,8 +138,8 @@ export declare const TestTargetRunSchema: z.ZodObject<{
138
138
  results: z.ZodArray<z.ZodObject<{
139
139
  target: z.ZodObject<{
140
140
  type: z.ZodEnum<{
141
- "verifiable-context": "verifiable-context";
142
141
  "source-files": "source-files";
142
+ "context-graph": "context-graph";
143
143
  }>;
144
144
  name: z.ZodString;
145
145
  path: z.ZodString;
@@ -170,10 +170,16 @@ export declare const TestTargetRunSchema: z.ZodObject<{
170
170
  }, z.core.$strip>>;
171
171
  }, z.core.$strip>;
172
172
  export declare const TestRunModeSchema: z.ZodEnum<{
173
- "verifiable-context": "verifiable-context";
174
173
  "source-files": "source-files";
174
+ "context-graph": "context-graph";
175
175
  both: "both";
176
176
  }>;
177
+ export declare const BenchmarkSourceUsageSchema: z.ZodEnum<{
178
+ unknown: "unknown";
179
+ "source-baseline": "source-baseline";
180
+ "graph-only": "graph-only";
181
+ "graph-source-verified": "graph-source-verified";
182
+ }>;
177
183
  export declare const TestRunTargetSummarySchema: z.ZodObject<{
178
184
  label: z.ZodString;
179
185
  run_path: z.ZodString;
@@ -182,30 +188,50 @@ export declare const TestRunTargetSummarySchema: z.ZodObject<{
182
188
  total_cases: z.ZodNumber;
183
189
  passed_checks: z.ZodNumber;
184
190
  total_checks: z.ZodNumber;
191
+ executor: z.ZodOptional<z.ZodNullable<z.ZodObject<{
192
+ kind: z.ZodEnum<{
193
+ "local-agent": "local-agent";
194
+ "connected-provider": "connected-provider";
195
+ managed: "managed";
196
+ }>;
197
+ name: z.ZodString;
198
+ display_name: z.ZodString;
199
+ command: z.ZodNullable<z.ZodString>;
200
+ model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
201
+ effort: z.ZodOptional<z.ZodNullable<z.ZodString>>;
202
+ profile: z.ZodOptional<z.ZodNullable<z.ZodString>>;
203
+ timeout_ms: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
204
+ }, z.core.$strip>>>;
205
+ source_usage: z.ZodDefault<z.ZodEnum<{
206
+ unknown: "unknown";
207
+ "source-baseline": "source-baseline";
208
+ "graph-only": "graph-only";
209
+ "graph-source-verified": "graph-source-verified";
210
+ }>>;
185
211
  target: z.ZodObject<{
186
212
  type: z.ZodEnum<{
187
- "verifiable-context": "verifiable-context";
188
213
  "source-files": "source-files";
214
+ "context-graph": "context-graph";
189
215
  }>;
190
216
  name: z.ZodString;
191
217
  path: z.ZodString;
192
218
  build_plan: z.ZodString;
193
219
  }, z.core.$strip>;
194
220
  }, z.core.$strip>;
195
- export declare const ReadinessCheckRunSchema: z.ZodPreprocess<z.ZodObject<{
196
- kind: z.ZodLiteral<"interf-readiness-check-run">;
221
+ export declare const BenchmarkRunSchema: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
222
+ kind: z.ZodLiteral<"interf-benchmark-run">;
197
223
  version: z.ZodLiteral<1>;
198
224
  generated_at: z.ZodString;
199
225
  mode: z.ZodEnum<{
200
- "verifiable-context": "verifiable-context";
201
226
  "source-files": "source-files";
227
+ "context-graph": "context-graph";
202
228
  both: "both";
203
229
  }>;
204
230
  source_path: z.ZodString;
205
231
  checks_fingerprint: z.ZodOptional<z.ZodString>;
206
- preparation: z.ZodObject<{
232
+ project: z.ZodObject<{
207
233
  name: z.ZodString;
208
- verifiable_context_path: z.ZodNullable<z.ZodString>;
234
+ context_graph_path: z.ZodNullable<z.ZodString>;
209
235
  }, z.core.$strip>;
210
236
  source_files: z.ZodNullable<z.ZodObject<{
211
237
  label: z.ZodString;
@@ -215,17 +241,37 @@ export declare const ReadinessCheckRunSchema: z.ZodPreprocess<z.ZodObject<{
215
241
  total_cases: z.ZodNumber;
216
242
  passed_checks: z.ZodNumber;
217
243
  total_checks: z.ZodNumber;
244
+ executor: z.ZodOptional<z.ZodNullable<z.ZodObject<{
245
+ kind: z.ZodEnum<{
246
+ "local-agent": "local-agent";
247
+ "connected-provider": "connected-provider";
248
+ managed: "managed";
249
+ }>;
250
+ name: z.ZodString;
251
+ display_name: z.ZodString;
252
+ command: z.ZodNullable<z.ZodString>;
253
+ model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
254
+ effort: z.ZodOptional<z.ZodNullable<z.ZodString>>;
255
+ profile: z.ZodOptional<z.ZodNullable<z.ZodString>>;
256
+ timeout_ms: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
257
+ }, z.core.$strip>>>;
258
+ source_usage: z.ZodDefault<z.ZodEnum<{
259
+ unknown: "unknown";
260
+ "source-baseline": "source-baseline";
261
+ "graph-only": "graph-only";
262
+ "graph-source-verified": "graph-source-verified";
263
+ }>>;
218
264
  target: z.ZodObject<{
219
265
  type: z.ZodEnum<{
220
- "verifiable-context": "verifiable-context";
221
266
  "source-files": "source-files";
267
+ "context-graph": "context-graph";
222
268
  }>;
223
269
  name: z.ZodString;
224
270
  path: z.ZodString;
225
271
  build_plan: z.ZodString;
226
272
  }, z.core.$strip>;
227
273
  }, z.core.$strip>>;
228
- verifiable_context: z.ZodNullable<z.ZodObject<{
274
+ context_graph: z.ZodNullable<z.ZodObject<{
229
275
  label: z.ZodString;
230
276
  run_path: z.ZodString;
231
277
  ok: z.ZodBoolean;
@@ -233,10 +279,30 @@ export declare const ReadinessCheckRunSchema: z.ZodPreprocess<z.ZodObject<{
233
279
  total_cases: z.ZodNumber;
234
280
  passed_checks: z.ZodNumber;
235
281
  total_checks: z.ZodNumber;
282
+ executor: z.ZodOptional<z.ZodNullable<z.ZodObject<{
283
+ kind: z.ZodEnum<{
284
+ "local-agent": "local-agent";
285
+ "connected-provider": "connected-provider";
286
+ managed: "managed";
287
+ }>;
288
+ name: z.ZodString;
289
+ display_name: z.ZodString;
290
+ command: z.ZodNullable<z.ZodString>;
291
+ model: z.ZodOptional<z.ZodNullable<z.ZodString>>;
292
+ effort: z.ZodOptional<z.ZodNullable<z.ZodString>>;
293
+ profile: z.ZodOptional<z.ZodNullable<z.ZodString>>;
294
+ timeout_ms: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
295
+ }, z.core.$strip>>>;
296
+ source_usage: z.ZodDefault<z.ZodEnum<{
297
+ unknown: "unknown";
298
+ "source-baseline": "source-baseline";
299
+ "graph-only": "graph-only";
300
+ "graph-source-verified": "graph-source-verified";
301
+ }>>;
236
302
  target: z.ZodObject<{
237
303
  type: z.ZodEnum<{
238
- "verifiable-context": "verifiable-context";
239
304
  "source-files": "source-files";
305
+ "context-graph": "context-graph";
240
306
  }>;
241
307
  name: z.ZodString;
242
308
  path: z.ZodString;
@@ -245,7 +311,7 @@ export declare const ReadinessCheckRunSchema: z.ZodPreprocess<z.ZodObject<{
245
311
  }, z.core.$strip>>;
246
312
  summary: z.ZodObject<{
247
313
  source_files_pass_rate: z.ZodNullable<z.ZodNumber>;
248
- verifiable_context_pass_rate: z.ZodNullable<z.ZodNumber>;
314
+ context_graph_pass_rate: z.ZodNullable<z.ZodNumber>;
249
315
  }, z.core.$strip>;
250
316
  }, z.core.$strip>>;
251
317
  export type { TestCaseExpect, TestTargetType };
@@ -256,5 +322,6 @@ export type TestCaseResult = z.infer<typeof TestCaseResultSchema>;
256
322
  export type TestTargetResult = z.infer<typeof TestTargetResultSchema>;
257
323
  export type TestTargetRun = z.infer<typeof TestTargetRunSchema>;
258
324
  export type TestRunMode = z.infer<typeof TestRunModeSchema>;
325
+ export type BenchmarkSourceUsage = z.infer<typeof BenchmarkSourceUsageSchema>;
259
326
  export type TestRunTargetSummary = z.infer<typeof TestRunTargetSummarySchema>;
260
- export type ReadinessCheckRun = z.infer<typeof ReadinessCheckRunSchema>;
327
+ export type BenchmarkRun = z.infer<typeof BenchmarkRunSchema>;
@@ -1,5 +1,5 @@
1
1
  import { z } from "zod";
2
- import { RuntimeExecutorInfoSchema, TestCaseExpectSchema, TestTargetTypeSchema, PreparationNameSchema, } from "../../../contracts/lib/schema.js";
2
+ import { RuntimeExecutorInfoSchema, TestCaseExpectSchema, TestTargetTypeSchema, ProjectIdSchema, } from "../../../contracts/lib/schema.js";
3
3
  const TestCaseCoreSchema = z.object({
4
4
  id: z.string().regex(/^[a-z0-9][a-z0-9-]{0,79}$/),
5
5
  question: z.string().min(1),
@@ -81,7 +81,13 @@ export const TestTargetRunSchema = z.object({
81
81
  target_count: z.number(),
82
82
  results: z.array(TestTargetResultSchema),
83
83
  });
84
- export const TestRunModeSchema = z.enum(["source-files", "verifiable-context", "both"]);
84
+ export const TestRunModeSchema = z.enum(["source-files", "context-graph", "both"]);
85
+ export const BenchmarkSourceUsageSchema = z.enum([
86
+ "source-baseline",
87
+ "graph-only",
88
+ "graph-source-verified",
89
+ "unknown",
90
+ ]);
85
91
  export const TestRunTargetSummarySchema = z.object({
86
92
  label: z.string(),
87
93
  run_path: z.string(),
@@ -90,6 +96,8 @@ export const TestRunTargetSummarySchema = z.object({
90
96
  total_cases: z.number(),
91
97
  passed_checks: z.number(),
92
98
  total_checks: z.number(),
99
+ executor: RuntimeExecutorInfoSchema.nullable().optional(),
100
+ source_usage: BenchmarkSourceUsageSchema.default("unknown"),
93
101
  target: z.object({
94
102
  type: TestTargetTypeSchema,
95
103
  name: z.string(),
@@ -97,12 +105,12 @@ export const TestRunTargetSummarySchema = z.object({
97
105
  build_plan: z.string(),
98
106
  }),
99
107
  });
100
- function mapReadinessCheckRun(value) {
108
+ function mapBenchmarkRun(value) {
101
109
  if (!value || typeof value !== "object" || Array.isArray(value))
102
110
  return value;
103
111
  const record = value;
104
- const preparation = record.preparation && typeof record.preparation === "object" && !Array.isArray(record.preparation)
105
- ? record.preparation
112
+ const project = record.project && typeof record.project === "object" && !Array.isArray(record.project)
113
+ ? record.project
106
114
  : null;
107
115
  const summary = record.summary && typeof record.summary === "object" && !Array.isArray(record.summary)
108
116
  ? record.summary
@@ -110,36 +118,36 @@ function mapReadinessCheckRun(value) {
110
118
  return {
111
119
  ...record,
112
120
  mode: record.mode,
113
- preparation: preparation
121
+ project: project
114
122
  ? {
115
- ...preparation,
116
- verifiable_context_path: preparation.verifiable_context_path,
123
+ ...project,
124
+ context_graph_path: project.context_graph_path,
117
125
  }
118
- : record.preparation,
119
- verifiable_context: record.verifiable_context,
126
+ : record.project,
127
+ context_graph: record.context_graph,
120
128
  summary: summary
121
129
  ? {
122
130
  ...summary,
123
- verifiable_context_pass_rate: summary.verifiable_context_pass_rate,
131
+ context_graph_pass_rate: summary.context_graph_pass_rate,
124
132
  }
125
133
  : record.summary,
126
134
  };
127
135
  }
128
- export const ReadinessCheckRunSchema = z.preprocess(mapReadinessCheckRun, z.object({
129
- kind: z.literal("interf-readiness-check-run"),
136
+ export const BenchmarkRunSchema = z.preprocess(mapBenchmarkRun, z.object({
137
+ kind: z.literal("interf-benchmark-run"),
130
138
  version: z.literal(1),
131
139
  generated_at: z.string(),
132
140
  mode: TestRunModeSchema,
133
141
  source_path: z.string(),
134
142
  checks_fingerprint: z.string().min(1).optional(),
135
- preparation: z.object({
136
- name: PreparationNameSchema,
137
- verifiable_context_path: z.string().nullable(),
143
+ project: z.object({
144
+ name: ProjectIdSchema,
145
+ context_graph_path: z.string().nullable(),
138
146
  }),
139
147
  source_files: TestRunTargetSummarySchema.nullable(),
140
- verifiable_context: TestRunTargetSummarySchema.nullable(),
148
+ context_graph: TestRunTargetSummarySchema.nullable(),
141
149
  summary: z.object({
142
150
  source_files_pass_rate: z.number().nullable(),
143
- verifiable_context_pass_rate: z.number().nullable(),
151
+ context_graph_pass_rate: z.number().nullable(),
144
152
  }),
145
153
  }));
@@ -195,22 +195,22 @@ async function runTargetTestsJudge(testCase, executor, candidateLabel, candidate
195
195
  return { verdict, error: executionError };
196
196
  }
197
197
  function buildTestQueryPrompt(target, testCase, answerPath, tracePath) {
198
- const header = target.type === "verifiable-context"
198
+ const header = target.type === "context-graph"
199
199
  ? [
200
- "You are running an Interf test inside an isolated sandboxed verifiable-context copy.",
200
+ "You are running an Interf benchmark inside an isolated sandboxed context-graph copy.",
201
201
  "Read `AGENTS.md` first.",
202
- "Use the local native `interf-query` skill available in this verifiable context.",
203
- "Answer the check question the same way you would answer a real user inside this verifiable context.",
204
- "Prefer the Build Plan-declared verifiable-context outputs before consulting source references.",
205
- "This sandbox is self-contained: the copied verifiable context has source references in `.interf/runtime/source-snapshot.json`.",
206
- "The original Interf instance state is intentionally absent from this sandbox. Use the source locators only when the verifiable context needs verification.",
202
+ "Use the local native `interf-query` skill available in this Context Graph.",
203
+ "Answer the check question the same way you would answer a real user inside this Context Graph.",
204
+ "Prefer the Build Plan-declared context-graph outputs before consulting source references.",
205
+ "This sandbox is self-contained: the copied Context Graph has authoritative source references in `.interf/runtime/source-manifest.json`.",
206
+ "The original Interf instance state is intentionally absent from this sandbox. Use the source locators only when the Context Graph needs verification.",
207
207
  ]
208
208
  : [
209
- "You are running an Interf baseline test inside an isolated source-files test shell.",
209
+ "You are running an Interf baseline benchmark inside an isolated source-files benchmark shell.",
210
210
  "Read `AGENTS.md` first.",
211
211
  "Use the local native `interf-query` skill available in this shell.",
212
- "There is no verifiable context in this sandbox.",
213
- "Answer only from source references listed in `runtime/source-files.json` inside this shell.",
212
+ "There is no Context Graph in this sandbox.",
213
+ "Answer only from source references listed in `runtime/source-manifest.json` inside this shell.",
214
214
  "The original control plane folder is intentionally absent from this sandbox.",
215
215
  ];
216
216
  return [
@@ -353,7 +353,7 @@ async function runTestCaseWithJudge(target, testCase, executor) {
353
353
  });
354
354
  checks.push(...evaluated.checks);
355
355
  if (testCase.answer) {
356
- const judged = await runTargetTestsJudge(testCase, executor, `verifiable context file ${outputPath}`, content);
356
+ const judged = await runTargetTestsJudge(testCase, executor, `Context Graph file ${outputPath}`, content);
357
357
  checks.push({
358
358
  label: "judge verdict",
359
359
  ok: judged.verdict?.pass === true,