@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,151 +0,0 @@
1
- /**
2
- * Story 11-2: pnpm Workspace Structure Tests
3
- *
4
- * These tests verify the monorepo workspace structure is correctly configured.
5
- * Tests are designed to FAIL until the workspace conversion is complete.
6
- */
7
- import { describe, it } from 'node:test';
8
- import assert from 'node:assert';
9
- import { existsSync, readFileSync } from 'node:fs';
10
- import { join, dirname } from 'node:path';
11
- import { fileURLToPath } from 'node:url';
12
- import { parse as parseYaml } from 'yaml';
13
- import { execSync } from 'node:child_process';
14
- import { findMonorepoRoot } from './utils/files.js';
15
- const __filename = fileURLToPath(import.meta.url);
16
- const __dirname = dirname(__filename);
17
- // Use shared utility to find monorepo root
18
- const PROJECT_ROOT = findMonorepoRoot(__dirname);
19
- describe('Story 11-2: pnpm Workspace Structure', () => {
20
- describe('AC1: packages/core/src/ contains former src/', () => {
21
- it('should have packages/core directory', () => {
22
- const coreDir = join(PROJECT_ROOT, 'packages', 'core');
23
- assert.ok(existsSync(coreDir), 'packages/core/ directory must exist');
24
- });
25
- it('should have packages/core/src directory', () => {
26
- const coreSrcDir = join(PROJECT_ROOT, 'packages', 'core', 'src');
27
- assert.ok(existsSync(coreSrcDir), 'packages/core/src/ directory must exist');
28
- });
29
- it('should have CLI commands in packages/core/src/cli', () => {
30
- const cliDir = join(PROJECT_ROOT, 'packages', 'core', 'src', 'cli');
31
- assert.ok(existsSync(cliDir), 'packages/core/src/cli/ directory must exist');
32
- });
33
- it('should have packages/core/bin/pennyfarthing.js', () => {
34
- const binFile = join(PROJECT_ROOT, 'packages', 'core', 'bin', 'pennyfarthing.js');
35
- assert.ok(existsSync(binFile), 'packages/core/bin/pennyfarthing.js must exist');
36
- });
37
- it('should have packages/core/package.json', () => {
38
- const packageJson = join(PROJECT_ROOT, 'packages', 'core', 'package.json');
39
- assert.ok(existsSync(packageJson), 'packages/core/package.json must exist');
40
- });
41
- it('should have @pennyfarthing/core as package name', () => {
42
- const packageJsonPath = join(PROJECT_ROOT, 'packages', 'core', 'package.json');
43
- if (!existsSync(packageJsonPath)) {
44
- assert.fail('packages/core/package.json must exist first');
45
- }
46
- const pkg = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
47
- assert.strictEqual(pkg.name, '@pennyfarthing/core', 'Package name must be @pennyfarthing/core');
48
- });
49
- });
50
- describe('AC2: pnpm-workspace.yaml defines packages/*', () => {
51
- it('should have pnpm-workspace.yaml at project root', () => {
52
- const workspaceYaml = join(PROJECT_ROOT, 'pnpm-workspace.yaml');
53
- assert.ok(existsSync(workspaceYaml), 'pnpm-workspace.yaml must exist at project root');
54
- });
55
- it('should define packages/* in workspace', () => {
56
- const workspaceYamlPath = join(PROJECT_ROOT, 'pnpm-workspace.yaml');
57
- if (!existsSync(workspaceYamlPath)) {
58
- assert.fail('pnpm-workspace.yaml must exist first');
59
- }
60
- const content = readFileSync(workspaceYamlPath, 'utf-8');
61
- const workspace = parseYaml(content);
62
- assert.ok(workspace.packages, 'workspace.packages must be defined');
63
- assert.ok(workspace.packages.some((p) => p.includes('packages')), 'workspace.packages must include packages/* or similar');
64
- });
65
- });
66
- describe('AC3: pnpm install works from root', () => {
67
- it('should have pnpm-lock.yaml after install', () => {
68
- // This test assumes pnpm install has been run
69
- // The presence of pnpm-lock.yaml indicates pnpm is the package manager
70
- const lockFile = join(PROJECT_ROOT, 'pnpm-lock.yaml');
71
- assert.ok(existsSync(lockFile), 'pnpm-lock.yaml must exist (run pnpm install first)');
72
- });
73
- });
74
- describe('AC4: pnpm build compiles all packages', () => {
75
- it('should have tsconfig.base.json for shared config', () => {
76
- const tsconfigBase = join(PROJECT_ROOT, 'tsconfig.base.json');
77
- assert.ok(existsSync(tsconfigBase), 'tsconfig.base.json must exist at project root');
78
- });
79
- it('should have packages/core/tsconfig.json', () => {
80
- const tsconfig = join(PROJECT_ROOT, 'packages', 'core', 'tsconfig.json');
81
- assert.ok(existsSync(tsconfig), 'packages/core/tsconfig.json must exist');
82
- });
83
- it('should have packages/core/dist after build', () => {
84
- // This test assumes build has been run
85
- const distDir = join(PROJECT_ROOT, 'packages', 'core', 'dist');
86
- assert.ok(existsSync(distDir), 'packages/core/dist/ must exist (run pnpm build first)');
87
- });
88
- it('should have packages/shared/dist after build', () => {
89
- // packages/shared already exists from Story 11-1
90
- const distDir = join(PROJECT_ROOT, 'packages', 'shared', 'dist');
91
- assert.ok(existsSync(distDir), 'packages/shared/dist/ must exist (run pnpm build first)');
92
- });
93
- });
94
- describe('AC5: pennyfarthing CLI still functional', () => {
95
- it('should have bin entry in packages/core/package.json', () => {
96
- const packageJsonPath = join(PROJECT_ROOT, 'packages', 'core', 'package.json');
97
- if (!existsSync(packageJsonPath)) {
98
- assert.fail('packages/core/package.json must exist first');
99
- }
100
- const pkg = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
101
- assert.ok(pkg.bin, 'packages/core/package.json must have bin field');
102
- assert.ok(pkg.bin.pennyfarthing || pkg.bin === './bin/pennyfarthing.js', 'bin must include pennyfarthing entry');
103
- });
104
- it('should execute pennyfarthing --version without error', () => {
105
- // This test runs the actual CLI
106
- // After workspace conversion, we need to test from packages/core
107
- try {
108
- const binPath = join(PROJECT_ROOT, 'packages', 'core', 'bin', 'pennyfarthing.js');
109
- if (!existsSync(binPath)) {
110
- assert.fail('packages/core/bin/pennyfarthing.js must exist first');
111
- }
112
- const result = execSync(`node "${binPath}" --version`, {
113
- encoding: 'utf-8',
114
- timeout: 10000,
115
- });
116
- assert.ok(result.includes('.'), 'Version output should contain a version number');
117
- }
118
- catch (error) {
119
- assert.fail(`CLI execution failed: ${error.message}`);
120
- }
121
- });
122
- });
123
- describe('AC6: Existing tests pass', () => {
124
- it('should have test files in packages/core/src', () => {
125
- // After move, test files should be in packages/core/src
126
- const testPattern = join(PROJECT_ROOT, 'packages', 'core', 'src');
127
- assert.ok(existsSync(testPattern), 'packages/core/src/ must exist for tests to be found');
128
- });
129
- });
130
- describe('Workspace Dependencies', () => {
131
- it('should have @pennyfarthing/shared in packages/core dependencies', () => {
132
- const packageJsonPath = join(PROJECT_ROOT, 'packages', 'core', 'package.json');
133
- if (!existsSync(packageJsonPath)) {
134
- assert.fail('packages/core/package.json must exist first');
135
- }
136
- const pkg = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
137
- const deps = pkg.dependencies || {};
138
- assert.ok(deps['@pennyfarthing/shared'], 'packages/core should depend on @pennyfarthing/shared');
139
- assert.ok(deps['@pennyfarthing/shared'].includes('workspace'), 'Dependency should use workspace protocol (workspace:*)');
140
- });
141
- });
142
- describe('Root package.json', () => {
143
- it('should be a workspace root (has workspaces config or pnpm-workspace.yaml)', () => {
144
- // In pnpm workspaces, root can have dependencies for npm publishing
145
- // The key indicator is pnpm-workspace.yaml existence, not package.json structure
146
- const workspaceYamlPath = join(PROJECT_ROOT, 'pnpm-workspace.yaml');
147
- assert.ok(existsSync(workspaceYamlPath), 'Root should have pnpm-workspace.yaml (workspace root indicator)');
148
- });
149
- });
150
- });
151
- //# sourceMappingURL=workspace.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"workspace.test.js","sourceRoot":"","sources":["../../src/cli/workspace.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,mBAAmB,EACnB,KAAK,QAAQ,EACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,EACX,SAAS,EACT,WAAW,EACX,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,yBAAyB,EACzB,WAAW,EACX,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAC/B,KAAK,SAAS,EACd,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,EAC1B,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,mBAAmB,EACxB,KAAK,cAAc,GACpB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAEL,gBAAgB,EAChB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,gBAAgB,EACrB,KAAK,wBAAwB,EAC7B,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,EAE7B,gBAAgB,EAChB,oBAAoB,EACpB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EAExB,oBAAoB,EACpB,KAAK,aAAa,EAClB,KAAK,aAAa,EAElB,wBAAwB,EACxB,KAAK,6BAA6B,GACnC,MAAM,qBAAqB,CAAC"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,4CAA4C;AAE5C,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC1E,OAAO,EACL,YAAY,EACZ,aAAa,EACb,cAAc,EACd,mBAAmB,EAEpB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACL,QAAQ,EACR,UAAU,EACV,UAAU,EACV,WAAW,EACX,SAAS,EACT,WAAW,EACX,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAE9B,2CAA2C;AAC3C,OAAO,EACL,yBAAyB,EACzB,WAAW,EAMX,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAEhC,uCAAuC;AACvC,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,0BAA0B,GAY3B,MAAM,kCAAkC,CAAC;AAE1C,0DAA0D;AAC1D,OAAO;AACL,oBAAoB;AACpB,gBAAgB;AAOhB,mBAAmB;AACnB,gBAAgB,EAChB,oBAAoB;AAGpB,4BAA4B;AAC5B,oBAAoB;AAGpB,0CAA0C;AAC1C,wBAAwB,GAEzB,MAAM,qBAAqB,CAAC"}
@@ -1,109 +0,0 @@
1
- /**
2
- * jira-epic-creation.ts - Jira Epic Auto-Creation for Story 47-1
3
- *
4
- * This module provides functions to automatically create Jira epics
5
- * when SM setup detects an epic without a jira field in sprint YAML.
6
- *
7
- * Acceptance Criteria:
8
- * 1. SM setup detects new epic without jira field
9
- * 2. Automatically creates Jira epic with matching title/description
10
- * 3. Updates sprint YAML with new Jira key
11
- * 4. Epic number derived from Jira ticket number
12
- *
13
- * NOTE: This is a stub implementation. Dev will fill in the actual logic.
14
- */
15
- export interface CreateEpicParams {
16
- title: string;
17
- description?: string;
18
- epicNumber?: number;
19
- labels?: string[];
20
- dryRun?: boolean;
21
- _mockResponse?: {
22
- key: string;
23
- url?: string;
24
- };
25
- _mockError?: string;
26
- }
27
- export interface CreateEpicResult {
28
- success: boolean;
29
- jiraKey?: string;
30
- url?: string;
31
- formattedTitle?: string;
32
- labels?: string[];
33
- error?: string;
34
- dryRun?: boolean;
35
- }
36
- export interface EnsureEpicParams {
37
- epic: {
38
- id: string;
39
- title: string;
40
- description?: string;
41
- jira?: string | null;
42
- };
43
- _mockResponse?: {
44
- key: string;
45
- };
46
- }
47
- export interface EnsureEpicResult {
48
- success: boolean;
49
- jiraKey?: string;
50
- created: boolean;
51
- formattedTitle?: string;
52
- description?: string;
53
- error?: string;
54
- }
55
- export interface UpdateYamlParams {
56
- sprintPath: string;
57
- epicId: string;
58
- jiraKey: string;
59
- force?: boolean;
60
- }
61
- export interface UpdateYamlResult {
62
- success: boolean;
63
- error?: string;
64
- }
65
- export interface CheckEpicJiraParams {
66
- storyId: string;
67
- sprintPath: string;
68
- }
69
- export interface CheckEpicJiraResult {
70
- epicNeedsJira: boolean;
71
- epicId?: string;
72
- epicTitle?: string;
73
- }
74
- /**
75
- * Create an epic in Jira with the given title and description.
76
- *
77
- * @param params - Epic creation parameters
78
- * @returns Result with Jira key on success
79
- */
80
- export declare function createEpicInJira(params: CreateEpicParams): Promise<CreateEpicResult>;
81
- /**
82
- * Ensure an epic has a Jira key, creating one if missing.
83
- *
84
- * @param params - Epic to check/create
85
- * @returns Result with Jira key (existing or newly created)
86
- */
87
- export declare function ensureEpicHasJiraKey(params: EnsureEpicParams): Promise<EnsureEpicResult>;
88
- /**
89
- * Extract the numeric portion from a Jira key.
90
- *
91
- * @param jiraKey - Jira key like "MSSCI-11796"
92
- * @returns Numeric portion (11796) or null if invalid
93
- */
94
- export declare function extractEpicNumberFromJiraKey(jiraKey: string): number | null;
95
- /**
96
- * Update sprint YAML to add/update the jira field for an epic.
97
- *
98
- * @param params - Update parameters
99
- * @returns Success/failure result
100
- */
101
- export declare function updateSprintYamlWithJiraKey(params: UpdateYamlParams): Promise<UpdateYamlResult>;
102
- /**
103
- * Check if an epic needs a Jira key during story setup.
104
- *
105
- * @param params - Story and sprint path
106
- * @returns Whether epic needs Jira key and epic details
107
- */
108
- export declare function checkEpicJiraRequired(params: CheckEpicJiraParams): Promise<CheckEpicJiraResult>;
109
- //# sourceMappingURL=jira-epic-creation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jira-epic-creation.d.ts","sourceRoot":"","sources":["../../src/jira/jira-epic-creation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,aAAa,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC;IACF,aAAa,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;CACjC;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAyF1F;AAED;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2C9F;AAED;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAe3E;AAED;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAwDrG;AAED;;;;;GAKG;AACH,wBAAsB,qBAAqB,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAmCrG"}
@@ -1,253 +0,0 @@
1
- /**
2
- * jira-epic-creation.ts - Jira Epic Auto-Creation for Story 47-1
3
- *
4
- * This module provides functions to automatically create Jira epics
5
- * when SM setup detects an epic without a jira field in sprint YAML.
6
- *
7
- * Acceptance Criteria:
8
- * 1. SM setup detects new epic without jira field
9
- * 2. Automatically creates Jira epic with matching title/description
10
- * 3. Updates sprint YAML with new Jira key
11
- * 4. Epic number derived from Jira ticket number
12
- *
13
- * NOTE: This is a stub implementation. Dev will fill in the actual logic.
14
- */
15
- /**
16
- * Create an epic in Jira with the given title and description.
17
- *
18
- * @param params - Epic creation parameters
19
- * @returns Result with Jira key on success
20
- */
21
- export async function createEpicInJira(params) {
22
- const { title, description, epicNumber, labels = ['pennyfarthing'], dryRun, _mockResponse, _mockError } = params;
23
- // Format title with epic number if provided
24
- const formattedTitle = epicNumber ? `Epic ${epicNumber}: ${title}` : title;
25
- // Ensure pennyfarthing label is always included
26
- const finalLabels = labels.includes('pennyfarthing') ? labels : ['pennyfarthing', ...labels];
27
- // Handle mock error for testing
28
- if (_mockError) {
29
- return {
30
- success: false,
31
- error: _mockError,
32
- formattedTitle,
33
- labels: finalLabels
34
- };
35
- }
36
- // Handle dry-run mode
37
- if (dryRun) {
38
- return {
39
- success: true,
40
- dryRun: true,
41
- formattedTitle,
42
- labels: finalLabels
43
- };
44
- }
45
- // Handle mock response for testing
46
- if (_mockResponse) {
47
- return {
48
- success: true,
49
- jiraKey: _mockResponse.key,
50
- url: _mockResponse.url,
51
- formattedTitle,
52
- labels: finalLabels
53
- };
54
- }
55
- // Real Jira CLI invocation
56
- try {
57
- const { execFileSync } = await import('node:child_process');
58
- // Build the jira CLI args as array to prevent command injection
59
- const args = [
60
- 'issue', 'create',
61
- '--project', 'MSSCI',
62
- '--type', 'Epic',
63
- '-s', formattedTitle,
64
- '-b', description || '',
65
- '-y', 'Medium',
66
- '--no-input'
67
- ];
68
- // Add label args (each -l with its value as separate args)
69
- for (const label of finalLabels) {
70
- args.push('-l', label);
71
- }
72
- const output = execFileSync('jira', args, { encoding: 'utf-8' });
73
- // Parse the Jira key from output (format: "OK Issue MSSCI-12345 created")
74
- const keyMatch = output.match(/([A-Z]+-\d+)/);
75
- if (!keyMatch) {
76
- return {
77
- success: false,
78
- error: `Could not parse Jira key from output: ${output}`,
79
- formattedTitle,
80
- labels: finalLabels
81
- };
82
- }
83
- const jiraKey = keyMatch[1];
84
- return {
85
- success: true,
86
- jiraKey,
87
- url: `https://1898andco.atlassian.net/browse/${jiraKey}`,
88
- formattedTitle,
89
- labels: finalLabels
90
- };
91
- }
92
- catch (error) {
93
- return {
94
- success: false,
95
- error: error instanceof Error ? error.message : String(error),
96
- formattedTitle,
97
- labels: finalLabels
98
- };
99
- }
100
- }
101
- /**
102
- * Ensure an epic has a Jira key, creating one if missing.
103
- *
104
- * @param params - Epic to check/create
105
- * @returns Result with Jira key (existing or newly created)
106
- */
107
- export async function ensureEpicHasJiraKey(params) {
108
- const { epic, _mockResponse } = params;
109
- // Check if epic already has a valid jira key
110
- if (epic.jira && epic.jira.trim() !== '') {
111
- return {
112
- success: true,
113
- jiraKey: epic.jira,
114
- created: false
115
- };
116
- }
117
- // Extract epic number from ID (e.g., "epic-47" -> 47)
118
- const epicNumberMatch = epic.id.match(/(\d+)/);
119
- const epicNumber = epicNumberMatch ? parseInt(epicNumberMatch[1], 10) : undefined;
120
- // Format the title with epic number
121
- const formattedTitle = epicNumber ? `Epic ${epicNumber}: ${epic.title}` : epic.title;
122
- // Create epic in Jira
123
- const createResult = await createEpicInJira({
124
- title: epic.title,
125
- description: epic.description,
126
- epicNumber,
127
- labels: ['pennyfarthing'],
128
- _mockResponse
129
- });
130
- if (!createResult.success) {
131
- return {
132
- success: false,
133
- created: false,
134
- error: createResult.error
135
- };
136
- }
137
- return {
138
- success: true,
139
- jiraKey: createResult.jiraKey,
140
- created: true,
141
- formattedTitle,
142
- description: epic.description
143
- };
144
- }
145
- /**
146
- * Extract the numeric portion from a Jira key.
147
- *
148
- * @param jiraKey - Jira key like "MSSCI-11796"
149
- * @returns Numeric portion (11796) or null if invalid
150
- */
151
- export function extractEpicNumberFromJiraKey(jiraKey) {
152
- if (!jiraKey || typeof jiraKey !== 'string') {
153
- return null;
154
- }
155
- // Trim whitespace before matching to handle trailing newlines etc.
156
- const trimmed = jiraKey.trim();
157
- // Match pattern: PROJECT-NUMBER (e.g., MSSCI-11796, TEST-123)
158
- const match = trimmed.match(/^[A-Z]+-(\d+)$/);
159
- if (!match) {
160
- return null;
161
- }
162
- return parseInt(match[1], 10);
163
- }
164
- /**
165
- * Update sprint YAML to add/update the jira field for an epic.
166
- *
167
- * @param params - Update parameters
168
- * @returns Success/failure result
169
- */
170
- export async function updateSprintYamlWithJiraKey(params) {
171
- const { sprintPath, epicId, jiraKey, force } = params;
172
- const { readFileSync, writeFileSync, renameSync } = await import('node:fs');
173
- const { parse, stringify } = await import('yaml');
174
- const { join, dirname } = await import('node:path');
175
- try {
176
- const content = readFileSync(sprintPath, 'utf-8');
177
- const sprint = parse(content);
178
- // Normalize epic ID for comparison (handle both "epic-47" and "47")
179
- const normalizedEpicId = epicId.replace('epic-', '');
180
- // Find the epic
181
- let epicFound = false;
182
- for (const epic of sprint.epics || []) {
183
- const currentEpicId = String(epic.id).replace('epic-', '');
184
- if (currentEpicId === normalizedEpicId) {
185
- epicFound = true;
186
- // Check if epic already has jira key
187
- if (epic.jira && !force) {
188
- return {
189
- success: false,
190
- error: `Epic ${epicId} already has jira key: ${epic.jira}`
191
- };
192
- }
193
- // Add/update the jira field
194
- epic.jira = jiraKey;
195
- break;
196
- }
197
- }
198
- if (!epicFound) {
199
- return {
200
- success: false,
201
- error: `Epic ${epicId} not found in sprint YAML`
202
- };
203
- }
204
- // Atomic write: write to temp file, then rename
205
- const updatedContent = stringify(sprint, { lineWidth: 0 });
206
- const tempPath = join(dirname(sprintPath), `.sprint-yaml-${Date.now()}.tmp`);
207
- writeFileSync(tempPath, updatedContent);
208
- renameSync(tempPath, sprintPath);
209
- return { success: true };
210
- }
211
- catch (error) {
212
- return {
213
- success: false,
214
- error: error instanceof Error ? error.message : String(error)
215
- };
216
- }
217
- }
218
- /**
219
- * Check if an epic needs a Jira key during story setup.
220
- *
221
- * @param params - Story and sprint path
222
- * @returns Whether epic needs Jira key and epic details
223
- */
224
- export async function checkEpicJiraRequired(params) {
225
- const { storyId, sprintPath } = params;
226
- // Read and parse sprint YAML
227
- const { readFileSync } = await import('node:fs');
228
- const { parse } = await import('yaml');
229
- const content = readFileSync(sprintPath, 'utf-8');
230
- const sprint = parse(content);
231
- // Extract epic number from story ID (e.g., "48-1" -> "48")
232
- const epicNumber = storyId.split('-')[0];
233
- // Find the epic containing this story
234
- for (const epic of sprint.epics || []) {
235
- const epicId = String(epic.id);
236
- // Match "epic-48" or "48"
237
- const epicNum = epicId.replace('epic-', '');
238
- if (epicNum === epicNumber) {
239
- // Check if epic has jira field
240
- const hasJira = epic.jira && epic.jira.trim() !== '';
241
- return {
242
- epicNeedsJira: !hasJira,
243
- epicId: epicId,
244
- epicTitle: epic.title
245
- };
246
- }
247
- }
248
- // Epic not found - shouldn't happen but return safe default
249
- return {
250
- epicNeedsJira: false
251
- };
252
- }
253
- //# sourceMappingURL=jira-epic-creation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jira-epic-creation.js","sourceRoot":"","sources":["../../src/jira/jira-epic-creation.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- /**
2
- * Tests for Story 47-1: Auto-create Jira epic on local epic creation
3
- *
4
- * These tests define the contract for automatically creating Jira epics
5
- * when SM setup detects an epic without a jira field in sprint YAML.
6
- *
7
- * Acceptance Criteria:
8
- * 1. SM setup detects new epic without jira field
9
- * 2. Automatically creates Jira epic with matching title/description
10
- * 3. Updates sprint YAML with new Jira key
11
- * 4. Epic number derived from Jira ticket number
12
- *
13
- * Run with: npm test
14
- */
15
- export {};
16
- //# sourceMappingURL=jira-epic-creation.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"jira-epic-creation.test.d.ts","sourceRoot":"","sources":["../../src/jira/jira-epic-creation.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG"}