@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,161 @@
1
+ import { z } from "zod";
2
+ export declare const ActionValueIdPattern: RegExp;
3
+ export declare const ActionValueIdSchema: z.ZodString;
4
+ export declare const OptionalActionValueIdSchema: z.ZodString;
5
+ export declare const BenchmarkCheckActionValueSchema: z.ZodObject<{
6
+ question: z.ZodString;
7
+ answer: z.ZodOptional<z.ZodString>;
8
+ }, z.core.$strict>;
9
+ export declare const RequestedArtifactActionValueSchema: z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
10
+ id: z.ZodOptional<z.ZodString>;
11
+ title: z.ZodString;
12
+ purpose: z.ZodOptional<z.ZodString>;
13
+ description: z.ZodOptional<z.ZodString>;
14
+ checks: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
15
+ label: z.ZodString;
16
+ }, z.core.$strict>]>>>;
17
+ output: z.ZodOptional<z.ZodObject<{
18
+ path: z.ZodOptional<z.ZodString>;
19
+ shape: z.ZodOptional<z.ZodObject<{
20
+ kind: z.ZodLiteral<"path">;
21
+ path: z.ZodString;
22
+ artifact_kind: z.ZodEnum<{
23
+ file: "file";
24
+ directory: "directory";
25
+ }>;
26
+ }, z.core.$strict>>;
27
+ checks: z.ZodDefault<z.ZodArray<z.ZodObject<{
28
+ id: z.ZodString;
29
+ kind: z.ZodEnum<{
30
+ file_exists: "file_exists";
31
+ source_manifest_valid: "source_manifest_valid";
32
+ min_file_count: "min_file_count";
33
+ min_file_count_matches_source: "min_file_count_matches_source";
34
+ source_summary_folders: "source_summary_folders";
35
+ source_page_coverage: "source_page_coverage";
36
+ frontmatter_valid: "frontmatter_valid";
37
+ frontmatter_required_keys: "frontmatter_required_keys";
38
+ frontmatter_nonempty_keys: "frontmatter_nonempty_keys";
39
+ source_refs_required: "source_refs_required";
40
+ summary_backlinks_present: "summary_backlinks_present";
41
+ knowledge_web_connectivity: "knowledge_web_connectivity";
42
+ graph_notes_connected: "graph_notes_connected";
43
+ wikilinks_valid: "wikilinks_valid";
44
+ must_not_contain: "must_not_contain";
45
+ must_contain: "must_contain";
46
+ qa_match: "qa_match";
47
+ }>;
48
+ description: z.ZodOptional<z.ZodString>;
49
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
50
+ required: z.ZodDefault<z.ZodBoolean>;
51
+ }, z.core.$strict>>>;
52
+ stage_hint: z.ZodOptional<z.ZodString>;
53
+ }, z.core.$strict>>;
54
+ }, z.core.$strict>>;
55
+ export declare const SourceContextActionValueSchema: z.ZodObject<{
56
+ summary: z.ZodOptional<z.ZodString>;
57
+ items: z.ZodDefault<z.ZodArray<z.ZodObject<{
58
+ name: z.ZodOptional<z.ZodString>;
59
+ path: z.ZodOptional<z.ZodString>;
60
+ kind: z.ZodOptional<z.ZodString>;
61
+ page_count: z.ZodOptional<z.ZodNumber>;
62
+ note: z.ZodOptional<z.ZodString>;
63
+ }, z.core.$strict>>>;
64
+ observations: z.ZodDefault<z.ZodArray<z.ZodString>>;
65
+ limitations: z.ZodDefault<z.ZodArray<z.ZodString>>;
66
+ }, z.core.$strict>;
67
+ export declare const ProjectSetupActionValuesSchema: z.ZodObject<{
68
+ name: z.ZodString;
69
+ path: z.ZodString;
70
+ intent: z.ZodString;
71
+ build_plan: z.ZodOptional<z.ZodString>;
72
+ build_after_setup: z.ZodOptional<z.ZodBoolean>;
73
+ setup_mode: z.ZodOptional<z.ZodEnum<{
74
+ create: "create";
75
+ "select-build-plan": "select-build-plan";
76
+ }>>;
77
+ }, z.core.$strict>;
78
+ export declare const BuildPlanAuthoringActionValuesSchema: z.ZodObject<{
79
+ build_plan_id: z.ZodOptional<z.ZodString>;
80
+ base_build_plan_id: z.ZodOptional<z.ZodString>;
81
+ reference_build_plan_id: z.ZodOptional<z.ZodString>;
82
+ label: z.ZodOptional<z.ZodString>;
83
+ hint: z.ZodOptional<z.ZodString>;
84
+ intent: z.ZodString;
85
+ requested_artifacts_description: z.ZodOptional<z.ZodString>;
86
+ requested_artifacts: z.ZodOptional<z.ZodArray<z.ZodPipe<z.ZodTransform<unknown, unknown>, z.ZodObject<{
87
+ id: z.ZodOptional<z.ZodString>;
88
+ title: z.ZodString;
89
+ purpose: z.ZodOptional<z.ZodString>;
90
+ description: z.ZodOptional<z.ZodString>;
91
+ checks: z.ZodDefault<z.ZodArray<z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
92
+ label: z.ZodString;
93
+ }, z.core.$strict>]>>>;
94
+ output: z.ZodOptional<z.ZodObject<{
95
+ path: z.ZodOptional<z.ZodString>;
96
+ shape: z.ZodOptional<z.ZodObject<{
97
+ kind: z.ZodLiteral<"path">;
98
+ path: z.ZodString;
99
+ artifact_kind: z.ZodEnum<{
100
+ file: "file";
101
+ directory: "directory";
102
+ }>;
103
+ }, z.core.$strict>>;
104
+ checks: z.ZodDefault<z.ZodArray<z.ZodObject<{
105
+ id: z.ZodString;
106
+ kind: z.ZodEnum<{
107
+ file_exists: "file_exists";
108
+ source_manifest_valid: "source_manifest_valid";
109
+ min_file_count: "min_file_count";
110
+ min_file_count_matches_source: "min_file_count_matches_source";
111
+ source_summary_folders: "source_summary_folders";
112
+ source_page_coverage: "source_page_coverage";
113
+ frontmatter_valid: "frontmatter_valid";
114
+ frontmatter_required_keys: "frontmatter_required_keys";
115
+ frontmatter_nonempty_keys: "frontmatter_nonempty_keys";
116
+ source_refs_required: "source_refs_required";
117
+ summary_backlinks_present: "summary_backlinks_present";
118
+ knowledge_web_connectivity: "knowledge_web_connectivity";
119
+ graph_notes_connected: "graph_notes_connected";
120
+ wikilinks_valid: "wikilinks_valid";
121
+ must_not_contain: "must_not_contain";
122
+ must_contain: "must_contain";
123
+ qa_match: "qa_match";
124
+ }>;
125
+ description: z.ZodOptional<z.ZodString>;
126
+ params: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
127
+ required: z.ZodDefault<z.ZodBoolean>;
128
+ }, z.core.$strict>>>;
129
+ stage_hint: z.ZodOptional<z.ZodString>;
130
+ }, z.core.$strict>>;
131
+ }, z.core.$strict>>>>;
132
+ checks: z.ZodOptional<z.ZodArray<z.ZodObject<{
133
+ id: z.ZodOptional<z.ZodString>;
134
+ label: z.ZodString;
135
+ description: z.ZodOptional<z.ZodString>;
136
+ evidence: z.ZodOptional<z.ZodString>;
137
+ evidence_expectation: z.ZodOptional<z.ZodString>;
138
+ backed_by_artifact_ids: z.ZodDefault<z.ZodArray<z.ZodString>>;
139
+ required: z.ZodDefault<z.ZodBoolean>;
140
+ }, z.core.$strict>>>;
141
+ user_prep_instructions: z.ZodOptional<z.ZodString>;
142
+ source_context: z.ZodOptional<z.ZodNullable<z.ZodObject<{
143
+ summary: z.ZodOptional<z.ZodString>;
144
+ items: z.ZodDefault<z.ZodArray<z.ZodObject<{
145
+ name: z.ZodOptional<z.ZodString>;
146
+ path: z.ZodOptional<z.ZodString>;
147
+ kind: z.ZodOptional<z.ZodString>;
148
+ page_count: z.ZodOptional<z.ZodNumber>;
149
+ note: z.ZodOptional<z.ZodString>;
150
+ }, z.core.$strict>>>;
151
+ observations: z.ZodDefault<z.ZodArray<z.ZodString>>;
152
+ limitations: z.ZodDefault<z.ZodArray<z.ZodString>>;
153
+ }, z.core.$strict>>>;
154
+ }, z.core.$strict>;
155
+ export type ProjectSetupActionValues = z.infer<typeof ProjectSetupActionValuesSchema>;
156
+ export type BuildPlanAuthoringActionValues = z.infer<typeof BuildPlanAuthoringActionValuesSchema>;
157
+ export type BenchmarkCheckActionValue = z.infer<typeof BenchmarkCheckActionValueSchema>;
158
+ export declare const requiredActionText: (field: string) => z.ZodString;
159
+ export declare const optionalActionText: z.ZodString;
160
+ export declare const actionIdField: (field: string) => z.ZodString;
161
+ export declare const optionalActionIdField: (field: string) => z.ZodString;
@@ -0,0 +1,37 @@
1
+ import { z } from "zod";
2
+ import { BuildPlanContextCheckDraftSchema, RequestedArtifactSchema, SourceContextSchema, } from "../../build-plans/authoring/brief.js";
3
+ export const ActionValueIdPattern = /^[a-z0-9][a-z0-9-]{0,79}$/;
4
+ export const ActionValueIdSchema = z.string().trim().regex(ActionValueIdPattern, "Use lowercase letters, numbers, and dashes.");
5
+ export const OptionalActionValueIdSchema = z.string().trim().refine((value) => value === "" || ActionValueIdPattern.test(value), "Use lowercase letters, numbers, and dashes.");
6
+ export const BenchmarkCheckActionValueSchema = z.object({
7
+ question: z.string().trim().min(1),
8
+ answer: z.string().trim().optional(),
9
+ }).strict();
10
+ export const RequestedArtifactActionValueSchema = RequestedArtifactSchema;
11
+ export const SourceContextActionValueSchema = SourceContextSchema;
12
+ export const ProjectSetupActionValuesSchema = z.object({
13
+ name: ActionValueIdSchema,
14
+ path: z.string().trim().min(1, "Source is required."),
15
+ intent: z.string().trim().min(1, "Agent task is required."),
16
+ build_plan: OptionalActionValueIdSchema.optional(),
17
+ build_after_setup: z.boolean().optional(),
18
+ setup_mode: z.enum(["create", "select-build-plan"]).optional(),
19
+ }).strict();
20
+ export const BuildPlanAuthoringActionValuesSchema = z.object({
21
+ build_plan_id: ActionValueIdSchema.optional(),
22
+ base_build_plan_id: ActionValueIdSchema.optional(),
23
+ reference_build_plan_id: ActionValueIdSchema.optional(),
24
+ label: z.string().trim().optional(),
25
+ hint: z.string().trim().optional(),
26
+ intent: z.string().trim().min(1, "Intent is required."),
27
+ requested_artifacts_description: z.string().trim().optional(),
28
+ requested_artifacts: z.array(RequestedArtifactActionValueSchema).optional(),
29
+ checks: z.array(BuildPlanContextCheckDraftSchema).optional(),
30
+ user_prep_instructions: z.string().trim().optional(),
31
+ source_context: SourceContextActionValueSchema.nullable().optional(),
32
+ }).strict();
33
+ // ── Internal zod helpers used to compose form input validation schemas ──
34
+ export const requiredActionText = (field) => z.string().trim().min(1, `${field} is required.`);
35
+ export const optionalActionText = z.string().trim();
36
+ export const actionIdField = (field) => requiredActionText(field).regex(ActionValueIdPattern, `${field} must use lowercase letters, numbers, and dashes.`);
37
+ export const optionalActionIdField = (field) => optionalActionText.refine((value) => value === "" || ActionValueIdPattern.test(value), `${field} must use lowercase letters, numbers, and dashes.`);
@@ -0,0 +1,11 @@
1
+ import type { InterfMcpHandoff, InterfMcpServer } from "./schemas/index.js";
2
+ export interface InterfMcpHandoffInput {
3
+ serviceUrl: string;
4
+ authToken: string | null;
5
+ skillPath: string;
6
+ mcpCommand?: string;
7
+ mcpArgs?: string[];
8
+ }
9
+ export declare function buildInterfMcpServers(input: InterfMcpHandoffInput): InterfMcpServer[];
10
+ export declare function buildInterfMcpInstructions(input: InterfMcpHandoffInput): string;
11
+ export declare function buildInterfMcpHandoff(input: InterfMcpHandoffInput): InterfMcpHandoff;
@@ -0,0 +1,102 @@
1
+ export function buildInterfMcpServers(input) {
2
+ const httpConfig = {
3
+ url: input.serviceUrl,
4
+ auth_token: input.authToken,
5
+ };
6
+ const mcpServers = [];
7
+ if (input.mcpCommand) {
8
+ mcpServers.push({
9
+ kind: "mcp-stdio",
10
+ label: "Interf MCP",
11
+ command: input.mcpCommand,
12
+ args: input.mcpArgs ?? [],
13
+ instructions: "Use this with Claude Desktop, Cursor, or another local MCP host while the local Interf service is running.",
14
+ });
15
+ }
16
+ mcpServers.push({
17
+ kind: "skill",
18
+ label: "Interf Skill",
19
+ path: input.skillPath,
20
+ instructions: "Fallback only when the agent host cannot use local MCP.",
21
+ }, {
22
+ kind: "http",
23
+ label: "Developer HTTP fallback",
24
+ config: httpConfig,
25
+ instructions: "Developer fallback for local tools that can call the app-owned service with a bearer token.",
26
+ });
27
+ return mcpServers;
28
+ }
29
+ export function buildInterfMcpInstructions(input) {
30
+ const connection = {
31
+ url: input.serviceUrl,
32
+ auth_token: input.authToken,
33
+ };
34
+ const mcpConfig = input.mcpCommand
35
+ ? {
36
+ mcpServers: {
37
+ interf: {
38
+ command: input.mcpCommand,
39
+ args: input.mcpArgs ?? [],
40
+ },
41
+ },
42
+ }
43
+ : null;
44
+ return [
45
+ "Use Interf when this user's agent needs to prepare local files before answering. Source files stay local and read-only.",
46
+ "Interf is not a search engine and not a general RAG index. MCP is for creating or inspecting task-specific Context Graphs for the user's current Source.",
47
+ "Interf MCP lets a host such as Claude Desktop or Cursor talk to Interf. Agents listed inside Interf are executors that run Build Plan stages. Do not mix these concepts.",
48
+ "",
49
+ "MCP setup:",
50
+ "Interf MCP. Keep the local Interf service running; the MCP process talks to that authorized service and must not start a separate Interf runtime.",
51
+ ...(mcpConfig
52
+ ? [
53
+ "",
54
+ "Claude Desktop / local MCP config:",
55
+ "```json",
56
+ JSON.stringify(mcpConfig, null, 2),
57
+ "```",
58
+ ]
59
+ : []),
60
+ "",
61
+ "Fallbacks:",
62
+ `- Skill fallback, only when local MCP is unavailable: ${input.skillPath}`,
63
+ "- Developer HTTP fallback, only for local tools that can call the app-owned service:",
64
+ "```json",
65
+ JSON.stringify(connection, null, 2),
66
+ "```",
67
+ "",
68
+ "Rules:",
69
+ "- Default flow: identify the current Source, create a fresh Project for this session unless the user explicitly names an existing Project id, prepare a Build Plan from the Project intent and requested outputs, stop for Build Plan approval, build only after that approval, then read home.md, GraphManifest primary metrics, knowledge/summaries, and source-backed traces.",
70
+ "- Source scope default: when Interf, MCP, or the user context provides a Source locator or file set, use the whole Source. Do not ask the user to choose individual files or a subset unless they explicitly ask to narrow scope.",
71
+ "- Do not browse existing Projects as a corpus. Reuse an existing Context Graph only when it clearly matches the same Source and task.",
72
+ "- If no Project matches the current Source, create a new Project for this session.",
73
+ "- If no usable Source locator is available, ask for one Source locator instead of answering from unrelated Projects. In the local path this may be a folder path. Do not present a file-selection menu.",
74
+ `- Probe only discovery resources before authorization: ${input.serviceUrl}/health, ${input.serviceUrl}/v1, ${input.serviceUrl}/v1/instance, or ${input.serviceUrl}/v1/openapi.json`,
75
+ "- Do not scan ports.",
76
+ "- Send `Authorization: Bearer <auth_token>` on every protected `/v1` request. `/health`, `/v1`, `/v1/instance`, and `/v1/openapi.json` are discovery routes.",
77
+ "- Do not install npm or npx packages for an already-configured local MCP handoff.",
78
+ "- Do not use a global `interf` CLI when an app-backed MCP launcher is available.",
79
+ "- Project creation is allowed when the user asks Interf to use a Source. Project ids are generated internally. Do not ask for existing Project ids.",
80
+ "- Ask before drafting Build Plans or starting Build runs unless the user grants autonomy.",
81
+ "- After a Build succeeds, start from home.md. Use GraphManifest primary metrics for coverage, summaries/ for Source coverage proof, knowledge/ for drilldown, and artifacts/ only for focused task entrypoint notes.",
82
+ "- No automatic retries: if a Build Plan draft, Build Plan improvement, Build run, or status poll reaches failed/cancelled, report what failed and ask the user before starting another run.",
83
+ ].join("\n");
84
+ }
85
+ export function buildInterfMcpHandoff(input) {
86
+ const connection = {
87
+ url: input.serviceUrl,
88
+ auth_token: input.authToken,
89
+ };
90
+ return {
91
+ kind: "interf-mcp-handoff",
92
+ version: 1,
93
+ service_url: input.serviceUrl,
94
+ discovery_url: `${input.serviceUrl}/health`,
95
+ auth_required: Boolean(input.authToken),
96
+ auth_token: input.authToken,
97
+ skill_path: input.skillPath,
98
+ connection_json: connection,
99
+ mcp_servers: buildInterfMcpServers(input),
100
+ instructions: buildInterfMcpInstructions(input),
101
+ };
102
+ }
@@ -11,9 +11,8 @@ export * as types from "./lib/types.js";
11
11
  export * as agents from "./lib/agents.js";
12
12
  export * as executionProfile from "./lib/execution-profile.js";
13
13
  export * as executors from "./lib/executors.js";
14
- export * as schema from "./lib/schema.js";
15
14
  export * as userConfig from "./lib/user-config.js";
16
- export * as verifiableContextBootstrap from "./lib/verifiable-context-bootstrap.js";
15
+ export * as contextGraphBootstrap from "./lib/context-graph-bootstrap.js";
17
16
  export * as registry from "./registry.js";
18
17
  export * as roleRouter from "./role-router.js";
19
18
  export * as roleExecutors from "./role-executors.js";
@@ -11,9 +11,8 @@ export * as types from "./lib/types.js";
11
11
  export * as agents from "./lib/agents.js";
12
12
  export * as executionProfile from "./lib/execution-profile.js";
13
13
  export * as executors from "./lib/executors.js";
14
- export * as schema from "./lib/schema.js";
15
14
  export * as userConfig from "./lib/user-config.js";
16
- export * as verifiableContextBootstrap from "./lib/verifiable-context-bootstrap.js";
15
+ export * as contextGraphBootstrap from "./lib/context-graph-bootstrap.js";
17
16
  export * as registry from "./registry.js";
18
17
  export * as roleRouter from "./role-router.js";
19
18
  export * as roleExecutors from "./role-executors.js";
@@ -0,0 +1,14 @@
1
+ import type { AgentExecutionProfile } from "./executors.js";
2
+ import type { Agent } from "./types.js";
3
+ /**
4
+ * Build the spawn env for an agent. Delegates to the provider's
5
+ * `buildEnv` so per-agent quirks (e.g. Codex stripping `SHELL`) live
6
+ * with the provider, not here.
7
+ */
8
+ export declare function buildAgentEnv(agent: Agent, baseEnv?: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
9
+ /**
10
+ * Build the spawn args for an agent. Delegates to the provider's
11
+ * `buildArgs`. Throws when the agent is not driveable for automated
12
+ * Build runs (e.g. Cursor today, or any unknown user-registered name).
13
+ */
14
+ export declare function buildAgentArgs(agent: Agent, prompt: string, executionProfile?: AgentExecutionProfile): string[];
@@ -0,0 +1,24 @@
1
+ import { getBuiltInProvider } from "../providers/index.js";
2
+ /**
3
+ * Build the spawn env for an agent. Delegates to the provider's
4
+ * `buildEnv` so per-agent quirks (e.g. Codex stripping `SHELL`) live
5
+ * with the provider, not here.
6
+ */
7
+ export function buildAgentEnv(agent, baseEnv = process.env) {
8
+ const provider = getBuiltInProvider(agent.name);
9
+ if (provider)
10
+ return provider.buildEnv(baseEnv);
11
+ return { ...baseEnv };
12
+ }
13
+ /**
14
+ * Build the spawn args for an agent. Delegates to the provider's
15
+ * `buildArgs`. Throws when the agent is not driveable for automated
16
+ * Build runs (e.g. Cursor today, or any unknown user-registered name).
17
+ */
18
+ export function buildAgentArgs(agent, prompt, executionProfile = {}) {
19
+ const provider = getBuiltInProvider(agent.name);
20
+ if (!provider) {
21
+ throw new Error(`Agent "${agent.displayName}" is not yet supported for automated Build runs.`);
22
+ }
23
+ return provider.buildArgs(prompt, executionProfile);
24
+ }
@@ -1,5 +1,8 @@
1
1
  import type { Agent } from "./types.js";
2
2
  export declare const SHOW_AGENT_TOOL_EVENTS: boolean;
3
+ /**
4
+ * Built-in agents Interf knows about. Derived from the provider registry —
5
+ * keep new entries in `../providers/index.ts`, not here.
6
+ */
3
7
  export declare const AGENTS: Agent[];
4
- export declare const CODEX_NOISE_PATTERNS: RegExp[];
5
8
  export declare const VISIBLE_STATUS_PREFIXES: string[];
@@ -0,0 +1,13 @@
1
+ import { BUILT_IN_PROVIDERS } from "../providers/index.js";
2
+ export const SHOW_AGENT_TOOL_EVENTS = process.env.INTERF_DEBUG_AGENT_TOOLS === "1";
3
+ /**
4
+ * Built-in agents Interf knows about. Derived from the provider registry —
5
+ * keep new entries in `../providers/index.ts`, not here.
6
+ */
7
+ export const AGENTS = BUILT_IN_PROVIDERS.map((provider) => ({
8
+ name: provider.name,
9
+ displayName: provider.displayName,
10
+ skillsDir: provider.skillsDir,
11
+ command: provider.command,
12
+ }));
13
+ export const VISIBLE_STATUS_PREFIXES = ["STATUS:", "DONE:", "BLOCKED:", "ERROR:"];
@@ -0,0 +1,3 @@
1
+ import { renderClaudeBootstrap } from "./shells.js";
2
+ export { renderClaudeBootstrap };
3
+ export declare function refreshContextGraphBootstrapGuidance(dirPath: string): boolean;
@@ -1,18 +1,17 @@
1
1
  import { basename } from "node:path";
2
- import { readInterfConfig } from "../../../project/interf-detect.js";
2
+ import { readInterfConfig } from "../../../projects/interf-detect.js";
3
3
  import { resolveBuildPlanId } from "../../../build-plans/build-plan-resolution.js";
4
- import { projectVerifiableContextQueryShell, renderClaudeBootstrap } from "./shells.js";
4
+ import { projectContextGraphQueryShell, renderClaudeBootstrap } from "./shells.js";
5
5
  export { renderClaudeBootstrap };
6
- export function refreshVerifiableContextBootstrapGuidance(dirPath) {
6
+ export function refreshContextGraphBootstrapGuidance(dirPath) {
7
7
  const config = readInterfConfig(dirPath);
8
8
  if (!config)
9
9
  return false;
10
- const verifiableContextName = config.name ?? basename(dirPath);
10
+ const contextGraphName = config.name ?? basename(dirPath);
11
11
  const buildPlanId = resolveBuildPlanId(config);
12
12
  const buildPlanOriginSelected = config.build_plan_origin?.selected ?? buildPlanId;
13
13
  const buildPlanLocalDraft = config.build_plan_origin?.local_draft === true;
14
- const about = typeof config.about === "string" && config.about.length > 0 ? config.about : undefined;
15
- return projectVerifiableContextQueryShell(dirPath, verifiableContextName, buildPlanId, about, {
14
+ return projectContextGraphQueryShell(dirPath, contextGraphName, buildPlanId, {
16
15
  buildPlanOriginSelected,
17
16
  buildPlanLocalDraft,
18
17
  });
@@ -1,4 +1,9 @@
1
1
  import type { Agent } from "./types.js";
2
+ /**
3
+ * Detect built-in agents present on this machine. An agent is "detected"
4
+ * when its provider's home dir exists. Command-on-PATH is a runtime
5
+ * concern checked separately.
6
+ */
2
7
  export declare function detectAgents(): Agent[];
3
8
  /**
4
9
  * Whether the executable named in an agent's `command` field resolves on
@@ -1,14 +1,22 @@
1
1
  import { existsSync } from "node:fs";
2
2
  import { execFileSync } from "node:child_process";
3
- import { homedir } from "node:os";
4
- import { join } from "node:path";
5
3
  import { loadUserConfig } from "./user-config.js";
6
4
  import { AGENTS } from "./constants.js";
5
+ import { BUILT_IN_PROVIDERS, getBuiltInProvider } from "../providers/index.js";
6
+ /**
7
+ * Detect built-in agents present on this machine. An agent is "detected"
8
+ * when its provider's home dir exists. Command-on-PATH is a runtime
9
+ * concern checked separately.
10
+ */
7
11
  export function detectAgents() {
8
- return AGENTS.filter((agent) => {
9
- const dir = join(homedir(), `.${agent.name === "claude-code" ? "claude" : agent.name}`);
10
- return existsSync(dir);
11
- });
12
+ return BUILT_IN_PROVIDERS
13
+ .filter((provider) => existsSync(provider.homeDir))
14
+ .map((provider) => ({
15
+ name: provider.name,
16
+ displayName: provider.displayName,
17
+ skillsDir: provider.skillsDir,
18
+ command: provider.command,
19
+ }));
12
20
  }
13
21
  function commandExists(command) {
14
22
  try {
@@ -31,7 +39,8 @@ export function agentCommandAvailable(command) {
31
39
  return commandExists(firstToken);
32
40
  }
33
41
  export function supportsAutomatedRuns(agent) {
34
- return agent.name === "claude-code" || agent.name === "codex";
42
+ const provider = getBuiltInProvider(agent.name);
43
+ return Boolean(provider?.supportsAutomatedRuns);
35
44
  }
36
45
  export function resolveAgent() {
37
46
  const config = loadUserConfig();
@@ -11,6 +11,20 @@ type ExecutionProfileArgSource = Record<string, unknown> & {
11
11
  "timeout-ms"?: unknown;
12
12
  };
13
13
  export declare function executionProfileFromArgv(argv: ExecutionProfileArgSource): AgentExecutionProfile;
14
+ /**
15
+ * Resolve the EFFECTIVE execution profile for an agent: the per-run override
16
+ * (`executionProfile`) wins, and any field it leaves unset falls back to the
17
+ * agent's saved prefs (`~/.interf/agents.json` `agent_prefs[name]`). This is
18
+ * the single merge that used to live inline in `spawnAgent`. It is resolved
19
+ * ONCE at executor construction so the model the executor REPORTS
20
+ * (`buildRuntimeExecutorInfo`) is the exact model the executor RUNS
21
+ * (`buildAgentArgs`) — a session can no longer record `model: null` for a run
22
+ * whose model came from saved prefs (the common path).
23
+ *
24
+ * `profile` / `timeoutMs` are not pref-backed today (prefs only carry
25
+ * `model` / `effort` / `env_vars`), so they pass through unchanged.
26
+ */
27
+ export declare function resolveEffectiveAgentExecutionProfile(agent: AgentLike, executionProfile?: AgentExecutionProfile): AgentExecutionProfile;
14
28
  export declare function applyInternalAcceptanceExecutionProfileDefaults(agent: AgentLike, overrides?: AgentExecutionProfile): AgentExecutionProfile;
15
29
  export declare function hasAgentExecutionProfile(profile: AgentExecutionProfile | null | undefined): boolean;
16
30
  export declare function formatAgentExecutionProfile(profile: AgentExecutionProfile | null | undefined): string | null;
@@ -1,14 +1,6 @@
1
+ import { getBuiltInProvider } from "../providers/index.js";
2
+ import { loadAgentPrefs } from "../registry.js";
1
3
  const INTERNAL_ACCEPTANCE_TIMEOUT_MS = 480000;
2
- const INTERNAL_ACCEPTANCE_DEFAULTS = {
3
- "claude-code": {
4
- model: "claude-sonnet-4-6",
5
- effort: "low",
6
- },
7
- codex: {
8
- model: "gpt-5.3-codex",
9
- effort: "high",
10
- },
11
- };
12
4
  function readAgentName(agent) {
13
5
  if (!agent)
14
6
  return null;
@@ -56,15 +48,40 @@ export function executionProfileFromArgv(argv) {
56
48
  timeoutMs: normalizeOptionalTimeout(argv.timeoutMs ?? argv["timeout-ms"]),
57
49
  };
58
50
  }
51
+ /**
52
+ * Resolve the EFFECTIVE execution profile for an agent: the per-run override
53
+ * (`executionProfile`) wins, and any field it leaves unset falls back to the
54
+ * agent's saved prefs (`~/.interf/agents.json` `agent_prefs[name]`). This is
55
+ * the single merge that used to live inline in `spawnAgent`. It is resolved
56
+ * ONCE at executor construction so the model the executor REPORTS
57
+ * (`buildRuntimeExecutorInfo`) is the exact model the executor RUNS
58
+ * (`buildAgentArgs`) — a session can no longer record `model: null` for a run
59
+ * whose model came from saved prefs (the common path).
60
+ *
61
+ * `profile` / `timeoutMs` are not pref-backed today (prefs only carry
62
+ * `model` / `effort` / `env_vars`), so they pass through unchanged.
63
+ */
64
+ export function resolveEffectiveAgentExecutionProfile(agent, executionProfile = {}) {
65
+ const name = readAgentName(agent);
66
+ const prefs = name ? loadAgentPrefs()[name] : undefined;
67
+ return {
68
+ ...executionProfile,
69
+ model: executionProfile.model ?? prefs?.model ?? null,
70
+ effort: executionProfile.effort ?? prefs?.effort ?? null,
71
+ };
72
+ }
59
73
  export function applyInternalAcceptanceExecutionProfileDefaults(agent, overrides = {}) {
60
- const defaults = INTERNAL_ACCEPTANCE_DEFAULTS[readAgentName(agent) ?? ""];
74
+ const provider = getBuiltInProvider(readAgentName(agent) ?? "");
75
+ const defaultModel = provider?.defaultModel ?? null;
76
+ const defaultEffort = provider?.defaultEffort ?? null;
61
77
  const profile = overrides.profile ?? null;
62
78
  const explicitEffort = overrides.effort ?? null;
79
+ const hasDefaults = Boolean(provider && (defaultModel || defaultEffort));
63
80
  return {
64
- model: overrides.model ?? defaults?.model ?? null,
81
+ model: overrides.model ?? defaultModel ?? null,
65
82
  profile,
66
- effort: explicitEffort ?? (profile ? null : defaults?.effort ?? null),
67
- timeoutMs: overrides.timeoutMs ?? (defaults ? INTERNAL_ACCEPTANCE_TIMEOUT_MS : null),
83
+ effort: explicitEffort ?? (profile ? null : defaultEffort ?? null),
84
+ timeoutMs: overrides.timeoutMs ?? (hasDefaults ? INTERNAL_ACCEPTANCE_TIMEOUT_MS : null),
68
85
  };
69
86
  }
70
87
  export function hasAgentExecutionProfile(profile) {
@@ -1,14 +1,22 @@
1
1
  import { spawn } from "node:child_process";
2
2
  import chalk from "chalk";
3
- import { CODEX_NOISE_PATTERNS } from "./constants.js";
3
+ import { getBuiltInProvider } from "../providers/index.js";
4
+ import { loadAgentPrefs } from "../registry.js";
4
5
  import { buildAgentArgs, buildAgentEnv } from "./args.js";
5
- import { appendAgentEventLog, appendAgentStatusLog } from "./logs.js";
6
- import { displayAgentEvent, emitVisibleAgentText, summarizeAgentToolActivity, } from "./render.js";
6
+ import { appendAgentEventLog, appendAgentReasoningLog, appendAgentStatusLog } from "./logs.js";
7
+ import { displayAgentEvent, emitVisibleAgentText, extractAgentReasoning, summarizeAgentToolActivity, } from "./render.js";
7
8
  import { classifyTerminalVisibleStatus, extractAgentFailureStatus, hasAgentStalled, } from "./status.js";
8
9
  const STOP_SIGNAL_GRACE_MS = 1500;
9
10
  export function spawnAgent(agent, dirPath, prompt, options = {}) {
10
11
  return new Promise((resolve) => {
11
- const args = buildAgentArgs(agent, prompt, options.executionProfile);
12
+ const noiseFilters = getBuiltInProvider(agent.name)?.noiseFilters ?? [];
13
+ const prefs = loadAgentPrefs()[agent.name];
14
+ // The execution profile arrives already resolved (per-run override ∨ saved
15
+ // prefs) from `createLocalAgentExecutor`, so the CLI args built here use the
16
+ // SAME model/effort the session records via `buildRuntimeExecutorInfo` (F1).
17
+ // `prefs.env_vars` is still read below — env vars are a spawn concern, not
18
+ // part of the execution profile, so they are not pre-resolved.
19
+ const args = buildAgentArgs(agent, prompt, options.executionProfile ?? {});
12
20
  appendAgentEventLog(options.eventLogPath, {
13
21
  type: "spawn",
14
22
  command: agent.command,
@@ -19,9 +27,11 @@ export function spawnAgent(agent, dirPath, prompt, options = {}) {
19
27
  console.log(chalk.dim(` ${launchLine}`));
20
28
  appendAgentStatusLog(options.statusLogPath, launchLine);
21
29
  options.onStatus?.(launchLine);
30
+ const baseEnv = buildAgentEnv(agent);
31
+ const env = prefs?.env_vars ? { ...baseEnv, ...prefs.env_vars } : baseEnv;
22
32
  const proc = spawn(agent.command, args, {
23
33
  cwd: dirPath,
24
- env: buildAgentEnv(agent),
34
+ env,
25
35
  stdio: ["ignore", "pipe", "pipe"],
26
36
  });
27
37
  const timeoutMs = options.executionProfile?.timeoutMs ?? null;
@@ -174,6 +184,12 @@ export function spawnAgent(agent, dirPath, prompt, options = {}) {
174
184
  if (toolActivity) {
175
185
  lastToolActivity = toolActivity;
176
186
  }
187
+ // Tee reasoning/thinking spans the display path discards to the
188
+ // reasoning transcript. Best-effort: the writer swallows errors and
189
+ // events without reasoning yield nothing, so the run is never blocked.
190
+ for (const span of extractAgentReasoning(event)) {
191
+ appendAgentReasoningLog(options.reasoningLogPath, span);
192
+ }
177
193
  failureStatus ||= extractAgentFailureStatus(event);
178
194
  if (displayAgentEvent(event, options.statusLogPath, lastVisibleText, options.onStatus)) {
179
195
  sawVisibleEvent = true;
@@ -202,7 +218,7 @@ export function spawnAgent(agent, dirPath, prompt, options = {}) {
202
218
  type: "stderr",
203
219
  line,
204
220
  });
205
- if (CODEX_NOISE_PATTERNS.some((pattern) => pattern.test(line)))
221
+ if (noiseFilters.some((pattern) => pattern.test(line)))
206
222
  continue;
207
223
  sawRawOutput = true;
208
224
  lastVisibleOutputAt = Date.now();
@@ -10,6 +10,7 @@ export interface AgentExecutionProfile {
10
10
  export interface AgentExecuteOptions {
11
11
  eventLogPath?: string | null;
12
12
  statusLogPath?: string | null;
13
+ reasoningLogPath?: string | null;
13
14
  completionCheck?: (() => boolean) | null;
14
15
  onStatus?: (line: string) => void;
15
16
  }