@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,670 +0,0 @@
1
- /**
2
- * Jira Sprint Sync Functions
3
- *
4
- * Story 47-2: Sync sprint numbers with Jira sprint IDs
5
- *
6
- * These functions enable bidirectional sprint tracking between
7
- * Pennyfarthing's local sprint YAML and Jira's sprint system.
8
- */
9
- import { readFileSync, writeFileSync, existsSync } from 'node:fs';
10
- import { parse, stringify } from 'yaml';
11
- /**
12
- * Add or update jira_sprint_id field in sprint YAML
13
- */
14
- export async function addJiraSprintIdToYaml(options) {
15
- const { sprintPath, jiraSprintId, force = true } = options;
16
- // Check if file exists
17
- if (!existsSync(sprintPath)) {
18
- return {
19
- success: false,
20
- error: `Sprint file not found: ${sprintPath}`
21
- };
22
- }
23
- try {
24
- const content = readFileSync(sprintPath, 'utf-8');
25
- const yaml = parse(content);
26
- // Check for existing jira_sprint_id
27
- if (yaml.sprint?.jira_sprint_id !== undefined && !force) {
28
- return {
29
- success: false,
30
- error: `Sprint already has jira_sprint_id: ${yaml.sprint.jira_sprint_id}`,
31
- previousId: yaml.sprint.jira_sprint_id
32
- };
33
- }
34
- const previousId = yaml.sprint?.jira_sprint_id;
35
- // Update the YAML
36
- if (yaml.sprint) {
37
- yaml.sprint.jira_sprint_id = jiraSprintId;
38
- }
39
- // Write back, preserving order by inserting after 'number'
40
- const updatedContent = stringify(yaml, {
41
- lineWidth: 0,
42
- singleQuote: false
43
- });
44
- writeFileSync(sprintPath, updatedContent);
45
- return {
46
- success: true,
47
- previousId
48
- };
49
- }
50
- catch (err) {
51
- return {
52
- success: false,
53
- error: `Failed to update sprint YAML: ${err.message}`
54
- };
55
- }
56
- }
57
- /**
58
- * Get sprint details from Jira
59
- */
60
- export async function getJiraSprintInfo(options) {
61
- const { sprintId, _mockResponse, _mockError } = options;
62
- // Handle mock error
63
- if (_mockError) {
64
- return {
65
- success: false,
66
- error: _mockError
67
- };
68
- }
69
- // Handle mock response
70
- if (_mockResponse !== undefined) {
71
- if (_mockResponse === null) {
72
- return {
73
- success: false,
74
- error: `Sprint ${sprintId} not found`
75
- };
76
- }
77
- return {
78
- success: true,
79
- sprint: _mockResponse
80
- };
81
- }
82
- // Real implementation would call Jira CLI
83
- // jira sprint view {sprintId}
84
- return {
85
- success: false,
86
- error: 'Real Jira API not yet implemented - use _mockResponse for testing'
87
- };
88
- }
89
- /**
90
- * Get all issues in a Jira sprint
91
- */
92
- export async function getSprintIssues(options) {
93
- const { _mockResponse, _mockError } = options;
94
- // Handle mock error
95
- if (_mockError) {
96
- return {
97
- success: false,
98
- error: _mockError
99
- };
100
- }
101
- // Handle mock response
102
- if (_mockResponse !== undefined) {
103
- return {
104
- success: true,
105
- issues: _mockResponse
106
- };
107
- }
108
- // Real implementation would call Jira CLI
109
- // jira issue list --jql "sprint = {sprintId}"
110
- return {
111
- success: false,
112
- error: 'Real Jira API not yet implemented - use _mockResponse for testing'
113
- };
114
- }
115
- /**
116
- * Check if a specific story is in a Jira sprint
117
- */
118
- export async function isStoryInJiraSprint(options) {
119
- const { _mockResponse, _mockError } = options;
120
- // Handle mock error
121
- if (_mockError) {
122
- return {
123
- success: false,
124
- error: _mockError
125
- };
126
- }
127
- // Handle mock response
128
- if (_mockResponse !== undefined) {
129
- return {
130
- success: true,
131
- inSprint: _mockResponse
132
- };
133
- }
134
- // Real implementation would call Jira CLI
135
- // jira issue view {jiraKey} and check sprint field
136
- return {
137
- success: false,
138
- error: 'Real Jira API not yet implemented - use _mockResponse for testing'
139
- };
140
- }
141
- /**
142
- * Get velocity metrics from Jira sprint
143
- */
144
- export async function getSprintVelocityFromJira(options) {
145
- const { _mockResponse, _mockError } = options;
146
- // Handle mock error
147
- if (_mockError) {
148
- return {
149
- success: false,
150
- error: _mockError
151
- };
152
- }
153
- // Handle mock response
154
- if (_mockResponse !== undefined) {
155
- // Calculate velocity percentage if not provided
156
- const metrics = { ..._mockResponse };
157
- if (metrics.velocityPercentage === undefined) {
158
- if (metrics.totalPoints === 0) {
159
- metrics.velocityPercentage = 0;
160
- }
161
- else {
162
- metrics.velocityPercentage = Math.round((metrics.completedPoints / metrics.totalPoints) * 100);
163
- }
164
- }
165
- return {
166
- success: true,
167
- metrics
168
- };
169
- }
170
- // Real implementation would call Jira CLI
171
- // jira issue list --jql "sprint = {sprintId}" and aggregate points
172
- return {
173
- success: false,
174
- error: 'Real Jira API not yet implemented - use _mockResponse for testing'
175
- };
176
- }
177
- /**
178
- * Validate that local sprint name matches Jira sprint name
179
- */
180
- export async function validateSprintAlignment(options) {
181
- const { sprintPath, _mockJiraSprint, _mockError } = options;
182
- // Handle mock error
183
- if (_mockError) {
184
- return {
185
- success: false,
186
- error: _mockError
187
- };
188
- }
189
- // Read local sprint YAML
190
- if (!existsSync(sprintPath)) {
191
- return {
192
- success: false,
193
- error: `Sprint file not found: ${sprintPath}`
194
- };
195
- }
196
- try {
197
- const content = readFileSync(sprintPath, 'utf-8');
198
- const yaml = parse(content);
199
- const localSprintName = yaml.sprint?.jira_sprint_name || yaml.sprint?.name;
200
- const jiraSprintId = yaml.sprint?.jira_sprint_id;
201
- const localStatus = yaml.sprint?.status;
202
- // Check if jira_sprint_id is configured
203
- if (jiraSprintId === undefined) {
204
- return {
205
- success: false,
206
- error: 'Sprint jira_sprint_id not configured',
207
- localSprintName
208
- };
209
- }
210
- // Get Jira sprint info (mock or real)
211
- let jiraSprint = null;
212
- if (_mockJiraSprint !== undefined) {
213
- jiraSprint = _mockJiraSprint;
214
- }
215
- else {
216
- // Would call real API
217
- return {
218
- success: false,
219
- error: 'Real Jira API not yet implemented - use _mockJiraSprint for testing'
220
- };
221
- }
222
- if (!jiraSprint) {
223
- return {
224
- success: false,
225
- error: `Jira sprint ${jiraSprintId} not found`,
226
- localSprintName,
227
- jiraSprintId
228
- };
229
- }
230
- // Check for state mismatch (local active but Jira closed)
231
- if (localStatus === 'active' && jiraSprint.state === 'closed') {
232
- return {
233
- success: true,
234
- aligned: false,
235
- localSprintName,
236
- jiraSprintId,
237
- jiraSprintName: jiraSprint.name,
238
- warning: `Sprint mismatch: local is active but Jira sprint is closed`
239
- };
240
- }
241
- // Check for name mismatch
242
- if (localSprintName && jiraSprint.name !== localSprintName) {
243
- return {
244
- success: true,
245
- aligned: false,
246
- localSprintName,
247
- jiraSprintId,
248
- jiraSprintName: jiraSprint.name,
249
- warning: `Sprint name mismatch: local is "${localSprintName}", Jira is "${jiraSprint.name}"`
250
- };
251
- }
252
- // All checks passed - aligned
253
- return {
254
- success: true,
255
- aligned: true,
256
- localSprintName,
257
- jiraSprintId,
258
- jiraSprintName: jiraSprint.name
259
- };
260
- }
261
- catch (err) {
262
- return {
263
- success: false,
264
- error: `Failed to read sprint YAML: ${err.message}`
265
- };
266
- }
267
- }
268
- // ============================================
269
- // AC1 + AC2: Extract story IDs from sprint YAML
270
- // ============================================
271
- /**
272
- * Extract all story IDs from sprint YAML file
273
- */
274
- export async function getYamlStoryIds(options) {
275
- const { sprintPath } = options;
276
- if (!existsSync(sprintPath)) {
277
- return {
278
- success: false,
279
- error: `Sprint file not found: ${sprintPath}`
280
- };
281
- }
282
- try {
283
- const content = readFileSync(sprintPath, 'utf-8');
284
- const yaml = parse(content);
285
- const storyIds = [];
286
- if (yaml.epics) {
287
- for (const epic of yaml.epics) {
288
- if (epic.stories) {
289
- for (const story of epic.stories) {
290
- if (story.id) {
291
- storyIds.push(String(story.id));
292
- }
293
- }
294
- }
295
- }
296
- }
297
- return {
298
- success: true,
299
- storyIds
300
- };
301
- }
302
- catch (err) {
303
- return {
304
- success: false,
305
- error: `Failed to parse sprint YAML: ${err.message}`
306
- };
307
- }
308
- }
309
- // ============================================
310
- // AC2: Compare Jira issues with YAML stories
311
- // ============================================
312
- /**
313
- * Extract story ID from Jira summary
314
- * Handles formats like "47-1: Title", "Story 47-1: Title", etc.
315
- */
316
- function extractStoryIdFromSummary(summary) {
317
- // Match patterns like "47-1:", "Story 47-1:", "31-5:" etc.
318
- const match = summary.match(/(?:Story\s+)?(\d+-\d+):/i);
319
- return match ? match[1] : null;
320
- }
321
- /**
322
- * Find stories that are in Jira but not in the sprint YAML
323
- */
324
- export async function findJiraOnlyStories(options) {
325
- const { jiraIssues, yamlStoryIds, filterLabel } = options;
326
- const missingStories = [];
327
- for (const issue of jiraIssues) {
328
- // Filter by label if provided
329
- if (filterLabel && (!issue.labels || !issue.labels.includes(filterLabel))) {
330
- continue;
331
- }
332
- // Extract story ID from summary
333
- const storyId = extractStoryIdFromSummary(issue.summary);
334
- if (!storyId) {
335
- continue;
336
- }
337
- // Check if this story is missing from YAML
338
- if (!yamlStoryIds.includes(storyId)) {
339
- missingStories.push({
340
- ...issue,
341
- storyId
342
- });
343
- }
344
- }
345
- return {
346
- success: true,
347
- missingStories
348
- };
349
- }
350
- // ============================================
351
- // AC3: Format report of missing stories
352
- // ============================================
353
- /**
354
- * Generate a human-readable report of missing stories
355
- */
356
- export async function formatMissingStoriesReport(options) {
357
- const { missingStories, jiraBaseUrl } = options;
358
- if (missingStories.length === 0) {
359
- return {
360
- success: true,
361
- report: '✓ All synced - 0 stories missing from sprint YAML'
362
- };
363
- }
364
- const lines = [];
365
- lines.push(`Found ${missingStories.length} stories in Jira but not in sprint YAML:\n`);
366
- for (const story of missingStories) {
367
- const title = story.summary.replace(/^\d+-\d+:\s*/, '').replace(/^Story\s+\d+-\d+:\s*/i, '');
368
- let line = ` - ${story.storyId}: ${title}`;
369
- line += ` [${story.key}]`;
370
- line += ` (${story.status})`;
371
- if (jiraBaseUrl) {
372
- line += `\n ${jiraBaseUrl}/browse/${story.key}`;
373
- }
374
- lines.push(line);
375
- }
376
- return {
377
- success: true,
378
- report: lines.join('\n')
379
- };
380
- }
381
- // ============================================
382
- // AC4: Import missing stories to YAML
383
- // ============================================
384
- /**
385
- * Map Jira status to YAML status
386
- */
387
- function mapJiraStatusToYaml(jiraStatus) {
388
- const normalized = jiraStatus.toLowerCase();
389
- if (normalized === 'done') {
390
- return 'done';
391
- }
392
- if (normalized === 'in progress') {
393
- return 'in_progress';
394
- }
395
- // To Do, Open, Backlog, etc. → backlog
396
- return 'backlog';
397
- }
398
- /**
399
- * Import missing stories from Jira into sprint YAML
400
- */
401
- export async function importMissingStoriesToYaml(options) {
402
- const { sprintPath, missingStories, targetEpicId, dryRun = false } = options;
403
- if (!existsSync(sprintPath)) {
404
- return {
405
- success: false,
406
- error: `Sprint file not found: ${sprintPath}`
407
- };
408
- }
409
- try {
410
- const content = readFileSync(sprintPath, 'utf-8');
411
- const yaml = parse(content);
412
- // Find target epic
413
- const targetEpic = yaml.epics?.find(e => e.id === targetEpicId);
414
- if (!targetEpic) {
415
- return {
416
- success: false,
417
- error: `Target epic '${targetEpicId}' not found in sprint YAML`
418
- };
419
- }
420
- // Dry run: just return what would be imported
421
- if (dryRun) {
422
- return {
423
- success: true,
424
- importedCount: missingStories.length,
425
- wouldImport: missingStories
426
- };
427
- }
428
- // Ensure stories array exists
429
- if (!targetEpic.stories) {
430
- targetEpic.stories = [];
431
- }
432
- // Add missing stories
433
- for (const story of missingStories) {
434
- const title = story.summary.replace(/^\d+-\d+:\s*/, '').replace(/^Story\s+\d+-\d+:\s*/i, '');
435
- targetEpic.stories.push({
436
- id: story.storyId,
437
- title,
438
- status: mapJiraStatusToYaml(story.status),
439
- jira: story.key,
440
- ...(story.points !== undefined && { points: story.points })
441
- });
442
- }
443
- // Write back
444
- const updatedContent = stringify(yaml, {
445
- lineWidth: 0,
446
- singleQuote: false
447
- });
448
- writeFileSync(sprintPath, updatedContent);
449
- return {
450
- success: true,
451
- importedCount: missingStories.length
452
- };
453
- }
454
- catch (err) {
455
- return {
456
- success: false,
457
- error: `Failed to update sprint YAML: ${err.message}`
458
- };
459
- }
460
- }
461
- /**
462
- * Sync story sprint membership between YAML and Jira
463
- *
464
- * Direction: Jira → YAML
465
- * - Stories in Jira sprint get in_sprint: true
466
- * - Stories not in Jira sprint get in_sprint: false
467
- */
468
- export async function syncStorySprintMembershipFromJira(options) {
469
- const { sprintPath, jiraSprintId: _jiraSprintId, _mockJiraIssues, _mockError } = options;
470
- if (_mockError) {
471
- return { success: false, error: _mockError };
472
- }
473
- if (!existsSync(sprintPath)) {
474
- return { success: false, error: `Sprint file not found: ${sprintPath}` };
475
- }
476
- try {
477
- const content = readFileSync(sprintPath, 'utf-8');
478
- const yaml = parse(content);
479
- // Get issues in Jira sprint
480
- let jiraIssueKeys;
481
- if (_mockJiraIssues !== undefined) {
482
- jiraIssueKeys = new Set(_mockJiraIssues.map(i => i.key));
483
- }
484
- else {
485
- // Real implementation would call: jira sprint list {sprintId} --plain
486
- return {
487
- success: false,
488
- error: 'Real Jira API not yet implemented - use _mockJiraIssues for testing'
489
- };
490
- }
491
- const added = [];
492
- const removed = [];
493
- let unchanged = 0;
494
- // Update in_sprint for each story
495
- if (yaml.epics) {
496
- for (const epic of yaml.epics) {
497
- if (epic.stories) {
498
- for (const story of epic.stories) {
499
- const jiraKey = story.jira || story.id;
500
- const inJiraSprint = jiraIssueKeys.has(jiraKey);
501
- const wasInSprint = story.in_sprint === true;
502
- if (inJiraSprint && !wasInSprint) {
503
- story.in_sprint = true;
504
- added.push(jiraKey);
505
- }
506
- else if (!inJiraSprint && wasInSprint) {
507
- story.in_sprint = false;
508
- removed.push(jiraKey);
509
- }
510
- else {
511
- unchanged++;
512
- }
513
- }
514
- }
515
- }
516
- }
517
- // Write back if changes were made
518
- if (added.length > 0 || removed.length > 0) {
519
- const updatedContent = stringify(yaml, {
520
- lineWidth: 0,
521
- singleQuote: false
522
- });
523
- writeFileSync(sprintPath, updatedContent);
524
- }
525
- return {
526
- success: true,
527
- updated: added.length + removed.length,
528
- added,
529
- removed,
530
- unchanged
531
- };
532
- }
533
- catch (err) {
534
- return {
535
- success: false,
536
- error: `Failed to sync sprint membership: ${err.message}`
537
- };
538
- }
539
- }
540
- /**
541
- * Add a story to a Jira sprint
542
- *
543
- * Direction: YAML → Jira
544
- * Uses: jira sprint add {sprintId} {jiraKey}
545
- */
546
- export async function addStoryToJiraSprint(options) {
547
- const { jiraKey: _jiraKey, sprintId: _sprintId, _mockSuccess, _mockError } = options;
548
- if (_mockError) {
549
- return { success: false, error: _mockError };
550
- }
551
- if (_mockSuccess !== undefined) {
552
- return { success: _mockSuccess, added: _mockSuccess };
553
- }
554
- // Real implementation would call: jira sprint add {sprintId} {jiraKey}
555
- return {
556
- success: false,
557
- error: 'Real Jira API not yet implemented - use _mockSuccess for testing'
558
- };
559
- }
560
- /**
561
- * Remove a story from its current Jira sprint (move to backlog)
562
- *
563
- * Direction: YAML → Jira
564
- * Uses: jira issue edit {jiraKey} --sprint "" or move to backlog
565
- */
566
- export async function removeStoryFromJiraSprint(options) {
567
- const { jiraKey: _jiraKey, _mockSuccess, _mockError } = options;
568
- if (_mockError) {
569
- return { success: false, error: _mockError };
570
- }
571
- if (_mockSuccess !== undefined) {
572
- return { success: _mockSuccess, removed: _mockSuccess };
573
- }
574
- // Real implementation would move story to backlog
575
- return {
576
- success: false,
577
- error: 'Real Jira API not yet implemented - use _mockSuccess for testing'
578
- };
579
- }
580
- /**
581
- * Sync story sprint membership from YAML to Jira
582
- *
583
- * Direction: YAML → Jira
584
- * - Stories with in_sprint: true are added to Jira sprint
585
- * - Stories with in_sprint: false are removed from Jira sprint
586
- */
587
- export async function syncStorySprintMembershipToJira(options) {
588
- const { sprintPath, jiraSprintId, dryRun = false, _mockAddSuccess, _mockRemoveSuccess, _mockError } = options;
589
- if (_mockError) {
590
- return { success: false, error: _mockError };
591
- }
592
- if (!existsSync(sprintPath)) {
593
- return { success: false, error: `Sprint file not found: ${sprintPath}` };
594
- }
595
- try {
596
- const content = readFileSync(sprintPath, 'utf-8');
597
- const yaml = parse(content);
598
- const toAdd = [];
599
- const toRemove = [];
600
- // Collect stories that need sprint membership changes
601
- if (yaml.epics) {
602
- for (const epic of yaml.epics) {
603
- if (epic.stories) {
604
- for (const story of epic.stories) {
605
- const jiraKey = story.jira || story.id;
606
- // Only process stories with explicit in_sprint field
607
- if (story.in_sprint === true) {
608
- toAdd.push(jiraKey);
609
- }
610
- else if (story.in_sprint === false) {
611
- toRemove.push(jiraKey);
612
- }
613
- }
614
- }
615
- }
616
- }
617
- // Dry run: just return what would be done
618
- if (dryRun) {
619
- return {
620
- success: true,
621
- toAdd,
622
- toRemove
623
- };
624
- }
625
- // Execute changes
626
- const added = [];
627
- const removed = [];
628
- const failed = [];
629
- for (const jiraKey of toAdd) {
630
- const result = await addStoryToJiraSprint({
631
- jiraKey,
632
- sprintId: jiraSprintId,
633
- _mockSuccess: _mockAddSuccess
634
- });
635
- if (result.success) {
636
- added.push(jiraKey);
637
- }
638
- else {
639
- failed.push(jiraKey);
640
- }
641
- }
642
- for (const jiraKey of toRemove) {
643
- const result = await removeStoryFromJiraSprint({
644
- jiraKey,
645
- _mockSuccess: _mockRemoveSuccess
646
- });
647
- if (result.success) {
648
- removed.push(jiraKey);
649
- }
650
- else {
651
- failed.push(jiraKey);
652
- }
653
- }
654
- return {
655
- success: failed.length === 0,
656
- toAdd,
657
- toRemove,
658
- added,
659
- removed,
660
- failed: failed.length > 0 ? failed : undefined
661
- };
662
- }
663
- catch (err) {
664
- return {
665
- success: false,
666
- error: `Failed to sync sprint membership to Jira: ${err.message}`
667
- };
668
- }
669
- }
670
- //# sourceMappingURL=jira-sprint-sync.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jira-sprint-sync.js","sourceRoot":"","sources":["../../src/jira/jira-sprint-sync.ts"],"names":[],"mappings":"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"}