@haven_ai/connect 0.0.0-dev.202609031827.893d74f → 0.0.0-dev.202609040858.f4467bb
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/README.md +35 -19
- package/dist/cli.cjs +3 -3
- package/dist/cli.cjs.map +1 -1
- package/dist/cli.js +3 -3
- package/dist/cli.js.map +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -8,14 +8,17 @@ public signing address, proof signature, and API-key hash. Haven never receives
|
|
|
8
8
|
the private key or plaintext API key.
|
|
9
9
|
|
|
10
10
|
```sh
|
|
11
|
-
npx -y @haven_ai/connect
|
|
11
|
+
npx -y @haven_ai/connect@<channel> --setup hv_setup_... --api https://api.haven.example --ack-local-tools --runtime claude-code
|
|
12
12
|
```
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
exact command to run — copy that
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
14
|
+
`<channel>` is a placeholder, like `hv_setup_...` and the API URL beside it:
|
|
15
|
+
**the Haven dashboard hands you the exact command to run — copy that one.** The
|
|
16
|
+
channel is per-deployment and has been since #2422: the backend's setup response
|
|
17
|
+
names the whole package in `connector_package`, production hands out
|
|
18
|
+
`@haven_ai/connect@alpha`, and a non-production deployment can be configured to
|
|
19
|
+
hand out another, such as `@haven_ai/connect@dev`. This README ships inside every
|
|
20
|
+
channel's tarball and is the npm landing page for all of them, so a literal here
|
|
21
|
+
would be wrong for every reader it did not describe (#2515).
|
|
19
22
|
Read `connector_package` rather than assuming any particular backend's channel. Pinning `@alpha` by hand against such a backend
|
|
20
23
|
installs a signer that skews against it — the signer refuses to sign an
|
|
21
24
|
`x402_expected_context_version` it does not know.
|
|
@@ -102,9 +105,12 @@ minutes. Two rules follow:
|
|
|
102
105
|
2. **Tombstone a directory before (or instead of) deleting it:**
|
|
103
106
|
|
|
104
107
|
```
|
|
105
|
-
npx @haven_ai/connect
|
|
108
|
+
npx @haven_ai/connect@<channel> --tombstone ~/.haven/agents/<directory> --reason "superseded" --json
|
|
106
109
|
```
|
|
107
110
|
|
|
111
|
+
`<channel>` is the placeholder defined under the first example; this command
|
|
112
|
+
rewrites local files only, so any published connector does the same job.
|
|
113
|
+
|
|
108
114
|
This replaces the directory's signer wrapper with a diagnostic that logs the
|
|
109
115
|
retirement (agent id, date, reason, restart guidance) to the host's MCP
|
|
110
116
|
stderr log on every probe, and records it in `TOMBSTONE.json` for
|
|
@@ -132,10 +138,13 @@ Hermes) the `MCP_HAVEN_API_KEY` dotenv line behind, and the runtime quoted as
|
|
|
132
138
|
one agent while signing as another. `--unwire` is the erase half:
|
|
133
139
|
|
|
134
140
|
```
|
|
135
|
-
npx @haven_ai/connect
|
|
136
|
-
npx @haven_ai/connect
|
|
141
|
+
npx @haven_ai/connect@<channel> --unwire ~/.haven/agents/<directory> [--reason "..."]
|
|
142
|
+
npx @haven_ai/connect@<channel> --unwire --name research [--reason "..."]
|
|
137
143
|
```
|
|
138
144
|
|
|
145
|
+
`<channel>` is the placeholder defined under the first example; `--unwire`
|
|
146
|
+
touches local files only, so any published connector does the same job.
|
|
147
|
+
|
|
139
148
|
It tombstone-first (so a stale long-lived host still hears `HAVEN-TOMBSTONE`,
|
|
140
149
|
never a masked `ENOENT`), then removes THAT agent's hosted + signer pair from
|
|
141
150
|
every runtime config it appears in (Hermes YAML, Codex TOML, the Cursor / VS
|
|
@@ -282,12 +291,12 @@ directory, so several agents coexist in one runtime instead of replacing each
|
|
|
282
291
|
other:
|
|
283
292
|
|
|
284
293
|
```sh
|
|
285
|
-
npx -y @haven_ai/connect
|
|
294
|
+
npx -y @haven_ai/connect@<channel> --setup hv_setup_... --api https://api.haven.example \
|
|
286
295
|
--name research --runtime claude-code
|
|
287
296
|
```
|
|
288
297
|
|
|
289
|
-
As above,
|
|
290
|
-
|
|
298
|
+
As above, `<channel>` is a placeholder like the rest of this line: take the
|
|
299
|
+
package from the setup response's `connector_package`
|
|
291
300
|
and add `--name` to the command the dashboard gave you.
|
|
292
301
|
|
|
293
302
|
| | Without `--name` | With `--name research` |
|
|
@@ -328,13 +337,13 @@ design. So it runs in two phases with the dashboard between them:
|
|
|
328
337
|
|
|
329
338
|
```sh
|
|
330
339
|
# 1. On this machine: generate the new key, print its public address.
|
|
331
|
-
npx -y @haven_ai/connect
|
|
340
|
+
npx -y @haven_ai/connect@<channel> --rekey [--name research]
|
|
332
341
|
|
|
333
342
|
# 2. In the dashboard: agent → Replace signing key → paste that address.
|
|
334
343
|
# Sign the steps. It shows a new API key ONCE.
|
|
335
344
|
|
|
336
345
|
# 3. Back here: write the new credentials and rewire this agent's MCP pair.
|
|
337
|
-
npx -y @haven_ai/connect
|
|
346
|
+
npx -y @haven_ai/connect@<channel> --rekey-finish --api-key sk_agent_... \
|
|
338
347
|
--runtime claude-code [--name research]
|
|
339
348
|
```
|
|
340
349
|
|
|
@@ -342,8 +351,8 @@ npx -y @haven_ai/connect@alpha --rekey-finish --api-key sk_agent_... \
|
|
|
342
351
|
Since [#2423](https://github.com/d-hinders/Haven-AI/issues/2423) the connector
|
|
343
352
|
builds that command from the npm dist-tag **it** was published under, so a build
|
|
344
353
|
installed from a non-production channel tells you to finish with that same
|
|
345
|
-
channel rather than sending you to production mid-re-key. `@alpha`
|
|
346
|
-
production
|
|
354
|
+
channel rather than sending you to production mid-re-key. `@alpha` is what
|
|
355
|
+
production hands out and is right for a production install; it is not right for
|
|
347
356
|
every install, which is why the tool computes it and this page cannot.
|
|
348
357
|
|
|
349
358
|
Between the two phases nothing has changed: the agent keeps working on its old
|
|
@@ -372,10 +381,15 @@ across the rest is yours.
|
|
|
372
381
|
## Diagnosing a stuck setup: `--doctor` / `--repair` (#1589)
|
|
373
382
|
|
|
374
383
|
```bash
|
|
375
|
-
npx @haven_ai/connect
|
|
376
|
-
npx @haven_ai/connect
|
|
384
|
+
npx @haven_ai/connect@<channel> --doctor --runtime codex-desktop
|
|
385
|
+
npx @haven_ai/connect@<channel> --doctor --repair --runtime codex-desktop
|
|
377
386
|
```
|
|
378
387
|
|
|
388
|
+
`<channel>` is the placeholder defined under the first example — and here it is
|
|
389
|
+
not indifferent: `signer_runtime` compares the sidecar against the manifest of
|
|
390
|
+
the connector **that runs the check**, so a doctor from another channel reports
|
|
391
|
+
a skew that is not there. Use the channel your dashboard hands out.
|
|
392
|
+
|
|
379
393
|
`--doctor` is read-only and needs NO setup token: it checks the runtime config,
|
|
380
394
|
the agent credential files, the pinned signer runtime install (and, since
|
|
381
395
|
#2424, whether that install was made under a local runtime-spec override —
|
|
@@ -429,9 +443,11 @@ A value is anything `npm install` accepts for that package: a checkout
|
|
|
429
443
|
command — the command itself is unchanged:
|
|
430
444
|
|
|
431
445
|
```bash
|
|
432
|
-
HAVEN_SIGNER_SPEC=file:$PWD/packages/signer npx @haven_ai/connect
|
|
446
|
+
HAVEN_SIGNER_SPEC=file:$PWD/packages/signer npx @haven_ai/connect@<channel> --setup <token> --runtime claude-code
|
|
433
447
|
```
|
|
434
448
|
|
|
449
|
+
`<channel>` is the placeholder defined under the first example.
|
|
450
|
+
|
|
435
451
|
Environment variables rather than a flag, deliberately: the install runs from
|
|
436
452
|
three entry points (`--setup`, `--doctor --repair`, `--rekey-finish`) and all
|
|
437
453
|
three honour the same variables, so a re-key cannot silently reinstall the
|
package/dist/cli.cjs
CHANGED
|
@@ -535,9 +535,9 @@ var init_runtime_manifest = __esm({
|
|
|
535
535
|
mcpPackage: "@haven_ai/mcp",
|
|
536
536
|
mcpVersion: mcp.MCP_VERSION,
|
|
537
537
|
sdkPackage: "@haven_ai/sdk",
|
|
538
|
-
sdkVersion: "0.0.0-dev.
|
|
538
|
+
sdkVersion: "0.0.0-dev.202609040858.f4467bb",
|
|
539
539
|
signerPackage: "@haven_ai/signer",
|
|
540
|
-
signerVersion: "0.0.0-dev.
|
|
540
|
+
signerVersion: "0.0.0-dev.202609040858.f4467bb",
|
|
541
541
|
// Sourced from the SDK, never a literal (#1161). This field read '20.0.0'
|
|
542
542
|
// while every package's `engines` said `>=24` and the docs said `>=24.0.0`,
|
|
543
543
|
// so the guard that was supposed to enforce the floor waved Node v23 through
|
|
@@ -4270,7 +4270,7 @@ function defaultPromptIo() {
|
|
|
4270
4270
|
// src/runtime.ts
|
|
4271
4271
|
init_local_mcp_runtime();
|
|
4272
4272
|
init_runtime_manifest();
|
|
4273
|
-
var CONNECTOR_VERSION = "0.0.0-dev.
|
|
4273
|
+
var CONNECTOR_VERSION = "0.0.0-dev.202609040858.f4467bb";
|
|
4274
4274
|
var CONNECT_OUTCOME_SCHEMA_VERSION = 1;
|
|
4275
4275
|
var failureOutcomesByError = /* @__PURE__ */ new WeakMap();
|
|
4276
4276
|
function failureOutcomeFor(runtimeHint, error) {
|