@reclaimprotocol/client 0.1.33 → 0.1.35

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.
@@ -1,5 +1,5 @@
1
1
  // AUTO-GENERATED by packages/app/scripts/openapi-typegen.ts
2
- // from packages/app/openapi.yaml (spec v0.1.0, source sha256:3e28ff308da3).
2
+ // from packages/app/openapi.yaml (spec v0.1.0, source sha256:de7373741e35).
3
3
  // The hash catches drift the version misses (a spec can change without a
4
4
  // version bump) — do not remove it as "redundant" with the version.
5
5
  // Run `npm run openapi:gen --workspace=packages/app` to regenerate. Do not edit by hand.
@@ -17,8 +17,8 @@ export interface paths {
17
17
  cookie?: never;
18
18
  };
19
19
  /**
20
- * Home — sign-in or Discover
21
- * @description Signed in, renders Discover (see `GET /discover`). Signed out, renders the sign-in page; a signed-out link carrying Discover's `q` / `tag` redirects to `/discover` with them.
20
+ * Home — sign-in or the Dashboard
21
+ * @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.
22
22
  */
23
23
  get: operations["Index"];
24
24
  put?: never;
@@ -1116,6 +1116,8 @@ export interface paths {
1116
1116
  * - `zkfetch` — a static informational page. zkFetch has no claimant
1117
1117
  * step; nothing ever redirects a browser here by design.
1118
1118
  *
1119
+ * 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.
1120
+ * `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.
1119
1121
  * Sets `Referrer-Policy: no-referrer`, so a `sessionId` never rides along in a `Referer` header to wherever a client eventually redirects.
1120
1122
  */
1121
1123
  get: operations["SharePage"];
@@ -1241,8 +1243,8 @@ export interface paths {
1241
1243
  get: operations["FixWithAiRecovery"];
1242
1244
  put?: never;
1243
1245
  /**
1244
- * Create or reopen a billed AI repair session
1245
- * @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.
1246
+ * Create a billed AI repair session
1247
+ * @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.
1246
1248
  */
1247
1249
  post: operations["CreateFixWithAiSession"];
1248
1250
  delete?: never;
@@ -1251,26 +1253,6 @@ export interface paths {
1251
1253
  patch?: never;
1252
1254
  trace?: never;
1253
1255
  };
1254
- "/v/{sessionId}/fix-with-ai/activate": {
1255
- parameters: {
1256
- query?: never;
1257
- header?: never;
1258
- path?: never;
1259
- cookie?: never;
1260
- };
1261
- get?: never;
1262
- put?: never;
1263
- /**
1264
- * Start a pending AI repair after the verification page loads
1265
- * @description Idempotently queues a pending repair session. The server derives the claimant country from the request and publishes no browser credentials.
1266
- */
1267
- post: operations["ActivateFixWithAiRepair"];
1268
- delete?: never;
1269
- options?: never;
1270
- head?: never;
1271
- patch?: never;
1272
- trace?: never;
1273
- };
1274
1256
  "/.well-known/jwks.json": {
1275
1257
  parameters: {
1276
1258
  query?: never;
@@ -1371,6 +1353,26 @@ export interface paths {
1371
1353
  patch?: never;
1372
1354
  trace?: never;
1373
1355
  };
1356
+ "/docs/agent-installation.md": {
1357
+ parameters: {
1358
+ query?: never;
1359
+ header?: never;
1360
+ path?: never;
1361
+ cookie?: never;
1362
+ };
1363
+ /**
1364
+ * Agent installation instructions
1365
+ * @description How to install the Reclaim MCP server in each supported coding agent, as Markdown for a coding agent to read: the exact commands or configuration per agent, how to verify the installation, and troubleshooting. It tells the agent to follow only the section for the client it runs in. Public.
1366
+ */
1367
+ get: operations["AgentInstallationMarkdown"];
1368
+ put?: never;
1369
+ post?: never;
1370
+ delete?: never;
1371
+ options?: never;
1372
+ head?: never;
1373
+ patch?: never;
1374
+ trace?: never;
1375
+ };
1374
1376
  "/login": {
1375
1377
  parameters: {
1376
1378
  query?: never;
@@ -1782,7 +1784,7 @@ export interface paths {
1782
1784
  get: operations["GetOrgKeypair"];
1783
1785
  /**
1784
1786
  * Set (or rotate) the organization's encryption keypair
1785
- * @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.
1787
+ * @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.
1786
1788
  */
1787
1789
  put: operations["SetOrgKeypair"];
1788
1790
  post?: never;
@@ -2044,6 +2046,26 @@ export interface paths {
2044
2046
  patch?: never;
2045
2047
  trace?: never;
2046
2048
  };
2049
+ "/orgs/{orgId}/billing/card": {
2050
+ parameters: {
2051
+ query?: never;
2052
+ header?: never;
2053
+ path?: never;
2054
+ cookie?: never;
2055
+ };
2056
+ get?: never;
2057
+ put?: never;
2058
+ /**
2059
+ * Save a card for the organization
2060
+ * @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`.
2061
+ */
2062
+ post: operations["CreateCardSetupSession"];
2063
+ delete?: never;
2064
+ options?: never;
2065
+ head?: never;
2066
+ patch?: never;
2067
+ trace?: never;
2068
+ };
2047
2069
  "/orgs/{orgId}/billing/subscription": {
2048
2070
  parameters: {
2049
2071
  query?: never;
@@ -2340,7 +2362,7 @@ export interface paths {
2340
2362
  };
2341
2363
  /**
2342
2364
  * Get a specific provider version
2343
- * @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.
2365
+ * @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.
2344
2366
  */
2345
2367
  get: operations["GetProviderVersion"];
2346
2368
  put?: never;
@@ -2496,12 +2518,26 @@ export interface paths {
2496
2518
  /**
2497
2519
  * Register a callback subscription
2498
2520
  * @description Registers a destination for verification results on the organization
2499
- * the presented `OrgToken` resolves to. The body is just `callbackUrl`
2500
- * and `events`. At least one subscription must exist for the org before a
2501
- * verification session can be created. Delivery is scoped by org: terminal
2502
- * results are ECIES-encrypted to the org's eth public key when its
2503
- * `canEncryptResult` is enabled (see `PUT /orgs/{orgId}/keypair`), else
2504
- * delivered as plaintext.
2521
+ * the presented `OrgToken` resolves to. At least one subscription must
2522
+ * exist for the org before you can create a verification session.
2523
+ * Delivery is scoped by org: terminal results are ECIES-encrypted to the
2524
+ * org's eth public key when its `canEncryptResult` is enabled (see
2525
+ * `PUT /orgs/{orgId}/keypair`), else delivered as plaintext.
2526
+ *
2527
+ * To receive results at a URL, send `callbackUrl` and `events`. Builder
2528
+ * POSTs each delivery to that URL.
2529
+ *
2530
+ * To read results without a public URL during local development, send
2531
+ * `deliveryMode: "pull"`. Builder keeps the deliveries and you read them
2532
+ * with `GET /verifications/callback-events`. A pull subscription is a
2533
+ * 90-second lease: it receives events and satisfies the session-creation
2534
+ * check only while the lease is unexpired. Send the same request about
2535
+ * every 30 seconds to renew it, and call
2536
+ * `POST /verifications/callback-listener/release` when you stop. Production
2537
+ * needs a webhook subscription. An org has at most one pull subscription.
2538
+ * If it already exists, Builder renews it and returns it with status 200.
2539
+ * If the body includes `events`, they replace the subscription's events;
2540
+ * if it omits them, the existing events are kept.
2505
2541
  */
2506
2542
  post: operations["CreateCallbackSubscription"];
2507
2543
  delete?: never;
@@ -2510,6 +2546,86 @@ export interface paths {
2510
2546
  patch?: never;
2511
2547
  trace?: never;
2512
2548
  };
2549
+ "/verifications/callback-listener/release": {
2550
+ parameters: {
2551
+ query?: never;
2552
+ header?: never;
2553
+ path?: never;
2554
+ cookie?: never;
2555
+ };
2556
+ get?: never;
2557
+ put?: never;
2558
+ /**
2559
+ * Release the pull listener
2560
+ * @description Expires the organization's pull subscription lease immediately, so it stops receiving events and no longer satisfies the session-creation check. Stored events stay readable. Call it when the coding agent stops. It succeeds when no pull subscription exists or the lease has already expired.
2561
+ */
2562
+ post: operations["ReleaseCallbackListener"];
2563
+ delete?: never;
2564
+ options?: never;
2565
+ head?: never;
2566
+ patch?: never;
2567
+ trace?: never;
2568
+ };
2569
+ "/verifications/callback-events": {
2570
+ parameters: {
2571
+ query?: never;
2572
+ header?: never;
2573
+ path?: never;
2574
+ cookie?: never;
2575
+ };
2576
+ /**
2577
+ * List events from the pull subscription
2578
+ * @description Lists the deliveries of the organization's pull subscription, oldest
2579
+ * first. Use it to read verification results without a public URL.
2580
+ * Create the pull subscription with `POST /verifications/callback-subscriptions`
2581
+ * and `deliveryMode: "pull"`.
2582
+ *
2583
+ * Each item's `envelope` is the body that Builder POSTs to a webhook
2584
+ * subscription, so you handle both the same way. For a pull
2585
+ * subscription, `envelope.timestamp` is the time Builder created the
2586
+ * delivery.
2587
+ *
2588
+ * To poll, pass the previous response's `next` as `after`. `next` is
2589
+ * always set, and equals `after` when no new events exist. Treat cursors
2590
+ * as opaque. A cursor read is not complete: a delivery that commits after
2591
+ * a later one can be missed, because the cursor has already moved past
2592
+ * it. The reliable path is `pending=true` plus
2593
+ * `POST /verifications/callback-events/acknowledge`: acknowledge each
2594
+ * event you handled, and read `pending=true` without `after` so anything
2595
+ * missed shows up on the next read.
2596
+ *
2597
+ * Builder keeps result payloads for seven days. Acknowledged events stay
2598
+ * readable until then.
2599
+ */
2600
+ get: operations["ListCallbackEvents"];
2601
+ put?: never;
2602
+ post?: never;
2603
+ delete?: never;
2604
+ options?: never;
2605
+ head?: never;
2606
+ patch?: never;
2607
+ trace?: never;
2608
+ };
2609
+ "/verifications/callback-events/acknowledge": {
2610
+ parameters: {
2611
+ query?: never;
2612
+ header?: never;
2613
+ path?: never;
2614
+ cookie?: never;
2615
+ };
2616
+ get?: never;
2617
+ put?: never;
2618
+ /**
2619
+ * Acknowledge events from the pull subscription
2620
+ * @description Marks pull deliveries as `delivered` so `GET /verifications/callback-events` with `pending=true` stops returning them. Builder keeps the payloads until the seven-day retention limit. Ids that are unknown, belong to another organization, or are already acknowledged are ignored.
2621
+ */
2622
+ post: operations["AcknowledgeCallbackEvents"];
2623
+ delete?: never;
2624
+ options?: never;
2625
+ head?: never;
2626
+ patch?: never;
2627
+ trace?: never;
2628
+ };
2513
2629
  "/verifications/callback-subscriptions/{subscriptionId}": {
2514
2630
  parameters: {
2515
2631
  query?: never;
@@ -2545,7 +2661,8 @@ export interface paths {
2545
2661
  put?: never;
2546
2662
  /**
2547
2663
  * Register a callback subscription on an organization
2548
- * @description Registers a destination for verification results on the organization. Caller must be an active member of the org. The body is just `callbackUrl` and `events`; delivery is scoped to the org and encrypted as an ECIES ciphertext (base64url) to the org's encryption credential when set, else delivered as plaintext.
2664
+ * @description Registers a destination for verification results on the organization. Caller must be an active member of the org. Delivery is scoped to the org and encrypted as an ECIES ciphertext (base64url) to the org's encryption credential when set, else delivered as plaintext.
2665
+ * Send `callbackUrl` and `events` to receive results at a URL. Send `deliveryMode: "pull"` to keep results for reading with `GET /verifications/callback-events`. A pull subscription works only while its 90-second lease is unexpired, and each repeated request renews it. An org has at most one pull subscription. If it already exists, Builder returns it with status 200.
2549
2666
  */
2550
2667
  post: operations["CreateOrgCallbackSubscription"];
2551
2668
  delete?: never;
@@ -2685,7 +2802,7 @@ export interface paths {
2685
2802
  };
2686
2803
  /**
2687
2804
  * Verification outcomes by day, device, and country
2688
- * @description Organization-scoped creation cohorts in UTC. Outcomes are current at query time. Unknown device and country values have their own buckets.
2805
+ * @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.
2689
2806
  */
2690
2807
  get: operations["GetOrgVerificationAnalytics"];
2691
2808
  put?: never;
@@ -2748,6 +2865,118 @@ export interface paths {
2748
2865
  patch?: never;
2749
2866
  trace?: never;
2750
2867
  };
2868
+ "/verifications/ai-sessions": {
2869
+ parameters: {
2870
+ query?: never;
2871
+ header?: never;
2872
+ path?: never;
2873
+ cookie?: never;
2874
+ };
2875
+ get?: never;
2876
+ put?: never;
2877
+ /**
2878
+ * Start an AI verification session from a prompt
2879
+ * @description Starts a verification from a plain-language prompt, such as "verify
2880
+ * I'm a student at Manipal University", instead of a list of providers.
2881
+ * Builder creates the session at once and returns it, as
2882
+ * `POST /verifications/sessions` does. Send the user to its
2883
+ * `verificationUrl`. In the background, Builder looks up the
2884
+ * `candidates` (pages the user opens and signs in to) and the
2885
+ * `dataPoints` to verify there, usually within a few seconds. Poll
2886
+ * `GET /verifications/ai-sessions/{sessionId}` until its `status` is
2887
+ * `ready` or `failed`. The share page at `verificationUrl` shows a
2888
+ * loading state meanwhile.
2889
+ *
2890
+ * Builder searches the provider catalog (public providers and your
2891
+ * organization's own providers) and the web. The web search finds a
2892
+ * portal the catalog lacks, or one that replaced a stale catalog page.
2893
+ * Builder caches a web result for a week, or for a day when it finds
2894
+ * nothing. A URL or domain in the prompt is a hint: pages on it rank
2895
+ * first.
2896
+ *
2897
+ * Deterministic checks run before any AI model. Builder rejects a
2898
+ * prompt that contains a password, card number, or Aadhaar number, that
2899
+ * contains instructions for the AI, or that makes a sensitive claim,
2900
+ * without calling a model. Builder withholds personal values the prompt
2901
+ * states, such as a name, email address, phone number, or student ID,
2902
+ * from the model and from the cache.
2903
+ *
2904
+ * Once the lookup is ready, the session's `context` holds the values
2905
+ * the prompt states, such as the user's name, merged with the `context`
2906
+ * you send. Your values take precedence.
2907
+ *
2908
+ * On `201`, the session has no providers: the AI agent works out how to
2909
+ * verify. The organization needs a callback subscription. The session
2910
+ * uses one verification from the quota pool of the
2911
+ * `verificationClientUrl` client. A prompt the checks above reject
2912
+ * creates no session and is free. If the lookup then fails (the prompt
2913
+ * isn't a request to verify something about the user, no login page
2914
+ * is found, or the model or web search stays unavailable), Builder
2915
+ * refunds the verification, ends the session with status `error`, and
2916
+ * sends the failure to your `verification_error` callbacks. Builder
2917
+ * caches lookups, so a repeated prompt resolves faster, even when it
2918
+ * names a different person.
2919
+ *
2920
+ * curl -X POST $BASE/verifications/ai-sessions \
2921
+ * -H "Authorization: Bearer $ORG_TOKEN" \
2922
+ * -H 'Content-Type: application/json' \
2923
+ * -d '{"prompt":"verify I am a student at Manipal University"}'
2924
+ *
2925
+ * Errors:
2926
+ *
2927
+ * - `400`: Builder rejects the prompt (for example, it targets an
2928
+ * internal host), `context` contains `attestationNonce` or
2929
+ * `attestationNonceData`, or `verificationClientUrl` isn't a
2930
+ * registered client.
2931
+ * - `409`: The organization has no callback subscription.
2932
+ * - `429` or `402`: The quota or credits are spent. The body has
2933
+ * `event: billing_required` and a terminal `sessionId`.
2934
+ *
2935
+ * A failed lookup isn't an error of this request: it shows in the
2936
+ * `error` of `GET /verifications/ai-sessions/{sessionId}`.
2937
+ */
2938
+ post: operations["CreateAiVerificationSession"];
2939
+ delete?: never;
2940
+ options?: never;
2941
+ head?: never;
2942
+ patch?: never;
2943
+ trace?: never;
2944
+ };
2945
+ "/verifications/ai-sessions/{sessionId}": {
2946
+ parameters: {
2947
+ query?: never;
2948
+ header?: never;
2949
+ path?: never;
2950
+ cookie?: never;
2951
+ };
2952
+ /**
2953
+ * Get what an AI verification session's prompt resolved to
2954
+ * @description Returns the lookup that `POST /verifications/ai-sessions` started for
2955
+ * the session. `status` is `resolving` until it finishes, then `ready`
2956
+ * with the pages and data points it found, or `failed` with an
2957
+ * `error`. Poll every second or two while it's `resolving`.
2958
+ *
2959
+ * `candidates` lists the pages to open, best first, each with a
2960
+ * `source` of `catalog` or `web`. It usually has one page. It has
2961
+ * several (up to 3) only when their `confidence` values are within 0.1
2962
+ * of the best page's value. In that case, the user picks one on the
2963
+ * session's `verificationUrl`.
2964
+ *
2965
+ * The `OrgToken` must resolve to the session's organization. To track
2966
+ * the session's status, call `GET /verifications/sessions/{sessionId}`.
2967
+ *
2968
+ * curl $BASE/verifications/ai-sessions/$SESSION_ID \
2969
+ * -H "Authorization: Bearer $ORG_TOKEN"
2970
+ */
2971
+ get: operations["GetAiVerificationSession"];
2972
+ put?: never;
2973
+ post?: never;
2974
+ delete?: never;
2975
+ options?: never;
2976
+ head?: never;
2977
+ patch?: never;
2978
+ trace?: never;
2979
+ };
2751
2980
  "/verifications/sessions/{sessionId}": {
2752
2981
  parameters: {
2753
2982
  query?: never;
@@ -3246,6 +3475,64 @@ export interface components {
3246
3475
  ProviderID: string;
3247
3476
  /** Format: uuid */
3248
3477
  OrgID: string;
3478
+ /** @description Body for `POST /verifications/ai-sessions`. */
3479
+ CreateAiVerificationSessionRequest: {
3480
+ /** @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. */
3481
+ prompt: string;
3482
+ /** @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. */
3483
+ context?: {
3484
+ [key: string]: unknown;
3485
+ };
3486
+ /** @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. */
3487
+ verificationClientUrl?: string;
3488
+ /** @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. */
3489
+ geoLocation?: string;
3490
+ };
3491
+ /** @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. */
3492
+ AiVerificationSession: {
3493
+ /**
3494
+ * Format: uuid
3495
+ * @description ID of the verification session. To track the session, call `GET /verifications/sessions/{sessionId}`.
3496
+ */
3497
+ sessionId: string;
3498
+ /**
3499
+ * @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.
3500
+ * @enum {string}
3501
+ */
3502
+ status: "resolving" | "ready" | "failed";
3503
+ /** @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. */
3504
+ error?: components["schemas"]["Problem"];
3505
+ /** @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. */
3506
+ dataPoints?: {
3507
+ /** @description Short camelCase name, such as `username`. */
3508
+ name: string;
3509
+ /** @description What the value is and why it proves the claim. */
3510
+ description: string;
3511
+ /** @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. */
3512
+ isOptional?: boolean;
3513
+ }[];
3514
+ /** @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. */
3515
+ context: {
3516
+ [key: string]: unknown;
3517
+ };
3518
+ /** @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. */
3519
+ candidates?: components["schemas"]["ResolvedLoginPage"][];
3520
+ };
3521
+ /** @description A page for the user to open and sign in to. */
3522
+ ResolvedLoginPage: {
3523
+ /**
3524
+ * Format: uri
3525
+ * @description URL of the page to open. For a `web` page, Builder removes the query and fragment.
3526
+ */
3527
+ loginUrl: string;
3528
+ /** @description Estimated likelihood, from 0 to 1, that signing in here shows the claim. Candidates below 0.5 are never returned. */
3529
+ confidence: number;
3530
+ /**
3531
+ * @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.
3532
+ * @enum {string}
3533
+ */
3534
+ source: "catalog" | "web";
3535
+ };
3249
3536
  /** @description A verification client id used as a filter. Hyphens are ignored. */
3250
3537
  VerificationClientIDFilter: string;
3251
3538
  /** @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. */
@@ -3750,6 +4037,11 @@ export interface components {
3750
4037
  /** @default false */
3751
4038
  canEncryptResult: boolean;
3752
4039
  label?: string;
4040
+ /**
4041
+ * @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.
4042
+ * @default false
4043
+ */
4044
+ replace: boolean;
3753
4045
  };
3754
4046
  /** @description Body for `PUT /orgs/{orgId}/keypair`. Carries the org's eth public key as a secp256k1 public JWK. */
3755
4047
  OrgKeypairJwkRequest: {
@@ -3757,6 +4049,11 @@ export interface components {
3757
4049
  /** @default false */
3758
4050
  canEncryptResult: boolean;
3759
4051
  label?: string;
4052
+ /**
4053
+ * @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.
4054
+ * @default false
4055
+ */
4056
+ replace: boolean;
3760
4057
  };
3761
4058
  /** @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. */
3762
4059
  OrgToken: {
@@ -5622,24 +5919,59 @@ export interface components {
5622
5919
  * @description The organization that owns this callback subscription.
5623
5920
  */
5624
5921
  orgId: string;
5625
- /** @description HTTP(S) endpoint that receives the event. It may contain `{{sessionId}}` and top-level session-context placeholders such as `{{orderId}}`. The Builder URI-encodes each value and stores the expanded URL when it creates the delivery. */
5626
- callbackUrl: string;
5922
+ deliveryMode: components["schemas"]["CallbackDeliveryMode"];
5923
+ /** @description HTTP(S) endpoint that receives the event. It may contain `{{sessionId}}` and top-level session-context placeholders such as `{{orderId}}`. The Builder URI-encodes each value and stores the expanded URL when it creates the delivery. Absent when `deliveryMode` is `pull`. */
5924
+ callbackUrl?: string;
5925
+ /** @description Present when `deliveryMode` is `pull`. The pull subscription receives events and satisfies the session-creation check only until this time. Renew it by repeating the create request. */
5926
+ listenerExpiresAt?: components["schemas"]["Timestamp"];
5627
5927
  /** @description Events this subscription wants delivered — any subset of `VerificationEvent`. Builder terminal events are `verification_success`, `verification_rejected`, `verification_error`, `verification_cancelled`, and `session_expired`. Terminal result deliveries contain the signed result when one is available; non-terminal events deliver a plaintext notification. */
5628
5928
  events: components["schemas"]["VerificationEvent"][];
5629
5929
  createdAt: components["schemas"]["Timestamp"];
5630
5930
  updatedAt: components["schemas"]["Timestamp"];
5631
5931
  };
5632
- /** @description Body for `POST /verifications/callback-subscriptions`. The owning organization is resolved from the presented `OrgToken`; delivery is scoped to that org and encrypted to its credential when set. */
5633
- CreateCallbackSubscriptionRequest: {
5932
+ /**
5933
+ * @description How Builder delivers events. `webhook` POSTs each one to `callbackUrl`. `pull` keeps them for you to read with `GET /verifications/callback-events`.
5934
+ * @enum {string}
5935
+ */
5936
+ CallbackDeliveryMode: "webhook" | "pull";
5937
+ /** @description A subscription that Builder POSTs each delivery to. */
5938
+ WebhookCallbackSubscriptionRequest: {
5939
+ /**
5940
+ * @description Omit it or send `webhook`.
5941
+ * @enum {string}
5942
+ */
5943
+ deliveryMode?: "webhook";
5634
5944
  /** @description Callback URL or template. Supported placeholders are `{{sessionId}}` and top-level scalar context keys. */
5635
5945
  callbackUrl: string;
5636
5946
  events: components["schemas"]["VerificationEvent"][];
5637
5947
  };
5638
- /** @description Body for `POST /orgs/{orgId}/callback-subscriptions`. The owning organization comes from the path; bearer-authenticated and gated on org membership. Delivery is scoped to the org and encrypted to its credential when set. */
5639
- CreateOrgCallbackSubscriptionRequest: {
5640
- /** @description Callback URL or template. Supported placeholders are `{{sessionId}}` and top-level scalar context keys. */
5641
- callbackUrl: string;
5642
- events: components["schemas"]["VerificationEvent"][];
5948
+ /** @description A subscription whose deliveries wait for you to read them. It has no URL. An org has at most one. */
5949
+ PullCallbackSubscriptionRequest: {
5950
+ /** @enum {string} */
5951
+ deliveryMode: "pull";
5952
+ /** @description Not allowed. A pull subscription has no URL. */
5953
+ callbackUrl?: unknown;
5954
+ /** @description Events to keep. Defaults to every event. */
5955
+ events?: components["schemas"]["VerificationEvent"][];
5956
+ };
5957
+ /** @description Body for `POST /verifications/callback-subscriptions`. The owning organization is resolved from the presented `OrgToken`; delivery is scoped to that org and encrypted to its credential when set. Send `callbackUrl` for a webhook, or `deliveryMode: "pull"` for a subscription you read. */
5958
+ CreateCallbackSubscriptionRequest: components["schemas"]["WebhookCallbackSubscriptionRequest"] | components["schemas"]["PullCallbackSubscriptionRequest"];
5959
+ /** @description Body for `POST /orgs/{orgId}/callback-subscriptions`. The owning organization comes from the path; bearer-authenticated and gated on org membership. Delivery is scoped to the org and encrypted to its credential when set. Send `callbackUrl` for a webhook, or `deliveryMode: "pull"` for a subscription you read. */
5960
+ CreateOrgCallbackSubscriptionRequest: components["schemas"]["WebhookCallbackSubscriptionRequest"] | components["schemas"]["PullCallbackSubscriptionRequest"];
5961
+ /** @description One delivery waiting on the organization's pull subscription. */
5962
+ CallbackEvent: {
5963
+ /**
5964
+ * Format: uuid
5965
+ * @description Pass it to `POST /verifications/callback-events/acknowledge`.
5966
+ */
5967
+ id: string;
5968
+ subscriptionId: components["schemas"]["SubscriptionID"];
5969
+ sessionId: components["schemas"]["SessionID"];
5970
+ event: components["schemas"]["VerificationEvent"];
5971
+ /** @description `pending` until you acknowledge the event, then `delivered`. */
5972
+ deliveryStatus: components["schemas"]["CallbackDeliveryStatus"];
5973
+ createdAt: components["schemas"]["Timestamp"];
5974
+ envelope: components["schemas"]["VerificationResultDelivery"];
5643
5975
  };
5644
5976
  /** @description Present only when the session's `mode` is `SANDBOX`. */
5645
5977
  SandboxLimits: {
@@ -5716,7 +6048,7 @@ export interface components {
5716
6048
  resolvedVersion: string;
5717
6049
  /** Format: uri */
5718
6050
  initialUrl: string;
5719
- /** @description Legacy-only preference. Builder clients always run the structured recipe and never enable AI or manual verification from this value. */
6051
+ /** @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. */
5720
6052
  preferAiAgent: boolean;
5721
6053
  geoLocation?: string;
5722
6054
  jsUserScripts?: string;
@@ -5766,7 +6098,7 @@ export interface components {
5766
6098
  preferredLocale?: string;
5767
6099
  /** @description When the organization-bound legacy TEE nonce context was first stored. The nonce data itself is present in `context` as `attestationNonce` and `attestationNonceData`. */
5768
6100
  teeNonceBoundAt?: components["schemas"]["Timestamp"];
5769
- /** @description Legacy-only preference echoed for compatibility. Builder-mode clients run the structured recipe and do not enable AI or manual verification. */
6101
+ /** @description The creator's AI-agent preference. When true, the Builder verification page runs the AI authoring agent instead of the structured recipe. */
5770
6102
  preferAiAgent?: boolean;
5771
6103
  /** @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. */
5772
6104
  diagnostics: boolean;
@@ -5834,7 +6166,7 @@ export interface components {
5834
6166
  themeId?: components["schemas"]["ThemeID"];
5835
6167
  /** @description Optional locale override for this verification session. It takes precedence over the organization theme's preferred locale. */
5836
6168
  preferredLocale?: string;
5837
- /** @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. */
6169
+ /** @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. */
5838
6170
  preferAiAgent?: boolean;
5839
6171
  /** @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. */
5840
6172
  diagnostics?: boolean;
@@ -6040,7 +6372,7 @@ export interface components {
6040
6372
  signature: string;
6041
6373
  }[];
6042
6374
  };
6043
- /** @description The JSON envelope POSTed to a callback subscription's `callbackUrl` (see the `verificationResult` webhook). `sessionId`, `event` and `timestamp` are unauthenticated plaintext routing hints; branch on `event` for the shape of `data`. **Terminal result events** carry the signed result — an ECIES ciphertext (base64url, secp256k1 + AES-256-GCM) wrapping the signed JWS when the org has an encryption credential, else the plaintext signed JWS — act only on the signature-verified contents. **Non-terminal events** carry a plaintext, **unsigned** progress notification — advisory only; the signed terminal result is the source of truth. */
6375
+ /** @description The JSON envelope POSTed to a callback subscription's `callbackUrl` (see the `verificationResult` webhook), and returned as `envelope` by `GET /verifications/callback-events` for a pull subscription. `sessionId`, `event` and `timestamp` are unauthenticated plaintext routing hints; branch on `event` for the shape of `data`. **Terminal result events** carry the signed result — an ECIES ciphertext (base64url, secp256k1 + AES-256-GCM) wrapping the signed JWS when the org has an encryption credential, else the plaintext signed JWS — act only on the signature-verified contents. **Non-terminal events** carry a plaintext, **unsigned** progress notification — advisory only; the signed terminal result is the source of truth. */
6044
6376
  VerificationResultDelivery: {
6045
6377
  sessionId: components["schemas"]["SessionID"];
6046
6378
  /** @description The event that produced this delivery. */
@@ -6188,8 +6520,11 @@ export interface components {
6188
6520
  VerificationDelivery: {
6189
6521
  subscriptionId: components["schemas"]["SubscriptionID"];
6190
6522
  event: components["schemas"]["VerificationEvent"];
6191
- /** Format: uri */
6192
- callbackUrl: string;
6523
+ /**
6524
+ * Format: uri
6525
+ * @description Absent for deliveries to a pull subscription.
6526
+ */
6527
+ callbackUrl?: string;
6193
6528
  deliveryStatus: components["schemas"]["CallbackDeliveryStatus"];
6194
6529
  attempts: number;
6195
6530
  lastAttemptAt?: components["schemas"]["Timestamp"];
@@ -6305,6 +6640,13 @@ export interface operations {
6305
6640
  requestBody?: never;
6306
6641
  responses: {
6307
6642
  200: components["responses"]["HTMLResponse"];
6643
+ /** @description Signed in; redirects to the Dashboard. */
6644
+ 302: {
6645
+ headers: {
6646
+ [name: string]: unknown;
6647
+ };
6648
+ content?: never;
6649
+ };
6308
6650
  default: components["responses"]["ProblemResponse"];
6309
6651
  };
6310
6652
  };
@@ -8019,6 +8361,14 @@ export interface operations {
8019
8361
  api?: "2";
8020
8362
  /** @description Backend-derived echo of the session's `diagnostics` field, carried through to the launched destination unchanged. See the same parameter on `VerificationPage`. */
8021
8363
  diag?: "1";
8364
+ /** @description Added to the session's `launchOptions` if it has none. */
8365
+ redirectUrl?: string;
8366
+ /** @description JSON `VerificationLaunchRedirectOptions`. Added to the session's `launchOptions` if it has none. */
8367
+ redirectUrlOptions?: string;
8368
+ /** @description Added to the session's `launchOptions` if it has none. */
8369
+ cancelRedirectUrl?: string;
8370
+ /** @description JSON `VerificationLaunchRedirectOptions`. Added to the session's `launchOptions` if it has none. */
8371
+ cancelRedirectUrlOptions?: string;
8022
8372
  };
8023
8373
  header?: never;
8024
8374
  path: {
@@ -8185,7 +8535,7 @@ export interface operations {
8185
8535
  "text/html": components["schemas"]["HtmlContent"];
8186
8536
  };
8187
8537
  };
8188
- /** @description The new or existing repair session. */
8538
+ /** @description The new repair session. */
8189
8539
  201: {
8190
8540
  headers: {
8191
8541
  [name: string]: unknown;
@@ -8197,28 +8547,6 @@ export interface operations {
8197
8547
  default: components["responses"]["ProblemResponse"];
8198
8548
  };
8199
8549
  };
8200
- ActivateFixWithAiRepair: {
8201
- parameters: {
8202
- query?: never;
8203
- header?: never;
8204
- path: {
8205
- sessionId: components["schemas"]["SessionID"];
8206
- };
8207
- cookie?: never;
8208
- };
8209
- requestBody?: never;
8210
- responses: {
8211
- /** @description The repair was queued or was already active. */
8212
- 204: {
8213
- headers: {
8214
- [name: string]: unknown;
8215
- };
8216
- content?: never;
8217
- };
8218
- 409: components["responses"]["ProblemResponse"];
8219
- default: components["responses"]["ProblemResponse"];
8220
- };
8221
- };
8222
8550
  JwksJson: {
8223
8551
  parameters: {
8224
8552
  query?: never;
@@ -8346,6 +8674,27 @@ export interface operations {
8346
8674
  default: components["responses"]["ProblemResponse"];
8347
8675
  };
8348
8676
  };
8677
+ AgentInstallationMarkdown: {
8678
+ parameters: {
8679
+ query?: never;
8680
+ header?: never;
8681
+ path?: never;
8682
+ cookie?: never;
8683
+ };
8684
+ requestBody?: never;
8685
+ responses: {
8686
+ /** @description The guide as Markdown. */
8687
+ 200: {
8688
+ headers: {
8689
+ [name: string]: unknown;
8690
+ };
8691
+ content: {
8692
+ "text/markdown": string;
8693
+ };
8694
+ };
8695
+ default: components["responses"]["ProblemResponse"];
8696
+ };
8697
+ };
8349
8698
  LoginPage: {
8350
8699
  parameters: {
8351
8700
  query?: {
@@ -8691,8 +9040,13 @@ export interface operations {
8691
9040
  tab?: "overview" | "connect" | "integrate" | "providers" | "members" | "themes" | "settings" | "sessions" | "billing";
8692
9041
  /** @description Integrate tab only. Which integration path to show: a coding agent over MCP, the client package, or plain HTTP. */
8693
9042
  track?: "agent" | "sdk" | "http";
8694
- /** @description Integrate tab, agent track only. Which coding agent's install command to show. */
9043
+ /**
9044
+ * @deprecated
9045
+ * @description Ignored.
9046
+ */
8695
9047
  agent?: "claude" | "copilot" | "cursor" | "omp" | "opencode" | "codex" | "antigravity" | "others";
9048
+ /** @description Integrate tab, agent track only. What users prove, as typed into the prompt's goal field. */
9049
+ goal?: string;
8696
9050
  /** @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`. */
8697
9051
  providerId?: components["schemas"]["ProviderID"][];
8698
9052
  /** @description Integrate tab, HTTP track only. Which Verification Client the create-session example targets. `auto` (the default) leaves `verificationClientUrl` out. */
@@ -8710,7 +9064,7 @@ export interface operations {
8710
9064
  /** @description Providers tab only. Renders the New provider dialog already open, so a link from another page can land on it. */
8711
9065
  newProvider?: boolean;
8712
9066
  /** @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. */
8713
- billing?: "success" | "cancelled" | "changed" | "credits";
9067
+ billing?: "success" | "cancelled" | "changed" | "credits" | "card";
8714
9068
  };
8715
9069
  header?: never;
8716
9070
  path: {
@@ -9170,6 +9524,7 @@ export interface operations {
9170
9524
  };
9171
9525
  400: components["responses"]["ProblemResponse"];
9172
9526
  403: components["responses"]["ForbiddenResponse"];
9527
+ 409: components["responses"]["ProblemResponse"];
9173
9528
  default: components["responses"]["ProblemResponse"];
9174
9529
  };
9175
9530
  };
@@ -9578,6 +9933,33 @@ export interface operations {
9578
9933
  default: components["responses"]["ProblemResponse"];
9579
9934
  };
9580
9935
  };
9936
+ CreateCardSetupSession: {
9937
+ parameters: {
9938
+ query?: never;
9939
+ header?: never;
9940
+ path: {
9941
+ orgId: components["schemas"]["OrgID"];
9942
+ };
9943
+ cookie?: never;
9944
+ };
9945
+ requestBody?: never;
9946
+ responses: {
9947
+ /** @description Checkout session created */
9948
+ 200: {
9949
+ headers: {
9950
+ [name: string]: unknown;
9951
+ };
9952
+ content: {
9953
+ "application/json": {
9954
+ /** Format: uri */
9955
+ url: string;
9956
+ };
9957
+ };
9958
+ };
9959
+ 403: components["responses"]["ForbiddenResponse"];
9960
+ default: components["responses"]["ProblemResponse"];
9961
+ };
9962
+ };
9581
9963
  CancelBillingSubscription: {
9582
9964
  parameters: {
9583
9965
  query?: never;
@@ -10478,6 +10860,15 @@ export interface operations {
10478
10860
  };
10479
10861
  };
10480
10862
  responses: {
10863
+ /** @description The org's existing pull subscription */
10864
+ 200: {
10865
+ headers: {
10866
+ [name: string]: unknown;
10867
+ };
10868
+ content: {
10869
+ "application/json": components["schemas"]["CallbackSubscription"];
10870
+ };
10871
+ };
10481
10872
  /** @description Subscription created */
10482
10873
  201: {
10483
10874
  headers: {
@@ -10490,6 +10881,85 @@ export interface operations {
10490
10881
  default: components["responses"]["ProblemResponse"];
10491
10882
  };
10492
10883
  };
10884
+ ReleaseCallbackListener: {
10885
+ parameters: {
10886
+ query?: never;
10887
+ header?: never;
10888
+ path?: never;
10889
+ cookie?: never;
10890
+ };
10891
+ requestBody?: never;
10892
+ responses: {
10893
+ /** @description Released */
10894
+ 204: {
10895
+ headers: {
10896
+ [name: string]: unknown;
10897
+ };
10898
+ content?: never;
10899
+ };
10900
+ default: components["responses"]["ProblemResponse"];
10901
+ };
10902
+ };
10903
+ ListCallbackEvents: {
10904
+ parameters: {
10905
+ query?: {
10906
+ /** @description Cursor from the `next` field of a previous response. Returns only events after it. Omit it to start from the oldest event. */
10907
+ after?: string;
10908
+ /** @description Maximum number of events to return. Defaults to 50. */
10909
+ limit?: number;
10910
+ /** @description Returns only events of this verification session. */
10911
+ sessionId?: components["schemas"]["SessionID"];
10912
+ /** @description When `true`, returns only events you have not acknowledged. Defaults to `false`. */
10913
+ pending?: boolean;
10914
+ };
10915
+ header?: never;
10916
+ path?: never;
10917
+ cookie?: never;
10918
+ };
10919
+ requestBody?: never;
10920
+ responses: {
10921
+ /** @description Ok */
10922
+ 200: {
10923
+ headers: {
10924
+ [name: string]: unknown;
10925
+ };
10926
+ content: {
10927
+ "application/json": {
10928
+ items: components["schemas"]["CallbackEvent"][];
10929
+ /** @description Cursor to pass as `after` on the next request. Equals `after` when `items` is empty, and `0` when you passed no `after`. */
10930
+ next: string;
10931
+ };
10932
+ };
10933
+ };
10934
+ default: components["responses"]["ProblemResponse"];
10935
+ };
10936
+ };
10937
+ AcknowledgeCallbackEvents: {
10938
+ parameters: {
10939
+ query?: never;
10940
+ header?: never;
10941
+ path?: never;
10942
+ cookie?: never;
10943
+ };
10944
+ requestBody: {
10945
+ content: {
10946
+ "application/json": {
10947
+ /** @description The `id` of each `CallbackEvent` to acknowledge. */
10948
+ ids: string[];
10949
+ };
10950
+ };
10951
+ };
10952
+ responses: {
10953
+ /** @description Acknowledged */
10954
+ 204: {
10955
+ headers: {
10956
+ [name: string]: unknown;
10957
+ };
10958
+ content?: never;
10959
+ };
10960
+ default: components["responses"]["ProblemResponse"];
10961
+ };
10962
+ };
10493
10963
  DeleteCallbackSubscription: {
10494
10964
  parameters: {
10495
10965
  query?: never;
@@ -10554,6 +11024,15 @@ export interface operations {
10554
11024
  };
10555
11025
  };
10556
11026
  responses: {
11027
+ /** @description The org's existing pull subscription */
11028
+ 200: {
11029
+ headers: {
11030
+ [name: string]: unknown;
11031
+ };
11032
+ content: {
11033
+ "application/json": components["schemas"]["CallbackSubscription"];
11034
+ };
11035
+ };
10557
11036
  /** @description Subscription created */
10558
11037
  201: {
10559
11038
  headers: {
@@ -10774,10 +11253,16 @@ export interface operations {
10774
11253
  [name: string]: unknown;
10775
11254
  };
10776
11255
  content: {
10777
- "text/html": components["schemas"]["HtmlContent"];
10778
11256
  "application/json": components["schemas"]["VerificationAnalytics"];
10779
11257
  };
10780
11258
  };
11259
+ /** @description A browser; redirects to the org's Dashboard. */
11260
+ 302: {
11261
+ headers: {
11262
+ [name: string]: unknown;
11263
+ };
11264
+ content?: never;
11265
+ };
10781
11266
  403: components["responses"]["ForbiddenResponse"];
10782
11267
  default: components["responses"]["ProblemResponse"];
10783
11268
  };
@@ -10822,7 +11307,7 @@ export interface operations {
10822
11307
  "application/problem+json": components["schemas"]["Problem"];
10823
11308
  };
10824
11309
  };
10825
- /** @description No callback subscription exists for the organization. Register one first via `POST /verifications/callback-subscriptions` (or `POST /orgs/{orgId}/callback-subscriptions`). */
11310
+ /** @description No callback subscription exists for the organization. Register one first via `POST /verifications/callback-subscriptions` (or `POST /orgs/{orgId}/callback-subscriptions`). A pull subscription satisfies this check only while its listener lease is unexpired. */
10826
11311
  409: {
10827
11312
  headers: {
10828
11313
  [name: string]: unknown;
@@ -10843,6 +11328,90 @@ export interface operations {
10843
11328
  default: components["responses"]["ProblemResponse"];
10844
11329
  };
10845
11330
  };
11331
+ CreateAiVerificationSession: {
11332
+ parameters: {
11333
+ query?: never;
11334
+ header?: never;
11335
+ path?: never;
11336
+ cookie?: never;
11337
+ };
11338
+ requestBody: {
11339
+ content: {
11340
+ "application/json": components["schemas"]["CreateAiVerificationSessionRequest"];
11341
+ };
11342
+ };
11343
+ responses: {
11344
+ /** @description Session created */
11345
+ 201: {
11346
+ headers: {
11347
+ [name: string]: unknown;
11348
+ };
11349
+ content: {
11350
+ "application/json": components["schemas"]["VerificationSession"];
11351
+ };
11352
+ };
11353
+ /** @description Overage is paused: the organization is past its plan allowance, and its prepaid credits and credit-exhaustion allowance are spent (`event: billing_required`). */
11354
+ 402: {
11355
+ headers: {
11356
+ [name: string]: unknown;
11357
+ };
11358
+ content: {
11359
+ "application/problem+json": components["schemas"]["Problem"];
11360
+ };
11361
+ };
11362
+ /** @description The organization has no callback subscription. */
11363
+ 409: {
11364
+ headers: {
11365
+ [name: string]: unknown;
11366
+ };
11367
+ content: {
11368
+ "application/problem+json": components["schemas"]["Problem"];
11369
+ };
11370
+ };
11371
+ /** @description The verification quota is exceeded (`event: billing_required` with a terminal `sessionId`). */
11372
+ 429: {
11373
+ headers: {
11374
+ [name: string]: unknown;
11375
+ };
11376
+ content: {
11377
+ "application/problem+json": components["schemas"]["Problem"];
11378
+ };
11379
+ };
11380
+ default: components["responses"]["ProblemResponse"];
11381
+ };
11382
+ };
11383
+ GetAiVerificationSession: {
11384
+ parameters: {
11385
+ query?: never;
11386
+ header?: never;
11387
+ path: {
11388
+ sessionId: components["schemas"]["SessionID"];
11389
+ };
11390
+ cookie?: never;
11391
+ };
11392
+ requestBody?: never;
11393
+ responses: {
11394
+ /** @description Ok */
11395
+ 200: {
11396
+ headers: {
11397
+ [name: string]: unknown;
11398
+ };
11399
+ content: {
11400
+ "application/json": components["schemas"]["AiVerificationSession"];
11401
+ };
11402
+ };
11403
+ /** @description No session with this ID, or the session wasn't created by `POST /verifications/ai-sessions`. */
11404
+ 404: {
11405
+ headers: {
11406
+ [name: string]: unknown;
11407
+ };
11408
+ content: {
11409
+ "application/problem+json": components["schemas"]["Problem"];
11410
+ };
11411
+ };
11412
+ default: components["responses"]["ProblemResponse"];
11413
+ };
11414
+ };
10846
11415
  GetVerificationSession: {
10847
11416
  parameters: {
10848
11417
  query?: never;