@interf/compiler 0.3.4 → 0.4.1

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 +128 -149
  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 +15 -11
  20. package/dist/commands/default.d.ts +0 -1
  21. package/dist/commands/default.js +0 -1
  22. package/dist/commands/doctor.d.ts +0 -1
  23. package/dist/commands/doctor.js +1 -16
  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 +71 -14
  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 +517 -54
  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 +16 -15
  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,20 +1,41 @@
1
- import { mkdirSync, writeFileSync } from "node:fs";
1
+ import { existsSync, mkdirSync, writeFileSync } from "node:fs";
2
2
  import { dirname, join } from "node:path";
3
- import { WORKFLOW_PACKAGE_DIR } from "./interf-detect.js";
4
- import { renderWorkspaceQuerySkill } from "./workspace-docs.js";
3
+ import { copyWorkflowPackageDirectory, isPortableWorkflowPackage, patchWorkflowPackageMetadata, resolveWorkflowPackageSourcePath, workflowDefinitionPath, } from "./local-workflows.js";
4
+ import { getWorkspaceWorkflow, } from "./workflow-definitions.js";
5
+ import { renderWorkspaceQuerySkill } from "./agent-shells.js";
6
+ import { CHART_APPROXIMATION_NOTES } from "./chart-guidance.js";
5
7
  import { writeWorkspaceSchemaFile } from "./workspace-schema.js";
8
+ import { workflowPackagePathForWorkspace } from "./workspace-paths.js";
6
9
  function workflowPackagePath(dirPath) {
7
- return join(dirPath, WORKFLOW_PACKAGE_DIR);
10
+ return workflowPackagePathForWorkspace(dirPath);
8
11
  }
9
- function writeWorkflowStarterDocs(dirPath, docs) {
12
+ function mergeWorkflowStagePolicyNotes(stages, baseNotes, nextNotes) {
13
+ const merged = {};
14
+ for (const stage of stages) {
15
+ const combined = Array.from(new Set([
16
+ ...(baseNotes?.[stage.id] ?? []),
17
+ ...(nextNotes?.[stage.id] ?? []),
18
+ ].map((note) => note.trim()).filter((note) => note.length > 0)));
19
+ if (combined.length > 0) {
20
+ merged[stage.id] = combined;
21
+ }
22
+ }
23
+ return Object.keys(merged).length > 0 ? merged : undefined;
24
+ }
25
+ function writeWorkflowStarterDocs(dirPath, docs, options) {
10
26
  for (const doc of docs ?? []) {
11
27
  const targetPath = join(dirPath, doc.relativePath);
28
+ if (!options.overwrite && existsSync(targetPath))
29
+ continue;
12
30
  mkdirSync(dirname(targetPath), { recursive: true });
13
31
  writeFileSync(targetPath, doc.content);
14
32
  }
15
33
  }
16
- function writeWorkflowPackageJson(rootPath, workflow) {
17
- writeFileSync(join(rootPath, "workflow.json"), `${JSON.stringify({
34
+ function writeWorkflowPackageJson(rootPath, workflow, options) {
35
+ const targetPath = join(rootPath, "workflow.json");
36
+ if (!options.overwrite && existsSync(targetPath))
37
+ return;
38
+ writeFileSync(targetPath, `${JSON.stringify({
18
39
  id: workflow.id,
19
40
  type: "workspace",
20
41
  compiler_api: workflow.compilerApi ?? {
@@ -49,24 +70,56 @@ function renderWorkflowReadme(workflow) {
49
70
  "",
50
71
  "- `workflow.json` = stage graph, compiler API target, and compile contract mapping",
51
72
  "- `workspace.schema.json` = deterministic workspace output shape",
52
- "- `create/`, `compile/stages/`, and `use/query/` = human-readable authoring docs",
53
- "- Interf Compiler projects native agent shells from these docs for query use and stage execution",
73
+ "- `improve/`, `compile/stages/`, and `use/query/` = human-readable authoring docs",
74
+ "- Portable workflow packages are standalone: explicit stages, schema, and docs live together in this folder",
75
+ "- Interf Compiler projects native agent shells from these docs for query use, stage execution, and workflow-improvement loops",
54
76
  "",
55
77
  "## Stages",
56
78
  "",
57
79
  stageLines,
58
80
  "",
59
- "This workflow package lives under `workflow/` and is the reusable artifact that controls how Interf Compiler builds this compiled workspace.",
81
+ "Interf Compiler runs the workspace-local copy of this package directly from `.interf/workflow/` inside each compiled workspace.",
82
+ "",
83
+ ].join("\n");
84
+ }
85
+ function renderDerivedWorkflowReadme(options) {
86
+ return [
87
+ `# ${options.label}`,
88
+ "",
89
+ options.hint,
90
+ "",
91
+ `This workflow package was copied from \`${options.baseWorkflowId}\` and materialized as a standalone package for this dataset job.`,
92
+ "",
93
+ "Interf Compiler runs the workspace-local copy of this package directly. Keep changes in this folder self-contained instead of relying on runtime inheritance or fallback.",
94
+ "",
95
+ "## Emphasis",
96
+ "",
97
+ `- summarize: ${options.summarizeBias}`,
98
+ `- structure: ${options.structureBias}`,
99
+ `- shape: ${options.shapeBias}`,
60
100
  "",
61
101
  ].join("\n");
62
102
  }
63
- function renderCreateSkill(workflow) {
103
+ function renderImproveSkill(workflow) {
64
104
  return [
65
- "# Workspace Create Notes",
105
+ "# Workflow Improvement",
66
106
  "",
67
107
  `Workflow: ${workflow.id}`,
68
108
  "",
69
- "This workspace uses the built-in Interf Compiler structure. Edit these notes only if you want local create-time guidance for agents or maintainers.",
109
+ "This file is the editable authoring source for Interf Compiler's generated native workflow-improver shell.",
110
+ "The improver edits this workspace-local package directly.",
111
+ "",
112
+ "Default loop:",
113
+ "1. Read the loop context first.",
114
+ "2. Review preserved stage shells, runtime logs, and saved test runs from failed attempts.",
115
+ "3. Edit only the local workflow package for this workspace to create a better workflow variation for this dataset.",
116
+ "4. Keep `workflow.json`, `workspace.schema.json`, and any changed stage docs aligned.",
117
+ "",
118
+ "Guardrails:",
119
+ "- do not edit truth checks, test specs, or raw dataset files",
120
+ "- do not hardcode expected answers into workflow docs",
121
+ "- keep this package standalone; do not add or rely on runtime `extends` or fallback behavior",
122
+ "- prefer small, defensible workflow changes over random churn",
70
123
  "",
71
124
  ].join("\n");
72
125
  }
@@ -86,6 +139,8 @@ function renderStageSkill(workflow, stage) {
86
139
  : stage.contractType === "workspace-query-shape"
87
140
  ? [
88
141
  "Use the workspace focus plus saved truth-check question text to shape `home.md` and retrieval routes.",
142
+ "Rewrite `home.md` into a real entrypoint note. Do not leave the scaffold `Not yet compiled.` placeholder in place.",
143
+ ...CHART_APPROXIMATION_NOTES,
89
144
  "Do not copy expected answers into the workspace.",
90
145
  ]
91
146
  : [];
@@ -115,21 +170,107 @@ function renderStageSkill(workflow, stage) {
115
170
  ].join("\n");
116
171
  }
117
172
  export function writeWorkspaceWorkflowPackage(workspacePath, workflow) {
118
- const workflowDir = workflowPackagePath(workspacePath);
119
- mkdirSync(join(workflowDir, "create"), { recursive: true });
173
+ writeWorkflowPackageToDir(workflowPackagePath(workspacePath), workflow);
174
+ }
175
+ export function writeWorkflowPackageToDir(workflowDir, workflow, options = {}) {
176
+ const overwrite = options.overwrite ?? true;
177
+ mkdirSync(join(workflowDir, "improve"), { recursive: true });
120
178
  mkdirSync(join(workflowDir, "use", "query"), { recursive: true });
121
179
  mkdirSync(join(workflowDir, "compile", "stages"), { recursive: true });
122
180
  for (const stage of workflow.stages) {
123
181
  mkdirSync(join(workflowDir, "compile", "stages", stage.skillDir), { recursive: true });
124
182
  }
125
- writeWorkflowPackageJson(workflowDir, workflow);
126
- writeWorkspaceSchemaFile(workflowDir, workflow.stages, `${workflow.label} workspace schema`);
127
- writeFileSync(join(workflowDir, "README.md"), renderWorkflowReadme(workflow));
128
- writeFileSync(join(workflowDir, "create", "SKILL.md"), renderCreateSkill(workflow));
129
- writeFileSync(join(workflowDir, "use", "query", "SKILL.md"), renderWorkspaceQuerySkill());
183
+ writeWorkflowPackageJson(workflowDir, workflow, { overwrite });
184
+ if (overwrite || !existsSync(join(workflowDir, "workspace.schema.json"))) {
185
+ writeWorkspaceSchemaFile(workflowDir, workflow.stages, `${workflow.label} workspace schema`);
186
+ }
187
+ if (overwrite || !existsSync(join(workflowDir, "README.md"))) {
188
+ writeFileSync(join(workflowDir, "README.md"), renderWorkflowReadme(workflow));
189
+ }
190
+ if (overwrite || !existsSync(join(workflowDir, "improve", "SKILL.md"))) {
191
+ writeFileSync(join(workflowDir, "improve", "SKILL.md"), renderImproveSkill(workflow));
192
+ }
193
+ if (overwrite || !existsSync(join(workflowDir, "use", "query", "SKILL.md"))) {
194
+ writeFileSync(join(workflowDir, "use", "query", "SKILL.md"), renderWorkspaceQuerySkill());
195
+ }
130
196
  for (const stage of workflow.stages) {
131
- writeFileSync(join(workflowDir, "compile", "stages", stage.skillDir, "SKILL.md"), renderStageSkill(workflow, stage));
197
+ const targetPath = join(workflowDir, "compile", "stages", stage.skillDir, "SKILL.md");
198
+ if (overwrite || !existsSync(targetPath)) {
199
+ writeFileSync(targetPath, renderStageSkill(workflow, stage));
200
+ }
201
+ }
202
+ writeWorkflowStarterDocs(workflowDir, workflow.starterDocs, { overwrite });
203
+ }
204
+ export function seedWorkspaceWorkflowPackage(options) {
205
+ const resolvedWorkflow = getWorkspaceWorkflow(options.workflowId, {
206
+ sourcePath: options.sourcePath,
207
+ });
208
+ const sourceWorkflowPath = resolveWorkflowPackageSourcePath(options.sourcePath, resolvedWorkflow.id);
209
+ if (sourceWorkflowPath && isPortableWorkflowPackage(sourceWorkflowPath)) {
210
+ // Portable seed packages can be copied directly because compile runs the
211
+ // workspace-local package folder without any source-root fallback.
212
+ copyWorkflowPackageDirectory(sourceWorkflowPath, workflowPackagePath(options.workspacePath));
213
+ return;
214
+ }
215
+ // Legacy or partially-defined seed packages are resolved once and
216
+ // materialized into a standalone workspace-local package.
217
+ writeWorkspaceWorkflowPackage(options.workspacePath, resolvedWorkflow);
218
+ }
219
+ export function createLocalWorkflowPackageFromTemplate(options) {
220
+ const sourceWorkflowPath = resolveWorkflowPackageSourcePath(options.sourcePath, options.baseWorkflowId);
221
+ const targetPath = workflowDefinitionPath(options.sourcePath, options.workflowId);
222
+ const stagePolicyNotes = {
223
+ summarize: [options.summarizeBias],
224
+ structure: [options.structureBias],
225
+ shape: [options.shapeBias],
226
+ };
227
+ if (sourceWorkflowPath && isPortableWorkflowPackage(sourceWorkflowPath)) {
228
+ // Copy directly when the base package is already portable and standalone.
229
+ copyWorkflowPackageDirectory(sourceWorkflowPath, targetPath);
230
+ patchWorkflowPackageMetadata(targetPath, {
231
+ id: options.workflowId,
232
+ label: options.label,
233
+ hint: options.hint,
234
+ stagePolicyNotes,
235
+ });
236
+ writeFileSync(join(targetPath, "README.md"), renderDerivedWorkflowReadme({
237
+ label: options.label,
238
+ hint: options.hint,
239
+ baseWorkflowId: options.baseWorkflowId,
240
+ summarizeBias: options.summarizeBias,
241
+ structureBias: options.structureBias,
242
+ shapeBias: options.shapeBias,
243
+ }));
244
+ return targetPath;
132
245
  }
133
- writeWorkflowStarterDocs(workflowDir, workflow.starterDocs);
246
+ // Legacy or inherited base packages are materialized immediately so the new
247
+ // local workflow package is standalone from its first write.
248
+ const baseWorkflow = getWorkspaceWorkflow(options.baseWorkflowId, {
249
+ sourcePath: options.sourcePath,
250
+ });
251
+ const localWorkflow = {
252
+ ...baseWorkflow,
253
+ id: options.workflowId,
254
+ label: options.label,
255
+ hint: options.hint,
256
+ recommended: false,
257
+ scope: "local",
258
+ stagePolicyNotes: mergeWorkflowStagePolicyNotes(baseWorkflow.stages, baseWorkflow.stagePolicyNotes, stagePolicyNotes),
259
+ starterDocs: [
260
+ {
261
+ relativePath: "README.md",
262
+ content: renderDerivedWorkflowReadme({
263
+ label: options.label,
264
+ hint: options.hint,
265
+ baseWorkflowId: options.baseWorkflowId,
266
+ summarizeBias: options.summarizeBias,
267
+ structureBias: options.structureBias,
268
+ shapeBias: options.shapeBias,
269
+ }),
270
+ },
271
+ ...(baseWorkflow.starterDocs ?? []).filter((doc) => doc.relativePath !== "README.md"),
272
+ ],
273
+ };
274
+ writeWorkflowPackageToDir(targetPath, localWorkflow);
275
+ return targetPath;
134
276
  }
135
- //# sourceMappingURL=interf-workflow-package.js.map
@@ -1,6 +1,5 @@
1
- export { INTERF_CONTAINER_NAME, WORKSPACE_CONTAINER_NAME, WORKFLOW_CONTAINER_NAME, BENCHMARK_CONTAINER_NAME, INTERF_CONFIG_FILE, WORKFLOW_PACKAGE_DIR, readInterfConfig, detectInterf, resolveWorkspace, resolveSourceFolderPath, resolveSourceControlPath, listWorkspacesForSourceFolder, hasSourceFolderInput, assertWorkspaceContainer, assertWritableTargetDir, assertWorkspaceName, } from "./interf-detect.js";
1
+ export { INTERF_CONTAINER_NAME, WORKSPACE_CONTAINER_NAME, WORKFLOW_CONTAINER_NAME, TEST_CONTAINER_NAME, INTERF_CONFIG_FILE, WORKFLOW_PACKAGE_DIR, prepareWorkspaceLayout, readInterfConfig, detectInterf, resolveWorkspace, resolveSourceFolderPath, resolveSourceControlPath, listWorkspacesForSourceFolder, hasSourceFolderInput, assertWorkspaceContainer, assertWritableTargetDir, assertWorkspaceName, } from "./interf-detect.js";
2
2
  export type { InterfConfig, ResolvedWorkspace } from "./interf-detect.js";
3
3
  export { ensureWorkspaceRawBinding, resolveWorkspaceRawPath, syncWorkspaceRawSnapshot, } from "./workspace-raw.js";
4
4
  export { refreshWorkspaceBootstrapGuidance, renderClaudeBootstrap, } from "./interf-bootstrap.js";
5
5
  export { createWorkspace, defaultWorkspaceNameForSource, } from "./interf-scaffold.js";
6
- //# sourceMappingURL=interf.d.ts.map
@@ -1,5 +1,4 @@
1
- export { INTERF_CONTAINER_NAME, WORKSPACE_CONTAINER_NAME, WORKFLOW_CONTAINER_NAME, BENCHMARK_CONTAINER_NAME, INTERF_CONFIG_FILE, WORKFLOW_PACKAGE_DIR, readInterfConfig, detectInterf, resolveWorkspace, resolveSourceFolderPath, resolveSourceControlPath, listWorkspacesForSourceFolder, hasSourceFolderInput, assertWorkspaceContainer, assertWritableTargetDir, assertWorkspaceName, } from "./interf-detect.js";
1
+ export { INTERF_CONTAINER_NAME, WORKSPACE_CONTAINER_NAME, WORKFLOW_CONTAINER_NAME, TEST_CONTAINER_NAME, INTERF_CONFIG_FILE, WORKFLOW_PACKAGE_DIR, prepareWorkspaceLayout, readInterfConfig, detectInterf, resolveWorkspace, resolveSourceFolderPath, resolveSourceControlPath, listWorkspacesForSourceFolder, hasSourceFolderInput, assertWorkspaceContainer, assertWritableTargetDir, assertWorkspaceName, } from "./interf-detect.js";
2
2
  export { ensureWorkspaceRawBinding, resolveWorkspaceRawPath, syncWorkspaceRawSnapshot, } from "./workspace-raw.js";
3
3
  export { refreshWorkspaceBootstrapGuidance, renderClaudeBootstrap, } from "./interf-bootstrap.js";
4
4
  export { createWorkspace, defaultWorkspaceNameForSource, } from "./interf-scaffold.js";
5
- //# sourceMappingURL=interf.js.map
@@ -33,7 +33,17 @@ export declare function workflowDefinitionPath(sourcePath: string, id: string):
33
33
  export declare function loadWorkflowDefinitionFromDir(dirPath: string): LocalWorkflowDefinition | null;
34
34
  export declare function listLocalWorkflowDefinitions(sourcePath: string): LocalWorkflowDefinition[];
35
35
  export declare function loadLocalWorkflowDefinition(sourcePath: string, id: string): LocalWorkflowDefinition | null;
36
+ export declare function resolveWorkflowPackageSourcePath(sourcePath: string, workflowId: string): string | null;
36
37
  export declare function isWorkflowId(value: string): boolean;
38
+ export declare function patchWorkflowPackageMetadata(dirPath: string, options?: {
39
+ id?: string;
40
+ label?: string;
41
+ hint?: string;
42
+ stagePolicyNotes?: Record<string, string[]>;
43
+ }): void;
44
+ export declare function describeWorkflowPackagePortability(dirPath: string): string[];
45
+ export declare function isPortableWorkflowPackage(dirPath: string): boolean;
46
+ export declare function copyWorkflowPackageDirectory(sourceWorkflowPath: string, targetWorkflowPath: string): void;
37
47
  export interface WorkflowValidationResult {
38
48
  ok: boolean;
39
49
  summary: string;
@@ -41,8 +51,3 @@ export interface WorkflowValidationResult {
41
51
  counts: Record<string, number>;
42
52
  }
43
53
  export declare function validateWorkflowPackage(dirPath: string): WorkflowValidationResult;
44
- export declare function writeLocalWorkflowDefinition(sourcePath: string, id: string, workflowJson: Record<string, unknown>, docs: Array<{
45
- relativePath: string;
46
- content: string;
47
- }>): string;
48
- //# sourceMappingURL=local-workflows.d.ts.map