@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,207 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validation Utilities Tests
|
|
3
|
+
*/
|
|
4
|
+
import { describe, it, expect } from "@jest/globals";
|
|
5
|
+
import { validateMemorySpaceId, validateUserId, validateMemoryId, validateConversationId, validateFactId, validateMemorySpaceType, validateMemorySpaceStatus, validateFactType, validateOutputFormat, validateLimit, validateUrl, validateFilePath, validateSearchQuery, parseArrayArg, parseKeyValueArg, ValidationError, } from "../validation.js";
|
|
6
|
+
describe("validation utilities", () => {
|
|
7
|
+
describe("validateMemorySpaceId", () => {
|
|
8
|
+
it("should accept valid memory space IDs", () => {
|
|
9
|
+
expect(() => validateMemorySpaceId("agent-1")).not.toThrow();
|
|
10
|
+
expect(() => validateMemorySpaceId("my_space")).not.toThrow();
|
|
11
|
+
expect(() => validateMemorySpaceId("Space123")).not.toThrow();
|
|
12
|
+
expect(() => validateMemorySpaceId("a-b_c-123")).not.toThrow();
|
|
13
|
+
});
|
|
14
|
+
it("should reject empty string", () => {
|
|
15
|
+
expect(() => validateMemorySpaceId("")).toThrow(ValidationError);
|
|
16
|
+
expect(() => validateMemorySpaceId(" ")).toThrow(ValidationError);
|
|
17
|
+
});
|
|
18
|
+
it("should reject null/undefined", () => {
|
|
19
|
+
expect(() => validateMemorySpaceId(null)).toThrow(ValidationError);
|
|
20
|
+
expect(() => validateMemorySpaceId(undefined)).toThrow(ValidationError);
|
|
21
|
+
});
|
|
22
|
+
it("should reject IDs with invalid characters", () => {
|
|
23
|
+
expect(() => validateMemorySpaceId("space with spaces")).toThrow(ValidationError);
|
|
24
|
+
expect(() => validateMemorySpaceId("space@special")).toThrow(ValidationError);
|
|
25
|
+
expect(() => validateMemorySpaceId("space/path")).toThrow(ValidationError);
|
|
26
|
+
});
|
|
27
|
+
it("should reject IDs that are too long", () => {
|
|
28
|
+
const longId = "a".repeat(256);
|
|
29
|
+
expect(() => validateMemorySpaceId(longId)).toThrow(ValidationError);
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
describe("validateUserId", () => {
|
|
33
|
+
it("should accept valid user IDs", () => {
|
|
34
|
+
expect(() => validateUserId("user-123")).not.toThrow();
|
|
35
|
+
expect(() => validateUserId("user@example.com")).not.toThrow();
|
|
36
|
+
expect(() => validateUserId("12345")).not.toThrow();
|
|
37
|
+
});
|
|
38
|
+
it("should reject empty string", () => {
|
|
39
|
+
expect(() => validateUserId("")).toThrow(ValidationError);
|
|
40
|
+
});
|
|
41
|
+
it("should reject IDs that are too long", () => {
|
|
42
|
+
const longId = "u".repeat(256);
|
|
43
|
+
expect(() => validateUserId(longId)).toThrow(ValidationError);
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
describe("validateMemoryId", () => {
|
|
47
|
+
it("should accept valid memory IDs", () => {
|
|
48
|
+
expect(() => validateMemoryId("mem-abc123")).not.toThrow();
|
|
49
|
+
});
|
|
50
|
+
it("should reject empty string", () => {
|
|
51
|
+
expect(() => validateMemoryId("")).toThrow(ValidationError);
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
describe("validateConversationId", () => {
|
|
55
|
+
it("should accept valid conversation IDs", () => {
|
|
56
|
+
expect(() => validateConversationId("conv-123")).not.toThrow();
|
|
57
|
+
});
|
|
58
|
+
it("should reject empty string", () => {
|
|
59
|
+
expect(() => validateConversationId("")).toThrow(ValidationError);
|
|
60
|
+
});
|
|
61
|
+
});
|
|
62
|
+
describe("validateFactId", () => {
|
|
63
|
+
it("should accept valid fact IDs", () => {
|
|
64
|
+
expect(() => validateFactId("fact-xyz")).not.toThrow();
|
|
65
|
+
});
|
|
66
|
+
it("should reject empty string", () => {
|
|
67
|
+
expect(() => validateFactId("")).toThrow(ValidationError);
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
describe("validateMemorySpaceType", () => {
|
|
71
|
+
it("should accept valid types", () => {
|
|
72
|
+
expect(validateMemorySpaceType("personal")).toBe("personal");
|
|
73
|
+
expect(validateMemorySpaceType("team")).toBe("team");
|
|
74
|
+
expect(validateMemorySpaceType("project")).toBe("project");
|
|
75
|
+
expect(validateMemorySpaceType("custom")).toBe("custom");
|
|
76
|
+
});
|
|
77
|
+
it("should reject invalid types", () => {
|
|
78
|
+
expect(() => validateMemorySpaceType("invalid")).toThrow(ValidationError);
|
|
79
|
+
expect(() => validateMemorySpaceType("")).toThrow(ValidationError);
|
|
80
|
+
});
|
|
81
|
+
});
|
|
82
|
+
describe("validateMemorySpaceStatus", () => {
|
|
83
|
+
it("should accept valid statuses", () => {
|
|
84
|
+
expect(validateMemorySpaceStatus("active")).toBe("active");
|
|
85
|
+
expect(validateMemorySpaceStatus("archived")).toBe("archived");
|
|
86
|
+
});
|
|
87
|
+
it("should reject invalid statuses", () => {
|
|
88
|
+
expect(() => validateMemorySpaceStatus("deleted")).toThrow(ValidationError);
|
|
89
|
+
});
|
|
90
|
+
});
|
|
91
|
+
describe("validateFactType", () => {
|
|
92
|
+
it("should accept valid fact types", () => {
|
|
93
|
+
expect(validateFactType("preference")).toBe("preference");
|
|
94
|
+
expect(validateFactType("identity")).toBe("identity");
|
|
95
|
+
expect(validateFactType("knowledge")).toBe("knowledge");
|
|
96
|
+
expect(validateFactType("relationship")).toBe("relationship");
|
|
97
|
+
expect(validateFactType("event")).toBe("event");
|
|
98
|
+
expect(validateFactType("observation")).toBe("observation");
|
|
99
|
+
expect(validateFactType("custom")).toBe("custom");
|
|
100
|
+
});
|
|
101
|
+
it("should reject invalid fact types", () => {
|
|
102
|
+
expect(() => validateFactType("invalid")).toThrow(ValidationError);
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
describe("validateOutputFormat", () => {
|
|
106
|
+
it("should accept valid formats", () => {
|
|
107
|
+
expect(validateOutputFormat("table")).toBe("table");
|
|
108
|
+
expect(validateOutputFormat("json")).toBe("json");
|
|
109
|
+
expect(validateOutputFormat("csv")).toBe("csv");
|
|
110
|
+
});
|
|
111
|
+
it("should reject invalid formats", () => {
|
|
112
|
+
expect(() => validateOutputFormat("xml")).toThrow(ValidationError);
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
describe("validateLimit", () => {
|
|
116
|
+
it("should accept valid limits", () => {
|
|
117
|
+
expect(validateLimit(1)).toBe(1);
|
|
118
|
+
expect(validateLimit(50)).toBe(50);
|
|
119
|
+
expect(validateLimit(1000)).toBe(1000);
|
|
120
|
+
});
|
|
121
|
+
it("should reject zero or negative", () => {
|
|
122
|
+
expect(() => validateLimit(0)).toThrow(ValidationError);
|
|
123
|
+
expect(() => validateLimit(-1)).toThrow(ValidationError);
|
|
124
|
+
});
|
|
125
|
+
it("should reject limits exceeding max", () => {
|
|
126
|
+
expect(() => validateLimit(1001)).toThrow(ValidationError);
|
|
127
|
+
expect(() => validateLimit(101, 100)).toThrow(ValidationError);
|
|
128
|
+
});
|
|
129
|
+
it("should respect custom max", () => {
|
|
130
|
+
expect(validateLimit(50, 100)).toBe(50);
|
|
131
|
+
expect(() => validateLimit(101, 100)).toThrow(ValidationError);
|
|
132
|
+
});
|
|
133
|
+
});
|
|
134
|
+
describe("validateUrl", () => {
|
|
135
|
+
it("should accept valid URLs", () => {
|
|
136
|
+
expect(() => validateUrl("http://localhost:3210")).not.toThrow();
|
|
137
|
+
expect(() => validateUrl("https://example.convex.cloud")).not.toThrow();
|
|
138
|
+
expect(() => validateUrl("http://127.0.0.1:8080")).not.toThrow();
|
|
139
|
+
});
|
|
140
|
+
it("should reject invalid URLs", () => {
|
|
141
|
+
expect(() => validateUrl("not-a-url")).toThrow(ValidationError);
|
|
142
|
+
expect(() => validateUrl("")).toThrow(ValidationError);
|
|
143
|
+
});
|
|
144
|
+
});
|
|
145
|
+
describe("validateFilePath", () => {
|
|
146
|
+
it("should accept valid file paths", () => {
|
|
147
|
+
expect(() => validateFilePath("output.json")).not.toThrow();
|
|
148
|
+
expect(() => validateFilePath("./data/export.csv")).not.toThrow();
|
|
149
|
+
expect(() => validateFilePath("/absolute/path/file.txt")).not.toThrow();
|
|
150
|
+
});
|
|
151
|
+
it("should reject empty paths", () => {
|
|
152
|
+
expect(() => validateFilePath("")).toThrow(ValidationError);
|
|
153
|
+
expect(() => validateFilePath(" ")).toThrow(ValidationError);
|
|
154
|
+
});
|
|
155
|
+
});
|
|
156
|
+
describe("validateSearchQuery", () => {
|
|
157
|
+
it("should accept valid queries", () => {
|
|
158
|
+
expect(() => validateSearchQuery("password")).not.toThrow();
|
|
159
|
+
expect(() => validateSearchQuery("user preferences")).not.toThrow();
|
|
160
|
+
});
|
|
161
|
+
it("should reject empty queries", () => {
|
|
162
|
+
expect(() => validateSearchQuery("")).toThrow(ValidationError);
|
|
163
|
+
expect(() => validateSearchQuery(" ")).toThrow(ValidationError);
|
|
164
|
+
});
|
|
165
|
+
it("should reject queries that are too long", () => {
|
|
166
|
+
const longQuery = "q".repeat(1001);
|
|
167
|
+
expect(() => validateSearchQuery(longQuery)).toThrow(ValidationError);
|
|
168
|
+
});
|
|
169
|
+
});
|
|
170
|
+
describe("parseArrayArg", () => {
|
|
171
|
+
it("should parse comma-separated values", () => {
|
|
172
|
+
expect(parseArrayArg("a,b,c")).toEqual(["a", "b", "c"]);
|
|
173
|
+
expect(parseArrayArg("user-1, user-2, user-3")).toEqual([
|
|
174
|
+
"user-1",
|
|
175
|
+
"user-2",
|
|
176
|
+
"user-3",
|
|
177
|
+
]);
|
|
178
|
+
});
|
|
179
|
+
it("should handle single value", () => {
|
|
180
|
+
expect(parseArrayArg("single")).toEqual(["single"]);
|
|
181
|
+
});
|
|
182
|
+
it("should handle empty string", () => {
|
|
183
|
+
expect(parseArrayArg("")).toEqual([]);
|
|
184
|
+
});
|
|
185
|
+
it("should filter out empty values", () => {
|
|
186
|
+
expect(parseArrayArg("a,,b,")).toEqual(["a", "b"]);
|
|
187
|
+
});
|
|
188
|
+
});
|
|
189
|
+
describe("parseKeyValueArg", () => {
|
|
190
|
+
it("should parse key=value pairs", () => {
|
|
191
|
+
expect(parseKeyValueArg("key1=value1,key2=value2")).toEqual({
|
|
192
|
+
key1: "value1",
|
|
193
|
+
key2: "value2",
|
|
194
|
+
});
|
|
195
|
+
});
|
|
196
|
+
it("should handle single pair", () => {
|
|
197
|
+
expect(parseKeyValueArg("name=test")).toEqual({ name: "test" });
|
|
198
|
+
});
|
|
199
|
+
it("should handle empty string", () => {
|
|
200
|
+
expect(parseKeyValueArg("")).toEqual({});
|
|
201
|
+
});
|
|
202
|
+
it("should handle whitespace", () => {
|
|
203
|
+
expect(parseKeyValueArg(" key = value ")).toEqual({ key: "value" });
|
|
204
|
+
});
|
|
205
|
+
});
|
|
206
|
+
});
|
|
207
|
+
//# sourceMappingURL=validation.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validation.test.js","sourceRoot":"","sources":["../../../src/utils/__tests__/validation.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cortex SDK Client Initialization
|
|
3
|
+
*
|
|
4
|
+
* Handles creating and managing connections to the Cortex SDK
|
|
5
|
+
*/
|
|
6
|
+
import { Cortex } from "@cortexmemory/sdk";
|
|
7
|
+
import type { CLIConfig, GlobalOptions } from "../types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Create a Cortex client from configuration and options
|
|
10
|
+
*/
|
|
11
|
+
export declare function createClient(config: CLIConfig, options: GlobalOptions): Cortex;
|
|
12
|
+
/**
|
|
13
|
+
* Close the cached client connection
|
|
14
|
+
*/
|
|
15
|
+
export declare function closeClient(): void;
|
|
16
|
+
/**
|
|
17
|
+
* Test connection to the Convex deployment
|
|
18
|
+
*/
|
|
19
|
+
export declare function testConnection(config: CLIConfig, options: GlobalOptions): Promise<{
|
|
20
|
+
connected: boolean;
|
|
21
|
+
url: string;
|
|
22
|
+
error?: string;
|
|
23
|
+
latency?: number;
|
|
24
|
+
}>;
|
|
25
|
+
/**
|
|
26
|
+
* Get deployment info
|
|
27
|
+
*/
|
|
28
|
+
export declare function getDeploymentInfo(config: CLIConfig, options: GlobalOptions): {
|
|
29
|
+
url: string;
|
|
30
|
+
deployment?: string;
|
|
31
|
+
hasKey: boolean;
|
|
32
|
+
isLocal: boolean;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Ensure client is connected before running an operation
|
|
36
|
+
*/
|
|
37
|
+
export declare function withClient<T>(config: CLIConfig, options: GlobalOptions, operation: (client: Cortex) => Promise<T>): Promise<T>;
|
|
38
|
+
/**
|
|
39
|
+
* Run an operation with automatic cleanup on process exit
|
|
40
|
+
*/
|
|
41
|
+
export declare function setupClientCleanup(): void;
|
|
42
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/utils/client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAS5D;;GAEG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,aAAa,GACrB,MAAM,CAoBR;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAMlC;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC,CAyBD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,aAAa,GACrB;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;CAClB,CAUA;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,CAAC,EAChC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,GACxC,OAAO,CAAC,CAAC,CAAC,CAQZ;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAczC"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cortex SDK Client Initialization
|
|
3
|
+
*
|
|
4
|
+
* Handles creating and managing connections to the Cortex SDK
|
|
5
|
+
*/
|
|
6
|
+
import { Cortex } from "@cortexmemory/sdk";
|
|
7
|
+
import { resolveConfig } from "./config.js";
|
|
8
|
+
/**
|
|
9
|
+
* Cached client instance
|
|
10
|
+
*/
|
|
11
|
+
let cachedClient = null;
|
|
12
|
+
let cachedUrl = null;
|
|
13
|
+
/**
|
|
14
|
+
* Create a Cortex client from configuration and options
|
|
15
|
+
*/
|
|
16
|
+
export function createClient(config, options) {
|
|
17
|
+
const resolved = resolveConfig(config, options);
|
|
18
|
+
// Return cached client if URL matches
|
|
19
|
+
if (cachedClient && cachedUrl === resolved.url) {
|
|
20
|
+
return cachedClient;
|
|
21
|
+
}
|
|
22
|
+
// Close existing client if URL changed
|
|
23
|
+
if (cachedClient) {
|
|
24
|
+
cachedClient.close();
|
|
25
|
+
}
|
|
26
|
+
// Create new client
|
|
27
|
+
cachedClient = new Cortex({
|
|
28
|
+
convexUrl: resolved.url,
|
|
29
|
+
});
|
|
30
|
+
cachedUrl = resolved.url;
|
|
31
|
+
return cachedClient;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Close the cached client connection
|
|
35
|
+
*/
|
|
36
|
+
export function closeClient() {
|
|
37
|
+
if (cachedClient) {
|
|
38
|
+
cachedClient.close();
|
|
39
|
+
cachedClient = null;
|
|
40
|
+
cachedUrl = null;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Test connection to the Convex deployment
|
|
45
|
+
*/
|
|
46
|
+
export async function testConnection(config, options) {
|
|
47
|
+
const resolved = resolveConfig(config, options);
|
|
48
|
+
const startTime = Date.now();
|
|
49
|
+
try {
|
|
50
|
+
const client = createClient(config, options);
|
|
51
|
+
// Try to query something simple to verify connection
|
|
52
|
+
await client.memorySpaces.list({ limit: 1 });
|
|
53
|
+
const latency = Date.now() - startTime;
|
|
54
|
+
return {
|
|
55
|
+
connected: true,
|
|
56
|
+
url: resolved.url,
|
|
57
|
+
latency,
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
return {
|
|
62
|
+
connected: false,
|
|
63
|
+
url: resolved.url,
|
|
64
|
+
error: error instanceof Error ? error.message : "Unknown error",
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Get deployment info
|
|
70
|
+
*/
|
|
71
|
+
export function getDeploymentInfo(config, options) {
|
|
72
|
+
const resolved = resolveConfig(config, options);
|
|
73
|
+
return {
|
|
74
|
+
url: resolved.url,
|
|
75
|
+
deployment: resolved.deployment,
|
|
76
|
+
hasKey: Boolean(resolved.key),
|
|
77
|
+
isLocal: resolved.url.includes("localhost") || resolved.url.includes("127.0.0.1"),
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Ensure client is connected before running an operation
|
|
82
|
+
*/
|
|
83
|
+
export async function withClient(config, options, operation) {
|
|
84
|
+
const client = createClient(config, options);
|
|
85
|
+
try {
|
|
86
|
+
return await operation(client);
|
|
87
|
+
}
|
|
88
|
+
finally {
|
|
89
|
+
// Don't close the client here - allow reuse
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Run an operation with automatic cleanup on process exit
|
|
94
|
+
*/
|
|
95
|
+
export function setupClientCleanup() {
|
|
96
|
+
process.on("exit", () => {
|
|
97
|
+
closeClient();
|
|
98
|
+
});
|
|
99
|
+
process.on("SIGINT", () => {
|
|
100
|
+
closeClient();
|
|
101
|
+
process.exit(0);
|
|
102
|
+
});
|
|
103
|
+
process.on("SIGTERM", () => {
|
|
104
|
+
closeClient();
|
|
105
|
+
process.exit(0);
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/utils/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Management
|
|
3
|
+
*
|
|
4
|
+
* Handles loading, saving, and managing CLI configuration from multiple sources:
|
|
5
|
+
* 1. CLI flags (highest priority)
|
|
6
|
+
* 2. Environment variables
|
|
7
|
+
* 3. Project config (./cortex.config.json)
|
|
8
|
+
* 4. User config (~/.cortexrc)
|
|
9
|
+
*/
|
|
10
|
+
import type { CLIConfig, DeploymentConfig, GlobalOptions, OutputFormat } from "../types.js";
|
|
11
|
+
/**
|
|
12
|
+
* Get the path to the user config file
|
|
13
|
+
*/
|
|
14
|
+
export declare function getUserConfigPath(): string;
|
|
15
|
+
/**
|
|
16
|
+
* Get the path to the project config file
|
|
17
|
+
*/
|
|
18
|
+
export declare function getProjectConfigPath(): string;
|
|
19
|
+
/**
|
|
20
|
+
* Load configuration from all sources
|
|
21
|
+
*/
|
|
22
|
+
export declare function loadConfig(): Promise<CLIConfig>;
|
|
23
|
+
/**
|
|
24
|
+
* Save configuration to user config file
|
|
25
|
+
*/
|
|
26
|
+
export declare function saveUserConfig(config: CLIConfig): Promise<void>;
|
|
27
|
+
/**
|
|
28
|
+
* Save configuration to project config file
|
|
29
|
+
*/
|
|
30
|
+
export declare function saveProjectConfig(config: CLIConfig): Promise<void>;
|
|
31
|
+
/**
|
|
32
|
+
* Get a specific deployment configuration
|
|
33
|
+
*/
|
|
34
|
+
export declare function getDeployment(config: CLIConfig, name?: string): DeploymentConfig | null;
|
|
35
|
+
/**
|
|
36
|
+
* Resolve final configuration from global options and config
|
|
37
|
+
*/
|
|
38
|
+
export declare function resolveConfig(config: CLIConfig, options: GlobalOptions): {
|
|
39
|
+
url: string;
|
|
40
|
+
key?: string;
|
|
41
|
+
deployment?: string;
|
|
42
|
+
format: OutputFormat;
|
|
43
|
+
quiet: boolean;
|
|
44
|
+
debug: boolean;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Update a single deployment in the config
|
|
48
|
+
*/
|
|
49
|
+
export declare function updateDeployment(name: string, deployment: DeploymentConfig, saveToUser?: boolean): Promise<CLIConfig>;
|
|
50
|
+
/**
|
|
51
|
+
* Set the default deployment
|
|
52
|
+
*/
|
|
53
|
+
export declare function setDefaultDeployment(name: string): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Set a configuration value
|
|
56
|
+
*/
|
|
57
|
+
export declare function setConfigValue(key: string, value: string): Promise<void>;
|
|
58
|
+
/**
|
|
59
|
+
* List all deployments
|
|
60
|
+
*/
|
|
61
|
+
export declare function listDeployments(config: CLIConfig): Array<{
|
|
62
|
+
name: string;
|
|
63
|
+
url: string;
|
|
64
|
+
isDefault: boolean;
|
|
65
|
+
hasKey: boolean;
|
|
66
|
+
}>;
|
|
67
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,OAAO,KAAK,EACV,SAAS,EACT,gBAAgB,EAChB,aAAa,EACb,YAAY,EACb,MAAM,aAAa,CAAC;AA8BrB;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;GAEG;AACH,wBAAsB,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,CA6BrD;AA2DD;;GAEG;AACH,wBAAsB,cAAc,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAUrE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAGxE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,EACjB,IAAI,CAAC,EAAE,MAAM,GACZ,gBAAgB,GAAG,IAAI,CAGzB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC3B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,aAAa,GACrB;IACD,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB,CA6BA;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,gBAAgB,EAC5B,UAAU,UAAO,GAChB,OAAO,CAAC,SAAS,CAAC,CASpB;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAStE;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAoCf;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,KAAK,CAAC;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC,CAOD"}
|