@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,608 +0,0 @@
1
- /**
2
- * Tests for Story MSSCI-12078: Workflow YAML schema extension for type: stepped
3
- *
4
- * These tests define the contract for stepped workflow schema validation.
5
- * The implementation will extend validateWorkflow() to pass these tests.
6
- *
7
- * Schema extensions:
8
- * - type: 'stepped' | 'phased' (phased is default for backward compat)
9
- * - steps: { path, pattern } (required for stepped workflows)
10
- * - modes: { default, create, validate, edit } (optional tri-modal support)
11
- * - variables: object (optional key-value pairs)
12
- * - gates: { after_steps, gate_marker } (optional gate configuration)
13
- * - template: string (optional output template path)
14
- *
15
- * Run with: npm test
16
- */
17
- import { describe, it } from 'node:test';
18
- import assert from 'node:assert';
19
- import { validateWorkflow } from './workflow-schema.js';
20
- describe('Stepped Workflow Schema (MSSCI-12078)', () => {
21
- describe('AC1: Workflow YAML supports type field (stepped | phased)', () => {
22
- it('should accept type: phased explicitly', () => {
23
- const workflow = {
24
- workflow: {
25
- name: 'explicit-phased',
26
- type: 'phased',
27
- phases: [
28
- { name: 'work', agent: 'dev' }
29
- ]
30
- }
31
- };
32
- const result = validateWorkflow(workflow);
33
- assert.strictEqual(result.valid, true, 'Should accept explicit type: phased');
34
- assert.strictEqual(result.workflow?.type, 'phased');
35
- });
36
- it('should accept type: stepped with required steps config', () => {
37
- const workflow = {
38
- workflow: {
39
- name: 'stepped-workflow',
40
- type: 'stepped',
41
- steps: {
42
- path: './steps/',
43
- pattern: 'step-{nn}-*.md'
44
- },
45
- agent: 'architect'
46
- }
47
- };
48
- const result = validateWorkflow(workflow);
49
- assert.strictEqual(result.valid, true, 'Should accept type: stepped');
50
- assert.strictEqual(result.workflow?.type, 'stepped');
51
- });
52
- it('should default to type: phased when type field is absent', () => {
53
- const workflow = {
54
- workflow: {
55
- name: 'implicit-phased',
56
- phases: [
57
- { name: 'work', agent: 'dev' }
58
- ]
59
- }
60
- };
61
- const result = validateWorkflow(workflow);
62
- assert.strictEqual(result.valid, true, 'Should accept workflow without explicit type');
63
- // Type should default to 'phased' for backward compatibility
64
- assert.strictEqual(result.workflow?.type ?? 'phased', 'phased');
65
- });
66
- it('should reject invalid type value', () => {
67
- const workflow = {
68
- workflow: {
69
- name: 'bad-type',
70
- type: 'invalid-type',
71
- phases: [
72
- { name: 'work', agent: 'dev' }
73
- ]
74
- }
75
- };
76
- const result = validateWorkflow(workflow);
77
- assert.strictEqual(result.valid, false, 'Should reject invalid type');
78
- assert.ok(result.errors?.some(e => e.field?.includes('type')), 'Should report invalid type error');
79
- });
80
- it('should reject type: stepped without steps configuration', () => {
81
- const workflow = {
82
- workflow: {
83
- name: 'stepped-no-steps',
84
- type: 'stepped',
85
- agent: 'architect'
86
- // Missing required 'steps' for stepped workflow
87
- }
88
- };
89
- const result = validateWorkflow(workflow);
90
- assert.strictEqual(result.valid, false, 'Should reject stepped without steps');
91
- assert.ok(result.errors?.some(e => e.message?.includes('steps')), 'Should report missing steps for stepped workflow');
92
- });
93
- it('should reject type: stepped with phases (mutually exclusive)', () => {
94
- const workflow = {
95
- workflow: {
96
- name: 'stepped-with-phases',
97
- type: 'stepped',
98
- steps: {
99
- path: './steps/',
100
- pattern: 'step-{nn}-*.md'
101
- },
102
- phases: [
103
- { name: 'work', agent: 'dev' }
104
- ]
105
- }
106
- };
107
- const result = validateWorkflow(workflow);
108
- assert.strictEqual(result.valid, false, 'Should reject stepped with phases');
109
- assert.ok(result.errors?.some(e => e.message?.includes('phases') || e.message?.includes('mutually exclusive')), 'Should report phases not allowed with stepped');
110
- });
111
- it('should reject type: phased without phases', () => {
112
- const workflow = {
113
- workflow: {
114
- name: 'phased-no-phases',
115
- type: 'phased'
116
- // Missing required 'phases' for phased workflow
117
- }
118
- };
119
- const result = validateWorkflow(workflow);
120
- assert.strictEqual(result.valid, false, 'Should reject phased without phases');
121
- });
122
- });
123
- describe('AC2: Steps configuration validates path and pattern', () => {
124
- it('should accept valid steps configuration', () => {
125
- const workflow = {
126
- workflow: {
127
- name: 'valid-steps',
128
- type: 'stepped',
129
- steps: {
130
- path: './architecture-steps/',
131
- pattern: 'step-{nn}-*.md'
132
- },
133
- agent: 'architect'
134
- }
135
- };
136
- const result = validateWorkflow(workflow);
137
- assert.strictEqual(result.valid, true, 'Should accept valid steps config');
138
- assert.strictEqual(result.workflow?.steps?.path, './architecture-steps/');
139
- assert.strictEqual(result.workflow?.steps?.pattern, 'step-{nn}-*.md');
140
- });
141
- it('should require path in steps configuration', () => {
142
- const workflow = {
143
- workflow: {
144
- name: 'missing-path',
145
- type: 'stepped',
146
- steps: {
147
- pattern: 'step-{nn}-*.md'
148
- // Missing required 'path'
149
- },
150
- agent: 'architect'
151
- }
152
- };
153
- const result = validateWorkflow(workflow);
154
- assert.strictEqual(result.valid, false, 'Should reject steps without path');
155
- assert.ok(result.errors?.some(e => e.field?.includes('steps.path')), 'Should report missing steps.path');
156
- });
157
- it('should require pattern in steps configuration', () => {
158
- const workflow = {
159
- workflow: {
160
- name: 'missing-pattern',
161
- type: 'stepped',
162
- steps: {
163
- path: './steps/'
164
- // Missing required 'pattern'
165
- },
166
- agent: 'architect'
167
- }
168
- };
169
- const result = validateWorkflow(workflow);
170
- assert.strictEqual(result.valid, false, 'Should reject steps without pattern');
171
- assert.ok(result.errors?.some(e => e.field?.includes('steps.pattern')), 'Should report missing steps.pattern');
172
- });
173
- it('should reject non-string path', () => {
174
- const workflow = {
175
- workflow: {
176
- name: 'bad-path-type',
177
- type: 'stepped',
178
- steps: {
179
- path: 123,
180
- pattern: 'step-{nn}-*.md'
181
- },
182
- agent: 'architect'
183
- }
184
- };
185
- const result = validateWorkflow(workflow);
186
- assert.strictEqual(result.valid, false, 'Should reject non-string path');
187
- });
188
- it('should reject non-string pattern', () => {
189
- const workflow = {
190
- workflow: {
191
- name: 'bad-pattern-type',
192
- type: 'stepped',
193
- steps: {
194
- path: './steps/',
195
- pattern: ['step-*.md']
196
- },
197
- agent: 'architect'
198
- }
199
- };
200
- const result = validateWorkflow(workflow);
201
- assert.strictEqual(result.valid, false, 'Should reject non-string pattern');
202
- });
203
- it('should reject empty path string', () => {
204
- const workflow = {
205
- workflow: {
206
- name: 'empty-path',
207
- type: 'stepped',
208
- steps: {
209
- path: '',
210
- pattern: 'step-{nn}-*.md'
211
- },
212
- agent: 'architect'
213
- }
214
- };
215
- const result = validateWorkflow(workflow);
216
- assert.strictEqual(result.valid, false, 'Should reject empty path');
217
- assert.ok(result.errors?.some(e => e.message?.includes('empty')), 'Should report empty path error');
218
- });
219
- it('should reject whitespace-only path string', () => {
220
- const workflow = {
221
- workflow: {
222
- name: 'whitespace-path',
223
- type: 'stepped',
224
- steps: {
225
- path: ' ',
226
- pattern: 'step-{nn}-*.md'
227
- },
228
- agent: 'architect'
229
- }
230
- };
231
- const result = validateWorkflow(workflow);
232
- assert.strictEqual(result.valid, false, 'Should reject whitespace-only path');
233
- });
234
- it('should reject empty pattern string', () => {
235
- const workflow = {
236
- workflow: {
237
- name: 'empty-pattern',
238
- type: 'stepped',
239
- steps: {
240
- path: './steps/',
241
- pattern: ''
242
- },
243
- agent: 'architect'
244
- }
245
- };
246
- const result = validateWorkflow(workflow);
247
- assert.strictEqual(result.valid, false, 'Should reject empty pattern');
248
- assert.ok(result.errors?.some(e => e.message?.includes('empty')), 'Should report empty pattern error');
249
- });
250
- });
251
- describe('AC3: Modes configuration supports tri-modal paths', () => {
252
- it('should accept modes configuration with all paths', () => {
253
- const workflow = {
254
- workflow: {
255
- name: 'trimodal',
256
- type: 'stepped',
257
- steps: {
258
- path: './steps/',
259
- pattern: 'step-{nn}-*.md'
260
- },
261
- modes: {
262
- default: 'create',
263
- create: './steps/',
264
- validate: './steps-v/',
265
- edit: './steps-e/'
266
- },
267
- agent: 'architect'
268
- }
269
- };
270
- const result = validateWorkflow(workflow);
271
- assert.strictEqual(result.valid, true, 'Should accept full modes config');
272
- assert.strictEqual(result.workflow?.modes?.default, 'create');
273
- assert.strictEqual(result.workflow?.modes?.create, './steps/');
274
- assert.strictEqual(result.workflow?.modes?.validate, './steps-v/');
275
- assert.strictEqual(result.workflow?.modes?.edit, './steps-e/');
276
- });
277
- it('should accept modes with only default and create', () => {
278
- const workflow = {
279
- workflow: {
280
- name: 'minimal-modes',
281
- type: 'stepped',
282
- steps: {
283
- path: './steps/',
284
- pattern: 'step-{nn}-*.md'
285
- },
286
- modes: {
287
- default: 'create',
288
- create: './steps/'
289
- },
290
- agent: 'architect'
291
- }
292
- };
293
- const result = validateWorkflow(workflow);
294
- assert.strictEqual(result.valid, true, 'Should accept partial modes config');
295
- });
296
- it('should accept stepped workflow without modes (optional)', () => {
297
- const workflow = {
298
- workflow: {
299
- name: 'no-modes',
300
- type: 'stepped',
301
- steps: {
302
- path: './steps/',
303
- pattern: 'step-{nn}-*.md'
304
- },
305
- agent: 'architect'
306
- }
307
- };
308
- const result = validateWorkflow(workflow);
309
- assert.strictEqual(result.valid, true, 'Should accept stepped without modes');
310
- });
311
- it('should reject invalid default mode value', () => {
312
- const workflow = {
313
- workflow: {
314
- name: 'bad-default-mode',
315
- type: 'stepped',
316
- steps: {
317
- path: './steps/',
318
- pattern: 'step-{nn}-*.md'
319
- },
320
- modes: {
321
- default: 'invalid-mode',
322
- create: './steps/'
323
- },
324
- agent: 'architect'
325
- }
326
- };
327
- const result = validateWorkflow(workflow);
328
- assert.strictEqual(result.valid, false, 'Should reject invalid default mode');
329
- assert.ok(result.errors?.some(e => e.field?.includes('modes.default')), 'Should report invalid modes.default');
330
- });
331
- it('should reject modes on phased workflow', () => {
332
- const workflow = {
333
- workflow: {
334
- name: 'phased-with-modes',
335
- type: 'phased',
336
- phases: [
337
- { name: 'work', agent: 'dev' }
338
- ],
339
- modes: {
340
- default: 'create',
341
- create: './steps/'
342
- }
343
- }
344
- };
345
- const result = validateWorkflow(workflow);
346
- assert.strictEqual(result.valid, false, 'Should reject modes on phased workflow');
347
- assert.ok(result.errors?.some(e => e.message?.includes('modes') && e.message?.includes('stepped')), 'Should report modes only valid for stepped');
348
- });
349
- });
350
- describe('Variables, gates, and template fields', () => {
351
- it('should accept variables object', () => {
352
- const workflow = {
353
- workflow: {
354
- name: 'with-variables',
355
- type: 'stepped',
356
- steps: {
357
- path: './steps/',
358
- pattern: 'step-{nn}-*.md'
359
- },
360
- variables: {
361
- output_file: 'planning-artifacts/architecture.md',
362
- project_name: 'My Project'
363
- },
364
- agent: 'architect'
365
- }
366
- };
367
- const result = validateWorkflow(workflow);
368
- assert.strictEqual(result.valid, true, 'Should accept variables');
369
- assert.deepStrictEqual(result.workflow?.variables, {
370
- output_file: 'planning-artifacts/architecture.md',
371
- project_name: 'My Project'
372
- });
373
- });
374
- it('should accept gates configuration', () => {
375
- const workflow = {
376
- workflow: {
377
- name: 'with-gates',
378
- type: 'stepped',
379
- steps: {
380
- path: './steps/',
381
- pattern: 'step-{nn}-*.md'
382
- },
383
- gates: {
384
- after_steps: [1, 3, 7],
385
- gate_marker: '<!-- GATE -->'
386
- },
387
- agent: 'architect'
388
- }
389
- };
390
- const result = validateWorkflow(workflow);
391
- assert.strictEqual(result.valid, true, 'Should accept gates config');
392
- assert.deepStrictEqual(result.workflow?.gates?.after_steps, [1, 3, 7]);
393
- assert.strictEqual(result.workflow?.gates?.gate_marker, '<!-- GATE -->');
394
- });
395
- it('should accept gates with only after_steps', () => {
396
- const workflow = {
397
- workflow: {
398
- name: 'gates-after-only',
399
- type: 'stepped',
400
- steps: {
401
- path: './steps/',
402
- pattern: 'step-{nn}-*.md'
403
- },
404
- gates: {
405
- after_steps: [2, 5]
406
- },
407
- agent: 'architect'
408
- }
409
- };
410
- const result = validateWorkflow(workflow);
411
- assert.strictEqual(result.valid, true, 'Should accept gates with only after_steps');
412
- });
413
- it('should accept gates with only gate_marker', () => {
414
- const workflow = {
415
- workflow: {
416
- name: 'gates-marker-only',
417
- type: 'stepped',
418
- steps: {
419
- path: './steps/',
420
- pattern: 'step-{nn}-*.md'
421
- },
422
- gates: {
423
- gate_marker: '<!-- USER_GATE -->'
424
- },
425
- agent: 'architect'
426
- }
427
- };
428
- const result = validateWorkflow(workflow);
429
- assert.strictEqual(result.valid, true, 'Should accept gates with only gate_marker');
430
- });
431
- it('should reject non-array after_steps', () => {
432
- const workflow = {
433
- workflow: {
434
- name: 'bad-after-steps',
435
- type: 'stepped',
436
- steps: {
437
- path: './steps/',
438
- pattern: 'step-{nn}-*.md'
439
- },
440
- gates: {
441
- after_steps: 'not-an-array'
442
- },
443
- agent: 'architect'
444
- }
445
- };
446
- const result = validateWorkflow(workflow);
447
- assert.strictEqual(result.valid, false, 'Should reject non-array after_steps');
448
- });
449
- it('should reject non-number values in after_steps', () => {
450
- const workflow = {
451
- workflow: {
452
- name: 'bad-after-steps-values',
453
- type: 'stepped',
454
- steps: {
455
- path: './steps/',
456
- pattern: 'step-{nn}-*.md'
457
- },
458
- gates: {
459
- after_steps: [1, 'two', 3]
460
- },
461
- agent: 'architect'
462
- }
463
- };
464
- const result = validateWorkflow(workflow);
465
- assert.strictEqual(result.valid, false, 'Should reject non-number in after_steps');
466
- });
467
- it('should accept template path', () => {
468
- const workflow = {
469
- workflow: {
470
- name: 'with-template',
471
- type: 'stepped',
472
- steps: {
473
- path: './steps/',
474
- pattern: 'step-{nn}-*.md'
475
- },
476
- template: './templates/architecture-template.md',
477
- agent: 'architect'
478
- }
479
- };
480
- const result = validateWorkflow(workflow);
481
- assert.strictEqual(result.valid, true, 'Should accept template');
482
- assert.strictEqual(result.workflow?.template, './templates/architecture-template.md');
483
- });
484
- it('should reject non-string template', () => {
485
- const workflow = {
486
- workflow: {
487
- name: 'bad-template',
488
- type: 'stepped',
489
- steps: {
490
- path: './steps/',
491
- pattern: 'step-{nn}-*.md'
492
- },
493
- template: { path: './templates/' },
494
- agent: 'architect'
495
- }
496
- };
497
- const result = validateWorkflow(workflow);
498
- assert.strictEqual(result.valid, false, 'Should reject non-string template');
499
- });
500
- });
501
- describe('AC4: Existing phased workflows work unchanged', () => {
502
- it('should validate existing TDD workflow unchanged', () => {
503
- const workflow = {
504
- workflow: {
505
- name: 'tdd',
506
- description: 'Test-driven development with code review',
507
- version: '1.0.0',
508
- phases: [
509
- { name: 'setup', agent: 'sm', output: ['session_file', 'branches'] },
510
- { name: 'red', agent: 'tea', input: ['session_file'], output: ['failing_tests'], gate: { type: 'tests_fail' } },
511
- { name: 'green', agent: 'dev', input: ['failing_tests'], output: ['implementation'], gate: { type: 'tests_pass' } },
512
- { name: 'review', agent: 'reviewer', input: ['implementation'], gate: { type: 'approval' } },
513
- { name: 'finish', agent: 'sm', input: ['approval'] }
514
- ],
515
- triggers: {
516
- types: ['feature', 'enhancement'],
517
- points: { min: 3 },
518
- default: true
519
- }
520
- }
521
- };
522
- const result = validateWorkflow(workflow);
523
- assert.strictEqual(result.valid, true, 'TDD workflow should still validate');
524
- assert.strictEqual(result.workflow?.name, 'tdd');
525
- assert.strictEqual(result.workflow?.phases?.length, 5);
526
- });
527
- it('should validate existing trivial workflow unchanged', () => {
528
- const workflow = {
529
- workflow: {
530
- name: 'trivial',
531
- description: 'Quick fixes without full TDD ceremony',
532
- version: '1.0.0',
533
- phases: [
534
- { name: 'setup', agent: 'sm' },
535
- { name: 'impl', agent: 'dev', gate: { type: 'tests_pass' } },
536
- { name: 'review', agent: 'reviewer', gate: { type: 'approval' } },
537
- { name: 'finish', agent: 'sm' }
538
- ],
539
- triggers: {
540
- types: ['chore', 'fix', 'refactor'],
541
- points: { max: 2 }
542
- }
543
- }
544
- };
545
- const result = validateWorkflow(workflow);
546
- assert.strictEqual(result.valid, true, 'Trivial workflow should still validate');
547
- });
548
- it('should validate minimal phased workflow unchanged', () => {
549
- const workflow = {
550
- workflow: {
551
- name: 'minimal',
552
- phases: [
553
- { name: 'work', agent: 'dev' }
554
- ]
555
- }
556
- };
557
- const result = validateWorkflow(workflow);
558
- assert.strictEqual(result.valid, true, 'Minimal workflow should still validate');
559
- });
560
- });
561
- describe('Complete stepped workflow example', () => {
562
- it('should accept full architecture stepped workflow', () => {
563
- const workflow = {
564
- workflow: {
565
- name: 'architecture',
566
- description: 'Collaborative architectural decision-making workflow',
567
- version: '1.0.0',
568
- type: 'stepped',
569
- agent: 'architect',
570
- steps: {
571
- path: './architecture-steps/',
572
- pattern: 'step-{nn}-*.md'
573
- },
574
- modes: {
575
- default: 'create',
576
- create: './architecture-steps/',
577
- validate: './architecture-steps-v/',
578
- edit: './architecture-steps-e/'
579
- },
580
- variables: {
581
- output_file: 'planning-artifacts/architecture.md',
582
- input_required: ['prd']
583
- },
584
- gates: {
585
- after_steps: [1, 4, 7],
586
- gate_marker: '<!-- GATE -->'
587
- },
588
- template: './templates/architecture-template.md',
589
- triggers: {
590
- tags: ['architecture', 'design'],
591
- types: ['feature']
592
- }
593
- }
594
- };
595
- const result = validateWorkflow(workflow);
596
- assert.strictEqual(result.valid, true, 'Full architecture workflow should validate');
597
- assert.strictEqual(result.workflow?.type, 'stepped');
598
- assert.strictEqual(result.workflow?.name, 'architecture');
599
- assert.strictEqual(result.workflow?.agent, 'architect');
600
- assert.ok(result.workflow?.steps, 'Should have steps');
601
- assert.ok(result.workflow?.modes, 'Should have modes');
602
- assert.ok(result.workflow?.variables, 'Should have variables');
603
- assert.ok(result.workflow?.gates, 'Should have gates');
604
- assert.ok(result.workflow?.template, 'Should have template');
605
- });
606
- });
607
- });
608
- //# sourceMappingURL=workflow-stepped-schema.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workflow-stepped-schema.test.js","sourceRoot":"","sources":["../../src/workflow/workflow-stepped-schema.test.ts"],"names":[],"mappings":"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"}