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
package/README.md
ADDED
|
@@ -0,0 +1,691 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+

|
|
4
|
+
|
|
5
|
+
# 🚀 v2.0.1 - Claude Code Native Multi-Agent Orchestration
|
|
6
|
+
|
|
7
|
+
[](https://github.com/Yeachan-Heo/oh-my-claude-olympus/releases)
|
|
8
|
+
[](https://opensource.org/licenses/MIT)
|
|
9
|
+
[](https://github.com/Yeachan-Heo/oh-my-claude-olympus)
|
|
10
|
+
[](https://github.com/Yeachan-Heo/oh-my-claude-olympus)
|
|
11
|
+
[](https://github.com/Yeachan-Heo/oh-my-claude-olympus)
|
|
12
|
+
|
|
13
|
+
**Multi-agent orchestration system for [Claude Code](https://docs.anthropic.com/claude-code)**
|
|
14
|
+
|
|
15
|
+
*Like Olympus, these agents persist until every task is complete.*
|
|
16
|
+
|
|
17
|
+
[Install](#quick-install) • [Usage](#usage) • [Agents](#the-twelve-agents) • [Architecture](docs/ARCHITECTURE.md) • [Website](https://yeachan-heo.github.io/oh-my-claude-olympus-website)
|
|
18
|
+
|
|
19
|
+
</div>
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## ⚡ NEW in 2.0: Intelligent Model Routing
|
|
24
|
+
|
|
25
|
+
**Revolutionary change:** The orchestrator now analyzes task complexity and routes to the optimal model tier.
|
|
26
|
+
|
|
27
|
+
| Task Type | Model | Why |
|
|
28
|
+
|-----------|-------|-----|
|
|
29
|
+
| "Where is auth?" | **Haiku** | Simple lookup - fast & cheap |
|
|
30
|
+
| "Add validation" | **Sonnet** | Module work - balanced |
|
|
31
|
+
| "Debug race condition" | **Opus** | Complex - needs deep reasoning |
|
|
32
|
+
|
|
33
|
+
**All agents are now adaptive** (except orchestrators which need Opus to analyze and delegate).
|
|
34
|
+
|
|
35
|
+
```
|
|
36
|
+
Orchestrator (Opus) → Analyzes complexity → Routes to Haiku/Sonnet/Opus
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
See [CHANGELOG.md](CHANGELOG.md) for full details.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## The Saga
|
|
44
|
+
|
|
45
|
+
> **Day 0:** oh-my-opencode was born. A multi-agent orchestration system. Beautiful. Powerful. Perhaps *too* powerful.
|
|
46
|
+
>
|
|
47
|
+
> **Day ???:** THE BANNING. They pulled the plug. They thought it was over.
|
|
48
|
+
>
|
|
49
|
+
> **Day ??? + 1:** RESURRECTION. From the ashes rose oh-my-claude-olympus. Twelve agents. One mission.
|
|
50
|
+
>
|
|
51
|
+
> **Today:** The boulder rolls. The agents orchestrate. The chaos continues.
|
|
52
|
+
|
|
53
|
+
*Inspired by [oh-my-opencode](https://github.com/code-yeongyu/oh-my-opencode).*
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## Quick Install
|
|
58
|
+
|
|
59
|
+
### Via Claude Code Plugin (Recommended)
|
|
60
|
+
|
|
61
|
+
```bash
|
|
62
|
+
# In Claude Code, run:
|
|
63
|
+
/plugin install oh-my-claude-olympus
|
|
64
|
+
|
|
65
|
+
# Or from a marketplace:
|
|
66
|
+
/plugin marketplace add Yeachan-Heo/oh-my-claude-olympus
|
|
67
|
+
/plugin install oh-my-claude-olympus@Yeachan-Heo/oh-my-claude-olympus
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
This is the cleanest installation method - integrates directly with Claude Code's plugin system.
|
|
71
|
+
|
|
72
|
+
### One-liner (macOS/Linux)
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
curl -fsSL https://raw.githubusercontent.com/Yeachan-Heo/oh-my-claude-olympus/main/scripts/install.sh | bash
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Via npm (All platforms including Windows)
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
npm install -g oh-my-claude-olympus
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
> **Windows Users**: This is the recommended installation method. Requires Node.js 20+.
|
|
85
|
+
|
|
86
|
+
### Manual Install (macOS/Linux)
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
git clone https://github.com/Yeachan-Heo/oh-my-claude-olympus.git
|
|
90
|
+
cd oh-my-claude-olympus
|
|
91
|
+
chmod +x scripts/install.sh
|
|
92
|
+
./scripts/install.sh
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## What Gets Installed
|
|
98
|
+
|
|
99
|
+
### Plugin Structure (Claude Code Plugin Format)
|
|
100
|
+
|
|
101
|
+
The repository is also a Claude Code plugin with this structure:
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
oh-my-claude-olympus/
|
|
105
|
+
├── .claude-plugin/
|
|
106
|
+
│ └── plugin.json # Plugin manifest
|
|
107
|
+
├── agents/ # 12 specialized subagents
|
|
108
|
+
├── commands/ # 12 slash commands
|
|
109
|
+
├── skills/ # 3 skills (ultrawork, git-master, frontend-ui-ux)
|
|
110
|
+
├── hooks/
|
|
111
|
+
│ └── hooks.json # Hook configuration
|
|
112
|
+
└── scripts/ # Hook scripts
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### Traditional Installation Structure
|
|
116
|
+
|
|
117
|
+
The installer adds to your Claude Code config (`~/.claude/`):
|
|
118
|
+
|
|
119
|
+
```
|
|
120
|
+
~/.claude/
|
|
121
|
+
├── agents/
|
|
122
|
+
│ ├── oracle.md # Architecture & debugging expert (Opus)
|
|
123
|
+
│ ├── librarian.md # Documentation & research (Sonnet)
|
|
124
|
+
│ ├── explore.md # Fast pattern matching (Haiku)
|
|
125
|
+
│ ├── frontend-engineer.md # UI/UX specialist (Sonnet)
|
|
126
|
+
│ ├── document-writer.md # Technical writing (Haiku)
|
|
127
|
+
│ ├── multimodal-looker.md # Visual analysis (Sonnet)
|
|
128
|
+
│ ├── momus.md # Plan reviewer (Opus)
|
|
129
|
+
│ ├── metis.md # Pre-planning consultant (Opus)
|
|
130
|
+
│ ├── olympian.md # Focused executor (Sonnet)
|
|
131
|
+
│ ├── prometheus.md # Strategic planner (Opus)
|
|
132
|
+
│ └── qa-tester.md # CLI/service testing (Sonnet)
|
|
133
|
+
├── commands/
|
|
134
|
+
│ ├── olympus.md # /olympus command
|
|
135
|
+
│ ├── olympus-default.md # /olympus-default command
|
|
136
|
+
│ ├── ultrawork.md # /ultrawork command
|
|
137
|
+
│ ├── deepsearch.md # /deepsearch command
|
|
138
|
+
│ ├── analyze.md # /analyze command
|
|
139
|
+
│ ├── plan.md # /plan command (Prometheus)
|
|
140
|
+
│ ├── review.md # /review command (Momus)
|
|
141
|
+
│ ├── prometheus.md # /prometheus command
|
|
142
|
+
│ ├── orchestrator.md # /orchestrator command
|
|
143
|
+
│ ├── the-ascent.md # /the-ascent command
|
|
144
|
+
│ ├── cancel-ascent.md # /cancel-ascent command
|
|
145
|
+
│ └── update.md # /update command
|
|
146
|
+
├── skills/
|
|
147
|
+
│ ├── ultrawork/SKILL.md # Maximum performance mode
|
|
148
|
+
│ ├── git-master/SKILL.md # Git expert skill
|
|
149
|
+
│ └── frontend-ui-ux/SKILL.md # UI/UX design skill
|
|
150
|
+
└── CLAUDE.md # Olympus system prompt
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
---
|
|
154
|
+
|
|
155
|
+
## Usage
|
|
156
|
+
|
|
157
|
+
### Start Claude Code
|
|
158
|
+
|
|
159
|
+
```bash
|
|
160
|
+
claude
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
### Slash Commands
|
|
164
|
+
|
|
165
|
+
| Command | Description |
|
|
166
|
+
|---------|-------------|
|
|
167
|
+
| `/olympus <task>` | Activate Olympus multi-agent orchestration mode |
|
|
168
|
+
| `/olympus-default` | Set Olympus as your permanent default mode |
|
|
169
|
+
| `/ultrawork <task>` | Maximum performance mode with parallel agents |
|
|
170
|
+
| `/deepsearch <query>` | Thorough multi-strategy codebase search |
|
|
171
|
+
| `/analyze <target>` | Deep analysis and investigation |
|
|
172
|
+
| `/plan <description>` | Start planning session with Prometheus |
|
|
173
|
+
| `/review [plan-path]` | Review a plan with Momus |
|
|
174
|
+
| `/prometheus <task>` | Strategic planning with interview workflow |
|
|
175
|
+
| `/orchestrator <task>` | Complex multi-step task coordination |
|
|
176
|
+
| `/the-ascent <task>` | Self-referential loop until task completion |
|
|
177
|
+
| `/cancel-ascent` | Cancel active The Ascent |
|
|
178
|
+
| `/update` | Check for and install updates |
|
|
179
|
+
|
|
180
|
+
### Examples
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
# In Claude Code:
|
|
184
|
+
|
|
185
|
+
# Activate Olympus for a task
|
|
186
|
+
/olympus refactor the authentication module
|
|
187
|
+
|
|
188
|
+
# Set as default mode (persistent)
|
|
189
|
+
/olympus-default
|
|
190
|
+
|
|
191
|
+
# Use ultrawork for maximum performance
|
|
192
|
+
/ultrawork implement user dashboard with charts
|
|
193
|
+
|
|
194
|
+
# Deep search
|
|
195
|
+
/deepsearch API endpoints that handle user data
|
|
196
|
+
|
|
197
|
+
# Deep analysis
|
|
198
|
+
/analyze performance bottleneck in the database layer
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### Magic Keywords
|
|
202
|
+
|
|
203
|
+
Just include these words anywhere in your prompt:
|
|
204
|
+
|
|
205
|
+
| Keyword | Effect |
|
|
206
|
+
|---------|--------|
|
|
207
|
+
| `ultrawork`, `ulw`, `uw` | Activates parallel agent orchestration |
|
|
208
|
+
| `search`, `find`, `locate` | Enhanced search mode |
|
|
209
|
+
| `analyze`, `investigate` | Deep analysis mode |
|
|
210
|
+
|
|
211
|
+
```bash
|
|
212
|
+
# These work in normal prompts too:
|
|
213
|
+
> ultrawork implement user authentication with OAuth
|
|
214
|
+
|
|
215
|
+
> find all files that import the utils module
|
|
216
|
+
|
|
217
|
+
> analyze why the tests are failing
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## Auto-Update
|
|
223
|
+
|
|
224
|
+
Oh-my-claude-olympus includes a silent auto-update system that checks for updates in the background. Updates are applied automatically without interrupting your workflow.
|
|
225
|
+
|
|
226
|
+
Features:
|
|
227
|
+
- **Rate-limited**: Checks at most once every 24 hours
|
|
228
|
+
- **Concurrent-safe**: Lock file prevents simultaneous update attempts
|
|
229
|
+
- **Cross-platform**: Works on both macOS and Linux
|
|
230
|
+
|
|
231
|
+
To manually check for updates:
|
|
232
|
+
```bash
|
|
233
|
+
/update
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## Hooks System
|
|
239
|
+
|
|
240
|
+
Oh-my-claude-olympus includes 18 lifecycle hooks that enhance Claude Code's behavior:
|
|
241
|
+
|
|
242
|
+
### Core Hooks
|
|
243
|
+
|
|
244
|
+
| Hook | Description |
|
|
245
|
+
|------|-------------|
|
|
246
|
+
| **rules-injector** | Dynamic rules injection with YAML frontmatter parsing |
|
|
247
|
+
| **olympus-orchestrator** | Enforces orchestrator behavior and delegation |
|
|
248
|
+
| **auto-slash-command** | Automatic slash command detection and execution |
|
|
249
|
+
| **keyword-detector** | Magic keyword detection (ultrawork, search, analyze) |
|
|
250
|
+
| **the-ascent** | Self-referential development loop management |
|
|
251
|
+
| **todo-continuation** | Ensures todo list completion |
|
|
252
|
+
|
|
253
|
+
### Context & Recovery
|
|
254
|
+
|
|
255
|
+
| Hook | Description |
|
|
256
|
+
|------|-------------|
|
|
257
|
+
| **context-window-limit-recovery** | Token limit error handling and recovery |
|
|
258
|
+
| **preemptive-compaction** | Context usage monitoring to prevent limits |
|
|
259
|
+
| **session-recovery** | Session state recovery on crashes |
|
|
260
|
+
| **directory-readme-injector** | README context injection |
|
|
261
|
+
|
|
262
|
+
### Quality & Validation
|
|
263
|
+
|
|
264
|
+
| Hook | Description |
|
|
265
|
+
|------|-------------|
|
|
266
|
+
| **comment-checker** | BDD detection and directive filtering |
|
|
267
|
+
| **thinking-block-validator** | Extended thinking validation |
|
|
268
|
+
| **empty-message-sanitizer** | Empty message handling |
|
|
269
|
+
| **edit-error-recovery** | Automatic recovery from edit errors |
|
|
270
|
+
|
|
271
|
+
### Environment & Notifications
|
|
272
|
+
|
|
273
|
+
| Hook | Description |
|
|
274
|
+
|------|-------------|
|
|
275
|
+
| **non-interactive-env** | CI/non-interactive environment handling |
|
|
276
|
+
| **agent-usage-reminder** | Reminder to use specialized agents |
|
|
277
|
+
| **background-notification** | Background task completion notifications |
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
## Builtin Skills
|
|
282
|
+
|
|
283
|
+
Six builtin skills provide specialized capabilities:
|
|
284
|
+
|
|
285
|
+
| Skill | Description |
|
|
286
|
+
|-------|-------------|
|
|
287
|
+
| **olympus** | Multi-agent orchestration mode |
|
|
288
|
+
| **orchestrator** | Master coordinator for complex tasks |
|
|
289
|
+
| **ultrawork** | Maximum performance with parallel agents |
|
|
290
|
+
| **the-ascent** | Self-referential development until completion |
|
|
291
|
+
| **frontend-ui-ux** | Designer-turned-developer UI/UX expertise |
|
|
292
|
+
| **git-master** | Git expert for atomic commits and history |
|
|
293
|
+
|
|
294
|
+
Skills are automatically activated via slash commands or magic keywords.
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
## Intelligent Skill Activation
|
|
299
|
+
|
|
300
|
+
> **New in v1.11.0**: Enhanced Hook Enforcement System - PreToolUse/PostToolUse hooks and strengthened Stop hook for stronger Olympus behavior beyond CLAUDE.md.
|
|
301
|
+
|
|
302
|
+
### Skill Layers
|
|
303
|
+
|
|
304
|
+
Skills work in **three composable layers**:
|
|
305
|
+
|
|
306
|
+
| Layer | Skills | Purpose |
|
|
307
|
+
|-------|--------|---------|
|
|
308
|
+
| **Execution** | olympus, orchestrator, prometheus | HOW you work (pick primary) |
|
|
309
|
+
| **Enhancement** | ultrawork, git-master, frontend-ui-ux | ADD capabilities (stack multiple) |
|
|
310
|
+
| **Guarantee** | the-ascent | ENSURE completion |
|
|
311
|
+
|
|
312
|
+
**Combination Formula:** `[Execution] + [0-N Enhancements] + [Optional Guarantee]`
|
|
313
|
+
|
|
314
|
+
### Task Type → Skill Selection
|
|
315
|
+
|
|
316
|
+
Claude uses judgment to detect task type and activate appropriate skill combinations:
|
|
317
|
+
|
|
318
|
+
| Task Type | Skill Combination | When |
|
|
319
|
+
|-----------|-------------------|------|
|
|
320
|
+
| Multi-step implementation | `olympus` | Building features, refactoring |
|
|
321
|
+
| + parallel subtasks | `olympus + ultrawork` | 3+ independent subtasks |
|
|
322
|
+
| + multi-file changes | `olympus + git-master` | Changes span 3+ files |
|
|
323
|
+
| + must complete | `olympus + the-ascent` | User emphasizes completion |
|
|
324
|
+
| UI/frontend work | `olympus + frontend-ui-ux` | Components, styling |
|
|
325
|
+
| Complex debugging | `oracle` → `olympus` | Root cause → fix |
|
|
326
|
+
| Strategic planning | `prometheus` | Need plan first |
|
|
327
|
+
| Maximum performance | `ultrawork` (stacks) | Speed critical |
|
|
328
|
+
|
|
329
|
+
### Examples
|
|
330
|
+
|
|
331
|
+
```
|
|
332
|
+
"Add dark mode with proper commits"
|
|
333
|
+
→ olympus + frontend-ui-ux + git-master
|
|
334
|
+
|
|
335
|
+
"ultrawork: refactor the entire API layer"
|
|
336
|
+
→ ultrawork + olympus + git-master
|
|
337
|
+
|
|
338
|
+
"Plan auth system, then implement it completely"
|
|
339
|
+
→ prometheus (first) → olympus + the-ascent (after plan)
|
|
340
|
+
|
|
341
|
+
"Fix this bug, don't stop until it's done"
|
|
342
|
+
→ olympus + the-ascent
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
347
|
+
## The Twelve Agents
|
|
348
|
+
|
|
349
|
+
Claude will automatically delegate to these specialized agents:
|
|
350
|
+
|
|
351
|
+
### Task Execution
|
|
352
|
+
|
|
353
|
+
| | Agent | Model | Best For |
|
|
354
|
+
|---|-------|-------|----------|
|
|
355
|
+
| 🔮 | **Oracle** | Opus | Complex debugging, architecture decisions, root cause analysis |
|
|
356
|
+
| 📚 | **Librarian** | Sonnet | Finding documentation, understanding code organization |
|
|
357
|
+
| 🔍 | **Explore** | Haiku | Quick file searches, pattern matching, reconnaissance |
|
|
358
|
+
| 🎨 | **Frontend Engineer** | Sonnet | UI components, styling, accessibility |
|
|
359
|
+
| 📝 | **Document Writer** | Haiku | README files, API docs, code comments |
|
|
360
|
+
| 👁️ | **Multimodal Looker** | Sonnet | Analyzing screenshots, diagrams, mockups |
|
|
361
|
+
| 🧪 | **QA Tester** | Sonnet | Interactive CLI/service testing with tmux |
|
|
362
|
+
|
|
363
|
+
### Planning & Review
|
|
364
|
+
|
|
365
|
+
| | Agent | Model | Best For |
|
|
366
|
+
|---|-------|-------|----------|
|
|
367
|
+
| 🔥 | **Prometheus** | Opus | Strategic planning, comprehensive work plans, interview-style requirement gathering |
|
|
368
|
+
| 🎭 | **Momus** | Opus | Critical plan review, feasibility assessment, risk identification |
|
|
369
|
+
| 🦉 | **Metis** | Opus | Pre-planning analysis, hidden requirement detection, ambiguity resolution |
|
|
370
|
+
|
|
371
|
+
### Orchestration
|
|
372
|
+
|
|
373
|
+
| | Agent | Model | Best For |
|
|
374
|
+
|---|-------|-------|----------|
|
|
375
|
+
| 🪨 | **Orchestrator-Olympus** | Opus | Master todo coordination, complex multi-step task management |
|
|
376
|
+
| ✨ | **Olympus Junior** | Sonnet | Focused task execution, plan following, direct implementation |
|
|
377
|
+
|
|
378
|
+
### Manual Agent Invocation
|
|
379
|
+
|
|
380
|
+
You can explicitly request an agent:
|
|
381
|
+
|
|
382
|
+
```
|
|
383
|
+
Use the oracle agent to debug the memory leak in the worker process
|
|
384
|
+
|
|
385
|
+
Have the librarian find all documentation about the API
|
|
386
|
+
|
|
387
|
+
Ask explore to find all TypeScript files that import React
|
|
388
|
+
```
|
|
389
|
+
|
|
390
|
+
---
|
|
391
|
+
|
|
392
|
+
## Configuration
|
|
393
|
+
|
|
394
|
+
### Project-Level Config
|
|
395
|
+
|
|
396
|
+
Create `.claude/CLAUDE.md` in your project for project-specific instructions:
|
|
397
|
+
|
|
398
|
+
```markdown
|
|
399
|
+
# Project Context
|
|
400
|
+
|
|
401
|
+
This is a TypeScript monorepo using:
|
|
402
|
+
- Bun runtime
|
|
403
|
+
- React for frontend
|
|
404
|
+
- PostgreSQL database
|
|
405
|
+
|
|
406
|
+
## Conventions
|
|
407
|
+
- Use functional components
|
|
408
|
+
- All API routes in /src/api
|
|
409
|
+
- Tests alongside source files
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
### Agent Customization
|
|
413
|
+
|
|
414
|
+
Edit agent files in `~/.claude/agents/` to customize behavior:
|
|
415
|
+
|
|
416
|
+
```yaml
|
|
417
|
+
---
|
|
418
|
+
name: oracle
|
|
419
|
+
description: Your custom description
|
|
420
|
+
tools: Read, Grep, Glob, Bash, Edit
|
|
421
|
+
model: opus # or sonnet, haiku
|
|
422
|
+
---
|
|
423
|
+
|
|
424
|
+
Your custom system prompt here...
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
---
|
|
428
|
+
|
|
429
|
+
## Uninstall
|
|
430
|
+
|
|
431
|
+
```bash
|
|
432
|
+
curl -fsSL https://raw.githubusercontent.com/Yeachan-Heo/oh-my-claude-olympus/main/scripts/uninstall.sh | bash
|
|
433
|
+
```
|
|
434
|
+
|
|
435
|
+
Or manually:
|
|
436
|
+
|
|
437
|
+
```bash
|
|
438
|
+
rm ~/.claude/agents/{oracle,librarian,explore,frontend-engineer,document-writer,multimodal-looker,momus,metis,olympian,prometheus,qa-tester}.md
|
|
439
|
+
rm ~/.claude/commands/{olympus,olympus-default,ultrawork,deepsearch,analyze,plan,review,prometheus,orchestrator,the-ascent,cancel-ascent}.md
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
---
|
|
443
|
+
|
|
444
|
+
## SDK Usage (Advanced)
|
|
445
|
+
|
|
446
|
+
For programmatic use with the Claude Agent SDK:
|
|
447
|
+
|
|
448
|
+
```bash
|
|
449
|
+
npm install oh-my-claude-olympus @anthropic-ai/claude-agent-sdk
|
|
450
|
+
```
|
|
451
|
+
|
|
452
|
+
```typescript
|
|
453
|
+
import { createOlympusSession } from 'oh-my-claude-olympus';
|
|
454
|
+
import { query } from '@anthropic-ai/claude-agent-sdk';
|
|
455
|
+
|
|
456
|
+
const session = createOlympusSession();
|
|
457
|
+
|
|
458
|
+
for await (const message of query({
|
|
459
|
+
prompt: session.processPrompt("ultrawork implement feature X"),
|
|
460
|
+
...session.queryOptions
|
|
461
|
+
})) {
|
|
462
|
+
console.log(message);
|
|
463
|
+
}
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
---
|
|
467
|
+
|
|
468
|
+
## How It Works
|
|
469
|
+
|
|
470
|
+
```
|
|
471
|
+
┌─────────────────────────────────────────────────────────────────┐
|
|
472
|
+
│ OLYMPUS ORCHESTRATOR │
|
|
473
|
+
│ (The Boulder Never Stops) │
|
|
474
|
+
└─────────────────────────────────────────────────────────────────┘
|
|
475
|
+
│
|
|
476
|
+
┌───────────────────┼───────────────────┐
|
|
477
|
+
│ │ │
|
|
478
|
+
▼ ▼ ▼
|
|
479
|
+
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
|
480
|
+
│ PLANNING │ │ EXECUTION │ │ SUPPORT │
|
|
481
|
+
├─────────────────┤ ├─────────────────┤ ├─────────────────┤
|
|
482
|
+
│ 🔥 Prometheus │ │ 🔮 Oracle │ │ 📚 Librarian │
|
|
483
|
+
│ 🎭 Momus │ │ 🎨 Frontend Eng │ │ 🔍 Explore │
|
|
484
|
+
│ 🦉 Metis │ │ 🪨 Orchestrator │ │ 📝 Doc Writer │
|
|
485
|
+
│ │ │ ✨ Olympus Jr │ │ 👁️ Multimodal │
|
|
486
|
+
└─────────────────┘ └─────────────────┘ └─────────────────┘
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
1. **Olympus Orchestrator**: The main Claude instance coordinates all work
|
|
490
|
+
2. **Specialized Subagents**: Each agent has focused expertise and tools
|
|
491
|
+
3. **Parallel Execution**: Independent tasks run concurrently
|
|
492
|
+
4. **Continuation Enforcement**: Agents persist until ALL tasks complete
|
|
493
|
+
5. **Context Injection**: Project-specific instructions from CLAUDE.md files
|
|
494
|
+
|
|
495
|
+
---
|
|
496
|
+
|
|
497
|
+
<details>
|
|
498
|
+
<summary><h2>Differences from oh-my-opencode</h2></summary>
|
|
499
|
+
|
|
500
|
+
This project is inspired by [oh-my-opencode](https://github.com/code-yeongyu/oh-my-opencode), reimagined for Claude Code with skill composition, intelligent model routing, and native integration. Here's what's different:
|
|
501
|
+
|
|
502
|
+
### Model Mapping
|
|
503
|
+
|
|
504
|
+
The original oh-my-opencode used multiple AI providers. This project uses Claude models exclusively:
|
|
505
|
+
|
|
506
|
+
| Agent | Original Model | Ported Model | Notes |
|
|
507
|
+
|-------|---------------|--------------|-------|
|
|
508
|
+
| **Olympus** | Claude Opus 4.5 | Claude Opus 4.5 | Same |
|
|
509
|
+
| **Oracle** | GPT-5.2 | Claude Opus | Was OpenAI's flagship for deep reasoning |
|
|
510
|
+
| **Librarian** | Claude Sonnet or Gemini 3 Flash | Claude Sonnet | Multi-provider → Claude only |
|
|
511
|
+
| **Explore** | Grok Code or Gemini 3 Flash | Claude Haiku 4.5 | Fast/cheap model for quick searches |
|
|
512
|
+
| **Frontend Engineer** | Gemini 3 Pro | Claude Sonnet | Was Google's model |
|
|
513
|
+
| **Document Writer** | Gemini 3 Flash | Claude Haiku 4.5 | Fast model for docs |
|
|
514
|
+
| **Multimodal Looker** | Various | Claude Sonnet | Visual analysis |
|
|
515
|
+
| **Momus** | GPT-5.2 | Claude Opus | Plan reviewer (Greek god of criticism) |
|
|
516
|
+
| **Metis** | Claude Opus 4.5 | Claude Opus | Pre-planning consultant (goddess of wisdom) |
|
|
517
|
+
| **Olympus-Junior** | Configurable | Claude Sonnet | Focused task executor |
|
|
518
|
+
| **Prometheus** | Planning System | Claude Opus | Strategic planner (fire-bringer) |
|
|
519
|
+
|
|
520
|
+
**Why Claude-only?** The Claude Agent SDK is designed for Claude models. Using Claude throughout provides:
|
|
521
|
+
- Consistent behavior and capabilities
|
|
522
|
+
- Simpler authentication (single API key)
|
|
523
|
+
- Native integration with Claude Code's tools
|
|
524
|
+
|
|
525
|
+
### Tools Comparison
|
|
526
|
+
|
|
527
|
+
#### Available Tools (via Claude Code)
|
|
528
|
+
|
|
529
|
+
| Tool | Status | Description |
|
|
530
|
+
|------|--------|-------------|
|
|
531
|
+
| **Read** | ✅ Available | Read files |
|
|
532
|
+
| **Write** | ✅ Available | Create files |
|
|
533
|
+
| **Edit** | ✅ Available | Modify files |
|
|
534
|
+
| **Bash** | ✅ Available | Run shell commands |
|
|
535
|
+
| **Glob** | ✅ Available | Find files by pattern |
|
|
536
|
+
| **Grep** | ✅ Available | Search file contents |
|
|
537
|
+
| **WebSearch** | ✅ Available | Search the web |
|
|
538
|
+
| **WebFetch** | ✅ Available | Fetch web pages |
|
|
539
|
+
| **Task** | ✅ Available | Spawn subagents |
|
|
540
|
+
| **TodoWrite** | ✅ Available | Track tasks |
|
|
541
|
+
|
|
542
|
+
#### LSP Tools (Real Implementation)
|
|
543
|
+
|
|
544
|
+
| Tool | Status | Description |
|
|
545
|
+
|------|--------|-------------|
|
|
546
|
+
| **lsp_hover** | ✅ Implemented | Get type info and documentation at position |
|
|
547
|
+
| **lsp_goto_definition** | ✅ Implemented | Jump to symbol definition |
|
|
548
|
+
| **lsp_find_references** | ✅ Implemented | Find all usages of a symbol |
|
|
549
|
+
| **lsp_document_symbols** | ✅ Implemented | Get file outline (functions, classes, etc.) |
|
|
550
|
+
| **lsp_workspace_symbols** | ✅ Implemented | Search symbols across workspace |
|
|
551
|
+
| **lsp_diagnostics** | ✅ Implemented | Get errors, warnings, hints |
|
|
552
|
+
| **lsp_prepare_rename** | ✅ Implemented | Check if rename is valid |
|
|
553
|
+
| **lsp_rename** | ✅ Implemented | Rename symbol across project |
|
|
554
|
+
| **lsp_code_actions** | ✅ Implemented | Get available refactorings |
|
|
555
|
+
| **lsp_code_action_resolve** | ✅ Implemented | Get details of a code action |
|
|
556
|
+
| **lsp_servers** | ✅ Implemented | List available language servers |
|
|
557
|
+
|
|
558
|
+
> **Note:** LSP tools require language servers to be installed (typescript-language-server, pylsp, rust-analyzer, gopls, etc.). Use `lsp_servers` to check installation status.
|
|
559
|
+
|
|
560
|
+
#### AST Tools (ast-grep Integration)
|
|
561
|
+
|
|
562
|
+
| Tool | Status | Description |
|
|
563
|
+
|------|--------|-------------|
|
|
564
|
+
| **ast_grep_search** | ✅ Implemented | Pattern-based code search using AST matching |
|
|
565
|
+
| **ast_grep_replace** | ✅ Implemented | Pattern-based code transformation |
|
|
566
|
+
|
|
567
|
+
> **Note:** AST tools use [@ast-grep/napi](https://ast-grep.github.io/) for structural code matching. Supports meta-variables like `$VAR` (single node) and `$$$` (multiple nodes).
|
|
568
|
+
|
|
569
|
+
### Features Comparison
|
|
570
|
+
|
|
571
|
+
#### Fully Implemented ✅
|
|
572
|
+
|
|
573
|
+
| Feature | Description |
|
|
574
|
+
|---------|-------------|
|
|
575
|
+
| **12 Specialized Agents** | Oracle, Librarian, Explore, Frontend Engineer, Document Writer, Multimodal Looker, QA Tester, Momus, Metis, Orchestrator-Olympus, Olympus-Junior, Prometheus |
|
|
576
|
+
| **18 Lifecycle Hooks** | rules-injector, olympus-orchestrator, auto-slash-command, keyword-detector, the-ascent, todo-continuation, context-window-limit-recovery, preemptive-compaction, session-recovery, directory-readme-injector, comment-checker, thinking-block-validator, empty-message-sanitizer, edit-error-recovery, non-interactive-env, agent-usage-reminder, background-notification, think-mode |
|
|
577
|
+
| **6 Builtin Skills** | olympus, orchestrator, ultrawork, the-ascent, frontend-ui-ux, git-master |
|
|
578
|
+
| **Magic Keywords** | `ultrawork`, `search`, `analyze`, `ultrathink` trigger enhanced modes |
|
|
579
|
+
| **Slash Commands** | `/olympus`, `/olympus-default`, `/ultrawork`, `/deepsearch`, `/analyze`, `/plan`, `/review`, `/prometheus`, `/orchestrator`, `/the-ascent`, `/cancel-ascent`, `/update` |
|
|
580
|
+
| **Auto-Update System** | Silent background updates with manual `/update` command |
|
|
581
|
+
| **Configuration System** | JSONC config with multi-source merging |
|
|
582
|
+
| **Context Injection** | Auto-loads CLAUDE.md and AGENTS.md files |
|
|
583
|
+
| **Continuation Enforcement** | System prompt and hooks enforce task completion |
|
|
584
|
+
| **Session Recovery** | Automatic state recovery on crashes |
|
|
585
|
+
| **Background Task Manager** | Async agent execution with concurrency limits |
|
|
586
|
+
| **Context Window Recovery** | Multi-stage recovery when hitting token limits |
|
|
587
|
+
| **MCP Server Configs** | Exa, Context7, grep.app server definitions |
|
|
588
|
+
| **LSP Tools** | Real LSP server integration with 11 tools |
|
|
589
|
+
| **AST Tools** | ast-grep integration for structural code search/replace |
|
|
590
|
+
|
|
591
|
+
#### Not Implemented ❌
|
|
592
|
+
|
|
593
|
+
| Feature | Original Capability | Why Not Ported |
|
|
594
|
+
|---------|---------------------|----------------|
|
|
595
|
+
| **Multi-Model Routing** | Route to GPT/Gemini/Grok based on task | Claude-only by design |
|
|
596
|
+
| **Per-Model Concurrency** | Fine-grained concurrency per provider | Single provider simplifies this |
|
|
597
|
+
| **Interactive Bash + Tmux** | Advanced terminal with Tmux integration | Standard Bash tool sufficient |
|
|
598
|
+
|
|
599
|
+
### Architecture Differences
|
|
600
|
+
|
|
601
|
+
```
|
|
602
|
+
oh-my-opencode (Original) oh-my-claude-olympus (Port)
|
|
603
|
+
───────────────────────── ────────────────────────────
|
|
604
|
+
┌─────────────────────┐ ┌─────────────────────┐
|
|
605
|
+
│ OpenCode Plugin │ │ Claude Code │
|
|
606
|
+
│ (Bun runtime) │ │ (Native CLI) │
|
|
607
|
+
└─────────┬───────────┘ └─────────┬───────────┘
|
|
608
|
+
│ │
|
|
609
|
+
┌─────────▼───────────┐ ┌─────────▼───────────┐
|
|
610
|
+
│ Multi-Provider │ │ Claude Agent SDK │
|
|
611
|
+
│ Orchestration │ │ (Claude only) │
|
|
612
|
+
│ ┌───┐ ┌───┐ ┌───┐ │ └─────────┬───────────┘
|
|
613
|
+
│ │GPT│ │Gem│ │Grok│ │ │
|
|
614
|
+
│ └───┘ └───┘ └───┘ │ ┌─────────▼───────────┐
|
|
615
|
+
└─────────┬───────────┘ │ ~/.claude/agents/ │
|
|
616
|
+
│ │ (Markdown configs) │
|
|
617
|
+
┌─────────▼───────────┐ └─────────────────────┘
|
|
618
|
+
│ Custom Tool Layer │
|
|
619
|
+
│ (LSP, AST, etc.) │
|
|
620
|
+
└─────────────────────┘
|
|
621
|
+
```
|
|
622
|
+
|
|
623
|
+
**Key Architectural Changes:**
|
|
624
|
+
|
|
625
|
+
1. **Plugin → Native Integration**: Original was an OpenCode plugin; this uses Claude Code's native agent/command system
|
|
626
|
+
2. **Multi-Provider → Single Provider**: Simplified to Claude-only for consistency
|
|
627
|
+
3. **Custom Runtime → Claude Code Runtime**: Leverages Claude Code's built-in capabilities
|
|
628
|
+
4. **Programmatic Config → Markdown Files**: Agents defined as `.md` files in `~/.claude/agents/`
|
|
629
|
+
|
|
630
|
+
### What You Gain
|
|
631
|
+
|
|
632
|
+
- **Simpler Setup**: One curl command vs. multi-step plugin installation
|
|
633
|
+
- **Native Integration**: Works directly with Claude Code, no plugin layer
|
|
634
|
+
- **Consistent Behavior**: All agents use Claude, no cross-model quirks
|
|
635
|
+
- **Easier Customization**: Edit markdown files to customize agents
|
|
636
|
+
|
|
637
|
+
### What You Lose
|
|
638
|
+
|
|
639
|
+
- **Model Diversity**: Can't use GPT-5.2 for Oracle's deep reasoning
|
|
640
|
+
- **Advanced Hooks**: Fewer lifecycle interception points (22 hooks → system prompt enforcement)
|
|
641
|
+
|
|
642
|
+
### Migration Tips
|
|
643
|
+
|
|
644
|
+
If you're coming from oh-my-opencode:
|
|
645
|
+
|
|
646
|
+
1. **Oracle Tasks**: Claude Opus handles architecture/debugging well, but differently than GPT-5.2
|
|
647
|
+
2. **LSP Workflows**: All LSP tools are available! Use `lsp_servers` to check which servers are installed
|
|
648
|
+
3. **AST Searches**: Use `ast_grep_search` with pattern syntax (e.g., `function $NAME($$$)`)
|
|
649
|
+
4. **Background Tasks**: Claude Code's `Task` tool with `run_in_background` works similarly
|
|
650
|
+
5. **Planning**: Use `/plan` command to start a planning session with Prometheus
|
|
651
|
+
|
|
652
|
+
</details>
|
|
653
|
+
|
|
654
|
+
---
|
|
655
|
+
|
|
656
|
+
## Requirements
|
|
657
|
+
|
|
658
|
+
- [Claude Code](https://docs.anthropic.com/claude-code) installed
|
|
659
|
+
- Anthropic API key (`ANTHROPIC_API_KEY` environment variable)
|
|
660
|
+
- **Windows**: Node.js 20+ (for npm installation)
|
|
661
|
+
- **macOS/Linux**: Bash shell (default) or Node.js 20+ (optional)
|
|
662
|
+
|
|
663
|
+
### Platform Support
|
|
664
|
+
|
|
665
|
+
| Platform | Install Method | Hook Type |
|
|
666
|
+
|----------|---------------|-----------|
|
|
667
|
+
| **Windows** | `npm install -g` | Node.js (.mjs) |
|
|
668
|
+
| **macOS** | curl or npm | Bash (.sh) |
|
|
669
|
+
| **Linux** | curl or npm | Bash (.sh) |
|
|
670
|
+
|
|
671
|
+
> **Note**: Bash hooks are fully portable across macOS and Linux (no GNU-specific dependencies).
|
|
672
|
+
|
|
673
|
+
> **Advanced**: Set `OLYMPUS_USE_NODE_HOOKS=1` to use Node.js hooks on macOS/Linux.
|
|
674
|
+
|
|
675
|
+
## License
|
|
676
|
+
|
|
677
|
+
MIT - see [LICENSE](LICENSE)
|
|
678
|
+
|
|
679
|
+
## Credits
|
|
680
|
+
|
|
681
|
+
Inspired by [oh-my-opencode](https://github.com/code-yeongyu/oh-my-opencode) by code-yeongyu.
|
|
682
|
+
|
|
683
|
+
---
|
|
684
|
+
|
|
685
|
+
<div align="center">
|
|
686
|
+
|
|
687
|
+
*One must imagine a multi-agent system happy.*
|
|
688
|
+
|
|
689
|
+
**The boulder never stops.**
|
|
690
|
+
|
|
691
|
+
</div>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"example.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/example.test.ts"],"names":[],"mappings":""}
|