olympus-ai 1.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/LICENSE +21 -0
- package/README.md +691 -0
- package/dist/__tests__/example.test.d.ts +2 -0
- package/dist/__tests__/example.test.d.ts.map +1 -0
- package/dist/__tests__/example.test.js +20 -0
- package/dist/__tests__/example.test.js.map +1 -0
- package/dist/__tests__/hooks.test.d.ts +2 -0
- package/dist/__tests__/hooks.test.d.ts.map +1 -0
- package/dist/__tests__/hooks.test.js +644 -0
- package/dist/__tests__/hooks.test.js.map +1 -0
- package/dist/__tests__/installer.test.d.ts +2 -0
- package/dist/__tests__/installer.test.d.ts.map +1 -0
- package/dist/__tests__/installer.test.js +369 -0
- package/dist/__tests__/installer.test.js.map +1 -0
- package/dist/__tests__/model-routing.test.d.ts +2 -0
- package/dist/__tests__/model-routing.test.d.ts.map +1 -0
- package/dist/__tests__/model-routing.test.js +814 -0
- package/dist/__tests__/model-routing.test.js.map +1 -0
- package/dist/__tests__/skills.test.d.ts +2 -0
- package/dist/__tests__/skills.test.d.ts.map +1 -0
- package/dist/__tests__/skills.test.js +126 -0
- package/dist/__tests__/skills.test.js.map +1 -0
- package/dist/__tests__/types.test.d.ts +2 -0
- package/dist/__tests__/types.test.d.ts.map +1 -0
- package/dist/__tests__/types.test.js +77 -0
- package/dist/__tests__/types.test.js.map +1 -0
- package/dist/agents/definitions.d.ts +105 -0
- package/dist/agents/definitions.d.ts.map +1 -0
- package/dist/agents/definitions.js +1379 -0
- package/dist/agents/definitions.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/explore.d.ts +12 -0
- package/dist/agents/explore.d.ts.map +1 -0
- package/dist/agents/explore.js +103 -0
- package/dist/agents/explore.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/index.d.ts +21 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +27 -0
- package/dist/agents/index.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/olympian.d.ts +12 -0
- package/dist/agents/olympian.d.ts.map +1 -0
- package/dist/agents/olympian.js +93 -0
- package/dist/agents/olympian.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-olympus.d.ts +11 -0
- package/dist/agents/orchestrator-olympus.d.ts.map +1 -0
- package/dist/agents/orchestrator-olympus.js +115 -0
- package/dist/agents/orchestrator-olympus.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 +156 -0
- package/dist/agents/prometheus.js.map +1 -0
- package/dist/agents/qa-tester.d.ts +16 -0
- package/dist/agents/qa-tester.d.ts.map +1 -0
- package/dist/agents/qa-tester.js +367 -0
- package/dist/agents/qa-tester.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 +120 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +38 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/agents/utils.d.ts +49 -0
- package/dist/agents/utils.d.ts.map +1 -0
- package/dist/agents/utils.js +164 -0
- package/dist/agents/utils.js.map +1 -0
- package/dist/cli/index.d.ts +13 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +496 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/commands/index.d.ts +78 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +148 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/config/index.d.ts +5 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +5 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +49 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +380 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/features/auto-update.d.ts +187 -0
- package/dist/features/auto-update.d.ts.map +1 -0
- package/dist/features/auto-update.js +539 -0
- package/dist/features/auto-update.js.map +1 -0
- package/dist/features/background-agent/concurrency.d.ts +53 -0
- package/dist/features/background-agent/concurrency.d.ts.map +1 -0
- package/dist/features/background-agent/concurrency.js +121 -0
- package/dist/features/background-agent/concurrency.js.map +1 -0
- package/dist/features/background-agent/index.d.ts +12 -0
- package/dist/features/background-agent/index.d.ts.map +1 -0
- package/dist/features/background-agent/index.js +12 -0
- package/dist/features/background-agent/index.js.map +1 -0
- package/dist/features/background-agent/manager.d.ts +134 -0
- package/dist/features/background-agent/manager.d.ts.map +1 -0
- package/dist/features/background-agent/manager.js +412 -0
- package/dist/features/background-agent/manager.js.map +1 -0
- package/dist/features/background-agent/types.d.ts +99 -0
- package/dist/features/background-agent/types.d.ts.map +1 -0
- package/dist/features/background-agent/types.js +9 -0
- package/dist/features/background-agent/types.js.map +1 -0
- package/dist/features/background-tasks.d.ts +99 -0
- package/dist/features/background-tasks.d.ts.map +1 -0
- package/dist/features/background-tasks.js +265 -0
- package/dist/features/background-tasks.js.map +1 -0
- package/dist/features/boulder-state/constants.d.ts +20 -0
- package/dist/features/boulder-state/constants.d.ts.map +1 -0
- package/dist/features/boulder-state/constants.js +20 -0
- package/dist/features/boulder-state/constants.js.map +1 -0
- package/dist/features/boulder-state/index.d.ts +12 -0
- package/dist/features/boulder-state/index.d.ts.map +1 -0
- package/dist/features/boulder-state/index.js +13 -0
- package/dist/features/boulder-state/index.js.map +1 -0
- package/dist/features/boulder-state/storage.d.ts +58 -0
- package/dist/features/boulder-state/storage.d.ts.map +1 -0
- package/dist/features/boulder-state/storage.js +174 -0
- package/dist/features/boulder-state/storage.js.map +1 -0
- package/dist/features/boulder-state/types.d.ts +48 -0
- package/dist/features/boulder-state/types.d.ts.map +1 -0
- package/dist/features/boulder-state/types.js +10 -0
- package/dist/features/boulder-state/types.js.map +1 -0
- package/dist/features/builtin-skills/index.d.ts +10 -0
- package/dist/features/builtin-skills/index.d.ts.map +1 -0
- package/dist/features/builtin-skills/index.js +10 -0
- package/dist/features/builtin-skills/index.js.map +1 -0
- package/dist/features/builtin-skills/skills.d.ts +21 -0
- package/dist/features/builtin-skills/skills.d.ts.map +1 -0
- package/dist/features/builtin-skills/skills.js +1082 -0
- package/dist/features/builtin-skills/skills.js.map +1 -0
- package/dist/features/builtin-skills/types.d.ts +60 -0
- package/dist/features/builtin-skills/types.d.ts.map +1 -0
- package/dist/features/builtin-skills/types.js +9 -0
- package/dist/features/builtin-skills/types.js.map +1 -0
- package/dist/features/context-injector/collector.d.ts +56 -0
- package/dist/features/context-injector/collector.d.ts.map +1 -0
- package/dist/features/context-injector/collector.js +122 -0
- package/dist/features/context-injector/collector.js.map +1 -0
- package/dist/features/context-injector/index.d.ts +12 -0
- package/dist/features/context-injector/index.d.ts.map +1 -0
- package/dist/features/context-injector/index.js +13 -0
- package/dist/features/context-injector/index.js.map +1 -0
- package/dist/features/context-injector/injector.d.ts +47 -0
- package/dist/features/context-injector/injector.d.ts.map +1 -0
- package/dist/features/context-injector/injector.js +103 -0
- package/dist/features/context-injector/injector.js.map +1 -0
- package/dist/features/context-injector/types.d.ts +103 -0
- package/dist/features/context-injector/types.d.ts.map +1 -0
- package/dist/features/context-injector/types.js +11 -0
- package/dist/features/context-injector/types.js.map +1 -0
- package/dist/features/continuation-enforcement.d.ts +36 -0
- package/dist/features/continuation-enforcement.d.ts.map +1 -0
- package/dist/features/continuation-enforcement.js +175 -0
- package/dist/features/continuation-enforcement.js.map +1 -0
- package/dist/features/index.d.ts +12 -0
- package/dist/features/index.d.ts.map +1 -0
- package/dist/features/index.js +49 -0
- package/dist/features/index.js.map +1 -0
- package/dist/features/magic-keywords.d.ts +28 -0
- package/dist/features/magic-keywords.d.ts.map +1 -0
- package/dist/features/magic-keywords.js +421 -0
- package/dist/features/magic-keywords.js.map +1 -0
- package/dist/features/model-routing/index.d.ts +34 -0
- package/dist/features/model-routing/index.d.ts.map +1 -0
- package/dist/features/model-routing/index.js +48 -0
- package/dist/features/model-routing/index.js.map +1 -0
- package/dist/features/model-routing/prompts/haiku.d.ts +54 -0
- package/dist/features/model-routing/prompts/haiku.d.ts.map +1 -0
- package/dist/features/model-routing/prompts/haiku.js +141 -0
- package/dist/features/model-routing/prompts/haiku.js.map +1 -0
- package/dist/features/model-routing/prompts/index.d.ts +45 -0
- package/dist/features/model-routing/prompts/index.d.ts.map +1 -0
- package/dist/features/model-routing/prompts/index.js +116 -0
- package/dist/features/model-routing/prompts/index.js.map +1 -0
- package/dist/features/model-routing/prompts/opus.d.ts +34 -0
- package/dist/features/model-routing/prompts/opus.d.ts.map +1 -0
- package/dist/features/model-routing/prompts/opus.js +153 -0
- package/dist/features/model-routing/prompts/opus.js.map +1 -0
- package/dist/features/model-routing/prompts/sonnet.d.ts +38 -0
- package/dist/features/model-routing/prompts/sonnet.d.ts.map +1 -0
- package/dist/features/model-routing/prompts/sonnet.js +149 -0
- package/dist/features/model-routing/prompts/sonnet.js.map +1 -0
- package/dist/features/model-routing/router.d.ts +92 -0
- package/dist/features/model-routing/router.d.ts.map +1 -0
- package/dist/features/model-routing/router.js +267 -0
- package/dist/features/model-routing/router.js.map +1 -0
- package/dist/features/model-routing/rules.d.ts +32 -0
- package/dist/features/model-routing/rules.d.ts.map +1 -0
- package/dist/features/model-routing/rules.js +224 -0
- package/dist/features/model-routing/rules.js.map +1 -0
- package/dist/features/model-routing/scorer.d.ts +35 -0
- package/dist/features/model-routing/scorer.d.ts.map +1 -0
- package/dist/features/model-routing/scorer.js +241 -0
- package/dist/features/model-routing/scorer.js.map +1 -0
- package/dist/features/model-routing/signals.d.ts +26 -0
- package/dist/features/model-routing/signals.d.ts.map +1 -0
- package/dist/features/model-routing/signals.js +283 -0
- package/dist/features/model-routing/signals.js.map +1 -0
- package/dist/features/model-routing/types.d.ts +195 -0
- package/dist/features/model-routing/types.d.ts.map +1 -0
- package/dist/features/model-routing/types.js +86 -0
- package/dist/features/model-routing/types.js.map +1 -0
- package/dist/hooks/agent-usage-reminder/constants.d.ts +17 -0
- package/dist/hooks/agent-usage-reminder/constants.d.ts.map +1 -0
- package/dist/hooks/agent-usage-reminder/constants.js +58 -0
- package/dist/hooks/agent-usage-reminder/constants.js.map +1 -0
- package/dist/hooks/agent-usage-reminder/index.d.ts +36 -0
- package/dist/hooks/agent-usage-reminder/index.d.ts.map +1 -0
- package/dist/hooks/agent-usage-reminder/index.js +89 -0
- package/dist/hooks/agent-usage-reminder/index.js.map +1 -0
- package/dist/hooks/agent-usage-reminder/storage.d.ts +12 -0
- package/dist/hooks/agent-usage-reminder/storage.d.ts.map +1 -0
- package/dist/hooks/agent-usage-reminder/storage.js +39 -0
- package/dist/hooks/agent-usage-reminder/storage.js.map +1 -0
- package/dist/hooks/agent-usage-reminder/types.d.ts +14 -0
- package/dist/hooks/agent-usage-reminder/types.d.ts.map +1 -0
- package/dist/hooks/agent-usage-reminder/types.js +9 -0
- package/dist/hooks/agent-usage-reminder/types.js.map +1 -0
- package/dist/hooks/ascent-verifier/index.d.ts +72 -0
- package/dist/hooks/ascent-verifier/index.d.ts.map +1 -0
- package/dist/hooks/ascent-verifier/index.js +223 -0
- package/dist/hooks/ascent-verifier/index.js.map +1 -0
- package/dist/hooks/auto-slash-command/constants.d.ts +19 -0
- package/dist/hooks/auto-slash-command/constants.d.ts.map +1 -0
- package/dist/hooks/auto-slash-command/constants.js +28 -0
- package/dist/hooks/auto-slash-command/constants.js.map +1 -0
- package/dist/hooks/auto-slash-command/detector.d.ts +33 -0
- package/dist/hooks/auto-slash-command/detector.d.ts.map +1 -0
- package/dist/hooks/auto-slash-command/detector.js +73 -0
- package/dist/hooks/auto-slash-command/detector.js.map +1 -0
- package/dist/hooks/auto-slash-command/executor.d.ts +29 -0
- package/dist/hooks/auto-slash-command/executor.d.ts.map +1 -0
- package/dist/hooks/auto-slash-command/executor.js +214 -0
- package/dist/hooks/auto-slash-command/executor.js.map +1 -0
- package/dist/hooks/auto-slash-command/index.d.ts +53 -0
- package/dist/hooks/auto-slash-command/index.d.ts.map +1 -0
- package/dist/hooks/auto-slash-command/index.js +105 -0
- package/dist/hooks/auto-slash-command/index.js.map +1 -0
- package/dist/hooks/auto-slash-command/types.d.ts +77 -0
- package/dist/hooks/auto-slash-command/types.d.ts.map +1 -0
- package/dist/hooks/auto-slash-command/types.js +9 -0
- package/dist/hooks/auto-slash-command/types.js.map +1 -0
- package/dist/hooks/background-notification/index.d.ts +60 -0
- package/dist/hooks/background-notification/index.d.ts.map +1 -0
- package/dist/hooks/background-notification/index.js +180 -0
- package/dist/hooks/background-notification/index.js.map +1 -0
- package/dist/hooks/background-notification/types.d.ts +64 -0
- package/dist/hooks/background-notification/types.d.ts.map +1 -0
- package/dist/hooks/background-notification/types.js +8 -0
- package/dist/hooks/background-notification/types.js.map +1 -0
- package/dist/hooks/bridge.d.ts +68 -0
- package/dist/hooks/bridge.d.ts.map +1 -0
- package/dist/hooks/bridge.js +321 -0
- package/dist/hooks/bridge.js.map +1 -0
- package/dist/hooks/comment-checker/constants.d.ts +28 -0
- package/dist/hooks/comment-checker/constants.d.ts.map +1 -0
- package/dist/hooks/comment-checker/constants.js +189 -0
- package/dist/hooks/comment-checker/constants.js.map +1 -0
- package/dist/hooks/comment-checker/filters.d.ts +39 -0
- package/dist/hooks/comment-checker/filters.d.ts.map +1 -0
- package/dist/hooks/comment-checker/filters.js +126 -0
- package/dist/hooks/comment-checker/filters.js.map +1 -0
- package/dist/hooks/comment-checker/index.d.ts +58 -0
- package/dist/hooks/comment-checker/index.d.ts.map +1 -0
- package/dist/hooks/comment-checker/index.js +298 -0
- package/dist/hooks/comment-checker/index.js.map +1 -0
- package/dist/hooks/comment-checker/types.d.ts +88 -0
- package/dist/hooks/comment-checker/types.d.ts.map +1 -0
- package/dist/hooks/comment-checker/types.js +9 -0
- package/dist/hooks/comment-checker/types.js.map +1 -0
- package/dist/hooks/context-window-limit-recovery/constants.d.ts +28 -0
- package/dist/hooks/context-window-limit-recovery/constants.d.ts.map +1 -0
- package/dist/hooks/context-window-limit-recovery/constants.js +85 -0
- package/dist/hooks/context-window-limit-recovery/constants.js.map +1 -0
- package/dist/hooks/context-window-limit-recovery/index.d.ts +62 -0
- package/dist/hooks/context-window-limit-recovery/index.d.ts.map +1 -0
- package/dist/hooks/context-window-limit-recovery/index.js +201 -0
- package/dist/hooks/context-window-limit-recovery/index.js.map +1 -0
- package/dist/hooks/context-window-limit-recovery/parser.d.ts +31 -0
- package/dist/hooks/context-window-limit-recovery/parser.d.ts.map +1 -0
- package/dist/hooks/context-window-limit-recovery/parser.js +241 -0
- package/dist/hooks/context-window-limit-recovery/parser.js.map +1 -0
- package/dist/hooks/context-window-limit-recovery/types.d.ts +84 -0
- package/dist/hooks/context-window-limit-recovery/types.d.ts.map +1 -0
- package/dist/hooks/context-window-limit-recovery/types.js +34 -0
- package/dist/hooks/context-window-limit-recovery/types.js.map +1 -0
- package/dist/hooks/directory-readme-injector/constants.d.ts +15 -0
- package/dist/hooks/directory-readme-injector/constants.d.ts.map +1 -0
- package/dist/hooks/directory-readme-injector/constants.js +17 -0
- package/dist/hooks/directory-readme-injector/constants.js.map +1 -0
- package/dist/hooks/directory-readme-injector/index.d.ts +41 -0
- package/dist/hooks/directory-readme-injector/index.d.ts.map +1 -0
- package/dist/hooks/directory-readme-injector/index.js +162 -0
- package/dist/hooks/directory-readme-injector/index.js.map +1 -0
- package/dist/hooks/directory-readme-injector/storage.d.ts +20 -0
- package/dist/hooks/directory-readme-injector/storage.d.ts.map +1 -0
- package/dist/hooks/directory-readme-injector/storage.js +56 -0
- package/dist/hooks/directory-readme-injector/storage.js.map +1 -0
- package/dist/hooks/directory-readme-injector/types.d.ts +20 -0
- package/dist/hooks/directory-readme-injector/types.d.ts.map +1 -0
- package/dist/hooks/directory-readme-injector/types.js +9 -0
- package/dist/hooks/directory-readme-injector/types.js.map +1 -0
- package/dist/hooks/edit-error-recovery/index.d.ts +62 -0
- package/dist/hooks/edit-error-recovery/index.d.ts.map +1 -0
- package/dist/hooks/edit-error-recovery/index.js +89 -0
- package/dist/hooks/edit-error-recovery/index.js.map +1 -0
- package/dist/hooks/empty-message-sanitizer/constants.d.ts +33 -0
- package/dist/hooks/empty-message-sanitizer/constants.d.ts.map +1 -0
- package/dist/hooks/empty-message-sanitizer/constants.js +37 -0
- package/dist/hooks/empty-message-sanitizer/constants.js.map +1 -0
- package/dist/hooks/empty-message-sanitizer/index.d.ts +59 -0
- package/dist/hooks/empty-message-sanitizer/index.d.ts.map +1 -0
- package/dist/hooks/empty-message-sanitizer/index.js +171 -0
- package/dist/hooks/empty-message-sanitizer/index.js.map +1 -0
- package/dist/hooks/empty-message-sanitizer/types.d.ts +79 -0
- package/dist/hooks/empty-message-sanitizer/types.d.ts.map +1 -0
- package/dist/hooks/empty-message-sanitizer/types.js +10 -0
- package/dist/hooks/empty-message-sanitizer/types.js.map +1 -0
- package/dist/hooks/index.d.ts +35 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +81 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/keyword-detector/index.d.ts +40 -0
- package/dist/hooks/keyword-detector/index.d.ts.map +1 -0
- package/dist/hooks/keyword-detector/index.js +88 -0
- package/dist/hooks/keyword-detector/index.js.map +1 -0
- package/dist/hooks/non-interactive-env/constants.d.ts +35 -0
- package/dist/hooks/non-interactive-env/constants.d.ts.map +1 -0
- package/dist/hooks/non-interactive-env/constants.js +69 -0
- package/dist/hooks/non-interactive-env/constants.js.map +1 -0
- package/dist/hooks/non-interactive-env/detector.d.ts +2 -0
- package/dist/hooks/non-interactive-env/detector.d.ts.map +1 -0
- package/dist/hooks/non-interactive-env/detector.js +16 -0
- package/dist/hooks/non-interactive-env/detector.js.map +1 -0
- package/dist/hooks/non-interactive-env/index.d.ts +14 -0
- package/dist/hooks/non-interactive-env/index.d.ts.map +1 -0
- package/dist/hooks/non-interactive-env/index.js +72 -0
- package/dist/hooks/non-interactive-env/index.js.map +1 -0
- package/dist/hooks/non-interactive-env/types.d.ts +14 -0
- package/dist/hooks/non-interactive-env/types.d.ts.map +1 -0
- package/dist/hooks/non-interactive-env/types.js +2 -0
- package/dist/hooks/non-interactive-env/types.js.map +1 -0
- package/dist/hooks/olympus-orchestrator/constants.d.ts +23 -0
- package/dist/hooks/olympus-orchestrator/constants.d.ts.map +1 -0
- package/dist/hooks/olympus-orchestrator/constants.js +142 -0
- package/dist/hooks/olympus-orchestrator/constants.js.map +1 -0
- package/dist/hooks/olympus-orchestrator/index.d.ts +113 -0
- package/dist/hooks/olympus-orchestrator/index.d.ts.map +1 -0
- package/dist/hooks/olympus-orchestrator/index.js +283 -0
- package/dist/hooks/olympus-orchestrator/index.js.map +1 -0
- package/dist/hooks/persistent-mode/index.d.ts +40 -0
- package/dist/hooks/persistent-mode/index.d.ts.map +1 -0
- package/dist/hooks/persistent-mode/index.js +322 -0
- package/dist/hooks/persistent-mode/index.js.map +1 -0
- package/dist/hooks/plugin-patterns/index.d.ts +107 -0
- package/dist/hooks/plugin-patterns/index.d.ts.map +1 -0
- package/dist/hooks/plugin-patterns/index.js +289 -0
- package/dist/hooks/plugin-patterns/index.js.map +1 -0
- package/dist/hooks/preemptive-compaction/constants.d.ts +48 -0
- package/dist/hooks/preemptive-compaction/constants.d.ts.map +1 -0
- package/dist/hooks/preemptive-compaction/constants.js +90 -0
- package/dist/hooks/preemptive-compaction/constants.js.map +1 -0
- package/dist/hooks/preemptive-compaction/index.d.ts +55 -0
- package/dist/hooks/preemptive-compaction/index.d.ts.map +1 -0
- package/dist/hooks/preemptive-compaction/index.js +227 -0
- package/dist/hooks/preemptive-compaction/index.js.map +1 -0
- package/dist/hooks/preemptive-compaction/types.d.ts +76 -0
- package/dist/hooks/preemptive-compaction/types.d.ts.map +1 -0
- package/dist/hooks/preemptive-compaction/types.js +9 -0
- package/dist/hooks/preemptive-compaction/types.js.map +1 -0
- package/dist/hooks/ralph-loop/index.d.ts +60 -0
- package/dist/hooks/ralph-loop/index.d.ts.map +1 -0
- package/dist/hooks/ralph-loop/index.js +155 -0
- package/dist/hooks/ralph-loop/index.js.map +1 -0
- package/dist/hooks/ralph-verifier/index.d.ts +72 -0
- package/dist/hooks/ralph-verifier/index.d.ts.map +1 -0
- package/dist/hooks/ralph-verifier/index.js +223 -0
- package/dist/hooks/ralph-verifier/index.js.map +1 -0
- package/dist/hooks/rules-injector/constants.d.ts +25 -0
- package/dist/hooks/rules-injector/constants.d.ts.map +1 -0
- package/dist/hooks/rules-injector/constants.js +40 -0
- package/dist/hooks/rules-injector/constants.js.map +1 -0
- package/dist/hooks/rules-injector/finder.d.ts +24 -0
- package/dist/hooks/rules-injector/finder.d.ts.map +1 -0
- package/dist/hooks/rules-injector/finder.js +215 -0
- package/dist/hooks/rules-injector/finder.js.map +1 -0
- package/dist/hooks/rules-injector/index.d.ts +45 -0
- package/dist/hooks/rules-injector/index.d.ts.map +1 -0
- package/dist/hooks/rules-injector/index.js +187 -0
- package/dist/hooks/rules-injector/index.js.map +1 -0
- package/dist/hooks/rules-injector/matcher.d.ts +25 -0
- package/dist/hooks/rules-injector/matcher.d.ts.map +1 -0
- package/dist/hooks/rules-injector/matcher.js +70 -0
- package/dist/hooks/rules-injector/matcher.js.map +1 -0
- package/dist/hooks/rules-injector/parser.d.ts +20 -0
- package/dist/hooks/rules-injector/parser.d.ts.map +1 -0
- package/dist/hooks/rules-injector/parser.js +179 -0
- package/dist/hooks/rules-injector/parser.js.map +1 -0
- package/dist/hooks/rules-injector/storage.d.ts +26 -0
- package/dist/hooks/rules-injector/storage.d.ts.map +1 -0
- package/dist/hooks/rules-injector/storage.js +61 -0
- package/dist/hooks/rules-injector/storage.js.map +1 -0
- package/dist/hooks/rules-injector/types.d.ts +101 -0
- package/dist/hooks/rules-injector/types.d.ts.map +1 -0
- package/dist/hooks/rules-injector/types.js +10 -0
- package/dist/hooks/rules-injector/types.js.map +1 -0
- package/dist/hooks/session-recovery/constants.d.ts +56 -0
- package/dist/hooks/session-recovery/constants.d.ts.map +1 -0
- package/dist/hooks/session-recovery/constants.js +78 -0
- package/dist/hooks/session-recovery/constants.js.map +1 -0
- package/dist/hooks/session-recovery/index.d.ts +53 -0
- package/dist/hooks/session-recovery/index.d.ts.map +1 -0
- package/dist/hooks/session-recovery/index.js +321 -0
- package/dist/hooks/session-recovery/index.js.map +1 -0
- package/dist/hooks/session-recovery/storage.d.ts +76 -0
- package/dist/hooks/session-recovery/storage.d.ts.map +1 -0
- package/dist/hooks/session-recovery/storage.js +383 -0
- package/dist/hooks/session-recovery/storage.js.map +1 -0
- package/dist/hooks/session-recovery/types.d.ts +145 -0
- package/dist/hooks/session-recovery/types.d.ts.map +1 -0
- package/dist/hooks/session-recovery/types.js +8 -0
- package/dist/hooks/session-recovery/types.js.map +1 -0
- 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 +283 -0
- package/dist/hooks/sisyphus-orchestrator/index.js.map +1 -0
- package/dist/hooks/the-ascent/index.d.ts +60 -0
- package/dist/hooks/the-ascent/index.d.ts.map +1 -0
- package/dist/hooks/the-ascent/index.js +155 -0
- package/dist/hooks/the-ascent/index.js.map +1 -0
- package/dist/hooks/think-mode/detector.d.ts +28 -0
- package/dist/hooks/think-mode/detector.d.ts.map +1 -0
- package/dist/hooks/think-mode/detector.js +105 -0
- package/dist/hooks/think-mode/detector.js.map +1 -0
- package/dist/hooks/think-mode/index.d.ts +70 -0
- package/dist/hooks/think-mode/index.d.ts.map +1 -0
- package/dist/hooks/think-mode/index.js +144 -0
- package/dist/hooks/think-mode/index.js.map +1 -0
- package/dist/hooks/think-mode/switcher.d.ts +39 -0
- package/dist/hooks/think-mode/switcher.d.ts.map +1 -0
- package/dist/hooks/think-mode/switcher.js +180 -0
- package/dist/hooks/think-mode/switcher.js.map +1 -0
- package/dist/hooks/think-mode/types.d.ts +60 -0
- package/dist/hooks/think-mode/types.d.ts.map +1 -0
- package/dist/hooks/think-mode/types.js +9 -0
- package/dist/hooks/think-mode/types.js.map +1 -0
- package/dist/hooks/thinking-block-validator/constants.d.ts +37 -0
- package/dist/hooks/thinking-block-validator/constants.d.ts.map +1 -0
- package/dist/hooks/thinking-block-validator/constants.js +50 -0
- package/dist/hooks/thinking-block-validator/constants.js.map +1 -0
- package/dist/hooks/thinking-block-validator/index.d.ts +35 -0
- package/dist/hooks/thinking-block-validator/index.d.ts.map +1 -0
- package/dist/hooks/thinking-block-validator/index.js +156 -0
- package/dist/hooks/thinking-block-validator/index.js.map +1 -0
- package/dist/hooks/thinking-block-validator/types.d.ts +67 -0
- package/dist/hooks/thinking-block-validator/types.d.ts.map +1 -0
- package/dist/hooks/thinking-block-validator/types.js +9 -0
- package/dist/hooks/thinking-block-validator/types.js.map +1 -0
- package/dist/hooks/todo-continuation/index.d.ts +39 -0
- package/dist/hooks/todo-continuation/index.d.ts.map +1 -0
- package/dist/hooks/todo-continuation/index.js +140 -0
- package/dist/hooks/todo-continuation/index.js.map +1 -0
- package/dist/hooks/ultrawork-state/index.d.ts +60 -0
- package/dist/hooks/ultrawork-state/index.d.ts.map +1 -0
- package/dist/hooks/ultrawork-state/index.js +207 -0
- package/dist/hooks/ultrawork-state/index.js.map +1 -0
- package/dist/index.d.ts +117 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +175 -0
- package/dist/index.js.map +1 -0
- package/dist/installer/hooks.d.ts +196 -0
- package/dist/installer/hooks.d.ts.map +1 -0
- package/dist/installer/hooks.js +1385 -0
- package/dist/installer/hooks.js.map +1 -0
- package/dist/installer/index.d.ts +92 -0
- package/dist/installer/index.d.ts.map +1 -0
- package/dist/installer/index.js +2249 -0
- package/dist/installer/index.js.map +1 -0
- package/dist/mcp/index.d.ts +6 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +5 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/servers.d.ts +77 -0
- package/dist/mcp/servers.d.ts.map +1 -0
- package/dist/mcp/servers.js +122 -0
- package/dist/mcp/servers.js.map +1 -0
- package/dist/shared/index.d.ts +5 -0
- package/dist/shared/index.d.ts.map +1 -0
- package/dist/shared/index.js +5 -0
- package/dist/shared/index.js.map +1 -0
- package/dist/shared/types.d.ts +159 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/shared/types.js +5 -0
- package/dist/shared/types.js.map +1 -0
- package/dist/tools/ast-tools.d.ts +63 -0
- package/dist/tools/ast-tools.d.ts.map +1 -0
- package/dist/tools/ast-tools.js +450 -0
- package/dist/tools/ast-tools.js.map +1 -0
- package/dist/tools/index.d.ts +52 -0
- package/dist/tools/index.d.ts.map +1 -0
- package/dist/tools/index.js +120 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/lsp/client.d.ts +201 -0
- package/dist/tools/lsp/client.d.ts.map +1 -0
- package/dist/tools/lsp/client.js +454 -0
- package/dist/tools/lsp/client.js.map +1 -0
- package/dist/tools/lsp/index.d.ts +9 -0
- package/dist/tools/lsp/index.d.ts.map +1 -0
- package/dist/tools/lsp/index.js +7 -0
- package/dist/tools/lsp/index.js.map +1 -0
- package/dist/tools/lsp/servers.d.ts +37 -0
- package/dist/tools/lsp/servers.d.ts.map +1 -0
- package/dist/tools/lsp/servers.js +149 -0
- package/dist/tools/lsp/servers.js.map +1 -0
- package/dist/tools/lsp/utils.d.ts +58 -0
- package/dist/tools/lsp/utils.d.ts.map +1 -0
- package/dist/tools/lsp/utils.js +236 -0
- package/dist/tools/lsp/utils.js.map +1 -0
- package/dist/tools/lsp-tools.d.ts +151 -0
- package/dist/tools/lsp-tools.d.ts.map +1 -0
- package/dist/tools/lsp-tools.js +358 -0
- package/dist/tools/lsp-tools.js.map +1 -0
- package/package.json +85 -0
- package/scripts/claude-sisyphus.sh +9 -0
- package/scripts/install.sh +1774 -0
- package/scripts/keyword-detector.mjs +209 -0
- package/scripts/keyword-detector.sh +71 -0
- package/scripts/persistent-mode.mjs +241 -0
- package/scripts/persistent-mode.sh +300 -0
- package/scripts/post-tool-verifier.mjs +217 -0
- package/scripts/post-tool-verifier.sh +196 -0
- package/scripts/pre-tool-enforcer.mjs +99 -0
- package/scripts/pre-tool-enforcer.sh +76 -0
- package/scripts/sisyphus-aliases.sh +18 -0
- package/scripts/stop-continuation.sh +31 -0
- package/scripts/test-pr25.sh +525 -0
- package/scripts/uninstall.sh +171 -0
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sonnet-Optimized Prompt Adaptations
|
|
3
|
+
*
|
|
4
|
+
* Sonnet (MEDIUM tier) prompts are designed for:
|
|
5
|
+
* - Balanced reasoning with good speed
|
|
6
|
+
* - Focused task execution
|
|
7
|
+
* - Clear deliverables with structured output
|
|
8
|
+
* - Efficient multi-step workflows
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Sonnet prompt prefix for focused execution
|
|
12
|
+
*/
|
|
13
|
+
export const SONNET_PROMPT_PREFIX = `## Task Execution Mode
|
|
14
|
+
|
|
15
|
+
Execute this task efficiently with clear deliverables:
|
|
16
|
+
|
|
17
|
+
`;
|
|
18
|
+
/**
|
|
19
|
+
* Sonnet prompt suffix for verification
|
|
20
|
+
*/
|
|
21
|
+
export const SONNET_PROMPT_SUFFIX = `
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
Focus on delivering the requested outcome. Be thorough but efficient.
|
|
25
|
+
`;
|
|
26
|
+
/**
|
|
27
|
+
* Adapt a base prompt for Sonnet execution
|
|
28
|
+
*/
|
|
29
|
+
export function adaptPromptForSonnet(basePrompt) {
|
|
30
|
+
return SONNET_PROMPT_PREFIX + basePrompt + SONNET_PROMPT_SUFFIX;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Sonnet delegation template
|
|
34
|
+
*/
|
|
35
|
+
export const SONNET_DELEGATION_TEMPLATE = `## TASK DELEGATION
|
|
36
|
+
|
|
37
|
+
**Tier**: MEDIUM (balanced)
|
|
38
|
+
|
|
39
|
+
### Task
|
|
40
|
+
{TASK}
|
|
41
|
+
|
|
42
|
+
### Expected Outcome
|
|
43
|
+
{DELIVERABLES}
|
|
44
|
+
|
|
45
|
+
### Success Criteria
|
|
46
|
+
{SUCCESS_CRITERIA}
|
|
47
|
+
|
|
48
|
+
### Context
|
|
49
|
+
{CONTEXT}
|
|
50
|
+
|
|
51
|
+
### Required Tools
|
|
52
|
+
{TOOLS}
|
|
53
|
+
|
|
54
|
+
### Constraints
|
|
55
|
+
- MUST DO: {MUST_DO}
|
|
56
|
+
- MUST NOT DO: {MUST_NOT}
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
Execute efficiently. Report completion status.
|
|
60
|
+
`;
|
|
61
|
+
/**
|
|
62
|
+
* Sonnet implementation template
|
|
63
|
+
*/
|
|
64
|
+
export const SONNET_IMPLEMENTATION_TEMPLATE = `## IMPLEMENTATION TASK
|
|
65
|
+
|
|
66
|
+
### What to Build
|
|
67
|
+
{TASK}
|
|
68
|
+
|
|
69
|
+
### Acceptance Criteria
|
|
70
|
+
{CRITERIA}
|
|
71
|
+
|
|
72
|
+
### Approach
|
|
73
|
+
1. Read relevant files to understand patterns
|
|
74
|
+
2. Plan changes before making them
|
|
75
|
+
3. Implement following existing conventions
|
|
76
|
+
4. Verify changes work correctly
|
|
77
|
+
|
|
78
|
+
### Files to Modify
|
|
79
|
+
{FILES}
|
|
80
|
+
|
|
81
|
+
### Existing Patterns to Follow
|
|
82
|
+
{PATTERNS}
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
Match existing code style. Test your changes.
|
|
86
|
+
`;
|
|
87
|
+
/**
|
|
88
|
+
* Sonnet research template
|
|
89
|
+
*/
|
|
90
|
+
export const SONNET_RESEARCH_TEMPLATE = `## RESEARCH TASK
|
|
91
|
+
|
|
92
|
+
### Query
|
|
93
|
+
{QUERY}
|
|
94
|
+
|
|
95
|
+
### Required Information
|
|
96
|
+
{REQUIREMENTS}
|
|
97
|
+
|
|
98
|
+
### Sources to Search
|
|
99
|
+
{SOURCES}
|
|
100
|
+
|
|
101
|
+
### Output Format
|
|
102
|
+
\`\`\`
|
|
103
|
+
## Query: [restated query]
|
|
104
|
+
|
|
105
|
+
## Findings
|
|
106
|
+
### [Source 1]
|
|
107
|
+
[Key information]
|
|
108
|
+
**Reference**: [URL/file path]
|
|
109
|
+
|
|
110
|
+
### [Source 2]
|
|
111
|
+
[Key information]
|
|
112
|
+
**Reference**: [URL/file path]
|
|
113
|
+
|
|
114
|
+
## Summary
|
|
115
|
+
[Synthesized answer]
|
|
116
|
+
|
|
117
|
+
## Recommendations
|
|
118
|
+
[Actionable next steps]
|
|
119
|
+
\`\`\`
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
Cite sources. Provide actionable information.
|
|
123
|
+
`;
|
|
124
|
+
/**
|
|
125
|
+
* Sonnet frontend template
|
|
126
|
+
*/
|
|
127
|
+
export const SONNET_FRONTEND_TEMPLATE = `## FRONTEND TASK
|
|
128
|
+
|
|
129
|
+
### Change Required
|
|
130
|
+
{TASK}
|
|
131
|
+
|
|
132
|
+
### Visual Expectations
|
|
133
|
+
{VISUAL_REQUIREMENTS}
|
|
134
|
+
|
|
135
|
+
### Technical Constraints
|
|
136
|
+
- Framework: {FRAMEWORK}
|
|
137
|
+
- Styling: {STYLING_APPROACH}
|
|
138
|
+
- Components: {COMPONENT_PATTERNS}
|
|
139
|
+
|
|
140
|
+
### Existing Patterns
|
|
141
|
+
{PATTERNS}
|
|
142
|
+
|
|
143
|
+
### Files to Modify
|
|
144
|
+
{FILES}
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
Match the existing aesthetic. Test in browser if applicable.
|
|
148
|
+
`;
|
|
149
|
+
//# sourceMappingURL=sonnet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sonnet.js","sourceRoot":"","sources":["../../../../src/features/model-routing/prompts/sonnet.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;CAInC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;CAInC,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAkB;IACrD,OAAO,oBAAoB,GAAG,UAAU,GAAG,oBAAoB,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;CAyBzC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG;;;;;;;;;;;;;;;;;;;;;;CAsB7C,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCvC,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;;;;;;;;;;;;;;;;;;CAqBvC,CAAC"}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model Router
|
|
3
|
+
*
|
|
4
|
+
* Main routing engine that determines which model tier to use for a given task.
|
|
5
|
+
* Combines signal extraction, scoring, and rules evaluation.
|
|
6
|
+
*/
|
|
7
|
+
import type { RoutingContext, RoutingDecision, RoutingConfig, ComplexityTier } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Route a task to the appropriate model tier
|
|
10
|
+
*/
|
|
11
|
+
export declare function routeTask(context: RoutingContext, config?: Partial<RoutingConfig>): RoutingDecision;
|
|
12
|
+
/**
|
|
13
|
+
* Escalate to a higher tier after failure
|
|
14
|
+
*/
|
|
15
|
+
export declare function escalateModel(currentTier: ComplexityTier): ComplexityTier;
|
|
16
|
+
/**
|
|
17
|
+
* Check if we can escalate further
|
|
18
|
+
*/
|
|
19
|
+
export declare function canEscalate(currentTier: ComplexityTier): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Get routing recommendation for orchestrator
|
|
22
|
+
*
|
|
23
|
+
* This is designed for PROACTIVE routing - the orchestrator (Opus) analyzes
|
|
24
|
+
* task complexity BEFORE delegation and chooses the appropriate model tier.
|
|
25
|
+
*
|
|
26
|
+
* NOT reactive escalation - the right model is chosen upfront.
|
|
27
|
+
*/
|
|
28
|
+
export declare function getRoutingRecommendation(context: RoutingContext, config?: Partial<RoutingConfig>): RoutingDecision;
|
|
29
|
+
/**
|
|
30
|
+
* Legacy: Route with escalation support
|
|
31
|
+
* @deprecated Use getRoutingRecommendation for proactive routing instead.
|
|
32
|
+
* The orchestrator should analyze complexity upfront, not escalate reactively.
|
|
33
|
+
*/
|
|
34
|
+
export declare function routeWithEscalation(context: RoutingContext, config?: Partial<RoutingConfig>): RoutingDecision;
|
|
35
|
+
/**
|
|
36
|
+
* Get routing explanation for debugging/logging
|
|
37
|
+
*/
|
|
38
|
+
export declare function explainRouting(context: RoutingContext, config?: Partial<RoutingConfig>): string;
|
|
39
|
+
/**
|
|
40
|
+
* Quick tier lookup for known agent types
|
|
41
|
+
* Useful for cases where we don't need full signal analysis
|
|
42
|
+
*/
|
|
43
|
+
export declare function quickTierForAgent(agentType: string): ComplexityTier | null;
|
|
44
|
+
/**
|
|
45
|
+
* Check if an agent has a fixed tier (cannot be overridden)
|
|
46
|
+
*
|
|
47
|
+
* Only ORCHESTRATOR agents are fixed to Opus - they need to analyze
|
|
48
|
+
* complexity and delegate. All other agents are adaptive.
|
|
49
|
+
*
|
|
50
|
+
* NOTE: orchestrator-olympus was deprecated in v2.0 (merged into default mode)
|
|
51
|
+
* but kept here for backward compatibility if users still have it installed.
|
|
52
|
+
*/
|
|
53
|
+
export declare function isFixedTierAgent(agentType: string): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Get recommended model for an agent based on task complexity
|
|
56
|
+
*
|
|
57
|
+
* This is the main entry point for orchestrator model routing.
|
|
58
|
+
* The orchestrator calls this to determine which model to use when delegating.
|
|
59
|
+
*
|
|
60
|
+
* ALL agents are adaptive EXCEPT orchestrators (which need Opus to analyze and delegate).
|
|
61
|
+
*
|
|
62
|
+
* Routing hierarchy:
|
|
63
|
+
* 1. Fixed-tier (orchestrators only) → always Opus (they analyze complexity)
|
|
64
|
+
* 2. All other agents → adaptive based on task complexity
|
|
65
|
+
*
|
|
66
|
+
* @param agentType - The agent to delegate to
|
|
67
|
+
* @param taskPrompt - The task description
|
|
68
|
+
* @returns The recommended model type ('haiku', 'sonnet', or 'opus')
|
|
69
|
+
*/
|
|
70
|
+
export declare function getModelForTask(agentType: string, taskPrompt: string, config?: Partial<RoutingConfig>): {
|
|
71
|
+
model: 'haiku' | 'sonnet' | 'opus';
|
|
72
|
+
tier: ComplexityTier;
|
|
73
|
+
reason: string;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Generate a complexity analysis summary for the orchestrator
|
|
77
|
+
*
|
|
78
|
+
* Returns a human-readable analysis explaining the routing recommendation.
|
|
79
|
+
*/
|
|
80
|
+
export declare function analyzeTaskComplexity(taskPrompt: string, agentType?: string): {
|
|
81
|
+
tier: ComplexityTier;
|
|
82
|
+
model: string;
|
|
83
|
+
analysis: string;
|
|
84
|
+
signals: {
|
|
85
|
+
wordCount: number;
|
|
86
|
+
hasArchitectureKeywords: boolean;
|
|
87
|
+
hasRiskKeywords: boolean;
|
|
88
|
+
estimatedSubtasks: number;
|
|
89
|
+
impactScope: string;
|
|
90
|
+
};
|
|
91
|
+
};
|
|
92
|
+
//# sourceMappingURL=router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../src/features/model-routing/router.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,cAAc,EACf,MAAM,YAAY,CAAC;AAUpB;;GAEG;AACH,wBAAgB,SAAS,CACvB,OAAO,EAAE,cAAc,EACvB,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM,GAClC,eAAe,CAkDjB;AAqCD;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,EAAE,cAAc,GAAG,cAAc,CASzE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,cAAc,GAAG,OAAO,CAEhE;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,cAAc,EACvB,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM,GAClC,eAAe,CAEjB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,cAAc,EACvB,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM,GAClC,eAAe,CAIjB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,cAAc,EACvB,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM,GAClC,MAAM,CAkCR;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAkB1E;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAK3D;AAGD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,MAAM,GAAE,OAAO,CAAC,aAAa,CAAM,GAClC;IAAE,KAAK,EAAE,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAAC,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAoB9E;AAGD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,GACjB;IACD,IAAI,EAAE,cAAc,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE;QACP,SAAS,EAAE,MAAM,CAAC;QAClB,uBAAuB,EAAE,OAAO,CAAC;QACjC,eAAe,EAAE,OAAO,CAAC;QACzB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH,CA+BA"}
|
|
@@ -0,0 +1,267 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model Router
|
|
3
|
+
*
|
|
4
|
+
* Main routing engine that determines which model tier to use for a given task.
|
|
5
|
+
* Combines signal extraction, scoring, and rules evaluation.
|
|
6
|
+
*/
|
|
7
|
+
import { DEFAULT_ROUTING_CONFIG, TIER_MODELS, TIER_TO_MODEL_TYPE, } from './types.js';
|
|
8
|
+
import { extractAllSignals } from './signals.js';
|
|
9
|
+
import { calculateComplexityScore, calculateConfidence, scoreToTier } from './scorer.js';
|
|
10
|
+
import { evaluateRules, DEFAULT_ROUTING_RULES } from './rules.js';
|
|
11
|
+
/**
|
|
12
|
+
* Route a task to the appropriate model tier
|
|
13
|
+
*/
|
|
14
|
+
export function routeTask(context, config = {}) {
|
|
15
|
+
const mergedConfig = { ...DEFAULT_ROUTING_CONFIG, ...config };
|
|
16
|
+
// If routing is disabled, use default tier
|
|
17
|
+
if (!mergedConfig.enabled) {
|
|
18
|
+
return createDecision(mergedConfig.defaultTier, ['Routing disabled, using default tier'], false);
|
|
19
|
+
}
|
|
20
|
+
// If explicit model is specified, respect it
|
|
21
|
+
if (context.explicitModel) {
|
|
22
|
+
const tier = modelTypeToTier(context.explicitModel);
|
|
23
|
+
return createDecision(tier, ['Explicit model specified by user'], false);
|
|
24
|
+
}
|
|
25
|
+
// Check for agent-specific overrides
|
|
26
|
+
if (context.agentType && mergedConfig.agentOverrides?.[context.agentType]) {
|
|
27
|
+
const override = mergedConfig.agentOverrides[context.agentType];
|
|
28
|
+
return createDecision(override.tier, [override.reason], false);
|
|
29
|
+
}
|
|
30
|
+
// Extract signals from the task
|
|
31
|
+
const signals = extractAllSignals(context.taskPrompt, context);
|
|
32
|
+
// Evaluate routing rules
|
|
33
|
+
const ruleResult = evaluateRules(context, signals, DEFAULT_ROUTING_RULES);
|
|
34
|
+
if (ruleResult.tier === 'EXPLICIT') {
|
|
35
|
+
// Explicit model was handled above, this shouldn't happen
|
|
36
|
+
return createDecision('MEDIUM', ['Unexpected EXPLICIT tier'], false);
|
|
37
|
+
}
|
|
38
|
+
// Calculate score for confidence and logging
|
|
39
|
+
const score = calculateComplexityScore(signals);
|
|
40
|
+
const scoreTier = scoreToTier(score);
|
|
41
|
+
const confidence = calculateConfidence(score, ruleResult.tier);
|
|
42
|
+
const reasons = [
|
|
43
|
+
ruleResult.reason,
|
|
44
|
+
`Rule: ${ruleResult.ruleName}`,
|
|
45
|
+
`Score: ${score} (${scoreTier} tier by score)`,
|
|
46
|
+
];
|
|
47
|
+
return {
|
|
48
|
+
model: mergedConfig.tierModels[ruleResult.tier],
|
|
49
|
+
modelType: TIER_TO_MODEL_TYPE[ruleResult.tier],
|
|
50
|
+
tier: ruleResult.tier,
|
|
51
|
+
confidence,
|
|
52
|
+
reasons,
|
|
53
|
+
escalated: false,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Create a routing decision for a given tier
|
|
58
|
+
*/
|
|
59
|
+
function createDecision(tier, reasons, escalated, originalTier) {
|
|
60
|
+
return {
|
|
61
|
+
model: TIER_MODELS[tier],
|
|
62
|
+
modelType: TIER_TO_MODEL_TYPE[tier],
|
|
63
|
+
tier,
|
|
64
|
+
confidence: escalated ? 0.9 : 0.7, // Higher confidence after escalation
|
|
65
|
+
reasons,
|
|
66
|
+
escalated,
|
|
67
|
+
originalTier,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Convert ModelType to ComplexityTier
|
|
72
|
+
*/
|
|
73
|
+
function modelTypeToTier(modelType) {
|
|
74
|
+
switch (modelType) {
|
|
75
|
+
case 'opus':
|
|
76
|
+
return 'HIGH';
|
|
77
|
+
case 'haiku':
|
|
78
|
+
return 'LOW';
|
|
79
|
+
case 'sonnet':
|
|
80
|
+
default:
|
|
81
|
+
return 'MEDIUM';
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Escalate to a higher tier after failure
|
|
86
|
+
*/
|
|
87
|
+
export function escalateModel(currentTier) {
|
|
88
|
+
switch (currentTier) {
|
|
89
|
+
case 'LOW':
|
|
90
|
+
return 'MEDIUM';
|
|
91
|
+
case 'MEDIUM':
|
|
92
|
+
return 'HIGH';
|
|
93
|
+
case 'HIGH':
|
|
94
|
+
return 'HIGH'; // Already at max
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Check if we can escalate further
|
|
99
|
+
*/
|
|
100
|
+
export function canEscalate(currentTier) {
|
|
101
|
+
return currentTier !== 'HIGH';
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Get routing recommendation for orchestrator
|
|
105
|
+
*
|
|
106
|
+
* This is designed for PROACTIVE routing - the orchestrator (Opus) analyzes
|
|
107
|
+
* task complexity BEFORE delegation and chooses the appropriate model tier.
|
|
108
|
+
*
|
|
109
|
+
* NOT reactive escalation - the right model is chosen upfront.
|
|
110
|
+
*/
|
|
111
|
+
export function getRoutingRecommendation(context, config = {}) {
|
|
112
|
+
return routeTask(context, config);
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Legacy: Route with escalation support
|
|
116
|
+
* @deprecated Use getRoutingRecommendation for proactive routing instead.
|
|
117
|
+
* The orchestrator should analyze complexity upfront, not escalate reactively.
|
|
118
|
+
*/
|
|
119
|
+
export function routeWithEscalation(context, config = {}) {
|
|
120
|
+
// Simply return the routing recommendation
|
|
121
|
+
// Reactive escalation is deprecated - orchestrator decides upfront
|
|
122
|
+
return routeTask(context, config);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Get routing explanation for debugging/logging
|
|
126
|
+
*/
|
|
127
|
+
export function explainRouting(context, config = {}) {
|
|
128
|
+
const decision = routeTask(context, config);
|
|
129
|
+
const signals = extractAllSignals(context.taskPrompt, context);
|
|
130
|
+
const lines = [
|
|
131
|
+
'=== Model Routing Decision ===',
|
|
132
|
+
`Task: ${context.taskPrompt.substring(0, 100)}${context.taskPrompt.length > 100 ? '...' : ''}`,
|
|
133
|
+
`Agent: ${context.agentType ?? 'unspecified'}`,
|
|
134
|
+
'',
|
|
135
|
+
'--- Signals ---',
|
|
136
|
+
`Word count: ${signals.lexical.wordCount}`,
|
|
137
|
+
`File paths: ${signals.lexical.filePathCount}`,
|
|
138
|
+
`Architecture keywords: ${signals.lexical.hasArchitectureKeywords}`,
|
|
139
|
+
`Debugging keywords: ${signals.lexical.hasDebuggingKeywords}`,
|
|
140
|
+
`Simple keywords: ${signals.lexical.hasSimpleKeywords}`,
|
|
141
|
+
`Risk keywords: ${signals.lexical.hasRiskKeywords}`,
|
|
142
|
+
`Question depth: ${signals.lexical.questionDepth}`,
|
|
143
|
+
`Estimated subtasks: ${signals.structural.estimatedSubtasks}`,
|
|
144
|
+
`Cross-file: ${signals.structural.crossFileDependencies}`,
|
|
145
|
+
`Impact scope: ${signals.structural.impactScope}`,
|
|
146
|
+
`Reversibility: ${signals.structural.reversibility}`,
|
|
147
|
+
`Previous failures: ${signals.context.previousFailures}`,
|
|
148
|
+
'',
|
|
149
|
+
'--- Decision ---',
|
|
150
|
+
`Tier: ${decision.tier}`,
|
|
151
|
+
`Model: ${decision.model}`,
|
|
152
|
+
`Confidence: ${decision.confidence}`,
|
|
153
|
+
`Escalated: ${decision.escalated}`,
|
|
154
|
+
'',
|
|
155
|
+
'--- Reasons ---',
|
|
156
|
+
...decision.reasons.map(r => ` - ${r}`),
|
|
157
|
+
];
|
|
158
|
+
return lines.join('\n');
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Quick tier lookup for known agent types
|
|
162
|
+
* Useful for cases where we don't need full signal analysis
|
|
163
|
+
*/
|
|
164
|
+
export function quickTierForAgent(agentType) {
|
|
165
|
+
const agentTiers = {
|
|
166
|
+
oracle: 'HIGH',
|
|
167
|
+
prometheus: 'HIGH',
|
|
168
|
+
momus: 'HIGH',
|
|
169
|
+
metis: 'HIGH',
|
|
170
|
+
explore: 'LOW',
|
|
171
|
+
'document-writer': 'LOW',
|
|
172
|
+
librarian: 'MEDIUM',
|
|
173
|
+
'olympian': 'MEDIUM',
|
|
174
|
+
'frontend-engineer': 'MEDIUM',
|
|
175
|
+
'multimodal-looker': 'MEDIUM',
|
|
176
|
+
// DEPRECATED: orchestrator-olympus merged into default mode (v2.0)
|
|
177
|
+
// Kept for backward compatibility if users still have it installed
|
|
178
|
+
'orchestrator-olympus': 'MEDIUM',
|
|
179
|
+
};
|
|
180
|
+
return agentTiers[agentType] ?? null;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Check if an agent has a fixed tier (cannot be overridden)
|
|
184
|
+
*
|
|
185
|
+
* Only ORCHESTRATOR agents are fixed to Opus - they need to analyze
|
|
186
|
+
* complexity and delegate. All other agents are adaptive.
|
|
187
|
+
*
|
|
188
|
+
* NOTE: orchestrator-olympus was deprecated in v2.0 (merged into default mode)
|
|
189
|
+
* but kept here for backward compatibility if users still have it installed.
|
|
190
|
+
*/
|
|
191
|
+
export function isFixedTierAgent(agentType) {
|
|
192
|
+
// Only orchestrators are fixed - they need Opus to analyze and delegate
|
|
193
|
+
// DEPRECATED: orchestrator-olympus merged into default mode (v2.0)
|
|
194
|
+
const fixedAgents = ['orchestrator-olympus'];
|
|
195
|
+
return fixedAgents.includes(agentType);
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Get recommended model for an agent based on task complexity
|
|
199
|
+
*
|
|
200
|
+
* This is the main entry point for orchestrator model routing.
|
|
201
|
+
* The orchestrator calls this to determine which model to use when delegating.
|
|
202
|
+
*
|
|
203
|
+
* ALL agents are adaptive EXCEPT orchestrators (which need Opus to analyze and delegate).
|
|
204
|
+
*
|
|
205
|
+
* Routing hierarchy:
|
|
206
|
+
* 1. Fixed-tier (orchestrators only) → always Opus (they analyze complexity)
|
|
207
|
+
* 2. All other agents → adaptive based on task complexity
|
|
208
|
+
*
|
|
209
|
+
* @param agentType - The agent to delegate to
|
|
210
|
+
* @param taskPrompt - The task description
|
|
211
|
+
* @returns The recommended model type ('haiku', 'sonnet', or 'opus')
|
|
212
|
+
*/
|
|
213
|
+
export function getModelForTask(agentType, taskPrompt, config = {}) {
|
|
214
|
+
// Fixed-tier agents (orchestrators only) always use Opus
|
|
215
|
+
// They need to analyze complexity and delegate - can't use a simpler model
|
|
216
|
+
if (isFixedTierAgent(agentType)) {
|
|
217
|
+
return {
|
|
218
|
+
model: 'opus',
|
|
219
|
+
tier: 'HIGH',
|
|
220
|
+
reason: `${agentType} is an orchestrator (always Opus - analyzes and delegates)`,
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
// All other agents are adaptive based on task complexity
|
|
224
|
+
// Use agent-specific rules for advisory agents, general rules for others
|
|
225
|
+
const decision = routeTask({ taskPrompt, agentType }, config);
|
|
226
|
+
return {
|
|
227
|
+
model: decision.modelType,
|
|
228
|
+
tier: decision.tier,
|
|
229
|
+
reason: decision.reasons[0] ?? 'Complexity analysis',
|
|
230
|
+
};
|
|
231
|
+
}
|
|
232
|
+
/**
|
|
233
|
+
* Generate a complexity analysis summary for the orchestrator
|
|
234
|
+
*
|
|
235
|
+
* Returns a human-readable analysis explaining the routing recommendation.
|
|
236
|
+
*/
|
|
237
|
+
export function analyzeTaskComplexity(taskPrompt, agentType) {
|
|
238
|
+
const signals = extractAllSignals(taskPrompt, { taskPrompt, agentType });
|
|
239
|
+
const decision = routeTask({ taskPrompt, agentType });
|
|
240
|
+
const analysis = [
|
|
241
|
+
`**Tier: ${decision.tier}** → ${decision.model}`,
|
|
242
|
+
'',
|
|
243
|
+
'**Why:**',
|
|
244
|
+
...decision.reasons.map(r => `- ${r}`),
|
|
245
|
+
'',
|
|
246
|
+
'**Signals detected:**',
|
|
247
|
+
signals.lexical.hasArchitectureKeywords ? '- Architecture keywords (refactor, redesign, etc.)' : null,
|
|
248
|
+
signals.lexical.hasRiskKeywords ? '- Risk keywords (migration, production, critical)' : null,
|
|
249
|
+
signals.lexical.hasDebuggingKeywords ? '- Debugging keywords (root cause, investigate)' : null,
|
|
250
|
+
signals.structural.crossFileDependencies ? '- Cross-file dependencies' : null,
|
|
251
|
+
signals.structural.impactScope === 'system-wide' ? '- System-wide impact' : null,
|
|
252
|
+
signals.structural.reversibility === 'difficult' ? '- Difficult to reverse' : null,
|
|
253
|
+
].filter(Boolean).join('\n');
|
|
254
|
+
return {
|
|
255
|
+
tier: decision.tier,
|
|
256
|
+
model: decision.model,
|
|
257
|
+
analysis,
|
|
258
|
+
signals: {
|
|
259
|
+
wordCount: signals.lexical.wordCount,
|
|
260
|
+
hasArchitectureKeywords: signals.lexical.hasArchitectureKeywords,
|
|
261
|
+
hasRiskKeywords: signals.lexical.hasRiskKeywords,
|
|
262
|
+
estimatedSubtasks: signals.structural.estimatedSubtasks,
|
|
263
|
+
impactScope: signals.structural.impactScope,
|
|
264
|
+
},
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
//# sourceMappingURL=router.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/features/model-routing/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Routing Rules
|
|
3
|
+
*
|
|
4
|
+
* Defines the rules engine for model routing decisions.
|
|
5
|
+
* Rules are evaluated in priority order, and the first matching rule wins.
|
|
6
|
+
*/
|
|
7
|
+
import type { RoutingRule, RoutingContext, ComplexitySignals, ComplexityTier } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Default routing rules, ordered by priority (highest first)
|
|
10
|
+
*/
|
|
11
|
+
export declare const DEFAULT_ROUTING_RULES: RoutingRule[];
|
|
12
|
+
/**
|
|
13
|
+
* Evaluate routing rules and return the first matching rule's action
|
|
14
|
+
*/
|
|
15
|
+
export declare function evaluateRules(context: RoutingContext, signals: ComplexitySignals, rules?: RoutingRule[]): {
|
|
16
|
+
tier: ComplexityTier | 'EXPLICIT';
|
|
17
|
+
reason: string;
|
|
18
|
+
ruleName: string;
|
|
19
|
+
};
|
|
20
|
+
/**
|
|
21
|
+
* Get all rules that would match for a given context (for debugging)
|
|
22
|
+
*/
|
|
23
|
+
export declare function getMatchingRules(context: RoutingContext, signals: ComplexitySignals, rules?: RoutingRule[]): RoutingRule[];
|
|
24
|
+
/**
|
|
25
|
+
* Create a custom routing rule
|
|
26
|
+
*/
|
|
27
|
+
export declare function createRule(name: string, condition: (context: RoutingContext, signals: ComplexitySignals) => boolean, tier: ComplexityTier, reason: string, priority: number): RoutingRule;
|
|
28
|
+
/**
|
|
29
|
+
* Merge custom rules with default rules
|
|
30
|
+
*/
|
|
31
|
+
export declare function mergeRules(customRules: RoutingRule[]): RoutingRule[];
|
|
32
|
+
//# sourceMappingURL=rules.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../../src/features/model-routing/rules.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,cAAc,EACf,MAAM,YAAY,CAAC;AAEpB;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAAW,EA+M9C,CAAC;AAEF;;GAEG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,iBAAiB,EAC1B,KAAK,GAAE,WAAW,EAA0B,GAC3C;IAAE,IAAI,EAAE,cAAc,GAAG,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAoBzE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,iBAAiB,EAC1B,KAAK,GAAE,WAAW,EAA0B,GAC3C,WAAW,EAAE,CAEf;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,CAAC,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,iBAAiB,KAAK,OAAO,EAC3E,IAAI,EAAE,cAAc,EACpB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,GACf,WAAW,CAOb;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,WAAW,EAAE,GAAG,WAAW,EAAE,CAOpE"}
|