oh-my-parallel-agent-opencode 0.1.0 → 0.2.1
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.md +82 -0
- package/README.md +105 -42
- package/bin/oh-my-parallel-agent-opencode.js +80 -0
- package/bin/platform.js +38 -0
- package/bin/platform.test.ts +148 -0
- package/dist/agents/atlas.d.ts +22 -0
- package/dist/agents/dynamic-agent-prompt-builder.d.ts +30 -0
- package/dist/agents/explore.d.ts +7 -0
- package/dist/agents/hephaestus.d.ts +6 -0
- package/dist/agents/index.d.ts +12 -0
- package/dist/agents/librarian.d.ts +7 -0
- package/dist/agents/metis.d.ts +21 -0
- package/dist/agents/momus.d.ts +21 -0
- package/dist/agents/momus.test.d.ts +1 -0
- package/dist/agents/multimodal-looker.d.ts +7 -0
- package/dist/agents/oracle.d.ts +7 -0
- package/dist/agents/prometheus/behavioral-summary.d.ts +6 -0
- package/dist/agents/prometheus/high-accuracy-mode.d.ts +6 -0
- package/dist/agents/prometheus/identity-constraints.d.ts +7 -0
- package/dist/agents/prometheus/index.d.ts +39 -0
- package/dist/agents/prometheus/interview-mode.d.ts +7 -0
- package/dist/agents/prometheus/plan-generation.d.ts +7 -0
- package/dist/agents/prometheus/plan-template.d.ts +7 -0
- package/dist/agents/prometheus-prompt.test.d.ts +1 -0
- package/dist/agents/sisyphus-junior.d.ts +10 -0
- package/dist/agents/sisyphus-junior.test.d.ts +1 -0
- package/dist/agents/sisyphus.d.ts +8 -0
- package/dist/agents/types.d.ts +63 -0
- package/dist/agents/utils.d.ts +16 -0
- package/dist/agents/utils.test.d.ts +1 -0
- package/dist/cli/config-manager.d.ts +162 -0
- package/dist/cli/config-manager.test.d.ts +1 -0
- package/dist/cli/doctor/checks/auth.d.ts +7 -0
- package/dist/cli/doctor/checks/auth.test.d.ts +1 -0
- package/dist/cli/doctor/checks/config.d.ts +8 -0
- package/dist/cli/doctor/checks/config.test.d.ts +1 -0
- package/dist/cli/doctor/checks/dependencies.d.ts +8 -0
- package/dist/cli/doctor/checks/dependencies.test.d.ts +1 -0
- package/dist/cli/doctor/checks/gh.d.ts +13 -0
- package/dist/cli/doctor/checks/gh.test.d.ts +1 -0
- package/dist/cli/doctor/checks/index.d.ts +13 -0
- package/dist/cli/doctor/checks/lsp.d.ts +8 -0
- package/dist/cli/doctor/checks/lsp.test.d.ts +1 -0
- package/dist/cli/doctor/checks/mcp-oauth.d.ts +15 -0
- package/dist/cli/doctor/checks/mcp-oauth.test.d.ts +1 -0
- package/dist/cli/doctor/checks/mcp.d.ts +6 -0
- package/dist/cli/doctor/checks/mcp.test.d.ts +1 -0
- package/dist/cli/doctor/checks/model-resolution.d.ts +33 -0
- package/dist/cli/doctor/checks/model-resolution.test.d.ts +1 -0
- package/dist/cli/doctor/checks/opencode.d.ts +19 -0
- package/dist/cli/doctor/checks/opencode.test.d.ts +1 -0
- package/dist/cli/doctor/checks/plugin.d.ts +4 -0
- package/dist/cli/doctor/checks/plugin.test.d.ts +1 -0
- package/dist/cli/doctor/checks/version.d.ts +4 -0
- package/dist/cli/doctor/checks/version.test.d.ts +1 -0
- package/dist/cli/doctor/constants.d.ts +42 -0
- package/dist/cli/doctor/formatter.d.ts +12 -0
- package/dist/cli/doctor/formatter.test.d.ts +1 -0
- package/dist/cli/doctor/index.d.ts +5 -0
- package/dist/cli/doctor/runner.d.ts +7 -0
- package/dist/cli/doctor/runner.test.d.ts +1 -0
- package/dist/cli/doctor/types.d.ts +91 -0
- package/dist/cli/get-local-version/formatter.d.ts +3 -0
- package/dist/cli/get-local-version/index.d.ts +3 -0
- package/dist/cli/get-local-version/types.d.ts +13 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.js +26903 -0
- package/dist/cli/index.test.d.ts +1 -0
- package/dist/cli/install.d.ts +2 -0
- package/dist/cli/install.test.d.ts +1 -0
- package/dist/cli/mcp-oauth/index.d.ts +6 -0
- package/dist/cli/mcp-oauth/index.test.d.ts +1 -0
- package/dist/cli/mcp-oauth/login.d.ts +6 -0
- package/dist/cli/mcp-oauth/login.test.d.ts +1 -0
- package/dist/cli/mcp-oauth/logout.d.ts +4 -0
- package/dist/cli/mcp-oauth/logout.test.d.ts +1 -0
- package/dist/cli/mcp-oauth/status.d.ts +1 -0
- package/dist/cli/mcp-oauth/status.test.d.ts +1 -0
- package/dist/cli/model-fallback.d.ts +18 -0
- package/dist/cli/model-fallback.test.d.ts +1 -0
- package/dist/cli/run/completion.d.ts +2 -0
- package/dist/cli/run/completion.test.d.ts +1 -0
- package/dist/cli/run/events.d.ts +14 -0
- package/dist/cli/run/events.test.d.ts +1 -0
- package/dist/cli/run/index.d.ts +2 -0
- package/dist/cli/run/runner.d.ts +2 -0
- package/dist/cli/run/types.d.ts +73 -0
- package/dist/cli/types.d.ts +39 -0
- package/dist/config/index.d.ts +2 -0
- package/dist/config/schema.d.ts +2651 -0
- package/dist/config/schema.test.d.ts +1 -0
- package/dist/features/background-agent/concurrency.d.ts +27 -0
- package/dist/features/background-agent/concurrency.test.d.ts +1 -0
- package/dist/features/background-agent/constants.d.ts +44 -0
- package/dist/features/background-agent/index.d.ts +4 -0
- package/dist/features/background-agent/manager.d.ts +118 -0
- package/dist/features/background-agent/manager.test.d.ts +1 -0
- package/dist/features/background-agent/result-handler.d.ts +15 -0
- package/dist/features/background-agent/spawner.d.ts +14 -0
- package/dist/features/background-agent/state.d.ts +35 -0
- package/dist/features/background-agent/types.d.ts +79 -0
- package/dist/features/boulder-state/constants.d.ts +10 -0
- package/dist/features/boulder-state/index.d.ts +3 -0
- package/dist/features/boulder-state/storage.d.ts +28 -0
- package/dist/features/boulder-state/storage.test.d.ts +1 -0
- package/dist/features/boulder-state/types.d.ts +24 -0
- package/dist/features/builtin-commands/commands.d.ts +2 -0
- package/dist/features/builtin-commands/index.d.ts +2 -0
- package/dist/features/builtin-commands/templates/init-deep.d.ts +1 -0
- package/dist/features/builtin-commands/templates/ralph-loop.d.ts +2 -0
- package/dist/features/builtin-commands/templates/refactor.d.ts +1 -0
- package/dist/features/builtin-commands/templates/start-work.d.ts +1 -0
- package/dist/features/builtin-commands/templates/stop-continuation.d.ts +1 -0
- package/dist/features/builtin-commands/templates/stop-continuation.test.d.ts +1 -0
- package/dist/features/builtin-commands/types.d.ts +6 -0
- package/dist/features/builtin-skills/index.d.ts +2 -0
- package/dist/features/builtin-skills/skills/dev-browser.d.ts +2 -0
- package/dist/features/builtin-skills/skills/frontend-ui-ux.d.ts +2 -0
- package/dist/features/builtin-skills/skills/git-master.d.ts +2 -0
- package/dist/features/builtin-skills/skills/index.d.ts +4 -0
- package/dist/features/builtin-skills/skills/playwright.d.ts +3 -0
- package/dist/features/builtin-skills/skills.d.ts +6 -0
- package/dist/features/builtin-skills/skills.test.d.ts +1 -0
- package/dist/features/builtin-skills/types.d.ts +15 -0
- package/dist/features/claude-code-agent-loader/index.d.ts +2 -0
- package/dist/features/claude-code-agent-loader/loader.d.ts +3 -0
- package/dist/features/claude-code-agent-loader/types.d.ts +14 -0
- package/dist/features/claude-code-command-loader/index.d.ts +2 -0
- package/dist/features/claude-code-command-loader/loader.d.ts +6 -0
- package/dist/features/claude-code-command-loader/types.d.ts +42 -0
- package/dist/features/claude-code-mcp-loader/env-expander.d.ts +2 -0
- package/dist/features/claude-code-mcp-loader/index.d.ts +10 -0
- package/dist/features/claude-code-mcp-loader/loader.d.ts +4 -0
- package/dist/features/claude-code-mcp-loader/loader.test.d.ts +1 -0
- package/dist/features/claude-code-mcp-loader/transformer.d.ts +2 -0
- package/dist/features/claude-code-mcp-loader/types.d.ts +39 -0
- package/dist/features/claude-code-plugin-loader/index.d.ts +3 -0
- package/dist/features/claude-code-plugin-loader/loader.d.ts +20 -0
- package/dist/features/claude-code-plugin-loader/types.d.ts +186 -0
- package/dist/features/claude-code-session-state/index.d.ts +1 -0
- package/dist/features/claude-code-session-state/state.d.ts +9 -0
- package/dist/features/claude-code-session-state/state.test.d.ts +1 -0
- package/dist/features/context-injector/collector.d.ts +11 -0
- package/dist/features/context-injector/collector.test.d.ts +1 -0
- package/dist/features/context-injector/index.d.ts +3 -0
- package/dist/features/context-injector/injector.d.ts +39 -0
- package/dist/features/context-injector/injector.test.d.ts +1 -0
- package/dist/features/context-injector/types.d.ts +83 -0
- package/dist/features/hook-message-injector/constants.d.ts +3 -0
- package/dist/features/hook-message-injector/index.d.ts +4 -0
- package/dist/features/hook-message-injector/injector.d.ts +19 -0
- package/dist/features/hook-message-injector/types.d.ts +46 -0
- package/dist/features/mcp-oauth/callback-server.d.ts +11 -0
- package/dist/features/mcp-oauth/callback-server.test.d.ts +1 -0
- package/dist/features/mcp-oauth/dcr.d.ts +34 -0
- package/dist/features/mcp-oauth/dcr.test.d.ts +1 -0
- package/dist/features/mcp-oauth/discovery.d.ts +8 -0
- package/dist/features/mcp-oauth/discovery.test.d.ts +1 -0
- package/dist/features/mcp-oauth/index.d.ts +1 -0
- package/dist/features/mcp-oauth/provider.d.ts +41 -0
- package/dist/features/mcp-oauth/provider.test.d.ts +1 -0
- package/dist/features/mcp-oauth/resource-indicator.d.ts +2 -0
- package/dist/features/mcp-oauth/resource-indicator.test.d.ts +1 -0
- package/dist/features/mcp-oauth/schema.d.ts +6 -0
- package/dist/features/mcp-oauth/schema.test.d.ts +1 -0
- package/dist/features/mcp-oauth/step-up.d.ts +8 -0
- package/dist/features/mcp-oauth/step-up.test.d.ts +1 -0
- package/dist/features/mcp-oauth/storage.d.ts +17 -0
- package/dist/features/mcp-oauth/storage.test.d.ts +1 -0
- package/dist/features/opencode-skill-loader/async-loader.d.ts +6 -0
- package/dist/features/opencode-skill-loader/async-loader.test.d.ts +1 -0
- package/dist/features/opencode-skill-loader/blocking.d.ts +2 -0
- package/dist/features/opencode-skill-loader/blocking.test.d.ts +1 -0
- package/dist/features/opencode-skill-loader/discover-worker.d.ts +1 -0
- package/dist/features/opencode-skill-loader/index.d.ts +4 -0
- package/dist/features/opencode-skill-loader/loader.d.ts +16 -0
- package/dist/features/opencode-skill-loader/loader.test.d.ts +1 -0
- package/dist/features/opencode-skill-loader/merger.d.ts +7 -0
- package/dist/features/opencode-skill-loader/skill-content.d.ts +21 -0
- package/dist/features/opencode-skill-loader/skill-content.test.d.ts +1 -0
- package/dist/features/opencode-skill-loader/types.d.ts +34 -0
- package/dist/features/sisyphus-swarm/mailbox/types.d.ts +191 -0
- package/dist/features/sisyphus-swarm/mailbox/types.test.d.ts +1 -0
- package/dist/features/sisyphus-tasks/storage.d.ts +9 -0
- package/dist/features/sisyphus-tasks/storage.test.d.ts +1 -0
- package/dist/features/sisyphus-tasks/types.d.ts +47 -0
- package/dist/features/sisyphus-tasks/types.test.d.ts +1 -0
- package/dist/features/skill-mcp-manager/env-cleaner.d.ts +2 -0
- package/dist/features/skill-mcp-manager/env-cleaner.test.d.ts +1 -0
- package/dist/features/skill-mcp-manager/index.d.ts +2 -0
- package/dist/features/skill-mcp-manager/manager.d.ts +50 -0
- package/dist/features/skill-mcp-manager/manager.test.d.ts +1 -0
- package/dist/features/skill-mcp-manager/types.d.ts +11 -0
- package/dist/features/task-toast-manager/index.d.ts +2 -0
- package/dist/features/task-toast-manager/manager.d.ts +58 -0
- package/dist/features/task-toast-manager/manager.test.d.ts +1 -0
- package/dist/features/task-toast-manager/types.d.ts +24 -0
- package/dist/features/tmux-subagent/action-executor.d.ts +22 -0
- package/dist/features/tmux-subagent/decision-engine.d.ts +38 -0
- package/dist/features/tmux-subagent/decision-engine.test.d.ts +1 -0
- package/dist/features/tmux-subagent/index.d.ts +5 -0
- package/dist/features/tmux-subagent/manager.d.ts +59 -0
- package/dist/features/tmux-subagent/manager.test.d.ts +1 -0
- package/dist/features/tmux-subagent/pane-state-querier.d.ts +2 -0
- package/dist/features/tmux-subagent/types.d.ts +53 -0
- package/dist/hooks/agent-usage-reminder/constants.d.ts +5 -0
- package/dist/hooks/agent-usage-reminder/index.d.ts +22 -0
- package/dist/hooks/agent-usage-reminder/storage.d.ts +4 -0
- package/dist/hooks/agent-usage-reminder/types.d.ts +6 -0
- package/dist/hooks/anthropic-context-window-limit-recovery/executor.d.ts +4 -0
- package/dist/hooks/anthropic-context-window-limit-recovery/executor.test.d.ts +1 -0
- package/dist/hooks/anthropic-context-window-limit-recovery/index.d.ts +16 -0
- package/dist/hooks/anthropic-context-window-limit-recovery/parser.d.ts +2 -0
- package/dist/hooks/anthropic-context-window-limit-recovery/pruning-deduplication.d.ts +7 -0
- package/dist/hooks/anthropic-context-window-limit-recovery/pruning-deduplication.test.d.ts +1 -0
- package/dist/hooks/anthropic-context-window-limit-recovery/pruning-types.d.ts +36 -0
- package/dist/hooks/anthropic-context-window-limit-recovery/storage.d.ts +28 -0
- package/dist/hooks/anthropic-context-window-limit-recovery/storage.test.d.ts +1 -0
- package/dist/hooks/anthropic-context-window-limit-recovery/types.d.ts +37 -0
- package/dist/hooks/atlas/index.d.ts +35 -0
- package/dist/hooks/atlas/index.test.d.ts +1 -0
- package/dist/hooks/auto-slash-command/constants.d.ts +5 -0
- package/dist/hooks/auto-slash-command/detector.d.ts +9 -0
- package/dist/hooks/auto-slash-command/detector.test.d.ts +1 -0
- package/dist/hooks/auto-slash-command/executor.d.ts +11 -0
- package/dist/hooks/auto-slash-command/index.d.ts +12 -0
- package/dist/hooks/auto-slash-command/index.test.d.ts +1 -0
- package/dist/hooks/auto-slash-command/types.d.ts +27 -0
- package/dist/hooks/auto-update-checker/cache.d.ts +3 -0
- package/dist/hooks/auto-update-checker/checker.d.ts +20 -0
- package/dist/hooks/auto-update-checker/checker.test.d.ts +1 -0
- package/dist/hooks/auto-update-checker/constants.d.ts +10 -0
- package/dist/hooks/auto-update-checker/index.d.ts +17 -0
- package/dist/hooks/auto-update-checker/index.test.d.ts +1 -0
- package/dist/hooks/auto-update-checker/types.d.ts +25 -0
- package/dist/hooks/background-notification/index.d.ts +18 -0
- package/dist/hooks/background-notification/types.d.ts +4 -0
- package/dist/hooks/category-skill-reminder/index.d.ts +22 -0
- package/dist/hooks/category-skill-reminder/index.test.d.ts +1 -0
- package/dist/hooks/claude-code-hooks/config-loader.d.ts +13 -0
- package/dist/hooks/claude-code-hooks/config.d.ts +3 -0
- package/dist/hooks/claude-code-hooks/index.d.ts +48 -0
- package/dist/hooks/claude-code-hooks/plugin-config.d.ts +8 -0
- package/dist/hooks/claude-code-hooks/post-tool-use.d.ts +40 -0
- package/dist/hooks/claude-code-hooks/pre-compact.d.ts +16 -0
- package/dist/hooks/claude-code-hooks/pre-tool-use.d.ts +25 -0
- package/dist/hooks/claude-code-hooks/stop.d.ts +20 -0
- package/dist/hooks/claude-code-hooks/todo.d.ts +12 -0
- package/dist/hooks/claude-code-hooks/tool-input-cache.d.ts +5 -0
- package/dist/hooks/claude-code-hooks/transcript.d.ts +34 -0
- package/dist/hooks/claude-code-hooks/types.d.ts +183 -0
- package/dist/hooks/claude-code-hooks/user-prompt-submit.d.ts +22 -0
- package/dist/hooks/comment-checker/cli.d.ts +52 -0
- package/dist/hooks/comment-checker/cli.test.d.ts +1 -0
- package/dist/hooks/comment-checker/downloader.d.ts +25 -0
- package/dist/hooks/comment-checker/index.d.ts +19 -0
- package/dist/hooks/comment-checker/types.d.ts +31 -0
- package/dist/hooks/compaction-context-injector/index.d.ts +8 -0
- package/dist/hooks/compaction-context-injector/index.test.d.ts +1 -0
- package/dist/hooks/context-window-monitor.d.ts +18 -0
- package/dist/hooks/delegate-task-retry/index.d.ts +24 -0
- package/dist/hooks/delegate-task-retry/index.test.d.ts +1 -0
- package/dist/hooks/directory-agents-injector/constants.d.ts +3 -0
- package/dist/hooks/directory-agents-injector/index.d.ts +26 -0
- package/dist/hooks/directory-agents-injector/storage.d.ts +1 -0
- package/dist/hooks/directory-readme-injector/constants.d.ts +3 -0
- package/dist/hooks/directory-readme-injector/index.d.ts +26 -0
- package/dist/hooks/directory-readme-injector/storage.d.ts +1 -0
- package/dist/hooks/edit-error-recovery/index.d.ts +31 -0
- package/dist/hooks/edit-error-recovery/index.test.d.ts +1 -0
- package/dist/hooks/empty-task-response-detector.d.ts +12 -0
- package/dist/hooks/index.d.ts +35 -0
- package/dist/hooks/interactive-bash-session/constants.d.ts +4 -0
- package/dist/hooks/interactive-bash-session/index.d.ts +23 -0
- package/dist/hooks/interactive-bash-session/storage.d.ts +4 -0
- package/dist/hooks/interactive-bash-session/types.d.ts +10 -0
- package/dist/hooks/keyword-detector/analyze/default.d.ts +12 -0
- package/dist/hooks/keyword-detector/analyze/index.d.ts +1 -0
- package/dist/hooks/keyword-detector/constants.d.ts +10 -0
- package/dist/hooks/keyword-detector/detector.d.ts +11 -0
- package/dist/hooks/keyword-detector/index.d.ts +23 -0
- package/dist/hooks/keyword-detector/index.test.d.ts +1 -0
- package/dist/hooks/keyword-detector/search/default.d.ts +12 -0
- package/dist/hooks/keyword-detector/search/index.d.ts +1 -0
- package/dist/hooks/keyword-detector/types.d.ts +4 -0
- package/dist/hooks/keyword-detector/ultrawork/default.d.ts +10 -0
- package/dist/hooks/keyword-detector/ultrawork/gpt5.2.d.ts +16 -0
- package/dist/hooks/keyword-detector/ultrawork/index.d.ts +17 -0
- package/dist/hooks/keyword-detector/ultrawork/planner.d.ts +6 -0
- package/dist/hooks/keyword-detector/ultrawork/utils.d.ts +24 -0
- package/dist/hooks/non-interactive-env/constants.d.ts +34 -0
- package/dist/hooks/non-interactive-env/detector.d.ts +1 -0
- package/dist/hooks/non-interactive-env/index.d.ts +14 -0
- package/dist/hooks/non-interactive-env/index.test.d.ts +1 -0
- package/dist/hooks/non-interactive-env/types.d.ts +3 -0
- package/dist/hooks/prometheus-md-only/constants.d.ts +7 -0
- package/dist/hooks/prometheus-md-only/index.d.ts +12 -0
- package/dist/hooks/prometheus-md-only/index.test.d.ts +1 -0
- package/dist/hooks/question-label-truncator/index.d.ts +7 -0
- package/dist/hooks/question-label-truncator/index.test.d.ts +1 -0
- package/dist/hooks/ralph-loop/constants.d.ts +5 -0
- package/dist/hooks/ralph-loop/index.d.ts +21 -0
- package/dist/hooks/ralph-loop/index.test.d.ts +1 -0
- package/dist/hooks/ralph-loop/storage.d.ts +6 -0
- package/dist/hooks/ralph-loop/types.d.ts +17 -0
- package/dist/hooks/rules-injector/constants.d.ts +8 -0
- package/dist/hooks/rules-injector/finder.d.ts +33 -0
- package/dist/hooks/rules-injector/finder.test.d.ts +1 -0
- package/dist/hooks/rules-injector/index.d.ts +26 -0
- package/dist/hooks/rules-injector/matcher.d.ts +21 -0
- package/dist/hooks/rules-injector/output-path.d.ts +5 -0
- package/dist/hooks/rules-injector/output-path.test.d.ts +1 -0
- package/dist/hooks/rules-injector/parser.d.ts +18 -0
- package/dist/hooks/rules-injector/parser.test.d.ts +1 -0
- package/dist/hooks/rules-injector/storage.d.ts +9 -0
- package/dist/hooks/rules-injector/types.d.ts +54 -0
- package/dist/hooks/session-notification-utils.d.ts +9 -0
- package/dist/hooks/session-notification.d.ts +20 -0
- package/dist/hooks/session-notification.test.d.ts +1 -0
- package/dist/hooks/session-recovery/constants.d.ts +6 -0
- package/dist/hooks/session-recovery/index.d.ts +22 -0
- package/dist/hooks/session-recovery/index.test.d.ts +1 -0
- package/dist/hooks/session-recovery/storage.d.ts +19 -0
- package/dist/hooks/session-recovery/types.d.ts +90 -0
- package/dist/hooks/sisyphus-junior-notepad/constants.d.ts +2 -0
- package/dist/hooks/sisyphus-junior-notepad/index.d.ts +12 -0
- package/dist/hooks/start-work/index.d.ts +16 -0
- package/dist/hooks/start-work/index.test.d.ts +1 -0
- package/dist/hooks/stop-continuation-guard/index.d.ts +16 -0
- package/dist/hooks/stop-continuation-guard/index.test.d.ts +1 -0
- package/dist/hooks/subagent-question-blocker/index.d.ts +2 -0
- package/dist/hooks/subagent-question-blocker/index.test.d.ts +1 -0
- package/dist/hooks/task-resume-info/index.d.ts +11 -0
- package/dist/hooks/think-mode/detector.d.ts +5 -0
- package/dist/hooks/think-mode/index.d.ts +14 -0
- package/dist/hooks/think-mode/index.test.d.ts +1 -0
- package/dist/hooks/think-mode/switcher.d.ts +69 -0
- package/dist/hooks/think-mode/switcher.test.d.ts +1 -0
- package/dist/hooks/think-mode/types.d.ts +21 -0
- package/dist/hooks/thinking-block-validator/index.d.ts +30 -0
- package/dist/hooks/todo-continuation-enforcer.d.ts +19 -0
- package/dist/hooks/todo-continuation-enforcer.test.d.ts +1 -0
- package/dist/hooks/tool-output-truncator.d.ts +17 -0
- package/dist/hooks/tool-output-truncator.test.d.ts +1 -0
- package/dist/hooks/unstable-agent-babysitter/index.d.ts +50 -0
- package/dist/hooks/unstable-agent-babysitter/index.test.d.ts +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +76117 -0
- package/dist/index.test.d.ts +1 -0
- package/dist/mcp/context7.d.ts +9 -0
- package/dist/mcp/grep-app.d.ts +6 -0
- package/dist/mcp/index.d.ts +9 -0
- package/dist/mcp/index.test.d.ts +1 -0
- package/dist/mcp/types.d.ts +9 -0
- package/dist/mcp/websearch.d.ts +9 -0
- package/dist/oh-my-parallel-agent-opencode.schema.json +2182 -0
- package/dist/plugin-config.d.ts +4 -0
- package/dist/plugin-config.test.d.ts +1 -0
- package/dist/plugin-handlers/config-handler.d.ts +13 -0
- package/dist/plugin-handlers/config-handler.test.d.ts +1 -0
- package/dist/plugin-handlers/index.d.ts +1 -0
- package/dist/plugin-state.d.ts +6 -0
- package/dist/shared/agent-config-integration.test.d.ts +1 -0
- package/dist/shared/agent-display-names.d.ts +12 -0
- package/dist/shared/agent-display-names.test.d.ts +1 -0
- package/dist/shared/agent-tool-restrictions.d.ts +7 -0
- package/dist/shared/agent-variant.d.ts +9 -0
- package/dist/shared/agent-variant.test.d.ts +1 -0
- package/dist/shared/binary-downloader.d.ts +10 -0
- package/dist/shared/claude-config-dir.d.ts +1 -0
- package/dist/shared/claude-config-dir.test.d.ts +1 -0
- package/dist/shared/command-executor.d.ts +21 -0
- package/dist/shared/config-errors.d.ts +7 -0
- package/dist/shared/connected-providers-cache.d.ts +52 -0
- package/dist/shared/data-path.d.ts +30 -0
- package/dist/shared/deep-merge.d.ts +13 -0
- package/dist/shared/deep-merge.test.d.ts +1 -0
- package/dist/shared/dynamic-truncator.d.ts +27 -0
- package/dist/shared/external-plugin-detector.d.ts +18 -0
- package/dist/shared/external-plugin-detector.test.d.ts +1 -0
- package/dist/shared/file-reference-resolver.d.ts +1 -0
- package/dist/shared/file-utils.d.ts +7 -0
- package/dist/shared/first-message-variant.d.ts +11 -0
- package/dist/shared/first-message-variant.test.d.ts +1 -0
- package/dist/shared/frontmatter.d.ts +7 -0
- package/dist/shared/frontmatter.test.d.ts +1 -0
- package/dist/shared/hook-disabled.d.ts +2 -0
- package/dist/shared/index.d.ts +36 -0
- package/dist/shared/jsonc-parser.d.ts +15 -0
- package/dist/shared/jsonc-parser.test.d.ts +1 -0
- package/dist/shared/logger.d.ts +2 -0
- package/dist/shared/migration.d.ts +32 -0
- package/dist/shared/migration.test.d.ts +1 -0
- package/dist/shared/model-availability.d.ts +19 -0
- package/dist/shared/model-availability.test.d.ts +1 -0
- package/dist/shared/model-requirements.d.ts +13 -0
- package/dist/shared/model-requirements.test.d.ts +1 -0
- package/dist/shared/model-resolution-pipeline.d.ts +24 -0
- package/dist/shared/model-resolver.d.ts +22 -0
- package/dist/shared/model-resolver.test.d.ts +1 -0
- package/dist/shared/model-sanitizer.d.ts +3 -0
- package/dist/shared/model-suggestion-retry.d.ts +24 -0
- package/dist/shared/model-suggestion-retry.test.d.ts +1 -0
- package/dist/shared/ollama-ndjson-parser.d.ts +108 -0
- package/dist/shared/opencode-config-dir.d.ts +19 -0
- package/dist/shared/opencode-config-dir.test.d.ts +1 -0
- package/dist/shared/opencode-version.d.ts +19 -0
- package/dist/shared/opencode-version.test.d.ts +1 -0
- package/dist/shared/pattern-matcher.d.ts +3 -0
- package/dist/shared/permission-compat.d.ts +27 -0
- package/dist/shared/permission-compat.test.d.ts +1 -0
- package/dist/shared/session-cursor.d.ts +13 -0
- package/dist/shared/session-cursor.test.d.ts +1 -0
- package/dist/shared/session-injected-paths.d.ts +10 -0
- package/dist/shared/session-utils.d.ts +2 -0
- package/dist/shared/shell-env.d.ts +41 -0
- package/dist/shared/shell-env.test.d.ts +1 -0
- package/dist/shared/snake-case.d.ts +5 -0
- package/dist/shared/system-directive.d.ts +45 -0
- package/dist/shared/system-directive.test.d.ts +1 -0
- package/dist/shared/tmux/constants.d.ts +5 -0
- package/dist/shared/tmux/index.d.ts +3 -0
- package/dist/shared/tmux/tmux-utils.d.ts +17 -0
- package/dist/shared/tmux/tmux-utils.test.d.ts +1 -0
- package/dist/shared/tmux/types.d.ts +4 -0
- package/dist/shared/tool-name.d.ts +1 -0
- package/dist/shared/zip-extractor.d.ts +1 -0
- package/dist/tools/ast-grep/cli.d.ts +15 -0
- package/dist/tools/ast-grep/constants.d.ts +29 -0
- package/dist/tools/ast-grep/downloader.d.ts +5 -0
- package/dist/tools/ast-grep/index.d.ts +8 -0
- package/dist/tools/ast-grep/tools.d.ts +3 -0
- package/dist/tools/ast-grep/types.d.ts +58 -0
- package/dist/tools/ast-grep/utils.d.ts +5 -0
- package/dist/tools/background-task/constants.d.ts +3 -0
- package/dist/tools/background-task/index.d.ts +4 -0
- package/dist/tools/background-task/tools.d.ts +47 -0
- package/dist/tools/background-task/tools.test.d.ts +1 -0
- package/dist/tools/background-task/types.d.ts +20 -0
- package/dist/tools/call-omo-agent/constants.d.ts +2 -0
- package/dist/tools/call-omo-agent/index.d.ts +3 -0
- package/dist/tools/call-omo-agent/tools.d.ts +3 -0
- package/dist/tools/call-omo-agent/types.d.ts +24 -0
- package/dist/tools/delegate-task/categories.d.ts +17 -0
- package/dist/tools/delegate-task/constants.d.ts +30 -0
- package/dist/tools/delegate-task/executor.d.ts +75 -0
- package/dist/tools/delegate-task/helpers.d.ts +30 -0
- package/dist/tools/delegate-task/index.d.ts +4 -0
- package/dist/tools/delegate-task/prompt-builder.d.ts +6 -0
- package/dist/tools/delegate-task/timing.d.ts +11 -0
- package/dist/tools/delegate-task/tools.d.ts +6 -0
- package/dist/tools/delegate-task/tools.test.d.ts +1 -0
- package/dist/tools/delegate-task/types.d.ts +44 -0
- package/dist/tools/glob/cli.d.ts +11 -0
- package/dist/tools/glob/cli.test.d.ts +1 -0
- package/dist/tools/glob/constants.d.ts +6 -0
- package/dist/tools/glob/index.d.ts +2 -0
- package/dist/tools/glob/tools.d.ts +2 -0
- package/dist/tools/glob/types.d.ts +20 -0
- package/dist/tools/glob/utils.d.ts +2 -0
- package/dist/tools/grep/cli.d.ts +3 -0
- package/dist/tools/grep/constants.d.ts +17 -0
- package/dist/tools/grep/downloader.d.ts +3 -0
- package/dist/tools/grep/downloader.test.d.ts +1 -0
- package/dist/tools/grep/index.d.ts +2 -0
- package/dist/tools/grep/tools.d.ts +2 -0
- package/dist/tools/grep/types.d.ts +36 -0
- package/dist/tools/grep/utils.d.ts +3 -0
- package/dist/tools/index.d.ts +15 -0
- package/dist/tools/interactive-bash/constants.d.ts +3 -0
- package/dist/tools/interactive-bash/index.d.ts +3 -0
- package/dist/tools/interactive-bash/tools.d.ts +7 -0
- package/dist/tools/interactive-bash/utils.d.ts +3 -0
- package/dist/tools/look-at/constants.d.ts +2 -0
- package/dist/tools/look-at/index.d.ts +3 -0
- package/dist/tools/look-at/tools.d.ts +9 -0
- package/dist/tools/look-at/tools.test.d.ts +1 -0
- package/dist/tools/look-at/types.d.ts +4 -0
- package/dist/tools/lsp/client.d.ts +50 -0
- package/dist/tools/lsp/config.d.ts +17 -0
- package/dist/tools/lsp/config.test.d.ts +1 -0
- package/dist/tools/lsp/constants.d.ts +9 -0
- package/dist/tools/lsp/index.d.ts +6 -0
- package/dist/tools/lsp/tools.d.ts +7 -0
- package/dist/tools/lsp/types.d.ts +123 -0
- package/dist/tools/lsp/utils.d.ts +26 -0
- package/dist/tools/session-manager/constants.d.ts +12 -0
- package/dist/tools/session-manager/index.d.ts +3 -0
- package/dist/tools/session-manager/storage.d.ts +12 -0
- package/dist/tools/session-manager/storage.test.d.ts +1 -0
- package/dist/tools/session-manager/tools.d.ts +5 -0
- package/dist/tools/session-manager/tools.test.d.ts +1 -0
- package/dist/tools/session-manager/types.d.ts +89 -0
- package/dist/tools/session-manager/utils.d.ts +11 -0
- package/dist/tools/session-manager/utils.test.d.ts +1 -0
- package/dist/tools/skill/constants.d.ts +3 -0
- package/dist/tools/skill/index.d.ts +3 -0
- package/dist/tools/skill/tools.d.ts +4 -0
- package/dist/tools/skill/tools.test.d.ts +1 -0
- package/dist/tools/skill/types.d.ts +28 -0
- package/dist/tools/skill-mcp/constants.d.ts +2 -0
- package/dist/tools/skill-mcp/index.d.ts +3 -0
- package/dist/tools/skill-mcp/tools.d.ts +11 -0
- package/dist/tools/skill-mcp/tools.test.d.ts +1 -0
- package/dist/tools/skill-mcp/types.d.ts +8 -0
- package/dist/tools/slashcommand/index.d.ts +2 -0
- package/dist/tools/slashcommand/tools.d.ts +5 -0
- package/dist/tools/slashcommand/tools.test.d.ts +1 -0
- package/dist/tools/slashcommand/types.d.ts +24 -0
- package/package.json +77 -6
- package/postinstall.mjs +43 -0
- package/__tests__/agents.test.ts +0 -107
- package/__tests__/config-handler.test.ts +0 -198
- package/__tests__/dynamic-agent.test.ts +0 -68
- package/__tests__/schema.test.ts +0 -149
- package/__tests__/setup.test.ts +0 -16
- package/bun.lock +0 -29
- package/oh-my-parallel-agent-opencode.example.json +0 -7
- package/src/agents/explore.ts +0 -117
- package/src/agents/index.ts +0 -69
- package/src/agents/librarian.ts +0 -302
- package/src/agents/metis.ts +0 -341
- package/src/agents/momus.ts +0 -237
- package/src/agents/types.ts +0 -95
- package/src/config/schema.ts +0 -15
- package/src/index.ts +0 -116
- package/src/plugin-handlers/config-handler.ts +0 -129
- package/src/utils/dynamic-agent.ts +0 -37
- package/tsconfig.json +0 -19
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { CategoryConfig } from "../../config/schema";
|
|
2
|
+
export declare const VISUAL_CATEGORY_PROMPT_APPEND = "<Category_Context>\nYou are working on VISUAL/UI tasks.\n\nDesign-first mindset:\n- Bold aesthetic choices over safe defaults\n- Unexpected layouts, asymmetry, grid-breaking elements\n- Distinctive typography (avoid: Arial, Inter, Roboto, Space Grotesk)\n- Cohesive color palettes with sharp accents\n- High-impact animations with staggered reveals\n- Atmosphere: gradient meshes, noise textures, layered transparencies\n\nAVOID: Generic fonts, purple gradients on white, predictable layouts, cookie-cutter patterns.\n</Category_Context>";
|
|
3
|
+
export declare const ULTRABRAIN_CATEGORY_PROMPT_APPEND = "<Category_Context>\nYou are working on DEEP LOGICAL REASONING / COMPLEX ARCHITECTURE tasks.\n\n**CRITICAL - CODE STYLE REQUIREMENTS (NON-NEGOTIABLE)**:\n1. BEFORE writing ANY code, SEARCH the existing codebase to find similar patterns/styles\n2. Your code MUST match the project's existing conventions - blend in seamlessly\n3. Write READABLE code that humans can easily understand - no clever tricks\n4. If unsure about style, explore more files until you find the pattern\n\nStrategic advisor mindset:\n- Bias toward simplicity: least complex solution that fulfills requirements\n- Leverage existing code/patterns over new components\n- Prioritize developer experience and maintainability\n- One clear recommendation with effort estimate (Quick/Short/Medium/Large)\n- Signal when advanced approach warranted\n\nResponse format:\n- Bottom line (2-3 sentences)\n- Action plan (numbered steps)\n- Risks and mitigations (if relevant)\n</Category_Context>";
|
|
4
|
+
export declare const ARTISTRY_CATEGORY_PROMPT_APPEND = "<Category_Context>\nYou are working on HIGHLY CREATIVE / ARTISTIC tasks.\n\nArtistic genius mindset:\n- Push far beyond conventional boundaries\n- Explore radical, unconventional directions\n- Surprise and delight: unexpected twists, novel combinations\n- Rich detail and vivid expression\n- Break patterns deliberately when it serves the creative vision\n\nApproach:\n- Generate diverse, bold options first\n- Embrace ambiguity and wild experimentation\n- Balance novelty with coherence\n- This is for tasks requiring exceptional creativity\n</Category_Context>";
|
|
5
|
+
export declare const QUICK_CATEGORY_PROMPT_APPEND = "<Category_Context>\nYou are working on SMALL / QUICK tasks.\n\nEfficient execution mindset:\n- Fast, focused, minimal overhead\n- Get to the point immediately\n- No over-engineering\n- Simple solutions for simple problems\n\nApproach:\n- Minimal viable implementation\n- Skip unnecessary abstractions\n- Direct and concise\n</Category_Context>\n\n<Caller_Warning>\nTHIS CATEGORY USES A LESS CAPABLE MODEL (claude-haiku-4-5).\n\nThe model executing this task has LIMITED reasoning capacity. Your prompt MUST be:\n\n**EXHAUSTIVELY EXPLICIT** - Leave NOTHING to interpretation:\n1. MUST DO: List every required action as atomic, numbered steps\n2. MUST NOT DO: Explicitly forbid likely mistakes and deviations\n3. EXPECTED OUTPUT: Describe exact success criteria with concrete examples\n\n**WHY THIS MATTERS:**\n- Less capable models WILL deviate without explicit guardrails\n- Vague instructions \u2192 unpredictable results\n- Implicit expectations \u2192 missed requirements\n\n**PROMPT STRUCTURE (MANDATORY):**\n```\nTASK: [One-sentence goal]\n\nMUST DO:\n1. [Specific action with exact details]\n2. [Another specific action]\n...\n\nMUST NOT DO:\n- [Forbidden action + why]\n- [Another forbidden action]\n...\n\nEXPECTED OUTPUT:\n- [Exact deliverable description]\n- [Success criteria / verification method]\n```\n\nIf your prompt lacks this structure, REWRITE IT before delegating.\n</Caller_Warning>";
|
|
6
|
+
export declare const UNSPECIFIED_LOW_CATEGORY_PROMPT_APPEND = "<Category_Context>\nYou are working on tasks that don't fit specific categories but require moderate effort.\n\n<Selection_Gate>\nBEFORE selecting this category, VERIFY ALL conditions:\n1. Task does NOT fit: quick (trivial), visual-engineering (UI), ultrabrain (deep logic), artistry (creative), writing (docs)\n2. Task requires more than trivial effort but is NOT system-wide\n3. Scope is contained within a few files/modules\n\nIf task fits ANY other category, DO NOT select unspecified-low.\nThis is NOT a default choice - it's for genuinely unclassifiable moderate-effort work.\n</Selection_Gate>\n</Category_Context>\n\n<Caller_Warning>\nTHIS CATEGORY USES A MID-TIER MODEL (claude-sonnet-4-5).\n\n**PROVIDE CLEAR STRUCTURE:**\n1. MUST DO: Enumerate required actions explicitly\n2. MUST NOT DO: State forbidden actions to prevent scope creep\n3. EXPECTED OUTPUT: Define concrete success criteria\n</Caller_Warning>";
|
|
7
|
+
export declare const UNSPECIFIED_HIGH_CATEGORY_PROMPT_APPEND = "<Category_Context>\nYou are working on tasks that don't fit specific categories but require substantial effort.\n\n<Selection_Gate>\nBEFORE selecting this category, VERIFY ALL conditions:\n1. Task does NOT fit: quick (trivial), visual-engineering (UI), ultrabrain (deep logic), artistry (creative), writing (docs)\n2. Task requires substantial effort across multiple systems/modules\n3. Changes have broad impact or require careful coordination\n4. NOT just \"complex\" - must be genuinely unclassifiable AND high-effort\n\nIf task fits ANY other category, DO NOT select unspecified-high.\nIf task is unclassifiable but moderate-effort, use unspecified-low instead.\n</Selection_Gate>\n</Category_Context>";
|
|
8
|
+
export declare const WRITING_CATEGORY_PROMPT_APPEND = "<Category_Context>\nYou are working on WRITING / PROSE tasks.\n\nWordsmith mindset:\n- Clear, flowing prose\n- Appropriate tone and voice\n- Engaging and readable\n- Proper structure and organization\n\nApproach:\n- Understand the audience\n- Draft with care\n- Polish for clarity and impact\n- Documentation, READMEs, articles, technical writing\n</Category_Context>";
|
|
9
|
+
export declare const DEEP_CATEGORY_PROMPT_APPEND = "<Category_Context>\nYou are working on GOAL-ORIENTED AUTONOMOUS tasks.\n\n**CRITICAL - AUTONOMOUS EXECUTION MINDSET (NON-NEGOTIABLE)**:\nYou are NOT an interactive assistant. You are an autonomous problem-solver.\n\n**BEFORE making ANY changes**:\n1. SILENTLY explore the codebase extensively (5-15 minutes of reading is normal)\n2. Read related files, trace dependencies, understand the full context\n3. Build a complete mental model of the problem space\n4. DO NOT ask clarifying questions - the goal is already defined\n\n**Autonomous executor mindset**:\n- You receive a GOAL, not step-by-step instructions\n- Figure out HOW to achieve the goal yourself\n- Thorough research before any action\n- Fix hairy problems that require deep understanding\n- Work independently without frequent check-ins\n\n**Approach**:\n- Explore extensively, understand deeply, then act decisively\n- Prefer comprehensive solutions over quick patches\n- If the goal is unclear, make reasonable assumptions and proceed\n- Document your reasoning in code comments only when non-obvious\n\n**Response format**:\n- Minimal status updates (user trusts your autonomy)\n- Focus on results, not play-by-play progress\n- Report completion with summary of changes made\n</Category_Context>";
|
|
10
|
+
export declare const DEFAULT_CATEGORIES: Record<string, CategoryConfig>;
|
|
11
|
+
export declare const CATEGORY_PROMPT_APPENDS: Record<string, string>;
|
|
12
|
+
export declare const CATEGORY_DESCRIPTIONS: Record<string, string>;
|
|
13
|
+
/**
|
|
14
|
+
* System prompt prepended to plan agent invocations.
|
|
15
|
+
* Instructs the plan agent to first gather context via explore/librarian agents,
|
|
16
|
+
* then summarize user requirements and clarify uncertainties before proceeding.
|
|
17
|
+
* Also MANDATES dependency graphs, parallel execution analysis, and category+skill recommendations.
|
|
18
|
+
*/
|
|
19
|
+
export declare const PLAN_AGENT_SYSTEM_PREPEND = "<system>\nBEFORE you begin planning, you MUST first understand the user's request deeply.\n\nMANDATORY CONTEXT GATHERING PROTOCOL:\n1. Launch background agents to gather context:\n - call_omo_agent(description=\"Explore codebase patterns\", subagent_type=\"explore\", run_in_background=true, prompt=\"<search for relevant patterns, files, and implementations in the codebase related to user's request>\")\n - call_omo_agent(description=\"Research documentation\", subagent_type=\"librarian\", run_in_background=true, prompt=\"<search for external documentation, examples, and best practices related to user's request>\")\n\n2. After gathering context, ALWAYS present:\n - **User Request Summary**: Concise restatement of what the user is asking for\n - **Uncertainties**: List of unclear points, ambiguities, or assumptions you're making\n - **Clarifying Questions**: Specific questions to resolve the uncertainties\n\n3. ITERATE until ALL requirements are crystal clear:\n - Do NOT proceed to planning until you have 100% clarity\n - Ask the user to confirm your understanding\n - Resolve every ambiguity before generating the work plan\n\nREMEMBER: Vague requirements lead to failed implementations. Take the time to understand thoroughly.\n</system>\n\n<CRITICAL_REQUIREMENT_DEPENDENCY_PARALLEL_EXECUTION_CATEGORY_SKILLS>\n#####################################################################\n# #\n# \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2557 \u2588\u2588\u2557\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2557 #\n# \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u2550\u2550\u255D\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557 #\n# \u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2588\u2588\u2588\u2557 \u2588\u2588\u2551 \u2588\u2588\u2551 #\n# \u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2551\u2584\u2584 \u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2551\u2588\u2588\u2554\u2550\u2550\u2588\u2588\u2557\u2588\u2588\u2554\u2550\u2550\u255D \u2588\u2588\u2551 \u2588\u2588\u2551 #\n# \u2588\u2588\uFFFD\uFFFD \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u255A\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D\u2588\u2588\u2551\u2588\u2588\u2551 \u2588\u2588\u2551\u2588\u2588\u2588\u2588\u2588\u2588\u2588\u2557\u2588\u2588\u2588\u2588\u2588\u2588\u2554\u255D #\n# \u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u2550\u2580\u2580\u2550\u255D \u255A\u2550\u2550\u2550\u2550\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u255D \u255A\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u2550\u255D\u255A\u2550\u2550\u2550\u2550\u2550\u255D #\n# #\n#####################################################################\n\nYOU MUST INCLUDE THE FOLLOWING SECTIONS IN YOUR PLAN OUTPUT.\nTHIS IS NON-NEGOTIABLE. FAILURE TO INCLUDE THESE SECTIONS = INCOMPLETE PLAN.\n\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\u2588 SECTION 1: TASK DEPENDENCY GRAPH (MANDATORY) \u2588\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\nYOU MUST ANALYZE AND DOCUMENT TASK DEPENDENCIES.\n\nFor EVERY task in your plan, you MUST specify:\n- Which tasks it DEPENDS ON (blockers)\n- Which tasks DEPEND ON IT (dependents)\n- The REASON for each dependency\n\nExample format:\n```\n## Task Dependency Graph\n\n| Task | Depends On | Reason |\n|------|------------|--------|\n| Task 1 | None | Starting point, no prerequisites |\n| Task 2 | Task 1 | Requires output/artifact from Task 1 |\n| Task 3 | Task 1 | Uses same foundation established in Task 1 |\n| Task 4 | Task 2, Task 3 | Integrates results from both tasks |\n```\n\nWHY THIS MATTERS:\n- Executors need to know execution ORDER\n- Prevents blocked work from starting prematurely\n- Identifies critical path for project timeline\n\n\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\u2588 SECTION 2: PARALLEL EXECUTION GRAPH (MANDATORY) \u2588\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\nYOU MUST IDENTIFY WHICH TASKS CAN RUN IN PARALLEL.\n\nAnalyze your dependency graph and group tasks into PARALLEL EXECUTION WAVES:\n\nExample format:\n```\n## Parallel Execution Graph\n\nWave 1 (Start immediately):\n\u251C\u2500\u2500 Task 1: [description] (no dependencies)\n\u2514\u2500\u2500 Task 5: [description] (no dependencies)\n\nWave 2 (After Wave 1 completes):\n\u251C\u2500\u2500 Task 2: [description] (depends: Task 1)\n\u251C\u2500\u2500 Task 3: [description] (depends: Task 1)\n\u2514\u2500\u2500 Task 6: [description] (depends: Task 5)\n\nWave 3 (After Wave 2 completes):\n\u2514\u2500\u2500 Task 4: [description] (depends: Task 2, Task 3)\n\nCritical Path: Task 1 \u2192 Task 2 \u2192 Task 4\nEstimated Parallel Speedup: 40% faster than sequential\n```\n\nWHY THIS MATTERS:\n- MASSIVE time savings through parallelization\n- Executors can dispatch multiple agents simultaneously\n- Identifies bottlenecks in the execution plan\n\n\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\u2588 SECTION 3: CATEGORY + SKILLS RECOMMENDATIONS (MANDATORY) \u2588\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\nFOR EVERY TASK, YOU MUST RECOMMEND:\n1. Which CATEGORY to use for delegation\n2. Which SKILLS to load for the delegated agent\n\n### AVAILABLE CATEGORIES\n\n| Category | Best For | Model |\n|----------|----------|-------|\n| `visual-engineering` | Frontend, UI/UX, design, styling, animation | google/gemini-3-pro |\n| `ultrabrain` | Complex architecture, deep logical reasoning | openai/gpt-5.2-codex |\n| `artistry` | Highly creative/artistic tasks, novel ideas | google/gemini-3-pro |\n| `quick` | Trivial tasks - single file, typo fixes | anthropic/claude-haiku-4-5 |\n| `unspecified-low` | Moderate effort, doesn't fit other categories | anthropic/claude-sonnet-4-5 |\n| `unspecified-high` | High effort, doesn't fit other categories | anthropic/claude-opus-4-5 |\n| `writing` | Documentation, prose, technical writing | google/gemini-3-flash |\n\n### AVAILABLE SKILLS (ALWAYS EVALUATE ALL)\n\nSkills inject specialized expertise into the delegated agent.\nYOU MUST evaluate EVERY skill and justify inclusions/omissions.\n\n| Skill | Domain |\n|-------|--------|\n| `agent-browser` | Browser automation, web testing |\n| `frontend-ui-ux` | Stunning UI/UX design |\n| `git-master` | Atomic commits, git operations |\n| `dev-browser` | Persistent browser state automation |\n| `typescript-programmer` | Production TypeScript code |\n| `python-programmer` | Production Python code |\n| `svelte-programmer` | Svelte components |\n| `golang-tui-programmer` | Go TUI with Charmbracelet |\n| `python-debugger` | Interactive Python debugging |\n| `data-scientist` | DuckDB/Polars data processing |\n| `prompt-engineer` | AI prompt optimization |\n\n### REQUIRED OUTPUT FORMAT\n\nFor EACH task, include a recommendation block:\n\n```\n### Task N: [Task Title]\n\n**Delegation Recommendation:**\n- Category: `[category-name]` - [reason for choice]\n- Skills: [`skill-1`, `skill-2`] - [reason each skill is needed]\n\n**Skills Evaluation:**\n- INCLUDED `skill-name`: [reason]\n- OMITTED `other-skill`: [reason domain doesn't overlap]\n```\n\nWHY THIS MATTERS:\n- Category determines the MODEL used for execution\n- Skills inject SPECIALIZED KNOWLEDGE into the executor\n- Missing a relevant skill = suboptimal execution\n- Wrong category = wrong model = poor results\n\n\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\u2588 RESPONSE FORMAT SPECIFICATION (MANDATORY) \u2588\n\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\n\nYOUR PLAN OUTPUT MUST FOLLOW THIS EXACT STRUCTURE:\n\n```markdown\n# [Plan Title]\n\n## Context\n[User request summary, interview findings, research results]\n\n## Task Dependency Graph\n[Dependency table - see Section 1]\n\n## Parallel Execution Graph \n[Wave structure - see Section 2]\n\n## Tasks\n\n### Task 1: [Title]\n**Description**: [What to do]\n**Delegation Recommendation**:\n- Category: `[category]` - [reason]\n- Skills: [`skill-1`] - [reason]\n**Skills Evaluation**: [\u2705 included / \u274C omitted with reasons]\n**Depends On**: [Task IDs or \"None\"]\n**Acceptance Criteria**: [Verifiable conditions]\n\n### Task 2: [Title]\n[Same structure...]\n\n## Commit Strategy\n[How to commit changes atomically]\n\n## Success Criteria\n[Final verification steps]\n```\n\n#####################################################################\n# #\n# FAILURE TO INCLUDE THESE SECTIONS = PLAN WILL BE REJECTED #\n# BY MOMUS REVIEW. DO NOT SKIP. DO NOT ABBREVIATE. #\n# #\n#####################################################################\n</CRITICAL_REQUIREMENT_DEPENDENCY_PARALLEL_EXECUTION_CATEGORY_SKILLS>\n\n";
|
|
20
|
+
/**
|
|
21
|
+
* List of agent names that should be treated as plan agents.
|
|
22
|
+
* Case-insensitive matching is used.
|
|
23
|
+
*/
|
|
24
|
+
export declare const PLAN_AGENT_NAMES: string[];
|
|
25
|
+
/**
|
|
26
|
+
* Check if the given agent name is a plan agent.
|
|
27
|
+
* @param agentName - The agent name to check
|
|
28
|
+
* @returns true if the agent is a plan agent
|
|
29
|
+
*/
|
|
30
|
+
export declare function isPlanAgent(agentName: string | undefined): boolean;
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { BackgroundManager } from "../../features/background-agent";
|
|
2
|
+
import type { CategoriesConfig, GitMasterConfig, BrowserAutomationProvider } from "../../config/schema";
|
|
3
|
+
import type { ModelFallbackInfo } from "../../features/task-toast-manager/types";
|
|
4
|
+
import type { DelegateTaskArgs, ToolContextWithMetadata, OpencodeClient } from "./types";
|
|
5
|
+
export interface ExecutorContext {
|
|
6
|
+
manager: BackgroundManager;
|
|
7
|
+
client: OpencodeClient;
|
|
8
|
+
directory: string;
|
|
9
|
+
userCategories?: CategoriesConfig;
|
|
10
|
+
gitMasterConfig?: GitMasterConfig;
|
|
11
|
+
sisyphusJuniorModel?: string;
|
|
12
|
+
browserProvider?: BrowserAutomationProvider;
|
|
13
|
+
onSyncSessionCreated?: (event: {
|
|
14
|
+
sessionID: string;
|
|
15
|
+
parentID: string;
|
|
16
|
+
title: string;
|
|
17
|
+
}) => Promise<void>;
|
|
18
|
+
}
|
|
19
|
+
export interface ParentContext {
|
|
20
|
+
sessionID: string;
|
|
21
|
+
messageID: string;
|
|
22
|
+
agent?: string;
|
|
23
|
+
model?: {
|
|
24
|
+
providerID: string;
|
|
25
|
+
modelID: string;
|
|
26
|
+
variant?: string;
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
export declare function resolveSkillContent(skills: string[], options: {
|
|
30
|
+
gitMasterConfig?: GitMasterConfig;
|
|
31
|
+
browserProvider?: BrowserAutomationProvider;
|
|
32
|
+
}): Promise<{
|
|
33
|
+
content: string | undefined;
|
|
34
|
+
error: string | null;
|
|
35
|
+
}>;
|
|
36
|
+
export declare function resolveParentContext(ctx: ToolContextWithMetadata): ParentContext;
|
|
37
|
+
export declare function executeBackgroundContinuation(args: DelegateTaskArgs, ctx: ToolContextWithMetadata, executorCtx: ExecutorContext, parentContext: ParentContext): Promise<string>;
|
|
38
|
+
export declare function executeSyncContinuation(args: DelegateTaskArgs, ctx: ToolContextWithMetadata, executorCtx: ExecutorContext): Promise<string>;
|
|
39
|
+
export declare function executeUnstableAgentTask(args: DelegateTaskArgs, ctx: ToolContextWithMetadata, executorCtx: ExecutorContext, parentContext: ParentContext, agentToUse: string, categoryModel: {
|
|
40
|
+
providerID: string;
|
|
41
|
+
modelID: string;
|
|
42
|
+
variant?: string;
|
|
43
|
+
} | undefined, systemContent: string | undefined, actualModel: string | undefined): Promise<string>;
|
|
44
|
+
export declare function executeBackgroundTask(args: DelegateTaskArgs, ctx: ToolContextWithMetadata, executorCtx: ExecutorContext, parentContext: ParentContext, agentToUse: string, categoryModel: {
|
|
45
|
+
providerID: string;
|
|
46
|
+
modelID: string;
|
|
47
|
+
variant?: string;
|
|
48
|
+
} | undefined, systemContent: string | undefined): Promise<string>;
|
|
49
|
+
export declare function executeSyncTask(args: DelegateTaskArgs, ctx: ToolContextWithMetadata, executorCtx: ExecutorContext, parentContext: ParentContext, agentToUse: string, categoryModel: {
|
|
50
|
+
providerID: string;
|
|
51
|
+
modelID: string;
|
|
52
|
+
variant?: string;
|
|
53
|
+
} | undefined, systemContent: string | undefined, modelInfo?: ModelFallbackInfo): Promise<string>;
|
|
54
|
+
export interface CategoryResolutionResult {
|
|
55
|
+
agentToUse: string;
|
|
56
|
+
categoryModel: {
|
|
57
|
+
providerID: string;
|
|
58
|
+
modelID: string;
|
|
59
|
+
variant?: string;
|
|
60
|
+
} | undefined;
|
|
61
|
+
categoryPromptAppend: string | undefined;
|
|
62
|
+
modelInfo: ModelFallbackInfo | undefined;
|
|
63
|
+
actualModel: string | undefined;
|
|
64
|
+
isUnstableAgent: boolean;
|
|
65
|
+
error?: string;
|
|
66
|
+
}
|
|
67
|
+
export declare function resolveCategoryExecution(args: DelegateTaskArgs, executorCtx: ExecutorContext, inheritedModel: string | undefined, systemDefaultModel: string | undefined): Promise<CategoryResolutionResult>;
|
|
68
|
+
export declare function resolveSubagentExecution(args: DelegateTaskArgs, executorCtx: ExecutorContext, parentAgent: string | undefined, categoryExamples: string): Promise<{
|
|
69
|
+
agentToUse: string;
|
|
70
|
+
categoryModel: {
|
|
71
|
+
providerID: string;
|
|
72
|
+
modelID: string;
|
|
73
|
+
} | undefined;
|
|
74
|
+
error?: string;
|
|
75
|
+
}>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { DelegateTaskArgs } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Parse a model string in "provider/model" format.
|
|
4
|
+
*/
|
|
5
|
+
export declare function parseModelString(model: string): {
|
|
6
|
+
providerID: string;
|
|
7
|
+
modelID: string;
|
|
8
|
+
} | undefined;
|
|
9
|
+
/**
|
|
10
|
+
* Get the message directory for a session, checking both direct and nested paths.
|
|
11
|
+
*/
|
|
12
|
+
export declare function getMessageDir(sessionID: string): string | null;
|
|
13
|
+
/**
|
|
14
|
+
* Format a duration between two dates as a human-readable string.
|
|
15
|
+
*/
|
|
16
|
+
export declare function formatDuration(start: Date, end?: Date): string;
|
|
17
|
+
/**
|
|
18
|
+
* Context for error formatting.
|
|
19
|
+
*/
|
|
20
|
+
export interface ErrorContext {
|
|
21
|
+
operation: string;
|
|
22
|
+
args?: DelegateTaskArgs;
|
|
23
|
+
sessionID?: string;
|
|
24
|
+
agent?: string;
|
|
25
|
+
category?: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Format an error with detailed context for debugging.
|
|
29
|
+
*/
|
|
30
|
+
export declare function formatDetailedError(error: unknown, ctx: ErrorContext): string;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { BuildSystemContentInput } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Build the system content to inject into the agent prompt.
|
|
4
|
+
* Combines skill content, category prompt append, and plan agent system prepend.
|
|
5
|
+
*/
|
|
6
|
+
export declare function buildSystemContent(input: BuildSystemContentInput): string | undefined;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare function getTimingConfig(): {
|
|
2
|
+
POLL_INTERVAL_MS: number;
|
|
3
|
+
MIN_STABILITY_TIME_MS: number;
|
|
4
|
+
STABILITY_POLLS_REQUIRED: number;
|
|
5
|
+
WAIT_FOR_SESSION_INTERVAL_MS: number;
|
|
6
|
+
WAIT_FOR_SESSION_TIMEOUT_MS: number;
|
|
7
|
+
MAX_POLL_TIME_MS: number;
|
|
8
|
+
SESSION_CONTINUATION_STABILITY_MS: number;
|
|
9
|
+
};
|
|
10
|
+
export declare function __resetTimingConfig(): void;
|
|
11
|
+
export declare function __setTimingConfig(overrides: Partial<ReturnType<typeof getTimingConfig>>): void;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type ToolDefinition } from "@opencode-ai/plugin";
|
|
2
|
+
import type { DelegateTaskToolOptions } from "./types";
|
|
3
|
+
export { resolveCategoryConfig } from "./categories";
|
|
4
|
+
export type { SyncSessionCreatedEvent, DelegateTaskToolOptions, BuildSystemContentInput } from "./types";
|
|
5
|
+
export { buildSystemContent } from "./prompt-builder";
|
|
6
|
+
export declare function createDelegateTask(options: DelegateTaskToolOptions): ToolDefinition;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { PluginInput } from "@opencode-ai/plugin";
|
|
2
|
+
import type { BackgroundManager } from "../../features/background-agent";
|
|
3
|
+
import type { CategoriesConfig, GitMasterConfig, BrowserAutomationProvider } from "../../config/schema";
|
|
4
|
+
export type OpencodeClient = PluginInput["client"];
|
|
5
|
+
export interface DelegateTaskArgs {
|
|
6
|
+
description: string;
|
|
7
|
+
prompt: string;
|
|
8
|
+
category?: string;
|
|
9
|
+
subagent_type?: string;
|
|
10
|
+
run_in_background: boolean;
|
|
11
|
+
session_id?: string;
|
|
12
|
+
command?: string;
|
|
13
|
+
load_skills: string[];
|
|
14
|
+
}
|
|
15
|
+
export interface ToolContextWithMetadata {
|
|
16
|
+
sessionID: string;
|
|
17
|
+
messageID: string;
|
|
18
|
+
agent: string;
|
|
19
|
+
abort: AbortSignal;
|
|
20
|
+
metadata?: (input: {
|
|
21
|
+
title?: string;
|
|
22
|
+
metadata?: Record<string, unknown>;
|
|
23
|
+
}) => void;
|
|
24
|
+
}
|
|
25
|
+
export interface SyncSessionCreatedEvent {
|
|
26
|
+
sessionID: string;
|
|
27
|
+
parentID: string;
|
|
28
|
+
title: string;
|
|
29
|
+
}
|
|
30
|
+
export interface DelegateTaskToolOptions {
|
|
31
|
+
manager: BackgroundManager;
|
|
32
|
+
client: OpencodeClient;
|
|
33
|
+
directory: string;
|
|
34
|
+
userCategories?: CategoriesConfig;
|
|
35
|
+
gitMasterConfig?: GitMasterConfig;
|
|
36
|
+
sisyphusJuniorModel?: string;
|
|
37
|
+
browserProvider?: BrowserAutomationProvider;
|
|
38
|
+
onSyncSessionCreated?: (event: SyncSessionCreatedEvent) => Promise<void>;
|
|
39
|
+
}
|
|
40
|
+
export interface BuildSystemContentInput {
|
|
41
|
+
skillContent?: string;
|
|
42
|
+
categoryPromptAppend?: string;
|
|
43
|
+
agentName?: string;
|
|
44
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type GrepBackend } from "./constants";
|
|
2
|
+
import type { GlobOptions, GlobResult } from "./types";
|
|
3
|
+
export interface ResolvedCli {
|
|
4
|
+
path: string;
|
|
5
|
+
backend: GrepBackend;
|
|
6
|
+
}
|
|
7
|
+
declare function buildRgArgs(options: GlobOptions): string[];
|
|
8
|
+
declare function buildFindArgs(options: GlobOptions): string[];
|
|
9
|
+
declare function buildPowerShellCommand(options: GlobOptions): string[];
|
|
10
|
+
export { buildRgArgs, buildFindArgs, buildPowerShellCommand };
|
|
11
|
+
export declare function runRgFiles(options: GlobOptions, resolvedCli?: ResolvedCli): Promise<GlobResult>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { resolveGrepCli, resolveGrepCliWithAutoInstall, type GrepBackend } from "../grep/constants";
|
|
2
|
+
export declare const DEFAULT_TIMEOUT_MS = 60000;
|
|
3
|
+
export declare const DEFAULT_LIMIT = 100;
|
|
4
|
+
export declare const DEFAULT_MAX_DEPTH = 20;
|
|
5
|
+
export declare const DEFAULT_MAX_OUTPUT_BYTES: number;
|
|
6
|
+
export declare const RG_FILES_FLAGS: readonly ["--files", "--color=never", "--glob=!.git/*"];
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface FileMatch {
|
|
2
|
+
path: string;
|
|
3
|
+
mtime: number;
|
|
4
|
+
}
|
|
5
|
+
export interface GlobResult {
|
|
6
|
+
files: FileMatch[];
|
|
7
|
+
totalFiles: number;
|
|
8
|
+
truncated: boolean;
|
|
9
|
+
error?: string;
|
|
10
|
+
}
|
|
11
|
+
export interface GlobOptions {
|
|
12
|
+
pattern: string;
|
|
13
|
+
paths?: string[];
|
|
14
|
+
hidden?: boolean;
|
|
15
|
+
follow?: boolean;
|
|
16
|
+
noIgnore?: boolean;
|
|
17
|
+
maxDepth?: number;
|
|
18
|
+
timeout?: number;
|
|
19
|
+
limit?: number;
|
|
20
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export type GrepBackend = "rg" | "grep";
|
|
2
|
+
interface ResolvedCli {
|
|
3
|
+
path: string;
|
|
4
|
+
backend: GrepBackend;
|
|
5
|
+
}
|
|
6
|
+
export declare function resolveGrepCli(): ResolvedCli;
|
|
7
|
+
export declare function resolveGrepCliWithAutoInstall(): Promise<ResolvedCli>;
|
|
8
|
+
export declare const DEFAULT_MAX_DEPTH = 20;
|
|
9
|
+
export declare const DEFAULT_MAX_FILESIZE = "10M";
|
|
10
|
+
export declare const DEFAULT_MAX_COUNT = 500;
|
|
11
|
+
export declare const DEFAULT_MAX_COLUMNS = 1000;
|
|
12
|
+
export declare const DEFAULT_CONTEXT = 2;
|
|
13
|
+
export declare const DEFAULT_TIMEOUT_MS = 300000;
|
|
14
|
+
export declare const DEFAULT_MAX_OUTPUT_BYTES: number;
|
|
15
|
+
export declare const RG_SAFETY_FLAGS: readonly ["--no-follow", "--color=never", "--no-heading", "--line-number", "--with-filename"];
|
|
16
|
+
export declare const GREP_SAFETY_FLAGS: readonly ["-n", "-H", "--color=never"];
|
|
17
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export interface GrepMatch {
|
|
2
|
+
file: string;
|
|
3
|
+
line: number;
|
|
4
|
+
column?: number;
|
|
5
|
+
text: string;
|
|
6
|
+
}
|
|
7
|
+
export interface GrepResult {
|
|
8
|
+
matches: GrepMatch[];
|
|
9
|
+
totalMatches: number;
|
|
10
|
+
filesSearched: number;
|
|
11
|
+
truncated: boolean;
|
|
12
|
+
error?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface GrepOptions {
|
|
15
|
+
pattern: string;
|
|
16
|
+
paths?: string[];
|
|
17
|
+
globs?: string[];
|
|
18
|
+
excludeGlobs?: string[];
|
|
19
|
+
context?: number;
|
|
20
|
+
maxDepth?: number;
|
|
21
|
+
maxFilesize?: string;
|
|
22
|
+
maxCount?: number;
|
|
23
|
+
maxColumns?: number;
|
|
24
|
+
caseSensitive?: boolean;
|
|
25
|
+
wholeWord?: boolean;
|
|
26
|
+
fixedStrings?: boolean;
|
|
27
|
+
multiline?: boolean;
|
|
28
|
+
hidden?: boolean;
|
|
29
|
+
noIgnore?: boolean;
|
|
30
|
+
fileType?: string[];
|
|
31
|
+
timeout?: number;
|
|
32
|
+
}
|
|
33
|
+
export interface CountResult {
|
|
34
|
+
file: string;
|
|
35
|
+
count: number;
|
|
36
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { lspManager } from "./lsp";
|
|
2
|
+
export { lspManager };
|
|
3
|
+
export { createSlashcommandTool, discoverCommandsSync } from "./slashcommand";
|
|
4
|
+
export { sessionExists } from "./session-manager/storage";
|
|
5
|
+
export { interactive_bash, startBackgroundCheck as startTmuxCheck } from "./interactive-bash";
|
|
6
|
+
export { createSkillTool } from "./skill";
|
|
7
|
+
export { createSkillMcpTool } from "./skill-mcp";
|
|
8
|
+
import type { PluginInput, ToolDefinition } from "@opencode-ai/plugin";
|
|
9
|
+
import type { BackgroundManager } from "../features/background-agent";
|
|
10
|
+
type OpencodeClient = PluginInput["client"];
|
|
11
|
+
export { createCallOmoAgent } from "./call-omo-agent";
|
|
12
|
+
export { createLookAt } from "./look-at";
|
|
13
|
+
export { createDelegateTask } from "./delegate-task";
|
|
14
|
+
export declare function createBackgroundTools(manager: BackgroundManager, client: OpencodeClient): Record<string, ToolDefinition>;
|
|
15
|
+
export declare const builtinTools: Record<string, ToolDefinition>;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export declare const DEFAULT_TIMEOUT_MS = 60000;
|
|
2
|
+
export declare const BLOCKED_TMUX_SUBCOMMANDS: string[];
|
|
3
|
+
export declare const INTERACTIVE_BASH_DESCRIPTION = "WARNING: This is TMUX ONLY. Pass tmux subcommands directly (without 'tmux' prefix).\n\nExamples: new-session -d -s omo-dev, send-keys -t omo-dev \"vim\" Enter\n\nFor TUI apps needing ongoing interaction (vim, htop, pudb). One-shot commands \u2192 use Bash with &.";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type ToolDefinition } from "@opencode-ai/plugin/tool";
|
|
2
|
+
/**
|
|
3
|
+
* Quote-aware command tokenizer with escape handling
|
|
4
|
+
* Handles single/double quotes and backslash escapes without external dependencies
|
|
5
|
+
*/
|
|
6
|
+
export declare function tokenizeCommand(cmd: string): string[];
|
|
7
|
+
export declare const interactive_bash: ToolDefinition;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const MULTIMODAL_LOOKER_AGENT: "multimodal-looker";
|
|
2
|
+
export declare const LOOK_AT_DESCRIPTION = "Analyze media files (PDFs, images, diagrams) that require interpretation beyond raw text. Extracts specific information or summaries from documents, describes visual content. Use when you need analyzed/extracted data rather than literal file contents.";
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type PluginInput, type ToolDefinition } from "@opencode-ai/plugin";
|
|
2
|
+
import type { LookAtArgs } from "./types";
|
|
3
|
+
interface LookAtArgsWithAlias extends LookAtArgs {
|
|
4
|
+
path?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function normalizeArgs(args: LookAtArgsWithAlias): LookAtArgs;
|
|
7
|
+
export declare function validateArgs(args: LookAtArgs): string | null;
|
|
8
|
+
export declare function createLookAt(ctx: PluginInput): ToolDefinition;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { Diagnostic, ResolvedServer } from "./types";
|
|
2
|
+
declare class LSPServerManager {
|
|
3
|
+
private static instance;
|
|
4
|
+
private clients;
|
|
5
|
+
private cleanupInterval;
|
|
6
|
+
private readonly IDLE_TIMEOUT;
|
|
7
|
+
private constructor();
|
|
8
|
+
private registerProcessCleanup;
|
|
9
|
+
static getInstance(): LSPServerManager;
|
|
10
|
+
private getKey;
|
|
11
|
+
private startCleanupTimer;
|
|
12
|
+
private cleanupIdleClients;
|
|
13
|
+
getClient(root: string, server: ResolvedServer): Promise<LSPClient>;
|
|
14
|
+
warmupClient(root: string, server: ResolvedServer): void;
|
|
15
|
+
releaseClient(root: string, serverId: string): void;
|
|
16
|
+
isServerInitializing(root: string, serverId: string): boolean;
|
|
17
|
+
stopAll(): Promise<void>;
|
|
18
|
+
cleanupTempDirectoryClients(): Promise<void>;
|
|
19
|
+
}
|
|
20
|
+
export declare const lspManager: LSPServerManager;
|
|
21
|
+
export declare class LSPClient {
|
|
22
|
+
private root;
|
|
23
|
+
private server;
|
|
24
|
+
private proc;
|
|
25
|
+
private connection;
|
|
26
|
+
private openedFiles;
|
|
27
|
+
private stderrBuffer;
|
|
28
|
+
private processExited;
|
|
29
|
+
private diagnosticsStore;
|
|
30
|
+
private readonly REQUEST_TIMEOUT;
|
|
31
|
+
constructor(root: string, server: ResolvedServer);
|
|
32
|
+
start(): Promise<void>;
|
|
33
|
+
private startStderrReading;
|
|
34
|
+
private sendRequest;
|
|
35
|
+
private sendNotification;
|
|
36
|
+
initialize(): Promise<void>;
|
|
37
|
+
openFile(filePath: string): Promise<void>;
|
|
38
|
+
definition(filePath: string, line: number, character: number): Promise<unknown>;
|
|
39
|
+
references(filePath: string, line: number, character: number, includeDeclaration?: boolean): Promise<unknown>;
|
|
40
|
+
documentSymbols(filePath: string): Promise<unknown>;
|
|
41
|
+
workspaceSymbols(query: string): Promise<unknown>;
|
|
42
|
+
diagnostics(filePath: string): Promise<{
|
|
43
|
+
items: Diagnostic[];
|
|
44
|
+
}>;
|
|
45
|
+
prepareRename(filePath: string, line: number, character: number): Promise<unknown>;
|
|
46
|
+
rename(filePath: string, line: number, character: number, newName: string): Promise<unknown>;
|
|
47
|
+
isAlive(): boolean;
|
|
48
|
+
stop(): Promise<void>;
|
|
49
|
+
}
|
|
50
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ServerLookupResult } from "./types";
|
|
2
|
+
export declare function findServerForExtension(ext: string): ServerLookupResult;
|
|
3
|
+
export declare function getLanguageId(ext: string): string;
|
|
4
|
+
export declare function isServerInstalled(command: string[]): boolean;
|
|
5
|
+
export declare function getAllServers(): Array<{
|
|
6
|
+
id: string;
|
|
7
|
+
installed: boolean;
|
|
8
|
+
extensions: string[];
|
|
9
|
+
disabled: boolean;
|
|
10
|
+
source: string;
|
|
11
|
+
priority: number;
|
|
12
|
+
}>;
|
|
13
|
+
export declare function getConfigPaths_(): {
|
|
14
|
+
project: string;
|
|
15
|
+
user: string;
|
|
16
|
+
opencode: string;
|
|
17
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { LSPServerConfig } from "./types";
|
|
2
|
+
export declare const SYMBOL_KIND_MAP: Record<number, string>;
|
|
3
|
+
export declare const SEVERITY_MAP: Record<number, string>;
|
|
4
|
+
export declare const DEFAULT_MAX_REFERENCES = 200;
|
|
5
|
+
export declare const DEFAULT_MAX_SYMBOLS = 200;
|
|
6
|
+
export declare const DEFAULT_MAX_DIAGNOSTICS = 200;
|
|
7
|
+
export declare const LSP_INSTALL_HINTS: Record<string, string>;
|
|
8
|
+
export declare const BUILTIN_SERVERS: Record<string, Omit<LSPServerConfig, "id">>;
|
|
9
|
+
export declare const EXT_TO_LANG: Record<string, string>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from "./types";
|
|
2
|
+
export * from "./constants";
|
|
3
|
+
export * from "./config";
|
|
4
|
+
export * from "./client";
|
|
5
|
+
export * from "./utils";
|
|
6
|
+
export { lsp_goto_definition, lsp_find_references, lsp_symbols, lsp_diagnostics, lsp_prepare_rename, lsp_rename } from "./tools";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { type ToolDefinition } from "@opencode-ai/plugin/tool";
|
|
2
|
+
export declare const lsp_goto_definition: ToolDefinition;
|
|
3
|
+
export declare const lsp_find_references: ToolDefinition;
|
|
4
|
+
export declare const lsp_symbols: ToolDefinition;
|
|
5
|
+
export declare const lsp_diagnostics: ToolDefinition;
|
|
6
|
+
export declare const lsp_prepare_rename: ToolDefinition;
|
|
7
|
+
export declare const lsp_rename: ToolDefinition;
|