@sirius-mcp/mcp 1.4.1 → 1.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 (74) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +177 -0
  3. package/dist/installer/backup.d.ts +4 -0
  4. package/dist/installer/backup.d.ts.map +1 -0
  5. package/dist/installer/backup.js +88 -0
  6. package/dist/installer/backup.js.map +1 -0
  7. package/dist/installer/cli-parser.d.ts +3 -0
  8. package/dist/installer/cli-parser.d.ts.map +1 -0
  9. package/dist/installer/cli-parser.js +71 -0
  10. package/dist/installer/cli-parser.js.map +1 -0
  11. package/dist/installer/cli.d.ts +10 -0
  12. package/dist/installer/cli.d.ts.map +1 -0
  13. package/dist/installer/cli.js +208 -0
  14. package/dist/installer/cli.js.map +1 -0
  15. package/dist/installer/detector.d.ts +8 -0
  16. package/dist/installer/detector.d.ts.map +1 -0
  17. package/dist/installer/detector.js +169 -0
  18. package/dist/installer/detector.js.map +1 -0
  19. package/dist/installer/diff.d.ts +3 -0
  20. package/dist/installer/diff.d.ts.map +1 -0
  21. package/dist/installer/diff.js +85 -0
  22. package/dist/installer/diff.js.map +1 -0
  23. package/dist/installer/dispatch.d.ts +5 -0
  24. package/dist/installer/dispatch.d.ts.map +1 -0
  25. package/dist/installer/dispatch.js +96 -0
  26. package/dist/installer/dispatch.js.map +1 -0
  27. package/dist/installer/index.d.ts +10 -0
  28. package/dist/installer/index.d.ts.map +1 -0
  29. package/dist/installer/index.js +20 -0
  30. package/dist/installer/index.js.map +1 -0
  31. package/dist/installer/patchers/index.d.ts +7 -0
  32. package/dist/installer/patchers/index.d.ts.map +1 -0
  33. package/dist/installer/patchers/index.js +26 -0
  34. package/dist/installer/patchers/index.js.map +1 -0
  35. package/dist/installer/patchers/jsonc.d.ts +4 -0
  36. package/dist/installer/patchers/jsonc.d.ts.map +1 -0
  37. package/dist/installer/patchers/jsonc.js +126 -0
  38. package/dist/installer/patchers/jsonc.js.map +1 -0
  39. package/dist/installer/patchers/toml.d.ts +3 -0
  40. package/dist/installer/patchers/toml.d.ts.map +1 -0
  41. package/dist/installer/patchers/toml.js +88 -0
  42. package/dist/installer/patchers/toml.js.map +1 -0
  43. package/dist/installer/patchers/yaml.d.ts +3 -0
  44. package/dist/installer/patchers/yaml.d.ts.map +1 -0
  45. package/dist/installer/patchers/yaml.js +29 -0
  46. package/dist/installer/patchers/yaml.js.map +1 -0
  47. package/dist/installer/targets-base.d.ts +8 -0
  48. package/dist/installer/targets-base.d.ts.map +1 -0
  49. package/dist/installer/targets-base.js +37 -0
  50. package/dist/installer/targets-base.js.map +1 -0
  51. package/dist/installer/targets-cli.d.ts +3 -0
  52. package/dist/installer/targets-cli.d.ts.map +1 -0
  53. package/dist/installer/targets-cli.js +126 -0
  54. package/dist/installer/targets-cli.js.map +1 -0
  55. package/dist/installer/targets-ide.d.ts +3 -0
  56. package/dist/installer/targets-ide.d.ts.map +1 -0
  57. package/dist/installer/targets-ide.js +180 -0
  58. package/dist/installer/targets-ide.js.map +1 -0
  59. package/dist/installer/targets.d.ts +7 -0
  60. package/dist/installer/targets.d.ts.map +1 -0
  61. package/dist/installer/targets.js +11 -0
  62. package/dist/installer/targets.js.map +1 -0
  63. package/dist/installer/tui.d.ts +8 -0
  64. package/dist/installer/tui.d.ts.map +1 -0
  65. package/dist/installer/tui.js +257 -0
  66. package/dist/installer/tui.js.map +1 -0
  67. package/dist/installer/types.d.ts +95 -0
  68. package/dist/installer/types.d.ts.map +1 -0
  69. package/dist/installer/types.js +7 -0
  70. package/dist/installer/types.js.map +1 -0
  71. package/dist/server.d.ts.map +1 -1
  72. package/dist/server.js +10 -1
  73. package/dist/server.js.map +1 -1
  74. package/package.json +3 -1
@@ -0,0 +1,88 @@
1
+ import { parse } from "smol-toml";
2
+ import { SIRIUS_CONFIG } from "../types.js";
3
+ const TOML_SIRIUS_BLOCK = `# Sirius MCP: Living Architectural Memory
4
+ [mcp_servers.sirius]
5
+ command = "${SIRIUS_CONFIG.command}"
6
+ args = ["${SIRIUS_CONFIG.args[0]}", "${SIRIUS_CONFIG.args[1]}"]
7
+ enabled = true`;
8
+ const HEADER_REGEX = /^\s*\[\s*(mcp_servers\.sirius|['"]mcp_servers['"]\.['"]sirius['"])\s*\]/i;
9
+ const ANY_TABLE_HEADER_REGEX = /^\s*\[.*\]/;
10
+ function findTableLineRange(lines) {
11
+ let startIndex = -1;
12
+ for (let i = 0; i < lines.length; i++) {
13
+ if (HEADER_REGEX.test(lines[i])) {
14
+ startIndex = i;
15
+ break;
16
+ }
17
+ }
18
+ if (startIndex === -1) {
19
+ return null;
20
+ }
21
+ let endIndex = lines.length;
22
+ for (let i = startIndex + 1; i < lines.length; i++) {
23
+ if (ANY_TABLE_HEADER_REGEX.test(lines[i])) {
24
+ endIndex = i;
25
+ while (endIndex > startIndex + 1) {
26
+ const prevLine = lines[endIndex - 1].trim();
27
+ if (prevLine === "" || prevLine.startsWith("#")) {
28
+ endIndex--;
29
+ }
30
+ else {
31
+ break;
32
+ }
33
+ }
34
+ break;
35
+ }
36
+ }
37
+ return { start: startIndex, end: endIndex };
38
+ }
39
+ export function patchToml(content) {
40
+ const eol = content.includes("\r\n") ? "\r\n" : "\n";
41
+ const trimmed = content.trim();
42
+ if (trimmed === "") {
43
+ const block = TOML_SIRIUS_BLOCK.split("\n").join(eol);
44
+ return `${block}${eol}`;
45
+ }
46
+ parse(content);
47
+ const lines = content.split(/\r?\n/);
48
+ const range = findTableLineRange(lines);
49
+ let result;
50
+ if (!range) {
51
+ const hasTrailingNewline = content.endsWith("\n");
52
+ const trailingNewline = hasTrailingNewline ? "" : eol;
53
+ const block = TOML_SIRIUS_BLOCK.split("\n").join(eol);
54
+ result = `${content}${trailingNewline}${eol}${block}${eol}`;
55
+ }
56
+ else {
57
+ const before = lines.slice(0, range.start);
58
+ const after = lines.slice(range.end);
59
+ const replacementLines = TOML_SIRIUS_BLOCK.split("\n");
60
+ const merged = [...before, ...replacementLines, ...after];
61
+ result = merged.join(eol);
62
+ if (!result.endsWith(eol)) {
63
+ result += eol;
64
+ }
65
+ }
66
+ parse(result);
67
+ return result;
68
+ }
69
+ export function removeToml(content) {
70
+ if (content.trim() === "")
71
+ return content;
72
+ parse(content);
73
+ const eol = content.includes("\r\n") ? "\r\n" : "\n";
74
+ const lines = content.split(/\r?\n/);
75
+ const range = findTableLineRange(lines);
76
+ if (!range)
77
+ return content;
78
+ const before = lines.slice(0, range.start);
79
+ const after = lines.slice(range.end);
80
+ while (before.length > 0 && before[before.length - 1].trim() === "") {
81
+ before.pop();
82
+ }
83
+ const result = [...before, ...(after.length > 0 ? ["", ...after] : [])].join(eol);
84
+ const finalResult = result.endsWith(eol) ? result : `${result}${eol}`;
85
+ parse(finalResult);
86
+ return finalResult;
87
+ }
88
+ //# sourceMappingURL=toml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toml.js","sourceRoot":"","sources":["../../../src/installer/patchers/toml.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export declare function patchYaml(content: string): string;
2
+ export declare function removeYaml(content: string): string;
3
+ //# sourceMappingURL=yaml.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yaml.d.ts","sourceRoot":"","sources":["../../../src/installer/patchers/yaml.ts"],"names":[],"mappings":"AAYA,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAWjD;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAMlD"}
@@ -0,0 +1,29 @@
1
+ import { parseDocument } from "yaml";
2
+ import { SIRIUS_CONFIG } from "../types.js";
3
+ function buildSiriusYamlNode(doc) {
4
+ return doc.createNode({
5
+ cmd: SIRIUS_CONFIG.command,
6
+ args: [...SIRIUS_CONFIG.args],
7
+ enabled: true,
8
+ type: "stdio",
9
+ });
10
+ }
11
+ export function patchYaml(content) {
12
+ const trimmed = content.trim();
13
+ if (trimmed === "") {
14
+ const doc = parseDocument("");
15
+ doc.setIn(["extensions", SIRIUS_CONFIG.name], buildSiriusYamlNode(doc));
16
+ return doc.toString();
17
+ }
18
+ const doc = parseDocument(content, { keepSourceTokens: true });
19
+ doc.setIn(["extensions", SIRIUS_CONFIG.name], buildSiriusYamlNode(doc));
20
+ return doc.toString();
21
+ }
22
+ export function removeYaml(content) {
23
+ if (content.trim() === "")
24
+ return content;
25
+ const doc = parseDocument(content, { keepSourceTokens: true });
26
+ doc.deleteIn(["extensions", SIRIUS_CONFIG.name]);
27
+ return doc.toString();
28
+ }
29
+ //# sourceMappingURL=yaml.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yaml.js","sourceRoot":"","sources":["../../../src/installer/patchers/yaml.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,SAAS,mBAAmB,CAAC,GAAqC;IAChE,OAAO,GAAG,CAAC,UAAU,CAAC;QACpB,GAAG,EAAE,aAAa,CAAC,OAAO;QAC1B,IAAI,EAAE,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC;QAC7B,OAAO,EAAE,IAAI;QACb,IAAI,EAAE,OAAO;KACd,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,OAAe;IACvC,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,MAAM,GAAG,GAAG,aAAa,CAAC,EAAE,CAAC,CAAC;QAC9B,GAAG,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;QACxE,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;IAED,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,GAAG,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC;IACxE,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,IAAI,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE;QAAE,OAAO,OAAO,CAAC;IAE1C,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,EAAE,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/D,GAAG,CAAC,QAAQ,CAAC,CAAC,YAAY,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACjD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type PlatformEnv } from "./types.js";
2
+ export declare function pJoin(platform: NodeJS.Platform, ...parts: string[]): string;
3
+ export declare function resolveTargetEnvironment(): PlatformEnv;
4
+ export declare function getAppDataDir(env: PlatformEnv): string;
5
+ export declare function getConfigDir(env: PlatformEnv): string;
6
+ export declare function getAppSupportDir(env: PlatformEnv, appName: string): string;
7
+ export declare function getCodeUserDir(env: PlatformEnv): string;
8
+ //# sourceMappingURL=targets-base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targets-base.d.ts","sourceRoot":"","sources":["../../src/installer/targets-base.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9C,wBAAgB,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAE3E;AAED,wBAAgB,wBAAwB,IAAI,WAAW,CAWtD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAEtD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAErD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAQ1E;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAEvD"}
@@ -0,0 +1,37 @@
1
+ import path from "node:path";
2
+ import os from "node:os";
3
+ import {} from "./types.js";
4
+ export function pJoin(platform, ...parts) {
5
+ return platform === "win32" ? path.win32.join(...parts) : path.posix.join(...parts);
6
+ }
7
+ export function resolveTargetEnvironment() {
8
+ return {
9
+ homeDir: os.homedir(),
10
+ appData: process.env.APPDATA,
11
+ localAppData: process.env.LOCALAPPDATA,
12
+ xdgConfigHome: process.env.XDG_CONFIG_HOME,
13
+ platform: process.platform,
14
+ execPath: process.execPath,
15
+ envPath: process.env.PATH,
16
+ cwd: process.cwd(),
17
+ };
18
+ }
19
+ export function getAppDataDir(env) {
20
+ return env.appData ?? pJoin(env.platform, env.homeDir, "AppData", "Roaming");
21
+ }
22
+ export function getConfigDir(env) {
23
+ return env.xdgConfigHome ?? pJoin(env.platform, env.homeDir, ".config");
24
+ }
25
+ export function getAppSupportDir(env, appName) {
26
+ if (env.platform === "darwin") {
27
+ return pJoin(env.platform, env.homeDir, "Library", "Application Support", appName);
28
+ }
29
+ if (env.platform === "win32") {
30
+ return pJoin(env.platform, getAppDataDir(env), appName);
31
+ }
32
+ return pJoin(env.platform, getConfigDir(env), appName);
33
+ }
34
+ export function getCodeUserDir(env) {
35
+ return getAppSupportDir(env, pJoin(env.platform, "Code", "User"));
36
+ }
37
+ //# sourceMappingURL=targets-base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targets-base.js","sourceRoot":"","sources":["../../src/installer/targets-base.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAoB,MAAM,YAAY,CAAC;AAE9C,MAAM,UAAU,KAAK,CAAC,QAAyB,EAAE,GAAG,KAAe;IACjE,OAAO,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;AACtF,CAAC;AAED,MAAM,UAAU,wBAAwB;IACtC,OAAO;QACL,OAAO,EAAE,EAAE,CAAC,OAAO,EAAE;QACrB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO;QAC5B,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY;QACtC,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;QAC1C,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI;QACzB,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;KACnB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,GAAgB;IAC5C,OAAO,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,GAAgB;IAC3C,OAAO,GAAG,CAAC,aAAa,IAAI,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,GAAgB,EAAE,OAAe;IAChE,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,OAAO,CAAC,CAAC;IACrF,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,aAAa,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,GAAgB;IAC7C,OAAO,gBAAgB,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AACpE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type ClientTargetDefinition } from "./types.js";
2
+ export declare const CLI_TARGETS: ClientTargetDefinition[];
3
+ //# sourceMappingURL=targets-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targets-cli.d.ts","sourceRoot":"","sources":["../../src/installer/targets-cli.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,sBAAsB,EAG5B,MAAM,YAAY,CAAC;AAOpB,eAAO,MAAM,WAAW,EAAE,sBAAsB,EAsI/C,CAAC"}
@@ -0,0 +1,126 @@
1
+ import {} from "./types.js";
2
+ import { pJoin, getAppDataDir, getConfigDir, } from "./targets-base.js";
3
+ export const CLI_TARGETS = [
4
+ {
5
+ id: "devin",
6
+ displayName: "Devin CLI (Cognition)",
7
+ category: "cli",
8
+ format: "JSON",
9
+ scopes: ["global", "workspace"],
10
+ defaultScope: "global",
11
+ patcherType: "jsonc",
12
+ resolvePaths: (scope, env) => {
13
+ const globalConfig = env.platform === "win32"
14
+ ? pJoin(env.platform, getAppDataDir(env), "devin", "mcp_config.json")
15
+ : pJoin(env.platform, getConfigDir(env), "devin", "mcp_config.json");
16
+ const workConfig = pJoin(env.platform, env.cwd ?? ".", ".devin", "mcp_config.json");
17
+ return {
18
+ configPath: scope === "workspace" ? workConfig : globalConfig,
19
+ detectDirs: [
20
+ pJoin(env.platform, getConfigDir(env), "devin"),
21
+ pJoin(env.platform, env.cwd ?? ".", ".devin"),
22
+ ],
23
+ executables: ["devin"],
24
+ };
25
+ },
26
+ },
27
+ {
28
+ id: "codex",
29
+ displayName: "Codex CLI (OpenAI)",
30
+ category: "cli",
31
+ format: "TOML",
32
+ scopes: ["global"],
33
+ defaultScope: "global",
34
+ patcherType: "toml",
35
+ resolvePaths: (_scope, env) => ({
36
+ configPath: pJoin(env.platform, env.homeDir, ".codex", "config.toml"),
37
+ detectDirs: [pJoin(env.platform, env.homeDir, ".codex")],
38
+ executables: ["codex"],
39
+ }),
40
+ },
41
+ {
42
+ id: "claude-code",
43
+ displayName: "Claude Code CLI",
44
+ category: "cli",
45
+ format: "JSON",
46
+ scopes: ["global", "workspace"],
47
+ defaultScope: "global",
48
+ patcherType: "jsonc",
49
+ resolvePaths: (scope, env) => ({
50
+ configPath: scope === "workspace"
51
+ ? pJoin(env.platform, env.cwd ?? ".", ".mcp.json")
52
+ : pJoin(env.platform, env.homeDir, ".claude.json"),
53
+ detectDirs: [pJoin(env.platform, env.homeDir, ".claude")],
54
+ executables: ["claude"],
55
+ }),
56
+ },
57
+ {
58
+ id: "goose",
59
+ displayName: "Goose CLI (Block)",
60
+ category: "cli",
61
+ format: "YAML",
62
+ scopes: ["global"],
63
+ defaultScope: "global",
64
+ patcherType: "yaml",
65
+ resolvePaths: (_scope, env) => {
66
+ const baseDir = env.platform === "win32"
67
+ ? pJoin(env.platform, getAppDataDir(env), "goose")
68
+ : pJoin(env.platform, getConfigDir(env), "goose");
69
+ return {
70
+ configPath: pJoin(env.platform, baseDir, "config.yaml"),
71
+ detectDirs: [baseDir],
72
+ executables: ["goose"],
73
+ };
74
+ },
75
+ },
76
+ {
77
+ id: "opencode",
78
+ displayName: "OpenCode CLI",
79
+ category: "cli",
80
+ format: "JSON",
81
+ scopes: ["global", "workspace"],
82
+ defaultScope: "global",
83
+ patcherType: "opencode",
84
+ resolvePaths: (scope, env) => ({
85
+ configPath: scope === "workspace"
86
+ ? pJoin(env.platform, env.cwd ?? ".", "opencode.json")
87
+ : pJoin(env.platform, getConfigDir(env), "opencode", "opencode.json"),
88
+ detectDirs: [
89
+ pJoin(env.platform, getConfigDir(env), "opencode"),
90
+ pJoin(env.platform, env.cwd ?? ".", ".opencode"),
91
+ ],
92
+ executables: ["opencode"],
93
+ }),
94
+ },
95
+ {
96
+ id: "antigravity",
97
+ displayName: "Antigravity CLI (agy)",
98
+ category: "cli",
99
+ format: "JSON",
100
+ scopes: ["global"],
101
+ defaultScope: "global",
102
+ patcherType: "jsonc",
103
+ resolvePaths: (_scope, env) => ({
104
+ configPath: pJoin(env.platform, env.homeDir, ".gemini", "antigravity-cli", "mcp", "sirius.json"),
105
+ detectDirs: [pJoin(env.platform, env.homeDir, ".gemini", "antigravity-cli")],
106
+ executables: ["agy", "antigravity"],
107
+ }),
108
+ },
109
+ {
110
+ id: "aider",
111
+ displayName: "Aider CLI",
112
+ category: "cli",
113
+ format: "YAML",
114
+ scopes: ["global", "workspace"],
115
+ defaultScope: "global",
116
+ patcherType: "yaml",
117
+ resolvePaths: (scope, env) => ({
118
+ configPath: scope === "workspace"
119
+ ? pJoin(env.platform, env.cwd ?? ".", ".aider.conf.yml")
120
+ : pJoin(env.platform, env.homeDir, ".aider.conf.yml"),
121
+ detectDirs: [pJoin(env.platform, env.homeDir, ".aider")],
122
+ executables: ["aider"],
123
+ }),
124
+ },
125
+ ];
126
+ //# sourceMappingURL=targets-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targets-cli.js","sourceRoot":"","sources":["../../src/installer/targets-cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { type ClientTargetDefinition } from "./types.js";
2
+ export declare const IDE_TARGETS: ClientTargetDefinition[];
3
+ //# sourceMappingURL=targets-ide.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targets-ide.d.ts","sourceRoot":"","sources":["../../src/installer/targets-ide.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,sBAAsB,EAG5B,MAAM,YAAY,CAAC;AASpB,eAAO,MAAM,WAAW,EAAE,sBAAsB,EAmM/C,CAAC"}
@@ -0,0 +1,180 @@
1
+ import {} from "./types.js";
2
+ import { pJoin, getAppDataDir, getConfigDir, getAppSupportDir, getCodeUserDir, } from "./targets-base.js";
3
+ export const IDE_TARGETS = [
4
+ {
5
+ id: "cursor",
6
+ displayName: "Cursor IDE (Flagship)",
7
+ category: "ide",
8
+ format: "JSONC",
9
+ scopes: ["global", "workspace"],
10
+ defaultScope: "global",
11
+ patcherType: "jsonc",
12
+ resolvePaths: (scope, env) => ({
13
+ configPath: scope === "workspace"
14
+ ? pJoin(env.platform, env.cwd ?? ".", ".cursor", "mcp.json")
15
+ : pJoin(env.platform, env.homeDir, ".cursor", "mcp.json"),
16
+ detectDirs: [
17
+ pJoin(env.platform, env.homeDir, ".cursor"),
18
+ pJoin(env.platform, env.cwd ?? ".", ".cursor"),
19
+ ],
20
+ executables: ["cursor"],
21
+ }),
22
+ },
23
+ {
24
+ id: "kiro",
25
+ displayName: "Kiro IDE / CLI",
26
+ category: "ide",
27
+ format: "JSONC",
28
+ scopes: ["global", "workspace"],
29
+ defaultScope: "global",
30
+ patcherType: "jsonc",
31
+ resolvePaths: (scope, env) => ({
32
+ configPath: scope === "workspace"
33
+ ? pJoin(env.platform, env.cwd ?? ".", ".kiro", "settings", "mcp.json")
34
+ : pJoin(env.platform, env.homeDir, ".kiro", "settings", "mcp.json"),
35
+ detectDirs: [
36
+ pJoin(env.platform, env.homeDir, ".kiro"),
37
+ pJoin(env.platform, env.cwd ?? ".", ".kiro"),
38
+ ],
39
+ executables: ["kiro"],
40
+ }),
41
+ },
42
+ {
43
+ id: "windsurf",
44
+ displayName: "Windsurf (Codeium)",
45
+ category: "ide",
46
+ format: "JSONC",
47
+ scopes: ["global"],
48
+ defaultScope: "global",
49
+ patcherType: "jsonc",
50
+ resolvePaths: (_scope, env) => ({
51
+ configPath: pJoin(env.platform, env.homeDir, ".codeium", "windsurf", "mcp_config.json"),
52
+ detectDirs: [
53
+ pJoin(env.platform, env.homeDir, ".codeium", "windsurf"),
54
+ pJoin(env.platform, env.homeDir, ".codeium"),
55
+ ],
56
+ executables: ["windsurf"],
57
+ }),
58
+ },
59
+ {
60
+ id: "claude-desktop",
61
+ displayName: "Claude Desktop",
62
+ category: "ide",
63
+ format: "JSON",
64
+ scopes: ["global"],
65
+ defaultScope: "global",
66
+ patcherType: "jsonc",
67
+ needsMacGuiEnvPatch: true,
68
+ resolvePaths: (_scope, env) => {
69
+ const dir = getAppSupportDir(env, "Claude");
70
+ return {
71
+ configPath: pJoin(env.platform, dir, "claude_desktop_config.json"),
72
+ detectDirs: [dir],
73
+ executables: ["claude"],
74
+ };
75
+ },
76
+ },
77
+ {
78
+ id: "copilot",
79
+ displayName: "GitHub Copilot (VS Code)",
80
+ category: "ide",
81
+ format: "JSONC",
82
+ scopes: ["workspace", "global"],
83
+ defaultScope: "workspace",
84
+ patcherType: "jsonc",
85
+ resolvePaths: (scope, env) => {
86
+ const workConfig = pJoin(env.platform, env.cwd ?? ".", ".vscode", "mcp.json");
87
+ const globalConfig = pJoin(env.platform, getCodeUserDir(env), "mcp.json");
88
+ return {
89
+ configPath: scope === "workspace" ? workConfig : globalConfig,
90
+ detectDirs: [pJoin(env.platform, env.cwd ?? ".", ".vscode"), getCodeUserDir(env)],
91
+ executables: ["code"],
92
+ };
93
+ },
94
+ },
95
+ {
96
+ id: "roo-code",
97
+ displayName: "VS Code (Roo Code Ext)",
98
+ category: "ide",
99
+ format: "JSON",
100
+ scopes: ["global"],
101
+ defaultScope: "global",
102
+ patcherType: "jsonc",
103
+ resolvePaths: (_scope, env) => {
104
+ const storageDir = pJoin(env.platform, getCodeUserDir(env), "globalStorage", "rooveterinaryinc.roo-cline");
105
+ return {
106
+ configPath: pJoin(env.platform, storageDir, "settings", "cline_mcp_settings.json"),
107
+ detectDirs: [storageDir],
108
+ executables: ["code"],
109
+ };
110
+ },
111
+ },
112
+ {
113
+ id: "cline",
114
+ displayName: "VS Code (Cline Ext)",
115
+ category: "ide",
116
+ format: "JSON",
117
+ scopes: ["global"],
118
+ defaultScope: "global",
119
+ patcherType: "jsonc",
120
+ resolvePaths: (_scope, env) => {
121
+ const storageDir = pJoin(env.platform, getCodeUserDir(env), "globalStorage", "saoudrizwan.claude-dev");
122
+ return {
123
+ configPath: pJoin(env.platform, storageDir, "settings", "cline_mcp_settings.json"),
124
+ detectDirs: [storageDir],
125
+ executables: ["code"],
126
+ };
127
+ },
128
+ },
129
+ {
130
+ id: "continue",
131
+ displayName: "VS Code (Continue.dev)",
132
+ category: "ide",
133
+ format: "JSONC",
134
+ scopes: ["global"],
135
+ defaultScope: "global",
136
+ patcherType: "continue",
137
+ resolvePaths: (_scope, env) => ({
138
+ configPath: pJoin(env.platform, env.homeDir, ".continue", "config.json"),
139
+ detectDirs: [pJoin(env.platform, env.homeDir, ".continue")],
140
+ executables: ["code"],
141
+ }),
142
+ },
143
+ {
144
+ id: "zed",
145
+ displayName: "Zed Editor",
146
+ category: "ide",
147
+ format: "JSONC",
148
+ scopes: ["global"],
149
+ defaultScope: "global",
150
+ patcherType: "zed",
151
+ resolvePaths: (_scope, env) => {
152
+ const zedDir = env.platform === "win32"
153
+ ? pJoin(env.platform, getAppDataDir(env), "Zed")
154
+ : pJoin(env.platform, getConfigDir(env), "zed");
155
+ return {
156
+ configPath: pJoin(env.platform, zedDir, "settings.json"),
157
+ detectDirs: [zedDir],
158
+ executables: ["zed"],
159
+ };
160
+ },
161
+ },
162
+ {
163
+ id: "jetbrains",
164
+ displayName: "JetBrains IDEs [beta]",
165
+ category: "ide",
166
+ format: "JSON",
167
+ scopes: ["global"],
168
+ defaultScope: "global",
169
+ patcherType: "jsonc",
170
+ resolvePaths: (_scope, env) => {
171
+ const jbDir = getAppSupportDir(env, "JetBrains");
172
+ return {
173
+ configPath: pJoin(env.platform, jbDir, "mcp.json"),
174
+ detectDirs: [jbDir],
175
+ executables: ["idea", "webstorm", "pycharm", "rustrover", "goland"],
176
+ };
177
+ },
178
+ },
179
+ ];
180
+ //# sourceMappingURL=targets-ide.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targets-ide.js","sourceRoot":"","sources":["../../src/installer/targets-ide.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { type ClientTargetDefinition } from "./types.js";
2
+ export * from "./targets-base.js";
3
+ export * from "./targets-cli.js";
4
+ export * from "./targets-ide.js";
5
+ export declare const ALL_TARGETS: ClientTargetDefinition[];
6
+ export declare function getTargetById(id: string): ClientTargetDefinition | undefined;
7
+ //# sourceMappingURL=targets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targets.d.ts","sourceRoot":"","sources":["../../src/installer/targets.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,sBAAsB,EAC5B,MAAM,YAAY,CAAC;AAIpB,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AAEjC,eAAO,MAAM,WAAW,EAAE,sBAAsB,EAAqC,CAAC;AAEtF,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS,CAE5E"}
@@ -0,0 +1,11 @@
1
+ import {} from "./types.js";
2
+ import { CLI_TARGETS } from "./targets-cli.js";
3
+ import { IDE_TARGETS } from "./targets-ide.js";
4
+ export * from "./targets-base.js";
5
+ export * from "./targets-cli.js";
6
+ export * from "./targets-ide.js";
7
+ export const ALL_TARGETS = [...CLI_TARGETS, ...IDE_TARGETS];
8
+ export function getTargetById(id) {
9
+ return ALL_TARGETS.find((t) => t.id.toLowerCase() === id.toLowerCase());
10
+ }
11
+ //# sourceMappingURL=targets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"targets.js","sourceRoot":"","sources":["../../src/installer/targets.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,kBAAkB,CAAC;AAEjC,MAAM,CAAC,MAAM,WAAW,GAA6B,CAAC,GAAG,WAAW,EAAE,GAAG,WAAW,CAAC,CAAC;AAEtF,MAAM,UAAU,aAAa,CAAC,EAAU;IACtC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;AAC1E,CAAC"}
@@ -0,0 +1,8 @@
1
+ import { type DetectedTarget, type InstallerOptions, type PatchResult, type TargetScope } from "./types.js";
2
+ export declare function initialSelectionHeuristic(detected: DetectedTarget[]): Set<string>;
3
+ export declare function toggleSelection(selected: Set<string>, id: string): void;
4
+ export declare function toggleCategorySelection(selected: Set<string>, targets: DetectedTarget[], category: "cli" | "ide"): void;
5
+ export declare function renderChecklistScreen(detected: DetectedTarget[], selected: Set<string>, cursorIndex: number, scope: TargetScope, showUndetected: boolean): string;
6
+ export declare function renderSummaryScreen(results: PatchResult[]): string;
7
+ export declare function startInteractiveWizard(initialOptions?: Partial<InstallerOptions>): Promise<number>;
8
+ //# sourceMappingURL=tui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tui.d.ts","sourceRoot":"","sources":["../../src/installer/tui.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,WAAW,EACjB,MAAM,YAAY,CAAC;AAWpB,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,CAAC,CAQjF;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAMvE;AAED,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EACrB,OAAO,EAAE,cAAc,EAAE,EACzB,QAAQ,EAAE,KAAK,GAAG,KAAK,GACtB,IAAI,CAWN;AA4BD,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,cAAc,EAAE,EAC1B,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EACrB,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,WAAW,EAClB,cAAc,EAAE,OAAO,GACtB,MAAM,CAwCR;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,WAAW,EAAE,GAAG,MAAM,CAsBlE;AA4FD,wBAAsB,sBAAsB,CAC1C,cAAc,GAAE,OAAO,CAAC,gBAAgB,CAAM,GAC7C,OAAO,CAAC,MAAM,CAAC,CAuFjB"}