fastrmemory 0.4.0 → 0.6.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.
Files changed (149) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/.claude-plugin/plugin.json +2 -2
  3. package/.cursor/mcp.json +1 -1
  4. package/.cursor/skills/fastr-setup/SKILL.md +4 -4
  5. package/.cursor/skills/skills.json +1 -1
  6. package/README.md +87 -36
  7. package/dist/bin/fastr.js +131 -17
  8. package/dist/bin/fastr.js.map +1 -1
  9. package/dist/src/bench/harness.d.ts.map +1 -1
  10. package/dist/src/bench/harness.js +4 -0
  11. package/dist/src/bench/harness.js.map +1 -1
  12. package/dist/src/bench/marker-corpus.d.ts +98 -0
  13. package/dist/src/bench/marker-corpus.d.ts.map +1 -0
  14. package/dist/src/bench/marker-corpus.js +306 -0
  15. package/dist/src/bench/marker-corpus.js.map +1 -0
  16. package/dist/src/bench/mcp-stdio.d.ts +55 -0
  17. package/dist/src/bench/mcp-stdio.d.ts.map +1 -0
  18. package/dist/src/bench/mcp-stdio.js +146 -0
  19. package/dist/src/bench/mcp-stdio.js.map +1 -0
  20. package/dist/src/bench/public-datasets.d.ts +2 -0
  21. package/dist/src/bench/public-datasets.d.ts.map +1 -1
  22. package/dist/src/bench/public-datasets.js +2 -1
  23. package/dist/src/bench/public-datasets.js.map +1 -1
  24. package/dist/src/bench/public-harness.d.ts +14 -0
  25. package/dist/src/bench/public-harness.d.ts.map +1 -1
  26. package/dist/src/bench/public-harness.js +83 -8
  27. package/dist/src/bench/public-harness.js.map +1 -1
  28. package/dist/src/bench/public-pins.js +5 -5
  29. package/dist/src/bench/public-pins.js.map +1 -1
  30. package/dist/src/bench/split.d.ts +33 -0
  31. package/dist/src/bench/split.d.ts.map +1 -0
  32. package/dist/src/bench/split.js +56 -0
  33. package/dist/src/bench/split.js.map +1 -0
  34. package/dist/src/bench/stats.d.ts +40 -0
  35. package/dist/src/bench/stats.d.ts.map +1 -0
  36. package/dist/src/bench/stats.js +99 -0
  37. package/dist/src/bench/stats.js.map +1 -0
  38. package/dist/src/bench/vs-engines.d.ts +51 -0
  39. package/dist/src/bench/vs-engines.d.ts.map +1 -0
  40. package/dist/src/bench/vs-engines.js +121 -0
  41. package/dist/src/bench/vs-engines.js.map +1 -0
  42. package/dist/src/config.d.ts +33 -0
  43. package/dist/src/config.d.ts.map +1 -1
  44. package/dist/src/config.js +84 -1
  45. package/dist/src/config.js.map +1 -1
  46. package/dist/src/db/doctor.d.ts +8 -0
  47. package/dist/src/db/doctor.d.ts.map +1 -1
  48. package/dist/src/db/doctor.js +65 -1
  49. package/dist/src/db/doctor.js.map +1 -1
  50. package/dist/src/db/fts-queue.d.ts +35 -0
  51. package/dist/src/db/fts-queue.d.ts.map +1 -0
  52. package/dist/src/db/fts-queue.js +78 -0
  53. package/dist/src/db/fts-queue.js.map +1 -0
  54. package/dist/src/db/repository.d.ts +63 -1
  55. package/dist/src/db/repository.d.ts.map +1 -1
  56. package/dist/src/db/repository.js +244 -50
  57. package/dist/src/db/repository.js.map +1 -1
  58. package/dist/src/db/schema.d.ts +1 -1
  59. package/dist/src/db/schema.d.ts.map +1 -1
  60. package/dist/src/db/schema.js +63 -2
  61. package/dist/src/db/schema.js.map +1 -1
  62. package/dist/src/installer/copilot.d.ts +21 -0
  63. package/dist/src/installer/copilot.d.ts.map +1 -1
  64. package/dist/src/installer/copilot.js +72 -1
  65. package/dist/src/installer/copilot.js.map +1 -1
  66. package/dist/src/installer/gemini.d.ts +13 -0
  67. package/dist/src/installer/gemini.d.ts.map +1 -1
  68. package/dist/src/installer/gemini.js +64 -1
  69. package/dist/src/installer/gemini.js.map +1 -1
  70. package/dist/src/installer/hooks.d.ts +42 -5
  71. package/dist/src/installer/hooks.d.ts.map +1 -1
  72. package/dist/src/installer/hooks.js +270 -62
  73. package/dist/src/installer/hooks.js.map +1 -1
  74. package/dist/src/installer/json-config.d.ts +25 -1
  75. package/dist/src/installer/json-config.d.ts.map +1 -1
  76. package/dist/src/installer/json-config.js +95 -2
  77. package/dist/src/installer/json-config.js.map +1 -1
  78. package/dist/src/installer/mcp-command.d.ts +19 -0
  79. package/dist/src/installer/mcp-command.d.ts.map +1 -0
  80. package/dist/src/installer/mcp-command.js +57 -0
  81. package/dist/src/installer/mcp-command.js.map +1 -0
  82. package/dist/src/installer/mcp-init.d.ts +16 -0
  83. package/dist/src/installer/mcp-init.d.ts.map +1 -1
  84. package/dist/src/installer/mcp-init.js +34 -13
  85. package/dist/src/installer/mcp-init.js.map +1 -1
  86. package/dist/src/installer/opencode.d.ts +18 -0
  87. package/dist/src/installer/opencode.d.ts.map +1 -1
  88. package/dist/src/installer/opencode.js +81 -1
  89. package/dist/src/installer/opencode.js.map +1 -1
  90. package/dist/src/installer/setup.d.ts +7 -11
  91. package/dist/src/installer/setup.d.ts.map +1 -1
  92. package/dist/src/installer/setup.js +34 -31
  93. package/dist/src/installer/setup.js.map +1 -1
  94. package/dist/src/mcp/profiles.d.ts +9 -6
  95. package/dist/src/mcp/profiles.d.ts.map +1 -1
  96. package/dist/src/mcp/profiles.js +12 -9
  97. package/dist/src/mcp/profiles.js.map +1 -1
  98. package/dist/src/mcp/server.d.ts +1 -1
  99. package/dist/src/mcp/server.d.ts.map +1 -1
  100. package/dist/src/mcp/server.js +80 -0
  101. package/dist/src/mcp/server.js.map +1 -1
  102. package/dist/src/search/aggregate.d.ts +24 -0
  103. package/dist/src/search/aggregate.d.ts.map +1 -0
  104. package/dist/src/search/aggregate.js +59 -0
  105. package/dist/src/search/aggregate.js.map +1 -0
  106. package/dist/src/search/backfill.d.ts.map +1 -1
  107. package/dist/src/search/backfill.js +7 -2
  108. package/dist/src/search/backfill.js.map +1 -1
  109. package/dist/src/search/budget.d.ts +2 -0
  110. package/dist/src/search/budget.d.ts.map +1 -1
  111. package/dist/src/search/budget.js.map +1 -1
  112. package/dist/src/search/embeddings.d.ts +35 -2
  113. package/dist/src/search/embeddings.d.ts.map +1 -1
  114. package/dist/src/search/embeddings.js +128 -5
  115. package/dist/src/search/embeddings.js.map +1 -1
  116. package/dist/src/search/hybrid-rrf.d.ts +45 -0
  117. package/dist/src/search/hybrid-rrf.d.ts.map +1 -1
  118. package/dist/src/search/hybrid-rrf.js +212 -56
  119. package/dist/src/search/hybrid-rrf.js.map +1 -1
  120. package/dist/src/search/static-model-install.d.ts +43 -0
  121. package/dist/src/search/static-model-install.d.ts.map +1 -0
  122. package/dist/src/search/static-model-install.js +112 -0
  123. package/dist/src/search/static-model-install.js.map +1 -0
  124. package/dist/src/search/static-model.d.ts +63 -0
  125. package/dist/src/search/static-model.d.ts.map +1 -0
  126. package/dist/src/search/static-model.js +244 -0
  127. package/dist/src/search/static-model.js.map +1 -0
  128. package/dist/src/search/temporal.d.ts +32 -0
  129. package/dist/src/search/temporal.d.ts.map +1 -0
  130. package/dist/src/search/temporal.js +164 -0
  131. package/dist/src/search/temporal.js.map +1 -0
  132. package/dist/src/ui/server.d.ts.map +1 -1
  133. package/dist/src/ui/server.js +10 -0
  134. package/dist/src/ui/server.js.map +1 -1
  135. package/dist-ui/assets/{ActionsPage-B3quzFNF.js → ActionsPage-CI-IRMeS.js} +1 -1
  136. package/dist-ui/assets/{GraphPage-DetiATmC.js → GraphPage-BdYMF7yz.js} +1 -1
  137. package/dist-ui/assets/{ObservatoryPage-QIGMwENf.js → ObservatoryPage-BG_vg8B9.js} +1 -1
  138. package/dist-ui/assets/{TreemapPage-C7uLZd37.js → TreemapPage-CZreyyLA.js} +1 -1
  139. package/dist-ui/assets/index-Ca9pma3Q.css +1 -0
  140. package/dist-ui/assets/{index-DWAH--Fu.js → index-MlNuiu0T.js} +17 -17
  141. package/dist-ui/assets/{maximize-2-BebkGbZA.js → maximize-2-_nvSvCC7.js} +1 -1
  142. package/dist-ui/build-manifest.json +11 -11
  143. package/dist-ui/index.html +2 -2
  144. package/llms-install.md +3 -3
  145. package/package.json +5 -1
  146. package/server.json +1 -1
  147. package/skills/fastr-setup/SKILL.md +4 -4
  148. package/skills/skills.json +1 -1
  149. package/dist-ui/assets/index-BJnPINTu.css +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"json-config.d.ts","sourceRoot":"","sources":["../../../src/installer/json-config.ts"],"names":[],"mappings":"AAGA,qBAAa,gBAAiB,SAAQ,KAAK;IACtB,QAAQ,EAAE,MAAM;gBAAhB,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAGnD;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,gBAAgB,CA6ClH;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,yGAAyG;AACzG,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI,CAKtG;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAE5D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI,CA6B3F"}
1
+ {"version":3,"file":"json-config.d.ts","sourceRoot":"","sources":["../../../src/installer/json-config.ts"],"names":[],"mappings":"AAGA,qBAAa,gBAAiB,SAAQ,KAAK;IACtB,QAAQ,EAAE,MAAM;gBAAhB,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAGnD;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,EAC7C,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GACjC,gBAAgB,CA+ClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9B;AAED,yGAAyG;AACzG,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI,CAKtG;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAOlF;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAE5D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI,CA6B3F;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAqCrE;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,MAAM,EAChB,SAAS,GAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,OAAsD,GACjG,OAAO,CAcT"}
@@ -15,7 +15,7 @@ export class ConfigParseError extends Error {
15
15
  * - Writes atomically (temp file + rename) so a concurrent reader never sees a half-written file.
16
16
  * - Skips the write entirely when the mutation produces no change.
17
17
  */
18
- export function updateJsonConfig(filePath, mutate) {
18
+ export function updateJsonConfig(filePath, mutate, options = {}) {
19
19
  const exists = fs.existsSync(filePath);
20
20
  let original = '';
21
21
  let config = {};
@@ -40,7 +40,9 @@ export function updateJsonConfig(filePath, mutate) {
40
40
  }
41
41
  fs.mkdirSync(path.dirname(filePath), { recursive: true });
42
42
  let backupPath;
43
- if (exists && original.trim()) {
43
+ // Uninstall passes backup: false so removing an entry never overwrites the recovery point
44
+ // that install wrote, and never creates one for a file it is about to delete.
45
+ if (options.backup !== false && exists && original.trim()) {
44
46
  backupPath = `${filePath}.fastr.bak`;
45
47
  if (!fs.existsSync(backupPath)) {
46
48
  fs.writeFileSync(backupPath, original, 'utf-8');
@@ -67,6 +69,22 @@ export function upsertMcpServer(config, name, entry) {
67
69
  }
68
70
  config.mcpServers[name] = entry;
69
71
  }
72
+ /**
73
+ * Removes one server entry and prunes the containers it leaves empty, so an uninstall returns
74
+ * the file to the shape the user had before install instead of leaving `{"mcpServers": {}}`.
75
+ * Returns true when an entry was actually removed.
76
+ */
77
+ export function removeMcpServer(config, name) {
78
+ const servers = config.mcpServers;
79
+ if (!servers || typeof servers !== 'object' || Array.isArray(servers))
80
+ return false;
81
+ if (!Object.prototype.hasOwnProperty.call(servers, name))
82
+ return false;
83
+ delete servers[name];
84
+ if (Object.keys(servers).length === 0)
85
+ delete config.mcpServers;
86
+ return true;
87
+ }
70
88
  /**
71
89
  * Recognises hook commands this installer wrote (now or in older versions), e.g.
72
90
  * `fastrmemory hook run SessionStart`, `node "/x/dist/bin/fastr.js" hook run PreToolUse`,
@@ -111,4 +129,79 @@ export function mergeClaudeHooks(config, specs) {
111
129
  config.hooks[spec.event] = groups;
112
130
  }
113
131
  }
132
+ /**
133
+ * Removes every hook group this installer wrote and prunes the events and the `hooks` object
134
+ * that are left empty. User hooks in the same file survive untouched.
135
+ *
136
+ * Returns the number of command hooks removed.
137
+ */
138
+ export function removeClaudeHooks(config) {
139
+ const hooks = config.hooks;
140
+ if (!hooks || typeof hooks !== 'object' || Array.isArray(hooks))
141
+ return 0;
142
+ let removed = 0;
143
+ for (const event of Object.keys(hooks)) {
144
+ const current = hooks[event];
145
+ if (typeof current === 'string') {
146
+ // Legacy bare-string form written by older versions.
147
+ if (isFastrHookCommand(current)) {
148
+ delete hooks[event];
149
+ removed++;
150
+ }
151
+ continue;
152
+ }
153
+ if (!Array.isArray(current))
154
+ continue;
155
+ const keptGroups = [];
156
+ for (const group of current) {
157
+ if (!group || !Array.isArray(group.hooks)) {
158
+ keptGroups.push(group);
159
+ continue;
160
+ }
161
+ const kept = group.hooks.filter((hook) => {
162
+ if (!isFastrHookCommand(hook?.command))
163
+ return true;
164
+ removed++;
165
+ return false;
166
+ });
167
+ if (kept.length > 0)
168
+ keptGroups.push({ ...group, hooks: kept });
169
+ }
170
+ if (keptGroups.length === 0)
171
+ delete hooks[event];
172
+ else
173
+ hooks[event] = keptGroups;
174
+ }
175
+ if (Object.keys(hooks).length === 0)
176
+ delete config.hooks;
177
+ return removed;
178
+ }
179
+ /**
180
+ * Deletes a JSON file when the mutation left nothing of the user's own in it, so an uninstall
181
+ * does not leave a `{}` file behind in a project that had no such config before install.
182
+ *
183
+ * Deliberately does not touch the one-time `.fastr.bak` that install may have written: the
184
+ * backup is a recovery point, and restoring it here could resurrect keys the user deleted
185
+ * after installing.
186
+ */
187
+ export function deleteJsonConfigIfTrivial(filePath, isTrivial = (config) => Object.keys(config).length === 0) {
188
+ if (!fs.existsSync(filePath))
189
+ return false;
190
+ const raw = fs.readFileSync(filePath, 'utf-8');
191
+ if (!raw.trim())
192
+ return false;
193
+ let config;
194
+ try {
195
+ config = JSON.parse(raw);
196
+ }
197
+ catch {
198
+ return false;
199
+ }
200
+ if (config === null || typeof config !== 'object' || Array.isArray(config))
201
+ return false;
202
+ if (!isTrivial(config))
203
+ return false;
204
+ fs.unlinkSync(filePath);
205
+ return true;
206
+ }
114
207
  //# sourceMappingURL=json-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"json-config.js","sourceRoot":"","sources":["../../../src/installer/json-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"json-config.js","sourceRoot":"","sources":["../../../src/installer/json-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { McpServerEntry } from './json-config.js';
2
+ /** Locate the CLI that belongs to this package copy. */
3
+ export declare function findOwnCliPath(): string | null;
4
+ /**
5
+ * The command MCP clients should spawn. MCP clients launch servers without a shell, so on Windows
6
+ * the `fastrmemory.cmd` npm shim cannot be executed directly. Pointing `node` at the package's own
7
+ * CLI works on every platform; `npx` (wrapped in `cmd /c` on Windows) is the fallback when this
8
+ * copy lives in a throwaway npx cache.
9
+ */
10
+ export declare function resolveMcpCommand(platform?: NodeJS.Platform, cliPath?: string | null): McpServerEntry;
11
+ /** Pin a user-scoped MCP entry to a project root so the client's launch directory cannot change the database. */
12
+ export declare function withProjectRoot(entry: McpServerEntry, projectRoot: string): McpServerEntry;
13
+ export type McpCommandOrigin = 'source' | 'installed' | 'registry';
14
+ /**
15
+ * Classify where an MCP entry will load its CLI from. A `node` entry inside the
16
+ * current checkout is source; one outside it, or under node_modules, is installed.
17
+ */
18
+ export declare function classifyMcpCommand(entry: McpServerEntry, projectRoot?: string): McpCommandOrigin;
19
+ //# sourceMappingURL=mcp-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-command.d.ts","sourceRoot":"","sources":["../../../src/installer/mcp-command.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAKlD,wDAAwD;AACxD,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAM9C;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,GAAE,MAAM,CAAC,QAA2B,EAC5C,OAAO,GAAE,MAAM,GAAG,IAAuB,GACxC,cAAc,CAWhB;AAED,iHAAiH;AACjH,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc,CAE1F;AAED,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAEnE;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,cAAc,EACrB,WAAW,CAAC,EAAE,MAAM,GACnB,gBAAgB,CAYlB"}
@@ -0,0 +1,57 @@
1
+ import * as fs from 'node:fs';
2
+ import * as path from 'node:path';
3
+ import { fileURLToPath } from 'node:url';
4
+ import { PACKAGE_VERSION } from '../version.js';
5
+ const __filename = fileURLToPath(import.meta.url);
6
+ const __dirname = path.dirname(__filename);
7
+ /** Locate the CLI that belongs to this package copy. */
8
+ export function findOwnCliPath() {
9
+ const candidates = [
10
+ path.resolve(__dirname, '..', '..', 'bin', 'fastr.js'), // dist/src/installer -> dist/bin/fastr.js
11
+ path.resolve(__dirname, '..', '..', 'dist', 'bin', 'fastr.js'), // src/installer -> dist/bin/fastr.js
12
+ ];
13
+ return candidates.find((candidate) => fs.existsSync(candidate)) ?? null;
14
+ }
15
+ /**
16
+ * The command MCP clients should spawn. MCP clients launch servers without a shell, so on Windows
17
+ * the `fastrmemory.cmd` npm shim cannot be executed directly. Pointing `node` at the package's own
18
+ * CLI works on every platform; `npx` (wrapped in `cmd /c` on Windows) is the fallback when this
19
+ * copy lives in a throwaway npx cache.
20
+ */
21
+ export function resolveMcpCommand(platform = process.platform, cliPath = findOwnCliPath()) {
22
+ const isEphemeral = cliPath !== null && /[\\/]_npx[\\/]/.test(cliPath);
23
+ if (cliPath && !isEphemeral) {
24
+ return { command: 'node', args: [cliPath, 'mcp'] };
25
+ }
26
+ // Pin the registry package and version: npx cache paths are throwaway, and a GitHub
27
+ // default-branch reference would silently change the server under existing configs.
28
+ const npxArgs = ['-y', `fastrmemory@${PACKAGE_VERSION}`, 'mcp'];
29
+ return platform === 'win32'
30
+ ? { command: 'cmd', args: ['/c', 'npx', ...npxArgs] }
31
+ : { command: 'npx', args: npxArgs };
32
+ }
33
+ /** Pin a user-scoped MCP entry to a project root so the client's launch directory cannot change the database. */
34
+ export function withProjectRoot(entry, projectRoot) {
35
+ return { ...entry, args: [...entry.args, '--project', path.resolve(projectRoot)] };
36
+ }
37
+ /**
38
+ * Classify where an MCP entry will load its CLI from. A `node` entry inside the
39
+ * current checkout is source; one outside it, or under node_modules, is installed.
40
+ */
41
+ export function classifyMcpCommand(entry, projectRoot) {
42
+ if (entry.command !== 'node')
43
+ return 'registry';
44
+ const cliPath = entry.args[0];
45
+ if (!cliPath || !projectRoot)
46
+ return 'installed';
47
+ const root = path.resolve(projectRoot);
48
+ const cli = path.resolve(cliPath);
49
+ const relative = path.relative(root, cli);
50
+ const inside = relative !== '' && !relative.startsWith('..') && !path.isAbsolute(relative);
51
+ if (!inside)
52
+ return 'installed';
53
+ if (relative.split(path.sep).includes('node_modules'))
54
+ return 'installed';
55
+ return 'source';
56
+ }
57
+ //# sourceMappingURL=mcp-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-command.js","sourceRoot":"","sources":["../../../src/installer/mcp-command.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export type McpClientId = (typeof MCP_CLIENTS)[number];
4
4
  export type McpScope = 'project' | 'user';
5
5
  export type McpChannel = 'latest' | 'pinned';
6
6
  export type McpRunner = 'npx' | 'pnpm' | 'yarn' | 'bunx';
7
+ export type McpSource = 'registry' | 'local';
7
8
  export interface McpInitOptions {
8
9
  clients: McpClientId[];
9
10
  scope?: McpScope;
@@ -12,6 +13,10 @@ export interface McpInitOptions {
12
13
  channel?: McpChannel;
13
14
  runner?: McpRunner;
14
15
  profile?: 'full' | 'core';
16
+ /** registry (portable npx) or local (the active CLI, with an absolute project root). */
17
+ source?: McpSource;
18
+ /** Overrides the active CLI path (tests and sandboxes). */
19
+ cliPath?: string | null;
15
20
  dryRun?: boolean;
16
21
  platform?: NodeJS.Platform;
17
22
  }
@@ -21,6 +26,7 @@ export interface McpInitResult {
21
26
  scope: McpScope;
22
27
  filePath: string;
23
28
  entry: McpServerEntry;
29
+ source: McpSource;
24
30
  changed: boolean;
25
31
  created: boolean;
26
32
  backupPath?: string;
@@ -37,6 +43,7 @@ export declare function parseMcpClients(value: string, scope?: McpScope): McpCli
37
43
  export declare function parseMcpScope(value: string): McpScope;
38
44
  export declare function parseMcpChannel(value: string): McpChannel;
39
45
  export declare function parseMcpRunner(value: string): McpRunner;
46
+ export declare function parseMcpSource(value: string): McpSource;
40
47
  export declare function parseMcpProfile(value: string): 'full' | 'core';
41
48
  /**
42
49
  * Build a portable MCP entry. The generated config names the package instead of embedding an
@@ -49,6 +56,15 @@ export declare function buildRegistryMcpEntry(options?: {
49
56
  platform?: NodeJS.Platform;
50
57
  packageVersion?: string;
51
58
  }): McpServerEntry;
59
+ /**
60
+ * Build a non-portable MCP entry that points at the active CLI. This avoids npx cold starts
61
+ * and is the right choice for a globally installed CLI or a local development checkout.
62
+ */
63
+ export declare function buildLocalMcpEntry(options?: {
64
+ profile?: 'full' | 'core';
65
+ platform?: NodeJS.Platform;
66
+ cliPath?: string | null;
67
+ }): McpServerEntry;
52
68
  /**
53
69
  * Configure one or more MCP clients. Existing JSON is merged, backed up once, and never
54
70
  * overwritten when it cannot be parsed. Codex is printed as TOML because a safe rewrite of a
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-init.d.ts","sourceRoot":"","sources":["../../../src/installer/mcp-init.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,cAAc,EAGf,MAAM,kBAAkB,CAAC;AAI1B,eAAO,MAAM,WAAW,gIAWd,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC;AACvD,MAAM,MAAM,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;AAC1C,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC7C,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,KAAK,CAAC,EAAE,QAAQ,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;CAC5B;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,QAAQ,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,cAAc,CAAC;IACtB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAoBD,eAAO,MAAM,mBAAmB,EAAE,WAAW,EAO5C,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,WAAW,EASzC,CAAC;AAEF,qBAAa,YAAa,SAAQ,KAAK;gBACzB,OAAO,EAAE,MAAM;CAI5B;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,QAAoB,GAAG,WAAW,EAAE,CAqBzF;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAGrD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAGzD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAGvD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAG9D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,GAAE;IAC7C,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,cAAc,CAiCtB;AAwFD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,aAAa,EAAE,CA4DvE;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAcjE;AAED,mGAAmG;AACnG,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,KAAK,IAAI,WAAW,CAE/D;AAED,iDAAiD;AACjD,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,GAAG,MAAM,CAE7D;AAED,iGAAiG;AACjG,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO,CAEtE"}
1
+ {"version":3,"file":"mcp-init.d.ts","sourceRoot":"","sources":["../../../src/installer/mcp-init.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ import { PACKAGE_VERSION } from '../version.js';
4
4
  import { updateJsonConfig, upsertMcpServer, } from './json-config.js';
5
5
  import { resolveOpenCodeConfigPath, upsertOpenCodeMcpServer } from './opencode.js';
6
6
  import { getAntigravityConfigPath, getClaudeDesktopConfigPath } from './setup.js';
7
+ import { resolveMcpCommand, withProjectRoot } from './mcp-command.js';
7
8
  export const MCP_CLIENTS = [
8
9
  'claude',
9
10
  'cursor',
@@ -85,6 +86,11 @@ export function parseMcpRunner(value) {
85
86
  return value;
86
87
  throw new McpInitError('Runner must be "npx", "pnpm", "yarn", or "bunx".');
87
88
  }
89
+ export function parseMcpSource(value) {
90
+ if (value === 'registry' || value === 'local')
91
+ return value;
92
+ throw new McpInitError('Source must be "registry" or "local".');
93
+ }
88
94
  export function parseMcpProfile(value) {
89
95
  if (value === 'full' || value === 'core')
90
96
  return value;
@@ -97,7 +103,7 @@ export function parseMcpProfile(value) {
97
103
  export function buildRegistryMcpEntry(options = {}) {
98
104
  const channel = options.channel ?? 'latest';
99
105
  const runner = options.runner ?? 'npx';
100
- const profile = options.profile ?? 'full';
106
+ const profile = options.profile ?? 'core';
101
107
  const packageSpec = channel === 'pinned'
102
108
  ? `fastrmemory@${options.packageVersion ?? PACKAGE_VERSION}`
103
109
  : 'fastrmemory@latest';
@@ -118,14 +124,24 @@ export function buildRegistryMcpEntry(options = {}) {
118
124
  args = [packageSpec, 'mcp'];
119
125
  break;
120
126
  }
121
- if (profile === 'core')
122
- args.push('--profile', 'core');
127
+ // Always pin the profile: a generated config must not depend on the server's default,
128
+ // which changed from full to core.
129
+ args.push('--profile', profile);
123
130
  if ((options.platform ?? process.platform) === 'win32') {
124
131
  // MCP clients spawn servers without a shell; npm/pnpm/yarn/bunx shims are .cmd files.
125
132
  return { command: 'cmd', args: ['/c', runner, ...args] };
126
133
  }
127
134
  return { command: runner, args };
128
135
  }
136
+ /**
137
+ * Build a non-portable MCP entry that points at the active CLI. This avoids npx cold starts
138
+ * and is the right choice for a globally installed CLI or a local development checkout.
139
+ */
140
+ export function buildLocalMcpEntry(options = {}) {
141
+ const entry = resolveMcpCommand(options.platform ?? process.platform, options.cliPath);
142
+ entry.args.push('--profile', options.profile ?? 'core');
143
+ return entry;
144
+ }
129
145
  function resolveVsCodeUserConfig(homeDir, platform) {
130
146
  if (platform === 'win32') {
131
147
  const appData = homeDir === os.homedir() && process.env.APPDATA
@@ -170,9 +186,6 @@ function resolveClientPath(client, scope, projectRoot, homeDir, platform) {
170
186
  return path.join(homeDir, '.codex', 'config.toml');
171
187
  }
172
188
  }
173
- function withProjectRoot(entry, projectRoot) {
174
- return { ...entry, args: [...entry.args, '--project', path.resolve(projectRoot)] };
175
- }
176
189
  function buildCodexToml(entry) {
177
190
  const args = entry.args.map((arg) => JSON.stringify(arg)).join(', ');
178
191
  return [
@@ -212,13 +225,20 @@ export function initMcpClients(options) {
212
225
  const homeDir = options.homeDir ?? os.homedir();
213
226
  const platform = options.platform ?? process.platform;
214
227
  const dryRun = options.dryRun ?? false;
215
- const baseEntry = buildRegistryMcpEntry({
216
- channel: options.channel,
217
- runner: options.runner,
218
- profile: options.profile,
219
- platform,
220
- });
221
- const entry = scope === 'user' ? withProjectRoot(baseEntry, projectRoot) : baseEntry;
228
+ const source = options.source ?? 'registry';
229
+ const baseEntry = source === 'local'
230
+ ? buildLocalMcpEntry({ profile: options.profile, platform, cliPath: options.cliPath })
231
+ : buildRegistryMcpEntry({
232
+ channel: options.channel,
233
+ runner: options.runner,
234
+ profile: options.profile,
235
+ platform,
236
+ });
237
+ // Local entries always pin the project root. Registry project configs stay portable.
238
+ const entry = source === 'local' || scope === 'user'
239
+ ? withProjectRoot(baseEntry, projectRoot)
240
+ : baseEntry;
241
+ const entrySource = entry.command === 'node' ? 'local' : 'registry';
222
242
  // Validate every requested client before the first write so a bad scope cannot leave a
223
243
  // half-configured set of clients behind.
224
244
  const specs = options.clients.map((client) => {
@@ -238,6 +258,7 @@ export function initMcpClients(options) {
238
258
  scope,
239
259
  filePath,
240
260
  entry,
261
+ source: entrySource,
241
262
  changed: false,
242
263
  created: false,
243
264
  dryRun,
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-init.js","sourceRoot":"","sources":["../../../src/installer/mcp-init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-init.js","sourceRoot":"","sources":["../../../src/installer/mcp-init.ts"],"names":[],"mappings":"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"}
@@ -26,4 +26,22 @@ export declare function buildOpenCodePlugin(command: string[]): string;
26
26
  * plugin for session-start context and pre-compaction snapshots.
27
27
  */
28
28
  export declare function installOpenCode(projectRoot: string, mcpEntry: McpServerEntry): OpenCodeInstallResult;
29
+ /** Removes the `mcp.servers.fastrmemory` entry and prunes the containers it leaves empty. */
30
+ export declare function removeOpenCodeMcpServer(config: Record<string, any>): boolean;
31
+ /** Removes the managed OpenCode plugin, and only when it still carries the managed marker. */
32
+ export declare function removeManagedPlugin(projectRoot: string): {
33
+ filePath: string;
34
+ deleted: boolean;
35
+ skipped?: string;
36
+ };
37
+ export interface OpenCodeUninstallResult {
38
+ changed: boolean;
39
+ removedMcp: boolean;
40
+ configDeleted: boolean;
41
+ pluginDeleted: boolean;
42
+ configSkipped?: string;
43
+ details: string[];
44
+ }
45
+ /** Removes the OpenCode MCP server and managed plugin, leaving every other setting untouched. */
46
+ export declare function uninstallOpenCode(projectRoot: string): OpenCodeUninstallResult;
29
47
  //# sourceMappingURL=opencode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/installer/opencode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAoB,MAAM,kBAAkB,CAAC;AAEtF,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,CAYnF;AAED,qFAAqF;AACrF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI,CAWhG;AAID,iGAAiG;AACjG,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAgD7D;AAkBD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,qBAAqB,CAyCpG"}
1
+ {"version":3,"file":"opencode.d.ts","sourceRoot":"","sources":["../../../src/installer/opencode.ts"],"names":[],"mappings":"AAEA,OAAO,EAA6B,gBAAgB,EAAE,cAAc,EAAoB,MAAM,kBAAkB,CAAC;AAEjH,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,CAYnF;AAED,qFAAqF;AACrF,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,cAAc,GAAG,IAAI,CAWhG;AAID,iGAAiG;AACjG,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAgD7D;AAkBD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,qBAAqB,CAyCpG;AAED,6FAA6F;AAC7F,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAW5E;AAED,8FAA8F;AAC9F,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAqBjH;AAED,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,EAAE,OAAO,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,iGAAiG;AACjG,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,uBAAuB,CAkC9E"}
@@ -1,6 +1,6 @@
1
1
  import * as fs from 'node:fs';
2
2
  import * as path from 'node:path';
3
- import { updateJsonConfig } from './json-config.js';
3
+ import { deleteJsonConfigIfTrivial, updateJsonConfig } from './json-config.js';
4
4
  /**
5
5
  * Pick the OpenCode config file that already exists, preferring parsable JSON over JSONC.
6
6
  * When none exists, create `opencode.json` at the project root.
@@ -142,4 +142,84 @@ export function installOpenCode(projectRoot, mcpEntry) {
142
142
  details
143
143
  };
144
144
  }
145
+ /** Removes the `mcp.servers.fastrmemory` entry and prunes the containers it leaves empty. */
146
+ export function removeOpenCodeMcpServer(config) {
147
+ const mcp = config.mcp;
148
+ if (!mcp || typeof mcp !== 'object' || Array.isArray(mcp))
149
+ return false;
150
+ const servers = mcp.servers;
151
+ if (!servers || typeof servers !== 'object' || Array.isArray(servers))
152
+ return false;
153
+ if (!Object.prototype.hasOwnProperty.call(servers, 'fastrmemory'))
154
+ return false;
155
+ delete servers.fastrmemory;
156
+ if (Object.keys(servers).length === 0)
157
+ delete mcp.servers;
158
+ if (Object.keys(mcp).length === 0)
159
+ delete config.mcp;
160
+ return true;
161
+ }
162
+ /** Removes the managed OpenCode plugin, and only when it still carries the managed marker. */
163
+ export function removeManagedPlugin(projectRoot) {
164
+ const filePath = path.join(projectRoot, '.opencode', 'plugins', 'fastrmemory', 'index.ts');
165
+ if (!fs.existsSync(filePath))
166
+ return { filePath, deleted: false };
167
+ const current = fs.readFileSync(filePath, 'utf-8');
168
+ if (!current.includes(MANAGED_MARKER)) {
169
+ return { filePath, deleted: false, skipped: 'existing user-owned plugin was not removed' };
170
+ }
171
+ fs.unlinkSync(filePath);
172
+ // Remove only the directories this installer created, and only while they are empty.
173
+ for (const dir of [
174
+ path.dirname(filePath),
175
+ path.join(projectRoot, '.opencode', 'plugins'),
176
+ path.join(projectRoot, '.opencode')
177
+ ]) {
178
+ try {
179
+ if (fs.existsSync(dir) && fs.readdirSync(dir).length === 0)
180
+ fs.rmdirSync(dir);
181
+ }
182
+ catch {
183
+ // A non-empty or locked directory is not an uninstall failure.
184
+ }
185
+ }
186
+ return { filePath, deleted: true };
187
+ }
188
+ /** Removes the OpenCode MCP server and managed plugin, leaving every other setting untouched. */
189
+ export function uninstallOpenCode(projectRoot) {
190
+ const details = [];
191
+ const target = resolveOpenCodeConfigPath(projectRoot);
192
+ let removedMcp = false;
193
+ let configDeleted = false;
194
+ let configSkipped;
195
+ if (!fs.existsSync(target.filePath)) {
196
+ details.push('OpenCode MCP server: not configured');
197
+ }
198
+ else if (target.jsonc) {
199
+ configSkipped = `OpenCode config is JSONC (${path.relative(projectRoot, target.filePath)}); remove the fastrmemory MCP server manually`;
200
+ details.push(`OpenCode MCP server: ${configSkipped}`);
201
+ }
202
+ else {
203
+ updateJsonConfig(target.filePath, (draft) => {
204
+ removedMcp = removeOpenCodeMcpServer(draft);
205
+ }, { backup: false });
206
+ configDeleted = deleteJsonConfigIfTrivial(target.filePath);
207
+ const rel = path.relative(projectRoot, target.filePath) || target.filePath;
208
+ details.push(removedMcp ? `OpenCode MCP server: removed from ${rel}` : `OpenCode MCP server: not present in ${rel}`);
209
+ }
210
+ const plugin = removeManagedPlugin(projectRoot);
211
+ const pluginRel = path.relative(projectRoot, plugin.filePath) || plugin.filePath;
212
+ if (plugin.skipped)
213
+ details.push(`OpenCode plugin: ${plugin.skipped} (${pluginRel})`);
214
+ else
215
+ details.push(plugin.deleted ? `OpenCode plugin: removed ${pluginRel}` : 'OpenCode plugin: not present');
216
+ return {
217
+ changed: removedMcp || configDeleted || plugin.deleted,
218
+ removedMcp,
219
+ configDeleted,
220
+ pluginDeleted: plugin.deleted,
221
+ configSkipped,
222
+ details
223
+ };
224
+ }
145
225
  //# sourceMappingURL=opencode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../src/installer/opencode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../../src/installer/opencode.ts"],"names":[],"mappings":"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"}