@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.
- package/README.md +22 -8
- package/dist/EngramClient.d.ts +10 -14
- package/dist/EngramClient.js +14 -64
- package/dist/EngramClient.js.map +1 -1
- package/dist/ProfileManager.d.ts +3 -19
- package/dist/ProfileManager.js +1 -58
- package/dist/ProfileManager.js.map +1 -1
- package/dist/SessionManager.d.ts +1 -1
- package/dist/SessionManager.js.map +1 -1
- package/dist/claude-setup.d.ts +15 -6
- package/dist/claude-setup.js +30 -17
- package/dist/claude-setup.js.map +1 -1
- package/dist/cli.d.ts +7 -1
- package/dist/cli.js +134 -184
- package/dist/cli.js.map +1 -1
- package/dist/connect-config.d.ts +109 -0
- package/dist/connect-config.js +251 -0
- package/dist/connect-config.js.map +1 -0
- package/dist/encryption.js +7 -1
- package/dist/encryption.js.map +1 -1
- package/dist/idl.d.ts +16 -1
- package/dist/idl.js +9 -1
- package/dist/idl.js.map +1 -1
- package/dist/index.d.ts +4 -5
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/ledgerfsHash.d.ts +0 -2
- package/dist/ledgerfsHash.js +0 -2
- package/dist/ledgerfsHash.js.map +1 -1
- package/dist/lineage.d.ts +7 -1
- package/dist/lineage.js +7 -1
- package/dist/lineage.js.map +1 -1
- package/dist/memoryArchive.d.ts +12 -77
- package/dist/memoryArchive.js.map +1 -1
- package/dist/migrate.d.ts +18 -30
- package/dist/migrate.js +42 -136
- package/dist/migrate.js.map +1 -1
- package/dist/openclaw-local.d.ts +86 -0
- package/dist/openclaw-local.js +332 -0
- package/dist/openclaw-local.js.map +1 -0
- package/dist/openclaw-setup.d.ts +82 -3
- package/dist/openclaw-setup.js +162 -50
- package/dist/openclaw-setup.js.map +1 -1
- package/dist/path-utils.d.ts +0 -16
- package/dist/path-utils.js +4 -27
- package/dist/path-utils.js.map +1 -1
- package/dist/schema.d.ts +6 -17
- package/dist/schema.js +6 -28
- package/dist/schema.js.map +1 -1
- package/dist/types.d.ts +46 -453
- package/dist/verify.d.ts +2 -0
- package/dist/verify.js +11 -0
- package/dist/verify.js.map +1 -0
- package/dist/version.d.ts +22 -0
- package/dist/version.js +22 -0
- package/dist/version.js.map +1 -1
- package/package.json +17 -5
- package/dist/offline.d.ts +0 -21
- package/dist/offline.js +0 -104
- package/dist/offline.js.map +0 -1
package/dist/openclaw-setup.js
CHANGED
|
@@ -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
|
-
//
|
|
42
|
-
|
|
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:
|
|
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
|
-
|
|
104
|
-
|
|
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 (!
|
|
107
|
-
return
|
|
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',
|
|
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',
|
|
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
|
-
|
|
135
|
-
|
|
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
|
-
|
|
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 =
|
|
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":"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"}
|
package/dist/path-utils.d.ts
CHANGED
|
@@ -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;
|
package/dist/path-utils.js
CHANGED
|
@@ -27,31 +27,8 @@ export function atomicWriteFileSync(targetPath, data, options) {
|
|
|
27
27
|
throw err;
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
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
|
package/dist/path-utils.js.map
CHANGED
|
@@ -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
|
|
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_-]+)\//);
|
package/dist/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"AAAA
|
|
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"}
|