@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 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,eAAe,EACf,iBAAiB,EACjB,QAAQ,EACR,YAAY,EACb,MAAM,aAAa,CAAC;AAErB;;GAEG;AACH,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM;CAI5B;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAqBtD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAY/C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAQjD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAQvD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAQ/C;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,CAarE;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,iBAAiB,CAQ3E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,CAgBvD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAQjE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAO,GAAG,MAAM,CAQ/D;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAU7C;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAQnD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAYvD;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;IAAE,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAAE,GACvC,OAAO,CAAC,OAAO,CAAC,CAiBlB;AAED;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC,CAclB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAMrD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CActE"}
@@ -0,0 +1,243 @@
1
+ /**
2
+ * Input Validation Utilities
3
+ *
4
+ * Provides validation functions for CLI inputs
5
+ */
6
+ import pc from "picocolors";
7
+ /**
8
+ * Validation error
9
+ */
10
+ export class ValidationError extends Error {
11
+ constructor(message) {
12
+ super(message);
13
+ this.name = "ValidationError";
14
+ }
15
+ }
16
+ /**
17
+ * Validate a memory space ID
18
+ */
19
+ export function validateMemorySpaceId(id) {
20
+ if (!id || typeof id !== "string") {
21
+ throw new ValidationError("Memory space ID is required");
22
+ }
23
+ if (id.trim().length === 0) {
24
+ throw new ValidationError("Memory space ID cannot be empty");
25
+ }
26
+ if (id.length > 255) {
27
+ throw new ValidationError("Memory space ID is too long (max 255 characters)");
28
+ }
29
+ // Check for valid characters
30
+ if (!/^[a-zA-Z0-9_-]+$/.test(id)) {
31
+ throw new ValidationError("Memory space ID can only contain letters, numbers, underscores, and hyphens");
32
+ }
33
+ }
34
+ /**
35
+ * Validate a user ID
36
+ */
37
+ export function validateUserId(id) {
38
+ if (!id || typeof id !== "string") {
39
+ throw new ValidationError("User ID is required");
40
+ }
41
+ if (id.trim().length === 0) {
42
+ throw new ValidationError("User ID cannot be empty");
43
+ }
44
+ if (id.length > 255) {
45
+ throw new ValidationError("User ID is too long (max 255 characters)");
46
+ }
47
+ }
48
+ /**
49
+ * Validate a memory ID
50
+ */
51
+ export function validateMemoryId(id) {
52
+ if (!id || typeof id !== "string") {
53
+ throw new ValidationError("Memory ID is required");
54
+ }
55
+ if (id.trim().length === 0) {
56
+ throw new ValidationError("Memory ID cannot be empty");
57
+ }
58
+ }
59
+ /**
60
+ * Validate a conversation ID
61
+ */
62
+ export function validateConversationId(id) {
63
+ if (!id || typeof id !== "string") {
64
+ throw new ValidationError("Conversation ID is required");
65
+ }
66
+ if (id.trim().length === 0) {
67
+ throw new ValidationError("Conversation ID cannot be empty");
68
+ }
69
+ }
70
+ /**
71
+ * Validate a fact ID
72
+ */
73
+ export function validateFactId(id) {
74
+ if (!id || typeof id !== "string") {
75
+ throw new ValidationError("Fact ID is required");
76
+ }
77
+ if (id.trim().length === 0) {
78
+ throw new ValidationError("Fact ID cannot be empty");
79
+ }
80
+ }
81
+ /**
82
+ * Validate memory space type
83
+ */
84
+ export function validateMemorySpaceType(type) {
85
+ const validTypes = [
86
+ "personal",
87
+ "team",
88
+ "project",
89
+ "custom",
90
+ ];
91
+ if (!validTypes.includes(type)) {
92
+ throw new ValidationError(`Invalid memory space type: ${type}. Valid types are: ${validTypes.join(", ")}`);
93
+ }
94
+ return type;
95
+ }
96
+ /**
97
+ * Validate memory space status
98
+ */
99
+ export function validateMemorySpaceStatus(status) {
100
+ const validStatuses = ["active", "archived"];
101
+ if (!validStatuses.includes(status)) {
102
+ throw new ValidationError(`Invalid memory space status: ${status}. Valid statuses are: ${validStatuses.join(", ")}`);
103
+ }
104
+ return status;
105
+ }
106
+ /**
107
+ * Validate fact type
108
+ */
109
+ export function validateFactType(type) {
110
+ const validTypes = [
111
+ "preference",
112
+ "identity",
113
+ "knowledge",
114
+ "relationship",
115
+ "event",
116
+ "observation",
117
+ "custom",
118
+ ];
119
+ if (!validTypes.includes(type)) {
120
+ throw new ValidationError(`Invalid fact type: ${type}. Valid types are: ${validTypes.join(", ")}`);
121
+ }
122
+ return type;
123
+ }
124
+ /**
125
+ * Validate output format
126
+ */
127
+ export function validateOutputFormat(format) {
128
+ const validFormats = ["table", "json", "csv"];
129
+ if (!validFormats.includes(format)) {
130
+ throw new ValidationError(`Invalid output format: ${format}. Valid formats are: ${validFormats.join(", ")}`);
131
+ }
132
+ return format;
133
+ }
134
+ /**
135
+ * Validate a limit (pagination)
136
+ */
137
+ export function validateLimit(limit, max = 1000) {
138
+ if (isNaN(limit) || limit < 1) {
139
+ throw new ValidationError("Limit must be a positive number");
140
+ }
141
+ if (limit > max) {
142
+ throw new ValidationError(`Limit cannot exceed ${max}`);
143
+ }
144
+ return limit;
145
+ }
146
+ /**
147
+ * Validate a URL
148
+ */
149
+ export function validateUrl(url) {
150
+ if (!url || typeof url !== "string") {
151
+ throw new ValidationError("URL is required");
152
+ }
153
+ try {
154
+ new URL(url);
155
+ }
156
+ catch {
157
+ throw new ValidationError(`Invalid URL: ${url}`);
158
+ }
159
+ }
160
+ /**
161
+ * Validate file path
162
+ */
163
+ export function validateFilePath(path) {
164
+ if (!path || typeof path !== "string") {
165
+ throw new ValidationError("File path is required");
166
+ }
167
+ if (path.trim().length === 0) {
168
+ throw new ValidationError("File path cannot be empty");
169
+ }
170
+ }
171
+ /**
172
+ * Validate search query
173
+ */
174
+ export function validateSearchQuery(query) {
175
+ if (!query || typeof query !== "string") {
176
+ throw new ValidationError("Search query is required");
177
+ }
178
+ if (query.trim().length === 0) {
179
+ throw new ValidationError("Search query cannot be empty");
180
+ }
181
+ if (query.length > 1000) {
182
+ throw new ValidationError("Search query is too long (max 1000 characters)");
183
+ }
184
+ }
185
+ /**
186
+ * Require confirmation for dangerous operations
187
+ */
188
+ export async function requireConfirmation(message, options) {
189
+ // If confirmDangerous is disabled in config, skip confirmation
190
+ if (options?.confirmDangerous === false) {
191
+ return true;
192
+ }
193
+ // Import prompts dynamically to avoid issues in non-interactive environments
194
+ const prompts = await import("prompts");
195
+ const response = await prompts.default({
196
+ type: "confirm",
197
+ name: "confirmed",
198
+ message: pc.yellow(message),
199
+ initial: false,
200
+ });
201
+ return response.confirmed ?? false;
202
+ }
203
+ /**
204
+ * Require exact text confirmation for very dangerous operations
205
+ */
206
+ export async function requireExactConfirmation(expectedText, message) {
207
+ const prompts = await import("prompts");
208
+ const response = await prompts.default({
209
+ type: "text",
210
+ name: "confirmation",
211
+ message: message ??
212
+ pc.red(`This is an irreversible operation. Type "${expectedText}" to confirm:`),
213
+ });
214
+ return response.confirmation === expectedText;
215
+ }
216
+ /**
217
+ * Parse array argument from comma-separated string
218
+ */
219
+ export function parseArrayArg(value) {
220
+ if (!value)
221
+ return [];
222
+ return value
223
+ .split(",")
224
+ .map((s) => s.trim())
225
+ .filter((s) => s.length > 0);
226
+ }
227
+ /**
228
+ * Parse key-value pairs from "key=value" format
229
+ */
230
+ export function parseKeyValueArg(value) {
231
+ if (!value)
232
+ return {};
233
+ const result = {};
234
+ const pairs = value.split(",");
235
+ for (const pair of pairs) {
236
+ const [key, val] = pair.split("=").map((s) => s.trim());
237
+ if (key && val) {
238
+ result[key] = val;
239
+ }
240
+ }
241
+ return result;
242
+ }
243
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../../src/utils/validation.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,72 @@
1
+ {
2
+ "name": "@cortexmemory/cli",
3
+ "version": "0.1.0",
4
+ "description": "CLI tool for managing Cortex Memory deployments, performing administrative tasks, and streamlining development workflows",
5
+ "type": "module",
6
+ "bin": {
7
+ "cortex": "./dist/index.js"
8
+ },
9
+ "main": "./dist/index.js",
10
+ "types": "./dist/index.d.ts",
11
+ "files": [
12
+ "dist",
13
+ "templates",
14
+ "README.md"
15
+ ],
16
+ "scripts": {
17
+ "build": "tsc && chmod +x dist/index.js",
18
+ "dev": "tsc --watch",
19
+ "lint": "eslint . --report-unused-disable-directives",
20
+ "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
21
+ "test:watch": "node --experimental-vm-modules node_modules/jest/bin/jest.js --watch",
22
+ "test:coverage": "node --experimental-vm-modules node_modules/jest/bin/jest.js --coverage",
23
+ "test:unit": "node --experimental-vm-modules node_modules/jest/bin/jest.js src/utils/__tests__",
24
+ "test:integration": "node --experimental-vm-modules node_modules/jest/bin/jest.js tests/",
25
+ "typecheck": "tsc --noEmit",
26
+ "prepublishOnly": "npm run lint && npm run build && npm run test:unit"
27
+ },
28
+ "keywords": [
29
+ "cortex",
30
+ "memory",
31
+ "ai",
32
+ "convex",
33
+ "cli",
34
+ "admin",
35
+ "database",
36
+ "management"
37
+ ],
38
+ "author": "Saint Nick LLC",
39
+ "license": "Apache-2.0",
40
+ "repository": {
41
+ "type": "git",
42
+ "url": "https://github.com/SaintNick1214/Project-Cortex.git",
43
+ "directory": "packages/cortex-cli"
44
+ },
45
+ "engines": {
46
+ "node": ">=20"
47
+ },
48
+ "dependencies": {
49
+ "@cortexmemory/sdk": "^0.12.0",
50
+ "commander": "^14.0.2",
51
+ "prompts": "^2.4.2",
52
+ "picocolors": "^1.1.1",
53
+ "ora": "^9.0.0",
54
+ "cli-table3": "^0.6.5",
55
+ "cosmiconfig": "^9.0.0",
56
+ "convex": "^1.30.0"
57
+ },
58
+ "devDependencies": {
59
+ "@types/prompts": "^2.4.9",
60
+ "@types/node": "^24.10.1",
61
+ "typescript": "^5.9.3",
62
+ "eslint": "^9.39.1",
63
+ "@eslint/js": "^9.39.1",
64
+ "@typescript-eslint/eslint-plugin": "^8.48.0",
65
+ "@typescript-eslint/parser": "^8.48.0",
66
+ "globals": "^16.5.0",
67
+ "jest": "^30.2.0",
68
+ "@types/jest": "^30.0.0",
69
+ "ts-jest": "^29.4.6",
70
+ "dotenv": "^17.2.3"
71
+ }
72
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "deployments": {
3
+ "local": {
4
+ "url": "http://127.0.0.1:3210",
5
+ "deployment": "anonymous:anonymous-cortex-sdk-local"
6
+ },
7
+ "production": {
8
+ "url": "https://your-deployment.convex.cloud",
9
+ "key": "your-deploy-key-here"
10
+ }
11
+ },
12
+ "default": "local",
13
+ "format": "table",
14
+ "confirmDangerous": true
15
+ }