@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
@@ -2,18 +2,19 @@
2
2
  * Single CLI connection record at `~/.interf/connection.json`.
3
3
  *
4
4
  * The CLI is a thin authorized client of one connected instance. Switch by
5
- * starting `interf web` (writes a local connection), `interf login` (writes a
6
- * remote connection), or by passing `--url` / env vars to override per-call.
5
+ * starting `interf runtime` (writes a local connection), `interf login`
6
+ * (writes a remote connection), or by passing `--url` / env vars to override
7
+ * per-call.
7
8
  *
8
9
  * No per-folder pointer files. No registry of multiple connections.
9
10
  */
10
11
  import { existsSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "node:fs";
11
12
  import { dirname } from "node:path";
12
13
  import { z } from "zod";
13
- import { connectionConfigPath, interfHomeRoot } from "./instance-paths.js";
14
+ import { connectionConfigPath, interfHomeRoot } from "../contracts/lib/project-paths.js";
14
15
  export const ConnectionRecordSchema = z.object({
15
16
  url: z.string().url(),
16
- /** Bearer token for non-loopback connections. Null for loopback. */
17
+ /** Bearer token for token-required local or remote instances. Null only for explicit tokenless dev/test instances. */
17
18
  auth_token: z.string().min(1).nullable().default(null),
18
19
  }).strict();
19
20
  export const INTERF_SERVICE_URL_ENV = "INTERF_SERVICE_URL";
@@ -57,8 +58,8 @@ export function readActiveConnection(options = {}) {
57
58
  export function writeConnection(record) {
58
59
  const validated = ConnectionRecordSchema.parse(record);
59
60
  const configPath = connectionConfigPath();
60
- mkdirSync(dirname(configPath), { recursive: true });
61
- writeFileSync(configPath, `${JSON.stringify(validated, null, 2)}\n`);
61
+ mkdirSync(dirname(configPath), { recursive: true, mode: 0o700 });
62
+ writeFileSync(configPath, `${JSON.stringify(validated, null, 2)}\n`, { mode: 0o600 });
62
63
  }
63
64
  /** Clear the connection record. No-op if missing. */
64
65
  export function clearConnection() {
@@ -68,8 +69,8 @@ export function clearConnection() {
68
69
  }
69
70
  /** Ensure `~/.interf/` exists and is a directory. */
70
71
  export function ensureInterfHome() {
71
- mkdirSync(interfHomeRoot(), { recursive: true });
72
+ mkdirSync(interfHomeRoot(), { recursive: true, mode: 0o700 });
72
73
  }
73
74
  /** Canonical message printed when a CLI command needs a connection but has none. */
74
75
  export const CONNECT_OR_ERROR_HINT = "Not connected to any Interf instance.\n" +
75
- "Start one with `interf web` or `interf web start`, or set --url / `interf login` for a remote one.";
76
+ "Start one with `interf runtime` or `interf runtime start`, or set --url / `interf login` for a remote one.";
@@ -0,0 +1,10 @@
1
+ import { type Artifact, type ArtifactStatus, type ContextCheck } from "../contracts/lib/schema.js";
2
+ import type { BuildPlanAuthoringBrief } from "../build-plans/authoring/brief.js";
3
+ export declare function buildPlanContextChecks(input: {
4
+ brief?: BuildPlanAuthoringBrief | null;
5
+ artifacts: readonly Artifact[];
6
+ }): ContextCheck[];
7
+ export declare function projectContextChecksForRun(input: {
8
+ contextChecks: readonly ContextCheck[];
9
+ artifactStatuses: readonly ArtifactStatus[];
10
+ }): ContextCheck[];
@@ -0,0 +1,114 @@
1
+ import { ContextCheckSchema, } from "../contracts/lib/schema.js";
2
+ import { slugify } from "../contracts/utils/naming.js";
3
+ function boundedContextCheckId(value, fallback) {
4
+ const normalized = slugify(value) || fallback;
5
+ if (normalized.length <= 80)
6
+ return normalized;
7
+ return normalized.slice(0, 80).replace(/-+$/g, "") || fallback;
8
+ }
9
+ function uniqueContextCheckId(value, used) {
10
+ const base = boundedContextCheckId(value, "context-check");
11
+ if (!used.has(base)) {
12
+ used.add(base);
13
+ return base;
14
+ }
15
+ for (let index = 2; index < 1000; index += 1) {
16
+ const suffix = `-${index}`;
17
+ const candidate = `${base.slice(0, 80 - suffix.length).replace(/-+$/g, "")}${suffix}`;
18
+ if (!used.has(candidate)) {
19
+ used.add(candidate);
20
+ return candidate;
21
+ }
22
+ }
23
+ throw new Error(`Could not allocate a unique Context Check id for ${value}.`);
24
+ }
25
+ function contextCheckId(check, index, used) {
26
+ return uniqueContextCheckId(check.id ?? check.label ?? `context-check-${index + 1}`, used);
27
+ }
28
+ function derivedContextCheckForArtifact(artifact, used) {
29
+ const firstCheck = artifact.checks.find((check) => check.required !== false) ?? artifact.checks[0] ?? null;
30
+ return ContextCheckSchema.parse({
31
+ id: uniqueContextCheckId(`artifact-${artifact.id}`, used),
32
+ label: firstCheck?.description ?? artifact.description,
33
+ backed_by_artifact_ids: [artifact.id],
34
+ required: firstCheck?.required ?? true,
35
+ evidence_expectation: artifact.description,
36
+ });
37
+ }
38
+ export function buildPlanContextChecks(input) {
39
+ const authoredChecks = input.brief?.checks ?? [];
40
+ const used = new Set();
41
+ if (authoredChecks.length > 0) {
42
+ return authoredChecks.map((check, index) => ContextCheckSchema.parse({
43
+ id: contextCheckId(check, index, used),
44
+ label: check.label,
45
+ ...(check.description ? { description: check.description } : {}),
46
+ backed_by_artifact_ids: check.backed_by_artifact_ids,
47
+ required: check.required,
48
+ ...(check.evidence_expectation ?? check.evidence
49
+ ? { evidence_expectation: check.evidence_expectation ?? check.evidence }
50
+ : {}),
51
+ }));
52
+ }
53
+ return input.artifacts.map((artifact) => derivedContextCheckForArtifact(artifact, used));
54
+ }
55
+ function artifactStatusMap(statuses) {
56
+ return new Map(statuses.map((status) => [status.artifact_id, status]));
57
+ }
58
+ function statusForBackedArtifacts(statuses) {
59
+ if (statuses.length === 0)
60
+ return "pending";
61
+ if (statuses.some((status) => status.status === "failed"))
62
+ return "failed";
63
+ if (statuses.some((status) => status.status === "not_ready"))
64
+ return "pending";
65
+ if (statuses.every((status) => status.status === "ready"))
66
+ return "passed";
67
+ if (statuses.every((status) => status.status === "skipped"))
68
+ return "skipped";
69
+ return "pending";
70
+ }
71
+ function firstIssue(statuses) {
72
+ for (const status of statuses) {
73
+ const failedCheck = status.check_results.find((result) => result.required !== false && !result.passed);
74
+ if (failedCheck)
75
+ return failedCheck.summary;
76
+ if (status.status === "failed" && status.summary)
77
+ return status.summary;
78
+ }
79
+ return null;
80
+ }
81
+ function evidenceSummary(check, statuses) {
82
+ const ready = statuses.filter((status) => status.status === "ready").length;
83
+ if (statuses.length > 0 && ready === statuses.length) {
84
+ return check.evidence_expectation ?? `${ready}/${statuses.length} backed Artifact${statuses.length === 1 ? "" : "s"} accepted.`;
85
+ }
86
+ return null;
87
+ }
88
+ export function projectContextChecksForRun(input) {
89
+ const statusesByArtifact = artifactStatusMap(input.artifactStatuses);
90
+ return input.contextChecks.map((check) => {
91
+ const missingArtifactIds = check.backed_by_artifact_ids
92
+ .filter((artifactId) => !statusesByArtifact.has(artifactId));
93
+ const backedStatuses = check.backed_by_artifact_ids
94
+ .map((artifactId) => statusesByArtifact.get(artifactId) ?? null)
95
+ .filter((status) => status !== null);
96
+ const checkStatuses = backedStatuses;
97
+ const status = statusForBackedArtifacts(checkStatuses);
98
+ const issue = check.backed_by_artifact_ids.length === 0
99
+ ? "Context Check is not backed by a requested Artifact."
100
+ : missingArtifactIds.length > 0
101
+ ? `Context Check references missing requested Artifact${missingArtifactIds.length === 1 ? "" : "s"}: ${missingArtifactIds.join(", ")}.`
102
+ : status === "failed" ? firstIssue(checkStatuses) : null;
103
+ const projectedStatus = issue && check.required !== false
104
+ ? "failed"
105
+ : status;
106
+ const evidence = projectedStatus === "passed" ? evidenceSummary(check, checkStatuses) : null;
107
+ return ContextCheckSchema.parse({
108
+ ...check,
109
+ status: projectedStatus,
110
+ ...(evidence ? { evidence } : {}),
111
+ ...(issue ? { issue } : {}),
112
+ });
113
+ });
114
+ }
@@ -0,0 +1,9 @@
1
+ export declare function ensureContextGraphScaffold(projectDataDir: string, projectName: string, buildPlanId?: string): string;
2
+ export declare function ensureContextGraphScaffoldAt(options: {
3
+ projectDataDir: string;
4
+ contextGraphPath: string;
5
+ projectName: string;
6
+ buildPlanId?: string;
7
+ }): string;
8
+ export declare function createContextGraph(name: string, projectDataDir: string, buildPlanId: string | undefined, sourceFolderPath: string): string;
9
+ export declare function defaultContextGraphNameForSource(projectDataDir: string): string;
@@ -0,0 +1,134 @@
1
+ import { mkdirSync, existsSync, writeFileSync, } from "node:fs";
2
+ import { basename, join, relative, sep } from "node:path";
3
+ import { getBuildPlan } from "../build-plans/package/build-plan-definitions.js";
4
+ import { loadBuildPlanDefinitionFromDir, seedLocalDefaultBuildPlan } from "../build-plans/package/local-build-plans.js";
5
+ import { initializeBuildRuntimeState, } from "./build/state.js";
6
+ import { refreshContextGraphBootstrapGuidance } from "./agents/lib/context-graph-bootstrap.js";
7
+ import { assertContextGraphContainer, assertContextGraphName, } from "../projects/interf-detect.js";
8
+ import { seedContextGraphBuildPlanPackage } from "../build-plans/package/interf-build-plan-package.js";
9
+ import { asProjectDataDir, projectContextGraphPath, } from "../contracts/lib/project-paths.js";
10
+ import { ensureBuildPlanArtifactTargets, listBuildPlanContextArtifacts, readBuildPlanContextFile } from "./build/context-graph-schema.js";
11
+ import { findProjectConfig, loadSourceFolderConfig, buildPlanIdForProjectConfig, resolveProjectSourceBindingPath, saveContextGraphInterfConfig, } from "../projects/source-config.js";
12
+ import { defaultControlPathForContextGraph, testRootForContextGraph, buildPlanPackagePathForContextGraph } from "./build/context-graph-paths.js";
13
+ import { DEFAULT_BUILD_PLAN_ID } from "../build-plans/build-plan-resolution.js";
14
+ const DEFAULT_INTERFIGNORE = [
15
+ ".claude/",
16
+ ".codex/",
17
+ ".agents/",
18
+ ".cursor/",
19
+ ".interf/tests/",
20
+ ".interf/tests/targets/sandboxes/",
21
+ ".interf/runtime/",
22
+ "",
23
+ ].join("\n");
24
+ const UNBUILT_CONTEXT_GRAPH_PLACEHOLDER = "Not yet built. Run `interf build` to build this Context Graph.";
25
+ function renderUnbuiltContextGraphFile(contextGraphName, relativePath) {
26
+ return [
27
+ `# ${contextGraphName} — ${relativePath}`,
28
+ "",
29
+ UNBUILT_CONTEXT_GRAPH_PLACEHOLDER,
30
+ "",
31
+ ].join("\n");
32
+ }
33
+ function contextGraphGitignoreEntries(contextGraphPath) {
34
+ const schema = readBuildPlanContextFile(buildPlanPackagePathForContextGraph(contextGraphPath));
35
+ const artifactEntries = (schema ? listBuildPlanContextArtifacts(schema) : [])
36
+ .map((artifact) => artifact.kind === "file" ? artifact.path : `${artifact.path}/`);
37
+ return [
38
+ ...artifactEntries,
39
+ ".claude/",
40
+ ".codex/",
41
+ ".agents/",
42
+ ".cursor/",
43
+ ".interf/tests/",
44
+ ".interf/tests/targets/sandboxes/",
45
+ ".interf/runtime/",
46
+ ];
47
+ }
48
+ function scaffoldContextGraphOutputs(contextGraphPath, contextGraphName) {
49
+ const schema = readBuildPlanContextFile(buildPlanPackagePathForContextGraph(contextGraphPath));
50
+ if (!schema) {
51
+ throw new Error(`Missing Build Plan schema at ${buildPlanPackagePathForContextGraph(contextGraphPath)}.`);
52
+ }
53
+ ensureBuildPlanArtifactTargets(contextGraphPath, schema);
54
+ for (const artifact of listBuildPlanContextArtifacts(schema)) {
55
+ if (!artifact.required || artifact.kind !== "file")
56
+ continue;
57
+ const targetPath = join(contextGraphPath, artifact.path);
58
+ if (existsSync(targetPath))
59
+ continue;
60
+ writeFileSync(targetPath, renderUnbuiltContextGraphFile(contextGraphName, artifact.path));
61
+ }
62
+ }
63
+ function localBuildPlanMatches(contextGraphPath, buildPlanId) {
64
+ const localBuildPlan = loadBuildPlanDefinitionFromDir(buildPlanPackagePathForContextGraph(contextGraphPath));
65
+ return localBuildPlan?.id === buildPlanId;
66
+ }
67
+ export function ensureContextGraphScaffold(projectDataDir, projectName, buildPlanId = DEFAULT_BUILD_PLAN_ID) {
68
+ const contextGraphPath = projectContextGraphPath(asProjectDataDir(projectDataDir), projectName);
69
+ return ensureContextGraphScaffoldAt({
70
+ projectDataDir,
71
+ contextGraphPath,
72
+ projectName,
73
+ buildPlanId,
74
+ });
75
+ }
76
+ export function ensureContextGraphScaffoldAt(options) {
77
+ const { projectDataDir, contextGraphPath, projectName, buildPlanId = DEFAULT_BUILD_PLAN_ID, } = options;
78
+ assertContextGraphName(projectName, "Context Graph");
79
+ assertContextGraphContainer(projectDataDir);
80
+ mkdirSync(contextGraphPath, { recursive: true });
81
+ mkdirSync(testRootForContextGraph(contextGraphPath), { recursive: true });
82
+ if (buildPlanId === "interf-default") {
83
+ seedLocalDefaultBuildPlan({ projectDataDir });
84
+ }
85
+ const selectedBuildPlan = getBuildPlan(buildPlanId, { projectDataDir });
86
+ if (!localBuildPlanMatches(contextGraphPath, selectedBuildPlan.id)) {
87
+ seedContextGraphBuildPlanPackage({
88
+ contextGraphPath,
89
+ projectDataDir,
90
+ buildPlanId: selectedBuildPlan.id,
91
+ });
92
+ }
93
+ if (!existsSync(join(contextGraphPath, ".gitignore"))) {
94
+ writeFileSync(join(contextGraphPath, ".gitignore"), [...contextGraphGitignoreEntries(contextGraphPath), ""].join("\n"));
95
+ }
96
+ return contextGraphPath;
97
+ }
98
+ export function createContextGraph(name, projectDataDir, buildPlanId = DEFAULT_BUILD_PLAN_ID, sourceFolderPath) {
99
+ assertContextGraphName(name, "Context Graph");
100
+ if (!sourceFolderPath || typeof sourceFolderPath !== "string") {
101
+ throw new Error("createContextGraph requires an explicit sourceFolderPath. Pass the absolute Source Folder path the Context Graph binds to.");
102
+ }
103
+ const savedProject = findProjectConfig(loadSourceFolderConfig(projectDataDir), name);
104
+ const effectiveBuildPlanId = buildPlanIdForProjectConfig(savedProject) ?? buildPlanId;
105
+ const selectedBuildPlan = getBuildPlan(effectiveBuildPlanId, { projectDataDir });
106
+ const contextGraphPath = ensureContextGraphScaffold(projectDataDir, name, selectedBuildPlan.id);
107
+ const resolvedSourceFolderPath = savedProject
108
+ ? resolveProjectSourceBindingPath(projectDataDir, savedProject)
109
+ : sourceFolderPath;
110
+ const sourceRelativePath = relative(contextGraphPath, resolvedSourceFolderPath).split(sep).join("/") || ".";
111
+ saveContextGraphInterfConfig(contextGraphPath, {
112
+ type: "context-graph",
113
+ name,
114
+ build_plan: selectedBuildPlan.id,
115
+ build_plan_origin: {
116
+ selected: selectedBuildPlan.id,
117
+ local_draft: false,
118
+ },
119
+ source: {
120
+ path: sourceRelativePath,
121
+ control_path: defaultControlPathForContextGraph(contextGraphPath),
122
+ project_path: sourceRelativePath,
123
+ },
124
+ });
125
+ writeFileSync(join(contextGraphPath, ".interfignore"), DEFAULT_INTERFIGNORE);
126
+ scaffoldContextGraphOutputs(contextGraphPath, name);
127
+ refreshContextGraphBootstrapGuidance(contextGraphPath);
128
+ writeFileSync(join(contextGraphPath, ".gitignore"), [...contextGraphGitignoreEntries(contextGraphPath), ""].join("\n"));
129
+ initializeBuildRuntimeState(contextGraphPath);
130
+ return contextGraphPath;
131
+ }
132
+ export function defaultContextGraphNameForSource(projectDataDir) {
133
+ return basename(projectDataDir);
134
+ }
@@ -0,0 +1,43 @@
1
+ /**
2
+ * Entitlement guard.
3
+ *
4
+ * Enforces Pro feature gates + Free-tier limits. The Free 10-Project cap is
5
+ * the conversion lever; per the locked strategy, hitting it returns 402
6
+ * with an upgrade hint (no soft-archive — honest UX).
7
+ *
8
+ * Gating uses the `CurrentAccount.entitlements` block. Anonymous / pre-auth
9
+ * sessions are treated as Free.
10
+ */
11
+ import type { CurrentAccount } from "./auth/account-context.js";
12
+ export declare class EntitlementError extends Error {
13
+ readonly httpStatus = 402;
14
+ readonly upgradeHint: string;
15
+ constructor(message: string, upgradeHint: string);
16
+ }
17
+ /**
18
+ * Hard-reject a Project create when the account has reached its cap. Throws
19
+ * `EntitlementError` (status 402) with an upgrade hint.
20
+ *
21
+ * `activeProjectCount` is the count the runtime sees *before* the new
22
+ * Project is created. Pass the count of existing active Projects on disk.
23
+ */
24
+ export declare function assertCanCreateProject(account: CurrentAccount | null, activeProjectCount: number): void;
25
+ /**
26
+ * Require a specific Pro feature. Throws `EntitlementError` if the current
27
+ * account does not have access. Use to gate Pro-only routes (multi-source
28
+ * per Project, scheduled resyncs, benchmarking-unlimited, etc.).
29
+ */
30
+ export declare function requireEntitlement(account: CurrentAccount | null, feature: string): void;
31
+ /** Boolean check — does the current account have the feature? */
32
+ export declare function hasEntitlement(account: CurrentAccount | null, feature: string): boolean;
33
+ /** Free-tier benchmark quota: one verify run per Project, ever. */
34
+ export declare const FREE_BENCHMARK_RUN_LIMIT = 1;
35
+ /**
36
+ * Gate a benchmark verify-run creation. Pro (`benchmarking-unlimited`) is
37
+ * unbounded. Free / anonymous are capped at `FREE_BENCHMARK_RUN_LIMIT` runs
38
+ * per Project, lifetime.
39
+ *
40
+ * `existingRunCount` is the count of verify runs on disk for this Project
41
+ * *before* the new run is created.
42
+ */
43
+ export declare function assertCanRunBenchmark(account: CurrentAccount | null, existingRunCount: number): void;
@@ -0,0 +1,70 @@
1
+ /**
2
+ * Entitlement guard.
3
+ *
4
+ * Enforces Pro feature gates + Free-tier limits. The Free 10-Project cap is
5
+ * the conversion lever; per the locked strategy, hitting it returns 402
6
+ * with an upgrade hint (no soft-archive — honest UX).
7
+ *
8
+ * Gating uses the `CurrentAccount.entitlements` block. Anonymous / pre-auth
9
+ * sessions are treated as Free.
10
+ */
11
+ import { TIER_ENTITLEMENTS, } from "./auth/account-context.js";
12
+ export class EntitlementError extends Error {
13
+ httpStatus = 402;
14
+ upgradeHint;
15
+ constructor(message, upgradeHint) {
16
+ super(message);
17
+ this.name = "EntitlementError";
18
+ this.upgradeHint = upgradeHint;
19
+ }
20
+ }
21
+ function entitlementsOf(account) {
22
+ if (!account)
23
+ return TIER_ENTITLEMENTS.anonymous;
24
+ return account.entitlements;
25
+ }
26
+ /**
27
+ * Hard-reject a Project create when the account has reached its cap. Throws
28
+ * `EntitlementError` (status 402) with an upgrade hint.
29
+ *
30
+ * `activeProjectCount` is the count the runtime sees *before* the new
31
+ * Project is created. Pass the count of existing active Projects on disk.
32
+ */
33
+ export function assertCanCreateProject(account, activeProjectCount) {
34
+ const ent = entitlementsOf(account);
35
+ if (activeProjectCount < ent.max_active_projects)
36
+ return;
37
+ throw new EntitlementError(`Project cap reached (${activeProjectCount} of ${ent.max_active_projects}). Upgrade to Pro for unlimited Projects, or delete an existing Project first.`, "https://interf.com/pricing");
38
+ }
39
+ /**
40
+ * Require a specific Pro feature. Throws `EntitlementError` if the current
41
+ * account does not have access. Use to gate Pro-only routes (multi-source
42
+ * per Project, scheduled resyncs, benchmarking-unlimited, etc.).
43
+ */
44
+ export function requireEntitlement(account, feature) {
45
+ const ent = entitlementsOf(account);
46
+ if (ent.pro_features.includes(feature))
47
+ return;
48
+ throw new EntitlementError(`Pro feature required: ${feature}. Upgrade your plan to unlock.`, "https://interf.com/pricing");
49
+ }
50
+ /** Boolean check — does the current account have the feature? */
51
+ export function hasEntitlement(account, feature) {
52
+ return entitlementsOf(account).pro_features.includes(feature);
53
+ }
54
+ /** Free-tier benchmark quota: one verify run per Project, ever. */
55
+ export const FREE_BENCHMARK_RUN_LIMIT = 1;
56
+ /**
57
+ * Gate a benchmark verify-run creation. Pro (`benchmarking-unlimited`) is
58
+ * unbounded. Free / anonymous are capped at `FREE_BENCHMARK_RUN_LIMIT` runs
59
+ * per Project, lifetime.
60
+ *
61
+ * `existingRunCount` is the count of verify runs on disk for this Project
62
+ * *before* the new run is created.
63
+ */
64
+ export function assertCanRunBenchmark(account, existingRunCount) {
65
+ if (hasEntitlement(account, "benchmarking-unlimited"))
66
+ return;
67
+ if (existingRunCount < FREE_BENCHMARK_RUN_LIMIT)
68
+ return;
69
+ throw new EntitlementError(`Free tier limit reached: ${existingRunCount} of ${FREE_BENCHMARK_RUN_LIMIT} benchmark${FREE_BENCHMARK_RUN_LIMIT === 1 ? "" : "s"} used for this Project. Upgrade to Pro for more Project activity history, benchmark/evaluation runs, and self-improving Build Plan loops.`, "https://interf.com/pricing");
70
+ }
@@ -1,8 +1,8 @@
1
1
  export * as schema from "./lib/schema.js";
2
2
  export * as events from "./events.js";
3
3
  export * as adapters from "./adapters.js";
4
- export type { ArtifactRef, ArtifactRole, BuildRun, BuildRunStatus, ExecutionBackendKind, InterfRunEvent, ObservableRunMetric, ObservableRunStatus, ObservableRunType, ProofCheck, ProofRecord, RunObservability, StageRun, StageRunContract, StageRunLogs, StageRunStatus, RunTrace, RunTraceEvent, RunTraceEventType, RunTraceRun, RunTraceRunStatus, RunTraceStreamChunk, RunTraceStructuredError, } from "./lib/schema.js";
5
- export { ArtifactRefSchema, ArtifactRoleSchema, BuildRunSchema, BuildRunStatusSchema, ExecutionBackendKindSchema, InterfRunEventSchema, LogAppendedEventSchema, ObservableRunMetricSchema, ObservableRunStatusSchema, ObservableRunTypeSchema, ProofCheckSchema, ProofRecordSchema, RunObservabilitySchema, StageRunSchema, StageRunContractSchema, StageRunLogsSchema, StageRunStatusSchema, RunTraceEventSchema, RunTraceEventTypeSchema, RunTraceRunSchema, RunTraceRunStatusSchema, RunTraceSchema, RunTraceStreamChunkSchema, RunTraceStructuredErrorSchema, } from "./lib/schema.js";
4
+ export type { ArtifactRef, ArtifactRole, BuildRun, BuildRunStatus, ExecutionBackendKind, InterfRunEvent, ObservableRunMetric, ObservableRunStatus, ObservableRunType, RunCheck, EvidenceRecord, RunObservability, StageRun, StageRunContract, StageRunLogs, StageRunStatus, RunTrace, RunTraceEvent, RunTraceEventType, RunTraceRun, RunTraceRunStatus, RunTraceStreamChunk, RunTraceStructuredError, } from "./lib/schema.js";
5
+ export { ArtifactRefSchema, ArtifactRoleSchema, BuildRunSchema, BuildRunStatusSchema, ExecutionBackendKindSchema, InterfRunEventSchema, LogAppendedEventSchema, ObservableRunMetricSchema, ObservableRunStatusSchema, ObservableRunTypeSchema, RunCheckSchema, EvidenceRecordSchema, RunObservabilitySchema, StageRunSchema, StageRunContractSchema, StageRunLogsSchema, StageRunStatusSchema, RunTraceEventSchema, RunTraceEventTypeSchema, RunTraceRunSchema, RunTraceRunStatusSchema, RunTraceSchema, RunTraceStreamChunkSchema, RunTraceStructuredErrorSchema, } from "./lib/schema.js";
6
6
  export type { ExecutionAdapter, ExecutionAdapterContext, ExecutionEventRecorder, } from "./adapters.js";
7
7
  export { nativeExecutionBackendKind, } from "./adapters.js";
8
8
  export type { RunEventSink, } from "./events.js";
@@ -1,6 +1,6 @@
1
1
  export * as schema from "./lib/schema.js";
2
2
  export * as events from "./events.js";
3
3
  export * as adapters from "./adapters.js";
4
- export { ArtifactRefSchema, ArtifactRoleSchema, BuildRunSchema, BuildRunStatusSchema, ExecutionBackendKindSchema, InterfRunEventSchema, LogAppendedEventSchema, ObservableRunMetricSchema, ObservableRunStatusSchema, ObservableRunTypeSchema, ProofCheckSchema, ProofRecordSchema, RunObservabilitySchema, StageRunSchema, StageRunContractSchema, StageRunLogsSchema, StageRunStatusSchema, RunTraceEventSchema, RunTraceEventTypeSchema, RunTraceRunSchema, RunTraceRunStatusSchema, RunTraceSchema, RunTraceStreamChunkSchema, RunTraceStructuredErrorSchema, } from "./lib/schema.js";
4
+ export { ArtifactRefSchema, ArtifactRoleSchema, BuildRunSchema, BuildRunStatusSchema, ExecutionBackendKindSchema, InterfRunEventSchema, LogAppendedEventSchema, ObservableRunMetricSchema, ObservableRunStatusSchema, ObservableRunTypeSchema, RunCheckSchema, EvidenceRecordSchema, RunObservabilitySchema, StageRunSchema, StageRunContractSchema, StageRunLogsSchema, StageRunStatusSchema, RunTraceEventSchema, RunTraceEventTypeSchema, RunTraceRunSchema, RunTraceRunStatusSchema, RunTraceSchema, RunTraceStreamChunkSchema, RunTraceStructuredErrorSchema, } from "./lib/schema.js";
5
5
  export { nativeExecutionBackendKind, } from "./adapters.js";
6
6
  export { createRunEventId, createRunEventTimestamp, nullRunEventSink, parseInterfRunEvent, } from "./events.js";