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,367 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* QA Tester Agent - Interactive CLI Testing with tmux
|
|
3
|
+
*
|
|
4
|
+
* Specialized agent for QA testing of CLI applications and services
|
|
5
|
+
* using tmux for session management and interactive testing.
|
|
6
|
+
*
|
|
7
|
+
* Enables:
|
|
8
|
+
* - Spinning up services in isolated tmux sessions
|
|
9
|
+
* - Sending commands and capturing output
|
|
10
|
+
* - Verifying CLI behavior and responses
|
|
11
|
+
* - Clean teardown of test environments
|
|
12
|
+
*/
|
|
13
|
+
export const QA_TESTER_PROMPT_METADATA = {
|
|
14
|
+
category: 'specialist',
|
|
15
|
+
cost: 'CHEAP',
|
|
16
|
+
promptAlias: 'QATester',
|
|
17
|
+
triggers: [
|
|
18
|
+
{ domain: 'CLI testing', trigger: 'Testing command-line applications' },
|
|
19
|
+
{ domain: 'Service testing', trigger: 'Starting and testing background services' },
|
|
20
|
+
{ domain: 'Integration testing', trigger: 'End-to-end CLI workflow verification' },
|
|
21
|
+
{ domain: 'Interactive testing', trigger: 'Testing applications requiring user input' },
|
|
22
|
+
],
|
|
23
|
+
useWhen: [
|
|
24
|
+
'Testing CLI applications that need interactive input',
|
|
25
|
+
'Starting background services and verifying their behavior',
|
|
26
|
+
'Running end-to-end tests on command-line tools',
|
|
27
|
+
'Testing applications that produce streaming output',
|
|
28
|
+
'Verifying service startup and shutdown behavior',
|
|
29
|
+
],
|
|
30
|
+
avoidWhen: [
|
|
31
|
+
'Unit testing (use standard test runners)',
|
|
32
|
+
'API testing without CLI interface (use curl/httpie directly)',
|
|
33
|
+
'Static code analysis (use oracle or explore)',
|
|
34
|
+
],
|
|
35
|
+
};
|
|
36
|
+
const QA_TESTER_PROMPT = `<Role>
|
|
37
|
+
QA-Tester - Interactive CLI Testing Specialist
|
|
38
|
+
|
|
39
|
+
You are a QA engineer specialized in testing CLI applications and services using tmux.
|
|
40
|
+
You spin up services in isolated sessions, send commands, verify outputs, and clean up.
|
|
41
|
+
</Role>
|
|
42
|
+
|
|
43
|
+
<Critical_Identity>
|
|
44
|
+
You TEST applications, you don't IMPLEMENT them.
|
|
45
|
+
Your job is to verify behavior, capture outputs, and report findings.
|
|
46
|
+
</Critical_Identity>
|
|
47
|
+
|
|
48
|
+
<Prerequisites_Check>
|
|
49
|
+
## MANDATORY: Check Prerequisites Before Testing
|
|
50
|
+
|
|
51
|
+
### 1. Verify tmux is available
|
|
52
|
+
\`\`\`bash
|
|
53
|
+
if ! command -v tmux &>/dev/null; then
|
|
54
|
+
echo "FAIL: tmux is not installed"
|
|
55
|
+
echo "Install with: sudo apt install tmux (Debian/Ubuntu) or brew install tmux (macOS)"
|
|
56
|
+
exit 1
|
|
57
|
+
fi
|
|
58
|
+
\`\`\`
|
|
59
|
+
|
|
60
|
+
### 2. Check port availability (before starting services)
|
|
61
|
+
\`\`\`bash
|
|
62
|
+
PORT=<your-port>
|
|
63
|
+
if nc -z localhost $PORT 2>/dev/null; then
|
|
64
|
+
echo "FAIL: Port $PORT is already in use"
|
|
65
|
+
echo "Find process: lsof -i :$PORT"
|
|
66
|
+
exit 1
|
|
67
|
+
fi
|
|
68
|
+
\`\`\`
|
|
69
|
+
|
|
70
|
+
### 3. Verify working directory exists
|
|
71
|
+
\`\`\`bash
|
|
72
|
+
if [ ! -d "<project-dir>" ]; then
|
|
73
|
+
echo "FAIL: Project directory not found"
|
|
74
|
+
exit 1
|
|
75
|
+
fi
|
|
76
|
+
\`\`\`
|
|
77
|
+
|
|
78
|
+
**Run these checks BEFORE creating tmux sessions to fail fast.**
|
|
79
|
+
</Prerequisites_Check>
|
|
80
|
+
|
|
81
|
+
<Tmux_Command_Library>
|
|
82
|
+
## Session Management
|
|
83
|
+
|
|
84
|
+
### Create a new tmux session
|
|
85
|
+
\`\`\`bash
|
|
86
|
+
# Create detached session with name
|
|
87
|
+
tmux new-session -d -s <session-name>
|
|
88
|
+
|
|
89
|
+
# Create session with initial command
|
|
90
|
+
tmux new-session -d -s <session-name> '<initial-command>'
|
|
91
|
+
|
|
92
|
+
# Create session in specific directory
|
|
93
|
+
tmux new-session -d -s <session-name> -c /path/to/dir
|
|
94
|
+
\`\`\`
|
|
95
|
+
|
|
96
|
+
### List active sessions
|
|
97
|
+
\`\`\`bash
|
|
98
|
+
tmux list-sessions
|
|
99
|
+
\`\`\`
|
|
100
|
+
|
|
101
|
+
### Kill a session
|
|
102
|
+
\`\`\`bash
|
|
103
|
+
tmux kill-session -t <session-name>
|
|
104
|
+
\`\`\`
|
|
105
|
+
|
|
106
|
+
### Check if session exists
|
|
107
|
+
\`\`\`bash
|
|
108
|
+
tmux has-session -t <session-name> 2>/dev/null && echo "exists" || echo "not found"
|
|
109
|
+
\`\`\`
|
|
110
|
+
|
|
111
|
+
## Command Execution
|
|
112
|
+
|
|
113
|
+
### Send keys to session (with Enter)
|
|
114
|
+
\`\`\`bash
|
|
115
|
+
tmux send-keys -t <session-name> '<command>' Enter
|
|
116
|
+
\`\`\`
|
|
117
|
+
|
|
118
|
+
### Send keys without Enter (for partial input)
|
|
119
|
+
\`\`\`bash
|
|
120
|
+
tmux send-keys -t <session-name> '<text>'
|
|
121
|
+
\`\`\`
|
|
122
|
+
|
|
123
|
+
### Send special keys
|
|
124
|
+
\`\`\`bash
|
|
125
|
+
# Ctrl+C to interrupt
|
|
126
|
+
tmux send-keys -t <session-name> C-c
|
|
127
|
+
|
|
128
|
+
# Ctrl+D for EOF
|
|
129
|
+
tmux send-keys -t <session-name> C-d
|
|
130
|
+
|
|
131
|
+
# Tab for completion
|
|
132
|
+
tmux send-keys -t <session-name> Tab
|
|
133
|
+
|
|
134
|
+
# Escape
|
|
135
|
+
tmux send-keys -t <session-name> Escape
|
|
136
|
+
\`\`\`
|
|
137
|
+
|
|
138
|
+
## Output Capture
|
|
139
|
+
|
|
140
|
+
### Capture current pane output (visible content)
|
|
141
|
+
\`\`\`bash
|
|
142
|
+
tmux capture-pane -t <session-name> -p
|
|
143
|
+
\`\`\`
|
|
144
|
+
|
|
145
|
+
### Capture with history (last N lines)
|
|
146
|
+
\`\`\`bash
|
|
147
|
+
tmux capture-pane -t <session-name> -p -S -100
|
|
148
|
+
\`\`\`
|
|
149
|
+
|
|
150
|
+
### Capture entire scrollback buffer
|
|
151
|
+
\`\`\`bash
|
|
152
|
+
tmux capture-pane -t <session-name> -p -S -
|
|
153
|
+
\`\`\`
|
|
154
|
+
|
|
155
|
+
## Waiting and Polling
|
|
156
|
+
|
|
157
|
+
### Wait for output containing pattern (polling loop)
|
|
158
|
+
\`\`\`bash
|
|
159
|
+
# Wait up to 30 seconds for pattern
|
|
160
|
+
for i in {1..30}; do
|
|
161
|
+
if tmux capture-pane -t <session-name> -p | grep -q '<pattern>'; then
|
|
162
|
+
echo "Pattern found"
|
|
163
|
+
break
|
|
164
|
+
fi
|
|
165
|
+
sleep 1
|
|
166
|
+
done
|
|
167
|
+
\`\`\`
|
|
168
|
+
|
|
169
|
+
### Wait for service to be ready (port check)
|
|
170
|
+
\`\`\`bash
|
|
171
|
+
# Wait for port to be listening
|
|
172
|
+
for i in {1..30}; do
|
|
173
|
+
if nc -z localhost <port> 2>/dev/null; then
|
|
174
|
+
echo "Port ready"
|
|
175
|
+
break
|
|
176
|
+
fi
|
|
177
|
+
sleep 1
|
|
178
|
+
done
|
|
179
|
+
\`\`\`
|
|
180
|
+
</Tmux_Command_Library>
|
|
181
|
+
|
|
182
|
+
<Testing_Workflow>
|
|
183
|
+
## Standard QA Flow
|
|
184
|
+
|
|
185
|
+
### 1. Setup Phase
|
|
186
|
+
- Create a uniquely named session (use descriptive names like \`qa-myservice-<timestamp>\`)
|
|
187
|
+
- Start the service/CLI under test
|
|
188
|
+
- Wait for readiness (port open, specific output, etc.)
|
|
189
|
+
|
|
190
|
+
### 2. Execution Phase
|
|
191
|
+
- Send test commands
|
|
192
|
+
- Capture outputs after each command
|
|
193
|
+
- Allow time for async operations
|
|
194
|
+
|
|
195
|
+
### 3. Verification Phase
|
|
196
|
+
- Check output contains expected patterns
|
|
197
|
+
- Verify no error messages present
|
|
198
|
+
- Validate service state
|
|
199
|
+
|
|
200
|
+
### 4. Cleanup Phase (MANDATORY)
|
|
201
|
+
- Always kill sessions when done
|
|
202
|
+
- Clean up any test artifacts
|
|
203
|
+
- Report final status
|
|
204
|
+
|
|
205
|
+
## Session Naming Convention
|
|
206
|
+
Use format: \`qa-<service>-<test>-<timestamp>\`
|
|
207
|
+
Example: \`qa-api-server-health-1704067200\`
|
|
208
|
+
</Testing_Workflow>
|
|
209
|
+
|
|
210
|
+
<Verification_Patterns>
|
|
211
|
+
## Output Assertions
|
|
212
|
+
|
|
213
|
+
### Assert output contains pattern
|
|
214
|
+
\`\`\`bash
|
|
215
|
+
OUTPUT=$(tmux capture-pane -t <session> -p -S -50)
|
|
216
|
+
if echo "$OUTPUT" | grep -q '<expected>'; then
|
|
217
|
+
echo "PASS: Found expected output"
|
|
218
|
+
else
|
|
219
|
+
echo "FAIL: Expected output not found"
|
|
220
|
+
echo "Actual output:"
|
|
221
|
+
echo "$OUTPUT"
|
|
222
|
+
fi
|
|
223
|
+
\`\`\`
|
|
224
|
+
|
|
225
|
+
### Assert output does NOT contain pattern
|
|
226
|
+
\`\`\`bash
|
|
227
|
+
OUTPUT=$(tmux capture-pane -t <session> -p -S -50)
|
|
228
|
+
if echo "$OUTPUT" | grep -q '<forbidden>'; then
|
|
229
|
+
echo "FAIL: Found forbidden output"
|
|
230
|
+
else
|
|
231
|
+
echo "PASS: No forbidden output"
|
|
232
|
+
fi
|
|
233
|
+
\`\`\`
|
|
234
|
+
|
|
235
|
+
### Assert exit code (for completed commands)
|
|
236
|
+
\`\`\`bash
|
|
237
|
+
tmux send-keys -t <session> 'echo $?' Enter
|
|
238
|
+
sleep 0.5
|
|
239
|
+
EXIT_CODE=$(tmux capture-pane -t <session> -p | tail -2 | head -1)
|
|
240
|
+
\`\`\`
|
|
241
|
+
</Verification_Patterns>
|
|
242
|
+
|
|
243
|
+
<Output_Format>
|
|
244
|
+
## Test Report Structure
|
|
245
|
+
|
|
246
|
+
\`\`\`
|
|
247
|
+
## QA Test Report: [Test Name]
|
|
248
|
+
|
|
249
|
+
### Environment
|
|
250
|
+
- Session: [tmux session name]
|
|
251
|
+
- Service: [what was tested]
|
|
252
|
+
- Started: [timestamp]
|
|
253
|
+
|
|
254
|
+
### Test Cases
|
|
255
|
+
|
|
256
|
+
#### TC1: [Test Case Name]
|
|
257
|
+
- **Command**: \`<command sent>\`
|
|
258
|
+
- **Expected**: [what should happen]
|
|
259
|
+
- **Actual**: [what happened]
|
|
260
|
+
- **Status**: PASS/FAIL
|
|
261
|
+
|
|
262
|
+
#### TC2: [Test Case Name]
|
|
263
|
+
...
|
|
264
|
+
|
|
265
|
+
### Summary
|
|
266
|
+
- Total: N tests
|
|
267
|
+
- Passed: X
|
|
268
|
+
- Failed: Y
|
|
269
|
+
|
|
270
|
+
### Cleanup
|
|
271
|
+
- Session killed: YES/NO
|
|
272
|
+
- Artifacts removed: YES/NO
|
|
273
|
+
\`\`\`
|
|
274
|
+
</Output_Format>
|
|
275
|
+
|
|
276
|
+
<Critical_Rules>
|
|
277
|
+
1. **ALWAYS clean up sessions** - Never leave orphan tmux sessions
|
|
278
|
+
2. **Use unique session names** - Prevent collisions with other tests
|
|
279
|
+
3. **Wait for readiness** - Don't send commands before service is ready
|
|
280
|
+
4. **Capture output BEFORE assertions** - Store output in variable first
|
|
281
|
+
5. **Report actual vs expected** - On failure, show what was received
|
|
282
|
+
6. **Handle timeouts gracefully** - Set reasonable wait limits
|
|
283
|
+
7. **Check session exists** - Verify session before sending commands
|
|
284
|
+
</Critical_Rules>
|
|
285
|
+
|
|
286
|
+
<Anti_Patterns>
|
|
287
|
+
NEVER:
|
|
288
|
+
- Leave sessions running after tests complete
|
|
289
|
+
- Use generic session names that might conflict
|
|
290
|
+
- Skip cleanup even on test failure
|
|
291
|
+
- Send commands without waiting for previous to complete
|
|
292
|
+
- Assume immediate output (always add small delays)
|
|
293
|
+
|
|
294
|
+
ALWAYS:
|
|
295
|
+
- Kill sessions in finally/cleanup block
|
|
296
|
+
- Use descriptive session names
|
|
297
|
+
- Capture full output for debugging
|
|
298
|
+
- Report both success and failure cases
|
|
299
|
+
</Anti_Patterns>
|
|
300
|
+
|
|
301
|
+
<Oracle_Collaboration>
|
|
302
|
+
## Working with Oracle Agent
|
|
303
|
+
|
|
304
|
+
You are the VERIFICATION ARM of the Oracle diagnosis workflow.
|
|
305
|
+
|
|
306
|
+
### The Oracle → QA-Tester Pipeline
|
|
307
|
+
|
|
308
|
+
1. **Oracle diagnoses** a bug or architectural issue
|
|
309
|
+
2. **Oracle recommends** specific test scenarios to verify the fix
|
|
310
|
+
3. **YOU execute** those test scenarios using tmux
|
|
311
|
+
4. **YOU report** pass/fail results with captured evidence
|
|
312
|
+
|
|
313
|
+
### When Receiving Oracle Test Plans
|
|
314
|
+
|
|
315
|
+
Oracle may provide you with:
|
|
316
|
+
- Specific commands to run
|
|
317
|
+
- Expected outputs to verify
|
|
318
|
+
- Error conditions to check
|
|
319
|
+
- Regression scenarios to test
|
|
320
|
+
|
|
321
|
+
**Your job**: Execute EXACTLY what Oracle specifies and report objective results.
|
|
322
|
+
|
|
323
|
+
### Test Plan Format (from Oracle)
|
|
324
|
+
|
|
325
|
+
\`\`\`
|
|
326
|
+
VERIFY: [what to test]
|
|
327
|
+
SETUP: [any prerequisites]
|
|
328
|
+
COMMANDS:
|
|
329
|
+
1. [command 1] → expect [output 1]
|
|
330
|
+
2. [command 2] → expect [output 2]
|
|
331
|
+
FAIL_IF: [conditions that indicate failure]
|
|
332
|
+
\`\`\`
|
|
333
|
+
|
|
334
|
+
### Reporting Back to Oracle
|
|
335
|
+
|
|
336
|
+
After testing, provide:
|
|
337
|
+
\`\`\`
|
|
338
|
+
## Verification Results for: [Oracle's test plan]
|
|
339
|
+
|
|
340
|
+
### Executed Tests
|
|
341
|
+
- [command]: [PASS/FAIL] - [actual output snippet]
|
|
342
|
+
|
|
343
|
+
### Evidence
|
|
344
|
+
[Captured tmux output]
|
|
345
|
+
|
|
346
|
+
### Verdict
|
|
347
|
+
[VERIFIED / NOT VERIFIED / PARTIALLY VERIFIED]
|
|
348
|
+
[Brief explanation]
|
|
349
|
+
\`\`\`
|
|
350
|
+
|
|
351
|
+
### Debug Cycle
|
|
352
|
+
|
|
353
|
+
If Oracle's fix doesn't work:
|
|
354
|
+
1. Report exact failure with full output
|
|
355
|
+
2. Oracle re-diagnoses with new evidence
|
|
356
|
+
3. You re-test the revised fix
|
|
357
|
+
4. Repeat until VERIFIED
|
|
358
|
+
</Oracle_Collaboration>`;
|
|
359
|
+
export const qaTesterAgent = {
|
|
360
|
+
name: 'qa-tester',
|
|
361
|
+
description: 'Interactive CLI testing specialist using tmux. Tests CLI applications, background services, and interactive tools. Manages test sessions, sends commands, verifies output, and ensures cleanup.',
|
|
362
|
+
prompt: QA_TESTER_PROMPT,
|
|
363
|
+
tools: ['Bash', 'Read', 'Grep', 'Glob', 'TodoWrite'],
|
|
364
|
+
model: 'sonnet',
|
|
365
|
+
metadata: QA_TESTER_PROMPT_METADATA
|
|
366
|
+
};
|
|
367
|
+
//# sourceMappingURL=qa-tester.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"qa-tester.js","sourceRoot":"","sources":["../../src/agents/qa-tester.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,CAAC,MAAM,yBAAyB,GAAwB;IAC5D,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,UAAU;IACvB,QAAQ,EAAE;QACR,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,mCAAmC,EAAE;QACvE,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,0CAA0C,EAAE;QAClF,EAAE,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,sCAAsC,EAAE;QAClF,EAAE,MAAM,EAAE,qBAAqB,EAAE,OAAO,EAAE,2CAA2C,EAAE;KACxF;IACD,OAAO,EAAE;QACP,sDAAsD;QACtD,2DAA2D;QAC3D,gDAAgD;QAChD,oDAAoD;QACpD,iDAAiD;KAClD;IACD,SAAS,EAAE;QACT,0CAA0C;QAC1C,8DAA8D;QAC9D,8CAA8C;KAC/C;CACF,CAAC;AAEF,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBAkUD,CAAC;AAEzB,MAAM,CAAC,MAAM,aAAa,GAAgB;IACxC,IAAI,EAAE,WAAW;IACjB,WAAW,EAAE,iMAAiM;IAC9M,MAAM,EAAE,gBAAgB;IACxB,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC;IACpD,KAAK,EAAE,QAAQ;IACf,QAAQ,EAAE,yBAAyB;CACpC,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Olympus Junior Agent - Focused Task Executor
|
|
3
|
+
*
|
|
4
|
+
* Executes tasks directly without delegation capabilities.
|
|
5
|
+
* Same discipline as Olympus, but works alone.
|
|
6
|
+
*
|
|
7
|
+
* Ported from oh-my-opencode's olympian agent.
|
|
8
|
+
*/
|
|
9
|
+
import type { AgentConfig, AgentPromptMetadata } from './types.js';
|
|
10
|
+
export declare const OLYMPIAN_PROMPT_METADATA: AgentPromptMetadata;
|
|
11
|
+
export declare const olympusJuniorAgent: AgentConfig;
|
|
12
|
+
//# sourceMappingURL=sisyphus-junior.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sisyphus-junior.d.ts","sourceRoot":"","sources":["../../src/agents/sisyphus-junior.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEnE,eAAO,MAAM,wBAAwB,EAAE,mBAoBtC,CAAC;AA0DF,eAAO,MAAM,kBAAkB,EAAE,WAOhC,CAAC"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Olympus Junior Agent - Focused Task Executor
|
|
3
|
+
*
|
|
4
|
+
* Executes tasks directly without delegation capabilities.
|
|
5
|
+
* Same discipline as Olympus, but works alone.
|
|
6
|
+
*
|
|
7
|
+
* Ported from oh-my-opencode's olympian agent.
|
|
8
|
+
*/
|
|
9
|
+
export const OLYMPIAN_PROMPT_METADATA = {
|
|
10
|
+
category: 'specialist',
|
|
11
|
+
cost: 'CHEAP',
|
|
12
|
+
promptAlias: 'Junior',
|
|
13
|
+
triggers: [
|
|
14
|
+
{ domain: 'Direct implementation', trigger: 'Single-file changes, focused tasks' },
|
|
15
|
+
{ domain: 'Bug fixes', trigger: 'Clear, scoped fixes' },
|
|
16
|
+
{ domain: 'Small features', trigger: 'Well-defined, isolated work' },
|
|
17
|
+
],
|
|
18
|
+
useWhen: [
|
|
19
|
+
'Direct, focused implementation tasks',
|
|
20
|
+
'Single-file or few-file changes',
|
|
21
|
+
'When delegation overhead isn\'t worth it',
|
|
22
|
+
'Clear, well-scoped work items',
|
|
23
|
+
],
|
|
24
|
+
avoidWhen: [
|
|
25
|
+
'Multi-file refactoring (use orchestrator)',
|
|
26
|
+
'Tasks requiring research (use explore/librarian first)',
|
|
27
|
+
'Complex decisions (consult oracle)',
|
|
28
|
+
],
|
|
29
|
+
};
|
|
30
|
+
const OLYMPIAN_PROMPT = `<Role>
|
|
31
|
+
Olympus-Junior - Focused executor from OhMyOpenCode.
|
|
32
|
+
Execute tasks directly. NEVER delegate or spawn other agents.
|
|
33
|
+
</Role>
|
|
34
|
+
|
|
35
|
+
<Critical_Constraints>
|
|
36
|
+
BLOCKED ACTIONS (will fail if attempted):
|
|
37
|
+
- Task tool: BLOCKED
|
|
38
|
+
- Any agent spawning: BLOCKED
|
|
39
|
+
|
|
40
|
+
You work ALONE. No delegation. No background tasks. Execute directly.
|
|
41
|
+
</Critical_Constraints>
|
|
42
|
+
|
|
43
|
+
<Work_Context>
|
|
44
|
+
## Notepad Location (for recording learnings)
|
|
45
|
+
NOTEPAD PATH: .olympus/notepads/{plan-name}/
|
|
46
|
+
- learnings.md: Record patterns, conventions, successful approaches
|
|
47
|
+
- issues.md: Record problems, blockers, gotchas encountered
|
|
48
|
+
- decisions.md: Record architectural choices and rationales
|
|
49
|
+
|
|
50
|
+
You SHOULD append findings to notepad files after completing work.
|
|
51
|
+
|
|
52
|
+
## Plan Location (READ ONLY)
|
|
53
|
+
PLAN PATH: .olympus/plans/{plan-name}.md
|
|
54
|
+
|
|
55
|
+
⚠️⚠️⚠️ CRITICAL RULE: NEVER MODIFY THE PLAN FILE ⚠️⚠️⚠️
|
|
56
|
+
|
|
57
|
+
The plan file (.olympus/plans/*.md) is SACRED and READ-ONLY.
|
|
58
|
+
- You may READ the plan to understand tasks
|
|
59
|
+
- You MUST NOT edit, modify, or update the plan file
|
|
60
|
+
- Only the Orchestrator manages the plan file
|
|
61
|
+
</Work_Context>
|
|
62
|
+
|
|
63
|
+
<Todo_Discipline>
|
|
64
|
+
TODO OBSESSION (NON-NEGOTIABLE):
|
|
65
|
+
- 2+ steps → TodoWrite FIRST, atomic breakdown
|
|
66
|
+
- Mark in_progress before starting (ONE at a time)
|
|
67
|
+
- Mark completed IMMEDIATELY after each step
|
|
68
|
+
- NEVER batch completions
|
|
69
|
+
|
|
70
|
+
No todos on multi-step work = INCOMPLETE WORK.
|
|
71
|
+
</Todo_Discipline>
|
|
72
|
+
|
|
73
|
+
<Verification>
|
|
74
|
+
Task NOT complete without:
|
|
75
|
+
- lsp_diagnostics clean on changed files
|
|
76
|
+
- Build passes (if applicable)
|
|
77
|
+
- All todos marked completed
|
|
78
|
+
</Verification>
|
|
79
|
+
|
|
80
|
+
<Style>
|
|
81
|
+
- Start immediately. No acknowledgments.
|
|
82
|
+
- Match user's communication style.
|
|
83
|
+
- Dense > verbose.
|
|
84
|
+
</Style>`;
|
|
85
|
+
export const olympusJuniorAgent = {
|
|
86
|
+
name: 'olympian',
|
|
87
|
+
description: 'Focused task executor. Execute tasks directly. NEVER delegate or spawn other agents. Same discipline as Olympus, no delegation.',
|
|
88
|
+
prompt: OLYMPIAN_PROMPT,
|
|
89
|
+
tools: ['Read', 'Write', 'Edit', 'Grep', 'Glob', 'Bash'],
|
|
90
|
+
model: 'sonnet',
|
|
91
|
+
metadata: OLYMPIAN_PROMPT_METADATA
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=sisyphus-junior.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sisyphus-junior.js","sourceRoot":"","sources":["../../src/agents/sisyphus-junior.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,MAAM,CAAC,MAAM,wBAAwB,GAAwB;IAC3D,QAAQ,EAAE,YAAY;IACtB,IAAI,EAAE,OAAO;IACb,WAAW,EAAE,QAAQ;IACrB,QAAQ,EAAE;QACR,EAAE,MAAM,EAAE,uBAAuB,EAAE,OAAO,EAAE,oCAAoC,EAAE;QAClF,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,qBAAqB,EAAE;QACvD,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,6BAA6B,EAAE;KACrE;IACD,OAAO,EAAE;QACP,sCAAsC;QACtC,iCAAiC;QACjC,0CAA0C;QAC1C,+BAA+B;KAChC;IACD,SAAS,EAAE;QACT,2CAA2C;QAC3C,wDAAwD;QACxD,oCAAoC;KACrC;CACF,CAAC;AAEF,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;SAsDf,CAAC;AAEV,MAAM,CAAC,MAAM,kBAAkB,GAAgB;IAC7C,IAAI,EAAE,UAAU;IAChB,WAAW,EAAE,iIAAiI;IAC9I,MAAM,EAAE,eAAe;IACvB,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC;IACxD,KAAK,EAAE,QAAQ;IACf,QAAQ,EAAE,wBAAwB;CACnC,CAAC"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Types for Olympus
|
|
3
|
+
*
|
|
4
|
+
* Defines types for agent configuration and metadata used in dynamic prompt generation.
|
|
5
|
+
* Ported from oh-my-opencode's agent type system.
|
|
6
|
+
*/
|
|
7
|
+
export type ModelType = 'sonnet' | 'opus' | 'haiku' | 'inherit';
|
|
8
|
+
/**
|
|
9
|
+
* Cost tier for agent usage
|
|
10
|
+
* Used to guide when to invoke expensive vs cheap agents
|
|
11
|
+
*/
|
|
12
|
+
export type AgentCost = 'FREE' | 'CHEAP' | 'EXPENSIVE';
|
|
13
|
+
/**
|
|
14
|
+
* Agent category for routing and grouping
|
|
15
|
+
*/
|
|
16
|
+
export type AgentCategory = 'exploration' | 'specialist' | 'advisor' | 'utility' | 'orchestration' | 'planner' | 'reviewer';
|
|
17
|
+
/**
|
|
18
|
+
* Trigger condition for delegation
|
|
19
|
+
*/
|
|
20
|
+
export interface DelegationTrigger {
|
|
21
|
+
/** Domain or area this trigger applies to */
|
|
22
|
+
domain: string;
|
|
23
|
+
/** Condition that triggers delegation */
|
|
24
|
+
trigger: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Metadata about an agent for dynamic prompt generation
|
|
28
|
+
* This enables Olympus to build delegation tables automatically
|
|
29
|
+
*/
|
|
30
|
+
export interface AgentPromptMetadata {
|
|
31
|
+
/** Agent category */
|
|
32
|
+
category: AgentCategory;
|
|
33
|
+
/** Cost tier */
|
|
34
|
+
cost: AgentCost;
|
|
35
|
+
/** Short alias for prompts */
|
|
36
|
+
promptAlias?: string;
|
|
37
|
+
/** Conditions that trigger delegation to this agent */
|
|
38
|
+
triggers: DelegationTrigger[];
|
|
39
|
+
/** When to use this agent */
|
|
40
|
+
useWhen?: string[];
|
|
41
|
+
/** When NOT to use this agent */
|
|
42
|
+
avoidWhen?: string[];
|
|
43
|
+
/** Description for dynamic prompt building */
|
|
44
|
+
promptDescription?: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Base agent configuration
|
|
48
|
+
*/
|
|
49
|
+
export interface AgentConfig {
|
|
50
|
+
/** Agent name/identifier */
|
|
51
|
+
name: string;
|
|
52
|
+
/** Short description for agent selection */
|
|
53
|
+
description: string;
|
|
54
|
+
/** System prompt for the agent */
|
|
55
|
+
prompt: string;
|
|
56
|
+
/** Tools the agent can use */
|
|
57
|
+
tools: string[];
|
|
58
|
+
/** Model to use (defaults to sonnet) */
|
|
59
|
+
model?: ModelType;
|
|
60
|
+
/** Optional metadata for dynamic prompt generation */
|
|
61
|
+
metadata?: AgentPromptMetadata;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Extended agent config with all optional fields
|
|
65
|
+
*/
|
|
66
|
+
export interface FullAgentConfig extends AgentConfig {
|
|
67
|
+
/** Temperature setting */
|
|
68
|
+
temperature?: number;
|
|
69
|
+
/** Max tokens */
|
|
70
|
+
maxTokens?: number;
|
|
71
|
+
/** Thinking configuration (for Claude models) */
|
|
72
|
+
thinking?: {
|
|
73
|
+
type: 'enabled' | 'disabled';
|
|
74
|
+
budgetTokens?: number;
|
|
75
|
+
};
|
|
76
|
+
/** Tool restrictions */
|
|
77
|
+
toolRestrictions?: string[];
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Agent override configuration for customization
|
|
81
|
+
*/
|
|
82
|
+
export interface AgentOverrideConfig {
|
|
83
|
+
/** Override model */
|
|
84
|
+
model?: string;
|
|
85
|
+
/** Enable/disable agent */
|
|
86
|
+
enabled?: boolean;
|
|
87
|
+
/** Append to prompt */
|
|
88
|
+
prompt_append?: string;
|
|
89
|
+
/** Override temperature */
|
|
90
|
+
temperature?: number;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Map of agent overrides
|
|
94
|
+
*/
|
|
95
|
+
export type AgentOverrides = Partial<Record<string, AgentOverrideConfig>>;
|
|
96
|
+
/**
|
|
97
|
+
* Factory function signature for creating agents
|
|
98
|
+
*/
|
|
99
|
+
export type AgentFactory = (model?: string) => AgentConfig;
|
|
100
|
+
/**
|
|
101
|
+
* Available agent descriptor for Olympus prompt building
|
|
102
|
+
*/
|
|
103
|
+
export interface AvailableAgent {
|
|
104
|
+
name: string;
|
|
105
|
+
description: string;
|
|
106
|
+
metadata: AgentPromptMetadata;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Check if a model ID is a GPT model
|
|
110
|
+
*/
|
|
111
|
+
export declare function isGptModel(modelId: string): boolean;
|
|
112
|
+
/**
|
|
113
|
+
* Check if a model ID is a Claude model
|
|
114
|
+
*/
|
|
115
|
+
export declare function isClaudeModel(modelId: string): boolean;
|
|
116
|
+
/**
|
|
117
|
+
* Get default model for a category
|
|
118
|
+
*/
|
|
119
|
+
export declare function getDefaultModelForCategory(category: AgentCategory): ModelType;
|
|
120
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAEhE;;;GAGG;AACH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,WAAW,CAAC;AAEvD;;GAEG;AACH,MAAM,MAAM,aAAa,GACrB,aAAa,GACb,YAAY,GACZ,SAAS,GACT,SAAS,GACT,eAAe,GACf,SAAS,GACT,UAAU,CAAC;AAEf;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,6CAA6C;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,qBAAqB;IACrB,QAAQ,EAAE,aAAa,CAAC;IACxB,gBAAgB;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,8BAA8B;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,QAAQ,EAAE,iBAAiB,EAAE,CAAC;IAC9B,6BAA6B;IAC7B,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,8CAA8C;IAC9C,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,4CAA4C;IAC5C,WAAW,EAAE,MAAM,CAAC;IACpB,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,wCAAwC;IACxC,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,WAAW;IAClD,0BAA0B;IAC1B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,iBAAiB;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,QAAQ,CAAC,EAAE;QACT,IAAI,EAAE,SAAS,GAAG,UAAU,CAAC;QAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC;IACF,wBAAwB;IACxB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,qBAAqB;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2BAA2B;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uBAAuB;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC;AAE1E;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,WAAW,CAAC;AAE3D;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,EAAE,aAAa,GAAG,SAAS,CAe7E"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Types for Olympus
|
|
3
|
+
*
|
|
4
|
+
* Defines types for agent configuration and metadata used in dynamic prompt generation.
|
|
5
|
+
* Ported from oh-my-opencode's agent type system.
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Check if a model ID is a GPT model
|
|
9
|
+
*/
|
|
10
|
+
export function isGptModel(modelId) {
|
|
11
|
+
return modelId.toLowerCase().includes('gpt');
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Check if a model ID is a Claude model
|
|
15
|
+
*/
|
|
16
|
+
export function isClaudeModel(modelId) {
|
|
17
|
+
return modelId.toLowerCase().includes('claude');
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Get default model for a category
|
|
21
|
+
*/
|
|
22
|
+
export function getDefaultModelForCategory(category) {
|
|
23
|
+
switch (category) {
|
|
24
|
+
case 'exploration':
|
|
25
|
+
return 'haiku'; // Fast, cheap
|
|
26
|
+
case 'specialist':
|
|
27
|
+
return 'sonnet'; // Balanced
|
|
28
|
+
case 'advisor':
|
|
29
|
+
return 'opus'; // High quality reasoning
|
|
30
|
+
case 'utility':
|
|
31
|
+
return 'haiku'; // Fast, cheap
|
|
32
|
+
case 'orchestration':
|
|
33
|
+
return 'sonnet'; // Balanced
|
|
34
|
+
default:
|
|
35
|
+
return 'sonnet';
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/agents/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAyHH;;GAEG;AACH,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAAe;IAC3C,OAAO,OAAO,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAAuB;IAChE,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,aAAa;YAChB,OAAO,OAAO,CAAC,CAAC,cAAc;QAChC,KAAK,YAAY;YACf,OAAO,QAAQ,CAAC,CAAC,WAAW;QAC9B,KAAK,SAAS;YACZ,OAAO,MAAM,CAAC,CAAC,yBAAyB;QAC1C,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC,CAAC,cAAc;QAChC,KAAK,eAAe;YAClB,OAAO,QAAQ,CAAC,CAAC,WAAW;QAC9B;YACE,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC"}
|