Skip to content

ollama_batch_proof_check

Batch proof check (runs linters/tests). OPS. Parallel typecheck/lint/test across a file list. NO MODEL CALL. Pass checks: ['typescript' | 'eslint' | 'pytest' | 'ruff' | 'cargo-check'][] (min 1), optional files[] (scope filter for lint/test tools that accept it), optional cwd (default process.cwd()), optional timeout_ms (default 60_000 per check). Each check runs in parallel under its own timeout. Missing tools (ENOENT / exit 127) report as status:‘missing’ — NOT a fail. Timeouts are status:‘timeout’. Returns {checks:[{check, status:'pass'|'fail'|'timeout'|'missing', exit_code, stderr_tail, stdout_tail, elapsed_ms, failures?:[{file?, line?, message}]}], all_passed, any_missing}. Use AFTER ollama_multi_file_refactor_propose to verify the refactor landed green.

Parameter Type Required Default Description
checks "typescript" \ "eslint" \ "pytest" \ "ruff" \
files any no Optional scope filter. When set, each tool is invoked with the file list appended (where the tool supports it). Tools that require whole-project invocation (e.g. tsc –noEmit) ignore this.
cwd string no Working directory for the spawned CLIs. Default: process.cwd(). When set, must be contained in allowed_roots.
allowed_roots string[] no Absolute directories a custom cwd may launch from. REQUIRED when cwd is set — the proof run executes tool config (eslint.config.js, plugins, pytest conftest) FROM the cwd, so an undeclared cwd is a code-execution surface. Entries must be absolute. Omit both to run in the server’s own working directory.
timeout_ms integer no Timeout per check in milliseconds. Default 60_000.

The JSON Schema below is generated from the same zod schema the server validates against at the wire — it cannot drift from runtime behavior.

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"checks": {
"minItems": 1,
"type": "array",
"items": {
"type": "string",
"enum": [
"typescript",
"eslint",
"pytest",
"ruff",
"cargo-check"
]
},
"description": "Which proof tools to run. Each runs in parallel. Missing tools are reported as status:'missing', not 'fail'."
},
"files": {
"description": "Optional scope filter. When set, each tool is invoked with the file list appended (where the tool supports it). Tools that require whole-project invocation (e.g. tsc --noEmit) ignore this."
},
"cwd": {
"description": "Working directory for the spawned CLIs. Default: process.cwd(). When set, must be contained in allowed_roots.",
"type": "string",
"minLength": 1
},
"allowed_roots": {
"description": "Absolute directories a custom `cwd` may launch from. REQUIRED when `cwd` is set — the proof run executes tool config (eslint.config.js, plugins, pytest conftest) FROM the cwd, so an undeclared cwd is a code-execution surface. Entries must be absolute. Omit both to run in the server's own working directory.",
"type": "array",
"items": {
"type": "string",
"minLength": 1
}
},
"timeout_ms": {
"description": "Timeout per check in milliseconds. Default 60_000.",
"type": "integer",
"minimum": 1000,
"maximum": 600000
}
},
"required": [
"checks"
]
}

Every tool returns the standard envelope — tier_used, model, tokens_in/tokens_out, elapsed_ms, backend provenance, warnings. See Envelope & tiers.

Schema + handler: src/tools/batchProofCheck.ts · registration: src/index.ts


Back to the Tool Reference.