@memnexus-ai/cli 1.7.42 → 1.7.43

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 (55) hide show
  1. package/dist/commands/auth.d.ts.map +1 -1
  2. package/dist/commands/auth.js +24 -0
  3. package/dist/commands/auth.js.map +1 -1
  4. package/dist/commands/memories.d.ts.map +1 -1
  5. package/dist/commands/memories.js +20 -2
  6. package/dist/commands/memories.js.map +1 -1
  7. package/dist/commands/setup.d.ts +6 -0
  8. package/dist/commands/setup.d.ts.map +1 -0
  9. package/dist/commands/setup.js +406 -0
  10. package/dist/commands/setup.js.map +1 -0
  11. package/dist/index.js +21 -2
  12. package/dist/index.js.map +1 -1
  13. package/dist/lib/agent-help.d.ts.map +1 -1
  14. package/dist/lib/agent-help.js +42 -0
  15. package/dist/lib/agent-help.js.map +1 -1
  16. package/dist/lib/auth.d.ts.map +1 -1
  17. package/dist/lib/auth.js +0 -1
  18. package/dist/lib/auth.js.map +1 -1
  19. package/dist/lib/setup/config-writer.d.ts +37 -0
  20. package/dist/lib/setup/config-writer.d.ts.map +1 -0
  21. package/dist/lib/setup/config-writer.js +186 -0
  22. package/dist/lib/setup/config-writer.js.map +1 -0
  23. package/dist/lib/setup/detector.d.ts +13 -0
  24. package/dist/lib/setup/detector.d.ts.map +1 -0
  25. package/dist/lib/setup/detector.js +163 -0
  26. package/dist/lib/setup/detector.js.map +1 -0
  27. package/dist/lib/setup/index.d.ts +9 -0
  28. package/dist/lib/setup/index.d.ts.map +1 -0
  29. package/dist/lib/setup/index.js +33 -0
  30. package/dist/lib/setup/index.js.map +1 -0
  31. package/dist/lib/setup/proxy.d.ts +28 -0
  32. package/dist/lib/setup/proxy.d.ts.map +1 -0
  33. package/dist/lib/setup/proxy.js +201 -0
  34. package/dist/lib/setup/proxy.js.map +1 -0
  35. package/dist/lib/setup/registry.d.ts +12 -0
  36. package/dist/lib/setup/registry.d.ts.map +1 -0
  37. package/dist/lib/setup/registry.js +179 -0
  38. package/dist/lib/setup/registry.js.map +1 -0
  39. package/dist/lib/setup/rules-templates.d.ts +18 -0
  40. package/dist/lib/setup/rules-templates.d.ts.map +1 -0
  41. package/dist/lib/setup/rules-templates.js +184 -0
  42. package/dist/lib/setup/rules-templates.js.map +1 -0
  43. package/dist/lib/setup/rules-writer.d.ts +40 -0
  44. package/dist/lib/setup/rules-writer.d.ts.map +1 -0
  45. package/dist/lib/setup/rules-writer.js +126 -0
  46. package/dist/lib/setup/rules-writer.js.map +1 -0
  47. package/dist/lib/setup/types.d.ts +120 -0
  48. package/dist/lib/setup/types.d.ts.map +1 -0
  49. package/dist/lib/setup/types.js +6 -0
  50. package/dist/lib/setup/types.js.map +1 -0
  51. package/dist/lib/setup/verifier.d.ts +13 -0
  52. package/dist/lib/setup/verifier.d.ts.map +1 -0
  53. package/dist/lib/setup/verifier.js +199 -0
  54. package/dist/lib/setup/verifier.js.map +1 -0
  55. package/package.json +2 -2
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Config file writer — merges memnexus MCP config into existing
3
+ * agent config files without overwriting other entries.
4
+ *
5
+ * Supports JSON (most agents) and TOML (Codex CLI).
6
+ */
7
+ import type { AgentDefinition, Scope } from './types.js';
8
+ /** Resolve the config file path for a given agent, scope, and platform. */
9
+ export declare function resolveConfigPath(agent: AgentDefinition, scope: Scope, projectDir?: string): string;
10
+ /**
11
+ * Write the memnexus MCP config for an agent.
12
+ * Merges into existing config — never overwrites other entries.
13
+ * Creates a .bak backup before modifying existing files.
14
+ *
15
+ * Returns the path to the written config file and optional backup path.
16
+ */
17
+ export declare function writeAgentConfig(options: {
18
+ agent: AgentDefinition;
19
+ apiKey: string;
20
+ scope: Scope;
21
+ projectDir?: string;
22
+ dryRun?: boolean;
23
+ }): Promise<{
24
+ configPath: string;
25
+ backupPath?: string;
26
+ content: string;
27
+ }>;
28
+ /**
29
+ * Remove the memnexus entry from an agent's config file.
30
+ * Returns true if the entry was found and removed.
31
+ */
32
+ export declare function removeAgentConfig(options: {
33
+ agent: AgentDefinition;
34
+ scope: Scope;
35
+ projectDir?: string;
36
+ }): Promise<boolean>;
37
+ //# sourceMappingURL=config-writer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-writer.d.ts","sourceRoot":"","sources":["../../../src/lib/setup/config-writer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AA0BzD,2EAA2E;AAC3E,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,eAAe,EACtB,KAAK,EAAE,KAAK,EACZ,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAmBR;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAC9C,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CASxE;AAqFD;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAC/C,KAAK,EAAE,eAAe,CAAC;IACvB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GAAG,OAAO,CAAC,OAAO,CAAC,CAoDnB"}
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+ /**
3
+ * Config file writer — merges memnexus MCP config into existing
4
+ * agent config files without overwriting other entries.
5
+ *
6
+ * Supports JSON (most agents) and TOML (Codex CLI).
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.resolveConfigPath = resolveConfigPath;
13
+ exports.writeAgentConfig = writeAgentConfig;
14
+ exports.removeAgentConfig = removeAgentConfig;
15
+ const node_fs_1 = require("node:fs");
16
+ const promises_1 = require("node:fs/promises");
17
+ const node_path_1 = __importDefault(require("node:path"));
18
+ const detector_js_1 = require("./detector.js");
19
+ const proxy_js_1 = require("./proxy.js");
20
+ /** The MCP server URL. */
21
+ const MCP_SERVER_URL = 'https://mcp.memnexus.ai/mcp';
22
+ /** Build the memnexus server entry for a JSON-config agent. */
23
+ function buildJsonServerEntry(proxyPath, apiKey) {
24
+ return {
25
+ command: proxyPath,
26
+ args: [MCP_SERVER_URL, '--header', `Authorization: Bearer ${apiKey}`],
27
+ };
28
+ }
29
+ /** Build the TOML block for Codex CLI. */
30
+ function buildTomlBlock() {
31
+ return [
32
+ '',
33
+ '[mcp_servers.memnexus]',
34
+ `url = "https://mcp.memnexus.ai"`,
35
+ `bearer_token_env_var = "MX_API_KEY"`,
36
+ '',
37
+ ].join('\n');
38
+ }
39
+ /** Resolve the config file path for a given agent, scope, and platform. */
40
+ function resolveConfigPath(agent, scope, projectDir) {
41
+ const platform = process.platform;
42
+ if (scope === 'project') {
43
+ if (!projectDir) {
44
+ throw new Error('Project directory required for project scope');
45
+ }
46
+ if (!agent.mcp.projectConfigPath) {
47
+ throw new Error(`${agent.name} does not support project-scoped config`);
48
+ }
49
+ return node_path_1.default.join(projectDir, agent.mcp.projectConfigPath);
50
+ }
51
+ // Global scope
52
+ const globalPath = agent.mcp.globalConfigPath[platform];
53
+ if (!globalPath) {
54
+ throw new Error(`${agent.name} does not have a global config path for ${platform}`);
55
+ }
56
+ return (0, detector_js_1.resolvePath)(globalPath);
57
+ }
58
+ /**
59
+ * Write the memnexus MCP config for an agent.
60
+ * Merges into existing config — never overwrites other entries.
61
+ * Creates a .bak backup before modifying existing files.
62
+ *
63
+ * Returns the path to the written config file and optional backup path.
64
+ */
65
+ async function writeAgentConfig(options) {
66
+ const { agent, apiKey, scope, projectDir, dryRun } = options;
67
+ const configPath = resolveConfigPath(agent, scope, projectDir);
68
+ if (agent.mcp.configFormat === 'toml') {
69
+ return writeTomlConfig(configPath, dryRun);
70
+ }
71
+ return writeJsonConfig(agent, configPath, apiKey, dryRun);
72
+ }
73
+ /** Write/merge JSON MCP config. */
74
+ async function writeJsonConfig(agent, configPath, apiKey, dryRun) {
75
+ const proxyPath = (0, proxy_js_1.getProxyPath)();
76
+ const serverEntry = buildJsonServerEntry(proxyPath, apiKey);
77
+ let backupPath;
78
+ // Read existing config or start fresh
79
+ let config = {};
80
+ if ((0, node_fs_1.existsSync)(configPath)) {
81
+ try {
82
+ const raw = await (0, promises_1.readFile)(configPath, 'utf-8');
83
+ config = JSON.parse(raw);
84
+ }
85
+ catch {
86
+ // If we can't parse, start fresh but back up the original
87
+ config = {};
88
+ }
89
+ // Backup existing file
90
+ if (!dryRun) {
91
+ backupPath = configPath + '.bak';
92
+ await (0, promises_1.copyFile)(configPath, backupPath);
93
+ }
94
+ }
95
+ // Merge — only touch the memnexus entry under the correct servers key
96
+ const serversKey = agent.mcp.serversKey;
97
+ if (!config[serversKey] || typeof config[serversKey] !== 'object') {
98
+ config[serversKey] = {};
99
+ }
100
+ config[serversKey].memnexus = serverEntry;
101
+ const content = JSON.stringify(config, null, 2) + '\n';
102
+ if (!dryRun) {
103
+ await (0, promises_1.mkdir)(node_path_1.default.dirname(configPath), { recursive: true });
104
+ await (0, promises_1.writeFile)(configPath, content, 'utf-8');
105
+ }
106
+ return { configPath, backupPath, content };
107
+ }
108
+ /** Write/merge TOML MCP config (Codex CLI). */
109
+ async function writeTomlConfig(configPath, dryRun) {
110
+ let backupPath;
111
+ let existing = '';
112
+ if ((0, node_fs_1.existsSync)(configPath)) {
113
+ existing = await (0, promises_1.readFile)(configPath, 'utf-8');
114
+ // If already has memnexus, skip
115
+ if (existing.includes('[mcp_servers.memnexus]')) {
116
+ return {
117
+ configPath,
118
+ content: existing,
119
+ };
120
+ }
121
+ if (!dryRun) {
122
+ backupPath = configPath + '.bak';
123
+ await (0, promises_1.copyFile)(configPath, backupPath);
124
+ }
125
+ }
126
+ // Append TOML block
127
+ const tomlBlock = buildTomlBlock();
128
+ const content = existing + tomlBlock;
129
+ if (!dryRun) {
130
+ await (0, promises_1.mkdir)(node_path_1.default.dirname(configPath), { recursive: true });
131
+ await (0, promises_1.writeFile)(configPath, content, 'utf-8');
132
+ }
133
+ return { configPath, backupPath, content };
134
+ }
135
+ /**
136
+ * Remove the memnexus entry from an agent's config file.
137
+ * Returns true if the entry was found and removed.
138
+ */
139
+ async function removeAgentConfig(options) {
140
+ const { agent, scope, projectDir } = options;
141
+ const configPath = resolveConfigPath(agent, scope, projectDir);
142
+ if (!(0, node_fs_1.existsSync)(configPath))
143
+ return false;
144
+ if (agent.mcp.configFormat === 'toml') {
145
+ const raw = await (0, promises_1.readFile)(configPath, 'utf-8');
146
+ if (!raw.includes('[mcp_servers.memnexus]'))
147
+ return false;
148
+ // Remove the memnexus block (from [mcp_servers.memnexus] to next section or EOF)
149
+ const lines = raw.split('\n');
150
+ const filtered = [];
151
+ let skipping = false;
152
+ for (const line of lines) {
153
+ if (line.trim() === '[mcp_servers.memnexus]') {
154
+ skipping = true;
155
+ continue;
156
+ }
157
+ if (skipping && line.trim().startsWith('[')) {
158
+ skipping = false;
159
+ }
160
+ if (!skipping) {
161
+ filtered.push(line);
162
+ }
163
+ }
164
+ await (0, promises_1.writeFile)(configPath, filtered.join('\n'), 'utf-8');
165
+ return true;
166
+ }
167
+ // JSON
168
+ try {
169
+ const raw = await (0, promises_1.readFile)(configPath, 'utf-8');
170
+ const config = JSON.parse(raw);
171
+ const servers = config[agent.mcp.serversKey];
172
+ if (!servers || !('memnexus' in servers))
173
+ return false;
174
+ delete servers.memnexus;
175
+ // If servers object is now empty, remove it too
176
+ if (Object.keys(servers).length === 0) {
177
+ delete config[agent.mcp.serversKey];
178
+ }
179
+ await (0, promises_1.writeFile)(configPath, JSON.stringify(config, null, 2) + '\n', 'utf-8');
180
+ return true;
181
+ }
182
+ catch {
183
+ return false;
184
+ }
185
+ }
186
+ //# sourceMappingURL=config-writer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-writer.js","sourceRoot":"","sources":["../../../src/lib/setup/config-writer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Agent detection — find which AI coding agents are installed
3
+ * by checking project directories and global binary/config paths.
4
+ */
5
+ import type { DetectedAgent } from './types.js';
6
+ /** Resolve ~ and %APPDATA% in paths. */
7
+ export declare function resolvePath(p: string): string;
8
+ /**
9
+ * Detect all agents — both project-level and global.
10
+ * Returns agents sorted by sortOrder with detection metadata.
11
+ */
12
+ export declare function detectAgents(projectDir?: string): Promise<DetectedAgent[]>;
13
+ //# sourceMappingURL=detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detector.d.ts","sourceRoot":"","sources":["../../../src/lib/setup/detector.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAOH,OAAO,KAAK,EAAmB,aAAa,EAAY,MAAM,YAAY,CAAC;AAG3E,wCAAwC;AACxC,wBAAgB,WAAW,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAS7C;AAuGD;;;GAGG;AACH,wBAAsB,YAAY,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAqDhF"}
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ /**
3
+ * Agent detection — find which AI coding agents are installed
4
+ * by checking project directories and global binary/config paths.
5
+ */
6
+ var __importDefault = (this && this.__importDefault) || function (mod) {
7
+ return (mod && mod.__esModule) ? mod : { "default": mod };
8
+ };
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.resolvePath = resolvePath;
11
+ exports.detectAgents = detectAgents;
12
+ const node_fs_1 = require("node:fs");
13
+ const promises_1 = require("node:fs/promises");
14
+ const node_child_process_1 = require("node:child_process");
15
+ const node_path_1 = __importDefault(require("node:path"));
16
+ const node_os_1 = __importDefault(require("node:os"));
17
+ const registry_js_1 = require("./registry.js");
18
+ /** Resolve ~ and %APPDATA% in paths. */
19
+ function resolvePath(p) {
20
+ if (p.startsWith('~')) {
21
+ return node_path_1.default.join(node_os_1.default.homedir(), p.slice(1));
22
+ }
23
+ if (p.includes('%APPDATA%')) {
24
+ const appData = process.env.APPDATA || node_path_1.default.join(node_os_1.default.homedir(), 'AppData', 'Roaming');
25
+ return p.replace('%APPDATA%', appData);
26
+ }
27
+ return p;
28
+ }
29
+ /** Check if a binary is available in PATH. */
30
+ function isBinaryInPath(name) {
31
+ try {
32
+ const cmd = node_os_1.default.platform() === 'win32' ? 'where' : 'which';
33
+ (0, node_child_process_1.execFileSync)(cmd, [name], {
34
+ stdio: 'ignore',
35
+ windowsHide: true,
36
+ });
37
+ return true;
38
+ }
39
+ catch {
40
+ return false;
41
+ }
42
+ }
43
+ /**
44
+ * Detect agents installed in a project directory.
45
+ */
46
+ function detectProjectAgents(projectDir, agents) {
47
+ const found = new Map();
48
+ for (const agent of agents) {
49
+ for (const dir of agent.detection.projectDirs) {
50
+ const fullPath = node_path_1.default.join(projectDir, dir);
51
+ if ((0, node_fs_1.existsSync)(fullPath)) {
52
+ found.set(agent.id, 'project');
53
+ break;
54
+ }
55
+ }
56
+ }
57
+ return found;
58
+ }
59
+ /**
60
+ * Detect agents installed globally (binaries in PATH or global config dirs).
61
+ */
62
+ function detectGlobalAgents(agents) {
63
+ const platform = node_os_1.default.platform();
64
+ const found = new Map();
65
+ for (const agent of agents) {
66
+ // Check binaries
67
+ for (const bin of agent.detection.binaries) {
68
+ if (isBinaryInPath(bin)) {
69
+ found.set(agent.id, 'global');
70
+ break;
71
+ }
72
+ }
73
+ // Check global config directories
74
+ if (!found.has(agent.id)) {
75
+ const globalDir = agent.detection.globalDirs[platform];
76
+ if (globalDir) {
77
+ const resolved = resolvePath(globalDir);
78
+ if ((0, node_fs_1.existsSync)(resolved)) {
79
+ found.set(agent.id, 'global');
80
+ }
81
+ }
82
+ }
83
+ }
84
+ return found;
85
+ }
86
+ /**
87
+ * Check if memnexus is already configured in an existing config file.
88
+ */
89
+ async function checkExistingConfig(configPath, agent) {
90
+ if (!(0, node_fs_1.existsSync)(configPath)) {
91
+ return { exists: false, hasMemnexus: false };
92
+ }
93
+ try {
94
+ const content = await (0, promises_1.readFile)(configPath, 'utf-8');
95
+ if (agent.mcp.configFormat === 'toml') {
96
+ // Simple check for TOML — look for [mcp_servers.memnexus]
97
+ return {
98
+ exists: true,
99
+ hasMemnexus: content.includes('[mcp_servers.memnexus]'),
100
+ };
101
+ }
102
+ // JSON — parse and check for memnexus key
103
+ const parsed = JSON.parse(content);
104
+ const servers = parsed[agent.mcp.serversKey] || {};
105
+ return {
106
+ exists: true,
107
+ hasMemnexus: 'memnexus' in servers,
108
+ };
109
+ }
110
+ catch {
111
+ return { exists: true, hasMemnexus: false };
112
+ }
113
+ }
114
+ /**
115
+ * Detect all agents — both project-level and global.
116
+ * Returns agents sorted by sortOrder with detection metadata.
117
+ */
118
+ async function detectAgents(projectDir) {
119
+ const agents = (0, registry_js_1.getSortedAgents)();
120
+ const platform = node_os_1.default.platform();
121
+ const projectFound = projectDir
122
+ ? detectProjectAgents(projectDir, agents)
123
+ : new Map();
124
+ const globalFound = detectGlobalAgents(agents);
125
+ const results = [];
126
+ for (const agent of agents) {
127
+ const inProject = projectFound.has(agent.id);
128
+ const inGlobal = globalFound.has(agent.id);
129
+ if (!inProject && !inGlobal)
130
+ continue;
131
+ const detectedAt = inProject && inGlobal ? 'both' : inProject ? 'project' : 'global';
132
+ // Check existing config
133
+ let existingConfigPath;
134
+ let alreadyConfigured = false;
135
+ // Check global config first
136
+ const globalPath = agent.mcp.globalConfigPath[platform];
137
+ if (globalPath) {
138
+ const resolved = resolvePath(globalPath);
139
+ const check = await checkExistingConfig(resolved, agent);
140
+ if (check.exists) {
141
+ existingConfigPath = resolved;
142
+ alreadyConfigured = check.hasMemnexus;
143
+ }
144
+ }
145
+ // Check project config if project dir provided
146
+ if (projectDir && agent.mcp.projectConfigPath) {
147
+ const projectPath = node_path_1.default.join(projectDir, agent.mcp.projectConfigPath);
148
+ const check = await checkExistingConfig(projectPath, agent);
149
+ if (check.exists) {
150
+ existingConfigPath = projectPath;
151
+ alreadyConfigured = check.hasMemnexus;
152
+ }
153
+ }
154
+ results.push({
155
+ agent,
156
+ detectedAt,
157
+ existingConfigPath,
158
+ alreadyConfigured,
159
+ });
160
+ }
161
+ return results;
162
+ }
163
+ //# sourceMappingURL=detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detector.js","sourceRoot":"","sources":["../../../src/lib/setup/detector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ export { detectAgents, resolvePath } from './detector.js';
2
+ export { ensureProxy, getProxyPath, isProxyInstalled, removeProxy, getProxyVersion, } from './proxy.js';
3
+ export { writeAgentConfig, removeAgentConfig, resolveConfigPath } from './config-writer.js';
4
+ export { verifyAgent, verifyAll } from './verifier.js';
5
+ export { writeSteeringFile, removeSteeringSection, getSteeringVersion, resolveSteeringPath, } from './rules-writer.js';
6
+ export { composeRules, parseSteeringVersion } from './rules-templates.js';
7
+ export { getAgent, getAgentIds, getSortedAgents, AGENTS } from './registry.js';
8
+ export type * from './types.js';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/setup/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EACL,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,WAAW,EACX,eAAe,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EACL,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC/E,mBAAmB,YAAY,CAAC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AGENTS = exports.getSortedAgents = exports.getAgentIds = exports.getAgent = exports.parseSteeringVersion = exports.composeRules = exports.resolveSteeringPath = exports.getSteeringVersion = exports.removeSteeringSection = exports.writeSteeringFile = exports.verifyAll = exports.verifyAgent = exports.resolveConfigPath = exports.removeAgentConfig = exports.writeAgentConfig = exports.getProxyVersion = exports.removeProxy = exports.isProxyInstalled = exports.getProxyPath = exports.ensureProxy = exports.resolvePath = exports.detectAgents = void 0;
4
+ var detector_js_1 = require("./detector.js");
5
+ Object.defineProperty(exports, "detectAgents", { enumerable: true, get: function () { return detector_js_1.detectAgents; } });
6
+ Object.defineProperty(exports, "resolvePath", { enumerable: true, get: function () { return detector_js_1.resolvePath; } });
7
+ var proxy_js_1 = require("./proxy.js");
8
+ Object.defineProperty(exports, "ensureProxy", { enumerable: true, get: function () { return proxy_js_1.ensureProxy; } });
9
+ Object.defineProperty(exports, "getProxyPath", { enumerable: true, get: function () { return proxy_js_1.getProxyPath; } });
10
+ Object.defineProperty(exports, "isProxyInstalled", { enumerable: true, get: function () { return proxy_js_1.isProxyInstalled; } });
11
+ Object.defineProperty(exports, "removeProxy", { enumerable: true, get: function () { return proxy_js_1.removeProxy; } });
12
+ Object.defineProperty(exports, "getProxyVersion", { enumerable: true, get: function () { return proxy_js_1.getProxyVersion; } });
13
+ var config_writer_js_1 = require("./config-writer.js");
14
+ Object.defineProperty(exports, "writeAgentConfig", { enumerable: true, get: function () { return config_writer_js_1.writeAgentConfig; } });
15
+ Object.defineProperty(exports, "removeAgentConfig", { enumerable: true, get: function () { return config_writer_js_1.removeAgentConfig; } });
16
+ Object.defineProperty(exports, "resolveConfigPath", { enumerable: true, get: function () { return config_writer_js_1.resolveConfigPath; } });
17
+ var verifier_js_1 = require("./verifier.js");
18
+ Object.defineProperty(exports, "verifyAgent", { enumerable: true, get: function () { return verifier_js_1.verifyAgent; } });
19
+ Object.defineProperty(exports, "verifyAll", { enumerable: true, get: function () { return verifier_js_1.verifyAll; } });
20
+ var rules_writer_js_1 = require("./rules-writer.js");
21
+ Object.defineProperty(exports, "writeSteeringFile", { enumerable: true, get: function () { return rules_writer_js_1.writeSteeringFile; } });
22
+ Object.defineProperty(exports, "removeSteeringSection", { enumerable: true, get: function () { return rules_writer_js_1.removeSteeringSection; } });
23
+ Object.defineProperty(exports, "getSteeringVersion", { enumerable: true, get: function () { return rules_writer_js_1.getSteeringVersion; } });
24
+ Object.defineProperty(exports, "resolveSteeringPath", { enumerable: true, get: function () { return rules_writer_js_1.resolveSteeringPath; } });
25
+ var rules_templates_js_1 = require("./rules-templates.js");
26
+ Object.defineProperty(exports, "composeRules", { enumerable: true, get: function () { return rules_templates_js_1.composeRules; } });
27
+ Object.defineProperty(exports, "parseSteeringVersion", { enumerable: true, get: function () { return rules_templates_js_1.parseSteeringVersion; } });
28
+ var registry_js_1 = require("./registry.js");
29
+ Object.defineProperty(exports, "getAgent", { enumerable: true, get: function () { return registry_js_1.getAgent; } });
30
+ Object.defineProperty(exports, "getAgentIds", { enumerable: true, get: function () { return registry_js_1.getAgentIds; } });
31
+ Object.defineProperty(exports, "getSortedAgents", { enumerable: true, get: function () { return registry_js_1.getSortedAgents; } });
32
+ Object.defineProperty(exports, "AGENTS", { enumerable: true, get: function () { return registry_js_1.AGENTS; } });
33
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lib/setup/index.ts"],"names":[],"mappings":";;;AAAA,6CAA0D;AAAjD,2GAAA,YAAY,OAAA;AAAE,0GAAA,WAAW,OAAA;AAClC,uCAMoB;AALlB,uGAAA,WAAW,OAAA;AACX,wGAAA,YAAY,OAAA;AACZ,4GAAA,gBAAgB,OAAA;AAChB,uGAAA,WAAW,OAAA;AACX,2GAAA,eAAe,OAAA;AAEjB,uDAA4F;AAAnF,oHAAA,gBAAgB,OAAA;AAAE,qHAAA,iBAAiB,OAAA;AAAE,qHAAA,iBAAiB,OAAA;AAC/D,6CAAuD;AAA9C,0GAAA,WAAW,OAAA;AAAE,wGAAA,SAAS,OAAA;AAC/B,qDAK2B;AAJzB,oHAAA,iBAAiB,OAAA;AACjB,wHAAA,qBAAqB,OAAA;AACrB,qHAAA,kBAAkB,OAAA;AAClB,sHAAA,mBAAmB,OAAA;AAErB,2DAA0E;AAAjE,kHAAA,YAAY,OAAA;AAAE,0HAAA,oBAAoB,OAAA;AAC3C,6CAA+E;AAAtE,uGAAA,QAAQ,OAAA;AAAE,0GAAA,WAAW,OAAA;AAAE,8GAAA,eAAe,OAAA;AAAE,qGAAA,MAAM,OAAA"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * mcp-proxy binary management — download, verify, and locate the compiled
3
+ * Rust binary that bridges stdio ↔ streamable HTTP for MCP connections.
4
+ *
5
+ * Source: https://github.com/tidewave-ai/mcp_proxy_rust
6
+ */
7
+ import type { Platform, Arch } from './types.js';
8
+ /** Detect current platform. */
9
+ export declare function detectPlatform(): {
10
+ os: Platform;
11
+ arch: Arch;
12
+ };
13
+ /** Get the directory where we store the proxy binary. */
14
+ export declare function getProxyDir(): string;
15
+ /** Get the full path to the proxy binary. */
16
+ export declare function getProxyPath(): string;
17
+ /** Check if the proxy binary is installed and matches the pinned version. */
18
+ export declare function isProxyInstalled(): Promise<boolean>;
19
+ /**
20
+ * Ensure the proxy binary is available. Downloads if not present or outdated.
21
+ * Returns the absolute path to the binary.
22
+ */
23
+ export declare function ensureProxy(onProgress?: (message: string) => void): Promise<string>;
24
+ /** Remove the proxy binary and version file. */
25
+ export declare function removeProxy(): Promise<void>;
26
+ /** Get the pinned proxy version. */
27
+ export declare function getProxyVersion(): string;
28
+ //# sourceMappingURL=proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../src/lib/setup/proxy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAiBjD,+BAA+B;AAC/B,wBAAgB,cAAc,IAAI;IAAE,EAAE,EAAE,QAAQ,CAAC;IAAC,IAAI,EAAE,IAAI,CAAA;CAAE,CAI7D;AAED,yDAAyD;AACzD,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,6CAA6C;AAC7C,wBAAgB,YAAY,IAAI,MAAM,CAGrC;AAOD,6EAA6E;AAC7E,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC,CAazD;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAwCzF;AAED,gDAAgD;AAChD,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAgBjD;AAED,oCAAoC;AACpC,wBAAgB,eAAe,IAAI,MAAM,CAExC"}