@tryglen/cli 0.24.5 → 0.24.7

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.
@@ -1,65 +1,115 @@
1
- import { PI_PLUGIN_SOURCE } from "../_utils/agents-table.js";
1
+ import { homedir } from "node:os";
2
+ import { join } from "node:path";
2
3
  import { cliErr } from "../_utils/cli-error.js";
3
- import { isCodexHooksInstalled, uninstallCodexHooks, } from "../_utils/codex-hooks-setup.js";
4
+ import { uninstallCodexHooks } from "../_utils/codex-hooks-setup.js";
5
+ import { findBin } from "../_utils/find-bin.js";
6
+ import { uninstallPrepareCommitMsgHook } from "../_utils/git-hook-setup.js";
7
+ import { installReceipt } from "../_utils/install-receipt.js";
8
+ import { purgeAgentPlugins } from "../_utils/purge-agent-plugins.js";
9
+ import { purgeClaudeStatusline } from "../_utils/purge-claude-statusline.js";
10
+ import { purgeLocalState } from "../_utils/purge-local-state.js";
4
11
  import { err, ok } from "../_utils/result.js";
5
- import { loginProfileForShell, removeGlenPathBlock, } from "../_utils/shell-profile.js";
12
+ import { runBin } from "../_utils/run-bin.js";
13
+ import { removeGlenPathBlock } from "../_utils/shell-profile.js";
6
14
  import { isInstalled } from "../_utils/which.js";
7
- /**
8
- * `glen uninstall`
9
- *
10
- * Inverse of `glen install`'s codex-hooks registration: strips glen-owned
11
- * entries from ~/.codex/hooks.json, removes glen's [hooks.state] trust
12
- * blocks, clears the install marker. Other tools' hooks are untouched.
13
- * Plugin removal itself stays with the agents' own CLIs (printed below).
14
- */
15
- const uninstall = async () => {
16
- process.stdout.write("\n 🏔️ glen — uninstall\n\n");
17
- const codexHooksPresent = await isCodexHooksInstalled();
18
- if (codexHooksPresent) {
19
- process.stdout.write(" Removing glen hooks from Codex's user config layer... ");
20
- const r = await uninstallCodexHooks();
21
- if (!r.ok) {
22
- process.stdout.write("✗\n");
23
- return err(cliErr({
24
- what: "could not remove codex hooks",
25
- why: r.error,
26
- remedy: "re-run `glen uninstall`; if it persists remove the glen entries from ~/.codex/hooks.json manually",
27
- }));
28
- }
29
- process.stdout.write("✓\n");
30
- process.stdout.write(" Note: Codex trust keys are positional — if other tools registered\n" +
31
- " hooks after glen, re-trust them via /hooks in Codex.\n");
15
+ const details = (value) => Array.isArray(value) ? value : [value];
16
+ const absentGlobalPackage = (value) => /not installed|not found|does not exist|up to date/i.test(value);
17
+ /** Completely removes every safely identifiable local artifact owned by Glen. */
18
+ const uninstall = async (context = {}) => {
19
+ process.stdout.write("\n 🏔️ glen — complete uninstall\n\n");
20
+ // Inventory everything before ~/.glen (including binary overrides and the
21
+ // receipt itself) is deleted.
22
+ const home = context.home ?? homedir();
23
+ const cwd = context.cwd ?? process.cwd();
24
+ const receipt = await installReceipt.read();
25
+ const bins = {
26
+ claude: findBin("claude"),
27
+ codex: findBin("codex"),
28
+ pi: findBin("pi"),
29
+ npm: findBin("npm"),
30
+ };
31
+ const cursorDetected = isInstalled("cursor");
32
+ const canonicalDir = join(home, ".glen");
33
+ const claudeSettingsPath = receipt?.claudeSettings?.path ??
34
+ process.env.GLEN_CLAUDE_SETTINGS_PATH ??
35
+ join(home, ".claude", "settings.json");
36
+ const profiles = [
37
+ ...(receipt?.shellProfiles ?? []),
38
+ join(home, ".zprofile"),
39
+ join(home, ".bash_profile"),
40
+ ].filter((path, index, all) => all.indexOf(path) === index);
41
+ const overrideFiles = [
42
+ ...(receipt?.statePaths ?? []),
43
+ process.env.GLEN_CREDENTIALS_PATH,
44
+ process.env.GLEN_STATE_PATH,
45
+ process.env.GLEN_AGENTS_PATH,
46
+ process.env.GLEN_INSTALL_RECEIPT_PATH,
47
+ ].filter((path) => typeof path === "string" && path.length > 0);
48
+ const residuals = [];
49
+ const plugins = await purgeAgentPlugins({
50
+ home,
51
+ claude: bins.claude,
52
+ codex: bins.codex,
53
+ pi: bins.pi,
54
+ });
55
+ if (!plugins.ok)
56
+ residuals.push(...plugins.error);
57
+ const codexHooks = await uninstallCodexHooks(receipt?.codexFiles ?? undefined);
58
+ if (!codexHooks.ok)
59
+ residuals.push(...details(codexHooks.error));
60
+ const statusline = await purgeClaudeStatusline({
61
+ path: claudeSettingsPath,
62
+ receipt: receipt?.claudeSettings ?? null,
63
+ });
64
+ if (!statusline.ok)
65
+ residuals.push(...statusline.error);
66
+ for (const snapshot of receipt?.gitHooks ?? []) {
67
+ const hook = await uninstallPrepareCommitMsgHook({ cwd, snapshot });
68
+ if (!hook.ok)
69
+ residuals.push(hook.error);
32
70
  }
33
- const codexInstalled = isInstalled("codex");
34
- const claudeInstalled = isInstalled("claude");
35
- const cursorInstalled = isInstalled("cursor");
36
- const piInstalled = isInstalled("pi");
37
- if (codexInstalled || claudeInstalled || cursorInstalled || piInstalled) {
38
- process.stdout.write("\n To remove the plugins themselves:\n");
39
- if (codexInstalled) {
40
- process.stdout.write(" codex plugin remove glen\n");
41
- }
42
- if (claudeInstalled) {
43
- process.stdout.write(" claude plugin uninstall glen@glen\n");
44
- }
45
- if (cursorInstalled) {
46
- process.stdout.write(" Cursor: remove the glen plugin from Cursor's plugin settings (no CLI)\n");
47
- }
48
- if (piInstalled) {
49
- process.stdout.write(` pi remove ${PI_PLUGIN_SOURCE}\n`);
71
+ const legacyHook = await uninstallPrepareCommitMsgHook({ cwd });
72
+ if (!legacyHook.ok)
73
+ residuals.push(legacyHook.error);
74
+ for (const profile of profiles) {
75
+ const removed = await removeGlenPathBlock(profile);
76
+ if (!removed.ok) {
77
+ residuals.push(`${removed.error.what} at ${profile}: ${removed.error.remedy}`);
50
78
  }
51
79
  }
52
- const profile = loginProfileForShell();
53
- if (profile) {
54
- const removed = await removeGlenPathBlock(profile.profilePath);
55
- if (removed.ok && removed.value === "removed") {
56
- process.stdout.write(`\n ✓ removed glen's PATH entry from ${profile.profilePath}\n`);
57
- }
58
- else if (!removed.ok) {
59
- process.stdout.write(`\n ⚠ ${removed.error.what} (${profile.profilePath})\n`);
80
+ const localState = await purgeLocalState({
81
+ canonicalDir,
82
+ overrideFiles,
83
+ npxRoot: join(home, ".npm", "_npx"),
84
+ });
85
+ if (!localState.ok)
86
+ residuals.push(...localState.error);
87
+ if (cursorDetected) {
88
+ residuals.push("Cursor may still contain the Glen plugin; open Cursor plugin settings (or /add-plugin) and remove Glen manually");
89
+ }
90
+ // Self-removal is intentionally last. Every earlier cleanup step can still
91
+ // rely on this running CLI even if another step fails.
92
+ if (bins.npm) {
93
+ const globalCli = runBin(bins.npm, ["uninstall", "-g", "@tryglen/cli"], {
94
+ timeoutMs: 300_000,
95
+ });
96
+ if (!globalCli.ok) {
97
+ const failure = globalCli.error.stderrTail ||
98
+ globalCli.error.spawnError ||
99
+ "npm uninstall failed";
100
+ if (!absentGlobalPackage(failure)) {
101
+ residuals.push(`${bins.npm} uninstall -g @tryglen/cli: ${failure}`);
102
+ }
60
103
  }
61
104
  }
62
- process.stdout.write("\n Credentials and session state in ~/.glen are kept (remove with `glen logout`).\n\n");
105
+ if (residuals.length > 0) {
106
+ return err(cliErr({
107
+ what: "glen uninstall left local residue",
108
+ why: residuals.join("\n"),
109
+ remedy: "run the listed cleanup steps, then re-run `glen uninstall` if the command remains available",
110
+ }));
111
+ }
112
+ process.stdout.write(" ✓ Glen has been completely removed from this machine.\n\n");
63
113
  return ok(undefined);
64
114
  };
65
115
  export { uninstall };
@@ -1 +1 @@
1
- {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../src/commands/uninstall.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tryglen/cli",
3
- "version": "0.24.5",
3
+ "version": "0.24.7",
4
4
  "description": "Glen CLI — memory for coding agents",
5
5
  "type": "module",
6
6
  "bin": {