@run402/sdk 4.12.4 → 4.13.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.
Files changed (34) hide show
  1. package/README.md +21 -0
  2. package/dist/credentials.d.ts +5 -0
  3. package/dist/credentials.d.ts.map +1 -1
  4. package/dist/index.d.ts +6 -0
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +5 -0
  7. package/dist/index.js.map +1 -1
  8. package/dist/namespaces/deploy.types.d.ts +5 -0
  9. package/dist/namespaces/deploy.types.d.ts.map +1 -1
  10. package/dist/namespaces/deploy.types.js.map +1 -1
  11. package/dist/namespaces/identity-links.d.ts +25 -0
  12. package/dist/namespaces/identity-links.d.ts.map +1 -0
  13. package/dist/namespaces/identity-links.js +80 -0
  14. package/dist/namespaces/identity-links.js.map +1 -0
  15. package/dist/namespaces/identity-links.protocol.d.ts +9 -0
  16. package/dist/namespaces/identity-links.protocol.d.ts.map +1 -0
  17. package/dist/namespaces/identity-links.protocol.js +200 -0
  18. package/dist/namespaces/identity-links.protocol.js.map +1 -0
  19. package/dist/namespaces/identity-links.types.d.ts +125 -0
  20. package/dist/namespaces/identity-links.types.d.ts.map +1 -0
  21. package/dist/namespaces/identity-links.types.js +2 -0
  22. package/dist/namespaces/identity-links.types.js.map +1 -0
  23. package/dist/namespaces/org.types.d.ts +3 -0
  24. package/dist/namespaces/org.types.d.ts.map +1 -1
  25. package/dist/namespaces/projects.types.d.ts +7 -0
  26. package/dist/namespaces/projects.types.d.ts.map +1 -1
  27. package/dist/namespaces/transfers.d.ts +16 -0
  28. package/dist/namespaces/transfers.d.ts.map +1 -1
  29. package/dist/namespaces/transfers.js.map +1 -1
  30. package/dist/node/credentials.d.ts +4 -0
  31. package/dist/node/credentials.d.ts.map +1 -1
  32. package/dist/node/credentials.js +11 -0
  33. package/dist/node/credentials.js.map +1 -1
  34. package/package.json +4 -1
@@ -0,0 +1,80 @@
1
+ import { LocalError } from "../errors.js";
2
+ import { assertNoForbiddenIdentityInput, canonicalProofContent, normalizeNostrPublicKey, verifyRawNostrEvent, walletFromPublicPayload, } from "./identity-links.protocol.js";
3
+ export class NostrIdentityLinks {
4
+ client;
5
+ constructor(client) {
6
+ this.client = client;
7
+ }
8
+ async begin(input) {
9
+ if (!input || typeof input !== "object")
10
+ throw new LocalError("identityLinks.nostr.begin requires an input object", "beginning Nostr identity link");
11
+ assertNoForbiddenIdentityInput(input);
12
+ if (typeof input.nostrPubkey !== "string" || input.visibility !== "public") {
13
+ throw new LocalError("nostrPubkey and explicit visibility: 'public' are required", "beginning Nostr identity link", { code: "IDENTITY_LINK_PUBLIC_VISIBILITY_REQUIRED" });
14
+ }
15
+ const nostrPubkey = normalizeNostrPublicKey(input.nostrPubkey);
16
+ const signer = this.client.credentials.signPersonalMessage;
17
+ if (!signer)
18
+ throw new LocalError("The active credential provider cannot sign EIP-191 personal messages", "beginning Nostr identity link", { code: "IDENTITY_LINK_EOA_SIGNER_REQUIRED" });
19
+ const challenge = await this.client.request("/identity-links/v1/challenges", {
20
+ method: "POST",
21
+ headers: { "Idempotency-Key": input.idempotencyKey ?? globalThis.crypto.randomUUID() },
22
+ body: { nostr_pubkey: nostrPubkey, visibility: input.visibility },
23
+ context: "creating public Nostr identity-link challenge",
24
+ });
25
+ const signed = await signer.call(this.client.credentials, challenge.public_payload);
26
+ const expected = walletFromPublicPayload(challenge.public_payload);
27
+ if (signed.address.toLowerCase() !== expected.toLowerCase()) {
28
+ throw new LocalError("The personal-message signer differs from the EOA that authenticated the challenge", "beginning Nostr identity link", { code: "IDENTITY_LINK_EOA_SIGNER_MISMATCH" });
29
+ }
30
+ const proofContent = canonicalProofContent(challenge.public_payload, signed.signature);
31
+ return {
32
+ ...challenge,
33
+ wallet_address: signed.address,
34
+ wallet_signature: signed.signature,
35
+ proof_content: proofContent,
36
+ };
37
+ }
38
+ async complete(input) {
39
+ if (!input || !("rawEvent" in input))
40
+ throw new LocalError("identityLinks.nostr.complete requires { rawEvent }", "completing Nostr identity link");
41
+ const event = verifyRawNostrEvent(input.rawEvent);
42
+ const wrapper = JSON.parse(event.content);
43
+ const payload = JSON.parse(wrapper.public_payload);
44
+ if (typeof payload.challenge_id !== "string")
45
+ throw new LocalError("Signed payload has no challenge_id", "completing Nostr identity link");
46
+ return this.client.request("/identity-links/v1", {
47
+ method: "POST",
48
+ body: { identity_link_challenge_id: payload.challenge_id, nostr_event: event },
49
+ context: "completing public Nostr identity link",
50
+ });
51
+ }
52
+ }
53
+ export class IdentityLinks {
54
+ client;
55
+ nostr;
56
+ constructor(client) {
57
+ this.client = client;
58
+ this.nostr = new NostrIdentityLinks(client);
59
+ }
60
+ async list() {
61
+ return this.client.request("/identity-links/v1", { context: "listing linked identities" });
62
+ }
63
+ async getProof(identityLinkId) {
64
+ if (!identityLinkId)
65
+ throw new LocalError("identityLinks.getProof requires identityLinkId", "reading public identity-link proof");
66
+ return this.client.request(`/identity-link-proofs/v1/${encodeURIComponent(identityLinkId)}`, {
67
+ withAuth: false,
68
+ context: "reading public identity-link proof",
69
+ });
70
+ }
71
+ async revoke(identityLinkId) {
72
+ if (!identityLinkId)
73
+ throw new LocalError("identityLinks.revoke requires identityLinkId", "revoking identity link");
74
+ return this.client.request(`/identity-links/v1/${encodeURIComponent(identityLinkId)}`, {
75
+ method: "DELETE",
76
+ context: "revoking identity link",
77
+ });
78
+ }
79
+ }
80
+ //# sourceMappingURL=identity-links.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity-links.js","sourceRoot":"","sources":["../../src/namespaces/identity-links.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import type { NostrEventV1 } from "./identity-links.types.js";
2
+ export declare function parseStrictJson(text: string): unknown;
3
+ export declare function normalizeNostrPublicKey(input: string): string;
4
+ export declare function canonicalProofContent(publicPayload: string, walletSignature: string): string;
5
+ export declare function assertCanonicalWalletSignature(signature: string): void;
6
+ export declare function walletFromPublicPayload(publicPayload: string): string;
7
+ export declare function verifyRawNostrEvent(input: string | NostrEventV1): NostrEventV1;
8
+ export declare function assertNoForbiddenIdentityInput(value: Record<string, unknown>): void;
9
+ //# sourceMappingURL=identity-links.protocol.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity-links.protocol.d.ts","sourceRoot":"","sources":["../../src/namespaces/identity-links.protocol.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAiD9D,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAOrD;AAqBD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAe7D;AA0BD,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAI5F;AAED,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAKtE;AAED,wBAAgB,uBAAuB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAKrE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,YAAY,CA8B9E;AAED,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAMnF"}
@@ -0,0 +1,200 @@
1
+ import { parse, evaluate } from "@humanwhocodes/momoa";
2
+ import { schnorr, secp256k1 } from "@noble/curves/secp256k1.js";
3
+ import { sha256 } from "@noble/hashes/sha2.js";
4
+ import { bytesToHex, hexToBytes, utf8ToBytes } from "@noble/hashes/utils.js";
5
+ import { bech32 } from "@scure/base";
6
+ import { canonicalize } from "json-canonicalize";
7
+ import { LocalError } from "../errors.js";
8
+ const HEX_32 = /^[0-9a-f]{64}$/;
9
+ const HEX_64 = /^[0-9a-f]{128}$/;
10
+ const EIP_SIGNATURE = /^0x[0-9a-f]{130}$/;
11
+ const HALF_N = secp256k1.Point.Fn.ORDER >> 1n;
12
+ const SECRET_FIELD = /(?:private.?key|secret|mnemonic|seed|derivation|nsec|nostr.?key)/i;
13
+ const PAYLOAD_FIELDS = [
14
+ "action", "audience", "challenge_expires_at", "challenge_id", "issued_at", "nonce",
15
+ "nostr_event_kind", "nostr_pubkey", "principal_id", "protocol", "visibility",
16
+ "wallet_account", "wallet_signature_scheme",
17
+ ];
18
+ const MAX_BODY_BYTES = 32 * 1024;
19
+ const MAX_CONTENT_BYTES = 8 * 1024;
20
+ const MAX_PAYLOAD_BYTES = 4 * 1024;
21
+ const encoder = new TextEncoder();
22
+ function fail(message, code = "IDENTITY_LINK_INVALID_EVENT", details) {
23
+ throw new LocalError(message, "preparing Nostr identity link", { code, details });
24
+ }
25
+ function scalar(text, field) {
26
+ for (let i = 0; i < text.length; i += 1) {
27
+ const code = text.charCodeAt(i);
28
+ if (code >= 0xd800 && code <= 0xdbff) {
29
+ const next = text.charCodeAt(i + 1);
30
+ if (!(next >= 0xdc00 && next <= 0xdfff))
31
+ fail("Unpaired Unicode surrogate", "IDENTITY_LINK_INVALID_JSON", { field });
32
+ i += 1;
33
+ }
34
+ else if (code >= 0xdc00 && code <= 0xdfff)
35
+ fail("Unpaired Unicode surrogate", "IDENTITY_LINK_INVALID_JSON", { field });
36
+ }
37
+ }
38
+ function inspect(node, path = "$") {
39
+ if (node.type === "Document")
40
+ return inspect(node.body, path);
41
+ if (node.type === "Object") {
42
+ const seen = new Set();
43
+ for (const member of node.members) {
44
+ const name = member.name.type === "String" ? member.name.value : member.name.name;
45
+ if (seen.has(name))
46
+ fail(`Duplicate JSON field: ${name}`, "IDENTITY_LINK_DUPLICATE_FIELD", { field: `${path}.${name}` });
47
+ if (SECRET_FIELD.test(name))
48
+ fail("Secret-bearing identity-link fields are forbidden", "IDENTITY_LINK_SECRET_INPUT_FORBIDDEN", { field: `${path}.${name}` });
49
+ seen.add(name);
50
+ inspect(member.value, `${path}.${name}`);
51
+ }
52
+ return;
53
+ }
54
+ if (node.type === "Array")
55
+ return node.elements.forEach((entry, i) => inspect(entry.value, `${path}[${i}]`));
56
+ if (node.type === "String")
57
+ scalar(node.value, path);
58
+ }
59
+ export function parseStrictJson(text) {
60
+ if (text.startsWith("\ufeff"))
61
+ fail("UTF-8 BOM is forbidden", "IDENTITY_LINK_INVALID_JSON");
62
+ let ast;
63
+ try {
64
+ ast = parse(text, { mode: "json", allowTrailingCommas: false });
65
+ }
66
+ catch {
67
+ fail("Invalid JSON", "IDENTITY_LINK_INVALID_JSON");
68
+ }
69
+ inspect(ast);
70
+ return evaluate(ast);
71
+ }
72
+ function object(value, field) {
73
+ if (!value || typeof value !== "object" || Array.isArray(value))
74
+ fail(`${field} must be an object`, "IDENTITY_LINK_INVALID_JSON", { field });
75
+ return value;
76
+ }
77
+ function exact(value, fields, path) {
78
+ const expected = new Set(fields);
79
+ for (const key of Object.keys(value))
80
+ if (!expected.has(key))
81
+ fail(`Unknown field: ${key}`, "IDENTITY_LINK_UNKNOWN_FIELD", { field: `${path}.${key}` });
82
+ for (const key of fields)
83
+ if (!(key in value))
84
+ fail(`Missing field: ${key}`, "IDENTITY_LINK_INVALID_JSON", { field: `${path}.${key}` });
85
+ }
86
+ function hash(text) {
87
+ return sha256(utf8ToBytes(text));
88
+ }
89
+ function byteLength(text) {
90
+ return encoder.encode(text).byteLength;
91
+ }
92
+ export function normalizeNostrPublicKey(input) {
93
+ if (HEX_32.test(input))
94
+ return input;
95
+ if (typeof input !== "string" || input !== input.toLowerCase() || !input.startsWith("npub1")) {
96
+ fail("Nostr public key must be lowercase 64-character hex or canonical npub", "IDENTITY_LINK_INVALID_PAYLOAD");
97
+ }
98
+ try {
99
+ const decoded = bech32.decode(input, 1000);
100
+ const bytes = new Uint8Array(bech32.fromWords(decoded.words));
101
+ if (decoded.prefix !== "npub" || bytes.length !== 32 || bech32.encode("npub", bech32.toWords(bytes), 1000) !== input) {
102
+ fail("Nostr public key must be lowercase 64-character hex or canonical npub", "IDENTITY_LINK_INVALID_PAYLOAD");
103
+ }
104
+ return input;
105
+ }
106
+ catch {
107
+ fail("Nostr public key must be lowercase 64-character hex or canonical npub", "IDENTITY_LINK_INVALID_PAYLOAD");
108
+ }
109
+ }
110
+ function parseCanonicalPublicPayload(publicPayload) {
111
+ if (byteLength(publicPayload) > MAX_PAYLOAD_BYTES)
112
+ fail("public_payload exceeds 4096 bytes", "IDENTITY_LINK_INVALID_PAYLOAD");
113
+ const payload = object(parseStrictJson(publicPayload), "public_payload");
114
+ exact(payload, PAYLOAD_FIELDS, "public_payload");
115
+ if (canonicalize(payload) !== publicPayload)
116
+ fail("public_payload is not exact RFC 8785 JSON", "IDENTITY_LINK_NONCANONICAL");
117
+ if (payload.action !== "link_external_identity" ||
118
+ payload.audience !== "https://api.run402.com/identity-links/v1" ||
119
+ payload.protocol !== "run402.identity-link.nostr.v1" ||
120
+ payload.visibility !== "public" ||
121
+ payload.wallet_signature_scheme !== "eip191_personal_sign" ||
122
+ payload.nostr_event_kind !== 1 ||
123
+ typeof payload.nostr_pubkey !== "string" || !HEX_32.test(payload.nostr_pubkey) ||
124
+ typeof payload.nonce !== "string" || !/^[A-Za-z0-9_-]{43}$/.test(payload.nonce) ||
125
+ typeof payload.challenge_id !== "string" || !/^ilc_[A-Za-z0-9]+$/.test(payload.challenge_id) ||
126
+ typeof payload.principal_id !== "string" || !/^prin_[A-Za-z0-9]+$/.test(payload.principal_id) ||
127
+ typeof payload.issued_at !== "string" || !/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/.test(payload.issued_at) ||
128
+ typeof payload.challenge_expires_at !== "string" || !/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\.\d{3}Z$/.test(payload.challenge_expires_at) ||
129
+ Number.isNaN(Date.parse(payload.issued_at)) || Number.isNaN(Date.parse(payload.challenge_expires_at)) ||
130
+ typeof payload.wallet_account !== "string" || !/^eip155:8453:0x[0-9A-Fa-f]{40}$/.test(payload.wallet_account))
131
+ fail("public_payload does not match run402.identity-link.nostr.v1", "IDENTITY_LINK_INVALID_PAYLOAD");
132
+ return payload;
133
+ }
134
+ export function canonicalProofContent(publicPayload, walletSignature) {
135
+ parseCanonicalPublicPayload(publicPayload);
136
+ assertCanonicalWalletSignature(walletSignature);
137
+ return canonicalize({ public_payload: publicPayload, wallet_signature: walletSignature });
138
+ }
139
+ export function assertCanonicalWalletSignature(signature) {
140
+ if (!EIP_SIGNATURE.test(signature))
141
+ fail("Wallet signature must be lowercase 65-byte 0x-prefixed hex", "IDENTITY_LINK_INVALID_WALLET_SIGNATURE");
142
+ const s = BigInt(`0x${signature.slice(66, 130)}`);
143
+ const v = signature.slice(130, 132);
144
+ if (s === 0n || s > HALF_N || (v !== "1b" && v !== "1c"))
145
+ fail("Wallet signature must be low-s with v 0x1b or 0x1c", "IDENTITY_LINK_INVALID_WALLET_SIGNATURE");
146
+ }
147
+ export function walletFromPublicPayload(publicPayload) {
148
+ const payload = parseCanonicalPublicPayload(publicPayload);
149
+ const account = payload.wallet_account;
150
+ if (typeof account !== "string" || !/^eip155:8453:0x[0-9A-Fa-f]{40}$/.test(account))
151
+ fail("Invalid wallet_account", "IDENTITY_LINK_INVALID_PAYLOAD");
152
+ return account.slice("eip155:8453:".length);
153
+ }
154
+ export function verifyRawNostrEvent(input) {
155
+ if (typeof input === "string" && byteLength(input) > MAX_BODY_BYTES)
156
+ fail("Raw Nostr event exceeds 32768 bytes", "IDENTITY_LINK_INVALID_JSON");
157
+ const raw = typeof input === "string" ? parseStrictJson(input) : input;
158
+ const value = object(raw, "nostr_event");
159
+ exact(value, ["id", "pubkey", "created_at", "kind", "tags", "content", "sig"], "nostr_event");
160
+ const event = value;
161
+ if (!HEX_32.test(event.id) || !HEX_32.test(event.pubkey) || !HEX_64.test(event.sig) || event.kind !== 1 || !Number.isSafeInteger(event.created_at) || event.created_at < 0 || !Array.isArray(event.tags) || typeof event.content !== "string") {
162
+ fail("Nostr event must be the exact seven-field kind-1 envelope");
163
+ }
164
+ if (byteLength(event.content) > MAX_CONTENT_BYTES)
165
+ fail("Nostr event content exceeds 8192 bytes");
166
+ for (const [index, tag] of event.tags.entries()) {
167
+ if (!Array.isArray(tag) || tag.some((item) => typeof item !== "string"))
168
+ fail("Every Nostr tag must contain strings only", "IDENTITY_LINK_INVALID_EVENT", { field: `nostr_event.tags[${index}]` });
169
+ }
170
+ if (event.tags.length > 1)
171
+ fail("Only an empty tag list or one NIP-OA auth tag is accepted");
172
+ if (event.tags.length === 1) {
173
+ const tag = event.tags[0];
174
+ if (!Array.isArray(tag) || tag.length !== 4 || tag[0] !== "auth" || !HEX_32.test(tag[1] ?? "") || tag[2] !== "" || !HEX_64.test(tag[3] ?? "") || tag[1] === event.pubkey) {
175
+ fail("Invalid NIP-OA owner-attestation tag", "IDENTITY_LINK_INVALID_NIP_OA");
176
+ }
177
+ if (!schnorr.verify(hexToBytes(tag[3]), hash(`nostr:agent-auth:${event.pubkey}:`), hexToBytes(tag[1])))
178
+ fail("NIP-OA owner attestation does not verify", "IDENTITY_LINK_INVALID_NIP_OA");
179
+ }
180
+ const wrapper = object(parseStrictJson(event.content), "nostr_event.content");
181
+ exact(wrapper, ["public_payload", "wallet_signature"], "nostr_event.content");
182
+ if (canonicalize(wrapper) !== event.content || typeof wrapper.public_payload !== "string" || typeof wrapper.wallet_signature !== "string")
183
+ fail("Event content is not the canonical two-field proof wrapper", "IDENTITY_LINK_NONCANONICAL");
184
+ assertCanonicalWalletSignature(wrapper.wallet_signature);
185
+ const payload = parseCanonicalPublicPayload(wrapper.public_payload);
186
+ if (payload.nostr_pubkey !== event.pubkey)
187
+ fail("Event author and public_payload do not match", "IDENTITY_LINK_INVALID_PAYLOAD");
188
+ const eventId = bytesToHex(hash(JSON.stringify([0, event.pubkey, event.created_at, event.kind, event.tags, event.content])));
189
+ if (eventId !== event.id || !schnorr.verify(hexToBytes(event.sig), hexToBytes(event.id), hexToBytes(event.pubkey)))
190
+ fail("Nostr event id or BIP-340 signature is invalid");
191
+ return event;
192
+ }
193
+ export function assertNoForbiddenIdentityInput(value) {
194
+ for (const key of Object.keys(value)) {
195
+ if (SECRET_FIELD.test(key) || ["display_name", "label", "signed_label"].includes(key)) {
196
+ fail("Nostr private keys, derivation material, and signed labels are never accepted", "IDENTITY_LINK_SECRET_INPUT_FORBIDDEN", { field: key });
197
+ }
198
+ }
199
+ }
200
+ //# sourceMappingURL=identity-links.protocol.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity-links.protocol.js","sourceRoot":"","sources":["../../src/namespaces/identity-links.protocol.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,125 @@
1
+ export interface LinkedIdentityRepresentation {
2
+ identity_link_id: string;
3
+ kind: "nostr_nip01" | (string & {});
4
+ public_subject: string;
5
+ display_subject: string;
6
+ verified_at: string;
7
+ status: "active" | "revoked";
8
+ effective_status: "active" | "revoked" | "principal_inactive";
9
+ revoked_at: string | null;
10
+ }
11
+ export interface PrincipalRepresentation {
12
+ principal_id: string;
13
+ principal_type: "human" | "agent" | "ci" | "system" | (string & {});
14
+ display_name: string | null;
15
+ linked_identities: LinkedIdentityRepresentation[];
16
+ }
17
+ export interface ActiveAuthenticatorRepresentation {
18
+ authenticator_id: string;
19
+ kind: string;
20
+ public_subject: string;
21
+ }
22
+ export interface AuthenticatorSnapshot {
23
+ authenticator_id: string;
24
+ kind: string;
25
+ public_subject: string;
26
+ }
27
+ export interface LinkedIdentitySnapshot {
28
+ identity_link_id: string;
29
+ kind: "nostr" | (string & {});
30
+ public_subject: string;
31
+ display_subject: string;
32
+ verified_at: string;
33
+ status_at_capture: "active";
34
+ }
35
+ export interface PrincipalSnapshot {
36
+ principal_id: string;
37
+ principal_type: "human" | "agent" | "ci" | "system" | (string & {});
38
+ display_name_at_capture: string | null;
39
+ linked_identities_at_capture: LinkedIdentitySnapshot[];
40
+ }
41
+ export type AuthoritySnapshot = {
42
+ kind: "organization_membership";
43
+ organization_id: string;
44
+ membership_id: string;
45
+ role: string;
46
+ } | {
47
+ kind: "project_grant";
48
+ organization_id: string;
49
+ project_id: string;
50
+ grant_id: string;
51
+ scope: string[];
52
+ } | {
53
+ kind: "delegate";
54
+ organization_id: string;
55
+ project_id: string;
56
+ grant_id: string;
57
+ delegate_id: string;
58
+ scope: string[];
59
+ } | {
60
+ kind: "ci";
61
+ organization_id: string;
62
+ project_id: string;
63
+ credential_id: string;
64
+ } | {
65
+ kind: "system";
66
+ reason_code: string;
67
+ } | {
68
+ kind: "legacy";
69
+ } | {
70
+ kind: string;
71
+ [key: string]: unknown;
72
+ };
73
+ export interface OperationActorSnapshot {
74
+ schema_version: 1;
75
+ principal: PrincipalSnapshot | null;
76
+ authenticator: AuthenticatorSnapshot | null;
77
+ authority: AuthoritySnapshot;
78
+ captured_at: string;
79
+ }
80
+ export interface NostrEventV1 {
81
+ id: string;
82
+ pubkey: string;
83
+ created_at: number;
84
+ kind: 1;
85
+ tags: string[][];
86
+ content: string;
87
+ sig: string;
88
+ }
89
+ export interface IdentityLinkChallenge {
90
+ identity_link_challenge_id: string;
91
+ proof_protocol: "run402.identity-link.nostr.v1";
92
+ visibility: "public";
93
+ nostr_pubkey: string;
94
+ npub: string;
95
+ public_payload: string;
96
+ issued_at: string;
97
+ challenge_expires_at: string;
98
+ disclosure: {
99
+ permanence: "public_and_durable";
100
+ published_fields: string[];
101
+ warning: string;
102
+ };
103
+ next_actions: Array<Record<string, unknown>>;
104
+ }
105
+ export interface PreparedIdentityLinkChallenge extends IdentityLinkChallenge {
106
+ wallet_address: string;
107
+ wallet_signature: string;
108
+ proof_content: string;
109
+ }
110
+ export interface IdentityLinkProof {
111
+ identity_link_id: string;
112
+ proof_protocol: "run402.identity-link.nostr.v1";
113
+ status: "active" | "revoked";
114
+ effective_status: "active" | "revoked" | "principal_inactive";
115
+ verified_at: string;
116
+ revoked_at: string | null;
117
+ public_payload: string;
118
+ wallet_signature: string;
119
+ nostr_event: NostrEventV1;
120
+ }
121
+ export interface IdentityLinkListResult {
122
+ identity_links: LinkedIdentityRepresentation[];
123
+ next_cursor: string | null;
124
+ }
125
+ //# sourceMappingURL=identity-links.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity-links.types.d.ts","sourceRoot":"","sources":["../../src/namespaces/identity-links.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=identity-links.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity-links.types.js","sourceRoot":"","sources":["../../src/namespaces/identity-links.types.ts"],"names":[],"mappings":""}
@@ -8,6 +8,7 @@
8
8
  * Public vocabulary is `org` / `org_id` (v1.82): the internal `organization`
9
9
  * substrate never appears on the wire.
10
10
  */
11
+ import type { ActiveAuthenticatorRepresentation, LinkedIdentityRepresentation } from "./identity-links.types.js";
11
12
  /** Org role lattice: `owner > admin > developer > billing > viewer`. */
12
13
  export type OrgRole = "owner" | "admin" | "developer" | "billing" | "viewer";
13
14
  /** Options for {@link OrgMembers.setRole} — the canonical `setRole(principalId, { role })` shape. */
@@ -61,6 +62,8 @@ export interface WhoAmIResult {
61
62
  principal: Principal;
62
63
  memberships: OrgMembership[];
63
64
  authenticator_id: string | null;
65
+ active_authenticator: ActiveAuthenticatorRepresentation | null;
66
+ linked_identities: LinkedIdentityRepresentation[];
64
67
  [key: string]: unknown;
65
68
  }
66
69
  /** Input to {@link Orgs.create} — create an empty org on the prototype tier. */
@@ -1 +1 @@
1
- {"version":3,"file":"org.types.d.ts","sourceRoot":"","sources":["../../src/namespaces/org.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"org.types.d.ts","sourceRoot":"","sources":["../../src/namespaces/org.types.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@
7
7
  */
8
8
  import type { ProjectKeys } from "../credentials.js";
9
9
  import type { ExposeManifest } from "./deploy.types.js";
10
+ import type { OperationActorSnapshot } from "./identity-links.types.js";
10
11
  export type ProjectTier = "prototype" | "hobby" | "team";
11
12
  export interface ProvisionOptions {
12
13
  /** Tier determines price, lease length, storage, and API-call limits. Default: "prototype". */
@@ -108,6 +109,8 @@ export interface ProjectSummary {
108
109
  * Optional for the same reason as {@link ProjectSummary.org_id}.
109
110
  */
110
111
  created_by?: string | null;
112
+ /** Immutable creation-time public provenance; null on legacy projects. */
113
+ creator?: OperationActorSnapshot | null;
111
114
  created_at: string;
112
115
  deleted_at?: string | null;
113
116
  archived_at?: string | null;
@@ -271,6 +274,10 @@ export interface ProjectDetail {
271
274
  /** Usage counters paired with the owning account's tier limits. */
272
275
  usage: ProjectUsageWithLimits;
273
276
  created_at: string;
277
+ /** Legacy creating-principal field retained for compatibility. */
278
+ created_by: string | null;
279
+ /** Immutable creation-time public provenance; null on legacy projects. */
280
+ creator: OperationActorSnapshot | null;
274
281
  /** Forward-compat: unknown future fields a newer gateway may add. */
275
282
  [key: string]: unknown;
276
283
  }
@@ -1 +1 @@
1
- {"version":3,"file":"projects.types.d.ts","sourceRoot":"","sources":["../../src/namespaces/projects.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projects.types.d.ts","sourceRoot":"","sources":["../../src/namespaces/projects.types.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,7 @@
25
25
  * 409 `WRONG_COMPLETION_FOR_TRANSFER_KIND`; the thrown error exposes
26
26
  * `nextActions` pointing at the sibling completion on the SAME `transfer_id`.
27
27
  */
28
+ import type { OperationActorSnapshot, PrincipalRepresentation } from "./identity-links.types.js";
28
29
  import type { Client } from "../kernel.js";
29
30
  /** Phase 1A only supports the `migrate` policy — B's wallet must already be on a organization, and the project moves into it. */
30
31
  export type TransferBillingPolicy = "migrate";
@@ -213,6 +214,13 @@ export interface TransferSummary {
213
214
  to_org_id?: string;
214
215
  /** Org rows only (canonical gateway field when present). */
215
216
  to_organization_id?: string;
217
+ initiated_by?: OperationActorSnapshot | null;
218
+ source_organization?: {
219
+ org_id: string;
220
+ } | null;
221
+ destination_organization?: {
222
+ org_id: string;
223
+ } | null;
216
224
  }
217
225
  export interface ListTransfersOptions {
218
226
  /** Page size; defaults to 50 on the gateway. */
@@ -318,6 +326,14 @@ export interface ProjectTransferPreview {
318
326
  billing_implications: BillingImplications;
319
327
  /** v1.91 sender-retained-membership offer (email rows), or `null` when none was requested. */
320
328
  retain_collaborator?: RetainCollaboratorPreview | null;
329
+ initiated_by?: OperationActorSnapshot | null;
330
+ source_organization?: {
331
+ org_id: string;
332
+ } | null;
333
+ destination_organization?: {
334
+ org_id: string;
335
+ } | null;
336
+ recipient_principal?: PrincipalRepresentation | null;
321
337
  }
322
338
  /** Inputs to {@link Transfers.claim}. */
323
339
  export interface ClaimTransferInput {