@interf/compiler 0.13.0 → 0.18.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 (320) hide show
  1. package/LICENSE.md +1 -0
  2. package/README.md +50 -7
  3. package/TRADEMARKS.md +4 -4
  4. package/agent-skills/interf-actions/SKILL.md +51 -5
  5. package/agent-skills/interf-actions/references/cli.md +82 -82
  6. package/builtin-methods/interf-default/README.md +6 -7
  7. package/builtin-methods/interf-default/method.json +7 -68
  8. package/builtin-methods/interf-default/method.schema.json +52 -50
  9. package/dist/cli/commands/agents.d.ts +2 -0
  10. package/dist/cli/commands/agents.js +213 -0
  11. package/dist/cli/commands/compile.js +10 -1
  12. package/dist/cli/commands/doctor.js +1 -1
  13. package/dist/cli/commands/login.js +1 -1
  14. package/dist/cli/commands/logout.js +1 -1
  15. package/dist/cli/commands/mcp.d.ts +42 -0
  16. package/dist/cli/commands/mcp.js +239 -0
  17. package/dist/cli/commands/method.js +1 -1
  18. package/dist/cli/commands/prep.js +81 -7
  19. package/dist/cli/commands/reset.js +1 -1
  20. package/dist/cli/commands/runs.js +1 -1
  21. package/dist/cli/commands/status.js +1 -1
  22. package/dist/cli/commands/verify.d.ts +10 -0
  23. package/dist/cli/commands/{test.js → verify.js} +30 -15
  24. package/dist/cli/commands/web.js +71 -18
  25. package/dist/cli/commands/wizard.js +462 -107
  26. package/dist/cli/index.d.ts +4 -2
  27. package/dist/cli/index.js +7 -3
  28. package/dist/compiler-ui/404.html +1 -1
  29. package/dist/compiler-ui/__next.__PAGE__.txt +2 -2
  30. package/dist/compiler-ui/__next._full.txt +3 -3
  31. package/dist/compiler-ui/__next._head.txt +1 -1
  32. package/dist/compiler-ui/__next._index.txt +2 -2
  33. package/dist/compiler-ui/__next._tree.txt +2 -2
  34. package/dist/compiler-ui/_next/static/chunks/{045gole2ojo3g.css → 0_c_tvh-cukjz.css} +1 -1
  35. package/dist/compiler-ui/_next/static/chunks/0f_geuwdesg_c.js +114 -0
  36. package/dist/compiler-ui/_not-found/__next._full.txt +2 -2
  37. package/dist/compiler-ui/_not-found/__next._head.txt +1 -1
  38. package/dist/compiler-ui/_not-found/__next._index.txt +2 -2
  39. package/dist/compiler-ui/_not-found/__next._not-found.__PAGE__.txt +1 -1
  40. package/dist/compiler-ui/_not-found/__next._not-found.txt +1 -1
  41. package/dist/compiler-ui/_not-found/__next._tree.txt +2 -2
  42. package/dist/compiler-ui/_not-found.html +1 -1
  43. package/dist/compiler-ui/_not-found.txt +2 -2
  44. package/dist/compiler-ui/index.html +1 -1
  45. package/dist/compiler-ui/index.txt +3 -3
  46. package/dist/index.d.ts +2 -2
  47. package/dist/index.js +2 -2
  48. package/dist/packages/contracts/index.d.ts +2 -1
  49. package/dist/packages/contracts/index.js +1 -0
  50. package/dist/packages/contracts/lib/schema.d.ts +324 -31
  51. package/dist/packages/contracts/lib/schema.js +281 -21
  52. package/dist/packages/{local-service → engine}/action-definitions.js +9 -2
  53. package/dist/packages/{local-service → engine}/action-planner.d.ts +1 -1
  54. package/dist/packages/{local-service → engine}/action-planner.js +1 -1
  55. package/dist/packages/{agents → engine/agents}/index.d.ts +3 -0
  56. package/dist/packages/{agents → engine/agents}/index.js +3 -0
  57. package/dist/packages/{agents → engine/agents}/lib/compiled-bootstrap.js +2 -2
  58. package/dist/packages/engine/agents/lib/detection.d.ts +13 -0
  59. package/dist/packages/{agents → engine/agents}/lib/detection.js +11 -0
  60. package/dist/packages/{agents → engine/agents}/lib/executors.d.ts +2 -2
  61. package/dist/packages/{agents → engine/agents}/lib/shells.d.ts +14 -6
  62. package/dist/packages/{agents → engine/agents}/lib/shells.js +133 -126
  63. package/dist/packages/{agents → engine/agents}/lib/user-config.js +2 -2
  64. package/dist/packages/engine/agents/registry.d.ts +91 -0
  65. package/dist/packages/engine/agents/registry.js +321 -0
  66. package/dist/packages/engine/agents/role-executors.d.ts +35 -0
  67. package/dist/packages/engine/agents/role-executors.js +88 -0
  68. package/dist/packages/engine/agents/role-router.d.ts +66 -0
  69. package/dist/packages/engine/agents/role-router.js +73 -0
  70. package/dist/packages/{local-service → engine}/client.d.ts +9 -9
  71. package/dist/packages/{local-service → engine}/client.js +11 -11
  72. package/dist/packages/engine/cloud-seams.d.ts +115 -0
  73. package/dist/packages/engine/cloud-seams.js +84 -0
  74. package/dist/packages/engine/compile/artifact-counts.d.ts +1 -0
  75. package/dist/packages/{compiler → engine/compile}/artifact-counts.js +4 -4
  76. package/dist/packages/engine/compile/artifact-status.d.ts +41 -0
  77. package/dist/packages/engine/compile/artifact-status.js +166 -0
  78. package/dist/packages/engine/compile/billing-events.d.ts +89 -0
  79. package/dist/packages/engine/compile/billing-events.js +74 -0
  80. package/dist/packages/engine/compile/check-evaluator.d.ts +66 -0
  81. package/dist/packages/engine/compile/check-evaluator.js +298 -0
  82. package/dist/packages/{compiler → engine/compile}/compiled-pipeline.d.ts +12 -1
  83. package/dist/packages/{compiler → engine/compile}/compiled-pipeline.js +16 -6
  84. package/dist/packages/engine/compile/compiled-schema.d.ts +21 -0
  85. package/dist/packages/engine/compile/compiled-schema.js +126 -0
  86. package/dist/packages/{compiler → engine/compile}/compiled-stage-plan.d.ts +2 -1
  87. package/dist/packages/{compiler → engine/compile}/compiled-stage-plan.js +35 -18
  88. package/dist/packages/{compiler → engine/compile}/compiled-stage-runner.d.ts +1 -1
  89. package/dist/packages/{compiler → engine/compile}/compiled-stage-runner.js +4 -4
  90. package/dist/packages/{compiler → engine/compile}/compiled-target.d.ts +2 -2
  91. package/dist/packages/{compiler → engine/compile}/compiled-target.js +2 -2
  92. package/dist/packages/{compiler → engine/compile}/discovery.js +1 -1
  93. package/dist/packages/{compiler → engine/compile}/index.d.ts +0 -1
  94. package/dist/packages/{compiler → engine/compile}/index.js +0 -1
  95. package/dist/packages/{compiler → engine/compile}/lib/schema.d.ts +113 -94
  96. package/dist/packages/{compiler → engine/compile}/lib/schema.js +35 -39
  97. package/dist/packages/engine/compile/method-primitives.d.ts +2 -0
  98. package/dist/packages/{compiler → engine/compile}/method-primitives.js +1 -1
  99. package/dist/packages/{compiler → engine/compile}/method-runs.d.ts +3 -3
  100. package/dist/packages/{compiler → engine/compile}/method-runs.js +3 -3
  101. package/dist/packages/{compiler → engine/compile}/reset.js +4 -4
  102. package/dist/packages/{compiler → engine/compile}/runtime-contracts.js +2 -1
  103. package/dist/packages/{compiler → engine/compile}/runtime-prompt.js +3 -2
  104. package/dist/packages/{compiler → engine/compile}/runtime-reconcile.d.ts +1 -1
  105. package/dist/packages/{compiler → engine/compile}/runtime-reconcile.js +47 -45
  106. package/dist/packages/{compiler → engine/compile}/runtime-runs.d.ts +1 -2
  107. package/dist/packages/{compiler → engine/compile}/runtime-runs.js +3 -44
  108. package/dist/packages/{compiler → engine/compile}/runtime-types.d.ts +7 -12
  109. package/dist/packages/engine/compile/runtime.d.ts +5 -0
  110. package/dist/packages/{compiler → engine/compile}/runtime.js +1 -2
  111. package/dist/packages/{compiler → engine/compile}/source-files.d.ts +1 -1
  112. package/dist/packages/{compiler → engine/compile}/source-files.js +3 -3
  113. package/dist/packages/{compiler → engine/compile}/state-health.js +8 -8
  114. package/dist/packages/{compiler → engine/compile}/state-io.js +2 -2
  115. package/dist/packages/{compiler → engine/compile}/state-view.js +9 -8
  116. package/dist/packages/{compiler → engine/compile}/validate-compiled.js +63 -32
  117. package/dist/packages/{compiler → engine/compile}/validate.d.ts +1 -1
  118. package/dist/packages/{compiler → engine/compile}/validate.js +29 -27
  119. package/dist/packages/{execution → engine/execution}/lib/schema.d.ts +81 -55
  120. package/dist/packages/{execution → engine/execution}/lib/schema.js +14 -6
  121. package/dist/packages/engine/index.d.ts +22 -0
  122. package/dist/packages/engine/index.js +15 -0
  123. package/dist/packages/{local-service → engine}/lib/schema.d.ts +620 -435
  124. package/dist/packages/{local-service → engine}/lib/schema.js +103 -63
  125. package/dist/packages/{local-service → engine}/native-run-handlers.d.ts +7 -5
  126. package/dist/packages/{local-service → engine}/native-run-handlers.js +81 -29
  127. package/dist/packages/{local-service → engine}/preparation-store.d.ts +22 -4
  128. package/dist/packages/{local-service → engine}/preparation-store.js +56 -25
  129. package/dist/packages/{local-service → engine}/readiness-check-draft.d.ts +2 -2
  130. package/dist/packages/{local-service → engine}/routes.d.ts +36 -1
  131. package/dist/packages/{local-service → engine}/routes.js +38 -1
  132. package/dist/packages/{local-service → engine}/run-observability.d.ts +3 -3
  133. package/dist/packages/{local-service → engine}/run-observability.js +15 -15
  134. package/dist/packages/{local-service → engine}/runtime-event-applier.d.ts +1 -1
  135. package/dist/packages/{local-service → engine}/runtime-event-applier.js +7 -0
  136. package/dist/packages/{local-service → engine}/runtime-persistence.d.ts +6 -6
  137. package/dist/packages/{local-service → engine}/runtime-persistence.js +9 -9
  138. package/dist/packages/{local-service → engine}/runtime-proposal-helpers.d.ts +1 -1
  139. package/dist/packages/{local-service → engine}/runtime-proposal-helpers.js +5 -5
  140. package/dist/packages/{local-service → engine}/runtime-resource-builders.d.ts +12 -12
  141. package/dist/packages/{local-service → engine}/runtime-resource-builders.js +6 -5
  142. package/dist/packages/{local-service → engine}/runtime.d.ts +147 -56
  143. package/dist/packages/{local-service → engine}/runtime.js +333 -205
  144. package/dist/packages/{local-service → engine}/server.d.ts +25 -0
  145. package/dist/packages/{local-service → engine}/server.js +338 -17
  146. package/dist/packages/engine/verify/index.d.ts +13 -0
  147. package/dist/packages/engine/verify/index.js +10 -0
  148. package/dist/packages/{testing → engine/verify}/lib/schema.d.ts +1 -1
  149. package/dist/packages/{testing → engine/verify}/lib/schema.js +1 -1
  150. package/dist/packages/{testing → engine/verify}/readiness-check-run.d.ts +27 -11
  151. package/dist/packages/{testing → engine/verify}/readiness-check-run.js +72 -60
  152. package/dist/packages/{testing/test-execution.d.ts → engine/verify/verify-execution.d.ts} +2 -2
  153. package/dist/packages/{testing/test-execution.js → engine/verify/verify-execution.js} +2 -2
  154. package/dist/packages/{testing/test-paths.d.ts → engine/verify/verify-paths.d.ts} +1 -1
  155. package/dist/packages/{testing/test-paths.js → engine/verify/verify-paths.js} +2 -2
  156. package/dist/packages/{testing/test-sandbox.d.ts → engine/verify/verify-sandbox.d.ts} +1 -1
  157. package/dist/packages/{testing/test-sandbox.js → engine/verify/verify-sandbox.js} +6 -6
  158. package/dist/packages/{testing/test-specs.d.ts → engine/verify/verify-specs.d.ts} +1 -1
  159. package/dist/packages/{testing/test-specs.js → engine/verify/verify-specs.js} +2 -2
  160. package/dist/packages/{testing/test-targets.d.ts → engine/verify/verify-targets.d.ts} +1 -1
  161. package/dist/packages/{testing/test-targets.js → engine/verify/verify-targets.js} +3 -3
  162. package/dist/packages/{testing/test.d.ts → engine/verify/verify.d.ts} +4 -4
  163. package/dist/packages/{testing/test.js → engine/verify/verify.js} +3 -3
  164. package/dist/packages/engine/wire-schemas.d.ts +545 -0
  165. package/dist/packages/engine/wire-schemas.js +59 -0
  166. package/dist/packages/methods/authoring/method-authoring.d.ts +34 -0
  167. package/dist/packages/methods/authoring/method-authoring.js +260 -0
  168. package/dist/packages/{method-authoring → methods/authoring}/method-edit-session.d.ts +2 -2
  169. package/dist/packages/{method-authoring → methods/authoring}/method-edit-session.js +5 -5
  170. package/dist/packages/{method-authoring → methods/authoring}/method-improvement.d.ts +4 -4
  171. package/dist/packages/{method-authoring → methods/authoring}/method-improvement.js +16 -10
  172. package/dist/packages/{method-package → methods/package}/builtin-compiled-method.d.ts +12 -12
  173. package/dist/packages/{method-package → methods/package}/builtin-compiled-method.js +27 -24
  174. package/dist/packages/methods/package/context-interface.d.ts +73 -0
  175. package/dist/packages/{method-package → methods/package}/context-interface.js +50 -41
  176. package/dist/packages/{method-package → methods/package}/interf-method-package.js +31 -49
  177. package/dist/packages/{method-package → methods/package}/lib/package-root.js +2 -2
  178. package/dist/packages/{method-package → methods/package}/local-methods.d.ts +10 -5
  179. package/dist/packages/{method-package → methods/package}/local-methods.js +41 -68
  180. package/dist/packages/{method-package → methods/package}/method-definitions.d.ts +11 -7
  181. package/dist/packages/{method-package → methods/package}/method-definitions.js +5 -8
  182. package/dist/packages/{method-package → methods/package}/method-helpers.d.ts +1 -3
  183. package/dist/packages/{method-package → methods/package}/method-helpers.js +4 -8
  184. package/dist/packages/{method-package → methods/package}/method-review-paths.d.ts +1 -1
  185. package/dist/packages/{method-package → methods/package}/method-review-paths.js +1 -1
  186. package/dist/packages/{method-package → methods/package}/method-stage-runner.d.ts +4 -9
  187. package/dist/packages/{method-package → methods/package}/method-stage-runner.js +1 -29
  188. package/dist/packages/{method-package → methods/package}/user-methods.js +2 -2
  189. package/dist/packages/{project-model → project}/interf-bootstrap.d.ts +1 -1
  190. package/dist/packages/{project-model → project}/interf-bootstrap.js +1 -1
  191. package/dist/packages/{project-model → project}/interf-detect.js +4 -4
  192. package/dist/packages/{project-model → project}/interf-scaffold.js +18 -18
  193. package/dist/packages/{project-model → project}/lib/schema.d.ts +2 -2
  194. package/dist/packages/{project-model → project}/lib/schema.js +1 -1
  195. package/dist/packages/{project-model → project}/source-config.d.ts +1 -1
  196. package/dist/packages/{project-model → project}/source-config.js +9 -8
  197. package/dist/packages/{project-model → project}/source-folders.js +2 -2
  198. package/package.json +7 -16
  199. package/dist/cli/commands/test.d.ts +0 -9
  200. package/dist/compiler-ui/_next/static/chunks/17t-lulmyawg5.js +0 -89
  201. package/dist/packages/agents/lib/detection.d.ts +0 -7
  202. package/dist/packages/compiler/artifact-counts.d.ts +0 -1
  203. package/dist/packages/compiler/compiled-schema.d.ts +0 -31
  204. package/dist/packages/compiler/compiled-schema.js +0 -141
  205. package/dist/packages/compiler/method-primitives.d.ts +0 -2
  206. package/dist/packages/compiler/runtime-acceptance.d.ts +0 -9
  207. package/dist/packages/compiler/runtime-acceptance.js +0 -262
  208. package/dist/packages/compiler/runtime.d.ts +0 -6
  209. package/dist/packages/local-service/index.d.ts +0 -22
  210. package/dist/packages/local-service/index.js +0 -15
  211. package/dist/packages/method-authoring/method-authoring.d.ts +0 -24
  212. package/dist/packages/method-authoring/method-authoring.js +0 -116
  213. package/dist/packages/method-package/context-interface.d.ts +0 -60
  214. package/dist/packages/testing/index.d.ts +0 -13
  215. package/dist/packages/testing/index.js +0 -10
  216. /package/dist/compiler-ui/_next/static/{C6vVfy3aeYuIO3d2AoNvC → 6qyE1u9m_oBUkvAhhoCmO}/_buildManifest.js +0 -0
  217. /package/dist/compiler-ui/_next/static/{C6vVfy3aeYuIO3d2AoNvC → 6qyE1u9m_oBUkvAhhoCmO}/_clientMiddlewareManifest.js +0 -0
  218. /package/dist/compiler-ui/_next/static/{C6vVfy3aeYuIO3d2AoNvC → 6qyE1u9m_oBUkvAhhoCmO}/_ssgManifest.js +0 -0
  219. /package/dist/packages/{shared → contracts/utils}/file-types.d.ts +0 -0
  220. /package/dist/packages/{shared → contracts/utils}/file-types.js +0 -0
  221. /package/dist/packages/{shared → contracts/utils}/filesystem.d.ts +0 -0
  222. /package/dist/packages/{shared → contracts/utils}/filesystem.js +0 -0
  223. /package/dist/packages/{shared → contracts/utils}/logger.d.ts +0 -0
  224. /package/dist/packages/{shared → contracts/utils}/logger.js +0 -0
  225. /package/dist/packages/{shared → contracts/utils}/naming.d.ts +0 -0
  226. /package/dist/packages/{shared → contracts/utils}/naming.js +0 -0
  227. /package/dist/packages/{shared → contracts/utils}/parse.d.ts +0 -0
  228. /package/dist/packages/{shared → contracts/utils}/parse.js +0 -0
  229. /package/dist/packages/{shared → contracts/utils}/path-guards.d.ts +0 -0
  230. /package/dist/packages/{shared → contracts/utils}/path-guards.js +0 -0
  231. /package/dist/packages/{local-service → engine}/action-definitions.d.ts +0 -0
  232. /package/dist/packages/{local-service → engine}/action-values.d.ts +0 -0
  233. /package/dist/packages/{local-service → engine}/action-values.js +0 -0
  234. /package/dist/packages/{agents → engine/agents}/lib/agents.d.ts +0 -0
  235. /package/dist/packages/{agents → engine/agents}/lib/agents.js +0 -0
  236. /package/dist/packages/{agents → engine/agents}/lib/args.d.ts +0 -0
  237. /package/dist/packages/{agents → engine/agents}/lib/args.js +0 -0
  238. /package/dist/packages/{agents → engine/agents}/lib/chart-guidance.d.ts +0 -0
  239. /package/dist/packages/{agents → engine/agents}/lib/chart-guidance.js +0 -0
  240. /package/dist/packages/{agents → engine/agents}/lib/compiled-bootstrap.d.ts +0 -0
  241. /package/dist/packages/{agents → engine/agents}/lib/constants.d.ts +0 -0
  242. /package/dist/packages/{agents → engine/agents}/lib/constants.js +0 -0
  243. /package/dist/packages/{agents → engine/agents}/lib/execution-profile.d.ts +0 -0
  244. /package/dist/packages/{agents → engine/agents}/lib/execution-profile.js +0 -0
  245. /package/dist/packages/{agents → engine/agents}/lib/execution.d.ts +0 -0
  246. /package/dist/packages/{agents → engine/agents}/lib/execution.js +0 -0
  247. /package/dist/packages/{agents → engine/agents}/lib/executors.js +0 -0
  248. /package/dist/packages/{agents → engine/agents}/lib/logs.d.ts +0 -0
  249. /package/dist/packages/{agents → engine/agents}/lib/logs.js +0 -0
  250. /package/dist/packages/{agents → engine/agents}/lib/preflight.d.ts +0 -0
  251. /package/dist/packages/{agents → engine/agents}/lib/preflight.js +0 -0
  252. /package/dist/packages/{agents → engine/agents}/lib/render.d.ts +0 -0
  253. /package/dist/packages/{agents → engine/agents}/lib/render.js +0 -0
  254. /package/dist/packages/{agents → engine/agents}/lib/schema.d.ts +0 -0
  255. /package/dist/packages/{agents → engine/agents}/lib/schema.js +0 -0
  256. /package/dist/packages/{agents → engine/agents}/lib/status.d.ts +0 -0
  257. /package/dist/packages/{agents → engine/agents}/lib/status.js +0 -0
  258. /package/dist/packages/{agents → engine/agents}/lib/types.d.ts +0 -0
  259. /package/dist/packages/{agents → engine/agents}/lib/types.js +0 -0
  260. /package/dist/packages/{agents → engine/agents}/lib/user-config.d.ts +0 -0
  261. /package/dist/packages/{compiler → engine/compile}/compiled-compile.d.ts +0 -0
  262. /package/dist/packages/{compiler → engine/compile}/compiled-compile.js +0 -0
  263. /package/dist/packages/{compiler → engine/compile}/compiled-paths.d.ts +0 -0
  264. /package/dist/packages/{compiler → engine/compile}/compiled-paths.js +0 -0
  265. /package/dist/packages/{compiler → engine/compile}/discovery.d.ts +0 -0
  266. /package/dist/packages/{compiler → engine/compile}/reset.d.ts +0 -0
  267. /package/dist/packages/{compiler → engine/compile}/runtime-contracts.d.ts +0 -0
  268. /package/dist/packages/{compiler → engine/compile}/runtime-inventory.d.ts +0 -0
  269. /package/dist/packages/{compiler → engine/compile}/runtime-inventory.js +0 -0
  270. /package/dist/packages/{compiler → engine/compile}/runtime-paths.d.ts +0 -0
  271. /package/dist/packages/{compiler → engine/compile}/runtime-paths.js +0 -0
  272. /package/dist/packages/{compiler → engine/compile}/runtime-prompt.d.ts +0 -0
  273. /package/dist/packages/{compiler → engine/compile}/runtime-types.js +0 -0
  274. /package/dist/packages/{compiler → engine/compile}/state-artifacts.d.ts +0 -0
  275. /package/dist/packages/{compiler → engine/compile}/state-artifacts.js +0 -0
  276. /package/dist/packages/{compiler → engine/compile}/state-health.d.ts +0 -0
  277. /package/dist/packages/{compiler → engine/compile}/state-io.d.ts +0 -0
  278. /package/dist/packages/{compiler → engine/compile}/state-paths.d.ts +0 -0
  279. /package/dist/packages/{compiler → engine/compile}/state-paths.js +0 -0
  280. /package/dist/packages/{compiler → engine/compile}/state-view.d.ts +0 -0
  281. /package/dist/packages/{compiler → engine/compile}/state.d.ts +0 -0
  282. /package/dist/packages/{compiler → engine/compile}/state.js +0 -0
  283. /package/dist/packages/{compiler → engine/compile}/validate-compiled.d.ts +0 -0
  284. /package/dist/packages/{compiler → engine/compile}/validate-helpers.d.ts +0 -0
  285. /package/dist/packages/{compiler → engine/compile}/validate-helpers.js +0 -0
  286. /package/dist/packages/{local-service → engine}/connection-config.d.ts +0 -0
  287. /package/dist/packages/{local-service → engine}/connection-config.js +0 -0
  288. /package/dist/packages/{execution → engine/execution}/adapters.d.ts +0 -0
  289. /package/dist/packages/{execution → engine/execution}/adapters.js +0 -0
  290. /package/dist/packages/{execution → engine/execution}/events.d.ts +0 -0
  291. /package/dist/packages/{execution → engine/execution}/events.js +0 -0
  292. /package/dist/packages/{execution → engine/execution}/index.d.ts +0 -0
  293. /package/dist/packages/{execution → engine/execution}/index.js +0 -0
  294. /package/dist/packages/{local-service → engine}/instance-paths.d.ts +0 -0
  295. /package/dist/packages/{local-service → engine}/instance-paths.js +0 -0
  296. /package/dist/packages/{local-service → engine}/readiness-check-draft.js +0 -0
  297. /package/dist/packages/{local-service → engine}/runtime-caches.d.ts +0 -0
  298. /package/dist/packages/{local-service → engine}/runtime-caches.js +0 -0
  299. /package/dist/packages/{local-service → engine}/service-registry.d.ts +0 -0
  300. /package/dist/packages/{local-service → engine}/service-registry.js +0 -0
  301. /package/dist/packages/{testing/test-profile-presets.d.ts → engine/verify/verify-profile-presets.d.ts} +0 -0
  302. /package/dist/packages/{testing/test-profile-presets.js → engine/verify/verify-profile-presets.js} +0 -0
  303. /package/dist/packages/{testing/test-types.d.ts → engine/verify/verify-types.d.ts} +0 -0
  304. /package/dist/packages/{testing/test-types.js → engine/verify/verify-types.js} +0 -0
  305. /package/dist/packages/{method-authoring → methods/authoring}/index.d.ts +0 -0
  306. /package/dist/packages/{method-authoring → methods/authoring}/index.js +0 -0
  307. /package/dist/packages/{method-authoring → methods/authoring}/lib/method-edit-utils.d.ts +0 -0
  308. /package/dist/packages/{method-authoring → methods/authoring}/lib/method-edit-utils.js +0 -0
  309. /package/dist/packages/{method-package → methods/package}/interf-method-package.d.ts +0 -0
  310. /package/dist/packages/{method-package → methods/package}/lib/package-root.d.ts +0 -0
  311. /package/dist/packages/{method-package → methods/package}/user-methods.d.ts +0 -0
  312. /package/dist/packages/{project-model → project}/index.d.ts +0 -0
  313. /package/dist/packages/{project-model → project}/index.js +0 -0
  314. /package/dist/packages/{project-model → project}/interf-detect.d.ts +0 -0
  315. /package/dist/packages/{project-model → project}/interf-scaffold.d.ts +0 -0
  316. /package/dist/packages/{project-model → project}/interf.d.ts +0 -0
  317. /package/dist/packages/{project-model → project}/interf.js +0 -0
  318. /package/dist/packages/{project-model → project}/preparation-entries.d.ts +0 -0
  319. /package/dist/packages/{project-model → project}/preparation-entries.js +0 -0
  320. /package/dist/packages/{project-model → project}/source-folders.d.ts +0 -0
@@ -1,4 +1,7 @@
1
1
  import { z } from "zod";
2
+ // ───────────────────────────────────────────────────────────────────────────
3
+ // Identity primitives
4
+ // ───────────────────────────────────────────────────────────────────────────
2
5
  export const InterfIdPattern = /^[a-z0-9][a-z0-9-]{0,79}$/;
3
6
  export const PreparationNamePattern = /^[a-z0-9][a-z0-9-]*$/;
4
7
  const RESERVED_PREPARATION_NAMES = new Set(["tests", "methods"]);
@@ -7,11 +10,60 @@ export const PreparationNameSchema = z
7
10
  .regex(PreparationNamePattern, "Preparation names must use lowercase letters, numbers, and dashes only.")
8
11
  .refine((value) => !RESERVED_PREPARATION_NAMES.has(value), "Preparation name is reserved.");
9
12
  export const MethodIdSchema = z.string().regex(InterfIdPattern);
13
+ /**
14
+ * Method-declared artifact identifier. Same shape as `MethodIdSchema`
15
+ * but conceptually distinct — it identifies a produced thing inside
16
+ * one Method, while `MethodIdSchema` identifies the Method itself.
17
+ */
18
+ export const ArtifactIdSchema = z.string().regex(InterfIdPattern);
10
19
  export const RuntimeStageSchema = z.string().regex(InterfIdPattern);
11
20
  export const RuntimeContractTypeSchema = z.string().regex(InterfIdPattern);
12
21
  export const RuntimeTargetTypeSchema = z.enum(["compiled"]);
13
22
  export const TestTargetTypeSchema = z.enum(["compiled", "source-files"]);
14
- export const SourceKindSchema = z.enum(["local-folder"]);
23
+ // ───────────────────────────────────────────────────────────────────────────
24
+ // Path validation
25
+ //
26
+ // Used by Artifact paths and any other relative path the schema needs to
27
+ // validate. Rejects path traversal (`..`), absolute paths, and Windows
28
+ // drive letters. Centralized here so engine-side path checks share the
29
+ // definition with schema-level refinements.
30
+ // ───────────────────────────────────────────────────────────────────────────
31
+ const RELATIVE_PATH_SEGMENT = /^(?!\.{1,2}$)[^/\\]+$/;
32
+ export function isInterfRelativePath(value) {
33
+ if (value.length === 0)
34
+ return false;
35
+ if (value.startsWith("/") || value.startsWith("\\"))
36
+ return false;
37
+ if (/^[A-Za-z]:/.test(value))
38
+ return false;
39
+ return value
40
+ .split(/[\\/]+/)
41
+ .every((segment) => RELATIVE_PATH_SEGMENT.test(segment));
42
+ }
43
+ // ───────────────────────────────────────────────────────────────────────────
44
+ // Locator — discriminated resource address
45
+ // ───────────────────────────────────────────────────────────────────────────
46
+ /**
47
+ * A locator identifies where a resource lives so the API and UI can
48
+ * route the right action without hard-coding deployment shape.
49
+ *
50
+ * local-path → engine has filesystem access; UI opens via OS shell
51
+ * remote-url → signed URL; UI opens in a browser tab
52
+ * api-served → relative API route; UI fetches via the engine
53
+ */
54
+ export const LocatorKindSchema = z.enum(["local-path", "remote-url", "api-served"]);
55
+ export const LocatorSchema = z.object({
56
+ kind: LocatorKindSchema,
57
+ value: z.string().min(1),
58
+ }).strict();
59
+ // ───────────────────────────────────────────────────────────────────────────
60
+ // Source primitives — what the user puts in
61
+ //
62
+ // `local-folder` is the only kind the local binary accepts in 0.17;
63
+ // `remote-folder` is type plumbing for the future cloud variant
64
+ // (rejected at the validator branch in server.ts).
65
+ // ───────────────────────────────────────────────────────────────────────────
66
+ export const SourceKindSchema = z.enum(["local-folder", "remote-folder"]);
15
67
  export const SourceSchema = z.object({
16
68
  id: z.string().regex(InterfIdPattern),
17
69
  kind: SourceKindSchema,
@@ -58,6 +110,161 @@ export const StageInputsSchema = z.object({
58
110
  }).strict();
59
111
  export const SourceCompiledMaxAttemptsSchema = z.number().int().min(1).max(5);
60
112
  export const SourceCompiledMaxLoopsSchema = z.number().int().min(1).max(3);
113
+ // ───────────────────────────────────────────────────────────────────────────
114
+ // Check / Proof / Ready — the locked verification vocabulary
115
+ //
116
+ // Three words doing three precise jobs:
117
+ // - Check: the rule that must pass (with a `kind` and optional params)
118
+ // - Proof: evidence a check ran (pass/fail + summary + details)
119
+ // - Ready: aggregate verdict (`ready` or `not_ready`)
120
+ //
121
+ // A check has a SCOPE (where it's declared), not a different name:
122
+ // - stage check — Method-declared per stage; runs end-of-stage
123
+ // - artifact check — Method-declared per artifact; runs end-of-compile
124
+ // - user check — ICP-declared per preparation; runs on `interf verify`
125
+ //
126
+ // Same `Check` primitive across all three scopes. Same `CheckKind`
127
+ // canonical list — methods/users/engine pick from it.
128
+ // ───────────────────────────────────────────────────────────────────────────
129
+ /**
130
+ * Canonical check kinds the engine knows how to evaluate.
131
+ *
132
+ * Adding a new kind requires an engine release (the evaluator must
133
+ * implement it). Methods and user checks pick from this list; they
134
+ * cannot invent custom kinds.
135
+ *
136
+ * file_exists — file is present and non-empty
137
+ * min_file_count — directory has ≥ N files (params: { min: number })
138
+ * min_file_count_matches_source — directory has ≥ source_total files (the "all files analyzed" check)
139
+ * frontmatter_valid — every markdown file has parseable YAML frontmatter
140
+ * frontmatter_required_keys — every markdown file has these frontmatter keys (params: { keys: string[] })
141
+ * wikilinks_valid — every wikilink resolves
142
+ * must_not_contain — file/directory does not contain forbidden phrases (params: { phrases: string[] })
143
+ * must_contain — file/directory contains required phrases (params: { phrases: string[] })
144
+ * qa_match — user-defined Q/A: agent answer matches expected (params: { question, expected, strictness })
145
+ */
146
+ export const CHECK_KINDS = [
147
+ "file_exists",
148
+ "min_file_count",
149
+ "min_file_count_matches_source",
150
+ "frontmatter_valid",
151
+ "frontmatter_required_keys",
152
+ "wikilinks_valid",
153
+ "must_not_contain",
154
+ "must_contain",
155
+ "qa_match",
156
+ ];
157
+ export const CheckKindSchema = z.enum(CHECK_KINDS);
158
+ /**
159
+ * One check declaration. Reusable across stage/artifact/user scopes.
160
+ *
161
+ * `id` is local to the declaring container (a stage's checks have ids
162
+ * scoped to the stage; an artifact's checks have ids scoped to the
163
+ * artifact). `kind` selects the canonical evaluator. `params` carries
164
+ * rule-specific config (typed at the engine evaluator).
165
+ *
166
+ * `required: true` (default) → a failed check fails the parent
167
+ * (stage/artifact/preparation). `required: false` → soft check, fails
168
+ * warn but don't block the `ready` verdict.
169
+ */
170
+ export const CheckSchema = z.object({
171
+ id: z.string().regex(InterfIdPattern),
172
+ kind: CheckKindSchema,
173
+ description: z.string().min(1).optional(),
174
+ params: z.record(z.string(), z.unknown()).optional(),
175
+ required: z.boolean().default(true),
176
+ }).strict();
177
+ /**
178
+ * Evidence a check ran. `passed` is the binary outcome; `summary` is a
179
+ * short one-line label for the UI; `details` carries rule-specific
180
+ * structured data (e.g., file count, missing keys, broken link list).
181
+ */
182
+ export const ProofSchema = z.object({
183
+ check_id: z.string().regex(InterfIdPattern),
184
+ kind: CheckKindSchema,
185
+ passed: z.boolean(),
186
+ required: z.boolean(),
187
+ summary: z.string().min(1),
188
+ details: z.record(z.string(), z.unknown()).optional(),
189
+ evaluated_at: z.string().min(1),
190
+ }).strict();
191
+ /**
192
+ * Per-thing readiness verdict. Used for an artifact, a stage, or a
193
+ * preparation. Aggregate verdict over its required checks.
194
+ */
195
+ export const ReadyVerdictSchema = z.enum(["ready", "not_ready", "failed", "skipped"]);
196
+ /**
197
+ * Standard frontmatter key list used by Methods that emit markdown
198
+ * summaries of source files. Method authors that adopt this evidence
199
+ * convention reference this constant in `frontmatter_required_keys`
200
+ * check params rather than re-typing the list.
201
+ */
202
+ export const STANDARD_EVIDENCE_FRONTMATTER_KEYS = [
203
+ "source",
204
+ "source_kind",
205
+ "evidence_tier",
206
+ "truth_mode",
207
+ "state",
208
+ ];
209
+ // ───────────────────────────────────────────────────────────────────────────
210
+ // Artifact — a produced thing the user can see and verify
211
+ //
212
+ // Every output of a Method is an Artifact. No internal/working/output
213
+ // distinction — if it's named, it's an Artifact. The engine reserves
214
+ // `.interf/runtime/` as its own namespace by convention; those paths
215
+ // are not artifacts.
216
+ // ───────────────────────────────────────────────────────────────────────────
217
+ /**
218
+ * Where an Artifact materializes. Discriminated union so future kinds
219
+ * (literal value, remote handle, confirmation-only) slot in without a
220
+ * schema break. `path` is always relative to the portable-context root,
221
+ * and `artifact_kind` tells consumers whether the target materializes
222
+ * as a file or directory.
223
+ */
224
+ export const ArtifactPathShapeSchema = z.object({
225
+ kind: z.literal("path"),
226
+ path: z.string().min(1).refine(isInterfRelativePath, {
227
+ message: "Artifact paths must stay inside the portable-context root (no `..`, no absolute paths).",
228
+ }),
229
+ artifact_kind: z.enum(["file", "directory"]),
230
+ }).strict();
231
+ export const ArtifactShapeSchema = z.discriminatedUnion("kind", [
232
+ ArtifactPathShapeSchema,
233
+ ]);
234
+ /**
235
+ * Method-declared Artifact — a produced thing.
236
+ *
237
+ * `checks[]` is the locked vocabulary: an array of `Check` (with
238
+ * `kind` from `CHECK_KINDS`). The runtime evaluates them via the
239
+ * shared check evaluator and produces `Proof[]` on each compile run.
240
+ */
241
+ export const ArtifactSchema = z.object({
242
+ id: ArtifactIdSchema,
243
+ description: z.string().min(1),
244
+ shape: ArtifactShapeSchema,
245
+ checks: z.array(CheckSchema).default([]),
246
+ built_by_stages: z.array(z.string().regex(InterfIdPattern)).default([]),
247
+ }).strict();
248
+ /**
249
+ * Per-Artifact runtime status. Lives on compile-run resources and on
250
+ * preparation resources. `proofs[]` carries the structured evidence
251
+ * emitted by the shared check evaluator.
252
+ */
253
+ export const ArtifactStatusValueSchema = ReadyVerdictSchema;
254
+ export const ArtifactStatusSchema = z.object({
255
+ artifact_id: ArtifactIdSchema,
256
+ status: ReadyVerdictSchema,
257
+ built_by_stages: z.array(z.string().regex(InterfIdPattern)).default([]),
258
+ proofs: z.array(ProofSchema).default([]),
259
+ summary: z.string().min(1).optional(),
260
+ }).strict();
261
+ // ───────────────────────────────────────────────────────────────────────────
262
+ // Readiness — preparation-level aggregate verdict
263
+ //
264
+ // Rolls up artifact statuses + user-check results + engine-level gates
265
+ // (is the prep configured, has compile run, etc.) into a single
266
+ // `ready` / `not_ready` answer for the ICP.
267
+ // ───────────────────────────────────────────────────────────────────────────
61
268
  export const ReadinessStatusSchema = z.enum([
62
269
  "not-configured",
63
270
  "not-built",
@@ -74,11 +281,15 @@ export const ReadinessGateSchema = z.enum([
74
281
  "portable-context",
75
282
  "compile-run",
76
283
  "readiness-checks",
77
- "source-baseline",
78
- "portable-context-check",
79
284
  "checks-current",
80
285
  ]);
81
- export const ReadinessCheckSchema = z.object({
286
+ /**
287
+ * Per-gate status — one row in the readiness summary. A gate is a
288
+ * high-level layer (is config valid? is portable context built? did
289
+ * latest compile succeed?). Gate failures are aggregated alongside
290
+ * artifact-check failures into the overall `Readiness` verdict.
291
+ */
292
+ export const GateStatusSchema = z.object({
82
293
  gate: ReadinessGateSchema,
83
294
  ok: z.boolean(),
84
295
  status: ReadinessStatusSchema.optional(),
@@ -87,7 +298,7 @@ export const ReadinessCheckSchema = z.object({
87
298
  run_id: z.string().min(1).nullable().optional(),
88
299
  artifact_path: z.string().min(1).nullable().optional(),
89
300
  }).strict();
90
- export const ReadinessTargetResultSchema = z.object({
301
+ export const VerifyTargetResultSchema = z.object({
91
302
  passed: z.number().int().min(0),
92
303
  total: z.number().int().min(0),
93
304
  pass_rate: z.number().min(0).max(100).nullable(),
@@ -96,7 +307,14 @@ export const ReadinessTargetResultSchema = z.object({
96
307
  run_id: z.string().min(1).nullable().optional(),
97
308
  run_path: z.string().min(1).nullable().optional(),
98
309
  }).strict();
99
- export const ReadinessStateSchema = z.object({
310
+ /**
311
+ * Preparation-level readiness verdict.
312
+ *
313
+ * Field names retain the preparation-readiness wire shape
314
+ * (`latest_test_run_id`, `check_results`, `checks`). The exported type
315
+ * name is `Readiness`.
316
+ */
317
+ export const ReadinessSchema = z.object({
100
318
  kind: z.literal("interf-readiness-state"),
101
319
  version: z.literal(1),
102
320
  generated_at: z.string().min(1),
@@ -107,25 +325,18 @@ export const ReadinessStateSchema = z.object({
107
325
  portable_context_path: z.string().min(1).nullable(),
108
326
  latest_compile_run_id: z.string().min(1).nullable().optional(),
109
327
  latest_test_run_id: z.string().min(1).nullable().optional(),
110
- compile: ReadinessCheckSchema.nullable(),
328
+ compile: GateStatusSchema.nullable(),
111
329
  check_results: z.object({
112
330
  configured: z.number().int().min(0),
113
331
  fingerprint: z.string().min(1).nullable(),
114
- source_files: ReadinessTargetResultSchema.nullable(),
115
- portable_context: ReadinessTargetResultSchema.nullable(),
332
+ source_files: VerifyTargetResultSchema.nullable(),
333
+ portable_context: VerifyTargetResultSchema.nullable(),
116
334
  }).strict(),
117
- checks: z.array(ReadinessCheckSchema).default([]),
335
+ checks: z.array(GateStatusSchema).default([]),
118
336
  }).strict();
119
- export const RuntimeExecutorInfoSchema = z.object({
120
- kind: z.enum(["local-agent", "connected-provider", "managed"]),
121
- name: z.string(),
122
- display_name: z.string(),
123
- command: z.string().nullable(),
124
- model: z.string().nullable().optional(),
125
- effort: z.string().nullable().optional(),
126
- profile: z.string().nullable().optional(),
127
- timeout_ms: z.number().nullable().optional(),
128
- });
337
+ // ───────────────────────────────────────────────────────────────────────────
338
+ // User-defined verification (Q/A pairs) — the "user check" scope
339
+ // ───────────────────────────────────────────────────────────────────────────
129
340
  export const TestCaseExpectSchema = z.object({
130
341
  must_include: z.array(z.string().min(1)).optional(),
131
342
  must_include_one_of: z.array(z.array(z.string().min(1)).min(1)).optional(),
@@ -141,5 +352,54 @@ export const TestCaseExpectSchema = z.object({
141
352
  (value.must_not_include?.length ?? 0) > 0 ||
142
353
  value.min_words !== undefined ||
143
354
  value.max_words !== undefined, {
144
- message: "Test expectations must include at least one check",
355
+ message: "User check expectations must include at least one constraint",
145
356
  });
357
+ // ───────────────────────────────────────────────────────────────────────────
358
+ // Executor info
359
+ // ───────────────────────────────────────────────────────────────────────────
360
+ export const RuntimeExecutorInfoSchema = z.object({
361
+ kind: z.enum(["local-agent", "connected-provider", "managed"]),
362
+ name: z.string(),
363
+ display_name: z.string(),
364
+ command: z.string().nullable(),
365
+ model: z.string().nullable().optional(),
366
+ effort: z.string().nullable().optional(),
367
+ profile: z.string().nullable().optional(),
368
+ timeout_ms: z.number().nullable().optional(),
369
+ });
370
+ // ───────────────────────────────────────────────────────────────────────────
371
+ // Connected agents + roles (0.15)
372
+ // ───────────────────────────────────────────────────────────────────────────
373
+ /**
374
+ * The 5 canonical roles a Method stage can declare. Methods MAY declare
375
+ * custom role names; the engine treats any unknown role as `general`.
376
+ */
377
+ export const CANONICAL_ROLES = [
378
+ "extractor",
379
+ "summarizer",
380
+ "structurer",
381
+ "verifier",
382
+ "general",
383
+ ];
384
+ /**
385
+ * Open-ended role identifier. Methods invent role names freely; the
386
+ * role-router maps unknown names to `general` at run time.
387
+ */
388
+ export const RoleSchema = z.string().min(1);
389
+ /**
390
+ * One agent in the registry. `available` is a runtime-only flag — true
391
+ * if the command's first token resolves on PATH. Stripped before
392
+ * persistence.
393
+ */
394
+ export const AgentRecordSchema = z.object({
395
+ name: z.string().min(1),
396
+ display_name: z.string().min(1),
397
+ command: z.string().min(1),
398
+ source: z.enum(["builtin", "user"]),
399
+ available: z.boolean().optional(),
400
+ }).strict();
401
+ export const RoleMapSchema = z.record(RoleSchema, z.string().min(1));
402
+ export const AgentsRegistrySchema = z.object({
403
+ agents: z.array(AgentRecordSchema).default([]),
404
+ role_map: RoleMapSchema.default({}),
405
+ }).strict();
@@ -505,6 +505,14 @@ export function buildCreatePreparationActionDefinition(context) {
505
505
  };
506
506
  },
507
507
  fields: [
508
+ {
509
+ name: "path",
510
+ label: "Source folder",
511
+ type: "text",
512
+ help: "Absolute path to the folder Interf will read from. Files stay where they are; Interf reads them by reference.",
513
+ context: "Saved as the Preparation's source binding and sent as typed action input.",
514
+ placeholder: context.prepDataDir || "/Users/you/Documents/your-folder",
515
+ },
508
516
  {
509
517
  name: "about",
510
518
  label: "Agent job",
@@ -773,7 +781,7 @@ export function buildCreateMethodActionDefinition(context) {
773
781
  type: "textarea",
774
782
  rows: 3,
775
783
  help: "What this Method output should be able to prove.",
776
- context: "Guides readiness checks. Method acceptance criteria stay separate.",
784
+ context: "Guides readiness checks. Method Artifact checks stay separate.",
777
785
  placeholder: "Describe the evidence that should make this Method output ready.",
778
786
  },
779
787
  {
@@ -1121,7 +1129,6 @@ export function buildReadinessActionDraft(options) {
1121
1129
  values: {
1122
1130
  action_type: INTERF_SERVICE_ACTIONS.checkReadiness.serviceAction,
1123
1131
  preparation: options.preparation,
1124
- mode: "both",
1125
1132
  },
1126
1133
  };
1127
1134
  }
@@ -1,4 +1,4 @@
1
- import type { MethodExecutor } from "../agents/lib/executors.js";
1
+ import type { MethodExecutor } from "./agents/lib/executors.js";
2
2
  import type { LocalServiceActionPlanningContext } from "./runtime.js";
3
3
  import { type ActionProposalCreateRequest, type ActionProposalPlan } from "./lib/schema.js";
4
4
  export declare function buildActionPlannerPrompt(request: ActionProposalCreateRequest, context: LocalServiceActionPlanningContext, outputPath: string): string;
@@ -1,7 +1,7 @@
1
1
  import { existsSync, mkdirSync, readFileSync, } from "node:fs";
2
2
  import { join } from "node:path";
3
3
  import { methodIdForSourcePreparationConfig, } from "../methods/method-resolution.js";
4
- import { PACKAGE_ROOT } from "../method-package/lib/package-root.js";
4
+ import { PACKAGE_ROOT } from "../methods/package/lib/package-root.js";
5
5
  import { asPreparationDataDir, preparationServiceActionPlansRoot, } from "../contracts/lib/preparation-paths.js";
6
6
  import { ActionProposalPlanSchema, } from "./lib/schema.js";
7
7
  function extractJsonObject(text) {
@@ -14,5 +14,8 @@ export * as executors from "./lib/executors.js";
14
14
  export * as schema from "./lib/schema.js";
15
15
  export * as userConfig from "./lib/user-config.js";
16
16
  export * as compiledBootstrap from "./lib/compiled-bootstrap.js";
17
+ export * as registry from "./registry.js";
18
+ export * as roleRouter from "./role-router.js";
19
+ export * as roleExecutors from "./role-executors.js";
17
20
  export type { Agent, } from "./lib/types.js";
18
21
  export type { MethodExecutionProfile, MethodExecutor, MethodExecutorKind, } from "./lib/executors.js";
@@ -14,3 +14,6 @@ export * as executors from "./lib/executors.js";
14
14
  export * as schema from "./lib/schema.js";
15
15
  export * as userConfig from "./lib/user-config.js";
16
16
  export * as compiledBootstrap from "./lib/compiled-bootstrap.js";
17
+ export * as registry from "./registry.js";
18
+ export * as roleRouter from "./role-router.js";
19
+ export * as roleExecutors from "./role-executors.js";
@@ -1,6 +1,6 @@
1
1
  import { basename } from "node:path";
2
- import { readInterfConfig } from "../../project-model/interf-detect.js";
3
- import { resolveMethodId } from "../../methods/method-resolution.js";
2
+ import { readInterfConfig } from "../../../project/interf-detect.js";
3
+ import { resolveMethodId } from "../../../methods/method-resolution.js";
4
4
  import { projectCompiledQueryShell, renderClaudeBootstrap } from "./shells.js";
5
5
  export { renderClaudeBootstrap };
6
6
  export function refreshCompiledBootstrapGuidance(dirPath) {
@@ -0,0 +1,13 @@
1
+ import type { Agent } from "./types.js";
2
+ export declare function detectAgents(): Agent[];
3
+ /**
4
+ * Whether the executable named in an agent's `command` field resolves on
5
+ * PATH. Custom agents may register commands like `"opencode --prompt"`,
6
+ * so we only check the first whitespace-separated token.
7
+ */
8
+ export declare function agentCommandAvailable(command: string): boolean;
9
+ export declare function supportsAutomatedRuns(agent: Agent): boolean;
10
+ export declare function resolveAgent(): {
11
+ agent: Agent | null;
12
+ error?: string;
13
+ };
@@ -19,6 +19,17 @@ function commandExists(command) {
19
19
  return false;
20
20
  }
21
21
  }
22
+ /**
23
+ * Whether the executable named in an agent's `command` field resolves on
24
+ * PATH. Custom agents may register commands like `"opencode --prompt"`,
25
+ * so we only check the first whitespace-separated token.
26
+ */
27
+ export function agentCommandAvailable(command) {
28
+ const firstToken = command.trim().split(/\s+/)[0];
29
+ if (!firstToken)
30
+ return false;
31
+ return commandExists(firstToken);
32
+ }
22
33
  export function supportsAutomatedRuns(agent) {
23
34
  return agent.name === "claude-code" || agent.name === "codex";
24
35
  }
@@ -1,4 +1,4 @@
1
- import type { RuntimeExecutorInfo } from "../../contracts/lib/schema.js";
1
+ import type { RuntimeExecutorInfo } from "../../../contracts/lib/schema.js";
2
2
  import type { Agent } from "./types.js";
3
3
  export type MethodExecutorKind = "local-agent" | "connected-provider" | "managed";
4
4
  export interface MethodExecutionProfile {
@@ -21,7 +21,7 @@ export interface MethodExecutor {
21
21
  executionProfile?: MethodExecutionProfile;
22
22
  execute(rootPath: string, prompt: string, options?: MethodExecuteOptions): Promise<number>;
23
23
  }
24
- export type { RuntimeExecutorInfo } from "../../contracts/lib/schema.js";
24
+ export type { RuntimeExecutorInfo } from "../../../contracts/lib/schema.js";
25
25
  export declare function buildRuntimeExecutorInfo(executor: MethodExecutor): RuntimeExecutorInfo;
26
26
  export declare function createLocalAgentExecutor(agent: Agent, executionProfile?: MethodExecutionProfile): MethodExecutor;
27
27
  export declare function resolveLocalExecutor(options?: {
@@ -1,15 +1,22 @@
1
- import type { MethodImprovementContext } from "../../compiler/lib/schema.js";
2
- import type { RuntimeContractType } from "../../contracts/lib/schema.js";
3
- import type { SourceReadinessCheck } from "../../project-model/lib/schema.js";
4
- import { type ContextInterfaceZoneId as MethodZoneId } from "../../method-package/context-interface.js";
1
+ import type { MethodImprovementContext } from "../../compile/lib/schema.js";
2
+ import { type ArtifactPathShape, type Check, type RuntimeContractType } from "../../../contracts/lib/schema.js";
3
+ import type { SourceReadinessCheck } from "../../../project/lib/schema.js";
4
+ import { type ContextInterfaceArtifactId as MethodArtifactId } from "../../../methods/package/context-interface.js";
5
5
  export interface NativeStageDefinition {
6
6
  id: string;
7
7
  label: string;
8
8
  description: string;
9
9
  contractType: RuntimeContractType;
10
10
  skillDir: string;
11
- reads: MethodZoneId[];
12
- writes: MethodZoneId[];
11
+ reads: MethodArtifactId[];
12
+ writes: MethodArtifactId[];
13
+ }
14
+ export interface MethodAuthoringArtifactRequirement {
15
+ id: string;
16
+ description?: string;
17
+ shape: ArtifactPathShape;
18
+ checks: Check[];
19
+ stage_hint?: string;
13
20
  }
14
21
  export declare function writeNativeAgentSurface(rootPath: string, agentsContent: string, skillName: string, skillContent: string): boolean;
15
22
  export declare function renderCompiledAgents(compiledPath: string, name: string, methodId: string, about?: string, options?: {
@@ -27,6 +34,7 @@ export declare function createMethodAuthoringShell(options: {
27
34
  sourceFolderPath: string;
28
35
  taskPrompt: string;
29
36
  checks: SourceReadinessCheck[];
37
+ artifactRequirements?: MethodAuthoringArtifactRequirement[];
30
38
  }): {
31
39
  rootPath: string;
32
40
  methodBeforePath: string;