@onkernel/sdk 0.125.0 → 0.127.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/package.json +1 -1
  3. package/resources/browser-pools.d.mts +15 -5
  4. package/resources/browser-pools.d.mts.map +1 -1
  5. package/resources/browser-pools.d.ts +15 -5
  6. package/resources/browser-pools.d.ts.map +1 -1
  7. package/resources/browsers/browsers.d.mts +6 -4
  8. package/resources/browsers/browsers.d.mts.map +1 -1
  9. package/resources/browsers/browsers.d.ts +6 -4
  10. package/resources/browsers/browsers.d.ts.map +1 -1
  11. package/resources/browsers/browsers.js.map +1 -1
  12. package/resources/browsers/browsers.mjs.map +1 -1
  13. package/resources/browsers/telemetry.d.mts +14 -6
  14. package/resources/browsers/telemetry.d.mts.map +1 -1
  15. package/resources/browsers/telemetry.d.ts +14 -6
  16. package/resources/browsers/telemetry.d.ts.map +1 -1
  17. package/resources/vaults/index.d.mts +1 -1
  18. package/resources/vaults/index.d.mts.map +1 -1
  19. package/resources/vaults/index.d.ts +1 -1
  20. package/resources/vaults/index.d.ts.map +1 -1
  21. package/resources/vaults/index.js.map +1 -1
  22. package/resources/vaults/index.mjs.map +1 -1
  23. package/resources/vaults/items.d.mts +357 -197
  24. package/resources/vaults/items.d.mts.map +1 -1
  25. package/resources/vaults/items.d.ts +357 -197
  26. package/resources/vaults/items.d.ts.map +1 -1
  27. package/resources/vaults/items.js +20 -11
  28. package/resources/vaults/items.js.map +1 -1
  29. package/resources/vaults/items.mjs +20 -11
  30. package/resources/vaults/items.mjs.map +1 -1
  31. package/resources/vaults/vaults.d.mts +2 -2
  32. package/resources/vaults/vaults.d.mts.map +1 -1
  33. package/resources/vaults/vaults.d.ts +2 -2
  34. package/resources/vaults/vaults.d.ts.map +1 -1
  35. package/resources/vaults/vaults.js.map +1 -1
  36. package/resources/vaults/vaults.mjs.map +1 -1
  37. package/src/resources/browser-pools.ts +16 -5
  38. package/src/resources/browsers/browsers.ts +6 -4
  39. package/src/resources/browsers/telemetry.ts +16 -3
  40. package/src/resources/vaults/index.ts +1 -0
  41. package/src/resources/vaults/items.ts +371 -198
  42. package/src/resources/vaults/vaults.ts +2 -0
  43. package/src/version.ts +1 -1
  44. package/version.d.mts +1 -1
  45. package/version.d.ts +1 -1
  46. package/version.js +1 -1
  47. package/version.mjs +1 -1
@@ -42,8 +42,10 @@ export class Items extends APIResource {
42
42
  * request, subject to atomic provider approval checks; omitted optional fields
43
43
  * remain unchanged and explicit empty lists clear them. Wallet/provider binding
44
44
  * and unsupported fields cannot change after authorization starts. An uncertain
45
- * update enters recovery_required and must not be retried. Checkout cards may be
46
- * edited between authorizations.
45
+ * update enters recovery_required; delete the card and create a new one rather
46
+ * than retrying the update. Checkout cards may be edited between authorizations. A
47
+ * Link card authorized with browser_id and page_url cannot be changed; delete it
48
+ * and create a new card with the updated details.
47
49
  *
48
50
  * @example
49
51
  * ```ts
@@ -89,11 +91,12 @@ export class Items extends APIResource {
89
91
  * Unresolved payment operations normally block deletion, including operations on
90
92
  * child cards of a wallet. Deleting a connected Kernel wallet first blocks new
91
93
  * payments on it, then removes its enrolled card. If that fails, the wallet is
92
- * kept and keeps refusing payments; retry the deletion. An AgentCard card in
93
- * recovery_required whose checkout create response returned no authorization ID
94
- * may be explicitly abandoned by deleting that card directly; deleting its wallet
95
- * or vault remains blocked. Deleting or recreating an item is not proof that a
96
- * payment did not occur. Deleting a managed auth credential item leaves the
94
+ * kept and keeps refusing payments; retry the deletion. A Link or Kernel card in
95
+ * recovery_required for issuance, or an AgentCard card in recovery_required whose
96
+ * checkout create response returned no authorization ID, may be explicitly
97
+ * abandoned by deleting that card directly; deleting its wallet or vault remains
98
+ * blocked until the card is deleted. Deleting or recreating an item is not proof
99
+ * that a payment did not occur. Deleting a managed auth credential item leaves the
97
100
  * connection and its saved credential unchanged.
98
101
  *
99
102
  * @example
@@ -132,16 +135,20 @@ export class Items extends APIResource {
132
135
  * `available_operations`, following its natural-language description. Availability
133
136
  * is rechecked at execution time; unavailable operations return 409. Authorization
134
137
  * and preparation may call an external provider and return updated state. Link
135
- * cards advertise authorize without checkout context. Eligible unused AgentCard
136
- * cards advertise prepare_checkout, which requires checkout context and obtains
137
- * device approval before native Square Pay. Keep the returned approval page open,
138
- * poll until ready_to_submit, then submit before preparation.expires_at. Unused
138
+ * cards advertise authorize; pass browser_id and page_url from the final checkout
139
+ * page so Kernel can inspect the checkout. Eligible unused AgentCard cards
140
+ * advertise prepare_checkout, which requires checkout context and obtains device
141
+ * approval before native Square Pay. Keep the returned approval page open, poll
142
+ * until ready_to_submit, then submit before preparation.expires_at. Unused
139
143
  * preparations expire automatically and cannot be reused. If spend-request
140
144
  * creation is rejected with a non-retryable provider error, the card item is
141
145
  * deleted and the provider's error code and message are returned. Rate limits
142
146
  * return HTTP 429 and retain the card item; stop, back off, and retry the same
143
147
  * authorize operation.
144
148
  *
149
+ * Ready Kernel cards advertise fill. Fill delivers card details for a few minutes;
150
+ * submit checkout promptly after filling. A repeated fill is safe.
151
+ *
145
152
  * Fill returns a value-free execution result. Validation failures before writing
146
153
  * return 400 (invalid request or targets), 403 (access or destination denied), 404
147
154
  * (resource not found), or 409 (item or browser not ready). Once writing starts,
@@ -155,6 +162,8 @@ export class Items extends APIResource {
155
162
  * await client.vaults.items.performOperation('key', {
156
163
  * id_or_name: 'id_or_name',
157
164
  * type: 'authorize',
165
+ * browser_id: 'browser-session-id',
166
+ * page_url: 'https://store.example.com/checkout',
158
167
  * });
159
168
  * ```
160
169
  */
@@ -309,16 +318,39 @@ export type AgentcardPreparedProcessor =
309
318
 
310
319
  /**
311
320
  * Authorize a Link or Kernel card using its existing purchase specification. Use
312
- * only after explicit user approval and when the item advertises authorize. Do not
313
- * automatically retry provider failures or indeterminate outcomes. Checkout
314
- * context is not accepted.
321
+ * only after explicit user approval and when the item advertises authorize; follow
322
+ * the advertised operation's description. For a Link card, pass browser_id and
323
+ * page_url together while the browser is on the final checkout page: Kernel
324
+ * inspects that checkout, chooses how the credential is delivered, and limits fill
325
+ * to that checkout's origin in any browser with this vault attached. Omitting both
326
+ * issues a virtual card that fills any page on the merchant origin. Once approval
327
+ * has been requested, browser_id and page_url are ignored and authorize only
328
+ * re-checks the request. Browser and checkout inspection errors occur before any
329
+ * provider request and can be retried once the browser is on the checkout page.
330
+ * Kernel cards do not accept browser_id or page_url.
315
331
  */
316
332
  export interface AuthorizeVaultItemOperationRequest {
317
333
  type: 'authorize';
334
+
335
+ /**
336
+ * Browser session ID, not a reusable browser name. The browser must have this
337
+ * vault attached.
338
+ */
339
+ browser_id?: string;
340
+
341
+ /**
342
+ * Exact current top-level URL of the final checkout page open in browser_id.
343
+ */
344
+ page_url?: string;
318
345
  }
319
346
 
320
347
  /**
321
- * Live payment card. Test-mode card creation is not supported.
348
+ * Live Link card request. Test-mode card creation is not supported. The spec can
349
+ * be changed with PATCH until the card is authorized at a checkout. Authorize it
350
+ * with the browser at final checkout: Kernel inspects the checkout through WebMCP
351
+ * and internally chooses a merchant-bound Link Pay Token when supported or a
352
+ * virtual card otherwise. Callers never receive or choose how the credential is
353
+ * delivered.
322
354
  */
323
355
  export type CardVaultItemSpec =
324
356
  | CardVaultItemSpec.LinkCardVaultItemSpec
@@ -327,12 +359,18 @@ export type CardVaultItemSpec =
327
359
 
328
360
  export namespace CardVaultItemSpec {
329
361
  /**
330
- * Live payment card. Test-mode card creation is not supported.
362
+ * Live Link card request. Test-mode card creation is not supported. The spec can
363
+ * be changed with PATCH until the card is authorized at a checkout. Authorize it
364
+ * with the browser at final checkout: Kernel inspects the checkout through WebMCP
365
+ * and internally chooses a merchant-bound Link Pay Token when supported or a
366
+ * virtual card otherwise. Callers never receive or choose how the credential is
367
+ * delivered.
331
368
  */
332
369
  export interface LinkCardVaultItemSpec {
333
370
  /**
334
- * Integer amount in minor currency units. Link permits at most 50000 per spend
335
- * request.
371
+ * Integer amount in minor currency units. Link Pay Token execution permits at most
372
+ * 500000; virtual-card execution permits at most 50000. Authorization rejects a
373
+ * larger amount when the checkout requires a virtual card.
336
374
  */
337
375
  amount: number;
338
376
 
@@ -354,12 +392,10 @@ export namespace CardVaultItemSpec {
354
392
  provider: 'link';
355
393
 
356
394
  /**
357
- * Wallet item key used to mint this card.
395
+ * Connected Link wallet item key.
358
396
  */
359
397
  wallet: string;
360
398
 
361
- expires_at?: number;
362
-
363
399
  line_items?: Array<LinkCardVaultItemSpec.LineItem>;
364
400
 
365
401
  metadata?: { [key: string]: string };
@@ -481,11 +517,12 @@ export namespace CardVaultItemState {
481
517
  provider: 'link';
482
518
 
483
519
  /**
484
- * recovery_required means an original provider operation has an unresolved
485
- * outcome. Do not retry, delete, or replace it. Known references may be observed
486
- * safely, but unknown creation without an ID and uncertain card-material retrieval
487
- * require manual reconciliation with the provider or support. There is no reset or
488
- * caller-asserted reconciliation operation.
520
+ * recovery_required means an original provider operation has an unresolved outcome
521
+ * and the card cannot be used. Reads keep observing a known provider request and
522
+ * may clear the recovery. To continue, delete this card and create a new one;
523
+ * deleting cancels the original request when its ID is known and keeps the
524
+ * recovery evidence. The user may see an approval request for the original card
525
+ * and should approve only the new one.
489
526
  */
490
527
  status:
491
528
  | 'requested'
@@ -585,16 +622,16 @@ export namespace CardVaultItemState {
585
622
  /**
586
623
  * Return the credential item with its collection action. Supported for ready and
587
624
  * pending_collection credential items. Always render the same form from every
588
- * form-supported field; totp fields have no form input and are omitted. No
589
- * caller-selected field subsets or form overrides are accepted. Reuse an active
590
- * Kernel-hosted session or renew an expired session atomically. Customer-hosted
591
- * forms use their own backend and ordinary item GET/PATCH. Opening the form does
592
- * not clear values or change readiness or item version. To observe edits on a
593
- * ready item, record its version and poll GET without wait until the version
594
- * changes, then reconcile the returned state. Version changes may also come from
595
- * PATCH; they do not identify a particular form submission. Customer-hosted apps
596
- * use their own submission callback, including for unchanged forms. The wait
597
- * parameter waits for readiness, not edits.
625
+ * form-supported field; totp and passkey fields have no form input and are
626
+ * omitted. No caller-selected field subsets or form overrides are accepted. Reuse
627
+ * an active Kernel-hosted session or renew an expired session atomically.
628
+ * Customer-hosted forms use their own backend and ordinary item GET/PATCH. Opening
629
+ * the form does not clear values or change readiness or item version. To observe
630
+ * edits on a ready item, record its version and poll GET without wait until the
631
+ * version changes, then reconcile the returned state. Version changes may also
632
+ * come from PATCH; they do not identify a particular form submission.
633
+ * Customer-hosted apps use their own submission callback, including for unchanged
634
+ * forms. The wait parameter waits for readiness, not edits.
598
635
  */
599
636
  export interface CollectVaultItemOperationRequest {
600
637
  type: 'collect';
@@ -712,30 +749,31 @@ export interface CredentialAccountVaultItemRequest {
712
749
 
713
750
  /**
714
751
  * One schema-derived form for the item, available in ready or pending_collection
715
- * state. Render every form-supported field as editable; omit totp fields and
716
- * preserve their stored seeds. Prefill non-sensitive values, and allow existing
717
- * sensitive values to be preserved or replaced without ever revealing them. No
718
- * field subsets or per-request form configuration exist. Validate required fields
719
- * against the resulting values, including preserved secrets. Submit changed values
720
- * only, using the version used to render the form. Scoped hosted submission
721
- * rejects totp edits; seed writes require the ordinary authenticated item API.
722
- * Customer forms likewise omit totp from their payloads. Save edits atomically. A
723
- * successful hosted submission increments the version, marks ready, and consumes
724
- * the session; an empty edit may complete collection while preserving values. A
725
- * customer form uses PATCH for changed values and does not send an empty PATCH
726
- * when nothing changed. Kernel-hosted bearer sessions require no Kernel account
727
- * and are bound to the item version. Expired, superseded, consumed, or
728
- * deleted-item sessions cannot submit. Authenticated item GET renews expired
729
- * active sessions for ready or pending items; pending items always receive an
730
- * action. A ready item with no active session omits the action until collect is
731
- * invoked. Concurrent renewals return the same link. Renewal changes neither
732
- * values nor item version. An expired link cannot renew itself. The hosted form
733
- * handles its collection protocol; callers only open the returned URL and do not
734
- * extract or submit its token through the public API. For customer-hosted forms,
735
- * use @onkernel/vault-react and an authenticated customer backend calling the
736
- * ordinary item GET/PATCH API. Kernel does not store customer collection URLs or
737
- * authenticate the customer's end users. Treat URLs and submitted values as
738
- * secrets and exclude them from logs, traces, and errors.
752
+ * state. Render every form-supported field as editable; omit totp and passkey
753
+ * fields and preserve their stored values. Prefill non-sensitive values, and allow
754
+ * existing sensitive values to be preserved or replaced without ever revealing
755
+ * them. No field subsets or per-request form configuration exist. Validate
756
+ * required fields against the resulting values, including preserved secrets.
757
+ * Submit changed values only, using the version used to render the form. Scoped
758
+ * hosted submission rejects totp and passkey edits; those writes require the
759
+ * ordinary authenticated item API. Customer forms likewise omit them from their
760
+ * payloads. Save edits atomically. A successful hosted submission increments the
761
+ * version, marks ready, and consumes the session; an empty edit may complete
762
+ * collection while preserving values. A customer form uses PATCH for changed
763
+ * values and does not send an empty PATCH when nothing changed. Kernel-hosted
764
+ * bearer sessions require no Kernel account and are bound to the item version.
765
+ * Expired, superseded, consumed, or deleted-item sessions cannot submit.
766
+ * Authenticated item GET renews expired active sessions for ready or pending
767
+ * items; pending items always receive an action. A ready item with no active
768
+ * session omits the action until collect is invoked. Concurrent renewals return
769
+ * the same link. Renewal changes neither values nor item version. An expired link
770
+ * cannot renew itself. The hosted form handles its collection protocol; callers
771
+ * only open the returned URL and do not extract or submit its token through the
772
+ * public API. For customer-hosted forms, use @onkernel/vault-react and an
773
+ * authenticated customer backend calling the ordinary item GET/PATCH API. Kernel
774
+ * does not store customer collection URLs or authenticate the customer's end
775
+ * users. Treat URLs and submitted values as secrets and exclude them from logs,
776
+ * traces, and errors.
739
777
  */
740
778
  export interface CredentialCollectionAction {
741
779
  /**
@@ -771,14 +809,19 @@ export interface CredentialVaultFieldDefinition {
771
809
  sensitive: boolean;
772
810
 
773
811
  /**
774
- * Text, email, and password have form inputs; totp does not and is omitted from
775
- * both Kernel-hosted and customer React forms. Password and totp must be
776
- * sensitive. A totp value is an RFC 4648 Base32 generator seed (case-insensitive,
777
- * optional trailing padding), not an otpauth URI or current code. Reject invalid
778
- * or empty decoded seeds. Browser fill generates an RFC 6238 code at execution
779
- * time using HMAC-SHA1, 6 digits, and a 30-second period. Preserve leading zeros;
780
- * never fill the seed. Custom algorithms, digits, periods, and form enrollment are
781
- * unsupported.
812
+ * Text, email, and password have form inputs; totp and passkey do not and are
813
+ * omitted from both Kernel-hosted and customer React forms. Password, totp, and
814
+ * passkey must be sensitive. A totp value is an RFC 4648 Base32 generator seed
815
+ * (case-insensitive, optional trailing padding), not an otpauth URI or current
816
+ * code. Reject invalid or empty decoded seeds. Browser fill generates an RFC 6238
817
+ * code at execution time using HMAC-SHA1, 6 digits, and a 30-second period.
818
+ * Preserve leading zeros; never fill the seed. Custom algorithms, digits, periods,
819
+ * and form enrollment are unsupported. A passkey value is a JSON-encoded FIDO
820
+ * Credential Exchange Format passkey object with unpadded base64url
821
+ * `credentialId`, `userHandle` (at most 64 bytes), and `key` (a PKCS#8 ECDSA P-256
822
+ * private key), a lowercase `rpId` domain, and optional `username` and
823
+ * `userDisplayName`. Other CXF members are ignored. Passkeys are never filled into
824
+ * pages.
782
825
  */
783
826
  type: CredentialVaultFieldType;
784
827
 
@@ -791,6 +834,53 @@ export interface CredentialVaultFieldDefinition {
791
834
  label?: string;
792
835
  }
793
836
 
837
+ /**
838
+ * A field definition without a value. Field updates add fields with this shape and
839
+ * set their values in `fields`.
840
+ */
841
+ export interface CredentialVaultFieldDefinitionInput {
842
+ /**
843
+ * Unique stable field name used to key values, updates, and browser fills.
844
+ */
845
+ name: string;
846
+
847
+ /**
848
+ * Text, email, and password have form inputs; totp and passkey do not and are
849
+ * omitted from both Kernel-hosted and customer React forms. Password, totp, and
850
+ * passkey must be sensitive. A totp value is an RFC 4648 Base32 generator seed
851
+ * (case-insensitive, optional trailing padding), not an otpauth URI or current
852
+ * code. Reject invalid or empty decoded seeds. Browser fill generates an RFC 6238
853
+ * code at execution time using HMAC-SHA1, 6 digits, and a 30-second period.
854
+ * Preserve leading zeros; never fill the seed. Custom algorithms, digits, periods,
855
+ * and form enrollment are unsupported. A passkey value is a JSON-encoded FIDO
856
+ * Credential Exchange Format passkey object with unpadded base64url
857
+ * `credentialId`, `userHandle` (at most 64 bytes), and `key` (a PKCS#8 ECDSA P-256
858
+ * private key), a lowercase `rpId` domain, and optional `username` and
859
+ * `userDisplayName`. Other CXF members are ignored. Passkeys are never filled into
860
+ * pages.
861
+ */
862
+ type: CredentialVaultFieldType;
863
+
864
+ /**
865
+ * Optional human-readable display label. It is returned as non-secret metadata and
866
+ * never affects value keys, updates, or browser fills. Use single-line, trimmed
867
+ * display text without control or formatting characters. The server enforces a
868
+ * 128-byte UTF-8 limit.
869
+ */
870
+ label?: string;
871
+
872
+ required?: boolean;
873
+
874
+ /**
875
+ * Set false explicitly for ordinary usernames, email addresses, and other
876
+ * non-secret identifiers. Reserve true for secrets such as passwords, API tokens,
877
+ * and TOTP seeds. Password, totp, and passkey fields must be true. Omission
878
+ * defaults to true for safety; do not rely on that default for every field. False
879
+ * permits API reads and form prefilling.
880
+ */
881
+ sensitive?: boolean;
882
+ }
883
+
794
884
  export interface CredentialVaultFieldInput {
795
885
  /**
796
886
  * Unique stable field name used to key values, updates, and browser fills.
@@ -798,14 +888,19 @@ export interface CredentialVaultFieldInput {
798
888
  name: string;
799
889
 
800
890
  /**
801
- * Text, email, and password have form inputs; totp does not and is omitted from
802
- * both Kernel-hosted and customer React forms. Password and totp must be
803
- * sensitive. A totp value is an RFC 4648 Base32 generator seed (case-insensitive,
804
- * optional trailing padding), not an otpauth URI or current code. Reject invalid
805
- * or empty decoded seeds. Browser fill generates an RFC 6238 code at execution
806
- * time using HMAC-SHA1, 6 digits, and a 30-second period. Preserve leading zeros;
807
- * never fill the seed. Custom algorithms, digits, periods, and form enrollment are
808
- * unsupported.
891
+ * Text, email, and password have form inputs; totp and passkey do not and are
892
+ * omitted from both Kernel-hosted and customer React forms. Password, totp, and
893
+ * passkey must be sensitive. A totp value is an RFC 4648 Base32 generator seed
894
+ * (case-insensitive, optional trailing padding), not an otpauth URI or current
895
+ * code. Reject invalid or empty decoded seeds. Browser fill generates an RFC 6238
896
+ * code at execution time using HMAC-SHA1, 6 digits, and a 30-second period.
897
+ * Preserve leading zeros; never fill the seed. Custom algorithms, digits, periods,
898
+ * and form enrollment are unsupported. A passkey value is a JSON-encoded FIDO
899
+ * Credential Exchange Format passkey object with unpadded base64url
900
+ * `credentialId`, `userHandle` (at most 64 bytes), and `key` (a PKCS#8 ECDSA P-256
901
+ * private key), a lowercase `rpId` domain, and optional `username` and
902
+ * `userDisplayName`. Other CXF members are ignored. Passkeys are never filled into
903
+ * pages.
809
904
  */
810
905
  type: CredentialVaultFieldType;
811
906
 
@@ -838,9 +933,9 @@ export interface CredentialVaultFieldInput {
838
933
  /**
839
934
  * Set false explicitly for ordinary usernames, email addresses, and other
840
935
  * non-secret identifiers. Reserve true for secrets such as passwords, API tokens,
841
- * and TOTP seeds. Password and totp fields must be true. Omission defaults to true
842
- * for safety; do not rely on that default for every field. False permits API reads
843
- * and form prefilling.
936
+ * and TOTP seeds. Password, totp, and passkey fields must be true. Omission
937
+ * defaults to true for safety; do not rely on that default for every field. False
938
+ * permits API reads and form prefilling.
844
939
  */
845
940
  sensitive?: boolean;
846
941
 
@@ -866,16 +961,21 @@ export interface CredentialVaultFieldState {
866
961
  }
867
962
 
868
963
  /**
869
- * Text, email, and password have form inputs; totp does not and is omitted from
870
- * both Kernel-hosted and customer React forms. Password and totp must be
871
- * sensitive. A totp value is an RFC 4648 Base32 generator seed (case-insensitive,
872
- * optional trailing padding), not an otpauth URI or current code. Reject invalid
873
- * or empty decoded seeds. Browser fill generates an RFC 6238 code at execution
874
- * time using HMAC-SHA1, 6 digits, and a 30-second period. Preserve leading zeros;
875
- * never fill the seed. Custom algorithms, digits, periods, and form enrollment are
876
- * unsupported.
964
+ * Text, email, and password have form inputs; totp and passkey do not and are
965
+ * omitted from both Kernel-hosted and customer React forms. Password, totp, and
966
+ * passkey must be sensitive. A totp value is an RFC 4648 Base32 generator seed
967
+ * (case-insensitive, optional trailing padding), not an otpauth URI or current
968
+ * code. Reject invalid or empty decoded seeds. Browser fill generates an RFC 6238
969
+ * code at execution time using HMAC-SHA1, 6 digits, and a 30-second period.
970
+ * Preserve leading zeros; never fill the seed. Custom algorithms, digits, periods,
971
+ * and form enrollment are unsupported. A passkey value is a JSON-encoded FIDO
972
+ * Credential Exchange Format passkey object with unpadded base64url
973
+ * `credentialId`, `userHandle` (at most 64 bytes), and `key` (a PKCS#8 ECDSA P-256
974
+ * private key), a lowercase `rpId` domain, and optional `username` and
975
+ * `userDisplayName`. Other CXF members are ignored. Passkeys are never filled into
976
+ * pages.
877
977
  */
878
- export type CredentialVaultFieldType = 'text' | 'email' | 'password' | 'totp';
978
+ export type CredentialVaultFieldType = 'text' | 'email' | 'password' | 'totp' | 'passkey';
879
979
 
880
980
  /**
881
981
  * Set exactly one of value or encrypted_value. Use value unless the update comes
@@ -904,8 +1004,9 @@ export interface CredentialVaultFieldUpdate {
904
1004
  * immediately clear the stored value. Clearing a required form-supported field
905
1005
  * reopens collection; clearing an optional field does not prevent readiness.
906
1006
  * Values must satisfy the declared field type. For totp, value is the generator
907
- * seed, never a current code. Clearing a required totp field returns 400 because
908
- * it cannot be collected in a form.
1007
+ * seed, never a current code. For passkey, value is the JSON-encoded CXF passkey
1008
+ * object. Clearing a required totp or passkey field returns 400 because it cannot
1009
+ * be collected in a form.
909
1010
  */
910
1011
  value?: string | null;
911
1012
  }
@@ -952,30 +1053,31 @@ export interface CredentialVaultItem {
952
1053
 
953
1054
  /**
954
1055
  * One schema-derived form for the item, available in ready or pending_collection
955
- * state. Render every form-supported field as editable; omit totp fields and
956
- * preserve their stored seeds. Prefill non-sensitive values, and allow existing
957
- * sensitive values to be preserved or replaced without ever revealing them. No
958
- * field subsets or per-request form configuration exist. Validate required fields
959
- * against the resulting values, including preserved secrets. Submit changed values
960
- * only, using the version used to render the form. Scoped hosted submission
961
- * rejects totp edits; seed writes require the ordinary authenticated item API.
962
- * Customer forms likewise omit totp from their payloads. Save edits atomically. A
963
- * successful hosted submission increments the version, marks ready, and consumes
964
- * the session; an empty edit may complete collection while preserving values. A
965
- * customer form uses PATCH for changed values and does not send an empty PATCH
966
- * when nothing changed. Kernel-hosted bearer sessions require no Kernel account
967
- * and are bound to the item version. Expired, superseded, consumed, or
968
- * deleted-item sessions cannot submit. Authenticated item GET renews expired
969
- * active sessions for ready or pending items; pending items always receive an
970
- * action. A ready item with no active session omits the action until collect is
971
- * invoked. Concurrent renewals return the same link. Renewal changes neither
972
- * values nor item version. An expired link cannot renew itself. The hosted form
973
- * handles its collection protocol; callers only open the returned URL and do not
974
- * extract or submit its token through the public API. For customer-hosted forms,
975
- * use @onkernel/vault-react and an authenticated customer backend calling the
976
- * ordinary item GET/PATCH API. Kernel does not store customer collection URLs or
977
- * authenticate the customer's end users. Treat URLs and submitted values as
978
- * secrets and exclude them from logs, traces, and errors.
1056
+ * state. Render every form-supported field as editable; omit totp and passkey
1057
+ * fields and preserve their stored values. Prefill non-sensitive values, and allow
1058
+ * existing sensitive values to be preserved or replaced without ever revealing
1059
+ * them. No field subsets or per-request form configuration exist. Validate
1060
+ * required fields against the resulting values, including preserved secrets.
1061
+ * Submit changed values only, using the version used to render the form. Scoped
1062
+ * hosted submission rejects totp and passkey edits; those writes require the
1063
+ * ordinary authenticated item API. Customer forms likewise omit them from their
1064
+ * payloads. Save edits atomically. A successful hosted submission increments the
1065
+ * version, marks ready, and consumes the session; an empty edit may complete
1066
+ * collection while preserving values. A customer form uses PATCH for changed
1067
+ * values and does not send an empty PATCH when nothing changed. Kernel-hosted
1068
+ * bearer sessions require no Kernel account and are bound to the item version.
1069
+ * Expired, superseded, consumed, or deleted-item sessions cannot submit.
1070
+ * Authenticated item GET renews expired active sessions for ready or pending
1071
+ * items; pending items always receive an action. A ready item with no active
1072
+ * session omits the action until collect is invoked. Concurrent renewals return
1073
+ * the same link. Renewal changes neither values nor item version. An expired link
1074
+ * cannot renew itself. The hosted form handles its collection protocol; callers
1075
+ * only open the returned URL and do not extract or submit its token through the
1076
+ * public API. For customer-hosted forms, use @onkernel/vault-react and an
1077
+ * authenticated customer backend calling the ordinary item GET/PATCH API. Kernel
1078
+ * does not store customer collection URLs or authenticate the customer's end
1079
+ * users. Treat URLs and submitted values as secrets and exclude them from logs,
1080
+ * traces, and errors.
979
1081
  */
980
1082
  action?: CredentialCollectionAction | CredentialVaultItem.OnePasswordAccessApprovalAction;
981
1083
  }
@@ -1081,6 +1183,14 @@ export type CredentialVaultItemSpecInput =
1081
1183
  | ManagedAuthCredentialVaultItemSpecInput;
1082
1184
 
1083
1185
  export interface CredentialVaultItemSpecUpdate {
1186
+ /**
1187
+ * Field definitions to append, with the same defaults as creation. Set their
1188
+ * values in `fields` in the same update. Names must be unique after removals; at
1189
+ * most 32 fields may result. A required totp or passkey field needs a value in
1190
+ * `fields`.
1191
+ */
1192
+ add_fields?: Array<CredentialVaultFieldDefinitionInput>;
1193
+
1084
1194
  /**
1085
1195
  * Recognizable site or service name used as the form title, without suffixes such
1086
1196
  * as sign-in credentials. An empty string clears it. Display text only, not an
@@ -1089,6 +1199,12 @@ export interface CredentialVaultItemSpecUpdate {
1089
1199
  description?: string;
1090
1200
 
1091
1201
  fields?: { [key: string]: CredentialVaultFieldUpdate };
1202
+
1203
+ /**
1204
+ * Names of fields to delete with their values. Unknown names return 400. At least
1205
+ * one field must remain.
1206
+ */
1207
+ remove_fields?: Array<string>;
1092
1208
  }
1093
1209
 
1094
1210
  export type CredentialVaultItemState =
@@ -1097,15 +1213,18 @@ export type CredentialVaultItemState =
1097
1213
  | ManagedAuthCredentialVaultItemState;
1098
1214
 
1099
1215
  /**
1100
- * Atomically update description and selected values. Omitted properties are
1101
- * preserved. Field names, types, required flags, and sensitivity cannot change.
1102
- * Unknown field names return 400; stale versions or mismatched item types return
1103
- * 409 without changing the item. A successful update increments version and
1104
- * invalidates outstanding Kernel-hosted collection sessions. If required values
1105
- * remain missing, return pending_collection and a fresh collection action.
1106
- * Otherwise return ready without an action; collect can open the form again
1107
- * without clearing values. Customer URLs have no Kernel-managed expiry. 1Password
1108
- * and managed auth credentials return 409.
1216
+ * Atomically update description, field definitions, and selected values. Omitted
1217
+ * properties are preserved. `remove_fields` deletes definitions and their values,
1218
+ * then `add_fields` appends definitions, then `fields` sets values, including for
1219
+ * added fields. An existing field's definition cannot be edited in place; to
1220
+ * change it, remove the field and add it again, in the same update or a later one.
1221
+ * The old value is deleted with it. Unknown field names return 400; stale versions
1222
+ * or mismatched item types return 409 without changing the item. A successful
1223
+ * update increments version and invalidates outstanding Kernel-hosted collection
1224
+ * sessions. If required values remain missing, return pending_collection and a
1225
+ * fresh collection action. Otherwise return ready without an action; collect can
1226
+ * open the form again without clearing values. Customer URLs have no
1227
+ * Kernel-managed expiry. 1Password and managed auth credentials return 409.
1109
1228
  */
1110
1229
  export interface CredentialVaultItemUpdateRequest {
1111
1230
  spec: CredentialVaultItemSpecUpdate;
@@ -1127,32 +1246,18 @@ export interface CredentialVaultItemUpdateRequest {
1127
1246
  }
1128
1247
 
1129
1248
  /**
1130
- * Fill selected fields from one ready credential or ready, unexpired Link or
1131
- * Kernel card into a browser linked to its vault. Only invoke when the item
1132
- * advertises `fill`. Browser and vault must belong to the same project. Kernel
1133
- * checks access and allowed destinations before filling; providing a page URL does
1134
- * not authorize a destination.
1249
+ * Use a vault item in a browser session, for example to fill a login or payment
1250
+ * form. Only invoke when the item advertises `fill`; the advertised operation
1251
+ * describes the inputs that item needs. Requires `browser_id` and usually
1252
+ * `page_url`; some items also require `fields`. Browser and vault must belong to
1253
+ * the same project. Kernel checks access and allowed destinations before filling;
1254
+ * providing a page URL does not authorize a destination.
1135
1255
  *
1136
- * Find exactly one open page matching `page_url`. Credential items may omit
1137
- * `page_url` to require exactly one open page; cards require an HTTPS page URL.
1138
- * Credentials have no destination allowlist. TOTP fields generate a current code
1139
- * immediately before writing; their seeds never enter the browser. For each
1140
- * selector, search the main frame and all descendant frames for editable inputs or
1141
- * selects matched directly or contained within matching elements. Each selector
1142
- * must resolve to one unique editable element across all frames; zero or multiple
1143
- * candidates fail. Count each element once, even if multiple matching containers
1144
- * contain it. Validate all bindings before filling. Select elements match an
1145
- * option by its value, not its label. If the page navigates or a target disappears
1146
- * during filling, stop rather than selecting a different page or element.
1147
- *
1148
- * Fill in request order and stop on the first failure. This operation is not
1149
- * atomic: previously filled fields are not rolled back. Never submit the form or
1150
- * click buttons, though input/change events may trigger site behavior. Link and
1151
- * Kernel cards use fill for browser checkout and do not expose aliases or support
1152
- * egress substitution. Fill does not consume the item, so a failed or
1153
- * indeterminate fill is safe to retry; a retry rewrites the same fields. A retry
1154
- * right after an indeterminate fill may wait up to 15 seconds for the earlier
1155
- * attempt's browser lock to expire.
1256
+ * Fill never submits forms or clicks buttons, though input and change events may
1257
+ * trigger site behavior. It is not atomic: completed steps are not rolled back.
1258
+ * Fill does not consume the item, so a failed or indeterminate fill is safe to
1259
+ * retry. A retry right after an indeterminate fill may wait up to 15 seconds for
1260
+ * the earlier attempt's browser lock to expire.
1156
1261
  *
1157
1262
  * Secret values are never returned or included in operation logs, traces, audit
1158
1263
  * events, or error details. This does not prevent an agent with unrestricted
@@ -1165,19 +1270,25 @@ export interface FillVaultItemOperationRequest {
1165
1270
  */
1166
1271
  browser_id: string;
1167
1272
 
1273
+ type: 'fill';
1274
+
1168
1275
  /**
1169
- * Field bindings for this step. No two bindings may resolve to the same element.
1276
+ * Field bindings, when the item's advertised fill operation requires them. Each
1277
+ * selector is searched in the main frame and all descendant frames and must
1278
+ * resolve to exactly one editable input or select, matched directly or through a
1279
+ * containing element; zero or multiple candidates fail, and no two bindings may
1280
+ * resolve to the same element. Select elements match an option by value, not
1281
+ * label. All bindings are validated before any write, then filled in request
1282
+ * order, stopping at the first failure. If the page navigates or a target
1283
+ * disappears, fill stops rather than choosing another page or element.
1170
1284
  */
1171
- fields: Array<VaultFillField>;
1172
-
1173
- type: 'fill';
1285
+ fields?: Array<VaultFillField>;
1174
1286
 
1175
1287
  /**
1176
1288
  * Exact current top-level page URL, including path, query, and fragment. Must
1177
1289
  * match exactly one open page in the browser; zero or multiple matches fail. No
1178
- * prefix or glob matching. Required for cards, which must use HTTPS without
1179
- * embedded credentials. Optional for credentials, where omission requires exactly
1180
- * one open page.
1290
+ * prefix or glob matching. When an item allows omitting it, the browser must have
1291
+ * exactly one open page.
1181
1292
  */
1182
1293
  page_url?: string;
1183
1294
 
@@ -1189,15 +1300,16 @@ export interface FillVaultItemOperationRequest {
1189
1300
 
1190
1301
  export interface FillVaultItemOperationResult {
1191
1302
  /**
1192
- * Exactly one result per request binding, in request order. After the first failed
1193
- * or unknown field, all remaining fields are not_attempted.
1303
+ * One result per request binding, in request order; empty when the fill used no
1304
+ * bindings. After the first failed or unknown field, all remaining fields are
1305
+ * not_attempted.
1194
1306
  */
1195
1307
  fields: Array<VaultFillFieldResult>;
1196
1308
 
1197
1309
  /**
1198
- * Completed only when all fields were filled. Failed when execution stopped with
1199
- * known outcomes. Unknown when any field's outcome cannot be determined. None of
1200
- * these statuses confirms payment or merchant acceptance.
1310
+ * Completed when the fill finished. Failed when execution stopped with known
1311
+ * outcomes. Unknown when an outcome cannot be determined. Completed means values
1312
+ * were supplied to the page, not that the site accepted or submitted them.
1201
1313
  */
1202
1314
  status: 'completed' | 'failed' | 'unknown';
1203
1315
 
@@ -1205,13 +1317,13 @@ export interface FillVaultItemOperationResult {
1205
1317
  }
1206
1318
 
1207
1319
  /**
1208
- * A ready Kernel card retains its encrypted network token and one-time code for
1209
- * the fill operation until the item's expires_at. Fill and submit checkout before
1210
- * then. Visa purchases require a spend_approval action before the code is issued;
1211
- * Mastercard purchases need no hosted approval. masks.last4 is the enrolled card's
1212
- * last four digits; masks.token_last4 is the network token's last four digits
1213
- * shown to the merchant. Kernel cards do not expose aliases or support egress
1214
- * substitution. Kernel does not observe whether the merchant charged the card.
1320
+ * A ready Kernel card supports authorize, fill, then submit checkout. Card details
1321
+ * are delivered for a few minutes after fill; submit promptly. Repeated fill is
1322
+ * safe and never submits checkout. Visa purchases require a spend_approval action
1323
+ * before details are issued; Mastercard purchases need no hosted approval.
1324
+ * masks.last4 is the enrolled card's last four digits; masks.token_last4, when
1325
+ * present, is the token's last four digits shown to the merchant. Kernel does not
1326
+ * observe whether the merchant charged the card.
1215
1327
  */
1216
1328
  export interface KernelCardState {
1217
1329
  provider: 'kernel';
@@ -1225,10 +1337,12 @@ export interface KernelCardState {
1225
1337
  * fresh local verification link; this does not approve spending or replay any
1226
1338
  * provider request. Unclassified legacy recovery and uncertain intent creation
1227
1339
  * cannot restart. Kernel never approves again or issues another code for the item
1228
- * automatically, and the item cannot be deleted or replaced until the original
1229
- * attempt is reconciled with support. When status_reason says the provider refused
1230
- * retrieval before acceptance, no code was issued and a later read retries.
1231
- * declined means the card network refused to issue a code.
1340
+ * automatically. To continue, delete this card and create a new purchase; the
1341
+ * cardholder approves the new purchase separately. Recovery while reporting a
1342
+ * merchant transaction cannot be deleted and must be reconciled with support. When
1343
+ * status_reason says the provider refused retrieval before acceptance, no code was
1344
+ * issued and a later read retries. declined means the card network refused to
1345
+ * issue a code.
1232
1346
  */
1233
1347
  status:
1234
1348
  | 'requested'
@@ -1273,12 +1387,17 @@ export namespace KernelCardState {
1273
1387
  * Mastercard purchases need no cardholder approval. A Visa purchase returns a
1274
1388
  * spend_approval action: the cardholder approves it with a Visa passkey, and
1275
1389
  * Kernel registers a Visa intent for one transaction up to the amount before
1276
- * issuing the code. Card updates are not supported; delete and create a new item
1277
- * instead.
1390
+ * issuing the code. For supported cards whose network cannot be enrolled for
1391
+ * agentic tokens, authorize prepares checkout details without issuing a one-time
1392
+ * code. The card can be filled into one checkout before its expires_at, one hour
1393
+ * after authorization. Fill types those details on merchant_url's origin. The
1394
+ * amount, merchant_url and merchant_country are recorded but do not restrict
1395
+ * payment requests sent by the browser. Card updates are not supported; delete and
1396
+ * create a new item instead.
1278
1397
  */
1279
1398
  export interface KernelCardVaultItemSpec {
1280
1399
  /**
1281
- * Integer amount in minor currency units (at most 50000), bound to the one-time
1400
+ * Integer amount in minor currency units (at most 1000000), bound to the one-time
1282
1401
  * code.
1283
1402
  */
1284
1403
  amount: number;
@@ -1401,9 +1520,10 @@ export interface KernelWalletState {
1401
1520
  * number never reaches Kernel. The connected wallet's payment_methods expansion
1402
1521
  * lists the card; capabilities.single_use_card.eligible is false, with a
1403
1522
  * network_token*\* reason, until the card has a network token, and authorize
1404
- * returns 400 for such a card. Visa purchases require the cardholder to complete a
1405
- * spend_approval action before Kernel issues a one-time code; Mastercard purchases
1406
- * need no hosted approval.
1523
+ * returns 400 for such a card unless Kernel supports checkout delivery without a
1524
+ * network token for that card. In that case, fill types the checkout details. Visa
1525
+ * purchases require the cardholder to complete a spend_approval action before
1526
+ * Kernel issues a one-time code; Mastercard purchases need no hosted approval.
1407
1527
  */
1408
1528
  export interface KernelWalletVaultItemSpec {
1409
1529
  provider: 'kernel';
@@ -1411,14 +1531,19 @@ export interface KernelWalletVaultItemSpec {
1411
1531
 
1412
1532
  export interface ManagedAuthCredentialVaultField {
1413
1533
  /**
1414
- * Text, email, and password have form inputs; totp does not and is omitted from
1415
- * both Kernel-hosted and customer React forms. Password and totp must be
1416
- * sensitive. A totp value is an RFC 4648 Base32 generator seed (case-insensitive,
1417
- * optional trailing padding), not an otpauth URI or current code. Reject invalid
1418
- * or empty decoded seeds. Browser fill generates an RFC 6238 code at execution
1419
- * time using HMAC-SHA1, 6 digits, and a 30-second period. Preserve leading zeros;
1420
- * never fill the seed. Custom algorithms, digits, periods, and form enrollment are
1421
- * unsupported.
1534
+ * Text, email, and password have form inputs; totp and passkey do not and are
1535
+ * omitted from both Kernel-hosted and customer React forms. Password, totp, and
1536
+ * passkey must be sensitive. A totp value is an RFC 4648 Base32 generator seed
1537
+ * (case-insensitive, optional trailing padding), not an otpauth URI or current
1538
+ * code. Reject invalid or empty decoded seeds. Browser fill generates an RFC 6238
1539
+ * code at execution time using HMAC-SHA1, 6 digits, and a 30-second period.
1540
+ * Preserve leading zeros; never fill the seed. Custom algorithms, digits, periods,
1541
+ * and form enrollment are unsupported. A passkey value is a JSON-encoded FIDO
1542
+ * Credential Exchange Format passkey object with unpadded base64url
1543
+ * `credentialId`, `userHandle` (at most 64 bytes), and `key` (a PKCS#8 ECDSA P-256
1544
+ * private key), a lowercase `rpId` domain, and optional `username` and
1545
+ * `userDisplayName`. Other CXF members are ignored. Passkeys are never filled into
1546
+ * pages.
1422
1547
  */
1423
1548
  type: CredentialVaultFieldType;
1424
1549
  }
@@ -2103,6 +2228,11 @@ export namespace VaultItem {
2103
2228
 
2104
2229
  action?: ItemsAPI.VaultItemAction;
2105
2230
 
2231
+ /**
2232
+ * Server-generated provider and lifecycle guidance for agents.
2233
+ */
2234
+ description?: string;
2235
+
2106
2236
  /**
2107
2237
  * Live, non-persisted data requested through the item GET expand parameter.
2108
2238
  */
@@ -2167,7 +2297,12 @@ export namespace VaultItem {
2167
2297
  key: string;
2168
2298
 
2169
2299
  /**
2170
- * Live payment card. Test-mode card creation is not supported.
2300
+ * Live Link card request. Test-mode card creation is not supported. The spec can
2301
+ * be changed with PATCH until the card is authorized at a checkout. Authorize it
2302
+ * with the browser at final checkout: Kernel inspects the checkout through WebMCP
2303
+ * and internally chooses a merchant-bound Link Pay Token when supported or a
2304
+ * virtual card otherwise. Callers never receive or choose how the credential is
2305
+ * delivered.
2171
2306
  */
2172
2307
  spec: ItemsAPI.CardVaultItemSpec;
2173
2308
 
@@ -2329,6 +2464,11 @@ export namespace VaultItemOperationResponse {
2329
2464
 
2330
2465
  action?: ItemsAPI.VaultItemAction;
2331
2466
 
2467
+ /**
2468
+ * Server-generated provider and lifecycle guidance for agents.
2469
+ */
2470
+ description?: string;
2471
+
2332
2472
  /**
2333
2473
  * Live, non-persisted data requested through the item GET expand parameter.
2334
2474
  */
@@ -2393,7 +2533,12 @@ export namespace VaultItemOperationResponse {
2393
2533
  key: string;
2394
2534
 
2395
2535
  /**
2396
- * Live payment card. Test-mode card creation is not supported.
2536
+ * Live Link card request. Test-mode card creation is not supported. The spec can
2537
+ * be changed with PATCH until the card is authorized at a checkout. Authorize it
2538
+ * with the browser at final checkout: Kernel inspects the checkout through WebMCP
2539
+ * and internally chooses a merchant-bound Link Pay Token when supported or a
2540
+ * virtual card otherwise. Callers never receive or choose how the credential is
2541
+ * delivered.
2397
2542
  */
2398
2543
  spec: ItemsAPI.CardVaultItemSpec;
2399
2544
 
@@ -2500,7 +2645,7 @@ export namespace VaultPaymentMethod {
2500
2645
  export interface VaultWebmcpBinding {
2501
2646
  /**
2502
2647
  * A declared, populated credential field or supported card field. A TOTP field
2503
- * supplies a fresh code, never its seed.
2648
+ * supplies a fresh code, never its seed. Passkey fields cannot be filled.
2504
2649
  */
2505
2650
  field: string;
2506
2651
 
@@ -2755,7 +2900,12 @@ export declare namespace ItemUpdateParams {
2755
2900
  id_or_name: string;
2756
2901
 
2757
2902
  /**
2758
- * Body param: Live payment card. Test-mode card creation is not supported.
2903
+ * Body param: Live Link card request. Test-mode card creation is not supported.
2904
+ * The spec can be changed with PATCH until the card is authorized at a checkout.
2905
+ * Authorize it with the browser at final checkout: Kernel inspects the checkout
2906
+ * through WebMCP and internally chooses a merchant-bound Link Pay Token when
2907
+ * supported or a virtual card otherwise. Callers never receive or choose how the
2908
+ * credential is delivered.
2759
2909
  */
2760
2910
  spec: CardVaultItemSpec;
2761
2911
 
@@ -2842,6 +2992,18 @@ export declare namespace ItemPerformOperationParams {
2842
2992
  * Body param
2843
2993
  */
2844
2994
  type: 'authorize';
2995
+
2996
+ /**
2997
+ * Body param: Browser session ID, not a reusable browser name. The browser must
2998
+ * have this vault attached.
2999
+ */
3000
+ browser_id?: string;
3001
+
3002
+ /**
3003
+ * Body param: Exact current top-level URL of the final checkout page open in
3004
+ * browser_id.
3005
+ */
3006
+ page_url?: string;
2845
3007
  }
2846
3008
 
2847
3009
  export interface RestartVerificationVaultItemOperationRequest {
@@ -2948,22 +3110,27 @@ export declare namespace ItemPerformOperationParams {
2948
3110
  browser_id: string;
2949
3111
 
2950
3112
  /**
2951
- * Body param: Field bindings for this step. No two bindings may resolve to the
2952
- * same element.
3113
+ * Body param
2953
3114
  */
2954
- fields: Array<VaultFillField>;
3115
+ type: 'fill';
2955
3116
 
2956
3117
  /**
2957
- * Body param
3118
+ * Body param: Field bindings, when the item's advertised fill operation requires
3119
+ * them. Each selector is searched in the main frame and all descendant frames and
3120
+ * must resolve to exactly one editable input or select, matched directly or
3121
+ * through a containing element; zero or multiple candidates fail, and no two
3122
+ * bindings may resolve to the same element. Select elements match an option by
3123
+ * value, not label. All bindings are validated before any write, then filled in
3124
+ * request order, stopping at the first failure. If the page navigates or a target
3125
+ * disappears, fill stops rather than choosing another page or element.
2958
3126
  */
2959
- type: 'fill';
3127
+ fields?: Array<VaultFillField>;
2960
3128
 
2961
3129
  /**
2962
3130
  * Body param: Exact current top-level page URL, including path, query, and
2963
3131
  * fragment. Must match exactly one open page in the browser; zero or multiple
2964
- * matches fail. No prefix or glob matching. Required for cards, which must use
2965
- * HTTPS without embedded credentials. Optional for credentials, where omission
2966
- * requires exactly one open page.
3132
+ * matches fail. No prefix or glob matching. When an item allows omitting it, the
3133
+ * browser must have exactly one open page.
2967
3134
  */
2968
3135
  page_url?: string;
2969
3136
 
@@ -3315,7 +3482,12 @@ export declare namespace ItemUpsertParams {
3315
3482
  id_or_name: string;
3316
3483
 
3317
3484
  /**
3318
- * Body param: Live payment card. Test-mode card creation is not supported.
3485
+ * Body param: Live Link card request. Test-mode card creation is not supported.
3486
+ * The spec can be changed with PATCH until the card is authorized at a checkout.
3487
+ * Authorize it with the browser at final checkout: Kernel inspects the checkout
3488
+ * through WebMCP and internally chooses a merchant-bound Link Pay Token when
3489
+ * supported or a virtual card otherwise. Callers never receive or choose how the
3490
+ * credential is delivered.
3319
3491
  */
3320
3492
  spec: CardVaultItemSpec;
3321
3493
 
@@ -3378,6 +3550,7 @@ export declare namespace Items {
3378
3550
  type CredentialAccountVaultItemRequest as CredentialAccountVaultItemRequest,
3379
3551
  type CredentialCollectionAction as CredentialCollectionAction,
3380
3552
  type CredentialVaultFieldDefinition as CredentialVaultFieldDefinition,
3553
+ type CredentialVaultFieldDefinitionInput as CredentialVaultFieldDefinitionInput,
3381
3554
  type CredentialVaultFieldInput as CredentialVaultFieldInput,
3382
3555
  type CredentialVaultFieldState as CredentialVaultFieldState,
3383
3556
  type CredentialVaultFieldType as CredentialVaultFieldType,