tooling-policy
Per-harness model defaults, local LLM provider profiles, trusted docs domains, and root trust configuration.
Policy registry for model selection, reasoning effort, local LLM discovery, and safe retrieval roots consumed by sync and platform adapters.
Overview
Section titled “Overview”config/tooling-policy.json provides a single place for harness-specific model defaults (model id, reasoning_effort, personality/effort, text_verbosity) and local LLM provider profiles (lmstudio shape for codex/opencode). It also lists docs_domains for retrieval allow-listing and trusted_roots for path safety.
Used by sync projections (e.g. OpenCode model blocks, Grok, Codex), wagents platform modules, and any tooling that needs consistent model policy without hard-coding.
What It Controls
Section titled “What It Controls”- model_defaults: keyed by harness short name (
codex,copilot,gemini,opencode,grok); each declares default model, reasoning params, and personality/verbosity hints. - local_llm_providers: profiles such as
lmstudiowith base_url_env, aliases, default_model, and per-target harness config (wire_api, provider_id, npm package, models map). - docs_domains: safe domains for doc lookup / fetch tools (openai, github, anthropic, mcp spec).
- trusted_roots: array of repo paths considered safe for certain operations (currently just
${REPO_ROOT}).
Harness Surfaces
Section titled “Harness Surfaces”- OpenCode: provider_model, reasoning_effort, reasoning_summary, text_verbosity, model blocks in generated
opencode.json/~/.config/opencode/opencode.json - Codex: model + reasoning_effort in
~/.codex/config.tomlmerges - Grok: default + web_search model routing in
.grok/config.toml - Copilot / Gemini: effort_level and model guidance
- Local LM Studio: injected only when
LM_STUDIO_API_BASE(or alias) present; used by both Codex and OpenCode adapters.
Changes here are canonical; sync or platform renderers project the values.
Key Fields
Section titled “Key Fields”| Field | Description |
|---|---|
model_defaults.<harness> | Object with model, reasoning_effort, personality, effort_level, provider_model, text_verbosity, etc. |
local_llm_providers.lmstudio | Discovery + wire config for local OpenAI-compatible server |
docs_domains | Retrieval safety list |
trusted_roots | Filesystem roots treated as first-party/trusted |
AGENTS.md Sections
Section titled “AGENTS.md Sections”- §2.5 OpenCode Project Plugins: details model defaults (“repo and live OpenCode config set root
model: "openai/gpt-5.5"… reasoningxhigh”) that are sourced from this policy. - §2.7 Bucket B: “tool policy” listed among harness registries that remain canonical under
config/. - Grok and Codex platform notes reference config tomls that receive values from here.
Related
Section titled “Related”config/grok-config.toml, generated~/.grok/config.tomlopencode.json(repo) + home mergewagents/platforms/*.pyadapters- Local provider env:
config/grok-env.sh,source config/grok-env.sh
Full policy (config/tooling-policy.json)
{ "version": 1, "instruction_source": "${REPO_ROOT}/instructions/global.md", "model_defaults": { "codex": { "model": "gpt-5.5", "reasoning_effort": "xhigh", "personality": "pragmatic" }, "copilot": { "model": "gpt-5.4", "effort_level": "high", "continue_on_auto_mode": false }, "gemini": { "model": "gpt-5.4", "effort_level": "xhigh" }, "opencode": { "provider_model": "openai/gpt-5.5", "manage_model_options": true, "reasoning_effort": "xhigh", "reasoning_summary": "auto", "text_verbosity": "low" }, "grok": { "default": "grok-composer-2.5-fast", "web_search": "grok-4.20-multi-agent" } }, "local_llm_providers": { "lmstudio": { "name": "LM Studio (local)", "base_url_env": "LM_STUDIO_API_BASE", "base_url_env_aliases": [ "LMSTUDIO_API_BASE" ], "default_base_url": "http://127.0.0.1:1234/v1", "default_model": "local-model", "codex": { "provider_id": "local-lmstudio", "profile": "local-lmstudio", "wire_api": "responses" }, "opencode": { "npm": "@ai-sdk/openai-compatible", "models": { "local-model": { "name": "LM Studio Local Model" } } } } }, "docs_domains": [ "developers.openai.com", "docs.github.com", "docs.anthropic.com", "modelcontextprotocol.io" ], "trusted_roots": [ "${REPO_ROOT}" ]}