@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,369 +0,0 @@
1
- /**
2
- * BMAD Project Context Reader - Story 32-4
3
- *
4
- * Parses BMAD project-context.md files and extracts technology stack,
5
- * implementation rules, and AI agent guidance for Pennyfarthing integration.
6
- */
7
- /**
8
- * Extract sections from markdown content by splitting on ## headers.
9
- */
10
- function extractSections(content) {
11
- // Normalize line endings
12
- const normalized = content.replace(/\r\n/g, '\n');
13
- const sections = [];
14
- // Split on ## headers, keeping the header
15
- const parts = normalized.split(/^##(?!#)\s*/m);
16
- for (const part of parts) {
17
- if (!part.trim())
18
- continue;
19
- // First line is the header name, rest is content
20
- const lines = part.split('\n');
21
- const headerLine = lines[0].trim();
22
- const sectionContent = lines.slice(1).join('\n').trim();
23
- // Skip if this is the H1 title (starts with # Project Context or similar)
24
- if (headerLine.startsWith('# '))
25
- continue;
26
- sections.push({
27
- name: headerLine,
28
- content: sectionContent,
29
- });
30
- }
31
- return sections;
32
- }
33
- /**
34
- * Find a section by name (case-insensitive, handles variations with extra spaces).
35
- */
36
- function findSection(sections, name) {
37
- const normalizedName = name.toLowerCase().trim();
38
- return sections.find(s => s.name.toLowerCase().trim() === normalizedName);
39
- }
40
- // =============================================================================
41
- // Technology Stack parsing
42
- // =============================================================================
43
- /**
44
- * Extract subsections (### headers) from a section's content.
45
- */
46
- function extractSubsections(content) {
47
- const subsections = new Map();
48
- const parts = content.split(/^###\s*/m);
49
- for (const part of parts) {
50
- if (!part.trim())
51
- continue;
52
- const lines = part.split('\n');
53
- const headerLine = lines[0].trim();
54
- const subsectionContent = lines.slice(1).join('\n').trim();
55
- // Skip if there's no header
56
- if (!headerLine)
57
- continue;
58
- subsections.set(headerLine.toLowerCase(), subsectionContent);
59
- }
60
- return subsections;
61
- }
62
- /**
63
- * Parse a technology field from a line like "- **Framework:** React" or "- Framework: React"
64
- */
65
- function parseTechField(content, fieldName) {
66
- // Try with bold markers first: - **Field:** Value
67
- const boldPattern = new RegExp(`^-\\s*\\*\\*${fieldName}:\\*\\*\\s*(.+)$`, 'im');
68
- let match = content.match(boldPattern);
69
- if (match) {
70
- return match[1].trim();
71
- }
72
- // Try without bold markers: - Field: Value
73
- const plainPattern = new RegExp(`^-\\s*${fieldName}:\\s*(.+)$`, 'im');
74
- match = content.match(plainPattern);
75
- if (match) {
76
- return match[1].trim();
77
- }
78
- return undefined;
79
- }
80
- /**
81
- * Parse the Technology Stack section.
82
- */
83
- function parseTechnologyStack(content) {
84
- const stack = {};
85
- const subsections = extractSubsections(content);
86
- // Parse Frontend
87
- const frontendContent = subsections.get('frontend');
88
- if (frontendContent) {
89
- stack.frontend = {
90
- framework: parseTechField(frontendContent, 'Framework'),
91
- language: parseTechField(frontendContent, 'Language'),
92
- stateManagement: parseTechField(frontendContent, 'State Management'),
93
- styling: parseTechField(frontendContent, 'Styling'),
94
- buildTool: parseTechField(frontendContent, 'Build Tool'),
95
- };
96
- // Clean up undefined fields
97
- if (!stack.frontend.framework && !stack.frontend.language &&
98
- !stack.frontend.stateManagement && !stack.frontend.styling &&
99
- !stack.frontend.buildTool) {
100
- delete stack.frontend;
101
- }
102
- }
103
- // Parse Backend
104
- const backendContent = subsections.get('backend');
105
- if (backendContent) {
106
- stack.backend = {
107
- language: parseTechField(backendContent, 'Language'),
108
- framework: parseTechField(backendContent, 'Framework'),
109
- database: parseTechField(backendContent, 'Database'),
110
- cache: parseTechField(backendContent, 'Cache'),
111
- apiStyle: parseTechField(backendContent, 'API Style'),
112
- };
113
- // Clean up undefined fields
114
- if (!stack.backend.language && !stack.backend.framework &&
115
- !stack.backend.database && !stack.backend.cache &&
116
- !stack.backend.apiStyle) {
117
- delete stack.backend;
118
- }
119
- }
120
- // Parse Infrastructure
121
- const infraContent = subsections.get('infrastructure');
122
- if (infraContent) {
123
- stack.infrastructure = {
124
- cloudProvider: parseTechField(infraContent, 'Cloud Provider'),
125
- containerRuntime: parseTechField(infraContent, 'Container Runtime'),
126
- orchestration: parseTechField(infraContent, 'Orchestration'),
127
- ciCd: parseTechField(infraContent, 'CI/CD'),
128
- };
129
- // Clean up undefined fields
130
- if (!stack.infrastructure.cloudProvider && !stack.infrastructure.containerRuntime &&
131
- !stack.infrastructure.orchestration && !stack.infrastructure.ciCd) {
132
- delete stack.infrastructure;
133
- }
134
- }
135
- return stack;
136
- }
137
- // =============================================================================
138
- // Implementation Rules parsing
139
- // =============================================================================
140
- /**
141
- * Parse the Critical Implementation Rules section.
142
- * Format: 1. **Title:** Description (possibly multi-line)
143
- */
144
- function parseImplementationRules(content) {
145
- const rules = [];
146
- const lines = content.split('\n');
147
- let currentRule = null;
148
- let currentDescription = [];
149
- for (const line of lines) {
150
- // Check for a new rule: N. **Title:** Description or N. Title: Description
151
- const boldMatch = line.match(/^(\d+)\.\s*\*\*(.+?):\*\*\s*(.*)$/);
152
- const plainMatch = line.match(/^(\d+)\.\s*(.+?):\s*(.+)$/);
153
- if (boldMatch) {
154
- // Save previous rule if exists
155
- if (currentRule && currentRule.number !== undefined) {
156
- rules.push({
157
- number: currentRule.number,
158
- title: currentRule.title,
159
- description: currentDescription.join('\n').trim(),
160
- });
161
- }
162
- currentRule = {
163
- number: parseInt(boldMatch[1], 10),
164
- title: boldMatch[2].trim(),
165
- };
166
- currentDescription = boldMatch[3] ? [boldMatch[3].trim()] : [];
167
- }
168
- else if (plainMatch) {
169
- // Save previous rule if exists
170
- if (currentRule && currentRule.number !== undefined) {
171
- rules.push({
172
- number: currentRule.number,
173
- title: currentRule.title,
174
- description: currentDescription.join('\n').trim(),
175
- });
176
- }
177
- currentRule = {
178
- number: parseInt(plainMatch[1], 10),
179
- title: plainMatch[2].trim(),
180
- };
181
- currentDescription = plainMatch[3] ? [plainMatch[3].trim()] : [];
182
- }
183
- else if (currentRule && line.trim() && !line.match(/^\d+\./)) {
184
- // Continuation line for multi-line description
185
- currentDescription.push(line.trim());
186
- }
187
- }
188
- // Don't forget the last rule
189
- if (currentRule && currentRule.number !== undefined) {
190
- rules.push({
191
- number: currentRule.number,
192
- title: currentRule.title,
193
- description: currentDescription.join('\n').trim(),
194
- });
195
- }
196
- return rules;
197
- }
198
- // =============================================================================
199
- // AI Agent Guidance parsing
200
- // =============================================================================
201
- /**
202
- * Parse bullet list items from content.
203
- */
204
- function parseBulletList(content) {
205
- const items = [];
206
- const lines = content.split('\n');
207
- for (const line of lines) {
208
- const trimmed = line.trim();
209
- if (trimmed.startsWith('- ')) {
210
- items.push(trimmed.substring(2).trim());
211
- }
212
- }
213
- return items;
214
- }
215
- /**
216
- * Parse the AI Agent Guidance section.
217
- */
218
- function parseAiAgentGuidance(content) {
219
- const guidance = {};
220
- const subsections = extractSubsections(content);
221
- // Parse Do section
222
- const doContent = subsections.get('do');
223
- if (doContent) {
224
- guidance.do = parseBulletList(doContent);
225
- }
226
- // Parse Don't section
227
- const dontContent = subsections.get("don't");
228
- if (dontContent) {
229
- guidance.dont = parseBulletList(dontContent);
230
- }
231
- // Parse Context Loading section
232
- const contextContent = subsections.get('context loading');
233
- if (contextContent) {
234
- guidance.contextLoading = contextContent;
235
- }
236
- return guidance;
237
- }
238
- // =============================================================================
239
- // External Dependencies parsing
240
- // =============================================================================
241
- /**
242
- * Parse the External Dependencies table.
243
- * Format: | Dependency | Purpose | Documentation |
244
- */
245
- function parseExternalDependencies(content) {
246
- const dependencies = [];
247
- const lines = content.split('\n');
248
- for (const line of lines) {
249
- // Skip header rows and separator rows
250
- if (line.includes('Dependency') && line.includes('Purpose'))
251
- continue;
252
- if (line.match(/^\|[-\s|]+\|$/))
253
- continue;
254
- // Match table row: | Name | Purpose | URL |
255
- const match = line.match(/^\|\s*(.+?)\s*\|\s*(.+?)\s*\|\s*(.+?)\s*\|$/);
256
- if (match) {
257
- const name = match[1].trim();
258
- const purpose = match[2].trim();
259
- const documentation = match[3].trim();
260
- // Skip if any field is empty or looks like a header
261
- if (name && purpose && documentation &&
262
- name !== 'Dependency' && purpose !== 'Purpose') {
263
- dependencies.push({ name, purpose, documentation });
264
- }
265
- }
266
- }
267
- return dependencies;
268
- }
269
- // =============================================================================
270
- // Main Parser Function
271
- // =============================================================================
272
- /**
273
- * Parse a BMAD project-context.md file and extract structured context.
274
- *
275
- * @param content - Raw markdown content of project-context.md
276
- * @returns ContextParseResult with success status and either context or errors
277
- */
278
- export function parseBmadContext(content) {
279
- const errors = [];
280
- // Handle empty content
281
- if (!content || !content.trim()) {
282
- return {
283
- success: false,
284
- errors: [{ section: 'Content', message: 'Content is empty' }],
285
- };
286
- }
287
- // Extract sections
288
- const sections = extractSections(content);
289
- // Parse Overview (required)
290
- const overviewSection = findSection(sections, 'Overview');
291
- let overview = '';
292
- if (!overviewSection) {
293
- errors.push({
294
- section: 'Overview',
295
- message: 'Missing Overview section.',
296
- });
297
- }
298
- else {
299
- overview = overviewSection.content.trim();
300
- }
301
- // Parse Technology Stack (required)
302
- const techSection = findSection(sections, 'Technology Stack');
303
- let technologyStack = {};
304
- if (!techSection) {
305
- errors.push({
306
- section: 'Technology Stack',
307
- message: 'Missing Technology Stack section.',
308
- });
309
- }
310
- else {
311
- technologyStack = parseTechnologyStack(techSection.content);
312
- }
313
- // Parse Critical Implementation Rules (required)
314
- const rulesSection = findSection(sections, 'Critical Implementation Rules');
315
- let implementationRules = [];
316
- if (!rulesSection) {
317
- errors.push({
318
- section: 'Critical Implementation Rules',
319
- message: 'Missing Critical Implementation Rules section.',
320
- });
321
- }
322
- else {
323
- implementationRules = parseImplementationRules(rulesSection.content);
324
- }
325
- // Return errors if required sections are missing
326
- if (errors.length > 0) {
327
- return {
328
- success: false,
329
- errors,
330
- };
331
- }
332
- // Parse optional sections
333
- const projectStructureSection = findSection(sections, 'Project Structure');
334
- const projectStructure = projectStructureSection?.content.trim() || undefined;
335
- const codingStandardsSection = findSection(sections, 'Coding Standards');
336
- const codingStandards = codingStandardsSection?.content.trim() || undefined;
337
- const aiGuidanceSection = findSection(sections, 'AI Agent Guidance');
338
- let aiAgentGuidance;
339
- if (aiGuidanceSection) {
340
- const parsed = parseAiAgentGuidance(aiGuidanceSection.content);
341
- if (parsed.do || parsed.dont || parsed.contextLoading) {
342
- aiAgentGuidance = parsed;
343
- }
344
- }
345
- const externalDepsSection = findSection(sections, 'External Dependencies');
346
- let externalDependencies;
347
- if (externalDepsSection) {
348
- const parsed = parseExternalDependencies(externalDepsSection.content);
349
- if (parsed.length > 0) {
350
- externalDependencies = parsed;
351
- }
352
- }
353
- const envSetupSection = findSection(sections, 'Environment Setup');
354
- const environmentSetup = envSetupSection?.content.trim() || undefined;
355
- return {
356
- success: true,
357
- context: {
358
- overview,
359
- technologyStack,
360
- implementationRules,
361
- projectStructure,
362
- codingStandards,
363
- aiAgentGuidance,
364
- externalDependencies,
365
- environmentSetup,
366
- },
367
- };
368
- }
369
- //# sourceMappingURL=context-reader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-reader.js","sourceRoot":"","sources":["../../src/bmad/context-reader.ts"],"names":[],"mappings":"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"}
@@ -1,71 +0,0 @@
1
- /**
2
- * Tests for Story 32-4: BMAD Project Context Reader
3
- *
4
- * These tests define the contract for parsing BMAD project-context.md files.
5
- * Dev will implement parseBmadContext() to pass these tests.
6
- *
7
- * BMAD project-context format:
8
- * - Required: ## Overview, ## Technology Stack, ## Critical Implementation Rules
9
- * - Optional: ## Project Structure, ## Coding Standards, ## AI Agent Guidance,
10
- * ## External Dependencies, ## Environment Setup
11
- *
12
- * Run with: npm test
13
- */
14
- export interface TechnologyStackType {
15
- frontend?: {
16
- framework?: string;
17
- language?: string;
18
- stateManagement?: string;
19
- styling?: string;
20
- buildTool?: string;
21
- };
22
- backend?: {
23
- language?: string;
24
- framework?: string;
25
- database?: string;
26
- cache?: string;
27
- apiStyle?: string;
28
- };
29
- infrastructure?: {
30
- cloudProvider?: string;
31
- containerRuntime?: string;
32
- orchestration?: string;
33
- ciCd?: string;
34
- };
35
- }
36
- export interface ImplementationRuleType {
37
- number: number;
38
- title: string;
39
- description: string;
40
- }
41
- export interface AiAgentGuidanceType {
42
- do?: string[];
43
- dont?: string[];
44
- contextLoading?: string;
45
- }
46
- export interface ExternalDependencyType {
47
- name: string;
48
- purpose: string;
49
- documentation: string;
50
- }
51
- export interface BmadProjectContextType {
52
- overview: string;
53
- technologyStack: TechnologyStackType;
54
- implementationRules: ImplementationRuleType[];
55
- projectStructure?: string;
56
- codingStandards?: string;
57
- aiAgentGuidance?: AiAgentGuidanceType;
58
- externalDependencies?: ExternalDependencyType[];
59
- environmentSetup?: string;
60
- }
61
- export interface ContextParseResultType {
62
- success: boolean;
63
- context?: BmadProjectContextType;
64
- errors?: ContextParseErrorType[];
65
- }
66
- export interface ContextParseErrorType {
67
- section: string;
68
- message: string;
69
- line?: number;
70
- }
71
- //# sourceMappingURL=context-reader.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"context-reader.test.d.ts","sourceRoot":"","sources":["../../src/bmad/context-reader.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAghCH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,cAAc,CAAC,EAAE;QACf,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,eAAe,EAAE,mBAAmB,CAAC;IACrC,mBAAmB,EAAE,sBAAsB,EAAE,CAAC;IAC9C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,oBAAoB,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAChD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,MAAM,CAAC,EAAE,qBAAqB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}