@interf/compiler 0.3.3 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (385) hide show
  1. package/README.md +137 -243
  2. package/builtin-workflows/interf/README.md +19 -0
  3. package/builtin-workflows/interf/compile/stages/shape/SKILL.md +28 -0
  4. package/builtin-workflows/interf/compile/stages/structure/SKILL.md +18 -0
  5. package/builtin-workflows/interf/compile/stages/summarize/SKILL.md +18 -0
  6. package/builtin-workflows/interf/improve/SKILL.md +18 -0
  7. package/builtin-workflows/interf/use/query/SKILL.md +28 -0
  8. package/builtin-workflows/interf/workflow.json +120 -0
  9. package/builtin-workflows/interf/workspace.schema.json +75 -0
  10. package/dist/bin.d.ts +0 -1
  11. package/dist/bin.js +0 -1
  12. package/dist/commands/compile-controller.d.ts +14 -0
  13. package/dist/commands/compile-controller.js +409 -0
  14. package/dist/commands/compile.d.ts +8 -9
  15. package/dist/commands/compile.js +151 -153
  16. package/dist/commands/create-workflow-wizard.d.ts +4 -2
  17. package/dist/commands/create-workflow-wizard.js +33 -31
  18. package/dist/commands/create.d.ts +0 -1
  19. package/dist/commands/create.js +16 -12
  20. package/dist/commands/default.d.ts +0 -1
  21. package/dist/commands/default.js +1 -2
  22. package/dist/commands/doctor.d.ts +0 -1
  23. package/dist/commands/doctor.js +7 -22
  24. package/dist/commands/executor-flow.d.ts +0 -1
  25. package/dist/commands/executor-flow.js +0 -1
  26. package/dist/commands/init.d.ts +0 -1
  27. package/dist/commands/init.js +72 -15
  28. package/dist/commands/list.d.ts +0 -1
  29. package/dist/commands/list.js +0 -1
  30. package/dist/commands/reset.d.ts +0 -1
  31. package/dist/commands/reset.js +0 -1
  32. package/dist/commands/source-config-wizard.d.ts +28 -7
  33. package/dist/commands/source-config-wizard.js +159 -63
  34. package/dist/commands/status.d.ts +0 -1
  35. package/dist/commands/status.js +0 -1
  36. package/dist/commands/test-flow.d.ts +20 -10
  37. package/dist/commands/test-flow.js +89 -23
  38. package/dist/commands/test.d.ts +0 -1
  39. package/dist/commands/test.js +36 -72
  40. package/dist/commands/verify.d.ts +0 -1
  41. package/dist/commands/verify.js +0 -1
  42. package/dist/commands/workspace-flow.d.ts +3 -3
  43. package/dist/commands/workspace-flow.js +30 -12
  44. package/dist/index.d.ts +5 -6
  45. package/dist/index.js +3 -4
  46. package/dist/lib/agent-args.d.ts +0 -1
  47. package/dist/lib/agent-args.js +0 -1
  48. package/dist/lib/agent-constants.d.ts +0 -1
  49. package/dist/lib/agent-constants.js +0 -1
  50. package/dist/lib/agent-detection.d.ts +0 -1
  51. package/dist/lib/agent-detection.js +0 -1
  52. package/dist/lib/agent-execution.d.ts +0 -1
  53. package/dist/lib/agent-execution.js +47 -12
  54. package/dist/lib/agent-logs.d.ts +0 -1
  55. package/dist/lib/agent-logs.js +0 -1
  56. package/dist/lib/agent-preflight.d.ts +0 -1
  57. package/dist/lib/agent-preflight.js +1 -2
  58. package/dist/lib/agent-render.d.ts +0 -1
  59. package/dist/lib/agent-render.js +0 -1
  60. package/dist/lib/agent-shells.d.ts +30 -3
  61. package/dist/lib/agent-shells.js +527 -63
  62. package/dist/lib/agent-status.d.ts +0 -1
  63. package/dist/lib/agent-status.js +0 -1
  64. package/dist/lib/agent-types.d.ts +0 -1
  65. package/dist/lib/agent-types.js +0 -1
  66. package/dist/lib/agents.d.ts +0 -9
  67. package/dist/lib/agents.js +0 -9
  68. package/dist/lib/chart-guidance.d.ts +1 -0
  69. package/dist/lib/chart-guidance.js +8 -0
  70. package/dist/lib/config.d.ts +0 -3
  71. package/dist/lib/config.js +0 -5
  72. package/dist/lib/discovery.d.ts +0 -1
  73. package/dist/lib/discovery.js +0 -1
  74. package/dist/lib/execution-profile.d.ts +0 -1
  75. package/dist/lib/execution-profile.js +0 -1
  76. package/dist/lib/executors.d.ts +0 -1
  77. package/dist/lib/executors.js +0 -1
  78. package/dist/lib/filesystem.d.ts +0 -1
  79. package/dist/lib/filesystem.js +0 -1
  80. package/dist/lib/interf-bootstrap.d.ts +0 -1
  81. package/dist/lib/interf-bootstrap.js +6 -2
  82. package/dist/lib/interf-detect.d.ts +2 -2
  83. package/dist/lib/interf-detect.js +25 -8
  84. package/dist/lib/interf-scaffold.d.ts +0 -1
  85. package/dist/lib/interf-scaffold.js +54 -21
  86. package/dist/lib/interf-workflow-package.d.ts +18 -1
  87. package/dist/lib/interf-workflow-package.js +164 -23
  88. package/dist/lib/interf.d.ts +1 -2
  89. package/dist/lib/interf.js +1 -2
  90. package/dist/lib/local-workflows.d.ts +10 -5
  91. package/dist/lib/local-workflows.js +208 -97
  92. package/dist/lib/logger.d.ts +0 -1
  93. package/dist/lib/logger.js +0 -1
  94. package/dist/lib/obsidian.d.ts +0 -1
  95. package/dist/lib/obsidian.js +0 -1
  96. package/dist/lib/parse.d.ts +0 -1
  97. package/dist/lib/parse.js +0 -1
  98. package/dist/lib/registry.d.ts +0 -1
  99. package/dist/lib/registry.js +0 -1
  100. package/dist/lib/runtime-acceptance.d.ts +0 -1
  101. package/dist/lib/runtime-acceptance.js +1 -2
  102. package/dist/lib/runtime-contracts.d.ts +0 -1
  103. package/dist/lib/runtime-contracts.js +14 -8
  104. package/dist/lib/runtime-paths.d.ts +0 -1
  105. package/dist/lib/runtime-paths.js +5 -10
  106. package/dist/lib/runtime-prompt.d.ts +0 -1
  107. package/dist/lib/runtime-prompt.js +8 -23
  108. package/dist/lib/runtime-reconcile.d.ts +0 -1
  109. package/dist/lib/runtime-reconcile.js +7 -3
  110. package/dist/lib/runtime-runs.d.ts +0 -1
  111. package/dist/lib/runtime-runs.js +4 -5
  112. package/dist/lib/runtime-types.d.ts +0 -1
  113. package/dist/lib/runtime-types.js +0 -1
  114. package/dist/lib/runtime.d.ts +0 -1
  115. package/dist/lib/runtime.js +0 -1
  116. package/dist/lib/schema.d.ts +356 -51
  117. package/dist/lib/schema.js +189 -54
  118. package/dist/lib/source-config.d.ts +17 -8
  119. package/dist/lib/source-config.js +125 -11
  120. package/dist/lib/state-artifacts.d.ts +0 -1
  121. package/dist/lib/state-artifacts.js +0 -1
  122. package/dist/lib/state-health.d.ts +0 -1
  123. package/dist/lib/state-health.js +2 -3
  124. package/dist/lib/state-io.d.ts +1 -1
  125. package/dist/lib/state-io.js +9 -10
  126. package/dist/lib/state-paths.d.ts +0 -1
  127. package/dist/lib/state-paths.js +5 -11
  128. package/dist/lib/state-view.d.ts +0 -1
  129. package/dist/lib/state-view.js +7 -8
  130. package/dist/lib/state.d.ts +0 -1
  131. package/dist/lib/state.js +0 -1
  132. package/dist/lib/summarize-plan.d.ts +0 -1
  133. package/dist/lib/summarize-plan.js +3 -3
  134. package/dist/lib/test-execution.d.ts +14 -0
  135. package/dist/lib/{benchmark-execution.js → test-execution.js} +122 -120
  136. package/dist/lib/test-matrices.d.ts +90 -0
  137. package/dist/lib/test-matrices.js +96 -0
  138. package/dist/lib/test-paths.d.ts +12 -0
  139. package/dist/lib/test-paths.js +44 -0
  140. package/dist/lib/test-profile-presets.d.ts +57 -0
  141. package/dist/lib/test-profile-presets.js +50 -0
  142. package/dist/lib/test-sandbox.d.ts +11 -0
  143. package/dist/lib/{benchmark-sandbox.js → test-sandbox.js} +18 -13
  144. package/dist/lib/test-specs.d.ts +7 -0
  145. package/dist/lib/test-specs.js +114 -0
  146. package/dist/lib/test-targets.d.ts +5 -0
  147. package/dist/lib/test-targets.js +38 -0
  148. package/dist/lib/test-types.d.ts +17 -0
  149. package/dist/lib/test-types.js +1 -0
  150. package/dist/lib/test.d.ts +4 -0
  151. package/dist/lib/test.js +3 -0
  152. package/dist/lib/user-config.d.ts +0 -1
  153. package/dist/lib/user-config.js +0 -1
  154. package/dist/lib/util.d.ts +0 -2
  155. package/dist/lib/util.js +0 -2
  156. package/dist/lib/validate-helpers.d.ts +0 -1
  157. package/dist/lib/validate-helpers.js +0 -1
  158. package/dist/lib/validate-workspace.d.ts +0 -1
  159. package/dist/lib/validate-workspace.js +34 -25
  160. package/dist/lib/validate.d.ts +0 -1
  161. package/dist/lib/validate.js +55 -9
  162. package/dist/lib/workflow-abi.d.ts +138 -0
  163. package/dist/lib/workflow-abi.js +181 -0
  164. package/dist/lib/workflow-definitions.d.ts +26 -5
  165. package/dist/lib/workflow-definitions.js +105 -168
  166. package/dist/lib/workflow-helpers.d.ts +1 -2
  167. package/dist/lib/workflow-helpers.js +32 -21
  168. package/dist/lib/workflow-improvement.d.ts +22 -0
  169. package/dist/lib/workflow-improvement.js +396 -0
  170. package/dist/lib/workflow-review-paths.d.ts +10 -0
  171. package/dist/lib/workflow-review-paths.js +27 -0
  172. package/dist/lib/workflow-stage-runner.d.ts +1 -1
  173. package/dist/lib/workflow-stage-runner.js +4 -1
  174. package/dist/lib/workflows.d.ts +1 -2
  175. package/dist/lib/workflows.js +1 -2
  176. package/dist/lib/workspace-compile.d.ts +0 -1
  177. package/dist/lib/workspace-compile.js +146 -109
  178. package/dist/lib/workspace-home.d.ts +5 -0
  179. package/dist/lib/workspace-home.js +32 -0
  180. package/dist/lib/workspace-layout.d.ts +2 -0
  181. package/dist/lib/workspace-layout.js +60 -0
  182. package/dist/lib/workspace-paths.d.ts +41 -0
  183. package/dist/lib/workspace-paths.js +107 -0
  184. package/dist/lib/workspace-raw.d.ts +20 -2
  185. package/dist/lib/workspace-raw.js +6 -8
  186. package/dist/lib/workspace-reset.d.ts +0 -1
  187. package/dist/lib/workspace-reset.js +27 -5
  188. package/dist/lib/workspace-schema.d.ts +1 -10
  189. package/dist/lib/workspace-schema.js +16 -74
  190. package/package.json +17 -16
  191. package/dist/bin.d.ts.map +0 -1
  192. package/dist/bin.js.map +0 -1
  193. package/dist/commands/compile.d.ts.map +0 -1
  194. package/dist/commands/compile.js.map +0 -1
  195. package/dist/commands/create-workflow-wizard.d.ts.map +0 -1
  196. package/dist/commands/create-workflow-wizard.js.map +0 -1
  197. package/dist/commands/create.d.ts.map +0 -1
  198. package/dist/commands/create.js.map +0 -1
  199. package/dist/commands/default.d.ts.map +0 -1
  200. package/dist/commands/default.js.map +0 -1
  201. package/dist/commands/doctor.d.ts.map +0 -1
  202. package/dist/commands/doctor.js.map +0 -1
  203. package/dist/commands/executor-flow.d.ts.map +0 -1
  204. package/dist/commands/executor-flow.js.map +0 -1
  205. package/dist/commands/init.d.ts.map +0 -1
  206. package/dist/commands/init.js.map +0 -1
  207. package/dist/commands/list.d.ts.map +0 -1
  208. package/dist/commands/list.js.map +0 -1
  209. package/dist/commands/reset.d.ts.map +0 -1
  210. package/dist/commands/reset.js.map +0 -1
  211. package/dist/commands/source-config-wizard.d.ts.map +0 -1
  212. package/dist/commands/source-config-wizard.js.map +0 -1
  213. package/dist/commands/status.d.ts.map +0 -1
  214. package/dist/commands/status.js.map +0 -1
  215. package/dist/commands/test-flow.d.ts.map +0 -1
  216. package/dist/commands/test-flow.js.map +0 -1
  217. package/dist/commands/test.d.ts.map +0 -1
  218. package/dist/commands/test.js.map +0 -1
  219. package/dist/commands/verify.d.ts.map +0 -1
  220. package/dist/commands/verify.js.map +0 -1
  221. package/dist/commands/workspace-flow.d.ts.map +0 -1
  222. package/dist/commands/workspace-flow.js.map +0 -1
  223. package/dist/index.d.ts.map +0 -1
  224. package/dist/index.js.map +0 -1
  225. package/dist/lib/agent-args.d.ts.map +0 -1
  226. package/dist/lib/agent-args.js.map +0 -1
  227. package/dist/lib/agent-constants.d.ts.map +0 -1
  228. package/dist/lib/agent-constants.js.map +0 -1
  229. package/dist/lib/agent-detection.d.ts.map +0 -1
  230. package/dist/lib/agent-detection.js.map +0 -1
  231. package/dist/lib/agent-execution.d.ts.map +0 -1
  232. package/dist/lib/agent-execution.js.map +0 -1
  233. package/dist/lib/agent-logs.d.ts.map +0 -1
  234. package/dist/lib/agent-logs.js.map +0 -1
  235. package/dist/lib/agent-preflight.d.ts.map +0 -1
  236. package/dist/lib/agent-preflight.js.map +0 -1
  237. package/dist/lib/agent-render.d.ts.map +0 -1
  238. package/dist/lib/agent-render.js.map +0 -1
  239. package/dist/lib/agent-shells.d.ts.map +0 -1
  240. package/dist/lib/agent-shells.js.map +0 -1
  241. package/dist/lib/agent-skills.d.ts +0 -21
  242. package/dist/lib/agent-skills.d.ts.map +0 -1
  243. package/dist/lib/agent-skills.js +0 -215
  244. package/dist/lib/agent-skills.js.map +0 -1
  245. package/dist/lib/agent-status.d.ts.map +0 -1
  246. package/dist/lib/agent-status.js.map +0 -1
  247. package/dist/lib/agent-types.d.ts.map +0 -1
  248. package/dist/lib/agent-types.js.map +0 -1
  249. package/dist/lib/agents.d.ts.map +0 -1
  250. package/dist/lib/agents.js.map +0 -1
  251. package/dist/lib/benchmark-execution.d.ts +0 -13
  252. package/dist/lib/benchmark-execution.d.ts.map +0 -1
  253. package/dist/lib/benchmark-execution.js.map +0 -1
  254. package/dist/lib/benchmark-paths.d.ts +0 -13
  255. package/dist/lib/benchmark-paths.d.ts.map +0 -1
  256. package/dist/lib/benchmark-paths.js +0 -44
  257. package/dist/lib/benchmark-paths.js.map +0 -1
  258. package/dist/lib/benchmark-sandbox.d.ts +0 -12
  259. package/dist/lib/benchmark-sandbox.d.ts.map +0 -1
  260. package/dist/lib/benchmark-sandbox.js.map +0 -1
  261. package/dist/lib/benchmark-specs.d.ts +0 -8
  262. package/dist/lib/benchmark-specs.d.ts.map +0 -1
  263. package/dist/lib/benchmark-specs.js +0 -115
  264. package/dist/lib/benchmark-specs.js.map +0 -1
  265. package/dist/lib/benchmark-targets.d.ts +0 -5
  266. package/dist/lib/benchmark-targets.d.ts.map +0 -1
  267. package/dist/lib/benchmark-targets.js +0 -38
  268. package/dist/lib/benchmark-targets.js.map +0 -1
  269. package/dist/lib/benchmark-types.d.ts +0 -18
  270. package/dist/lib/benchmark-types.d.ts.map +0 -1
  271. package/dist/lib/benchmark-types.js +0 -2
  272. package/dist/lib/benchmark-types.js.map +0 -1
  273. package/dist/lib/benchmark.d.ts +0 -5
  274. package/dist/lib/benchmark.d.ts.map +0 -1
  275. package/dist/lib/benchmark.js +0 -4
  276. package/dist/lib/benchmark.js.map +0 -1
  277. package/dist/lib/config.d.ts.map +0 -1
  278. package/dist/lib/config.js.map +0 -1
  279. package/dist/lib/discovery.d.ts.map +0 -1
  280. package/dist/lib/discovery.js.map +0 -1
  281. package/dist/lib/eval-packs.d.ts +0 -158
  282. package/dist/lib/eval-packs.d.ts.map +0 -1
  283. package/dist/lib/eval-packs.js +0 -149
  284. package/dist/lib/eval-packs.js.map +0 -1
  285. package/dist/lib/execution-profile.d.ts.map +0 -1
  286. package/dist/lib/execution-profile.js.map +0 -1
  287. package/dist/lib/executors.d.ts.map +0 -1
  288. package/dist/lib/executors.js.map +0 -1
  289. package/dist/lib/filesystem.d.ts.map +0 -1
  290. package/dist/lib/filesystem.js.map +0 -1
  291. package/dist/lib/interf-bootstrap.d.ts.map +0 -1
  292. package/dist/lib/interf-bootstrap.js.map +0 -1
  293. package/dist/lib/interf-detect.d.ts.map +0 -1
  294. package/dist/lib/interf-detect.js.map +0 -1
  295. package/dist/lib/interf-scaffold.d.ts.map +0 -1
  296. package/dist/lib/interf-scaffold.js.map +0 -1
  297. package/dist/lib/interf-workflow-package.d.ts.map +0 -1
  298. package/dist/lib/interf-workflow-package.js.map +0 -1
  299. package/dist/lib/interf.d.ts.map +0 -1
  300. package/dist/lib/interf.js.map +0 -1
  301. package/dist/lib/local-workflows.d.ts.map +0 -1
  302. package/dist/lib/local-workflows.js.map +0 -1
  303. package/dist/lib/logger.d.ts.map +0 -1
  304. package/dist/lib/logger.js.map +0 -1
  305. package/dist/lib/obsidian.d.ts.map +0 -1
  306. package/dist/lib/obsidian.js.map +0 -1
  307. package/dist/lib/parse.d.ts.map +0 -1
  308. package/dist/lib/parse.js.map +0 -1
  309. package/dist/lib/registry.d.ts.map +0 -1
  310. package/dist/lib/registry.js.map +0 -1
  311. package/dist/lib/runtime-acceptance.d.ts.map +0 -1
  312. package/dist/lib/runtime-acceptance.js.map +0 -1
  313. package/dist/lib/runtime-contracts.d.ts.map +0 -1
  314. package/dist/lib/runtime-contracts.js.map +0 -1
  315. package/dist/lib/runtime-paths.d.ts.map +0 -1
  316. package/dist/lib/runtime-paths.js.map +0 -1
  317. package/dist/lib/runtime-prompt.d.ts.map +0 -1
  318. package/dist/lib/runtime-prompt.js.map +0 -1
  319. package/dist/lib/runtime-reconcile.d.ts.map +0 -1
  320. package/dist/lib/runtime-reconcile.js.map +0 -1
  321. package/dist/lib/runtime-runs.d.ts.map +0 -1
  322. package/dist/lib/runtime-runs.js.map +0 -1
  323. package/dist/lib/runtime-types.d.ts.map +0 -1
  324. package/dist/lib/runtime-types.js.map +0 -1
  325. package/dist/lib/runtime.d.ts.map +0 -1
  326. package/dist/lib/runtime.js.map +0 -1
  327. package/dist/lib/schema.d.ts.map +0 -1
  328. package/dist/lib/schema.js.map +0 -1
  329. package/dist/lib/source-config.d.ts.map +0 -1
  330. package/dist/lib/source-config.js.map +0 -1
  331. package/dist/lib/state-artifacts.d.ts.map +0 -1
  332. package/dist/lib/state-artifacts.js.map +0 -1
  333. package/dist/lib/state-health.d.ts.map +0 -1
  334. package/dist/lib/state-health.js.map +0 -1
  335. package/dist/lib/state-io.d.ts.map +0 -1
  336. package/dist/lib/state-io.js.map +0 -1
  337. package/dist/lib/state-paths.d.ts.map +0 -1
  338. package/dist/lib/state-paths.js.map +0 -1
  339. package/dist/lib/state-view.d.ts.map +0 -1
  340. package/dist/lib/state-view.js.map +0 -1
  341. package/dist/lib/state.d.ts.map +0 -1
  342. package/dist/lib/state.js.map +0 -1
  343. package/dist/lib/summarize-plan.d.ts.map +0 -1
  344. package/dist/lib/summarize-plan.js.map +0 -1
  345. package/dist/lib/user-config.d.ts.map +0 -1
  346. package/dist/lib/user-config.js.map +0 -1
  347. package/dist/lib/util.d.ts.map +0 -1
  348. package/dist/lib/util.js.map +0 -1
  349. package/dist/lib/validate-helpers.d.ts.map +0 -1
  350. package/dist/lib/validate-helpers.js.map +0 -1
  351. package/dist/lib/validate-workspace.d.ts.map +0 -1
  352. package/dist/lib/validate-workspace.js.map +0 -1
  353. package/dist/lib/validate.d.ts.map +0 -1
  354. package/dist/lib/validate.js.map +0 -1
  355. package/dist/lib/workflow-definitions.d.ts.map +0 -1
  356. package/dist/lib/workflow-definitions.js.map +0 -1
  357. package/dist/lib/workflow-helpers.d.ts.map +0 -1
  358. package/dist/lib/workflow-helpers.js.map +0 -1
  359. package/dist/lib/workflow-stage-runner.d.ts.map +0 -1
  360. package/dist/lib/workflow-stage-runner.js.map +0 -1
  361. package/dist/lib/workflow-starter-docs.d.ts +0 -7
  362. package/dist/lib/workflow-starter-docs.d.ts.map +0 -1
  363. package/dist/lib/workflow-starter-docs.js +0 -3
  364. package/dist/lib/workflow-starter-docs.js.map +0 -1
  365. package/dist/lib/workflows.d.ts.map +0 -1
  366. package/dist/lib/workflows.js.map +0 -1
  367. package/dist/lib/workspace-compile.d.ts.map +0 -1
  368. package/dist/lib/workspace-compile.js.map +0 -1
  369. package/dist/lib/workspace-docs.d.ts +0 -3
  370. package/dist/lib/workspace-docs.d.ts.map +0 -1
  371. package/dist/lib/workspace-docs.js +0 -82
  372. package/dist/lib/workspace-docs.js.map +0 -1
  373. package/dist/lib/workspace-raw.d.ts.map +0 -1
  374. package/dist/lib/workspace-raw.js.map +0 -1
  375. package/dist/lib/workspace-reset.d.ts.map +0 -1
  376. package/dist/lib/workspace-reset.js.map +0 -1
  377. package/dist/lib/workspace-schema.d.ts.map +0 -1
  378. package/dist/lib/workspace-schema.js.map +0 -1
  379. package/skills/benchmark/SKILL.md +0 -122
  380. package/skills/workflow/create/SKILL.md +0 -141
  381. package/skills/workspace/shape/SKILL.md +0 -15
  382. package/skills/workspace/structure/SKILL.md +0 -15
  383. package/skills/workspace/summarize/SKILL.md +0 -15
  384. package/templates/workspace/README.md +0 -24
  385. package/templates/workspace/interfignore +0 -2
@@ -1,16 +1,15 @@
1
- import type { WorkflowExecutionProfile, WorkflowExecutor } from "../lib/executors.js";
2
1
  import type { SourceWorkspaceConfig } from "../lib/schema.js";
3
2
  import type { CommandModule } from "yargs";
4
- import type { StageShellRetentionMode } from "../lib/workflows.js";
3
+ export { runConfiguredWorkspaceCompile } from "./compile-controller.js";
5
4
  export declare const compileCommand: CommandModule;
6
5
  export declare function runCompileCommand(argv?: Record<string, unknown>): Promise<void>;
7
- export declare function runConfiguredWorkspaceCompile(options: {
8
- executor: WorkflowExecutor;
6
+ export declare function resolveInteractiveCompileLoopOverrides(options: {
9
7
  workspacePath: string;
10
- sourcePath: string;
11
8
  workspaceConfig: SourceWorkspaceConfig | null;
12
- executionProfile?: WorkflowExecutionProfile;
13
9
  maxAttemptsOverride: number | null;
14
- preserveStageShells?: StageShellRetentionMode;
15
- }): Promise<boolean>;
16
- //# sourceMappingURL=compile.d.ts.map
10
+ maxLoopsOverride: number | null;
11
+ }): Promise<{
12
+ workspaceConfig: SourceWorkspaceConfig | null;
13
+ maxAttemptsOverride: number | null;
14
+ maxLoopsOverride: number | null;
15
+ } | null>;
@@ -1,27 +1,27 @@
1
- import { cpSync, mkdtempSync, rmSync } from "node:fs";
2
- import { tmpdir } from "node:os";
3
- import { join } from "node:path";
4
1
  import chalk from "chalk";
5
2
  import * as p from "@clack/prompts";
6
3
  import { detectInterf, readInterfConfig, resolveSourceControlPath, } from "../lib/interf.js";
7
- import { findSourceWorkspaceConfig, loadSourceFolderConfig, resolveWorkspaceCompileMaxAttempts, } from "../lib/source-config.js";
8
- import { resetWorkspaceGeneratedState } from "../lib/workspace-reset.js";
9
- import { formatWorkspaceWorkflowStageStep, resolveWorkspaceWorkflowFromConfig, } from "../lib/workflow-definitions.js";
4
+ import { sourceWorkspaceConfigFromInterfConfig, } from "../lib/source-config.js";
10
5
  import { addExecutionProfileOptions, executionProfileFromArgv, } from "../lib/execution-profile.js";
11
- import { chooseWorkspaceConfigToBuild, compileWorkspaceWithReporter, ensureWorkspaceFromConfig, } from "./workspace-flow.js";
6
+ import { chooseWorkspaceConfigToBuild, ensureWorkspaceFromConfig, } from "./workspace-flow.js";
7
+ import { promptCompileLoopSelection, } from "./source-config-wizard.js";
12
8
  import { resolveOrConfigureLocalExecutor } from "./executor-flow.js";
13
- import { printSavedTestOutcome, questionPassRate, runSavedWorkspaceTest } from "./test-flow.js";
9
+ import { runConfiguredWorkspaceCompile } from "./compile-controller.js";
10
+ export { runConfiguredWorkspaceCompile } from "./compile-controller.js";
14
11
  export const compileCommand = {
15
12
  command: "compile",
16
13
  describe: "Build a workspace for this dataset",
17
14
  builder: (yargs) => addExecutionProfileOptions(yargs).option("max-attempts", {
18
15
  alias: "max-retries",
19
16
  type: "number",
20
- describe: "Compile, test, and retry until the workspace passes or reaches this total attempt limit",
17
+ describe: "Retry compile + test for the same workflow until the workspace passes or reaches this total attempt limit",
18
+ }).option("max-loops", {
19
+ type: "number",
20
+ describe: "After retries fail, let Interf edit the workflow and test new workflow variations up to this loop limit",
21
21
  }).option("keep-stage-shells", {
22
22
  type: "boolean",
23
23
  default: false,
24
- describe: "Keep every executed stage shell under .interf/execution-shells for review instead of pruning successful shells",
24
+ describe: "Keep every executed stage shell under .interf/runtime/execution-shells for review instead of pruning successful shells",
25
25
  }),
26
26
  handler: async (argv) => {
27
27
  await runCompileCommand(argv);
@@ -35,12 +35,7 @@ export async function runCompileCommand(argv = {}) {
35
35
  if (detected) {
36
36
  workspacePath = detected.path;
37
37
  sourcePath = resolveSourceControlPath(detected.path);
38
- workspaceConfig = findSourceWorkspaceConfig(loadSourceFolderConfig(sourcePath), detected.config.name) ?? {
39
- name: detected.config.name,
40
- ...(detected.config.about ? { about: detected.config.about } : {}),
41
- ...(detected.config.workflow ? { workflow: detected.config.workflow } : {}),
42
- checks: [],
43
- };
38
+ workspaceConfig = sourceWorkspaceConfigFromInterfConfig(detected.config);
44
39
  if (process.stdin.isTTY && process.stdout.isTTY) {
45
40
  const confirmed = await p.confirm({
46
41
  message: `Compile workspace "${detected.config.name}" now?`,
@@ -76,14 +71,27 @@ export async function runCompileCommand(argv = {}) {
76
71
  console.log(chalk.dim(` Workspace: ${selectedWorkspace.name}`));
77
72
  }
78
73
  let maxAttemptsOverride = null;
74
+ let maxLoopsOverride = null;
79
75
  try {
80
76
  maxAttemptsOverride = readCompileMaxAttemptsOverride(argv);
77
+ maxLoopsOverride = readCompileMaxLoopsOverride(argv);
81
78
  }
82
79
  catch (error) {
83
80
  process.exitCode = 1;
84
81
  console.log(chalk.red(error instanceof Error ? error.message : String(error)));
85
82
  return;
86
83
  }
84
+ const interactiveOverrides = await resolveInteractiveCompileLoopOverrides({
85
+ workspacePath,
86
+ workspaceConfig,
87
+ maxAttemptsOverride,
88
+ maxLoopsOverride,
89
+ });
90
+ if (!interactiveOverrides)
91
+ return;
92
+ workspaceConfig = interactiveOverrides.workspaceConfig;
93
+ maxAttemptsOverride = interactiveOverrides.maxAttemptsOverride;
94
+ maxLoopsOverride = interactiveOverrides.maxLoopsOverride;
87
95
  const executionProfile = executionProfileFromArgv(argv);
88
96
  const { executor, error } = await resolveOrConfigureLocalExecutor({
89
97
  executionProfile,
@@ -103,9 +111,127 @@ export async function runCompileCommand(argv = {}) {
103
111
  workspaceConfig,
104
112
  executionProfile,
105
113
  maxAttemptsOverride,
114
+ maxLoopsOverride,
106
115
  preserveStageShells: readStageShellRetentionMode(argv),
107
116
  });
108
117
  }
118
+ export async function resolveInteractiveCompileLoopOverrides(options) {
119
+ if (!process.stdin.isTTY || !process.stdout.isTTY) {
120
+ return {
121
+ workspaceConfig: options.workspaceConfig,
122
+ maxAttemptsOverride: options.maxAttemptsOverride,
123
+ maxLoopsOverride: options.maxLoopsOverride,
124
+ };
125
+ }
126
+ if (options.maxAttemptsOverride != null || options.maxLoopsOverride != null) {
127
+ return {
128
+ workspaceConfig: options.workspaceConfig,
129
+ maxAttemptsOverride: options.maxAttemptsOverride,
130
+ maxLoopsOverride: options.maxLoopsOverride,
131
+ };
132
+ }
133
+ const currentConfig = readInterfConfig(options.workspacePath);
134
+ const checks = options.workspaceConfig?.checks.length
135
+ ? options.workspaceConfig.checks
136
+ : (currentConfig?.checks ?? []);
137
+ if (checks.length === 0) {
138
+ return {
139
+ workspaceConfig: options.workspaceConfig,
140
+ maxAttemptsOverride: options.maxAttemptsOverride,
141
+ maxLoopsOverride: options.maxLoopsOverride,
142
+ };
143
+ }
144
+ const savedWorkspaceConfig = options.workspaceConfig
145
+ ?? (currentConfig ? sourceWorkspaceConfigFromInterfConfig(currentConfig) : null);
146
+ if (!savedWorkspaceConfig) {
147
+ return {
148
+ workspaceConfig: options.workspaceConfig,
149
+ maxAttemptsOverride: options.maxAttemptsOverride,
150
+ maxLoopsOverride: options.maxLoopsOverride,
151
+ };
152
+ }
153
+ const hasSavedPolicy = typeof savedWorkspaceConfig.max_attempts === "number" ||
154
+ typeof savedWorkspaceConfig.max_loops === "number";
155
+ if (!hasSavedPolicy) {
156
+ const overrideSelection = await promptCompileLoopSelection({
157
+ hasChecks: true,
158
+ initialMaxAttempts: savedWorkspaceConfig.max_attempts,
159
+ initialMaxLoops: savedWorkspaceConfig.max_loops,
160
+ intro: [
161
+ `Workflow: ${savedWorkspaceConfig.workflow ?? currentConfig?.workflow ?? "interf"}`,
162
+ "This selection applies to this compile run only. It does not change the saved workspace setup.",
163
+ ],
164
+ message: "How should this compile run?",
165
+ });
166
+ if (overrideSelection === null)
167
+ return null;
168
+ return {
169
+ workspaceConfig: {
170
+ ...savedWorkspaceConfig,
171
+ max_attempts: undefined,
172
+ max_loops: undefined,
173
+ },
174
+ maxAttemptsOverride: overrideSelection.max_attempts ?? null,
175
+ maxLoopsOverride: overrideSelection.max_loops ?? null,
176
+ };
177
+ }
178
+ const savedMode = await p.select({
179
+ message: "Which compile mode should this run use?",
180
+ options: [
181
+ {
182
+ value: "saved",
183
+ label: "Use saved compile mode (Recommended)",
184
+ hint: `${savedWorkspaceConfig.max_loops ? "Self-improving" : savedWorkspaceConfig.max_attempts && savedWorkspaceConfig.max_attempts > 1 ? "Retry" : "Single attempt"} · ${formatCompileModeHint(savedWorkspaceConfig)}`,
185
+ },
186
+ {
187
+ value: "override",
188
+ label: "Change it for this run only",
189
+ hint: "Keep the saved workspace setup unchanged",
190
+ },
191
+ ],
192
+ });
193
+ if (p.isCancel(savedMode))
194
+ return null;
195
+ if (savedMode === "saved") {
196
+ return {
197
+ workspaceConfig: savedWorkspaceConfig,
198
+ maxAttemptsOverride: null,
199
+ maxLoopsOverride: null,
200
+ };
201
+ }
202
+ const selection = await promptCompileLoopSelection({
203
+ hasChecks: true,
204
+ initialMaxAttempts: savedWorkspaceConfig.max_attempts,
205
+ initialMaxLoops: savedWorkspaceConfig.max_loops,
206
+ intro: [
207
+ `Workflow: ${savedWorkspaceConfig.workflow ?? currentConfig?.workflow ?? "interf"}`,
208
+ "This applies to this compile run only. It does not change the saved workspace setup.",
209
+ ],
210
+ message: "Override the compile mode for this run",
211
+ });
212
+ if (selection === null)
213
+ return null;
214
+ return {
215
+ ...savedWorkspaceConfig,
216
+ workspaceConfig: {
217
+ ...savedWorkspaceConfig,
218
+ max_attempts: undefined,
219
+ max_loops: undefined,
220
+ },
221
+ maxAttemptsOverride: selection.max_attempts ?? null,
222
+ maxLoopsOverride: selection.max_loops ?? null,
223
+ };
224
+ }
225
+ function formatCompileModeHint(workspaceConfig) {
226
+ if (typeof workspaceConfig.max_loops === "number" && workspaceConfig.max_loops > 0) {
227
+ const attempts = workspaceConfig.max_attempts ?? 1;
228
+ return `${attempts} attempt${attempts === 1 ? "" : "s"} per variation, ${workspaceConfig.max_loops} loop${workspaceConfig.max_loops === 1 ? "" : "s"}`;
229
+ }
230
+ if (typeof workspaceConfig.max_attempts === "number" && workspaceConfig.max_attempts > 1) {
231
+ return `${workspaceConfig.max_attempts} attempts`;
232
+ }
233
+ return "1 attempt";
234
+ }
109
235
  function readCompileMaxAttemptsOverride(argv) {
110
236
  const raw = argv["max-attempts"] ??
111
237
  argv.maxAttempts ??
@@ -125,142 +251,14 @@ function readStageShellRetentionMode(argv) {
125
251
  false;
126
252
  return enabled ? "always" : "on-failure";
127
253
  }
128
- function printCompileFailure(workspacePath, failedStage) {
129
- const workflowId = resolveWorkspaceWorkflowFromConfig(readInterfConfig(workspacePath));
130
- const failedStageLabel = formatWorkspaceWorkflowStageStep(workflowId, failedStage ?? "compile", {
131
- sourcePath: resolveSourceControlPath(workspacePath),
132
- });
133
- console.log(chalk.red(` ${failedStageLabel} failed.`));
134
- }
135
- function testScore(outcome) {
136
- return (outcome.result.passedCases * 1000) + outcome.result.passedChecks;
137
- }
138
- function snapshotWorkspace(workspacePath) {
139
- const snapshotRoot = mkdtempSync(join(tmpdir(), "interf-compile-attempt-"));
140
- const snapshotPath = join(snapshotRoot, "workspace");
141
- cpSync(workspacePath, snapshotPath, { recursive: true });
142
- return snapshotPath;
143
- }
144
- function restoreWorkspaceSnapshot(snapshotPath, workspacePath) {
145
- rmSync(workspacePath, { recursive: true, force: true });
146
- cpSync(snapshotPath, workspacePath, { recursive: true });
147
- }
148
- export async function runConfiguredWorkspaceCompile(options) {
149
- const preserveStageShells = options.preserveStageShells ?? "on-failure";
150
- const maxAttempts = resolveWorkspaceCompileMaxAttempts(options.workspaceConfig ?? { max_attempts: undefined }, options.maxAttemptsOverride);
151
- const loopEnabled = maxAttempts != null;
152
- const checks = options.workspaceConfig?.checks ?? [];
153
- if (loopEnabled && checks.length === 0) {
154
- console.log(chalk.yellow(" Self-improving mode needs saved truth checks. Building once without the retry loop."));
155
- }
156
- else if (loopEnabled) {
157
- console.log(chalk.dim(` Self-improving mode: up to ${maxAttempts} compile attempts.`));
158
- console.log(chalk.dim(" Interf will run the workflow, test the workspace, and retry until it passes or reaches the limit."));
159
- }
160
- if (!loopEnabled || checks.length === 0) {
161
- const result = await compileWorkspaceWithReporter(options.executor, options.workspacePath, {
162
- preserveStageShells,
163
- });
164
- if (!result.ok) {
165
- process.exitCode = 1;
166
- printCompileFailure(options.workspacePath, result.failedStage);
167
- printStageShellReviewHint(options.workspacePath, preserveStageShells);
168
- return false;
169
- }
170
- printStageShellReviewHint(options.workspacePath, preserveStageShells);
171
- return true;
172
- }
173
- let bestOutcome = null;
174
- let bestSnapshotPath = null;
175
- let bestAttempt = 0;
176
- try {
177
- for (let attempt = 1; attempt <= maxAttempts; attempt += 1) {
178
- if (attempt > 1) {
179
- console.log();
180
- console.log(chalk.dim(` Resetting generated workspace state before attempt ${attempt}/${maxAttempts}...`));
181
- resetWorkspaceGeneratedState(options.workspacePath, "compile");
182
- }
183
- const result = await compileWorkspaceWithReporter(options.executor, options.workspacePath, {
184
- heading: maxAttempts > 1
185
- ? `Building compiled workspace (attempt ${attempt}/${maxAttempts})...`
186
- : "Building compiled workspace...",
187
- successMessage: maxAttempts > 1
188
- ? `Compiled workspace ready for attempt ${attempt}.`
189
- : "Compiled workspace ready.",
190
- preserveStageShells,
191
- });
192
- if (!result.ok) {
193
- printCompileFailure(options.workspacePath, result.failedStage);
194
- printStageShellReviewHint(options.workspacePath, preserveStageShells);
195
- if (attempt < maxAttempts) {
196
- console.log(chalk.yellow(` Attempt ${attempt}/${maxAttempts} failed. Retrying with a fresh compile.`));
197
- continue;
198
- }
199
- process.exitCode = 1;
200
- return false;
201
- }
202
- const outcome = await runSavedWorkspaceTest({
203
- sourcePath: options.sourcePath,
204
- workspaceConfig: options.workspaceConfig ?? {
205
- name: readInterfConfig(options.workspacePath)?.name ?? "workspace",
206
- checks: [],
207
- },
208
- executionProfile: options.executionProfile,
209
- workspacePath: options.workspacePath,
210
- preserveSandboxes: preserveStageShells === "always" ? "always" : "on-failure",
211
- });
212
- if (!outcome) {
213
- process.exitCode = 1;
214
- console.log(chalk.red(" Could not run the saved workspace test after compile."));
215
- return false;
216
- }
217
- console.log();
218
- printSavedTestOutcome(`Compiled workspace · attempt ${attempt}/${maxAttempts}`, outcome);
219
- if (!bestOutcome || testScore(outcome) > testScore(bestOutcome)) {
220
- if (bestSnapshotPath) {
221
- rmSync(bestSnapshotPath, { recursive: true, force: true });
222
- }
223
- bestOutcome = outcome;
224
- bestSnapshotPath = snapshotWorkspace(options.workspacePath);
225
- bestAttempt = attempt;
226
- }
227
- if (outcome.result.ok) {
228
- console.log();
229
- console.log(chalk.green(` Workspace passed on attempt ${attempt}/${maxAttempts}.`));
230
- printStageShellReviewHint(options.workspacePath, preserveStageShells);
231
- return true;
232
- }
233
- if (attempt < maxAttempts) {
234
- console.log();
235
- console.log(chalk.yellow(` Attempt ${attempt}/${maxAttempts} did not pass. Retrying with a fresh compile.`));
236
- }
237
- }
238
- if (bestSnapshotPath && bestAttempt > 0 && bestAttempt !== maxAttempts) {
239
- restoreWorkspaceSnapshot(bestSnapshotPath, options.workspacePath);
240
- console.log();
241
- console.log(chalk.dim(` Restored the best-performing compiled workspace from attempt ${bestAttempt}/${maxAttempts}.`));
242
- }
243
- process.exitCode = 1;
244
- console.log();
245
- console.log(chalk.red(` Workspace did not pass within ${maxAttempts} attempts.`));
246
- if (bestOutcome) {
247
- console.log(chalk.dim(` Best attempt truth-check pass rate: ${questionPassRate(bestOutcome)}%.`));
248
- }
249
- printStageShellReviewHint(options.workspacePath, preserveStageShells);
250
- return false;
251
- }
252
- finally {
253
- if (bestSnapshotPath) {
254
- rmSync(bestSnapshotPath, { recursive: true, force: true });
255
- }
256
- }
257
- }
258
- function printStageShellReviewHint(workspacePath, preserveStageShells) {
259
- const reviewRoot = join(workspacePath, ".interf", "execution-shells");
260
- if (preserveStageShells === "always") {
261
- console.log(chalk.dim(` Preserved stage shells: ${reviewRoot}`));
262
- return;
254
+ function readCompileMaxLoopsOverride(argv) {
255
+ const raw = argv["max-loops"] ??
256
+ argv.maxLoops;
257
+ if (raw == null)
258
+ return null;
259
+ const parsed = Number.parseInt(String(raw), 10);
260
+ if (!Number.isInteger(parsed) || parsed < 1 || parsed > 3) {
261
+ throw new Error("`--max-loops` must be a whole number from 1 to 3.");
263
262
  }
264
- console.log(chalk.dim(` Failed stage shells remain under: ${reviewRoot}`));
263
+ return parsed;
265
264
  }
266
- //# sourceMappingURL=compile.js.map
@@ -35,10 +35,12 @@ export declare function buildWorkspaceWorkflowOptions(sourcePath: string): {
35
35
  label: string;
36
36
  hint: string;
37
37
  }[];
38
- export declare function chooseWorkspaceWorkflow(sourcePath: string): Promise<string | symbol>;
38
+ export declare function chooseWorkspaceWorkflow(sourcePath: string, options?: {
39
+ currentWorkflowId?: string;
40
+ message?: string;
41
+ }): Promise<string | symbol>;
39
42
  export declare function createWorkflowWizard(options?: {
40
43
  intro?: boolean;
41
44
  sourcePath?: string;
42
45
  }, prompts?: WorkflowWizardPrompts): Promise<string | symbol>;
43
46
  export declare function createWorkspaceWorkflowWizard(sourcePath: string, prompts?: WorkflowWizardPrompts): Promise<string | symbol>;
44
- //# sourceMappingURL=create-workflow-wizard.d.ts.map
@@ -1,8 +1,8 @@
1
1
  import chalk from "chalk";
2
2
  import * as p from "@clack/prompts";
3
3
  import { listWorkspaceWorkflowChoices, } from "../lib/workflow-definitions.js";
4
- import { isWorkflowId, writeLocalWorkflowDefinition, } from "../lib/local-workflows.js";
5
- import { renderJsonFrontmatter } from "../lib/parse.js";
4
+ import { createLocalWorkflowPackageFromTemplate } from "../lib/interf-workflow-package.js";
5
+ import { isWorkflowId, } from "../lib/local-workflows.js";
6
6
  import { slugify } from "../lib/util.js";
7
7
  export const clackWorkflowPrompts = {
8
8
  intro: p.intro,
@@ -23,10 +23,30 @@ export function formatWorkflowLabel(workflow) {
23
23
  export function buildWorkspaceWorkflowOptions(sourcePath) {
24
24
  return listWorkspaceWorkflowChoices(sourcePath).map(formatWorkflowLabel);
25
25
  }
26
- export async function chooseWorkspaceWorkflow(sourcePath) {
26
+ export async function chooseWorkspaceWorkflow(sourcePath, options = {}) {
27
+ const currentWorkflowId = options.currentWorkflowId;
28
+ const workflowOptions = buildWorkspaceWorkflowOptions(sourcePath);
29
+ const orderedOptions = workflowOptions
30
+ .map((option) => option.value === currentWorkflowId
31
+ ? {
32
+ ...option,
33
+ label: `${option.label} (Current)`,
34
+ hint: option.hint,
35
+ }
36
+ : option)
37
+ .sort((left, right) => {
38
+ if (left.value === currentWorkflowId)
39
+ return -1;
40
+ if (right.value === currentWorkflowId)
41
+ return 1;
42
+ return 0;
43
+ });
44
+ if (orderedOptions.length === 1) {
45
+ return orderedOptions[0]?.value ?? "interf";
46
+ }
27
47
  return p.select({
28
- message: "Workspace workflow?",
29
- options: buildWorkspaceWorkflowOptions(sourcePath),
48
+ message: options.message ?? "Workspace workflow?",
49
+ options: orderedOptions,
30
50
  });
31
51
  }
32
52
  export async function createWorkflowWizard(options = {}, prompts = clackWorkflowPrompts) {
@@ -90,34 +110,16 @@ export async function createWorkspaceWorkflowWizard(sourcePath, prompts = clackW
90
110
  });
91
111
  if (prompts.isCancel(shapeBias))
92
112
  return shapeBias;
93
- const workflowPath = writeLocalWorkflowDefinition(sourcePath, workflowId, {
94
- id: workflowId,
95
- type: "workspace",
113
+ const workflowPath = createLocalWorkflowPackageFromTemplate({
114
+ sourcePath,
115
+ baseWorkflowId: baseWorkflow,
116
+ workflowId,
96
117
  label,
97
118
  hint: hint.trim(),
98
- extends: baseWorkflow,
99
- stage_policy_notes: {
100
- summarize: [summarizeBias.trim()],
101
- structure: [structureBias.trim()],
102
- shape: [shapeBias.trim()],
103
- },
104
- }, [
105
- {
106
- relativePath: "README.md",
107
- content: [
108
- renderJsonFrontmatter({ mode: "extend" }),
109
- `# ${label}`,
110
- "",
111
- `This local workspace workflow extends \`${baseWorkflow}\`.`,
112
- "",
113
- `- summarize bias: ${summarizeBias.trim()}`,
114
- `- structure bias: ${structureBias.trim()}`,
115
- `- shape bias: ${shapeBias.trim()}`,
116
- "",
117
- ].join("\n"),
118
- },
119
- ]);
119
+ summarizeBias: summarizeBias.trim(),
120
+ structureBias: structureBias.trim(),
121
+ shapeBias: shapeBias.trim(),
122
+ });
120
123
  prompts.log.info(`Saved local workflow: ${workflowPath}`);
121
124
  return workflowId;
122
125
  }
123
- //# sourceMappingURL=create-workflow-wizard.js.map
@@ -6,4 +6,3 @@ export declare function createWorkspaceWizard(options?: {
6
6
  executionProfile?: WorkflowExecutionProfile;
7
7
  }): Promise<void>;
8
8
  export { type WorkflowWizardPrompts, formatWorkflowLabel, chooseWorkspaceWorkflow, createWorkflowWizard, createWorkspaceWorkflowWizard, } from "./create-workflow-wizard.js";
9
- //# sourceMappingURL=create.d.ts.map
@@ -5,7 +5,7 @@ import { detectInterf, defaultWorkspaceNameForSource, listWorkspacesForSourceFol
5
5
  import { slugify } from "../lib/util.js";
6
6
  import { addExecutionProfileOptions, executionProfileFromArgv, } from "../lib/execution-profile.js";
7
7
  import { loadSourceFolderConfig, upsertSourceWorkspaceConfig } from "../lib/source-config.js";
8
- import { chooseWorkspaceWorkflow, createWorkflowWizard, } from "./create-workflow-wizard.js";
8
+ import { buildWorkspaceWorkflowOptions, chooseWorkspaceWorkflow, createWorkflowWizard, } from "./create-workflow-wizard.js";
9
9
  import { ensureWorkspaceFromConfig, } from "./workspace-flow.js";
10
10
  import { DEFAULT_WORKSPACE_NAME, promptSingleWorkspaceConfig, } from "./source-config-wizard.js";
11
11
  import { resolveOrConfigureLocalExecutor } from "./executor-flow.js";
@@ -36,7 +36,7 @@ async function selectCreateTarget() {
36
36
  {
37
37
  value: "workflow",
38
38
  label: "Workflow",
39
- hint: "Create a reusable local workflow package",
39
+ hint: "Create a reusable local workflow",
40
40
  },
41
41
  ],
42
42
  });
@@ -86,19 +86,24 @@ export async function createWorkspaceWizard(options = {}) {
86
86
  if (existing.length > 0) {
87
87
  p.log.info(`This dataset already has ${existing.length} workspace${existing.length === 1 ? "" : "s"}. Add another only when you need a separate set of truth checks or a different focus.`);
88
88
  }
89
- p.log.info("Interf builds a compiled workspace on top of the dataset. The source files stay where they are and stay the source of truth.");
89
+ p.log.info("Interf Compiler builds a compiled workspace on top of the dataset. The source files stay where they are and stay the source of truth.");
90
90
  const existingConfig = loadSourceFolderConfig(cwd);
91
91
  const suggestedName = slugify(defaultWorkspaceNameForSource(cwd) || basename(cwd)) || DEFAULT_WORKSPACE_NAME;
92
+ const workflowChoice = await chooseWorkspaceWorkflow(cwd, {
93
+ message: "Which workflow should this workspace start from?",
94
+ });
95
+ if (p.isCancel(workflowChoice))
96
+ return;
97
+ const workflowId = workflowChoice;
98
+ const workflowLabel = buildWorkspaceWorkflowOptions(cwd)
99
+ .find((option) => option.value === workflowId)?.label ?? workflowId;
92
100
  const draft = await promptSingleWorkspaceConfig({
93
101
  initial: { name: suggestedName },
94
102
  introStyle: existingConfig ? "additional" : "first",
103
+ selectedWorkflowLabel: workflowLabel,
95
104
  });
96
105
  if (!draft)
97
106
  return;
98
- const workflowChoice = await chooseWorkspaceWorkflow(cwd);
99
- if (p.isCancel(workflowChoice))
100
- return;
101
- const workflowId = workflowChoice;
102
107
  const configToSave = {
103
108
  ...draft,
104
109
  workflow: workflowId,
@@ -124,7 +129,7 @@ export async function createWorkspaceWizard(options = {}) {
124
129
  return;
125
130
  }
126
131
  const compileNow = await p.confirm({
127
- message: "Build it now? (Recommended)",
132
+ message: "Build it now with this workflow and compile mode? (Recommended)",
128
133
  initialValue: true,
129
134
  });
130
135
  if (p.isCancel(compileNow) || !compileNow) {
@@ -155,11 +160,10 @@ async function compileWorkspaceAfterCreate(executor, sourcePath, workspaceConfig
155
160
  workspaceConfig,
156
161
  executionProfile,
157
162
  maxAttemptsOverride: null,
163
+ maxLoopsOverride: null,
158
164
  });
159
- if (!compiled) {
165
+ if (!compiled)
160
166
  process.exitCode = 1;
161
- return;
162
- }
167
+ return compiled;
163
168
  }
164
169
  export { formatWorkflowLabel, chooseWorkspaceWorkflow, createWorkflowWizard, createWorkspaceWorkflowWizard, } from "./create-workflow-wizard.js";
165
- //# sourceMappingURL=create.js.map
@@ -1,3 +1,2 @@
1
1
  import type { CommandModule } from "yargs";
2
2
  export declare const defaultCommand: CommandModule;
3
- //# sourceMappingURL=default.d.ts.map
@@ -4,7 +4,7 @@ import { runInitCommand } from "./init.js";
4
4
  function printStaticLanding() {
5
5
  const config = loadUserConfig();
6
6
  console.log();
7
- console.log(chalk.bold(" Interf"));
7
+ console.log(chalk.bold(" Interf Compiler"));
8
8
  console.log(chalk.dim(" Set truth checks on a dataset, compile a workspace, and test whether it passes."));
9
9
  console.log();
10
10
  if (config) {
@@ -35,4 +35,3 @@ export const defaultCommand = {
35
35
  await runInitCommand();
36
36
  },
37
37
  };
38
- //# sourceMappingURL=default.js.map
@@ -1,3 +1,2 @@
1
1
  import type { CommandModule } from "yargs";
2
2
  export declare const doctorCommand: CommandModule;
3
- //# sourceMappingURL=doctor.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import chalk from "chalk";
2
- import { inspectInterfSkills, resolveAgent, runAgentPreflight } from "../lib/agents.js";
2
+ import { resolveAgent, runAgentPreflight } from "../lib/agents.js";
3
3
  import { loadUserConfig } from "../lib/user-config.js";
4
4
  function iconFor(status) {
5
5
  if (status === "pass")
@@ -31,7 +31,7 @@ export const doctorCommand = {
31
31
  if (config) {
32
32
  checks.push({
33
33
  id: "config",
34
- label: "Interf setup",
34
+ label: "Interf Compiler setup",
35
35
  status: "pass",
36
36
  message: `Configured default agent: ${config.agent}`,
37
37
  });
@@ -39,9 +39,9 @@ export const doctorCommand = {
39
39
  else {
40
40
  checks.push({
41
41
  id: "config",
42
- label: "Interf setup",
42
+ label: "Interf Compiler setup",
43
43
  status: "warn",
44
- message: "No saved Interf setup found. `interf` or `interf init` is recommended for deterministic local runs.",
44
+ message: "No saved Interf Compiler setup found. `interf` or `interf init` is recommended for deterministic local runs.",
45
45
  });
46
46
  }
47
47
  if (!agent) {
@@ -56,7 +56,7 @@ export const doctorCommand = {
56
56
  }
57
57
  else {
58
58
  console.log();
59
- console.log(chalk.bold(" Interf doctor"));
59
+ console.log(chalk.bold(" Interf Compiler doctor"));
60
60
  console.log();
61
61
  for (const check of checks) {
62
62
  console.log(` ${iconFor(check.status)} ${check.label}: ${check.message}`);
@@ -72,20 +72,6 @@ export const doctorCommand = {
72
72
  status: "pass",
73
73
  message: `${agent.displayName} is configured and available as \`${agent.command}\``,
74
74
  });
75
- const skillHealth = inspectInterfSkills(agent);
76
- const skillProblems = [
77
- ...skillHealth.missing.map((name) => `missing ${name}`),
78
- ...skillHealth.stale.map((name) => `stale ${name}`),
79
- ...skillHealth.wrongAgent.map((name) => `wrong-agent ${name}`),
80
- ];
81
- checks.push({
82
- id: "skills",
83
- label: "Optional global Interf skills",
84
- status: skillProblems.length === 0 ? "pass" : "warn",
85
- message: skillProblems.length === 0
86
- ? "Installed and current"
87
- : `Optional only; refresh with \`interf\` or \`interf init\`. Problems: ${skillProblems.join(", ")}`,
88
- });
89
75
  if (argv.live) {
90
76
  const preflight = runAgentPreflight(agent);
91
77
  checks.push({
@@ -93,7 +79,7 @@ export const doctorCommand = {
93
79
  label: "Live executor preflight",
94
80
  status: preflight.ok ? "pass" : "fail",
95
81
  message: preflight.ok
96
- ? `${agent.displayName} accepted Interf's automated run invocation`
82
+ ? `${agent.displayName} accepted Interf Compiler's automated run invocation`
97
83
  : preflight.timedOut
98
84
  ? `${agent.displayName} timed out during preflight`
99
85
  : preflight.error ?? `${agent.displayName} could not complete the preflight run`,
@@ -129,7 +115,7 @@ export const doctorCommand = {
129
115
  }
130
116
  else {
131
117
  console.log();
132
- console.log(chalk.bold(" Interf doctor"));
118
+ console.log(chalk.bold(" Interf Compiler doctor"));
133
119
  console.log();
134
120
  for (const check of checks) {
135
121
  console.log(` ${iconFor(check.status)} ${check.label}: ${check.message}`);
@@ -143,4 +129,3 @@ export const doctorCommand = {
143
129
  process.exitCode = ok ? 0 : 1;
144
130
  },
145
131
  };
146
- //# sourceMappingURL=doctor.js.map