@cortexmemory/cli 0.1.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 (75) hide show
  1. package/README.md +325 -0
  2. package/dist/commands/conversations.d.ts +16 -0
  3. package/dist/commands/conversations.d.ts.map +1 -0
  4. package/dist/commands/conversations.js +421 -0
  5. package/dist/commands/conversations.js.map +1 -0
  6. package/dist/commands/convex.d.ts +17 -0
  7. package/dist/commands/convex.d.ts.map +1 -0
  8. package/dist/commands/convex.js +442 -0
  9. package/dist/commands/convex.js.map +1 -0
  10. package/dist/commands/db.d.ts +16 -0
  11. package/dist/commands/db.d.ts.map +1 -0
  12. package/dist/commands/db.js +371 -0
  13. package/dist/commands/db.js.map +1 -0
  14. package/dist/commands/dev.d.ts +16 -0
  15. package/dist/commands/dev.d.ts.map +1 -0
  16. package/dist/commands/dev.js +558 -0
  17. package/dist/commands/dev.js.map +1 -0
  18. package/dist/commands/facts.d.ts +17 -0
  19. package/dist/commands/facts.d.ts.map +1 -0
  20. package/dist/commands/facts.js +386 -0
  21. package/dist/commands/facts.js.map +1 -0
  22. package/dist/commands/memory.d.ts +18 -0
  23. package/dist/commands/memory.d.ts.map +1 -0
  24. package/dist/commands/memory.js +486 -0
  25. package/dist/commands/memory.js.map +1 -0
  26. package/dist/commands/setup.d.ts +14 -0
  27. package/dist/commands/setup.d.ts.map +1 -0
  28. package/dist/commands/setup.js +494 -0
  29. package/dist/commands/setup.js.map +1 -0
  30. package/dist/commands/spaces.d.ts +18 -0
  31. package/dist/commands/spaces.d.ts.map +1 -0
  32. package/dist/commands/spaces.js +553 -0
  33. package/dist/commands/spaces.js.map +1 -0
  34. package/dist/commands/users.d.ts +18 -0
  35. package/dist/commands/users.d.ts.map +1 -0
  36. package/dist/commands/users.js +486 -0
  37. package/dist/commands/users.js.map +1 -0
  38. package/dist/index.d.ts +9 -0
  39. package/dist/index.d.ts.map +1 -0
  40. package/dist/index.js +70 -0
  41. package/dist/index.js.map +1 -0
  42. package/dist/types.d.ts +144 -0
  43. package/dist/types.d.ts.map +1 -0
  44. package/dist/types.js +5 -0
  45. package/dist/types.js.map +1 -0
  46. package/dist/utils/__tests__/config.test.d.ts +5 -0
  47. package/dist/utils/__tests__/config.test.d.ts.map +1 -0
  48. package/dist/utils/__tests__/config.test.js +127 -0
  49. package/dist/utils/__tests__/config.test.js.map +1 -0
  50. package/dist/utils/__tests__/formatting.test.d.ts +5 -0
  51. package/dist/utils/__tests__/formatting.test.d.ts.map +1 -0
  52. package/dist/utils/__tests__/formatting.test.js +132 -0
  53. package/dist/utils/__tests__/formatting.test.js.map +1 -0
  54. package/dist/utils/__tests__/validation.test.d.ts +5 -0
  55. package/dist/utils/__tests__/validation.test.d.ts.map +1 -0
  56. package/dist/utils/__tests__/validation.test.js +207 -0
  57. package/dist/utils/__tests__/validation.test.js.map +1 -0
  58. package/dist/utils/client.d.ts +42 -0
  59. package/dist/utils/client.d.ts.map +1 -0
  60. package/dist/utils/client.js +108 -0
  61. package/dist/utils/client.js.map +1 -0
  62. package/dist/utils/config.d.ts +67 -0
  63. package/dist/utils/config.d.ts.map +1 -0
  64. package/dist/utils/config.js +261 -0
  65. package/dist/utils/config.js.map +1 -0
  66. package/dist/utils/formatting.d.ts +81 -0
  67. package/dist/utils/formatting.d.ts.map +1 -0
  68. package/dist/utils/formatting.js +239 -0
  69. package/dist/utils/formatting.js.map +1 -0
  70. package/dist/utils/validation.d.ts +83 -0
  71. package/dist/utils/validation.d.ts.map +1 -0
  72. package/dist/utils/validation.js +243 -0
  73. package/dist/utils/validation.js.map +1 -0
  74. package/package.json +72 -0
  75. package/templates/.cortexrc.template +15 -0
@@ -0,0 +1,386 @@
1
+ /**
2
+ * Facts Commands
3
+ *
4
+ * Commands for managing facts:
5
+ * - list: List facts
6
+ * - search: Search facts
7
+ * - delete: Delete a fact
8
+ * - export: Export facts
9
+ * - get: Get fact details
10
+ */
11
+ import ora from "ora";
12
+ import { withClient } from "../utils/client.js";
13
+ import { resolveConfig } from "../utils/config.js";
14
+ import { formatOutput, printSuccess, printError, printWarning, printSection, formatCount, formatTimestamp, formatRelativeTime, } from "../utils/formatting.js";
15
+ import { validateMemorySpaceId, validateFactId, validateFactType, validateLimit, validateFilePath, validateSearchQuery, requireConfirmation, } from "../utils/validation.js";
16
+ import { writeFile } from "fs/promises";
17
+ /**
18
+ * Register facts commands
19
+ */
20
+ export function registerFactsCommands(program, config) {
21
+ const facts = program.command("facts").description("Manage extracted facts");
22
+ // facts list
23
+ facts
24
+ .command("list")
25
+ .description("List facts in a memory space")
26
+ .requiredOption("-s, --space <id>", "Memory space ID")
27
+ .option("-t, --type <type>", "Filter by fact type")
28
+ .option("-u, --user <id>", "Filter by user ID")
29
+ .option("-l, --limit <number>", "Maximum number of results", "50")
30
+ .option("-f, --format <format>", "Output format: table, json, csv")
31
+ .action(async (options) => {
32
+ const globalOpts = program.opts();
33
+ const resolved = resolveConfig(config, globalOpts);
34
+ const format = (options.format ?? resolved.format);
35
+ const spinner = ora("Loading facts...").start();
36
+ try {
37
+ validateMemorySpaceId(options.space);
38
+ const factType = options.type
39
+ ? validateFactType(options.type)
40
+ : undefined;
41
+ const limit = validateLimit(parseInt(options.limit, 10));
42
+ await withClient(config, globalOpts, async (client) => {
43
+ const factsList = await client.facts.list({
44
+ memorySpaceId: options.space,
45
+ factType,
46
+ limit,
47
+ });
48
+ spinner.stop();
49
+ if (factsList.length === 0) {
50
+ printWarning("No facts found");
51
+ return;
52
+ }
53
+ // Format facts for display
54
+ const displayData = factsList.map((f) => ({
55
+ id: f.factId,
56
+ fact: f.fact.length > 50 ? f.fact.substring(0, 47) + "..." : f.fact,
57
+ type: f.factType,
58
+ confidence: f.confidence + "%",
59
+ subject: f.subject ?? "-",
60
+ created: formatRelativeTime(f.createdAt),
61
+ }));
62
+ console.log(formatOutput(displayData, format, {
63
+ title: `Facts in ${options.space}`,
64
+ headers: [
65
+ "id",
66
+ "fact",
67
+ "type",
68
+ "confidence",
69
+ "subject",
70
+ "created",
71
+ ],
72
+ }));
73
+ printSuccess(`Found ${formatCount(factsList.length, "fact")}`);
74
+ });
75
+ }
76
+ catch (error) {
77
+ spinner.stop();
78
+ printError(error instanceof Error ? error.message : "Failed to list facts");
79
+ process.exit(1);
80
+ }
81
+ });
82
+ // facts search
83
+ facts
84
+ .command("search <query>")
85
+ .description("Search facts by content")
86
+ .requiredOption("-s, --space <id>", "Memory space ID")
87
+ .option("-t, --type <type>", "Filter by fact type")
88
+ .option("-l, --limit <number>", "Maximum number of results", "20")
89
+ .option("-f, --format <format>", "Output format: table, json")
90
+ .action(async (query, options) => {
91
+ const globalOpts = program.opts();
92
+ const resolved = resolveConfig(config, globalOpts);
93
+ const format = (options.format ?? resolved.format);
94
+ const spinner = ora("Searching facts...").start();
95
+ try {
96
+ validateSearchQuery(query);
97
+ validateMemorySpaceId(options.space);
98
+ const factType = options.type
99
+ ? validateFactType(options.type)
100
+ : undefined;
101
+ const limit = validateLimit(parseInt(options.limit, 10));
102
+ await withClient(config, globalOpts, async (client) => {
103
+ const results = await client.facts.search(options.space, query, {
104
+ factType,
105
+ limit,
106
+ });
107
+ spinner.stop();
108
+ if (results.length === 0) {
109
+ printWarning("No facts found matching your query");
110
+ return;
111
+ }
112
+ const displayData = results.map((f) => ({
113
+ id: f.factId,
114
+ fact: f.fact.length > 60 ? f.fact.substring(0, 57) + "..." : f.fact,
115
+ type: f.factType,
116
+ confidence: f.confidence + "%",
117
+ }));
118
+ console.log(formatOutput(displayData, format, {
119
+ title: `Search results for "${query}"`,
120
+ headers: ["id", "fact", "type", "confidence"],
121
+ }));
122
+ printSuccess(`Found ${formatCount(results.length, "fact")}`);
123
+ });
124
+ }
125
+ catch (error) {
126
+ spinner.stop();
127
+ printError(error instanceof Error ? error.message : "Search failed");
128
+ process.exit(1);
129
+ }
130
+ });
131
+ // facts get
132
+ facts
133
+ .command("get <factId>")
134
+ .description("Get fact details")
135
+ .requiredOption("-s, --space <id>", "Memory space ID")
136
+ .option("-f, --format <format>", "Output format: table, json")
137
+ .action(async (factId, options) => {
138
+ const globalOpts = program.opts();
139
+ const resolved = resolveConfig(config, globalOpts);
140
+ const format = (options.format ?? resolved.format);
141
+ const spinner = ora("Loading fact...").start();
142
+ try {
143
+ validateFactId(factId);
144
+ validateMemorySpaceId(options.space);
145
+ await withClient(config, globalOpts, async (client) => {
146
+ const fact = await client.facts.get(options.space, factId);
147
+ if (!fact) {
148
+ spinner.stop();
149
+ printError(`Fact ${factId} not found`);
150
+ process.exit(1);
151
+ }
152
+ spinner.stop();
153
+ if (format === "json") {
154
+ console.log(formatOutput(fact, "json"));
155
+ }
156
+ else {
157
+ printSection(`Fact: ${factId}`, {
158
+ Fact: fact.fact,
159
+ Type: fact.factType,
160
+ Confidence: `${fact.confidence}%`,
161
+ Subject: fact.subject ?? "-",
162
+ Predicate: fact.predicate ?? "-",
163
+ Object: fact.object ?? "-",
164
+ "Source Type": fact.sourceType,
165
+ Version: fact.version,
166
+ Created: formatTimestamp(fact.createdAt),
167
+ Updated: formatTimestamp(fact.updatedAt),
168
+ Tags: fact.tags.length > 0 ? fact.tags.join(", ") : "-",
169
+ });
170
+ if (fact.validFrom || fact.validUntil) {
171
+ console.log("\n Temporal Validity:");
172
+ if (fact.validFrom) {
173
+ console.log(` Valid From: ${formatTimestamp(fact.validFrom)}`);
174
+ }
175
+ if (fact.validUntil) {
176
+ console.log(` Valid Until: ${formatTimestamp(fact.validUntil)}`);
177
+ }
178
+ }
179
+ if (fact.sourceRef) {
180
+ console.log("\n Source Reference:");
181
+ if (fact.sourceRef.conversationId) {
182
+ console.log(` Conversation: ${fact.sourceRef.conversationId}`);
183
+ }
184
+ if (fact.sourceRef.memoryId) {
185
+ console.log(` Memory: ${fact.sourceRef.memoryId}`);
186
+ }
187
+ }
188
+ }
189
+ });
190
+ }
191
+ catch (error) {
192
+ spinner.stop();
193
+ printError(error instanceof Error ? error.message : "Failed to get fact");
194
+ process.exit(1);
195
+ }
196
+ });
197
+ // facts delete
198
+ facts
199
+ .command("delete <factId>")
200
+ .description("Delete a fact")
201
+ .requiredOption("-s, --space <id>", "Memory space ID")
202
+ .option("-y, --yes", "Skip confirmation prompt", false)
203
+ .action(async (factId, options) => {
204
+ const globalOpts = program.opts();
205
+ try {
206
+ validateFactId(factId);
207
+ validateMemorySpaceId(options.space);
208
+ if (!options.yes) {
209
+ const confirmed = await requireConfirmation(`Delete fact ${factId} from space ${options.space}?`, config);
210
+ if (!confirmed) {
211
+ printWarning("Operation cancelled");
212
+ return;
213
+ }
214
+ }
215
+ const spinner = ora("Deleting fact...").start();
216
+ await withClient(config, globalOpts, async (client) => {
217
+ await client.facts.delete(options.space, factId);
218
+ spinner.stop();
219
+ printSuccess(`Deleted fact ${factId}`);
220
+ });
221
+ }
222
+ catch (error) {
223
+ printError(error instanceof Error ? error.message : "Delete failed");
224
+ process.exit(1);
225
+ }
226
+ });
227
+ // facts export
228
+ facts
229
+ .command("export")
230
+ .description("Export facts to a file")
231
+ .requiredOption("-s, --space <id>", "Memory space ID")
232
+ .option("-t, --type <type>", "Filter by fact type")
233
+ .option("-o, --output <file>", "Output file path", "facts-export.json")
234
+ .option("-f, --format <format>", "Export format: json, csv", "json")
235
+ .action(async (options) => {
236
+ const globalOpts = program.opts();
237
+ const spinner = ora("Exporting facts...").start();
238
+ try {
239
+ validateMemorySpaceId(options.space);
240
+ validateFilePath(options.output);
241
+ const factType = options.type
242
+ ? validateFactType(options.type)
243
+ : undefined;
244
+ await withClient(config, globalOpts, async (client) => {
245
+ const factsList = await client.facts.list({
246
+ memorySpaceId: options.space,
247
+ factType,
248
+ limit: 10000, // Get all facts
249
+ });
250
+ let content;
251
+ if (options.format === "csv") {
252
+ // CSV format
253
+ const headers = [
254
+ "factId",
255
+ "fact",
256
+ "factType",
257
+ "confidence",
258
+ "subject",
259
+ "predicate",
260
+ "object",
261
+ "tags",
262
+ "createdAt",
263
+ ];
264
+ const rows = factsList.map((f) => [
265
+ f.factId,
266
+ `"${f.fact.replace(/"/g, '""')}"`,
267
+ f.factType,
268
+ f.confidence.toString(),
269
+ f.subject ?? "",
270
+ f.predicate ?? "",
271
+ f.object ?? "",
272
+ f.tags.join(";"),
273
+ new Date(f.createdAt).toISOString(),
274
+ ]);
275
+ content = [headers.join(","), ...rows.map((r) => r.join(","))].join("\n");
276
+ }
277
+ else {
278
+ // JSON format
279
+ content = JSON.stringify(factsList, null, 2);
280
+ }
281
+ await writeFile(options.output, content, "utf-8");
282
+ spinner.stop();
283
+ printSuccess(`Exported ${formatCount(factsList.length, "fact")} to ${options.output}`);
284
+ });
285
+ }
286
+ catch (error) {
287
+ spinner.stop();
288
+ printError(error instanceof Error ? error.message : "Export failed");
289
+ process.exit(1);
290
+ }
291
+ });
292
+ // facts count
293
+ facts
294
+ .command("count")
295
+ .description("Count facts in a memory space")
296
+ .requiredOption("-s, --space <id>", "Memory space ID")
297
+ .option("-t, --type <type>", "Filter by fact type")
298
+ .action(async (options) => {
299
+ const globalOpts = program.opts();
300
+ const spinner = ora("Counting facts...").start();
301
+ try {
302
+ validateMemorySpaceId(options.space);
303
+ const factType = options.type
304
+ ? validateFactType(options.type)
305
+ : undefined;
306
+ await withClient(config, globalOpts, async (client) => {
307
+ const factsList = await client.facts.list({
308
+ memorySpaceId: options.space,
309
+ factType,
310
+ limit: 10000,
311
+ });
312
+ spinner.stop();
313
+ printSuccess(`${formatCount(factsList.length, "fact")} in ${options.space}`);
314
+ // Show breakdown by type
315
+ const byType = new Map();
316
+ for (const fact of factsList) {
317
+ byType.set(fact.factType, (byType.get(fact.factType) ?? 0) + 1);
318
+ }
319
+ if (byType.size > 1) {
320
+ console.log("\n By Type:");
321
+ for (const [type, count] of byType) {
322
+ console.log(` ${type}: ${count}`);
323
+ }
324
+ }
325
+ });
326
+ }
327
+ catch (error) {
328
+ spinner.stop();
329
+ printError(error instanceof Error ? error.message : "Count failed");
330
+ process.exit(1);
331
+ }
332
+ });
333
+ // facts clear
334
+ facts
335
+ .command("clear")
336
+ .description("Clear all facts in a memory space")
337
+ .requiredOption("-s, --space <id>", "Memory space ID")
338
+ .option("-t, --type <type>", "Only clear facts of this type")
339
+ .option("-y, --yes", "Skip confirmation prompt", false)
340
+ .action(async (options) => {
341
+ const globalOpts = program.opts();
342
+ try {
343
+ validateMemorySpaceId(options.space);
344
+ const factType = options.type
345
+ ? validateFactType(options.type)
346
+ : undefined;
347
+ // Count facts first
348
+ const client = (await import("../utils/client.js")).createClient(config, globalOpts);
349
+ const factsList = await client.facts.list({
350
+ memorySpaceId: options.space,
351
+ factType,
352
+ limit: 10000,
353
+ });
354
+ if (factsList.length === 0) {
355
+ printWarning("No facts found to delete");
356
+ return;
357
+ }
358
+ if (!options.yes) {
359
+ const scope = factType ? ` of type "${factType}"` : "";
360
+ const confirmed = await requireConfirmation(`Delete ${formatCount(factsList.length, "fact")}${scope} from ${options.space}? This cannot be undone.`, config);
361
+ if (!confirmed) {
362
+ printWarning("Operation cancelled");
363
+ return;
364
+ }
365
+ }
366
+ const spinner = ora(`Deleting ${factsList.length} facts...`).start();
367
+ let deleted = 0;
368
+ for (const fact of factsList) {
369
+ try {
370
+ await client.facts.delete(options.space, fact.factId);
371
+ deleted++;
372
+ }
373
+ catch {
374
+ // Continue on error
375
+ }
376
+ }
377
+ spinner.stop();
378
+ printSuccess(`Deleted ${formatCount(deleted, "fact")}`);
379
+ }
380
+ catch (error) {
381
+ printError(error instanceof Error ? error.message : "Clear failed");
382
+ process.exit(1);
383
+ }
384
+ });
385
+ }
386
+ //# sourceMappingURL=facts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facts.js","sourceRoot":"","sources":["../../src/commands/facts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Memory Commands
3
+ *
4
+ * Commands for managing memories:
5
+ * - clear: Clear memories for a user or space
6
+ * - list: List memories
7
+ * - search: Search memories
8
+ * - delete: Delete a specific memory
9
+ * - export: Export memories
10
+ * - stats: Show memory statistics
11
+ */
12
+ import { Command } from "commander";
13
+ import type { CLIConfig } from "../types.js";
14
+ /**
15
+ * Register memory commands
16
+ */
17
+ export declare function registerMemoryCommands(program: Command, config: CLIConfig): void;
18
+ //# sourceMappingURL=memory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"memory.d.ts","sourceRoot":"","sources":["../../src/commands/memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,aAAa,CAAC;AAwB3D;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,SAAS,GAChB,IAAI,CA0jBN"}