@interf/compiler 0.9.5 → 0.16.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 (365) hide show
  1. package/README.md +135 -91
  2. package/TRADEMARKS.md +2 -13
  3. package/agent-skills/interf-actions/SKILL.md +143 -38
  4. package/agent-skills/interf-actions/references/cli.md +134 -67
  5. package/builtin-methods/interf-default/README.md +3 -4
  6. package/builtin-methods/interf-default/compile/stages/shape/SKILL.md +2 -2
  7. package/builtin-methods/interf-default/compile/stages/summarize/SKILL.md +2 -1
  8. package/builtin-methods/interf-default/improve/SKILL.md +1 -1
  9. package/builtin-methods/interf-default/method.json +10 -4
  10. package/builtin-methods/interf-default/method.schema.json +0 -9
  11. package/builtin-methods/interf-default/use/query/SKILL.md +5 -5
  12. package/dist/cli/commands/agents.d.ts +2 -0
  13. package/dist/cli/commands/agents.js +213 -0
  14. package/dist/cli/commands/compile.d.ts +8 -25
  15. package/dist/cli/commands/compile.js +83 -359
  16. package/dist/cli/commands/doctor.js +2 -2
  17. package/dist/cli/commands/login.d.ts +7 -0
  18. package/dist/cli/commands/login.js +39 -0
  19. package/dist/cli/commands/logout.d.ts +2 -0
  20. package/dist/cli/commands/logout.js +16 -0
  21. package/dist/cli/commands/mcp.d.ts +42 -0
  22. package/dist/cli/commands/mcp.js +239 -0
  23. package/dist/cli/commands/method.d.ts +2 -0
  24. package/dist/cli/commands/method.js +113 -0
  25. package/dist/cli/commands/prep.d.ts +2 -0
  26. package/dist/cli/commands/prep.js +152 -0
  27. package/dist/cli/commands/reset.d.ts +8 -1
  28. package/dist/cli/commands/reset.js +47 -26
  29. package/dist/cli/commands/runs.d.ts +2 -0
  30. package/dist/cli/commands/runs.js +120 -0
  31. package/dist/cli/commands/status.d.ts +6 -1
  32. package/dist/cli/commands/status.js +68 -111
  33. package/dist/cli/commands/verify.d.ts +7 -1
  34. package/dist/cli/commands/verify.js +69 -85
  35. package/dist/cli/commands/web.d.ts +0 -9
  36. package/dist/cli/commands/web.js +201 -121
  37. package/dist/cli/commands/wizard.d.ts +9 -0
  38. package/dist/cli/commands/wizard.js +689 -0
  39. package/dist/cli/index.d.ts +10 -7
  40. package/dist/cli/index.js +19 -12
  41. package/dist/compiler-ui/404.html +1 -1
  42. package/dist/compiler-ui/__next.__PAGE__.txt +2 -2
  43. package/dist/compiler-ui/__next._full.txt +3 -3
  44. package/dist/compiler-ui/__next._head.txt +1 -1
  45. package/dist/compiler-ui/__next._index.txt +2 -2
  46. package/dist/compiler-ui/__next._tree.txt +2 -2
  47. package/dist/compiler-ui/_next/static/chunks/{177mvn4rse235.js → 0jipmpez3_ehh.js} +16 -16
  48. package/dist/compiler-ui/_next/static/chunks/{18a8f2jkv3z.c.css → 13awzu4tooflw.css} +1 -1
  49. package/dist/compiler-ui/_not-found/__next._full.txt +2 -2
  50. package/dist/compiler-ui/_not-found/__next._head.txt +1 -1
  51. package/dist/compiler-ui/_not-found/__next._index.txt +2 -2
  52. package/dist/compiler-ui/_not-found/__next._not-found.__PAGE__.txt +1 -1
  53. package/dist/compiler-ui/_not-found/__next._not-found.txt +1 -1
  54. package/dist/compiler-ui/_not-found/__next._tree.txt +2 -2
  55. package/dist/compiler-ui/_not-found.html +1 -1
  56. package/dist/compiler-ui/_not-found.txt +2 -2
  57. package/dist/compiler-ui/index.html +1 -1
  58. package/dist/compiler-ui/index.txt +3 -3
  59. package/dist/index.d.ts +2 -2
  60. package/dist/index.js +2 -2
  61. package/dist/packages/contracts/index.d.ts +2 -1
  62. package/dist/packages/contracts/index.js +1 -0
  63. package/dist/packages/contracts/lib/preparation-paths.d.ts +117 -0
  64. package/dist/packages/contracts/lib/preparation-paths.js +177 -0
  65. package/dist/packages/contracts/lib/schema.d.ts +187 -13
  66. package/dist/packages/contracts/lib/schema.js +148 -3
  67. package/dist/packages/contracts/utils/filesystem.d.ts +9 -0
  68. package/dist/packages/contracts/utils/filesystem.js +142 -0
  69. package/dist/packages/{local-service → engine}/action-definitions.d.ts +14 -14
  70. package/dist/packages/{local-service → engine}/action-definitions.js +35 -29
  71. package/dist/packages/{local-service → engine}/action-planner.d.ts +1 -1
  72. package/dist/packages/{local-service → engine}/action-planner.js +3 -2
  73. package/dist/packages/{agents → engine/agents}/index.d.ts +3 -0
  74. package/dist/packages/{agents → engine/agents}/index.js +3 -0
  75. package/dist/packages/{agents → engine/agents}/lib/compiled-bootstrap.js +2 -2
  76. package/dist/packages/engine/agents/lib/detection.d.ts +13 -0
  77. package/dist/packages/{agents → engine/agents}/lib/detection.js +11 -0
  78. package/dist/packages/{agents → engine/agents}/lib/executors.d.ts +2 -2
  79. package/dist/packages/{agents → engine/agents}/lib/shells.d.ts +5 -5
  80. package/dist/packages/{agents → engine/agents}/lib/shells.js +117 -58
  81. package/dist/packages/{agents → engine/agents}/lib/user-config.d.ts +4 -2
  82. package/dist/packages/engine/agents/lib/user-config.js +24 -0
  83. package/dist/packages/engine/agents/registry.d.ts +91 -0
  84. package/dist/packages/engine/agents/registry.js +321 -0
  85. package/dist/packages/engine/agents/role-executors.d.ts +35 -0
  86. package/dist/packages/engine/agents/role-executors.js +88 -0
  87. package/dist/packages/engine/agents/role-router.d.ts +66 -0
  88. package/dist/packages/engine/agents/role-router.js +73 -0
  89. package/dist/packages/{local-service → engine}/client.d.ts +59 -60
  90. package/dist/packages/{local-service → engine}/client.js +137 -145
  91. package/dist/packages/{compiler → engine/compile}/artifact-counts.js +1 -1
  92. package/dist/packages/{compiler → engine/compile}/compiled-paths.d.ts +9 -2
  93. package/dist/packages/{compiler → engine/compile}/compiled-paths.js +30 -15
  94. package/dist/packages/{compiler → engine/compile}/compiled-pipeline.d.ts +12 -1
  95. package/dist/packages/{compiler → engine/compile}/compiled-pipeline.js +39 -9
  96. package/dist/packages/{compiler → engine/compile}/compiled-schema.d.ts +2 -2
  97. package/dist/packages/{compiler → engine/compile}/compiled-schema.js +4 -4
  98. package/dist/packages/{compiler → engine/compile}/compiled-stage-plan.d.ts +1 -1
  99. package/dist/packages/{compiler → engine/compile}/compiled-stage-plan.js +8 -4
  100. package/dist/packages/{compiler → engine/compile}/compiled-stage-runner.d.ts +1 -1
  101. package/dist/packages/{compiler → engine/compile}/compiled-stage-runner.js +3 -3
  102. package/dist/packages/{compiler → engine/compile}/compiled-target.d.ts +3 -3
  103. package/dist/packages/{compiler → engine/compile}/compiled-target.js +3 -3
  104. package/dist/packages/{compiler → engine/compile}/discovery.js +1 -1
  105. package/dist/packages/{compiler → engine/compile}/index.d.ts +1 -0
  106. package/dist/packages/{compiler → engine/compile}/index.js +1 -0
  107. package/dist/packages/{compiler → engine/compile}/lib/schema.d.ts +26 -31
  108. package/dist/packages/{compiler → engine/compile}/lib/schema.js +2 -13
  109. package/dist/packages/engine/compile/method-runs.d.ts +14 -0
  110. package/dist/packages/{compiler → engine/compile}/method-runs.js +5 -6
  111. package/dist/packages/{compiler → engine/compile}/reset.js +3 -1
  112. package/dist/packages/{compiler → engine/compile}/runtime-acceptance.js +17 -14
  113. package/dist/packages/{compiler → engine/compile}/runtime-contracts.js +0 -3
  114. package/dist/packages/{compiler → engine/compile}/runtime-prompt.js +1 -1
  115. package/dist/packages/{compiler → engine/compile}/runtime-reconcile.d.ts +1 -1
  116. package/dist/packages/{compiler → engine/compile}/runtime-reconcile.js +12 -10
  117. package/dist/packages/{compiler → engine/compile}/runtime-runs.d.ts +1 -2
  118. package/dist/packages/{compiler → engine/compile}/runtime-runs.js +3 -43
  119. package/dist/packages/{compiler → engine/compile}/runtime-types.d.ts +1 -5
  120. package/dist/packages/{compiler → engine/compile}/runtime.d.ts +2 -2
  121. package/dist/packages/{compiler → engine/compile}/runtime.js +1 -1
  122. package/dist/packages/engine/compile/source-files.d.ts +46 -0
  123. package/dist/packages/engine/compile/source-files.js +149 -0
  124. package/dist/packages/engine/compile/state-artifacts.d.ts +9 -0
  125. package/dist/packages/{compiler → engine/compile}/state-artifacts.js +4 -3
  126. package/dist/packages/{compiler → engine/compile}/state-health.js +2 -2
  127. package/dist/packages/{compiler → engine/compile}/state-io.d.ts +3 -2
  128. package/dist/packages/{compiler → engine/compile}/state-io.js +13 -7
  129. package/dist/packages/{compiler → engine/compile}/state-paths.d.ts +2 -1
  130. package/dist/packages/engine/compile/state-paths.js +16 -0
  131. package/dist/packages/engine/compile/state-view.d.ts +5 -0
  132. package/dist/packages/{compiler → engine/compile}/state-view.js +20 -30
  133. package/dist/packages/engine/compile/state.d.ts +7 -0
  134. package/dist/packages/{compiler → engine/compile}/state.js +3 -3
  135. package/dist/packages/{compiler → engine/compile}/validate-compiled.js +2 -2
  136. package/dist/packages/{compiler → engine/compile}/validate.d.ts +1 -1
  137. package/dist/packages/{compiler → engine/compile}/validate.js +3 -3
  138. package/dist/packages/engine/connection-config.d.ts +38 -0
  139. package/dist/packages/engine/connection-config.js +75 -0
  140. package/dist/packages/{execution → engine/execution}/lib/schema.d.ts +52 -72
  141. package/dist/packages/{execution → engine/execution}/lib/schema.js +3 -3
  142. package/dist/packages/engine/index.d.ts +22 -0
  143. package/dist/packages/engine/index.js +15 -0
  144. package/dist/packages/engine/instance-paths.d.ts +100 -0
  145. package/dist/packages/engine/instance-paths.js +165 -0
  146. package/dist/packages/{local-service → engine}/lib/schema.d.ts +392 -2408
  147. package/dist/packages/{local-service → engine}/lib/schema.js +164 -76
  148. package/dist/packages/{local-service → engine}/native-run-handlers.d.ts +7 -5
  149. package/dist/packages/{local-service → engine}/native-run-handlers.js +71 -27
  150. package/dist/packages/engine/preparation-store.d.ts +104 -0
  151. package/dist/packages/engine/preparation-store.js +194 -0
  152. package/dist/packages/{local-service → engine}/readiness-check-draft.d.ts +2 -2
  153. package/dist/packages/engine/routes.d.ts +78 -0
  154. package/dist/packages/engine/routes.js +92 -0
  155. package/dist/packages/{local-service → engine}/run-observability.d.ts +3 -3
  156. package/dist/packages/{local-service → engine}/run-observability.js +25 -24
  157. package/dist/packages/engine/runtime-caches.d.ts +76 -0
  158. package/dist/packages/engine/runtime-caches.js +191 -0
  159. package/dist/packages/engine/runtime-event-applier.d.ts +12 -0
  160. package/dist/packages/engine/runtime-event-applier.js +177 -0
  161. package/dist/packages/engine/runtime-persistence.d.ts +47 -0
  162. package/dist/packages/engine/runtime-persistence.js +137 -0
  163. package/dist/packages/engine/runtime-proposal-helpers.d.ts +35 -0
  164. package/dist/packages/engine/runtime-proposal-helpers.js +251 -0
  165. package/dist/packages/engine/runtime-resource-builders.d.ts +52 -0
  166. package/dist/packages/engine/runtime-resource-builders.js +149 -0
  167. package/dist/packages/engine/runtime.d.ts +318 -0
  168. package/dist/packages/{local-service → engine}/runtime.js +835 -1011
  169. package/dist/packages/{local-service → engine}/server.d.ts +15 -0
  170. package/dist/packages/engine/server.js +1257 -0
  171. package/dist/packages/engine/service-registry.d.ts +47 -0
  172. package/dist/packages/engine/service-registry.js +137 -0
  173. package/dist/packages/{testing → engine/verify}/lib/schema.d.ts +11 -11
  174. package/dist/packages/{testing → engine/verify}/lib/schema.js +3 -3
  175. package/dist/packages/{testing → engine/verify}/readiness-check-run.d.ts +9 -16
  176. package/dist/packages/{testing → engine/verify}/readiness-check-run.js +38 -94
  177. package/dist/packages/{testing → engine/verify}/test-execution.js +6 -6
  178. package/dist/packages/{testing → engine/verify}/test-paths.js +5 -4
  179. package/dist/packages/{testing → engine/verify}/test-sandbox.d.ts +0 -1
  180. package/dist/packages/{testing → engine/verify}/test-sandbox.js +17 -33
  181. package/dist/packages/{testing → engine/verify}/test-specs.js +1 -1
  182. package/dist/packages/{testing → engine/verify}/test-targets.d.ts +1 -1
  183. package/dist/packages/{testing → engine/verify}/test-targets.js +9 -9
  184. package/dist/packages/{testing → engine/verify}/test.d.ts +1 -1
  185. package/dist/packages/{testing → engine/verify}/test.js +1 -1
  186. package/dist/packages/{method-authoring → methods/authoring}/method-authoring.d.ts +12 -4
  187. package/dist/packages/{method-authoring → methods/authoring}/method-authoring.js +70 -7
  188. package/dist/packages/{method-authoring → methods/authoring}/method-edit-session.d.ts +2 -2
  189. package/dist/packages/{method-authoring → methods/authoring}/method-improvement.d.ts +4 -4
  190. package/dist/packages/{method-authoring → methods/authoring}/method-improvement.js +16 -10
  191. package/dist/packages/{method-package → methods/package}/builtin-compiled-method.d.ts +4 -5
  192. package/dist/packages/{method-package → methods/package}/builtin-compiled-method.js +10 -16
  193. package/dist/packages/{method-package → methods/package}/context-interface.d.ts +5 -41
  194. package/dist/packages/{method-package → methods/package}/context-interface.js +3 -25
  195. package/dist/packages/{method-package → methods/package}/interf-method-package.d.ts +4 -4
  196. package/dist/packages/{method-package → methods/package}/interf-method-package.js +24 -35
  197. package/dist/packages/{method-package → methods/package}/lib/package-root.js +2 -2
  198. package/dist/packages/{method-package → methods/package}/local-methods.d.ts +18 -8
  199. package/dist/packages/{method-package → methods/package}/local-methods.js +64 -45
  200. package/dist/packages/{method-package → methods/package}/method-definitions.d.ts +16 -36
  201. package/dist/packages/{method-package → methods/package}/method-definitions.js +53 -40
  202. package/dist/packages/{method-package → methods/package}/method-helpers.d.ts +2 -14
  203. package/dist/packages/{method-package → methods/package}/method-helpers.js +12 -46
  204. package/dist/packages/{method-package → methods/package}/method-review-paths.d.ts +1 -1
  205. package/dist/packages/{method-package → methods/package}/method-review-paths.js +1 -1
  206. package/dist/packages/{method-package → methods/package}/method-stage-runner.d.ts +4 -9
  207. package/dist/packages/{method-package → methods/package}/method-stage-runner.js +3 -31
  208. package/dist/packages/methods/package/user-methods.d.ts +17 -0
  209. package/dist/packages/methods/package/user-methods.js +77 -0
  210. package/dist/packages/{project-model → project}/index.d.ts +0 -1
  211. package/dist/packages/{project-model → project}/index.js +0 -1
  212. package/dist/packages/{project-model → project}/interf-bootstrap.d.ts +1 -1
  213. package/dist/packages/{project-model → project}/interf-bootstrap.js +1 -1
  214. package/dist/packages/{project-model → project}/interf-detect.d.ts +8 -3
  215. package/dist/packages/{project-model → project}/interf-detect.js +38 -38
  216. package/dist/packages/project/interf-scaffold.d.ts +3 -0
  217. package/dist/packages/{project-model → project}/interf-scaffold.js +30 -39
  218. package/dist/packages/{project-model → project}/lib/schema.d.ts +2 -2
  219. package/dist/packages/{project-model → project}/lib/schema.js +39 -2
  220. package/dist/packages/project/preparation-entries.d.ts +11 -0
  221. package/dist/packages/{project-model → project}/preparation-entries.js +14 -14
  222. package/dist/packages/{project-model → project}/source-config.d.ts +12 -12
  223. package/dist/packages/{project-model → project}/source-config.js +81 -53
  224. package/dist/packages/{project-model → project}/source-folders.d.ts +5 -5
  225. package/dist/packages/{project-model → project}/source-folders.js +16 -16
  226. package/package.json +8 -8
  227. package/CHANGELOG.md +0 -93
  228. package/LICENSE +0 -183
  229. package/dist/cli/commands/action-input-cli.d.ts +0 -25
  230. package/dist/cli/commands/action-input-cli.js +0 -73
  231. package/dist/cli/commands/control-path.d.ts +0 -11
  232. package/dist/cli/commands/control-path.js +0 -72
  233. package/dist/cli/commands/create-method-wizard.d.ts +0 -64
  234. package/dist/cli/commands/create-method-wizard.js +0 -434
  235. package/dist/cli/commands/create.d.ts +0 -6
  236. package/dist/cli/commands/create.js +0 -183
  237. package/dist/cli/commands/default.d.ts +0 -2
  238. package/dist/cli/commands/default.js +0 -39
  239. package/dist/cli/commands/executor-flow.d.ts +0 -29
  240. package/dist/cli/commands/executor-flow.js +0 -163
  241. package/dist/cli/commands/init.d.ts +0 -26
  242. package/dist/cli/commands/init.js +0 -771
  243. package/dist/cli/commands/list.d.ts +0 -2
  244. package/dist/cli/commands/list.js +0 -30
  245. package/dist/cli/commands/preparation-action.d.ts +0 -8
  246. package/dist/cli/commands/preparation-action.js +0 -29
  247. package/dist/cli/commands/preparation-picker.d.ts +0 -5
  248. package/dist/cli/commands/preparation-picker.js +0 -36
  249. package/dist/cli/commands/preparation-selection.d.ts +0 -6
  250. package/dist/cli/commands/preparation-selection.js +0 -11
  251. package/dist/cli/commands/service-action-flow.d.ts +0 -9
  252. package/dist/cli/commands/service-action-flow.js +0 -19
  253. package/dist/cli/commands/source-config-wizard.d.ts +0 -51
  254. package/dist/cli/commands/source-config-wizard.js +0 -670
  255. package/dist/cli/commands/test.d.ts +0 -17
  256. package/dist/cli/commands/test.js +0 -188
  257. package/dist/packages/agents/lib/detection.d.ts +0 -7
  258. package/dist/packages/agents/lib/user-config.js +0 -16
  259. package/dist/packages/compiler/method-runs.d.ts +0 -15
  260. package/dist/packages/compiler/raw-snapshot.d.ts +0 -49
  261. package/dist/packages/compiler/raw-snapshot.js +0 -101
  262. package/dist/packages/compiler/state-artifacts.d.ts +0 -8
  263. package/dist/packages/compiler/state-paths.js +0 -13
  264. package/dist/packages/compiler/state-view.d.ts +0 -4
  265. package/dist/packages/compiler/state.d.ts +0 -7
  266. package/dist/packages/local-service/index.d.ts +0 -18
  267. package/dist/packages/local-service/index.js +0 -13
  268. package/dist/packages/local-service/routes.d.ts +0 -32
  269. package/dist/packages/local-service/routes.js +0 -37
  270. package/dist/packages/local-service/runtime.d.ts +0 -133
  271. package/dist/packages/local-service/server.js +0 -627
  272. package/dist/packages/method-package/index.d.ts +0 -11
  273. package/dist/packages/method-package/index.js +0 -11
  274. package/dist/packages/method-package/method-stage-policy.d.ts +0 -5
  275. package/dist/packages/method-package/method-stage-policy.js +0 -31
  276. package/dist/packages/project-model/interf-scaffold.d.ts +0 -3
  277. package/dist/packages/project-model/preparation-entries.d.ts +0 -11
  278. package/dist/packages/project-model/project-paths.d.ts +0 -12
  279. package/dist/packages/project-model/project-paths.js +0 -33
  280. package/dist/packages/shared/filesystem.d.ts +0 -2
  281. package/dist/packages/shared/filesystem.js +0 -55
  282. /package/dist/compiler-ui/_next/static/{84FaeF3EzBF9kKTMjSEVN → a3UiUF0DiMEbfWy_0gihg}/_buildManifest.js +0 -0
  283. /package/dist/compiler-ui/_next/static/{84FaeF3EzBF9kKTMjSEVN → a3UiUF0DiMEbfWy_0gihg}/_clientMiddlewareManifest.js +0 -0
  284. /package/dist/compiler-ui/_next/static/{84FaeF3EzBF9kKTMjSEVN → a3UiUF0DiMEbfWy_0gihg}/_ssgManifest.js +0 -0
  285. /package/dist/packages/{shared → contracts/utils}/file-types.d.ts +0 -0
  286. /package/dist/packages/{shared → contracts/utils}/file-types.js +0 -0
  287. /package/dist/packages/{shared → contracts/utils}/logger.d.ts +0 -0
  288. /package/dist/packages/{shared → contracts/utils}/logger.js +0 -0
  289. /package/dist/packages/{shared → contracts/utils}/naming.d.ts +0 -0
  290. /package/dist/packages/{shared → contracts/utils}/naming.js +0 -0
  291. /package/dist/packages/{shared → contracts/utils}/parse.d.ts +0 -0
  292. /package/dist/packages/{shared → contracts/utils}/parse.js +0 -0
  293. /package/dist/packages/{shared → contracts/utils}/path-guards.d.ts +0 -0
  294. /package/dist/packages/{shared → contracts/utils}/path-guards.js +0 -0
  295. /package/dist/packages/{local-service → engine}/action-values.d.ts +0 -0
  296. /package/dist/packages/{local-service → engine}/action-values.js +0 -0
  297. /package/dist/packages/{agents → engine/agents}/lib/agents.d.ts +0 -0
  298. /package/dist/packages/{agents → engine/agents}/lib/agents.js +0 -0
  299. /package/dist/packages/{agents → engine/agents}/lib/args.d.ts +0 -0
  300. /package/dist/packages/{agents → engine/agents}/lib/args.js +0 -0
  301. /package/dist/packages/{agents → engine/agents}/lib/chart-guidance.d.ts +0 -0
  302. /package/dist/packages/{agents → engine/agents}/lib/chart-guidance.js +0 -0
  303. /package/dist/packages/{agents → engine/agents}/lib/compiled-bootstrap.d.ts +0 -0
  304. /package/dist/packages/{agents → engine/agents}/lib/constants.d.ts +0 -0
  305. /package/dist/packages/{agents → engine/agents}/lib/constants.js +0 -0
  306. /package/dist/packages/{agents → engine/agents}/lib/execution-profile.d.ts +0 -0
  307. /package/dist/packages/{agents → engine/agents}/lib/execution-profile.js +0 -0
  308. /package/dist/packages/{agents → engine/agents}/lib/execution.d.ts +0 -0
  309. /package/dist/packages/{agents → engine/agents}/lib/execution.js +0 -0
  310. /package/dist/packages/{agents → engine/agents}/lib/executors.js +0 -0
  311. /package/dist/packages/{agents → engine/agents}/lib/logs.d.ts +0 -0
  312. /package/dist/packages/{agents → engine/agents}/lib/logs.js +0 -0
  313. /package/dist/packages/{agents → engine/agents}/lib/preflight.d.ts +0 -0
  314. /package/dist/packages/{agents → engine/agents}/lib/preflight.js +0 -0
  315. /package/dist/packages/{agents → engine/agents}/lib/render.d.ts +0 -0
  316. /package/dist/packages/{agents → engine/agents}/lib/render.js +0 -0
  317. /package/dist/packages/{agents → engine/agents}/lib/schema.d.ts +0 -0
  318. /package/dist/packages/{agents → engine/agents}/lib/schema.js +0 -0
  319. /package/dist/packages/{agents → engine/agents}/lib/status.d.ts +0 -0
  320. /package/dist/packages/{agents → engine/agents}/lib/status.js +0 -0
  321. /package/dist/packages/{agents → engine/agents}/lib/types.d.ts +0 -0
  322. /package/dist/packages/{agents → engine/agents}/lib/types.js +0 -0
  323. /package/dist/packages/{compiler → engine/compile}/artifact-counts.d.ts +0 -0
  324. /package/dist/packages/{compiler → engine/compile}/compiled-compile.d.ts +0 -0
  325. /package/dist/packages/{compiler → engine/compile}/compiled-compile.js +0 -0
  326. /package/dist/packages/{compiler → engine/compile}/discovery.d.ts +0 -0
  327. /package/dist/packages/{compiler → engine/compile}/method-primitives.d.ts +0 -0
  328. /package/dist/packages/{compiler → engine/compile}/method-primitives.js +0 -0
  329. /package/dist/packages/{compiler → engine/compile}/reset.d.ts +0 -0
  330. /package/dist/packages/{compiler → engine/compile}/runtime-acceptance.d.ts +0 -0
  331. /package/dist/packages/{compiler → engine/compile}/runtime-contracts.d.ts +0 -0
  332. /package/dist/packages/{compiler → engine/compile}/runtime-inventory.d.ts +0 -0
  333. /package/dist/packages/{compiler → engine/compile}/runtime-inventory.js +0 -0
  334. /package/dist/packages/{compiler → engine/compile}/runtime-paths.d.ts +0 -0
  335. /package/dist/packages/{compiler → engine/compile}/runtime-paths.js +0 -0
  336. /package/dist/packages/{compiler → engine/compile}/runtime-prompt.d.ts +0 -0
  337. /package/dist/packages/{compiler → engine/compile}/runtime-types.js +0 -0
  338. /package/dist/packages/{compiler → engine/compile}/state-health.d.ts +0 -0
  339. /package/dist/packages/{compiler → engine/compile}/validate-compiled.d.ts +0 -0
  340. /package/dist/packages/{compiler → engine/compile}/validate-helpers.d.ts +0 -0
  341. /package/dist/packages/{compiler → engine/compile}/validate-helpers.js +0 -0
  342. /package/dist/packages/{execution → engine/execution}/adapters.d.ts +0 -0
  343. /package/dist/packages/{execution → engine/execution}/adapters.js +0 -0
  344. /package/dist/packages/{execution → engine/execution}/events.d.ts +0 -0
  345. /package/dist/packages/{execution → engine/execution}/events.js +0 -0
  346. /package/dist/packages/{execution → engine/execution}/index.d.ts +0 -0
  347. /package/dist/packages/{execution → engine/execution}/index.js +0 -0
  348. /package/dist/packages/{local-service → engine}/readiness-check-draft.js +0 -0
  349. /package/dist/packages/{testing → engine/verify}/index.d.ts +0 -0
  350. /package/dist/packages/{testing → engine/verify}/index.js +0 -0
  351. /package/dist/packages/{testing → engine/verify}/test-execution.d.ts +0 -0
  352. /package/dist/packages/{testing → engine/verify}/test-paths.d.ts +0 -0
  353. /package/dist/packages/{testing → engine/verify}/test-profile-presets.d.ts +0 -0
  354. /package/dist/packages/{testing → engine/verify}/test-profile-presets.js +0 -0
  355. /package/dist/packages/{testing → engine/verify}/test-specs.d.ts +0 -0
  356. /package/dist/packages/{testing → engine/verify}/test-types.d.ts +0 -0
  357. /package/dist/packages/{testing → engine/verify}/test-types.js +0 -0
  358. /package/dist/packages/{method-authoring → methods/authoring}/index.d.ts +0 -0
  359. /package/dist/packages/{method-authoring → methods/authoring}/index.js +0 -0
  360. /package/dist/packages/{method-authoring → methods/authoring}/lib/method-edit-utils.d.ts +0 -0
  361. /package/dist/packages/{method-authoring → methods/authoring}/lib/method-edit-utils.js +0 -0
  362. /package/dist/packages/{method-authoring → methods/authoring}/method-edit-session.js +0 -0
  363. /package/dist/packages/{method-package → methods/package}/lib/package-root.d.ts +0 -0
  364. /package/dist/packages/{project-model → project}/interf.d.ts +0 -0
  365. /package/dist/packages/{project-model → project}/interf.js +0 -0
@@ -1,14 +1,14 @@
1
1
  import { cpSync, copyFileSync, existsSync, lstatSync, mkdirSync, mkdtempSync, readdirSync, readFileSync, realpathSync, renameSync, rmSync, statSync, writeFileSync, symlinkSync, } from "node:fs";
2
2
  import { tmpdir } from "node:os";
3
- import { basename, dirname, join, relative } from "node:path";
3
+ import { basename, dirname, join, relative, sep as pathSep } from "node:path";
4
4
  import { CHART_APPROXIMATION_NOTES } from "./chart-guidance.js";
5
- import { projectRawSnapshot } from "../../compiler/raw-snapshot.js";
6
- import { METHOD_PACKAGE_DIR } from "../../project-model/interf-detect.js";
7
- import { CONTEXT_INTERFACE_FILE as METHOD_SCHEMA_FILE, contextInterfaceZoneAbsolutePath as compiledZoneAbsolutePath, readContextInterface as readCompiledSchemaFile, resolveContextInterfacePath as resolveMethodSchemaPath, } from "../../method-package/context-interface.js";
8
- import { stageExecutionShellsRoot, methodImprovementLoopRoot, methodPackagePathForCompiled, compiledInterfConfigPath, compiledRuntimeRoot, } from "../../compiler/compiled-paths.js";
9
- import { ensureCompiledZoneTargets } from "../../compiler/compiled-schema.js";
10
- import { listFilesRecursive } from "../../shared/filesystem.js";
11
- import { resolveMethodImprovementReviewSourcePaths } from "../../method-package/method-review-paths.js";
5
+ import { buildCompiledSourceFiles } from "../../compile/source-files.js";
6
+ import { METHOD_PACKAGE_DIR } from "../../../project/interf-detect.js";
7
+ import { CONTEXT_INTERFACE_FILE as METHOD_SCHEMA_FILE, contextInterfaceZoneAbsolutePath as compiledZoneAbsolutePath, readContextInterface as readCompiledSchemaFile, resolveContextInterfacePath as resolveMethodSchemaPath, } from "../../../methods/package/context-interface.js";
8
+ import { stageExecutionShellsRoot, methodImprovementLoopRoot, methodPackagePathForCompiled, compiledInterfConfigPath, compiledRuntimeRoot, compiledRuntimeSourceSnapshotPath, compiledRuntimeStageInputsPath, } from "../../compile/compiled-paths.js";
9
+ import { ensureCompiledZoneTargets } from "../../compile/compiled-schema.js";
10
+ import { listFilesRecursive } from "../../../contracts/utils/filesystem.js";
11
+ import { resolveMethodImprovementReviewSourcePaths } from "../../../methods/package/method-review-paths.js";
12
12
  const LOCAL_SKILL_ROOTS = [
13
13
  ".claude/skills",
14
14
  ".codex/skills",
@@ -54,12 +54,12 @@ export function renderCompiledAgents(compiledPath, name, methodId, about, option
54
54
  "",
55
55
  "1. Use the local native `interf-query` skill that Interf generated for this portable context.",
56
56
  "2. Let the Method docs and declared output zones guide retrieval instead of assuming a fixed note layout.",
57
- "3. Use `raw/` when you need direct quotes, exact chart values, table lookups, or verification.",
57
+ "3. Use `.interf/runtime/source-snapshot.json` when you need to inspect the source references behind the output.",
58
58
  "",
59
59
  "## How this portable context works",
60
60
  "",
61
61
  "- The Method package defines the context interface this portable context implements on disk.",
62
- "- `.interf/interf.json` points to the local `raw/` snapshot via `source.path` and back to the Interf Workspace via `source.control_path`.",
62
+ "- `.interf/interf.json` records the selected source binding and back-reference to the Interf Workspace.",
63
63
  `- Method seed: \`${methodOriginSelected}\`.`,
64
64
  ...(methodLocalDraft
65
65
  ? ["- This portable context now carries a local Method draft improved from that seed. Recompiling this portable context reuses the local `.interf/method/` package."]
@@ -71,36 +71,34 @@ export function renderCompiledAgents(compiledPath, name, methodId, about, option
71
71
  "- `.interf/method/use/query/` is the editable source for the generated native query shell.",
72
72
  "- `.interf/method/compile/stages/` defines stage-specific docs that Interf projects into native execution shells for automated runs.",
73
73
  "- Native local query skills are generated under local agent skill directories such as `.claude/skills/` and `.codex/skills/`.",
74
- "- `raw/` contains the local raw snapshot used for evidence and verification.",
74
+ "- `.interf/runtime/source-snapshot.json` records the source files assigned to the latest runtime snapshot.",
75
75
  `- Method zones are declared in \`.interf/method/${METHOD_SCHEMA_FILE}\`.`,
76
76
  ...zoneLines,
77
77
  "- `.interf/runtime/` holds runtime artifacts written by Interf.",
78
78
  "- `.interf/tests/` mirrors the latest saved readiness-check run and keeps detailed target runs plus preserved sandboxes.",
79
- "- `.interf/tests/targets/` holds detailed raw and compiled target runs plus preserved test sandboxes.",
79
+ "- `.interf/tests/targets/` holds detailed source-files and compiled target runs plus preserved test sandboxes.",
80
80
  "",
81
81
  "## Manual query rules",
82
82
  "",
83
- "- Prefer the Method-declared context outputs before `raw/`.",
83
+ "- Prefer the Method-declared context outputs before source re-checks.",
84
84
  "- Use the generated native `interf-query` skill for manual querying. The editable source lives at `.interf/method/use/query/SKILL.md`.",
85
85
  "- Treat `.interf/` as method/runtime metadata, not answer evidence, unless explicitly asked to inspect Method or test history.",
86
- "- Use `raw/` for quotes, verification, ambiguity, or evidence the portable context does not expose well.",
87
- "- If exact chart, table, or image-derived evidence matters, inspect the raw source and say whether the answer was text-derived, table-derived, or chart-derived.",
86
+ "- Use `.interf/runtime/source-snapshot.json` to find source references for quotes, verification, ambiguity, or evidence the portable context does not expose well.",
87
+ "- If exact chart, table, or image-derived evidence matters, inspect the source reference and say whether the answer was text-derived, table-derived, or chart-derived.",
88
88
  "",
89
89
  "## Commands",
90
90
  "",
91
91
  "```",
92
92
  "interf compile build this portable context",
93
- "interf test run checks against this portable context",
94
- "interf verify stage <id> verify one Method stage",
95
- "interf verify portable-context verify the full portable context output",
93
+ "interf verify run checks against this portable context",
96
94
  "interf status show deterministic health",
97
95
  "```",
98
96
  "",
99
97
  "## Rules",
100
98
  "",
101
- "- Do not modify files under `raw/`.",
99
+ "- Do not modify source files while answering from this portable context.",
102
100
  "- Treat prepared notes as working context, not final truth.",
103
- "- When confidence is low, verify against `raw/` before answering strongly.",
101
+ "- When confidence is low, verify against the source references before answering strongly.",
104
102
  "",
105
103
  ].join("\n");
106
104
  }
@@ -112,38 +110,38 @@ export function renderCompiledQuerySkill() {
112
110
  "",
113
111
  "Default loop:",
114
112
  "1. Read `.interf/method/README.md` and this file first.",
115
- `2. Use the Method zones declared in \`.interf/method/${METHOD_SCHEMA_FILE}\` before consulting \`raw/\`.`,
116
- "3. Use `raw/` for direct quotes, verification, exact lookups, and cases where the portable context is missing the needed evidence or is ambiguous.",
113
+ `2. Use the Method zones declared in \`.interf/method/${METHOD_SCHEMA_FILE}\` before consulting source references.`,
114
+ "3. Use `.interf/runtime/source-snapshot.json` for direct quotes, verification, exact lookups, and cases where the portable context is missing the needed evidence or is ambiguous.",
117
115
  "",
118
116
  "Answering rule:",
119
- "- do not modify files under `raw/`",
117
+ "- do not modify source files while answering",
120
118
  "- treat the Method as the portable-context contract and use its zones as the working retrieval surface",
121
- "- say explicitly when an answer depends on approximation, bounded inference, or a raw-source re-check",
122
- "- use `raw/` to confirm source page, metric family, provenance, or exact wording when the portable context is missing the needed evidence or is ambiguous",
119
+ "- say explicitly when an answer depends on approximation, bounded inference, or a source re-check",
120
+ "- use source references to confirm source page, metric family, provenance, or exact wording when the portable context is missing the needed evidence or is ambiguous",
123
121
  "- do not invent navigation or note structure beyond what this Method declares",
124
- "- when the portable context is insufficient, verify in `raw/` and then answer",
122
+ "- when the portable context is insufficient, verify against source references and then answer",
125
123
  "",
126
124
  "You can edit this file to bias manual question-answering behavior for this portable context.",
127
125
  "",
128
126
  ].join("\n");
129
127
  }
130
- function renderRawTestAgents() {
128
+ function renderSourceFilesTestAgents() {
131
129
  const chartNotes = CHART_APPROXIMATION_NOTES.map((note) => `- ${note}`);
132
130
  return [
133
- "# Raw Test Shell",
131
+ "# Source Files Test Shell",
134
132
  "",
135
- "This is an isolated raw-files test shell generated by Interf.",
133
+ "This is an isolated source-files test shell generated by Interf.",
136
134
  "There is no portable context in this shell.",
137
135
  "",
138
136
  "## How to use this shell",
139
137
  "",
140
138
  "1. Read this file first.",
141
139
  "2. Use the local native `interf-query` skill available in this shell.",
142
- "3. Read only from `raw/`.",
140
+ "3. Read `runtime/source-files.json` and use only the listed source references.",
143
141
  "",
144
142
  "## Rules",
145
143
  "",
146
- "- Answer only from the files under `raw/`.",
144
+ "- Answer only from source files listed in `runtime/source-files.json`.",
147
145
  "- There is no portable context here, so do not assume any portable-context output zones exist.",
148
146
  "- Do not treat hidden runtime files or test artifacts as evidence.",
149
147
  ...chartNotes,
@@ -151,23 +149,23 @@ function renderRawTestAgents() {
151
149
  "",
152
150
  ].join("\n");
153
151
  }
154
- function renderRawTestQuerySkill() {
152
+ function renderSourceFilesTestQuerySkill() {
155
153
  const chartNotes = CHART_APPROXIMATION_NOTES.map((note, index) => `${index + 3}. ${note}`);
156
154
  return [
157
155
  "---",
158
156
  "name: interf-query",
159
157
  "description: >",
160
- " Native local query skill for an Interf raw test shell. Use it only",
161
- " to answer source-files readiness checks directly from `raw/`.",
158
+ " Native local query skill for an Interf source-files test shell. Use it only",
159
+ " to answer source-files readiness checks from `runtime/source-files.json` references.",
162
160
  "---",
163
161
  "",
164
- "# Interf Raw Test Query",
162
+ "# Interf Source Files Test Query",
165
163
  "",
166
- "This is the native local query skill for an isolated raw-files test shell.",
164
+ "This is the native local query skill for an isolated source-files test shell.",
167
165
  "",
168
166
  "Loop:",
169
- "1. Read `raw/` directly.",
170
- "2. Verify exact claims against the raw files before answering strongly.",
167
+ "1. Read `runtime/source-files.json`.",
168
+ "2. Verify exact claims against the listed source locators before answering strongly.",
171
169
  ...chartNotes,
172
170
  "8. Do not rely on portable-context artifacts because they do not exist in this shell.",
173
171
  "",
@@ -225,6 +223,11 @@ function linkPath(targetPath, linkPathname) {
225
223
  mkdirSync(dirname(linkPathname), { recursive: true });
226
224
  symlinkSync(targetPath, linkPathname);
227
225
  }
226
+ function linkIfExists(targetPath, linkPathname) {
227
+ if (!existsSync(targetPath))
228
+ return;
229
+ linkPath(targetPath, linkPathname);
230
+ }
228
231
  function linkRelativePath(targetPath, linkPathname) {
229
232
  mkdirSync(dirname(linkPathname), { recursive: true });
230
233
  symlinkSync(relative(dirname(linkPathname), targetPath), linkPathname);
@@ -322,15 +325,18 @@ function renderStageExecutionAgents(compiledName, methodId, stage) {
322
325
  "## Start Here",
323
326
  "",
324
327
  "1. Read `runtime/stage-contract.json` now.",
325
- "2. Read `runtime/paths.json` now.",
326
- "3. Use the local native `interf-stage` skill now.",
327
- `4. Execute only the current stage: \`${stage.id}\` (${stage.label}).`,
328
+ "2. Read `runtime/source-snapshot.json` and `runtime/stage-inputs.json` now.",
329
+ "3. Read `runtime/paths.json` now.",
330
+ "4. Use the local native `interf-stage` skill now.",
331
+ `5. Execute only the current stage: \`${stage.id}\` (${stage.label}).`,
328
332
  "",
329
333
  "## Shell ABI",
330
334
  "",
331
335
  "- `inputs/<zone-id>/` = read mounts for the current stage.",
332
336
  "- `outputs/<zone-id>/` = write mounts for the current stage.",
333
337
  "- For file zones, `runtime/paths.json` points to the exact file path inside those mount roots.",
338
+ "- `runtime/source-snapshot.json` = source references captured for this run.",
339
+ "- `runtime/stage-inputs.json` = exact source references assigned to this stage.",
334
340
  "- declared compiled zone paths are also projected at the shell root so Method-relative contract paths stay valid.",
335
341
  "- `runtime/` = stage contract and machine-readable path map for this shell.",
336
342
  "- `method/` = Method metadata, `method.schema.json`, and docs for the current stage only.",
@@ -371,7 +377,8 @@ function renderStageExecutionSkill(stage, stageMethodDoc) {
371
377
  "",
372
378
  "This local native skill exists for automated Interf stage execution.",
373
379
  "Read `runtime/stage-contract.json` first.",
374
- "Then read `runtime/paths.json` and use the mounted `inputs/` and `outputs/` zones for this stage.",
380
+ "Then read `runtime/source-snapshot.json`, `runtime/stage-inputs.json`, and `runtime/paths.json`.",
381
+ "Use the assigned source references and the mounted `inputs/` and `outputs/` zones for this stage.",
375
382
  "Do not switch into manual query mode.",
376
383
  "",
377
384
  "## Current Stage",
@@ -399,7 +406,7 @@ function renderCompiledQueryNativeSkill(querySkillContent) {
399
406
  "name: interf-query",
400
407
  "description: >",
401
408
  " Native local query skill for this portable context built by Interf.",
402
- " Use it for manual questions against the portable context and source files under raw/.",
409
+ " Use it for manual questions against the portable context and source references.",
403
410
  "---",
404
411
  "",
405
412
  "# Interf Query",
@@ -568,6 +575,44 @@ function shouldSkipFrozenStageShellRelativePath(relativePath) {
568
575
  normalized.endsWith("/improvement-loops") ||
569
576
  normalized.includes("/improvement-loops/");
570
577
  }
578
+ /**
579
+ * System path prefixes a malicious symlink in a Method package must
580
+ * never reach. Without this, the freeze-snapshot logic could be
581
+ * tricked into copying anything the running user has access to —
582
+ * `/etc/passwd`, `~/.ssh/id_rsa`, etc. (CSO finding).
583
+ *
584
+ * We deliberately allow targets that escape the immediate freeze
585
+ * root: legitimate execution shells contain symlinks pointing back
586
+ * to the parent workspace's `interf.json`. The threat is only links
587
+ * that resolve into truly system-level paths.
588
+ */
589
+ const FORBIDDEN_SYMLINK_TARGET_PREFIXES = [
590
+ "/etc",
591
+ "/sys",
592
+ "/proc",
593
+ "/dev",
594
+ "/var/run",
595
+ "/var/lib",
596
+ "/usr",
597
+ "/bin",
598
+ "/sbin",
599
+ "/boot",
600
+ "/root",
601
+ ];
602
+ function ensureSymlinkTargetSafe(realTarget, symlinkPath) {
603
+ for (const prefix of FORBIDDEN_SYMLINK_TARGET_PREFIXES) {
604
+ if (realTarget === prefix || realTarget.startsWith(`${prefix}${pathSep}`)) {
605
+ throw new Error(`Refusing to follow symlink ${symlinkPath} → ${realTarget}: ` +
606
+ `resolves into system directory ${prefix}.`);
607
+ }
608
+ }
609
+ // Also refuse links that escape into another user's SSH directory
610
+ // even if the path is not on the literal forbidden list.
611
+ if (/\/\.ssh(\/|$)/.test(realTarget)) {
612
+ throw new Error(`Refusing to follow symlink ${symlinkPath} → ${realTarget}: ` +
613
+ `targets a .ssh directory.`);
614
+ }
615
+ }
571
616
  function copyResolvedTree(options) {
572
617
  const relativePath = options.relativePath ?? "";
573
618
  if (options.shellType === "stage-execution" && shouldSkipFrozenStageShellRelativePath(relativePath)) {
@@ -575,7 +620,24 @@ function copyResolvedTree(options) {
575
620
  }
576
621
  const stat = lstatSync(options.sourcePath);
577
622
  if (stat.isSymbolicLink()) {
623
+ // existsSync follows symlinks, so a dangling link (target absent)
624
+ // returns false. Skip those entries: realpathSync would throw
625
+ // ENOENT, and the freeze step is best-effort review material —
626
+ // losing one unresolvable link is better than aborting the whole
627
+ // snapshot. Production trigger: createStageExecutionShell links
628
+ // runtime/stage-contract.json before writeStageContract runs, so
629
+ // any failure between those two points leaves a dangling link
630
+ // that the per-stage finally-block freeze would otherwise hit.
631
+ if (!existsSync(options.sourcePath)) {
632
+ return { materializedSymlinks: 0 };
633
+ }
578
634
  const realTarget = realpathSync(options.sourcePath);
635
+ // Refuse symlinks resolving into system paths (CSO finding). We
636
+ // deliberately allow links that escape the immediate freeze root
637
+ // because legitimate execution shells contain links back to the
638
+ // parent workspace's interf.json — the only thing we care about
639
+ // is that the realpath does not land in /etc, /sys, /proc, etc.
640
+ ensureSymlinkTargetSafe(realTarget, options.sourcePath);
579
641
  const realStat = statSync(realTarget);
580
642
  if (realStat.isDirectory()) {
581
643
  const mappedTarget = options.materializedRealPaths?.get(realTarget);
@@ -672,7 +734,7 @@ function renderMethodAuthoringAgents(options) {
672
734
  "",
673
735
  "1. Read `runtime/authoring-context.json` now.",
674
736
  `2. Read \`method/README.md\`, \`method/method.json\`, and \`method/${METHOD_SCHEMA_FILE}\` now.`,
675
- "3. Review `artifacts/source-folder/raw/`.",
737
+ "3. Read `runtime/source-files.json` and review the listed source locators.",
676
738
  "4. Use the local native `interf-method-author` skill now.",
677
739
  "",
678
740
  "## Boundaries",
@@ -712,7 +774,7 @@ function renderMethodAuthoringSkill() {
712
774
  "# Interf Method Authoring",
713
775
  "",
714
776
  "Read `runtime/authoring-context.json` first.",
715
- "Then review the neutral Method package scaffold under `method/` and the raw snapshot under `artifacts/source-folder/raw/`.",
777
+ "Then review the neutral Method package scaffold under `method/`, read `runtime/source-files.json`, and inspect the listed source locators when needed.",
716
778
  "",
717
779
  "Rules:",
718
780
  "- edit only `method/`",
@@ -762,14 +824,7 @@ export function createMethodAuthoringShell(options) {
762
824
  },
763
825
  };
764
826
  writeFileSync(join(shellRoot, "runtime", "authoring-context.json"), `${JSON.stringify(context, null, 2)}\n`);
765
- projectRawSnapshot({
766
- sourcePath: options.sourceFolderPath,
767
- destinationPath: join(shellRoot, "artifacts", "source-folder", "raw"),
768
- compiledPath: shellRoot,
769
- mode: "copy",
770
- prune: true,
771
- preserveTimestamps: true,
772
- });
827
+ writeFileSync(join(shellRoot, "runtime", "source-files.json"), `${JSON.stringify(buildCompiledSourceFiles(shellRoot, options.sourceFolderPath), null, 2)}\n`);
773
828
  copyResolvedTree({
774
829
  sourcePath: options.methodPath,
775
830
  targetPath: join(shellRoot, "method"),
@@ -808,7 +863,7 @@ function renderMethodImprovementAgents(compiledName, methodId, loopIndex) {
808
863
  `- Method: \`${methodId}\`.`,
809
864
  `- Improvement loop: ${loopIndex}.`,
810
865
  "- Edit only files under `method/`.",
811
- "- Do not edit checks, test specs, raw files, or generated context outputs.",
866
+ "- Do not edit checks, test specs, source files, or generated context outputs.",
812
867
  "- Review context outputs under `artifacts/compiled-view/` and test/runtime evidence under `artifacts/`.",
813
868
  "- Keep the Method package valid for the current compiler API and `method.schema.json`.",
814
869
  "- For acceptance criteria, use `zone_counts_at_least` for numeric fixed minimums and `zone_counts_at_least_counts` only for runtime count-key strings such as `source_total`.",
@@ -862,7 +917,7 @@ function projectCompiledReviewArtifactsSnapshot(compiledPath, shellRoot, schema)
862
917
  const compiledViewRoot = join(shellRoot, "artifacts", "compiled-view");
863
918
  mkdirSync(compiledViewRoot, { recursive: true });
864
919
  for (const zone of schema.zones) {
865
- if (zone.kind === "runtime" || zone.path === "raw")
920
+ if (zone.kind === "runtime" || zone.path === "source-files")
866
921
  continue;
867
922
  const sourcePath = compiledZoneAbsolutePath(compiledPath, zone);
868
923
  if (!existsSync(sourcePath))
@@ -893,7 +948,9 @@ function projectCompiledRuntimeArtifacts(compiledPath, shellRoot) {
893
948
  "state.json",
894
949
  "health.json",
895
950
  "view-spec.json",
896
- "raw-snapshot.json",
951
+ "source-files.json",
952
+ "source-snapshot.json",
953
+ "stages",
897
954
  "logs",
898
955
  ];
899
956
  for (const artifactName of artifactNames) {
@@ -908,8 +965,8 @@ export function projectCompiledQueryShell(compiledPath, compiledName, methodId,
908
965
  const querySkillContent = readCompiledQuerySkillSource(compiledPath);
909
966
  return writeNativeAgentSurface(compiledPath, agentsContent, "interf-query", renderCompiledQueryNativeSkill(querySkillContent));
910
967
  }
911
- export function projectRawTestQueryShell(rootPath) {
912
- return writeNativeAgentSurface(rootPath, renderRawTestAgents(), "interf-query", renderRawTestQuerySkill());
968
+ export function projectSourceFilesTestQueryShell(rootPath) {
969
+ return writeNativeAgentSurface(rootPath, renderSourceFilesTestAgents(), "interf-query", renderSourceFilesTestQuerySkill());
913
970
  }
914
971
  export function createStageExecutionShell(compiledPath, compiledName, methodId, stage, writeArtifacts = []) {
915
972
  const schema = ensureCompiledExecutionSurface(compiledPath);
@@ -922,6 +979,8 @@ export function createStageExecutionShell(compiledPath, compiledName, methodId,
922
979
  mkdirSync(join(shellRoot, "outputs"), { recursive: true });
923
980
  linkPath(compiledInterfConfigPath(compiledPath), join(shellRoot, "interf.json"));
924
981
  linkPath(join(compiledRuntimeRoot(compiledPath), "stage-contract.json"), shellRuntimePath(shellRoot, "stage-contract.json"));
982
+ linkIfExists(compiledRuntimeSourceSnapshotPath(compiledPath), shellRuntimePath(shellRoot, "source-snapshot.json"));
983
+ linkIfExists(compiledRuntimeStageInputsPath(compiledPath, stage.id), shellRuntimePath(shellRoot, "stage-inputs.json"));
925
984
  projectCompiledSchemaZones(compiledPath, shellRoot, schema, new Set([...stage.reads, ...stage.writes]), materializedZones);
926
985
  projectMethodMetadata(compiledPath, shellRoot, stage);
927
986
  projectStageZoneMountAliases(shellRoot, stage, schema);
@@ -1,6 +1,8 @@
1
1
  import { type InterfUserConfig } from "./schema.js";
2
2
  export type { InterfUserConfig } from "./schema.js";
3
- export declare const INTERF_HOME: string;
4
- export declare const USER_CONFIG_PATH: string;
3
+ /** `~/.interf/` (overridable via `INTERF_USER_HOME`). */
4
+ export declare function interfHome(): string;
5
+ /** `~/.interf/config.json` — local executor preferences. */
6
+ export declare function userConfigPath(): string;
5
7
  export declare function loadUserConfig(): InterfUserConfig | null;
6
8
  export declare function saveUserConfig(config: InterfUserConfig): void;
@@ -0,0 +1,24 @@
1
+ import { existsSync, mkdirSync, writeFileSync } from "node:fs";
2
+ import { join } from "node:path";
3
+ import { readJsonFileWithSchema } from "../../../contracts/utils/parse.js";
4
+ import { interfHomeRoot } from "../../../contracts/lib/preparation-paths.js";
5
+ import { InterfUserConfigSchema } from "./schema.js";
6
+ /** `~/.interf/` (overridable via `INTERF_USER_HOME`). */
7
+ export function interfHome() {
8
+ return interfHomeRoot();
9
+ }
10
+ /** `~/.interf/config.json` — local executor preferences. */
11
+ export function userConfigPath() {
12
+ return join(interfHome(), "config.json");
13
+ }
14
+ export function loadUserConfig() {
15
+ const configPath = userConfigPath();
16
+ if (!existsSync(configPath))
17
+ return null;
18
+ return readJsonFileWithSchema(configPath, "user config", InterfUserConfigSchema);
19
+ }
20
+ export function saveUserConfig(config) {
21
+ const home = interfHome();
22
+ mkdirSync(home, { recursive: true });
23
+ writeFileSync(userConfigPath(), JSON.stringify(config, null, 2) + "\n");
24
+ }
@@ -0,0 +1,91 @@
1
+ import { type AgentRecord, type AgentsRegistry, type RoleMap } from "../../contracts/lib/schema.js";
2
+ export declare const AGENTS_REGISTRY_FILENAME = "agents.json";
3
+ /** `~/.interf/agents.json` — persisted custom agents + role-map. */
4
+ export declare function agentsRegistryPath(): string;
5
+ /**
6
+ * Load just the persisted on-disk part of the registry. Built-in agents
7
+ * are NOT included — call `loadAgentsRegistry()` for the merged view.
8
+ *
9
+ * Returns `{ agents: [], role_map: {} }` when the file is missing or
10
+ * unreadable; persisted custom agents always have `source: "user"`.
11
+ */
12
+ export declare function loadPersistedRegistry(): AgentsRegistry;
13
+ /** Persist the on-disk part of the registry (custom agents + role-map). */
14
+ export declare function savePersistedRegistry(registry: AgentsRegistry): void;
15
+ /**
16
+ * Detect built-in agents present on this machine. Filtered to agents
17
+ * whose marker home directory exists; we do NOT require the command
18
+ * to be on PATH at registry read time — that's a runtime concern.
19
+ */
20
+ export declare function detectBuiltinAgentRecords(): AgentRecord[];
21
+ /**
22
+ * Same as `detectBuiltinAgentRecords()` but only includes agents the
23
+ * current Interf build can fully drive (Claude Code, Codex). Used by
24
+ * the role-router and the CLI / UI listing as the "available agents"
25
+ * set.
26
+ */
27
+ export declare function detectAutomatableBuiltinAgentRecords(): AgentRecord[];
28
+ /**
29
+ * Full advertisement set — all built-in agents Interf knows about,
30
+ * regardless of whether they are installed locally. Used by the
31
+ * "install cards" zero-state surface so the UI / wizard can offer
32
+ * the user choices to install.
33
+ */
34
+ export declare function listKnownBuiltinAgents(): AgentRecord[];
35
+ export interface ResolvedRegistry {
36
+ /** All currently usable agents — built-in detected + persisted custom. */
37
+ agents: AgentRecord[];
38
+ /** Role → agent-name. Includes any persisted user edits. */
39
+ roleMap: RoleMap;
40
+ /**
41
+ * The "active" / default agent. This is whatever the role-map's
42
+ * `general` row points at, falling back to the first available
43
+ * agent when `general` is unset or maps to something that no longer
44
+ * exists in `agents`.
45
+ */
46
+ activeAgent: AgentRecord | null;
47
+ }
48
+ /**
49
+ * Public entry point — read the persisted registry, merge with detected
50
+ * built-ins, and seed the default role-map on first read if needed.
51
+ *
52
+ * Does NOT write back to disk. Callers that mutate the registry should
53
+ * call `savePersistedRegistry()` explicitly with the persisted slice.
54
+ */
55
+ export declare function loadAgentsRegistry(): ResolvedRegistry;
56
+ /** Pure helper — like `loadAgentsRegistry()` but works off in-memory data. */
57
+ export declare function resolveRegistry(persisted: AgentsRegistry, builtinDetected: AgentRecord[]): ResolvedRegistry;
58
+ /**
59
+ * Update the role-map (full replace). Returns the persisted slice that
60
+ * was written.
61
+ */
62
+ export declare function updateRoleMap(nextRoleMap: RoleMap): AgentsRegistry;
63
+ /**
64
+ * Patch the role-map with a partial update. Empty-string values clear
65
+ * the role (it falls back to `general` / active agent at run time).
66
+ */
67
+ export declare function patchRoleMap(patch: Record<string, string>): AgentsRegistry;
68
+ /**
69
+ * Register a new custom agent. Throws if `name` collides with a known
70
+ * built-in or with an already-persisted custom agent.
71
+ */
72
+ export declare function registerCustomAgent(input: {
73
+ name: string;
74
+ display_name: string;
75
+ command: string;
76
+ }): AgentsRegistry;
77
+ /**
78
+ * Unregister a custom agent. Throws if `name` matches a built-in or no
79
+ * custom record exists. Removes any role-map entry pointing at the
80
+ * removed agent.
81
+ */
82
+ export declare function unregisterCustomAgent(name: string): AgentsRegistry;
83
+ /**
84
+ * Set the "active" agent — i.e. the agent the role-map's `general` row
85
+ * points at. Also updates any role still pointing at the previous
86
+ * active agent so existing single-active-agent setups don't need
87
+ * per-role edits when switching agents.
88
+ *
89
+ * Throws if `name` is not in the merged agents list.
90
+ */
91
+ export declare function setActiveAgent(name: string): AgentsRegistry;