@interf/compiler 0.5.1 → 0.6.3

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 (353) hide show
  1. package/README.md +160 -201
  2. package/builtin-workflows/interf/README.md +22 -10
  3. package/builtin-workflows/interf/compile/stages/shape/SKILL.md +8 -5
  4. package/builtin-workflows/interf/compile/stages/structure/SKILL.md +3 -0
  5. package/builtin-workflows/interf/compile/stages/summarize/SKILL.md +18 -2
  6. package/builtin-workflows/interf/improve/SKILL.md +4 -4
  7. package/builtin-workflows/interf/use/query/SKILL.md +1 -1
  8. package/builtin-workflows/interf/workflow.json +19 -5
  9. package/builtin-workflows/interf/{compiled.schema.json → workflow.schema.json} +10 -3
  10. package/dist/bin.js +2 -28
  11. package/dist/{commands → cli/commands}/check-draft.d.ts +2 -2
  12. package/dist/{commands → cli/commands}/check-draft.js +13 -13
  13. package/dist/{commands → cli/commands}/compile-controller.d.ts +3 -3
  14. package/dist/{commands → cli/commands}/compile-controller.js +39 -44
  15. package/dist/cli/commands/compile.d.ts +33 -0
  16. package/dist/{commands → cli/commands}/compile.js +107 -33
  17. package/dist/{commands → cli/commands}/compiled-flow.d.ts +3 -4
  18. package/dist/{commands → cli/commands}/compiled-flow.js +9 -14
  19. package/dist/{commands → cli/commands}/create-workflow-wizard.d.ts +20 -2
  20. package/dist/cli/commands/create-workflow-wizard.js +288 -0
  21. package/dist/{commands → cli/commands}/create.d.ts +2 -2
  22. package/dist/cli/commands/create.js +166 -0
  23. package/dist/cli/commands/dataset-selection.d.ts +6 -0
  24. package/dist/cli/commands/dataset-selection.js +11 -0
  25. package/dist/{commands → cli/commands}/default.js +5 -5
  26. package/dist/{commands → cli/commands}/doctor.js +12 -13
  27. package/dist/{commands → cli/commands}/executor-flow.d.ts +2 -2
  28. package/dist/{commands → cli/commands}/executor-flow.js +17 -17
  29. package/dist/cli/commands/init.d.ts +11 -0
  30. package/dist/{commands → cli/commands}/init.js +202 -109
  31. package/dist/{commands → cli/commands}/list.js +9 -6
  32. package/dist/{commands → cli/commands}/reset.js +5 -5
  33. package/dist/{commands → cli/commands}/source-config-wizard.d.ts +10 -5
  34. package/dist/{commands → cli/commands}/source-config-wizard.js +202 -95
  35. package/dist/{commands → cli/commands}/status.js +20 -11
  36. package/dist/{commands → cli/commands}/test-flow.d.ts +13 -4
  37. package/dist/{commands → cli/commands}/test-flow.js +30 -26
  38. package/dist/cli/commands/test.d.ts +14 -0
  39. package/dist/{commands → cli/commands}/test.js +48 -40
  40. package/dist/{commands → cli/commands}/verify.js +4 -4
  41. package/dist/cli/index.d.ts +21 -0
  42. package/dist/cli/index.js +33 -0
  43. package/dist/index.d.ts +22 -11
  44. package/dist/index.js +15 -6
  45. package/dist/lib/agent-args.d.ts +1 -3
  46. package/dist/lib/agent-args.js +1 -42
  47. package/dist/lib/agent-constants.d.ts +1 -5
  48. package/dist/lib/agent-constants.js +1 -28
  49. package/dist/lib/agent-detection.d.ts +1 -7
  50. package/dist/lib/agent-detection.js +1 -65
  51. package/dist/lib/agent-execution.d.ts +1 -2
  52. package/dist/lib/agent-execution.js +1 -242
  53. package/dist/lib/agent-logs.d.ts +1 -2
  54. package/dist/lib/agent-logs.js +1 -17
  55. package/dist/lib/agent-preflight.d.ts +1 -7
  56. package/dist/lib/agent-preflight.js +1 -76
  57. package/dist/lib/agent-render.d.ts +1 -8
  58. package/dist/lib/agent-render.js +1 -218
  59. package/dist/lib/agent-shells.d.ts +1 -44
  60. package/dist/lib/agent-shells.js +1 -847
  61. package/dist/lib/agent-status.d.ts +1 -3
  62. package/dist/lib/agent-status.js +1 -58
  63. package/dist/lib/agent-types.d.ts +1 -30
  64. package/dist/lib/agent-types.js +1 -1
  65. package/dist/lib/agents.d.ts +1 -6
  66. package/dist/lib/agents.js +1 -5
  67. package/dist/lib/builtin-compiled-workflow.d.ts +1 -129
  68. package/dist/lib/builtin-compiled-workflow.js +1 -153
  69. package/dist/lib/compiled-compile.d.ts +1 -52
  70. package/dist/lib/compiled-compile.js +1 -274
  71. package/dist/lib/compiled-paths.d.ts +1 -39
  72. package/dist/lib/compiled-paths.js +3 -103
  73. package/dist/lib/compiled-raw.d.ts +1 -49
  74. package/dist/lib/compiled-raw.js +3 -102
  75. package/dist/lib/compiled-reset.d.ts +1 -1
  76. package/dist/lib/compiled-reset.js +3 -44
  77. package/dist/lib/compiled-schema.d.ts +1 -27
  78. package/dist/lib/compiled-schema.js +1 -110
  79. package/dist/lib/discovery.d.ts +1 -1
  80. package/dist/lib/discovery.js +2 -2
  81. package/dist/lib/execution-profile.d.ts +1 -17
  82. package/dist/lib/execution-profile.js +1 -84
  83. package/dist/lib/executors.d.ts +1 -32
  84. package/dist/lib/executors.js +1 -43
  85. package/dist/lib/interf-bootstrap.d.ts +1 -3
  86. package/dist/lib/interf-bootstrap.js +3 -18
  87. package/dist/lib/interf-detect.d.ts +1 -33
  88. package/dist/lib/interf-detect.js +3 -176
  89. package/dist/lib/interf-scaffold.d.ts +1 -2
  90. package/dist/lib/interf-scaffold.js +3 -121
  91. package/dist/lib/interf-workflow-package.d.ts +1 -20
  92. package/dist/lib/interf-workflow-package.js +1 -276
  93. package/dist/lib/interf.d.ts +1 -5
  94. package/dist/lib/interf.js +3 -4
  95. package/dist/lib/local-workflows.d.ts +1 -53
  96. package/dist/lib/local-workflows.js +1 -399
  97. package/dist/lib/package-root.d.ts +1 -0
  98. package/dist/lib/package-root.js +1 -0
  99. package/dist/lib/project-paths.d.ts +1 -11
  100. package/dist/lib/project-paths.js +3 -32
  101. package/dist/lib/runtime-acceptance.d.ts +1 -9
  102. package/dist/lib/runtime-acceptance.js +1 -257
  103. package/dist/lib/runtime-contracts.d.ts +1 -2
  104. package/dist/lib/runtime-contracts.js +1 -47
  105. package/dist/lib/runtime-inventory.d.ts +1 -7
  106. package/dist/lib/runtime-inventory.js +1 -29
  107. package/dist/lib/runtime-paths.d.ts +1 -7
  108. package/dist/lib/runtime-paths.js +1 -23
  109. package/dist/lib/runtime-prompt.d.ts +1 -2
  110. package/dist/lib/runtime-prompt.js +1 -46
  111. package/dist/lib/runtime-reconcile.d.ts +1 -2
  112. package/dist/lib/runtime-reconcile.js +1 -156
  113. package/dist/lib/runtime-runs.d.ts +1 -11
  114. package/dist/lib/runtime-runs.js +1 -250
  115. package/dist/lib/runtime-types.d.ts +1 -43
  116. package/dist/lib/runtime-types.js +1 -1
  117. package/dist/lib/runtime.d.ts +1 -6
  118. package/dist/lib/runtime.js +1 -5
  119. package/dist/lib/schema.d.ts +4 -1016
  120. package/dist/lib/schema.js +6 -539
  121. package/dist/lib/source-config.d.ts +1 -39
  122. package/dist/lib/source-config.js +3 -293
  123. package/dist/lib/state-artifacts.d.ts +1 -8
  124. package/dist/lib/state-artifacts.js +1 -13
  125. package/dist/lib/state-health.d.ts +1 -4
  126. package/dist/lib/state-health.js +1 -132
  127. package/dist/lib/state-io.d.ts +1 -10
  128. package/dist/lib/state-io.js +1 -76
  129. package/dist/lib/state-paths.d.ts +1 -4
  130. package/dist/lib/state-paths.js +1 -13
  131. package/dist/lib/state-view.d.ts +1 -4
  132. package/dist/lib/state-view.js +1 -103
  133. package/dist/lib/state.d.ts +1 -6
  134. package/dist/lib/state.js +1 -5
  135. package/dist/lib/test-execution.d.ts +1 -14
  136. package/dist/lib/test-execution.js +3 -525
  137. package/dist/lib/test-matrices.d.ts +1 -90
  138. package/dist/lib/test-matrices.js +3 -96
  139. package/dist/lib/test-paths.d.ts +1 -12
  140. package/dist/lib/test-paths.js +3 -59
  141. package/dist/lib/test-profile-presets.d.ts +1 -57
  142. package/dist/lib/test-profile-presets.js +3 -50
  143. package/dist/lib/test-sandbox.d.ts +1 -11
  144. package/dist/lib/test-sandbox.js +3 -105
  145. package/dist/lib/test-specs.d.ts +1 -7
  146. package/dist/lib/test-specs.js +3 -114
  147. package/dist/lib/test-targets.d.ts +1 -5
  148. package/dist/lib/test-targets.js +3 -38
  149. package/dist/lib/test-types.d.ts +1 -17
  150. package/dist/lib/test-types.js +3 -1
  151. package/dist/lib/test.d.ts +1 -4
  152. package/dist/lib/test.js +3 -3
  153. package/dist/lib/validate-compiled.d.ts +1 -27
  154. package/dist/lib/validate-compiled.js +1 -238
  155. package/dist/lib/validate-helpers.d.ts +1 -12
  156. package/dist/lib/validate-helpers.js +1 -41
  157. package/dist/lib/validate.d.ts +1 -19
  158. package/dist/lib/validate.js +1 -256
  159. package/dist/lib/workflow-authoring.d.ts +1 -0
  160. package/dist/lib/workflow-authoring.js +1 -0
  161. package/dist/lib/workflow-definitions.d.ts +1 -68
  162. package/dist/lib/workflow-definitions.js +1 -206
  163. package/dist/lib/workflow-edit-session.d.ts +1 -0
  164. package/dist/lib/workflow-edit-session.js +1 -0
  165. package/dist/lib/workflow-edit-utils.d.ts +1 -0
  166. package/dist/lib/workflow-edit-utils.js +1 -0
  167. package/dist/lib/workflow-helpers.d.ts +1 -38
  168. package/dist/lib/workflow-helpers.js +1 -167
  169. package/dist/lib/workflow-improvement.d.ts +1 -22
  170. package/dist/lib/workflow-improvement.js +1 -396
  171. package/dist/lib/workflow-primitives.d.ts +1 -2
  172. package/dist/lib/workflow-primitives.js +1 -5
  173. package/dist/lib/workflow-review-paths.d.ts +1 -10
  174. package/dist/lib/workflow-review-paths.js +1 -27
  175. package/dist/lib/workflow-stage-policy.d.ts +1 -0
  176. package/dist/lib/workflow-stage-policy.js +1 -0
  177. package/dist/lib/workflow-stage-runner.d.ts +1 -41
  178. package/dist/lib/workflow-stage-runner.js +1 -109
  179. package/dist/lib/workflows.d.ts +1 -15
  180. package/dist/lib/workflows.js +1 -31
  181. package/dist/packages/agents/index.d.ts +17 -0
  182. package/dist/packages/agents/index.js +15 -0
  183. package/dist/packages/agents/lib/agents.d.ts +6 -0
  184. package/dist/packages/agents/lib/agents.js +5 -0
  185. package/dist/packages/agents/lib/args.d.ts +4 -0
  186. package/dist/packages/agents/lib/args.js +52 -0
  187. package/dist/packages/agents/lib/constants.d.ts +5 -0
  188. package/dist/packages/agents/lib/constants.js +28 -0
  189. package/dist/packages/agents/lib/detection.d.ts +7 -0
  190. package/dist/packages/agents/lib/detection.js +65 -0
  191. package/dist/packages/agents/lib/execution-profile.d.ts +17 -0
  192. package/dist/packages/agents/lib/execution-profile.js +84 -0
  193. package/dist/packages/agents/lib/execution.d.ts +2 -0
  194. package/dist/packages/agents/lib/execution.js +243 -0
  195. package/dist/packages/agents/lib/executors.d.ts +32 -0
  196. package/dist/packages/agents/lib/executors.js +45 -0
  197. package/dist/packages/agents/lib/logs.d.ts +2 -0
  198. package/dist/packages/agents/lib/logs.js +17 -0
  199. package/dist/packages/agents/lib/preflight.d.ts +7 -0
  200. package/dist/packages/agents/lib/preflight.js +77 -0
  201. package/dist/packages/agents/lib/render.d.ts +8 -0
  202. package/dist/packages/agents/lib/render.js +218 -0
  203. package/dist/packages/agents/lib/schema.d.ts +8 -0
  204. package/dist/packages/agents/lib/schema.js +7 -0
  205. package/dist/packages/agents/lib/shells.d.ts +69 -0
  206. package/dist/packages/agents/lib/shells.js +1021 -0
  207. package/dist/packages/agents/lib/status.d.ts +3 -0
  208. package/dist/packages/agents/lib/status.js +58 -0
  209. package/dist/packages/agents/lib/types.d.ts +30 -0
  210. package/dist/packages/agents/lib/types.js +1 -0
  211. package/dist/{lib → packages/agents/lib}/user-config.d.ts +1 -0
  212. package/dist/{lib → packages/agents/lib}/user-config.js +3 -2
  213. package/dist/packages/compiler/compiled-compile.d.ts +48 -0
  214. package/dist/packages/compiler/compiled-compile.js +256 -0
  215. package/dist/packages/compiler/compiled-schema.d.ts +31 -0
  216. package/dist/packages/compiler/compiled-schema.js +141 -0
  217. package/dist/packages/compiler/index.d.ts +24 -0
  218. package/dist/packages/compiler/index.js +23 -0
  219. package/dist/packages/compiler/lib/schema.d.ts +684 -0
  220. package/dist/packages/compiler/lib/schema.js +361 -0
  221. package/dist/packages/compiler/runtime-acceptance.d.ts +9 -0
  222. package/dist/packages/compiler/runtime-acceptance.js +269 -0
  223. package/dist/packages/compiler/runtime-contracts.d.ts +2 -0
  224. package/dist/packages/compiler/runtime-contracts.js +48 -0
  225. package/dist/packages/compiler/runtime-inventory.d.ts +7 -0
  226. package/dist/packages/compiler/runtime-inventory.js +29 -0
  227. package/dist/packages/compiler/runtime-paths.d.ts +8 -0
  228. package/dist/packages/compiler/runtime-paths.js +26 -0
  229. package/dist/packages/compiler/runtime-prompt.d.ts +2 -0
  230. package/dist/packages/compiler/runtime-prompt.js +48 -0
  231. package/dist/packages/compiler/runtime-reconcile.d.ts +2 -0
  232. package/dist/packages/compiler/runtime-reconcile.js +193 -0
  233. package/dist/packages/compiler/runtime-runs.d.ts +11 -0
  234. package/dist/packages/compiler/runtime-runs.js +262 -0
  235. package/dist/packages/compiler/runtime-types.d.ts +43 -0
  236. package/dist/packages/compiler/runtime-types.js +1 -0
  237. package/dist/packages/compiler/runtime.d.ts +6 -0
  238. package/dist/packages/compiler/runtime.js +5 -0
  239. package/dist/packages/compiler/state-artifacts.d.ts +8 -0
  240. package/dist/packages/compiler/state-artifacts.js +13 -0
  241. package/dist/packages/compiler/state-health.d.ts +4 -0
  242. package/dist/packages/compiler/state-health.js +132 -0
  243. package/dist/packages/compiler/state-io.d.ts +10 -0
  244. package/dist/packages/compiler/state-io.js +76 -0
  245. package/dist/packages/compiler/state-paths.d.ts +4 -0
  246. package/dist/packages/compiler/state-paths.js +13 -0
  247. package/dist/packages/compiler/state-view.d.ts +4 -0
  248. package/dist/packages/compiler/state-view.js +103 -0
  249. package/dist/packages/compiler/state.d.ts +7 -0
  250. package/dist/packages/compiler/state.js +12 -0
  251. package/dist/packages/compiler/validate-compiled.d.ts +27 -0
  252. package/dist/packages/compiler/validate-compiled.js +241 -0
  253. package/dist/packages/compiler/validate-helpers.d.ts +12 -0
  254. package/dist/packages/compiler/validate-helpers.js +41 -0
  255. package/dist/packages/compiler/validate.d.ts +21 -0
  256. package/dist/packages/compiler/validate.js +249 -0
  257. package/dist/packages/compiler/workflow-primitives.d.ts +2 -0
  258. package/dist/packages/compiler/workflow-primitives.js +5 -0
  259. package/dist/packages/compiler/workflows.d.ts +15 -0
  260. package/dist/packages/compiler/workflows.js +31 -0
  261. package/dist/packages/project-model/compiled-paths.d.ts +40 -0
  262. package/dist/packages/project-model/compiled-paths.js +106 -0
  263. package/dist/packages/project-model/compiled-raw.d.ts +49 -0
  264. package/dist/packages/project-model/compiled-raw.js +102 -0
  265. package/dist/packages/project-model/compiled-reset.d.ts +2 -0
  266. package/dist/packages/project-model/compiled-reset.js +72 -0
  267. package/dist/packages/project-model/index.d.ts +11 -0
  268. package/dist/packages/project-model/index.js +10 -0
  269. package/dist/packages/project-model/interf-bootstrap.d.ts +3 -0
  270. package/dist/packages/project-model/interf-bootstrap.js +18 -0
  271. package/dist/packages/project-model/interf-detect.d.ts +33 -0
  272. package/dist/packages/project-model/interf-detect.js +176 -0
  273. package/dist/packages/project-model/interf-scaffold.d.ts +2 -0
  274. package/dist/packages/project-model/interf-scaffold.js +124 -0
  275. package/dist/packages/project-model/interf.d.ts +5 -0
  276. package/dist/packages/project-model/interf.js +4 -0
  277. package/dist/packages/project-model/lib/schema.d.ts +125 -0
  278. package/dist/packages/project-model/lib/schema.js +62 -0
  279. package/dist/packages/project-model/project-paths.d.ts +11 -0
  280. package/dist/packages/project-model/project-paths.js +32 -0
  281. package/dist/packages/project-model/source-config.d.ts +38 -0
  282. package/dist/packages/project-model/source-config.js +297 -0
  283. package/dist/packages/testing/index.d.ts +13 -0
  284. package/dist/packages/testing/index.js +10 -0
  285. package/dist/packages/testing/lib/schema.d.ts +261 -0
  286. package/dist/packages/testing/lib/schema.js +119 -0
  287. package/dist/packages/testing/test-execution.d.ts +14 -0
  288. package/dist/packages/testing/test-execution.js +525 -0
  289. package/dist/packages/testing/test-matrices.d.ts +90 -0
  290. package/dist/packages/testing/test-matrices.js +96 -0
  291. package/dist/packages/testing/test-paths.d.ts +12 -0
  292. package/dist/packages/testing/test-paths.js +59 -0
  293. package/dist/packages/testing/test-profile-presets.d.ts +57 -0
  294. package/dist/packages/testing/test-profile-presets.js +50 -0
  295. package/dist/packages/testing/test-sandbox.d.ts +11 -0
  296. package/dist/packages/testing/test-sandbox.js +105 -0
  297. package/dist/packages/testing/test-specs.d.ts +7 -0
  298. package/dist/packages/testing/test-specs.js +114 -0
  299. package/dist/packages/testing/test-targets.d.ts +5 -0
  300. package/dist/packages/testing/test-targets.js +38 -0
  301. package/dist/packages/testing/test-types.d.ts +16 -0
  302. package/dist/packages/testing/test-types.js +1 -0
  303. package/dist/packages/testing/test.d.ts +4 -0
  304. package/dist/packages/testing/test.js +3 -0
  305. package/dist/packages/workflow-authoring/index.d.ts +4 -0
  306. package/dist/packages/workflow-authoring/index.js +4 -0
  307. package/dist/packages/workflow-authoring/lib/workflow-edit-utils.d.ts +10 -0
  308. package/dist/packages/workflow-authoring/lib/workflow-edit-utils.js +39 -0
  309. package/dist/packages/workflow-authoring/workflow-authoring.d.ts +26 -0
  310. package/dist/packages/workflow-authoring/workflow-authoring.js +120 -0
  311. package/dist/packages/workflow-authoring/workflow-edit-session.d.ts +16 -0
  312. package/dist/packages/workflow-authoring/workflow-edit-session.js +57 -0
  313. package/dist/packages/workflow-authoring/workflow-improvement.d.ts +23 -0
  314. package/dist/packages/workflow-authoring/workflow-improvement.js +209 -0
  315. package/dist/packages/workflow-package/builtin-compiled-workflow.d.ts +38 -0
  316. package/dist/packages/workflow-package/builtin-compiled-workflow.js +94 -0
  317. package/dist/packages/workflow-package/index.d.ts +9 -0
  318. package/dist/packages/workflow-package/index.js +9 -0
  319. package/dist/packages/workflow-package/interf-workflow-package.d.ts +25 -0
  320. package/dist/packages/workflow-package/interf-workflow-package.js +342 -0
  321. package/dist/{lib/config.d.ts → packages/workflow-package/lib/package-root.d.ts} +0 -1
  322. package/dist/packages/workflow-package/lib/package-root.js +6 -0
  323. package/dist/packages/workflow-package/local-workflows.d.ts +54 -0
  324. package/dist/packages/workflow-package/local-workflows.js +422 -0
  325. package/dist/packages/workflow-package/workflow-definitions.d.ts +78 -0
  326. package/dist/packages/workflow-package/workflow-definitions.js +203 -0
  327. package/dist/packages/workflow-package/workflow-helpers.d.ts +38 -0
  328. package/dist/packages/workflow-package/workflow-helpers.js +167 -0
  329. package/dist/packages/workflow-package/workflow-review-paths.d.ts +10 -0
  330. package/dist/packages/workflow-package/workflow-review-paths.js +27 -0
  331. package/dist/packages/workflow-package/workflow-stage-policy.d.ts +5 -0
  332. package/dist/packages/workflow-package/workflow-stage-policy.js +31 -0
  333. package/dist/packages/workflow-package/workflow-stage-runner.d.ts +41 -0
  334. package/dist/packages/workflow-package/workflow-stage-runner.js +109 -0
  335. package/package.json +44 -21
  336. package/dist/commands/compile.d.ts +0 -15
  337. package/dist/commands/create-workflow-wizard.js +0 -125
  338. package/dist/commands/create.js +0 -162
  339. package/dist/commands/init.d.ts +0 -3
  340. package/dist/commands/test.d.ts +0 -9
  341. package/dist/lib/compiled-home.d.ts +0 -5
  342. package/dist/lib/compiled-home.js +0 -32
  343. package/dist/lib/config.js +0 -9
  344. package/dist/lib/obsidian.d.ts +0 -1
  345. package/dist/lib/obsidian.js +0 -15
  346. package/dist/lib/summarize-plan.d.ts +0 -17
  347. package/dist/lib/summarize-plan.js +0 -120
  348. /package/dist/{commands → cli/commands}/default.d.ts +0 -0
  349. /package/dist/{commands → cli/commands}/doctor.d.ts +0 -0
  350. /package/dist/{commands → cli/commands}/list.d.ts +0 -0
  351. /package/dist/{commands → cli/commands}/reset.d.ts +0 -0
  352. /package/dist/{commands → cli/commands}/status.d.ts +0 -0
  353. /package/dist/{commands → cli/commands}/verify.d.ts +0 -0
@@ -0,0 +1,166 @@
1
+ import chalk from "chalk";
2
+ import * as p from "@clack/prompts";
3
+ import { detectInterf, resolveSourceControlPath, } from "../../packages/project-model/interf.js";
4
+ import { addExecutionProfileOptions, executionProfileFromArgv, } from "../../packages/agents/lib/execution-profile.js";
5
+ import { listSourceDatasetConfigs, loadSourceFolderConfig, syncCompiledInterfConfigFromSourceDatasetConfig, upsertSourceDatasetConfig, } from "../../packages/project-model/source-config.js";
6
+ import { createWorkflowWizard, } from "./create-workflow-wizard.js";
7
+ import { findBuiltCompiledPath, } from "./compiled-flow.js";
8
+ import { DEFAULT_COMPILED_NAME, promptSingleCompiledConfig, } from "./source-config-wizard.js";
9
+ function normalizeCreateTarget(value) {
10
+ if (!value)
11
+ return null;
12
+ switch (value) {
13
+ case "dataset":
14
+ case "ds":
15
+ return "dataset";
16
+ case "workflow":
17
+ case "wf":
18
+ return "workflow";
19
+ default:
20
+ return null;
21
+ }
22
+ }
23
+ async function selectCreateTarget() {
24
+ return p.select({
25
+ message: "Create what?",
26
+ options: [
27
+ {
28
+ value: "dataset",
29
+ label: "Dataset (Recommended)",
30
+ hint: "Add one dataset entry to this project",
31
+ },
32
+ {
33
+ value: "workflow",
34
+ label: "Workflow",
35
+ hint: "Create a reusable local workflow",
36
+ },
37
+ ],
38
+ });
39
+ }
40
+ async function maybeAssignWorkflowToDataset(sourcePath, workflowId) {
41
+ const config = loadSourceFolderConfig(sourcePath);
42
+ const datasets = listSourceDatasetConfigs(config);
43
+ if (datasets.length === 0) {
44
+ p.log.info(`Created workflow "${workflowId}".`);
45
+ p.log.info(`Next: run \`interf\`, add a setup, then assign workflow "${workflowId}" from that menu.`);
46
+ return;
47
+ }
48
+ const assignNow = await p.confirm({
49
+ message: "Assign this workflow to a dataset now? (Recommended)",
50
+ initialValue: true,
51
+ });
52
+ if (p.isCancel(assignNow) || !assignNow) {
53
+ p.log.info(`Created workflow "${workflowId}".`);
54
+ p.log.info(`Next: run \`interf\`, open a saved setup, and assign workflow "${workflowId}" from that menu.`);
55
+ return;
56
+ }
57
+ let targetDataset = datasets[0] ?? null;
58
+ if (datasets.length > 1) {
59
+ const selected = await p.select({
60
+ message: "Which source folder setup should use this workflow?",
61
+ options: datasets.map((dataset) => ({
62
+ value: dataset.name,
63
+ label: dataset.name,
64
+ hint: `${dataset.path} · ${dataset.about ?? `${dataset.checks.length} check${dataset.checks.length === 1 ? "" : "s"}`}`,
65
+ })),
66
+ });
67
+ if (p.isCancel(selected))
68
+ return;
69
+ targetDataset = datasets.find((dataset) => dataset.name === selected) ?? null;
70
+ }
71
+ if (!targetDataset)
72
+ return;
73
+ const nextConfig = {
74
+ ...targetDataset,
75
+ workflow: workflowId,
76
+ };
77
+ upsertSourceDatasetConfig(sourcePath, nextConfig, {
78
+ matchName: targetDataset.name,
79
+ });
80
+ const builtCompiledPath = findBuiltCompiledPath(sourcePath, targetDataset.name);
81
+ if (builtCompiledPath) {
82
+ syncCompiledInterfConfigFromSourceDatasetConfig(builtCompiledPath, nextConfig);
83
+ }
84
+ p.log.info(`Assigned workflow "${workflowId}" to dataset "${targetDataset.name}".`);
85
+ if (builtCompiledPath) {
86
+ p.log.info("The active local copy for that compiled context lives under `.interf/workflow/`.");
87
+ }
88
+ p.log.info("Next: run `interf compile`, then `interf test`.");
89
+ }
90
+ export const createCommand = {
91
+ command: "create [type]",
92
+ describe: "Create a dataset entry or reusable workflow",
93
+ builder: (yargs) => addExecutionProfileOptions(yargs.positional("type", {
94
+ type: "string",
95
+ describe: "Type to create (`dataset` or `workflow`)",
96
+ default: undefined,
97
+ })),
98
+ handler: async (argv) => {
99
+ const rawType = argv.type;
100
+ let type = normalizeCreateTarget(rawType);
101
+ const executionProfile = executionProfileFromArgv(argv);
102
+ if (rawType && !type) {
103
+ process.exitCode = 1;
104
+ p.log.error(`Unknown create target: ${rawType}`);
105
+ return;
106
+ }
107
+ if (!type) {
108
+ const selected = await selectCreateTarget();
109
+ if (p.isCancel(selected))
110
+ return;
111
+ type = selected;
112
+ }
113
+ if (type === "workflow") {
114
+ const detected = detectInterf(process.cwd());
115
+ const workflowId = await createWorkflowWizard({
116
+ sourcePath: detected ? resolveSourceControlPath(detected.path) : process.cwd(),
117
+ executionProfile,
118
+ });
119
+ if (typeof workflowId === "string") {
120
+ await maybeAssignWorkflowToDataset(detected ? resolveSourceControlPath(detected.path) : process.cwd(), workflowId);
121
+ }
122
+ return;
123
+ }
124
+ await createCompiledWizard({ executionProfile });
125
+ },
126
+ };
127
+ export async function createCompiledWizard(options = {}) {
128
+ if (options.intro !== false) {
129
+ p.intro(chalk.bold("Add a dataset"));
130
+ }
131
+ const cwd = process.cwd();
132
+ const detected = detectInterf(cwd);
133
+ if (detected) {
134
+ process.exitCode = 1;
135
+ p.log.error("You are already inside a compiled context.");
136
+ return;
137
+ }
138
+ const savedDatasets = listSourceDatasetConfigs(loadSourceFolderConfig(cwd));
139
+ if (savedDatasets.length > 0) {
140
+ p.log.info(`This project already has ${savedDatasets.length} saved setup${savedDatasets.length === 1 ? "" : "s"} in interf.json. Add another only when you need a separate folder, focus, or check set.`);
141
+ }
142
+ p.log.info("Interf works one source-folder setup at a time. Start with the task, the relevant files, and a few checks, then build a context folder when you want to prepare that task context for your agents.");
143
+ const existingConfig = loadSourceFolderConfig(cwd);
144
+ const draft = await promptSingleCompiledConfig({
145
+ projectPath: cwd,
146
+ initial: { name: DEFAULT_COMPILED_NAME },
147
+ introStyle: existingConfig ? "additional" : "first",
148
+ });
149
+ if (!draft)
150
+ return;
151
+ const configToSave = {
152
+ ...draft,
153
+ workflow: "interf",
154
+ };
155
+ const existingNames = new Set(listSourceDatasetConfigs(existingConfig).map((dataset) => dataset.name));
156
+ if (existingNames.has(configToSave.name)) {
157
+ process.exitCode = 1;
158
+ p.log.error(`Setup "${configToSave.name}" already exists. Use \`interf\` or \`interf init\` to edit it.`);
159
+ return;
160
+ }
161
+ upsertSourceDatasetConfig(cwd, configToSave);
162
+ p.outro(configToSave.checks.length > 0
163
+ ? "Saved dataset.\nNext:\n interf test\n interf compile"
164
+ : "Saved dataset.\nNext:\n interf or interf init");
165
+ }
166
+ export { formatWorkflowLabel, createWorkflowWizard, createCompiledWorkflowWizard, } from "./create-workflow-wizard.js";
@@ -0,0 +1,6 @@
1
+ import type { SourceDatasetConfig } from "../../packages/project-model/lib/schema.js";
2
+ export declare function resolveConfiguredDatasetSelection(options: {
3
+ sourcePath: string;
4
+ requestedDatasetName?: string | null;
5
+ hintedDatasetConfig?: SourceDatasetConfig | null;
6
+ }): SourceDatasetConfig | null;
@@ -0,0 +1,11 @@
1
+ import { findSavedCompiledConfig } from "./compiled-flow.js";
2
+ export function resolveConfiguredDatasetSelection(options) {
3
+ if (options.hintedDatasetConfig &&
4
+ (!options.requestedDatasetName || options.hintedDatasetConfig.name === options.requestedDatasetName)) {
5
+ return options.hintedDatasetConfig;
6
+ }
7
+ if (!options.requestedDatasetName) {
8
+ return null;
9
+ }
10
+ return findSavedCompiledConfig(options.sourcePath, options.requestedDatasetName);
11
+ }
@@ -1,11 +1,11 @@
1
1
  import chalk from "chalk";
2
- import { loadUserConfig } from "../lib/user-config.js";
2
+ import { userConfig } from "../../packages/agents/index.js";
3
3
  import { runInitCommand } from "./init.js";
4
4
  function printStaticLanding() {
5
- const config = loadUserConfig();
5
+ const config = userConfig.loadUserConfig();
6
6
  console.log();
7
- console.log(chalk.bold(" Interf Compiler"));
8
- console.log(chalk.dim(" Define truth checks, measure files-as-is, then compile only if it improves accuracy."));
7
+ console.log(chalk.bold(" Interf"));
8
+ console.log(chalk.dim(" Prepare task context for your agents from the files behind a task, then test it and use self-improving loops until the checks pass."));
9
9
  console.log();
10
10
  if (config) {
11
11
  console.log(chalk.dim(` Agent: ${config.agent}`));
@@ -20,7 +20,7 @@ function printStaticLanding() {
20
20
  console.log(chalk.dim(" More:"));
21
21
  console.log(chalk.dim(" interf init"));
22
22
  console.log(chalk.dim(" interf create workflow"));
23
- console.log(chalk.dim(" interf doctor"));
23
+ console.log(chalk.dim(" interf doctor --live"));
24
24
  console.log(chalk.dim(" interf --help"));
25
25
  console.log();
26
26
  }
@@ -1,6 +1,5 @@
1
1
  import chalk from "chalk";
2
- import { resolveAgent, runAgentPreflight } from "../lib/agents.js";
3
- import { loadUserConfig } from "../lib/user-config.js";
2
+ import { agents, userConfig } from "../../packages/agents/index.js";
4
3
  function iconFor(status) {
5
4
  if (status === "pass")
6
5
  return chalk.green("✓");
@@ -12,7 +11,7 @@ function iconFor(status) {
12
11
  }
13
12
  export const doctorCommand = {
14
13
  command: "doctor",
15
- describe: "Check local executor setup before a real compile",
14
+ describe: "Check local executor setup before a real local run",
16
15
  builder: (yargs) => yargs
17
16
  .option("live", {
18
17
  type: "boolean",
@@ -26,12 +25,12 @@ export const doctorCommand = {
26
25
  }),
27
26
  handler: async (argv) => {
28
27
  const checks = [];
29
- const config = loadUserConfig();
30
- const { agent, error } = resolveAgent();
28
+ const config = userConfig.loadUserConfig();
29
+ const { agent, error } = agents.resolveAgent();
31
30
  if (config) {
32
31
  checks.push({
33
32
  id: "config",
34
- label: "Interf Compiler setup",
33
+ label: "Interf setup",
35
34
  status: "pass",
36
35
  message: `Configured default agent: ${config.agent}`,
37
36
  });
@@ -39,9 +38,9 @@ export const doctorCommand = {
39
38
  else {
40
39
  checks.push({
41
40
  id: "config",
42
- label: "Interf Compiler setup",
41
+ label: "Interf setup",
43
42
  status: "warn",
44
- message: "No saved Interf Compiler setup found. `interf` or `interf init` is recommended for deterministic local runs.",
43
+ message: "No saved Interf setup found. `interf` or `interf init` is recommended for deterministic local runs.",
45
44
  });
46
45
  }
47
46
  if (!agent) {
@@ -56,7 +55,7 @@ export const doctorCommand = {
56
55
  }
57
56
  else {
58
57
  console.log();
59
- console.log(chalk.bold(" Interf Compiler doctor"));
58
+ console.log(chalk.bold(" Interf doctor"));
60
59
  console.log();
61
60
  for (const check of checks) {
62
61
  console.log(` ${iconFor(check.status)} ${check.label}: ${check.message}`);
@@ -73,13 +72,13 @@ export const doctorCommand = {
73
72
  message: `${agent.displayName} is configured and available as \`${agent.command}\``,
74
73
  });
75
74
  if (argv.live) {
76
- const preflight = runAgentPreflight(agent);
75
+ const preflight = agents.runAgentPreflight(agent);
77
76
  checks.push({
78
77
  id: "live",
79
78
  label: "Live executor preflight",
80
79
  status: preflight.ok ? "pass" : "fail",
81
80
  message: preflight.ok
82
- ? `${agent.displayName} accepted Interf Compiler's automated run invocation`
81
+ ? `${agent.displayName} accepted Interf's automated run invocation`
83
82
  : preflight.timedOut
84
83
  ? `${agent.displayName} timed out during preflight`
85
84
  : preflight.error ?? `${agent.displayName} could not complete the preflight run`,
@@ -98,7 +97,7 @@ export const doctorCommand = {
98
97
  id: "live",
99
98
  label: "Live executor preflight",
100
99
  status: "skipped",
101
- message: "Skipped. Run `interf doctor --live` to exercise the real local agent before a compile.",
100
+ message: "Skipped. Run `interf doctor --live` to exercise the real local agent before a check draft, workflow authoring run, test, or compile.",
102
101
  });
103
102
  }
104
103
  const ok = checks.every((check) => check.status !== "fail");
@@ -115,7 +114,7 @@ export const doctorCommand = {
115
114
  }
116
115
  else {
117
116
  console.log();
118
- console.log(chalk.bold(" Interf Compiler doctor"));
117
+ console.log(chalk.bold(" Interf doctor"));
119
118
  console.log();
120
119
  for (const check of checks) {
121
120
  console.log(` ${iconFor(check.status)} ${check.label}: ${check.message}`);
@@ -1,4 +1,4 @@
1
- import { type WorkflowExecutionProfile, type WorkflowExecutor } from "../lib/executors.js";
1
+ import { type WorkflowExecutionProfile, type WorkflowExecutor } from "../../packages/agents/index.js";
2
2
  export interface RunAgentOption {
3
3
  name: string;
4
4
  displayName: string;
@@ -21,7 +21,7 @@ export declare function promptForTestAgents(): Promise<{
21
21
  export declare function resolveOrConfigureLocalExecutor(options?: {
22
22
  preflight?: boolean;
23
23
  executionProfile?: WorkflowExecutionProfile;
24
- purpose?: "compile" | "test" | "draft";
24
+ purpose?: "compile" | "test" | "draft" | "workflow";
25
25
  }): Promise<{
26
26
  executor: WorkflowExecutor | null;
27
27
  error?: string;
@@ -1,31 +1,27 @@
1
1
  import * as p from "@clack/prompts";
2
- import { AGENTS } from "../lib/agent-constants.js";
3
- import { detectAgents, ensureAgentAutomatedRunReady, supportsAutomatedRuns } from "../lib/agents.js";
4
- import { createLocalAgentExecutor, resolveLocalExecutor, } from "../lib/executors.js";
5
- import { loadUserConfig, saveUserConfig } from "../lib/user-config.js";
2
+ import { constants, agents, executors, userConfig } from "../../packages/agents/index.js";
6
3
  const promptedPurposes = new Set();
7
4
  function supportedDetectedAgents() {
8
- return detectAgents().filter((agent) => AGENTS.some((candidate) => candidate.name === agent.name) && supportsAutomatedRuns(agent));
5
+ return agents.detectAgents().filter((agent) => constants.AGENTS.some((candidate) => candidate.name === agent.name) && agents.supportsAutomatedRuns(agent));
9
6
  }
10
7
  export function resolvedConfiguredAgentName() {
11
- const current = loadUserConfig();
8
+ const current = userConfig.loadUserConfig();
12
9
  if (!current)
13
10
  return null;
14
- const configured = AGENTS.find((agent) => agent.command === current.agentCommand) ??
15
- AGENTS.find((agent) => agent.name === current.agent) ??
16
- AGENTS.find((agent) => agent.displayName === current.agent);
11
+ const configured = constants.AGENTS.find((agent) => agent.command === current.agentCommand) ??
12
+ constants.AGENTS.find((agent) => agent.name === current.agent) ??
13
+ constants.AGENTS.find((agent) => agent.displayName === current.agent);
17
14
  return configured?.name ?? null;
18
15
  }
19
16
  function persistSelectedAgent(selectedName) {
20
17
  const selected = supportedDetectedAgents().find((agent) => agent.name === selectedName);
21
18
  if (!selected)
22
19
  return;
23
- const current = loadUserConfig();
24
- saveUserConfig({
20
+ const current = userConfig.loadUserConfig();
21
+ userConfig.saveUserConfig({
25
22
  agent: selected.name,
26
23
  agentCommand: selected.command,
27
24
  skillsInstalled: current?.skillsInstalled ?? false,
28
- ...(current?.viewer ? { viewer: current.viewer } : {}),
29
25
  initialized: current?.initialized ?? new Date().toISOString(),
30
26
  });
31
27
  }
@@ -44,13 +40,13 @@ export function resolveNamedLocalExecutor(agentName, options = {}) {
44
40
  return { executor: null, error: `Local agent \"${agentName}\" is not detected.` };
45
41
  }
46
42
  if (options.preflight !== false) {
47
- const readiness = ensureAgentAutomatedRunReady(agent);
43
+ const readiness = agents.ensureAgentAutomatedRunReady(agent);
48
44
  if (!readiness.ok) {
49
45
  return { executor: null, error: readiness.error };
50
46
  }
51
47
  }
52
48
  return {
53
- executor: createLocalAgentExecutor(agent, options.executionProfile),
49
+ executor: executors.createLocalAgentExecutor(agent, options.executionProfile),
54
50
  };
55
51
  }
56
52
  export async function promptForTestAgents() {
@@ -89,7 +85,11 @@ export async function promptForTestAgents() {
89
85
  return { agents, cancelled: false };
90
86
  }
91
87
  async function promptForRunAgent(purpose) {
92
- const purposeLabel = purpose === "draft" ? "truth-check draft" : purpose;
88
+ const purposeLabel = purpose === "draft"
89
+ ? "check draft"
90
+ : purpose === "workflow"
91
+ ? "workflow authoring"
92
+ : purpose;
93
93
  const detected = supportedDetectedAgents();
94
94
  if (detected.length === 0)
95
95
  return { selected: false, cancelled: false };
@@ -144,7 +144,7 @@ export async function resolveOrConfigureLocalExecutor(options = {}) {
144
144
  return { executor: null, error: "No local agent detected." };
145
145
  }
146
146
  }
147
- const resolved = resolveLocalExecutor(options);
147
+ const resolved = executors.resolveLocalExecutor(options);
148
148
  if (resolved.executor)
149
149
  return resolved;
150
150
  const needsChoice = typeof resolved.error === "string" &&
@@ -159,5 +159,5 @@ export async function resolveOrConfigureLocalExecutor(options = {}) {
159
159
  if (!configured.selected) {
160
160
  return resolved;
161
161
  }
162
- return resolveLocalExecutor(options);
162
+ return executors.resolveLocalExecutor(options);
163
163
  }
@@ -0,0 +1,11 @@
1
+ import type { CommandModule } from "yargs";
2
+ import type { SourceDatasetConfig } from "../../packages/project-model/lib/schema.js";
3
+ import { type AgentTestMatrixRow } from "./test-flow.js";
4
+ import { runCompileCommand } from "./compile.js";
5
+ export type CurrentRunTargetStatus = "pass" | "mixed" | "fail" | "missing";
6
+ export declare function currentRunTargetStatus(rows: AgentTestMatrixRow[], target: "raw" | "compiled"): CurrentRunTargetStatus;
7
+ export declare function compileSelectedCompiled(sourcePath: string, compiledConfig: SourceDatasetConfig, deps?: {
8
+ runCompileCommand?: typeof runCompileCommand;
9
+ }): Promise<import("./compile.js").CompileCommandResult | null>;
10
+ export declare const initCommand: CommandModule;
11
+ export declare function runInitCommand(): Promise<void>;