@mnemo-mcp/cli 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (81) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +123 -0
  3. package/assets/skill/SKILL.md +52 -0
  4. package/bin/mnemo.js +2 -0
  5. package/dist/commands/doctor.d.ts +3 -0
  6. package/dist/commands/doctor.d.ts.map +1 -0
  7. package/dist/commands/doctor.js +88 -0
  8. package/dist/commands/doctor.js.map +1 -0
  9. package/dist/commands/edit.d.ts +3 -0
  10. package/dist/commands/edit.d.ts.map +1 -0
  11. package/dist/commands/edit.js +88 -0
  12. package/dist/commands/edit.js.map +1 -0
  13. package/dist/commands/export.d.ts +3 -0
  14. package/dist/commands/export.d.ts.map +1 -0
  15. package/dist/commands/export.js +23 -0
  16. package/dist/commands/export.js.map +1 -0
  17. package/dist/commands/forget.d.ts +3 -0
  18. package/dist/commands/forget.d.ts.map +1 -0
  19. package/dist/commands/forget.js +26 -0
  20. package/dist/commands/forget.js.map +1 -0
  21. package/dist/commands/hook.d.ts +3 -0
  22. package/dist/commands/hook.d.ts.map +1 -0
  23. package/dist/commands/hook.js +77 -0
  24. package/dist/commands/hook.js.map +1 -0
  25. package/dist/commands/import.d.ts +3 -0
  26. package/dist/commands/import.d.ts.map +1 -0
  27. package/dist/commands/import.js +23 -0
  28. package/dist/commands/import.js.map +1 -0
  29. package/dist/commands/init.d.ts +3 -0
  30. package/dist/commands/init.d.ts.map +1 -0
  31. package/dist/commands/init.js +153 -0
  32. package/dist/commands/init.js.map +1 -0
  33. package/dist/commands/list.d.ts +3 -0
  34. package/dist/commands/list.d.ts.map +1 -0
  35. package/dist/commands/list.js +31 -0
  36. package/dist/commands/list.js.map +1 -0
  37. package/dist/commands/prune.d.ts +3 -0
  38. package/dist/commands/prune.d.ts.map +1 -0
  39. package/dist/commands/prune.js +82 -0
  40. package/dist/commands/prune.js.map +1 -0
  41. package/dist/commands/recall.d.ts +3 -0
  42. package/dist/commands/recall.d.ts.map +1 -0
  43. package/dist/commands/recall.js +50 -0
  44. package/dist/commands/recall.js.map +1 -0
  45. package/dist/commands/remember.d.ts +3 -0
  46. package/dist/commands/remember.d.ts.map +1 -0
  47. package/dist/commands/remember.js +42 -0
  48. package/dist/commands/remember.js.map +1 -0
  49. package/dist/commands/stats.d.ts +3 -0
  50. package/dist/commands/stats.d.ts.map +1 -0
  51. package/dist/commands/stats.js +19 -0
  52. package/dist/commands/stats.js.map +1 -0
  53. package/dist/hooks/capture-rules.d.ts +3 -0
  54. package/dist/hooks/capture-rules.d.ts.map +1 -0
  55. package/dist/hooks/capture-rules.js +18 -0
  56. package/dist/hooks/capture-rules.js.map +1 -0
  57. package/dist/hooks/post-edit.d.ts +18 -0
  58. package/dist/hooks/post-edit.d.ts.map +1 -0
  59. package/dist/hooks/post-edit.js +38 -0
  60. package/dist/hooks/post-edit.js.map +1 -0
  61. package/dist/hooks/pre-task.d.ts +10 -0
  62. package/dist/hooks/pre-task.d.ts.map +1 -0
  63. package/dist/hooks/pre-task.js +22 -0
  64. package/dist/hooks/pre-task.js.map +1 -0
  65. package/dist/hooks/session-start.d.ts +8 -0
  66. package/dist/hooks/session-start.d.ts.map +1 -0
  67. package/dist/hooks/session-start.js +26 -0
  68. package/dist/hooks/session-start.js.map +1 -0
  69. package/dist/hooks/user-prompt-submit.d.ts +12 -0
  70. package/dist/hooks/user-prompt-submit.d.ts.map +1 -0
  71. package/dist/hooks/user-prompt-submit.js +28 -0
  72. package/dist/hooks/user-prompt-submit.js.map +1 -0
  73. package/dist/index.d.ts +2 -0
  74. package/dist/index.d.ts.map +1 -0
  75. package/dist/index.js +35 -0
  76. package/dist/index.js.map +1 -0
  77. package/dist/output.d.ts +5 -0
  78. package/dist/output.d.ts.map +1 -0
  79. package/dist/output.js +37 -0
  80. package/dist/output.js.map +1 -0
  81. package/package.json +47 -0
@@ -0,0 +1,26 @@
1
+ import { Mnemo, projectHashOf } from '@mnemo-mcp/core';
2
+ export async function runSessionStart(payload) {
3
+ const cwd = payload.cwd ?? process.cwd();
4
+ const projectHash = projectHashOf(cwd);
5
+ const embedderType = (process.env.MNEMO_EMBEDDER === 'hash' ? 'hash' : 'onnx');
6
+ const m = await Mnemo.open({ embedderType });
7
+ try {
8
+ const recents = await m.list({ scope: 'project', projectHash, limit: 5 });
9
+ const globals = await m.list({ scope: 'global', limit: 3 });
10
+ const lines = [];
11
+ if (recents.length === 0 && globals.length === 0)
12
+ return '';
13
+ lines.push('## Mnemo memory snapshot');
14
+ if (recents.length) {
15
+ lines.push('', '### This project', ...recents.map(r => `- ${r.content}`));
16
+ }
17
+ if (globals.length) {
18
+ lines.push('', '### Global preferences', ...globals.map(r => `- ${r.content}`));
19
+ }
20
+ return lines.join('\n');
21
+ }
22
+ finally {
23
+ await m.close();
24
+ }
25
+ }
26
+ //# sourceMappingURL=session-start.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-start.js","sourceRoot":"","sources":["../../src/hooks/session-start.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIvD,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAgB;IACpD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAoB,CAAC;IAClG,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1E,MAAM,OAAO,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5D,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAC5D,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACvC,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,kBAAkB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,wBAAwB,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC;QACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,12 @@
1
+ type Payload = {
2
+ prompt?: string;
3
+ user_message?: string;
4
+ cwd?: string;
5
+ };
6
+ /**
7
+ * Fired on every user message in Claude Code. Injects up to 3 strongly-relevant
8
+ * memories as additional context. Designed to be cheap (single embed + index query).
9
+ */
10
+ export declare function runUserPromptSubmit(payload: Payload): Promise<string>;
11
+ export {};
12
+ //# sourceMappingURL=user-prompt-submit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-prompt-submit.d.ts","sourceRoot":"","sources":["../../src/hooks/user-prompt-submit.ts"],"names":[],"mappings":"AAEA,KAAK,OAAO,GAAG;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAiB3E"}
@@ -0,0 +1,28 @@
1
+ import { Mnemo, projectHashOf } from '@mnemo-mcp/core';
2
+ /**
3
+ * Fired on every user message in Claude Code. Injects up to 3 strongly-relevant
4
+ * memories as additional context. Designed to be cheap (single embed + index query).
5
+ */
6
+ export async function runUserPromptSubmit(payload) {
7
+ const prompt = payload.prompt ?? payload.user_message ?? '';
8
+ if (!prompt.trim() || prompt.trim().length < 4)
9
+ return '';
10
+ const cwd = payload.cwd ?? process.cwd();
11
+ const projectHash = projectHashOf(cwd);
12
+ const embedderType = (process.env.MNEMO_EMBEDDER === 'hash' ? 'hash' : 'onnx');
13
+ const m = await Mnemo.open({ embedderType });
14
+ try {
15
+ const hits = await m.recall(prompt, { k: 3, scope: 'all', minScore: 0.35 });
16
+ const relevant = hits.filter(h => h.record.scope === 'global' || h.record.projectHash === projectHash);
17
+ if (relevant.length === 0)
18
+ return '';
19
+ const lines = ['## Relevant memories'];
20
+ for (const h of relevant)
21
+ lines.push(`- ${h.record.content}`);
22
+ return lines.join('\n');
23
+ }
24
+ finally {
25
+ await m.close();
26
+ }
27
+ }
28
+ //# sourceMappingURL=user-prompt-submit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user-prompt-submit.js","sourceRoot":"","sources":["../../src/hooks/user-prompt-submit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAQvD;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAgB;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,YAAY,IAAI,EAAE,CAAC;IAC5D,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IAC1D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,YAAY,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAoB,CAAC;IAClG,MAAM,CAAC,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IAC7C,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5E,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC,MAAM,CAAC,WAAW,KAAK,WAAW,CAAC,CAAC;QACvG,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,CAAC,sBAAsB,CAAC,CAAC;QACvC,KAAK,MAAM,CAAC,IAAI,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,35 @@
1
+ import { Command } from 'commander';
2
+ import { registerRemember } from './commands/remember.js';
3
+ import { registerRecall } from './commands/recall.js';
4
+ import { registerList } from './commands/list.js';
5
+ import { registerForget } from './commands/forget.js';
6
+ import { registerStats } from './commands/stats.js';
7
+ import { registerExport } from './commands/export.js';
8
+ import { registerImport } from './commands/import.js';
9
+ import { registerDoctor } from './commands/doctor.js';
10
+ import { registerHook } from './commands/hook.js';
11
+ import { registerInit } from './commands/init.js';
12
+ import { registerEdit } from './commands/edit.js';
13
+ import { registerPrune } from './commands/prune.js';
14
+ const program = new Command();
15
+ program
16
+ .name('mnemo')
17
+ .description('Persistent memory for Claude Code')
18
+ .version('1.0.0');
19
+ registerRemember(program);
20
+ registerRecall(program);
21
+ registerList(program);
22
+ registerForget(program);
23
+ registerStats(program);
24
+ registerExport(program);
25
+ registerImport(program);
26
+ registerDoctor(program);
27
+ registerHook(program);
28
+ registerInit(program);
29
+ registerEdit(program);
30
+ registerPrune(program);
31
+ program.parseAsync(process.argv).catch(err => {
32
+ console.error('mnemo:', err.message);
33
+ process.exit(1);
34
+ });
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAC9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,mCAAmC,CAAC;KAChD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,gBAAgB,CAAC,OAAO,CAAC,CAAC;AAC1B,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,aAAa,CAAC,OAAO,CAAC,CAAC;AACvB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,aAAa,CAAC,OAAO,CAAC,CAAC;AAEvB,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;IAC3C,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IACrC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { MemoryHit, MemoryRecord, MnemoStats } from '@mnemo-mcp/core';
2
+ export declare function formatHit(hit: MemoryHit): string;
3
+ export declare function formatRecord(rec: MemoryRecord): string;
4
+ export declare function formatStats(s: MnemoStats): string;
5
+ //# sourceMappingURL=output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.d.ts","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE3E,wBAAgB,SAAS,CAAC,GAAG,EAAE,SAAS,GAAG,MAAM,CAOhD;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,YAAY,GAAG,MAAM,CAMtD;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,UAAU,GAAG,MAAM,CASjD"}
package/dist/output.js ADDED
@@ -0,0 +1,37 @@
1
+ import chalk from 'chalk';
2
+ export function formatHit(hit) {
3
+ const id = chalk.dim(hit.record.id.slice(0, 8));
4
+ const score = chalk.cyan(hit.score.toFixed(3));
5
+ const sim = chalk.dim(`(sim ${hit.similarity.toFixed(3)})`);
6
+ const scope = hit.record.scope === 'global' ? chalk.magenta('global') : chalk.green('project');
7
+ const tags = hit.record.tags.length ? chalk.dim(' #' + hit.record.tags.join(' #')) : '';
8
+ return `${score} ${sim} ${id} ${scope}${tags}\n ${hit.record.content}`;
9
+ }
10
+ export function formatRecord(rec) {
11
+ const id = chalk.dim(rec.id.slice(0, 8));
12
+ const scope = rec.scope === 'global' ? chalk.magenta('global') : chalk.green('project');
13
+ const tags = rec.tags.length ? chalk.dim(' #' + rec.tags.join(' #')) : '';
14
+ const ago = relTime(rec.updatedAt);
15
+ return `${id} ${scope} ${chalk.dim(ago)}${tags}\n ${rec.content}`;
16
+ }
17
+ export function formatStats(s) {
18
+ return [
19
+ `${chalk.bold('memories:')} ${s.totalMemories}`,
20
+ ` ${chalk.green('project')}: ${s.byScope.project}`,
21
+ ` ${chalk.magenta('global')}: ${s.byScope.global}`,
22
+ `${chalk.bold('index size:')} ${s.indexSize}`,
23
+ `${chalk.bold('embedding dim:')} ${s.embeddingDimension}`,
24
+ `${chalk.bold('storage bytes:')} ${s.storageBytes}`,
25
+ ].join('\n');
26
+ }
27
+ function relTime(ts) {
28
+ const sec = Math.floor((Date.now() - ts) / 1000);
29
+ if (sec < 60)
30
+ return `${sec}s ago`;
31
+ if (sec < 3600)
32
+ return `${Math.floor(sec / 60)}m ago`;
33
+ if (sec < 86400)
34
+ return `${Math.floor(sec / 3600)}h ago`;
35
+ return `${Math.floor(sec / 86400)}d ago`;
36
+ }
37
+ //# sourceMappingURL=output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "@mnemo-mcp/cli",
3
+ "version": "1.0.0",
4
+ "description": "Mnemo CLI — install Mnemo into Claude Code, capture and recall memories from your terminal",
5
+ "license": "MIT",
6
+ "author": "Omer Maksuti",
7
+ "homepage": "https://github.com/omermaksutii/mnemo#readme",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "git+https://github.com/omermaksutii/mnemo.git",
11
+ "directory": "packages/cli"
12
+ },
13
+ "bugs": {
14
+ "url": "https://github.com/omermaksutii/mnemo/issues"
15
+ },
16
+ "keywords": [
17
+ "mnemo",
18
+ "memory",
19
+ "claude-code",
20
+ "cli",
21
+ "anthropic",
22
+ "mcp"
23
+ ],
24
+ "type": "module",
25
+ "main": "dist/index.js",
26
+ "types": "dist/index.d.ts",
27
+ "bin": {
28
+ "mnemo": "./bin/mnemo.js"
29
+ },
30
+ "files": [
31
+ "dist",
32
+ "bin",
33
+ "assets"
34
+ ],
35
+ "scripts": {
36
+ "build": "tsc",
37
+ "test": "vitest run"
38
+ },
39
+ "dependencies": {
40
+ "@mnemo-mcp/core": "1.0.0",
41
+ "commander": "^12.0.0",
42
+ "chalk": "^5.3.0"
43
+ },
44
+ "publishConfig": {
45
+ "access": "public"
46
+ }
47
+ }