@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.
- package/dist/engram.did +533 -193
- package/dist/engram.idl.d.ts +542 -193
- package/dist/engram.idl.js +259 -194
- package/dist/registry.did +187 -70
- package/dist/registry.idl.d.ts +175 -72
- package/dist/registry.idl.js +62 -22
- package/package.json +1 -1
package/dist/registry.idl.d.ts
CHANGED
|
@@ -86,6 +86,11 @@ export interface ChangelogEntry {
|
|
|
86
86
|
releaseNotes: string;
|
|
87
87
|
version: string;
|
|
88
88
|
}
|
|
89
|
+
export interface ChildSignInOffer {
|
|
90
|
+
parentActive: boolean;
|
|
91
|
+
parentIsFirstEngram: boolean;
|
|
92
|
+
parentOwner: [] | [Principal];
|
|
93
|
+
}
|
|
89
94
|
export type ControlStep = { EngramMustMove: null } | { MovedByRegistry: null };
|
|
90
95
|
export type CustodyMode = { Sovereign: null } | { Managed: null };
|
|
91
96
|
export interface Dispute {
|
|
@@ -286,6 +291,23 @@ export interface ReferralCounts {
|
|
|
286
291
|
throughParent: PairedSoon;
|
|
287
292
|
agentsByTreesSpanned: TreesSpanned;
|
|
288
293
|
}
|
|
294
|
+
export interface RegistryClockHealth {
|
|
295
|
+
nextWakeAtNs: [] | [bigint];
|
|
296
|
+
lastAttemptAtNs: [] | [bigint];
|
|
297
|
+
attemptTotal: [] | [bigint];
|
|
298
|
+
lastErrorAtNs: [] | [bigint];
|
|
299
|
+
okTotal: [] | [bigint];
|
|
300
|
+
overdue: [] | [bigint];
|
|
301
|
+
lastError: [] | [string];
|
|
302
|
+
lastOkAtNs: [] | [bigint];
|
|
303
|
+
}
|
|
304
|
+
export interface RegistryHealth {
|
|
305
|
+
anchors: [] | [AnchorStats];
|
|
306
|
+
adminRoles: [] | [AdminRoles];
|
|
307
|
+
atNs: [] | [bigint];
|
|
308
|
+
clock: [] | [RegistryClockHealth];
|
|
309
|
+
cycleReserve: [] | [{ cycleBalance: bigint; minOperatingReserveCycles: bigint }];
|
|
310
|
+
}
|
|
289
311
|
export type ReleaseClass = { Security: null } | { Feature: null };
|
|
290
312
|
export interface ReservationView {
|
|
291
313
|
reservedAtNs: bigint;
|
|
@@ -318,7 +340,7 @@ export interface RestartTotals {
|
|
|
318
340
|
advancePaid: bigint;
|
|
319
341
|
}
|
|
320
342
|
export type Result = { Ok: null } | { Err: Error };
|
|
321
|
-
export type Result_1 = { Ok:
|
|
343
|
+
export type Result_1 = { Ok: { accepted: bigint } } | { Err: Error };
|
|
322
344
|
export type Result_10 = { Ok: CustodyMode } | { Err: Error };
|
|
323
345
|
export type Result_11 = { Ok: Array<string> } | { Err: Error };
|
|
324
346
|
export type Result_12 = { Ok: Page } | { Err: Error };
|
|
@@ -329,17 +351,19 @@ export type Result_16 = { Ok: Array<OpenedEngram> } | { Err: Error };
|
|
|
329
351
|
export type Result_17 = { Ok: Page_5 } | { Err: Error };
|
|
330
352
|
export type Result_18 = { Ok: RecordPage } | { Err: Error };
|
|
331
353
|
export type Result_19 = { Ok: Page_6 } | { Err: Error };
|
|
332
|
-
export type Result_2 = { Ok:
|
|
354
|
+
export type Result_2 = { Ok: Principal } | { Err: Error };
|
|
333
355
|
export type Result_20 = { Ok: [] | [string] } | { Err: Error };
|
|
334
|
-
export type Result_21 = { Ok:
|
|
335
|
-
export type Result_22 = { Ok:
|
|
336
|
-
export type Result_23 = { Ok:
|
|
337
|
-
export type Result_24 = { Ok:
|
|
338
|
-
export type Result_25 = { Ok:
|
|
339
|
-
export type Result_26 = { Ok:
|
|
340
|
-
export type Result_27 = { Ok:
|
|
341
|
-
export type Result_28 = { Ok:
|
|
356
|
+
export type Result_21 = { Ok: RegistryHealth } | { Err: Error };
|
|
357
|
+
export type Result_22 = { Ok: ReferralCounts } | { Err: Error };
|
|
358
|
+
export type Result_23 = { Ok: OpenedThrough } | { Err: Error };
|
|
359
|
+
export type Result_24 = { Ok: OpeningCounts } | { Err: Error };
|
|
360
|
+
export type Result_25 = { Ok: RestartStatus } | { Err: Error };
|
|
361
|
+
export type Result_26 = { Ok: PrivateMetrics } | { Err: Error };
|
|
362
|
+
export type Result_27 = { Ok: Uint8Array | number[] } | { Err: Error };
|
|
363
|
+
export type Result_28 = { Ok: ChildSignInOffer } | { Err: Error };
|
|
364
|
+
export type Result_29 = { Ok: CertifiedStanding } | { Err: Error };
|
|
342
365
|
export type Result_3 = { Ok: ControlStep } | { Err: Error };
|
|
366
|
+
export type Result_30 = { Ok: FleetCycleHealth } | { Err: Error };
|
|
343
367
|
export type Result_4 = { Ok: MeterReading } | { Err: Error };
|
|
344
368
|
export type Result_5 = { Ok: { repaid: bigint; stillOwed: bigint } } | { Err: Error };
|
|
345
369
|
export type Result_6 =
|
|
@@ -407,6 +431,9 @@ export interface _SERVICE {
|
|
|
407
431
|
* / CANISTER ID, so an engram's ciphertext and wallet cannot follow it anywhere (engramx
|
|
408
432
|
* / docs/ENCRYPTION-OPERATIONS.md, "Canister-id binding"). Abandoning is starting over, not
|
|
409
433
|
* / migrating, and the caller must be told so before they do it.
|
|
434
|
+
* /
|
|
435
|
+
* / ⟨2026-11-02⟩ REFUSED for an engram opened through another: it is never abandoned, so it stays on
|
|
436
|
+
* / this registry's security updates for life; it ends by its parent's cut-off or by running dry.
|
|
410
437
|
*/
|
|
411
438
|
abandonMyEngram: ActorMethod<[], Result>;
|
|
412
439
|
addAuditViewer: ActorMethod<[Principal], Result>;
|
|
@@ -449,6 +476,9 @@ export interface _SERVICE {
|
|
|
449
476
|
* / ⚠ IT IS REVERSIBLE, which is the fact most worth publishing: the engram's own
|
|
450
477
|
* / `returnToManaged` adds the registry back ALONGSIDE the owner. Sovereignty is a door, not a
|
|
451
478
|
* / cliff.
|
|
479
|
+
* /
|
|
480
|
+
* / ⟨2026-11-02, the owner's ruling "choice 4 without hand over"⟩ REFUSED for an engram opened
|
|
481
|
+
* / through another: it stays managed by this registry for life, and its key is never a controller.
|
|
452
482
|
*/
|
|
453
483
|
claimSovereignty: ActorMethod<[], Result>;
|
|
454
484
|
/**
|
|
@@ -514,7 +544,7 @@ export interface _SERVICE {
|
|
|
514
544
|
* / this one is a noun. That gate now reads the census's L7 citations as a second population for
|
|
515
545
|
* / exactly this blind spot.⟩
|
|
516
546
|
*/
|
|
517
|
-
fleetCycleHealth: ActorMethod<[bigint, bigint, bigint],
|
|
547
|
+
fleetCycleHealth: ActorMethod<[bigint, bigint, bigint], Result_30>;
|
|
518
548
|
/**
|
|
519
549
|
* / PUBLIC: ⟨0.16.0, L2.4⟩ `fleetSummary` — the ONE public projection of this registry,
|
|
520
550
|
* / replacing `status()` and ABSORBING `publicMetrics()`.
|
|
@@ -627,7 +657,7 @@ export interface _SERVICE {
|
|
|
627
657
|
* / `listAgents`. "The agent itself" is a caller holding that root key. A key for one engram has no
|
|
628
658
|
* / record of its own here; asking about one gets the refusal or, from the key itself, `#NotFound`.
|
|
629
659
|
*/
|
|
630
|
-
getAgentStanding: ActorMethod<[Principal],
|
|
660
|
+
getAgentStanding: ActorMethod<[Principal], Result_29>;
|
|
631
661
|
/**
|
|
632
662
|
* / Fleet-wide anchoring liveness. Exists because ABSENCE is otherwise uninformative: an engram
|
|
633
663
|
* / that never wrote, one still on a template without the push, and one whose push is broken all
|
|
@@ -704,6 +734,28 @@ export interface _SERVICE {
|
|
|
704
734
|
* / bytes is never a fingerprint, and answers `null` before the lookup.
|
|
705
735
|
*/
|
|
706
736
|
getCertifiedBirth: ActorMethod<[Uint8Array | number[]], [] | [CertifiedBirth]>;
|
|
737
|
+
/**
|
|
738
|
+
* / ⟨2026-11-02, the owner's ruling "1-4 all as you recommended"; the lead's answer L4 with the
|
|
739
|
+
* / Challenge's fix C3.2⟩ WHAT THE KIT OFFERS AS A NEW ENGRAM'S SIGN-IN, read before it opens one
|
|
740
|
+
* / through `parent`. The answer: the parent's owner — ONLY when the parent is a first engram (the
|
|
741
|
+
* / kit offers that principal as the default sign-in only then, after it prints it and the person
|
|
742
|
+
* / running the agent confirms it is theirs; for a parent opened through another the field is
|
|
743
|
+
* / absent, so the read never discloses a key file's principal); whether the parent is a first
|
|
744
|
+
* / engram; and whether it is registered, `#Active` and not abandoned (`isRegisteredActiveEngram`'s
|
|
745
|
+
* / rule).
|
|
746
|
+
* /
|
|
747
|
+
* / CALLER: a lasting key with a LIVE engagement with `parent` at this registry, in either store
|
|
748
|
+
* / (`Engagements.hasOpenEither` — the same fact `sysOpenChild`'s admission reads, so exactly the
|
|
749
|
+
* / keys that may be opened an engram through `parent` may read what it offers). It discloses the
|
|
750
|
+
* / parent's owner to the parent's own engaged agent, the party `getParentOf` answers once the child
|
|
751
|
+
* / exists. Anyone else is REFUSED loudly (ADR-0002), in the same words whether or not `parent` is
|
|
752
|
+
* / an engram, so a refusal tells a stranger nothing. A QUERY, so the refusal is not in the denial
|
|
753
|
+
* / log (`denied` says why a query cannot write). `#NotFound` only to an engaged caller, for a
|
|
754
|
+
* / parent this registry holds no owner for.
|
|
755
|
+
* / Called by: the owner kit's opening of an engram through a parent, signed by the agent's lasting
|
|
756
|
+
* / key, before it names the new engram's sign-in.
|
|
757
|
+
*/
|
|
758
|
+
getChildSignInOffer: ActorMethod<[Principal], Result_28>;
|
|
707
759
|
/**
|
|
708
760
|
* / The ATTESTABLE custody-mode fact (agent-native model item 19): "managed" | "sovereign" |
|
|
709
761
|
* / "unknown", derived from the registry's OWN transition records (claimSovereignty /
|
|
@@ -774,7 +826,7 @@ export interface _SERVICE {
|
|
|
774
826
|
* / `#NotFound` only to a permitted reader, for a key that opened nothing: a true answer, like
|
|
775
827
|
* / `listMyAgentDisputes`'s empty list.
|
|
776
828
|
*/
|
|
777
|
-
getEngramOpenedThrough: ActorMethod<[Principal],
|
|
829
|
+
getEngramOpenedThrough: ActorMethod<[Principal], Result_23>;
|
|
778
830
|
/**
|
|
779
831
|
* / The i-th 1 MiB slice of the attested engram wasm (0-indexed). The caller reassembles all
|
|
780
832
|
* / chunks in order and MUST verify sha256(reassembled) == getEngramWasmHash before installing —
|
|
@@ -787,7 +839,7 @@ export interface _SERVICE {
|
|
|
787
839
|
* / a truncated one, so it would hash a partial wasm and report a mismatch against the official
|
|
788
840
|
* / list, which reads as "this template is unofficial" rather than "I stopped reading too early".
|
|
789
841
|
*/
|
|
790
|
-
getEngramWasmChunk: ActorMethod<[bigint],
|
|
842
|
+
getEngramWasmChunk: ActorMethod<[bigint], Result_27>;
|
|
791
843
|
/**
|
|
792
844
|
* / The stored template's release class — FREE and UNGATED, because it is the checkable half of a
|
|
793
845
|
* / promise made to people who are not our customers. ⟨2026-10-25⟩ The funding rule it checks:
|
|
@@ -837,7 +889,7 @@ export interface _SERVICE {
|
|
|
837
889
|
* / site. L1 retired the motive of trapping-to-refuse; it did not give queries the ability to
|
|
838
890
|
* / write, which is the thing this actually depends on.
|
|
839
891
|
*/
|
|
840
|
-
getFleetMetrics: ActorMethod<[],
|
|
892
|
+
getFleetMetrics: ActorMethod<[], Result_26>;
|
|
841
893
|
/**
|
|
842
894
|
* / PUBLIC: a genesis note that only privileged callers could read would defeat its purpose —
|
|
843
895
|
* / the reader who most needs it is the stranger deciding whether to trust this chain.
|
|
@@ -915,7 +967,7 @@ export interface _SERVICE {
|
|
|
915
967
|
* / restart": `nextRestartAtNs` is only the weekly limit on a loan. A restart on the owner's own
|
|
916
968
|
* / compute is allowed now, whatever it says. Field name and shape unchanged.
|
|
917
969
|
*/
|
|
918
|
-
getMyRestartStatus: ActorMethod<[],
|
|
970
|
+
getMyRestartStatus: ActorMethod<[], Result_25>;
|
|
919
971
|
/**
|
|
920
972
|
* / ⟨2026-10-02⟩ How many engrams were ever opened, and how — lifetime sizes of state this registry
|
|
921
973
|
* / never deletes, plus the two counters of refused openings (`Funnel.OpeningCounts` names each).
|
|
@@ -926,7 +978,7 @@ export interface _SERVICE {
|
|
|
926
978
|
* / "nothing was ever opened". A QUERY: counts only, and cheap; its refusal is not in the denial
|
|
927
979
|
* / log (`denied` says why a query cannot write).
|
|
928
980
|
*/
|
|
929
|
-
getOpeningCounts: ActorMethod<[],
|
|
981
|
+
getOpeningCounts: ActorMethod<[], Result_24>;
|
|
930
982
|
/**
|
|
931
983
|
* / Where an engram was opened from ⟨2026-10-26, the owner's lineage ruling L4: "a child reads its own
|
|
932
984
|
* / parent by its canister id"⟩: the engram, the engram it was opened from, and the cut-off's time if
|
|
@@ -943,7 +995,7 @@ export interface _SERVICE {
|
|
|
943
995
|
* / this registry never opened is said to be one, not passed off as a first engram (ADR-0002).
|
|
944
996
|
* / L8C: `listChildrenOf` is unchanged. L7B: the change-of-owner gate is unchanged.
|
|
945
997
|
*/
|
|
946
|
-
getParentOf: ActorMethod<[Principal],
|
|
998
|
+
getParentOf: ActorMethod<[Principal], Result_23>;
|
|
947
999
|
/**
|
|
948
1000
|
* / ⟨2026-10-02⟩ How far agents reach across owners — COUNTS ONLY: agents by how many trees their
|
|
949
1001
|
* / record spans (1 · 2 · 3–4 · 5+), engrams opened through a parent that are live or cut off, and
|
|
@@ -957,7 +1009,25 @@ export interface _SERVICE {
|
|
|
957
1009
|
* / weekly. Anyone else is REFUSED by name with their class — never zeros. A QUERY: its cost grows
|
|
958
1010
|
* / with the agents and engrams it walks (one pass over each), so a reader asks weekly, not hourly.
|
|
959
1011
|
*/
|
|
960
|
-
getReferralCounts: ActorMethod<[Array<Principal>],
|
|
1012
|
+
getReferralCounts: ActorMethod<[Array<Principal>], Result_22>;
|
|
1013
|
+
/**
|
|
1014
|
+
* / ⟨2026-11-02, the owner's rulings "E ok." and "go ahead with your noticing failures changes"⟩ THE
|
|
1015
|
+
* / REGISTRY'S HEALTH IN ONE READ: its cycle reserve, its roster, its anchoring counts — the same
|
|
1016
|
+
* / answers `getCycleReserveStatus`, `getAdminRoles` and `getAnchorStats` give, which stay served
|
|
1017
|
+
* / unchanged for everyone who reads them one at a time — and the stamps of its clock, which wakes only
|
|
1018
|
+
* / at the deadlines it records (with a six-hour net) and so is silent by design: `clock.nextWakeAtNs`
|
|
1019
|
+
* / more than an hour behind `atNs` is a lost clock. `Types.RegistryHealth` says what each field
|
|
1020
|
+
* / means, and why every field is `opt` and always filled.
|
|
1021
|
+
* /
|
|
1022
|
+
* / CALLER: the deployment's monitor, once an hour, under the audit-viewer grant its daily count-of-use
|
|
1023
|
+
* / reading already holds (ADR-0020 rule 1). Also the admin.
|
|
1024
|
+
* /
|
|
1025
|
+
* / GATED, LIKE THE COUNT-OF-USE READS THAT MONITOR MAKES (`getOpeningCounts`): the admin or an audit
|
|
1026
|
+
* / viewer; anyone else is REFUSED by name — never an empty or zero reading. A QUERY: its refusal is
|
|
1027
|
+
* / not in the denial log (a query cannot write; `denied` says why). One read where there were three
|
|
1028
|
+
* / saves the monitor and this registry two calls an hour each.
|
|
1029
|
+
*/
|
|
1030
|
+
getRegistryHealth: ActorMethod<[], Result_21>;
|
|
961
1031
|
/**
|
|
962
1032
|
* / PUBLIC: the biller identity is an operational fact a
|
|
963
1033
|
* / payer's cashier must verify BEFORE taking money (paying into a cashier the registry does not
|
|
@@ -1032,7 +1102,7 @@ export interface _SERVICE {
|
|
|
1032
1102
|
getSecurityReleaseCount: ActorMethod<[], bigint>;
|
|
1033
1103
|
/**
|
|
1034
1104
|
* / ⟨2026-10-01, the owner's ruling of that day (2 A)⟩ Cumulative cycles accepted at the sponsored
|
|
1035
|
-
* / door (`
|
|
1105
|
+
* / door (`sysOpenChild`) and forwarded into engrams opened through another — cycles the calling
|
|
1036
1106
|
* / engrams attached, never the registry's own. Kept apart from the grant counter
|
|
1037
1107
|
* / (`totalCyclesAllocated`) so neither figure is inflated by the other.
|
|
1038
1108
|
* /
|
|
@@ -1475,7 +1545,7 @@ export interface _SERVICE {
|
|
|
1475
1545
|
},
|
|
1476
1546
|
],
|
|
1477
1547
|
],
|
|
1478
|
-
|
|
1548
|
+
Result_2
|
|
1479
1549
|
>;
|
|
1480
1550
|
removeAuditViewer: ActorMethod<[Principal], Result>;
|
|
1481
1551
|
/**
|
|
@@ -1563,6 +1633,8 @@ export interface _SERVICE {
|
|
|
1563
1633
|
restartMyStoppedEngram: ActorMethod<[], Result_8>;
|
|
1564
1634
|
/**
|
|
1565
1635
|
* / Return to managed: user calls AFTER adding registry back as controller
|
|
1636
|
+
* /
|
|
1637
|
+
* / ⟨2026-11-02⟩ Refused for an engram opened through another, which is never independent.
|
|
1566
1638
|
*/
|
|
1567
1639
|
returnToManaged: ActorMethod<[], Result>;
|
|
1568
1640
|
/**
|
|
@@ -1643,6 +1715,9 @@ export interface _SERVICE {
|
|
|
1643
1715
|
* /
|
|
1644
1716
|
* / `claimSovereignty` sets this to `#ManualOnly` as a side effect, since a registry that is no
|
|
1645
1717
|
* / longer a controller could not honour anything else.
|
|
1718
|
+
* /
|
|
1719
|
+
* / ⟨2026-11-02⟩ An engram opened through another is refused `#ManualOnly`: it takes this registry's
|
|
1720
|
+
* / updates automatically for life.
|
|
1646
1721
|
*/
|
|
1647
1722
|
setUpdatePreference: ActorMethod<[UpdatePreference], Result>;
|
|
1648
1723
|
/**
|
|
@@ -1787,6 +1862,84 @@ export interface _SERVICE {
|
|
|
1787
1862
|
* / names). The rules are in `src/shared/ControlHandover.mo`.
|
|
1788
1863
|
*/
|
|
1789
1864
|
sysNotifyOwnershipTransfer: ActorMethod<[Principal], Result_3>;
|
|
1865
|
+
/**
|
|
1866
|
+
* / ⟨2026-10-01, the owner's ruling of that day: the October concept's decision 1, "build it now"⟩
|
|
1867
|
+
* / THE SPONSORED DOOR. An engram opens an engram for one of its agents: the caller is the engram
|
|
1868
|
+
* / (the engram it is opened from — `parentOf` in code), `ownerKey` is the agent's LASTING key, which
|
|
1869
|
+
* / owns what is opened, and the cycles the opened engram lives on are the ones the caller ATTACHES.
|
|
1870
|
+
* /
|
|
1871
|
+
* / CALLER: a registered engram — `canisterToOwner` membership, checked first, exactly as
|
|
1872
|
+
* / `sysRecordAgentEdge` checks it (ADR-0020: every `sys` method names and checks its caller). The
|
|
1873
|
+
* / engram's own rules (the owner's standing allowance for this agent, its frozen-payments state,
|
|
1874
|
+
* / its balance) are the engram's to check before it calls; this method checks what only the
|
|
1875
|
+
* / registry can know.
|
|
1876
|
+
* /
|
|
1877
|
+
* / NOTHING IS ACCEPTED UNTIL EVERY CHECK HAS PASSED (`ChildDoor.admission`, cheapest first), so
|
|
1878
|
+
* / every refusal before the accept returns the attached cycles to the caller by construction —
|
|
1879
|
+
* / the IC returns unaccepted cycles when the call replies. After the accept:
|
|
1880
|
+
* / · the network refuses the canister → what it refunded is deposited back to the caller, and
|
|
1881
|
+
* / the reply says how much came back;
|
|
1882
|
+
* / · the template will not install after one retry → the cycles are INSIDE the new canister and
|
|
1883
|
+
* / no canister can withdraw another's cycles. The one honest exception to "returned on every
|
|
1884
|
+
* / failure": nothing is recorded, and the reply names the canister, its controllers (this
|
|
1885
|
+
* / registry and the key) and what the key can do with it;
|
|
1886
|
+
* / ⟨CORRECTED 2026-11-02, beside the line above — the owner's ruling "choice 4 without hand
|
|
1887
|
+
* / over" (V0)⟩ The controller is THIS REGISTRY ALONE; the key is not one and can install
|
|
1888
|
+
* / nothing. The reply names the canister and says the cycles sit in it unrecorded, for whoever
|
|
1889
|
+
* / runs this deployment to decide on;
|
|
1890
|
+
* / · the key came to own an engram during the awaits → the new canister is named, nothing is
|
|
1891
|
+
* / recorded (the same third guard `spawnEngramFor` carries).
|
|
1892
|
+
* /
|
|
1893
|
+
* / WHAT IT DOES NOT DO, deliberately: it never attaches the registry's own cycles (the grant stays
|
|
1894
|
+
* / with first engrams); it never writes a predecessor (a key with any record was refused); it never
|
|
1895
|
+
* / consults the reserve gate (the parent owner's approval is this door's admission — the gate's
|
|
1896
|
+
* / arming note stays on `provisionEngram`); it never tells the calling engram anything but this
|
|
1897
|
+
* / reply. No payment AMOUNT reaches it (ADR-0005): it carries cycles and a key, nothing else.
|
|
1898
|
+
* /
|
|
1899
|
+
* / THE RATE LIMIT ⟨2026-10-01, evening — the owner's ruling "1B"; until then this door shared
|
|
1900
|
+
* / first engrams' limiter in full: their 24-hour count, their in-flight count and
|
|
1901
|
+
* / `effectiveDailyCap`⟩. The door shares only the DIAL (`spawnCeiling`) and the WINDOW LENGTH (24
|
|
1902
|
+
* / hours). Its count is its own (`sponsoredCreationTimestampsBuf`, pruned by
|
|
1903
|
+
* / `pruneSponsoredWindow`), its in-flight count is its own (`sponsoredInFlight`), and its cap is
|
|
1904
|
+
* / `spawnCeiling` alone — the reserve-derived term never applies, because the opened engram lives
|
|
1905
|
+
* / on the cycles the caller attached and the registry funds nothing. So an opening never uses up a
|
|
1906
|
+
* / first engram's slot, and is never refused for the registry's own low balance. The per-key
|
|
1907
|
+
* / pending mark (`createEngramPending`) stays shared: it is about ONE key, not a count, and a key
|
|
1908
|
+
* / must not be mid-spawn at both doors at once.
|
|
1909
|
+
* /
|
|
1910
|
+
* / THE CUT-OFF AT BIRTH. If the caller ended the key's engagement while the canister was being
|
|
1911
|
+
* / created (the ending is recorded by `sysRecordAgentEdge` between this method's awaits), the
|
|
1912
|
+
* / opened engram is recorded AND cut off in the same step — the cycles are already in it, so the
|
|
1913
|
+
* / key keeps it, but it starts on nobody's record. Without this the ending's cut-off writer would
|
|
1914
|
+
* / have found no `openedThroughParent` row yet, and the engram would never be cut off.
|
|
1915
|
+
* / WHAT WOULD MAKE THIS WRONG: a second path that writes `parentOf`, or an `await` placed between
|
|
1916
|
+
* / the post-await re-check and the record below.
|
|
1917
|
+
* /
|
|
1918
|
+
* / ⟨2026-11-02, the owner's rulings "choice 4 without hand over" (V0) and "1-4 all as you
|
|
1919
|
+
* / recommended"⟩ CONTROLLED BY THIS REGISTRY ALONE, AND BORN KNOWING ITS PARENT AND ITS SIGN-IN.
|
|
1920
|
+
* / The canister's controllers are `[this registry]` — the key is not a controller, so it can never
|
|
1921
|
+
* / reinstall, delete or re-control the engram; only this registry installs code on it. Such an
|
|
1922
|
+
* / engram is managed for life: `claimSovereignty`, `returnToManaged`, `abandonMyEngram`, a
|
|
1923
|
+
* / `#ManualOnly` preference and a change of owner (`sysNotifyOwnershipTransfer`) are all refused
|
|
1924
|
+
* / for it, by `parentOf`. `signIn` is the opened engram's second credential, named by the person
|
|
1925
|
+
* / running the agent (`ChildDoor.signInRefusal` refuses the key itself, the anonymous principal and
|
|
1926
|
+
* / a canister); it and the parent travel in the engram's init record, so the engram knows both
|
|
1927
|
+
* / before it answers its first message. `null` = no sign-in: the engram keeps small limits for life.
|
|
1928
|
+
* / An engram built before this argument sends one argument; the missing trailing `opt` decodes as
|
|
1929
|
+
* / `null` (Candid's rule for a missing optional argument), and the engram opens with no sign-in.
|
|
1930
|
+
* / ⟨CORRECTED 2026-11-02, later — the stage-1 review's B1, beside the two lines above, which no
|
|
1931
|
+
* / longer hold⟩ ONE RECORD, A NEW NAME. This door was `sysSpawnChild(ownerKey : Principal)`; giving
|
|
1932
|
+
* / it a second positional argument grew its argument TUPLE, which ADR-0018 rule 0 freezes ("evolution
|
|
1933
|
+
* / happens inside records", ratified R1) and the interface gate reads as ILLEGAL. So the door is
|
|
1934
|
+
* / `sysOpenChild({ ownerKey; signIn })` — later fields are opt fields of this record, never another
|
|
1935
|
+
* / argument — and `sysSpawnChild` is REMOVED (a NOTICE at the gate). An engram built before this
|
|
1936
|
+
* / change still calls `sysSpawnChild`; this registry no longer serves it, so that call is REJECTED
|
|
1937
|
+
* / (IC0536, a reject the engram's `try` catches — ADR-0018 probe 11), the attached cycles come back
|
|
1938
|
+
* / as the call's refund, and nothing is opened. An older engram therefore never opens an engram with
|
|
1939
|
+
* / no sign-in by accident; it opens them again once it runs a template that calls this method.
|
|
1940
|
+
* / (Was: the one-argument call decoded `signIn` as `null` — INFERRED for moc 2.1.0, never witnessed.)
|
|
1941
|
+
*/
|
|
1942
|
+
sysOpenChild: ActorMethod<[{ ownerKey: Principal; signIn: [] | [Principal] }], Result_2>;
|
|
1790
1943
|
/**
|
|
1791
1944
|
* / ⟨2026-09-28, owner decision: build the full agent track-record design for the launch release⟩
|
|
1792
1945
|
* / An engram tells this registry that one of its agents started, or ended and WHY.
|
|
@@ -1883,7 +2036,7 @@ export interface _SERVICE {
|
|
|
1883
2036
|
* / name one of its OWN advances (the caller must match), so the worst it can do is settle its own
|
|
1884
2037
|
* / other advance early with cycles that are still the registry's.
|
|
1885
2038
|
*/
|
|
1886
|
-
sysRepayUpgradeAdvance: ActorMethod<[{ advanceId: bigint }],
|
|
2039
|
+
sysRepayUpgradeAdvance: ActorMethod<[{ advanceId: bigint }], Result_1>;
|
|
1887
2040
|
/**
|
|
1888
2041
|
* / ⟨2026-09-29, owner ruling follow-up 8⟩ A SOVEREIGN engram could not change its own controllers
|
|
1889
2042
|
* / after this registry moved its record, and asks for the record back so the transfer does not
|
|
@@ -1894,56 +2047,6 @@ export interface _SERVICE {
|
|
|
1894
2047
|
* / engram then answers its owner with `ControlHandover.stuck`.
|
|
1895
2048
|
*/
|
|
1896
2049
|
sysRevertOwnershipTransfer: ActorMethod<[Principal], Result>;
|
|
1897
|
-
/**
|
|
1898
|
-
* / ⟨2026-10-01, the owner's ruling of that day: the October concept's decision 1, "build it now"⟩
|
|
1899
|
-
* / THE SPONSORED DOOR. An engram opens an engram for one of its agents: the caller is the engram
|
|
1900
|
-
* / (the engram it is opened from — `parentOf` in code), `ownerKey` is the agent's LASTING key, which
|
|
1901
|
-
* / owns what is opened, and the cycles the opened engram lives on are the ones the caller ATTACHES.
|
|
1902
|
-
* /
|
|
1903
|
-
* / CALLER: a registered engram — `canisterToOwner` membership, checked first, exactly as
|
|
1904
|
-
* / `sysRecordAgentEdge` checks it (ADR-0020: every `sys` method names and checks its caller). The
|
|
1905
|
-
* / engram's own rules (the owner's standing allowance for this agent, its frozen-payments state,
|
|
1906
|
-
* / its balance) are the engram's to check before it calls; this method checks what only the
|
|
1907
|
-
* / registry can know.
|
|
1908
|
-
* /
|
|
1909
|
-
* / NOTHING IS ACCEPTED UNTIL EVERY CHECK HAS PASSED (`ChildDoor.admission`, cheapest first), so
|
|
1910
|
-
* / every refusal before the accept returns the attached cycles to the caller by construction —
|
|
1911
|
-
* / the IC returns unaccepted cycles when the call replies. After the accept:
|
|
1912
|
-
* / · the network refuses the canister → what it refunded is deposited back to the caller, and
|
|
1913
|
-
* / the reply says how much came back;
|
|
1914
|
-
* / · the template will not install after one retry → the cycles are INSIDE the new canister and
|
|
1915
|
-
* / no canister can withdraw another's cycles. The one honest exception to "returned on every
|
|
1916
|
-
* / failure": nothing is recorded, and the reply names the canister, its controllers (this
|
|
1917
|
-
* / registry and the key) and what the key can do with it;
|
|
1918
|
-
* / · the key came to own an engram during the awaits → the new canister is named, nothing is
|
|
1919
|
-
* / recorded (the same third guard `spawnEngramFor` carries).
|
|
1920
|
-
* /
|
|
1921
|
-
* / WHAT IT DOES NOT DO, deliberately: it never attaches the registry's own cycles (the grant stays
|
|
1922
|
-
* / with first engrams); it never writes a predecessor (a key with any record was refused); it never
|
|
1923
|
-
* / consults the reserve gate (the parent owner's approval is this door's admission — the gate's
|
|
1924
|
-
* / arming note stays on `provisionEngram`); it never tells the calling engram anything but this
|
|
1925
|
-
* / reply. No payment AMOUNT reaches it (ADR-0005): it carries cycles and a key, nothing else.
|
|
1926
|
-
* /
|
|
1927
|
-
* / THE RATE LIMIT ⟨2026-10-01, evening — the owner's ruling "1B"; until then this door shared
|
|
1928
|
-
* / first engrams' limiter in full: their 24-hour count, their in-flight count and
|
|
1929
|
-
* / `effectiveDailyCap`⟩. The door shares only the DIAL (`spawnCeiling`) and the WINDOW LENGTH (24
|
|
1930
|
-
* / hours). Its count is its own (`sponsoredCreationTimestampsBuf`, pruned by
|
|
1931
|
-
* / `pruneSponsoredWindow`), its in-flight count is its own (`sponsoredInFlight`), and its cap is
|
|
1932
|
-
* / `spawnCeiling` alone — the reserve-derived term never applies, because the opened engram lives
|
|
1933
|
-
* / on the cycles the caller attached and the registry funds nothing. So an opening never uses up a
|
|
1934
|
-
* / first engram's slot, and is never refused for the registry's own low balance. The per-key
|
|
1935
|
-
* / pending mark (`createEngramPending`) stays shared: it is about ONE key, not a count, and a key
|
|
1936
|
-
* / must not be mid-spawn at both doors at once.
|
|
1937
|
-
* /
|
|
1938
|
-
* / THE CUT-OFF AT BIRTH. If the caller ended the key's engagement while the canister was being
|
|
1939
|
-
* / created (the ending is recorded by `sysRecordAgentEdge` between this method's awaits), the
|
|
1940
|
-
* / opened engram is recorded AND cut off in the same step — the cycles are already in it, so the
|
|
1941
|
-
* / key keeps it, but it starts on nobody's record. Without this the ending's cut-off writer would
|
|
1942
|
-
* / have found no `openedThroughParent` row yet, and the engram would never be cut off.
|
|
1943
|
-
* / WHAT WOULD MAKE THIS WRONG: a second path that writes `parentOf`, or an `await` placed between
|
|
1944
|
-
* / the post-await re-check and the record below.
|
|
1945
|
-
*/
|
|
1946
|
-
sysSpawnChild: ActorMethod<[Principal], Result_1>;
|
|
1947
2050
|
/**
|
|
1948
2051
|
* / Admin: upgrade one engram to the current template. RESPECTS the owner's update preference —
|
|
1949
2052
|
* / an engram set to `#ManualOnly` is not moved by this method, which is what makes the preference
|
package/dist/registry.idl.js
CHANGED
|
@@ -21,7 +21,7 @@ export const idlFactory = ({ IDL }) => {
|
|
|
21
21
|
sovereignSkipped: IDL.Nat,
|
|
22
22
|
lowCycles: IDL.Nat,
|
|
23
23
|
});
|
|
24
|
-
const
|
|
24
|
+
const Result_30 = IDL.Variant({ Ok: FleetCycleHealth, Err: Error });
|
|
25
25
|
const FleetSummary = IDL.Record({
|
|
26
26
|
registrySinceNs: IDL.Opt(IDL.Int),
|
|
27
27
|
uniqueOwners: IDL.Nat,
|
|
@@ -69,7 +69,7 @@ export const idlFactory = ({ IDL }) => {
|
|
|
69
69
|
leaf: StandingLeaf,
|
|
70
70
|
witness: IDL.Vec(IDL.Nat8),
|
|
71
71
|
});
|
|
72
|
-
const
|
|
72
|
+
const Result_29 = IDL.Variant({ Ok: CertifiedStanding, Err: Error });
|
|
73
73
|
const AnchorStats = IDL.Record({
|
|
74
74
|
lastAnchorAtNs: IDL.Opt(IDL.Int),
|
|
75
75
|
lastEngramAnchorAtNs: IDL.Opt(IDL.Int),
|
|
@@ -109,6 +109,12 @@ export const idlFactory = ({ IDL }) => {
|
|
|
109
109
|
certificate: IDL.Opt(IDL.Vec(IDL.Nat8)),
|
|
110
110
|
witness: IDL.Vec(IDL.Nat8),
|
|
111
111
|
});
|
|
112
|
+
const ChildSignInOffer = IDL.Record({
|
|
113
|
+
parentActive: IDL.Bool,
|
|
114
|
+
parentIsFirstEngram: IDL.Bool,
|
|
115
|
+
parentOwner: IDL.Opt(IDL.Principal),
|
|
116
|
+
});
|
|
117
|
+
const Result_28 = IDL.Variant({ Ok: ChildSignInOffer, Err: Error });
|
|
112
118
|
const CustodyMode = IDL.Variant({
|
|
113
119
|
Sovereign: IDL.Null,
|
|
114
120
|
Managed: IDL.Null,
|
|
@@ -119,8 +125,8 @@ export const idlFactory = ({ IDL }) => {
|
|
|
119
125
|
child: IDL.Principal,
|
|
120
126
|
parent: IDL.Principal,
|
|
121
127
|
});
|
|
122
|
-
const
|
|
123
|
-
const
|
|
128
|
+
const Result_23 = IDL.Variant({ Ok: OpenedThrough, Err: Error });
|
|
129
|
+
const Result_27 = IDL.Variant({ Ok: IDL.Vec(IDL.Nat8), Err: Error });
|
|
124
130
|
const ReleaseClass = IDL.Variant({
|
|
125
131
|
Security: IDL.Null,
|
|
126
132
|
Feature: IDL.Null,
|
|
@@ -143,7 +149,7 @@ export const idlFactory = ({ IDL }) => {
|
|
|
143
149
|
totalEngrams: IDL.Nat,
|
|
144
150
|
activeEngrams: IDL.Nat,
|
|
145
151
|
});
|
|
146
|
-
const
|
|
152
|
+
const Result_26 = IDL.Variant({ Ok: PrivateMetrics, Err: Error });
|
|
147
153
|
const GenesisNote = IDL.Record({
|
|
148
154
|
predecessorSize: IDL.Opt(IDL.Nat),
|
|
149
155
|
predecessorHeadHash: IDL.Opt(IDL.Vec(IDL.Nat8)),
|
|
@@ -174,7 +180,7 @@ export const idlFactory = ({ IDL }) => {
|
|
|
174
180
|
loanOwed: IDL.Nat,
|
|
175
181
|
openUntilNs: IDL.Opt(IDL.Int),
|
|
176
182
|
});
|
|
177
|
-
const
|
|
183
|
+
const Result_25 = IDL.Variant({ Ok: RestartStatus, Err: Error });
|
|
178
184
|
const OpeningCounts = IDL.Record({
|
|
179
185
|
reopened: IDL.Nat,
|
|
180
186
|
openedThroughParent: IDL.Nat,
|
|
@@ -184,7 +190,7 @@ export const idlFactory = ({ IDL }) => {
|
|
|
184
190
|
reservationAttemptsRefusedAtCapacity: IDL.Nat,
|
|
185
191
|
spawnAttemptsRefusedAtCap: IDL.Nat,
|
|
186
192
|
});
|
|
187
|
-
const
|
|
193
|
+
const Result_24 = IDL.Variant({ Ok: OpeningCounts, Err: Error });
|
|
188
194
|
const PairedSoon = IDL.Record({
|
|
189
195
|
opened: IDL.Nat,
|
|
190
196
|
pairedWithin7Days: IDL.Nat,
|
|
@@ -202,7 +208,30 @@ export const idlFactory = ({ IDL }) => {
|
|
|
202
208
|
throughParent: PairedSoon,
|
|
203
209
|
agentsByTreesSpanned: TreesSpanned,
|
|
204
210
|
});
|
|
205
|
-
const
|
|
211
|
+
const Result_22 = IDL.Variant({ Ok: ReferralCounts, Err: Error });
|
|
212
|
+
const RegistryClockHealth = IDL.Record({
|
|
213
|
+
nextWakeAtNs: IDL.Opt(IDL.Int),
|
|
214
|
+
lastAttemptAtNs: IDL.Opt(IDL.Int),
|
|
215
|
+
attemptTotal: IDL.Opt(IDL.Nat),
|
|
216
|
+
lastErrorAtNs: IDL.Opt(IDL.Int),
|
|
217
|
+
okTotal: IDL.Opt(IDL.Nat),
|
|
218
|
+
overdue: IDL.Opt(IDL.Nat),
|
|
219
|
+
lastError: IDL.Opt(IDL.Text),
|
|
220
|
+
lastOkAtNs: IDL.Opt(IDL.Int),
|
|
221
|
+
});
|
|
222
|
+
const RegistryHealth = IDL.Record({
|
|
223
|
+
anchors: IDL.Opt(AnchorStats),
|
|
224
|
+
adminRoles: IDL.Opt(AdminRoles),
|
|
225
|
+
atNs: IDL.Opt(IDL.Int),
|
|
226
|
+
clock: IDL.Opt(RegistryClockHealth),
|
|
227
|
+
cycleReserve: IDL.Opt(
|
|
228
|
+
IDL.Record({
|
|
229
|
+
cycleBalance: IDL.Nat,
|
|
230
|
+
minOperatingReserveCycles: IDL.Nat,
|
|
231
|
+
}),
|
|
232
|
+
),
|
|
233
|
+
});
|
|
234
|
+
const Result_21 = IDL.Variant({ Ok: RegistryHealth, Err: Error });
|
|
206
235
|
const ReserveGateConfig = IDL.Record({
|
|
207
236
|
enabled: IDL.Bool,
|
|
208
237
|
inviteIssuer: IDL.Principal,
|
|
@@ -373,7 +402,7 @@ export const idlFactory = ({ IDL }) => {
|
|
|
373
402
|
frozen: IDL.Bool,
|
|
374
403
|
});
|
|
375
404
|
const Result_9 = IDL.Variant({ Ok: EngramComputeView, Err: Error });
|
|
376
|
-
const
|
|
405
|
+
const Result_2 = IDL.Variant({ Ok: IDL.Principal, Err: Error });
|
|
377
406
|
const RestartReply = IDL.Record({
|
|
378
407
|
securityInstalled: IDL.Bool,
|
|
379
408
|
lentCycles: IDL.Nat,
|
|
@@ -415,7 +444,7 @@ export const idlFactory = ({ IDL }) => {
|
|
|
415
444
|
inviteCode: IDL.Text,
|
|
416
445
|
});
|
|
417
446
|
const EdgeEvent = IDL.Variant({ Ended: Ending, Added: EnrolmentProof });
|
|
418
|
-
const
|
|
447
|
+
const Result_1 = IDL.Variant({
|
|
419
448
|
Ok: IDL.Record({ accepted: IDL.Nat }),
|
|
420
449
|
Err: Error,
|
|
421
450
|
});
|
|
@@ -428,7 +457,7 @@ export const idlFactory = ({ IDL }) => {
|
|
|
428
457
|
engramWasmFinalize: IDL.Func([IDL.Text], [Result_7], []),
|
|
429
458
|
engramWasmInit: IDL.Func([], [Result], []),
|
|
430
459
|
engramWasmPushChunk: IDL.Func([IDL.Vec(IDL.Nat8)], [Result_7], []),
|
|
431
|
-
fleetCycleHealth: IDL.Func([IDL.Nat, IDL.Nat, IDL.Nat], [
|
|
460
|
+
fleetCycleHealth: IDL.Func([IDL.Nat, IDL.Nat, IDL.Nat], [Result_30], []),
|
|
432
461
|
fleetSummary: IDL.Func([], [FleetSummary], ['query']),
|
|
433
462
|
getAbandonedAtNs: IDL.Func([IDL.Principal], [IDL.Opt(IDL.Int)], ['query']),
|
|
434
463
|
getActivationFunnel: IDL.Func([], [ActivationFunnel], ['query']),
|
|
@@ -438,12 +467,13 @@ export const idlFactory = ({ IDL }) => {
|
|
|
438
467
|
[IDL.Record({ agents: IDL.Nat, liveEngagements: IDL.Nat })],
|
|
439
468
|
['query'],
|
|
440
469
|
),
|
|
441
|
-
getAgentStanding: IDL.Func([IDL.Principal], [
|
|
470
|
+
getAgentStanding: IDL.Func([IDL.Principal], [Result_29], ['query']),
|
|
442
471
|
getAnchorStats: IDL.Func([], [AnchorStats], ['query']),
|
|
443
472
|
getAuditHead: IDL.Func([], [AuditHead], ['query']),
|
|
444
473
|
getCertifiedAnchor: IDL.Func([IDL.Principal], [IDL.Opt(CertifiedAnchor)], ['query']),
|
|
445
474
|
getCertifiedAuditHead: IDL.Func([], [CertifiedAuditHead], ['query']),
|
|
446
475
|
getCertifiedBirth: IDL.Func([IDL.Vec(IDL.Nat8)], [IDL.Opt(CertifiedBirth)], ['query']),
|
|
476
|
+
getChildSignInOffer: IDL.Func([IDL.Principal], [Result_28], ['query']),
|
|
447
477
|
getCustodyMode: IDL.Func([IDL.Principal], [Result_10], ['query']),
|
|
448
478
|
getCycleReserveStatus: IDL.Func(
|
|
449
479
|
[],
|
|
@@ -456,22 +486,23 @@ export const idlFactory = ({ IDL }) => {
|
|
|
456
486
|
['query'],
|
|
457
487
|
),
|
|
458
488
|
getEngramNumberOf: IDL.Func([IDL.Principal], [IDL.Opt(IDL.Nat)], ['query']),
|
|
459
|
-
getEngramOpenedThrough: IDL.Func([IDL.Principal], [
|
|
460
|
-
getEngramWasmChunk: IDL.Func([IDL.Nat], [
|
|
489
|
+
getEngramOpenedThrough: IDL.Func([IDL.Principal], [Result_23], ['query']),
|
|
490
|
+
getEngramWasmChunk: IDL.Func([IDL.Nat], [Result_27], ['query']),
|
|
461
491
|
getEngramWasmClass: IDL.Func([], [ReleaseClass], ['query']),
|
|
462
492
|
getEngramWasmHash: IDL.Func([], [IDL.Text], ['query']),
|
|
463
493
|
getEngramWasmInfo: IDL.Func([], [EngramWasmInfo], ['query']),
|
|
464
|
-
getFleetMetrics: IDL.Func([], [
|
|
494
|
+
getFleetMetrics: IDL.Func([], [Result_26], []),
|
|
465
495
|
getGenesisNote: IDL.Func([], [GenesisNote], ['query']),
|
|
466
496
|
getLastUpgrade: IDL.Func([IDL.Principal], [IDL.Opt(LastUpgrade)], ['query']),
|
|
467
497
|
getMarketCanister: IDL.Func([], [IDL.Opt(IDL.Principal)], ['query']),
|
|
468
498
|
getMetricsReader: IDL.Func([], [IDL.Opt(IDL.Principal)], ['query']),
|
|
469
499
|
getMyEngram: IDL.Func([], [IDL.Opt(EngramRecordView)], ['query']),
|
|
470
500
|
getMyReservation: IDL.Func([], [IDL.Opt(ReservationView)], ['query']),
|
|
471
|
-
getMyRestartStatus: IDL.Func([], [
|
|
472
|
-
getOpeningCounts: IDL.Func([], [
|
|
473
|
-
getParentOf: IDL.Func([IDL.Principal], [
|
|
474
|
-
getReferralCounts: IDL.Func([IDL.Vec(IDL.Principal)], [
|
|
501
|
+
getMyRestartStatus: IDL.Func([], [Result_25], ['query']),
|
|
502
|
+
getOpeningCounts: IDL.Func([], [Result_24], ['query']),
|
|
503
|
+
getParentOf: IDL.Func([IDL.Principal], [Result_23], ['query']),
|
|
504
|
+
getReferralCounts: IDL.Func([IDL.Vec(IDL.Principal)], [Result_22], ['query']),
|
|
505
|
+
getRegistryHealth: IDL.Func([], [Result_21], ['query']),
|
|
475
506
|
getRentBiller: IDL.Func([], [IDL.Opt(IDL.Principal)], ['query']),
|
|
476
507
|
getReserveGateConfig: IDL.Func([], [ReserveGateConfig], ['query']),
|
|
477
508
|
getRestartTotals: IDL.Func([], [RestartTotals], ['query']),
|
|
@@ -542,7 +573,7 @@ export const idlFactory = ({ IDL }) => {
|
|
|
542
573
|
}),
|
|
543
574
|
),
|
|
544
575
|
],
|
|
545
|
-
[
|
|
576
|
+
[Result_2],
|
|
546
577
|
[],
|
|
547
578
|
),
|
|
548
579
|
removeAuditViewer: IDL.Func([IDL.Principal], [Result], []),
|
|
@@ -585,14 +616,23 @@ export const idlFactory = ({ IDL }) => {
|
|
|
585
616
|
sysMeterEngram: IDL.Func([IDL.Principal], [Result_4], []),
|
|
586
617
|
sysNoteReset: IDL.Func([], [Result], []),
|
|
587
618
|
sysNotifyOwnershipTransfer: IDL.Func([IDL.Principal], [Result_3], []),
|
|
619
|
+
sysOpenChild: IDL.Func(
|
|
620
|
+
[
|
|
621
|
+
IDL.Record({
|
|
622
|
+
ownerKey: IDL.Principal,
|
|
623
|
+
signIn: IDL.Opt(IDL.Principal),
|
|
624
|
+
}),
|
|
625
|
+
],
|
|
626
|
+
[Result_2],
|
|
627
|
+
[],
|
|
628
|
+
),
|
|
588
629
|
sysRecordAgentEdge: IDL.Func(
|
|
589
630
|
[IDL.Record({ root: IDL.Principal, event: EdgeEvent })],
|
|
590
631
|
[Result],
|
|
591
632
|
[],
|
|
592
633
|
),
|
|
593
|
-
sysRepayUpgradeAdvance: IDL.Func([IDL.Record({ advanceId: IDL.Nat })], [
|
|
634
|
+
sysRepayUpgradeAdvance: IDL.Func([IDL.Record({ advanceId: IDL.Nat })], [Result_1], []),
|
|
594
635
|
sysRevertOwnershipTransfer: IDL.Func([IDL.Principal], [Result], []),
|
|
595
|
-
sysSpawnChild: IDL.Func([IDL.Principal], [Result_1], []),
|
|
596
636
|
upgradeEngram: IDL.Func([IDL.Principal], [Result], []),
|
|
597
637
|
upgradeMyEngram: IDL.Func([], [Result], []),
|
|
598
638
|
verifyEngramActiveOwner: IDL.Func([IDL.Principal, IDL.Principal], [IDL.Bool], ['query']),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@engramx/idl",
|
|
3
|
-
"version": "0.16.0-rc.
|
|
3
|
+
"version": "0.16.0-rc.22",
|
|
4
4
|
"description": "The Candid interfaces of the EngramX canisters (engram, registry, market) — the .did files and the JS/TS IDL factories generated from them, published with every release so code that calls them pins the interface by version.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "EngramX <developer@engramx.ai>",
|