@interf/compiler 0.6.1 → 0.6.4

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 (391) hide show
  1. package/README.md +106 -80
  2. package/builtin-workflows/interf/README.md +5 -5
  3. package/builtin-workflows/interf/compile/stages/shape/SKILL.md +4 -4
  4. package/builtin-workflows/interf/improve/SKILL.md +2 -2
  5. package/builtin-workflows/interf/use/query/SKILL.md +1 -1
  6. package/builtin-workflows/interf/workflow.json +6 -6
  7. package/builtin-workflows/interf/workflow.schema.json +1 -1
  8. package/dist/bin.js +2 -28
  9. package/dist/{commands → cli/commands}/check-draft.d.ts +2 -2
  10. package/dist/{commands → cli/commands}/check-draft.js +16 -16
  11. package/dist/{commands → cli/commands}/compile-controller.d.ts +3 -3
  12. package/dist/{commands → cli/commands}/compile-controller.js +37 -35
  13. package/dist/{commands → cli/commands}/compile.d.ts +2 -2
  14. package/dist/{commands → cli/commands}/compile.js +15 -11
  15. package/dist/{commands → cli/commands}/compiled-flow.d.ts +3 -4
  16. package/dist/{commands → cli/commands}/compiled-flow.js +9 -14
  17. package/dist/{commands → cli/commands}/create-workflow-wizard.d.ts +3 -3
  18. package/dist/{commands → cli/commands}/create-workflow-wizard.js +64 -37
  19. package/dist/{commands → cli/commands}/create.d.ts +1 -1
  20. package/dist/{commands → cli/commands}/create.js +15 -18
  21. package/dist/{commands → cli/commands}/dataset-selection.d.ts +1 -1
  22. package/dist/{commands → cli/commands}/default.js +3 -3
  23. package/dist/{commands → cli/commands}/doctor.js +5 -6
  24. package/dist/{commands → cli/commands}/executor-flow.d.ts +1 -1
  25. package/dist/{commands → cli/commands}/executor-flow.js +13 -16
  26. package/dist/{commands → cli/commands}/init.d.ts +4 -1
  27. package/dist/{commands → cli/commands}/init.js +162 -77
  28. package/dist/{commands → cli/commands}/list.js +6 -6
  29. package/dist/{commands → cli/commands}/reset.js +4 -4
  30. package/dist/{commands → cli/commands}/source-config-wizard.d.ts +9 -4
  31. package/dist/{commands → cli/commands}/source-config-wizard.js +168 -94
  32. package/dist/{commands → cli/commands}/status.js +20 -11
  33. package/dist/{commands → cli/commands}/test-flow.d.ts +13 -4
  34. package/dist/{commands → cli/commands}/test-flow.js +52 -48
  35. package/dist/cli/commands/test.d.ts +14 -0
  36. package/dist/{commands → cli/commands}/test.js +40 -24
  37. package/dist/{commands → cli/commands}/verify.js +4 -4
  38. package/dist/cli/index.d.ts +21 -0
  39. package/dist/cli/index.js +33 -0
  40. package/dist/index.d.ts +22 -11
  41. package/dist/index.js +15 -6
  42. package/dist/lib/agent-args.d.ts +1 -4
  43. package/dist/lib/agent-args.js +1 -52
  44. package/dist/lib/agent-constants.d.ts +1 -5
  45. package/dist/lib/agent-constants.js +1 -28
  46. package/dist/lib/agent-detection.d.ts +1 -7
  47. package/dist/lib/agent-detection.js +1 -65
  48. package/dist/lib/agent-execution.d.ts +1 -2
  49. package/dist/lib/agent-execution.js +1 -243
  50. package/dist/lib/agent-logs.d.ts +1 -2
  51. package/dist/lib/agent-logs.js +1 -17
  52. package/dist/lib/agent-preflight.d.ts +1 -7
  53. package/dist/lib/agent-preflight.js +1 -77
  54. package/dist/lib/agent-render.d.ts +1 -8
  55. package/dist/lib/agent-render.js +1 -218
  56. package/dist/lib/agent-shells.d.ts +1 -69
  57. package/dist/lib/agent-shells.js +1 -1021
  58. package/dist/lib/agent-status.d.ts +1 -3
  59. package/dist/lib/agent-status.js +1 -58
  60. package/dist/lib/agent-types.d.ts +1 -30
  61. package/dist/lib/agent-types.js +1 -1
  62. package/dist/lib/agents.d.ts +1 -6
  63. package/dist/lib/agents.js +1 -5
  64. package/dist/lib/builtin-compiled-workflow.d.ts +1 -38
  65. package/dist/lib/builtin-compiled-workflow.js +1 -94
  66. package/dist/lib/chart-guidance.d.ts +1 -1
  67. package/dist/lib/chart-guidance.js +1 -8
  68. package/dist/lib/compiled-compile.d.ts +1 -48
  69. package/dist/lib/compiled-compile.js +1 -255
  70. package/dist/lib/compiled-paths.d.ts +1 -40
  71. package/dist/lib/compiled-paths.js +3 -106
  72. package/dist/lib/compiled-raw.d.ts +1 -49
  73. package/dist/lib/compiled-raw.js +3 -102
  74. package/dist/lib/compiled-reset.d.ts +1 -2
  75. package/dist/lib/compiled-reset.js +3 -72
  76. package/dist/lib/compiled-schema.d.ts +1 -31
  77. package/dist/lib/compiled-schema.js +1 -141
  78. package/dist/lib/discovery.d.ts +1 -7
  79. package/dist/lib/discovery.js +1 -84
  80. package/dist/lib/execution-profile.d.ts +1 -17
  81. package/dist/lib/execution-profile.js +1 -84
  82. package/dist/lib/executors.d.ts +1 -32
  83. package/dist/lib/executors.js +1 -43
  84. package/dist/lib/filesystem.d.ts +1 -2
  85. package/dist/lib/filesystem.js +1 -55
  86. package/dist/lib/interf-bootstrap.d.ts +1 -3
  87. package/dist/lib/interf-bootstrap.js +3 -18
  88. package/dist/lib/interf-detect.d.ts +1 -33
  89. package/dist/lib/interf-detect.js +3 -176
  90. package/dist/lib/interf-scaffold.d.ts +1 -2
  91. package/dist/lib/interf-scaffold.js +3 -114
  92. package/dist/lib/interf-workflow-package.d.ts +1 -25
  93. package/dist/lib/interf-workflow-package.js +1 -342
  94. package/dist/lib/interf.d.ts +1 -5
  95. package/dist/lib/interf.js +3 -4
  96. package/dist/lib/local-workflows.d.ts +1 -54
  97. package/dist/lib/local-workflows.js +1 -422
  98. package/dist/lib/logger.d.ts +1 -3
  99. package/dist/lib/logger.js +1 -10
  100. package/dist/lib/package-root.d.ts +1 -0
  101. package/dist/lib/package-root.js +1 -0
  102. package/dist/lib/parse.d.ts +1 -8
  103. package/dist/lib/parse.js +1 -145
  104. package/dist/lib/project-paths.d.ts +1 -11
  105. package/dist/lib/project-paths.js +3 -32
  106. package/dist/lib/runtime-acceptance.d.ts +1 -9
  107. package/dist/lib/runtime-acceptance.js +1 -269
  108. package/dist/lib/runtime-contracts.d.ts +1 -2
  109. package/dist/lib/runtime-contracts.js +1 -48
  110. package/dist/lib/runtime-inventory.d.ts +1 -7
  111. package/dist/lib/runtime-inventory.js +1 -29
  112. package/dist/lib/runtime-paths.d.ts +1 -8
  113. package/dist/lib/runtime-paths.js +1 -26
  114. package/dist/lib/runtime-prompt.d.ts +1 -2
  115. package/dist/lib/runtime-prompt.js +1 -48
  116. package/dist/lib/runtime-reconcile.d.ts +1 -2
  117. package/dist/lib/runtime-reconcile.js +1 -193
  118. package/dist/lib/runtime-runs.d.ts +1 -11
  119. package/dist/lib/runtime-runs.js +1 -262
  120. package/dist/lib/runtime-types.d.ts +1 -43
  121. package/dist/lib/runtime-types.js +1 -1
  122. package/dist/lib/runtime.d.ts +1 -6
  123. package/dist/lib/runtime.js +1 -5
  124. package/dist/lib/schema.d.ts +4 -1073
  125. package/dist/lib/schema.js +6 -542
  126. package/dist/lib/source-config.d.ts +1 -39
  127. package/dist/lib/source-config.js +3 -293
  128. package/dist/lib/state-artifacts.d.ts +1 -8
  129. package/dist/lib/state-artifacts.js +1 -13
  130. package/dist/lib/state-health.d.ts +1 -4
  131. package/dist/lib/state-health.js +1 -132
  132. package/dist/lib/state-io.d.ts +1 -10
  133. package/dist/lib/state-io.js +1 -76
  134. package/dist/lib/state-paths.d.ts +1 -4
  135. package/dist/lib/state-paths.js +1 -13
  136. package/dist/lib/state-view.d.ts +1 -4
  137. package/dist/lib/state-view.js +1 -103
  138. package/dist/lib/state.d.ts +1 -7
  139. package/dist/lib/state.js +1 -12
  140. package/dist/lib/test-execution.d.ts +1 -14
  141. package/dist/lib/test-execution.js +3 -525
  142. package/dist/lib/test-matrices.d.ts +1 -90
  143. package/dist/lib/test-matrices.js +3 -96
  144. package/dist/lib/test-paths.d.ts +1 -12
  145. package/dist/lib/test-paths.js +3 -59
  146. package/dist/lib/test-profile-presets.d.ts +1 -57
  147. package/dist/lib/test-profile-presets.js +3 -50
  148. package/dist/lib/test-sandbox.d.ts +1 -11
  149. package/dist/lib/test-sandbox.js +3 -105
  150. package/dist/lib/test-specs.d.ts +1 -7
  151. package/dist/lib/test-specs.js +3 -114
  152. package/dist/lib/test-targets.d.ts +1 -5
  153. package/dist/lib/test-targets.js +3 -38
  154. package/dist/lib/test-types.d.ts +1 -17
  155. package/dist/lib/test-types.js +3 -1
  156. package/dist/lib/test.d.ts +1 -4
  157. package/dist/lib/test.js +3 -3
  158. package/dist/lib/util.d.ts +1 -4
  159. package/dist/lib/util.js +1 -25
  160. package/dist/lib/validate-compiled.d.ts +1 -27
  161. package/dist/lib/validate-compiled.js +1 -241
  162. package/dist/lib/validate-helpers.d.ts +1 -12
  163. package/dist/lib/validate-helpers.js +1 -41
  164. package/dist/lib/validate.d.ts +1 -21
  165. package/dist/lib/validate.js +1 -249
  166. package/dist/lib/workflow-authoring.d.ts +1 -26
  167. package/dist/lib/workflow-authoring.js +1 -119
  168. package/dist/lib/workflow-definitions.d.ts +1 -78
  169. package/dist/lib/workflow-definitions.js +1 -203
  170. package/dist/lib/workflow-edit-session.d.ts +1 -16
  171. package/dist/lib/workflow-edit-session.js +1 -57
  172. package/dist/lib/workflow-edit-utils.d.ts +1 -10
  173. package/dist/lib/workflow-edit-utils.js +1 -39
  174. package/dist/lib/workflow-helpers.d.ts +1 -38
  175. package/dist/lib/workflow-helpers.js +1 -167
  176. package/dist/lib/workflow-improvement.d.ts +1 -22
  177. package/dist/lib/workflow-improvement.js +1 -209
  178. package/dist/lib/workflow-primitives.d.ts +1 -2
  179. package/dist/lib/workflow-primitives.js +1 -5
  180. package/dist/lib/workflow-review-paths.d.ts +1 -10
  181. package/dist/lib/workflow-review-paths.js +1 -27
  182. package/dist/lib/workflow-stage-policy.d.ts +1 -5
  183. package/dist/lib/workflow-stage-policy.js +1 -31
  184. package/dist/lib/workflow-stage-runner.d.ts +1 -41
  185. package/dist/lib/workflow-stage-runner.js +1 -109
  186. package/dist/lib/workflows.d.ts +1 -15
  187. package/dist/lib/workflows.js +1 -31
  188. package/dist/packages/agents/index.d.ts +18 -0
  189. package/dist/packages/agents/index.js +16 -0
  190. package/dist/packages/agents/lib/agents.d.ts +6 -0
  191. package/dist/packages/agents/lib/agents.js +5 -0
  192. package/dist/packages/agents/lib/args.d.ts +4 -0
  193. package/dist/packages/agents/lib/args.js +52 -0
  194. package/dist/packages/agents/lib/chart-guidance.d.ts +1 -0
  195. package/dist/packages/agents/lib/chart-guidance.js +8 -0
  196. package/dist/packages/agents/lib/compiled-bootstrap.d.ts +3 -0
  197. package/dist/packages/agents/lib/compiled-bootstrap.js +18 -0
  198. package/dist/packages/agents/lib/constants.d.ts +5 -0
  199. package/dist/packages/agents/lib/constants.js +28 -0
  200. package/dist/packages/agents/lib/detection.d.ts +7 -0
  201. package/dist/packages/agents/lib/detection.js +65 -0
  202. package/dist/packages/agents/lib/execution-profile.d.ts +17 -0
  203. package/dist/packages/agents/lib/execution-profile.js +84 -0
  204. package/dist/packages/agents/lib/execution.d.ts +2 -0
  205. package/dist/packages/agents/lib/execution.js +243 -0
  206. package/dist/packages/agents/lib/executors.d.ts +32 -0
  207. package/dist/packages/agents/lib/executors.js +45 -0
  208. package/dist/packages/agents/lib/logs.d.ts +2 -0
  209. package/dist/packages/agents/lib/logs.js +17 -0
  210. package/dist/packages/agents/lib/preflight.d.ts +7 -0
  211. package/dist/packages/agents/lib/preflight.js +77 -0
  212. package/dist/packages/agents/lib/render.d.ts +8 -0
  213. package/dist/packages/agents/lib/render.js +218 -0
  214. package/dist/packages/agents/lib/schema.d.ts +8 -0
  215. package/dist/packages/agents/lib/schema.js +7 -0
  216. package/dist/packages/agents/lib/shells.d.ts +71 -0
  217. package/dist/packages/agents/lib/shells.js +1023 -0
  218. package/dist/packages/agents/lib/status.d.ts +3 -0
  219. package/dist/packages/agents/lib/status.js +58 -0
  220. package/dist/packages/agents/lib/types.d.ts +30 -0
  221. package/dist/packages/agents/lib/types.js +1 -0
  222. package/dist/{lib → packages/agents/lib}/user-config.d.ts +1 -0
  223. package/dist/{lib → packages/agents/lib}/user-config.js +3 -2
  224. package/dist/packages/compiler/compiled-compile.d.ts +4 -0
  225. package/dist/packages/compiler/compiled-compile.js +4 -0
  226. package/dist/packages/compiler/compiled-paths.d.ts +40 -0
  227. package/dist/packages/compiler/compiled-paths.js +106 -0
  228. package/dist/packages/compiler/compiled-pipeline.d.ts +39 -0
  229. package/dist/packages/compiler/compiled-pipeline.js +134 -0
  230. package/dist/packages/compiler/compiled-schema.d.ts +31 -0
  231. package/dist/packages/compiler/compiled-schema.js +141 -0
  232. package/dist/packages/compiler/compiled-stage-plan.d.ts +15 -0
  233. package/dist/packages/compiler/compiled-stage-plan.js +79 -0
  234. package/dist/packages/compiler/compiled-stage-runner.d.ts +10 -0
  235. package/dist/packages/compiler/compiled-stage-runner.js +46 -0
  236. package/dist/packages/compiler/compiled-target.d.ts +11 -0
  237. package/dist/packages/compiler/compiled-target.js +16 -0
  238. package/dist/packages/compiler/discovery.d.ts +7 -0
  239. package/dist/packages/compiler/discovery.js +80 -0
  240. package/dist/packages/compiler/index.d.ts +24 -0
  241. package/dist/packages/compiler/index.js +23 -0
  242. package/dist/packages/compiler/lib/schema.d.ts +684 -0
  243. package/dist/packages/compiler/lib/schema.js +363 -0
  244. package/dist/packages/compiler/raw-snapshot.d.ts +49 -0
  245. package/dist/packages/compiler/raw-snapshot.js +102 -0
  246. package/dist/packages/compiler/reset.d.ts +2 -0
  247. package/dist/packages/compiler/reset.js +72 -0
  248. package/dist/packages/compiler/runtime-acceptance.d.ts +9 -0
  249. package/dist/packages/compiler/runtime-acceptance.js +269 -0
  250. package/dist/packages/compiler/runtime-contracts.d.ts +2 -0
  251. package/dist/packages/compiler/runtime-contracts.js +48 -0
  252. package/dist/packages/compiler/runtime-inventory.d.ts +7 -0
  253. package/dist/packages/compiler/runtime-inventory.js +29 -0
  254. package/dist/packages/compiler/runtime-paths.d.ts +8 -0
  255. package/dist/packages/compiler/runtime-paths.js +26 -0
  256. package/dist/packages/compiler/runtime-prompt.d.ts +2 -0
  257. package/dist/packages/compiler/runtime-prompt.js +48 -0
  258. package/dist/packages/compiler/runtime-reconcile.d.ts +2 -0
  259. package/dist/packages/compiler/runtime-reconcile.js +193 -0
  260. package/dist/packages/compiler/runtime-runs.d.ts +11 -0
  261. package/dist/packages/compiler/runtime-runs.js +262 -0
  262. package/dist/packages/compiler/runtime-types.d.ts +43 -0
  263. package/dist/packages/compiler/runtime-types.js +1 -0
  264. package/dist/packages/compiler/runtime.d.ts +6 -0
  265. package/dist/packages/compiler/runtime.js +5 -0
  266. package/dist/packages/compiler/state-artifacts.d.ts +8 -0
  267. package/dist/packages/compiler/state-artifacts.js +13 -0
  268. package/dist/packages/compiler/state-health.d.ts +4 -0
  269. package/dist/packages/compiler/state-health.js +132 -0
  270. package/dist/packages/compiler/state-io.d.ts +10 -0
  271. package/dist/packages/compiler/state-io.js +76 -0
  272. package/dist/packages/compiler/state-paths.d.ts +4 -0
  273. package/dist/packages/compiler/state-paths.js +13 -0
  274. package/dist/packages/compiler/state-view.d.ts +4 -0
  275. package/dist/packages/compiler/state-view.js +103 -0
  276. package/dist/packages/compiler/state.d.ts +7 -0
  277. package/dist/packages/compiler/state.js +12 -0
  278. package/dist/packages/compiler/validate-compiled.d.ts +27 -0
  279. package/dist/packages/compiler/validate-compiled.js +241 -0
  280. package/dist/packages/compiler/validate-helpers.d.ts +12 -0
  281. package/dist/packages/compiler/validate-helpers.js +41 -0
  282. package/dist/packages/compiler/validate.d.ts +21 -0
  283. package/dist/packages/compiler/validate.js +249 -0
  284. package/dist/packages/compiler/workflow-primitives.d.ts +2 -0
  285. package/dist/packages/compiler/workflow-primitives.js +5 -0
  286. package/dist/packages/compiler/workflows.d.ts +15 -0
  287. package/dist/packages/compiler/workflows.js +31 -0
  288. package/dist/packages/project-model/compiled-paths.d.ts +1 -0
  289. package/dist/packages/project-model/compiled-paths.js +1 -0
  290. package/dist/packages/project-model/compiled-raw.d.ts +1 -0
  291. package/dist/packages/project-model/compiled-raw.js +1 -0
  292. package/dist/packages/project-model/compiled-reset.d.ts +1 -0
  293. package/dist/packages/project-model/compiled-reset.js +1 -0
  294. package/dist/packages/project-model/index.d.ts +11 -0
  295. package/dist/packages/project-model/index.js +10 -0
  296. package/dist/packages/project-model/interf-bootstrap.d.ts +1 -0
  297. package/dist/packages/project-model/interf-bootstrap.js +1 -0
  298. package/dist/packages/project-model/interf-detect.d.ts +33 -0
  299. package/dist/packages/project-model/interf-detect.js +176 -0
  300. package/dist/packages/project-model/interf-scaffold.d.ts +2 -0
  301. package/dist/packages/project-model/interf-scaffold.js +124 -0
  302. package/dist/packages/project-model/interf.d.ts +5 -0
  303. package/dist/packages/project-model/interf.js +4 -0
  304. package/dist/packages/project-model/lib/schema.d.ts +125 -0
  305. package/dist/packages/project-model/lib/schema.js +62 -0
  306. package/dist/packages/project-model/project-paths.d.ts +11 -0
  307. package/dist/packages/project-model/project-paths.js +32 -0
  308. package/dist/packages/project-model/source-config.d.ts +38 -0
  309. package/dist/packages/project-model/source-config.js +298 -0
  310. package/dist/packages/shared/file-types.d.ts +1 -0
  311. package/dist/packages/shared/file-types.js +4 -0
  312. package/dist/packages/shared/filesystem.d.ts +2 -0
  313. package/dist/packages/shared/filesystem.js +55 -0
  314. package/dist/packages/shared/index.d.ts +7 -0
  315. package/dist/packages/shared/index.js +7 -0
  316. package/dist/packages/shared/logger.d.ts +3 -0
  317. package/dist/packages/shared/logger.js +10 -0
  318. package/dist/packages/shared/naming.d.ts +1 -0
  319. package/dist/packages/shared/naming.js +8 -0
  320. package/dist/packages/shared/parse.d.ts +8 -0
  321. package/dist/packages/shared/parse.js +145 -0
  322. package/dist/packages/shared/path-guards.d.ts +2 -0
  323. package/dist/packages/shared/path-guards.js +14 -0
  324. package/dist/packages/shared/util.d.ts +3 -0
  325. package/dist/packages/shared/util.js +3 -0
  326. package/dist/packages/testing/index.d.ts +13 -0
  327. package/dist/packages/testing/index.js +10 -0
  328. package/dist/packages/testing/lib/schema.d.ts +261 -0
  329. package/dist/packages/testing/lib/schema.js +119 -0
  330. package/dist/packages/testing/test-execution.d.ts +14 -0
  331. package/dist/packages/testing/test-execution.js +525 -0
  332. package/dist/packages/testing/test-matrices.d.ts +90 -0
  333. package/dist/packages/testing/test-matrices.js +96 -0
  334. package/dist/packages/testing/test-paths.d.ts +12 -0
  335. package/dist/packages/testing/test-paths.js +59 -0
  336. package/dist/packages/testing/test-profile-presets.d.ts +57 -0
  337. package/dist/packages/testing/test-profile-presets.js +50 -0
  338. package/dist/packages/testing/test-sandbox.d.ts +11 -0
  339. package/dist/packages/testing/test-sandbox.js +105 -0
  340. package/dist/packages/testing/test-specs.d.ts +7 -0
  341. package/dist/packages/testing/test-specs.js +114 -0
  342. package/dist/packages/testing/test-targets.d.ts +5 -0
  343. package/dist/packages/testing/test-targets.js +38 -0
  344. package/dist/packages/testing/test-types.d.ts +16 -0
  345. package/dist/packages/testing/test-types.js +1 -0
  346. package/dist/packages/testing/test.d.ts +4 -0
  347. package/dist/packages/testing/test.js +3 -0
  348. package/dist/packages/workflow-authoring/index.d.ts +4 -0
  349. package/dist/packages/workflow-authoring/index.js +4 -0
  350. package/dist/packages/workflow-authoring/lib/workflow-edit-utils.d.ts +10 -0
  351. package/dist/packages/workflow-authoring/lib/workflow-edit-utils.js +39 -0
  352. package/dist/packages/workflow-authoring/workflow-authoring.d.ts +26 -0
  353. package/dist/packages/workflow-authoring/workflow-authoring.js +121 -0
  354. package/dist/packages/workflow-authoring/workflow-edit-session.d.ts +16 -0
  355. package/dist/packages/workflow-authoring/workflow-edit-session.js +57 -0
  356. package/dist/packages/workflow-authoring/workflow-improvement.d.ts +23 -0
  357. package/dist/packages/workflow-authoring/workflow-improvement.js +210 -0
  358. package/dist/packages/workflow-package/builtin-compiled-workflow.d.ts +38 -0
  359. package/dist/packages/workflow-package/builtin-compiled-workflow.js +94 -0
  360. package/dist/packages/workflow-package/context-interface.d.ts +96 -0
  361. package/dist/packages/workflow-package/context-interface.js +146 -0
  362. package/dist/packages/workflow-package/index.d.ts +11 -0
  363. package/dist/packages/workflow-package/index.js +11 -0
  364. package/dist/packages/workflow-package/interf-workflow-package.d.ts +25 -0
  365. package/dist/packages/workflow-package/interf-workflow-package.js +389 -0
  366. package/dist/{lib/config.d.ts → packages/workflow-package/lib/package-root.d.ts} +0 -1
  367. package/dist/packages/workflow-package/lib/package-root.js +6 -0
  368. package/dist/packages/workflow-package/local-workflows.d.ts +57 -0
  369. package/dist/packages/workflow-package/local-workflows.js +424 -0
  370. package/dist/packages/workflow-package/workflow-definitions.d.ts +82 -0
  371. package/dist/packages/workflow-package/workflow-definitions.js +210 -0
  372. package/dist/packages/workflow-package/workflow-helpers.d.ts +38 -0
  373. package/dist/packages/workflow-package/workflow-helpers.js +167 -0
  374. package/dist/packages/workflow-package/workflow-review-paths.d.ts +10 -0
  375. package/dist/packages/workflow-package/workflow-review-paths.js +27 -0
  376. package/dist/packages/workflow-package/workflow-stage-policy.d.ts +5 -0
  377. package/dist/packages/workflow-package/workflow-stage-policy.js +31 -0
  378. package/dist/packages/workflow-package/workflow-stage-runner.d.ts +41 -0
  379. package/dist/packages/workflow-package/workflow-stage-runner.js +109 -0
  380. package/package.json +43 -19
  381. package/dist/commands/test.d.ts +0 -3
  382. package/dist/lib/compiled-home.d.ts +0 -5
  383. package/dist/lib/compiled-home.js +0 -32
  384. package/dist/lib/config.js +0 -9
  385. /package/dist/{commands → cli/commands}/dataset-selection.js +0 -0
  386. /package/dist/{commands → cli/commands}/default.d.ts +0 -0
  387. /package/dist/{commands → cli/commands}/doctor.d.ts +0 -0
  388. /package/dist/{commands → cli/commands}/list.d.ts +0 -0
  389. /package/dist/{commands → cli/commands}/reset.d.ts +0 -0
  390. /package/dist/{commands → cli/commands}/status.d.ts +0 -0
  391. /package/dist/{commands → cli/commands}/verify.d.ts +0 -0
@@ -0,0 +1,26 @@
1
+ import type { WorkflowExecutor } from "../agents/lib/executors.js";
2
+ import { validateWorkflowPackage } from "../workflow-package/local-workflows.js";
3
+ import { type WorkflowReporter } from "../compiler/workflows.js";
4
+ import type { SourceTruthCheck } from "../project-model/lib/schema.js";
5
+ export interface WorkflowAuthoringRunResult {
6
+ status: "updated" | "no-change" | "invalid" | "executor-failed";
7
+ changed: boolean;
8
+ summary: string;
9
+ validation: ReturnType<typeof validateWorkflowPackage> | null;
10
+ workflowPath: string;
11
+ shellPath: string;
12
+ }
13
+ export declare function runWorkflowAuthoringDraft(options: {
14
+ sourcePath: string;
15
+ datasetPath: string;
16
+ baseWorkflowId: string;
17
+ workflowId: string;
18
+ label: string;
19
+ hint: string;
20
+ taskPrompt: string;
21
+ checks?: SourceTruthCheck[];
22
+ executor: WorkflowExecutor;
23
+ preparePreview?: boolean;
24
+ previewReporter?: WorkflowReporter | null;
25
+ }): Promise<WorkflowAuthoringRunResult>;
26
+ export declare function resolveWorkflowDraftPath(sourcePath: string, workflowId: string): string;
@@ -0,0 +1,121 @@
1
+ import { mkdtempSync, rmSync, } from "node:fs";
2
+ import { tmpdir } from "node:os";
3
+ import { join } from "node:path";
4
+ import { createWorkflowAuthoringShell } from "../agents/lib/shells.js";
5
+ import { seedLocalWorkflowPackageFromBase } from "../workflow-package/interf-workflow-package.js";
6
+ import { CONTEXT_INTERFACE_FILE } from "../workflow-package/context-interface.js";
7
+ import { validateWorkflowPackage, workflowDefinitionPath } from "../workflow-package/local-workflows.js";
8
+ import { createCompiled, compileCompiled } from "../compiler/workflows.js";
9
+ import { projectRawSnapshot } from "../compiler/raw-snapshot.js";
10
+ import { runWorkflowEditSession } from "./workflow-edit-session.js";
11
+ import { copyDirectory } from "./lib/workflow-edit-utils.js";
12
+ function buildWorkflowAuthoringPrompt() {
13
+ return [
14
+ "This is an automated Interf workflow-authoring run, not an open-ended chat session.",
15
+ "Execute it now.",
16
+ "Create one standalone workflow for the files and checks in this source folder.",
17
+ "Read `runtime/authoring-context.json` first.",
18
+ `Then read \`workflow/README.md\`, \`workflow/workflow.json\`, and \`workflow/${CONTEXT_INTERFACE_FILE}\`.`,
19
+ "Review `artifacts/source-dataset/raw/` and any `artifacts/preview-compiled/` notes before editing the package.",
20
+ "Prefer direct file-reading and search tools over shell commands for routine file inspection.",
21
+ "Do not use shell helpers like `cat`, `sed`, `ls`, or `find` when a native read/search tool can inspect the same files.",
22
+ "Edit only files under `workflow/`.",
23
+ "Keep the workflow valid for the current compiler API and workflow schema.",
24
+ "Make the package materially more specific to this dataset task than the seeded base workflow. A no-op copy is not acceptable.",
25
+ "Treat the workflow package as four aligned layers: purpose, inputs, context interface, and stages.",
26
+ "Prefer explicit stage-doc, stage-policy, purpose, input-contract, and context-interface edits over vague rewrites.",
27
+ "Do not introduce wikilinks unless the workflow also creates the target note by exact basename or explicit relative path.",
28
+ "Respect stage boundaries: a stage may only introduce links that resolve within that stage's declared writes or already-existing read zones.",
29
+ "Do not make one stage point at files or notes that are only created later by another stage.",
30
+ "Prefer conservative retrieval routing over speculative note sprawl.",
31
+ "Do not narrate plans or ask follow-up questions.",
32
+ "Only emit user-visible updates that begin with STATUS:, DONE:, BLOCKED:, or ERROR:.",
33
+ "As soon as the workflow edits are complete, stop.",
34
+ ].join("\n");
35
+ }
36
+ async function prepareWorkflowAuthoringPreview(options) {
37
+ const tempRoot = mkdtempSync(join(tmpdir(), "interf-workflow-preview-"));
38
+ projectRawSnapshot({
39
+ sourcePath: options.datasetPath,
40
+ destinationPath: tempRoot,
41
+ compiledPath: tempRoot,
42
+ mode: "copy",
43
+ prune: true,
44
+ preserveTimestamps: true,
45
+ });
46
+ copyDirectory(options.workflowPath, workflowDefinitionPath(tempRoot, options.workflowId));
47
+ const compiledPath = createCompiled("preview", tempRoot, options.workflowId, options.about, tempRoot);
48
+ const result = await compileCompiled({
49
+ executor: options.executor,
50
+ compiledPath,
51
+ ...(options.reporter ? { reporter: options.reporter } : {}),
52
+ preserveStageShells: "on-failure",
53
+ });
54
+ return {
55
+ tempRoot,
56
+ compiledPath,
57
+ compileResult: {
58
+ ok: result.ok,
59
+ failedStage: result.failedStage,
60
+ },
61
+ };
62
+ }
63
+ export async function runWorkflowAuthoringDraft(options) {
64
+ const workflowPath = seedLocalWorkflowPackageFromBase({
65
+ sourcePath: options.sourcePath,
66
+ baseWorkflowId: options.baseWorkflowId,
67
+ workflowId: options.workflowId,
68
+ label: options.label,
69
+ hint: options.hint,
70
+ });
71
+ let preview = null;
72
+ try {
73
+ if (options.preparePreview !== false) {
74
+ preview = await prepareWorkflowAuthoringPreview({
75
+ datasetPath: options.datasetPath,
76
+ about: options.taskPrompt,
77
+ workflowId: options.workflowId,
78
+ workflowPath,
79
+ executor: options.executor,
80
+ reporter: options.previewReporter ?? null,
81
+ });
82
+ }
83
+ const shell = createWorkflowAuthoringShell({
84
+ workflowPath,
85
+ workflowId: options.workflowId,
86
+ label: options.label,
87
+ baseWorkflowId: options.baseWorkflowId,
88
+ datasetPath: options.datasetPath,
89
+ taskPrompt: options.taskPrompt,
90
+ checks: options.checks ?? [],
91
+ preview,
92
+ });
93
+ if (preview) {
94
+ rmSync(preview.tempRoot, { recursive: true, force: true });
95
+ preview = null;
96
+ }
97
+ const session = await runWorkflowEditSession({
98
+ executor: options.executor,
99
+ workflowPath,
100
+ shell,
101
+ prompt: buildWorkflowAuthoringPrompt(),
102
+ validate: validateWorkflowPackage,
103
+ });
104
+ return {
105
+ status: session.status,
106
+ changed: session.changed,
107
+ summary: session.summary,
108
+ validation: session.validation,
109
+ workflowPath,
110
+ shellPath: shell.rootPath,
111
+ };
112
+ }
113
+ finally {
114
+ if (preview) {
115
+ rmSync(preview.tempRoot, { recursive: true, force: true });
116
+ }
117
+ }
118
+ }
119
+ export function resolveWorkflowDraftPath(sourcePath, workflowId) {
120
+ return workflowDefinitionPath(sourcePath, workflowId);
121
+ }
@@ -0,0 +1,16 @@
1
+ import type { WorkflowExecutor } from "../agents/lib/executors.js";
2
+ import type { WorkflowValidationResult } from "../workflow-package/local-workflows.js";
3
+ import { type WorkflowEditShellArtifacts } from "./lib/workflow-edit-utils.js";
4
+ export interface WorkflowEditSessionResult {
5
+ status: "updated" | "no-change" | "invalid" | "executor-failed";
6
+ changed: boolean;
7
+ validation: WorkflowValidationResult | null;
8
+ summary: string;
9
+ }
10
+ export declare function runWorkflowEditSession(options: {
11
+ executor: WorkflowExecutor;
12
+ workflowPath: string;
13
+ shell: WorkflowEditShellArtifacts;
14
+ prompt: string;
15
+ validate: (workflowPath: string) => WorkflowValidationResult;
16
+ }): Promise<WorkflowEditSessionResult>;
@@ -0,0 +1,57 @@
1
+ import { writeFileSync } from "node:fs";
2
+ import { copyDirectory, directoriesMatch, } from "./lib/workflow-edit-utils.js";
3
+ export async function runWorkflowEditSession(options) {
4
+ copyDirectory(options.workflowPath, options.shell.workflowBeforePath);
5
+ writeFileSync(options.shell.promptLogPath, `${options.prompt}\n`);
6
+ let code = 1;
7
+ let executeError = null;
8
+ try {
9
+ code = await options.executor.execute(options.shell.rootPath, options.prompt, {
10
+ eventLogPath: options.shell.eventLogPath,
11
+ statusLogPath: options.shell.statusLogPath,
12
+ });
13
+ }
14
+ catch (error) {
15
+ executeError = error instanceof Error ? error.message : String(error);
16
+ }
17
+ copyDirectory(options.workflowPath, options.shell.workflowAfterPath);
18
+ const changed = !directoriesMatch(options.shell.workflowBeforePath, options.shell.workflowAfterPath);
19
+ if (executeError) {
20
+ copyDirectory(options.shell.workflowBeforePath, options.workflowPath);
21
+ return {
22
+ status: "executor-failed",
23
+ changed,
24
+ validation: null,
25
+ summary: `Workflow editor failed before completing: ${executeError}`,
26
+ };
27
+ }
28
+ if (code !== 0) {
29
+ copyDirectory(options.shell.workflowBeforePath, options.workflowPath);
30
+ return {
31
+ status: "executor-failed",
32
+ changed,
33
+ validation: null,
34
+ summary: `Workflow editor exited with code ${code}.`,
35
+ };
36
+ }
37
+ const validation = options.validate(options.workflowPath);
38
+ if (!validation.ok) {
39
+ copyDirectory(options.shell.workflowBeforePath, options.workflowPath);
40
+ return {
41
+ status: "invalid",
42
+ changed,
43
+ validation,
44
+ summary: changed
45
+ ? `Workflow package failed validation: ${validation.summary}`
46
+ : `Workflow package is invalid without any workflow edits: ${validation.summary}`,
47
+ };
48
+ }
49
+ return {
50
+ status: changed ? "updated" : "no-change",
51
+ changed,
52
+ validation,
53
+ summary: changed
54
+ ? "Workflow package updated and validated."
55
+ : "Workflow package is valid without additional edits.",
56
+ };
57
+ }
@@ -0,0 +1,23 @@
1
+ import type { WorkflowExecutor } from "../agents/lib/executors.js";
2
+ import { type WorkflowValidationResult } from "../workflow-package/local-workflows.js";
3
+ import type { SourceDatasetConfig } from "../project-model/lib/schema.js";
4
+ import type { WorkflowImprovementLoopSummary } from "../compiler/lib/schema.js";
5
+ export interface WorkflowImprovementRunResult {
6
+ status: "updated" | "no-change" | "invalid" | "executor-failed";
7
+ changed: boolean;
8
+ validation: WorkflowValidationResult | null;
9
+ summary: string;
10
+ shellPath: string;
11
+ loopRootPath: string;
12
+ }
13
+ export declare function runWorkflowImprovementLoop(options: {
14
+ executor: WorkflowExecutor;
15
+ compiledPath: string;
16
+ workflowId: string;
17
+ compiledConfig: Pick<SourceDatasetConfig, "checks">;
18
+ runId: string;
19
+ loopIndex: number;
20
+ maxLoops: number;
21
+ maxAttempts: number;
22
+ previousVariations: WorkflowImprovementLoopSummary[];
23
+ }): Promise<WorkflowImprovementRunResult>;
@@ -0,0 +1,210 @@
1
+ import { appendFileSync, existsSync, mkdirSync, writeFileSync, } from "node:fs";
2
+ import { join, relative } from "node:path";
3
+ import { createWorkflowImprovementShell, freezeWorkflowImprovementShell, } from "../agents/lib/shells.js";
4
+ import { validateWorkflowPackage } from "../workflow-package/local-workflows.js";
5
+ import { CONTEXT_INTERFACE_FILE } from "../workflow-package/context-interface.js";
6
+ import { readJsonFileWithSchema } from "../shared/parse.js";
7
+ import { resolveWorkflowImprovementReviewPaths } from "../workflow-package/workflow-review-paths.js";
8
+ import { targetTestRunsRootForCompiled, targetTestSandboxesRootForCompiled, workflowImprovementRunRoot, workflowPackagePathForCompiled, } from "../compiler/compiled-paths.js";
9
+ import { readInterfConfig } from "../project-model/interf.js";
10
+ import { saveCompiledInterfConfig } from "../project-model/source-config.js";
11
+ import { WorkflowImprovementRunLedgerSchema, } from "../compiler/lib/schema.js";
12
+ import { runWorkflowEditSession } from "./workflow-edit-session.js";
13
+ function toShellArtifactPath(absolutePath, sourceRoot, shellRoot) {
14
+ if (!absolutePath)
15
+ return null;
16
+ const normalizedSourceRoot = `${sourceRoot}/`;
17
+ if (absolutePath !== sourceRoot && !absolutePath.startsWith(normalizedSourceRoot)) {
18
+ return null;
19
+ }
20
+ const relativePath = relative(sourceRoot, absolutePath);
21
+ return join(shellRoot, relativePath);
22
+ }
23
+ function mapLoopSummaryForShell(summary, compiledPath) {
24
+ const shellTestRunsRoot = "artifacts/test-runs";
25
+ const shellTestSandboxesRoot = "artifacts/test-sandboxes";
26
+ return {
27
+ ...summary,
28
+ test_run_path: toShellArtifactPath(summary.test_run_path, targetTestRunsRootForCompiled(compiledPath), shellTestRunsRoot) ?? summary.test_run_path ?? null,
29
+ test_sandbox_path: toShellArtifactPath(summary.test_sandbox_path, targetTestSandboxesRootForCompiled(compiledPath), shellTestSandboxesRoot) ?? summary.test_sandbox_path ?? null,
30
+ };
31
+ }
32
+ function buildLoopContext(options) {
33
+ const previousVariations = options.previousVariations.map((summary) => mapLoopSummaryForShell(summary, options.compiledPath));
34
+ const latestFailure = previousVariations.at(-1) ?? null;
35
+ return {
36
+ kind: "interf-workflow-improvement-loop",
37
+ version: 1,
38
+ generated_at: new Date().toISOString(),
39
+ target_name: readInterfConfig(options.compiledPath)?.name ?? "compiled",
40
+ workflow_id: options.workflowId,
41
+ loop_index: options.loopIndex,
42
+ max_loops: options.maxLoops,
43
+ max_attempts: options.maxAttempts,
44
+ review_paths: resolveWorkflowImprovementReviewPaths(options.compiledPath),
45
+ truth_checks: {
46
+ count: options.compiledConfig.checks.length,
47
+ questions: options.compiledConfig.checks.map((check, index) => ({
48
+ id: check.id ?? `check-${index + 1}`,
49
+ question: check.question,
50
+ })),
51
+ },
52
+ previous_variations: previousVariations,
53
+ latest_failure: latestFailure,
54
+ };
55
+ }
56
+ function buildWorkflowImprovementPrompt() {
57
+ return [
58
+ "This is an automated Interf workflow-improvement run, not an open-ended chat session.",
59
+ "The user already invoked this through `interf compile` with self-improving loops enabled. Execute it now.",
60
+ "Read `runtime/loop-context.json` first.",
61
+ `Then read \`workflow/README.md\`, \`workflow/workflow.json\`, \`workflow/${CONTEXT_INTERFACE_FILE}\`, and \`workflow/improve/SKILL.md\` if it exists.`,
62
+ "Review preserved evidence from earlier failures under `artifacts/` before you edit the workflow.",
63
+ "Treat `workflow/improve/SKILL.md` as guidance for how to improve the workflow, not as the default file to edit.",
64
+ "Treat the workflow package as four aligned layers: purpose, inputs, context interface, and stages.",
65
+ "Prefer editing the stage docs, workflow contract, input contract, or schema ownership that actually change compiled outputs.",
66
+ "Edit only files under `workflow/`.",
67
+ "Do not edit checks, test specs, raw dataset files, or generated compiled outputs.",
68
+ "Keep the workflow valid for the current compiler API and workflow schema.",
69
+ "Respect stage boundaries: a stage may only introduce links that resolve within that stage's declared writes or already-existing read zones.",
70
+ "Do not make one stage point at files or notes that are only created later by another stage.",
71
+ "Prefer small, defensible changes to workflow docs, stage docs, stage policies, or schema ownership over random churn.",
72
+ "Do not narrate plans or ask follow-up questions.",
73
+ "Only emit user-visible updates that begin with STATUS:, DONE:, BLOCKED:, or ERROR:.",
74
+ "As soon as the workflow edits are complete, stop.",
75
+ ].join("\n");
76
+ }
77
+ function updateCompiledWorkflowOrigin(options) {
78
+ const current = readInterfConfig(options.compiledPath);
79
+ if (!current)
80
+ return;
81
+ const nextConfig = {
82
+ ...current,
83
+ workflow: current.workflow ?? options.selectedWorkflowId,
84
+ workflow_origin: {
85
+ selected: options.selectedWorkflowId,
86
+ ...(options.localDraft ? { local_draft: true } : {}),
87
+ },
88
+ };
89
+ saveCompiledInterfConfig(options.compiledPath, nextConfig);
90
+ }
91
+ function workflowImprovementRunLedgerPath(compiledPath, runId) {
92
+ return join(workflowImprovementRunRoot(compiledPath, runId), "run.json");
93
+ }
94
+ function workflowImprovementLoopHistoryPath(compiledPath, runId) {
95
+ return join(workflowImprovementRunRoot(compiledPath, runId), "loop-history.jsonl");
96
+ }
97
+ function workflowImprovementLoopRecordPath(loopRootPath) {
98
+ return join(loopRootPath, "loop.json");
99
+ }
100
+ function readWorkflowImprovementRunLedger(compiledPath, runId) {
101
+ const ledgerPath = workflowImprovementRunLedgerPath(compiledPath, runId);
102
+ if (!existsSync(ledgerPath))
103
+ return null;
104
+ return readJsonFileWithSchema(ledgerPath, "workflow improvement run ledger", WorkflowImprovementRunLedgerSchema);
105
+ }
106
+ function writeWorkflowImprovementRunLedger(compiledPath, runId, record, options) {
107
+ const runRoot = workflowImprovementRunRoot(compiledPath, runId);
108
+ mkdirSync(runRoot, { recursive: true });
109
+ const existing = readWorkflowImprovementRunLedger(compiledPath, runId);
110
+ const generatedAt = existing?.generated_at ?? new Date().toISOString();
111
+ const ledger = {
112
+ kind: "interf-workflow-improvement-run",
113
+ version: 1,
114
+ generated_at: generatedAt,
115
+ updated_at: new Date().toISOString(),
116
+ run_id: runId,
117
+ target_name: options.targetName,
118
+ workflow_id: options.workflowId,
119
+ max_loops: options.maxLoops,
120
+ max_attempts: options.maxAttempts,
121
+ loops: [...(existing?.loops ?? []), record],
122
+ };
123
+ writeFileSync(workflowImprovementRunLedgerPath(compiledPath, runId), `${JSON.stringify(ledger, null, 2)}\n`);
124
+ writeFileSync(workflowImprovementLoopRecordPath(record.loop_root_path), `${JSON.stringify(record, null, 2)}\n`);
125
+ appendFileSync(workflowImprovementLoopHistoryPath(compiledPath, runId), `${JSON.stringify(record)}\n`);
126
+ }
127
+ function buildWorkflowImprovementLoopRecord(options) {
128
+ return {
129
+ kind: "interf-workflow-improvement-loop-record",
130
+ version: 1,
131
+ recorded_at: new Date().toISOString(),
132
+ run_id: options.runId,
133
+ loop_index: options.loopIndex,
134
+ target_name: options.targetName,
135
+ workflow_id: options.workflowId,
136
+ result: options.result,
137
+ changed: options.changed,
138
+ applied: options.result === "updated",
139
+ summary: options.summary,
140
+ shell_path: options.shellPath,
141
+ loop_root_path: options.loopRootPath,
142
+ context_path: join(options.shellPath, "runtime", "loop-context.json"),
143
+ workflow_before_path: options.workflowBeforePath,
144
+ workflow_after_path: options.workflowAfterPath,
145
+ prompt_log_path: options.promptLogPath,
146
+ event_log_path: options.eventLogPath,
147
+ status_log_path: options.statusLogPath,
148
+ preserved_shell_manifest_path: options.preservedShellManifestPath,
149
+ validation: options.validation,
150
+ };
151
+ }
152
+ export async function runWorkflowImprovementLoop(options) {
153
+ const compiledName = readInterfConfig(options.compiledPath)?.name ?? "compiled";
154
+ const context = buildLoopContext(options);
155
+ const shell = createWorkflowImprovementShell({
156
+ compiledPath: options.compiledPath,
157
+ compiledName,
158
+ workflowId: options.workflowId,
159
+ runId: options.runId,
160
+ loopIndex: options.loopIndex,
161
+ context,
162
+ });
163
+ const workflowRoot = workflowPackagePathForCompiled(options.compiledPath);
164
+ const session = await runWorkflowEditSession({
165
+ executor: options.executor,
166
+ workflowPath: workflowRoot,
167
+ shell,
168
+ prompt: buildWorkflowImprovementPrompt(),
169
+ validate: validateWorkflowPackage,
170
+ });
171
+ const preservedShellManifestPath = freezeWorkflowImprovementShell(shell.rootPath);
172
+ writeWorkflowImprovementRunLedger(options.compiledPath, options.runId, buildWorkflowImprovementLoopRecord({
173
+ targetName: compiledName,
174
+ workflowId: options.workflowId,
175
+ runId: options.runId,
176
+ loopIndex: options.loopIndex,
177
+ shellPath: shell.rootPath,
178
+ loopRootPath: shell.loopRootPath,
179
+ workflowBeforePath: shell.workflowBeforePath,
180
+ workflowAfterPath: shell.workflowAfterPath,
181
+ promptLogPath: shell.promptLogPath,
182
+ eventLogPath: shell.eventLogPath,
183
+ statusLogPath: shell.statusLogPath,
184
+ preservedShellManifestPath,
185
+ changed: session.changed,
186
+ validation: session.validation,
187
+ result: session.status,
188
+ summary: session.summary,
189
+ }), {
190
+ targetName: compiledName,
191
+ workflowId: options.workflowId,
192
+ maxLoops: options.maxLoops,
193
+ maxAttempts: options.maxAttempts,
194
+ });
195
+ if (session.status === "updated") {
196
+ updateCompiledWorkflowOrigin({
197
+ compiledPath: options.compiledPath,
198
+ selectedWorkflowId: options.workflowId,
199
+ localDraft: true,
200
+ });
201
+ }
202
+ return {
203
+ status: session.status,
204
+ changed: session.changed,
205
+ validation: session.validation,
206
+ summary: session.summary,
207
+ shellPath: shell.rootPath,
208
+ loopRootPath: shell.loopRootPath,
209
+ };
210
+ }
@@ -0,0 +1,38 @@
1
+ import { COMPILED_ZONE_KINDS, type CompiledZoneKind } from "../compiler/workflow-primitives.js";
2
+ export declare const BUILTIN_COMPILED_STAGE_IDS: {
3
+ readonly SUMMARIZE: "summarize";
4
+ readonly STRUCTURE: "structure";
5
+ readonly SHAPE: "shape";
6
+ };
7
+ export type BuiltinCompiledStageId = typeof BUILTIN_COMPILED_STAGE_IDS[keyof typeof BUILTIN_COMPILED_STAGE_IDS];
8
+ export declare const BUILTIN_COMPILED_ZONE_IDS: {
9
+ readonly RAW: "raw";
10
+ readonly SUMMARIES: "summaries";
11
+ readonly KNOWLEDGE_ENTITIES: "knowledge-entities";
12
+ readonly KNOWLEDGE_CLAIMS: "knowledge-claims";
13
+ readonly KNOWLEDGE_INDEXES: "knowledge-indexes";
14
+ readonly HOME: "home";
15
+ readonly RUNTIME: "runtime";
16
+ };
17
+ export type BuiltinCompiledZoneId = typeof BUILTIN_COMPILED_ZONE_IDS[keyof typeof BUILTIN_COMPILED_ZONE_IDS];
18
+ export interface BuiltinCompiledZoneSpec {
19
+ id: BuiltinCompiledZoneId;
20
+ role: "input" | "working" | "output" | "runtime";
21
+ path: string;
22
+ kind: CompiledZoneKind;
23
+ required: boolean;
24
+ description: string;
25
+ }
26
+ export interface BuiltinCompiledStageAccessPattern {
27
+ id: BuiltinCompiledStageId;
28
+ contract_type: string;
29
+ reads: BuiltinCompiledZoneId[];
30
+ writes: BuiltinCompiledZoneId[];
31
+ }
32
+ export declare function listBuiltinCompiledZoneSpecs(): BuiltinCompiledZoneSpec[];
33
+ export declare function listBuiltinCompiledFallbackStages(): BuiltinCompiledStageAccessPattern[];
34
+ export declare function requiredCompiledZoneOwners<TStage extends {
35
+ id: string;
36
+ writes: readonly string[];
37
+ }>(stages: readonly TStage[], zoneId: BuiltinCompiledZoneId): string[];
38
+ export { COMPILED_ZONE_KINDS };
@@ -0,0 +1,94 @@
1
+ import { join } from "node:path";
2
+ import { z } from "zod";
3
+ import { readJsonFileWithSchema } from "../shared/parse.js";
4
+ import { COMPILED_ZONE_KINDS } from "../compiler/workflow-primitives.js";
5
+ import { WorkflowCompiledSchemaSchema } from "../compiler/lib/schema.js";
6
+ import { PACKAGE_ROOT } from "./lib/package-root.js";
7
+ export const BUILTIN_COMPILED_STAGE_IDS = {
8
+ SUMMARIZE: "summarize",
9
+ STRUCTURE: "structure",
10
+ SHAPE: "shape",
11
+ };
12
+ export const BUILTIN_COMPILED_ZONE_IDS = {
13
+ RAW: "raw",
14
+ SUMMARIES: "summaries",
15
+ KNOWLEDGE_ENTITIES: "knowledge-entities",
16
+ KNOWLEDGE_CLAIMS: "knowledge-claims",
17
+ KNOWLEDGE_INDEXES: "knowledge-indexes",
18
+ HOME: "home",
19
+ RUNTIME: "runtime",
20
+ };
21
+ const BUILTIN_ZONE_ID_SET = new Set(Object.values(BUILTIN_COMPILED_ZONE_IDS));
22
+ const BUILTIN_STAGE_ID_SET = new Set(Object.values(BUILTIN_COMPILED_STAGE_IDS));
23
+ const BuiltinWorkflowStageSchema = z.object({
24
+ id: z.string(),
25
+ contract_type: z.string(),
26
+ reads: z.array(z.string()).min(1),
27
+ writes: z.array(z.string()).min(1),
28
+ });
29
+ const BuiltinWorkflowPackageSchema = z.object({
30
+ stages: z.array(BuiltinWorkflowStageSchema).min(1),
31
+ });
32
+ let builtinCompiledContractCache = null;
33
+ function builtinWorkflowRootPath() {
34
+ return join(PACKAGE_ROOT, "builtin-workflows", "interf");
35
+ }
36
+ function builtinWorkflowPath(relativePath) {
37
+ return join(builtinWorkflowRootPath(), relativePath);
38
+ }
39
+ function assertBuiltinZoneId(value) {
40
+ if (!BUILTIN_ZONE_ID_SET.has(value)) {
41
+ throw new Error(`Built-in Interf workflow schema declares unsupported zone id "${value}".`);
42
+ }
43
+ return value;
44
+ }
45
+ function assertBuiltinStageId(value) {
46
+ if (!BUILTIN_STAGE_ID_SET.has(value)) {
47
+ throw new Error(`Built-in Interf workflow package declares unsupported stage id "${value}".`);
48
+ }
49
+ return value;
50
+ }
51
+ function loadBuiltinCompiledContract() {
52
+ if (builtinCompiledContractCache)
53
+ return builtinCompiledContractCache;
54
+ const schema = readJsonFileWithSchema(builtinWorkflowPath("workflow.schema.json"), "built-in Interf workflow schema", WorkflowCompiledSchemaSchema);
55
+ if (!schema) {
56
+ throw new Error(`Missing or invalid built-in workflow schema at ${builtinWorkflowPath("workflow.schema.json")}.`);
57
+ }
58
+ const workflow = readJsonFileWithSchema(builtinWorkflowPath("workflow.json"), "built-in Interf workflow package", BuiltinWorkflowPackageSchema);
59
+ if (!workflow) {
60
+ throw new Error(`Missing or invalid built-in workflow package at ${builtinWorkflowPath("workflow.json")}.`);
61
+ }
62
+ const zones = schema.zones.map((zone) => ({
63
+ id: assertBuiltinZoneId(zone.id),
64
+ role: zone.role,
65
+ path: zone.path,
66
+ kind: zone.kind,
67
+ required: zone.required,
68
+ description: zone.description,
69
+ }));
70
+ const stages = workflow.stages.map((stage) => ({
71
+ id: assertBuiltinStageId(stage.id),
72
+ contract_type: stage.contract_type,
73
+ reads: stage.reads.map(assertBuiltinZoneId),
74
+ writes: stage.writes.map(assertBuiltinZoneId),
75
+ }));
76
+ builtinCompiledContractCache = { zones, stages };
77
+ return builtinCompiledContractCache;
78
+ }
79
+ export function listBuiltinCompiledZoneSpecs() {
80
+ return loadBuiltinCompiledContract().zones.map((zone) => ({ ...zone }));
81
+ }
82
+ export function listBuiltinCompiledFallbackStages() {
83
+ return loadBuiltinCompiledContract().stages.map((stage) => ({
84
+ ...stage,
85
+ reads: [...stage.reads],
86
+ writes: [...stage.writes],
87
+ }));
88
+ }
89
+ export function requiredCompiledZoneOwners(stages, zoneId) {
90
+ return Array.from(new Set(stages
91
+ .filter((stage) => stage.writes.includes(zoneId))
92
+ .map((stage) => stage.id)));
93
+ }
94
+ export { COMPILED_ZONE_KINDS };