@zhivex-ai/harness 1.3.0-rc.7 → 1.3.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 +8 -0
- package/README.md +10 -8
- package/SECURITY.md +1 -1
- package/SUPPORT.md +4 -4
- package/dist/acp-cli.js +2 -2
- package/dist/{cli-entry-ae7x44d4.js → cli-entry-1gfg3brj.js} +1 -1
- package/dist/{cli-entry-ev76ezcd.js → cli-entry-bx3vjw7h.js} +1 -1
- package/dist/{cli-t7hrhayq.js → cli-etsmtst3.js} +3 -3
- package/dist/cli.js +2 -2
- package/dist/engine/acp.js +3 -3
- package/dist/engine/client.js +2 -2
- package/dist/engine/index.js +3 -3
- package/dist/engine/mcp-stdio-v1.js +2 -2
- package/dist/engine/service.js +3 -3
- package/dist/hostile-repository-demo.js +1 -1
- package/dist/{index-z4e8d0ph.js → index-6m08wvab.js} +1 -1
- package/dist/{index-t60rva31.js → index-azmwjp95.js} +1 -1
- package/dist/{index-jgrx804e.js → index-hnaxfpb5.js} +1 -1
- package/dist/{index-2gz7jv7g.js → index-w2sj0wkw.js} +1 -1
- package/dist/index.js +3 -3
- package/dist/service-cli.js +3 -3
- package/dist/{service-client-cli-kns4mf57.js → service-client-cli-3365rfav.js} +2 -2
- package/dist/verify-historical-migrations.js +1 -1
- package/dist/zhx.js +2 -2
- package/docs/CODE_RELEASE.md +35 -18
- package/docs/ENGINE_API.md +10 -9
- package/docs/FIRST_USE.md +6 -6
- package/docs/STABILITY.md +1 -1
- package/evaluations/representative-assembly-matrix.json +10 -1
- package/examples/README.md +3 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,14 @@ 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.3.0 - 2026-10-02
|
|
8
|
+
|
|
9
|
+
- Prepare Harness 1.3.0 and the independent Code CLI 0.1.0 for protected publication to npm `latest`; Code pins exactly Harness 1.3.0 and must publish after its verified engine dependency.
|
|
10
|
+
- Preserve the RC7 runtime and Code RC2 provider/terminal fixes; no new product features or changes to historical Harness binaries, state contracts or stable API signatures.
|
|
11
|
+
- Validate Code stable/latest and RC/next channels, canonical versions, exact engine pins, channel ordering and immutable artifact recovery. Preserve annotated-tag, exact main CI/CodeQL, installed acceptance, integrity and provenance gates.
|
|
12
|
+
- Keep beta and experimental API tiers, provisional Anthropic/Gemini/Vertex support and private Desktop alpha unchanged. RC7's six-provider live gates and Meta/Qwen/OpenAI 42-case representative evidence remain bound to RC7; stable artifacts require new protected evidence.
|
|
13
|
+
- Refresh the recorded verified latest publication to Harness 1.2.0 without fabricating an uncreated GitHub Release, and align active release/installation documentation without claiming that the prepared stable versions are already published.
|
|
14
|
+
|
|
7
15
|
## 1.3.0-rc.7 - 2026-10-01
|
|
8
16
|
|
|
9
17
|
- Pin Qwen contract certification to zero sampling temperature in approval and conversation continuity smokes, preserving all approval, compaction, effect and context assertions. Application model defaults remain unchanged.
|
package/README.md
CHANGED
|
@@ -11,19 +11,21 @@ implement a change. Conversation context retains decisions, hypotheses and bound
|
|
|
11
11
|
diagnostic excerpts across compaction. Edits and command execution keep their
|
|
12
12
|
own permission checks; a conversational summary never grants approval.
|
|
13
13
|
|
|
14
|
-
Version `1.3.0
|
|
15
|
-
|
|
16
|
-
the protected
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
Desktop
|
|
14
|
+
Version `1.3.0` is prepared for npm `latest`, with terminal-independent engine
|
|
15
|
+
entrypoints and the separately released Code CLI `0.1.0`. Publication remains
|
|
16
|
+
pending the protected workflow. Harness `1.2.0` is currently published on `latest`;
|
|
17
|
+
Harness RC7 and Code RC2 are published on `next`. Stable package numbering does
|
|
18
|
+
not change API stability tiers: beta and experimental APIs retain their policies,
|
|
19
|
+
Gemini/Anthropic/Vertex remain provisional, and Desktop remains a private alpha.
|
|
20
20
|
|
|
21
21
|
## Quick start
|
|
22
22
|
|
|
23
23
|
Requires Node.js 22.13.0 or newer, Git and a provider API key.
|
|
24
24
|
|
|
25
|
+
After protected publication of 1.3.0:
|
|
26
|
+
|
|
25
27
|
```sh
|
|
26
|
-
npm install -g @zhivex-ai/harness@1.3.0
|
|
28
|
+
npm install -g @zhivex-ai/harness@1.3.0
|
|
27
29
|
cd /path/to/your/project
|
|
28
30
|
zhx
|
|
29
31
|
```
|
|
@@ -81,5 +83,5 @@ Gemini, [Anthropic](docs/ANTHROPIC.md) and [Vertex](docs/VERTEX.md) remain provi
|
|
|
81
83
|
Version `1.2.0` is the current stable public npm release. Source checkout changes can be
|
|
82
84
|
newer than the published package. Consult the [changelog](CHANGELOG.md) and
|
|
83
85
|
[repository release status](https://raw.githubusercontent.com/Zhivex/zhivex-harness/main/release-status.json)
|
|
84
|
-
for the
|
|
86
|
+
for the verified 1.2.0 publication; [release evidence](https://github.com/Zhivex/zhivex-harness/blob/main/docs/LIVE_CERTIFICATION.md)
|
|
85
87
|
records validation scope and limitations.
|
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.1.x` patch.
|
|
5
|
+
Security fixes are provided for the latest published stable Harness minor (currently `1.2.x`; `1.3.x` after verified publication) and the latest stable Code `0.1.x` patch after its 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
|
+
Zhivex Harness `1.2.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.2.0 publication. Harness 1.3.0 and Code 0.1.0 are prepared for latest but remain pending their protected workflows.
|
|
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,11 +13,11 @@ 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
|
|
16
|
+
Only the most recent published stable minor receives routine fixes. The exact `v1.2.0` tag passed the protected artifact, live-provider and representative release jobs. After verified publication, 1.3.x and Code 0.1.x become the supported stable lines. Gemini, Anthropic and Vertex remain provisional despite RC7 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
|
|
|
20
|
-
Follow the [stable installation commands](./README.md#
|
|
20
|
+
Follow the [stable installation commands](./README.md#quick-start) or [isolated Bun example](./examples/README.md). Run `zhx --version`, `zhx --help`, and `zhx doctor` before reporting an installation issue. Doctor is local: a missing provider credential produces a diagnostic failure until that credential is configured. Include the version, OS, Node/Bun versions and sanitized diagnostics in a report; never include keys or your `.env` file.
|
|
21
21
|
|
|
22
22
|
## Support channels
|
|
23
23
|
|
|
@@ -25,4 +25,4 @@ Use [GitHub Issues](https://github.com/Zhivex/zhivex-harness/issues) for reprodu
|
|
|
25
25
|
|
|
26
26
|
## Explicit limits
|
|
27
27
|
|
|
28
|
-
The harness does not promise arbitrary shell access, `stdio` MCP, permanent deletion, Windows support, a managed sandbox, a desktop UI, or exact feature parity between upstream providers. Tools run with the permissions of the local harness process unless an application supplies a stronger execution environment.
|
|
28
|
+
The harness does not promise arbitrary shell access, general-purpose `stdio` MCP interoperability, permanent deletion, Windows support, a managed sandbox, a stable desktop UI, or exact feature parity between upstream providers. Tools run with the permissions of the local harness process unless an application supplies a stronger execution environment.
|
package/dist/acp-cli.js
CHANGED
|
@@ -12,13 +12,13 @@ import {
|
|
|
12
12
|
import {
|
|
13
13
|
createHarness,
|
|
14
14
|
createHarnessClientAdapter
|
|
15
|
-
} from "./index-
|
|
15
|
+
} from "./index-hnaxfpb5.js";
|
|
16
16
|
import"./index-h0mqx2ed.js";
|
|
17
17
|
import"./index-8zzhggxv.js";
|
|
18
18
|
import {
|
|
19
19
|
usagePricingSchema
|
|
20
20
|
} from "./index-42gp2hy8.js";
|
|
21
|
-
import"./index-
|
|
21
|
+
import"./index-azmwjp95.js";
|
|
22
22
|
import"./index-z0qxmkm2.js";
|
|
23
23
|
import {
|
|
24
24
|
FileChangedWhileReadingError,
|
|
@@ -402,7 +402,7 @@ Use zhx help all for the full reference and exit codes.`;
|
|
|
402
402
|
// package.json
|
|
403
403
|
var package_default = {
|
|
404
404
|
name: "@zhivex-ai/harness",
|
|
405
|
-
version: "1.3.0
|
|
405
|
+
version: "1.3.0",
|
|
406
406
|
description: "Governed, provider-portable runtime for coding agents with durable approvals and isolated repository execution.",
|
|
407
407
|
type: "module",
|
|
408
408
|
license: "MIT",
|
|
@@ -120,14 +120,14 @@ import {
|
|
|
120
120
|
withTemporaryHarnessProfiles,
|
|
121
121
|
workspaceCheckpointSchema,
|
|
122
122
|
workspaceRestoreOperationSchema
|
|
123
|
-
} from "./cli-entry-
|
|
123
|
+
} from "./cli-entry-1gfg3brj.js";
|
|
124
124
|
import {
|
|
125
125
|
BUN_ENGINE_RANGE,
|
|
126
126
|
HARNESS_VERSION,
|
|
127
127
|
NODE_ENGINE_RANGE,
|
|
128
128
|
formatCliHelp,
|
|
129
129
|
shortCliHelp
|
|
130
|
-
} from "./cli-entry-
|
|
130
|
+
} from "./cli-entry-bx3vjw7h.js";
|
|
131
131
|
import {
|
|
132
132
|
DEFAULT_HARNESS_MAX_STEPS,
|
|
133
133
|
DEFAULT_PROVIDER_REGISTRY,
|
|
@@ -4360,7 +4360,7 @@ var main = async (argv = process.argv.slice(2)) => {
|
|
|
4360
4360
|
parsedOptions = { ...parsedOptions, prompt: await readStdinTask() };
|
|
4361
4361
|
}
|
|
4362
4362
|
if (parsedOptions.serviceFile) {
|
|
4363
|
-
const { runServiceCli } = await import("./service-client-cli-
|
|
4363
|
+
const { runServiceCli } = await import("./service-client-cli-3365rfav.js");
|
|
4364
4364
|
await runServiceCli(parsedOptions, annotateCliStreamError);
|
|
4365
4365
|
return;
|
|
4366
4366
|
}
|
package/dist/cli.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
HARNESS_VERSION,
|
|
4
4
|
shortCliHelp
|
|
5
|
-
} from "./cli-entry-
|
|
5
|
+
} from "./cli-entry-bx3vjw7h.js";
|
|
6
6
|
import {
|
|
7
7
|
__require
|
|
8
8
|
} from "./cli-entry-1bx83sw4.js";
|
|
@@ -16,6 +16,6 @@ if (argv.length === 1 && ["--version", "-v", "version"].includes(argv[0])) {
|
|
|
16
16
|
process.stdout.write(`${shortCliHelp(HARNESS_VERSION)}
|
|
17
17
|
`);
|
|
18
18
|
} else {
|
|
19
|
-
const { runCli } = await import("./cli-
|
|
19
|
+
const { runCli } = await import("./cli-etsmtst3.js");
|
|
20
20
|
await runCli(argv);
|
|
21
21
|
}
|
package/dist/engine/acp.js
CHANGED
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
discardMcpWorkspaceSnapshot,
|
|
3
3
|
launchDockerMcpGroup,
|
|
4
4
|
prepareMcpWorkspaceSnapshot
|
|
5
|
-
} from "../index-
|
|
5
|
+
} from "../index-6m08wvab.js";
|
|
6
6
|
import {
|
|
7
7
|
createAcpConnection,
|
|
8
8
|
issueAcpMcpSessionProvider,
|
|
@@ -11,11 +11,11 @@ import {
|
|
|
11
11
|
import {
|
|
12
12
|
createHarness,
|
|
13
13
|
createHarnessClientAdapter
|
|
14
|
-
} from "../index-
|
|
14
|
+
} from "../index-hnaxfpb5.js";
|
|
15
15
|
import"../index-h0mqx2ed.js";
|
|
16
16
|
import"../index-8zzhggxv.js";
|
|
17
17
|
import"../index-42gp2hy8.js";
|
|
18
|
-
import"../index-
|
|
18
|
+
import"../index-azmwjp95.js";
|
|
19
19
|
import"../index-z0qxmkm2.js";
|
|
20
20
|
import"../index-yb239ghk.js";
|
|
21
21
|
import"../index-gq9xagx2.js";
|
package/dist/engine/client.js
CHANGED
|
@@ -2,11 +2,11 @@ import {
|
|
|
2
2
|
createHarnessClientAdapter,
|
|
3
3
|
runResultDocument,
|
|
4
4
|
terminalContinuationMessages
|
|
5
|
-
} from "../index-
|
|
5
|
+
} from "../index-hnaxfpb5.js";
|
|
6
6
|
import"../index-h0mqx2ed.js";
|
|
7
7
|
import"../index-8zzhggxv.js";
|
|
8
8
|
import"../index-42gp2hy8.js";
|
|
9
|
-
import"../index-
|
|
9
|
+
import"../index-azmwjp95.js";
|
|
10
10
|
import"../index-z0qxmkm2.js";
|
|
11
11
|
import"../index-yb239ghk.js";
|
|
12
12
|
import"../index-gq9xagx2.js";
|
package/dist/engine/index.js
CHANGED
|
@@ -91,7 +91,7 @@ import {
|
|
|
91
91
|
recoverHarnessLocalService,
|
|
92
92
|
requestHarnessLocalService,
|
|
93
93
|
startHarnessLocalService
|
|
94
|
-
} from "../index-
|
|
94
|
+
} from "../index-w2sj0wkw.js";
|
|
95
95
|
import {
|
|
96
96
|
createAcpConnection,
|
|
97
97
|
serveAcpStdio
|
|
@@ -144,7 +144,7 @@ import {
|
|
|
144
144
|
runHarness,
|
|
145
145
|
runHarnessReviewGroup,
|
|
146
146
|
selectHarnessModel
|
|
147
|
-
} from "../index-
|
|
147
|
+
} from "../index-hnaxfpb5.js";
|
|
148
148
|
import {
|
|
149
149
|
HARNESS_OPERATIONS_SCHEMA_VERSION,
|
|
150
150
|
HARNESS_SQLITE_FILE,
|
|
@@ -184,7 +184,7 @@ import {
|
|
|
184
184
|
createHttpMcpClient,
|
|
185
185
|
loadHarnessMcpConfiguration,
|
|
186
186
|
normalizeHarnessMcpConfiguration
|
|
187
|
-
} from "../index-
|
|
187
|
+
} from "../index-azmwjp95.js";
|
|
188
188
|
import {
|
|
189
189
|
CliOciRuntimeAdapter,
|
|
190
190
|
HARNESS_EXECUTION_ARTIFACT_SCHEMA_VERSION,
|
|
@@ -8,8 +8,8 @@ import {
|
|
|
8
8
|
mcpResourcePlanSchema,
|
|
9
9
|
prepareMcpWorkspaceSnapshot,
|
|
10
10
|
recoverDockerMcpResources
|
|
11
|
-
} from "../index-
|
|
12
|
-
import"../index-
|
|
11
|
+
} from "../index-6m08wvab.js";
|
|
12
|
+
import"../index-azmwjp95.js";
|
|
13
13
|
import"../index-z0qxmkm2.js";
|
|
14
14
|
import"../index-yb239ghk.js";
|
|
15
15
|
import"../index-gq9xagx2.js";
|
package/dist/engine/service.js
CHANGED
|
@@ -5,12 +5,12 @@ import {
|
|
|
5
5
|
recoverHarnessLocalService,
|
|
6
6
|
requestHarnessLocalService,
|
|
7
7
|
startHarnessLocalService
|
|
8
|
-
} from "../index-
|
|
9
|
-
import"../index-
|
|
8
|
+
} from "../index-w2sj0wkw.js";
|
|
9
|
+
import"../index-hnaxfpb5.js";
|
|
10
10
|
import"../index-h0mqx2ed.js";
|
|
11
11
|
import"../index-8zzhggxv.js";
|
|
12
12
|
import"../index-42gp2hy8.js";
|
|
13
|
-
import"../index-
|
|
13
|
+
import"../index-azmwjp95.js";
|
|
14
14
|
import"../index-z0qxmkm2.js";
|
|
15
15
|
import"../index-yb239ghk.js";
|
|
16
16
|
import"../index-gq9xagx2.js";
|
|
@@ -12120,7 +12120,7 @@ import { z as z30 } from "zod";
|
|
|
12120
12120
|
// package.json
|
|
12121
12121
|
var package_default = {
|
|
12122
12122
|
name: "@zhivex-ai/harness",
|
|
12123
|
-
version: "1.3.0
|
|
12123
|
+
version: "1.3.0",
|
|
12124
12124
|
description: "Governed, provider-portable runtime for coding agents with durable approvals and isolated repository execution.",
|
|
12125
12125
|
type: "module",
|
|
12126
12126
|
license: "MIT",
|
|
@@ -11,7 +11,7 @@ import {
|
|
|
11
11
|
// package.json
|
|
12
12
|
var package_default = {
|
|
13
13
|
name: "@zhivex-ai/harness",
|
|
14
|
-
version: "1.3.0
|
|
14
|
+
version: "1.3.0",
|
|
15
15
|
description: "Governed, provider-portable runtime for coding agents with durable approvals and isolated repository execution.",
|
|
16
16
|
type: "module",
|
|
17
17
|
license: "MIT",
|
package/dist/index.js
CHANGED
|
@@ -100,7 +100,7 @@ import {
|
|
|
100
100
|
recoverHarnessLocalService,
|
|
101
101
|
requestHarnessLocalService,
|
|
102
102
|
startHarnessLocalService
|
|
103
|
-
} from "./index-
|
|
103
|
+
} from "./index-w2sj0wkw.js";
|
|
104
104
|
import {
|
|
105
105
|
createAcpConnection,
|
|
106
106
|
serveAcpStdio
|
|
@@ -147,7 +147,7 @@ import {
|
|
|
147
147
|
runHarness,
|
|
148
148
|
runHarnessReviewGroup,
|
|
149
149
|
selectHarnessModel
|
|
150
|
-
} from "./index-
|
|
150
|
+
} from "./index-hnaxfpb5.js";
|
|
151
151
|
import {
|
|
152
152
|
HARNESS_OPERATIONS_SCHEMA_VERSION,
|
|
153
153
|
HARNESS_SQLITE_FILE,
|
|
@@ -180,7 +180,7 @@ import {
|
|
|
180
180
|
createHttpMcpClient,
|
|
181
181
|
loadHarnessMcpConfiguration,
|
|
182
182
|
normalizeHarnessMcpConfiguration
|
|
183
|
-
} from "./index-
|
|
183
|
+
} from "./index-azmwjp95.js";
|
|
184
184
|
import {
|
|
185
185
|
CliOciRuntimeAdapter,
|
|
186
186
|
HARNESS_EXECUTION_ARTIFACT_SCHEMA_VERSION,
|
package/dist/service-cli.js
CHANGED
|
@@ -2,14 +2,14 @@
|
|
|
2
2
|
import {
|
|
3
3
|
recoverHarnessLocalService,
|
|
4
4
|
startHarnessLocalService
|
|
5
|
-
} from "./index-
|
|
5
|
+
} from "./index-w2sj0wkw.js";
|
|
6
6
|
import {
|
|
7
7
|
createHarness
|
|
8
|
-
} from "./index-
|
|
8
|
+
} from "./index-hnaxfpb5.js";
|
|
9
9
|
import"./index-h0mqx2ed.js";
|
|
10
10
|
import"./index-8zzhggxv.js";
|
|
11
11
|
import"./index-42gp2hy8.js";
|
|
12
|
-
import"./index-
|
|
12
|
+
import"./index-azmwjp95.js";
|
|
13
13
|
import"./index-z0qxmkm2.js";
|
|
14
14
|
import"./index-yb239ghk.js";
|
|
15
15
|
import"./index-gq9xagx2.js";
|
|
@@ -14,10 +14,10 @@ import {
|
|
|
14
14
|
printPolicyInspection,
|
|
15
15
|
sanitizeTerminalText,
|
|
16
16
|
serializeStreamResult
|
|
17
|
-
} from "./cli-entry-
|
|
17
|
+
} from "./cli-entry-1gfg3brj.js";
|
|
18
18
|
import {
|
|
19
19
|
HARNESS_VERSION
|
|
20
|
-
} from "./cli-entry-
|
|
20
|
+
} from "./cli-entry-bx3vjw7h.js";
|
|
21
21
|
import {
|
|
22
22
|
HARNESS_ERROR_CODES,
|
|
23
23
|
HARNESS_ERROR_SCHEMA_VERSION,
|
|
@@ -12556,7 +12556,7 @@ import { z as z32 } from "zod";
|
|
|
12556
12556
|
// package.json
|
|
12557
12557
|
var package_default = {
|
|
12558
12558
|
name: "@zhivex-ai/harness",
|
|
12559
|
-
version: "1.3.0
|
|
12559
|
+
version: "1.3.0",
|
|
12560
12560
|
description: "Governed, provider-portable runtime for coding agents with durable approvals and isolated repository execution.",
|
|
12561
12561
|
type: "module",
|
|
12562
12562
|
license: "MIT",
|
package/dist/zhx.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import {
|
|
3
3
|
HARNESS_VERSION,
|
|
4
4
|
shortCliHelp
|
|
5
|
-
} from "./cli-entry-
|
|
5
|
+
} from "./cli-entry-bx3vjw7h.js";
|
|
6
6
|
import {
|
|
7
7
|
__require
|
|
8
8
|
} from "./cli-entry-1bx83sw4.js";
|
|
@@ -16,6 +16,6 @@ if (argv.length === 1 && ["--version", "-v", "version"].includes(argv[0])) {
|
|
|
16
16
|
process.stdout.write(`${shortCliHelp(HARNESS_VERSION)}
|
|
17
17
|
`);
|
|
18
18
|
} else {
|
|
19
|
-
const { runCli } = await import("./cli-
|
|
19
|
+
const { runCli } = await import("./cli-etsmtst3.js");
|
|
20
20
|
await runCli(argv);
|
|
21
21
|
}
|
package/docs/CODE_RELEASE.md
CHANGED
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
# Code release procedure
|
|
2
2
|
|
|
3
|
-
Code is released independently of Harness. The
|
|
4
|
-
`@zhivex-ai/code@0.1.0
|
|
5
|
-
and the exact dependency `@zhivex-ai/harness@1.3.0
|
|
6
|
-
published and verified through its protected release workflow.
|
|
7
|
-
|
|
3
|
+
Code is released independently of Harness. The prepared stable release is
|
|
4
|
+
`@zhivex-ai/code@0.1.0`, with the sole binary `zhivex-code`, npm tag `latest`,
|
|
5
|
+
and the exact dependency `@zhivex-ai/harness@1.3.0`. Harness must first be
|
|
6
|
+
published and verified through its protected release workflow. Code RC2 is
|
|
7
|
+
already published on `next` and RC1 is still on `latest`; trusted
|
|
8
|
+
publishing succeeded in [run 36902929707](https://github.com/Zhivex/zhivex-harness/actions/runs/36902929707).
|
|
9
|
+
The stable release uses that existing OIDC path; no new credentials or publisher
|
|
10
|
+
configuration are part of preparation. This document records preparation, not
|
|
11
|
+
successful stable publication.
|
|
8
12
|
|
|
9
13
|
## Release preparation
|
|
10
14
|
|
|
@@ -12,19 +16,23 @@ records preparation, not successful publication.
|
|
|
12
16
|
2. Wait for the latest `ci.yml` and `codeql.yml` **push runs on main** to succeed
|
|
13
17
|
for the exact commit. Keep the Code manifest, version and engine pin unchanged
|
|
14
18
|
after selecting that commit.
|
|
15
|
-
3.
|
|
16
|
-
|
|
19
|
+
3. Wait for Harness `1.3.0` publication and successful registry/provenance
|
|
20
|
+
verification as ordered in [the Harness release procedure](https://github.com/Zhivex/zhivex-harness/blob/main/docs/RELEASE.md).
|
|
21
|
+
From a clean checkout of that main commit, create an annotated
|
|
22
|
+
`code-v0.1.0` tag and push it. Never move or overwrite release tags.
|
|
17
23
|
4. Dispatch `release-code.yml` **at that tag**, with input `tag` matching it and
|
|
18
|
-
`mode=
|
|
24
|
+
`channel=latest`, `mode=oidc`, and `confirm_publication=true`. Dispatching
|
|
25
|
+
main while supplying a different tag is rejected.
|
|
19
26
|
|
|
20
27
|
```sh
|
|
21
|
-
gh workflow run release-code.yml --ref code-v0.1.0
|
|
22
|
-
-f tag=code-v0.1.0-
|
|
28
|
+
gh workflow run release-code.yml --ref code-v0.1.0 \
|
|
29
|
+
-f tag=code-v0.1.0 -f channel=latest -f mode=oidc -f confirm_publication=true
|
|
23
30
|
```
|
|
24
31
|
|
|
25
32
|
The workflow validates tag identity, main ancestry, exact CI/CodeQL, Code source
|
|
26
33
|
and package boundaries. It downloads the pinned Harness version from npm and
|
|
27
|
-
verifies its integrity
|
|
34
|
+
verifies its integrity and SLSA artifact/workflow/tag/source binding; missing
|
|
35
|
+
publication or provenance stops the release.
|
|
28
36
|
It builds Code once, inspects package contents, installs it against the actual
|
|
29
37
|
registry dependency without overrides, and tests the retained Code and Harness
|
|
30
38
|
artifacts with npm, pnpm, Yarn and Bun. The paired matrix uses explicit engine
|
|
@@ -36,13 +44,18 @@ inside the GitHub-hosted build job. It retains `code.tgz`, `code.sigstore.json`,
|
|
|
36
44
|
`SHA512SUMS`, and installed acceptance in `code-release-<full-source-sha>`.
|
|
37
45
|
Bootstrap mode **does not publish**. No npm token is copied into GitHub.
|
|
38
46
|
|
|
39
|
-
##
|
|
47
|
+
## Historical first publication / future package bootstrap
|
|
40
48
|
|
|
41
49
|
npm requires the package to exist before configuring its trusted publisher;
|
|
42
50
|
staged publishing also requires an existing package. An authenticated scope
|
|
43
51
|
owner performs the first publication using the successful workflow's retained
|
|
44
52
|
artifact and provenance bundle. Do not rebuild the tarball locally.
|
|
45
53
|
|
|
54
|
+
These bootstrap commands apply only if authenticated first publication is
|
|
55
|
+
explicitly authorized for a new package. They are unnecessary for the existing
|
|
56
|
+
Code package. Set `RELEASE_CHANNEL` from `bun run scripts/code-release.ts channel`
|
|
57
|
+
and keep it consistent with the artifact.
|
|
58
|
+
|
|
46
59
|
Download the artifact from the exact successful run, then verify it in a clean
|
|
47
60
|
checkout of its annotated Code tag. `CODE_EXPECTED_SHA` must be that tag's full
|
|
48
61
|
commit SHA. Install npm 11.6.1 into an isolated tools directory and set
|
|
@@ -51,12 +64,12 @@ commit SHA. Install npm 11.6.1 into an isolated tools directory and set
|
|
|
51
64
|
```sh
|
|
52
65
|
(cd release-code-artifacts && shasum -a 512 -c SHA512SUMS)
|
|
53
66
|
bun run scripts/code-release.ts inspect release-code-artifacts/code.tgz
|
|
54
|
-
CODE_EXPECTED_SHA="$(git rev-list -n 1 code-v0.1.0
|
|
67
|
+
CODE_EXPECTED_SHA="$(git rev-list -n 1 code-v0.1.0)" \
|
|
55
68
|
node scripts/code-bootstrap-provenance.cjs verify \
|
|
56
69
|
release-code-artifacts/code.tgz release-code-artifacts/code.sigstore.json
|
|
57
70
|
node "$CODE_PROVENANCE_NPM_ROOT/bin/npm-cli.js" publish \
|
|
58
71
|
./release-code-artifacts/code.tgz --ignore-scripts --access public \
|
|
59
|
-
--tag
|
|
72
|
+
--tag "$RELEASE_CHANNEL" --provenance-file ./release-code-artifacts/code.sigstore.json
|
|
60
73
|
bun run scripts/code-release.ts verify release-code-artifacts/code.tgz
|
|
61
74
|
```
|
|
62
75
|
|
|
@@ -74,16 +87,20 @@ repository `zhivex-harness`, workflow filename `release-code.yml`, and environme
|
|
|
74
87
|
`npm`. Enable the allowed action `npm publish`; the OIDC job uses direct
|
|
75
88
|
publishing after GitHub approval, not `npm stage publish`. Preserve the GitHub
|
|
76
89
|
environment's required human approval. Then prepare a
|
|
77
|
-
new Code RC
|
|
78
|
-
Dispatch its tag with `mode=oidc` and
|
|
90
|
+
new Code stable or RC version and annotated tag through the same PR and main CI process.
|
|
91
|
+
Dispatch its tag with the matching channel, `mode=oidc` and
|
|
92
|
+
`confirm_publication=true`. Stable versions require `latest` and a stable exact
|
|
93
|
+
Harness dependency; canonical RC versions require `next`. Version/channel drift
|
|
94
|
+
fails before engine downloads. An RC may pin a stable engine. Stable publication
|
|
95
|
+
does not upgrade beta/experimental APIs, provisional providers or Desktop alpha.
|
|
79
96
|
|
|
80
97
|
All Code tags share one workflow concurrency group. Before publishing, the
|
|
81
|
-
registry gate
|
|
98
|
+
registry gate rejects moving the selected channel back to an older release, including when
|
|
82
99
|
GitHub schedules queued workflows out of order.
|
|
83
100
|
|
|
84
101
|
The publish job downloads the validated artifact without rebuilding it,
|
|
85
102
|
rechecks identity and digest after protected approval, and uses npm OIDC plus
|
|
86
|
-
provenance. It verifies registry tarball bytes, the `next` distribution tag and
|
|
103
|
+
provenance. It verifies registry tarball bytes, the selected `latest`/`next` distribution tag and
|
|
87
104
|
SLSA source/workflow identity. A successful dispatch or tag is not publication;
|
|
88
105
|
only successful registry verification confirms the release. When a run has
|
|
89
106
|
already published, rerun only the failed publish job to retain original bytes.
|
package/docs/ENGINE_API.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# Engine API and Code integration
|
|
2
2
|
|
|
3
3
|
This checkout adds terminal-independent package entrypoints for
|
|
4
|
-
Harness 1.3.0
|
|
5
|
-
|
|
4
|
+
Harness 1.3.0 (prepared for `latest`). They are not present in the previously published Harness 1.2.0.
|
|
5
|
+
Stable publication is pending the protected workflow; use the documented
|
|
6
6
|
local candidate smoke to validate these bytes. Do not install registry 1.2.0 and
|
|
7
7
|
expect the new entrypoints to exist.
|
|
8
8
|
|
|
@@ -32,9 +32,9 @@ prompt for credentials. Hosts explicitly construct and close the runtime, supply
|
|
|
32
32
|
credentials/model instances, resolve approvals and choose their storage policy.
|
|
33
33
|
Importing the engine does not itself execute a task or grant permissions.
|
|
34
34
|
|
|
35
|
-
The `/models` subpath
|
|
36
|
-
|
|
37
|
-
|
|
35
|
+
The beta `/models` subpath was introduced after RC3 for HAR-HU-39 and is
|
|
36
|
+
published in RC7. Stable 1.3.0 retains its beta tier; previous RC3 bytes do not
|
|
37
|
+
contain it. Its six runtime exports and two types are listed
|
|
38
38
|
in `contracts/engine-api.json`. It performs no file access, credential resolution,
|
|
39
39
|
provider requests or process startup. Remote catalog loading remains host-owned.
|
|
40
40
|
Installed-package smoke compiles the public subpath for a browser and checks its
|
|
@@ -68,8 +68,8 @@ switching presentation does not migrate state or authorize new effects.
|
|
|
68
68
|
## Terminal product
|
|
69
69
|
|
|
70
70
|
`packages/code` is the independently built terminal product. Its current version
|
|
71
|
-
is `0.1.0
|
|
72
|
-
engine dependency `@zhivex-ai/harness@1.3.0
|
|
71
|
+
is `0.1.0`, prepared for independent publication to `latest` with the exact
|
|
72
|
+
engine dependency `@zhivex-ai/harness@1.3.0`. Publication remains gated by
|
|
73
73
|
reviewed main, CI and registry evidence in the [Code release procedure](CODE_RELEASE.md).
|
|
74
74
|
Code imports declared package APIs, never Harness source paths. Its build leaves
|
|
75
75
|
Harness external.
|
|
@@ -111,10 +111,11 @@ verifies that engine and state entrypoints in one installation share ownership.
|
|
|
111
111
|
Compatibility with older clients that do not participate in this locking
|
|
112
112
|
protocol is not implied.
|
|
113
113
|
|
|
114
|
-
The new subpaths
|
|
114
|
+
The new subpaths were introduced after RC3 and are published in RC7. Stable
|
|
115
|
+
1.3.0 retains their declared tiers.
|
|
115
116
|
Desktop migration and packaged acceptance are documented in
|
|
116
117
|
the repository-only report `docs/reports/HAR_HU_39_2026-09-29.md`. Its dependency is pinned to the
|
|
117
|
-
|
|
118
|
+
exact prepared engine version and checked for required contracts/artifact identity; this does
|
|
118
119
|
not claim compatibility with the earlier published RC3 bytes or a broader range.
|
|
119
120
|
|
|
120
121
|
```sh
|
package/docs/FIRST_USE.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
# First use
|
|
2
2
|
|
|
3
|
-
This guide targets the prepared `1.3.0
|
|
3
|
+
This guide targets the prepared stable `1.3.0` release. These exact-version commands become available after protected publication to npm `latest`; currently latest resolves to 1.2.0.
|
|
4
4
|
|
|
5
5
|
## Install and start
|
|
6
6
|
|
|
7
7
|
Install Node.js 22.13.0 or newer and Git. Then:
|
|
8
8
|
|
|
9
9
|
```sh
|
|
10
|
-
npm install -g @zhivex-ai/harness@1.3.0
|
|
10
|
+
npm install -g @zhivex-ai/harness@1.3.0
|
|
11
11
|
cd /path/to/your/project
|
|
12
12
|
zhx
|
|
13
13
|
```
|
|
@@ -82,16 +82,16 @@ For command execution, configure [OCI isolation](EXECUTION_ENVIRONMENTS.md).
|
|
|
82
82
|
With Bun 1.4.0 or newer and a supported Node runtime:
|
|
83
83
|
|
|
84
84
|
```sh
|
|
85
|
-
bun add --global @zhivex-ai/harness@1.3.0
|
|
85
|
+
bun add --global @zhivex-ai/harness@1.3.0
|
|
86
86
|
zhx
|
|
87
87
|
```
|
|
88
88
|
|
|
89
89
|
For a disposable version/help/environment check without a global installation:
|
|
90
90
|
|
|
91
91
|
```sh
|
|
92
|
-
bunx @zhivex-ai/harness@1.3.0
|
|
93
|
-
bunx @zhivex-ai/harness@1.3.0
|
|
94
|
-
bunx @zhivex-ai/harness@1.3.0
|
|
92
|
+
bunx @zhivex-ai/harness@1.3.0 --version
|
|
93
|
+
bunx @zhivex-ai/harness@1.3.0 --help
|
|
94
|
+
bunx @zhivex-ai/harness@1.3.0 doctor
|
|
95
95
|
```
|
|
96
96
|
|
|
97
97
|
For source development, use the [contributor guide](https://github.com/Zhivex/zhivex-harness/blob/main/CONTRIBUTING.md).
|
package/docs/STABILITY.md
CHANGED
|
@@ -4,7 +4,7 @@ The additive [engine entrypoints](ENGINE_API.md) are enumerated in
|
|
|
4
4
|
[`../contracts/engine-api.json`](../contracts/engine-api.json). Aliases preserve
|
|
5
5
|
their existing root tiers; newly exposed helpers have explicit tiers. The root
|
|
6
6
|
compatibility surface remains unchanged. These entrypoints are source changes
|
|
7
|
-
for the
|
|
7
|
+
for the prepared 1.3.0 release and are available in the published RC7; they are absent from registry 1.2.0. Stable package numbering does not upgrade any export tier.
|
|
8
8
|
|
|
9
9
|
[`../contracts/public-api.json`](../contracts/public-api.json) is the machine-checked 1.0 baseline for the package root, binaries, CLI commands/subcommands, exit codes, and document schemas. Every runtime and type export is present in the snapshot and belongs to exactly one explicit tier. Exports listed as stable form the intended 1.x compatibility surface; Time-to-Safe-Fix exports are experimental; the explicitly listed beta exports may evolve under the policy below.
|
|
10
10
|
|
|
@@ -52,7 +52,8 @@
|
|
|
52
52
|
"v1.3.0-rc.4",
|
|
53
53
|
"v1.3.0-rc.5",
|
|
54
54
|
"v1.3.0-rc.6",
|
|
55
|
-
"v1.3.0-rc.7"
|
|
55
|
+
"v1.3.0-rc.7",
|
|
56
|
+
"v1.3.0"
|
|
56
57
|
],
|
|
57
58
|
"expectedModels": [
|
|
58
59
|
{
|
|
@@ -462,6 +463,14 @@
|
|
|
462
463
|
"qwen": "qwen3.8-flash",
|
|
463
464
|
"openai": "gpt-6-luna"
|
|
464
465
|
}
|
|
466
|
+
},
|
|
467
|
+
{
|
|
468
|
+
"releaseTag": "v1.3.0",
|
|
469
|
+
"models": {
|
|
470
|
+
"meta": "muse-spark-1.3-contributor",
|
|
471
|
+
"qwen": "qwen3.8-flash",
|
|
472
|
+
"openai": "gpt-6-luna"
|
|
473
|
+
}
|
|
465
474
|
}
|
|
466
475
|
],
|
|
467
476
|
"expectedCases": [
|
package/examples/README.md
CHANGED
|
@@ -2,19 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
## Isolated Bun installation
|
|
4
4
|
|
|
5
|
-
Requirements: Bun 1.4.0+, Node.js 22.13.0+, and Git on macOS or Linux. After protected 1.
|
|
5
|
+
Requirements: Bun 1.4.0+, Node.js 22.13.0+, and Git on macOS or Linux. After protected 1.3.0 publication, this installs the stable artifact in a temporary consumer, without building the source checkout or changing global tools:
|
|
6
6
|
|
|
7
7
|
```bash
|
|
8
8
|
harness_demo_dir=$(mktemp -d)
|
|
9
9
|
cd "$harness_demo_dir"
|
|
10
10
|
printf '{"name":"harness-first-run","private":true}\n' > package.json
|
|
11
|
-
bun add --exact --ignore-scripts @zhivex-ai/harness@1.3.0
|
|
11
|
+
bun add --exact --ignore-scripts @zhivex-ai/harness@1.3.0
|
|
12
12
|
./node_modules/.bin/zhx --version
|
|
13
13
|
./node_modules/.bin/zhx --help
|
|
14
14
|
./node_modules/.bin/zhx doctor --provider openai --json
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
Version must print `1.
|
|
17
|
+
Version must print `1.3.0`; help lists commands. Doctor does not contact a provider. Without `OPENAI_API_KEY`, it reports the missing credential and exits with code `3`; inspect the JSON checks before proceeding. A directory without Git initialization can also produce a diagnostic warning. No paid model call is required for these checks. Both `zhx` and `zhivex-harness` are installed aliases; Bun manages installation, and their shebang runs Node.
|
|
18
18
|
|
|
19
19
|
To continue in your actual project, use the [global installation and credential setup](../README.md#installation), then `zhx init --profile daily --provider openai` and `zhx doctor --profile daily`. Real tasks require the selected provider credential in the process environment. Profiles store provider/model choices, never credentials. See [CLI](../docs/CLI.md) and [support](../SUPPORT.md).
|
|
20
20
|
|
package/package.json
CHANGED