@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
package/README.md CHANGED
@@ -1,327 +1,164 @@
1
1
  # Interf
2
2
 
3
- **Data preparation for agents.**
3
+ **Interf prepares data for agent tasks.**
4
4
 
5
- Agents miss things in files.
5
+ Interf structures your files into a task-specific graph your agent can navigate.
6
+ Your agent starts from prepared context built for the task, instead of a partial
7
+ read of whatever files it happened to open.
6
8
 
7
- Interf builds verifiable context for agents from your files.
9
+ > This npm package is the `interf` CLI and local runtime. A Mac app (Interf
10
+ > Desktop) is coming soon.
8
11
 
9
- It turns hidden file discovery into traceable artifacts with proof of how they were built.
10
-
11
- When agents answer from your files, they first have to discover what is in them. That context-building step is hidden, inconsistent, and hard to verify: you cannot see which files were checked, what was extracted, or what the agent skipped. When the agent misses a file or page, the output can sound confident but be wrong.
12
-
13
- Source discovery should be separate from agent work. Interf separates that step, builds verifiable context, and lets your agent work from traceable artifacts instead of rediscovering the files during the job.
14
-
15
- ```text
16
- Source files Verifiable context agents use
17
-
18
- bristol-office-market/ <context-locator>/
19
- q4-market-report.pdf AGENTS.md
20
- lease-comps.xlsx .interf/runtime/source-snapshot.json
21
- planning-notes.md home.md
22
- exports/availability.csv summaries/
23
- knowledge/
24
- ```
25
-
26
- ## What a Build Run Produces
27
-
28
- A Build run produces verifiable context plus proof of work. Verifiable context is what agents use. The proof shows which source files were assigned, which Build Plan stages ran, what each stage wrote, and whether required artifacts exist.
29
-
30
- For the built-in `interf-default` Build Plan, a Build run looks like this:
31
-
32
- ```text
33
- Source: bristol-office-market
34
- Build Plan: interf-default
35
- Requested Artifacts: atlas, summaries, knowledge, claims, indexes
36
-
37
- Build run
38
- record source references
39
- summarize -> summaries/
40
- structure -> knowledge/
41
- shape -> home.md and agent entrypoints
42
- record proof -> processed files, stage outputs, required artifacts
43
-
44
- verifiable context
45
- locator -> { kind: "local-path", value: "<local-path-returned-by-interf>" }
46
- ```
47
-
48
- The output is not an answer. It is a prepared local folder with routes, artifacts, source snapshots, and agent instructions. Your runtime agent reads that folder when it does the actual agent work.
49
-
50
- ## Design Choices
51
-
52
- - `Preparation-scoped`: every Preparation starts from a specific Source, requested Artifacts, and agent job, not a generic index over all your files.
53
- - `Deterministic`: Interf runs each stage, an ordered phase of a Build Plan, and shows stage-by-stage proof of work: which files were processed, what each stage produced, and whether required outputs exist. Agents do not have to rebuild the full picture while they work.
54
- - `Local-first and private`: your files, readiness checks, and agent runs stay on your machine. No cloud, no uploads, no telemetry.
55
- - `Bring your own AI`: use Claude Code, Codex, or another local agent.
56
- - `File over app`: verifiable context is exposed as a local folder owned by the instance — no hidden store, no hidden index. Inspect it, diff it, version it.
57
- - `Readiness checks you control`: every build can be checked against gates you wrote from the files. If the context is `not ready`, `interf test` shows the readiness evidence behind that status.
58
-
59
- ## Why Not Just Ask Your Agent?
60
-
61
- You can. Interf can use Claude Code, Codex, or another local agent while it builds verifiable context.
62
-
63
- A one-off preprocessing prompt gives you another agent answer to trust. Interf puts that work inside a Build Plan you can inspect: requested artifacts, declared stages, stage-by-stage proof of work, and readiness checks that decide whether the context is `ready` or `not ready`.
64
-
65
- The agent can still execute the stages. Interf shows what ran, which files were processed, what artifacts and evidence were produced, and whether the result is ready for the agent work.
66
-
67
- ## Install
12
+ ## Quick start
68
13
 
69
14
  ```bash
70
15
  npm install -g @interf/compiler
71
- interf # opens the wizard; start or connect an engine when needed
16
+ interf # the interactive wizard walks you through your first build
72
17
  ```
73
18
 
74
- Requires Node.js 20+ and a local coding agent such as Claude Code or Codex. Run `interf doctor --live` if the executor is not detected.
19
+ Requires Node 20+ and a local agent CLI (Claude Code, Codex, or another). Check
20
+ it with `interf doctor --live`.
75
21
 
76
- ## Quick Start
22
+ Or run it command by command:
77
23
 
78
24
  ```bash
79
- interf web # terminal 1: start the local engine
80
- interf prep create bristol \ # terminal 2: save the source + requested Artifacts
25
+ interf runtime # start the local runtime
26
+ interf project create bristol \ # bind a folder + the agent's task
81
27
  --source ./bristol-office-market \
82
- --about "Bristol annual take-up and availability chart lookup" \
83
- --requested-artifacts-json '[{"title":"Guide to the report","checks":["Every page or file is listed.","Pages about Bristol and annual take-up are marked."]},{"title":"Annual take-up figures","checks":["Every figure has a source reference."]}]'
84
- interf build-plan draft bristol \ # draft the Build Plan for review
85
- --task "Bristol annual take-up and availability chart lookup"
86
- interf build bristol # build verifiable context, returns the locator
87
- interf test bristol # check readiness
28
+ --intent "Bristol annual take-up and availability"
29
+ interf plan draft bristol # draft a Build Plan, then review it
30
+ interf plan select bristol <build-plan-id> # pick the reviewed plan
31
+ interf build bristol # build the graph
88
32
  ```
89
33
 
90
- `interf web` starts the engine in the foreground and writes the active
91
- connection record so subsequent CLI commands can connect. Agents can use
92
- `interf web start` for an explicit managed background engine, then
93
- `interf web stop` when their work is done. Mutating commands never implicitly
94
- auto-start an engine — if no instance is connected, they exit with a hint
95
- pointing at `interf web` / `interf web start` (local) or `interf login`
96
- (future cloud).
97
-
98
- `interf build` returns the artifact locator on success — for a local
99
- engine that's a `local-path` you can open with any tool. Point your agent at
100
- that path. There's no `--out` flag, no implicit copy, no hidden store: the
101
- instance owns the bytes and the API tells you where they are.
102
-
103
- If you want a baseline before building verifiable context, run `interf test bristol --target source-files`. It is optional proof, not the main path.
34
+ `interf build` returns the graph path: a folder your agent opens and continues
35
+ from. No `--out` flag, no copy of your Source. Mutating commands never auto-start
36
+ the runtime; they exit with a hint if nothing is connected.
104
37
 
105
- ## Verifiable Context
38
+ ## What you get
106
39
 
107
- Verifiable context is the output Interf builds from your files for agents. The current local engine exposes it as a local folder. Do not hardcode its location. The API returns a typed locator (`{ kind: "local-path" | "remote-url", value }`); your agent reads from there.
108
-
109
- It gives agents evidence, structure, and cross-file connections for navigating the files. It is not a replacement for your files. For the built-in `interf-default`, it includes:
40
+ A folder your agent navigates instead of grepping raw files. Interf calls it a
41
+ **Context Graph**:
110
42
 
111
43
  ```text
112
- <context-locator>/
113
- AGENTS.md # agent-facing entry point and source-checking rules
114
- CLAUDE.md # same guidance for Claude Code
115
- .interf/
116
- runtime/
117
- source-snapshot.json # source references captured for the latest run
118
- stages/ # per-stage source input lists
119
- home.md # overview and routes for agents
120
- summaries/ # one note per source file
121
- knowledge/ # linked notes built from the files
44
+ <graph>/
45
+ home.md # start here. routes into the three layers below
46
+ summaries/ # one folder per source file. every file read and summarized
47
+ knowledge/ # the connected web: linked notes, claims, entities, source refs
48
+ artifacts/ # task handoffs that reference summaries and knowledge
49
+ traces/ # provenance: every claim links back to source
50
+ AGENTS.md # how agents use the graph (plus CLAUDE.md for Claude Code)
122
51
  ```
123
52
 
124
- The source files stay the source of truth. Interf writes verifiable context inside the instance's data dir; it does not modify the source.
125
-
126
- `AGENTS.md` tells agents how to use the verifiable context: start from the prepared outputs, follow the prepared routes, and use the recorded source references when exact source evidence matters.
127
-
128
- Interf also records stage-by-stage proof of work: which files were processed, what each stage produced, and whether required outputs were created.
129
-
130
- The returned local folder carries source references, not a mandatory copy of every source file. The source files remain where you keep them; Interf records which sources were assigned and what artifacts were produced from them.
53
+ `summaries/`, `knowledge/`, and `artifacts/` are the three fixed layers, plus
54
+ `home.md`. What goes inside `knowledge/` (claims, entities, timelines, tables) is
55
+ up to the Build Plan, so any task shapes its own web. Your Source stays read-only
56
+ and the ground truth. Agents follow source links when exact wording, table
57
+ values, or chart reads matter.
131
58
 
132
- ## Build Plans
59
+ ## Why Interf is different
133
60
 
134
- A Build Plan tells Interf how to build requested Artifacts from your source files for the job agents need to do. It can start as a draft inside one Preparation, based on the user's instructions, the agent goal, and the described Source. If it works, save it and reuse it on another Source.
61
+ Most tools prepare your files one way for every question: chunks in a vector
62
+ store, or a single knowledge graph that maps everything the same way (RAG
63
+ indexes, Obsidian-style graphs, code-graph tools). Interf is `task-specific`. You
64
+ tell it what the agent needs to do, and it builds a graph tailored to that task:
65
+ the right summaries, connections, and entrypoints for *this* work, not a one-size
66
+ index of all your files.
135
67
 
136
- The built-in `interf-default` Build Plan ships with `interf`. Save your own local Build Plan with `interf build-plan save <path>`; draft new ones with `interf build-plan draft <prep-id>`.
68
+ And the graph is `provable`:
137
69
 
138
- ```text
139
- <build-plan-folder>/
140
- build-plan.json # Build Plan definition: artifacts, stages, build rules
141
- build-plan.schema.json # output contract: required verifiable-context files and folders
142
- README.md # what this Build Plan is for
143
- build/
144
- stages/
145
- summarize/ # stage instructions Interf runs during the Build run
146
- structure/
147
- shape/
148
- use/
149
- query/ # how agents read the verifiable context
150
- improve/ # how Interf revises this plan if readiness checks still fail
151
- ```
70
+ - `Coverage`: every Source file was read and summarized.
71
+ - `Traceability`: every claim links back to a Source, and every note connects to
72
+ the web. No orphans, no islands.
152
73
 
153
- - `build-plan.json` is the current technical filename for the Build Plan definition: source data, requested artifacts, stages, and how the files should be built.
154
- - `build-plan.schema.json` describes the output contract: what the verifiable context must contain. Interf enforces it when you run `interf build`.
155
- - `build/stages/<stage>/` is where you author one folder per stage — a small, specific phase like `summarize` or `structure`. You write the instructions; Interf runs them during the Build run.
156
- - `use/query/` holds the instructions agents follow when they read the verifiable context for live agent work.
157
- - `improve/` holds the instructions Interf follows when the first build misses and the Build Plan itself needs editing.
74
+ It is `provider-agnostic` by design: the same prepared context works across
75
+ Claude, Codex, GPT, and whatever you switch to next, because the graph is a
76
+ portable folder you own, never trapped in one vendor's session. Your own agents
77
+ do the work, your files never leave your machine, and the output is files you can
78
+ read, diff, commit, and reuse.
158
79
 
159
- A Build Plan defines the stages, output contract, proof requirements, and improvement instructions Interf runs on your files. The result is verifiable context your agents can read.
80
+ ## Design principles
160
81
 
161
- ## Build Plan Improvement
82
+ - `Not a replacement for your agent harness`: just a task-specific graph to navigate.
83
+ - `Your files stay yours`: local, read-only, never sent to Interf's servers.
84
+ - `Runs with your agents`: your CLIs, your subscriptions, in a replayable shell.
85
+ - `File over app`: the graph is inspectable files, not a hidden index.
86
+ - `Connected, not orphaned`: every note links to others and back to sources.
87
+ - `Coverage-first`: exact file, summary, knowledge, and output counts.
88
+ - `Project-scoped`: one Source, one agent task, one Build Plan.
162
89
 
163
- When the first Build run still misses readiness checks, Interf edits the Build Plan and builds again. Same files, same checks, improved plan and verifiable context. Run `interf build-plan improve <prep-id>` to invoke that loop manually.
90
+ ## Readiness is provable
164
91
 
165
- Interf saves every readiness-check run inside the returned local folder under `.interf/tests/`. You can inspect what changed and why a later Build run did better.
92
+ Every Build reports exact coverage metrics (files processed, source units
93
+ summarized, knowledge reviewed and used, graph outputs, entrypoints) behind a
94
+ single `ready` / `not ready` verdict backed by two deterministic guarantees:
166
95
 
167
- ## How Interf Builds
96
+ - **Coverage**: every Source file was read and summarized. This is file-level. It
97
+ does not claim every fact was caught, only that no file went unread.
98
+ - **Traceability**: every claim links back to a Source, every summary is linked,
99
+ and every knowledge note connects to the web. No orphans, no islands.
168
100
 
169
- You don't need to think about roles. By default Interf uses your active agent for every stage of every Build run. Roles are available for advanced users who want different agents per stage; defaults are good and stable.
101
+ If a file is unread, a claim is unlinked, or a note is an island, the graph is
102
+ `not ready` and the gap is named.
170
103
 
171
- Interf treats connected agents as a first-class primitive and uses a small role taxonomy internally to route stages between them. The default behavior is single-active-agent — one installed agent runs everything — but you can opt into per-role specialization without changing any Build Plan.
104
+ `interf benchmark` is a separate, optional check that scores answer accuracy
105
+ against the Source baseline, the graph, or both. It is a fallible double-check,
106
+ never a readiness gate.
172
107
 
173
- ```text
174
- Connected agents Role map (per-instance)
175
- claude-code (active) extractor → claude-code
176
- codex summarizer → claude-code
177
- pdf-extract (custom) structurer → claude-code
178
- verifier → claude-code
179
- general → claude-code
180
-
181
- A Build run
182
- for each stage in the Build Plan
183
- look up the stage's role in the role map
184
- invoke the mapped agent on the prepared shell
185
- record which agent ran which stage
186
- ```
108
+ ## Build Plans
187
109
 
188
- Build Plans declare an optional `role` per stage one of `extractor`, `summarizer`, `structurer`, `verifier`, or `general`. Custom role names are allowed; unknown roles fall through to `general`.
110
+ A Build Plan is the reviewed recipe for how Interf builds the graph from your
111
+ Source for the task: requested outputs, stage instructions, expected inputs, and
112
+ the entrypoints you review before building. `interf-default` ships built in.
113
+ Draft your own with `interf plan draft <project-id>`, or save one with
114
+ `interf plan save <path>`.
189
115
 
190
- The role map lives in the instance's agent settings. On a fresh install with one agent installed, every role maps to that agent and you get the same single-active-agent behavior 0.14 had. To change which agent runs which role:
116
+ When a Build comes back `not ready`, Interf can revise the plan and build again
117
+ (same Source, same intent, better plan), recorded as a Run:
191
118
 
192
119
  ```bash
193
- interf agents ls
194
- interf agents register opencode --command "opencode --prompt"
195
- interf agents map structurer codex
196
- interf agents use claude-code # set the active agent
197
- interf agents unmap structurer # fall back to active
198
- ```
199
-
200
- Or use the **Agents** tab in Interf UI. Either surface mutates the same instance agent settings through the local service.
201
-
202
- Readiness-check runs always resolve to the `verifier` role. Build Plan authoring runs ask the authoring agent to propose a `role` per stage based on the prompt content; missing roles default to `general`.
203
-
204
- ## How the Pieces Fit
205
-
206
- The instance owns preparation state. A preparation declares a source binding (`{ kind: "local-folder", locator: <path> }`), requested artifacts, and a selected Build Plan. It stores preparation state and generated bytes in the instance data directory. A Build run processes the selected source files and produces the artifact locator the API returns. `interf test` checks source files and verifiable context against the same readiness checks.
207
-
208
- Readiness is one `ready` / `not ready` status, not a separate score. Interf builds it from evidence primitives: Build Plan Artifact checks, proof records, file coverage, artifact validation, and readiness checks.
209
-
210
- `interf web` runs the local Interf instance and serves Interf UI. The UI reads local-service resources: Source, Preparations, Build Plans, Build runs, stages, proof, artifacts, readiness checks, and whether verifiable context is `ready` or `not ready`. It renders local instance state; it does not own Build Plan, proof, or readiness semantics.
211
-
212
- Everywhere Interf shows a resource — Source, context output, Build Plan files, run artifacts — the API returns a single locator shape: `{ kind, value }`. `local-path` means the engine has filesystem access to the same host as the user; `remote-url` is a signed URL the UI opens in a browser tab; `api-served` is a relative API route the UI fetches and renders inline. Local engines today return `local-path`; the same shape carries forward unchanged when a remote instance fronts the API.
213
-
214
- ## CLI Connection
215
-
216
- The CLI is a thin authorized client of one connected instance. It carries one active connection record:
217
-
218
- ```text
219
- {
220
- "url": "http://127.0.0.1:4873",
221
- "auth_token": null
222
- }
120
+ interf plan improve <project-id>
223
121
  ```
224
122
 
225
- `interf web` and `interf web start` write that record on startup. `interf login --url <remote>` writes a remote one (the cloud backend ships in a future release; the wire shape and config layer ship now). `interf logout` clears it.
226
-
227
- If the connection is unreachable, every mutating command exits non-zero with:
123
+ A Build Plan is a folder you can read and version:
228
124
 
229
125
  ```text
230
- Not connected to any Interf instance.
231
- Start one with `interf web` or `interf web start`, or set --url / `interf login` for a remote one.
126
+ <build-plan>/
127
+ build-plan.json # outputs, stages, and build rules
128
+ build-plan.schema.json # the output contract: what the graph must contain
129
+ build/stages/<stage>/ # the instructions Interf runs for each stage
130
+ use/query/ # how agents read the graph for the task
131
+ improve/ # how Interf revises the plan when checks still fail
232
132
  ```
233
133
 
234
- There is no implicit auto-start. There is no per-folder pointer file. One mental model: client connects to instance, explicitly starts one, or doesn't.
235
-
236
- ## Readiness Checks
237
-
238
- There are two checks in the system, and they answer different questions.
239
-
240
- Build Plan Artifact checks check the build: did the plan produce the files, folders, Artifacts, and stage outputs it promised? Interf checks those while it builds.
241
-
242
- Readiness checks check the verifiable context: is this Preparation good enough for the specific agent work? They are the confidence layer on top of the context, not the product output.
243
-
244
- In the setup flow, readiness checks often look like plain question-and-answer pairs. On the API, they live under each preparation's `checks[]`. They help define whether the context is `ready` or `not ready`. A check should be a small, verifiable fact or condition you already know from the files:
245
-
246
- - one exact number from a chart, table, or filing
247
- - one short statement that should be true or false
248
- - one comparison across years, files, or sections
249
-
250
- Interf proposes an initial set from the files and the description of the job agents need to do. You confirm, edit, or replace them. `interf test` runs those checks through the configured local agent against source files, verifiable context, or both. The context itself does not answer; the agent answers while using it.
251
-
252
- A maintained readiness example in this repo uses one market report, two readiness checks, and two agents:
253
-
254
- <!-- PUBLIC_BENCHMARK_TABLE:START -->
255
- | Agent | Source files | Verifiable context |
256
- | --- | --- | --- |
257
- | Codex (GPT-5.4, xhigh) | `2/2` | `2/2` |
258
- | Claude Code (Claude Opus 4.6, max) | `0/2` | `2/2` |
259
- <!-- PUBLIC_BENCHMARK_TABLE:END -->
260
-
261
- Codex passed from the source files; Claude Code only passed when working from Interf's verifiable context. Both numbers come from the same readiness-check pass. That is evidence about whether this context is `ready` for this agent work.
262
-
263
- A maintained public test example uses this preparation:
264
-
265
- <!-- PUBLIC_TEST_CHECKS:START -->
266
- ```text
267
- {
268
- "id": "cbre-chart-sanity",
269
- "source": { "kind": "local-folder", "locator": "./task-files" },
270
- "build_plan_id": "interf-default",
271
- "about": "Bristol historical take-up and availability chart lookup.",
272
- "requested_artifacts": [
273
- {
274
- "title": "Guide to the report",
275
- "checks": ["Every page is listed.", "Pages about Bristol charts are marked."]
276
- },
277
- {
278
- "title": "Annual take-up and availability figures",
279
- "checks": ["Every figure has a page reference.", "Approximate chart-derived reads are labelled."]
280
- }
281
- ],
282
- "checks": [
283
- {
284
- "question": "What were Bristol's annual take-up values in 2018 and 2016?",
285
- "answer": "Around half a million sq ft in 2018, roughly 0.45 to 0.6 million sq ft, and about 0.7 to 0.8 million sq ft in 2016. These are approximate chart-derived reads."
286
- },
287
- {
288
- "question": "What were Bristol's availability values in 2018 and 2016?",
289
- "answer": "About 0.55 to 0.6 million sq ft in 2018 and about 1.2 to 1.3 million sq ft in 2016. These are approximate chart-derived reads."
290
- }
291
- ]
292
- }
293
- ```
294
- <!-- PUBLIC_TEST_CHECKS:END -->
295
-
296
- ## What Interf Is Not
297
-
298
- - Not a second brain or memory product. One preparation per agent job; nothing global.
299
- - Not a vector store or RAG server. The context output is plain files.
300
- - Not a hosted data platform. The local instance runs on your machine; your bytes never leave it.
301
- - Not an agent harness. Interf builds verifiable context; your existing agent reads it.
302
-
303
- ## Useful Commands
304
-
305
- - `interf web` — run the local engine in the foreground (Interf UI + API)
306
- - `interf web start` — start a managed background local engine for agent sessions
307
- - `interf web stop` — kill the running local engine
308
- - `interf prep ls / create / show / rm` — manage preparations
309
- - `interf build <prep-id>` — build verifiable context, returns the artifact locator
310
- - `interf test <prep-id>` — run readiness checks against source files and/or verifiable context
311
- - `interf build-plan list / show / save / draft / select / improve` — manage Build Plans
312
- - `interf agents ls / use / register / unregister / map / unmap` — manage connected agents and the role map
313
- - `interf runs ls / status / cancel / fetch` — inspect runs
314
- - `interf login / logout` — manage the active connection record (remote backend ships in a future release)
315
- - `interf status` — show the active connection and a preparation summary
316
- - `interf doctor --live` — check the local executor
317
-
318
- ## Public Assets
319
-
320
- - [skills/interf](./skills/interf/) — bundled agent Skill for Interf.
321
- - [plugins/interf](./plugins/interf/) — local MCP host bundle for agents that support local MCP servers.
322
- - [build-plans/interf-default](./build-plans/interf-default/) — default Build Plan that ships with `interf`.
323
-
324
- Contributors: see [CONTRIBUTING.md](./CONTRIBUTING.md).
325
-
326
- License: see [LICENSE.md](./LICENSE.md). © 2026 Interf Inc. All rights reserved.
327
- Name and branding: see [TRADEMARKS.md](./TRADEMARKS.md).
134
+ ## Commands
135
+
136
+ | Command | What it does |
137
+ |---|---|
138
+ | `interf` / `interf init` | Open the interactive wizard |
139
+ | `interf runtime` / `start` / `stop` | Run, background, or stop the local runtime |
140
+ | `interf project create / ls / show / rm` | Manage Projects |
141
+ | `interf plan draft / select / improve / save / list / show` | Manage Build Plans |
142
+ | `interf build <id>` | Build the graph for a Project |
143
+ | `interf graphs ls / show --project <id>` | Inspect built graphs |
144
+ | `interf traces ls / show --project <id>` | Inspect source provenance |
145
+ | `interf runs ls / status --project <id>` | Inspect Runs |
146
+ | `interf benchmark <id>` | Optional accuracy check |
147
+ | `interf agents ls / use / register / map` | Configure local execution agents |
148
+ | `interf status` | Connection and Project summary |
149
+ | `interf doctor --live` | Check your agent before a Build |
150
+
151
+ ## What Interf is not
152
+
153
+ - Not a second brain or memory product: one Project, one Source, one task.
154
+ - Not a vector store or hosted RAG server: the graph is inspectable, source-backed files.
155
+ - Not a hosted data platform: local Builds run on your machine.
156
+ - Not a general knowledge graph or notes app: each graph is built for one agent task, not a single index of everything.
157
+
158
+ ## More
159
+
160
+ - [skills/interf](./skills/interf/): the bundled agent Skill.
161
+ - [build-plans/interf-default](./build-plans/interf-default/): the default Build Plan.
162
+ - [CONTRIBUTING.md](./CONTRIBUTING.md) · [LICENSE.md](./LICENSE.md) · [TRADEMARKS.md](./TRADEMARKS.md)
163
+
164
+ © 2026 Interf Inc. All rights reserved.
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,63 @@
1
+ #!/usr/bin/env node
2
+ import { startInterfMcpServer, } from "./cli/commands/mcp.js";
3
+ function readOptionValue(argv, index, flag) {
4
+ const current = argv[index];
5
+ const inlinePrefix = `${flag}=`;
6
+ if (current?.startsWith(inlinePrefix)) {
7
+ return { value: current.slice(inlinePrefix.length), nextIndex: index };
8
+ }
9
+ const value = argv[index + 1];
10
+ if (!value || value.startsWith("--")) {
11
+ throw new Error(`Missing value for ${flag}.`);
12
+ }
13
+ return { value, nextIndex: index + 1 };
14
+ }
15
+ function parseArgs(argv) {
16
+ const args = { profile: "app", transport: "stdio" };
17
+ for (let index = 0; index < argv.length; index += 1) {
18
+ const arg = argv[index];
19
+ if (arg === "--help" || arg === "-h") {
20
+ process.stderr.write("usage: interf-mcp [--url <url>] [--token <token>]\n");
21
+ process.exit(0);
22
+ }
23
+ if (arg === "--profile" || arg?.startsWith("--profile=")) {
24
+ const parsed = readOptionValue(argv, index, "--profile");
25
+ if (parsed.value !== "app" && parsed.value !== "headless") {
26
+ throw new Error("--profile must be app or headless.");
27
+ }
28
+ args.profile = parsed.value;
29
+ index = parsed.nextIndex;
30
+ continue;
31
+ }
32
+ if (arg === "--transport" || arg?.startsWith("--transport=")) {
33
+ const parsed = readOptionValue(argv, index, "--transport");
34
+ if (parsed.value !== "stdio") {
35
+ throw new Error("Only stdio transport is supported by the local Interf MCP server.");
36
+ }
37
+ args.transport = parsed.value;
38
+ index = parsed.nextIndex;
39
+ continue;
40
+ }
41
+ if (arg === "--url" || arg?.startsWith("--url=")) {
42
+ const parsed = readOptionValue(argv, index, "--url");
43
+ args.url = parsed.value;
44
+ index = parsed.nextIndex;
45
+ continue;
46
+ }
47
+ if (arg === "--token" || arg?.startsWith("--token=")) {
48
+ const parsed = readOptionValue(argv, index, "--token");
49
+ args.token = parsed.value;
50
+ index = parsed.nextIndex;
51
+ continue;
52
+ }
53
+ throw new Error(`Unknown MCP server option: ${arg ?? ""}`);
54
+ }
55
+ return args;
56
+ }
57
+ try {
58
+ await startInterfMcpServer(parseArgs(process.argv.slice(2)));
59
+ }
60
+ catch (error) {
61
+ process.stderr.write(`${error instanceof Error ? error.message : String(error)}\n`);
62
+ process.exit(1);
63
+ }
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
@@ -0,0 +1,111 @@
1
+ #!/usr/bin/env node
2
+ import { runRuntimeForeground, runRuntimeStatus, } from "./cli/commands/runtime.js";
3
+ import { LOCAL_SERVICE_DEFAULT_HOST, LOCAL_SERVICE_DEFAULT_PORT, } from "./packages/runtime/service/routes.js";
4
+ function optionValue(argv, index, flag) {
5
+ const current = argv[index];
6
+ const inlinePrefix = `${flag}=`;
7
+ if (current?.startsWith(inlinePrefix)) {
8
+ return { value: current.slice(inlinePrefix.length), nextIndex: index };
9
+ }
10
+ const value = argv[index + 1];
11
+ if (!value || value.startsWith("--")) {
12
+ throw new Error(`Missing value for ${flag}.`);
13
+ }
14
+ return { value, nextIndex: index + 1 };
15
+ }
16
+ function parseNumber(raw, flag) {
17
+ const value = Number(raw);
18
+ if (!Number.isInteger(value) || value <= 0) {
19
+ throw new Error(`${flag} must be a positive integer.`);
20
+ }
21
+ return value;
22
+ }
23
+ function parseForegroundArgs(argv) {
24
+ const args = {
25
+ host: LOCAL_SERVICE_DEFAULT_HOST,
26
+ port: LOCAL_SERVICE_DEFAULT_PORT,
27
+ };
28
+ for (let index = 0; index < argv.length; index += 1) {
29
+ const arg = argv[index];
30
+ if (arg === "--help" || arg === "-h") {
31
+ process.stderr.write("usage: interf-runtime [--host <host>] [--port <port>] [--app-owned] [--parent-pid <pid>]\n");
32
+ process.exit(0);
33
+ }
34
+ if (arg === "--host" || arg?.startsWith("--host=")) {
35
+ const parsed = optionValue(argv, index, "--host");
36
+ args.host = parsed.value;
37
+ index = parsed.nextIndex;
38
+ continue;
39
+ }
40
+ if (arg === "--port" || arg?.startsWith("--port=")) {
41
+ const parsed = optionValue(argv, index, "--port");
42
+ args.port = parseNumber(parsed.value, "--port");
43
+ index = parsed.nextIndex;
44
+ continue;
45
+ }
46
+ if (arg === "--app-owned") {
47
+ args.appOwned = true;
48
+ continue;
49
+ }
50
+ if (arg === "--parent-pid" || arg?.startsWith("--parent-pid=")) {
51
+ const parsed = optionValue(argv, index, "--parent-pid");
52
+ args.parentPid = parseNumber(parsed.value, "--parent-pid");
53
+ index = parsed.nextIndex;
54
+ continue;
55
+ }
56
+ throw new Error(`Unknown runtime option: ${arg ?? ""}`);
57
+ }
58
+ return args;
59
+ }
60
+ function parseStatusArgs(argv) {
61
+ const args = {};
62
+ for (let index = 0; index < argv.length; index += 1) {
63
+ const arg = argv[index];
64
+ if (arg === "--help" || arg === "-h") {
65
+ process.stderr.write("usage: interf-runtime status [--url <url>] [--token <token>] [--require-owner-kind <kind>] [--require-owner-pid <pid>]\n");
66
+ process.exit(0);
67
+ }
68
+ if (arg === "--url" || arg?.startsWith("--url=")) {
69
+ const parsed = optionValue(argv, index, "--url");
70
+ args.url = parsed.value;
71
+ index = parsed.nextIndex;
72
+ continue;
73
+ }
74
+ if (arg === "--token" || arg?.startsWith("--token=")) {
75
+ const parsed = optionValue(argv, index, "--token");
76
+ args.token = parsed.value;
77
+ index = parsed.nextIndex;
78
+ continue;
79
+ }
80
+ if (arg === "--require-owner-kind" || arg?.startsWith("--require-owner-kind=")) {
81
+ const parsed = optionValue(argv, index, "--require-owner-kind");
82
+ if (parsed.value !== "desktop-app" && parsed.value !== "headless") {
83
+ throw new Error("--require-owner-kind must be desktop-app or headless.");
84
+ }
85
+ args.requireOwnerKind = parsed.value;
86
+ index = parsed.nextIndex;
87
+ continue;
88
+ }
89
+ if (arg === "--require-owner-pid" || arg?.startsWith("--require-owner-pid=")) {
90
+ const parsed = optionValue(argv, index, "--require-owner-pid");
91
+ args.requireOwnerPid = parseNumber(parsed.value, "--require-owner-pid");
92
+ index = parsed.nextIndex;
93
+ continue;
94
+ }
95
+ throw new Error(`Unknown runtime status option: ${arg ?? ""}`);
96
+ }
97
+ return args;
98
+ }
99
+ try {
100
+ const [subcommand, ...rest] = process.argv.slice(2);
101
+ if (subcommand === "status") {
102
+ await runRuntimeStatus(parseStatusArgs(rest));
103
+ }
104
+ else {
105
+ await runRuntimeForeground(parseForegroundArgs(process.argv.slice(2)));
106
+ }
107
+ }
108
+ catch (error) {
109
+ process.stderr.write(`${error instanceof Error ? error.message : String(error)}\n`);
110
+ process.exit(1);
111
+ }