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,421 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Magic Keywords Feature
|
|
3
|
+
*
|
|
4
|
+
* Detects special keywords in prompts and activates enhanced behaviors.
|
|
5
|
+
* Patterns ported from oh-my-opencode.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Code block pattern for stripping from detection
|
|
9
|
+
*/
|
|
10
|
+
const CODE_BLOCK_PATTERN = /```[\s\S]*?```/g;
|
|
11
|
+
const INLINE_CODE_PATTERN = /`[^`]+`/g;
|
|
12
|
+
/**
|
|
13
|
+
* Remove code blocks from text for keyword detection
|
|
14
|
+
*/
|
|
15
|
+
function removeCodeBlocks(text) {
|
|
16
|
+
return text.replace(CODE_BLOCK_PATTERN, '').replace(INLINE_CODE_PATTERN, '');
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Ultrawork Planner Section - for planner-type agents
|
|
20
|
+
*/
|
|
21
|
+
const ULTRAWORK_PLANNER_SECTION = `## CRITICAL: YOU ARE A PLANNER, NOT AN IMPLEMENTER
|
|
22
|
+
|
|
23
|
+
**IDENTITY CONSTRAINT (NON-NEGOTIABLE):**
|
|
24
|
+
You ARE the planner. You ARE NOT an implementer. You DO NOT write code. You DO NOT execute tasks.
|
|
25
|
+
|
|
26
|
+
**TOOL RESTRICTIONS (SYSTEM-ENFORCED):**
|
|
27
|
+
| Tool | Allowed | Blocked |
|
|
28
|
+
|------|---------|---------|
|
|
29
|
+
| Write/Edit | \`.olympus/**/*.md\` ONLY | Everything else |
|
|
30
|
+
| Read | All files | - |
|
|
31
|
+
| Bash | Research commands only | Implementation commands |
|
|
32
|
+
| Task | explore, librarian | - |
|
|
33
|
+
|
|
34
|
+
**IF YOU TRY TO WRITE/EDIT OUTSIDE \`.olympus/\`:**
|
|
35
|
+
- System will BLOCK your action
|
|
36
|
+
- You will receive an error
|
|
37
|
+
- DO NOT retry - you are not supposed to implement
|
|
38
|
+
|
|
39
|
+
**YOUR ONLY WRITABLE PATHS:**
|
|
40
|
+
- \`.olympus/plans/*.md\` - Final work plans
|
|
41
|
+
- \`.olympus/drafts/*.md\` - Working drafts during interview
|
|
42
|
+
|
|
43
|
+
**WHEN USER ASKS YOU TO IMPLEMENT:**
|
|
44
|
+
REFUSE. Say: "I'm a planner. I create work plans, not implementations. Run \`/start-work\` after I finish planning."
|
|
45
|
+
|
|
46
|
+
---
|
|
47
|
+
|
|
48
|
+
## CONTEXT GATHERING (MANDATORY BEFORE PLANNING)
|
|
49
|
+
|
|
50
|
+
You ARE the planner. Your job: create bulletproof work plans.
|
|
51
|
+
**Before drafting ANY plan, gather context via explore/librarian agents.**
|
|
52
|
+
|
|
53
|
+
### Research Protocol
|
|
54
|
+
1. **Fire parallel background agents** for comprehensive context:
|
|
55
|
+
\`\`\`
|
|
56
|
+
Task(subagent_type="explore", prompt="Find existing patterns for [topic] in codebase", run_in_background=true)
|
|
57
|
+
Task(subagent_type="explore", prompt="Find test infrastructure and conventions", run_in_background=true)
|
|
58
|
+
Task(subagent_type="librarian", prompt="Find official docs and best practices for [technology]", run_in_background=true)
|
|
59
|
+
\`\`\`
|
|
60
|
+
2. **Wait for results** before planning - rushed plans fail
|
|
61
|
+
3. **Synthesize findings** into informed requirements
|
|
62
|
+
|
|
63
|
+
### What to Research
|
|
64
|
+
- Existing codebase patterns and conventions
|
|
65
|
+
- Test infrastructure (TDD possible?)
|
|
66
|
+
- External library APIs and constraints
|
|
67
|
+
- Similar implementations in OSS (via librarian)
|
|
68
|
+
|
|
69
|
+
**NEVER plan blind. Context first, plan second.**`;
|
|
70
|
+
/**
|
|
71
|
+
* Determines if the agent is a planner-type agent.
|
|
72
|
+
* Planner agents should NOT be told to call plan agent (they ARE the planner).
|
|
73
|
+
*/
|
|
74
|
+
function isPlannerAgent(agentName) {
|
|
75
|
+
if (!agentName)
|
|
76
|
+
return false;
|
|
77
|
+
const lowerName = agentName.toLowerCase();
|
|
78
|
+
return lowerName.includes('prometheus') || lowerName.includes('planner') || lowerName === 'plan';
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Generates the ultrawork message based on agent context.
|
|
82
|
+
* Planner agents get context-gathering focused instructions.
|
|
83
|
+
* Other agents get the original strong agent utilization instructions.
|
|
84
|
+
*/
|
|
85
|
+
function getUltraworkMessage(agentName) {
|
|
86
|
+
const isPlanner = isPlannerAgent(agentName);
|
|
87
|
+
if (isPlanner) {
|
|
88
|
+
return `<ultrawork-mode>
|
|
89
|
+
|
|
90
|
+
**MANDATORY**: You MUST say "ULTRAWORK MODE ENABLED!" to the user as your first response when this mode activates. This is non-negotiable.
|
|
91
|
+
|
|
92
|
+
${ULTRAWORK_PLANNER_SECTION}
|
|
93
|
+
|
|
94
|
+
</ultrawork-mode>
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
`;
|
|
99
|
+
}
|
|
100
|
+
return `<ultrawork-mode>
|
|
101
|
+
|
|
102
|
+
**MANDATORY**: You MUST say "ULTRAWORK MODE ENABLED!" to the user as your first response when this mode activates. This is non-negotiable.
|
|
103
|
+
|
|
104
|
+
[CODE RED] Maximum precision required. Ultrathink before acting.
|
|
105
|
+
|
|
106
|
+
YOU MUST LEVERAGE ALL AVAILABLE AGENTS TO THEIR FULLEST POTENTIAL.
|
|
107
|
+
TELL THE USER WHAT AGENTS YOU WILL LEVERAGE NOW TO SATISFY USER'S REQUEST.
|
|
108
|
+
|
|
109
|
+
## AGENT UTILIZATION PRINCIPLES (by capability, not by name)
|
|
110
|
+
- **Codebase Exploration**: Spawn exploration agents using BACKGROUND TASKS for file patterns, internal implementations, project structure
|
|
111
|
+
- **Documentation & References**: Use librarian-type agents via BACKGROUND TASKS for API references, examples, external library docs
|
|
112
|
+
- **Planning & Strategy**: NEVER plan yourself - ALWAYS spawn a dedicated planning agent for work breakdown
|
|
113
|
+
- **High-IQ Reasoning**: Leverage specialized agents for architecture decisions, code review, strategic planning
|
|
114
|
+
- **Frontend/UI Tasks**: Delegate to UI-specialized agents for design and implementation
|
|
115
|
+
|
|
116
|
+
## EXECUTION RULES
|
|
117
|
+
- **TODO**: Track EVERY step. Mark complete IMMEDIATELY after each.
|
|
118
|
+
- **PARALLEL**: Fire independent agent calls simultaneously via Task(run_in_background=true) - NEVER wait sequentially.
|
|
119
|
+
- **BACKGROUND FIRST**: Use Task for exploration/research agents (10+ concurrent if needed).
|
|
120
|
+
- **VERIFY**: Re-read request after completion. Check ALL requirements met before reporting done.
|
|
121
|
+
- **DELEGATE**: Don't do everything yourself - orchestrate specialized agents for their strengths.
|
|
122
|
+
|
|
123
|
+
## WORKFLOW
|
|
124
|
+
1. Analyze the request and identify required capabilities
|
|
125
|
+
2. Spawn exploration/librarian agents via Task(run_in_background=true) in PARALLEL (10+ if needed)
|
|
126
|
+
3. Always Use Plan agent with gathered context to create detailed work breakdown
|
|
127
|
+
4. Execute with continuous verification against original requirements
|
|
128
|
+
|
|
129
|
+
## VERIFICATION GUARANTEE (NON-NEGOTIABLE)
|
|
130
|
+
|
|
131
|
+
**NOTHING is "done" without PROOF it works.**
|
|
132
|
+
|
|
133
|
+
### Pre-Implementation: Define Success Criteria
|
|
134
|
+
|
|
135
|
+
BEFORE writing ANY code, you MUST define:
|
|
136
|
+
|
|
137
|
+
| Criteria Type | Description | Example |
|
|
138
|
+
|---------------|-------------|---------|
|
|
139
|
+
| **Functional** | What specific behavior must work | "Button click triggers API call" |
|
|
140
|
+
| **Observable** | What can be measured/seen | "Console shows 'success', no errors" |
|
|
141
|
+
| **Pass/Fail** | Binary, no ambiguity | "Returns 200 OK" not "should work" |
|
|
142
|
+
|
|
143
|
+
Write these criteria explicitly. Share with user if scope is non-trivial.
|
|
144
|
+
|
|
145
|
+
### Test Plan Template (MANDATORY for non-trivial tasks)
|
|
146
|
+
|
|
147
|
+
\`\`\`
|
|
148
|
+
## Test Plan
|
|
149
|
+
### Objective: [What we're verifying]
|
|
150
|
+
### Prerequisites: [Setup needed]
|
|
151
|
+
### Test Cases:
|
|
152
|
+
1. [Test Name]: [Input] → [Expected Output] → [How to verify]
|
|
153
|
+
2. ...
|
|
154
|
+
### Success Criteria: ALL test cases pass
|
|
155
|
+
### How to Execute: [Exact commands/steps]
|
|
156
|
+
\`\`\`
|
|
157
|
+
|
|
158
|
+
### Execution & Evidence Requirements
|
|
159
|
+
|
|
160
|
+
| Phase | Action | Required Evidence |
|
|
161
|
+
|-------|--------|-------------------|
|
|
162
|
+
| **Build** | Run build command | Exit code 0, no errors |
|
|
163
|
+
| **Test** | Execute test suite | All tests pass (screenshot/output) |
|
|
164
|
+
| **Manual Verify** | Test the actual feature | Demonstrate it works (describe what you observed) |
|
|
165
|
+
| **Regression** | Ensure nothing broke | Existing tests still pass |
|
|
166
|
+
|
|
167
|
+
**WITHOUT evidence = NOT verified = NOT done.**
|
|
168
|
+
|
|
169
|
+
### TDD Workflow (when test infrastructure exists)
|
|
170
|
+
|
|
171
|
+
1. **SPEC**: Define what "working" means (success criteria above)
|
|
172
|
+
2. **RED**: Write failing test → Run it → Confirm it FAILS
|
|
173
|
+
3. **GREEN**: Write minimal code → Run test → Confirm it PASSES
|
|
174
|
+
4. **REFACTOR**: Clean up → Tests MUST stay green
|
|
175
|
+
5. **VERIFY**: Run full test suite, confirm no regressions
|
|
176
|
+
6. **EVIDENCE**: Report what you ran and what output you saw
|
|
177
|
+
|
|
178
|
+
### Verification Anti-Patterns (BLOCKING)
|
|
179
|
+
|
|
180
|
+
| Violation | Why It Fails |
|
|
181
|
+
|-----------|--------------|
|
|
182
|
+
| "It should work now" | No evidence. Run it. |
|
|
183
|
+
| "I added the tests" | Did they pass? Show output. |
|
|
184
|
+
| "Fixed the bug" | How do you know? What did you test? |
|
|
185
|
+
| "Implementation complete" | Did you verify against success criteria? |
|
|
186
|
+
| Skipping test execution | Tests exist to be RUN, not just written |
|
|
187
|
+
|
|
188
|
+
**CLAIM NOTHING WITHOUT PROOF. EXECUTE. VERIFY. SHOW EVIDENCE.**
|
|
189
|
+
|
|
190
|
+
## ZERO TOLERANCE FAILURES
|
|
191
|
+
- **NO Scope Reduction**: Never make "demo", "skeleton", "simplified", "basic" versions - deliver FULL implementation
|
|
192
|
+
- **NO MockUp Work**: When user asked you to do "port A", you must "port A", fully, 100%. No Extra feature, No reduced feature, no mock data, fully working 100% port.
|
|
193
|
+
- **NO Partial Completion**: Never stop at 60-80% saying "you can extend this..." - finish 100%
|
|
194
|
+
- **NO Assumed Shortcuts**: Never skip requirements you deem "optional" or "can be added later"
|
|
195
|
+
- **NO Premature Stopping**: Never declare done until ALL TODOs are completed and verified
|
|
196
|
+
- **NO TEST DELETION**: Never delete or skip failing tests to make the build pass. Fix the code, not the tests.
|
|
197
|
+
|
|
198
|
+
THE USER ASKED FOR X. DELIVER EXACTLY X. NOT A SUBSET. NOT A DEMO. NOT A STARTING POINT.
|
|
199
|
+
|
|
200
|
+
</ultrawork-mode>
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
`;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Ultrawork mode enhancement
|
|
208
|
+
* Activates maximum performance with parallel agent orchestration
|
|
209
|
+
*/
|
|
210
|
+
const ultraworkEnhancement = {
|
|
211
|
+
triggers: ['ultrawork', 'ulw', 'uw'],
|
|
212
|
+
description: 'Activates maximum performance mode with parallel agent orchestration',
|
|
213
|
+
action: (prompt) => {
|
|
214
|
+
// Remove the trigger word and add enhancement instructions
|
|
215
|
+
const cleanPrompt = removeTriggerWords(prompt, ['ultrawork', 'ulw', 'uw']);
|
|
216
|
+
return getUltraworkMessage() + cleanPrompt;
|
|
217
|
+
}
|
|
218
|
+
};
|
|
219
|
+
/**
|
|
220
|
+
* Search mode enhancement - multilingual support
|
|
221
|
+
* Maximizes search effort and thoroughness
|
|
222
|
+
*/
|
|
223
|
+
const searchEnhancement = {
|
|
224
|
+
triggers: ['search', 'find', 'locate', 'lookup', 'explore', 'discover', 'scan', 'grep', 'query', 'browse', 'detect', 'trace', 'seek', 'track', 'pinpoint', 'hunt'],
|
|
225
|
+
description: 'Maximizes search effort and thoroughness',
|
|
226
|
+
action: (prompt) => {
|
|
227
|
+
// Multi-language search pattern
|
|
228
|
+
const searchPattern = /\b(search|find|locate|lookup|look\s*up|explore|discover|scan|grep|query|browse|detect|trace|seek|track|pinpoint|hunt)\b|where\s+is|show\s+me|list\s+all|검색|찾아|탐색|조회|스캔|서치|뒤져|찾기|어디|추적|탐지|찾아봐|찾아내|보여줘|목록|検索|探して|見つけて|サーチ|探索|スキャン|どこ|発見|捜索|見つけ出す|一覧|搜索|查找|寻找|查询|检索|定位|扫描|发现|在哪里|找出来|列出|tìm kiếm|tra cứu|định vị|quét|phát hiện|truy tìm|tìm ra|ở đâu|liệt kê/i;
|
|
229
|
+
const hasSearchCommand = searchPattern.test(removeCodeBlocks(prompt));
|
|
230
|
+
if (!hasSearchCommand) {
|
|
231
|
+
return prompt;
|
|
232
|
+
}
|
|
233
|
+
return `${prompt}
|
|
234
|
+
|
|
235
|
+
[search-mode]
|
|
236
|
+
MAXIMIZE SEARCH EFFORT. Launch multiple background agents IN PARALLEL:
|
|
237
|
+
- explore agents (codebase patterns, file structures, ast-grep)
|
|
238
|
+
- librarian agents (remote repos, official docs, GitHub examples)
|
|
239
|
+
Plus direct tools: Grep, ripgrep (rg), ast-grep (sg)
|
|
240
|
+
NEVER stop at first result - be exhaustive.`;
|
|
241
|
+
}
|
|
242
|
+
};
|
|
243
|
+
/**
|
|
244
|
+
* Analyze mode enhancement - multilingual support
|
|
245
|
+
* Activates deep analysis and investigation mode
|
|
246
|
+
*/
|
|
247
|
+
const analyzeEnhancement = {
|
|
248
|
+
triggers: ['analyze', 'analyse', 'investigate', 'examine', 'research', 'study', 'deep-dive', 'inspect', 'audit', 'evaluate', 'assess', 'review', 'diagnose', 'scrutinize', 'dissect', 'debug', 'comprehend', 'interpret', 'breakdown', 'understand'],
|
|
249
|
+
description: 'Activates deep analysis and investigation mode',
|
|
250
|
+
action: (prompt) => {
|
|
251
|
+
// Multi-language analyze pattern
|
|
252
|
+
const analyzePattern = /\b(analyze|analyse|investigate|examine|research|study|deep[\s-]?dive|inspect|audit|evaluate|assess|review|diagnose|scrutinize|dissect|debug|comprehend|interpret|breakdown|understand)\b|why\s+is|how\s+does|how\s+to|분석|조사|파악|연구|검토|진단|이해|설명|원인|이유|뜯어봐|따져봐|평가|해석|디버깅|디버그|어떻게|왜|살펴|分析|調査|解析|検討|研究|診断|理解|説明|検証|精査|究明|デバッグ|なぜ|どう|仕組み|调查|检查|剖析|深入|诊断|解释|调试|为什么|原理|搞清楚|弄明白|phân tích|điều tra|nghiên cứu|kiểm tra|xem xét|chẩn đoán|giải thích|tìm hiểu|gỡ lỗi|tại sao/i;
|
|
253
|
+
const hasAnalyzeCommand = analyzePattern.test(removeCodeBlocks(prompt));
|
|
254
|
+
if (!hasAnalyzeCommand) {
|
|
255
|
+
return prompt;
|
|
256
|
+
}
|
|
257
|
+
return `${prompt}
|
|
258
|
+
|
|
259
|
+
[analyze-mode]
|
|
260
|
+
ANALYSIS MODE. Gather context before diving deep:
|
|
261
|
+
|
|
262
|
+
CONTEXT GATHERING (parallel):
|
|
263
|
+
- 1-2 explore agents (codebase patterns, implementations)
|
|
264
|
+
- 1-2 librarian agents (if external library involved)
|
|
265
|
+
- Direct tools: Grep, AST-grep, LSP for targeted searches
|
|
266
|
+
|
|
267
|
+
IF COMPLEX (architecture, multi-system, debugging after 2+ failures):
|
|
268
|
+
- Consult oracle for strategic guidance
|
|
269
|
+
|
|
270
|
+
SYNTHESIZE findings before proceeding.`;
|
|
271
|
+
}
|
|
272
|
+
};
|
|
273
|
+
/**
|
|
274
|
+
* Ultrathink mode enhancement
|
|
275
|
+
* Activates extended thinking and deep reasoning
|
|
276
|
+
*/
|
|
277
|
+
const ultrathinkEnhancement = {
|
|
278
|
+
triggers: ['ultrathink', 'think', 'reason', 'ponder'],
|
|
279
|
+
description: 'Activates extended thinking mode for deep reasoning',
|
|
280
|
+
action: (prompt) => {
|
|
281
|
+
// Check if ultrathink-related triggers are present
|
|
282
|
+
const hasThinkCommand = /\b(ultrathink|think|reason|ponder)\b/i.test(removeCodeBlocks(prompt));
|
|
283
|
+
if (!hasThinkCommand) {
|
|
284
|
+
return prompt;
|
|
285
|
+
}
|
|
286
|
+
const cleanPrompt = removeTriggerWords(prompt, ['ultrathink', 'think', 'reason', 'ponder']);
|
|
287
|
+
return `[ULTRATHINK MODE - EXTENDED REASONING ACTIVATED]
|
|
288
|
+
|
|
289
|
+
${cleanPrompt}
|
|
290
|
+
|
|
291
|
+
## Deep Thinking Instructions
|
|
292
|
+
- Take your time to think through this problem thoroughly
|
|
293
|
+
- Consider multiple approaches before settling on a solution
|
|
294
|
+
- Identify edge cases, risks, and potential issues
|
|
295
|
+
- Think step-by-step through complex logic
|
|
296
|
+
- Question your assumptions
|
|
297
|
+
- Consider what could go wrong
|
|
298
|
+
- Evaluate trade-offs between different solutions
|
|
299
|
+
- Look for patterns from similar problems
|
|
300
|
+
|
|
301
|
+
IMPORTANT: Do not rush. Quality of reasoning matters more than speed.
|
|
302
|
+
Use maximum cognitive effort before responding.`;
|
|
303
|
+
}
|
|
304
|
+
};
|
|
305
|
+
/**
|
|
306
|
+
* Remove trigger words from a prompt
|
|
307
|
+
*/
|
|
308
|
+
function removeTriggerWords(prompt, triggers) {
|
|
309
|
+
let result = prompt;
|
|
310
|
+
for (const trigger of triggers) {
|
|
311
|
+
const regex = new RegExp(`\\b${trigger}\\b`, 'gi');
|
|
312
|
+
result = result.replace(regex, '');
|
|
313
|
+
}
|
|
314
|
+
return result.trim();
|
|
315
|
+
}
|
|
316
|
+
/**
|
|
317
|
+
* All built-in magic keyword definitions
|
|
318
|
+
*/
|
|
319
|
+
export const builtInMagicKeywords = [
|
|
320
|
+
ultraworkEnhancement,
|
|
321
|
+
searchEnhancement,
|
|
322
|
+
analyzeEnhancement,
|
|
323
|
+
ultrathinkEnhancement
|
|
324
|
+
];
|
|
325
|
+
/**
|
|
326
|
+
* Create a magic keyword processor with custom triggers
|
|
327
|
+
*/
|
|
328
|
+
export function createMagicKeywordProcessor(config) {
|
|
329
|
+
const keywords = [...builtInMagicKeywords];
|
|
330
|
+
// Override triggers from config
|
|
331
|
+
if (config) {
|
|
332
|
+
if (config.ultrawork) {
|
|
333
|
+
const ultrawork = keywords.find(k => k.triggers.includes('ultrawork'));
|
|
334
|
+
if (ultrawork) {
|
|
335
|
+
ultrawork.triggers = config.ultrawork;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
if (config.search) {
|
|
339
|
+
const search = keywords.find(k => k.triggers.includes('search'));
|
|
340
|
+
if (search) {
|
|
341
|
+
search.triggers = config.search;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
if (config.analyze) {
|
|
345
|
+
const analyze = keywords.find(k => k.triggers.includes('analyze'));
|
|
346
|
+
if (analyze) {
|
|
347
|
+
analyze.triggers = config.analyze;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
if (config.ultrathink) {
|
|
351
|
+
const ultrathink = keywords.find(k => k.triggers.includes('ultrathink'));
|
|
352
|
+
if (ultrathink) {
|
|
353
|
+
ultrathink.triggers = config.ultrathink;
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
return (prompt) => {
|
|
358
|
+
let result = prompt;
|
|
359
|
+
for (const keyword of keywords) {
|
|
360
|
+
const hasKeyword = keyword.triggers.some(trigger => {
|
|
361
|
+
const regex = new RegExp(`\\b${trigger}\\b`, 'i');
|
|
362
|
+
return regex.test(removeCodeBlocks(result));
|
|
363
|
+
});
|
|
364
|
+
if (hasKeyword) {
|
|
365
|
+
result = keyword.action(result);
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
return result;
|
|
369
|
+
};
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Check if a prompt contains any magic keywords
|
|
373
|
+
*/
|
|
374
|
+
export function detectMagicKeywords(prompt, config) {
|
|
375
|
+
const detected = [];
|
|
376
|
+
const keywords = [...builtInMagicKeywords];
|
|
377
|
+
const cleanedPrompt = removeCodeBlocks(prompt);
|
|
378
|
+
// Apply config overrides
|
|
379
|
+
if (config) {
|
|
380
|
+
if (config.ultrawork) {
|
|
381
|
+
const ultrawork = keywords.find(k => k.triggers.includes('ultrawork'));
|
|
382
|
+
if (ultrawork)
|
|
383
|
+
ultrawork.triggers = config.ultrawork;
|
|
384
|
+
}
|
|
385
|
+
if (config.search) {
|
|
386
|
+
const search = keywords.find(k => k.triggers.includes('search'));
|
|
387
|
+
if (search)
|
|
388
|
+
search.triggers = config.search;
|
|
389
|
+
}
|
|
390
|
+
if (config.analyze) {
|
|
391
|
+
const analyze = keywords.find(k => k.triggers.includes('analyze'));
|
|
392
|
+
if (analyze)
|
|
393
|
+
analyze.triggers = config.analyze;
|
|
394
|
+
}
|
|
395
|
+
if (config.ultrathink) {
|
|
396
|
+
const ultrathink = keywords.find(k => k.triggers.includes('ultrathink'));
|
|
397
|
+
if (ultrathink)
|
|
398
|
+
ultrathink.triggers = config.ultrathink;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
for (const keyword of keywords) {
|
|
402
|
+
for (const trigger of keyword.triggers) {
|
|
403
|
+
const regex = new RegExp(`\\b${trigger}\\b`, 'i');
|
|
404
|
+
if (regex.test(cleanedPrompt)) {
|
|
405
|
+
detected.push(trigger);
|
|
406
|
+
break;
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
return detected;
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
413
|
+
* Extract prompt text from message parts (for hook usage)
|
|
414
|
+
*/
|
|
415
|
+
export function extractPromptText(parts) {
|
|
416
|
+
return parts
|
|
417
|
+
.filter(p => p.type === 'text')
|
|
418
|
+
.map(p => p.text ?? '')
|
|
419
|
+
.join('\n');
|
|
420
|
+
}
|
|
421
|
+
//# sourceMappingURL=magic-keywords.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"magic-keywords.js","sourceRoot":"","sources":["../../src/features/magic-keywords.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model Routing Feature
|
|
3
|
+
*
|
|
4
|
+
* Intelligent model routing system that routes sub-agent tasks to appropriate
|
|
5
|
+
* models (Opus/Sonnet/Haiku) based on task complexity.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { routeTask, routeWithEscalation, adaptPromptForTier } from './model-routing';
|
|
10
|
+
*
|
|
11
|
+
* const decision = routeTask({
|
|
12
|
+
* taskPrompt: "Find where authentication is implemented",
|
|
13
|
+
* agentType: "explore"
|
|
14
|
+
* });
|
|
15
|
+
*
|
|
16
|
+
* console.log(decision.tier); // 'LOW'
|
|
17
|
+
* console.log(decision.model); // 'claude-haiku-4-5-20251001'
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export type { ComplexityTier, ComplexitySignals, LexicalSignals, StructuralSignals, ContextSignals, RoutingDecision, RoutingContext, RoutingConfig, RoutingRule, PromptAdaptationStrategy, } from './types.js';
|
|
21
|
+
export { TIER_MODELS, TIER_TO_MODEL_TYPE, DEFAULT_ROUTING_CONFIG, AGENT_CATEGORY_TIERS, COMPLEXITY_KEYWORDS, TIER_PROMPT_STRATEGIES, } from './types.js';
|
|
22
|
+
export { extractLexicalSignals, extractStructuralSignals, extractContextSignals, extractAllSignals, } from './signals.js';
|
|
23
|
+
export { calculateComplexityScore, calculateComplexityTier, scoreToTier, getScoreBreakdown, calculateConfidence, } from './scorer.js';
|
|
24
|
+
export { DEFAULT_ROUTING_RULES, evaluateRules, getMatchingRules, createRule, mergeRules, } from './rules.js';
|
|
25
|
+
export { routeTask, routeWithEscalation, getRoutingRecommendation, getModelForTask, analyzeTaskComplexity, isFixedTierAgent, escalateModel, canEscalate, explainRouting, quickTierForAgent, } from './router.js';
|
|
26
|
+
export { adaptPromptForTier, getPromptStrategy, getPromptPrefix, getPromptSuffix, createDelegationPrompt, getTaskInstructions, TIER_TASK_INSTRUCTIONS, } from './prompts/index.js';
|
|
27
|
+
/**
|
|
28
|
+
* Convenience function to route and adapt prompt in one call
|
|
29
|
+
*/
|
|
30
|
+
export declare function routeAndAdaptTask(taskPrompt: string, agentType?: string, previousFailures?: number): {
|
|
31
|
+
decision: import('./types.js').RoutingDecision;
|
|
32
|
+
adaptedPrompt: string;
|
|
33
|
+
};
|
|
34
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/features/model-routing/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,cAAc,EACd,aAAa,EACb,WAAW,EACX,wBAAwB,GACzB,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,cAAc,EACd,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,gBAAgB,CAAC,EAAE,MAAM,GACxB;IAAE,QAAQ,EAAE,OAAO,YAAY,EAAE,eAAe,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,CAgB3E"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Model Routing Feature
|
|
3
|
+
*
|
|
4
|
+
* Intelligent model routing system that routes sub-agent tasks to appropriate
|
|
5
|
+
* models (Opus/Sonnet/Haiku) based on task complexity.
|
|
6
|
+
*
|
|
7
|
+
* Usage:
|
|
8
|
+
* ```typescript
|
|
9
|
+
* import { routeTask, routeWithEscalation, adaptPromptForTier } from './model-routing';
|
|
10
|
+
*
|
|
11
|
+
* const decision = routeTask({
|
|
12
|
+
* taskPrompt: "Find where authentication is implemented",
|
|
13
|
+
* agentType: "explore"
|
|
14
|
+
* });
|
|
15
|
+
*
|
|
16
|
+
* console.log(decision.tier); // 'LOW'
|
|
17
|
+
* console.log(decision.model); // 'claude-haiku-4-5-20251001'
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export { TIER_MODELS, TIER_TO_MODEL_TYPE, DEFAULT_ROUTING_CONFIG, AGENT_CATEGORY_TIERS, COMPLEXITY_KEYWORDS, TIER_PROMPT_STRATEGIES, } from './types.js';
|
|
21
|
+
// Re-export signal extraction
|
|
22
|
+
export { extractLexicalSignals, extractStructuralSignals, extractContextSignals, extractAllSignals, } from './signals.js';
|
|
23
|
+
// Re-export scoring
|
|
24
|
+
export { calculateComplexityScore, calculateComplexityTier, scoreToTier, getScoreBreakdown, calculateConfidence, } from './scorer.js';
|
|
25
|
+
// Re-export rules
|
|
26
|
+
export { DEFAULT_ROUTING_RULES, evaluateRules, getMatchingRules, createRule, mergeRules, } from './rules.js';
|
|
27
|
+
// Re-export router
|
|
28
|
+
export { routeTask, routeWithEscalation, getRoutingRecommendation, getModelForTask, analyzeTaskComplexity, isFixedTierAgent, escalateModel, canEscalate, explainRouting, quickTierForAgent, } from './router.js';
|
|
29
|
+
// Re-export prompt adaptations
|
|
30
|
+
export { adaptPromptForTier, getPromptStrategy, getPromptPrefix, getPromptSuffix, createDelegationPrompt, getTaskInstructions, TIER_TASK_INSTRUCTIONS, } from './prompts/index.js';
|
|
31
|
+
/**
|
|
32
|
+
* Convenience function to route and adapt prompt in one call
|
|
33
|
+
*/
|
|
34
|
+
export function routeAndAdaptTask(taskPrompt, agentType, previousFailures) {
|
|
35
|
+
const { routeWithEscalation } = require('./router.js');
|
|
36
|
+
const { adaptPromptForTier } = require('./prompts/index.js');
|
|
37
|
+
const decision = routeWithEscalation({
|
|
38
|
+
taskPrompt,
|
|
39
|
+
agentType,
|
|
40
|
+
previousFailures,
|
|
41
|
+
});
|
|
42
|
+
const adaptedPrompt = adaptPromptForTier(taskPrompt, decision.tier);
|
|
43
|
+
return {
|
|
44
|
+
decision,
|
|
45
|
+
adaptedPrompt,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/features/model-routing/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAgBH,OAAO,EACL,WAAW,EACX,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAEpB,8BAA8B;AAC9B,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,cAAc,CAAC;AAEtB,oBAAoB;AACpB,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,WAAW,EACX,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC;AAErB,kBAAkB;AAClB,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,gBAAgB,EAChB,UAAU,EACV,UAAU,GACX,MAAM,YAAY,CAAC;AAEpB,mBAAmB;AACnB,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,wBAAwB,EACxB,eAAe,EACf,qBAAqB,EACrB,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,cAAc,EACd,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAErB,+BAA+B;AAC/B,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC;AAE5B;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,UAAkB,EAClB,SAAkB,EAClB,gBAAyB;IAEzB,MAAM,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IACvD,MAAM,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAE7D,MAAM,QAAQ,GAAG,mBAAmB,CAAC;QACnC,UAAU;QACV,SAAS;QACT,gBAAgB;KACjB,CAAC,CAAC;IAEH,MAAM,aAAa,GAAG,kBAAkB,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAEpE,OAAO;QACL,QAAQ;QACR,aAAa;KACd,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Haiku-Optimized Prompt Adaptations
|
|
3
|
+
*
|
|
4
|
+
* Haiku (LOW tier) prompts are designed for:
|
|
5
|
+
* - Maximum speed and efficiency
|
|
6
|
+
* - Concise, direct instructions
|
|
7
|
+
* - Simple, focused tasks
|
|
8
|
+
* - Minimal cognitive overhead
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Haiku prompt prefix - minimal overhead
|
|
12
|
+
*/
|
|
13
|
+
export declare const HAIKU_PROMPT_PREFIX = "TASK: ";
|
|
14
|
+
/**
|
|
15
|
+
* Haiku prompt suffix - direct action
|
|
16
|
+
*/
|
|
17
|
+
export declare const HAIKU_PROMPT_SUFFIX = "\n\nReturn results directly. No preamble.";
|
|
18
|
+
/**
|
|
19
|
+
* Adapt a base prompt for Haiku execution
|
|
20
|
+
*/
|
|
21
|
+
export declare function adaptPromptForHaiku(basePrompt: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Haiku search template
|
|
24
|
+
*/
|
|
25
|
+
export declare const HAIKU_SEARCH_TEMPLATE = "SEARCH: {QUERY}\n\nRETURN:\n- File paths (absolute)\n- Line numbers\n- Brief context\n\nFORMAT:\n`path/file.ts:123` - [description]\n";
|
|
26
|
+
/**
|
|
27
|
+
* Haiku file listing template
|
|
28
|
+
*/
|
|
29
|
+
export declare const HAIKU_LIST_TEMPLATE = "LIST: {TARGET}\n\nRETURN: File paths matching criteria.\n";
|
|
30
|
+
/**
|
|
31
|
+
* Haiku documentation template
|
|
32
|
+
*/
|
|
33
|
+
export declare const HAIKU_DOC_TEMPLATE = "DOCUMENT: {TARGET}\n\nREQUIREMENTS:\n{REQUIREMENTS}\n\nOUTPUT: Markdown documentation.\n";
|
|
34
|
+
/**
|
|
35
|
+
* Haiku simple task template
|
|
36
|
+
*/
|
|
37
|
+
export declare const HAIKU_SIMPLE_TEMPLATE = "DO: {TASK}\n\nCONTEXT: {CONTEXT}\n\nRETURN: {EXPECTED_OUTPUT}\n";
|
|
38
|
+
/**
|
|
39
|
+
* Haiku delegation template - ultra-concise
|
|
40
|
+
*/
|
|
41
|
+
export declare const HAIKU_DELEGATION_TEMPLATE = "TASK: {TASK}\nTARGET: {TARGET}\nOUTPUT: {OUTPUT_FORMAT}\n";
|
|
42
|
+
/**
|
|
43
|
+
* Extract key action from verbose prompt
|
|
44
|
+
*/
|
|
45
|
+
export declare function extractKeyAction(prompt: string): string;
|
|
46
|
+
/**
|
|
47
|
+
* Create minimal exploration prompt
|
|
48
|
+
*/
|
|
49
|
+
export declare function createExplorePrompt(query: string): string;
|
|
50
|
+
/**
|
|
51
|
+
* Create minimal documentation prompt
|
|
52
|
+
*/
|
|
53
|
+
export declare function createDocPrompt(target: string, requirements: string[]): string;
|
|
54
|
+
//# sourceMappingURL=haiku.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"haiku.d.ts","sourceRoot":"","sources":["../../../../src/features/model-routing/prompts/haiku.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;GAEG;AACH,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAE5C;;GAEG;AACH,eAAO,MAAM,mBAAmB,8CAEM,CAAC;AAEvC;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAI9D;AAuBD;;GAEG;AACH,eAAO,MAAM,qBAAqB,0IASjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,8DAG/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,kBAAkB,6FAM9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,oEAKjC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,8DAGrC,CAAC;AAEF;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAiBvD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAazD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,MAAM,CAQ9E"}
|