memax-cli 0.1.0-alpha.1 → 0.1.0-alpha.11
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/.vscode/mcp.json +8 -0
- package/dist/commands/capture.d.ts +17 -0
- package/dist/commands/capture.d.ts.map +1 -0
- package/dist/commands/capture.js +61 -0
- package/dist/commands/capture.js.map +1 -0
- package/dist/commands/delete.d.ts +1 -1
- package/dist/commands/delete.d.ts.map +1 -1
- package/dist/commands/delete.js +32 -4
- package/dist/commands/delete.js.map +1 -1
- package/dist/commands/list.d.ts +2 -1
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +34 -2
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +9 -4
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/mcp.d.ts.map +1 -1
- package/dist/commands/mcp.js +213 -10
- package/dist/commands/mcp.js.map +1 -1
- package/dist/commands/push.d.ts +1 -1
- package/dist/commands/push.d.ts.map +1 -1
- package/dist/commands/push.js +38 -4
- package/dist/commands/push.js.map +1 -1
- package/dist/commands/recall.d.ts.map +1 -1
- package/dist/commands/recall.js +2 -1
- package/dist/commands/recall.js.map +1 -1
- package/dist/commands/setup.d.ts +16 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +869 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/sync.d.ts +1 -0
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +93 -0
- package/dist/commands/sync.js.map +1 -1
- package/dist/index.js +54 -6
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/commands/capture.ts +86 -0
- package/src/commands/delete.ts +43 -5
- package/src/commands/list.ts +56 -2
- package/src/commands/login.ts +9 -4
- package/src/commands/mcp.ts +257 -11
- package/src/commands/push.ts +59 -4
- package/src/commands/recall.ts +4 -1
- package/src/commands/setup.ts +1129 -0
- package/src/commands/sync.ts +103 -0
- package/src/index.ts +63 -6
- package/.turbo/turbo-build.log +0 -4
package/.vscode/mcp.json
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
interface CaptureOptions {
|
|
2
|
+
summary?: string;
|
|
3
|
+
agent?: string;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* capture-session reads a session transcript from stdin and pushes it
|
|
7
|
+
* to Memax for fact extraction. The extraction pipeline (Claude Haiku)
|
|
8
|
+
* pulls out key decisions, learnings, and context — each becomes a
|
|
9
|
+
* separate searchable note.
|
|
10
|
+
*
|
|
11
|
+
* Usage:
|
|
12
|
+
* memax capture-session --agent claude-code (reads stdin)
|
|
13
|
+
* memax capture-session --summary "Implemented auth system with JWT"
|
|
14
|
+
*/
|
|
15
|
+
export declare function captureSessionCommand(options: CaptureOptions): Promise<void>;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=capture.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture.d.ts","sourceRoot":"","sources":["../../src/commands/capture.ts"],"names":[],"mappings":"AASA,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,IAAI,CAAC,CA2Df"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import chalk from "chalk";
|
|
2
|
+
import { apiPost } from "../lib/api.js";
|
|
3
|
+
/**
|
|
4
|
+
* capture-session reads a session transcript from stdin and pushes it
|
|
5
|
+
* to Memax for fact extraction. The extraction pipeline (Claude Haiku)
|
|
6
|
+
* pulls out key decisions, learnings, and context — each becomes a
|
|
7
|
+
* separate searchable note.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* memax capture-session --agent claude-code (reads stdin)
|
|
11
|
+
* memax capture-session --summary "Implemented auth system with JWT"
|
|
12
|
+
*/
|
|
13
|
+
export async function captureSessionCommand(options) {
|
|
14
|
+
let content = "";
|
|
15
|
+
// Read from stdin if available
|
|
16
|
+
if (!process.stdin.isTTY) {
|
|
17
|
+
const chunks = [];
|
|
18
|
+
for await (const chunk of process.stdin) {
|
|
19
|
+
chunks.push(chunk);
|
|
20
|
+
}
|
|
21
|
+
content = Buffer.concat(chunks).toString("utf-8").trim();
|
|
22
|
+
}
|
|
23
|
+
// If --summary provided, use that as the content (or append to stdin)
|
|
24
|
+
if (options.summary) {
|
|
25
|
+
if (content) {
|
|
26
|
+
content = `## Session Summary\n${options.summary}\n\n## Session Transcript\n${content}`;
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
content = options.summary;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
if (!content) {
|
|
33
|
+
console.error(chalk.red("No session data. Pipe transcript via stdin or use --summary:\n" +
|
|
34
|
+
" memax capture-session --summary 'Implemented JWT auth'\n" +
|
|
35
|
+
" cat transcript.md | memax capture-session --agent claude-code"));
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
// Truncate very long transcripts (keep first + last sections)
|
|
39
|
+
if (content.length > 20000) {
|
|
40
|
+
const head = content.slice(0, 10000);
|
|
41
|
+
const tail = content.slice(-5000);
|
|
42
|
+
content = head + "\n\n[...transcript truncated...]\n\n" + tail;
|
|
43
|
+
}
|
|
44
|
+
const agent = options.agent ?? "unknown";
|
|
45
|
+
try {
|
|
46
|
+
const note = await apiPost("/v1/notes", {
|
|
47
|
+
content,
|
|
48
|
+
title: `Session capture (${agent}) — ${new Date().toLocaleDateString()}`,
|
|
49
|
+
content_type: "transcript",
|
|
50
|
+
source: `auto-capture/${agent}`,
|
|
51
|
+
category: "chat/agent",
|
|
52
|
+
});
|
|
53
|
+
console.log(chalk.green(" Session captured."), chalk.gray(`Facts will be extracted in the background.`));
|
|
54
|
+
console.log(chalk.gray(` id: ${note.id} category: ${note.category}\n`));
|
|
55
|
+
}
|
|
56
|
+
catch (err) {
|
|
57
|
+
console.error(chalk.red(` Capture failed: ${err.message}\n`));
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=capture.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capture.js","sourceRoot":"","sources":["../../src/commands/capture.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAaxC;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,OAAuB;IAEvB,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,+BAA+B;IAC/B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACzB,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrB,CAAC;QACD,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3D,CAAC;IAED,sEAAsE;IACtE,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QACpB,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,GAAG,uBAAuB,OAAO,CAAC,OAAO,8BAA8B,OAAO,EAAE,CAAC;QAC1F,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CACP,gEAAgE;YAC9D,4DAA4D;YAC5D,iEAAiE,CACpE,CACF,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,8DAA8D;IAC9D,IAAI,OAAO,CAAC,MAAM,GAAG,KAAK,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;QAClC,OAAO,GAAG,IAAI,GAAG,sCAAsC,GAAG,IAAI,CAAC;IACjE,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;IAEzC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAO,WAAW,EAAE;YAC5C,OAAO;YACP,KAAK,EAAE,oBAAoB,KAAK,OAAO,IAAI,IAAI,EAAE,CAAC,kBAAkB,EAAE,EAAE;YACxE,YAAY,EAAE,YAAY;YAC1B,MAAM,EAAE,gBAAgB,KAAK,EAAE;YAC/B,QAAQ,EAAE,YAAY;SACvB,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,KAAK,CAAC,qBAAqB,CAAC,EAClC,KAAK,CAAC,IAAI,CAAC,4CAA4C,CAAC,CACzD,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,EAAE,eAAe,IAAI,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC;IAC5E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,qBAAsB,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"delete.d.ts","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"AAUA,wBAAsB,aAAa,CACjC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,GACzB,OAAO,CAAC,IAAI,CAAC,CA+Bf"}
|
package/dist/commands/delete.js
CHANGED
|
@@ -1,17 +1,45 @@
|
|
|
1
1
|
import chalk from "chalk";
|
|
2
|
-
import {
|
|
2
|
+
import { createInterface } from "node:readline";
|
|
3
|
+
import { apiGet, apiDelete } from "../lib/api.js";
|
|
3
4
|
export async function deleteCommand(id, options) {
|
|
4
5
|
if (!id) {
|
|
5
|
-
console.error(chalk.red("Provide a note ID: memax
|
|
6
|
+
console.error(chalk.red("Provide a note ID: memax forget <id>"));
|
|
6
7
|
process.exit(1);
|
|
7
8
|
}
|
|
9
|
+
// Show what's being deleted and confirm
|
|
10
|
+
if (!options.yes) {
|
|
11
|
+
try {
|
|
12
|
+
const note = await apiGet(`/v1/notes/${id}`);
|
|
13
|
+
console.log(chalk.yellow(`\n Delete "${note.title}" [${note.category}]?\n`));
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
console.log(chalk.yellow(`\n Delete note ${id}?\n`));
|
|
17
|
+
}
|
|
18
|
+
const confirmed = await confirm(" Type y to confirm: ");
|
|
19
|
+
if (!confirmed) {
|
|
20
|
+
console.log(chalk.gray(" Cancelled.\n"));
|
|
21
|
+
return;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
8
24
|
try {
|
|
9
25
|
await apiDelete(`/v1/notes/${id}`);
|
|
10
|
-
console.log(chalk.green("
|
|
26
|
+
console.log(chalk.green(" Forgotten."), chalk.gray(id + "\n"));
|
|
11
27
|
}
|
|
12
28
|
catch (err) {
|
|
13
|
-
console.error(chalk.red(`Delete failed: ${err.message}`));
|
|
29
|
+
console.error(chalk.red(` Delete failed: ${err.message}\n`));
|
|
14
30
|
process.exit(1);
|
|
15
31
|
}
|
|
16
32
|
}
|
|
33
|
+
function confirm(prompt) {
|
|
34
|
+
return new Promise((resolve) => {
|
|
35
|
+
const rl = createInterface({
|
|
36
|
+
input: process.stdin,
|
|
37
|
+
output: process.stdout,
|
|
38
|
+
});
|
|
39
|
+
rl.question(prompt, (answer) => {
|
|
40
|
+
rl.close();
|
|
41
|
+
resolve(answer.trim().toLowerCase() === "y");
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
}
|
|
17
45
|
//# sourceMappingURL=delete.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"delete.js","sourceRoot":"","sources":["../../src/commands/delete.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAQlD,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,EAAU,EACV,OAA0B;IAE1B,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,wCAAwC;IACxC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;QACjB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,MAAM,CAAO,aAAa,EAAE,EAAE,CAAC,CAAC;YACnD,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,eAAe,IAAI,CAAC,KAAK,MAAM,IAAI,CAAC,QAAQ,MAAM,CAAC,CACjE,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC,CAAC;QACxD,CAAC;QAED,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,uBAAuB,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC1C,OAAO;QACT,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,MAAM,SAAS,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAClE,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,oBAAqB,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;QACzE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,MAAc;IAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,EAAE,GAAG,eAAe,CAAC;YACzB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,EAAE;YAC7B,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/dist/commands/list.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAWA,UAAU,WAAW;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAyErE"}
|
package/dist/commands/list.js
CHANGED
|
@@ -2,18 +2,50 @@ import chalk from "chalk";
|
|
|
2
2
|
import { apiGet } from "../lib/api.js";
|
|
3
3
|
export async function listCommand(options) {
|
|
4
4
|
try {
|
|
5
|
-
const
|
|
5
|
+
const limit = options.limit ? parseInt(options.limit, 10) : 20;
|
|
6
|
+
const sort = options.sort ?? "newest";
|
|
7
|
+
let allNotes = [];
|
|
8
|
+
let cursor = "";
|
|
9
|
+
let total = 0;
|
|
10
|
+
// Fetch pages
|
|
11
|
+
do {
|
|
12
|
+
const params = new URLSearchParams();
|
|
13
|
+
params.set("limit", String(limit));
|
|
14
|
+
params.set("sort", sort);
|
|
15
|
+
if (cursor)
|
|
16
|
+
params.set("cursor", cursor);
|
|
17
|
+
const res = await apiGet(`/v1/notes?${params.toString()}`);
|
|
18
|
+
if (Array.isArray(res)) {
|
|
19
|
+
allNotes = res;
|
|
20
|
+
total = res.length;
|
|
21
|
+
break;
|
|
22
|
+
}
|
|
23
|
+
allNotes.push(...(res.notes ?? []));
|
|
24
|
+
cursor = res.next_cursor;
|
|
25
|
+
total = res.total;
|
|
26
|
+
// If not --all, just show first page
|
|
27
|
+
if (!options.all)
|
|
28
|
+
break;
|
|
29
|
+
} while (cursor);
|
|
30
|
+
// Filter by category if specified
|
|
31
|
+
let notes = allNotes;
|
|
32
|
+
if (options.category) {
|
|
33
|
+
notes = notes.filter((n) => n.category.toLowerCase().startsWith(options.category.toLowerCase()));
|
|
34
|
+
}
|
|
6
35
|
if (notes.length === 0) {
|
|
7
36
|
console.log(chalk.yellow("No notes yet. Push your first one:"));
|
|
8
37
|
console.log(chalk.gray(" memax push --file ./README.md"));
|
|
9
38
|
return;
|
|
10
39
|
}
|
|
11
|
-
console.log(chalk.blue(`${notes.length} note${notes.length > 1 ? "s" : ""}`));
|
|
40
|
+
console.log(chalk.blue(`${notes.length} note${notes.length > 1 ? "s" : ""}`), chalk.gray(`(${total} total)`));
|
|
12
41
|
console.log();
|
|
13
42
|
for (const note of notes) {
|
|
14
43
|
console.log(chalk.bold(note.title), chalk.gray(`[${note.category}]`), chalk.gray(`· ${note.source}`));
|
|
15
44
|
console.log(chalk.gray(` id: ${note.id}`));
|
|
16
45
|
}
|
|
46
|
+
if (!options.all && allNotes.length < total) {
|
|
47
|
+
console.log(chalk.gray(`\n Showing ${allNotes.length} of ${total}. Use --all to fetch everything.`));
|
|
48
|
+
}
|
|
17
49
|
}
|
|
18
50
|
catch (err) {
|
|
19
51
|
console.error(chalk.red(`List failed: ${err.message}`));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../src/commands/list.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAUA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAUA,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAsHlD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAInD;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAgBnD"}
|
package/dist/commands/login.js
CHANGED
|
@@ -50,16 +50,21 @@ export async function loginCommand() {
|
|
|
50
50
|
res.end("<html><body><h2>Login failed</h2><p>No authorization code received.</p></body></html>");
|
|
51
51
|
reject(new Error("No authorization code received from callback."));
|
|
52
52
|
}
|
|
53
|
-
// Close the server
|
|
54
|
-
setTimeout(() =>
|
|
53
|
+
// Close the server and force-kill connections so the process exits
|
|
54
|
+
setTimeout(() => {
|
|
55
|
+
server.close();
|
|
56
|
+
server.closeAllConnections();
|
|
57
|
+
}, 500);
|
|
55
58
|
}
|
|
56
59
|
});
|
|
57
60
|
server.listen(port);
|
|
58
|
-
// Timeout after 2 minutes
|
|
59
|
-
setTimeout(() => {
|
|
61
|
+
// Timeout after 2 minutes — use unref() so it doesn't keep the process alive
|
|
62
|
+
const timeout = setTimeout(() => {
|
|
60
63
|
server.close();
|
|
64
|
+
server.closeAllConnections();
|
|
61
65
|
reject(new Error("Login timed out — no callback received within 2 minutes."));
|
|
62
66
|
}, 120_000);
|
|
67
|
+
timeout.unref();
|
|
63
68
|
});
|
|
64
69
|
// Build the GitHub OAuth URL with our local callback as the redirect
|
|
65
70
|
const authUrl = `${apiUrl}/v1/auth/github?redirect_uri=${encodeURIComponent(callbackUrl)}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAQxD,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC;IAE9B,+DAA+D;IAC/D,MAAM,IAAI,GAAG,MAAM,YAAY,EAAE,CAAC;IAClC,MAAM,WAAW,GAAG,oBAAoB,IAAI,WAAW,CAAC;IAExD,MAAM,YAAY,GAAG,IAAI,OAAO,CAAY,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC9D,MAAM,MAAM,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YAC7C,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAI,EAAE,oBAAoB,IAAI,EAAE,CAAC,CAAC;YAE1D,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;gBACjC,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAE1C,IAAI,IAAI,EAAE,CAAC;oBACT,iDAAiD;oBACjD,IAAI,CAAC;wBACH,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,mBAAmB,EAAE;4BAC5D,MAAM,EAAE,MAAM;4BACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;4BAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC;yBAC/B,CAAC,CAAC;wBACH,MAAM,IAAI,GAAG,CAAC,MAAM,WAAW,CAAC,IAAI,EAAE,CAGrC,CAAC;wBAEF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;4BACd,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;4BACpD,GAAG,CAAC,GAAG,CAAC;;;;;;;iBAOL,CAAC,CAAC;4BACL,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBACrB,CAAC;6BAAM,CAAC;4BACN,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;4BACpD,GAAG,CAAC,GAAG,CACL,uCAAuC,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,wBAAwB,oBAAoB,CAC3G,CAAC;4BACF,MAAM,CACJ,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,IAAI,wBAAwB,CAAC,CAC3D,CAAC;wBACJ,CAAC;oBACH,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;wBACpD,GAAG,CAAC,GAAG,CACL,kFAAkF,CACnF,CAAC;wBACF,MAAM,CAAC,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAC;oBACrE,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;oBACpD,GAAG,CAAC,GAAG,CACL,uFAAuF,CACxF,CAAC;oBACF,MAAM,CAAC,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC,CAAC;gBACrE,CAAC;gBAED
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp.d.ts","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsgBpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CASzD"}
|
package/dist/commands/mcp.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
|
|
2
2
|
import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js";
|
|
3
3
|
import { CallToolRequestSchema, ListToolsRequestSchema, } from "@modelcontextprotocol/sdk/types.js";
|
|
4
|
-
import { apiGet, apiPost } from "../lib/api.js";
|
|
4
|
+
import { apiGet, apiPost, apiDelete } from "../lib/api.js";
|
|
5
5
|
function createServer() {
|
|
6
6
|
const server = new Server({ name: "memax", version: "0.0.1" }, { capabilities: { tools: {} } });
|
|
7
7
|
server.setRequestHandler(ListToolsRequestSchema, async () => ({
|
|
@@ -58,11 +58,26 @@ function createServer() {
|
|
|
58
58
|
required: ["content"],
|
|
59
59
|
},
|
|
60
60
|
},
|
|
61
|
+
{
|
|
62
|
+
name: "memax_get",
|
|
63
|
+
description: "Get the full content of a specific note by ID. " +
|
|
64
|
+
"Use this after memax_recall to read the complete content of a relevant memory.",
|
|
65
|
+
inputSchema: {
|
|
66
|
+
type: "object",
|
|
67
|
+
properties: {
|
|
68
|
+
id: {
|
|
69
|
+
type: "string",
|
|
70
|
+
description: "The note ID (from memax_recall or memax_search results)",
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
required: ["id"],
|
|
74
|
+
},
|
|
75
|
+
},
|
|
61
76
|
{
|
|
62
77
|
name: "memax_search",
|
|
63
|
-
description: "List notes filtered by category
|
|
78
|
+
description: "List notes filtered by category. " +
|
|
64
79
|
"For browsing and structured lookups, not semantic search. " +
|
|
65
|
-
"
|
|
80
|
+
"Supports pagination — use cursor from previous response to get next page.",
|
|
66
81
|
inputSchema: {
|
|
67
82
|
type: "object",
|
|
68
83
|
properties: {
|
|
@@ -72,9 +87,59 @@ function createServer() {
|
|
|
72
87
|
},
|
|
73
88
|
limit: {
|
|
74
89
|
type: "number",
|
|
75
|
-
description: "Max results to return (default
|
|
90
|
+
description: "Max results to return (default 20, max 50)",
|
|
91
|
+
},
|
|
92
|
+
cursor: {
|
|
93
|
+
type: "string",
|
|
94
|
+
description: "Pagination cursor from previous response (omit for first page)",
|
|
95
|
+
},
|
|
96
|
+
sort: {
|
|
97
|
+
type: "string",
|
|
98
|
+
description: "Sort by: newest (default) or relevant",
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
name: "memax_forget",
|
|
105
|
+
description: "Delete a note from the user's Memax knowledge base by ID. " +
|
|
106
|
+
"Use this to remove outdated, incorrect, or duplicate memories.",
|
|
107
|
+
inputSchema: {
|
|
108
|
+
type: "object",
|
|
109
|
+
properties: {
|
|
110
|
+
id: {
|
|
111
|
+
type: "string",
|
|
112
|
+
description: "The note ID to delete (from memax_recall or memax_search results)",
|
|
113
|
+
},
|
|
114
|
+
},
|
|
115
|
+
required: ["id"],
|
|
116
|
+
},
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
name: "memax_capture",
|
|
120
|
+
description: "Capture key decisions, learnings, and context from this session. " +
|
|
121
|
+
"Call at the end of a significant work session to save what was accomplished " +
|
|
122
|
+
"and what should be remembered for future sessions. More selective than " +
|
|
123
|
+
"auto-capture — you decide what's worth remembering.",
|
|
124
|
+
inputSchema: {
|
|
125
|
+
type: "object",
|
|
126
|
+
properties: {
|
|
127
|
+
summary: {
|
|
128
|
+
type: "string",
|
|
129
|
+
description: "Brief summary of what was accomplished in this session",
|
|
130
|
+
},
|
|
131
|
+
decisions: {
|
|
132
|
+
type: "array",
|
|
133
|
+
items: { type: "string" },
|
|
134
|
+
description: "Key decisions made (e.g., 'Chose PostgreSQL over MongoDB')",
|
|
135
|
+
},
|
|
136
|
+
learnings: {
|
|
137
|
+
type: "array",
|
|
138
|
+
items: { type: "string" },
|
|
139
|
+
description: "Things learned (e.g., 'pg_trgm is language-agnostic')",
|
|
76
140
|
},
|
|
77
141
|
},
|
|
142
|
+
required: ["summary"],
|
|
78
143
|
},
|
|
79
144
|
},
|
|
80
145
|
],
|
|
@@ -102,7 +167,7 @@ function createServer() {
|
|
|
102
167
|
.map((n, i) => {
|
|
103
168
|
const score = (n.relevance_score * 100).toFixed(0);
|
|
104
169
|
const heading = n.heading_chain ? ` — ${n.heading_chain}` : "";
|
|
105
|
-
return (`[${i + 1}] ${n.title} [${n.category}, ${score}%, ${n.age}]${heading}\n` +
|
|
170
|
+
return (`[${i + 1}] ${n.title} [${n.category}, ${score}%, ${n.age}] (id: ${n.id})${heading}\n` +
|
|
106
171
|
n.chunk_content);
|
|
107
172
|
})
|
|
108
173
|
.join("\n\n");
|
|
@@ -151,23 +216,76 @@ function createServer() {
|
|
|
151
216
|
};
|
|
152
217
|
}
|
|
153
218
|
}
|
|
219
|
+
case "memax_get": {
|
|
220
|
+
const typedArgs = args;
|
|
221
|
+
try {
|
|
222
|
+
const note = await apiGet(`/v1/notes/${typedArgs.id}`);
|
|
223
|
+
const parts = [
|
|
224
|
+
`# ${note.title}`,
|
|
225
|
+
`Category: ${note.category} | Source: ${note.source} | Created: ${note.created_at}`,
|
|
226
|
+
];
|
|
227
|
+
if (note.tags?.length > 0) {
|
|
228
|
+
parts.push(`Tags: ${note.tags.join(", ")}`);
|
|
229
|
+
}
|
|
230
|
+
if (note.source_path) {
|
|
231
|
+
parts.push(`Source: ${note.source_path}`);
|
|
232
|
+
}
|
|
233
|
+
if (note.summary) {
|
|
234
|
+
parts.push(`\n## Summary\n${note.summary}`);
|
|
235
|
+
}
|
|
236
|
+
parts.push(`\n## Content\n${note.content}`);
|
|
237
|
+
return {
|
|
238
|
+
content: [{ type: "text", text: parts.join("\n") }],
|
|
239
|
+
};
|
|
240
|
+
}
|
|
241
|
+
catch (err) {
|
|
242
|
+
return {
|
|
243
|
+
content: [
|
|
244
|
+
{
|
|
245
|
+
type: "text",
|
|
246
|
+
text: `Get failed: ${err.message}`,
|
|
247
|
+
},
|
|
248
|
+
],
|
|
249
|
+
isError: true,
|
|
250
|
+
};
|
|
251
|
+
}
|
|
252
|
+
}
|
|
154
253
|
case "memax_search": {
|
|
155
254
|
const typedArgs = args;
|
|
156
255
|
try {
|
|
157
|
-
const
|
|
256
|
+
const params = new URLSearchParams();
|
|
257
|
+
params.set("limit", String(typedArgs.limit ?? 20));
|
|
258
|
+
if (typedArgs.cursor)
|
|
259
|
+
params.set("cursor", typedArgs.cursor);
|
|
260
|
+
if (typedArgs.sort)
|
|
261
|
+
params.set("sort", typedArgs.sort);
|
|
262
|
+
const res = await apiGet(`/v1/notes?${params.toString()}`);
|
|
263
|
+
const notes = Array.isArray(res) ? res : (res.notes ?? []);
|
|
264
|
+
const total = Array.isArray(res) ? res.length : (res.total ?? 0);
|
|
265
|
+
const nextCursor = Array.isArray(res) ? "" : (res.next_cursor ?? "");
|
|
266
|
+
const hasMore = Array.isArray(res) ? false : (res.has_more ?? false);
|
|
267
|
+
// Client-side category filter (server doesn't filter by category on list)
|
|
158
268
|
let filtered = notes;
|
|
159
269
|
if (typedArgs.category) {
|
|
160
270
|
filtered = notes.filter((n) => n.category.startsWith(typedArgs.category));
|
|
161
271
|
}
|
|
162
|
-
|
|
163
|
-
if (limited.length === 0) {
|
|
272
|
+
if (filtered.length === 0) {
|
|
164
273
|
return {
|
|
165
|
-
content: [
|
|
274
|
+
content: [
|
|
275
|
+
{
|
|
276
|
+
type: "text",
|
|
277
|
+
text: `No notes found. (${total} total in workspace)`,
|
|
278
|
+
},
|
|
279
|
+
],
|
|
166
280
|
};
|
|
167
281
|
}
|
|
168
|
-
|
|
282
|
+
let formatted = filtered
|
|
169
283
|
.map((n) => `- ${n.title} [${n.category}] — ${n.source} (id: ${n.id})`)
|
|
170
284
|
.join("\n");
|
|
285
|
+
formatted += `\n\nShowing ${filtered.length} of ${total} total.`;
|
|
286
|
+
if (hasMore) {
|
|
287
|
+
formatted += ` More available — pass cursor: "${nextCursor}" to get next page.`;
|
|
288
|
+
}
|
|
171
289
|
return { content: [{ type: "text", text: formatted }] };
|
|
172
290
|
}
|
|
173
291
|
catch (err) {
|
|
@@ -182,6 +300,82 @@ function createServer() {
|
|
|
182
300
|
};
|
|
183
301
|
}
|
|
184
302
|
}
|
|
303
|
+
case "memax_forget": {
|
|
304
|
+
const typedArgs = args;
|
|
305
|
+
if (!typedArgs.id) {
|
|
306
|
+
return {
|
|
307
|
+
content: [{ type: "text", text: "Note ID is required." }],
|
|
308
|
+
isError: true,
|
|
309
|
+
};
|
|
310
|
+
}
|
|
311
|
+
try {
|
|
312
|
+
await apiDelete(`/v1/notes/${typedArgs.id}`);
|
|
313
|
+
return {
|
|
314
|
+
content: [
|
|
315
|
+
{
|
|
316
|
+
type: "text",
|
|
317
|
+
text: `Forgotten: ${typedArgs.id}`,
|
|
318
|
+
},
|
|
319
|
+
],
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
catch (err) {
|
|
323
|
+
return {
|
|
324
|
+
content: [
|
|
325
|
+
{
|
|
326
|
+
type: "text",
|
|
327
|
+
text: `Forget failed: ${err.message}`,
|
|
328
|
+
},
|
|
329
|
+
],
|
|
330
|
+
isError: true,
|
|
331
|
+
};
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
case "memax_capture": {
|
|
335
|
+
const typedArgs = args;
|
|
336
|
+
if (!typedArgs.summary) {
|
|
337
|
+
return {
|
|
338
|
+
content: [{ type: "text", text: "Summary is required." }],
|
|
339
|
+
isError: true,
|
|
340
|
+
};
|
|
341
|
+
}
|
|
342
|
+
// Build structured content for the extraction pipeline
|
|
343
|
+
let content = `## Session Summary\n${typedArgs.summary}\n`;
|
|
344
|
+
if (typedArgs.decisions?.length) {
|
|
345
|
+
content += `\n## Decisions Made\n${typedArgs.decisions.map((d) => `- ${d}`).join("\n")}\n`;
|
|
346
|
+
}
|
|
347
|
+
if (typedArgs.learnings?.length) {
|
|
348
|
+
content += `\n## Learnings\n${typedArgs.learnings.map((l) => `- ${l}`).join("\n")}\n`;
|
|
349
|
+
}
|
|
350
|
+
try {
|
|
351
|
+
const note = await apiPost("/v1/notes", {
|
|
352
|
+
content,
|
|
353
|
+
title: `Session capture — ${new Date().toLocaleDateString()}`,
|
|
354
|
+
content_type: "transcript",
|
|
355
|
+
source: "mcp/capture",
|
|
356
|
+
category: "chat/agent",
|
|
357
|
+
});
|
|
358
|
+
return {
|
|
359
|
+
content: [
|
|
360
|
+
{
|
|
361
|
+
type: "text",
|
|
362
|
+
text: `Session captured (id: ${note.id}). Key facts will be extracted and stored as separate memories.`,
|
|
363
|
+
},
|
|
364
|
+
],
|
|
365
|
+
};
|
|
366
|
+
}
|
|
367
|
+
catch (err) {
|
|
368
|
+
return {
|
|
369
|
+
content: [
|
|
370
|
+
{
|
|
371
|
+
type: "text",
|
|
372
|
+
text: `Capture failed: ${err.message}`,
|
|
373
|
+
},
|
|
374
|
+
],
|
|
375
|
+
isError: true,
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
}
|
|
185
379
|
default:
|
|
186
380
|
return {
|
|
187
381
|
content: [{ type: "text", text: `Unknown tool: ${name}` }],
|
|
@@ -195,6 +389,15 @@ async function mcpServeCommand() {
|
|
|
195
389
|
const server = createServer();
|
|
196
390
|
const transport = new StdioServerTransport();
|
|
197
391
|
await server.connect(transport);
|
|
392
|
+
// Keep the process alive — some agent launchers close stdin early
|
|
393
|
+
// which makes Node think the event loop is empty and exit.
|
|
394
|
+
await new Promise((resolve) => {
|
|
395
|
+
process.on("SIGINT", resolve);
|
|
396
|
+
process.on("SIGTERM", resolve);
|
|
397
|
+
// Also resolve if stdin closes (transport disconnected)
|
|
398
|
+
process.stdin.on("end", resolve);
|
|
399
|
+
});
|
|
400
|
+
await server.close();
|
|
198
401
|
}
|
|
199
402
|
export function registerMcpCommand(program) {
|
|
200
403
|
const mcp = program
|
package/dist/commands/mcp.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EACL,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AA8BhD,SAAS,YAAY;IACnB,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EACnC,EAAE,YAAY,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,CAChC,CAAC;IAEF,MAAM,CAAC,iBAAiB,CAAC,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;QAC5D,KAAK,EAAE;YACL;gBACE,IAAI,EAAE,cAAc;gBACpB,WAAW,EACT,wEAAwE;oBACxE,wEAAwE;oBACxE,8EAA8E;gBAChF,WAAW,EAAE;oBACX,IAAI,EAAE,QAAiB;oBACvB,UAAU,EAAE;wBACV,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,+BAA+B;yBAC7C;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,mCAAmC;yBACjD;wBACD,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,iEAAiE;yBACpE;qBACF;oBACD,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACpB;aACF;YACD;gBACE,IAAI,EAAE,YAAY;gBAClB,WAAW,EACT,gEAAgE;oBAChE,oDAAoD;gBACtD,WAAW,EAAE;oBACX,IAAI,EAAE,QAAiB;oBACvB,UAAU,EAAE;wBACV,OAAO,EAAE;4BACP,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,+BAA+B;yBAC7C;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,4CAA4C;yBAC1D;wBACD,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EACT,iFAAiF;yBACpF;wBACD,IAAI,EAAE;4BACJ,IAAI,EAAE,OAAO;4BACb,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;4BACzB,WAAW,EAAE,qBAAqB;yBACnC;qBACF;oBACD,QAAQ,EAAE,CAAC,SAAS,CAAC;iBACtB;aACF;YACD;gBACE,IAAI,EAAE,cAAc;gBACpB,WAAW,EACT,2CAA2C;oBAC3C,4DAA4D;oBAC5D,wDAAwD;gBAC1D,WAAW,EAAE;oBACX,IAAI,EAAE,QAAiB;oBACvB,UAAU,EAAE;wBACV,QAAQ,EAAE;4BACR,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,2BAA2B;yBACzC;wBACD,KAAK,EAAE;4BACL,IAAI,EAAE,QAAQ;4BACd,WAAW,EAAE,oCAAoC;yBAClD;qBACF;iBACF;aACF;SACF;KACF,CAAC,CAAC,CAAC;IAEJ,MAAM,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAChE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAEjD,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,SAAS,GAAG,IAIjB,CAAC;gBACF,IAAI,CAAC;oBACH,MAAM,MAAM,GAAG,MAAM,OAAO,CAAe,YAAY,EAAE;wBACvD,KAAK,EAAE,SAAS,CAAC,KAAK;wBACtB,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC;wBAC3B,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,EAAE;wBAClC,MAAM,EAAE,KAAK;wBACb,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE;qBAC3B,CAAC,CAAC;oBAEH,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;oBACjC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACvB,OAAO;4BACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC;yBAChE,CAAC;oBACJ,CAAC;oBAED,MAAM,SAAS,GAAG,KAAK;yBACpB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;wBACZ,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,eAAe,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBACnD,MAAM,OAAO,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;wBAC/D,OAAO,CACL,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,QAAQ,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,IAAI,OAAO,IAAI;4BACxE,CAAC,CAAC,aAAa,CAChB,CAAC;oBACJ,CAAC,CAAC;yBACD,IAAI,CAAC,MAAM,CAAC,CAAC;oBAEhB,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;gBACnE,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAe;gCACrB,IAAI,EAAE,kBAAmB,GAAa,CAAC,OAAO,EAAE;6BACjD;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,MAAM,SAAS,GAAG,IAKjB,CAAC;gBACF,IAAI,CAAC;oBACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAa,WAAW,EAAE;wBAClD,OAAO,EAAE,SAAS,CAAC,OAAO;wBAC1B,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,EAAE;wBAC5B,QAAQ,EAAE,SAAS,CAAC,QAAQ,IAAI,EAAE;wBAClC,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,EAAE;wBAC1B,MAAM,EAAE,KAAK;qBACd,CAAC,CAAC;oBAEH,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAe;gCACrB,IAAI,EAAE,UAAU,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,EAAE,GAAG;6BAC9C;yBACF;qBACF,CAAC;gBACJ,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAe;gCACrB,IAAI,EAAE,gBAAiB,GAAa,CAAC,OAAO,EAAE;6BAC/C;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;YACH,CAAC;YAED,KAAK,cAAc,CAAC,CAAC,CAAC;gBACpB,MAAM,SAAS,GAAG,IAGjB,CAAC;gBACF,IAAI,CAAC;oBACH,MAAM,KAAK,GAAG,CAAC,MAAM,MAAM,CAAe,WAAW,CAAC,CAAC,IAAI,EAAE,CAAC;oBAE9D,IAAI,QAAQ,GAAG,KAAK,CAAC;oBACrB,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;wBACvB,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5B,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,QAAS,CAAC,CAC3C,CAAC;oBACJ,CAAC;oBAED,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;oBAEzD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACzB,OAAO;4BACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;yBAC9D,CAAC;oBACJ,CAAC;oBAED,MAAM,SAAS,GAAG,OAAO;yBACtB,GAAG,CACF,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,QAAQ,OAAO,CAAC,CAAC,MAAM,SAAS,CAAC,CAAC,EAAE,GAAG,CAClE;yBACA,IAAI,CAAC,IAAI,CAAC,CAAC;oBAEd,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;gBACnE,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,OAAO;wBACL,OAAO,EAAE;4BACP;gCACE,IAAI,EAAE,MAAe;gCACrB,IAAI,EAAE,kBAAmB,GAAa,CAAC,OAAO,EAAE;6BACjD;yBACF;wBACD,OAAO,EAAE,IAAI;qBACd,CAAC;gBACJ,CAAC;YACH,CAAC;YAED;gBACE,OAAO;oBACL,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,iBAAiB,IAAI,EAAE,EAAE,CAAC;oBACnE,OAAO,EAAE,IAAI;iBACd,CAAC;QACN,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,eAAe;IAC5B,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,SAAS,GAAG,IAAI,oBAAoB,EAAE,CAAC;IAC7C,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAgB;IACjD,MAAM,GAAG,GAAG,OAAO;SAChB,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,6CAA6C,CAAC,CAAC;IAE9D,GAAG;SACA,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,2BAA2B,CAAC;SACxC,MAAM,CAAC,eAAe,CAAC,CAAC;AAC7B,CAAC"}
|
|
1
|
+
{"version":3,"file":"mcp.js","sourceRoot":"","sources":["../../src/commands/mcp.ts"],"names":[],"mappings":"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"}
|