@pennyfarthing/core 10.4.0 → 11.0.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.
- package/README.md +4 -4
- package/package.json +16 -14
- package/packages/core/dist/benchmark/benchmark-integration.d.ts +182 -0
- package/packages/core/dist/benchmark/benchmark-integration.d.ts.map +1 -0
- package/packages/core/dist/benchmark/benchmark-integration.js +710 -0
- package/packages/core/dist/benchmark/benchmark-integration.js.map +1 -0
- package/packages/core/dist/benchmark/benchmark-integration.test.d.ts +6 -0
- package/packages/core/dist/benchmark/benchmark-integration.test.d.ts.map +1 -0
- package/packages/core/dist/benchmark/benchmark-integration.test.js +41 -0
- package/packages/core/dist/benchmark/benchmark-integration.test.js.map +1 -0
- package/packages/core/dist/benchmark/index.d.ts +3 -0
- package/packages/core/dist/benchmark/index.d.ts.map +1 -0
- package/packages/core/dist/benchmark/index.js +5 -0
- package/packages/core/dist/benchmark/index.js.map +1 -0
- package/packages/core/dist/benchmark/job-fair-aggregator.d.ts +150 -0
- package/packages/core/dist/benchmark/job-fair-aggregator.d.ts.map +1 -0
- package/packages/core/dist/benchmark/job-fair-aggregator.js +547 -0
- package/packages/core/dist/benchmark/job-fair-aggregator.js.map +1 -0
- package/packages/core/dist/benchmark/job-fair-aggregator.test.d.ts +6 -0
- package/packages/core/dist/benchmark/job-fair-aggregator.test.d.ts.map +1 -0
- package/packages/core/dist/benchmark/job-fair-aggregator.test.js +35 -0
- package/packages/core/dist/benchmark/job-fair-aggregator.test.js.map +1 -0
- package/packages/core/dist/cli/commands/hook-chaining.test.d.ts +17 -0
- package/packages/core/dist/cli/commands/hook-chaining.test.d.ts.map +1 -0
- package/packages/core/dist/cli/commands/hook-chaining.test.js +386 -0
- package/packages/core/dist/cli/commands/hook-chaining.test.js.map +1 -0
- package/packages/core/dist/cli/commands/init.d.ts +6 -1
- package/packages/core/dist/cli/commands/init.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/init.js +83 -30
- package/packages/core/dist/cli/commands/init.js.map +1 -1
- package/packages/core/dist/cli/commands/uninstall.d.ts.map +1 -1
- package/packages/core/dist/cli/commands/uninstall.js +20 -3
- package/packages/core/dist/cli/commands/uninstall.js.map +1 -1
- package/packages/core/dist/cli/commands/uninstall.test.d.ts +8 -0
- package/packages/core/dist/cli/commands/uninstall.test.d.ts.map +1 -0
- package/packages/core/dist/cli/commands/uninstall.test.js +120 -0
- package/packages/core/dist/cli/commands/uninstall.test.js.map +1 -0
- package/packages/core/dist/cli/commands/update.js +4 -4
- package/packages/core/dist/cli/commands/update.js.map +1 -1
- package/packages/core/dist/cli/cyclist-migration.test.js +2 -1
- package/packages/core/dist/cli/cyclist-migration.test.js.map +1 -1
- package/packages/core/dist/cli/ocean-profiles.test.js +5 -4
- package/packages/core/dist/cli/ocean-profiles.test.js.map +1 -1
- package/packages/core/dist/cli/theme-maker.test.js +5 -4
- package/packages/core/dist/cli/theme-maker.test.js.map +1 -1
- package/packages/core/dist/cli/utils/008-sprint-shard-migration.test.d.ts +15 -0
- package/packages/core/dist/cli/utils/008-sprint-shard-migration.test.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/008-sprint-shard-migration.test.js +295 -0
- package/packages/core/dist/cli/utils/008-sprint-shard-migration.test.js.map +1 -0
- package/packages/core/dist/cli/utils/settings-consolidation.test.js +26 -0
- package/packages/core/dist/cli/utils/settings-consolidation.test.js.map +1 -1
- package/packages/core/dist/cli/utils/settings-merge.d.ts +128 -0
- package/packages/core/dist/cli/utils/settings-merge.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/settings-merge.js +303 -0
- package/packages/core/dist/cli/utils/settings-merge.js.map +1 -0
- package/packages/core/dist/cli/utils/settings-merge.test.d.ts +15 -0
- package/packages/core/dist/cli/utils/settings-merge.test.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/settings-merge.test.js +781 -0
- package/packages/core/dist/cli/utils/settings-merge.test.js.map +1 -0
- package/packages/core/dist/cli/utils/settings.d.ts.map +1 -1
- package/packages/core/dist/cli/utils/settings.js +3 -0
- package/packages/core/dist/cli/utils/settings.js.map +1 -1
- package/packages/core/dist/cli/utils/symlinks.d.ts +6 -16
- package/packages/core/dist/cli/utils/symlinks.d.ts.map +1 -1
- package/packages/core/dist/cli/utils/symlinks.js +100 -171
- package/packages/core/dist/cli/utils/symlinks.js.map +1 -1
- package/packages/core/dist/cli/utils/symlinks.test.d.ts +10 -0
- package/packages/core/dist/cli/utils/symlinks.test.d.ts.map +1 -0
- package/packages/core/dist/cli/utils/symlinks.test.js +266 -0
- package/packages/core/dist/cli/utils/symlinks.test.js.map +1 -0
- package/packages/core/dist/cli/utils/themes.js +1 -1
- package/packages/core/dist/cli/workspace.test.js +2 -5
- package/packages/core/dist/cli/workspace.test.js.map +1 -1
- package/packages/core/dist/consolidation.test.d.ts +11 -0
- package/packages/core/dist/consolidation.test.d.ts.map +1 -0
- package/packages/core/dist/consolidation.test.js +249 -0
- package/packages/core/dist/consolidation.test.js.map +1 -0
- package/packages/core/dist/index.d.ts +2 -0
- package/packages/core/dist/index.d.ts.map +1 -1
- package/packages/core/dist/index.js +4 -0
- package/packages/core/dist/index.js.map +1 -1
- package/packages/core/dist/plugins/plugin-discovery.js +1 -1
- package/packages/core/dist/plugins/plugin-discovery.js.map +1 -1
- package/packages/core/dist/plugins/plugin-discovery.test.d.ts +1 -1
- package/packages/core/dist/plugins/plugin-discovery.test.js +47 -36
- package/packages/core/dist/plugins/plugin-discovery.test.js.map +1 -1
- package/packages/core/dist/public/css/react.css +1 -0
- package/packages/core/dist/public/js/react/react.js +82 -0
- package/packages/core/dist/scripts/generate-report.test.js +2 -2
- package/packages/core/dist/scripts/generate-spider-report.test.js +2 -2
- package/packages/core/dist/scripts/generate-spider.test.js +2 -1
- package/packages/core/dist/scripts/generate-spider.test.js.map +1 -1
- package/packages/core/dist/server/agent-context.d.ts +5 -0
- package/packages/core/dist/server/agent-context.d.ts.map +1 -0
- package/packages/core/dist/server/agent-context.js +5 -0
- package/packages/core/dist/server/agent-context.js.map +1 -0
- package/packages/core/dist/server/agent-evaluation.d.ts +17 -0
- package/packages/core/dist/server/agent-evaluation.d.ts.map +1 -0
- package/packages/core/dist/server/agent-evaluation.js +15 -0
- package/packages/core/dist/server/agent-evaluation.js.map +1 -0
- package/packages/core/dist/server/api/agent-load.d.ts +3 -0
- package/packages/core/dist/server/api/agent-load.d.ts.map +1 -0
- package/packages/core/dist/server/api/agent-load.js +19 -0
- package/packages/core/dist/server/api/agent-load.js.map +1 -0
- package/packages/core/dist/server/api/audit-log.d.ts +3 -0
- package/packages/core/dist/server/api/audit-log.d.ts.map +1 -0
- package/packages/core/dist/server/api/audit-log.js +31 -0
- package/packages/core/dist/server/api/audit-log.js.map +1 -0
- package/packages/core/dist/server/api/background-tasks.d.ts +27 -0
- package/packages/core/dist/server/api/background-tasks.d.ts.map +1 -0
- package/packages/core/dist/server/api/background-tasks.js +56 -0
- package/packages/core/dist/server/api/background-tasks.js.map +1 -0
- package/packages/core/dist/server/api/bell.d.ts +19 -0
- package/packages/core/dist/server/api/bell.d.ts.map +1 -0
- package/packages/core/dist/server/api/bell.js +34 -0
- package/packages/core/dist/server/api/bell.js.map +1 -0
- package/packages/core/dist/server/api/code-markers.d.ts +9 -0
- package/packages/core/dist/server/api/code-markers.d.ts.map +1 -0
- package/packages/core/dist/server/api/code-markers.js +62 -0
- package/packages/core/dist/server/api/code-markers.js.map +1 -0
- package/packages/core/dist/server/api/complexity.d.ts +3 -0
- package/packages/core/dist/server/api/complexity.d.ts.map +1 -0
- package/packages/core/dist/server/api/complexity.js +47 -0
- package/packages/core/dist/server/api/complexity.js.map +1 -0
- package/packages/core/dist/server/api/context.d.ts +38 -0
- package/packages/core/dist/server/api/context.d.ts.map +1 -0
- package/packages/core/dist/server/api/context.js +144 -0
- package/packages/core/dist/server/api/context.js.map +1 -0
- package/packages/core/dist/server/api/dead-code.d.ts +3 -0
- package/packages/core/dist/server/api/dead-code.d.ts.map +1 -0
- package/packages/core/dist/server/api/dead-code.js +70 -0
- package/packages/core/dist/server/api/dead-code.js.map +1 -0
- package/packages/core/dist/server/api/dependencies.d.ts +3 -0
- package/packages/core/dist/server/api/dependencies.d.ts.map +1 -0
- package/packages/core/dist/server/api/dependencies.js +43 -0
- package/packages/core/dist/server/api/dependencies.js.map +1 -0
- package/packages/core/dist/server/api/evaluation.d.ts +3 -0
- package/packages/core/dist/server/api/evaluation.d.ts.map +1 -0
- package/packages/core/dist/server/api/evaluation.js +33 -0
- package/packages/core/dist/server/api/evaluation.js.map +1 -0
- package/packages/core/dist/server/api/file-browser.d.ts +9 -0
- package/packages/core/dist/server/api/file-browser.d.ts.map +1 -0
- package/packages/core/dist/server/api/file-browser.js +133 -0
- package/packages/core/dist/server/api/file-browser.js.map +1 -0
- package/packages/core/dist/server/api/git-fetch-cooldown.test.d.ts +10 -0
- package/packages/core/dist/server/api/git-fetch-cooldown.test.d.ts.map +1 -0
- package/packages/core/dist/server/api/git-fetch-cooldown.test.js +30 -0
- package/packages/core/dist/server/api/git-fetch-cooldown.test.js.map +1 -0
- package/packages/core/dist/server/api/git.d.ts +55 -0
- package/packages/core/dist/server/api/git.d.ts.map +1 -0
- package/packages/core/dist/server/api/git.js +382 -0
- package/packages/core/dist/server/api/git.js.map +1 -0
- package/packages/core/dist/server/api/health-score.d.ts +3 -0
- package/packages/core/dist/server/api/health-score.d.ts.map +1 -0
- package/packages/core/dist/server/api/health-score.js +47 -0
- package/packages/core/dist/server/api/health-score.js.map +1 -0
- package/packages/core/dist/server/api/hook-request.d.ts +41 -0
- package/packages/core/dist/server/api/hook-request.d.ts.map +1 -0
- package/packages/core/dist/server/api/hook-request.js +278 -0
- package/packages/core/dist/server/api/hook-request.js.map +1 -0
- package/packages/core/dist/server/api/hotspots.d.ts +3 -0
- package/packages/core/dist/server/api/hotspots.d.ts.map +1 -0
- package/packages/core/dist/server/api/hotspots.js +62 -0
- package/packages/core/dist/server/api/hotspots.js.map +1 -0
- package/packages/core/dist/server/api/identity.d.ts +17 -0
- package/packages/core/dist/server/api/identity.d.ts.map +1 -0
- package/packages/core/dist/server/api/identity.js +79 -0
- package/packages/core/dist/server/api/identity.js.map +1 -0
- package/packages/core/dist/server/api/index.d.ts +36 -0
- package/packages/core/dist/server/api/index.d.ts.map +1 -0
- package/packages/core/dist/server/api/index.js +47 -0
- package/packages/core/dist/server/api/index.js.map +1 -0
- package/packages/core/dist/server/api/mode.d.ts +24 -0
- package/packages/core/dist/server/api/mode.d.ts.map +1 -0
- package/packages/core/dist/server/api/mode.js +40 -0
- package/packages/core/dist/server/api/mode.js.map +1 -0
- package/packages/core/dist/server/api/otlp.d.ts +3 -0
- package/packages/core/dist/server/api/otlp.d.ts.map +1 -0
- package/packages/core/dist/server/api/otlp.js +40 -0
- package/packages/core/dist/server/api/otlp.js.map +1 -0
- package/packages/core/dist/server/api/permissions.d.ts +16 -0
- package/packages/core/dist/server/api/permissions.d.ts.map +1 -0
- package/packages/core/dist/server/api/permissions.js +67 -0
- package/packages/core/dist/server/api/permissions.js.map +1 -0
- package/packages/core/dist/server/api/persona.d.ts +9 -0
- package/packages/core/dist/server/api/persona.d.ts.map +1 -0
- package/packages/core/dist/server/api/persona.js +68 -0
- package/packages/core/dist/server/api/persona.js.map +1 -0
- package/packages/core/dist/server/api/portrait.d.ts +6 -0
- package/packages/core/dist/server/api/portrait.d.ts.map +1 -0
- package/packages/core/dist/server/api/portrait.js +28 -0
- package/packages/core/dist/server/api/portrait.js.map +1 -0
- package/packages/core/dist/server/api/settings.d.ts +14 -0
- package/packages/core/dist/server/api/settings.d.ts.map +1 -0
- package/packages/core/dist/server/api/settings.js +68 -0
- package/packages/core/dist/server/api/settings.js.map +1 -0
- package/packages/core/dist/server/api/spans.d.ts +3 -0
- package/packages/core/dist/server/api/spans.d.ts.map +1 -0
- package/packages/core/dist/server/api/spans.js +33 -0
- package/packages/core/dist/server/api/spans.js.map +1 -0
- package/packages/core/dist/server/api/stats.d.ts +13 -0
- package/packages/core/dist/server/api/stats.d.ts.map +1 -0
- package/packages/core/dist/server/api/stats.js +85 -0
- package/packages/core/dist/server/api/stats.js.map +1 -0
- package/packages/core/dist/server/api/story.d.ts +3 -0
- package/packages/core/dist/server/api/story.d.ts.map +1 -0
- package/packages/core/dist/server/api/story.js +15 -0
- package/packages/core/dist/server/api/story.js.map +1 -0
- package/packages/core/dist/server/api/telemetry.d.ts +3 -0
- package/packages/core/dist/server/api/telemetry.d.ts.map +1 -0
- package/packages/core/dist/server/api/telemetry.js +30 -0
- package/packages/core/dist/server/api/telemetry.js.map +1 -0
- package/packages/core/dist/server/api/theme-agents.d.ts +10 -0
- package/packages/core/dist/server/api/theme-agents.d.ts.map +1 -0
- package/packages/core/dist/server/api/theme-agents.js +39 -0
- package/packages/core/dist/server/api/theme-agents.js.map +1 -0
- package/packages/core/dist/server/api/todos.d.ts +33 -0
- package/packages/core/dist/server/api/todos.d.ts.map +1 -0
- package/packages/core/dist/server/api/todos.js +44 -0
- package/packages/core/dist/server/api/todos.js.map +1 -0
- package/packages/core/dist/server/api/token-stats.d.ts +8 -0
- package/packages/core/dist/server/api/token-stats.d.ts.map +1 -0
- package/packages/core/dist/server/api/token-stats.js +36 -0
- package/packages/core/dist/server/api/token-stats.js.map +1 -0
- package/packages/core/dist/server/api/welcome.d.ts +22 -0
- package/packages/core/dist/server/api/welcome.d.ts.map +1 -0
- package/packages/core/dist/server/api/welcome.js +35 -0
- package/packages/core/dist/server/api/welcome.js.map +1 -0
- package/packages/core/dist/server/bell-mode.d.ts +7 -0
- package/packages/core/dist/server/bell-mode.d.ts.map +1 -0
- package/packages/core/dist/server/bell-mode.js +7 -0
- package/packages/core/dist/server/bell-mode.js.map +1 -0
- package/packages/core/dist/server/dangerous-path.d.ts +36 -0
- package/packages/core/dist/server/dangerous-path.d.ts.map +1 -0
- package/packages/core/dist/server/dangerous-path.js +159 -0
- package/packages/core/dist/server/dangerous-path.js.map +1 -0
- package/packages/core/dist/server/enriched-span-exporter.d.ts +17 -0
- package/packages/core/dist/server/enriched-span-exporter.d.ts.map +1 -0
- package/packages/core/dist/server/enriched-span-exporter.js +12 -0
- package/packages/core/dist/server/enriched-span-exporter.js.map +1 -0
- package/packages/core/dist/server/env.d.ts +6 -0
- package/packages/core/dist/server/env.d.ts.map +1 -0
- package/packages/core/dist/server/env.js +10 -0
- package/packages/core/dist/server/env.js.map +1 -0
- package/packages/core/dist/server/file-browser.d.ts +17 -0
- package/packages/core/dist/server/file-browser.d.ts.map +1 -0
- package/packages/core/dist/server/file-browser.js +11 -0
- package/packages/core/dist/server/file-browser.js.map +1 -0
- package/packages/core/dist/server/otlp-receiver.d.ts +87 -0
- package/packages/core/dist/server/otlp-receiver.d.ts.map +1 -0
- package/packages/core/dist/server/otlp-receiver.js +106 -0
- package/packages/core/dist/server/otlp-receiver.js.map +1 -0
- package/packages/core/dist/server/parser.d.ts +11 -0
- package/packages/core/dist/server/parser.d.ts.map +1 -0
- package/packages/core/dist/server/parser.js +6 -0
- package/packages/core/dist/server/parser.js.map +1 -0
- package/packages/core/dist/server/paths.d.ts +37 -0
- package/packages/core/dist/server/paths.d.ts.map +1 -0
- package/packages/core/dist/server/paths.js +227 -0
- package/packages/core/dist/server/paths.js.map +1 -0
- package/packages/core/dist/server/pennyfarthing.d.ts +56 -0
- package/packages/core/dist/server/pennyfarthing.d.ts.map +1 -0
- package/packages/core/dist/server/pennyfarthing.js +356 -0
- package/packages/core/dist/server/pennyfarthing.js.map +1 -0
- package/packages/core/dist/server/plugin-loader.d.ts +22 -0
- package/packages/core/dist/server/plugin-loader.d.ts.map +1 -0
- package/packages/core/dist/server/plugin-loader.js +67 -0
- package/packages/core/dist/server/plugin-loader.js.map +1 -0
- package/packages/core/dist/server/prime.d.ts +12 -0
- package/packages/core/dist/server/prime.d.ts.map +1 -0
- package/packages/core/dist/server/prime.js +8 -0
- package/packages/core/dist/server/prime.js.map +1 -0
- package/packages/core/dist/server/server.d.ts +47 -0
- package/packages/core/dist/server/server.d.ts.map +1 -0
- package/packages/core/dist/server/server.js +353 -0
- package/packages/core/dist/server/server.js.map +1 -0
- package/packages/core/dist/server/server.test.d.ts +26 -0
- package/packages/core/dist/server/server.test.d.ts.map +1 -0
- package/packages/core/dist/server/server.test.js +447 -0
- package/packages/core/dist/server/server.test.js.map +1 -0
- package/packages/core/dist/server/settings-store.d.ts +195 -0
- package/packages/core/dist/server/settings-store.d.ts.map +1 -0
- package/packages/core/dist/server/settings-store.js +398 -0
- package/packages/core/dist/server/settings-store.js.map +1 -0
- package/packages/core/dist/server/settings.d.ts +136 -0
- package/packages/core/dist/server/settings.d.ts.map +1 -0
- package/packages/core/dist/server/settings.js +417 -0
- package/packages/core/dist/server/settings.js.map +1 -0
- package/packages/core/dist/server/span-hierarchy.d.ts +5 -0
- package/packages/core/dist/server/span-hierarchy.d.ts.map +1 -0
- package/packages/core/dist/server/span-hierarchy.js +5 -0
- package/packages/core/dist/server/span-hierarchy.js.map +1 -0
- package/packages/core/dist/server/story-context.d.ts +5 -0
- package/packages/core/dist/server/story-context.d.ts.map +1 -0
- package/packages/core/dist/server/story-context.js +5 -0
- package/packages/core/dist/server/story-context.js.map +1 -0
- package/packages/core/dist/server/story-parser.d.ts +74 -0
- package/packages/core/dist/server/story-parser.d.ts.map +1 -0
- package/packages/core/dist/server/story-parser.js +748 -0
- package/packages/core/dist/server/story-parser.js.map +1 -0
- package/packages/core/dist/server/tdd-metrics.d.ts +5 -0
- package/packages/core/dist/server/tdd-metrics.d.ts.map +1 -0
- package/packages/core/dist/server/tdd-metrics.js +5 -0
- package/packages/core/dist/server/tdd-metrics.js.map +1 -0
- package/packages/core/dist/server/ui-build.test.d.ts +19 -0
- package/packages/core/dist/server/ui-build.test.d.ts.map +1 -0
- package/packages/core/dist/server/ui-build.test.js +152 -0
- package/packages/core/dist/server/ui-build.test.js.map +1 -0
- package/packages/core/dist/server/websocket.d.ts +7 -0
- package/packages/core/dist/server/websocket.d.ts.map +1 -0
- package/packages/core/dist/server/websocket.js +8 -0
- package/packages/core/dist/server/websocket.js.map +1 -0
- package/packages/core/dist/shared/browser.d.ts +6 -0
- package/packages/core/dist/shared/browser.d.ts.map +1 -0
- package/packages/core/dist/shared/browser.js +8 -0
- package/packages/core/dist/shared/browser.js.map +1 -0
- package/packages/core/dist/shared/generate-skill-docs.d.ts +35 -0
- package/packages/core/dist/shared/generate-skill-docs.d.ts.map +1 -0
- package/packages/core/dist/shared/generate-skill-docs.js +442 -0
- package/packages/core/dist/shared/generate-skill-docs.js.map +1 -0
- package/packages/core/dist/shared/generate-skill-docs.test.d.ts +13 -0
- package/packages/core/dist/shared/generate-skill-docs.test.d.ts.map +1 -0
- package/packages/core/dist/shared/generate-skill-docs.test.js +519 -0
- package/packages/core/dist/shared/generate-skill-docs.test.js.map +1 -0
- package/packages/core/dist/shared/index.d.ts +11 -0
- package/packages/core/dist/shared/index.d.ts.map +1 -0
- package/packages/core/dist/shared/index.js +13 -0
- package/packages/core/dist/shared/index.js.map +1 -0
- package/packages/core/dist/shared/marker/constants.d.ts +39 -0
- package/packages/core/dist/shared/marker/constants.d.ts.map +1 -0
- package/packages/core/dist/shared/marker/constants.js +46 -0
- package/packages/core/dist/shared/marker/constants.js.map +1 -0
- package/packages/core/dist/shared/marker/continue.test.d.ts +12 -0
- package/packages/core/dist/shared/marker/continue.test.d.ts.map +1 -0
- package/packages/core/dist/shared/marker/continue.test.js +76 -0
- package/packages/core/dist/shared/marker/continue.test.js.map +1 -0
- package/packages/core/dist/shared/marker/detect.d.ts +25 -0
- package/packages/core/dist/shared/marker/detect.d.ts.map +1 -0
- package/packages/core/dist/shared/marker/detect.js +53 -0
- package/packages/core/dist/shared/marker/detect.js.map +1 -0
- package/packages/core/dist/shared/marker/detect.test.d.ts +10 -0
- package/packages/core/dist/shared/marker/detect.test.d.ts.map +1 -0
- package/packages/core/dist/shared/marker/detect.test.js +418 -0
- package/packages/core/dist/shared/marker/detect.test.js.map +1 -0
- package/packages/core/dist/shared/marker/index.d.ts +14 -0
- package/packages/core/dist/shared/marker/index.d.ts.map +1 -0
- package/packages/core/dist/shared/marker/index.js +15 -0
- package/packages/core/dist/shared/marker/index.js.map +1 -0
- package/packages/core/dist/shared/marker/strip.d.ts +26 -0
- package/packages/core/dist/shared/marker/strip.d.ts.map +1 -0
- package/packages/core/dist/shared/marker/strip.js +39 -0
- package/packages/core/dist/shared/marker/strip.js.map +1 -0
- package/packages/core/dist/shared/marker/types.d.ts +23 -0
- package/packages/core/dist/shared/marker/types.d.ts.map +1 -0
- package/packages/core/dist/shared/marker/types.js +7 -0
- package/packages/core/dist/shared/marker/types.js.map +1 -0
- package/packages/core/dist/shared/migrate-theme-schema.test.d.ts +8 -0
- package/packages/core/dist/shared/migrate-theme-schema.test.d.ts.map +1 -0
- package/packages/core/dist/shared/migrate-theme-schema.test.js +100 -0
- package/packages/core/dist/shared/migrate-theme-schema.test.js.map +1 -0
- package/packages/core/dist/shared/portrait-resolver.d.ts +35 -0
- package/packages/core/dist/shared/portrait-resolver.d.ts.map +1 -0
- package/packages/core/dist/shared/portrait-resolver.js +259 -0
- package/packages/core/dist/shared/portrait-resolver.js.map +1 -0
- package/packages/core/dist/shared/portrait-resolver.test.d.ts +2 -0
- package/packages/core/dist/shared/portrait-resolver.test.d.ts.map +1 -0
- package/packages/core/dist/shared/portrait-resolver.test.js +157 -0
- package/packages/core/dist/shared/portrait-resolver.test.js.map +1 -0
- package/packages/core/dist/shared/repos-topology.d.ts +49 -0
- package/packages/core/dist/shared/repos-topology.d.ts.map +1 -0
- package/packages/core/dist/shared/repos-topology.js +101 -0
- package/packages/core/dist/shared/repos-topology.js.map +1 -0
- package/packages/core/dist/shared/repos-topology.test.d.ts +8 -0
- package/packages/core/dist/shared/repos-topology.test.d.ts.map +1 -0
- package/packages/core/dist/shared/repos-topology.test.js +250 -0
- package/packages/core/dist/shared/repos-topology.test.js.map +1 -0
- package/packages/core/dist/shared/skill-search.d.ts +36 -0
- package/packages/core/dist/shared/skill-search.d.ts.map +1 -0
- package/packages/core/dist/shared/skill-search.js +300 -0
- package/packages/core/dist/shared/skill-search.js.map +1 -0
- package/packages/core/dist/shared/skill-search.test.d.ts +16 -0
- package/packages/core/dist/shared/skill-search.test.d.ts.map +1 -0
- package/packages/core/dist/shared/skill-search.test.js +177 -0
- package/packages/core/dist/shared/skill-search.test.js.map +1 -0
- package/packages/core/dist/shared/skill-suggest.d.ts +76 -0
- package/packages/core/dist/shared/skill-suggest.d.ts.map +1 -0
- package/packages/core/dist/shared/skill-suggest.js +256 -0
- package/packages/core/dist/shared/skill-suggest.js.map +1 -0
- package/packages/core/dist/shared/skill-suggest.test.d.ts +12 -0
- package/packages/core/dist/shared/skill-suggest.test.d.ts.map +1 -0
- package/packages/core/dist/shared/skill-suggest.test.js +257 -0
- package/packages/core/dist/shared/skill-suggest.test.js.map +1 -0
- package/packages/core/dist/shared/theme-loader.d.ts +81 -0
- package/packages/core/dist/shared/theme-loader.d.ts.map +1 -0
- package/packages/core/dist/shared/theme-loader.js +491 -0
- package/packages/core/dist/shared/theme-loader.js.map +1 -0
- package/packages/core/dist/shared/theme-loader.test.d.ts +8 -0
- package/packages/core/dist/shared/theme-loader.test.d.ts.map +1 -0
- package/packages/core/dist/shared/theme-loader.test.js +62 -0
- package/packages/core/dist/shared/theme-loader.test.js.map +1 -0
- package/packages/core/dist/workflow/context-watch.test.js +1 -1
- package/packages/core/dist/workflow/context-watch.test.js.map +1 -1
- package/packages/core/dist/workflow/variable-resolver.test.js +1 -1
- package/packages/core/dist/workflow/variable-resolver.test.js.map +1 -1
- package/packages/core/dist/workflow/workflow-migration.test.js +4 -3
- package/packages/core/dist/workflow/workflow-migration.test.js.map +1 -1
- package/pennyfarthing-dist/agents/architect.md +1 -2
- package/pennyfarthing-dist/agents/ba.md +1 -1
- package/pennyfarthing-dist/agents/dev.md +2 -3
- package/pennyfarthing-dist/agents/devops.md +1 -1
- package/pennyfarthing-dist/agents/orchestrator.md +2 -3
- package/pennyfarthing-dist/agents/pm.md +2 -2
- package/pennyfarthing-dist/agents/reviewer.md +2 -2
- package/pennyfarthing-dist/agents/sm-setup.md +7 -7
- package/pennyfarthing-dist/agents/sm.md +19 -18
- package/pennyfarthing-dist/agents/tea.md +3 -2
- package/pennyfarthing-dist/agents/tech-writer.md +1 -1
- package/pennyfarthing-dist/agents/ux-designer.md +0 -1
- package/pennyfarthing-dist/commands/benchmark-control.md +69 -0
- package/pennyfarthing-dist/commands/benchmark.md +485 -0
- package/pennyfarthing-dist/commands/job-fair.md +102 -0
- package/pennyfarthing-dist/commands/{close-epic.md → pf-close-epic.md} +1 -1
- package/pennyfarthing-dist/commands/{new-work.md → pf-new-work.md} +4 -4
- package/pennyfarthing-dist/commands/{party-mode.md → pf-party-mode.md} +15 -2
- package/pennyfarthing-dist/commands/{patch.md → pf-patch.md} +3 -3
- package/pennyfarthing-dist/commands/{release.md → pf-release.md} +17 -10
- package/pennyfarthing-dist/commands/{setup.md → pf-setup.md} +2 -2
- package/pennyfarthing-dist/commands/{sprint.md → pf-sprint.md} +19 -19
- package/pennyfarthing-dist/commands/{standalone.md → pf-standalone.md} +2 -2
- package/pennyfarthing-dist/commands/{workflow.md → pf-workflow.md} +7 -7
- package/pennyfarthing-dist/commands/solo.md +447 -0
- package/pennyfarthing-dist/guides/agent-behavior.md +2 -2
- package/pennyfarthing-dist/guides/agent-tag-taxonomy.md +1 -2
- package/pennyfarthing-dist/guides/agent-template-strategic.md +1 -1
- package/pennyfarthing-dist/guides/agent-template-tactical.md +2 -2
- package/pennyfarthing-dist/guides/bikelane.md +6 -6
- package/pennyfarthing-dist/guides/permission-protocol.md +1 -1
- package/pennyfarthing-dist/guides/scale-levels.md +2 -2
- package/pennyfarthing-dist/guides/skill-schema.md +9 -9
- package/pennyfarthing-dist/guides/xml-tags.md +2 -2
- package/pennyfarthing-dist/personas/themes/dune.yaml +0 -1
- package/pennyfarthing-dist/personas/themes/hogans-heroes.yaml +260 -0
- package/pennyfarthing-dist/personas/themes/monty-python.yaml +312 -0
- package/pennyfarthing-dist/personas/themes/stephen-king.yaml +260 -0
- package/pennyfarthing-dist/scripts/core/agent-session.sh +0 -0
- package/pennyfarthing-dist/scripts/core/check-context.sh +0 -0
- package/pennyfarthing-dist/scripts/core/handoff-marker.sh +0 -0
- package/pennyfarthing-dist/scripts/core/phase-check-start.sh +0 -0
- package/pennyfarthing-dist/scripts/core/prime.sh +0 -0
- package/pennyfarthing-dist/scripts/cyclist/is-cyclist.sh +0 -0
- package/pennyfarthing-dist/scripts/git/create-feature-branches.sh +0 -0
- package/pennyfarthing-dist/scripts/git/git-status-all.sh +0 -0
- package/pennyfarthing-dist/scripts/git/install-git-hooks.sh +84 -21
- package/pennyfarthing-dist/scripts/git/release.sh +0 -0
- package/pennyfarthing-dist/scripts/git/worktree-manager.sh +0 -0
- package/pennyfarthing-dist/scripts/health/drift-detection.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/bell-mode-hook.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/context-circuit-breaker.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/context-warning.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/cyclist-pretooluse-hook.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/dispatcher-template.sh +45 -0
- package/pennyfarthing-dist/scripts/hooks/otel-auto-config.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/post-merge.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/pre-commit.sh +27 -2
- package/pennyfarthing-dist/scripts/hooks/pre-edit-check.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/pre-push.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/question-reflector-check.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/question_reflector_check.py +0 -0
- package/pennyfarthing-dist/scripts/hooks/schema-validation.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/session-start.sh +25 -89
- package/pennyfarthing-dist/scripts/hooks/session-stop.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/sprint-yaml-validation.sh +0 -0
- package/pennyfarthing-dist/scripts/hooks/welcome-hook.sh +0 -0
- package/pennyfarthing-dist/scripts/jira/README.md +1 -1
- package/pennyfarthing-dist/scripts/jira/create-jira-epic.sh +0 -0
- package/pennyfarthing-dist/scripts/jira/create-jira-story.sh +0 -0
- package/pennyfarthing-dist/scripts/jira/jira-claim-story.sh +0 -0
- package/pennyfarthing-dist/scripts/jira/jira-reconcile.sh +0 -0
- package/pennyfarthing-dist/scripts/jira/jira-sync-story.sh +0 -0
- package/pennyfarthing-dist/scripts/jira/sync-epic-jira.sh +0 -0
- package/pennyfarthing-dist/scripts/lib/background-tasks.sh +0 -0
- package/pennyfarthing-dist/scripts/lib/checkpoint.sh +0 -0
- package/pennyfarthing-dist/scripts/lib/common.sh +0 -0
- package/pennyfarthing-dist/scripts/lib/file-lock.sh +0 -0
- package/pennyfarthing-dist/scripts/lib/logging.sh +0 -0
- package/pennyfarthing-dist/scripts/lib/retry.sh +0 -0
- package/pennyfarthing-dist/scripts/maintenance/migrate-theme-schema.mjs +0 -0
- package/pennyfarthing-dist/scripts/maintenance/sidecar-health.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/add-short-names.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/add_short_names.py +0 -0
- package/pennyfarthing-dist/scripts/misc/backlog.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/check-status.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/find-related-work.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/generate-skill-docs.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/log-skill-usage.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/migrate-bmad-workflow.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/migrate_bmad_workflow.py +0 -0
- package/pennyfarthing-dist/scripts/misc/repo-scan.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/repo-utils.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/run-ci.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/run-timestamp.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/session-cleanup.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/skill-usage-report.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/statusline.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/uninstall.sh +0 -0
- package/pennyfarthing-dist/scripts/misc/validate-subagent-frontmatter.sh +0 -0
- package/pennyfarthing-dist/scripts/portraits/generate-portraits.py +50 -26
- package/pennyfarthing-dist/scripts/portraits/generate-portraits.sh +18 -6
- package/pennyfarthing-dist/scripts/sprint/README.md +1 -1
- package/pennyfarthing-dist/scripts/story/README.md +1 -1
- package/pennyfarthing-dist/scripts/story/create-story.sh +0 -0
- package/pennyfarthing-dist/scripts/story/size-story.sh +0 -0
- package/pennyfarthing-dist/scripts/story/story-template.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/check.test.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/dev-story-workflow-import.test.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/epics-and-stories-workflow-import.test.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/handoff-phase-update.test.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/implementation-readiness-workflow-import.test.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/migrate-bmad-workflow.test.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/prd-workflow-import.test.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/project-context-workflow-import.test.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/test-character-voice.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/test-drift-detection.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/test-post-merge-hook.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/test-session-checkpoint.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/test-solo-command.sh +0 -0
- package/pennyfarthing-dist/scripts/tests/ux-design-workflow-import.test.sh +0 -0
- package/pennyfarthing-dist/scripts/theme/list-themes.sh +0 -0
- package/pennyfarthing-dist/scripts/validation/validate-agent-schema.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/README.md +1 -1
- package/pennyfarthing-dist/scripts/workflow/check.py +0 -0
- package/pennyfarthing-dist/scripts/workflow/check.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/complete-step.py +0 -0
- package/pennyfarthing-dist/scripts/workflow/finish-story.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/fix-session-phase.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/get-workflow-type.py +0 -0
- package/pennyfarthing-dist/scripts/workflow/get-workflow-type.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/list-workflows.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/phase-owner.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/resume-workflow.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/show-workflow.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/start-workflow.sh +0 -0
- package/pennyfarthing-dist/scripts/workflow/workflow-status.sh +0 -0
- package/pennyfarthing-dist/skills/pf-bc/examples.md +83 -0
- package/pennyfarthing-dist/skills/pf-bc/skill.md +51 -0
- package/pennyfarthing-dist/skills/pf-bc/usage.md +113 -0
- package/pennyfarthing-dist/skills/{cyclist → pf-cyclist}/SKILL.md +5 -5
- package/pennyfarthing-dist/skills/pf-finalize-run/SKILL.md +261 -0
- package/pennyfarthing-dist/skills/pf-jira/SKILL.md +61 -0
- package/pennyfarthing-dist/skills/pf-jira/examples.md +163 -0
- package/pennyfarthing-dist/skills/pf-jira/usage.md +213 -0
- package/pennyfarthing-dist/skills/pf-judge/SKILL.md +644 -0
- package/pennyfarthing-dist/skills/{just → pf-just}/SKILL.md +23 -23
- package/pennyfarthing-dist/skills/{permissions → pf-permissions}/skill.md +8 -8
- package/pennyfarthing-dist/skills/pf-persona-benchmark/SKILL.md +187 -0
- package/pennyfarthing-dist/skills/pf-sprint/examples.md +189 -0
- package/pennyfarthing-dist/skills/pf-sprint/skill.md +85 -0
- package/pennyfarthing-dist/skills/pf-sprint/usage.md +293 -0
- package/pennyfarthing-dist/skills/{story → pf-story}/scripts/create-story.sh +0 -0
- package/pennyfarthing-dist/skills/{story → pf-story}/scripts/size-story.sh +0 -0
- package/pennyfarthing-dist/skills/{story → pf-story}/scripts/story-template.sh +0 -0
- package/pennyfarthing-dist/skills/pf-story/skill.md +27 -0
- package/pennyfarthing-dist/skills/{systematic-debugging → pf-systematic-debugging}/SKILL.md +5 -6
- package/pennyfarthing-dist/skills/pf-theme/examples.md +92 -0
- package/pennyfarthing-dist/skills/pf-theme/skill.md +42 -0
- package/pennyfarthing-dist/skills/pf-theme/usage.md +149 -0
- package/pennyfarthing-dist/skills/pf-workflow/examples.md +101 -0
- package/pennyfarthing-dist/skills/{workflow → pf-workflow}/scripts/list-workflows.sh +0 -0
- package/pennyfarthing-dist/skills/{workflow → pf-workflow}/scripts/resume-workflow.sh +0 -0
- package/pennyfarthing-dist/skills/{workflow → pf-workflow}/scripts/show-workflow.sh +0 -0
- package/pennyfarthing-dist/skills/{workflow → pf-workflow}/scripts/start-workflow.sh +0 -0
- package/pennyfarthing-dist/skills/{workflow → pf-workflow}/scripts/workflow-status.sh +0 -0
- package/pennyfarthing-dist/skills/pf-workflow/skill.md +49 -0
- package/pennyfarthing-dist/skills/pf-workflow/usage.md +145 -0
- package/pennyfarthing-dist/skills/skill-registry.yaml +63 -81
- package/pennyfarthing-dist/workflows/architecture/data/domain-complexity.csv +13 -0
- package/pennyfarthing-dist/workflows/architecture/data/project-types.csv +7 -0
- package/pennyfarthing-dist/workflows/epics-and-stories/steps/step-05-import-to-future.md +40 -11
- package/pennyfarthing-dist/workflows/party-mode-roleplay/steps/step-01-agent-loading.md +99 -0
- package/pennyfarthing-dist/workflows/party-mode-roleplay/steps/step-02-discussion.md +130 -0
- package/pennyfarthing-dist/workflows/party-mode-roleplay/steps/step-03-exit.md +100 -0
- package/pennyfarthing-dist/workflows/party-mode-roleplay/workflow.yaml +62 -0
- package/pennyfarthing-dist/workflows/prd/data/domain-complexity.csv +2 -0
- package/pennyfarthing-dist/workflows/prd/data/prd-purpose.md +2 -0
- package/pennyfarthing-dist/workflows/prd/steps-v/step-v-08-domain-compliance-validation.md +16 -0
- package/pennyfarthing-dist/workflows/project-setup/steps/step-04-claude-md.md +3 -3
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-01-understand.md +193 -0
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-02-investigate.md +148 -0
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-03-generate.md +141 -0
- package/pennyfarthing-dist/workflows/quick-spec/steps/step-04-review.md +192 -0
- package/pennyfarthing-dist/workflows/quick-spec/tech-spec-template.md +74 -0
- package/pennyfarthing-dist/workflows/quick-spec/workflow.yaml +35 -0
- package/pennyfarthing-dist/workflows/release/steps/step-01-preflight.md +42 -3
- package/pennyfarthing-dist/workflows/release/steps/step-02-bump.md +10 -3
- package/pennyfarthing-dist/workflows/release/steps/step-03-changelog.md +1 -1
- package/pennyfarthing-dist/workflows/release/steps/step-07-commit.md +13 -4
- package/pennyfarthing-dist/workflows/release/steps/step-08-merge.md +31 -6
- package/pennyfarthing-dist/workflows/release/steps/step-09-push.md +12 -6
- package/pennyfarthing-dist/workflows/release/steps/step-10-publish.md +30 -5
- package/pennyfarthing-dist/workflows/release/steps/step-11-finalize.md +29 -0
- package/pennyfarthing-dist/workflows/release.yaml +7 -0
- package/pennyfarthing_scripts/CLAUDE.md +182 -0
- package/pennyfarthing_scripts/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/patch_mode.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/__pycache__/session_start_hook.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bc/__init__.py +1 -0
- package/pennyfarthing_scripts/bc/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bc/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bc/__pycache__/focus.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bc/cli.py +223 -0
- package/pennyfarthing_scripts/bc/focus.py +333 -0
- package/pennyfarthing_scripts/bikerack/__init__.py +8 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/background_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/base_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/changed_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/diffs_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/git_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/launcher.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/sprint_panel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/tui.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/__pycache__/ws_client.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/bikerack/background_panel.py +81 -0
- package/pennyfarthing_scripts/bikerack/base_panel.py +100 -0
- package/pennyfarthing_scripts/bikerack/changed_panel.py +105 -0
- package/pennyfarthing_scripts/bikerack/cli.py +22 -24
- package/pennyfarthing_scripts/bikerack/diffs_panel.py +146 -0
- package/pennyfarthing_scripts/bikerack/git_panel.py +69 -0
- package/pennyfarthing_scripts/bikerack/launcher.py +63 -4
- package/pennyfarthing_scripts/bikerack/sprint_panel.py +72 -0
- package/pennyfarthing_scripts/bikerack/tui.py +193 -0
- package/pennyfarthing_scripts/bikerack/ws_client.py +176 -0
- package/pennyfarthing_scripts/brownfield/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/brownfield/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/brownfield/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/brownfield/__pycache__/discover.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/cli.py +60 -16
- package/pennyfarthing_scripts/codemarkers/__pycache__/formatters.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/complexity/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/complexity/__pycache__/analyze.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/deadcode/__pycache__/analyze.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/dependencies/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/dependencies/__pycache__/analyze.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/__pycache__/create_branches.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/git/__pycache__/status_all.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/healthscore/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/healthscore/__pycache__/analyze.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/healthscore/analyze.py +15 -1
- package/pennyfarthing_scripts/hooks/cyclist-pretooluse-hook.sh +0 -0
- package/pennyfarthing_scripts/jira/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/jira/cli.py +10 -2
- package/pennyfarthing_scripts/launch/__init__.py +1 -0
- package/pennyfarthing_scripts/launch/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/launch/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/launch/cli.py +231 -0
- package/pennyfarthing_scripts/preflight/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/preflight/__pycache__/finish.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/__pycache__/version_sentinel.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/prime/version_sentinel.py +0 -1
- package/pennyfarthing_scripts/session_start_hook.py +192 -0
- package/pennyfarthing_scripts/sprint/__pycache__/__main__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/archive_epic.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/epic_add.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/epic_update.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/import_epic.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/loader.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/story_add.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/story_finish.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/story_update.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/validate_cmd.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/__pycache__/yaml_io.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/sprint/archive_epic.py +109 -1
- package/pennyfarthing_scripts/sprint/cli.py +30 -9
- package/pennyfarthing_scripts/sprint/epic_add.py +7 -1
- package/pennyfarthing_scripts/sprint/epic_update.py +148 -0
- package/pennyfarthing_scripts/sprint/loader.py +33 -0
- package/pennyfarthing_scripts/sprint/story_add.py +11 -1
- package/pennyfarthing_scripts/sprint/story_finish.py +14 -10
- package/pennyfarthing_scripts/sprint/story_update.py +7 -0
- package/pennyfarthing_scripts/sprint/validate_cmd.py +2 -1
- package/pennyfarthing_scripts/sprint/yaml_io.py +64 -6
- package/pennyfarthing_scripts/story/__pycache__/__init__.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/size.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/story/__pycache__/template.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_archive_epic.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_bc.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_bikerack.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_brownfield.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_cli_modules.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_cli_normalization.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_codemarkers.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_common.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_epic_shard_validation.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_git_utils.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_healthscore.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_jira_package.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_package_structure.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_patch_mode.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_prime.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_sprint_package.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_sprint_panel.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_sprint_validator.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_story_add.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_story_package.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_story_update.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_tiers.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_token_counting.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_topology_loader.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_tui_focus.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_tui_panel_persistence.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_validate_cmd.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_version_sentinel.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_workflow_check.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/__pycache__/test_yaml_io.cpython-314-pytest-9.0.2.pyc +0 -0
- package/pennyfarthing_scripts/tests/test_archive_epic.py +185 -0
- package/pennyfarthing_scripts/tests/test_bc.py +490 -0
- package/pennyfarthing_scripts/tests/test_cli_normalization.py +295 -0
- package/pennyfarthing_scripts/tests/test_sprint_panel.py +531 -0
- package/pennyfarthing_scripts/tests/test_tui_focus.py +411 -0
- package/pennyfarthing_scripts/tests/test_tui_panel_persistence.py +411 -0
- package/pennyfarthing_scripts/tests/test_version_sentinel.py +1 -5
- package/pennyfarthing_scripts/tests/test_yaml_io.py +5 -5
- package/pennyfarthing_scripts/theme/__pycache__/cli.cpython-314.pyc +0 -0
- package/pennyfarthing_scripts/theme/cli.py +25 -2
- package/scripts/README.md +41 -0
- package/packages/core/dist/scripts/benchmark-integration.test.d.ts +0 -13
- package/packages/core/dist/scripts/benchmark-integration.test.d.ts.map +0 -1
- package/packages/core/dist/scripts/benchmark-integration.test.js +0 -680
- package/packages/core/dist/scripts/benchmark-integration.test.js.map +0 -1
- package/packages/core/dist/scripts/debugging-scenarios.test.d.ts +0 -18
- package/packages/core/dist/scripts/debugging-scenarios.test.d.ts.map +0 -1
- package/packages/core/dist/scripts/debugging-scenarios.test.js +0 -317
- package/packages/core/dist/scripts/debugging-scenarios.test.js.map +0 -1
- package/packages/core/dist/scripts/job-fair-aggregator.test.d.ts +0 -14
- package/packages/core/dist/scripts/job-fair-aggregator.test.d.ts.map +0 -1
- package/packages/core/dist/scripts/job-fair-aggregator.test.js +0 -616
- package/packages/core/dist/scripts/job-fair-aggregator.test.js.map +0 -1
- package/packages/core/dist/scripts/theme-detail.test.d.ts +0 -10
- package/packages/core/dist/scripts/theme-detail.test.js +0 -199
- package/pennyfarthing-dist/personas/themes/star-trek-tng.yaml +0 -392
- package/pennyfarthing-dist/skills/dev-patterns/SKILL.md +0 -461
- package/pennyfarthing-dist/skills/jira/SKILL.md +0 -207
- package/pennyfarthing-dist/skills/sprint/skill.md +0 -806
- package/pennyfarthing-dist/skills/story/skill.md +0 -27
- package/pennyfarthing-dist/skills/theme/skill.md +0 -356
- package/pennyfarthing-dist/skills/workflow/skill.md +0 -368
- /package/pennyfarthing-dist/commands/{architect.md → pf-architect.md} +0 -0
- /package/pennyfarthing-dist/commands/{ba.md → pf-ba.md} +0 -0
- /package/pennyfarthing-dist/commands/{brainstorming.md → pf-brainstorming.md} +0 -0
- /package/pennyfarthing-dist/commands/{check.md → pf-check.md} +0 -0
- /package/pennyfarthing-dist/commands/{chore.md → pf-chore.md} +0 -0
- /package/pennyfarthing-dist/commands/{continue-session.md → pf-continue-session.md} +0 -0
- /package/pennyfarthing-dist/commands/{create-branches-from-story.md → pf-create-branches-from-story.md} +0 -0
- /package/pennyfarthing-dist/commands/{create-theme.md → pf-create-theme.md} +0 -0
- /package/pennyfarthing-dist/commands/{dev.md → pf-dev.md} +0 -0
- /package/pennyfarthing-dist/commands/{devops.md → pf-devops.md} +0 -0
- /package/pennyfarthing-dist/commands/{fix-blocker.md → pf-fix-blocker.md} +0 -0
- /package/pennyfarthing-dist/commands/{git-cleanup.md → pf-git-cleanup.md} +0 -0
- /package/pennyfarthing-dist/commands/{health-check.md → pf-health-check.md} +0 -0
- /package/pennyfarthing-dist/commands/{help.md → pf-help.md} +0 -0
- /package/pennyfarthing-dist/commands/{list-themes.md → pf-list-themes.md} +0 -0
- /package/pennyfarthing-dist/commands/{orchestrator.md → pf-orchestrator.md} +0 -0
- /package/pennyfarthing-dist/commands/{parallel-work.md → pf-parallel-work.md} +0 -0
- /package/pennyfarthing-dist/commands/{permissions.md → pf-permissions.md} +0 -0
- /package/pennyfarthing-dist/commands/{pm.md → pf-pm.md} +0 -0
- /package/pennyfarthing-dist/commands/{prime.md → pf-prime.md} +0 -0
- /package/pennyfarthing-dist/commands/{repo-status.md → pf-repo-status.md} +0 -0
- /package/pennyfarthing-dist/commands/{retro.md → pf-retro.md} +0 -0
- /package/pennyfarthing-dist/commands/{reviewer.md → pf-reviewer.md} +0 -0
- /package/pennyfarthing-dist/commands/{run-ci.md → pf-run-ci.md} +0 -0
- /package/pennyfarthing-dist/commands/{set-theme.md → pf-set-theme.md} +0 -0
- /package/pennyfarthing-dist/commands/{show-theme.md → pf-show-theme.md} +0 -0
- /package/pennyfarthing-dist/commands/{sm.md → pf-sm.md} +0 -0
- /package/pennyfarthing-dist/commands/{sprint-planning.md → pf-sprint-planning.md} +0 -0
- /package/pennyfarthing-dist/commands/{start-epic.md → pf-start-epic.md} +0 -0
- /package/pennyfarthing-dist/commands/{sync-epic-to-jira.md → pf-sync-epic-to-jira.md} +0 -0
- /package/pennyfarthing-dist/commands/{sync-work-with-sprint.md → pf-sync-work-with-sprint.md} +0 -0
- /package/pennyfarthing-dist/commands/{tea.md → pf-tea.md} +0 -0
- /package/pennyfarthing-dist/commands/{tech-writer.md → pf-tech-writer.md} +0 -0
- /package/pennyfarthing-dist/commands/{theme-maker.md → pf-theme-maker.md} +0 -0
- /package/pennyfarthing-dist/commands/{theme.md → pf-theme.md} +0 -0
- /package/pennyfarthing-dist/commands/{update-domain-docs.md → pf-update-domain-docs.md} +0 -0
- /package/pennyfarthing-dist/commands/{ux-designer.md → pf-ux-designer.md} +0 -0
- /package/pennyfarthing-dist/commands/{work.md → pf-work.md} +0 -0
- /package/pennyfarthing-dist/skills/{agentic-patterns → pf-agentic-patterns}/SKILL.md +0 -0
- /package/pennyfarthing-dist/skills/{changelog → pf-changelog}/SKILL.md +0 -0
- /package/pennyfarthing-dist/skills/{code-review → pf-code-review}/SKILL.md +0 -0
- /package/pennyfarthing-dist/skills/{context-engineering → pf-context-engineering}/SKILL.md +0 -0
- /package/pennyfarthing-dist/skills/{mermaid → pf-mermaid}/SKILL.md +0 -0
- /package/pennyfarthing-dist/skills/{otel → pf-otel}/skill.md +0 -0
- /package/pennyfarthing-dist/skills/{testing → pf-testing}/SKILL.md +0 -0
- /package/pennyfarthing-dist/skills/{testing → pf-testing}/references/troubleshooting.md +0 -0
- /package/pennyfarthing-dist/skills/{theme-creation → pf-theme-creation}/SKILL.md +0 -0
- /package/pennyfarthing-dist/skills/{yq → pf-yq}/SKILL.md +0 -0
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { Router } from 'express';
|
|
2
|
+
import { join } from 'path';
|
|
3
|
+
import { detectPennyfarthingProject, loadThemeConfig, loadThemeYaml } from '../pennyfarthing.js';
|
|
4
|
+
export function getThemeAgents(projectDir) {
|
|
5
|
+
if (!detectPennyfarthingProject(projectDir)) {
|
|
6
|
+
return {};
|
|
7
|
+
}
|
|
8
|
+
const config = loadThemeConfig(projectDir);
|
|
9
|
+
const themeName = config?.theme;
|
|
10
|
+
if (!themeName)
|
|
11
|
+
return {};
|
|
12
|
+
// Resolve theme file path and load YAML
|
|
13
|
+
const themeFile = `${themeName}.yaml`;
|
|
14
|
+
const themePath = join(projectDir, '.pennyfarthing', 'personas', 'themes', themeFile);
|
|
15
|
+
const themeData = loadThemeYaml(themePath);
|
|
16
|
+
if (!themeData)
|
|
17
|
+
return {};
|
|
18
|
+
const agents = themeData;
|
|
19
|
+
if (!agents)
|
|
20
|
+
return {};
|
|
21
|
+
const result = {};
|
|
22
|
+
for (const [role, data] of Object.entries(agents)) {
|
|
23
|
+
result[role] = {
|
|
24
|
+
character: data?.character || role,
|
|
25
|
+
shortName: data?.shortName,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
return result;
|
|
29
|
+
}
|
|
30
|
+
export function createThemeAgentsRouter(getProjectDir) {
|
|
31
|
+
const router = Router();
|
|
32
|
+
router.get('/', (_req, res) => {
|
|
33
|
+
const projectDir = getProjectDir();
|
|
34
|
+
const agents = getThemeAgents(projectDir);
|
|
35
|
+
res.json({ agents });
|
|
36
|
+
});
|
|
37
|
+
return router;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=theme-agents.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"theme-agents.js","sourceRoot":"","sources":["../../../src/server/api/theme-agents.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,0BAA0B,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AASjG,MAAM,UAAU,cAAc,CAAC,UAAkB;IAC/C,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5C,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,MAAM,GAAG,eAAe,CAAC,UAAU,CAAmC,CAAC;IAC7E,MAAM,SAAS,GAAI,MAAoC,EAAE,KAAK,CAAC;IAC/D,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAE1B,wCAAwC;IACxC,MAAM,SAAS,GAAG,GAAG,SAAS,OAAO,CAAC;IACtC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,gBAAgB,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;IACtF,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC3C,IAAI,CAAC,SAAS;QAAE,OAAO,EAAE,CAAC;IAE1B,MAAM,MAAM,GAAG,SAAuE,CAAC;IACvF,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,MAAM,MAAM,GAAsB,EAAE,CAAC;IACrC,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAClD,MAAM,CAAC,IAAI,CAAC,GAAG;YACb,SAAS,EAAE,IAAI,EAAE,SAAS,IAAI,IAAI;YAClC,SAAS,EAAE,IAAI,EAAE,SAAS;SAC3B,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,aAA2B;IACjE,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC5B,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;QACnC,MAAM,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;QAC1C,GAAG,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Todos API Router
|
|
3
|
+
*
|
|
4
|
+
* Provides HTTP API endpoint for todo list data.
|
|
5
|
+
* In web mode, todos are limited since they come from Claude's message stream
|
|
6
|
+
* which is only available in Electron mode. This endpoint returns empty array
|
|
7
|
+
* in web mode to allow graceful degradation.
|
|
8
|
+
*
|
|
9
|
+
* GET /api/todos - Get current todos (empty in web mode)
|
|
10
|
+
*/
|
|
11
|
+
import { Router } from 'express';
|
|
12
|
+
declare let webModeTodos: Array<{
|
|
13
|
+
id: string;
|
|
14
|
+
content: string;
|
|
15
|
+
activeForm: string;
|
|
16
|
+
status: 'pending' | 'in_progress' | 'completed';
|
|
17
|
+
blockedBy?: string[];
|
|
18
|
+
blocks?: string[];
|
|
19
|
+
}>;
|
|
20
|
+
/**
|
|
21
|
+
* Update todos from external source (for future WebSocket integration)
|
|
22
|
+
*/
|
|
23
|
+
export declare function setWebModeTodos(todos: typeof webModeTodos): void;
|
|
24
|
+
/**
|
|
25
|
+
* Get current web mode todos
|
|
26
|
+
*/
|
|
27
|
+
export declare function getWebModeTodos(): typeof webModeTodos;
|
|
28
|
+
/**
|
|
29
|
+
* Create the todos router
|
|
30
|
+
*/
|
|
31
|
+
export declare function createTodosRouter(): Router;
|
|
32
|
+
export {};
|
|
33
|
+
//# sourceMappingURL=todos.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"todos.d.ts","sourceRoot":"","sources":["../../../src/server/api/todos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAKjC,QAAA,IAAI,YAAY,EAAE,KAAK,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,WAAW,CAAC;IAChD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB,CAAM,CAAC;AAER;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,YAAY,GAAG,IAAI,CAEhE;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,OAAO,YAAY,CAErD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAc1C"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Todos API Router
|
|
3
|
+
*
|
|
4
|
+
* Provides HTTP API endpoint for todo list data.
|
|
5
|
+
* In web mode, todos are limited since they come from Claude's message stream
|
|
6
|
+
* which is only available in Electron mode. This endpoint returns empty array
|
|
7
|
+
* in web mode to allow graceful degradation.
|
|
8
|
+
*
|
|
9
|
+
* GET /api/todos - Get current todos (empty in web mode)
|
|
10
|
+
*/
|
|
11
|
+
import { Router } from 'express';
|
|
12
|
+
// In-memory todos store for web mode
|
|
13
|
+
// In Electron mode, todos are managed by main.ts and accessed via IPC
|
|
14
|
+
// In web mode, this could be populated via WebSocket in the future
|
|
15
|
+
let webModeTodos = [];
|
|
16
|
+
/**
|
|
17
|
+
* Update todos from external source (for future WebSocket integration)
|
|
18
|
+
*/
|
|
19
|
+
export function setWebModeTodos(todos) {
|
|
20
|
+
webModeTodos = todos;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Get current web mode todos
|
|
24
|
+
*/
|
|
25
|
+
export function getWebModeTodos() {
|
|
26
|
+
return webModeTodos;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Create the todos router
|
|
30
|
+
*/
|
|
31
|
+
export function createTodosRouter() {
|
|
32
|
+
const router = Router();
|
|
33
|
+
/**
|
|
34
|
+
* GET / - Get current todos
|
|
35
|
+
* Returns empty array in web mode (todos require Claude message stream)
|
|
36
|
+
*/
|
|
37
|
+
router.get('/', (_req, res) => {
|
|
38
|
+
// In web mode, return whatever todos we have (usually empty)
|
|
39
|
+
// In the future, this could be populated via WebSocket from Claude stream
|
|
40
|
+
res.json(webModeTodos);
|
|
41
|
+
});
|
|
42
|
+
return router;
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=todos.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"todos.js","sourceRoot":"","sources":["../../../src/server/api/todos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEjC,qCAAqC;AACrC,sEAAsE;AACtE,mEAAmE;AACnE,IAAI,YAAY,GAOX,EAAE,CAAC;AAER;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAA0B;IACxD,YAAY,GAAG,KAAK,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB;;;OAGG;IACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC5B,6DAA6D;QAC7D,0EAA0E;QAC1E,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Router } from 'express';
|
|
2
|
+
import { WebSocket } from 'ws';
|
|
3
|
+
import { TokenStats } from '../otlp-receiver.js';
|
|
4
|
+
export declare function getTokenStatsClients(): Set<WebSocket>;
|
|
5
|
+
export declare function broadcastTokenStats(stats: TokenStats): void;
|
|
6
|
+
export declare function createTokenStatsRouter(): Router;
|
|
7
|
+
export declare function initTokenStatsBroadcast(): void;
|
|
8
|
+
//# sourceMappingURL=token-stats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-stats.d.ts","sourceRoot":"","sources":["../../../src/server/api/token-stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAwC,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAMvF,wBAAgB,oBAAoB,IAAI,GAAG,CAAC,SAAS,CAAC,CAErD;AAGD,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,CAO3D;AAGD,wBAAgB,sBAAsB,IAAI,MAAM,CAS/C;AAKD,wBAAgB,uBAAuB,IAAI,IAAI,CAI9C"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { Router } from 'express';
|
|
2
|
+
import { WebSocket } from 'ws';
|
|
3
|
+
import { getTokenStats, addTokenStatsListener } from '../otlp-receiver.js';
|
|
4
|
+
// Token stats WebSocket clients (for real-time updates)
|
|
5
|
+
const tokenStatsClients = new Set();
|
|
6
|
+
// Get token stats clients set (for WebSocket setup)
|
|
7
|
+
export function getTokenStatsClients() {
|
|
8
|
+
return tokenStatsClients;
|
|
9
|
+
}
|
|
10
|
+
// Broadcast token stats to all connected WebSocket clients
|
|
11
|
+
export function broadcastTokenStats(stats) {
|
|
12
|
+
const message = JSON.stringify(stats);
|
|
13
|
+
for (const client of tokenStatsClients) {
|
|
14
|
+
if (client.readyState === WebSocket.OPEN) {
|
|
15
|
+
client.send(message);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
// Create token stats API router
|
|
20
|
+
export function createTokenStatsRouter() {
|
|
21
|
+
const router = Router();
|
|
22
|
+
// Token Stats API - GET current token stats
|
|
23
|
+
router.get('/', (_req, res) => {
|
|
24
|
+
res.json(getTokenStats());
|
|
25
|
+
});
|
|
26
|
+
return router;
|
|
27
|
+
}
|
|
28
|
+
// Initialize token stats listener for WebSocket broadcasts
|
|
29
|
+
// Called once during server setup
|
|
30
|
+
// Uses addTokenStatsListener to support multiple subscribers (e.g., IPC + WebSocket)
|
|
31
|
+
export function initTokenStatsBroadcast() {
|
|
32
|
+
addTokenStatsListener((stats) => {
|
|
33
|
+
broadcastTokenStats(stats);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=token-stats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token-stats.js","sourceRoot":"","sources":["../../../src/server/api/token-stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAc,MAAM,qBAAqB,CAAC;AAEvF,wDAAwD;AACxD,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAa,CAAC;AAE/C,oDAAoD;AACpD,MAAM,UAAU,oBAAoB;IAClC,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAED,2DAA2D;AAC3D,MAAM,UAAU,mBAAmB,CAAC,KAAiB;IACnD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACtC,KAAK,MAAM,MAAM,IAAI,iBAAiB,EAAE,CAAC;QACvC,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;AACH,CAAC;AAED,gCAAgC;AAChC,MAAM,UAAU,sBAAsB;IACpC,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC;IAExB,4CAA4C;IAC5C,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE;QAC5B,GAAG,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,2DAA2D;AAC3D,kCAAkC;AAClC,qFAAqF;AACrF,MAAM,UAAU,uBAAuB;IACrC,qBAAqB,CAAC,CAAC,KAAK,EAAE,EAAE;QAC9B,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Welcome API - Broadcasts welcome messages on session start
|
|
3
|
+
*
|
|
4
|
+
* When the SessionStart hook runs, it calls POST /api/welcome with
|
|
5
|
+
* project name and theme. This module broadcasts that to all connected
|
|
6
|
+
* WebSocket clients on /ws/welcome so Cyclist can display a welcome
|
|
7
|
+
* message with the pennyfarthing logo.
|
|
8
|
+
*/
|
|
9
|
+
import { WebSocket } from 'ws';
|
|
10
|
+
export interface WelcomeMessage {
|
|
11
|
+
project: string;
|
|
12
|
+
theme: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Get the set of connected welcome clients
|
|
16
|
+
*/
|
|
17
|
+
export declare function getWelcomeClients(): Set<WebSocket>;
|
|
18
|
+
/**
|
|
19
|
+
* Broadcast a welcome message to all connected clients
|
|
20
|
+
*/
|
|
21
|
+
export declare function broadcastWelcome(message: WelcomeMessage): void;
|
|
22
|
+
//# sourceMappingURL=welcome.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"welcome.d.ts","sourceRoot":"","sources":["../../../src/server/api/welcome.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAK/B,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,GAAG,CAAC,SAAS,CAAC,CAElD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAe9D"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Welcome API - Broadcasts welcome messages on session start
|
|
3
|
+
*
|
|
4
|
+
* When the SessionStart hook runs, it calls POST /api/welcome with
|
|
5
|
+
* project name and theme. This module broadcasts that to all connected
|
|
6
|
+
* WebSocket clients on /ws/welcome so Cyclist can display a welcome
|
|
7
|
+
* message with the pennyfarthing logo.
|
|
8
|
+
*/
|
|
9
|
+
import { WebSocket } from 'ws';
|
|
10
|
+
// WebSocket clients subscribed to welcome events
|
|
11
|
+
const welcomeClients = new Set();
|
|
12
|
+
/**
|
|
13
|
+
* Get the set of connected welcome clients
|
|
14
|
+
*/
|
|
15
|
+
export function getWelcomeClients() {
|
|
16
|
+
return welcomeClients;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Broadcast a welcome message to all connected clients
|
|
20
|
+
*/
|
|
21
|
+
export function broadcastWelcome(message) {
|
|
22
|
+
const payload = JSON.stringify({
|
|
23
|
+
type: 'welcome',
|
|
24
|
+
project: message.project,
|
|
25
|
+
theme: message.theme,
|
|
26
|
+
timestamp: Date.now(),
|
|
27
|
+
});
|
|
28
|
+
for (const client of welcomeClients) {
|
|
29
|
+
if (client.readyState === WebSocket.OPEN) {
|
|
30
|
+
client.send(payload);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
console.log(`[Welcome] Broadcast to ${welcomeClients.size} clients:`, message);
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=welcome.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"welcome.js","sourceRoot":"","sources":["../../../src/server/api/welcome.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAE/B,iDAAiD;AACjD,MAAM,cAAc,GAAG,IAAI,GAAG,EAAa,CAAC;AAO5C;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,OAAuB;IACtD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QAC7B,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;KACtB,CAAC,CAAC;IAEH,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;QACpC,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,cAAc,CAAC,IAAI,WAAW,EAAE,OAAO,CAAC,CAAC;AACjF,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bell mode stub for server module.
|
|
3
|
+
* Provides functions used by settings API route without cyclist dependency.
|
|
4
|
+
*/
|
|
5
|
+
export declare function setBellMode(_enabled: boolean): void;
|
|
6
|
+
export declare function getBellMode(): boolean;
|
|
7
|
+
//# sourceMappingURL=bell-mode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bell-mode.d.ts","sourceRoot":"","sources":["../../src/server/bell-mode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAG;AACvD,wBAAgB,WAAW,IAAI,OAAO,CAAkB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bell-mode.js","sourceRoot":"","sources":["../../src/server/bell-mode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,UAAU,WAAW,CAAC,QAAiB,IAAS,CAAC;AACvD,MAAM,UAAU,WAAW,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dangerous Path Detection (Story 22-4)
|
|
3
|
+
* Extracted from packages/cyclist/src/dangerous-path.ts (Story 98-17).
|
|
4
|
+
*
|
|
5
|
+
* Detects when Claude attempts to modify sensitive paths and classifies severity.
|
|
6
|
+
*/
|
|
7
|
+
export declare const DANGEROUS_PATH_PATTERNS: RegExp[];
|
|
8
|
+
export declare function normalizePath(path: string): string;
|
|
9
|
+
export declare function isDangerousPath(path: string): boolean;
|
|
10
|
+
export declare function getPathCategory(path: string): 'secrets' | 'git' | 'dependencies' | 'system' | null;
|
|
11
|
+
export declare function extractBashTargetPaths(command: string): string[];
|
|
12
|
+
export declare function interceptDangerousPath(message: {
|
|
13
|
+
type: string;
|
|
14
|
+
tool_name?: string;
|
|
15
|
+
tool_id?: string;
|
|
16
|
+
input?: {
|
|
17
|
+
file_path?: string;
|
|
18
|
+
command?: string;
|
|
19
|
+
};
|
|
20
|
+
}): {
|
|
21
|
+
shouldApprove: boolean;
|
|
22
|
+
path: string;
|
|
23
|
+
category: string;
|
|
24
|
+
toolId: string;
|
|
25
|
+
};
|
|
26
|
+
export declare function requestPathApproval(path: string, toolId: string, category: string): Promise<boolean>;
|
|
27
|
+
export declare function resolvePathApproval(toolId: string, approved: boolean, alwaysAllow?: boolean): void;
|
|
28
|
+
export declare function createPathRejectionError(toolId: string, path: string): {
|
|
29
|
+
type: 'tool_result';
|
|
30
|
+
tool_id: string;
|
|
31
|
+
output: string;
|
|
32
|
+
is_error: boolean;
|
|
33
|
+
};
|
|
34
|
+
export declare function getPathQueueLength(): number;
|
|
35
|
+
export declare function clearPendingPathApprovals(): void;
|
|
36
|
+
//# sourceMappingURL=dangerous-path.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dangerous-path.d.ts","sourceRoot":"","sources":["../../src/server/dangerous-path.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,eAAO,MAAM,uBAAuB,EAAE,MAAM,EAqB3C,CAAC;AAuBF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAOlD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIrD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,GAAG,cAAc,GAAG,QAAQ,GAAG,IAAI,CASlG;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAyBhE;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAClD,GAAG;IAAE,aAAa,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAoC7E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAIpG;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,UAAQ,GAAG,IAAI,CAShG;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IACtE,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB,CAOA;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dangerous Path Detection (Story 22-4)
|
|
3
|
+
* Extracted from packages/cyclist/src/dangerous-path.ts (Story 98-17).
|
|
4
|
+
*
|
|
5
|
+
* Detects when Claude attempts to modify sensitive paths and classifies severity.
|
|
6
|
+
*/
|
|
7
|
+
import { getDangerousPathGate, isPathAllowlisted, addToPathAllowlist, } from './settings-store.js';
|
|
8
|
+
export const DANGEROUS_PATH_PATTERNS = [
|
|
9
|
+
/^\.env($|\.)/i,
|
|
10
|
+
/\/\.env($|\.)/i,
|
|
11
|
+
/~\/\.ssh\//i,
|
|
12
|
+
/~\/\.aws\//i,
|
|
13
|
+
/~\/\.config\/gh\//i,
|
|
14
|
+
/~\/\.config\/gcloud\//i,
|
|
15
|
+
/^\.git\//i,
|
|
16
|
+
/\/\.git\//i,
|
|
17
|
+
/^node_modules\//i,
|
|
18
|
+
/\/node_modules\//i,
|
|
19
|
+
/^package-lock\.json$/i,
|
|
20
|
+
/^pnpm-lock\.yaml$/i,
|
|
21
|
+
/^yarn\.lock$/i,
|
|
22
|
+
/\/package-lock\.json$/i,
|
|
23
|
+
/\/pnpm-lock\.yaml$/i,
|
|
24
|
+
/\/yarn\.lock$/i,
|
|
25
|
+
/^\/etc\//i,
|
|
26
|
+
/^\/usr\//i,
|
|
27
|
+
/^\/var\//i,
|
|
28
|
+
/^\/System\/Library\//i,
|
|
29
|
+
];
|
|
30
|
+
const CATEGORY_PATTERNS = {
|
|
31
|
+
secrets: [
|
|
32
|
+
/^\.env($|\.)/i, /\/\.env($|\.)/i,
|
|
33
|
+
/~\/\.ssh\//i, /~\/\.aws\//i,
|
|
34
|
+
/~\/\.config\/gh\//i, /~\/\.config\/gcloud\//i,
|
|
35
|
+
],
|
|
36
|
+
git: [/^\.git\//i, /\/\.git\//i],
|
|
37
|
+
dependencies: [
|
|
38
|
+
/^node_modules\//i, /\/node_modules\//i,
|
|
39
|
+
/^package-lock\.json$/i, /^pnpm-lock\.yaml$/i, /^yarn\.lock$/i,
|
|
40
|
+
/\/package-lock\.json$/i, /\/pnpm-lock\.yaml$/i, /\/yarn\.lock$/i,
|
|
41
|
+
],
|
|
42
|
+
system: [/^\/etc\//i, /^\/usr\//i, /^\/var\//i, /^\/System\/Library\//i],
|
|
43
|
+
};
|
|
44
|
+
const pendingPathApprovals = new Map();
|
|
45
|
+
export function normalizePath(path) {
|
|
46
|
+
if (!path)
|
|
47
|
+
return '';
|
|
48
|
+
let normalized = path.replace(/\\/g, '/');
|
|
49
|
+
if (normalized.startsWith('./')) {
|
|
50
|
+
normalized = normalized.slice(2);
|
|
51
|
+
}
|
|
52
|
+
return normalized;
|
|
53
|
+
}
|
|
54
|
+
export function isDangerousPath(path) {
|
|
55
|
+
if (!path)
|
|
56
|
+
return false;
|
|
57
|
+
const normalized = normalizePath(path);
|
|
58
|
+
return DANGEROUS_PATH_PATTERNS.some(pattern => pattern.test(normalized));
|
|
59
|
+
}
|
|
60
|
+
export function getPathCategory(path) {
|
|
61
|
+
if (!path)
|
|
62
|
+
return null;
|
|
63
|
+
const normalized = normalizePath(path);
|
|
64
|
+
for (const category of ['secrets', 'git', 'dependencies', 'system']) {
|
|
65
|
+
if (CATEGORY_PATTERNS[category].some(pattern => pattern.test(normalized))) {
|
|
66
|
+
return category;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
export function extractBashTargetPaths(command) {
|
|
72
|
+
const paths = [];
|
|
73
|
+
if (!command)
|
|
74
|
+
return paths;
|
|
75
|
+
const redirectPattern = />>?\s*"?([^"\s&|;]+)"?/g;
|
|
76
|
+
let match;
|
|
77
|
+
while ((match = redirectPattern.exec(command)) !== null) {
|
|
78
|
+
paths.push(match[1]);
|
|
79
|
+
}
|
|
80
|
+
const teePattern = /\btee\s+(?:-a\s+)?([^\s&|;]+)/g;
|
|
81
|
+
while ((match = teePattern.exec(command)) !== null) {
|
|
82
|
+
if (!match[1].startsWith('-')) {
|
|
83
|
+
paths.push(match[1]);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
const quotedRedirectPattern = />>?\s*"([^"]+)"/g;
|
|
87
|
+
while ((match = quotedRedirectPattern.exec(command)) !== null) {
|
|
88
|
+
if (!paths.includes(match[1])) {
|
|
89
|
+
paths.push(match[1]);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
return paths;
|
|
93
|
+
}
|
|
94
|
+
export function interceptDangerousPath(message) {
|
|
95
|
+
const result = { shouldApprove: false, path: '', category: '', toolId: '' };
|
|
96
|
+
if (message.type !== 'tool_use')
|
|
97
|
+
return result;
|
|
98
|
+
if (!getDangerousPathGate())
|
|
99
|
+
return result;
|
|
100
|
+
const toolName = message.tool_name || '';
|
|
101
|
+
const toolId = message.tool_id || '';
|
|
102
|
+
if (!['Write', 'Edit', 'Bash'].includes(toolName))
|
|
103
|
+
return result;
|
|
104
|
+
let dangerousPath = '';
|
|
105
|
+
let category = '';
|
|
106
|
+
if (toolName === 'Write' || toolName === 'Edit') {
|
|
107
|
+
const filePath = message.input?.file_path || '';
|
|
108
|
+
if (filePath && isDangerousPath(filePath)) {
|
|
109
|
+
dangerousPath = filePath;
|
|
110
|
+
category = getPathCategory(filePath) || '';
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
else if (toolName === 'Bash') {
|
|
114
|
+
const command = message.input?.command || '';
|
|
115
|
+
const targetPaths = extractBashTargetPaths(command);
|
|
116
|
+
for (const targetPath of targetPaths) {
|
|
117
|
+
if (isDangerousPath(targetPath)) {
|
|
118
|
+
dangerousPath = targetPath;
|
|
119
|
+
category = getPathCategory(targetPath) || '';
|
|
120
|
+
break;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
if (!dangerousPath)
|
|
125
|
+
return result;
|
|
126
|
+
if (isPathAllowlisted(dangerousPath))
|
|
127
|
+
return result;
|
|
128
|
+
return { shouldApprove: true, path: dangerousPath, category, toolId };
|
|
129
|
+
}
|
|
130
|
+
export function requestPathApproval(path, toolId, category) {
|
|
131
|
+
return new Promise((resolve) => {
|
|
132
|
+
pendingPathApprovals.set(toolId, { resolve, path, category });
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
export function resolvePathApproval(toolId, approved, alwaysAllow = false) {
|
|
136
|
+
const pending = pendingPathApprovals.get(toolId);
|
|
137
|
+
if (pending) {
|
|
138
|
+
if (alwaysAllow && approved) {
|
|
139
|
+
addToPathAllowlist(pending.path);
|
|
140
|
+
}
|
|
141
|
+
pending.resolve(approved);
|
|
142
|
+
pendingPathApprovals.delete(toolId);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
export function createPathRejectionError(toolId, path) {
|
|
146
|
+
return {
|
|
147
|
+
type: 'tool_result',
|
|
148
|
+
tool_id: toolId,
|
|
149
|
+
output: `Operation rejected by user. Access to sensitive path "${path}" was denied.`,
|
|
150
|
+
is_error: true,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
export function getPathQueueLength() {
|
|
154
|
+
return pendingPathApprovals.size;
|
|
155
|
+
}
|
|
156
|
+
export function clearPendingPathApprovals() {
|
|
157
|
+
pendingPathApprovals.clear();
|
|
158
|
+
}
|
|
159
|
+
//# sourceMappingURL=dangerous-path.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dangerous-path.js","sourceRoot":"","sources":["../../src/server/dangerous-path.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enriched span exporter stub for server module.
|
|
3
|
+
* Provides functions used by spans API route without cyclist dependency.
|
|
4
|
+
*/
|
|
5
|
+
export interface EnrichedSpan {
|
|
6
|
+
[key: string]: unknown;
|
|
7
|
+
}
|
|
8
|
+
export declare function getEnrichedSpans(): Promise<EnrichedSpan[]>;
|
|
9
|
+
export declare function clearEnrichedSpans(): void;
|
|
10
|
+
export interface SpanFilter {
|
|
11
|
+
toolName?: string;
|
|
12
|
+
[key: string]: unknown;
|
|
13
|
+
}
|
|
14
|
+
export declare function filterSpans(_spans: EnrichedSpan[], _filter: SpanFilter): EnrichedSpan[];
|
|
15
|
+
export declare function formatSpanForExport(_span: EnrichedSpan): unknown;
|
|
16
|
+
export declare function exportEnrichedSpans(_filter?: SpanFilter): Promise<EnrichedSpan[]>;
|
|
17
|
+
//# sourceMappingURL=enriched-span-exporter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enriched-span-exporter.d.ts","sourceRoot":"","sources":["../../src/server/enriched-span-exporter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,YAAY;IAC3B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAEhE;AAED,wBAAgB,kBAAkB,IAAI,IAAI,CAAG;AAE7C,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,EAAE,OAAO,EAAE,UAAU,GAAG,YAAY,EAAE,CAAe;AACvG,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAiB;AAClF,wBAAgB,mBAAmB,CAAC,OAAO,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,CAAgC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enriched span exporter stub for server module.
|
|
3
|
+
* Provides functions used by spans API route without cyclist dependency.
|
|
4
|
+
*/
|
|
5
|
+
export async function getEnrichedSpans() {
|
|
6
|
+
return [];
|
|
7
|
+
}
|
|
8
|
+
export function clearEnrichedSpans() { }
|
|
9
|
+
export function filterSpans(_spans, _filter) { return []; }
|
|
10
|
+
export function formatSpanForExport(_span) { return null; }
|
|
11
|
+
export function exportEnrichedSpans(_filter) { return Promise.resolve([]); }
|
|
12
|
+
//# sourceMappingURL=enriched-span-exporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enriched-span-exporter.js","sourceRoot":"","sources":["../../src/server/enriched-span-exporter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,kBAAkB,KAAU,CAAC;AAO7C,MAAM,UAAU,WAAW,CAAC,MAAsB,EAAE,OAAmB,IAAoB,OAAO,EAAE,CAAC,CAAC,CAAC;AACvG,MAAM,UAAU,mBAAmB,CAAC,KAAmB,IAAa,OAAO,IAAI,CAAC,CAAC,CAAC;AAClF,MAAM,UAAU,mBAAmB,CAAC,OAAoB,IAA6B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/server/env.ts"],"names":[],"mappings":"AAGA;;;GAGG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// BikeRack mode detection (ADR-0024, Rule 1)
|
|
2
|
+
// Extracted to break circular import: server → api/index → mode → server
|
|
3
|
+
/**
|
|
4
|
+
* Centralized gate — all mode checks go through this function.
|
|
5
|
+
* Returns true when IS_BIKERACK env var is set (by bikerack.ts entry point).
|
|
6
|
+
*/
|
|
7
|
+
export function isBikeRackMode() {
|
|
8
|
+
return process.env.IS_BIKERACK === '1';
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/server/env.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,yEAAyE;AAEzE;;;GAGG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,KAAK,GAAG,CAAC;AACzC,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File browser utility stub for server module.
|
|
3
|
+
* Provides functions used by file-browser API route without cyclist dependency.
|
|
4
|
+
*/
|
|
5
|
+
export interface DirectoryEntry {
|
|
6
|
+
name: string;
|
|
7
|
+
type: 'file' | 'directory';
|
|
8
|
+
size?: number;
|
|
9
|
+
modified?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface FileContent {
|
|
12
|
+
content: string;
|
|
13
|
+
language?: string;
|
|
14
|
+
}
|
|
15
|
+
export declare function listDirectory(_dirPath: string, _opts?: unknown): DirectoryEntry[];
|
|
16
|
+
export declare function readFile(_filePath: string, _opts?: unknown): FileContent | null;
|
|
17
|
+
//# sourceMappingURL=file-browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-browser.d.ts","sourceRoot":"","sources":["../../src/server/file-browser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,cAAc,EAAE,CAEjF;AAED,wBAAgB,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAE/E"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* File browser utility stub for server module.
|
|
3
|
+
* Provides functions used by file-browser API route without cyclist dependency.
|
|
4
|
+
*/
|
|
5
|
+
export function listDirectory(_dirPath, _opts) {
|
|
6
|
+
return [];
|
|
7
|
+
}
|
|
8
|
+
export function readFile(_filePath, _opts) {
|
|
9
|
+
return null;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=file-browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-browser.js","sourceRoot":"","sources":["../../src/server/file-browser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAcH,MAAM,UAAU,aAAa,CAAC,QAAgB,EAAE,KAAe;IAC7D,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,SAAiB,EAAE,KAAe;IACzD,OAAO,IAAI,CAAC;AACd,CAAC"}
|