@reclaimprotocol/client 0.1.42 → 0.1.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -2
- package/lib/result.js +26 -0
- package/lib/routes.gen.d.ts +24 -0
- package/lib/routes.gen.js +7 -1
- package/lib/types/openapi.gen.d.ts +472 -31
- package/lib/types/openapi.gen.js +1 -1
- package/package.json +1 -1
- package/src/result.ts +32 -0
- package/src/routes.gen.ts +7 -1
- package/src/types/openapi.gen.ts +473 -32
|
@@ -741,6 +741,66 @@ export interface paths {
|
|
|
741
741
|
patch?: never;
|
|
742
742
|
trace?: never;
|
|
743
743
|
};
|
|
744
|
+
"/admin/orgs/{orgId}/ai-app-key": {
|
|
745
|
+
parameters: {
|
|
746
|
+
query?: never;
|
|
747
|
+
header?: never;
|
|
748
|
+
path?: never;
|
|
749
|
+
cookie?: never;
|
|
750
|
+
};
|
|
751
|
+
/**
|
|
752
|
+
* Get an org's AI application key (admin-only)
|
|
753
|
+
* @description Admin only. Returns the metadata of the organization's active AI application key. Returns `404` if the organization has no key yet; Builder creates one when the organization starts its first AI session. The response never includes the secret.
|
|
754
|
+
*/
|
|
755
|
+
get: operations["AdminGetOrgAiAppKey"];
|
|
756
|
+
put?: never;
|
|
757
|
+
post?: never;
|
|
758
|
+
delete?: never;
|
|
759
|
+
options?: never;
|
|
760
|
+
head?: never;
|
|
761
|
+
patch?: never;
|
|
762
|
+
trace?: never;
|
|
763
|
+
};
|
|
764
|
+
"/admin/orgs/{orgId}/ai-app-key/rotate": {
|
|
765
|
+
parameters: {
|
|
766
|
+
query?: never;
|
|
767
|
+
header?: never;
|
|
768
|
+
path?: never;
|
|
769
|
+
cookie?: never;
|
|
770
|
+
};
|
|
771
|
+
get?: never;
|
|
772
|
+
put?: never;
|
|
773
|
+
/**
|
|
774
|
+
* Rotate an org's AI application key (admin-only)
|
|
775
|
+
* @description Admin only. Creates and registers a new AI application key and makes it the organization's active key. Builder disables the previous key in Builder only, so sessions that already started keep working until they expire. If the organization has no active key because staff disabled it, this issues a fresh key and so re-enables AI sessions for the organization. Returns `404` only if the organization doesn't exist. Returns the new key's metadata, never its secret.
|
|
776
|
+
*/
|
|
777
|
+
post: operations["AdminRotateOrgAiAppKey"];
|
|
778
|
+
delete?: never;
|
|
779
|
+
options?: never;
|
|
780
|
+
head?: never;
|
|
781
|
+
patch?: never;
|
|
782
|
+
trace?: never;
|
|
783
|
+
};
|
|
784
|
+
"/admin/orgs/{orgId}/ai-app-key/disable": {
|
|
785
|
+
parameters: {
|
|
786
|
+
query?: never;
|
|
787
|
+
header?: never;
|
|
788
|
+
path?: never;
|
|
789
|
+
cookie?: never;
|
|
790
|
+
};
|
|
791
|
+
get?: never;
|
|
792
|
+
put?: never;
|
|
793
|
+
/**
|
|
794
|
+
* Disable an org's AI application key (admin-only)
|
|
795
|
+
* @description Admin only. Disables the organization's active AI application key at the AI SDK backend first, then in Builder. If the AI SDK backend call fails, the response is `503` and the key stays active, so you can retry. The disable persists: the organization's AI sessions fail with `403` until staff rotate the key with `POST /admin/orgs/{orgId}/ai-app-key/rotate`. Returns `404` if the organization has no active key. Returns the disabled key's metadata, never its secret.
|
|
796
|
+
*/
|
|
797
|
+
post: operations["AdminDisableOrgAiAppKey"];
|
|
798
|
+
delete?: never;
|
|
799
|
+
options?: never;
|
|
800
|
+
head?: never;
|
|
801
|
+
patch?: never;
|
|
802
|
+
trace?: never;
|
|
803
|
+
};
|
|
744
804
|
"/admin/orgs/{orgId}/credits": {
|
|
745
805
|
parameters: {
|
|
746
806
|
query?: never;
|
|
@@ -2943,6 +3003,20 @@ export interface paths {
|
|
|
2943
3003
|
* the prompt states, such as the user's name, merged with the `context`
|
|
2944
3004
|
* you send. Your values take precedence.
|
|
2945
3005
|
*
|
|
3006
|
+
* You can also send `dataPoints` (the values to verify, each with a
|
|
3007
|
+
* `name`, a `description`, and an optional `isOptional` flag) and
|
|
3008
|
+
* `loginUrls` (pages where the user signs in). Send a `prompt`, at least
|
|
3009
|
+
* one data point, or both. When you send `loginUrls`, Builder lists them
|
|
3010
|
+
* first as candidates and skips the web search. When you send
|
|
3011
|
+
* `dataPoints`, Builder keeps them and adds only optional ones. Every
|
|
3012
|
+
* required data point must appear in the verified proofs; optional ones
|
|
3013
|
+
* can be absent. Set
|
|
3014
|
+
* `isEmailVerificationAllowed` to `true` to let the user choose
|
|
3015
|
+
* email verification on the share page.
|
|
3016
|
+
*
|
|
3017
|
+
* The first AI session of an organization creates and registers an
|
|
3018
|
+
* application key for the organization. You don't manage this key.
|
|
3019
|
+
*
|
|
2946
3020
|
* On `201`, the session has no providers: the AI agent works out how to
|
|
2947
3021
|
* verify. The organization needs a callback subscription. The session
|
|
2948
3022
|
* uses one verification from the quota pool of the
|
|
@@ -2958,14 +3032,31 @@ export interface paths {
|
|
|
2958
3032
|
* curl -X POST $BASE/verifications/ai-sessions \
|
|
2959
3033
|
* -H "Authorization: Bearer $ORG_TOKEN" \
|
|
2960
3034
|
* -H 'Content-Type: application/json' \
|
|
2961
|
-
* -d '{
|
|
3035
|
+
* -d '{
|
|
3036
|
+
* "prompt": "verify I am a student at Manipal University",
|
|
3037
|
+
* "dataPoints": [
|
|
3038
|
+
* {"name": "fullName", "description": "Name of the student"},
|
|
3039
|
+
* {"name": "studentId", "description": "Student ID", "isOptional": true}
|
|
3040
|
+
* ],
|
|
3041
|
+
* "loginUrls": ["https://learner.manipal.edu/login"],
|
|
3042
|
+
* "isEmailVerificationAllowed": false
|
|
3043
|
+
* }'
|
|
2962
3044
|
*
|
|
2963
3045
|
* Errors:
|
|
2964
3046
|
*
|
|
2965
3047
|
* - `400`: Builder rejects the prompt (for example, it targets an
|
|
2966
|
-
* internal host), `
|
|
2967
|
-
* `
|
|
2968
|
-
*
|
|
3048
|
+
* internal host), the request has no `prompt` and no `dataPoints`,
|
|
3049
|
+
* `dataPoints` has duplicate names or no required item, a login URL
|
|
3050
|
+
* isn't a public `http` or `https` URL, the prompt and data points
|
|
3051
|
+
* together exceed 10,000 characters, `context` contains a reserved key
|
|
3052
|
+
* (`attestationNonce`, `attestationNonceData`, `reclaimSessionId`,
|
|
3053
|
+
* `extractedParameters`, or `builderSessionId`), or
|
|
3054
|
+
* `verificationClientUrl` isn't a registered client.
|
|
3055
|
+
* - `403`: Reclaim staff disabled AI sessions for the organization.
|
|
3056
|
+
* Contact Reclaim support.
|
|
3057
|
+
* - `503`: Builder couldn't create or register the organization's
|
|
3058
|
+
* application key. Builder doesn't charge a verification. Retry the
|
|
3059
|
+
* request.
|
|
2969
3060
|
* - `409`: The organization has no callback subscription.
|
|
2970
3061
|
* - `429` or `402`: The quota or credits are spent. The body has
|
|
2971
3062
|
* `event: billing_required` and a terminal `sessionId`.
|
|
@@ -2995,10 +3086,13 @@ export interface paths {
|
|
|
2995
3086
|
* `error`. Poll every second or two while it's `resolving`.
|
|
2996
3087
|
*
|
|
2997
3088
|
* `candidates` lists the pages to open, best first, each with a
|
|
2998
|
-
* `source` of `catalog
|
|
2999
|
-
*
|
|
3000
|
-
*
|
|
3001
|
-
*
|
|
3089
|
+
* `source` of `caller`, `catalog`, or `web`. URLs you sent in
|
|
3090
|
+
* `loginUrls` come first, up to 10 candidates in all. Without
|
|
3091
|
+
* `loginUrls`, it usually has one page, and several (up to 3) only when
|
|
3092
|
+
* their `confidence` values are within 0.1 of the best page's value. In
|
|
3093
|
+
* that case, the user picks one on the session's `verificationUrl`.
|
|
3094
|
+
* After the user picks a page, `status` is `started` and
|
|
3095
|
+
* `selectedLoginUrl` holds it.
|
|
3002
3096
|
*
|
|
3003
3097
|
* The `OrgToken` must resolve to the session's organization. To track
|
|
3004
3098
|
* the session's status, call `GET /verifications/sessions/{sessionId}`.
|
|
@@ -3015,6 +3109,66 @@ export interface paths {
|
|
|
3015
3109
|
patch?: never;
|
|
3016
3110
|
trace?: never;
|
|
3017
3111
|
};
|
|
3112
|
+
"/verifications/ai-sessions/{sessionId}/start": {
|
|
3113
|
+
parameters: {
|
|
3114
|
+
query?: never;
|
|
3115
|
+
header?: never;
|
|
3116
|
+
path?: never;
|
|
3117
|
+
cookie?: never;
|
|
3118
|
+
};
|
|
3119
|
+
get?: never;
|
|
3120
|
+
put?: never;
|
|
3121
|
+
/**
|
|
3122
|
+
* Start an AI verification session on a chosen page
|
|
3123
|
+
* @description Starts the verification on one of the session's `candidates` and returns the URL of the remote browser where the user signs in. The share page calls this endpoint. The registered `x-reclaim-vc-id` must match the client selected when the session was created. `loginUrl` must be one of the session's candidates. The call is idempotent: after the session starts, it returns the same `verificationUrl` and ignores `loginUrl`. The call returns `409` while the lookup is `resolving` or after it `failed`, and when the session has finished.
|
|
3124
|
+
*/
|
|
3125
|
+
post: operations["StartAiVerificationSession"];
|
|
3126
|
+
delete?: never;
|
|
3127
|
+
options?: never;
|
|
3128
|
+
head?: never;
|
|
3129
|
+
patch?: never;
|
|
3130
|
+
trace?: never;
|
|
3131
|
+
};
|
|
3132
|
+
"/verifications/ai-sessions/{sessionId}/proofs": {
|
|
3133
|
+
parameters: {
|
|
3134
|
+
query?: never;
|
|
3135
|
+
header?: never;
|
|
3136
|
+
path?: never;
|
|
3137
|
+
cookie?: never;
|
|
3138
|
+
};
|
|
3139
|
+
get?: never;
|
|
3140
|
+
put?: never;
|
|
3141
|
+
/**
|
|
3142
|
+
* Receive the proofs of an AI verification session
|
|
3143
|
+
* @description Callback that Reclaim Popcorn calls when the user finishes an AI verification. Consumers don't call this endpoint. The body is the array of proofs. Builder verifies them, checks that any values in the session's `context` match the extracted values (ignoring case and surrounding whitespace), and records the result. Every required data point must have a non-empty extracted value. If any is missing, the session ends as `rejected` with `reasonCode` `missing-data-points`, and the problem detail names the missing data points, never their values. It then delivers the result, with the proofs and extracted parameters, to your callback subscriptions. The `x-reclaim-session-id` header must equal the ID that Builder stored when it started the session; otherwise the endpoint returns `404`. The endpoint returns `400` for invalid proofs and doesn't change the session. If the session has already finished, the endpoint returns `200` and does nothing.
|
|
3144
|
+
*/
|
|
3145
|
+
post: operations["ReceiveAiVerificationProofs"];
|
|
3146
|
+
delete?: never;
|
|
3147
|
+
options?: never;
|
|
3148
|
+
head?: never;
|
|
3149
|
+
patch?: never;
|
|
3150
|
+
trace?: never;
|
|
3151
|
+
};
|
|
3152
|
+
"/verifications/ai-sessions/{sessionId}/cancel": {
|
|
3153
|
+
parameters: {
|
|
3154
|
+
query?: never;
|
|
3155
|
+
header?: never;
|
|
3156
|
+
path?: never;
|
|
3157
|
+
cookie?: never;
|
|
3158
|
+
};
|
|
3159
|
+
get?: never;
|
|
3160
|
+
put?: never;
|
|
3161
|
+
/**
|
|
3162
|
+
* Receive the cancellation of an AI verification session
|
|
3163
|
+
* @description Callback that Reclaim Popcorn calls when an AI verification is cancelled or fails. Consumers don't call this endpoint. Builder ends the session with status `error`, using `message` from the body (a string of up to 500 characters) as the error message, and delivers the failure to your `verification_error` callbacks. The `x-reclaim-session-id` header must equal the ID that Builder stored when it started the session; otherwise the endpoint returns `404`. If the session has already finished, the endpoint returns `200` and does nothing.
|
|
3164
|
+
*/
|
|
3165
|
+
post: operations["ReceiveAiVerificationCancel"];
|
|
3166
|
+
delete?: never;
|
|
3167
|
+
options?: never;
|
|
3168
|
+
head?: never;
|
|
3169
|
+
patch?: never;
|
|
3170
|
+
trace?: never;
|
|
3171
|
+
};
|
|
3018
3172
|
"/verifications/sessions/{sessionId}": {
|
|
3019
3173
|
parameters: {
|
|
3020
3174
|
query?: never;
|
|
@@ -3408,13 +3562,19 @@ export interface paths {
|
|
|
3408
3562
|
* has exhausted its `ZKFETCH` pool is refused (`402`/`429`) and never
|
|
3409
3563
|
* receives a usable token.
|
|
3410
3564
|
*
|
|
3565
|
+
* Attestor authentication is optional. If the deployment doesn't use
|
|
3566
|
+
* it (no `ATTESTOR_AUTH_PRIVATE_KEY`), the request is still
|
|
3567
|
+
* authenticated, counted against the `ZKFETCH` pool, and logged, but
|
|
3568
|
+
* the response is an empty object. In that case, connect to the
|
|
3569
|
+
* attestor without an auth request.
|
|
3570
|
+
*
|
|
3411
3571
|
* `host` is recorded for observability only — the minted token is
|
|
3412
3572
|
* **not** restricted to it and today authorizes a proof against any
|
|
3413
3573
|
* host, exactly like every other Builder-issued attestor token. Host
|
|
3414
3574
|
* enforcement, if it ships, will be a server-side change rather than a
|
|
3415
3575
|
* breaking one.
|
|
3416
3576
|
*
|
|
3417
|
-
* `expiresAt` is
|
|
3577
|
+
* When present, `expiresAt` is about ten seconds after issuance. The attestor
|
|
3418
3578
|
* checks expiry only once, at the auth handshake — never again for the
|
|
3419
3579
|
* life of the connection — so this window only has to cover Builder
|
|
3420
3580
|
* issuing the token and the caller opening its attestor connection; the
|
|
@@ -3514,11 +3674,24 @@ export interface components {
|
|
|
3514
3674
|
ProviderID: string;
|
|
3515
3675
|
/** Format: uuid */
|
|
3516
3676
|
OrgID: string;
|
|
3517
|
-
/** @description Body for `POST /verifications/ai-sessions`. */
|
|
3677
|
+
/** @description Body for `POST /verifications/ai-sessions`. Send a `prompt`, at least one entry in `dataPoints`, or both. */
|
|
3518
3678
|
CreateAiVerificationSessionRequest: {
|
|
3519
|
-
/** @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. */
|
|
3520
|
-
prompt
|
|
3521
|
-
/** @description
|
|
3679
|
+
/** @description What to verify, in plain language, such as "verify I'm a student at Manipal University". Required unless `dataPoints` has at least one item. Builder rejects a prompt that contains credentials, card numbers, instructions for the AI, or a sensitive claim. The prompt and the data point lines together can't exceed 10,000 characters. */
|
|
3680
|
+
prompt?: string;
|
|
3681
|
+
/** @description The values to verify. Required unless you send a `prompt`. Names must be unique, and at least one data point must be required (its `isOptional` is `false` or absent). When you send data points, Builder keeps them and adds only optional data points that the prompt implies. When you send none, Builder chooses the data points from the prompt. Every required data point must appear in the verified proofs. If one is missing, the session ends as `rejected` with `reasonCode` `missing-data-points`. */
|
|
3682
|
+
dataPoints?: {
|
|
3683
|
+
/** @description Name of the value, such as `username`. Starts with a letter or underscore, followed by up to 63 letters, digits, or underscores. */
|
|
3684
|
+
name: string;
|
|
3685
|
+
/** @description What the value is and why it proves the claim. */
|
|
3686
|
+
description: string;
|
|
3687
|
+
/** @description Defaults to `false`. If `true`, the claim can be proven without this value, and the proofs can omit it. If `false` or absent, the data point is required, and a session whose proofs omit it ends as `rejected` with `reasonCode` `missing-data-points`. */
|
|
3688
|
+
isOptional?: boolean;
|
|
3689
|
+
}[];
|
|
3690
|
+
/** @description Pages where the user signs in, such as `https://portal.example.edu/login`. Builder shows them first as candidates with source `caller`, and skips the web search. Each URL must use `http` or `https`, can't contain credentials, and must resolve to a public host. */
|
|
3691
|
+
loginUrls?: string[];
|
|
3692
|
+
/** @description Defaults to `false`. If `true`, the share page offers the user a choice to verify using email instead of signing in. If you omit it, the page doesn't offer that choice. */
|
|
3693
|
+
isEmailVerificationAllowed?: boolean;
|
|
3694
|
+
/** @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. Also must not contain `reclaimSessionId`, `extractedParameters`, or `builderSessionId`. Omit if you have none. */
|
|
3522
3695
|
context?: {
|
|
3523
3696
|
[key: string]: unknown;
|
|
3524
3697
|
};
|
|
@@ -3527,6 +3700,45 @@ export interface components {
|
|
|
3527
3700
|
/** @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. */
|
|
3528
3701
|
geoLocation?: string;
|
|
3529
3702
|
};
|
|
3703
|
+
/** @description Body for `POST /verifications/ai-sessions/{sessionId}/start`. */
|
|
3704
|
+
StartAiVerificationSessionRequest: {
|
|
3705
|
+
/**
|
|
3706
|
+
* Format: uri
|
|
3707
|
+
* @description The page to open. Must be the `loginUrl` of one of the session's `candidates`.
|
|
3708
|
+
*/
|
|
3709
|
+
loginUrl: string;
|
|
3710
|
+
};
|
|
3711
|
+
StartAiVerificationSessionResponse: {
|
|
3712
|
+
/**
|
|
3713
|
+
* Format: uri
|
|
3714
|
+
* @description URL of the remote browser where the user signs in.
|
|
3715
|
+
*/
|
|
3716
|
+
verificationUrl: string;
|
|
3717
|
+
};
|
|
3718
|
+
AiVerificationCallbackAck: {
|
|
3719
|
+
/** @description Always `true`. */
|
|
3720
|
+
ok: boolean;
|
|
3721
|
+
};
|
|
3722
|
+
/** @description Metadata of an organization's AI application key. The response never includes the key's secret. */
|
|
3723
|
+
AdminOrgAiAppKey: {
|
|
3724
|
+
/** @description Public identifier (an Ethereum address) of the key. */
|
|
3725
|
+
appId: string;
|
|
3726
|
+
/**
|
|
3727
|
+
* Format: date-time
|
|
3728
|
+
* @description When Builder created the key.
|
|
3729
|
+
*/
|
|
3730
|
+
createdAt: string;
|
|
3731
|
+
/**
|
|
3732
|
+
* Format: date-time
|
|
3733
|
+
* @description When Builder registered the key with the AI SDK backend, or `null` if registration hasn't completed.
|
|
3734
|
+
*/
|
|
3735
|
+
registeredAt: string | null;
|
|
3736
|
+
/**
|
|
3737
|
+
* Format: date-time
|
|
3738
|
+
* @description When the key was disabled, or `null` if it's active.
|
|
3739
|
+
*/
|
|
3740
|
+
disabledAt: string | null;
|
|
3741
|
+
};
|
|
3530
3742
|
/** @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. */
|
|
3531
3743
|
AiVerificationSession: {
|
|
3532
3744
|
/**
|
|
@@ -3535,27 +3747,34 @@ export interface components {
|
|
|
3535
3747
|
*/
|
|
3536
3748
|
sessionId: string;
|
|
3537
3749
|
/**
|
|
3538
|
-
* @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.
|
|
3750
|
+
* @description `resolving` while Builder looks up the pages and data points. `ready` when `candidates` and `dataPoints` are set. `started` when the user has picked a page and the verification is running; the session's own status stays `pending` until it finishes. `failed` when the lookup failed: `error` says why, the session ended with status `error`, and its verification was refunded.
|
|
3539
3751
|
* @enum {string}
|
|
3540
3752
|
*/
|
|
3541
|
-
status: "resolving" | "ready" | "failed";
|
|
3753
|
+
status: "resolving" | "ready" | "started" | "failed";
|
|
3542
3754
|
/** @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. */
|
|
3543
3755
|
error?: components["schemas"]["Problem"];
|
|
3544
|
-
/** @description Only when `status` is `ready`. The
|
|
3756
|
+
/** @description Only when `status` is `ready` or `started`. The data points to verify, required data points first. They combine the data points you sent with any optional ones Builder added. If you sent none, Builder chooses the fewest that prove the prompt's claim. A data point for a value the prompt or `context` states is always required. */
|
|
3545
3757
|
dataPoints?: {
|
|
3546
|
-
/** @description
|
|
3758
|
+
/** @description Name of the value, such as `username`. */
|
|
3547
3759
|
name: string;
|
|
3548
3760
|
/** @description What the value is and why it proves the claim. */
|
|
3549
3761
|
description: string;
|
|
3550
|
-
/** @description If `true`, the claim can be proven without this value, as with `isOptional` on a provider's `ResponseMatch`. If
|
|
3551
|
-
isOptional
|
|
3762
|
+
/** @description If `true`, the claim can be proven without this value, as with `isOptional` on a provider's `ResponseMatch`. If `false`, the data point is required. */
|
|
3763
|
+
isOptional: boolean;
|
|
3552
3764
|
}[];
|
|
3553
3765
|
/** @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. */
|
|
3554
3766
|
context: {
|
|
3555
3767
|
[key: string]: unknown;
|
|
3556
3768
|
};
|
|
3557
|
-
/** @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.
|
|
3769
|
+
/** @description Only when `status` is `ready` or `started`. 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. URLs you sent in `loginUrls` come first (source `caller`, confidence 1), up to 10 candidates in all. Otherwise it's usually one page, and 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. */
|
|
3558
3770
|
candidates?: components["schemas"]["ResolvedLoginPage"][];
|
|
3771
|
+
/** @description Whether the share page offers the user a choice to verify using email. Matches the value you sent when you created the session. */
|
|
3772
|
+
isEmailVerificationAllowed: boolean;
|
|
3773
|
+
/**
|
|
3774
|
+
* Format: uri
|
|
3775
|
+
* @description The page the user picked. Only when `status` is `started`.
|
|
3776
|
+
*/
|
|
3777
|
+
selectedLoginUrl?: string;
|
|
3559
3778
|
};
|
|
3560
3779
|
/** @description A page for the user to open and sign in to. */
|
|
3561
3780
|
ResolvedLoginPage: {
|
|
@@ -3567,10 +3786,10 @@ export interface components {
|
|
|
3567
3786
|
/** @description Estimated likelihood, from 0 to 1, that signing in here shows the claim. Candidates below 0.5 are never returned. */
|
|
3568
3787
|
confidence: number;
|
|
3569
3788
|
/**
|
|
3570
|
-
* @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.
|
|
3789
|
+
* @description Where the page came from. `caller` is a URL you sent in `loginUrls`. `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.
|
|
3571
3790
|
* @enum {string}
|
|
3572
3791
|
*/
|
|
3573
|
-
source: "catalog" | "web";
|
|
3792
|
+
source: "caller" | "catalog" | "web";
|
|
3574
3793
|
};
|
|
3575
3794
|
/** @description A verification client id used as a filter. Hyphens are ignored. */
|
|
3576
3795
|
VerificationClientIDFilter: string;
|
|
@@ -3617,14 +3836,14 @@ export interface components {
|
|
|
3617
3836
|
*/
|
|
3618
3837
|
host: string;
|
|
3619
3838
|
};
|
|
3620
|
-
/** @description A short-lived attestor authorization for one zkFetch call. */
|
|
3839
|
+
/** @description A short-lived attestor authorization for one zkFetch call. Both `token` and `expiresAt` are absent when the deployment doesn't use attestor authentication. The caller then connects to the attestor without an auth request. */
|
|
3621
3840
|
FetchAuthorization: {
|
|
3622
3841
|
/**
|
|
3623
3842
|
* Format: byte
|
|
3624
3843
|
* @description Base64-encoded legacy attestor authorization — the same form `POST /verifications/sessions/{sessionId}/attestor-auth` returns. Decode it back into the native `AuthenticationRequest` to open the attestor connection.
|
|
3625
3844
|
*/
|
|
3626
|
-
token
|
|
3627
|
-
expiresAt
|
|
3845
|
+
token?: string;
|
|
3846
|
+
expiresAt?: components["schemas"]["Timestamp"];
|
|
3628
3847
|
};
|
|
3629
3848
|
/**
|
|
3630
3849
|
* Format: uuid
|
|
@@ -4508,6 +4727,29 @@ export interface components {
|
|
|
4508
4727
|
orgId: components["schemas"]["OrgID"];
|
|
4509
4728
|
orgName: string;
|
|
4510
4729
|
}[];
|
|
4730
|
+
/** @description Prompts callers sent to `POST /verifications/ai-sessions` in the window, most recent first, with how each resolved and ended. Never holds proofs, extracted values or the verification URL. */
|
|
4731
|
+
aiSessionPrompts: {
|
|
4732
|
+
/** Format: uuid */
|
|
4733
|
+
sessionId: string;
|
|
4734
|
+
/** Format: date-time */
|
|
4735
|
+
createdAt: string;
|
|
4736
|
+
orgId: components["schemas"]["OrgID"];
|
|
4737
|
+
orgName: string;
|
|
4738
|
+
prompt: string;
|
|
4739
|
+
geoLocation?: string;
|
|
4740
|
+
requiredDataPoints: string[];
|
|
4741
|
+
optionalDataPoints: string[];
|
|
4742
|
+
/** @enum {string} */
|
|
4743
|
+
taskStatus: "resolving" | "ready" | "started" | "failed";
|
|
4744
|
+
/** @description Login pages found, by host only. */
|
|
4745
|
+
candidates: {
|
|
4746
|
+
host: string;
|
|
4747
|
+
source: string;
|
|
4748
|
+
}[];
|
|
4749
|
+
errorTitle?: string;
|
|
4750
|
+
sessionStatus: string;
|
|
4751
|
+
outcomeReasonCode?: string;
|
|
4752
|
+
}[];
|
|
4511
4753
|
/** @description Coding-agent activity reported by the Reclaim MCP server in the window. `toolCalls` and `clients` come from a daily rollup that refreshes every 15 minutes. The `orgId` filter doesn't apply here. */
|
|
4512
4754
|
agents: {
|
|
4513
4755
|
/**
|
|
@@ -6282,7 +6524,7 @@ export interface components {
|
|
|
6282
6524
|
* @description UUID v7 session id (also echoed in context as `reclaimSessionId`).
|
|
6283
6525
|
*/
|
|
6284
6526
|
id: string;
|
|
6285
|
-
/** @description The providers this session verifies, in run order. The Verification Client runs each (sequentially, in one browser session) and submits one combined result; all are required. */
|
|
6527
|
+
/** @description The providers this session verifies, in run order. The Verification Client runs each (sequentially, in one browser session) and submits one combined result; all are required. AI sessions have no providers, so the array is empty. */
|
|
6286
6528
|
providers: components["schemas"]["SessionProvider"][];
|
|
6287
6529
|
/** @description The organization that owns this session. */
|
|
6288
6530
|
orgId: components["schemas"]["OrgID"];
|
|
@@ -6703,10 +6945,12 @@ export interface components {
|
|
|
6703
6945
|
} & {
|
|
6704
6946
|
[key: string]: unknown;
|
|
6705
6947
|
};
|
|
6706
|
-
/** @description One entry per verified provider (success only), in run order. Each carries that provider's proven requests. */
|
|
6948
|
+
/** @description One entry per verified provider (success only), in run order. Each carries that provider's proven requests. AI sessions have no provider, so they carry a single entry without `provider_id` and `resolved_version`. */
|
|
6707
6949
|
results?: ({
|
|
6708
|
-
|
|
6709
|
-
|
|
6950
|
+
/** @description Absent for AI sessions. */
|
|
6951
|
+
provider_id?: components["schemas"]["ProviderID"];
|
|
6952
|
+
/** @description Absent for AI sessions. */
|
|
6953
|
+
resolved_version?: string;
|
|
6710
6954
|
/** @description One entry per proven request for this provider. */
|
|
6711
6955
|
requests: ({
|
|
6712
6956
|
request_id?: string;
|
|
@@ -7692,7 +7936,7 @@ export interface operations {
|
|
|
7692
7936
|
/** @description Set to `csv` to download one section as a spreadsheet instead of rendering the page. Pair it with `section`. A CSV export returns up to 1000 rows, where the page shows only the leading rows of each ranked section. */
|
|
7693
7937
|
format?: "csv";
|
|
7694
7938
|
/** @description Which section `format=csv` exports. Each section has its own columns, so one download holds one section. Defaults to `providers`. */
|
|
7695
|
-
section?: "providers" | "revenue" | "usage" | "goals" | "tools" | "agents" | "funnel";
|
|
7939
|
+
section?: "providers" | "revenue" | "usage" | "goals" | "ai-session-prompts" | "tools" | "agents" | "funnel";
|
|
7696
7940
|
};
|
|
7697
7941
|
header?: never;
|
|
7698
7942
|
path?: never;
|
|
@@ -8054,6 +8298,81 @@ export interface operations {
|
|
|
8054
8298
|
default: components["responses"]["ProblemResponse"];
|
|
8055
8299
|
};
|
|
8056
8300
|
};
|
|
8301
|
+
AdminGetOrgAiAppKey: {
|
|
8302
|
+
parameters: {
|
|
8303
|
+
query?: never;
|
|
8304
|
+
header?: never;
|
|
8305
|
+
path: {
|
|
8306
|
+
orgId: components["schemas"]["OrgID"];
|
|
8307
|
+
};
|
|
8308
|
+
cookie?: never;
|
|
8309
|
+
};
|
|
8310
|
+
requestBody?: never;
|
|
8311
|
+
responses: {
|
|
8312
|
+
/** @description The key's metadata. */
|
|
8313
|
+
200: {
|
|
8314
|
+
headers: {
|
|
8315
|
+
[name: string]: unknown;
|
|
8316
|
+
};
|
|
8317
|
+
content: {
|
|
8318
|
+
"application/json": components["schemas"]["AdminOrgAiAppKey"];
|
|
8319
|
+
};
|
|
8320
|
+
};
|
|
8321
|
+
403: components["responses"]["ForbiddenResponse"];
|
|
8322
|
+
404: components["responses"]["ProblemResponse"];
|
|
8323
|
+
default: components["responses"]["ProblemResponse"];
|
|
8324
|
+
};
|
|
8325
|
+
};
|
|
8326
|
+
AdminRotateOrgAiAppKey: {
|
|
8327
|
+
parameters: {
|
|
8328
|
+
query?: never;
|
|
8329
|
+
header?: never;
|
|
8330
|
+
path: {
|
|
8331
|
+
orgId: components["schemas"]["OrgID"];
|
|
8332
|
+
};
|
|
8333
|
+
cookie?: never;
|
|
8334
|
+
};
|
|
8335
|
+
requestBody?: never;
|
|
8336
|
+
responses: {
|
|
8337
|
+
/** @description The key's metadata. */
|
|
8338
|
+
200: {
|
|
8339
|
+
headers: {
|
|
8340
|
+
[name: string]: unknown;
|
|
8341
|
+
};
|
|
8342
|
+
content: {
|
|
8343
|
+
"application/json": components["schemas"]["AdminOrgAiAppKey"];
|
|
8344
|
+
};
|
|
8345
|
+
};
|
|
8346
|
+
403: components["responses"]["ForbiddenResponse"];
|
|
8347
|
+
404: components["responses"]["ProblemResponse"];
|
|
8348
|
+
default: components["responses"]["ProblemResponse"];
|
|
8349
|
+
};
|
|
8350
|
+
};
|
|
8351
|
+
AdminDisableOrgAiAppKey: {
|
|
8352
|
+
parameters: {
|
|
8353
|
+
query?: never;
|
|
8354
|
+
header?: never;
|
|
8355
|
+
path: {
|
|
8356
|
+
orgId: components["schemas"]["OrgID"];
|
|
8357
|
+
};
|
|
8358
|
+
cookie?: never;
|
|
8359
|
+
};
|
|
8360
|
+
requestBody?: never;
|
|
8361
|
+
responses: {
|
|
8362
|
+
/** @description The key's metadata. */
|
|
8363
|
+
200: {
|
|
8364
|
+
headers: {
|
|
8365
|
+
[name: string]: unknown;
|
|
8366
|
+
};
|
|
8367
|
+
content: {
|
|
8368
|
+
"application/json": components["schemas"]["AdminOrgAiAppKey"];
|
|
8369
|
+
};
|
|
8370
|
+
};
|
|
8371
|
+
403: components["responses"]["ForbiddenResponse"];
|
|
8372
|
+
404: components["responses"]["ProblemResponse"];
|
|
8373
|
+
default: components["responses"]["ProblemResponse"];
|
|
8374
|
+
};
|
|
8375
|
+
};
|
|
8057
8376
|
AdminGrantOrgCredit: {
|
|
8058
8377
|
parameters: {
|
|
8059
8378
|
query?: never;
|
|
@@ -11676,6 +11995,15 @@ export interface operations {
|
|
|
11676
11995
|
"application/problem+json": components["schemas"]["Problem"];
|
|
11677
11996
|
};
|
|
11678
11997
|
};
|
|
11998
|
+
/** @description Reclaim staff disabled AI sessions for the organization. Contact Reclaim support. */
|
|
11999
|
+
403: {
|
|
12000
|
+
headers: {
|
|
12001
|
+
[name: string]: unknown;
|
|
12002
|
+
};
|
|
12003
|
+
content: {
|
|
12004
|
+
"application/problem+json": components["schemas"]["Problem"];
|
|
12005
|
+
};
|
|
12006
|
+
};
|
|
11679
12007
|
/** @description The organization has no callback subscription. */
|
|
11680
12008
|
409: {
|
|
11681
12009
|
headers: {
|
|
@@ -11694,6 +12022,15 @@ export interface operations {
|
|
|
11694
12022
|
"application/problem+json": components["schemas"]["Problem"];
|
|
11695
12023
|
};
|
|
11696
12024
|
};
|
|
12025
|
+
/** @description Builder couldn't create or register the organization's AI application key. Nothing is charged. */
|
|
12026
|
+
503: {
|
|
12027
|
+
headers: {
|
|
12028
|
+
[name: string]: unknown;
|
|
12029
|
+
};
|
|
12030
|
+
content: {
|
|
12031
|
+
"application/problem+json": components["schemas"]["Problem"];
|
|
12032
|
+
};
|
|
12033
|
+
};
|
|
11697
12034
|
default: components["responses"]["ProblemResponse"];
|
|
11698
12035
|
};
|
|
11699
12036
|
};
|
|
@@ -11729,6 +12066,110 @@ export interface operations {
|
|
|
11729
12066
|
default: components["responses"]["ProblemResponse"];
|
|
11730
12067
|
};
|
|
11731
12068
|
};
|
|
12069
|
+
StartAiVerificationSession: {
|
|
12070
|
+
parameters: {
|
|
12071
|
+
query?: never;
|
|
12072
|
+
header?: never;
|
|
12073
|
+
path: {
|
|
12074
|
+
sessionId: components["schemas"]["SessionID"];
|
|
12075
|
+
};
|
|
12076
|
+
cookie?: never;
|
|
12077
|
+
};
|
|
12078
|
+
requestBody: {
|
|
12079
|
+
content: {
|
|
12080
|
+
"application/json": components["schemas"]["StartAiVerificationSessionRequest"];
|
|
12081
|
+
};
|
|
12082
|
+
};
|
|
12083
|
+
responses: {
|
|
12084
|
+
/** @description The session started. */
|
|
12085
|
+
200: {
|
|
12086
|
+
headers: {
|
|
12087
|
+
[name: string]: unknown;
|
|
12088
|
+
};
|
|
12089
|
+
content: {
|
|
12090
|
+
"application/json": components["schemas"]["StartAiVerificationSessionResponse"];
|
|
12091
|
+
};
|
|
12092
|
+
};
|
|
12093
|
+
404: components["responses"]["ProblemResponse"];
|
|
12094
|
+
/** @description The lookup is still `resolving`, it `failed`, or the session has finished. */
|
|
12095
|
+
409: {
|
|
12096
|
+
headers: {
|
|
12097
|
+
[name: string]: unknown;
|
|
12098
|
+
};
|
|
12099
|
+
content: {
|
|
12100
|
+
"application/problem+json": components["schemas"]["Problem"];
|
|
12101
|
+
};
|
|
12102
|
+
};
|
|
12103
|
+
default: components["responses"]["ProblemResponse"];
|
|
12104
|
+
};
|
|
12105
|
+
};
|
|
12106
|
+
ReceiveAiVerificationProofs: {
|
|
12107
|
+
parameters: {
|
|
12108
|
+
query?: never;
|
|
12109
|
+
header: {
|
|
12110
|
+
/** @description ID of the AI SDK session that Popcorn is reporting. */
|
|
12111
|
+
"x-reclaim-session-id": string;
|
|
12112
|
+
};
|
|
12113
|
+
path: {
|
|
12114
|
+
sessionId: components["schemas"]["SessionID"];
|
|
12115
|
+
};
|
|
12116
|
+
cookie?: never;
|
|
12117
|
+
};
|
|
12118
|
+
requestBody: {
|
|
12119
|
+
content: {
|
|
12120
|
+
"application/json": {
|
|
12121
|
+
[key: string]: unknown;
|
|
12122
|
+
}[];
|
|
12123
|
+
};
|
|
12124
|
+
};
|
|
12125
|
+
responses: {
|
|
12126
|
+
/** @description Builder accepted the proofs. */
|
|
12127
|
+
200: {
|
|
12128
|
+
headers: {
|
|
12129
|
+
[name: string]: unknown;
|
|
12130
|
+
};
|
|
12131
|
+
content: {
|
|
12132
|
+
"application/json": components["schemas"]["AiVerificationCallbackAck"];
|
|
12133
|
+
};
|
|
12134
|
+
};
|
|
12135
|
+
400: components["responses"]["ProblemResponse"];
|
|
12136
|
+
404: components["responses"]["ProblemResponse"];
|
|
12137
|
+
default: components["responses"]["ProblemResponse"];
|
|
12138
|
+
};
|
|
12139
|
+
};
|
|
12140
|
+
ReceiveAiVerificationCancel: {
|
|
12141
|
+
parameters: {
|
|
12142
|
+
query?: never;
|
|
12143
|
+
header: {
|
|
12144
|
+
/** @description ID of the AI SDK session that Popcorn is reporting. */
|
|
12145
|
+
"x-reclaim-session-id": string;
|
|
12146
|
+
};
|
|
12147
|
+
path: {
|
|
12148
|
+
sessionId: components["schemas"]["SessionID"];
|
|
12149
|
+
};
|
|
12150
|
+
cookie?: never;
|
|
12151
|
+
};
|
|
12152
|
+
requestBody: {
|
|
12153
|
+
content: {
|
|
12154
|
+
"application/json": {
|
|
12155
|
+
[key: string]: unknown;
|
|
12156
|
+
};
|
|
12157
|
+
};
|
|
12158
|
+
};
|
|
12159
|
+
responses: {
|
|
12160
|
+
/** @description Builder recorded the cancellation. */
|
|
12161
|
+
200: {
|
|
12162
|
+
headers: {
|
|
12163
|
+
[name: string]: unknown;
|
|
12164
|
+
};
|
|
12165
|
+
content: {
|
|
12166
|
+
"application/json": components["schemas"]["AiVerificationCallbackAck"];
|
|
12167
|
+
};
|
|
12168
|
+
};
|
|
12169
|
+
404: components["responses"]["ProblemResponse"];
|
|
12170
|
+
default: components["responses"]["ProblemResponse"];
|
|
12171
|
+
};
|
|
12172
|
+
};
|
|
11732
12173
|
GetVerificationSession: {
|
|
11733
12174
|
parameters: {
|
|
11734
12175
|
query?: never;
|
|
@@ -12178,7 +12619,7 @@ export interface operations {
|
|
|
12178
12619
|
};
|
|
12179
12620
|
};
|
|
12180
12621
|
responses: {
|
|
12181
|
-
/** @description Attestor authorization minted. */
|
|
12622
|
+
/** @description Attestor authorization minted, or an empty object if the deployment doesn't use attestor authentication. */
|
|
12182
12623
|
200: {
|
|
12183
12624
|
headers: {
|
|
12184
12625
|
[name: string]: unknown;
|