opencode-flema-engram-sidebar 0.1.8 → 0.2.0
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 +94 -8
- package/dist/maintenance/cli.d.ts +21 -0
- package/dist/maintenance/cli.d.ts.map +1 -0
- package/dist/maintenance/cli.js +571 -0
- package/dist/maintenance/cli.js.map +1 -0
- package/dist/maintenance.d.ts +3 -0
- package/dist/maintenance.d.ts.map +1 -0
- package/dist/maintenance.js +4 -0
- package/dist/maintenance.js.map +1 -0
- package/dist/sidebar/hooks/use-engram.d.ts +1 -0
- package/dist/sidebar/hooks/use-engram.d.ts.map +1 -1
- package/dist/sidebar/hooks/use-engram.js +1 -1
- package/dist/sidebar/hooks/use-engram.js.map +1 -1
- package/dist/sidebar/plugin.d.ts +63 -2
- package/dist/sidebar/plugin.d.ts.map +1 -1
- package/dist/sidebar/plugin.js +140 -104
- package/dist/sidebar/plugin.js.map +1 -1
- package/package.json +2 -1
|
@@ -0,0 +1,571 @@
|
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { chmod, lstat, readFile, readdir, realpath, rm, stat, writeFile } from "node:fs/promises";
|
|
3
|
+
import { createInterface } from "node:readline/promises";
|
|
4
|
+
import { dirname, isAbsolute, join, parse, relative, resolve, sep } from "node:path";
|
|
5
|
+
const PACKAGE_NAME = "opencode-flema-engram-sidebar";
|
|
6
|
+
const REGISTRY_TIMEOUT_MS = 5_000;
|
|
7
|
+
const INSTALLER_TIMEOUT_MS = 60_000;
|
|
8
|
+
const HELP = `Usage: flema-engram <command> [options]
|
|
9
|
+
|
|
10
|
+
Commands:
|
|
11
|
+
doctor [--json] Inspect configuration and cached versions
|
|
12
|
+
update [--dry-run] [--yes] [--json] Preview or apply a verified exact-version update
|
|
13
|
+
|
|
14
|
+
Options:
|
|
15
|
+
--dry-run Print the immutable update plan without changing files
|
|
16
|
+
--yes Apply without the interactive confirmation (the plan is still printed)
|
|
17
|
+
--help Show this help
|
|
18
|
+
`;
|
|
19
|
+
function defaultRunCommand(command, args, options) {
|
|
20
|
+
return new Promise((resolveResult) => {
|
|
21
|
+
const child = spawn(command, args, {
|
|
22
|
+
stdio: ["ignore", "pipe", "pipe"],
|
|
23
|
+
signal: options?.signal,
|
|
24
|
+
killSignal: "SIGKILL",
|
|
25
|
+
});
|
|
26
|
+
let stdout = "";
|
|
27
|
+
let stderr = "";
|
|
28
|
+
child.stdout.on("data", (chunk) => { stdout += chunk.toString(); });
|
|
29
|
+
child.stderr.on("data", (chunk) => { stderr += chunk.toString(); });
|
|
30
|
+
child.once("error", (error) => {
|
|
31
|
+
resolveResult({ code: 1, stdout, stderr: `${stderr}${error.message}` });
|
|
32
|
+
});
|
|
33
|
+
child.once("close", (code) => {
|
|
34
|
+
resolveResult({ code: code ?? 1, stdout, stderr });
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
async function defaultFetchLatestVersion() {
|
|
39
|
+
let response;
|
|
40
|
+
try {
|
|
41
|
+
response = await fetch(`https://registry.npmjs.org/${PACKAGE_NAME}/latest`, {
|
|
42
|
+
headers: { accept: "application/json" },
|
|
43
|
+
signal: AbortSignal.timeout(REGISTRY_TIMEOUT_MS),
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
if (error instanceof DOMException && error.name === "TimeoutError") {
|
|
48
|
+
throw new Error("npm registry request timed out");
|
|
49
|
+
}
|
|
50
|
+
throw error;
|
|
51
|
+
}
|
|
52
|
+
if (!response.ok)
|
|
53
|
+
throw new Error(`npm registry returned HTTP ${response.status}`);
|
|
54
|
+
const body = await response.json();
|
|
55
|
+
if (!body || typeof body !== "object" || typeof body.version !== "string") {
|
|
56
|
+
throw new Error("npm registry response did not contain a version");
|
|
57
|
+
}
|
|
58
|
+
return body.version;
|
|
59
|
+
}
|
|
60
|
+
function parseRuntimePaths(output) {
|
|
61
|
+
const values = new Map();
|
|
62
|
+
for (const line of output.split(/\r?\n/u)) {
|
|
63
|
+
const match = /^(cache|config)\s+(.+)$/u.exec(line.trim());
|
|
64
|
+
if (match?.[1] && match[2])
|
|
65
|
+
values.set(match[1], match[2].trim());
|
|
66
|
+
}
|
|
67
|
+
const cacheDir = values.get("cache");
|
|
68
|
+
const configDir = values.get("config");
|
|
69
|
+
if (!cacheDir || !configDir)
|
|
70
|
+
throw new Error("OpenCode did not report config and cache paths");
|
|
71
|
+
return { cacheDir: resolve(cacheDir), configDir: resolve(configDir) };
|
|
72
|
+
}
|
|
73
|
+
function packageNameFromSpec(spec) {
|
|
74
|
+
const trimmed = spec.trim();
|
|
75
|
+
if (trimmed.startsWith("@")) {
|
|
76
|
+
const slash = trimmed.indexOf("/");
|
|
77
|
+
const versionAt = trimmed.indexOf("@", slash + 1);
|
|
78
|
+
return versionAt < 0 ? trimmed : trimmed.slice(0, versionAt);
|
|
79
|
+
}
|
|
80
|
+
const versionAt = trimmed.indexOf("@");
|
|
81
|
+
return versionAt < 0 ? trimmed : trimmed.slice(0, versionAt);
|
|
82
|
+
}
|
|
83
|
+
function collectConfiguredSpecs(value, output) {
|
|
84
|
+
if (typeof value === "string") {
|
|
85
|
+
if (packageNameFromSpec(value) === PACKAGE_NAME)
|
|
86
|
+
output.push(value);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
if (!Array.isArray(value))
|
|
90
|
+
return;
|
|
91
|
+
for (const entry of value) {
|
|
92
|
+
if (typeof entry === "string")
|
|
93
|
+
collectConfiguredSpecs(entry, output);
|
|
94
|
+
else if (Array.isArray(entry) && entry.length > 0)
|
|
95
|
+
collectConfiguredSpecs(entry[0], output);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
async function existingConfigPaths(configDir, cwd) {
|
|
99
|
+
const candidates = [join(configDir, "tui.json")];
|
|
100
|
+
let current = resolve(cwd);
|
|
101
|
+
while (true) {
|
|
102
|
+
candidates.push(join(current, ".opencode", "tui.json"));
|
|
103
|
+
const parent = dirname(current);
|
|
104
|
+
if (parent === current || current === parse(current).root)
|
|
105
|
+
break;
|
|
106
|
+
current = parent;
|
|
107
|
+
}
|
|
108
|
+
const output = [];
|
|
109
|
+
for (const candidate of candidates) {
|
|
110
|
+
try {
|
|
111
|
+
const file = await stat(candidate);
|
|
112
|
+
if (file.isFile() && !output.includes(candidate))
|
|
113
|
+
output.push(candidate);
|
|
114
|
+
}
|
|
115
|
+
catch (error) {
|
|
116
|
+
if (error.code !== "ENOENT")
|
|
117
|
+
throw error;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
return output;
|
|
121
|
+
}
|
|
122
|
+
async function readConfiguredSpecs(paths) {
|
|
123
|
+
const specs = [];
|
|
124
|
+
for (const path of paths) {
|
|
125
|
+
const parsed = JSON.parse(await readFile(path, "utf8"));
|
|
126
|
+
if (!parsed || typeof parsed !== "object")
|
|
127
|
+
continue;
|
|
128
|
+
const root = parsed;
|
|
129
|
+
collectConfiguredSpecs(root.plugin, specs);
|
|
130
|
+
collectConfiguredSpecs(root.plugins, specs);
|
|
131
|
+
}
|
|
132
|
+
return [...new Set(specs)];
|
|
133
|
+
}
|
|
134
|
+
async function inspectInstallations(cacheDir, latestVersion) {
|
|
135
|
+
const packagesDir = join(cacheDir, "packages");
|
|
136
|
+
let entries;
|
|
137
|
+
try {
|
|
138
|
+
entries = await readdir(packagesDir, { withFileTypes: true });
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
if (error.code === "ENOENT")
|
|
142
|
+
return [];
|
|
143
|
+
throw error;
|
|
144
|
+
}
|
|
145
|
+
const prefix = `${PACKAGE_NAME}@`;
|
|
146
|
+
const installations = [];
|
|
147
|
+
for (const entry of entries) {
|
|
148
|
+
if (!entry.isDirectory() || !entry.name.startsWith(prefix))
|
|
149
|
+
continue;
|
|
150
|
+
const path = join(packagesDir, entry.name);
|
|
151
|
+
try {
|
|
152
|
+
const wrapper = JSON.parse(await readFile(join(path, "package.json"), "utf8"));
|
|
153
|
+
const installed = JSON.parse(await readFile(join(path, "node_modules", PACKAGE_NAME, "package.json"), "utf8"));
|
|
154
|
+
const wrapperVersion = wrapper.dependencies?.[PACKAGE_NAME];
|
|
155
|
+
if (typeof wrapperVersion !== "string"
|
|
156
|
+
|| installed.name !== PACKAGE_NAME
|
|
157
|
+
|| typeof installed.version !== "string")
|
|
158
|
+
continue;
|
|
159
|
+
const spec = entry.name;
|
|
160
|
+
const mutable = spec === `${PACKAGE_NAME}@latest`;
|
|
161
|
+
installations.push({
|
|
162
|
+
path,
|
|
163
|
+
spec,
|
|
164
|
+
wrapperVersion,
|
|
165
|
+
installedVersion: installed.version,
|
|
166
|
+
stale: mutable && installed.version !== latestVersion,
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
continue;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return installations.sort((left, right) => left.spec.localeCompare(right.spec));
|
|
174
|
+
}
|
|
175
|
+
function classify(configuredSpecs, installations, latestVersion) {
|
|
176
|
+
if (configuredSpecs.length === 0)
|
|
177
|
+
return "not-configured";
|
|
178
|
+
if (installations.some(({ stale }) => stale))
|
|
179
|
+
return "stale-cache";
|
|
180
|
+
if (!configuredSpecs.some((spec) => spec === `${PACKAGE_NAME}@${latestVersion}`))
|
|
181
|
+
return "outdated";
|
|
182
|
+
return "current";
|
|
183
|
+
}
|
|
184
|
+
async function inspect(dependencies) {
|
|
185
|
+
const versionResult = await dependencies.runCommand("opencode", ["--version"]);
|
|
186
|
+
if (versionResult.code !== 0)
|
|
187
|
+
throw new Error("Unable to determine OpenCode version");
|
|
188
|
+
const pathsResult = await dependencies.runCommand("opencode", ["debug", "paths"]);
|
|
189
|
+
if (pathsResult.code !== 0)
|
|
190
|
+
throw new Error("Unable to determine OpenCode paths");
|
|
191
|
+
const runtimePaths = parseRuntimePaths(pathsResult.stdout);
|
|
192
|
+
const latestVersion = await dependencies.fetchLatestVersion();
|
|
193
|
+
const configPaths = await existingConfigPaths(runtimePaths.configDir, dependencies.cwd);
|
|
194
|
+
const configuredSpecs = await readConfiguredSpecs(configPaths);
|
|
195
|
+
const installations = await inspectInstallations(runtimePaths.cacheDir, latestVersion);
|
|
196
|
+
return {
|
|
197
|
+
status: classify(configuredSpecs, installations, latestVersion),
|
|
198
|
+
packageName: PACKAGE_NAME,
|
|
199
|
+
openCodeVersion: versionResult.stdout.trim(),
|
|
200
|
+
latestVersion,
|
|
201
|
+
configPaths,
|
|
202
|
+
configuredSpecs,
|
|
203
|
+
installations,
|
|
204
|
+
runtimePaths,
|
|
205
|
+
};
|
|
206
|
+
}
|
|
207
|
+
function doctorJson(inspection) {
|
|
208
|
+
return {
|
|
209
|
+
status: inspection.status,
|
|
210
|
+
packageName: inspection.packageName,
|
|
211
|
+
openCodeVersion: inspection.openCodeVersion,
|
|
212
|
+
latestVersion: inspection.latestVersion,
|
|
213
|
+
configPaths: inspection.configPaths,
|
|
214
|
+
configuredSpecs: inspection.configuredSpecs,
|
|
215
|
+
installations: inspection.installations.map(({ spec, wrapperVersion, installedVersion, stale }) => ({
|
|
216
|
+
spec,
|
|
217
|
+
wrapperVersion,
|
|
218
|
+
installedVersion,
|
|
219
|
+
stale,
|
|
220
|
+
})),
|
|
221
|
+
};
|
|
222
|
+
}
|
|
223
|
+
function backupTimestamp(date) {
|
|
224
|
+
return date.toISOString().replaceAll(/[-:.]/gu, "");
|
|
225
|
+
}
|
|
226
|
+
function installCommand(openCodeVersion, targetVersion) {
|
|
227
|
+
const major = Number.parseInt(openCodeVersion.split(".")[0] ?? "", 10);
|
|
228
|
+
if (!Number.isFinite(major))
|
|
229
|
+
throw new Error("OpenCode returned an invalid version");
|
|
230
|
+
if (major >= 2)
|
|
231
|
+
return ["opencode", "plugin", "add", `${PACKAGE_NAME}@${targetVersion}`];
|
|
232
|
+
return ["opencode", "plugin", `${PACKAGE_NAME}@${targetVersion}`, "--force", "--global"];
|
|
233
|
+
}
|
|
234
|
+
async function createUpdatePlan(inspection, now) {
|
|
235
|
+
const configPath = join(inspection.runtimePaths.configDir, "tui.json");
|
|
236
|
+
if (!inspection.configPaths.includes(configPath))
|
|
237
|
+
throw new Error("Global tui.json was not found");
|
|
238
|
+
const configMode = (await stat(configPath)).mode & 0o777;
|
|
239
|
+
const packagesPath = join(inspection.runtimePaths.cacheDir, "packages");
|
|
240
|
+
const cacheStat = await lstat(inspection.runtimePaths.cacheDir);
|
|
241
|
+
const packagesStat = await lstat(packagesPath);
|
|
242
|
+
if (cacheStat.isSymbolicLink()
|
|
243
|
+
|| packagesStat.isSymbolicLink()
|
|
244
|
+
|| !cacheStat.isDirectory()
|
|
245
|
+
|| !packagesStat.isDirectory()) {
|
|
246
|
+
throw new Error("OpenCode cache paths must be ordinary directories");
|
|
247
|
+
}
|
|
248
|
+
const staleWrappers = await Promise.all(inspection.installations.filter(({ stale }) => stale).map(async ({ path, installedVersion }) => ({
|
|
249
|
+
path,
|
|
250
|
+
expectedVersion: installedVersion,
|
|
251
|
+
wrapperManifestSnapshot: await readFile(join(path, "package.json")),
|
|
252
|
+
packageManifestSnapshot: await readFile(join(path, "node_modules", PACKAGE_NAME, "package.json")),
|
|
253
|
+
})));
|
|
254
|
+
return {
|
|
255
|
+
dryRun: true,
|
|
256
|
+
packageName: PACKAGE_NAME,
|
|
257
|
+
targetVersion: inspection.latestVersion,
|
|
258
|
+
configPath,
|
|
259
|
+
backupPath: `${configPath}.pre-flema-update-${backupTimestamp(now)}`,
|
|
260
|
+
installCommand: installCommand(inspection.openCodeVersion, inspection.latestVersion),
|
|
261
|
+
staleWrappers,
|
|
262
|
+
configSnapshot: await readFile(configPath),
|
|
263
|
+
configMode,
|
|
264
|
+
cacheDir: inspection.runtimePaths.cacheDir,
|
|
265
|
+
cacheRealPath: await realpath(inspection.runtimePaths.cacheDir),
|
|
266
|
+
packagesRealPath: await realpath(packagesPath),
|
|
267
|
+
};
|
|
268
|
+
}
|
|
269
|
+
function publicUpdatePlan(plan) {
|
|
270
|
+
return {
|
|
271
|
+
dryRun: plan.dryRun,
|
|
272
|
+
packageName: plan.packageName,
|
|
273
|
+
targetVersion: plan.targetVersion,
|
|
274
|
+
configPath: plan.configPath,
|
|
275
|
+
backupPath: plan.backupPath,
|
|
276
|
+
installCommand: plan.installCommand,
|
|
277
|
+
staleWrappers: plan.staleWrappers.map(({ path, expectedVersion }) => ({
|
|
278
|
+
path,
|
|
279
|
+
expectedVersion,
|
|
280
|
+
})),
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
function containedBy(root, candidate) {
|
|
284
|
+
const relation = relative(root, candidate);
|
|
285
|
+
const traversesParent = relation === ".." || relation.startsWith(`..${sep}`);
|
|
286
|
+
return relation !== "" && !traversesParent && !isAbsolute(relation);
|
|
287
|
+
}
|
|
288
|
+
async function removeVerifiedStaleWrapper(candidate, plan) {
|
|
289
|
+
const packagesPath = join(plan.cacheDir, "packages");
|
|
290
|
+
const cacheStat = await lstat(plan.cacheDir);
|
|
291
|
+
const packagesStat = await lstat(packagesPath);
|
|
292
|
+
const candidateStat = await lstat(candidate.path);
|
|
293
|
+
if (cacheStat.isSymbolicLink()
|
|
294
|
+
|| packagesStat.isSymbolicLink()
|
|
295
|
+
|| candidateStat.isSymbolicLink()
|
|
296
|
+
|| !cacheStat.isDirectory()
|
|
297
|
+
|| !packagesStat.isDirectory()
|
|
298
|
+
|| !candidateStat.isDirectory()) {
|
|
299
|
+
throw new Error("Stale wrapper changed after preview; refusing to remove it");
|
|
300
|
+
}
|
|
301
|
+
const cacheReal = await realpath(plan.cacheDir);
|
|
302
|
+
const packagesReal = await realpath(packagesPath);
|
|
303
|
+
const candidateReal = await realpath(candidate.path);
|
|
304
|
+
if (cacheReal !== plan.cacheRealPath || packagesReal !== plan.packagesRealPath) {
|
|
305
|
+
throw new Error("OpenCode cache paths changed after preview; refusing cleanup");
|
|
306
|
+
}
|
|
307
|
+
if (!containedBy(packagesReal, candidateReal)) {
|
|
308
|
+
throw new Error("Stale wrapper escaped the package cache; refusing to remove it");
|
|
309
|
+
}
|
|
310
|
+
const nodeModulesPath = join(candidateReal, "node_modules");
|
|
311
|
+
const packageDirectoryPath = join(nodeModulesPath, PACKAGE_NAME);
|
|
312
|
+
const nodeModulesStat = await lstat(nodeModulesPath);
|
|
313
|
+
const packageDirectoryStat = await lstat(packageDirectoryPath);
|
|
314
|
+
if (nodeModulesStat.isSymbolicLink()
|
|
315
|
+
|| packageDirectoryStat.isSymbolicLink()
|
|
316
|
+
|| !nodeModulesStat.isDirectory()
|
|
317
|
+
|| !packageDirectoryStat.isDirectory()) {
|
|
318
|
+
throw new Error("Stale wrapper changed after preview; refusing to remove it");
|
|
319
|
+
}
|
|
320
|
+
if (!containedBy(candidateReal, await realpath(nodeModulesPath))) {
|
|
321
|
+
throw new Error("Stale wrapper dependency tree escaped its wrapper; refusing cleanup");
|
|
322
|
+
}
|
|
323
|
+
if (!containedBy(nodeModulesPath, await realpath(packageDirectoryPath))) {
|
|
324
|
+
throw new Error("Stale wrapper escaped the package cache; refusing to remove it");
|
|
325
|
+
}
|
|
326
|
+
const wrapperManifestPath = join(candidateReal, "package.json");
|
|
327
|
+
const packageManifestPath = join(packageDirectoryPath, "package.json");
|
|
328
|
+
const wrapperStat = await lstat(wrapperManifestPath);
|
|
329
|
+
const packageStat = await lstat(packageManifestPath);
|
|
330
|
+
if (wrapperStat.isSymbolicLink()
|
|
331
|
+
|| packageStat.isSymbolicLink()
|
|
332
|
+
|| !wrapperStat.isFile()
|
|
333
|
+
|| !packageStat.isFile()) {
|
|
334
|
+
throw new Error("Stale wrapper changed after preview; refusing to remove it");
|
|
335
|
+
}
|
|
336
|
+
const wrapperBytes = await readFile(wrapperManifestPath);
|
|
337
|
+
const packageBytes = await readFile(packageManifestPath);
|
|
338
|
+
if (!wrapperBytes.equals(candidate.wrapperManifestSnapshot)
|
|
339
|
+
|| !packageBytes.equals(candidate.packageManifestSnapshot)) {
|
|
340
|
+
throw new Error("Stale wrapper changed after preview; refusing to remove it");
|
|
341
|
+
}
|
|
342
|
+
const invalidManifestMessage = "Stale wrapper manifests have an invalid shape; refusing to remove it";
|
|
343
|
+
let wrapper;
|
|
344
|
+
let installed;
|
|
345
|
+
try {
|
|
346
|
+
wrapper = JSON.parse(wrapperBytes.toString("utf8"));
|
|
347
|
+
installed = JSON.parse(packageBytes.toString("utf8"));
|
|
348
|
+
}
|
|
349
|
+
catch {
|
|
350
|
+
throw new Error(invalidManifestMessage);
|
|
351
|
+
}
|
|
352
|
+
if (!wrapper
|
|
353
|
+
|| typeof wrapper !== "object"
|
|
354
|
+
|| Array.isArray(wrapper)
|
|
355
|
+
|| !("dependencies" in wrapper)
|
|
356
|
+
|| !wrapper.dependencies
|
|
357
|
+
|| typeof wrapper.dependencies !== "object"
|
|
358
|
+
|| Array.isArray(wrapper.dependencies)
|
|
359
|
+
|| !installed
|
|
360
|
+
|| typeof installed !== "object"
|
|
361
|
+
|| Array.isArray(installed)
|
|
362
|
+
|| !("name" in installed)
|
|
363
|
+
|| !("version" in installed)
|
|
364
|
+
|| wrapper.dependencies[PACKAGE_NAME] !== candidate.expectedVersion
|
|
365
|
+
|| installed.name !== PACKAGE_NAME
|
|
366
|
+
|| installed.version !== candidate.expectedVersion) {
|
|
367
|
+
throw new Error(invalidManifestMessage);
|
|
368
|
+
}
|
|
369
|
+
await rm(candidateReal, { recursive: true, force: false });
|
|
370
|
+
}
|
|
371
|
+
async function configuredWithExactVersion(configPath, targetVersion) {
|
|
372
|
+
const specs = await readConfiguredSpecs([configPath]);
|
|
373
|
+
const expected = `${PACKAGE_NAME}@${targetVersion}`;
|
|
374
|
+
return specs.length === 1 && specs[0] === expected;
|
|
375
|
+
}
|
|
376
|
+
async function exactInstalledVersion(cacheDir, targetVersion) {
|
|
377
|
+
try {
|
|
378
|
+
const raw = await readFile(join(cacheDir, "packages", `${PACKAGE_NAME}@${targetVersion}`, "node_modules", PACKAGE_NAME, "package.json"), "utf8");
|
|
379
|
+
const manifest = JSON.parse(raw);
|
|
380
|
+
return manifest.name === PACKAGE_NAME && typeof manifest.version === "string"
|
|
381
|
+
? manifest.version
|
|
382
|
+
: null;
|
|
383
|
+
}
|
|
384
|
+
catch {
|
|
385
|
+
return null;
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
async function defaultConfirm(message) {
|
|
389
|
+
const prompt = createInterface({ input: process.stdin, output: process.stderr });
|
|
390
|
+
try {
|
|
391
|
+
const closed = new Promise((resolveClosed) => {
|
|
392
|
+
prompt.once("close", () => resolveClosed(""));
|
|
393
|
+
});
|
|
394
|
+
const answer = await Promise.race([
|
|
395
|
+
prompt.question(`${message} [y/N] `),
|
|
396
|
+
closed,
|
|
397
|
+
]);
|
|
398
|
+
return /^y(?:es)?$/iu.test(answer.trim());
|
|
399
|
+
}
|
|
400
|
+
finally {
|
|
401
|
+
prompt.close();
|
|
402
|
+
}
|
|
403
|
+
}
|
|
404
|
+
function parseArgs(argv) {
|
|
405
|
+
if (argv.length === 0 || argv[0] === "--help" || argv[0] === "-h") {
|
|
406
|
+
return { command: "help", json: false, dryRun: false, yes: false };
|
|
407
|
+
}
|
|
408
|
+
const command = argv[0];
|
|
409
|
+
if (command !== "doctor" && command !== "update")
|
|
410
|
+
return { error: `Unknown command: ${command}` };
|
|
411
|
+
let json = false;
|
|
412
|
+
let dryRun = false;
|
|
413
|
+
let yes = false;
|
|
414
|
+
for (const arg of argv.slice(1)) {
|
|
415
|
+
if (arg === "--json")
|
|
416
|
+
json = true;
|
|
417
|
+
else if (arg === "--dry-run" && command === "update")
|
|
418
|
+
dryRun = true;
|
|
419
|
+
else if (arg === "--yes" && command === "update")
|
|
420
|
+
yes = true;
|
|
421
|
+
else
|
|
422
|
+
return { error: `Unknown option: ${arg}` };
|
|
423
|
+
}
|
|
424
|
+
if (dryRun && yes)
|
|
425
|
+
return { error: "--dry-run and --yes cannot be combined" };
|
|
426
|
+
return { command, json, dryRun, yes };
|
|
427
|
+
}
|
|
428
|
+
export async function runMaintenanceCli(argv, dependencies = {}) {
|
|
429
|
+
const stdout = dependencies.stdout ?? ((text) => process.stdout.write(text));
|
|
430
|
+
const stderr = dependencies.stderr ?? ((text) => process.stderr.write(text));
|
|
431
|
+
const parsed = parseArgs(argv);
|
|
432
|
+
if ("error" in parsed) {
|
|
433
|
+
stderr(`${parsed.error}\nRun \`flema-engram --help\` for usage.\n`);
|
|
434
|
+
return 1;
|
|
435
|
+
}
|
|
436
|
+
if (parsed.command === "help") {
|
|
437
|
+
stdout(HELP);
|
|
438
|
+
return 0;
|
|
439
|
+
}
|
|
440
|
+
try {
|
|
441
|
+
const inspection = await inspect({
|
|
442
|
+
cwd: dependencies.cwd ?? process.cwd(),
|
|
443
|
+
runCommand: dependencies.runCommand ?? defaultRunCommand,
|
|
444
|
+
fetchLatestVersion: dependencies.fetchLatestVersion ?? defaultFetchLatestVersion,
|
|
445
|
+
});
|
|
446
|
+
if (parsed.command === "doctor") {
|
|
447
|
+
if (parsed.json)
|
|
448
|
+
stdout(`${JSON.stringify(doctorJson(inspection), null, 2)}\n`);
|
|
449
|
+
else
|
|
450
|
+
stdout(`Flema Engram: ${inspection.status} (installed ${inspection.installations.map(({ installedVersion }) => installedVersion).join(", ") || "none"}; latest ${inspection.latestVersion})\n`);
|
|
451
|
+
return 0;
|
|
452
|
+
}
|
|
453
|
+
const plan = await createUpdatePlan(inspection, (dependencies.now ?? (() => new Date()))());
|
|
454
|
+
const visiblePlan = publicUpdatePlan(plan);
|
|
455
|
+
if (parsed.dryRun) {
|
|
456
|
+
if (parsed.json)
|
|
457
|
+
stdout(`${JSON.stringify(visiblePlan, null, 2)}\n`);
|
|
458
|
+
else
|
|
459
|
+
stdout(`Update preview: run ${plan.installCommand.join(" ")}; back up ${plan.configPath}; remove ${plan.staleWrappers.length} manifest-verified stale wrapper(s). No changes made.\n`);
|
|
460
|
+
return 0;
|
|
461
|
+
}
|
|
462
|
+
const { dryRun: _dryRun, ...executionPlan } = visiblePlan;
|
|
463
|
+
const preview = `Update preview: run ${plan.installCommand.join(" ")}; back up ${plan.configPath}; remove ${plan.staleWrappers.length} manifest-verified stale wrapper(s).\n`;
|
|
464
|
+
if (!parsed.json)
|
|
465
|
+
stdout(preview);
|
|
466
|
+
if (!parsed.yes) {
|
|
467
|
+
const confirmed = await (dependencies.confirm ?? defaultConfirm)("Apply this exact-version update and verified stale-wrapper cleanup?");
|
|
468
|
+
if (!confirmed) {
|
|
469
|
+
if (parsed.json) {
|
|
470
|
+
stdout(`${JSON.stringify({
|
|
471
|
+
plan: executionPlan,
|
|
472
|
+
result: { applied: false, cancelled: true },
|
|
473
|
+
}, null, 2)}\n`);
|
|
474
|
+
}
|
|
475
|
+
else {
|
|
476
|
+
stdout("Update cancelled; no changes made.\n");
|
|
477
|
+
}
|
|
478
|
+
return 0;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
const currentConfig = await readFile(plan.configPath);
|
|
482
|
+
if (!currentConfig.equals(plan.configSnapshot)) {
|
|
483
|
+
throw new Error("Configuration changed after preview; no changes were applied");
|
|
484
|
+
}
|
|
485
|
+
const currentMode = (await stat(plan.configPath)).mode & 0o777;
|
|
486
|
+
if (currentMode !== plan.configMode) {
|
|
487
|
+
throw new Error("Configuration permissions changed after preview; no changes were applied");
|
|
488
|
+
}
|
|
489
|
+
await writeFile(plan.backupPath, plan.configSnapshot, {
|
|
490
|
+
flag: "wx",
|
|
491
|
+
mode: plan.configMode,
|
|
492
|
+
});
|
|
493
|
+
await chmod(plan.backupPath, plan.configMode);
|
|
494
|
+
const configAfterBackup = await readFile(plan.configPath);
|
|
495
|
+
if (!configAfterBackup.equals(plan.configSnapshot)) {
|
|
496
|
+
throw new Error("Configuration changed after backup; no installer was invoked");
|
|
497
|
+
}
|
|
498
|
+
const [command, ...args] = plan.installCommand;
|
|
499
|
+
if (!command)
|
|
500
|
+
throw new Error("Update plan did not contain an installer command");
|
|
501
|
+
const controller = new AbortController();
|
|
502
|
+
const installerTimedOut = Symbol("installerTimedOut");
|
|
503
|
+
let timeout;
|
|
504
|
+
const timeoutResult = new Promise((resolveTimeout) => {
|
|
505
|
+
timeout = setTimeout(() => {
|
|
506
|
+
controller.abort();
|
|
507
|
+
resolveTimeout(installerTimedOut);
|
|
508
|
+
}, dependencies.installerTimeoutMs ?? INSTALLER_TIMEOUT_MS);
|
|
509
|
+
});
|
|
510
|
+
let installResult;
|
|
511
|
+
try {
|
|
512
|
+
installResult = await Promise.race([
|
|
513
|
+
(dependencies.runCommand ?? defaultRunCommand)(command, args, { signal: controller.signal }),
|
|
514
|
+
timeoutResult,
|
|
515
|
+
]);
|
|
516
|
+
}
|
|
517
|
+
finally {
|
|
518
|
+
if (timeout)
|
|
519
|
+
clearTimeout(timeout);
|
|
520
|
+
}
|
|
521
|
+
if (installResult === installerTimedOut) {
|
|
522
|
+
throw new Error(`OpenCode installer timed out; configuration backup retained at ${plan.backupPath}`);
|
|
523
|
+
}
|
|
524
|
+
if (installResult.code !== 0) {
|
|
525
|
+
throw new Error(`OpenCode installer failed; configuration backup retained at ${plan.backupPath}`);
|
|
526
|
+
}
|
|
527
|
+
if (!(await configuredWithExactVersion(plan.configPath, plan.targetVersion))) {
|
|
528
|
+
throw new Error(`OpenCode installer did not pin ${PACKAGE_NAME}@${plan.targetVersion}; backup retained at ${plan.backupPath}`);
|
|
529
|
+
}
|
|
530
|
+
const installedVersion = await exactInstalledVersion(plan.cacheDir, plan.targetVersion);
|
|
531
|
+
if (installedVersion !== plan.targetVersion) {
|
|
532
|
+
throw new Error(`OpenCode installer did not produce the expected package version; backup retained at ${plan.backupPath}`);
|
|
533
|
+
}
|
|
534
|
+
const removedStaleWrappers = [];
|
|
535
|
+
for (const candidate of plan.staleWrappers) {
|
|
536
|
+
try {
|
|
537
|
+
await removeVerifiedStaleWrapper(candidate, plan);
|
|
538
|
+
removedStaleWrappers.push(candidate.path);
|
|
539
|
+
}
|
|
540
|
+
catch (error) {
|
|
541
|
+
const cause = error instanceof Error ? error.message : String(error);
|
|
542
|
+
const removed = removedStaleWrappers.join(", ") || "none";
|
|
543
|
+
throw new Error(`Plugin update was installed and verified, but stale-wrapper cleanup failed; removed: ${removed}; backup retained at ${plan.backupPath}; cause: ${cause}`, { cause: error });
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
const remainingInstallations = await inspectInstallations(plan.cacheDir, plan.targetVersion);
|
|
547
|
+
const result = {
|
|
548
|
+
applied: true,
|
|
549
|
+
packageName: PACKAGE_NAME,
|
|
550
|
+
targetVersion: plan.targetVersion,
|
|
551
|
+
backupPath: plan.backupPath,
|
|
552
|
+
installedSpec: `${PACKAGE_NAME}@${plan.targetVersion}`,
|
|
553
|
+
removedStaleWrappers,
|
|
554
|
+
verification: {
|
|
555
|
+
configured: true,
|
|
556
|
+
installedVersion,
|
|
557
|
+
staleWrappers: remainingInstallations.filter(({ stale }) => stale).length,
|
|
558
|
+
},
|
|
559
|
+
};
|
|
560
|
+
if (parsed.json)
|
|
561
|
+
stdout(`${JSON.stringify({ plan: executionPlan, result }, null, 2)}\n`);
|
|
562
|
+
else
|
|
563
|
+
stdout(`Update applied and verified: ${PACKAGE_NAME}@${plan.targetVersion}. Restart OpenCode.\n`);
|
|
564
|
+
return 0;
|
|
565
|
+
}
|
|
566
|
+
catch (error) {
|
|
567
|
+
stderr(`Flema Engram maintenance failed: ${error instanceof Error ? error.message : String(error)}\n`);
|
|
568
|
+
return 1;
|
|
569
|
+
}
|
|
570
|
+
}
|
|
571
|
+
//# sourceMappingURL=cli.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/maintenance/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maintenance.d.ts","sourceRoot":"","sources":["../src/maintenance.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"maintenance.js","sourceRoot":"","sources":["../src/maintenance.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,CAAC,QAAQ,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC"}
|
|
@@ -85,5 +85,6 @@ export declare function fetchSidebarRefresh(adapter: EngramAdapter, options?: Pi
|
|
|
85
85
|
onTransition?: (transition: SidebarStageTransition) => void;
|
|
86
86
|
}): Promise<SidebarRefreshInput>;
|
|
87
87
|
export declare function useEngram(adapter: EngramAdapter, options?: UseEngramOptions): UseEngramReturn;
|
|
88
|
+
export declare function withStageTimeout<T>(promise: Promise<T>, stage: string, timeoutMs: number, endpoint?: string): Promise<T>;
|
|
88
89
|
export declare function outcomeFor(input: SidebarRefreshInput): SidebarRefreshOutcome;
|
|
89
90
|
//# sourceMappingURL=use-engram.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-engram.d.ts","sourceRoot":"","sources":["../../../src/sidebar/hooks/use-engram.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoC,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,KAAK,EACV,aAAa,EACb,aAAa,EACb,YAAY,EACZ,WAAW,EACX,OAAO,EACR,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAkC,KAAK,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAE7F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAIzE,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AAE7E,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,YAAY,CAAC;AAEvD,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAE/B,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,GAAG,CAAC,EAAE,QAAQ,CAAC;IAEf,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,cAAc,EAAE,WAAW,EAAE,CAAC;IAC9B,MAAM,EAAE,aAAa,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,CAAC,EAAE,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,SAAS,GAAG,2BAA2B,CAAC;IAChD,KAAK,EAAE,qBAAqB,GAAG,SAAS,GAAG,SAAS,CAAC;IACrD,MAAM,EAAE,aAAa,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAClD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;IAClC,OAAO,EAAE,MAAM,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC9C,eAAe,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC;CACtD;AA0BD,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,MAAM,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAClC,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,GAAG,EAAE,IAAI,CAAC;CACX;AAED,MAAM,MAAM,mBAAmB,GAAG,oBAAoB,GAAG,QAAQ,GAAG,UAAU,GAAG,cAAc,GAAG,SAAS,CAAC;AAE5G,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,MAAM,2BAA2B,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC3E,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG,2BAA2B,GAAG,SAAS,CAAC;AAC1F,MAAM,MAAM,qBAAqB,GAC7B,oBAAoB,GACpB,QAAQ,GACR,UAAU,GACV,uBAAuB,GACvB,uBAAuB,GACvB,UAAU,GACV,UAAU,CAAC;AAEf,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,MAAM,EAAE,uBAAuB,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,2BAA2B,CAAC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,qBAAqB,EAAE,CAAC;IAClC,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,sBAAsB,EAAE,CAAC;CAClC;AAOD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE,mBAAmB,GACzB,gBAAgB,CAuElB;AAED,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,IAAI,CAAC,gBAAgB,EAAE,aAAa,GAAG,YAAY,GAAG,gBAAgB,GAAG,KAAK,GAAG,gBAAgB,CAAC,GAAG;IAC5G,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,sBAAsB,KAAK,IAAI,CAAC;CACxD,GACL,OAAO,CAAC,mBAAmB,CAAC,CA+F9B;AAgGD,wBAAgB,SAAS,CACvB,OAAO,EAAE,aAAa,EACtB,OAAO,GAAE,gBAAqB,GAC7B,eAAe,CAmIjB;
|
|
1
|
+
{"version":3,"file":"use-engram.d.ts","sourceRoot":"","sources":["../../../src/sidebar/hooks/use-engram.ts"],"names":[],"mappings":"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"}
|