@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,225 +0,0 @@
1
- /**
2
- * Story 11-3: Cyclist Migration Tests
3
- *
4
- * These tests verify the Cyclist Electron GUI is correctly migrated
5
- * into the pnpm workspace as @pennyfarthing/cyclist.
6
- * Tests are designed to FAIL until the migration is complete.
7
- *
8
- * Acceptance Criteria:
9
- * 1. packages/cyclist/ contains Cyclist source
10
- * 2. Dependencies use workspace:* for internal packages
11
- * 3. Portrait resolution uses @pennyfarthing/shared
12
- * 4. Electron app starts and shows portraits
13
- * 5. Dogfooding scenario works (portraits load from pennyfarthing-dist/)
14
- */
15
- import { describe, it } from 'node:test';
16
- import assert from 'node:assert';
17
- import { existsSync, readFileSync, readdirSync } from 'node:fs';
18
- import { join } from 'node:path';
19
- import { findMonorepoRoot } from './utils/files.js';
20
- const __dirname = import.meta.dirname;
21
- const PROJECT_ROOT = findMonorepoRoot(__dirname);
22
- describe('Story 11-3: Cyclist Migration into Monorepo', () => {
23
- describe('AC1: packages/cyclist/ contains Cyclist source', () => {
24
- it('should have packages/cyclist directory', () => {
25
- const cyclistDir = join(PROJECT_ROOT, 'packages', 'cyclist');
26
- assert.ok(existsSync(cyclistDir), 'packages/cyclist/ directory must exist');
27
- });
28
- it('should have packages/cyclist/src directory', () => {
29
- const srcDir = join(PROJECT_ROOT, 'packages', 'cyclist', 'src');
30
- assert.ok(existsSync(srcDir), 'packages/cyclist/src/ directory must exist');
31
- });
32
- it('should have packages/cyclist/src/main.ts (Electron main process)', () => {
33
- const mainTs = join(PROJECT_ROOT, 'packages', 'cyclist', 'src', 'main.ts');
34
- assert.ok(existsSync(mainTs), 'packages/cyclist/src/main.ts must exist');
35
- });
36
- it('should have packages/cyclist/src/paths.ts (path resolution)', () => {
37
- const pathsTs = join(PROJECT_ROOT, 'packages', 'cyclist', 'src', 'paths.ts');
38
- assert.ok(existsSync(pathsTs), 'packages/cyclist/src/paths.ts must exist');
39
- });
40
- it('should have packages/cyclist/src/public directory', () => {
41
- const publicDir = join(PROJECT_ROOT, 'packages', 'cyclist', 'src', 'public');
42
- assert.ok(existsSync(publicDir), 'packages/cyclist/src/public/ directory must exist');
43
- });
44
- it('should have packages/cyclist/package.json', () => {
45
- const packageJson = join(PROJECT_ROOT, 'packages', 'cyclist', 'package.json');
46
- assert.ok(existsSync(packageJson), 'packages/cyclist/package.json must exist');
47
- });
48
- it('should have @pennyfarthing/cyclist as package name', () => {
49
- const packageJsonPath = join(PROJECT_ROOT, 'packages', 'cyclist', 'package.json');
50
- if (!existsSync(packageJsonPath)) {
51
- assert.fail('packages/cyclist/package.json must exist first');
52
- }
53
- const pkg = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
54
- assert.strictEqual(pkg.name, '@pennyfarthing/cyclist', 'Package name must be @pennyfarthing/cyclist');
55
- });
56
- it('should have packages/cyclist/tsconfig.json', () => {
57
- const tsconfig = join(PROJECT_ROOT, 'packages', 'cyclist', 'tsconfig.json');
58
- assert.ok(existsSync(tsconfig), 'packages/cyclist/tsconfig.json must exist');
59
- });
60
- });
61
- describe('AC2: Dependencies use workspace:* for internal packages', () => {
62
- it('should have @pennyfarthing/shared as workspace dependency', () => {
63
- const packageJsonPath = join(PROJECT_ROOT, 'packages', 'cyclist', 'package.json');
64
- if (!existsSync(packageJsonPath)) {
65
- assert.fail('packages/cyclist/package.json must exist first');
66
- }
67
- const pkg = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
68
- const deps = pkg.dependencies || {};
69
- assert.ok(deps['@pennyfarthing/shared'], 'packages/cyclist should depend on @pennyfarthing/shared');
70
- assert.ok(deps['@pennyfarthing/shared'].includes('workspace'), '@pennyfarthing/shared dependency should use workspace protocol (workspace:*)');
71
- });
72
- it('should NOT have pennyfarthing GitHub dependency', () => {
73
- const packageJsonPath = join(PROJECT_ROOT, 'packages', 'cyclist', 'package.json');
74
- if (!existsSync(packageJsonPath)) {
75
- assert.fail('packages/cyclist/package.json must exist first');
76
- }
77
- const pkg = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
78
- const deps = pkg.dependencies || {};
79
- assert.ok(!deps['pennyfarthing'] || !deps['pennyfarthing'].includes('github'), 'packages/cyclist should NOT have GitHub pennyfarthing dependency (use workspace instead)');
80
- });
81
- it('should be listed in pnpm-workspace.yaml packages', () => {
82
- const workspaceYamlPath = join(PROJECT_ROOT, 'pnpm-workspace.yaml');
83
- const content = readFileSync(workspaceYamlPath, 'utf-8');
84
- // packages/* pattern should include packages/cyclist
85
- assert.ok(content.includes('packages/*') || content.includes('packages/cyclist'), 'pnpm-workspace.yaml should include packages/cyclist (via packages/* pattern)');
86
- });
87
- });
88
- describe('AC3: Portrait resolution uses @pennyfarthing/shared', () => {
89
- it('should import from @pennyfarthing/shared in paths.ts', () => {
90
- const pathsPath = join(PROJECT_ROOT, 'packages', 'cyclist', 'src', 'paths.ts');
91
- if (!existsSync(pathsPath)) {
92
- assert.fail('packages/cyclist/src/paths.ts must exist first');
93
- }
94
- const content = readFileSync(pathsPath, 'utf-8');
95
- assert.ok(content.includes('@pennyfarthing/shared'), 'paths.ts should import from @pennyfarthing/shared');
96
- });
97
- it('should use resolvePennyfarthingDist from shared package', () => {
98
- const pathsPath = join(PROJECT_ROOT, 'packages', 'cyclist', 'src', 'paths.ts');
99
- if (!existsSync(pathsPath)) {
100
- assert.fail('packages/cyclist/src/paths.ts must exist first');
101
- }
102
- const content = readFileSync(pathsPath, 'utf-8');
103
- assert.ok(content.includes('resolvePennyfarthingDist'), 'paths.ts should use resolvePennyfarthingDist from @pennyfarthing/shared');
104
- });
105
- it('should use getPortraitPaths from shared package', () => {
106
- const pathsPath = join(PROJECT_ROOT, 'packages', 'cyclist', 'src', 'paths.ts');
107
- if (!existsSync(pathsPath)) {
108
- assert.fail('packages/cyclist/src/paths.ts must exist first');
109
- }
110
- const content = readFileSync(pathsPath, 'utf-8');
111
- assert.ok(content.includes('getPortraitPaths'), 'paths.ts should use getPortraitPaths from @pennyfarthing/shared');
112
- });
113
- it('should NOT have hardcoded pennyfarthing path in getPortraitsDir', () => {
114
- const pathsPath = join(PROJECT_ROOT, 'packages', 'cyclist', 'src', 'paths.ts');
115
- if (!existsSync(pathsPath)) {
116
- assert.fail('packages/cyclist/src/paths.ts must exist first');
117
- }
118
- const content = readFileSync(pathsPath, 'utf-8');
119
- // Should not contain the old hardcoded path logic (join calls, not comments)
120
- // Old pattern was: join(..., 'pennyfarthing', 'pennyfarthing-dist')
121
- const hasOldPattern = content.includes("join(__dirname, 'pennyfarthing', 'pennyfarthing-dist')") ||
122
- content.includes('join(__dirname, "pennyfarthing", "pennyfarthing-dist")');
123
- assert.ok(!hasOldPattern, 'paths.ts should NOT have hardcoded pennyfarthing path - use shared resolver instead');
124
- });
125
- });
126
- describe('AC4: Electron app starts and shows portraits', () => {
127
- // Note: Full build verification requires pnpm install which needs workspace resolution
128
- // These tests verify the package configuration is correct for building
129
- it('should have Electron dependency', () => {
130
- const packageJsonPath = join(PROJECT_ROOT, 'packages', 'cyclist', 'package.json');
131
- if (!existsSync(packageJsonPath)) {
132
- assert.fail('packages/cyclist/package.json must exist first');
133
- }
134
- const pkg = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
135
- const devDeps = pkg.devDependencies || {};
136
- assert.ok(devDeps['electron'], 'packages/cyclist should have electron as devDependency');
137
- });
138
- it('should have build script in package.json', () => {
139
- const packageJsonPath = join(PROJECT_ROOT, 'packages', 'cyclist', 'package.json');
140
- if (!existsSync(packageJsonPath)) {
141
- assert.fail('packages/cyclist/package.json must exist first');
142
- }
143
- const pkg = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
144
- assert.ok(pkg.scripts?.build, 'packages/cyclist should have a build script');
145
- });
146
- it('should have main entry point configured', () => {
147
- const packageJsonPath = join(PROJECT_ROOT, 'packages', 'cyclist', 'package.json');
148
- if (!existsSync(packageJsonPath)) {
149
- assert.fail('packages/cyclist/package.json must exist first');
150
- }
151
- const pkg = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));
152
- assert.ok(pkg.main, 'packages/cyclist should have a main entry point');
153
- });
154
- });
155
- describe('AC5: Dogfooding scenario works', () => {
156
- it('should resolve portraits from pennyfarthing-dist in monorepo', () => {
157
- // This test validates that portrait resolution works in the monorepo context
158
- const pennyfarthingDist = join(PROJECT_ROOT, 'pennyfarthing-dist');
159
- assert.ok(existsSync(pennyfarthingDist), 'pennyfarthing-dist/ should exist at monorepo root for dogfooding');
160
- });
161
- it('should have portraits directory in pennyfarthing-dist', () => {
162
- const portraitsDir = join(PROJECT_ROOT, 'pennyfarthing-dist', 'personas', 'portraits');
163
- assert.ok(existsSync(portraitsDir), 'pennyfarthing-dist/personas/portraits/ should exist');
164
- });
165
- it('should have at least one theme with portraits', () => {
166
- const portraitsDir = join(PROJECT_ROOT, 'pennyfarthing-dist', 'personas', 'portraits');
167
- if (!existsSync(portraitsDir)) {
168
- assert.fail('portraits directory must exist first');
169
- }
170
- const themes = readdirSync(portraitsDir);
171
- assert.ok(themes.length > 0, 'Should have at least one theme directory in portraits');
172
- });
173
- it('should have paths.ts configured to use shared resolver', () => {
174
- // Verify paths.ts source code uses the shared resolver
175
- // Runtime verification requires pnpm install + build
176
- const pathsPath = join(PROJECT_ROOT, 'packages', 'cyclist', 'src', 'paths.ts');
177
- if (!existsSync(pathsPath)) {
178
- assert.fail('packages/cyclist/src/paths.ts must exist');
179
- }
180
- const content = readFileSync(pathsPath, 'utf-8');
181
- assert.ok(content.includes('resolvePennyfarthingDist') && content.includes('getPortraitPaths'), 'paths.ts should use resolvePennyfarthingDist and getPortraitPaths from shared');
182
- });
183
- });
184
- describe('Build Integration', () => {
185
- // Note: Full TypeScript compilation requires pnpm install to resolve workspace dependencies
186
- // These tests verify the build configuration is correct
187
- it('should have valid tsconfig.json extending base', () => {
188
- const tsconfigPath = join(PROJECT_ROOT, 'packages', 'cyclist', 'tsconfig.json');
189
- if (!existsSync(tsconfigPath)) {
190
- assert.fail('packages/cyclist/tsconfig.json must exist');
191
- }
192
- const content = readFileSync(tsconfigPath, 'utf-8');
193
- const tsconfig = JSON.parse(content);
194
- assert.ok(tsconfig.extends?.includes('tsconfig.base.json'), 'tsconfig.json should extend ../../tsconfig.base.json');
195
- });
196
- it('should have outDir configured for dist', () => {
197
- const tsconfigPath = join(PROJECT_ROOT, 'packages', 'cyclist', 'tsconfig.json');
198
- if (!existsSync(tsconfigPath)) {
199
- assert.fail('packages/cyclist/tsconfig.json must exist');
200
- }
201
- const content = readFileSync(tsconfigPath, 'utf-8');
202
- const tsconfig = JSON.parse(content);
203
- assert.strictEqual(tsconfig.compilerOptions?.outDir, 'dist', 'tsconfig.json should output to dist directory');
204
- });
205
- });
206
- describe('Source File Completeness', () => {
207
- it('should have pennyfarthing.ts (persona/theme loading)', () => {
208
- const pennyfarthingTs = join(PROJECT_ROOT, 'packages', 'cyclist', 'src', 'pennyfarthing.ts');
209
- assert.ok(existsSync(pennyfarthingTs), 'packages/cyclist/src/pennyfarthing.ts must exist');
210
- });
211
- it('should have server.ts (Express server)', () => {
212
- const serverTs = join(PROJECT_ROOT, 'packages', 'cyclist', 'src', 'server.ts');
213
- assert.ok(existsSync(serverTs), 'packages/cyclist/src/server.ts must exist');
214
- });
215
- it('should have api/ directory', () => {
216
- const apiDir = join(PROJECT_ROOT, 'packages', 'cyclist', 'src', 'api');
217
- assert.ok(existsSync(apiDir), 'packages/cyclist/src/api/ directory must exist');
218
- });
219
- it('should have tests/ directory', () => {
220
- const testsDir = join(PROJECT_ROOT, 'packages', 'cyclist', 'tests');
221
- assert.ok(existsSync(testsDir), 'packages/cyclist/tests/ directory must exist');
222
- });
223
- });
224
- });
225
- //# sourceMappingURL=cyclist-migration.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cyclist-migration.test.js","sourceRoot":"","sources":["../../src/cli/cyclist-migration.test.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
package/dist/cli/index.js DELETED
@@ -1,174 +0,0 @@
1
- #!/usr/bin/env node
2
- import { Command } from 'commander';
3
- import { readFileSync } from 'fs';
4
- import { fileURLToPath } from 'url';
5
- import { dirname, join } from 'path';
6
- import { initCommand } from './commands/init.js';
7
- import { updateCommand } from './commands/update.js';
8
- import { doctorCommand } from './commands/doctor.js';
9
- import { uninstallCommand } from './commands/uninstall.js';
10
- import { versionCommand } from './commands/version.js';
11
- import { listCommand as themeListCommand, setCommand as themeSetCommand, showCommand as themeShowCommand, createCommand as themeCreateCommand } from './commands/theme.js';
12
- import { listCommand as cmdListCommand, addCommand as cmdAddCommand, removeCommand as cmdRemoveCommand, linkCommand as cmdLinkCommand, syncCommand as cmdSyncCommand } from './commands/command.js';
13
- import { listSkill as skillListCommand, addSkill as skillAddCommand, removeSkill as skillRemoveCommand, linkSkill as skillLinkCommand, syncSkill as skillSyncCommand } from './commands/skill.js';
14
- import { cyclistCommand } from './commands/cyclist.js';
15
- const __filename = fileURLToPath(import.meta.url);
16
- const __dirname = dirname(__filename);
17
- // Read version from VERSION file
18
- const versionFile = join(__dirname, '../../VERSION');
19
- let version = '2.0.0';
20
- try {
21
- version = readFileSync(versionFile, 'utf8').trim();
22
- }
23
- catch {
24
- // Fallback to package.json version
25
- try {
26
- const pkg = JSON.parse(readFileSync(join(__dirname, '../../package.json'), 'utf8'));
27
- version = pkg.version;
28
- }
29
- catch {
30
- // Use default
31
- }
32
- }
33
- const program = new Command();
34
- program
35
- .name('pennyfarthing')
36
- .description('Claude Code agent framework with TDD workflow and persona system')
37
- .version(version);
38
- program
39
- .command('init')
40
- .description('Initialize Pennyfarthing in a project')
41
- .argument('[project-name]', 'Name of the project')
42
- .option('-f, --force', 'Skip prompts, overwrite existing files')
43
- .option('--skip-templates', 'Skip generating template files')
44
- .option('--dry-run', 'Show what would be done without doing it')
45
- .action(initCommand);
46
- program
47
- .command('update')
48
- .description('Update Pennyfarthing to the latest version')
49
- .option('-f, --force', 'Overwrite locally modified files')
50
- .option('-b, --backup', 'Backup modified files before replacing')
51
- .option('-c, --check', 'Just check if update is available')
52
- .option('--dry-run', 'Show what would be updated')
53
- .action(updateCommand);
54
- program
55
- .command('doctor')
56
- .description('Check installation health and diagnose issues')
57
- .option('--fix', 'Auto-apply recommended fixes')
58
- .option('--json', 'Output in JSON format')
59
- .option('-q, --quiet', 'Only show errors')
60
- .option('--dogfood', 'Run dogfooding checks (for pennyfarthing repo development)')
61
- .action(doctorCommand);
62
- program
63
- .command('uninstall')
64
- .description('Remove Pennyfarthing from the project')
65
- .option('-f, --force', 'Skip confirmation prompts')
66
- .option('-a, --all', 'Also remove project-specific files (.claude/project, .session)')
67
- .option('--dry-run', 'Show what would be removed without removing')
68
- .action(uninstallCommand);
69
- program
70
- .command('version')
71
- .description('Show version information')
72
- .action(versionCommand);
73
- program
74
- .command('cyclist')
75
- .description('Launch Cyclist with Pennyfarthing context')
76
- .option('-p, --port <port>', 'Server port', '3000')
77
- .option('--no-open', "Don't open browser automatically")
78
- .option('--cyclist-path <path>', 'Path to cyclist installation')
79
- .action(async (options) => {
80
- await cyclistCommand({
81
- port: options.port ? parseInt(options.port, 10) : undefined,
82
- noOpen: options.open === false,
83
- cyclistPath: options.cyclistPath,
84
- });
85
- });
86
- // Theme management commands
87
- const themeCmd = program
88
- .command('theme')
89
- .description('Manage persona themes');
90
- themeCmd
91
- .command('list')
92
- .description('List available themes')
93
- .action(themeListCommand);
94
- themeCmd
95
- .command('set')
96
- .description('Set the active theme')
97
- .argument('<name>', 'Theme name to activate')
98
- .action(themeSetCommand);
99
- themeCmd
100
- .command('show')
101
- .description('Show details of a theme')
102
- .argument('[name]', 'Theme name (defaults to current theme)')
103
- .action(themeShowCommand);
104
- themeCmd
105
- .command('create')
106
- .description('Create a new custom theme')
107
- .argument('<name>', 'Name for the new theme (lowercase, hyphens allowed)')
108
- .option('-b, --base <theme>', 'Base theme to copy from', 'minimalist')
109
- .option('-u, --user', 'Create as user-level theme (available across projects)')
110
- .action(themeCreateCommand);
111
- // Command management commands
112
- const cmdCmd = program
113
- .command('command')
114
- .description('Manage custom slash commands');
115
- cmdCmd
116
- .command('list')
117
- .description('List all available commands')
118
- .action(cmdListCommand);
119
- cmdCmd
120
- .command('add')
121
- .description('Create a new custom command')
122
- .argument('<name>', 'Command name (lowercase, hyphens allowed)')
123
- .option('-t, --template <type>', 'Template type: default, agent, task', 'default')
124
- .option('-e, --edit', 'Open in editor after creation')
125
- .action(cmdAddCommand);
126
- cmdCmd
127
- .command('remove')
128
- .description('Remove a custom command')
129
- .argument('<name>', 'Command name to remove')
130
- .option('-f, --force', 'Skip confirmation prompts')
131
- .action(cmdRemoveCommand);
132
- cmdCmd
133
- .command('link')
134
- .description('Link an existing command file from project/commands/')
135
- .argument('<name>', 'Command name to link')
136
- .action(cmdLinkCommand);
137
- cmdCmd
138
- .command('sync')
139
- .description('Sync all user commands from project/commands/')
140
- .option('--dry-run', 'Show what would be done without doing it')
141
- .action(cmdSyncCommand);
142
- // Skill management commands
143
- const skillCmd = program
144
- .command('skill')
145
- .description('Manage custom skills');
146
- skillCmd
147
- .command('list')
148
- .description('List all available skills')
149
- .action(skillListCommand);
150
- skillCmd
151
- .command('add')
152
- .description('Create a new custom skill')
153
- .argument('<name>', 'Skill name (lowercase, hyphens allowed)')
154
- .option('-t, --template <type>', 'Template type: default, knowledge, workflow', 'default')
155
- .option('-e, --edit', 'Open in editor after creation')
156
- .action(skillAddCommand);
157
- skillCmd
158
- .command('remove')
159
- .description('Remove a custom skill')
160
- .argument('<name>', 'Skill name to remove')
161
- .option('-f, --force', 'Skip confirmation prompts')
162
- .action(skillRemoveCommand);
163
- skillCmd
164
- .command('link')
165
- .description('Link an existing skill file from project/skills/')
166
- .argument('<name>', 'Skill name to link')
167
- .action(skillLinkCommand);
168
- skillCmd
169
- .command('sync')
170
- .description('Sync all user skills from project/skills/')
171
- .option('--dry-run', 'Show what would be done without doing it')
172
- .action(skillSyncCommand);
173
- program.parse();
174
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- /**
2
- * Tests for Story 11-2: Add OCEAN Profiles to 10 Anchor Themes
3
- *
4
- * These tests verify:
5
- * - 10 anchor theme YAMLs have ocean blocks
6
- * - All 10 agents in each theme have OCEAN scores
7
- * - Each OCEAN score uses the 1-5 integer scale
8
- * - 100 character profiles defined (10 themes × 10 agents)
9
- *
10
- * Run with: npm test
11
- */
12
- export {};
13
- //# sourceMappingURL=ocean-profiles.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ocean-profiles.test.d.ts","sourceRoot":"","sources":["../../src/cli/ocean-profiles.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG"}
@@ -1,134 +0,0 @@
1
- /**
2
- * Tests for Story 11-2: Add OCEAN Profiles to 10 Anchor Themes
3
- *
4
- * These tests verify:
5
- * - 10 anchor theme YAMLs have ocean blocks
6
- * - All 10 agents in each theme have OCEAN scores
7
- * - Each OCEAN score uses the 1-5 integer scale
8
- * - 100 character profiles defined (10 themes × 10 agents)
9
- *
10
- * Run with: npm test
11
- */
12
- import { describe, it } from 'node:test';
13
- import assert from 'node:assert';
14
- import { existsSync, readFileSync } from 'fs';
15
- import { join, dirname } from 'path';
16
- import { fileURLToPath } from 'url';
17
- import { parse as parseYaml } from 'yaml';
18
- import { findMonorepoRoot } from './utils/files.js';
19
- const __filename = fileURLToPath(import.meta.url);
20
- const __dirname = dirname(__filename);
21
- // Find monorepo root by walking up from current directory
22
- const projectRoot = findMonorepoRoot(__dirname);
23
- const themesDir = join(projectRoot, 'pennyfarthing-dist', 'personas', 'themes');
24
- // 10 anchor themes for Phase 1
25
- const ANCHOR_THEMES = [
26
- 'deadwood',
27
- 'firefly',
28
- 'breaking-bad',
29
- 'the-good-place',
30
- 'star-trek-tng',
31
- 'discworld',
32
- 'fargo',
33
- 'succession',
34
- 'mass-effect',
35
- 'software-pioneers',
36
- ];
37
- // 10 agent roles
38
- const AGENT_ROLES = [
39
- 'orchestrator',
40
- 'sm',
41
- 'tea',
42
- 'dev',
43
- 'reviewer',
44
- 'architect',
45
- 'pm',
46
- 'tech-writer',
47
- 'ux-designer',
48
- 'devops',
49
- ];
50
- // OCEAN dimensions
51
- const OCEAN_KEYS = ['O', 'C', 'E', 'A', 'N'];
52
- // Helper to load and parse theme YAML
53
- function loadTheme(themeName) {
54
- const filePath = join(themesDir, `${themeName}.yaml`);
55
- if (!existsSync(filePath)) {
56
- throw new Error(`Theme file not found: ${filePath}`);
57
- }
58
- const content = readFileSync(filePath, 'utf-8');
59
- return parseYaml(content);
60
- }
61
- describe('OCEAN Profiles - Anchor Themes', () => {
62
- it('should have all 10 anchor theme files', () => {
63
- for (const theme of ANCHOR_THEMES) {
64
- const filePath = join(themesDir, `${theme}.yaml`);
65
- assert.ok(existsSync(filePath), `Missing anchor theme: ${theme}.yaml`);
66
- }
67
- });
68
- });
69
- describe('OCEAN Profiles - Structure Validation', () => {
70
- for (const themeName of ANCHOR_THEMES) {
71
- describe(`Theme: ${themeName}`, () => {
72
- it('should have agents section', () => {
73
- const theme = loadTheme(themeName);
74
- assert.ok('agents' in theme && typeof theme.agents === 'object', `${themeName} should have agents section`);
75
- });
76
- it('should have all 10 agent roles', () => {
77
- const theme = loadTheme(themeName);
78
- const agents = theme.agents;
79
- for (const role of AGENT_ROLES) {
80
- assert.ok(role in agents, `${themeName} missing agent role: ${role}`);
81
- }
82
- });
83
- for (const role of AGENT_ROLES) {
84
- it(`agent ${role} should have ocean block`, () => {
85
- const theme = loadTheme(themeName);
86
- const agents = theme.agents;
87
- const agent = agents[role];
88
- assert.ok(agent && 'ocean' in agent, `${themeName}/${role} missing ocean block`);
89
- });
90
- it(`agent ${role} ocean block should have all 5 OCEAN keys`, () => {
91
- const theme = loadTheme(themeName);
92
- const agents = theme.agents;
93
- const agent = agents[role];
94
- const ocean = agent?.ocean;
95
- assert.ok(ocean, `${themeName}/${role} missing ocean block`);
96
- for (const key of OCEAN_KEYS) {
97
- assert.ok(key in ocean, `${themeName}/${role}/ocean missing key: ${key}`);
98
- }
99
- });
100
- it(`agent ${role} OCEAN values should be integers 1-5`, () => {
101
- const theme = loadTheme(themeName);
102
- const agents = theme.agents;
103
- const agent = agents[role];
104
- const ocean = agent?.ocean;
105
- assert.ok(ocean, `${themeName}/${role} missing ocean block`);
106
- for (const key of OCEAN_KEYS) {
107
- const value = ocean[key];
108
- assert.ok(typeof value === 'number' &&
109
- Number.isInteger(value) &&
110
- value >= 1 &&
111
- value <= 5, `${themeName}/${role}/ocean/${key} should be integer 1-5, got: ${value}`);
112
- }
113
- });
114
- }
115
- });
116
- }
117
- });
118
- describe('OCEAN Profiles - Completeness', () => {
119
- it('should have exactly 100 character profiles (10 themes × 10 agents)', () => {
120
- let profileCount = 0;
121
- for (const themeName of ANCHOR_THEMES) {
122
- const theme = loadTheme(themeName);
123
- const agents = theme.agents;
124
- for (const role of AGENT_ROLES) {
125
- const agent = agents[role];
126
- if (agent && 'ocean' in agent) {
127
- profileCount++;
128
- }
129
- }
130
- }
131
- assert.strictEqual(profileCount, 100, `Expected 100 character profiles, found ${profileCount}`);
132
- });
133
- });
134
- //# sourceMappingURL=ocean-profiles.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ocean-profiles.test.js","sourceRoot":"","sources":["../../src/cli/ocean-profiles.test.ts"],"names":[],"mappings":"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"}
@@ -1,11 +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
- export {};
11
- //# sourceMappingURL=theme-maker.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"theme-maker.test.d.ts","sourceRoot":"","sources":["../../src/cli/theme-maker.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}