oh-my-claude-sisyphus 2.6.0 → 3.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 +59 -708
- package/agents/analyst.md +85 -0
- package/agents/architect-low.md +88 -0
- package/agents/architect-medium.md +108 -0
- package/agents/architect.md +77 -0
- package/agents/critic.md +97 -0
- package/agents/designer-high.md +113 -0
- package/agents/designer-low.md +89 -0
- package/agents/designer.md +80 -0
- package/agents/executor-high.md +116 -0
- package/agents/executor-low.md +94 -0
- package/agents/executor.md +62 -0
- package/agents/explore-medium.md +113 -0
- package/agents/explore.md +86 -0
- package/agents/planner.md +164 -0
- package/agents/qa-tester.md +109 -0
- package/agents/researcher-low.md +84 -0
- package/agents/researcher.md +70 -0
- package/agents/vision.md +39 -0
- package/agents/writer.md +152 -0
- package/commands/.gitkeep +0 -0
- package/dist/__tests__/hooks.test.js +22 -22
- package/dist/__tests__/hooks.test.js.map +1 -1
- package/dist/__tests__/hud-agents.test.d.ts +7 -0
- package/dist/__tests__/hud-agents.test.d.ts.map +1 -0
- package/dist/__tests__/hud-agents.test.js +363 -0
- package/dist/__tests__/hud-agents.test.js.map +1 -0
- package/dist/__tests__/installer.test.js +184 -116
- package/dist/__tests__/installer.test.js.map +1 -1
- package/dist/__tests__/learned-skills/config.test.d.ts +2 -0
- package/dist/__tests__/learned-skills/config.test.d.ts.map +1 -0
- package/dist/__tests__/learned-skills/config.test.js +37 -0
- package/dist/__tests__/learned-skills/config.test.js.map +1 -0
- package/dist/__tests__/learned-skills/detector.test.d.ts +2 -0
- package/dist/__tests__/learned-skills/detector.test.d.ts.map +1 -0
- package/dist/__tests__/learned-skills/detector.test.js +99 -0
- package/dist/__tests__/learned-skills/detector.test.js.map +1 -0
- package/dist/__tests__/learned-skills/finder.test.d.ts +2 -0
- package/dist/__tests__/learned-skills/finder.test.d.ts.map +1 -0
- package/dist/__tests__/learned-skills/finder.test.js +59 -0
- package/dist/__tests__/learned-skills/finder.test.js.map +1 -0
- package/dist/__tests__/learned-skills/loader.test.d.ts +2 -0
- package/dist/__tests__/learned-skills/loader.test.d.ts.map +1 -0
- package/dist/__tests__/learned-skills/loader.test.js +69 -0
- package/dist/__tests__/learned-skills/loader.test.js.map +1 -0
- package/dist/__tests__/learned-skills/parser.test.d.ts +2 -0
- package/dist/__tests__/learned-skills/parser.test.d.ts.map +1 -0
- package/dist/__tests__/learned-skills/parser.test.js +81 -0
- package/dist/__tests__/learned-skills/parser.test.js.map +1 -0
- package/dist/__tests__/learned-skills/validator.test.d.ts +2 -0
- package/dist/__tests__/learned-skills/validator.test.d.ts.map +1 -0
- package/dist/__tests__/learned-skills/validator.test.js +85 -0
- package/dist/__tests__/learned-skills/validator.test.js.map +1 -0
- package/dist/__tests__/mnemosyne/config.test.d.ts +2 -0
- package/dist/__tests__/mnemosyne/config.test.d.ts.map +1 -0
- package/dist/__tests__/mnemosyne/config.test.js +37 -0
- package/dist/__tests__/mnemosyne/config.test.js.map +1 -0
- package/dist/__tests__/mnemosyne/detector.test.d.ts +2 -0
- package/dist/__tests__/mnemosyne/detector.test.d.ts.map +1 -0
- package/dist/__tests__/mnemosyne/detector.test.js +99 -0
- package/dist/__tests__/mnemosyne/detector.test.js.map +1 -0
- package/dist/__tests__/mnemosyne/finder.test.d.ts +2 -0
- package/dist/__tests__/mnemosyne/finder.test.d.ts.map +1 -0
- package/dist/__tests__/mnemosyne/finder.test.js +61 -0
- package/dist/__tests__/mnemosyne/finder.test.js.map +1 -0
- package/dist/__tests__/mnemosyne/loader.test.d.ts +2 -0
- package/dist/__tests__/mnemosyne/loader.test.d.ts.map +1 -0
- package/dist/__tests__/mnemosyne/loader.test.js +73 -0
- package/dist/__tests__/mnemosyne/loader.test.js.map +1 -0
- package/dist/__tests__/mnemosyne/parser.test.d.ts +2 -0
- package/dist/__tests__/mnemosyne/parser.test.d.ts.map +1 -0
- package/dist/__tests__/mnemosyne/parser.test.js +81 -0
- package/dist/__tests__/mnemosyne/parser.test.js.map +1 -0
- package/dist/__tests__/mnemosyne/validator.test.d.ts +2 -0
- package/dist/__tests__/mnemosyne/validator.test.d.ts.map +1 -0
- package/dist/__tests__/mnemosyne/validator.test.js +85 -0
- package/dist/__tests__/mnemosyne/validator.test.js.map +1 -0
- package/dist/__tests__/model-routing.test.js +34 -34
- package/dist/__tests__/model-routing.test.js.map +1 -1
- package/dist/__tests__/notepad.test.js +7 -7
- package/dist/__tests__/notepad.test.js.map +1 -1
- package/dist/__tests__/ralph-prd.test.js +12 -12
- package/dist/__tests__/ralph-prd.test.js.map +1 -1
- package/dist/__tests__/ralph-progress.test.js +12 -12
- package/dist/__tests__/ralph-progress.test.js.map +1 -1
- package/dist/__tests__/skills.test.js +50 -17
- package/dist/__tests__/skills.test.js.map +1 -1
- package/dist/__tests__/types.test.js +5 -5
- package/dist/__tests__/types.test.js.map +1 -1
- package/dist/agents/analyst.d.ts +11 -0
- package/dist/agents/analyst.d.ts.map +1 -0
- package/dist/agents/analyst.js +115 -0
- package/dist/agents/analyst.js.map +1 -0
- package/dist/agents/architect.d.ts +12 -0
- package/dist/agents/architect.d.ts.map +1 -0
- package/dist/agents/architect.js +189 -0
- package/dist/agents/architect.js.map +1 -0
- package/dist/agents/coordinator.d.ts +11 -0
- package/dist/agents/coordinator.d.ts.map +1 -0
- package/dist/agents/coordinator.js +115 -0
- package/dist/agents/coordinator.js.map +1 -0
- package/dist/agents/critic.d.ts +11 -0
- package/dist/agents/critic.d.ts.map +1 -0
- package/dist/agents/critic.js +127 -0
- package/dist/agents/critic.js.map +1 -0
- package/dist/agents/definitions.d.ts +33 -70
- package/dist/agents/definitions.d.ts.map +1 -1
- package/dist/agents/definitions.js +140 -1268
- package/dist/agents/definitions.js.map +1 -1
- package/dist/agents/designer.d.ts +11 -0
- package/dist/agents/designer.d.ts.map +1 -0
- package/dist/agents/designer.js +115 -0
- package/dist/agents/designer.js.map +1 -0
- package/dist/agents/executor.d.ts +12 -0
- package/dist/agents/executor.d.ts.map +1 -0
- package/dist/agents/executor.js +93 -0
- package/dist/agents/executor.js.map +1 -0
- package/dist/agents/explore.js +4 -4
- package/dist/agents/explore.js.map +1 -1
- package/dist/agents/index.d.ts +12 -11
- package/dist/agents/index.d.ts.map +1 -1
- package/dist/agents/index.js +15 -16
- package/dist/agents/index.js.map +1 -1
- package/dist/agents/planner.d.ts +11 -0
- package/dist/agents/planner.d.ts.map +1 -0
- package/dist/agents/planner.js +194 -0
- package/dist/agents/planner.js.map +1 -0
- package/dist/agents/qa-tester.js +16 -16
- package/dist/agents/qa-tester.js.map +1 -1
- package/dist/agents/researcher.d.ts +12 -0
- package/dist/agents/researcher.d.ts.map +1 -0
- package/dist/agents/researcher.js +103 -0
- package/dist/agents/researcher.js.map +1 -0
- package/dist/agents/vision.d.ts +11 -0
- package/dist/agents/vision.d.ts.map +1 -0
- package/dist/agents/vision.js +70 -0
- package/dist/agents/vision.js.map +1 -0
- package/dist/agents/writer.d.ts +11 -0
- package/dist/agents/writer.d.ts.map +1 -0
- package/dist/agents/writer.js +209 -0
- package/dist/agents/writer.js.map +1 -0
- package/dist/cli/index.js +32 -32
- package/dist/cli/index.js.map +1 -1
- package/dist/commands/index.d.ts +4 -4
- package/dist/commands/index.js +4 -4
- package/dist/config/loader.js +25 -25
- package/dist/config/loader.js.map +1 -1
- package/dist/features/auto-update.d.ts +5 -5
- package/dist/features/auto-update.d.ts.map +1 -1
- package/dist/features/auto-update.js +17 -17
- package/dist/features/auto-update.js.map +1 -1
- package/dist/features/background-agent/manager.js +1 -1
- package/dist/features/background-agent/manager.js.map +1 -1
- package/dist/features/boulder-state/constants.d.ts +5 -5
- package/dist/features/boulder-state/constants.d.ts.map +1 -1
- package/dist/features/boulder-state/constants.js +3 -3
- package/dist/features/boulder-state/constants.js.map +1 -1
- package/dist/features/boulder-state/index.d.ts +2 -2
- package/dist/features/boulder-state/index.d.ts.map +1 -1
- package/dist/features/boulder-state/index.js +2 -2
- package/dist/features/boulder-state/index.js.map +1 -1
- package/dist/features/boulder-state/storage.d.ts +3 -3
- package/dist/features/boulder-state/storage.d.ts.map +1 -1
- package/dist/features/boulder-state/storage.js +6 -6
- package/dist/features/boulder-state/storage.js.map +1 -1
- package/dist/features/builtin-skills/skills.d.ts +15 -1
- package/dist/features/builtin-skills/skills.d.ts.map +1 -1
- package/dist/features/builtin-skills/skills.js +100 -1110
- package/dist/features/builtin-skills/skills.js.map +1 -1
- package/dist/features/context-injector/types.d.ts +1 -1
- package/dist/features/context-injector/types.d.ts.map +1 -1
- package/dist/features/index.d.ts +1 -1
- package/dist/features/index.d.ts.map +1 -1
- package/dist/features/index.js +2 -2
- package/dist/features/index.js.map +1 -1
- package/dist/features/magic-keywords.js +14 -14
- package/dist/features/magic-keywords.js.map +1 -1
- package/dist/features/model-routing/prompts/opus.d.ts +1 -1
- package/dist/features/model-routing/prompts/opus.d.ts.map +1 -1
- package/dist/features/model-routing/prompts/opus.js +1 -1
- package/dist/features/model-routing/router.d.ts +1 -1
- package/dist/features/model-routing/router.js +14 -14
- package/dist/features/model-routing/router.js.map +1 -1
- package/dist/features/model-routing/rules.js +31 -31
- package/dist/features/model-routing/rules.js.map +1 -1
- package/dist/features/model-routing/types.js +1 -1
- package/dist/features/model-routing/types.js.map +1 -1
- package/dist/hooks/agent-usage-reminder/constants.d.ts +2 -2
- package/dist/hooks/agent-usage-reminder/constants.d.ts.map +1 -1
- package/dist/hooks/agent-usage-reminder/constants.js +5 -5
- package/dist/hooks/agent-usage-reminder/constants.js.map +1 -1
- package/dist/hooks/auto-slash-command/constants.d.ts +1 -1
- package/dist/hooks/auto-slash-command/constants.d.ts.map +1 -1
- package/dist/hooks/auto-slash-command/constants.js +9 -2
- package/dist/hooks/auto-slash-command/constants.js.map +1 -1
- package/dist/hooks/bridge.d.ts +2 -2
- package/dist/hooks/bridge.d.ts.map +1 -1
- package/dist/hooks/bridge.js +50 -18
- package/dist/hooks/bridge.js.map +1 -1
- package/dist/hooks/directory-readme-injector/constants.d.ts +1 -1
- package/dist/hooks/directory-readme-injector/constants.d.ts.map +1 -1
- package/dist/hooks/directory-readme-injector/constants.js +2 -2
- package/dist/hooks/directory-readme-injector/constants.js.map +1 -1
- package/dist/hooks/index.d.ts +3 -2
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +9 -4
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/learned-skills/config.d.ts +53 -0
- package/dist/hooks/learned-skills/config.d.ts.map +1 -0
- package/dist/hooks/learned-skills/config.js +103 -0
- package/dist/hooks/learned-skills/config.js.map +1 -0
- package/dist/hooks/learned-skills/constants.d.ts +24 -0
- package/dist/hooks/learned-skills/constants.d.ts.map +1 -0
- package/dist/hooks/learned-skills/constants.js +26 -0
- package/dist/hooks/learned-skills/constants.js.map +1 -0
- package/dist/hooks/learned-skills/detection-hook.d.ts +39 -0
- package/dist/hooks/learned-skills/detection-hook.d.ts.map +1 -0
- package/dist/hooks/learned-skills/detection-hook.js +83 -0
- package/dist/hooks/learned-skills/detection-hook.js.map +1 -0
- package/dist/hooks/learned-skills/detector.d.ts +30 -0
- package/dist/hooks/learned-skills/detector.d.ts.map +1 -0
- package/dist/hooks/learned-skills/detector.js +150 -0
- package/dist/hooks/learned-skills/detector.js.map +1 -0
- package/dist/hooks/learned-skills/finder.d.ts +21 -0
- package/dist/hooks/learned-skills/finder.d.ts.map +1 -0
- package/dist/hooks/learned-skills/finder.js +117 -0
- package/dist/hooks/learned-skills/finder.js.map +1 -0
- package/dist/hooks/learned-skills/index.d.ts +62 -0
- package/dist/hooks/learned-skills/index.d.ts.map +1 -0
- package/dist/hooks/learned-skills/index.js +137 -0
- package/dist/hooks/learned-skills/index.js.map +1 -0
- package/dist/hooks/learned-skills/loader.d.ts +20 -0
- package/dist/hooks/learned-skills/loader.d.ts.map +1 -0
- package/dist/hooks/learned-skills/loader.js +107 -0
- package/dist/hooks/learned-skills/loader.js.map +1 -0
- package/dist/hooks/learned-skills/parser.d.ts +21 -0
- package/dist/hooks/learned-skills/parser.d.ts.map +1 -0
- package/dist/hooks/learned-skills/parser.js +190 -0
- package/dist/hooks/learned-skills/parser.js.map +1 -0
- package/dist/hooks/learned-skills/promotion.d.ts +29 -0
- package/dist/hooks/learned-skills/promotion.d.ts.map +1 -0
- package/dist/hooks/learned-skills/promotion.js +87 -0
- package/dist/hooks/learned-skills/promotion.js.map +1 -0
- package/dist/hooks/learned-skills/types.d.ts +109 -0
- package/dist/hooks/learned-skills/types.d.ts.map +1 -0
- package/dist/hooks/learned-skills/types.js +8 -0
- package/dist/hooks/learned-skills/types.js.map +1 -0
- package/dist/hooks/learned-skills/validator.d.ts +15 -0
- package/dist/hooks/learned-skills/validator.d.ts.map +1 -0
- package/dist/hooks/learned-skills/validator.js +87 -0
- package/dist/hooks/learned-skills/validator.js.map +1 -0
- package/dist/hooks/learned-skills/writer.d.ts +27 -0
- package/dist/hooks/learned-skills/writer.d.ts.map +1 -0
- package/dist/hooks/learned-skills/writer.js +126 -0
- package/dist/hooks/learned-skills/writer.js.map +1 -0
- package/dist/hooks/learner/config.d.ts +53 -0
- package/dist/hooks/learner/config.d.ts.map +1 -0
- package/dist/hooks/learner/config.js +103 -0
- package/dist/hooks/learner/config.js.map +1 -0
- package/dist/hooks/learner/constants.d.ts +24 -0
- package/dist/hooks/learner/constants.d.ts.map +1 -0
- package/dist/hooks/learner/constants.js +26 -0
- package/dist/hooks/learner/constants.js.map +1 -0
- package/dist/hooks/learner/detection-hook.d.ts +39 -0
- package/dist/hooks/learner/detection-hook.d.ts.map +1 -0
- package/dist/hooks/learner/detection-hook.js +83 -0
- package/dist/hooks/learner/detection-hook.js.map +1 -0
- package/dist/hooks/learner/detector.d.ts +30 -0
- package/dist/hooks/learner/detector.d.ts.map +1 -0
- package/dist/hooks/learner/detector.js +150 -0
- package/dist/hooks/learner/detector.js.map +1 -0
- package/dist/hooks/learner/finder.d.ts +21 -0
- package/dist/hooks/learner/finder.d.ts.map +1 -0
- package/dist/hooks/learner/finder.js +117 -0
- package/dist/hooks/learner/finder.js.map +1 -0
- package/dist/hooks/learner/index.d.ts +62 -0
- package/dist/hooks/learner/index.d.ts.map +1 -0
- package/dist/hooks/learner/index.js +137 -0
- package/dist/hooks/learner/index.js.map +1 -0
- package/dist/hooks/learner/loader.d.ts +20 -0
- package/dist/hooks/learner/loader.d.ts.map +1 -0
- package/dist/hooks/learner/loader.js +113 -0
- package/dist/hooks/learner/loader.js.map +1 -0
- package/dist/hooks/learner/parser.d.ts +21 -0
- package/dist/hooks/learner/parser.d.ts.map +1 -0
- package/dist/hooks/learner/parser.js +190 -0
- package/dist/hooks/learner/parser.js.map +1 -0
- package/dist/hooks/learner/promotion.d.ts +29 -0
- package/dist/hooks/learner/promotion.d.ts.map +1 -0
- package/dist/hooks/learner/promotion.js +87 -0
- package/dist/hooks/learner/promotion.js.map +1 -0
- package/dist/hooks/learner/types.d.ts +109 -0
- package/dist/hooks/learner/types.d.ts.map +1 -0
- package/dist/hooks/learner/types.js +8 -0
- package/dist/hooks/learner/types.js.map +1 -0
- package/dist/hooks/learner/validator.d.ts +15 -0
- package/dist/hooks/learner/validator.d.ts.map +1 -0
- package/dist/hooks/learner/validator.js +87 -0
- package/dist/hooks/learner/validator.js.map +1 -0
- package/dist/hooks/learner/writer.d.ts +27 -0
- package/dist/hooks/learner/writer.d.ts.map +1 -0
- package/dist/hooks/learner/writer.js +126 -0
- package/dist/hooks/learner/writer.js.map +1 -0
- package/dist/hooks/mnemosyne/config.d.ts +53 -0
- package/dist/hooks/mnemosyne/config.d.ts.map +1 -0
- package/dist/hooks/mnemosyne/config.js +103 -0
- package/dist/hooks/mnemosyne/config.js.map +1 -0
- package/dist/hooks/mnemosyne/constants.d.ts +24 -0
- package/dist/hooks/mnemosyne/constants.d.ts.map +1 -0
- package/dist/hooks/mnemosyne/constants.js +26 -0
- package/dist/hooks/mnemosyne/constants.js.map +1 -0
- package/dist/hooks/mnemosyne/detection-hook.d.ts +39 -0
- package/dist/hooks/mnemosyne/detection-hook.d.ts.map +1 -0
- package/dist/hooks/mnemosyne/detection-hook.js +83 -0
- package/dist/hooks/mnemosyne/detection-hook.js.map +1 -0
- package/dist/hooks/mnemosyne/detector.d.ts +30 -0
- package/dist/hooks/mnemosyne/detector.d.ts.map +1 -0
- package/dist/hooks/mnemosyne/detector.js +150 -0
- package/dist/hooks/mnemosyne/detector.js.map +1 -0
- package/dist/hooks/mnemosyne/finder.d.ts +21 -0
- package/dist/hooks/mnemosyne/finder.d.ts.map +1 -0
- package/dist/hooks/mnemosyne/finder.js +117 -0
- package/dist/hooks/mnemosyne/finder.js.map +1 -0
- package/dist/hooks/mnemosyne/index.d.ts +62 -0
- package/dist/hooks/mnemosyne/index.d.ts.map +1 -0
- package/dist/hooks/mnemosyne/index.js +137 -0
- package/dist/hooks/mnemosyne/index.js.map +1 -0
- package/dist/hooks/mnemosyne/loader.d.ts +20 -0
- package/dist/hooks/mnemosyne/loader.d.ts.map +1 -0
- package/dist/hooks/mnemosyne/loader.js +113 -0
- package/dist/hooks/mnemosyne/loader.js.map +1 -0
- package/dist/hooks/mnemosyne/parser.d.ts +21 -0
- package/dist/hooks/mnemosyne/parser.d.ts.map +1 -0
- package/dist/hooks/mnemosyne/parser.js +190 -0
- package/dist/hooks/mnemosyne/parser.js.map +1 -0
- package/dist/hooks/mnemosyne/promotion.d.ts +29 -0
- package/dist/hooks/mnemosyne/promotion.d.ts.map +1 -0
- package/dist/hooks/mnemosyne/promotion.js +87 -0
- package/dist/hooks/mnemosyne/promotion.js.map +1 -0
- package/dist/hooks/mnemosyne/types.d.ts +109 -0
- package/dist/hooks/mnemosyne/types.d.ts.map +1 -0
- package/dist/hooks/mnemosyne/types.js +8 -0
- package/dist/hooks/mnemosyne/types.js.map +1 -0
- package/dist/hooks/mnemosyne/validator.d.ts +15 -0
- package/dist/hooks/mnemosyne/validator.d.ts.map +1 -0
- package/dist/hooks/mnemosyne/validator.js +87 -0
- package/dist/hooks/mnemosyne/validator.js.map +1 -0
- package/dist/hooks/mnemosyne/writer.d.ts +27 -0
- package/dist/hooks/mnemosyne/writer.d.ts.map +1 -0
- package/dist/hooks/mnemosyne/writer.js +126 -0
- package/dist/hooks/mnemosyne/writer.js.map +1 -0
- package/dist/hooks/notepad/index.d.ts +2 -2
- package/dist/hooks/notepad/index.js +7 -7
- package/dist/hooks/notepad/index.js.map +1 -1
- package/dist/hooks/omc-orchestrator/constants.d.ts +23 -0
- package/dist/hooks/omc-orchestrator/constants.d.ts.map +1 -0
- package/dist/hooks/omc-orchestrator/constants.js +142 -0
- package/dist/hooks/omc-orchestrator/constants.js.map +1 -0
- package/dist/hooks/omc-orchestrator/index.d.ts +113 -0
- package/dist/hooks/omc-orchestrator/index.d.ts.map +1 -0
- package/dist/hooks/omc-orchestrator/index.js +309 -0
- package/dist/hooks/omc-orchestrator/index.js.map +1 -0
- package/dist/hooks/persistent-mode/index.d.ts +4 -4
- package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
- package/dist/hooks/persistent-mode/index.js +37 -37
- package/dist/hooks/persistent-mode/index.js.map +1 -1
- package/dist/hooks/ralph-loop/index.d.ts +33 -5
- package/dist/hooks/ralph-loop/index.d.ts.map +1 -1
- package/dist/hooks/ralph-loop/index.js +91 -17
- package/dist/hooks/ralph-loop/index.js.map +1 -1
- package/dist/hooks/ralph-prd/index.d.ts +4 -4
- package/dist/hooks/ralph-prd/index.d.ts.map +1 -1
- package/dist/hooks/ralph-prd/index.js +13 -13
- package/dist/hooks/ralph-prd/index.js.map +1 -1
- package/dist/hooks/ralph-progress/index.d.ts +5 -5
- package/dist/hooks/ralph-progress/index.d.ts.map +1 -1
- package/dist/hooks/ralph-progress/index.js +14 -14
- package/dist/hooks/ralph-progress/index.js.map +1 -1
- package/dist/hooks/ralph-verifier/index.d.ts +23 -23
- package/dist/hooks/ralph-verifier/index.d.ts.map +1 -1
- package/dist/hooks/ralph-verifier/index.js +41 -41
- package/dist/hooks/ralph-verifier/index.js.map +1 -1
- package/dist/hooks/rules-injector/constants.d.ts +1 -1
- package/dist/hooks/rules-injector/constants.d.ts.map +1 -1
- package/dist/hooks/rules-injector/constants.js +2 -2
- package/dist/hooks/rules-injector/constants.js.map +1 -1
- package/dist/hooks/todo-continuation/index.js +1 -1
- package/dist/hooks/todo-continuation/index.js.map +1 -1
- package/dist/hooks/ultraqa-loop/index.d.ts +1 -1
- package/dist/hooks/ultraqa-loop/index.js +8 -8
- package/dist/hooks/ultraqa-loop/index.js.map +1 -1
- package/dist/hooks/ultrawork-state/index.js +7 -7
- package/dist/hooks/ultrawork-state/index.js.map +1 -1
- package/dist/hud/background-tasks.d.ts +26 -0
- package/dist/hud/background-tasks.d.ts.map +1 -0
- package/dist/hud/background-tasks.js +116 -0
- package/dist/hud/background-tasks.js.map +1 -0
- package/dist/hud/colors.d.ts +54 -0
- package/dist/hud/colors.d.ts.map +1 -0
- package/dist/hud/colors.js +156 -0
- package/dist/hud/colors.js.map +1 -0
- package/dist/hud/elements/agents.d.ts +73 -0
- package/dist/hud/elements/agents.d.ts.map +1 -0
- package/dist/hud/elements/agents.js +405 -0
- package/dist/hud/elements/agents.js.map +1 -0
- package/dist/hud/elements/background.d.ts +20 -0
- package/dist/hud/elements/background.d.ts.map +1 -0
- package/dist/hud/elements/background.js +70 -0
- package/dist/hud/elements/background.js.map +1 -0
- package/dist/hud/elements/context.d.ts +19 -0
- package/dist/hud/elements/context.d.ts.map +1 -0
- package/dist/hud/elements/context.js +58 -0
- package/dist/hud/elements/context.js.map +1 -0
- package/dist/hud/elements/index.d.ts +17 -0
- package/dist/hud/elements/index.d.ts.map +1 -0
- package/dist/hud/elements/index.js +17 -0
- package/dist/hud/elements/index.js.map +1 -0
- package/dist/hud/elements/limits.d.ts +19 -0
- package/dist/hud/elements/limits.d.ts.map +1 -0
- package/dist/hud/elements/limits.js +54 -0
- package/dist/hud/elements/limits.js.map +1 -0
- package/dist/hud/elements/permission.d.ts +13 -0
- package/dist/hud/elements/permission.d.ts.map +1 -0
- package/dist/hud/elements/permission.js +20 -0
- package/dist/hud/elements/permission.js.map +1 -0
- package/dist/hud/elements/prd.d.ts +20 -0
- package/dist/hud/elements/prd.d.ts.map +1 -0
- package/dist/hud/elements/prd.js +52 -0
- package/dist/hud/elements/prd.js.map +1 -0
- package/dist/hud/elements/ralph.d.ts +14 -0
- package/dist/hud/elements/ralph.d.ts.map +1 -0
- package/dist/hud/elements/ralph.js +36 -0
- package/dist/hud/elements/ralph.js.map +1 -0
- package/dist/hud/elements/session.d.ts +13 -0
- package/dist/hud/elements/session.d.ts.map +1 -0
- package/dist/hud/elements/session.js +24 -0
- package/dist/hud/elements/session.js.map +1 -0
- package/dist/hud/elements/skills.d.ts +24 -0
- package/dist/hud/elements/skills.d.ts.map +1 -0
- package/dist/hud/elements/skills.js +81 -0
- package/dist/hud/elements/skills.js.map +1 -0
- package/dist/hud/elements/thinking.d.ts +13 -0
- package/dist/hud/elements/thinking.d.ts.map +1 -0
- package/dist/hud/elements/thinking.js +19 -0
- package/dist/hud/elements/thinking.js.map +1 -0
- package/dist/hud/elements/todos.d.ts +20 -0
- package/dist/hud/elements/todos.d.ts.map +1 -0
- package/dist/hud/elements/todos.js +70 -0
- package/dist/hud/elements/todos.js.map +1 -0
- package/dist/hud/index.d.ts +9 -0
- package/dist/hud/index.d.ts.map +1 -0
- package/dist/hud/index.js +89 -0
- package/dist/hud/index.js.map +1 -0
- package/dist/hud/omc-state.d.ts +31 -0
- package/dist/hud/omc-state.d.ts.map +1 -0
- package/dist/hud/omc-state.js +163 -0
- package/dist/hud/omc-state.js.map +1 -0
- package/dist/hud/render.d.ts +11 -0
- package/dist/hud/render.d.ts.map +1 -0
- package/dist/hud/render.js +121 -0
- package/dist/hud/render.js.map +1 -0
- package/dist/hud/sisyphus-state.d.ts +31 -0
- package/dist/hud/sisyphus-state.d.ts.map +1 -0
- package/dist/hud/sisyphus-state.js +163 -0
- package/dist/hud/sisyphus-state.js.map +1 -0
- package/dist/hud/state.d.ts +43 -0
- package/dist/hud/state.d.ts.map +1 -0
- package/dist/hud/state.js +201 -0
- package/dist/hud/state.js.map +1 -0
- package/dist/hud/stdin.d.ts +22 -0
- package/dist/hud/stdin.d.ts.map +1 -0
- package/dist/hud/stdin.js +65 -0
- package/dist/hud/stdin.js.map +1 -0
- package/dist/hud/transcript.d.ts +32 -0
- package/dist/hud/transcript.d.ts.map +1 -0
- package/dist/hud/transcript.js +364 -0
- package/dist/hud/transcript.js.map +1 -0
- package/dist/hud/types.d.ts +178 -0
- package/dist/hud/types.d.ts.map +1 -0
- package/dist/hud/types.js +119 -0
- package/dist/hud/types.js.map +1 -0
- package/dist/hud/usage-api.d.ts +24 -0
- package/dist/hud/usage-api.d.ts.map +1 -0
- package/dist/hud/usage-api.js +234 -0
- package/dist/hud/usage-api.js.map +1 -0
- package/dist/index.d.ts +7 -7
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +10 -12
- package/dist/index.js.map +1 -1
- package/dist/installer/hooks.d.ts +36 -64
- package/dist/installer/hooks.d.ts.map +1 -1
- package/dist/installer/hooks.js +91 -1298
- package/dist/installer/hooks.js.map +1 -1
- package/dist/installer/index.d.ts +23 -22
- package/dist/installer/index.d.ts.map +1 -1
- package/dist/installer/index.js +307 -2575
- package/dist/installer/index.js.map +1 -1
- package/dist/shared/types.d.ts +6 -6
- package/dist/shared/types.d.ts.map +1 -1
- package/docs/ARCHITECTURE.md +386 -0
- package/docs/CLAUDE.md +281 -0
- package/docs/FULL-README.md +822 -0
- package/docs/LOCAL_PLUGIN_INSTALL.md +94 -0
- package/docs/MIGRATION-v3.md +186 -0
- package/docs/MIGRATION.md +460 -0
- package/docs/TIERED_AGENTS_V2.md +322 -0
- package/hooks/hooks.json +70 -0
- package/hooks/keyword-detector.sh +102 -0
- package/hooks/persistent-mode.sh +172 -0
- package/hooks/session-start.sh +62 -0
- package/hooks/stop-continuation.sh +40 -0
- package/package.json +14 -8
- package/scripts/install.sh +90 -72
- package/scripts/keyword-detector.mjs +1 -1
- package/scripts/persistent-mode.mjs +39 -20
- package/scripts/persistent-mode.sh +21 -10
- package/scripts/plugin-setup.mjs +109 -0
- package/scripts/pre-tool-enforcer.mjs +1 -1
- package/scripts/pre-tool-enforcer.sh +1 -1
- package/scripts/session-start.mjs +38 -3
- package/scripts/skill-injector.mjs +231 -0
- package/scripts/uninstall.sh +8 -8
- package/skills/analyze/SKILL.md +47 -0
- package/skills/cancel-ralph/SKILL.md +43 -0
- package/skills/cancel-ultraqa/SKILL.md +29 -0
- package/skills/cancel-ultrawork/SKILL.md +42 -0
- package/skills/deepinit/SKILL.md +321 -0
- package/skills/deepsearch/SKILL.md +39 -0
- package/skills/doctor/SKILL.md +192 -0
- package/skills/frontend-ui-ux/SKILL.md +53 -0
- package/skills/git-master/SKILL.md +58 -0
- package/skills/help/SKILL.md +66 -0
- package/skills/hud/SKILL.md +142 -0
- package/skills/learner/SKILL.md +136 -0
- package/skills/note/SKILL.md +63 -0
- package/skills/omc-default/SKILL.md +78 -0
- package/skills/omc-default-global/SKILL.md +75 -0
- package/skills/omc-setup/SKILL.md +144 -0
- package/skills/orchestrate/SKILL.md +409 -0
- package/skills/plan/SKILL.md +37 -0
- package/skills/planner/SKILL.md +43 -0
- package/skills/ralph/SKILL.md +101 -0
- package/skills/ralph-init/SKILL.md +61 -0
- package/skills/ralplan/SKILL.md +219 -0
- package/skills/release/SKILL.md +84 -0
- package/skills/review/SKILL.md +37 -0
- package/skills/ultraqa/SKILL.md +123 -0
- package/skills/ultrawork/SKILL.md +89 -0
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sisyphus HUD - Transcript Parser
|
|
3
|
+
*
|
|
4
|
+
* Parse JSONL transcript from Claude Code to extract agents and todos.
|
|
5
|
+
* Based on claude-hud reference implementation.
|
|
6
|
+
*
|
|
7
|
+
* Performance optimizations:
|
|
8
|
+
* - Tail-based parsing: reads only the last ~500KB of large transcripts
|
|
9
|
+
* - Bounded agent map: caps at 50 agents during parsing
|
|
10
|
+
* - Early termination: stops when enough running agents found
|
|
11
|
+
*/
|
|
12
|
+
import { createReadStream, existsSync, statSync, openSync, readSync, closeSync } from 'fs';
|
|
13
|
+
import { createInterface } from 'readline';
|
|
14
|
+
// Performance constants
|
|
15
|
+
const MAX_TAIL_BYTES = 512 * 1024; // 500KB - enough for recent activity
|
|
16
|
+
const MAX_AGENT_MAP_SIZE = 50; // Cap agent tracking
|
|
17
|
+
const MIN_RUNNING_AGENTS_THRESHOLD = 10; // Early termination threshold
|
|
18
|
+
/**
|
|
19
|
+
* Tools known to require permission approval in Claude Code.
|
|
20
|
+
* Only these tools will trigger the "APPROVE?" indicator.
|
|
21
|
+
*/
|
|
22
|
+
const PERMISSION_TOOLS = [
|
|
23
|
+
'Edit', 'Write', 'Bash',
|
|
24
|
+
'proxy_Edit', 'proxy_Write', 'proxy_Bash'
|
|
25
|
+
];
|
|
26
|
+
/**
|
|
27
|
+
* Time threshold for considering a tool "pending approval".
|
|
28
|
+
* If tool_use exists without tool_result within this window, show indicator.
|
|
29
|
+
*/
|
|
30
|
+
const PERMISSION_THRESHOLD_MS = 3000; // 3 seconds
|
|
31
|
+
/**
|
|
32
|
+
* Module-level map tracking pending permission-requiring tools.
|
|
33
|
+
* Key: tool_use block id, Value: PendingPermission info
|
|
34
|
+
* Cleared when tool_result is received for the corresponding tool_use.
|
|
35
|
+
*/
|
|
36
|
+
const pendingPermissionMap = new Map();
|
|
37
|
+
/**
|
|
38
|
+
* Content block types that indicate extended thinking mode.
|
|
39
|
+
*/
|
|
40
|
+
const THINKING_PART_TYPES = ['thinking', 'reasoning'];
|
|
41
|
+
/**
|
|
42
|
+
* Time threshold for considering thinking "active".
|
|
43
|
+
*/
|
|
44
|
+
const THINKING_RECENCY_MS = 30_000; // 30 seconds
|
|
45
|
+
/**
|
|
46
|
+
* Parse a Claude Code transcript JSONL file.
|
|
47
|
+
* Extracts running agents and latest todo list.
|
|
48
|
+
*
|
|
49
|
+
* For large files (>500KB), only parses the tail portion for performance.
|
|
50
|
+
*/
|
|
51
|
+
export async function parseTranscript(transcriptPath) {
|
|
52
|
+
// IMPORTANT: Clear module-level state at the start of each parse
|
|
53
|
+
// to prevent stale data from previous HUD invocations
|
|
54
|
+
pendingPermissionMap.clear();
|
|
55
|
+
const result = {
|
|
56
|
+
agents: [],
|
|
57
|
+
todos: [],
|
|
58
|
+
lastActivatedSkill: undefined,
|
|
59
|
+
};
|
|
60
|
+
if (!transcriptPath || !existsSync(transcriptPath)) {
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
const agentMap = new Map();
|
|
64
|
+
const backgroundAgentMap = new Map();
|
|
65
|
+
let latestTodos = [];
|
|
66
|
+
try {
|
|
67
|
+
// Check file size to determine parsing strategy
|
|
68
|
+
const stat = statSync(transcriptPath);
|
|
69
|
+
const fileSize = stat.size;
|
|
70
|
+
if (fileSize > MAX_TAIL_BYTES) {
|
|
71
|
+
// Large file: use tail-based parsing
|
|
72
|
+
const lines = readTailLines(transcriptPath, fileSize, MAX_TAIL_BYTES);
|
|
73
|
+
for (const line of lines) {
|
|
74
|
+
if (!line.trim())
|
|
75
|
+
continue;
|
|
76
|
+
try {
|
|
77
|
+
const entry = JSON.parse(line);
|
|
78
|
+
processEntry(entry, agentMap, latestTodos, result, MAX_AGENT_MAP_SIZE, backgroundAgentMap);
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
// Skip malformed lines
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
// Small file: stream entire file
|
|
87
|
+
const fileStream = createReadStream(transcriptPath);
|
|
88
|
+
const rl = createInterface({
|
|
89
|
+
input: fileStream,
|
|
90
|
+
crlfDelay: Infinity,
|
|
91
|
+
});
|
|
92
|
+
for await (const line of rl) {
|
|
93
|
+
if (!line.trim())
|
|
94
|
+
continue;
|
|
95
|
+
try {
|
|
96
|
+
const entry = JSON.parse(line);
|
|
97
|
+
processEntry(entry, agentMap, latestTodos, result, MAX_AGENT_MAP_SIZE, backgroundAgentMap);
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
// Skip malformed lines
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
// Return partial results on error
|
|
107
|
+
}
|
|
108
|
+
// Filter out stale agents (running for more than 30 minutes are likely abandoned)
|
|
109
|
+
const STALE_AGENT_THRESHOLD_MS = 30 * 60 * 1000; // 30 minutes
|
|
110
|
+
const now = Date.now();
|
|
111
|
+
for (const agent of agentMap.values()) {
|
|
112
|
+
if (agent.status === 'running') {
|
|
113
|
+
const runningTime = now - agent.startTime.getTime();
|
|
114
|
+
if (runningTime > STALE_AGENT_THRESHOLD_MS) {
|
|
115
|
+
// Mark as completed (stale)
|
|
116
|
+
agent.status = 'completed';
|
|
117
|
+
agent.endTime = new Date(agent.startTime.getTime() + STALE_AGENT_THRESHOLD_MS);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
// Check for pending permissions within threshold
|
|
122
|
+
for (const [id, permission] of pendingPermissionMap) {
|
|
123
|
+
const age = now - permission.timestamp.getTime();
|
|
124
|
+
if (age <= PERMISSION_THRESHOLD_MS) {
|
|
125
|
+
result.pendingPermission = permission;
|
|
126
|
+
break; // Only show most recent
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
// Determine if thinking is currently active based on recency
|
|
130
|
+
if (result.thinkingState?.lastSeen) {
|
|
131
|
+
const age = now - result.thinkingState.lastSeen.getTime();
|
|
132
|
+
result.thinkingState.active = age <= THINKING_RECENCY_MS;
|
|
133
|
+
}
|
|
134
|
+
// Get running agents first, then recent completed (up to 10 total)
|
|
135
|
+
const running = Array.from(agentMap.values()).filter(a => a.status === 'running');
|
|
136
|
+
const completed = Array.from(agentMap.values()).filter(a => a.status === 'completed');
|
|
137
|
+
result.agents = [...running, ...completed.slice(-(10 - running.length))].slice(0, 10);
|
|
138
|
+
result.todos = latestTodos;
|
|
139
|
+
return result;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Read the tail portion of a file and split into lines.
|
|
143
|
+
* Handles partial first line (from mid-file start).
|
|
144
|
+
*/
|
|
145
|
+
function readTailLines(filePath, fileSize, maxBytes) {
|
|
146
|
+
const startOffset = Math.max(0, fileSize - maxBytes);
|
|
147
|
+
const bytesToRead = fileSize - startOffset;
|
|
148
|
+
const fd = openSync(filePath, 'r');
|
|
149
|
+
const buffer = Buffer.alloc(bytesToRead);
|
|
150
|
+
try {
|
|
151
|
+
readSync(fd, buffer, 0, bytesToRead, startOffset);
|
|
152
|
+
}
|
|
153
|
+
finally {
|
|
154
|
+
closeSync(fd);
|
|
155
|
+
}
|
|
156
|
+
const content = buffer.toString('utf8');
|
|
157
|
+
const lines = content.split('\n');
|
|
158
|
+
// If we started mid-file, discard the potentially incomplete first line
|
|
159
|
+
if (startOffset > 0 && lines.length > 0) {
|
|
160
|
+
lines.shift();
|
|
161
|
+
}
|
|
162
|
+
return lines;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Extract background agent ID from "Async agent launched" message
|
|
166
|
+
*/
|
|
167
|
+
function extractBackgroundAgentId(content) {
|
|
168
|
+
const text = typeof content === 'string'
|
|
169
|
+
? content
|
|
170
|
+
: content.find((c) => c.type === 'text')?.text || '';
|
|
171
|
+
// Pattern: "agentId: a8de3dd"
|
|
172
|
+
const match = text.match(/agentId:\s*([a-zA-Z0-9]+)/);
|
|
173
|
+
return match ? match[1] : null;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Parse TaskOutput result for completion status
|
|
177
|
+
*/
|
|
178
|
+
function parseTaskOutputResult(content) {
|
|
179
|
+
const text = typeof content === 'string'
|
|
180
|
+
? content
|
|
181
|
+
: content.find((c) => c.type === 'text')?.text || '';
|
|
182
|
+
// Extract task_id and status from XML-like format
|
|
183
|
+
const taskIdMatch = text.match(/<task_id>([^<]+)<\/task_id>/);
|
|
184
|
+
const statusMatch = text.match(/<status>([^<]+)<\/status>/);
|
|
185
|
+
if (taskIdMatch && statusMatch) {
|
|
186
|
+
return { taskId: taskIdMatch[1], status: statusMatch[1] };
|
|
187
|
+
}
|
|
188
|
+
return null;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Extract a human-readable target summary from tool input.
|
|
192
|
+
*/
|
|
193
|
+
function extractTargetSummary(input, toolName) {
|
|
194
|
+
if (!input || typeof input !== 'object')
|
|
195
|
+
return '...';
|
|
196
|
+
const inp = input;
|
|
197
|
+
// Edit/Write: show file path
|
|
198
|
+
if (toolName.includes('Edit') || toolName.includes('Write')) {
|
|
199
|
+
const filePath = inp.file_path;
|
|
200
|
+
if (filePath) {
|
|
201
|
+
// Return just the filename or last path segment
|
|
202
|
+
const segments = filePath.split('/');
|
|
203
|
+
return segments[segments.length - 1] || filePath;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
// Bash: show first 20 chars of command
|
|
207
|
+
if (toolName.includes('Bash')) {
|
|
208
|
+
const cmd = inp.command;
|
|
209
|
+
if (cmd) {
|
|
210
|
+
const trimmed = cmd.trim().substring(0, 20);
|
|
211
|
+
return trimmed.length < cmd.trim().length ? `${trimmed}...` : trimmed;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return '...';
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Process a single transcript entry
|
|
218
|
+
*/
|
|
219
|
+
function processEntry(entry, agentMap, latestTodos, result, maxAgentMapSize = 50, backgroundAgentMap) {
|
|
220
|
+
const timestamp = entry.timestamp ? new Date(entry.timestamp) : new Date();
|
|
221
|
+
// Set session start time from first entry
|
|
222
|
+
if (!result.sessionStart && entry.timestamp) {
|
|
223
|
+
result.sessionStart = timestamp;
|
|
224
|
+
}
|
|
225
|
+
const content = entry.message?.content;
|
|
226
|
+
if (!content || !Array.isArray(content))
|
|
227
|
+
return;
|
|
228
|
+
for (const block of content) {
|
|
229
|
+
// Check if this is a thinking block
|
|
230
|
+
if (THINKING_PART_TYPES.includes(block.type)) {
|
|
231
|
+
result.thinkingState = {
|
|
232
|
+
active: true,
|
|
233
|
+
lastSeen: timestamp
|
|
234
|
+
};
|
|
235
|
+
}
|
|
236
|
+
// Track tool_use for Task (agents) and TodoWrite
|
|
237
|
+
if (block.type === 'tool_use' && block.id && block.name) {
|
|
238
|
+
if (block.name === 'Task' || block.name === 'proxy_Task') {
|
|
239
|
+
const input = block.input;
|
|
240
|
+
const agentEntry = {
|
|
241
|
+
id: block.id,
|
|
242
|
+
type: input?.subagent_type ?? 'unknown',
|
|
243
|
+
model: input?.model,
|
|
244
|
+
description: input?.description,
|
|
245
|
+
status: 'running',
|
|
246
|
+
startTime: timestamp,
|
|
247
|
+
};
|
|
248
|
+
// Bounded agent map: evict oldest completed agents if at capacity
|
|
249
|
+
if (agentMap.size >= maxAgentMapSize) {
|
|
250
|
+
// Find and remove oldest completed agent
|
|
251
|
+
let oldestCompleted = null;
|
|
252
|
+
let oldestTime = Infinity;
|
|
253
|
+
for (const [id, agent] of agentMap) {
|
|
254
|
+
if (agent.status === 'completed' && agent.startTime) {
|
|
255
|
+
const time = agent.startTime.getTime();
|
|
256
|
+
if (time < oldestTime) {
|
|
257
|
+
oldestTime = time;
|
|
258
|
+
oldestCompleted = id;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
if (oldestCompleted) {
|
|
263
|
+
agentMap.delete(oldestCompleted);
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
agentMap.set(block.id, agentEntry);
|
|
267
|
+
}
|
|
268
|
+
else if (block.name === 'TodoWrite') {
|
|
269
|
+
const input = block.input;
|
|
270
|
+
if (input?.todos && Array.isArray(input.todos)) {
|
|
271
|
+
// Replace latest todos with new ones
|
|
272
|
+
latestTodos.length = 0;
|
|
273
|
+
latestTodos.push(...input.todos.map((t) => ({
|
|
274
|
+
content: t.content,
|
|
275
|
+
status: t.status,
|
|
276
|
+
activeForm: t.activeForm,
|
|
277
|
+
})));
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
else if (block.name === 'Skill' || block.name === 'proxy_Skill') {
|
|
281
|
+
// Track last activated skill
|
|
282
|
+
const input = block.input;
|
|
283
|
+
if (input?.skill) {
|
|
284
|
+
result.lastActivatedSkill = {
|
|
285
|
+
name: input.skill,
|
|
286
|
+
args: input.args,
|
|
287
|
+
timestamp: timestamp,
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
// Track tool_use for permission-requiring tools
|
|
292
|
+
if (PERMISSION_TOOLS.includes(block.name)) {
|
|
293
|
+
pendingPermissionMap.set(block.id, {
|
|
294
|
+
toolName: block.name.replace('proxy_', ''),
|
|
295
|
+
targetSummary: extractTargetSummary(block.input, block.name),
|
|
296
|
+
timestamp: timestamp
|
|
297
|
+
});
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
// Track tool_result to mark agents as completed
|
|
301
|
+
if (block.type === 'tool_result' && block.tool_use_id) {
|
|
302
|
+
// Clear from pending permissions when tool_result arrives
|
|
303
|
+
pendingPermissionMap.delete(block.tool_use_id);
|
|
304
|
+
const agent = agentMap.get(block.tool_use_id);
|
|
305
|
+
if (agent) {
|
|
306
|
+
const blockContent = block.content;
|
|
307
|
+
// Check if this is a background agent launch result
|
|
308
|
+
const isBackgroundLaunch = typeof blockContent === 'string'
|
|
309
|
+
? blockContent.includes('Async agent launched')
|
|
310
|
+
: Array.isArray(blockContent) && blockContent.some((c) => c.type === 'text' && c.text?.includes('Async agent launched'));
|
|
311
|
+
if (isBackgroundLaunch) {
|
|
312
|
+
// Extract and store the background agent ID mapping
|
|
313
|
+
if (backgroundAgentMap && blockContent) {
|
|
314
|
+
const bgAgentId = extractBackgroundAgentId(blockContent);
|
|
315
|
+
if (bgAgentId) {
|
|
316
|
+
backgroundAgentMap.set(bgAgentId, block.tool_use_id);
|
|
317
|
+
}
|
|
318
|
+
}
|
|
319
|
+
// Keep status as 'running'
|
|
320
|
+
}
|
|
321
|
+
else {
|
|
322
|
+
// Foreground agent completed
|
|
323
|
+
agent.status = 'completed';
|
|
324
|
+
agent.endTime = timestamp;
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
// Check if this is a TaskOutput result showing completion
|
|
328
|
+
if (backgroundAgentMap && block.content) {
|
|
329
|
+
const taskOutput = parseTaskOutputResult(block.content);
|
|
330
|
+
if (taskOutput && taskOutput.status === 'completed') {
|
|
331
|
+
// Find the original agent by background agent ID
|
|
332
|
+
const toolUseId = backgroundAgentMap.get(taskOutput.taskId);
|
|
333
|
+
if (toolUseId) {
|
|
334
|
+
const bgAgent = agentMap.get(toolUseId);
|
|
335
|
+
if (bgAgent && bgAgent.status === 'running') {
|
|
336
|
+
bgAgent.status = 'completed';
|
|
337
|
+
bgAgent.endTime = timestamp;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
// ============================================================================
|
|
346
|
+
// Utility Functions
|
|
347
|
+
// ============================================================================
|
|
348
|
+
/**
|
|
349
|
+
* Get count of running agents
|
|
350
|
+
*/
|
|
351
|
+
export function getRunningAgentCount(agents) {
|
|
352
|
+
return agents.filter((a) => a.status === 'running').length;
|
|
353
|
+
}
|
|
354
|
+
/**
|
|
355
|
+
* Get todo completion stats
|
|
356
|
+
*/
|
|
357
|
+
export function getTodoStats(todos) {
|
|
358
|
+
return {
|
|
359
|
+
completed: todos.filter((t) => t.status === 'completed').length,
|
|
360
|
+
total: todos.length,
|
|
361
|
+
inProgress: todos.filter((t) => t.status === 'in_progress').length,
|
|
362
|
+
};
|
|
363
|
+
}
|
|
364
|
+
//# sourceMappingURL=transcript.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../src/hud/transcript.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sisyphus HUD Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* Type definitions for the HUD state, configuration, and rendering.
|
|
5
|
+
*/
|
|
6
|
+
export interface BackgroundTask {
|
|
7
|
+
id: string;
|
|
8
|
+
description: string;
|
|
9
|
+
agentType?: string;
|
|
10
|
+
startedAt: string;
|
|
11
|
+
completedAt?: string;
|
|
12
|
+
status: 'running' | 'completed' | 'failed';
|
|
13
|
+
}
|
|
14
|
+
export interface SisyphusHudState {
|
|
15
|
+
timestamp: string;
|
|
16
|
+
backgroundTasks: BackgroundTask[];
|
|
17
|
+
}
|
|
18
|
+
export interface StatuslineStdin {
|
|
19
|
+
/** Transcript path for parsing conversation history */
|
|
20
|
+
transcript_path: string;
|
|
21
|
+
/** Current working directory */
|
|
22
|
+
cwd: string;
|
|
23
|
+
/** Model information */
|
|
24
|
+
model: {
|
|
25
|
+
id: string;
|
|
26
|
+
display_name: string;
|
|
27
|
+
};
|
|
28
|
+
/** Context window metrics */
|
|
29
|
+
context_window: {
|
|
30
|
+
context_window_size: number;
|
|
31
|
+
used_percentage?: number;
|
|
32
|
+
current_usage?: {
|
|
33
|
+
input_tokens: number;
|
|
34
|
+
cache_creation_input_tokens: number;
|
|
35
|
+
cache_read_input_tokens: number;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
export interface TodoItem {
|
|
40
|
+
content: string;
|
|
41
|
+
status: 'pending' | 'in_progress' | 'completed';
|
|
42
|
+
activeForm?: string;
|
|
43
|
+
}
|
|
44
|
+
export interface ActiveAgent {
|
|
45
|
+
id: string;
|
|
46
|
+
type: string;
|
|
47
|
+
model?: string;
|
|
48
|
+
description?: string;
|
|
49
|
+
status: 'running' | 'completed';
|
|
50
|
+
startTime: Date;
|
|
51
|
+
endTime?: Date;
|
|
52
|
+
}
|
|
53
|
+
export interface SkillInvocation {
|
|
54
|
+
name: string;
|
|
55
|
+
args?: string;
|
|
56
|
+
timestamp: Date;
|
|
57
|
+
}
|
|
58
|
+
export interface PendingPermission {
|
|
59
|
+
toolName: string;
|
|
60
|
+
targetSummary: string;
|
|
61
|
+
timestamp: Date;
|
|
62
|
+
}
|
|
63
|
+
export interface ThinkingState {
|
|
64
|
+
active: boolean;
|
|
65
|
+
lastSeen?: Date;
|
|
66
|
+
}
|
|
67
|
+
export interface SessionHealth {
|
|
68
|
+
durationMinutes: number;
|
|
69
|
+
messageCount: number;
|
|
70
|
+
health: 'healthy' | 'warning' | 'critical';
|
|
71
|
+
}
|
|
72
|
+
export interface TranscriptData {
|
|
73
|
+
agents: ActiveAgent[];
|
|
74
|
+
todos: TodoItem[];
|
|
75
|
+
sessionStart?: Date;
|
|
76
|
+
lastActivatedSkill?: SkillInvocation;
|
|
77
|
+
pendingPermission?: PendingPermission;
|
|
78
|
+
thinkingState?: ThinkingState;
|
|
79
|
+
}
|
|
80
|
+
export interface RalphStateForHud {
|
|
81
|
+
active: boolean;
|
|
82
|
+
iteration: number;
|
|
83
|
+
maxIterations: number;
|
|
84
|
+
prdMode?: boolean;
|
|
85
|
+
currentStoryId?: string;
|
|
86
|
+
}
|
|
87
|
+
export interface UltraworkStateForHud {
|
|
88
|
+
active: boolean;
|
|
89
|
+
reinforcementCount: number;
|
|
90
|
+
}
|
|
91
|
+
export interface PrdStateForHud {
|
|
92
|
+
currentStoryId: string | null;
|
|
93
|
+
completed: number;
|
|
94
|
+
total: number;
|
|
95
|
+
}
|
|
96
|
+
export interface RateLimits {
|
|
97
|
+
/** 5-hour rolling window usage percentage (0-100) */
|
|
98
|
+
fiveHourPercent: number;
|
|
99
|
+
/** Weekly usage percentage (0-100) */
|
|
100
|
+
weeklyPercent: number;
|
|
101
|
+
}
|
|
102
|
+
export interface HudRenderContext {
|
|
103
|
+
/** Context window percentage (0-100) */
|
|
104
|
+
contextPercent: number;
|
|
105
|
+
/** Model display name */
|
|
106
|
+
modelName: string;
|
|
107
|
+
/** Ralph loop state */
|
|
108
|
+
ralph: RalphStateForHud | null;
|
|
109
|
+
/** Ultrawork state */
|
|
110
|
+
ultrawork: UltraworkStateForHud | null;
|
|
111
|
+
/** PRD state */
|
|
112
|
+
prd: PrdStateForHud | null;
|
|
113
|
+
/** Active subagents from transcript */
|
|
114
|
+
activeAgents: ActiveAgent[];
|
|
115
|
+
/** Todo list from transcript */
|
|
116
|
+
todos: TodoItem[];
|
|
117
|
+
/** Background tasks from HUD state */
|
|
118
|
+
backgroundTasks: BackgroundTask[];
|
|
119
|
+
/** Working directory */
|
|
120
|
+
cwd: string;
|
|
121
|
+
/** Last activated skill from transcript */
|
|
122
|
+
lastSkill: SkillInvocation | null;
|
|
123
|
+
/** Rate limits (5h and weekly) */
|
|
124
|
+
rateLimits: RateLimits | null;
|
|
125
|
+
/** Pending permission state (heuristic-based) */
|
|
126
|
+
pendingPermission: PendingPermission | null;
|
|
127
|
+
/** Extended thinking state */
|
|
128
|
+
thinkingState: ThinkingState | null;
|
|
129
|
+
/** Session health metrics */
|
|
130
|
+
sessionHealth: SessionHealth | null;
|
|
131
|
+
}
|
|
132
|
+
export type HudPreset = 'minimal' | 'focused' | 'full' | 'opencode' | 'dense';
|
|
133
|
+
/**
|
|
134
|
+
* Agent display format options:
|
|
135
|
+
* - count: agents:2
|
|
136
|
+
* - codes: agents:Oes (type-coded with model tier casing)
|
|
137
|
+
* - codes-duration: agents:O(2m)es (codes with duration)
|
|
138
|
+
* - detailed: agents:[architect(2m),explore,exec]
|
|
139
|
+
* - descriptions: O:analyzing code | e:searching (codes + what they're doing)
|
|
140
|
+
* - tasks: [analyzing code, searching...] (just descriptions - most readable)
|
|
141
|
+
* - multiline: Multi-line display with full agent details on separate lines
|
|
142
|
+
*/
|
|
143
|
+
export type AgentsFormat = 'count' | 'codes' | 'codes-duration' | 'detailed' | 'descriptions' | 'tasks' | 'multiline';
|
|
144
|
+
export interface HudElementConfig {
|
|
145
|
+
omcLabel: boolean;
|
|
146
|
+
rateLimits: boolean;
|
|
147
|
+
ralph: boolean;
|
|
148
|
+
prdStory: boolean;
|
|
149
|
+
activeSkills: boolean;
|
|
150
|
+
lastSkill: boolean;
|
|
151
|
+
contextBar: boolean;
|
|
152
|
+
agents: boolean;
|
|
153
|
+
agentsFormat: AgentsFormat;
|
|
154
|
+
agentsMaxLines: number;
|
|
155
|
+
backgroundTasks: boolean;
|
|
156
|
+
todos: boolean;
|
|
157
|
+
permissionStatus: boolean;
|
|
158
|
+
thinking: boolean;
|
|
159
|
+
sessionHealth: boolean;
|
|
160
|
+
}
|
|
161
|
+
export interface HudThresholds {
|
|
162
|
+
/** Context percentage that triggers warning color (default: 70) */
|
|
163
|
+
contextWarning: number;
|
|
164
|
+
/** Context percentage that triggers compact suggestion (default: 80) */
|
|
165
|
+
contextCompactSuggestion: number;
|
|
166
|
+
/** Context percentage that triggers critical color (default: 85) */
|
|
167
|
+
contextCritical: number;
|
|
168
|
+
/** Ralph iteration that triggers warning color (default: 7) */
|
|
169
|
+
ralphWarning: number;
|
|
170
|
+
}
|
|
171
|
+
export interface HudConfig {
|
|
172
|
+
preset: HudPreset;
|
|
173
|
+
elements: HudElementConfig;
|
|
174
|
+
thresholds: HudThresholds;
|
|
175
|
+
}
|
|
176
|
+
export declare const DEFAULT_HUD_CONFIG: HudConfig;
|
|
177
|
+
export declare const PRESET_CONFIGS: Record<HudPreset, Partial<HudElementConfig>>;
|
|
178
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/hud/types.ts"],"names":[],"mappings":"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"}
|