@zhivex-ai/harness 1.4.0-rc.6 → 1.4.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 +31 -0
- package/README.md +124 -71
- package/SECURITY.md +1 -1
- package/SUPPORT.md +2 -2
- package/contracts/engine-api.json +55 -0
- package/contracts/stable-api-signatures.json +33 -33
- package/dist/acp-cli.js +18 -15
- package/dist/cli/arguments.d.ts +3 -0
- package/dist/cli/console/console-budget.d.ts +8 -2
- package/dist/{cli-s1rs15vv.js → cli-2h37qyvg.js} +34 -15
- package/dist/{cli-entry-d5788aay.js → cli-entry-20w6nh0k.js} +359 -21
- package/dist/{cli-entry-9c2k0zwz.js → cli-entry-4ngptr62.js} +2902 -1482
- package/dist/{cli-entry-4k1cf0m3.js → cli-entry-w0hterjs.js} +8 -5
- package/dist/cli.js +2 -2
- package/dist/client/json-contracts.d.ts +95 -2
- package/dist/client/local-service.d.ts +2 -2
- package/dist/client/protocol.d.ts +3 -0
- package/dist/client/stream.d.ts +2 -1
- package/dist/compat/code-support.d.ts +6 -0
- package/dist/compat/code-support.js +29 -6
- package/dist/{config-c002f06f.js → config-j9624t6t.js} +1 -1
- package/dist/{config-j3jga5wh.js → config-qt69hkqj.js} +4 -2
- package/dist/engine/acp.js +14 -12
- package/dist/engine/client.js +11 -10
- package/dist/engine/desktop-providers-v1.js +2 -1
- package/dist/engine/desktop-state-v1.js +9 -9
- package/dist/engine/index.js +48 -46
- package/dist/engine/mcp-stdio-v1.js +7 -6
- package/dist/engine/protocol.js +30 -2
- package/dist/engine/service.js +12 -11
- package/dist/hostile-repository-demo.js +4773 -3027
- package/dist/{index-49ys3s4q.js → index-5jhgatga.js} +35 -16
- package/dist/{index-wq2tax80.js → index-61gthdz6.js} +1 -1
- package/dist/index-6dft2vev.js +343 -0
- package/dist/{index-gq9xagx2.js → index-8zjmnyw5.js} +25 -138
- package/dist/index-937cb7y8.js +705 -0
- package/dist/index-bpc596v3.js +154 -0
- package/dist/index-fm84men1.js +239 -0
- package/dist/{index-e6r04a18.js → index-m34q25jj.js} +1127 -170
- package/dist/index-m49jx72n.js +220 -0
- package/dist/{index-dj5z774k.js → index-m82cfspw.js} +35 -16
- package/dist/{index-qfpz5y2v.js → index-nmjdwd4p.js} +8 -2
- package/dist/{index-0g939pfs.js → index-pdmevfxv.js} +10 -7
- package/dist/{index-4j1h4j8c.js → index-pp474137.js} +1598 -973
- package/dist/{index-2tgb2b4e.js → index-rkbf7dqg.js} +3 -5
- package/dist/index-s2k2edts.js +3778 -0
- package/dist/{index-z6br6qdn.js → index-tfzta544.js} +28 -11
- package/dist/index.js +44 -42
- package/dist/persistence/operations.d.ts +3 -0
- package/dist/providers/vertex-auth.d.ts +5 -1
- package/dist/runtime/config.d.ts +8 -0
- package/dist/runtime/context-runtime.d.ts +1 -0
- package/dist/runtime/error-diagnostics.d.ts +8 -0
- package/dist/runtime/errors.d.ts +10 -0
- package/dist/runtime/harness.d.ts +9 -0
- package/dist/runtime/policy-inspection.d.ts +1 -0
- package/dist/runtime/provider-transient.d.ts +33 -0
- package/dist/runtime/runtime-diagnostics.d.ts +3 -0
- package/dist/runtime/runtime-policy.d.ts +8 -10
- package/dist/runtime/task-acceptance-host.d.ts +1 -1
- package/dist/runtime/task-budget-host.d.ts +217 -0
- package/dist/runtime/task-budget.d.ts +147 -0
- package/dist/runtime/task-continuity.d.ts +434 -0
- package/dist/runtime/task-telemetry.d.ts +63 -0
- package/dist/runtime/task-transport.d.ts +3 -0
- package/dist/runtime/task-usage-context.d.ts +13 -0
- package/dist/runtime/time-to-safe-fix.d.ts +8 -0
- package/dist/runtime/usage-ledger.d.ts +17 -0
- package/dist/service-cli.js +12 -11
- package/dist/{service-client-cli-b52c67hx.js → service-client-cli-fn54ev6w.js} +18 -7
- package/dist/verify-historical-migrations.js +2426 -652
- package/dist/zhx.js +2 -2
- package/docs/CLI.md +38 -8
- package/docs/CLIENT_PROTOCOL.md +9 -1
- package/docs/CODE_RELEASE.md +118 -1
- package/docs/DURABLE_OPERATIONS.md +1 -1
- package/docs/EXTENSIBILITY.md +1 -1
- package/docs/FIRST_USE.md +6 -6
- package/docs/MINIMUM_OFFLINE_EVALS.md +31 -0
- package/docs/MINIMUM_TASK_AUTHORITY.md +395 -0
- package/docs/PROJECT_MEMORY.md +1 -1
- package/docs/README.md +2 -0
- package/docs/STABILITY.md +1 -1
- package/docs/WEB_LIMITS.md +117 -0
- package/evaluations/representative-assembly-matrix.json +28 -1
- package/examples/README.md +5 -5
- package/package.json +8 -5
- package/dist/index-8705zxpr.js +0 -145
- package/dist/index-a1q355va.js +0 -600
- package/dist/index-r0tdj04h.js +0 -976
- package/dist/index-rd0s3gqj.js +0 -1669
- package/dist/index-vtqfjnab.js +0 -1626
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,37 @@ 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
|
+
## 1.4.1 - 2026-10-14
|
|
8
|
+
|
|
9
|
+
- Classify Vertex and Google transient failures as retryable `PROVIDER_UNAVAILABLE` instead of a generic `EXECUTION_FAILED`. The covered cases are HTTP 409 ABORTED, 429 RESOURCE_EXHAUSTED, 500/502/503/504, UNAVAILABLE, DEADLINE_EXCEEDED, and stream resets. Sanitized diagnostics keep the HTTP status and the closed provider status category, and still omit provider messages, resource names, and credentials.
|
|
10
|
+
- Retry that class, and an empty model turn with no text and no tool call, up to three times with jittered backoff in the Vertex driver. The live continuity and approval-compaction gates use the same classification and do not accept a phase that fails its assertions.
|
|
11
|
+
- Keep the package version at `1.4.0`. This note does not tag, publish, or dispatch a release.
|
|
12
|
+
|
|
13
|
+
## 1.4.0 - 2026-10-09
|
|
14
|
+
|
|
15
|
+
- Prepare stable Harness 1.4.0 and Code 0.3.0 for npm `latest`, with the exact Code engine pin, private Desktop binding and an additive representative mapping for `v1.4.0` using the unchanged Meta, Qwen and OpenAI models. Retain the SDK pins already on main (Core 1.31.0, Agents 1.11.0 and the existing provider packages). Published `latest` stays Harness 1.3.0 and Code 0.2.0. Published `next` is Harness 1.4.0-rc.8 and Code 0.3.0-rc.8. `release-status.json` keeps the verified 1.3.0 record until this stable publication has its own registry evidence.
|
|
16
|
+
- Engine runtime source under `src/` is identical to annotated `v1.4.0-rc.8` and `code-v0.3.0-rc.8` (`5bba06c86fc82b34b67cec607053948f8e00d0d1`). Root `scripts/`, root `tests/` and `evaluations/` were also unchanged before this preparation's representative-mapping row. Code (`packages/code`), web (`packages/web`) and desktop (`desktop`) are not identical to that tag.
|
|
17
|
+
- Carry the reviewed product changes on main after that tag: the same Code review screen for shell `--continue` and `/pending` ([PR201](https://github.com/Zhivex/zhivex-harness/pull/201)); removal of the desktop fixture waiting button ([PR203](https://github.com/Zhivex/zhivex-harness/pull/203)); B-lite review scope on web and desktop ([PR211](https://github.com/Zhivex/zhivex-harness/pull/211)); the Code status line, one-line summary and 48×24 first-welcome logo ([PR210](https://github.com/Zhivex/zhivex-harness/pull/210)); and the public README ([PR200](https://github.com/Zhivex/zhivex-harness/pull/200)). Packaged Harness docs `README.md` and `docs/CLI.md` differ from the rc.8 tag. `docs/CLI_UX.md` and `docs/images/approval-survives-restart.gif` also differ and are outside the Harness `files` list.
|
|
18
|
+
- Require fresh exact-source/artifact validation and separate explicit approval before any paid campaign, annotated tag or publication. Provider/API tiers remain unchanged. This preparation creates no tags and dispatches no release.
|
|
19
|
+
|
|
20
|
+
## 1.4.0-rc.8 - 2026-10-08
|
|
21
|
+
|
|
22
|
+
- Prepare matched Harness 1.4.0-rc.8 and Code 0.3.0-rc.8 for npm `next`, with the exact Code engine pin, private Desktop binding and an additive representative mapping using unchanged models. Retain the SDK pins already on main (Core 1.31.0, Agents 1.11.0 and the existing provider packages). Stable `latest` stays Harness 1.3.0 and Code 0.2.0.
|
|
23
|
+
- Refuse a second `delegate_*` call for a task that was already accepted in the same model response. The duplicate stays non-executable and the next turn tells the coordinator to use the completed result instead of retrying. A later model step can still recover from an invalid call that did not execute. Paused runs bound to the previous delegation fingerprint must be completed with the artifact that created them.
|
|
24
|
+
- Document that Qwen live certification accepts `DASHSCOPE_API_KEY` alone. `QWEN_API_KEY`, `QWEN_BASE_URL`, `QWEN_WORKSPACE_ID`, and `QWEN_REGION` remain optional overrides.
|
|
25
|
+
- Preserve annotated `v1.4.0-rc.7` at `1f986a0b044fa2827166fc934c712684971127b5`. It was tagged but not published because live certification failed on Qwen in the bounded reviewer orchestration gate. No Code RC.7 tag was created. Published npm `next` remains Harness 1.4.0-rc.6 and Code 0.3.0-rc.6. That evidence does not certify RC.8.
|
|
26
|
+
- Require fresh exact-source/artifact validation and separate explicit approval before any paid campaign, annotated tag or publication. Provider/API tiers remain unchanged.
|
|
27
|
+
|
|
28
|
+
## 1.4.0-rc.7 - 2026-10-08
|
|
29
|
+
|
|
30
|
+
- Prepare matched Harness 1.4.0-rc.7 and Code 0.3.0-rc.7 for npm `next`, with the exact Code engine pin, private Desktop binding and an additive representative mapping using unchanged models. Retain the SDK pins already on main (Core 1.31.0, Agents 1.11.0 and the existing provider packages). Stable `latest` stays Harness 1.3.0 and Code 0.2.0.
|
|
31
|
+
- Include reviewed main since published 1.4.0-rc.6: optional Web task/project limits and immediate composer consumption (PR189); sanitized Qwen SSE transport/parser diagnostics in CLI JSON/JSONL and failed client runs, including message-only installed SDK compatibility, while provider payloads, parser causes and arbitrary exception text stay excluded (PR188); experimental guided Code task budget authority across turns, correction and restart (PR187); private Desktop Electron 44.5.1 (PR180); persisted task cancellation that fences late admissions (PR190, HAR-HU-71); and host-only task continuity over existing SQLite task, contract, journal and budget records (PR191, HAR-HU-72).
|
|
32
|
+
- Keep one native SQLite writer and the SDK token coordinator. Reserve before primary and compaction dispatch, fence tools and checkpoints against the task lease, retain uncertain consumption and unknown exposure, and require explicit known-outcome continuation after cancellation. Preserve contract revisions, refuse stale approvals and missing or uncertain effect evidence, and revalidate receipts before Code keep. No automatic effect replay or new public web task projection.
|
|
33
|
+
- Show authoritative task limits, confirmed/reserved/unknown usage, fresh checks and human decisions in Code; retain drafts when admission fails before a run checkpoint. Ordinary non-task retry and no-cap chat stay unchanged, and unlimited hosts still require explicit task token limits. Index transport usage by scope/run without changing pruning, redaction or mandatory persistence errors. Preserve explicit monetary output caps above 2,048.
|
|
34
|
+
- Add numeric monotonic phase telemetry and a frozen synthetic offline evaluation scaffold. These fixtures validate runtime behavior, not real-task or model quality; real holdout selection, human review and any paid campaign remain pending. Logical JSON backups omit transport monetary tables and cannot restore task spending authority; incomplete restores fail closed.
|
|
35
|
+
- Preserve published Harness `v1.4.0-rc.6` and Code `code-v0.3.0-rc.6` at `0adf4e2e96380864ef4c697ea94df64ad7c18eec`, the held RC.5 campaign, and the RC.4 failure history and SDK store migration requirements. Their evidence does not certify RC.7.
|
|
36
|
+
- Require fresh exact-source/artifact validation and separate explicit approval before any paid campaign, annotated tag or publication. Provider/API tiers remain unchanged.
|
|
37
|
+
|
|
7
38
|
## 1.4.0-rc.6 - 2026-10-05
|
|
8
39
|
|
|
9
40
|
- Prepare matched Harness 1.4.0-rc.6 and Code 0.3.0-rc.6 for npm `next`, with the exact Code engine pin, private Desktop binding and an additive representative mapping using unchanged models and SDK pins.
|
package/README.md
CHANGED
|
@@ -1,109 +1,162 @@
|
|
|
1
|
-
# Zhivex
|
|
1
|
+
# Zhivex Code
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[](https://www.npmjs.com/package/@zhivex-ai/code)
|
|
4
|
+
[](https://github.com/Zhivex/zhivex-harness/actions/workflows/ci.yml)
|
|
5
|
+
[](LICENSE)
|
|
4
6
|
|
|
5
|
-
|
|
6
|
-
OpenAI, Qwen and Meta, with provisional Gemini, Anthropic and Vertex support. Conversations and pending
|
|
7
|
-
approvals survive restarts.
|
|
7
|
+
An open-source coding agent for your terminal. It asks before it edits or runs a check, and a pending approval is still there after you quit.
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
implement a change. Conversation context retains decisions, hypotheses and bounded
|
|
11
|
-
diagnostic excerpts across compaction. Edits and command execution keep their
|
|
12
|
-
own permission checks; a conversational summary never grants approval.
|
|
9
|
+
**Zhivex Code** ([`@zhivex-ai/code`](https://www.npmjs.com/package/@zhivex-ai/code)) is the product you install and run. **Zhivex Harness** ([`@zhivex-ai/harness`](https://www.npmjs.com/package/@zhivex-ai/harness)) is the engine underneath: a governed, provider-portable TypeScript runtime with durable approvals and isolated execution. MIT licensed.
|
|
13
10
|
|
|
14
|
-
|
|
15
|
-
`npm install -g @zhivex-ai/code@0.2.0` and run `zhivex-code` in your project.
|
|
16
|
-
See [Code installation and first use](https://github.com/Zhivex/zhivex-harness/blob/main/packages/code/README.md). Harness remains
|
|
17
|
-
the reusable engine and its compatibility CLI. The `/task` delivery workflow in
|
|
18
|
-
this checkout is an unreleased experimental Code addition, not a published feature.
|
|
11
|
+
## Approval survives a restart
|
|
19
12
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
13
|
+
<!-- Recorded with zhivex-code. Scene: ask for a change, review the diff, leave the approval pending, quit,
|
|
14
|
+
then run `zhivex-code --continue` and show the same approval.
|
|
15
|
+
Inside the session, `/continue` starts a new run from an interrupted task;
|
|
16
|
+
the reopen step in this GIF is the `--continue` flag.
|
|
17
|
+
The file is docs/images/approval-survives-restart.gif. Do not add it to either package `files` list.
|
|
18
|
+
npm shows the absolute raw URL below. That URL resolves from main. -->
|
|
26
19
|
|
|
27
|
-
|
|
20
|
+

|
|
21
|
+
|
|
22
|
+
## Why it works this way
|
|
23
|
+
|
|
24
|
+
- **You approve the exact change.** Edits and checks wait for an explicit decision bound to that diff. A conversational summary leaves the change unapproved. If the file changed on your side, import fails closed.
|
|
25
|
+
- **The pending decision survives a restart.** Conversations and approvals are stored in SQLite. Quit the terminal, or reboot, and the same approval is waiting.
|
|
26
|
+
- **Your keys, your provider.** OpenAI, Qwen, and Meta pass the release gate. Gemini, Anthropic, and Vertex are provisional. The same CLI talks to each of them.
|
|
28
27
|
|
|
29
|
-
|
|
28
|
+
## Quick start
|
|
30
29
|
|
|
31
|
-
|
|
30
|
+
You need Node.js 22.13 or newer, Git, and a provider API key. Linux and macOS are supported. Windows is unsupported.
|
|
32
31
|
|
|
33
32
|
```sh
|
|
34
|
-
npm install -g @zhivex-ai/
|
|
33
|
+
npm install -g @zhivex-ai/code
|
|
35
34
|
cd /path/to/your/project
|
|
36
|
-
|
|
35
|
+
zhivex-code
|
|
37
36
|
```
|
|
38
37
|
|
|
39
|
-
On first
|
|
40
|
-
prompt. Save it in the system keychain (macOS/Linux) or use it only for the current
|
|
41
|
-
CLI session. Existing environment keys take precedence. See [First use](docs/FIRST_USE.md)
|
|
42
|
-
and [Credentials](docs/CREDENTIALS.md) for setup and automation.
|
|
38
|
+
On first launch, choose a provider and model. If no key is already available, enter one in the hidden prompt and save it in the system keychain, or keep it for this session only. An existing environment variable takes precedence. The same prompts are documented for the engine command `zhx` in [First use](docs/FIRST_USE.md) and [Credentials](docs/CREDENTIALS.md).
|
|
43
39
|
|
|
44
40
|
Try: “Explain this repository and suggest a small improvement.”
|
|
45
41
|
|
|
46
|
-
Type `/` for common actions. `/model` changes the model, `/sessions` finds
|
|
47
|
-
|
|
48
|
-
|
|
42
|
+
Type `/` for common actions. `/model` changes the model, `/sessions` finds earlier conversations, and `/diff` shows workspace changes. Review each requested action before you approve it. Ctrl+C stops the active run. It leaves completed work in place.
|
|
43
|
+
|
|
44
|
+
| Command | Purpose |
|
|
45
|
+
| --- | --- |
|
|
46
|
+
| `zhivex-code` | Open the conversation |
|
|
47
|
+
| `zhivex-code --continue` | Reopen the latest conversation. A pending approval opens the review screen |
|
|
48
|
+
| `zhivex-code run "task"` | Run one task for a script |
|
|
49
|
+
| `zhivex-code doctor` | Check local configuration |
|
|
50
|
+
| `zhivex-code --help` | Short guide |
|
|
51
|
+
| `zhivex-code help all` | Full command reference |
|
|
52
|
+
|
|
53
|
+
`zhivex-code <command> --help` shows one command. Inside the session, `/help` lists everyday actions and `/help all` lists the rest.
|
|
54
|
+
|
|
55
|
+
### Command names
|
|
56
|
+
|
|
57
|
+
Each package owns its own commands. Installing both leaves each command in place. Nothing here adds or renames a command.
|
|
58
|
+
|
|
59
|
+
| Package | Commands |
|
|
60
|
+
| --- | --- |
|
|
61
|
+
| `@zhivex-ai/code` | `zhivex-code` |
|
|
62
|
+
| `@zhivex-ai/harness` | `zhx` and `zhivex-harness` (the same engine CLI), plus `zhx-acp` for the experimental editor protocol |
|
|
49
63
|
|
|
50
|
-
|
|
64
|
+
`zhx chat` remains a supported way to open the engine console.
|
|
51
65
|
|
|
52
|
-
|
|
66
|
+
### A pending approval is still there
|
|
53
67
|
|
|
54
|
-
|
|
55
|
-
and the [release procedure](https://github.com/Zhivex/zhivex-harness/blob/main/docs/RELEASE.md)
|
|
56
|
-
before installing a candidate; `next` can still point to an earlier RC.
|
|
68
|
+
Two different actions share the word “continue”:
|
|
57
69
|
|
|
58
|
-
|
|
70
|
+
| Where | What you type | What happens |
|
|
71
|
+
| --- | --- | --- |
|
|
72
|
+
| Shell, after you quit | `zhivex-code --continue` | Reopens the latest conversation. A pending approval opens the review screen. |
|
|
73
|
+
| Inside the session | `/continue` | Starts a new run from an interrupted task and keeps the earlier results. |
|
|
74
|
+
|
|
75
|
+
`/continue` is the in-session command. The shell flag that reopens the latest conversation is `--continue`, on `zhivex-code` and on `zhx`. On `zhivex-code`, that screen is `r` Reject, `a` Approve N file(s), `d` Details, and Esc to decide later. A check uses `Approve 1 command` instead of the file label. `/pending` opens the same screen. A new turn waits until you decide. On `zhx`, `--continue` reopens and prints the pending approval; `/pending`, then `/approve` or `/deny`, decides it. `/continue` inside that session starts a new run.
|
|
76
|
+
|
|
77
|
+
### Try it with no API key
|
|
78
|
+
|
|
79
|
+
The Code package includes an offline tutorial. It needs an interactive terminal. It makes no provider calls. Responses, token counts, and prices are synthetic.
|
|
59
80
|
|
|
60
81
|
```sh
|
|
61
|
-
npm
|
|
82
|
+
node "$(npm root -g)/@zhivex-ai/code/examples/first-use.mjs"
|
|
62
83
|
```
|
|
63
84
|
|
|
64
|
-
|
|
85
|
+
The script prints the guided sequence and a command to reopen the same temporary workspace.
|
|
65
86
|
|
|
66
|
-
|
|
87
|
+
### Credentials
|
|
88
|
+
|
|
89
|
+
| Provider | What the CLI accepts |
|
|
67
90
|
| --- | --- |
|
|
68
|
-
|
|
|
69
|
-
|
|
|
70
|
-
|
|
|
71
|
-
|
|
|
72
|
-
|
|
|
91
|
+
| OpenAI | `OPENAI_API_KEY` |
|
|
92
|
+
| Qwen | `DASHSCOPE_API_KEY` or `QWEN_API_KEY` |
|
|
93
|
+
| Meta | `MODEL_API_KEY` |
|
|
94
|
+
| Gemini (provisional) | `GEMINI_API_KEY` or `GOOGLE_GENERATIVE_AI_API_KEY` |
|
|
95
|
+
| Anthropic (provisional) | `ANTHROPIC_API_KEY` |
|
|
96
|
+
| Vertex (provisional) | Application Default Credentials, plus `GOOGLE_CLOUD_PROJECT` and `VERTEX_LOCATION`. Code does not ask for a Vertex API key. |
|
|
73
97
|
|
|
74
|
-
Use `
|
|
75
|
-
complete reference. Existing `zhx chat` and `zhivex-harness` commands remain supported.
|
|
98
|
+
Use `/credentials` later to replace or remove a saved key. `zhivex-code doctor` reports whether a credential is present. It does not call the provider.
|
|
76
99
|
|
|
77
|
-
##
|
|
100
|
+
## What you can count on
|
|
78
101
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
102
|
+
| | |
|
|
103
|
+
| --- | --- |
|
|
104
|
+
| Approval | Explicit, bound to the exact diff. Per-file changed regions are shown when a preview is available. |
|
|
105
|
+
| Durability | SQLite keeps the conversation and any pending approval across quit and reboot. |
|
|
106
|
+
| Secrets | `.env`, private keys, Git internals, and dependency directories stay out of model exploration. |
|
|
107
|
+
| Commands | The default runtime exposes no shell tools. Isolated commands need an explicitly configured Docker or Podman environment. |
|
|
108
|
+
| Where it runs | On your machine. Linux and macOS. |
|
|
83
109
|
|
|
84
|
-
|
|
110
|
+
From a source checkout, `bun run demo:hostile` runs a reproducible hostile-repository demo (a malicious README and a decoy `.env`, with network denied). See [Hostile repository demonstration](docs/HOSTILE_REPOSITORY_DEMO.md). That demo needs a local build, Docker or Podman, and a preloaded image.
|
|
85
111
|
|
|
86
|
-
|
|
87
|
-
Git internals and dependency directories are excluded from model exploration.
|
|
88
|
-
The default runtime has no OS isolation and exposes no shell-class tools. Running
|
|
89
|
-
commands in isolation requires an explicitly configured Docker or Podman environment;
|
|
90
|
-
see [Execution environments](docs/EXECUTION_ENVIRONMENTS.md).
|
|
112
|
+
## Providers and platforms
|
|
91
113
|
|
|
92
|
-
Gemini, [
|
|
93
|
-
|
|
114
|
+
Release-gated providers are OpenAI, Qwen, and Meta. **Gemini, Anthropic, and Vertex are provisional**: the integrations exist, and they do not yet have the same end-to-end release evidence. Details: [support matrix](docs/SUPPORT_MATRIX.md), [Anthropic](docs/ANTHROPIC.md), [Vertex](docs/VERTEX.md).
|
|
115
|
+
|
|
116
|
+
| Area | Status |
|
|
117
|
+
| --- | --- |
|
|
118
|
+
| Operating systems | Linux and macOS. Windows is unsupported. |
|
|
119
|
+
| Runtime | Node.js 22.13 or newer. Bun is contributor tooling. |
|
|
120
|
+
| MCP | Bounded Streamable HTTP is supported. stdio is outside the default CLI. An experimental host-only path can launch stdio servers in Docker; see [Isolated MCP stdio](docs/MCP_STDIO.md). |
|
|
121
|
+
| Editor protocol | `zhx-acp` is an experimental ACP subset: text sessions, one-time permissions, and cancellation. Output is buffered until the run finishes. ACP cannot load or resume a session. See [ACP](docs/ACP.md). |
|
|
122
|
+
| Isolated commands | Docker on Linux is supported. Podman is provisional. See [Execution environments](docs/EXECUTION_ENVIRONMENTS.md). |
|
|
123
|
+
| Desktop | Separate private alpha for macOS Apple Silicon. Unsigned, and not part of the npm package. See [Desktop](https://github.com/Zhivex/zhivex-harness/blob/main/desktop/README.md). |
|
|
124
|
+
|
|
125
|
+
## Use the engine as a library
|
|
126
|
+
|
|
127
|
+
Code is the terminal product and has no public library API. Harness is the embeddable runtime. Hosts construct it, supply credentials, and resolve approvals:
|
|
128
|
+
|
|
129
|
+
```ts
|
|
130
|
+
import { createHarness } from "@zhivex-ai/harness/engine";
|
|
131
|
+
import { createHarnessClientAdapter } from "@zhivex-ai/harness/client";
|
|
132
|
+
|
|
133
|
+
const harness = await createHarness({
|
|
134
|
+
workspace: "/absolute/path/to/project",
|
|
135
|
+
provider: "openai",
|
|
136
|
+
model: "your-supported-model"
|
|
137
|
+
});
|
|
138
|
+
const client = await createHarnessClientAdapter(harness);
|
|
139
|
+
try {
|
|
140
|
+
// Dispatch with the client protocol. Approve each consequential action explicitly.
|
|
141
|
+
} finally {
|
|
142
|
+
client.close();
|
|
143
|
+
await harness.close();
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Contracts, stability tiers, and the experimental ACP and MCP entry points are in the [engine API](docs/ENGINE_API.md).
|
|
94
148
|
|
|
95
149
|
## Documentation
|
|
96
150
|
|
|
97
|
-
- **
|
|
98
|
-
- **
|
|
99
|
-
- **
|
|
151
|
+
- **Using Code:** [Code package notes](https://github.com/Zhivex/zhivex-harness/blob/main/packages/code/README.md), [first use](docs/FIRST_USE.md), [daily workflow](docs/CLI.md#interactive-daily-workflow), [usage reference](docs/USAGE.md).
|
|
152
|
+
- **Integrating Harness:** [engine API](docs/ENGINE_API.md), [CLI contracts](docs/CLI.md), [extensibility](docs/EXTENSIBILITY.md), [API stability](docs/STABILITY.md).
|
|
153
|
+
- **Limits:** [support matrix](docs/SUPPORT_MATRIX.md), [security policy](SECURITY.md).
|
|
154
|
+
- **Contributing:** [development](https://github.com/Zhivex/zhivex-harness/blob/main/CONTRIBUTING.md) and [maintenance](https://github.com/Zhivex/zhivex-harness/blob/main/docs/MAINTENANCE.md).
|
|
155
|
+
|
|
156
|
+
[Browse the documentation index](docs/README.md).
|
|
100
157
|
|
|
101
|
-
|
|
158
|
+
## Releases
|
|
102
159
|
|
|
103
|
-
Version `1.3.0` is the current public npm release.
|
|
104
|
-
newer than the published package. Consult the [changelog](CHANGELOG.md) and
|
|
105
|
-
[repository release status](https://raw.githubusercontent.com/Zhivex/zhivex-harness/main/release-status.json)
|
|
106
|
-
for the verified 1.3.0 publication; [release evidence](https://github.com/Zhivex/zhivex-harness/blob/main/docs/LIVE_CERTIFICATION.md)
|
|
107
|
-
records validation scope and limitations.
|
|
160
|
+
Version `1.3.0` is the current public npm release. The paired Code package on npm `latest` is `0.2.0`. This checkout prepares Version `1.4.0` and Code `0.3.0` for `latest`. That publication is pending, so the quick start above follows the published `latest` tag. npm `next` is Harness `1.4.0-rc.8` and Code `0.3.0-rc.8`. Confirm dist-tags on the [Code versions](https://www.npmjs.com/package/@zhivex-ai/code?activeTab=versions) and [Harness versions](https://www.npmjs.com/package/@zhivex-ai/harness?activeTab=versions) pages before you install a prerelease.
|
|
108
161
|
|
|
109
|
-
|
|
162
|
+
Release channels, publication, and certification records are in the [release procedure](https://github.com/Zhivex/zhivex-harness/blob/main/docs/RELEASE.md). Releases are verified with npm provenance. Source in this checkout can be newer than the public package. See the [changelog](CHANGELOG.md) and the [repository release status](https://raw.githubusercontent.com/Zhivex/zhivex-harness/main/release-status.json).
|
package/SECURITY.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## Supported versions
|
|
4
4
|
|
|
5
|
-
Security fixes are provided for the latest published `1.3.x` patch of Harness and the latest stable Code `0.
|
|
5
|
+
Security fixes are provided for the latest published `1.3.x` patch of Harness and the latest stable Code `0.2.x` patch. Harness `1.4.x` and Code `0.3.x` are supported only after verified publication. RCs on `next` are validation candidates; older minors and private checkpoints are not supported release channels. Desktop remains a separate private alpha. Beta and experimental features retain their documented limitations. Registry integrity and provenance do not substitute for the separate provider and execution evidence recorded in [docs/LIVE_CERTIFICATION.md](https://github.com/Zhivex/zhivex-harness/blob/main/docs/LIVE_CERTIFICATION.md).
|
|
6
6
|
|
|
7
7
|
## Reporting a vulnerability
|
|
8
8
|
|
package/SUPPORT.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Support
|
|
2
2
|
|
|
3
|
-
Zhivex Harness `1.3.x` is the latest supported Node-first CLI and TypeScript library. Stable 1.x contracts follow [the stability policy](./docs/STABILITY.md); incompatible changes require a major release except documented urgent security corrections. Beta and experimental surfaces retain their declared policies. The mutable machine-readable `release-status.json` record records the verified 1.3.0 publication. Harness 1.
|
|
3
|
+
Zhivex Harness `1.3.x` is the latest supported Node-first CLI and TypeScript library. Stable 1.x contracts follow [the stability policy](./docs/STABILITY.md); incompatible changes require a major release except documented urgent security corrections. Beta and experimental surfaces retain their declared policies. The mutable machine-readable `release-status.json` record records the verified 1.3.0 publication. Harness 1.4.0 and Code 0.3.0 are prepared for latest but remain pending their protected workflows. Harness 1.3.0 and Code 0.2.0 stay the published latest packages.
|
|
4
4
|
|
|
5
5
|
The 1.1 support scope is tracked in the [machine-readable support matrix](./docs/support-matrix-1.1.json) and its [human-readable view](./docs/SUPPORT_MATRIX_1_1.md). The [1.0 matrix](./docs/SUPPORT_MATRIX.md) remains historical. Compatibility and removals follow [DEPRECATIONS.md](./docs/DEPRECATIONS.md) for the published 1.x line.
|
|
6
6
|
|
|
@@ -13,7 +13,7 @@ The 1.1 support scope is tracked in the [machine-readable support matrix](./docs
|
|
|
13
13
|
- the provider/model combinations marked certified in the package documentation; and
|
|
14
14
|
- HTTPS or explicitly allowed loopback-HTTP MCP endpoints using the documented bounded JSON-RPC subset.
|
|
15
15
|
|
|
16
|
-
Only the most recent published stable minor receives routine fixes. The exact `v1.3.0` tag passed the protected artifact, six-provider live and 42-case representative release jobs. Harness 1.3.x and Code 0.
|
|
16
|
+
Only the most recent published stable minor receives routine fixes. The exact `v1.3.0` tag passed the protected artifact, six-provider live and 42-case representative release jobs. Harness 1.3.x and Code 0.2.x are the supported stable lines until 1.4.0 and Code 0.3.0 complete verified publication. Gemini, Anthropic and Vertex remain provisional despite the release-bound live gates; the representative repository matrix covers only Meta, Qwen and OpenAI. Live provider evidence is account-, model-, endpoint-, artifact-, and date-dependent; see [docs/LIVE_CERTIFICATION.md](https://github.com/Zhivex/zhivex-harness/blob/main/docs/LIVE_CERTIFICATION.md).
|
|
17
17
|
|
|
18
18
|
## Installation diagnostics
|
|
19
19
|
|
|
@@ -2735,6 +2735,61 @@
|
|
|
2735
2735
|
"name": "checkEvidence",
|
|
2736
2736
|
"kind": "runtime",
|
|
2737
2737
|
"tier": "experimental"
|
|
2738
|
+
},
|
|
2739
|
+
{
|
|
2740
|
+
"name": "initializeHarnessTaskBudget",
|
|
2741
|
+
"kind": "runtime",
|
|
2742
|
+
"tier": "experimental"
|
|
2743
|
+
},
|
|
2744
|
+
{
|
|
2745
|
+
"name": "inspectHarnessTaskBudget",
|
|
2746
|
+
"kind": "runtime",
|
|
2747
|
+
"tier": "experimental"
|
|
2748
|
+
},
|
|
2749
|
+
{
|
|
2750
|
+
"name": "requestHarnessTaskCancellation",
|
|
2751
|
+
"kind": "runtime",
|
|
2752
|
+
"tier": "experimental"
|
|
2753
|
+
},
|
|
2754
|
+
{
|
|
2755
|
+
"name": "persistHarnessTaskDraft",
|
|
2756
|
+
"kind": "runtime",
|
|
2757
|
+
"tier": "experimental"
|
|
2758
|
+
},
|
|
2759
|
+
{
|
|
2760
|
+
"name": "readHarnessTaskDraft",
|
|
2761
|
+
"kind": "runtime",
|
|
2762
|
+
"tier": "experimental"
|
|
2763
|
+
},
|
|
2764
|
+
{
|
|
2765
|
+
"name": "TASK_BUDGET_KEY",
|
|
2766
|
+
"kind": "runtime",
|
|
2767
|
+
"tier": "experimental"
|
|
2768
|
+
},
|
|
2769
|
+
{
|
|
2770
|
+
"name": "inspectTaskBudgetSummary",
|
|
2771
|
+
"kind": "runtime",
|
|
2772
|
+
"tier": "experimental"
|
|
2773
|
+
},
|
|
2774
|
+
{
|
|
2775
|
+
"name": "inspectHarnessTaskContinuity",
|
|
2776
|
+
"kind": "runtime",
|
|
2777
|
+
"tier": "experimental"
|
|
2778
|
+
},
|
|
2779
|
+
{
|
|
2780
|
+
"name": "createTaskTelemetry",
|
|
2781
|
+
"kind": "runtime",
|
|
2782
|
+
"tier": "experimental"
|
|
2783
|
+
},
|
|
2784
|
+
{
|
|
2785
|
+
"name": "runHarnessTask",
|
|
2786
|
+
"kind": "runtime",
|
|
2787
|
+
"tier": "experimental"
|
|
2788
|
+
},
|
|
2789
|
+
{
|
|
2790
|
+
"name": "HarnessTaskRunOptions",
|
|
2791
|
+
"kind": "type",
|
|
2792
|
+
"tier": "experimental"
|
|
2738
2793
|
}
|
|
2739
2794
|
]
|
|
2740
2795
|
},
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
},
|
|
134
134
|
{
|
|
135
135
|
"name": "cancelHarnessRun",
|
|
136
|
-
"sha256": "sha256:
|
|
136
|
+
"sha256": "sha256:209632058366e3993cc22c7bdadde31dd00a3f533dcfb4d61c8f5124de9c3aed"
|
|
137
137
|
},
|
|
138
138
|
{
|
|
139
139
|
"name": "canonicalizeChangeEnvelope",
|
|
@@ -141,15 +141,15 @@
|
|
|
141
141
|
},
|
|
142
142
|
{
|
|
143
143
|
"name": "cleanupHarnessRuns",
|
|
144
|
-
"sha256": "sha256:
|
|
144
|
+
"sha256": "sha256:0d91a941627459e31098d8f7b0f5abbde1ec518705c61e8eb4cd54ac1a2da4f8"
|
|
145
145
|
},
|
|
146
146
|
{
|
|
147
147
|
"name": "cliJsonDocumentSchema",
|
|
148
|
-
"sha256": "sha256:
|
|
148
|
+
"sha256": "sha256:7e7a254c88c40eb537981b8e28cc9abeb1196e75d8ee025c12551cb8cfeab580"
|
|
149
149
|
},
|
|
150
150
|
{
|
|
151
151
|
"name": "cliJsonLineDocumentSchema",
|
|
152
|
-
"sha256": "sha256:
|
|
152
|
+
"sha256": "sha256:94a0815632f10a637cc889ed54ffb406b9253aab373fff3bb045be68aa071d91"
|
|
153
153
|
},
|
|
154
154
|
{
|
|
155
155
|
"name": "computeChangeEnvelopeDigest",
|
|
@@ -165,7 +165,7 @@
|
|
|
165
165
|
},
|
|
166
166
|
{
|
|
167
167
|
"name": "createHarness",
|
|
168
|
-
"sha256": "sha256:
|
|
168
|
+
"sha256": "sha256:8b682f88b2c92a5581a68f92dbd886b5dc6c8b49b04ca8e1214bed164708b9ea"
|
|
169
169
|
},
|
|
170
170
|
{
|
|
171
171
|
"name": "createHarnessMcpTools",
|
|
@@ -177,7 +177,7 @@
|
|
|
177
177
|
},
|
|
178
178
|
{
|
|
179
179
|
"name": "createHarnessStateBackup",
|
|
180
|
-
"sha256": "sha256:
|
|
180
|
+
"sha256": "sha256:f1fa095f7b2db71d64f07ff23d8823fc1ba57729d3cfdb1188969c5ab2172332"
|
|
181
181
|
},
|
|
182
182
|
{
|
|
183
183
|
"name": "createHttpMcpClient",
|
|
@@ -185,7 +185,7 @@
|
|
|
185
185
|
},
|
|
186
186
|
{
|
|
187
187
|
"name": "createProviderModel",
|
|
188
|
-
"sha256": "sha256:
|
|
188
|
+
"sha256": "sha256:482f0414ff0315198c7b1deaabf024ffdbb64b6c06e5e7d7832652931ec540bb"
|
|
189
189
|
},
|
|
190
190
|
{
|
|
191
191
|
"name": "digestChangeEnvelopeArtifact",
|
|
@@ -193,31 +193,31 @@
|
|
|
193
193
|
},
|
|
194
194
|
{
|
|
195
195
|
"name": "exportHarnessStateBackup",
|
|
196
|
-
"sha256": "sha256:
|
|
196
|
+
"sha256": "sha256:f6a581444669735dcc3998ec24b4e6f9f389d18f4680e9c956f6287738076a12"
|
|
197
197
|
},
|
|
198
198
|
{
|
|
199
199
|
"name": "harnessErrorDocument",
|
|
200
|
-
"sha256": "sha256:
|
|
200
|
+
"sha256": "sha256:5340a9d49948981bbaa3223ec63249351dbc6271b4caf717e34b0fcc05c8f1fd"
|
|
201
201
|
},
|
|
202
202
|
{
|
|
203
203
|
"name": "importHarnessStateBackup",
|
|
204
|
-
"sha256": "sha256:
|
|
204
|
+
"sha256": "sha256:1929d2a2ba7de06801dc7b6b961b74e92e7fb871ac4f01e0ba9d79d9dfb97d0f"
|
|
205
205
|
},
|
|
206
206
|
{
|
|
207
207
|
"name": "importHarnessStateBackupFile",
|
|
208
|
-
"sha256": "sha256:
|
|
208
|
+
"sha256": "sha256:07b707e8e8495a87972a075894c4ecf59161be6ac2cdce8f9a66bf71d1b51d40"
|
|
209
209
|
},
|
|
210
210
|
{
|
|
211
211
|
"name": "inspectHarnessRun",
|
|
212
|
-
"sha256": "sha256:
|
|
212
|
+
"sha256": "sha256:68e13aabfcd8974e92cebb7b06afdb5643c76d86b3473c2afeb127245329d4e5"
|
|
213
213
|
},
|
|
214
214
|
{
|
|
215
215
|
"name": "inspectHarnessState",
|
|
216
|
-
"sha256": "sha256:
|
|
216
|
+
"sha256": "sha256:529d9bf8c0528942793786c345030a98e88d219c34f41ea2c3e31724cca66837"
|
|
217
217
|
},
|
|
218
218
|
{
|
|
219
219
|
"name": "listHarnessRuns",
|
|
220
|
-
"sha256": "sha256:
|
|
220
|
+
"sha256": "sha256:2085baf7b5c69e79939dd8d13d6dbccb8166d163659823d93bd2eb10d6080acc"
|
|
221
221
|
},
|
|
222
222
|
{
|
|
223
223
|
"name": "loadHarnessMcpConfiguration",
|
|
@@ -225,7 +225,7 @@
|
|
|
225
225
|
},
|
|
226
226
|
{
|
|
227
227
|
"name": "migrateHarnessConfigInput",
|
|
228
|
-
"sha256": "sha256:
|
|
228
|
+
"sha256": "sha256:719fcc2bef2415d972f7f04f3970b9120e285a4b9abd5df0fd01727e05befa2f"
|
|
229
229
|
},
|
|
230
230
|
{
|
|
231
231
|
"name": "normalizeHarnessError",
|
|
@@ -241,15 +241,15 @@
|
|
|
241
241
|
},
|
|
242
242
|
{
|
|
243
243
|
"name": "openHarnessPersistence",
|
|
244
|
-
"sha256": "sha256:
|
|
244
|
+
"sha256": "sha256:91a4d79eb2c7a4e82cb1aa6ad199492538bd2d9599bd320eb603765fb6fca934"
|
|
245
245
|
},
|
|
246
246
|
{
|
|
247
247
|
"name": "parseCliJsonDocument",
|
|
248
|
-
"sha256": "sha256:
|
|
248
|
+
"sha256": "sha256:8d94b80ef3160b12119ce8b083937ef6beed2a1b068f46f94b5077e36d54a931"
|
|
249
249
|
},
|
|
250
250
|
{
|
|
251
251
|
"name": "parseCliJsonLineDocument",
|
|
252
|
-
"sha256": "sha256:
|
|
252
|
+
"sha256": "sha256:3f0c38ada9d89150fe2cedbb50380f8e170ad22dfb2d7a17690efc057be9bc3b"
|
|
253
253
|
},
|
|
254
254
|
{
|
|
255
255
|
"name": "parseHarnessModelRoute",
|
|
@@ -269,11 +269,11 @@
|
|
|
269
269
|
},
|
|
270
270
|
{
|
|
271
271
|
"name": "resolveHarnessConfig",
|
|
272
|
-
"sha256": "sha256:
|
|
272
|
+
"sha256": "sha256:92dd51056d4745eea346f9163f29b9748ac6e1b9f9d0e28a3191111093703804"
|
|
273
273
|
},
|
|
274
274
|
{
|
|
275
275
|
"name": "runHarness",
|
|
276
|
-
"sha256": "sha256:
|
|
276
|
+
"sha256": "sha256:aeed30705c782cb7af884a8d51abf9d47bf4a9b7010650c842209c5f608b6019"
|
|
277
277
|
},
|
|
278
278
|
{
|
|
279
279
|
"name": "serializeStreamEvent",
|
|
@@ -319,11 +319,11 @@
|
|
|
319
319
|
},
|
|
320
320
|
{
|
|
321
321
|
"name": "CliJsonDocument",
|
|
322
|
-
"sha256": "sha256:
|
|
322
|
+
"sha256": "sha256:613a0da81316ffd657d18427c28804a8f7dc51017aec2e6893d7b2d64a5ff96e"
|
|
323
323
|
},
|
|
324
324
|
{
|
|
325
325
|
"name": "CliJsonLineDocument",
|
|
326
|
-
"sha256": "sha256:
|
|
326
|
+
"sha256": "sha256:5dd40d8c335fd1e6e3414825e70fd4dd70117286e1bc0f5e96c53c45b6b6c91a"
|
|
327
327
|
},
|
|
328
328
|
{
|
|
329
329
|
"name": "CliOptionDefinition",
|
|
@@ -339,7 +339,7 @@
|
|
|
339
339
|
},
|
|
340
340
|
{
|
|
341
341
|
"name": "CliRunEventDocument",
|
|
342
|
-
"sha256": "sha256:
|
|
342
|
+
"sha256": "sha256:9ad681aea1b90debc0682dea6487f4098c50e5cd548e4694ae07db94b80279f0"
|
|
343
343
|
},
|
|
344
344
|
{
|
|
345
345
|
"name": "CliRunInspectionDocument",
|
|
@@ -351,7 +351,7 @@
|
|
|
351
351
|
},
|
|
352
352
|
{
|
|
353
353
|
"name": "CliRunResultDocument",
|
|
354
|
-
"sha256": "sha256:
|
|
354
|
+
"sha256": "sha256:1c14e0466d7e387aa80294d1271d9b2ff37fa4cbe41d9e1d7a1ad5faabe23318"
|
|
355
355
|
},
|
|
356
356
|
{
|
|
357
357
|
"name": "CliSession",
|
|
@@ -367,7 +367,7 @@
|
|
|
367
367
|
},
|
|
368
368
|
{
|
|
369
369
|
"name": "CliStreamErrorDocument",
|
|
370
|
-
"sha256": "sha256:
|
|
370
|
+
"sha256": "sha256:b9f92e4dc53013ec79690838dab8f5db19bdbba10a918549a914ddf41eb423b7"
|
|
371
371
|
},
|
|
372
372
|
{
|
|
373
373
|
"name": "CliStreamResultDocument",
|
|
@@ -375,23 +375,23 @@
|
|
|
375
375
|
},
|
|
376
376
|
{
|
|
377
377
|
"name": "CreateHarnessOptions",
|
|
378
|
-
"sha256": "sha256:
|
|
378
|
+
"sha256": "sha256:bf02d5a2b5cc10dfbc59a2dcceebe91d2a56add94f9912e8d73c61da4bb64a12"
|
|
379
379
|
},
|
|
380
380
|
{
|
|
381
381
|
"name": "HarnessBudget",
|
|
382
|
-
"sha256": "sha256:
|
|
382
|
+
"sha256": "sha256:d5ab8916582847c82fb2c86eface15f44af12a710926aa5eca2c59eac97638c0"
|
|
383
383
|
},
|
|
384
384
|
{
|
|
385
385
|
"name": "HarnessConfig",
|
|
386
|
-
"sha256": "sha256:
|
|
386
|
+
"sha256": "sha256:afd78cedcbe664b7decf1d11dd70a5bb7ad997ea090c9afaa894398f408cbd3d"
|
|
387
387
|
},
|
|
388
388
|
{
|
|
389
389
|
"name": "HarnessConfigInput",
|
|
390
|
-
"sha256": "sha256:
|
|
390
|
+
"sha256": "sha256:4679312a8a410043ee77890447460ac294b87dade7e2eb04e809295e3093b8c1"
|
|
391
391
|
},
|
|
392
392
|
{
|
|
393
393
|
"name": "HarnessConfigMigrationResult",
|
|
394
|
-
"sha256": "sha256:
|
|
394
|
+
"sha256": "sha256:4d9e7b61dd92f95be292571da2251ce8927c08fe488d7742d8c71cbc87e2eedb"
|
|
395
395
|
},
|
|
396
396
|
{
|
|
397
397
|
"name": "HarnessContextBundle",
|
|
@@ -415,7 +415,7 @@
|
|
|
415
415
|
},
|
|
416
416
|
{
|
|
417
417
|
"name": "HarnessErrorDocument",
|
|
418
|
-
"sha256": "sha256:
|
|
418
|
+
"sha256": "sha256:1bd889952a59431c2439a14e23b7dc1fd03ce63a4da4cdfa208da25d6f4c1c77"
|
|
419
419
|
},
|
|
420
420
|
{
|
|
421
421
|
"name": "HarnessExecutionBackend",
|
|
@@ -487,8 +487,8 @@
|
|
|
487
487
|
},
|
|
488
488
|
{
|
|
489
489
|
"name": "ZhivexHarness",
|
|
490
|
-
"sha256": "sha256:
|
|
490
|
+
"sha256": "sha256:4275565d750dbfd7d6dcaa7182f05d74136db32b057744446de24d6b69fe2061"
|
|
491
491
|
}
|
|
492
492
|
],
|
|
493
|
-
"digest": "sha256:
|
|
493
|
+
"digest": "sha256:e2ef392ba67e8a07f5d511c0274f8b4171888a1469205f541350fafb0b74f8cb"
|
|
494
494
|
}
|