@reclaimprotocol/client 0.1.32 → 0.1.34

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.
@@ -11,8 +11,8 @@ export interface paths {
11
11
  cookie?: never;
12
12
  };
13
13
  /**
14
- * Discover home — search a website to verify
15
- * @description Default home page. A website-first search: the visitor types a website and picks one to continue to `/site/{domain}`, where they choose what data to prove. Renders popular websites below the search, plus tag pills to narrow them.
14
+ * Home — sign-in or the Dashboard
15
+ * @description Signed in, redirects to the Dashboard (`GET /orgs/{orgId}`) of the console's selected org, else the viewer's default org. Signed out, renders the sign-in page; a signed-out link carrying Discover's `q` / `tag` redirects to `/discover` with them.
16
16
  */
17
17
  get: operations["Index"];
18
18
  put?: never;
@@ -23,6 +23,26 @@ export interface paths {
23
23
  patch?: never;
24
24
  trace?: never;
25
25
  };
26
+ "/discover": {
27
+ parameters: {
28
+ query?: never;
29
+ header?: never;
30
+ path?: never;
31
+ cookie?: never;
32
+ };
33
+ /**
34
+ * Discover — search a website to verify
35
+ * @description The Catalog. A website-first search: the visitor types a website and picks one to continue to `/site/{domain}`, where they choose what data to prove. Renders popular websites below the search, plus tag pills to narrow them.
36
+ */
37
+ get: operations["Discover"];
38
+ put?: never;
39
+ post?: never;
40
+ delete?: never;
41
+ options?: never;
42
+ head?: never;
43
+ patch?: never;
44
+ trace?: never;
45
+ };
26
46
  "/providers": {
27
47
  parameters: {
28
48
  query?: never;
@@ -212,7 +232,7 @@ export interface paths {
212
232
  put?: never;
213
233
  /**
214
234
  * Mint a SANDBOX test verification session for the selection
215
- * @description Creates a real SANDBOX verification session for the selected data points, so the signed-in member can test the flow on `/v/{sessionId}` without registering a callback subscription. Runs under an organization the member owns (`orgId` in the body; defaults to their personal organization). The provider set is recomputed server-side from the selection.
235
+ * @description Creates a real SANDBOX verification session for the selected data points, so the signed-in member can test the flow on `/v/{sessionId}` without registering a callback subscription. Runs under an organization the member owns (`orgId` in the body; defaults to their default organization). The provider set is recomputed server-side from the selection.
216
236
  */
217
237
  post: operations["SiteBuildTry"];
218
238
  delete?: never;
@@ -221,26 +241,6 @@ export interface paths {
221
241
  patch?: never;
222
242
  trace?: never;
223
243
  };
224
- "/site/{domain}/repair": {
225
- parameters: {
226
- query?: never;
227
- header?: never;
228
- path?: never;
229
- cookie?: never;
230
- };
231
- /**
232
- * Failure-aware "Repair with an AI coding agent" wizard fragment
233
- * @description Body of the build page's repair dialog, lazy-loaded after a sandbox Try fails so the agent prompt includes the REAL failure (which provider(s) failed + the error reason, read from the session's event log) and the resolved provider set. HTML / HTMX fragment.
234
- */
235
- get: operations["SiteBuildRepair"];
236
- put?: never;
237
- post?: never;
238
- delete?: never;
239
- options?: never;
240
- head?: never;
241
- patch?: never;
242
- trace?: never;
243
- };
244
244
  "/site/{domain}/alternative": {
245
245
  parameters: {
246
246
  query?: never;
@@ -261,7 +261,7 @@ export interface paths {
261
261
  patch?: never;
262
262
  trace?: never;
263
263
  };
264
- "/discover/teach": {
264
+ "/integrate": {
265
265
  parameters: {
266
266
  query?: never;
267
267
  header?: never;
@@ -269,10 +269,10 @@ export interface paths {
269
269
  cookie?: never;
270
270
  };
271
271
  /**
272
- * “Teach our agent” instructions for a missing website / data point
273
- * @description Returns the "Teach our agent" panel shown when a website or data point a user wants does not exist yet: steps to install the Reclaim MCP server plus a ready-to-copy prompt, templated with the requested `domain` and (optionally) `dataPoint`, that instructs an agent to author the missing provider. HTML / HTMX only (a dialog fragment).
272
+ * Go to the Integrate page
273
+ * @description Where the "Build it with an agent" links lead, from pages that don't know the viewer's organization. Signed in, redirects to the Integrate page of the console's selected organization (else the viewer's default organization), on its coding-agent track. Signed out, redirects to sign-in and back here.
274
274
  */
275
- get: operations["DiscoverTeachAgent"];
275
+ get: operations["OpenIntegrate"];
276
276
  put?: never;
277
277
  post?: never;
278
278
  delete?: never;
@@ -281,26 +281,6 @@ export interface paths {
281
281
  patch?: never;
282
282
  trace?: never;
283
283
  };
284
- "/discover/agent-wizard": {
285
- parameters: {
286
- query?: never;
287
- header?: never;
288
- path?: never;
289
- cookie?: never;
290
- };
291
- get?: never;
292
- put?: never;
293
- /**
294
- * Setup and prompt for the coding agent picked in the wizard
295
- * @description Returns the last step of the "Build with an AI coding agent" wizard for the picked `agent`: how to attach the Reclaim MCP server, and the `basePrompt` with the optional `building` description appended. HTML / HTMX only (a fragment swapped into the open wizard).
296
- */
297
- post: operations["DiscoverAgentWizard"];
298
- delete?: never;
299
- options?: never;
300
- head?: never;
301
- patch?: never;
302
- trace?: never;
303
- };
304
284
  "/discover/resolve": {
305
285
  parameters: {
306
286
  query?: never;
@@ -1130,6 +1110,8 @@ export interface paths {
1130
1110
  * - `zkfetch` — a static informational page. zkFetch has no claimant
1131
1111
  * step; nothing ever redirects a browser here by design.
1132
1112
  *
1113
+ * A session from `POST /verifications/ai-sessions` never redirects for now. While its lookup runs, the page shows a loading state and reloads itself. Then it shows the candidate pages, and asks the user to pick one when there are several (nothing happens after the pick yet). When the lookup failed, the page shows an error and closes itself after 5 seconds. A session that is no longer pending shows that it ended.
1114
+ * `redirectUrl`, `redirectUrlOptions`, `cancelRedirectUrl`, and `cancelRedirectUrlOptions` in the query are added to the session's `launchOptions`, where every Verification Client can read them, unless the session already has that option: options set at creation, or by an earlier visit, win. They're validated as at creation (`https:` only); an invalid one is a 400. The `portals` redirect carries the session's launch options, and any other query parameters, on to the portal.
1133
1115
  * Sets `Referrer-Policy: no-referrer`, so a `sessionId` never rides along in a `Referer` header to wherever a client eventually redirects.
1134
1116
  */
1135
1117
  get: operations["SharePage"];
@@ -1255,8 +1237,8 @@ export interface paths {
1255
1237
  get: operations["FixWithAiRecovery"];
1256
1238
  put?: never;
1257
1239
  /**
1258
- * Create or reopen a billed AI repair session
1259
- * @description Creates one idempotent repair attempt for the selected failed provider. The source organization is charged only when a new child is created. Repeated requests reopen a pending or successful child. After a child ends in error, rejection, or expiry, a later request creates a new, separately billed attempt. The server derives the exact failed version and repair prompt.
1240
+ * Create a billed AI repair session
1241
+ * @description Creates a verification session that pins the selected failed provider's exact version with `preferAiAgent`, charged to the source organization. Its verification page runs the AI authoring agent instead of the stored recipe. A proven recipe is published for the provider's own organization, or submitted for admin review otherwise. Every request creates a new, separately billed session.
1260
1242
  */
1261
1243
  post: operations["CreateFixWithAiSession"];
1262
1244
  delete?: never;
@@ -1265,26 +1247,6 @@ export interface paths {
1265
1247
  patch?: never;
1266
1248
  trace?: never;
1267
1249
  };
1268
- "/v/{sessionId}/fix-with-ai/activate": {
1269
- parameters: {
1270
- query?: never;
1271
- header?: never;
1272
- path?: never;
1273
- cookie?: never;
1274
- };
1275
- get?: never;
1276
- put?: never;
1277
- /**
1278
- * Start a pending AI repair after the verification page loads
1279
- * @description Idempotently queues a pending repair session. The server derives the claimant country from the request and publishes no browser credentials.
1280
- */
1281
- post: operations["ActivateFixWithAiRepair"];
1282
- delete?: never;
1283
- options?: never;
1284
- head?: never;
1285
- patch?: never;
1286
- trace?: never;
1287
- };
1288
1250
  "/.well-known/jwks.json": {
1289
1251
  parameters: {
1290
1252
  query?: never;
@@ -1575,7 +1537,7 @@ export interface paths {
1575
1537
  put?: never;
1576
1538
  /**
1577
1539
  * Create an organization
1578
- * @description Creates a new `ORG`-kind organization with the caller as its first `OWNER`. The personal org is created automatically at user signup and is not created via this endpoint.
1540
+ * @description Creates a new `ORG`-kind organization with the caller as its first `OWNER`. Every user gets a default organization at sign-up, and it counts toward their org-creation limit (1 active organization unless Reclaim support raises it). Past the limit this returns `409`; contact support@reclaimprotocol.org to raise the limit or archive an organization.
1579
1541
  */
1580
1542
  post: operations["CreateOrg"];
1581
1543
  delete?: never;
@@ -1636,8 +1598,8 @@ export interface paths {
1636
1598
  put?: never;
1637
1599
  post?: never;
1638
1600
  /**
1639
- * Delete a shared organization
1640
- * @description Owner only. `PERSONAL` organizations cannot be deleted independently of their owning user; deleting a personal org happens implicitly via `DELETE /me`.
1601
+ * Archive an organization
1602
+ * @description Reclaim staff only; owners ask support@reclaimprotocol.org to archive. Archives the organization, which frees a slot under its creator's org-creation limit. `403` for anyone else.
1641
1603
  */
1642
1604
  delete: operations["DeleteOrg"];
1643
1605
  options?: never;
@@ -1649,26 +1611,6 @@ export interface paths {
1649
1611
  patch: operations["UpdateOrg"];
1650
1612
  trace?: never;
1651
1613
  };
1652
- "/orgs/{orgId}/convert": {
1653
- parameters: {
1654
- query?: never;
1655
- header?: never;
1656
- path?: never;
1657
- cookie?: never;
1658
- };
1659
- get?: never;
1660
- put?: never;
1661
- /**
1662
- * Convert a personal organization to a regular organization
1663
- * @description Owner only. One-way: flips a `PERSONAL` organization (auto-provisioned at sign-up, sandbox-only, single-member) to a regular `ORG`, unlocking billing, plan & usage, and member invites. All providers, sessions, credentials and themes carry over. `409` when the organization is not `PERSONAL`.
1664
- */
1665
- post: operations["ConvertOrgToRegular"];
1666
- delete?: never;
1667
- options?: never;
1668
- head?: never;
1669
- patch?: never;
1670
- trace?: never;
1671
- };
1672
1614
  "/orgs/{orgId}/members": {
1673
1615
  parameters: {
1674
1616
  query?: never;
@@ -1684,7 +1626,7 @@ export interface paths {
1684
1626
  put?: never;
1685
1627
  /**
1686
1628
  * Invite a member to an organization
1687
- * @description Owner only. Invites a user to the organization by email. The invitee does **not** need to be a registered user — an invite is created in either case, and an invite email with an accept link is dispatched. The new row is returned with `status: PENDING`; it flips to `ACTIVE` only when the invitee explicitly accepts via `POST /orgs/{orgId}/invite`. `PERSONAL` organizations reject this call (409).
1629
+ * @description Owner only. Invites a user to the organization by email. The invitee does **not** need to be a registered user — an invite is created in either case, and an invite email with an accept link is dispatched. The new row is returned with `status: PENDING`; it flips to `ACTIVE` only when the invitee explicitly accepts via `POST /orgs/{orgId}/invite`.
1688
1630
  */
1689
1631
  post: operations["AddOrgMember"];
1690
1632
  delete?: never;
@@ -1816,7 +1758,7 @@ export interface paths {
1816
1758
  get: operations["GetOrgKeypair"];
1817
1759
  /**
1818
1760
  * Set (or rotate) the organization's encryption keypair
1819
- * @description Upserts the organization's single Ethereum (secp256k1) encryption keypair. The body carries the org's **eth public key** — as an uncompressed hex string (`0x04`+128 hex) or a secp256k1 public JWK (`{kty:'EC', crv:'secp256k1', x, y}`) — and `canEncryptResult`. The matching private key never leaves the consumer. Setting overwrites the single row (and creates it for a keyless org). When `canEncryptResult` is true, terminal results are delivered as an ECIES ciphertext encrypted to this key; otherwise plaintext. Authenticated by the org's `OrgToken` or a human `BearerAuth` session for an active member of the org.
1761
+ * @description Sets the organization's single Ethereum (secp256k1) encryption keypair. The body carries the org's **eth public key** — as an uncompressed hex string (`0x04`+128 hex) or a secp256k1 public JWK (`{kty:'EC', crv:'secp256k1', x, y}`) — and `canEncryptResult`. The matching private key never leaves the consumer. The call creates the key for a keyless org and is idempotent for the same key. If the org has a different key, it returns `409` unless `replace` is true. When `canEncryptResult` is true, terminal results are delivered as an ECIES ciphertext encrypted to this key; otherwise plaintext. Authenticated by the org's `OrgToken` or a human `BearerAuth` session for an active member of the org.
1820
1762
  */
1821
1763
  put: operations["SetOrgKeypair"];
1822
1764
  post?: never;
@@ -2078,6 +2020,26 @@ export interface paths {
2078
2020
  patch?: never;
2079
2021
  trace?: never;
2080
2022
  };
2023
+ "/orgs/{orgId}/billing/card": {
2024
+ parameters: {
2025
+ query?: never;
2026
+ header?: never;
2027
+ path?: never;
2028
+ cookie?: never;
2029
+ };
2030
+ get?: never;
2031
+ put?: never;
2032
+ /**
2033
+ * Save a card for the organization
2034
+ * @description Owner only. Returns a Stripe Checkout URL that only saves a card (no charge), creating the organization's Stripe customer on first use. The saved card becomes the default that plans and overage bill. Stripe returns the owner to the Billing tab with `?billing=card`.
2035
+ */
2036
+ post: operations["CreateCardSetupSession"];
2037
+ delete?: never;
2038
+ options?: never;
2039
+ head?: never;
2040
+ patch?: never;
2041
+ trace?: never;
2042
+ };
2081
2043
  "/orgs/{orgId}/billing/subscription": {
2082
2044
  parameters: {
2083
2045
  query?: never;
@@ -2374,7 +2336,7 @@ export interface paths {
2374
2336
  };
2375
2337
  /**
2376
2338
  * Get a specific provider version
2377
- * @description Fetches one exact canonical version. Trunk is public when the provider is public. Non-trunk versions are visible to admins and members of the provider's organization. A member of the organization that paid for a successful AI repair may also read only the exact `fixed` version created by that repair.
2339
+ * @description Fetches one exact canonical version. Trunk is public when the provider is public. Non-trunk versions are visible to admins and members of the provider's organization.
2378
2340
  */
2379
2341
  get: operations["GetProviderVersion"];
2380
2342
  put?: never;
@@ -2719,7 +2681,7 @@ export interface paths {
2719
2681
  };
2720
2682
  /**
2721
2683
  * Verification outcomes by day, device, and country
2722
- * @description Organization-scoped creation cohorts in UTC. Outcomes are current at query time. Unknown device and country values have their own buckets.
2684
+ * @description Organization-scoped creation cohorts in UTC. Outcomes are current at query time. Unknown device and country values have their own buckets. A signed-in browser asking for HTML is redirected to the org's Dashboard (`GET /orgs/{orgId}`), which shows these analytics, with the same query.
2723
2685
  */
2724
2686
  get: operations["GetOrgVerificationAnalytics"];
2725
2687
  put?: never;
@@ -2742,16 +2704,32 @@ export interface paths {
2742
2704
  /**
2743
2705
  * Create a verification session
2744
2706
  * @description Creates a verification session for an end-user to complete.
2707
+ *
2708
+ * **The response's `verificationUrl` is the one thing you need.** Send
2709
+ * your end user to it (redirect, link, or QR code): that is where they
2710
+ * verify. Everything else in the response is for tracking the session.
2711
+ *
2745
2712
  * Authenticated by the consumer's `OrgToken`; the session is scoped to
2746
2713
  * the resolved organization. The request carries no callback URLs —
2747
2714
  * results are delivered to the org's pre-registered callback
2748
2715
  * subscriptions.
2749
2716
  *
2717
+ * `verificationClientUrl` picks where the user verifies. Omit it to use
2718
+ * the Reclaim Portal. The built-in clients are:
2719
+ *
2720
+ * | Client | `verificationClientUrl` |
2721
+ * | --- | --- |
2722
+ * | Reclaim Portal (default) | `https://build.reclaimprotocol.org/share/portals` |
2723
+ * | Verifier app | `https://build.reclaimprotocol.org/share/verifier-app` |
2724
+ * | Browser extension | `https://build.reclaimprotocol.org/share/reclaim-browser-extension` |
2725
+ * | Builder browser | `https://build.reclaimprotocol.org/share/builder` |
2726
+ * | In-app SDK | `https://build.reclaimprotocol.org/share/inapp-sdk` |
2727
+ *
2750
2728
  * curl -X POST $BASE/verifications/sessions \
2751
2729
  * -H "Authorization: Bearer $ORG_TOKEN" \
2752
2730
  * -H 'Content-Type: application/json' \
2753
2731
  * -d '{"providers":[{"providerId":"…","version":"^1.2.0"}],"context":{},
2754
- * "verificationClientUrl":"https://verify.example.com/"}'
2732
+ * "verificationClientUrl":"https://build.reclaimprotocol.org/share/portals"}'
2755
2733
  *
2756
2734
  * Fails with `409 Conflict` if the organization has no callback
2757
2735
  * subscription (there would be nowhere to deliver the result).
@@ -2766,6 +2744,118 @@ export interface paths {
2766
2744
  patch?: never;
2767
2745
  trace?: never;
2768
2746
  };
2747
+ "/verifications/ai-sessions": {
2748
+ parameters: {
2749
+ query?: never;
2750
+ header?: never;
2751
+ path?: never;
2752
+ cookie?: never;
2753
+ };
2754
+ get?: never;
2755
+ put?: never;
2756
+ /**
2757
+ * Start an AI verification session from a prompt
2758
+ * @description Starts a verification from a plain-language prompt, such as "verify
2759
+ * I'm a student at Manipal University", instead of a list of providers.
2760
+ * Builder creates the session at once and returns it, as
2761
+ * `POST /verifications/sessions` does. Send the user to its
2762
+ * `verificationUrl`. In the background, Builder looks up the
2763
+ * `candidates` (pages the user opens and signs in to) and the
2764
+ * `dataPoints` to verify there, usually within a few seconds. Poll
2765
+ * `GET /verifications/ai-sessions/{sessionId}` until its `status` is
2766
+ * `ready` or `failed`. The share page at `verificationUrl` shows a
2767
+ * loading state meanwhile.
2768
+ *
2769
+ * Builder searches the provider catalog (public providers and your
2770
+ * organization's own providers) and the web. The web search finds a
2771
+ * portal the catalog lacks, or one that replaced a stale catalog page.
2772
+ * Builder caches a web result for a week, or for a day when it finds
2773
+ * nothing. A URL or domain in the prompt is a hint: pages on it rank
2774
+ * first.
2775
+ *
2776
+ * Deterministic checks run before any AI model. Builder rejects a
2777
+ * prompt that contains a password, card number, or Aadhaar number, that
2778
+ * contains instructions for the AI, or that makes a sensitive claim,
2779
+ * without calling a model. Builder withholds personal values the prompt
2780
+ * states, such as a name, email address, phone number, or student ID,
2781
+ * from the model and from the cache.
2782
+ *
2783
+ * Once the lookup is ready, the session's `context` holds the values
2784
+ * the prompt states, such as the user's name, merged with the `context`
2785
+ * you send. Your values take precedence.
2786
+ *
2787
+ * On `201`, the session has no providers: the AI agent works out how to
2788
+ * verify. The organization needs a callback subscription. The session
2789
+ * uses one verification from the quota pool of the
2790
+ * `verificationClientUrl` client. A prompt the checks above reject
2791
+ * creates no session and is free. If the lookup then fails (the prompt
2792
+ * isn't a request to verify something about the user, no login page
2793
+ * is found, or the model or web search stays unavailable), Builder
2794
+ * refunds the verification, ends the session with status `error`, and
2795
+ * sends the failure to your `verification_error` callbacks. Builder
2796
+ * caches lookups, so a repeated prompt resolves faster, even when it
2797
+ * names a different person.
2798
+ *
2799
+ * curl -X POST $BASE/verifications/ai-sessions \
2800
+ * -H "Authorization: Bearer $ORG_TOKEN" \
2801
+ * -H 'Content-Type: application/json' \
2802
+ * -d '{"prompt":"verify I am a student at Manipal University"}'
2803
+ *
2804
+ * Errors:
2805
+ *
2806
+ * - `400`: Builder rejects the prompt (for example, it targets an
2807
+ * internal host), `context` contains `attestationNonce` or
2808
+ * `attestationNonceData`, or `verificationClientUrl` isn't a
2809
+ * registered client.
2810
+ * - `409`: The organization has no callback subscription.
2811
+ * - `429` or `402`: The quota or credits are spent. The body has
2812
+ * `event: billing_required` and a terminal `sessionId`.
2813
+ *
2814
+ * A failed lookup isn't an error of this request: it shows in the
2815
+ * `error` of `GET /verifications/ai-sessions/{sessionId}`.
2816
+ */
2817
+ post: operations["CreateAiVerificationSession"];
2818
+ delete?: never;
2819
+ options?: never;
2820
+ head?: never;
2821
+ patch?: never;
2822
+ trace?: never;
2823
+ };
2824
+ "/verifications/ai-sessions/{sessionId}": {
2825
+ parameters: {
2826
+ query?: never;
2827
+ header?: never;
2828
+ path?: never;
2829
+ cookie?: never;
2830
+ };
2831
+ /**
2832
+ * Get what an AI verification session's prompt resolved to
2833
+ * @description Returns the lookup that `POST /verifications/ai-sessions` started for
2834
+ * the session. `status` is `resolving` until it finishes, then `ready`
2835
+ * with the pages and data points it found, or `failed` with an
2836
+ * `error`. Poll every second or two while it's `resolving`.
2837
+ *
2838
+ * `candidates` lists the pages to open, best first, each with a
2839
+ * `source` of `catalog` or `web`. It usually has one page. It has
2840
+ * several (up to 3) only when their `confidence` values are within 0.1
2841
+ * of the best page's value. In that case, the user picks one on the
2842
+ * session's `verificationUrl`.
2843
+ *
2844
+ * The `OrgToken` must resolve to the session's organization. To track
2845
+ * the session's status, call `GET /verifications/sessions/{sessionId}`.
2846
+ *
2847
+ * curl $BASE/verifications/ai-sessions/$SESSION_ID \
2848
+ * -H "Authorization: Bearer $ORG_TOKEN"
2849
+ */
2850
+ get: operations["GetAiVerificationSession"];
2851
+ put?: never;
2852
+ post?: never;
2853
+ delete?: never;
2854
+ options?: never;
2855
+ head?: never;
2856
+ patch?: never;
2857
+ trace?: never;
2858
+ };
2769
2859
  "/verifications/sessions/{sessionId}": {
2770
2860
  parameters: {
2771
2861
  query?: never;
@@ -3059,8 +3149,8 @@ export interface paths {
3059
3149
  cookie?: never;
3060
3150
  };
3061
3151
  /**
3062
- * Get the stored encrypted result(s) for a session
3063
- * @description Returns the stored Builder-signed result payloads for this session — one item per callback subscription. Readable only by the consumer that created the session. The consumer's `OrgToken` must resolve to the session's organization. A pull-based companion to push delivery: when the organization enables encryption, Builder returns an ECIES ciphertext (base64url) that the holder of the matching private key decrypts client-side, else plaintext. Empty `items` until the session reaches a terminal state and a result has been submitted. Treat every returned payload as untrusted until `verifyResultFull` succeeds with the Builder issuer and JWKS URL.
3152
+ * Get the stored result(s) for a session
3153
+ * @description Returns the session's callback deliveries with their payloads — one item per callback subscription and event. Readable only by the consumer that created the session. The consumer's `OrgToken` must resolve to the session's organization. A recovery companion to push delivery, not a replacement for the callback: a signed result's `payload` (which can carry proofs) is kept only until its callback is delivered, or for 7 days while undelivered, then becomes `null`. When the organization enables encryption, a signed result is an ECIES ciphertext (base64url) that the holder of the matching private key decrypts client-side, else plaintext. Empty `items` until the session reaches a terminal state and a result has been submitted. Treat every returned payload as untrusted until `verifyResultFull` succeeds with the Builder issuer and JWKS URL.
3064
3154
  */
3065
3155
  get: operations["GetVerificationResult"];
3066
3156
  put?: never;
@@ -3082,7 +3172,7 @@ export interface paths {
3082
3172
  put?: never;
3083
3173
  /**
3084
3174
  * Re-enqueue callback delivery for a session
3085
- * @description Re-enqueues delivery of a session's stored result to its callback subscriptions. Use this after `list_verification_deliveries` shows a `failed` or dead-lettered delivery, once the consumer's callback endpoint is reachable again and answers 2xx — it re-attempts every not-yet-delivered callback for the session. Usable by the session creator (authenticated by the consumer's `OrgToken`) to recover from a transient consumer-side outage.
3175
+ * @description Re-enqueues delivery of a session's stored result to its callback subscriptions. Use this after `list_verification_deliveries` shows a `failed` or dead-lettered delivery, once the consumer's callback endpoint is reachable again and answers 2xx — it re-attempts every not-yet-delivered callback for the session. Usable by the session creator (authenticated by the consumer's `OrgToken`) to recover from a transient consumer-side outage. A result left undelivered for 7 days is purged and can no longer be retried.
3086
3176
  */
3087
3177
  post: operations["RetryVerificationCallback"];
3088
3178
  delete?: never;
@@ -3122,7 +3212,7 @@ export interface paths {
3122
3212
  put?: never;
3123
3213
  /**
3124
3214
  * Retry a dead-lettered callback (admin-only)
3125
- * @description Admin only. Re-enqueues a specific DLQ entry for delivery.
3215
+ * @description Admin only. Re-enqueues a specific DLQ entry for delivery. 410 when the result was undelivered for 7 days and has been purged.
3126
3216
  */
3127
3217
  post: operations["RetryCallbackDlq"];
3128
3218
  delete?: never;
@@ -3264,6 +3354,64 @@ export interface components {
3264
3354
  ProviderID: string;
3265
3355
  /** Format: uuid */
3266
3356
  OrgID: string;
3357
+ /** @description Body for `POST /verifications/ai-sessions`. */
3358
+ CreateAiVerificationSessionRequest: {
3359
+ /** @description What to verify, in plain language, such as "verify I'm a student at Manipal University". Builder rejects a prompt that contains credentials, card numbers, instructions for the AI, or a sensitive claim. */
3360
+ prompt: string;
3361
+ /** @description Values you already know, such as `{"fullName": "Asha Rao"}`. Builder merges them over the values the prompt states and returns the result in `context`. Must not contain `attestationNonce` or `attestationNonceData`; bind those after you create the session. Omit if you have none. */
3362
+ context?: {
3363
+ [key: string]: unknown;
3364
+ };
3365
+ /** @description Base URL of the registered verification client the user verifies with, as for `POST /verifications/sessions`. Builder charges this client's quota pool. If you omit it, Builder uses the default (`portals`) client. */
3366
+ verificationClientUrl?: string;
3367
+ /** @description ISO 3166-1 alpha-2 country code, such as `IN`. Builder searches the web from this country (Google's `gl` parameter), so portals for that country rank first. If you omit it, the search has no country preference. */
3368
+ geoLocation?: string;
3369
+ };
3370
+ /** @description The lookup `POST /verifications/ai-sessions` started for a session: its status, and once `ready`, the pages to open and the data points to verify there. */
3371
+ AiVerificationSession: {
3372
+ /**
3373
+ * Format: uuid
3374
+ * @description ID of the verification session. To track the session, call `GET /verifications/sessions/{sessionId}`.
3375
+ */
3376
+ sessionId: string;
3377
+ /**
3378
+ * @description `resolving` while Builder looks up the pages and data points. `ready` when `candidates` and `dataPoints` are set. `failed` when the lookup failed: `error` says why, the session ended with status `error`, and its verification was refunded.
3379
+ * @enum {string}
3380
+ */
3381
+ status: "resolving" | "ready" | "failed";
3382
+ /** @description Why the lookup failed. Only when `status` is `failed`. Its `status` is 422 when the prompt isn't a request to verify something about the user, 404 when no login page was found, and 503 when the AI model or web search stayed unavailable. */
3383
+ error?: components["schemas"]["Problem"];
3384
+ /** @description Only when `status` is `ready`. The fewest data points that prove the prompt's claim, required data points first. A data point for a value the prompt states is always required. */
3385
+ dataPoints?: {
3386
+ /** @description Short camelCase name, such as `username`. */
3387
+ name: string;
3388
+ /** @description What the value is and why it proves the claim. */
3389
+ description: string;
3390
+ /** @description If `true`, the claim can be proven without this value, as with `isOptional` on a provider's `ResponseMatch`. If absent, the data point is required. */
3391
+ isOptional?: boolean;
3392
+ }[];
3393
+ /** @description Values the signed-in account must show, such as `{"fullName": "Asha Rao"}`. Each key is the `dataPoints` name that the value pins. It combines the values the prompt states with the request's `context`. It's empty if neither has any. It's the session's `context`. If the prompt names a specific page, such as a post, `pageUrl` holds it: the page to open after the user logs in on the candidate's site. */
3394
+ context: {
3395
+ [key: string]: unknown;
3396
+ };
3397
+ /** @description Only when `status` is `ready`. Pages to open, best first. Each is the page that shows the data after the user signs in (it sends the user to sign in first), or else the sign-in page. Usually one page. Several pages appear only when the choice is ambiguous, such as a college with two or three student portals whose `confidence` values are within 0.1 of the best. In that case, the user picks one on the session's `verificationUrl`. At most one page per host. */
3398
+ candidates?: components["schemas"]["ResolvedLoginPage"][];
3399
+ };
3400
+ /** @description A page for the user to open and sign in to. */
3401
+ ResolvedLoginPage: {
3402
+ /**
3403
+ * Format: uri
3404
+ * @description URL of the page to open. For a `web` page, Builder removes the query and fragment.
3405
+ */
3406
+ loginUrl: string;
3407
+ /** @description Estimated likelihood, from 0 to 1, that signing in here shows the claim. Candidates below 0.5 are never returned. */
3408
+ confidence: number;
3409
+ /**
3410
+ * @description Where the page came from. `catalog` is the page of a provider in the catalog (public, or your organization's own). `web` is a page that a web search found; it has no provider yet.
3411
+ * @enum {string}
3412
+ */
3413
+ source: "catalog" | "web";
3414
+ };
3267
3415
  /** @description A verification client id used as a filter. Hyphens are ignored. */
3268
3416
  VerificationClientIDFilter: string;
3269
3417
  /** @description An organization id used as a filter. Hyphens are ignored, so it matches with or without them; an id that matches no organization returns nothing. */
@@ -3391,11 +3539,9 @@ export interface components {
3391
3539
  */
3392
3540
  EntityStatus: "ACTIVE" | "ARCHIVED";
3393
3541
  /**
3394
- * @description - `PERSONAL`: Auto-provisioned at user signup. Exactly one
3395
- * `OWNER`, no other members.
3396
- *
3397
- * - `ORG`: Explicitly created via `POST /orgs`. Multiple
3398
- * members, always ≥ 1 active `OWNER`.
3542
+ * @description - `ORG`: A user's organization: the default one made at sign-up,
3543
+ * or one created via `POST /orgs`. Multiple members, always ≥ 1
3544
+ * active `OWNER`.
3399
3545
  *
3400
3546
  * - `ANONYMOUS`: System-managed, member-less org auto-created to
3401
3547
  * anchor an unaffiliated ETH credential's org-level settings
@@ -3404,7 +3550,7 @@ export interface components {
3404
3550
  * created or named by clients; has no members.
3405
3551
  * @enum {string}
3406
3552
  */
3407
- OrganizationKind: "PERSONAL" | "ORG" | "ANONYMOUS";
3553
+ OrganizationKind: "ORG" | "ANONYMOUS";
3408
3554
  /** @description A free-form label attached to an entity for grouping and filtering in listings. Must start and end with an alphanumeric character; only ASCII letters, digits, spaces, and hyphens are allowed between. */
3409
3555
  Tag: string;
3410
3556
  ActorMetadata: {
@@ -3413,7 +3559,7 @@ export interface components {
3413
3559
  /** @description Free-form notes from actor describing this change */
3414
3560
  notes?: string;
3415
3561
  };
3416
- /** @description A registered user of the platform. Every newly created user is automatically granted a personal organization (see `Organization.kind = PERSONAL`) whose id is exposed here as `personalOrgId`. */
3562
+ /** @description A registered user of the platform. Every newly created user gets a default organization, whose id is exposed here as `defaultOrgId`. */
3417
3563
  User: {
3418
3564
  id: components["schemas"]["UserID"];
3419
3565
  /**
@@ -3435,13 +3581,13 @@ export interface components {
3435
3581
  * @enum {string}
3436
3582
  */
3437
3583
  role?: "user" | "admin";
3438
- /** @description ID of the user's auto-created personal organization. This organization is provisioned the moment the user is created and cannot be deleted independently of the user. */
3439
- personalOrgId: components["schemas"]["OrgID"];
3584
+ /** @description ID of the organization created for the user at sign-up. It is a regular organization and counts toward the user's org-creation limit. */
3585
+ defaultOrgId: components["schemas"]["OrgID"];
3440
3586
  createMetadata: components["schemas"]["ActorMetadata"];
3441
3587
  updateMetadata: components["schemas"]["ActorMetadata"];
3442
3588
  };
3443
3589
  /**
3444
- * @description Role a user holds in an organization. `OWNER` can invite, promote, demote, and remove members, and delete the org. `MEMBER` has read/write access to resources owned by the org but cannot manage membership. `PERSONAL` orgs have exactly one `OWNER` and reject all member-mutating operations.
3590
+ * @description Role a user holds in an organization. `OWNER` can invite, promote, demote, and remove members, and delete the org. `MEMBER` has read/write access to resources owned by the org but cannot manage membership.
3445
3591
  * @enum {string}
3446
3592
  */
3447
3593
  OrganizationMemberRole: "OWNER" | "MEMBER";
@@ -3476,12 +3622,12 @@ export interface components {
3476
3622
  /** @description Timestamp the invite was accepted. Absent while `status` is `PENDING`. */
3477
3623
  joinedAt?: components["schemas"]["Timestamp"];
3478
3624
  };
3479
- /** @description A workspace that owns providers and other resources. Every user gets exactly one `PERSONAL` organization on signup; additional `ORG` organizations can be created and have multiple members. System-managed `ANONYMOUS` organizations have no members (see `OrganizationKind`). */
3625
+ /** @description A workspace that owns providers and other resources. Every user gets a default `ORG` organization on signup; more can be created up to the user's org-creation limit, and any can have multiple members. System-managed `ANONYMOUS` organizations have no members (see `OrganizationKind`). */
3480
3626
  Organization: {
3481
3627
  id: components["schemas"]["OrgID"];
3482
- /** @description Display name of the organization. For `PERSONAL` orgs this defaults to the owner's name and may be edited by the owner. */
3628
+ /** @description Display name of the organization. A user's default org starts with their name and may be renamed by an owner. */
3483
3629
  name: string;
3484
- /** @description Whether this is a user's personal org or a shared org. */
3630
+ /** @description Whether this is a user's org or a system-managed anonymous one. */
3485
3631
  kind: components["schemas"]["OrganizationKind"];
3486
3632
  /**
3487
3633
  * Format: uri
@@ -3490,7 +3636,7 @@ export interface components {
3490
3636
  iconUrl?: string;
3491
3637
  /** @description Marker for system-managed singleton orgs. `'reclaim-staff'` identifies the auto-membership org that every `@reclaimprotocol.org` user is enrolled into on login (PRD-1 §3). Absent on normal user-created orgs. Names, status, and lifecycle of system-managed orgs are server-protected — clients cannot rename, archive, or delete them. */
3492
3638
  readonly systemId?: string;
3493
- /** @description All users with a role in this organization. `PERSONAL` and `ORG` orgs always contain at least one active `OWNER` (`PERSONAL` orgs contain exactly one member); `ANONYMOUS` orgs have no members, so this array is empty for them. */
3639
+ /** @description All users with a role in this organization. `ORG` orgs always contain at least one active `OWNER`; `ANONYMOUS` orgs have no members, so this array is empty for them. */
3494
3640
  members: components["schemas"]["OrganizationMember"][];
3495
3641
  /** @description Providers owned by this organization. */
3496
3642
  providers?: components["schemas"]["ProviderListItem"][];
@@ -3770,6 +3916,11 @@ export interface components {
3770
3916
  /** @default false */
3771
3917
  canEncryptResult: boolean;
3772
3918
  label?: string;
3919
+ /**
3920
+ * @description Set to true to replace an existing, different public key. Without it, the call returns 409 when the organization already has another key. Results encrypted to the old key can no longer be decrypted.
3921
+ * @default false
3922
+ */
3923
+ replace: boolean;
3773
3924
  };
3774
3925
  /** @description Body for `PUT /orgs/{orgId}/keypair`. Carries the org's eth public key as a secp256k1 public JWK. */
3775
3926
  OrgKeypairJwkRequest: {
@@ -3777,6 +3928,11 @@ export interface components {
3777
3928
  /** @default false */
3778
3929
  canEncryptResult: boolean;
3779
3930
  label?: string;
3931
+ /**
3932
+ * @description Set to true to replace an existing, different public key. Without it, the call returns 409 when the organization already has another key. Results encrypted to the old key can no longer be decrypted.
3933
+ * @default false
3934
+ */
3935
+ replace: boolean;
3780
3936
  };
3781
3937
  /** @description Response of `POST /orgs/{orgId}/token`. The plaintext `orgSecret` is shown **only once** here; the server stores only its HMAC. Use it as `Authorization: Bearer <orgSecret>` (the `OrgToken` scheme). An org may hold several keys; issuing a new one does not affect the others. */
3782
3938
  OrgToken: {
@@ -5229,7 +5385,7 @@ export interface components {
5229
5385
  webSettings: components["schemas"]["ProviderWebSettings"];
5230
5386
  requiredContext?: components["schemas"]["ProviderRequiredContext"];
5231
5387
  };
5232
- /** @description Body for `POST /orgs` — just a name. Every org is created keyless, like auto-provisioned personal orgs; its Ethereum (secp256k1) key pair is published separately via `PUT /orgs/{orgId}/keypair`, which is also where `canEncryptResult` is set. Creation deliberately collects nothing else so it never blocks on generating and safeguarding a private key. */
5388
+ /** @description Body for `POST /orgs` — just a name. Every org is created keyless, like each user's default org; its Ethereum (secp256k1) key pair is published separately via `PUT /orgs/{orgId}/keypair`, which is also where `canEncryptResult` is set. Creation deliberately collects nothing else so it never blocks on generating and safeguarding a private key. */
5233
5389
  CreateOrgRequest: {
5234
5390
  name: string;
5235
5391
  };
@@ -5736,7 +5892,7 @@ export interface components {
5736
5892
  resolvedVersion: string;
5737
5893
  /** Format: uri */
5738
5894
  initialUrl: string;
5739
- /** @description Legacy-only preference. Builder clients always run the structured recipe and never enable AI or manual verification from this value. */
5895
+ /** @description Effective AI-agent preference: the session's choice, else whether the version is an `llm` provider. When true, the Builder verification page runs the AI authoring agent instead of the structured recipe. */
5740
5896
  preferAiAgent: boolean;
5741
5897
  geoLocation?: string;
5742
5898
  jsUserScripts?: string;
@@ -5786,7 +5942,7 @@ export interface components {
5786
5942
  preferredLocale?: string;
5787
5943
  /** @description When the organization-bound legacy TEE nonce context was first stored. The nonce data itself is present in `context` as `attestationNonce` and `attestationNonceData`. */
5788
5944
  teeNonceBoundAt?: components["schemas"]["Timestamp"];
5789
- /** @description Legacy-only preference echoed for compatibility. Builder-mode clients run the structured recipe and do not enable AI or manual verification. */
5945
+ /** @description The creator's AI-agent preference. When true, the Builder verification page runs the AI authoring agent instead of the structured recipe. */
5790
5946
  preferAiAgent?: boolean;
5791
5947
  /** @description Whether this session was created with diagnostic mode enabled (see CreateVerificationSessionRequest.diagnostics). Set once at creation and never changes afterward. Gates whether Builder records claimant IP addresses and how much detail diagnostic events carry; the `diag` parameter on `verificationUrl` mirrors this value and is not itself authoritative. */
5792
5948
  diagnostics: boolean;
@@ -5810,7 +5966,7 @@ export interface components {
5810
5966
  * @description Id of the registered verification client whose base URL was used (see `verification_clients`).
5811
5967
  */
5812
5968
  verificationClientId: string;
5813
- /** @description Ready-to-share URL: the registered base URL with the session id attached by the Builder — substituted into a `{sessionId}` placeholder, or appended as a `?sessionId=…` query parameter. It always includes `api=2`, which selects Builder mode in dual-mode Verification Clients. The Consumer may append its own redirect query fields before opening the URL for the claimant; the Builder does not store or execute those redirects. */
5969
+ /** @description The URL to send your end user to: this is where they verify. Ready-to-share: the registered base URL with the session id attached by the Builder — substituted into a `{sessionId}` placeholder, or appended as a `?sessionId=…` query parameter. It always includes `api=2`, which selects Builder mode in dual-mode Verification Clients. The Consumer may append its own redirect query fields before opening the URL for the claimant; the Builder does not store or execute those redirects. */
5814
5970
  verificationUrl: string;
5815
5971
  createdAt: components["schemas"]["Timestamp"];
5816
5972
  /** @description When the session stops being completable. After this, a still- `pending` session becomes `expired` on the next sweep and the end-user can no longer finish it. */
@@ -5841,13 +5997,20 @@ export interface components {
5841
5997
  context: {
5842
5998
  [key: string]: unknown;
5843
5999
  };
5844
- /** @description Optional. Must exactly equal the base URL of a registered verification client (see the `verification_clients` registry / `/admin/verification-clients`). Omit to use the default (`portals`) client. The Builder resolves and stores the registered client UUID, then returns the ready-to-share `verificationUrl` with the session id and `api=2`. A URL that is not a registered client's base is rejected with 400. Consumers append any client-owned redirect parameters after receiving the URL; Builder does not manage them. */
6000
+ /**
6001
+ * @description Optional. Must exactly equal the base URL of a registered verification client (see the `verification_clients` registry / `/admin/verification-clients`). Omit to use the default (`portals`) client. The Builder resolves and stores the registered client UUID, then returns the ready-to-share `verificationUrl` with the session id and `api=2`. A URL that is not a registered client's base is rejected with 400. Consumers append any client-owned redirect parameters after receiving the URL; Builder does not manage them. The built-in clients are `{origin}/share/{name}`, listed in the examples.
6002
+ * @example https://build.reclaimprotocol.org/share/portals
6003
+ * @example https://build.reclaimprotocol.org/share/verifier-app
6004
+ * @example https://build.reclaimprotocol.org/share/reclaim-browser-extension
6005
+ * @example https://build.reclaimprotocol.org/share/builder
6006
+ * @example https://build.reclaimprotocol.org/share/inapp-sdk
6007
+ */
5845
6008
  verificationClientUrl?: string;
5846
6009
  /** @description Optional active theme owned by the organization. When omitted, Builder snapshots the organization's most recently updated active theme. If the organization has no active theme, the Verification Client uses its default presentation. */
5847
6010
  themeId?: components["schemas"]["ThemeID"];
5848
6011
  /** @description Optional locale override for this verification session. It takes precedence over the organization theme's preferred locale. */
5849
6012
  preferredLocale?: string;
5850
- /** @description Legacy-only preference. Builder mode runs the structured recipe and does not enable AI or manual verification. Omit this field for Builder-mode sessions; dual-mode clients may continue to interpret it only on their legacy path. */
6013
+ /** @description When true, the Builder verification page runs the AI authoring agent instead of the providers' structured recipes. A proven recipe is published only for the provider's own organization; for any other provider it is submitted for admin review. Omit it to run the stored recipes. */
5851
6014
  preferAiAgent?: boolean;
5852
6015
  /** @description Optional; omit or send false for a normal session. Opts this session into diagnostic mode. A diagnostic session records more event detail, including personal data such as the claimant's IP addresses (see ClaimantDetails.network). Builder appends `diag=1` to the returned `verificationUrl` for a diagnostic session and strips any `diag` value the Consumer's own `verificationClientUrl` carries, so this field — not the URL — is the only way to turn diagnostics on. Treat a diagnostic verification URL as sensitive, and don't hand it to a claimant by default. */
5853
6016
  diagnostics?: boolean;
@@ -6304,6 +6467,31 @@ export interface components {
6304
6467
  export type $defs = Record<string, never>;
6305
6468
  export interface operations {
6306
6469
  Index: {
6470
+ parameters: {
6471
+ query?: {
6472
+ /** @description Free-text query matched against website domain, data points, brand title, and description. Restores the search box and results on a shared/bookmarked link. */
6473
+ q?: string;
6474
+ /** @description Narrow to websites with at least one visible provider carrying ANY of these tags. Repeat to pass several (OR-combined). */
6475
+ tag?: string[];
6476
+ };
6477
+ header?: never;
6478
+ path?: never;
6479
+ cookie?: never;
6480
+ };
6481
+ requestBody?: never;
6482
+ responses: {
6483
+ 200: components["responses"]["HTMLResponse"];
6484
+ /** @description Signed in; redirects to the Dashboard. */
6485
+ 302: {
6486
+ headers: {
6487
+ [name: string]: unknown;
6488
+ };
6489
+ content?: never;
6490
+ };
6491
+ default: components["responses"]["ProblemResponse"];
6492
+ };
6493
+ };
6494
+ Discover: {
6307
6495
  parameters: {
6308
6496
  query?: {
6309
6497
  /** @description Free-text query matched against website domain, data points, brand title, and description. Restores the search box and results on a shared/bookmarked link. */
@@ -6672,40 +6860,6 @@ export interface operations {
6672
6860
  default: components["responses"]["ProblemResponse"];
6673
6861
  };
6674
6862
  };
6675
- SiteBuildRepair: {
6676
- parameters: {
6677
- query: {
6678
- /** @description The failing sandbox session whose analytics seed the prompt. */
6679
- sessionId: components["schemas"]["SessionID"];
6680
- dataPoints?: string[];
6681
- mode?: components["schemas"]["ResolveMode"];
6682
- provided?: string[];
6683
- /** @description Source pins: `pins[<dataPoint>]=<providerId>`. Pins the provider that must prove that data point; a pinned provider is taken first and is never pruned. Omit (or send empty) for Auto. A comma-separated list is also accepted — the first id that covers the point wins. */
6684
- pins?: {
6685
- [key: string]: string;
6686
- };
6687
- exclude?: components["schemas"]["ProviderID"][];
6688
- };
6689
- header?: never;
6690
- path: {
6691
- domain: string;
6692
- };
6693
- cookie?: never;
6694
- };
6695
- requestBody?: never;
6696
- responses: {
6697
- /** @description The repair wizard fragment. */
6698
- 200: {
6699
- headers: {
6700
- [name: string]: unknown;
6701
- };
6702
- content: {
6703
- "text/html": components["schemas"]["HtmlContent"];
6704
- };
6705
- };
6706
- default: components["responses"]["ProblemResponse"];
6707
- };
6708
- };
6709
6863
  SiteBuildAlternative: {
6710
6864
  parameters: {
6711
6865
  query: {
@@ -6747,49 +6901,22 @@ export interface operations {
6747
6901
  default: components["responses"]["ProblemResponse"];
6748
6902
  };
6749
6903
  };
6750
- DiscoverTeachAgent: {
6904
+ OpenIntegrate: {
6751
6905
  parameters: {
6752
- query?: {
6753
- /** @description Website the user wanted to verify data from. */
6754
- domain?: string;
6755
- /** @description Specific data point the user could not find. */
6756
- dataPoint?: string;
6757
- };
6906
+ query?: never;
6758
6907
  header?: never;
6759
6908
  path?: never;
6760
6909
  cookie?: never;
6761
6910
  };
6762
6911
  requestBody?: never;
6763
6912
  responses: {
6764
- 200: components["responses"]["HTMLResponse"];
6765
- default: components["responses"]["ProblemResponse"];
6766
- };
6767
- };
6768
- DiscoverAgentWizard: {
6769
- parameters: {
6770
- query?: never;
6771
- header?: never;
6772
- path?: never;
6773
- cookie?: never;
6774
- };
6775
- requestBody: {
6776
- content: {
6777
- "application/x-www-form-urlencoded": {
6778
- /** @description The wizard's ready-to-paste task prompt. */
6779
- basePrompt: string;
6780
- /** @description Prefix of the wizard's element ids, so copy targets stay unique. */
6781
- idPrefix: string;
6782
- /** @description Picked coding agent; unknown values fall back to the first. */
6783
- agent?: string;
6784
- /** @description What the user is building, appended to the prompt. */
6785
- building?: string;
6786
- /** @description Label for `building` in the prompt. Defaults to "What I'm building". */
6787
- lead?: string;
6913
+ /** @description Redirect to the Integrate page, or to sign-in. */
6914
+ 302: {
6915
+ headers: {
6916
+ [name: string]: unknown;
6788
6917
  };
6918
+ content?: never;
6789
6919
  };
6790
- };
6791
- responses: {
6792
- 200: components["responses"]["HTMLResponse"];
6793
6920
  default: components["responses"]["ProblemResponse"];
6794
6921
  };
6795
6922
  };
@@ -7071,7 +7198,7 @@ export interface operations {
7071
7198
  AdminUsers: {
7072
7199
  parameters: {
7073
7200
  query?: {
7074
- /** @description Matches email, name, user id, or personal organization id (hyphens optional in ids). */
7201
+ /** @description Matches email, name, user id, or default organization id (hyphens optional in ids). */
7075
7202
  q?: string;
7076
7203
  };
7077
7204
  header?: never;
@@ -8075,6 +8202,14 @@ export interface operations {
8075
8202
  api?: "2";
8076
8203
  /** @description Backend-derived echo of the session's `diagnostics` field, carried through to the launched destination unchanged. See the same parameter on `VerificationPage`. */
8077
8204
  diag?: "1";
8205
+ /** @description Added to the session's `launchOptions` if it has none. */
8206
+ redirectUrl?: string;
8207
+ /** @description JSON `VerificationLaunchRedirectOptions`. Added to the session's `launchOptions` if it has none. */
8208
+ redirectUrlOptions?: string;
8209
+ /** @description Added to the session's `launchOptions` if it has none. */
8210
+ cancelRedirectUrl?: string;
8211
+ /** @description JSON `VerificationLaunchRedirectOptions`. Added to the session's `launchOptions` if it has none. */
8212
+ cancelRedirectUrlOptions?: string;
8078
8213
  };
8079
8214
  header?: never;
8080
8215
  path: {
@@ -8241,7 +8376,7 @@ export interface operations {
8241
8376
  "text/html": components["schemas"]["HtmlContent"];
8242
8377
  };
8243
8378
  };
8244
- /** @description The new or existing repair session. */
8379
+ /** @description The new repair session. */
8245
8380
  201: {
8246
8381
  headers: {
8247
8382
  [name: string]: unknown;
@@ -8253,28 +8388,6 @@ export interface operations {
8253
8388
  default: components["responses"]["ProblemResponse"];
8254
8389
  };
8255
8390
  };
8256
- ActivateFixWithAiRepair: {
8257
- parameters: {
8258
- query?: never;
8259
- header?: never;
8260
- path: {
8261
- sessionId: components["schemas"]["SessionID"];
8262
- };
8263
- cookie?: never;
8264
- };
8265
- requestBody?: never;
8266
- responses: {
8267
- /** @description The repair was queued or was already active. */
8268
- 204: {
8269
- headers: {
8270
- [name: string]: unknown;
8271
- };
8272
- content?: never;
8273
- };
8274
- 409: components["responses"]["ProblemResponse"];
8275
- default: components["responses"]["ProblemResponse"];
8276
- };
8277
- };
8278
8391
  JwksJson: {
8279
8392
  parameters: {
8280
8393
  query?: never;
@@ -8748,9 +8861,11 @@ export interface operations {
8748
8861
  /** @description Integrate tab only. Which integration path to show: a coding agent over MCP, the client package, or plain HTTP. */
8749
8862
  track?: "agent" | "sdk" | "http";
8750
8863
  /** @description Integrate tab, agent track only. Which coding agent's install command to show. */
8751
- agent?: "claude" | "cursor" | "opencode" | "codex" | "others";
8752
- /** @description Dashboard tab only. Scopes the report to sessions that ran this provider. Options come from `GET /orgs/{orgId}/providers/used`. */
8753
- providerId?: components["schemas"]["ProviderID"];
8864
+ agent?: "claude" | "copilot" | "cursor" | "omp" | "opencode" | "codex" | "antigravity" | "others";
8865
+ /** @description Integrate tab, agent track only. What users prove, as typed into the prompt's goal field; kept when another agent is picked. */
8866
+ goal?: string;
8867
+ /** @description Integrate tab: the providers to show in the examples in place of placeholder ids, for example when arriving from a provider page or a build page. Repeat to pass several. Dashboard tab: scopes the report to sessions that ran this provider (the first one); options come from `GET /orgs/{orgId}/providers/used`. */
8868
+ providerId?: components["schemas"]["ProviderID"][];
8754
8869
  /** @description Integrate tab, HTTP track only. Which Verification Client the create-session example targets. `auto` (the default) leaves `verificationClientUrl` out. */
8755
8870
  client?: "auto" | "portals" | "verifier-app" | "reclaim-browser-extension" | "builder" | "inapp-sdk";
8756
8871
  /** @description Dashboard tab only. Start of the reporting period; defaults to 30 days before `to`. */
@@ -8766,7 +8881,7 @@ export interface operations {
8766
8881
  /** @description Providers tab only. Renders the New provider dialog already open, so a link from another page can land on it. */
8767
8882
  newProvider?: boolean;
8768
8883
  /** @description Post-checkout status signal set by Stripe redirect (`success_url` / `cancel_url`), the card-save flow, and the credit top-up. Drives a one-shot notice and deep-links to the Billing tab; nothing else about the page depends on it. */
8769
- billing?: "success" | "cancelled" | "changed" | "credits";
8884
+ billing?: "success" | "cancelled" | "changed" | "credits" | "card";
8770
8885
  };
8771
8886
  header?: never;
8772
8887
  path: {
@@ -8840,31 +8955,6 @@ export interface operations {
8840
8955
  default: components["responses"]["ProblemResponse"];
8841
8956
  };
8842
8957
  };
8843
- ConvertOrgToRegular: {
8844
- parameters: {
8845
- query?: never;
8846
- header?: never;
8847
- path: {
8848
- orgId: components["schemas"]["OrgID"];
8849
- };
8850
- cookie?: never;
8851
- };
8852
- requestBody?: never;
8853
- responses: {
8854
- /** @description Converted */
8855
- 200: {
8856
- headers: {
8857
- [name: string]: unknown;
8858
- };
8859
- content: {
8860
- "application/json": components["schemas"]["Organization"];
8861
- };
8862
- };
8863
- 403: components["responses"]["ForbiddenResponse"];
8864
- 409: components["responses"]["ProblemResponse"];
8865
- default: components["responses"]["ProblemResponse"];
8866
- };
8867
- };
8868
8958
  SearchOrgMembers: {
8869
8959
  parameters: {
8870
8960
  query?: {
@@ -9251,6 +9341,7 @@ export interface operations {
9251
9341
  };
9252
9342
  400: components["responses"]["ProblemResponse"];
9253
9343
  403: components["responses"]["ForbiddenResponse"];
9344
+ 409: components["responses"]["ProblemResponse"];
9254
9345
  default: components["responses"]["ProblemResponse"];
9255
9346
  };
9256
9347
  };
@@ -9659,6 +9750,33 @@ export interface operations {
9659
9750
  default: components["responses"]["ProblemResponse"];
9660
9751
  };
9661
9752
  };
9753
+ CreateCardSetupSession: {
9754
+ parameters: {
9755
+ query?: never;
9756
+ header?: never;
9757
+ path: {
9758
+ orgId: components["schemas"]["OrgID"];
9759
+ };
9760
+ cookie?: never;
9761
+ };
9762
+ requestBody?: never;
9763
+ responses: {
9764
+ /** @description Checkout session created */
9765
+ 200: {
9766
+ headers: {
9767
+ [name: string]: unknown;
9768
+ };
9769
+ content: {
9770
+ "application/json": {
9771
+ /** Format: uri */
9772
+ url: string;
9773
+ };
9774
+ };
9775
+ };
9776
+ 403: components["responses"]["ForbiddenResponse"];
9777
+ default: components["responses"]["ProblemResponse"];
9778
+ };
9779
+ };
9662
9780
  CancelBillingSubscription: {
9663
9781
  parameters: {
9664
9782
  query?: never;
@@ -10855,10 +10973,16 @@ export interface operations {
10855
10973
  [name: string]: unknown;
10856
10974
  };
10857
10975
  content: {
10858
- "text/html": components["schemas"]["HtmlContent"];
10859
10976
  "application/json": components["schemas"]["VerificationAnalytics"];
10860
10977
  };
10861
10978
  };
10979
+ /** @description A browser; redirects to the org's Dashboard. */
10980
+ 302: {
10981
+ headers: {
10982
+ [name: string]: unknown;
10983
+ };
10984
+ content?: never;
10985
+ };
10862
10986
  403: components["responses"]["ForbiddenResponse"];
10863
10987
  default: components["responses"]["ProblemResponse"];
10864
10988
  };
@@ -10924,6 +11048,90 @@ export interface operations {
10924
11048
  default: components["responses"]["ProblemResponse"];
10925
11049
  };
10926
11050
  };
11051
+ CreateAiVerificationSession: {
11052
+ parameters: {
11053
+ query?: never;
11054
+ header?: never;
11055
+ path?: never;
11056
+ cookie?: never;
11057
+ };
11058
+ requestBody: {
11059
+ content: {
11060
+ "application/json": components["schemas"]["CreateAiVerificationSessionRequest"];
11061
+ };
11062
+ };
11063
+ responses: {
11064
+ /** @description Session created */
11065
+ 201: {
11066
+ headers: {
11067
+ [name: string]: unknown;
11068
+ };
11069
+ content: {
11070
+ "application/json": components["schemas"]["VerificationSession"];
11071
+ };
11072
+ };
11073
+ /** @description Overage is paused: the organization is past its plan allowance, and its prepaid credits and credit-exhaustion allowance are spent (`event: billing_required`). */
11074
+ 402: {
11075
+ headers: {
11076
+ [name: string]: unknown;
11077
+ };
11078
+ content: {
11079
+ "application/problem+json": components["schemas"]["Problem"];
11080
+ };
11081
+ };
11082
+ /** @description The organization has no callback subscription. */
11083
+ 409: {
11084
+ headers: {
11085
+ [name: string]: unknown;
11086
+ };
11087
+ content: {
11088
+ "application/problem+json": components["schemas"]["Problem"];
11089
+ };
11090
+ };
11091
+ /** @description The verification quota is exceeded (`event: billing_required` with a terminal `sessionId`). */
11092
+ 429: {
11093
+ headers: {
11094
+ [name: string]: unknown;
11095
+ };
11096
+ content: {
11097
+ "application/problem+json": components["schemas"]["Problem"];
11098
+ };
11099
+ };
11100
+ default: components["responses"]["ProblemResponse"];
11101
+ };
11102
+ };
11103
+ GetAiVerificationSession: {
11104
+ parameters: {
11105
+ query?: never;
11106
+ header?: never;
11107
+ path: {
11108
+ sessionId: components["schemas"]["SessionID"];
11109
+ };
11110
+ cookie?: never;
11111
+ };
11112
+ requestBody?: never;
11113
+ responses: {
11114
+ /** @description Ok */
11115
+ 200: {
11116
+ headers: {
11117
+ [name: string]: unknown;
11118
+ };
11119
+ content: {
11120
+ "application/json": components["schemas"]["AiVerificationSession"];
11121
+ };
11122
+ };
11123
+ /** @description No session with this ID, or the session wasn't created by `POST /verifications/ai-sessions`. */
11124
+ 404: {
11125
+ headers: {
11126
+ [name: string]: unknown;
11127
+ };
11128
+ content: {
11129
+ "application/problem+json": components["schemas"]["Problem"];
11130
+ };
11131
+ };
11132
+ default: components["responses"]["ProblemResponse"];
11133
+ };
11134
+ };
10927
11135
  GetVerificationSession: {
10928
11136
  parameters: {
10929
11137
  query?: never;
@@ -11269,8 +11477,8 @@ export interface operations {
11269
11477
  /** Format: uuid */
11270
11478
  subscriptionId: string;
11271
11479
  event: components["schemas"]["VerificationEvent"];
11272
- /** @description The result payload, as raw text: an ECIES ciphertext (base64url) wrapping the signed result JWS when the org's `canEncryptResult` is enabled, else the plaintext signed JWS JSON. */
11273
- payload: string;
11480
+ /** @description The payload, as raw text. For a signed result: an ECIES ciphertext (base64url) wrapping the signed result JWS when the org's `canEncryptResult` is enabled, else the plaintext signed JWS JSON. For an event notification: `{event, eventData}` JSON. `null` once a signed result was delivered, or after 7 days undelivered. */
11481
+ payload: string | null;
11274
11482
  deliveryStatus: components["schemas"]["CallbackDeliveryStatus"];
11275
11483
  createdAt: components["schemas"]["Timestamp"];
11276
11484
  }[];
@@ -11347,6 +11555,7 @@ export interface operations {
11347
11555
  };
11348
11556
  403: components["responses"]["ForbiddenResponse"];
11349
11557
  404: components["responses"]["ProblemResponse"];
11558
+ 410: components["responses"]["ProblemResponse"];
11350
11559
  default: components["responses"]["ProblemResponse"];
11351
11560
  };
11352
11561
  };