@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,11 +1,11 @@
1
1
  import { existsSync, readdirSync, statSync, } from "node:fs";
2
2
  import { join, resolve } from "node:path";
3
- import { warnInterf } from "../shared/logger.js";
4
- import { readJsonFileUnchecked } from "../shared/parse.js";
5
- import { portableContextPath, projectInterfRoot, } from "./project-paths.js";
6
- import { resolveSourceControlPathForCompiled, compiledInterfConfigPath, } from "../compiler/compiled-paths.js";
3
+ import { warnInterf } from "../contracts/utils/logger.js";
4
+ import { readJsonFileUnchecked } from "../contracts/utils/parse.js";
5
+ import { asPreparationDataDir, preparationPortableContextPath, } from "../contracts/lib/preparation-paths.js";
6
+ import { resolveSourceControlPathForCompiled, compiledInterfConfigPath, } from "../engine/compile/compiled-paths.js";
7
7
  import { InterfConfigSchema, } from "./lib/schema.js";
8
- import { assertPathWithinRoot } from "../shared/path-guards.js";
8
+ import { assertPathWithinRoot } from "../contracts/utils/path-guards.js";
9
9
  export const INTERF_CONTAINER_NAME = "interf";
10
10
  export const METHOD_CONTAINER_NAME = "methods";
11
11
  export const TEST_CONTAINER_NAME = "tests";
@@ -33,6 +33,9 @@ export function readInterfConfig(dirPath) {
33
33
  export function hasSourceFolderInput(config) {
34
34
  return typeof config?.source?.path === "string" && config.source.path.length > 0;
35
35
  }
36
+ export function hasSourcePreparationInput(config) {
37
+ return typeof config?.source?.preparation_path === "string" && config.source.preparation_path.length > 0;
38
+ }
36
39
  export function detectInterf(cwd) {
37
40
  const config = readInterfConfig(cwd);
38
41
  if (config)
@@ -44,49 +47,48 @@ export function resolveCompiled(cwd) {
44
47
  if (!detected)
45
48
  return null;
46
49
  return {
47
- sourcePath: resolveSourceControlPath(detected.path),
50
+ prepDataDir: resolveSourceControlPath(detected.path),
48
51
  compiledPath: detected.path,
49
52
  config: detected.config,
50
53
  };
51
54
  }
52
55
  export function resolveSourceFolderPath(compiledPath, config = null) {
53
56
  const resolvedConfig = config ?? readInterfConfig(compiledPath);
57
+ if (hasSourcePreparationInput(resolvedConfig)) {
58
+ return resolve(compiledPath, resolvedConfig.source.preparation_path);
59
+ }
54
60
  if (hasSourceFolderInput(resolvedConfig)) {
55
- return assertPathWithinRoot(compiledPath, resolve(compiledPath, resolvedConfig.source.path), "Compiled raw source path");
61
+ return assertPathWithinRoot(compiledPath, resolve(compiledPath, resolvedConfig.source.path), "Compiled source path");
56
62
  }
57
- return resolve(compiledPath, "raw");
63
+ throw new Error(`Portable Context at ${compiledPath} is missing source.preparation_path or source.path in ${compiledInterfConfigPath(compiledPath)}.`);
58
64
  }
59
65
  export function resolveSourceControlPath(compiledPath) {
60
66
  return resolveSourceControlPathForCompiled(compiledPath);
61
67
  }
62
68
  export function resolveSourceInputPath(compiledPath) {
63
69
  const config = readInterfConfig(compiledPath);
64
- const sourceBinding = typeof config?.source?.preparation_path === "string" && config.source.preparation_path.length > 0
65
- ? config.source.preparation_path
66
- : null;
67
- if (sourceBinding) {
68
- return resolve(compiledPath, sourceBinding);
70
+ if (hasSourcePreparationInput(config)) {
71
+ return resolve(compiledPath, config.source.preparation_path);
69
72
  }
70
73
  throw new Error(`Portable context is missing source.preparation_path in ${compiledInterfConfigPath(compiledPath)}.`);
71
74
  }
72
- export function listPortableContextsForSourceFolder(sourcePath) {
73
- const interfRoot = projectInterfRoot(sourcePath);
74
- if (!existsSync(interfRoot))
75
+ export function listPortableContextsForSourceFolder(prepDataDir) {
76
+ if (!existsSync(prepDataDir))
75
77
  return [];
76
78
  try {
77
- if (!statSync(interfRoot).isDirectory())
79
+ if (!statSync(prepDataDir).isDirectory())
78
80
  return [];
79
81
  }
80
82
  catch (error) {
81
- warnInterf(`Warning: failed to inspect Interf container at ${interfRoot}: ${error instanceof Error ? error.message : String(error)}`);
83
+ warnInterf(`Warning: failed to inspect Interf Workspace at ${prepDataDir}: ${error instanceof Error ? error.message : String(error)}`);
82
84
  return [];
83
85
  }
84
- return readdirSync(interfRoot)
86
+ return readdirSync(prepDataDir)
85
87
  .filter((entry) => !entry.startsWith(".") &&
86
88
  entry !== METHOD_CONTAINER_NAME &&
87
89
  entry !== TEST_CONTAINER_NAME &&
88
90
  entry !== INTERF_CONFIG_FILE)
89
- .map((entry) => portableContextPath(sourcePath, entry))
91
+ .map((entry) => preparationPortableContextPath(asPreparationDataDir(prepDataDir), entry))
90
92
  .filter((compiledPath) => existsSync(compiledPath))
91
93
  .map((compiledPath) => {
92
94
  const config = readInterfConfig(compiledPath);
@@ -94,17 +96,16 @@ export function listPortableContextsForSourceFolder(sourcePath) {
94
96
  })
95
97
  .filter((value) => value !== null);
96
98
  }
97
- export function assertCompiledContainer(sourcePath) {
98
- const interfRoot = projectInterfRoot(sourcePath);
99
- if (existsSync(interfRoot)) {
100
- const stat = statSync(interfRoot);
99
+ export function assertCompiledContainer(prepDataDir) {
100
+ if (existsSync(prepDataDir)) {
101
+ const stat = statSync(prepDataDir);
101
102
  if (!stat.isDirectory()) {
102
- throw new Error(`Interf container exists and is not a directory: ${interfRoot}`);
103
+ throw new Error(`Interf Workspace exists and is not a directory: ${prepDataDir}`);
103
104
  }
104
- const unexpectedRootEntries = readdirSync(interfRoot).filter((entry) => {
105
+ const unexpectedRootEntries = readdirSync(prepDataDir).filter((entry) => {
105
106
  if (entry.startsWith("."))
106
107
  return false;
107
- const entryPath = join(interfRoot, entry);
108
+ const entryPath = join(prepDataDir, entry);
108
109
  if (entry === INTERF_CONFIG_FILE) {
109
110
  try {
110
111
  return !statSync(entryPath).isFile();
@@ -133,22 +134,21 @@ export function assertCompiledContainer(sourcePath) {
133
134
  }
134
135
  });
135
136
  if (unexpectedRootEntries.length > 0) {
136
- throw new Error(`Interf container contains unexpected entries: ${interfRoot}`);
137
+ throw new Error(`Interf Workspace contains unexpected entries: ${prepDataDir}`);
137
138
  }
138
139
  }
139
- const containerPath = interfRoot;
140
- if (!existsSync(containerPath)) {
141
- return containerPath;
140
+ if (!existsSync(prepDataDir)) {
141
+ return prepDataDir;
142
142
  }
143
- const stat = statSync(containerPath);
143
+ const stat = statSync(prepDataDir);
144
144
  if (!stat.isDirectory()) {
145
- throw new Error(`Interf container exists and is not a directory: ${containerPath}`);
145
+ throw new Error(`Interf Workspace exists and is not a directory: ${prepDataDir}`);
146
146
  }
147
- const unexpectedEntries = readdirSync(containerPath).filter((entry) => {
147
+ const unexpectedEntries = readdirSync(prepDataDir).filter((entry) => {
148
148
  if (entry.startsWith("."))
149
149
  return false;
150
150
  if (entry === INTERF_CONFIG_FILE) {
151
- const entryPath = join(containerPath, entry);
151
+ const entryPath = join(prepDataDir, entry);
152
152
  try {
153
153
  return !statSync(entryPath).isFile();
154
154
  }
@@ -160,7 +160,7 @@ export function assertCompiledContainer(sourcePath) {
160
160
  if (entry === METHOD_CONTAINER_NAME ||
161
161
  entry === TEST_CONTAINER_NAME)
162
162
  return false;
163
- const entryPath = join(containerPath, entry);
163
+ const entryPath = join(prepDataDir, entry);
164
164
  try {
165
165
  if (!statSync(entryPath).isDirectory())
166
166
  return true;
@@ -172,9 +172,9 @@ export function assertCompiledContainer(sourcePath) {
172
172
  return false;
173
173
  });
174
174
  if (unexpectedEntries.length > 0) {
175
- throw new Error(`Interf container contains invalid Preparation entries: ${containerPath}`);
175
+ throw new Error(`Interf Workspace contains invalid Preparation entries: ${prepDataDir}`);
176
176
  }
177
- return containerPath;
177
+ return prepDataDir;
178
178
  }
179
179
  export function assertWritableTargetDir(dirPath, label) {
180
180
  if (!existsSync(dirPath))
@@ -0,0 +1,3 @@
1
+ export declare function ensurePortableContextScaffold(prepDataDir: string, preparationName: string, methodId?: string): string;
2
+ export declare function createCompiled(name: string, prepDataDir: string, methodId: string | undefined, about: string | undefined, sourceFolderPath: string): string;
3
+ export declare function defaultCompiledNameForSource(prepDataDir: string): string;
@@ -1,16 +1,15 @@
1
1
  import { mkdirSync, existsSync, writeFileSync, } from "node:fs";
2
2
  import { basename, join, relative, sep } from "node:path";
3
- import { getCompiledMethod } from "../method-package/method-definitions.js";
4
- import { loadMethodDefinitionFromDir, seedLocalDefaultMethod } from "../method-package/local-methods.js";
5
- import { initializeCompiledRuntimeState, } from "../compiler/state.js";
6
- import { refreshCompiledBootstrapGuidance } from "../agents/lib/compiled-bootstrap.js";
7
- import { syncCompiledRawSnapshot } from "../compiler/raw-snapshot.js";
3
+ import { getCompiledMethod } from "../methods/package/method-definitions.js";
4
+ import { loadMethodDefinitionFromDir, seedLocalDefaultMethod } from "../methods/package/local-methods.js";
5
+ import { initializeCompiledRuntimeState, } from "../engine/compile/state.js";
6
+ import { refreshCompiledBootstrapGuidance } from "../engine/agents/lib/compiled-bootstrap.js";
8
7
  import { assertCompiledContainer, assertCompiledName, } from "./interf-detect.js";
9
- import { seedCompiledMethodPackage } from "../method-package/interf-method-package.js";
10
- import { portableContextPath } from "./project-paths.js";
11
- import { ensureCompiledZoneTargets, readCompiledSchemaFile } from "../compiler/compiled-schema.js";
12
- import { findSourcePreparationConfig, listSourcePreparationConfigs, loadSourceFolderConfig, methodIdForSourcePreparationConfig, resolveSourcePreparationPath, saveCompiledInterfConfig, } from "./source-config.js";
13
- import { defaultControlPathForCompiled, testRootForCompiled, methodPackagePathForCompiled } from "../compiler/compiled-paths.js";
8
+ import { seedCompiledMethodPackage } from "../methods/package/interf-method-package.js";
9
+ import { asPreparationDataDir, preparationPortableContextPath, } from "../contracts/lib/preparation-paths.js";
10
+ import { ensureCompiledZoneTargets, readCompiledSchemaFile } from "../engine/compile/compiled-schema.js";
11
+ import { findSourcePreparationConfig, loadSourceFolderConfig, methodIdForSourcePreparationConfig, resolveSourcePreparationPath, saveCompiledInterfConfig, } from "./source-config.js";
12
+ import { defaultControlPathForCompiled, testRootForCompiled, methodPackagePathForCompiled } from "../engine/compile/compiled-paths.js";
14
13
  import { DEFAULT_METHOD_ID } from "../methods/method-resolution.js";
15
14
  const DEFAULT_INTERFIGNORE = [
16
15
  ".claude/",
@@ -67,20 +66,20 @@ function localMethodMatches(compiledPath, methodId) {
67
66
  const localMethod = loadMethodDefinitionFromDir(methodPackagePathForCompiled(compiledPath));
68
67
  return localMethod?.id === methodId;
69
68
  }
70
- export function ensurePortableContextScaffold(sourcePath, preparationName, methodId = DEFAULT_METHOD_ID) {
69
+ export function ensurePortableContextScaffold(prepDataDir, preparationName, methodId = DEFAULT_METHOD_ID) {
71
70
  assertCompiledName(preparationName, "Portable context");
72
- assertCompiledContainer(sourcePath);
73
- const compiledPath = portableContextPath(sourcePath, preparationName);
71
+ assertCompiledContainer(prepDataDir);
72
+ const compiledPath = preparationPortableContextPath(asPreparationDataDir(prepDataDir), preparationName);
74
73
  mkdirSync(compiledPath, { recursive: true });
75
74
  mkdirSync(testRootForCompiled(compiledPath), { recursive: true });
76
75
  if (methodId === "interf-default") {
77
- seedLocalDefaultMethod({ sourcePath });
76
+ seedLocalDefaultMethod({ prepDataDir });
78
77
  }
79
- const selectedMethod = getCompiledMethod(methodId, { sourcePath });
78
+ const selectedMethod = getCompiledMethod(methodId, { prepDataDir });
80
79
  if (!localMethodMatches(compiledPath, selectedMethod.id)) {
81
80
  seedCompiledMethodPackage({
82
81
  compiledPath,
83
- sourcePath,
82
+ prepDataDir,
84
83
  methodId: selectedMethod.id,
85
84
  });
86
85
  }
@@ -89,26 +88,20 @@ export function ensurePortableContextScaffold(sourcePath, preparationName, metho
89
88
  }
90
89
  return compiledPath;
91
90
  }
92
- export function createCompiled(name, sourcePath, methodId = DEFAULT_METHOD_ID, about, sourceFolderPath) {
91
+ export function createCompiled(name, prepDataDir, methodId = DEFAULT_METHOD_ID, about, sourceFolderPath) {
93
92
  assertCompiledName(name, "Portable context");
94
- const savedCompiled = findSourcePreparationConfig(loadSourceFolderConfig(sourcePath), name);
93
+ if (!sourceFolderPath || typeof sourceFolderPath !== "string") {
94
+ throw new Error("createCompiled requires an explicit sourceFolderPath. Pass the absolute Source Folder path the portable context binds to.");
95
+ }
96
+ const savedCompiled = findSourcePreparationConfig(loadSourceFolderConfig(prepDataDir), name);
95
97
  const effectiveMethodId = methodIdForSourcePreparationConfig(savedCompiled) ?? methodId;
96
- const selectedMethod = getCompiledMethod(effectiveMethodId, { sourcePath });
97
- const compiledPath = ensurePortableContextScaffold(sourcePath, name, selectedMethod.id);
98
+ const selectedMethod = getCompiledMethod(effectiveMethodId, { prepDataDir });
99
+ const compiledPath = ensurePortableContextScaffold(prepDataDir, name, selectedMethod.id);
98
100
  const resolvedAbout = about ?? savedCompiled?.about;
99
- const resolvedSourceFolderPath = (() => {
100
- if (savedCompiled) {
101
- return resolveSourcePreparationPath(sourcePath, savedCompiled);
102
- }
103
- if (sourceFolderPath) {
104
- return sourceFolderPath;
105
- }
106
- const configuredPreparations = listSourcePreparationConfigs(loadSourceFolderConfig(sourcePath));
107
- if (configuredPreparations.length === 1) {
108
- return resolveSourcePreparationPath(sourcePath, configuredPreparations[0]);
109
- }
110
- throw new Error("Cannot infer the source folder for this portable context. Select a source folder first or pass an explicit source folder path.");
111
- })();
101
+ const resolvedSourceFolderPath = savedCompiled
102
+ ? resolveSourcePreparationPath(prepDataDir, savedCompiled)
103
+ : sourceFolderPath;
104
+ const sourceRelativePath = relative(compiledPath, resolvedSourceFolderPath).split(sep).join("/") || ".";
112
105
  saveCompiledInterfConfig(compiledPath, {
113
106
  type: "compiled",
114
107
  name,
@@ -126,13 +119,11 @@ export function createCompiled(name, sourcePath, methodId = DEFAULT_METHOD_ID, a
126
119
  local_draft: false,
127
120
  },
128
121
  source: {
129
- path: "./raw",
122
+ path: sourceRelativePath,
130
123
  control_path: defaultControlPathForCompiled(compiledPath),
131
- preparation_path: relative(compiledPath, resolvedSourceFolderPath).split(sep).join("/") || ".",
124
+ preparation_path: sourceRelativePath,
132
125
  },
133
126
  });
134
- mkdirSync(join(compiledPath, "raw"), { recursive: true });
135
- syncCompiledRawSnapshot(compiledPath, resolvedSourceFolderPath);
136
127
  writeFileSync(join(compiledPath, ".interfignore"), DEFAULT_INTERFIGNORE);
137
128
  scaffoldCompiledOutputs(compiledPath, name, about);
138
129
  refreshCompiledBootstrapGuidance(compiledPath);
@@ -140,6 +131,6 @@ export function createCompiled(name, sourcePath, methodId = DEFAULT_METHOD_ID, a
140
131
  initializeCompiledRuntimeState(compiledPath);
141
132
  return compiledPath;
142
133
  }
143
- export function defaultCompiledNameForSource(sourcePath) {
144
- return basename(sourcePath);
134
+ export function defaultCompiledNameForSource(prepDataDir) {
135
+ return basename(prepDataDir);
145
136
  }
@@ -38,7 +38,7 @@ export declare const SourcePreparationConfigSchema: z.ZodObject<{
38
38
  }, z.core.$strict>;
39
39
  export declare const SourceFolderBindingSchema: z.ZodObject<{
40
40
  path: z.ZodString;
41
- }, z.core.$strict>;
41
+ }, z.core.$loose>;
42
42
  export declare const CompiledInterfConfigSchema: z.ZodObject<{
43
43
  type: z.ZodLiteral<"compiled">;
44
44
  name: z.ZodString;
@@ -102,7 +102,7 @@ export declare const InterfConfigSchema: z.ZodObject<{
102
102
  export declare const SourceFolderConfigSchema: z.ZodObject<{
103
103
  source_folder: z.ZodOptional<z.ZodObject<{
104
104
  path: z.ZodString;
105
- }, z.core.$strict>>;
105
+ }, z.core.$loose>>;
106
106
  preparations: z.ZodDefault<z.ZodArray<z.ZodObject<{
107
107
  id: z.ZodOptional<z.ZodString>;
108
108
  name: z.ZodString;
@@ -1,6 +1,35 @@
1
1
  import { z } from "zod";
2
+ import { isAbsolute, normalize } from "node:path";
2
3
  import { InterfIdPattern, MethodIdSchema, PreparationNameSchema, SourceCompiledMaxAttemptsSchema, SourceCompiledMaxLoopsSchema, TestCaseExpectSchema, } from "../../contracts/lib/schema.js";
3
4
  export { MethodIdSchema, PreparationNameSchema, } from "../../contracts/lib/schema.js";
5
+ /**
6
+ * Absolute paths that an attacker-controlled config must never reach. The
7
+ * compiler treats `preparation.path` as a filesystem instruction — letting
8
+ * a browser-tab forge `/etc` or `/sys` could mutate or read system state.
9
+ * The list mirrors the CSO review allowlist.
10
+ */
11
+ const FORBIDDEN_ABSOLUTE_PATH_PREFIXES = [
12
+ "/etc",
13
+ "/sys",
14
+ "/proc",
15
+ "/dev",
16
+ "/var/run",
17
+ "/var/lib",
18
+ "/usr",
19
+ "/bin",
20
+ "/sbin",
21
+ "/boot",
22
+ ];
23
+ function isForbiddenAbsolutePath(value) {
24
+ if (!isAbsolute(value))
25
+ return false;
26
+ const normalized = normalize(value);
27
+ for (const prefix of FORBIDDEN_ABSOLUTE_PATH_PREFIXES) {
28
+ if (normalized === prefix || normalized.startsWith(`${prefix}/`))
29
+ return true;
30
+ }
31
+ return false;
32
+ }
4
33
  export const SourceReadinessCheckSchema = z.object({
5
34
  id: z.string().regex(InterfIdPattern).optional(),
6
35
  question: z.string().min(1),
@@ -19,7 +48,15 @@ export const SourceReadinessCheckSchema = z.object({
19
48
  export const SourcePreparationConfigSchema = z.object({
20
49
  id: z.string().regex(InterfIdPattern).optional(),
21
50
  name: PreparationNameSchema,
22
- path: z.string().min(1),
51
+ path: z
52
+ .string()
53
+ .min(1)
54
+ .refine((value) => !isForbiddenAbsolutePath(value), {
55
+ message: "Preparation path may not target system directories (/etc, /sys, /proc, /dev, /usr, /bin, /sbin, /boot, /var/run, /var/lib).",
56
+ })
57
+ .refine((value) => !value.split(/[/\\]/).some((segment) => segment === ".."), {
58
+ message: "Preparation path may not contain `..` segments.",
59
+ }),
23
60
  about: z.string().min(1).optional(),
24
61
  method: MethodIdSchema.optional(),
25
62
  max_attempts: SourceCompiledMaxAttemptsSchema.optional(),
@@ -28,7 +65,7 @@ export const SourcePreparationConfigSchema = z.object({
28
65
  }).strict();
29
66
  export const SourceFolderBindingSchema = z.object({
30
67
  path: z.string().min(1),
31
- }).strict();
68
+ }).passthrough();
32
69
  export const CompiledInterfConfigSchema = z.object({
33
70
  type: z.literal("compiled"),
34
71
  name: PreparationNameSchema,
@@ -0,0 +1,11 @@
1
+ import type { SourcePreparationConfig } from "./lib/schema.js";
2
+ export interface SavedPreparationEntry {
3
+ config: SourcePreparationConfig;
4
+ path: string | null;
5
+ localDraft: boolean;
6
+ }
7
+ export declare function listSavedPreparationEntries(prepDataDir: string): SavedPreparationEntry[];
8
+ export declare function findBuiltPortableContextPath(prepDataDir: string, preparationName: string): string | null;
9
+ export declare function findSavedPreparationConfig(prepDataDir: string, preparationName: string): SourcePreparationConfig | null;
10
+ export declare function createPortableContextFromConfig(prepDataDir: string, preparationConfig: SourcePreparationConfig): string;
11
+ export declare function ensurePortableContextFromConfig(prepDataDir: string, preparationConfig: SourcePreparationConfig): string;
@@ -2,9 +2,9 @@ import { listPortableContextsForSourceFolder, } from "./interf-detect.js";
2
2
  import { createCompiled, ensurePortableContextScaffold, } from "./interf-scaffold.js";
3
3
  import { listSourcePreparationConfigs, loadCompiledPreparationConfig, loadSourceFolderConfig, resolveSourcePreparationPath, sourcePreparationConfigFromInterfConfig, syncCompiledInterfConfigFromSourcePreparationConfig, } from "./source-config.js";
4
4
  import { DEFAULT_METHOD_ID, methodIdForSourcePreparationConfig, } from "../methods/method-resolution.js";
5
- export function listSavedPreparationEntries(sourcePath) {
5
+ export function listSavedPreparationEntries(prepDataDir) {
6
6
  const builtEntries = new Map();
7
- for (const builtContext of listPortableContextsForSourceFolder(sourcePath)) {
7
+ for (const builtContext of listPortableContextsForSourceFolder(prepDataDir)) {
8
8
  const preparationConfig = loadCompiledPreparationConfig(builtContext.path)
9
9
  ?? sourcePreparationConfigFromInterfConfig(builtContext.config);
10
10
  builtEntries.set(builtContext.config.name, {
@@ -14,7 +14,7 @@ export function listSavedPreparationEntries(sourcePath) {
14
14
  });
15
15
  }
16
16
  const entries = new Map();
17
- for (const config of listSourcePreparationConfigs(loadSourceFolderConfig(sourcePath))) {
17
+ for (const config of listSourcePreparationConfigs(loadSourceFolderConfig(prepDataDir))) {
18
18
  const built = builtEntries.get(config.name);
19
19
  entries.set(config.name, {
20
20
  config,
@@ -24,26 +24,26 @@ export function listSavedPreparationEntries(sourcePath) {
24
24
  }
25
25
  return Array.from(entries.values()).sort((left, right) => left.config.name.localeCompare(right.config.name));
26
26
  }
27
- export function findBuiltPortableContextPath(sourcePath, preparationName) {
28
- return listSavedPreparationEntries(sourcePath).find((entry) => entry.config.name === preparationName)?.path ?? null;
27
+ export function findBuiltPortableContextPath(prepDataDir, preparationName) {
28
+ return listSavedPreparationEntries(prepDataDir).find((entry) => entry.config.name === preparationName)?.path ?? null;
29
29
  }
30
- export function findSavedPreparationConfig(sourcePath, preparationName) {
31
- return listSavedPreparationEntries(sourcePath).find((entry) => entry.config.name === preparationName)?.config ?? null;
30
+ export function findSavedPreparationConfig(prepDataDir, preparationName) {
31
+ return listSavedPreparationEntries(prepDataDir).find((entry) => entry.config.name === preparationName)?.config ?? null;
32
32
  }
33
- export function createPortableContextFromConfig(sourcePath, preparationConfig) {
33
+ export function createPortableContextFromConfig(prepDataDir, preparationConfig) {
34
34
  const methodId = methodIdForSourcePreparationConfig(preparationConfig) ?? DEFAULT_METHOD_ID;
35
- const sourceFolderPath = resolveSourcePreparationPath(sourcePath, preparationConfig);
36
- const compiledPath = createCompiled(preparationConfig.name, sourcePath, methodId, preparationConfig.about, sourceFolderPath);
35
+ const sourceFolderPath = resolveSourcePreparationPath(prepDataDir, preparationConfig);
36
+ const compiledPath = createCompiled(preparationConfig.name, prepDataDir, methodId, preparationConfig.about, sourceFolderPath);
37
37
  syncCompiledInterfConfigFromSourcePreparationConfig(compiledPath, preparationConfig);
38
38
  return compiledPath;
39
39
  }
40
- export function ensurePortableContextFromConfig(sourcePath, preparationConfig) {
40
+ export function ensurePortableContextFromConfig(prepDataDir, preparationConfig) {
41
41
  const methodId = methodIdForSourcePreparationConfig(preparationConfig) ?? DEFAULT_METHOD_ID;
42
- const existingPath = findBuiltPortableContextPath(sourcePath, preparationConfig.name);
42
+ const existingPath = findBuiltPortableContextPath(prepDataDir, preparationConfig.name);
43
43
  if (existingPath) {
44
- ensurePortableContextScaffold(sourcePath, preparationConfig.name, methodId);
44
+ ensurePortableContextScaffold(prepDataDir, preparationConfig.name, methodId);
45
45
  syncCompiledInterfConfigFromSourcePreparationConfig(existingPath, preparationConfig);
46
46
  return existingPath;
47
47
  }
48
- return createPortableContextFromConfig(sourcePath, preparationConfig);
48
+ return createPortableContextFromConfig(prepDataDir, preparationConfig);
49
49
  }
@@ -1,15 +1,15 @@
1
1
  import { type InterfConfig, type SourceFolderBinding, type SourceReadinessCheck, type SourcePreparationConfig, type SourceFolderConfig } from "./lib/schema.js";
2
- import type { TestSpec, TestTargetType } from "../testing/lib/schema.js";
2
+ import type { TestSpec, TestTargetType } from "../engine/verify/lib/schema.js";
3
3
  export declare const SOURCE_FOLDER_CONFIG_FILE = "interf.json";
4
- export declare const SOURCE_FOLDER_CONFIG_PATH = "interf/interf.json";
4
+ export declare const SOURCE_FOLDER_CONFIG_PATH = "interf.json";
5
5
  export interface LoadedSourceTestSpec extends TestSpec {
6
6
  id: string;
7
7
  filePath: string;
8
8
  }
9
- export declare function sourceFolderConfigPath(sourcePath: string): string;
10
- export declare function resolveSourceFolderConfigPath(sourcePath: string): string;
9
+ export declare function sourceFolderConfigPath(prepDataDir: string): string;
10
+ export declare function resolveSourceFolderConfigPath(prepDataDir: string): string;
11
11
  export declare function fingerprintReadinessChecks(checks: SourceReadinessCheck[]): string;
12
- export declare function loadSourceFolderConfig(sourcePath: string): SourceFolderConfig | null;
12
+ export declare function loadSourceFolderConfig(prepDataDir: string): SourceFolderConfig | null;
13
13
  export interface WritableSourceProjectConfig {
14
14
  source_folder?: SourceFolderBinding;
15
15
  preparations?: SourcePreparationConfig[];
@@ -21,13 +21,13 @@ export declare function resolvePreparationCompileMaxLoops(preparationConfig: Pic
21
21
  export declare function getDefaultSourcePreparationConfig(config: SourceFolderConfig | null): SourcePreparationConfig | null;
22
22
  export declare function findSourcePreparationConfig(config: SourceFolderConfig | null, preparationName: string): SourcePreparationConfig | null;
23
23
  export declare function configuredSourceFolderPath(config: SourceFolderConfig | WritableSourceProjectConfig | null | undefined): string | null;
24
- export declare function resolveConfiguredSourceFolderPath(sourcePath: string, config?: SourceFolderConfig | WritableSourceProjectConfig | null | undefined): string | null;
25
- export declare function saveSourceFolderConfig(sourcePath: string, config: WritableSourceProjectConfig): void;
26
- export declare function appendSourcePreparationChecks(sourcePath: string, preparationName: string, checks: SourceReadinessCheck[]): void;
27
- export declare function upsertSourcePreparationConfig(sourcePath: string, preparationConfig: SourcePreparationConfig, options?: {
24
+ export declare function resolveConfiguredSourceFolderPath(prepDataDir: string, config?: SourceFolderConfig | WritableSourceProjectConfig | null | undefined): string | null;
25
+ export declare function saveSourceFolderConfig(prepDataDir: string, config: WritableSourceProjectConfig): void;
26
+ export declare function appendSourcePreparationChecks(prepDataDir: string, preparationName: string, checks: SourceReadinessCheck[]): void;
27
+ export declare function upsertSourcePreparationConfig(prepDataDir: string, preparationConfig: SourcePreparationConfig, options?: {
28
28
  matchName?: string;
29
29
  }): void;
30
- export declare function removeSourcePreparationConfig(sourcePath: string, preparationName: string): boolean;
30
+ export declare function removeSourcePreparationConfig(prepDataDir: string, preparationName: string): boolean;
31
31
  export declare function compiledMaxAttempts(maxAttempts: number | null | undefined): number | undefined;
32
32
  export declare function compiledMaxLoops(maxLoops: number | null | undefined): number | undefined;
33
33
  export declare function sourcePreparationConfigFromInterfConfig(config: InterfConfig, preparationPath?: string): SourcePreparationConfig;
@@ -35,7 +35,7 @@ export declare function loadCompiledPreparationConfig(compiledPath: string): Sou
35
35
  export declare function saveCompiledInterfConfig(compiledPath: string, config: InterfConfig): InterfConfig;
36
36
  export declare function syncCompiledInterfConfigFromSourcePreparationConfig(compiledPath: string, preparationConfig: SourcePreparationConfig): InterfConfig;
37
37
  export declare function buildTestSpecFromSourceFolderConfig(options: {
38
- sourcePath: string;
38
+ prepDataDir: string;
39
39
  targetName?: string | null;
40
40
  targetType?: TestTargetType;
41
41
  }): LoadedSourceTestSpec | null;
@@ -43,4 +43,4 @@ export declare function buildTestSpecFromCompiledPreparationConfig(options: {
43
43
  compiledPath: string;
44
44
  targetType?: TestTargetType;
45
45
  }): LoadedSourceTestSpec | null;
46
- export declare function resolveSourcePreparationPath(projectPath: string, preparationConfig: Pick<SourcePreparationConfig, "path">): string;
46
+ export declare function resolveSourcePreparationPath(prepDataDir: string, preparationConfig: Pick<SourcePreparationConfig, "path">): string;