@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,421 @@
1
+ /**
2
+ * Conversations Commands
3
+ *
4
+ * Commands for managing conversations:
5
+ * - list: List conversations
6
+ * - get: Get conversation with messages
7
+ * - delete: Delete a conversation
8
+ * - export: Export conversation
9
+ */
10
+ import ora from "ora";
11
+ import { withClient } from "../utils/client.js";
12
+ import { resolveConfig } from "../utils/config.js";
13
+ import { formatOutput, printSuccess, printError, printWarning, printSection, formatCount, formatTimestamp, formatRelativeTime, } from "../utils/formatting.js";
14
+ import { validateMemorySpaceId, validateConversationId, validateUserId, validateLimit, validateFilePath, requireConfirmation, } from "../utils/validation.js";
15
+ import { writeFile } from "fs/promises";
16
+ import pc from "picocolors";
17
+ /**
18
+ * Register conversations commands
19
+ */
20
+ export function registerConversationsCommands(program, config) {
21
+ const conversations = program
22
+ .command("conversations")
23
+ .alias("convs")
24
+ .description("Manage conversations");
25
+ // conversations list
26
+ conversations
27
+ .command("list")
28
+ .description("List conversations")
29
+ .option("-s, --space <id>", "Filter by memory space ID")
30
+ .option("-u, --user <id>", "Filter by user ID")
31
+ .option("-t, --type <type>", "Filter by type: user-agent, agent-agent")
32
+ .option("-l, --limit <number>", "Maximum number of results", "50")
33
+ .option("-f, --format <format>", "Output format: table, json, csv")
34
+ .action(async (options) => {
35
+ const globalOpts = program.opts();
36
+ const resolved = resolveConfig(config, globalOpts);
37
+ const format = (options.format ?? resolved.format);
38
+ const spinner = ora("Loading conversations...").start();
39
+ try {
40
+ if (options.space) {
41
+ validateMemorySpaceId(options.space);
42
+ }
43
+ if (options.user) {
44
+ validateUserId(options.user);
45
+ }
46
+ const limit = validateLimit(parseInt(options.limit, 10));
47
+ await withClient(config, globalOpts, async (client) => {
48
+ const convList = await client.conversations.list({
49
+ memorySpaceId: options.space,
50
+ userId: options.user,
51
+ type: options.type,
52
+ limit,
53
+ });
54
+ spinner.stop();
55
+ if (convList.length === 0) {
56
+ printWarning("No conversations found");
57
+ return;
58
+ }
59
+ // Format conversations for display
60
+ const displayData = convList.map((c) => ({
61
+ id: c.conversationId,
62
+ space: c.memorySpaceId,
63
+ type: c.type,
64
+ messages: c.messageCount,
65
+ user: c.participants?.userId ?? "-",
66
+ created: formatRelativeTime(c.createdAt),
67
+ updated: formatRelativeTime(c.updatedAt),
68
+ }));
69
+ console.log(formatOutput(displayData, format, {
70
+ title: "Conversations",
71
+ headers: [
72
+ "id",
73
+ "space",
74
+ "type",
75
+ "messages",
76
+ "user",
77
+ "created",
78
+ "updated",
79
+ ],
80
+ }));
81
+ printSuccess(`Found ${formatCount(convList.length, "conversation")}`);
82
+ });
83
+ }
84
+ catch (error) {
85
+ spinner.stop();
86
+ printError(error instanceof Error
87
+ ? error.message
88
+ : "Failed to list conversations");
89
+ process.exit(1);
90
+ }
91
+ });
92
+ // conversations get
93
+ conversations
94
+ .command("get <conversationId>")
95
+ .description("Get conversation details with messages")
96
+ .option("-m, --messages <number>", "Number of messages to show", "20")
97
+ .option("-f, --format <format>", "Output format: table, json")
98
+ .action(async (conversationId, options) => {
99
+ const globalOpts = program.opts();
100
+ const resolved = resolveConfig(config, globalOpts);
101
+ const format = (options.format ?? resolved.format);
102
+ const spinner = ora("Loading conversation...").start();
103
+ try {
104
+ validateConversationId(conversationId);
105
+ const messageLimit = validateLimit(parseInt(options.messages, 10), 1000);
106
+ await withClient(config, globalOpts, async (client) => {
107
+ const conversation = await client.conversations.get(conversationId);
108
+ if (!conversation) {
109
+ spinner.stop();
110
+ printError(`Conversation ${conversationId} not found`);
111
+ process.exit(1);
112
+ }
113
+ spinner.stop();
114
+ if (format === "json") {
115
+ console.log(formatOutput(conversation, "json"));
116
+ }
117
+ else {
118
+ printSection(`Conversation: ${conversationId}`, {
119
+ ID: conversation.conversationId,
120
+ "Memory Space": conversation.memorySpaceId,
121
+ Type: conversation.type,
122
+ "Message Count": conversation.messageCount,
123
+ "User ID": conversation.participants?.userId ?? "-",
124
+ "Participant ID": conversation.participants?.participantId ?? "-",
125
+ Created: formatTimestamp(conversation.createdAt),
126
+ Updated: formatTimestamp(conversation.updatedAt),
127
+ });
128
+ // Show messages
129
+ const messages = conversation.messages?.slice(0, messageLimit) ?? [];
130
+ if (messages.length > 0) {
131
+ console.log("\n Messages:");
132
+ console.log(" " + "─".repeat(60));
133
+ for (const msg of messages) {
134
+ const roleColor = msg.role === "user"
135
+ ? pc.cyan
136
+ : msg.role === "agent"
137
+ ? pc.green
138
+ : pc.yellow;
139
+ const timestamp = formatTimestamp(msg.timestamp);
140
+ console.log(`\n ${roleColor(`[${msg.role.toUpperCase()}]`)} ${pc.dim(timestamp)}`);
141
+ // Word wrap content
142
+ const maxWidth = 58;
143
+ const words = msg.content.split(" ");
144
+ let line = " ";
145
+ for (const word of words) {
146
+ if (line.length + word.length > maxWidth) {
147
+ console.log(line);
148
+ line = " ";
149
+ }
150
+ line += word + " ";
151
+ }
152
+ if (line.trim()) {
153
+ console.log(line);
154
+ }
155
+ }
156
+ console.log("\n " + "─".repeat(60));
157
+ if (conversation.messageCount > messageLimit) {
158
+ console.log(pc.dim(` ... and ${conversation.messageCount - messageLimit} more messages`));
159
+ }
160
+ }
161
+ }
162
+ });
163
+ }
164
+ catch (error) {
165
+ spinner.stop();
166
+ printError(error instanceof Error ? error.message : "Failed to get conversation");
167
+ process.exit(1);
168
+ }
169
+ });
170
+ // conversations delete
171
+ conversations
172
+ .command("delete <conversationId>")
173
+ .description("Delete a conversation")
174
+ .option("-y, --yes", "Skip confirmation prompt", false)
175
+ .action(async (conversationId, options) => {
176
+ const globalOpts = program.opts();
177
+ try {
178
+ validateConversationId(conversationId);
179
+ // Get conversation first to show info
180
+ await withClient(config, globalOpts, async (client) => {
181
+ const conversation = await client.conversations.get(conversationId);
182
+ if (!conversation) {
183
+ printError(`Conversation ${conversationId} not found`);
184
+ process.exit(1);
185
+ }
186
+ if (!options.yes) {
187
+ const confirmed = await requireConfirmation(`Delete conversation ${conversationId} with ${conversation.messageCount} messages?`, config);
188
+ if (!confirmed) {
189
+ printWarning("Operation cancelled");
190
+ return;
191
+ }
192
+ }
193
+ const spinner = ora("Deleting conversation...").start();
194
+ await client.conversations.delete(conversationId);
195
+ spinner.stop();
196
+ printSuccess(`Deleted conversation ${conversationId}`);
197
+ console.log(` ${formatCount(conversation.messageCount, "message")} removed`);
198
+ });
199
+ }
200
+ catch (error) {
201
+ printError(error instanceof Error ? error.message : "Delete failed");
202
+ process.exit(1);
203
+ }
204
+ });
205
+ // conversations export
206
+ conversations
207
+ .command("export <conversationId>")
208
+ .description("Export a conversation to a file")
209
+ .option("-o, --output <file>", "Output file path", "conversation-export.json")
210
+ .option("-f, --format <format>", "Export format: json, txt", "json")
211
+ .action(async (conversationId, options) => {
212
+ const globalOpts = program.opts();
213
+ const spinner = ora("Exporting conversation...").start();
214
+ try {
215
+ validateConversationId(conversationId);
216
+ validateFilePath(options.output);
217
+ await withClient(config, globalOpts, async (client) => {
218
+ const conversation = await client.conversations.get(conversationId);
219
+ if (!conversation) {
220
+ spinner.stop();
221
+ printError(`Conversation ${conversationId} not found`);
222
+ process.exit(1);
223
+ }
224
+ let content;
225
+ if (options.format === "txt") {
226
+ // Human-readable text format
227
+ const lines = [
228
+ `Conversation: ${conversation.conversationId}`,
229
+ `Space: ${conversation.memorySpaceId}`,
230
+ `Type: ${conversation.type}`,
231
+ `Messages: ${conversation.messageCount}`,
232
+ `Created: ${new Date(conversation.createdAt).toISOString()}`,
233
+ "",
234
+ "---",
235
+ "",
236
+ ];
237
+ for (const msg of conversation.messages ?? []) {
238
+ lines.push(`[${msg.role.toUpperCase()}] ${new Date(msg.timestamp).toISOString()}`);
239
+ lines.push(msg.content);
240
+ lines.push("");
241
+ }
242
+ content = lines.join("\n");
243
+ }
244
+ else {
245
+ // JSON format
246
+ content = JSON.stringify(conversation, null, 2);
247
+ }
248
+ await writeFile(options.output, content, "utf-8");
249
+ spinner.stop();
250
+ printSuccess(`Exported conversation to ${options.output}`);
251
+ });
252
+ }
253
+ catch (error) {
254
+ spinner.stop();
255
+ printError(error instanceof Error ? error.message : "Export failed");
256
+ process.exit(1);
257
+ }
258
+ });
259
+ // conversations count
260
+ conversations
261
+ .command("count")
262
+ .description("Count conversations")
263
+ .option("-s, --space <id>", "Filter by memory space ID")
264
+ .option("-u, --user <id>", "Filter by user ID")
265
+ .option("-t, --type <type>", "Filter by type")
266
+ .action(async (options) => {
267
+ const globalOpts = program.opts();
268
+ const spinner = ora("Counting conversations...").start();
269
+ try {
270
+ if (options.space) {
271
+ validateMemorySpaceId(options.space);
272
+ }
273
+ if (options.user) {
274
+ validateUserId(options.user);
275
+ }
276
+ await withClient(config, globalOpts, async (client) => {
277
+ const count = await client.conversations.count({
278
+ memorySpaceId: options.space,
279
+ userId: options.user,
280
+ type: options.type,
281
+ });
282
+ spinner.stop();
283
+ let scope = "";
284
+ if (options.space)
285
+ scope += ` in space ${options.space}`;
286
+ if (options.user)
287
+ scope += ` for user ${options.user}`;
288
+ if (options.type)
289
+ scope += ` of type ${options.type}`;
290
+ printSuccess(`${formatCount(count, "conversation")}${scope}`);
291
+ });
292
+ }
293
+ catch (error) {
294
+ spinner.stop();
295
+ printError(error instanceof Error ? error.message : "Count failed");
296
+ process.exit(1);
297
+ }
298
+ });
299
+ // conversations clear
300
+ conversations
301
+ .command("clear")
302
+ .description("Clear conversations")
303
+ .option("-s, --space <id>", "Memory space ID (required)")
304
+ .option("-u, --user <id>", "Only clear for this user")
305
+ .option("-y, --yes", "Skip confirmation prompt", false)
306
+ .action(async (options) => {
307
+ const globalOpts = program.opts();
308
+ try {
309
+ if (!options.space && !options.user) {
310
+ printError("Either --space or --user is required");
311
+ process.exit(1);
312
+ }
313
+ if (options.space) {
314
+ validateMemorySpaceId(options.space);
315
+ }
316
+ if (options.user) {
317
+ validateUserId(options.user);
318
+ }
319
+ // Count first
320
+ await withClient(config, globalOpts, async (client) => {
321
+ const count = await client.conversations.count({
322
+ memorySpaceId: options.space,
323
+ userId: options.user,
324
+ });
325
+ if (count === 0) {
326
+ printWarning("No conversations found to delete");
327
+ return;
328
+ }
329
+ if (!options.yes) {
330
+ const scope = options.user
331
+ ? `for user ${options.user}`
332
+ : `in space ${options.space}`;
333
+ const confirmed = await requireConfirmation(`Delete ${formatCount(count, "conversation")} ${scope}? This cannot be undone.`, config);
334
+ if (!confirmed) {
335
+ printWarning("Operation cancelled");
336
+ return;
337
+ }
338
+ }
339
+ const spinner = ora(`Deleting ${count} conversations...`).start();
340
+ // Get all conversations
341
+ const convList = await client.conversations.list({
342
+ memorySpaceId: options.space,
343
+ userId: options.user,
344
+ limit: 10000,
345
+ });
346
+ let deleted = 0;
347
+ for (const conv of convList) {
348
+ try {
349
+ await client.conversations.delete(conv.conversationId);
350
+ deleted++;
351
+ }
352
+ catch {
353
+ // Continue on error
354
+ }
355
+ }
356
+ spinner.stop();
357
+ printSuccess(`Deleted ${formatCount(deleted, "conversation")}`);
358
+ });
359
+ }
360
+ catch (error) {
361
+ printError(error instanceof Error ? error.message : "Clear failed");
362
+ process.exit(1);
363
+ }
364
+ });
365
+ // conversations messages
366
+ conversations
367
+ .command("messages <conversationId>")
368
+ .description("List messages in a conversation")
369
+ .option("-l, --limit <number>", "Maximum number of messages", "50")
370
+ .option("-f, --format <format>", "Output format: table, json")
371
+ .action(async (conversationId, options) => {
372
+ const globalOpts = program.opts();
373
+ const resolved = resolveConfig(config, globalOpts);
374
+ const format = (options.format ?? resolved.format);
375
+ const spinner = ora("Loading messages...").start();
376
+ try {
377
+ validateConversationId(conversationId);
378
+ const limit = validateLimit(parseInt(options.limit, 10), 1000);
379
+ await withClient(config, globalOpts, async (client) => {
380
+ const conversation = await client.conversations.get(conversationId);
381
+ if (!conversation) {
382
+ spinner.stop();
383
+ printError(`Conversation ${conversationId} not found`);
384
+ process.exit(1);
385
+ }
386
+ spinner.stop();
387
+ const messages = conversation.messages?.slice(0, limit) ?? [];
388
+ if (messages.length === 0) {
389
+ printWarning("No messages in this conversation");
390
+ return;
391
+ }
392
+ if (format === "json") {
393
+ console.log(formatOutput(messages, "json"));
394
+ }
395
+ else {
396
+ const displayData = messages.map((m) => ({
397
+ id: m.id,
398
+ role: m.role,
399
+ content: m.content.length > 60
400
+ ? m.content.substring(0, 57) + "..."
401
+ : m.content,
402
+ time: formatTimestamp(m.timestamp),
403
+ }));
404
+ console.log(formatOutput(displayData, "table", {
405
+ title: `Messages in ${conversationId}`,
406
+ headers: ["id", "role", "content", "time"],
407
+ }));
408
+ if (conversation.messageCount > limit) {
409
+ console.log(pc.dim(`\nShowing ${limit} of ${conversation.messageCount} messages`));
410
+ }
411
+ }
412
+ });
413
+ }
414
+ catch (error) {
415
+ spinner.stop();
416
+ printError(error instanceof Error ? error.message : "Failed to list messages");
417
+ process.exit(1);
418
+ }
419
+ });
420
+ }
421
+ //# sourceMappingURL=conversations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversations.js","sourceRoot":"","sources":["../../src/commands/conversations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Convex Deployment Management Commands
3
+ *
4
+ * Commands for managing Convex deployments:
5
+ * - deploy: Deploy schema updates
6
+ * - status: Check deployment status
7
+ * - logs: View logs
8
+ * - update-sdk: Update SDK version
9
+ * - schema: Schema operations
10
+ */
11
+ import { Command } from "commander";
12
+ import type { CLIConfig } from "../types.js";
13
+ /**
14
+ * Register Convex management commands
15
+ */
16
+ export declare function registerConvexCommands(program: Command, config: CLIConfig): void;
17
+ //# sourceMappingURL=convex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"convex.d.ts","sourceRoot":"","sources":["../../src/commands/convex.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAiF7C;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,SAAS,GAChB,IAAI,CAkcN"}