@cortexmemory/cli 0.1.0 → 0.22.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 (114) hide show
  1. package/README.md +8 -0
  2. package/dist/commands/conversations.d.ts +1 -1
  3. package/dist/commands/conversations.d.ts.map +1 -1
  4. package/dist/commands/conversations.js +58 -28
  5. package/dist/commands/conversations.js.map +1 -1
  6. package/dist/commands/convex.d.ts +1 -1
  7. package/dist/commands/convex.d.ts.map +1 -1
  8. package/dist/commands/convex.js +237 -64
  9. package/dist/commands/convex.js.map +1 -1
  10. package/dist/commands/db.d.ts +1 -1
  11. package/dist/commands/db.d.ts.map +1 -1
  12. package/dist/commands/db.js +511 -113
  13. package/dist/commands/db.js.map +1 -1
  14. package/dist/commands/dev.d.ts +8 -8
  15. package/dist/commands/dev.d.ts.map +1 -1
  16. package/dist/commands/dev.js +734 -513
  17. package/dist/commands/dev.js.map +1 -1
  18. package/dist/commands/facts.d.ts +1 -1
  19. package/dist/commands/facts.d.ts.map +1 -1
  20. package/dist/commands/facts.js +79 -49
  21. package/dist/commands/facts.js.map +1 -1
  22. package/dist/commands/init.d.ts +28 -0
  23. package/dist/commands/init.d.ts.map +1 -0
  24. package/dist/commands/init.js +895 -0
  25. package/dist/commands/init.js.map +1 -0
  26. package/dist/commands/memory.d.ts +1 -1
  27. package/dist/commands/memory.d.ts.map +1 -1
  28. package/dist/commands/memory.js +84 -48
  29. package/dist/commands/memory.js.map +1 -1
  30. package/dist/commands/setup.d.ts +4 -5
  31. package/dist/commands/setup.d.ts.map +1 -1
  32. package/dist/commands/setup.js +613 -265
  33. package/dist/commands/setup.js.map +1 -1
  34. package/dist/commands/spaces.d.ts +1 -1
  35. package/dist/commands/spaces.d.ts.map +1 -1
  36. package/dist/commands/spaces.js +100 -43
  37. package/dist/commands/spaces.js.map +1 -1
  38. package/dist/commands/status.d.ts +17 -0
  39. package/dist/commands/status.d.ts.map +1 -0
  40. package/dist/commands/status.js +314 -0
  41. package/dist/commands/status.js.map +1 -0
  42. package/dist/commands/users.d.ts +1 -1
  43. package/dist/commands/users.d.ts.map +1 -1
  44. package/dist/commands/users.js +152 -45
  45. package/dist/commands/users.js.map +1 -1
  46. package/dist/index.js +61 -19
  47. package/dist/index.js.map +1 -1
  48. package/dist/types.d.ts +11 -0
  49. package/dist/types.d.ts.map +1 -1
  50. package/dist/utils/__tests__/client.test.d.ts +5 -0
  51. package/dist/utils/__tests__/client.test.d.ts.map +1 -0
  52. package/dist/utils/__tests__/client.test.js +88 -0
  53. package/dist/utils/__tests__/client.test.js.map +1 -0
  54. package/dist/utils/__tests__/env-file.test.d.ts +7 -0
  55. package/dist/utils/__tests__/env-file.test.d.ts.map +1 -0
  56. package/dist/utils/__tests__/env-file.test.js +196 -0
  57. package/dist/utils/__tests__/env-file.test.js.map +1 -0
  58. package/dist/utils/__tests__/shell.test.d.ts +7 -0
  59. package/dist/utils/__tests__/shell.test.d.ts.map +1 -0
  60. package/dist/utils/__tests__/shell.test.js +89 -0
  61. package/dist/utils/__tests__/shell.test.js.map +1 -0
  62. package/dist/utils/client.d.ts +1 -0
  63. package/dist/utils/client.d.ts.map +1 -1
  64. package/dist/utils/client.js +7 -1
  65. package/dist/utils/client.js.map +1 -1
  66. package/dist/utils/config.d.ts.map +1 -1
  67. package/dist/utils/config.js +12 -39
  68. package/dist/utils/config.js.map +1 -1
  69. package/dist/utils/deployment-selector.d.ts +50 -0
  70. package/dist/utils/deployment-selector.d.ts.map +1 -0
  71. package/dist/utils/deployment-selector.js +129 -0
  72. package/dist/utils/deployment-selector.js.map +1 -0
  73. package/dist/utils/env-file.d.ts +48 -0
  74. package/dist/utils/env-file.d.ts.map +1 -0
  75. package/dist/utils/env-file.js +152 -0
  76. package/dist/utils/env-file.js.map +1 -0
  77. package/dist/utils/formatting.d.ts.map +1 -1
  78. package/dist/utils/formatting.js +4 -0
  79. package/dist/utils/formatting.js.map +1 -1
  80. package/dist/utils/init/convex-setup.d.ts +30 -0
  81. package/dist/utils/init/convex-setup.d.ts.map +1 -0
  82. package/dist/utils/init/convex-setup.js +225 -0
  83. package/dist/utils/init/convex-setup.js.map +1 -0
  84. package/dist/utils/init/env-generator.d.ts +32 -0
  85. package/dist/utils/init/env-generator.d.ts.map +1 -0
  86. package/dist/utils/init/env-generator.js +210 -0
  87. package/dist/utils/init/env-generator.js.map +1 -0
  88. package/dist/utils/init/file-operations.d.ts +22 -0
  89. package/dist/utils/init/file-operations.d.ts.map +1 -0
  90. package/dist/utils/init/file-operations.js +211 -0
  91. package/dist/utils/init/file-operations.js.map +1 -0
  92. package/dist/utils/init/graph-setup.d.ts +35 -0
  93. package/dist/utils/init/graph-setup.d.ts.map +1 -0
  94. package/dist/utils/init/graph-setup.js +413 -0
  95. package/dist/utils/init/graph-setup.js.map +1 -0
  96. package/dist/utils/init/index.d.ts +11 -0
  97. package/dist/utils/init/index.d.ts.map +1 -0
  98. package/dist/utils/init/index.js +11 -0
  99. package/dist/utils/init/index.js.map +1 -0
  100. package/dist/utils/init/types.d.ts +73 -0
  101. package/dist/utils/init/types.d.ts.map +1 -0
  102. package/dist/utils/init/types.js +5 -0
  103. package/dist/utils/init/types.js.map +1 -0
  104. package/dist/utils/shell.d.ts +60 -0
  105. package/dist/utils/shell.d.ts.map +1 -0
  106. package/dist/utils/shell.js +188 -0
  107. package/dist/utils/shell.js.map +1 -0
  108. package/package.json +30 -19
  109. package/templates/basic/README.md +105 -0
  110. package/templates/basic/dev-runner.mjs +215 -0
  111. package/templates/basic/package-lock.json +1263 -0
  112. package/templates/basic/package.json +22 -0
  113. package/templates/basic/src/index.ts +85 -0
  114. package/templates/basic/tsconfig.json +17 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graph-setup.js","sourceRoot":"","sources":["../../../src/utils/init/graph-setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Init utilities index
3
+ *
4
+ * Re-exports all init-related utilities for convenience.
5
+ */
6
+ export * from "./types.js";
7
+ export * from "./file-operations.js";
8
+ export * from "./env-generator.js";
9
+ export * from "./convex-setup.js";
10
+ export * from "./graph-setup.js";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/init/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Init utilities index
3
+ *
4
+ * Re-exports all init-related utilities for convenience.
5
+ */
6
+ export * from "./types.js";
7
+ export * from "./file-operations.js";
8
+ export * from "./env-generator.js";
9
+ export * from "./convex-setup.js";
10
+ export * from "./graph-setup.js";
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/init/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,sBAAsB,CAAC;AACrC,cAAc,oBAAoB,CAAC;AACnC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Types for the init wizard
3
+ */
4
+ /**
5
+ * Configuration collected by the wizard
6
+ */
7
+ export interface WizardConfig {
8
+ projectName: string;
9
+ projectPath: string;
10
+ installationType: "new" | "existing";
11
+ convexSetupType: "new" | "existing" | "local";
12
+ convexUrl?: string;
13
+ deployKey?: string;
14
+ graphEnabled: boolean;
15
+ graphType?: "neo4j" | "memgraph" | "skip";
16
+ graphUri?: string;
17
+ graphUsername?: string;
18
+ graphPassword?: string;
19
+ installCLI?: boolean;
20
+ }
21
+ /**
22
+ * Convex deployment configuration
23
+ */
24
+ export interface ConvexConfig {
25
+ convexUrl: string;
26
+ deployKey?: string;
27
+ deployment?: string;
28
+ }
29
+ /**
30
+ * Graph database configuration
31
+ */
32
+ export interface GraphConfig {
33
+ type: "neo4j" | "memgraph";
34
+ uri: string;
35
+ username: string;
36
+ password: string;
37
+ }
38
+ /**
39
+ * Status of a setup component
40
+ */
41
+ export type SetupStatus = "ok" | "warning" | "error" | "not_configured";
42
+ /**
43
+ * Status dashboard data
44
+ */
45
+ export interface StatusDashboard {
46
+ environment: {
47
+ convexUrl: string | null;
48
+ convexDeployKey: boolean;
49
+ neo4jUri: string | null;
50
+ openaiKey: boolean;
51
+ };
52
+ convexBackend: {
53
+ status: SetupStatus;
54
+ message: string;
55
+ functionCount?: number;
56
+ };
57
+ graphDatabase: {
58
+ status: SetupStatus;
59
+ message: string;
60
+ type?: string;
61
+ };
62
+ sdkVersion: {
63
+ current: string | null;
64
+ latest: string | null;
65
+ upToDate: boolean;
66
+ };
67
+ connection: {
68
+ status: SetupStatus;
69
+ latency?: number;
70
+ error?: string;
71
+ };
72
+ }
73
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/init/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,gBAAgB,EAAE,KAAK,GAAG,UAAU,CAAC;IACrC,eAAe,EAAE,KAAK,GAAG,UAAU,GAAG,OAAO,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;IAC1C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,GAAG,UAAU,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,gBAAgB,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE;QACX,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,eAAe,EAAE,OAAO,CAAC;QACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IACF,aAAa,EAAE;QACb,MAAM,EAAE,WAAW,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,aAAa,EAAE;QACb,MAAM,EAAE,WAAW,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,UAAU,EAAE;QACV,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QACtB,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,UAAU,EAAE;QACV,MAAM,EAAE,WAAW,CAAC;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Types for the init wizard
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/utils/init/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Shell Execution Utilities
3
+ *
4
+ * Shared utilities for executing shell commands safely.
5
+ * Used by init wizard and other CLI commands.
6
+ */
7
+ /**
8
+ * Check if a command exists in the system
9
+ */
10
+ export declare function commandExists(command: string): Promise<boolean>;
11
+ /**
12
+ * Execute a shell command and return the output
13
+ *
14
+ * SECURITY: This function only executes commands from an allowlist.
15
+ * User input is NEVER passed as the command parameter.
16
+ */
17
+ export declare function execCommand(command: string, args: string[], options?: {
18
+ cwd?: string;
19
+ env?: Record<string, string | undefined>;
20
+ quiet?: boolean;
21
+ }): Promise<{
22
+ stdout: string;
23
+ stderr: string;
24
+ code: number;
25
+ }>;
26
+ /**
27
+ * Execute a command with live output (stdio: inherit)
28
+ *
29
+ * SECURITY: This function only executes commands from an allowlist.
30
+ * User input is NEVER passed as the command parameter.
31
+ */
32
+ export declare function execCommandLive(command: string, args: string[], options?: {
33
+ cwd?: string;
34
+ env?: Record<string, string | undefined>;
35
+ }): Promise<number>;
36
+ /**
37
+ * Validate project name
38
+ */
39
+ export declare function isValidProjectName(name: string): boolean;
40
+ /**
41
+ * Check if directory is empty
42
+ */
43
+ export declare function isDirectoryEmpty(dirPath: string): boolean;
44
+ /**
45
+ * Get the path to the installed SDK package
46
+ * @param projectPath - Optional project path to look in (defaults to current directory)
47
+ */
48
+ export declare function getSDKPath(projectPath?: string): string | null;
49
+ /**
50
+ * Parse Convex URL to determine if it's local or cloud
51
+ */
52
+ export declare function isLocalConvexUrl(url: string): boolean;
53
+ /**
54
+ * Fetch the latest SDK package.json from npm registry
55
+ */
56
+ export declare function fetchLatestSDKMetadata(): Promise<{
57
+ convexVersion: string;
58
+ sdkVersion: string;
59
+ }>;
60
+ //# sourceMappingURL=shell.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.d.ts","sourceRoot":"","sources":["../../src/utils/shell.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6BH;;GAEG;AACH,wBAAsB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAOrE;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO,GACxF,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAyC3D;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EAAE,EACd,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAA;CAAO,GACvE,OAAO,CAAC,MAAM,CAAC,CAuBjB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAMzD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAqB9D;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC;IACtD,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC,CAyCD"}
@@ -0,0 +1,188 @@
1
+ /**
2
+ * Shell Execution Utilities
3
+ *
4
+ * Shared utilities for executing shell commands safely.
5
+ * Used by init wizard and other CLI commands.
6
+ */
7
+ import { spawn } from "child_process";
8
+ import { existsSync, readdirSync } from "fs";
9
+ import path from "path";
10
+ import { createRequire } from "module";
11
+ // Create require function for ES modules
12
+ const require = createRequire(import.meta.url);
13
+ /**
14
+ * Allowlist of safe commands that can be executed
15
+ */
16
+ const ALLOWED_COMMANDS = [
17
+ "npx",
18
+ "convex",
19
+ "npm",
20
+ "pnpm",
21
+ "yarn",
22
+ "bun",
23
+ "git",
24
+ "node",
25
+ "docker",
26
+ // Process inspection commands (for kill menu)
27
+ "lsof",
28
+ "pgrep",
29
+ "ps",
30
+ ];
31
+ /**
32
+ * Check if a command exists in the system
33
+ */
34
+ export async function commandExists(command) {
35
+ return new Promise((resolve) => {
36
+ // Use platform-specific command (which for Unix, where for Windows)
37
+ const cmd = process.platform === "win32" ? "where" : "which";
38
+ const child = spawn(cmd, [command]);
39
+ child.on("close", (code) => resolve(code === 0));
40
+ });
41
+ }
42
+ /**
43
+ * Execute a shell command and return the output
44
+ *
45
+ * SECURITY: This function only executes commands from an allowlist.
46
+ * User input is NEVER passed as the command parameter.
47
+ */
48
+ export async function execCommand(command, args, options = {}) {
49
+ // Validate command is from allowlist (defense in depth)
50
+ if (!ALLOWED_COMMANDS.includes(command)) {
51
+ throw new Error(`Invalid command: ${command}. Only allowed: ${ALLOWED_COMMANDS.join(", ")}`);
52
+ }
53
+ return new Promise((resolve, reject) => {
54
+ const child = spawn(command, args, {
55
+ cwd: options.cwd,
56
+ env: { ...process.env, ...options.env },
57
+ });
58
+ let stdout = "";
59
+ let stderr = "";
60
+ child.stdout?.on("data", (data) => {
61
+ const str = data.toString();
62
+ stdout += str;
63
+ if (!options.quiet) {
64
+ process.stdout.write(str);
65
+ }
66
+ });
67
+ child.stderr?.on("data", (data) => {
68
+ const str = data.toString();
69
+ stderr += str;
70
+ if (!options.quiet) {
71
+ process.stderr.write(str);
72
+ }
73
+ });
74
+ child.on("error", (error) => {
75
+ reject(error);
76
+ });
77
+ child.on("close", (code) => {
78
+ resolve({ stdout, stderr, code: code ?? 1 });
79
+ });
80
+ });
81
+ }
82
+ /**
83
+ * Execute a command with live output (stdio: inherit)
84
+ *
85
+ * SECURITY: This function only executes commands from an allowlist.
86
+ * User input is NEVER passed as the command parameter.
87
+ */
88
+ export async function execCommandLive(command, args, options = {}) {
89
+ // Validate command is from allowlist (defense in depth)
90
+ if (!ALLOWED_COMMANDS.includes(command)) {
91
+ throw new Error(`Invalid command: ${command}. Only allowed: ${ALLOWED_COMMANDS.join(", ")}`);
92
+ }
93
+ return new Promise((resolve, reject) => {
94
+ const child = spawn(command, args, {
95
+ cwd: options.cwd,
96
+ stdio: "inherit",
97
+ env: { ...process.env, ...options.env },
98
+ });
99
+ child.on("error", (error) => {
100
+ reject(error);
101
+ });
102
+ child.on("close", (code) => {
103
+ resolve(code ?? 1);
104
+ });
105
+ });
106
+ }
107
+ /**
108
+ * Validate project name
109
+ */
110
+ export function isValidProjectName(name) {
111
+ return /^[a-z0-9-_]+$/.test(name);
112
+ }
113
+ /**
114
+ * Check if directory is empty
115
+ */
116
+ export function isDirectoryEmpty(dirPath) {
117
+ if (!existsSync(dirPath)) {
118
+ return true;
119
+ }
120
+ const files = readdirSync(dirPath);
121
+ return files.length === 0 || (files.length === 1 && files[0] === ".git");
122
+ }
123
+ /**
124
+ * Get the path to the installed SDK package
125
+ * @param projectPath - Optional project path to look in (defaults to current directory)
126
+ */
127
+ export function getSDKPath(projectPath) {
128
+ try {
129
+ // If projectPath provided, look in that project's node_modules
130
+ if (projectPath) {
131
+ const sdkPath = path.join(projectPath, "node_modules", "@cortexmemory", "sdk");
132
+ if (existsSync(sdkPath)) {
133
+ return sdkPath;
134
+ }
135
+ }
136
+ // Fallback: use require.resolve from current location
137
+ const sdkPackageJson = require.resolve("@cortexmemory/sdk/package.json");
138
+ return path.dirname(sdkPackageJson);
139
+ }
140
+ catch {
141
+ return null;
142
+ }
143
+ }
144
+ /**
145
+ * Parse Convex URL to determine if it's local or cloud
146
+ */
147
+ export function isLocalConvexUrl(url) {
148
+ return url.includes("localhost") || url.includes("127.0.0.1");
149
+ }
150
+ /**
151
+ * Fetch the latest SDK package.json from npm registry
152
+ */
153
+ export async function fetchLatestSDKMetadata() {
154
+ try {
155
+ const result = await execCommand("npm", [
156
+ "view",
157
+ "@cortexmemory/sdk",
158
+ "peerDependencies.convex",
159
+ "version",
160
+ "--json",
161
+ ], { quiet: true });
162
+ if (result.code !== 0) {
163
+ throw new Error(`npm view failed: ${result.stderr}`);
164
+ }
165
+ const data = JSON.parse(result.stdout);
166
+ let convexVersion;
167
+ let sdkVersion;
168
+ if (typeof data === "string") {
169
+ throw new Error("Unexpected npm view response format");
170
+ }
171
+ else {
172
+ convexVersion = data["peerDependencies.convex"] || "^1.29.3";
173
+ sdkVersion = data["version"] || "latest";
174
+ }
175
+ return {
176
+ convexVersion,
177
+ sdkVersion,
178
+ };
179
+ }
180
+ catch {
181
+ // Fallback to safe defaults
182
+ return {
183
+ convexVersion: "^1.29.3",
184
+ sdkVersion: "latest",
185
+ };
186
+ }
187
+ }
188
+ //# sourceMappingURL=shell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shell.js","sourceRoot":"","sources":["../../src/utils/shell.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "@cortexmemory/cli",
3
- "version": "0.1.0",
3
+ "version": "0.22.0",
4
4
  "description": "CLI tool for managing Cortex Memory deployments, performing administrative tasks, and streamlining development workflows",
5
5
  "type": "module",
6
6
  "bin": {
7
- "cortex": "./dist/index.js"
7
+ "cortex": "dist/index.js"
8
8
  },
9
9
  "main": "./dist/index.js",
10
10
  "types": "./dist/index.d.ts",
@@ -20,8 +20,11 @@
20
20
  "test": "node --experimental-vm-modules node_modules/jest/bin/jest.js",
21
21
  "test:watch": "node --experimental-vm-modules node_modules/jest/bin/jest.js --watch",
22
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/",
23
+ "test:unit": "node --experimental-vm-modules node_modules/jest/bin/jest.js --selectProjects unit",
24
+ "test:commands": "node --experimental-vm-modules node_modules/jest/bin/jest.js --selectProjects commands",
25
+ "test:e2e": "node --experimental-vm-modules node_modules/jest/bin/jest.js --selectProjects e2e",
26
+ "test:integration": "node --experimental-vm-modules node_modules/jest/bin/jest.js --selectProjects e2e",
27
+ "test:fast": "node --experimental-vm-modules node_modules/jest/bin/jest.js --selectProjects unit commands",
25
28
  "typecheck": "tsc --noEmit",
26
29
  "prepublishOnly": "npm run lint && npm run build && npm run test:unit"
27
30
  },
@@ -39,34 +42,42 @@
39
42
  "license": "Apache-2.0",
40
43
  "repository": {
41
44
  "type": "git",
42
- "url": "https://github.com/SaintNick1214/Project-Cortex.git",
45
+ "url": "git+https://github.com/SaintNick1214/Project-Cortex.git",
43
46
  "directory": "packages/cortex-cli"
44
47
  },
48
+ "publishConfig": {
49
+ "registry": "https://registry.npmjs.org/",
50
+ "access": "public",
51
+ "provenance": true
52
+ },
45
53
  "engines": {
46
54
  "node": ">=20"
47
55
  },
48
56
  "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",
57
+ "@cortexmemory/sdk": "file:../../cortexmemory-sdk-0.21.0.tgz",
54
58
  "cli-table3": "^0.6.5",
59
+ "commander": "^14.0.2",
60
+ "convex": "^1.31.2",
55
61
  "cosmiconfig": "^9.0.0",
56
- "convex": "^1.30.0"
62
+ "dotenv": "^17.2.3",
63
+ "fs-extra": "^11.3.3",
64
+ "neo4j-driver": "^6.0.1",
65
+ "ora": "^9.0.0",
66
+ "picocolors": "^1.1.1",
67
+ "prompts": "^2.4.2"
57
68
  },
58
69
  "devDependencies": {
70
+ "@eslint/js": "^9.39.2",
71
+ "@types/fs-extra": "^11.0.4",
72
+ "@types/jest": "^30.0.0",
73
+ "@types/node": "^25.0.3",
59
74
  "@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",
75
+ "@typescript-eslint/eslint-plugin": "^8.50.0",
76
+ "@typescript-eslint/parser": "^8.50.0",
77
+ "eslint": "^9.39.2",
66
78
  "globals": "^16.5.0",
67
79
  "jest": "^30.2.0",
68
- "@types/jest": "^30.0.0",
69
80
  "ts-jest": "^29.4.6",
70
- "dotenv": "^17.2.3"
81
+ "typescript": "^5.9.3"
71
82
  }
72
83
  }
@@ -0,0 +1,105 @@
1
+ # {{PROJECT_NAME}}
2
+
3
+ AI agent with persistent memory powered by [Cortex Memory SDK](https://github.com/SaintNick1214/Project-Cortex).
4
+
5
+ ## Getting Started
6
+
7
+ Your Convex backend functions are deployed and configured!
8
+
9
+ ### For Local Development
10
+
11
+ **Terminal 1** - Start Convex:
12
+
13
+ ```bash
14
+ npm run dev
15
+ ```
16
+
17
+ Leave this running. It watches for changes and keeps Convex server active.
18
+
19
+ **Terminal 2** - Run your agent:
20
+
21
+ ```bash
22
+ npm start
23
+ ```
24
+
25
+ ### For Cloud Deployments
26
+
27
+ Your Convex is already running in the cloud, so just:
28
+
29
+ ```bash
30
+ npm start
31
+ ```
32
+
33
+ ## Project Structure
34
+
35
+ ```
36
+ .
37
+ ├── src/
38
+ │ └── index.ts # Your AI agent code
39
+ ├── convex/ # Cortex backend functions (deployed to Convex)
40
+ │ ├── schema.ts # Database schema
41
+ │ ├── conversations.ts # Conversation management
42
+ │ ├── memories.ts # Memory storage and search
43
+ │ └── ... # Other Cortex functions
44
+ ├── .env.local # Environment configuration (not committed)
45
+ └── package.json
46
+ ```
47
+
48
+ ## What You Get
49
+
50
+ - **Persistent Memory** - Your agent remembers conversations indefinitely
51
+ - **Semantic Search** - Find relevant memories using natural language
52
+ - **ACID Storage** - Reliable, consistent data storage
53
+ - **Vector Search** - Optional embedding-based search (cloud only)
54
+ - **User Profiles** - Manage user data and preferences
55
+ - **Multi-Agent Support** - Coordinate between multiple agents
56
+
57
+ ## Next Steps
58
+
59
+ ### Add Vector Embeddings
60
+
61
+ For semantic search, add an embedding provider:
62
+
63
+ ```typescript
64
+ import OpenAI from "openai";
65
+
66
+ const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
67
+
68
+ await cortex.memory.remember({
69
+ memorySpaceId: "my-agent",
70
+ conversationId: "conv-1",
71
+ userMessage: "message",
72
+ agentResponse: "response",
73
+ userId: "user-1",
74
+ userName: "User",
75
+ generateEmbedding: async (text) => {
76
+ const result = await openai.embeddings.create({
77
+ model: "text-embedding-3-small",
78
+ input: text,
79
+ });
80
+ return result.data[0].embedding;
81
+ },
82
+ });
83
+ ```
84
+
85
+ ### Enable Graph Database
86
+
87
+ For advanced relationship queries, set up a graph database:
88
+
89
+ 1. Start Neo4j: `docker-compose -f docker-compose.graph.yml up -d`
90
+ 2. See `src/graph-init.example.ts` for setup code
91
+
92
+ ### Learn More
93
+
94
+ - [Documentation](https://github.com/SaintNick1214/Project-Cortex/tree/main/Documentation)
95
+ - [API Reference](https://github.com/SaintNick1214/Project-Cortex/tree/main/Documentation/03-api-reference)
96
+ - [Examples](https://github.com/SaintNick1214/Project-Cortex/tree/main/Examples)
97
+
98
+ ## Support
99
+
100
+ - [GitHub Issues](https://github.com/SaintNick1214/Project-Cortex/issues)
101
+ - [GitHub Discussions](https://github.com/SaintNick1214/Project-Cortex/discussions)
102
+
103
+ ## License
104
+
105
+ Apache-2.0