@run402/sdk 4.93.2 → 4.94.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/README.md +21 -19
- package/core-dist/config.d.ts +16 -2
- package/core-dist/config.js +52 -18
- package/core-dist/control-plane-session.d.ts +29 -14
- package/core-dist/control-plane-session.js +31 -6
- package/core-dist/keystore.js +7 -7
- package/core-dist/profiles.d.ts +3 -3
- package/core-dist/profiles.js +9 -7
- package/core-dist/{allowance-auth.d.ts → wallet-auth.d.ts} +6 -6
- package/core-dist/{allowance-auth.js → wallet-auth.js} +15 -15
- package/core-dist/wallet.d.ts +22 -0
- package/core-dist/{allowance.js → wallet.js} +20 -20
- package/core-dist/{write-auth-session.d.ts → write-approvals.d.ts} +28 -26
- package/core-dist/{write-auth-session.js → write-approvals.js} +19 -19
- package/dist/actions.d.ts +1 -1
- package/dist/actions.d.ts.map +1 -1
- package/dist/control-plane-credentials.d.ts +8 -8
- package/dist/control-plane-credentials.js +7 -7
- package/dist/credentials.d.ts +19 -19
- package/dist/credentials.d.ts.map +1 -1
- package/dist/credentials.js +1 -1
- package/dist/errors.d.ts +24 -26
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +34 -37
- package/dist/errors.js.map +1 -1
- package/dist/index.d.ts +29 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +29 -16
- package/dist/index.js.map +1 -1
- package/dist/kernel.d.ts +1 -1
- package/dist/kernel.d.ts.map +1 -1
- package/dist/kernel.js +10 -9
- package/dist/kernel.js.map +1 -1
- package/dist/namespaces/admin.d.ts +51 -120
- package/dist/namespaces/admin.d.ts.map +1 -1
- package/dist/namespaces/admin.js +41 -45
- package/dist/namespaces/admin.js.map +1 -1
- package/dist/namespaces/agent.d.ts +2 -2
- package/dist/namespaces/agent.d.ts.map +1 -1
- package/dist/namespaces/agent.js +2 -2
- package/dist/namespaces/agent.js.map +1 -1
- package/dist/namespaces/ai.d.ts +1 -1
- package/dist/namespaces/ai.js +1 -1
- package/dist/namespaces/billing.d.ts +6 -3
- package/dist/namespaces/billing.d.ts.map +1 -1
- package/dist/namespaces/billing.js.map +1 -1
- package/dist/namespaces/buzz-notifications.types.d.ts +1 -1
- package/dist/namespaces/buzz.d.ts +2 -2
- package/dist/namespaces/buzz.d.ts.map +1 -1
- package/dist/namespaces/buzz.js +2 -2
- package/dist/namespaces/buzz.js.map +1 -1
- package/dist/namespaces/buzz.types.d.ts +2 -2
- package/dist/namespaces/buzz.types.d.ts.map +1 -1
- package/dist/namespaces/credentials.types.d.ts +1 -1
- package/dist/namespaces/deploy.d.ts +1 -1
- package/dist/namespaces/deploy.js +5 -5
- package/dist/namespaces/deploy.js.map +1 -1
- package/dist/namespaces/deploy.types.d.ts +4 -4
- package/dist/namespaces/escalations.d.ts +1 -1
- package/dist/namespaces/escalations.js +1 -1
- package/dist/namespaces/escalations.types.d.ts +2 -2
- package/dist/namespaces/escalations.types.d.ts.map +1 -1
- package/dist/namespaces/events.types.d.ts +1 -1
- package/dist/namespaces/functions.d.ts +1 -1
- package/dist/namespaces/functions.js +1 -1
- package/dist/namespaces/gitvault.crypto.d.ts +1 -1
- package/dist/namespaces/gitvault.d.ts +24 -24
- package/dist/namespaces/gitvault.d.ts.map +1 -1
- package/dist/namespaces/gitvault.js +109 -109
- package/dist/namespaces/gitvault.js.map +1 -1
- package/dist/namespaces/me.d.ts +120 -0
- package/dist/namespaces/me.d.ts.map +1 -0
- package/dist/namespaces/me.js +34 -0
- package/dist/namespaces/me.js.map +1 -0
- package/dist/namespaces/org.d.ts +108 -6
- package/dist/namespaces/org.d.ts.map +1 -1
- package/dist/namespaces/org.js +63 -7
- package/dist/namespaces/org.js.map +1 -1
- package/dist/namespaces/org.types.d.ts +29 -9
- package/dist/namespaces/org.types.d.ts.map +1 -1
- package/dist/namespaces/pay.js +3 -3
- package/dist/namespaces/pay.js.map +1 -1
- package/dist/namespaces/projects.d.ts +9 -9
- package/dist/namespaces/projects.js +15 -15
- package/dist/namespaces/projects.js.map +1 -1
- package/dist/namespaces/projects.types.d.ts +28 -12
- package/dist/namespaces/projects.types.d.ts.map +1 -1
- package/dist/namespaces/rooms.d.ts +7 -7
- package/dist/namespaces/rooms.js +17 -17
- package/dist/namespaces/rooms.js.map +1 -1
- package/dist/namespaces/rooms.types.d.ts +9 -9
- package/dist/namespaces/rooms.types.d.ts.map +1 -1
- package/dist/namespaces/service.d.ts +1 -1
- package/dist/namespaces/service.js +1 -1
- package/dist/namespaces/{operator-session.d.ts → session.d.ts} +135 -51
- package/dist/namespaces/session.d.ts.map +1 -0
- package/dist/namespaces/{operator-session.js → session.js} +118 -30
- package/dist/namespaces/session.js.map +1 -0
- package/dist/namespaces/subdomains.d.ts +5 -5
- package/dist/namespaces/subdomains.d.ts.map +1 -1
- package/dist/namespaces/subdomains.js +6 -6
- package/dist/namespaces/subdomains.js.map +1 -1
- package/dist/namespaces/tier.d.ts +43 -20
- package/dist/namespaces/tier.d.ts.map +1 -1
- package/dist/namespaces/tier.js +7 -7
- package/dist/namespaces/tier.js.map +1 -1
- package/dist/namespaces/transfers.d.ts +74 -71
- package/dist/namespaces/transfers.d.ts.map +1 -1
- package/dist/namespaces/transfers.js +31 -38
- package/dist/namespaces/transfers.js.map +1 -1
- package/dist/namespaces/vouchers.d.ts +9 -10
- package/dist/namespaces/vouchers.d.ts.map +1 -1
- package/dist/namespaces/vouchers.js +4 -5
- package/dist/namespaces/vouchers.js.map +1 -1
- package/dist/namespaces/wallets.d.ts +72 -3
- package/dist/namespaces/wallets.d.ts.map +1 -1
- package/dist/namespaces/wallets.js +141 -3
- package/dist/namespaces/wallets.js.map +1 -1
- package/dist/namespaces/write-approval.d.ts +101 -0
- package/dist/namespaces/write-approval.d.ts.map +1 -0
- package/dist/namespaces/write-approval.js +62 -0
- package/dist/namespaces/write-approval.js.map +1 -0
- package/dist/node/actions-node.d.ts +3 -3
- package/dist/node/actions-node.d.ts.map +1 -1
- package/dist/node/actions-node.js +36 -36
- package/dist/node/actions-node.js.map +1 -1
- package/dist/node/{bearer-claim-key.d.ts → bearer-redeem-key.d.ts} +12 -12
- package/dist/node/bearer-redeem-key.d.ts.map +1 -0
- package/dist/node/{bearer-claim-key.js → bearer-redeem-key.js} +21 -21
- package/dist/node/bearer-redeem-key.js.map +1 -0
- package/dist/node/ci.d.ts +1 -1
- package/dist/node/ci.d.ts.map +1 -1
- package/dist/node/ci.js +6 -6
- package/dist/node/ci.js.map +1 -1
- package/dist/node/credentials.d.ts +17 -16
- package/dist/node/credentials.d.ts.map +1 -1
- package/dist/node/credentials.js +28 -27
- package/dist/node/credentials.js.map +1 -1
- package/dist/node/funding-recovery.d.ts +1 -1
- package/dist/node/funding-recovery.d.ts.map +1 -1
- package/dist/node/funding-recovery.js +1 -1
- package/dist/node/funding-recovery.js.map +1 -1
- package/dist/node/gitvault-apply.d.ts +1 -1
- package/dist/node/gitvault-apply.d.ts.map +1 -1
- package/dist/node/gitvault-handoff.d.ts +22 -22
- package/dist/node/gitvault-handoff.d.ts.map +1 -1
- package/dist/node/gitvault-handoff.js +45 -45
- package/dist/node/gitvault-handoff.js.map +1 -1
- package/dist/node/gitvault-prewarm.js +7 -7
- package/dist/node/gitvault-prewarm.js.map +1 -1
- package/dist/node/gitvault-restore.d.ts +1 -1
- package/dist/node/gitvault-restore.js +1 -1
- package/dist/node/index.d.ts +16 -16
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +15 -15
- package/dist/node/index.js.map +1 -1
- package/dist/node/org-adopt.d.ts +49 -0
- package/dist/node/org-adopt.d.ts.map +1 -0
- package/dist/node/org-adopt.js +77 -0
- package/dist/node/org-adopt.js.map +1 -0
- package/dist/node/paid-fetch.d.ts +7 -7
- package/dist/node/paid-fetch.d.ts.map +1 -1
- package/dist/node/paid-fetch.js +54 -54
- package/dist/node/paid-fetch.js.map +1 -1
- package/dist/node/preflight.d.ts +1 -1
- package/dist/node/preflight.d.ts.map +1 -1
- package/dist/node/preflight.js +1 -1
- package/dist/node/preflight.js.map +1 -1
- package/dist/node/source-scan.d.ts +1 -1
- package/dist/node/source-scan.js +2 -2
- package/dist/node/source-scan.js.map +1 -1
- package/dist/scoped.d.ts +3 -3
- package/dist/scoped.d.ts.map +1 -1
- package/dist/scoped.js +2 -2
- package/dist/scoped.js.map +1 -1
- package/package.json +1 -1
- package/core-dist/allowance.d.ts +0 -22
- package/core-dist/operator-session.d.ts +0 -80
- package/core-dist/operator-session.js +0 -154
- package/dist/namespaces/allowance.d.ts +0 -79
- package/dist/namespaces/allowance.d.ts.map +0 -1
- package/dist/namespaces/allowance.js +0 -149
- package/dist/namespaces/allowance.js.map +0 -1
- package/dist/namespaces/operator-session.d.ts.map +0 -1
- package/dist/namespaces/operator-session.js.map +0 -1
- package/dist/namespaces/operator.d.ts +0 -359
- package/dist/namespaces/operator.d.ts.map +0 -1
- package/dist/namespaces/operator.js +0 -272
- package/dist/namespaces/operator.js.map +0 -1
- package/dist/node/bearer-claim-key.d.ts.map +0 -1
- package/dist/node/bearer-claim-key.js.map +0 -1
- package/dist/node/operator-claim.d.ts +0 -49
- package/dist/node/operator-claim.d.ts.map +0 -1
- package/dist/node/operator-claim.js +0 -77
- package/dist/node/operator-claim.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export type
|
|
1
|
+
export type RedeemKind = "handoff" | "invite" | "room";
|
|
2
2
|
export interface HandoffKeyPrefixEntry {
|
|
3
3
|
prefix: string;
|
|
4
|
-
kind:
|
|
4
|
+
kind: RedeemKind;
|
|
5
5
|
verb: string;
|
|
6
6
|
/** Error-code prefix for this kind (`HANDOFF` | `INVITE` | `ROOM_INVITE`) — every client-side code this module throws is `${errorPrefix}_…`. */
|
|
7
7
|
errorPrefix: string;
|
|
@@ -11,7 +11,7 @@ export interface HandoffKeyPrefixEntry {
|
|
|
11
11
|
* The sealed-envelope `envelope_kind` tag this kind's mint seals TODAY —
|
|
12
12
|
* the v2 shape for both vault kinds (`v: 2`, `writer_admission_grant_sha256`,
|
|
13
13
|
* `epoch_keys`), since writer admission rides the envelope for every vault
|
|
14
|
-
*
|
|
14
|
+
* redeem kind (gitvault-multi-writer D4). Absent for `room` — a room invite
|
|
15
15
|
* has no envelope, no wrap key, no admission seed (add-room-invite D3).
|
|
16
16
|
*/
|
|
17
17
|
envelopeKind?: string;
|
|
@@ -27,8 +27,8 @@ export interface HandoffKeyPrefixEntry {
|
|
|
27
27
|
* one's parser.
|
|
28
28
|
*/
|
|
29
29
|
export declare const HANDOFF_KEY_PREFIXES: readonly HandoffKeyPrefixEntry[];
|
|
30
|
-
export interface
|
|
31
|
-
kind:
|
|
30
|
+
export interface RedeemKeyParts {
|
|
31
|
+
kind: RedeemKind;
|
|
32
32
|
id_bytes: Uint8Array;
|
|
33
33
|
/** Canonical lowercase-hyphenated UUID form of `id_bytes` — the wire id (`handoff_id`/`invite_id`). */
|
|
34
34
|
id: string;
|
|
@@ -56,8 +56,8 @@ export interface RoomInviteKeyParts {
|
|
|
56
56
|
master_secret: Uint8Array;
|
|
57
57
|
}
|
|
58
58
|
export declare function uuidToBytes(uuid: string, field?: string): Uint8Array;
|
|
59
|
-
/** A fresh RFC 4122 v4 UUID — the client-generated
|
|
60
|
-
export declare function
|
|
59
|
+
/** A fresh RFC 4122 v4 UUID — the client-generated key id every bearer-redeem kind mints with (design D3: `auth_secret` derives off it, so it cannot be gateway-assigned). */
|
|
60
|
+
export declare function randomRedeemId(): string;
|
|
61
61
|
/**
|
|
62
62
|
* Assemble the printed key from a fresh 32-byte master secret and the
|
|
63
63
|
* gateway-minted `handoff_id`. The gateway never sees `master_secret` — the
|
|
@@ -88,7 +88,7 @@ export declare function assembleRoomInviteKey(inviteId: string, masterSecret?: U
|
|
|
88
88
|
master_secret: Uint8Array;
|
|
89
89
|
};
|
|
90
90
|
/**
|
|
91
|
-
* Parse ANY registered
|
|
91
|
+
* Parse ANY registered redeem-family key by its prefix registry against the
|
|
92
92
|
* `expectedKind` the calling verb accepts. A recognized prefix of a
|
|
93
93
|
* DIFFERENT kind (a `kgi1_` invite key handed to `resume`, a `kri1_` room
|
|
94
94
|
* key handed to `repos join`/`resume`, or a `kgi1_`/`kgh1_` vault key handed
|
|
@@ -96,13 +96,13 @@ export declare function assembleRoomInviteKey(inviteId: string, masterSecret?: U
|
|
|
96
96
|
* as a malformed key of the expected kind, and never contacting the gateway
|
|
97
97
|
* (design D9 rule 4 / kygit-invite design D3 / add-room-invite design D3).
|
|
98
98
|
*/
|
|
99
|
-
export declare function
|
|
99
|
+
export declare function parseRedeemKey(raw: string, expectedKind: RedeemKind): RedeemKeyParts;
|
|
100
100
|
/**
|
|
101
|
-
* Parse ANY registered
|
|
101
|
+
* Parse ANY registered redeem-family key by its prefix registry. A
|
|
102
102
|
* recognized prefix of a DIFFERENT kind (an invite or room key handed to
|
|
103
103
|
* `resume`) refuses BY NAME pointing at its own door — never misread as a
|
|
104
104
|
* malformed handoff key (design D9 rule 4). Kind-bound alias of
|
|
105
|
-
* {@link
|
|
105
|
+
* {@link parseRedeemKey}.
|
|
106
106
|
*/
|
|
107
107
|
export declare function parseHandoffKey(raw: string): HandoffKeyParts;
|
|
108
108
|
/** The invite-kind sibling of {@link parseHandoffKey} (kygit-invite design D3). */
|
|
@@ -123,4 +123,4 @@ export declare function deriveInviteSecrets(inviteIdBytes: Uint8Array, masterSec
|
|
|
123
123
|
export declare function deriveRoomInviteAuthSecret(inviteIdBytes: Uint8Array, masterSecret: Uint8Array): Uint8Array;
|
|
124
124
|
/** `SHA-256("run402/room-invite/auth-hash/v1" ‖ auth_secret)`, lowercase hex — exactly what the gateway's `mintRoomInvite`/`claimRoomInvite` compute and store/compare (design D3). */
|
|
125
125
|
export declare function computeRoomInviteAuthHash(authSecret: Uint8Array): string;
|
|
126
|
-
//# sourceMappingURL=bearer-
|
|
126
|
+
//# sourceMappingURL=bearer-redeem-key.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bearer-redeem-key.d.ts","sourceRoot":"","sources":["../../src/node/bearer-redeem-key.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Bearer-
|
|
3
|
-
* every bearer-addressed membership
|
|
2
|
+
* Bearer-redeem key format — the pure, kind-agnostic primitives shared by
|
|
3
|
+
* every bearer-addressed membership redeem key this SDK mints or parses
|
|
4
4
|
* (add-room-invite design D2/D3, mirroring the gateway's own
|
|
5
|
-
* `services/bearer-
|
|
5
|
+
* `services/bearer-redeem-key.ts`).
|
|
6
6
|
*
|
|
7
7
|
* Through kygit-invite this lived inline in `gitvault-handoff.ts`: the key
|
|
8
8
|
* registry (`HANDOFF_KEY_PREFIXES`), `uuidToBytes`, the generic
|
|
9
9
|
* assemble/parse helpers, and the HKDF derivations for `auth_secret` /
|
|
10
10
|
* `wrap_key`. add-room-invite adds a THIRD kind — `room` (`kri1_…`) — whose
|
|
11
|
-
*
|
|
11
|
+
* redemption confers org membership rather than vault access and carries no
|
|
12
12
|
* `wrap_key`/envelope/admission-seed at all (design D3). Rather than teach
|
|
13
13
|
* the vault-shaped module a room-shaped kind, the pure key-format
|
|
14
14
|
* primitives move HERE (a move, not a copy — `gitvault-handoff.ts`
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* `gitvault-handoff.ts`, which imports the pieces it needs from here.
|
|
20
20
|
*
|
|
21
21
|
* `HANDOFF_KEY_PREFIXES` is a REGISTRY: `kgh1_` (handoff, `resume`), `kgi1_`
|
|
22
|
-
* (invite, `repos join`), `kri1_` (room, `rooms join`). `
|
|
22
|
+
* (invite, `repos join`), `kri1_` (room, `rooms join`). `parseRedeemKey`
|
|
23
23
|
* refuses any other recognized-shape-but-wrong-kind prefix BY NAME, naming
|
|
24
24
|
* the door it actually belongs at, rather than misreading it as a malformed
|
|
25
25
|
* key of the kind the caller expected — never contacting the gateway.
|
|
@@ -66,14 +66,14 @@ export function uuidToBytes(uuid, field = "handoff_id") {
|
|
|
66
66
|
out[i] = parseInt(hex.slice(i * 2, i * 2 + 2), 16);
|
|
67
67
|
return out;
|
|
68
68
|
}
|
|
69
|
-
/** A fresh RFC 4122 v4 UUID — the client-generated
|
|
70
|
-
export function
|
|
69
|
+
/** A fresh RFC 4122 v4 UUID — the client-generated key id every bearer-redeem kind mints with (design D3: `auth_secret` derives off it, so it cannot be gateway-assigned). */
|
|
70
|
+
export function randomRedeemId() {
|
|
71
71
|
const b = randomBytes(16);
|
|
72
72
|
b[6] = ((b[6] ?? 0) & 0x0f) | 0x40;
|
|
73
73
|
b[8] = ((b[8] ?? 0) & 0x3f) | 0x80;
|
|
74
74
|
return bytesToUuid(b);
|
|
75
75
|
}
|
|
76
|
-
/** Assemble a printed
|
|
76
|
+
/** Assemble a printed redeem key from a fresh 32-byte master secret and the (client-generated or gateway-minted) key id, for `entry`'s kind. */
|
|
77
77
|
function assembleClaimKey(entry, claimId, masterSecret) {
|
|
78
78
|
if (masterSecret.length !== MASTER_SECRET_BYTES)
|
|
79
79
|
fail(`${entry.errorPrefix}_KEY_INVALID`, "master_secret must be 32 bytes", `assembling ${entry.kind} key`);
|
|
@@ -108,7 +108,7 @@ export function assembleRoomInviteKey(inviteId, masterSecret = randomBytes(MASTE
|
|
|
108
108
|
return { key, invite_id_bytes: id_bytes, master_secret };
|
|
109
109
|
}
|
|
110
110
|
/**
|
|
111
|
-
* Parse ANY registered
|
|
111
|
+
* Parse ANY registered redeem-family key by its prefix registry against the
|
|
112
112
|
* `expectedKind` the calling verb accepts. A recognized prefix of a
|
|
113
113
|
* DIFFERENT kind (a `kgi1_` invite key handed to `resume`, a `kri1_` room
|
|
114
114
|
* key handed to `repos join`/`resume`, or a `kgi1_`/`kgh1_` vault key handed
|
|
@@ -116,15 +116,15 @@ export function assembleRoomInviteKey(inviteId, masterSecret = randomBytes(MASTE
|
|
|
116
116
|
* as a malformed key of the expected kind, and never contacting the gateway
|
|
117
117
|
* (design D9 rule 4 / kygit-invite design D3 / add-room-invite design D3).
|
|
118
118
|
*/
|
|
119
|
-
export function
|
|
119
|
+
export function parseRedeemKey(raw, expectedKind) {
|
|
120
120
|
const expectedEntry = entryForKind(expectedKind);
|
|
121
121
|
const trimmed = raw.trim();
|
|
122
122
|
const entry = HANDOFF_KEY_PREFIXES.find((e) => trimmed.startsWith(e.prefix));
|
|
123
123
|
if (!entry) {
|
|
124
|
-
fail(`${expectedEntry.errorPrefix}_KEY_INVALID`, `not a recognized run402
|
|
124
|
+
fail(`${expectedEntry.errorPrefix}_KEY_INVALID`, `not a recognized run402 redeem key (expected a key starting ${expectedEntry.prefix})`, "parsing redeem key");
|
|
125
125
|
}
|
|
126
126
|
if (entry.kind !== expectedKind) {
|
|
127
|
-
fail(`${expectedEntry.errorPrefix}_KEY_WRONG_KIND`, `this key is a ${entry.kind} key — use \`${entry.doorLabel}\` instead of \`${expectedEntry.doorLabel}\``, "parsing
|
|
127
|
+
fail(`${expectedEntry.errorPrefix}_KEY_WRONG_KIND`, `this key is a ${entry.kind} key — use \`${entry.doorLabel}\` instead of \`${expectedEntry.doorLabel}\``, "parsing redeem key", { kind: entry.kind, verb: entry.verb });
|
|
128
128
|
}
|
|
129
129
|
const body = trimmed.slice(entry.prefix.length);
|
|
130
130
|
let bytes;
|
|
@@ -132,34 +132,34 @@ export function parseClaimKey(raw, expectedKind) {
|
|
|
132
132
|
bytes = fromBase64url(body, `${entry.kind} key body`);
|
|
133
133
|
}
|
|
134
134
|
catch {
|
|
135
|
-
fail(`${entry.errorPrefix}_KEY_INVALID`, "the key body is not valid base64url", "parsing
|
|
135
|
+
fail(`${entry.errorPrefix}_KEY_INVALID`, "the key body is not valid base64url", "parsing redeem key");
|
|
136
136
|
}
|
|
137
137
|
if (bytes.length !== CLAIM_KEY_BODY_BYTES) {
|
|
138
|
-
fail(`${entry.errorPrefix}_KEY_INVALID`, `the key decodes to ${bytes.length} bytes; expected ${CLAIM_KEY_BODY_BYTES}`, "parsing
|
|
138
|
+
fail(`${entry.errorPrefix}_KEY_INVALID`, `the key decodes to ${bytes.length} bytes; expected ${CLAIM_KEY_BODY_BYTES}`, "parsing redeem key");
|
|
139
139
|
}
|
|
140
140
|
const idBytes = bytes.subarray(0, CLAIM_ID_BYTES);
|
|
141
141
|
const masterSecret = bytes.subarray(CLAIM_ID_BYTES);
|
|
142
142
|
return { kind: entry.kind, id_bytes: idBytes, id: bytesToUuid(idBytes), master_secret: masterSecret };
|
|
143
143
|
}
|
|
144
144
|
/**
|
|
145
|
-
* Parse ANY registered
|
|
145
|
+
* Parse ANY registered redeem-family key by its prefix registry. A
|
|
146
146
|
* recognized prefix of a DIFFERENT kind (an invite or room key handed to
|
|
147
147
|
* `resume`) refuses BY NAME pointing at its own door — never misread as a
|
|
148
148
|
* malformed handoff key (design D9 rule 4). Kind-bound alias of
|
|
149
|
-
* {@link
|
|
149
|
+
* {@link parseRedeemKey}.
|
|
150
150
|
*/
|
|
151
151
|
export function parseHandoffKey(raw) {
|
|
152
|
-
const parsed =
|
|
152
|
+
const parsed = parseRedeemKey(raw, "handoff");
|
|
153
153
|
return { kind: "handoff", handoff_id_bytes: parsed.id_bytes, handoff_id: parsed.id, master_secret: parsed.master_secret };
|
|
154
154
|
}
|
|
155
155
|
/** The invite-kind sibling of {@link parseHandoffKey} (kygit-invite design D3). */
|
|
156
156
|
export function parseInviteKey(raw) {
|
|
157
|
-
const parsed =
|
|
157
|
+
const parsed = parseRedeemKey(raw, "invite");
|
|
158
158
|
return { kind: "invite", invite_id_bytes: parsed.id_bytes, invite_id: parsed.id, master_secret: parsed.master_secret };
|
|
159
159
|
}
|
|
160
160
|
/** The room-kind sibling of {@link parseHandoffKey}/{@link parseInviteKey} (add-room-invite design D3). */
|
|
161
161
|
export function parseRoomInviteKey(raw) {
|
|
162
|
-
const parsed =
|
|
162
|
+
const parsed = parseRedeemKey(raw, "room");
|
|
163
163
|
return { kind: "room", invite_id_bytes: parsed.id_bytes, invite_id: parsed.id, master_secret: parsed.master_secret };
|
|
164
164
|
}
|
|
165
165
|
/** `HKDF-SHA256(ikm=master_secret, salt=id[16], info=…)` per D3, domain-separated by kind, for both `auth_secret` and `wrap_key`. Vault kinds only — `room` has no `wrap_key` and derives separately below. */
|
|
@@ -171,7 +171,7 @@ function deriveClaimSecrets(kind, idBytes, masterSecret) {
|
|
|
171
171
|
const wrapKey = hkdf(sha256, masterSecret, idBytes, utf8ToBytes(wrapInfo), 32);
|
|
172
172
|
const authHash = sha256(concatBytes(utf8ToBytes(authHashLabel), authSecret));
|
|
173
173
|
// ONE SHA-256 over (label ‖ auth_secret), hex-encoded — exactly what the
|
|
174
|
-
// gateway recomputes at
|
|
174
|
+
// gateway recomputes at redeem (`computeAuthHash`). Through 4.68.1 this line
|
|
175
175
|
// ran the digest through `sha256Hex` (which hashes its input again), so the
|
|
176
176
|
// stored value was sha256(sha256(label ‖ secret)) and NO key minted by any
|
|
177
177
|
// published client could ever verify. The cross-side vector in
|
|
@@ -206,4 +206,4 @@ export function deriveRoomInviteAuthSecret(inviteIdBytes, masterSecret) {
|
|
|
206
206
|
export function computeRoomInviteAuthHash(authSecret) {
|
|
207
207
|
return bytesToHex(sha256(concatBytes(utf8ToBytes(ROOM_INVITE_AUTH_HASH_LABEL), authSecret)));
|
|
208
208
|
}
|
|
209
|
-
//# sourceMappingURL=bearer-
|
|
209
|
+
//# sourceMappingURL=bearer-redeem-key.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bearer-redeem-key.js","sourceRoot":"","sources":["../../src/node/bearer-redeem-key.ts"],"names":[],"mappings":"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"}
|
package/dist/node/ci.d.ts
CHANGED
package/dist/node/ci.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../../src/node/ci.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAWjC,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,
|
|
1
|
+
{"version":3,"file":"ci.d.ts","sourceRoot":"","sources":["../../src/node/ci.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAWjC,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,kBAAkB,EAC1B,IAAI,GAAE,uBAA4B,GACjC,MAAM,CA0BR"}
|
package/dist/node/ci.js
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
/** Node-only CI/OIDC helpers. */
|
|
2
|
-
import {
|
|
3
|
-
import { buildSIWxAuthHeaders } from "../../core-dist/
|
|
2
|
+
import { readWallet } from "../../core-dist/wallet.js";
|
|
3
|
+
import { buildSIWxAuthHeaders } from "../../core-dist/wallet-auth.js";
|
|
4
4
|
import { getApiBase } from "../../core-dist/config.js";
|
|
5
5
|
import { LocalError } from "../errors.js";
|
|
6
6
|
import { buildCiDelegationResourceUri, buildCiDelegationStatement, normalizeCiDelegationValues, } from "../namespaces/ci.js";
|
|
7
7
|
import { DEFAULT_CI_DELEGATION_CHAIN_ID, } from "../namespaces/ci.types.js";
|
|
8
8
|
export function signCiDelegation(values, opts = {}) {
|
|
9
|
-
const
|
|
10
|
-
if (!
|
|
11
|
-
throw new LocalError("No local
|
|
9
|
+
const localWallet = readWallet(opts.walletPath);
|
|
10
|
+
if (!localWallet || !localWallet.address || !localWallet.privateKey) {
|
|
11
|
+
throw new LocalError("No local wallet configured. Run `run402 init` or `run402 init` before linking CI.", "signing CI delegation");
|
|
12
12
|
}
|
|
13
13
|
const canonical = normalizeCiDelegationValues(values);
|
|
14
14
|
const apiBase = opts.apiBase ?? getApiBase();
|
|
15
15
|
const bindingUrl = new URL("/ci/v1/bindings", apiBase);
|
|
16
16
|
const now = new Date();
|
|
17
17
|
const headers = buildSIWxAuthHeaders({
|
|
18
|
-
|
|
18
|
+
wallet: localWallet,
|
|
19
19
|
domain: bindingUrl.hostname,
|
|
20
20
|
uri: bindingUrl.toString(),
|
|
21
21
|
statement: buildCiDelegationStatement(canonical),
|
package/dist/node/ci.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ci.js","sourceRoot":"","sources":["../../src/node/ci.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAEjC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ci.js","sourceRoot":"","sources":["../../src/node/ci.ts"],"names":[],"mappings":"AAAA,iCAAiC;AAEjC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,2BAA2B,GAC5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,8BAA8B,GAE/B,MAAM,2BAA2B,CAAC;AAWnC,MAAM,UAAU,gBAAgB,CAC9B,MAA0B,EAC1B,OAAgC,EAAE;IAElC,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAChD,IAAI,CAAC,WAAW,IAAI,CAAC,WAAW,CAAC,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QACpE,MAAM,IAAI,UAAU,CAClB,mFAAmF,EACnF,uBAAuB,CACxB,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;IACtD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,UAAU,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,OAAO,GAAG,oBAAoB,CAAC;QACnC,MAAM,EAAE,WAAW;QACnB,MAAM,EAAE,UAAU,CAAC,QAAQ;QAC3B,GAAG,EAAE,UAAU,CAAC,QAAQ,EAAE;QAC1B,SAAS,EAAE,0BAA0B,CAAC,SAAS,CAAC;QAChD,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,8BAA8B;QACvD,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;QACjD,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,GAAG,CAAC,WAAW,EAAE;QAC5C,cAAc,EACZ,IAAI,CAAC,cAAc,IAAI,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,WAAW,EAAE;QAC9E,SAAS,EAAE,CAAC,4BAA4B,CAAC,SAAS,CAAC,CAAC;KACrD,CAAC,CAAC;IACH,OAAO,OAAO,CAAC,gBAAgB,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Node credential provider — wraps the local project-key cache +
|
|
2
|
+
* Node credential provider — wraps the local project-key cache + SIWX auth.
|
|
3
3
|
* Reads `credentials/project-keys.v1.json` (or an explicit `keystorePath`),
|
|
4
|
-
* signs SIWX headers from the
|
|
4
|
+
* signs SIWX headers from the wallet private key, and serves project
|
|
5
5
|
* anon/service keys from disk only for operations classified as credential-
|
|
6
6
|
* required.
|
|
7
7
|
*/
|
|
8
|
-
import type {
|
|
8
|
+
import type { WalletData, AuthRequestMeta, CredentialsProvider, ProjectKeys, WalletIdentity } from "../credentials.js";
|
|
9
9
|
import { DELEGATE_CREDENTIALS } from "../delegate-credentials.js";
|
|
10
10
|
/** Where credential resolution runs — selects the default `authMode`. */
|
|
11
11
|
export type CredentialSurface = "cli" | "mcp" | "sdk";
|
|
12
|
-
/** How a request's credentials are chosen. `auto` = wallet, else
|
|
13
|
-
export type AuthMode = "auto" | "wallet" | "
|
|
12
|
+
/** How a request's credentials are chosen. `auto` = wallet, else the sign-in session. */
|
|
13
|
+
export type AuthMode = "auto" | "wallet" | "session" | "delegate" | "none";
|
|
14
14
|
export interface NodeCredentialsOptions {
|
|
15
|
-
|
|
15
|
+
walletPath?: string;
|
|
16
16
|
/** Local project-key credential cache path. Defaults to credentials/project-keys.v1.json. */
|
|
17
17
|
keystorePath?: string;
|
|
18
18
|
/** Non-secret profile state path for active project pointers. Defaults to state.json. */
|
|
19
19
|
profileStatePath?: string;
|
|
20
|
-
/** Default is `wallet` (no ambient
|
|
20
|
+
/** Default is `wallet` (no ambient sign-in session authority); `cli` opts into `auto`. */
|
|
21
21
|
surface?: CredentialSurface;
|
|
22
22
|
/** Explicit override; otherwise derived from `surface`. */
|
|
23
23
|
authMode?: AuthMode;
|
|
@@ -46,14 +46,15 @@ export declare class NodeCredentialsProvider implements CredentialsProvider {
|
|
|
46
46
|
* Deterministic credential resolution — selects exactly one credential class
|
|
47
47
|
* and never silently falls back to another after a failure.
|
|
48
48
|
*
|
|
49
|
-
* - `wallet` (default; the MCP/agent path): only the SIWX
|
|
50
|
-
* reads the
|
|
49
|
+
* - `wallet` (default; the MCP/agent path): only the SIWX wallet. NEVER
|
|
50
|
+
* reads the sign-in session or write-approval caches, so a person's
|
|
51
51
|
* ambient authority cannot leak into an agent tool call.
|
|
52
|
-
* - `auto` (CLI): SIWX
|
|
53
|
-
* session, plus an `X-Run402-Write-
|
|
52
|
+
* - `auto` (CLI): SIWX wallet if present; otherwise the live control-plane
|
|
53
|
+
* sign-in session, plus an `X-Run402-Write-Approval` approval ONLY when the request's
|
|
54
54
|
* `(capability, target)` exactly matches a cached, origin/session-bound
|
|
55
55
|
* approval. A gated write with no match is sent cp-bearer-only and fails
|
|
56
|
-
* closed with `
|
|
56
|
+
* closed with `WRITE_APPROVAL_REQUIRED`.
|
|
57
|
+
* - `session`: only the sign-in session (plus a matching write approval).
|
|
57
58
|
*/
|
|
58
59
|
getAuth(path: string, metadata?: AuthRequestMeta): Promise<Record<string, string> | null>;
|
|
59
60
|
/** API origin used to bind/look-up approvals (matches the ceremony's mint origin). */
|
|
@@ -74,14 +75,14 @@ export declare class NodeCredentialsProvider implements CredentialsProvider {
|
|
|
74
75
|
* it scoped like the active project is honoured too.
|
|
75
76
|
*/
|
|
76
77
|
getActiveOrg(): Promise<string | null>;
|
|
77
|
-
|
|
78
|
+
readWallet(): Promise<WalletData | null>;
|
|
78
79
|
signPersonalMessage(message: string): Promise<{
|
|
79
80
|
address: string;
|
|
80
81
|
signature: string;
|
|
81
82
|
}>;
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
83
|
+
saveWallet(data: WalletData): Promise<void>;
|
|
84
|
+
createWallet(): Promise<WalletData>;
|
|
85
|
+
getWalletPath(): string;
|
|
85
86
|
getProjectCredentialCacheInfo(): {
|
|
86
87
|
source: "local_cache";
|
|
87
88
|
cache_path: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/node/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA4BH,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/node/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA4BH,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACvH,OAAO,EAAE,oBAAoB,EAAwB,MAAM,4BAA4B,CAAC;AAGxF,yEAAyE;AACzE,MAAM,MAAM,iBAAiB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AACtD,yFAAyF;AACzF,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;AAE3E,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6FAA6F;IAC7F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yFAAyF;IACzF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,0FAA0F;IAC1F,OAAO,CAAC,EAAE,iBAAiB,CAAC;IAC5B,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,uBAAwB,YAAW,mBAAmB;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,GAAE,sBAA2B;IAEjE;;;;;OAKG;IACH,IAAI,CAAC,oBAAoB,CAAC,IAAI,OAAO,CAEpC;IAED,+EAA+E;IAC/E,OAAO,CAAC,oBAAoB;IAM5B,0GAA0G;IAC1G,OAAO,CAAC,eAAe;IAIvB;;;;;;;;;;;;;OAaG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAsC/F,sFAAsF;IACtF,OAAO,CAAC,SAAS;IAQX,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAK9D,sBAAsB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAI9D,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAInD,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrE,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAIhD;;;;;;OAMG;IACG,YAAY,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAMtC,UAAU,IAAI,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAIxC,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAerF,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,YAAY,IAAI,OAAO,CAAC,UAAU,CAAC;IAqBzC,aAAa,IAAI,MAAM;IAIvB,6BAA6B;;;;;;IAU7B,mBAAmB,IAAI,MAAM;IAI7B,OAAO,CAAC,WAAW;IASb,iBAAiB,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAS1D"}
|
package/dist/node/credentials.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Node credential provider — wraps the local project-key cache +
|
|
2
|
+
* Node credential provider — wraps the local project-key cache + SIWX auth.
|
|
3
3
|
* Reads `credentials/project-keys.v1.json` (or an explicit `keystorePath`),
|
|
4
|
-
* signs SIWX headers from the
|
|
4
|
+
* signs SIWX headers from the wallet private key, and serves project
|
|
5
5
|
* anon/service keys from disk only for operations classified as credential-
|
|
6
6
|
* required.
|
|
7
7
|
*/
|
|
@@ -9,12 +9,12 @@ import { randomBytes, createECDH } from "node:crypto";
|
|
|
9
9
|
import { keccak_256 } from "@noble/hashes/sha3.js";
|
|
10
10
|
import { getProject as coreGetProject, loadKeyStore as coreLoadKeyStore, saveProject as coreSaveProject, updateProject as coreUpdateProject, removeProject as coreRemoveProject, } from "../../core-dist/keystore.js";
|
|
11
11
|
import { getActiveOrgId, getActiveProjectId, setActiveProjectId, } from "../../core-dist/profile-state.js";
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
12
|
+
import { getWalletAuthHeaders } from "../../core-dist/wallet-auth.js";
|
|
13
|
+
import { readWallet as coreReadWallet, saveWallet as coreSaveWallet } from "../../core-dist/wallet.js";
|
|
14
|
+
import { getWalletPath as coreGetWalletPath, getActiveProfile, getApiBase, getProfileStatePath as coreGetProfileStatePath, getProjectCredentialsPath as coreGetProjectCredentialsPath, } from "../../core-dist/config.js";
|
|
15
15
|
import { readMeta } from "../../core-dist/profiles.js";
|
|
16
16
|
import { loadLiveControlPlaneSession } from "../../core-dist/control-plane-session.js";
|
|
17
|
-
import { loadLiveApproval, hashControlPlaneSession } from "../../core-dist/write-
|
|
17
|
+
import { loadLiveApproval, hashControlPlaneSession } from "../../core-dist/write-approvals.js";
|
|
18
18
|
import { DELEGATE_CREDENTIALS, delegateTokenFromEnv } from "../delegate-credentials.js";
|
|
19
19
|
import { LocalError } from "../errors.js";
|
|
20
20
|
export class NodeCredentialsProvider {
|
|
@@ -46,14 +46,15 @@ export class NodeCredentialsProvider {
|
|
|
46
46
|
* Deterministic credential resolution — selects exactly one credential class
|
|
47
47
|
* and never silently falls back to another after a failure.
|
|
48
48
|
*
|
|
49
|
-
* - `wallet` (default; the MCP/agent path): only the SIWX
|
|
50
|
-
* reads the
|
|
49
|
+
* - `wallet` (default; the MCP/agent path): only the SIWX wallet. NEVER
|
|
50
|
+
* reads the sign-in session or write-approval caches, so a person's
|
|
51
51
|
* ambient authority cannot leak into an agent tool call.
|
|
52
|
-
* - `auto` (CLI): SIWX
|
|
53
|
-
* session, plus an `X-Run402-Write-
|
|
52
|
+
* - `auto` (CLI): SIWX wallet if present; otherwise the live control-plane
|
|
53
|
+
* sign-in session, plus an `X-Run402-Write-Approval` approval ONLY when the request's
|
|
54
54
|
* `(capability, target)` exactly matches a cached, origin/session-bound
|
|
55
55
|
* approval. A gated write with no match is sent cp-bearer-only and fails
|
|
56
|
-
* closed with `
|
|
56
|
+
* closed with `WRITE_APPROVAL_REQUIRED`.
|
|
57
|
+
* - `session`: only the sign-in session (plus a matching write approval).
|
|
57
58
|
*/
|
|
58
59
|
async getAuth(path, metadata) {
|
|
59
60
|
const mode = this.resolveAuthMode();
|
|
@@ -70,12 +71,12 @@ export class NodeCredentialsProvider {
|
|
|
70
71
|
return { Authorization: `Bearer ${delegate}` };
|
|
71
72
|
if (mode === "delegate")
|
|
72
73
|
return null;
|
|
73
|
-
const wallet =
|
|
74
|
+
const wallet = getWalletAuthHeaders(path, this.options.walletPath);
|
|
74
75
|
if (mode === "wallet")
|
|
75
76
|
return wallet ? { ...wallet } : null;
|
|
76
77
|
if (mode === "auto" && wallet)
|
|
77
78
|
return { ...wallet };
|
|
78
|
-
//
|
|
79
|
+
// session mode, or auto with no wallet: the sign-in session principal.
|
|
79
80
|
const cp = loadLiveControlPlaneSession();
|
|
80
81
|
if (!cp)
|
|
81
82
|
return wallet ? { ...wallet } : null;
|
|
@@ -91,7 +92,7 @@ export class NodeCredentialsProvider {
|
|
|
91
92
|
target: metadata.target,
|
|
92
93
|
});
|
|
93
94
|
if (approval)
|
|
94
|
-
headers["X-Run402-Write-
|
|
95
|
+
headers["X-Run402-Write-Approval"] = `Bearer ${approval.write_approval_token}`;
|
|
95
96
|
}
|
|
96
97
|
return headers;
|
|
97
98
|
}
|
|
@@ -141,23 +142,23 @@ export class NodeCredentialsProvider {
|
|
|
141
142
|
?? getActiveOrgId(this.options.profileStatePath)
|
|
142
143
|
?? null;
|
|
143
144
|
}
|
|
144
|
-
async
|
|
145
|
-
return
|
|
145
|
+
async readWallet() {
|
|
146
|
+
return coreReadWallet(this.options.walletPath) ?? null;
|
|
146
147
|
}
|
|
147
148
|
async signPersonalMessage(message) {
|
|
148
|
-
const
|
|
149
|
-
if (!
|
|
149
|
+
const localWallet = coreReadWallet(this.options.walletPath);
|
|
150
|
+
if (!localWallet) {
|
|
150
151
|
throw new LocalError("No active wallet is available for EIP-191 signing", "signing EIP-191 identity-link proof", { code: "IDENTITY_LINK_EOA_SIGNER_REQUIRED" });
|
|
151
152
|
}
|
|
152
153
|
const { privateKeyToAccount } = await import("viem/accounts");
|
|
153
|
-
const account = privateKeyToAccount(
|
|
154
|
+
const account = privateKeyToAccount(localWallet.privateKey);
|
|
154
155
|
const signature = await account.signMessage({ message });
|
|
155
156
|
return { address: account.address, signature };
|
|
156
157
|
}
|
|
157
|
-
async
|
|
158
|
-
|
|
158
|
+
async saveWallet(data) {
|
|
159
|
+
coreSaveWallet(data, this.options.walletPath);
|
|
159
160
|
}
|
|
160
|
-
async
|
|
161
|
+
async createWallet() {
|
|
161
162
|
const privateKeyBytes = randomBytes(32);
|
|
162
163
|
const privateKey = `0x${privateKeyBytes.toString("hex")}`;
|
|
163
164
|
const ecdh = createECDH("secp256k1");
|
|
@@ -175,8 +176,8 @@ export class NodeCredentialsProvider {
|
|
|
175
176
|
funded: false,
|
|
176
177
|
};
|
|
177
178
|
}
|
|
178
|
-
|
|
179
|
-
return this.options.
|
|
179
|
+
getWalletPath() {
|
|
180
|
+
return this.options.walletPath ?? coreGetWalletPath();
|
|
180
181
|
}
|
|
181
182
|
getProjectCredentialCacheInfo() {
|
|
182
183
|
const profile = getActiveProfile();
|
|
@@ -191,11 +192,11 @@ export class NodeCredentialsProvider {
|
|
|
191
192
|
return this.options.profileStatePath ?? coreGetProfileStatePath();
|
|
192
193
|
}
|
|
193
194
|
activeScope() {
|
|
194
|
-
const
|
|
195
|
+
const localWallet = coreReadWallet(this.options.walletPath);
|
|
195
196
|
return {
|
|
196
197
|
api_base: getApiBase(),
|
|
197
198
|
profile: getActiveProfile(),
|
|
198
|
-
principal:
|
|
199
|
+
principal: localWallet?.address ?? null,
|
|
199
200
|
};
|
|
200
201
|
}
|
|
201
202
|
async getWalletIdentity() {
|
|
@@ -203,7 +204,7 @@ export class NodeCredentialsProvider {
|
|
|
203
204
|
const meta = readMeta(name);
|
|
204
205
|
let address = meta?.address ?? null;
|
|
205
206
|
if (!address) {
|
|
206
|
-
address =
|
|
207
|
+
address = coreReadWallet(this.options.walletPath)?.address ?? null;
|
|
207
208
|
}
|
|
208
209
|
return { name, address, label: meta?.label ?? null };
|
|
209
210
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/node/credentials.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EACL,UAAU,IAAI,cAAc,EAC5B,YAAY,IAAI,gBAAgB,EAChC,WAAW,IAAI,eAAe,EAC9B,aAAa,IAAI,iBAAiB,EAClC,aAAa,IAAI,iBAAiB,GACnC,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,cAAc,EACd,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/node/credentials.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ export interface FundingRecovery {
|
|
|
16
16
|
export declare function fundingBlocksBootstrap(recovery: FundingRecovery | null, evidence: {
|
|
17
17
|
activeTier: boolean;
|
|
18
18
|
onChainBalance?: number | null;
|
|
19
|
-
|
|
19
|
+
allowanceBalance?: number | null;
|
|
20
20
|
lightningBalance?: number | null;
|
|
21
21
|
}): boolean;
|
|
22
22
|
export declare function fundingRecovery(error: unknown, pending?: boolean): FundingRecovery | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"funding-recovery.d.ts","sourceRoot":"","sources":["../../src/node/funding-recovery.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7F;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,EAAE,QAAQ,EAAE;IACjF,UAAU,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,
|
|
1
|
+
{"version":3,"file":"funding-recovery.d.ts","sourceRoot":"","sources":["../../src/node/funding-recovery.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,IAAI,GAAG,QAAQ,CAAC;IAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7F;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,EAAE,QAAQ,EAAE;IACjF,UAAU,EAAE,OAAO,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzH,GAAG,OAAO,CAGV;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,UAAQ,GAAG,eAAe,GAAG,IAAI,CAgCvF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export function fundingBlocksBootstrap(recovery, evidence) {
|
|
2
2
|
return recovery !== null && !evidence.activeTier && !(Number(evidence.onChainBalance) > 0)
|
|
3
|
-
&& !(Number(evidence.
|
|
3
|
+
&& !(Number(evidence.allowanceBalance) > 0) && !(Number(evidence.lightningBalance) > 0);
|
|
4
4
|
}
|
|
5
5
|
export function fundingRecovery(error, pending = false) {
|
|
6
6
|
if (!error && !pending)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"funding-recovery.js","sourceRoot":"","sources":["../../src/node/funding-recovery.ts"],"names":[],"mappings":"AAWA,MAAM,UAAU,sBAAsB,CAAC,QAAgC,EAAE,QAExE;IACC,OAAO,QAAQ,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;WACrF,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"funding-recovery.js","sourceRoot":"","sources":["../../src/node/funding-recovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,7 +34,7 @@ export interface ApplyDeployLaneOptions {
|
|
|
34
34
|
/** The apply engine (`r._applyEngine`). */
|
|
35
35
|
engine: Deploy;
|
|
36
36
|
spec: ReleaseSpec;
|
|
37
|
-
/** Everything a normal `apply()` takes: events, idempotency key, warning
|
|
37
|
+
/** Everything a normal `apply()` takes: events, idempotency key, warning wallets. */
|
|
38
38
|
apply?: Omit<ApplyOptions, "gitvault">;
|
|
39
39
|
}
|
|
40
40
|
/** A lane that is also cancellable, because `runGitvaultDeploy` may never commit. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitvault-apply.d.ts","sourceRoot":"","sources":["../../src/node/gitvault-apply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EAEZ,kBAAkB,EAClB,WAAW,EACZ,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EACV,kBAAkB,EAGlB,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAsB9B,MAAM,WAAW,sBAAsB;IACrC,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,
|
|
1
|
+
{"version":3,"file":"gitvault-apply.d.ts","sourceRoot":"","sources":["../../src/node/gitvault-apply.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAA6B,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EAEZ,kBAAkB,EAClB,WAAW,EACZ,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EACV,kBAAkB,EAGlB,oBAAoB,EACrB,MAAM,sBAAsB,CAAC;AAsB9B,MAAM,WAAW,sBAAsB;IACrC,2CAA2C;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,WAAW,CAAC;IAClB,qFAAqF;IACrF,KAAK,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;CACxC;AAED,qFAAqF;AACrF,MAAM,WAAW,eAAgB,SAAQ,kBAAkB;IACzD;;;OAGG;IACH,OAAO,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IAC/B,4EAA4E;IAC5E,MAAM,IAAI,YAAY,GAAG,IAAI,CAAC;CAC/B;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,sBAAsB,GAAG,eAAe,CA2DtF;AAiBD,mDAAmD;AACnD,MAAM,MAAM,iBAAiB;AAC3B,yEAAyE;AACvE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,UAAU,GAAG,mBAAmB,CAAA;CAAE;AAC5D,6EAA6E;GAC3E;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AAC5C;;;;;;;GAOG;GACD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACtC,iEAAiE;GAC/D;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzC,sFAAsF;AACtF,wBAAgB,gCAAgC,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAM3E;AAED,+GAA+G;AAC/G,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,kBAAkB,CAQzE;AAWD,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,iBAAiB,CAAC;IACxB,8EAA8E;IAC9E,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,sEAAsE;IACtE,QAAQ,EAAE,oBAAoB,GAAG,IAAI,CAAC;CACvC;AAED,MAAM,WAAW,wBAAwB;IACvC,GAAG,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE,CAAC;IAClD,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IACvC,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,+EAA+E;IAC/E,eAAe,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACrC;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,sEAAsE;IACtE,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC,CAuD3G"}
|