fastrmemory 0.3.1 → 0.5.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 (38) 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 +123 -167
  7. package/dist/bin/fastr.js +64 -1
  8. package/dist/bin/fastr.js.map +1 -1
  9. package/dist/src/installer/mcp-command.d.ts +19 -0
  10. package/dist/src/installer/mcp-command.d.ts.map +1 -0
  11. package/dist/src/installer/mcp-command.js +57 -0
  12. package/dist/src/installer/mcp-command.js.map +1 -0
  13. package/dist/src/installer/mcp-init.d.ts +81 -0
  14. package/dist/src/installer/mcp-init.d.ts.map +1 -0
  15. package/dist/src/installer/mcp-init.js +315 -0
  16. package/dist/src/installer/mcp-init.js.map +1 -0
  17. package/dist/src/installer/setup.d.ts +1 -12
  18. package/dist/src/installer/setup.d.ts.map +1 -1
  19. package/dist/src/installer/setup.js +2 -31
  20. package/dist/src/installer/setup.js.map +1 -1
  21. package/dist/src/ui/server.d.ts.map +1 -1
  22. package/dist/src/ui/server.js +10 -0
  23. package/dist/src/ui/server.js.map +1 -1
  24. package/dist-ui/assets/{ActionsPage-B3quzFNF.js → ActionsPage-CI-IRMeS.js} +1 -1
  25. package/dist-ui/assets/{GraphPage-DetiATmC.js → GraphPage-BdYMF7yz.js} +1 -1
  26. package/dist-ui/assets/{ObservatoryPage-QIGMwENf.js → ObservatoryPage-BG_vg8B9.js} +1 -1
  27. package/dist-ui/assets/{TreemapPage-C7uLZd37.js → TreemapPage-CZreyyLA.js} +1 -1
  28. package/dist-ui/assets/index-Ca9pma3Q.css +1 -0
  29. package/dist-ui/assets/{index-DWAH--Fu.js → index-MlNuiu0T.js} +17 -17
  30. package/dist-ui/assets/{maximize-2-BebkGbZA.js → maximize-2-_nvSvCC7.js} +1 -1
  31. package/dist-ui/build-manifest.json +11 -11
  32. package/dist-ui/index.html +2 -2
  33. package/llms-install.md +16 -8
  34. package/package.json +1 -1
  35. package/server.json +1 -1
  36. package/skills/fastr-setup/SKILL.md +4 -4
  37. package/skills/skills.json +1 -1
  38. package/dist-ui/assets/index-BJnPINTu.css +0 -1
@@ -0,0 +1,315 @@
1
+ import * as os from 'node:os';
2
+ import * as path from 'node:path';
3
+ import { PACKAGE_VERSION } from '../version.js';
4
+ import { updateJsonConfig, upsertMcpServer, } from './json-config.js';
5
+ import { resolveOpenCodeConfigPath, upsertOpenCodeMcpServer } from './opencode.js';
6
+ import { getAntigravityConfigPath, getClaudeDesktopConfigPath } from './setup.js';
7
+ import { resolveMcpCommand, withProjectRoot } from './mcp-command.js';
8
+ export const MCP_CLIENTS = [
9
+ 'claude',
10
+ 'cursor',
11
+ 'vscode',
12
+ 'opencode',
13
+ 'gemini',
14
+ 'copilot',
15
+ 'windsurf',
16
+ 'antigravity',
17
+ 'claude-desktop',
18
+ 'codex',
19
+ ];
20
+ const CLIENT_SPECS = {
21
+ claude: { label: 'Claude Code', scopes: ['project', 'user'] },
22
+ cursor: { label: 'Cursor', scopes: ['project', 'user'] },
23
+ vscode: { label: 'VS Code', scopes: ['project', 'user'] },
24
+ opencode: { label: 'OpenCode', scopes: ['project'] },
25
+ gemini: { label: 'Gemini CLI', scopes: ['project', 'user'] },
26
+ copilot: { label: 'GitHub Copilot CLI', scopes: ['project'] },
27
+ windsurf: { label: 'Windsurf', scopes: ['user'] },
28
+ antigravity: { label: 'Antigravity', scopes: ['user'] },
29
+ 'claude-desktop': { label: 'Claude Desktop', scopes: ['user'] },
30
+ codex: { label: 'Codex', scopes: ['user'] },
31
+ };
32
+ export const PROJECT_ALL_CLIENTS = [
33
+ 'claude',
34
+ 'cursor',
35
+ 'vscode',
36
+ 'opencode',
37
+ 'gemini',
38
+ 'copilot',
39
+ ];
40
+ export const USER_ALL_CLIENTS = [
41
+ 'claude',
42
+ 'cursor',
43
+ 'vscode',
44
+ 'gemini',
45
+ 'windsurf',
46
+ 'antigravity',
47
+ 'claude-desktop',
48
+ 'codex',
49
+ ];
50
+ export class McpInitError extends Error {
51
+ constructor(message) {
52
+ super(message);
53
+ this.name = 'McpInitError';
54
+ }
55
+ }
56
+ export function parseMcpClients(value, scope = 'project') {
57
+ const requested = value
58
+ .split(',')
59
+ .map((item) => item.trim().toLowerCase())
60
+ .filter(Boolean);
61
+ if (requested.length === 0) {
62
+ throw new McpInitError(`Choose a client: ${MCP_CLIENTS.join(', ')}, or all.`);
63
+ }
64
+ const expanded = requested.flatMap((item) => {
65
+ if (item === 'all')
66
+ return scope === 'user' ? USER_ALL_CLIENTS : PROJECT_ALL_CLIENTS;
67
+ if (!MCP_CLIENTS.includes(item)) {
68
+ throw new McpInitError(`Unknown client "${item}". Choose from: ${MCP_CLIENTS.join(', ')}, or all.`);
69
+ }
70
+ return [item];
71
+ });
72
+ return [...new Set(expanded)];
73
+ }
74
+ export function parseMcpScope(value) {
75
+ if (value === 'project' || value === 'user')
76
+ return value;
77
+ throw new McpInitError('Scope must be "project" or "user".');
78
+ }
79
+ export function parseMcpChannel(value) {
80
+ if (value === 'latest' || value === 'pinned')
81
+ return value;
82
+ throw new McpInitError('Channel must be "latest" or "pinned".');
83
+ }
84
+ export function parseMcpRunner(value) {
85
+ if (value === 'npx' || value === 'pnpm' || value === 'yarn' || value === 'bunx')
86
+ return value;
87
+ throw new McpInitError('Runner must be "npx", "pnpm", "yarn", or "bunx".');
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
+ }
94
+ export function parseMcpProfile(value) {
95
+ if (value === 'full' || value === 'core')
96
+ return value;
97
+ throw new McpInitError('Profile must be "full" or "core".');
98
+ }
99
+ /**
100
+ * Build a portable MCP entry. The generated config names the package instead of embedding an
101
+ * absolute CLI path, so a project config can be committed and shared across machines.
102
+ */
103
+ export function buildRegistryMcpEntry(options = {}) {
104
+ const channel = options.channel ?? 'latest';
105
+ const runner = options.runner ?? 'npx';
106
+ const profile = options.profile ?? 'full';
107
+ const packageSpec = channel === 'pinned'
108
+ ? `fastrmemory@${options.packageVersion ?? PACKAGE_VERSION}`
109
+ : 'fastrmemory@latest';
110
+ let args;
111
+ switch (runner) {
112
+ case 'npx':
113
+ args = ['-y', packageSpec, 'mcp'];
114
+ break;
115
+ case 'pnpm':
116
+ args = ['dlx', packageSpec, 'mcp'];
117
+ break;
118
+ case 'yarn':
119
+ args = ['dlx', packageSpec, 'mcp'];
120
+ break;
121
+ case 'bunx':
122
+ // `bunx` honors the package's Node shebang; `--bun` would force Bun, which
123
+ // does not provide `node:sqlite`, the engine FastrMemory depends on.
124
+ args = [packageSpec, 'mcp'];
125
+ break;
126
+ }
127
+ if (profile === 'core')
128
+ args.push('--profile', 'core');
129
+ if ((options.platform ?? process.platform) === 'win32') {
130
+ // MCP clients spawn servers without a shell; npm/pnpm/yarn/bunx shims are .cmd files.
131
+ return { command: 'cmd', args: ['/c', runner, ...args] };
132
+ }
133
+ return { command: runner, args };
134
+ }
135
+ /**
136
+ * Build a non-portable MCP entry that points at the active CLI. This avoids npx cold starts
137
+ * and is the right choice for a globally installed CLI or a local development checkout.
138
+ */
139
+ export function buildLocalMcpEntry(options = {}) {
140
+ const entry = resolveMcpCommand(options.platform ?? process.platform, options.cliPath);
141
+ if ((options.profile ?? 'full') === 'core') {
142
+ entry.args.push('--profile', 'core');
143
+ }
144
+ return entry;
145
+ }
146
+ function resolveVsCodeUserConfig(homeDir, platform) {
147
+ if (platform === 'win32') {
148
+ const appData = homeDir === os.homedir() && process.env.APPDATA
149
+ ? process.env.APPDATA
150
+ : path.join(homeDir, 'AppData', 'Roaming');
151
+ return path.join(appData, 'Code', 'User', 'mcp.json');
152
+ }
153
+ if (platform === 'darwin') {
154
+ return path.join(homeDir, 'Library', 'Application Support', 'Code', 'User', 'mcp.json');
155
+ }
156
+ return path.join(homeDir, '.config', 'Code', 'User', 'mcp.json');
157
+ }
158
+ function resolveClientPath(client, scope, projectRoot, homeDir, platform) {
159
+ switch (client) {
160
+ case 'claude':
161
+ return scope === 'project'
162
+ ? path.join(projectRoot, '.mcp.json')
163
+ : path.join(homeDir, '.claude.json');
164
+ case 'cursor':
165
+ return scope === 'project'
166
+ ? path.join(projectRoot, '.cursor', 'mcp.json')
167
+ : path.join(homeDir, '.cursor', 'mcp.json');
168
+ case 'vscode':
169
+ return scope === 'project'
170
+ ? path.join(projectRoot, '.vscode', 'mcp.json')
171
+ : resolveVsCodeUserConfig(homeDir, platform);
172
+ case 'opencode':
173
+ return resolveOpenCodeConfigPath(projectRoot).filePath;
174
+ case 'gemini':
175
+ return scope === 'project'
176
+ ? path.join(projectRoot, '.gemini', 'settings.json')
177
+ : path.join(homeDir, '.gemini', 'settings.json');
178
+ case 'copilot':
179
+ return path.join(projectRoot, '.github', 'mcp.json');
180
+ case 'windsurf':
181
+ return path.join(homeDir, '.codeium', 'windsurf', 'mcp_config.json');
182
+ case 'antigravity':
183
+ return getAntigravityConfigPath(homeDir);
184
+ case 'claude-desktop':
185
+ return getClaudeDesktopConfigPath(homeDir);
186
+ case 'codex':
187
+ return path.join(homeDir, '.codex', 'config.toml');
188
+ }
189
+ }
190
+ function buildCodexToml(entry) {
191
+ const args = entry.args.map((arg) => JSON.stringify(arg)).join(', ');
192
+ return [
193
+ '[mcp_servers.fastrmemory]',
194
+ `command = ${JSON.stringify(entry.command)}`,
195
+ `args = [${args}]`,
196
+ '',
197
+ ].join('\n');
198
+ }
199
+ function applyClientConfig(client, filePath, entry) {
200
+ if (client === 'vscode') {
201
+ return updateJsonConfig(filePath, (config) => {
202
+ if (!config.servers || typeof config.servers !== 'object' || Array.isArray(config.servers)) {
203
+ config.servers = {};
204
+ }
205
+ config.servers.fastrmemory = entry;
206
+ });
207
+ }
208
+ if (client === 'opencode') {
209
+ return updateJsonConfig(filePath, (config) => upsertOpenCodeMcpServer(config, entry));
210
+ }
211
+ if (client === 'copilot') {
212
+ return updateJsonConfig(filePath, (config) => {
213
+ upsertMcpServer(config, 'fastrmemory', { type: 'local', ...entry });
214
+ });
215
+ }
216
+ return updateJsonConfig(filePath, (config) => upsertMcpServer(config, 'fastrmemory', entry));
217
+ }
218
+ /**
219
+ * Configure one or more MCP clients. Existing JSON is merged, backed up once, and never
220
+ * overwritten when it cannot be parsed. Codex is printed as TOML because a safe rewrite of a
221
+ * user-owned TOML file needs a dedicated parser.
222
+ */
223
+ export function initMcpClients(options) {
224
+ const scope = options.scope ?? 'project';
225
+ const projectRoot = path.resolve(options.projectRoot ?? process.cwd());
226
+ const homeDir = options.homeDir ?? os.homedir();
227
+ const platform = options.platform ?? process.platform;
228
+ const dryRun = options.dryRun ?? false;
229
+ const source = options.source ?? 'registry';
230
+ const baseEntry = source === 'local'
231
+ ? buildLocalMcpEntry({ profile: options.profile, platform, cliPath: options.cliPath })
232
+ : buildRegistryMcpEntry({
233
+ channel: options.channel,
234
+ runner: options.runner,
235
+ profile: options.profile,
236
+ platform,
237
+ });
238
+ // Local entries always pin the project root. Registry project configs stay portable.
239
+ const entry = source === 'local' || scope === 'user'
240
+ ? withProjectRoot(baseEntry, projectRoot)
241
+ : baseEntry;
242
+ const entrySource = entry.command === 'node' ? 'local' : 'registry';
243
+ // Validate every requested client before the first write so a bad scope cannot leave a
244
+ // half-configured set of clients behind.
245
+ const specs = options.clients.map((client) => {
246
+ const spec = CLIENT_SPECS[client];
247
+ if (!spec)
248
+ throw new McpInitError(`Unknown client "${client}".`);
249
+ if (!spec.scopes.includes(scope)) {
250
+ throw new McpInitError(`${spec.label} does not support ${scope}-scoped MCP config. Supported scope: ${spec.scopes.join(' or ')}.`);
251
+ }
252
+ return { client, spec };
253
+ });
254
+ return specs.map(({ client, spec }) => {
255
+ const filePath = resolveClientPath(client, scope, projectRoot, homeDir, platform);
256
+ const result = {
257
+ client,
258
+ label: spec.label,
259
+ scope,
260
+ filePath,
261
+ entry,
262
+ source: entrySource,
263
+ changed: false,
264
+ created: false,
265
+ dryRun,
266
+ };
267
+ if (client === 'codex') {
268
+ result.manual = buildCodexToml(entry);
269
+ return result;
270
+ }
271
+ if (client === 'opencode' && resolveOpenCodeConfigPath(projectRoot).jsonc) {
272
+ result.skipped = `OpenCode config is JSONC (${filePath}); add the fastrmemory MCP server manually`;
273
+ return result;
274
+ }
275
+ if (dryRun)
276
+ return result;
277
+ const write = applyClientConfig(client, filePath, entry);
278
+ return {
279
+ ...result,
280
+ changed: write.changed,
281
+ created: write.created,
282
+ backupPath: write.backupPath,
283
+ };
284
+ });
285
+ }
286
+ export function formatMcpInitResult(result) {
287
+ if (result.skipped)
288
+ return `${result.label}: skipped — ${result.skipped}`;
289
+ if (result.manual) {
290
+ return `${result.label}: add this to ${result.filePath}\n\n${result.manual}`;
291
+ }
292
+ if (result.dryRun) {
293
+ return `${result.label}: would write ${result.filePath}`;
294
+ }
295
+ if (result.created)
296
+ return `${result.label}: created ${result.filePath}`;
297
+ if (result.changed) {
298
+ const backup = result.backupPath ? ` (backup: ${path.basename(result.backupPath)})` : '';
299
+ return `${result.label}: updated ${result.filePath}${backup}`;
300
+ }
301
+ return `${result.label}: already up to date (${result.filePath})`;
302
+ }
303
+ /** Ensure a client id is usable in generated docs/tests without importing the CLI command tree. */
304
+ export function isMcpClient(value) {
305
+ return MCP_CLIENTS.includes(value);
306
+ }
307
+ /** Small helper for tests and dry-run output. */
308
+ export function mcpEntryCommand(entry) {
309
+ return [entry.command, ...entry.args].map((part) => (/\s/.test(part) ? JSON.stringify(part) : part)).join(' ');
310
+ }
311
+ /** True when the generated entry points at the package registry rather than a local checkout. */
312
+ export function isPortableRegistryEntry(entry) {
313
+ return entry.args.some((arg) => /^fastrmemory@(?:latest|\d+\.\d+\.\d+)/.test(arg));
314
+ }
315
+ //# sourceMappingURL=mcp-init.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcp-init.js","sourceRoot":"","sources":["../../../src/installer/mcp-init.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { McpServerEntry } from './json-config.js';
1
+ export { findOwnCliPath, resolveMcpCommand, withProjectRoot } from './mcp-command.js';
2
2
  export interface SetupOptions {
3
3
  autoInstall?: boolean;
4
4
  /** Overrides the home directory (tests, sandboxes). Defaults to `os.homedir()`. */
@@ -9,17 +9,6 @@ export interface SetupOptions {
9
9
  export declare const AGENTS_DISCIPLINE_BLOCK = "\n<!-- fastrmemory:start -->\n## \u26A1 FastrMemory Autonomous Agent Discipline\n\nEvery AI coding agent operating in this repository MUST follow these 3 cognitive rules:\n1. **Pre-Edit Error Check**: Before editing or creating files, call `fastr_trap_recall` with your target file paths to check for active `[TRAP]` warnings.\n2. **Immediate Trap Logging**: The moment you diagnose a test failure, syntax bug, or library incompatibility, call `fastr_trap_log` to save the lesson with a 2.0x recall boost.\n3. **Session Verification**: When milestones are completed, call `fastr_handoff` with `verifyStaging: true` to graduate staging memories into verified rules.\n<!-- fastrmemory:end -->\n";
10
10
  export declare function getAntigravityConfigPath(homeDir?: string): string;
11
11
  export declare function getClaudeDesktopConfigPath(homeDir?: string): string;
12
- /** Absolute path of this package's own CLI entry, whether running compiled (dist/src/installer) or from source. */
13
- export declare function findOwnCliPath(): string | null;
14
- /**
15
- * The command MCP clients should spawn. MCP clients launch servers without a shell, so on Windows
16
- * the `fastrmemory.cmd` npm shim cannot be executed directly. Pointing `node` at the package's own
17
- * CLI works on every platform; `npx` (wrapped in `cmd /c` on Windows) is the fallback when this
18
- * copy lives in a throwaway npx cache.
19
- */
20
- export declare function resolveMcpCommand(platform?: NodeJS.Platform, cliPath?: string | null): McpServerEntry;
21
- /** Pin a user-scoped MCP entry to a project root so the client's launch directory cannot change the database. */
22
- export declare function withProjectRoot(entry: McpServerEntry, projectRoot: string): McpServerEntry;
23
12
  export declare function ensureAgentsDiscipline(projectRoot: string): 'added' | 'present';
24
13
  export declare function runInteractiveSetup(options?: SetupOptions): void;
25
14
  export declare function findSkillsDir(): string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/installer/setup.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAqC,MAAM,kBAAkB,CAAC;AAKrF,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6GAA6G;IAC7G,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,uBAAuB,yrBASnC,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,MAAqB,GAAG,MAAM,CAE/E;AAED,wBAAgB,0BAA0B,CAAC,OAAO,GAAE,MAAqB,GAAG,MAAM,CAWjF;AAED,mHAAmH;AACnH,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;AAuBD,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAM/E;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,YAAiB,GAAG,IAAI,CAuEpE;AAED,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAY7C;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,gFAAgF;AAChF,eAAO,MAAM,cAAc,UAI1B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAUzD;AAED,wBAAgB,aAAa,CAAC,OAAO,GAAE,mBAAwB,GAAG;IAChE,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB,CA8CA"}
1
+ {"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../../src/installer/setup.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAKtF,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,mFAAmF;IACnF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6GAA6G;IAC7G,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,uBAAuB,yrBASnC,CAAC;AAEF,wBAAgB,wBAAwB,CAAC,OAAO,GAAE,MAAqB,GAAG,MAAM,CAE/E;AAED,wBAAgB,0BAA0B,CAAC,OAAO,GAAE,MAAqB,GAAG,MAAM,CAWjF;AAuBD,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAM/E;AAED,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,YAAiB,GAAG,IAAI,CAuEpE;AAED,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAY7C;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,gFAAgF;AAChF,eAAO,MAAM,cAAc,UAI1B,CAAC;AAEF;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAUzD;AAED,wBAAgB,aAAa,CAAC,OAAO,GAAE,mBAAwB,GAAG;IAChE,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;CACrB,CA8CA"}
@@ -3,8 +3,9 @@ import * as path from 'node:path';
3
3
  import * as os from 'node:os';
4
4
  import { fileURLToPath } from 'node:url';
5
5
  import { createFastrServerContext } from '../mcp/server.js';
6
- import { PACKAGE_VERSION } from '../version.js';
7
6
  import { updateJsonConfig, upsertMcpServer } from './json-config.js';
7
+ import { resolveMcpCommand, withProjectRoot } from './mcp-command.js';
8
+ export { findOwnCliPath, resolveMcpCommand, withProjectRoot } from './mcp-command.js';
8
9
  const __filename = fileURLToPath(import.meta.url);
9
10
  const __dirname = path.dirname(__filename);
10
11
  export const AGENTS_DISCIPLINE_BLOCK = `
@@ -34,36 +35,6 @@ export function getClaudeDesktopConfigPath(homeDir = os.homedir()) {
34
35
  return path.join(homeDir, '.config', 'Claude', 'claude_desktop_config.json');
35
36
  }
36
37
  }
37
- /** Absolute path of this package's own CLI entry, whether running compiled (dist/src/installer) or from source. */
38
- export function findOwnCliPath() {
39
- const candidates = [
40
- path.resolve(__dirname, '..', '..', 'bin', 'fastr.js'), // dist/src/installer -> dist/bin/fastr.js
41
- path.resolve(__dirname, '..', '..', 'dist', 'bin', 'fastr.js'), // src/installer -> dist/bin/fastr.js
42
- ];
43
- return candidates.find((c) => fs.existsSync(c)) ?? null;
44
- }
45
- /**
46
- * The command MCP clients should spawn. MCP clients launch servers without a shell, so on Windows
47
- * the `fastrmemory.cmd` npm shim cannot be executed directly. Pointing `node` at the package's own
48
- * CLI works on every platform; `npx` (wrapped in `cmd /c` on Windows) is the fallback when this
49
- * copy lives in a throwaway npx cache.
50
- */
51
- export function resolveMcpCommand(platform = process.platform, cliPath = findOwnCliPath()) {
52
- const isEphemeral = cliPath !== null && /[\\/]_npx[\\/]/.test(cliPath);
53
- if (cliPath && !isEphemeral) {
54
- return { command: 'node', args: [cliPath, 'mcp'] };
55
- }
56
- // Pin the registry package and version: npx cache paths are throwaway, and a GitHub
57
- // default-branch reference would silently change the server under existing configs.
58
- const npxArgs = ['-y', `fastrmemory@${PACKAGE_VERSION}`, 'mcp'];
59
- return platform === 'win32'
60
- ? { command: 'cmd', args: ['/c', 'npx', ...npxArgs] }
61
- : { command: 'npx', args: npxArgs };
62
- }
63
- /** Pin a user-scoped MCP entry to a project root so the client's launch directory cannot change the database. */
64
- export function withProjectRoot(entry, projectRoot) {
65
- return { ...entry, args: [...entry.args, '--project', path.resolve(projectRoot)] };
66
- }
67
38
  function wireMcpClient(target, entry) {
68
39
  if (target.requireDir && !fs.existsSync(target.requireDir)) {
69
40
  return 'Skipped (not installed)';
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/installer/setup.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAkB,gBAAgB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAErF,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAU3C,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;CAStC,CAAC;AAEF,MAAM,UAAU,wBAAwB,CAAC,UAAkB,EAAE,CAAC,OAAO,EAAE;IACrE,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,iBAAiB,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,UAAkB,EAAE,CAAC,OAAO,EAAE;IACvE,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QACjC,MAAM,OAAO,GAAG,OAAO,KAAK,EAAE,CAAC,OAAO,EAAE,IAAI,OAAO,CAAC,GAAG,CAAC,OAAO;YAC7D,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO;YACrB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;IACpE,CAAC;SAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;IACtG,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,4BAA4B,CAAC,CAAC;IAC/E,CAAC;AACH,CAAC;AAED,mHAAmH;AACnH,MAAM,UAAU,cAAc;IAC5B,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,EAAU,0CAA0C;QAC1G,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,EAAE,qCAAqC;KACtG,CAAC;IACF,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC1D,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAC/B,WAA4B,OAAO,CAAC,QAAQ,EAC5C,UAAyB,cAAc,EAAE;IAEzC,MAAM,WAAW,GAAG,OAAO,KAAK,IAAI,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvE,IAAI,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC;IACrD,CAAC;IACD,oFAAoF;IACpF,oFAAoF;IACpF,MAAM,OAAO,GAAG,CAAC,IAAI,EAAE,eAAe,eAAe,EAAE,EAAE,KAAK,CAAC,CAAC;IAChE,OAAO,QAAQ,KAAK,OAAO;QACzB,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,EAAE;QACrD,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;AACxC,CAAC;AAED,iHAAiH;AACjH,MAAM,UAAU,eAAe,CAAC,KAAqB,EAAE,WAAmB;IACxE,OAAO,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;AACrF,CAAC;AASD,SAAS,aAAa,CAAC,MAAoB,EAAE,KAAqB;IAChE,IAAI,MAAM,CAAC,UAAU,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3D,OAAO,yBAAyB,CAAC;IACnC,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC,CAAC;QACzG,IAAI,CAAC,GAAG,CAAC,OAAO;YAAE,OAAO,sBAAsB,MAAM,CAAC,QAAQ,GAAG,CAAC;QAClE,MAAM,MAAM,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,aAAa,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClF,OAAO,cAAc,MAAM,CAAC,QAAQ,GAAG,MAAM,GAAG,CAAC;IACnD,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,WAAW,GAAG,CAAC,OAAO,GAAG,CAAC;IACnC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,WAAmB;IACxD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACtF,IAAI,OAAO,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAAE,OAAO,SAAS,CAAC;IACrE,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,uBAAuB,EAAE,OAAO,CAAC,CAAC;IAC3G,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,UAAwB,EAAE;IAC5D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAChD,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IAEvE,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IAEnE,uCAAuC;IACvC,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,wBAAwB,CAAC,WAAW,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,uBAAuB,GAAG,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,CAAC,OAAO,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,MAAM,gBAAgB,GAAG,iBAAiB,EAAE,CAAC;IAC7C,MAAM,eAAe,GAAG,eAAe,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;IACvE,MAAM,eAAe,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IAC1D,MAAM,iBAAiB,GAAG,0BAA0B,CAAC,OAAO,CAAC,CAAC;IAE9D,+GAA+G;IAC/G,4GAA4G;IAC5G,MAAM,OAAO,GAAkD;QAC7D,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,EAAE,EAAE,eAAe,CAAC;QACzJ,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,EAAE,eAAe,CAAC;QAClJ,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,gBAAgB,CAAC;QAC1H,0GAA0G;QAC1G,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,cAAc,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,eAAe,CAAC;QAC9J,CAAC,wBAAwB,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,iBAAiB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,eAAe,CAAC;KACpM,CAAC;IACF,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,OAAO,EAAE,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3D,CAAC;IAED,mDAAmD;IACnD,IAAI,WAAmB,CAAC;IACxB,IAAI,CAAC;QACH,WAAW,GAAG,sBAAsB,CAAC,WAAW,CAAC,KAAK,OAAO;YAC3D,CAAC,CAAC,+BAA+B;YACjC,CAAC,CAAC,+CAA+C,CAAC;IACtD,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,WAAW,GAAG,WAAW,GAAG,CAAC,OAAO,EAAE,CAAC;IACzC,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,0BAA0B,WAAW,EAAE,CAAC,CAAC;IAErD,+EAA+E;IAC/E,IAAI,YAAoB,CAAC;IACzB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,aAAa,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QACvD,YAAY,GAAG,cAAc,MAAM,CAAC,gBAAgB,oBAAoB,MAAM,CAAC,WAAW,eAAe,MAAM,CAAC,WAAW,aAAa,CAAC;IAC3I,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,YAAY,GAAG,WAAW,GAAG,CAAC,OAAO,EAAE,CAAC;IAC1C,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,0BAA0B,YAAY,IAAI,CAAC,CAAC;IAExD,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;IAC9D,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,kDAAkD,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;IACvE,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC;QACvC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,iBAAiB,CAAC;QAC1C,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC;KACtC,CAAC;IACF,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;QAC9B,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;YACjI,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAOD,gFAAgF;AAChF,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,oBAAoB,EAAE,qBAAqB,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB;IAC7F,kBAAkB,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc;IAC/E,gBAAgB,EAAE,YAAY,EAAE,mBAAmB;CACpD,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,GAAW;IAC7C,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACtC,IAAI,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;YACnD,EAAE,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,UAA+B,EAAE;IAK7D,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;IAChD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzD,MAAM,SAAS,GAAG,aAAa,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,EAAE,gBAAgB,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC;IACvE,IAAI,CAAC,SAAS;QAAE,OAAO,MAAM,CAAC;IAE9B,MAAM,YAAY,GAAG,EAAE,CAAC,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAEjF,MAAM,OAAO,GAAG;QACd,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,kBAA2B,EAAE;QAC5F,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,aAAsB,EAAE;QAC7E,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,aAAsB,EAAE;KAClF,CAAC;IAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,kGAAkG;QAClG,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;YAAE,SAAS;QACnE,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC/B,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,CAAC;YACD,mBAAmB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAChC,KAAK,MAAM,SAAS,IAAI,SAAS,EAAE,CAAC;gBAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBACjD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;gBACnD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBAC/C,CAAC;gBACD,MAAM,KAAK,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBACvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;oBAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;oBAC5C,IAAI,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC;wBAClC,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;oBACrC,CAAC;gBACH,CAAC;gBACD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;YACvB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+CAA+C;QACjD,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/installer/setup.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/ui/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAKlC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAkB3C,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4FAA4F;IAC5F,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAmBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAO3E;AAqID,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAopB7I"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/ui/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAMlC,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAoB3C,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,4FAA4F;IAC5F,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAmBD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAO3E;AAqID,wBAAgB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CA2pB7I"}
@@ -1,8 +1,11 @@
1
1
  import * as http from 'node:http';
2
2
  import * as fs from 'node:fs';
3
3
  import * as path from 'node:path';
4
+ import * as os from 'node:os';
4
5
  import { fileURLToPath } from 'node:url';
5
6
  import { exec } from 'node:child_process';
7
+ import { PACKAGE_VERSION } from '../version.js';
8
+ import { classifyMcpCommand, resolveMcpCommand, withProjectRoot } from '../installer/mcp-command.js';
6
9
  import { initDatabase } from '../db/schema.js';
7
10
  import { FastrRepository } from '../db/repository.js';
8
11
  import { SpoolManager } from '../db/spool.js';
@@ -232,11 +235,18 @@ export function startUiServer(config, options = {}) {
232
235
  const frontier = repo.getFrontier(config.projectId);
233
236
  const conflicts = repo.listConflicts(config.projectId, 'open');
234
237
  const entities = repo.getEntities(config.projectId);
238
+ const mcpEntry = withProjectRoot(resolveMcpCommand(), config.projectRoot);
235
239
  res.writeHead(200, { 'Content-Type': 'application/json' });
236
240
  res.end(JSON.stringify({
237
241
  projectId: config.projectId,
238
242
  projectName: config.projectName,
243
+ projectRoot: config.projectRoot,
239
244
  dbPath: config.dbPath,
245
+ version: PACKAGE_VERSION,
246
+ platform: process.platform,
247
+ isHomeProject: path.resolve(config.projectRoot) === path.resolve(os.homedir()),
248
+ mcp: mcpEntry,
249
+ mcpSource: classifyMcpCommand(mcpEntry, config.projectRoot),
240
250
  status,
241
251
  trapsCount: traps.length,
242
252
  activeCount: memories.length,