mixdog 0.7.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/.claude-plugin/marketplace.json +31 -0
- package/.claude-plugin/plugin.json +20 -0
- package/.gitattributes +34 -0
- package/.mcp.json +14 -0
- package/ARCHITECTURE.md +77 -0
- package/CHANGELOG.md +7 -0
- package/CONTRIBUTING.md +45 -0
- package/DATA-FLOW.md +79 -0
- package/LICENSE +21 -0
- package/README.md +389 -0
- package/SECURITY.md +138 -0
- package/UNINSTALL.md +112 -0
- package/agents/maintenance.md +5 -0
- package/agents/memory-classification.md +30 -0
- package/agents/scheduler-task.md +18 -0
- package/agents/webhook-handler.md +27 -0
- package/agents/worker.md +24 -0
- package/bin/bridge +133 -0
- package/bin/statusline-launcher.mjs +78 -0
- package/bin/statusline-lib.mjs +550 -0
- package/bin/statusline.mjs +607 -0
- package/bun.lock +802 -0
- package/commands/config.md +16 -0
- package/commands/doctor.md +13 -0
- package/commands/setup.md +17 -0
- package/defaults/cycle3-review-prompt.md +90 -0
- package/defaults/hidden-roles.json +65 -0
- package/defaults/memory-chunk-prompt.md +63 -0
- package/defaults/memory-promote-prompt.md +135 -0
- package/defaults/mixdog-config.template.json +27 -0
- package/defaults/user-workflow.json +8 -0
- package/defaults/user-workflow.md +12 -0
- package/hooks/hooks.json +73 -0
- package/hooks/lib/active-instance.cjs +77 -0
- package/hooks/lib/permission-evaluator.cjs +411 -0
- package/hooks/lib/permission-route.cjs +63 -0
- package/hooks/lib/permission-rules.cjs +170 -0
- package/hooks/lib/settings-loader.cjs +116 -0
- package/hooks/post-tool-use.cjs +84 -0
- package/hooks/pre-mcp-sandbox.cjs +158 -0
- package/hooks/pre-tool-subagent.cjs +253 -0
- package/hooks/session-start.cjs +1372 -0
- package/hooks/turn-timer.cjs +82 -0
- package/lib/claude-md-writer.cjs +386 -0
- package/lib/config-cjs.cjs +61 -0
- package/lib/hook-pipe-path.cjs +10 -0
- package/lib/keychain-cjs.cjs +263 -0
- package/lib/plugin-paths.cjs +61 -0
- package/lib/rules-builder.cjs +241 -0
- package/lib/text-utils.cjs +61 -0
- package/native/README.md +117 -0
- package/native/prebuilt/linux-aarch64/mixdog-shim +0 -0
- package/native/prebuilt/linux-x86_64/mixdog-shim +0 -0
- package/native/prebuilt/macos-aarch64/mixdog-shim +0 -0
- package/native/prebuilt/macos-x86_64/mixdog-shim +0 -0
- package/native/prebuilt/windows-x86_64/mixdog-shim.exe +0 -0
- package/package.json +107 -0
- package/prompts/code-review.txt +16 -0
- package/prompts/security-audit.txt +17 -0
- package/rules/bridge/00-common.md +39 -0
- package/rules/bridge/20-skip-protocol.md +18 -0
- package/rules/bridge/30-explorer.md +33 -0
- package/rules/bridge/40-cycle1-agent.md +52 -0
- package/rules/bridge/41-cycle2-agent.md +62 -0
- package/rules/bridge/42-cycle3-agent.md +44 -0
- package/rules/lead/00-tool-lead.md +61 -0
- package/rules/lead/01-general.md +23 -0
- package/rules/lead/02-channels.md +49 -0
- package/rules/lead/03-team.md +27 -0
- package/rules/lead/04-workflow.md +20 -0
- package/rules/shared/00-language.md +14 -0
- package/rules/shared/01-tool.md +138 -0
- package/scripts/bootstrap.mjs +184 -0
- package/scripts/bridge-unify-smoke.mjs +308 -0
- package/scripts/build-runtime-linux.sh +348 -0
- package/scripts/build-runtime-macos.sh +217 -0
- package/scripts/build-runtime-windows.ps1 +242 -0
- package/scripts/builtin-utils-smoke.mjs +392 -0
- package/scripts/check-json.mjs +45 -0
- package/scripts/check-syntax-changed.mjs +102 -0
- package/scripts/check-syntax.mjs +58 -0
- package/scripts/code-graph-batch.test.mjs +33 -0
- package/scripts/config-preserve-smoke.mjs +180 -0
- package/scripts/doctor.mjs +484 -0
- package/scripts/edit-normalize-fuzz.mjs +130 -0
- package/scripts/edit-normalize-smoke.mjs +401 -0
- package/scripts/edit-operation-smoke.mjs +369 -0
- package/scripts/edit2-smoke.mjs +63 -0
- package/scripts/fuzzy-e2e.mjs +28 -0
- package/scripts/fuzzy-smoke.mjs +26 -0
- package/scripts/generate-runtime-manifest.mjs +166 -0
- package/scripts/guard-smoke.mjs +66 -0
- package/scripts/hidden-role-schema-smoke.mjs +162 -0
- package/scripts/hook-routing-smoke.mjs +29 -0
- package/scripts/inject-input.ps1 +204 -0
- package/scripts/io-complex-smoke.mjs +667 -0
- package/scripts/io-explore-bench.mjs +424 -0
- package/scripts/io-guardrails-smoke.mjs +205 -0
- package/scripts/io-mini-bench-baseline.json +11 -0
- package/scripts/io-mini-bench.mjs +216 -0
- package/scripts/io-route-harness.mjs +933 -0
- package/scripts/io-telemetry-report.mjs +691 -0
- package/scripts/mutation-bench.mjs +564 -0
- package/scripts/mutation-io-smoke.mjs +1081 -0
- package/scripts/native-patch-bridge-smoke.mjs +288 -0
- package/scripts/native-patch-smoke.mjs +304 -0
- package/scripts/patch-interior-context-smoke.mjs +49 -0
- package/scripts/patch-newline-utf8-smoke.mjs +157 -0
- package/scripts/perf-hook-smoke.mjs +71 -0
- package/scripts/permission-eval-smoke.mjs +426 -0
- package/scripts/prep-patch.mjs +53 -0
- package/scripts/prep-shim.mjs +96 -0
- package/scripts/provider-cache-smoke.mjs +687 -0
- package/scripts/report-runtime-health.mjs +132 -0
- package/scripts/run-mcp.mjs +1547 -0
- package/scripts/salvage-v4a-shatter.test.mjs +58 -0
- package/scripts/scoped-cache-io-smoke.mjs +103 -0
- package/scripts/shell-policy-round3-smoke.mjs +46 -0
- package/scripts/smoke-runtime-negative.ps1 +100 -0
- package/scripts/smoke-runtime-negative.sh +95 -0
- package/scripts/stall-policy-smoke.mjs +50 -0
- package/scripts/start-memory-worker.mjs +23 -0
- package/scripts/statusline-launcher-smoke.mjs +82 -0
- package/scripts/stress-atomic-write.mjs +1028 -0
- package/scripts/test-config-rmw-restore.mjs +122 -0
- package/scripts/test-fault-inject.mjs +164 -0
- package/scripts/test-large-file.mjs +174 -0
- package/scripts/tool-edge-smoke.mjs +209 -0
- package/scripts/uninstall.mjs +201 -0
- package/scripts/webhook-selfheal-smoke.mjs +29 -0
- package/scripts/write-overwrite-guard-smoke.mjs +56 -0
- package/server-main.mjs +3055 -0
- package/server.mjs +468 -0
- package/setup/config-merge.mjs +254 -0
- package/setup/install.mjs +120 -0
- package/setup/launch-core.mjs +507 -0
- package/setup/launch.mjs +101 -0
- package/setup/setup-server.mjs +3206 -0
- package/setup/setup.html +3693 -0
- package/skills/retro-skill-proposer/SKILL.md +92 -0
- package/skills/schedule-add/SKILL.md +77 -0
- package/skills/setup/SKILL.md +346 -0
- package/skills/webhook-add/SKILL.md +81 -0
- package/src/agent/bridge-stall-watchdog.mjs +337 -0
- package/src/agent/index.mjs +2138 -0
- package/src/agent/orchestrator/activity-bus.mjs +38 -0
- package/src/agent/orchestrator/ai-wrapped-dispatch.mjs +1010 -0
- package/src/agent/orchestrator/bridge-retry.mjs +220 -0
- package/src/agent/orchestrator/bridge-trace.mjs +583 -0
- package/src/agent/orchestrator/cache-mtime.mjs +58 -0
- package/src/agent/orchestrator/config.mjs +358 -0
- package/src/agent/orchestrator/context/collect.mjs +651 -0
- package/src/agent/orchestrator/dispatch-persist.mjs +549 -0
- package/src/agent/orchestrator/drain-registry.mjs +50 -0
- package/src/agent/orchestrator/explore-validator.mjs +8 -0
- package/src/agent/orchestrator/internal-roles.mjs +118 -0
- package/src/agent/orchestrator/internal-tools.mjs +88 -0
- package/src/agent/orchestrator/jobs.mjs +116 -0
- package/src/agent/orchestrator/mcp/client.mjs +364 -0
- package/src/agent/orchestrator/providers/anthropic-betas.mjs +21 -0
- package/src/agent/orchestrator/providers/anthropic-oauth.mjs +1745 -0
- package/src/agent/orchestrator/providers/anthropic.mjs +437 -0
- package/src/agent/orchestrator/providers/gemini.mjs +1175 -0
- package/src/agent/orchestrator/providers/grok-oauth.mjs +782 -0
- package/src/agent/orchestrator/providers/model-catalog.mjs +241 -0
- package/src/agent/orchestrator/providers/openai-compat.mjs +1467 -0
- package/src/agent/orchestrator/providers/openai-oauth-ws.mjs +1890 -0
- package/src/agent/orchestrator/providers/openai-oauth.mjs +1307 -0
- package/src/agent/orchestrator/providers/openai-ws.mjs +104 -0
- package/src/agent/orchestrator/providers/registry.mjs +192 -0
- package/src/agent/orchestrator/providers/retry-classifier.mjs +325 -0
- package/src/agent/orchestrator/session/abort-lookup.mjs +13 -0
- package/src/agent/orchestrator/session/cache/post-edit-marks.mjs +42 -0
- package/src/agent/orchestrator/session/cache/prefetch-cache.mjs +142 -0
- package/src/agent/orchestrator/session/cache/read-cache.mjs +319 -0
- package/src/agent/orchestrator/session/cache/scoped-cache-outcome.mjs +11 -0
- package/src/agent/orchestrator/session/cache/scoped-cache.mjs +361 -0
- package/src/agent/orchestrator/session/cache/util.mjs +49 -0
- package/src/agent/orchestrator/session/loop.mjs +1478 -0
- package/src/agent/orchestrator/session/manager.mjs +1975 -0
- package/src/agent/orchestrator/session/read-dedup.mjs +6 -0
- package/src/agent/orchestrator/session/result-classification.mjs +65 -0
- package/src/agent/orchestrator/session/save-session-worker.mjs +18 -0
- package/src/agent/orchestrator/session/store.mjs +624 -0
- package/src/agent/orchestrator/session/stream-watchdog.mjs +130 -0
- package/src/agent/orchestrator/session/tool-result-offload.mjs +166 -0
- package/src/agent/orchestrator/session/trim.mjs +491 -0
- package/src/agent/orchestrator/smart-bridge/CACHE-SHARD.md +115 -0
- package/src/agent/orchestrator/smart-bridge/bridge-llm.mjs +327 -0
- package/src/agent/orchestrator/smart-bridge/cache-obs.mjs +150 -0
- package/src/agent/orchestrator/smart-bridge/cache-strategy.mjs +228 -0
- package/src/agent/orchestrator/smart-bridge/index.mjs +215 -0
- package/src/agent/orchestrator/smart-bridge/profiles.mjs +37 -0
- package/src/agent/orchestrator/smart-bridge/registry.mjs +348 -0
- package/src/agent/orchestrator/smart-bridge/session-builder.mjs +116 -0
- package/src/agent/orchestrator/stall-policy.mjs +195 -0
- package/src/agent/orchestrator/tool-loop-guard.mjs +75 -0
- package/src/agent/orchestrator/tools/bash-policy-scan.mjs +77 -0
- package/src/agent/orchestrator/tools/bash-session.mjs +721 -0
- package/src/agent/orchestrator/tools/builtin/advisory-lock.mjs +171 -0
- package/src/agent/orchestrator/tools/builtin/arg-guard.mjs +455 -0
- package/src/agent/orchestrator/tools/builtin/atomic-write.mjs +236 -0
- package/src/agent/orchestrator/tools/builtin/bash-tool.mjs +480 -0
- package/src/agent/orchestrator/tools/builtin/binary-file.mjs +76 -0
- package/src/agent/orchestrator/tools/builtin/builtin-tools.mjs +256 -0
- package/src/agent/orchestrator/tools/builtin/cache-layers.mjs +386 -0
- package/src/agent/orchestrator/tools/builtin/cwd-utils.mjs +37 -0
- package/src/agent/orchestrator/tools/builtin/device-paths.mjs +154 -0
- package/src/agent/orchestrator/tools/builtin/diagnostics-tool.mjs +292 -0
- package/src/agent/orchestrator/tools/builtin/diff-utils.mjs +109 -0
- package/src/agent/orchestrator/tools/builtin/edit-base-guard.mjs +58 -0
- package/src/agent/orchestrator/tools/builtin/edit-byte-plan.mjs +240 -0
- package/src/agent/orchestrator/tools/builtin/edit-byte-utils.mjs +113 -0
- package/src/agent/orchestrator/tools/builtin/edit-commit.mjs +74 -0
- package/src/agent/orchestrator/tools/builtin/edit-context-utils.mjs +242 -0
- package/src/agent/orchestrator/tools/builtin/edit-diagnostics.mjs +211 -0
- package/src/agent/orchestrator/tools/builtin/edit-engine.mjs +1364 -0
- package/src/agent/orchestrator/tools/builtin/edit-failure-context.mjs +126 -0
- package/src/agent/orchestrator/tools/builtin/edit-hint.mjs +141 -0
- package/src/agent/orchestrator/tools/builtin/edit-match-utils.mjs +194 -0
- package/src/agent/orchestrator/tools/builtin/edit-partial-write.mjs +60 -0
- package/src/agent/orchestrator/tools/builtin/edit-stale-refresh.mjs +168 -0
- package/src/agent/orchestrator/tools/builtin/edit-tool.mjs +173 -0
- package/src/agent/orchestrator/tools/builtin/edit-utf8-guard.mjs +48 -0
- package/src/agent/orchestrator/tools/builtin/fs-reachability.mjs +48 -0
- package/src/agent/orchestrator/tools/builtin/fuzzy-match.mjs +99 -0
- package/src/agent/orchestrator/tools/builtin/glob-walk.mjs +170 -0
- package/src/agent/orchestrator/tools/builtin/grep-formatting.mjs +113 -0
- package/src/agent/orchestrator/tools/builtin/hash-utils.mjs +6 -0
- package/src/agent/orchestrator/tools/builtin/list-formatting.mjs +7 -0
- package/src/agent/orchestrator/tools/builtin/list-tool.mjs +593 -0
- package/src/agent/orchestrator/tools/builtin/native-edit-runner.mjs +89 -0
- package/src/agent/orchestrator/tools/builtin/notebook-edit-tool.mjs +300 -0
- package/src/agent/orchestrator/tools/builtin/open-config-tool.mjs +26 -0
- package/src/agent/orchestrator/tools/builtin/path-diagnostics.mjs +152 -0
- package/src/agent/orchestrator/tools/builtin/path-locks.mjs +35 -0
- package/src/agent/orchestrator/tools/builtin/path-utils.mjs +201 -0
- package/src/agent/orchestrator/tools/builtin/read-args.mjs +103 -0
- package/src/agent/orchestrator/tools/builtin/read-batch.mjs +172 -0
- package/src/agent/orchestrator/tools/builtin/read-constants.mjs +40 -0
- package/src/agent/orchestrator/tools/builtin/read-formatting.mjs +118 -0
- package/src/agent/orchestrator/tools/builtin/read-image-resize.mjs +189 -0
- package/src/agent/orchestrator/tools/builtin/read-image.mjs +88 -0
- package/src/agent/orchestrator/tools/builtin/read-lines.mjs +12 -0
- package/src/agent/orchestrator/tools/builtin/read-mode-tool.mjs +455 -0
- package/src/agent/orchestrator/tools/builtin/read-open.mjs +190 -0
- package/src/agent/orchestrator/tools/builtin/read-range-index.mjs +271 -0
- package/src/agent/orchestrator/tools/builtin/read-ranges.mjs +26 -0
- package/src/agent/orchestrator/tools/builtin/read-single-tool.mjs +728 -0
- package/src/agent/orchestrator/tools/builtin/read-snapshot-runtime.mjs +173 -0
- package/src/agent/orchestrator/tools/builtin/read-special-files.mjs +268 -0
- package/src/agent/orchestrator/tools/builtin/read-streaming.mjs +602 -0
- package/src/agent/orchestrator/tools/builtin/read-tool.mjs +530 -0
- package/src/agent/orchestrator/tools/builtin/read-windows.mjs +107 -0
- package/src/agent/orchestrator/tools/builtin/rename-tool.mjs +196 -0
- package/src/agent/orchestrator/tools/builtin/rg-runner.mjs +422 -0
- package/src/agent/orchestrator/tools/builtin/search-builders.mjs +158 -0
- package/src/agent/orchestrator/tools/builtin/search-tool.mjs +869 -0
- package/src/agent/orchestrator/tools/builtin/shell-analysis.mjs +653 -0
- package/src/agent/orchestrator/tools/builtin/shell-jobs.mjs +936 -0
- package/src/agent/orchestrator/tools/builtin/shell-output.mjs +36 -0
- package/src/agent/orchestrator/tools/builtin/shell-runtime.mjs +214 -0
- package/src/agent/orchestrator/tools/builtin/snapshot-helpers.mjs +143 -0
- package/src/agent/orchestrator/tools/builtin/snapshot-store.mjs +206 -0
- package/src/agent/orchestrator/tools/builtin/snapshot-validation.mjs +98 -0
- package/src/agent/orchestrator/tools/builtin/text-stats.mjs +69 -0
- package/src/agent/orchestrator/tools/builtin/windows-roots.mjs +23 -0
- package/src/agent/orchestrator/tools/builtin/write-tool.mjs +401 -0
- package/src/agent/orchestrator/tools/builtin.mjs +500 -0
- package/src/agent/orchestrator/tools/code-graph-prewarm-worker.mjs +39 -0
- package/src/agent/orchestrator/tools/code-graph-tool-defs.mjs +24 -0
- package/src/agent/orchestrator/tools/code-graph.mjs +4095 -0
- package/src/agent/orchestrator/tools/cwd-tool.mjs +298 -0
- package/src/agent/orchestrator/tools/destructive-warning.mjs +323 -0
- package/src/agent/orchestrator/tools/edit-normalize.mjs +603 -0
- package/src/agent/orchestrator/tools/env-scrub.mjs +100 -0
- package/src/agent/orchestrator/tools/graph-binary-fetcher.mjs +144 -0
- package/src/agent/orchestrator/tools/graph-manifest.json +26 -0
- package/src/agent/orchestrator/tools/host-input.mjs +204 -0
- package/src/agent/orchestrator/tools/mutation-content-cache.mjs +67 -0
- package/src/agent/orchestrator/tools/mutation-planner.mjs +75 -0
- package/src/agent/orchestrator/tools/next-call-utils.mjs +48 -0
- package/src/agent/orchestrator/tools/patch-binary-fetcher.mjs +133 -0
- package/src/agent/orchestrator/tools/patch-manifest.json +26 -0
- package/src/agent/orchestrator/tools/patch-tool-defs.mjs +20 -0
- package/src/agent/orchestrator/tools/patch.mjs +2754 -0
- package/src/agent/orchestrator/tools/progress-message.mjs +118 -0
- package/src/agent/orchestrator/tools/result-compression.mjs +279 -0
- package/src/agent/orchestrator/tools/shell-command.mjs +865 -0
- package/src/agent/orchestrator/tools/shell-exec-policy.mjs +89 -0
- package/src/agent/orchestrator/tools/shell-policy-danger-target.mjs +27 -0
- package/src/agent/orchestrator/tools/shell-policy-imports.mjs +7 -0
- package/src/agent/orchestrator/tools/shell-policy.mjs +345 -0
- package/src/agent/orchestrator/tools/shell-snapshot.mjs +313 -0
- package/src/agent/orchestrator/workflow-store.mjs +93 -0
- package/src/agent/tool-defs.mjs +103 -0
- package/src/channels/backends/discord.mjs +784 -0
- package/src/channels/data/voice-runtime-manifest.json +138 -0
- package/src/channels/index.mjs +3229 -0
- package/src/channels/lib/cli-worker-host.mjs +12 -0
- package/src/channels/lib/config-lock.mjs +13 -0
- package/src/channels/lib/config.mjs +292 -0
- package/src/channels/lib/drop-trace.mjs +71 -0
- package/src/channels/lib/event-pipeline.mjs +81 -0
- package/src/channels/lib/event-queue.mjs +345 -0
- package/src/channels/lib/executor.mjs +168 -0
- package/src/channels/lib/format.mjs +188 -0
- package/src/channels/lib/holidays.mjs +138 -0
- package/src/channels/lib/hook-pipe-server.mjs +802 -0
- package/src/channels/lib/interaction-workflows.mjs +184 -0
- package/src/channels/lib/memory-client.mjs +149 -0
- package/src/channels/lib/output-forwarder.mjs +765 -0
- package/src/channels/lib/runtime-paths.mjs +479 -0
- package/src/channels/lib/scheduler.mjs +723 -0
- package/src/channels/lib/session-control.mjs +36 -0
- package/src/channels/lib/session-discovery.mjs +103 -0
- package/src/channels/lib/settings.mjs +11 -0
- package/src/channels/lib/state-file.mjs +68 -0
- package/src/channels/lib/status-snapshot.mjs +219 -0
- package/src/channels/lib/tool-format.mjs +140 -0
- package/src/channels/lib/transcript-discovery.mjs +195 -0
- package/src/channels/lib/voice-runtime-fetcher.mjs +734 -0
- package/src/channels/lib/webhook.mjs +1179 -0
- package/src/channels/lib/whisper-server.mjs +477 -0
- package/src/channels/tool-defs.mjs +170 -0
- package/src/daemon/host.mjs +118 -0
- package/src/daemon/mcp-transport.mjs +47 -0
- package/src/daemon/session.mjs +100 -0
- package/src/daemon/thin-client.mjs +71 -0
- package/src/daemon/transport.mjs +163 -0
- package/src/memory/data/runtime-manifest.json +40 -0
- package/src/memory/index.mjs +3305 -0
- package/src/memory/lib/agent-ipc.mjs +93 -0
- package/src/memory/lib/bridge-trace-queries.mjs +120 -0
- package/src/memory/lib/core-memory-store.mjs +330 -0
- package/src/memory/lib/embedding-provider.mjs +269 -0
- package/src/memory/lib/embedding-worker.mjs +323 -0
- package/src/memory/lib/llm-worker-host.mjs +17 -0
- package/src/memory/lib/memory-cycle.mjs +11 -0
- package/src/memory/lib/memory-cycle1.mjs +641 -0
- package/src/memory/lib/memory-cycle2.mjs +1284 -0
- package/src/memory/lib/memory-cycle3.mjs +540 -0
- package/src/memory/lib/memory-embed.mjs +299 -0
- package/src/memory/lib/memory-extraction.mjs +5 -0
- package/src/memory/lib/memory-maintenance-store.mjs +32 -0
- package/src/memory/lib/memory-ops-policy.mjs +190 -0
- package/src/memory/lib/memory-recall-id-patch.mjs +15 -0
- package/src/memory/lib/memory-recall-read-query.mjs +7 -0
- package/src/memory/lib/memory-recall-scope-filter.mjs +63 -0
- package/src/memory/lib/memory-recall-store.mjs +621 -0
- package/src/memory/lib/memory-retrievers.mjs +112 -0
- package/src/memory/lib/memory-score.mjs +71 -0
- package/src/memory/lib/memory-text-utils.mjs +58 -0
- package/src/memory/lib/memory.mjs +412 -0
- package/src/memory/lib/model-profile.mjs +85 -0
- package/src/memory/lib/pg/adapter.mjs +308 -0
- package/src/memory/lib/pg/process.mjs +360 -0
- package/src/memory/lib/pg/supervisor.mjs +396 -0
- package/src/memory/lib/project-id-resolver.mjs +86 -0
- package/src/memory/lib/runtime-fetcher.mjs +442 -0
- package/src/memory/lib/trace-store.mjs +728 -0
- package/src/memory/tool-defs.mjs +79 -0
- package/src/search/index.mjs +1173 -0
- package/src/search/lib/backends/anthropic-oauth.mjs +98 -0
- package/src/search/lib/backends/exa.mjs +50 -0
- package/src/search/lib/backends/firecrawl.mjs +61 -0
- package/src/search/lib/backends/gemini-api.mjs +83 -0
- package/src/search/lib/backends/grok-oauth.mjs +86 -0
- package/src/search/lib/backends/index.mjs +150 -0
- package/src/search/lib/backends/openai-api.mjs +144 -0
- package/src/search/lib/backends/openai-oauth.mjs +98 -0
- package/src/search/lib/backends/openai-web-search.mjs +76 -0
- package/src/search/lib/backends/tavily.mjs +55 -0
- package/src/search/lib/backends/xai-api.mjs +113 -0
- package/src/search/lib/cache.mjs +131 -0
- package/src/search/lib/config.mjs +192 -0
- package/src/search/lib/formatter.mjs +115 -0
- package/src/search/lib/provider-usage.mjs +67 -0
- package/src/search/lib/providers.mjs +47 -0
- package/src/search/lib/search-intent.mjs +109 -0
- package/src/search/lib/setup-handler.mjs +261 -0
- package/src/search/lib/state.mjs +201 -0
- package/src/search/lib/web-tools.mjs +1207 -0
- package/src/search/tool-defs.mjs +83 -0
- package/src/setup/defender-exclusion.mjs +183 -0
- package/src/shared/abort-controller.mjs +15 -0
- package/src/shared/atomic-file.mjs +420 -0
- package/src/shared/config.mjs +350 -0
- package/src/shared/daemon-recycle.mjs +108 -0
- package/src/shared/disable-claude-builtins.mjs +88 -0
- package/src/shared/err-text.mjs +12 -0
- package/src/shared/llm/cost.mjs +66 -0
- package/src/shared/llm/http-agent.mjs +123 -0
- package/src/shared/llm/index.mjs +41 -0
- package/src/shared/llm/pid-cleanup.mjs +27 -0
- package/src/shared/llm/usage-log.mjs +47 -0
- package/src/shared/plugin-paths.mjs +58 -0
- package/src/shared/schedules-store.mjs +70 -0
- package/src/shared/seed.mjs +119 -0
- package/src/shared/user-cwd.mjs +213 -0
- package/src/shared/user-data-guard.mjs +238 -0
- package/src/status/aggregator.mjs +584 -0
- package/src/status/server.mjs +413 -0
- package/tools.json +1653 -0
package/tools.json
ADDED
|
@@ -0,0 +1,1653 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"name": "reply",
|
|
4
|
+
"title": "Discord Reply",
|
|
5
|
+
"annotations": {
|
|
6
|
+
"title": "Discord Reply",
|
|
7
|
+
"readOnlyHint": false,
|
|
8
|
+
"destructiveHint": true,
|
|
9
|
+
"idempotentHint": false,
|
|
10
|
+
"openWorldHint": true
|
|
11
|
+
},
|
|
12
|
+
"description": "Reply on channel.",
|
|
13
|
+
"inputSchema": {
|
|
14
|
+
"type": "object",
|
|
15
|
+
"properties": {
|
|
16
|
+
"chat_id": {
|
|
17
|
+
"type": "string"
|
|
18
|
+
},
|
|
19
|
+
"text": {
|
|
20
|
+
"type": "string"
|
|
21
|
+
},
|
|
22
|
+
"reply_to": {
|
|
23
|
+
"type": "string"
|
|
24
|
+
},
|
|
25
|
+
"files": {
|
|
26
|
+
"type": "array",
|
|
27
|
+
"items": {
|
|
28
|
+
"type": "string"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"embeds": {
|
|
32
|
+
"type": "array",
|
|
33
|
+
"items": {
|
|
34
|
+
"type": "object",
|
|
35
|
+
"additionalProperties": true
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"components": {
|
|
39
|
+
"type": "array",
|
|
40
|
+
"items": {
|
|
41
|
+
"type": "object",
|
|
42
|
+
"additionalProperties": true
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"required": [
|
|
47
|
+
"chat_id",
|
|
48
|
+
"text"
|
|
49
|
+
]
|
|
50
|
+
},
|
|
51
|
+
"module": "channels"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"name": "react",
|
|
55
|
+
"title": "Reaction",
|
|
56
|
+
"annotations": {
|
|
57
|
+
"title": "Reaction",
|
|
58
|
+
"readOnlyHint": false,
|
|
59
|
+
"destructiveHint": false,
|
|
60
|
+
"idempotentHint": true,
|
|
61
|
+
"openWorldHint": true
|
|
62
|
+
},
|
|
63
|
+
"description": "React to message.",
|
|
64
|
+
"inputSchema": {
|
|
65
|
+
"type": "object",
|
|
66
|
+
"properties": {
|
|
67
|
+
"chat_id": {
|
|
68
|
+
"type": "string"
|
|
69
|
+
},
|
|
70
|
+
"message_id": {
|
|
71
|
+
"type": "string"
|
|
72
|
+
},
|
|
73
|
+
"emoji": {
|
|
74
|
+
"type": "string"
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
"required": [
|
|
78
|
+
"chat_id",
|
|
79
|
+
"message_id",
|
|
80
|
+
"emoji"
|
|
81
|
+
]
|
|
82
|
+
},
|
|
83
|
+
"module": "channels"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"name": "edit_message",
|
|
87
|
+
"title": "Edit Message",
|
|
88
|
+
"annotations": {
|
|
89
|
+
"title": "Edit Message",
|
|
90
|
+
"readOnlyHint": false,
|
|
91
|
+
"destructiveHint": true,
|
|
92
|
+
"idempotentHint": true,
|
|
93
|
+
"openWorldHint": true
|
|
94
|
+
},
|
|
95
|
+
"description": "Edit bot message.",
|
|
96
|
+
"inputSchema": {
|
|
97
|
+
"type": "object",
|
|
98
|
+
"properties": {
|
|
99
|
+
"chat_id": {
|
|
100
|
+
"type": "string"
|
|
101
|
+
},
|
|
102
|
+
"message_id": {
|
|
103
|
+
"type": "string"
|
|
104
|
+
},
|
|
105
|
+
"text": {
|
|
106
|
+
"type": "string"
|
|
107
|
+
},
|
|
108
|
+
"embeds": {
|
|
109
|
+
"type": "array",
|
|
110
|
+
"items": {
|
|
111
|
+
"type": "object",
|
|
112
|
+
"additionalProperties": true
|
|
113
|
+
}
|
|
114
|
+
},
|
|
115
|
+
"components": {
|
|
116
|
+
"type": "array",
|
|
117
|
+
"items": {
|
|
118
|
+
"type": "object",
|
|
119
|
+
"additionalProperties": true
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
"required": [
|
|
124
|
+
"chat_id",
|
|
125
|
+
"message_id",
|
|
126
|
+
"text"
|
|
127
|
+
]
|
|
128
|
+
},
|
|
129
|
+
"module": "channels"
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
"name": "download_attachment",
|
|
133
|
+
"title": "Download Attachment",
|
|
134
|
+
"annotations": {
|
|
135
|
+
"title": "Download Attachment",
|
|
136
|
+
"readOnlyHint": true,
|
|
137
|
+
"destructiveHint": false,
|
|
138
|
+
"idempotentHint": true,
|
|
139
|
+
"openWorldHint": true
|
|
140
|
+
},
|
|
141
|
+
"description": "Download attachments.",
|
|
142
|
+
"inputSchema": {
|
|
143
|
+
"type": "object",
|
|
144
|
+
"properties": {
|
|
145
|
+
"chat_id": {
|
|
146
|
+
"type": "string"
|
|
147
|
+
},
|
|
148
|
+
"message_id": {
|
|
149
|
+
"type": "string"
|
|
150
|
+
}
|
|
151
|
+
},
|
|
152
|
+
"required": [
|
|
153
|
+
"chat_id",
|
|
154
|
+
"message_id"
|
|
155
|
+
]
|
|
156
|
+
},
|
|
157
|
+
"module": "channels"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"name": "fetch",
|
|
161
|
+
"title": "Fetch",
|
|
162
|
+
"annotations": {
|
|
163
|
+
"title": "Fetch",
|
|
164
|
+
"readOnlyHint": true,
|
|
165
|
+
"destructiveHint": false,
|
|
166
|
+
"idempotentHint": true,
|
|
167
|
+
"openWorldHint": true
|
|
168
|
+
},
|
|
169
|
+
"description": "Discord-only: fetch recent messages from a Discord channel. Requires channel (id); optional limit (count). NOT for URLs or web pages — use web_fetch for those.",
|
|
170
|
+
"inputSchema": {
|
|
171
|
+
"type": "object",
|
|
172
|
+
"properties": {
|
|
173
|
+
"channel": {
|
|
174
|
+
"type": "string"
|
|
175
|
+
},
|
|
176
|
+
"limit": {
|
|
177
|
+
"type": "number"
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
"required": [
|
|
181
|
+
"channel"
|
|
182
|
+
]
|
|
183
|
+
},
|
|
184
|
+
"module": "channels"
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"name": "schedule_status",
|
|
188
|
+
"title": "Schedule Status",
|
|
189
|
+
"annotations": {
|
|
190
|
+
"title": "Schedule Status",
|
|
191
|
+
"readOnlyHint": true,
|
|
192
|
+
"destructiveHint": false,
|
|
193
|
+
"idempotentHint": true,
|
|
194
|
+
"openWorldHint": false
|
|
195
|
+
},
|
|
196
|
+
"description": "Show schedules.",
|
|
197
|
+
"inputSchema": {
|
|
198
|
+
"type": "object",
|
|
199
|
+
"properties": {}
|
|
200
|
+
},
|
|
201
|
+
"module": "channels"
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"name": "trigger_schedule",
|
|
205
|
+
"title": "Trigger Schedule",
|
|
206
|
+
"annotations": {
|
|
207
|
+
"title": "Trigger Schedule",
|
|
208
|
+
"readOnlyHint": false,
|
|
209
|
+
"destructiveHint": false,
|
|
210
|
+
"idempotentHint": false,
|
|
211
|
+
"openWorldHint": false
|
|
212
|
+
},
|
|
213
|
+
"description": "Run a scheduled task immediately by name (fire it now). Requires name.",
|
|
214
|
+
"inputSchema": {
|
|
215
|
+
"type": "object",
|
|
216
|
+
"properties": {
|
|
217
|
+
"name": {
|
|
218
|
+
"type": "string"
|
|
219
|
+
}
|
|
220
|
+
},
|
|
221
|
+
"required": [
|
|
222
|
+
"name"
|
|
223
|
+
]
|
|
224
|
+
},
|
|
225
|
+
"module": "channels"
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
"name": "schedule_control",
|
|
229
|
+
"title": "Schedule Control",
|
|
230
|
+
"annotations": {
|
|
231
|
+
"title": "Schedule Control",
|
|
232
|
+
"readOnlyHint": false,
|
|
233
|
+
"destructiveHint": false,
|
|
234
|
+
"idempotentHint": false,
|
|
235
|
+
"openWorldHint": false
|
|
236
|
+
},
|
|
237
|
+
"description": "Defer or skip a schedule (not run it now): action=defer (push by `minutes`) | skip_today. Requires name + action.",
|
|
238
|
+
"inputSchema": {
|
|
239
|
+
"type": "object",
|
|
240
|
+
"properties": {
|
|
241
|
+
"name": {
|
|
242
|
+
"type": "string"
|
|
243
|
+
},
|
|
244
|
+
"action": {
|
|
245
|
+
"type": "string",
|
|
246
|
+
"enum": [
|
|
247
|
+
"defer",
|
|
248
|
+
"skip_today"
|
|
249
|
+
]
|
|
250
|
+
},
|
|
251
|
+
"minutes": {
|
|
252
|
+
"type": "number"
|
|
253
|
+
}
|
|
254
|
+
},
|
|
255
|
+
"required": [
|
|
256
|
+
"name",
|
|
257
|
+
"action"
|
|
258
|
+
]
|
|
259
|
+
},
|
|
260
|
+
"module": "channels"
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"name": "activate_channel_bridge",
|
|
264
|
+
"title": "Activate Channel Bridge",
|
|
265
|
+
"annotations": {
|
|
266
|
+
"title": "Activate Channel Bridge",
|
|
267
|
+
"readOnlyHint": false,
|
|
268
|
+
"destructiveHint": false,
|
|
269
|
+
"idempotentHint": true,
|
|
270
|
+
"openWorldHint": false
|
|
271
|
+
},
|
|
272
|
+
"description": "Set channel bridge active.",
|
|
273
|
+
"inputSchema": {
|
|
274
|
+
"type": "object",
|
|
275
|
+
"properties": {
|
|
276
|
+
"active": {
|
|
277
|
+
"type": "boolean"
|
|
278
|
+
}
|
|
279
|
+
},
|
|
280
|
+
"required": [
|
|
281
|
+
"active"
|
|
282
|
+
]
|
|
283
|
+
},
|
|
284
|
+
"module": "channels"
|
|
285
|
+
},
|
|
286
|
+
{
|
|
287
|
+
"name": "reload_config",
|
|
288
|
+
"title": "Reload Config",
|
|
289
|
+
"annotations": {
|
|
290
|
+
"title": "Reload Config",
|
|
291
|
+
"readOnlyHint": false,
|
|
292
|
+
"destructiveHint": false,
|
|
293
|
+
"idempotentHint": true,
|
|
294
|
+
"openWorldHint": false
|
|
295
|
+
},
|
|
296
|
+
"description": "Reload config.",
|
|
297
|
+
"inputSchema": {
|
|
298
|
+
"type": "object",
|
|
299
|
+
"properties": {}
|
|
300
|
+
},
|
|
301
|
+
"module": "channels"
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
"name": "inject_command",
|
|
305
|
+
"title": "Inject Claude Code Slash Command",
|
|
306
|
+
"annotations": {
|
|
307
|
+
"title": "Inject Claude Code Slash Command",
|
|
308
|
+
"readOnlyHint": false,
|
|
309
|
+
"destructiveHint": false,
|
|
310
|
+
"idempotentHint": false,
|
|
311
|
+
"openWorldHint": true
|
|
312
|
+
},
|
|
313
|
+
"description": "Inject slash command.",
|
|
314
|
+
"inputSchema": {
|
|
315
|
+
"type": "object",
|
|
316
|
+
"properties": {
|
|
317
|
+
"command": {
|
|
318
|
+
"type": "string",
|
|
319
|
+
"enum": [
|
|
320
|
+
"reload-plugins",
|
|
321
|
+
"clear"
|
|
322
|
+
]
|
|
323
|
+
}
|
|
324
|
+
},
|
|
325
|
+
"required": [
|
|
326
|
+
"command"
|
|
327
|
+
]
|
|
328
|
+
},
|
|
329
|
+
"module": "channels"
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
"name": "memory",
|
|
333
|
+
"title": "Memory Cycle",
|
|
334
|
+
"annotations": {
|
|
335
|
+
"title": "Memory Cycle",
|
|
336
|
+
"readOnlyHint": false,
|
|
337
|
+
"destructiveHint": true,
|
|
338
|
+
"idempotentHint": false,
|
|
339
|
+
"openWorldHint": false
|
|
340
|
+
},
|
|
341
|
+
"description": "Persistent memory operations. Requires action (status|core|manage|prune|rebuild|...). For core: op (add/edit/delete/list) + category + summary + project_id. To retrieve, use the recall tool.",
|
|
342
|
+
"inputSchema": {
|
|
343
|
+
"type": "object",
|
|
344
|
+
"properties": {
|
|
345
|
+
"action": {
|
|
346
|
+
"type": "string",
|
|
347
|
+
"enum": [
|
|
348
|
+
"core",
|
|
349
|
+
"manage",
|
|
350
|
+
"status",
|
|
351
|
+
"sleep",
|
|
352
|
+
"cycle1",
|
|
353
|
+
"cycle2",
|
|
354
|
+
"cycle3",
|
|
355
|
+
"flush",
|
|
356
|
+
"backfill",
|
|
357
|
+
"prune",
|
|
358
|
+
"rebuild",
|
|
359
|
+
"purge",
|
|
360
|
+
"retro_eval_active"
|
|
361
|
+
]
|
|
362
|
+
},
|
|
363
|
+
"op": {
|
|
364
|
+
"type": "string",
|
|
365
|
+
"enum": [
|
|
366
|
+
"add",
|
|
367
|
+
"edit",
|
|
368
|
+
"delete",
|
|
369
|
+
"list"
|
|
370
|
+
]
|
|
371
|
+
},
|
|
372
|
+
"id": {
|
|
373
|
+
"type": "number"
|
|
374
|
+
},
|
|
375
|
+
"element": {
|
|
376
|
+
"type": "string"
|
|
377
|
+
},
|
|
378
|
+
"summary": {
|
|
379
|
+
"type": "string"
|
|
380
|
+
},
|
|
381
|
+
"category": {
|
|
382
|
+
"type": "string",
|
|
383
|
+
"enum": [
|
|
384
|
+
"rule",
|
|
385
|
+
"constraint",
|
|
386
|
+
"decision",
|
|
387
|
+
"fact",
|
|
388
|
+
"goal",
|
|
389
|
+
"preference",
|
|
390
|
+
"task",
|
|
391
|
+
"issue"
|
|
392
|
+
]
|
|
393
|
+
},
|
|
394
|
+
"status": {
|
|
395
|
+
"type": "string",
|
|
396
|
+
"enum": [
|
|
397
|
+
"pending",
|
|
398
|
+
"active",
|
|
399
|
+
"archived"
|
|
400
|
+
]
|
|
401
|
+
},
|
|
402
|
+
"maxDays": {
|
|
403
|
+
"type": "number"
|
|
404
|
+
},
|
|
405
|
+
"window": {
|
|
406
|
+
"type": "string"
|
|
407
|
+
},
|
|
408
|
+
"limit": {
|
|
409
|
+
"type": "number"
|
|
410
|
+
},
|
|
411
|
+
"concurrency": {
|
|
412
|
+
"type": "number"
|
|
413
|
+
},
|
|
414
|
+
"confirm": {
|
|
415
|
+
"type": "string"
|
|
416
|
+
},
|
|
417
|
+
"cycle3Mode": {
|
|
418
|
+
"type": "string",
|
|
419
|
+
"enum": [
|
|
420
|
+
"proposal",
|
|
421
|
+
"conservative"
|
|
422
|
+
]
|
|
423
|
+
},
|
|
424
|
+
"project_id": {
|
|
425
|
+
"type": "string"
|
|
426
|
+
}
|
|
427
|
+
},
|
|
428
|
+
"required": [
|
|
429
|
+
"action"
|
|
430
|
+
]
|
|
431
|
+
},
|
|
432
|
+
"module": "memory"
|
|
433
|
+
},
|
|
434
|
+
{
|
|
435
|
+
"name": "recall",
|
|
436
|
+
"title": "Recall",
|
|
437
|
+
"annotations": {
|
|
438
|
+
"title": "Recall",
|
|
439
|
+
"readOnlyHint": true,
|
|
440
|
+
"destructiveHint": false,
|
|
441
|
+
"idempotentHint": true,
|
|
442
|
+
"openWorldHint": false
|
|
443
|
+
},
|
|
444
|
+
"description": "Retrieve stored memory (past decisions, prior work, session history). Use when the user references earlier work (\"last time\", \"as we decided\"), when resuming a paused task, before re-proposing something possibly already decided, or when context beyond the injected core/recap slice is needed — the inject is a thin excerpt, not the store. query (string|array fan-out) and/or id; category/period/projectScope filters. Read-only and cheap: when in doubt, recall first.",
|
|
445
|
+
"inputSchema": {
|
|
446
|
+
"type": "object",
|
|
447
|
+
"properties": {
|
|
448
|
+
"query": {
|
|
449
|
+
"anyOf": [
|
|
450
|
+
{
|
|
451
|
+
"type": "string"
|
|
452
|
+
},
|
|
453
|
+
{
|
|
454
|
+
"type": "array",
|
|
455
|
+
"items": {
|
|
456
|
+
"type": "string"
|
|
457
|
+
},
|
|
458
|
+
"minItems": 1
|
|
459
|
+
}
|
|
460
|
+
]
|
|
461
|
+
},
|
|
462
|
+
"id": {
|
|
463
|
+
"anyOf": [
|
|
464
|
+
{
|
|
465
|
+
"type": "number"
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
"type": "array",
|
|
469
|
+
"items": {
|
|
470
|
+
"type": "number"
|
|
471
|
+
},
|
|
472
|
+
"minItems": 1
|
|
473
|
+
}
|
|
474
|
+
]
|
|
475
|
+
},
|
|
476
|
+
"period": {
|
|
477
|
+
"type": "string"
|
|
478
|
+
},
|
|
479
|
+
"limit": {
|
|
480
|
+
"type": "number"
|
|
481
|
+
},
|
|
482
|
+
"offset": {
|
|
483
|
+
"type": "number"
|
|
484
|
+
},
|
|
485
|
+
"sort": {
|
|
486
|
+
"type": "string",
|
|
487
|
+
"enum": [
|
|
488
|
+
"importance",
|
|
489
|
+
"date"
|
|
490
|
+
]
|
|
491
|
+
},
|
|
492
|
+
"category": {
|
|
493
|
+
"anyOf": [
|
|
494
|
+
{
|
|
495
|
+
"type": "string",
|
|
496
|
+
"enum": [
|
|
497
|
+
"rule",
|
|
498
|
+
"constraint",
|
|
499
|
+
"decision",
|
|
500
|
+
"fact",
|
|
501
|
+
"goal",
|
|
502
|
+
"preference",
|
|
503
|
+
"task",
|
|
504
|
+
"issue"
|
|
505
|
+
]
|
|
506
|
+
},
|
|
507
|
+
{
|
|
508
|
+
"type": "array",
|
|
509
|
+
"items": {
|
|
510
|
+
"type": "string",
|
|
511
|
+
"enum": [
|
|
512
|
+
"rule",
|
|
513
|
+
"constraint",
|
|
514
|
+
"decision",
|
|
515
|
+
"fact",
|
|
516
|
+
"goal",
|
|
517
|
+
"preference",
|
|
518
|
+
"task",
|
|
519
|
+
"issue"
|
|
520
|
+
]
|
|
521
|
+
},
|
|
522
|
+
"minItems": 1
|
|
523
|
+
}
|
|
524
|
+
]
|
|
525
|
+
},
|
|
526
|
+
"includeArchived": {
|
|
527
|
+
"type": "boolean"
|
|
528
|
+
},
|
|
529
|
+
"projectScope": {
|
|
530
|
+
"type": "string"
|
|
531
|
+
},
|
|
532
|
+
"cwd": {
|
|
533
|
+
"type": "string"
|
|
534
|
+
}
|
|
535
|
+
},
|
|
536
|
+
"additionalProperties": false
|
|
537
|
+
},
|
|
538
|
+
"module": "memory"
|
|
539
|
+
},
|
|
540
|
+
{
|
|
541
|
+
"name": "search",
|
|
542
|
+
"title": "Mixdog Web Search",
|
|
543
|
+
"description": "Web search (SERP) for external/current info. Requires query (string|array). Snippets+URLs; web_fetch for bodies.",
|
|
544
|
+
"inputSchema": {
|
|
545
|
+
"type": "object",
|
|
546
|
+
"properties": {
|
|
547
|
+
"query": {
|
|
548
|
+
"anyOf": [
|
|
549
|
+
{
|
|
550
|
+
"type": "string"
|
|
551
|
+
},
|
|
552
|
+
{
|
|
553
|
+
"type": "array",
|
|
554
|
+
"items": {
|
|
555
|
+
"type": "string"
|
|
556
|
+
},
|
|
557
|
+
"minItems": 1
|
|
558
|
+
}
|
|
559
|
+
]
|
|
560
|
+
},
|
|
561
|
+
"site": {
|
|
562
|
+
"type": "string"
|
|
563
|
+
},
|
|
564
|
+
"type": {
|
|
565
|
+
"type": "string",
|
|
566
|
+
"enum": [
|
|
567
|
+
"web",
|
|
568
|
+
"news",
|
|
569
|
+
"images"
|
|
570
|
+
]
|
|
571
|
+
},
|
|
572
|
+
"maxResults": {
|
|
573
|
+
"type": "number",
|
|
574
|
+
"minimum": 1,
|
|
575
|
+
"maximum": 20
|
|
576
|
+
},
|
|
577
|
+
"locale": {
|
|
578
|
+
"anyOf": [
|
|
579
|
+
{
|
|
580
|
+
"type": "string"
|
|
581
|
+
},
|
|
582
|
+
{
|
|
583
|
+
"type": "object",
|
|
584
|
+
"properties": {
|
|
585
|
+
"country": {
|
|
586
|
+
"type": "string"
|
|
587
|
+
},
|
|
588
|
+
"language": {
|
|
589
|
+
"type": "string"
|
|
590
|
+
},
|
|
591
|
+
"region": {
|
|
592
|
+
"type": "string"
|
|
593
|
+
},
|
|
594
|
+
"city": {
|
|
595
|
+
"type": "string"
|
|
596
|
+
},
|
|
597
|
+
"timezone": {
|
|
598
|
+
"type": "string"
|
|
599
|
+
}
|
|
600
|
+
},
|
|
601
|
+
"additionalProperties": false
|
|
602
|
+
}
|
|
603
|
+
]
|
|
604
|
+
},
|
|
605
|
+
"contextSize": {
|
|
606
|
+
"type": "string",
|
|
607
|
+
"enum": [
|
|
608
|
+
"low",
|
|
609
|
+
"medium",
|
|
610
|
+
"high"
|
|
611
|
+
]
|
|
612
|
+
}
|
|
613
|
+
},
|
|
614
|
+
"required": [
|
|
615
|
+
"query"
|
|
616
|
+
],
|
|
617
|
+
"additionalProperties": false
|
|
618
|
+
},
|
|
619
|
+
"annotations": {
|
|
620
|
+
"title": "Mixdog Web Search",
|
|
621
|
+
"readOnlyHint": true,
|
|
622
|
+
"destructiveHint": false,
|
|
623
|
+
"idempotentHint": true,
|
|
624
|
+
"openWorldHint": true
|
|
625
|
+
},
|
|
626
|
+
"module": "search"
|
|
627
|
+
},
|
|
628
|
+
{
|
|
629
|
+
"name": "web_fetch",
|
|
630
|
+
"title": "Mixdog Web Fetch",
|
|
631
|
+
"description": "Fetch full page body from a URL (web page, article, docs). Requires url. Use after search to read a result.",
|
|
632
|
+
"inputSchema": {
|
|
633
|
+
"type": "object",
|
|
634
|
+
"properties": {
|
|
635
|
+
"url": {
|
|
636
|
+
"anyOf": [
|
|
637
|
+
{
|
|
638
|
+
"type": "string"
|
|
639
|
+
},
|
|
640
|
+
{
|
|
641
|
+
"type": "array",
|
|
642
|
+
"items": {
|
|
643
|
+
"type": "string"
|
|
644
|
+
},
|
|
645
|
+
"minItems": 1
|
|
646
|
+
}
|
|
647
|
+
]
|
|
648
|
+
},
|
|
649
|
+
"startIndex": {
|
|
650
|
+
"type": "number",
|
|
651
|
+
"minimum": 0
|
|
652
|
+
},
|
|
653
|
+
"maxLength": {
|
|
654
|
+
"type": "number",
|
|
655
|
+
"minimum": 0
|
|
656
|
+
}
|
|
657
|
+
},
|
|
658
|
+
"required": [
|
|
659
|
+
"url"
|
|
660
|
+
],
|
|
661
|
+
"additionalProperties": false
|
|
662
|
+
},
|
|
663
|
+
"annotations": {
|
|
664
|
+
"title": "Mixdog Web Fetch",
|
|
665
|
+
"readOnlyHint": true,
|
|
666
|
+
"destructiveHint": false,
|
|
667
|
+
"idempotentHint": true,
|
|
668
|
+
"openWorldHint": true
|
|
669
|
+
},
|
|
670
|
+
"module": "search"
|
|
671
|
+
},
|
|
672
|
+
{
|
|
673
|
+
"name": "list_models",
|
|
674
|
+
"title": "List Models",
|
|
675
|
+
"annotations": {
|
|
676
|
+
"title": "List Models",
|
|
677
|
+
"readOnlyHint": true,
|
|
678
|
+
"destructiveHint": false,
|
|
679
|
+
"idempotentHint": true,
|
|
680
|
+
"openWorldHint": false
|
|
681
|
+
},
|
|
682
|
+
"description": "List models.",
|
|
683
|
+
"inputSchema": {
|
|
684
|
+
"type": "object",
|
|
685
|
+
"properties": {}
|
|
686
|
+
},
|
|
687
|
+
"module": "agent"
|
|
688
|
+
},
|
|
689
|
+
{
|
|
690
|
+
"name": "explore",
|
|
691
|
+
"title": "Explore",
|
|
692
|
+
"aiWrapped": true,
|
|
693
|
+
"annotations": {
|
|
694
|
+
"title": "Explore",
|
|
695
|
+
"readOnlyHint": true,
|
|
696
|
+
"destructiveHint": false,
|
|
697
|
+
"idempotentHint": true,
|
|
698
|
+
"openWorldHint": false
|
|
699
|
+
},
|
|
700
|
+
"description": "Read-only codebase EXPLORATION — fact-finding only: locate/map where and how things are implemented, for open-ended/unknown scope (for a known or partial identifier use code_graph; recall=memory, search=web). NOT a reviewer/auditor: explorers LOCATE and DESCRIBE code, never judge it — bug/quality/risk claims in explore output are UNVERIFIED leads; verify them (reviewer role or direct reads) before acting on or reporting them. Shape every query as a LOCATION/INVENTORY question (\"where is X handled\", \"which files implement Y\", \"what does Z read/write\") — NEVER a verdict question (\"is X correct/missing/inconsistent?\", \"are there gaps/bugs?\"); the judgment stays with the caller, applied to the coordinates explore returns. Query shaping (one-line, one topic per item, decompose a multi-part brief) is specified on the query parameter — follow it. Fan-out runs items in parallel; wall-clock = the slowest item. LEAD: default background:true (answer pushed via channel, avoids the 120s sync cap). BRIDGE WORKERS run it sync and SHOULD prefer it for a tree-wide enumeration or broad/unanchored exploration — ONE call offloads the whole sweep into a sub-agent instead of a long grep/code_graph storm; a bounded/known-anchor lookup stays a direct code_graph/grep call.",
|
|
701
|
+
"inputSchema": {
|
|
702
|
+
"type": "object",
|
|
703
|
+
"properties": {
|
|
704
|
+
"query": {
|
|
705
|
+
"anyOf": [
|
|
706
|
+
{
|
|
707
|
+
"type": "string"
|
|
708
|
+
},
|
|
709
|
+
{
|
|
710
|
+
"type": "array",
|
|
711
|
+
"items": {
|
|
712
|
+
"type": "string"
|
|
713
|
+
},
|
|
714
|
+
"minItems": 1
|
|
715
|
+
}
|
|
716
|
+
],
|
|
717
|
+
"description": "Array of independent ONE-LINE questions: each item is ONE short question on ONE topic — do NOT pass a whole brief/context dump as one item; DECOMPOSE a multi-part task into several one-line per-topic questions here. Split by topic; never one broad query. Each item must be location/inventory-shaped (where/which/what), never verdict-shaped (is-it-correct / are-there-problems)."
|
|
718
|
+
},
|
|
719
|
+
"cwd": {
|
|
720
|
+
"type": "string"
|
|
721
|
+
},
|
|
722
|
+
"background": {
|
|
723
|
+
"type": "boolean"
|
|
724
|
+
}
|
|
725
|
+
},
|
|
726
|
+
"required": [
|
|
727
|
+
"query"
|
|
728
|
+
],
|
|
729
|
+
"additionalProperties": false
|
|
730
|
+
},
|
|
731
|
+
"module": "agent"
|
|
732
|
+
},
|
|
733
|
+
{
|
|
734
|
+
"name": "bridge",
|
|
735
|
+
"title": "Bridge to External Model",
|
|
736
|
+
"annotations": {
|
|
737
|
+
"title": "Bridge to External Model",
|
|
738
|
+
"readOnlyHint": false,
|
|
739
|
+
"destructiveHint": true,
|
|
740
|
+
"idempotentHint": false,
|
|
741
|
+
"openWorldHint": true,
|
|
742
|
+
"bridgeHidden": true
|
|
743
|
+
},
|
|
744
|
+
"description": "Unified worker session control. type selects the action (default \"spawn\"). spawn: dispatch a detached worker — requires role + message (alias: prompt); optional tag names the session for later send/close (auto \"<role><n>\" if omitted). send: resume a worker by tag (or raw sess_ id) — requires tag + message. To CONTINUE the same task on the same files/context — fix rounds, re-reviews, iterative refinement, or any follow-up — PREFER reusing the original tag over a new spawn: it preserves the worker's transcript + file context + change history, so it is faster, cheaper (the prompt cache stays warm), and more accurate than re-discovering from scratch. The return's respawned flag = false when the live session continued (context kept), true when a closed/cold tag was respawned fresh (context reset). close: stop a worker — requires tag. list: enumerate active worker sessions with stage/staleness — no args (optional role/status filter).",
|
|
745
|
+
"inputSchema": {
|
|
746
|
+
"type": "object",
|
|
747
|
+
"properties": {
|
|
748
|
+
"type": {
|
|
749
|
+
"type": "string",
|
|
750
|
+
"enum": [
|
|
751
|
+
"spawn",
|
|
752
|
+
"send",
|
|
753
|
+
"close",
|
|
754
|
+
"list"
|
|
755
|
+
],
|
|
756
|
+
"description": "Action discriminator. Default \"spawn\"."
|
|
757
|
+
},
|
|
758
|
+
"role": {
|
|
759
|
+
"type": "string",
|
|
760
|
+
"description": "Worker role (from user-workflow). Required for spawn; optional filter for list."
|
|
761
|
+
},
|
|
762
|
+
"tag": {
|
|
763
|
+
"type": "string",
|
|
764
|
+
"description": "Stable session handle. spawn: optional name; send/close: required target (tag or raw sess_ id)."
|
|
765
|
+
},
|
|
766
|
+
"message": {
|
|
767
|
+
"type": "string",
|
|
768
|
+
"description": "Brief for spawn / follow-up for send. `prompt` is accepted as an alias on spawn. A spawn brief must state: goal+why, mode (write-code vs research-only), anchor (file:line/symbol/command), and done (output shape + stop condition)."
|
|
769
|
+
},
|
|
770
|
+
"prompt": {
|
|
771
|
+
"type": "string",
|
|
772
|
+
"description": "Alias of message for spawn (backward compat)."
|
|
773
|
+
},
|
|
774
|
+
"status": {
|
|
775
|
+
"type": "string",
|
|
776
|
+
"description": "list: optional status filter (e.g. running, idle, error)."
|
|
777
|
+
},
|
|
778
|
+
"provider": {
|
|
779
|
+
"type": "string",
|
|
780
|
+
"description": "spawn: override the worker provider."
|
|
781
|
+
},
|
|
782
|
+
"model": {
|
|
783
|
+
"type": "string",
|
|
784
|
+
"description": "spawn: override the worker model."
|
|
785
|
+
},
|
|
786
|
+
"effort": {
|
|
787
|
+
"type": "string",
|
|
788
|
+
"description": "spawn: reasoning effort level for the worker."
|
|
789
|
+
},
|
|
790
|
+
"fast": {
|
|
791
|
+
"type": "boolean",
|
|
792
|
+
"description": "spawn: enable fast mode (lower-latency, lighter worker)."
|
|
793
|
+
},
|
|
794
|
+
"preset": {
|
|
795
|
+
"type": "string",
|
|
796
|
+
"description": "spawn: profile preset selecting provider/model/effort."
|
|
797
|
+
},
|
|
798
|
+
"isolation": {
|
|
799
|
+
"type": "string",
|
|
800
|
+
"enum": [
|
|
801
|
+
"worktree"
|
|
802
|
+
],
|
|
803
|
+
"description": "spawn: run the worker in a dedicated git worktree + branch (opt-in; best-effort — falls back to the plain cwd outside a git repo). Use when parallel workers must edit the same files."
|
|
804
|
+
},
|
|
805
|
+
"brief": {
|
|
806
|
+
"type": "boolean",
|
|
807
|
+
"description": "list: return brief (condensed) session output."
|
|
808
|
+
},
|
|
809
|
+
"includeClosed": {
|
|
810
|
+
"type": "boolean",
|
|
811
|
+
"description": "list: include closed/finished sessions in the listing."
|
|
812
|
+
},
|
|
813
|
+
"context": {
|
|
814
|
+
"type": "string"
|
|
815
|
+
},
|
|
816
|
+
"ref": {
|
|
817
|
+
"type": "string"
|
|
818
|
+
},
|
|
819
|
+
"file": {
|
|
820
|
+
"type": "string"
|
|
821
|
+
},
|
|
822
|
+
"cwd": {
|
|
823
|
+
"type": "string"
|
|
824
|
+
},
|
|
825
|
+
"permission_mode": {
|
|
826
|
+
"type": "string",
|
|
827
|
+
"enum": [
|
|
828
|
+
"default",
|
|
829
|
+
"acceptEdits",
|
|
830
|
+
"bypassPermissions",
|
|
831
|
+
"plan"
|
|
832
|
+
]
|
|
833
|
+
}
|
|
834
|
+
},
|
|
835
|
+
"required": []
|
|
836
|
+
},
|
|
837
|
+
"module": "agent"
|
|
838
|
+
},
|
|
839
|
+
{
|
|
840
|
+
"name": "code_graph",
|
|
841
|
+
"title": "Code Graph",
|
|
842
|
+
"annotations": {
|
|
843
|
+
"title": "Code Graph",
|
|
844
|
+
"readOnlyHint": true,
|
|
845
|
+
"destructiveHint": false,
|
|
846
|
+
"idempotentHint": true,
|
|
847
|
+
"openWorldHint": false,
|
|
848
|
+
"compressible": false,
|
|
849
|
+
"compressibleLossless": true
|
|
850
|
+
},
|
|
851
|
+
"description": "Query the project code graph by `mode` — ONE call replaces many grep+read turns; the first-class way to locate a SYMBOL (function/class/variable/constant) or map a file. Reach for it BEFORE grep — grep is only for free-text / non-symbol content (string literals, config keys, log messages, comments).\n\nUPSTREAM-TRACE RULE (read first): to find who ultimately triggers a symbol, make EXACTLY ONE `callers` call with depth:N (2-5) on the ROOT and treat the returned tree as the FINAL, COMPLETE answer — every returned caller node carries its call-site file:line, so do NOT re-run `callers` on a node listed in the tree and do NOT grep/read those nodes to verify. One call, then report — and if the result ends with \"# NEXT\", just re-run with page:N+1 (still code_graph, never grep/read) until \"# END\".\n\nMODES:\n• LOCATE — find_symbol (exact name; body:true by default returns location + callees + full body in one call) or search (keyword/substring, file-less; lists matching symbol names + declaration file:line).\n• FILE-SCOPED (set file:) — overview (file summary; OR omit file for a whole-project summary), symbols (symbols declared in the file), imports (the file imports), dependents (files that import it), related (connected files).\n• TRACE A SYMBOL — callers / callees / references (who calls / is called / uses). Omit file: for exhaustive cross-module results; add file: only to narrow.\n• IMPACT — file-scoped blast-radius for a file (file: required), optionally narrowed by symbol.\n• BATCH — find_symbol / callers / callees / references accept symbols:[] to run many names in ONE call, so a call chain costs one call per LEVEL, not per symbol.\n• PREWARM — warm the graph/symbol cache; returns immediately.",
|
|
852
|
+
"inputSchema": {
|
|
853
|
+
"type": "object",
|
|
854
|
+
"properties": {
|
|
855
|
+
"mode": {
|
|
856
|
+
"type": "string",
|
|
857
|
+
"enum": [
|
|
858
|
+
"overview",
|
|
859
|
+
"imports",
|
|
860
|
+
"dependents",
|
|
861
|
+
"related",
|
|
862
|
+
"impact",
|
|
863
|
+
"symbols",
|
|
864
|
+
"find_symbol",
|
|
865
|
+
"search",
|
|
866
|
+
"references",
|
|
867
|
+
"callers",
|
|
868
|
+
"callees",
|
|
869
|
+
"prewarm"
|
|
870
|
+
]
|
|
871
|
+
},
|
|
872
|
+
"file": {
|
|
873
|
+
"type": "string",
|
|
874
|
+
"description": "Target file (overview/symbols/imports/dependents/related/impact), or a scope filter on a symbol query."
|
|
875
|
+
},
|
|
876
|
+
"symbol": {
|
|
877
|
+
"type": "string",
|
|
878
|
+
"description": "Target identifier. For mode search, a keyword/substring to match symbol names (file-less)."
|
|
879
|
+
},
|
|
880
|
+
"symbols": {
|
|
881
|
+
"type": "array",
|
|
882
|
+
"items": {
|
|
883
|
+
"type": "string"
|
|
884
|
+
},
|
|
885
|
+
"description": "Batch query: find_symbol/callers/callees/references (and prewarm) run once per name in a single call. Use symbol for a single lookup."
|
|
886
|
+
},
|
|
887
|
+
"body": {
|
|
888
|
+
"type": "boolean",
|
|
889
|
+
"description": "find_symbol: include the declaration body. DEFAULT true — one call returns location + callees + body, no follow-up read; pass false for a compact locate-only result. Bodies over 120 lines arrive head/tail-elided with a \"read <path> symbol=<name>\" hint for the full text (300-line hard cap)."
|
|
890
|
+
},
|
|
891
|
+
"language": {
|
|
892
|
+
"type": "string",
|
|
893
|
+
"description": "Optional language hint (auto-detected from the file extension otherwise)."
|
|
894
|
+
},
|
|
895
|
+
"limit": {
|
|
896
|
+
"type": "number",
|
|
897
|
+
"description": "Max results to return."
|
|
898
|
+
},
|
|
899
|
+
"depth": {
|
|
900
|
+
"type": "number",
|
|
901
|
+
"description": "callers only. 1 = direct callers (default). 2-5 returns the transitive caller TREE (caller-of-caller) in ONE call, each node tagged with its call-site file:line — see the UPSTREAM-TRACE RULE in the tool description. Name-based (same-named functions across files merge)."
|
|
902
|
+
},
|
|
903
|
+
"page": {
|
|
904
|
+
"type": "number",
|
|
905
|
+
"description": "callers tree (depth>=2) only: 1-based page, 100 nodes/page. On \"# NEXT\", re-run the SAME query with page:N+1 (per the UPSTREAM-TRACE RULE)."
|
|
906
|
+
},
|
|
907
|
+
"cwd": {
|
|
908
|
+
"type": "string",
|
|
909
|
+
"description": "Project root to scope the graph (defaults to the session cwd)."
|
|
910
|
+
}
|
|
911
|
+
},
|
|
912
|
+
"required": [
|
|
913
|
+
"mode"
|
|
914
|
+
]
|
|
915
|
+
},
|
|
916
|
+
"module": "code_graph"
|
|
917
|
+
},
|
|
918
|
+
{
|
|
919
|
+
"name": "glob",
|
|
920
|
+
"title": "Mixdog Glob",
|
|
921
|
+
"annotations": {
|
|
922
|
+
"title": "Mixdog Glob",
|
|
923
|
+
"readOnlyHint": true,
|
|
924
|
+
"destructiveHint": false,
|
|
925
|
+
"idempotentHint": true,
|
|
926
|
+
"openWorldHint": false,
|
|
927
|
+
"compressible": true
|
|
928
|
+
},
|
|
929
|
+
"description": "Find files by glob pattern (mtime-sorted). For name/size/date filters use list mode:find.",
|
|
930
|
+
"inputSchema": {
|
|
931
|
+
"type": "object",
|
|
932
|
+
"properties": {
|
|
933
|
+
"pattern": {
|
|
934
|
+
"anyOf": [
|
|
935
|
+
{
|
|
936
|
+
"type": "string"
|
|
937
|
+
},
|
|
938
|
+
{
|
|
939
|
+
"type": "array",
|
|
940
|
+
"items": {
|
|
941
|
+
"type": "string"
|
|
942
|
+
},
|
|
943
|
+
"minItems": 1
|
|
944
|
+
}
|
|
945
|
+
],
|
|
946
|
+
"description": "Glob or array."
|
|
947
|
+
},
|
|
948
|
+
"path": {
|
|
949
|
+
"anyOf": [
|
|
950
|
+
{
|
|
951
|
+
"type": "string"
|
|
952
|
+
},
|
|
953
|
+
{
|
|
954
|
+
"type": "array",
|
|
955
|
+
"items": {
|
|
956
|
+
"type": "string"
|
|
957
|
+
},
|
|
958
|
+
"minItems": 1
|
|
959
|
+
}
|
|
960
|
+
],
|
|
961
|
+
"description": "Base dir or array."
|
|
962
|
+
},
|
|
963
|
+
"head_limit": {
|
|
964
|
+
"type": "number",
|
|
965
|
+
"description": "Max entries returned (mtime-sorted). A truncated listing ends with \"pass offset:N to continue\" — re-call with that offset to page."
|
|
966
|
+
},
|
|
967
|
+
"offset": {
|
|
968
|
+
"type": "number",
|
|
969
|
+
"description": "Skip N entries before head_limit applies; use the footer-suggested value to page."
|
|
970
|
+
}
|
|
971
|
+
},
|
|
972
|
+
"required": [
|
|
973
|
+
"pattern"
|
|
974
|
+
]
|
|
975
|
+
},
|
|
976
|
+
"module": "builtin"
|
|
977
|
+
},
|
|
978
|
+
{
|
|
979
|
+
"name": "list",
|
|
980
|
+
"title": "Mixdog List Directory",
|
|
981
|
+
"annotations": {
|
|
982
|
+
"title": "Mixdog List Directory",
|
|
983
|
+
"readOnlyHint": true,
|
|
984
|
+
"destructiveHint": false,
|
|
985
|
+
"idempotentHint": true,
|
|
986
|
+
"openWorldHint": false,
|
|
987
|
+
"compressible": true
|
|
988
|
+
},
|
|
989
|
+
"description": "List or find directory entries. mode: list | tree | find (name/size/date filter). fuzzy ranks by partial name. Default cwd.",
|
|
990
|
+
"inputSchema": {
|
|
991
|
+
"type": "object",
|
|
992
|
+
"properties": {
|
|
993
|
+
"path": {
|
|
994
|
+
"type": "string"
|
|
995
|
+
},
|
|
996
|
+
"mode": {
|
|
997
|
+
"type": "string",
|
|
998
|
+
"enum": [
|
|
999
|
+
"list",
|
|
1000
|
+
"tree",
|
|
1001
|
+
"find"
|
|
1002
|
+
],
|
|
1003
|
+
"description": "Default list (flat dir). tree = recursive tree; find = name/size/date filter."
|
|
1004
|
+
},
|
|
1005
|
+
"depth": {
|
|
1006
|
+
"type": "number"
|
|
1007
|
+
},
|
|
1008
|
+
"hidden": {
|
|
1009
|
+
"type": "boolean"
|
|
1010
|
+
},
|
|
1011
|
+
"sort": {
|
|
1012
|
+
"type": "string",
|
|
1013
|
+
"enum": [
|
|
1014
|
+
"name",
|
|
1015
|
+
"mtime",
|
|
1016
|
+
"size"
|
|
1017
|
+
]
|
|
1018
|
+
},
|
|
1019
|
+
"type": {
|
|
1020
|
+
"type": "string",
|
|
1021
|
+
"enum": [
|
|
1022
|
+
"any",
|
|
1023
|
+
"file",
|
|
1024
|
+
"dir"
|
|
1025
|
+
]
|
|
1026
|
+
},
|
|
1027
|
+
"head_limit": {
|
|
1028
|
+
"type": "number",
|
|
1029
|
+
"description": "Max entries returned. A truncated listing ends with \"[entries X-Y of T; pass offset:N to continue]\" — re-call with that offset to page."
|
|
1030
|
+
},
|
|
1031
|
+
"offset": {
|
|
1032
|
+
"type": "number",
|
|
1033
|
+
"description": "Skip N entries before head_limit applies; use the footer-suggested value to page."
|
|
1034
|
+
},
|
|
1035
|
+
"include_noise": {
|
|
1036
|
+
"type": "boolean"
|
|
1037
|
+
},
|
|
1038
|
+
"name": {
|
|
1039
|
+
"type": "string"
|
|
1040
|
+
},
|
|
1041
|
+
"min_size": {
|
|
1042
|
+
"type": "number"
|
|
1043
|
+
},
|
|
1044
|
+
"max_size": {
|
|
1045
|
+
"type": "number"
|
|
1046
|
+
},
|
|
1047
|
+
"modified_after": {
|
|
1048
|
+
"type": "string"
|
|
1049
|
+
},
|
|
1050
|
+
"modified_before": {
|
|
1051
|
+
"type": "string"
|
|
1052
|
+
},
|
|
1053
|
+
"fuzzy": {
|
|
1054
|
+
"type": "string",
|
|
1055
|
+
"description": "Rank files by subsequence match of this partial name; overrides mode. e.g. \"edeng\" -> edit-engine.mjs."
|
|
1056
|
+
}
|
|
1057
|
+
},
|
|
1058
|
+
"required": []
|
|
1059
|
+
},
|
|
1060
|
+
"module": "builtin"
|
|
1061
|
+
},
|
|
1062
|
+
{
|
|
1063
|
+
"name": "grep",
|
|
1064
|
+
"title": "Mixdog Grep",
|
|
1065
|
+
"annotations": {
|
|
1066
|
+
"title": "Mixdog Grep",
|
|
1067
|
+
"readOnlyHint": true,
|
|
1068
|
+
"destructiveHint": false,
|
|
1069
|
+
"idempotentHint": true,
|
|
1070
|
+
"openWorldHint": false,
|
|
1071
|
+
"compressible": true
|
|
1072
|
+
},
|
|
1073
|
+
"description": "Search file contents (ripgrep): free-text / non-symbol content. For a symbol by name use code_graph, not grep. pattern (regex) or glob. output_mode: content (default) | files_with_matches | count. Array pattern matches several in ONE call. -A/-B/-C is line-based — useless on minified/single-line files; use -o or multiline.",
|
|
1074
|
+
"inputSchema": {
|
|
1075
|
+
"type": "object",
|
|
1076
|
+
"properties": {
|
|
1077
|
+
"pattern": {
|
|
1078
|
+
"anyOf": [
|
|
1079
|
+
{
|
|
1080
|
+
"type": "string"
|
|
1081
|
+
},
|
|
1082
|
+
{
|
|
1083
|
+
"type": "array",
|
|
1084
|
+
"items": {
|
|
1085
|
+
"type": "string"
|
|
1086
|
+
},
|
|
1087
|
+
"minItems": 1
|
|
1088
|
+
}
|
|
1089
|
+
],
|
|
1090
|
+
"description": "Ripgrep regex, or an array of regexes (OR-matched; <=20, <=5 with multiline) to match several in one call."
|
|
1091
|
+
},
|
|
1092
|
+
"path": {
|
|
1093
|
+
"type": "string"
|
|
1094
|
+
},
|
|
1095
|
+
"glob": {
|
|
1096
|
+
"anyOf": [
|
|
1097
|
+
{
|
|
1098
|
+
"type": "string"
|
|
1099
|
+
},
|
|
1100
|
+
{
|
|
1101
|
+
"type": "array",
|
|
1102
|
+
"items": {
|
|
1103
|
+
"type": "string"
|
|
1104
|
+
},
|
|
1105
|
+
"minItems": 1
|
|
1106
|
+
}
|
|
1107
|
+
],
|
|
1108
|
+
"description": "Glob, or an array of globs, to filter files."
|
|
1109
|
+
},
|
|
1110
|
+
"output_mode": {
|
|
1111
|
+
"type": "string",
|
|
1112
|
+
"enum": [
|
|
1113
|
+
"files_with_matches",
|
|
1114
|
+
"content",
|
|
1115
|
+
"count"
|
|
1116
|
+
],
|
|
1117
|
+
"description": "Default content (matching lines). files_with_matches = paths only; count = per-file counts."
|
|
1118
|
+
},
|
|
1119
|
+
"head_limit": {
|
|
1120
|
+
"type": "number",
|
|
1121
|
+
"description": "Max result lines (default 80; 0 = unlimited). Truncated output says how many results remain."
|
|
1122
|
+
},
|
|
1123
|
+
"offset": {
|
|
1124
|
+
"type": "number",
|
|
1125
|
+
"description": "Skip N result lines before head_limit applies — for paging large result sets."
|
|
1126
|
+
},
|
|
1127
|
+
"-i": {
|
|
1128
|
+
"type": "boolean"
|
|
1129
|
+
},
|
|
1130
|
+
"-n": {
|
|
1131
|
+
"type": "boolean"
|
|
1132
|
+
},
|
|
1133
|
+
"-A": {
|
|
1134
|
+
"type": "number"
|
|
1135
|
+
},
|
|
1136
|
+
"-B": {
|
|
1137
|
+
"type": "number"
|
|
1138
|
+
},
|
|
1139
|
+
"-C": {
|
|
1140
|
+
"type": "number",
|
|
1141
|
+
"description": "Context lines (with -A/-B). Line-based; no effect on single-line/minified files — use -o."
|
|
1142
|
+
},
|
|
1143
|
+
"context": {
|
|
1144
|
+
"type": "number"
|
|
1145
|
+
},
|
|
1146
|
+
"multiline": {
|
|
1147
|
+
"type": "boolean",
|
|
1148
|
+
"description": "Dot matches newlines; patterns span lines (rg -U). Pair with -o on single-line/minified files."
|
|
1149
|
+
},
|
|
1150
|
+
"-o": {
|
|
1151
|
+
"type": "boolean",
|
|
1152
|
+
"description": "Only matching parts (rg --only-matching)."
|
|
1153
|
+
},
|
|
1154
|
+
"type": {
|
|
1155
|
+
"type": "string"
|
|
1156
|
+
}
|
|
1157
|
+
},
|
|
1158
|
+
"required": []
|
|
1159
|
+
},
|
|
1160
|
+
"module": "builtin"
|
|
1161
|
+
},
|
|
1162
|
+
{
|
|
1163
|
+
"name": "read",
|
|
1164
|
+
"title": "Mixdog Read",
|
|
1165
|
+
"annotations": {
|
|
1166
|
+
"title": "Mixdog Read",
|
|
1167
|
+
"readOnlyHint": true,
|
|
1168
|
+
"destructiveHint": false,
|
|
1169
|
+
"idempotentHint": true,
|
|
1170
|
+
"openWorldHint": false,
|
|
1171
|
+
"compressible": false
|
|
1172
|
+
},
|
|
1173
|
+
"description": "Read file contents (path required). symbol=NAME = whole definition; offset/limit or line/context = window; mode/max_lines = whole-file glance. Batch all regions of a file in one call. Output is the file text verbatim (line-number prefix only, no character escaping) — a \\uXXXX you see is literally in the file.",
|
|
1174
|
+
"inputSchema": {
|
|
1175
|
+
"type": "object",
|
|
1176
|
+
"properties": {
|
|
1177
|
+
"path": {
|
|
1178
|
+
"type": "string"
|
|
1179
|
+
},
|
|
1180
|
+
"offset": {
|
|
1181
|
+
"type": "number",
|
|
1182
|
+
"description": "Start line for a windowed read (1-based)."
|
|
1183
|
+
},
|
|
1184
|
+
"limit": {
|
|
1185
|
+
"type": "number",
|
|
1186
|
+
"description": "Max lines to read (default 2000; full:true uncaps)."
|
|
1187
|
+
},
|
|
1188
|
+
"line": {
|
|
1189
|
+
"type": "number"
|
|
1190
|
+
},
|
|
1191
|
+
"context": {
|
|
1192
|
+
"type": "number",
|
|
1193
|
+
"description": "Lines around `line` (default 20)."
|
|
1194
|
+
},
|
|
1195
|
+
"pages": {
|
|
1196
|
+
"type": "string"
|
|
1197
|
+
},
|
|
1198
|
+
"symbol": {
|
|
1199
|
+
"type": "string",
|
|
1200
|
+
"description": "Read a whole symbol body (function/class/const) via the code graph."
|
|
1201
|
+
},
|
|
1202
|
+
"language": {
|
|
1203
|
+
"type": "string",
|
|
1204
|
+
"description": "Language hint for symbol resolution."
|
|
1205
|
+
},
|
|
1206
|
+
"mode": {
|
|
1207
|
+
"type": "string",
|
|
1208
|
+
"enum": [
|
|
1209
|
+
"head",
|
|
1210
|
+
"tail",
|
|
1211
|
+
"count",
|
|
1212
|
+
"summary",
|
|
1213
|
+
"hex"
|
|
1214
|
+
],
|
|
1215
|
+
"description": "Whole-file glance: head/tail (first/last n), count (line/word/byte stats), summary (stats+head), hex (binary preview). For a window use offset/limit."
|
|
1216
|
+
},
|
|
1217
|
+
"n": {
|
|
1218
|
+
"type": "number",
|
|
1219
|
+
"description": "Line count for mode head/tail/summary (default 20)."
|
|
1220
|
+
},
|
|
1221
|
+
"full": {
|
|
1222
|
+
"type": "boolean",
|
|
1223
|
+
"description": "Default false. true = return whole file (bypass 2000-line cap; still byte-capped)."
|
|
1224
|
+
},
|
|
1225
|
+
"max_lines": {
|
|
1226
|
+
"type": "number",
|
|
1227
|
+
"description": "Whole-file read: cap output to ~N lines. Ignored with offset/limit/mode."
|
|
1228
|
+
},
|
|
1229
|
+
"budget": {
|
|
1230
|
+
"type": "string",
|
|
1231
|
+
"enum": [
|
|
1232
|
+
"compact"
|
|
1233
|
+
],
|
|
1234
|
+
"description": "Auto-shrink: whole-file -> count; line -> context<=20; range -> limit<=120."
|
|
1235
|
+
}
|
|
1236
|
+
}
|
|
1237
|
+
},
|
|
1238
|
+
"module": "builtin"
|
|
1239
|
+
},
|
|
1240
|
+
{
|
|
1241
|
+
"name": "edit",
|
|
1242
|
+
"title": "Mixdog Edit",
|
|
1243
|
+
"annotations": {
|
|
1244
|
+
"title": "Mixdog Edit",
|
|
1245
|
+
"readOnlyHint": false,
|
|
1246
|
+
"destructiveHint": true,
|
|
1247
|
+
"idempotentHint": false,
|
|
1248
|
+
"openWorldHint": false
|
|
1249
|
+
},
|
|
1250
|
+
"description": "Exact-string editor for small known substitutions; for large or structural changes prefer apply_patch. operation: replace (default) | notebook | rename.",
|
|
1251
|
+
"inputSchema": {
|
|
1252
|
+
"type": "object",
|
|
1253
|
+
"properties": {
|
|
1254
|
+
"operation": {
|
|
1255
|
+
"type": "string",
|
|
1256
|
+
"enum": [
|
|
1257
|
+
"replace",
|
|
1258
|
+
"notebook",
|
|
1259
|
+
"rename"
|
|
1260
|
+
],
|
|
1261
|
+
"description": "Edit mode: \"replace\" (default, exact text edit), \"notebook\" (Jupyter cell edit), or \"rename\" (symbol rename)."
|
|
1262
|
+
},
|
|
1263
|
+
"path": {
|
|
1264
|
+
"type": "string"
|
|
1265
|
+
},
|
|
1266
|
+
"old_string": {
|
|
1267
|
+
"type": "string"
|
|
1268
|
+
},
|
|
1269
|
+
"new_string": {
|
|
1270
|
+
"type": "string"
|
|
1271
|
+
},
|
|
1272
|
+
"replace_all": {
|
|
1273
|
+
"type": "boolean"
|
|
1274
|
+
},
|
|
1275
|
+
"edits": {
|
|
1276
|
+
"type": "array",
|
|
1277
|
+
"items": {
|
|
1278
|
+
"type": "object",
|
|
1279
|
+
"properties": {
|
|
1280
|
+
"path": {
|
|
1281
|
+
"type": "string"
|
|
1282
|
+
},
|
|
1283
|
+
"old_string": {
|
|
1284
|
+
"type": "string"
|
|
1285
|
+
},
|
|
1286
|
+
"new_string": {
|
|
1287
|
+
"type": "string"
|
|
1288
|
+
},
|
|
1289
|
+
"replace_all": {
|
|
1290
|
+
"type": "boolean"
|
|
1291
|
+
}
|
|
1292
|
+
},
|
|
1293
|
+
"required": [
|
|
1294
|
+
"old_string",
|
|
1295
|
+
"new_string"
|
|
1296
|
+
],
|
|
1297
|
+
"additionalProperties": false
|
|
1298
|
+
},
|
|
1299
|
+
"minItems": 1,
|
|
1300
|
+
"description": "Batch replacements (operation:\"replace\")."
|
|
1301
|
+
},
|
|
1302
|
+
"notebook_path": {
|
|
1303
|
+
"type": "string",
|
|
1304
|
+
"description": "operation:\"notebook\" — path to the .ipynb notebook to edit."
|
|
1305
|
+
},
|
|
1306
|
+
"cell_id": {
|
|
1307
|
+
"type": "string",
|
|
1308
|
+
"description": "operation:\"notebook\" — target cell: a real cell.id or a cell-N index. For insert, the new cell is placed after this cell (or at the start if omitted)."
|
|
1309
|
+
},
|
|
1310
|
+
"new_source": {
|
|
1311
|
+
"type": "string",
|
|
1312
|
+
"description": "operation:\"notebook\" — new source for the cell (not required for delete)."
|
|
1313
|
+
},
|
|
1314
|
+
"cell_type": {
|
|
1315
|
+
"type": "string",
|
|
1316
|
+
"enum": [
|
|
1317
|
+
"code",
|
|
1318
|
+
"markdown"
|
|
1319
|
+
],
|
|
1320
|
+
"description": "operation:\"notebook\" — cell type. Required for insert; otherwise defaults to the current cell type."
|
|
1321
|
+
},
|
|
1322
|
+
"edit_mode": {
|
|
1323
|
+
"type": "string",
|
|
1324
|
+
"enum": [
|
|
1325
|
+
"replace",
|
|
1326
|
+
"insert",
|
|
1327
|
+
"delete"
|
|
1328
|
+
],
|
|
1329
|
+
"description": "operation:\"notebook\" — replace (default), insert, or delete."
|
|
1330
|
+
},
|
|
1331
|
+
"symbol": {
|
|
1332
|
+
"type": "string",
|
|
1333
|
+
"description": "operation:\"rename\" — identifier to rename."
|
|
1334
|
+
},
|
|
1335
|
+
"new_name": {
|
|
1336
|
+
"type": "string",
|
|
1337
|
+
"description": "operation:\"rename\" — new identifier."
|
|
1338
|
+
},
|
|
1339
|
+
"file": {
|
|
1340
|
+
"type": "string",
|
|
1341
|
+
"description": "operation:\"rename\" — optional file to scope the reference search."
|
|
1342
|
+
},
|
|
1343
|
+
"apply": {
|
|
1344
|
+
"type": "boolean",
|
|
1345
|
+
"description": "operation:\"rename\" — default false (preview). Set true to perform the rename."
|
|
1346
|
+
}
|
|
1347
|
+
}
|
|
1348
|
+
},
|
|
1349
|
+
"module": "builtin"
|
|
1350
|
+
},
|
|
1351
|
+
{
|
|
1352
|
+
"name": "write",
|
|
1353
|
+
"title": "Mixdog Write",
|
|
1354
|
+
"annotations": {
|
|
1355
|
+
"title": "Mixdog Write",
|
|
1356
|
+
"readOnlyHint": false,
|
|
1357
|
+
"destructiveHint": true,
|
|
1358
|
+
"idempotentHint": false,
|
|
1359
|
+
"openWorldHint": false
|
|
1360
|
+
},
|
|
1361
|
+
"description": "Write a whole file — new, or a full rewrite of one already read. For partial edits use apply_patch; never overwrite an unread file.",
|
|
1362
|
+
"inputSchema": {
|
|
1363
|
+
"type": "object",
|
|
1364
|
+
"properties": {
|
|
1365
|
+
"path": {
|
|
1366
|
+
"type": "string"
|
|
1367
|
+
},
|
|
1368
|
+
"content": {
|
|
1369
|
+
"type": "string"
|
|
1370
|
+
},
|
|
1371
|
+
"allow_unread_overwrite": {
|
|
1372
|
+
"type": "boolean",
|
|
1373
|
+
"description": "Default false. true = skip ONLY the read-before-overwrite snapshot gate when you already know the full intended content; all other write safety checks still apply."
|
|
1374
|
+
},
|
|
1375
|
+
"writes": {
|
|
1376
|
+
"type": "array",
|
|
1377
|
+
"items": {
|
|
1378
|
+
"type": "object",
|
|
1379
|
+
"properties": {
|
|
1380
|
+
"path": {
|
|
1381
|
+
"type": "string"
|
|
1382
|
+
},
|
|
1383
|
+
"content": {
|
|
1384
|
+
"type": "string"
|
|
1385
|
+
}
|
|
1386
|
+
},
|
|
1387
|
+
"required": [
|
|
1388
|
+
"path",
|
|
1389
|
+
"content"
|
|
1390
|
+
],
|
|
1391
|
+
"additionalProperties": false
|
|
1392
|
+
},
|
|
1393
|
+
"minItems": 1,
|
|
1394
|
+
"description": "Batch writes."
|
|
1395
|
+
}
|
|
1396
|
+
}
|
|
1397
|
+
},
|
|
1398
|
+
"module": "builtin"
|
|
1399
|
+
},
|
|
1400
|
+
{
|
|
1401
|
+
"name": "apply_patch",
|
|
1402
|
+
"title": "Mixdog Apply Patch",
|
|
1403
|
+
"annotations": {
|
|
1404
|
+
"title": "Mixdog Apply Patch",
|
|
1405
|
+
"readOnlyHint": false,
|
|
1406
|
+
"destructiveHint": true,
|
|
1407
|
+
"idempotentHint": false,
|
|
1408
|
+
"openWorldHint": false,
|
|
1409
|
+
"compressible": false,
|
|
1410
|
+
"compressibleLossless": true
|
|
1411
|
+
},
|
|
1412
|
+
"description": "The default editor for existing files — prefer over write/edit for any non-trivial change: self-validating — the hunk context lines ARE the match proof, so they must match the CURRENT file bytes EXACTLY (indentation included). If you have not read the target region this turn, read it first; guessed or stale context is the top cause of \"context not found\". Apply a patch (unified or V4A); set base_path to the repo root so a/... paths resolve. Multi-hunk/multi-file; dry_run validates without writing. Prefer V4A; see patch field for hunk syntax.",
|
|
1413
|
+
"inputSchema": {
|
|
1414
|
+
"type": "object",
|
|
1415
|
+
"properties": {
|
|
1416
|
+
"patch": {
|
|
1417
|
+
"type": "string",
|
|
1418
|
+
"description": "Patch text; match `format`. V4A (preferred): `*** Begin Patch`…`*** End Patch`; per file `*** Update/Add/Delete File: <real path>` (no `a/`·`b/`); body lines ` `=context/`-`=del/`+`=add. Include ~3 UNCHANGED context lines above AND below each change, copied verbatim from the current file (indentation included). If 3 lines do not uniquely locate the snippet, add `@@ <enclosing class/function>` immediately above it; if a block repeats so often that one `@@`+3 lines is still ambiguous, stack multiple `@@` (e.g. `@@ class Foo` then `@@ def bar():`). `@@ <ctx>` anchors must quote a UNIQUE line ABOVE the whole context block — NOT a line you also include in the hunk body, and never below the edit (→ \"context not found\"). For files without classes/functions (JSON, config), prefer extra context lines over `@@`, or anchor on the enclosing key (e.g. `@@ \"items\": [`). No line counts. Unified: counted `@@ -A,B +C,D @@` headers required (bare `@@` rejected); `a/`·`b/` prefixes stripped on apply."
|
|
1419
|
+
},
|
|
1420
|
+
"format": {
|
|
1421
|
+
"type": "string",
|
|
1422
|
+
"enum": [
|
|
1423
|
+
"unified",
|
|
1424
|
+
"v4a"
|
|
1425
|
+
],
|
|
1426
|
+
"description": "Auto-detected if omitted. Prefer v4a (`*** Begin Patch` envelope, `@@ <ctx>` anchors, no line counts); unified needs counted `@@ -A,B +C,D @@` headers."
|
|
1427
|
+
},
|
|
1428
|
+
"base_path": {
|
|
1429
|
+
"type": "string",
|
|
1430
|
+
"description": "Repo root so a/... paths resolve."
|
|
1431
|
+
},
|
|
1432
|
+
"dry_run": {
|
|
1433
|
+
"type": "boolean",
|
|
1434
|
+
"description": "Default false. true = validate only, no write."
|
|
1435
|
+
},
|
|
1436
|
+
"reject_partial": {
|
|
1437
|
+
"type": "boolean",
|
|
1438
|
+
"description": "Default true (all-or-nothing). false = apply landed hunks, skip failures."
|
|
1439
|
+
},
|
|
1440
|
+
"fuzzy": {
|
|
1441
|
+
"type": "boolean",
|
|
1442
|
+
"description": "Default true: tolerate minor context drift; false = exact match."
|
|
1443
|
+
}
|
|
1444
|
+
},
|
|
1445
|
+
"required": [
|
|
1446
|
+
"patch"
|
|
1447
|
+
]
|
|
1448
|
+
},
|
|
1449
|
+
"module": "patch"
|
|
1450
|
+
},
|
|
1451
|
+
{
|
|
1452
|
+
"name": "bash",
|
|
1453
|
+
"title": "Mixdog Shell",
|
|
1454
|
+
"annotations": {
|
|
1455
|
+
"title": "Mixdog Shell",
|
|
1456
|
+
"readOnlyHint": false,
|
|
1457
|
+
"destructiveHint": true,
|
|
1458
|
+
"idempotentHint": false,
|
|
1459
|
+
"openWorldHint": true,
|
|
1460
|
+
"compressible": true
|
|
1461
|
+
},
|
|
1462
|
+
"description": "Shell for git/build/test/run. Use current-OS syntax: Windows default = PowerShell; POSIX default = /bin/sh. Always pass shell matching your syntax: 'bash' = POSIX via Git Bash, 'powershell' = PS cmdlets; omitting uses the OS default and mis-parses the other. run_in_background works for both shells, including Windows shell:'bash' (Git Bash). Single shell entry point; not for inline code you were asked to return.",
|
|
1463
|
+
"inputSchema": {
|
|
1464
|
+
"type": "object",
|
|
1465
|
+
"properties": {
|
|
1466
|
+
"command": {
|
|
1467
|
+
"type": "string"
|
|
1468
|
+
},
|
|
1469
|
+
"cwd": {
|
|
1470
|
+
"type": "string"
|
|
1471
|
+
},
|
|
1472
|
+
"timeout": {
|
|
1473
|
+
"type": "number",
|
|
1474
|
+
"description": "Timeout in ms, or seconds when <=600."
|
|
1475
|
+
},
|
|
1476
|
+
"merge_stderr": {
|
|
1477
|
+
"type": "boolean"
|
|
1478
|
+
},
|
|
1479
|
+
"run_in_background": {
|
|
1480
|
+
"type": "boolean"
|
|
1481
|
+
},
|
|
1482
|
+
"persistent": {
|
|
1483
|
+
"type": "boolean"
|
|
1484
|
+
},
|
|
1485
|
+
"session_id": {
|
|
1486
|
+
"type": "string"
|
|
1487
|
+
},
|
|
1488
|
+
"create": {
|
|
1489
|
+
"type": "boolean",
|
|
1490
|
+
"description": "Allow creating a new persistent session for an explicit session_id."
|
|
1491
|
+
},
|
|
1492
|
+
"close": {
|
|
1493
|
+
"type": "boolean"
|
|
1494
|
+
},
|
|
1495
|
+
"shell": {
|
|
1496
|
+
"type": "string",
|
|
1497
|
+
"enum": [
|
|
1498
|
+
"bash",
|
|
1499
|
+
"powershell"
|
|
1500
|
+
],
|
|
1501
|
+
"description": "Force the shell. On Windows: 'bash' runs the command through Git Bash (POSIX syntax), 'powershell' forces PowerShell. On POSIX: 'powershell' resolves pwsh if installed (errors if absent); 'bash' is /bin/sh (already the default). Always set this explicitly; omitting uses the OS default (PowerShell on Windows), where POSIX syntax fails to parse."
|
|
1502
|
+
}
|
|
1503
|
+
},
|
|
1504
|
+
"required": [
|
|
1505
|
+
"command"
|
|
1506
|
+
]
|
|
1507
|
+
},
|
|
1508
|
+
"module": "builtin"
|
|
1509
|
+
},
|
|
1510
|
+
{
|
|
1511
|
+
"name": "job_wait",
|
|
1512
|
+
"title": "Background Job Control",
|
|
1513
|
+
"annotations": {
|
|
1514
|
+
"title": "Background Job Control",
|
|
1515
|
+
"readOnlyHint": false,
|
|
1516
|
+
"destructiveHint": false,
|
|
1517
|
+
"idempotentHint": false,
|
|
1518
|
+
"openWorldHint": false
|
|
1519
|
+
},
|
|
1520
|
+
"description": "Control a bash run_in_background job by job_id. action: wait (default) | peek | kill. Not for bridge_*/sess_* ids.",
|
|
1521
|
+
"inputSchema": {
|
|
1522
|
+
"type": "object",
|
|
1523
|
+
"properties": {
|
|
1524
|
+
"job_id": {
|
|
1525
|
+
"type": "string",
|
|
1526
|
+
"description": "job_id from bash with run_in_background:true."
|
|
1527
|
+
},
|
|
1528
|
+
"action": {
|
|
1529
|
+
"type": "string",
|
|
1530
|
+
"enum": [
|
|
1531
|
+
"wait",
|
|
1532
|
+
"peek",
|
|
1533
|
+
"kill"
|
|
1534
|
+
],
|
|
1535
|
+
"description": "wait (default) = block until done; peek = non-blocking status + output tail; kill = terminate."
|
|
1536
|
+
},
|
|
1537
|
+
"timeout_ms": {
|
|
1538
|
+
"type": "number"
|
|
1539
|
+
},
|
|
1540
|
+
"poll_ms": {
|
|
1541
|
+
"type": "number"
|
|
1542
|
+
}
|
|
1543
|
+
},
|
|
1544
|
+
"required": [
|
|
1545
|
+
"job_id"
|
|
1546
|
+
]
|
|
1547
|
+
},
|
|
1548
|
+
"module": "builtin"
|
|
1549
|
+
},
|
|
1550
|
+
{
|
|
1551
|
+
"name": "diagnostics",
|
|
1552
|
+
"title": "Mixdog Diagnostics",
|
|
1553
|
+
"annotations": {
|
|
1554
|
+
"title": "Mixdog Diagnostics",
|
|
1555
|
+
"readOnlyHint": false,
|
|
1556
|
+
"destructiveHint": false,
|
|
1557
|
+
"idempotentHint": false,
|
|
1558
|
+
"openWorldHint": true,
|
|
1559
|
+
"compressible": true
|
|
1560
|
+
},
|
|
1561
|
+
"description": "Run the matching type/lint checker under path (tsc/eslint/ruff/etc.). Default cwd; no LSP.",
|
|
1562
|
+
"inputSchema": {
|
|
1563
|
+
"type": "object",
|
|
1564
|
+
"properties": {
|
|
1565
|
+
"path": {
|
|
1566
|
+
"type": "string",
|
|
1567
|
+
"description": "File or directory to diagnose. Defaults to cwd."
|
|
1568
|
+
}
|
|
1569
|
+
},
|
|
1570
|
+
"required": []
|
|
1571
|
+
},
|
|
1572
|
+
"module": "builtin"
|
|
1573
|
+
},
|
|
1574
|
+
{
|
|
1575
|
+
"name": "open_config",
|
|
1576
|
+
"title": "Open Config UI",
|
|
1577
|
+
"annotations": {
|
|
1578
|
+
"title": "Open Config UI",
|
|
1579
|
+
"readOnlyHint": false,
|
|
1580
|
+
"destructiveHint": false,
|
|
1581
|
+
"idempotentHint": true,
|
|
1582
|
+
"openWorldHint": false
|
|
1583
|
+
},
|
|
1584
|
+
"description": "Open the mixdog settings UI (Providers + Presets) in the browser. Starts the resident config server if needed and returns the UI URL. No params.",
|
|
1585
|
+
"inputSchema": {
|
|
1586
|
+
"type": "object",
|
|
1587
|
+
"properties": {}
|
|
1588
|
+
},
|
|
1589
|
+
"module": "builtin"
|
|
1590
|
+
},
|
|
1591
|
+
{
|
|
1592
|
+
"name": "inject_input",
|
|
1593
|
+
"title": "Inject Input",
|
|
1594
|
+
"annotations": {
|
|
1595
|
+
"title": "Inject Input",
|
|
1596
|
+
"readOnlyHint": false,
|
|
1597
|
+
"destructiveHint": true,
|
|
1598
|
+
"idempotentHint": false,
|
|
1599
|
+
"openWorldHint": true,
|
|
1600
|
+
"compressible": false
|
|
1601
|
+
},
|
|
1602
|
+
"description": "Inject text into the host session as if the user typed it at the prompt. Requires text.",
|
|
1603
|
+
"inputSchema": {
|
|
1604
|
+
"type": "object",
|
|
1605
|
+
"properties": {
|
|
1606
|
+
"text": {
|
|
1607
|
+
"type": "string",
|
|
1608
|
+
"minLength": 1
|
|
1609
|
+
}
|
|
1610
|
+
},
|
|
1611
|
+
"required": [
|
|
1612
|
+
"text"
|
|
1613
|
+
],
|
|
1614
|
+
"additionalProperties": false
|
|
1615
|
+
},
|
|
1616
|
+
"module": "host_input"
|
|
1617
|
+
},
|
|
1618
|
+
{
|
|
1619
|
+
"name": "cwd",
|
|
1620
|
+
"title": "Session CWD",
|
|
1621
|
+
"annotations": {
|
|
1622
|
+
"title": "Session CWD",
|
|
1623
|
+
"readOnlyHint": false,
|
|
1624
|
+
"destructiveHint": false,
|
|
1625
|
+
"idempotentHint": true,
|
|
1626
|
+
"openWorldHint": false
|
|
1627
|
+
},
|
|
1628
|
+
"description": "Session cwd for relative paths (not a sandbox): get/set/list. set updates session-wide cwd for tools and bridge workers — set on project switch. list: repos you commit to (cwd.identityEmails), minus plugin-cache/codex; all:true for full scan.",
|
|
1629
|
+
"inputSchema": {
|
|
1630
|
+
"type": "object",
|
|
1631
|
+
"properties": {
|
|
1632
|
+
"action": {
|
|
1633
|
+
"type": "string",
|
|
1634
|
+
"enum": [
|
|
1635
|
+
"get",
|
|
1636
|
+
"set",
|
|
1637
|
+
"list"
|
|
1638
|
+
]
|
|
1639
|
+
},
|
|
1640
|
+
"path": {
|
|
1641
|
+
"type": "string"
|
|
1642
|
+
},
|
|
1643
|
+
"refresh": {
|
|
1644
|
+
"type": "boolean"
|
|
1645
|
+
},
|
|
1646
|
+
"all": {
|
|
1647
|
+
"type": "boolean"
|
|
1648
|
+
}
|
|
1649
|
+
}
|
|
1650
|
+
},
|
|
1651
|
+
"module": "cwd"
|
|
1652
|
+
}
|
|
1653
|
+
]
|