@engramx/client 0.16.0-rc.12 → 0.16.0-rc.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/README.md +31 -8
  2. package/dist/EngramClient.d.ts +45 -15
  3. package/dist/EngramClient.js +121 -70
  4. package/dist/EngramClient.js.map +1 -1
  5. package/dist/ProfileManager.d.ts +3 -19
  6. package/dist/ProfileManager.js +1 -58
  7. package/dist/ProfileManager.js.map +1 -1
  8. package/dist/SessionManager.d.ts +1 -1
  9. package/dist/SessionManager.js.map +1 -1
  10. package/dist/certifiedAudit.d.ts +31 -0
  11. package/dist/certifiedAudit.js +124 -0
  12. package/dist/certifiedAudit.js.map +1 -1
  13. package/dist/claude-setup.d.ts +15 -6
  14. package/dist/claude-setup.js +30 -20
  15. package/dist/claude-setup.js.map +1 -1
  16. package/dist/cli.js +103 -166
  17. package/dist/cli.js.map +1 -1
  18. package/dist/connect-config.d.ts +109 -0
  19. package/dist/connect-config.js +251 -0
  20. package/dist/connect-config.js.map +1 -0
  21. package/dist/encryption.js +7 -1
  22. package/dist/encryption.js.map +1 -1
  23. package/dist/evidence.d.ts +94 -0
  24. package/dist/evidence.js +352 -0
  25. package/dist/evidence.js.map +1 -0
  26. package/dist/idl.d.ts +16 -1
  27. package/dist/idl.js +9 -1
  28. package/dist/idl.js.map +1 -1
  29. package/dist/index.d.ts +11 -5
  30. package/dist/index.js +13 -4
  31. package/dist/index.js.map +1 -1
  32. package/dist/ledgerfsHash.d.ts +0 -2
  33. package/dist/ledgerfsHash.js +0 -2
  34. package/dist/ledgerfsHash.js.map +1 -1
  35. package/dist/lineage.d.ts +7 -1
  36. package/dist/lineage.js +7 -1
  37. package/dist/lineage.js.map +1 -1
  38. package/dist/memoryArchive.d.ts +12 -77
  39. package/dist/memoryArchive.js.map +1 -1
  40. package/dist/migrate.d.ts +1 -30
  41. package/dist/migrate.js +13 -136
  42. package/dist/migrate.js.map +1 -1
  43. package/dist/openclaw-local.d.ts +86 -0
  44. package/dist/openclaw-local.js +332 -0
  45. package/dist/openclaw-local.js.map +1 -0
  46. package/dist/openclaw-setup.d.ts +2 -2
  47. package/dist/openclaw-setup.js +8 -36
  48. package/dist/openclaw-setup.js.map +1 -1
  49. package/dist/path-utils.d.ts +0 -16
  50. package/dist/path-utils.js +4 -27
  51. package/dist/path-utils.js.map +1 -1
  52. package/dist/publicRecord.d.ts +5 -0
  53. package/dist/publicRecord.js +52 -0
  54. package/dist/publicRecord.js.map +1 -0
  55. package/dist/recordChain.d.ts +69 -0
  56. package/dist/recordChain.js +145 -0
  57. package/dist/recordChain.js.map +1 -0
  58. package/dist/schema.d.ts +6 -17
  59. package/dist/schema.js +6 -28
  60. package/dist/schema.js.map +1 -1
  61. package/dist/types.d.ts +50 -453
  62. package/dist/verify.d.ts +6 -0
  63. package/dist/verify.js +16 -0
  64. package/dist/verify.js.map +1 -0
  65. package/package.json +17 -5
  66. package/dist/offline.d.ts +0 -21
  67. package/dist/offline.js +0 -104
  68. package/dist/offline.js.map +0 -1
@@ -0,0 +1,352 @@
1
+ // Evidence bundles: what a writer captures right after a write, and the check anyone runs on it.
2
+ //
3
+ // ⟨ADDED 2026-10-15, the owner's ruling 6B of 2026-10-14⟩ The claim a bundle proves is narrow and
4
+ // exact: "this entry — and, when the bundle carries one, this write's bytes — was in the record by
5
+ // the time the subnet signed this certificate." The check is a chain of links, and each must hold:
6
+ //
7
+ // 1. content → memory event the bytes, with the receipt's previous head, time, size and content
8
+ // root, rebuild the memory-file event whose hash is the receipt's head;
9
+ // 2. memory event → entry the record entry names that event (`seq=…` and `head=…`);
10
+ // 3. entry → entry hash the entry's body, hashed first and chained onto the record head
11
+ // before it (the receipt's `recordPrev`);
12
+ // 4. certificate it verifies against the pinned IC mainnet root key for this canister,
13
+ // at any age, and its signed `/time` is read;
14
+ // 5. certified head the certificate's certified data is the bundle's head;
15
+ // 6. walk from the entry, through hash-only rows (from the bundle, or fetched
16
+ // from the canister by anyone), to the certified head;
17
+ // 7. total the number of entries that head covers, proven by the walk, is the
18
+ // number the bundle claims.
19
+ //
20
+ // What it does NOT prove: that nothing was written elsewhere (another path, engram or key), or any
21
+ // time EARLIER than the certificate's — an entry's certified time is the signed time of the earliest
22
+ // certificate one keeps that covers it. A controller can rewrite a record and certify a new,
23
+ // self-consistent head; only someone who kept an OLDER certificate catches that, which is why the
24
+ // bundle keeps the certificate's bytes, not a flag saying one was checked.
25
+ //
26
+ // NODE-ONLY: the memory-file half (ledgerfsHash.ts) hashes with node:crypto. The browser-safe parts
27
+ // (the chain walk, the historical certificate check) are in recordChain.ts and certifiedAudit.ts.
28
+ import { Principal } from '@icp-sdk/core/principal';
29
+ import { contentRoot as ledgerContentRoot, chunkHash, deltaHash, eventHash, } from './ledgerfsHash.js';
30
+ import { recordEntryHash, sameBytes, toHexString, walkToCertifiedHead, } from './recordChain.js';
31
+ import { verifyHistoricalCertificate } from './certifiedAudit.js';
32
+ export const EVIDENCE_FORMAT = 'engramx-evidence/1';
33
+ /** ledgerfs's fixed chunk size (src/ledgerfs/Types.mo · CHUNK_SIZE) — part of every content root. */
34
+ const CHUNK_SIZE = 262144;
35
+ // ── parsing (every field checked, so a malformed bundle is named, never half-checked) ────────────
36
+ const hex = (what, h, len) => {
37
+ if (typeof h !== 'string' || !/^([0-9a-f]{2})*$/.test(h)) {
38
+ throw new Error(`${what} is not lowercase hex`);
39
+ }
40
+ const out = Uint8Array.from(h.match(/../g) ?? [], (b) => parseInt(b, 16));
41
+ if (len !== undefined && out.length !== len)
42
+ throw new Error(`${what} is ${out.length} bytes, not ${len}`);
43
+ return out;
44
+ };
45
+ const nat = (what, n) => {
46
+ if (typeof n !== 'string' || !/^\d+$/.test(n))
47
+ throw new Error(`${what} is not a decimal string`);
48
+ return BigInt(n);
49
+ };
50
+ const int = (what, n) => {
51
+ if (typeof n !== 'string' || !/^-?\d+$/.test(n))
52
+ throw new Error(`${what} is not a decimal string`);
53
+ return BigInt(n);
54
+ };
55
+ const b64 = (what, s) => {
56
+ if (typeof s !== 'string')
57
+ throw new Error(`${what} is not base64 text`);
58
+ return new Uint8Array(Buffer.from(s, 'base64'));
59
+ };
60
+ /** Which ledgerfs op a record entry's operation wrote — the two a writer can rebuild from its bytes. */
61
+ function opKind(operation) {
62
+ if (operation === 'memory.append' ||
63
+ operation === 'mcp.append' ||
64
+ operation === 'memory.append.session') {
65
+ return 'append';
66
+ }
67
+ if (operation === 'memory.write' || operation === 'memory.revise')
68
+ return 'set';
69
+ return null;
70
+ }
71
+ /** The memory-file event a write committed, rebuilt from its bytes and its receipt. */
72
+ function rebuildEvent(kind, w, bytes) {
73
+ const r = w.receipt;
74
+ const seq = nat('write.receipt.seq', r.seq);
75
+ const size = nat('write.receipt.size', r.size);
76
+ const receiptRoot = hex('write.receipt.contentRoot', r.contentRoot, 32);
77
+ let op;
78
+ let contentRootChecked = false;
79
+ if (kind === 'append') {
80
+ op = { kind: 'append', deltaHash: deltaHash(bytes), deltaSize: bytes.length, newSize: size };
81
+ }
82
+ else {
83
+ // A set seals its whole content from an empty tail: full 256 KiB chunks, then the remainder,
84
+ // every ref born at this event's seq (Store.prepareSet · seal).
85
+ const full = [];
86
+ let i = 0;
87
+ for (; i + CHUNK_SIZE <= bytes.length; i += CHUNK_SIZE)
88
+ full.push(bytes.subarray(i, i + CHUNK_SIZE));
89
+ const tail = bytes.subarray(i);
90
+ const fullHashes = full.map((c) => chunkHash(c));
91
+ const tailHash = tail.length > 0 ? chunkHash(tail) : null;
92
+ const root = ledgerContentRoot(fullHashes, tailHash);
93
+ const chunks = fullHashes.map((h) => ({ hash: h, size: CHUNK_SIZE, birthSeq: seq }));
94
+ if (tailHash)
95
+ chunks.push({ hash: tailHash, size: tail.length, birthSeq: seq });
96
+ op = { kind: 'set', manifest: { chunks, totalSize: BigInt(bytes.length), contentRoot: root } };
97
+ contentRootChecked = sameBytes(root, receiptRoot);
98
+ }
99
+ return {
100
+ event: {
101
+ seq,
102
+ path: w.path,
103
+ version: nat('write.receipt.version', r.version),
104
+ op,
105
+ byRaw: Principal.fromText(w.by).toUint8Array(),
106
+ at: int('write.receipt.atNs', r.atNs),
107
+ size,
108
+ contentRoot: receiptRoot,
109
+ prev: hex('write.receipt.prev', r.prev, 32),
110
+ },
111
+ contentRootChecked,
112
+ };
113
+ }
114
+ /** Run every link. Never throws for a broken bundle: a malformed field is a broken link, named. */
115
+ export async function checkEvidence(bundle, opts = {}) {
116
+ const links = [];
117
+ const done = (extra = {}) => {
118
+ const broken = links.find((l) => !l.ok);
119
+ return {
120
+ ok: !broken,
121
+ links,
122
+ why: broken ? `${broken.link}: ${broken.detail}` : 'ok',
123
+ ...extra,
124
+ };
125
+ };
126
+ const fail = (link, detail, extra = {}) => {
127
+ links.push({ link, ok: false, detail });
128
+ return done(extra);
129
+ };
130
+ try {
131
+ if (bundle?.format !== EVIDENCE_FORMAT) {
132
+ return fail('bundle', `format is ${JSON.stringify(bundle?.format)}, not "${EVIDENCE_FORMAT}"`);
133
+ }
134
+ Principal.fromText(bundle.canisterId);
135
+ }
136
+ catch (e) {
137
+ return fail('bundle', e.message);
138
+ }
139
+ let entry;
140
+ let entryId;
141
+ let recordPrev;
142
+ let hashFirstFrom;
143
+ try {
144
+ const e = bundle.entry;
145
+ entryId = nat('entry.id', e.id);
146
+ entry = {
147
+ id: entryId,
148
+ timestampNs: int('entry.timestampNs', e.timestampNs),
149
+ caller: Principal.fromText(e.caller).toText(),
150
+ callerRole: String(e.callerRole),
151
+ operation: String(e.operation),
152
+ details: String(e.details),
153
+ success: e.success === true,
154
+ };
155
+ recordPrev = hex('recordPrev', bundle.recordPrev);
156
+ if (recordPrev.length !== 0 && recordPrev.length !== 32)
157
+ throw new Error('recordPrev is neither empty (genesis) nor 32 bytes');
158
+ hashFirstFrom = nat('hashFirstFrom', bundle.hashFirstFrom);
159
+ }
160
+ catch (e) {
161
+ return fail('bundle', e.message);
162
+ }
163
+ // 1–2. content → memory event → record entry
164
+ if (bundle.write) {
165
+ const kind = opKind(entry.operation);
166
+ if (!kind) {
167
+ return fail('content → memory event', `the entry's operation "${entry.operation}" is not a write this check can rebuild from its bytes (an append or a set)`);
168
+ }
169
+ let built;
170
+ let receiptHead;
171
+ try {
172
+ built = rebuildEvent(kind, bundle.write, b64('write.bytes', bundle.write.bytes));
173
+ receiptHead = hex('write.receipt.head', bundle.write.receipt.head, 32);
174
+ }
175
+ catch (e) {
176
+ return fail('content → memory event', `the write is malformed: ${e.message}`);
177
+ }
178
+ if (kind === 'set' && !built.contentRootChecked) {
179
+ return fail('content → memory event', "the bytes do not hash to the receipt's content root: they are not the content this write set");
180
+ }
181
+ const h = eventHash(built.event);
182
+ if (!sameBytes(h, receiptHead)) {
183
+ return fail('content → memory event', `the event rebuilt from the bytes and the receipt hashes to ${toHexString(h)}, not to the receipt's head ` +
184
+ `${toHexString(receiptHead)}: the bytes are not the ones written, or the receipt's previous head, time, size ` +
185
+ `or content root is wrong`);
186
+ }
187
+ links.push({
188
+ link: 'content → memory event',
189
+ ok: true,
190
+ detail: `${kind === 'append' ? 'the appended bytes' : 'the content'} rebuild event ${bundle.write.receipt.seq}, head ${toHexString(receiptHead)}`,
191
+ });
192
+ // The engram writes a memory entry's details as `v=<version>[ src=…] seq=<seq> head=<head>[ conn=…]
193
+ // path=<path>[ key=…]`, capped at 512 characters with the path LAST so a cap cuts the path, never
194
+ // the proof (main.mo · receiptSuffix). All three tokens must name THIS write.
195
+ const d = entry.details;
196
+ const seqTok = ` seq=${bundle.write.receipt.seq} head=${toHexString(receiptHead)}`;
197
+ const versionTok = `v=${bundle.write.receipt.version} `;
198
+ const pathTok = ` path=${bundle.write.path}`;
199
+ const pathCut = Array.from(d).length === 512 && pathTok.startsWith(d.slice(d.lastIndexOf(' path=')));
200
+ if (!d.startsWith(versionTok) ||
201
+ !d.includes(`${seqTok} `) ||
202
+ !(d.includes(pathTok) || pathCut)) {
203
+ return fail('memory event → record entry', `the entry does not name this write: its details are "${d.slice(0, 200)}", and they must begin ` +
204
+ `"${versionTok.trim()}", carry "${seqTok.trim()}" and name path "${bundle.write.path}"`);
205
+ }
206
+ links.push({
207
+ link: 'memory event → record entry',
208
+ ok: true,
209
+ detail: `entry ${entryId} records seq ${bundle.write.receipt.seq}`,
210
+ });
211
+ }
212
+ // 3. entry → its hash
213
+ const entryHash = await recordEntryHash(entry, recordPrev, hashFirstFrom);
214
+ if (bundle.entry.entryHash !== undefined) {
215
+ let served;
216
+ try {
217
+ served = hex('entry.entryHash', bundle.entry.entryHash, 32);
218
+ }
219
+ catch (e) {
220
+ return fail('record entry → entry hash', e.message);
221
+ }
222
+ if (!sameBytes(served, entryHash)) {
223
+ return fail('record entry → entry hash', `the entry, chained onto the previous record head ${toHexString(recordPrev) || '(genesis)'}, hashes to ` +
224
+ `${toHexString(entryHash)}, not to its entry hash ${toHexString(served)}: the entry's text, or the receipt's previous record head, is wrong`);
225
+ }
226
+ }
227
+ links.push({
228
+ link: 'record entry → entry hash',
229
+ ok: true,
230
+ detail: `entry ${entryId} hashes to ${toHexString(entryHash)} (${entryId >= hashFirstFrom ? 'hashed first, then chained' : 'the older rule'})`,
231
+ });
232
+ // 4–5. certificate and certified head
233
+ let certified;
234
+ let claimedHead;
235
+ try {
236
+ claimedHead = hex('certified.headHash', bundle.certified.headHash, 32);
237
+ const witness = bundle.certified.witness
238
+ ? b64('certified.witness', bundle.certified.witness)
239
+ : null;
240
+ certified = await (opts.verifyCertificate ?? verifyHistoricalCertificate)({
241
+ certificate: b64('certified.certificate', bundle.certified.certificate),
242
+ canisterId: bundle.canisterId,
243
+ rootKey: opts.rootKey,
244
+ witness,
245
+ leafPath: witness ? [new TextEncoder().encode('audit_head')] : undefined,
246
+ });
247
+ }
248
+ catch (e) {
249
+ return fail('certificate', e.message);
250
+ }
251
+ if (!certified.verified || certified.signedTimeNs === null) {
252
+ return fail('certificate', certified.why);
253
+ }
254
+ const signedTimeNs = certified.signedTimeNs;
255
+ links.push({
256
+ link: 'certificate',
257
+ ok: true,
258
+ detail: `signed by the subnet at ${new Date(Number(signedTimeNs / 1000000n)).toISOString()} for ${bundle.canisterId}`,
259
+ });
260
+ const certifiedHead = certified.leaf ?? certified.certifiedData;
261
+ if (!sameBytes(certifiedHead, claimedHead)) {
262
+ return fail('certified head', `the certificate certifies ${toHexString(certifiedHead)}, not the bundle's head ${toHexString(claimedHead)}`, { signedTimeNs });
263
+ }
264
+ links.push({
265
+ link: 'certified head',
266
+ ok: true,
267
+ detail: `the subnet signed head ${toHexString(certifiedHead)}`,
268
+ });
269
+ // The certificate predates the entry when it certifies the head the entry was chained onto.
270
+ if (sameBytes(certifiedHead, recordPrev)) {
271
+ return fail('walk', `the certificate precedes the entry: it certifies the record head from just before entry ${entryId}, so it was captured before the write and proves nothing about it`, { signedTimeNs });
272
+ }
273
+ // 6. walk
274
+ let rows;
275
+ try {
276
+ rows = (bundle.rows ?? []).map((r, i) => ({
277
+ id: nat(`rows[${i}].id`, r.id),
278
+ digest: hex(`rows[${i}].digest`, r.digest, 32),
279
+ entryHash: hex(`rows[${i}].entryHash`, r.entryHash, 32),
280
+ }));
281
+ }
282
+ catch (e) {
283
+ return fail('walk', `the bundle's rows are malformed: ${e.message}`, {
284
+ signedTimeNs,
285
+ });
286
+ }
287
+ let walk = await walkToCertifiedHead({
288
+ fromId: entryId,
289
+ fromHash: entryHash,
290
+ rows,
291
+ certifiedHead,
292
+ hashFirstFrom,
293
+ });
294
+ // Fetch only when the bundle carried no rows, or its rows simply ran out. A row that is missing,
295
+ // swapped or altered INSIDE the bundle is a broken bundle — never repaired by fetching.
296
+ const ranOut = !walk.ok && (rows.length === 0 || /was not reached/.test(walk.why));
297
+ if (!walk.ok && ranOut && opts.fetchRows) {
298
+ const last = rows.length ? rows[rows.length - 1].id : entryId;
299
+ let fetched;
300
+ try {
301
+ fetched = await opts.fetchRows(rows.length ? last + 1n : entryId + 1n);
302
+ }
303
+ catch (e) {
304
+ return fail('walk', `fetching hash-only rows failed: ${e.message}`, {
305
+ signedTimeNs,
306
+ });
307
+ }
308
+ if (fetched.hashFirstFrom !== hashFirstFrom) {
309
+ return fail('walk', `the canister says its record switched rule at ${fetched.hashFirstFrom}, the bundle says ${hashFirstFrom}`, { signedTimeNs });
310
+ }
311
+ walk = await walkToCertifiedHead({
312
+ fromId: entryId,
313
+ fromHash: entryHash,
314
+ rows: [...rows, ...fetched.rows.filter((r) => r.id > last)],
315
+ certifiedHead,
316
+ hashFirstFrom,
317
+ });
318
+ }
319
+ if (!walk.ok)
320
+ return fail('walk', walk.why, { signedTimeNs });
321
+ links.push({
322
+ link: 'walk',
323
+ ok: true,
324
+ detail: `${walk.distance} entr${walk.distance === 1n ? 'y' : 'ies'} from entry ${entryId} to the certified head (entry ${walk.headId})`,
325
+ });
326
+ // 7. total
327
+ const covered = walk.headId + 1n;
328
+ if (bundle.certified.total !== undefined) {
329
+ let claimed;
330
+ try {
331
+ claimed = nat('certified.total', bundle.certified.total);
332
+ }
333
+ catch (e) {
334
+ return fail('total', e.message, { signedTimeNs, distance: walk.distance });
335
+ }
336
+ if (claimed !== covered) {
337
+ return fail('total', `the bundle says the head covers ${claimed} entries; the walk proves it covers ${covered}`, { signedTimeNs, distance: walk.distance });
338
+ }
339
+ links.push({
340
+ link: 'total',
341
+ ok: true,
342
+ detail: `the certified head covers exactly ${covered} entries`,
343
+ });
344
+ }
345
+ return done({ signedTimeNs, distance: walk.distance, entriesCovered: covered });
346
+ }
347
+ /** Encode a bundle field from bytes. */
348
+ export const bundleHex = toHexString;
349
+ export const bundleB64 = (b) => Buffer.from(Uint8Array.from(b)).toString('base64');
350
+ /** For a page's full items: the hash-only row of each, so a page that mixes both can be walked. */
351
+ export { sealedRowOf, recordEntryBody } from './recordChain.js';
352
+ //# sourceMappingURL=evidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence.js","sourceRoot":"","sources":["../src/evidence.ts"],"names":[],"mappings":"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"}
package/dist/idl.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import type { _SERVICE as GeneratedEngramService } from '@engramx/idl/engram';
1
2
  type InterfaceFactory = (env: {
2
3
  IDL: any;
3
4
  }) => any;
@@ -28,7 +29,7 @@ export declare const marketSubset: (methods?: readonly string[]) => InterfaceFac
28
29
  * nothing calls reads as a supported capability to the next person who greps for one, and a name
29
30
  * here the CANISTER does not serve is a construction-time failure — projectService throws on it.
30
31
  *
31
- * The market serves 64 methods. These nine are the BUYER path, which is the only path this SDK has
32
+ * The market serves 64 methods. These seven are the BUYER path, which is the only path this SDK has
32
33
  * ever wrapped: the seller surface (uploads, endpoints, service registration, pricing) is console
33
34
  * work, and the admin surface is recovery work. Neither belongs in an agent's client library.
34
35
  */
@@ -55,11 +56,25 @@ export declare const SDK_MARKET_METHODS: readonly ["confirmJob", "disputeJob", "
55
56
  * owner-mode `git-revert`, which reaches the actor directly and says so at its call site, and the
56
57
  * encryption migrations the encryption runbook names by hand. If a name here has no caller, that is
57
58
  * a bug in this list, not a reserve.
59
+ * ⟨2026-10-13, the owner's 5A⟩ `git-revert` no longer calls writeMemory: its canister restore moved
60
+ * to @engramx/owner (`--restore`). The encryption migrations and `setMemoryEncryption` are now the
61
+ * only callers of `writeMemory` and `setEncryptionEnabled`; both names leave this list when that
62
+ * trio moves to the owner kit too (it waits on the kit taking `@engramx/client/encryption` as a
63
+ * dependency).
58
64
  *
59
65
  * ADDING A NAME IS A PRODUCT DECISION, not a maintenance one (surface-budget rule L6): no addition
60
66
  * without a named caller.
61
67
  */
62
68
  export declare const SDK_ENGRAM_METHODS: readonly ["about", "appendMemory", "backupAbort", "backupFinalize", "backupInit", "backupPullChunk", "backupPushChunk", "getBackupMetadata", "getCertifiedAuditHead", "getEncryptedMemoryKey", "getMemoryHistory", "getMemoryKeyVerificationKey", "getOwnerConsole", "getProtectedPaths", "getWalletBalances", "getWorldIdVerification", "listAuditEntries", "listBackups", "listGuardians", "listMemoryFiles", "listMyApprovalRequests", "readMemory", "readMemoryBatch", "readMemoryBytes", "pairAgent", "reviseMemory", "resignAgent", "rotateAgentKeyHash", "nominateAgentKey", "acceptAgentKeyNomination", "getChildAllowance", "openChildEngram", "getSpawnedBy", "sessionReadContext", "setEncryptionEnabled", "writeMemory"];
69
+ /** One of the engram methods this SDK may call. */
70
+ export type SdkEngramMethod = (typeof SDK_ENGRAM_METHODS)[number];
71
+ /**
72
+ * ⟨2026-10-13, the owner's 3A⟩ The TYPE of the actor EngramClient builds: the generated engram
73
+ * interface, narrowed to SDK_ENGRAM_METHODS. It was `ActorSubclass<any>`, so a call with the wrong
74
+ * arguments, a method this list does not declare, or a reply read as the wrong shape compiled and
75
+ * failed at run time (types.ts says which ones did). Now tsc checks every call and every reply.
76
+ */
77
+ export type SdkEngramService = Pick<GeneratedEngramService, SdkEngramMethod>;
63
78
  /**
64
79
  * The engram actor interface EngramClient builds. Exported because the fidelity gate imports it
65
80
  * and because a caller holding its own agent may want the same narrowing; it is not part of the
package/dist/idl.js CHANGED
@@ -128,7 +128,7 @@ export const marketSubset = (methods = SDK_MARKET_METHODS) => ({ IDL }) => proje
128
128
  * nothing calls reads as a supported capability to the next person who greps for one, and a name
129
129
  * here the CANISTER does not serve is a construction-time failure — projectService throws on it.
130
130
  *
131
- * The market serves 64 methods. These nine are the BUYER path, which is the only path this SDK has
131
+ * The market serves 64 methods. These seven are the BUYER path, which is the only path this SDK has
132
132
  * ever wrapped: the seller surface (uploads, endpoints, service registration, pricing) is console
133
133
  * work, and the admin surface is recovery work. Neither belongs in an agent's client library.
134
134
  */
@@ -163,6 +163,11 @@ export const SDK_MARKET_METHODS = [
163
163
  * owner-mode `git-revert`, which reaches the actor directly and says so at its call site, and the
164
164
  * encryption migrations the encryption runbook names by hand. If a name here has no caller, that is
165
165
  * a bug in this list, not a reserve.
166
+ * ⟨2026-10-13, the owner's 5A⟩ `git-revert` no longer calls writeMemory: its canister restore moved
167
+ * to @engramx/owner (`--restore`). The encryption migrations and `setMemoryEncryption` are now the
168
+ * only callers of `writeMemory` and `setEncryptionEnabled`; both names leave this list when that
169
+ * trio moves to the owner kit too (it waits on the kit taking `@engramx/client/encryption` as a
170
+ * dependency).
166
171
  *
167
172
  * ADDING A NAME IS A PRODUCT DECISION, not a maintenance one (surface-budget rule L6): no addition
168
173
  * without a named caller.
@@ -173,6 +178,9 @@ export const SDK_ENGRAM_METHODS = [
173
178
  // it that the canister does not serve fails at RUNTIME with method-not-found, exactly like the
174
179
  // hand-written Motoko IDLs check-client-idls.mjs gates. Nothing type-checks it: projectService
175
180
  // narrows a generated factory, and an actor call is `any`.
181
+ // ⟨2026-10-13, the owner's 3A⟩ Something does now: SdkEngramService (below) is the generated
182
+ // interface narrowed to this list, and EngramClient's actor has that type — a name here the
183
+ // canister stopped serving fails to compile, and so does a call to a name not here.
176
184
  //
177
185
  // Six of the twenty MOVED to the market with the commerce graft (confirmJob, disputeJob, getJob,
178
186
  // getJobResult, listServices, createJob) and are NOT replaced here — they belong to a
package/dist/idl.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"idl.js","sourceRoot":"","sources":["../src/idl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"idl.js","sourceRoot":"","sources":["../src/idl.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,EAAE;AACF,wFAAwF;AACxF,sFAAsF;AACtF,2FAA2F;AAC3F,6FAA6F;AAC7F,0FAA0F;AAC1F,qFAAqF;AACrF,6FAA6F;AAC7F,wFAAwF;AACxF,EAAE;AACF,4FAA4F;AAC5F,gGAAgG;AAChG,8FAA8F;AAC9F,iGAAiG;AACjG,+FAA+F;AAC/F,kGAAkG;AAClG,sCAAsC;AACtC,qGAAqG;AACrG,6FAA6F;AAC7F,6FAA6F;AAC7F,iGAAiG;AACjG,8FAA8F;AAC9F,mGAAmG;AACnG,+FAA+F;AAC/F,gGAAgG;AAChG,+FAA+F;AAC/F,8FAA8F;AAC9F,6FAA6F;AAC7F,yFAAyF;AACzF,EAAE;AACF,gGAAgG;AAChG,6FAA6F;AAC7F,+FAA+F;AAC/F,8FAA8F;AAC9F,gGAAgG;AAChG,6FAA6F;AAC7F,+FAA+F;AAC/F,sFAAsF;AACtF,EAAE;AACF,kGAAkG;AAClG,uFAAuF;AACvF,EAAE;AACF,mGAAmG;AACnG,gGAAgG;AAChG,kFAAkF;AAClF,oGAAoG;AACpG,8FAA8F;AAC9F,0DAA0D;AAC1D,EAAE;AACF,2FAA2F;AAC3F,mEAAmE;AACnE,4EAA4E;AAC5E,mGAAmG;AACnG,kGAAkG;AAClG,mGAAmG;AACnG,oGAAoG;AACpG,4EAA4E;AAC5E,EAAE;AACF,iGAAiG;AACjG,oGAAoG;AACpG,6EAA6E;AAC7E,EAAE;AACF,8FAA8F;AAC9F,kGAAkG;AAClG,kGAAkG;AAClG,8FAA8F;AAC9F,gGAAgG;AAChG,mFAAmF;AACnF,EAAE;AACF,oGAAoG;AACpG,kGAAkG;AAClG,oGAAoG;AACpG,iGAAiG;AACjG,mGAAmG;AACnG,oDAAoD;AACpD,EAAE;AACF,6FAA6F;AAC7F,4FAA4F;AAC5F,2FAA2F;AAC3F,8FAA8F;AAC9F,gGAAgG;AAChG,6FAA6F;AAC7F,wDAAwD;AACxD,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEvE,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,UAAU,IAAI,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAIvE;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc,CAC5B,SAA2B,EAC3B,OAA0B,EAC1B,GAAQ;IAER,MAAM,MAAM,GAAG,IAAI,GAAG,CAAc,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;IAChE,MAAM,MAAM,GAAwB,EAAE,CAAC;IACvC,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,IAAI,KAAK,SAAS;YAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;YACtC,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC3B,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CACb,mBAAmB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,sDAAsD;YACzF,uGAAuG,CAC1G,CAAC;IACJ,CAAC;IACD,OAAO,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC;AAED,kEAAkE;AAClE,MAAM,CAAC,MAAM,YAAY,GACvB,CAAC,OAA0B,EAAoB,EAAE,CACjD,CAAC,EAAE,GAAG,EAAgB,EAAE,EAAE,CACxB,cAAc,CAAC,kBAAsC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;AAEzE,oEAAoE;AACpE,MAAM,CAAC,MAAM,cAAc,GACzB,CAAC,OAA0B,EAAoB,EAAE,CACjD,CAAC,EAAE,GAAG,EAAgB,EAAE,EAAE,CACxB,cAAc,CAAC,oBAAwC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;AAE3E,kEAAkE;AAClE,MAAM,CAAC,MAAM,YAAY,GACvB,CAAC,UAA6B,kBAAkB,EAAoB,EAAE,CACtE,CAAC,EAAE,GAAG,EAAgB,EAAE,EAAE,CACxB,cAAc,CAAC,kBAAsC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;AAEzE;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,YAAY;IACZ,YAAY;IACZ,QAAQ;IACR,cAAc;IACd,cAAc;IACd,cAAc;IACd,WAAW;CACH,CAAC;AAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,8FAA8F;IAC9F,gGAAgG;IAChG,+FAA+F;IAC/F,+FAA+F;IAC/F,2DAA2D;IAC3D,6FAA6F;IAC7F,4FAA4F;IAC5F,oFAAoF;IACpF,EAAE;IACF,iGAAiG;IACjG,sFAAsF;IACtF,uCAAuC;IACvC,EAAE;IACF,gGAAgG;IAChG,+FAA+F;IAC/F,qEAAqE;IACrE,OAAO;IACP,cAAc;IACd,aAAa;IACb,gBAAgB;IAChB,YAAY;IACZ,iBAAiB;IACjB,iBAAiB;IACjB,mBAAmB;IACnB,uBAAuB;IACvB,uBAAuB;IACvB,kBAAkB;IAClB,6BAA6B;IAC7B,8FAA8F;IAC9F,4FAA4F;IAC5F,+FAA+F;IAC/F,4FAA4F;IAC5F,+BAA+B;IAC/B,iBAAiB;IACjB,mBAAmB;IACnB,mBAAmB;IACnB,wBAAwB;IACxB,kBAAkB;IAClB,aAAa;IACb,eAAe;IACf,iBAAiB;IACjB,wBAAwB;IACxB,YAAY;IACZ,iBAAiB;IACjB,iBAAiB;IACjB,WAAW;IACX,cAAc;IACd,8FAA8F;IAC9F,0EAA0E;IAC1E,aAAa;IACb,oBAAoB;IACpB,wFAAwF;IACxF,iGAAiG;IACjG,8FAA8F;IAC9F,2CAA2C;IAC3C,kBAAkB;IAClB,0BAA0B;IAC1B,6FAA6F;IAC7F,iGAAiG;IACjG,yFAAyF;IACzF,6FAA6F;IAC7F,mBAAmB;IACnB,iBAAiB;IACjB,cAAc;IACd,oBAAoB;IACpB,sBAAsB;IACtB,aAAa;CACL,CAAC;AAaX;;;;GAIG;AACH,MAAM,CAAC,MAAM,UAAU,GAAqB,YAAY,CAAC,kBAAkB,CAAC,CAAC"}
package/dist/index.d.ts CHANGED
@@ -8,6 +8,13 @@ export { verifyCertifiedAuditHead } from './certifiedAudit.js';
8
8
  export { verifyCertifiedLeaf, verifyCertifiedRegistryHead, verifyCertifiedAnchor, } from './certifiedAudit.js';
9
9
  export type { CertifiedLeaf } from './certifiedAudit.js';
10
10
  export type { CertifiedAuditHead, VerifiedAuditHead } from './certifiedAudit.js';
11
+ export { verifyHistoricalCertificate, IC_MAINNET_ROOT_KEY_HEX } from './certifiedAudit.js';
12
+ export type { HistoricalCertificate } from './certifiedAudit.js';
13
+ export { recordEntryBody, recordDigest, recordLink, legacyRecordLink, recordEntryHash, sealedRowOf, walkToCertifiedHead, } from './recordChain.js';
14
+ export type { RecordEntryFields, SealedRow, WalkResult } from './recordChain.js';
15
+ export { checkEvidence, EVIDENCE_FORMAT } from './evidence.js';
16
+ export type { EvidenceBundle, EvidenceCheck, EvidenceLink, CheckOptions } from './evidence.js';
17
+ export { fetchSealedRows } from './publicRecord.js';
11
18
  export { verifyActionReceipt, actionMessage, actionFields, enrolmentMessage, signEnrolment, } from './actionReceipt.js';
12
19
  export type { ActionAuth, Enrolment } from './actionReceipt.js';
13
20
  export * as Schema from './schema.js';
@@ -21,16 +28,15 @@ export type { PairOptions, PairResult } from './pair.js';
21
28
  export { openEngram, NOT_ALLOWED } from './openEngram.js';
22
29
  export type { OpenEngramOptions, OpenEngramResult, OpenEngramIO, OpenEngramEngram, } from './openEngram.js';
23
30
  export { setupOpenClaw, OpenClawNotFoundError } from './openclaw-setup.js';
31
+ export { getOpenClawDir, loadOpenClawConfig, resolveMemoryDir, detectDatabases, encodeDatabaseBackup, restoreDatabaseBackup, snapshotSqliteFile, DB_TYPES, GITIGNORE_CONTENT, } from './openclaw-local.js';
32
+ export type { OpenClawConfig, DetectedDatabase, DbSuffix } from './openclaw-local.js';
24
33
  export type { OpenClawSetupOptions, OpenClawSetupResult } from './openclaw-setup.js';
25
34
  export { generateMcpConfig, claudeConfigPaths, installMcpConfig } from './claude-setup.js';
26
35
  export type { ClaudeSetupOptions, McpConfig } from './claude-setup.js';
27
36
  export { migrateOpenClawMemory, recoverOpenClaw, createCheckpoint, rollbackCheckpoint, listCheckpoints, hasValidPairing, resumeMigration, findIncompleteCheckpoint, } from './migrate.js';
28
37
  export type { MigrateOptions, MigrateFileEvent, MigrateCallback, MigrateResult, RecoverResult, RollbackResult, CheckpointSummary, CheckpointMetadata, } from './migrate.js';
29
- export { resolveAndValidate, isValidCanisterId, isSafePathComponent } from './path-utils.js';
30
- export { LRUCache } from './cache.js';
31
- export { OfflineQueue } from './offline.js';
32
- export type { Role, AgentStatus, AgentPermissions, AgentRecord, ChildAllowanceRow, KeyNomination, LogPosition, HeldKey, AgentEnding, AgentEndReason, Pairing, TrackRecordNotice, EnrolmentProof, RawMemoryFile, MemoryVersionSummary, MemoryEviction, MemoryFile, MemoryFileInfo, SessionContext, MemoryHistory, MemoryRangePage, Account, AuditEntry, AuditPage, EngramStatus, OwnerConsole, EngramRecord, EngramRecordStatus, RegistryStatus, GuardianPermissions, GuardianRecord, BackupMetadata, BackupType, BackupStatus, ApprovalStatus, ApprovalRequest, } from './types.js';
38
+ export type { Role, AgentStatus, AgentPermissions, AgentRecord, ChildAllowanceRow, KeyNomination, LogPosition, HeldKey, AgentEnding, AgentEndReason, Pairing, TrackRecordNotice, EnrolmentProof, RawMemoryFile, MemoryVersionSummary, MemoryEviction, MemoryFile, MemoryFileInfo, SessionContext, MemoryHistory, MemoryRangePage, AuditEntry, AuditPage, EngramStatus, OwnerConsole, GuardianPermissions, GuardianRecord, BackupMetadata, BackupType, BackupStatus, ApprovalStatus, ApprovalRequest, } from './types.js';
33
39
  export { verifyCanonicalLineage, classifyLineage, CANONICAL_REGISTRY_CANISTER_ID, type LineageVerdict, type CustodyMode, } from './lineage.js';
34
40
  export { chunkHash, deltaHash, contentRoot, merkle, leaf, evictedRoot, opsRoot, eventHash, eventPreambleAndBody, manifestBytes, opBody, opTag, toHex, type Hash as LedgerFsHash, type ChunkRef as LedgerFsChunkRef, type Manifest as LedgerFsManifest, type Op as LedgerFsOp, type Event as LedgerFsEvent, type ImportNote as LedgerFsImportNote, } from './ledgerfsHash.js';
35
- export { assembleMemoryArchive, verifyMemoryArchive, recomputeOpsRoot, memoryLogEventHash, toLedgerFsEvent, isResponseTooLarge, ARCHIVE_MAX_RANGE, ARCHIVE_PAGE_EVENTS, } from './memoryArchive.js';
41
+ export { assembleMemoryArchive, verifyMemoryArchive, recomputeOpsRoot, memoryLogEventHash, toLedgerFsEvent, } from './memoryArchive.js';
36
42
  export type { MemoryLogEvent, MemoryLogOp, MemoryLogImportNote, MemoryLogManifest, MemoryLogChunkRef, MemoryLogPage, MemoryLogEventPage, MemoryLogPageFetcher, MemoryExportReceipt, MemoryCondenseResult, MemoryCondensePreview, MemoryReceiptRef, MemoryExportReceiptRow, MemoryCheckpointRow, MemoryArchive, MemoryArchiveVerification, AssembleArchiveOptions, OpsRootAttestation, } from './memoryArchive.js';
package/dist/index.js CHANGED
@@ -9,6 +9,14 @@ export { verifyCertifiedAuditHead } from './certifiedAudit.js';
9
9
  // Tree-format verification (registry ≥ 0.7.17): the registry's certified_data is a merkle root and
10
10
  // its bare-head method was REMOVED (loud break). Engram/cashier slots keep verifyCertifiedAuditHead.
11
11
  export { verifyCertifiedLeaf, verifyCertifiedRegistryHead, verifyCertifiedAnchor, } from './certifiedAudit.js';
12
+ // ⟨2026-10-15, the owner's ruling 6B of 2026-10-14⟩ Checking one record entry without the owner: the
13
+ // historical-certificate check (any age, signed time read, pinned mainnet key), the record's hash
14
+ // contract and the walk to a certified head, and the evidence bundle a writer captures and anyone
15
+ // checks (`engramx verify`). recordChain and the certificate check are also on `./verify`.
16
+ export { verifyHistoricalCertificate, IC_MAINNET_ROOT_KEY_HEX } from './certifiedAudit.js';
17
+ export { recordEntryBody, recordDigest, recordLink, legacyRecordLink, recordEntryHash, sealedRowOf, walkToCertifiedHead, } from './recordChain.js';
18
+ export { checkEvidence, EVIDENCE_FORMAT } from './evidence.js';
19
+ export { fetchSealedRows } from './publicRecord.js';
12
20
  // Owner-action receipts (D1), VERIFY half only. An owner authorizes a money-path action by signing
13
21
  // a canonical, domain-separated message with their IC identity key; the engram persists it into the
14
22
  // tamper-evident audit log. Whoever later reads that log is a relying party, and this is what they
@@ -42,11 +50,12 @@ export { pair, PairError } from './pair.js';
42
50
  // ⟨2026-10-01, the owner's ruling 2 A⟩ The open-engram command, for an agent that runs it without the CLI.
43
51
  export { openEngram, NOT_ALLOWED } from './openEngram.js';
44
52
  export { setupOpenClaw, OpenClawNotFoundError } from './openclaw-setup.js';
53
+ // ⟨2026-10-13, the bloat audit⟩ Where OpenClaw keeps things on this machine, and the database backup
54
+ // format: the one copy, which the OpenClaw plugin imports for its backups and `migrate --recover`
55
+ // for its restore (openclaw-local.ts says why there were three).
56
+ export { getOpenClawDir, loadOpenClawConfig, resolveMemoryDir, detectDatabases, encodeDatabaseBackup, restoreDatabaseBackup, snapshotSqliteFile, DB_TYPES, GITIGNORE_CONTENT, } from './openclaw-local.js';
45
57
  export { generateMcpConfig, claudeConfigPaths, installMcpConfig } from './claude-setup.js';
46
58
  export { migrateOpenClawMemory, recoverOpenClaw, createCheckpoint, rollbackCheckpoint, listCheckpoints, hasValidPairing, resumeMigration, findIncompleteCheckpoint, } from './migrate.js';
47
- export { resolveAndValidate, isValidCanisterId, isSafePathComponent } from './path-utils.js';
48
- export { LRUCache } from './cache.js';
49
- export { OfflineQueue } from './offline.js';
50
59
  // The blind `@ic402/client` re-export block (Ic402Client, signVoucher, encodeVoucherPayload,
51
60
  // Ic402Error, probeX402, fetchX402, findPaymentOption, broadcastTransaction, pollReceipt,
52
61
  // registerAgent, and their types) was removed on 2026-08-17. Nothing consumed any of them: the two
@@ -79,5 +88,5 @@ export { chunkHash, deltaHash, contentRoot, merkle, leaf, evictedRoot, opsRoot,
79
88
  // the walk itself reads the served page now. `MemoryLogPage` IS `listMemoryLog`'s `LogPage`, and a
80
89
  // fetcher has that method's shape, so `assembleMemoryArchive(actor.listMemoryLog.bind(actor), opts)`
81
90
  // with an owner-authenticated actor is the whole call.
82
- export { assembleMemoryArchive, verifyMemoryArchive, recomputeOpsRoot, memoryLogEventHash, toLedgerFsEvent, isResponseTooLarge, ARCHIVE_MAX_RANGE, ARCHIVE_PAGE_EVENTS, } from './memoryArchive.js';
91
+ export { assembleMemoryArchive, verifyMemoryArchive, recomputeOpsRoot, memoryLogEventHash, toLedgerFsEvent, } from './memoryArchive.js';
83
92
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -4,8 +4,6 @@ export declare function sle64(t: number | bigint): Uint8Array;
4
4
  export declare function concat(parts: Uint8Array[]): Uint8Array;
5
5
  export declare function lp(b: Uint8Array): Uint8Array;
6
6
  export declare const lpText: (t: string) => Uint8Array;
7
- /** Principal raw bytes, length-prefixed — attribution, never authorization. */
8
- export declare const lpPrincipalRaw: (raw: Uint8Array) => Uint8Array;
9
7
  export declare const optBytes: (v: Uint8Array | null) => Uint8Array;
10
8
  export declare const chunkHash: (bytes: Uint8Array) => Hash;
11
9
  /** The #append delta attestation (owner-ratified era-2 gap fill, 2026-08-11): a DISTINCT domain,
@@ -60,8 +60,6 @@ export function lp(b) {
60
60
  }
61
61
  const utf8 = (s) => new TextEncoder().encode(s);
62
62
  export const lpText = (t) => lp(utf8(t));
63
- /** Principal raw bytes, length-prefixed — attribution, never authorization. */
64
- export const lpPrincipalRaw = (raw) => lp(raw);
65
63
  export const optBytes = (v) => v === null ? new Uint8Array([0x00]) : concat([new Uint8Array([0x01]), v]);
66
64
  // ── Domain-separated hash: SHA-256( ASCII(domain) ‖ 0x00 ‖ payload ) ───────────────────────────
67
65
  function h(domain, payload) {
@@ -1 +1 @@
1
- {"version":3,"file":"ledgerfsHash.js","sourceRoot":"","sources":["../src/ledgerfsHash.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ledgerfsHash.js","sourceRoot":"","sources":["../src/ledgerfsHash.ts"],"names":[],"mappings":"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"}