oh-my-claude-sisyphus 3.1.0 → 3.2.2
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 +3 -1
- package/commands/autopilot.md +131 -0
- package/commands/cancel-autopilot.md +35 -0
- package/dist/__tests__/installer.test.js +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__/skills.test.js +8 -4
- package/dist/__tests__/skills.test.js.map +1 -1
- package/dist/agents/definitions.d.ts +32 -0
- package/dist/agents/definitions.d.ts.map +1 -1
- package/dist/agents/definitions.js +93 -1
- package/dist/agents/definitions.js.map +1 -1
- package/dist/agents/delegation-validator.d.ts +31 -0
- package/dist/agents/delegation-validator.d.ts.map +1 -0
- package/dist/agents/delegation-validator.js +75 -0
- package/dist/agents/delegation-validator.js.map +1 -0
- package/dist/agents/document-writer.d.ts +11 -0
- package/dist/agents/document-writer.d.ts.map +1 -0
- package/dist/agents/document-writer.js +209 -0
- package/dist/agents/document-writer.js.map +1 -0
- package/dist/agents/frontend-engineer.d.ts +11 -0
- package/dist/agents/frontend-engineer.d.ts.map +1 -0
- package/dist/agents/frontend-engineer.js +115 -0
- package/dist/agents/frontend-engineer.js.map +1 -0
- package/dist/agents/librarian.d.ts +12 -0
- package/dist/agents/librarian.d.ts.map +1 -0
- package/dist/agents/librarian.js +103 -0
- package/dist/agents/librarian.js.map +1 -0
- package/dist/agents/metis.d.ts +12 -0
- package/dist/agents/metis.d.ts.map +1 -0
- package/dist/agents/metis.js +117 -0
- package/dist/agents/metis.js.map +1 -0
- package/dist/agents/momus.d.ts +12 -0
- package/dist/agents/momus.d.ts.map +1 -0
- package/dist/agents/momus.js +128 -0
- package/dist/agents/momus.js.map +1 -0
- package/dist/agents/multimodal-looker.d.ts +11 -0
- package/dist/agents/multimodal-looker.d.ts.map +1 -0
- package/dist/agents/multimodal-looker.js +70 -0
- package/dist/agents/multimodal-looker.js.map +1 -0
- package/dist/agents/oracle.d.ts +13 -0
- package/dist/agents/oracle.d.ts.map +1 -0
- package/dist/agents/oracle.js +191 -0
- package/dist/agents/oracle.js.map +1 -0
- package/dist/agents/orchestrator-sisyphus.d.ts +11 -0
- package/dist/agents/orchestrator-sisyphus.d.ts.map +1 -0
- package/dist/agents/orchestrator-sisyphus.js +115 -0
- package/dist/agents/orchestrator-sisyphus.js.map +1 -0
- package/dist/agents/prometheus.d.ts +12 -0
- package/dist/agents/prometheus.d.ts.map +1 -0
- package/dist/agents/prometheus.js +195 -0
- package/dist/agents/prometheus.js.map +1 -0
- package/dist/agents/prompt-generator.d.ts +95 -0
- package/dist/agents/prompt-generator.d.ts.map +1 -0
- package/dist/agents/prompt-generator.js +140 -0
- package/dist/agents/prompt-generator.js.map +1 -0
- package/dist/agents/prompt-sections/index.d.ts +44 -0
- package/dist/agents/prompt-sections/index.d.ts.map +1 -0
- package/dist/agents/prompt-sections/index.js +194 -0
- package/dist/agents/prompt-sections/index.js.map +1 -0
- package/dist/agents/sisyphus-junior.d.ts +12 -0
- package/dist/agents/sisyphus-junior.d.ts.map +1 -0
- package/dist/agents/sisyphus-junior.js +93 -0
- package/dist/agents/sisyphus-junior.js.map +1 -0
- package/dist/agents/types.d.ts +2 -0
- package/dist/agents/types.d.ts.map +1 -1
- package/dist/agents/types.js.map +1 -1
- package/dist/cli/index.js +0 -0
- package/dist/features/background-agent/manager.d.ts +10 -1
- package/dist/features/background-agent/manager.d.ts.map +1 -1
- package/dist/features/background-agent/manager.js +79 -11
- package/dist/features/background-agent/manager.js.map +1 -1
- package/dist/features/background-agent/types.d.ts +30 -1
- package/dist/features/background-agent/types.d.ts.map +1 -1
- package/dist/features/delegation-categories/index.d.ts +116 -0
- package/dist/features/delegation-categories/index.d.ts.map +1 -0
- package/dist/features/delegation-categories/index.js +287 -0
- package/dist/features/delegation-categories/index.js.map +1 -0
- package/dist/features/delegation-categories/test-categories.d.ts +7 -0
- package/dist/features/delegation-categories/test-categories.d.ts.map +1 -0
- package/dist/features/delegation-categories/test-categories.js +88 -0
- package/dist/features/delegation-categories/test-categories.js.map +1 -0
- package/dist/features/delegation-categories/types.d.ts +51 -0
- package/dist/features/delegation-categories/types.d.ts.map +1 -0
- package/dist/features/delegation-categories/types.js +8 -0
- package/dist/features/delegation-categories/types.js.map +1 -0
- package/dist/features/index.d.ts +2 -0
- package/dist/features/index.d.ts.map +1 -1
- package/dist/features/index.js +10 -0
- package/dist/features/index.js.map +1 -1
- package/dist/features/model-routing/prompts/index.d.ts +2 -0
- package/dist/features/model-routing/prompts/index.d.ts.map +1 -1
- package/dist/features/model-routing/prompts/index.js +6 -0
- package/dist/features/model-routing/prompts/index.js.map +1 -1
- package/dist/features/notepad-wisdom/extractor.d.ts +30 -0
- package/dist/features/notepad-wisdom/extractor.d.ts.map +1 -0
- package/dist/features/notepad-wisdom/extractor.js +68 -0
- package/dist/features/notepad-wisdom/extractor.js.map +1 -0
- package/dist/features/notepad-wisdom/index.d.ts +39 -0
- package/dist/features/notepad-wisdom/index.d.ts.map +1 -0
- package/dist/features/notepad-wisdom/index.js +169 -0
- package/dist/features/notepad-wisdom/index.js.map +1 -0
- package/dist/features/notepad-wisdom/types.d.ts +18 -0
- package/dist/features/notepad-wisdom/types.d.ts.map +1 -0
- package/dist/features/notepad-wisdom/types.js +7 -0
- package/dist/features/notepad-wisdom/types.js.map +1 -0
- package/dist/hooks/autopilot/__tests__/cancel.test.d.ts +2 -0
- package/dist/hooks/autopilot/__tests__/cancel.test.d.ts.map +1 -0
- package/dist/hooks/autopilot/__tests__/cancel.test.js +397 -0
- package/dist/hooks/autopilot/__tests__/cancel.test.js.map +1 -0
- package/dist/hooks/autopilot/__tests__/prompts.test.d.ts +2 -0
- package/dist/hooks/autopilot/__tests__/prompts.test.d.ts.map +1 -0
- package/dist/hooks/autopilot/__tests__/prompts.test.js +74 -0
- package/dist/hooks/autopilot/__tests__/prompts.test.js.map +1 -0
- package/dist/hooks/autopilot/__tests__/state.test.d.ts +2 -0
- package/dist/hooks/autopilot/__tests__/state.test.d.ts.map +1 -0
- package/dist/hooks/autopilot/__tests__/state.test.js +75 -0
- package/dist/hooks/autopilot/__tests__/state.test.js.map +1 -0
- package/dist/hooks/autopilot/__tests__/summary.test.d.ts +2 -0
- package/dist/hooks/autopilot/__tests__/summary.test.d.ts.map +1 -0
- package/dist/hooks/autopilot/__tests__/summary.test.js +289 -0
- package/dist/hooks/autopilot/__tests__/summary.test.js.map +1 -0
- package/dist/hooks/autopilot/__tests__/transition.test.d.ts +2 -0
- package/dist/hooks/autopilot/__tests__/transition.test.d.ts.map +1 -0
- package/dist/hooks/autopilot/__tests__/transition.test.js +59 -0
- package/dist/hooks/autopilot/__tests__/transition.test.js.map +1 -0
- package/dist/hooks/autopilot/__tests__/validation.test.d.ts +2 -0
- package/dist/hooks/autopilot/__tests__/validation.test.d.ts.map +1 -0
- package/dist/hooks/autopilot/__tests__/validation.test.js +450 -0
- package/dist/hooks/autopilot/__tests__/validation.test.js.map +1 -0
- package/dist/hooks/autopilot/cancel.d.ts +42 -0
- package/dist/hooks/autopilot/cancel.d.ts.map +1 -0
- package/dist/hooks/autopilot/cancel.js +156 -0
- package/dist/hooks/autopilot/cancel.js.map +1 -0
- package/dist/hooks/autopilot/enforcement.d.ts +28 -0
- package/dist/hooks/autopilot/enforcement.d.ts.map +1 -0
- package/dist/hooks/autopilot/enforcement.js +147 -0
- package/dist/hooks/autopilot/enforcement.js.map +1 -0
- package/dist/hooks/autopilot/index.d.ts +17 -0
- package/dist/hooks/autopilot/index.d.ts.map +1 -0
- package/dist/hooks/autopilot/index.js +24 -0
- package/dist/hooks/autopilot/index.js.map +1 -0
- package/dist/hooks/autopilot/prompts.d.ts +37 -0
- package/dist/hooks/autopilot/prompts.d.ts.map +1 -0
- package/dist/hooks/autopilot/prompts.js +353 -0
- package/dist/hooks/autopilot/prompts.js.map +1 -0
- package/dist/hooks/autopilot/signals.d.ts +20 -0
- package/dist/hooks/autopilot/signals.d.ts.map +1 -0
- package/dist/hooks/autopilot/signals.js +75 -0
- package/dist/hooks/autopilot/signals.js.map +1 -0
- package/dist/hooks/autopilot/state.d.ts +67 -0
- package/dist/hooks/autopilot/state.d.ts.map +1 -0
- package/dist/hooks/autopilot/state.js +244 -0
- package/dist/hooks/autopilot/state.js.map +1 -0
- package/dist/hooks/autopilot/summary.d.ts +27 -0
- package/dist/hooks/autopilot/summary.d.ts.map +1 -0
- package/dist/hooks/autopilot/summary.js +160 -0
- package/dist/hooks/autopilot/summary.js.map +1 -0
- package/dist/hooks/autopilot/transition.d.ts +39 -0
- package/dist/hooks/autopilot/transition.d.ts.map +1 -0
- package/dist/hooks/autopilot/transition.js +216 -0
- package/dist/hooks/autopilot/transition.js.map +1 -0
- package/dist/hooks/autopilot/types.d.ts +211 -0
- package/dist/hooks/autopilot/types.d.ts.map +1 -0
- package/dist/hooks/autopilot/types.js +30 -0
- package/dist/hooks/autopilot/types.js.map +1 -0
- package/dist/hooks/autopilot/validation.d.ts +43 -0
- package/dist/hooks/autopilot/validation.d.ts.map +1 -0
- package/dist/hooks/autopilot/validation.js +191 -0
- package/dist/hooks/autopilot/validation.js.map +1 -0
- package/dist/hooks/bridge.d.ts +1 -1
- package/dist/hooks/bridge.d.ts.map +1 -1
- package/dist/hooks/bridge.js +64 -3
- package/dist/hooks/bridge.js.map +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +2 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/keyword-detector/index.d.ts +1 -1
- package/dist/hooks/keyword-detector/index.d.ts.map +1 -1
- package/dist/hooks/keyword-detector/index.js +38 -2
- package/dist/hooks/keyword-detector/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/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/persistent-mode/index.d.ts +6 -2
- package/dist/hooks/persistent-mode/index.d.ts.map +1 -1
- package/dist/hooks/persistent-mode/index.js +33 -3
- package/dist/hooks/persistent-mode/index.js.map +1 -1
- package/dist/hooks/sisyphus-orchestrator/constants.d.ts +23 -0
- package/dist/hooks/sisyphus-orchestrator/constants.d.ts.map +1 -0
- package/dist/hooks/sisyphus-orchestrator/constants.js +142 -0
- package/dist/hooks/sisyphus-orchestrator/constants.js.map +1 -0
- package/dist/hooks/sisyphus-orchestrator/index.d.ts +113 -0
- package/dist/hooks/sisyphus-orchestrator/index.d.ts.map +1 -0
- package/dist/hooks/sisyphus-orchestrator/index.js +309 -0
- package/dist/hooks/sisyphus-orchestrator/index.js.map +1 -0
- package/dist/hooks/todo-continuation/index.d.ts +31 -1
- package/dist/hooks/todo-continuation/index.d.ts.map +1 -1
- package/dist/hooks/todo-continuation/index.js +38 -1
- package/dist/hooks/todo-continuation/index.js.map +1 -1
- package/dist/hud/elements/autopilot.d.ts +29 -0
- package/dist/hud/elements/autopilot.d.ts.map +1 -0
- package/dist/hud/elements/autopilot.js +97 -0
- package/dist/hud/elements/autopilot.js.map +1 -0
- package/dist/hud/elements/index.d.ts +1 -0
- package/dist/hud/elements/index.d.ts.map +1 -1
- package/dist/hud/elements/index.js +1 -0
- package/dist/hud/elements/index.js.map +1 -1
- package/dist/hud/index.js +7 -5
- package/dist/hud/index.js.map +1 -1
- package/dist/hud/omc-state.d.ts +7 -0
- package/dist/hud/omc-state.d.ts.map +1 -1
- package/dist/hud/omc-state.js +39 -1
- package/dist/hud/omc-state.js.map +1 -1
- package/dist/hud/render.d.ts.map +1 -1
- package/dist/hud/render.js +7 -0
- package/dist/hud/render.js.map +1 -1
- 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/types.d.ts +5 -0
- package/dist/hud/types.d.ts.map +1 -1
- package/dist/hud/types.js +6 -0
- package/dist/hud/types.js.map +1 -1
- package/dist/installer/index.d.ts +1 -1
- package/dist/installer/index.js +3 -3
- package/dist/installer/index.js.map +1 -1
- package/dist/tools/diagnostics/index.d.ts +29 -0
- package/dist/tools/diagnostics/index.d.ts.map +1 -0
- package/dist/tools/diagnostics/index.js +118 -0
- package/dist/tools/diagnostics/index.js.map +1 -0
- package/dist/tools/diagnostics/lsp-aggregator.d.ts +26 -0
- package/dist/tools/diagnostics/lsp-aggregator.d.ts.map +1 -0
- package/dist/tools/diagnostics/lsp-aggregator.js +99 -0
- package/dist/tools/diagnostics/lsp-aggregator.js.map +1 -0
- package/dist/tools/diagnostics/tsc-runner.d.ts +26 -0
- package/dist/tools/diagnostics/tsc-runner.d.ts.map +1 -0
- package/dist/tools/diagnostics/tsc-runner.js +70 -0
- package/dist/tools/diagnostics/tsc-runner.js.map +1 -0
- package/dist/tools/lsp-tools.d.ts +10 -0
- package/dist/tools/lsp-tools.d.ts.map +1 -1
- package/dist/tools/lsp-tools.js +43 -1
- package/dist/tools/lsp-tools.js.map +1 -1
- package/dist/tools/resume-session.d.ts +63 -0
- package/dist/tools/resume-session.d.ts.map +1 -0
- package/dist/tools/resume-session.js +106 -0
- package/dist/tools/resume-session.js.map +1 -0
- package/dist/utils/__tests__/paths.test.d.ts +2 -0
- package/dist/utils/__tests__/paths.test.d.ts.map +1 -0
- package/dist/utils/__tests__/paths.test.js +88 -0
- package/dist/utils/__tests__/paths.test.js.map +1 -0
- package/dist/utils/paths.d.ts +32 -0
- package/dist/utils/paths.d.ts.map +1 -0
- package/dist/utils/paths.js +55 -0
- package/dist/utils/paths.js.map +1 -0
- package/docs/ARCHITECTURE.md +80 -1
- package/docs/CLAUDE.md +85 -3
- package/docs/FEATURES.md +2167 -0
- package/docs/FULL-README.md +69 -1
- package/package.json +1 -1
- package/skills/autopilot/SKILL.md +168 -0
- package/skills/cancel-autopilot/SKILL.md +53 -0
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
/**
|
|
9
9
|
* Status of a background task
|
|
10
10
|
*/
|
|
11
|
-
export type BackgroundTaskStatus = 'pending' | 'running' | 'completed' | 'error' | 'cancelled';
|
|
11
|
+
export type BackgroundTaskStatus = 'queued' | 'pending' | 'running' | 'completed' | 'error' | 'cancelled';
|
|
12
12
|
/**
|
|
13
13
|
* Progress tracking for a background task
|
|
14
14
|
*/
|
|
@@ -42,6 +42,8 @@ export interface BackgroundTask {
|
|
|
42
42
|
agent: string;
|
|
43
43
|
/** Current status */
|
|
44
44
|
status: BackgroundTaskStatus;
|
|
45
|
+
/** When the task was queued (waiting for concurrency) */
|
|
46
|
+
queuedAt?: Date;
|
|
45
47
|
/** When the task started */
|
|
46
48
|
startedAt: Date;
|
|
47
49
|
/** When the task completed (if completed) */
|
|
@@ -54,6 +56,8 @@ export interface BackgroundTask {
|
|
|
54
56
|
progress?: TaskProgress;
|
|
55
57
|
/** Key for concurrency tracking */
|
|
56
58
|
concurrencyKey?: string;
|
|
59
|
+
/** Parent model (preserved from launch input) */
|
|
60
|
+
parentModel?: string;
|
|
57
61
|
}
|
|
58
62
|
/**
|
|
59
63
|
* Input for launching a new background task
|
|
@@ -81,6 +85,25 @@ export interface ResumeInput {
|
|
|
81
85
|
/** Parent session ID */
|
|
82
86
|
parentSessionId: string;
|
|
83
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Context for resuming a background task
|
|
90
|
+
*/
|
|
91
|
+
export interface ResumeContext {
|
|
92
|
+
/** Session ID of the task */
|
|
93
|
+
sessionId: string;
|
|
94
|
+
/** Original prompt for the task */
|
|
95
|
+
previousPrompt: string;
|
|
96
|
+
/** Number of tool calls made so far */
|
|
97
|
+
toolCallCount: number;
|
|
98
|
+
/** Last tool used (if any) */
|
|
99
|
+
lastToolUsed?: string;
|
|
100
|
+
/** Summary of last output (truncated) */
|
|
101
|
+
lastOutputSummary?: string;
|
|
102
|
+
/** When the task started */
|
|
103
|
+
startedAt: Date;
|
|
104
|
+
/** When the task was last active */
|
|
105
|
+
lastActivityAt: Date;
|
|
106
|
+
}
|
|
84
107
|
/**
|
|
85
108
|
* Configuration for background task concurrency
|
|
86
109
|
*/
|
|
@@ -95,5 +118,11 @@ export interface BackgroundTaskConfig {
|
|
|
95
118
|
maxTotalTasks?: number;
|
|
96
119
|
/** Task timeout in milliseconds */
|
|
97
120
|
taskTimeoutMs?: number;
|
|
121
|
+
/** Maximum queue size (tasks waiting for slot). If not set, uses maxTotalTasks - running as implicit limit */
|
|
122
|
+
maxQueueSize?: number;
|
|
123
|
+
/** Threshold in ms for detecting stale sessions (default: 5 min) */
|
|
124
|
+
staleThresholdMs?: number;
|
|
125
|
+
/** Callback when stale session detected */
|
|
126
|
+
onStaleSession?: (task: BackgroundTask) => void;
|
|
98
127
|
}
|
|
99
128
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/features/background-agent/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAC5B,SAAS,GACT,SAAS,GACT,WAAW,GACX,OAAO,GACP,WAAW,CAAC;AAEhB;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,gCAAgC;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4BAA4B;IAC5B,UAAU,EAAE,IAAI,CAAC;IACjB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6BAA6B;IAC7B,aAAa,CAAC,EAAE,IAAI,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,6BAA6B;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,eAAe,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,mCAAmC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,qBAAqB;IACrB,MAAM,EAAE,oBAAoB,CAAC;IAC7B,4BAA4B;IAC5B,SAAS,EAAE,IAAI,CAAC;IAChB,6CAA6C;IAC7C,WAAW,CAAC,EAAE,IAAI,CAAC;IACnB,mCAAmC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,mCAAmC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/features/background-agent/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delegation Categories
|
|
3
|
+
*
|
|
4
|
+
* Category-based delegation system that layers on top of ComplexityTier.
|
|
5
|
+
* Provides semantic grouping with automatic tier, temperature, and thinking budget.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { resolveCategory, getCategoryForTask } from './delegation-categories';
|
|
10
|
+
*
|
|
11
|
+
* // Explicit category
|
|
12
|
+
* const config = resolveCategory('ultrabrain');
|
|
13
|
+
* console.log(config.tier); // 'HIGH'
|
|
14
|
+
* console.log(config.temperature); // 0.3
|
|
15
|
+
*
|
|
16
|
+
* // Auto-detect category from task
|
|
17
|
+
* const detected = getCategoryForTask({ taskPrompt: "Design a beautiful dashboard" });
|
|
18
|
+
* console.log(detected.category); // 'visual-engineering'
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
import type { DelegationCategory, CategoryConfig, ResolvedCategory, CategoryContext, ThinkingBudget } from './types.js';
|
|
22
|
+
import type { ComplexityTier } from '../model-routing/types.js';
|
|
23
|
+
/**
|
|
24
|
+
* Category configuration definitions
|
|
25
|
+
*/
|
|
26
|
+
export declare const CATEGORY_CONFIGS: Record<DelegationCategory, CategoryConfig>;
|
|
27
|
+
/**
|
|
28
|
+
* Thinking budget token limits (approximate)
|
|
29
|
+
*/
|
|
30
|
+
export declare const THINKING_BUDGET_TOKENS: Record<ThinkingBudget, number>;
|
|
31
|
+
/**
|
|
32
|
+
* Resolve a category to its full configuration
|
|
33
|
+
*
|
|
34
|
+
* @param category - The category to resolve
|
|
35
|
+
* @returns Resolved category with configuration
|
|
36
|
+
*/
|
|
37
|
+
export declare function resolveCategory(category: DelegationCategory): ResolvedCategory;
|
|
38
|
+
/**
|
|
39
|
+
* Check if a string is a valid delegation category
|
|
40
|
+
*
|
|
41
|
+
* @param category - String to check
|
|
42
|
+
* @returns True if valid category
|
|
43
|
+
*/
|
|
44
|
+
export declare function isValidCategory(category: string): category is DelegationCategory;
|
|
45
|
+
/**
|
|
46
|
+
* Get all available categories
|
|
47
|
+
*
|
|
48
|
+
* @returns Array of all delegation categories
|
|
49
|
+
*/
|
|
50
|
+
export declare function getAllCategories(): DelegationCategory[];
|
|
51
|
+
/**
|
|
52
|
+
* Get description for a category
|
|
53
|
+
*
|
|
54
|
+
* @param category - The category
|
|
55
|
+
* @returns Human-readable description
|
|
56
|
+
*/
|
|
57
|
+
export declare function getCategoryDescription(category: DelegationCategory): string;
|
|
58
|
+
/**
|
|
59
|
+
* Detect category from task prompt using keyword matching
|
|
60
|
+
*
|
|
61
|
+
* @param taskPrompt - The task description
|
|
62
|
+
* @returns Best matching category or null
|
|
63
|
+
*/
|
|
64
|
+
export declare function detectCategoryFromPrompt(taskPrompt: string): DelegationCategory | null;
|
|
65
|
+
/**
|
|
66
|
+
* Get category for a task with context
|
|
67
|
+
*
|
|
68
|
+
* @param context - Category resolution context
|
|
69
|
+
* @returns Resolved category
|
|
70
|
+
*/
|
|
71
|
+
export declare function getCategoryForTask(context: CategoryContext): ResolvedCategory;
|
|
72
|
+
/**
|
|
73
|
+
* Get tier from category (for backward compatibility)
|
|
74
|
+
*
|
|
75
|
+
* @param category - Delegation category
|
|
76
|
+
* @returns Complexity tier
|
|
77
|
+
*/
|
|
78
|
+
export declare function getCategoryTier(category: DelegationCategory): ComplexityTier;
|
|
79
|
+
/**
|
|
80
|
+
* Get temperature from category
|
|
81
|
+
*
|
|
82
|
+
* @param category - Delegation category
|
|
83
|
+
* @returns Temperature value
|
|
84
|
+
*/
|
|
85
|
+
export declare function getCategoryTemperature(category: DelegationCategory): number;
|
|
86
|
+
/**
|
|
87
|
+
* Get thinking budget from category
|
|
88
|
+
*
|
|
89
|
+
* @param category - Delegation category
|
|
90
|
+
* @returns Thinking budget level
|
|
91
|
+
*/
|
|
92
|
+
export declare function getCategoryThinkingBudget(category: DelegationCategory): ThinkingBudget;
|
|
93
|
+
/**
|
|
94
|
+
* Get thinking budget in tokens
|
|
95
|
+
*
|
|
96
|
+
* @param category - Delegation category
|
|
97
|
+
* @returns Token budget
|
|
98
|
+
*/
|
|
99
|
+
export declare function getCategoryThinkingBudgetTokens(category: DelegationCategory): number;
|
|
100
|
+
/**
|
|
101
|
+
* Get prompt appendix for category
|
|
102
|
+
*
|
|
103
|
+
* @param category - Delegation category
|
|
104
|
+
* @returns Prompt appendix or empty string
|
|
105
|
+
*/
|
|
106
|
+
export declare function getCategoryPromptAppend(category: DelegationCategory): string;
|
|
107
|
+
/**
|
|
108
|
+
* Create a delegation prompt with category-specific guidance
|
|
109
|
+
*
|
|
110
|
+
* @param taskPrompt - Base task prompt
|
|
111
|
+
* @param category - Delegation category
|
|
112
|
+
* @returns Enhanced prompt with category guidance
|
|
113
|
+
*/
|
|
114
|
+
export declare function enhancePromptWithCategory(taskPrompt: string, category: DelegationCategory): string;
|
|
115
|
+
export type { DelegationCategory, CategoryConfig, ResolvedCategory, CategoryContext, ThinkingBudget, } from './types.js';
|
|
116
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/delegation-categories/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EACV,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,cAAc,EACf,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,kBAAkB,EAAE,cAAc,CAgDvE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAKjE,CAAC;AAwCF;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,kBAAkB,GAAG,gBAAgB,CAU9E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,IAAI,kBAAkB,CAEhF;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,kBAAkB,EAAE,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CAE3E;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAwCtF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,eAAe,GAAG,gBAAgB,CAoB7E;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,kBAAkB,GAAG,cAAc,CAE5E;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CAE3E;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,cAAc,CAEtF;AAED;;;;;GAKG;AACH,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CAGpF;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CAE5E;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,kBAAkB,GAC3B,MAAM,CAQR;AAGD,YAAY,EACV,kBAAkB,EAClB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,cAAc,GACf,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delegation Categories
|
|
3
|
+
*
|
|
4
|
+
* Category-based delegation system that layers on top of ComplexityTier.
|
|
5
|
+
* Provides semantic grouping with automatic tier, temperature, and thinking budget.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { resolveCategory, getCategoryForTask } from './delegation-categories';
|
|
10
|
+
*
|
|
11
|
+
* // Explicit category
|
|
12
|
+
* const config = resolveCategory('ultrabrain');
|
|
13
|
+
* console.log(config.tier); // 'HIGH'
|
|
14
|
+
* console.log(config.temperature); // 0.3
|
|
15
|
+
*
|
|
16
|
+
* // Auto-detect category from task
|
|
17
|
+
* const detected = getCategoryForTask({ taskPrompt: "Design a beautiful dashboard" });
|
|
18
|
+
* console.log(detected.category); // 'visual-engineering'
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Category configuration definitions
|
|
23
|
+
*/
|
|
24
|
+
export const CATEGORY_CONFIGS = {
|
|
25
|
+
'visual-engineering': {
|
|
26
|
+
tier: 'HIGH',
|
|
27
|
+
temperature: 0.7,
|
|
28
|
+
thinkingBudget: 'high',
|
|
29
|
+
description: 'UI/visual reasoning, frontend work, design systems',
|
|
30
|
+
promptAppend: 'Focus on visual design, user experience, and aesthetic quality. Consider accessibility, responsive design, and visual hierarchy.',
|
|
31
|
+
},
|
|
32
|
+
'ultrabrain': {
|
|
33
|
+
tier: 'HIGH',
|
|
34
|
+
temperature: 0.3,
|
|
35
|
+
thinkingBudget: 'max',
|
|
36
|
+
description: 'Complex reasoning, architecture decisions, deep debugging',
|
|
37
|
+
promptAppend: 'Think deeply and systematically. Consider all edge cases, implications, and long-term consequences. Reason through the problem step by step.',
|
|
38
|
+
},
|
|
39
|
+
'artistry': {
|
|
40
|
+
tier: 'MEDIUM',
|
|
41
|
+
temperature: 0.9,
|
|
42
|
+
thinkingBudget: 'medium',
|
|
43
|
+
description: 'Creative writing, novel approaches, innovative solutions',
|
|
44
|
+
promptAppend: 'Be creative and explore unconventional solutions. Think outside the box while maintaining practical feasibility.',
|
|
45
|
+
},
|
|
46
|
+
'quick': {
|
|
47
|
+
tier: 'LOW',
|
|
48
|
+
temperature: 0.1,
|
|
49
|
+
thinkingBudget: 'low',
|
|
50
|
+
description: 'Simple lookups, straightforward tasks, basic operations',
|
|
51
|
+
promptAppend: 'Be concise and efficient. Focus on accuracy and speed.',
|
|
52
|
+
},
|
|
53
|
+
'writing': {
|
|
54
|
+
tier: 'MEDIUM',
|
|
55
|
+
temperature: 0.5,
|
|
56
|
+
thinkingBudget: 'medium',
|
|
57
|
+
description: 'Documentation, technical writing, content creation',
|
|
58
|
+
promptAppend: 'Focus on clarity, completeness, and proper structure. Use appropriate technical terminology while remaining accessible.',
|
|
59
|
+
},
|
|
60
|
+
'unspecified-low': {
|
|
61
|
+
tier: 'LOW',
|
|
62
|
+
temperature: 0.3,
|
|
63
|
+
thinkingBudget: 'low',
|
|
64
|
+
description: 'Default for simple tasks when category is not specified',
|
|
65
|
+
},
|
|
66
|
+
'unspecified-high': {
|
|
67
|
+
tier: 'HIGH',
|
|
68
|
+
temperature: 0.5,
|
|
69
|
+
thinkingBudget: 'high',
|
|
70
|
+
description: 'Default for complex tasks when category is not specified',
|
|
71
|
+
},
|
|
72
|
+
};
|
|
73
|
+
/**
|
|
74
|
+
* Thinking budget token limits (approximate)
|
|
75
|
+
*/
|
|
76
|
+
export const THINKING_BUDGET_TOKENS = {
|
|
77
|
+
low: 1000,
|
|
78
|
+
medium: 5000,
|
|
79
|
+
high: 10000,
|
|
80
|
+
max: 32000,
|
|
81
|
+
};
|
|
82
|
+
/**
|
|
83
|
+
* Keywords for category detection.
|
|
84
|
+
*
|
|
85
|
+
* NOTE: These keywords overlap with COMPLEXITY_KEYWORDS in model-routing/types.ts
|
|
86
|
+
* by design. The systems serve different purposes:
|
|
87
|
+
* - COMPLEXITY_KEYWORDS: Determines model tier (haiku/sonnet/opus) based on complexity
|
|
88
|
+
* - CATEGORY_KEYWORDS: Provides semantic context via promptAppend for enhanced guidance
|
|
89
|
+
*
|
|
90
|
+
* Both can match the same prompt - categories enhance the prompt with context-specific
|
|
91
|
+
* instructions while model-routing independently selects the appropriate model tier.
|
|
92
|
+
*/
|
|
93
|
+
const CATEGORY_KEYWORDS = {
|
|
94
|
+
'visual-engineering': [
|
|
95
|
+
'ui', 'ux', 'design', 'frontend', 'component', 'style', 'css', 'visual',
|
|
96
|
+
'layout', 'responsive', 'interface', 'dashboard', 'form', 'button',
|
|
97
|
+
'theme', 'color', 'typography', 'animation', 'interactive',
|
|
98
|
+
],
|
|
99
|
+
'ultrabrain': [
|
|
100
|
+
'architecture', 'design pattern', 'refactor', 'optimize', 'debug',
|
|
101
|
+
'root cause', 'analyze', 'investigate', 'complex', 'system',
|
|
102
|
+
'performance', 'scalability', 'concurrency', 'race condition',
|
|
103
|
+
],
|
|
104
|
+
'artistry': [
|
|
105
|
+
'creative', 'innovative', 'novel', 'unique', 'original',
|
|
106
|
+
'brainstorm', 'ideate', 'explore', 'imagine', 'unconventional',
|
|
107
|
+
],
|
|
108
|
+
'quick': [
|
|
109
|
+
'find', 'search', 'locate', 'list', 'show', 'get', 'fetch',
|
|
110
|
+
'where is', 'what is', 'display', 'print', 'lookup',
|
|
111
|
+
],
|
|
112
|
+
'writing': [
|
|
113
|
+
'document', 'readme', 'comment', 'explain', 'describe',
|
|
114
|
+
'write', 'draft', 'article', 'guide', 'tutorial', 'docs',
|
|
115
|
+
],
|
|
116
|
+
'unspecified-low': [],
|
|
117
|
+
'unspecified-high': [],
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Resolve a category to its full configuration
|
|
121
|
+
*
|
|
122
|
+
* @param category - The category to resolve
|
|
123
|
+
* @returns Resolved category with configuration
|
|
124
|
+
*/
|
|
125
|
+
export function resolveCategory(category) {
|
|
126
|
+
const config = CATEGORY_CONFIGS[category];
|
|
127
|
+
if (!config) {
|
|
128
|
+
throw new Error(`Unknown delegation category: ${category}`);
|
|
129
|
+
}
|
|
130
|
+
return {
|
|
131
|
+
category,
|
|
132
|
+
...config,
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Check if a string is a valid delegation category
|
|
137
|
+
*
|
|
138
|
+
* @param category - String to check
|
|
139
|
+
* @returns True if valid category
|
|
140
|
+
*/
|
|
141
|
+
export function isValidCategory(category) {
|
|
142
|
+
return category in CATEGORY_CONFIGS;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Get all available categories
|
|
146
|
+
*
|
|
147
|
+
* @returns Array of all delegation categories
|
|
148
|
+
*/
|
|
149
|
+
export function getAllCategories() {
|
|
150
|
+
return Object.keys(CATEGORY_CONFIGS);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Get description for a category
|
|
154
|
+
*
|
|
155
|
+
* @param category - The category
|
|
156
|
+
* @returns Human-readable description
|
|
157
|
+
*/
|
|
158
|
+
export function getCategoryDescription(category) {
|
|
159
|
+
return CATEGORY_CONFIGS[category].description;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Detect category from task prompt using keyword matching
|
|
163
|
+
*
|
|
164
|
+
* @param taskPrompt - The task description
|
|
165
|
+
* @returns Best matching category or null
|
|
166
|
+
*/
|
|
167
|
+
export function detectCategoryFromPrompt(taskPrompt) {
|
|
168
|
+
const lowerPrompt = taskPrompt.toLowerCase();
|
|
169
|
+
const scores = {
|
|
170
|
+
'visual-engineering': 0,
|
|
171
|
+
'ultrabrain': 0,
|
|
172
|
+
'artistry': 0,
|
|
173
|
+
'quick': 0,
|
|
174
|
+
'writing': 0,
|
|
175
|
+
'unspecified-low': 0,
|
|
176
|
+
'unspecified-high': 0,
|
|
177
|
+
};
|
|
178
|
+
// Score each category based on keyword matches
|
|
179
|
+
for (const [category, keywords] of Object.entries(CATEGORY_KEYWORDS)) {
|
|
180
|
+
for (const keyword of keywords) {
|
|
181
|
+
if (lowerPrompt.includes(keyword)) {
|
|
182
|
+
scores[category]++;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
// Find highest scoring category (excluding unspecified)
|
|
187
|
+
let maxScore = 0;
|
|
188
|
+
let bestCategory = null;
|
|
189
|
+
for (const category of getAllCategories()) {
|
|
190
|
+
if (category.startsWith('unspecified-'))
|
|
191
|
+
continue;
|
|
192
|
+
if (scores[category] > maxScore) {
|
|
193
|
+
maxScore = scores[category];
|
|
194
|
+
bestCategory = category;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
// Require at least 2 keyword matches for confidence
|
|
198
|
+
if (maxScore >= 2 && bestCategory) {
|
|
199
|
+
return bestCategory;
|
|
200
|
+
}
|
|
201
|
+
return null;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Get category for a task with context
|
|
205
|
+
*
|
|
206
|
+
* @param context - Category resolution context
|
|
207
|
+
* @returns Resolved category
|
|
208
|
+
*/
|
|
209
|
+
export function getCategoryForTask(context) {
|
|
210
|
+
// Explicit tier bypasses categories
|
|
211
|
+
if (context.explicitTier) {
|
|
212
|
+
const category = context.explicitTier === 'LOW' ? 'unspecified-low' : 'unspecified-high';
|
|
213
|
+
return resolveCategory(category);
|
|
214
|
+
}
|
|
215
|
+
// Explicit category
|
|
216
|
+
if (context.explicitCategory) {
|
|
217
|
+
return resolveCategory(context.explicitCategory);
|
|
218
|
+
}
|
|
219
|
+
// Auto-detect from task prompt
|
|
220
|
+
const detected = detectCategoryFromPrompt(context.taskPrompt);
|
|
221
|
+
if (detected) {
|
|
222
|
+
return resolveCategory(detected);
|
|
223
|
+
}
|
|
224
|
+
// Default to medium tier
|
|
225
|
+
return resolveCategory('unspecified-high');
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Get tier from category (for backward compatibility)
|
|
229
|
+
*
|
|
230
|
+
* @param category - Delegation category
|
|
231
|
+
* @returns Complexity tier
|
|
232
|
+
*/
|
|
233
|
+
export function getCategoryTier(category) {
|
|
234
|
+
return CATEGORY_CONFIGS[category].tier;
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Get temperature from category
|
|
238
|
+
*
|
|
239
|
+
* @param category - Delegation category
|
|
240
|
+
* @returns Temperature value
|
|
241
|
+
*/
|
|
242
|
+
export function getCategoryTemperature(category) {
|
|
243
|
+
return CATEGORY_CONFIGS[category].temperature;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Get thinking budget from category
|
|
247
|
+
*
|
|
248
|
+
* @param category - Delegation category
|
|
249
|
+
* @returns Thinking budget level
|
|
250
|
+
*/
|
|
251
|
+
export function getCategoryThinkingBudget(category) {
|
|
252
|
+
return CATEGORY_CONFIGS[category].thinkingBudget;
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Get thinking budget in tokens
|
|
256
|
+
*
|
|
257
|
+
* @param category - Delegation category
|
|
258
|
+
* @returns Token budget
|
|
259
|
+
*/
|
|
260
|
+
export function getCategoryThinkingBudgetTokens(category) {
|
|
261
|
+
const budget = CATEGORY_CONFIGS[category].thinkingBudget;
|
|
262
|
+
return THINKING_BUDGET_TOKENS[budget];
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Get prompt appendix for category
|
|
266
|
+
*
|
|
267
|
+
* @param category - Delegation category
|
|
268
|
+
* @returns Prompt appendix or empty string
|
|
269
|
+
*/
|
|
270
|
+
export function getCategoryPromptAppend(category) {
|
|
271
|
+
return CATEGORY_CONFIGS[category].promptAppend || '';
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Create a delegation prompt with category-specific guidance
|
|
275
|
+
*
|
|
276
|
+
* @param taskPrompt - Base task prompt
|
|
277
|
+
* @param category - Delegation category
|
|
278
|
+
* @returns Enhanced prompt with category guidance
|
|
279
|
+
*/
|
|
280
|
+
export function enhancePromptWithCategory(taskPrompt, category) {
|
|
281
|
+
const config = CATEGORY_CONFIGS[category];
|
|
282
|
+
if (!config.promptAppend) {
|
|
283
|
+
return taskPrompt;
|
|
284
|
+
}
|
|
285
|
+
return `${taskPrompt}\n\n${config.promptAppend}`;
|
|
286
|
+
}
|
|
287
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/delegation-categories/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-categories.d.ts","sourceRoot":"","sources":["../../../src/features/delegation-categories/test-categories.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Manual tests for delegation categories
|
|
3
|
+
*
|
|
4
|
+
* Run with: npx tsx src/features/delegation-categories/test-categories.ts
|
|
5
|
+
*/
|
|
6
|
+
import { resolveCategory, isValidCategory, getAllCategories, getCategoryDescription, detectCategoryFromPrompt, getCategoryForTask, getCategoryTier, getCategoryTemperature, getCategoryThinkingBudget, getCategoryThinkingBudgetTokens, enhancePromptWithCategory, CATEGORY_CONFIGS, } from './index.js';
|
|
7
|
+
console.log('=== Delegation Categories Test ===\n');
|
|
8
|
+
// Test 1: Resolve all categories
|
|
9
|
+
console.log('1. Testing resolveCategory():');
|
|
10
|
+
for (const category of getAllCategories()) {
|
|
11
|
+
const resolved = resolveCategory(category);
|
|
12
|
+
console.log(` ${category}:`);
|
|
13
|
+
console.log(` tier: ${resolved.tier}`);
|
|
14
|
+
console.log(` temperature: ${resolved.temperature}`);
|
|
15
|
+
console.log(` thinkingBudget: ${resolved.thinkingBudget}`);
|
|
16
|
+
console.log(` description: ${resolved.description}`);
|
|
17
|
+
}
|
|
18
|
+
console.log();
|
|
19
|
+
// Test 2: isValidCategory
|
|
20
|
+
console.log('2. Testing isValidCategory():');
|
|
21
|
+
console.log(` isValidCategory('ultrabrain'): ${isValidCategory('ultrabrain')}`);
|
|
22
|
+
console.log(` isValidCategory('invalid'): ${isValidCategory('invalid')}`);
|
|
23
|
+
console.log();
|
|
24
|
+
// Test 3: getCategoryDescription
|
|
25
|
+
console.log('3. Testing getCategoryDescription():');
|
|
26
|
+
console.log(` ultrabrain: ${getCategoryDescription('ultrabrain')}`);
|
|
27
|
+
console.log(` quick: ${getCategoryDescription('quick')}`);
|
|
28
|
+
console.log();
|
|
29
|
+
// Test 4: detectCategoryFromPrompt
|
|
30
|
+
console.log('4. Testing detectCategoryFromPrompt():');
|
|
31
|
+
const testPrompts = [
|
|
32
|
+
'Design a beautiful dashboard with responsive layout',
|
|
33
|
+
'Debug this complex race condition in the system',
|
|
34
|
+
'Find where the authentication function is defined',
|
|
35
|
+
'Write comprehensive documentation for the API',
|
|
36
|
+
'Come up with innovative solutions for this problem',
|
|
37
|
+
'Simple task with no keywords',
|
|
38
|
+
];
|
|
39
|
+
for (const prompt of testPrompts) {
|
|
40
|
+
const detected = detectCategoryFromPrompt(prompt);
|
|
41
|
+
console.log(` "${prompt}"`);
|
|
42
|
+
console.log(` -> ${detected || 'null'}`);
|
|
43
|
+
}
|
|
44
|
+
console.log();
|
|
45
|
+
// Test 5: getCategoryForTask
|
|
46
|
+
console.log('5. Testing getCategoryForTask():');
|
|
47
|
+
// Explicit tier
|
|
48
|
+
const explicitTier = getCategoryForTask({
|
|
49
|
+
taskPrompt: 'Some task',
|
|
50
|
+
explicitTier: 'LOW',
|
|
51
|
+
});
|
|
52
|
+
console.log(` Explicit tier=LOW: ${explicitTier.category} (tier: ${explicitTier.tier})`);
|
|
53
|
+
// Explicit category
|
|
54
|
+
const explicitCategory = getCategoryForTask({
|
|
55
|
+
taskPrompt: 'Some task',
|
|
56
|
+
explicitCategory: 'ultrabrain',
|
|
57
|
+
});
|
|
58
|
+
console.log(` Explicit category=ultrabrain: ${explicitCategory.category} (tier: ${explicitCategory.tier})`);
|
|
59
|
+
// Auto-detect
|
|
60
|
+
const autoDetect = getCategoryForTask({
|
|
61
|
+
taskPrompt: 'Design a beautiful UI component with animations',
|
|
62
|
+
});
|
|
63
|
+
console.log(` Auto-detect from prompt: ${autoDetect.category} (tier: ${autoDetect.tier})`);
|
|
64
|
+
console.log();
|
|
65
|
+
// Test 6: Tier extraction
|
|
66
|
+
console.log('6. Testing tier extraction:');
|
|
67
|
+
console.log(` getCategoryTier('ultrabrain'): ${getCategoryTier('ultrabrain')}`);
|
|
68
|
+
console.log(` getCategoryTier('quick'): ${getCategoryTier('quick')}`);
|
|
69
|
+
console.log(` getCategoryTemperature('artistry'): ${getCategoryTemperature('artistry')}`);
|
|
70
|
+
console.log(` getCategoryThinkingBudget('ultrabrain'): ${getCategoryThinkingBudget('ultrabrain')}`);
|
|
71
|
+
console.log(` getCategoryThinkingBudgetTokens('ultrabrain'): ${getCategoryThinkingBudgetTokens('ultrabrain')}`);
|
|
72
|
+
console.log();
|
|
73
|
+
// Test 7: Prompt enhancement
|
|
74
|
+
console.log('7. Testing enhancePromptWithCategory():');
|
|
75
|
+
const basePrompt = 'Create a login form';
|
|
76
|
+
const enhanced = enhancePromptWithCategory(basePrompt, 'visual-engineering');
|
|
77
|
+
console.log(` Base: ${basePrompt}`);
|
|
78
|
+
console.log(` Enhanced: ${enhanced}`);
|
|
79
|
+
console.log();
|
|
80
|
+
// Test 8: Backward compatibility
|
|
81
|
+
console.log('8. Testing backward compatibility with ComplexityTier:');
|
|
82
|
+
console.log(' Categories map to tiers:');
|
|
83
|
+
for (const [category, config] of Object.entries(CATEGORY_CONFIGS)) {
|
|
84
|
+
console.log(` ${category} -> ${config.tier}`);
|
|
85
|
+
}
|
|
86
|
+
console.log();
|
|
87
|
+
console.log('=== All tests completed ===');
|
|
88
|
+
//# sourceMappingURL=test-categories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-categories.js","sourceRoot":"","sources":["../../../src/features/delegation-categories/test-categories.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Delegation Categories Types
|
|
3
|
+
*
|
|
4
|
+
* Category-based delegation system that layers on top of ComplexityTier.
|
|
5
|
+
* Categories provide semantic grouping with tier, temperature, and thinking budget.
|
|
6
|
+
*/
|
|
7
|
+
import type { ComplexityTier } from '../model-routing/types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Semantic categories for delegation that map to complexity tiers + configuration
|
|
10
|
+
*/
|
|
11
|
+
export type DelegationCategory = 'visual-engineering' | 'ultrabrain' | 'artistry' | 'quick' | 'writing' | 'unspecified-low' | 'unspecified-high';
|
|
12
|
+
/**
|
|
13
|
+
* Thinking budget levels
|
|
14
|
+
*/
|
|
15
|
+
export type ThinkingBudget = 'low' | 'medium' | 'high' | 'max';
|
|
16
|
+
/**
|
|
17
|
+
* Configuration for a delegation category
|
|
18
|
+
*/
|
|
19
|
+
export interface CategoryConfig {
|
|
20
|
+
/** Complexity tier (LOW/MEDIUM/HIGH) */
|
|
21
|
+
tier: ComplexityTier;
|
|
22
|
+
/** Temperature for model sampling (0-1) */
|
|
23
|
+
temperature: number;
|
|
24
|
+
/** Thinking budget level */
|
|
25
|
+
thinkingBudget: ThinkingBudget;
|
|
26
|
+
/** Optional prompt appendix for this category */
|
|
27
|
+
promptAppend?: string;
|
|
28
|
+
/** Human-readable description */
|
|
29
|
+
description: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Resolved category with full configuration
|
|
33
|
+
*/
|
|
34
|
+
export interface ResolvedCategory extends CategoryConfig {
|
|
35
|
+
/** The category identifier */
|
|
36
|
+
category: DelegationCategory;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Context for category resolution
|
|
40
|
+
*/
|
|
41
|
+
export interface CategoryContext {
|
|
42
|
+
/** Task description */
|
|
43
|
+
taskPrompt: string;
|
|
44
|
+
/** Agent type being delegated to */
|
|
45
|
+
agentType?: string;
|
|
46
|
+
/** Explicitly specified category (overrides detection) */
|
|
47
|
+
explicitCategory?: DelegationCategory;
|
|
48
|
+
/** Explicitly specified tier (bypasses categories) */
|
|
49
|
+
explicitTier?: ComplexityTier;
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/features/delegation-categories/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAEhE;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B,oBAAoB,GACpB,YAAY,GACZ,UAAU,GACV,OAAO,GACP,SAAS,GACT,iBAAiB,GACjB,kBAAkB,CAAC;AAEvB;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wCAAwC;IACxC,IAAI,EAAE,cAAc,CAAC;IACrB,2CAA2C;IAC3C,WAAW,EAAE,MAAM,CAAC;IACpB,4BAA4B;IAC5B,cAAc,EAAE,cAAc,CAAC;IAC/B,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,cAAc;IACtD,8BAA8B;IAC9B,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uBAAuB;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0DAA0D;IAC1D,gBAAgB,CAAC,EAAE,kBAAkB,CAAC;IACtC,sDAAsD;IACtD,YAAY,CAAC,EAAE,cAAc,CAAC;CAC/B"}
|