@engramx/client 0.16.0-rc.11 → 0.16.0-rc.13

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 (60) hide show
  1. package/README.md +22 -8
  2. package/dist/EngramClient.d.ts +10 -14
  3. package/dist/EngramClient.js +14 -64
  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/claude-setup.d.ts +15 -6
  11. package/dist/claude-setup.js +30 -17
  12. package/dist/claude-setup.js.map +1 -1
  13. package/dist/cli.d.ts +7 -1
  14. package/dist/cli.js +134 -184
  15. package/dist/cli.js.map +1 -1
  16. package/dist/connect-config.d.ts +109 -0
  17. package/dist/connect-config.js +251 -0
  18. package/dist/connect-config.js.map +1 -0
  19. package/dist/encryption.js +7 -1
  20. package/dist/encryption.js.map +1 -1
  21. package/dist/idl.d.ts +16 -1
  22. package/dist/idl.js +9 -1
  23. package/dist/idl.js.map +1 -1
  24. package/dist/index.d.ts +4 -5
  25. package/dist/index.js +5 -4
  26. package/dist/index.js.map +1 -1
  27. package/dist/ledgerfsHash.d.ts +0 -2
  28. package/dist/ledgerfsHash.js +0 -2
  29. package/dist/ledgerfsHash.js.map +1 -1
  30. package/dist/lineage.d.ts +7 -1
  31. package/dist/lineage.js +7 -1
  32. package/dist/lineage.js.map +1 -1
  33. package/dist/memoryArchive.d.ts +12 -77
  34. package/dist/memoryArchive.js.map +1 -1
  35. package/dist/migrate.d.ts +18 -30
  36. package/dist/migrate.js +42 -136
  37. package/dist/migrate.js.map +1 -1
  38. package/dist/openclaw-local.d.ts +86 -0
  39. package/dist/openclaw-local.js +332 -0
  40. package/dist/openclaw-local.js.map +1 -0
  41. package/dist/openclaw-setup.d.ts +82 -3
  42. package/dist/openclaw-setup.js +162 -50
  43. package/dist/openclaw-setup.js.map +1 -1
  44. package/dist/path-utils.d.ts +0 -16
  45. package/dist/path-utils.js +4 -27
  46. package/dist/path-utils.js.map +1 -1
  47. package/dist/schema.d.ts +6 -17
  48. package/dist/schema.js +6 -28
  49. package/dist/schema.js.map +1 -1
  50. package/dist/types.d.ts +46 -453
  51. package/dist/verify.d.ts +2 -0
  52. package/dist/verify.js +11 -0
  53. package/dist/verify.js.map +1 -0
  54. package/dist/version.d.ts +22 -0
  55. package/dist/version.js +22 -0
  56. package/dist/version.js.map +1 -1
  57. package/package.json +17 -5
  58. package/dist/offline.d.ts +0 -21
  59. package/dist/offline.js +0 -104
  60. 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":"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"}
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;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,mGAAmG;AACnG,4FAA4F;AAC5F,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC1F,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B;;;;;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;AAuBD,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,kGAAkG;IAClG,wFAAwF;IACxF,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,WAAW,CAAC,CAAC;IAEhD,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,MAAM,CAAC,MAAM,KAAK,KAAK,IAAI,MAAM,CAAC,MAAM,KAAK,YAAY;QAC1E,YAAY,EAAE,MAAM,CAAC,MAAM;QAC3B,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAClE,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,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;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,qBAAqB,OAAO,EAAE,CAAC;AAgB9D,8FAA8F;AAC9F,SAAS,iBAAiB,CAAC,GAAW;IACpC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,EAAE,OAAO,CAAC,CAGnF,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,KAAK,mBAAmB,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ;YAClF,CAAC,CAAC,QAAQ,CAAC,OAAO;YAClB,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,4BAA4B,CAC1C,cAAsB,cAAc,EAAE;IAEtC,MAAM,KAAK,GAA8B,EAAE,CAAC;IAC5C,MAAM,IAAI,GAAG,CAAC,OAAe,EAAE,SAA+C,EAAE,EAAE;QAChF,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QACvE,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YACpB,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IAC7E,CAAC,CAAC;IACF,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,gBAAgB,CAAC,EAAE,KAAK,CAAC,CAAC;IACpE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,UAAU,CAAC,CAAC;IAChD,IAAI,QAAQ,GAAa,EAAE,CAAC;IAC5B,IAAI,CAAC;QACH,QAAQ,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9E,CAAC;IAAC,MAAM,CAAC;QACP,iCAAiC;IACnC,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,QAAQ;QAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,UAAU,CAAC,CAAC;IAC/F,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,uBAAuB,CACrC,SAAoC,4BAA4B,EAAE;IAElE,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,KAAK,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IACjF,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACpF,CAAC;AAED,2FAA2F;AAC3F,SAAS,SAAS,CAAC,CAAS;IAC1B,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC;AAC1E,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,oBAAoB,CAAC,IAA6B;IAChE,4FAA4F;IAC5F,kGAAkG;IAClG,4EAA4E;IAC5E,OAAO,IAAI,CAAC,SAAS,KAAK,KAAK;QAC7B,CAAC,CAAC,eAAe,eAAe,oBAAoB,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE;QAC7E,CAAC,CAAC,2BAA2B,eAAe,EAAE,CAAC;AACnD,CAAC;AAED,qFAAqF;AACrF,MAAM,OAAO,2BAA4B,SAAQ,KAAK;IAEpD,YAAY,QAAmC;QAC7C,MAAM,KAAK,GAAG;YACZ,iHAAiH;YACjH,GAAG,QAAQ,CAAC,GAAG,CACb,CAAC,CAAC,EAAE,EAAE,CACJ,KAAK,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,OAAO,EAAE,SAAS,OAAO,EAAE,CAChI;YACD,mLAAmL;YACnL,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,oBAAoB;YACjE,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC;SAC7E,CAAC;QACF,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,6BAA6B,CAAC;QAC1C,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED,8FAA8F;AAC9F,SAAS,cAAc,CAAC,GAAY;IAClC,MAAM,MAAM,GAAI,GAAkD,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC7F,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IAC7D,OAAO,CAAC,IAAI,IAAI,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;AAC7E,CAAC;AAED,KAAK,UAAU,aAAa,CAC1B,WAAmB;IAEnB,MAAM,MAAM,GAAG,4BAA4B,CAAC,WAAW,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;IACjD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,IAAI,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IACzE,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC;IAC1D,IAAI,OAAO;QAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;IAE7D,IAAI,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,CAAC;QACvC,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,6BAA6B,WAAW,iDAAiD;SAChG,CAAC;IACJ,CAAC;IACD,IAAI,CAAC,CAAC,MAAM,kBAAkB,EAAE,CAAC,EAAE,CAAC;QAClC,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,oEAAoE,qBAAqB,GAAG;SACnG,CAAC;IACJ,CAAC;IAED,8CAA8C;IAC9C,IAAI,CAAC;QACH,YAAY,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,eAAe,CAAC,EAAE;YAChE,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,KAAM;SAChB,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC3B,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,eAAe,EAAE,QAAQ,CAAC,EAAE;YAC1D,GAAG,EAAE,aAAa;YAClB,KAAK,EAAE,MAAM;YACb,OAAO,EAAE,KAAM;SAChB,CAAC,CAAC;QACH,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IACvD,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,MAAM,EAAE,SAAS;YACjB,IAAI,EAAE,iEAAiE,cAAc,CAAC,GAAG,CAAC,GAAG;SAC9F,CAAC;IACJ,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;AASD,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,OAAO,gBAAgB,CAAC,WAAW,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,8FAA8F;AAC9F,8DAA8D;AAE9D,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,gBAAgB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;IACxD,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"}
@@ -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"}
package/dist/schema.d.ts CHANGED
@@ -4,6 +4,12 @@
4
4
  * Formalises the memory layout so that Claude, OpenClaw, and any future
5
5
  * MCP-compatible platform share the same vocabulary for what files mean
6
6
  * and where they live inside an engram canister.
7
+ *
8
+ * ⟨2026-10-13⟩ CONFIG, DEFAULT_PROTECTED_PATHS, KNOWLEDGE_PATHS, PLATFORMS (and its Platform type)
9
+ * and the isIdentityPath / isKnowledgePath / isSessionPath / isConfigPath helpers were removed in
10
+ * the bloat audit: nothing in this repo or the platform referenced them, and nothing tested them.
11
+ * DEFAULT_PROTECTED_PATHS also described a default protected list the engram does not have (an
12
+ * engram's protected-path list starts empty).
7
13
  */
8
14
  export declare const IDENTITY: {
9
15
  /** Agent personality & principles (owner-write-only) */
@@ -27,27 +33,10 @@ export declare const SESSIONS: {
27
33
  /** Session directory prefix for a platform */
28
34
  readonly platformDir: (platform: string) => string;
29
35
  };
30
- export declare const CONFIG: {
31
- /** Platform-specific config file */
32
- readonly platform: (name: string) => string;
33
- readonly OPENCLAW: "config/openclaw.json";
34
- readonly CLAUDE: "config/claude.json";
35
- };
36
- /** Default protected paths (owner-write-only). */
37
- export declare const DEFAULT_PROTECTED_PATHS: readonly ["identity/soul.md", "identity/user.md"];
38
36
  /** All well-known identity paths for batch reads. */
39
37
  export declare const IDENTITY_PATHS: readonly ["identity/soul.md", "identity/user.md", "identity/preferences.md"];
40
- /** All well-known knowledge paths for batch reads. */
41
- export declare const KNOWLEDGE_PATHS: readonly ["knowledge/lessons.md", "knowledge/decisions.md"];
42
38
  /** All well-known profile paths (identity + lessons). */
43
39
  export declare const PROFILE_PATHS: readonly ["identity/soul.md", "identity/user.md", "identity/preferences.md", "knowledge/lessons.md"];
44
- export declare const PLATFORMS: readonly ["claude", "openclaw", "cursor", "windsurf"];
45
- export type Platform = (typeof PLATFORMS)[number];
46
- /** Check whether a path falls under a schema namespace. */
47
- export declare function isIdentityPath(path: string): boolean;
48
- export declare function isKnowledgePath(path: string): boolean;
49
- export declare function isSessionPath(path: string): boolean;
50
- export declare function isConfigPath(path: string): boolean;
51
40
  /** Extract the platform name from a session path, or null. */
52
41
  export declare function sessionPlatform(path: string): string | null;
53
42
  /** Today's date as YYYY-MM-DD. */
package/dist/schema.js CHANGED
@@ -4,6 +4,12 @@
4
4
  * Formalises the memory layout so that Claude, OpenClaw, and any future
5
5
  * MCP-compatible platform share the same vocabulary for what files mean
6
6
  * and where they live inside an engram canister.
7
+ *
8
+ * ⟨2026-10-13⟩ CONFIG, DEFAULT_PROTECTED_PATHS, KNOWLEDGE_PATHS, PLATFORMS (and its Platform type)
9
+ * and the isIdentityPath / isKnowledgePath / isSessionPath / isConfigPath helpers were removed in
10
+ * the bloat audit: nothing in this repo or the platform referenced them, and nothing tested them.
11
+ * DEFAULT_PROTECTED_PATHS also described a default protected list the engram does not have (an
12
+ * engram's protected-path list starts empty).
7
13
  */
8
14
  // ── Path constants ─────────────────────────────────────────────
9
15
  export const IDENTITY = {
@@ -38,25 +44,10 @@ export const SESSIONS = {
38
44
  return `sessions/${platform}/`;
39
45
  },
40
46
  };
41
- export const CONFIG = {
42
- /** Platform-specific config file */
43
- platform: (name) => {
44
- validatePlatform(name);
45
- return `config/${name}.json`;
46
- },
47
- OPENCLAW: 'config/openclaw.json',
48
- CLAUDE: 'config/claude.json',
49
- };
50
- /** Default protected paths (owner-write-only). */
51
- export const DEFAULT_PROTECTED_PATHS = [IDENTITY.SOUL, IDENTITY.USER];
52
47
  /** All well-known identity paths for batch reads. */
53
48
  export const IDENTITY_PATHS = [IDENTITY.SOUL, IDENTITY.USER, IDENTITY.PREFERENCES];
54
- /** All well-known knowledge paths for batch reads. */
55
- export const KNOWLEDGE_PATHS = [KNOWLEDGE.LESSONS, KNOWLEDGE.DECISIONS];
56
49
  /** All well-known profile paths (identity + lessons). */
57
50
  export const PROFILE_PATHS = [...IDENTITY_PATHS, KNOWLEDGE.LESSONS];
58
- // ── Known platforms ────────────────────────────────────────────
59
- export const PLATFORMS = ['claude', 'openclaw', 'cursor', 'windsurf'];
60
51
  // ── Validators ─────────────────────────────────────────────────
61
52
  const SAFE_NAME_RE = /^[a-z0-9][a-z0-9_-]{0,62}$/;
62
53
  const DATE_RE = /^\d{4}-\d{2}-\d{2}$/;
@@ -76,19 +67,6 @@ function validateDate(date) {
76
67
  }
77
68
  }
78
69
  // ── Helpers ────────────────────────────────────────────────────
79
- /** Check whether a path falls under a schema namespace. */
80
- export function isIdentityPath(path) {
81
- return path.startsWith('identity/');
82
- }
83
- export function isKnowledgePath(path) {
84
- return path.startsWith('knowledge/');
85
- }
86
- export function isSessionPath(path) {
87
- return path.startsWith('sessions/');
88
- }
89
- export function isConfigPath(path) {
90
- return path.startsWith('config/');
91
- }
92
70
  /** Extract the platform name from a session path, or null. */
93
71
  export function sessionPlatform(path) {
94
72
  const match = path.match(/^sessions\/([a-z0-9_-]+)\//);
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,kEAAkE;AAElE,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,wDAAwD;IACxD,IAAI,EAAE,kBAAkB;IACxB,iEAAiE;IACjE,IAAI,EAAE,kBAAkB;IACxB,wDAAwD;IACxD,WAAW,EAAE,yBAAyB;CAC9B,CAAC;AAEX,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,sDAAsD;IACtD,OAAO,EAAE,sBAAsB;IAC/B,kCAAkC;IAClC,SAAS,EAAE,wBAAwB;IACnC,qCAAqC;IACrC,MAAM,EAAE,CAAC,KAAa,EAAU,EAAE;QAChC,aAAa,CAAC,KAAK,CAAC,CAAC;QACrB,OAAO,qBAAqB,KAAK,KAAK,CAAC;IACzC,CAAC;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,uDAAuD;IACvD,OAAO,EAAE,CAAC,QAAgB,EAAE,IAAY,EAAU,EAAE;QAClD,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC3B,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,OAAO,YAAY,QAAQ,IAAI,IAAI,KAAK,CAAC;IAC3C,CAAC;IACD,8CAA8C;IAC9C,WAAW,EAAE,CAAC,QAAgB,EAAU,EAAE;QACxC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAC3B,OAAO,YAAY,QAAQ,GAAG,CAAC;IACjC,CAAC;CACO,CAAC;AAEX,qDAAqD;AACrD,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,WAAW,CAAU,CAAC;AAE5F,yDAAyD;AACzD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,GAAG,cAAc,EAAE,SAAS,CAAC,OAAO,CAAU,CAAC;AAE7E,kEAAkE;AAElE,MAAM,YAAY,GAAG,4BAA4B,CAAC;AAClD,MAAM,OAAO,GAAG,qBAAqB,CAAC;AAEtC,SAAS,aAAa,CAAC,KAAa;IAClC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,kBAAkB,KAAK,wEAAwE,CAChG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,QAAgB;IACxC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CACb,qBAAqB,QAAQ,wEAAwE,CACtG,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,+BAA+B,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED,kEAAkE;AAElE,8DAA8D;AAC9D,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,4BAA4B,CAAC,CAAC;IACvD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAClC,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,KAAK;IACnB,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC/C,CAAC"}