@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
@@ -1,7 +1,8 @@
1
- import { type TestTargetCandidate, type TestTargetResult } from "../lib/test.js";
2
- import type { WorkflowExecutionProfile, WorkflowExecutor } from "../lib/executors.js";
3
- import type { TestSandboxRetentionMode } from "../lib/test-sandbox.js";
4
- import type { SourceDatasetConfig, TestRunComparison, TestRunMode } from "../lib/schema.js";
1
+ import { type TestTargetCandidate, type TestTargetResult } from "../../packages/testing/test.js";
2
+ import type { WorkflowExecutionProfile, WorkflowExecutor } from "../../packages/agents/lib/executors.js";
3
+ import type { TestSandboxRetentionMode } from "../../packages/testing/test-sandbox.js";
4
+ import type { SourceDatasetConfig } from "../../packages/project-model/lib/schema.js";
5
+ import type { TestRunComparison, TestRunMode } from "../../packages/testing/lib/schema.js";
5
6
  export interface SavedTestOutcome {
6
7
  runPath: string;
7
8
  displayRunPath?: string;
@@ -15,6 +16,14 @@ export interface AgentTestMatrixRow {
15
16
  }
16
17
  export declare function questionPassRate(outcome: SavedTestOutcome): number;
17
18
  export declare function readSavedTestComparison(projectPath: string, datasetName: string): TestRunComparison | null;
19
+ export declare function readCurrentSavedTestComparison(options: {
20
+ projectPath: string;
21
+ datasetName: string;
22
+ checks: SourceDatasetConfig["checks"];
23
+ }): {
24
+ comparison: TestRunComparison | null;
25
+ stale: boolean;
26
+ };
18
27
  export declare function printSavedTestComparisonState(payload: TestRunComparison, comparisonRunPath?: string | null): void;
19
28
  export declare function printAgentTestMatrix(rows: AgentTestMatrixRow[]): void;
20
29
  export declare function printAgentTestFailures(rows: AgentTestMatrixRow[]): void;
@@ -1,12 +1,12 @@
1
1
  import chalk from "chalk";
2
2
  import { existsSync, mkdirSync, writeFileSync } from "node:fs";
3
3
  import { dirname, join } from "node:path";
4
- import { createRawTestTarget, createCompiledTestTarget, runTargetTestsAuto, saveTargetTestRun, } from "../lib/test.js";
5
- import { buildTestSpecFromSourceFolderConfig, buildTestSpecFromCompiledDatasetConfig, resolveSourceDatasetPath, } from "../lib/source-config.js";
6
- import { datasetLatestTestStatePath, datasetLatestTestSummaryPath, normalizeDatasetTestRunId, datasetTestRunPath, datasetTestRunsRoot, datasetTestsRoot, } from "../lib/project-paths.js";
7
- import { testRootForCompiled } from "../lib/compiled-paths.js";
8
- import { readJsonFileWithSchema } from "../lib/parse.js";
9
- import { TestRunComparisonSchema } from "../lib/schema.js";
4
+ import { createRawTestTarget, createCompiledTestTarget, runTargetTestsAuto, saveTargetTestRun, } from "../../packages/testing/test.js";
5
+ import { buildTestSpecFromSourceFolderConfig, buildTestSpecFromCompiledDatasetConfig, fingerprintTruthChecks, resolveSourceDatasetPath, } from "../../packages/project-model/source-config.js";
6
+ import { datasetLatestTestStatePath, datasetLatestTestSummaryPath, normalizeDatasetTestRunId, datasetTestRunPath, datasetTestRunsRoot, datasetTestsRoot, } from "../../packages/project-model/project-paths.js";
7
+ import { testRootForCompiled } from "../../packages/project-model/compiled-paths.js";
8
+ import { readJsonFileWithSchema } from "../../lib/parse.js";
9
+ import { TestRunComparisonSchema } from "../../packages/testing/lib/schema.js";
10
10
  import { resolveOrConfigureLocalExecutor } from "./executor-flow.js";
11
11
  import { findBuiltCompiledPath } from "./compiled-flow.js";
12
12
  export function questionPassRate(outcome) {
@@ -45,6 +45,17 @@ function loadLatestComparison(projectPath, datasetName) {
45
45
  export function readSavedTestComparison(projectPath, datasetName) {
46
46
  return loadLatestComparison(projectPath, datasetName);
47
47
  }
48
+ export function readCurrentSavedTestComparison(options) {
49
+ const latestComparison = readSavedTestComparison(options.projectPath, options.datasetName);
50
+ if (!latestComparison) {
51
+ return { comparison: null, stale: false };
52
+ }
53
+ const currentFingerprint = fingerprintTruthChecks(options.checks);
54
+ if (!latestComparison.checks_fingerprint || latestComparison.checks_fingerprint !== currentFingerprint) {
55
+ return { comparison: null, stale: true };
56
+ }
57
+ return { comparison: latestComparison, stale: false };
58
+ }
48
59
  function renderLatestSummaryMarkdown(payload) {
49
60
  const lines = [
50
61
  "# Latest Test Result",
@@ -56,7 +67,7 @@ function renderLatestSummaryMarkdown(payload) {
56
67
  lines.push(`| Files as-is | \`${payload.raw.passed_cases}/${payload.raw.total_cases}\` |`);
57
68
  }
58
69
  if (payload.compiled) {
59
- lines.push(`| Compiled dataset | \`${payload.compiled.passed_cases}/${payload.compiled.total_cases}\` |`);
70
+ lines.push(`| Context folder | \`${payload.compiled.passed_cases}/${payload.compiled.total_cases}\` |`);
60
71
  }
61
72
  lines.push("");
62
73
  if (payload.summary.raw_pass_rate != null && payload.summary.compiled_pass_rate != null) {
@@ -81,7 +92,7 @@ export function printSavedTestComparisonState(payload, comparisonRunPath) {
81
92
  console.log(` | Files as-is | \`${payload.raw.passed_cases}/${payload.raw.total_cases}\` |`);
82
93
  }
83
94
  if (payload.compiled) {
84
- console.log(` | Compiled dataset | \`${payload.compiled.passed_cases}/${payload.compiled.total_cases}\` |`);
95
+ console.log(` | Context folder | \`${payload.compiled.passed_cases}/${payload.compiled.total_cases}\` |`);
85
96
  }
86
97
  if (!payload.raw || !payload.compiled) {
87
98
  console.log();
@@ -89,7 +100,7 @@ export function printSavedTestComparisonState(payload, comparisonRunPath) {
89
100
  console.log(chalk.dim(" No saved files-as-is baseline yet."));
90
101
  }
91
102
  if (!payload.compiled) {
92
- console.log(chalk.dim(" No saved compiled-dataset run yet."));
103
+ console.log(chalk.dim(" No saved compiled-context run yet."));
93
104
  }
94
105
  }
95
106
  if (payload.summary.raw_pass_rate != null && payload.summary.compiled_pass_rate != null) {
@@ -126,7 +137,7 @@ export function printAgentTestMatrix(rows) {
126
137
  const headers = [
127
138
  "Agent",
128
139
  ...(includeRaw ? ["Files as-is"] : []),
129
- ...(includeCompiled ? ["Compiled dataset"] : []),
140
+ ...(includeCompiled ? ["Context folder"] : []),
130
141
  ...(includeDelta ? ["Delta"] : []),
131
142
  ];
132
143
  const body = rows.map((row) => [
@@ -151,7 +162,7 @@ export function printAgentTestFailures(rows) {
151
162
  const failures = [];
152
163
  for (const [label, outcome] of [
153
164
  ["Files as-is", row.rawOutcome ?? null],
154
- ["Compiled dataset", row.compiledOutcome ?? null],
165
+ ["Context folder", row.compiledOutcome ?? null],
155
166
  ]) {
156
167
  if (!outcome || outcome.result.ok)
157
168
  continue;
@@ -221,7 +232,7 @@ export function printSavedTestComparison(rawOutcome, compiledOutcome, comparison
221
232
  if (compiledOutcome) {
222
233
  if (rawOutcome)
223
234
  console.log();
224
- printSavedTestOutcome("Compiled dataset", compiledOutcome);
235
+ printSavedTestOutcome("Context folder", compiledOutcome);
225
236
  }
226
237
  if (rawOutcome && compiledOutcome) {
227
238
  const rawQuestions = questionPassRate(rawOutcome);
@@ -249,7 +260,7 @@ export function printSavedTestComparisonSummary(rawOutcome, compiledOutcome, com
249
260
  console.log(` | Files as-is | \`${rawOutcome.result.passedCases}/${rawOutcome.result.totalCases}\` |`);
250
261
  }
251
262
  if (compiledOutcome) {
252
- console.log(` | Compiled dataset | \`${compiledOutcome.result.passedCases}/${compiledOutcome.result.totalCases}\` |`);
263
+ console.log(` | Context folder | \`${compiledOutcome.result.passedCases}/${compiledOutcome.result.totalCases}\` |`);
253
264
  }
254
265
  if (rawOutcome && compiledOutcome) {
255
266
  const rawQuestions = questionPassRate(rawOutcome);
@@ -267,19 +278,12 @@ export function printSavedTestComparisonSummary(rawOutcome, compiledOutcome, com
267
278
  }
268
279
  export function saveTestComparisonRun(options) {
269
280
  const generatedAt = new Date().toISOString();
270
- const existing = loadLatestComparison(options.sourcePath, options.compiledName);
271
- const canReuseExisting = Boolean(existing?.checks_fingerprint) &&
272
- existing?.checks_fingerprint === options.checksFingerprint;
273
281
  const rawSummary = options.rawOutcome
274
282
  ? summarizeSavedTestOutcome("Files as-is", options.rawOutcome)
275
- : canReuseExisting
276
- ? existing?.raw ?? null
277
- : null;
283
+ : null;
278
284
  const compiledSummary = options.compiledOutcome
279
- ? summarizeSavedTestOutcome("Compiled dataset", options.compiledOutcome)
280
- : canReuseExisting
281
- ? existing?.compiled ?? null
282
- : null;
285
+ ? summarizeSavedTestOutcome("Context folder", options.compiledOutcome)
286
+ : null;
283
287
  const effectiveMode = rawSummary && compiledSummary
284
288
  ? "both"
285
289
  : rawSummary
@@ -300,7 +304,7 @@ export function saveTestComparisonRun(options) {
300
304
  checks_fingerprint: options.checksFingerprint,
301
305
  dataset: {
302
306
  name: options.compiledName,
303
- compiled_path: options.compiledPath ?? (canReuseExisting ? existing?.dataset.compiled_path ?? null : null),
307
+ compiled_path: options.compiledPath,
304
308
  },
305
309
  raw: rawSummary,
306
310
  compiled: compiledSummary,
@@ -396,7 +400,7 @@ export async function runSavedCompiledTest(options) {
396
400
  const result = run.results[0];
397
401
  if (!result)
398
402
  return null;
399
- const internalRunPath = saveTargetTestRun(compiledPath, run);
403
+ const compiledRunPath = saveTargetTestRun(compiledPath, run);
400
404
  const datasetRunPath = writeDatasetTargetRun({
401
405
  projectPath: options.sourcePath,
402
406
  datasetName: options.datasetConfig.name,
@@ -407,7 +411,7 @@ export async function runSavedCompiledTest(options) {
407
411
  payload: run,
408
412
  });
409
413
  return {
410
- runPath: internalRunPath,
414
+ runPath: compiledRunPath,
411
415
  displayRunPath: datasetRunPath,
412
416
  target,
413
417
  result,
@@ -0,0 +1,14 @@
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
+ type TestMode = "raw" | "compiled" | "both";
5
+ export interface TestCommandResult {
6
+ sourcePath: string;
7
+ datasetConfig: SourceDatasetConfig;
8
+ builtCompiledPath: string | null;
9
+ mode: TestMode;
10
+ rows: AgentTestMatrixRow[];
11
+ }
12
+ export declare const testCommand: CommandModule;
13
+ export declare function runTestCommand(argv?: Record<string, unknown>): Promise<boolean>;
14
+ export {};
@@ -1,24 +1,15 @@
1
1
  import chalk from "chalk";
2
2
  import * as p from "@clack/prompts";
3
- import { detectInterf, resolveSourceControlPath, } from "../lib/interf.js";
4
- import { fingerprintTruthChecks, sourceDatasetConfigFromInterfConfig, } from "../lib/source-config.js";
5
- import { addExecutionProfileOptions, executionProfileFromArgv, } from "../lib/execution-profile.js";
6
- import { chooseCompiledConfigToBuild, findBuiltCompiledPath, findSavedCompiledConfig, } from "./compiled-flow.js";
3
+ import { detectInterf, resolveSourceControlPath, } from "../../packages/project-model/interf.js";
4
+ import { fingerprintTruthChecks, loadCompiledDatasetConfig, sourceDatasetConfigFromInterfConfig, } from "../../packages/project-model/source-config.js";
5
+ import { addExecutionProfileOptions, executionProfileFromArgv, } from "../../packages/agents/lib/execution-profile.js";
6
+ import { chooseCompiledConfigToBuild, findBuiltCompiledPath, } from "./compiled-flow.js";
7
+ import { resolveConfiguredDatasetSelection } from "./dataset-selection.js";
7
8
  import { printAgentTestFailures, printAgentTestMatrix, printSavedTestComparisonState, readSavedTestComparison, runSavedRawTest, runSavedCompiledTest, saveTestComparisonRun, } from "./test-flow.js";
8
9
  import { listRunAgentOptions, promptForTestAgents, resolveNamedLocalExecutor, resolveOrConfigureLocalExecutor, } from "./executor-flow.js";
9
- export function resolveConfiguredDatasetSelection(options) {
10
- if (options.hintedDatasetConfig &&
11
- (!options.requestedDatasetName || options.hintedDatasetConfig.name === options.requestedDatasetName)) {
12
- return options.hintedDatasetConfig;
13
- }
14
- if (!options.requestedDatasetName) {
15
- return null;
16
- }
17
- return findSavedCompiledConfig(options.sourcePath, options.requestedDatasetName);
18
- }
19
10
  export const testCommand = {
20
11
  command: "test",
21
- describe: "Compare files as-is and a compiled dataset on saved truth checks",
12
+ describe: "Compare files as-is and a compiled context on checks",
22
13
  builder: (yargs) => addExecutionProfileOptions(yargs)
23
14
  .option("dataset", {
24
15
  type: "string",
@@ -26,7 +17,7 @@ export const testCommand = {
26
17
  })
27
18
  .option("target", {
28
19
  choices: ["both", "raw", "compiled"],
29
- describe: "Test files as-is, the compiled dataset, or both. Default: both when a compiled dataset exists, otherwise files as-is.",
20
+ describe: "Test files as-is, the compiled context, or both. Default: both when a compiled context exists, otherwise files as-is.",
30
21
  })
31
22
  .option("keep-sandboxes", {
32
23
  type: "boolean",
@@ -58,8 +49,8 @@ async function promptTestMode(hasBuiltCompiled) {
58
49
  options: [
59
50
  {
60
51
  value: "both",
61
- label: "Compare files-as-is and compiled dataset (Recommended)",
62
- hint: "Measure whether compilation helps on the saved truth checks",
52
+ label: "Compare files-as-is and compiled context (Recommended)",
53
+ hint: "Measure whether compilation helps on the checks",
63
54
  },
64
55
  {
65
56
  value: "raw",
@@ -68,8 +59,8 @@ async function promptTestMode(hasBuiltCompiled) {
68
59
  },
69
60
  {
70
61
  value: "compiled",
71
- label: "Compiled dataset only",
72
- hint: "Measure the current compiled dataset on the saved truth checks",
62
+ label: "Compiled context only",
63
+ hint: "Measure the current compiled context on the checks",
73
64
  },
74
65
  ],
75
66
  });
@@ -156,17 +147,17 @@ async function resolveSelectedTestAgents(options) {
156
147
  ];
157
148
  }
158
149
  async function runModeForAgent(options) {
159
- const rawOutcome = options.mode === "raw" || options.mode === "both"
160
- ? await runSavedRawTest({
150
+ const rawPromise = options.mode === "raw" || options.mode === "both"
151
+ ? runSavedRawTest({
161
152
  sourcePath: options.sourcePath,
162
153
  datasetConfig: options.datasetConfig,
163
154
  executor: options.executor,
164
155
  preserveSandboxes: options.preserveSandboxes,
165
156
  runSuffix: options.executor.name,
166
157
  })
167
- : null;
168
- const compiledOutcome = options.mode === "compiled" || options.mode === "both"
169
- ? await runSavedCompiledTest({
158
+ : Promise.resolve(null);
159
+ const compiledPromise = options.mode === "compiled" || options.mode === "both"
160
+ ? runSavedCompiledTest({
170
161
  sourcePath: options.sourcePath,
171
162
  datasetConfig: options.datasetConfig,
172
163
  compiledPath: options.builtCompiledPath,
@@ -174,7 +165,8 @@ async function runModeForAgent(options) {
174
165
  preserveSandboxes: options.preserveSandboxes,
175
166
  runSuffix: options.executor.name,
176
167
  })
177
- : null;
168
+ : Promise.resolve(null);
169
+ const [rawOutcome, compiledOutcome] = await Promise.all([rawPromise, compiledPromise]);
178
170
  return {
179
171
  agentLabel: options.executor.displayName,
180
172
  rawOutcome,
@@ -198,7 +190,10 @@ export async function runTestCommand(argv = {}) {
198
190
  sourcePath,
199
191
  requestedDatasetName: targetName,
200
192
  hintedDatasetConfig,
201
- }) ?? (targetName === detected.config.name ? sourceDatasetConfigFromInterfConfig(detected.config) : null);
193
+ }) ?? (targetName === detected.config.name
194
+ ? (loadCompiledDatasetConfig(detected.path)
195
+ ?? sourceDatasetConfigFromInterfConfig(detected.config))
196
+ : null);
202
197
  })()
203
198
  : requestedDatasetName || hintedDatasetConfig
204
199
  ? resolveConfiguredDatasetSelection({
@@ -208,26 +203,26 @@ export async function runTestCommand(argv = {}) {
208
203
  })
209
204
  : await chooseCompiledConfigToBuild({
210
205
  sourcePath,
211
- selectMessage: "Which dataset do you want to test?",
206
+ selectMessage: "Which source folder setup do you want to test?",
212
207
  });
213
208
  if (selectedCompiled === undefined)
214
209
  return false;
215
210
  if (!selectedCompiled) {
216
211
  process.exitCode = 1;
217
212
  if (requestedDatasetName) {
218
- console.log(chalk.red(` Dataset "${requestedDatasetName}" is not set up in this project.`));
219
- console.log(chalk.dim(" Run `interf list` to see the saved datasets."));
213
+ console.log(chalk.red(` Setup "${requestedDatasetName}" is not set up in this project.`));
214
+ console.log(chalk.dim(" Run `interf list` to see the saved setups."));
220
215
  }
221
216
  else {
222
- console.log(chalk.red(" No datasets are set up for this folder yet."));
217
+ console.log(chalk.red(" No saved setups are configured for this folder yet."));
223
218
  console.log(chalk.dim(" Start with `interf` or `interf init`."));
224
219
  }
225
220
  return false;
226
221
  }
227
222
  if (selectedCompiled.checks.length === 0) {
228
223
  process.exitCode = 1;
229
- console.log(chalk.red(` Dataset "${selectedCompiled.name}" does not have any saved truth checks yet.`));
230
- console.log(chalk.dim(" Run `interf`, edit this dataset, and add a few truth checks first."));
224
+ console.log(chalk.red(` Setup "${selectedCompiled.name}" does not have any checks yet.`));
225
+ console.log(chalk.dim(" Run `interf`, edit this setup, and add a few checks first."));
231
226
  console.log(chalk.dim(" Then rerun `interf test`."));
232
227
  return false;
233
228
  }
@@ -245,16 +240,17 @@ export async function runTestCommand(argv = {}) {
245
240
  return false;
246
241
  if (selectedMode === "compiled" && !hasBuiltCompiled) {
247
242
  process.exitCode = 1;
248
- console.log(chalk.red(` Dataset "${selectedCompiled.name}" is not compiled yet.`));
243
+ console.log(chalk.red(` Setup "${selectedCompiled.name}" does not have a context folder yet.`));
249
244
  console.log(chalk.dim(" Run `interf compile` first."));
250
245
  return false;
251
246
  }
252
247
  if (selectedMode === "both" && !hasBuiltCompiled) {
253
- console.log(chalk.dim(` Dataset "${selectedCompiled.name}" is not compiled yet. Running the files as-is only.`));
248
+ process.exitCode = 1;
249
+ console.log(chalk.red(` Setup "${selectedCompiled.name}" does not have a context folder yet, so Interf cannot compare files-as-is and the context folder.`));
250
+ console.log(chalk.dim(" Run `interf compile` first, or rerun with `--target raw`."));
251
+ return false;
254
252
  }
255
- const mode = selectedMode === "both" && !hasBuiltCompiled
256
- ? "raw"
257
- : selectedMode;
253
+ const mode = selectedMode;
258
254
  const selectedAgents = await resolveSelectedTestAgents({
259
255
  argv,
260
256
  executionProfile,
@@ -272,12 +268,22 @@ export async function runTestCommand(argv = {}) {
272
268
  })));
273
269
  if ((mode === "compiled" || mode === "both") && rows.some((row) => !row.compiledOutcome)) {
274
270
  process.exitCode = 1;
275
- console.log(chalk.red(` Dataset "${selectedCompiled.name}" is not compiled yet.`));
271
+ console.log(chalk.red(` Setup "${selectedCompiled.name}" does not have a context folder yet.`));
276
272
  console.log(chalk.dim(" Run `interf compile` first."));
277
273
  return false;
278
274
  }
279
275
  printAgentTestMatrix(rows);
280
276
  printAgentTestFailures(rows);
277
+ const resultSummary = {
278
+ sourcePath,
279
+ datasetConfig: selectedCompiled,
280
+ builtCompiledPath: builtCompiledPath ?? null,
281
+ mode,
282
+ rows,
283
+ };
284
+ const onComplete = typeof argv.onComplete === "function"
285
+ ? argv.onComplete
286
+ : null;
281
287
  if (rows.length === 1) {
282
288
  const row = rows[0];
283
289
  const comparisonRunPath = saveTestComparisonRun({
@@ -299,9 +305,11 @@ export async function runTestCommand(argv = {}) {
299
305
  printSavedTestComparisonState(latestComparison, comparisonRunPath);
300
306
  }
301
307
  }
308
+ await onComplete?.(resultSummary);
302
309
  return true;
303
310
  }
304
311
  console.log();
305
- console.log(chalk.dim(" Multi-agent compare does not overwrite the dataset's saved latest result."));
312
+ console.log(chalk.dim(" Multi-agent compare does not overwrite the saved latest single-agent result."));
313
+ await onComplete?.(resultSummary);
306
314
  return true;
307
315
  }
@@ -1,7 +1,7 @@
1
1
  import chalk from "chalk";
2
- import { detectInterf } from "../lib/interf.js";
3
- import { validateCompiledCompile, validateCompiledStage, } from "../lib/validate.js";
4
- import { validateWorkflowPackage } from "../lib/local-workflows.js";
2
+ import { detectInterf } from "../../packages/project-model/interf.js";
3
+ import { validateCompiledCompile, validateCompiledStage, } from "../../packages/compiler/validate.js";
4
+ import { validateWorkflowPackage } from "../../packages/workflow-package/local-workflows.js";
5
5
  function normalizeVerifyCheck(value) {
6
6
  if (!value)
7
7
  return null;
@@ -55,7 +55,7 @@ export const verifyCommand = {
55
55
  const detected = detectInterf(process.cwd());
56
56
  if (!detected) {
57
57
  process.exitCode = 1;
58
- console.log(chalk.red("Run this from inside a compiled dataset."));
58
+ console.log(chalk.red("Run this from inside a compiled context."));
59
59
  return;
60
60
  }
61
61
  if (check === "compiled") {
@@ -0,0 +1,21 @@
1
+ import { initCommand } from "./commands/init.js";
2
+ import { createCommand } from "./commands/create.js";
3
+ import { compileCommand } from "./commands/compile.js";
4
+ import { testCommand } from "./commands/test.js";
5
+ import { doctorCommand } from "./commands/doctor.js";
6
+ import { listCommand } from "./commands/list.js";
7
+ import { statusCommand } from "./commands/status.js";
8
+ import { resetCommand } from "./commands/reset.js";
9
+ import { defaultCommand } from "./commands/default.js";
10
+ import { verifyCommand } from "./commands/verify.js";
11
+ export declare function buildCli(argv?: string[]): import("yargs").Argv<{}>;
12
+ export declare function runCli(argv?: string[]): {
13
+ [x: string]: unknown;
14
+ _: (string | number)[];
15
+ $0: string;
16
+ } | Promise<{
17
+ [x: string]: unknown;
18
+ _: (string | number)[];
19
+ $0: string;
20
+ }>;
21
+ export { initCommand, createCommand, compileCommand, testCommand, doctorCommand, listCommand, statusCommand, resetCommand, defaultCommand, verifyCommand, };
@@ -0,0 +1,33 @@
1
+ import yargs from "yargs";
2
+ import { hideBin } from "yargs/helpers";
3
+ import { initCommand } from "./commands/init.js";
4
+ import { createCommand } from "./commands/create.js";
5
+ import { compileCommand } from "./commands/compile.js";
6
+ import { testCommand } from "./commands/test.js";
7
+ import { doctorCommand } from "./commands/doctor.js";
8
+ import { listCommand } from "./commands/list.js";
9
+ import { statusCommand } from "./commands/status.js";
10
+ import { resetCommand } from "./commands/reset.js";
11
+ import { defaultCommand } from "./commands/default.js";
12
+ import { verifyCommand } from "./commands/verify.js";
13
+ export function buildCli(argv = hideBin(process.argv)) {
14
+ return yargs(argv)
15
+ .scriptName("interf")
16
+ .command(defaultCommand)
17
+ .command(initCommand)
18
+ .command(compileCommand)
19
+ .command(testCommand)
20
+ .command(createCommand)
21
+ .command(doctorCommand)
22
+ .command(listCommand)
23
+ .command(statusCommand)
24
+ .command(verifyCommand)
25
+ .command(resetCommand)
26
+ .strict()
27
+ .help()
28
+ .version();
29
+ }
30
+ export function runCli(argv = hideBin(process.argv)) {
31
+ return buildCli(argv).parse();
32
+ }
33
+ export { initCommand, createCommand, compileCommand, testCommand, doctorCommand, listCommand, statusCommand, resetCommand, defaultCommand, verifyCommand, };
package/dist/index.d.ts CHANGED
@@ -1,11 +1,22 @@
1
- export { createCompiled, compileCompiled, runCompiledSummarize, runCompiledCompile, } from "./lib/workflows.js";
2
- export { createRawTestTarget, listTestSpecs, loadTestSpec, loadTestSpecFromFile, writeTestSpec, listTestTargets, runTargetTests, runTargetTestsWithJudge, runTargetTestsAuto, saveTargetTestRun, } from "./lib/test.js";
3
- export { computeCompiledHealth, } from "./lib/state.js";
4
- export { SOURCE_FOLDER_CONFIG_FILE, loadSourceFolderConfig, buildTestSpecFromSourceFolderConfig, } from "./lib/source-config.js";
5
- export { validateCompiledSummarize, validateCompiledCompile, } from "./lib/validate.js";
6
- export { InterfConfigSchema, TestSpecSchema, SourceFolderConfigSchema, CompiledHealthSchema, } from "./lib/schema.js";
7
- export type { InterfConfig } from "./lib/interf.js";
8
- export type { TestCaseExpect, TestCase, TestSpec, TestCheckResult, TestCaseResult, TestTargetResult, TestTargetRun, LoadedTestSpec, TestTargetCandidate, } from "./lib/test.js";
9
- export type { SourceTruthCheck, SourceDatasetConfig, SourceFolderConfig, CompiledHealth, } from "./lib/schema.js";
10
- export type { CompiledStageValidation, CompiledWorkflowValidation, } from "./lib/validate.js";
11
- export type { CompiledSummarizeResult, CompiledCompileResult, } from "./lib/workflows.js";
1
+ export * as compiler from "./packages/compiler/index.js";
2
+ export * as workflowPackage from "./packages/workflow-package/index.js";
3
+ export * as workflowAuthoring from "./packages/workflow-authoring/index.js";
4
+ export * as projectModel from "./packages/project-model/index.js";
5
+ export * as agents from "./packages/agents/index.js";
6
+ export * as testing from "./packages/testing/index.js";
7
+ export { createCompiled, } from "./packages/project-model/interf.js";
8
+ export { compileCompiled, runCompiledSummarize, runCompiledCompile, } from "./packages/compiler/workflows.js";
9
+ export { createRawTestTarget, createCompiledTestTarget, listTestSpecs, loadTestSpec, loadTestSpecFromFile, writeTestSpec, listTestTargets, runTargetTests, runTargetTestsWithJudge, runTargetTestsAuto, saveTargetTestRun, } from "./packages/testing/test.js";
10
+ export { computeCompiledHealth, } from "./packages/compiler/state.js";
11
+ export { SOURCE_FOLDER_CONFIG_FILE, loadSourceFolderConfig, buildTestSpecFromSourceFolderConfig, } from "./packages/project-model/source-config.js";
12
+ export { validateCompiledSummarize, validateCompiledCompile, } from "./packages/compiler/validate.js";
13
+ export { InterfConfigSchema, SourceFolderConfigSchema, } from "./packages/project-model/lib/schema.js";
14
+ export { TestSpecSchema, } from "./packages/testing/lib/schema.js";
15
+ export { CompiledHealthSchema, } from "./packages/compiler/lib/schema.js";
16
+ export type { InterfConfig } from "./packages/project-model/lib/schema.js";
17
+ export type { TestCase, TestSpec, TestCheckResult, TestCaseResult, TestTargetResult, TestTargetRun, LoadedTestSpec, TestTargetCandidate, } from "./packages/testing/index.js";
18
+ export type { SourceTruthCheck, SourceDatasetConfig, SourceFolderConfig, } from "./packages/project-model/lib/schema.js";
19
+ export type { TestCaseExpect, } from "./packages/testing/lib/schema.js";
20
+ export type { CompiledHealth, } from "./packages/compiler/lib/schema.js";
21
+ export type { CompiledStageValidation, CompiledWorkflowValidation, } from "./packages/compiler/validate.js";
22
+ export type { CompiledSummarizeResult, CompiledCompileResult, } from "./packages/compiler/workflows.js";
package/dist/index.js CHANGED
@@ -1,6 +1,15 @@
1
- export { createCompiled, compileCompiled, runCompiledSummarize, runCompiledCompile, } from "./lib/workflows.js";
2
- export { createRawTestTarget, listTestSpecs, loadTestSpec, loadTestSpecFromFile, writeTestSpec, listTestTargets, runTargetTests, runTargetTestsWithJudge, runTargetTestsAuto, saveTargetTestRun, } from "./lib/test.js";
3
- export { computeCompiledHealth, } from "./lib/state.js";
4
- export { SOURCE_FOLDER_CONFIG_FILE, loadSourceFolderConfig, buildTestSpecFromSourceFolderConfig, } from "./lib/source-config.js";
5
- export { validateCompiledSummarize, validateCompiledCompile, } from "./lib/validate.js";
6
- export { InterfConfigSchema, TestSpecSchema, SourceFolderConfigSchema, CompiledHealthSchema, } from "./lib/schema.js";
1
+ export * as compiler from "./packages/compiler/index.js";
2
+ export * as workflowPackage from "./packages/workflow-package/index.js";
3
+ export * as workflowAuthoring from "./packages/workflow-authoring/index.js";
4
+ export * as projectModel from "./packages/project-model/index.js";
5
+ export * as agents from "./packages/agents/index.js";
6
+ export * as testing from "./packages/testing/index.js";
7
+ export { createCompiled, } from "./packages/project-model/interf.js";
8
+ export { compileCompiled, runCompiledSummarize, runCompiledCompile, } from "./packages/compiler/workflows.js";
9
+ export { createRawTestTarget, createCompiledTestTarget, listTestSpecs, loadTestSpec, loadTestSpecFromFile, writeTestSpec, listTestTargets, runTargetTests, runTargetTestsWithJudge, runTargetTestsAuto, saveTargetTestRun, } from "./packages/testing/test.js";
10
+ export { computeCompiledHealth, } from "./packages/compiler/state.js";
11
+ export { SOURCE_FOLDER_CONFIG_FILE, loadSourceFolderConfig, buildTestSpecFromSourceFolderConfig, } from "./packages/project-model/source-config.js";
12
+ export { validateCompiledSummarize, validateCompiledCompile, } from "./packages/compiler/validate.js";
13
+ export { InterfConfigSchema, SourceFolderConfigSchema, } from "./packages/project-model/lib/schema.js";
14
+ export { TestSpecSchema, } from "./packages/testing/lib/schema.js";
15
+ export { CompiledHealthSchema, } from "./packages/compiler/lib/schema.js";
@@ -1,3 +1 @@
1
- import type { WorkflowExecutionProfile } from "./executors.js";
2
- import type { Agent } from "./agent-types.js";
3
- export declare function buildAgentArgs(agent: Agent, prompt: string, executionProfile?: WorkflowExecutionProfile): string[];
1
+ export * from "../packages/agents/lib/args.js";
@@ -1,42 +1 @@
1
- const CODEX_SANDBOX_MODE = `work${"space-write"}`;
2
- export function buildAgentArgs(agent, prompt, executionProfile = {}) {
3
- if (agent.name === "claude-code") {
4
- const args = [
5
- "-p",
6
- prompt,
7
- "--output-format",
8
- "stream-json",
9
- "--verbose",
10
- "--allowedTools",
11
- "Read,Write,Edit,Bash,Grep,Glob,Agent",
12
- ];
13
- if (executionProfile.model) {
14
- args.push("--model", executionProfile.model);
15
- }
16
- if (executionProfile.effort) {
17
- args.push("--effort", executionProfile.effort);
18
- }
19
- return args;
20
- }
21
- if (agent.name === "codex") {
22
- const args = [
23
- "exec",
24
- "--json",
25
- "-s",
26
- CODEX_SANDBOX_MODE,
27
- "--skip-git-repo-check",
28
- ];
29
- if (executionProfile.model) {
30
- args.push("--model", executionProfile.model);
31
- }
32
- if (executionProfile.profile) {
33
- args.push("--profile", executionProfile.profile);
34
- }
35
- if (executionProfile.effort) {
36
- args.push("-c", `model_reasoning_effort=${JSON.stringify(executionProfile.effort)}`);
37
- }
38
- args.push(prompt);
39
- return args;
40
- }
41
- throw new Error(`Agent "${agent.displayName}" is not yet supported for automated compile runs.`);
42
- }
1
+ export * from "../packages/agents/lib/args.js";
@@ -1,5 +1 @@
1
- import type { Agent } from "./agent-types.js";
2
- export declare const SHOW_AGENT_TOOL_EVENTS: boolean;
3
- export declare const AGENTS: Agent[];
4
- export declare const CODEX_NOISE_PATTERNS: RegExp[];
5
- export declare const VISIBLE_STATUS_PREFIXES: string[];
1
+ export * from "../packages/agents/lib/constants.js";
@@ -1,28 +1 @@
1
- import { join } from "node:path";
2
- import { homedir } from "node:os";
3
- export const SHOW_AGENT_TOOL_EVENTS = process.env.INTERF_DEBUG_AGENT_TOOLS === "1";
4
- export const AGENTS = [
5
- {
6
- name: "claude-code",
7
- displayName: "Claude Code",
8
- skillsDir: join(homedir(), ".claude", "skills"),
9
- command: "claude",
10
- },
11
- {
12
- name: "codex",
13
- displayName: "Codex",
14
- skillsDir: join(homedir(), ".codex", "skills"),
15
- command: "codex",
16
- },
17
- {
18
- name: "cursor",
19
- displayName: "Cursor",
20
- skillsDir: join(homedir(), ".cursor", "skills"),
21
- command: "cursor",
22
- },
23
- ];
24
- export const CODEX_NOISE_PATTERNS = [
25
- /codex_core_skills::loader: failed to stat skills entry .*\/(interf-[^ ]+|compiled\/[^ ]+) \(symlink\): No such file or directory/,
26
- /codex_core::codex: failed to load skill .*\/gstack\/SKILL\.md: invalid description: exceeds maximum length of 1024 characters/,
27
- ];
28
- export const VISIBLE_STATUS_PREFIXES = ["STATUS:", "DONE:", "BLOCKED:", "ERROR:"];
1
+ export * from "../packages/agents/lib/constants.js";
@@ -1,7 +1 @@
1
- import type { Agent } from "./agent-types.js";
2
- export declare function detectAgents(): Agent[];
3
- export declare function supportsAutomatedRuns(agent: Agent): boolean;
4
- export declare function resolveAgent(): {
5
- agent: Agent | null;
6
- error?: string;
7
- };
1
+ export * from "../packages/agents/lib/detection.js";