@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,356 +0,0 @@
1
- /**
2
- * Tests for /theme-maker command
3
- *
4
- * Story 6-1: Command skeleton - basic structure and validation
5
- * Story 6-2: AI-Driven mode - universe input, agent generation, preview
6
- * Story 6-3: Guided mode - character options per agent, user picks
7
- *
8
- * Run with: npm test
9
- */
10
- import { describe, it } from 'node:test';
11
- import assert from 'node:assert';
12
- import { existsSync, readFileSync } from 'fs';
13
- import { join, dirname } from 'path';
14
- import { fileURLToPath } from 'url';
15
- import { validateThemeName, getProjectCustomThemesDir, validateThemeSchema } from './utils/themes.js';
16
- import { findMonorepoRoot } from './utils/files.js';
17
- const __filename = fileURLToPath(import.meta.url);
18
- const __dirname = dirname(__filename);
19
- // Find monorepo root by walking up from current directory
20
- const projectRoot = findMonorepoRoot(__dirname);
21
- const distDir = join(projectRoot, 'pennyfarthing-dist');
22
- describe('/theme-maker Command File', () => {
23
- const commandPath = join(distDir, 'commands', 'theme-maker.md');
24
- it('should have theme-maker.md command file', () => {
25
- assert.ok(existsSync(commandPath), `Missing command file: ${commandPath}`);
26
- });
27
- it('should have YAML frontmatter with description', () => {
28
- const content = readFileSync(commandPath, 'utf-8');
29
- assert.ok(content.startsWith('---'), 'Command file should start with YAML frontmatter (---)');
30
- assert.ok(content.includes('description:'), 'Frontmatter should have description field');
31
- });
32
- it('should reference mode selection options', () => {
33
- const content = readFileSync(commandPath, 'utf-8');
34
- assert.ok(content.toLowerCase().includes('ai-driven') ||
35
- content.toLowerCase().includes('ai driven'), 'Should mention AI-Driven mode');
36
- assert.ok(content.toLowerCase().includes('guided'), 'Should mention Guided mode');
37
- assert.ok(content.toLowerCase().includes('manual'), 'Should mention Manual mode');
38
- });
39
- it('should mention AskUserQuestion for mode selection', () => {
40
- const content = readFileSync(commandPath, 'utf-8');
41
- assert.ok(content.includes('AskUserQuestion'), 'Should reference AskUserQuestion tool for user interaction');
42
- });
43
- it('should reference pennyfarthing_version field', () => {
44
- const content = readFileSync(commandPath, 'utf-8');
45
- assert.ok(content.includes('pennyfarthing_version'), 'Should mention pennyfarthing_version field for skeleton YAML');
46
- });
47
- it('should reference theme directory path', () => {
48
- const content = readFileSync(commandPath, 'utf-8');
49
- assert.ok(content.includes('.claude/pennyfarthing/themes') ||
50
- content.includes('themes/'), 'Should mention theme directory for output');
51
- });
52
- });
53
- describe('Theme Name Validation', () => {
54
- describe('rejects invalid names', () => {
55
- it('should reject empty name', () => {
56
- const result = validateThemeName('');
57
- assert.strictEqual(result.valid, false);
58
- assert.ok(result.error?.includes('required'));
59
- });
60
- it('should reject names with spaces', () => {
61
- const result = validateThemeName('my theme');
62
- assert.strictEqual(result.valid, false);
63
- assert.ok(result.error?.includes('space'));
64
- });
65
- it('should reject uppercase names', () => {
66
- const result = validateThemeName('MyTheme');
67
- assert.strictEqual(result.valid, false);
68
- assert.ok(result.error?.includes('lowercase'));
69
- });
70
- it('should reject names starting with number', () => {
71
- const result = validateThemeName('123theme');
72
- assert.strictEqual(result.valid, false);
73
- assert.ok(result.error?.includes('start with a letter'));
74
- });
75
- it('should reject names with special characters', () => {
76
- const result = validateThemeName('my_theme');
77
- assert.strictEqual(result.valid, false);
78
- });
79
- it('should reject names starting with hyphen', () => {
80
- const result = validateThemeName('-my-theme');
81
- assert.strictEqual(result.valid, false);
82
- });
83
- });
84
- describe('accepts valid names', () => {
85
- it('should accept simple lowercase name', () => {
86
- const result = validateThemeName('mytheme');
87
- assert.strictEqual(result.valid, true);
88
- assert.strictEqual(result.error, undefined);
89
- });
90
- it('should accept hyphenated name', () => {
91
- const result = validateThemeName('my-custom-theme');
92
- assert.strictEqual(result.valid, true);
93
- });
94
- it('should accept name with numbers', () => {
95
- const result = validateThemeName('theme2025');
96
- assert.strictEqual(result.valid, true);
97
- });
98
- it('should accept single letter name', () => {
99
- const result = validateThemeName('x');
100
- assert.strictEqual(result.valid, true);
101
- });
102
- });
103
- });
104
- describe('Theme Directory Creation', () => {
105
- const testProjectRoot = join(__dirname, '..', '..', '.test-project');
106
- const expectedDir = join(testProjectRoot, '.claude', 'pennyfarthing', 'themes');
107
- it('should return correct custom themes directory path', () => {
108
- const themesDir = getProjectCustomThemesDir(testProjectRoot);
109
- assert.strictEqual(themesDir, expectedDir, `Expected ${expectedDir}, got ${themesDir}`);
110
- });
111
- });
112
- // ============================================================================
113
- // Story 6-2: AI-Driven Mode Tests
114
- // ============================================================================
115
- describe('AI-Driven Mode - Command File (Story 6-2)', () => {
116
- const commandPath = join(distDir, 'commands', 'theme-maker.md');
117
- it('should have AI-Driven mode implementation section', () => {
118
- const content = readFileSync(commandPath, 'utf-8');
119
- // Look for a dedicated section header for AI-Driven mode
120
- assert.ok(content.includes('## AI-Driven Mode') ||
121
- content.includes('### AI-Driven Mode'), 'Should have dedicated AI-Driven Mode section');
122
- });
123
- it('should prompt for universe/concept description', () => {
124
- const content = readFileSync(commandPath, 'utf-8');
125
- assert.ok(content.toLowerCase().includes('universe') ||
126
- content.toLowerCase().includes('concept'), 'Should mention universe/concept input');
127
- assert.ok(content.toLowerCase().includes('describe') ||
128
- content.toLowerCase().includes('free-text') ||
129
- content.toLowerCase().includes('free text'), 'Should indicate free-text description input');
130
- });
131
- it('should reference all 10 agent types for generation', () => {
132
- const content = readFileSync(commandPath, 'utf-8');
133
- const requiredAgents = [
134
- 'orchestrator',
135
- 'sm',
136
- 'tea',
137
- 'dev',
138
- 'reviewer',
139
- 'architect',
140
- 'pm',
141
- 'tech-writer',
142
- 'ux-designer',
143
- 'devops'
144
- ];
145
- for (const agent of requiredAgents) {
146
- assert.ok(content.toLowerCase().includes(agent), `Should reference ${agent} agent`);
147
- }
148
- });
149
- it('should show preview before confirming', () => {
150
- const content = readFileSync(commandPath, 'utf-8');
151
- assert.ok(content.toLowerCase().includes('preview'), 'Should mention preview functionality');
152
- });
153
- it('should offer regenerate option', () => {
154
- const content = readFileSync(commandPath, 'utf-8');
155
- assert.ok(content.toLowerCase().includes('regenerate'), 'Should mention regenerate option');
156
- });
157
- it('should reference confirm/regenerate user choice', () => {
158
- const content = readFileSync(commandPath, 'utf-8');
159
- assert.ok(content.toLowerCase().includes('confirm'), 'Should mention confirm option');
160
- });
161
- });
162
- describe('Theme Schema Validation (Story 6-2)', () => {
163
- // All 10 required agent types
164
- const REQUIRED_AGENTS = [
165
- 'orchestrator',
166
- 'sm',
167
- 'tea',
168
- 'dev',
169
- 'reviewer',
170
- 'architect',
171
- 'pm',
172
- 'tech-writer',
173
- 'ux-designer',
174
- 'devops'
175
- ];
176
- // Minimal valid theme for testing
177
- const createValidTheme = () => ({
178
- theme: {
179
- name: 'Test Theme',
180
- description: 'A test theme'
181
- },
182
- agents: Object.fromEntries(REQUIRED_AGENTS.map(agent => [
183
- agent,
184
- {
185
- character: `Test ${agent}`,
186
- style: `Style for ${agent}`,
187
- role: `Role for ${agent}`,
188
- quote: `Quote for ${agent}`
189
- }
190
- ]))
191
- });
192
- describe('validates complete themes', () => {
193
- it('should accept a valid theme with all 10 agents', () => {
194
- const theme = createValidTheme();
195
- const result = validateThemeSchema(theme);
196
- assert.strictEqual(result.valid, true);
197
- assert.strictEqual(result.errors, undefined);
198
- });
199
- it('should accept theme with optional fields', () => {
200
- const theme = createValidTheme();
201
- theme.theme.source = 'Test source';
202
- theme.theme.default_emoji_use = 'minimal';
203
- theme.agents.sm.emoji = '☕';
204
- theme.agents.sm.helper = { name: 'Helper', style: 'Helpful' };
205
- const result = validateThemeSchema(theme);
206
- assert.strictEqual(result.valid, true);
207
- });
208
- });
209
- describe('rejects invalid themes', () => {
210
- it('should reject theme missing theme.name', () => {
211
- const theme = createValidTheme();
212
- delete theme.theme.name;
213
- const result = validateThemeSchema(theme);
214
- assert.strictEqual(result.valid, false);
215
- assert.ok(result.errors?.some(e => e.includes('name')));
216
- });
217
- it('should reject theme missing agents section', () => {
218
- const theme = createValidTheme();
219
- delete theme.agents;
220
- const result = validateThemeSchema(theme);
221
- assert.strictEqual(result.valid, false);
222
- assert.ok(result.errors?.some(e => e.includes('agents')));
223
- });
224
- it('should reject theme missing required agent', () => {
225
- const theme = createValidTheme();
226
- delete theme.agents.tea;
227
- const result = validateThemeSchema(theme);
228
- assert.strictEqual(result.valid, false);
229
- assert.ok(result.errors?.some(e => e.includes('tea')));
230
- });
231
- it('should reject agent missing character field', () => {
232
- const theme = createValidTheme();
233
- delete theme.agents.dev.character;
234
- const result = validateThemeSchema(theme);
235
- assert.strictEqual(result.valid, false);
236
- assert.ok(result.errors?.some(e => e.includes('dev') && e.includes('character')));
237
- });
238
- it('should reject agent missing style field', () => {
239
- const theme = createValidTheme();
240
- delete theme.agents.reviewer.style;
241
- const result = validateThemeSchema(theme);
242
- assert.strictEqual(result.valid, false);
243
- assert.ok(result.errors?.some(e => e.includes('reviewer') && e.includes('style')));
244
- });
245
- it('should list all missing agents in errors', () => {
246
- const theme = createValidTheme();
247
- delete theme.agents.sm;
248
- delete theme.agents.tea;
249
- delete theme.agents.dev;
250
- const result = validateThemeSchema(theme);
251
- assert.strictEqual(result.valid, false);
252
- assert.ok(result.errors && result.errors.length >= 3, 'Should have at least 3 errors');
253
- });
254
- });
255
- describe('validates agent field requirements', () => {
256
- it('should require character and style for each agent', () => {
257
- // These are the minimum required fields per agent
258
- const theme = {
259
- theme: { name: 'Minimal', description: 'Minimal theme' },
260
- agents: Object.fromEntries(REQUIRED_AGENTS.map(agent => [
261
- agent,
262
- { character: 'Char', style: 'Style' }
263
- ]))
264
- };
265
- const result = validateThemeSchema(theme);
266
- assert.strictEqual(result.valid, true);
267
- });
268
- });
269
- });
270
- // ============================================================================
271
- // Story 6-3: Guided Mode Tests
272
- // ============================================================================
273
- describe('Guided Mode - Command File (Story 6-3)', () => {
274
- const commandPath = join(distDir, 'commands', 'theme-maker.md');
275
- /**
276
- * Helper to extract just the Guided Mode section from the command file.
277
- * Returns empty string if section doesn't exist.
278
- */
279
- function getGuidedModeSection() {
280
- const content = readFileSync(commandPath, 'utf-8');
281
- // Split on ## Guided Mode header and take everything until next ## header
282
- const match = content.match(/##\s*Guided Mode[\s\S]*?(?=\n##\s|$)/i);
283
- return match ? match[0] : '';
284
- }
285
- it('should have Guided mode implementation section', () => {
286
- const content = readFileSync(commandPath, 'utf-8');
287
- // Look for a dedicated section header for Guided mode
288
- assert.ok(content.includes('## Guided Mode') ||
289
- content.includes('### Guided Mode'), 'Should have dedicated Guided Mode section');
290
- });
291
- it('should present 3-4 character options per agent in Guided section', () => {
292
- const guidedSection = getGuidedModeSection();
293
- assert.ok(guidedSection.length > 0, 'Guided Mode section must exist');
294
- // Must mention presenting multiple options (3-4) for character selection
295
- assert.ok(guidedSection.includes('3-4') ||
296
- guidedSection.includes('3 to 4') ||
297
- guidedSection.toLowerCase().includes('three to four') ||
298
- (guidedSection.toLowerCase().includes('suggest') && guidedSection.toLowerCase().includes('option')), 'Guided Mode should mention presenting 3-4 character options');
299
- });
300
- it('should offer "Other" option for custom character names in Guided section', () => {
301
- const guidedSection = getGuidedModeSection();
302
- assert.ok(guidedSection.length > 0, 'Guided Mode section must exist');
303
- // Must mention "Other" option for custom input within Guided section
304
- assert.ok(guidedSection.includes('"Other"') ||
305
- guidedSection.includes('Other option') ||
306
- guidedSection.toLowerCase().includes('custom character'), 'Guided Mode should mention "Other" option for custom character names');
307
- });
308
- it('should generate style/trait/quote for selections in Guided section', () => {
309
- const guidedSection = getGuidedModeSection();
310
- assert.ok(guidedSection.length > 0, 'Guided Mode section must exist');
311
- const lowerSection = guidedSection.toLowerCase();
312
- // Must mention generating/filling style, trait, or quote for selected characters
313
- assert.ok(lowerSection.includes('generate') ||
314
- lowerSection.includes('fills in') ||
315
- lowerSection.includes('fill in') ||
316
- (lowerSection.includes('style') && lowerSection.includes('trait')), 'Guided Mode should mention generating style/trait/quote for selections');
317
- });
318
- it('should allow going back to change previous selections in Guided section', () => {
319
- const guidedSection = getGuidedModeSection();
320
- assert.ok(guidedSection.length > 0, 'Guided Mode section must exist');
321
- const lowerSection = guidedSection.toLowerCase();
322
- // Must mention ability to go back or change previous selections
323
- assert.ok(lowerSection.includes('go back') ||
324
- lowerSection.includes('previous') ||
325
- lowerSection.includes('change selection') ||
326
- lowerSection.includes('edit selection') ||
327
- lowerSection.includes('redo'), 'Guided Mode should mention ability to go back and change previous selections');
328
- });
329
- it('should use AskUserQuestion for character selection in Guided section', () => {
330
- const guidedSection = getGuidedModeSection();
331
- assert.ok(guidedSection.length > 0, 'Guided Mode section must exist');
332
- // Guided mode should use AskUserQuestion for user interaction
333
- assert.ok(guidedSection.includes('AskUserQuestion'), 'Guided Mode should use AskUserQuestion tool for character selection');
334
- });
335
- it('should iterate through agents for character selection', () => {
336
- const guidedSection = getGuidedModeSection();
337
- assert.ok(guidedSection.length > 0, 'Guided Mode section must exist');
338
- // Must reference iterating through each agent
339
- assert.ok(guidedSection.toLowerCase().includes('each agent') ||
340
- guidedSection.toLowerCase().includes('for each') ||
341
- guidedSection.toLowerCase().includes('per agent'), 'Guided Mode should iterate through each agent for character selection');
342
- });
343
- it('should show preview step in Guided section', () => {
344
- const guidedSection = getGuidedModeSection();
345
- assert.ok(guidedSection.length > 0, 'Guided Mode section must exist');
346
- // Must have preview step
347
- assert.ok(guidedSection.toLowerCase().includes('preview'), 'Guided Mode should show preview before confirming theme');
348
- });
349
- it('should have confirm step in Guided section', () => {
350
- const guidedSection = getGuidedModeSection();
351
- assert.ok(guidedSection.length > 0, 'Guided Mode section must exist');
352
- // Must have confirm step
353
- assert.ok(guidedSection.toLowerCase().includes('confirm'), 'Guided Mode should have confirm step');
354
- });
355
- });
356
- //# sourceMappingURL=theme-maker.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"theme-maker.test.js","sourceRoot":"","sources":["../../src/cli/theme-maker.test.ts"],"names":[],"mappings":"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"}
@@ -1,66 +0,0 @@
1
- /**
2
- * Shared constants for Pennyfarthing CLI
3
- * Single source of truth for agent names, symlink definitions, and managed paths
4
- */
5
- /**
6
- * Core agent types that have sidecars
7
- */
8
- export declare const CORE_AGENTS: readonly ["dev", "tea", "sm", "reviewer", "architect", "pm", "tech-writer", "ux-designer", "devops", "orchestrator"];
9
- export type CoreAgent = typeof CORE_AGENTS[number];
10
- /**
11
- * Symlinks that point directly to node_modules directories
12
- * These go in .pennyfarthing/ to minimize interference with user's .claude/
13
- * (commands and skills stay in .claude/ - required for Claude Code discovery)
14
- */
15
- export declare const DIRECTORY_SYMLINKS: readonly [{
16
- readonly name: "agents";
17
- readonly link: ".pennyfarthing/agents";
18
- }, {
19
- readonly name: "guides";
20
- readonly link: ".pennyfarthing/guides";
21
- }, {
22
- readonly name: "personas";
23
- readonly link: ".pennyfarthing/personas";
24
- }, {
25
- readonly name: "scripts";
26
- readonly link: ".pennyfarthing/scripts";
27
- }, {
28
- readonly name: "workflows";
29
- readonly link: ".pennyfarthing/workflows";
30
- }];
31
- /**
32
- * All symlinks including commands and skills
33
- * Used by doctor for comprehensive checks
34
- */
35
- export declare const ALL_SYMLINKS: readonly [{
36
- readonly name: "agents";
37
- readonly link: ".pennyfarthing/agents";
38
- }, {
39
- readonly name: "guides";
40
- readonly link: ".pennyfarthing/guides";
41
- }, {
42
- readonly name: "personas";
43
- readonly link: ".pennyfarthing/personas";
44
- }, {
45
- readonly name: "scripts";
46
- readonly link: ".pennyfarthing/scripts";
47
- }, {
48
- readonly name: "workflows";
49
- readonly link: ".pennyfarthing/workflows";
50
- }, {
51
- readonly name: "commands";
52
- readonly link: ".claude/commands";
53
- }, {
54
- readonly name: "skills";
55
- readonly link: ".claude/skills";
56
- }];
57
- /**
58
- * Paths managed by Pennyfarthing (used in manifest)
59
- * Commands and skills in .claude/ (for discovery), rest in .pennyfarthing/
60
- */
61
- export declare const MANAGED_PATHS: readonly [".claude/commands", ".claude/skills", ".pennyfarthing/agents", ".pennyfarthing/guides", ".pennyfarthing/personas", ".pennyfarthing/scripts", ".pennyfarthing/workflows"];
62
- export type SymlinkDefinition = {
63
- readonly name: string;
64
- readonly link: string;
65
- };
66
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,eAAO,MAAM,WAAW,sHAWd,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAEnD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;EAMrB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;EAIf,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,aAAa,oLAQhB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG;IAC9B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB,CAAC"}
@@ -1,54 +0,0 @@
1
- /**
2
- * Shared constants for Pennyfarthing CLI
3
- * Single source of truth for agent names, symlink definitions, and managed paths
4
- */
5
- /**
6
- * Core agent types that have sidecars
7
- */
8
- export const CORE_AGENTS = [
9
- 'dev',
10
- 'tea',
11
- 'sm',
12
- 'reviewer',
13
- 'architect',
14
- 'pm',
15
- 'tech-writer',
16
- 'ux-designer',
17
- 'devops',
18
- 'orchestrator'
19
- ];
20
- /**
21
- * Symlinks that point directly to node_modules directories
22
- * These go in .pennyfarthing/ to minimize interference with user's .claude/
23
- * (commands and skills stay in .claude/ - required for Claude Code discovery)
24
- */
25
- export const DIRECTORY_SYMLINKS = [
26
- { name: 'agents', link: '.pennyfarthing/agents' },
27
- { name: 'guides', link: '.pennyfarthing/guides' },
28
- { name: 'personas', link: '.pennyfarthing/personas' },
29
- { name: 'scripts', link: '.pennyfarthing/scripts' },
30
- { name: 'workflows', link: '.pennyfarthing/workflows' }
31
- ];
32
- /**
33
- * All symlinks including commands and skills
34
- * Used by doctor for comprehensive checks
35
- */
36
- export const ALL_SYMLINKS = [
37
- ...DIRECTORY_SYMLINKS,
38
- { name: 'commands', link: '.claude/commands' },
39
- { name: 'skills', link: '.claude/skills' }
40
- ];
41
- /**
42
- * Paths managed by Pennyfarthing (used in manifest)
43
- * Commands and skills in .claude/ (for discovery), rest in .pennyfarthing/
44
- */
45
- export const MANAGED_PATHS = [
46
- '.claude/commands',
47
- '.claude/skills',
48
- '.pennyfarthing/agents',
49
- '.pennyfarthing/guides',
50
- '.pennyfarthing/personas',
51
- '.pennyfarthing/scripts',
52
- '.pennyfarthing/workflows'
53
- ];
54
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/cli/utils/constants.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,KAAK;IACL,KAAK;IACL,IAAI;IACJ,UAAU;IACV,WAAW;IACX,IAAI;IACJ,aAAa;IACb,aAAa;IACb,QAAQ;IACR,cAAc;CACN,CAAC;AAIX;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,uBAAuB,EAAE;IACjD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,uBAAuB,EAAE;IACjD,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,yBAAyB,EAAE;IACrD,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,wBAAwB,EAAE;IACnD,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,0BAA0B,EAAE;CAC/C,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,GAAG,kBAAkB;IACrB,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE;IAC9C,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE;CAClC,CAAC;AAEX;;;GAGG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,kBAAkB;IAClB,gBAAgB;IAChB,uBAAuB;IACvB,uBAAuB;IACvB,yBAAyB;IACzB,wBAAwB;IACxB,0BAA0B;CAClB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/files.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM/C;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEhD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAMjD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CA0BxE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7B,MAAM,EAAE,CASV;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAC7B,IAAI,CAKN;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAIzE;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,CAI5E;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAKhE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAK/E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAU1E;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAczD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"files.js","sourceRoot":"","sources":["../../../src/cli/utils/files.ts"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- export type LogLevel = 'info' | 'success' | 'warning' | 'error' | 'debug';
2
- export interface LoggerOptions {
3
- quiet?: boolean;
4
- json?: boolean;
5
- }
6
- declare class Logger {
7
- private options;
8
- configure(options: LoggerOptions): void;
9
- private shouldLog;
10
- info(message: string): void;
11
- success(message: string): void;
12
- warning(message: string): void;
13
- error(message: string): void;
14
- created(path: string): void;
15
- updated(path: string): void;
16
- skipped(path: string, reason?: string): void;
17
- removed(path: string): void;
18
- conflict(path: string): void;
19
- header(title: string): void;
20
- newline(): void;
21
- dryRun(message: string): void;
22
- check(name: string, status: 'pass' | 'warn' | 'fail', detail?: string): void;
23
- }
24
- export declare const logger: Logger;
25
- export {};
26
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/logger.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,OAAO,CAAC;AAE1E,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,cAAM,MAAM;IACV,OAAO,CAAC,OAAO,CAAqB;IAEpC,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAIvC,OAAO,CAAC,SAAS;IAOjB,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM3B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM9B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAM9B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK5B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM3B,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM3B,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAO5C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAM3B,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO5B,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAO3B,OAAO,IAAI,IAAI;IAOf,MAAM,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAO7B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;CAS7E;AAED,eAAO,MAAM,MAAM,QAAe,CAAC"}
@@ -1,88 +0,0 @@
1
- import chalk from 'chalk';
2
- class Logger {
3
- options = {};
4
- configure(options) {
5
- this.options = { ...this.options, ...options };
6
- }
7
- shouldLog(level) {
8
- if (this.options.quiet && level !== 'error') {
9
- return false;
10
- }
11
- return true;
12
- }
13
- info(message) {
14
- if (this.shouldLog('info')) {
15
- console.log(chalk.blue('i') + ' ' + message);
16
- }
17
- }
18
- success(message) {
19
- if (this.shouldLog('success')) {
20
- console.log(chalk.green('✓') + ' ' + message);
21
- }
22
- }
23
- warning(message) {
24
- if (this.shouldLog('warning')) {
25
- console.log(chalk.yellow('!') + ' ' + message);
26
- }
27
- }
28
- error(message) {
29
- console.error(chalk.red('✗') + ' ' + message);
30
- }
31
- // File operation feedback
32
- created(path) {
33
- if (this.shouldLog('info')) {
34
- console.log(chalk.green(' + ') + path);
35
- }
36
- }
37
- updated(path) {
38
- if (this.shouldLog('info')) {
39
- console.log(chalk.blue(' ~ ') + path);
40
- }
41
- }
42
- skipped(path, reason) {
43
- if (this.shouldLog('info')) {
44
- const suffix = reason ? chalk.dim(` (${reason})`) : '';
45
- console.log(chalk.yellow(' - ') + path + suffix);
46
- }
47
- }
48
- removed(path) {
49
- if (this.shouldLog('info')) {
50
- console.log(chalk.red(' x ') + path);
51
- }
52
- }
53
- conflict(path) {
54
- if (this.shouldLog('warning')) {
55
- console.log(chalk.red(' ! ') + path + chalk.dim(' (modified locally)'));
56
- }
57
- }
58
- // Section headers
59
- header(title) {
60
- if (this.shouldLog('info')) {
61
- console.log('\n' + chalk.bold(title));
62
- }
63
- }
64
- // Blank line
65
- newline() {
66
- if (this.shouldLog('info')) {
67
- console.log();
68
- }
69
- }
70
- // Dry run prefix
71
- dryRun(message) {
72
- if (this.shouldLog('info')) {
73
- console.log(chalk.cyan('[dry-run]') + ' ' + message);
74
- }
75
- }
76
- // Table-like output for doctor command
77
- check(name, status, detail) {
78
- if (this.shouldLog('info')) {
79
- const icon = status === 'pass' ? chalk.green('✓')
80
- : status === 'warn' ? chalk.yellow('!')
81
- : chalk.red('✗');
82
- const suffix = detail ? chalk.dim(` - ${detail}`) : '';
83
- console.log(` ${icon} ${name}${suffix}`);
84
- }
85
- }
86
- }
87
- export const logger = new Logger();
88
- //# sourceMappingURL=logger.js.map