Skip to content

tooling-policy

Per-harness model defaults, local LLM provider profiles, trusted docs domains, and root trust configuration.

harness-config registry

Policy registry for model selection, reasoning effort, local LLM discovery, and safe retrieval roots consumed by sync and platform adapters.

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.

  • 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 lmstudio with 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}).
  • 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.toml merges
  • 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.

FieldDescription
model_defaults.<harness>Object with model, reasoning_effort, personality, effort_level, provider_model, text_verbosity, etc.
local_llm_providers.lmstudioDiscovery + wire config for local OpenAI-compatible server
docs_domainsRetrieval safety list
trusted_rootsFilesystem roots treated as first-party/trusted
  • §2.5 OpenCode Project Plugins: details model defaults (“repo and live OpenCode config set root model: "openai/gpt-5.5" … reasoning xhigh”) 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.
  • config/grok-config.toml, generated ~/.grok/config.toml
  • opencode.json (repo) + home merge
  • wagents/platforms/*.py adapters
  • Local provider env: config/grok-env.sh, source config/grok-env.sh
Full policy (config/tooling-policy.json)
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}"
]
}

View source on GitHub