goatcode-sh 0.0.1 → 0.1.3
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/.github/workflows/ci.yml +85 -0
- package/.github/workflows/release.yml +107 -0
- package/.opencode/plugins/goatcode.js +1 -0
- package/AGENTS.md +59 -0
- package/CONTRIBUTING.md +110 -0
- package/LICENSE +21 -0
- package/README.md +106 -12
- package/bun.lock +2081 -0
- package/bunfig.toml +3 -0
- package/dist/agents/advisor/config.d.ts +4 -0
- package/dist/agents/advisor/index.d.ts +2 -0
- package/dist/agents/advisor/plugin.d.ts +1 -0
- package/dist/agents/advisor/prompt-meta.d.ts +2 -0
- package/dist/agents/advisor/prompt.d.ts +1 -0
- package/dist/agents/agent-builder.d.ts +10 -0
- package/dist/agents/agent-registry.d.ts +8 -0
- package/dist/agents/builtin-agents.d.ts +2 -0
- package/dist/agents/deep-worker/config.d.ts +4 -0
- package/dist/agents/deep-worker/index.d.ts +2 -0
- package/dist/agents/deep-worker/plugin.d.ts +1 -0
- package/dist/agents/deep-worker/prompt-meta.d.ts +2 -0
- package/dist/agents/deep-worker/prompt.d.ts +1 -0
- package/dist/agents/explorer/config.d.ts +4 -0
- package/dist/agents/explorer/index.d.ts +2 -0
- package/dist/agents/explorer/plugin.d.ts +1 -0
- package/dist/agents/explorer/prompt-meta.d.ts +2 -0
- package/dist/agents/explorer/prompt.d.ts +1 -0
- package/dist/agents/fallback-chains.d.ts +2 -0
- package/dist/agents/index.d.ts +14 -0
- package/dist/agents/orchestrator/config.d.ts +4 -0
- package/dist/agents/orchestrator/index.d.ts +2 -0
- package/dist/agents/orchestrator/plugin.d.ts +1 -0
- package/dist/agents/orchestrator/prompt-meta.d.ts +2 -0
- package/dist/agents/orchestrator/prompt.d.ts +1 -0
- package/dist/agents/planner/config.d.ts +4 -0
- package/dist/agents/planner/index.d.ts +2 -0
- package/dist/agents/planner/plugin.d.ts +1 -0
- package/dist/agents/planner/prompt-meta.d.ts +2 -0
- package/dist/agents/planner/prompt.d.ts +1 -0
- package/dist/agents/prompt-meta.d.ts +11 -0
- package/dist/agents/prompt-registry.d.ts +4 -0
- package/dist/agents/researcher/config.d.ts +4 -0
- package/dist/agents/researcher/index.d.ts +2 -0
- package/dist/agents/researcher/plugin.d.ts +1 -0
- package/dist/agents/researcher/prompt-meta.d.ts +2 -0
- package/dist/agents/researcher/prompt.d.ts +1 -0
- package/dist/agents/tool-restrictions.d.ts +7 -0
- package/dist/agents/worker/config.d.ts +4 -0
- package/dist/agents/worker/index.d.ts +2 -0
- package/dist/agents/worker/plugin.d.ts +1 -0
- package/dist/agents/worker/prompt-meta.d.ts +2 -0
- package/dist/agents/worker/prompt.d.ts +1 -0
- package/dist/bootstrap.d.ts +3 -0
- package/dist/cli/cli.d.ts +3 -0
- package/dist/cli/commands/install.d.ts +12 -0
- package/dist/cli/commands/update.d.ts +1 -0
- package/dist/cli/config-generator.d.ts +26 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/config/defaults.d.ts +3 -0
- package/dist/config/define-config.d.ts +27 -0
- package/dist/config/index.d.ts +6 -0
- package/dist/config/loader.d.ts +3 -0
- package/dist/config/paths.d.ts +4 -0
- package/dist/config/schema.d.ts +273 -0
- package/dist/config/validator.d.ts +9 -0
- package/dist/features/auto-update/index.d.ts +3 -0
- package/dist/features/auto-update/plugin.d.ts +2 -0
- package/dist/features/auto-update/update-checker.d.ts +7 -0
- package/dist/features/background-agent/concurrency.d.ts +10 -0
- package/dist/features/background-agent/index.d.ts +6 -0
- package/dist/features/background-agent/manager.d.ts +18 -0
- package/dist/features/background-agent/poller.d.ts +17 -0
- package/dist/features/background-agent/singleton.d.ts +7 -0
- package/dist/features/background-agent/spawner.d.ts +6 -0
- package/dist/features/background-agent/types.d.ts +18 -0
- package/dist/features/builtin-features.d.ts +2 -0
- package/dist/features/categories/category-config.d.ts +9 -0
- package/dist/features/categories/category-resolver.d.ts +6 -0
- package/dist/features/categories/index.d.ts +3 -0
- package/dist/features/categories/prompt-appends.d.ts +10 -0
- package/dist/features/loops/file-store.d.ts +22 -0
- package/dist/features/loops/handler.d.ts +9 -0
- package/dist/features/loops/index.d.ts +5 -0
- package/dist/features/loops/memory-store.d.ts +11 -0
- package/dist/features/loops/plugin.d.ts +34 -0
- package/dist/features/loops/shared/event-utils.d.ts +7 -0
- package/dist/features/loops/state.d.ts +22 -0
- package/dist/features/prompt-builder/agent-table-builder.d.ts +6 -0
- package/dist/features/prompt-builder/category-section-builder.d.ts +2 -0
- package/dist/features/prompt-builder/dynamic-prompt-builder.d.ts +9 -0
- package/dist/features/prompt-builder/index.d.ts +7 -0
- package/dist/features/prompt-builder/skill-section-builder.d.ts +5 -0
- package/dist/features/session-state/index.d.ts +5 -0
- package/dist/features/session-state/session-cursor.d.ts +13 -0
- package/dist/features/session-state/session-store.d.ts +12 -0
- package/dist/features/session-state/session-tools-store.d.ts +4 -0
- package/dist/features/skills/builtin/git-master.d.ts +2 -0
- package/dist/features/skills/index.d.ts +10 -0
- package/dist/features/skills/skill-loader.d.ts +22 -0
- package/dist/features/skills/skill-merger.d.ts +2 -0
- package/dist/features/slash-commands/command-registry.d.ts +3 -0
- package/dist/features/slash-commands/commands/cancel-loop.d.ts +2 -0
- package/dist/features/slash-commands/commands/handoff.d.ts +2 -0
- package/dist/features/slash-commands/commands/init-deep.d.ts +2 -0
- package/dist/features/slash-commands/commands/loop.d.ts +2 -0
- package/dist/features/slash-commands/commands/start-work.d.ts +2 -0
- package/dist/features/slash-commands/commands/stop-continuation.d.ts +2 -0
- package/dist/features/slash-commands/index.d.ts +2 -0
- package/dist/features/slash-commands/types.d.ts +5 -0
- package/dist/hooks/anthropic-effort/handler.d.ts +5 -0
- package/dist/hooks/anthropic-effort/index.d.ts +3 -0
- package/dist/hooks/anthropic-effort/plugin.d.ts +1 -0
- package/dist/hooks/builtin-hooks.d.ts +2 -0
- package/dist/hooks/comment-checker/handler.d.ts +5 -0
- package/dist/hooks/comment-checker/index.d.ts +2 -0
- package/dist/hooks/comment-checker/plugin.d.ts +1 -0
- package/dist/hooks/compaction-context/handler.d.ts +2 -0
- package/dist/hooks/compaction-context/index.d.ts +2 -0
- package/dist/hooks/compaction-context/plugin.d.ts +1 -0
- package/dist/hooks/compaction-todo-preserver/handler.d.ts +4 -0
- package/dist/hooks/compaction-todo-preserver/index.d.ts +2 -0
- package/dist/hooks/compaction-todo-preserver/plugin.d.ts +1 -0
- package/dist/hooks/context-injector/handlers/agents.d.ts +1 -0
- package/dist/hooks/context-injector/handlers/readme.d.ts +1 -0
- package/dist/hooks/context-injector/handlers/rules.d.ts +1 -0
- package/dist/hooks/context-injector/index.d.ts +4 -0
- package/dist/hooks/context-injector/plugin.d.ts +1 -0
- package/dist/hooks/context-window-limit/handler.d.ts +6 -0
- package/dist/hooks/context-window-limit/index.d.ts +2 -0
- package/dist/hooks/context-window-limit/plugin.d.ts +1 -0
- package/dist/hooks/delegate-retry/handler.d.ts +16 -0
- package/dist/hooks/delegate-retry/index.d.ts +3 -0
- package/dist/hooks/delegate-retry/plugin.d.ts +1 -0
- package/dist/hooks/edit-error/handler.d.ts +6 -0
- package/dist/hooks/edit-error/index.d.ts +2 -0
- package/dist/hooks/edit-error/plugin.d.ts +1 -0
- package/dist/hooks/empty-response-detector/handler.d.ts +5 -0
- package/dist/hooks/empty-response-detector/index.d.ts +2 -0
- package/dist/hooks/empty-response-detector/plugin.d.ts +1 -0
- package/dist/hooks/error-diagnostics/handler.d.ts +6 -0
- package/dist/hooks/error-diagnostics/patterns.d.ts +3 -0
- package/dist/hooks/error-diagnostics/plugin.d.ts +1 -0
- package/dist/hooks/error-diagnostics/types.d.ts +14 -0
- package/dist/hooks/foreground-fallback/handler.d.ts +22 -0
- package/dist/hooks/foreground-fallback/index.d.ts +2 -0
- package/dist/hooks/foreground-fallback/plugin.d.ts +1 -0
- package/dist/hooks/hashline-diff-enhancer/handler.d.ts +28 -0
- package/dist/hooks/hashline-diff-enhancer/index.d.ts +2 -0
- package/dist/hooks/hashline-diff-enhancer/plugin.d.ts +1 -0
- package/dist/hooks/hashline-read-enhancer/handler.d.ts +4 -0
- package/dist/hooks/hashline-read-enhancer/index.d.ts +2 -0
- package/dist/hooks/hashline-read-enhancer/plugin.d.ts +1 -0
- package/dist/hooks/hook-composer.d.ts +4 -0
- package/dist/hooks/hook-ordering.d.ts +9 -0
- package/dist/hooks/hook-types.d.ts +3 -0
- package/dist/hooks/index.d.ts +6 -0
- package/dist/hooks/json-error/handler.d.ts +6 -0
- package/dist/hooks/json-error/index.d.ts +2 -0
- package/dist/hooks/json-error/plugin.d.ts +1 -0
- package/dist/hooks/keyword-detector/handler.d.ts +8 -0
- package/dist/hooks/keyword-detector/index.d.ts +3 -0
- package/dist/hooks/keyword-detector/plugin.d.ts +1 -0
- package/dist/hooks/model-fallback/handler.d.ts +21 -0
- package/dist/hooks/model-fallback/index.d.ts +2 -0
- package/dist/hooks/model-fallback/plugin.d.ts +1 -0
- package/dist/hooks/phase-reminder/handler.d.ts +5 -0
- package/dist/hooks/phase-reminder/index.d.ts +2 -0
- package/dist/hooks/phase-reminder/plugin.d.ts +1 -0
- package/dist/hooks/post-read-nudge/handler.d.ts +6 -0
- package/dist/hooks/post-read-nudge/index.d.ts +2 -0
- package/dist/hooks/post-read-nudge/plugin.d.ts +1 -0
- package/dist/hooks/preemptive-compaction/handler.d.ts +31 -0
- package/dist/hooks/preemptive-compaction/index.d.ts +2 -0
- package/dist/hooks/preemptive-compaction/plugin.d.ts +1 -0
- package/dist/hooks/runtime-fallback/handler.d.ts +21 -0
- package/dist/hooks/runtime-fallback/index.d.ts +2 -0
- package/dist/hooks/runtime-fallback/plugin.d.ts +1 -0
- package/dist/hooks/safe-hook-wrapper.d.ts +2 -0
- package/dist/hooks/session-recovery/handler.d.ts +6 -0
- package/dist/hooks/session-recovery/index.d.ts +2 -0
- package/dist/hooks/session-recovery/plugin.d.ts +1 -0
- package/dist/hooks/skill-discovery/plugin.d.ts +1 -0
- package/dist/hooks/stop-guard/handler.d.ts +4 -0
- package/dist/hooks/stop-guard/index.d.ts +2 -0
- package/dist/hooks/stop-guard/plugin.d.ts +1 -0
- package/dist/hooks/task-resume-info/handler.d.ts +4 -0
- package/dist/hooks/task-resume-info/index.d.ts +2 -0
- package/dist/hooks/task-resume-info/plugin.d.ts +1 -0
- package/dist/hooks/think-mode/handler.d.ts +4 -0
- package/dist/hooks/think-mode/index.d.ts +2 -0
- package/dist/hooks/think-mode/plugin.d.ts +1 -0
- package/dist/hooks/thinking-block-validator/handler.d.ts +4 -0
- package/dist/hooks/thinking-block-validator/index.d.ts +2 -0
- package/dist/hooks/thinking-block-validator/plugin.d.ts +1 -0
- package/dist/hooks/todo-enforcer/handler.d.ts +4 -0
- package/dist/hooks/todo-enforcer/index.d.ts +2 -0
- package/dist/hooks/todo-enforcer/plugin.d.ts +1 -0
- package/dist/hooks/todowrite-disabler/handler.d.ts +6 -0
- package/dist/hooks/todowrite-disabler/index.d.ts +2 -0
- package/dist/hooks/todowrite-disabler/plugin.d.ts +1 -0
- package/dist/hooks/tool-output-truncator/handler.d.ts +4 -0
- package/dist/hooks/tool-output-truncator/index.d.ts +2 -0
- package/dist/hooks/tool-output-truncator/plugin.d.ts +1 -0
- package/dist/hooks/write-file-guard/handler.d.ts +7 -0
- package/dist/hooks/write-file-guard/index.d.ts +2 -0
- package/dist/hooks/write-file-guard/plugin.d.ts +1 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +8623 -0
- package/dist/plugin/compositor.d.ts +9 -0
- package/dist/plugin/index.d.ts +1 -0
- package/dist/plugin-api/define-plugin.d.ts +33 -0
- package/dist/plugin-api/index.d.ts +3 -0
- package/dist/plugin-api/types.d.ts +10 -0
- package/dist/registry/agent-aggregator.d.ts +3 -0
- package/dist/registry/contribution-aggregator.d.ts +10 -0
- package/dist/registry/dependency-resolver.d.ts +3 -0
- package/dist/registry/hook-aggregator.d.ts +2 -0
- package/dist/registry/index.d.ts +6 -0
- package/dist/registry/plugin-registry.d.ts +16 -0
- package/dist/registry/tool-aggregator.d.ts +3 -0
- package/dist/registry/types.d.ts +9 -0
- package/dist/runtime/index.d.ts +7 -0
- package/dist/shared/data-path.d.ts +4 -0
- package/dist/shared/deep-merge.d.ts +13 -0
- package/dist/shared/fallback-chain.d.ts +1 -0
- package/dist/shared/index.d.ts +19 -0
- package/dist/shared/logger.d.ts +4 -0
- package/dist/shared/model-availability.d.ts +1 -0
- package/dist/shared/model-normalization.d.ts +6 -0
- package/dist/shared/model-prefix-map.d.ts +11 -0
- package/dist/shared/model-resolution-pipeline.d.ts +14 -0
- package/dist/shared/models-dev.d.ts +29 -0
- package/dist/shared/provider-discovery.d.ts +28 -0
- package/dist/shared/provider-registry.d.ts +16 -0
- package/dist/shared/safe-create-hook.d.ts +3 -0
- package/dist/shared/snake-case.d.ts +1 -0
- package/dist/shared/truncate-description.d.ts +1 -0
- package/dist/test-utils/index.d.ts +6 -0
- package/dist/test-utils/mock-agent-config.d.ts +5 -0
- package/dist/test-utils/mock-hook-inputs.d.ts +20 -0
- package/dist/test-utils/mock-hook-outputs.d.ts +20 -0
- package/dist/test-utils/mock-plugin-context.d.ts +6 -0
- package/dist/test-utils/mock-sdk-client.d.ts +41 -0
- package/dist/test-utils/mock-tool-context.d.ts +6 -0
- package/dist/tools/ast-grep/index.d.ts +4 -0
- package/dist/tools/ast-grep/replace/handler.d.ts +7 -0
- package/dist/tools/ast-grep/replace/plugin.d.ts +1 -0
- package/dist/tools/ast-grep/replace/types.d.ts +37 -0
- package/dist/tools/ast-grep/search/handler.d.ts +14 -0
- package/dist/tools/ast-grep/search/plugin.d.ts +1 -0
- package/dist/tools/ast-grep/search/types.d.ts +37 -0
- package/dist/tools/background-task/cancel/handler.d.ts +4 -0
- package/dist/tools/background-task/cancel/plugin.d.ts +2 -0
- package/dist/tools/background-task/cancel/types.d.ts +4 -0
- package/dist/tools/background-task/index.d.ts +2 -0
- package/dist/tools/background-task/output/handler.d.ts +3 -0
- package/dist/tools/background-task/output/plugin.d.ts +2 -0
- package/dist/tools/background-task/output/types.d.ts +11 -0
- package/dist/tools/bridge.d.ts +7 -0
- package/dist/tools/builtin-tools.d.ts +2 -0
- package/dist/tools/delegate-task/category-resolver.d.ts +4 -0
- package/dist/tools/delegate-task/constants.d.ts +3 -0
- package/dist/tools/delegate-task/executor.d.ts +10 -0
- package/dist/tools/delegate-task/handler.d.ts +4 -0
- package/dist/tools/delegate-task/index.d.ts +7 -0
- package/dist/tools/delegate-task/plugin.d.ts +4 -0
- package/dist/tools/delegate-task/types.d.ts +17 -0
- package/dist/tools/glob/handler.d.ts +7 -0
- package/dist/tools/glob/index.d.ts +2 -0
- package/dist/tools/glob/plugin.d.ts +1 -0
- package/dist/tools/glob/types.d.ts +7 -0
- package/dist/tools/grep/handler.d.ts +13 -0
- package/dist/tools/grep/index.d.ts +2 -0
- package/dist/tools/grep/plugin.d.ts +1 -0
- package/dist/tools/grep/types.d.ts +15 -0
- package/dist/tools/hashline-edit/constants.d.ts +4 -0
- package/dist/tools/hashline-edit/edit-operations.d.ts +4 -0
- package/dist/tools/hashline-edit/handler.d.ts +5 -0
- package/dist/tools/hashline-edit/hash-computation.d.ts +2 -0
- package/dist/tools/hashline-edit/index.d.ts +5 -0
- package/dist/tools/hashline-edit/plugin.d.ts +3 -0
- package/dist/tools/hashline-edit/types.d.ts +21 -0
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/look-at/handler.d.ts +6 -0
- package/dist/tools/look-at/index.d.ts +3 -0
- package/dist/tools/look-at/plugin.d.ts +1 -0
- package/dist/tools/look-at/types.d.ts +9 -0
- package/dist/tools/lsp/client.d.ts +7 -0
- package/dist/tools/lsp/diagnostics/handler.d.ts +2 -0
- package/dist/tools/lsp/diagnostics/plugin.d.ts +1 -0
- package/dist/tools/lsp/diagnostics/types.d.ts +13 -0
- package/dist/tools/lsp/find-references/handler.d.ts +2 -0
- package/dist/tools/lsp/find-references/plugin.d.ts +1 -0
- package/dist/tools/lsp/find-references/types.d.ts +8 -0
- package/dist/tools/lsp/goto-definition/handler.d.ts +2 -0
- package/dist/tools/lsp/goto-definition/plugin.d.ts +1 -0
- package/dist/tools/lsp/goto-definition/types.d.ts +7 -0
- package/dist/tools/lsp/index.d.ts +6 -0
- package/dist/tools/lsp/prepare-rename/handler.d.ts +2 -0
- package/dist/tools/lsp/prepare-rename/plugin.d.ts +1 -0
- package/dist/tools/lsp/prepare-rename/types.d.ts +7 -0
- package/dist/tools/lsp/rename/handler.d.ts +2 -0
- package/dist/tools/lsp/rename/plugin.d.ts +1 -0
- package/dist/tools/lsp/rename/types.d.ts +8 -0
- package/dist/tools/lsp/symbols/handler.d.ts +2 -0
- package/dist/tools/lsp/symbols/plugin.d.ts +1 -0
- package/dist/tools/lsp/symbols/types.d.ts +11 -0
- package/dist/tools/session-manager/client-context.d.ts +3 -0
- package/dist/tools/session-manager/index.d.ts +5 -0
- package/dist/tools/session-manager/info/handler.d.ts +3 -0
- package/dist/tools/session-manager/info/plugin.d.ts +1 -0
- package/dist/tools/session-manager/info/types.d.ts +3 -0
- package/dist/tools/session-manager/list/handler.d.ts +3 -0
- package/dist/tools/session-manager/list/plugin.d.ts +1 -0
- package/dist/tools/session-manager/list/types.d.ts +6 -0
- package/dist/tools/session-manager/read/handler.d.ts +3 -0
- package/dist/tools/session-manager/read/plugin.d.ts +1 -0
- package/dist/tools/session-manager/read/types.d.ts +6 -0
- package/dist/tools/session-manager/search/handler.d.ts +3 -0
- package/dist/tools/session-manager/search/plugin.d.ts +1 -0
- package/dist/tools/session-manager/search/types.d.ts +6 -0
- package/dist/tools/session-manager/session-formatter.d.ts +29 -0
- package/dist/tools/session-manager/types.d.ts +36 -0
- package/dist/tools/shared/constants.d.ts +3 -0
- package/dist/tools/skill/handler.d.ts +4 -0
- package/dist/tools/skill/index.d.ts +3 -0
- package/dist/tools/skill/plugin.d.ts +1 -0
- package/dist/tools/skill/types.d.ts +12 -0
- package/dist/tools/skill-mcp/handler.d.ts +5 -0
- package/dist/tools/skill-mcp/index.d.ts +3 -0
- package/dist/tools/skill-mcp/plugin.d.ts +1 -0
- package/dist/tools/skill-mcp/types.d.ts +13 -0
- package/dist/tools/task/create/handler.d.ts +2 -0
- package/dist/tools/task/create/plugin.d.ts +1 -0
- package/dist/tools/task/format-task.d.ts +2 -0
- package/dist/tools/task/get/handler.d.ts +2 -0
- package/dist/tools/task/get/plugin.d.ts +1 -0
- package/dist/tools/task/index.d.ts +4 -0
- package/dist/tools/task/list/handler.d.ts +2 -0
- package/dist/tools/task/list/plugin.d.ts +1 -0
- package/dist/tools/task/storage.d.ts +7 -0
- package/dist/tools/task/types.d.ts +84 -0
- package/dist/tools/task/update/handler.d.ts +2 -0
- package/dist/tools/task/update/plugin.d.ts +1 -0
- package/dist/tools/tool-builder.d.ts +7 -0
- package/dist/tools/tool-registry-adapter.d.ts +3 -0
- package/dist/types/agent.d.ts +40 -0
- package/dist/types/category.d.ts +22 -0
- package/dist/types/config.d.ts +23 -0
- package/dist/types/hook.d.ts +18 -0
- package/dist/types/index.d.ts +12 -0
- package/dist/types/plugin.d.ts +41 -0
- package/dist/types/tool.d.ts +7 -0
- package/eval/README.md +160 -0
- package/eval/ablation-config.yaml +43 -0
- package/eval/assertions/ablation-scorer.ts +81 -0
- package/eval/assertions/hook-impact.ts +152 -0
- package/eval/assertions/task-completion.ts +65 -0
- package/eval/assertions/tool-accuracy.ts +56 -0
- package/eval/promptfooconfig.yaml +42 -0
- package/eval/providers/opencode-baseline.ts +63 -0
- package/eval/providers/opencode-client.ts +112 -0
- package/eval/providers/opencode-provider.ts +66 -0
- package/eval/spike/config.yaml +13 -0
- package/eval/spike/provider.ts +15 -0
- package/npm-reserve/README.md +19 -0
- package/npm-reserve/package.json +24 -0
- package/opencode.json +6 -0
- package/package.json +47 -8
- package/src/agents/advisor/config.ts +6 -0
- package/src/agents/advisor/index.ts +2 -0
- package/src/agents/advisor/plugin.test.ts +48 -0
- package/src/agents/advisor/plugin.ts +17 -0
- package/src/agents/advisor/prompt-meta.ts +14 -0
- package/src/agents/advisor/prompt.ts +93 -0
- package/src/agents/agent-builder.test.ts +66 -0
- package/src/agents/agent-builder.ts +97 -0
- package/src/agents/agent-plugins.test.ts +98 -0
- package/src/agents/agent-registry.ts +25 -0
- package/src/agents/builtin-agents.ts +18 -0
- package/src/agents/deep-worker/config.ts +6 -0
- package/src/agents/deep-worker/index.ts +2 -0
- package/src/agents/deep-worker/plugin.test.ts +31 -0
- package/src/agents/deep-worker/plugin.ts +16 -0
- package/src/agents/deep-worker/prompt-meta.ts +14 -0
- package/src/agents/deep-worker/prompt.ts +121 -0
- package/src/agents/disabled/analyst/config.ts +6 -0
- package/src/agents/disabled/analyst/index.ts +2 -0
- package/src/agents/disabled/analyst/plugin.ts +16 -0
- package/src/agents/disabled/analyst/prompt.ts +1 -0
- package/src/agents/disabled/executor/config.ts +9 -0
- package/src/agents/disabled/executor/index.ts +2 -0
- package/src/agents/disabled/executor/plugin.ts +16 -0
- package/src/agents/disabled/executor/prompt.ts +1 -0
- package/src/agents/disabled/inspector/config.ts +6 -0
- package/src/agents/disabled/inspector/index.ts +2 -0
- package/src/agents/disabled/inspector/plugin.ts +18 -0
- package/src/agents/disabled/inspector/prompt.ts +1 -0
- package/src/agents/disabled/reviewer/config.ts +6 -0
- package/src/agents/disabled/reviewer/index.ts +2 -0
- package/src/agents/disabled/reviewer/plugin.ts +18 -0
- package/src/agents/disabled/reviewer/prompt.ts +1 -0
- package/src/agents/explorer/config.ts +6 -0
- package/src/agents/explorer/index.ts +2 -0
- package/src/agents/explorer/plugin.test.ts +36 -0
- package/src/agents/explorer/plugin.ts +15 -0
- package/src/agents/explorer/prompt-meta.ts +14 -0
- package/src/agents/explorer/prompt.ts +96 -0
- package/src/agents/fallback-chains.ts +13 -0
- package/src/agents/index.ts +18 -0
- package/src/agents/model-resolution.test.ts +79 -0
- package/src/agents/orchestrator/config.ts +10 -0
- package/src/agents/orchestrator/index.ts +2 -0
- package/src/agents/orchestrator/plugin.test.ts +31 -0
- package/src/agents/orchestrator/plugin.ts +16 -0
- package/src/agents/orchestrator/prompt-meta.ts +14 -0
- package/src/agents/orchestrator/prompt.ts +166 -0
- package/src/agents/planner/config.ts +6 -0
- package/src/agents/planner/index.ts +2 -0
- package/src/agents/planner/plugin.test.ts +31 -0
- package/src/agents/planner/plugin.ts +16 -0
- package/src/agents/planner/prompt-meta.ts +14 -0
- package/src/agents/planner/prompt.ts +138 -0
- package/src/agents/prompt-meta.ts +12 -0
- package/src/agents/prompt-registry.test.ts +98 -0
- package/src/agents/prompt-registry.ts +22 -0
- package/src/agents/researcher/config.ts +6 -0
- package/src/agents/researcher/index.ts +2 -0
- package/src/agents/researcher/plugin.test.ts +31 -0
- package/src/agents/researcher/plugin.ts +16 -0
- package/src/agents/researcher/prompt-meta.ts +14 -0
- package/src/agents/researcher/prompt.ts +116 -0
- package/src/agents/tool-restrictions.ts +87 -0
- package/src/agents/worker/config.ts +6 -0
- package/src/agents/worker/index.ts +2 -0
- package/src/agents/worker/plugin.test.ts +31 -0
- package/src/agents/worker/plugin.ts +15 -0
- package/src/agents/worker/prompt-meta.ts +14 -0
- package/src/agents/worker/prompt.ts +83 -0
- package/src/bootstrap.integration.test.ts +168 -0
- package/src/bootstrap.ts +171 -0
- package/src/cli/cli.ts +42 -0
- package/src/cli/commands/install.test.ts +40 -0
- package/src/cli/commands/install.ts +125 -0
- package/src/cli/commands/update.test.ts +84 -0
- package/src/cli/commands/update.ts +45 -0
- package/src/cli/config-generator.test.ts +178 -0
- package/src/cli/config-generator.ts +119 -0
- package/src/cli/index.test.ts +34 -0
- package/src/cli/index.ts +4 -0
- package/src/config/defaults.ts +24 -0
- package/src/config/define-config.ts +38 -0
- package/src/config/index.ts +6 -0
- package/src/config/loader.test.ts +218 -0
- package/src/config/loader.ts +89 -0
- package/src/config/paths.ts +30 -0
- package/src/config/schema.test.ts +69 -0
- package/src/config/schema.ts +57 -0
- package/src/config/validator.ts +24 -0
- package/src/features/auto-update/auto-update.test.ts +105 -0
- package/src/features/auto-update/index.ts +4 -0
- package/src/features/auto-update/plugin.ts +45 -0
- package/src/features/auto-update/update-checker.ts +66 -0
- package/src/features/background-agent/concurrency.test.ts +65 -0
- package/src/features/background-agent/concurrency.ts +44 -0
- package/src/features/background-agent/index.ts +12 -0
- package/src/features/background-agent/manager.ts +214 -0
- package/src/features/background-agent/poller.test.ts +33 -0
- package/src/features/background-agent/poller.ts +75 -0
- package/src/features/background-agent/singleton.ts +26 -0
- package/src/features/background-agent/spawner.ts +51 -0
- package/src/features/background-agent/types.ts +20 -0
- package/src/features/builtin-features.ts +5 -0
- package/src/features/categories/categories.test.ts +68 -0
- package/src/features/categories/category-config.ts +70 -0
- package/src/features/categories/category-resolver.ts +36 -0
- package/src/features/categories/index.ts +8 -0
- package/src/features/categories/prompt-appends.ts +38 -0
- package/src/features/loops/file-store.ts +151 -0
- package/src/features/loops/handler.ts +89 -0
- package/src/features/loops/index.ts +28 -0
- package/src/features/loops/loops.test.ts +175 -0
- package/src/features/loops/memory-store.ts +53 -0
- package/src/features/loops/plugin.ts +107 -0
- package/src/features/loops/shared/event-utils.ts +50 -0
- package/src/features/loops/state.ts +44 -0
- package/src/features/prompt-builder/agent-table-builder.ts +23 -0
- package/src/features/prompt-builder/category-section-builder.ts +21 -0
- package/src/features/prompt-builder/dynamic-prompt-builder.ts +42 -0
- package/src/features/prompt-builder/index.ts +7 -0
- package/src/features/prompt-builder/prompt-builder.test.ts +244 -0
- package/src/features/prompt-builder/skill-section-builder.ts +25 -0
- package/src/features/session-state/index.ts +17 -0
- package/src/features/session-state/session-cursor.test.ts +137 -0
- package/src/features/session-state/session-cursor.ts +80 -0
- package/src/features/session-state/session-store.test.ts +82 -0
- package/src/features/session-state/session-store.ts +37 -0
- package/src/features/session-state/session-tools-store.ts +18 -0
- package/src/features/skills/builtin/git-master.ts +109 -0
- package/src/features/skills/index.ts +97 -0
- package/src/features/skills/skill-loader.ts +133 -0
- package/src/features/skills/skill-merger.ts +15 -0
- package/src/features/skills/skills.test.ts +120 -0
- package/src/features/slash-commands/command-registry.ts +36 -0
- package/src/features/slash-commands/commands/cancel-loop.ts +17 -0
- package/src/features/slash-commands/commands/handoff.ts +59 -0
- package/src/features/slash-commands/commands/init-deep.ts +40 -0
- package/src/features/slash-commands/commands/loop.ts +39 -0
- package/src/features/slash-commands/commands/start-work.ts +39 -0
- package/src/features/slash-commands/commands/stop-continuation.ts +21 -0
- package/src/features/slash-commands/index.ts +2 -0
- package/src/features/slash-commands/slash-commands.test.ts +68 -0
- package/src/features/slash-commands/types.ts +5 -0
- package/src/hooks/anthropic-effort/handler.test.ts +156 -0
- package/src/hooks/anthropic-effort/handler.ts +64 -0
- package/src/hooks/anthropic-effort/index.ts +3 -0
- package/src/hooks/anthropic-effort/plugin.ts +17 -0
- package/src/hooks/builtin-hooks.ts +64 -0
- package/src/hooks/comment-checker/handler.test.ts +65 -0
- package/src/hooks/comment-checker/handler.ts +60 -0
- package/src/hooks/comment-checker/index.ts +2 -0
- package/src/hooks/comment-checker/plugin.ts +15 -0
- package/src/hooks/compaction-context/handler.test.ts +160 -0
- package/src/hooks/compaction-context/handler.ts +179 -0
- package/src/hooks/compaction-context/index.ts +5 -0
- package/src/hooks/compaction-context/plugin.ts +40 -0
- package/src/hooks/compaction-todo-preserver/handler.test.ts +155 -0
- package/src/hooks/compaction-todo-preserver/handler.ts +129 -0
- package/src/hooks/compaction-todo-preserver/index.ts +2 -0
- package/src/hooks/compaction-todo-preserver/plugin.ts +18 -0
- package/src/hooks/context-injection.test.ts +124 -0
- package/src/hooks/context-injector/handlers/agents.test.ts +140 -0
- package/src/hooks/context-injector/handlers/agents.ts +101 -0
- package/src/hooks/context-injector/handlers/readme.ts +55 -0
- package/src/hooks/context-injector/handlers/rules.ts +62 -0
- package/src/hooks/context-injector/index.ts +4 -0
- package/src/hooks/context-injector/plugin.ts +56 -0
- package/src/hooks/context-window-limit/handler.test.ts +103 -0
- package/src/hooks/context-window-limit/handler.ts +128 -0
- package/src/hooks/context-window-limit/index.ts +6 -0
- package/src/hooks/context-window-limit/plugin.ts +15 -0
- package/src/hooks/continuation.test.ts +103 -0
- package/src/hooks/delegate-retry/handler.test.ts +212 -0
- package/src/hooks/delegate-retry/handler.ts +137 -0
- package/src/hooks/delegate-retry/index.ts +8 -0
- package/src/hooks/delegate-retry/plugin.ts +15 -0
- package/src/hooks/edit-error/handler.test.ts +82 -0
- package/src/hooks/edit-error/handler.ts +50 -0
- package/src/hooks/edit-error/index.ts +6 -0
- package/src/hooks/edit-error/plugin.ts +15 -0
- package/src/hooks/empty-response-detector/handler.test.ts +133 -0
- package/src/hooks/empty-response-detector/handler.ts +62 -0
- package/src/hooks/empty-response-detector/index.ts +2 -0
- package/src/hooks/empty-response-detector/plugin.ts +18 -0
- package/src/hooks/error-diagnostics/error-diagnostics.test.ts +116 -0
- package/src/hooks/error-diagnostics/handler.test.ts +147 -0
- package/src/hooks/error-diagnostics/handler.ts +135 -0
- package/src/hooks/error-diagnostics/patterns.ts +93 -0
- package/src/hooks/error-diagnostics/plugin.ts +11 -0
- package/src/hooks/error-diagnostics/types.ts +26 -0
- package/src/hooks/error-recovery.test.ts +85 -0
- package/src/hooks/foreground-fallback/handler.test.ts +229 -0
- package/src/hooks/foreground-fallback/handler.ts +294 -0
- package/src/hooks/foreground-fallback/index.ts +2 -0
- package/src/hooks/foreground-fallback/plugin.ts +18 -0
- package/src/hooks/hashline-diff-enhancer/handler.test.ts +166 -0
- package/src/hooks/hashline-diff-enhancer/handler.ts +186 -0
- package/src/hooks/hashline-diff-enhancer/index.ts +6 -0
- package/src/hooks/hashline-diff-enhancer/plugin.ts +24 -0
- package/src/hooks/hashline-read-enhancer/handler.test.ts +121 -0
- package/src/hooks/hashline-read-enhancer/handler.ts +165 -0
- package/src/hooks/hashline-read-enhancer/index.ts +2 -0
- package/src/hooks/hashline-read-enhancer/plugin.ts +18 -0
- package/src/hooks/hook-composer.test.ts +52 -0
- package/src/hooks/hook-composer.ts +17 -0
- package/src/hooks/hook-composition.integration.test.ts +274 -0
- package/src/hooks/hook-ordering.ts +41 -0
- package/src/hooks/hook-types.ts +22 -0
- package/src/hooks/index.ts +6 -0
- package/src/hooks/json-error/handler.test.ts +95 -0
- package/src/hooks/json-error/handler.ts +82 -0
- package/src/hooks/json-error/index.ts +6 -0
- package/src/hooks/json-error/plugin.ts +15 -0
- package/src/hooks/keyword-detector/handler.test.ts +113 -0
- package/src/hooks/keyword-detector/handler.ts +73 -0
- package/src/hooks/keyword-detector/index.ts +8 -0
- package/src/hooks/keyword-detector/plugin.ts +24 -0
- package/src/hooks/model-fallback/handler.test.ts +163 -0
- package/src/hooks/model-fallback/handler.ts +178 -0
- package/src/hooks/model-fallback/index.ts +2 -0
- package/src/hooks/model-fallback/plugin.ts +11 -0
- package/src/hooks/model-management.test.ts +121 -0
- package/src/hooks/phase-reminder/handler.test.ts +105 -0
- package/src/hooks/phase-reminder/handler.ts +54 -0
- package/src/hooks/phase-reminder/index.ts +2 -0
- package/src/hooks/phase-reminder/plugin.ts +18 -0
- package/src/hooks/post-read-nudge/handler.test.ts +159 -0
- package/src/hooks/post-read-nudge/handler.ts +64 -0
- package/src/hooks/post-read-nudge/index.ts +6 -0
- package/src/hooks/post-read-nudge/plugin.ts +18 -0
- package/src/hooks/preemptive-compaction/handler.test.ts +130 -0
- package/src/hooks/preemptive-compaction/handler.ts +84 -0
- package/src/hooks/preemptive-compaction/index.ts +2 -0
- package/src/hooks/preemptive-compaction/plugin.ts +15 -0
- package/src/hooks/productivity.test.ts +332 -0
- package/src/hooks/quality.test.ts +330 -0
- package/src/hooks/runtime-fallback/handler.test.ts +142 -0
- package/src/hooks/runtime-fallback/handler.ts +171 -0
- package/src/hooks/runtime-fallback/index.ts +2 -0
- package/src/hooks/runtime-fallback/plugin.ts +13 -0
- package/src/hooks/safe-hook-wrapper.test.ts +35 -0
- package/src/hooks/safe-hook-wrapper.ts +12 -0
- package/src/hooks/session-recovery/handler.test.ts +88 -0
- package/src/hooks/session-recovery/handler.ts +87 -0
- package/src/hooks/session-recovery/index.ts +6 -0
- package/src/hooks/session-recovery/plugin.ts +15 -0
- package/src/hooks/skill-discovery/plugin.ts +45 -0
- package/src/hooks/stop-guard/handler.test.ts +147 -0
- package/src/hooks/stop-guard/handler.ts +127 -0
- package/src/hooks/stop-guard/index.ts +2 -0
- package/src/hooks/stop-guard/plugin.ts +15 -0
- package/src/hooks/task-hooks.test.ts +324 -0
- package/src/hooks/task-resume-info/handler.test.ts +180 -0
- package/src/hooks/task-resume-info/handler.ts +61 -0
- package/src/hooks/task-resume-info/index.ts +2 -0
- package/src/hooks/task-resume-info/plugin.ts +15 -0
- package/src/hooks/think-mode/handler.test.ts +139 -0
- package/src/hooks/think-mode/handler.ts +50 -0
- package/src/hooks/think-mode/index.ts +2 -0
- package/src/hooks/think-mode/plugin.ts +15 -0
- package/src/hooks/thinking-block-validator/handler.test.ts +79 -0
- package/src/hooks/thinking-block-validator/handler.ts +93 -0
- package/src/hooks/thinking-block-validator/index.ts +2 -0
- package/src/hooks/thinking-block-validator/plugin.ts +18 -0
- package/src/hooks/todo-enforcer/handler.test.ts +153 -0
- package/src/hooks/todo-enforcer/handler.ts +100 -0
- package/src/hooks/todo-enforcer/index.ts +2 -0
- package/src/hooks/todo-enforcer/plugin.ts +15 -0
- package/src/hooks/todowrite-disabler/handler.test.ts +119 -0
- package/src/hooks/todowrite-disabler/handler.ts +50 -0
- package/src/hooks/todowrite-disabler/index.ts +6 -0
- package/src/hooks/todowrite-disabler/plugin.ts +46 -0
- package/src/hooks/tool-output-truncator/handler.test.ts +113 -0
- package/src/hooks/tool-output-truncator/handler.ts +83 -0
- package/src/hooks/tool-output-truncator/index.ts +2 -0
- package/src/hooks/tool-output-truncator/plugin.ts +18 -0
- package/src/hooks/tool-output.test.ts +238 -0
- package/src/hooks/workflow-reminders.test.ts +187 -0
- package/src/hooks/write-file-guard/handler.test.ts +107 -0
- package/src/hooks/write-file-guard/handler.ts +166 -0
- package/src/hooks/write-file-guard/index.ts +2 -0
- package/src/hooks/write-file-guard/plugin.ts +23 -0
- package/src/index.ts +8 -0
- package/src/plugin/compositor.ts +99 -0
- package/src/plugin/index.ts +1 -0
- package/src/plugin-api/define-plugin.test.ts +66 -0
- package/src/plugin-api/define-plugin.ts +36 -0
- package/src/plugin-api/index.ts +26 -0
- package/src/plugin-api/types.ts +28 -0
- package/src/registry/agent-aggregator.ts +13 -0
- package/src/registry/contribution-aggregator.test.ts +62 -0
- package/src/registry/contribution-aggregator.ts +114 -0
- package/src/registry/contribution-conflicts.integration.test.ts +186 -0
- package/src/registry/dependency-resolver.test.ts +35 -0
- package/src/registry/dependency-resolver.ts +64 -0
- package/src/registry/hook-aggregator.test.ts +78 -0
- package/src/registry/hook-aggregator.ts +63 -0
- package/src/registry/index.ts +6 -0
- package/src/registry/plugin-lifecycle.integration.test.ts +94 -0
- package/src/registry/plugin-overrides.integration.test.ts +140 -0
- package/src/registry/plugin-registry.test.ts +56 -0
- package/src/registry/plugin-registry.ts +82 -0
- package/src/registry/tool-aggregator.ts +13 -0
- package/src/registry/types.ts +11 -0
- package/src/runtime/index.ts +43 -0
- package/src/shared/data-path.ts +18 -0
- package/src/shared/deep-merge.test.ts +36 -0
- package/src/shared/deep-merge.ts +61 -0
- package/src/shared/fallback-chain.ts +8 -0
- package/src/shared/index.ts +59 -0
- package/src/shared/logger.ts +54 -0
- package/src/shared/model-availability.ts +18 -0
- package/src/shared/model-normalization.test.ts +75 -0
- package/src/shared/model-normalization.ts +28 -0
- package/src/shared/model-prefix-map.test.ts +75 -0
- package/src/shared/model-prefix-map.ts +58 -0
- package/src/shared/model-resolution-pipeline.test.ts +111 -0
- package/src/shared/model-resolution-pipeline.ts +55 -0
- package/src/shared/models-dev.test.ts +277 -0
- package/src/shared/models-dev.ts +176 -0
- package/src/shared/provider-discovery.test.ts +97 -0
- package/src/shared/provider-discovery.ts +73 -0
- package/src/shared/provider-registry.test.ts +212 -0
- package/src/shared/provider-registry.ts +157 -0
- package/src/shared/safe-create-hook.ts +15 -0
- package/src/shared/snake-case.ts +7 -0
- package/src/shared/truncate-description.ts +6 -0
- package/src/test-utils/index.ts +6 -0
- package/src/test-utils/mock-agent-config.ts +13 -0
- package/src/test-utils/mock-hook-inputs.ts +148 -0
- package/src/test-utils/mock-hook-outputs.ts +153 -0
- package/src/test-utils/mock-plugin-context.test.ts +32 -0
- package/src/test-utils/mock-plugin-context.ts +21 -0
- package/src/test-utils/mock-sdk-client.ts +52 -0
- package/src/test-utils/mock-tool-context.ts +24 -0
- package/src/tools/ast-grep/index.ts +4 -0
- package/src/tools/ast-grep/replace/handler.test.ts +93 -0
- package/src/tools/ast-grep/replace/handler.ts +89 -0
- package/src/tools/ast-grep/replace/plugin.ts +10 -0
- package/src/tools/ast-grep/replace/types.ts +14 -0
- package/src/tools/ast-grep/search/handler.test.ts +94 -0
- package/src/tools/ast-grep/search/handler.ts +93 -0
- package/src/tools/ast-grep/search/plugin.ts +10 -0
- package/src/tools/ast-grep/search/types.ts +42 -0
- package/src/tools/background-task/background-task.test.ts +185 -0
- package/src/tools/background-task/cancel/handler.test.ts +141 -0
- package/src/tools/background-task/cancel/handler.ts +52 -0
- package/src/tools/background-task/cancel/plugin.ts +30 -0
- package/src/tools/background-task/cancel/types.ts +4 -0
- package/src/tools/background-task/index.ts +2 -0
- package/src/tools/background-task/output/handler.test.ts +142 -0
- package/src/tools/background-task/output/handler.ts +93 -0
- package/src/tools/background-task/output/plugin.ts +60 -0
- package/src/tools/background-task/output/types.ts +11 -0
- package/src/tools/bridge.test.ts +55 -0
- package/src/tools/bridge.ts +13 -0
- package/src/tools/builtin-tools.ts +54 -0
- package/src/tools/code-search.test.ts +203 -0
- package/src/tools/delegate-task/category-resolver.ts +18 -0
- package/src/tools/delegate-task/constants.ts +43 -0
- package/src/tools/delegate-task/delegate-task.test.ts +245 -0
- package/src/tools/delegate-task/executor.ts +157 -0
- package/src/tools/delegate-task/handler.ts +107 -0
- package/src/tools/delegate-task/index.ts +7 -0
- package/src/tools/delegate-task/plugin.ts +30 -0
- package/src/tools/delegate-task/types.ts +19 -0
- package/src/tools/glob/handler.test.ts +80 -0
- package/src/tools/glob/handler.ts +74 -0
- package/src/tools/glob/index.ts +2 -0
- package/src/tools/glob/plugin.ts +10 -0
- package/src/tools/glob/types.ts +14 -0
- package/src/tools/grep/handler.test.ts +79 -0
- package/src/tools/grep/handler.ts +104 -0
- package/src/tools/grep/index.ts +2 -0
- package/src/tools/grep/plugin.ts +10 -0
- package/src/tools/grep/types.ts +28 -0
- package/src/tools/hashline-edit/constants.ts +10 -0
- package/src/tools/hashline-edit/edit-operations.ts +115 -0
- package/src/tools/hashline-edit/handler.test.ts +105 -0
- package/src/tools/hashline-edit/handler.ts +33 -0
- package/src/tools/hashline-edit/hash-computation.ts +20 -0
- package/src/tools/hashline-edit/hashline-edit.test.ts +62 -0
- package/src/tools/hashline-edit/index.ts +5 -0
- package/src/tools/hashline-edit/plugin.ts +28 -0
- package/src/tools/hashline-edit/types.ts +42 -0
- package/src/tools/index.ts +4 -0
- package/src/tools/look-at/handler.test.ts +189 -0
- package/src/tools/look-at/handler.ts +232 -0
- package/src/tools/look-at/index.ts +3 -0
- package/src/tools/look-at/look-at.test.ts +200 -0
- package/src/tools/look-at/plugin.ts +10 -0
- package/src/tools/look-at/types.ts +17 -0
- package/src/tools/lsp/client.ts +145 -0
- package/src/tools/lsp/diagnostics/handler.test.ts +94 -0
- package/src/tools/lsp/diagnostics/handler.ts +39 -0
- package/src/tools/lsp/diagnostics/plugin.ts +10 -0
- package/src/tools/lsp/diagnostics/types.ts +15 -0
- package/src/tools/lsp/find-references/handler.test.ts +79 -0
- package/src/tools/lsp/find-references/handler.ts +38 -0
- package/src/tools/lsp/find-references/plugin.ts +10 -0
- package/src/tools/lsp/find-references/types.ts +10 -0
- package/src/tools/lsp/goto-definition/handler.test.ts +80 -0
- package/src/tools/lsp/goto-definition/handler.ts +38 -0
- package/src/tools/lsp/goto-definition/plugin.ts +10 -0
- package/src/tools/lsp/goto-definition/types.ts +9 -0
- package/src/tools/lsp/index.ts +6 -0
- package/src/tools/lsp/lsp-tools.test.ts +150 -0
- package/src/tools/lsp/prepare-rename/handler.test.ts +81 -0
- package/src/tools/lsp/prepare-rename/handler.ts +34 -0
- package/src/tools/lsp/prepare-rename/plugin.ts +10 -0
- package/src/tools/lsp/prepare-rename/types.ts +9 -0
- package/src/tools/lsp/rename/handler.test.ts +87 -0
- package/src/tools/lsp/rename/handler.ts +34 -0
- package/src/tools/lsp/rename/plugin.ts +10 -0
- package/src/tools/lsp/rename/types.ts +10 -0
- package/src/tools/lsp/symbols/handler.test.ts +108 -0
- package/src/tools/lsp/symbols/handler.ts +43 -0
- package/src/tools/lsp/symbols/plugin.ts +10 -0
- package/src/tools/lsp/symbols/types.ts +13 -0
- package/src/tools/session-manager/client-context.ts +16 -0
- package/src/tools/session-manager/index.ts +5 -0
- package/src/tools/session-manager/info/handler.test.ts +100 -0
- package/src/tools/session-manager/info/handler.ts +27 -0
- package/src/tools/session-manager/info/plugin.ts +40 -0
- package/src/tools/session-manager/info/types.ts +3 -0
- package/src/tools/session-manager/list/handler.test.ts +122 -0
- package/src/tools/session-manager/list/handler.ts +56 -0
- package/src/tools/session-manager/list/plugin.ts +52 -0
- package/src/tools/session-manager/list/types.ts +6 -0
- package/src/tools/session-manager/read/handler.test.ts +114 -0
- package/src/tools/session-manager/read/handler.ts +36 -0
- package/src/tools/session-manager/read/plugin.ts +57 -0
- package/src/tools/session-manager/read/types.ts +6 -0
- package/src/tools/session-manager/search/handler.test.ts +115 -0
- package/src/tools/session-manager/search/handler.ts +72 -0
- package/src/tools/session-manager/search/plugin.ts +57 -0
- package/src/tools/session-manager/search/types.ts +6 -0
- package/src/tools/session-manager/session-formatter.ts +315 -0
- package/src/tools/session-manager/session-manager.test.ts +254 -0
- package/src/tools/session-manager/types.ts +41 -0
- package/src/tools/shared/constants.ts +3 -0
- package/src/tools/skill/handler.test.ts +57 -0
- package/src/tools/skill/handler.ts +27 -0
- package/src/tools/skill/index.ts +3 -0
- package/src/tools/skill/plugin.ts +41 -0
- package/src/tools/skill/types.ts +14 -0
- package/src/tools/skill-mcp/handler.test.ts +68 -0
- package/src/tools/skill-mcp/handler.ts +84 -0
- package/src/tools/skill-mcp/index.ts +3 -0
- package/src/tools/skill-mcp/plugin.ts +37 -0
- package/src/tools/skill-mcp/types.ts +15 -0
- package/src/tools/skill-tools.test.ts +172 -0
- package/src/tools/task/create/handler.test.ts +64 -0
- package/src/tools/task/create/handler.ts +43 -0
- package/src/tools/task/create/plugin.ts +10 -0
- package/src/tools/task/format-task.test.ts +37 -0
- package/src/tools/task/format-task.ts +19 -0
- package/src/tools/task/get/handler.test.ts +76 -0
- package/src/tools/task/get/handler.ts +35 -0
- package/src/tools/task/get/plugin.ts +10 -0
- package/src/tools/task/index.ts +4 -0
- package/src/tools/task/list/handler.test.ts +70 -0
- package/src/tools/task/list/handler.ts +48 -0
- package/src/tools/task/list/plugin.ts +10 -0
- package/src/tools/task/storage.ts +14 -0
- package/src/tools/task/task.test.ts +165 -0
- package/src/tools/task/types.ts +51 -0
- package/src/tools/task/update/handler.test.ts +86 -0
- package/src/tools/task/update/handler.ts +54 -0
- package/src/tools/task/update/plugin.ts +10 -0
- package/src/tools/tool-builder.test.ts +32 -0
- package/src/tools/tool-builder.ts +24 -0
- package/src/tools/tool-registry-adapter.test.ts +51 -0
- package/src/tools/tool-registry-adapter.ts +19 -0
- package/src/types/agent.ts +53 -0
- package/src/types/category.ts +32 -0
- package/src/types/config.ts +26 -0
- package/src/types/hook.ts +44 -0
- package/src/types/index.ts +12 -0
- package/src/types/plugin.ts +47 -0
- package/src/types/tool.ts +10 -0
- package/test-setup.ts +8 -0
- package/tsconfig.json +20 -0
- /package/{index.js → npm-reserve/index.js} +0 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Hooks } from "@opencode-ai/plugin";
|
|
2
|
+
import type { AggregatedPlugins } from "../types/plugin";
|
|
3
|
+
/**
|
|
4
|
+
* Compose aggregated plugin contributions into a complete OpenCode Hooks instance.
|
|
5
|
+
* Produces all handler slots (1 tool record + function hooks).
|
|
6
|
+
* The `config` slot injects agents before delegating to registered hooks.
|
|
7
|
+
* Slots without registered handlers are defined as no-ops.
|
|
8
|
+
*/
|
|
9
|
+
export declare function compose(aggregated: AggregatedPlugins): Hooks;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { compose } from "./compositor";
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { PluginDefinition } from "../types/plugin";
|
|
2
|
+
/**
|
|
3
|
+
* Define a GoatCode micro-plugin.
|
|
4
|
+
*
|
|
5
|
+
* This is the primary authoring API for creating plugins.
|
|
6
|
+
* Both internal GoatCode plugins and external plugins use this function.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* import { definePlugin } from "goatcode-sh"
|
|
11
|
+
*
|
|
12
|
+
* export default definePlugin({
|
|
13
|
+
* name: "my-plugin",
|
|
14
|
+
* version: "1.0.0",
|
|
15
|
+
* hooks: {
|
|
16
|
+
* "tool.execute.before": async (input, output) => {
|
|
17
|
+
* // called before every tool execution
|
|
18
|
+
* },
|
|
19
|
+
* },
|
|
20
|
+
* tools: {
|
|
21
|
+
* my_tool: {
|
|
22
|
+
* description: "Does something useful",
|
|
23
|
+
* parameters: { type: "object", properties: {} },
|
|
24
|
+
* execute: async (args) => "result",
|
|
25
|
+
* },
|
|
26
|
+
* },
|
|
27
|
+
* })
|
|
28
|
+
* ```
|
|
29
|
+
*
|
|
30
|
+
* @param definition - The plugin definition object
|
|
31
|
+
* @returns The definition unchanged (typed identity function for IDE autocomplete)
|
|
32
|
+
*/
|
|
33
|
+
export declare function definePlugin(definition: PluginDefinition): PluginDefinition;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { definePlugin } from "./define-plugin";
|
|
2
|
+
export type { PluginDefinition, AggregatedPlugins, OpenCodeContext, OpenCodePluginInstance, PluginHookHandler, PluginHookContributions, AgentConfig, AgentMode, AgentFactory, BuiltinAgentName, AgentOverrideConfig, ToolDefinition, ToolsRecord, HookEventName, HookHandler, HookPriority, BuiltinCategoryName, CategoryConfig, AvailableCategory, GoatCodeConfig, AgentOverrides, HookName, } from "./types";
|
|
3
|
+
export { HOOK_EVENT_NAMES, HOOK_EVENT_NAMES as HOOK_NAMES } from "./types";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export type { PluginDefinition, AggregatedPlugins, OpenCodeContext, OpenCodePluginInstance, PluginHookHandler, } from "../types/plugin";
|
|
2
|
+
export type { PluginHookContributions } from "../types/hook";
|
|
3
|
+
export type { AgentConfig, AgentMode, AgentFactory, BuiltinAgentName, AgentOverrideConfig, } from "../types/agent";
|
|
4
|
+
export type { ToolDefinition, ToolsRecord } from "../types/tool";
|
|
5
|
+
export type { HookEventName, HookHandler, HookPriority } from "../types/hook";
|
|
6
|
+
export { HOOK_EVENT_NAMES } from "../types/hook";
|
|
7
|
+
export { HOOK_EVENT_NAMES as HOOK_NAMES } from "../types/hook";
|
|
8
|
+
export type HookName = import("../types/hook").HookEventName;
|
|
9
|
+
export type { BuiltinCategoryName, CategoryConfig, AvailableCategory } from "../types/category";
|
|
10
|
+
export type { GoatCodeConfig, AgentOverrides } from "../types/config";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { PluginDefinition } from "../types/plugin";
|
|
2
|
+
type ContributionKey = "agents" | "tools" | "hooks";
|
|
3
|
+
type ConflictMode = "replace" | "append";
|
|
4
|
+
type AggregateResult<K extends ContributionKey, T> = K extends "hooks" ? Map<string, T[]> : Record<string, T>;
|
|
5
|
+
interface AggregateOptions {
|
|
6
|
+
disabled?: string[];
|
|
7
|
+
onConflict: ConflictMode;
|
|
8
|
+
}
|
|
9
|
+
export declare function aggregateContributions<K extends ContributionKey, T>(plugins: PluginDefinition[], key: K, options: AggregateOptions): AggregateResult<K, T>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { aggregateAgents } from "./agent-aggregator";
|
|
2
|
+
export { resolvePluginOrder } from "./dependency-resolver";
|
|
3
|
+
export { aggregateHooks } from "./hook-aggregator";
|
|
4
|
+
export { PluginRegistry } from "./plugin-registry";
|
|
5
|
+
export { aggregateTools } from "./tool-aggregator";
|
|
6
|
+
export type { ResolutionResult, ResolvedPlugin } from "./types";
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { AggregatedPlugins, OpenCodeContext, PluginDefinition } from "../types/plugin";
|
|
2
|
+
export interface AggregateOptions {
|
|
3
|
+
disabledAgents?: string[];
|
|
4
|
+
disabledHooks?: string[];
|
|
5
|
+
disabledTools?: string[];
|
|
6
|
+
}
|
|
7
|
+
export declare class PluginRegistry {
|
|
8
|
+
private readonly plugins;
|
|
9
|
+
register(plugin: PluginDefinition): void;
|
|
10
|
+
resolve(): PluginDefinition[];
|
|
11
|
+
aggregate(resolvedOrder: PluginDefinition[], options?: AggregateOptions): AggregatedPlugins;
|
|
12
|
+
setup(resolvedOrder: PluginDefinition[], ctx: OpenCodeContext): Promise<PluginDefinition[]>;
|
|
13
|
+
teardown(resolvedOrder: PluginDefinition[]): Promise<void>;
|
|
14
|
+
get registeredNames(): string[];
|
|
15
|
+
get size(): number;
|
|
16
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { POLLING_INTERVAL_MS, STABILITY_REQUIRED_POLLS, createPollState, checkStability, pollUntilStable, initBackgroundAgent, getBackgroundAgent, resetBackgroundAgent, BackgroundAgentManager, } from "../features/background-agent";
|
|
2
|
+
export type { BackgroundTask, BackgroundTaskStatus, LaunchInput, } from "../features/background-agent";
|
|
3
|
+
export type { PollState, PollSnapshot } from "../features/background-agent/poller";
|
|
4
|
+
export { setSessionState, getSessionState, deleteSessionState, clearSessionStore, consumeNewMessages, resetMessageCursor, setSessionTools, getSessionTools, deleteSessionTools, clearSessionTools, } from "../features/session-state";
|
|
5
|
+
export type { SessionState, CursorMessage } from "../features/session-state";
|
|
6
|
+
export { DEFAULT_CATEGORIES, DEFAULT_CATEGORY_DEFINITIONS, CategoryResolver, resolveCategory, CATEGORY_PROMPT_APPENDS, } from "../features/categories";
|
|
7
|
+
export type { CategoryDefinition, CategoryName, CategoryOverrides } from "../features/categories";
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare function isPlainObject(value: unknown): value is Record<string, unknown>;
|
|
2
|
+
/**
|
|
3
|
+
* Deep merges two objects, with override values taking precedence.
|
|
4
|
+
* - Objects are recursively merged
|
|
5
|
+
* - Arrays are replaced (not concatenated)
|
|
6
|
+
* - undefined values in override do not overwrite base values
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* deepMerge({ a: 1, b: { c: 2, d: 3 } }, { b: { c: 10 }, e: 5 })
|
|
10
|
+
* // => { a: 1, b: { c: 10, d: 3 }, e: 5 }
|
|
11
|
+
*/
|
|
12
|
+
export declare function deepMerge<T extends Record<string, unknown>>(base: T, override: Partial<T>, depth?: number): T;
|
|
13
|
+
export declare function deepMerge<T extends Record<string, unknown>>(base: T | undefined, override: T | undefined, depth?: number): T | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function buildFallbackChain(configFallbacks: string | string[] | undefined, defaultChain: string[]): string[];
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export { log, getLogFilePath } from "./logger";
|
|
2
|
+
export { deepMerge, isPlainObject } from "./deep-merge";
|
|
3
|
+
export { toSnakeCase } from "./snake-case";
|
|
4
|
+
export { truncateDescription } from "./truncate-description";
|
|
5
|
+
export { getDataDir, getCacheDir, getOpenCodeStorageDir, getGoatCodeCacheDir } from "./data-path";
|
|
6
|
+
export { safeCreateHook } from "./safe-create-hook";
|
|
7
|
+
export { normalizeModel, parseModelId, normalizeAndQualifyModel } from "./model-normalization";
|
|
8
|
+
export { isModelAvailable } from "./model-availability";
|
|
9
|
+
export { buildFallbackChain } from "./fallback-chain";
|
|
10
|
+
export { resolveModel } from "./model-resolution-pipeline";
|
|
11
|
+
export type { ModelResolutionInput, ModelResolutionSource, ModelResolutionResult, } from "./model-resolution-pipeline";
|
|
12
|
+
export { toPlatformModel, toCanonicalModel, registerPlatformMappings, getKnownPlatforms, } from "./model-prefix-map";
|
|
13
|
+
export type { PlatformId, BuiltinPlatformId } from "./model-prefix-map";
|
|
14
|
+
export { resolveProvider, qualifyModel, isQualifiedModel, findProvidersForModel, setProviderPriority, getProviderPriority, setDefaultPreferredProvider, getDefaultPreferredProvider, registerProviderModelMap, unregisterProviderModelMap, resetProviderRegistry, } from "./provider-registry";
|
|
15
|
+
export type { ProviderResolutionResult } from "./provider-registry";
|
|
16
|
+
export { buildDiscoveryIndex, initializeDiscovery, getDiscovery, resetDiscovery, } from "./provider-discovery";
|
|
17
|
+
export type { ProviderListResponse, ProviderModelEntry, DiscoveryResult, } from "./provider-discovery";
|
|
18
|
+
export { buildModelsDevIndex, fetchModelsDevData, resolveWithModelsDevData, createModelsDevCache, } from "./models-dev";
|
|
19
|
+
export type { ModelsDevModel, ModelsDevProvider, ModelsDevIndex, ModelsDevCache, } from "./models-dev";
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function isModelAvailable(model: string, availableModels: Set<string>): boolean;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export declare function normalizeModel(model: string | undefined): string | undefined;
|
|
2
|
+
export declare function parseModelId(model: string): {
|
|
3
|
+
provider: string;
|
|
4
|
+
modelId: string;
|
|
5
|
+
} | undefined;
|
|
6
|
+
export declare function normalizeAndQualifyModel(model: string | undefined, preferredProvider?: string): string | undefined;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export type BuiltinPlatformId = "direct" | "zen";
|
|
2
|
+
export type PlatformId = BuiltinPlatformId | (string & {});
|
|
3
|
+
type PrefixMapping = {
|
|
4
|
+
canonical: string;
|
|
5
|
+
platform: string;
|
|
6
|
+
};
|
|
7
|
+
export declare function toPlatformModel(canonicalModel: string, platform: PlatformId): string;
|
|
8
|
+
export declare function toCanonicalModel(platformModel: string, platform: PlatformId): string;
|
|
9
|
+
export declare function registerPlatformMappings(platform: string, mappings: PrefixMapping[]): void;
|
|
10
|
+
export declare function getKnownPlatforms(): string[];
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type ModelResolutionInput = {
|
|
2
|
+
override?: string;
|
|
3
|
+
categoryDefault?: string;
|
|
4
|
+
fallbackChain?: string[];
|
|
5
|
+
systemDefault?: string;
|
|
6
|
+
availableModels?: Set<string>;
|
|
7
|
+
preferredProvider?: string;
|
|
8
|
+
};
|
|
9
|
+
export type ModelResolutionSource = "override" | "category-default" | "fallback" | "system-default";
|
|
10
|
+
export type ModelResolutionResult = {
|
|
11
|
+
model: string;
|
|
12
|
+
source: ModelResolutionSource;
|
|
13
|
+
};
|
|
14
|
+
export declare function resolveModel(input: ModelResolutionInput): ModelResolutionResult | undefined;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export type ModelsDevModel = {
|
|
2
|
+
id: string;
|
|
3
|
+
name: string;
|
|
4
|
+
family?: string;
|
|
5
|
+
provider?: {
|
|
6
|
+
npm: string;
|
|
7
|
+
};
|
|
8
|
+
[key: string]: unknown;
|
|
9
|
+
};
|
|
10
|
+
export type ModelsDevProvider = {
|
|
11
|
+
id: string;
|
|
12
|
+
name: string;
|
|
13
|
+
npm?: string;
|
|
14
|
+
models: Record<string, ModelsDevModel>;
|
|
15
|
+
[key: string]: unknown;
|
|
16
|
+
};
|
|
17
|
+
export type ModelsDevIndex = {
|
|
18
|
+
byPlatformModel: Map<string, string>;
|
|
19
|
+
byCanonical: Map<string, Set<string>>;
|
|
20
|
+
providers: Map<string, ModelsDevProvider>;
|
|
21
|
+
};
|
|
22
|
+
export type ModelsDevCache = {
|
|
23
|
+
get: () => Promise<ModelsDevIndex>;
|
|
24
|
+
clear: () => void;
|
|
25
|
+
};
|
|
26
|
+
export declare function buildModelsDevIndex(data: Record<string, ModelsDevProvider>): ModelsDevIndex;
|
|
27
|
+
export declare function fetchModelsDevData(): Promise<ModelsDevIndex>;
|
|
28
|
+
export declare function resolveWithModelsDevData(platformModelId: string, index: ModelsDevIndex): string | undefined;
|
|
29
|
+
export declare function createModelsDevCache(ttlMs?: number, fetchFn?: () => Promise<ModelsDevIndex>): ModelsDevCache;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export type ProviderListResponse = {
|
|
2
|
+
readonly all: readonly {
|
|
3
|
+
readonly id: string;
|
|
4
|
+
readonly name: string;
|
|
5
|
+
readonly env: readonly string[];
|
|
6
|
+
readonly npm?: string;
|
|
7
|
+
readonly api?: string;
|
|
8
|
+
readonly models: Record<string, {
|
|
9
|
+
readonly id: string;
|
|
10
|
+
readonly name: string;
|
|
11
|
+
}>;
|
|
12
|
+
}[];
|
|
13
|
+
readonly default: Record<string, string>;
|
|
14
|
+
readonly connected: readonly string[];
|
|
15
|
+
};
|
|
16
|
+
export type ProviderModelEntry = {
|
|
17
|
+
readonly providerId: string;
|
|
18
|
+
readonly modelId: string;
|
|
19
|
+
};
|
|
20
|
+
export type DiscoveryResult = {
|
|
21
|
+
readonly connectedProviders: ReadonlySet<string>;
|
|
22
|
+
readonly modelIndex: ReadonlyMap<string, ProviderModelEntry[]>;
|
|
23
|
+
readonly providerModels: ReadonlyMap<string, ReadonlySet<string>>;
|
|
24
|
+
};
|
|
25
|
+
export declare function buildDiscoveryIndex(response: ProviderListResponse): DiscoveryResult;
|
|
26
|
+
export declare function initializeDiscovery(result: DiscoveryResult): void;
|
|
27
|
+
export declare function getDiscovery(): DiscoveryResult | undefined;
|
|
28
|
+
export declare function resetDiscovery(): void;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { type ProviderModelEntry } from "./provider-discovery";
|
|
2
|
+
export interface ProviderResolutionResult {
|
|
3
|
+
readonly qualifiedModel: string;
|
|
4
|
+
readonly providerId: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function setProviderPriority(priority: string[]): void;
|
|
7
|
+
export declare function getProviderPriority(): readonly string[];
|
|
8
|
+
export declare function setDefaultPreferredProvider(provider: string | undefined): void;
|
|
9
|
+
export declare function getDefaultPreferredProvider(): string | undefined;
|
|
10
|
+
export declare function registerProviderModelMap(providerId: string, modelMap: Record<string, string>): void;
|
|
11
|
+
export declare function unregisterProviderModelMap(providerId: string): boolean;
|
|
12
|
+
export declare function isQualifiedModel(model: string): boolean;
|
|
13
|
+
export declare function resetProviderRegistry(): void;
|
|
14
|
+
export declare function findProvidersForModel(bareModel: string): ProviderModelEntry[];
|
|
15
|
+
export declare function resolveProvider(model: string, preferredProvider?: string): ProviderResolutionResult | undefined;
|
|
16
|
+
export declare function qualifyModel(model: string, preferredProvider?: string): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function toSnakeCase(str: string): string;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function truncateDescription(text: string, maxLength?: number): string;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { createMockPluginContext } from "./mock-plugin-context";
|
|
2
|
+
export { createMockAgentConfig } from "./mock-agent-config";
|
|
3
|
+
export * from "./mock-hook-inputs";
|
|
4
|
+
export * from "./mock-hook-outputs";
|
|
5
|
+
export { createMockToolContext } from "./mock-tool-context";
|
|
6
|
+
export { createMockSdkClient } from "./mock-sdk-client";
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mock factory functions for all 16 hook event input shapes.
|
|
3
|
+
* Each factory: `make{EventName}Input(overrides?)` returning the typed input object.
|
|
4
|
+
*/
|
|
5
|
+
export declare function makeToolInput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
6
|
+
export declare function makeConfigInput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
7
|
+
export declare function makeChatMessageInput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
8
|
+
export declare function makeChatParamsInput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
9
|
+
export declare function makeChatHeadersInput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
10
|
+
export declare function makeEventInput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
11
|
+
export declare function makeToolExecuteBeforeInput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
12
|
+
export declare function makeToolExecuteAfterInput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
13
|
+
export declare function makeExperimentalChatMessagesTransformInput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
14
|
+
export declare function makeExperimentalChatSystemTransformInput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
15
|
+
export declare function makeToolDefinitionInput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
16
|
+
export declare function makePermissionAskInput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
17
|
+
export declare function makeCommandExecuteBeforeInput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
18
|
+
export declare function makeShellEnvInput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
19
|
+
export declare function makeExperimentalSessionCompactingInput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
20
|
+
export declare function makeExperimentalTextCompleteInput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mock factory functions for all 16 hook event output shapes.
|
|
3
|
+
* Outputs are mutable objects that hooks modify in-place.
|
|
4
|
+
*/
|
|
5
|
+
export declare function makeToolOutput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
6
|
+
export declare function makeConfigOutput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
7
|
+
export declare function makeChatMessageOutput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
8
|
+
export declare function makeChatParamsOutput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
9
|
+
export declare function makeChatHeadersOutput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
10
|
+
export declare function makeEventOutput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
11
|
+
export declare function makeToolExecuteBeforeOutput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
12
|
+
export declare function makeToolExecuteAfterOutput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
13
|
+
export declare function makeExperimentalChatMessagesTransformOutput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
14
|
+
export declare function makeExperimentalChatSystemTransformOutput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
15
|
+
export declare function makeToolDefinitionOutput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
16
|
+
export declare function makePermissionAskOutput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
17
|
+
export declare function makeCommandExecuteBeforeOutput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
18
|
+
export declare function makeShellEnvOutput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
19
|
+
export declare function makeExperimentalSessionCompactingOutput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
20
|
+
export declare function makeExperimentalTextCompleteOutput(overrides?: Record<string, unknown>): Record<string, unknown>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { OpenCodeContext } from "../types/plugin";
|
|
2
|
+
/**
|
|
3
|
+
* Create a minimal mock OpenCodeContext for unit testing.
|
|
4
|
+
* Provides sensible no-op defaults for all required fields.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createMockPluginContext(overrides?: Partial<OpenCodeContext>): OpenCodeContext;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Create a minimal mock SDK client for unit testing.
|
|
3
|
+
* Provides mock methods for all client operations.
|
|
4
|
+
*/
|
|
5
|
+
export declare function createMockSdkClient(overrides?: Record<string, unknown>): {
|
|
6
|
+
session: {
|
|
7
|
+
create: import("bun:test").Mock<() => Promise<{
|
|
8
|
+
data: {
|
|
9
|
+
id: string;
|
|
10
|
+
};
|
|
11
|
+
error: undefined;
|
|
12
|
+
}>>;
|
|
13
|
+
promptAsync: import("bun:test").Mock<() => Promise<{
|
|
14
|
+
data: {};
|
|
15
|
+
error: undefined;
|
|
16
|
+
}>>;
|
|
17
|
+
status: import("bun:test").Mock<() => Promise<{
|
|
18
|
+
data: {
|
|
19
|
+
"sync-session-123": {
|
|
20
|
+
type: string;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
}>>;
|
|
24
|
+
messages: import("bun:test").Mock<() => Promise<{
|
|
25
|
+
data: {
|
|
26
|
+
role: string;
|
|
27
|
+
content: string;
|
|
28
|
+
}[];
|
|
29
|
+
}>>;
|
|
30
|
+
delete: import("bun:test").Mock<() => Promise<{}>>;
|
|
31
|
+
};
|
|
32
|
+
getProviders: import("bun:test").Mock<() => Promise<never[]>>;
|
|
33
|
+
getModels: import("bun:test").Mock<() => Promise<never[]>>;
|
|
34
|
+
getSession: import("bun:test").Mock<() => Promise<null>>;
|
|
35
|
+
listSessions: import("bun:test").Mock<() => Promise<never[]>>;
|
|
36
|
+
createSession: import("bun:test").Mock<() => Promise<{
|
|
37
|
+
id: string;
|
|
38
|
+
title: string;
|
|
39
|
+
}>>;
|
|
40
|
+
sendMessage: import("bun:test").Mock<() => Promise<{}>>;
|
|
41
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { ToolDefinition } from "@opencode-ai/plugin";
|
|
2
|
+
/**
|
|
3
|
+
* Create a minimal mock tool context for unit testing.
|
|
4
|
+
* Provides sensible defaults for all required context fields.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createMockToolContext(overrides?: Partial<Parameters<ToolDefinition["execute"]>[1]>): Parameters<ToolDefinition["execute"]>[1];
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { astGrepSearchPlugin } from "./search/plugin";
|
|
2
|
+
export { astGrepReplacePlugin } from "./replace/plugin";
|
|
3
|
+
export { createAstGrepSearchTool, executeAstGrepSearch } from "./search/handler";
|
|
4
|
+
export { createAstGrepReplaceTool, executeAstGrepReplace } from "./replace/handler";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ToolDefinition } from "@opencode-ai/plugin";
|
|
2
|
+
import type { CommandRunner } from "../search/handler";
|
|
3
|
+
import type { AstGrepReplaceArgs, AstGrepReplaceOutput } from "./types";
|
|
4
|
+
export declare function executeAstGrepReplace(args: AstGrepReplaceArgs, context: {
|
|
5
|
+
directory: string;
|
|
6
|
+
}, runner?: CommandRunner): Promise<AstGrepReplaceOutput>;
|
|
7
|
+
export declare function createAstGrepReplaceTool(runner?: CommandRunner): ToolDefinition;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const astGrepReplacePlugin: import("../../../plugin-api").PluginDefinition;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const astGrepReplaceArgsSchema: {
|
|
3
|
+
pattern: z.ZodString;
|
|
4
|
+
rewrite: z.ZodString;
|
|
5
|
+
lang: z.ZodEnum<{
|
|
6
|
+
bash: "bash";
|
|
7
|
+
json: "json";
|
|
8
|
+
c: "c";
|
|
9
|
+
cpp: "cpp";
|
|
10
|
+
csharp: "csharp";
|
|
11
|
+
css: "css";
|
|
12
|
+
elixir: "elixir";
|
|
13
|
+
go: "go";
|
|
14
|
+
haskell: "haskell";
|
|
15
|
+
html: "html";
|
|
16
|
+
java: "java";
|
|
17
|
+
javascript: "javascript";
|
|
18
|
+
kotlin: "kotlin";
|
|
19
|
+
lua: "lua";
|
|
20
|
+
nix: "nix";
|
|
21
|
+
php: "php";
|
|
22
|
+
python: "python";
|
|
23
|
+
ruby: "ruby";
|
|
24
|
+
rust: "rust";
|
|
25
|
+
scala: "scala";
|
|
26
|
+
solidity: "solidity";
|
|
27
|
+
swift: "swift";
|
|
28
|
+
typescript: "typescript";
|
|
29
|
+
tsx: "tsx";
|
|
30
|
+
yaml: "yaml";
|
|
31
|
+
}>;
|
|
32
|
+
paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
33
|
+
globs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
34
|
+
dryRun: z.ZodOptional<z.ZodBoolean>;
|
|
35
|
+
};
|
|
36
|
+
export type AstGrepReplaceArgs = z.infer<z.ZodObject<typeof astGrepReplaceArgsSchema>>;
|
|
37
|
+
export type AstGrepReplaceOutput = string;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { ToolDefinition } from "@opencode-ai/plugin";
|
|
2
|
+
import type { AstGrepSearchArgs, AstGrepSearchOutput } from "./types";
|
|
3
|
+
type CommandResult = {
|
|
4
|
+
exitCode: number;
|
|
5
|
+
stdout: string;
|
|
6
|
+
stderr: string;
|
|
7
|
+
};
|
|
8
|
+
export type CommandRunner = (command: string[], cwd: string) => Promise<CommandResult>;
|
|
9
|
+
export declare function runCommand(command: string[], cwd: string): Promise<CommandResult>;
|
|
10
|
+
export declare function executeAstGrepSearch(args: AstGrepSearchArgs, context: {
|
|
11
|
+
directory: string;
|
|
12
|
+
}, runner?: CommandRunner): Promise<AstGrepSearchOutput>;
|
|
13
|
+
export declare function createAstGrepSearchTool(runner?: CommandRunner): ToolDefinition;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const astGrepSearchPlugin: import("../../../plugin-api").PluginDefinition;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export declare const AST_GREP_CLI_LANGUAGES: readonly ["bash", "c", "cpp", "csharp", "css", "elixir", "go", "haskell", "html", "java", "javascript", "json", "kotlin", "lua", "nix", "php", "python", "ruby", "rust", "scala", "solidity", "swift", "typescript", "tsx", "yaml"];
|
|
3
|
+
export declare const astGrepSearchArgsSchema: {
|
|
4
|
+
pattern: z.ZodString;
|
|
5
|
+
lang: z.ZodEnum<{
|
|
6
|
+
bash: "bash";
|
|
7
|
+
json: "json";
|
|
8
|
+
c: "c";
|
|
9
|
+
cpp: "cpp";
|
|
10
|
+
csharp: "csharp";
|
|
11
|
+
css: "css";
|
|
12
|
+
elixir: "elixir";
|
|
13
|
+
go: "go";
|
|
14
|
+
haskell: "haskell";
|
|
15
|
+
html: "html";
|
|
16
|
+
java: "java";
|
|
17
|
+
javascript: "javascript";
|
|
18
|
+
kotlin: "kotlin";
|
|
19
|
+
lua: "lua";
|
|
20
|
+
nix: "nix";
|
|
21
|
+
php: "php";
|
|
22
|
+
python: "python";
|
|
23
|
+
ruby: "ruby";
|
|
24
|
+
rust: "rust";
|
|
25
|
+
scala: "scala";
|
|
26
|
+
solidity: "solidity";
|
|
27
|
+
swift: "swift";
|
|
28
|
+
typescript: "typescript";
|
|
29
|
+
tsx: "tsx";
|
|
30
|
+
yaml: "yaml";
|
|
31
|
+
}>;
|
|
32
|
+
paths: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
33
|
+
globs: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
34
|
+
context: z.ZodOptional<z.ZodNumber>;
|
|
35
|
+
};
|
|
36
|
+
export type AstGrepSearchArgs = z.infer<z.ZodObject<typeof astGrepSearchArgsSchema>>;
|
|
37
|
+
export type AstGrepSearchOutput = string;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { OpenCodeContext } from "../../../types/plugin";
|
|
2
|
+
import type { BackgroundAgentManager } from "../../../runtime";
|
|
3
|
+
import type { BackgroundCancelArgs } from "./types";
|
|
4
|
+
export declare function handleBackgroundCancel(manager: BackgroundAgentManager, ctx: OpenCodeContext, args: BackgroundCancelArgs): Promise<string>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export interface BackgroundOutputArgs {
|
|
2
|
+
task_id: string;
|
|
3
|
+
block?: boolean;
|
|
4
|
+
timeout?: number;
|
|
5
|
+
full_session?: boolean;
|
|
6
|
+
include_thinking?: boolean;
|
|
7
|
+
message_limit?: number;
|
|
8
|
+
since_message_id?: string;
|
|
9
|
+
include_tool_results?: boolean;
|
|
10
|
+
thinking_max_chars?: number;
|
|
11
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Hooks } from "@opencode-ai/plugin";
|
|
2
|
+
import type { PluginToolContribution } from "../types/tool";
|
|
3
|
+
/**
|
|
4
|
+
* Convert the aggregated tools record into the SDK tool hook shape.
|
|
5
|
+
* Returns undefined if no tools are registered.
|
|
6
|
+
*/
|
|
7
|
+
export declare function buildToolHook(tools: Record<string, PluginToolContribution>): Hooks["tool"];
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { CategoryConfig } from "../../types/category";
|
|
2
|
+
import { type CategoryOverrides } from "../../runtime";
|
|
3
|
+
export declare function resolveCategory(name: string, configOverrides?: CategoryOverrides): CategoryConfig | undefined;
|
|
4
|
+
export declare function resolveCategoryWithDefaults(name: string, configOverrides?: CategoryOverrides): CategoryConfig | undefined;
|