@zhivex-ai/harness 0.10.0 → 0.11.0
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/CHANGELOG.md +28 -0
- package/README.md +20 -15
- package/ROADMAP.md +28 -8
- package/dist/cli.d.ts +5 -1
- package/dist/cli.js +1157 -257
- package/dist/config.d.ts +14 -2
- package/dist/context-engineering.d.ts +139 -0
- package/dist/execution-environment.d.ts +2 -0
- package/dist/harness.d.ts +23 -13
- package/dist/hostile-repository-demo.js +738 -144
- package/dist/index.d.ts +6 -2
- package/dist/index.js +990 -202
- package/dist/orchestration.d.ts +1 -0
- package/dist/terminal-ui.d.ts +48 -0
- package/dist/zhx.js +1157 -257
- package/docs/CLI.md +12 -4
- package/docs/CONTEXT_ENGINEERING.md +77 -0
- package/docs/DURABLE_OPERATIONS.md +7 -1
- package/docs/EXECUTION_ENVIRONMENTS.md +14 -0
- package/docs/EXTENSIBILITY.md +2 -2
- package/docs/LIVE_CERTIFICATION.md +2 -0
- package/docs/RELEASE.md +4 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,34 @@ All notable changes to Zhivex Harness are documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The project follows Semantic Versioning. During `0.x`, minor releases may change user-facing contracts when the change is documented with a migration note. Patch releases remain backwards compatible bug fixes.
|
|
6
6
|
|
|
7
|
+
## 0.11.0 - 2026-08-21
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
|
|
11
|
+
- Add a dependency-free terminal presentation layer with sanitized/redacted activity events, complete governed approval cards, and `y`/`n`/`v`/`q` decision handling that never partially resolves a durable approval batch.
|
|
12
|
+
- Add `/pending`, `/approve`, and `/deny` so a recovered chat session can inspect and resolve its durable approval without leaving the console; persisted provider, routing, context, and OCI policy are restored before resumption.
|
|
13
|
+
- Add bounded project context/rule discovery, progressive `SKILL.md` disclosure, and version-bound trusted application lifecycle hooks. Repository configuration cannot register executable host hooks.
|
|
14
|
+
- Add opt-in `run_environment_shell` through `--execution oci --oci-shell ask`. The exact script is approval-bound and interpreted only by `sh` inside the no-network OCI snapshot; host mutation still requires the separate content-bound import approval.
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
|
|
18
|
+
- Advance resolved config schema to `5` and the OCI execution-policy fingerprint to `2026-08-21-v4`; complete paused `0.10.0` work with the published artifact rather than rebinding it to the changed tool/context surface.
|
|
19
|
+
- Bound the live reviewer-delegation fixture to one read-only child tool call against a temporary repository with a known diff, avoiding provider-specific false failures caused by asking a reviewer to inspect an empty non-Git workspace.
|
|
20
|
+
- Align the default mixed-provider live route with the certified cohort (OpenAI parent, Qwen reviewer); Gemini routing remains an explicit provisional certification target.
|
|
21
|
+
- Await asynchronous harness shutdown throughout release, evaluation, smoke, and test callers so lifecycle hooks and OCI cleanup complete before process exit.
|
|
22
|
+
- Emit `run-finished` only for terminal run states, and have `zhx doctor` load and validate configured project context before reporting readiness.
|
|
23
|
+
|
|
24
|
+
### Migration from 0.10.x
|
|
25
|
+
|
|
26
|
+
- Change schema-version-pinned configuration from `schemaVersion: 4` to `5`. Existing SQLite state remains readable, but paused approvals created by `0.10.x` must be completed or denied with the matching `0.10.x` artifact because context, hook, tool, and execution-policy fingerprints changed.
|
|
27
|
+
- Await `harness.close()` in library cleanup paths. Lifecycle hooks can make shutdown asynchronous even when no execution environment is active.
|
|
28
|
+
- Project context discovery is enabled by default. Use `--no-project-context` or `projectContext: false` when an embedding must ignore repository instructions; malformed explicit context manifests fail before provider execution.
|
|
29
|
+
- OCI shell syntax remains opt-in. Existing OCI configurations keep `shellMode: "deny"`; set `--oci-shell ask` or `shellMode: "ask"` only when exact-script approval inside the no-network container is intended.
|
|
30
|
+
|
|
31
|
+
### Security
|
|
32
|
+
|
|
33
|
+
- Shell remains `deny` by default, is unavailable without OCI, never inherits host environment variables, and does not enable container networking. Command entrypoint lists do not claim to constrain every descendant process spawned inside the container.
|
|
34
|
+
|
|
7
35
|
## 0.10.0 - 2026-08-21
|
|
8
36
|
|
|
9
37
|
### Changed
|
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ Zhivex Harness runs coding agents against real repositories with conflict-safe e
|
|
|
13
13
|
|
|
14
14
|
The model provides capability. The harness controls what it may inspect, execute, change, resume, and prove. Every provider uses the same bounded tool and approval contract.
|
|
15
15
|
|
|
16
|
-
Version `0.
|
|
16
|
+
Version `0.11.0` is the current source release candidate. The latest public npm release remains the tagged Node-first `0.10.0` artifact until the reviewed release workflow publishes and verifies `0.11.0`; local validation alone does not publish or certify registry provenance. See [ROADMAP.md](./ROADMAP.md), [CHANGELOG.md](./CHANGELOG.md), the [change-envelope guide](./docs/CHANGE_ENVELOPES.md), the [CLI contract](./docs/CLI.md), the [context-engineering guide](./docs/CONTEXT_ENGINEERING.md), the [extensibility guide](./docs/EXTENSIBILITY.md), and the [durable-operations guide](./docs/DURABLE_OPERATIONS.md).
|
|
17
17
|
|
|
18
18
|
## Why Zhivex Harness
|
|
19
19
|
|
|
@@ -40,7 +40,15 @@ bun run demo:hostile
|
|
|
40
40
|
|
|
41
41
|
The expected result is a schema-versioned JSON proof with `secretExcluded`, `networkDenied`, `exactlyOnceJournal`, and `staleHostImportBlocked` all set to `true`. Pass `--keep` to retain the disposable workspace for inspection. The complete scenario and evidence limits are documented in [docs/HOSTILE_REPOSITORY_DEMO.md](./docs/HOSTILE_REPOSITORY_DEMO.md).
|
|
42
42
|
|
|
43
|
-
## What 0.
|
|
43
|
+
## What 0.11 changes
|
|
44
|
+
|
|
45
|
+
- adds a dependency-free terminal presentation layer with redacted activity, complete approval cards, and durable `y`/`n`/`v`/`q` decisions;
|
|
46
|
+
- lets recovered chat sessions inspect and resolve their current approval with `/pending`, `/approve`, and `/deny` after restoring the exact persisted provider, routing, context, and OCI policy;
|
|
47
|
+
- loads bounded `AGENTS.md`, project context, rules, and progressively disclosed skills while binding their digests into durable compatibility;
|
|
48
|
+
- adds trusted application lifecycle hooks with versioned identities, bounded events, timeouts, and redacted failures; and
|
|
49
|
+
- exposes exact-script shell syntax only through explicit `--execution oci --oci-shell ask`, preserving denied network and the separate host-import approval.
|
|
50
|
+
|
|
51
|
+
## What 0.10 changed
|
|
44
52
|
|
|
45
53
|
- makes Node.js `>=22.13.0` the primary public CLI and library runtime while retaining Bun-compatible imports and Bun-managed contributor workflows;
|
|
46
54
|
- replaces `bun:sqlite` and `Bun.spawn` with `node:sqlite` and argv-only `node:child_process` boundaries without changing the durable SQLite file format;
|
|
@@ -90,7 +98,7 @@ The expected result is a schema-versioned JSON proof with `secretExcluded`, `net
|
|
|
90
98
|
- protection against path traversal, symlink escapes, unsafe state targets, secret-file reads, special files, concurrent non-overwrite races, and unbounded output;
|
|
91
99
|
- Linux/macOS CI, installed-tarball smoke coverage, and opt-in live-provider certification.
|
|
92
100
|
|
|
93
|
-
It does not include arbitrary host shell access, `stdio` MCP, permanent deletion, Git writes, a desktop UI, a remote worker, or a managed sandbox service. Without `--execution oci`, shell-class tools remain unavailable. With OCI enabled, repository tools, checks, and enabled subagents share the acquired snapshot; network MCP is rejected because it cannot truthfully satisfy the no-network execution policy.
|
|
101
|
+
It does not include arbitrary host shell access, `stdio` MCP, permanent deletion, Git writes, a desktop UI, a remote worker, or a managed sandbox service. Without `--execution oci`, shell-class tools remain unavailable. The opt-in `--oci-shell ask` policy exposes approval-bound `sh` only inside OCI. With OCI enabled, repository tools, checks, and enabled subagents share the acquired snapshot; network MCP is rejected because it cannot truthfully satisfy the no-network execution policy.
|
|
94
102
|
|
|
95
103
|
## Requirements
|
|
96
104
|
|
|
@@ -101,19 +109,13 @@ It does not include arbitrary host shell access, `stdio` MCP, permanent deletion
|
|
|
101
109
|
|
|
102
110
|
## Installation
|
|
103
111
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
```bash
|
|
107
|
-
bunx --package @zhivex-ai/harness@0.9.0 zhx --version
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
After the exact `0.10.0` artifact is published and registry-verified, the Node-first installation is:
|
|
112
|
+
Install the published Node-first `0.10.0` artifact with an exact version:
|
|
111
113
|
|
|
112
114
|
```bash
|
|
113
115
|
npx --yes --package=@zhivex-ai/harness@0.10.0 zhx --version
|
|
114
116
|
```
|
|
115
117
|
|
|
116
|
-
|
|
118
|
+
To exercise the source checkout, contributors use Bun for deterministic repository tooling while the built CLI itself runs on Node:
|
|
117
119
|
|
|
118
120
|
```bash
|
|
119
121
|
bun install --frozen-lockfile
|
|
@@ -153,7 +155,9 @@ zhx chat --continue
|
|
|
153
155
|
zhivex-harness --version
|
|
154
156
|
```
|
|
155
157
|
|
|
156
|
-
Inside the console, `/help` lists `/provider`, `/model`, `/route`, `/status`, `/diff`, `/review`, `/resume`, `/compact`, `/new`, `/rename`, and `/exit`.
|
|
158
|
+
Inside the console, `/help` lists `/provider`, `/model`, `/route`, `/status`, `/diff`, `/review`, `/resume`, `/pending`, `/approve`, `/deny`, `/compact`, `/new`, `/rename`, and `/exit`. Tool and step activity is rendered without tool payloads; approval cards sanitize terminal controls and keep governed edit/command payloads fully reviewable.
|
|
159
|
+
|
|
160
|
+
Project context engineering is enabled by default. A root `AGENTS.md` plus an optional `.zhivex/harness.json` can declare bounded context files, rule files, and progressively loaded `SKILL.md` directories. Disable discovery with `--no-project-context` or select another manifest with `--context-config`.
|
|
157
161
|
|
|
158
162
|
Show providers and detected configuration without printing secrets:
|
|
159
163
|
|
|
@@ -192,7 +196,7 @@ zhx run --provider openai --route explorer=qwen --route reviewer=gemini \
|
|
|
192
196
|
"implement the change, then review it independently"
|
|
193
197
|
```
|
|
194
198
|
|
|
195
|
-
Routing with `--max-cost-usd` remains rejected in `0.
|
|
199
|
+
Routing with `--max-cost-usd` remains rejected in `0.11.0`: aggregate usage cannot yet be priced correctly when roles use different models.
|
|
196
200
|
|
|
197
201
|
Writes and checks pause for approval. In a non-interactive execution, state is saved in `.zhivex-harness/runs/operations.sqlite`:
|
|
198
202
|
|
|
@@ -269,9 +273,10 @@ Enable enforced local execution explicitly. The image must already exist locally
|
|
|
269
273
|
docker pull node:24-bookworm-slim
|
|
270
274
|
zhivex-harness doctor --execution oci
|
|
271
275
|
zhivex-harness run --execution oci --yes "inspect, implement, test, review the environment patch, and import it"
|
|
276
|
+
zhivex-harness run --execution oci --oci-shell ask "use a reviewed shell pipeline inside the isolated snapshot"
|
|
272
277
|
```
|
|
273
278
|
|
|
274
|
-
`--yes` approves
|
|
279
|
+
`--yes` approves eligible command execution and the distinct host patch import; it cannot enable a shell whose policy is `deny`. Omit it when a human should review each durable approval. Configuration, threat boundary, cleanup, and certification details are in [docs/EXECUTION_ENVIRONMENTS.md](./docs/EXECUTION_ENVIRONMENTS.md).
|
|
275
280
|
|
|
276
281
|
## Providers and defaults
|
|
277
282
|
|
|
@@ -284,7 +289,7 @@ zhivex-harness run --execution oci --yes "inspect, implement, test, review the e
|
|
|
284
289
|
|
|
285
290
|
Override any model with `--model`. Optional provider overrides are `META_BASE_URL`, `QWEN_BASE_URL`, `QWEN_WORKSPACE_ID`, `QWEN_REGION`, `OPENAI_BASE_URL`, and `GEMINI_BASE_URL`. Non-credential transport settings are hash-bound to durable resumes without persisting their values.
|
|
286
291
|
|
|
287
|
-
Meta and Qwen retain the published support conclusion for the unchanged approval/restart and delegation paths. OpenAI remains GPT-5.6-first from `0.8.0`: Luna is the default, while Terra and Sol remain explicit `--model` selections. The Node-first `0.10.0`
|
|
292
|
+
Meta and Qwen retain the published support conclusion for the unchanged approval/restart and delegation paths. OpenAI remains GPT-5.6-first from `0.8.0`: Luna is the default, while Terra and Sol remain explicit `--model` selections. The tagged Node-first `0.10.0` artifact is published; the `0.11.0` candidate requires its own clean CI, live-provider, artifact, registry, and provenance gates. Controlled and official-SDK MCP interoperability are verified separately and do not imply compatibility with every server or protocol feature. Provider capability claims remain artifact- and date-bound under the [live certification contract](./docs/LIVE_CERTIFICATION.md); credential detection and deterministic tests do not replace real provider evidence.
|
|
288
293
|
|
|
289
294
|
## Security boundaries
|
|
290
295
|
|
package/ROADMAP.md
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
- Status: active
|
|
4
4
|
- Baseline date: 2026-08-21
|
|
5
5
|
|
|
6
|
-
This roadmap takes the harness from its `0.1.0` MVP to a stable CLI and library contract. The `0.2.0` source baseline is tagged locally, `0.3.0` and `0.4.0` are private checkpoints, and `0.5.0` through `0.
|
|
6
|
+
This roadmap takes the harness from its `0.1.0` MVP to a stable CLI and library contract. The `0.2.0` source baseline is tagged locally, `0.3.0` and `0.4.0` are private checkpoints, and `0.5.0` through `0.10.0` are published on npm. Version `0.11.0` is the local source release candidate for interactive operation, context engineering, and opt-in OCI shell workflows; publication and release certification remain separate operations. Releases are ordered by dependency and safety risk, not by calendar date. A version ships only when its exit criteria are satisfied.
|
|
7
7
|
|
|
8
8
|
## Planning principles
|
|
9
9
|
|
|
@@ -43,7 +43,8 @@ The `0.6.0` dependency batch pins and overrides `@zhivex-ai/core@1.6.0`, retaini
|
|
|
43
43
|
| `0.7.0` | Multi-provider agent console | Durable sessions, extensible providers, safe role routing, and automation events | Published on npm | L |
|
|
44
44
|
| `0.8.0` | SDK refresh and GPT-5.6 | One Core runtime, current adapters, and a GPT-5.6-first OpenAI path | Published on npm | M |
|
|
45
45
|
| `0.9.0` | Fast governed change admission | Lower repository/OCI overhead plus portable offline evidence bound to exact patch bytes | Published on npm | L |
|
|
46
|
-
| `0.10.0` | Node-first portability | Node CLI/library, portable SQLite/processes, manager-aware checks, and Node OCI |
|
|
46
|
+
| `0.10.0` | Node-first portability | Node CLI/library, portable SQLite/processes, manager-aware checks, and Node OCI | Published on npm | L |
|
|
47
|
+
| `0.11.0` | Daily-driver foundations | Richer terminal operation, governed context/skills/hooks, and opt-in OCI shell | Local release candidate | L |
|
|
47
48
|
| `1.0.0` | Stable contract | Supported compatibility and release guarantees | Planned | L |
|
|
48
49
|
|
|
49
50
|
Relative size is for sequencing only; dates require a capacity decision.
|
|
@@ -290,7 +291,7 @@ Exit criteria:
|
|
|
290
291
|
|
|
291
292
|
## 0.10.0 — Node-first runtime portability
|
|
292
293
|
|
|
293
|
-
Status:
|
|
294
|
+
Status: published on npm with the `v0.10.0` tag. Later source work is not covered by that release's artifact or provenance evidence.
|
|
294
295
|
|
|
295
296
|
Goal: remove Bun as an installation prerequisite without weakening governed execution or forcing target repositories to adopt one package manager.
|
|
296
297
|
|
|
@@ -310,6 +311,25 @@ Exit criteria:
|
|
|
310
311
|
- Linux real-OCI validation passes on the preloaded Node 24 image with unchanged network/rootfs/resource/patch-import guarantees.
|
|
311
312
|
- Documentation, typecheck, full tests, evaluation, build, package inspection, installed-artifact smoke, release checks, live matrix, tag, registry integrity, and provenance are closed independently.
|
|
312
313
|
|
|
314
|
+
## 0.11.0 — daily-driver foundations
|
|
315
|
+
|
|
316
|
+
Status: local source release candidate. It is not yet tagged or published as a new artifact.
|
|
317
|
+
|
|
318
|
+
Goal: make the governed runtime practical for daily interactive work without giving repository content or shell syntax authority over host policy.
|
|
319
|
+
|
|
320
|
+
Scope:
|
|
321
|
+
|
|
322
|
+
- Render redacted step/tool activity and safe approval cards, and resolve recovered approvals from the durable chat console with `/pending`, `/approve`, and `/deny`.
|
|
323
|
+
- Load bounded root/project context and rules, expose a metadata-only skill catalog, and load skill instructions progressively instead of injecting every skill into the initial prompt.
|
|
324
|
+
- Add trusted application lifecycle hooks identified by version in the harness binding; repository manifests never introduce executable host hooks.
|
|
325
|
+
- Expose full shell syntax only behind explicit `--execution oci --oci-shell ask`, with exact-script approval, denied container network, resource limits, and separate host patch-import approval.
|
|
326
|
+
- Keep semantic search, IDE clients, remote workers, executable project hooks, and network-enabled sandbox profiles as later independently governed tracks.
|
|
327
|
+
|
|
328
|
+
Exit criteria:
|
|
329
|
+
|
|
330
|
+
- TTY, no-color, approval-resume, context traversal/symlink, skill disclosure, hook redaction/failure, and OCI shell policy regressions pass.
|
|
331
|
+
- The full deterministic, package, and real-OCI gates pass from a clean commit before any release number, tag, or publication is claimed.
|
|
332
|
+
|
|
313
333
|
## 1.0.0 — Stable CLI and library contract
|
|
314
334
|
|
|
315
335
|
Goal: freeze a supportable public contract after the pre-1.0 safety and operational surfaces have been exercised in real repositories.
|
|
@@ -355,8 +375,8 @@ These can become separate post-1.0 tracks after the CLI/runtime contract and sec
|
|
|
355
375
|
|
|
356
376
|
## Immediate next actions
|
|
357
377
|
|
|
358
|
-
1.
|
|
359
|
-
2. Run required real-OCI
|
|
360
|
-
3.
|
|
361
|
-
4.
|
|
362
|
-
5.
|
|
378
|
+
1. Review and commit the exact `0.11.0` source candidate on `main`, then require clean Linux/macOS CI and Node 22.13/24 artifact compatibility.
|
|
379
|
+
2. Run the required real-OCI gate against `node:24-bookworm-slim` plus installed-artifact smoke coverage for terminal, context, lifecycle-hook, and OCI shell exports.
|
|
380
|
+
3. Complete the provider live matrices affected by the changed context/tool fingerprint; keep any missing or failed path outside the certified release evidence.
|
|
381
|
+
4. Create annotated tag `v0.11.0` from the reviewed release commit and dispatch the protected workflow only after confirming npm still lacks that immutable version.
|
|
382
|
+
5. Verify the exact published tarball, `latest` tag, integrity, and SLSA provenance before calling `0.11.0` released.
|
package/dist/cli.d.ts
CHANGED
|
@@ -55,6 +55,7 @@ export interface CliOptions {
|
|
|
55
55
|
ociRuntime?: string;
|
|
56
56
|
ociImage?: string;
|
|
57
57
|
ociAllowedCommands?: string[];
|
|
58
|
+
ociShellMode?: string;
|
|
58
59
|
ociMaxProcessRuntimeMs?: number;
|
|
59
60
|
ociMaxProcessOutputBytes?: number;
|
|
60
61
|
ociMaxMemoryMb?: number;
|
|
@@ -64,6 +65,8 @@ export interface CliOptions {
|
|
|
64
65
|
ociMaxFileWriteBytes?: number;
|
|
65
66
|
ociTmpfsMb?: number;
|
|
66
67
|
mcpConfigPath?: string;
|
|
68
|
+
contextConfigPath?: string;
|
|
69
|
+
projectContext?: boolean;
|
|
67
70
|
prompt?: string;
|
|
68
71
|
runId?: string;
|
|
69
72
|
idempotencyKey?: string;
|
|
@@ -200,6 +203,7 @@ export interface DoctorReport {
|
|
|
200
203
|
allowedChecks: readonly string[];
|
|
201
204
|
requiredCapabilities: ReturnType<typeof resolveHarnessConfig>["requiredCapabilities"];
|
|
202
205
|
orchestration: ReturnType<typeof resolveHarnessConfig>["orchestration"];
|
|
206
|
+
context: ReturnType<typeof resolveHarnessConfig>["context"];
|
|
203
207
|
execution: ReturnType<typeof resolveHarnessConfig>["execution"];
|
|
204
208
|
mcpConfigPath?: string;
|
|
205
209
|
};
|
|
@@ -213,7 +217,7 @@ export interface DoctorContext {
|
|
|
213
217
|
bunVersion?: string;
|
|
214
218
|
ociRuntimeAdapter?: HarnessOciRuntimeAdapter;
|
|
215
219
|
}
|
|
216
|
-
export declare const createDoctorReport: (options?: Pick<CliOptions, "provider" | "model" | "workspace" | "stateDirectory" | "storeBackend" | "tenantId" | "userId" | "namespace" | "maxSteps" | "timeoutMs" | "maxToolCalls" | "maxToolErrors" | "maxInputTokens" | "maxOutputTokens" | "maxTotalTokens" | "maxCostUsd" | "inputCostPerMillion" | "outputCostPerMillion" | "allowedChecks" | "requiredCapabilities" | "subagentProfiles" | "subagentMaxSteps" | "subagentMaxToolCalls" | "subagentMaxToolErrors" | "subagentMaxInputTokens" | "subagentMaxOutputTokens" | "subagentMaxTotalTokens" | "subagentTimeoutMs" | "maxParallelReviews" | "executionBackend" | "ociRuntime" | "ociImage" | "ociAllowedCommands" | "ociMaxProcessRuntimeMs" | "ociMaxProcessOutputBytes" | "ociMaxMemoryMb" | "ociMaxPids" | "ociMaxCpus" | "ociMaxWorkspaceBytes" | "ociMaxFileWriteBytes" | "ociTmpfsMb" | "mcpConfigPath">, context?: DoctorContext) => Promise<DoctorReport>;
|
|
220
|
+
export declare const createDoctorReport: (options?: Pick<CliOptions, "provider" | "model" | "workspace" | "stateDirectory" | "storeBackend" | "tenantId" | "userId" | "namespace" | "maxSteps" | "timeoutMs" | "maxToolCalls" | "maxToolErrors" | "maxInputTokens" | "maxOutputTokens" | "maxTotalTokens" | "maxCostUsd" | "inputCostPerMillion" | "outputCostPerMillion" | "allowedChecks" | "requiredCapabilities" | "subagentProfiles" | "subagentMaxSteps" | "subagentMaxToolCalls" | "subagentMaxToolErrors" | "subagentMaxInputTokens" | "subagentMaxOutputTokens" | "subagentMaxTotalTokens" | "subagentTimeoutMs" | "maxParallelReviews" | "executionBackend" | "ociRuntime" | "ociImage" | "ociAllowedCommands" | "ociShellMode" | "ociMaxProcessRuntimeMs" | "ociMaxProcessOutputBytes" | "ociMaxMemoryMb" | "ociMaxPids" | "ociMaxCpus" | "ociMaxWorkspaceBytes" | "ociMaxFileWriteBytes" | "ociTmpfsMb" | "mcpConfigPath" | "contextConfigPath" | "projectContext">, context?: DoctorContext) => Promise<DoctorReport>;
|
|
217
221
|
export declare const formatDoctorReport: (report: DoctorReport) => string;
|
|
218
222
|
export declare const cliExitCodeForError: (error: unknown) => 1 | 2;
|
|
219
223
|
export declare const main: (argv?: string[]) => Promise<void>;
|