@engramx/idl 0.16.0-rc.14 → 0.16.0-rc.16

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.
@@ -54,6 +54,12 @@ export interface AgentEnding {
54
54
  day: bigint;
55
55
  reason: AgentEndReason;
56
56
  }
57
+ export interface AgentGrant {
58
+ key: Principal;
59
+ permissions: AgentPermissions;
60
+ name: string;
61
+ paymentLimits: PaymentLimits;
62
+ }
57
63
  export interface AgentPaymentSignatures {
58
64
  agent: Principal;
59
65
  signedToday: bigint;
@@ -84,6 +90,16 @@ export interface AgentRecord {
84
90
  keyRotatedAtNs: bigint;
85
91
  keyHeldFrom: LogPosition;
86
92
  }
93
+ export interface AgentSpendRow {
94
+ agent: Principal;
95
+ spentToday: [] | [bigint];
96
+ root: Principal;
97
+ maxPerDay: [] | [bigint];
98
+ }
99
+ export interface AgentSpendToday {
100
+ dayStartNs: bigint;
101
+ agents: Page_23;
102
+ }
87
103
  export type AgentStatus = { Active: null } | { Resigned: null } | { Revoked: null };
88
104
  export interface AgentWriteReview {
89
105
  cursor: bigint;
@@ -175,6 +191,11 @@ export interface BackupMetadata {
175
191
  chunkCount: bigint;
176
192
  parentBackupId: [] | [string];
177
193
  }
194
+ export interface BackupRetention {
195
+ maxBackups: bigint;
196
+ isDefault: boolean;
197
+ dbType: string;
198
+ }
178
199
  export interface BackupRetentionReport {
179
200
  maxBackups: bigint;
180
201
  dbType: string;
@@ -199,6 +220,21 @@ export interface BearerToken {
199
220
  issuedBy: Principal;
200
221
  }
201
222
  export type BearerTokenStatus = { Active: null } | { Revoked: null } | { Expired: null };
223
+ export interface BrakePull {
224
+ by: Principal;
225
+ atNs: bigint;
226
+ role: BrakeRole;
227
+ reason: [] | [string];
228
+ }
229
+ export type BrakeRole = { Guardian: null } | { Owner: null };
230
+ export interface BrakeState {
231
+ on: boolean;
232
+ pull: [] | [BrakePull];
233
+ }
234
+ export interface Brakes {
235
+ payments: BrakeState;
236
+ writes: BrakeState;
237
+ }
202
238
  export interface CallerSignatureCount {
203
239
  count: bigint;
204
240
  role: Role;
@@ -214,7 +250,7 @@ export interface CertifiedAuditHead {
214
250
  }
215
251
  export interface CheckpointPage {
216
252
  firstAvailableSeq: bigint;
217
- page: Page_15;
253
+ page: Page_18;
218
254
  scannedThroughSeq: bigint;
219
255
  }
220
256
  export interface ChildAllowanceRow {
@@ -357,11 +393,18 @@ export interface Engram {
357
393
  * / test/key-replacement.test.mo runs it; this body names no roster gate, because the caller holds
358
394
  * / no role here until the move.
359
395
  */
360
- acceptAgentKeyNomination: ActorMethod<[Principal], Result_72>;
396
+ acceptAgentKeyNomination: ActorMethod<[Principal], Result_80>;
361
397
  /**
362
398
  * / Consensus transform for the alert webhook outcall: collapse the response to status-only so
363
399
  * / replicas agree regardless of response headers/body (we only care that the POST landed 2xx).
364
400
  * /
401
+ * / ⟨CORRECTED 2026-10-21⟩ No longer a consensus transform: the alert outcall is non-replicated
402
+ * / (`is_replicated = ?false` in `scanAndPost`), so ONE node sends the POST and runs this on its
403
+ * / own response — there are no replicas to agree, and "on every replica" below now means "on that
404
+ * / node". It stays so the response is collapsed to status-only before the engram reads it. The
405
+ * / PUBLIC reasoning below is unchanged: the outcall protocol still calls it with no caller identity.
406
+ * / `worldIdTransform` is still a true consensus transform (World ID stays replicated).
407
+ * /
365
408
  * / PUBLIC: not a choice. The management canister invokes a transform on every replica as part of
366
409
  * / the HTTP-outcall protocol, and that invocation carries no caller identity to gate on — a gate
367
410
  * / here would refuse the only caller there is and break every alert this canister sends. Safe
@@ -383,7 +426,7 @@ export interface Engram {
383
426
  * / account name). The action must be registered: a destination list belongs to an action, and a
384
427
  * / list for no action would be a value nothing checks. The caller is the owner's app.
385
428
  */
386
- addEip712Destination: ActorMethod<[Uint8Array | number[], string], Result_71>;
429
+ addEip712Destination: ActorMethod<[Uint8Array | number[], string], Result_79>;
387
430
  /**
388
431
  * / Register a typed-data shape as signable. Owner-only, freeze-gated (a registration is a grant
389
432
  * / of FUTURE authority — a frozen engram must not be able to widen what it can sign), and the
@@ -418,7 +461,7 @@ export interface Engram {
418
461
  ackIrrevocable: boolean;
419
462
  },
420
463
  ],
421
- Result_70
464
+ Result_78
422
465
  >;
423
466
  /**
424
467
  * / ⟨0.16.0, L1⟩ THE ROLE-CONFLICT ARM, and why three refusals here are not the same refusal.
@@ -431,6 +474,17 @@ export interface Engram {
431
474
  * / or the roster is full. Only the last is worth an agent's time to resolve.
432
475
  */
433
476
  addGuardian: ActorMethod<[Principal, string, GuardianPermissions], Result_1>;
477
+ /**
478
+ * / ⟨2026-10-21, the owner's round-11 answer b⟩ OWNER-ONLY: put a note on any entry of this
479
+ * / engram's record — words, nothing else. Appends a chained `record.note` entry
480
+ * / (`about=<id> note=<words>`) and keeps the note for `listRecordNotes`; answers the new entry's
481
+ * / id. The entry noted may be any entry ever appended (`about` below the head), including one the
482
+ * / ring no longer holds in full. An agent, a guardian, a stranger and the anonymous caller are
483
+ * / refused by `requireOwner`'s own words. Empty words, words over `RecordWords.WORDS_MAX` or
484
+ * / holding a line break are `#Invalid`; an id past the head is `#NotFound`; nothing is recorded
485
+ * / on any refusal.
486
+ */
487
+ addRecordNote: ActorMethod<[bigint, string], Result_12>;
434
488
  /**
435
489
  * / Returns the write RECEIPT, not just the version.
436
490
  * /
@@ -465,7 +519,7 @@ export interface Engram {
465
519
  * / is exactly what a guardian pause exists to hold. No action alert is raised: the operation is
466
520
  * / owner-initiated, owner-only, and already chained into the audit log.
467
521
  */
468
- applyCondense: ActorMethod<[bigint], Result_69>;
522
+ applyCondense: ActorMethod<[bigint], Result_77>;
469
523
  /**
470
524
  * / Owner-only: activate a guardian who has registered against an invite.
471
525
  * /
@@ -545,7 +599,7 @@ export interface Engram {
545
599
  * /
546
600
  * / The write half also refuses while writes are PAUSED.
547
601
  */
548
- backupInit: ActorMethod<[string, BackupType, [] | [string], string, [] | [string]], Result_45>;
602
+ backupInit: ActorMethod<[string, BackupType, [] | [string], string, [] | [string]], Result_51>;
549
603
  /**
550
604
  * / Read one chunk of a finalized backup, by index.
551
605
  * /
@@ -553,7 +607,7 @@ export interface Engram {
553
607
  * / `canAppendMemory`. Holding one says nothing about the other, deliberately: taking a backup and
554
608
  * / carrying it away are different authorities.
555
609
  */
556
- backupPullChunk: ActorMethod<[string, bigint], Result_61>;
610
+ backupPullChunk: ActorMethod<[string, bigint], Result_67>;
557
611
  backupPushChunk: ActorMethod<[string, bigint, Uint8Array | number[]], Result_1>;
558
612
  /**
559
613
  * / The OWNER cancels an agent's pending key nomination; the agent keeps its current key. Refused
@@ -611,7 +665,7 @@ export interface Engram {
611
665
  * / A principal that is already a GUARDIAN cannot become an agent — a guardian is an
612
666
  * / independent check on agents, so one wallet must not hold both.
613
667
  */
614
- createAgentInvite: ActorMethod<[string, AgentPermissions], Result_45>;
668
+ createAgentInvite: ActorMethod<[string, AgentPermissions], Result_51>;
615
669
  /**
616
670
  * / Owner-only: mint an invite for a GUARDIAN — an independent check on agents, not a
617
671
  * / co-owner and not a recovery agent.
@@ -635,7 +689,7 @@ export interface Engram {
635
689
  * / So an invite that fails to redeem for that reason is not a bad code. The rule exists because
636
690
  * / a check must be independent of the thing it checks.
637
691
  */
638
- createGuardianInvite: ActorMethod<[string, GuardianPermissions], Result_45>;
692
+ createGuardianInvite: ActorMethod<[string, GuardianPermissions], Result_51>;
639
693
  /**
640
694
  * / OWNER-ONLY deletion of a stored backup.
641
695
  * /
@@ -669,6 +723,24 @@ export interface Engram {
669
723
  * / does not change the policy — the next request over the same limit will be raised again.
670
724
  */
671
725
  denyRequest: ActorMethod<[string, string], Result_1>;
726
+ /**
727
+ * / ⟨2026-10-21, the owner's round-11 answer c⟩ A NEW GUARDIAN POWER, words only: an ACTIVE
728
+ * / guardian disputes an agent's write. It never moves money, stops anything or changes a grant.
729
+ * / Appends a chained `record.dispute` entry (`about=<id> reason=<words>`) and keeps the dispute
730
+ * / for `listGuardianDisputes`; answers the new entry's id. NOT ALERTED, deliberately: a
731
+ * / `guardian.*` operation would fall in the alerts' #guardian class, and which entries reach a
732
+ * / phone is the held alerts round's to decide (`ActionAlerts.classify` answers null for
733
+ * / `record.*`). The owner sees it on the record's Disputes tab.
734
+ * /
735
+ * / WHO: every active guardian — no grant bit (`RecordWords` header says why). The OWNER is refused
736
+ * / by name (`RecordWords.OWNER_DISPUTES_ELSEWHERE` — the owner's dispute is
737
+ * / `repudiateMemoryWrite`); an agent and a stranger get "Not a guardian", a pending guardian "Guardian
738
+ * / is pending approval", the anonymous caller the anonymous refusal.
739
+ * / WHAT: an entry the owner's review would show (`qualifiesForReview` — an agent's append or
740
+ * / revision, or a paid session's append) that succeeded, still held in full by the ring.
741
+ * / One dispute per guardian per write (`#Conflict`, the first stands).
742
+ */
743
+ disputeAgentWrite: ActorMethod<[bigint, string], Result_12>;
672
744
  /**
673
745
  * / Record that log entries [fromSeq, toSeq] were served, and return the root that proves it.
674
746
  * /
@@ -683,7 +755,7 @@ export interface Engram {
683
755
  * / situation rather than a safety measure. It IS gated on requireMemoryAttached: a store that
684
756
  * / failed its integrity check must not attest anything it cannot vouch for.
685
757
  */
686
- exportMemoryRange: ActorMethod<[bigint, bigint, [] | [Principal]], Result_68>;
758
+ exportMemoryRange: ActorMethod<[bigint, bigint, [] | [Principal]], Result_76>;
687
759
  /**
688
760
  * / ⟨0.16.0, L2.2 — renamed from `guardianFreezePayments`⟩ The prefix LIED about who may call it.
689
761
  * / The gate is `requireOwnerOrGuardian`, and an owner freezing their own payments is the ordinary
@@ -718,10 +790,20 @@ export interface Engram {
718
790
  * / before this one. If any of them is wrong, this comment is where the argument should happen.
719
791
  */
720
792
  freezePayments: ActorMethod<[], Result_1>;
793
+ /**
794
+ * / ⟨2026-10-21, the owner's round-11 answer d⟩ `freezePayments` with a reason the strip and the
795
+ * / guardian page show ("Sam froze payments: 'a payment I didn't expect'"). A NEW method, not an
796
+ * / argument on `freezePayments`: a shipped argument tuple is frozen. Same callers, same grant, same
797
+ * / brake: the owner, or an active guardian holding `canFreezePayments`; an agent, a stranger, a
798
+ * / pending guardian and the anonymous caller are refused by `requireOwnerOrGuardian`'s own words.
799
+ * / An empty reason is no reason; a reason too long or holding a line break is `#Invalid` and the
800
+ * / brake is NOT pulled — the caller pulls it with `freezePayments`, or shortens the words.
801
+ */
802
+ freezePaymentsWithReason: ActorMethod<[string], Result_1>;
721
803
  /**
722
804
  * / Delivery status + config readback. Owner-only (the URL is a secret).
723
805
  */
724
- getActionAlertStatus: ActorMethod<[], Result_59>;
806
+ getActionAlertStatus: ActorMethod<[], Result_65>;
725
807
  /**
726
808
  * / Agents need to know what they may revise, so they can read it too. Whole-value config, same
727
809
  * / carve-out as getProtectedPaths — and kept a SEPARATE method from it deliberately (L2.2): a
@@ -731,7 +813,7 @@ export interface Engram {
731
813
  * / Refusal reason preserved from the trap: a grant is a power, and its absence and its
732
814
  * / concealment are different facts.
733
815
  */
734
- getAgentRevisablePaths: ActorMethod<[], Result_55>;
816
+ getAgentRevisablePaths: ActorMethod<[], Result_61>;
735
817
  /**
736
818
  * / OWNER-ONLY: every engagement's seat weeks on this engram, with the agent's root — the day it
737
819
  * / paired, the days of its first and last payment signature, a 64-week map whose bit 0 is the week
@@ -744,7 +826,7 @@ export interface Engram {
744
826
  * / empty page. Paged; `total` is every engagement ever paired here (a reset keeps the rows).
745
827
  * / Two rows can name one root: an agent paired again after it left is a second engagement.
746
828
  */
747
- getAgentSeatWeeks: ActorMethod<[bigint, bigint], Result_66>;
829
+ getAgentSeatWeeks: ActorMethod<[bigint, bigint], Result_74>;
748
830
  /**
749
831
  * / Owner: everything written into this engram by someone other than the owner since the last
750
832
  * / markAgentWritesReviewed() — agent appends/revisions AND paid-session appends (see
@@ -754,7 +836,7 @@ export interface Engram {
754
836
  * / as a total. `earliest` discloses ring eviction — if cursor < earliest, entries between them
755
837
  * / aged out of the ring (the CHAIN still proves total count; this view can't show their bodies).
756
838
  */
757
- getAgentWriteReview: ActorMethod<[], Result_65>;
839
+ getAgentWriteReview: ActorMethod<[], Result_73>;
758
840
  /**
759
841
  * / Why anchoring is or is not advancing. PUBLIC: ungated on purpose — detecting a stalled
760
842
  * / engram is the point, a gated read would fail-to-empty and hand a third party fabricated zeros,
@@ -777,7 +859,20 @@ export interface Engram {
777
859
  * / was signed rather than asserted.
778
860
  */
779
861
  getAuditHead: ActorMethod<[], AuditHead>;
780
- getBackupMetadata: ActorMethod<[string], Result_64>;
862
+ getBackupMetadata: ActorMethod<[string], Result_72>;
863
+ /**
864
+ * / ⟨2026-10-21, the owner's round-11 answer m: a backup-retention getter⟩ How many backups of
865
+ * / `dbType` each creator keeps, and whether that is the default — the read `setBackupRetention`
866
+ * / lacked, so "Keeps your newest 3" showed only on the phone that last set it.
867
+ * /
868
+ * / WHO: the OWNER, and an active AGENT holding `canAppendMemory` — the permission that lets it
869
+ * / upload backups, which are exactly the backups this number bounds (`#perm(#append_memory)`).
870
+ * / Refused, each by the gate's own words: an agent without that permission ("Permission
871
+ * / denied"), a revoked or resigned agent, a guardian (guardians take no backups), a stranger and
872
+ * / the anonymous caller. A kind the setter would refuse is `#Invalid` here too
873
+ * / (`Backup.getRetention`). Records nothing (a query).
874
+ */
875
+ getBackupRetention: ActorMethod<[string], Result_71>;
781
876
  /**
782
877
  * / The cashier this engram recognises as its rent biller — `null` until the registry pushes one.
783
878
  * /
@@ -787,6 +882,17 @@ export interface Engram {
787
882
  * / too is what lets the two be COMPARED, which is the only way to catch a mismatch.
788
883
  */
789
884
  getBillerId: ActorMethod<[], [] | [Principal]>;
885
+ /**
886
+ * / ⟨2026-10-21, the owner's round-11 answer d⟩ Each brake: on or off, and while on, who pulled it
887
+ * / LAST (their key and whether as owner or guardian), since when, and the reason they gave — the
888
+ * / same person and time as the newest brake entry on the record (`RecordWords.BrakePull`). For the
889
+ * / owner's status strip and the guardian page. The OWNER and ACTIVE GUARDIANS may read it; an
890
+ * / agent, a stranger, a pending guardian and the anonymous caller are refused (`#ownerOrGuardian`
891
+ * / — an agent learns a brake is on from the refusal of what it tried, and needs no more). `pull`
892
+ * / is null for a brake that is off, and for one carried on across the upgrade that added this
893
+ * / read (who pulled it was not recorded then) — never a guessed pull.
894
+ */
895
+ getBrakes: ActorMethod<[], Result_70>;
790
896
  /**
791
897
  * / ⟨0.16.0, L9/L10 — census row⟩ `Wire.CertifiedAuditHead`, not an anonymous record. The
792
898
  * / registry, market and cashier already served the shared type; the engram — the canister that
@@ -813,13 +919,13 @@ export interface Engram {
813
919
  * / recorded nothing while reading as if it did. The refusal is loud in the reply instead. WHAT
814
920
  * / WOULD MAKE THIS WRONG: a reason to record who asked — then this becomes an update that says so.
815
921
  */
816
- getChildAllowance: ActorMethod<[Principal], Result_63>;
922
+ getChildAllowance: ActorMethod<[Principal], Result_69>;
817
923
  /**
818
924
  * / Owner-only, Billing-class: what opening an engram costs this engram, the balance below which an
819
925
  * / agent's request is refused, the balance now, and every agent's allowance. The console's cost
820
926
  * / sentence reads it. Cycles are owner-class information, as on the owner's console read.
821
927
  */
822
- getChildOpening: ActorMethod<[], Result_62>;
928
+ getChildOpening: ActorMethod<[], Result_68>;
823
929
  /**
824
930
  * / Derive the shared memory-encryption key, encrypted under the caller's transport
825
931
  * / public key. Gated to owner + read-agents (the same principals allowed to read
@@ -845,7 +951,7 @@ export interface Engram {
845
951
  * / cost. Stated here because L7 requires the reason be readable from the interface rather than
846
952
  * / inferred by opening the body — which is exactly what had to happen to write this line.
847
953
  */
848
- getEncryptedMemoryKey: ActorMethod<[[] | [bigint], Uint8Array | number[]], Result_61>;
954
+ getEncryptedMemoryKey: ActorMethod<[[] | [bigint], Uint8Array | number[]], Result_67>;
849
955
  /**
850
956
  * / ⟨0.16.0, owner ruling 2026-08-20 — option (a)⟩ `x402Support` REPORTS THE RAIL, not a constant.
851
957
  * /
@@ -944,7 +1050,7 @@ export interface Engram {
944
1050
  * / `#Err`, never a record carrying an empty string (ic402's `getEvmAddress` answers `""` on a
945
1051
  * / failed derivation — that is fail-to-empty on a money surface, and it stops here).
946
1052
  */
947
- getEvmAddress: ActorMethod<[], Result_60>;
1053
+ getEvmAddress: ActorMethod<[], Result_66>;
948
1054
  /**
949
1055
  * / The owner's OWN EVM address, if they registered one — distinct from `getEvmAddress`, which is
950
1056
  * / the address this canister derives for itself.
@@ -963,7 +1069,7 @@ export interface Engram {
963
1069
  * / cost — stated here because L7 requires the reason be readable from the interface rather than
964
1070
  * / inferred by opening the body.
965
1071
  */
966
- getEvmSignerAddress: ActorMethod<[], Result_45>;
1072
+ getEvmSignerAddress: ActorMethod<[], Result_51>;
967
1073
  /**
968
1074
  * / PUBLIC: where this chain begins, for the stranger deciding whether to trust it.
969
1075
  * /
@@ -976,7 +1082,7 @@ export interface Engram {
976
1082
  /**
977
1083
  * / A guardian's own channel status (their URL is their secret — each guardian sees only theirs).
978
1084
  */
979
- getGuardianAlertStatus: ActorMethod<[], Result_59>;
1085
+ getGuardianAlertStatus: ActorMethod<[], Result_65>;
980
1086
  /**
981
1087
  * / The market this engram will accept signing requests from — `null` until the registry pushes
982
1088
  * / one at spawn, which is why `requireMarket` refuses fleet-wide today.
@@ -1009,7 +1115,7 @@ export interface Engram {
1009
1115
  * / never renumbered: the next page starts at the last version returned plus one. Defaults
1010
1116
  * / return the whole history of any file a pre-FD engram could have held.
1011
1117
  */
1012
- getMemoryHistory: ActorMethod<[string, [] | [bigint], [] | [bigint]], Result_58>;
1118
+ getMemoryHistory: ActorMethod<[string, [] | [bigint], [] | [bigint]], Result_64>;
1013
1119
  /**
1014
1120
  * / PUBLIC: the epoch alone, and deliberately nothing else (rotation study D4). A `rotatedAt[]`
1015
1121
  * / history would be a public, fleet-enumerable feed of when each owner terminated a trust
@@ -1058,7 +1164,7 @@ export interface Engram {
1058
1164
  * / forever" — a claim about what this engram will DESTROY — and an empty guard list reads as
1059
1165
  * / "nothing is held back".
1060
1166
  */
1061
- getMemoryRetentionPolicy: ActorMethod<[], Result_57>;
1167
+ getMemoryRetentionPolicy: ActorMethod<[], Result_63>;
1062
1168
  /**
1063
1169
  * / The metrics reader this engram answers — `null` until the spawning registry names one.
1064
1170
  * /
@@ -1087,7 +1193,7 @@ export interface Engram {
1087
1193
  * / client (rule 4) and bought a masked answer nobody had asked for — the census could not even
1088
1194
  * / find a consumer that read the masked `0`. Behind a gate there is nobody to mask it from.
1089
1195
  */
1090
- getOwnerConsole: ActorMethod<[], Result_56>;
1196
+ getOwnerConsole: ActorMethod<[], Result_62>;
1091
1197
  /**
1092
1198
  * / Owner + agents only (agents need it to avoid writing protected paths).
1093
1199
  * /
@@ -1101,7 +1207,7 @@ export interface Engram {
1101
1207
  * / writing one — so a fabricated empty here does not merely misinform, it invites the write the
1102
1208
  * / list exists to prevent.
1103
1209
  */
1104
- getProtectedPaths: ActorMethod<[], Result_55>;
1210
+ getProtectedPaths: ActorMethod<[], Result_61>;
1105
1211
  /**
1106
1212
  * / Whether the metrics reader's read is answered — `true` from birth.
1107
1213
  * /
@@ -1114,7 +1220,7 @@ export interface Engram {
1114
1220
  * / payment signatures the balance carries above the floor before `signX402Payment` is refused by
1115
1221
  * / name. The same numbers the check uses, so Billing can say only what the engram enforces.
1116
1222
  */
1117
- getSigningFloor: ActorMethod<[], Result_54>;
1223
+ getSigningFloor: ActorMethod<[], Result_60>;
1118
1224
  /**
1119
1225
  * / The registry that spawned this engram, if it recorded one.
1120
1226
  * /
@@ -1135,7 +1241,7 @@ export interface Engram {
1135
1241
  * / A refusal names this method (`Gated.gatedResult`) rather than answering null/0 — a ceiling of
1136
1242
  * / "none" and a spend of 0 are both real answers, so a fabricated one would be read as fact.
1137
1243
  */
1138
- getSpendCeiling: ActorMethod<[], Result_53>;
1244
+ getSpendCeiling: ActorMethod<[], Result_59>;
1139
1245
  /**
1140
1246
  * / Read the caps in force for a caller.
1141
1247
  * /
@@ -1145,8 +1251,8 @@ export interface Engram {
1145
1251
  * / configuration, and publishing them would tell any caller exactly how large a signing request
1146
1252
  * / can be before it needs an approval nobody is watching for.
1147
1253
  */
1148
- getSpendPolicy: ActorMethod<[[] | [Principal]], Result_52>;
1149
- getStorageStats: ActorMethod<[], Result_51>;
1254
+ getSpendPolicy: ActorMethod<[[] | [Principal]], Result_58>;
1255
+ getStorageStats: ActorMethod<[], Result_57>;
1150
1256
  /**
1151
1257
  * / Timer arm-state. PUBLIC and deliberately so: these timers are self-arming to save cycles,
1152
1258
  * / and an optimisation nobody can verify is an optimisation nobody should trust. Cheap to read,
@@ -1219,14 +1325,14 @@ export interface Engram {
1219
1325
  * / UPDATE, marked per L7: it awaits three ICRC-1 ledgers". It was marked in prose and invisible
1220
1326
  * / to any gate; the glyph is what `scripts/check-update-for-read.mjs` matches.
1221
1327
  */
1222
- getWalletBalances: ActorMethod<[], Result_50>;
1328
+ getWalletBalances: ActorMethod<[], Result_56>;
1223
1329
  /**
1224
1330
  * / Refusal reason preserved, and it is the clearest case of why a masked read is worse than no
1225
1331
  * / read: three empty strings with `configured = false` is a VALID-LOOKING answer meaning "this
1226
1332
  * / engram has no World ID configuration" — handed to a caller who merely lacks a grant. The
1227
1333
  * / fabrication is indistinguishable from the truth by construction.
1228
1334
  */
1229
- getWorldIdConfig: ActorMethod<[], Result_49>;
1335
+ getWorldIdConfig: ActorMethod<[], Result_55>;
1230
1336
  /**
1231
1337
  * / ⟨L7⟩ UPDATE, NOT QUERY: this awaits THREE system calls — `raw_rand()` for the nonce,
1232
1338
  * / `Call.signWithEcdsa` for the signature, and `worldIdRpPublicKey()` for the derived key. A
@@ -1237,7 +1343,7 @@ export interface Engram {
1237
1343
  * / the World Developer Portal. Short-lived (300s TTL, idkit-server's default) and single-purpose —
1238
1344
  * / it authorizes opening one verification request, nothing else.
1239
1345
  */
1240
- getWorldIdRpContext: ActorMethod<[], Result_48>;
1346
+ getWorldIdRpContext: ActorMethod<[], Result_54>;
1241
1347
  /**
1242
1348
  * / Owner-only: the EVM address derived from the engram's dedicated World ID RP signing key (the
1243
1349
  * / "worldid-rp" tECDSA path). Register THIS address as the rp_id's signer in the World Developer
@@ -1249,7 +1355,7 @@ export interface Engram {
1249
1355
  * / refusal — a state write, which a query cannot perform. So even if the key were cached this
1250
1356
  * / could not become a query without silently retiring its denial record (ADR-0002's class).
1251
1357
  */
1252
- getWorldIdRpSignerAddress: ActorMethod<[], Result_45>;
1358
+ getWorldIdRpSignerAddress: ActorMethod<[], Result_51>;
1253
1359
  /**
1254
1360
  * / The verified IDKitResult, verbatim, as World's /api/v4/verify accepted it — the re-checkable
1255
1361
  * / artifact behind verifiedHuman. Role-gated because it carries the NULLIFIER.
@@ -1270,7 +1376,7 @@ export interface Engram {
1270
1376
  * / canister does not serve. The tombstones below and at `about()` are historical and correct as
1271
1377
  * / written; this one was present tense, which is the difference that matters.⟩
1272
1378
  */
1273
- getWorldIdVerification: ActorMethod<[], Result_47>;
1379
+ getWorldIdVerification: ActorMethod<[], Result_53>;
1274
1380
  /**
1275
1381
  * / ⟨0.16.0, L1⟩ THE EMERGENCY FAMILY. Every refusal below is `#Refused` or `#NotFound`, and the
1276
1382
  * / absence of a `#Conflict` here is the point: these are the calls someone makes while something
@@ -1354,7 +1460,7 @@ export interface Engram {
1354
1460
  * / Owner-gated because it reports on custody posture, and answered as a Result so that a
1355
1461
  * / wrong-identity caller gets a refusal rather than a bare `false` that reads as "no address yet".
1356
1462
  */
1357
- isEvmAddressCached: ActorMethod<[], Result_46>;
1463
+ isEvmAddressCached: ActorMethod<[], Result_52>;
1358
1464
  /**
1359
1465
  * / Issue an OAuth authorization code. Called by an OAuth client's sign-in bridge
1360
1466
  * / (an `/auth/connector`-style route) after II authentication. The client then
@@ -1363,7 +1469,7 @@ export interface Engram {
1363
1469
  * /
1364
1470
  * / Owner-only: only the engram owner can authorize a Connector install.
1365
1471
  */
1366
- issueAuthCode: ActorMethod<[string, string, string, [] | [string]], Result_45>;
1472
+ issueAuthCode: ActorMethod<[string, string, string, [] | [string]], Result_51>;
1367
1473
  /**
1368
1474
  * / ⟨0.16.0⟩ `getCycleSnapshotSource` DELETED — folded into `CycleSnapshot.source`, one label per
1369
1475
  * / ROW. A single label for a whole ring misattributes every row recorded under the other source,
@@ -1379,7 +1485,26 @@ export interface Engram {
1379
1485
  * / DORMANT engram and corrupts retention math — a fabricated empty here does not just misinform a
1380
1486
  * / reader, it feeds a wrong number into a decision about destroying data.
1381
1487
  */
1382
- listActivitySnapshots: ActorMethod<[bigint, bigint], Result_44>;
1488
+ listActivitySnapshots: ActorMethod<[bigint, bigint], Result_50>;
1489
+ /**
1490
+ * / ⟨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,
1491
+ * / m."⟩ OWNER-ONLY: what each agent has spent today, beside the daily limit in force for it, so the
1492
+ * / agent rows can say "$0.50 of $5.00 today" where they said a count of payments. Read from the
1493
+ * / state the payment path already keeps — `outboundSpendToday`, through `SpendCeiling.callerSpentOn`
1494
+ * / (the reader `x402SignFor` uses) — and the limits from `gate.getPolicy(<the agent's key>)`, the
1495
+ * / policy `x402SignFor` checks, on the UTC day it checks (`SpendCeiling.dayIndex`). Amounts are the
1496
+ * / token's minor units, as the record's `amount=` writes them. No new state.
1497
+ * /
1498
+ * / OWNER-ONLY for `getSpendCeiling`'s reason: one agent's spending is the owner's custody
1499
+ * / information, and would tell another agent how much it spent. Everyone else — an agent, a
1500
+ * / guardian, a stranger, the anonymous caller — is refused by name (`#Refused
1501
+ * / listAgentSpendToday: …`), never answered with zeros. Paged like `listAgents`, in its order, one
1502
+ * / row per agent record; a row's `spentToday` is null, not 0, where no daily limit is in force,
1503
+ * / because the payment path keeps no figure then (`SpendCeiling.AgentSpendRow` says why).
1504
+ * / WHAT WOULD MAKE THIS WRONG: `x402SignFor` keeping the per-caller total by something other than
1505
+ * / the calling key, or under another day boundary.
1506
+ */
1507
+ listAgentSpendToday: ActorMethod<[bigint, bigint], Result_49>;
1383
1508
  /**
1384
1509
  * / ⟨0.16.0⟩ THE PAGE EXEMPLAR. Trap → `#Refused`, bare array → `Result<Page<T>>` (L1 + L3).
1385
1510
  * /
@@ -1396,7 +1521,7 @@ export interface Engram {
1396
1521
  * / `withheld` is 0: this roster is owner-only in whole, so there is no partial-visibility case.
1397
1522
  * / A method that filters rows by caller sets it — see L1's row-level honesty rule.
1398
1523
  */
1399
- listAgents: ActorMethod<[bigint, bigint], Result_43>;
1524
+ listAgents: ActorMethod<[bigint, bigint], Result_48>;
1400
1525
  /**
1401
1526
  * / The GUARDIAN-audience projection of the agent roster — three fields, not the full record.
1402
1527
  * /
@@ -1410,7 +1535,7 @@ export interface Engram {
1410
1535
  * / guardian consults BEFORE REVOKING ONE. A fabricated empty here does not merely misinform —
1411
1536
  * / it tells someone acting under emergency powers that there is nothing to act on.
1412
1537
  */
1413
- listAgentsForGuardian: ActorMethod<[bigint, bigint], Result_42>;
1538
+ listAgentsForGuardian: ActorMethod<[bigint, bigint], Result_47>;
1414
1539
  /**
1415
1540
  * / Owner-only: rows carry caller, amount, operation and free-text rationale. The SDK omits it.
1416
1541
  * /
@@ -1424,7 +1549,7 @@ export interface Engram {
1424
1549
  * /
1425
1550
  * / Refusal reason preserved: `[]` reads as "nothing is awaiting the owner's decision".
1426
1551
  */
1427
- listApprovalRequests: ActorMethod<[[] | [ApprovalStatus], bigint, bigint], Result_29>;
1552
+ listApprovalRequests: ActorMethod<[[] | [ApprovalStatus], bigint, bigint], Result_33>;
1428
1553
  /**
1429
1554
  * / ⟨0.16.0⟩ `total` IS THE HEAD COUNTER, and on this method that is the entire point.
1430
1555
  * /
@@ -1460,7 +1585,7 @@ export interface Engram {
1460
1585
  * / at read time; nothing new is stored. WHAT WOULD MAKE THIS WRONG: a sealed row carrying any part
1461
1586
  * / of a body, or a stranger reaching `items` (test/record-view.test.mo pins both).
1462
1587
  */
1463
- listAuditEntries: ActorMethod<[bigint, bigint], Result_41>;
1588
+ listAuditEntries: ActorMethod<[bigint, bigint], Result_46>;
1464
1589
  /**
1465
1590
  * / ⟨0.16.0, L1 + L3 — census-ruled⟩ THE TWO-MECHANISM EXCEPTION DISSOLVES.
1466
1591
  * /
@@ -1486,7 +1611,7 @@ export interface Engram {
1486
1611
  * / keeps its optional filter and applies it to the page, so no caller loses the ability to ask
1487
1612
  * / "backups of this database" — it stops being a thing the canister has to page around.
1488
1613
  */
1489
- listBackups: ActorMethod<[bigint, bigint], Result_40>;
1614
+ listBackups: ActorMethod<[bigint, bigint], Result_45>;
1490
1615
  /**
1491
1616
  * / List all bearer tokens — Active, Revoked, and Expired. Owner uses this in
1492
1617
  * / the dashboard to show installed Connectors (claude.ai, Claude Desktop, etc.).
@@ -1498,7 +1623,7 @@ export interface Engram {
1498
1623
  * / merely stopped being used is reported `#Expired`, not a stale `#Active`), so the page carries
1499
1624
  * / the same honesty the store gained on 2026-08-17.
1500
1625
  */
1501
- listBearerTokens: ActorMethod<[bigint, bigint], Result_39>;
1626
+ listBearerTokens: ActorMethod<[bigint, bigint], Result_44>;
1502
1627
  /**
1503
1628
  * / The condense checkpoints in the retained log at or above `startSeq`, oldest first.
1504
1629
  * /
@@ -1510,7 +1635,7 @@ export interface Engram {
1510
1635
  * / Owner-only like every other archive surface, and for the same structural reason: these rows
1511
1636
  * / carry the chain positions and roots of entries whose paths were inside the hash preimage.
1512
1637
  */
1513
- listCondenseCheckpoints: ActorMethod<[bigint, bigint], Result_38>;
1638
+ listCondenseCheckpoints: ActorMethod<[bigint, bigint], Result_43>;
1514
1639
  /**
1515
1640
  * / ⟨0.16.0⟩ `metrics()` DELETED — absorbed by `about()`.
1516
1641
  * /
@@ -1519,13 +1644,13 @@ export interface Engram {
1519
1644
  * / both and know which one owned each field. Every field here survives on `about()`, day-flooring
1520
1645
  * / included.
1521
1646
  */
1522
- listCycleSnapshots: ActorMethod<[bigint, bigint], Result_37>;
1647
+ listCycleSnapshots: ActorMethod<[bigint, bigint], Result_42>;
1523
1648
  /**
1524
1649
  * / Same `withheld` treatment as listMemoryFiles — the tombstone listing filtered reserved paths
1525
1650
  * / for non-owners just as silently, and a caller could not tell a filtered tombstone list from a
1526
1651
  * / complete one. Counted before slicing, so policy-hidden rows never blur into paging.
1527
1652
  */
1528
- listDeletedMemoryFiles: ActorMethod<[bigint, bigint], Result_36>;
1653
+ listDeletedMemoryFiles: ActorMethod<[bigint, bigint], Result_41>;
1529
1654
  /**
1530
1655
  * / Stays on the engram under B1 (hybrid): withdrawal custody does not leave.
1531
1656
  * /
@@ -1541,7 +1666,7 @@ export interface Engram {
1541
1666
  * / The item's field is `value`, not `address`: a list may hold a venue value that is no address.
1542
1667
  * / Readable by the owner, an active agent or an active guardian, as the old list was.
1543
1668
  */
1544
- listEip712Destinations: ActorMethod<[Uint8Array | number[], bigint, bigint], Result_35>;
1669
+ listEip712Destinations: ActorMethod<[Uint8Array | number[], bigint, bigint], Result_40>;
1545
1670
  /**
1546
1671
  * / The registered shapes — E3: encodeTypeString is the display artifact, verbatim.
1547
1672
  * / Stays on the engram under B1 (hybrid): EIP-712 signing is custody, and custody does not leave.
@@ -1554,7 +1679,15 @@ export interface Engram {
1554
1679
  * / from `eip712FieldRules` — they are part of what the type authorises, so a reader of the list must
1555
1680
  * / not have to make a second call to learn them. The row type is `Eip712TypeView`.
1556
1681
  */
1557
- listEip712Types: ActorMethod<[bigint, bigint], Result_34>;
1682
+ listEip712Types: ActorMethod<[bigint, bigint], Result_39>;
1683
+ /**
1684
+ * / ⟨2026-10-21, round 11 c⟩ Guardians' disputes, oldest first. Same visibility as
1685
+ * / `listRepudiations` and `listRecordNotes`: the owner and ACTIVE guardians read the rows; an
1686
+ * / agent gets an empty page whose `withheld` counts them (ruling 16 B holds — a dispute is the
1687
+ * / guardian's entry, not the agent's); a stranger, a pending guardian and the anonymous caller are
1688
+ * / refused.
1689
+ */
1690
+ listGuardianDisputes: ActorMethod<[bigint, bigint], Result_38>;
1558
1691
  /**
1559
1692
  * / Accessible by owner and guardians.
1560
1693
  * /
@@ -1563,7 +1696,7 @@ export interface Engram {
1563
1696
  * / pause writes" — a claim about who can STOP it. A caller who cannot tell that from "you may not
1564
1697
  * / see the roster" has been told the engram is unguarded when it may be fully guarded.
1565
1698
  */
1566
- listGuardians: ActorMethod<[bigint, bigint], Result_33>;
1699
+ listGuardians: ActorMethod<[bigint, bigint], Result_37>;
1567
1700
  /**
1568
1701
  * / The export receipts in the retained log at or above `startSeq`, oldest first.
1569
1702
  * /
@@ -1581,7 +1714,7 @@ export interface Engram {
1581
1714
  * / Read `MemoryRouter.ReceiptPage` before reading `page.total` as a receipt count. It is not one;
1582
1715
  * / it is the chain's length, and the declaration says why.
1583
1716
  */
1584
- listMemoryExportReceipts: ActorMethod<[bigint, bigint], Result_32>;
1717
+ listMemoryExportReceipts: ActorMethod<[bigint, bigint], Result_36>;
1585
1718
  /**
1586
1719
  * / ⟨0.16.0⟩ THE `withheld` EXEMPLAR — L1 names this exact method as the defect it fixes.
1587
1720
  * /
@@ -1598,8 +1731,17 @@ export interface Engram {
1598
1731
  * / Note the count is computed from the unfiltered list before slicing, so it reports rows hidden
1599
1732
  * / by POLICY, never rows merely off the end of this page — those are `total`'s job. Conflating
1600
1733
  * / the two would rebuild the ambiguity in a new place.
1734
+ * /
1735
+ * / ⟨2026-10-21, the owner's round-11 answer k: an author on every file row⟩ Each row also
1736
+ * / carries `lastModifiedBy` (`Types.MemoryFileRow`): the key that wrote the file's current
1737
+ * / version, so a phone's file list can say "changed 2 h ago by Recorder" without a read per
1738
+ * / file. It is what `readMemory` already serves to the same callers under the same gate, so it
1739
+ * / tells no caller anything it could not read. Born `opt` (ADR-0018 rule 1). Looked up only for
1740
+ * / the rows of THIS page (`MemoryRouter.info`), after the slice, so the cost is one lookup per
1741
+ * / row served, never one per file stored. A WIDENED REPLY: a reader that decodes the row by
1742
+ * / position rather than by field name breaks — none in this repository does.
1601
1743
  */
1602
- listMemoryFiles: ActorMethod<[bigint, bigint], Result_31>;
1744
+ listMemoryFiles: ActorMethod<[bigint, bigint], Result_35>;
1603
1745
  /**
1604
1746
  * / One page of the memory log, seq-ordered, optionally narrowed to one author.
1605
1747
  * /
@@ -1626,7 +1768,7 @@ export interface Engram {
1626
1768
  * / with the disclosures that make the page verifiable — the hidden-bound defect the census itself
1627
1769
  * / names on previewCondense's row.
1628
1770
  */
1629
- listMemoryLog: ActorMethod<[bigint, bigint, [] | [Principal]], Result_30>;
1771
+ listMemoryLog: ActorMethod<[bigint, bigint, [] | [Principal]], Result_34>;
1630
1772
  /**
1631
1773
  * / The caller's OWN spend-approval requests. ⟨0.16.0, L1 + L3 — fixed 2026-08-18⟩
1632
1774
  * /
@@ -1645,7 +1787,7 @@ export interface Engram {
1645
1787
  * / (The unbounded MAP is filed separately — pruning an approval record destroys evidence of what
1646
1788
  * / was asked, which is a retention ruling rather than a shape fix.)
1647
1789
  */
1648
- listMyApprovalRequests: ActorMethod<[bigint, bigint], Result_29>;
1790
+ listMyApprovalRequests: ActorMethod<[bigint, bigint], Result_33>;
1649
1791
  /**
1650
1792
  * / The payer's own sessions, live ones first. PAYER-SCOPED: a caller sees only their own, which
1651
1793
  * / is why this needs no role — a session id is not a secret from the person who paid for it.
@@ -1656,7 +1798,7 @@ export interface Engram {
1656
1798
  * / client would break on — the market paged its own pending withdrawals before its cut for the
1657
1799
  * / same reason. The order is the order sessions were opened.
1658
1800
  */
1659
- listMySessions: ActorMethod<[bigint, bigint], Result_28>;
1801
+ listMySessions: ActorMethod<[bigint, bigint], Result_32>;
1660
1802
  /**
1661
1803
  * /
1662
1804
  * / ⟨0.16.0, L3⟩ Paged and enveloped like every other `list*`, and the envelope here is uniformity
@@ -1671,7 +1813,7 @@ export interface Engram {
1671
1813
  * / IT recorded, so this chain is what a caller composes with when currency matters — which it
1672
1814
  * / cannot do if it needs a role here.
1673
1815
  */
1674
- listOwnershipTransfers: ActorMethod<[bigint, bigint], Result_27>;
1816
+ listOwnershipTransfers: ActorMethod<[bigint, bigint], Result_31>;
1675
1817
  /**
1676
1818
  * / ⟨2026-09-29, the platform's question from the build review⟩ OWNER-ONLY: how many payment
1677
1819
  * / signatures each agent has obtained today, and the daily limit (200, `PaymentSignCap`). The
@@ -1689,7 +1831,7 @@ export interface Engram {
1689
1831
  * / engram enforces for it — beside the agents, never a row among them
1690
1832
  * / (`PaymentSignCap.marketplaceRow`). Null when no marketplace is set.
1691
1833
  */
1692
- listPaymentSignatureCounts: ActorMethod<[bigint, bigint], Result_26>;
1834
+ listPaymentSignatureCounts: ActorMethod<[bigint, bigint], Result_30>;
1693
1835
  /**
1694
1836
  * / Agent records removed by a reset. Each row is a NAMED record with the fields `principal`,
1695
1837
  * / `name`, `registeredAt` and `purgedAt` — read them BY NAME, never by position.
@@ -1731,7 +1873,7 @@ export interface Engram {
1731
1873
  * / earlier ending, or the reset) — the facts `resyncAgentEdges` re-sends. The stored rows are
1732
1874
  * / served as they are.
1733
1875
  */
1734
- listPurgedAgents: ActorMethod<[bigint, bigint], Result_25>;
1876
+ listPurgedAgents: ActorMethod<[bigint, bigint], Result_29>;
1735
1877
  /**
1736
1878
  * / ⟨0.16.0⟩ ONE ACCESSOR, folding `readReadLog` and `getDenialLog` — and the fold only became
1737
1879
  * / safe because of a change made earlier in this same leg.
@@ -1794,7 +1936,15 @@ export interface Engram {
1794
1936
  * / on the chained record — the same `RecordView` filter, and `withheld` counts what it removed
1795
1937
  * / together with what `successFilter` removed. WHAT WOULD MAKE THIS WRONG: see `listAuditEntries`.
1796
1938
  */
1797
- listReadLog: ActorMethod<[[] | [boolean], bigint, bigint], Result_24>;
1939
+ listReadLog: ActorMethod<[[] | [boolean], bigint, bigint], Result_28>;
1940
+ /**
1941
+ * / ⟨2026-10-21, round 11 b⟩ The owner's notes, oldest first. Same visibility as
1942
+ * / `listRepudiations`, for the same reason: the owner and ACTIVE guardians read the rows; an agent
1943
+ * / reads only the entries it caused (follow-up 16 B), and every note is the owner's, so an agent
1944
+ * / gets an empty page whose `withheld` counts the notes in its window — never "there are none". A
1945
+ * / stranger, a pending guardian and the anonymous caller are refused.
1946
+ */
1947
+ listRecordNotes: ActorMethod<[bigint, bigint], Result_27>;
1798
1948
  /**
1799
1949
  * / Same visibility as listAuditEntries: the owner, this engram's agents, and ACTIVE guardians
1800
1950
  * / see disputes. An unauthorized read REFUSES — it does not return an empty list, because an
@@ -1811,7 +1961,18 @@ export interface Engram {
1811
1961
  * / WOULD MAKE THIS WRONG: a ruling that an agent may see the disputes of its own writes; this would
1812
1962
  * / then have to look up each disputed version's writer, which it does not do today.
1813
1963
  */
1814
- listRepudiations: ActorMethod<[bigint, bigint], Result_23>;
1964
+ listRepudiations: ActorMethod<[bigint, bigint], Result_26>;
1965
+ /**
1966
+ * / ⟨2026-10-21, the owner's round-11 answer f⟩ OWNER-ONLY: the sign-ins, each with the name its app
1967
+ * / registered. The same tokens, in the same order and paged the same way, as `listBearerTokens`,
1968
+ * / each beside `clientName` — the RFC 7591 `client_name` the app registered when the token was
1969
+ * / issued (`People.SignIn` says when it is null, and that it is the app's own claim). A phone
1970
+ * / owner read "localhost" for every app signed in through a local bridge and could not tell two
1971
+ * / apps apart. A NEW method rather than a field on `BearerToken`: that record is stored (M0170)
1972
+ * / and `listBearerTokens`' reply is shipped (never widened). An agent, a guardian, a stranger and
1973
+ * / the anonymous caller are refused, by `listBearerTokens`' own gate and for its reason.
1974
+ */
1975
+ listSignIns: ActorMethod<[bigint, bigint], Result_25>;
1815
1976
  /**
1816
1977
  * / Owner: advance the review cursor — "I have seen everything up to and including uptoAuditId"
1817
1978
  * / (null = everything at the current head). Bounded so the attestation can never cover entries
@@ -1824,6 +1985,19 @@ export interface Engram {
1824
1985
  * / changes only which ids the console can pass here — it cannot desynchronise the cursor.
1825
1986
  */
1826
1987
  markAgentWritesReviewed: ActorMethod<[[] | [bigint]], Result_12>;
1988
+ /**
1989
+ * / ⟨2026-10-21, the owner's round-11 answer g⟩ AN AGENT READS ITS OWN GRANT — to the calling key
1990
+ * / only (`People.AgentGrant`): what it may read, where it may write, its rate, and the payment
1991
+ * / limits enforced against that key. It reveals nothing a refusal does not already say, and lets
1992
+ * / an agent correct itself before it writes rather than after the owner explains a refusal by
1993
+ * / hand. `getSpendPolicy` and `listAgents` stay owner-only; this answers one row, the caller's.
1994
+ * /
1995
+ * / WHO: an ACTIVE agent (`Gated.authorize(#agentOrOwner)`). Refused, each by its own text: the
1996
+ * / owner by name (`People.OWNER_HAS_NO_GRANT`), a revoked or resigned agent ("Agent is revoked" /
1997
+ * / "Agent has resigned" — an ended agent may do nothing, and its old grant would read as powers),
1998
+ * / a guardian and a stranger ("Not authorized"), the anonymous caller. A query: it writes nothing.
1999
+ */
2000
+ myGrant: ActorMethod<[], Result_24>;
1827
2001
  /**
1828
2002
  * / The AGENT's current key nominates the key that will replace it. Nothing moves yet: the new
1829
2003
  * / key must accept, by its own call, within 24 hours (`acceptAgentKeyNomination`). One pending
@@ -1862,8 +2036,8 @@ export interface Engram {
1862
2036
  * / WHAT WOULD MAKE THIS WRONG: an await added between `ChildAllowance.take` and the registry call; the
1863
2037
  * / registry's `CHILD_MIN_ATTACHED_CYCLES` moving without `CHILD_ATTACH_CYCLES`.
1864
2038
  */
1865
- openChildEngram: ActorMethod<[], Result_22>;
1866
- openSession: ActorMethod<[SessionConfig, PaymentSignature], Result_21>;
2039
+ openChildEngram: ActorMethod<[], Result_23>;
2040
+ openSession: ActorMethod<[SessionConfig, PaymentSignature], Result_22>;
1867
2041
  /**
1868
2042
  * / Withdraw tokens to the owner's principal. This is the ONLY way to
1869
2043
  * / move tokens out of the engram to an external address, and the
@@ -1928,12 +2102,17 @@ export interface Engram {
1928
2102
  * / engagement on the agent's track record, and what to do. Before, the reply was `#Ok` with the
1929
2103
  * / record alone even when the registry had refused the start, so the agent was never told.
1930
2104
  */
1931
- pairAgent: ActorMethod<[{ enrolment: Enrolment; code: string }], Result_20>;
2105
+ pairAgent: ActorMethod<[{ enrolment: Enrolment; code: string }], Result_21>;
1932
2106
  /**
1933
2107
  * / ⟨0.16.0, L2.2 — renamed from `guardianPauseWrites`⟩ Same correction as freezePayments above:
1934
2108
  * / owner-or-guardian, and `resumeWrites` never carried the prefix either.
1935
2109
  */
1936
2110
  pauseWrites: ActorMethod<[], Result_1>;
2111
+ /**
2112
+ * / ⟨2026-10-21, the owner's round-11 answer d⟩ `pauseWrites` with a reason; everything said of
2113
+ * / `freezePaymentsWithReason` holds, with `canPauseWrites` as the guardian's grant.
2114
+ */
2115
+ pauseWritesWithReason: ActorMethod<[string], Result_1>;
1937
2116
  /**
1938
2117
  * / What condensing through `toSeq` would do, and whether it is unlocked. COMMITS NOTHING — it is
1939
2118
  * / a query, so it structurally cannot; a preview that wrote would be its own trap.
@@ -1954,7 +2133,7 @@ export interface Engram {
1954
2133
  * / `unlocked` is the export-receipt gate ONLY. It is not a promise the condense will land: the
1955
2134
  * / history-budget delta is checked at commit time and can still refuse a short prefix.
1956
2135
  */
1957
- previewCondense: ActorMethod<[bigint], Result_19>;
2136
+ previewCondense: ActorMethod<[bigint], Result_20>;
1958
2137
  /**
1959
2138
  * / A quote for a session this caller has not opened and is not committed to — the intent a
1960
2139
  * / buyer signs against. Pure dry run, no state, no funds.
@@ -1984,6 +2163,26 @@ export interface Engram {
1984
2163
  * / `expiryNs`. Same value, same meaning; only the name carries the unit now.
1985
2164
  */
1986
2165
  previewOpenSession: ActorMethod<[], SessionIntent>;
2166
+ /**
2167
+ * / ⟨2026-10-21, the owner's round-11 answer k: a trim preview⟩ What a PROPOSED history policy
2168
+ * / would remove from the store as it stands — "about N old copies in F files would be removed" —
2169
+ * / asked BEFORE the owner saves it. A query: nothing is saved, armed or evicted.
2170
+ * /
2171
+ * / WHO: the OWNER only (`#ownerOnly`). An agent, a guardian, a stranger and the anonymous caller
2172
+ * / are each refused with `requireOwner`'s words; the setter it previews is owner-only too.
2173
+ * /
2174
+ * / HOW: the proposal must pass the setter's own checks (`retentionEntriesRefusal`), so the preview
2175
+ * / never answers for a policy the setter would refuse. The guards a save would arm are computed
2176
+ * / exactly as the setter computes them (`RetentionPolicy.armGuards`), and each file is planned by
2177
+ * / the planner the sweep executes (`MemoryRouter.previewEviction` → `Retention.plan`), as the
2178
+ * / owner (the sweep's `maintainPrincipal`), AT THE INSTANT its guard lets go — so a rule that
2179
+ * / waits 14 days is counted as it will stand then, when the agent floor has released more. Per
2180
+ * / rule: copies, files, bytes and `notBeforeNs`. The count is "about": writes before the rule
2181
+ * / takes effect change it.
2182
+ * / HONEST WHEN CUT SHORT: `complete = false` when the planning budget
2183
+ * / (`MemoryRouter.PREVIEW_MAX_DROPS`) ran out — the totals are then a floor, and say so.
2184
+ */
2185
+ previewRetention: ActorMethod<[Array<[string, RetentionClassSpec]>], Result_19>;
1987
2186
  /**
1988
2187
  * / Read one memory file at its current version.
1989
2188
  * /
@@ -2150,6 +2349,19 @@ export interface Engram {
2150
2349
  * / line, so the roster is theirs and its contents are not a secret being withheld from them.
2151
2350
  */
2152
2351
  removeGuardian: ActorMethod<[Principal], Result_1>;
2352
+ /**
2353
+ * / ⟨2026-10-21, the owner's round-11 answer a⟩ OWNER-ONLY: give an agent a new name. A name was
2354
+ * / fixed at the invite, and two agents both called "agent" is how the 2026-10-20 session started.
2355
+ * / Only the VALUE of the stored `AgentRecord.name` changes — no new state, no reshaped record —
2356
+ * / and the change is on the record as `agent.rename` (`principal=<key> name=<new name>`, the name
2357
+ * / last). An ended agent may be renamed too (`People.renameTarget` says why).
2358
+ * / Refused: an agent (itself included), a guardian and a stranger by `requireOwner`'s "Not owner",
2359
+ * / the anonymous caller by its own text; a name that is empty, over `MAX_NAME_LENGTH` or holds a
2360
+ * / line break is `#Invalid` (`People.nameRefusal`); an unknown key is `#NotFound`; the agent's
2361
+ * / current name is `#Conflict`. Nothing changes on any refusal. Not alerted: the owner is the one
2362
+ * / renaming (`ActionAlerts.classify` answers null for `agent.rename`).
2363
+ */
2364
+ renameAgent: ActorMethod<[Principal, string], Result_1>;
2153
2365
  /**
2154
2366
  * / Owner disavows a specific memory write, in the open. Marks — never deletes: the content and
2155
2367
  * / the original audit entry stay exactly where they were; this appends a chained
@@ -2481,6 +2693,12 @@ export interface Engram {
2481
2693
  * / called it an "ops floor: retention enforcement deletes owner backup data silently", mitigated
2482
2694
  * / by a `Debug.print` nobody reads. An owner lowering the cap is destroying their own backups;
2483
2695
  * / they are told how many, in the reply and in the audit line.
2696
+ * /
2697
+ * / ⟨2026-10-21, the owner's round-11 answers h and m⟩ The number now bounds EACH creator's
2698
+ * / backups of the kind (`Backup.enforceRetention`): an agent's finalize prunes only that agent's
2699
+ * / own, and this setter applies the number to every creator's set, so `prunedBackups` counts
2700
+ * / across all of them. "The write is the read" above went stale for a second phone, which never
2701
+ * / made the write: `getBackupRetention` is the read.
2484
2702
  */
2485
2703
  setBackupRetention: ActorMethod<[string, bigint], Result_9>;
2486
2704
  /**
@@ -2546,7 +2764,12 @@ export interface Engram {
2546
2764
  */
2547
2765
  setGuardianAlertConfig: ActorMethod<[AlertConfig], Result_1>;
2548
2766
  /**
2549
- * / Per-prefix retention policy. Longest prefix wins; anything unmatched keeps everything.
2767
+ * / Per-prefix retention policy. The longest rule that covers a path wins; anything uncovered
2768
+ * / keeps everything.
2769
+ * /
2770
+ * / ⟨2026-10-21, the owner's round-11 answer i⟩ "Covers" is the folder matcher
2771
+ * / (`AgentPaths.covers`, through `RetentionPolicy.resolve`): a rule ending in "/" governs
2772
+ * / everything beneath it, any other rule exactly one path. It was bare text prefix until that day.
2550
2773
  * /
2551
2774
  * / A CHANGE does not take effect immediately, in EITHER direction: every prefix whose EFFECTIVE
2552
2775
  * / class moves is guarded for the same window as the agent floor, so history cannot be
@@ -2777,6 +3000,28 @@ export interface Engram {
2777
3000
  ],
2778
3001
  Result_3
2779
3002
  >;
3003
+ /**
3004
+ * / ⟨2026-10-21, the owner's round-11 answer e⟩ A GUARDIAN STEPS DOWN: the caller ends their own
3005
+ * / guardianship of this engram. It removes a power from the one who holds it and grants none.
3006
+ * / Before, only the owner could remove a guardian, so one who wanted out could only stop watching
3007
+ * / without anyone knowing — worse than an honest exit on the record.
3008
+ * /
3009
+ * / WHO: anyone holding a guardian record here, `#Pending` or `#Active`; never refused for the
3010
+ * / record's state. The owner is refused by name (`People.OWNER_IS_NO_GUARDIAN`: their way is
3011
+ * / `removeGuardian`); an agent or a stranger is `#NotFound` (`People.NOT_A_GUARDIAN`, a fact about
3012
+ * / the caller told to the caller, as `resignAgent` does); the anonymous caller is refused.
3013
+ * /
3014
+ * / WHAT IT RECORDS: one `guardian.stepDown` entry under `#Guardian`
3015
+ * / (`principal=<key> was=active|pending name=<name>`). Being a `guardian.*` operation it reaches
3016
+ * / the owner's and the other guardians' alerts in the #guardian class, on by default, and the
3017
+ * / guardian who left gets one farewell delivery before their channel goes (the drain's lazy
3018
+ * / cleanup in `drainActionAlerts`, as for a removed guardian).
3019
+ * /
3020
+ * / WHAT IT LEAVES: a brake this guardian pulled stays on — lifting one is the owner's; their
3021
+ * / disputes stay on the record. Like `removeGuardian`, it is not terminal: the owner may invite
3022
+ * / the same person again.
3023
+ */
3024
+ stepDownAsGuardian: ActorMethod<[], Result_1>;
2780
3025
  /**
2781
3026
  * / OWNER force-close, for a session the payer abandoned.
2782
3027
  * /
@@ -3201,6 +3446,15 @@ export interface GenesisNote {
3201
3446
  version: string;
3202
3447
  genesisAtNs: bigint;
3203
3448
  }
3449
+ export interface GuardianDispute {
3450
+ about: bigint;
3451
+ atNs: bigint;
3452
+ path: [] | [string];
3453
+ auditId: bigint;
3454
+ version: [] | [bigint];
3455
+ guardian: Principal;
3456
+ reason: string;
3457
+ }
3204
3458
  export interface GuardianPermissions {
3205
3459
  canFreezePayments: boolean;
3206
3460
  canRevokeAgents: boolean;
@@ -3248,7 +3502,7 @@ export interface KeyNomination {
3248
3502
  export interface LogPage {
3249
3503
  firstAvailableSeq: bigint;
3250
3504
  head: Uint8Array | number[];
3251
- page: Page_7;
3505
+ page: Page_9;
3252
3506
  }
3253
3507
  export interface LogPosition {
3254
3508
  reads: bigint;
@@ -3284,6 +3538,12 @@ export interface MemoryFile {
3284
3538
  lastModifiedBy: Principal;
3285
3539
  lastModifiedAtNs: bigint;
3286
3540
  }
3541
+ export interface MemoryFileRow {
3542
+ path: string;
3543
+ version: bigint;
3544
+ lastModifiedBy: [] | [Principal];
3545
+ lastModifiedAtNs: bigint;
3546
+ }
3287
3547
  export interface MemoryHistory {
3288
3548
  evictions: Array<MemoryEviction>;
3289
3549
  oldestRetainedVersion: bigint;
@@ -3433,74 +3693,94 @@ export interface OwnershipTransfer {
3433
3693
  export interface Page {
3434
3694
  total: bigint;
3435
3695
  withheld: bigint;
3436
- items: Array<Repudiation>;
3696
+ items: Array<SignIn>;
3437
3697
  }
3438
3698
  export interface Page_1 {
3439
3699
  total: bigint;
3440
3700
  withheld: bigint;
3441
- items: Array<AuditEntry>;
3701
+ items: Array<Repudiation>;
3442
3702
  }
3443
3703
  export interface Page_10 {
3444
3704
  total: bigint;
3445
3705
  withheld: bigint;
3446
- items: Array<GuardianRecord>;
3706
+ items: Array<MemoryFileRow>;
3447
3707
  }
3448
3708
  export interface Page_11 {
3449
3709
  total: bigint;
3450
3710
  withheld: bigint;
3451
- items: Array<Eip712TypeView>;
3711
+ items: Array<ExportReceiptRow>;
3452
3712
  }
3453
3713
  export interface Page_12 {
3454
3714
  total: bigint;
3455
3715
  withheld: bigint;
3456
- items: Array<Eip712Destination>;
3716
+ items: Array<GuardianRecord>;
3457
3717
  }
3458
3718
  export interface Page_13 {
3459
3719
  total: bigint;
3460
3720
  withheld: bigint;
3461
- items: Array<string>;
3721
+ items: Array<GuardianDispute>;
3462
3722
  }
3463
3723
  export interface Page_14 {
3464
3724
  total: bigint;
3465
3725
  withheld: bigint;
3466
- items: Array<CycleSnapshot>;
3726
+ items: Array<Eip712TypeView>;
3467
3727
  }
3468
3728
  export interface Page_15 {
3469
3729
  total: bigint;
3470
3730
  withheld: bigint;
3471
- items: Array<CondenseCheckpointRow>;
3731
+ items: Array<Eip712Destination>;
3472
3732
  }
3473
3733
  export interface Page_16 {
3474
3734
  total: bigint;
3475
3735
  withheld: bigint;
3476
- items: Array<BearerToken>;
3736
+ items: Array<string>;
3477
3737
  }
3478
3738
  export interface Page_17 {
3479
3739
  total: bigint;
3480
3740
  withheld: bigint;
3481
- items: Array<BackupMetadata>;
3741
+ items: Array<CycleSnapshot>;
3482
3742
  }
3483
3743
  export interface Page_18 {
3484
3744
  total: bigint;
3485
3745
  withheld: bigint;
3486
- items: Array<{ status: AgentStatus; principal: Principal; name: string }>;
3746
+ items: Array<CondenseCheckpointRow>;
3487
3747
  }
3488
3748
  export interface Page_19 {
3489
3749
  total: bigint;
3490
3750
  withheld: bigint;
3491
- items: Array<AgentRecord>;
3751
+ items: Array<BearerToken>;
3492
3752
  }
3493
3753
  export interface Page_2 {
3494
3754
  total: bigint;
3495
3755
  withheld: bigint;
3496
- items: Array<PurgedAgent>;
3756
+ items: Array<RecordNote>;
3497
3757
  }
3498
3758
  export interface Page_20 {
3499
3759
  total: bigint;
3500
3760
  withheld: bigint;
3501
- items: Array<ActivitySnapshot>;
3761
+ items: Array<BackupMetadata>;
3502
3762
  }
3503
3763
  export interface Page_21 {
3764
+ total: bigint;
3765
+ withheld: bigint;
3766
+ items: Array<{ status: AgentStatus; principal: Principal; name: string }>;
3767
+ }
3768
+ export interface Page_22 {
3769
+ total: bigint;
3770
+ withheld: bigint;
3771
+ items: Array<AgentRecord>;
3772
+ }
3773
+ export interface Page_23 {
3774
+ total: bigint;
3775
+ withheld: bigint;
3776
+ items: Array<AgentSpendRow>;
3777
+ }
3778
+ export interface Page_24 {
3779
+ total: bigint;
3780
+ withheld: bigint;
3781
+ items: Array<ActivitySnapshot>;
3782
+ }
3783
+ export interface Page_25 {
3504
3784
  total: bigint;
3505
3785
  withheld: bigint;
3506
3786
  items: Array<OwnerRow>;
@@ -3508,42 +3788,51 @@ export interface Page_21 {
3508
3788
  export interface Page_3 {
3509
3789
  total: bigint;
3510
3790
  withheld: bigint;
3511
- items: Array<AgentPaymentSignatures>;
3791
+ items: Array<AuditEntry>;
3512
3792
  }
3513
3793
  export interface Page_4 {
3514
3794
  total: bigint;
3515
3795
  withheld: bigint;
3516
- items: Array<OwnershipTransfer>;
3796
+ items: Array<PurgedAgent>;
3517
3797
  }
3518
3798
  export interface Page_5 {
3519
3799
  total: bigint;
3520
3800
  withheld: bigint;
3521
- items: Array<EngramSessionState>;
3801
+ items: Array<AgentPaymentSignatures>;
3522
3802
  }
3523
3803
  export interface Page_6 {
3524
3804
  total: bigint;
3525
3805
  withheld: bigint;
3526
- items: Array<ApprovalRequest>;
3806
+ items: Array<OwnershipTransfer>;
3527
3807
  }
3528
3808
  export interface Page_7 {
3529
3809
  total: bigint;
3530
3810
  withheld: bigint;
3531
- items: Array<MemoryLogEvent>;
3811
+ items: Array<EngramSessionState>;
3532
3812
  }
3533
3813
  export interface Page_8 {
3534
3814
  total: bigint;
3535
3815
  withheld: bigint;
3536
- items: Array<{ path: string; version: bigint; lastModifiedAtNs: bigint }>;
3816
+ items: Array<ApprovalRequest>;
3537
3817
  }
3538
3818
  export interface Page_9 {
3539
3819
  total: bigint;
3540
3820
  withheld: bigint;
3541
- items: Array<ExportReceiptRow>;
3821
+ items: Array<MemoryLogEvent>;
3542
3822
  }
3543
3823
  export interface Pairing {
3544
3824
  agent: AgentRecord;
3545
3825
  trackRecord: TrackRecordNotice;
3546
3826
  }
3827
+ export interface PaymentLimits {
3828
+ maxSessionDeposit: [] | [bigint];
3829
+ maxPerDay: [] | [bigint];
3830
+ maxSessionDuration: [] | [bigint];
3831
+ sessionIdleTimeout: [] | [bigint];
3832
+ rateLimitPerMinute: [] | [bigint];
3833
+ maxPerTransaction: [] | [bigint];
3834
+ maxConcurrentSessions: [] | [bigint];
3835
+ }
3547
3836
  export interface PaymentSignature {
3548
3837
  signature: Uint8Array | number[];
3549
3838
  asset: [] | [string];
@@ -3557,7 +3846,7 @@ export interface PaymentSignature {
3557
3846
  export interface PaymentSignatureCounts {
3558
3847
  day: bigint;
3559
3848
  marketplace: [] | [MarketplacePaymentSignatures];
3560
- agents: Page_3;
3849
+ agents: Page_5;
3561
3850
  limit: bigint;
3562
3851
  }
3563
3852
  export interface PurgedAgent {
@@ -3586,9 +3875,15 @@ export interface RailHealth {
3586
3875
  }
3587
3876
  export interface ReceiptPage {
3588
3877
  firstAvailableSeq: bigint;
3589
- page: Page_9;
3878
+ page: Page_11;
3590
3879
  scannedThroughSeq: bigint;
3591
3880
  }
3881
+ export interface RecordNote {
3882
+ about: bigint;
3883
+ atNs: bigint;
3884
+ note: string;
3885
+ auditId: bigint;
3886
+ }
3592
3887
  export interface RecordPage {
3593
3888
  ringFloor: bigint;
3594
3889
  total: bigint;
@@ -3620,66 +3915,74 @@ export type Result_15 = { Ok: GuardianRecord } | { Err: Error };
3620
3915
  export type Result_16 = { Ok: EngramEscrowRecovery } | { Err: Error };
3621
3916
  export type Result_17 = { Ok: MemoryByteChunk } | { Err: Error };
3622
3917
  export type Result_18 = { Ok: Array<BatchReadItem> } | { Err: Error };
3623
- export type Result_19 = { Ok: CondensePreview } | { Err: Error };
3918
+ export type Result_19 = { Ok: RetentionPreview } | { Err: Error };
3624
3919
  export type Result_2 = { Ok: ControlHandover } | { Err: Error };
3625
- export type Result_20 = { Ok: Pairing } | { Err: Error };
3626
- export type Result_21 = { Ok: EngramSessionState } | { Err: Error };
3627
- export type Result_22 = { Ok: Principal } | { Err: Error };
3628
- export type Result_23 = { Ok: Page } | { Err: Error };
3629
- export type Result_24 = { Ok: Page_1 } | { Err: Error };
3630
- export type Result_25 = { Ok: Page_2 } | { Err: Error };
3631
- export type Result_26 = { Ok: PaymentSignatureCounts } | { Err: Error };
3632
- export type Result_27 = { Ok: Page_4 } | { Err: Error };
3633
- export type Result_28 = { Ok: Page_5 } | { Err: Error };
3634
- export type Result_29 = { Ok: Page_6 } | { Err: Error };
3920
+ export type Result_20 = { Ok: CondensePreview } | { Err: Error };
3921
+ export type Result_21 = { Ok: Pairing } | { Err: Error };
3922
+ export type Result_22 = { Ok: EngramSessionState } | { Err: Error };
3923
+ export type Result_23 = { Ok: Principal } | { Err: Error };
3924
+ export type Result_24 = { Ok: AgentGrant } | { Err: Error };
3925
+ export type Result_25 = { Ok: Page } | { Err: Error };
3926
+ export type Result_26 = { Ok: Page_1 } | { Err: Error };
3927
+ export type Result_27 = { Ok: Page_2 } | { Err: Error };
3928
+ export type Result_28 = { Ok: Page_3 } | { Err: Error };
3929
+ export type Result_29 = { Ok: Page_4 } | { Err: Error };
3635
3930
  export type Result_3 = { Ok: X402SignOutcome } | { Err: Error };
3636
- export type Result_30 = { Ok: LogPage } | { Err: Error };
3637
- export type Result_31 = { Ok: Page_8 } | { Err: Error };
3638
- export type Result_32 = { Ok: ReceiptPage } | { Err: Error };
3639
- export type Result_33 = { Ok: Page_10 } | { Err: Error };
3640
- export type Result_34 = { Ok: Page_11 } | { Err: Error };
3641
- export type Result_35 = { Ok: Page_12 } | { Err: Error };
3642
- export type Result_36 = { Ok: Page_13 } | { Err: Error };
3643
- export type Result_37 = { Ok: Page_14 } | { Err: Error };
3644
- export type Result_38 = { Ok: CheckpointPage } | { Err: Error };
3645
- export type Result_39 = { Ok: Page_16 } | { Err: Error };
3931
+ export type Result_30 = { Ok: PaymentSignatureCounts } | { Err: Error };
3932
+ export type Result_31 = { Ok: Page_6 } | { Err: Error };
3933
+ export type Result_32 = { Ok: Page_7 } | { Err: Error };
3934
+ export type Result_33 = { Ok: Page_8 } | { Err: Error };
3935
+ export type Result_34 = { Ok: LogPage } | { Err: Error };
3936
+ export type Result_35 = { Ok: Page_10 } | { Err: Error };
3937
+ export type Result_36 = { Ok: ReceiptPage } | { Err: Error };
3938
+ export type Result_37 = { Ok: Page_12 } | { Err: Error };
3939
+ export type Result_38 = { Ok: Page_13 } | { Err: Error };
3940
+ export type Result_39 = { Ok: Page_14 } | { Err: Error };
3646
3941
  export type Result_4 = { Ok: Eip712SignatureOut } | { Err: Error };
3647
- export type Result_40 = { Ok: Page_17 } | { Err: Error };
3648
- export type Result_41 = { Ok: RecordPage } | { Err: Error };
3649
- export type Result_42 = { Ok: Page_18 } | { Err: Error };
3650
- export type Result_43 = { Ok: Page_19 } | { Err: Error };
3651
- export type Result_44 = { Ok: Page_20 } | { Err: Error };
3652
- export type Result_45 = { Ok: string } | { Err: Error };
3653
- export type Result_46 = { Ok: boolean } | { Err: Error };
3654
- export type Result_47 = { Ok: [] | [string] } | { Err: Error };
3655
- export type Result_48 = { Ok: WorldIdRpContext } | { Err: Error };
3656
- export type Result_49 = { Ok: WorldIdConfig } | { Err: Error };
3942
+ export type Result_40 = { Ok: Page_15 } | { Err: Error };
3943
+ export type Result_41 = { Ok: Page_16 } | { Err: Error };
3944
+ export type Result_42 = { Ok: Page_17 } | { Err: Error };
3945
+ export type Result_43 = { Ok: CheckpointPage } | { Err: Error };
3946
+ export type Result_44 = { Ok: Page_19 } | { Err: Error };
3947
+ export type Result_45 = { Ok: Page_20 } | { Err: Error };
3948
+ export type Result_46 = { Ok: RecordPage } | { Err: Error };
3949
+ export type Result_47 = { Ok: Page_21 } | { Err: Error };
3950
+ export type Result_48 = { Ok: Page_22 } | { Err: Error };
3951
+ export type Result_49 = { Ok: AgentSpendToday } | { Err: Error };
3657
3952
  export type Result_5 = { Ok: SignatureCounts } | { Err: Error };
3658
- export type Result_50 = { Ok: WalletBalances } | { Err: Error };
3659
- export type Result_51 = { Ok: StorageReport } | { Err: Error };
3660
- export type Result_52 = { Ok: SpendingPolicy } | { Err: Error };
3661
- export type Result_53 = { Ok: SpendCeiling } | { Err: Error };
3662
- export type Result_54 = { Ok: SigningFloorStatus } | { Err: Error };
3663
- export type Result_55 = { Ok: { paths: Array<string> } } | { Err: Error };
3664
- export type Result_56 = { Ok: OwnerConsole } | { Err: Error };
3665
- export type Result_57 = { Ok: MemoryRetentionPolicy } | { Err: Error };
3666
- export type Result_58 = { Ok: MemoryHistory } | { Err: Error };
3667
- export type Result_59 = { Ok: AlertStatus } | { Err: Error };
3953
+ export type Result_50 = { Ok: Page_24 } | { Err: Error };
3954
+ export type Result_51 = { Ok: string } | { Err: Error };
3955
+ export type Result_52 = { Ok: boolean } | { Err: Error };
3956
+ export type Result_53 = { Ok: [] | [string] } | { Err: Error };
3957
+ export type Result_54 = { Ok: WorldIdRpContext } | { Err: Error };
3958
+ export type Result_55 = { Ok: WorldIdConfig } | { Err: Error };
3959
+ export type Result_56 = { Ok: WalletBalances } | { Err: Error };
3960
+ export type Result_57 = { Ok: StorageReport } | { Err: Error };
3961
+ export type Result_58 = { Ok: SpendingPolicy } | { Err: Error };
3962
+ export type Result_59 = { Ok: SpendCeiling } | { Err: Error };
3668
3963
  export type Result_6 = { Ok: RailHealth } | { Err: Error };
3669
- export type Result_60 = { Ok: EvmAddresses } | { Err: Error };
3670
- export type Result_61 = { Ok: Uint8Array | number[] } | { Err: Error };
3671
- export type Result_62 = { Ok: ChildOpening } | { Err: Error };
3672
- export type Result_63 = { Ok: ChildAllowanceRow } | { Err: Error };
3673
- export type Result_64 = { Ok: BackupMetadata } | { Err: Error };
3674
- export type Result_65 = { Ok: AgentWriteReview } | { Err: Error };
3675
- export type Result_66 = { Ok: Page_21 } | { Err: Error };
3676
- export type Result_68 = { Ok: MemoryRangeExport } | { Err: Error };
3677
- export type Result_69 = { Ok: CondenseResult } | { Err: Error };
3964
+ export type Result_60 = { Ok: SigningFloorStatus } | { Err: Error };
3965
+ export type Result_61 = { Ok: { paths: Array<string> } } | { Err: Error };
3966
+ export type Result_62 = { Ok: OwnerConsole } | { Err: Error };
3967
+ export type Result_63 = { Ok: MemoryRetentionPolicy } | { Err: Error };
3968
+ export type Result_64 = { Ok: MemoryHistory } | { Err: Error };
3969
+ export type Result_65 = { Ok: AlertStatus } | { Err: Error };
3970
+ export type Result_66 = { Ok: EvmAddresses } | { Err: Error };
3971
+ export type Result_67 = { Ok: Uint8Array | number[] } | { Err: Error };
3972
+ export type Result_68 = { Ok: ChildOpening } | { Err: Error };
3973
+ export type Result_69 = { Ok: ChildAllowanceRow } | { Err: Error };
3678
3974
  export type Result_7 = { Ok: Array<Seat> } | { Err: Error };
3679
- export type Result_70 = { Ok: Eip712Registration } | { Err: Error };
3680
- export type Result_71 = { Ok: { activatesAtNs: bigint } } | { Err: Error };
3681
- export type Result_72 = { Ok: AgentRecord } | { Err: Error };
3975
+ export type Result_70 = { Ok: Brakes } | { Err: Error };
3976
+ export type Result_71 = { Ok: BackupRetention } | { Err: Error };
3977
+ export type Result_72 = { Ok: BackupMetadata } | { Err: Error };
3978
+ export type Result_73 = { Ok: AgentWriteReview } | { Err: Error };
3979
+ export type Result_74 = { Ok: Page_25 } | { Err: Error };
3980
+ export type Result_76 = { Ok: MemoryRangeExport } | { Err: Error };
3981
+ export type Result_77 = { Ok: CondenseResult } | { Err: Error };
3982
+ export type Result_78 = { Ok: Eip712Registration } | { Err: Error };
3983
+ export type Result_79 = { Ok: { activatesAtNs: bigint } } | { Err: Error };
3682
3984
  export type Result_8 = { Ok: SignedTransaction } | { Err: Error };
3985
+ export type Result_80 = { Ok: AgentRecord } | { Err: Error };
3683
3986
  export type Result_9 = { Ok: BackupRetentionReport } | { Err: Error };
3684
3987
  export interface ResyncReport {
3685
3988
  startsAcknowledged: bigint;
@@ -3701,6 +4004,22 @@ export type RetentionClassSpec =
3701
4004
  thinning: { tail: null } | { logSpaced: { denseTail: bigint } };
3702
4005
  };
3703
4006
  };
4007
+ export interface RetentionPreview {
4008
+ files: bigint;
4009
+ complete: boolean;
4010
+ planned: bigint;
4011
+ bytes: bigint;
4012
+ copies: bigint;
4013
+ storedFiles: bigint;
4014
+ rules: Array<RetentionPreviewRule>;
4015
+ }
4016
+ export interface RetentionPreviewRule {
4017
+ files: bigint;
4018
+ notBeforeNs: [] | [bigint];
4019
+ prefix: string;
4020
+ bytes: bigint;
4021
+ copies: bigint;
4022
+ }
3704
4023
  export type Role =
3705
4024
  | { Anonymous: null }
3706
4025
  | { Viewer: null }
@@ -3755,6 +4074,10 @@ export interface SessionIntent {
3755
4074
  expiryNs: bigint;
3756
4075
  suggestedDeposit: bigint;
3757
4076
  }
4077
+ export interface SignIn {
4078
+ token: BearerToken;
4079
+ clientName: [] | [string];
4080
+ }
3758
4081
  export interface SignatureCounts {
3759
4082
  total: bigint;
3760
4083
  byCaller: Array<CallerSignatureCount>;