run402-mcp 3.3.3 → 3.3.5

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 (35) hide show
  1. package/dist/index.js +9 -9
  2. package/dist/index.js.map +1 -1
  3. package/dist/tools/jobs.d.ts +2 -2
  4. package/dist/tools/jobs.d.ts.map +1 -1
  5. package/dist/tools/jobs.js +2 -4
  6. package/dist/tools/jobs.js.map +1 -1
  7. package/dist/tools/orgs.d.ts.map +1 -1
  8. package/dist/tools/orgs.js +22 -6
  9. package/dist/tools/orgs.js.map +1 -1
  10. package/dist/tools/transfers.d.ts +9 -5
  11. package/dist/tools/transfers.d.ts.map +1 -1
  12. package/dist/tools/transfers.js +66 -11
  13. package/dist/tools/transfers.js.map +1 -1
  14. package/package.json +1 -1
  15. package/sdk/README.md +10 -1
  16. package/sdk/dist/namespaces/admin.d.ts +3 -3
  17. package/sdk/dist/namespaces/admin.js +3 -3
  18. package/sdk/dist/namespaces/functions.d.ts.map +1 -1
  19. package/sdk/dist/namespaces/functions.js +6 -2
  20. package/sdk/dist/namespaces/functions.js.map +1 -1
  21. package/sdk/dist/namespaces/jobs.d.ts +5 -2
  22. package/sdk/dist/namespaces/jobs.d.ts.map +1 -1
  23. package/sdk/dist/namespaces/jobs.js.map +1 -1
  24. package/sdk/dist/namespaces/operator.d.ts +3 -3
  25. package/sdk/dist/namespaces/operator.d.ts.map +1 -1
  26. package/sdk/dist/namespaces/org.d.ts +6 -4
  27. package/sdk/dist/namespaces/org.d.ts.map +1 -1
  28. package/sdk/dist/namespaces/org.js +6 -4
  29. package/sdk/dist/namespaces/org.js.map +1 -1
  30. package/sdk/dist/namespaces/org.types.d.ts +11 -4
  31. package/sdk/dist/namespaces/org.types.d.ts.map +1 -1
  32. package/sdk/dist/namespaces/transfers.d.ts +85 -22
  33. package/sdk/dist/namespaces/transfers.d.ts.map +1 -1
  34. package/sdk/dist/namespaces/transfers.js +56 -41
  35. package/sdk/dist/namespaces/transfers.js.map +1 -1
@@ -1,16 +1,18 @@
1
1
  /**
2
- * `transfers` namespace — the unified project-transfer noun (v1.93+).
2
+ * `transfers` namespace — the unified project-transfer noun (v1.93+;
3
+ * owned-org recipient shape v1.96+).
3
4
  *
4
5
  * Exposed as `r.admin.transfers.*`. Project transfer is ONE capability,
5
6
  * body-discriminated by recipient kind: a wallet recipient (`toWallet`, SIWX
6
- * bilateral signing) or an email recipient (`toEmail`, the recipient claims
7
- * into an org). Both ride the same `/transfers` surface there is no separate
8
- * `/handoffs` noun (the gateway removed it in `unify-project-transfer-surface`).
7
+ * bilateral signing), an email recipient (`toEmail`, the recipient claims into
8
+ * an org), or an owned org recipient (`toOrgId`, same-actor org move). All ride
9
+ * the same `/transfers` surface there is no separate `/handoffs` noun (the
10
+ * gateway removed it in `unify-project-transfer-surface`).
9
11
  *
10
12
  * Gateway endpoints:
11
- * POST /projects/v1/:project_id/transfers — initiate; body { to_wallet } XOR { to_email }
12
- * GET /agent/v1/transfers/incoming — inbox (both kinds, unioned)
13
- * GET /agent/v1/transfers/outgoing — outbox (both kinds, unioned)
13
+ * POST /projects/v1/:project_id/transfers — initiate; body { to_wallet } XOR { to_email } XOR { to_org_id }
14
+ * GET /agent/v1/transfers/incoming — inbox (pending kinds, unioned)
15
+ * GET /agent/v1/transfers/outgoing — outbox (pending kinds, unioned)
14
16
  * GET /agent/v1/transfers/:transfer_id — preview (kind-agnostic)
15
17
  * POST /agent/v1/transfers/:transfer_id/accept — WALLET completion (recipient SIWX-signs)
16
18
  * POST /agent/v1/transfers/:transfer_id/claim — EMAIL completion (recipient claims into an org)
@@ -29,7 +31,7 @@ export type TransferBillingPolicy = "migrate";
29
31
  export type TransferStatus = "pending" | "accepted" | "cancelled" | "expired";
30
32
  export type TransferCancelledBy = "from_wallet" | "to_wallet" | "system";
31
33
  /** Which kind of recipient a transfer row is addressed to. */
32
- export type RecipientKind = "wallet" | "email";
34
+ export type RecipientKind = "wallet" | "email" | "org";
33
35
  /** Initiate a transfer addressed to a wallet (two-party SIWX completion via `accept`). */
34
36
  export interface InitiateWalletTransferInput {
35
37
  /** Project id to transfer. Caller must currently own/admin it (gateway re-checks against fresh DB, not cache). */
@@ -38,6 +40,8 @@ export interface InitiateWalletTransferInput {
38
40
  toWallet: string;
39
41
  /** Mutually exclusive with {@link InitiateWalletTransferInput.toWallet}; not allowed on the wallet path. */
40
42
  toEmail?: never;
43
+ /** Mutually exclusive with {@link InitiateWalletTransferInput.toWallet}; not allowed on the wallet path. */
44
+ toOrgId?: never;
41
45
  /**
42
46
  * Billing policy. Defaults to `"migrate"`. Phase 1A only supports
43
47
  * `"migrate"`; future phases may add `"inherit"` as a separate spec.
@@ -58,6 +62,8 @@ export interface InitiateEmailTransferInput {
58
62
  toEmail: string;
59
63
  /** Mutually exclusive with {@link InitiateEmailTransferInput.toEmail}; not allowed on the email path. */
60
64
  toWallet?: never;
65
+ /** Mutually exclusive with {@link InitiateEmailTransferInput.toEmail}; not allowed on the email path. */
66
+ toOrgId?: never;
61
67
  /** Optional note shown to the recipient (HTML-escaped server-side). */
62
68
  message?: string;
63
69
  /**
@@ -76,8 +82,30 @@ export interface InitiateEmailTransferInput {
76
82
  /** KySigned record id is wallet-path only; not allowed on the email path. */
77
83
  kysignedRecordId?: never;
78
84
  }
79
- /** Inputs to `r.admin.transfers.initiate(...)` wallet XOR email. */
80
- export type InitiateTransferInput = InitiateWalletTransferInput | InitiateEmailTransferInput;
85
+ /** Initiate an immediate move to an organization the caller already owns. */
86
+ export interface InitiateOrgTransferInput {
87
+ /** Project id to transfer. Caller must be an active owner of the source org. */
88
+ projectId: string;
89
+ /**
90
+ * Destination organization id. The first gateway release is same-actor only:
91
+ * caller must be an active owner of both source and destination orgs.
92
+ */
93
+ toOrgId: string;
94
+ /** Mutually exclusive with {@link InitiateOrgTransferInput.toOrgId}; not allowed on the org path. */
95
+ toWallet?: never;
96
+ /** Mutually exclusive with {@link InitiateOrgTransferInput.toOrgId}; not allowed on the org path. */
97
+ toEmail?: never;
98
+ /** Optional free-text note recorded with the transfer audit row. */
99
+ message?: string;
100
+ /** Billing policy is wallet-path only; not allowed on the org path. */
101
+ billingPolicy?: never;
102
+ /** KySigned record id is wallet-path only; not allowed on the org path. */
103
+ kysignedRecordId?: never;
104
+ /** Retention is an email-only opt-in; not allowed on the org path. */
105
+ retainCollaborator?: never;
106
+ }
107
+ /** Inputs to `r.admin.transfers.initiate(...)` — wallet XOR email XOR org. */
108
+ export type InitiateTransferInput = InitiateWalletTransferInput | InitiateEmailTransferInput | InitiateOrgTransferInput;
81
109
  /** Result of a wallet-addressed `initiate`. */
82
110
  export interface InitiateTransferResult {
83
111
  transfer_id: string;
@@ -100,6 +128,29 @@ export interface InitiateEmailTransferResult {
100
128
  to_email: string;
101
129
  expires_at: string;
102
130
  }
131
+ /**
132
+ * Result of an owned-org `initiate`. Same-actor org moves complete
133
+ * synchronously in the first gateway release and return project keys so the
134
+ * caller can continue operating the project without a follow-up fetch.
135
+ */
136
+ export interface InitiateOrgTransferResult {
137
+ status: "accepted";
138
+ project_id: string;
139
+ to_organization_id: string;
140
+ /** Echo of the requested org id when a gateway chooses the shorter wire key. */
141
+ to_org_id?: string;
142
+ /** Present when the gateway materializes an audit transfer row. */
143
+ transfer_id?: string;
144
+ /** Present when the gateway returns the completion timestamp inline. */
145
+ completed_at?: string;
146
+ anon_key: string;
147
+ service_key: string;
148
+ secrets_rotation_advised?: true;
149
+ secret_names_inherited?: string[];
150
+ secrets_count_inherited?: number;
151
+ github_repo_note?: string;
152
+ [key: string]: unknown;
153
+ }
103
154
  export interface AcceptTransferResult {
104
155
  project_id: string;
105
156
  from_wallet: string;
@@ -126,9 +177,10 @@ export interface CancelTransferResult {
126
177
  }
127
178
  /**
128
179
  * Summary row used in `/agent/v1/transfers/incoming` and `/outgoing`. The list
129
- * is kind-agnostic: `recipient_kind` discriminates wallet vs email rows. Wallet
130
- * rows carry `from_wallet`/`to_wallet`; email rows carry `to_email` +
131
- * `from_organization_id`.
180
+ * is kind-agnostic: `recipient_kind` discriminates wallet, email, and future
181
+ * org rows. Wallet rows carry `from_wallet`/`to_wallet`; email rows carry
182
+ * `to_email` + `from_organization_id`; future org rows carry `to_org_id` /
183
+ * `to_organization_id`.
132
184
  */
133
185
  export interface TransferSummary {
134
186
  transfer_id: string;
@@ -152,6 +204,10 @@ export interface TransferSummary {
152
204
  to_email?: string;
153
205
  /** Email rows only. */
154
206
  from_organization_id?: string | null;
207
+ /** Org rows only (future non-same-actor org transfers). */
208
+ to_org_id?: string;
209
+ /** Org rows only (canonical gateway field when present). */
210
+ to_organization_id?: string;
155
211
  }
156
212
  export interface ListTransfersOptions {
157
213
  /** Page size; defaults to 50 on the gateway. */
@@ -220,7 +276,8 @@ export interface RetainCollaboratorPreview {
220
276
  }
221
277
  /**
222
278
  * Kind-agnostic preview document. Wallet-identity fields are `null` on email
223
- * rows; `to_email` and `retain_collaborator` are populated on email rows.
279
+ * and org rows; `to_email` and `retain_collaborator` are populated on email
280
+ * rows, while org rows carry `to_org_id` / `to_organization_id` when returned.
224
281
  */
225
282
  export interface ProjectTransferPreview {
226
283
  transfer_id: string;
@@ -234,6 +291,10 @@ export interface ProjectTransferPreview {
234
291
  to_wallet_display: string | null;
235
292
  /** Email rows only. */
236
293
  to_email?: string;
294
+ /** Org rows only (future non-same-actor org transfers). */
295
+ to_org_id?: string;
296
+ /** Org rows only (canonical gateway field when present). */
297
+ to_organization_id?: string;
237
298
  billing_policy: TransferBillingPolicy;
238
299
  message: string | null;
239
300
  initiated_at: string;
@@ -290,14 +351,16 @@ export declare class Transfers {
290
351
  private readonly client;
291
352
  constructor(client: Client);
292
353
  /**
293
- * Initiate a project transfer — addressed to a wallet (`toWallet`) OR an email
294
- * (`toEmail`), exactly one. Caller must currently own/admin `projectId`
295
- * (gateway re-reads owner from DB, not cache). Creates a `pending` row with a
296
- * 72h expiry and freezes owner-side mutations on the project until the
297
- * transfer is accepted (wallet), claimed (email), cancelled, or expires.
354
+ * Initiate a project transfer — addressed to a wallet (`toWallet`), an email
355
+ * (`toEmail`), OR an owned org (`toOrgId`), exactly one. Caller must
356
+ * currently own/admin `projectId` (gateway re-reads owner from DB, not cache).
357
+ * Wallet/email recipients create a `pending` row with a 72h expiry and freeze
358
+ * owner-side mutations until accepted/claimed/cancelled/expired. The first
359
+ * org-recipient gateway release is same-actor only and completes immediately.
298
360
  */
299
361
  initiate(input: InitiateWalletTransferInput): Promise<InitiateTransferResult>;
300
362
  initiate(input: InitiateEmailTransferInput): Promise<InitiateEmailTransferResult>;
363
+ initiate(input: InitiateOrgTransferInput): Promise<InitiateOrgTransferResult>;
301
364
  /**
302
365
  * Fetch the preview document for a pending or terminal transfer of either
303
366
  * kind. The caller must be a party to it (wallet signer, addressed-email
@@ -326,15 +389,15 @@ export declare class Transfers {
326
389
  */
327
390
  claim(transferId: string, opts?: ClaimTransferInput): Promise<ClaimTransferResult>;
328
391
  /**
329
- * Cancel a pending transfer of either kind. The caller must be authorized for
392
+ * Cancel a pending transfer of any kind. The caller must be authorized for
330
393
  * the row's kind (a wallet signer, or an owner/admin of the offering org /
331
394
  * the addressed-email principal). Already-processed transfers return 409
332
395
  * `TRANSFER_ALREADY_PROCESSED`.
333
396
  */
334
397
  cancel(transferId: string, reason?: string): Promise<CancelTransferResult>;
335
- /** Pending transfers OFFERED TO the caller — both wallet- and email-addressed. */
398
+ /** Pending transfers OFFERED TO the caller — wallet/email/future org rows, unioned. */
336
399
  listIncoming(opts?: ListTransfersOptions): Promise<ListTransfersResult>;
337
- /** Pending transfers INITIATED BY the caller — both wallet- and email-addressed. */
400
+ /** Pending transfers INITIATED BY the caller — wallet/email/future org rows, unioned. */
338
401
  listOutgoing(opts?: ListTransfersOptions): Promise<ListTransfersResult>;
339
402
  }
340
403
  //# sourceMappingURL=transfers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transfers.d.ts","sourceRoot":"","sources":["../../src/namespaces/transfers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transfers.d.ts","sourceRoot":"","sources":["../../src/namespaces/transfers.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,18 @@
1
1
  /**
2
- * `transfers` namespace — the unified project-transfer noun (v1.93+).
2
+ * `transfers` namespace — the unified project-transfer noun (v1.93+;
3
+ * owned-org recipient shape v1.96+).
3
4
  *
4
5
  * Exposed as `r.admin.transfers.*`. Project transfer is ONE capability,
5
6
  * body-discriminated by recipient kind: a wallet recipient (`toWallet`, SIWX
6
- * bilateral signing) or an email recipient (`toEmail`, the recipient claims
7
- * into an org). Both ride the same `/transfers` surface there is no separate
8
- * `/handoffs` noun (the gateway removed it in `unify-project-transfer-surface`).
7
+ * bilateral signing), an email recipient (`toEmail`, the recipient claims into
8
+ * an org), or an owned org recipient (`toOrgId`, same-actor org move). All ride
9
+ * the same `/transfers` surface there is no separate `/handoffs` noun (the
10
+ * gateway removed it in `unify-project-transfer-surface`).
9
11
  *
10
12
  * Gateway endpoints:
11
- * POST /projects/v1/:project_id/transfers — initiate; body { to_wallet } XOR { to_email }
12
- * GET /agent/v1/transfers/incoming — inbox (both kinds, unioned)
13
- * GET /agent/v1/transfers/outgoing — outbox (both kinds, unioned)
13
+ * POST /projects/v1/:project_id/transfers — initiate; body { to_wallet } XOR { to_email } XOR { to_org_id }
14
+ * GET /agent/v1/transfers/incoming — inbox (pending kinds, unioned)
15
+ * GET /agent/v1/transfers/outgoing — outbox (pending kinds, unioned)
14
16
  * GET /agent/v1/transfers/:transfer_id — preview (kind-agnostic)
15
17
  * POST /agent/v1/transfers/:transfer_id/accept — WALLET completion (recipient SIWX-signs)
16
18
  * POST /agent/v1/transfers/:transfer_id/claim — EMAIL completion (recipient claims into an org)
@@ -33,13 +35,33 @@ export class Transfers {
33
35
  async initiate(input) {
34
36
  const toWallet = "toWallet" in input ? input.toWallet : undefined;
35
37
  const toEmail = "toEmail" in input ? input.toEmail : undefined;
38
+ const toOrgId = "toOrgId" in input ? input.toOrgId : undefined;
36
39
  const hasWallet = typeof toWallet === "string" && toWallet.length > 0;
37
40
  const hasEmail = typeof toEmail === "string" && toEmail.length > 0;
38
- if (hasWallet === hasEmail) {
39
- throw new LocalError("Provide exactly one of toWallet or toEmail.", "initiating project transfer", { code: "VALIDATION_ERROR", details: { fields: ["toWallet", "toEmail"] } });
41
+ const hasOrg = typeof toOrgId === "string" && toOrgId.length > 0;
42
+ const recipientCount = Number(hasWallet) + Number(hasEmail) + Number(hasOrg);
43
+ if (recipientCount !== 1) {
44
+ throw new LocalError("Provide exactly one of toWallet, toEmail, or toOrgId.", "initiating project transfer", { code: "VALIDATION_ERROR", details: { fields: ["toWallet", "toEmail", "toOrgId"] } });
40
45
  }
41
46
  const path = `/projects/v1/${encodeURIComponent(input.projectId)}/transfers`;
47
+ if (hasOrg) {
48
+ rejectDefinedField(input, "billingPolicy", "org");
49
+ rejectDefinedField(input, "kysignedRecordId", "org");
50
+ rejectDefinedField(input, "retainCollaborator", "org");
51
+ const body = { to_org_id: toOrgId };
52
+ if (input.message !== undefined)
53
+ body.message = input.message;
54
+ const result = await this.client.request(path, {
55
+ method: "POST",
56
+ body,
57
+ context: "initiating project transfer",
58
+ });
59
+ await persistProjectKeys(this.client, result);
60
+ return result;
61
+ }
42
62
  if (hasEmail) {
63
+ rejectDefinedField(input, "billingPolicy", "email");
64
+ rejectDefinedField(input, "kysignedRecordId", "email");
43
65
  const body = { to_email: toEmail };
44
66
  if (input.message !== undefined)
45
67
  body.message = input.message;
@@ -53,6 +75,7 @@ export class Transfers {
53
75
  });
54
76
  }
55
77
  const w = input;
78
+ rejectDefinedField(w, "retainCollaborator", "wallet");
56
79
  const body = { to_wallet: toWallet };
57
80
  if (w.billingPolicy !== undefined)
58
81
  body.billing_policy = w.billingPolicy;
@@ -89,20 +112,7 @@ export class Transfers {
89
112
  body: {},
90
113
  context: "accepting project transfer",
91
114
  });
92
- // Persist the new owner's keys (#428) so the recipient can operate the
93
- // project immediately, mirroring `projects.provision`.
94
- if (result.anon_key && result.service_key) {
95
- const creds = this.client.credentials;
96
- if (creds.saveProject) {
97
- await creds.saveProject(result.project_id, {
98
- anon_key: result.anon_key,
99
- service_key: result.service_key,
100
- });
101
- }
102
- if (creds.setActiveProject) {
103
- await creds.setActiveProject(result.project_id);
104
- }
105
- }
115
+ await persistProjectKeys(this.client, result);
106
116
  return result;
107
117
  }
108
118
  /**
@@ -123,25 +133,11 @@ export class Transfers {
123
133
  body.accept_retained_collaborator = opts.acceptRetainedCollaborator;
124
134
  }
125
135
  const result = await this.client.request(`/agent/v1/transfers/${encodeURIComponent(transferId)}/claim`, { method: "POST", body, context: "claiming project transfer" });
126
- // Persist the new owner's keys so the claimant can operate the project
127
- // immediately, mirroring `accept`. Keys are returned only after the
128
- // ownership flip commits, to the authorized claimant.
129
- if (result.anon_key && result.service_key) {
130
- const creds = this.client.credentials;
131
- if (creds.saveProject) {
132
- await creds.saveProject(result.project_id, {
133
- anon_key: result.anon_key,
134
- service_key: result.service_key,
135
- });
136
- }
137
- if (creds.setActiveProject) {
138
- await creds.setActiveProject(result.project_id);
139
- }
140
- }
136
+ await persistProjectKeys(this.client, result);
141
137
  return result;
142
138
  }
143
139
  /**
144
- * Cancel a pending transfer of either kind. The caller must be authorized for
140
+ * Cancel a pending transfer of any kind. The caller must be authorized for
145
141
  * the row's kind (a wallet signer, or an owner/admin of the offering org /
146
142
  * the addressed-email principal). Already-processed transfers return 409
147
143
  * `TRANSFER_ALREADY_PROCESSED`.
@@ -156,7 +152,7 @@ export class Transfers {
156
152
  context: "cancelling project transfer",
157
153
  });
158
154
  }
159
- /** Pending transfers OFFERED TO the caller — both wallet- and email-addressed. */
155
+ /** Pending transfers OFFERED TO the caller — wallet/email/future org rows, unioned. */
160
156
  async listIncoming(opts = {}) {
161
157
  const q = buildPagination(opts);
162
158
  const path = q ? `/agent/v1/transfers/incoming?${q}` : "/agent/v1/transfers/incoming";
@@ -164,7 +160,7 @@ export class Transfers {
164
160
  context: "listing incoming transfers",
165
161
  });
166
162
  }
167
- /** Pending transfers INITIATED BY the caller — both wallet- and email-addressed. */
163
+ /** Pending transfers INITIATED BY the caller — wallet/email/future org rows, unioned. */
168
164
  async listOutgoing(opts = {}) {
169
165
  const q = buildPagination(opts);
170
166
  const path = q ? `/agent/v1/transfers/outgoing?${q}` : "/agent/v1/transfers/outgoing";
@@ -173,6 +169,25 @@ export class Transfers {
173
169
  });
174
170
  }
175
171
  }
172
+ async function persistProjectKeys(client, result) {
173
+ if (result.project_id && result.anon_key && result.service_key) {
174
+ const creds = client.credentials;
175
+ if (creds.saveProject) {
176
+ await creds.saveProject(result.project_id, {
177
+ anon_key: result.anon_key,
178
+ service_key: result.service_key,
179
+ });
180
+ }
181
+ if (creds.setActiveProject) {
182
+ await creds.setActiveProject(result.project_id);
183
+ }
184
+ }
185
+ }
186
+ function rejectDefinedField(input, field, recipient) {
187
+ if (input[field] !== undefined) {
188
+ throw new LocalError(`${field} is not supported for ${recipient}-addressed project transfers.`, "initiating project transfer", { code: "VALIDATION_ERROR", details: { field, recipient } });
189
+ }
190
+ }
176
191
  function buildPagination(opts) {
177
192
  const parts = [];
178
193
  if (opts.limit !== undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"transfers.js","sourceRoot":"","sources":["../../src/namespaces/transfers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transfers.js","sourceRoot":"","sources":["../../src/namespaces/transfers.ts"],"names":[],"mappings":"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"}