@memnexus-ai/cli 1.7.41 → 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.
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +24 -0
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/memories.d.ts.map +1 -1
- package/dist/commands/memories.js +20 -2
- package/dist/commands/memories.js.map +1 -1
- package/dist/commands/setup.d.ts +6 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +406 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/index.js +21 -2
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-help.d.ts.map +1 -1
- package/dist/lib/agent-help.js +42 -0
- package/dist/lib/agent-help.js.map +1 -1
- package/dist/lib/auth.d.ts.map +1 -1
- package/dist/lib/auth.js +0 -1
- package/dist/lib/auth.js.map +1 -1
- package/dist/lib/config.d.ts +6 -0
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +13 -0
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/setup/config-writer.d.ts +37 -0
- package/dist/lib/setup/config-writer.d.ts.map +1 -0
- package/dist/lib/setup/config-writer.js +186 -0
- package/dist/lib/setup/config-writer.js.map +1 -0
- package/dist/lib/setup/detector.d.ts +13 -0
- package/dist/lib/setup/detector.d.ts.map +1 -0
- package/dist/lib/setup/detector.js +163 -0
- package/dist/lib/setup/detector.js.map +1 -0
- package/dist/lib/setup/index.d.ts +9 -0
- package/dist/lib/setup/index.d.ts.map +1 -0
- package/dist/lib/setup/index.js +33 -0
- package/dist/lib/setup/index.js.map +1 -0
- package/dist/lib/setup/proxy.d.ts +28 -0
- package/dist/lib/setup/proxy.d.ts.map +1 -0
- package/dist/lib/setup/proxy.js +201 -0
- package/dist/lib/setup/proxy.js.map +1 -0
- package/dist/lib/setup/registry.d.ts +12 -0
- package/dist/lib/setup/registry.d.ts.map +1 -0
- package/dist/lib/setup/registry.js +179 -0
- package/dist/lib/setup/registry.js.map +1 -0
- package/dist/lib/setup/rules-templates.d.ts +18 -0
- package/dist/lib/setup/rules-templates.d.ts.map +1 -0
- package/dist/lib/setup/rules-templates.js +184 -0
- package/dist/lib/setup/rules-templates.js.map +1 -0
- package/dist/lib/setup/rules-writer.d.ts +40 -0
- package/dist/lib/setup/rules-writer.d.ts.map +1 -0
- package/dist/lib/setup/rules-writer.js +126 -0
- package/dist/lib/setup/rules-writer.js.map +1 -0
- package/dist/lib/setup/types.d.ts +120 -0
- package/dist/lib/setup/types.d.ts.map +1 -0
- package/dist/lib/setup/types.js +6 -0
- package/dist/lib/setup/types.js.map +1 -0
- package/dist/lib/setup/verifier.d.ts +13 -0
- package/dist/lib/setup/verifier.d.ts.map +1 -0
- package/dist/lib/setup/verifier.js +199 -0
- package/dist/lib/setup/verifier.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,406 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.registerSetupCommands = registerSetupCommands;
|
|
7
|
+
const inquirer_1 = __importDefault(require("inquirer"));
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const ora_1 = __importDefault(require("ora"));
|
|
10
|
+
const config_1 = require("../lib/config");
|
|
11
|
+
const errors_1 = require("../lib/errors");
|
|
12
|
+
const index_1 = require("../lib/setup/index");
|
|
13
|
+
/**
|
|
14
|
+
* Register setup commands.
|
|
15
|
+
*/
|
|
16
|
+
function registerSetupCommands(program) {
|
|
17
|
+
const setup = program
|
|
18
|
+
.command('setup [agent]')
|
|
19
|
+
.description('Configure MCP server integration for AI coding agents')
|
|
20
|
+
.option('--project <dir>', 'Project directory (default: global scope)')
|
|
21
|
+
.option('--api-key <key>', 'API key to use (default: from mx auth login)')
|
|
22
|
+
.option('--yes', 'Skip confirmation prompts')
|
|
23
|
+
.option('--dry-run', 'Preview changes without writing files')
|
|
24
|
+
.option('--upgrade', 'Upgrade mcp-proxy binary to latest pinned version')
|
|
25
|
+
.action(async (agentId, options) => {
|
|
26
|
+
try {
|
|
27
|
+
if (options.upgrade) {
|
|
28
|
+
await handleUpgrade();
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (agentId) {
|
|
32
|
+
await handleDirectSetup(agentId, options);
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
await handleInteractiveSetup(options);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
(0, errors_1.handleError)(error);
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
setup
|
|
43
|
+
.command('verify')
|
|
44
|
+
.description('Health-check all configured agents')
|
|
45
|
+
.action(async () => {
|
|
46
|
+
try {
|
|
47
|
+
await handleVerify();
|
|
48
|
+
}
|
|
49
|
+
catch (error) {
|
|
50
|
+
(0, errors_1.handleError)(error);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
setup
|
|
54
|
+
.command('rules')
|
|
55
|
+
.description('Write or update MemNexus steering rules for an agent')
|
|
56
|
+
.requiredOption('--agent <id>', 'Agent to write rules for')
|
|
57
|
+
.option('--project <dir>', 'Project directory (default: global scope)')
|
|
58
|
+
.option('--dry-run', 'Preview changes without writing files')
|
|
59
|
+
.action(async (_options, cmd) => {
|
|
60
|
+
try {
|
|
61
|
+
const opts = cmd.optsWithGlobals();
|
|
62
|
+
await handleRules(opts.agent, opts);
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
(0, errors_1.handleError)(error);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
setup
|
|
69
|
+
.command('remove')
|
|
70
|
+
.description('Remove MemNexus config from an agent')
|
|
71
|
+
.requiredOption('--agent <id>', 'Agent to remove config from')
|
|
72
|
+
.option('--project <dir>', 'Project directory (default: global scope)')
|
|
73
|
+
.action(async (_options, cmd) => {
|
|
74
|
+
try {
|
|
75
|
+
const opts = cmd.optsWithGlobals();
|
|
76
|
+
await handleRemove(opts.agent, opts);
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
79
|
+
(0, errors_1.handleError)(error);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
// ── Interactive Setup ─────────────────────────────────────────
|
|
84
|
+
async function handleInteractiveSetup(options) {
|
|
85
|
+
console.log(chalk_1.default.bold('\nMemNexus MCP Setup\n'));
|
|
86
|
+
// Detect agents
|
|
87
|
+
const spinner = (0, ora_1.default)('Detecting AI coding agents...').start();
|
|
88
|
+
const detected = await (0, index_1.detectAgents)(options.project || process.cwd());
|
|
89
|
+
spinner.stop();
|
|
90
|
+
if (detected.length === 0) {
|
|
91
|
+
console.log(chalk_1.default.yellow('No AI coding agents detected. Supported agents:\n' +
|
|
92
|
+
(0, index_1.getSortedAgents)()
|
|
93
|
+
.map((a) => ` - ${a.name} (${a.id})`)
|
|
94
|
+
.join('\n') +
|
|
95
|
+
'\n\nYou can configure a specific agent with: mx setup <agent>'));
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
// Show detected agents
|
|
99
|
+
console.log(`Found ${detected.length} agent(s):\n`);
|
|
100
|
+
for (const d of detected) {
|
|
101
|
+
const status = d.alreadyConfigured ? chalk_1.default.green(' (already configured)') : '';
|
|
102
|
+
const where = chalk_1.default.gray(` [${d.detectedAt}]`);
|
|
103
|
+
console.log(` ${chalk_1.default.cyan(d.agent.name)}${where}${status}`);
|
|
104
|
+
}
|
|
105
|
+
console.log();
|
|
106
|
+
// Multi-select which agents to configure
|
|
107
|
+
const unconfigured = detected.filter((d) => !d.alreadyConfigured);
|
|
108
|
+
if (unconfigured.length === 0) {
|
|
109
|
+
console.log(chalk_1.default.green('All detected agents are already configured!'));
|
|
110
|
+
console.log(chalk_1.default.gray('Run `mx setup verify` to check their health.\n'));
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const { selectedIds } = await inquirer_1.default.prompt([
|
|
114
|
+
{
|
|
115
|
+
type: 'checkbox',
|
|
116
|
+
name: 'selectedIds',
|
|
117
|
+
message: 'Select agents to configure:',
|
|
118
|
+
choices: unconfigured.map((d) => ({
|
|
119
|
+
name: `${d.agent.name} — ${d.agent.description}`,
|
|
120
|
+
value: d.agent.id,
|
|
121
|
+
checked: true,
|
|
122
|
+
})),
|
|
123
|
+
},
|
|
124
|
+
]);
|
|
125
|
+
if (selectedIds.length === 0) {
|
|
126
|
+
console.log(chalk_1.default.gray('No agents selected.\n'));
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
// Determine scope
|
|
130
|
+
const scope = options.project ? 'project' : 'global';
|
|
131
|
+
// Get API key
|
|
132
|
+
const apiKey = await resolveApiKey(options.apiKey);
|
|
133
|
+
if (!apiKey)
|
|
134
|
+
return;
|
|
135
|
+
// Configure each agent
|
|
136
|
+
for (const id of selectedIds) {
|
|
137
|
+
const agent = (0, index_1.getAgent)(id);
|
|
138
|
+
if (!agent)
|
|
139
|
+
continue;
|
|
140
|
+
await setupAgent(agent, apiKey, scope, options);
|
|
141
|
+
}
|
|
142
|
+
// Show restart instructions
|
|
143
|
+
console.log(chalk_1.default.bold('\nNext steps:'));
|
|
144
|
+
for (const id of selectedIds) {
|
|
145
|
+
const agent = (0, index_1.getAgent)(id);
|
|
146
|
+
if (agent) {
|
|
147
|
+
console.log(` ${chalk_1.default.cyan(agent.name)}: Restart the application to activate MemNexus tools`);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
console.log();
|
|
151
|
+
}
|
|
152
|
+
// ── Direct Setup ──────────────────────────────────────────────
|
|
153
|
+
async function handleDirectSetup(agentId, options) {
|
|
154
|
+
const agent = (0, index_1.getAgent)(agentId);
|
|
155
|
+
if (!agent) {
|
|
156
|
+
const validIds = (0, index_1.getAgentIds)().join(', ');
|
|
157
|
+
console.error(chalk_1.default.red(`Unknown agent: ${agentId}`) + `\nValid agents: ${validIds}`);
|
|
158
|
+
process.exit(1);
|
|
159
|
+
}
|
|
160
|
+
const scope = options.project ? 'project' : 'global';
|
|
161
|
+
const apiKey = await resolveApiKey(options.apiKey);
|
|
162
|
+
if (!apiKey)
|
|
163
|
+
return;
|
|
164
|
+
await setupAgent(agent, apiKey, scope, options);
|
|
165
|
+
console.log(chalk_1.default.bold(`\nRestart ${agent.name} to activate MemNexus tools.\n`));
|
|
166
|
+
}
|
|
167
|
+
// ── Core Setup Logic ──────────────────────────────────────────
|
|
168
|
+
async function setupAgent(agent, apiKey, scope, options) {
|
|
169
|
+
const label = chalk_1.default.cyan(agent.name);
|
|
170
|
+
// Ensure proxy binary for stdio agents
|
|
171
|
+
if (agent.mcp.transport === 'mcp-proxy-stdio') {
|
|
172
|
+
const proxySpinner = (0, ora_1.default)(`${label}: Ensuring mcp-proxy binary...`).start();
|
|
173
|
+
try {
|
|
174
|
+
const proxyPath = await (0, index_1.ensureProxy)((msg) => {
|
|
175
|
+
proxySpinner.text = `${label}: ${msg}`;
|
|
176
|
+
});
|
|
177
|
+
proxySpinner.succeed(`${label}: mcp-proxy ready (${proxyPath})`);
|
|
178
|
+
}
|
|
179
|
+
catch (error) {
|
|
180
|
+
proxySpinner.fail(`${label}: Failed to install mcp-proxy: ${error.message}`);
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
// Write config
|
|
185
|
+
const writeSpinner = (0, ora_1.default)(`${label}: Writing config...`).start();
|
|
186
|
+
try {
|
|
187
|
+
const result = await (0, index_1.writeAgentConfig)({
|
|
188
|
+
agent,
|
|
189
|
+
apiKey,
|
|
190
|
+
scope,
|
|
191
|
+
projectDir: options.project || process.cwd(),
|
|
192
|
+
dryRun: options.dryRun,
|
|
193
|
+
});
|
|
194
|
+
if (options.dryRun) {
|
|
195
|
+
writeSpinner.info(`${label}: Dry run — would write to ${result.configPath}`);
|
|
196
|
+
console.log(chalk_1.default.gray('─'.repeat(60)));
|
|
197
|
+
console.log(result.content);
|
|
198
|
+
console.log(chalk_1.default.gray('─'.repeat(60)));
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
const backupNote = result.backupPath ? chalk_1.default.gray(` (backup: ${result.backupPath})`) : '';
|
|
202
|
+
writeSpinner.succeed(`${label}: Config written to ${result.configPath}${backupNote}`);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
catch (error) {
|
|
206
|
+
writeSpinner.fail(`${label}: Failed: ${error.message}`);
|
|
207
|
+
}
|
|
208
|
+
// Write steering file
|
|
209
|
+
if (agent.steering) {
|
|
210
|
+
const canWriteSteering = scope === 'project' || agent.steering.globalFilePath !== null;
|
|
211
|
+
if (canWriteSteering) {
|
|
212
|
+
const rulesSpinner = (0, ora_1.default)(`${label}: Writing steering rules...`).start();
|
|
213
|
+
try {
|
|
214
|
+
const rulesResult = await (0, index_1.writeSteeringFile)({
|
|
215
|
+
agent,
|
|
216
|
+
scope,
|
|
217
|
+
projectDir: options.project || process.cwd(),
|
|
218
|
+
dryRun: options.dryRun,
|
|
219
|
+
});
|
|
220
|
+
if (!rulesResult) {
|
|
221
|
+
rulesSpinner.info(`${label}: No steering file path for this platform`);
|
|
222
|
+
}
|
|
223
|
+
else if (options.dryRun) {
|
|
224
|
+
rulesSpinner.info(`${label}: Dry run — would write rules to ${rulesResult.filePath}`);
|
|
225
|
+
console.log(chalk_1.default.gray('─'.repeat(60)));
|
|
226
|
+
console.log(rulesResult.content);
|
|
227
|
+
console.log(chalk_1.default.gray('─'.repeat(60)));
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
const backupNote = rulesResult.backupPath
|
|
231
|
+
? chalk_1.default.gray(` (backup: ${rulesResult.backupPath})`)
|
|
232
|
+
: '';
|
|
233
|
+
rulesSpinner.succeed(`${label}: Rules ${rulesResult.action} at ${rulesResult.filePath}${backupNote}`);
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
catch (error) {
|
|
237
|
+
rulesSpinner.fail(`${label}: Failed to write rules: ${error.message}`);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
else {
|
|
241
|
+
// Agent has steering but only project-scoped, and we're doing global setup
|
|
242
|
+
console.log(chalk_1.default.gray(` ${agent.name}: Steering rules are project-scoped. ` +
|
|
243
|
+
`Run \`mx setup rules --agent ${agent.id} --project <dir>\` to add rules to a project.`));
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
else if (agent.id === 'claude-desktop') {
|
|
247
|
+
// Claude Desktop has no file-based steering — print MCP-only guidance
|
|
248
|
+
console.log(chalk_1.default.gray(` ${agent.name}: No file-based instruction support. ` +
|
|
249
|
+
`MCP tools provide memory management guidance directly.`));
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
// ── Rules ────────────────────────────────────────────────────
|
|
253
|
+
async function handleRules(agentId, options) {
|
|
254
|
+
const agent = (0, index_1.getAgent)(agentId);
|
|
255
|
+
if (!agent) {
|
|
256
|
+
const validIds = (0, index_1.getAgentIds)().join(', ');
|
|
257
|
+
console.error(chalk_1.default.red(`Unknown agent: ${agentId}`) + `\nValid agents: ${validIds}`);
|
|
258
|
+
process.exit(1);
|
|
259
|
+
}
|
|
260
|
+
if (!agent.steering) {
|
|
261
|
+
console.log(chalk_1.default.yellow(`${agent.name} does not support file-based steering rules.\n`));
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
const scope = options.project ? 'project' : 'global';
|
|
265
|
+
const label = chalk_1.default.cyan(agent.name);
|
|
266
|
+
// Check if the scope is valid for this agent
|
|
267
|
+
if (scope === 'global' && !agent.steering.globalFilePath) {
|
|
268
|
+
console.log(chalk_1.default.yellow(`${agent.name} steering rules are project-scoped only.\n` +
|
|
269
|
+
`Use: mx setup rules --agent ${agent.id} --project <dir>\n`));
|
|
270
|
+
return;
|
|
271
|
+
}
|
|
272
|
+
const spinner = (0, ora_1.default)(`${label}: Writing steering rules...`).start();
|
|
273
|
+
try {
|
|
274
|
+
const result = await (0, index_1.writeSteeringFile)({
|
|
275
|
+
agent,
|
|
276
|
+
scope,
|
|
277
|
+
projectDir: options.project || process.cwd(),
|
|
278
|
+
dryRun: options.dryRun,
|
|
279
|
+
});
|
|
280
|
+
if (!result) {
|
|
281
|
+
spinner.info(`${label}: No steering file path for this platform`);
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
if (options.dryRun) {
|
|
285
|
+
spinner.info(`${label}: Dry run — would write to ${result.filePath}`);
|
|
286
|
+
console.log(chalk_1.default.gray('─'.repeat(60)));
|
|
287
|
+
console.log(result.content);
|
|
288
|
+
console.log(chalk_1.default.gray('─'.repeat(60)));
|
|
289
|
+
}
|
|
290
|
+
else {
|
|
291
|
+
const backupNote = result.backupPath ? chalk_1.default.gray(` (backup: ${result.backupPath})`) : '';
|
|
292
|
+
spinner.succeed(`${label}: Rules ${result.action} at ${result.filePath}${backupNote}`);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
catch (error) {
|
|
296
|
+
spinner.fail(`${label}: Failed: ${error.message}`);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
// ── Verify ────────────────────────────────────────────────────
|
|
300
|
+
async function handleVerify() {
|
|
301
|
+
console.log(chalk_1.default.bold('\nMemNexus Setup Verification\n'));
|
|
302
|
+
const spinner = (0, ora_1.default)('Checking configured agents...').start();
|
|
303
|
+
const results = await (0, index_1.verifyAll)();
|
|
304
|
+
spinner.stop();
|
|
305
|
+
if (results.length === 0) {
|
|
306
|
+
console.log(chalk_1.default.yellow('No configured agents found. Run `mx setup` to get started.\n'));
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
let allPassed = true;
|
|
310
|
+
for (const result of results) {
|
|
311
|
+
const icon = result.allPassed ? chalk_1.default.green('✓') : chalk_1.default.red('✗');
|
|
312
|
+
console.log(`${icon} ${chalk_1.default.bold(result.agentName)}`);
|
|
313
|
+
for (const check of result.checks) {
|
|
314
|
+
const checkIcon = check.passed ? chalk_1.default.green(' ✓') : chalk_1.default.red(' ✗');
|
|
315
|
+
console.log(`${checkIcon} ${check.name}: ${check.message}`);
|
|
316
|
+
}
|
|
317
|
+
console.log();
|
|
318
|
+
if (!result.allPassed)
|
|
319
|
+
allPassed = false;
|
|
320
|
+
}
|
|
321
|
+
if (allPassed) {
|
|
322
|
+
console.log(chalk_1.default.green('All checks passed!\n'));
|
|
323
|
+
}
|
|
324
|
+
else {
|
|
325
|
+
console.log(chalk_1.default.yellow('Some checks failed. Run `mx setup <agent>` to fix.\n'));
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
// ── Remove ────────────────────────────────────────────────────
|
|
329
|
+
async function handleRemove(agentId, options) {
|
|
330
|
+
const agent = (0, index_1.getAgent)(agentId);
|
|
331
|
+
if (!agent) {
|
|
332
|
+
console.error(chalk_1.default.red(`Unknown agent: ${agentId}`));
|
|
333
|
+
process.exit(1);
|
|
334
|
+
}
|
|
335
|
+
const scope = options.project ? 'project' : 'global';
|
|
336
|
+
const projectDir = options.project || process.cwd();
|
|
337
|
+
const removedConfig = await (0, index_1.removeAgentConfig)({
|
|
338
|
+
agent,
|
|
339
|
+
scope,
|
|
340
|
+
projectDir,
|
|
341
|
+
});
|
|
342
|
+
const removedSteering = await (0, index_1.removeSteeringSection)({
|
|
343
|
+
agent,
|
|
344
|
+
scope,
|
|
345
|
+
projectDir,
|
|
346
|
+
});
|
|
347
|
+
if (removedConfig || removedSteering) {
|
|
348
|
+
const parts = [];
|
|
349
|
+
if (removedConfig)
|
|
350
|
+
parts.push('MCP config');
|
|
351
|
+
if (removedSteering)
|
|
352
|
+
parts.push('steering rules');
|
|
353
|
+
console.log(chalk_1.default.green(`Removed ${parts.join(' and ')} from ${agent.name}.`));
|
|
354
|
+
console.log(chalk_1.default.gray(`Restart ${agent.name} to apply changes.\n`));
|
|
355
|
+
}
|
|
356
|
+
else {
|
|
357
|
+
console.log(chalk_1.default.yellow(`No MemNexus config found for ${agent.name}.\n`));
|
|
358
|
+
}
|
|
359
|
+
}
|
|
360
|
+
// ── Upgrade ───────────────────────────────────────────────────
|
|
361
|
+
async function handleUpgrade() {
|
|
362
|
+
const installed = await (0, index_1.isProxyInstalled)();
|
|
363
|
+
if (!installed) {
|
|
364
|
+
console.log(chalk_1.default.yellow('mcp-proxy is not installed. Run `mx setup <agent>` to install.\n'));
|
|
365
|
+
return;
|
|
366
|
+
}
|
|
367
|
+
const spinner = (0, ora_1.default)('Upgrading mcp-proxy...').start();
|
|
368
|
+
try {
|
|
369
|
+
// Remove old binary and re-download
|
|
370
|
+
await (0, index_1.removeProxy)();
|
|
371
|
+
const proxyPath = await (0, index_1.ensureProxy)((msg) => {
|
|
372
|
+
spinner.text = msg;
|
|
373
|
+
});
|
|
374
|
+
spinner.succeed(`mcp-proxy upgraded to v${(0, index_1.getProxyVersion)()} (${proxyPath})`);
|
|
375
|
+
}
|
|
376
|
+
catch (error) {
|
|
377
|
+
spinner.fail(`Upgrade failed: ${error.message}`);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
// ── Helpers ───────────────────────────────────────────────────
|
|
381
|
+
async function resolveApiKey(override) {
|
|
382
|
+
// Flag override
|
|
383
|
+
if (override)
|
|
384
|
+
return override;
|
|
385
|
+
// From config/env
|
|
386
|
+
const configured = config_1.config.getApiKey();
|
|
387
|
+
if (configured)
|
|
388
|
+
return configured;
|
|
389
|
+
// Interactive prompt
|
|
390
|
+
const { apiKey } = await inquirer_1.default.prompt([
|
|
391
|
+
{
|
|
392
|
+
type: 'password',
|
|
393
|
+
name: 'apiKey',
|
|
394
|
+
message: 'Enter your MemNexus API key (get one at https://portal.memnexus.ai):',
|
|
395
|
+
mask: '*',
|
|
396
|
+
validate: (input) => {
|
|
397
|
+
if (!input || input.trim().length === 0) {
|
|
398
|
+
return 'API key cannot be empty';
|
|
399
|
+
}
|
|
400
|
+
return true;
|
|
401
|
+
},
|
|
402
|
+
},
|
|
403
|
+
]);
|
|
404
|
+
return apiKey || undefined;
|
|
405
|
+
}
|
|
406
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -19,10 +19,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
19
19
|
* v1.7.27: Temporary direct API call for batch (SDK not yet regenerated)
|
|
20
20
|
* v1.7.28: Use SDK for batch memory retrieval (SDK v1.17.0+)
|
|
21
21
|
*/
|
|
22
|
+
const config_1 = require("./lib/config");
|
|
23
|
+
const package_json_1 = __importDefault(require("../package.json"));
|
|
24
|
+
// Inject X-MX-Client header into all outgoing fetch requests for API-layer analytics
|
|
25
|
+
const originalFetch = globalThis.fetch;
|
|
26
|
+
globalThis.fetch = (input, init) => {
|
|
27
|
+
const headers = new Headers(init?.headers);
|
|
28
|
+
if (!headers.has('X-MX-Client')) {
|
|
29
|
+
const agentInfo = config_1.config.detectAIAgent();
|
|
30
|
+
const agent = agentInfo.detected ? agentInfo.agent : 'terminal';
|
|
31
|
+
const clientInfo = [
|
|
32
|
+
`mx-cli/${package_json_1.default.version}`,
|
|
33
|
+
`os=${process.platform}`,
|
|
34
|
+
`node=${process.version}`,
|
|
35
|
+
`agent=${agent}`,
|
|
36
|
+
].join(' ');
|
|
37
|
+
headers.set('X-MX-Client', clientInfo);
|
|
38
|
+
}
|
|
39
|
+
return originalFetch(input, { ...init, headers });
|
|
40
|
+
};
|
|
22
41
|
const commander_1 = require("commander");
|
|
23
42
|
const update_notifier_1 = __importDefault(require("update-notifier"));
|
|
24
|
-
const package_json_1 = __importDefault(require("../package.json"));
|
|
25
|
-
const config_1 = require("./lib/config");
|
|
26
43
|
const auth_1 = require("./commands/auth");
|
|
27
44
|
const config_2 = require("./commands/config");
|
|
28
45
|
const memories_1 = require("./commands/memories");
|
|
@@ -36,6 +53,7 @@ const apikeys_1 = require("./commands/apikeys");
|
|
|
36
53
|
const system_1 = require("./commands/system");
|
|
37
54
|
const update_1 = require("./commands/update");
|
|
38
55
|
const narratives_1 = require("./commands/narratives");
|
|
56
|
+
const setup_1 = require("./commands/setup");
|
|
39
57
|
const agent_help_1 = require("./lib/agent-help");
|
|
40
58
|
// Check for updates (respects config)
|
|
41
59
|
const notifier = (0, update_notifier_1.default)({
|
|
@@ -78,6 +96,7 @@ program
|
|
|
78
96
|
(0, system_1.registerSystemCommands)(program);
|
|
79
97
|
(0, update_1.registerUpdateCommands)(program);
|
|
80
98
|
(0, narratives_1.registerNarrativesCommands)(program);
|
|
99
|
+
(0, setup_1.registerSetupCommands)(program);
|
|
81
100
|
// Register agent-help as a real command (visible in mx --help)
|
|
82
101
|
program
|
|
83
102
|
.command('agent-help')
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AACA;;;;;;;;;;;;;;GAcG;AACH,yCAAoC;AACpC,sEAA6C;AAC7C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-help.d.ts","sourceRoot":"","sources":["../../src/lib/agent-help.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-help.d.ts","sourceRoot":"","sources":["../../src/lib/agent-help.ts"],"names":[],"mappings":"AAoVA;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,MAAM,CAetF"}
|
package/dist/lib/agent-help.js
CHANGED
|
@@ -18,6 +18,7 @@ const package_json_1 = __importDefault(require("../../package.json"));
|
|
|
18
18
|
// ─── Curated Content ─────────────────────────────────────────────
|
|
19
19
|
const QUICK_START = [
|
|
20
20
|
'mx auth login --api-key <key>',
|
|
21
|
+
'mx auth status # check plan, quota, usage',
|
|
21
22
|
'mx memories create --content "..." --conversation-id "NEW"',
|
|
22
23
|
'mx memories search --query "..."',
|
|
23
24
|
'mx memories recap --recent 24h',
|
|
@@ -108,6 +109,18 @@ const WORKFLOWS = [
|
|
|
108
109
|
notes: 'Stores key locally. Use mx auth status to verify. Alternative: set MX_API_KEY env var.',
|
|
109
110
|
scope: 'auth',
|
|
110
111
|
},
|
|
112
|
+
{
|
|
113
|
+
goal: 'Check account profile, plan, quota, and usage',
|
|
114
|
+
command: 'mx auth status',
|
|
115
|
+
notes: 'Shows plan, usage, quota, and memory limits. This is the ONLY command for account/plan info — do NOT search memories for account details.',
|
|
116
|
+
scope: 'auth',
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
goal: 'Delete a specific memory',
|
|
120
|
+
command: 'mx memories delete <id>',
|
|
121
|
+
notes: 'Soft-deletes a single memory (recoverable by support within 30 days). Always confirm with the user before deleting. NEVER use --force in automation or agent mode — it is blocked for safety.',
|
|
122
|
+
scope: 'memories',
|
|
123
|
+
},
|
|
111
124
|
];
|
|
112
125
|
const DISAMBIGUATION = [
|
|
113
126
|
{
|
|
@@ -134,6 +147,16 @@ const DISAMBIGUATION = [
|
|
|
134
147
|
explanation: 'content: Searches raw memory text only.\nfacts: Searches extracted structured knowledge only.\nunified (default): Searches content + facts + entities for broadest results.',
|
|
135
148
|
scope: 'memories',
|
|
136
149
|
},
|
|
150
|
+
{
|
|
151
|
+
commands: ['mx memories delete <id>', 'mx memories delete <id> --force'],
|
|
152
|
+
explanation: 'delete: Prompts for confirmation before deleting. Safe for interactive use.\ndelete --force: Skips confirmation. BLOCKED in non-interactive/agent mode (exits with error). Only works in an interactive terminal.',
|
|
153
|
+
scope: 'memories',
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
commands: ['mx auth status', 'mx memories search --query "plan"'],
|
|
157
|
+
explanation: 'auth status: Shows account profile, plan, quota, and usage. This is the correct command for account info.\nmemories search: Searches memory content, NOT account details. Do not use this for plan/quota questions.',
|
|
158
|
+
scope: 'auth',
|
|
159
|
+
},
|
|
137
160
|
];
|
|
138
161
|
const ENVIRONMENT = {
|
|
139
162
|
MX_PROFILE: "Set to 'ai' for AI-optimized defaults (json format, no color, limit 10)",
|
|
@@ -151,6 +174,15 @@ const TIPS = [
|
|
|
151
174
|
'Never run mx commands in the background - they complete in <1 second.',
|
|
152
175
|
'Use --timeline flag on search for chronological results with state indicators.',
|
|
153
176
|
'Use --recent 24h (also: 7d, 2w, 1h, 30m) to limit results by time.',
|
|
177
|
+
'Use `mx auth status` for account/plan/quota info — do NOT search memories for it.',
|
|
178
|
+
];
|
|
179
|
+
const SAFETY_GUIDELINES = [
|
|
180
|
+
'NEVER use --force on delete commands in automation or agent mode. It is blocked for safety.',
|
|
181
|
+
'NEVER delete memories in bulk or in a loop. If the user asks to delete all memories, explain this must be done through the web portal.',
|
|
182
|
+
'Always confirm with the user before deleting any memory.',
|
|
183
|
+
'Bulk deletion is not available via CLI — only through the web portal.',
|
|
184
|
+
'Deleted memories are soft-deleted (recoverable by support within 30 days).',
|
|
185
|
+
'The API enforces delete rate limits (10/min, 50/hour). Do not attempt to circumvent them.',
|
|
154
186
|
];
|
|
155
187
|
// ─── Markdown Renderer ───────────────────────────────────────────
|
|
156
188
|
function renderMarkdown(content, scope) {
|
|
@@ -204,6 +236,14 @@ function renderMarkdown(content, scope) {
|
|
|
204
236
|
}
|
|
205
237
|
lines.push('');
|
|
206
238
|
}
|
|
239
|
+
// Safety Guidelines (only for full guide)
|
|
240
|
+
if (!scope) {
|
|
241
|
+
lines.push('## Safety Guidelines');
|
|
242
|
+
for (const guideline of content.safetyGuidelines) {
|
|
243
|
+
lines.push(`- ${guideline}`);
|
|
244
|
+
}
|
|
245
|
+
lines.push('');
|
|
246
|
+
}
|
|
207
247
|
// Tips (only for full guide)
|
|
208
248
|
if (!scope) {
|
|
209
249
|
lines.push('## Tips for Agents');
|
|
@@ -231,6 +271,7 @@ function renderJson(content, scope) {
|
|
|
231
271
|
}
|
|
232
272
|
if (!scope) {
|
|
233
273
|
filtered.environment = content.environment;
|
|
274
|
+
filtered.safetyGuidelines = content.safetyGuidelines;
|
|
234
275
|
filtered.tips = content.tips;
|
|
235
276
|
}
|
|
236
277
|
return JSON.stringify(filtered, null, 2);
|
|
@@ -250,6 +291,7 @@ function getAgentHelp(scope, format) {
|
|
|
250
291
|
disambiguation: DISAMBIGUATION,
|
|
251
292
|
environment: ENVIRONMENT,
|
|
252
293
|
tips: TIPS,
|
|
294
|
+
safetyGuidelines: SAFETY_GUIDELINES,
|
|
253
295
|
};
|
|
254
296
|
if (format === 'json') {
|
|
255
297
|
return renderJson(content, scope);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-help.js","sourceRoot":"","sources":["../../src/lib/agent-help.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"agent-help.js","sourceRoot":"","sources":["../../src/lib/agent-help.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/auth.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"AAGA,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":"AAGA,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAOhD;AAED,wBAAgB,YAAY,IAAI,IAAI,CAGnC;AAED,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED,wBAAgB,eAAe,IAAI;IAAE,UAAU,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;CAAE,CAQ5F;AAGD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAGpD;AAED,wBAAgB,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAG1D"}
|
package/dist/lib/auth.js
CHANGED
package/dist/lib/auth.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":";;;;;AAGA,
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":";;;;;AAGA,kCAOC;AAED,oCAGC;AAED,8BAEC;AAED,0CAQC;AAGD,sCAGC;AAED,sCAGC;AAxCD,qCAAkC;AAClC,kDAA0B;AAE1B,SAAgB,WAAW,CAAC,MAAc;IACxC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,sCAAsC;IACtC,eAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;AAC3B,CAAC;AAED,SAAgB,YAAY;IAC1B,eAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACxB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAChD,CAAC;AAED,SAAgB,SAAS;IACvB,OAAO,eAAM,CAAC,SAAS,EAAE,CAAC;AAC5B,CAAC;AAED,SAAgB,eAAe;IAC7B,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QAC3B,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC7C,CAAC;IACD,IAAI,eAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACzB,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;IAChD,CAAC;IACD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAC/C,CAAC;AAED,wCAAwC;AACxC,SAAgB,aAAa,CAAC,MAAc;IAC1C,4CAA4C;IAC5C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,aAAa,CAAC,YAAoB;IAChD,4CAA4C;IAC5C,OAAO,YAAY,CAAC;AACtB,CAAC"}
|