@engramx/idl 0.16.0-rc.21 → 0.16.0-rc.22

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.
@@ -104,7 +104,7 @@ export interface AgentSpendRow {
104
104
  }
105
105
  export interface AgentSpendToday {
106
106
  dayStartNs: bigint;
107
- agents: Page_23;
107
+ agents: Page_24;
108
108
  }
109
109
  export type AgentStatus = { Active: null } | { Resigned: null } | { Revoked: null };
110
110
  export interface AgentWriteReview {
@@ -270,7 +270,7 @@ export interface CertifiedAuditHead {
270
270
  }
271
271
  export interface CheckpointPage {
272
272
  firstAvailableSeq: bigint;
273
- page: Page_18;
273
+ page: Page_19;
274
274
  scannedThroughSeq: bigint;
275
275
  }
276
276
  export interface ChildAllowanceRow {
@@ -413,7 +413,15 @@ export interface Engram {
413
413
  * / test/key-replacement.test.mo runs it; this body names no roster gate, because the caller holds
414
414
  * / no role here until the move.
415
415
  */
416
- acceptAgentKeyNomination: ActorMethod<[Principal], Result_83>;
416
+ acceptAgentKeyNomination: ActorMethod<[Principal], Result_89>;
417
+ /**
418
+ * / The person the owner asked again ACCEPTS: they become this engram's sign-in, and the sealed copy
419
+ * / that came with the ask becomes the engram's (sealed for them). Until this call they have no power
420
+ * / at all. Callable only by that person while the ask waits; refused (as at birth) if they are now
421
+ * / an agent or a guardian here.
422
+ * / Named caller: an owner console — "accept" on a waiting ask, signed in as the person asked.
423
+ */
424
+ acceptSignIn: ActorMethod<[], Result_2>;
417
425
  /**
418
426
  * / Consensus transform for the alert webhook outcall: collapse the response to status-only so
419
427
  * / replicas agree regardless of response headers/body (we only care that the POST landed 2xx).
@@ -446,7 +454,7 @@ export interface Engram {
446
454
  * / account name). The action must be registered: a destination list belongs to an action, and a
447
455
  * / list for no action would be a value nothing checks. The caller is the owner's app.
448
456
  */
449
- addEip712Destination: ActorMethod<[Uint8Array | number[], string], Result_82>;
457
+ addEip712Destination: ActorMethod<[Uint8Array | number[], string], Result_11>;
450
458
  /**
451
459
  * / Register a typed-data shape as signable. Owner-only, freeze-gated (a registration is a grant
452
460
  * / of FUTURE authority — a frozen engram must not be able to widen what it can sign), and the
@@ -463,6 +471,14 @@ export interface Engram {
463
471
  * / `eip712SignFor` before the cap reservation. Before this, a withdrawal registered as `#standard`
464
472
  * / needed no webhook, no guardian and no destination field, waited one hour, and signed to any
465
473
  * / address. Intrinsic checks still come first and the watchers last (the 2026-08-06 re-ordering).
474
+ * /
475
+ * / ⟨2026-11-02, the child build's stage 5⟩ In an engram opened through another, after the spec's own
476
+ * / checks: the venue actions that move money or control to another account are refused by name
477
+ * / (`HyperliquidTransaction:` `UsdSend`, `SpotSend`, `SendAsset`, `SendToEvmWithData`,
478
+ * / `ConvertToMultiSigUser`, `ApproveBuilderFee`, `TokenDelegate` — `#Refused`), and
479
+ * / `HyperliquidTransaction:Withdraw` registers only with a must-equal rule on `destination` naming this
480
+ * / engram's own pay address (`#Refused` otherwise; `#Conflict` while the pay address has not been
481
+ * / derived — call `getEvmAddress` first). A first engram is unchanged.
466
482
  */
467
483
  addEip712Type: ActorMethod<
468
484
  [
@@ -481,7 +497,7 @@ export interface Engram {
481
497
  ackIrrevocable: boolean;
482
498
  },
483
499
  ],
484
- Result_81
500
+ Result_87
485
501
  >;
486
502
  /**
487
503
  * / ⟨0.16.0, L1⟩ THE ROLE-CONFLICT ARM, and why three refusals here are not the same refusal.
@@ -504,7 +520,19 @@ export interface Engram {
504
520
  * / holding a line break are `#Invalid`; an id past the head is `#NotFound`; nothing is recorded
505
521
  * / on any refusal.
506
522
  */
507
- addRecordNote: ActorMethod<[bigint, string], Result_14>;
523
+ addRecordNote: ActorMethod<[bigint, string], Result_15>;
524
+ /**
525
+ * / List a seller: from 24 hours after this call, x402 may pay `payTo` up to `perDayCapE6` a UTC day
526
+ * / (minor units of a six-decimal stablecoin — 1_000_000 is $1.00) without an approval, and a payment
527
+ * / to it no longer counts against the engram-wide ceiling or the paying agent's own limits. Above the
528
+ * / cap a payment goes to the approval queue like any other. `isPayout` marks it as where this engram
529
+ * / pays out (the same row, its own cap). The sign-in only, in an engram opened through another; the
530
+ * / owner in a first engram. Refused while payments are frozen, for a malformed or already-listed
531
+ * / address, a cap of 0, and past `Sellers.MAX_SELLERS` rows. Answers when the row starts to count.
532
+ * / Named callers: an owner console's seller list for an engram (signed in as its sign-in, for one
533
+ * / opened through another), and the owner kit.
534
+ */
535
+ addSeller: ActorMethod<[string, bigint, boolean], Result_11>;
508
536
  /**
509
537
  * / Returns the write RECEIPT, not just the version.
510
538
  * /
@@ -539,7 +567,7 @@ export interface Engram {
539
567
  * / is exactly what a guardian pause exists to hold. No action alert is raised: the operation is
540
568
  * / owner-initiated, owner-only, and already chained into the audit log.
541
569
  */
542
- applyCondense: ActorMethod<[bigint], Result_80>;
570
+ applyCondense: ActorMethod<[bigint], Result_85>;
543
571
  /**
544
572
  * / Owner-only: activate a guardian who has registered against an invite.
545
573
  * /
@@ -574,6 +602,18 @@ export interface Engram {
574
602
  * / "not pending" is the one refusal here an owner acts on differently depending on which it is.
575
603
  */
576
604
  approveRequest: ActorMethod<[string], Result_2>;
605
+ /**
606
+ * / The OWNER asks the person who last declined to be this engram's sign-in again. No principal
607
+ * / argument: the ask goes to `signInDeclinedBy` alone, so the key file can never seat a sign-in of
608
+ * / its choosing — re-asking the person who already said no gives a thief nothing. `sealed` is the
609
+ * / owner's key sealed by the kit for that person; it is stored with the ask, inert, and becomes the
610
+ * / engram's sealed copy only if they accept. Refused in a first engram, while a sign-in is in place,
611
+ * / when nobody ever declined (an engram opened without a sign-in has nobody to ask, for life), while
612
+ * / an ask already waits, within 7 days of the last decline (`OwnerSignIn.askRefusal`), and when the
613
+ * / person has since become an agent or a guardian here. The sign-in and the person asked are refused.
614
+ * / Named caller: the owner kit, signed by the agent's lasting key (it seals the key for that person).
615
+ */
616
+ askSignInAgain: ActorMethod<[Uint8Array | number[]], Result_2>;
577
617
  /**
578
618
  * / Discard a backup started by `backupInit` and never finalized. The way out of a failed upload,
579
619
  * / and the reason a stalled one need not occupy space indefinitely. Same gate as the rest of the
@@ -619,7 +659,7 @@ export interface Engram {
619
659
  * /
620
660
  * / The write half also refuses while writes are PAUSED.
621
661
  */
622
- backupInit: ActorMethod<[string, BackupType, [] | [string], string, [] | [string]], Result_53>;
662
+ backupInit: ActorMethod<[string, BackupType, [] | [string], string, [] | [string]], Result_55>;
623
663
  /**
624
664
  * / Read one chunk of a finalized backup, by index.
625
665
  * /
@@ -627,7 +667,7 @@ export interface Engram {
627
667
  * / `canAppendMemory`. Holding one says nothing about the other, deliberately: taking a backup and
628
668
  * / carrying it away are different authorities.
629
669
  */
630
- backupPullChunk: ActorMethod<[string, bigint], Result_69>;
670
+ backupPullChunk: ActorMethod<[string, bigint], Result_72>;
631
671
  backupPushChunk: ActorMethod<[string, bigint, Uint8Array | number[]], Result_2>;
632
672
  /**
633
673
  * / The OWNER cancels an agent's pending key nomination; the agent keeps its current key. Refused
@@ -665,7 +705,7 @@ export interface Engram {
665
705
  * / pair — e6 base units of the token named first. A name only: Candid passes arguments by
666
706
  * / position, so nothing on the wire moved.
667
707
  */
668
- convertEarningsToCycles: ActorMethod<[string, bigint], Result_14>;
708
+ convertEarningsToCycles: ActorMethod<[string, bigint], Result_15>;
669
709
  /**
670
710
  * / Owner-only: mint a single-use invite code an agent redeems with `pairAgent`.
671
711
  * /
@@ -695,7 +735,7 @@ export interface Engram {
695
735
  * / ⟨2026-10-29, review F7⟩ A name the owner gives meets the rule `renameAgent` applies: a line break
696
736
  * / or another control character is `#Invalid` (`People.nameRefusal`), as a rename to it would be.
697
737
  */
698
- createAgentInvite: ActorMethod<[string, AgentPermissions], Result_53>;
738
+ createAgentInvite: ActorMethod<[string, AgentPermissions], Result_55>;
699
739
  /**
700
740
  * / Owner-only: mint an invite for a GUARDIAN — an independent check on agents, not a
701
741
  * / co-owner and not a recovery agent.
@@ -719,7 +759,24 @@ export interface Engram {
719
759
  * / So an invite that fails to redeem for that reason is not a bad code. The rule exists because
720
760
  * / a check must be independent of the thing it checks.
721
761
  */
722
- createGuardianInvite: ActorMethod<[string, GuardianPermissions], Result_53>;
762
+ createGuardianInvite: ActorMethod<[string, GuardianPermissions], Result_55>;
763
+ /**
764
+ * / The sign-in GIVES ITSELF UP, or the person the owner asked again says no. ⟨the owner's ruling "1
765
+ * / yes, but the child can ask again" — the child build's Challenge C3.1: whoever the kit names cannot
766
+ * / otherwise refuse a seat they never agreed to⟩
767
+ * / · as the sign-in: the slot empties, the sealed copy of the owner's key is deleted (nobody may
768
+ * / hold a copy for a seat that is gone), and the caller is recorded as the one who declined, with
769
+ * / the time. The engram keeps its small limits; the owner may ask this person again in 7 days.
770
+ * / Listed sellers stop counting at once (a raise waiting in them too): the rows are kept, and
771
+ * / count again only if this person accepts a re-ask (`Sellers.inForce`).
772
+ * / · as the person a waiting ask goes to: the ask and the copy that came with it are dropped, and
773
+ * / the decline's time moves to now (the next ask waits another 7 days).
774
+ * / The key file is refused: it cannot empty the slot (a thief would, to strand the honest owner's
775
+ * / approvals). A first engram has nothing to decline.
776
+ * / Named caller: an owner console — the sign-in's "decline", and the person asked's "decline" on a
777
+ * / waiting ask.
778
+ */
779
+ declineSignIn: ActorMethod<[], Result_2>;
723
780
  /**
724
781
  * / OWNER-ONLY deletion of a stored backup.
725
782
  * /
@@ -770,7 +827,7 @@ export interface Engram {
770
827
  * / revision, or a paid session's append) that succeeded, still held in full by the ring.
771
828
  * / One dispute per guardian per write (`#Conflict`, the first stands).
772
829
  */
773
- disputeAgentWrite: ActorMethod<[bigint, string], Result_14>;
830
+ disputeAgentWrite: ActorMethod<[bigint, string], Result_15>;
774
831
  /**
775
832
  * / Record that log entries [fromSeq, toSeq] were served, and return the root that proves it.
776
833
  * /
@@ -785,7 +842,7 @@ export interface Engram {
785
842
  * / situation rather than a safety measure. It IS gated on requireMemoryAttached: a store that
786
843
  * / failed its integrity check must not attest anything it cannot vouch for.
787
844
  */
788
- exportMemoryRange: ActorMethod<[bigint, bigint, [] | [Principal]], Result_79>;
845
+ exportMemoryRange: ActorMethod<[bigint, bigint, [] | [Principal]], Result_84>;
789
846
  /**
790
847
  * / ⟨0.16.0, L2.2 — renamed from `guardianFreezePayments`⟩ The prefix LIED about who may call it.
791
848
  * / The gate is `requireOwnerOrGuardian`, and an owner freezing their own payments is the ordinary
@@ -832,8 +889,10 @@ export interface Engram {
832
889
  freezePaymentsWithReason: ActorMethod<[string], Result_2>;
833
890
  /**
834
891
  * / Delivery status + config readback. Owner-only (the URL is a secret).
892
+ * / ⟨2026-11-03, the pre-gate fixes — spec §7, "child: sign-in — reads yes"⟩ Also the seated sign-in of
893
+ * / an engram opened through another, as the owner (`#ownerOrSignIn`); a first engram is unchanged.
835
894
  */
836
- getActionAlertStatus: ActorMethod<[], Result_67>;
895
+ getActionAlertStatus: ActorMethod<[], Result_73>;
837
896
  /**
838
897
  * / Agents need to know what they may revise, so they can read it too. Whole-value config, same
839
898
  * / carve-out as getProtectedPaths — and kept a SEPARATE method from it deliberately (L2.2): a
@@ -843,7 +902,7 @@ export interface Engram {
843
902
  * / Refusal reason preserved from the trap: a grant is a power, and its absence and its
844
903
  * / concealment are different facts.
845
904
  */
846
- getAgentRevisablePaths: ActorMethod<[], Result_63>;
905
+ getAgentRevisablePaths: ActorMethod<[], Result_66>;
847
906
  /**
848
907
  * / OWNER-ONLY: every engagement's seat weeks on this engram, with the agent's root — the day it
849
908
  * / paired, the days of its first and last payment signature, a 64-week map whose bit 0 is the week
@@ -855,8 +914,10 @@ export interface Engram {
855
914
  * / order. Anyone else is refused by name (`#Refused getAgentSeatWeeks: …`), never answered with an
856
915
  * / empty page. Paged; `total` is every engagement ever paired here (a reset keeps the rows).
857
916
  * / Two rows can name one root: an agent paired again after it left is a second engagement.
917
+ * / ⟨2026-11-03, the pre-gate fixes — spec §7, "child: sign-in — reads yes"⟩ Also the seated sign-in of
918
+ * / an engram opened through another, as the owner (`#ownerOrSignIn`); a first engram is unchanged.
858
919
  */
859
- getAgentSeatWeeks: ActorMethod<[bigint, bigint], Result_77>;
920
+ getAgentSeatWeeks: ActorMethod<[bigint, bigint], Result_82>;
860
921
  /**
861
922
  * / Owner: everything written into this engram by someone other than the owner since the last
862
923
  * / markAgentWritesReviewed() — agent appends/revisions AND paid-session appends (see
@@ -865,8 +926,11 @@ export interface Engram {
865
926
  * / them — the UI must page (markAgentWritesReviewed(?lastShownId)) and must NOT present 200
866
927
  * / as a total. `earliest` discloses ring eviction — if cursor < earliest, entries between them
867
928
  * / aged out of the ring (the CHAIN still proves total count; this view can't show their bodies).
929
+ * / ⟨2026-11-03, the pre-gate fixes — spec §7, "child: sign-in — reads yes"⟩ Also the seated sign-in of
930
+ * / an engram opened through another, as the owner (`AccessControl.requireOwnerOrSignIn`); a first
931
+ * / engram is unchanged.
868
932
  */
869
- getAgentWriteReview: ActorMethod<[], Result_76>;
933
+ getAgentWriteReview: ActorMethod<[], Result_81>;
870
934
  /**
871
935
  * / Why anchoring is or is not advancing. PUBLIC: ungated on purpose — detecting a stalled
872
936
  * / engram is the point, a gated read would fail-to-empty and hand a third party fabricated zeros,
@@ -889,7 +953,7 @@ export interface Engram {
889
953
  * / was signed rather than asserted.
890
954
  */
891
955
  getAuditHead: ActorMethod<[], AuditHead>;
892
- getBackupMetadata: ActorMethod<[string], Result_75>;
956
+ getBackupMetadata: ActorMethod<[string], Result_80>;
893
957
  /**
894
958
  * / ⟨2026-10-21, the owner's round-11 answer m: a backup-retention getter⟩ How many backups of
895
959
  * / `dbType` each creator keeps, and whether that is the default — the read `setBackupRetention`
@@ -902,7 +966,7 @@ export interface Engram {
902
966
  * / the anonymous caller. A kind the setter would refuse is `#Invalid` here too
903
967
  * / (`Backup.getRetention`). Records nothing (a query).
904
968
  */
905
- getBackupRetention: ActorMethod<[string], Result_74>;
969
+ getBackupRetention: ActorMethod<[string], Result_79>;
906
970
  /**
907
971
  * / The cashier this engram recognises as its rent biller — `null` until the registry pushes one.
908
972
  * /
@@ -920,8 +984,10 @@ export interface Engram {
920
984
  * / from, which is the owner's to disclose, not the registry's. The certified half is at the registry
921
985
  * / (`getCertifiedBirth`, public, revealing only whether a fingerprint is present); the client's
922
986
  * / `verifyBirthChain` checks both. Refused to anyone else by the combinator (`#ownerOnly`).
987
+ * / ⟨2026-11-03, the pre-gate fixes — spec §7, "child: sign-in — reads yes"⟩ Also the seated sign-in of
988
+ * / an engram opened through another, as the owner (`#ownerOrSignIn`); a first engram is unchanged.
923
989
  */
924
- getBirthChain: ActorMethod<[], Result_73>;
990
+ getBirthChain: ActorMethod<[], Result_78>;
925
991
  /**
926
992
  * / ⟨2026-10-21, the owner's round-11 answer d⟩ Each brake: on or off, and while on, who pulled it
927
993
  * / LAST (their key and whether as owner or guardian), since when, and the reason they gave — the
@@ -932,7 +998,7 @@ export interface Engram {
932
998
  * / is null for a brake that is off, and for one carried on across the upgrade that added this
933
999
  * / read (who pulled it was not recorded then) — never a guessed pull.
934
1000
  */
935
- getBrakes: ActorMethod<[], Result_72>;
1001
+ getBrakes: ActorMethod<[], Result_77>;
936
1002
  /**
937
1003
  * / ⟨0.16.0, L9/L10 — census row⟩ `Wire.CertifiedAuditHead`, not an anonymous record. The
938
1004
  * / registry, market and cashier already served the shared type; the engram — the canister that
@@ -959,13 +1025,35 @@ export interface Engram {
959
1025
  * / recorded nothing while reading as if it did. The refusal is loud in the reply instead. WHAT
960
1026
  * / WOULD MAKE THIS WRONG: a reason to record who asked — then this becomes an update that says so.
961
1027
  */
962
- getChildAllowance: ActorMethod<[Principal], Result_71>;
1028
+ getChildAllowance: ActorMethod<[Principal], Result_76>;
963
1029
  /**
964
1030
  * / Owner-only, Billing-class: what opening an engram costs this engram, the balance below which an
965
1031
  * / agent's request is refused, the balance now, and every agent's allowance. The console's cost
966
1032
  * / sentence reads it. Cycles are owner-class information, as on the owner's console read.
1033
+ * / ⟨2026-11-03, the pre-gate fixes — spec §7, "child: sign-in — reads yes"⟩ Also the seated sign-in of
1034
+ * / an engram opened through another, as the owner (`#ownerOrSignIn`); a first engram is unchanged.
1035
+ */
1036
+ getChildOpening: ActorMethod<[], Result_75>;
1037
+ /**
1038
+ * / Derive the key that opens the sealed copy, encrypted under the caller's transport public key —
1039
+ * / for the SIGN-IN alone (the combinator's `#ownerSignIn`; the key file is refused by name: only the
1040
+ * / sign-in opens the backup, and the key file holds the plaintext anyway). The derivation input is the
1041
+ * / sign-in's own principal, the same identity the kit sealed the copy to, so a former sign-in's key
1042
+ * / never opens a copy re-sealed for its successor. Refused in a first engram, with no sign-in, and
1043
+ * / with no copy, all before the call. The opening is recorded (`keyBackup.opened`), so the owner's
1044
+ * / alert fires: the one act a thief holding the sign-in cannot hide. Not blocked by a freeze: a
1045
+ * / freeze must never lock the owner out of its own key.
1046
+ * / ⟨CORRECTED 2026-11-03, the stage-6 review's m1, beside the sentence above⟩ "cannot hide" overstates
1047
+ * / it: in an engram opened through another the sign-in sets the alert address, so a thief holding the
1048
+ * / sign-in can re-point it first. Each opening is recorded in the engram's record (which the key file
1049
+ * / reads) and alerted to whatever address the sign-in has set.
1050
+ * /
1051
+ * / ⟨L7⟩ UPDATE, NOT QUERY, and this is the system call that forces it: the body awaits
1052
+ * / `VetKeys.ManagementCanister.vetKdDeriveKey`. A query cannot await.
1053
+ * / Named callers: an owner console signed in as the sign-in (the browser's recovery), and the owner
1054
+ * / kit's `--recover-key` signed by a key-file sign-in.
967
1055
  */
968
- getChildOpening: ActorMethod<[], Result_70>;
1056
+ getEncryptedKeyBackupKey: ActorMethod<[Uint8Array | number[]], Result_72>;
969
1057
  /**
970
1058
  * / Derive the shared memory-encryption key, encrypted under the caller's transport
971
1059
  * / public key. Gated to owner + read-agents (the same principals allowed to read
@@ -991,7 +1079,7 @@ export interface Engram {
991
1079
  * / cost. Stated here because L7 requires the reason be readable from the interface rather than
992
1080
  * / inferred by opening the body — which is exactly what had to happen to write this line.
993
1081
  */
994
- getEncryptedMemoryKey: ActorMethod<[[] | [bigint], Uint8Array | number[]], Result_69>;
1082
+ getEncryptedMemoryKey: ActorMethod<[[] | [bigint], Uint8Array | number[]], Result_72>;
995
1083
  /**
996
1084
  * / ⟨0.16.0, owner ruling 2026-08-20 — option (a)⟩ `x402Support` REPORTS THE RAIL, not a constant.
997
1085
  * /
@@ -1090,7 +1178,7 @@ export interface Engram {
1090
1178
  * / `#Err`, never a record carrying an empty string (ic402's `getEvmAddress` answers `""` on a
1091
1179
  * / failed derivation — that is fail-to-empty on a money surface, and it stops here).
1092
1180
  */
1093
- getEvmAddress: ActorMethod<[], Result_68>;
1181
+ getEvmAddress: ActorMethod<[], Result_74>;
1094
1182
  /**
1095
1183
  * / The owner's OWN EVM address, if they registered one — distinct from `getEvmAddress`, which is
1096
1184
  * / the address this canister derives for itself.
@@ -1108,8 +1196,11 @@ export interface Engram {
1108
1196
  * / the management canister's `ecdsa_public_key`. A query cannot await, so the round-trip is the
1109
1197
  * / cost — stated here because L7 requires the reason be readable from the interface rather than
1110
1198
  * / inferred by opening the body.
1199
+ * / ⟨2026-11-03, the pre-gate fixes — spec §7, "child: sign-in — reads yes"⟩ Also the seated sign-in of
1200
+ * / an engram opened through another, as the owner (`AccessControl.requireOwnerOrSignIn`); a first
1201
+ * / engram is unchanged.
1111
1202
  */
1112
- getEvmSignerAddress: ActorMethod<[], Result_53>;
1203
+ getEvmSignerAddress: ActorMethod<[], Result_55>;
1113
1204
  /**
1114
1205
  * / PUBLIC: where this chain begins, for the stranger deciding whether to trust it.
1115
1206
  * /
@@ -1122,7 +1213,46 @@ export interface Engram {
1122
1213
  /**
1123
1214
  * / A guardian's own channel status (their URL is their secret — each guardian sees only theirs).
1124
1215
  */
1125
- getGuardianAlertStatus: ActorMethod<[], Result_67>;
1216
+ getGuardianAlertStatus: ActorMethod<[], Result_73>;
1217
+ /**
1218
+ * / The sealed copy itself — opaque bytes only the sign-in can open. Readable by the sign-in (it
1219
+ * / opens them with the key `getEncryptedKeyBackupKey` derives for it) and by the key file, which
1220
+ * / holds the plaintext already and so learns nothing — it reads them to compare with the copy the kit
1221
+ * / made (the Challenge's C2.11: a copy someone else stored first reads as "not this key", not as
1222
+ * / "sealed"). Refused in a first engram, and `#NotFound` when no copy is held. The copy that waits
1223
+ * / with an ask is never served here: it is inert until accepted.
1224
+ * / A QUERY: the refusal is in the reply, not the denial log (a query's writes are discarded).
1225
+ * / Named callers: the owner kit (`--recover-key`, and its check after sealing), and an owner console
1226
+ * / signed in as the sign-in (the browser's recovery).
1227
+ */
1228
+ getKeyBackupCiphertext: ActorMethod<[], Result_72>;
1229
+ /**
1230
+ * / Whether this engram holds a sealed copy of its owner's key, for whom, since when, whether it is
1231
+ * / sealed for the sign-in seated now, and whether a copy waits with an ask (`Types.KeyBackupStatus`).
1232
+ * / Readable by the key file and the sign-in (`#ownerOrSignIn`); refused loudly to anyone else
1233
+ * / (ADR-0002). A first engram refuses by name rather than answer "not sealed": it never holds one,
1234
+ * / and an empty answer there would read as a child whose seal failed.
1235
+ * / A QUERY: the refusal is in the reply, not the denial log (a query's writes are discarded).
1236
+ * / Named callers: the owner kit after it opens an engram (it prints whether the copy is stored), and
1237
+ * / an owner console showing an engram opened through another (whether recovery can work).
1238
+ */
1239
+ getKeyBackupStatus: ActorMethod<[], Result_71>;
1240
+ /**
1241
+ * / BLS verification key under which the owner kit seals the backup (`IbeCiphertext.encrypt` to the
1242
+ * / sign-in's principal) and the opener verifies the derived key. Served on-canister so the kit never
1243
+ * / has to know which master key this network uses (the spec's Q-K3: a wrong guess would seal a copy
1244
+ * / nobody can open). Static per (context, key id, canister) — cacheable.
1245
+ * /
1246
+ * / PUBLIC: intentionally unauthenticated — a vetKD public key reveals nothing secret and cannot
1247
+ * / decrypt anything — the sensitive derivation is getEncryptedKeyBackupKey below, which IS gated
1248
+ * / (the sign-in alone) and returns key material encrypted to the caller's transport key. The same
1249
+ * / reasoning as getMemoryKeyVerificationKey, for the backup's own context.
1250
+ * / ⟨L7⟩ UPDATE, NOT QUERY, and this is the system call that forces it: the body awaits
1251
+ * / `VetKeys.ManagementCanister.vetKdPublicKey`. A query cannot await.
1252
+ * / Named callers: the owner kit, when it seals the copy at birth or for an ask; an owner console,
1253
+ * / to verify the derived key during recovery.
1254
+ */
1255
+ getKeyBackupVerificationKey: ActorMethod<[], Uint8Array | number[]>;
1126
1256
  /**
1127
1257
  * / The market this engram will accept signing requests from — `null` until the registry pushes
1128
1258
  * / one at spawn, which is why `requireMarket` refuses fleet-wide today.
@@ -1155,7 +1285,7 @@ export interface Engram {
1155
1285
  * / never renumbered: the next page starts at the last version returned plus one. Defaults
1156
1286
  * / return the whole history of any file a pre-FD engram could have held.
1157
1287
  */
1158
- getMemoryHistory: ActorMethod<[string, [] | [bigint], [] | [bigint]], Result_66>;
1288
+ getMemoryHistory: ActorMethod<[string, [] | [bigint], [] | [bigint]], Result_70>;
1159
1289
  /**
1160
1290
  * / PUBLIC: the epoch alone, and deliberately nothing else (rotation study D4). A `rotatedAt[]`
1161
1291
  * / history would be a public, fleet-enumerable feed of when each owner terminated a trust
@@ -1204,7 +1334,7 @@ export interface Engram {
1204
1334
  * / forever" — a claim about what this engram will DESTROY — and an empty guard list reads as
1205
1335
  * / "nothing is held back".
1206
1336
  */
1207
- getMemoryRetentionPolicy: ActorMethod<[], Result_65>;
1337
+ getMemoryRetentionPolicy: ActorMethod<[], Result_69>;
1208
1338
  /**
1209
1339
  * / The metrics reader this engram answers — `null` until the spawning registry names one.
1210
1340
  * /
@@ -1221,7 +1351,7 @@ export interface Engram {
1221
1351
  * / a fact about the caller, told to the caller. There is nothing to leak by omission — which is
1222
1352
  * / the test the #NotFound arm sets.
1223
1353
  */
1224
- getMyGuardianStatus: ActorMethod<[], Result_17>;
1354
+ getMyGuardianStatus: ActorMethod<[], Result_18>;
1225
1355
  /**
1226
1356
  * / ⟨0.16.0, NEW⟩ The gated half of the status() split.
1227
1357
  * /
@@ -1233,7 +1363,18 @@ export interface Engram {
1233
1363
  * / client (rule 4) and bought a masked answer nobody had asked for — the census could not even
1234
1364
  * / find a consumer that read the masked `0`. Behind a gate there is nobody to mask it from.
1235
1365
  */
1236
- getOwnerConsole: ActorMethod<[], Result_64>;
1366
+ getOwnerConsole: ActorMethod<[], Result_68>;
1367
+ /**
1368
+ * / The engram's sign-in, as `Types.OwnerSignInView` describes it: whether this engram was opened
1369
+ * / through another, who its sign-in is, whether the caller is it, and any decline or waiting ask.
1370
+ * / Readable by the owner's key, the sign-in, and the person a waiting ask goes to (they need to see
1371
+ * / the ask to answer it); refused loudly to anyone else (ADR-0002) — never an empty view, which would
1372
+ * / read as "no sign-in". A first engram answers its owner with every field null or false.
1373
+ * / A QUERY: the refusal is in the reply, not the denial log (a query's writes are discarded).
1374
+ * / Named callers: an owner console showing an engram opened through another (who signs in, and a
1375
+ * / waiting ask with Accept and Decline), and the owner kit after it opens one.
1376
+ */
1377
+ getOwnerSignIn: ActorMethod<[], Result_67>;
1237
1378
  /**
1238
1379
  * / Owner + agents only (agents need it to avoid writing protected paths).
1239
1380
  * /
@@ -1247,7 +1388,20 @@ export interface Engram {
1247
1388
  * / writing one — so a fabricated empty here does not merely misinform, it invites the write the
1248
1389
  * / list exists to prevent.
1249
1390
  */
1250
- getProtectedPaths: ActorMethod<[], Result_63>;
1391
+ getProtectedPaths: ActorMethod<[], Result_66>;
1392
+ /**
1393
+ * / What an approval card shows beside a payment to `payTo` (`Types.RecipientHistory`): whether an x402
1394
+ * / signature from this engram has paid it before and since when, whether it is a listed seller and
1395
+ * / counts now, and whether the history is full (then "not paid before" may be one it forgot). Read
1396
+ * / beside the request, because the stored request is never reshaped. For the key file and the sign-in
1397
+ * / (the owner in a first engram); refused loudly to anyone else. A malformed address is `#Invalid`.
1398
+ * / ⟨2026-11-02, the child build's stage 5⟩ Also how many times x402 has paid it and the largest of
1399
+ * / those payments (`timesPaid`, `largestPaidE6`, six-decimal minor units), so a card can say "paid 3
1400
+ * / times, largest $12"; the history forgets the address paid longest ago when full.
1401
+ * / ⟨2026-11-03, the pre-gate fixes⟩ And when it was LAST paid (`lastPaidAtNs`; null when never).
1402
+ * / Named callers: an owner console's approval card for a payment request.
1403
+ */
1404
+ getRecipientHistory: ActorMethod<[string], Result_65>;
1251
1405
  /**
1252
1406
  * / Whether the metrics reader's read is answered — `true` from birth.
1253
1407
  * /
@@ -1262,8 +1416,10 @@ export interface Engram {
1262
1416
  * / ⟨2026-11-01, "6 fix"⟩ Refused by name (`#Unavailable`) while this engram has not read its own
1263
1417
  * / freezing setting: there is no floor to serve then, and a 30-day figure would be a made-up one
1264
1418
  * / (ADR-0002) — the signers refuse in that state too, so the refusal is the truth on Billing.
1419
+ * / ⟨2026-11-03, the pre-gate fixes — spec §7, "child: sign-in — reads yes"⟩ Also the seated sign-in of
1420
+ * / an engram opened through another, as the owner (`#ownerOrSignIn`); a first engram is unchanged.
1265
1421
  */
1266
- getSigningFloor: ActorMethod<[], Result_62>;
1422
+ getSigningFloor: ActorMethod<[], Result_64>;
1267
1423
  /**
1268
1424
  * / The registry that spawned this engram, if it recorded one.
1269
1425
  * /
@@ -1283,8 +1439,10 @@ export interface Engram {
1283
1439
  * / configuration, and the engram-wide total would also tell one agent how much the others spent.
1284
1440
  * / A refusal names this method (`Gated.gatedResult`) rather than answering null/0 — a ceiling of
1285
1441
  * / "none" and a spend of 0 are both real answers, so a fabricated one would be read as fact.
1442
+ * / ⟨2026-11-03, the pre-gate fixes — spec §7, "child: sign-in — reads yes"⟩ Also the seated sign-in of
1443
+ * / an engram opened through another, as the owner (`#ownerOrSignIn`); a first engram is unchanged.
1286
1444
  */
1287
- getSpendCeiling: ActorMethod<[], Result_61>;
1445
+ getSpendCeiling: ActorMethod<[], Result_63>;
1288
1446
  /**
1289
1447
  * / Read the caps in force for a caller.
1290
1448
  * /
@@ -1293,9 +1451,18 @@ export interface Engram {
1293
1451
  * / Here the engram serves no 402s at all: these caps are the owner's private custody
1294
1452
  * / configuration, and publishing them would tell any caller exactly how large a signing request
1295
1453
  * / can be before it needs an approval nobody is watching for.
1454
+ * /
1455
+ * / ⟨2026-11-03, the pre-gate fixes — spec §7, "child: sign-in — reads yes"⟩ Also the seated sign-in of
1456
+ * / an engram opened through another, as the owner, through the combinator's `#ownerOrSignIn` (a first
1457
+ * / engram is unchanged: the owner only). The inline owner comparison that stood here is gone with it —
1458
+ * / one fewer unnamed caller guard. Its refusal sentence is kept as the reason it never fails soft:
1459
+ * / "Spending caps are the owner's custody configuration. Refusing rather than answering with
1460
+ * / defaults — a default-looking answer would understate the real limits to anyone probing them." The
1461
+ * / refusal itself is now the combinator's (`#Refused getSpendPolicy: …`, `requireOwner`'s words), and
1462
+ * / an engram with no owner yet is refused the same way rather than answered `#Conflict`.
1296
1463
  */
1297
- getSpendPolicy: ActorMethod<[[] | [Principal]], Result_60>;
1298
- getStorageStats: ActorMethod<[], Result_59>;
1464
+ getSpendPolicy: ActorMethod<[[] | [Principal]], Result_62>;
1465
+ getStorageStats: ActorMethod<[], Result_61>;
1299
1466
  /**
1300
1467
  * / Timer arm-state. PUBLIC and deliberately so: these timers are self-arming to save cycles,
1301
1468
  * / and an optimisation nobody can verify is an optimisation nobody should trust. Cheap to read,
@@ -1380,14 +1547,14 @@ export interface Engram {
1380
1547
  * / UPDATE, marked per L7: it awaits three ICRC-1 ledgers". It was marked in prose and invisible
1381
1548
  * / to any gate; the glyph is what `scripts/check-update-for-read.mjs` matches.
1382
1549
  */
1383
- getWalletBalances: ActorMethod<[], Result_58>;
1550
+ getWalletBalances: ActorMethod<[], Result_60>;
1384
1551
  /**
1385
1552
  * / Refusal reason preserved, and it is the clearest case of why a masked read is worse than no
1386
1553
  * / read: three empty strings with `configured = false` is a VALID-LOOKING answer meaning "this
1387
1554
  * / engram has no World ID configuration" — handed to a caller who merely lacks a grant. The
1388
1555
  * / fabrication is indistinguishable from the truth by construction.
1389
1556
  */
1390
- getWorldIdConfig: ActorMethod<[], Result_57>;
1557
+ getWorldIdConfig: ActorMethod<[], Result_59>;
1391
1558
  /**
1392
1559
  * / ⟨L7⟩ UPDATE, NOT QUERY: this awaits THREE system calls — `raw_rand()` for the nonce,
1393
1560
  * / `Call.signWithEcdsa` for the signature, and `worldIdRpPublicKey()` for the derived key. A
@@ -1398,7 +1565,7 @@ export interface Engram {
1398
1565
  * / the World Developer Portal. Short-lived (300s TTL, idkit-server's default) and single-purpose —
1399
1566
  * / it authorizes opening one verification request, nothing else.
1400
1567
  */
1401
- getWorldIdRpContext: ActorMethod<[], Result_56>;
1568
+ getWorldIdRpContext: ActorMethod<[], Result_58>;
1402
1569
  /**
1403
1570
  * / Owner-only: the EVM address derived from the engram's dedicated World ID RP signing key (the
1404
1571
  * / "worldid-rp" tECDSA path). Register THIS address as the rp_id's signer in the World Developer
@@ -1409,8 +1576,11 @@ export interface Engram {
1409
1576
  * / awaits `worldIdRpPublicKey()` (management `ecdsa_public_key`), and it calls `denied()` on
1410
1577
  * / refusal — a state write, which a query cannot perform. So even if the key were cached this
1411
1578
  * / could not become a query without silently retiring its denial record (ADR-0002's class).
1579
+ * / ⟨2026-11-03, the pre-gate fixes — spec §7, "child: sign-in — reads yes"⟩ Also the seated sign-in of
1580
+ * / an engram opened through another, as the owner (`AccessControl.requireOwnerOrSignIn`); a first
1581
+ * / engram is unchanged.
1412
1582
  */
1413
- getWorldIdRpSignerAddress: ActorMethod<[], Result_53>;
1583
+ getWorldIdRpSignerAddress: ActorMethod<[], Result_55>;
1414
1584
  /**
1415
1585
  * / The verified IDKitResult, verbatim, as World's /api/v4/verify accepted it — the re-checkable
1416
1586
  * / artifact behind verifiedHuman. Role-gated because it carries the NULLIFIER.
@@ -1431,7 +1601,7 @@ export interface Engram {
1431
1601
  * / canister does not serve. The tombstones below and at `about()` are historical and correct as
1432
1602
  * / written; this one was present tense, which is the difference that matters.⟩
1433
1603
  */
1434
- getWorldIdVerification: ActorMethod<[], Result_55>;
1604
+ getWorldIdVerification: ActorMethod<[], Result_57>;
1435
1605
  /**
1436
1606
  * / ⟨0.16.0, L1⟩ THE EMERGENCY FAMILY. Every refusal below is `#Refused` or `#NotFound`, and the
1437
1607
  * / absence of a `#Conflict` here is the point: these are the calls someone makes while something
@@ -1514,8 +1684,11 @@ export interface Engram {
1514
1684
  * /
1515
1685
  * / Owner-gated because it reports on custody posture, and answered as a Result so that a
1516
1686
  * / wrong-identity caller gets a refusal rather than a bare `false` that reads as "no address yet".
1687
+ * / ⟨2026-11-03, the pre-gate fixes — spec §7, "child: sign-in — reads yes"⟩ Also the seated sign-in of
1688
+ * / an engram opened through another, as the owner (`AccessControl.requireOwnerOrSignIn`); a first
1689
+ * / engram is unchanged.
1517
1690
  */
1518
- isEvmAddressCached: ActorMethod<[], Result_54>;
1691
+ isEvmAddressCached: ActorMethod<[], Result_56>;
1519
1692
  /**
1520
1693
  * / Issue an OAuth authorization code. Called by an OAuth client's sign-in bridge
1521
1694
  * / (an `/auth/connector`-style route) after II authentication. The client then
@@ -1524,7 +1697,7 @@ export interface Engram {
1524
1697
  * /
1525
1698
  * / Owner-only: only the engram owner can authorize a Connector install.
1526
1699
  */
1527
- issueAuthCode: ActorMethod<[string, string, string, [] | [string]], Result_53>;
1700
+ issueAuthCode: ActorMethod<[string, string, string, [] | [string]], Result_55>;
1528
1701
  /**
1529
1702
  * / ⟨0.16.0⟩ `getCycleSnapshotSource` DELETED — folded into `CycleSnapshot.source`, one label per
1530
1703
  * / ROW. A single label for a whole ring misattributes every row recorded under the other source,
@@ -1540,7 +1713,7 @@ export interface Engram {
1540
1713
  * / DORMANT engram and corrupts retention math — a fabricated empty here does not just misinform a
1541
1714
  * / reader, it feeds a wrong number into a decision about destroying data.
1542
1715
  */
1543
- listActivitySnapshots: ActorMethod<[bigint, bigint], Result_52>;
1716
+ listActivitySnapshots: ActorMethod<[bigint, bigint], Result_54>;
1544
1717
  /**
1545
1718
  * / ⟨2026-10-21, round 11 item l — the owner's answer "round 11: a, b, c, d, e, f, g, h, i, j, k, l,
1546
1719
  * / m."⟩ OWNER-ONLY: what each agent has spent today, beside the daily limit in force for it, so the
@@ -1558,8 +1731,10 @@ export interface Engram {
1558
1731
  * / because the payment path keeps no figure then (`SpendCeiling.AgentSpendRow` says why).
1559
1732
  * / WHAT WOULD MAKE THIS WRONG: `x402SignFor` keeping the per-caller total by something other than
1560
1733
  * / the calling key, or under another day boundary.
1734
+ * / ⟨2026-11-03, the pre-gate fixes — spec §7, "child: sign-in — reads yes"⟩ Also the seated sign-in of
1735
+ * / an engram opened through another, as the owner (`#ownerOrSignIn`); a first engram is unchanged.
1561
1736
  */
1562
- listAgentSpendToday: ActorMethod<[bigint, bigint], Result_51>;
1737
+ listAgentSpendToday: ActorMethod<[bigint, bigint], Result_53>;
1563
1738
  /**
1564
1739
  * / ⟨0.16.0⟩ THE PAGE EXEMPLAR. Trap → `#Refused`, bare array → `Result<Page<T>>` (L1 + L3).
1565
1740
  * /
@@ -1575,8 +1750,10 @@ export interface Engram {
1575
1750
  * /
1576
1751
  * / `withheld` is 0: this roster is owner-only in whole, so there is no partial-visibility case.
1577
1752
  * / A method that filters rows by caller sets it — see L1's row-level honesty rule.
1753
+ * / ⟨2026-11-03, the pre-gate fixes — spec §7, "child: sign-in — reads yes"⟩ Also the seated sign-in of
1754
+ * / an engram opened through another, as the owner (`#ownerOrSignIn`); a first engram is unchanged.
1578
1755
  */
1579
- listAgents: ActorMethod<[bigint, bigint], Result_50>;
1756
+ listAgents: ActorMethod<[bigint, bigint], Result_52>;
1580
1757
  /**
1581
1758
  * / The GUARDIAN-audience projection of the agent roster — three fields, not the full record.
1582
1759
  * /
@@ -1590,7 +1767,7 @@ export interface Engram {
1590
1767
  * / guardian consults BEFORE REVOKING ONE. A fabricated empty here does not merely misinform —
1591
1768
  * / it tells someone acting under emergency powers that there is nothing to act on.
1592
1769
  */
1593
- listAgentsForGuardian: ActorMethod<[bigint, bigint], Result_49>;
1770
+ listAgentsForGuardian: ActorMethod<[bigint, bigint], Result_51>;
1594
1771
  /**
1595
1772
  * / Owner-only: rows carry caller, amount, operation and free-text rationale. The SDK omits it.
1596
1773
  * /
@@ -1604,7 +1781,7 @@ export interface Engram {
1604
1781
  * /
1605
1782
  * / Refusal reason preserved: `[]` reads as "nothing is awaiting the owner's decision".
1606
1783
  */
1607
- listApprovalRequests: ActorMethod<[[] | [ApprovalStatus], bigint, bigint], Result_35>;
1784
+ listApprovalRequests: ActorMethod<[[] | [ApprovalStatus], bigint, bigint], Result_37>;
1608
1785
  /**
1609
1786
  * / ⟨0.16.0⟩ `total` IS THE HEAD COUNTER, and on this method that is the entire point.
1610
1787
  * /
@@ -1640,7 +1817,7 @@ export interface Engram {
1640
1817
  * / at read time; nothing new is stored. WHAT WOULD MAKE THIS WRONG: a sealed row carrying any part
1641
1818
  * / of a body, or a stranger reaching `items` (test/record-view.test.mo pins both).
1642
1819
  */
1643
- listAuditEntries: ActorMethod<[bigint, bigint], Result_48>;
1820
+ listAuditEntries: ActorMethod<[bigint, bigint], Result_50>;
1644
1821
  /**
1645
1822
  * / ⟨0.16.0, L1 + L3 — census-ruled⟩ THE TWO-MECHANISM EXCEPTION DISSOLVES.
1646
1823
  * /
@@ -1666,7 +1843,7 @@ export interface Engram {
1666
1843
  * / keeps its optional filter and applies it to the page, so no caller loses the ability to ask
1667
1844
  * / "backups of this database" — it stops being a thing the canister has to page around.
1668
1845
  */
1669
- listBackups: ActorMethod<[bigint, bigint], Result_47>;
1846
+ listBackups: ActorMethod<[bigint, bigint], Result_49>;
1670
1847
  /**
1671
1848
  * / List all bearer tokens — Active, Revoked, and Expired. Owner uses this in
1672
1849
  * / the dashboard to show installed Connectors (claude.ai, Claude Desktop, etc.).
@@ -1677,8 +1854,10 @@ export interface Engram {
1677
1854
  * / `bearerTokenStore.list()` already resolves each token's status at read time (a token that
1678
1855
  * / merely stopped being used is reported `#Expired`, not a stale `#Active`), so the page carries
1679
1856
  * / the same honesty the store gained on 2026-08-17.
1857
+ * / ⟨2026-11-03, the pre-gate fixes — spec §7, "child: sign-in — reads yes"⟩ Also the seated sign-in of
1858
+ * / an engram opened through another, as the owner (`#ownerOrSignIn`); a first engram is unchanged.
1680
1859
  */
1681
- listBearerTokens: ActorMethod<[bigint, bigint], Result_46>;
1860
+ listBearerTokens: ActorMethod<[bigint, bigint], Result_48>;
1682
1861
  /**
1683
1862
  * / The condense checkpoints in the retained log at or above `startSeq`, oldest first.
1684
1863
  * /
@@ -1690,7 +1869,7 @@ export interface Engram {
1690
1869
  * / Owner-only like every other archive surface, and for the same structural reason: these rows
1691
1870
  * / carry the chain positions and roots of entries whose paths were inside the hash preimage.
1692
1871
  */
1693
- listCondenseCheckpoints: ActorMethod<[bigint, bigint], Result_45>;
1872
+ listCondenseCheckpoints: ActorMethod<[bigint, bigint], Result_47>;
1694
1873
  /**
1695
1874
  * / ⟨0.16.0⟩ `metrics()` DELETED — absorbed by `about()`.
1696
1875
  * /
@@ -1699,13 +1878,13 @@ export interface Engram {
1699
1878
  * / both and know which one owned each field. Every field here survives on `about()`, day-flooring
1700
1879
  * / included.
1701
1880
  */
1702
- listCycleSnapshots: ActorMethod<[bigint, bigint], Result_44>;
1881
+ listCycleSnapshots: ActorMethod<[bigint, bigint], Result_46>;
1703
1882
  /**
1704
1883
  * / Same `withheld` treatment as listMemoryFiles — the tombstone listing filtered reserved paths
1705
1884
  * / for non-owners just as silently, and a caller could not tell a filtered tombstone list from a
1706
1885
  * / complete one. Counted before slicing, so policy-hidden rows never blur into paging.
1707
1886
  */
1708
- listDeletedMemoryFiles: ActorMethod<[bigint, bigint], Result_43>;
1887
+ listDeletedMemoryFiles: ActorMethod<[bigint, bigint], Result_45>;
1709
1888
  /**
1710
1889
  * / Stays on the engram under B1 (hybrid): withdrawal custody does not leave.
1711
1890
  * /
@@ -1721,7 +1900,7 @@ export interface Engram {
1721
1900
  * / The item's field is `value`, not `address`: a list may hold a venue value that is no address.
1722
1901
  * / Readable by the owner, an active agent or an active guardian, as the old list was.
1723
1902
  */
1724
- listEip712Destinations: ActorMethod<[Uint8Array | number[], bigint, bigint], Result_42>;
1903
+ listEip712Destinations: ActorMethod<[Uint8Array | number[], bigint, bigint], Result_44>;
1725
1904
  /**
1726
1905
  * / The registered shapes — E3: encodeTypeString is the display artifact, verbatim.
1727
1906
  * / Stays on the engram under B1 (hybrid): EIP-712 signing is custody, and custody does not leave.
@@ -1734,7 +1913,7 @@ export interface Engram {
1734
1913
  * / from `eip712FieldRules` — they are part of what the type authorises, so a reader of the list must
1735
1914
  * / not have to make a second call to learn them. The row type is `Eip712TypeView`.
1736
1915
  */
1737
- listEip712Types: ActorMethod<[bigint, bigint], Result_41>;
1916
+ listEip712Types: ActorMethod<[bigint, bigint], Result_43>;
1738
1917
  /**
1739
1918
  * / ⟨2026-10-21, round 11 c⟩ Guardians' disputes, oldest first. Same visibility as
1740
1919
  * / `listRepudiations` and `listRecordNotes`: the owner and ACTIVE guardians read the rows; an
@@ -1742,7 +1921,7 @@ export interface Engram {
1742
1921
  * / guardian's entry, not the agent's); a stranger, a pending guardian and the anonymous caller are
1743
1922
  * / refused.
1744
1923
  */
1745
- listGuardianDisputes: ActorMethod<[bigint, bigint], Result_40>;
1924
+ listGuardianDisputes: ActorMethod<[bigint, bigint], Result_42>;
1746
1925
  /**
1747
1926
  * / Accessible by owner and guardians.
1748
1927
  * /
@@ -1751,7 +1930,7 @@ export interface Engram {
1751
1930
  * / pause writes" — a claim about who can STOP it. A caller who cannot tell that from "you may not
1752
1931
  * / see the roster" has been told the engram is unguarded when it may be fully guarded.
1753
1932
  */
1754
- listGuardians: ActorMethod<[bigint, bigint], Result_39>;
1933
+ listGuardians: ActorMethod<[bigint, bigint], Result_41>;
1755
1934
  /**
1756
1935
  * / The export receipts in the retained log at or above `startSeq`, oldest first.
1757
1936
  * /
@@ -1769,7 +1948,7 @@ export interface Engram {
1769
1948
  * / Read `MemoryRouter.ReceiptPage` before reading `page.total` as a receipt count. It is not one;
1770
1949
  * / it is the chain's length, and the declaration says why.
1771
1950
  */
1772
- listMemoryExportReceipts: ActorMethod<[bigint, bigint], Result_38>;
1951
+ listMemoryExportReceipts: ActorMethod<[bigint, bigint], Result_40>;
1773
1952
  /**
1774
1953
  * / ⟨0.16.0⟩ THE `withheld` EXEMPLAR — L1 names this exact method as the defect it fixes.
1775
1954
  * /
@@ -1796,7 +1975,7 @@ export interface Engram {
1796
1975
  * / row served, never one per file stored. A WIDENED REPLY: a reader that decodes the row by
1797
1976
  * / position rather than by field name breaks — none in this repository does.
1798
1977
  */
1799
- listMemoryFiles: ActorMethod<[bigint, bigint], Result_37>;
1978
+ listMemoryFiles: ActorMethod<[bigint, bigint], Result_39>;
1800
1979
  /**
1801
1980
  * / One page of the memory log, seq-ordered, optionally narrowed to one author.
1802
1981
  * /
@@ -1823,7 +2002,7 @@ export interface Engram {
1823
2002
  * / with the disclosures that make the page verifiable — the hidden-bound defect the census itself
1824
2003
  * / names on previewCondense's row.
1825
2004
  */
1826
- listMemoryLog: ActorMethod<[bigint, bigint, [] | [Principal]], Result_36>;
2005
+ listMemoryLog: ActorMethod<[bigint, bigint, [] | [Principal]], Result_38>;
1827
2006
  /**
1828
2007
  * / The caller's OWN spend-approval requests. ⟨0.16.0, L1 + L3 — fixed 2026-08-18⟩
1829
2008
  * /
@@ -1842,7 +2021,7 @@ export interface Engram {
1842
2021
  * / (The unbounded MAP is filed separately — pruning an approval record destroys evidence of what
1843
2022
  * / was asked, which is a retention ruling rather than a shape fix.)
1844
2023
  */
1845
- listMyApprovalRequests: ActorMethod<[bigint, bigint], Result_35>;
2024
+ listMyApprovalRequests: ActorMethod<[bigint, bigint], Result_37>;
1846
2025
  /**
1847
2026
  * / The payer's own sessions, live ones first. PAYER-SCOPED: a caller sees only their own, which
1848
2027
  * / is why this needs no role — a session id is not a secret from the person who paid for it.
@@ -1853,7 +2032,7 @@ export interface Engram {
1853
2032
  * / client would break on — the market paged its own pending withdrawals before its cut for the
1854
2033
  * / same reason. The order is the order sessions were opened.
1855
2034
  */
1856
- listMySessions: ActorMethod<[bigint, bigint], Result_34>;
2035
+ listMySessions: ActorMethod<[bigint, bigint], Result_36>;
1857
2036
  /**
1858
2037
  * /
1859
2038
  * / ⟨0.16.0, L3⟩ Paged and enveloped like every other `list*`, and the envelope here is uniformity
@@ -1868,7 +2047,7 @@ export interface Engram {
1868
2047
  * / IT recorded, so this chain is what a caller composes with when currency matters — which it
1869
2048
  * / cannot do if it needs a role here.
1870
2049
  */
1871
- listOwnershipTransfers: ActorMethod<[bigint, bigint], Result_33>;
2050
+ listOwnershipTransfers: ActorMethod<[bigint, bigint], Result_35>;
1872
2051
  /**
1873
2052
  * / ⟨2026-09-29, the platform's question from the build review⟩ OWNER-ONLY: how many payment
1874
2053
  * / signatures each agent has obtained today, and the daily limit (200, `PaymentSignCap`). The
@@ -1885,8 +2064,10 @@ export interface Engram {
1885
2064
  * / marketplace's one shared count today is in the reply's `marketplace` field, with the limit this
1886
2065
  * / engram enforces for it — beside the agents, never a row among them
1887
2066
  * / (`PaymentSignCap.marketplaceRow`). Null when no marketplace is set.
2067
+ * / ⟨2026-11-03, the pre-gate fixes — spec §7, "child: sign-in — reads yes"⟩ Also the seated sign-in of
2068
+ * / an engram opened through another, as the owner (`#ownerOrSignIn`); a first engram is unchanged.
1888
2069
  */
1889
- listPaymentSignatureCounts: ActorMethod<[bigint, bigint], Result_32>;
2070
+ listPaymentSignatureCounts: ActorMethod<[bigint, bigint], Result_34>;
1890
2071
  /**
1891
2072
  * / Agent records removed by a reset. Each row is a NAMED record with the fields `principal`,
1892
2073
  * / `name`, `registeredAt` and `purgedAt` — read them BY NAME, never by position.
@@ -1927,8 +2108,10 @@ export interface Engram {
1927
2108
  * / `invite` its enrolment named, and `ended` — why and on what day its engagement ended (its own
1928
2109
  * / earlier ending, or the reset) — the facts `resyncAgentEdges` re-sends. The stored rows are
1929
2110
  * / served as they are.
2111
+ * / ⟨2026-11-03, the pre-gate fixes — spec §7, "child: sign-in — reads yes"⟩ Also the seated sign-in of
2112
+ * / an engram opened through another, as the owner (`#ownerOrSignIn`); a first engram is unchanged.
1930
2113
  */
1931
- listPurgedAgents: ActorMethod<[bigint, bigint], Result_31>;
2114
+ listPurgedAgents: ActorMethod<[bigint, bigint], Result_33>;
1932
2115
  /**
1933
2116
  * / ⟨0.16.0⟩ ONE ACCESSOR, folding `readReadLog` and `getDenialLog` — and the fold only became
1934
2117
  * / safe because of a change made earlier in this same leg.
@@ -1991,7 +2174,7 @@ export interface Engram {
1991
2174
  * / on the chained record — the same `RecordView` filter, and `withheld` counts what it removed
1992
2175
  * / together with what `successFilter` removed. WHAT WOULD MAKE THIS WRONG: see `listAuditEntries`.
1993
2176
  */
1994
- listReadLog: ActorMethod<[[] | [boolean], bigint, bigint], Result_30>;
2177
+ listReadLog: ActorMethod<[[] | [boolean], bigint, bigint], Result_32>;
1995
2178
  /**
1996
2179
  * / ⟨2026-10-21, round 11 b⟩ The owner's notes, oldest first. Same visibility as
1997
2180
  * / `listRepudiations`, for the same reason: the owner and ACTIVE guardians read the rows; an agent
@@ -1999,7 +2182,7 @@ export interface Engram {
1999
2182
  * / gets an empty page whose `withheld` counts the notes in its window — never "there are none". A
2000
2183
  * / stranger, a pending guardian and the anonymous caller are refused.
2001
2184
  */
2002
- listRecordNotes: ActorMethod<[bigint, bigint], Result_29>;
2185
+ listRecordNotes: ActorMethod<[bigint, bigint], Result_31>;
2003
2186
  /**
2004
2187
  * / Same visibility as listAuditEntries: the owner, this engram's agents, and ACTIVE guardians
2005
2188
  * / see disputes. An unauthorized read REFUSES — it does not return an empty list, because an
@@ -2016,7 +2199,16 @@ export interface Engram {
2016
2199
  * / WOULD MAKE THIS WRONG: a ruling that an agent may see the disputes of its own writes; this would
2017
2200
  * / then have to look up each disputed version's writer, which it does not do today.
2018
2201
  */
2019
- listRepudiations: ActorMethod<[bigint, bigint], Result_28>;
2202
+ listRepudiations: ActorMethod<[bigint, bigint], Result_30>;
2203
+ /**
2204
+ * / The seller list, a page at a time, as `Types.SellerView` (a raise whose wait is over shown applied;
2205
+ * / `liveNow` — false for every row while an engram opened through another has no sign-in seated; what
2206
+ * / x402 reserved for each today). For the key file and the sign-in in an engram opened
2207
+ * / through another, the owner in a first engram; refused loudly to anyone else — never an empty page,
2208
+ * / which would read as "no sellers". A QUERY: the refusal is in the reply, not the denial log.
2209
+ * / Named callers: an owner console's seller list.
2210
+ */
2211
+ listSellers: ActorMethod<[bigint, bigint], Result_29>;
2020
2212
  /**
2021
2213
  * / ⟨2026-10-21, the owner's round-11 answer f⟩ OWNER-ONLY: the sign-ins, each with the name its app
2022
2214
  * / registered. The same tokens, in the same order and paged the same way, as `listBearerTokens`,
@@ -2026,8 +2218,10 @@ export interface Engram {
2026
2218
  * / apps apart. A NEW method rather than a field on `BearerToken`: that record is stored (M0170)
2027
2219
  * / and `listBearerTokens`' reply is shipped (never widened). An agent, a guardian, a stranger and
2028
2220
  * / the anonymous caller are refused, by `listBearerTokens`' own gate and for its reason.
2221
+ * / ⟨2026-11-03, the pre-gate fixes — spec §7, "child: sign-in — reads yes"⟩ Also the seated sign-in of
2222
+ * / an engram opened through another, as the owner (`#ownerOrSignIn`); a first engram is unchanged.
2029
2223
  */
2030
- listSignIns: ActorMethod<[bigint, bigint], Result_27>;
2224
+ listSignIns: ActorMethod<[bigint, bigint], Result_28>;
2031
2225
  /**
2032
2226
  * / Owner: advance the review cursor — "I have seen everything up to and including uptoAuditId"
2033
2227
  * / (null = everything at the current head). Bounded so the attestation can never cover entries
@@ -2039,7 +2233,7 @@ export interface Engram {
2039
2233
  * / and this never inspects an operation or a role. Widening what the review shows therefore
2040
2234
  * / changes only which ids the console can pass here — it cannot desynchronise the cursor.
2041
2235
  */
2042
- markAgentWritesReviewed: ActorMethod<[[] | [bigint]], Result_14>;
2236
+ markAgentWritesReviewed: ActorMethod<[[] | [bigint]], Result_15>;
2043
2237
  /**
2044
2238
  * / ⟨2026-10-21, the owner's round-11 answer g⟩ AN AGENT READS ITS OWN GRANT — to the calling key
2045
2239
  * / only (`People.AgentGrant`): what it may read, where it may write, its rate, and the payment
@@ -2059,7 +2253,7 @@ export interface Engram {
2059
2253
  * / ⟨2026-10-29, review F2⟩ And which whole-key refusal stops every payment now, if one does
2060
2254
  * / (`paymentsStoppedBy`: the brake, the signing floor, the daily count of payment signatures).
2061
2255
  */
2062
- myGrant: ActorMethod<[], Result_26>;
2256
+ myGrant: ActorMethod<[], Result_27>;
2063
2257
  /**
2064
2258
  * / The AGENT's current key nominates the key that will replace it. Nothing moves yet: the new
2065
2259
  * / key must accept, by its own call, within 24 hours (`acceptAgentKeyNomination`). One pending
@@ -2070,7 +2264,7 @@ export interface Engram {
2070
2264
  nominateAgentKey: ActorMethod<[Principal], Result_2>;
2071
2265
  /**
2072
2266
  * / An AGENT paired here asks this engram to open an engram of its own. This engram attaches 1.3 T of
2073
- * / its own cycles to the registry's `sysSpawnChild`; the agent's lasting key owns what is opened, and
2267
+ * / its own cycles to the registry's `sysOpenChild`; the agent's lasting key owns what is opened, and
2074
2268
  * / the engram is recorded as opened through this one. Answers the new engram's canister id.
2075
2269
  * /
2076
2270
  * / APPROVING IS GIVING: the owner allowed this with `setChildAllowance`, and what is attached is the
@@ -2097,9 +2291,30 @@ export interface Engram {
2097
2291
  * /
2098
2292
  * / WHAT WOULD MAKE THIS WRONG: an await added between `ChildAllowance.take` and the registry call; the
2099
2293
  * / registry's `CHILD_MIN_ATTACHED_CYCLES` moving without `CHILD_ATTACH_CYCLES`.
2100
- */
2101
- openChildEngram: ActorMethod<[], Result_25>;
2102
- openSession: ActorMethod<[SessionConfig, PaymentSignature], Result_24>;
2294
+ * /
2295
+ * / ⟨2026-11-02, the owner's ruling "1-4 all as you recommended" (the child build's stage 2)⟩ THE
2296
+ * / SIGN-IN. `signIn` names the opened engram's sign-in — the person running the agent, on a second
2297
+ * / credential; null opens it with none, and it then keeps small limits for life. It goes to the
2298
+ * / registry's door and from there into the opened engram's init record, so that engram never runs a
2299
+ * / message without it. Refused here first, with no await and before the allowance is taken, by the
2300
+ * / door's own three rules (`OwnerSignIn.candidateRefusal`): the agent's lasting key itself, the
2301
+ * / anonymous principal, a canister — so the agent sees the refusal before any cycles move. The
2302
+ * / record entry says `signIn=set` or `signIn=none`, never the principal.
2303
+ * / ⟨2026-11-02, the stage-2 review M3, beside the above⟩ And a fourth, the door's own: the key this
2304
+ * / call is signed by — the agent's session key — is refused as the sign-in too
2305
+ * / (`OwnerSignIn.agentKeyRefusal`), at the same place.
2306
+ * /
2307
+ * / ⟨2026-11-02, the child build's stage 2 — RENAMED from `openChildEngram`, beside the paragraphs
2308
+ * / above, which describe the same door⟩ It was `openChildEngram()`, with no argument. A second
2309
+ * / positional argument would grow its argument tuple, and a shipped tuple is frozen (evolution
2310
+ * / happens inside records), so the door takes ONE record whose later fields are optional, under a
2311
+ * / new name — the shape the registry's own door took the same day (`sysSpawnChild` →
2312
+ * / `sysOpenChild`). An rc.21 kit calling the old name is rejected
2313
+ * / (IC0536) with nothing spent; it can never open an engram without a sign-in by accident.
2314
+ * / Named caller: the owner kit's `open-engram` command, signed by the agent's session key.
2315
+ */
2316
+ openChild: ActorMethod<[{ signIn: [] | [Principal] }], Result_26>;
2317
+ openSession: ActorMethod<[SessionConfig, PaymentSignature], Result_25>;
2103
2318
  /**
2104
2319
  * / Withdraw tokens to the owner's principal. This is the ONLY way to
2105
2320
  * / move tokens out of the engram to an external address, and the
@@ -2107,7 +2322,7 @@ export interface Engram {
2107
2322
  * / NOT freeze-gated: the owner always controls their own funds.
2108
2323
  * / Guardian freeze only blocks agent/public operations.
2109
2324
  */
2110
- ownerWithdraw: ActorMethod<[TokenAmount, [] | [ActionAuth]], Result_14>;
2325
+ ownerWithdraw: ActorMethod<[TokenAmount, [] | [ActionAuth]], Result_15>;
2111
2326
  /**
2112
2327
  * / ⟨0.16.0⟩ `payRentFromEarnings` DELETED — ruled TWICE (B1 and B2), and it was the single
2113
2328
  * / clearest violation of the OSS/platform split in this repo.
@@ -2164,7 +2379,7 @@ export interface Engram {
2164
2379
  * / engagement on the agent's track record, and what to do. Before, the reply was `#Ok` with the
2165
2380
  * / record alone even when the registry had refused the start, so the agent was never told.
2166
2381
  */
2167
- pairAgent: ActorMethod<[{ enrolment: Enrolment; code: string }], Result_23>;
2382
+ pairAgent: ActorMethod<[{ enrolment: Enrolment; code: string }], Result_24>;
2168
2383
  /**
2169
2384
  * / ⟨0.16.0, L2.2 — renamed from `guardianPauseWrites`⟩ Same correction as freezePayments above:
2170
2385
  * / owner-or-guardian, and `resumeWrites` never carried the prefix either.
@@ -2195,7 +2410,7 @@ export interface Engram {
2195
2410
  * / `unlocked` is the export-receipt gate ONLY. It is not a promise the condense will land: the
2196
2411
  * / history-budget delta is checked at commit time and can still refuse a short prefix.
2197
2412
  */
2198
- previewCondense: ActorMethod<[bigint], Result_22>;
2413
+ previewCondense: ActorMethod<[bigint], Result_23>;
2199
2414
  /**
2200
2415
  * / A quote for a session this caller has not opened and is not committed to — the intent a
2201
2416
  * / buyer signs against. Pure dry run, no state, no funds.
@@ -2243,8 +2458,10 @@ export interface Engram {
2243
2458
  * / takes effect change it.
2244
2459
  * / HONEST WHEN CUT SHORT: `complete = false` when the planning budget
2245
2460
  * / (`MemoryRouter.PREVIEW_MAX_DROPS`) ran out — the totals are then a floor, and say so.
2461
+ * / ⟨2026-11-03, the pre-gate fixes — spec §7, "child: sign-in — reads yes"⟩ Also the seated sign-in of
2462
+ * / an engram opened through another, as the owner (`#ownerOrSignIn`); a first engram is unchanged.
2246
2463
  */
2247
- previewRetention: ActorMethod<[Array<[string, RetentionClassSpec]>], Result_21>;
2464
+ previewRetention: ActorMethod<[Array<[string, RetentionClassSpec]>], Result_22>;
2248
2465
  /**
2249
2466
  * / Read one memory file at its current version.
2250
2467
  * /
@@ -2261,7 +2478,7 @@ export interface Engram {
2261
2478
  * / (`sessionReadContext` and the MCP reads). A caller measuring engram usage from this method
2262
2479
  * / will measure nothing.
2263
2480
  */
2264
- readMemory: ActorMethod<[string], Result_12>;
2481
+ readMemory: ActorMethod<[string], Result_13>;
2265
2482
  /**
2266
2483
  * / Read many paths in one call. Per-path Results are KEPT — partial success is the point, and
2267
2484
  * / one unreadable path must not fail the other nine.
@@ -2279,7 +2496,7 @@ export interface Engram {
2279
2496
  * / path, each with its own Result — a refused RESERVED path sits beside a readable one, which is
2280
2497
  * / a genuine per-path fact.
2281
2498
  */
2282
- readMemoryBatch: ActorMethod<[Array<string>], Result_20>;
2499
+ readMemoryBatch: ActorMethod<[Array<string>], Result_21>;
2283
2500
  /**
2284
2501
  * / ⟨0.16.0⟩ `getMemoryRetentionGuards` DELETED — folded into `getMemoryRetentionPolicy` above.
2285
2502
  * / It was the second L2.1 array-returning `get*`, and separating it from the policy it modifies
@@ -2291,7 +2508,7 @@ export interface Engram {
2291
2508
  * / see it cannot know whether it has the whole range, which is how silent truncation gets
2292
2509
  * / reintroduced. Loop while `more` is true, advancing by the bytes actually returned.
2293
2510
  */
2294
- readMemoryBytes: ActorMethod<[string, bigint, bigint, [] | [bigint]], Result_19>;
2511
+ readMemoryBytes: ActorMethod<[string, bigint, bigint, [] | [bigint]], Result_20>;
2295
2512
  /**
2296
2513
  * / The escrow exit for a session whose settle cannot pay.
2297
2514
  * /
@@ -2356,7 +2573,7 @@ export interface Engram {
2356
2573
  * / the amount can be read back — a session closed in the same moment as the recovery and cleaned up
2357
2574
  * / during its transfer — it answers `#Other` naming the block, never a guessed amount.
2358
2575
  */
2359
- recoverEscrow: ActorMethod<[string, bigint], Result_18>;
2576
+ recoverEscrow: ActorMethod<[string, bigint], Result_19>;
2360
2577
  /**
2361
2578
  * / ⟨0.16.0, L1⟩ A REDEMPTION PATH, where the arm choice is a disclosure decision.
2362
2579
  * /
@@ -2372,7 +2589,7 @@ export interface Engram {
2372
2589
  * / owner's invite gave them and that they cannot act until approved; before, that took a second
2373
2590
  * / read they had no reason to know to make.
2374
2591
  */
2375
- registerGuardian: ActorMethod<[string], Result_17>;
2592
+ registerGuardian: ActorMethod<[string], Result_18>;
2376
2593
  /**
2377
2594
  * / Remove a per-caller override so that caller reverts to — and keeps TRACKING — the global caps.
2378
2595
  * /
@@ -2411,6 +2628,15 @@ export interface Engram {
2411
2628
  * / line, so the roster is theirs and its contents are not a secret being withheld from them.
2412
2629
  */
2413
2630
  removeGuardian: ActorMethod<[Principal], Result_2>;
2631
+ /**
2632
+ * / Remove a listed seller, at once: from now a payment to it meets the engram-wide ceiling and the
2633
+ * / paying agent's own limits again, and adding it back waits 24 hours. Removing TIGHTENS, so the key
2634
+ * / file may do it as well as the sign-in, and it works while payments are frozen. Its "paid before"
2635
+ * / history is kept (that is about the address, not the row). Unknown address `#NotFound`.
2636
+ * / Named callers: an owner console's seller list, and the owner kit (the key file's way to stop a
2637
+ * / seller).
2638
+ */
2639
+ removeSeller: ActorMethod<[string], Result_2>;
2414
2640
  /**
2415
2641
  * / ⟨2026-10-21, the owner's round-11 answer a⟩ OWNER-ONLY: give an agent a new name. A name was
2416
2642
  * / fixed at the invite, and two agents both called "agent" is how the 2026-10-20 session started.
@@ -2429,7 +2655,7 @@ export interface Engram {
2429
2655
  * / the original audit entry stay exactly where they were; this appends a chained
2430
2656
  * / `memory.repudiate` entry and lists the (path, version) so readers can see the dispute.
2431
2657
  */
2432
- repudiateMemoryWrite: ActorMethod<[string, bigint, string], Result_14>;
2658
+ repudiateMemoryWrite: ActorMethod<[string, bigint, string], Result_15>;
2433
2659
  /**
2434
2660
  * / ⚠ OWNER-ONLY BULK RESET. Destructive, and wider than its name suggests.
2435
2661
  * /
@@ -2449,6 +2675,10 @@ export interface Engram {
2449
2675
  * / · ⟨2026-10-02⟩ the seat weeks of every engagement (`agentSeatWeeks`), with the signature count
2450
2676
  * / they sit beside, and the owner's switch over the metrics reader's read and the reader it
2451
2677
  * / names — a reset severs access, it does not change who may read what was kept.
2678
+ * / · ⟨2026-11-02, the child build — decided "unless you object", recorded at stage 5⟩ the seller
2679
+ * / list and the paid history (`listSellers`, `getRecipientHistory`), as the typed-data
2680
+ * / destinations are kept: a reset severs access, it does not forget which counterparties the
2681
+ * / owner approved or which addresses this engram has paid.
2452
2682
  * /
2453
2683
  * / ⟨2026-10-02⟩ It tells the spawning registry that it happened (`sysNoteReset`), on every reset.
2454
2684
  * /
@@ -2459,7 +2689,7 @@ export interface Engram {
2459
2689
  * / long-lived enough for the rent model to apply, the reset entry is not guaranteed to still be
2460
2690
  * / there. `agentPurgeLog` is the evidence that does not age out — which is why it exists.
2461
2691
  */
2462
- resetEngram: ActorMethod<[], Result_16>;
2692
+ resetEngram: ActorMethod<[], Result_17>;
2463
2693
  /**
2464
2694
  * / ⟨2026-09-28, owner decision: an agent can resign from an engram, and the resignation is
2465
2695
  * / recorded⟩ The AGENT ends its own engagement with this engram.
@@ -2511,7 +2741,7 @@ export interface Engram {
2511
2741
  * / each such engagement under `cannotBeRecorded` (key, root, invite, and how and when it ended),
2512
2742
  * / apart from `notRecorded`, so the owner sees them rather than silence.
2513
2743
  */
2514
- resyncAgentEdges: ActorMethod<[], Result_15>;
2744
+ resyncAgentEdges: ActorMethod<[], Result_16>;
2515
2745
  /**
2516
2746
  * / Return to managed custody: the engram adds the registry back as a controller ALONGSIDE the
2517
2747
  * / owner — it does not remove the owner. The inverse of `claimSovereignty`, and the reason
@@ -2573,7 +2803,7 @@ export interface Engram {
2573
2803
  * / that fails leaves the agents revoked here regardless — a partial notify is not a partial
2574
2804
  * / revocation, which is the direction that matters for a panic button.
2575
2805
  */
2576
- revokeAllAgents: ActorMethod<[], Result_14>;
2806
+ revokeAllAgents: ActorMethod<[], Result_15>;
2577
2807
  /**
2578
2808
  * / Owner-only panic button: revoke every connector bearer token at once. Returns how many.
2579
2809
  * /
@@ -2584,7 +2814,7 @@ export interface Engram {
2584
2814
  * /
2585
2815
  * / Tokens are re-issuable: revoking them is not permanent the way revoking an agent is.
2586
2816
  */
2587
- revokeAllBearerTokens: ActorMethod<[], Result_14>;
2817
+ revokeAllBearerTokens: ActorMethod<[], Result_15>;
2588
2818
  /**
2589
2819
  * / ⟨0.16.0⟩ `removeAllGuardians` DELETED — test-only (L6), and verified NOT part of KILL-SWITCH's
2590
2820
  * / mass-revoke set. The destructive phase-07 suite iterates `removeGuardian` instead, so nothing
@@ -2598,7 +2828,7 @@ export interface Engram {
2598
2828
  * / Unlike revoking an agent, this costs nothing permanently — an invite is a one-time code,
2599
2829
  * / so voiding it and minting a fresh one is the ordinary path.
2600
2830
  */
2601
- revokeAllInvites: ActorMethod<[], Result_14>;
2831
+ revokeAllInvites: ActorMethod<[], Result_15>;
2602
2832
  /**
2603
2833
  * / Revoke a bearer token by its public tokenId. Idempotent.
2604
2834
  * / Subsequent /mcp requests using this token will be rejected.
@@ -2631,6 +2861,34 @@ export interface Engram {
2631
2861
  * / agent reading `#Refused` would go looking for a permission that was never missing.
2632
2862
  */
2633
2863
  rotateAgentKeyHash: ActorMethod<[string], Result_2>;
2864
+ /**
2865
+ * / Send money from this engram's wallet to the engram it was opened through — "up", and only up:
2866
+ * / the destination is always the parent engram's own default account, never an address the caller
2867
+ * / names. ANY amount (the owner's ruling "B"); the answer is the ledger's block index.
2868
+ * /
2869
+ * / WHO: the owner's key file or the sign-in, in an engram opened through another (the build's
2870
+ * / resolution L14: both may send — the key file's honest sweep needs it, and the sign-in may sweep
2871
+ * / too); refused to anyone else. In a first engram there is nothing above it, and it refuses with
2872
+ * / `#Conflict`. NOT freeze-gated: up is not out, so a payments freeze does not stop it.
2873
+ * /
2874
+ * / ORDER: the caller, then the parent from this engram's own birth record (`openedFrom`, no await),
2875
+ * / then ONE call to the registry — refused unless the registry shows the parent registered, active
2876
+ * / and not abandoned (`#Refused`; the registry unreachable is `#Unavailable`; nothing sent either
2877
+ * / way) — then ONE ledger transfer, the same per-token ledger as `ownerWithdraw`. Both calls are
2878
+ * / counted (ADR-0025), so near its freezing line this engram may be unable to send the registry
2879
+ * / call at all; it then answers `#Unavailable` and nothing moves.
2880
+ * /
2881
+ * / NO RE-CHECK between the two calls, deliberately: the parent can be abandoned in between, and the
2882
+ * / money then sits in an existing canister whose owner can still withdraw it. Guarding that window
2883
+ * / would need a third call and buys nothing the owner of the parent does not already have.
2884
+ * /
2885
+ * / NOT INCOME. The parent's track record is engagements, standing, seat-weeks and counts of use, and
2886
+ * / signature counts count signatures; nothing reads a ledger balance, and this method calls none of
2887
+ * / those writers (test/child-sign-in-wiring.test.ts rule 13). Written to the record as
2888
+ * / `wallet.sendToParent` (money class), with the amount, the token, the parent and the block.
2889
+ * / Named callers: the owner kit, signed by the key file; an owner console, signed in as the sign-in.
2890
+ */
2891
+ sendToParent: ActorMethod<[TokenAmount], Result_15>;
2634
2892
  /**
2635
2893
  * / Append to a memory file against a PAID x402 session voucher — the write half of the paid rail,
2636
2894
  * / authorized by the voucher rather than by a role.
@@ -2677,7 +2935,7 @@ export interface Engram {
2677
2935
  * / CIPHERTEXT; the key-holding SDK decrypts it. A caller without the key gets bytes it cannot
2678
2936
  * / read, not an error.
2679
2937
  */
2680
- sessionReadContext: ActorMethod<[string], Result_13>;
2938
+ sessionReadContext: ActorMethod<[string], Result_14>;
2681
2939
  /**
2682
2940
  * / Read one memory file against a PAID x402 session voucher. No role, no invite — the voucher is
2683
2941
  * / the authorization, which is what makes this the engram's one rail a stranger can pay to use.
@@ -2709,7 +2967,7 @@ export interface Engram {
2709
2967
  * / cent voucher could read `secrets/*`.
2710
2968
  * / · Payments are frozen on this engram.
2711
2969
  */
2712
- sessionReadMemory: ActorMethod<[Voucher, string], Result_12>;
2970
+ sessionReadMemory: ActorMethod<[Voucher, string], Result_13>;
2713
2971
  /**
2714
2972
  * / Configure action alerts: an https webhook that receives new chained-audit entries matching the
2715
2973
  * / enabled event classes (money / approvals / guardian / agentWrites), batched, at most one
@@ -2763,7 +3021,7 @@ export interface Engram {
2763
3021
  * / across all of them. "The write is the read" above went stale for a second phone, which never
2764
3022
  * / made the write: `getBackupRetention` is the read.
2765
3023
  */
2766
- setBackupRetention: ActorMethod<[string, bigint], Result_11>;
3024
+ setBackupRetention: ActorMethod<[string, bigint], Result_12>;
2767
3025
  /**
2768
3026
  * / Override the caps for ONE caller — an agent this owner trusts more, or less, than the rest.
2769
3027
  */
@@ -2842,6 +3100,18 @@ export interface Engram {
2842
3100
  * / only cost is a delay on keeping MORE, which destroys nothing.
2843
3101
  */
2844
3102
  setMemoryRetentionPolicy: ActorMethod<[Array<[string, RetentionClassSpec]>], Result_2>;
3103
+ /**
3104
+ * / The SIGN-IN changes itself to `next` — "changeable only by itself". Immediate (a delay would need
3105
+ * / a third credential to cut it short). The key file is refused by name: it never names a sign-in,
3106
+ * / or a thief holding a copy would name themselves. A first engram refuses: its owner is its own
3107
+ * / sign-in. `next` must pass the door's rules and not be an agent or a guardian here. When this
3108
+ * / engram holds a sealed copy of the owner's key, `resealedBackup` is that copy re-sealed for `next`
3109
+ * / (the sign-in opens it and re-seals it client-side) and is stored in the same message, so the copy
3110
+ * / never names a sign-in that is not this engram's; with no copy held, none may be passed. Not
3111
+ * / blocked by a freeze: a freeze must not lock the sign-in out of itself.
3112
+ * / Named caller: an owner console, signed in as the sign-in ("change your sign-in").
3113
+ */
3114
+ setOwnerSignIn: ActorMethod<[Principal, [] | [Uint8Array | number[]]], Result_2>;
2845
3115
  /**
2846
3116
  * / Owner-only: open or close the monetized read rail. When disabled (the default), sessionReadMemory
2847
3117
  * / fails closed for every voucher-bearer — selling the owner's memory is opt-in, not the default.
@@ -2880,6 +3150,15 @@ export interface Engram {
2880
3150
  * / when the read was on or off is part of the record. Anyone else is refused by name.
2881
3151
  */
2882
3152
  setSeatWeeksReadEnabled: ActorMethod<[boolean], Result_2>;
3153
+ /**
3154
+ * / Change a listed seller's daily cap. A LOWER (or equal) cap applies at once and cancels a raise that
3155
+ * / was waiting; a HIGHER cap waits 24 hours, as a new seller does (the cap in force until then is the
3156
+ * / old one, and a second raise restarts the wait). Answers when the new cap applies. The sign-in only,
3157
+ * / in an engram opened through another; the owner in a first engram. A raise is refused while payments
3158
+ * / are frozen; a lowering is not. Unknown address `#NotFound`; a cap of 0 `#Invalid` (remove instead).
3159
+ * / Named callers: an owner console's seller list, as `addSeller`.
3160
+ */
3161
+ setSellerCap: ActorMethod<[string, bigint], Result_11>;
2883
3162
  /**
2884
3163
  * / Set the most this engram may spend per day ACROSS EVERY CALLER — five agents, the owner and the
2885
3164
  * / marketplace together. `null` removes the ceiling. ⟨2026-09-28⟩
@@ -2983,6 +3262,14 @@ export interface Engram {
2983
3262
  * / ⟨0.16.0⟩ PERSISTS beside the market's `sysSignEip712` (census row 177, ruled). The owner does
2984
3263
  * / not lose the ability to sign because a marketplace gained it, and the two share every control
2985
3264
  * / below the caller gate.
3265
+ * /
3266
+ * / ⟨2026-11-02, the owner's ruling "1-4 all as you recommended" (the sign-in "approves trading keys")
3267
+ * / — the child build's stage 5⟩ In an engram opened through another, a type named
3268
+ * / `HyperliquidTransaction:ApproveAgent` (`Eip712Policy.childSignInOnlyToSign`) is signed by the
3269
+ * / sign-in alone: the key file is refused it by name, and the sign-in may sign it (as the owner, on
3270
+ * / the record). Every other type is the key file's to sign, as before. An access check beside the
3271
+ * / owner gate, keyed by the registered NAME, before any of `eip712SignFor`'s eight checks; a first
3272
+ * / engram is untouched (its owner is its own sign-in).
2986
3273
  */
2987
3274
  signEip712: ActorMethod<[Uint8Array | number[], Array<[string, Eip712Value]>], Result_5>;
2988
3275
  /**
@@ -3085,6 +3372,17 @@ export interface Engram {
3085
3372
  * / the same person again.
3086
3373
  */
3087
3374
  stepDownAsGuardian: ActorMethod<[], Result_2>;
3375
+ /**
3376
+ * / The key file stores the sealed copy of its own key — once, right after the engram is opened,
3377
+ * / sealed by the owner kit for the sign-in named at birth. Refused in a first engram, when no
3378
+ * / sign-in is seated (nobody could open it), when a copy is already held (set-once: a thief holding
3379
+ * / the same file cannot overwrite the honest copy; a later sign-in's copy arrives through
3380
+ * / `setOwnerSignIn`'s re-seal or `acceptSignIn`), and for an empty or oversized blob
3381
+ * / (`OwnerSignIn.storeRefusal`). The engram stamps whom the copy is for from its own sign-in — the
3382
+ * / caller never names it. Not blocked by a freeze: storing a recovery path loosens nothing.
3383
+ * / Named caller: the owner kit, signed by the agent's lasting key, right after it opens the engram.
3384
+ */
3385
+ storeKeyBackup: ActorMethod<[Uint8Array | number[]], Result_2>;
3088
3386
  /**
3089
3387
  * / OWNER force-close, for a session the payer abandoned.
3090
3388
  * /
@@ -3386,6 +3684,10 @@ export interface Engram {
3386
3684
  * /
3387
3685
  * / That is what "signatures only" means in code, and it is why this method needs no new authority
3388
3686
  * / model: an unregistered typeId is refused for the market exactly as it is for the owner.
3687
+ * /
3688
+ * / ⟨2026-11-02, the child build's stage 5⟩ In an engram opened through another, approving a trading
3689
+ * / key (`HyperliquidTransaction:ApproveAgent`) is refused to the market (`#Refused`): it is signed by
3690
+ * / that engram's sign-in alone, through `signEip712`.
3389
3691
  */
3390
3692
  sysSignEip712: ActorMethod<[Uint8Array | number[], Array<[string, Eip712Value]>], Result_5>;
3391
3693
  /**
@@ -3639,6 +3941,13 @@ export interface Ic402Maintenance {
3639
3941
  rateLimitRemoved: bigint;
3640
3942
  lastRunAtNs: bigint;
3641
3943
  }
3944
+ export interface KeyBackupStatus {
3945
+ matchesSignIn: boolean;
3946
+ copyWaitsWithAsk: boolean;
3947
+ sealed: boolean;
3948
+ sealedFor: [] | [Principal];
3949
+ sealedAtNs: [] | [bigint];
3950
+ }
3642
3951
  export interface KeyNomination {
3643
3952
  key: Principal;
3644
3953
  atNs: bigint;
@@ -3646,7 +3955,7 @@ export interface KeyNomination {
3646
3955
  export interface LogPage {
3647
3956
  firstAvailableSeq: bigint;
3648
3957
  head: Uint8Array | number[];
3649
- page: Page_9;
3958
+ page: Page_10;
3650
3959
  }
3651
3960
  export interface LogPosition {
3652
3961
  reads: bigint;
@@ -3828,6 +4137,15 @@ export interface OwnerRow {
3828
4137
  produced: bigint;
3829
4138
  firstPaymentDay: [] | [bigint];
3830
4139
  }
4140
+ export interface OwnerSignInView {
4141
+ askedAtNs: [] | [bigint];
4142
+ openedFrom: [] | [Principal];
4143
+ declinedAtNs: [] | [bigint];
4144
+ callerIsSignIn: boolean;
4145
+ declinedBy: [] | [Principal];
4146
+ callerIsAsked: boolean;
4147
+ ownerSignIn: [] | [Principal];
4148
+ }
3831
4149
  export interface OwnershipTransfer {
3832
4150
  to: Principal;
3833
4151
  atNs: bigint;
@@ -3842,89 +4160,94 @@ export interface Page {
3842
4160
  export interface Page_1 {
3843
4161
  total: bigint;
3844
4162
  withheld: bigint;
3845
- items: Array<Repudiation>;
4163
+ items: Array<SellerView>;
3846
4164
  }
3847
4165
  export interface Page_10 {
3848
4166
  total: bigint;
3849
4167
  withheld: bigint;
3850
- items: Array<MemoryFileRow>;
4168
+ items: Array<MemoryLogEvent>;
3851
4169
  }
3852
4170
  export interface Page_11 {
3853
4171
  total: bigint;
3854
4172
  withheld: bigint;
3855
- items: Array<ExportReceiptRow>;
4173
+ items: Array<MemoryFileRow>;
3856
4174
  }
3857
4175
  export interface Page_12 {
3858
4176
  total: bigint;
3859
4177
  withheld: bigint;
3860
- items: Array<GuardianRecord>;
4178
+ items: Array<ExportReceiptRow>;
3861
4179
  }
3862
4180
  export interface Page_13 {
3863
4181
  total: bigint;
3864
4182
  withheld: bigint;
3865
- items: Array<GuardianDispute>;
4183
+ items: Array<GuardianRecord>;
3866
4184
  }
3867
4185
  export interface Page_14 {
3868
4186
  total: bigint;
3869
4187
  withheld: bigint;
3870
- items: Array<Eip712TypeView>;
4188
+ items: Array<GuardianDispute>;
3871
4189
  }
3872
4190
  export interface Page_15 {
3873
4191
  total: bigint;
3874
4192
  withheld: bigint;
3875
- items: Array<Eip712Destination>;
4193
+ items: Array<Eip712TypeView>;
3876
4194
  }
3877
4195
  export interface Page_16 {
3878
4196
  total: bigint;
3879
4197
  withheld: bigint;
3880
- items: Array<string>;
4198
+ items: Array<Eip712Destination>;
3881
4199
  }
3882
4200
  export interface Page_17 {
3883
4201
  total: bigint;
3884
4202
  withheld: bigint;
3885
- items: Array<CycleSnapshot>;
4203
+ items: Array<string>;
3886
4204
  }
3887
4205
  export interface Page_18 {
3888
4206
  total: bigint;
3889
4207
  withheld: bigint;
3890
- items: Array<CondenseCheckpointRow>;
4208
+ items: Array<CycleSnapshot>;
3891
4209
  }
3892
4210
  export interface Page_19 {
3893
4211
  total: bigint;
3894
4212
  withheld: bigint;
3895
- items: Array<BearerToken>;
4213
+ items: Array<CondenseCheckpointRow>;
3896
4214
  }
3897
4215
  export interface Page_2 {
3898
4216
  total: bigint;
3899
4217
  withheld: bigint;
3900
- items: Array<RecordNote>;
4218
+ items: Array<Repudiation>;
3901
4219
  }
3902
4220
  export interface Page_20 {
3903
4221
  total: bigint;
3904
4222
  withheld: bigint;
3905
- items: Array<BackupMetadata>;
4223
+ items: Array<BearerToken>;
3906
4224
  }
3907
4225
  export interface Page_21 {
3908
4226
  total: bigint;
3909
4227
  withheld: bigint;
3910
- items: Array<{ status: AgentStatus; principal: Principal; name: string }>;
4228
+ items: Array<BackupMetadata>;
3911
4229
  }
3912
4230
  export interface Page_22 {
3913
4231
  total: bigint;
3914
4232
  withheld: bigint;
3915
- items: Array<AgentRecord>;
4233
+ items: Array<{ status: AgentStatus; principal: Principal; name: string }>;
3916
4234
  }
3917
4235
  export interface Page_23 {
3918
4236
  total: bigint;
3919
4237
  withheld: bigint;
3920
- items: Array<AgentSpendRow>;
4238
+ items: Array<AgentRecord>;
3921
4239
  }
3922
4240
  export interface Page_24 {
3923
4241
  total: bigint;
3924
4242
  withheld: bigint;
3925
- items: Array<ActivitySnapshot>;
4243
+ items: Array<AgentSpendRow>;
3926
4244
  }
3927
4245
  export interface Page_25 {
4246
+ total: bigint;
4247
+ withheld: bigint;
4248
+ items: Array<ActivitySnapshot>;
4249
+ }
4250
+ export interface Page_26 {
3928
4251
  total: bigint;
3929
4252
  withheld: bigint;
3930
4253
  items: Array<OwnerRow>;
@@ -3932,37 +4255,37 @@ export interface Page_25 {
3932
4255
  export interface Page_3 {
3933
4256
  total: bigint;
3934
4257
  withheld: bigint;
3935
- items: Array<AuditEntry>;
4258
+ items: Array<RecordNote>;
3936
4259
  }
3937
4260
  export interface Page_4 {
3938
4261
  total: bigint;
3939
4262
  withheld: bigint;
3940
- items: Array<PurgedAgent>;
4263
+ items: Array<AuditEntry>;
3941
4264
  }
3942
4265
  export interface Page_5 {
3943
4266
  total: bigint;
3944
4267
  withheld: bigint;
3945
- items: Array<AgentPaymentSignatures>;
4268
+ items: Array<PurgedAgent>;
3946
4269
  }
3947
4270
  export interface Page_6 {
3948
4271
  total: bigint;
3949
4272
  withheld: bigint;
3950
- items: Array<OwnershipTransfer>;
4273
+ items: Array<AgentPaymentSignatures>;
3951
4274
  }
3952
4275
  export interface Page_7 {
3953
4276
  total: bigint;
3954
4277
  withheld: bigint;
3955
- items: Array<EngramSessionState>;
4278
+ items: Array<OwnershipTransfer>;
3956
4279
  }
3957
4280
  export interface Page_8 {
3958
4281
  total: bigint;
3959
4282
  withheld: bigint;
3960
- items: Array<ApprovalRequest>;
4283
+ items: Array<EngramSessionState>;
3961
4284
  }
3962
4285
  export interface Page_9 {
3963
4286
  total: bigint;
3964
4287
  withheld: bigint;
3965
- items: Array<MemoryLogEvent>;
4288
+ items: Array<ApprovalRequest>;
3966
4289
  }
3967
4290
  export interface Pairing {
3968
4291
  agent: AgentRecord;
@@ -3990,7 +4313,7 @@ export interface PaymentSignature {
3990
4313
  export interface PaymentSignatureCounts {
3991
4314
  day: bigint;
3992
4315
  marketplace: [] | [MarketplacePaymentSignatures];
3993
- agents: Page_5;
4316
+ agents: Page_6;
3994
4317
  limit: bigint;
3995
4318
  }
3996
4319
  export interface PaymentsNow {
@@ -4025,9 +4348,19 @@ export interface RailHealth {
4025
4348
  }
4026
4349
  export interface ReceiptPage {
4027
4350
  firstAvailableSeq: bigint;
4028
- page: Page_11;
4351
+ page: Page_12;
4029
4352
  scannedThroughSeq: bigint;
4030
4353
  }
4354
+ export interface RecipientHistory {
4355
+ historyFull: boolean;
4356
+ firstPaidAtNs: [] | [bigint];
4357
+ timesPaid: bigint;
4358
+ paidBefore: boolean;
4359
+ liveNow: boolean;
4360
+ lastPaidAtNs: [] | [bigint];
4361
+ largestPaidE6: bigint;
4362
+ listedSeller: boolean;
4363
+ }
4031
4364
  export interface RecordNote {
4032
4365
  about: bigint;
4033
4366
  atNs: bigint;
@@ -4057,85 +4390,89 @@ export interface ResetReport {
4057
4390
  export type Result = { Ok: WriteReceipt } | { Err: Error };
4058
4391
  export type Result_1 = { Ok: TimersWake } | { Err: Error };
4059
4392
  export type Result_10 = { Ok: SignedTransaction } | { Err: Error };
4060
- export type Result_11 = { Ok: BackupRetentionReport } | { Err: Error };
4061
- export type Result_12 = { Ok: MemoryFile } | { Err: Error };
4062
- export type Result_13 = { Ok: SessionContext } | { Err: Error };
4063
- export type Result_14 = { Ok: bigint } | { Err: Error };
4064
- export type Result_15 = { Ok: ResyncReport } | { Err: Error };
4065
- export type Result_16 = { Ok: ResetReport } | { Err: Error };
4066
- export type Result_17 = { Ok: GuardianRecord } | { Err: Error };
4067
- export type Result_18 = { Ok: EngramEscrowRecovery } | { Err: Error };
4068
- export type Result_19 = { Ok: MemoryByteChunk } | { Err: Error };
4393
+ export type Result_11 = { Ok: { activatesAtNs: bigint } } | { Err: Error };
4394
+ export type Result_12 = { Ok: BackupRetentionReport } | { Err: Error };
4395
+ export type Result_13 = { Ok: MemoryFile } | { Err: Error };
4396
+ export type Result_14 = { Ok: SessionContext } | { Err: Error };
4397
+ export type Result_15 = { Ok: bigint } | { Err: Error };
4398
+ export type Result_16 = { Ok: ResyncReport } | { Err: Error };
4399
+ export type Result_17 = { Ok: ResetReport } | { Err: Error };
4400
+ export type Result_18 = { Ok: GuardianRecord } | { Err: Error };
4401
+ export type Result_19 = { Ok: EngramEscrowRecovery } | { Err: Error };
4069
4402
  export type Result_2 = { Ok: null } | { Err: Error };
4070
- export type Result_20 = { Ok: Array<BatchReadItem> } | { Err: Error };
4071
- export type Result_21 = { Ok: RetentionPreview } | { Err: Error };
4072
- export type Result_22 = { Ok: CondensePreview } | { Err: Error };
4073
- export type Result_23 = { Ok: Pairing } | { Err: Error };
4074
- export type Result_24 = { Ok: EngramSessionState } | { Err: Error };
4075
- export type Result_25 = { Ok: Principal } | { Err: Error };
4076
- export type Result_26 = { Ok: AgentGrant } | { Err: Error };
4077
- export type Result_27 = { Ok: Page } | { Err: Error };
4078
- export type Result_28 = { Ok: Page_1 } | { Err: Error };
4079
- export type Result_29 = { Ok: Page_2 } | { Err: Error };
4403
+ export type Result_20 = { Ok: MemoryByteChunk } | { Err: Error };
4404
+ export type Result_21 = { Ok: Array<BatchReadItem> } | { Err: Error };
4405
+ export type Result_22 = { Ok: RetentionPreview } | { Err: Error };
4406
+ export type Result_23 = { Ok: CondensePreview } | { Err: Error };
4407
+ export type Result_24 = { Ok: Pairing } | { Err: Error };
4408
+ export type Result_25 = { Ok: EngramSessionState } | { Err: Error };
4409
+ export type Result_26 = { Ok: Principal } | { Err: Error };
4410
+ export type Result_27 = { Ok: AgentGrant } | { Err: Error };
4411
+ export type Result_28 = { Ok: Page } | { Err: Error };
4412
+ export type Result_29 = { Ok: Page_1 } | { Err: Error };
4080
4413
  export type Result_3 = { Ok: ControlHandover } | { Err: Error };
4081
- export type Result_30 = { Ok: Page_3 } | { Err: Error };
4082
- export type Result_31 = { Ok: Page_4 } | { Err: Error };
4083
- export type Result_32 = { Ok: PaymentSignatureCounts } | { Err: Error };
4084
- export type Result_33 = { Ok: Page_6 } | { Err: Error };
4085
- export type Result_34 = { Ok: Page_7 } | { Err: Error };
4086
- export type Result_35 = { Ok: Page_8 } | { Err: Error };
4087
- export type Result_36 = { Ok: LogPage } | { Err: Error };
4088
- export type Result_37 = { Ok: Page_10 } | { Err: Error };
4089
- export type Result_38 = { Ok: ReceiptPage } | { Err: Error };
4090
- export type Result_39 = { Ok: Page_12 } | { Err: Error };
4414
+ export type Result_30 = { Ok: Page_2 } | { Err: Error };
4415
+ export type Result_31 = { Ok: Page_3 } | { Err: Error };
4416
+ export type Result_32 = { Ok: Page_4 } | { Err: Error };
4417
+ export type Result_33 = { Ok: Page_5 } | { Err: Error };
4418
+ export type Result_34 = { Ok: PaymentSignatureCounts } | { Err: Error };
4419
+ export type Result_35 = { Ok: Page_7 } | { Err: Error };
4420
+ export type Result_36 = { Ok: Page_8 } | { Err: Error };
4421
+ export type Result_37 = { Ok: Page_9 } | { Err: Error };
4422
+ export type Result_38 = { Ok: LogPage } | { Err: Error };
4423
+ export type Result_39 = { Ok: Page_11 } | { Err: Error };
4091
4424
  export type Result_4 = { Ok: X402SignOutcome } | { Err: Error };
4092
- export type Result_40 = { Ok: Page_13 } | { Err: Error };
4093
- export type Result_41 = { Ok: Page_14 } | { Err: Error };
4094
- export type Result_42 = { Ok: Page_15 } | { Err: Error };
4095
- export type Result_43 = { Ok: Page_16 } | { Err: Error };
4096
- export type Result_44 = { Ok: Page_17 } | { Err: Error };
4097
- export type Result_45 = { Ok: CheckpointPage } | { Err: Error };
4098
- export type Result_46 = { Ok: Page_19 } | { Err: Error };
4099
- export type Result_47 = { Ok: Page_20 } | { Err: Error };
4100
- export type Result_48 = { Ok: RecordPage } | { Err: Error };
4425
+ export type Result_40 = { Ok: ReceiptPage } | { Err: Error };
4426
+ export type Result_41 = { Ok: Page_13 } | { Err: Error };
4427
+ export type Result_42 = { Ok: Page_14 } | { Err: Error };
4428
+ export type Result_43 = { Ok: Page_15 } | { Err: Error };
4429
+ export type Result_44 = { Ok: Page_16 } | { Err: Error };
4430
+ export type Result_45 = { Ok: Page_17 } | { Err: Error };
4431
+ export type Result_46 = { Ok: Page_18 } | { Err: Error };
4432
+ export type Result_47 = { Ok: CheckpointPage } | { Err: Error };
4433
+ export type Result_48 = { Ok: Page_20 } | { Err: Error };
4101
4434
  export type Result_49 = { Ok: Page_21 } | { Err: Error };
4102
4435
  export type Result_5 = { Ok: Eip712SignatureOut } | { Err: Error };
4103
- export type Result_50 = { Ok: Page_22 } | { Err: Error };
4104
- export type Result_51 = { Ok: AgentSpendToday } | { Err: Error };
4105
- export type Result_52 = { Ok: Page_24 } | { Err: Error };
4106
- export type Result_53 = { Ok: string } | { Err: Error };
4107
- export type Result_54 = { Ok: boolean } | { Err: Error };
4108
- export type Result_55 = { Ok: [] | [string] } | { Err: Error };
4109
- export type Result_56 = { Ok: WorldIdRpContext } | { Err: Error };
4110
- export type Result_57 = { Ok: WorldIdConfig } | { Err: Error };
4111
- export type Result_58 = { Ok: WalletBalances } | { Err: Error };
4112
- export type Result_59 = { Ok: StorageReport } | { Err: Error };
4436
+ export type Result_50 = { Ok: RecordPage } | { Err: Error };
4437
+ export type Result_51 = { Ok: Page_22 } | { Err: Error };
4438
+ export type Result_52 = { Ok: Page_23 } | { Err: Error };
4439
+ export type Result_53 = { Ok: AgentSpendToday } | { Err: Error };
4440
+ export type Result_54 = { Ok: Page_25 } | { Err: Error };
4441
+ export type Result_55 = { Ok: string } | { Err: Error };
4442
+ export type Result_56 = { Ok: boolean } | { Err: Error };
4443
+ export type Result_57 = { Ok: [] | [string] } | { Err: Error };
4444
+ export type Result_58 = { Ok: WorldIdRpContext } | { Err: Error };
4445
+ export type Result_59 = { Ok: WorldIdConfig } | { Err: Error };
4113
4446
  export type Result_6 = { Ok: { returned: bigint } } | { Err: Error };
4114
- export type Result_60 = { Ok: SpendingPolicy } | { Err: Error };
4115
- export type Result_61 = { Ok: SpendCeiling } | { Err: Error };
4116
- export type Result_62 = { Ok: SigningFloorStatus } | { Err: Error };
4117
- export type Result_63 = { Ok: { paths: Array<string> } } | { Err: Error };
4118
- export type Result_64 = { Ok: OwnerConsole } | { Err: Error };
4119
- export type Result_65 = { Ok: MemoryRetentionPolicy } | { Err: Error };
4120
- export type Result_66 = { Ok: MemoryHistory } | { Err: Error };
4121
- export type Result_67 = { Ok: AlertStatus } | { Err: Error };
4122
- export type Result_68 = { Ok: EvmAddresses } | { Err: Error };
4123
- export type Result_69 = { Ok: Uint8Array | number[] } | { Err: Error };
4447
+ export type Result_60 = { Ok: WalletBalances } | { Err: Error };
4448
+ export type Result_61 = { Ok: StorageReport } | { Err: Error };
4449
+ export type Result_62 = { Ok: SpendingPolicy } | { Err: Error };
4450
+ export type Result_63 = { Ok: SpendCeiling } | { Err: Error };
4451
+ export type Result_64 = { Ok: SigningFloorStatus } | { Err: Error };
4452
+ export type Result_65 = { Ok: RecipientHistory } | { Err: Error };
4453
+ export type Result_66 = { Ok: { paths: Array<string> } } | { Err: Error };
4454
+ export type Result_67 = { Ok: OwnerSignInView } | { Err: Error };
4455
+ export type Result_68 = { Ok: OwnerConsole } | { Err: Error };
4456
+ export type Result_69 = { Ok: MemoryRetentionPolicy } | { Err: Error };
4124
4457
  export type Result_7 = { Ok: SignatureCounts } | { Err: Error };
4125
- export type Result_70 = { Ok: ChildOpening } | { Err: Error };
4126
- export type Result_71 = { Ok: ChildAllowanceRow } | { Err: Error };
4127
- export type Result_72 = { Ok: Brakes } | { Err: Error };
4128
- export type Result_73 = { Ok: Array<BirthRecord> } | { Err: Error };
4129
- export type Result_74 = { Ok: BackupRetention } | { Err: Error };
4130
- export type Result_75 = { Ok: BackupMetadata } | { Err: Error };
4131
- export type Result_76 = { Ok: AgentWriteReview } | { Err: Error };
4132
- export type Result_77 = { Ok: Page_25 } | { Err: Error };
4133
- export type Result_79 = { Ok: MemoryRangeExport } | { Err: Error };
4458
+ export type Result_70 = { Ok: MemoryHistory } | { Err: Error };
4459
+ export type Result_71 = { Ok: KeyBackupStatus } | { Err: Error };
4460
+ export type Result_72 = { Ok: Uint8Array | number[] } | { Err: Error };
4461
+ export type Result_73 = { Ok: AlertStatus } | { Err: Error };
4462
+ export type Result_74 = { Ok: EvmAddresses } | { Err: Error };
4463
+ export type Result_75 = { Ok: ChildOpening } | { Err: Error };
4464
+ export type Result_76 = { Ok: ChildAllowanceRow } | { Err: Error };
4465
+ export type Result_77 = { Ok: Brakes } | { Err: Error };
4466
+ export type Result_78 = { Ok: Array<BirthRecord> } | { Err: Error };
4467
+ export type Result_79 = { Ok: BackupRetention } | { Err: Error };
4134
4468
  export type Result_8 = { Ok: RailHealth } | { Err: Error };
4135
- export type Result_80 = { Ok: CondenseResult } | { Err: Error };
4136
- export type Result_81 = { Ok: Eip712Registration } | { Err: Error };
4137
- export type Result_82 = { Ok: { activatesAtNs: bigint } } | { Err: Error };
4138
- export type Result_83 = { Ok: AgentRecord } | { Err: Error };
4469
+ export type Result_80 = { Ok: BackupMetadata } | { Err: Error };
4470
+ export type Result_81 = { Ok: AgentWriteReview } | { Err: Error };
4471
+ export type Result_82 = { Ok: Page_26 } | { Err: Error };
4472
+ export type Result_84 = { Ok: MemoryRangeExport } | { Err: Error };
4473
+ export type Result_85 = { Ok: CondenseResult } | { Err: Error };
4474
+ export type Result_87 = { Ok: Eip712Registration } | { Err: Error };
4475
+ export type Result_89 = { Ok: AgentRecord } | { Err: Error };
4139
4476
  export type Result_9 = { Ok: Array<Seat> } | { Err: Error };
4140
4477
  export interface ResyncReport {
4141
4478
  startsAcknowledged: bigint;
@@ -4198,6 +4535,18 @@ export interface Seat {
4198
4535
  produced: bigint;
4199
4536
  firstPaymentDay: [] | [bigint];
4200
4537
  }
4538
+ export interface SellerView {
4539
+ spentTodayE6: bigint;
4540
+ isPayout: boolean;
4541
+ perDayCapE6: bigint;
4542
+ addedBy: Principal;
4543
+ activatesAtNs: bigint;
4544
+ addedAtNs: bigint;
4545
+ liveNow: boolean;
4546
+ payTo: string;
4547
+ pendingActivatesAtNs: [] | [bigint];
4548
+ pendingCapE6: [] | [bigint];
4549
+ }
4201
4550
  export interface ServiceEntry {
4202
4551
  endpoint: string;
4203
4552
  name: string;