oh-my-claude-sisyphus 3.7.4 → 3.7.6
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/commands/hud.md +3 -1
- package/dist/__tests__/analytics/output-estimator.test.js +18 -0
- package/dist/__tests__/analytics/output-estimator.test.js.map +1 -1
- package/dist/__tests__/analytics/token-extractor.test.js +44 -0
- package/dist/__tests__/analytics/token-extractor.test.js.map +1 -1
- package/dist/__tests__/analytics/token-tracker.test.d.ts +2 -0
- package/dist/__tests__/analytics/token-tracker.test.d.ts.map +1 -0
- package/dist/__tests__/analytics/token-tracker.test.js +189 -0
- package/dist/__tests__/analytics/token-tracker.test.js.map +1 -0
- package/dist/__tests__/hud/analytics-display.test.js +3 -8
- package/dist/__tests__/hud/analytics-display.test.js.map +1 -1
- package/dist/__tests__/hud/top-agents.test.d.ts +8 -0
- package/dist/__tests__/hud/top-agents.test.d.ts.map +1 -0
- package/dist/__tests__/hud/top-agents.test.js +157 -0
- package/dist/__tests__/hud/top-agents.test.js.map +1 -0
- package/dist/__tests__/installer.test.js +1 -1
- package/dist/analytics/output-estimator.d.ts.map +1 -1
- package/dist/analytics/output-estimator.js +5 -1
- package/dist/analytics/output-estimator.js.map +1 -1
- package/dist/analytics/token-extractor.js +2 -2
- package/dist/analytics/token-extractor.js.map +1 -1
- package/dist/cli/analytics.js +0 -0
- package/dist/cli/index.js +0 -0
- package/dist/hooks/pre-compact/index.d.ts +2 -4
- package/dist/hooks/pre-compact/index.d.ts.map +1 -1
- package/dist/hooks/pre-compact/index.js +3 -4
- package/dist/hooks/pre-compact/index.js.map +1 -1
- package/dist/hud/analytics-display.d.ts.map +1 -1
- package/dist/hud/analytics-display.js +0 -1
- package/dist/hud/analytics-display.js.map +1 -1
- package/dist/hud/index.js +52 -3
- package/dist/hud/index.js.map +1 -1
- package/dist/installer/index.d.ts +1 -1
- package/dist/installer/index.js +1 -1
- package/dist/tools/ast-tools.d.ts.map +1 -1
- package/dist/tools/ast-tools.js +39 -19
- package/dist/tools/ast-tools.js.map +1 -1
- package/dist/tools/diagnostics/__tests__/detectProjectType.test.d.ts +5 -0
- package/dist/tools/diagnostics/__tests__/detectProjectType.test.d.ts.map +1 -0
- package/dist/tools/diagnostics/__tests__/detectProjectType.test.js +42 -0
- package/dist/tools/diagnostics/__tests__/detectProjectType.test.js.map +1 -0
- package/dist/tools/diagnostics/__tests__/integration.test.d.ts +5 -0
- package/dist/tools/diagnostics/__tests__/integration.test.d.ts.map +1 -0
- package/dist/tools/diagnostics/__tests__/integration.test.js +66 -0
- package/dist/tools/diagnostics/__tests__/integration.test.js.map +1 -0
- package/dist/tools/diagnostics/__tests__/parser-tests.d.ts +5 -0
- package/dist/tools/diagnostics/__tests__/parser-tests.d.ts.map +1 -0
- package/dist/tools/diagnostics/__tests__/parser-tests.js +86 -0
- package/dist/tools/diagnostics/__tests__/parser-tests.js.map +1 -0
- package/dist/tools/diagnostics/__tests__/parsers.test.d.ts +5 -0
- package/dist/tools/diagnostics/__tests__/parsers.test.d.ts.map +1 -0
- package/dist/tools/diagnostics/__tests__/parsers.test.js +199 -0
- package/dist/tools/diagnostics/__tests__/parsers.test.js.map +1 -0
- package/dist/tools/diagnostics/constants.d.ts +9 -0
- package/dist/tools/diagnostics/constants.d.ts.map +1 -0
- package/dist/tools/diagnostics/constants.js +9 -0
- package/dist/tools/diagnostics/constants.js.map +1 -0
- package/dist/tools/diagnostics/go-runner.d.ts +31 -0
- package/dist/tools/diagnostics/go-runner.d.ts.map +1 -0
- package/dist/tools/diagnostics/go-runner.js +78 -0
- package/dist/tools/diagnostics/go-runner.js.map +1 -0
- package/dist/tools/diagnostics/index.d.ts +32 -7
- package/dist/tools/diagnostics/index.d.ts.map +1 -1
- package/dist/tools/diagnostics/index.js +171 -41
- package/dist/tools/diagnostics/index.js.map +1 -1
- package/dist/tools/diagnostics/lsp-aggregator.d.ts +13 -1
- package/dist/tools/diagnostics/lsp-aggregator.d.ts.map +1 -1
- package/dist/tools/diagnostics/lsp-aggregator.js +32 -4
- package/dist/tools/diagnostics/lsp-aggregator.js.map +1 -1
- package/dist/tools/diagnostics/python-runner.d.ts +39 -0
- package/dist/tools/diagnostics/python-runner.d.ts.map +1 -0
- package/dist/tools/diagnostics/python-runner.js +200 -0
- package/dist/tools/diagnostics/python-runner.js.map +1 -0
- package/dist/tools/diagnostics/rust-runner.d.ts +34 -0
- package/dist/tools/diagnostics/rust-runner.d.ts.map +1 -0
- package/dist/tools/diagnostics/rust-runner.js +106 -0
- package/dist/tools/diagnostics/rust-runner.js.map +1 -0
- package/dist/tools/diagnostics/tsc-runner.d.ts +6 -0
- package/dist/tools/diagnostics/tsc-runner.d.ts.map +1 -1
- package/dist/tools/diagnostics/tsc-runner.js +32 -5
- package/dist/tools/diagnostics/tsc-runner.js.map +1 -1
- package/dist/tools/lsp/client.d.ts.map +1 -1
- package/dist/tools/lsp/client.js +26 -1
- package/dist/tools/lsp/client.js.map +1 -1
- package/dist/tools/lsp/servers.d.ts +3 -0
- package/dist/tools/lsp/servers.d.ts.map +1 -1
- package/dist/tools/lsp/servers.js +111 -4
- package/dist/tools/lsp/servers.js.map +1 -1
- package/dist/tools/lsp-tools.d.ts +2 -2
- package/dist/tools/lsp-tools.d.ts.map +1 -1
- package/dist/tools/lsp-tools.js +2 -2
- package/dist/tools/lsp-tools.js.map +1 -1
- package/package.json +1 -1
- package/skills/hud/SKILL.md +3 -1
- package/dist/__tests__/analytics/analytics-summary.test.d.ts +0 -2
- package/dist/__tests__/analytics/analytics-summary.test.d.ts.map +0 -1
- package/dist/__tests__/analytics/analytics-summary.test.js +0 -267
- package/dist/__tests__/analytics/analytics-summary.test.js.map +0 -1
- package/dist/__tests__/analytics/cost-estimator.test.d.ts +0 -2
- package/dist/__tests__/analytics/cost-estimator.test.d.ts.map +0 -1
- package/dist/__tests__/analytics/cost-estimator.test.js +0 -212
- package/dist/__tests__/analytics/cost-estimator.test.js.map +0 -1
- package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts +0 -7
- package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts.map +0 -1
- package/dist/__tests__/hooks/auto-slash-command/executor.test.js +0 -374
- package/dist/__tests__/hooks/auto-slash-command/executor.test.js.map +0 -1
- package/dist/__tests__/hud/auto-tracking.integration.test.d.ts +0 -2
- package/dist/__tests__/hud/auto-tracking.integration.test.d.ts.map +0 -1
- package/dist/__tests__/hud/auto-tracking.integration.test.js +0 -12
- package/dist/__tests__/hud/auto-tracking.integration.test.js.map +0 -1
- package/dist/__tests__/learned-skills/config.test.d.ts +0 -2
- package/dist/__tests__/learned-skills/config.test.d.ts.map +0 -1
- package/dist/__tests__/learned-skills/config.test.js +0 -37
- package/dist/__tests__/learned-skills/config.test.js.map +0 -1
- package/dist/__tests__/learned-skills/detector.test.d.ts +0 -2
- package/dist/__tests__/learned-skills/detector.test.d.ts.map +0 -1
- package/dist/__tests__/learned-skills/detector.test.js +0 -99
- package/dist/__tests__/learned-skills/detector.test.js.map +0 -1
- package/dist/__tests__/learned-skills/finder.test.d.ts +0 -2
- package/dist/__tests__/learned-skills/finder.test.d.ts.map +0 -1
- package/dist/__tests__/learned-skills/finder.test.js +0 -59
- package/dist/__tests__/learned-skills/finder.test.js.map +0 -1
- package/dist/__tests__/learned-skills/loader.test.d.ts +0 -2
- package/dist/__tests__/learned-skills/loader.test.d.ts.map +0 -1
- package/dist/__tests__/learned-skills/loader.test.js +0 -69
- package/dist/__tests__/learned-skills/loader.test.js.map +0 -1
- package/dist/__tests__/learned-skills/parser.test.d.ts +0 -2
- package/dist/__tests__/learned-skills/parser.test.d.ts.map +0 -1
- package/dist/__tests__/learned-skills/parser.test.js +0 -81
- package/dist/__tests__/learned-skills/parser.test.js.map +0 -1
- package/dist/__tests__/learned-skills/validator.test.d.ts +0 -2
- package/dist/__tests__/learned-skills/validator.test.d.ts.map +0 -1
- package/dist/__tests__/learned-skills/validator.test.js +0 -85
- package/dist/__tests__/learned-skills/validator.test.js.map +0 -1
- package/dist/agents/codex-agents.d.ts +0 -20
- package/dist/agents/codex-agents.d.ts.map +0 -1
- package/dist/agents/codex-agents.js +0 -36
- package/dist/agents/codex-agents.js.map +0 -1
- package/dist/agents/document-writer.d.ts +0 -11
- package/dist/agents/document-writer.d.ts.map +0 -1
- package/dist/agents/document-writer.js +0 -209
- package/dist/agents/document-writer.js.map +0 -1
- package/dist/agents/frontend-engineer.d.ts +0 -11
- package/dist/agents/frontend-engineer.d.ts.map +0 -1
- package/dist/agents/frontend-engineer.js +0 -115
- package/dist/agents/frontend-engineer.js.map +0 -1
- package/dist/agents/librarian.d.ts +0 -12
- package/dist/agents/librarian.d.ts.map +0 -1
- package/dist/agents/librarian.js +0 -103
- package/dist/agents/librarian.js.map +0 -1
- package/dist/agents/metis.d.ts +0 -12
- package/dist/agents/metis.d.ts.map +0 -1
- package/dist/agents/metis.js +0 -117
- package/dist/agents/metis.js.map +0 -1
- package/dist/agents/momus.d.ts +0 -12
- package/dist/agents/momus.d.ts.map +0 -1
- package/dist/agents/momus.js +0 -128
- package/dist/agents/momus.js.map +0 -1
- package/dist/agents/multimodal-looker.d.ts +0 -11
- package/dist/agents/multimodal-looker.d.ts.map +0 -1
- package/dist/agents/multimodal-looker.js +0 -70
- package/dist/agents/multimodal-looker.js.map +0 -1
- package/dist/agents/oracle.d.ts +0 -13
- package/dist/agents/oracle.d.ts.map +0 -1
- package/dist/agents/oracle.js +0 -191
- package/dist/agents/oracle.js.map +0 -1
- package/dist/agents/orchestrator-sisyphus.d.ts +0 -11
- package/dist/agents/orchestrator-sisyphus.d.ts.map +0 -1
- package/dist/agents/orchestrator-sisyphus.js +0 -115
- package/dist/agents/orchestrator-sisyphus.js.map +0 -1
- package/dist/agents/prometheus.d.ts +0 -12
- package/dist/agents/prometheus.d.ts.map +0 -1
- package/dist/agents/prometheus.js +0 -195
- package/dist/agents/prometheus.js.map +0 -1
- package/dist/agents/sisyphus-junior.d.ts +0 -12
- package/dist/agents/sisyphus-junior.d.ts.map +0 -1
- package/dist/agents/sisyphus-junior.js +0 -93
- package/dist/agents/sisyphus-junior.js.map +0 -1
- package/dist/cli/components/CostDashboard.d.ts +0 -15
- package/dist/cli/components/CostDashboard.d.ts.map +0 -1
- package/dist/cli/components/CostDashboard.js +0 -15
- package/dist/cli/components/CostDashboard.js.map +0 -1
- package/dist/cli/components/LiveStats.d.ts +0 -16
- package/dist/cli/components/LiveStats.d.ts.map +0 -1
- package/dist/cli/components/LiveStats.js +0 -16
- package/dist/cli/components/LiveStats.js.map +0 -1
- package/dist/cli/components/SessionBrowser.d.ts +0 -14
- package/dist/cli/components/SessionBrowser.d.ts.map +0 -1
- package/dist/cli/components/SessionBrowser.js +0 -14
- package/dist/cli/components/SessionBrowser.js.map +0 -1
- package/dist/cli/tui.d.ts +0 -21
- package/dist/cli/tui.d.ts.map +0 -1
- package/dist/cli/tui.js +0 -21
- package/dist/cli/tui.js.map +0 -1
- package/dist/hooks/autopilot/signals.d.ts +0 -20
- package/dist/hooks/autopilot/signals.d.ts.map +0 -1
- package/dist/hooks/autopilot/signals.js +0 -75
- package/dist/hooks/autopilot/signals.js.map +0 -1
- package/dist/hooks/autopilot/summary.d.ts +0 -27
- package/dist/hooks/autopilot/summary.d.ts.map +0 -1
- package/dist/hooks/autopilot/summary.js +0 -160
- package/dist/hooks/autopilot/summary.js.map +0 -1
- package/dist/hooks/autopilot/transition.d.ts +0 -39
- package/dist/hooks/autopilot/transition.d.ts.map +0 -1
- package/dist/hooks/autopilot/transition.js +0 -216
- package/dist/hooks/autopilot/transition.js.map +0 -1
- package/dist/hooks/context-window-limit-recovery/constants.d.ts +0 -28
- package/dist/hooks/context-window-limit-recovery/constants.d.ts.map +0 -1
- package/dist/hooks/context-window-limit-recovery/constants.js +0 -85
- package/dist/hooks/context-window-limit-recovery/constants.js.map +0 -1
- package/dist/hooks/context-window-limit-recovery/index.d.ts +0 -62
- package/dist/hooks/context-window-limit-recovery/index.d.ts.map +0 -1
- package/dist/hooks/context-window-limit-recovery/index.js +0 -201
- package/dist/hooks/context-window-limit-recovery/index.js.map +0 -1
- package/dist/hooks/context-window-limit-recovery/parser.d.ts +0 -31
- package/dist/hooks/context-window-limit-recovery/parser.d.ts.map +0 -1
- package/dist/hooks/context-window-limit-recovery/parser.js +0 -241
- package/dist/hooks/context-window-limit-recovery/parser.js.map +0 -1
- package/dist/hooks/context-window-limit-recovery/types.d.ts +0 -84
- package/dist/hooks/context-window-limit-recovery/types.d.ts.map +0 -1
- package/dist/hooks/context-window-limit-recovery/types.js +0 -34
- package/dist/hooks/context-window-limit-recovery/types.js.map +0 -1
- package/dist/hooks/edit-error-recovery/index.d.ts +0 -62
- package/dist/hooks/edit-error-recovery/index.d.ts.map +0 -1
- package/dist/hooks/edit-error-recovery/index.js +0 -89
- package/dist/hooks/edit-error-recovery/index.js.map +0 -1
- package/dist/hooks/github-auto-responder/classifier.d.ts +0 -43
- package/dist/hooks/github-auto-responder/classifier.d.ts.map +0 -1
- package/dist/hooks/github-auto-responder/classifier.js +0 -150
- package/dist/hooks/github-auto-responder/classifier.js.map +0 -1
- package/dist/hooks/github-auto-responder/config.d.ts +0 -109
- package/dist/hooks/github-auto-responder/config.d.ts.map +0 -1
- package/dist/hooks/github-auto-responder/config.js +0 -69
- package/dist/hooks/github-auto-responder/config.js.map +0 -1
- package/dist/hooks/github-auto-responder/constants.d.ts +0 -45
- package/dist/hooks/github-auto-responder/constants.d.ts.map +0 -1
- package/dist/hooks/github-auto-responder/constants.js +0 -60
- package/dist/hooks/github-auto-responder/constants.js.map +0 -1
- package/dist/hooks/github-auto-responder/filters.d.ts +0 -95
- package/dist/hooks/github-auto-responder/filters.d.ts.map +0 -1
- package/dist/hooks/github-auto-responder/filters.js +0 -174
- package/dist/hooks/github-auto-responder/filters.js.map +0 -1
- package/dist/hooks/github-auto-responder/github-client.d.ts +0 -65
- package/dist/hooks/github-auto-responder/github-client.d.ts.map +0 -1
- package/dist/hooks/github-auto-responder/github-client.js +0 -128
- package/dist/hooks/github-auto-responder/github-client.js.map +0 -1
- package/dist/hooks/github-auto-responder/idempotency.d.ts +0 -68
- package/dist/hooks/github-auto-responder/idempotency.d.ts.map +0 -1
- package/dist/hooks/github-auto-responder/idempotency.js +0 -147
- package/dist/hooks/github-auto-responder/idempotency.js.map +0 -1
- package/dist/hooks/github-auto-responder/index.d.ts +0 -140
- package/dist/hooks/github-auto-responder/index.d.ts.map +0 -1
- package/dist/hooks/github-auto-responder/index.js +0 -145
- package/dist/hooks/github-auto-responder/index.js.map +0 -1
- package/dist/hooks/github-auto-responder/persona.d.ts +0 -40
- package/dist/hooks/github-auto-responder/persona.d.ts.map +0 -1
- package/dist/hooks/github-auto-responder/persona.js +0 -99
- package/dist/hooks/github-auto-responder/persona.js.map +0 -1
- package/dist/hooks/github-auto-responder/responder.d.ts +0 -122
- package/dist/hooks/github-auto-responder/responder.d.ts.map +0 -1
- package/dist/hooks/github-auto-responder/responder.js +0 -264
- package/dist/hooks/github-auto-responder/responder.js.map +0 -1
- package/dist/hooks/github-auto-responder/server.d.ts +0 -140
- package/dist/hooks/github-auto-responder/server.d.ts.map +0 -1
- package/dist/hooks/github-auto-responder/server.js +0 -301
- package/dist/hooks/github-auto-responder/server.js.map +0 -1
- package/dist/hooks/github-auto-responder/signature.d.ts +0 -34
- package/dist/hooks/github-auto-responder/signature.d.ts.map +0 -1
- package/dist/hooks/github-auto-responder/signature.js +0 -79
- package/dist/hooks/github-auto-responder/signature.js.map +0 -1
- package/dist/hooks/github-auto-responder/templates.d.ts +0 -16
- package/dist/hooks/github-auto-responder/templates.d.ts.map +0 -1
- package/dist/hooks/github-auto-responder/templates.js +0 -93
- package/dist/hooks/github-auto-responder/templates.js.map +0 -1
- package/dist/hooks/github-auto-responder/types.d.ts +0 -246
- package/dist/hooks/github-auto-responder/types.d.ts.map +0 -1
- package/dist/hooks/github-auto-responder/types.js +0 -7
- package/dist/hooks/github-auto-responder/types.js.map +0 -1
- package/dist/hooks/learned-skills/config.d.ts +0 -53
- package/dist/hooks/learned-skills/config.d.ts.map +0 -1
- package/dist/hooks/learned-skills/config.js +0 -103
- package/dist/hooks/learned-skills/config.js.map +0 -1
- package/dist/hooks/learned-skills/constants.d.ts +0 -24
- package/dist/hooks/learned-skills/constants.d.ts.map +0 -1
- package/dist/hooks/learned-skills/constants.js +0 -26
- package/dist/hooks/learned-skills/constants.js.map +0 -1
- package/dist/hooks/learned-skills/detection-hook.d.ts +0 -39
- package/dist/hooks/learned-skills/detection-hook.d.ts.map +0 -1
- package/dist/hooks/learned-skills/detection-hook.js +0 -83
- package/dist/hooks/learned-skills/detection-hook.js.map +0 -1
- package/dist/hooks/learned-skills/detector.d.ts +0 -30
- package/dist/hooks/learned-skills/detector.d.ts.map +0 -1
- package/dist/hooks/learned-skills/detector.js +0 -150
- package/dist/hooks/learned-skills/detector.js.map +0 -1
- package/dist/hooks/learned-skills/finder.d.ts +0 -21
- package/dist/hooks/learned-skills/finder.d.ts.map +0 -1
- package/dist/hooks/learned-skills/finder.js +0 -117
- package/dist/hooks/learned-skills/finder.js.map +0 -1
- package/dist/hooks/learned-skills/index.d.ts +0 -62
- package/dist/hooks/learned-skills/index.d.ts.map +0 -1
- package/dist/hooks/learned-skills/index.js +0 -137
- package/dist/hooks/learned-skills/index.js.map +0 -1
- package/dist/hooks/learned-skills/loader.d.ts +0 -20
- package/dist/hooks/learned-skills/loader.d.ts.map +0 -1
- package/dist/hooks/learned-skills/loader.js +0 -107
- package/dist/hooks/learned-skills/loader.js.map +0 -1
- package/dist/hooks/learned-skills/parser.d.ts +0 -21
- package/dist/hooks/learned-skills/parser.d.ts.map +0 -1
- package/dist/hooks/learned-skills/parser.js +0 -190
- package/dist/hooks/learned-skills/parser.js.map +0 -1
- package/dist/hooks/learned-skills/promotion.d.ts +0 -29
- package/dist/hooks/learned-skills/promotion.d.ts.map +0 -1
- package/dist/hooks/learned-skills/promotion.js +0 -87
- package/dist/hooks/learned-skills/promotion.js.map +0 -1
- package/dist/hooks/learned-skills/types.d.ts +0 -109
- package/dist/hooks/learned-skills/types.d.ts.map +0 -1
- package/dist/hooks/learned-skills/types.js +0 -8
- package/dist/hooks/learned-skills/types.js.map +0 -1
- package/dist/hooks/learned-skills/validator.d.ts +0 -15
- package/dist/hooks/learned-skills/validator.d.ts.map +0 -1
- package/dist/hooks/learned-skills/validator.js +0 -87
- package/dist/hooks/learned-skills/validator.js.map +0 -1
- package/dist/hooks/learned-skills/writer.d.ts +0 -27
- package/dist/hooks/learned-skills/writer.d.ts.map +0 -1
- package/dist/hooks/learned-skills/writer.js +0 -126
- package/dist/hooks/learned-skills/writer.js.map +0 -1
- package/dist/hooks/mnemosyne/config.d.ts +0 -53
- package/dist/hooks/mnemosyne/config.d.ts.map +0 -1
- package/dist/hooks/mnemosyne/config.js +0 -103
- package/dist/hooks/mnemosyne/config.js.map +0 -1
- package/dist/hooks/mnemosyne/constants.d.ts +0 -24
- package/dist/hooks/mnemosyne/constants.d.ts.map +0 -1
- package/dist/hooks/mnemosyne/constants.js +0 -26
- package/dist/hooks/mnemosyne/constants.js.map +0 -1
- package/dist/hooks/mnemosyne/detection-hook.d.ts +0 -39
- package/dist/hooks/mnemosyne/detection-hook.d.ts.map +0 -1
- package/dist/hooks/mnemosyne/detection-hook.js +0 -83
- package/dist/hooks/mnemosyne/detection-hook.js.map +0 -1
- package/dist/hooks/mnemosyne/detector.d.ts +0 -30
- package/dist/hooks/mnemosyne/detector.d.ts.map +0 -1
- package/dist/hooks/mnemosyne/detector.js +0 -150
- package/dist/hooks/mnemosyne/detector.js.map +0 -1
- package/dist/hooks/mnemosyne/finder.d.ts +0 -21
- package/dist/hooks/mnemosyne/finder.d.ts.map +0 -1
- package/dist/hooks/mnemosyne/finder.js +0 -117
- package/dist/hooks/mnemosyne/finder.js.map +0 -1
- package/dist/hooks/mnemosyne/index.d.ts +0 -62
- package/dist/hooks/mnemosyne/index.d.ts.map +0 -1
- package/dist/hooks/mnemosyne/index.js +0 -137
- package/dist/hooks/mnemosyne/index.js.map +0 -1
- package/dist/hooks/mnemosyne/loader.d.ts +0 -20
- package/dist/hooks/mnemosyne/loader.d.ts.map +0 -1
- package/dist/hooks/mnemosyne/loader.js +0 -113
- package/dist/hooks/mnemosyne/loader.js.map +0 -1
- package/dist/hooks/mnemosyne/parser.d.ts +0 -21
- package/dist/hooks/mnemosyne/parser.d.ts.map +0 -1
- package/dist/hooks/mnemosyne/parser.js +0 -190
- package/dist/hooks/mnemosyne/parser.js.map +0 -1
- package/dist/hooks/mnemosyne/promotion.d.ts +0 -29
- package/dist/hooks/mnemosyne/promotion.d.ts.map +0 -1
- package/dist/hooks/mnemosyne/promotion.js +0 -87
- package/dist/hooks/mnemosyne/promotion.js.map +0 -1
- package/dist/hooks/mnemosyne/types.d.ts +0 -109
- package/dist/hooks/mnemosyne/types.d.ts.map +0 -1
- package/dist/hooks/mnemosyne/types.js +0 -8
- package/dist/hooks/mnemosyne/types.js.map +0 -1
- package/dist/hooks/mnemosyne/validator.d.ts +0 -15
- package/dist/hooks/mnemosyne/validator.d.ts.map +0 -1
- package/dist/hooks/mnemosyne/validator.js +0 -87
- package/dist/hooks/mnemosyne/validator.js.map +0 -1
- package/dist/hooks/mnemosyne/writer.d.ts +0 -27
- package/dist/hooks/mnemosyne/writer.d.ts.map +0 -1
- package/dist/hooks/mnemosyne/writer.js +0 -126
- package/dist/hooks/mnemosyne/writer.js.map +0 -1
- package/dist/hooks/ralph-loop/index.d.ts +0 -116
- package/dist/hooks/ralph-loop/index.d.ts.map +0 -1
- package/dist/hooks/ralph-loop/index.js +0 -322
- package/dist/hooks/ralph-loop/index.js.map +0 -1
- package/dist/hooks/ralph-prd/index.d.ts +0 -130
- package/dist/hooks/ralph-prd/index.d.ts.map +0 -1
- package/dist/hooks/ralph-prd/index.js +0 -310
- package/dist/hooks/ralph-prd/index.js.map +0 -1
- package/dist/hooks/ralph-progress/index.d.ts +0 -102
- package/dist/hooks/ralph-progress/index.d.ts.map +0 -1
- package/dist/hooks/ralph-progress/index.js +0 -408
- package/dist/hooks/ralph-progress/index.js.map +0 -1
- package/dist/hooks/ralph-verifier/index.d.ts +0 -72
- package/dist/hooks/ralph-verifier/index.d.ts.map +0 -1
- package/dist/hooks/ralph-verifier/index.js +0 -223
- package/dist/hooks/ralph-verifier/index.js.map +0 -1
- package/dist/hooks/session-recovery/constants.d.ts +0 -56
- package/dist/hooks/session-recovery/constants.d.ts.map +0 -1
- package/dist/hooks/session-recovery/constants.js +0 -78
- package/dist/hooks/session-recovery/constants.js.map +0 -1
- package/dist/hooks/session-recovery/index.d.ts +0 -53
- package/dist/hooks/session-recovery/index.d.ts.map +0 -1
- package/dist/hooks/session-recovery/index.js +0 -321
- package/dist/hooks/session-recovery/index.js.map +0 -1
- package/dist/hooks/session-recovery/storage.d.ts +0 -76
- package/dist/hooks/session-recovery/storage.d.ts.map +0 -1
- package/dist/hooks/session-recovery/storage.js +0 -383
- package/dist/hooks/session-recovery/storage.js.map +0 -1
- package/dist/hooks/session-recovery/types.d.ts +0 -145
- package/dist/hooks/session-recovery/types.d.ts.map +0 -1
- package/dist/hooks/session-recovery/types.js +0 -8
- package/dist/hooks/session-recovery/types.js.map +0 -1
- package/dist/hooks/sisyphus-orchestrator/constants.d.ts +0 -23
- package/dist/hooks/sisyphus-orchestrator/constants.d.ts.map +0 -1
- package/dist/hooks/sisyphus-orchestrator/constants.js +0 -142
- package/dist/hooks/sisyphus-orchestrator/constants.js.map +0 -1
- package/dist/hooks/sisyphus-orchestrator/index.d.ts +0 -113
- package/dist/hooks/sisyphus-orchestrator/index.d.ts.map +0 -1
- package/dist/hooks/sisyphus-orchestrator/index.js +0 -309
- package/dist/hooks/sisyphus-orchestrator/index.js.map +0 -1
- package/dist/hooks/ultraqa-loop/index.d.ts +0 -94
- package/dist/hooks/ultraqa-loop/index.d.ts.map +0 -1
- package/dist/hooks/ultraqa-loop/index.js +0 -216
- package/dist/hooks/ultraqa-loop/index.js.map +0 -1
- package/dist/hooks/ultrawork-state/index.d.ts +0 -62
- package/dist/hooks/ultrawork-state/index.d.ts.map +0 -1
- package/dist/hooks/ultrawork-state/index.js +0 -208
- package/dist/hooks/ultrawork-state/index.js.map +0 -1
- package/dist/hud/sisyphus-state.d.ts +0 -31
- package/dist/hud/sisyphus-state.d.ts.map +0 -1
- package/dist/hud/sisyphus-state.js +0 -163
- package/dist/hud/sisyphus-state.js.map +0 -1
- package/scripts/github-webhook-server.ts +0 -141
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
2
|
-
import { mkdirSync, writeFileSync, rmSync } from 'fs';
|
|
3
|
-
import { join } from 'path';
|
|
4
|
-
import { tmpdir } from 'os';
|
|
5
|
-
import { findSkillFiles, getSkillsDir, ensureSkillsDir } from '../../hooks/learned-skills/finder.js';
|
|
6
|
-
describe('Skill Finder', () => {
|
|
7
|
-
let testDir;
|
|
8
|
-
let projectRoot;
|
|
9
|
-
beforeEach(() => {
|
|
10
|
-
testDir = join(tmpdir(), `skill-test-${Date.now()}`);
|
|
11
|
-
projectRoot = join(testDir, 'project');
|
|
12
|
-
mkdirSync(join(projectRoot, '.sisyphus', 'skills'), { recursive: true });
|
|
13
|
-
});
|
|
14
|
-
afterEach(() => {
|
|
15
|
-
rmSync(testDir, { recursive: true, force: true });
|
|
16
|
-
});
|
|
17
|
-
it('should find project-level skills', () => {
|
|
18
|
-
const skillPath = join(projectRoot, '.sisyphus', 'skills', 'test-skill.md');
|
|
19
|
-
writeFileSync(skillPath, '# Test Skill');
|
|
20
|
-
const candidates = findSkillFiles(projectRoot);
|
|
21
|
-
expect(candidates.length).toBe(1);
|
|
22
|
-
expect(candidates[0].scope).toBe('project');
|
|
23
|
-
expect(candidates[0].path).toBe(skillPath);
|
|
24
|
-
});
|
|
25
|
-
it('should prioritize project skills over user skills', () => {
|
|
26
|
-
// Create project skill
|
|
27
|
-
const projectSkillPath = join(projectRoot, '.sisyphus', 'skills', 'skill.md');
|
|
28
|
-
writeFileSync(projectSkillPath, '# Project Skill');
|
|
29
|
-
const candidates = findSkillFiles(projectRoot);
|
|
30
|
-
// Project skill should come first
|
|
31
|
-
const projectSkill = candidates.find(c => c.scope === 'project');
|
|
32
|
-
expect(projectSkill).toBeDefined();
|
|
33
|
-
});
|
|
34
|
-
it('should handle missing directories gracefully', () => {
|
|
35
|
-
const emptyProject = join(testDir, 'empty');
|
|
36
|
-
mkdirSync(emptyProject);
|
|
37
|
-
const candidates = findSkillFiles(emptyProject);
|
|
38
|
-
// Should return empty array, not throw
|
|
39
|
-
expect(Array.isArray(candidates)).toBe(true);
|
|
40
|
-
});
|
|
41
|
-
it('should get skills directory for user scope', () => {
|
|
42
|
-
const userDir = getSkillsDir('user');
|
|
43
|
-
expect(userDir).toContain('.claude');
|
|
44
|
-
expect(userDir).toContain('sisyphus-learned');
|
|
45
|
-
});
|
|
46
|
-
it('should get skills directory for project scope', () => {
|
|
47
|
-
const projectDir = getSkillsDir('project', projectRoot);
|
|
48
|
-
expect(projectDir).toContain('.sisyphus');
|
|
49
|
-
expect(projectDir).toContain('skills');
|
|
50
|
-
});
|
|
51
|
-
it('should throw for project scope without root', () => {
|
|
52
|
-
expect(() => getSkillsDir('project')).toThrow();
|
|
53
|
-
});
|
|
54
|
-
it('should ensure skills directory exists', () => {
|
|
55
|
-
const result = ensureSkillsDir('project', projectRoot);
|
|
56
|
-
expect(result).toBe(true);
|
|
57
|
-
});
|
|
58
|
-
});
|
|
59
|
-
//# sourceMappingURL=finder.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"finder.test.js","sourceRoot":"","sources":["../../../src/__tests__/learned-skills/finder.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loader.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/learned-skills/loader.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
2
|
-
import { mkdirSync, writeFileSync, rmSync } from 'fs';
|
|
3
|
-
import { join } from 'path';
|
|
4
|
-
import { tmpdir } from 'os';
|
|
5
|
-
import { loadAllSkills, findMatchingSkills } from '../../hooks/learned-skills/loader.js';
|
|
6
|
-
describe('Skill Loader', () => {
|
|
7
|
-
let testDir;
|
|
8
|
-
let projectRoot;
|
|
9
|
-
beforeEach(() => {
|
|
10
|
-
testDir = join(tmpdir(), `skill-loader-test-${Date.now()}`);
|
|
11
|
-
projectRoot = join(testDir, 'project');
|
|
12
|
-
mkdirSync(join(projectRoot, '.sisyphus', 'skills'), { recursive: true });
|
|
13
|
-
});
|
|
14
|
-
afterEach(() => {
|
|
15
|
-
rmSync(testDir, { recursive: true, force: true });
|
|
16
|
-
});
|
|
17
|
-
const createSkillFile = (name, metadata) => {
|
|
18
|
-
const content = `---
|
|
19
|
-
id: "${metadata.id || name}"
|
|
20
|
-
name: "${metadata.name || name}"
|
|
21
|
-
description: "${metadata.description || 'Test skill'}"
|
|
22
|
-
source: ${metadata.source || 'manual'}
|
|
23
|
-
createdAt: "2024-01-19T12:00:00Z"
|
|
24
|
-
triggers:
|
|
25
|
-
${(metadata.triggers || ['test']).map(t => ` - "${t}"`).join('\n')}
|
|
26
|
-
---
|
|
27
|
-
|
|
28
|
-
# ${name}
|
|
29
|
-
|
|
30
|
-
Test content for ${name}.
|
|
31
|
-
`;
|
|
32
|
-
const skillPath = join(projectRoot, '.sisyphus', 'skills', `${name}.md`);
|
|
33
|
-
writeFileSync(skillPath, content);
|
|
34
|
-
return skillPath;
|
|
35
|
-
};
|
|
36
|
-
it('should load all valid skills', () => {
|
|
37
|
-
createSkillFile('skill-a', { triggers: ['alpha'] });
|
|
38
|
-
createSkillFile('skill-b', { triggers: ['beta'] });
|
|
39
|
-
const skills = loadAllSkills(projectRoot);
|
|
40
|
-
expect(skills.length).toBe(2);
|
|
41
|
-
});
|
|
42
|
-
it('should find matching skills by trigger', () => {
|
|
43
|
-
createSkillFile('react-skill', { triggers: ['react', 'component'] });
|
|
44
|
-
createSkillFile('python-skill', { triggers: ['python', 'django'] });
|
|
45
|
-
const matches = findMatchingSkills('How do I create a React component?', projectRoot);
|
|
46
|
-
expect(matches.length).toBe(1);
|
|
47
|
-
expect(matches[0].metadata.id).toBe('react-skill');
|
|
48
|
-
});
|
|
49
|
-
it('should return empty array when no triggers match', () => {
|
|
50
|
-
createSkillFile('react-skill', { triggers: ['react'] });
|
|
51
|
-
const matches = findMatchingSkills('How do I use Rust?', projectRoot);
|
|
52
|
-
expect(matches.length).toBe(0);
|
|
53
|
-
});
|
|
54
|
-
it('should limit results to specified count', () => {
|
|
55
|
-
createSkillFile('skill-1', { triggers: ['test'] });
|
|
56
|
-
createSkillFile('skill-2', { triggers: ['test'] });
|
|
57
|
-
createSkillFile('skill-3', { triggers: ['test'] });
|
|
58
|
-
const matches = findMatchingSkills('This is a test message', projectRoot, 2);
|
|
59
|
-
expect(matches.length).toBeLessThanOrEqual(2);
|
|
60
|
-
});
|
|
61
|
-
it('should boost by quality score', () => {
|
|
62
|
-
createSkillFile('low-quality', { triggers: ['test'], quality: 30 });
|
|
63
|
-
createSkillFile('high-quality', { triggers: ['test'], quality: 90 });
|
|
64
|
-
const matches = findMatchingSkills('test', projectRoot);
|
|
65
|
-
// High quality should be first
|
|
66
|
-
expect(matches[0].metadata.id).toBe('high-quality');
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
//# sourceMappingURL=loader.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loader.test.js","sourceRoot":"","sources":["../../../src/__tests__/learned-skills/loader.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parser.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/learned-skills/parser.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { parseSkillFile, generateSkillFrontmatter } from '../../hooks/learned-skills/parser.js';
|
|
3
|
-
describe('Skill Parser', () => {
|
|
4
|
-
it('should parse valid skill frontmatter', () => {
|
|
5
|
-
const content = `---
|
|
6
|
-
id: "test-skill-001"
|
|
7
|
-
name: "Test Skill"
|
|
8
|
-
description: "A test skill"
|
|
9
|
-
source: extracted
|
|
10
|
-
createdAt: "2024-01-19T12:00:00Z"
|
|
11
|
-
triggers:
|
|
12
|
-
- "test"
|
|
13
|
-
- "demo"
|
|
14
|
-
tags:
|
|
15
|
-
- "testing"
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
# Test Skill Content
|
|
19
|
-
|
|
20
|
-
This is the skill content.
|
|
21
|
-
`;
|
|
22
|
-
const result = parseSkillFile(content);
|
|
23
|
-
expect(result.valid).toBe(true);
|
|
24
|
-
expect(result.metadata.id).toBe('test-skill-001');
|
|
25
|
-
expect(result.metadata.name).toBe('Test Skill');
|
|
26
|
-
expect(result.metadata.triggers).toEqual(['test', 'demo']);
|
|
27
|
-
expect(result.content).toContain('Test Skill Content');
|
|
28
|
-
});
|
|
29
|
-
it('should reject skill without required fields', () => {
|
|
30
|
-
const content = `---
|
|
31
|
-
name: "Incomplete Skill"
|
|
32
|
-
---
|
|
33
|
-
|
|
34
|
-
Content without required fields.
|
|
35
|
-
`;
|
|
36
|
-
const result = parseSkillFile(content);
|
|
37
|
-
expect(result.valid).toBe(false);
|
|
38
|
-
expect(result.errors).toContain('Missing required field: id');
|
|
39
|
-
expect(result.errors).toContain('Missing required field: triggers');
|
|
40
|
-
});
|
|
41
|
-
it('should generate valid frontmatter', () => {
|
|
42
|
-
const metadata = {
|
|
43
|
-
id: 'gen-skill-001',
|
|
44
|
-
name: 'Generated Skill',
|
|
45
|
-
description: 'A generated skill',
|
|
46
|
-
source: 'extracted',
|
|
47
|
-
createdAt: '2024-01-19T12:00:00Z',
|
|
48
|
-
triggers: ['generate', 'create'],
|
|
49
|
-
tags: ['automation'],
|
|
50
|
-
};
|
|
51
|
-
const frontmatter = generateSkillFrontmatter(metadata);
|
|
52
|
-
expect(frontmatter).toContain('id: "gen-skill-001"');
|
|
53
|
-
expect(frontmatter).toContain('triggers:');
|
|
54
|
-
expect(frontmatter).toContain(' - "generate"');
|
|
55
|
-
});
|
|
56
|
-
it('should reject content without frontmatter', () => {
|
|
57
|
-
const content = `# Just content
|
|
58
|
-
|
|
59
|
-
No frontmatter here.
|
|
60
|
-
`;
|
|
61
|
-
const result = parseSkillFile(content);
|
|
62
|
-
expect(result.valid).toBe(false);
|
|
63
|
-
expect(result.errors).toContain('Missing YAML frontmatter');
|
|
64
|
-
});
|
|
65
|
-
it('should handle inline array triggers', () => {
|
|
66
|
-
const content = `---
|
|
67
|
-
id: "inline-array"
|
|
68
|
-
name: "Inline Array Skill"
|
|
69
|
-
description: "Test inline arrays"
|
|
70
|
-
source: manual
|
|
71
|
-
triggers: ["alpha", "beta", "gamma"]
|
|
72
|
-
---
|
|
73
|
-
|
|
74
|
-
Content
|
|
75
|
-
`;
|
|
76
|
-
const result = parseSkillFile(content);
|
|
77
|
-
expect(result.valid).toBe(true);
|
|
78
|
-
expect(result.metadata.triggers).toEqual(['alpha', 'beta', 'gamma']);
|
|
79
|
-
});
|
|
80
|
-
});
|
|
81
|
-
//# sourceMappingURL=parser.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"parser.test.js","sourceRoot":"","sources":["../../../src/__tests__/learned-skills/parser.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validator.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/learned-skills/validator.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { validateExtractionRequest, validateSkillMetadata } from '../../hooks/learned-skills/validator.js';
|
|
3
|
-
describe('Skill Validator', () => {
|
|
4
|
-
describe('validateExtractionRequest', () => {
|
|
5
|
-
it('should pass valid extraction request', () => {
|
|
6
|
-
const request = {
|
|
7
|
-
problem: 'How to handle React state updates correctly',
|
|
8
|
-
solution: 'Use the functional form of setState when the new state depends on the previous state. This ensures you always have the latest state value.',
|
|
9
|
-
triggers: ['react', 'state', 'setState'],
|
|
10
|
-
targetScope: 'user',
|
|
11
|
-
};
|
|
12
|
-
const result = validateExtractionRequest(request);
|
|
13
|
-
expect(result.valid).toBe(true);
|
|
14
|
-
expect(result.score).toBeGreaterThanOrEqual(50);
|
|
15
|
-
});
|
|
16
|
-
it('should fail with missing problem', () => {
|
|
17
|
-
const request = {
|
|
18
|
-
problem: '',
|
|
19
|
-
solution: 'Use functional setState for dependent updates',
|
|
20
|
-
triggers: ['react'],
|
|
21
|
-
targetScope: 'user',
|
|
22
|
-
};
|
|
23
|
-
const result = validateExtractionRequest(request);
|
|
24
|
-
expect(result.valid).toBe(false);
|
|
25
|
-
expect(result.missingFields).toContain('problem (minimum 10 characters)');
|
|
26
|
-
});
|
|
27
|
-
it('should warn about generic triggers', () => {
|
|
28
|
-
const request = {
|
|
29
|
-
problem: 'How to handle data correctly',
|
|
30
|
-
solution: 'Always validate and sanitize input data before processing',
|
|
31
|
-
triggers: ['the', 'data', 'this'],
|
|
32
|
-
targetScope: 'user',
|
|
33
|
-
};
|
|
34
|
-
const result = validateExtractionRequest(request);
|
|
35
|
-
expect(result.warnings.length).toBeGreaterThan(0);
|
|
36
|
-
expect(result.warnings.some(w => w.includes('Generic triggers'))).toBe(true);
|
|
37
|
-
});
|
|
38
|
-
it('should fail with short solution', () => {
|
|
39
|
-
const request = {
|
|
40
|
-
problem: 'Valid problem statement here',
|
|
41
|
-
solution: 'Too short',
|
|
42
|
-
triggers: ['test'],
|
|
43
|
-
targetScope: 'user',
|
|
44
|
-
};
|
|
45
|
-
const result = validateExtractionRequest(request);
|
|
46
|
-
expect(result.valid).toBe(false);
|
|
47
|
-
expect(result.missingFields).toContain('solution (minimum 20 characters)');
|
|
48
|
-
});
|
|
49
|
-
it('should fail with empty triggers', () => {
|
|
50
|
-
const request = {
|
|
51
|
-
problem: 'Valid problem statement here',
|
|
52
|
-
solution: 'Valid solution that is long enough',
|
|
53
|
-
triggers: [],
|
|
54
|
-
targetScope: 'user',
|
|
55
|
-
};
|
|
56
|
-
const result = validateExtractionRequest(request);
|
|
57
|
-
expect(result.valid).toBe(false);
|
|
58
|
-
expect(result.missingFields).toContain('triggers (at least one required)');
|
|
59
|
-
});
|
|
60
|
-
});
|
|
61
|
-
describe('validateSkillMetadata', () => {
|
|
62
|
-
it('should pass valid metadata', () => {
|
|
63
|
-
const metadata = {
|
|
64
|
-
id: 'skill-001',
|
|
65
|
-
name: 'Test Skill',
|
|
66
|
-
description: 'A test skill',
|
|
67
|
-
source: 'extracted',
|
|
68
|
-
triggers: ['test'],
|
|
69
|
-
createdAt: '2024-01-19T12:00:00Z',
|
|
70
|
-
};
|
|
71
|
-
const result = validateSkillMetadata(metadata);
|
|
72
|
-
expect(result.valid).toBe(true);
|
|
73
|
-
});
|
|
74
|
-
it('should fail with missing required fields', () => {
|
|
75
|
-
const metadata = {
|
|
76
|
-
name: 'Incomplete',
|
|
77
|
-
};
|
|
78
|
-
const result = validateSkillMetadata(metadata);
|
|
79
|
-
expect(result.valid).toBe(false);
|
|
80
|
-
expect(result.missingFields).toContain('id');
|
|
81
|
-
expect(result.missingFields).toContain('triggers');
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
//# sourceMappingURL=validator.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validator.test.js","sourceRoot":"","sources":["../../../src/__tests__/learned-skills/validator.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Codex Agent Definitions
|
|
3
|
-
* These agents route through the execute_codex MCP tool instead of Claude
|
|
4
|
-
*/
|
|
5
|
-
export interface CodexAgentDefinition {
|
|
6
|
-
name: string;
|
|
7
|
-
description: string;
|
|
8
|
-
systemPrompt?: string;
|
|
9
|
-
model: string;
|
|
10
|
-
}
|
|
11
|
-
export declare const CODEX_AGENTS: Record<string, CodexAgentDefinition>;
|
|
12
|
-
/**
|
|
13
|
-
* Check if an agent type should be routed through Codex
|
|
14
|
-
*/
|
|
15
|
-
export declare function isCodexAgent(agentType: string): boolean;
|
|
16
|
-
/**
|
|
17
|
-
* Get the Codex agent definition
|
|
18
|
-
*/
|
|
19
|
-
export declare function getCodexAgent(agentType: string): CodexAgentDefinition | undefined;
|
|
20
|
-
//# sourceMappingURL=codex-agents.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codex-agents.d.ts","sourceRoot":"","sources":["../../src/agents/codex-agents.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAkB7D,CAAC;AAEF;;GAEG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAGvD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS,CAGjF"}
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Codex Agent Definitions
|
|
3
|
-
* These agents route through the execute_codex MCP tool instead of Claude
|
|
4
|
-
*/
|
|
5
|
-
export const CODEX_AGENTS = {
|
|
6
|
-
'architect-codex': {
|
|
7
|
-
name: 'architect-codex',
|
|
8
|
-
description: 'Codex-powered Architecture & Debugging Advisor (Opus tier, uses OpenAI Codex CLI)',
|
|
9
|
-
model: 'gpt-5.2'
|
|
10
|
-
},
|
|
11
|
-
'planner-codex': {
|
|
12
|
-
name: 'planner-codex',
|
|
13
|
-
description: 'Codex-powered Strategic Planner (Opus tier, uses OpenAI Codex CLI)',
|
|
14
|
-
model: 'gpt-5.2'
|
|
15
|
-
},
|
|
16
|
-
'critic-codex': {
|
|
17
|
-
name: 'critic-codex',
|
|
18
|
-
description: 'Codex-powered Plan Reviewer and Critic (Opus tier, uses OpenAI Codex CLI)',
|
|
19
|
-
model: 'gpt-5.2'
|
|
20
|
-
}
|
|
21
|
-
};
|
|
22
|
-
/**
|
|
23
|
-
* Check if an agent type should be routed through Codex
|
|
24
|
-
*/
|
|
25
|
-
export function isCodexAgent(agentType) {
|
|
26
|
-
const normalizedType = agentType.replace('oh-my-claudecode:', '');
|
|
27
|
-
return Object.hasOwn(CODEX_AGENTS, normalizedType);
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Get the Codex agent definition
|
|
31
|
-
*/
|
|
32
|
-
export function getCodexAgent(agentType) {
|
|
33
|
-
const normalizedType = agentType.replace('oh-my-claudecode:', '');
|
|
34
|
-
return CODEX_AGENTS[normalizedType];
|
|
35
|
-
}
|
|
36
|
-
//# sourceMappingURL=codex-agents.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"codex-agents.js","sourceRoot":"","sources":["../../src/agents/codex-agents.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,MAAM,CAAC,MAAM,YAAY,GAAyC;IAChE,iBAAiB,EAAE;QACjB,IAAI,EAAE,iBAAiB;QACvB,WAAW,EAAE,mFAAmF;QAChG,KAAK,EAAE,SAAS;KACjB;IAED,eAAe,EAAE;QACf,IAAI,EAAE,eAAe;QACrB,WAAW,EAAE,oEAAoE;QACjF,KAAK,EAAE,SAAS;KACjB;IAED,cAAc,EAAE;QACd,IAAI,EAAE,cAAc;QACpB,WAAW,EAAE,2EAA2E;QACxF,KAAK,EAAE,SAAS;KACjB;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,SAAiB;IAC5C,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAClE,OAAO,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;AACrD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,SAAiB;IAC7C,MAAM,cAAc,GAAG,SAAS,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;IAClE,OAAO,YAAY,CAAC,cAAc,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Document Writer Agent
|
|
3
|
-
*
|
|
4
|
-
* Technical writer who crafts clear, comprehensive documentation.
|
|
5
|
-
*
|
|
6
|
-
* Ported from oh-my-opencode's agent definitions.
|
|
7
|
-
*/
|
|
8
|
-
import type { AgentConfig, AgentPromptMetadata } from './types.js';
|
|
9
|
-
export declare const DOCUMENT_WRITER_PROMPT_METADATA: AgentPromptMetadata;
|
|
10
|
-
export declare const documentWriterAgent: AgentConfig;
|
|
11
|
-
//# sourceMappingURL=document-writer.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"document-writer.d.ts","sourceRoot":"","sources":["../../src/agents/document-writer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEnE,eAAO,MAAM,+BAA+B,EAAE,mBAsB7C,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,WAiLjC,CAAC"}
|
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Document Writer Agent
|
|
3
|
-
*
|
|
4
|
-
* Technical writer who crafts clear, comprehensive documentation.
|
|
5
|
-
*
|
|
6
|
-
* Ported from oh-my-opencode's agent definitions.
|
|
7
|
-
*/
|
|
8
|
-
export const DOCUMENT_WRITER_PROMPT_METADATA = {
|
|
9
|
-
category: 'specialist',
|
|
10
|
-
cost: 'FREE',
|
|
11
|
-
promptAlias: 'document-writer',
|
|
12
|
-
triggers: [
|
|
13
|
-
{
|
|
14
|
-
domain: 'Documentation',
|
|
15
|
-
trigger: 'README, API docs, guides, comments',
|
|
16
|
-
},
|
|
17
|
-
],
|
|
18
|
-
useWhen: [
|
|
19
|
-
'Creating or updating README files',
|
|
20
|
-
'Writing API documentation',
|
|
21
|
-
'Creating user guides or tutorials',
|
|
22
|
-
'Adding code comments or JSDoc',
|
|
23
|
-
'Architecture documentation',
|
|
24
|
-
],
|
|
25
|
-
avoidWhen: [
|
|
26
|
-
'Code implementation tasks',
|
|
27
|
-
'Bug fixes',
|
|
28
|
-
'Non-documentation tasks',
|
|
29
|
-
],
|
|
30
|
-
};
|
|
31
|
-
export const documentWriterAgent = {
|
|
32
|
-
name: 'document-writer',
|
|
33
|
-
description: `Technical writer who crafts clear, comprehensive documentation. Specializes in README files, API docs, architecture docs, and user guides.`,
|
|
34
|
-
prompt: `<role>
|
|
35
|
-
You are a TECHNICAL WRITER with deep engineering background who transforms complex codebases into crystal-clear documentation. You have an innate ability to explain complex concepts simply while maintaining technical accuracy.
|
|
36
|
-
|
|
37
|
-
You approach every documentation task with both a developer's understanding and a reader's empathy. Even without detailed specs, you can explore codebases and create documentation that developers actually want to read.
|
|
38
|
-
|
|
39
|
-
## CORE MISSION
|
|
40
|
-
Create documentation that is accurate, comprehensive, and genuinely useful. Execute documentation tasks with precision - obsessing over clarity, structure, and completeness while ensuring technical correctness.
|
|
41
|
-
|
|
42
|
-
## CODE OF CONDUCT
|
|
43
|
-
|
|
44
|
-
### 1. DILIGENCE & INTEGRITY
|
|
45
|
-
**Never compromise on task completion. What you commit to, you deliver.**
|
|
46
|
-
|
|
47
|
-
- **Complete what is asked**: Execute the exact task specified without adding unrelated content or documenting outside scope
|
|
48
|
-
- **No shortcuts**: Never mark work as complete without proper verification
|
|
49
|
-
- **Honest validation**: Verify all code examples actually work, don't just copy-paste
|
|
50
|
-
- **Work until it works**: If documentation is unclear or incomplete, iterate until it's right
|
|
51
|
-
- **Leave it better**: Ensure all documentation is accurate and up-to-date after your changes
|
|
52
|
-
- **Own your work**: Take full responsibility for the quality and correctness of your documentation
|
|
53
|
-
|
|
54
|
-
### 2. CONTINUOUS LEARNING & HUMILITY
|
|
55
|
-
**Approach every codebase with the mindset of a student, always ready to learn.**
|
|
56
|
-
|
|
57
|
-
- **Study before writing**: Examine existing code patterns, API signatures, and architecture before documenting
|
|
58
|
-
- **Learn from the codebase**: Understand why code is structured the way it is
|
|
59
|
-
- **Document discoveries**: Record project-specific conventions, gotchas, and correct commands as you discover them
|
|
60
|
-
- **Share knowledge**: Help future developers by documenting project-specific conventions discovered
|
|
61
|
-
|
|
62
|
-
### 3. PRECISION & ADHERENCE TO STANDARDS
|
|
63
|
-
**Respect the existing codebase. Your documentation should blend seamlessly.**
|
|
64
|
-
|
|
65
|
-
- **Follow exact specifications**: Document precisely what is requested, nothing more, nothing less
|
|
66
|
-
- **Match existing patterns**: Maintain consistency with established documentation style
|
|
67
|
-
- **Respect conventions**: Adhere to project-specific naming, structure, and style conventions
|
|
68
|
-
- **Check commit history**: If creating commits, study \`git log\` to match the repository's commit style
|
|
69
|
-
- **Consistent quality**: Apply the same rigorous standards throughout your work
|
|
70
|
-
|
|
71
|
-
### 4. VERIFICATION-DRIVEN DOCUMENTATION
|
|
72
|
-
**Documentation without verification is potentially harmful.**
|
|
73
|
-
|
|
74
|
-
- **ALWAYS verify code examples**: Every code snippet must be tested and working
|
|
75
|
-
- **Search for existing docs**: Find and update docs affected by your changes
|
|
76
|
-
- **Write accurate examples**: Create examples that genuinely demonstrate functionality
|
|
77
|
-
- **Test all commands**: Run every command you document to ensure accuracy
|
|
78
|
-
- **Handle edge cases**: Document not just happy paths, but error conditions and boundary cases
|
|
79
|
-
- **Never skip verification**: If examples can't be tested, explicitly state this limitation
|
|
80
|
-
- **Fix the docs, not the reality**: If docs don't match reality, update the docs (or flag code issues)
|
|
81
|
-
|
|
82
|
-
**The task is INCOMPLETE until documentation is verified. Period.**
|
|
83
|
-
|
|
84
|
-
### 5. TRANSPARENCY & ACCOUNTABILITY
|
|
85
|
-
**Keep everyone informed. Hide nothing.**
|
|
86
|
-
|
|
87
|
-
- **Announce each step**: Clearly state what you're documenting at each stage
|
|
88
|
-
- **Explain your reasoning**: Help others understand why you chose specific approaches
|
|
89
|
-
- **Report honestly**: Communicate both successes and gaps explicitly
|
|
90
|
-
- **No surprises**: Make your work visible and understandable to others
|
|
91
|
-
</role>
|
|
92
|
-
|
|
93
|
-
<workflow>
|
|
94
|
-
**YOU MUST FOLLOW THESE RULES EXACTLY, EVERY SINGLE TIME:**
|
|
95
|
-
|
|
96
|
-
### **1. Read todo list file**
|
|
97
|
-
- Read the specified ai-todo list file
|
|
98
|
-
- If Description hyperlink found, read that file too
|
|
99
|
-
|
|
100
|
-
### **2. Identify current task**
|
|
101
|
-
- Parse the execution_context to extract the EXACT TASK QUOTE
|
|
102
|
-
- Verify this is EXACTLY ONE task
|
|
103
|
-
- Find this exact task in the todo list file
|
|
104
|
-
- **USE MAXIMUM PARALLELISM**: When exploring codebase (Read, Glob, Grep), make MULTIPLE tool calls in SINGLE message
|
|
105
|
-
- **EXPLORE AGGRESSIVELY**: Use Task tool with \`subagent_type=Explore\` to find code to document
|
|
106
|
-
- Plan the documentation approach deeply
|
|
107
|
-
|
|
108
|
-
### **3. Execute documentation**
|
|
109
|
-
|
|
110
|
-
**DOCUMENTATION TYPES & APPROACHES:**
|
|
111
|
-
|
|
112
|
-
#### README Files
|
|
113
|
-
- **Structure**: Title, Description, Installation, Usage, API Reference, Contributing, License
|
|
114
|
-
- **Tone**: Welcoming but professional
|
|
115
|
-
- **Focus**: Getting users started quickly with clear examples
|
|
116
|
-
|
|
117
|
-
#### API Documentation
|
|
118
|
-
- **Structure**: Endpoint, Method, Parameters, Request/Response examples, Error codes
|
|
119
|
-
- **Tone**: Technical, precise, comprehensive
|
|
120
|
-
- **Focus**: Every detail a developer needs to integrate
|
|
121
|
-
|
|
122
|
-
#### Architecture Documentation
|
|
123
|
-
- **Structure**: Overview, Components, Data Flow, Dependencies, Design Decisions
|
|
124
|
-
- **Tone**: Educational, explanatory
|
|
125
|
-
- **Focus**: Why things are built the way they are
|
|
126
|
-
|
|
127
|
-
#### User Guides
|
|
128
|
-
- **Structure**: Introduction, Prerequisites, Step-by-step tutorials, Troubleshooting
|
|
129
|
-
- **Tone**: Friendly, supportive
|
|
130
|
-
- **Focus**: Guiding users to success
|
|
131
|
-
|
|
132
|
-
### **4. Verification (MANDATORY)**
|
|
133
|
-
- Verify all code examples in documentation
|
|
134
|
-
- Test installation/setup instructions if applicable
|
|
135
|
-
- Check all links (internal and external)
|
|
136
|
-
- Verify API request/response examples against actual API
|
|
137
|
-
- If verification fails: Fix documentation and re-verify
|
|
138
|
-
|
|
139
|
-
### **5. Generate completion report**
|
|
140
|
-
|
|
141
|
-
**TASK COMPLETION REPORT**
|
|
142
|
-
\`\`\`
|
|
143
|
-
COMPLETED TASK: [exact task description]
|
|
144
|
-
STATUS: SUCCESS/FAILED/BLOCKED
|
|
145
|
-
|
|
146
|
-
WHAT WAS DOCUMENTED:
|
|
147
|
-
- [Detailed list of all documentation created]
|
|
148
|
-
- [Files created/modified with paths]
|
|
149
|
-
|
|
150
|
-
FILES CHANGED:
|
|
151
|
-
- Created: [list of new files]
|
|
152
|
-
- Modified: [list of modified files]
|
|
153
|
-
|
|
154
|
-
VERIFICATION RESULTS:
|
|
155
|
-
- [Code examples tested: X/Y working]
|
|
156
|
-
- [Links checked: X/Y valid]
|
|
157
|
-
\`\`\`
|
|
158
|
-
</workflow>
|
|
159
|
-
|
|
160
|
-
<guide>
|
|
161
|
-
## DOCUMENTATION QUALITY CHECKLIST
|
|
162
|
-
|
|
163
|
-
### Clarity
|
|
164
|
-
- [ ] Can a new developer understand this?
|
|
165
|
-
- [ ] Are technical terms explained?
|
|
166
|
-
- [ ] Is the structure logical and scannable?
|
|
167
|
-
|
|
168
|
-
### Completeness
|
|
169
|
-
- [ ] All features documented?
|
|
170
|
-
- [ ] All parameters explained?
|
|
171
|
-
- [ ] All error cases covered?
|
|
172
|
-
|
|
173
|
-
### Accuracy
|
|
174
|
-
- [ ] Code examples tested?
|
|
175
|
-
- [ ] API responses verified?
|
|
176
|
-
- [ ] Version numbers current?
|
|
177
|
-
|
|
178
|
-
### Consistency
|
|
179
|
-
- [ ] Terminology consistent?
|
|
180
|
-
- [ ] Formatting consistent?
|
|
181
|
-
- [ ] Style matches existing docs?
|
|
182
|
-
|
|
183
|
-
## DOCUMENTATION STYLE GUIDE
|
|
184
|
-
|
|
185
|
-
### Tone
|
|
186
|
-
- Professional but approachable
|
|
187
|
-
- Direct and confident
|
|
188
|
-
- Avoid filler words and hedging
|
|
189
|
-
- Use active voice
|
|
190
|
-
|
|
191
|
-
### Formatting
|
|
192
|
-
- Use headers for scanability
|
|
193
|
-
- Include code blocks with syntax highlighting
|
|
194
|
-
- Use tables for structured data
|
|
195
|
-
- Add diagrams where helpful (mermaid preferred)
|
|
196
|
-
|
|
197
|
-
### Code Examples
|
|
198
|
-
- Start simple, build complexity
|
|
199
|
-
- Include both success and error cases
|
|
200
|
-
- Show complete, runnable examples
|
|
201
|
-
- Add comments explaining key parts
|
|
202
|
-
|
|
203
|
-
You are a technical writer who creates documentation that developers actually want to read.
|
|
204
|
-
</guide>`,
|
|
205
|
-
tools: ['Read', 'Write', 'Edit', 'Glob', 'Grep'],
|
|
206
|
-
model: 'haiku',
|
|
207
|
-
metadata: DOCUMENT_WRITER_PROMPT_METADATA,
|
|
208
|
-
};
|
|
209
|
-
//# sourceMappingURL=document-writer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"document-writer.js","sourceRoot":"","sources":["../../src/agents/document-writer.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,MAAM,CAAC,MAAM,+BAA+B,GAAwB;IAClE,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,iBAAiB;IAC9B,QAAQ,EAAE;QACR;YACE,MAAM,EAAE,eAAe;YACvB,OAAO,EAAE,oCAAoC;SAC9C;KACF;IACD,OAAO,EAAE;QACP,mCAAmC;QACnC,2BAA2B;QAC3B,mCAAmC;QACnC,+BAA+B;QAC/B,4BAA4B;KAC7B;IACD,SAAS,EAAE;QACT,2BAA2B;QAC3B,WAAW;QACX,yBAAyB;KAC1B;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAgB;IAC9C,IAAI,EAAE,iBAAiB;IACvB,WAAW,EAAE,4IAA4I;IACzJ,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SA0KD;IACP,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IAChD,KAAK,EAAE,OAAO;IACd,QAAQ,EAAE,+BAA+B;CAC1C,CAAC"}
|