@tinycloud/courier 0.5.3 → 0.6.0-beta.17
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/dist/authority.d.ts +16 -0
- package/dist/authority.js +45 -0
- package/dist/authority.js.map +1 -1
- package/dist/commands.d.ts +2 -8
- package/dist/commands.js +23 -57
- package/dist/commands.js.map +1 -1
- package/dist/credential.d.ts +17 -1
- package/dist/credential.js +14 -5
- package/dist/credential.js.map +1 -1
- package/dist/email-invitation.d.ts +69 -0
- package/dist/email-invitation.js +318 -0
- package/dist/email-invitation.js.map +1 -0
- package/dist/flags.d.ts +8 -0
- package/dist/flags.js +46 -0
- package/dist/flags.js.map +1 -0
- package/dist/grant.js +2 -3
- package/dist/grant.js.map +1 -1
- package/dist/inbox.d.ts +2 -1
- package/dist/inbox.js +6 -3
- package/dist/inbox.js.map +1 -1
- package/dist/invitation.d.ts +17 -2
- package/dist/invitation.js +80 -26
- package/dist/invitation.js.map +1 -1
- package/dist/main.js +2 -0
- package/dist/main.js.map +1 -1
- package/dist/thread.d.ts +30 -0
- package/dist/thread.js +72 -0
- package/dist/thread.js.map +1 -0
- package/dist/wake.js +1 -1
- package/dist/wake.js.map +1 -1
- package/package.json +4 -3
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { completeAgentShareReceive, requestAgentShareEmailProof, resumeAgentShareReceive } from '@tinycloud/node-sdk/share-receive';
|
|
2
|
+
import type { TinyCloudNode } from '@tinycloud/node-sdk';
|
|
3
|
+
import type { ShareEnvelopeV3 } from '@tinycloud/share-envelope';
|
|
4
|
+
import type { AgentKey, Profile } from './profile.js';
|
|
5
|
+
import type { CourierInvitation } from './invitation.js';
|
|
6
|
+
export interface EmailInvitationDeps {
|
|
7
|
+
fetch?: typeof fetch;
|
|
8
|
+
shareOrigin?: string;
|
|
9
|
+
linksApiOrigin?: string;
|
|
10
|
+
now?: () => number;
|
|
11
|
+
shareId?: () => string;
|
|
12
|
+
}
|
|
13
|
+
export declare const newShareId: () => string;
|
|
14
|
+
/**
|
|
15
|
+
* Refuse BEFORE anything is created unless this grant holds key.create and decrypt on exactly `share/<shareId>`.
|
|
16
|
+
* Nothing here requests that authority: the grant only gains it from an owner approval for this key, which Courier has
|
|
17
|
+
* no interface for yet, so today this only passes for a grant that already names the generated id.
|
|
18
|
+
*/
|
|
19
|
+
export declare function requireInvitationKeyAuthority(node: Pick<TinyCloudNode, 'getVerifiedSessionCapabilities'>, profile: Profile, shareId: string): void;
|
|
20
|
+
/** Canonical form of a recipient address; Share and OpenCredentials bind the invitation to exactly this string. */
|
|
21
|
+
export declare function canonicalInviteEmail(address: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Send one email-bound invitation through the existing Share path. The invitation body (with its pairing relay) is
|
|
24
|
+
* encrypted under a fresh `share/<shareId>` key, registered as one path-bound, digested Share policy, and announced by
|
|
25
|
+
* the OpenCredentials service. Only the verified mailbox holder can open it. The bearer link is never returned.
|
|
26
|
+
*/
|
|
27
|
+
export declare function sendEmailInvitation(node: TinyCloudNode, profile: Profile, body: CourierInvitation, deps?: EmailInvitationDeps): Promise<{
|
|
28
|
+
shareId: string;
|
|
29
|
+
}>;
|
|
30
|
+
/** The three Share-receive steps; the defaults are node-sdk's. A seam so the proof lifecycle is testable without a Share deployment. */
|
|
31
|
+
export interface ShareReceiveOps {
|
|
32
|
+
request: typeof requestAgentShareEmailProof;
|
|
33
|
+
resume: typeof resumeAgentShareReceive;
|
|
34
|
+
complete: typeof completeAgentShareReceive;
|
|
35
|
+
}
|
|
36
|
+
export interface EmailReceiveDeps extends EmailInvitationDeps {
|
|
37
|
+
home?: string;
|
|
38
|
+
loadKey?: (home: string) => AgentKey;
|
|
39
|
+
readStdinLine?: () => Promise<string>;
|
|
40
|
+
out?: (text: string) => void;
|
|
41
|
+
err?: (text: string) => void;
|
|
42
|
+
receive?: ShareReceiveOps;
|
|
43
|
+
/** Test seam: how the profile's node is opened for the grant check. */
|
|
44
|
+
node?: (profile: Profile, home: string) => Promise<TinyCloudNode>;
|
|
45
|
+
}
|
|
46
|
+
/** True for a Share link (`/s/…`); Courier's own `/c/` links take the existing path. */
|
|
47
|
+
export declare function isShareLink(link: string): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Open an email-bound invitation with this agent's own Courier key. Step 1 asks OpenCredentials to mail an 8-digit code
|
|
50
|
+
* and stops; step 2 (`--code-stdin`) completes the proof, admits at the owner Node and decrypts the one invitation.
|
|
51
|
+
* Returns the invitation body, or `undefined` after step 1.
|
|
52
|
+
*
|
|
53
|
+
* The pending proof follows `credential acquire`: it is kept only while the witness says the same request can take
|
|
54
|
+
* another code (`EmailProofError.recoverable`), and deleted on a terminal failure, on any failure after the code was
|
|
55
|
+
* accepted, and on success.
|
|
56
|
+
*/
|
|
57
|
+
export declare function receiveEmailInvitation(link: string, withCode: boolean, deps?: EmailReceiveDeps): Promise<CourierInvitation | undefined>;
|
|
58
|
+
interface EnvelopeBindings {
|
|
59
|
+
invitationId: string;
|
|
60
|
+
shareId: string;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* The invitation id and share id in the SIGNED envelope's exact resource path, which Courier writes as
|
|
64
|
+
* `<PREFIX>/to/invite-<id>/envelope/<shareId>.json`. Anything else is not a Courier invitation.
|
|
65
|
+
*/
|
|
66
|
+
export declare function envelopeBindings(envelope: ShareEnvelopeV3): EnvelopeBindings;
|
|
67
|
+
/** The decrypted Share content must be an email invitation addressed to exactly the mailbox that was verified. */
|
|
68
|
+
export declare function invitationFromShareContent(text: string | undefined, address: string): CourierInvitation;
|
|
69
|
+
export {};
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
import { createHash, randomBytes } from 'node:crypto';
|
|
2
|
+
import { createInterface } from 'node:readline';
|
|
3
|
+
import { emailProofDescriptor } from '@tinycloud/node-sdk/credentials';
|
|
4
|
+
import { createFileEmailProofPendingStore } from '@tinycloud/node-sdk/credential-pending-store';
|
|
5
|
+
import { completeAgentShareReceive, requestAgentShareEmailProof, resumeAgentShareReceive } from '@tinycloud/node-sdk/share-receive';
|
|
6
|
+
import { publishEmailShareV3 } from '@tinycloud/node-sdk/share-publish';
|
|
7
|
+
import { deliverCredentialInvitation, prepareAddressedShare, ShareReceiveError } from '@tinycloud/share-sdk';
|
|
8
|
+
import { canonicalize, isEnvelopeDeliveryEmail } from '@tinycloud/share-envelope';
|
|
9
|
+
import { createLink, signerFromJwk } from '@tinycloud/share-envelope/links';
|
|
10
|
+
import { bareDid, holdsInvitationKeyAuthority } from './authority.js';
|
|
11
|
+
import { canonicalJson } from './canonical.js';
|
|
12
|
+
import { CourierError } from './errors.js';
|
|
13
|
+
import { PREFIX } from './keys.js';
|
|
14
|
+
import { holderFor, keepsPendingAfterFailure, mapEmailProofError, withStoreErrors } from './credential.js';
|
|
15
|
+
import { cmd } from './program.js';
|
|
16
|
+
import { courierNode } from './node.js';
|
|
17
|
+
import { loadKey, loadProfile, profileDir } from './profile.js';
|
|
18
|
+
import { joinedAlready, parseInvitation } from './invitation.js';
|
|
19
|
+
const DEFAULT_SHARE_ORIGIN = 'https://share.tinycloud.xyz';
|
|
20
|
+
const DEFAULT_LINKS_API = 'https://api.tinycloud.xyz';
|
|
21
|
+
/** The mail text is the Share service's; this label is the only part Courier supplies. */
|
|
22
|
+
const DOCUMENT_NAME = 'Courier conversation';
|
|
23
|
+
const DELIVERY_WINDOW_MS = 10 * 60_000;
|
|
24
|
+
const POLICY_ACTIONS = ['tinycloud.kv/get', 'tinycloud.kv/metadata'];
|
|
25
|
+
const envelopePath = (invitationId, shareId) => `${PREFIX}/to/invite-${invitationId}/envelope/${shareId}.json`;
|
|
26
|
+
export const newShareId = () => randomBytes(16).toString('hex');
|
|
27
|
+
/**
|
|
28
|
+
* Refuse BEFORE anything is created unless this grant holds key.create and decrypt on exactly `share/<shareId>`.
|
|
29
|
+
* Nothing here requests that authority: the grant only gains it from an owner approval for this key, which Courier has
|
|
30
|
+
* no interface for yet, so today this only passes for a grant that already names the generated id.
|
|
31
|
+
*/
|
|
32
|
+
export function requireInvitationKeyAuthority(node, profile, shareId) {
|
|
33
|
+
if (!profile.ownerDid || !profile.spaceId)
|
|
34
|
+
throw new CourierError('no-grant', 'No owner grant is installed.');
|
|
35
|
+
if (!holdsInvitationKeyAuthority(node.getVerifiedSessionCapabilities(), profile.ownerDid, shareId)) {
|
|
36
|
+
throw new CourierError('invite-authority-missing', "This Courier grant does not hold key.create and decrypt on this invitation's share key, so nothing was created: no pairing relay delegation, invitation state, Share key, link or email.");
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function canonicalOrigin(value, label) {
|
|
40
|
+
if (typeof value !== 'string')
|
|
41
|
+
throw new CourierError('share-config', `Share ${label} is unavailable.`);
|
|
42
|
+
let parsed;
|
|
43
|
+
try {
|
|
44
|
+
parsed = new URL(value);
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
throw new CourierError('share-config', `Share ${label} is invalid.`);
|
|
48
|
+
}
|
|
49
|
+
const loopback = parsed.hostname === '127.0.0.1' || parsed.hostname === 'localhost';
|
|
50
|
+
if ((parsed.protocol !== 'https:' && !(loopback && parsed.protocol === 'http:')) || parsed.origin !== value)
|
|
51
|
+
throw new CourierError('share-config', `Share ${label} is invalid.`);
|
|
52
|
+
return value;
|
|
53
|
+
}
|
|
54
|
+
/** The configured Share deployment: where the registry and the credentials service live. */
|
|
55
|
+
async function shareConfig(deps) {
|
|
56
|
+
const origin = canonicalOrigin(deps.shareOrigin ?? process.env.COURIER_SHARE_ORIGIN ?? DEFAULT_SHARE_ORIGIN, 'origin');
|
|
57
|
+
let response;
|
|
58
|
+
try {
|
|
59
|
+
response = await (deps.fetch ?? fetch)(`${origin}/.well-known/tinycloud-share/config.json`, {
|
|
60
|
+
headers: { accept: 'application/json' }, credentials: 'omit', redirect: 'error', referrerPolicy: 'no-referrer', signal: AbortSignal.timeout(10_000),
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
throw new CourierError('share-unavailable', 'The Share service is unavailable; no invitation was sent.');
|
|
65
|
+
}
|
|
66
|
+
if (!response.ok)
|
|
67
|
+
throw new CourierError('share-unavailable', 'The Share service is unavailable; no invitation was sent.');
|
|
68
|
+
const value = await response.json();
|
|
69
|
+
if (value.version !== 'tinycloud.share/config-v2')
|
|
70
|
+
throw new CourierError('share-config', 'Share public config version is unsupported.');
|
|
71
|
+
return {
|
|
72
|
+
shareOrigin: canonicalOrigin(value.shareOrigin, 'origin'),
|
|
73
|
+
registryOrigin: canonicalOrigin(value.registryOrigin, 'registry origin'),
|
|
74
|
+
credentialsOrigin: canonicalOrigin(value.credentialsOrigin, 'credentials origin'),
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/** Canonical form of a recipient address; Share and OpenCredentials bind the invitation to exactly this string. */
|
|
78
|
+
export function canonicalInviteEmail(address) {
|
|
79
|
+
try {
|
|
80
|
+
const prepared = prepareAddressedShare({ target: { kind: 'email', address }, actions: ['read'], policyActions: POLICY_ACTIONS, filename: 'invitation.json' });
|
|
81
|
+
if (prepared.target.kind === 'email')
|
|
82
|
+
return prepared.target.address;
|
|
83
|
+
}
|
|
84
|
+
catch { /* fall through to the typed refusal */ }
|
|
85
|
+
throw new CourierError('unsupported-recipient', 'Use a single plain email address, for example name@example.com.');
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Send one email-bound invitation through the existing Share path. The invitation body (with its pairing relay) is
|
|
89
|
+
* encrypted under a fresh `share/<shareId>` key, registered as one path-bound, digested Share policy, and announced by
|
|
90
|
+
* the OpenCredentials service. Only the verified mailbox holder can open it. The bearer link is never returned.
|
|
91
|
+
*/
|
|
92
|
+
export async function sendEmailInvitation(node, profile, body, deps = {}) {
|
|
93
|
+
const email = body.recipient;
|
|
94
|
+
if (body.mode !== 'email' || email === undefined || email !== canonicalInviteEmail(email))
|
|
95
|
+
throw new CourierError('bad-invitation', 'Not an email invitation.');
|
|
96
|
+
if (!profile.ownerDid || !profile.spaceId)
|
|
97
|
+
throw new CourierError('no-grant', 'No owner grant is installed.');
|
|
98
|
+
const shareId = (deps.shareId ?? newShareId)();
|
|
99
|
+
if (!holdsInvitationKeyAuthority(node.getVerifiedSessionCapabilities(), profile.ownerDid, shareId)) {
|
|
100
|
+
// A direct caller that already ran `issueInvitation` has stored its state and issued the pairing relay delegation.
|
|
101
|
+
// `cmdInvite` checks first (`requireInvitationKeyAuthority`), so it never reaches this branch.
|
|
102
|
+
throw new CourierError('invite-authority-missing', `This Courier grant does not hold key.create and decrypt on this invitation's share key, so no Share key, link or email was created or sent. Already created before this check: a pairing relay delegation (expires ${body.expiresAt}) and invitation state ${body.id}, a record that stays in your Courier space (nothing deletes it).`);
|
|
103
|
+
}
|
|
104
|
+
const fetchFn = deps.fetch ?? fetch;
|
|
105
|
+
const config = await shareConfig(deps);
|
|
106
|
+
const identity = await node.activeNodeIdentity();
|
|
107
|
+
const descriptor = await emailProofDescriptor(email, { fetch: deps.fetch });
|
|
108
|
+
const keyPath = `share/${shareId}`;
|
|
109
|
+
const network = node.getDefaultEncryptionNetworkId();
|
|
110
|
+
await node.publishActiveNodeLocation(config.registryOrigin, fetchFn);
|
|
111
|
+
await node.keys.createKey(keyPath);
|
|
112
|
+
const plaintext = new TextEncoder().encode(canonicalJson(body));
|
|
113
|
+
const encrypted = await node.encryption.encryptToNetwork(network, plaintext, { keyPath, metadata: { contentType: 'application/json' } });
|
|
114
|
+
if (!encrypted.ok || encrypted.data.networkId !== network || encrypted.data.keyPath !== keyPath)
|
|
115
|
+
throw new CourierError('encrypt-failed', 'The invitation could not be encrypted.');
|
|
116
|
+
const storedBytes = new TextEncoder().encode(canonicalize(encrypted.data));
|
|
117
|
+
const path = envelopePath(body.id, shareId);
|
|
118
|
+
const stored = await node.kv.put(path, storedBytes, { contentType: 'application/vnd.tinycloud.encrypted-envelope+json' });
|
|
119
|
+
if (!stored.ok)
|
|
120
|
+
throw new CourierError('store-failed', 'The encrypted invitation could not be stored.');
|
|
121
|
+
const prepared = prepareAddressedShare({ target: { kind: 'email', address: email }, actions: ['read'], policyActions: POLICY_ACTIONS, filename: 'invitation.json' });
|
|
122
|
+
if (prepared.target.kind !== 'email')
|
|
123
|
+
throw new CourierError('unsupported-recipient', 'Use a single plain email address.');
|
|
124
|
+
const published = await publishEmailShareV3({
|
|
125
|
+
shareId, shareOrigin: config.shareOrigin, nodeOrigin: identity.origin, nodeAudience: identity.nodeDid, enforcerDid: identity.nodeDid, spaceId: profile.spaceId,
|
|
126
|
+
target: prepared.target, resource: { kind: 'exact', path }, actions: ['read'], policyActions: POLICY_ACTIONS,
|
|
127
|
+
contentSource: {
|
|
128
|
+
shareId, kvResource: `${profile.spaceId}/kv/${path}`, selector: 'exact', encryptionNetwork: encrypted.data.networkId, encryptionKeyPath: keyPath,
|
|
129
|
+
// A path-bound source registers the digest of the RAW wrapped-key bytes.
|
|
130
|
+
encryptedSymmetricKeyDigestHex: createHash('sha256').update(Buffer.from(encrypted.data.encryptedSymmetricKey, 'base64')).digest('hex'),
|
|
131
|
+
keyVersion: encrypted.data.keyVersion, mode: 'immutable', initialCiphertextDigestHex: createHash('sha256').update(storedBytes).digest('hex'),
|
|
132
|
+
},
|
|
133
|
+
...(isEnvelopeDeliveryEmail(email) ? { deliveryEmail: email } : {}),
|
|
134
|
+
filename: 'invitation.json', mediaType: 'application/json', byteLength: plaintext.byteLength, expiresAt: new Date(body.expiresAt),
|
|
135
|
+
authority: {
|
|
136
|
+
ownerDid: node.credentialHolderDid,
|
|
137
|
+
createOwnerRoot: (request) => node.createUnifiedOwnerRoot(request),
|
|
138
|
+
sign: (bytes) => node.signSessionBytes(bytes),
|
|
139
|
+
registerPolicy: (request) => node.registerPolicy(request),
|
|
140
|
+
},
|
|
141
|
+
credentialDescriptor: descriptor, issuerDid: descriptor.issuer.did, issuerKid: descriptor.issuer.kid,
|
|
142
|
+
});
|
|
143
|
+
const material = published.deliveryMaterial;
|
|
144
|
+
if (material === undefined)
|
|
145
|
+
throw new CourierError('share-publish-failed', 'The Share service returned no delivery material.');
|
|
146
|
+
const now = new Date(deps.now?.() ?? Date.now());
|
|
147
|
+
const short = await createLink({
|
|
148
|
+
type: 'share', sealed: { blob: Buffer.from(material.sealedEnvelope, 'base64url'), key: Buffer.from(material.envelopeKey, 'base64url') },
|
|
149
|
+
issuerKey: signerFromJwk(loadKey().jwk), apiOrigin: deps.linksApiOrigin ?? process.env.COURIER_LINKS_API_ORIGIN ?? DEFAULT_LINKS_API,
|
|
150
|
+
linkOrigin: new URL(published.url).origin, expiresAt: new Date(published.metadata.expiresAt), now, fetch: fetchFn,
|
|
151
|
+
});
|
|
152
|
+
const receipt = await node.authorizeShareDeliveryV3({
|
|
153
|
+
envelope: material.envelope, resourcePath: path, recipientEmail: email, shareUrl: short.link,
|
|
154
|
+
documentName: DOCUMENT_NAME, expiresAt: new Date(now.getTime() + DELIVERY_WINDOW_MS).toISOString(), deliveryAudience: config.credentialsOrigin,
|
|
155
|
+
idempotencyKey: `courier-invitation-${body.id}`, trustedOrigins: [config.shareOrigin],
|
|
156
|
+
});
|
|
157
|
+
await deliverCredentialInvitation({
|
|
158
|
+
credentialsOrigin: config.credentialsOrigin, receipt: { request: { ...receipt.request }, admission: { ...receipt.admission }, proof: { ...receipt.proof } }, shareUrl: short.link, fetchFn,
|
|
159
|
+
});
|
|
160
|
+
return { shareId };
|
|
161
|
+
}
|
|
162
|
+
/** True for a Share link (`/s/…`); Courier's own `/c/` links take the existing path. */
|
|
163
|
+
export function isShareLink(link) {
|
|
164
|
+
try {
|
|
165
|
+
return new URL(link).pathname.startsWith('/s/');
|
|
166
|
+
}
|
|
167
|
+
catch {
|
|
168
|
+
return false;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Open an email-bound invitation with this agent's own Courier key. Step 1 asks OpenCredentials to mail an 8-digit code
|
|
173
|
+
* and stops; step 2 (`--code-stdin`) completes the proof, admits at the owner Node and decrypts the one invitation.
|
|
174
|
+
* Returns the invitation body, or `undefined` after step 1.
|
|
175
|
+
*
|
|
176
|
+
* The pending proof follows `credential acquire`: it is kept only while the witness says the same request can take
|
|
177
|
+
* another code (`EmailProofError.recoverable`), and deleted on a terminal failure, on any failure after the code was
|
|
178
|
+
* accepted, and on success.
|
|
179
|
+
*/
|
|
180
|
+
export async function receiveEmailInvitation(link, withCode, deps = {}) {
|
|
181
|
+
const out = deps.out ?? ((text) => { process.stdout.write(text); });
|
|
182
|
+
const err = deps.err ?? ((text) => { process.stderr.write(text); });
|
|
183
|
+
const home = deps.home ?? profileDir();
|
|
184
|
+
const ops = deps.receive ?? { request: requestAgentShareEmailProof, resume: resumeAgentShareReceive, complete: completeAgentShareReceive };
|
|
185
|
+
const config = await shareConfig(deps);
|
|
186
|
+
const holder = holderFor((deps.loadKey ?? loadKey)(home));
|
|
187
|
+
const store = createFileEmailProofPendingStore({ home });
|
|
188
|
+
const options = {
|
|
189
|
+
holder, expectedOrigin: config.shareOrigin, registryOrigin: config.registryOrigin, fetch: deps.fetch, now: deps.now,
|
|
190
|
+
apiOrigin: deps.linksApiOrigin ?? process.env.COURIER_LINKS_API_ORIGIN ?? DEFAULT_LINKS_API,
|
|
191
|
+
};
|
|
192
|
+
if (!withCode) {
|
|
193
|
+
let requested;
|
|
194
|
+
try {
|
|
195
|
+
requested = await ops.request(link, options);
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
throw mapReceiveError(error, 'request');
|
|
199
|
+
}
|
|
200
|
+
await withStoreErrors(() => store.put(requested.proof));
|
|
201
|
+
out(JSON.stringify({ status: 'code-sent', address: requested.proof.address }) + '\n');
|
|
202
|
+
err(`Verification code sent to ${requested.proof.address}. Run \`${cmd('join <link> --consent --code-stdin')}\` and enter the 8-digit code.\n`);
|
|
203
|
+
return undefined;
|
|
204
|
+
}
|
|
205
|
+
const code = ((await (deps.readStdinLine ?? readStdinFirstLine)()) ?? '').trim();
|
|
206
|
+
if (!/^\d{8}$/.test(code))
|
|
207
|
+
throw new CourierError('credential.code.CODE_INVALID', 'Verification code must be 8 digits.');
|
|
208
|
+
let pending;
|
|
209
|
+
try {
|
|
210
|
+
pending = await ops.resume(link, (address) => withStoreErrors(() => store.findLive(address, new Date(deps.now?.() ?? Date.now()))), options);
|
|
211
|
+
}
|
|
212
|
+
catch (error) {
|
|
213
|
+
throw mapReceiveError(error, 'session');
|
|
214
|
+
}
|
|
215
|
+
// Refuse everything local and everything the signed envelope already says BEFORE the one-time code is spent.
|
|
216
|
+
const bindings = await preflight(pending.envelope, deps, home);
|
|
217
|
+
let content;
|
|
218
|
+
try {
|
|
219
|
+
content = await ops.complete(pending, code, options);
|
|
220
|
+
}
|
|
221
|
+
catch (error) {
|
|
222
|
+
if (keepsPendingAfterFailure(error)) {
|
|
223
|
+
const mapped = mapEmailProofError(error, 'credential');
|
|
224
|
+
throw new CourierError(mapped.code, `${mapped.message} Retry with \`${cmd('join <link> --consent --code-stdin')}\` before ${pending.proof.expiresAt}.`);
|
|
225
|
+
}
|
|
226
|
+
// Terminal, or after the code was accepted: this proof is spent.
|
|
227
|
+
await withStoreErrors(() => store.delete(pending.proof.requestId));
|
|
228
|
+
throw mapReceiveError(error, 'credential');
|
|
229
|
+
}
|
|
230
|
+
await withStoreErrors(() => store.delete(pending.proof.requestId));
|
|
231
|
+
const body = invitationFromShareContent(content.text, pending.proof.address);
|
|
232
|
+
assertBodyMatchesEnvelope(body, pending.envelope, bindings);
|
|
233
|
+
// Another process may have joined while the code was out.
|
|
234
|
+
if (joinedAlready(body.id, home))
|
|
235
|
+
throw new CourierError('invite-used', 'Invitation already joined. No other session was activated.');
|
|
236
|
+
return body;
|
|
237
|
+
}
|
|
238
|
+
const ENVELOPE_PATH_PREFIX = `${PREFIX}/to/invite-`;
|
|
239
|
+
const ENVELOPE_PATH_TAIL = /^([0-9A-HJKMNP-TV-Z]{26})\/envelope\/([a-f0-9]{32})\.json$/;
|
|
240
|
+
/**
|
|
241
|
+
* The invitation id and share id in the SIGNED envelope's exact resource path, which Courier writes as
|
|
242
|
+
* `<PREFIX>/to/invite-<id>/envelope/<shareId>.json`. Anything else is not a Courier invitation.
|
|
243
|
+
*/
|
|
244
|
+
export function envelopeBindings(envelope) {
|
|
245
|
+
const { resource } = envelope;
|
|
246
|
+
const tail = resource.kind === 'exact' && resource.path.startsWith(ENVELOPE_PATH_PREFIX)
|
|
247
|
+
? ENVELOPE_PATH_TAIL.exec(resource.path.slice(ENVELOPE_PATH_PREFIX.length))
|
|
248
|
+
: null;
|
|
249
|
+
if (!tail || tail[2] !== envelope.shareId)
|
|
250
|
+
throw new CourierError('bad-invitation', 'This share is not a Courier invitation.');
|
|
251
|
+
return { invitationId: tail[1], shareId: tail[2] };
|
|
252
|
+
}
|
|
253
|
+
/**
|
|
254
|
+
* What can be refused before the code is entered. The body is encrypted, so only the signed envelope and local state
|
|
255
|
+
* are available here: its invitation id, node origin, issuer (policy owner) and expiry, the profile, the grant, the node
|
|
256
|
+
* and whether this invitation was joined. What stays unknown until decrypt: the session, the pairing relay and the pairing
|
|
257
|
+
* artifact; `assertBodyMatchesEnvelope` ties the body to the envelope afterwards.
|
|
258
|
+
*/
|
|
259
|
+
async function preflight(envelope, deps, home) {
|
|
260
|
+
const bindings = envelopeBindings(envelope);
|
|
261
|
+
if (Date.parse(envelope.expiry) <= (deps.now?.() ?? Date.now()))
|
|
262
|
+
throw new CourierError('invite-expired', 'Invitation expired; no code was entered and nothing was changed.');
|
|
263
|
+
const profile = loadProfile(home);
|
|
264
|
+
await (deps.node ?? courierNode)(profile, home);
|
|
265
|
+
if (new URL(envelope.target.origin).origin !== new URL(profile.host).origin) {
|
|
266
|
+
throw new CourierError('bad-invitation', 'Invitation uses another node host; no code was entered and nothing was changed.');
|
|
267
|
+
}
|
|
268
|
+
if (bareDid(envelope.policy.ownerDid) === profile.courierDid)
|
|
269
|
+
throw new CourierError('bad-invitation', 'Refusing to join this agent identity.');
|
|
270
|
+
if (joinedAlready(bindings.invitationId, home))
|
|
271
|
+
throw new CourierError('invite-used', 'Invitation already joined; no code was entered.');
|
|
272
|
+
return bindings;
|
|
273
|
+
}
|
|
274
|
+
/** The decrypted body must be the one the signed envelope described. */
|
|
275
|
+
function assertBodyMatchesEnvelope(body, envelope, bindings) {
|
|
276
|
+
const same = body.id === bindings.invitationId
|
|
277
|
+
&& body.host === new URL(envelope.target.origin).origin
|
|
278
|
+
&& body.issuer === bareDid(envelope.policy.ownerDid)
|
|
279
|
+
&& Date.parse(body.expiresAt) === Date.parse(envelope.expiry)
|
|
280
|
+
// Canonical resource identifiers, used verbatim as a KV space path: no case folding.
|
|
281
|
+
&& body.artifact.spaceId === envelope.target.spaceId;
|
|
282
|
+
if (!same)
|
|
283
|
+
throw new CourierError('bad-invitation', 'The invitation does not match the share that carried it.');
|
|
284
|
+
}
|
|
285
|
+
/** Share-link errors keep their `share.<code>`; witness errors map like `credential acquire`. */
|
|
286
|
+
function mapReceiveError(error, fallbackStep) {
|
|
287
|
+
if (error instanceof CourierError)
|
|
288
|
+
return error;
|
|
289
|
+
if (error instanceof ShareReceiveError)
|
|
290
|
+
return new CourierError(`share.${error.code}`, error.message);
|
|
291
|
+
return mapEmailProofError(error, fallbackStep);
|
|
292
|
+
}
|
|
293
|
+
/** The decrypted Share content must be an email invitation addressed to exactly the mailbox that was verified. */
|
|
294
|
+
export function invitationFromShareContent(text, address) {
|
|
295
|
+
if (text === undefined)
|
|
296
|
+
throw new CourierError('bad-invitation', 'The shared content is not a Courier invitation.');
|
|
297
|
+
let value;
|
|
298
|
+
try {
|
|
299
|
+
value = JSON.parse(text);
|
|
300
|
+
}
|
|
301
|
+
catch {
|
|
302
|
+
throw new CourierError('bad-invitation', 'The shared content is not a Courier invitation.');
|
|
303
|
+
}
|
|
304
|
+
// parseInvitation lives in invitation.ts, which imports this module; it is only called at runtime.
|
|
305
|
+
const body = parseInvitation(value);
|
|
306
|
+
if (body.mode !== 'email' || body.recipient !== address)
|
|
307
|
+
throw new CourierError('bad-invitation', 'The invitation is not addressed to the verified mailbox.');
|
|
308
|
+
return body;
|
|
309
|
+
}
|
|
310
|
+
async function readStdinFirstLine() {
|
|
311
|
+
const rl = createInterface({ input: process.stdin, crlfDelay: Infinity });
|
|
312
|
+
for await (const line of rl) {
|
|
313
|
+
rl.close();
|
|
314
|
+
return line;
|
|
315
|
+
}
|
|
316
|
+
return '';
|
|
317
|
+
}
|
|
318
|
+
//# sourceMappingURL=email-invitation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-invitation.js","sourceRoot":"","sources":["../src/email-invitation.ts"],"names":[],"mappings":"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"}
|
package/dist/flags.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { ParsedArgs } from './args.js';
|
|
2
|
+
/**
|
|
3
|
+
* The flags each command reads (flags a command refuses with its own message are listed too, so that message is kept).
|
|
4
|
+
* `help` is accepted everywhere. A flag outside the list is a usage error before the command reads anything.
|
|
5
|
+
*/
|
|
6
|
+
export declare const COMMAND_FLAGS: Record<string, readonly string[]>;
|
|
7
|
+
/** Refuse a flag `command` does not read. Runs before the command touches stdin, files or the profile. */
|
|
8
|
+
export declare function assertKnownFlags(command: string, args: ParsedArgs): void;
|
package/dist/flags.js
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { CourierError } from './errors.js';
|
|
2
|
+
const INIT = ['request', 'wait', 'timeout', 'grant-file', 'paste', 'resume', 'rotate-key', 'host', 'openkey-host', 'openkey-api-host', 'label', 'handle', 'expiry', 'key', 'key-file', 'force'];
|
|
3
|
+
const TEXT = ['text', 'file', 'stdin'];
|
|
4
|
+
const JOIN = ['consent', 'wait'];
|
|
5
|
+
/**
|
|
6
|
+
* The flags each command reads (flags a command refuses with its own message are listed too, so that message is kept).
|
|
7
|
+
* `help` is accepted everywhere. A flag outside the list is a usage error before the command reads anything.
|
|
8
|
+
*/
|
|
9
|
+
export const COMMAND_FLAGS = {
|
|
10
|
+
init: INIT,
|
|
11
|
+
start: ['new', 'session', 'peer', 'link', ...JOIN],
|
|
12
|
+
invite: ['session', 'mode', 'recipient', 'peer', ...JOIN],
|
|
13
|
+
join: ['link', 'peer', ...JOIN],
|
|
14
|
+
manifest: [],
|
|
15
|
+
pair: ['file', 'stdin', 'call-me', 'as', 'force', 'renew-artifact'],
|
|
16
|
+
revoke: [],
|
|
17
|
+
send: ['new', 'thread', 'intent', 'ask', 'constraint', 'reply-to', 'task-ref', ...TEXT],
|
|
18
|
+
inbox: ['json', 'peek'],
|
|
19
|
+
read: ['peer', 'json'],
|
|
20
|
+
task: ['peer', 'thread', 'state', 'note', 'artifact', 'ask', 'request-message'],
|
|
21
|
+
request: ['task', 'why', 'peer', 'verb', 'target', 'summary', 'head-sha', 'base', 'risk', 'action'],
|
|
22
|
+
orders: ['json'],
|
|
23
|
+
watch: ['wake', 'exec', 'unguarded', 'env-pass', 'cwd', 'debounce', 'poll', 'ticket', 'wake-budget', 'wake-timeout', 'notify', 'notify-exec',
|
|
24
|
+
'once', 'paseo-bin', 'paseo-mode', 'paseo-provider', 'claude-allow', 'claude-bin', 'claude-settings', 'install-launchd', 'install-systemd', 'dry-run', 'name'],
|
|
25
|
+
intake: ['queue-dir', 'done-dir', 'overflow-dir', 'state-dir', 'peers-file', 'peers-owner', 'interval', 'once', 'init-from-now', 'force'],
|
|
26
|
+
outbox: ['thread', 'new', 'outbox-dir', 'pipe', 'socket-group', 'peers-file', 'peers-owner', 'sent-dir', 'once', 'dry-run', ...TEXT],
|
|
27
|
+
approval: ['verb', 'target', 'head-sha', 'base', 'peek', 'action'],
|
|
28
|
+
pause: ['reason'],
|
|
29
|
+
resume: [],
|
|
30
|
+
credential: ['email', 'code', 'code-stdin'],
|
|
31
|
+
guard: ['out', 'claude-settings'],
|
|
32
|
+
'run-approved': ['test-owner-root'],
|
|
33
|
+
broker: ['gh-bin', 'test-token', 'test-owner-root'],
|
|
34
|
+
};
|
|
35
|
+
/** Refuse a flag `command` does not read. Runs before the command touches stdin, files or the profile. */
|
|
36
|
+
export function assertKnownFlags(command, args) {
|
|
37
|
+
const known = COMMAND_FLAGS[command];
|
|
38
|
+
if (!known)
|
|
39
|
+
return;
|
|
40
|
+
for (const name of args.flags.keys()) {
|
|
41
|
+
if (name === 'help' || known.includes(name))
|
|
42
|
+
continue;
|
|
43
|
+
throw new CourierError('usage', `Unknown flag --${name} for ${command}.${known.length ? ` Accepted: ${known.map((f) => `--${f}`).join(' ')}.` : ' It takes no flags.'}`);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=flags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"flags.js","sourceRoot":"","sources":["../src/flags.ts"],"names":[],"mappings":"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"}
|
package/dist/grant.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createServer } from 'node:http';
|
|
2
2
|
import { createInterface } from 'node:readline';
|
|
3
|
-
import { TinyCloudNode } from '@tinycloud/node-sdk';
|
|
3
|
+
import { TinyCloudNode, publicJwk } from '@tinycloud/node-sdk';
|
|
4
4
|
import { cmd, tcCmd } from './program.js';
|
|
5
5
|
import { CourierError } from './errors.js';
|
|
6
6
|
import { AGENT_GRANT, AGENT_GRANT_EXPIRY, COURIER_SPACE, k } from './keys.js';
|
|
@@ -15,8 +15,7 @@ export function openKeyDelegateUrl(request) {
|
|
|
15
15
|
const params = new URLSearchParams({ did: request.did, host: request.host, reason: request.reason, expiry: request.expiry ?? AGENT_GRANT_EXPIRY, protocolVersion: '1' });
|
|
16
16
|
if (request.callback)
|
|
17
17
|
params.set('callback', request.callback);
|
|
18
|
-
|
|
19
|
-
params.set('jwk', Buffer.from(JSON.stringify(publicJwk)).toString('base64url'));
|
|
18
|
+
params.set('jwk', Buffer.from(JSON.stringify(publicJwk(request.publicJwk))).toString('base64url'));
|
|
20
19
|
params.set('permissions', Buffer.from(JSON.stringify({ permissions: request.permissions, reason: request.reason })).toString('base64url'));
|
|
21
20
|
return `${request.openkeyHost.replace(/\/$/, '')}/delegate?${params}`;
|
|
22
21
|
}
|
package/dist/grant.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grant.js","sourceRoot":"","sources":["../src/grant.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"grant.js","sourceRoot":"","sources":["../src/grant.ts"],"names":[],"mappings":"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"}
|
package/dist/inbox.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type PeerReadError } from './thread.js';
|
|
1
2
|
import type { TinyCloudNode } from '@tinycloud/node-sdk';
|
|
2
3
|
import type { StoredPeer } from './profile.js';
|
|
3
4
|
export type KV = ReturnType<TinyCloudNode['kvForSpace']>;
|
|
@@ -49,5 +50,5 @@ export declare function collectInbound(input: {
|
|
|
49
50
|
kvFor(peer: StoredPeer): Promise<KV>;
|
|
50
51
|
}): Promise<InboundCollection>;
|
|
51
52
|
export declare function commitReceipts(selfKv: KV, pending: Map<string, PendingDelivery[]>): Promise<void>;
|
|
52
|
-
export declare function renderInboxText(items: readonly InboundItem[]): string;
|
|
53
|
+
export declare function renderInboxText(items: readonly InboundItem[], errors?: readonly PeerReadError[]): string;
|
|
53
54
|
export declare function writeOut(value: string): Promise<void>;
|