@engramx/client 0.16.0-rc.2 → 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.
Files changed (95) hide show
  1. package/README.md +69 -8
  2. package/dist/EngramClient.d.ts +60 -16
  3. package/dist/EngramClient.js +139 -70
  4. package/dist/EngramClient.js.map +1 -1
  5. package/dist/MarketClient.js.map +1 -1
  6. package/dist/ProfileManager.d.ts +3 -19
  7. package/dist/ProfileManager.js +1 -58
  8. package/dist/ProfileManager.js.map +1 -1
  9. package/dist/SessionManager.d.ts +1 -1
  10. package/dist/SessionManager.js.map +1 -1
  11. package/dist/actionReceipt.d.ts +8 -0
  12. package/dist/actionReceipt.js +8 -0
  13. package/dist/actionReceipt.js.map +1 -1
  14. package/dist/birthChain.d.ts +87 -0
  15. package/dist/birthChain.js +233 -0
  16. package/dist/birthChain.js.map +1 -0
  17. package/dist/cache.js.map +1 -1
  18. package/dist/certifiedAudit.d.ts +31 -0
  19. package/dist/certifiedAudit.js +124 -0
  20. package/dist/certifiedAudit.js.map +1 -1
  21. package/dist/claude-setup.d.ts +15 -6
  22. package/dist/claude-setup.js +30 -17
  23. package/dist/claude-setup.js.map +1 -1
  24. package/dist/cli.d.ts +7 -1
  25. package/dist/cli.js +212 -187
  26. package/dist/cli.js.map +1 -1
  27. package/dist/connect-config.d.ts +109 -0
  28. package/dist/connect-config.js +251 -0
  29. package/dist/connect-config.js.map +1 -0
  30. package/dist/encryption.d.ts +4 -0
  31. package/dist/encryption.js +7 -1
  32. package/dist/encryption.js.map +1 -1
  33. package/dist/evidence.d.ts +94 -0
  34. package/dist/evidence.js +352 -0
  35. package/dist/evidence.js.map +1 -0
  36. package/dist/idl.d.ts +21 -3
  37. package/dist/idl.js +34 -4
  38. package/dist/idl.js.map +1 -1
  39. package/dist/index.d.ts +13 -6
  40. package/dist/index.js +22 -5
  41. package/dist/index.js.map +1 -1
  42. package/dist/ledgerfsHash.d.ts +0 -2
  43. package/dist/ledgerfsHash.js +0 -2
  44. package/dist/ledgerfsHash.js.map +1 -1
  45. package/dist/lineage.d.ts +7 -1
  46. package/dist/lineage.js +7 -1
  47. package/dist/lineage.js.map +1 -1
  48. package/dist/memoryArchive.d.ts +77 -98
  49. package/dist/memoryArchive.js +58 -31
  50. package/dist/memoryArchive.js.map +1 -1
  51. package/dist/migrate.d.ts +18 -30
  52. package/dist/migrate.js +42 -136
  53. package/dist/migrate.js.map +1 -1
  54. package/dist/openEngram.d.ts +7 -0
  55. package/dist/openEngram.js +27 -3
  56. package/dist/openEngram.js.map +1 -1
  57. package/dist/openclaw-local.d.ts +86 -0
  58. package/dist/openclaw-local.js +332 -0
  59. package/dist/openclaw-local.js.map +1 -0
  60. package/dist/openclaw-setup.d.ts +82 -3
  61. package/dist/openclaw-setup.js +162 -50
  62. package/dist/openclaw-setup.js.map +1 -1
  63. package/dist/pair.js.map +1 -1
  64. package/dist/path-utils.d.ts +0 -16
  65. package/dist/path-utils.js +4 -27
  66. package/dist/path-utils.js.map +1 -1
  67. package/dist/publicRecord.d.ts +5 -0
  68. package/dist/publicRecord.js +52 -0
  69. package/dist/publicRecord.js.map +1 -0
  70. package/dist/recordChain.d.ts +69 -0
  71. package/dist/recordChain.js +145 -0
  72. package/dist/recordChain.js.map +1 -0
  73. package/dist/schema.d.ts +11 -22
  74. package/dist/schema.js +6 -28
  75. package/dist/schema.js.map +1 -1
  76. package/dist/types.d.ts +67 -451
  77. package/dist/verify.d.ts +8 -0
  78. package/dist/verify.js +19 -0
  79. package/dist/verify.js.map +1 -0
  80. package/dist/version.d.ts +22 -0
  81. package/dist/version.js +22 -0
  82. package/dist/version.js.map +1 -1
  83. package/package.json +27 -12
  84. package/dist/generated/engram.idl.d.ts +0 -6
  85. package/dist/generated/engram.idl.js +0 -1366
  86. package/dist/generated/engram.idl.js.map +0 -1
  87. package/dist/generated/market.idl.d.ts +0 -6
  88. package/dist/generated/market.idl.js +0 -557
  89. package/dist/generated/market.idl.js.map +0 -1
  90. package/dist/generated/registry.idl.d.ts +0 -6
  91. package/dist/generated/registry.idl.js +0 -510
  92. package/dist/generated/registry.idl.js.map +0 -1
  93. package/dist/offline.d.ts +0 -21
  94. package/dist/offline.js +0 -104
  95. package/dist/offline.js.map +0 -1
@@ -3,6 +3,11 @@ import * as net from 'net';
3
3
  import * as path from 'path';
4
4
  import { execFileSync } from 'child_process';
5
5
  import { atomicWriteFileSync } from './path-utils.js';
6
+ import { VERSION } from './version.js';
7
+ // ⟨2026-10-13, the bloat audit⟩ The OpenClaw directory, the memory directory and the memory repo's
8
+ // .gitignore come from openclaw-local.ts, the one copy (it says how the three had drifted).
9
+ import { getOpenClawDir, resolveMemoryDir, GITIGNORE_CONTENT } from './openclaw-local.js';
10
+ export { getOpenClawDir };
6
11
  /**
7
12
  * Read and parse an OpenClaw config file. Returns {} when the file is absent.
8
13
  * A malformed config throws an actionable error naming the file — never a raw
@@ -28,9 +33,6 @@ function readJsonConfig(configPath) {
28
33
  `Fix the JSON and re-run — the file was left untouched.`, { cause: err });
29
34
  }
30
35
  }
31
- export function getOpenClawDir() {
32
- return process.env['OPENCLAW_CONFIG_DIR'] || path.join(process.env['HOME'] || '', '.openclaw');
33
- }
34
36
  export async function setupOpenClaw(options) {
35
37
  const openclawDir = getOpenClawDir();
36
38
  const configPath = path.join(openclawDir, 'openclaw.json');
@@ -38,8 +40,9 @@ export async function setupOpenClaw(options) {
38
40
  throw new OpenClawNotFoundError(`OpenClaw config directory not found at ${openclawDir}.\n` +
39
41
  `Install OpenClaw first, or set OPENCLAW_CONFIG_DIR if using a custom location.`);
40
42
  }
41
- // Try to install plugin
42
- const pluginMethod = await installPlugin(openclawDir);
43
+ // Install the plugin — or refuse, before openclaw.json is touched, when a different version of it
44
+ // is already installed (OpenClawPluginOutdatedError; outdatedOpenClawPlugins says why).
45
+ const plugin = await installPlugin(openclawDir);
43
46
  // Merge config
44
47
  const config = readJsonConfig(configPath);
45
48
  // Deep merge plugin config
@@ -70,8 +73,9 @@ export async function setupOpenClaw(options) {
70
73
  atomicWriteFileSync(configPath, JSON.stringify(config, null, 2) + '\n');
71
74
  return {
72
75
  configPath,
73
- pluginInstalled: pluginMethod !== 'skipped',
74
- pluginMethod,
76
+ pluginInstalled: plugin.method === 'cli' || plugin.method === 'manual-npm',
77
+ pluginMethod: plugin.method,
78
+ ...(plugin.note !== undefined ? { pluginNote: plugin.note } : {}),
75
79
  };
76
80
  }
77
81
  const OPENCLAW_GATEWAY_PORT = 18789;
@@ -89,30 +93,159 @@ function isGatewayReachable() {
89
93
  });
90
94
  });
91
95
  }
92
- function isPluginInstalled(openclawDir) {
93
- // Check if already installed in the extensions dir for this config
94
- const extPkg = path.join(openclawDir, 'extensions', 'memory-engramx', 'node_modules', '@engramx', 'openclaw');
95
- return fs.existsSync(extPkg);
96
- }
97
96
  function isOpenClawConfigured(openclawDir) {
98
97
  // A real OpenClaw installation has openclaw.json or an agents/ dir
99
98
  return (fs.existsSync(path.join(openclawDir, 'openclaw.json')) ||
100
99
  fs.existsSync(path.join(openclawDir, 'agents')));
101
100
  }
101
+ /**
102
+ * The plugin `pair --target openclaw` installs: `@engramx/openclaw@<this kit's version>`.
103
+ *
104
+ * ⟨ADDED 2026-10-13, on the review of the owner's "fix … the MCP version in rc.12"⟩ WHY. Both installs
105
+ * below named the bare `@engramx/openclaw`, which installs npm's `latest` — the last FINAL release,
106
+ * 0.15.0 while 0.16.0's candidates soak under `next` (npm dist-tags, read 2026-10-13) — a plugin that
107
+ * cannot talk to this release's engram. The packages are released in lockstep (version.ts), so this
108
+ * kit's version is the plugin's. OpenClaw's installer takes the versioned name: its registry-spec
109
+ * parser (openclaw 2026.10.3, the npm `latest` read that day, `parseRegistryNpmSpecResult`) accepts
110
+ * `<name>@<exact version>`, and for a pre-release such as `0.16.0-rc.12` only when it is named
111
+ * exactly — a bare name that resolved to one is refused — while `@engramx/openclaw@<version>` (this
112
+ * kit's unread-version blank) is refused — neither an exact version nor a tag — as npm refuses it.
113
+ * Measured by running that parser on these four spellings (the fix notes keep the log).
114
+ * WHAT WOULD MAKE THIS WRONG: the packages no longer sharing one version number, or an OpenClaw
115
+ * release whose installer refuses an exact version. Held by test/openclaw-plugin-pinned.test.ts.
116
+ */
117
+ export const OPENCLAW_PLUGIN = `@engramx/openclaw@${VERSION}`;
118
+ /** The plugin's version from its package.json; null when unreadable or not this package's. */
119
+ function readPluginVersion(dir) {
120
+ try {
121
+ const manifest = JSON.parse(fs.readFileSync(path.join(dir, 'package.json'), 'utf-8'));
122
+ return manifest.name === '@engramx/openclaw' && typeof manifest.version === 'string'
123
+ ? manifest.version
124
+ : null;
125
+ }
126
+ catch {
127
+ return null;
128
+ }
129
+ }
130
+ /**
131
+ * Every copy of @engramx/openclaw in the places a plugin install puts it, under `openclawDir`:
132
+ * pair's own npm fallback (`extensions/memory-engramx`), and OpenClaw's installer — one npm project
133
+ * per package under `npm/projects/` (a package keeps more than one after an upgrade: OpenClaw's
134
+ * docs say upgrades "retain generation paths that running plugins may still need"), and the single
135
+ * `npm/` project it used before 2026.5.28. Read from openclaw 2026.10.3's own code
136
+ * (`resolvePluginNpmProjectDir`, `resolvePluginInstallRoots`) and docs
137
+ * (plugins/dependency-resolution.md, "Install roots"); no real OpenClaw was run.
138
+ * WHAT WOULD MAKE THIS WRONG: an OpenClaw that keeps its plugins elsewhere — `OPENCLAW_STATE_DIR`
139
+ * set apart from the folder pair reads (OPENCLAW_CONFIG_DIR or ~/.openclaw), a plugin loaded from a
140
+ * `plugins.load.paths` entry or a workspace's `.openclaw/extensions` — is not seen here.
141
+ */
142
+ export function findInstalledOpenClawPlugins(openclawDir = getOpenClawDir()) {
143
+ const found = [];
144
+ const look = (project, installer) => {
145
+ const dir = path.join(project, 'node_modules', '@engramx', 'openclaw');
146
+ if (fs.existsSync(dir))
147
+ found.push({ dir, project, version: readPluginVersion(dir), installer });
148
+ };
149
+ look(path.join(openclawDir, 'extensions', 'memory-engramx'), 'npm');
150
+ look(path.join(openclawDir, 'npm'), 'openclaw');
151
+ let projects = [];
152
+ try {
153
+ projects = fs.readdirSync(path.join(openclawDir, 'npm', 'projects')).sort();
154
+ }
155
+ catch {
156
+ // No OpenClaw-installed plugins.
157
+ }
158
+ for (const name of projects)
159
+ look(path.join(openclawDir, 'npm', 'projects', name), 'openclaw');
160
+ return found;
161
+ }
162
+ /**
163
+ * The copies `pair` will not point at an engram: any in its own npm folder that is not this kit's
164
+ * version, and OpenClaw's copies when none of them is (an older folder beside a current one is what
165
+ * an upgrade leaves, so it is not counted against a current copy).
166
+ *
167
+ * ⟨ADDED 2026-10-13, the second review of the owner's "fix the pairing migration"⟩ WHY. pair skipped
168
+ * the install whenever any @engramx/openclaw sat in its npm folder, whatever its version, then wrote
169
+ * openclaw.json and printed "Installed EngramX plugin for OpenClaw" — and on a gateway that was not
170
+ * running, the same line over no install at all. The plugin that ran at OpenClaw's next start was
171
+ * the one already there, and one from 0.16.0-rc.11 or earlier deletes every local memory file the
172
+ * engram does not list before it pushes (unless more than five and more than half would go) — the
173
+ * files `pair` now leaves where they are without --migrate. So a different version is never
174
+ * configured: `pair` stops before pairing and prints the command that upgrades it
175
+ * (cli.ts · Step 1's check), and setupOpenClaw refuses the same before writing openclaw.json.
176
+ * Refusing, not upgrading in place: the refusal comes before the invite is used, so running the
177
+ * same pair command again afterwards works, and pair runs nothing on someone's OpenClaw that it
178
+ * cannot check (how OpenClaw's `plugins update` behaves without a terminal was not run). Held by
179
+ * test/openclaw-plugin-pinned.test.ts and test/pair-migrate.test.ts.
180
+ * WHAT WOULD MAKE THIS WRONG: a copy outside the places findInstalledOpenClawPlugins reads (it
181
+ * says which), or OpenClaw loading an older retained folder over a current one.
182
+ */
183
+ export function outdatedOpenClawPlugins(copies = findInstalledOpenClawPlugins()) {
184
+ const npm = copies.filter((c) => c.installer === 'npm' && c.version !== VERSION);
185
+ const openclaw = copies.filter((c) => c.installer === 'openclaw');
186
+ return [...npm, ...(openclaw.some((c) => c.version === VERSION) ? [] : openclaw)];
187
+ }
188
+ /** A path as one shell word: bare when it is safe to read that way, else single-quoted. */
189
+ function shellWord(p) {
190
+ return /^[\w@%+=:,./-]+$/.test(p) ? p : `'${p.replace(/'/g, `'\\''`)}'`;
191
+ }
192
+ /** The command that puts `copy` at this kit's version, exact, to run as printed. */
193
+ export function pluginUpgradeCommand(copy) {
194
+ // npm: `--prefix` on the command line runs a local install in that folder (npm's own config
195
+ // docs). OpenClaw: `plugins update <npm spec>` resolves the spec to the tracked install and moves
196
+ // it to that version (OpenClaw's docs/cli/plugins/uninstall-and-update.md).
197
+ return copy.installer === 'npm'
198
+ ? `npm install ${OPENCLAW_PLUGIN} --save --prefix ${shellWord(copy.project)}`
199
+ : `openclaw plugins update ${OPENCLAW_PLUGIN}`;
200
+ }
201
+ /** pair's refusal: each copy and its version, and the commands that upgrade them. */
202
+ export class OpenClawPluginOutdatedError extends Error {
203
+ constructor(outdated) {
204
+ const lines = [
205
+ `A different version of the EngramX plugin for OpenClaw is installed, and pair will not set it up for an engram:`,
206
+ ...outdated.map((c) => ` ${c.dir} is ${c.version === null ? 'a version that could not be read' : `@engramx/openclaw@${c.version}`}, not ${VERSION}`),
207
+ `A plugin from 0.16.0-rc.11 or earlier deletes local memory files the engram does not list when OpenClaw next starts, and another version may not work with this release's engram.`,
208
+ outdated.length === 1 ? `Upgrade it with:` : `Upgrade them with:`,
209
+ ...[...new Set(outdated.map(pluginUpgradeCommand))].map((cmd) => ` ${cmd}`),
210
+ ];
211
+ super(lines.join('\n'));
212
+ this.name = 'OpenClawPluginOutdatedError';
213
+ this.outdated = outdated;
214
+ }
215
+ }
216
+ /** The first line worth showing from a failed installer: its stderr's, else its message's. */
217
+ function firstErrorLine(err) {
218
+ const stderr = err?.stderr?.toString() ?? '';
219
+ const line = stderr.split('\n').find((l) => l.trim() !== '');
220
+ return (line ?? (err instanceof Error ? err.message : String(err))).trim();
221
+ }
102
222
  async function installPlugin(openclawDir) {
103
- if (isPluginInstalled(openclawDir)) {
104
- return 'skipped';
223
+ const copies = findInstalledOpenClawPlugins(openclawDir);
224
+ const outdated = outdatedOpenClawPlugins(copies);
225
+ if (outdated.length > 0)
226
+ throw new OpenClawPluginOutdatedError(outdated);
227
+ const current = copies.find((c) => c.version === VERSION);
228
+ if (current)
229
+ return { method: 'current', note: current.dir };
230
+ if (!isOpenClawConfigured(openclawDir)) {
231
+ return {
232
+ method: 'skipped',
233
+ note: `OpenClaw is not set up in ${openclawDir} yet (it has no openclaw.json or agents folder)`,
234
+ };
105
235
  }
106
- if (!isOpenClawConfigured(openclawDir) || !(await isGatewayReachable())) {
107
- return 'skipped';
236
+ if (!(await isGatewayReachable())) {
237
+ return {
238
+ method: 'skipped',
239
+ note: `OpenClaw's gateway is not running (nothing answered on 127.0.0.1:${OPENCLAW_GATEWAY_PORT})`,
240
+ };
108
241
  }
109
242
  // Gateway is running — try openclaw CLI first
110
243
  try {
111
- execFileSync('openclaw', ['plugins', 'install', '@engramx/openclaw'], {
244
+ execFileSync('openclaw', ['plugins', 'install', OPENCLAW_PLUGIN], {
112
245
  stdio: 'pipe',
113
246
  timeout: 30000,
114
247
  });
115
- return 'cli';
248
+ return { method: 'cli' };
116
249
  }
117
250
  catch {
118
251
  // CLI failed despite gateway running
@@ -123,16 +256,18 @@ async function installPlugin(openclawDir) {
123
256
  if (!fs.existsSync(extensionsDir)) {
124
257
  fs.mkdirSync(extensionsDir, { recursive: true });
125
258
  }
126
- execFileSync('npm', ['install', '@engramx/openclaw', '--save'], {
259
+ execFileSync('npm', ['install', OPENCLAW_PLUGIN, '--save'], {
127
260
  cwd: extensionsDir,
128
261
  stdio: 'pipe',
129
262
  timeout: 60000,
130
263
  });
131
- return 'manual-npm';
264
+ return { method: 'manual-npm', note: extensionsDir };
132
265
  }
133
- catch {
134
- // npm install also failed
135
- return 'skipped';
266
+ catch (err) {
267
+ return {
268
+ method: 'skipped',
269
+ note: `\`openclaw plugins install\` and \`npm install\` both failed (${firstErrorLine(err)})`,
270
+ };
136
271
  }
137
272
  }
138
273
  export class OpenClawNotFoundError extends Error {
@@ -141,19 +276,6 @@ export class OpenClawNotFoundError extends Error {
141
276
  this.name = 'OpenClawNotFoundError';
142
277
  }
143
278
  }
144
- // ── Git versioning setup ──────────────────────────────────────────────
145
- const GITIGNORE_CONTENT = [
146
- '# Auto-generated by memory-engramx',
147
- '*.sqlite',
148
- '*.sqlite-wal',
149
- '*.sqlite-shm',
150
- '*.db',
151
- '*.db-wal',
152
- '*.db-shm',
153
- 'lancedb/',
154
- '.DS_Store',
155
- '',
156
- ].join('\n');
157
279
  function execSyncSafe(args, cwd) {
158
280
  try {
159
281
  return execFileSync('git', args, { cwd, stdio: 'pipe', timeout: 10000 }).toString().trim();
@@ -180,26 +302,16 @@ export function isGitRepo(dir) {
180
302
  export function getMemoryDir() {
181
303
  const openclawDir = getOpenClawDir();
182
304
  const configPath = path.join(openclawDir, 'openclaw.json');
183
- const config = readJsonConfig(configPath);
184
- return resolveMemoryDirFromConfig(openclawDir, config);
185
- }
186
- export function resolveMemoryDirFromConfig(openclawDir, config) {
187
- const plugins = config['plugins'];
188
- const entries = plugins?.['entries'];
189
- const engramxEntry = entries?.['memory-engramx'];
190
- const entryConfig = engramxEntry?.['config'];
191
- const memoryDir = entryConfig?.['memoryDir'];
192
- if (typeof memoryDir === 'string') {
193
- return path.isAbsolute(memoryDir) ? memoryDir : path.join(openclawDir, memoryDir);
194
- }
195
- return path.join(openclawDir, 'memory');
305
+ return resolveMemoryDir(openclawDir, readJsonConfig(configPath));
196
306
  }
307
+ // ⟨2026-10-13⟩ resolveMemoryDirFromConfig went: openclaw-local.ts resolveMemoryDir is the one
308
+ // rule (this copy had no store-path step, migrate's had one).
197
309
  export function setupGitVersioning(remoteUrl) {
198
310
  const openclawDir = getOpenClawDir();
199
311
  const configPath = path.join(openclawDir, 'openclaw.json');
200
312
  const config = readJsonConfig(configPath);
201
313
  // Resolve memory dir
202
- const memoryDir = resolveMemoryDirFromConfig(openclawDir, config);
314
+ const memoryDir = resolveMemoryDir(openclawDir, config);
203
315
  fs.mkdirSync(memoryDir, { recursive: true });
204
316
  // Git init
205
317
  const existingRepo = isGitRepo(memoryDir);
@@ -1 +1 @@
1
- {"version":3,"file":"openclaw-setup.js","sourceRoot":"","sources":["../src/openclaw-setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtD;;;;;GAKG;AACH,gGAAgG;AAChG,wGAAwG;AACxG,sCAAsC;AACtC,SAAS,cAAc,CAAC,UAAkB;IACxC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1C,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IACjD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CACb,mBAAmB,UAAU,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI;YACpF,wDAAwD,EAC1D,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;IACJ,CAAC;AACH,CAAC;AAcD,MAAM,UAAU,cAAc;IAC5B,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC;AACjG,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAA6B;IAC/D,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAE3D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,qBAAqB,CAC7B,0CAA0C,WAAW,KAAK;YACxD,gFAAgF,CACnF,CAAC;IACJ,CAAC;IAED,wBAAwB;IACxB,MAAM,YAAY,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;IAEtD,eAAe;IACf,MAAM,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAE1C,2BAA2B;IAC3B,IAAI,CAAC,MAAM,CAAC,OAAO;QAAE,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;IACzC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK;QAAE,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK;QAAE,MAAM,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO;QAAE,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;IAEzD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,gBAAgB,CAAC;IAE/C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;QACrD,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,YAAY,GAA2B;QAC3C,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,cAAc,EAAE,OAAO,CAAC,cAAc;KACvC,CAAC;IACF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QACjB,YAAY,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG;QACzC,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,YAAY;KACrB,CAAC;IAEF,mFAAmF;IACnF,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAExE,OAAO;QACL,UAAU;QACV,eAAe,EAAE,YAAY,KAAK,SAAS;QAC3C,YAAY;KACb,CAAC;AACJ,CAAC;AAED,MAAM,qBAAqB,GAAG,KAAK,CAAC;AACpC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAErC,SAAS,kBAAkB;IACzB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE,GAAG,EAAE;YACzF,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,wBAAwB,EAAE,GAAG,EAAE;YAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,CAAC;QACjB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,iBAAiB,CAAC,WAAmB;IAC5C,mEAAmE;IACnE,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CACtB,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,UAAU,EACV,UAAU,CACX,CAAC;IACF,OAAO,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,oBAAoB,CAAC,WAAmB;IAC/C,mEAAmE;IACnE,OAAO,CACL,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QACtD,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAChD,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,WAAmB;IAC9C,IAAI,iBAAiB,CAAC,WAAW,CAAC,EAAE,CAAC;QACnC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,kBAAkB,EAAE,CAAC,EAAE,CAAC;QACxE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,8CAA8C;IAC9C,IAAI,CAAC;QACH,YAAY,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,mBAAmB,CAAC,EAAE;YACpE,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,KAAM;SAChB,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,qCAAqC;IACvC,CAAC;IAED,sDAAsD;IACtD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,gBAAgB,CAAC,CAAC;IAC7E,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;YAClC,EAAE,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACnD,CAAC;QACD,YAAY,CAAC,KAAK,EAAE,CAAC,SAAS,EAAE,mBAAmB,EAAE,QAAQ,CAAC,EAAE;YAC9D,GAAG,EAAE,aAAa;YAClB,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,KAAM;SAChB,CAAC,CAAC;QACH,OAAO,YAAY,CAAC;IACtB,CAAC;IAAC,MAAM,CAAC;QACP,0BAA0B;QAC1B,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AAED,yEAAyE;AAEzE,MAAM,iBAAiB,GAAG;IACxB,oCAAoC;IACpC,UAAU;IACV,cAAc;IACd,cAAc;IACd,MAAM;IACN,UAAU;IACV,UAAU;IACV,UAAU;IACV,WAAW;IACX,EAAE;CACH,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAOb,SAAS,YAAY,CAAC,IAAc,EAAE,GAAW;IAC/C,IAAI,CAAC;QACH,OAAO,YAAY,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAM,EAAE,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;IAC9F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,GAAW;IAChC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,wDAAwD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,OAAO,YAAY,CAAC,CAAC,WAAW,EAAE,uBAAuB,CAAC,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC;AAC9E,CAAC;AAED,8DAA8D;AAC9D,MAAM,UAAU,YAAY;IAC1B,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAC1C,OAAO,0BAA0B,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,WAAmB,EACnB,MAA+B;IAE/B,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAwC,CAAC;IACzE,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC,SAAS,CAAwD,CAAC;IAC5F,MAAM,YAAY,GAAG,OAAO,EAAE,CAAC,gBAAgB,CAAC,CAAC;IACjD,MAAM,WAAW,GAAG,YAAY,EAAE,CAAC,QAAQ,CAAwC,CAAC;IACpF,MAAM,SAAS,GAAG,WAAW,EAAE,CAAC,WAAW,CAAC,CAAC;IAE7C,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;QAClC,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IACpF,CAAC;IAED,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,SAAiB;IAClD,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;IAE1C,qBAAqB;IACrB,MAAM,SAAS,GAAG,0BAA0B,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IAClE,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE7C,WAAW;IACX,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACnE,CAAC;IAED,aAAa;IACb,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACzD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,EAAE,CAAC,aAAa,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;IACrD,CAAC;IAED,SAAS;IACT,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;QAChF,IAAI,cAAc,KAAK,IAAI,EAAE,CAAC;YAC5B,YAAY,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE;gBAC1D,GAAG,EAAE,SAAS;gBACd,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;QACL,CAAC;QAED,uDAAuD;QACvD,sEAAsE;QACtE,+DAA+D;QAC/D,gEAAgE;QAChE,kEAAkE;QAClE,IAAI,CAAC;YACH,YAAY,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAM,EAAE,CAAC,CAAC;YAC7F,MAAM,cAAc,GAAG,YAAY,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YAC/E,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9B,uDAAuD;gBACvD,MAAM,YAAY,GAAG,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;qBACvD,IAAI,EAAE;qBACN,OAAO,CAAC,2BAA2B,EAAE,EAAE,CAAC;qBACxC,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;gBAC5B,IAAI,YAAY,EAAE,CAAC;oBACjB,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC;wBAC7C,MAAM,IAAI,KAAK,CAAC,wBAAwB,YAAY,EAAE,CAAC,CAAC;oBAC1D,CAAC;oBACD,mEAAmE;oBACnE,MAAM,WAAW,GAAG,YAAY,CAAC,CAAC,QAAQ,EAAE,gBAAgB,CAAC,EAAE,SAAS,CAAC,CAAC;oBAC1E,IAAI,CAAC,WAAW,EAAE,CAAC;wBACjB,oDAAoD;wBACpD,8DAA8D;wBAC9D,YAAY,CAAC,CAAC,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,YAAY,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;oBACtF,CAAC;yBAAM,CAAC;wBACN,6CAA6C;wBAC7C,YAAY,CACV,CAAC,OAAO,EAAE,6BAA6B,EAAE,WAAW,EAAE,UAAU,YAAY,EAAE,CAAC,EAC/E,SAAS,CACV,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,iEAAiE;QACnE,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAwC,CAAC;IACzE,MAAM,OAAO,GAAG,OAAO,EAAE,CAAC,SAAS,CAAwD,CAAC;IAC5F,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC,gBAAgB,CAAC,CAAC;IAC1C,IAAI,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrB,KAAK,CAAC,QAAQ,CAA6B,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;QAC1F,mFAAmF;QACnF,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"openclaw-setup.js","sourceRoot":"","sources":["../src/openclaw-setup.ts"],"names":[],"mappings":"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"}
package/dist/pair.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"pair.js","sourceRoot":"","sources":["../src/pair.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pair.js","sourceRoot":"","sources":["../src/pair.ts"],"names":[],"mappings":"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"}
@@ -8,19 +8,3 @@ import * as fs from 'fs';
8
8
  * file would corrupt state the user can't otherwise recover.
9
9
  */
10
10
  export declare function atomicWriteFileSync(targetPath: string, data: string | NodeJS.ArrayBufferView, options?: fs.WriteFileOptions): void;
11
- /**
12
- * Resolve a relative path against a base directory and verify
13
- * the result does not escape the base via traversal (e.g. `../`).
14
- * Returns the resolved absolute path, or throws if it escapes.
15
- */
16
- export declare function resolveAndValidate(baseDir: string, relativePath: string): string;
17
- /**
18
- * Validate that a string matches the expected format for an
19
- * ICP canister ID (groups of lowercase alphanumeric separated by hyphens).
20
- */
21
- export declare function isValidCanisterId(id: string): boolean;
22
- /**
23
- * Validate that a string is safe for use as a filesystem name component
24
- * (no path separators, no traversal, no null bytes).
25
- */
26
- export declare function isSafePathComponent(name: string): boolean;
@@ -27,31 +27,8 @@ export function atomicWriteFileSync(targetPath, data, options) {
27
27
  throw err;
28
28
  }
29
29
  }
30
- /**
31
- * Resolve a relative path against a base directory and verify
32
- * the result does not escape the base via traversal (e.g. `../`).
33
- * Returns the resolved absolute path, or throws if it escapes.
34
- */
35
- export function resolveAndValidate(baseDir, relativePath) {
36
- const resolved = path.resolve(baseDir, relativePath);
37
- const base = baseDir.endsWith(path.sep) ? baseDir : baseDir + path.sep;
38
- if (!resolved.startsWith(base) && resolved !== baseDir) {
39
- throw new Error(`Path traversal detected: ${relativePath} escapes ${baseDir}`);
40
- }
41
- return resolved;
42
- }
43
- /**
44
- * Validate that a string matches the expected format for an
45
- * ICP canister ID (groups of lowercase alphanumeric separated by hyphens).
46
- */
47
- export function isValidCanisterId(id) {
48
- return /^[a-z0-9]{5}(-[a-z0-9]{5}){4}-[a-z0-9]{3}$/.test(id);
49
- }
50
- /**
51
- * Validate that a string is safe for use as a filesystem name component
52
- * (no path separators, no traversal, no null bytes).
53
- */
54
- export function isSafePathComponent(name) {
55
- return /^[a-zA-Z0-9_-]+$/.test(name);
56
- }
30
+ // ⟨2026-10-13⟩ resolveAndValidate, isValidCanisterId and isSafePathComponent were removed (the bloat
31
+ // audit; ruled REMOVE in the ratified R3 charter diet of 2026-08-17 and never carried out). None
32
+ // had a caller or a test in this repo or the platform, and isValidCanisterId's pattern wanted six
33
+ // five-character groups, so it answered false for every real canister id.
57
34
  //# sourceMappingURL=path-utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"path-utils.js","sourceRoot":"","sources":["../src/path-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAkB,EAClB,IAAqC,EACrC,OAA6B;IAE7B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;IACnF,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACzC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,yEAAyE;QACzE,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;QAC7B,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAe,EAAE,YAAoB;IACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACrD,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC;IACvE,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,4BAA4B,YAAY,YAAY,OAAO,EAAE,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,EAAU;IAC1C,OAAO,4CAA4C,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"path-utils.js","sourceRoot":"","sources":["../src/path-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CACjC,UAAkB,EAClB,IAAqC,EACrC,OAA6B;IAE7B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,MAAM,CAAC,CAAC;IACnF,IAAI,CAAC;QACH,EAAE,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QACzC,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACrC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,yEAAyE;QACzE,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;gBAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACrD,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;QAC7B,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,qGAAqG;AACrG,iGAAiG;AACjG,kGAAkG;AAClG,0EAA0E"}
@@ -0,0 +1,5 @@
1
+ import { type SealedRow } from './recordChain.js';
2
+ export declare function fetchSealedRows(host: string, canisterId: string, fromId: bigint, rootKey?: Uint8Array): Promise<{
3
+ rows: SealedRow[];
4
+ hashFirstFrom: bigint;
5
+ }>;
@@ -0,0 +1,52 @@
1
+ // Reading a record's hash-only rows as a stranger — the fetch half of `engramx verify`.
2
+ //
3
+ // ⟨ADDED 2026-10-15, the owner's ruling 6B of 2026-10-14⟩ An engram's record read
4
+ // (`listAuditEntries`) is public: a caller with no role, the anonymous one included, gets every entry
5
+ // as a hash-only row (id, digest, entry hash) and never a body. That is all a walk to a certified
6
+ // head needs. This reads those rows with NO identity, from `fromId` onward, a page at a time.
7
+ //
8
+ // It refuses rather than returning a short list: below the ring floor the rows are gone from the
9
+ // canister (the bundle captured at the time is the only copy), and the page says where the floor is.
10
+ import { Actor, HttpAgent } from '@icp-sdk/core/agent';
11
+ import { idlFactory } from './idl.js';
12
+ import { sealedRowOf } from './recordChain.js';
13
+ import { errorMessage } from './wire.js';
14
+ const PAGE = 500n;
15
+ const MAX_PAGES = 20;
16
+ export async function fetchSealedRows(host, canisterId, fromId, rootKey) {
17
+ // Anonymous: no identity is passed. The root key matters only for update calls and read_state;
18
+ // a query's reply is not what is being trusted here — every row is checked against the certified
19
+ // head by the walk, so a lying replica can only make the check FAIL, never pass.
20
+ const agent = await HttpAgent.create({ host, ...(rootKey ? { rootKey } : {}) });
21
+ const actor = Actor.createActor(idlFactory, { agent, canisterId });
22
+ const rows = [];
23
+ let hashFirstFrom = null;
24
+ let next = fromId;
25
+ for (let pages = 0; pages < MAX_PAGES; pages++) {
26
+ const r = await actor.listAuditEntries(next, PAGE);
27
+ if ('Err' in r)
28
+ throw new Error(`the record read refused: ${errorMessage(r.Err)}`);
29
+ const page = r.Ok;
30
+ hashFirstFrom ?? (hashFirstFrom = page.hashFirstFrom);
31
+ if (page.ringFloor > next) {
32
+ throw new Error(`the record no longer holds entry ${next} (its ring now starts at ${page.ringFloor}); ` +
33
+ 'those rows exist only in a bundle captured while they were retained');
34
+ }
35
+ const got = page.sealed.map((s) => ({
36
+ id: s.id,
37
+ digest: Uint8Array.from(s.digest),
38
+ entryHash: Uint8Array.from(s.entryHash),
39
+ }));
40
+ for (const e of page.items)
41
+ got.push(await sealedRowOf(e));
42
+ got.sort((a, b) => (a.id < b.id ? -1 : a.id > b.id ? 1 : 0));
43
+ rows.push(...got);
44
+ if (got.length === 0)
45
+ break;
46
+ next = got[got.length - 1].id + 1n;
47
+ if (next >= page.total)
48
+ break;
49
+ }
50
+ return { rows, hashFirstFrom: hashFirstFrom ?? 0n };
51
+ }
52
+ //# sourceMappingURL=publicRecord.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publicRecord.js","sourceRoot":"","sources":["../src/publicRecord.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /** A record entry's hashed fields, as the record read decodes them or as a bundle carries them. */
2
+ export interface RecordEntryFields {
3
+ id: bigint | number | string;
4
+ timestampNs: bigint | number | string;
5
+ /** A Principal (anything with `toText()`) or its text. */
6
+ caller: string | {
7
+ toText(): string;
8
+ };
9
+ /** The role as Candid decodes it (`{ Agent: null }`) or its text (`"Agent"`). */
10
+ callerRole: string | Record<string, null>;
11
+ operation: string;
12
+ details: string;
13
+ success: boolean;
14
+ }
15
+ /** One hash-only row of the record: what a reader who may not see an entry in full is served. */
16
+ export interface SealedRow {
17
+ id: bigint;
18
+ digest: Uint8Array;
19
+ entryHash: Uint8Array;
20
+ }
21
+ /** The bytes an entry's hash covers — byte-for-byte `AuditLog.bodyOf`. */
22
+ export declare function recordEntryBody(e: RecordEntryFields): Uint8Array;
23
+ export declare function sha256(bytes: Uint8Array): Promise<Uint8Array>;
24
+ /** SHA-256 of an entry's body — the digest a hash-only row carries. */
25
+ export declare const recordDigest: (body: Uint8Array) => Promise<Uint8Array>;
26
+ /** The hash-first rule: SHA-256(prev ‖ digest). */
27
+ export declare const recordLink: (prev: Uint8Array, digest: Uint8Array) => Promise<Uint8Array>;
28
+ /** The rule before a chain's switch point: SHA-256(prev ‖ body). */
29
+ export declare const legacyRecordLink: (prev: Uint8Array, body: Uint8Array) => Promise<Uint8Array>;
30
+ /**
31
+ * One entry's hash from its fields and the head before it, under the rule its id falls on.
32
+ * `hashFirstFrom` is the chain's switch point as its record read serves it.
33
+ */
34
+ export declare function recordEntryHash(e: RecordEntryFields, prev: Uint8Array, hashFirstFrom: bigint): Promise<Uint8Array>;
35
+ /** A full entry turned into the row a stranger would be served — for walking a page that mixes the two. */
36
+ export declare function sealedRowOf(e: RecordEntryFields & {
37
+ entryHash: Uint8Array | number[];
38
+ }): Promise<SealedRow>;
39
+ export declare const sameBytes: (a: Uint8Array, b: Uint8Array) => boolean;
40
+ export declare const toHexString: (b: Uint8Array) => string;
41
+ export type WalkResult = {
42
+ ok: true;
43
+ /** Entries walked past the starting entry to reach the certified head (0: it IS the head). */
44
+ distance: bigint;
45
+ /** The id of the entry whose hash is the certified head. Entries ever written = this + 1. */
46
+ headId: bigint;
47
+ } | {
48
+ ok: false;
49
+ /** Which link broke, in words a person can act on. */
50
+ why: string;
51
+ /** The row id the walk stopped at, when there is one. */
52
+ at?: bigint;
53
+ };
54
+ /**
55
+ * Walk from one entry's hash, through hash-only rows, to a certified head.
56
+ *
57
+ * `rows` are taken in the order given and must continue the chain from `fromId + 1` with no gap and
58
+ * no reordering — the walk does NOT sort them, so a removed or a swapped row is named rather than
59
+ * silently repaired. Leading rows at or below `fromId` are skipped (a fetched page may start earlier).
60
+ * Each row's digest is chained onto the running head; when the row carries an entry hash it must
61
+ * agree. The walk succeeds the moment the running head equals `certifiedHead`.
62
+ */
63
+ export declare function walkToCertifiedHead(args: {
64
+ fromId: bigint;
65
+ fromHash: Uint8Array;
66
+ rows: SealedRow[];
67
+ certifiedHead: Uint8Array;
68
+ hashFirstFrom: bigint;
69
+ }): Promise<WalkResult>;