agentmemory-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 (68) hide show
  1. package/README.md +198 -0
  2. package/dist/commands/delete.d.ts +7 -0
  3. package/dist/commands/delete.d.ts.map +1 -0
  4. package/dist/commands/delete.js +67 -0
  5. package/dist/commands/delete.js.map +1 -0
  6. package/dist/commands/export.d.ts +7 -0
  7. package/dist/commands/export.d.ts.map +1 -0
  8. package/dist/commands/export.js +79 -0
  9. package/dist/commands/export.js.map +1 -0
  10. package/dist/commands/import.d.ts +6 -0
  11. package/dist/commands/import.d.ts.map +1 -0
  12. package/dist/commands/import.js +107 -0
  13. package/dist/commands/import.js.map +1 -0
  14. package/dist/commands/init.d.ts +2 -0
  15. package/dist/commands/init.d.ts.map +1 -0
  16. package/dist/commands/init.js +65 -0
  17. package/dist/commands/init.js.map +1 -0
  18. package/dist/commands/list.d.ts +8 -0
  19. package/dist/commands/list.d.ts.map +1 -0
  20. package/dist/commands/list.js +55 -0
  21. package/dist/commands/list.js.map +1 -0
  22. package/dist/commands/search.d.ts +7 -0
  23. package/dist/commands/search.d.ts.map +1 -0
  24. package/dist/commands/search.js +47 -0
  25. package/dist/commands/search.js.map +1 -0
  26. package/dist/commands/store.d.ts +8 -0
  27. package/dist/commands/store.d.ts.map +1 -0
  28. package/dist/commands/store.js +51 -0
  29. package/dist/commands/store.js.map +1 -0
  30. package/dist/commands/sync.d.ts +9 -0
  31. package/dist/commands/sync.d.ts.map +1 -0
  32. package/dist/commands/sync.js +90 -0
  33. package/dist/commands/sync.js.map +1 -0
  34. package/dist/index.d.ts +3 -0
  35. package/dist/index.d.ts.map +1 -0
  36. package/dist/index.js +106 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/lib/api.d.ts +14 -0
  39. package/dist/lib/api.d.ts.map +1 -0
  40. package/dist/lib/api.js +98 -0
  41. package/dist/lib/api.js.map +1 -0
  42. package/dist/lib/config.d.ts +13 -0
  43. package/dist/lib/config.d.ts.map +1 -0
  44. package/dist/lib/config.js +123 -0
  45. package/dist/lib/config.js.map +1 -0
  46. package/dist/lib/sync.d.ts +43 -0
  47. package/dist/lib/sync.d.ts.map +1 -0
  48. package/dist/lib/sync.js +184 -0
  49. package/dist/lib/sync.js.map +1 -0
  50. package/dist/types.d.ts +41 -0
  51. package/dist/types.d.ts.map +1 -0
  52. package/dist/types.js +3 -0
  53. package/dist/types.js.map +1 -0
  54. package/package.json +44 -0
  55. package/src/commands/delete.ts +72 -0
  56. package/src/commands/export.ts +46 -0
  57. package/src/commands/import.ts +87 -0
  58. package/src/commands/init.ts +71 -0
  59. package/src/commands/list.ts +61 -0
  60. package/src/commands/search.ts +52 -0
  61. package/src/commands/store.ts +58 -0
  62. package/src/commands/sync.ts +102 -0
  63. package/src/index.ts +114 -0
  64. package/src/lib/api.ts +139 -0
  65. package/src/lib/config.ts +95 -0
  66. package/src/lib/sync.ts +186 -0
  67. package/src/types.ts +47 -0
  68. package/tsconfig.json +20 -0
@@ -0,0 +1,7 @@
1
+ interface SearchOptions {
2
+ limit?: string;
3
+ json?: boolean;
4
+ }
5
+ export declare function searchCommand(query: string, options: SearchOptions): Promise<void>;
6
+ export {};
7
+ //# sourceMappingURL=search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":"AAIA,UAAU,aAAa;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAuCf"}
@@ -0,0 +1,47 @@
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.searchCommand = searchCommand;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const api_js_1 = require("../lib/api.js");
9
+ const config_js_1 = require("../lib/config.js");
10
+ async function searchCommand(query, options) {
11
+ if (!(0, config_js_1.isConfigured)()) {
12
+ console.log(chalk_1.default.red('❌ Not configured. Run "agentmemory init" first.'));
13
+ process.exit(1);
14
+ }
15
+ try {
16
+ const limit = options.limit ? parseInt(options.limit, 10) : 10;
17
+ const memories = await (0, api_js_1.searchMemories)(query, limit);
18
+ if (options.json) {
19
+ console.log(JSON.stringify(memories, null, 2));
20
+ return;
21
+ }
22
+ if (memories.length === 0) {
23
+ console.log(chalk_1.default.yellow('No memories found matching your query.'));
24
+ return;
25
+ }
26
+ console.log(chalk_1.default.cyan(`\n🔍 Found ${memories.length} memories:\n`));
27
+ for (const memory of memories) {
28
+ const similarity = (memory.similarity * 100).toFixed(1);
29
+ console.log(chalk_1.default.green(`[${similarity}%] `) + chalk_1.default.white(memory.content));
30
+ console.log(chalk_1.default.dim(` ID: ${memory.id}`));
31
+ if (memory.metadata && Object.keys(memory.metadata).length > 0) {
32
+ console.log(chalk_1.default.dim(` Metadata: ${JSON.stringify(memory.metadata)}`));
33
+ }
34
+ console.log();
35
+ }
36
+ }
37
+ catch (error) {
38
+ if (error instanceof Error) {
39
+ console.log(chalk_1.default.red(`❌ Error: ${error.message}`));
40
+ }
41
+ else {
42
+ console.log(chalk_1.default.red('❌ Unknown error occurred'));
43
+ }
44
+ process.exit(1);
45
+ }
46
+ }
47
+ //# sourceMappingURL=search.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"search.js","sourceRoot":"","sources":["../../src/commands/search.ts"],"names":[],"mappings":";;;;;AASA,sCA0CC;AAnDD,kDAA0B;AAC1B,0CAA+C;AAC/C,gDAAgD;AAOzC,KAAK,UAAU,aAAa,CACjC,KAAa,EACb,OAAsB;IAEtB,IAAI,CAAC,IAAA,wBAAY,GAAE,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/D,MAAM,QAAQ,GAAG,MAAM,IAAA,uBAAc,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAEpD,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,wCAAwC,CAAC,CAAC,CAAC;YACpE,OAAO;QACT,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,QAAQ,CAAC,MAAM,cAAc,CAAC,CAAC,CAAC;QAErE,KAAK,MAAM,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACxD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,IAAI,UAAU,KAAK,CAAC,GAAG,eAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC5E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9C,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAC;YAC5E,CAAC;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ interface StoreOptions {
2
+ category?: string;
3
+ metadata?: string;
4
+ json?: boolean;
5
+ }
6
+ export declare function storeCommand(content: string, options: StoreOptions): Promise<void>;
7
+ export {};
8
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/commands/store.ts"],"names":[],"mappings":"AAIA,UAAU,YAAY;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,IAAI,CAAC,CA4Cf"}
@@ -0,0 +1,51 @@
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.storeCommand = storeCommand;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const api_js_1 = require("../lib/api.js");
9
+ const config_js_1 = require("../lib/config.js");
10
+ async function storeCommand(content, options) {
11
+ if (!(0, config_js_1.isConfigured)()) {
12
+ console.log(chalk_1.default.red('❌ Not configured. Run "agentmemory init" first.'));
13
+ process.exit(1);
14
+ }
15
+ try {
16
+ // Build metadata
17
+ let metadata = {};
18
+ if (options.category) {
19
+ metadata.category = options.category;
20
+ }
21
+ if (options.metadata) {
22
+ try {
23
+ const parsed = JSON.parse(options.metadata);
24
+ metadata = { ...metadata, ...parsed };
25
+ }
26
+ catch {
27
+ console.log(chalk_1.default.red('❌ Invalid metadata JSON format'));
28
+ process.exit(1);
29
+ }
30
+ }
31
+ const memory = await (0, api_js_1.storeMemory)(content, Object.keys(metadata).length > 0 ? metadata : undefined);
32
+ if (options.json) {
33
+ console.log(JSON.stringify(memory, null, 2));
34
+ }
35
+ else {
36
+ console.log(chalk_1.default.green('✅ Memory stored successfully!'));
37
+ console.log(chalk_1.default.dim(` ID: ${memory.id}`));
38
+ console.log(chalk_1.default.dim(` Created: ${memory.created_at}`));
39
+ }
40
+ }
41
+ catch (error) {
42
+ if (error instanceof Error) {
43
+ console.log(chalk_1.default.red(`❌ Error: ${error.message}`));
44
+ }
45
+ else {
46
+ console.log(chalk_1.default.red('❌ Unknown error occurred'));
47
+ }
48
+ process.exit(1);
49
+ }
50
+ }
51
+ //# sourceMappingURL=store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/commands/store.ts"],"names":[],"mappings":";;;;;AAUA,oCA+CC;AAzDD,kDAA0B;AAC1B,0CAA4C;AAC5C,gDAAgD;AAQzC,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,OAAqB;IAErB,IAAI,CAAC,IAAA,wBAAY,GAAE,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,CAAC;QACH,iBAAiB;QACjB,IAAI,QAAQ,GAA4B,EAAE,CAAC;QAE3C,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,QAAQ,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACvC,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC5C,QAAQ,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;YACxC,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;gBACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAA,oBAAW,EAC9B,OAAO,EACP,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CACxD,CAAC;QAEF,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,UAAU,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAC9C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,eAAe,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACrD,CAAC;QACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ interface SyncOptions {
2
+ push?: boolean;
3
+ pull?: boolean;
4
+ status?: boolean;
5
+ json?: boolean;
6
+ }
7
+ export declare function syncCommand(options: SyncOptions): Promise<void>;
8
+ export {};
9
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAIA,UAAU,WAAW;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CA0FrE"}
@@ -0,0 +1,90 @@
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.syncCommand = syncCommand;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const config_js_1 = require("../lib/config.js");
9
+ const sync_js_1 = require("../lib/sync.js");
10
+ async function syncCommand(options) {
11
+ if (!(0, config_js_1.isConfigured)()) {
12
+ console.log(chalk_1.default.red('❌ Not configured. Run "agentmemory init" first.'));
13
+ process.exit(1);
14
+ }
15
+ const memoryFile = (0, config_js_1.getMemoryFilePath)();
16
+ try {
17
+ // Status only mode
18
+ if (options.status) {
19
+ console.log(chalk_1.default.dim('Checking sync status...'));
20
+ const status = await (0, sync_js_1.getSyncStatus)();
21
+ if (options.json) {
22
+ console.log(JSON.stringify(status, null, 2));
23
+ return;
24
+ }
25
+ console.log(chalk_1.default.cyan('\n📊 Sync Status:\n'));
26
+ console.log(` Memory file: ${memoryFile}`);
27
+ console.log(` Synced: ${chalk_1.default.green(status.synced)}`);
28
+ console.log(` Local only: ${chalk_1.default.yellow(status.localOnly.length)}`);
29
+ console.log(` Cloud only: ${chalk_1.default.blue(status.cloudOnly.length)}`);
30
+ if (status.localOnly.length > 0) {
31
+ console.log(chalk_1.default.yellow('\n Local memories not in cloud:'));
32
+ for (const m of status.localOnly.slice(0, 5)) {
33
+ const preview = m.content.substring(0, 50);
34
+ console.log(chalk_1.default.dim(` • ${preview}...`));
35
+ }
36
+ if (status.localOnly.length > 5) {
37
+ console.log(chalk_1.default.dim(` ... and ${status.localOnly.length - 5} more`));
38
+ }
39
+ }
40
+ if (status.cloudOnly.length > 0) {
41
+ console.log(chalk_1.default.blue('\n Cloud memories not in local file:'));
42
+ for (const m of status.cloudOnly.slice(0, 5)) {
43
+ const preview = m.content.substring(0, 50);
44
+ console.log(chalk_1.default.dim(` • ${preview}...`));
45
+ }
46
+ if (status.cloudOnly.length > 5) {
47
+ console.log(chalk_1.default.dim(` ... and ${status.cloudOnly.length - 5} more`));
48
+ }
49
+ }
50
+ console.log();
51
+ return;
52
+ }
53
+ // Determine sync direction
54
+ let direction = 'both';
55
+ if (options.push && !options.pull) {
56
+ direction = 'push';
57
+ }
58
+ else if (options.pull && !options.push) {
59
+ direction = 'pull';
60
+ }
61
+ console.log(chalk_1.default.dim(`Syncing memories (${direction})...`));
62
+ console.log(chalk_1.default.dim(`Memory file: ${memoryFile}\n`));
63
+ const result = await (0, sync_js_1.syncMemories)(direction);
64
+ if (options.json) {
65
+ console.log(JSON.stringify(result, null, 2));
66
+ return;
67
+ }
68
+ console.log(chalk_1.default.green('✅ Sync complete!\n'));
69
+ console.log(` 📤 Uploaded: ${chalk_1.default.green(result.uploaded)}`);
70
+ console.log(` 📥 Downloaded: ${chalk_1.default.blue(result.downloaded)}`);
71
+ console.log(` ⏭️ Unchanged: ${chalk_1.default.dim(result.unchanged)}`);
72
+ if (result.errors.length > 0) {
73
+ console.log(chalk_1.default.red(`\n ❌ Errors: ${result.errors.length}`));
74
+ for (const error of result.errors) {
75
+ console.log(chalk_1.default.red(` • ${error}`));
76
+ }
77
+ }
78
+ console.log();
79
+ }
80
+ catch (error) {
81
+ if (error instanceof Error) {
82
+ console.log(chalk_1.default.red(`❌ Error: ${error.message}`));
83
+ }
84
+ else {
85
+ console.log(chalk_1.default.red('❌ Unknown error occurred'));
86
+ }
87
+ process.exit(1);
88
+ }
89
+ }
90
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# 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,106 @@
1
+ #!/usr/bin/env node
2
+ "use strict";
3
+ var __importDefault = (this && this.__importDefault) || function (mod) {
4
+ return (mod && mod.__esModule) ? mod : { "default": mod };
5
+ };
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ const commander_1 = require("commander");
8
+ const chalk_1 = __importDefault(require("chalk"));
9
+ const init_js_1 = require("./commands/init.js");
10
+ const store_js_1 = require("./commands/store.js");
11
+ const search_js_1 = require("./commands/search.js");
12
+ const list_js_1 = require("./commands/list.js");
13
+ const delete_js_1 = require("./commands/delete.js");
14
+ const sync_js_1 = require("./commands/sync.js");
15
+ const export_js_1 = require("./commands/export.js");
16
+ const import_js_1 = require("./commands/import.js");
17
+ const program = new commander_1.Command();
18
+ program
19
+ .name('agentmemory')
20
+ .description('CLI tool for AgentMemory - persistent cloud memory for AI agents')
21
+ .version('1.0.0');
22
+ // Init command
23
+ program
24
+ .command('init')
25
+ .description('Initialize AgentMemory CLI with your API key')
26
+ .action(init_js_1.initCommand);
27
+ // Store command
28
+ program
29
+ .command('store <content>')
30
+ .description('Store a new memory')
31
+ .option('-c, --category <category>', 'Category for the memory')
32
+ .option('-m, --metadata <json>', 'Additional metadata as JSON')
33
+ .option('--json', 'Output as JSON')
34
+ .action(store_js_1.storeCommand);
35
+ // Search command
36
+ program
37
+ .command('search <query>')
38
+ .description('Search memories semantically')
39
+ .option('-l, --limit <number>', 'Maximum number of results', '10')
40
+ .option('--json', 'Output as JSON')
41
+ .action(search_js_1.searchCommand);
42
+ // List command
43
+ program
44
+ .command('list')
45
+ .description('List all memories')
46
+ .option('-l, --limit <number>', 'Maximum number of results', '50')
47
+ .option('-o, --offset <number>', 'Offset for pagination', '0')
48
+ .option('--json', 'Output as JSON')
49
+ .action(list_js_1.listCommand);
50
+ // Delete command
51
+ program
52
+ .command('delete <id>')
53
+ .description('Delete a memory by ID')
54
+ .option('-f, --force', 'Skip confirmation')
55
+ .option('--json', 'Output as JSON')
56
+ .action(delete_js_1.deleteCommand);
57
+ // Sync command
58
+ program
59
+ .command('sync')
60
+ .description('Sync memories with local MEMORY.md file')
61
+ .option('--push', 'Only push local to cloud')
62
+ .option('--pull', 'Only pull cloud to local')
63
+ .option('--status', 'Show sync status without making changes')
64
+ .option('--json', 'Output as JSON')
65
+ .action(sync_js_1.syncCommand);
66
+ // Export command
67
+ program
68
+ .command('export')
69
+ .description('Export all memories as JSON')
70
+ .option('-o, --output <file>', 'Output file path')
71
+ .option('-p, --pretty', 'Pretty print JSON')
72
+ .action(export_js_1.exportCommand);
73
+ // Import command
74
+ program
75
+ .command('import <file>')
76
+ .description('Import memories from JSON file')
77
+ .option('--json', 'Output as JSON')
78
+ .action(import_js_1.importCommand);
79
+ // Custom help
80
+ program.addHelpText('after', `
81
+ ${chalk_1.default.cyan('Examples:')}
82
+ $ agentmemory init # Setup with your API key
83
+ $ agentmemory store "User prefers dark mode"
84
+ $ agentmemory search "user preferences"
85
+ $ agentmemory list --limit 10
86
+ $ agentmemory sync # Sync with MEMORY.md
87
+ $ agentmemory export > backup.json
88
+
89
+ ${chalk_1.default.cyan('Documentation:')}
90
+ https://agentmemory.cloud/docs
91
+
92
+ ${chalk_1.default.cyan('Get your API key:')}
93
+ https://agentmemory.cloud/dashboard
94
+ `);
95
+ // Parse arguments
96
+ program.parse();
97
+ // Show help if no command provided
98
+ if (!process.argv.slice(2).length) {
99
+ console.log(chalk_1.default.cyan(`
100
+ 🧠 AgentMemory CLI v1.0.0
101
+
102
+ Persistent cloud memory for AI agents.
103
+ `));
104
+ program.outputHelp();
105
+ }
106
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { Memory, MemoriesListResponse, MemorySearchResult } from '../types.js';
2
+ declare class ApiError extends Error {
3
+ statusCode: number;
4
+ constructor(statusCode: number, message: string);
5
+ }
6
+ export declare function storeMemory(content: string, metadata?: Record<string, unknown>): Promise<Memory>;
7
+ export declare function searchMemories(query: string, limit?: number): Promise<MemorySearchResult[]>;
8
+ export declare function listMemories(limit?: number, offset?: number): Promise<MemoriesListResponse>;
9
+ export declare function getMemory(id: string): Promise<Memory>;
10
+ export declare function updateMemory(id: string, content: string, metadata?: Record<string, unknown>): Promise<Memory>;
11
+ export declare function deleteMemory(id: string): Promise<void>;
12
+ export declare function getAllMemories(): Promise<Memory[]>;
13
+ export { ApiError };
14
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,MAAM,EACN,oBAAoB,EAGpB,kBAAkB,EACnB,MAAM,aAAa,CAAC;AAErB,cAAM,QAAS,SAAQ,KAAK;IACP,UAAU,EAAE,MAAM;gBAAlB,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;CAIvD;AAoCD,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED,wBAAsB,cAAc,CAClC,KAAK,EAAE,MAAM,EACb,KAAK,GAAE,MAAW,GACjB,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAO/B;AAED,wBAAsB,YAAY,CAChC,KAAK,GAAE,MAAW,EAClB,MAAM,GAAE,MAAU,GACjB,OAAO,CAAC,oBAAoB,CAAC,CAM/B;AAED,wBAAsB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAG3D;AAED,wBAAsB,YAAY,CAChC,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED,wBAAsB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAI5D;AAED,wBAAsB,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAiBxD;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ApiError = void 0;
4
+ exports.storeMemory = storeMemory;
5
+ exports.searchMemories = searchMemories;
6
+ exports.listMemories = listMemories;
7
+ exports.getMemory = getMemory;
8
+ exports.updateMemory = updateMemory;
9
+ exports.deleteMemory = deleteMemory;
10
+ exports.getAllMemories = getAllMemories;
11
+ const config_js_1 = require("./config.js");
12
+ class ApiError extends Error {
13
+ statusCode;
14
+ constructor(statusCode, message) {
15
+ super(message);
16
+ this.statusCode = statusCode;
17
+ this.name = 'ApiError';
18
+ }
19
+ }
20
+ exports.ApiError = ApiError;
21
+ async function request(endpoint, options = {}) {
22
+ const apiKey = (0, config_js_1.getApiKey)();
23
+ const apiUrl = (0, config_js_1.getApiUrl)();
24
+ if (!apiKey) {
25
+ throw new Error('API key not configured. Run "agentmemory init" first.');
26
+ }
27
+ const url = `${apiUrl}${endpoint}`;
28
+ const response = await fetch(url, {
29
+ ...options,
30
+ headers: {
31
+ 'Authorization': `Bearer ${apiKey}`,
32
+ 'Content-Type': 'application/json',
33
+ ...options.headers,
34
+ },
35
+ });
36
+ const data = await response.json();
37
+ if (!response.ok) {
38
+ throw new ApiError(response.status, data.error || `Request failed with status ${response.status}`);
39
+ }
40
+ return data;
41
+ }
42
+ async function storeMemory(content, metadata) {
43
+ const body = { content };
44
+ if (metadata) {
45
+ body.metadata = metadata;
46
+ }
47
+ const response = await request('/memories', {
48
+ method: 'POST',
49
+ body: JSON.stringify(body),
50
+ });
51
+ return response.memory;
52
+ }
53
+ async function searchMemories(query, limit = 10) {
54
+ const response = await request('/memories/search', {
55
+ method: 'POST',
56
+ body: JSON.stringify({ query, limit }),
57
+ });
58
+ return response.memories;
59
+ }
60
+ async function listMemories(limit = 50, offset = 0) {
61
+ const response = await request(`/memories?limit=${limit}&offset=${offset}`);
62
+ return response;
63
+ }
64
+ async function getMemory(id) {
65
+ const response = await request(`/memories/${id}`);
66
+ return response.memory;
67
+ }
68
+ async function updateMemory(id, content, metadata) {
69
+ const body = { content };
70
+ if (metadata) {
71
+ body.metadata = metadata;
72
+ }
73
+ const response = await request(`/memories/${id}`, {
74
+ method: 'PUT',
75
+ body: JSON.stringify(body),
76
+ });
77
+ return response.memory;
78
+ }
79
+ async function deleteMemory(id) {
80
+ await request(`/memories/${id}`, {
81
+ method: 'DELETE',
82
+ });
83
+ }
84
+ async function getAllMemories() {
85
+ const allMemories = [];
86
+ let offset = 0;
87
+ const limit = 100;
88
+ while (true) {
89
+ const response = await listMemories(limit, offset);
90
+ allMemories.push(...response.memories);
91
+ if (response.memories.length < limit) {
92
+ break;
93
+ }
94
+ offset += limit;
95
+ }
96
+ return allMemories;
97
+ }
98
+ //# sourceMappingURL=api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { Config } from '../types.js';
2
+ export declare function getConfigDir(): string;
3
+ export declare function getConfigPath(): string;
4
+ export declare function ensureConfigDir(): void;
5
+ export declare function configExists(): boolean;
6
+ export declare function loadConfig(): Config;
7
+ export declare function saveConfig(config: Partial<Config>): void;
8
+ export declare function getApiKey(): string;
9
+ export declare function getApiUrl(): string;
10
+ export declare function getMemoryFilePath(): string;
11
+ export declare function isConfigured(): boolean;
12
+ export declare function clearConfig(): void;
13
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAW1C,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAItC;AAED,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED,wBAAgB,UAAU,IAAI,MAAM,CAenC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAOxD;AAED,wBAAgB,SAAS,IAAI,MAAM,CAUlC;AAED,wBAAgB,SAAS,IAAI,MAAM,CAQlC;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C;AAED,wBAAgB,YAAY,IAAI,OAAO,CAGtC;AAED,wBAAgB,WAAW,IAAI,IAAI,CAIlC"}
@@ -0,0 +1,123 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.getConfigDir = getConfigDir;
37
+ exports.getConfigPath = getConfigPath;
38
+ exports.ensureConfigDir = ensureConfigDir;
39
+ exports.configExists = configExists;
40
+ exports.loadConfig = loadConfig;
41
+ exports.saveConfig = saveConfig;
42
+ exports.getApiKey = getApiKey;
43
+ exports.getApiUrl = getApiUrl;
44
+ exports.getMemoryFilePath = getMemoryFilePath;
45
+ exports.isConfigured = isConfigured;
46
+ exports.clearConfig = clearConfig;
47
+ const fs = __importStar(require("fs"));
48
+ const path = __importStar(require("path"));
49
+ const os = __importStar(require("os"));
50
+ const CONFIG_DIR = path.join(os.homedir(), '.agentmemory');
51
+ const CONFIG_FILE = path.join(CONFIG_DIR, 'config.json');
52
+ const DEFAULT_CONFIG = {
53
+ api_key: '',
54
+ api_url: 'https://agentmemory.cloud/api',
55
+ memory_file: './MEMORY.md'
56
+ };
57
+ function getConfigDir() {
58
+ return CONFIG_DIR;
59
+ }
60
+ function getConfigPath() {
61
+ return CONFIG_FILE;
62
+ }
63
+ function ensureConfigDir() {
64
+ if (!fs.existsSync(CONFIG_DIR)) {
65
+ fs.mkdirSync(CONFIG_DIR, { recursive: true });
66
+ }
67
+ }
68
+ function configExists() {
69
+ return fs.existsSync(CONFIG_FILE);
70
+ }
71
+ function loadConfig() {
72
+ ensureConfigDir();
73
+ if (!fs.existsSync(CONFIG_FILE)) {
74
+ return { ...DEFAULT_CONFIG };
75
+ }
76
+ try {
77
+ const content = fs.readFileSync(CONFIG_FILE, 'utf-8');
78
+ const config = JSON.parse(content);
79
+ return { ...DEFAULT_CONFIG, ...config };
80
+ }
81
+ catch (error) {
82
+ console.error('Error reading config file:', error);
83
+ return { ...DEFAULT_CONFIG };
84
+ }
85
+ }
86
+ function saveConfig(config) {
87
+ ensureConfigDir();
88
+ const existingConfig = loadConfig();
89
+ const newConfig = { ...existingConfig, ...config };
90
+ fs.writeFileSync(CONFIG_FILE, JSON.stringify(newConfig, null, 2));
91
+ }
92
+ function getApiKey() {
93
+ // Check environment variable first
94
+ const envKey = process.env.AGENTMEMORY_API_KEY;
95
+ if (envKey) {
96
+ return envKey;
97
+ }
98
+ // Fall back to config file
99
+ const config = loadConfig();
100
+ return config.api_key;
101
+ }
102
+ function getApiUrl() {
103
+ const envUrl = process.env.AGENTMEMORY_API_URL;
104
+ if (envUrl) {
105
+ return envUrl;
106
+ }
107
+ const config = loadConfig();
108
+ return config.api_url;
109
+ }
110
+ function getMemoryFilePath() {
111
+ const config = loadConfig();
112
+ return config.memory_file;
113
+ }
114
+ function isConfigured() {
115
+ const apiKey = getApiKey();
116
+ return apiKey.length > 0 && apiKey.startsWith('am_');
117
+ }
118
+ function clearConfig() {
119
+ if (fs.existsSync(CONFIG_FILE)) {
120
+ fs.unlinkSync(CONFIG_FILE);
121
+ }
122
+ }
123
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}