@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.
@@ -11,8 +11,8 @@ export interface paths {
11
11
  cookie?: never;
12
12
  };
13
13
  /**
14
- * Home — sign-in or Discover
15
- * @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.
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;
@@ -1110,6 +1110,8 @@ export interface paths {
1110
1110
  * - `zkfetch` — a static informational page. zkFetch has no claimant
1111
1111
  * step; nothing ever redirects a browser here by design.
1112
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.
1113
1115
  * Sets `Referrer-Policy: no-referrer`, so a `sessionId` never rides along in a `Referer` header to wherever a client eventually redirects.
1114
1116
  */
1115
1117
  get: operations["SharePage"];
@@ -1235,8 +1237,8 @@ export interface paths {
1235
1237
  get: operations["FixWithAiRecovery"];
1236
1238
  put?: never;
1237
1239
  /**
1238
- * Create or reopen a billed AI repair session
1239
- * @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.
1240
1242
  */
1241
1243
  post: operations["CreateFixWithAiSession"];
1242
1244
  delete?: never;
@@ -1245,26 +1247,6 @@ export interface paths {
1245
1247
  patch?: never;
1246
1248
  trace?: never;
1247
1249
  };
1248
- "/v/{sessionId}/fix-with-ai/activate": {
1249
- parameters: {
1250
- query?: never;
1251
- header?: never;
1252
- path?: never;
1253
- cookie?: never;
1254
- };
1255
- get?: never;
1256
- put?: never;
1257
- /**
1258
- * Start a pending AI repair after the verification page loads
1259
- * @description Idempotently queues a pending repair session. The server derives the claimant country from the request and publishes no browser credentials.
1260
- */
1261
- post: operations["ActivateFixWithAiRepair"];
1262
- delete?: never;
1263
- options?: never;
1264
- head?: never;
1265
- patch?: never;
1266
- trace?: never;
1267
- };
1268
1250
  "/.well-known/jwks.json": {
1269
1251
  parameters: {
1270
1252
  query?: never;
@@ -1365,6 +1347,26 @@ export interface paths {
1365
1347
  patch?: never;
1366
1348
  trace?: never;
1367
1349
  };
1350
+ "/docs/agent-installation.md": {
1351
+ parameters: {
1352
+ query?: never;
1353
+ header?: never;
1354
+ path?: never;
1355
+ cookie?: never;
1356
+ };
1357
+ /**
1358
+ * Agent installation instructions
1359
+ * @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.
1360
+ */
1361
+ get: operations["AgentInstallationMarkdown"];
1362
+ put?: never;
1363
+ post?: never;
1364
+ delete?: never;
1365
+ options?: never;
1366
+ head?: never;
1367
+ patch?: never;
1368
+ trace?: never;
1369
+ };
1368
1370
  "/login": {
1369
1371
  parameters: {
1370
1372
  query?: never;
@@ -1776,7 +1778,7 @@ export interface paths {
1776
1778
  get: operations["GetOrgKeypair"];
1777
1779
  /**
1778
1780
  * Set (or rotate) the organization's encryption keypair
1779
- * @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.
1781
+ * @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.
1780
1782
  */
1781
1783
  put: operations["SetOrgKeypair"];
1782
1784
  post?: never;
@@ -2038,6 +2040,26 @@ export interface paths {
2038
2040
  patch?: never;
2039
2041
  trace?: never;
2040
2042
  };
2043
+ "/orgs/{orgId}/billing/card": {
2044
+ parameters: {
2045
+ query?: never;
2046
+ header?: never;
2047
+ path?: never;
2048
+ cookie?: never;
2049
+ };
2050
+ get?: never;
2051
+ put?: never;
2052
+ /**
2053
+ * Save a card for the organization
2054
+ * @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`.
2055
+ */
2056
+ post: operations["CreateCardSetupSession"];
2057
+ delete?: never;
2058
+ options?: never;
2059
+ head?: never;
2060
+ patch?: never;
2061
+ trace?: never;
2062
+ };
2041
2063
  "/orgs/{orgId}/billing/subscription": {
2042
2064
  parameters: {
2043
2065
  query?: never;
@@ -2334,7 +2356,7 @@ export interface paths {
2334
2356
  };
2335
2357
  /**
2336
2358
  * Get a specific provider version
2337
- * @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.
2359
+ * @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.
2338
2360
  */
2339
2361
  get: operations["GetProviderVersion"];
2340
2362
  put?: never;
@@ -2490,12 +2512,26 @@ export interface paths {
2490
2512
  /**
2491
2513
  * Register a callback subscription
2492
2514
  * @description Registers a destination for verification results on the organization
2493
- * the presented `OrgToken` resolves to. The body is just `callbackUrl`
2494
- * and `events`. At least one subscription must exist for the org before a
2495
- * verification session can be created. Delivery is scoped by org: terminal
2496
- * results are ECIES-encrypted to the org's eth public key when its
2497
- * `canEncryptResult` is enabled (see `PUT /orgs/{orgId}/keypair`), else
2498
- * delivered as plaintext.
2515
+ * the presented `OrgToken` resolves to. At least one subscription must
2516
+ * exist for the org before you can create a verification session.
2517
+ * Delivery is scoped by org: terminal results are ECIES-encrypted to the
2518
+ * org's eth public key when its `canEncryptResult` is enabled (see
2519
+ * `PUT /orgs/{orgId}/keypair`), else delivered as plaintext.
2520
+ *
2521
+ * To receive results at a URL, send `callbackUrl` and `events`. Builder
2522
+ * POSTs each delivery to that URL.
2523
+ *
2524
+ * To read results without a public URL during local development, send
2525
+ * `deliveryMode: "pull"`. Builder keeps the deliveries and you read them
2526
+ * with `GET /verifications/callback-events`. A pull subscription is a
2527
+ * 90-second lease: it receives events and satisfies the session-creation
2528
+ * check only while the lease is unexpired. Send the same request about
2529
+ * every 30 seconds to renew it, and call
2530
+ * `POST /verifications/callback-listener/release` when you stop. Production
2531
+ * needs a webhook subscription. An org has at most one pull subscription.
2532
+ * If it already exists, Builder renews it and returns it with status 200.
2533
+ * If the body includes `events`, they replace the subscription's events;
2534
+ * if it omits them, the existing events are kept.
2499
2535
  */
2500
2536
  post: operations["CreateCallbackSubscription"];
2501
2537
  delete?: never;
@@ -2504,6 +2540,86 @@ export interface paths {
2504
2540
  patch?: never;
2505
2541
  trace?: never;
2506
2542
  };
2543
+ "/verifications/callback-listener/release": {
2544
+ parameters: {
2545
+ query?: never;
2546
+ header?: never;
2547
+ path?: never;
2548
+ cookie?: never;
2549
+ };
2550
+ get?: never;
2551
+ put?: never;
2552
+ /**
2553
+ * Release the pull listener
2554
+ * @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.
2555
+ */
2556
+ post: operations["ReleaseCallbackListener"];
2557
+ delete?: never;
2558
+ options?: never;
2559
+ head?: never;
2560
+ patch?: never;
2561
+ trace?: never;
2562
+ };
2563
+ "/verifications/callback-events": {
2564
+ parameters: {
2565
+ query?: never;
2566
+ header?: never;
2567
+ path?: never;
2568
+ cookie?: never;
2569
+ };
2570
+ /**
2571
+ * List events from the pull subscription
2572
+ * @description Lists the deliveries of the organization's pull subscription, oldest
2573
+ * first. Use it to read verification results without a public URL.
2574
+ * Create the pull subscription with `POST /verifications/callback-subscriptions`
2575
+ * and `deliveryMode: "pull"`.
2576
+ *
2577
+ * Each item's `envelope` is the body that Builder POSTs to a webhook
2578
+ * subscription, so you handle both the same way. For a pull
2579
+ * subscription, `envelope.timestamp` is the time Builder created the
2580
+ * delivery.
2581
+ *
2582
+ * To poll, pass the previous response's `next` as `after`. `next` is
2583
+ * always set, and equals `after` when no new events exist. Treat cursors
2584
+ * as opaque. A cursor read is not complete: a delivery that commits after
2585
+ * a later one can be missed, because the cursor has already moved past
2586
+ * it. The reliable path is `pending=true` plus
2587
+ * `POST /verifications/callback-events/acknowledge`: acknowledge each
2588
+ * event you handled, and read `pending=true` without `after` so anything
2589
+ * missed shows up on the next read.
2590
+ *
2591
+ * Builder keeps result payloads for seven days. Acknowledged events stay
2592
+ * readable until then.
2593
+ */
2594
+ get: operations["ListCallbackEvents"];
2595
+ put?: never;
2596
+ post?: never;
2597
+ delete?: never;
2598
+ options?: never;
2599
+ head?: never;
2600
+ patch?: never;
2601
+ trace?: never;
2602
+ };
2603
+ "/verifications/callback-events/acknowledge": {
2604
+ parameters: {
2605
+ query?: never;
2606
+ header?: never;
2607
+ path?: never;
2608
+ cookie?: never;
2609
+ };
2610
+ get?: never;
2611
+ put?: never;
2612
+ /**
2613
+ * Acknowledge events from the pull subscription
2614
+ * @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.
2615
+ */
2616
+ post: operations["AcknowledgeCallbackEvents"];
2617
+ delete?: never;
2618
+ options?: never;
2619
+ head?: never;
2620
+ patch?: never;
2621
+ trace?: never;
2622
+ };
2507
2623
  "/verifications/callback-subscriptions/{subscriptionId}": {
2508
2624
  parameters: {
2509
2625
  query?: never;
@@ -2539,7 +2655,8 @@ export interface paths {
2539
2655
  put?: never;
2540
2656
  /**
2541
2657
  * Register a callback subscription on an organization
2542
- * @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.
2658
+ * @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.
2659
+ * 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.
2543
2660
  */
2544
2661
  post: operations["CreateOrgCallbackSubscription"];
2545
2662
  delete?: never;
@@ -2679,7 +2796,7 @@ export interface paths {
2679
2796
  };
2680
2797
  /**
2681
2798
  * Verification outcomes by day, device, and country
2682
- * @description Organization-scoped creation cohorts in UTC. Outcomes are current at query time. Unknown device and country values have their own buckets.
2799
+ * @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.
2683
2800
  */
2684
2801
  get: operations["GetOrgVerificationAnalytics"];
2685
2802
  put?: never;
@@ -2742,6 +2859,118 @@ export interface paths {
2742
2859
  patch?: never;
2743
2860
  trace?: never;
2744
2861
  };
2862
+ "/verifications/ai-sessions": {
2863
+ parameters: {
2864
+ query?: never;
2865
+ header?: never;
2866
+ path?: never;
2867
+ cookie?: never;
2868
+ };
2869
+ get?: never;
2870
+ put?: never;
2871
+ /**
2872
+ * Start an AI verification session from a prompt
2873
+ * @description Starts a verification from a plain-language prompt, such as "verify
2874
+ * I'm a student at Manipal University", instead of a list of providers.
2875
+ * Builder creates the session at once and returns it, as
2876
+ * `POST /verifications/sessions` does. Send the user to its
2877
+ * `verificationUrl`. In the background, Builder looks up the
2878
+ * `candidates` (pages the user opens and signs in to) and the
2879
+ * `dataPoints` to verify there, usually within a few seconds. Poll
2880
+ * `GET /verifications/ai-sessions/{sessionId}` until its `status` is
2881
+ * `ready` or `failed`. The share page at `verificationUrl` shows a
2882
+ * loading state meanwhile.
2883
+ *
2884
+ * Builder searches the provider catalog (public providers and your
2885
+ * organization's own providers) and the web. The web search finds a
2886
+ * portal the catalog lacks, or one that replaced a stale catalog page.
2887
+ * Builder caches a web result for a week, or for a day when it finds
2888
+ * nothing. A URL or domain in the prompt is a hint: pages on it rank
2889
+ * first.
2890
+ *
2891
+ * Deterministic checks run before any AI model. Builder rejects a
2892
+ * prompt that contains a password, card number, or Aadhaar number, that
2893
+ * contains instructions for the AI, or that makes a sensitive claim,
2894
+ * without calling a model. Builder withholds personal values the prompt
2895
+ * states, such as a name, email address, phone number, or student ID,
2896
+ * from the model and from the cache.
2897
+ *
2898
+ * Once the lookup is ready, the session's `context` holds the values
2899
+ * the prompt states, such as the user's name, merged with the `context`
2900
+ * you send. Your values take precedence.
2901
+ *
2902
+ * On `201`, the session has no providers: the AI agent works out how to
2903
+ * verify. The organization needs a callback subscription. The session
2904
+ * uses one verification from the quota pool of the
2905
+ * `verificationClientUrl` client. A prompt the checks above reject
2906
+ * creates no session and is free. If the lookup then fails (the prompt
2907
+ * isn't a request to verify something about the user, no login page
2908
+ * is found, or the model or web search stays unavailable), Builder
2909
+ * refunds the verification, ends the session with status `error`, and
2910
+ * sends the failure to your `verification_error` callbacks. Builder
2911
+ * caches lookups, so a repeated prompt resolves faster, even when it
2912
+ * names a different person.
2913
+ *
2914
+ * curl -X POST $BASE/verifications/ai-sessions \
2915
+ * -H "Authorization: Bearer $ORG_TOKEN" \
2916
+ * -H 'Content-Type: application/json' \
2917
+ * -d '{"prompt":"verify I am a student at Manipal University"}'
2918
+ *
2919
+ * Errors:
2920
+ *
2921
+ * - `400`: Builder rejects the prompt (for example, it targets an
2922
+ * internal host), `context` contains `attestationNonce` or
2923
+ * `attestationNonceData`, or `verificationClientUrl` isn't a
2924
+ * registered client.
2925
+ * - `409`: The organization has no callback subscription.
2926
+ * - `429` or `402`: The quota or credits are spent. The body has
2927
+ * `event: billing_required` and a terminal `sessionId`.
2928
+ *
2929
+ * A failed lookup isn't an error of this request: it shows in the
2930
+ * `error` of `GET /verifications/ai-sessions/{sessionId}`.
2931
+ */
2932
+ post: operations["CreateAiVerificationSession"];
2933
+ delete?: never;
2934
+ options?: never;
2935
+ head?: never;
2936
+ patch?: never;
2937
+ trace?: never;
2938
+ };
2939
+ "/verifications/ai-sessions/{sessionId}": {
2940
+ parameters: {
2941
+ query?: never;
2942
+ header?: never;
2943
+ path?: never;
2944
+ cookie?: never;
2945
+ };
2946
+ /**
2947
+ * Get what an AI verification session's prompt resolved to
2948
+ * @description Returns the lookup that `POST /verifications/ai-sessions` started for
2949
+ * the session. `status` is `resolving` until it finishes, then `ready`
2950
+ * with the pages and data points it found, or `failed` with an
2951
+ * `error`. Poll every second or two while it's `resolving`.
2952
+ *
2953
+ * `candidates` lists the pages to open, best first, each with a
2954
+ * `source` of `catalog` or `web`. It usually has one page. It has
2955
+ * several (up to 3) only when their `confidence` values are within 0.1
2956
+ * of the best page's value. In that case, the user picks one on the
2957
+ * session's `verificationUrl`.
2958
+ *
2959
+ * The `OrgToken` must resolve to the session's organization. To track
2960
+ * the session's status, call `GET /verifications/sessions/{sessionId}`.
2961
+ *
2962
+ * curl $BASE/verifications/ai-sessions/$SESSION_ID \
2963
+ * -H "Authorization: Bearer $ORG_TOKEN"
2964
+ */
2965
+ get: operations["GetAiVerificationSession"];
2966
+ put?: never;
2967
+ post?: never;
2968
+ delete?: never;
2969
+ options?: never;
2970
+ head?: never;
2971
+ patch?: never;
2972
+ trace?: never;
2973
+ };
2745
2974
  "/verifications/sessions/{sessionId}": {
2746
2975
  parameters: {
2747
2976
  query?: never;
@@ -3240,6 +3469,64 @@ export interface components {
3240
3469
  ProviderID: string;
3241
3470
  /** Format: uuid */
3242
3471
  OrgID: string;
3472
+ /** @description Body for `POST /verifications/ai-sessions`. */
3473
+ CreateAiVerificationSessionRequest: {
3474
+ /** @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. */
3475
+ prompt: string;
3476
+ /** @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. */
3477
+ context?: {
3478
+ [key: string]: unknown;
3479
+ };
3480
+ /** @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. */
3481
+ verificationClientUrl?: string;
3482
+ /** @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. */
3483
+ geoLocation?: string;
3484
+ };
3485
+ /** @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. */
3486
+ AiVerificationSession: {
3487
+ /**
3488
+ * Format: uuid
3489
+ * @description ID of the verification session. To track the session, call `GET /verifications/sessions/{sessionId}`.
3490
+ */
3491
+ sessionId: string;
3492
+ /**
3493
+ * @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.
3494
+ * @enum {string}
3495
+ */
3496
+ status: "resolving" | "ready" | "failed";
3497
+ /** @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. */
3498
+ error?: components["schemas"]["Problem"];
3499
+ /** @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. */
3500
+ dataPoints?: {
3501
+ /** @description Short camelCase name, such as `username`. */
3502
+ name: string;
3503
+ /** @description What the value is and why it proves the claim. */
3504
+ description: string;
3505
+ /** @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. */
3506
+ isOptional?: boolean;
3507
+ }[];
3508
+ /** @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. */
3509
+ context: {
3510
+ [key: string]: unknown;
3511
+ };
3512
+ /** @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. */
3513
+ candidates?: components["schemas"]["ResolvedLoginPage"][];
3514
+ };
3515
+ /** @description A page for the user to open and sign in to. */
3516
+ ResolvedLoginPage: {
3517
+ /**
3518
+ * Format: uri
3519
+ * @description URL of the page to open. For a `web` page, Builder removes the query and fragment.
3520
+ */
3521
+ loginUrl: string;
3522
+ /** @description Estimated likelihood, from 0 to 1, that signing in here shows the claim. Candidates below 0.5 are never returned. */
3523
+ confidence: number;
3524
+ /**
3525
+ * @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.
3526
+ * @enum {string}
3527
+ */
3528
+ source: "catalog" | "web";
3529
+ };
3243
3530
  /** @description A verification client id used as a filter. Hyphens are ignored. */
3244
3531
  VerificationClientIDFilter: string;
3245
3532
  /** @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. */
@@ -3744,6 +4031,11 @@ export interface components {
3744
4031
  /** @default false */
3745
4032
  canEncryptResult: boolean;
3746
4033
  label?: string;
4034
+ /**
4035
+ * @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.
4036
+ * @default false
4037
+ */
4038
+ replace: boolean;
3747
4039
  };
3748
4040
  /** @description Body for `PUT /orgs/{orgId}/keypair`. Carries the org's eth public key as a secp256k1 public JWK. */
3749
4041
  OrgKeypairJwkRequest: {
@@ -3751,6 +4043,11 @@ export interface components {
3751
4043
  /** @default false */
3752
4044
  canEncryptResult: boolean;
3753
4045
  label?: string;
4046
+ /**
4047
+ * @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.
4048
+ * @default false
4049
+ */
4050
+ replace: boolean;
3754
4051
  };
3755
4052
  /** @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. */
3756
4053
  OrgToken: {
@@ -5616,24 +5913,59 @@ export interface components {
5616
5913
  * @description The organization that owns this callback subscription.
5617
5914
  */
5618
5915
  orgId: string;
5619
- /** @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. */
5620
- callbackUrl: string;
5916
+ deliveryMode: components["schemas"]["CallbackDeliveryMode"];
5917
+ /** @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`. */
5918
+ callbackUrl?: string;
5919
+ /** @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. */
5920
+ listenerExpiresAt?: components["schemas"]["Timestamp"];
5621
5921
  /** @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. */
5622
5922
  events: components["schemas"]["VerificationEvent"][];
5623
5923
  createdAt: components["schemas"]["Timestamp"];
5624
5924
  updatedAt: components["schemas"]["Timestamp"];
5625
5925
  };
5626
- /** @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. */
5627
- CreateCallbackSubscriptionRequest: {
5926
+ /**
5927
+ * @description How Builder delivers events. `webhook` POSTs each one to `callbackUrl`. `pull` keeps them for you to read with `GET /verifications/callback-events`.
5928
+ * @enum {string}
5929
+ */
5930
+ CallbackDeliveryMode: "webhook" | "pull";
5931
+ /** @description A subscription that Builder POSTs each delivery to. */
5932
+ WebhookCallbackSubscriptionRequest: {
5933
+ /**
5934
+ * @description Omit it or send `webhook`.
5935
+ * @enum {string}
5936
+ */
5937
+ deliveryMode?: "webhook";
5628
5938
  /** @description Callback URL or template. Supported placeholders are `{{sessionId}}` and top-level scalar context keys. */
5629
5939
  callbackUrl: string;
5630
5940
  events: components["schemas"]["VerificationEvent"][];
5631
5941
  };
5632
- /** @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. */
5633
- CreateOrgCallbackSubscriptionRequest: {
5634
- /** @description Callback URL or template. Supported placeholders are `{{sessionId}}` and top-level scalar context keys. */
5635
- callbackUrl: string;
5636
- events: components["schemas"]["VerificationEvent"][];
5942
+ /** @description A subscription whose deliveries wait for you to read them. It has no URL. An org has at most one. */
5943
+ PullCallbackSubscriptionRequest: {
5944
+ /** @enum {string} */
5945
+ deliveryMode: "pull";
5946
+ /** @description Not allowed. A pull subscription has no URL. */
5947
+ callbackUrl?: unknown;
5948
+ /** @description Events to keep. Defaults to every event. */
5949
+ events?: components["schemas"]["VerificationEvent"][];
5950
+ };
5951
+ /** @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. */
5952
+ CreateCallbackSubscriptionRequest: components["schemas"]["WebhookCallbackSubscriptionRequest"] | components["schemas"]["PullCallbackSubscriptionRequest"];
5953
+ /** @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. */
5954
+ CreateOrgCallbackSubscriptionRequest: components["schemas"]["WebhookCallbackSubscriptionRequest"] | components["schemas"]["PullCallbackSubscriptionRequest"];
5955
+ /** @description One delivery waiting on the organization's pull subscription. */
5956
+ CallbackEvent: {
5957
+ /**
5958
+ * Format: uuid
5959
+ * @description Pass it to `POST /verifications/callback-events/acknowledge`.
5960
+ */
5961
+ id: string;
5962
+ subscriptionId: components["schemas"]["SubscriptionID"];
5963
+ sessionId: components["schemas"]["SessionID"];
5964
+ event: components["schemas"]["VerificationEvent"];
5965
+ /** @description `pending` until you acknowledge the event, then `delivered`. */
5966
+ deliveryStatus: components["schemas"]["CallbackDeliveryStatus"];
5967
+ createdAt: components["schemas"]["Timestamp"];
5968
+ envelope: components["schemas"]["VerificationResultDelivery"];
5637
5969
  };
5638
5970
  /** @description Present only when the session's `mode` is `SANDBOX`. */
5639
5971
  SandboxLimits: {
@@ -5710,7 +6042,7 @@ export interface components {
5710
6042
  resolvedVersion: string;
5711
6043
  /** Format: uri */
5712
6044
  initialUrl: string;
5713
- /** @description Legacy-only preference. Builder clients always run the structured recipe and never enable AI or manual verification from this value. */
6045
+ /** @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. */
5714
6046
  preferAiAgent: boolean;
5715
6047
  geoLocation?: string;
5716
6048
  jsUserScripts?: string;
@@ -5760,7 +6092,7 @@ export interface components {
5760
6092
  preferredLocale?: string;
5761
6093
  /** @description When the organization-bound legacy TEE nonce context was first stored. The nonce data itself is present in `context` as `attestationNonce` and `attestationNonceData`. */
5762
6094
  teeNonceBoundAt?: components["schemas"]["Timestamp"];
5763
- /** @description Legacy-only preference echoed for compatibility. Builder-mode clients run the structured recipe and do not enable AI or manual verification. */
6095
+ /** @description The creator's AI-agent preference. When true, the Builder verification page runs the AI authoring agent instead of the structured recipe. */
5764
6096
  preferAiAgent?: boolean;
5765
6097
  /** @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. */
5766
6098
  diagnostics: boolean;
@@ -5828,7 +6160,7 @@ export interface components {
5828
6160
  themeId?: components["schemas"]["ThemeID"];
5829
6161
  /** @description Optional locale override for this verification session. It takes precedence over the organization theme's preferred locale. */
5830
6162
  preferredLocale?: string;
5831
- /** @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. */
6163
+ /** @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. */
5832
6164
  preferAiAgent?: boolean;
5833
6165
  /** @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. */
5834
6166
  diagnostics?: boolean;
@@ -6034,7 +6366,7 @@ export interface components {
6034
6366
  signature: string;
6035
6367
  }[];
6036
6368
  };
6037
- /** @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. */
6369
+ /** @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. */
6038
6370
  VerificationResultDelivery: {
6039
6371
  sessionId: components["schemas"]["SessionID"];
6040
6372
  /** @description The event that produced this delivery. */
@@ -6182,8 +6514,11 @@ export interface components {
6182
6514
  VerificationDelivery: {
6183
6515
  subscriptionId: components["schemas"]["SubscriptionID"];
6184
6516
  event: components["schemas"]["VerificationEvent"];
6185
- /** Format: uri */
6186
- callbackUrl: string;
6517
+ /**
6518
+ * Format: uri
6519
+ * @description Absent for deliveries to a pull subscription.
6520
+ */
6521
+ callbackUrl?: string;
6187
6522
  deliveryStatus: components["schemas"]["CallbackDeliveryStatus"];
6188
6523
  attempts: number;
6189
6524
  lastAttemptAt?: components["schemas"]["Timestamp"];
@@ -6299,6 +6634,13 @@ export interface operations {
6299
6634
  requestBody?: never;
6300
6635
  responses: {
6301
6636
  200: components["responses"]["HTMLResponse"];
6637
+ /** @description Signed in; redirects to the Dashboard. */
6638
+ 302: {
6639
+ headers: {
6640
+ [name: string]: unknown;
6641
+ };
6642
+ content?: never;
6643
+ };
6302
6644
  default: components["responses"]["ProblemResponse"];
6303
6645
  };
6304
6646
  };
@@ -8013,6 +8355,14 @@ export interface operations {
8013
8355
  api?: "2";
8014
8356
  /** @description Backend-derived echo of the session's `diagnostics` field, carried through to the launched destination unchanged. See the same parameter on `VerificationPage`. */
8015
8357
  diag?: "1";
8358
+ /** @description Added to the session's `launchOptions` if it has none. */
8359
+ redirectUrl?: string;
8360
+ /** @description JSON `VerificationLaunchRedirectOptions`. Added to the session's `launchOptions` if it has none. */
8361
+ redirectUrlOptions?: string;
8362
+ /** @description Added to the session's `launchOptions` if it has none. */
8363
+ cancelRedirectUrl?: string;
8364
+ /** @description JSON `VerificationLaunchRedirectOptions`. Added to the session's `launchOptions` if it has none. */
8365
+ cancelRedirectUrlOptions?: string;
8016
8366
  };
8017
8367
  header?: never;
8018
8368
  path: {
@@ -8179,7 +8529,7 @@ export interface operations {
8179
8529
  "text/html": components["schemas"]["HtmlContent"];
8180
8530
  };
8181
8531
  };
8182
- /** @description The new or existing repair session. */
8532
+ /** @description The new repair session. */
8183
8533
  201: {
8184
8534
  headers: {
8185
8535
  [name: string]: unknown;
@@ -8191,28 +8541,6 @@ export interface operations {
8191
8541
  default: components["responses"]["ProblemResponse"];
8192
8542
  };
8193
8543
  };
8194
- ActivateFixWithAiRepair: {
8195
- parameters: {
8196
- query?: never;
8197
- header?: never;
8198
- path: {
8199
- sessionId: components["schemas"]["SessionID"];
8200
- };
8201
- cookie?: never;
8202
- };
8203
- requestBody?: never;
8204
- responses: {
8205
- /** @description The repair was queued or was already active. */
8206
- 204: {
8207
- headers: {
8208
- [name: string]: unknown;
8209
- };
8210
- content?: never;
8211
- };
8212
- 409: components["responses"]["ProblemResponse"];
8213
- default: components["responses"]["ProblemResponse"];
8214
- };
8215
- };
8216
8544
  JwksJson: {
8217
8545
  parameters: {
8218
8546
  query?: never;
@@ -8340,6 +8668,27 @@ export interface operations {
8340
8668
  default: components["responses"]["ProblemResponse"];
8341
8669
  };
8342
8670
  };
8671
+ AgentInstallationMarkdown: {
8672
+ parameters: {
8673
+ query?: never;
8674
+ header?: never;
8675
+ path?: never;
8676
+ cookie?: never;
8677
+ };
8678
+ requestBody?: never;
8679
+ responses: {
8680
+ /** @description The guide as Markdown. */
8681
+ 200: {
8682
+ headers: {
8683
+ [name: string]: unknown;
8684
+ };
8685
+ content: {
8686
+ "text/markdown": string;
8687
+ };
8688
+ };
8689
+ default: components["responses"]["ProblemResponse"];
8690
+ };
8691
+ };
8343
8692
  LoginPage: {
8344
8693
  parameters: {
8345
8694
  query?: {
@@ -8685,8 +9034,13 @@ export interface operations {
8685
9034
  tab?: "overview" | "connect" | "integrate" | "providers" | "members" | "themes" | "settings" | "sessions" | "billing";
8686
9035
  /** @description Integrate tab only. Which integration path to show: a coding agent over MCP, the client package, or plain HTTP. */
8687
9036
  track?: "agent" | "sdk" | "http";
8688
- /** @description Integrate tab, agent track only. Which coding agent's install command to show. */
9037
+ /**
9038
+ * @deprecated
9039
+ * @description Ignored.
9040
+ */
8689
9041
  agent?: "claude" | "copilot" | "cursor" | "omp" | "opencode" | "codex" | "antigravity" | "others";
9042
+ /** @description Integrate tab, agent track only. What users prove, as typed into the prompt's goal field. */
9043
+ goal?: string;
8690
9044
  /** @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`. */
8691
9045
  providerId?: components["schemas"]["ProviderID"][];
8692
9046
  /** @description Integrate tab, HTTP track only. Which Verification Client the create-session example targets. `auto` (the default) leaves `verificationClientUrl` out. */
@@ -8704,7 +9058,7 @@ export interface operations {
8704
9058
  /** @description Providers tab only. Renders the New provider dialog already open, so a link from another page can land on it. */
8705
9059
  newProvider?: boolean;
8706
9060
  /** @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. */
8707
- billing?: "success" | "cancelled" | "changed" | "credits";
9061
+ billing?: "success" | "cancelled" | "changed" | "credits" | "card";
8708
9062
  };
8709
9063
  header?: never;
8710
9064
  path: {
@@ -9164,6 +9518,7 @@ export interface operations {
9164
9518
  };
9165
9519
  400: components["responses"]["ProblemResponse"];
9166
9520
  403: components["responses"]["ForbiddenResponse"];
9521
+ 409: components["responses"]["ProblemResponse"];
9167
9522
  default: components["responses"]["ProblemResponse"];
9168
9523
  };
9169
9524
  };
@@ -9572,6 +9927,33 @@ export interface operations {
9572
9927
  default: components["responses"]["ProblemResponse"];
9573
9928
  };
9574
9929
  };
9930
+ CreateCardSetupSession: {
9931
+ parameters: {
9932
+ query?: never;
9933
+ header?: never;
9934
+ path: {
9935
+ orgId: components["schemas"]["OrgID"];
9936
+ };
9937
+ cookie?: never;
9938
+ };
9939
+ requestBody?: never;
9940
+ responses: {
9941
+ /** @description Checkout session created */
9942
+ 200: {
9943
+ headers: {
9944
+ [name: string]: unknown;
9945
+ };
9946
+ content: {
9947
+ "application/json": {
9948
+ /** Format: uri */
9949
+ url: string;
9950
+ };
9951
+ };
9952
+ };
9953
+ 403: components["responses"]["ForbiddenResponse"];
9954
+ default: components["responses"]["ProblemResponse"];
9955
+ };
9956
+ };
9575
9957
  CancelBillingSubscription: {
9576
9958
  parameters: {
9577
9959
  query?: never;
@@ -10472,6 +10854,15 @@ export interface operations {
10472
10854
  };
10473
10855
  };
10474
10856
  responses: {
10857
+ /** @description The org's existing pull subscription */
10858
+ 200: {
10859
+ headers: {
10860
+ [name: string]: unknown;
10861
+ };
10862
+ content: {
10863
+ "application/json": components["schemas"]["CallbackSubscription"];
10864
+ };
10865
+ };
10475
10866
  /** @description Subscription created */
10476
10867
  201: {
10477
10868
  headers: {
@@ -10484,6 +10875,85 @@ export interface operations {
10484
10875
  default: components["responses"]["ProblemResponse"];
10485
10876
  };
10486
10877
  };
10878
+ ReleaseCallbackListener: {
10879
+ parameters: {
10880
+ query?: never;
10881
+ header?: never;
10882
+ path?: never;
10883
+ cookie?: never;
10884
+ };
10885
+ requestBody?: never;
10886
+ responses: {
10887
+ /** @description Released */
10888
+ 204: {
10889
+ headers: {
10890
+ [name: string]: unknown;
10891
+ };
10892
+ content?: never;
10893
+ };
10894
+ default: components["responses"]["ProblemResponse"];
10895
+ };
10896
+ };
10897
+ ListCallbackEvents: {
10898
+ parameters: {
10899
+ query?: {
10900
+ /** @description Cursor from the `next` field of a previous response. Returns only events after it. Omit it to start from the oldest event. */
10901
+ after?: string;
10902
+ /** @description Maximum number of events to return. Defaults to 50. */
10903
+ limit?: number;
10904
+ /** @description Returns only events of this verification session. */
10905
+ sessionId?: components["schemas"]["SessionID"];
10906
+ /** @description When `true`, returns only events you have not acknowledged. Defaults to `false`. */
10907
+ pending?: boolean;
10908
+ };
10909
+ header?: never;
10910
+ path?: never;
10911
+ cookie?: never;
10912
+ };
10913
+ requestBody?: never;
10914
+ responses: {
10915
+ /** @description Ok */
10916
+ 200: {
10917
+ headers: {
10918
+ [name: string]: unknown;
10919
+ };
10920
+ content: {
10921
+ "application/json": {
10922
+ items: components["schemas"]["CallbackEvent"][];
10923
+ /** @description Cursor to pass as `after` on the next request. Equals `after` when `items` is empty, and `0` when you passed no `after`. */
10924
+ next: string;
10925
+ };
10926
+ };
10927
+ };
10928
+ default: components["responses"]["ProblemResponse"];
10929
+ };
10930
+ };
10931
+ AcknowledgeCallbackEvents: {
10932
+ parameters: {
10933
+ query?: never;
10934
+ header?: never;
10935
+ path?: never;
10936
+ cookie?: never;
10937
+ };
10938
+ requestBody: {
10939
+ content: {
10940
+ "application/json": {
10941
+ /** @description The `id` of each `CallbackEvent` to acknowledge. */
10942
+ ids: string[];
10943
+ };
10944
+ };
10945
+ };
10946
+ responses: {
10947
+ /** @description Acknowledged */
10948
+ 204: {
10949
+ headers: {
10950
+ [name: string]: unknown;
10951
+ };
10952
+ content?: never;
10953
+ };
10954
+ default: components["responses"]["ProblemResponse"];
10955
+ };
10956
+ };
10487
10957
  DeleteCallbackSubscription: {
10488
10958
  parameters: {
10489
10959
  query?: never;
@@ -10548,6 +11018,15 @@ export interface operations {
10548
11018
  };
10549
11019
  };
10550
11020
  responses: {
11021
+ /** @description The org's existing pull subscription */
11022
+ 200: {
11023
+ headers: {
11024
+ [name: string]: unknown;
11025
+ };
11026
+ content: {
11027
+ "application/json": components["schemas"]["CallbackSubscription"];
11028
+ };
11029
+ };
10551
11030
  /** @description Subscription created */
10552
11031
  201: {
10553
11032
  headers: {
@@ -10768,10 +11247,16 @@ export interface operations {
10768
11247
  [name: string]: unknown;
10769
11248
  };
10770
11249
  content: {
10771
- "text/html": components["schemas"]["HtmlContent"];
10772
11250
  "application/json": components["schemas"]["VerificationAnalytics"];
10773
11251
  };
10774
11252
  };
11253
+ /** @description A browser; redirects to the org's Dashboard. */
11254
+ 302: {
11255
+ headers: {
11256
+ [name: string]: unknown;
11257
+ };
11258
+ content?: never;
11259
+ };
10775
11260
  403: components["responses"]["ForbiddenResponse"];
10776
11261
  default: components["responses"]["ProblemResponse"];
10777
11262
  };
@@ -10816,7 +11301,7 @@ export interface operations {
10816
11301
  "application/problem+json": components["schemas"]["Problem"];
10817
11302
  };
10818
11303
  };
10819
- /** @description No callback subscription exists for the organization. Register one first via `POST /verifications/callback-subscriptions` (or `POST /orgs/{orgId}/callback-subscriptions`). */
11304
+ /** @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. */
10820
11305
  409: {
10821
11306
  headers: {
10822
11307
  [name: string]: unknown;
@@ -10837,6 +11322,90 @@ export interface operations {
10837
11322
  default: components["responses"]["ProblemResponse"];
10838
11323
  };
10839
11324
  };
11325
+ CreateAiVerificationSession: {
11326
+ parameters: {
11327
+ query?: never;
11328
+ header?: never;
11329
+ path?: never;
11330
+ cookie?: never;
11331
+ };
11332
+ requestBody: {
11333
+ content: {
11334
+ "application/json": components["schemas"]["CreateAiVerificationSessionRequest"];
11335
+ };
11336
+ };
11337
+ responses: {
11338
+ /** @description Session created */
11339
+ 201: {
11340
+ headers: {
11341
+ [name: string]: unknown;
11342
+ };
11343
+ content: {
11344
+ "application/json": components["schemas"]["VerificationSession"];
11345
+ };
11346
+ };
11347
+ /** @description Overage is paused: the organization is past its plan allowance, and its prepaid credits and credit-exhaustion allowance are spent (`event: billing_required`). */
11348
+ 402: {
11349
+ headers: {
11350
+ [name: string]: unknown;
11351
+ };
11352
+ content: {
11353
+ "application/problem+json": components["schemas"]["Problem"];
11354
+ };
11355
+ };
11356
+ /** @description The organization has no callback subscription. */
11357
+ 409: {
11358
+ headers: {
11359
+ [name: string]: unknown;
11360
+ };
11361
+ content: {
11362
+ "application/problem+json": components["schemas"]["Problem"];
11363
+ };
11364
+ };
11365
+ /** @description The verification quota is exceeded (`event: billing_required` with a terminal `sessionId`). */
11366
+ 429: {
11367
+ headers: {
11368
+ [name: string]: unknown;
11369
+ };
11370
+ content: {
11371
+ "application/problem+json": components["schemas"]["Problem"];
11372
+ };
11373
+ };
11374
+ default: components["responses"]["ProblemResponse"];
11375
+ };
11376
+ };
11377
+ GetAiVerificationSession: {
11378
+ parameters: {
11379
+ query?: never;
11380
+ header?: never;
11381
+ path: {
11382
+ sessionId: components["schemas"]["SessionID"];
11383
+ };
11384
+ cookie?: never;
11385
+ };
11386
+ requestBody?: never;
11387
+ responses: {
11388
+ /** @description Ok */
11389
+ 200: {
11390
+ headers: {
11391
+ [name: string]: unknown;
11392
+ };
11393
+ content: {
11394
+ "application/json": components["schemas"]["AiVerificationSession"];
11395
+ };
11396
+ };
11397
+ /** @description No session with this ID, or the session wasn't created by `POST /verifications/ai-sessions`. */
11398
+ 404: {
11399
+ headers: {
11400
+ [name: string]: unknown;
11401
+ };
11402
+ content: {
11403
+ "application/problem+json": components["schemas"]["Problem"];
11404
+ };
11405
+ };
11406
+ default: components["responses"]["ProblemResponse"];
11407
+ };
11408
+ };
10840
11409
  GetVerificationSession: {
10841
11410
  parameters: {
10842
11411
  query?: never;