simple-memory-mcp 1.1.3

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 (247) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +742 -0
  3. package/dist/cli/arg-parser.d.ts +9 -0
  4. package/dist/cli/arg-parser.d.ts.map +1 -0
  5. package/dist/cli/arg-parser.js +68 -0
  6. package/dist/cli/arg-parser.js.map +1 -0
  7. package/dist/cli/help-generator.d.ts +8 -0
  8. package/dist/cli/help-generator.d.ts.map +1 -0
  9. package/dist/cli/help-generator.js +89 -0
  10. package/dist/cli/help-generator.js.map +1 -0
  11. package/dist/cli/index.d.ts +27 -0
  12. package/dist/cli/index.d.ts.map +1 -0
  13. package/dist/cli/index.js +56 -0
  14. package/dist/cli/index.js.map +1 -0
  15. package/dist/cli/query-builder.d.ts +8 -0
  16. package/dist/cli/query-builder.d.ts.map +1 -0
  17. package/dist/cli/query-builder.js +63 -0
  18. package/dist/cli/query-builder.js.map +1 -0
  19. package/dist/cli/shortcuts-config.d.ts +26 -0
  20. package/dist/cli/shortcuts-config.d.ts.map +1 -0
  21. package/dist/cli/shortcuts-config.js +94 -0
  22. package/dist/cli/shortcuts-config.js.map +1 -0
  23. package/dist/graphql/resolvers.d.ts +101 -0
  24. package/dist/graphql/resolvers.d.ts.map +1 -0
  25. package/dist/graphql/resolvers.js +98 -0
  26. package/dist/graphql/resolvers.js.map +1 -0
  27. package/dist/graphql/schema.d.ts +13 -0
  28. package/dist/graphql/schema.d.ts.map +1 -0
  29. package/dist/graphql/schema.js +314 -0
  30. package/dist/graphql/schema.js.map +1 -0
  31. package/dist/index.d.ts +3 -0
  32. package/dist/index.d.ts.map +1 -0
  33. package/dist/index.js +573 -0
  34. package/dist/index.js.map +1 -0
  35. package/dist/services/backup-service.d.ts +57 -0
  36. package/dist/services/backup-service.d.ts.map +1 -0
  37. package/dist/services/backup-service.js +191 -0
  38. package/dist/services/backup-service.js.map +1 -0
  39. package/dist/services/database-optimizer.d.ts +15 -0
  40. package/dist/services/database-optimizer.d.ts.map +1 -0
  41. package/dist/services/database-optimizer.js +45 -0
  42. package/dist/services/database-optimizer.js.map +1 -0
  43. package/dist/services/memory-service.d.ts +126 -0
  44. package/dist/services/memory-service.d.ts.map +1 -0
  45. package/dist/services/memory-service.js +862 -0
  46. package/dist/services/memory-service.js.map +1 -0
  47. package/dist/services/migrations.d.ts +17 -0
  48. package/dist/services/migrations.d.ts.map +1 -0
  49. package/dist/services/migrations.js +273 -0
  50. package/dist/services/migrations.js.map +1 -0
  51. package/dist/tests/backup-export-test.d.ts +2 -0
  52. package/dist/tests/backup-export-test.d.ts.map +1 -0
  53. package/dist/tests/backup-export-test.js +162 -0
  54. package/dist/tests/backup-export-test.js.map +1 -0
  55. package/dist/tests/backup-test.d.ts +14 -0
  56. package/dist/tests/backup-test.d.ts.map +1 -0
  57. package/dist/tests/backup-test.js +209 -0
  58. package/dist/tests/backup-test.js.map +1 -0
  59. package/dist/tests/export-import-test.d.ts +15 -0
  60. package/dist/tests/export-import-test.d.ts.map +1 -0
  61. package/dist/tests/export-import-test.js +227 -0
  62. package/dist/tests/export-import-test.js.map +1 -0
  63. package/dist/tests/graphql-comprehensive-test.d.ts +6 -0
  64. package/dist/tests/graphql-comprehensive-test.d.ts.map +1 -0
  65. package/dist/tests/graphql-comprehensive-test.js +342 -0
  66. package/dist/tests/graphql-comprehensive-test.js.map +1 -0
  67. package/dist/tests/graphql-performance-test.d.ts +6 -0
  68. package/dist/tests/graphql-performance-test.d.ts.map +1 -0
  69. package/dist/tests/graphql-performance-test.js +141 -0
  70. package/dist/tests/graphql-performance-test.js.map +1 -0
  71. package/dist/tests/graphql-test.d.ts +5 -0
  72. package/dist/tests/graphql-test.d.ts.map +1 -0
  73. package/dist/tests/graphql-test.js +47 -0
  74. package/dist/tests/graphql-test.js.map +1 -0
  75. package/dist/tests/memory-server-tests.d.ts +7 -0
  76. package/dist/tests/memory-server-tests.d.ts.map +1 -0
  77. package/dist/tests/memory-server-tests.js +466 -0
  78. package/dist/tests/memory-server-tests.js.map +1 -0
  79. package/dist/tests/migration-test.d.ts +2 -0
  80. package/dist/tests/migration-test.d.ts.map +1 -0
  81. package/dist/tests/migration-test.js +270 -0
  82. package/dist/tests/migration-test.js.map +1 -0
  83. package/dist/tests/performance-benchmark.d.ts +7 -0
  84. package/dist/tests/performance-benchmark.d.ts.map +1 -0
  85. package/dist/tests/performance-benchmark.js +234 -0
  86. package/dist/tests/performance-benchmark.js.map +1 -0
  87. package/dist/tests/performance-test.d.ts +3 -0
  88. package/dist/tests/performance-test.d.ts.map +1 -0
  89. package/dist/tests/performance-test.js +61 -0
  90. package/dist/tests/performance-test.js.map +1 -0
  91. package/dist/tests/time-range-test.d.ts +7 -0
  92. package/dist/tests/time-range-test.d.ts.map +1 -0
  93. package/dist/tests/time-range-test.js +169 -0
  94. package/dist/tests/time-range-test.js.map +1 -0
  95. package/dist/tools/delete-memory/cli-parser.d.ts +2 -0
  96. package/dist/tools/delete-memory/cli-parser.d.ts.map +1 -0
  97. package/dist/tools/delete-memory/cli-parser.js +13 -0
  98. package/dist/tools/delete-memory/cli-parser.js.map +1 -0
  99. package/dist/tools/delete-memory/executor.d.ts +13 -0
  100. package/dist/tools/delete-memory/executor.d.ts.map +1 -0
  101. package/dist/tools/delete-memory/executor.js +40 -0
  102. package/dist/tools/delete-memory/executor.js.map +1 -0
  103. package/dist/tools/delete-memory/index.d.ts +3 -0
  104. package/dist/tools/delete-memory/index.d.ts.map +1 -0
  105. package/dist/tools/delete-memory/index.js +24 -0
  106. package/dist/tools/delete-memory/index.js.map +1 -0
  107. package/dist/tools/export-memory/cli-parser.d.ts +2 -0
  108. package/dist/tools/export-memory/cli-parser.d.ts.map +1 -0
  109. package/dist/tools/export-memory/cli-parser.js +34 -0
  110. package/dist/tools/export-memory/cli-parser.js.map +1 -0
  111. package/dist/tools/export-memory/executor.d.ts +10 -0
  112. package/dist/tools/export-memory/executor.d.ts.map +1 -0
  113. package/dist/tools/export-memory/executor.js +41 -0
  114. package/dist/tools/export-memory/executor.js.map +1 -0
  115. package/dist/tools/export-memory/index.d.ts +4 -0
  116. package/dist/tools/export-memory/index.d.ts.map +1 -0
  117. package/dist/tools/export-memory/index.js +99 -0
  118. package/dist/tools/export-memory/index.js.map +1 -0
  119. package/dist/tools/import-memory/cli-parser.d.ts +2 -0
  120. package/dist/tools/import-memory/cli-parser.d.ts.map +1 -0
  121. package/dist/tools/import-memory/cli-parser.js +25 -0
  122. package/dist/tools/import-memory/cli-parser.js.map +1 -0
  123. package/dist/tools/import-memory/executor.d.ts +8 -0
  124. package/dist/tools/import-memory/executor.d.ts.map +1 -0
  125. package/dist/tools/import-memory/executor.js +31 -0
  126. package/dist/tools/import-memory/executor.js.map +1 -0
  127. package/dist/tools/import-memory/index.d.ts +4 -0
  128. package/dist/tools/import-memory/index.d.ts.map +1 -0
  129. package/dist/tools/import-memory/index.js +70 -0
  130. package/dist/tools/import-memory/index.js.map +1 -0
  131. package/dist/tools/index.d.ts +14 -0
  132. package/dist/tools/index.d.ts.map +1 -0
  133. package/dist/tools/index.js +48 -0
  134. package/dist/tools/index.js.map +1 -0
  135. package/dist/tools/memory-graphql/cli-parser.d.ts +6 -0
  136. package/dist/tools/memory-graphql/cli-parser.d.ts.map +1 -0
  137. package/dist/tools/memory-graphql/cli-parser.js +24 -0
  138. package/dist/tools/memory-graphql/cli-parser.js.map +1 -0
  139. package/dist/tools/memory-graphql/executor.d.ts +18 -0
  140. package/dist/tools/memory-graphql/executor.d.ts.map +1 -0
  141. package/dist/tools/memory-graphql/executor.js +53 -0
  142. package/dist/tools/memory-graphql/executor.js.map +1 -0
  143. package/dist/tools/memory-graphql/index.d.ts +3 -0
  144. package/dist/tools/memory-graphql/index.d.ts.map +1 -0
  145. package/dist/tools/memory-graphql/index.js +73 -0
  146. package/dist/tools/memory-graphql/index.js.map +1 -0
  147. package/dist/tools/memory-stats/cli-parser.d.ts +2 -0
  148. package/dist/tools/memory-stats/cli-parser.d.ts.map +1 -0
  149. package/dist/tools/memory-stats/cli-parser.js +8 -0
  150. package/dist/tools/memory-stats/cli-parser.js.map +1 -0
  151. package/dist/tools/memory-stats/executor.d.ts +4 -0
  152. package/dist/tools/memory-stats/executor.d.ts.map +1 -0
  153. package/dist/tools/memory-stats/executor.js +4 -0
  154. package/dist/tools/memory-stats/executor.js.map +1 -0
  155. package/dist/tools/memory-stats/index.d.ts +3 -0
  156. package/dist/tools/memory-stats/index.d.ts.map +1 -0
  157. package/dist/tools/memory-stats/index.js +15 -0
  158. package/dist/tools/memory-stats/index.js.map +1 -0
  159. package/dist/tools/search-memory/cli-parser.d.ts +2 -0
  160. package/dist/tools/search-memory/cli-parser.d.ts.map +1 -0
  161. package/dist/tools/search-memory/cli-parser.js +56 -0
  162. package/dist/tools/search-memory/cli-parser.js.map +1 -0
  163. package/dist/tools/search-memory/executor.d.ts +36 -0
  164. package/dist/tools/search-memory/executor.d.ts.map +1 -0
  165. package/dist/tools/search-memory/executor.js +83 -0
  166. package/dist/tools/search-memory/executor.js.map +1 -0
  167. package/dist/tools/search-memory/index.d.ts +3 -0
  168. package/dist/tools/search-memory/index.d.ts.map +1 -0
  169. package/dist/tools/search-memory/index.js +89 -0
  170. package/dist/tools/search-memory/index.js.map +1 -0
  171. package/dist/tools/store-memory/cli-parser.d.ts +2 -0
  172. package/dist/tools/store-memory/cli-parser.d.ts.map +1 -0
  173. package/dist/tools/store-memory/cli-parser.js +21 -0
  174. package/dist/tools/store-memory/cli-parser.js.map +1 -0
  175. package/dist/tools/store-memory/executor.d.ts +16 -0
  176. package/dist/tools/store-memory/executor.d.ts.map +1 -0
  177. package/dist/tools/store-memory/executor.js +100 -0
  178. package/dist/tools/store-memory/executor.js.map +1 -0
  179. package/dist/tools/store-memory/index.d.ts +3 -0
  180. package/dist/tools/store-memory/index.d.ts.map +1 -0
  181. package/dist/tools/store-memory/index.js +68 -0
  182. package/dist/tools/store-memory/index.js.map +1 -0
  183. package/dist/tools/sync-memory/cli-parser.d.ts +1 -0
  184. package/dist/tools/sync-memory/cli-parser.d.ts.map +1 -0
  185. package/dist/tools/sync-memory/cli-parser.js +2 -0
  186. package/dist/tools/sync-memory/cli-parser.js.map +1 -0
  187. package/dist/tools/sync-memory/executor.d.ts +1 -0
  188. package/dist/tools/sync-memory/executor.d.ts.map +1 -0
  189. package/dist/tools/sync-memory/executor.js +2 -0
  190. package/dist/tools/sync-memory/executor.js.map +1 -0
  191. package/dist/tools/sync-memory/index.d.ts +1 -0
  192. package/dist/tools/sync-memory/index.d.ts.map +1 -0
  193. package/dist/tools/sync-memory/index.js +2 -0
  194. package/dist/tools/sync-memory/index.js.map +1 -0
  195. package/dist/tools/update-memory/cli-parser.d.ts +2 -0
  196. package/dist/tools/update-memory/cli-parser.d.ts.map +1 -0
  197. package/dist/tools/update-memory/cli-parser.js +17 -0
  198. package/dist/tools/update-memory/cli-parser.js.map +1 -0
  199. package/dist/tools/update-memory/executor.d.ts +16 -0
  200. package/dist/tools/update-memory/executor.d.ts.map +1 -0
  201. package/dist/tools/update-memory/executor.js +59 -0
  202. package/dist/tools/update-memory/executor.js.map +1 -0
  203. package/dist/tools/update-memory/index.d.ts +3 -0
  204. package/dist/tools/update-memory/index.d.ts.map +1 -0
  205. package/dist/tools/update-memory/index.js +30 -0
  206. package/dist/tools/update-memory/index.js.map +1 -0
  207. package/dist/transports/streamable-http.d.ts +38 -0
  208. package/dist/transports/streamable-http.d.ts.map +1 -0
  209. package/dist/transports/streamable-http.js +209 -0
  210. package/dist/transports/streamable-http.js.map +1 -0
  211. package/dist/types/tools.d.ts +79 -0
  212. package/dist/types/tools.d.ts.map +1 -0
  213. package/dist/types/tools.js +3 -0
  214. package/dist/types/tools.js.map +1 -0
  215. package/dist/utils/cli-parser.d.ts +12 -0
  216. package/dist/utils/cli-parser.d.ts.map +1 -0
  217. package/dist/utils/cli-parser.js +43 -0
  218. package/dist/utils/cli-parser.js.map +1 -0
  219. package/dist/utils/config.d.ts +95 -0
  220. package/dist/utils/config.d.ts.map +1 -0
  221. package/dist/utils/config.js +176 -0
  222. package/dist/utils/config.js.map +1 -0
  223. package/dist/utils/db-integrity-check.d.ts +22 -0
  224. package/dist/utils/db-integrity-check.d.ts.map +1 -0
  225. package/dist/utils/db-integrity-check.js +69 -0
  226. package/dist/utils/db-integrity-check.js.map +1 -0
  227. package/dist/utils/debug.d.ts +25 -0
  228. package/dist/utils/debug.d.ts.map +1 -0
  229. package/dist/utils/debug.js +67 -0
  230. package/dist/utils/debug.js.map +1 -0
  231. package/dist/utils/help-generator.d.ts +18 -0
  232. package/dist/utils/help-generator.d.ts.map +1 -0
  233. package/dist/utils/help-generator.js +81 -0
  234. package/dist/utils/help-generator.js.map +1 -0
  235. package/dist/utils/json-parser.d.ts +12 -0
  236. package/dist/utils/json-parser.d.ts.map +1 -0
  237. package/dist/utils/json-parser.js +52 -0
  238. package/dist/utils/json-parser.js.map +1 -0
  239. package/dist/utils/mcp-config.d.ts +12 -0
  240. package/dist/utils/mcp-config.d.ts.map +1 -0
  241. package/dist/utils/mcp-config.js +64 -0
  242. package/dist/utils/mcp-config.js.map +1 -0
  243. package/dist/web-server.d.ts +3 -0
  244. package/dist/web-server.d.ts.map +1 -0
  245. package/dist/web-server.js +265 -0
  246. package/dist/web-server.js.map +1 -0
  247. package/package.json +75 -0
@@ -0,0 +1,9 @@
1
+ /**
2
+ * CLI argument parser for shortcut commands
3
+ * Converts argv array to typed object
4
+ */
5
+ /**
6
+ * Parse CLI arguments for a specific command
7
+ */
8
+ export declare function parseShortcutArgs(commandName: string, argv: string[]): Record<string, any>;
9
+ //# sourceMappingURL=arg-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arg-parser.d.ts","sourceRoot":"","sources":["../../src/cli/arg-parser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAsD1F"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * CLI argument parser for shortcut commands
3
+ * Converts argv array to typed object
4
+ */
5
+ import { findCommand } from './shortcuts-config.js';
6
+ /**
7
+ * Parse CLI arguments for a specific command
8
+ */
9
+ export function parseShortcutArgs(commandName, argv) {
10
+ const cmd = findCommand(commandName);
11
+ if (!cmd) {
12
+ throw new Error(`Unknown command: ${commandName}`);
13
+ }
14
+ const result = {};
15
+ for (let i = 0; i < argv.length; i++) {
16
+ const arg = argv[i];
17
+ // Handle --help flag
18
+ if (arg === '--help' || arg === '-h') {
19
+ result.help = true;
20
+ continue;
21
+ }
22
+ // Handle --name=value format
23
+ if (arg.startsWith('--') && arg.includes('=')) {
24
+ const [name, ...valueParts] = arg.slice(2).split('=');
25
+ const value = valueParts.join('=');
26
+ const argDef = cmd.args.find(a => a.name === name);
27
+ if (argDef) {
28
+ result[name] = parseValue(value, argDef.type);
29
+ }
30
+ continue;
31
+ }
32
+ // Handle --name value format
33
+ if (arg.startsWith('--')) {
34
+ const name = arg.slice(2);
35
+ const argDef = cmd.args.find(a => a.name === name);
36
+ if (argDef) {
37
+ if (argDef.type === 'boolean') {
38
+ // Boolean flags don't need a value
39
+ result[name] = true;
40
+ }
41
+ else if (i + 1 < argv.length && !argv[i + 1].startsWith('--')) {
42
+ result[name] = parseValue(argv[++i], argDef.type);
43
+ }
44
+ }
45
+ continue;
46
+ }
47
+ }
48
+ // Validate required args
49
+ for (const argDef of cmd.args) {
50
+ if (argDef.required && result[argDef.name] === undefined) {
51
+ throw new Error(`Missing required argument: --${argDef.name}`);
52
+ }
53
+ }
54
+ return result;
55
+ }
56
+ function parseValue(value, type) {
57
+ switch (type) {
58
+ case 'number':
59
+ return Number(value);
60
+ case 'boolean':
61
+ return value === 'true' || value === '1';
62
+ case 'array':
63
+ return value.split(',').map(s => s.trim());
64
+ default:
65
+ return value;
66
+ }
67
+ }
68
+ //# sourceMappingURL=arg-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arg-parser.js","sourceRoot":"","sources":["../../src/cli/arg-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Generate help text from CLI command config
3
+ */
4
+ /**
5
+ * Generate help text for main command or specific subcommand
6
+ */
7
+ export declare function generateHelp(commandName?: string): string;
8
+ //# sourceMappingURL=help-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help-generator.d.ts","sourceRoot":"","sources":["../../src/cli/help-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,wBAAgB,YAAY,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAKzD"}
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Generate help text from CLI command config
3
+ */
4
+ import { CLI_COMMANDS, findCommand } from './shortcuts-config.js';
5
+ /**
6
+ * Generate help text for main command or specific subcommand
7
+ */
8
+ export function generateHelp(commandName) {
9
+ if (commandName) {
10
+ return generateCommandHelp(commandName);
11
+ }
12
+ return generateMainHelp();
13
+ }
14
+ function generateMainHelp() {
15
+ const lines = [
16
+ 'simple-memory - Persistent memory storage for LLMs',
17
+ '',
18
+ 'Usage: simple-memory <command> [options]',
19
+ '',
20
+ 'Commands:',
21
+ ];
22
+ for (const cmd of CLI_COMMANDS) {
23
+ lines.push(` ${cmd.name.padEnd(12)} ${cmd.description}`);
24
+ }
25
+ lines.push('');
26
+ lines.push(' graphql Execute raw GraphQL query');
27
+ lines.push(' export Export memories to JSON file');
28
+ lines.push(' import Import memories from JSON file');
29
+ lines.push('');
30
+ lines.push('Run "simple-memory <command> --help" for command-specific options.');
31
+ return lines.join('\n');
32
+ }
33
+ function generateCommandHelp(commandName) {
34
+ const cmd = findCommand(commandName);
35
+ if (!cmd)
36
+ return `Unknown command: ${commandName}\n\n${generateMainHelp()}`;
37
+ const lines = [
38
+ `simple-memory ${cmd.name} - ${cmd.description}`,
39
+ '',
40
+ ];
41
+ if (cmd.args.length > 0) {
42
+ lines.push('Options:');
43
+ for (const arg of cmd.args) {
44
+ const req = arg.required ? ' (required)' : '';
45
+ const def = arg.default !== undefined ? ` [default: ${arg.default}]` : '';
46
+ lines.push(` --${arg.name.padEnd(14)} ${arg.description}${req}${def}`);
47
+ }
48
+ lines.push('');
49
+ }
50
+ lines.push('Example:');
51
+ lines.push(` simple-memory ${cmd.name} ${generateExample(cmd)}`);
52
+ return lines.join('\n');
53
+ }
54
+ function generateExample(cmd) {
55
+ const parts = [];
56
+ for (const arg of cmd.args) {
57
+ if (arg.required) {
58
+ if (arg.type === 'string') {
59
+ if (arg.name === 'hash') {
60
+ parts.push(`--${arg.name} "abc123..."`);
61
+ }
62
+ else if (arg.name === 'content') {
63
+ parts.push(`--${arg.name} "Remember this important fact"`);
64
+ }
65
+ else {
66
+ parts.push(`--${arg.name} "example"`);
67
+ }
68
+ }
69
+ else if (arg.type === 'number') {
70
+ parts.push(`--${arg.name} 5`);
71
+ }
72
+ else if (arg.type === 'array') {
73
+ parts.push(`--${arg.name} "tag1,tag2"`);
74
+ }
75
+ }
76
+ }
77
+ // Add one optional arg as example if no required args
78
+ if (parts.length === 0 && cmd.args.length > 0) {
79
+ const arg = cmd.args[0];
80
+ if (arg.type === 'string') {
81
+ parts.push(`--${arg.name} "example"`);
82
+ }
83
+ else if (arg.type === 'number') {
84
+ parts.push(`--${arg.name} 5`);
85
+ }
86
+ }
87
+ return parts.join(' ');
88
+ }
89
+ //# sourceMappingURL=help-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"help-generator.js","sourceRoot":"","sources":["../../src/cli/help-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * CLI shortcuts entry point
3
+ * Routes human-friendly commands to GraphQL executor
4
+ */
5
+ import { generateHelp } from './help-generator.js';
6
+ import type { ToolContext } from '../types/tools.js';
7
+ /**
8
+ * Check if a command name is a CLI shortcut
9
+ */
10
+ export declare function isShortcutCommand(command: string): boolean;
11
+ /**
12
+ * Get list of shortcut command names
13
+ */
14
+ export declare function getShortcutCommands(): string[];
15
+ /**
16
+ * Execute a CLI shortcut command
17
+ */
18
+ export declare function executeShortcut(command: string, argv: string[], context: ToolContext): Promise<{
19
+ output: string;
20
+ exitCode: number;
21
+ }>;
22
+ /**
23
+ * Get main help text
24
+ */
25
+ export declare function getMainHelp(): string;
26
+ export { generateHelp };
27
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CA0B/C;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAEpC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * CLI shortcuts entry point
3
+ * Routes human-friendly commands to GraphQL executor
4
+ */
5
+ import { findCommand, CLI_COMMANDS } from './shortcuts-config.js';
6
+ import { buildGraphQLQuery } from './query-builder.js';
7
+ import { generateHelp } from './help-generator.js';
8
+ import { parseShortcutArgs } from './arg-parser.js';
9
+ import { execute as executeGraphQL } from '../tools/memory-graphql/executor.js';
10
+ /**
11
+ * Check if a command name is a CLI shortcut
12
+ */
13
+ export function isShortcutCommand(command) {
14
+ return findCommand(command) !== undefined;
15
+ }
16
+ /**
17
+ * Get list of shortcut command names
18
+ */
19
+ export function getShortcutCommands() {
20
+ return CLI_COMMANDS.map(c => c.name);
21
+ }
22
+ /**
23
+ * Execute a CLI shortcut command
24
+ */
25
+ export async function executeShortcut(command, argv, context) {
26
+ try {
27
+ // Check for help flag first
28
+ if (argv.includes('--help') || argv.includes('-h')) {
29
+ return { output: generateHelp(command), exitCode: 0 };
30
+ }
31
+ // Parse arguments
32
+ const args = parseShortcutArgs(command, argv);
33
+ // Build GraphQL query
34
+ const query = buildGraphQLQuery(command, args);
35
+ // Execute via GraphQL
36
+ const result = await executeGraphQL({ query }, context);
37
+ return {
38
+ output: JSON.stringify(result, null, 2),
39
+ exitCode: 0
40
+ };
41
+ }
42
+ catch (error) {
43
+ return {
44
+ output: `Error: ${error.message}`,
45
+ exitCode: 1
46
+ };
47
+ }
48
+ }
49
+ /**
50
+ * Get main help text
51
+ */
52
+ export function getMainHelp() {
53
+ return generateHelp();
54
+ }
55
+ export { generateHelp };
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAGhF;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,OAAO,WAAW,CAAC,OAAO,CAAC,KAAK,SAAS,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACvC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,OAAe,EACf,IAAc,EACd,OAAoB;IAEpB,IAAI,CAAC;QACH,4BAA4B;QAC5B,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;QACxD,CAAC;QAED,kBAAkB;QAClB,MAAM,IAAI,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAE9C,sBAAsB;QACtB,MAAM,KAAK,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAE/C,sBAAsB;QACtB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,CAAC,CAAC;QAExD,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YACvC,QAAQ,EAAE,CAAC;SACZ,CAAC;IACJ,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO;YACL,MAAM,EAAE,UAAU,KAAK,CAAC,OAAO,EAAE;YACjC,QAAQ,EAAE,CAAC;SACZ,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,OAAO,YAAY,EAAE,CAAC;AACxB,CAAC;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Builds GraphQL queries from CLI command config and arguments
3
+ */
4
+ /**
5
+ * Build a GraphQL query string from command name and parsed arguments
6
+ */
7
+ export declare function buildGraphQLQuery(commandName: string, args: Record<string, any>): string;
8
+ //# sourceMappingURL=query-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-builder.d.ts","sourceRoot":"","sources":["../../src/cli/query-builder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GACxB,MAAM,CAkBR"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Builds GraphQL queries from CLI command config and arguments
3
+ */
4
+ import { findCommand } from './shortcuts-config.js';
5
+ /**
6
+ * Build a GraphQL query string from command name and parsed arguments
7
+ */
8
+ export function buildGraphQLQuery(commandName, args) {
9
+ const cmd = findCommand(commandName);
10
+ if (!cmd)
11
+ throw new Error(`Unknown command: ${commandName}`);
12
+ const gqlArgs = buildArgs(cmd, args);
13
+ const fields = cmd.defaultFields.join(' ');
14
+ if (cmd.type === 'mutation') {
15
+ if (gqlArgs) {
16
+ return `mutation { ${cmd.operation}(${gqlArgs}) { ${fields} } }`;
17
+ }
18
+ return `mutation { ${cmd.operation} { ${fields} } }`;
19
+ }
20
+ if (gqlArgs) {
21
+ return `{ ${cmd.operation}(${gqlArgs}) { ${fields} } }`;
22
+ }
23
+ return `{ ${cmd.operation} { ${fields} } }`;
24
+ }
25
+ /**
26
+ * Build GraphQL arguments string from CLI args
27
+ */
28
+ function buildArgs(cmd, args) {
29
+ const parts = [];
30
+ for (const argDef of cmd.args) {
31
+ // Use graphqlName if specified, otherwise use CLI name
32
+ const gqlName = argDef.graphqlName || argDef.name;
33
+ const value = args[argDef.name] ?? argDef.default;
34
+ if (value === undefined || value === null)
35
+ continue;
36
+ if (argDef.type === 'string') {
37
+ parts.push(`${gqlName}: "${escapeString(String(value))}"`);
38
+ }
39
+ else if (argDef.type === 'array') {
40
+ const arr = Array.isArray(value) ? value : String(value).split(',').map(s => s.trim());
41
+ parts.push(`${gqlName}: [${arr.map(v => `"${escapeString(v)}"`).join(', ')}]`);
42
+ }
43
+ else if (argDef.type === 'boolean') {
44
+ parts.push(`${gqlName}: ${value === true || value === 'true'}`);
45
+ }
46
+ else if (argDef.type === 'number') {
47
+ parts.push(`${gqlName}: ${Number(value)}`);
48
+ }
49
+ }
50
+ return parts.join(', ');
51
+ }
52
+ /**
53
+ * Escape special characters in GraphQL string values
54
+ */
55
+ function escapeString(s) {
56
+ return s
57
+ .replace(/\\/g, '\\\\')
58
+ .replace(/"/g, '\\"')
59
+ .replace(/\n/g, '\\n')
60
+ .replace(/\r/g, '\\r')
61
+ .replace(/\t/g, '\\t');
62
+ }
63
+ //# sourceMappingURL=query-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-builder.js","sourceRoot":"","sources":["../../src/cli/query-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * CLI command definitions for human-friendly shortcuts
3
+ * Each command maps to a GraphQL operation
4
+ */
5
+ export interface CliArg {
6
+ name: string;
7
+ graphqlName?: string;
8
+ type: 'string' | 'number' | 'boolean' | 'array';
9
+ description: string;
10
+ required?: boolean;
11
+ default?: any;
12
+ }
13
+ export interface CliCommand {
14
+ name: string;
15
+ description: string;
16
+ operation: string;
17
+ type: 'query' | 'mutation';
18
+ defaultFields: string[];
19
+ args: CliArg[];
20
+ }
21
+ export declare const CLI_COMMANDS: CliCommand[];
22
+ /**
23
+ * Find a command by name
24
+ */
25
+ export declare function findCommand(name: string): CliCommand | undefined;
26
+ //# sourceMappingURL=shortcuts-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shortcuts-config.d.ts","sourceRoot":"","sources":["../../src/cli/shortcuts-config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO,CAAC;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,GAAG,CAAC;CACf;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;IAC3B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,eAAO,MAAM,YAAY,EAAE,UAAU,EAkFpC,CAAC;AAEF;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAEhE"}
@@ -0,0 +1,94 @@
1
+ /**
2
+ * CLI command definitions for human-friendly shortcuts
3
+ * Each command maps to a GraphQL operation
4
+ */
5
+ export const CLI_COMMANDS = [
6
+ {
7
+ name: 'stats',
8
+ description: 'Show database statistics',
9
+ operation: 'stats',
10
+ type: 'query',
11
+ defaultFields: ['version', 'totalMemories', 'totalRelationships', 'dbSize', 'dbPath', 'schemaVersion'],
12
+ args: []
13
+ },
14
+ {
15
+ name: 'search',
16
+ description: 'Search memories by content or tags',
17
+ operation: 'memories',
18
+ type: 'query',
19
+ defaultFields: ['hash', 'title', 'tags', 'content', 'createdAt', 'relevance'],
20
+ args: [
21
+ { name: 'query', type: 'string', description: 'Full-text search query' },
22
+ { name: 'tags', type: 'array', description: 'Filter by tags (comma-separated)' },
23
+ { name: 'limit', type: 'number', description: 'Max results', default: 10 },
24
+ { name: 'daysAgo', type: 'number', description: 'Filter to last N days' },
25
+ { name: 'startDate', type: 'string', description: 'Filter from date (ISO format)' },
26
+ { name: 'endDate', type: 'string', description: 'Filter to date (ISO format)' },
27
+ { name: 'minRelevance', type: 'number', description: 'Minimum relevance score (0-1)' },
28
+ { name: 'summary', graphqlName: 'summaryOnly', type: 'boolean', description: 'Return summaries only' },
29
+ { name: 'previewLength', type: 'number', description: 'Preview length for summaries', default: 100 },
30
+ ]
31
+ },
32
+ {
33
+ name: 'get',
34
+ description: 'Get a single memory by hash',
35
+ operation: 'memory',
36
+ type: 'query',
37
+ defaultFields: ['hash', 'content', 'tags', 'createdAt'],
38
+ args: [
39
+ { name: 'hash', type: 'string', description: 'Memory hash (32 char MD5)', required: true },
40
+ ]
41
+ },
42
+ {
43
+ name: 'related',
44
+ description: 'Find related memories',
45
+ operation: 'related',
46
+ type: 'query',
47
+ defaultFields: ['hash', 'title', 'tags', 'createdAt'],
48
+ args: [
49
+ { name: 'hash', type: 'string', description: 'Memory hash', required: true },
50
+ { name: 'limit', type: 'number', description: 'Max results', default: 10 },
51
+ ]
52
+ },
53
+ {
54
+ name: 'store',
55
+ description: 'Store a new memory',
56
+ operation: 'store',
57
+ type: 'mutation',
58
+ defaultFields: ['success', 'hash', 'error'],
59
+ args: [
60
+ { name: 'content', type: 'string', description: 'Content to store', required: true },
61
+ { name: 'tags', type: 'array', description: 'Tags to associate (comma-separated)' },
62
+ ]
63
+ },
64
+ {
65
+ name: 'update',
66
+ description: 'Update an existing memory',
67
+ operation: 'update',
68
+ type: 'mutation',
69
+ defaultFields: ['success', 'newHash', 'error'],
70
+ args: [
71
+ { name: 'hash', type: 'string', description: 'Memory hash to update', required: true },
72
+ { name: 'content', type: 'string', description: 'New content', required: true },
73
+ { name: 'tags', type: 'array', description: 'New tags (replaces existing)' },
74
+ ]
75
+ },
76
+ {
77
+ name: 'delete',
78
+ description: 'Delete memories by hash or tag',
79
+ operation: 'delete',
80
+ type: 'mutation',
81
+ defaultFields: ['success', 'deletedCount', 'error'],
82
+ args: [
83
+ { name: 'hash', type: 'string', description: 'Memory hash to delete' },
84
+ { name: 'tag', type: 'string', description: 'Delete all memories with this tag' },
85
+ ]
86
+ },
87
+ ];
88
+ /**
89
+ * Find a command by name
90
+ */
91
+ export function findCommand(name) {
92
+ return CLI_COMMANDS.find(c => c.name === name);
93
+ }
94
+ //# sourceMappingURL=shortcuts-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shortcuts-config.js","sourceRoot":"","sources":["../../src/cli/shortcuts-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * GraphQL resolvers for simple-memory
3
+ * Maps GraphQL operations to MemoryService methods
4
+ */
5
+ import type { MemoryService } from '../services/memory-service.js';
6
+ /**
7
+ * Create resolvers bound to a MemoryService instance
8
+ */
9
+ export declare function createResolvers(memoryService: MemoryService): {
10
+ Query: {
11
+ memories: (_: any, args: {
12
+ query?: string;
13
+ tags?: string[];
14
+ limit?: number;
15
+ daysAgo?: number;
16
+ startDate?: string;
17
+ endDate?: string;
18
+ minRelevance?: number;
19
+ summaryOnly?: boolean;
20
+ previewLength?: number;
21
+ }) => {
22
+ hash: string;
23
+ content: string;
24
+ title: string;
25
+ preview: (args?: {
26
+ length?: number;
27
+ }) => string;
28
+ tags: string[];
29
+ createdAt: string;
30
+ relevance: number | undefined;
31
+ }[];
32
+ memory: (_: any, args: {
33
+ hash: string;
34
+ }) => {
35
+ hash: string;
36
+ content: string;
37
+ title: string;
38
+ preview: (args?: {
39
+ length?: number;
40
+ }) => string;
41
+ tags: string[];
42
+ createdAt: string;
43
+ relevance: number | undefined;
44
+ } | null;
45
+ related: (_: any, args: {
46
+ hash: string;
47
+ limit?: number;
48
+ }) => {
49
+ hash: string;
50
+ content: string;
51
+ title: string;
52
+ preview: (args?: {
53
+ length?: number;
54
+ }) => string;
55
+ tags: string[];
56
+ createdAt: string;
57
+ relevance: number | undefined;
58
+ }[];
59
+ stats: () => import("../services/memory-service.js").MemoryStats;
60
+ };
61
+ Mutation: {
62
+ store: (_: any, args: {
63
+ content: string;
64
+ tags?: string[];
65
+ }) => {
66
+ success: boolean;
67
+ hash: string;
68
+ error?: undefined;
69
+ } | {
70
+ success: boolean;
71
+ error: any;
72
+ hash?: undefined;
73
+ };
74
+ update: (_: any, args: {
75
+ hash: string;
76
+ content: string;
77
+ tags?: string[];
78
+ }) => {
79
+ success: boolean;
80
+ newHash: string;
81
+ error?: undefined;
82
+ } | {
83
+ success: boolean;
84
+ error: any;
85
+ newHash?: undefined;
86
+ };
87
+ delete: (_: any, args: {
88
+ hash?: string;
89
+ tag?: string;
90
+ }) => {
91
+ success: boolean;
92
+ deletedCount: number;
93
+ error?: undefined;
94
+ } | {
95
+ success: boolean;
96
+ deletedCount: number;
97
+ error: any;
98
+ };
99
+ };
100
+ };
101
+ //# sourceMappingURL=resolvers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolvers.d.ts","sourceRoot":"","sources":["../../src/graphql/resolvers.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAe,MAAM,+BAA+B,CAAC;AAyBhF;;GAEG;AACH,wBAAgB,eAAe,CAAC,aAAa,EAAE,aAAa;;sBAGxC,GAAG,QAAQ;YACvB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;YAChB,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,SAAS,CAAC,EAAE,MAAM,CAAC;YACnB,OAAO,CAAC,EAAE,MAAM,CAAC;YACjB,YAAY,CAAC,EAAE,MAAM,CAAC;YACtB,WAAW,CAAC,EAAE,OAAO,CAAC;YACtB,aAAa,CAAC,EAAE,MAAM,CAAC;SACxB;;;;6BA1Bc;gBAAE,MAAM,CAAC,EAAE,MAAM,CAAA;aAAE;;;;;oBA2CtB,GAAG,QAAQ;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE;;;;6BA3CxB;gBAAE,MAAM,CAAC,EAAE,MAAM,CAAA;aAAE;;;;;qBAgDrB,GAAG,QAAQ;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE;;;;6BAhDzC;gBAAE,MAAM,CAAC,EAAE,MAAM,CAAA;aAAE;;;;;;;;mBA4DvB,GAAG,QAAQ;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE;;;;;;;;;oBAS9C,GAAG,QAAQ;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE;;;;;;;;;oBAY7D,GAAG,QAAQ;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,GAAG,CAAC,EAAE,MAAM,CAAA;SAAE;;;;;;;;;;EA2B3D"}