@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
@@ -73,6 +73,66 @@ function parseYamlScalar(value) {
73
73
  }
74
74
  return trimmed;
75
75
  }
76
+ function yamlBlockHeader(value) {
77
+ const trimmed = value.trim();
78
+ if (!/^[>|](?:[+-]?\d*|\d*[+-]?)$/.test(trimmed))
79
+ return null;
80
+ return trimmed.startsWith(">") ? "folded" : "literal";
81
+ }
82
+ function leadingWhitespaceLength(value) {
83
+ const match = value.match(/^\s*/);
84
+ return match?.[0].length ?? 0;
85
+ }
86
+ function foldYamlBlock(lines) {
87
+ const paragraphs = [];
88
+ let current = [];
89
+ for (const line of lines) {
90
+ const trimmed = line.trim();
91
+ if (trimmed.length === 0) {
92
+ if (current.length > 0) {
93
+ paragraphs.push(current.join(" "));
94
+ current = [];
95
+ }
96
+ if (paragraphs[paragraphs.length - 1] !== "") {
97
+ paragraphs.push("");
98
+ }
99
+ continue;
100
+ }
101
+ current.push(trimmed);
102
+ }
103
+ if (current.length > 0) {
104
+ paragraphs.push(current.join(" "));
105
+ }
106
+ return paragraphs.join("\n").trimEnd();
107
+ }
108
+ function parseYamlBlockScalar(lines, startIndex, style) {
109
+ const blockLines = [];
110
+ let blockIndent = null;
111
+ let cursor = startIndex + 1;
112
+ while (cursor < lines.length) {
113
+ const nextLine = lines[cursor] ?? "";
114
+ const nextTrimmed = nextLine.trim();
115
+ if (nextTrimmed.length === 0) {
116
+ if (blockIndent !== null)
117
+ blockLines.push("");
118
+ cursor += 1;
119
+ continue;
120
+ }
121
+ const indent = leadingWhitespaceLength(nextLine);
122
+ if (indent === 0)
123
+ break;
124
+ if (blockIndent === null)
125
+ blockIndent = indent;
126
+ if (indent < blockIndent)
127
+ break;
128
+ blockLines.push(nextLine.slice(blockIndent));
129
+ cursor += 1;
130
+ }
131
+ return {
132
+ value: style === "folded" ? foldYamlBlock(blockLines) : blockLines.join("\n").trimEnd(),
133
+ nextIndex: cursor,
134
+ };
135
+ }
76
136
  function parseYamlFrontmatter(frontmatterText) {
77
137
  const lines = frontmatterText.split("\n");
78
138
  const frontmatter = {};
@@ -88,6 +148,13 @@ function parseYamlFrontmatter(frontmatterText) {
88
148
  if (!key)
89
149
  return null;
90
150
  if (inlineValue && inlineValue.trim().length > 0) {
151
+ const blockStyle = yamlBlockHeader(inlineValue);
152
+ if (blockStyle) {
153
+ const parsedBlock = parseYamlBlockScalar(lines, index, blockStyle);
154
+ frontmatter[key] = parsedBlock.value;
155
+ index = parsedBlock.nextIndex - 1;
156
+ continue;
157
+ }
91
158
  frontmatter[key] = parseYamlScalar(inlineValue);
92
159
  continue;
93
160
  }
@@ -0,0 +1,6 @@
1
+ export * as schema from "./lib/schema.js";
2
+ export * as sourceConfig from "./source-config.js";
3
+ export * as sourceFolders from "./source-folders.js";
4
+ export * as interf from "./interf.js";
5
+ export * as detect from "./interf-detect.js";
6
+ export type { InterfConfig, BuildPlanId, ProjectId, SourceFolderBinding, ProjectConfig, BenchmarkCheck, SourceContext, SourceFolderConfig, } from "./lib/schema.js";
@@ -3,6 +3,3 @@ export * as sourceConfig from "./source-config.js";
3
3
  export * as sourceFolders from "./source-folders.js";
4
4
  export * as interf from "./interf.js";
5
5
  export * as detect from "./interf-detect.js";
6
- export * as bootstrap from "./interf-bootstrap.js";
7
- export * as scaffold from "./interf-scaffold.js";
8
- export * as preparationEntries from "./preparation-entries.js";
@@ -1,8 +1,8 @@
1
1
  import { type InterfConfig } from "./lib/schema.js";
2
2
  export type { InterfConfig } from "./lib/schema.js";
3
- export interface ResolvedVerifiableContext {
4
- prepDataDir: string;
5
- verifiableContextPath: string;
3
+ export interface ResolvedContextGraph {
4
+ projectDataDir: string;
5
+ contextGraphPath: string;
6
6
  config: InterfConfig;
7
7
  }
8
8
  export declare const INTERF_CONTAINER_NAME = "interf";
@@ -16,23 +16,23 @@ export declare function hasSourceFolderInput(config: InterfConfig | null | undef
16
16
  path: string;
17
17
  };
18
18
  };
19
- export declare function hasSourcePreparationInput(config: InterfConfig | null | undefined): config is InterfConfig & {
19
+ export declare function hasSourceProjectInput(config: InterfConfig | null | undefined): config is InterfConfig & {
20
20
  source: {
21
- preparation_path: string;
21
+ project_path: string;
22
22
  };
23
23
  };
24
24
  export declare function detectInterf(cwd: string): {
25
25
  path: string;
26
26
  config: InterfConfig;
27
27
  } | null;
28
- export declare function resolveVerifiableContext(cwd: string): ResolvedVerifiableContext | null;
29
- export declare function resolveSourceFolderPath(verifiableContextPath: string, config?: InterfConfig | null): string;
30
- export declare function resolveSourceControlPath(verifiableContextPath: string): string;
31
- export declare function resolveSourceInputPath(verifiableContextPath: string): string;
32
- export declare function listVerifiableContextsForSourceFolder(prepDataDir: string): Array<{
28
+ export declare function resolveContextGraph(cwd: string): ResolvedContextGraph | null;
29
+ export declare function resolveSourceFolderPath(contextGraphPath: string, config?: InterfConfig | null): string;
30
+ export declare function resolveSourceControlPath(contextGraphPath: string): string;
31
+ export declare function resolveSourceInputPath(contextGraphPath: string): string;
32
+ export declare function listContextGraphsForSourceFolder(projectDataDir: string): Array<{
33
33
  path: string;
34
34
  config: InterfConfig;
35
35
  }>;
36
- export declare function assertVerifiableContextContainer(prepDataDir: string): string;
36
+ export declare function assertContextGraphContainer(projectDataDir: string): string;
37
37
  export declare function assertWritableTargetDir(dirPath: string, label: string): void;
38
- export declare function assertVerifiableContextName(name: string, label: string): void;
38
+ export declare function assertContextGraphName(name: string, label: string): void;
@@ -2,8 +2,8 @@ import { existsSync, readdirSync, statSync, } from "node:fs";
2
2
  import { join, resolve } from "node:path";
3
3
  import { warnInterf } from "../contracts/utils/logger.js";
4
4
  import { readJsonFileUnchecked } from "../contracts/utils/parse.js";
5
- import { asPreparationDataDir, preparationVerifiableContextPath, } from "../contracts/lib/preparation-paths.js";
6
- import { resolveSourceControlPathForVerifiableContext, verifiableContextInterfConfigPath, } from "../engine/build/verifiable-context-paths.js";
5
+ import { asProjectDataDir, projectContextGraphPath, } from "../contracts/lib/project-paths.js";
6
+ import { resolveSourceControlPathForContextGraph, contextGraphInterfConfigPath, } from "../runtime/build/context-graph-paths.js";
7
7
  import { InterfConfigSchema, } from "./lib/schema.js";
8
8
  import { assertPathWithinRoot } from "../contracts/utils/path-guards.js";
9
9
  export const INTERF_CONTAINER_NAME = "interf";
@@ -12,7 +12,7 @@ export const TEST_CONTAINER_NAME = "tests";
12
12
  export const INTERF_CONFIG_FILE = "interf.json";
13
13
  export const BUILD_PLAN_PACKAGE_DIR = "build-plan";
14
14
  export function readInterfConfig(dirPath) {
15
- const configPath = verifiableContextInterfConfigPath(dirPath);
15
+ const configPath = contextGraphInterfConfigPath(dirPath);
16
16
  if (!existsSync(configPath))
17
17
  return null;
18
18
  const raw = readJsonFileUnchecked(configPath, "Interf config");
@@ -20,7 +20,7 @@ export function readInterfConfig(dirPath) {
20
20
  return null;
21
21
  if (!raw || typeof raw !== "object" || Array.isArray(raw))
22
22
  return null;
23
- if (raw.type !== "verifiable-context") {
23
+ if (raw.type !== "context-graph") {
24
24
  return null;
25
25
  }
26
26
  const parsed = InterfConfigSchema.safeParse(raw);
@@ -33,8 +33,8 @@ export function readInterfConfig(dirPath) {
33
33
  export function hasSourceFolderInput(config) {
34
34
  return typeof config?.source?.path === "string" && config.source.path.length > 0;
35
35
  }
36
- export function hasSourcePreparationInput(config) {
37
- return typeof config?.source?.preparation_path === "string" && config.source.preparation_path.length > 0;
36
+ export function hasSourceProjectInput(config) {
37
+ return typeof config?.source?.project_path === "string" && config.source.project_path.length > 0;
38
38
  }
39
39
  export function detectInterf(cwd) {
40
40
  const config = readInterfConfig(cwd);
@@ -42,70 +42,76 @@ export function detectInterf(cwd) {
42
42
  return { path: cwd, config };
43
43
  return null;
44
44
  }
45
- export function resolveVerifiableContext(cwd) {
45
+ export function resolveContextGraph(cwd) {
46
46
  const detected = detectInterf(cwd);
47
47
  if (!detected)
48
48
  return null;
49
49
  return {
50
- prepDataDir: resolveSourceControlPath(detected.path),
51
- verifiableContextPath: detected.path,
50
+ projectDataDir: resolveSourceControlPath(detected.path),
51
+ contextGraphPath: detected.path,
52
52
  config: detected.config,
53
53
  };
54
54
  }
55
- export function resolveSourceFolderPath(verifiableContextPath, config = null) {
56
- const resolvedConfig = config ?? readInterfConfig(verifiableContextPath);
57
- if (hasSourcePreparationInput(resolvedConfig)) {
58
- return resolve(verifiableContextPath, resolvedConfig.source.preparation_path);
55
+ export function resolveSourceFolderPath(contextGraphPath, config = null) {
56
+ const resolvedConfig = config ?? readInterfConfig(contextGraphPath);
57
+ if (hasSourceProjectInput(resolvedConfig)) {
58
+ return resolve(contextGraphPath, resolvedConfig.source.project_path);
59
59
  }
60
60
  if (hasSourceFolderInput(resolvedConfig)) {
61
- return assertPathWithinRoot(verifiableContextPath, resolve(verifiableContextPath, resolvedConfig.source.path), "Verifiable context source path");
61
+ return assertPathWithinRoot(contextGraphPath, resolve(contextGraphPath, resolvedConfig.source.path), "Context Graph source path");
62
62
  }
63
- throw new Error(`Verifiable context at ${verifiableContextPath} is missing source.preparation_path or source.path in ${verifiableContextInterfConfigPath(verifiableContextPath)}.`);
63
+ throw new Error(`Context Graph at ${contextGraphPath} is missing source.project_path or source.path in ${contextGraphInterfConfigPath(contextGraphPath)}.`);
64
64
  }
65
- export function resolveSourceControlPath(verifiableContextPath) {
66
- return resolveSourceControlPathForVerifiableContext(verifiableContextPath);
65
+ export function resolveSourceControlPath(contextGraphPath) {
66
+ return resolveSourceControlPathForContextGraph(contextGraphPath);
67
67
  }
68
- export function resolveSourceInputPath(verifiableContextPath) {
69
- const config = readInterfConfig(verifiableContextPath);
70
- if (hasSourcePreparationInput(config)) {
71
- return resolve(verifiableContextPath, config.source.preparation_path);
68
+ export function resolveSourceInputPath(contextGraphPath) {
69
+ const config = readInterfConfig(contextGraphPath);
70
+ if (hasSourceProjectInput(config)) {
71
+ return resolve(contextGraphPath, config.source.project_path);
72
72
  }
73
- throw new Error(`Verifiable context is missing source.preparation_path in ${verifiableContextInterfConfigPath(verifiableContextPath)}.`);
73
+ throw new Error(`Context Graph is missing source.project_path in ${contextGraphInterfConfigPath(contextGraphPath)}.`);
74
74
  }
75
- export function listVerifiableContextsForSourceFolder(prepDataDir) {
76
- if (!existsSync(prepDataDir))
75
+ export function listContextGraphsForSourceFolder(projectDataDir) {
76
+ if (!existsSync(projectDataDir))
77
77
  return [];
78
78
  try {
79
- if (!statSync(prepDataDir).isDirectory())
79
+ if (!statSync(projectDataDir).isDirectory())
80
80
  return [];
81
81
  }
82
82
  catch (error) {
83
- warnInterf(`Warning: failed to inspect Interf preparation data folder at ${prepDataDir}: ${error instanceof Error ? error.message : String(error)}`);
83
+ warnInterf(`Warning: failed to inspect Interf Project data folder at ${projectDataDir}: ${error instanceof Error ? error.message : String(error)}`);
84
84
  return [];
85
85
  }
86
- return readdirSync(prepDataDir)
86
+ return readdirSync(projectDataDir)
87
87
  .filter((entry) => !entry.startsWith(".") &&
88
88
  entry !== BUILD_PLAN_CONTAINER_NAME &&
89
89
  entry !== TEST_CONTAINER_NAME &&
90
90
  entry !== INTERF_CONFIG_FILE)
91
- .map((entry) => preparationVerifiableContextPath(asPreparationDataDir(prepDataDir), entry))
92
- .filter((verifiableContextPath) => existsSync(verifiableContextPath))
93
- .map((verifiableContextPath) => {
94
- const config = readInterfConfig(verifiableContextPath);
95
- return config ? { path: verifiableContextPath, config } : null;
91
+ .map((entry) => projectContextGraphPath(asProjectDataDir(projectDataDir), entry))
92
+ .filter((contextGraphPath) => existsSync(contextGraphPath))
93
+ .map((contextGraphPath) => {
94
+ const config = readInterfConfig(contextGraphPath);
95
+ return config ? { path: contextGraphPath, config } : null;
96
96
  })
97
97
  .filter((value) => value !== null);
98
98
  }
99
- export function assertVerifiableContextContainer(prepDataDir) {
100
- if (existsSync(prepDataDir)) {
101
- const stat = statSync(prepDataDir);
99
+ export function assertContextGraphContainer(projectDataDir) {
100
+ if (existsSync(projectDataDir)) {
101
+ const stat = statSync(projectDataDir);
102
102
  if (!stat.isDirectory()) {
103
- throw new Error(`Interf preparation data folder exists and is not a directory: ${prepDataDir}`);
103
+ throw new Error(`Interf Project data folder exists and is not a directory: ${projectDataDir}`);
104
104
  }
105
- const unexpectedRootEntries = readdirSync(prepDataDir).filter((entry) => {
105
+ const unexpectedRootEntries = readdirSync(projectDataDir).filter((entry) => {
106
106
  if (entry.startsWith("."))
107
107
  return false;
108
- const entryPath = join(prepDataDir, entry);
108
+ // Tolerate interf.json migration backups (e.g.
109
+ // interf.json.pre-ownership-refactor-<ts>.bak) that older migrations
110
+ // left in the Project root — they are benign and must not block Builds.
111
+ if (entry !== INTERF_CONFIG_FILE && entry.startsWith(`${INTERF_CONFIG_FILE}.`)) {
112
+ return false;
113
+ }
114
+ const entryPath = join(projectDataDir, entry);
109
115
  if (entry === INTERF_CONFIG_FILE) {
110
116
  try {
111
117
  return !statSync(entryPath).isFile();
@@ -121,7 +127,7 @@ export function assertVerifiableContextContainer(prepDataDir) {
121
127
  return !statSync(entryPath).isDirectory();
122
128
  }
123
129
  catch (error) {
124
- warnInterf(`Warning: failed to inspect Interf preparation data path at ${entryPath}: ${error instanceof Error ? error.message : String(error)}`);
130
+ warnInterf(`Warning: failed to inspect Interf Project data path at ${entryPath}: ${error instanceof Error ? error.message : String(error)}`);
125
131
  return true;
126
132
  }
127
133
  }
@@ -134,21 +140,21 @@ export function assertVerifiableContextContainer(prepDataDir) {
134
140
  }
135
141
  });
136
142
  if (unexpectedRootEntries.length > 0) {
137
- throw new Error(`Interf preparation data folder contains unexpected entries: ${prepDataDir}`);
143
+ throw new Error(`Interf Project data folder contains unexpected entries: ${projectDataDir}`);
138
144
  }
139
145
  }
140
- if (!existsSync(prepDataDir)) {
141
- return prepDataDir;
146
+ if (!existsSync(projectDataDir)) {
147
+ return projectDataDir;
142
148
  }
143
- const stat = statSync(prepDataDir);
149
+ const stat = statSync(projectDataDir);
144
150
  if (!stat.isDirectory()) {
145
- throw new Error(`Interf preparation data folder exists and is not a directory: ${prepDataDir}`);
151
+ throw new Error(`Interf Project data folder exists and is not a directory: ${projectDataDir}`);
146
152
  }
147
- const unexpectedEntries = readdirSync(prepDataDir).filter((entry) => {
153
+ const unexpectedEntries = readdirSync(projectDataDir).filter((entry) => {
148
154
  if (entry.startsWith("."))
149
155
  return false;
150
156
  if (entry === INTERF_CONFIG_FILE) {
151
- const entryPath = join(prepDataDir, entry);
157
+ const entryPath = join(projectDataDir, entry);
152
158
  try {
153
159
  return !statSync(entryPath).isFile();
154
160
  }
@@ -160,7 +166,7 @@ export function assertVerifiableContextContainer(prepDataDir) {
160
166
  if (entry === BUILD_PLAN_CONTAINER_NAME ||
161
167
  entry === TEST_CONTAINER_NAME)
162
168
  return false;
163
- const entryPath = join(prepDataDir, entry);
169
+ const entryPath = join(projectDataDir, entry);
164
170
  try {
165
171
  if (!statSync(entryPath).isDirectory())
166
172
  return true;
@@ -172,9 +178,9 @@ export function assertVerifiableContextContainer(prepDataDir) {
172
178
  return false;
173
179
  });
174
180
  if (unexpectedEntries.length > 0) {
175
- throw new Error(`Interf preparation data folder contains invalid Preparation entries: ${prepDataDir}`);
181
+ throw new Error(`Interf Project data folder contains invalid Project entries: ${projectDataDir}`);
176
182
  }
177
- return prepDataDir;
183
+ return projectDataDir;
178
184
  }
179
185
  export function assertWritableTargetDir(dirPath, label) {
180
186
  if (!existsSync(dirPath))
@@ -187,7 +193,7 @@ export function assertWritableTargetDir(dirPath, label) {
187
193
  throw new Error(`${label} target already exists and is not empty: ${dirPath}`);
188
194
  }
189
195
  }
190
- export function assertVerifiableContextName(name, label) {
196
+ export function assertContextGraphName(name, label) {
191
197
  if (!/^[a-z0-9][a-z0-9-]*$/.test(name)) {
192
198
  throw new Error(`${label} name must be a safe slug with lowercase letters, numbers, and dashes only: ${name}`);
193
199
  }
@@ -0,0 +1,2 @@
1
+ export { INTERF_CONTAINER_NAME, BUILD_PLAN_CONTAINER_NAME, TEST_CONTAINER_NAME, INTERF_CONFIG_FILE, BUILD_PLAN_PACKAGE_DIR, readInterfConfig, detectInterf, resolveContextGraph, resolveSourceFolderPath, resolveSourceControlPath, resolveSourceInputPath, listContextGraphsForSourceFolder, hasSourceFolderInput, assertContextGraphContainer, assertWritableTargetDir, assertContextGraphName, } from "./interf-detect.js";
2
+ export type { InterfConfig, ResolvedContextGraph } from "./interf-detect.js";
@@ -0,0 +1 @@
1
+ export { INTERF_CONTAINER_NAME, BUILD_PLAN_CONTAINER_NAME, TEST_CONTAINER_NAME, INTERF_CONFIG_FILE, BUILD_PLAN_PACKAGE_DIR, readInterfConfig, detectInterf, resolveContextGraph, resolveSourceFolderPath, resolveSourceControlPath, resolveSourceInputPath, listContextGraphsForSourceFolder, hasSourceFolderInput, assertContextGraphContainer, assertWritableTargetDir, assertContextGraphName, } from "./interf-detect.js";
@@ -0,0 +1,79 @@
1
+ import { z } from "zod";
2
+ import { BuildPlanIdSchema, ProjectIdSchema } from "../../contracts/lib/schema.js";
3
+ import { RequestedArtifactCheckSchema, RequestedArtifactOutputSchema, RequestedArtifactSchema, SourceContextSchema } from "../../build-plans/authoring/brief.js";
4
+ export { BuildPlanIdSchema, ProjectIdSchema, } from "../../contracts/lib/schema.js";
5
+ export declare const BenchmarkCheckSchema: z.ZodObject<{
6
+ id: z.ZodOptional<z.ZodString>;
7
+ question: z.ZodString;
8
+ answer: z.ZodOptional<z.ZodString>;
9
+ expect: z.ZodOptional<z.ZodObject<{
10
+ must_include: z.ZodOptional<z.ZodArray<z.ZodString>>;
11
+ must_include_one_of: z.ZodOptional<z.ZodArray<z.ZodArray<z.ZodString>>>;
12
+ must_not_include: z.ZodOptional<z.ZodArray<z.ZodString>>;
13
+ min_words: z.ZodOptional<z.ZodNumber>;
14
+ max_words: z.ZodOptional<z.ZodNumber>;
15
+ }, z.core.$strip>>;
16
+ strictness: z.ZodOptional<z.ZodString>;
17
+ }, z.core.$strict>;
18
+ export { RequestedArtifactCheckSchema, RequestedArtifactOutputSchema, RequestedArtifactSchema, SourceContextItemSchema, SourceContextSchema, } from "../../build-plans/authoring/brief.js";
19
+ export declare const ProjectConfigSchema: z.ZodObject<{
20
+ id: z.ZodOptional<z.ZodString>;
21
+ name: z.ZodString;
22
+ path: z.ZodString;
23
+ build_plan: z.ZodOptional<z.ZodString>;
24
+ latest_context_graph_run_id: z.ZodOptional<z.ZodString>;
25
+ }, z.core.$strict>;
26
+ export declare const SourceFolderBindingSchema: z.ZodObject<{
27
+ path: z.ZodString;
28
+ }, z.core.$loose>;
29
+ export declare const ContextGraphInterfConfigSchema: z.ZodObject<{
30
+ type: z.ZodLiteral<"context-graph">;
31
+ name: z.ZodString;
32
+ build_plan: z.ZodString;
33
+ build_plan_origin: z.ZodOptional<z.ZodObject<{
34
+ selected: z.ZodString;
35
+ local_draft: z.ZodOptional<z.ZodBoolean>;
36
+ }, z.core.$strip>>;
37
+ source: z.ZodObject<{
38
+ path: z.ZodString;
39
+ control_path: z.ZodOptional<z.ZodString>;
40
+ project_path: z.ZodOptional<z.ZodString>;
41
+ }, z.core.$strip>;
42
+ }, z.core.$strip>;
43
+ export declare const InterfConfigSchema: z.ZodObject<{
44
+ type: z.ZodLiteral<"context-graph">;
45
+ name: z.ZodString;
46
+ build_plan: z.ZodString;
47
+ build_plan_origin: z.ZodOptional<z.ZodObject<{
48
+ selected: z.ZodString;
49
+ local_draft: z.ZodOptional<z.ZodBoolean>;
50
+ }, z.core.$strip>>;
51
+ source: z.ZodObject<{
52
+ path: z.ZodString;
53
+ control_path: z.ZodOptional<z.ZodString>;
54
+ project_path: z.ZodOptional<z.ZodString>;
55
+ }, z.core.$strip>;
56
+ }, z.core.$strip>;
57
+ export declare const SourceFolderConfigSchema: z.ZodObject<{
58
+ source_folder: z.ZodOptional<z.ZodObject<{
59
+ path: z.ZodString;
60
+ }, z.core.$loose>>;
61
+ projects: z.ZodDefault<z.ZodArray<z.ZodObject<{
62
+ id: z.ZodOptional<z.ZodString>;
63
+ name: z.ZodString;
64
+ path: z.ZodString;
65
+ build_plan: z.ZodOptional<z.ZodString>;
66
+ latest_context_graph_run_id: z.ZodOptional<z.ZodString>;
67
+ }, z.core.$strict>>>;
68
+ }, z.core.$strict>;
69
+ export type SourceFolderBinding = z.infer<typeof SourceFolderBindingSchema>;
70
+ export type RequestedArtifactCheck = z.infer<typeof RequestedArtifactCheckSchema>;
71
+ export type RequestedArtifact = z.infer<typeof RequestedArtifactSchema>;
72
+ export type RequestedArtifactOutput = z.infer<typeof RequestedArtifactOutputSchema>;
73
+ export type BenchmarkCheck = z.infer<typeof BenchmarkCheckSchema>;
74
+ export type SourceContext = z.infer<typeof SourceContextSchema>;
75
+ export type ProjectId = z.infer<typeof ProjectIdSchema>;
76
+ export type BuildPlanId = z.infer<typeof BuildPlanIdSchema>;
77
+ export type ProjectConfig = z.infer<typeof ProjectConfigSchema>;
78
+ export type InterfConfig = z.infer<typeof InterfConfigSchema>;
79
+ export type SourceFolderConfig = z.infer<typeof SourceFolderConfigSchema>;
@@ -0,0 +1,89 @@
1
+ import { z } from "zod";
2
+ import { InterfIdPattern, BuildPlanIdSchema, ProjectIdSchema, TestCaseExpectSchema, } from "../../contracts/lib/schema.js";
3
+ export { BuildPlanIdSchema, ProjectIdSchema, } from "../../contracts/lib/schema.js";
4
+ /**
5
+ * Absolute paths that an attacker-controlled config must never reach. The
6
+ * build runtime treats `project.path` as a filesystem instruction — letting
7
+ * a browser-tab forge `/etc` or `/sys` could mutate or read system state.
8
+ * The list mirrors the CSO review allowlist.
9
+ */
10
+ const FORBIDDEN_ABSOLUTE_PATH_PREFIXES = [
11
+ "/etc",
12
+ "/sys",
13
+ "/proc",
14
+ "/dev",
15
+ "/var/run",
16
+ "/var/lib",
17
+ "/usr",
18
+ "/bin",
19
+ "/sbin",
20
+ "/boot",
21
+ ];
22
+ function normalizePathForValidation(value) {
23
+ const normalized = value.replace(/\\/g, "/").replace(/\/+/g, "/");
24
+ if (normalized.length > 1)
25
+ return normalized.replace(/\/$/, "");
26
+ return normalized;
27
+ }
28
+ function isForbiddenAbsolutePath(value) {
29
+ const normalized = normalizePathForValidation(value);
30
+ for (const prefix of FORBIDDEN_ABSOLUTE_PATH_PREFIXES) {
31
+ if (normalized === prefix || normalized.startsWith(`${prefix}/`))
32
+ return true;
33
+ }
34
+ return false;
35
+ }
36
+ export const BenchmarkCheckSchema = z.object({
37
+ id: z.string().regex(InterfIdPattern).optional(),
38
+ question: z.string().min(1),
39
+ answer: z.string().min(1).optional(),
40
+ expect: TestCaseExpectSchema.optional(),
41
+ strictness: z.string().min(1).optional(),
42
+ }).strict().superRefine((value, ctx) => {
43
+ if (!value.answer && !value.expect) {
44
+ ctx.addIssue({
45
+ code: z.ZodIssueCode.custom,
46
+ path: ["answer"],
47
+ message: "Benchmark checks need `answer` or `expect`.",
48
+ });
49
+ }
50
+ });
51
+ export { RequestedArtifactCheckSchema, RequestedArtifactOutputSchema, RequestedArtifactSchema, SourceContextItemSchema, SourceContextSchema, } from "../../build-plans/authoring/brief.js";
52
+ export const ProjectConfigSchema = z.object({
53
+ id: z.string().regex(InterfIdPattern).optional(),
54
+ name: ProjectIdSchema,
55
+ path: z
56
+ .string()
57
+ .min(1)
58
+ .refine((value) => !isForbiddenAbsolutePath(value), {
59
+ message: "Project Source path may not target system directories (/etc, /sys, /proc, /dev, /usr, /bin, /sbin, /boot, /var/run, /var/lib).",
60
+ })
61
+ .refine((value) => !value.split(/[/\\]/).some((segment) => segment === ".."), {
62
+ message: "Project Source path may not contain `..` segments.",
63
+ }),
64
+ build_plan: BuildPlanIdSchema.optional(),
65
+ latest_context_graph_run_id: z.string().min(1).optional(),
66
+ }).strict();
67
+ export const SourceFolderBindingSchema = z.object({
68
+ path: z.string().min(1),
69
+ }).passthrough();
70
+ export const ContextGraphInterfConfigSchema = z.object({
71
+ type: z.literal("context-graph"),
72
+ name: ProjectIdSchema,
73
+ build_plan: BuildPlanIdSchema,
74
+ build_plan_origin: z.object({
75
+ selected: BuildPlanIdSchema,
76
+ local_draft: z.boolean().optional(),
77
+ }).optional(),
78
+ source: z.object({
79
+ path: z.string(),
80
+ control_path: z.string().optional(),
81
+ project_path: z.string().optional(),
82
+ }),
83
+ });
84
+ export const InterfConfigSchema = ContextGraphInterfConfigSchema;
85
+ export const SourceFolderConfigSchema = z.object({
86
+ source_folder: SourceFolderBindingSchema.optional(),
87
+ /** Project entries inside `interf.json`. */
88
+ projects: z.array(ProjectConfigSchema).default([]),
89
+ }).strict();
@@ -0,0 +1,58 @@
1
+ import { type InterfConfig, type SourceFolderBinding, type BenchmarkCheck, type ProjectConfig, type SourceFolderConfig } from "./lib/schema.js";
2
+ import type { TestSpec, TestTargetType } from "../runtime/verify/lib/schema.js";
3
+ export declare const SOURCE_FOLDER_CONFIG_PATH = "interf.json";
4
+ interface LoadedSourceTestSpec extends TestSpec {
5
+ id: string;
6
+ filePath: string;
7
+ }
8
+ export declare function sourceFolderConfigPath(projectDataDir: string): string;
9
+ export declare function fingerprintBenchmarkChecks(checks: BenchmarkCheck[]): string;
10
+ export declare function loadSourceFolderConfig(projectDataDir: string): SourceFolderConfig | null;
11
+ export interface WritableSourceFolderConfig {
12
+ source_folder?: SourceFolderBinding;
13
+ projects?: ProjectConfig[];
14
+ }
15
+ export { DEFAULT_BUILD_PLAN_ID, buildPlanIdForProjectConfig } from "../build-plans/build-plan-resolution.js";
16
+ export declare function listProjectConfigs(config: SourceFolderConfig | null): ProjectConfig[];
17
+ export declare function resolveBuildMaxAttempts(override?: number | null): number | null;
18
+ export declare function resolveBuildMaxLoops(override?: number | null): number | null;
19
+ export declare function getDefaultProjectConfig(config: SourceFolderConfig | null): ProjectConfig | null;
20
+ export declare function findProjectConfig(config: SourceFolderConfig | null, projectId: string): ProjectConfig | null;
21
+ export declare function configuredSourceFolderPath(config: SourceFolderConfig | WritableSourceFolderConfig | null | undefined): string | null;
22
+ export declare function resolveConfiguredSourceFolderPath(projectDataDir: string, config?: SourceFolderConfig | WritableSourceFolderConfig | null | undefined): string | null;
23
+ export declare function saveSourceFolderConfig(projectDataDir: string, config: WritableSourceFolderConfig): void;
24
+ export declare function upsertProjectConfig(projectDataDir: string, projectConfig: ProjectConfig, options?: {
25
+ matchName?: string;
26
+ }): void;
27
+ export declare function markProjectLatestContextGraphRun(projectDataDir: string, projectName: string, runId: string): ProjectConfig;
28
+ export declare function removeProjectConfig(projectDataDir: string, projectId: string): boolean;
29
+ export declare function projectConfigFromInterfConfig(config: InterfConfig, projectPath?: string): ProjectConfig;
30
+ export declare function loadContextGraphProjectConfig(contextGraphPath: string): ProjectConfig | null;
31
+ export declare function saveContextGraphInterfConfig(contextGraphPath: string, config: InterfConfig): InterfConfig;
32
+ export declare function syncContextGraphInterfConfigFromProjectConfig(contextGraphPath: string, projectConfig: ProjectConfig): InterfConfig;
33
+ export declare function buildTestSpecFromSourceFolderConfig(options: {
34
+ projectDataDir: string;
35
+ targetName?: string | null;
36
+ targetType?: TestTargetType;
37
+ }): LoadedSourceTestSpec | null;
38
+ export declare function buildTestSpecFromProjectConfig(options: {
39
+ contextGraphPath: string;
40
+ targetType?: TestTargetType;
41
+ }): LoadedSourceTestSpec | null;
42
+ export declare function writeBenchmarkSpecsForProject(options: {
43
+ projectDataDir: string;
44
+ projectName: string;
45
+ checks: BenchmarkCheck[];
46
+ description?: string;
47
+ }): {
48
+ source_files?: string;
49
+ context_graph?: string;
50
+ };
51
+ export declare function fingerprintTestSpec(spec: Pick<TestSpec, "cases">): string;
52
+ export declare function fingerprintSavedBenchmarkSpec(options: {
53
+ projectDataDir: string;
54
+ projectName: string;
55
+ targetType?: TestTargetType;
56
+ }): string | null;
57
+ export declare function resolveProjectSourcePath(projectDataDir: string, projectConfig: Pick<ProjectConfig, "path">): string;
58
+ export declare function resolveProjectSourceBindingPath(projectDataDir: string, projectConfig: Pick<ProjectConfig, "path">, config?: SourceFolderConfig | WritableSourceFolderConfig | null | undefined): string;