@pennyfarthing/core 7.4.0 → 7.5.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 (369) hide show
  1. package/dist/cli/utils/files.d.ts +0 -1
  2. package/dist/cli/utils/files.js +73 -56
  3. package/dist/cli/utils/manifest.d.ts +0 -1
  4. package/dist/cli/utils/manifest.js +48 -45
  5. package/dist/cli/utils/version.d.ts +0 -1
  6. package/dist/cli/utils/version.js +38 -32
  7. package/dist/index.d.ts +0 -1
  8. package/dist/index.js +39 -11
  9. package/dist/permissions/index.d.ts +0 -1
  10. package/dist/permissions/index.js +7 -4
  11. package/dist/permissions/permission-schema.d.ts +0 -1
  12. package/dist/permissions/permission-schema.js +13 -9
  13. package/dist/scripts/job-fair-aggregator.d.ts +0 -1
  14. package/dist/scripts/job-fair-aggregator.js +484 -341
  15. package/dist/workflow/index.d.ts +0 -1
  16. package/dist/workflow/index.js +12 -5
  17. package/dist/workflow/workflow-loader.d.ts +0 -1
  18. package/dist/workflow/workflow-loader.js +40 -34
  19. package/dist/workflow/workflow-permissions.d.ts +0 -1
  20. package/dist/workflow/workflow-permissions.js +14 -8
  21. package/dist/workflow/workflow-router.d.ts +0 -1
  22. package/dist/workflow/workflow-router.js +70 -51
  23. package/dist/workflow/workflow-schema.d.ts +0 -1
  24. package/dist/workflow/workflow-schema.js +62 -59
  25. package/package.json +1 -1
  26. package/dist/bmad/context-reader.d.ts +0 -71
  27. package/dist/bmad/context-reader.d.ts.map +0 -1
  28. package/dist/bmad/context-reader.js +0 -369
  29. package/dist/bmad/context-reader.js.map +0 -1
  30. package/dist/bmad/context-reader.test.d.ts +0 -71
  31. package/dist/bmad/context-reader.test.d.ts.map +0 -1
  32. package/dist/bmad/context-reader.test.js +0 -878
  33. package/dist/bmad/context-reader.test.js.map +0 -1
  34. package/dist/bmad/epics-parser.d.ts +0 -61
  35. package/dist/bmad/epics-parser.d.ts.map +0 -1
  36. package/dist/bmad/epics-parser.js +0 -331
  37. package/dist/bmad/epics-parser.js.map +0 -1
  38. package/dist/bmad/epics-parser.test.d.ts +0 -7
  39. package/dist/bmad/epics-parser.test.d.ts.map +0 -1
  40. package/dist/bmad/epics-parser.test.js +0 -449
  41. package/dist/bmad/epics-parser.test.js.map +0 -1
  42. package/dist/bmad/index.d.ts +0 -11
  43. package/dist/bmad/index.d.ts.map +0 -1
  44. package/dist/bmad/index.js +0 -24
  45. package/dist/bmad/index.js.map +0 -1
  46. package/dist/bmad/status-sync.d.ts +0 -173
  47. package/dist/bmad/status-sync.d.ts.map +0 -1
  48. package/dist/bmad/status-sync.js +0 -463
  49. package/dist/bmad/status-sync.js.map +0 -1
  50. package/dist/bmad/status-sync.test.d.ts +0 -7
  51. package/dist/bmad/status-sync.test.d.ts.map +0 -1
  52. package/dist/bmad/status-sync.test.js +0 -702
  53. package/dist/bmad/status-sync.test.js.map +0 -1
  54. package/dist/bmad/story-exporter.d.ts +0 -55
  55. package/dist/bmad/story-exporter.d.ts.map +0 -1
  56. package/dist/bmad/story-exporter.js +0 -170
  57. package/dist/bmad/story-exporter.js.map +0 -1
  58. package/dist/bmad/story-exporter.test.d.ts +0 -51
  59. package/dist/bmad/story-exporter.test.d.ts.map +0 -1
  60. package/dist/bmad/story-exporter.test.js +0 -603
  61. package/dist/bmad/story-exporter.test.js.map +0 -1
  62. package/dist/bmad/story-parser.d.ts +0 -44
  63. package/dist/bmad/story-parser.d.ts.map +0 -1
  64. package/dist/bmad/story-parser.js +0 -307
  65. package/dist/bmad/story-parser.js.map +0 -1
  66. package/dist/bmad/story-parser.test.d.ts +0 -44
  67. package/dist/bmad/story-parser.test.d.ts.map +0 -1
  68. package/dist/bmad/story-parser.test.js +0 -693
  69. package/dist/bmad/story-parser.test.js.map +0 -1
  70. package/dist/cli/commands/command.d.ts +0 -28
  71. package/dist/cli/commands/command.d.ts.map +0 -1
  72. package/dist/cli/commands/command.js +0 -399
  73. package/dist/cli/commands/command.js.map +0 -1
  74. package/dist/cli/commands/cyclist.d.ts +0 -46
  75. package/dist/cli/commands/cyclist.d.ts.map +0 -1
  76. package/dist/cli/commands/cyclist.js +0 -196
  77. package/dist/cli/commands/cyclist.js.map +0 -1
  78. package/dist/cli/commands/cyclist.test.d.ts +0 -13
  79. package/dist/cli/commands/cyclist.test.d.ts.map +0 -1
  80. package/dist/cli/commands/cyclist.test.js +0 -245
  81. package/dist/cli/commands/cyclist.test.js.map +0 -1
  82. package/dist/cli/commands/doctor.d.ts +0 -9
  83. package/dist/cli/commands/doctor.d.ts.map +0 -1
  84. package/dist/cli/commands/doctor.js +0 -652
  85. package/dist/cli/commands/doctor.js.map +0 -1
  86. package/dist/cli/commands/init.d.ts +0 -8
  87. package/dist/cli/commands/init.d.ts.map +0 -1
  88. package/dist/cli/commands/init.js +0 -524
  89. package/dist/cli/commands/init.js.map +0 -1
  90. package/dist/cli/commands/skill.d.ts +0 -28
  91. package/dist/cli/commands/skill.d.ts.map +0 -1
  92. package/dist/cli/commands/skill.js +0 -416
  93. package/dist/cli/commands/skill.js.map +0 -1
  94. package/dist/cli/commands/theme.d.ts +0 -21
  95. package/dist/cli/commands/theme.d.ts.map +0 -1
  96. package/dist/cli/commands/theme.js +0 -201
  97. package/dist/cli/commands/theme.js.map +0 -1
  98. package/dist/cli/commands/uninstall.d.ts +0 -8
  99. package/dist/cli/commands/uninstall.d.ts.map +0 -1
  100. package/dist/cli/commands/uninstall.js +0 -237
  101. package/dist/cli/commands/uninstall.js.map +0 -1
  102. package/dist/cli/commands/update.d.ts +0 -9
  103. package/dist/cli/commands/update.d.ts.map +0 -1
  104. package/dist/cli/commands/update.js +0 -418
  105. package/dist/cli/commands/update.js.map +0 -1
  106. package/dist/cli/commands/version.d.ts +0 -2
  107. package/dist/cli/commands/version.d.ts.map +0 -1
  108. package/dist/cli/commands/version.js +0 -28
  109. package/dist/cli/commands/version.js.map +0 -1
  110. package/dist/cli/customization.test.d.ts +0 -12
  111. package/dist/cli/customization.test.d.ts.map +0 -1
  112. package/dist/cli/customization.test.js +0 -84
  113. package/dist/cli/customization.test.js.map +0 -1
  114. package/dist/cli/cyclist-migration.test.d.ts +0 -16
  115. package/dist/cli/cyclist-migration.test.d.ts.map +0 -1
  116. package/dist/cli/cyclist-migration.test.js +0 -225
  117. package/dist/cli/cyclist-migration.test.js.map +0 -1
  118. package/dist/cli/index.d.ts +0 -3
  119. package/dist/cli/index.d.ts.map +0 -1
  120. package/dist/cli/index.js +0 -174
  121. package/dist/cli/index.js.map +0 -1
  122. package/dist/cli/ocean-profiles.test.d.ts +0 -13
  123. package/dist/cli/ocean-profiles.test.d.ts.map +0 -1
  124. package/dist/cli/ocean-profiles.test.js +0 -134
  125. package/dist/cli/ocean-profiles.test.js.map +0 -1
  126. package/dist/cli/theme-maker.test.d.ts +0 -11
  127. package/dist/cli/theme-maker.test.d.ts.map +0 -1
  128. package/dist/cli/theme-maker.test.js +0 -356
  129. package/dist/cli/theme-maker.test.js.map +0 -1
  130. package/dist/cli/utils/constants.d.ts +0 -66
  131. package/dist/cli/utils/constants.d.ts.map +0 -1
  132. package/dist/cli/utils/constants.js +0 -54
  133. package/dist/cli/utils/constants.js.map +0 -1
  134. package/dist/cli/utils/files.d.ts.map +0 -1
  135. package/dist/cli/utils/files.js.map +0 -1
  136. package/dist/cli/utils/logger.d.ts +0 -26
  137. package/dist/cli/utils/logger.d.ts.map +0 -1
  138. package/dist/cli/utils/logger.js +0 -88
  139. package/dist/cli/utils/logger.js.map +0 -1
  140. package/dist/cli/utils/manifest.d.ts.map +0 -1
  141. package/dist/cli/utils/manifest.js.map +0 -1
  142. package/dist/cli/utils/node-modules.d.ts +0 -6
  143. package/dist/cli/utils/node-modules.d.ts.map +0 -1
  144. package/dist/cli/utils/node-modules.js +0 -31
  145. package/dist/cli/utils/node-modules.js.map +0 -1
  146. package/dist/cli/utils/prompts.d.ts +0 -34
  147. package/dist/cli/utils/prompts.d.ts.map +0 -1
  148. package/dist/cli/utils/prompts.js +0 -93
  149. package/dist/cli/utils/prompts.js.map +0 -1
  150. package/dist/cli/utils/symlinks.d.ts +0 -29
  151. package/dist/cli/utils/symlinks.d.ts.map +0 -1
  152. package/dist/cli/utils/symlinks.js +0 -181
  153. package/dist/cli/utils/symlinks.js.map +0 -1
  154. package/dist/cli/utils/themes.d.ts +0 -101
  155. package/dist/cli/utils/themes.d.ts.map +0 -1
  156. package/dist/cli/utils/themes.js +0 -373
  157. package/dist/cli/utils/themes.js.map +0 -1
  158. package/dist/cli/utils/themes.test.d.ts +0 -12
  159. package/dist/cli/utils/themes.test.d.ts.map +0 -1
  160. package/dist/cli/utils/themes.test.js +0 -147
  161. package/dist/cli/utils/themes.test.js.map +0 -1
  162. package/dist/cli/utils/version.d.ts.map +0 -1
  163. package/dist/cli/utils/version.js.map +0 -1
  164. package/dist/cli/workspace.test.d.ts +0 -8
  165. package/dist/cli/workspace.test.d.ts.map +0 -1
  166. package/dist/cli/workspace.test.js +0 -151
  167. package/dist/cli/workspace.test.js.map +0 -1
  168. package/dist/index.d.ts.map +0 -1
  169. package/dist/index.js.map +0 -1
  170. package/dist/jira/jira-epic-creation.d.ts +0 -109
  171. package/dist/jira/jira-epic-creation.d.ts.map +0 -1
  172. package/dist/jira/jira-epic-creation.js +0 -253
  173. package/dist/jira/jira-epic-creation.js.map +0 -1
  174. package/dist/jira/jira-epic-creation.test.d.ts +0 -16
  175. package/dist/jira/jira-epic-creation.test.d.ts.map +0 -1
  176. package/dist/jira/jira-epic-creation.test.js +0 -387
  177. package/dist/jira/jira-epic-creation.test.js.map +0 -1
  178. package/dist/jira/jira-sprint-sync.d.ts +0 -247
  179. package/dist/jira/jira-sprint-sync.d.ts.map +0 -1
  180. package/dist/jira/jira-sprint-sync.js +0 -670
  181. package/dist/jira/jira-sprint-sync.js.map +0 -1
  182. package/dist/jira/jira-sprint-sync.test.d.ts +0 -16
  183. package/dist/jira/jira-sprint-sync.test.d.ts.map +0 -1
  184. package/dist/jira/jira-sprint-sync.test.js +0 -845
  185. package/dist/jira/jira-sprint-sync.test.js.map +0 -1
  186. package/dist/permissions/index.d.ts.map +0 -1
  187. package/dist/permissions/index.js.map +0 -1
  188. package/dist/permissions/permission-schema.d.ts.map +0 -1
  189. package/dist/permissions/permission-schema.js.map +0 -1
  190. package/dist/permissions/permission-schema.test.d.ts +0 -40
  191. package/dist/permissions/permission-schema.test.d.ts.map +0 -1
  192. package/dist/permissions/permission-schema.test.js +0 -367
  193. package/dist/permissions/permission-schema.test.js.map +0 -1
  194. package/dist/scripts/add-ocean-profiles.d.ts +0 -9
  195. package/dist/scripts/add-ocean-profiles.d.ts.map +0 -1
  196. package/dist/scripts/add-ocean-profiles.js +0 -695
  197. package/dist/scripts/add-ocean-profiles.js.map +0 -1
  198. package/dist/scripts/benchmark-integration.d.ts +0 -182
  199. package/dist/scripts/benchmark-integration.d.ts.map +0 -1
  200. package/dist/scripts/benchmark-integration.js +0 -691
  201. package/dist/scripts/benchmark-integration.js.map +0 -1
  202. package/dist/scripts/benchmark-integration.test.d.ts +0 -13
  203. package/dist/scripts/benchmark-integration.test.d.ts.map +0 -1
  204. package/dist/scripts/benchmark-integration.test.js +0 -680
  205. package/dist/scripts/benchmark-integration.test.js.map +0 -1
  206. package/dist/scripts/debugging-scenarios.test.d.ts +0 -18
  207. package/dist/scripts/debugging-scenarios.test.d.ts.map +0 -1
  208. package/dist/scripts/debugging-scenarios.test.js +0 -317
  209. package/dist/scripts/debugging-scenarios.test.js.map +0 -1
  210. package/dist/scripts/generate-all-spiders.d.ts +0 -10
  211. package/dist/scripts/generate-all-spiders.d.ts.map +0 -1
  212. package/dist/scripts/generate-all-spiders.js +0 -306
  213. package/dist/scripts/generate-all-spiders.js.map +0 -1
  214. package/dist/scripts/generate-report.d.ts +0 -65
  215. package/dist/scripts/generate-report.d.ts.map +0 -1
  216. package/dist/scripts/generate-report.js +0 -378
  217. package/dist/scripts/generate-report.js.map +0 -1
  218. package/dist/scripts/generate-report.test.d.ts +0 -13
  219. package/dist/scripts/generate-report.test.d.ts.map +0 -1
  220. package/dist/scripts/generate-report.test.js +0 -363
  221. package/dist/scripts/generate-report.test.js.map +0 -1
  222. package/dist/scripts/generate-spider-report.d.ts +0 -65
  223. package/dist/scripts/generate-spider-report.d.ts.map +0 -1
  224. package/dist/scripts/generate-spider-report.js +0 -366
  225. package/dist/scripts/generate-spider-report.js.map +0 -1
  226. package/dist/scripts/generate-spider-report.test.d.ts +0 -13
  227. package/dist/scripts/generate-spider-report.test.d.ts.map +0 -1
  228. package/dist/scripts/generate-spider-report.test.js +0 -367
  229. package/dist/scripts/generate-spider-report.test.js.map +0 -1
  230. package/dist/scripts/generate-spider.d.ts +0 -47
  231. package/dist/scripts/generate-spider.d.ts.map +0 -1
  232. package/dist/scripts/generate-spider.js +0 -338
  233. package/dist/scripts/generate-spider.js.map +0 -1
  234. package/dist/scripts/generate-spider.test.d.ts +0 -14
  235. package/dist/scripts/generate-spider.test.d.ts.map +0 -1
  236. package/dist/scripts/generate-spider.test.js +0 -271
  237. package/dist/scripts/generate-spider.test.js.map +0 -1
  238. package/dist/scripts/job-fair-aggregator.d.ts.map +0 -1
  239. package/dist/scripts/job-fair-aggregator.js.map +0 -1
  240. package/dist/scripts/job-fair-aggregator.test.d.ts +0 -14
  241. package/dist/scripts/job-fair-aggregator.test.d.ts.map +0 -1
  242. package/dist/scripts/job-fair-aggregator.test.js +0 -616
  243. package/dist/scripts/job-fair-aggregator.test.js.map +0 -1
  244. package/dist/scripts/run-ci.test.d.ts +0 -20
  245. package/dist/scripts/run-ci.test.d.ts.map +0 -1
  246. package/dist/scripts/run-ci.test.js +0 -127
  247. package/dist/scripts/run-ci.test.js.map +0 -1
  248. package/dist/scripts/theme-detail.test.d.ts +0 -10
  249. package/dist/scripts/theme-detail.test.d.ts.map +0 -1
  250. package/dist/scripts/theme-detail.test.js +0 -199
  251. package/dist/scripts/theme-detail.test.js.map +0 -1
  252. package/dist/scripts/validate-ocean-profiles.d.ts +0 -9
  253. package/dist/scripts/validate-ocean-profiles.d.ts.map +0 -1
  254. package/dist/scripts/validate-ocean-profiles.js +0 -130
  255. package/dist/scripts/validate-ocean-profiles.js.map +0 -1
  256. package/dist/workflow/gate-handler.d.ts +0 -94
  257. package/dist/workflow/gate-handler.d.ts.map +0 -1
  258. package/dist/workflow/gate-handler.js +0 -189
  259. package/dist/workflow/gate-handler.js.map +0 -1
  260. package/dist/workflow/gate-handler.test.d.ts +0 -14
  261. package/dist/workflow/gate-handler.test.d.ts.map +0 -1
  262. package/dist/workflow/gate-handler.test.js +0 -543
  263. package/dist/workflow/gate-handler.test.js.map +0 -1
  264. package/dist/workflow/generic-handoff.d.ts +0 -281
  265. package/dist/workflow/generic-handoff.d.ts.map +0 -1
  266. package/dist/workflow/generic-handoff.js +0 -411
  267. package/dist/workflow/generic-handoff.js.map +0 -1
  268. package/dist/workflow/generic-handoff.test.d.ts +0 -21
  269. package/dist/workflow/generic-handoff.test.d.ts.map +0 -1
  270. package/dist/workflow/generic-handoff.test.js +0 -499
  271. package/dist/workflow/generic-handoff.test.js.map +0 -1
  272. package/dist/workflow/generic-sm-finish.d.ts +0 -89
  273. package/dist/workflow/generic-sm-finish.d.ts.map +0 -1
  274. package/dist/workflow/generic-sm-finish.js +0 -157
  275. package/dist/workflow/generic-sm-finish.js.map +0 -1
  276. package/dist/workflow/generic-sm-setup.d.ts +0 -138
  277. package/dist/workflow/generic-sm-setup.d.ts.map +0 -1
  278. package/dist/workflow/generic-sm-setup.js +0 -382
  279. package/dist/workflow/generic-sm-setup.js.map +0 -1
  280. package/dist/workflow/index.d.ts.map +0 -1
  281. package/dist/workflow/index.js.map +0 -1
  282. package/dist/workflow/session-state.d.ts +0 -92
  283. package/dist/workflow/session-state.d.ts.map +0 -1
  284. package/dist/workflow/session-state.js +0 -198
  285. package/dist/workflow/session-state.js.map +0 -1
  286. package/dist/workflow/session-state.test.d.ts +0 -8
  287. package/dist/workflow/session-state.test.d.ts.map +0 -1
  288. package/dist/workflow/session-state.test.js +0 -551
  289. package/dist/workflow/session-state.test.js.map +0 -1
  290. package/dist/workflow/sm-subagents.test.d.ts +0 -23
  291. package/dist/workflow/sm-subagents.test.d.ts.map +0 -1
  292. package/dist/workflow/sm-subagents.test.js +0 -727
  293. package/dist/workflow/sm-subagents.test.js.map +0 -1
  294. package/dist/workflow/step-parser.d.ts +0 -45
  295. package/dist/workflow/step-parser.d.ts.map +0 -1
  296. package/dist/workflow/step-parser.js +0 -147
  297. package/dist/workflow/step-parser.js.map +0 -1
  298. package/dist/workflow/step-parser.test.d.ts +0 -14
  299. package/dist/workflow/step-parser.test.d.ts.map +0 -1
  300. package/dist/workflow/step-parser.test.js +0 -470
  301. package/dist/workflow/step-parser.test.js.map +0 -1
  302. package/dist/workflow/story-workflow-routing.test.d.ts +0 -17
  303. package/dist/workflow/story-workflow-routing.test.d.ts.map +0 -1
  304. package/dist/workflow/story-workflow-routing.test.js +0 -559
  305. package/dist/workflow/story-workflow-routing.test.js.map +0 -1
  306. package/dist/workflow/test-cache.d.ts +0 -131
  307. package/dist/workflow/test-cache.d.ts.map +0 -1
  308. package/dist/workflow/test-cache.js +0 -226
  309. package/dist/workflow/test-cache.js.map +0 -1
  310. package/dist/workflow/test-cache.test.d.ts +0 -17
  311. package/dist/workflow/test-cache.test.d.ts.map +0 -1
  312. package/dist/workflow/test-cache.test.js +0 -438
  313. package/dist/workflow/test-cache.test.js.map +0 -1
  314. package/dist/workflow/trimodal.d.ts +0 -86
  315. package/dist/workflow/trimodal.d.ts.map +0 -1
  316. package/dist/workflow/trimodal.js +0 -118
  317. package/dist/workflow/trimodal.js.map +0 -1
  318. package/dist/workflow/trimodal.test.d.ts +0 -11
  319. package/dist/workflow/trimodal.test.d.ts.map +0 -1
  320. package/dist/workflow/trimodal.test.js +0 -395
  321. package/dist/workflow/trimodal.test.js.map +0 -1
  322. package/dist/workflow/variable-resolver.d.ts +0 -67
  323. package/dist/workflow/variable-resolver.d.ts.map +0 -1
  324. package/dist/workflow/variable-resolver.js +0 -156
  325. package/dist/workflow/variable-resolver.js.map +0 -1
  326. package/dist/workflow/variable-resolver.test.d.ts +0 -14
  327. package/dist/workflow/variable-resolver.test.d.ts.map +0 -1
  328. package/dist/workflow/variable-resolver.test.js +0 -400
  329. package/dist/workflow/variable-resolver.test.js.map +0 -1
  330. package/dist/workflow/workflow-executor.d.ts +0 -163
  331. package/dist/workflow/workflow-executor.d.ts.map +0 -1
  332. package/dist/workflow/workflow-executor.js +0 -197
  333. package/dist/workflow/workflow-executor.js.map +0 -1
  334. package/dist/workflow/workflow-executor.test.d.ts +0 -8
  335. package/dist/workflow/workflow-executor.test.d.ts.map +0 -1
  336. package/dist/workflow/workflow-executor.test.js +0 -444
  337. package/dist/workflow/workflow-executor.test.js.map +0 -1
  338. package/dist/workflow/workflow-loader.d.ts.map +0 -1
  339. package/dist/workflow/workflow-loader.js.map +0 -1
  340. package/dist/workflow/workflow-loader.test.d.ts +0 -15
  341. package/dist/workflow/workflow-loader.test.d.ts.map +0 -1
  342. package/dist/workflow/workflow-loader.test.js +0 -354
  343. package/dist/workflow/workflow-loader.test.js.map +0 -1
  344. package/dist/workflow/workflow-migration.test.d.ts +0 -17
  345. package/dist/workflow/workflow-migration.test.d.ts.map +0 -1
  346. package/dist/workflow/workflow-migration.test.js +0 -371
  347. package/dist/workflow/workflow-migration.test.js.map +0 -1
  348. package/dist/workflow/workflow-permissions.d.ts.map +0 -1
  349. package/dist/workflow/workflow-permissions.js.map +0 -1
  350. package/dist/workflow/workflow-permissions.test.d.ts +0 -15
  351. package/dist/workflow/workflow-permissions.test.d.ts.map +0 -1
  352. package/dist/workflow/workflow-permissions.test.js +0 -301
  353. package/dist/workflow/workflow-permissions.test.js.map +0 -1
  354. package/dist/workflow/workflow-router.d.ts.map +0 -1
  355. package/dist/workflow/workflow-router.js.map +0 -1
  356. package/dist/workflow/workflow-router.test.d.ts +0 -20
  357. package/dist/workflow/workflow-router.test.d.ts.map +0 -1
  358. package/dist/workflow/workflow-router.test.js +0 -607
  359. package/dist/workflow/workflow-router.test.js.map +0 -1
  360. package/dist/workflow/workflow-schema.d.ts.map +0 -1
  361. package/dist/workflow/workflow-schema.js.map +0 -1
  362. package/dist/workflow/workflow-schema.test.d.ts +0 -45
  363. package/dist/workflow/workflow-schema.test.d.ts.map +0 -1
  364. package/dist/workflow/workflow-schema.test.js +0 -512
  365. package/dist/workflow/workflow-schema.test.js.map +0 -1
  366. package/dist/workflow/workflow-stepped-schema.test.d.ts +0 -18
  367. package/dist/workflow/workflow-stepped-schema.test.d.ts.map +0 -1
  368. package/dist/workflow/workflow-stepped-schema.test.js +0 -608
  369. package/dist/workflow/workflow-stepped-schema.test.js.map +0 -1
@@ -1,11 +0,0 @@
1
- /**
2
- * Tri-Modal Support Tests for MSSCI-12086
3
- *
4
- * Tests for tri-modal workflow execution in BikePaths:
5
- * - Mode selection via --mode flag
6
- * - Steps path resolution based on mode
7
- * - Session state mode tracking
8
- * - Default mode behavior
9
- */
10
- export {};
11
- //# sourceMappingURL=trimodal.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trimodal.test.d.ts","sourceRoot":"","sources":["../../src/workflow/trimodal.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -1,395 +0,0 @@
1
- /**
2
- * Tri-Modal Support Tests for MSSCI-12086
3
- *
4
- * Tests for tri-modal workflow execution in BikePaths:
5
- * - Mode selection via --mode flag
6
- * - Steps path resolution based on mode
7
- * - Session state mode tracking
8
- * - Default mode behavior
9
- */
10
- import { describe, it } from 'node:test';
11
- import assert from 'node:assert';
12
- import { parseTrimodalFlag, resolveStepsPath, validateMode, getDefaultMode, } from './trimodal.js';
13
- import { initWorkflowState, parseSessionState, formatWorkflowState, updateSessionContent } from './session-state.js';
14
- // ============================================================================
15
- // AC1: Mode selectable via --mode create|validate|edit flag
16
- // ============================================================================
17
- describe('AC1: Mode flag parsing', () => {
18
- describe('parseTrimodalFlag', () => {
19
- it('should parse --mode create flag', () => {
20
- const result = parseTrimodalFlag(['--mode', 'create']);
21
- assert.strictEqual(result.success, true);
22
- assert.strictEqual(result.mode, 'create');
23
- });
24
- it('should parse --mode validate flag', () => {
25
- const result = parseTrimodalFlag(['--mode', 'validate']);
26
- assert.strictEqual(result.success, true);
27
- assert.strictEqual(result.mode, 'validate');
28
- });
29
- it('should parse --mode edit flag', () => {
30
- const result = parseTrimodalFlag(['--mode', 'edit']);
31
- assert.strictEqual(result.success, true);
32
- assert.strictEqual(result.mode, 'edit');
33
- });
34
- it('should handle --mode=create syntax', () => {
35
- const result = parseTrimodalFlag(['--mode=create']);
36
- assert.strictEqual(result.success, true);
37
- assert.strictEqual(result.mode, 'create');
38
- });
39
- it('should handle -m shorthand flag', () => {
40
- const result = parseTrimodalFlag(['-m', 'validate']);
41
- assert.strictEqual(result.success, true);
42
- assert.strictEqual(result.mode, 'validate');
43
- });
44
- it('should return undefined mode when no flag provided', () => {
45
- const result = parseTrimodalFlag([]);
46
- assert.strictEqual(result.success, true);
47
- assert.strictEqual(result.mode, undefined);
48
- });
49
- it('should return error for invalid mode value', () => {
50
- const result = parseTrimodalFlag(['--mode', 'invalid']);
51
- assert.strictEqual(result.success, false);
52
- assert.ok(result.error?.includes('invalid'));
53
- });
54
- it('should return error for --mode without value', () => {
55
- const result = parseTrimodalFlag(['--mode']);
56
- assert.strictEqual(result.success, false);
57
- assert.ok(result.error?.includes('requires'));
58
- });
59
- it('should handle mode flag among other arguments', () => {
60
- const result = parseTrimodalFlag(['workflow', 'start', 'architecture', '--mode', 'edit', '--verbose']);
61
- assert.strictEqual(result.success, true);
62
- assert.strictEqual(result.mode, 'edit');
63
- });
64
- });
65
- describe('validateMode', () => {
66
- const workflowWithAllModes = {
67
- name: 'test-workflow',
68
- type: 'stepped',
69
- steps: { path: './steps/', pattern: 'step-{nn}-*.md' },
70
- modes: {
71
- default: 'create',
72
- create: './steps/',
73
- validate: './steps-validate/',
74
- edit: './steps-edit/',
75
- },
76
- };
77
- const workflowWithPartialModes = {
78
- name: 'partial-workflow',
79
- type: 'stepped',
80
- steps: { path: './steps/', pattern: 'step-{nn}-*.md' },
81
- modes: {
82
- default: 'create',
83
- create: './steps/',
84
- // validate and edit not defined
85
- },
86
- };
87
- it('should accept create mode when workflow supports it', () => {
88
- const result = validateMode('create', workflowWithAllModes);
89
- assert.strictEqual(result.valid, true);
90
- });
91
- it('should accept validate mode when workflow supports it', () => {
92
- const result = validateMode('validate', workflowWithAllModes);
93
- assert.strictEqual(result.valid, true);
94
- });
95
- it('should accept edit mode when workflow supports it', () => {
96
- const result = validateMode('edit', workflowWithAllModes);
97
- assert.strictEqual(result.valid, true);
98
- });
99
- it('should reject mode not defined in workflow', () => {
100
- const result = validateMode('validate', workflowWithPartialModes);
101
- assert.strictEqual(result.valid, false);
102
- assert.ok(result.error?.includes('validate'));
103
- });
104
- it('should accept any mode for workflow without modes config', () => {
105
- const workflowNoModes = {
106
- name: 'no-modes',
107
- type: 'stepped',
108
- steps: { path: './steps/', pattern: 'step-{nn}-*.md' },
109
- };
110
- // When workflow has no modes config, any mode should work (uses steps.path)
111
- const result = validateMode('create', workflowNoModes);
112
- assert.strictEqual(result.valid, true);
113
- });
114
- });
115
- });
116
- // ============================================================================
117
- // AC2: Steps loaded from mode-specific directory
118
- // ============================================================================
119
- describe('AC2: Mode-specific steps path resolution', () => {
120
- describe('resolveStepsPath', () => {
121
- const trimodalWorkflow = {
122
- name: 'architecture',
123
- type: 'stepped',
124
- steps: { path: './steps/', pattern: 'step-{nn}-*.md' },
125
- modes: {
126
- default: 'create',
127
- create: './steps/',
128
- validate: './steps-validate/',
129
- edit: './steps-edit/',
130
- },
131
- };
132
- it('should resolve create mode to create path', () => {
133
- const result = resolveStepsPath(trimodalWorkflow, 'create');
134
- assert.strictEqual(result.success, true);
135
- assert.strictEqual(result.path, './steps/');
136
- });
137
- it('should resolve validate mode to validate path', () => {
138
- const result = resolveStepsPath(trimodalWorkflow, 'validate');
139
- assert.strictEqual(result.success, true);
140
- assert.strictEqual(result.path, './steps-validate/');
141
- });
142
- it('should resolve edit mode to edit path', () => {
143
- const result = resolveStepsPath(trimodalWorkflow, 'edit');
144
- assert.strictEqual(result.success, true);
145
- assert.strictEqual(result.path, './steps-edit/');
146
- });
147
- it('should fall back to steps.path when no modes config', () => {
148
- const workflowNoModes = {
149
- name: 'simple',
150
- type: 'stepped',
151
- steps: { path: './default-steps/', pattern: 'step-{nn}-*.md' },
152
- };
153
- const result = resolveStepsPath(workflowNoModes, 'create');
154
- assert.strictEqual(result.success, true);
155
- assert.strictEqual(result.path, './default-steps/');
156
- });
157
- it('should fall back to steps.path when mode path not defined', () => {
158
- const partialModes = {
159
- name: 'partial',
160
- type: 'stepped',
161
- steps: { path: './fallback/', pattern: 'step-{nn}-*.md' },
162
- modes: {
163
- default: 'create',
164
- create: './create-steps/',
165
- // validate not defined
166
- },
167
- };
168
- const result = resolveStepsPath(partialModes, 'validate');
169
- assert.strictEqual(result.success, true);
170
- assert.strictEqual(result.path, './fallback/');
171
- });
172
- it('should return error for phased workflow (no steps)', () => {
173
- const phasedWorkflow = {
174
- name: 'tdd',
175
- type: 'phased',
176
- phases: [{ name: 'setup', agent: 'sm' }],
177
- };
178
- const result = resolveStepsPath(phasedWorkflow, 'create');
179
- assert.strictEqual(result.success, false);
180
- assert.ok(result.error?.includes('stepped'));
181
- });
182
- it('should preserve pattern from workflow definition', () => {
183
- const result = resolveStepsPath(trimodalWorkflow, 'create');
184
- assert.strictEqual(result.success, true);
185
- assert.strictEqual(result.pattern, 'step-{nn}-*.md');
186
- });
187
- });
188
- });
189
- // ============================================================================
190
- // AC3: Mode tracked in session state
191
- // ============================================================================
192
- describe('AC3: Session state mode tracking', () => {
193
- describe('initWorkflowState with mode', () => {
194
- it('should initialize state with create mode', () => {
195
- const state = initWorkflowState('architecture', 'stepped', 'create');
196
- assert.strictEqual(state.name, 'architecture');
197
- assert.strictEqual(state.type, 'stepped');
198
- assert.strictEqual(state.mode, 'create');
199
- });
200
- it('should initialize state with validate mode', () => {
201
- const state = initWorkflowState('architecture', 'stepped', 'validate');
202
- assert.strictEqual(state.mode, 'validate');
203
- });
204
- it('should initialize state with edit mode', () => {
205
- const state = initWorkflowState('architecture', 'stepped', 'edit');
206
- assert.strictEqual(state.mode, 'edit');
207
- });
208
- it('should allow undefined mode for workflows without tri-modal', () => {
209
- const state = initWorkflowState('simple', 'stepped');
210
- assert.strictEqual(state.mode, undefined);
211
- });
212
- });
213
- describe('formatWorkflowState with mode', () => {
214
- it('should include mode in formatted output', () => {
215
- const state = initWorkflowState('architecture', 'stepped', 'validate');
216
- const formatted = formatWorkflowState(state);
217
- assert.ok(formatted.includes('**Mode:** validate'));
218
- });
219
- it('should omit mode line when mode is undefined', () => {
220
- const state = initWorkflowState('simple', 'stepped');
221
- const formatted = formatWorkflowState(state);
222
- assert.ok(!formatted.includes('**Mode:**'));
223
- });
224
- });
225
- describe('parseSessionState with mode', () => {
226
- it('should parse mode from session content', () => {
227
- const content = `
228
- # Story
229
-
230
- ## Workflow State
231
- - **Workflow Name:** architecture
232
- - **Type:** stepped
233
- - **Mode:** edit
234
- - **Started:** 2026-01-21T10:00:00Z
235
- - **Last Updated:** 2026-01-21T10:30:00Z
236
- - **Current Step:** 3
237
- - **Steps Completed:** [1, 2]
238
- - **Status:** in_progress
239
- `;
240
- const result = parseSessionState(content);
241
- assert.strictEqual(result.success, true);
242
- assert.strictEqual(result.state?.mode, 'edit');
243
- });
244
- it('should handle session without mode field', () => {
245
- const content = `
246
- # Story
247
-
248
- ## Workflow State
249
- - **Workflow Name:** simple
250
- - **Type:** stepped
251
- - **Started:** 2026-01-21T10:00:00Z
252
- - **Last Updated:** 2026-01-21T10:30:00Z
253
- - **Current Step:** 1
254
- - **Steps Completed:** []
255
- - **Status:** in_progress
256
- `;
257
- const result = parseSessionState(content);
258
- assert.strictEqual(result.success, true);
259
- assert.strictEqual(result.state?.mode, undefined);
260
- });
261
- });
262
- describe('updateSessionContent preserves mode', () => {
263
- it('should preserve mode when updating session state', () => {
264
- const state = initWorkflowState('architecture', 'stepped', 'validate');
265
- state.currentStep = 2;
266
- state.stepsCompleted = [1];
267
- const content = '# Story\n\n## Overview\nSome content\n';
268
- const result = updateSessionContent(content, state);
269
- assert.strictEqual(result.success, true);
270
- assert.ok(result.content?.includes('**Mode:** validate'));
271
- });
272
- });
273
- });
274
- // ============================================================================
275
- // AC4: Defaults to create mode when --mode not specified
276
- // ============================================================================
277
- describe('AC4: Default mode behavior', () => {
278
- describe('getDefaultMode', () => {
279
- it('should return workflow modes.default when defined', () => {
280
- const workflow = {
281
- name: 'test',
282
- type: 'stepped',
283
- steps: { path: './steps/', pattern: 'step-{nn}-*.md' },
284
- modes: {
285
- default: 'validate',
286
- create: './create/',
287
- validate: './validate/',
288
- },
289
- };
290
- const mode = getDefaultMode(workflow);
291
- assert.strictEqual(mode, 'validate');
292
- });
293
- it('should return create when modes.default is create', () => {
294
- const workflow = {
295
- name: 'test',
296
- type: 'stepped',
297
- steps: { path: './steps/', pattern: 'step-{nn}-*.md' },
298
- modes: {
299
- default: 'create',
300
- create: './create/',
301
- },
302
- };
303
- const mode = getDefaultMode(workflow);
304
- assert.strictEqual(mode, 'create');
305
- });
306
- it('should return create when no modes config exists', () => {
307
- const workflow = {
308
- name: 'simple',
309
- type: 'stepped',
310
- steps: { path: './steps/', pattern: 'step-{nn}-*.md' },
311
- };
312
- const mode = getDefaultMode(workflow);
313
- assert.strictEqual(mode, 'create');
314
- });
315
- it('should return undefined for phased workflows', () => {
316
- const workflow = {
317
- name: 'tdd',
318
- type: 'phased',
319
- phases: [{ name: 'setup', agent: 'sm' }],
320
- };
321
- const mode = getDefaultMode(workflow);
322
- assert.strictEqual(mode, undefined);
323
- });
324
- });
325
- describe('Integration: flag parsing with defaults', () => {
326
- const trimodalWorkflow = {
327
- name: 'architecture',
328
- type: 'stepped',
329
- steps: { path: './steps/', pattern: 'step-{nn}-*.md' },
330
- modes: {
331
- default: 'create',
332
- create: './steps/',
333
- validate: './steps-validate/',
334
- edit: './steps-edit/',
335
- },
336
- };
337
- it('should use create mode when no --mode flag and workflow defaults to create', () => {
338
- const parseResult = parseTrimodalFlag([]);
339
- const effectiveMode = parseResult.mode ?? getDefaultMode(trimodalWorkflow);
340
- assert.strictEqual(effectiveMode, 'create');
341
- });
342
- it('should use explicit mode when --mode flag provided', () => {
343
- const parseResult = parseTrimodalFlag(['--mode', 'edit']);
344
- const effectiveMode = parseResult.mode ?? getDefaultMode(trimodalWorkflow);
345
- assert.strictEqual(effectiveMode, 'edit');
346
- });
347
- it('should use workflow default mode when no flag and default is not create', () => {
348
- const validateDefaultWorkflow = {
349
- ...trimodalWorkflow,
350
- modes: { ...trimodalWorkflow.modes, default: 'validate' },
351
- };
352
- const parseResult = parseTrimodalFlag([]);
353
- const effectiveMode = parseResult.mode ?? getDefaultMode(validateDefaultWorkflow);
354
- assert.strictEqual(effectiveMode, 'validate');
355
- });
356
- });
357
- });
358
- // ============================================================================
359
- // Edge cases and error handling
360
- // ============================================================================
361
- describe('Edge cases', () => {
362
- it('should handle empty workflow modes object', () => {
363
- const workflow = {
364
- name: 'test',
365
- type: 'stepped',
366
- steps: { path: './steps/', pattern: 'step-{nn}-*.md' },
367
- modes: {}, // Empty modes object (technically invalid but defensive)
368
- };
369
- const result = resolveStepsPath(workflow, 'create');
370
- // Should fall back to steps.path
371
- assert.strictEqual(result.success, true);
372
- assert.strictEqual(result.path, './steps/');
373
- });
374
- it('should handle case-sensitive mode values', () => {
375
- // Modes should be lowercase
376
- const result = parseTrimodalFlag(['--mode', 'Create']);
377
- assert.strictEqual(result.success, false);
378
- assert.ok(result.error?.includes('Create'));
379
- });
380
- it('should preserve mode across session state round-trip', () => {
381
- // Create state with mode
382
- const original = initWorkflowState('arch', 'stepped', 'validate');
383
- // Format to markdown
384
- const formatted = formatWorkflowState(original);
385
- // Create session content
386
- const sessionContent = `# Story\n\n${formatted}\n`;
387
- // Parse it back
388
- const parsed = parseSessionState(sessionContent);
389
- assert.strictEqual(parsed.success, true);
390
- assert.strictEqual(parsed.state?.mode, 'validate');
391
- assert.strictEqual(parsed.state?.name, 'arch');
392
- assert.strictEqual(parsed.state?.type, 'stepped');
393
- });
394
- });
395
- //# sourceMappingURL=trimodal.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trimodal.test.js","sourceRoot":"","sources":["../../src/workflow/trimodal.test.ts"],"names":[],"mappings":"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"}
@@ -1,67 +0,0 @@
1
- /**
2
- * Variable Resolver for MSSCI-12081
3
- *
4
- * Resolves {variable} placeholders in step file content from multiple sources
5
- * with priority-based fallback chain.
6
- */
7
- /**
8
- * Represents a source of variable values
9
- */
10
- export interface VariableSource {
11
- /** Name of this source (e.g., 'workflow', 'session', 'environment') */
12
- name: string;
13
- /** Priority level (lower number = higher priority) */
14
- priority: number;
15
- /** Map of variable names to their values */
16
- values: Record<string, string>;
17
- }
18
- /**
19
- * Result of variable resolution
20
- */
21
- export interface ResolveResult {
22
- /** Content with variables resolved (unresolved variables left as-is) */
23
- content: string;
24
- /** List of variables that were successfully resolved */
25
- resolved: string[];
26
- /** List of variables that could not be resolved */
27
- unresolved: string[];
28
- /** Map of variable name to source name that provided the value */
29
- sources: Record<string, string>;
30
- }
31
- /**
32
- * Options for the convenience resolveStepVariables function
33
- */
34
- export interface ResolveStepOptions {
35
- /** Variables from workflow YAML (highest priority) */
36
- workflowVars?: Record<string, unknown>;
37
- /** Variables from session file */
38
- sessionVars?: Record<string, string>;
39
- /** Path to config file */
40
- configPath?: string;
41
- /** Project root path (for {project_root} variable) */
42
- projectRoot?: string;
43
- }
44
- /**
45
- * Resolve variables in content from prioritized sources
46
- *
47
- * @param content - The content containing {variable} placeholders
48
- * @param sources - Array of variable sources, sorted by priority
49
- * @returns ResolveResult with resolved content and metadata
50
- */
51
- export declare function resolveVariables(content: string, sources: VariableSource[]): ResolveResult;
52
- /**
53
- * Convenience function to resolve variables in step file content
54
- *
55
- * Automatically builds sources from:
56
- * 1. Workflow variables (priority 1)
57
- * 2. Session variables (priority 2)
58
- * 3. Config file values (priority 3)
59
- * 4. Environment/system variables (priority 4)
60
- * 5. Default values (priority 5)
61
- *
62
- * @param stepContent - The step file content to process
63
- * @param options - Optional configuration for variable sources
64
- * @returns ResolveResult with resolved content and metadata
65
- */
66
- export declare function resolveStepVariables(stepContent: string, options?: ResolveStepOptions): ResolveResult;
67
- //# sourceMappingURL=variable-resolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"variable-resolver.d.ts","sourceRoot":"","sources":["../../src/workflow/variable-resolver.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,uEAAuE;IACvE,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,wEAAwE;IACxE,OAAO,EAAE,MAAM,CAAC;IAChB,wDAAwD;IACxD,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,mDAAmD;IACnD,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,kCAAkC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,0BAA0B;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA0CD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,cAAc,EAAE,GACxB,aAAa,CAyCf;AAaD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,aAAa,CAmDf"}
@@ -1,156 +0,0 @@
1
- /**
2
- * Variable Resolver for MSSCI-12081
3
- *
4
- * Resolves {variable} placeholders in step file content from multiple sources
5
- * with priority-based fallback chain.
6
- */
7
- // Regex to match valid variable names: {name} where name starts with letter or underscore
8
- // followed by letters, numbers, or underscores.
9
- // Uses negative lookbehind to avoid matching inside nested braces like {outer_{inner}}
10
- const VARIABLE_REGEX = /(?<!\{[^}]*)\{([a-zA-Z_][a-zA-Z0-9_]*)\}/g;
11
- /**
12
- * Convert a value to string, handling various types
13
- */
14
- function valueToString(value) {
15
- if (value === null || value === undefined) {
16
- return null;
17
- }
18
- if (typeof value === 'string') {
19
- return value;
20
- }
21
- if (typeof value === 'number' || typeof value === 'boolean') {
22
- return String(value);
23
- }
24
- return null;
25
- }
26
- /**
27
- * Look up a variable in sources by priority
28
- */
29
- function lookupVariable(varName, sortedSources) {
30
- for (const source of sortedSources) {
31
- if (varName in source.values) {
32
- const rawValue = source.values[varName];
33
- const value = valueToString(rawValue);
34
- if (value !== null) {
35
- return { value, sourceName: source.name };
36
- }
37
- }
38
- }
39
- return null;
40
- }
41
- /**
42
- * Resolve variables in content from prioritized sources
43
- *
44
- * @param content - The content containing {variable} placeholders
45
- * @param sources - Array of variable sources, sorted by priority
46
- * @returns ResolveResult with resolved content and metadata
47
- */
48
- export function resolveVariables(content, sources) {
49
- const resolved = [];
50
- const unresolved = [];
51
- const sourceMap = {};
52
- // Sort sources by priority (lower number = higher priority)
53
- // Stable sort preserves array order for same priority
54
- const sortedSources = [...sources].sort((a, b) => a.priority - b.priority);
55
- // Find all variable references in content
56
- const matches = content.matchAll(VARIABLE_REGEX);
57
- const seenVars = new Set();
58
- for (const match of matches) {
59
- const varName = match[1];
60
- if (seenVars.has(varName)) {
61
- continue;
62
- }
63
- seenVars.add(varName);
64
- const lookup = lookupVariable(varName, sortedSources);
65
- if (lookup) {
66
- resolved.push(varName);
67
- sourceMap[varName] = lookup.sourceName;
68
- }
69
- else {
70
- unresolved.push(varName);
71
- }
72
- }
73
- // Replace variables in content
74
- const resolvedContent = content.replace(VARIABLE_REGEX, (match, varName) => {
75
- const lookup = lookupVariable(varName, sortedSources);
76
- return lookup ? lookup.value : match;
77
- });
78
- return {
79
- content: resolvedContent,
80
- resolved,
81
- unresolved,
82
- sources: sourceMap,
83
- };
84
- }
85
- /**
86
- * Get current date in YYYY-MM-DD format
87
- */
88
- function getCurrentDate() {
89
- const now = new Date();
90
- const year = now.getFullYear();
91
- const month = String(now.getMonth() + 1).padStart(2, '0');
92
- const day = String(now.getDate()).padStart(2, '0');
93
- return `${year}-${month}-${day}`;
94
- }
95
- /**
96
- * Convenience function to resolve variables in step file content
97
- *
98
- * Automatically builds sources from:
99
- * 1. Workflow variables (priority 1)
100
- * 2. Session variables (priority 2)
101
- * 3. Config file values (priority 3)
102
- * 4. Environment/system variables (priority 4)
103
- * 5. Default values (priority 5)
104
- *
105
- * @param stepContent - The step file content to process
106
- * @param options - Optional configuration for variable sources
107
- * @returns ResolveResult with resolved content and metadata
108
- */
109
- export function resolveStepVariables(stepContent, options) {
110
- const sources = [];
111
- // Priority 1: Workflow variables
112
- if (options?.workflowVars) {
113
- const workflowValues = {};
114
- for (const [key, value] of Object.entries(options.workflowVars)) {
115
- const strValue = valueToString(value);
116
- if (strValue !== null) {
117
- workflowValues[key] = strValue;
118
- }
119
- }
120
- sources.push({
121
- name: 'workflow',
122
- priority: 1,
123
- values: workflowValues,
124
- });
125
- }
126
- // Priority 2: Session variables
127
- if (options?.sessionVars) {
128
- sources.push({
129
- name: 'session',
130
- priority: 2,
131
- values: options.sessionVars,
132
- });
133
- }
134
- // Priority 4: Environment/system variables
135
- const envValues = {
136
- date: getCurrentDate(),
137
- };
138
- if (options?.projectRoot) {
139
- envValues.project_root = options.projectRoot;
140
- }
141
- sources.push({
142
- name: 'environment',
143
- priority: 4,
144
- values: envValues,
145
- });
146
- // Priority 5: Default values
147
- sources.push({
148
- name: 'defaults',
149
- priority: 5,
150
- values: {
151
- planning_artifacts: 'planning-artifacts/',
152
- },
153
- });
154
- return resolveVariables(stepContent, sources);
155
- }
156
- //# sourceMappingURL=variable-resolver.js.map