@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.
- package/README.md +325 -0
- package/dist/commands/conversations.d.ts +16 -0
- package/dist/commands/conversations.d.ts.map +1 -0
- package/dist/commands/conversations.js +421 -0
- package/dist/commands/conversations.js.map +1 -0
- package/dist/commands/convex.d.ts +17 -0
- package/dist/commands/convex.d.ts.map +1 -0
- package/dist/commands/convex.js +442 -0
- package/dist/commands/convex.js.map +1 -0
- package/dist/commands/db.d.ts +16 -0
- package/dist/commands/db.d.ts.map +1 -0
- package/dist/commands/db.js +371 -0
- package/dist/commands/db.js.map +1 -0
- package/dist/commands/dev.d.ts +16 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +558 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/facts.d.ts +17 -0
- package/dist/commands/facts.d.ts.map +1 -0
- package/dist/commands/facts.js +386 -0
- package/dist/commands/facts.js.map +1 -0
- package/dist/commands/memory.d.ts +18 -0
- package/dist/commands/memory.d.ts.map +1 -0
- package/dist/commands/memory.js +486 -0
- package/dist/commands/memory.js.map +1 -0
- package/dist/commands/setup.d.ts +14 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +494 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/commands/spaces.d.ts +18 -0
- package/dist/commands/spaces.d.ts.map +1 -0
- package/dist/commands/spaces.js +553 -0
- package/dist/commands/spaces.js.map +1 -0
- package/dist/commands/users.d.ts +18 -0
- package/dist/commands/users.d.ts.map +1 -0
- package/dist/commands/users.js +486 -0
- package/dist/commands/users.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +70 -0
- package/dist/index.js.map +1 -0
- package/dist/types.d.ts +144 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/__tests__/config.test.d.ts +5 -0
- package/dist/utils/__tests__/config.test.d.ts.map +1 -0
- package/dist/utils/__tests__/config.test.js +127 -0
- package/dist/utils/__tests__/config.test.js.map +1 -0
- package/dist/utils/__tests__/formatting.test.d.ts +5 -0
- package/dist/utils/__tests__/formatting.test.d.ts.map +1 -0
- package/dist/utils/__tests__/formatting.test.js +132 -0
- package/dist/utils/__tests__/formatting.test.js.map +1 -0
- package/dist/utils/__tests__/validation.test.d.ts +5 -0
- package/dist/utils/__tests__/validation.test.d.ts.map +1 -0
- package/dist/utils/__tests__/validation.test.js +207 -0
- package/dist/utils/__tests__/validation.test.js.map +1 -0
- package/dist/utils/client.d.ts +42 -0
- package/dist/utils/client.d.ts.map +1 -0
- package/dist/utils/client.js +108 -0
- package/dist/utils/client.js.map +1 -0
- package/dist/utils/config.d.ts +67 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +261 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/formatting.d.ts +81 -0
- package/dist/utils/formatting.d.ts.map +1 -0
- package/dist/utils/formatting.js +239 -0
- package/dist/utils/formatting.js.map +1 -0
- package/dist/utils/validation.d.ts +83 -0
- package/dist/utils/validation.d.ts.map +1 -0
- package/dist/utils/validation.js +243 -0
- package/dist/utils/validation.js.map +1 -0
- package/package.json +72 -0
- package/templates/.cortexrc.template +15 -0
|
@@ -0,0 +1,558 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Development Commands
|
|
3
|
+
*
|
|
4
|
+
* Commands for development and testing:
|
|
5
|
+
* - seed: Seed test data
|
|
6
|
+
* - clear-test-data: Clear test data
|
|
7
|
+
* - generate-data: Generate sample data
|
|
8
|
+
* - debug: Debugging utilities
|
|
9
|
+
*/
|
|
10
|
+
import ora from "ora";
|
|
11
|
+
import { withClient } from "../utils/client.js";
|
|
12
|
+
import { printSuccess, printError, printWarning, printSection, formatTimestamp, } from "../utils/formatting.js";
|
|
13
|
+
import { validateMemorySpaceId, validateMemoryId, validateSearchQuery, requireConfirmation, } from "../utils/validation.js";
|
|
14
|
+
import pc from "picocolors";
|
|
15
|
+
/**
|
|
16
|
+
* Generate a random ID
|
|
17
|
+
*/
|
|
18
|
+
function generateId(prefix) {
|
|
19
|
+
return `${prefix}-${Date.now()}-${Math.random().toString(36).substring(2, 8)}`;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Sample data templates
|
|
23
|
+
*/
|
|
24
|
+
const DATA_TEMPLATES = {
|
|
25
|
+
chatbot: {
|
|
26
|
+
name: "AI Chatbot",
|
|
27
|
+
conversations: [
|
|
28
|
+
{
|
|
29
|
+
user: "What's the weather like today?",
|
|
30
|
+
agent: "I don't have access to real-time weather data, but I can help you find a weather service!",
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
user: "Can you recommend a good restaurant?",
|
|
34
|
+
agent: "I'd be happy to help! What cuisine are you in the mood for, and what's your location?",
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
user: "Tell me a joke",
|
|
38
|
+
agent: "Why did the programmer quit his job? Because he didn't get arrays! 😄",
|
|
39
|
+
},
|
|
40
|
+
],
|
|
41
|
+
facts: [
|
|
42
|
+
{
|
|
43
|
+
fact: "User prefers helpful and friendly responses",
|
|
44
|
+
type: "preference",
|
|
45
|
+
},
|
|
46
|
+
{ fact: "User enjoys humor in conversations", type: "preference" },
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
ecommerce: {
|
|
50
|
+
name: "E-commerce Assistant",
|
|
51
|
+
conversations: [
|
|
52
|
+
{
|
|
53
|
+
user: "I'm looking for running shoes",
|
|
54
|
+
agent: "Great! I can help you find the perfect running shoes. What's your budget and preferred brand?",
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
user: "What's your return policy?",
|
|
58
|
+
agent: "We offer a 30-day return policy for unworn items with original tags. Would you like more details?",
|
|
59
|
+
},
|
|
60
|
+
],
|
|
61
|
+
facts: [
|
|
62
|
+
{ fact: "User is interested in running shoes", type: "preference" },
|
|
63
|
+
{ fact: "Customer values clear return policies", type: "observation" },
|
|
64
|
+
],
|
|
65
|
+
},
|
|
66
|
+
"knowledge-base": {
|
|
67
|
+
name: "Knowledge Base Agent",
|
|
68
|
+
conversations: [
|
|
69
|
+
{
|
|
70
|
+
user: "How do I reset my password?",
|
|
71
|
+
agent: "To reset your password, go to Settings > Security > Change Password. You'll need to verify your email.",
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
user: "What are the system requirements?",
|
|
75
|
+
agent: "The minimum requirements are: 8GB RAM, 2GHz processor, and 10GB free disk space.",
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
facts: [
|
|
79
|
+
{
|
|
80
|
+
fact: "Password reset is done through Settings > Security",
|
|
81
|
+
type: "knowledge",
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
fact: "Minimum RAM requirement is 8GB",
|
|
85
|
+
type: "knowledge",
|
|
86
|
+
},
|
|
87
|
+
],
|
|
88
|
+
},
|
|
89
|
+
};
|
|
90
|
+
/**
|
|
91
|
+
* Register development commands
|
|
92
|
+
*/
|
|
93
|
+
export function registerDevCommands(program, config) {
|
|
94
|
+
const dev = program
|
|
95
|
+
.command("dev")
|
|
96
|
+
.description("Development and testing utilities");
|
|
97
|
+
// dev seed
|
|
98
|
+
dev
|
|
99
|
+
.command("seed")
|
|
100
|
+
.description("Seed test data into the database")
|
|
101
|
+
.option("-u, --users <number>", "Number of test users to create", "5")
|
|
102
|
+
.option("-s, --spaces <number>", "Number of memory spaces to create", "3")
|
|
103
|
+
.option("-m, --memories <number>", "Number of memories per space", "10")
|
|
104
|
+
.option("-c, --conversations <number>", "Conversations per space", "5")
|
|
105
|
+
.option("--prefix <prefix>", "Prefix for test data IDs", "test")
|
|
106
|
+
.option("-y, --yes", "Skip confirmation", false)
|
|
107
|
+
.action(async (options) => {
|
|
108
|
+
const globalOpts = program.opts();
|
|
109
|
+
try {
|
|
110
|
+
const numUsers = parseInt(options.users, 10);
|
|
111
|
+
const numSpaces = parseInt(options.spaces, 10);
|
|
112
|
+
const numMemories = parseInt(options.memories, 10);
|
|
113
|
+
const numConversations = parseInt(options.conversations, 10);
|
|
114
|
+
const prefix = options.prefix;
|
|
115
|
+
if (!options.yes) {
|
|
116
|
+
console.log();
|
|
117
|
+
console.log(pc.bold("This will create:"));
|
|
118
|
+
console.log(` • ${numUsers} test users`);
|
|
119
|
+
console.log(` • ${numSpaces} memory spaces`);
|
|
120
|
+
console.log(` • ${numMemories * numSpaces} memories`);
|
|
121
|
+
console.log(` • ${numConversations * numSpaces} conversations`);
|
|
122
|
+
console.log();
|
|
123
|
+
const confirmed = await requireConfirmation("Proceed with seeding test data?", config);
|
|
124
|
+
if (!confirmed) {
|
|
125
|
+
printWarning("Seeding cancelled");
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
const spinner = ora("Seeding test data...").start();
|
|
130
|
+
await withClient(config, globalOpts, async (client) => {
|
|
131
|
+
const created = {
|
|
132
|
+
users: 0,
|
|
133
|
+
spaces: 0,
|
|
134
|
+
memories: 0,
|
|
135
|
+
conversations: 0,
|
|
136
|
+
facts: 0,
|
|
137
|
+
};
|
|
138
|
+
// Create test users
|
|
139
|
+
spinner.text = "Creating test users...";
|
|
140
|
+
for (let i = 0; i < numUsers; i++) {
|
|
141
|
+
const userId = `${prefix}-user-${i + 1}`;
|
|
142
|
+
try {
|
|
143
|
+
await client.users.update(userId, {
|
|
144
|
+
displayName: `Test User ${i + 1}`,
|
|
145
|
+
email: `user${i + 1}@test.example`,
|
|
146
|
+
createdBy: "cortex-cli-seed",
|
|
147
|
+
});
|
|
148
|
+
created.users++;
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
// Skip if exists
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
// Create memory spaces
|
|
155
|
+
spinner.text = "Creating memory spaces...";
|
|
156
|
+
const spaceIds = [];
|
|
157
|
+
for (let i = 0; i < numSpaces; i++) {
|
|
158
|
+
const spaceId = `${prefix}-space-${i + 1}`;
|
|
159
|
+
try {
|
|
160
|
+
await client.memorySpaces.register({
|
|
161
|
+
memorySpaceId: spaceId,
|
|
162
|
+
name: `Test Space ${i + 1}`,
|
|
163
|
+
type: "project",
|
|
164
|
+
metadata: { createdBy: "cortex-cli-seed" },
|
|
165
|
+
});
|
|
166
|
+
spaceIds.push(spaceId);
|
|
167
|
+
created.spaces++;
|
|
168
|
+
}
|
|
169
|
+
catch {
|
|
170
|
+
spaceIds.push(spaceId); // Still try to use it
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
// Create conversations and memories
|
|
174
|
+
for (const spaceId of spaceIds) {
|
|
175
|
+
spinner.text = `Seeding ${spaceId}...`;
|
|
176
|
+
// Create conversations
|
|
177
|
+
for (let i = 0; i < numConversations; i++) {
|
|
178
|
+
const conversationId = generateId(`${prefix}-conv`);
|
|
179
|
+
const userId = `${prefix}-user-${(i % numUsers) + 1}`;
|
|
180
|
+
try {
|
|
181
|
+
await client.memory.remember({
|
|
182
|
+
memorySpaceId: spaceId,
|
|
183
|
+
conversationId,
|
|
184
|
+
userMessage: `Test message ${i + 1} from user`,
|
|
185
|
+
agentResponse: `Test response ${i + 1} from agent`,
|
|
186
|
+
userId,
|
|
187
|
+
userName: `Test User ${(i % numUsers) + 1}`,
|
|
188
|
+
});
|
|
189
|
+
created.conversations++;
|
|
190
|
+
created.memories += 2; // User + agent message
|
|
191
|
+
}
|
|
192
|
+
catch {
|
|
193
|
+
// Skip on error
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
// Create additional standalone memories
|
|
197
|
+
for (let i = 0; i < numMemories; i++) {
|
|
198
|
+
try {
|
|
199
|
+
await client.vector.store(spaceId, {
|
|
200
|
+
content: `Test memory content ${i + 1} for space ${spaceId}`,
|
|
201
|
+
contentType: "raw",
|
|
202
|
+
source: {
|
|
203
|
+
type: "system",
|
|
204
|
+
timestamp: Date.now(),
|
|
205
|
+
},
|
|
206
|
+
metadata: {
|
|
207
|
+
importance: Math.floor(Math.random() * 100),
|
|
208
|
+
tags: ["test", "seed", `batch-${i + 1}`],
|
|
209
|
+
},
|
|
210
|
+
});
|
|
211
|
+
created.memories++;
|
|
212
|
+
}
|
|
213
|
+
catch {
|
|
214
|
+
// Skip on error
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
spinner.stop();
|
|
219
|
+
printSuccess("Test data seeded successfully!");
|
|
220
|
+
printSection("Created", {
|
|
221
|
+
Users: created.users,
|
|
222
|
+
"Memory Spaces": created.spaces,
|
|
223
|
+
Memories: created.memories,
|
|
224
|
+
Conversations: created.conversations,
|
|
225
|
+
});
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
printError(error instanceof Error ? error.message : "Seeding failed");
|
|
230
|
+
process.exit(1);
|
|
231
|
+
}
|
|
232
|
+
});
|
|
233
|
+
// dev clear-test-data
|
|
234
|
+
dev
|
|
235
|
+
.command("clear-test-data")
|
|
236
|
+
.description("Clear test data from the database")
|
|
237
|
+
.option("--prefix <prefix>", "Prefix of test data to clear", "test")
|
|
238
|
+
.option("-y, --yes", "Skip confirmation", false)
|
|
239
|
+
.action(async (options) => {
|
|
240
|
+
const globalOpts = program.opts();
|
|
241
|
+
try {
|
|
242
|
+
const prefix = options.prefix;
|
|
243
|
+
if (!options.yes) {
|
|
244
|
+
const confirmed = await requireConfirmation(`Delete all data with prefix "${prefix}"?`, config);
|
|
245
|
+
if (!confirmed) {
|
|
246
|
+
printWarning("Operation cancelled");
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
const spinner = ora("Clearing test data...").start();
|
|
251
|
+
await withClient(config, globalOpts, async (client) => {
|
|
252
|
+
const deleted = {
|
|
253
|
+
users: 0,
|
|
254
|
+
spaces: 0,
|
|
255
|
+
};
|
|
256
|
+
// Find and delete test spaces
|
|
257
|
+
spinner.text = "Finding test memory spaces...";
|
|
258
|
+
const spaces = await client.memorySpaces.list({ limit: 10000 });
|
|
259
|
+
const testSpaces = spaces.filter((s) => s.memorySpaceId.startsWith(prefix));
|
|
260
|
+
for (const space of testSpaces) {
|
|
261
|
+
try {
|
|
262
|
+
await client.memorySpaces.delete(space.memorySpaceId, {
|
|
263
|
+
cascade: true,
|
|
264
|
+
});
|
|
265
|
+
deleted.spaces++;
|
|
266
|
+
}
|
|
267
|
+
catch {
|
|
268
|
+
// Continue on error
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
// Find and delete test users
|
|
272
|
+
spinner.text = "Finding test users...";
|
|
273
|
+
const users = await client.users.list({ limit: 10000 });
|
|
274
|
+
const testUsers = users.filter((u) => u.id.startsWith(prefix));
|
|
275
|
+
for (const user of testUsers) {
|
|
276
|
+
try {
|
|
277
|
+
await client.users.delete(user.id, { cascade: true });
|
|
278
|
+
deleted.users++;
|
|
279
|
+
}
|
|
280
|
+
catch {
|
|
281
|
+
// Continue on error
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
spinner.stop();
|
|
285
|
+
printSuccess("Test data cleared");
|
|
286
|
+
printSection("Deleted", {
|
|
287
|
+
"Memory Spaces": deleted.spaces,
|
|
288
|
+
Users: deleted.users,
|
|
289
|
+
});
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
catch (error) {
|
|
293
|
+
printError(error instanceof Error ? error.message : "Clear failed");
|
|
294
|
+
process.exit(1);
|
|
295
|
+
}
|
|
296
|
+
});
|
|
297
|
+
// dev generate-data
|
|
298
|
+
dev
|
|
299
|
+
.command("generate-data")
|
|
300
|
+
.description("Generate sample data from templates")
|
|
301
|
+
.requiredOption("-t, --template <template>", "Template: chatbot, ecommerce, knowledge-base")
|
|
302
|
+
.option("-s, --space <id>", "Memory space ID (creates new if not specified)")
|
|
303
|
+
.option("-u, --user <id>", "User ID", "demo-user")
|
|
304
|
+
.action(async (options) => {
|
|
305
|
+
const globalOpts = program.opts();
|
|
306
|
+
try {
|
|
307
|
+
const templateName = options.template;
|
|
308
|
+
const template = DATA_TEMPLATES[templateName];
|
|
309
|
+
if (!template) {
|
|
310
|
+
printError(`Unknown template: ${templateName}. Available: ${Object.keys(DATA_TEMPLATES).join(", ")}`);
|
|
311
|
+
process.exit(1);
|
|
312
|
+
}
|
|
313
|
+
const spinner = ora(`Generating ${template.name} data...`).start();
|
|
314
|
+
await withClient(config, globalOpts, async (client) => {
|
|
315
|
+
// Create or use existing space
|
|
316
|
+
const spaceId = options.space ?? `demo-${templateName}`;
|
|
317
|
+
spinner.text = "Creating memory space...";
|
|
318
|
+
try {
|
|
319
|
+
await client.memorySpaces.register({
|
|
320
|
+
memorySpaceId: spaceId,
|
|
321
|
+
name: template.name,
|
|
322
|
+
type: "project",
|
|
323
|
+
metadata: { template: templateName },
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
catch {
|
|
327
|
+
// Space may already exist
|
|
328
|
+
}
|
|
329
|
+
// Create user
|
|
330
|
+
spinner.text = "Creating demo user...";
|
|
331
|
+
const userId = options.user;
|
|
332
|
+
try {
|
|
333
|
+
await client.users.update(userId, {
|
|
334
|
+
displayName: "Demo User",
|
|
335
|
+
template: templateName,
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
catch {
|
|
339
|
+
// User may already exist
|
|
340
|
+
}
|
|
341
|
+
// Create conversations
|
|
342
|
+
spinner.text = "Creating conversations...";
|
|
343
|
+
let conversationCount = 0;
|
|
344
|
+
for (const conv of template.conversations) {
|
|
345
|
+
const conversationId = generateId("demo-conv");
|
|
346
|
+
try {
|
|
347
|
+
await client.memory.remember({
|
|
348
|
+
memorySpaceId: spaceId,
|
|
349
|
+
conversationId,
|
|
350
|
+
userMessage: conv.user,
|
|
351
|
+
agentResponse: conv.agent,
|
|
352
|
+
userId,
|
|
353
|
+
userName: "Demo User",
|
|
354
|
+
});
|
|
355
|
+
conversationCount++;
|
|
356
|
+
}
|
|
357
|
+
catch {
|
|
358
|
+
// Skip on error
|
|
359
|
+
}
|
|
360
|
+
}
|
|
361
|
+
// Create facts
|
|
362
|
+
spinner.text = "Creating facts...";
|
|
363
|
+
let factCount = 0;
|
|
364
|
+
for (const factData of template.facts) {
|
|
365
|
+
try {
|
|
366
|
+
await client.facts.store({
|
|
367
|
+
memorySpaceId: spaceId,
|
|
368
|
+
fact: factData.fact,
|
|
369
|
+
factType: factData.type,
|
|
370
|
+
confidence: 80,
|
|
371
|
+
sourceType: "system",
|
|
372
|
+
tags: ["demo", templateName],
|
|
373
|
+
});
|
|
374
|
+
factCount++;
|
|
375
|
+
}
|
|
376
|
+
catch {
|
|
377
|
+
// Skip on error
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
spinner.stop();
|
|
381
|
+
printSuccess(`Generated ${template.name} demo data`);
|
|
382
|
+
printSection("Created", {
|
|
383
|
+
"Memory Space": spaceId,
|
|
384
|
+
User: userId,
|
|
385
|
+
Conversations: conversationCount,
|
|
386
|
+
Facts: factCount,
|
|
387
|
+
});
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
catch (error) {
|
|
391
|
+
printError(error instanceof Error ? error.message : "Generation failed");
|
|
392
|
+
process.exit(1);
|
|
393
|
+
}
|
|
394
|
+
});
|
|
395
|
+
// dev debug
|
|
396
|
+
const debug = dev.command("debug").description("Debugging utilities");
|
|
397
|
+
// debug search
|
|
398
|
+
debug
|
|
399
|
+
.command("search <query>")
|
|
400
|
+
.description("Test vector search")
|
|
401
|
+
.requiredOption("-s, --space <id>", "Memory space ID")
|
|
402
|
+
.option("-l, --limit <number>", "Number of results", "5")
|
|
403
|
+
.option("--verbose", "Show detailed results", false)
|
|
404
|
+
.action(async (query, options) => {
|
|
405
|
+
const globalOpts = program.opts();
|
|
406
|
+
try {
|
|
407
|
+
validateSearchQuery(query);
|
|
408
|
+
validateMemorySpaceId(options.space);
|
|
409
|
+
const spinner = ora("Performing vector search...").start();
|
|
410
|
+
const startTime = Date.now();
|
|
411
|
+
await withClient(config, globalOpts, async (client) => {
|
|
412
|
+
const results = await client.memory.search(options.space, query, {
|
|
413
|
+
limit: parseInt(options.limit, 10),
|
|
414
|
+
});
|
|
415
|
+
const duration = Date.now() - startTime;
|
|
416
|
+
spinner.stop();
|
|
417
|
+
console.log();
|
|
418
|
+
printSection("Search Debug", {
|
|
419
|
+
Query: query,
|
|
420
|
+
Space: options.space,
|
|
421
|
+
Results: results.length,
|
|
422
|
+
Duration: `${duration}ms`,
|
|
423
|
+
});
|
|
424
|
+
if (results.length > 0) {
|
|
425
|
+
console.log("\n Results:");
|
|
426
|
+
for (let i = 0; i < results.length; i++) {
|
|
427
|
+
const result = results[i];
|
|
428
|
+
// Type guard for EnrichedMemory vs MemoryEntry
|
|
429
|
+
const memory = result && typeof result === "object" && "memory" in result
|
|
430
|
+
? result.memory
|
|
431
|
+
: result;
|
|
432
|
+
console.log(`\n ${pc.cyan(`[${i + 1}]`)} ${memory.memoryId}`);
|
|
433
|
+
console.log(` ${pc.dim("Content:")} ${memory.content.substring(0, 100)}...`);
|
|
434
|
+
console.log(` ${pc.dim("Type:")} ${memory.contentType}`);
|
|
435
|
+
console.log(` ${pc.dim("Importance:")} ${memory.importance}`);
|
|
436
|
+
if (options.verbose) {
|
|
437
|
+
console.log(` ${pc.dim("Created:")} ${formatTimestamp(memory.createdAt)}`);
|
|
438
|
+
console.log(` ${pc.dim("Tags:")} ${memory.tags.join(", ") || "-"}`);
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
else {
|
|
443
|
+
printWarning("No results found");
|
|
444
|
+
}
|
|
445
|
+
});
|
|
446
|
+
}
|
|
447
|
+
catch (error) {
|
|
448
|
+
printError(error instanceof Error ? error.message : "Search failed");
|
|
449
|
+
process.exit(1);
|
|
450
|
+
}
|
|
451
|
+
});
|
|
452
|
+
// debug inspect
|
|
453
|
+
debug
|
|
454
|
+
.command("inspect <memoryId>")
|
|
455
|
+
.description("Inspect a memory in detail")
|
|
456
|
+
.requiredOption("-s, --space <id>", "Memory space ID")
|
|
457
|
+
.action(async (memoryId, options) => {
|
|
458
|
+
const globalOpts = program.opts();
|
|
459
|
+
try {
|
|
460
|
+
validateMemoryId(memoryId);
|
|
461
|
+
validateMemorySpaceId(options.space);
|
|
462
|
+
const spinner = ora("Loading memory...").start();
|
|
463
|
+
await withClient(config, globalOpts, async (client) => {
|
|
464
|
+
const result = await client.memory.get(options.space, memoryId, {
|
|
465
|
+
includeConversation: true,
|
|
466
|
+
});
|
|
467
|
+
spinner.stop();
|
|
468
|
+
if (!result) {
|
|
469
|
+
printError("Memory not found");
|
|
470
|
+
process.exit(1);
|
|
471
|
+
}
|
|
472
|
+
const memory = "memory" in result ? result.memory : result;
|
|
473
|
+
console.log();
|
|
474
|
+
console.log(pc.bold(pc.cyan("Memory Inspection")));
|
|
475
|
+
console.log(pc.dim("─".repeat(50)));
|
|
476
|
+
console.log();
|
|
477
|
+
// Basic info
|
|
478
|
+
console.log(pc.bold("Basic Info:"));
|
|
479
|
+
console.log(` ID: ${memory.memoryId}`);
|
|
480
|
+
console.log(` Space: ${memory.memorySpaceId}`);
|
|
481
|
+
console.log(` Version: ${memory.version}`);
|
|
482
|
+
console.log();
|
|
483
|
+
// Content
|
|
484
|
+
console.log(pc.bold("Content:"));
|
|
485
|
+
console.log(` Type: ${memory.contentType}`);
|
|
486
|
+
console.log(` Length: ${memory.content.length} characters`);
|
|
487
|
+
console.log(` Content:\n ${memory.content}`);
|
|
488
|
+
console.log();
|
|
489
|
+
// Source
|
|
490
|
+
console.log(pc.bold("Source:"));
|
|
491
|
+
console.log(` Type: ${memory.sourceType}`);
|
|
492
|
+
console.log(` User: ${memory.userId ?? "-"}`);
|
|
493
|
+
console.log(` Timestamp: ${formatTimestamp(memory.sourceTimestamp)}`);
|
|
494
|
+
console.log();
|
|
495
|
+
// Metadata
|
|
496
|
+
console.log(pc.bold("Metadata:"));
|
|
497
|
+
console.log(` Importance: ${memory.importance}`);
|
|
498
|
+
console.log(` Tags: ${memory.tags.join(", ") || "-"}`);
|
|
499
|
+
console.log(` Access Count: ${memory.accessCount}`);
|
|
500
|
+
console.log();
|
|
501
|
+
// Embedding
|
|
502
|
+
console.log(pc.bold("Embedding:"));
|
|
503
|
+
if (memory.embedding) {
|
|
504
|
+
console.log(` Dimensions: ${memory.embedding.length}`);
|
|
505
|
+
console.log(` Sample: [${memory.embedding
|
|
506
|
+
.slice(0, 5)
|
|
507
|
+
.map((n) => n.toFixed(4))
|
|
508
|
+
.join(", ")}, ...]`);
|
|
509
|
+
}
|
|
510
|
+
else {
|
|
511
|
+
console.log(" No embedding stored");
|
|
512
|
+
}
|
|
513
|
+
console.log();
|
|
514
|
+
// Timestamps
|
|
515
|
+
console.log(pc.bold("Timestamps:"));
|
|
516
|
+
console.log(` Created: ${formatTimestamp(memory.createdAt)}`);
|
|
517
|
+
console.log(` Updated: ${formatTimestamp(memory.updatedAt)}`);
|
|
518
|
+
if (memory.lastAccessed) {
|
|
519
|
+
console.log(` Last Accessed: ${formatTimestamp(memory.lastAccessed)}`);
|
|
520
|
+
}
|
|
521
|
+
// Version history
|
|
522
|
+
if (memory.previousVersions && memory.previousVersions.length > 0) {
|
|
523
|
+
console.log();
|
|
524
|
+
console.log(pc.bold(`Version History: ${memory.previousVersions.length} previous versions`));
|
|
525
|
+
}
|
|
526
|
+
});
|
|
527
|
+
}
|
|
528
|
+
catch (error) {
|
|
529
|
+
printError(error instanceof Error ? error.message : "Inspect failed");
|
|
530
|
+
process.exit(1);
|
|
531
|
+
}
|
|
532
|
+
});
|
|
533
|
+
// debug connection
|
|
534
|
+
debug
|
|
535
|
+
.command("connection")
|
|
536
|
+
.description("Test and debug connection")
|
|
537
|
+
.action(async () => {
|
|
538
|
+
const globalOpts = program.opts();
|
|
539
|
+
console.log();
|
|
540
|
+
printSection("Connection Debug", {});
|
|
541
|
+
const { testConnection, getDeploymentInfo } = await import("../utils/client.js");
|
|
542
|
+
const info = getDeploymentInfo(config, globalOpts);
|
|
543
|
+
console.log(` URL: ${info.url}`);
|
|
544
|
+
console.log(` Mode: ${info.isLocal ? "Local" : "Cloud"}`);
|
|
545
|
+
console.log(` Deploy Key: ${info.hasKey ? "Set" : "Not set"}`);
|
|
546
|
+
console.log();
|
|
547
|
+
const spinner = ora("Testing connection...").start();
|
|
548
|
+
const result = await testConnection(config, globalOpts);
|
|
549
|
+
spinner.stop();
|
|
550
|
+
if (result.connected) {
|
|
551
|
+
printSuccess(`Connected (${result.latency}ms latency)`);
|
|
552
|
+
}
|
|
553
|
+
else {
|
|
554
|
+
printError(`Connection failed: ${result.error}`);
|
|
555
|
+
}
|
|
556
|
+
});
|
|
557
|
+
}
|
|
558
|
+
//# sourceMappingURL=dev.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev.js","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
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 { Command } from "commander";
|
|
12
|
+
import type { CLIConfig } from "../types.js";
|
|
13
|
+
/**
|
|
14
|
+
* Register facts commands
|
|
15
|
+
*/
|
|
16
|
+
export declare function registerFactsCommands(program: Command, config: CLIConfig): void;
|
|
17
|
+
//# sourceMappingURL=facts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"facts.d.ts","sourceRoot":"","sources":["../../src/commands/facts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EAAE,SAAS,EAAgB,MAAM,aAAa,CAAC;AAwB3D;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,SAAS,GAChB,IAAI,CAubN"}
|