@pennyfarthing/core 11.3.6 → 11.3.8

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 (163) hide show
  1. package/README.md +1 -1
  2. package/package.json +14 -16
  3. package/packages/core/dist/cli/commands/init.d.ts +1 -1
  4. package/packages/core/dist/cli/commands/init.js +6 -6
  5. package/packages/core/dist/cli/commands/init.js.map +1 -1
  6. package/packages/core/dist/cli/commands/pyproject-install.test.d.ts +1 -1
  7. package/packages/core/dist/cli/commands/pyproject-install.test.js +5 -5
  8. package/packages/core/dist/cli/commands/pyproject-install.test.js.map +1 -1
  9. package/packages/core/dist/cli/commands/update.js +1 -1
  10. package/packages/core/dist/cli/commands/version-sentinel.test.d.ts +1 -1
  11. package/packages/core/dist/cli/commands/version-sentinel.test.js +1 -1
  12. package/packages/core/dist/cli/utils/constants.d.ts +7 -1
  13. package/packages/core/dist/cli/utils/constants.d.ts.map +1 -1
  14. package/packages/core/dist/cli/utils/constants.js +4 -2
  15. package/packages/core/dist/cli/utils/constants.js.map +1 -1
  16. package/packages/core/dist/cli/utils/python.js +3 -3
  17. package/packages/core/dist/cli/utils/python.js.map +1 -1
  18. package/packages/core/dist/cli/utils/symlinks.d.ts +1 -1
  19. package/packages/core/dist/cli/utils/symlinks.js +1 -1
  20. package/packages/core/dist/server/api/code-markers.js +2 -2
  21. package/packages/core/dist/server/api/code-markers.js.map +1 -1
  22. package/packages/core/dist/server/api/complexity.js +2 -2
  23. package/packages/core/dist/server/api/complexity.js.map +1 -1
  24. package/packages/core/dist/server/api/dead-code.js +2 -2
  25. package/packages/core/dist/server/api/dead-code.js.map +1 -1
  26. package/packages/core/dist/server/api/dependencies.js +2 -2
  27. package/packages/core/dist/server/api/dependencies.js.map +1 -1
  28. package/packages/core/dist/server/api/health-score.js +8 -8
  29. package/packages/core/dist/server/api/health-score.js.map +1 -1
  30. package/packages/core/dist/server/api/hotspots.js +2 -2
  31. package/packages/core/dist/server/api/hotspots.js.map +1 -1
  32. package/packages/core/dist/server/paths.d.ts.map +1 -1
  33. package/packages/core/dist/server/paths.js +15 -2
  34. package/packages/core/dist/server/paths.js.map +1 -1
  35. package/pennyfarthing-dist/pf/bikerack/__pycache__/audit_log_panel.cpython-314.pyc +0 -0
  36. package/pennyfarthing-dist/pf/bikerack/__pycache__/background_panel.cpython-314.pyc +0 -0
  37. package/pennyfarthing-dist/pf/bikerack/__pycache__/base_panel.cpython-314.pyc +0 -0
  38. package/pennyfarthing-dist/pf/bikerack/__pycache__/changed_panel.cpython-314.pyc +0 -0
  39. package/pennyfarthing-dist/pf/bikerack/__pycache__/context_meter_footer.cpython-314.pyc +0 -0
  40. package/pennyfarthing-dist/pf/bikerack/__pycache__/debug_panel.cpython-314.pyc +0 -0
  41. package/pennyfarthing-dist/pf/bikerack/__pycache__/diffs_panel.cpython-314.pyc +0 -0
  42. package/pennyfarthing-dist/pf/bikerack/__pycache__/events.cpython-314.pyc +0 -0
  43. package/pennyfarthing-dist/pf/bikerack/__pycache__/git_panel.cpython-314.pyc +0 -0
  44. package/pennyfarthing-dist/pf/bikerack/__pycache__/portrait_resolver.cpython-314.pyc +0 -0
  45. package/pennyfarthing-dist/pf/bikerack/__pycache__/progress_panel.cpython-314.pyc +0 -0
  46. package/pennyfarthing-dist/pf/bikerack/__pycache__/sprint_panel.cpython-314.pyc +0 -0
  47. package/pennyfarthing-dist/pf/bikerack/__pycache__/tui.cpython-314.pyc +0 -0
  48. package/pennyfarthing-dist/pf/bikerack/__pycache__/ws_client.cpython-314.pyc +0 -0
  49. package/pennyfarthing-dist/pf/common/__pycache__/themes.cpython-314.pyc +0 -0
  50. package/pennyfarthing-dist/pf/hooks/__pycache__/session_start.cpython-314.pyc +0 -0
  51. package/pennyfarthing-dist/pf/hooks/cyclist-pretooluse-hook.sh +0 -0
  52. package/pennyfarthing-dist/pf/prime/__pycache__/__init__.cpython-314.pyc +0 -0
  53. package/pennyfarthing-dist/pf/prime/__pycache__/cli.cpython-314.pyc +0 -0
  54. package/pennyfarthing-dist/pf/prime/__pycache__/loader.cpython-314.pyc +0 -0
  55. package/pennyfarthing-dist/pf/prime/__pycache__/models.cpython-314.pyc +0 -0
  56. package/pennyfarthing-dist/pf/prime/__pycache__/persona.cpython-314.pyc +0 -0
  57. package/pennyfarthing-dist/pf/prime/__pycache__/session.cpython-314.pyc +0 -0
  58. package/pennyfarthing-dist/pf/prime/__pycache__/tiers.cpython-314.pyc +0 -0
  59. package/pennyfarthing-dist/pf/prime/__pycache__/workflow.cpython-314.pyc +0 -0
  60. package/pennyfarthing-dist/pf/workflow/__pycache__/helpers.cpython-314.pyc +0 -0
  61. package/pennyfarthing-dist/scripts/core/agent-session.sh +0 -0
  62. package/pennyfarthing-dist/scripts/core/check-context.sh +0 -0
  63. package/pennyfarthing-dist/scripts/core/dialogue-manager.sh +0 -0
  64. package/pennyfarthing-dist/scripts/core/pf.sh +0 -0
  65. package/pennyfarthing-dist/scripts/core/phase-check-start.sh +0 -0
  66. package/pennyfarthing-dist/scripts/core/prime.sh +0 -0
  67. package/pennyfarthing-dist/scripts/cyclist/is-cyclist.sh +0 -0
  68. package/pennyfarthing-dist/scripts/git/create-feature-branches.sh +0 -0
  69. package/pennyfarthing-dist/scripts/git/git-status-all.sh +0 -0
  70. package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +0 -0
  71. package/pennyfarthing-dist/scripts/git/release.sh +0 -0
  72. package/pennyfarthing-dist/scripts/git/worktree-manager.sh +0 -0
  73. package/pennyfarthing-dist/scripts/health/drift-detection.sh +0 -0
  74. package/pennyfarthing-dist/scripts/hooks/bell-mode-hook.sh +0 -0
  75. package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +0 -0
  76. package/pennyfarthing-dist/scripts/hooks/context-warning.sh +0 -0
  77. package/pennyfarthing-dist/scripts/hooks/cyclist-pretooluse-hook.sh +0 -0
  78. package/pennyfarthing-dist/scripts/hooks/dispatcher-template.sh +0 -0
  79. package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +0 -0
  80. package/pennyfarthing-dist/scripts/hooks/post-merge.sh +0 -0
  81. package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +0 -0
  82. package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +0 -0
  83. package/pennyfarthing-dist/scripts/hooks/pre-push.sh +0 -0
  84. package/pennyfarthing-dist/scripts/hooks/question-reflector-check.sh +0 -0
  85. package/pennyfarthing-dist/scripts/hooks/question_reflector_check.py +0 -0
  86. package/pennyfarthing-dist/scripts/hooks/schema-validation.sh +0 -0
  87. package/pennyfarthing-dist/scripts/hooks/session-start.sh +0 -0
  88. package/pennyfarthing-dist/scripts/hooks/session-stop.sh +0 -0
  89. package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +0 -0
  90. package/pennyfarthing-dist/scripts/hooks/welcome-hook.sh +0 -0
  91. package/pennyfarthing-dist/scripts/jira/create-jira-epic.sh +0 -0
  92. package/pennyfarthing-dist/scripts/jira/create-jira-story.sh +0 -0
  93. package/pennyfarthing-dist/scripts/jira/jira-claim-story.sh +0 -0
  94. package/pennyfarthing-dist/scripts/jira/jira-reconcile.sh +0 -0
  95. package/pennyfarthing-dist/scripts/jira/jira-sync-story.sh +0 -0
  96. package/pennyfarthing-dist/scripts/jira/sync-epic-jira.sh +0 -0
  97. package/pennyfarthing-dist/scripts/lib/background-tasks.sh +0 -0
  98. package/pennyfarthing-dist/scripts/lib/checkpoint.sh +0 -0
  99. package/pennyfarthing-dist/scripts/lib/common.sh +0 -0
  100. package/pennyfarthing-dist/scripts/lib/env.sh +0 -0
  101. package/pennyfarthing-dist/scripts/lib/file-lock.sh +0 -0
  102. package/pennyfarthing-dist/scripts/lib/logging.sh +0 -0
  103. package/pennyfarthing-dist/scripts/lib/retry.sh +0 -0
  104. package/pennyfarthing-dist/scripts/lib/run-pf.sh +0 -0
  105. package/pennyfarthing-dist/scripts/maintenance/migrate-theme-schema.mjs +0 -0
  106. package/pennyfarthing-dist/scripts/maintenance/sidecar-health.sh +0 -0
  107. package/pennyfarthing-dist/scripts/misc/add-short-names.sh +0 -0
  108. package/pennyfarthing-dist/scripts/misc/add_short_names.py +0 -0
  109. package/pennyfarthing-dist/scripts/misc/backlog.sh +0 -0
  110. package/pennyfarthing-dist/scripts/misc/check-status.sh +0 -0
  111. package/pennyfarthing-dist/scripts/misc/find-related-work.sh +0 -0
  112. package/pennyfarthing-dist/scripts/misc/generate-skill-docs.sh +0 -0
  113. package/pennyfarthing-dist/scripts/misc/log-skill-usage.sh +0 -0
  114. package/pennyfarthing-dist/scripts/misc/migrate-bmad-workflow.sh +0 -0
  115. package/pennyfarthing-dist/scripts/misc/migrate_bmad_workflow.py +0 -0
  116. package/pennyfarthing-dist/scripts/misc/repo-scan.sh +0 -0
  117. package/pennyfarthing-dist/scripts/misc/repo-utils.sh +0 -0
  118. package/pennyfarthing-dist/scripts/misc/run-ci.sh +0 -0
  119. package/pennyfarthing-dist/scripts/misc/run-timestamp.sh +0 -0
  120. package/pennyfarthing-dist/scripts/misc/session-cleanup.sh +0 -0
  121. package/pennyfarthing-dist/scripts/misc/skill-usage-report.sh +0 -0
  122. package/pennyfarthing-dist/scripts/misc/statusline.sh +0 -0
  123. package/pennyfarthing-dist/scripts/misc/uninstall.sh +0 -0
  124. package/pennyfarthing-dist/scripts/misc/validate-subagent-frontmatter.sh +0 -0
  125. package/pennyfarthing-dist/scripts/portraits/generate-portraits.sh +0 -0
  126. package/pennyfarthing-dist/scripts/portraits/generate-tandem-portraits.sh +0 -0
  127. package/pennyfarthing-dist/scripts/story/create-story.sh +0 -0
  128. package/pennyfarthing-dist/scripts/story/size-story.sh +0 -0
  129. package/pennyfarthing-dist/scripts/story/story-template.sh +0 -0
  130. package/pennyfarthing-dist/scripts/tests/check.test.sh +0 -0
  131. package/pennyfarthing-dist/scripts/tests/dev-story-workflow-import.test.sh +0 -0
  132. package/pennyfarthing-dist/scripts/tests/epics-and-stories-workflow-import.test.sh +0 -0
  133. package/pennyfarthing-dist/scripts/tests/handoff-phase-update.test.sh +0 -0
  134. package/pennyfarthing-dist/scripts/tests/implementation-readiness-workflow-import.test.sh +0 -0
  135. package/pennyfarthing-dist/scripts/tests/migrate-bmad-workflow.test.sh +0 -0
  136. package/pennyfarthing-dist/scripts/tests/prd-workflow-import.test.sh +0 -0
  137. package/pennyfarthing-dist/scripts/tests/project-context-workflow-import.test.sh +0 -0
  138. package/pennyfarthing-dist/scripts/tests/test-character-voice.sh +0 -0
  139. package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +0 -0
  140. package/pennyfarthing-dist/scripts/tests/test-post-merge-hook.sh +0 -0
  141. package/pennyfarthing-dist/scripts/tests/test-session-checkpoint.sh +0 -0
  142. package/pennyfarthing-dist/scripts/tests/test-solo-command.sh +0 -0
  143. package/pennyfarthing-dist/scripts/tests/ux-design-workflow-import.test.sh +0 -0
  144. package/pennyfarthing-dist/scripts/theme/list-themes.sh +0 -0
  145. package/pennyfarthing-dist/scripts/validation/validate-agent-schema.sh +0 -0
  146. package/pennyfarthing-dist/scripts/workflow/check.py +0 -0
  147. package/pennyfarthing-dist/scripts/workflow/check.sh +0 -0
  148. package/pennyfarthing-dist/scripts/workflow/complete-step.py +0 -0
  149. package/pennyfarthing-dist/scripts/workflow/finish-story.sh +0 -0
  150. package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +0 -0
  151. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.py +0 -0
  152. package/pennyfarthing-dist/scripts/workflow/get-workflow-type.sh +0 -0
  153. package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +0 -0
  154. package/pennyfarthing-dist/scripts/workflow/phase-owner.sh +0 -0
  155. package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +0 -0
  156. package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +0 -0
  157. package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +0 -0
  158. package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +0 -0
  159. package/pennyfarthing-dist/skills/pf-story/scripts/create-story.sh +0 -0
  160. package/pennyfarthing-dist/skills/pf-story/scripts/size-story.sh +0 -0
  161. package/pennyfarthing-dist/skills/pf-story/scripts/story-template.sh +0 -0
  162. package/pennyfarthing-dist/workflows/release/steps/step-10-publish.md +41 -9
  163. package/scripts/README.md +0 -41
@@ -3,16 +3,16 @@ import { execFile } from 'child_process';
3
3
  import { join } from 'path';
4
4
  import { existsSync } from 'fs';
5
5
  /**
6
- * Resolve the directory containing pennyfarthing_scripts.
7
- * Checks projectDir/pennyfarthing/ first (orchestrator layout),
6
+ * Resolve the directory containing the pf package.
7
+ * Checks projectDir/pennyfarthing/pennyfarthing-dist/ first (orchestrator layout),
8
8
  * then projectDir itself (framework layout).
9
9
  */
10
10
  function resolvePythonPath(projectDir) {
11
- const orchestratorPath = join(projectDir, 'pennyfarthing');
12
- if (existsSync(join(orchestratorPath, 'pennyfarthing_scripts'))) {
11
+ const orchestratorPath = join(projectDir, 'pennyfarthing', 'pennyfarthing-dist');
12
+ if (existsSync(join(orchestratorPath, 'pf'))) {
13
13
  return orchestratorPath;
14
14
  }
15
- if (existsSync(join(projectDir, 'pennyfarthing_scripts'))) {
15
+ if (existsSync(join(projectDir, 'pf'))) {
16
16
  return projectDir;
17
17
  }
18
18
  return null;
@@ -21,13 +21,13 @@ export function createHealthScoreRouter(getProjectDir) {
21
21
  const router = Router();
22
22
  router.get('/', (req, res) => {
23
23
  const projectDir = getProjectDir();
24
- const args = ['-m', 'pennyfarthing_scripts.healthscore', 'analyze', '--format', 'json', '--no-cache'];
24
+ const args = ['-m', 'pf.healthscore', 'analyze', '--format', 'json', '--no-cache'];
25
25
  const pythonPath = resolvePythonPath(projectDir);
26
26
  if (!pythonPath) {
27
- console.error('[HealthScore] pennyfarthing_scripts not found in %s or %s/pennyfarthing', projectDir, projectDir);
27
+ console.error('[HealthScore] pf not found in %s or %s/pennyfarthing', projectDir, projectDir);
28
28
  res.status(404).json({
29
29
  success: false,
30
- error: 'pennyfarthing_scripts not found. Ensure project directory contains the Python package.',
30
+ error: 'pf not found. Ensure project directory contains the Python package.',
31
31
  });
32
32
  return;
33
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"health-score.js","sourceRoot":"","sources":["../../../src/server/api/health-score.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"health-score.js","sourceRoot":"","sources":["../../../src/server/api/health-score.ts"],"names":[],"mappings":"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"}
@@ -11,7 +11,7 @@ export function createHotspotsRouter(getProjectDir) {
11
11
  const repo = req.query.repo;
12
12
  const skipType = req.query.skip_type;
13
13
  const args = [
14
- '-m', 'pennyfarthing_scripts.hotspots',
14
+ '-m', 'pf.hotspots',
15
15
  'analyze',
16
16
  '--format', 'json',
17
17
  '--days', days,
@@ -30,7 +30,7 @@ export function createHotspotsRouter(getProjectDir) {
30
30
  }
31
31
  }
32
32
  // Find python in the project's pennyfarthing dir
33
- const pythonPath = join(projectDir, 'pennyfarthing');
33
+ const pythonPath = join(projectDir, 'pennyfarthing', 'pennyfarthing-dist');
34
34
  execFile('python3', args, {
35
35
  cwd: pythonPath,
36
36
  env: { ...process.env, PYTHONPATH: pythonPath },
@@ -1 +1 @@
1
- {"version":3,"file":"hotspots.js","sourceRoot":"","sources":["../../../src/server/api/hotspots.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,6BAA6B;AAC7B,MAAM,UAAU,oBAAoB,CAAC,aAA2B;IAC9D,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,sEAAsE;IACtE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3B,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAA0B,CAAC;QAClD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;QAErC,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,gCAAgC;YACtC,SAAS;YACT,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,IAAI;SACf,CAAC;QAEF,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAClC,CAAC;QAED,kCAAkC;QAClC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC9D,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,iDAAiD;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;QAErD,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE;YACxB,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE;YAC/C,OAAO,EAAE,KAAK;SACf,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACzB,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;gBACpE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,MAAM,IAAI,GAAG,CAAC,OAAO;iBAC7B,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAChC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;YAAC,OAAO,QAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAC;gBACzD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,yCAAyC;iBACjD,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"hotspots.js","sourceRoot":"","sources":["../../../src/server/api/hotspots.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,6BAA6B;AAC7B,MAAM,UAAU,oBAAoB,CAAC,aAA2B;IAC9D,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,sEAAsE;IACtE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC3B,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,IAA0B,CAAC;QAClD,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;QAErC,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,aAAa;YACnB,SAAS;YACT,UAAU,EAAE,MAAM;YAClB,QAAQ,EAAE,IAAI;SACf,CAAC;QAEF,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAClC,CAAC;QAED,kCAAkC;QAClC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAC9D,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,iDAAiD;QACjD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,eAAe,EAAE,oBAAoB,CAAC,CAAC;QAE3E,QAAQ,CAAC,SAAS,EAAE,IAAI,EAAE;YACxB,GAAG,EAAE,UAAU;YACf,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE;YAC/C,OAAO,EAAE,KAAK;SACf,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE;YACzB,IAAI,GAAG,EAAE,CAAC;gBACR,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,MAAM,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;gBACpE,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,MAAM,IAAI,GAAG,CAAC,OAAO;iBAC7B,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBAChC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,CAAC;YAAC,OAAO,QAAQ,EAAE,CAAC;gBAClB,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,QAAQ,CAAC,CAAC;gBACzD,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;oBACnB,OAAO,EAAE,KAAK;oBACd,KAAK,EAAE,yCAAyC;iBACjD,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/server/paths.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8FH;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CASlD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAGrD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQ5D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CA0BnD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAK5C;AAGD,wBAAgB,YAAY,IAAI,MAAM,CA2BrC;AAGD,wBAAgB,iBAAiB,IAAI,MAAM,CAM1C;AAGD,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAuB/C;AAGD,wBAAgB,UAAU,IAAI,MAAM,CAwBnC;AAGD,eAAO,MAAM,SAAS,QAAiB,CAAC;AACxC,eAAO,MAAM,cAAc,QAAsB,CAAC;AAClD,eAAO,MAAM,YAAY,eAAoB,CAAC"}
1
+ {"version":3,"file":"paths.d.ts","sourceRoot":"","sources":["../../src/server/paths.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA8FH;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,GAAG,IAAI,CASlD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAGrD;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAQ5D;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CA0BnD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAK5C;AAGD,wBAAgB,YAAY,IAAI,MAAM,CA2BrC;AAGD,wBAAgB,iBAAiB,IAAI,MAAM,CAM1C;AAGD,wBAAgB,eAAe,IAAI,MAAM,GAAG,IAAI,CAoC/C;AAGD,wBAAgB,UAAU,IAAI,MAAM,CAwBnC;AAGD,eAAO,MAAM,SAAS,QAAiB,CAAC;AACxC,eAAO,MAAM,cAAc,QAAsB,CAAC;AAClD,eAAO,MAAM,YAAY,eAAoB,CAAC"}
@@ -188,7 +188,20 @@ export function getPortraitsDir() {
188
188
  if (existsSync(bundledPortraits)) {
189
189
  return bundledPortraits;
190
190
  }
191
- // 2. Monorepo/pennyfarthing-dist (for dogfooding)
191
+ // 2. @pennyfarthing/cyclist package (consumer npm installs)
192
+ // __dirname is core/dist/server/, walk up to find node_modules
193
+ let searchDir = __dirname;
194
+ for (let i = 0; i < 10; i++) {
195
+ const cyclistPortraits = join(searchDir, 'node_modules', '@pennyfarthing', 'cyclist', 'portraits');
196
+ if (existsSync(cyclistPortraits)) {
197
+ return cyclistPortraits;
198
+ }
199
+ const parent = dirname(searchDir);
200
+ if (parent === searchDir)
201
+ break;
202
+ searchDir = parent;
203
+ }
204
+ // 3. Monorepo/pennyfarthing-dist (for dogfooding)
192
205
  const distPath = resolvePennyfarthingDist();
193
206
  if (distPath) {
194
207
  const paths = getPortraitPaths(distPath);
@@ -196,7 +209,7 @@ export function getPortraitsDir() {
196
209
  return paths.portraitsDir;
197
210
  }
198
211
  }
199
- // 3. Fallback: portraits in public dir (dev symlink)
212
+ // 4. Fallback: portraits in public dir (dev symlink)
200
213
  const pubDir = getPublicDir();
201
214
  const publicPortraits = join(pubDir, 'portraits');
202
215
  if (existsSync(publicPortraits)) {
@@ -1 +1 @@
1
- {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/server/paths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paths.js","sourceRoot":"","sources":["../../src/server/paths.ts"],"names":[],"mappings":"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"}
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,20 +1,29 @@
1
1
  # Step 10: Publish to npm
2
2
 
3
3
  <purpose>
4
- Publish all Pennyfarthing packages to the npm registry. Verifies authentication, checks for conflicts, publishes each package, and verifies registry state.
4
+ Publish all Pennyfarthing packages to the npm registry. Uses `pnpm publish` to
5
+ resolve `workspace:*` dependencies to real version numbers. Verifies authentication,
6
+ checks for conflicts, publishes each package, and verifies registry state.
5
7
  </purpose>
6
8
 
9
+ <critical>
10
+ **MUST use `pnpm publish`** — not `npm publish`. Packages use `workspace:*` protocol
11
+ for inter-package dependencies. `pnpm publish` resolves these to actual version numbers
12
+ at publish time. `npm publish` does NOT — it publishes the literal `workspace:*` string,
13
+ which breaks consumer installs.
14
+ </critical>
15
+
7
16
  <instructions>
8
17
  1. Verify npm authentication
9
18
  2. Check that versions aren't already published
10
- 3. Publish @pennyfarthing/core (root package)
11
- 4. Publish @pennyfarthing/cyclist
12
- 5. Publish all theme packs
13
- 6. Verify published versions on registry
19
+ 3. Publish @pennyfarthing/core (root package) via pnpm
20
+ 4. Publish workspace packages via pnpm
21
+ 5. Verify published versions and resolved dependencies on registry
14
22
  </instructions>
15
23
 
16
24
  <output>
17
- npm publish results for each package, plus registry verification.
25
+ pnpm publish results for each package, plus registry verification including
26
+ dependency resolution check (no workspace:* in published metadata).
18
27
  </output>
19
28
 
20
29
  ## Execution
@@ -69,7 +78,7 @@ fi
69
78
 
70
79
  ```bash
71
80
  echo "Publishing @pennyfarthing/core@{new_version}..."
72
- npm publish --access public $NPM_TAG
81
+ pnpm publish --access public --no-git-checks $NPM_TAG
73
82
  ```
74
83
 
75
84
  ### 10.5 Publish Workspace Packages
@@ -79,17 +88,20 @@ for pkg_dir in packages/cyclist packages/shared packages/themes-*; do
79
88
  if [[ -f "$pkg_dir/package.json" ]]; then
80
89
  PKG_NAME=$(node -e "console.log(require('./$pkg_dir/package.json').name)")
81
90
  echo "Publishing $PKG_NAME@{new_version}..."
82
- (cd "$pkg_dir" && npm publish --access public $NPM_TAG) || echo "WARNING: Failed to publish $PKG_NAME"
91
+ (cd "$pkg_dir" && pnpm publish --access public --no-git-checks $NPM_TAG) || echo "WARNING: Failed to publish $PKG_NAME"
83
92
  fi
84
93
  done
85
94
  ```
86
95
 
87
- ### 10.6 Verify Published
96
+ ### 10.6 Verify Published (including workspace:* resolution)
88
97
 
89
98
  ```bash
90
99
  echo "=== Registry Verification ==="
91
100
  echo "Waiting 10s for registry propagation..."
92
101
  sleep 10
102
+
103
+ echo ""
104
+ echo "=== Version Check ==="
93
105
  for PKG_JSON in package.json packages/*/package.json; do
94
106
  PKG_NAME=$(node -e "console.log(require('./$PKG_JSON').name)")
95
107
  npm view "$PKG_NAME@{new_version}" version 2>/dev/null \
@@ -97,6 +109,26 @@ for PKG_JSON in package.json packages/*/package.json; do
97
109
  || echo " ✗ $PKG_NAME@{new_version} NOT FOUND"
98
110
  done
99
111
 
112
+ echo ""
113
+ echo "=== Dependency Resolution Check ==="
114
+ echo "Verifying no workspace:* references leaked to npm..."
115
+ LEAKED=0
116
+ for PKG_JSON in package.json packages/*/package.json; do
117
+ PKG_NAME=$(node -e "console.log(require('./$PKG_JSON').name)")
118
+ DEPS=$(npm view "$PKG_NAME@{new_version}" dependencies --json 2>/dev/null || echo "{}")
119
+ if echo "$DEPS" | grep -q "workspace:"; then
120
+ echo " ✗ $PKG_NAME has workspace: refs in published dependencies!"
121
+ echo "$DEPS" | grep "workspace:"
122
+ LEAKED=1
123
+ else
124
+ echo " ✓ $PKG_NAME — no workspace: refs"
125
+ fi
126
+ done
127
+ if [[ $LEAKED -eq 1 ]]; then
128
+ echo ""
129
+ echo "ERROR: workspace:* references leaked to npm. Deprecate affected versions and re-publish."
130
+ fi
131
+
100
132
  if [[ "$IS_PRERELEASE" == "true" ]]; then
101
133
  echo ""
102
134
  echo "=== Dist-Tag Verification ==="