@interf/compiler 0.22.2 → 0.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (616) hide show
  1. package/README.md +119 -282
  2. package/dist/bin-mcp.d.ts +2 -0
  3. package/dist/bin-mcp.js +63 -0
  4. package/dist/bin-runtime.d.ts +2 -0
  5. package/dist/bin-runtime.js +111 -0
  6. package/dist/cli/commands/agents.js +4 -35
  7. package/dist/cli/commands/auth.d.ts +20 -0
  8. package/dist/cli/commands/auth.js +161 -0
  9. package/dist/cli/commands/benchmark.d.ts +9 -0
  10. package/dist/cli/commands/benchmark.js +58 -0
  11. package/dist/cli/commands/build-plan.js +107 -139
  12. package/dist/cli/commands/build.d.ts +3 -4
  13. package/dist/cli/commands/build.js +16 -45
  14. package/dist/cli/commands/doctor.js +3 -3
  15. package/dist/cli/commands/graphs.d.ts +2 -0
  16. package/dist/cli/commands/graphs.js +344 -0
  17. package/dist/cli/commands/login.js +4 -6
  18. package/dist/cli/commands/logout.js +1 -1
  19. package/dist/cli/commands/mcp.d.ts +4 -2
  20. package/dist/cli/commands/mcp.js +846 -232
  21. package/dist/cli/commands/project.d.ts +2 -0
  22. package/dist/cli/commands/project.js +176 -0
  23. package/dist/cli/commands/reset.d.ts +3 -4
  24. package/dist/cli/commands/reset.js +10 -31
  25. package/dist/cli/commands/runs.js +136 -57
  26. package/dist/cli/commands/runtime.d.ts +24 -0
  27. package/dist/cli/commands/runtime.js +373 -0
  28. package/dist/cli/commands/status.d.ts +1 -0
  29. package/dist/cli/commands/status.js +35 -45
  30. package/dist/cli/commands/traces.d.ts +2 -0
  31. package/dist/cli/commands/traces.js +97 -0
  32. package/dist/cli/commands/wizard.js +171 -178
  33. package/dist/cli/index.d.ts +7 -4
  34. package/dist/cli/index.js +13 -7
  35. package/dist/cli/lib/http-client.d.ts +39 -0
  36. package/dist/cli/lib/http-client.js +73 -0
  37. package/dist/index.d.ts +2 -2
  38. package/dist/index.js +2 -2
  39. package/dist/packages/build-plans/authoring/brief.d.ts +538 -0
  40. package/dist/packages/build-plans/authoring/brief.js +89 -0
  41. package/dist/packages/build-plans/authoring/build-plan-authoring.d.ts +52 -11
  42. package/dist/packages/build-plans/authoring/build-plan-authoring.js +493 -46
  43. package/dist/packages/build-plans/authoring/build-plan-edit-session.d.ts +10 -1
  44. package/dist/packages/build-plans/authoring/build-plan-edit-session.js +27 -4
  45. package/dist/packages/build-plans/authoring/build-plan-improvement.d.ts +9 -6
  46. package/dist/packages/build-plans/authoring/build-plan-improvement.js +97 -46
  47. package/dist/packages/build-plans/authoring/lib/build-plan-edit-utils.d.ts +1 -0
  48. package/dist/packages/build-plans/authoring/lib/build-plan-edit-utils.js +7 -7
  49. package/dist/packages/build-plans/build-plan-resolution.d.ts +1 -1
  50. package/dist/packages/build-plans/build-plan-resolution.js +3 -3
  51. package/dist/packages/build-plans/index.d.ts +1 -1
  52. package/dist/packages/build-plans/index.js +1 -1
  53. package/dist/packages/build-plans/package/build-plan-definitions.d.ts +14 -13
  54. package/dist/packages/build-plans/package/build-plan-definitions.js +45 -42
  55. package/dist/packages/build-plans/package/build-plan-helpers.d.ts +3 -2
  56. package/dist/packages/build-plans/package/build-plan-helpers.js +27 -13
  57. package/dist/packages/build-plans/package/build-plan-review-paths.d.ts +5 -5
  58. package/dist/packages/build-plans/package/build-plan-review-paths.js +15 -15
  59. package/dist/packages/build-plans/package/build-plan-stage-runner.d.ts +5 -4
  60. package/dist/packages/build-plans/package/build-plan-stage-runner.js +23 -11
  61. package/dist/packages/build-plans/package/builtin-build-plan.d.ts +7 -8
  62. package/dist/packages/build-plans/package/builtin-build-plan.js +10 -11
  63. package/dist/packages/build-plans/package/context-interface.d.ts +14 -9
  64. package/dist/packages/build-plans/package/context-interface.js +14 -33
  65. package/dist/packages/build-plans/package/interf-build-plan-package.d.ts +6 -17
  66. package/dist/packages/build-plans/package/interf-build-plan-package.js +68 -64
  67. package/dist/packages/build-plans/package/local-build-plans.d.ts +21 -14
  68. package/dist/packages/build-plans/package/local-build-plans.js +105 -55
  69. package/dist/packages/build-plans/package/user-build-plans.js +1 -1
  70. package/dist/packages/contracts/index.d.ts +5 -2
  71. package/dist/packages/contracts/index.js +3 -1
  72. package/dist/packages/contracts/lib/context-graph-layer.d.ts +161 -0
  73. package/dist/packages/contracts/lib/context-graph-layer.js +216 -0
  74. package/dist/packages/contracts/lib/project-paths.d.ts +144 -0
  75. package/dist/packages/contracts/lib/project-paths.js +220 -0
  76. package/dist/packages/contracts/lib/project-schema.d.ts +423 -0
  77. package/dist/packages/contracts/lib/project-schema.js +138 -0
  78. package/dist/packages/contracts/lib/schema.d.ts +1273 -81
  79. package/dist/packages/contracts/lib/schema.js +675 -79
  80. package/dist/packages/contracts/utils/filesystem.d.ts +1 -0
  81. package/dist/packages/contracts/utils/filesystem.js +29 -1
  82. package/dist/packages/contracts/utils/parse.js +67 -0
  83. package/dist/packages/projects/index.d.ts +6 -0
  84. package/dist/packages/{project → projects}/index.js +0 -3
  85. package/dist/packages/{project → projects}/interf-detect.d.ts +12 -12
  86. package/dist/packages/{project → projects}/interf-detect.js +56 -50
  87. package/dist/packages/projects/interf.d.ts +2 -0
  88. package/dist/packages/projects/interf.js +1 -0
  89. package/dist/packages/projects/lib/schema.d.ts +77 -0
  90. package/dist/packages/projects/lib/schema.js +91 -0
  91. package/dist/packages/projects/source-config.d.ts +53 -0
  92. package/dist/packages/projects/source-config.js +339 -0
  93. package/dist/packages/projects/source-folders.d.ts +11 -0
  94. package/dist/packages/{project → projects}/source-folders.js +26 -26
  95. package/dist/packages/{engine → runtime}/action-planner.d.ts +1 -1
  96. package/dist/packages/{engine → runtime}/action-planner.js +20 -22
  97. package/dist/packages/runtime/action-values.d.ts +1 -0
  98. package/dist/packages/runtime/action-values.js +1 -0
  99. package/dist/packages/runtime/actions/errors.d.ts +2 -0
  100. package/dist/packages/runtime/actions/errors.js +12 -0
  101. package/dist/packages/runtime/actions/fields.d.ts +86 -0
  102. package/dist/packages/runtime/actions/form-builders.d.ts +14 -0
  103. package/dist/packages/runtime/actions/form-builders.js +667 -0
  104. package/dist/packages/runtime/actions/form-validators.d.ts +8 -0
  105. package/dist/packages/runtime/actions/form-validators.js +134 -0
  106. package/dist/packages/runtime/actions/helpers.d.ts +11 -0
  107. package/dist/packages/runtime/actions/helpers.js +80 -0
  108. package/dist/packages/runtime/actions/index.d.ts +8 -0
  109. package/dist/packages/runtime/actions/index.js +11 -0
  110. package/dist/packages/runtime/actions/registry.d.ts +64 -0
  111. package/dist/packages/runtime/actions/registry.js +62 -0
  112. package/dist/packages/runtime/actions/requests.d.ts +45 -0
  113. package/dist/packages/runtime/actions/requests.js +164 -0
  114. package/dist/packages/runtime/actions/schemas.d.ts +161 -0
  115. package/dist/packages/runtime/actions/schemas.js +37 -0
  116. package/dist/packages/runtime/agent-handoff.d.ts +11 -0
  117. package/dist/packages/runtime/agent-handoff.js +102 -0
  118. package/dist/packages/{engine → runtime}/agents/index.d.ts +1 -2
  119. package/dist/packages/{engine → runtime}/agents/index.js +1 -2
  120. package/dist/packages/runtime/agents/lib/args.d.ts +14 -0
  121. package/dist/packages/runtime/agents/lib/args.js +24 -0
  122. package/dist/packages/{engine → runtime}/agents/lib/constants.d.ts +4 -1
  123. package/dist/packages/runtime/agents/lib/constants.js +13 -0
  124. package/dist/packages/runtime/agents/lib/context-graph-bootstrap.d.ts +3 -0
  125. package/dist/packages/{engine/agents/lib/verifiable-context-bootstrap.js → runtime/agents/lib/context-graph-bootstrap.js} +5 -6
  126. package/dist/packages/{engine → runtime}/agents/lib/detection.d.ts +5 -0
  127. package/dist/packages/{engine → runtime}/agents/lib/detection.js +16 -7
  128. package/dist/packages/{engine → runtime}/agents/lib/execution-profile.d.ts +14 -0
  129. package/dist/packages/{engine → runtime}/agents/lib/execution-profile.js +31 -14
  130. package/dist/packages/{engine → runtime}/agents/lib/execution.js +22 -6
  131. package/dist/packages/{engine → runtime}/agents/lib/executors.d.ts +1 -0
  132. package/dist/packages/{engine → runtime}/agents/lib/executors.js +11 -2
  133. package/dist/packages/runtime/agents/lib/logs.d.ts +12 -0
  134. package/dist/packages/runtime/agents/lib/logs.js +41 -0
  135. package/dist/packages/{engine → runtime}/agents/lib/preflight.js +19 -14
  136. package/dist/packages/runtime/agents/lib/render.d.ts +26 -0
  137. package/dist/packages/{engine → runtime}/agents/lib/render.js +48 -22
  138. package/dist/packages/runtime/agents/lib/shell-fs.d.ts +18 -0
  139. package/dist/packages/runtime/agents/lib/shell-fs.js +190 -0
  140. package/dist/packages/runtime/agents/lib/shell-paths.d.ts +16 -0
  141. package/dist/packages/runtime/agents/lib/shell-paths.js +63 -0
  142. package/dist/packages/runtime/agents/lib/shell-projection.d.ts +25 -0
  143. package/dist/packages/runtime/agents/lib/shell-projection.js +314 -0
  144. package/dist/packages/runtime/agents/lib/shell-templates.d.ts +30 -0
  145. package/dist/packages/runtime/agents/lib/shell-templates.js +494 -0
  146. package/dist/packages/runtime/agents/lib/shell-workspace.d.ts +17 -0
  147. package/dist/packages/runtime/agents/lib/shell-workspace.js +70 -0
  148. package/dist/packages/runtime/agents/lib/shells.d.ts +92 -0
  149. package/dist/packages/runtime/agents/lib/shells.js +509 -0
  150. package/dist/packages/runtime/agents/lib/source-context-scan.d.ts +10 -0
  151. package/dist/packages/runtime/agents/lib/source-context-scan.js +388 -0
  152. package/dist/packages/{engine → runtime}/agents/lib/status.js +1 -14
  153. package/dist/packages/runtime/agents/lib/string-utils.d.ts +16 -0
  154. package/dist/packages/runtime/agents/lib/string-utils.js +36 -0
  155. package/dist/packages/{engine → runtime}/agents/lib/types.d.ts +1 -0
  156. package/dist/packages/{engine → runtime}/agents/lib/user-config.d.ts +8 -2
  157. package/dist/packages/{engine → runtime}/agents/lib/user-config.js +8 -2
  158. package/dist/packages/runtime/agents/providers/claude-code.d.ts +13 -0
  159. package/dist/packages/runtime/agents/providers/claude-code.js +45 -0
  160. package/dist/packages/runtime/agents/providers/codex.d.ts +17 -0
  161. package/dist/packages/runtime/agents/providers/codex.js +66 -0
  162. package/dist/packages/runtime/agents/providers/cursor.d.ts +9 -0
  163. package/dist/packages/runtime/agents/providers/cursor.js +24 -0
  164. package/dist/packages/runtime/agents/providers/index.d.ts +9 -0
  165. package/dist/packages/runtime/agents/providers/index.js +31 -0
  166. package/dist/packages/runtime/agents/providers/types.d.ts +50 -0
  167. package/dist/packages/{engine → runtime}/agents/registry.d.ts +13 -2
  168. package/dist/packages/{engine → runtime}/agents/registry.js +48 -10
  169. package/dist/packages/{engine → runtime}/agents/role-executors.d.ts +1 -1
  170. package/dist/packages/{engine → runtime}/agents/role-executors.js +9 -7
  171. package/dist/packages/{engine → runtime}/agents/role-router.js +7 -5
  172. package/dist/packages/runtime/auth/account-context.d.ts +52 -0
  173. package/dist/packages/runtime/auth/account-context.js +68 -0
  174. package/dist/packages/runtime/auth/auth-flow.d.ts +73 -0
  175. package/dist/packages/runtime/auth/auth-flow.js +189 -0
  176. package/dist/packages/runtime/auth/jwt-validator.d.ts +58 -0
  177. package/dist/packages/runtime/auth/jwt-validator.js +86 -0
  178. package/dist/packages/runtime/auth/keychain.d.ts +35 -0
  179. package/dist/packages/runtime/auth/keychain.js +85 -0
  180. package/dist/packages/runtime/auth/session-store.d.ts +38 -0
  181. package/dist/packages/runtime/auth/session-store.js +96 -0
  182. package/dist/packages/runtime/auth/workos-client.d.ts +58 -0
  183. package/dist/packages/runtime/auth/workos-client.js +87 -0
  184. package/dist/packages/runtime/benchmark-question-draft.d.ts +23 -0
  185. package/dist/packages/runtime/benchmark-question-draft.js +153 -0
  186. package/dist/packages/runtime/build/artifact-counts.d.ts +1 -0
  187. package/dist/packages/{engine → runtime}/build/artifact-counts.js +5 -9
  188. package/dist/packages/{engine → runtime}/build/artifact-status.d.ts +6 -6
  189. package/dist/packages/{engine → runtime}/build/artifact-status.js +26 -24
  190. package/dist/packages/runtime/build/atomic-fs.d.ts +3 -0
  191. package/dist/packages/runtime/build/atomic-fs.js +95 -0
  192. package/dist/packages/runtime/build/billing-events.d.ts +78 -0
  193. package/dist/packages/{engine → runtime}/build/billing-events.js +17 -19
  194. package/dist/packages/runtime/build/build-evidence.d.ts +16 -0
  195. package/dist/packages/runtime/build/build-evidence.js +179 -0
  196. package/dist/packages/{engine → runtime}/build/build-pipeline.d.ts +12 -8
  197. package/dist/packages/runtime/build/build-pipeline.js +388 -0
  198. package/dist/packages/{engine → runtime}/build/build-plan-primitives.d.ts +1 -1
  199. package/dist/packages/{engine → runtime}/build/build-plan-primitives.js +0 -1
  200. package/dist/packages/runtime/build/build-plan-runs.d.ts +14 -0
  201. package/dist/packages/runtime/build/build-plan-runs.js +31 -0
  202. package/dist/packages/runtime/build/build-stage-plan.d.ts +16 -0
  203. package/dist/packages/runtime/build/build-stage-plan.js +101 -0
  204. package/dist/packages/{engine → runtime}/build/build-stage-runner.d.ts +2 -1
  205. package/dist/packages/runtime/build/build-stage-runner.js +302 -0
  206. package/dist/packages/{engine → runtime}/build/build-target.d.ts +7 -4
  207. package/dist/packages/runtime/build/build-target.js +40 -0
  208. package/dist/packages/{engine → runtime}/build/check-evaluator.d.ts +14 -16
  209. package/dist/packages/runtime/build/check-evaluator.js +1226 -0
  210. package/dist/packages/runtime/build/context-graph-paths.d.ts +64 -0
  211. package/dist/packages/runtime/build/context-graph-paths.js +160 -0
  212. package/dist/packages/runtime/build/context-graph-schema.d.ts +19 -0
  213. package/dist/packages/runtime/build/context-graph-schema.js +39 -0
  214. package/dist/packages/{engine → runtime}/build/discovery.d.ts +2 -2
  215. package/dist/packages/{engine → runtime}/build/discovery.js +4 -4
  216. package/dist/packages/{engine → runtime}/build/index.d.ts +7 -5
  217. package/dist/packages/{engine → runtime}/build/index.js +7 -5
  218. package/dist/packages/runtime/build/inspect-map.d.ts +10 -0
  219. package/dist/packages/runtime/build/inspect-map.js +270 -0
  220. package/dist/packages/{engine → runtime}/build/lib/schema.d.ts +449 -123
  221. package/dist/packages/runtime/build/lib/schema.js +494 -0
  222. package/dist/packages/runtime/build/native-entrypoint.d.ts +2 -0
  223. package/dist/packages/runtime/build/native-entrypoint.js +286 -0
  224. package/dist/packages/runtime/build/reset.d.ts +2 -0
  225. package/dist/packages/runtime/build/reset.js +62 -0
  226. package/dist/packages/{engine → runtime}/build/runtime-contracts.js +13 -7
  227. package/dist/packages/runtime/build/runtime-inventory.d.ts +7 -0
  228. package/dist/packages/{engine → runtime}/build/runtime-inventory.js +3 -3
  229. package/dist/packages/runtime/build/runtime-log-paths.d.ts +3 -0
  230. package/dist/packages/runtime/build/runtime-log-paths.js +16 -0
  231. package/dist/packages/{engine → runtime}/build/runtime-prompt.js +12 -9
  232. package/dist/packages/{engine → runtime}/build/runtime-reconcile.d.ts +1 -1
  233. package/dist/packages/{engine → runtime}/build/runtime-reconcile.js +25 -21
  234. package/dist/packages/runtime/build/runtime-runs.d.ts +10 -0
  235. package/dist/packages/runtime/build/runtime-runs.js +318 -0
  236. package/dist/packages/{engine → runtime}/build/runtime-types.d.ts +9 -6
  237. package/dist/packages/runtime/build/runtime-types.js +1 -0
  238. package/dist/packages/runtime/build/runtime.d.ts +8 -0
  239. package/dist/packages/runtime/build/runtime.js +7 -0
  240. package/dist/packages/runtime/build/source-files.d.ts +58 -0
  241. package/dist/packages/runtime/build/source-files.js +193 -0
  242. package/dist/packages/runtime/build/source-inventory.d.ts +28 -0
  243. package/dist/packages/runtime/build/source-inventory.js +512 -0
  244. package/dist/packages/runtime/build/source-manifest.d.ts +63 -0
  245. package/dist/packages/runtime/build/source-manifest.js +220 -0
  246. package/dist/packages/runtime/build/stage-evidence.d.ts +22 -0
  247. package/dist/packages/runtime/build/stage-evidence.js +386 -0
  248. package/dist/packages/runtime/build/stage-manifest.d.ts +45 -0
  249. package/dist/packages/runtime/build/stage-manifest.js +1125 -0
  250. package/dist/packages/runtime/build/stage-reuse.d.ts +11 -0
  251. package/dist/packages/runtime/build/stage-reuse.js +154 -0
  252. package/dist/packages/runtime/build/stage-session.d.ts +81 -0
  253. package/dist/packages/runtime/build/stage-session.js +308 -0
  254. package/dist/packages/runtime/build/state-artifacts.d.ts +9 -0
  255. package/dist/packages/runtime/build/state-artifacts.js +14 -0
  256. package/dist/packages/runtime/build/state-health.d.ts +4 -0
  257. package/dist/packages/{engine → runtime}/build/state-health.js +21 -26
  258. package/dist/packages/runtime/build/state-io.d.ts +12 -0
  259. package/dist/packages/runtime/build/state-io.js +118 -0
  260. package/dist/packages/runtime/build/state-view.d.ts +5 -0
  261. package/dist/packages/runtime/build/state-view.js +121 -0
  262. package/dist/packages/runtime/build/state.d.ts +7 -0
  263. package/dist/packages/runtime/build/state.js +12 -0
  264. package/dist/packages/runtime/build/summary-coverage-index.d.ts +21 -0
  265. package/dist/packages/runtime/build/summary-coverage-index.js +189 -0
  266. package/dist/packages/runtime/build/traces.d.ts +30 -0
  267. package/dist/packages/runtime/build/traces.js +133 -0
  268. package/dist/packages/{engine/build/validate-verifiable-context.d.ts → runtime/build/validate-context-graph.d.ts} +6 -6
  269. package/dist/packages/{engine/build/validate-verifiable-context.js → runtime/build/validate-context-graph.js} +49 -36
  270. package/dist/packages/{engine → runtime}/build/validate.d.ts +5 -5
  271. package/dist/packages/{engine → runtime}/build/validate.js +26 -26
  272. package/dist/packages/{engine → runtime}/client.d.ts +18 -18
  273. package/dist/packages/{engine → runtime}/client.js +48 -36
  274. package/dist/packages/{engine → runtime}/connection-config.d.ts +3 -2
  275. package/dist/packages/{engine → runtime}/connection-config.js +9 -8
  276. package/dist/packages/runtime/context-checks.d.ts +10 -0
  277. package/dist/packages/runtime/context-checks.js +127 -0
  278. package/dist/packages/runtime/context-graph-scaffold.d.ts +9 -0
  279. package/dist/packages/runtime/context-graph-scaffold.js +135 -0
  280. package/dist/packages/runtime/context-graph-semantic-graph.d.ts +9 -0
  281. package/dist/packages/runtime/context-graph-semantic-graph.js +416 -0
  282. package/dist/packages/runtime/entitlement-guard.d.ts +43 -0
  283. package/dist/packages/runtime/entitlement-guard.js +70 -0
  284. package/dist/packages/{engine → runtime}/execution/index.d.ts +2 -2
  285. package/dist/packages/{engine → runtime}/execution/index.js +1 -1
  286. package/dist/packages/{engine → runtime}/execution/lib/schema.d.ts +272 -191
  287. package/dist/packages/{engine → runtime}/execution/lib/schema.js +35 -32
  288. package/dist/packages/runtime/index.d.ts +29 -0
  289. package/dist/packages/runtime/index.js +21 -0
  290. package/dist/packages/runtime/instance-paths.d.ts +30 -0
  291. package/dist/packages/runtime/instance-paths.js +29 -0
  292. package/dist/packages/runtime/native-run-handlers.d.ts +63 -0
  293. package/dist/packages/{engine → runtime}/native-run-handlers.js +217 -166
  294. package/dist/packages/runtime/plan-artifact-contract.d.ts +17 -0
  295. package/dist/packages/runtime/plan-artifact-contract.js +42 -0
  296. package/dist/packages/runtime/project-entries.d.ts +11 -0
  297. package/dist/packages/runtime/project-entries.js +49 -0
  298. package/dist/packages/runtime/project-source-state.d.ts +26 -0
  299. package/dist/packages/runtime/project-source-state.js +56 -0
  300. package/dist/packages/runtime/project-store.d.ts +90 -0
  301. package/dist/packages/runtime/project-store.js +195 -0
  302. package/dist/packages/runtime/requested-artifacts.d.ts +7 -0
  303. package/dist/packages/{engine → runtime}/requested-artifacts.js +23 -1
  304. package/dist/packages/{engine → runtime}/run-observability.d.ts +2 -1
  305. package/dist/packages/{engine → runtime}/run-observability.js +174 -87
  306. package/dist/packages/runtime/runtime-action-proposals.d.ts +7 -0
  307. package/dist/packages/runtime/runtime-action-proposals.js +542 -0
  308. package/dist/packages/runtime/runtime-build-plans.d.ts +5 -0
  309. package/dist/packages/runtime/runtime-build-plans.js +175 -0
  310. package/dist/packages/runtime/runtime-build-runs.d.ts +47 -0
  311. package/dist/packages/runtime/runtime-build-runs.js +555 -0
  312. package/dist/packages/runtime/runtime-caches.d.ts +117 -0
  313. package/dist/packages/runtime/runtime-caches.js +266 -0
  314. package/dist/packages/{engine → runtime}/runtime-event-applier.d.ts +3 -1
  315. package/dist/packages/{engine → runtime}/runtime-event-applier.js +53 -17
  316. package/dist/packages/runtime/runtime-executor.d.ts +22 -0
  317. package/dist/packages/runtime/runtime-executor.js +131 -0
  318. package/dist/packages/runtime/runtime-jobs.d.ts +13 -0
  319. package/dist/packages/runtime/runtime-jobs.js +463 -0
  320. package/dist/packages/runtime/runtime-observability.d.ts +11 -0
  321. package/dist/packages/runtime/runtime-observability.js +39 -0
  322. package/dist/packages/{engine → runtime}/runtime-persistence.d.ts +9 -18
  323. package/dist/packages/{engine → runtime}/runtime-persistence.js +25 -25
  324. package/dist/packages/runtime/runtime-project-mutations.d.ts +7 -0
  325. package/dist/packages/runtime/runtime-project-mutations.js +65 -0
  326. package/dist/packages/runtime/runtime-project-reads.d.ts +18 -0
  327. package/dist/packages/runtime/runtime-project-reads.js +574 -0
  328. package/dist/packages/runtime/runtime-proposal-helpers.d.ts +22 -0
  329. package/dist/packages/runtime/runtime-proposal-helpers.js +223 -0
  330. package/dist/packages/{engine → runtime}/runtime-resource-builders.d.ts +23 -16
  331. package/dist/packages/{engine → runtime}/runtime-resource-builders.js +58 -46
  332. package/dist/packages/runtime/runtime-status.d.ts +14 -0
  333. package/dist/packages/runtime/runtime-status.js +15 -0
  334. package/dist/packages/runtime/runtime-verify-runs.d.ts +84 -0
  335. package/dist/packages/runtime/runtime-verify-runs.js +296 -0
  336. package/dist/packages/runtime/runtime.d.ts +1582 -0
  337. package/dist/packages/runtime/runtime.js +431 -0
  338. package/dist/packages/runtime/schemas/actions.d.ts +1206 -0
  339. package/dist/packages/runtime/schemas/actions.js +117 -0
  340. package/dist/packages/runtime/schemas/agents.d.ts +104 -0
  341. package/dist/packages/runtime/schemas/agents.js +74 -0
  342. package/dist/packages/runtime/schemas/build-plans.d.ts +1132 -0
  343. package/dist/packages/runtime/schemas/build-plans.js +141 -0
  344. package/dist/packages/runtime/schemas/context-graphs.d.ts +1522 -0
  345. package/dist/packages/runtime/schemas/context-graphs.js +110 -0
  346. package/dist/packages/runtime/schemas/files.d.ts +227 -0
  347. package/dist/packages/runtime/schemas/files.js +28 -0
  348. package/dist/packages/runtime/schemas/index.d.ts +9 -0
  349. package/dist/packages/runtime/schemas/index.js +13 -0
  350. package/dist/packages/runtime/schemas/instance.d.ts +141 -0
  351. package/dist/packages/runtime/schemas/instance.js +143 -0
  352. package/dist/packages/runtime/schemas/jobs.d.ts +339 -0
  353. package/dist/packages/runtime/schemas/jobs.js +107 -0
  354. package/dist/packages/runtime/schemas/projects.d.ts +366 -0
  355. package/dist/packages/runtime/schemas/projects.js +160 -0
  356. package/dist/packages/runtime/schemas/runs.d.ts +3445 -0
  357. package/dist/packages/runtime/schemas/runs.js +115 -0
  358. package/dist/packages/runtime/service/index.d.ts +3 -0
  359. package/dist/packages/runtime/service/index.js +3 -0
  360. package/dist/packages/runtime/service/openapi.d.ts +7 -0
  361. package/dist/packages/runtime/service/openapi.js +118 -0
  362. package/dist/packages/runtime/service/operations.d.ts +3011 -0
  363. package/dist/packages/runtime/service/operations.js +375 -0
  364. package/dist/packages/runtime/service/routes.d.ts +114 -0
  365. package/dist/packages/runtime/service/routes.js +128 -0
  366. package/dist/packages/runtime/service/server-api-files.d.ts +10 -0
  367. package/dist/packages/runtime/service/server-api-files.js +85 -0
  368. package/dist/packages/runtime/service/server-app-boot.d.ts +4 -0
  369. package/dist/packages/runtime/service/server-app-boot.js +46 -0
  370. package/dist/packages/runtime/service/server-guards.d.ts +63 -0
  371. package/dist/packages/runtime/service/server-guards.js +181 -0
  372. package/dist/packages/runtime/service/server-helpers.d.ts +38 -0
  373. package/dist/packages/runtime/service/server-helpers.js +108 -0
  374. package/dist/packages/runtime/service/server-instance-helpers.d.ts +30 -0
  375. package/dist/packages/runtime/service/server-instance-helpers.js +114 -0
  376. package/dist/packages/runtime/service/server-routes-action-proposals.d.ts +3 -0
  377. package/dist/packages/runtime/service/server-routes-action-proposals.js +45 -0
  378. package/dist/packages/runtime/service/server-routes-agents.d.ts +4 -0
  379. package/dist/packages/runtime/service/server-routes-agents.js +132 -0
  380. package/dist/packages/runtime/service/server-routes-auth.d.ts +33 -0
  381. package/dist/packages/runtime/service/server-routes-auth.js +138 -0
  382. package/dist/packages/runtime/service/server-routes-build-plans.d.ts +3 -0
  383. package/dist/packages/runtime/service/server-routes-build-plans.js +86 -0
  384. package/dist/packages/runtime/service/server-routes-discovery.d.ts +4 -0
  385. package/dist/packages/runtime/service/server-routes-discovery.js +196 -0
  386. package/dist/packages/runtime/service/server-routes-events.d.ts +5 -0
  387. package/dist/packages/runtime/service/server-routes-events.js +99 -0
  388. package/dist/packages/runtime/service/server-routes-project-context.d.ts +9 -0
  389. package/dist/packages/runtime/service/server-routes-project-context.js +287 -0
  390. package/dist/packages/runtime/service/server-routes-project-jobs.d.ts +9 -0
  391. package/dist/packages/runtime/service/server-routes-project-jobs.js +137 -0
  392. package/dist/packages/runtime/service/server-routes-project-runs.d.ts +14 -0
  393. package/dist/packages/runtime/service/server-routes-project-runs.js +88 -0
  394. package/dist/packages/runtime/service/server-routes-projects.d.ts +4 -0
  395. package/dist/packages/runtime/service/server-routes-projects.js +96 -0
  396. package/dist/packages/runtime/service/server-routes-runs.d.ts +3 -0
  397. package/dist/packages/runtime/service/server-routes-runs.js +119 -0
  398. package/dist/packages/runtime/service/server.d.ts +37 -0
  399. package/dist/packages/runtime/service/server.js +300 -0
  400. package/dist/packages/{engine → runtime/service}/service-registry.d.ts +5 -5
  401. package/dist/packages/{engine → runtime/service}/service-registry.js +7 -7
  402. package/dist/packages/runtime/verify/benchmark-run.d.ts +81 -0
  403. package/dist/packages/runtime/verify/benchmark-run.js +303 -0
  404. package/dist/packages/{engine → runtime}/verify/index.d.ts +2 -2
  405. package/dist/packages/{engine → runtime}/verify/index.js +1 -1
  406. package/dist/packages/{engine → runtime}/verify/lib/schema.d.ts +83 -16
  407. package/dist/packages/{engine → runtime}/verify/lib/schema.js +38 -18
  408. package/dist/packages/runtime/verify/test-file-guard.d.ts +2 -0
  409. package/dist/packages/runtime/verify/test-file-guard.js +29 -0
  410. package/dist/packages/{engine → runtime}/verify/verify-execution.d.ts +7 -0
  411. package/dist/packages/{engine → runtime}/verify/verify-execution.js +119 -45
  412. package/dist/packages/{engine → runtime}/verify/verify-paths.d.ts +5 -4
  413. package/dist/packages/runtime/verify/verify-paths.js +65 -0
  414. package/dist/packages/{engine → runtime}/verify/verify-sandbox.d.ts +1 -1
  415. package/dist/packages/runtime/verify/verify-sandbox.js +88 -0
  416. package/dist/packages/{engine → runtime}/verify/verify-specs.d.ts +2 -0
  417. package/dist/packages/runtime/verify/verify-specs.js +126 -0
  418. package/dist/packages/runtime/verify/verify-targets.d.ts +5 -0
  419. package/dist/packages/{engine → runtime}/verify/verify-targets.js +12 -12
  420. package/dist/packages/runtime/verify/verify-types.js +1 -0
  421. package/dist/packages/{engine → runtime}/verify/verify.d.ts +1 -1
  422. package/dist/packages/{engine → runtime}/verify/verify.js +1 -1
  423. package/dist/packages/runtime/wire-schemas.d.ts +18 -0
  424. package/dist/packages/runtime/wire-schemas.js +27 -0
  425. package/package.json +32 -30
  426. package/public-repo/CONTRIBUTING.md +16 -18
  427. package/public-repo/README.md +119 -282
  428. package/public-repo/SECURITY.md +3 -4
  429. package/public-repo/build-plans/interf-default/README.md +24 -16
  430. package/public-repo/build-plans/interf-default/build/stages/entrypoint/SKILL.md +74 -0
  431. package/public-repo/build-plans/interf-default/build/stages/knowledge/SKILL.md +95 -0
  432. package/public-repo/build-plans/interf-default/build/stages/summarize/SKILL.md +49 -4
  433. package/public-repo/build-plans/interf-default/build-plan.json +49 -39
  434. package/public-repo/build-plans/interf-default/build-plan.schema.json +59 -33
  435. package/public-repo/build-plans/interf-default/improve/SKILL.md +3 -3
  436. package/public-repo/build-plans/interf-default/use/query/SKILL.md +18 -11
  437. package/public-repo/openapi/local-service.openapi.json +14227 -0
  438. package/public-repo/skills/interf/SKILL.md +508 -187
  439. package/dist/cli/commands/prep.d.ts +0 -2
  440. package/dist/cli/commands/prep.js +0 -240
  441. package/dist/cli/commands/test.d.ts +0 -10
  442. package/dist/cli/commands/test.js +0 -85
  443. package/dist/cli/commands/web.d.ts +0 -2
  444. package/dist/cli/commands/web.js +0 -286
  445. package/dist/interf-ui/404.html +0 -1
  446. package/dist/interf-ui/__next.__PAGE__.txt +0 -10
  447. package/dist/interf-ui/__next._full.txt +0 -20
  448. package/dist/interf-ui/__next._head.txt +0 -5
  449. package/dist/interf-ui/__next._index.txt +0 -5
  450. package/dist/interf-ui/__next._tree.txt +0 -5
  451. package/dist/interf-ui/_next/static/--reS3xBzM5zc6QxNjZd6/_buildManifest.js +0 -11
  452. package/dist/interf-ui/_next/static/--reS3xBzM5zc6QxNjZd6/_clientMiddlewareManifest.js +0 -1
  453. package/dist/interf-ui/_next/static/--reS3xBzM5zc6QxNjZd6/_ssgManifest.js +0 -1
  454. package/dist/interf-ui/_next/static/chunks/0.tjb6f4golw..css +0 -3
  455. package/dist/interf-ui/_next/static/chunks/03~yq9q893hmn.js +0 -1
  456. package/dist/interf-ui/_next/static/chunks/085-n_jv2ng_q.css +0 -1
  457. package/dist/interf-ui/_next/static/chunks/0dn41fa_zvgsl.js +0 -1
  458. package/dist/interf-ui/_next/static/chunks/0g-ea0zj5d-0k.js +0 -1
  459. package/dist/interf-ui/_next/static/chunks/0gwqglc4iz583.js +0 -1
  460. package/dist/interf-ui/_next/static/chunks/0haldgm65ve6l.js +0 -1
  461. package/dist/interf-ui/_next/static/chunks/0nv3am99vjzn4.js +0 -1
  462. package/dist/interf-ui/_next/static/chunks/0s77gt_o4jwtx.js +0 -1
  463. package/dist/interf-ui/_next/static/chunks/0y5z3t-z1c8ks.js.map +0 -5
  464. package/dist/interf-ui/_next/static/chunks/0~a36ujuzpaz..js +0 -116
  465. package/dist/interf-ui/_next/static/chunks/10jeodxe4nkgj.js +0 -31
  466. package/dist/interf-ui/_next/static/chunks/119h2rouych2t.js +0 -1
  467. package/dist/interf-ui/_next/static/chunks/13c8b~m8knjsf.js +0 -1
  468. package/dist/interf-ui/_next/static/chunks/14dznb2qpt-ho.js +0 -91
  469. package/dist/interf-ui/_next/static/chunks/15z_en80lrq-3.js +0 -5
  470. package/dist/interf-ui/_next/static/chunks/turbopack-0p.pvcjrtq-jh.js +0 -1
  471. package/dist/interf-ui/_next/static/chunks/turbopack-0usj_75.8frlw.js +0 -1
  472. package/dist/interf-ui/_next/static/chunks/turbopack-worker-0sjn--fhq~1cg.js +0 -1
  473. package/dist/interf-ui/_next/static/media/GeistMono_Variable.p.17jn9btb_52pq.woff2 +0 -0
  474. package/dist/interf-ui/_next/static/media/Geist_Variable-s.p.0-te~ja_gpvcf.woff2 +0 -0
  475. package/dist/interf-ui/_next/static/media/worker.102zas1s52_pf.js +0 -109
  476. package/dist/interf-ui/_not-found/__next._full.txt +0 -15
  477. package/dist/interf-ui/_not-found/__next._head.txt +0 -5
  478. package/dist/interf-ui/_not-found/__next._index.txt +0 -5
  479. package/dist/interf-ui/_not-found/__next._not-found.__PAGE__.txt +0 -5
  480. package/dist/interf-ui/_not-found/__next._not-found.txt +0 -5
  481. package/dist/interf-ui/_not-found/__next._tree.txt +0 -2
  482. package/dist/interf-ui/_not-found.html +0 -1
  483. package/dist/interf-ui/_not-found.txt +0 -15
  484. package/dist/interf-ui/index.html +0 -1
  485. package/dist/interf-ui/index.txt +0 -20
  486. package/dist/packages/contracts/lib/preparation-paths.d.ts +0 -117
  487. package/dist/packages/contracts/lib/preparation-paths.js +0 -177
  488. package/dist/packages/engine/action-definitions.d.ts +0 -407
  489. package/dist/packages/engine/action-definitions.js +0 -1158
  490. package/dist/packages/engine/action-values.d.ts +0 -1
  491. package/dist/packages/engine/action-values.js +0 -1
  492. package/dist/packages/engine/agents/lib/args.d.ts +0 -4
  493. package/dist/packages/engine/agents/lib/args.js +0 -52
  494. package/dist/packages/engine/agents/lib/chart-guidance.d.ts +0 -1
  495. package/dist/packages/engine/agents/lib/chart-guidance.js +0 -8
  496. package/dist/packages/engine/agents/lib/constants.js +0 -28
  497. package/dist/packages/engine/agents/lib/logs.d.ts +0 -2
  498. package/dist/packages/engine/agents/lib/logs.js +0 -17
  499. package/dist/packages/engine/agents/lib/render.d.ts +0 -8
  500. package/dist/packages/engine/agents/lib/schema.d.ts +0 -8
  501. package/dist/packages/engine/agents/lib/schema.js +0 -7
  502. package/dist/packages/engine/agents/lib/shells.d.ts +0 -74
  503. package/dist/packages/engine/agents/lib/shells.js +0 -1052
  504. package/dist/packages/engine/agents/lib/verifiable-context-bootstrap.d.ts +0 -3
  505. package/dist/packages/engine/build/artifact-counts.d.ts +0 -1
  506. package/dist/packages/engine/build/billing-events.d.ts +0 -89
  507. package/dist/packages/engine/build/build-pipeline.js +0 -175
  508. package/dist/packages/engine/build/build-plan-runs.d.ts +0 -14
  509. package/dist/packages/engine/build/build-plan-runs.js +0 -31
  510. package/dist/packages/engine/build/build-stage-plan.d.ts +0 -16
  511. package/dist/packages/engine/build/build-stage-plan.js +0 -100
  512. package/dist/packages/engine/build/build-stage-runner.js +0 -94
  513. package/dist/packages/engine/build/build-target.js +0 -16
  514. package/dist/packages/engine/build/check-evaluator.js +0 -298
  515. package/dist/packages/engine/build/lib/schema.js +0 -316
  516. package/dist/packages/engine/build/reset.d.ts +0 -2
  517. package/dist/packages/engine/build/reset.js +0 -74
  518. package/dist/packages/engine/build/runtime-inventory.d.ts +0 -7
  519. package/dist/packages/engine/build/runtime-paths.d.ts +0 -8
  520. package/dist/packages/engine/build/runtime-paths.js +0 -26
  521. package/dist/packages/engine/build/runtime-runs.d.ts +0 -10
  522. package/dist/packages/engine/build/runtime-runs.js +0 -224
  523. package/dist/packages/engine/build/runtime.d.ts +0 -5
  524. package/dist/packages/engine/build/runtime.js +0 -4
  525. package/dist/packages/engine/build/source-files.d.ts +0 -46
  526. package/dist/packages/engine/build/source-files.js +0 -149
  527. package/dist/packages/engine/build/state-artifacts.d.ts +0 -9
  528. package/dist/packages/engine/build/state-artifacts.js +0 -14
  529. package/dist/packages/engine/build/state-health.d.ts +0 -4
  530. package/dist/packages/engine/build/state-io.d.ts +0 -11
  531. package/dist/packages/engine/build/state-io.js +0 -82
  532. package/dist/packages/engine/build/state-paths.d.ts +0 -5
  533. package/dist/packages/engine/build/state-paths.js +0 -16
  534. package/dist/packages/engine/build/state-view.d.ts +0 -5
  535. package/dist/packages/engine/build/state-view.js +0 -94
  536. package/dist/packages/engine/build/state.d.ts +0 -7
  537. package/dist/packages/engine/build/state.js +0 -12
  538. package/dist/packages/engine/build/validate-helpers.d.ts +0 -12
  539. package/dist/packages/engine/build/validate-helpers.js +0 -41
  540. package/dist/packages/engine/build/verifiable-context-paths.d.ts +0 -47
  541. package/dist/packages/engine/build/verifiable-context-paths.js +0 -121
  542. package/dist/packages/engine/build/verifiable-context-schema.d.ts +0 -21
  543. package/dist/packages/engine/build/verifiable-context-schema.js +0 -126
  544. package/dist/packages/engine/cloud-seams.d.ts +0 -115
  545. package/dist/packages/engine/cloud-seams.js +0 -84
  546. package/dist/packages/engine/index.d.ts +0 -22
  547. package/dist/packages/engine/index.js +0 -15
  548. package/dist/packages/engine/instance-paths.d.ts +0 -106
  549. package/dist/packages/engine/instance-paths.js +0 -171
  550. package/dist/packages/engine/lib/schema.d.ts +0 -6304
  551. package/dist/packages/engine/lib/schema.js +0 -730
  552. package/dist/packages/engine/native-run-handlers.d.ts +0 -25
  553. package/dist/packages/engine/preparation-store.d.ts +0 -105
  554. package/dist/packages/engine/preparation-store.js +0 -213
  555. package/dist/packages/engine/readiness-check-draft.d.ts +0 -20
  556. package/dist/packages/engine/readiness-check-draft.js +0 -111
  557. package/dist/packages/engine/requested-artifacts.d.ts +0 -5
  558. package/dist/packages/engine/routes.d.ts +0 -85
  559. package/dist/packages/engine/routes.js +0 -99
  560. package/dist/packages/engine/runtime-caches.d.ts +0 -76
  561. package/dist/packages/engine/runtime-caches.js +0 -191
  562. package/dist/packages/engine/runtime-proposal-helpers.d.ts +0 -35
  563. package/dist/packages/engine/runtime-proposal-helpers.js +0 -247
  564. package/dist/packages/engine/runtime.d.ts +0 -371
  565. package/dist/packages/engine/runtime.js +0 -2463
  566. package/dist/packages/engine/server.d.ts +0 -58
  567. package/dist/packages/engine/server.js +0 -1399
  568. package/dist/packages/engine/verify/readiness-check-run.d.ts +0 -82
  569. package/dist/packages/engine/verify/readiness-check-run.js +0 -265
  570. package/dist/packages/engine/verify/verify-paths.js +0 -61
  571. package/dist/packages/engine/verify/verify-sandbox.js +0 -88
  572. package/dist/packages/engine/verify/verify-specs.js +0 -114
  573. package/dist/packages/engine/verify/verify-targets.d.ts +0 -5
  574. package/dist/packages/engine/wire-schemas.d.ts +0 -547
  575. package/dist/packages/engine/wire-schemas.js +0 -59
  576. package/dist/packages/project/index.d.ts +0 -9
  577. package/dist/packages/project/interf-bootstrap.d.ts +0 -1
  578. package/dist/packages/project/interf-bootstrap.js +0 -1
  579. package/dist/packages/project/interf-scaffold.d.ts +0 -3
  580. package/dist/packages/project/interf-scaffold.js +0 -136
  581. package/dist/packages/project/interf.d.ts +0 -4
  582. package/dist/packages/project/interf.js +0 -3
  583. package/dist/packages/project/lib/schema.d.ts +0 -328
  584. package/dist/packages/project/lib/schema.js +0 -136
  585. package/dist/packages/project/preparation-entries.d.ts +0 -11
  586. package/dist/packages/project/preparation-entries.js +0 -49
  587. package/dist/packages/project/source-config.d.ts +0 -46
  588. package/dist/packages/project/source-config.js +0 -394
  589. package/dist/packages/project/source-folders.d.ts +0 -11
  590. package/public-repo/build-plans/interf-default/build/stages/shape/SKILL.md +0 -27
  591. package/public-repo/build-plans/interf-default/build/stages/structure/SKILL.md +0 -21
  592. package/public-repo/plugins/README.md +0 -9
  593. package/public-repo/plugins/interf/.claude-plugin/plugin.json +0 -21
  594. package/public-repo/plugins/interf/.mcp.json +0 -12
  595. package/public-repo/plugins/interf/README.md +0 -32
  596. package/public-repo/plugins/interf/skills/interf/SKILL.md +0 -376
  597. /package/dist/packages/{engine/agents/lib/types.js → runtime/actions/fields.js} +0 -0
  598. /package/dist/packages/{engine → runtime}/agents/lib/agents.d.ts +0 -0
  599. /package/dist/packages/{engine → runtime}/agents/lib/agents.js +0 -0
  600. /package/dist/packages/{engine → runtime}/agents/lib/execution.d.ts +0 -0
  601. /package/dist/packages/{engine → runtime}/agents/lib/preflight.d.ts +0 -0
  602. /package/dist/packages/{engine → runtime}/agents/lib/status.d.ts +0 -0
  603. /package/dist/packages/{engine/build/runtime-types.js → runtime/agents/lib/types.js} +0 -0
  604. /package/dist/packages/{engine/verify/verify-types.js → runtime/agents/providers/types.js} +0 -0
  605. /package/dist/packages/{engine → runtime}/agents/role-router.d.ts +0 -0
  606. /package/dist/packages/{engine → runtime}/build/build-execution.d.ts +0 -0
  607. /package/dist/packages/{engine → runtime}/build/build-execution.js +0 -0
  608. /package/dist/packages/{engine → runtime}/build/runtime-contracts.d.ts +0 -0
  609. /package/dist/packages/{engine → runtime}/build/runtime-prompt.d.ts +0 -0
  610. /package/dist/packages/{engine → runtime}/execution/adapters.d.ts +0 -0
  611. /package/dist/packages/{engine → runtime}/execution/adapters.js +0 -0
  612. /package/dist/packages/{engine → runtime}/execution/events.d.ts +0 -0
  613. /package/dist/packages/{engine → runtime}/execution/events.js +0 -0
  614. /package/dist/packages/{engine → runtime}/verify/verify-profile-presets.d.ts +0 -0
  615. /package/dist/packages/{engine → runtime}/verify/verify-profile-presets.js +0 -0
  616. /package/dist/packages/{engine → runtime}/verify/verify-types.d.ts +0 -0
@@ -0,0 +1,266 @@
1
+ /**
2
+ * Runtime read-side caches.
3
+ *
4
+ * The local service runtime fronts a filesystem-backed model: every
5
+ * "list" or "get" call walks `.interf/runtime/...`, parses each JSON
6
+ * record through Zod, and returns the typed shape. Polling clients
7
+ * (Interf Desktop renderer, CLI status loops) hit those endpoints multiple times
8
+ * per second; on instances with hundreds of Build / benchmark runs this
9
+ * shows up as the dominant CPU cost.
10
+ *
11
+ * The caches here memoize the parsed-and-validated results. Each cache
12
+ * is keyed by Project data directory so independent Projects do
13
+ * not cross-pollinate, and each cache exposes both a read path (`get(...)`) and an explicit
14
+ * invalidation hook (`invalidate(...)`). The runtime calls
15
+ * `invalidate*` whenever it writes, so the next read repopulates from
16
+ * disk. Invalidation is intentionally broad (per-Project, not
17
+ * per-record) — staleness is the only correctness bug worth avoiding,
18
+ * and per-record invalidation introduces fan-out without measurably
19
+ * lowering recompute cost.
20
+ */
21
+ import { existsSync, statSync } from "node:fs";
22
+ import { resolve } from "node:path";
23
+ /**
24
+ * Per-(Project data directory, project) cache for Build records, plus a
25
+ * runId -> project index so `getBuildRun(runId)` can resolve to
26
+ * the owning Project without scanning every Project's runs.
27
+ */
28
+ export class RunListingCache {
29
+ /** projectDataDir -> project id -> records (newest-first sorted). */
30
+ byProjectRoot = new Map();
31
+ /** projectDataDir -> runId -> project. */
32
+ runIndex = new Map();
33
+ get(projectDataDir, project, fill, runIdOf) {
34
+ const wsKey = resolve(projectDataDir);
35
+ let bucket = this.byProjectRoot.get(wsKey);
36
+ if (!bucket) {
37
+ bucket = new Map();
38
+ this.byProjectRoot.set(wsKey, bucket);
39
+ }
40
+ const cached = bucket.get(project);
41
+ if (cached)
42
+ return cached;
43
+ const fresh = fill();
44
+ bucket.set(project, fresh);
45
+ let index = this.runIndex.get(wsKey);
46
+ if (!index) {
47
+ index = new Map();
48
+ this.runIndex.set(wsKey, index);
49
+ }
50
+ for (const record of fresh) {
51
+ index.set(runIdOf(record), project);
52
+ }
53
+ return fresh;
54
+ }
55
+ /** Look up which project owns this runId, if known. */
56
+ projectFor(projectDataDir, runId) {
57
+ const wsKey = resolve(projectDataDir);
58
+ return this.runIndex.get(wsKey)?.get(runId) ?? null;
59
+ }
60
+ /** Invalidate a single project's cached records and id index. */
61
+ invalidateProject(projectDataDir, project) {
62
+ const wsKey = resolve(projectDataDir);
63
+ const bucket = this.byProjectRoot.get(wsKey);
64
+ if (bucket) {
65
+ bucket.delete(project);
66
+ if (bucket.size === 0)
67
+ this.byProjectRoot.delete(wsKey);
68
+ }
69
+ const index = this.runIndex.get(wsKey);
70
+ if (index) {
71
+ for (const [runId, owner] of index) {
72
+ if (owner === project)
73
+ index.delete(runId);
74
+ }
75
+ if (index.size === 0)
76
+ this.runIndex.delete(wsKey);
77
+ }
78
+ }
79
+ /** Drop everything for a Project data directory (e.g. after a reset). */
80
+ invalidateProjectRoot(projectDataDir) {
81
+ const wsKey = resolve(projectDataDir);
82
+ this.byProjectRoot.delete(wsKey);
83
+ this.runIndex.delete(wsKey);
84
+ }
85
+ }
86
+ /**
87
+ * Per-(Project data directory, project) readiness cache. Readiness joins build
88
+ * runs, benchmark runs, and the Project config; it
89
+ * is computed on every poll. The cache invalidates when the runtime
90
+ * writes any of those underlying objects for a given project.
91
+ */
92
+ export class ReadinessCache {
93
+ byProjectRoot = new Map();
94
+ get(projectDataDir, project, compute) {
95
+ const wsKey = resolve(projectDataDir);
96
+ let bucket = this.byProjectRoot.get(wsKey);
97
+ if (!bucket) {
98
+ bucket = new Map();
99
+ this.byProjectRoot.set(wsKey, bucket);
100
+ }
101
+ const cached = bucket.get(project);
102
+ if (cached !== undefined)
103
+ return cached;
104
+ const fresh = compute();
105
+ bucket.set(project, fresh);
106
+ return fresh;
107
+ }
108
+ invalidateProject(projectDataDir, project) {
109
+ const wsKey = resolve(projectDataDir);
110
+ const bucket = this.byProjectRoot.get(wsKey);
111
+ if (bucket) {
112
+ bucket.delete(project);
113
+ if (bucket.size === 0)
114
+ this.byProjectRoot.delete(wsKey);
115
+ }
116
+ }
117
+ invalidateProjectRoot(projectDataDir) {
118
+ this.byProjectRoot.delete(resolve(projectDataDir));
119
+ }
120
+ }
121
+ /**
122
+ * Source-folder listing cache keyed by `(cacheKey, folderRootMtime)`.
123
+ * `cacheKey` is the slot identifier; `folderPath` is the directory the
124
+ * cache stats for an mtime probe. UI polling is the hot path; CLI
125
+ * commands rarely hit the same path twice in <2s, hence the short TTL
126
+ * fallback.
127
+ */
128
+ export class MtimeListingCache {
129
+ static TTL_MS = 2000;
130
+ cache = new Map();
131
+ get(cacheKey, folderPath, fill) {
132
+ const now = Date.now();
133
+ const stat = safeStat(folderPath);
134
+ const currentMtime = stat?.mtimeMs ?? 0;
135
+ const entry = this.cache.get(cacheKey);
136
+ if (entry
137
+ && entry.mtimeMs === currentMtime
138
+ && entry.expiresAt > now) {
139
+ return entry.value;
140
+ }
141
+ const value = fill();
142
+ this.cache.set(cacheKey, {
143
+ mtimeMs: currentMtime,
144
+ expiresAt: now + MtimeListingCache.TTL_MS,
145
+ value,
146
+ });
147
+ return value;
148
+ }
149
+ invalidate(cacheKey) {
150
+ this.cache.delete(cacheKey);
151
+ }
152
+ invalidateAll() {
153
+ this.cache.clear();
154
+ }
155
+ }
156
+ /**
157
+ * Build Plan listing cache keyed by the joined mtimes of the
158
+ * bundled / user-library / Project-local Build Plan package roots. If
159
+ * any of those ticks (a new local Build Plan package, an edit to the user library, etc.) the cache
160
+ * misses and we re-resolve.
161
+ */
162
+ export class BuildPlanListingCache {
163
+ cache = new Map();
164
+ get(cacheKey, rootPaths, fill) {
165
+ const fingerprint = rootPaths
166
+ .map((path) => `${path}:${safeStat(path)?.mtimeMs ?? 0}`)
167
+ .join("|");
168
+ const entry = this.cache.get(cacheKey);
169
+ if (entry && entry.key === fingerprint)
170
+ return entry.value;
171
+ const value = fill();
172
+ this.cache.set(cacheKey, { key: fingerprint, value });
173
+ return value;
174
+ }
175
+ invalidate(cacheKey) {
176
+ this.cache.delete(cacheKey);
177
+ }
178
+ invalidateAll() {
179
+ this.cache.clear();
180
+ }
181
+ }
182
+ function safeStat(path) {
183
+ try {
184
+ if (!existsSync(path))
185
+ return null;
186
+ return statSync(path);
187
+ }
188
+ catch {
189
+ return null;
190
+ }
191
+ }
192
+ /**
193
+ * Per-Project source-state cache.
194
+ *
195
+ * Computing the file index hash requires reading every source file's first
196
+ * 64KB; on Projects with thousands of files this is the dominant cost of a
197
+ * drift check. The cache keys by Project id and invalidates on Build
198
+ * completion (which produces a new Context Graph the drift verdict compares to).
199
+ */
200
+ export class ProjectSourceStateCache {
201
+ byProjectId = new Map();
202
+ get(projectId, compute) {
203
+ const cached = this.byProjectId.get(projectId);
204
+ if (cached !== undefined)
205
+ return cached;
206
+ const fresh = compute();
207
+ this.byProjectId.set(projectId, fresh);
208
+ return fresh;
209
+ }
210
+ set(projectId, value) {
211
+ this.byProjectId.set(projectId, value);
212
+ }
213
+ invalidateProject(projectId) {
214
+ this.byProjectId.delete(projectId);
215
+ }
216
+ invalidateAll() {
217
+ this.byProjectId.clear();
218
+ }
219
+ }
220
+ /**
221
+ * Per-Build-run Context Graph resource cache.
222
+ *
223
+ * A succeeded Build's Context Graph is immutable: its on-disk folder
224
+ * (`graph-manifest.json`, source manifest, stage sessions, semantic graph) is
225
+ * frozen once the run reaches `succeeded`. Rebuilding the full
226
+ * `ContextGraphResource` — readiness join, semantic graph, build evidence,
227
+ * validation — on every read is the dominant cost of opening a built Project.
228
+ *
229
+ * The cache keys by `(projectDataDir, runId, manifestMtimeMs)`:
230
+ * - `runId` scopes a single Build's output.
231
+ * - `manifestMtimeMs` is the mtime of the Build's
232
+ * `.interf/runtime/graph-manifest.json`. It busts the entry if the graph is
233
+ * rebuilt or edited in place; a fresh Build produces a fresh `runId`, so
234
+ * those never collide either.
235
+ *
236
+ * Entries without a readable manifest mtime (mtime 0) are not cached — that
237
+ * only happens for an in-flight or malformed Build, where the resource is
238
+ * still changing and must be recomputed.
239
+ */
240
+ export class ContextGraphResourceCache {
241
+ byKey = new Map();
242
+ get(projectDataDir, runId, manifestPath, compute) {
243
+ const mtimeMs = safeStat(manifestPath)?.mtimeMs ?? 0;
244
+ // mtime 0 means the manifest is missing/unreadable — the graph is not yet
245
+ // a frozen, succeeded output, so recompute every time without caching.
246
+ if (mtimeMs === 0)
247
+ return compute();
248
+ const cacheKey = `${resolve(projectDataDir)}${runId}`;
249
+ const entry = this.byKey.get(cacheKey);
250
+ if (entry && entry.mtimeMs === mtimeMs)
251
+ return entry.value;
252
+ const value = compute();
253
+ this.byKey.set(cacheKey, { mtimeMs, value });
254
+ return value;
255
+ }
256
+ invalidateProject(projectDataDir) {
257
+ const prefix = `${resolve(projectDataDir)}`;
258
+ for (const key of this.byKey.keys()) {
259
+ if (key.startsWith(prefix))
260
+ this.byKey.delete(key);
261
+ }
262
+ }
263
+ invalidateAll() {
264
+ this.byKey.clear();
265
+ }
266
+ }
@@ -7,6 +7,8 @@
7
7
  * compose these without learning the resource shape.
8
8
  */
9
9
  import { type BuildRun, type InterfRunEvent } from "./execution/lib/schema.js";
10
- import { type LocalJobEvent, type LocalJobRunResource } from "./lib/schema.js";
10
+ import { type LocalJobEvent, type LocalJobRunResource } from "./schemas/index.js";
11
+ export declare const INTERRUPTED_BUILD_RUN_REASON = "Build interrupted because the local service stopped before the run reached a terminal state.";
12
+ export declare function reconcileBuildRunTerminalStatus(run: BuildRun): BuildRun;
11
13
  export declare function applyEventToBuildRun(run: BuildRun, event: InterfRunEvent): BuildRun;
12
14
  export declare function applyEventToLocalJob(run: LocalJobRunResource, event: LocalJobEvent): LocalJobRunResource;
@@ -1,4 +1,47 @@
1
1
  import { uniqueArtifacts } from "./run-observability.js";
2
+ export const INTERRUPTED_BUILD_RUN_REASON = "Build interrupted because the local service stopped before the run reached a terminal state.";
3
+ function isRecoverableCancellation(event) {
4
+ return event.type === "run.cancelled" && event.reason === INTERRUPTED_BUILD_RUN_REASON;
5
+ }
6
+ export function reconcileBuildRunTerminalStatus(run) {
7
+ let status = run.status;
8
+ let finishedAt = run.finished_at;
9
+ let stickyCancellationAt = null;
10
+ for (const event of run.events) {
11
+ if (event.type === "run.cancelled") {
12
+ status = "cancelled";
13
+ finishedAt = event.timestamp;
14
+ stickyCancellationAt = isRecoverableCancellation(event) ? null : event.timestamp;
15
+ continue;
16
+ }
17
+ if (event.type === "run.completed") {
18
+ if (stickyCancellationAt) {
19
+ status = "cancelled";
20
+ finishedAt = stickyCancellationAt;
21
+ }
22
+ else {
23
+ status = "succeeded";
24
+ finishedAt = event.timestamp;
25
+ }
26
+ continue;
27
+ }
28
+ if (event.type === "run.failed") {
29
+ if (stickyCancellationAt) {
30
+ status = "cancelled";
31
+ finishedAt = stickyCancellationAt;
32
+ }
33
+ else {
34
+ status = "failed";
35
+ finishedAt = event.timestamp;
36
+ }
37
+ }
38
+ }
39
+ return {
40
+ ...run,
41
+ status,
42
+ ...(finishedAt ? { finished_at: finishedAt } : {}),
43
+ };
44
+ }
2
45
  export function applyEventToBuildRun(run, event) {
3
46
  const now = event.timestamp;
4
47
  const stageFor = (stageId) => {
@@ -32,6 +75,7 @@ export function applyEventToBuildRun(run, event) {
32
75
  started_at: now,
33
76
  stage_index: event.stage_index,
34
77
  stage_total: event.stage_total,
78
+ ...(event.logs ? { logs: event.logs } : {}),
35
79
  });
36
80
  break;
37
81
  case "artifact.written": {
@@ -41,15 +85,15 @@ export function applyEventToBuildRun(run, event) {
41
85
  });
42
86
  break;
43
87
  }
44
- case "proof.updated":
88
+ case "evidence.updated":
45
89
  if (event.stage_id) {
46
90
  updateStage(event.stage_id, {
47
- latest_proof: event.proof,
91
+ latest_evidence: event.evidence,
48
92
  });
49
93
  }
50
94
  return {
51
95
  ...run,
52
- latest_proof: event.proof,
96
+ latest_evidence: event.evidence,
53
97
  events: [...run.events, event],
54
98
  };
55
99
  case "log.appended":
@@ -71,28 +115,20 @@ export function applyEventToBuildRun(run, event) {
71
115
  });
72
116
  break;
73
117
  case "run.completed":
74
- return {
118
+ return reconcileBuildRunTerminalStatus({
75
119
  ...run,
76
- // Once cancelled, the cancelled status is sticky; the handler may
77
- // still emit a completion event after the cancel signal has landed.
78
- status: run.status === "cancelled" ? "cancelled" : "succeeded",
79
- finished_at: run.finished_at ?? now,
80
120
  events: [...run.events, event],
81
- };
121
+ });
82
122
  case "run.failed":
83
- return {
123
+ return reconcileBuildRunTerminalStatus({
84
124
  ...run,
85
- status: run.status === "cancelled" ? "cancelled" : "failed",
86
- finished_at: run.finished_at ?? now,
87
125
  events: [...run.events, event],
88
- };
126
+ });
89
127
  case "run.cancelled":
90
- return {
128
+ return reconcileBuildRunTerminalStatus({
91
129
  ...run,
92
- status: "cancelled",
93
- finished_at: run.finished_at ?? now,
94
130
  events: [...run.events, event],
95
- };
131
+ });
96
132
  case "readiness.updated":
97
133
  return {
98
134
  ...run,
@@ -0,0 +1,22 @@
1
+ import { type LocalExecutorStatus } from "./schemas/index.js";
2
+ import type { AgentPrefs, AgentRecord, RoleMap } from "../contracts/lib/schema.js";
3
+ export interface AgentsRegistryState {
4
+ agents: AgentRecord[];
5
+ role_map: RoleMap;
6
+ active_agent: AgentRecord | null;
7
+ }
8
+ export interface AgentsRegistryRoleState {
9
+ role_map: RoleMap;
10
+ active_agent: AgentRecord | null;
11
+ }
12
+ export declare function getExecutorStatus(): LocalExecutorStatus;
13
+ export declare function selectExecutor(requestValue: unknown): LocalExecutorStatus;
14
+ export declare function getAgentsRegistry(): AgentsRegistryState;
15
+ export declare function registerCustomAgent(input: {
16
+ name: string;
17
+ display_name: string;
18
+ command: string;
19
+ }): AgentsRegistryState;
20
+ export declare function unregisterCustomAgent(name: string): AgentsRegistryState;
21
+ export declare function patchAgentsRoleMap(patch: Record<string, string>): AgentsRegistryRoleState;
22
+ export declare function setAgentPrefs(name: string, prefs: AgentPrefs): AgentsRegistryState;
@@ -0,0 +1,131 @@
1
+ import { detectAgents, resolveAgent, supportsAutomatedRuns, } from "./agents/lib/detection.js";
2
+ import { loadUserConfig, saveUserConfig, } from "./agents/lib/user-config.js";
3
+ import { AGENTS } from "./agents/lib/constants.js";
4
+ import { loadAgentsRegistry, patchRoleMap, registerCustomAgent as registerCustomAgentRecord, setActiveAgent, setAgentPrefs as setAgentPrefsRecord, unregisterCustomAgent as unregisterCustomAgentRecord, } from "./agents/registry.js";
5
+ import { LocalExecutorSelectRequestSchema, LocalExecutorStatusSchema, } from "./schemas/index.js";
6
+ function configuredAgentName() {
7
+ const config = loadUserConfig();
8
+ if (!config)
9
+ return null;
10
+ const configured = AGENTS.find((agent) => agent.command === config.agentCommand) ??
11
+ AGENTS.find((agent) => agent.name === config.agent) ??
12
+ AGENTS.find((agent) => agent.displayName === config.agent);
13
+ return configured?.name ?? null;
14
+ }
15
+ function detectedExecutorOptions(currentAgentName) {
16
+ return detectAgents()
17
+ .filter(supportsAutomatedRuns)
18
+ .map((agent) => ({
19
+ name: agent.name,
20
+ display_name: agent.displayName,
21
+ command: agent.command,
22
+ current: agent.name === currentAgentName,
23
+ }));
24
+ }
25
+ export function getExecutorStatus() {
26
+ const checkedAt = new Date().toISOString();
27
+ try {
28
+ const resolved = resolveAgent();
29
+ const currentName = resolved.agent?.name ?? configuredAgentName();
30
+ const availableExecutors = detectedExecutorOptions(currentName);
31
+ if (!resolved.agent) {
32
+ return LocalExecutorStatusSchema.parse({
33
+ kind: "interf-local-executor-status",
34
+ version: 1,
35
+ status: "unavailable",
36
+ checked_at: checkedAt,
37
+ executor: null,
38
+ available_executors: availableExecutors,
39
+ message: resolved.error ?? "No supported local coding agent is configured.",
40
+ });
41
+ }
42
+ return LocalExecutorStatusSchema.parse({
43
+ kind: "interf-local-executor-status",
44
+ version: 1,
45
+ status: "connected",
46
+ checked_at: checkedAt,
47
+ executor: {
48
+ name: resolved.agent.name,
49
+ display_name: resolved.agent.displayName,
50
+ command: resolved.agent.command,
51
+ },
52
+ available_executors: availableExecutors.length > 0
53
+ ? availableExecutors
54
+ : [{
55
+ name: resolved.agent.name,
56
+ display_name: resolved.agent.displayName,
57
+ command: resolved.agent.command,
58
+ current: true,
59
+ }],
60
+ message: `${resolved.agent.displayName} is configured for local Interf actions.`,
61
+ });
62
+ }
63
+ catch (error) {
64
+ const currentName = configuredAgentName();
65
+ return LocalExecutorStatusSchema.parse({
66
+ kind: "interf-local-executor-status",
67
+ version: 1,
68
+ status: "unavailable",
69
+ checked_at: checkedAt,
70
+ executor: null,
71
+ available_executors: detectedExecutorOptions(currentName),
72
+ message: error instanceof Error ? error.message : String(error),
73
+ });
74
+ }
75
+ }
76
+ export function selectExecutor(requestValue) {
77
+ const request = LocalExecutorSelectRequestSchema.parse(requestValue);
78
+ const selected = detectAgents()
79
+ .filter(supportsAutomatedRuns)
80
+ .find((agent) => agent.name === request.agent);
81
+ if (!selected) {
82
+ throw new Error(`Local agent "${request.agent}" is not detected or cannot run Interf runs.`);
83
+ }
84
+ const current = loadUserConfig();
85
+ saveUserConfig({
86
+ agent: selected.name,
87
+ agentCommand: selected.command,
88
+ skillsInstalled: current?.skillsInstalled ?? false,
89
+ initialized: current?.initialized ?? new Date().toISOString(),
90
+ });
91
+ // Mirror the selection into the role-map. `setActiveAgent` also sweeps
92
+ // any role still pointing at the previous active so single-active-agent
93
+ // setups stay coherent across CLIs.
94
+ try {
95
+ setActiveAgent(selected.name);
96
+ }
97
+ catch {
98
+ // Best effort — the registry update is convenience for the new
99
+ // role-aware path. The user_config.json write above is the source of
100
+ // truth for the previous `getExecutorStatus()`.
101
+ }
102
+ return getExecutorStatus();
103
+ }
104
+ export function getAgentsRegistry() {
105
+ const registry = loadAgentsRegistry();
106
+ return {
107
+ agents: registry.agents,
108
+ role_map: registry.roleMap,
109
+ active_agent: registry.activeAgent,
110
+ };
111
+ }
112
+ export function registerCustomAgent(input) {
113
+ registerCustomAgentRecord(input);
114
+ return getAgentsRegistry();
115
+ }
116
+ export function unregisterCustomAgent(name) {
117
+ unregisterCustomAgentRecord(name);
118
+ return getAgentsRegistry();
119
+ }
120
+ export function patchAgentsRoleMap(patch) {
121
+ patchRoleMap(patch);
122
+ const registry = loadAgentsRegistry();
123
+ return {
124
+ role_map: registry.roleMap,
125
+ active_agent: registry.activeAgent,
126
+ };
127
+ }
128
+ export function setAgentPrefs(name, prefs) {
129
+ setAgentPrefsRecord(name, prefs);
130
+ return getAgentsRegistry();
131
+ }
@@ -0,0 +1,13 @@
1
+ import { type LocalJobEvent, type LocalJobRunResource } from "./schemas/index.js";
2
+ import type { LocalServiceJobRunContext, LocalServiceRuntime } from "./runtime.js";
3
+ export declare function listJobs(projectDataDir: string): LocalJobRunResource[];
4
+ export declare function getJob(projectDataDir: string, runId: string): LocalJobRunResource | null;
5
+ export declare function getJobEvents(projectDataDir: string, runId: string): LocalJobEvent[] | null;
6
+ export declare function createJobRun(runtime: LocalServiceRuntime, projectDataDir: string, requestValue: unknown): LocalJobRunResource;
7
+ export declare function appendJobRunEvent(runtime: LocalServiceRuntime, projectDataDir: string, runId: string, requestValue: unknown): LocalJobRunResource | null;
8
+ export declare function createBenchmarkQuestionDraftRun(runtime: LocalServiceRuntime, projectDataDir: string, requestValue: unknown): Promise<LocalJobRunResource>;
9
+ export declare function createBuildPlanAuthoringRun(runtime: LocalServiceRuntime, projectDataDir: string, requestValue: unknown, jobType?: "build-plan-draft" | "build-plan-improvement"): Promise<LocalJobRunResource>;
10
+ export declare function jobRunContext(runtime: LocalServiceRuntime, projectDataDir: string, runId: string): LocalServiceJobRunContext;
11
+ export declare function writeJobRun(runtime: LocalServiceRuntime, projectDataDir: string, run: LocalJobRunResource): void;
12
+ export declare function setJobRunResult(runtime: LocalServiceRuntime, projectDataDir: string, runId: string, result: unknown): void;
13
+ export declare function finalizeInterruptedJobRuns(runtime: LocalServiceRuntime, projectDataDir: string): void;