@pennyfarthing/core 11.4.0 → 11.5.0-alpha.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 (511) hide show
  1. package/package.json +1 -1
  2. package/packages/core/dist/cli/commands/cyclist.js +1 -1
  3. package/packages/core/dist/cli/commands/cyclist.js.map +1 -1
  4. package/packages/core/dist/cli/commands/cyclist.test.js +3 -3
  5. package/packages/core/dist/cli/commands/cyclist.test.js.map +1 -1
  6. package/packages/core/dist/cli/commands/doctor-persona-config-false-negative.test.d.ts +22 -0
  7. package/packages/core/dist/cli/commands/doctor-persona-config-false-negative.test.d.ts.map +1 -0
  8. package/packages/core/dist/cli/commands/doctor-persona-config-false-negative.test.js +161 -0
  9. package/packages/core/dist/cli/commands/doctor-persona-config-false-negative.test.js.map +1 -0
  10. package/packages/core/dist/cli/commands/doctor.d.ts.map +1 -1
  11. package/packages/core/dist/cli/commands/doctor.js +101 -33
  12. package/packages/core/dist/cli/commands/doctor.js.map +1 -1
  13. package/packages/core/dist/cli/commands/init.d.ts.map +1 -1
  14. package/packages/core/dist/cli/commands/init.js +33 -13
  15. package/packages/core/dist/cli/commands/init.js.map +1 -1
  16. package/packages/core/dist/cli/commands/stale-artifacts-cleanup.test.d.ts +17 -0
  17. package/packages/core/dist/cli/commands/stale-artifacts-cleanup.test.d.ts.map +1 -0
  18. package/packages/core/dist/cli/commands/stale-artifacts-cleanup.test.js +470 -0
  19. package/packages/core/dist/cli/commands/stale-artifacts-cleanup.test.js.map +1 -0
  20. package/packages/core/dist/cli/commands/update.d.ts.map +1 -1
  21. package/packages/core/dist/cli/commands/update.js +68 -17
  22. package/packages/core/dist/cli/commands/update.js.map +1 -1
  23. package/packages/core/dist/cli/cyclist-migration.test.d.ts +16 -0
  24. package/packages/core/dist/cli/cyclist-migration.test.d.ts.map +1 -0
  25. package/packages/core/dist/cli/cyclist-migration.test.js +229 -0
  26. package/packages/core/dist/cli/cyclist-migration.test.js.map +1 -0
  27. package/packages/core/dist/cli/index.js +2 -21
  28. package/packages/core/dist/cli/index.js.map +1 -1
  29. package/packages/core/dist/cli/utils/node-modules.d.ts +7 -0
  30. package/packages/core/dist/cli/utils/node-modules.d.ts.map +1 -1
  31. package/packages/core/dist/cli/utils/node-modules.js +39 -0
  32. package/packages/core/dist/cli/utils/node-modules.js.map +1 -1
  33. package/packages/core/dist/cli/utils/settings.d.ts +1 -1
  34. package/packages/core/dist/cli/utils/settings.d.ts.map +1 -1
  35. package/packages/core/dist/cli/utils/settings.js +24 -21
  36. package/packages/core/dist/cli/utils/settings.js.map +1 -1
  37. package/packages/core/dist/cli/utils/stale-artifacts.d.ts +59 -0
  38. package/packages/core/dist/cli/utils/stale-artifacts.d.ts.map +1 -0
  39. package/packages/core/dist/cli/utils/stale-artifacts.js +163 -0
  40. package/packages/core/dist/cli/utils/stale-artifacts.js.map +1 -0
  41. package/packages/core/dist/public/css/react.css +1 -1
  42. package/packages/core/dist/public/js/react/react.js +39 -39
  43. package/packages/core/dist/scripts/benchmark-integration.d.ts +182 -0
  44. package/packages/core/dist/scripts/benchmark-integration.d.ts.map +1 -0
  45. package/packages/core/dist/scripts/benchmark-integration.js +691 -0
  46. package/packages/core/dist/scripts/benchmark-integration.js.map +1 -0
  47. package/packages/core/dist/scripts/job-fair-aggregator.d.ts +150 -0
  48. package/packages/core/dist/scripts/job-fair-aggregator.d.ts.map +1 -0
  49. package/packages/core/dist/scripts/job-fair-aggregator.js +547 -0
  50. package/packages/core/dist/scripts/job-fair-aggregator.js.map +1 -0
  51. package/packages/core/dist/scripts/theme-detail.test.d.ts.map +1 -0
  52. package/packages/core/dist/scripts/theme-detail.test.js.map +1 -0
  53. package/packages/core/dist/server/api/context.d.ts.map +1 -1
  54. package/packages/core/dist/server/api/context.js +23 -5
  55. package/packages/core/dist/server/api/context.js.map +1 -1
  56. package/packages/core/dist/server/api/index.d.ts +0 -1
  57. package/packages/core/dist/server/api/index.d.ts.map +1 -1
  58. package/packages/core/dist/server/api/index.js +0 -2
  59. package/packages/core/dist/server/api/index.js.map +1 -1
  60. package/packages/core/dist/server/api/settings.d.ts.map +1 -1
  61. package/packages/core/dist/server/api/settings.js +6 -0
  62. package/packages/core/dist/server/api/settings.js.map +1 -1
  63. package/packages/core/dist/server/otlp-receiver.d.ts +0 -4
  64. package/packages/core/dist/server/otlp-receiver.d.ts.map +1 -1
  65. package/packages/core/dist/server/otlp-receiver.js +0 -18
  66. package/packages/core/dist/server/otlp-receiver.js.map +1 -1
  67. package/packages/core/dist/server/otlp-receiver.test.js +0 -27
  68. package/packages/core/dist/server/otlp-receiver.test.js.map +1 -1
  69. package/packages/core/dist/server/server.d.ts +1 -1
  70. package/packages/core/dist/server/server.d.ts.map +1 -1
  71. package/packages/core/dist/server/server.js +2 -4
  72. package/packages/core/dist/server/server.js.map +1 -1
  73. package/packages/core/dist/workflow/cross-entity-validation.d.ts.map +1 -1
  74. package/packages/core/dist/workflow/cross-entity-validation.js.map +1 -1
  75. package/packages/core/src/public/App.tsx +0 -2
  76. package/packages/core/src/public/components/BikeRackWorkspace.tsx +0 -2
  77. package/packages/core/src/public/components/DockviewWorkspace.tsx +0 -4
  78. package/packages/core/src/public/components/StandalonePanel.tsx +0 -2
  79. package/packages/core/src/public/components/panels/SettingsPanel.tsx +83 -283
  80. package/packages/core/src/public/components/panels/SprintPanel.tsx +9 -1
  81. package/packages/core/src/public/components/panels/index.ts +0 -1
  82. package/packages/core/src/public/hooks/index.ts +0 -3
  83. package/packages/core/src/public/hooks/useSprint.ts +11 -2
  84. package/packages/core/src/public/images/cyclist-tandem-source.png +0 -0
  85. package/packages/core/src/public/styles/tailwind.css +0 -101
  86. package/pennyfarthing-dist/guides/bikerack.md +94 -0
  87. package/pennyfarthing-dist/personas/themes/firefly.yaml +12 -12
  88. package/pennyfarthing-dist/pf/__pycache__/__init__.cpython-311.pyc +0 -0
  89. package/pennyfarthing-dist/pf/__pycache__/__init__.cpython-314.pyc +0 -0
  90. package/pennyfarthing-dist/pf/__pycache__/bellmode_hook.cpython-314.pyc +0 -0
  91. package/pennyfarthing-dist/pf/__pycache__/cli.cpython-311.pyc +0 -0
  92. package/pennyfarthing-dist/pf/__pycache__/cli.cpython-314.pyc +0 -0
  93. package/pennyfarthing-dist/pf/__pycache__/config.cpython-314.pyc +0 -0
  94. package/pennyfarthing-dist/pf/__pycache__/context.cpython-311.pyc +0 -0
  95. package/pennyfarthing-dist/pf/__pycache__/context.cpython-314.pyc +0 -0
  96. package/pennyfarthing-dist/pf/__pycache__/hooks.cpython-314.pyc +0 -0
  97. package/pennyfarthing-dist/pf/__pycache__/jira.cpython-314.pyc +0 -0
  98. package/pennyfarthing-dist/pf/__pycache__/jira_bidirectional_sync.cpython-314.pyc +0 -0
  99. package/pennyfarthing-dist/pf/__pycache__/jira_epic_creation.cpython-314.pyc +0 -0
  100. package/pennyfarthing-dist/pf/__pycache__/jira_sync.cpython-314.pyc +0 -0
  101. package/pennyfarthing-dist/pf/__pycache__/jira_sync_story.cpython-314.pyc +0 -0
  102. package/pennyfarthing-dist/pf/__pycache__/output.cpython-314.pyc +0 -0
  103. package/pennyfarthing-dist/pf/__pycache__/patch_mode.cpython-314.pyc +0 -0
  104. package/pennyfarthing-dist/pf/__pycache__/pretooluse_hook.cpython-314.pyc +0 -0
  105. package/pennyfarthing-dist/pf/__pycache__/schema_validation_hook.cpython-314.pyc +0 -0
  106. package/pennyfarthing-dist/pf/__pycache__/session_start_hook.cpython-314.pyc +0 -0
  107. package/pennyfarthing-dist/pf/__pycache__/sprint.cpython-314.pyc +0 -0
  108. package/pennyfarthing-dist/pf/__pycache__/workflow.cpython-311.pyc +0 -0
  109. package/pennyfarthing-dist/pf/__pycache__/workflow.cpython-314.pyc +0 -0
  110. package/pennyfarthing-dist/pf/bc/__pycache__/__init__.cpython-311.pyc +0 -0
  111. package/pennyfarthing-dist/pf/bc/__pycache__/__init__.cpython-314.pyc +0 -0
  112. package/pennyfarthing-dist/pf/bc/__pycache__/cli.cpython-311.pyc +0 -0
  113. package/pennyfarthing-dist/pf/bc/__pycache__/cli.cpython-314.pyc +0 -0
  114. package/pennyfarthing-dist/pf/bc/__pycache__/focus.cpython-311.pyc +0 -0
  115. package/pennyfarthing-dist/pf/bc/__pycache__/focus.cpython-314.pyc +0 -0
  116. package/pennyfarthing-dist/pf/bc/__pycache__/split.cpython-314.pyc +0 -0
  117. package/pennyfarthing-dist/pf/bc/cli.py +0 -1
  118. package/pennyfarthing-dist/pf/bc/focus.py +0 -1
  119. package/pennyfarthing-dist/pf/bikerack/__pycache__/__init__.cpython-311.pyc +0 -0
  120. package/pennyfarthing-dist/pf/bikerack/__pycache__/__init__.cpython-314.pyc +0 -0
  121. package/pennyfarthing-dist/pf/bikerack/__pycache__/__main__.cpython-314.pyc +0 -0
  122. package/pennyfarthing-dist/pf/bikerack/__pycache__/audit_log_panel.cpython-314.pyc +0 -0
  123. package/pennyfarthing-dist/pf/bikerack/__pycache__/background_panel.cpython-314.pyc +0 -0
  124. package/pennyfarthing-dist/pf/bikerack/__pycache__/base_panel.cpython-314.pyc +0 -0
  125. package/pennyfarthing-dist/pf/bikerack/__pycache__/changed_panel.cpython-314.pyc +0 -0
  126. package/pennyfarthing-dist/pf/bikerack/__pycache__/cli.cpython-311.pyc +0 -0
  127. package/pennyfarthing-dist/pf/bikerack/__pycache__/cli.cpython-314.pyc +0 -0
  128. package/pennyfarthing-dist/pf/bikerack/__pycache__/context_meter_footer.cpython-314.pyc +0 -0
  129. package/pennyfarthing-dist/pf/bikerack/__pycache__/debug_panel.cpython-314.pyc +0 -0
  130. package/pennyfarthing-dist/pf/bikerack/__pycache__/diffs_panel.cpython-314.pyc +0 -0
  131. package/pennyfarthing-dist/pf/bikerack/__pycache__/events.cpython-314.pyc +0 -0
  132. package/pennyfarthing-dist/pf/bikerack/__pycache__/git_panel.cpython-314.pyc +0 -0
  133. package/pennyfarthing-dist/pf/bikerack/__pycache__/launcher.cpython-311.pyc +0 -0
  134. package/pennyfarthing-dist/pf/bikerack/__pycache__/launcher.cpython-314.pyc +0 -0
  135. package/pennyfarthing-dist/pf/bikerack/__pycache__/portrait_resolver.cpython-314.pyc +0 -0
  136. package/pennyfarthing-dist/pf/bikerack/__pycache__/progress_panel.cpython-314.pyc +0 -0
  137. package/pennyfarthing-dist/pf/bikerack/__pycache__/sprint_panel.cpython-314.pyc +0 -0
  138. package/pennyfarthing-dist/pf/bikerack/__pycache__/story_detail_data.cpython-314.pyc +0 -0
  139. package/pennyfarthing-dist/pf/bikerack/__pycache__/story_detail_screen.cpython-314.pyc +0 -0
  140. package/pennyfarthing-dist/pf/bikerack/__pycache__/story_detail_widget.cpython-314.pyc +0 -0
  141. package/pennyfarthing-dist/pf/bikerack/__pycache__/tui.cpython-314.pyc +0 -0
  142. package/pennyfarthing-dist/pf/bikerack/__pycache__/ws_client.cpython-314.pyc +0 -0
  143. package/pennyfarthing-dist/pf/bikerack/context_meter_footer.py +115 -35
  144. package/pennyfarthing-dist/pf/bikerack/portrait_resolver.py +14 -2
  145. package/pennyfarthing-dist/pf/bikerack/progress_panel.py +54 -0
  146. package/pennyfarthing-dist/pf/bikerack/sprint_panel.py +58 -0
  147. package/pennyfarthing-dist/pf/bikerack/story_detail_screen.py +10 -105
  148. package/pennyfarthing-dist/pf/bikerack/story_detail_widget.py +167 -0
  149. package/pennyfarthing-dist/pf/bikerack/tui.py +140 -50
  150. package/pennyfarthing-dist/pf/bmad/__pycache__/__init__.cpython-314.pyc +0 -0
  151. package/pennyfarthing-dist/pf/bmad/__pycache__/cli.cpython-314.pyc +0 -0
  152. package/pennyfarthing-dist/pf/bmad/cli.py +0 -1
  153. package/pennyfarthing-dist/pf/bmad/importer.py +0 -1
  154. package/pennyfarthing-dist/pf/bmad/parser.py +0 -1
  155. package/pennyfarthing-dist/pf/bmad/sync.py +1 -3
  156. package/pennyfarthing-dist/pf/bmad/test_parser.py +0 -4
  157. package/pennyfarthing-dist/pf/bmad/test_sync.py +0 -3
  158. package/pennyfarthing-dist/pf/brownfield/__pycache__/__init__.cpython-314.pyc +0 -0
  159. package/pennyfarthing-dist/pf/brownfield/__pycache__/__main__.cpython-314.pyc +0 -0
  160. package/pennyfarthing-dist/pf/brownfield/__pycache__/cli.cpython-314.pyc +0 -0
  161. package/pennyfarthing-dist/pf/brownfield/__pycache__/discover.cpython-314.pyc +0 -0
  162. package/pennyfarthing-dist/pf/brownfield/cli.py +1 -1
  163. package/pennyfarthing-dist/pf/cli.py +145 -111
  164. package/pennyfarthing-dist/pf/codemarkers/__pycache__/__init__.cpython-314.pyc +0 -0
  165. package/pennyfarthing-dist/pf/codemarkers/__pycache__/__main__.cpython-314.pyc +0 -0
  166. package/pennyfarthing-dist/pf/codemarkers/__pycache__/analyze.cpython-314.pyc +0 -0
  167. package/pennyfarthing-dist/pf/codemarkers/__pycache__/cli.cpython-314.pyc +0 -0
  168. package/pennyfarthing-dist/pf/codemarkers/__pycache__/formatters.cpython-314.pyc +0 -0
  169. package/pennyfarthing-dist/pf/codemarkers/__pycache__/models.cpython-314.pyc +0 -0
  170. package/pennyfarthing-dist/pf/common/__init__.py +2 -0
  171. package/pennyfarthing-dist/pf/common/__pycache__/__init__.cpython-311.pyc +0 -0
  172. package/pennyfarthing-dist/pf/common/__pycache__/__init__.cpython-314.pyc +0 -0
  173. package/pennyfarthing-dist/pf/common/__pycache__/config.cpython-311.pyc +0 -0
  174. package/pennyfarthing-dist/pf/common/__pycache__/config.cpython-314.pyc +0 -0
  175. package/pennyfarthing-dist/pf/common/__pycache__/output.cpython-311.pyc +0 -0
  176. package/pennyfarthing-dist/pf/common/__pycache__/output.cpython-314.pyc +0 -0
  177. package/pennyfarthing-dist/pf/common/__pycache__/pr_config.cpython-314.pyc +0 -0
  178. package/pennyfarthing-dist/pf/common/__pycache__/themes.cpython-314.pyc +0 -0
  179. package/pennyfarthing-dist/pf/common/config.py +43 -0
  180. package/pennyfarthing-dist/pf/common/themes.py +7 -5
  181. package/pennyfarthing-dist/pf/complexity/__pycache__/__init__.cpython-314.pyc +0 -0
  182. package/pennyfarthing-dist/pf/complexity/__pycache__/__main__.cpython-314.pyc +0 -0
  183. package/pennyfarthing-dist/pf/complexity/__pycache__/analyze.cpython-314.pyc +0 -0
  184. package/pennyfarthing-dist/pf/complexity/__pycache__/cli.cpython-314.pyc +0 -0
  185. package/pennyfarthing-dist/pf/complexity/__pycache__/formatters.cpython-314.pyc +0 -0
  186. package/pennyfarthing-dist/pf/complexity/__pycache__/models.cpython-314.pyc +0 -0
  187. package/pennyfarthing-dist/pf/consultation/__pycache__/__init__.cpython-311.pyc +0 -0
  188. package/pennyfarthing-dist/pf/consultation/__pycache__/__init__.cpython-314.pyc +0 -0
  189. package/pennyfarthing-dist/pf/consultation/__pycache__/cli.cpython-311.pyc +0 -0
  190. package/pennyfarthing-dist/pf/consultation/__pycache__/cli.cpython-314.pyc +0 -0
  191. package/pennyfarthing-dist/pf/consultation/__pycache__/dialogue_manager.cpython-314.pyc +0 -0
  192. package/pennyfarthing-dist/pf/context.py +1 -1
  193. package/pennyfarthing-dist/pf/deadcode/__pycache__/__init__.cpython-311.pyc +0 -0
  194. package/pennyfarthing-dist/pf/deadcode/__pycache__/__init__.cpython-314.pyc +0 -0
  195. package/pennyfarthing-dist/pf/deadcode/__pycache__/__main__.cpython-314.pyc +0 -0
  196. package/pennyfarthing-dist/pf/deadcode/__pycache__/analyze.cpython-314.pyc +0 -0
  197. package/pennyfarthing-dist/pf/deadcode/__pycache__/cli.cpython-311.pyc +0 -0
  198. package/pennyfarthing-dist/pf/deadcode/__pycache__/cli.cpython-314.pyc +0 -0
  199. package/pennyfarthing-dist/pf/deadcode/__pycache__/formatters.cpython-314.pyc +0 -0
  200. package/pennyfarthing-dist/pf/deadcode/__pycache__/models.cpython-314.pyc +0 -0
  201. package/pennyfarthing-dist/pf/dependencies/__pycache__/__init__.cpython-314.pyc +0 -0
  202. package/pennyfarthing-dist/pf/dependencies/__pycache__/__main__.cpython-314.pyc +0 -0
  203. package/pennyfarthing-dist/pf/dependencies/__pycache__/analyze.cpython-314.pyc +0 -0
  204. package/pennyfarthing-dist/pf/dependencies/__pycache__/cli.cpython-314.pyc +0 -0
  205. package/pennyfarthing-dist/pf/dependencies/__pycache__/formatters.cpython-314.pyc +0 -0
  206. package/pennyfarthing-dist/pf/dependencies/__pycache__/models.cpython-314.pyc +0 -0
  207. package/pennyfarthing-dist/pf/epic/__pycache__/__init__.cpython-311.pyc +0 -0
  208. package/pennyfarthing-dist/pf/epic/__pycache__/__init__.cpython-314.pyc +0 -0
  209. package/pennyfarthing-dist/pf/epic/__pycache__/cli.cpython-311.pyc +0 -0
  210. package/pennyfarthing-dist/pf/epic/__pycache__/cli.cpython-314.pyc +0 -0
  211. package/pennyfarthing-dist/pf/git/__pycache__/__init__.cpython-314.pyc +0 -0
  212. package/pennyfarthing-dist/pf/git/__pycache__/create_branches.cpython-314.pyc +0 -0
  213. package/pennyfarthing-dist/pf/git/__pycache__/status_all.cpython-314.pyc +0 -0
  214. package/pennyfarthing-dist/pf/git/hooks_installer.py +7 -6
  215. package/pennyfarthing-dist/pf/git_group/__pycache__/__init__.cpython-311.pyc +0 -0
  216. package/pennyfarthing-dist/pf/git_group/__pycache__/__init__.cpython-314.pyc +0 -0
  217. package/pennyfarthing-dist/pf/git_group/__pycache__/cli.cpython-311.pyc +0 -0
  218. package/pennyfarthing-dist/pf/git_group/__pycache__/cli.cpython-314.pyc +0 -0
  219. package/pennyfarthing-dist/pf/handoff/__pycache__/__init__.cpython-311.pyc +0 -0
  220. package/pennyfarthing-dist/pf/handoff/__pycache__/__init__.cpython-314.pyc +0 -0
  221. package/pennyfarthing-dist/pf/handoff/__pycache__/cli.cpython-311.pyc +0 -0
  222. package/pennyfarthing-dist/pf/handoff/__pycache__/cli.cpython-314.pyc +0 -0
  223. package/pennyfarthing-dist/pf/handoff/__pycache__/complete_phase.cpython-314.pyc +0 -0
  224. package/pennyfarthing-dist/pf/handoff/__pycache__/gate_file.cpython-314.pyc +0 -0
  225. package/pennyfarthing-dist/pf/handoff/__pycache__/gate_runner.cpython-314.pyc +0 -0
  226. package/pennyfarthing-dist/pf/handoff/__pycache__/marker.cpython-314.pyc +0 -0
  227. package/pennyfarthing-dist/pf/handoff/__pycache__/phase_check.cpython-314.pyc +0 -0
  228. package/pennyfarthing-dist/pf/handoff/__pycache__/resolve_gate.cpython-314.pyc +0 -0
  229. package/pennyfarthing-dist/pf/handoff/gate_file.py +5 -1
  230. package/pennyfarthing-dist/pf/healthscore/__pycache__/__init__.cpython-311.pyc +0 -0
  231. package/pennyfarthing-dist/pf/healthscore/__pycache__/__init__.cpython-314.pyc +0 -0
  232. package/pennyfarthing-dist/pf/healthscore/__pycache__/__main__.cpython-314.pyc +0 -0
  233. package/pennyfarthing-dist/pf/healthscore/__pycache__/analyze.cpython-311.pyc +0 -0
  234. package/pennyfarthing-dist/pf/healthscore/__pycache__/analyze.cpython-314.pyc +0 -0
  235. package/pennyfarthing-dist/pf/healthscore/__pycache__/cli.cpython-311.pyc +0 -0
  236. package/pennyfarthing-dist/pf/healthscore/__pycache__/cli.cpython-314.pyc +0 -0
  237. package/pennyfarthing-dist/pf/healthscore/__pycache__/formatters.cpython-314.pyc +0 -0
  238. package/pennyfarthing-dist/pf/healthscore/__pycache__/models.cpython-311.pyc +0 -0
  239. package/pennyfarthing-dist/pf/healthscore/__pycache__/models.cpython-314.pyc +0 -0
  240. package/pennyfarthing-dist/pf/hooks/__pycache__/__init__.cpython-311.pyc +0 -0
  241. package/pennyfarthing-dist/pf/hooks/__pycache__/__init__.cpython-314.pyc +0 -0
  242. package/pennyfarthing-dist/pf/hooks/__pycache__/bell_mode.cpython-311.pyc +0 -0
  243. package/pennyfarthing-dist/pf/hooks/__pycache__/bell_mode.cpython-314.pyc +0 -0
  244. package/pennyfarthing-dist/pf/hooks/__pycache__/cli.cpython-311.pyc +0 -0
  245. package/pennyfarthing-dist/pf/hooks/__pycache__/cli.cpython-314.pyc +0 -0
  246. package/pennyfarthing-dist/pf/hooks/__pycache__/context_breaker.cpython-311.pyc +0 -0
  247. package/pennyfarthing-dist/pf/hooks/__pycache__/context_breaker.cpython-314.pyc +0 -0
  248. package/pennyfarthing-dist/pf/hooks/__pycache__/context_warning.cpython-311.pyc +0 -0
  249. package/pennyfarthing-dist/pf/hooks/__pycache__/context_warning.cpython-314.pyc +0 -0
  250. package/pennyfarthing-dist/pf/hooks/__pycache__/cyclist_pretooluse.cpython-311.pyc +0 -0
  251. package/pennyfarthing-dist/pf/hooks/__pycache__/cyclist_pretooluse.cpython-314.pyc +0 -0
  252. package/pennyfarthing-dist/pf/hooks/__pycache__/pre_edit_check.cpython-311.pyc +0 -0
  253. package/pennyfarthing-dist/pf/hooks/__pycache__/pre_edit_check.cpython-314.pyc +0 -0
  254. package/pennyfarthing-dist/pf/hooks/__pycache__/reflector_check.cpython-311.pyc +0 -0
  255. package/pennyfarthing-dist/pf/hooks/__pycache__/reflector_check.cpython-314.pyc +0 -0
  256. package/pennyfarthing-dist/pf/hooks/__pycache__/schema_validation.cpython-311.pyc +0 -0
  257. package/pennyfarthing-dist/pf/hooks/__pycache__/schema_validation.cpython-314.pyc +0 -0
  258. package/pennyfarthing-dist/pf/hooks/__pycache__/session_start.cpython-311.pyc +0 -0
  259. package/pennyfarthing-dist/pf/hooks/__pycache__/session_start.cpython-314.pyc +0 -0
  260. package/pennyfarthing-dist/pf/hooks/__pycache__/session_stop.cpython-314.pyc +0 -0
  261. package/pennyfarthing-dist/pf/hooks/__pycache__/sprint_yaml_validation.cpython-311.pyc +0 -0
  262. package/pennyfarthing-dist/pf/hooks/__pycache__/sprint_yaml_validation.cpython-314.pyc +0 -0
  263. package/pennyfarthing-dist/pf/hooks/__pycache__/statusline.cpython-311.pyc +0 -0
  264. package/pennyfarthing-dist/pf/hooks/__pycache__/statusline.cpython-314.pyc +0 -0
  265. package/pennyfarthing-dist/pf/hooks/statusline.py +11 -0
  266. package/pennyfarthing-dist/pf/hotspots/__pycache__/__init__.cpython-311.pyc +0 -0
  267. package/pennyfarthing-dist/pf/hotspots/__pycache__/__init__.cpython-314.pyc +0 -0
  268. package/pennyfarthing-dist/pf/hotspots/__pycache__/__main__.cpython-314.pyc +0 -0
  269. package/pennyfarthing-dist/pf/hotspots/__pycache__/analyze.cpython-311.pyc +0 -0
  270. package/pennyfarthing-dist/pf/hotspots/__pycache__/analyze.cpython-314.pyc +0 -0
  271. package/pennyfarthing-dist/pf/hotspots/__pycache__/cli.cpython-311.pyc +0 -0
  272. package/pennyfarthing-dist/pf/hotspots/__pycache__/cli.cpython-314.pyc +0 -0
  273. package/pennyfarthing-dist/pf/hotspots/__pycache__/formatters.cpython-314.pyc +0 -0
  274. package/pennyfarthing-dist/pf/hotspots/__pycache__/models.cpython-311.pyc +0 -0
  275. package/pennyfarthing-dist/pf/hotspots/__pycache__/models.cpython-314.pyc +0 -0
  276. package/pennyfarthing-dist/pf/jira/__init__.py +0 -6
  277. package/pennyfarthing-dist/pf/jira/__pycache__/__init__.cpython-311.pyc +0 -0
  278. package/pennyfarthing-dist/pf/jira/__pycache__/__init__.cpython-314.pyc +0 -0
  279. package/pennyfarthing-dist/pf/jira/__pycache__/__main__.cpython-314.pyc +0 -0
  280. package/pennyfarthing-dist/pf/jira/__pycache__/bidirectional.cpython-311.pyc +0 -0
  281. package/pennyfarthing-dist/pf/jira/__pycache__/bidirectional.cpython-314.pyc +0 -0
  282. package/pennyfarthing-dist/pf/jira/__pycache__/claim.cpython-311.pyc +0 -0
  283. package/pennyfarthing-dist/pf/jira/__pycache__/claim.cpython-314.pyc +0 -0
  284. package/pennyfarthing-dist/pf/jira/__pycache__/cli.cpython-311.pyc +0 -0
  285. package/pennyfarthing-dist/pf/jira/__pycache__/cli.cpython-314.pyc +0 -0
  286. package/pennyfarthing-dist/pf/jira/__pycache__/client.cpython-311.pyc +0 -0
  287. package/pennyfarthing-dist/pf/jira/__pycache__/client.cpython-314.pyc +0 -0
  288. package/pennyfarthing-dist/pf/jira/__pycache__/compat.cpython-314.pyc +0 -0
  289. package/pennyfarthing-dist/pf/jira/__pycache__/create.cpython-311.pyc +0 -0
  290. package/pennyfarthing-dist/pf/jira/__pycache__/create.cpython-314.pyc +0 -0
  291. package/pennyfarthing-dist/pf/jira/__pycache__/epic.cpython-311.pyc +0 -0
  292. package/pennyfarthing-dist/pf/jira/__pycache__/epic.cpython-314.pyc +0 -0
  293. package/pennyfarthing-dist/pf/jira/__pycache__/mappings.cpython-314.pyc +0 -0
  294. package/pennyfarthing-dist/pf/jira/__pycache__/models.cpython-314.pyc +0 -0
  295. package/pennyfarthing-dist/pf/jira/__pycache__/operations.cpython-311.pyc +0 -0
  296. package/pennyfarthing-dist/pf/jira/__pycache__/operations.cpython-314.pyc +0 -0
  297. package/pennyfarthing-dist/pf/jira/__pycache__/reconcile.cpython-311.pyc +0 -0
  298. package/pennyfarthing-dist/pf/jira/__pycache__/reconcile.cpython-314.pyc +0 -0
  299. package/pennyfarthing-dist/pf/jira/__pycache__/story.cpython-311.pyc +0 -0
  300. package/pennyfarthing-dist/pf/jira/__pycache__/story.cpython-314.pyc +0 -0
  301. package/pennyfarthing-dist/pf/jira/__pycache__/sync.cpython-311.pyc +0 -0
  302. package/pennyfarthing-dist/pf/jira/__pycache__/sync.cpython-314.pyc +0 -0
  303. package/pennyfarthing-dist/pf/jira/claim.py +14 -44
  304. package/pennyfarthing-dist/pf/jira/cli.py +124 -14
  305. package/pennyfarthing-dist/pf/jira/client.py +51 -87
  306. package/pennyfarthing-dist/pf/jira/reconcile.py +1 -1
  307. package/pennyfarthing-dist/pf/jira/story.py +6 -4
  308. package/pennyfarthing-dist/pf/jira/sync.py +2 -2
  309. package/pennyfarthing-dist/pf/launch/__pycache__/__init__.cpython-311.pyc +0 -0
  310. package/pennyfarthing-dist/pf/launch/__pycache__/__init__.cpython-314.pyc +0 -0
  311. package/pennyfarthing-dist/pf/launch/__pycache__/cli.cpython-311.pyc +0 -0
  312. package/pennyfarthing-dist/pf/launch/__pycache__/cli.cpython-314.pyc +0 -0
  313. package/pennyfarthing-dist/pf/migration/__init__.py +1 -1
  314. package/pennyfarthing-dist/pf/migration/__pycache__/__init__.cpython-314.pyc +0 -0
  315. package/pennyfarthing-dist/pf/migration/__pycache__/__main__.cpython-314.pyc +0 -0
  316. package/pennyfarthing-dist/pf/migration/__pycache__/cli.cpython-314.pyc +0 -0
  317. package/pennyfarthing-dist/pf/migration/__pycache__/session.cpython-314.pyc +0 -0
  318. package/pennyfarthing-dist/pf/migration/__pycache__/skill.cpython-314.pyc +0 -0
  319. package/pennyfarthing-dist/pf/migration/__pycache__/step.cpython-314.pyc +0 -0
  320. package/pennyfarthing-dist/pf/migration/__pycache__/validate.cpython-314.pyc +0 -0
  321. package/pennyfarthing-dist/pf/migration/cli.py +0 -1
  322. package/pennyfarthing-dist/pf/package/__init__.py +0 -0
  323. package/pennyfarthing-dist/pf/package/__pycache__/__init__.cpython-314.pyc +0 -0
  324. package/pennyfarthing-dist/pf/package/__pycache__/cli.cpython-314.pyc +0 -0
  325. package/pennyfarthing-dist/pf/package/__pycache__/discovery.cpython-314.pyc +0 -0
  326. package/pennyfarthing-dist/pf/package/__pycache__/portraits.cpython-314.pyc +0 -0
  327. package/pennyfarthing-dist/pf/package/cli.py +186 -0
  328. package/pennyfarthing-dist/pf/package/discovery.py +130 -0
  329. package/pennyfarthing-dist/pf/package/portraits.py +243 -0
  330. package/pennyfarthing-dist/pf/preflight/__pycache__/__init__.cpython-314.pyc +0 -0
  331. package/pennyfarthing-dist/pf/preflight/__pycache__/__main__.cpython-314.pyc +0 -0
  332. package/pennyfarthing-dist/pf/preflight/__pycache__/cli.cpython-314.pyc +0 -0
  333. package/pennyfarthing-dist/pf/preflight/__pycache__/finish.cpython-314.pyc +0 -0
  334. package/pennyfarthing-dist/pf/prime/__pycache__/__init__.cpython-314.pyc +0 -0
  335. package/pennyfarthing-dist/pf/prime/__pycache__/__main__.cpython-314.pyc +0 -0
  336. package/pennyfarthing-dist/pf/prime/__pycache__/cli.cpython-314.pyc +0 -0
  337. package/pennyfarthing-dist/pf/prime/__pycache__/loader.cpython-314.pyc +0 -0
  338. package/pennyfarthing-dist/pf/prime/__pycache__/models.cpython-314.pyc +0 -0
  339. package/pennyfarthing-dist/pf/prime/__pycache__/persona.cpython-314.pyc +0 -0
  340. package/pennyfarthing-dist/pf/prime/__pycache__/session.cpython-314.pyc +0 -0
  341. package/pennyfarthing-dist/pf/prime/__pycache__/tiers.cpython-314.pyc +0 -0
  342. package/pennyfarthing-dist/pf/prime/__pycache__/version_sentinel.cpython-314.pyc +0 -0
  343. package/pennyfarthing-dist/pf/prime/__pycache__/workflow.cpython-314.pyc +0 -0
  344. package/pennyfarthing-dist/pf/prime/loader.py +21 -7
  345. package/pennyfarthing-dist/pf/prime/workflow.py +11 -3
  346. package/pennyfarthing-dist/pf/release/__init__.py +0 -0
  347. package/pennyfarthing-dist/pf/release/__pycache__/__init__.cpython-314.pyc +0 -0
  348. package/pennyfarthing-dist/pf/release/__pycache__/cli.cpython-314.pyc +0 -0
  349. package/pennyfarthing-dist/pf/release/__pycache__/deprecate.cpython-314.pyc +0 -0
  350. package/pennyfarthing-dist/pf/release/__pycache__/dry_run.cpython-314.pyc +0 -0
  351. package/pennyfarthing-dist/pf/release/cli.py +112 -0
  352. package/pennyfarthing-dist/pf/release/deprecate.py +187 -0
  353. package/pennyfarthing-dist/pf/release/dry_run.py +187 -0
  354. package/pennyfarthing-dist/pf/session/__pycache__/__init__.cpython-311.pyc +0 -0
  355. package/pennyfarthing-dist/pf/session/__pycache__/__init__.cpython-314.pyc +0 -0
  356. package/pennyfarthing-dist/pf/session/__pycache__/cli.cpython-311.pyc +0 -0
  357. package/pennyfarthing-dist/pf/session/__pycache__/cli.cpython-314.pyc +0 -0
  358. package/pennyfarthing-dist/pf/settings/__pycache__/__init__.cpython-314.pyc +0 -0
  359. package/pennyfarthing-dist/pf/settings/__pycache__/cli.cpython-314.pyc +0 -0
  360. package/pennyfarthing-dist/pf/settings/__pycache__/settings.cpython-314.pyc +0 -0
  361. package/pennyfarthing-dist/pf/sprint/__pycache__/__init__.cpython-311.pyc +0 -0
  362. package/pennyfarthing-dist/pf/sprint/__pycache__/__init__.cpython-314.pyc +0 -0
  363. package/pennyfarthing-dist/pf/sprint/__pycache__/__main__.cpython-314.pyc +0 -0
  364. package/pennyfarthing-dist/pf/sprint/__pycache__/archive.cpython-311.pyc +0 -0
  365. package/pennyfarthing-dist/pf/sprint/__pycache__/archive.cpython-314.pyc +0 -0
  366. package/pennyfarthing-dist/pf/sprint/__pycache__/archive_epic.cpython-314.pyc +0 -0
  367. package/pennyfarthing-dist/pf/sprint/__pycache__/cli.cpython-311.pyc +0 -0
  368. package/pennyfarthing-dist/pf/sprint/__pycache__/cli.cpython-314.pyc +0 -0
  369. package/pennyfarthing-dist/pf/sprint/__pycache__/epic_add.cpython-311.pyc +0 -0
  370. package/pennyfarthing-dist/pf/sprint/__pycache__/epic_add.cpython-314.pyc +0 -0
  371. package/pennyfarthing-dist/pf/sprint/__pycache__/epic_update.cpython-311.pyc +0 -0
  372. package/pennyfarthing-dist/pf/sprint/__pycache__/epic_update.cpython-314.pyc +0 -0
  373. package/pennyfarthing-dist/pf/sprint/__pycache__/import_epic.cpython-314.pyc +0 -0
  374. package/pennyfarthing-dist/pf/sprint/__pycache__/loader.cpython-311.pyc +0 -0
  375. package/pennyfarthing-dist/pf/sprint/__pycache__/loader.cpython-314.pyc +0 -0
  376. package/pennyfarthing-dist/pf/sprint/__pycache__/shard_merge.cpython-314.pyc +0 -0
  377. package/pennyfarthing-dist/pf/sprint/__pycache__/status.cpython-311.pyc +0 -0
  378. package/pennyfarthing-dist/pf/sprint/__pycache__/status.cpython-314.pyc +0 -0
  379. package/pennyfarthing-dist/pf/sprint/__pycache__/story_add.cpython-311.pyc +0 -0
  380. package/pennyfarthing-dist/pf/sprint/__pycache__/story_add.cpython-314.pyc +0 -0
  381. package/pennyfarthing-dist/pf/sprint/__pycache__/story_finish.cpython-314.pyc +0 -0
  382. package/pennyfarthing-dist/pf/sprint/__pycache__/story_update.cpython-311.pyc +0 -0
  383. package/pennyfarthing-dist/pf/sprint/__pycache__/story_update.cpython-314.pyc +0 -0
  384. package/pennyfarthing-dist/pf/sprint/__pycache__/validate_cmd.cpython-311.pyc +0 -0
  385. package/pennyfarthing-dist/pf/sprint/__pycache__/validate_cmd.cpython-314.pyc +0 -0
  386. package/pennyfarthing-dist/pf/sprint/__pycache__/validator.cpython-311.pyc +0 -0
  387. package/pennyfarthing-dist/pf/sprint/__pycache__/validator.cpython-314.pyc +0 -0
  388. package/pennyfarthing-dist/pf/sprint/__pycache__/work.cpython-311.pyc +0 -0
  389. package/pennyfarthing-dist/pf/sprint/__pycache__/work.cpython-314.pyc +0 -0
  390. package/pennyfarthing-dist/pf/sprint/__pycache__/yaml_io.cpython-311.pyc +0 -0
  391. package/pennyfarthing-dist/pf/sprint/__pycache__/yaml_io.cpython-314.pyc +0 -0
  392. package/pennyfarthing-dist/pf/sprint/cli.py +1 -1
  393. package/pennyfarthing-dist/pf/sprint/loader.py +6 -74
  394. package/pennyfarthing-dist/pf/sprint/shard_merge.py +126 -0
  395. package/pennyfarthing-dist/pf/sprint/story_finish.py +4 -2
  396. package/pennyfarthing-dist/pf/sprint/yaml_io.py +8 -53
  397. package/pennyfarthing-dist/pf/story/__pycache__/__init__.cpython-314.pyc +0 -0
  398. package/pennyfarthing-dist/pf/story/__pycache__/__main__.cpython-314.pyc +0 -0
  399. package/pennyfarthing-dist/pf/story/__pycache__/cli.cpython-314.pyc +0 -0
  400. package/pennyfarthing-dist/pf/story/__pycache__/create.cpython-314.pyc +0 -0
  401. package/pennyfarthing-dist/pf/story/__pycache__/size.cpython-314.pyc +0 -0
  402. package/pennyfarthing-dist/pf/story/__pycache__/template.cpython-314.pyc +0 -0
  403. package/pennyfarthing-dist/pf/tests/__pycache__/__init__.cpython-314.pyc +0 -0
  404. package/pennyfarthing-dist/pf/tests/__pycache__/conftest.cpython-314-pytest-9.0.2.pyc +0 -0
  405. package/pennyfarthing-dist/pf/tests/__pycache__/test_108_1_gate_migration.cpython-314-pytest-9.0.2.pyc +0 -0
  406. package/pennyfarthing-dist/pf/tests/__pycache__/test_archive_epic.cpython-314-pytest-9.0.2.pyc +0 -0
  407. package/pennyfarthing-dist/pf/tests/__pycache__/test_bc.cpython-314-pytest-9.0.2.pyc +0 -0
  408. package/pennyfarthing-dist/pf/tests/__pycache__/test_bikerack.cpython-314-pytest-9.0.2.pyc +0 -0
  409. package/pennyfarthing-dist/pf/tests/__pycache__/test_brownfield.cpython-314-pytest-9.0.2.pyc +0 -0
  410. package/pennyfarthing-dist/pf/tests/__pycache__/test_cli_modules.cpython-314-pytest-9.0.2.pyc +0 -0
  411. package/pennyfarthing-dist/pf/tests/__pycache__/test_cli_normalization.cpython-314-pytest-9.0.2.pyc +0 -0
  412. package/pennyfarthing-dist/pf/tests/__pycache__/test_codemarkers.cpython-314-pytest-9.0.2.pyc +0 -0
  413. package/pennyfarthing-dist/pf/tests/__pycache__/test_common.cpython-314-pytest-9.0.2.pyc +0 -0
  414. package/pennyfarthing-dist/pf/tests/__pycache__/test_confidence_sm_evaluation.cpython-314-pytest-9.0.2.pyc +0 -0
  415. package/pennyfarthing-dist/pf/tests/__pycache__/test_confidence_sm_gate.cpython-314-pytest-9.0.2.pyc +0 -0
  416. package/pennyfarthing-dist/pf/tests/__pycache__/test_dialogue_manager.cpython-314-pytest-9.0.2.pyc +0 -0
  417. package/pennyfarthing-dist/pf/tests/__pycache__/test_epic_shard_validation.cpython-314-pytest-9.0.2.pyc +0 -0
  418. package/pennyfarthing-dist/pf/tests/__pycache__/test_git_utils.cpython-314-pytest-9.0.2.pyc +0 -0
  419. package/pennyfarthing-dist/pf/tests/__pycache__/test_handoff_cli.cpython-314-pytest-9.0.2.pyc +0 -0
  420. package/pennyfarthing-dist/pf/tests/__pycache__/test_handoff_e2e.cpython-314-pytest-9.0.2.pyc +0 -0
  421. package/pennyfarthing-dist/pf/tests/__pycache__/test_healthscore.cpython-314-pytest-9.0.2.pyc +0 -0
  422. package/pennyfarthing-dist/pf/tests/__pycache__/test_jira_package.cpython-314-pytest-9.0.2.pyc +0 -0
  423. package/pennyfarthing-dist/pf/tests/__pycache__/test_package_structure.cpython-314-pytest-9.0.2.pyc +0 -0
  424. package/pennyfarthing-dist/pf/tests/__pycache__/test_patch_mode.cpython-314-pytest-9.0.2.pyc +0 -0
  425. package/pennyfarthing-dist/pf/tests/__pycache__/test_prime.cpython-314-pytest-9.0.2.pyc +0 -0
  426. package/pennyfarthing-dist/pf/tests/__pycache__/test_sprint_package.cpython-314-pytest-9.0.2.pyc +0 -0
  427. package/pennyfarthing-dist/pf/tests/__pycache__/test_sprint_panel.cpython-314-pytest-9.0.2.pyc +0 -0
  428. package/pennyfarthing-dist/pf/tests/__pycache__/test_sprint_validator.cpython-314-pytest-9.0.2.pyc +0 -0
  429. package/pennyfarthing-dist/pf/tests/__pycache__/test_story_add.cpython-314-pytest-9.0.2.pyc +0 -0
  430. package/pennyfarthing-dist/pf/tests/__pycache__/test_story_package.cpython-314-pytest-9.0.2.pyc +0 -0
  431. package/pennyfarthing-dist/pf/tests/__pycache__/test_story_update.cpython-314-pytest-9.0.2.pyc +0 -0
  432. package/pennyfarthing-dist/pf/tests/__pycache__/test_tiers.cpython-314-pytest-9.0.2.pyc +0 -0
  433. package/pennyfarthing-dist/pf/tests/__pycache__/test_token_counting.cpython-314-pytest-9.0.2.pyc +0 -0
  434. package/pennyfarthing-dist/pf/tests/__pycache__/test_topology_loader.cpython-314-pytest-9.0.2.pyc +0 -0
  435. package/pennyfarthing-dist/pf/tests/__pycache__/test_tui_focus.cpython-314-pytest-9.0.2.pyc +0 -0
  436. package/pennyfarthing-dist/pf/tests/__pycache__/test_tui_panel_persistence.cpython-314-pytest-9.0.2.pyc +0 -0
  437. package/pennyfarthing-dist/pf/tests/__pycache__/test_validate_cmd.cpython-314-pytest-9.0.2.pyc +0 -0
  438. package/pennyfarthing-dist/pf/tests/__pycache__/test_version_sentinel.cpython-314-pytest-9.0.2.pyc +0 -0
  439. package/pennyfarthing-dist/pf/tests/__pycache__/test_workflow_check.cpython-314-pytest-9.0.2.pyc +0 -0
  440. package/pennyfarthing-dist/pf/tests/__pycache__/test_workflow_cli.cpython-314-pytest-9.0.2.pyc +0 -0
  441. package/pennyfarthing-dist/pf/tests/__pycache__/test_yaml_io.cpython-314-pytest-9.0.2.pyc +0 -0
  442. package/pennyfarthing-dist/pf/tests/test_cli_modules.py +32 -137
  443. package/pennyfarthing-dist/pf/tests/test_codemarkers.py +0 -15
  444. package/pennyfarthing-dist/pf/tests/test_dist_root.py +720 -0
  445. package/pennyfarthing-dist/pf/tests/test_package_structure.py +24 -70
  446. package/pennyfarthing-dist/pf/theme/__pycache__/__init__.cpython-311.pyc +0 -0
  447. package/pennyfarthing-dist/pf/theme/__pycache__/__init__.cpython-314.pyc +0 -0
  448. package/pennyfarthing-dist/pf/theme/__pycache__/cli.cpython-311.pyc +0 -0
  449. package/pennyfarthing-dist/pf/theme/__pycache__/cli.cpython-314.pyc +0 -0
  450. package/pennyfarthing-dist/pf/validate/__pycache__/__init__.cpython-311.pyc +0 -0
  451. package/pennyfarthing-dist/pf/validate/__pycache__/__init__.cpython-314.pyc +0 -0
  452. package/pennyfarthing-dist/pf/validate/__pycache__/cli.cpython-311.pyc +0 -0
  453. package/pennyfarthing-dist/pf/validate/__pycache__/cli.cpython-314.pyc +0 -0
  454. package/pennyfarthing-dist/pf/validate/adapters/__pycache__/__init__.cpython-314.pyc +0 -0
  455. package/pennyfarthing-dist/pf/validate/adapters/__pycache__/agent.cpython-314.pyc +0 -0
  456. package/pennyfarthing-dist/pf/validate/adapters/__pycache__/schema.cpython-314.pyc +0 -0
  457. package/pennyfarthing-dist/pf/validate/adapters/__pycache__/skill_command.cpython-314.pyc +0 -0
  458. package/pennyfarthing-dist/pf/validate/adapters/__pycache__/sprint.cpython-314.pyc +0 -0
  459. package/pennyfarthing-dist/pf/validate/adapters/__pycache__/tandem_awareness.cpython-314.pyc +0 -0
  460. package/pennyfarthing-dist/pf/validate/adapters/__pycache__/workflow.cpython-314.pyc +0 -0
  461. package/pennyfarthing-dist/pf/validate/adapters/agent.py +11 -1
  462. package/pennyfarthing-dist/pf/validate/adapters/skill_command.py +15 -4
  463. package/pennyfarthing-dist/pf/validate/adapters/tandem_awareness.py +7 -1
  464. package/pennyfarthing-dist/pf/validate/adapters/team_mode.py +8 -2
  465. package/pennyfarthing-dist/pf/validate/adapters/workflow.py +12 -2
  466. package/pennyfarthing-dist/pf/workflow/__pycache__/__init__.cpython-311.pyc +0 -0
  467. package/pennyfarthing-dist/pf/workflow/__pycache__/__init__.cpython-314.pyc +0 -0
  468. package/pennyfarthing-dist/pf/workflow/__pycache__/cli.cpython-311.pyc +0 -0
  469. package/pennyfarthing-dist/pf/workflow/__pycache__/cli.cpython-314.pyc +0 -0
  470. package/pennyfarthing-dist/pf/workflow/__pycache__/helpers.cpython-314.pyc +0 -0
  471. package/pennyfarthing-dist/pf/workflow/__pycache__/scale.cpython-311.pyc +0 -0
  472. package/pennyfarthing-dist/pf/workflow/__pycache__/scale.cpython-314.pyc +0 -0
  473. package/pennyfarthing-dist/pf/workflow/__pycache__/state.cpython-311.pyc +0 -0
  474. package/pennyfarthing-dist/pf/workflow/__pycache__/state.cpython-314.pyc +0 -0
  475. package/pennyfarthing-dist/pyproject.toml +1 -1
  476. package/pennyfarthing-dist/scripts/core/check-context.sh +2 -2
  477. package/pennyfarthing-dist/scripts/git/changelog-links.sh +216 -0
  478. package/pennyfarthing-dist/scripts/hooks/__pycache__/question_reflector_check.cpython-314.pyc +0 -0
  479. package/pennyfarthing-dist/scripts/lib/README.md +0 -1
  480. package/pennyfarthing-dist/scripts/portraits/generate-portraits.py +54 -0
  481. package/pennyfarthing-dist/scripts/portraits/generate-tandem-portraits.sh +7 -3
  482. package/pennyfarthing-dist/workflows/patch.yaml +5 -6
  483. package/pennyfarthing-dist/workflows/tdd-tandem.yaml +12 -0
  484. package/packages/core/dist/workflow/team-lifecycle.d.ts +0 -169
  485. package/packages/core/dist/workflow/team-lifecycle.d.ts.map +0 -1
  486. package/packages/core/dist/workflow/team-lifecycle.js +0 -217
  487. package/packages/core/dist/workflow/team-lifecycle.js.map +0 -1
  488. package/packages/core/dist/workflow/team-lifecycle.test.d.ts +0 -20
  489. package/packages/core/dist/workflow/team-lifecycle.test.d.ts.map +0 -1
  490. package/packages/core/dist/workflow/team-lifecycle.test.js +0 -966
  491. package/packages/core/dist/workflow/team-lifecycle.test.js.map +0 -1
  492. package/packages/core/src/public/components/FontPicker/FontPicker.css +0 -276
  493. package/packages/core/src/public/components/FontPicker/index.tsx +0 -430
  494. package/packages/core/src/public/components/ThemePalette/ThemePalette.css +0 -179
  495. package/packages/core/src/public/components/ThemePalette/index.tsx +0 -326
  496. package/packages/core/src/public/components/panels/BackgroundPanel.tsx +0 -115
  497. package/packages/core/src/public/components/ui/switch.tsx +0 -27
  498. package/packages/core/src/public/hooks/useBackgroundTasks.ts +0 -131
  499. package/pennyfarthing-dist/pf/bikerack/background_panel.py +0 -162
  500. package/pennyfarthing-dist/pf/bmad/__pycache__/parser.cpython-314.pyc +0 -0
  501. package/pennyfarthing-dist/pf/brownfield/__main__.py +0 -8
  502. package/pennyfarthing-dist/pf/config.py +0 -21
  503. package/pennyfarthing-dist/pf/hooks.py +0 -32
  504. package/pennyfarthing-dist/pf/jira_bidirectional_sync.py +0 -37
  505. package/pennyfarthing-dist/pf/jira_epic_creation.py +0 -30
  506. package/pennyfarthing-dist/pf/jira_sync.py +0 -36
  507. package/pennyfarthing-dist/pf/jira_sync_story.py +0 -30
  508. package/pennyfarthing-dist/pf/migration/__main__.py +0 -10
  509. package/pennyfarthing-dist/pf/output.py +0 -37
  510. package/pennyfarthing-dist/pf/theme/__main__.py +0 -6
  511. package/pennyfarthing-dist/scripts/lib/background-tasks.sh +0 -177
@@ -6,8 +6,25 @@ These tests verify the CLI modules work as entry points and
6
6
  properly delegate to library modules.
7
7
  """
8
8
 
9
+ import os
9
10
  import subprocess
10
11
  import sys
12
+ from pathlib import Path
13
+
14
+ # pennyfarthing-dist/ must be on PYTHONPATH for subprocess -m calls
15
+ _DIST_DIR = str(Path(__file__).resolve().parents[2])
16
+ _ENV = {**os.environ, "PYTHONPATH": _DIST_DIR + os.pathsep + os.environ.get("PYTHONPATH", "")}
17
+
18
+
19
+ def _run_module(*args: str) -> subprocess.CompletedProcess[str]:
20
+ """Run a pf module as subprocess with correct PYTHONPATH."""
21
+ return subprocess.run(
22
+ [sys.executable, "-m", *args],
23
+ capture_output=True,
24
+ text=True,
25
+ timeout=30,
26
+ env=_ENV,
27
+ )
11
28
 
12
29
 
13
30
  class TestJiraCLIModule:
@@ -15,12 +32,7 @@ class TestJiraCLIModule:
15
32
 
16
33
  def test_jira_cli_help(self) -> None:
17
34
  """jira CLI should show help with --help."""
18
- result = subprocess.run(
19
- [sys.executable, "-m", "pf.jira", "--help"],
20
- capture_output=True,
21
- text=True,
22
- timeout=30,
23
- )
35
+ result = _run_module("pf.jira", "--help")
24
36
 
25
37
  assert result.returncode == 0
26
38
  # Should show usage info
@@ -28,57 +40,32 @@ class TestJiraCLIModule:
28
40
 
29
41
  def test_jira_cli_view_subcommand(self) -> None:
30
42
  """jira CLI should have view subcommand."""
31
- result = subprocess.run(
32
- [sys.executable, "-m", "pf.jira", "view", "--help"],
33
- capture_output=True,
34
- text=True,
35
- timeout=30,
36
- )
43
+ result = _run_module("pf.jira", "view", "--help")
37
44
 
38
45
  # Should exit 0 with help or fail gracefully without --help
39
46
  assert result.returncode in (0, 1, 2)
40
47
 
41
48
  def test_jira_cli_sync_subcommand(self) -> None:
42
49
  """jira CLI should have sync subcommand."""
43
- result = subprocess.run(
44
- [sys.executable, "-m", "pf.jira", "sync", "--help"],
45
- capture_output=True,
46
- text=True,
47
- timeout=30,
48
- )
50
+ result = _run_module("pf.jira", "sync", "--help")
49
51
 
50
52
  assert result.returncode in (0, 1, 2)
51
53
 
52
54
  def test_jira_cli_claim_subcommand(self) -> None:
53
55
  """jira CLI should have claim subcommand."""
54
- result = subprocess.run(
55
- [sys.executable, "-m", "pf.jira", "claim", "--help"],
56
- capture_output=True,
57
- text=True,
58
- timeout=30,
59
- )
56
+ result = _run_module("pf.jira", "claim", "--help")
60
57
 
61
58
  assert result.returncode in (0, 1, 2)
62
59
 
63
60
  def test_jira_cli_create_subcommand(self) -> None:
64
61
  """jira CLI should have create subcommand."""
65
- result = subprocess.run(
66
- [sys.executable, "-m", "pf.jira", "create", "--help"],
67
- capture_output=True,
68
- text=True,
69
- timeout=30,
70
- )
62
+ result = _run_module("pf.jira", "create", "--help")
71
63
 
72
64
  assert result.returncode in (0, 1, 2)
73
65
 
74
66
  def test_jira_cli_bidirectional_subcommand(self) -> None:
75
67
  """jira CLI should have bidirectional subcommand."""
76
- result = subprocess.run(
77
- [sys.executable, "-m", "pf.jira", "bidirectional", "--help"],
78
- capture_output=True,
79
- text=True,
80
- timeout=30,
81
- )
68
+ result = _run_module("pf.jira", "bidirectional", "--help")
82
69
 
83
70
  assert result.returncode in (0, 1, 2)
84
71
 
@@ -88,57 +75,32 @@ class TestSprintCLIModule:
88
75
 
89
76
  def test_sprint_cli_help(self) -> None:
90
77
  """sprint CLI should show help with --help."""
91
- result = subprocess.run(
92
- [sys.executable, "-m", "pf.sprint", "--help"],
93
- capture_output=True,
94
- text=True,
95
- timeout=30,
96
- )
78
+ result = _run_module("pf.sprint", "--help")
97
79
 
98
80
  assert result.returncode == 0
99
81
  assert "usage" in result.stdout.lower() or "Usage" in result.stdout
100
82
 
101
83
  def test_sprint_cli_status_subcommand(self) -> None:
102
84
  """sprint CLI should have status subcommand."""
103
- result = subprocess.run(
104
- [sys.executable, "-m", "pf.sprint", "status", "--help"],
105
- capture_output=True,
106
- text=True,
107
- timeout=30,
108
- )
85
+ result = _run_module("pf.sprint", "status", "--help")
109
86
 
110
87
  assert result.returncode in (0, 1, 2)
111
88
 
112
89
  def test_sprint_cli_backlog_subcommand(self) -> None:
113
90
  """sprint CLI should have backlog subcommand."""
114
- result = subprocess.run(
115
- [sys.executable, "-m", "pf.sprint", "backlog", "--help"],
116
- capture_output=True,
117
- text=True,
118
- timeout=30,
119
- )
91
+ result = _run_module("pf.sprint", "backlog", "--help")
120
92
 
121
93
  assert result.returncode in (0, 1, 2)
122
94
 
123
95
  def test_sprint_cli_work_subcommand(self) -> None:
124
96
  """sprint CLI should have work subcommand."""
125
- result = subprocess.run(
126
- [sys.executable, "-m", "pf.sprint", "work", "--help"],
127
- capture_output=True,
128
- text=True,
129
- timeout=30,
130
- )
97
+ result = _run_module("pf.sprint", "work", "--help")
131
98
 
132
99
  assert result.returncode in (0, 1, 2)
133
100
 
134
101
  def test_sprint_cli_archive_subcommand(self) -> None:
135
102
  """sprint CLI should have archive subcommand."""
136
- result = subprocess.run(
137
- [sys.executable, "-m", "pf.sprint", "archive", "--help"],
138
- capture_output=True,
139
- text=True,
140
- timeout=30,
141
- )
103
+ result = _run_module("pf.sprint", "archive", "--help")
142
104
 
143
105
  assert result.returncode in (0, 1, 2)
144
106
 
@@ -148,94 +110,27 @@ class TestStoryCLIModule:
148
110
 
149
111
  def test_story_cli_help(self) -> None:
150
112
  """story CLI should show help with --help."""
151
- result = subprocess.run(
152
- [sys.executable, "-m", "pf.story", "--help"],
153
- capture_output=True,
154
- text=True,
155
- timeout=30,
156
- )
113
+ result = _run_module("pf.story", "--help")
157
114
 
158
115
  assert result.returncode == 0
159
116
  assert "usage" in result.stdout.lower() or "Usage" in result.stdout
160
117
 
161
118
  def test_story_cli_size_subcommand(self) -> None:
162
119
  """story CLI should have size subcommand."""
163
- result = subprocess.run(
164
- [sys.executable, "-m", "pf.story", "size", "--help"],
165
- capture_output=True,
166
- text=True,
167
- timeout=30,
168
- )
120
+ result = _run_module("pf.story", "size", "--help")
169
121
 
170
122
  assert result.returncode in (0, 1, 2)
171
123
 
172
124
  def test_story_cli_template_subcommand(self) -> None:
173
125
  """story CLI should have template subcommand."""
174
- result = subprocess.run(
175
- [sys.executable, "-m", "pf.story", "template", "--help"],
176
- capture_output=True,
177
- text=True,
178
- timeout=30,
179
- )
126
+ result = _run_module("pf.story", "template", "--help")
180
127
 
181
128
  assert result.returncode in (0, 1, 2)
182
129
 
183
130
  def test_story_cli_create_subcommand(self) -> None:
184
131
  """story CLI should have create subcommand."""
185
- result = subprocess.run(
186
- [sys.executable, "-m", "pf.story", "create", "--help"],
187
- capture_output=True,
188
- text=True,
189
- timeout=30,
190
- )
191
-
192
- assert result.returncode in (0, 1, 2)
193
-
194
-
195
- class TestOldCLICompatibility:
196
- """Tests for backwards compatibility of old CLI modules."""
197
-
198
- def test_jira_sync_module_runnable(self) -> None:
199
- """jira_sync.py should still be runnable as module."""
200
- result = subprocess.run(
201
- [sys.executable, "-m", "pf.jira_sync", "--help"],
202
- capture_output=True,
203
- text=True,
204
- timeout=30,
205
- )
132
+ result = _run_module("pf.story", "create", "--help")
206
133
 
207
- # Should exit with help or error (not crash)
208
134
  assert result.returncode in (0, 1, 2)
209
135
 
210
- def test_jira_bidirectional_sync_module_runnable(self) -> None:
211
- """jira_bidirectional_sync.py should still be runnable."""
212
- result = subprocess.run(
213
- [sys.executable, "-m", "pf.jira_bidirectional_sync", "--help"],
214
- capture_output=True,
215
- text=True,
216
- timeout=30,
217
- )
218
136
 
219
- assert result.returncode in (0, 1, 2)
220
-
221
- def test_jira_epic_creation_module_runnable(self) -> None:
222
- """jira_epic_creation.py should still be runnable."""
223
- result = subprocess.run(
224
- [sys.executable, "-m", "pf.jira_epic_creation", "--help"],
225
- capture_output=True,
226
- text=True,
227
- timeout=30,
228
- )
229
-
230
- assert result.returncode in (0, 1, 2)
231
-
232
- def test_jira_sync_story_module_runnable(self) -> None:
233
- """jira_sync_story.py should still be runnable."""
234
- result = subprocess.run(
235
- [sys.executable, "-m", "pf.jira_sync_story", "--help"],
236
- capture_output=True,
237
- text=True,
238
- timeout=30,
239
- )
240
-
241
- assert result.returncode in (0, 1, 2)
@@ -650,21 +650,6 @@ class TestCLI:
650
650
  assert parsed["success"] is True
651
651
 
652
652
 
653
- class TestMainModule:
654
- """python -m pf.codemarkers works."""
655
-
656
- def test_module_runnable(self) -> None:
657
- """Module can be invoked with --help."""
658
- import subprocess
659
- import sys
660
-
661
- result = subprocess.run(
662
- [sys.executable, "-m", "pf.codemarkers", "--help"],
663
- capture_output=True, text=True, timeout=30,
664
- )
665
- assert result.returncode == 0
666
- assert "analyze" in result.stdout.lower()
667
-
668
653
 
669
654
  # ---------------------------------------------------------------------------
670
655
  # __init__ re-exports