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

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 CHANGED
@@ -2091,6 +2091,9 @@ type Engram =
2091
2091
  /// Owner-only, Billing-class: the signing floor, the balance, one signature's price, and how many
2092
2092
  /// payment signatures the balance carries above the floor before `signX402Payment` is refused by
2093
2093
  /// name. The same numbers the check uses, so Billing can say only what the engram enforces.
2094
+ /// ⟨2026-11-01, "6 fix"⟩ Refused by name (`#Unavailable`) while this engram has not read its own
2095
+ /// freezing setting: there is no floor to serve then, and a 30-day figure would be a made-up one
2096
+ /// (ADR-0002) — the signers refuse in that state too, so the refusal is the truth on Billing.
2094
2097
  getSigningFloor: () -> (Result_62) query;
2095
2098
  /// The registry that spawned this engram, if it recorded one.
2096
2099
  ///
@@ -1259,6 +1259,9 @@ export interface Engram {
1259
1259
  * / Owner-only, Billing-class: the signing floor, the balance, one signature's price, and how many
1260
1260
  * / payment signatures the balance carries above the floor before `signX402Payment` is refused by
1261
1261
  * / name. The same numbers the check uses, so Billing can say only what the engram enforces.
1262
+ * / ⟨2026-11-01, "6 fix"⟩ Refused by name (`#Unavailable`) while this engram has not read its own
1263
+ * / freezing setting: there is no floor to serve then, and a 30-day figure would be a made-up one
1264
+ * / (ADR-0002) — the signers refuse in that state too, so the refusal is the truth on Billing.
1262
1265
  */
1263
1266
  getSigningFloor: ActorMethod<[], Result_62>;
1264
1267
  /**
package/dist/registry.did CHANGED
@@ -1549,6 +1549,33 @@ service : {
1549
1549
  invite: opt text;
1550
1550
  walletProof: opt blob;
1551
1551
  }) -> (Result);
1552
+ /// Admin (the wasm admin): give one grown engram's working memory back, in place. The engram's
1553
+ /// stable graph is copied into its stable memory and the SAME module is reinstalled with
1554
+ /// `wasm_memory_persistence = ?#replace`, so the engram restarts in a fresh, small wasm memory with
1555
+ /// every file, version, record entry, setting and key it had (MemoryReset.mo).
1556
+ ///
1557
+ /// REFUSES, and changes nothing, when: the caller is not the wasm admin; the registry does not know
1558
+ /// the engram; a change of owner or a restart is open; its status cannot be read (a sovereign engram);
1559
+ /// it is not running; it is not on the current template; its wasm memory is under
1560
+ /// `MemoryReset.WASM_FLOOR_BYTES` (nothing to give back — and so a second reset straight after a
1561
+ /// first); its balance is short of the install hold above its own freezing line (no dip, no deposit);
1562
+ /// or one of its own calls is in flight ("Busy, try again").
1563
+ ///
1564
+ /// WHO PAYS: the engram, as for any install — `install_code` is charged to the canister it installs
1565
+ /// on, and the stabilise / rebuild steps are the engram's own messages. The registry deposits
1566
+ /// nothing; it pays only for its own calls. Two installs run: an ordinary one of the same module
1567
+ /// first, which is the network's test for a call in flight while nothing is yet at stake, then the
1568
+ /// replace.
1569
+ ///
1570
+ /// ONCE STARTED it finishes or says the engram is HELD: between the stabilise call and the replace
1571
+ /// install the engram refuses every message, so a failure there answers `#Unavailable` naming the
1572
+ /// step, and running this method again picks up where it stopped (it reads the held state from the
1573
+ /// engram itself). Do not publish a new template while a reset is held.
1574
+ ///
1575
+ /// Never run on production engrams (the owner's ruling). On the staging network, as the wasm admin,
1576
+ /// with the engram's canister id in ENGRAM:
1577
+ /// icp canister call registry-staging resetEngramMemory "(principal \"$ENGRAM\")" -e ic
1578
+ resetEngramMemory: (canisterId: principal) -> (Result);
1552
1579
  /// Restart YOUR OWN stopped engram.
1553
1580
  ///
1554
1581
  /// CALLER: the owner, from the app's restart sheet (ADR-0020). Afterwards the app runs the engram's
@@ -1497,6 +1497,35 @@ export interface _SERVICE {
1497
1497
  ],
1498
1498
  Result
1499
1499
  >;
1500
+ /**
1501
+ * / Admin (the wasm admin): give one grown engram's working memory back, in place. The engram's
1502
+ * / stable graph is copied into its stable memory and the SAME module is reinstalled with
1503
+ * / `wasm_memory_persistence = ?#replace`, so the engram restarts in a fresh, small wasm memory with
1504
+ * / every file, version, record entry, setting and key it had (MemoryReset.mo).
1505
+ * /
1506
+ * / REFUSES, and changes nothing, when: the caller is not the wasm admin; the registry does not know
1507
+ * / the engram; a change of owner or a restart is open; its status cannot be read (a sovereign engram);
1508
+ * / it is not running; it is not on the current template; its wasm memory is under
1509
+ * / `MemoryReset.WASM_FLOOR_BYTES` (nothing to give back — and so a second reset straight after a
1510
+ * / first); its balance is short of the install hold above its own freezing line (no dip, no deposit);
1511
+ * / or one of its own calls is in flight ("Busy, try again").
1512
+ * /
1513
+ * / WHO PAYS: the engram, as for any install — `install_code` is charged to the canister it installs
1514
+ * / on, and the stabilise / rebuild steps are the engram's own messages. The registry deposits
1515
+ * / nothing; it pays only for its own calls. Two installs run: an ordinary one of the same module
1516
+ * / first, which is the network's test for a call in flight while nothing is yet at stake, then the
1517
+ * / replace.
1518
+ * /
1519
+ * / ONCE STARTED it finishes or says the engram is HELD: between the stabilise call and the replace
1520
+ * / install the engram refuses every message, so a failure there answers `#Unavailable` naming the
1521
+ * / step, and running this method again picks up where it stopped (it reads the held state from the
1522
+ * / engram itself). Do not publish a new template while a reset is held.
1523
+ * /
1524
+ * / Never run on production engrams (the owner's ruling). On the staging network, as the wasm admin,
1525
+ * / with the engram's canister id in ENGRAM:
1526
+ * / icp canister call registry-staging resetEngramMemory "(principal \"$ENGRAM\")" -e ic
1527
+ */
1528
+ resetEngramMemory: ActorMethod<[Principal], Result>;
1500
1529
  /**
1501
1530
  * / Restart YOUR OWN stopped engram.
1502
1531
  * /
@@ -558,6 +558,7 @@ export const idlFactory = ({ IDL }) => {
558
558
  [Result],
559
559
  [],
560
560
  ),
561
+ resetEngramMemory: IDL.Func([IDL.Principal], [Result], []),
561
562
  restartMyStoppedEngram: IDL.Func([], [Result_8], []),
562
563
  returnToManaged: IDL.Func([], [Result], []),
563
564
  setAdmin: IDL.Func([IDL.Principal], [Result], []),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@engramx/idl",
3
- "version": "0.16.0-rc.20",
3
+ "version": "0.16.0-rc.21",
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>",