@defai.digital/ax-cli 3.5.2 → 3.6.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/.ax-cli/memory.json +8 -8
- package/README.md +27 -1
- package/dist/agent/chat-history-manager.d.ts +56 -0
- package/dist/agent/chat-history-manager.js +150 -0
- package/dist/agent/chat-history-manager.js.map +1 -0
- package/dist/agent/llm-agent.js +1 -1
- package/dist/agent/llm-agent.js.map +1 -1
- package/dist/agent/tool-manager.d.ts +39 -0
- package/dist/agent/tool-manager.js +76 -0
- package/dist/agent/tool-manager.js.map +1 -0
- package/dist/analyzers/ast/index.d.ts +9 -0
- package/dist/analyzers/ast/index.js +10 -0
- package/dist/analyzers/ast/index.js.map +1 -0
- package/dist/analyzers/ast/node-helpers.d.ts +81 -0
- package/dist/analyzers/ast/node-helpers.js +128 -0
- package/dist/analyzers/ast/node-helpers.js.map +1 -0
- package/dist/analyzers/ast/traverser.d.ts +67 -0
- package/dist/analyzers/ast/traverser.js +156 -0
- package/dist/analyzers/ast/traverser.js.map +1 -0
- package/dist/analyzers/best-practices/index.d.ts +10 -0
- package/dist/analyzers/best-practices/index.js +11 -0
- package/dist/analyzers/best-practices/index.js.map +1 -0
- package/dist/commands/setup.js +13 -5
- package/dist/commands/setup.js.map +1 -1
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -1
- package/dist/llm/client.d.ts +1 -0
- package/dist/llm/client.js +44 -0
- package/dist/llm/client.js.map +1 -1
- package/dist/mcp/ssrf-protection.d.ts +86 -0
- package/dist/mcp/ssrf-protection.js +313 -0
- package/dist/mcp/ssrf-protection.js.map +1 -0
- package/dist/mcp/validation.d.ts +4 -0
- package/dist/mcp/validation.js +122 -11
- package/dist/mcp/validation.js.map +1 -1
- package/dist/schemas/settings-schemas.d.ts +30 -0
- package/dist/schemas/settings-schemas.js +30 -0
- package/dist/schemas/settings-schemas.js.map +1 -1
- package/dist/tools/bash.d.ts +3 -2
- package/dist/tools/bash.js +31 -2
- package/dist/tools/bash.js.map +1 -1
- package/dist/tools/search.d.ts +1 -1
- package/dist/tools/search.js +121 -128
- package/dist/tools/search.js.map +1 -1
- package/dist/tools/text-editor.js +52 -15
- package/dist/tools/text-editor.js.map +1 -1
- package/dist/ui/components/status-bar.js +2 -2
- package/dist/ui/components/status-bar.js.map +1 -1
- package/dist/ui/components/toast-notification.js +0 -1
- package/dist/ui/components/toast-notification.js.map +1 -1
- package/dist/utils/audit-logger.d.ts +247 -0
- package/dist/utils/audit-logger.js +374 -0
- package/dist/utils/audit-logger.js.map +1 -0
- package/dist/utils/command-security.d.ts +85 -0
- package/dist/utils/command-security.js +200 -0
- package/dist/utils/command-security.js.map +1 -0
- package/dist/utils/encryption.d.ts +78 -0
- package/dist/utils/encryption.js +216 -0
- package/dist/utils/encryption.js.map +1 -0
- package/dist/utils/error-sanitizer.d.ts +119 -0
- package/dist/utils/error-sanitizer.js +253 -0
- package/dist/utils/error-sanitizer.js.map +1 -0
- package/dist/utils/input-sanitizer.d.ts +210 -0
- package/dist/utils/input-sanitizer.js +362 -0
- package/dist/utils/input-sanitizer.js.map +1 -0
- package/dist/utils/json-utils.d.ts +13 -0
- package/dist/utils/json-utils.js +55 -1
- package/dist/utils/json-utils.js.map +1 -1
- package/dist/utils/parallel-analyzer.js +29 -12
- package/dist/utils/parallel-analyzer.js.map +1 -1
- package/dist/utils/path-security.d.ts +90 -0
- package/dist/utils/path-security.js +328 -0
- package/dist/utils/path-security.js.map +1 -0
- package/dist/utils/process-pool.d.ts +105 -0
- package/dist/utils/process-pool.js +326 -0
- package/dist/utils/process-pool.js.map +1 -0
- package/dist/utils/rate-limiter.d.ts +207 -0
- package/dist/utils/rate-limiter.js +303 -0
- package/dist/utils/rate-limiter.js.map +1 -0
- package/dist/utils/settings-manager.js +83 -4
- package/dist/utils/settings-manager.js.map +1 -1
- package/eslint.config.js +3 -0
- package/package.json +1 -1
- package/.ax-cli/checkpoints/2025-11-20/checkpoint-11e9e0ba-c39d-4fd2-aa77-bc818811c921.json +0 -69
- package/.ax-cli/checkpoints/2025-11-20/checkpoint-2b260b98-b418-4c7c-9694-e2b94967e662.json +0 -24
- package/.ax-cli/checkpoints/2025-11-20/checkpoint-7e03601e-e8ab-4cd7-9841-a74b66adf78f.json +0 -69
- package/.ax-cli/checkpoints/2025-11-20/checkpoint-7f9c6562-771f-4fd0-adcf-9e7e9ac34ae8.json +0 -44
- package/.ax-cli/checkpoints/2025-11-20/checkpoint-e1ebe666-4c3a-4367-ba5c-27fe512a9c70.json +0 -24
- package/.ax-cli/checkpoints/2025-11-21/checkpoint-15743e7d-430c-4d76-b6fc-955d7a5c250c.json +0 -44
- package/.ax-cli/checkpoints/2025-11-21/checkpoint-25cf7679-0b3f-4988-83d7-704548fbba91.json +0 -69
- package/.ax-cli/checkpoints/2025-11-21/checkpoint-54aedbac-6db0-464e-8ebb-dbb3979e6dca.json +0 -24
- package/.ax-cli/checkpoints/2025-11-21/checkpoint-7658aed8-fe5d-4222-903f-1a7c63717ea7.json +0 -24
- package/.ax-cli/checkpoints/2025-11-21/checkpoint-c9c13497-40dc-4294-a327-6a5fc854eaa1.json +0 -69
- package/ax.config.json +0 -333
- package/dist/hooks/use-chat-reducer.d.ts +0 -61
- package/dist/hooks/use-chat-reducer.js +0 -118
- package/dist/hooks/use-chat-reducer.js.map +0 -1
- package/dist/hooks/use-enhanced-input.d.ts +0 -40
- package/dist/hooks/use-enhanced-input.js +0 -249
- package/dist/hooks/use-enhanced-input.js.map +0 -1
- package/dist/hooks/use-input-handler.d.ts +0 -46
- package/dist/hooks/use-input-handler.js +0 -1430
- package/dist/hooks/use-input-handler.js.map +0 -1
- package/dist/hooks/use-input-history.d.ts +0 -9
- package/dist/hooks/use-input-history.js +0 -112
- package/dist/hooks/use-input-history.js.map +0 -1
- package/dist/utils/paste-collapse.d.ts +0 -46
- package/dist/utils/paste-collapse.js +0 -77
- package/dist/utils/paste-collapse.js.map +0 -1
- package/packages/schemas/dist/index.d.ts +0 -14
- package/packages/schemas/dist/index.d.ts.map +0 -1
- package/packages/schemas/dist/index.js +0 -19
- package/packages/schemas/dist/index.js.map +0 -1
- package/packages/schemas/dist/public/core/brand-types.d.ts +0 -308
- package/packages/schemas/dist/public/core/brand-types.d.ts.map +0 -1
- package/packages/schemas/dist/public/core/brand-types.js +0 -243
- package/packages/schemas/dist/public/core/brand-types.js.map +0 -1
- package/packages/schemas/dist/public/core/enums.d.ts +0 -227
- package/packages/schemas/dist/public/core/enums.d.ts.map +0 -1
- package/packages/schemas/dist/public/core/enums.js +0 -222
- package/packages/schemas/dist/public/core/enums.js.map +0 -1
- package/packages/schemas/dist/public/core/id-types.d.ts +0 -286
- package/packages/schemas/dist/public/core/id-types.d.ts.map +0 -1
- package/packages/schemas/dist/public/core/id-types.js +0 -136
- package/packages/schemas/dist/public/core/id-types.js.map +0 -1
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rate Limiting Utilities (REQ-SEC-006)
|
|
3
|
+
*
|
|
4
|
+
* Implements token bucket algorithm for rate limiting API calls and user actions
|
|
5
|
+
* Prevents API abuse and ensures fair resource usage
|
|
6
|
+
*
|
|
7
|
+
* Security: Protects against:
|
|
8
|
+
* - API abuse (excessive requests)
|
|
9
|
+
* - Resource exhaustion
|
|
10
|
+
* - Denial of service (unintentional)
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Token Bucket Rate Limiter
|
|
14
|
+
*
|
|
15
|
+
* Uses the token bucket algorithm which allows bursts while maintaining
|
|
16
|
+
* a steady average rate. Tokens are added at a constant rate, and requests
|
|
17
|
+
* consume tokens.
|
|
18
|
+
*
|
|
19
|
+
* @example
|
|
20
|
+
* ```typescript
|
|
21
|
+
* const limiter = new RateLimiter({
|
|
22
|
+
* maxRequests: 60,
|
|
23
|
+
* windowMs: 60000, // 60 requests per minute
|
|
24
|
+
* });
|
|
25
|
+
*
|
|
26
|
+
* const result = limiter.tryAcquire();
|
|
27
|
+
* if (result.allowed) {
|
|
28
|
+
* // Make API call
|
|
29
|
+
* } else {
|
|
30
|
+
* console.log(`Rate limit exceeded. Try again in ${result.resetIn}ms`);
|
|
31
|
+
* }
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export class RateLimiter {
|
|
35
|
+
tokens;
|
|
36
|
+
maxTokens;
|
|
37
|
+
refillRate; // tokens per millisecond
|
|
38
|
+
lastRefill;
|
|
39
|
+
config;
|
|
40
|
+
constructor(config) {
|
|
41
|
+
this.config = config;
|
|
42
|
+
this.maxTokens = config.maxRequests + (config.burstAllowance || 0);
|
|
43
|
+
this.tokens = this.maxTokens;
|
|
44
|
+
this.refillRate = config.maxRequests / config.windowMs;
|
|
45
|
+
this.lastRefill = Date.now();
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Refill tokens based on elapsed time
|
|
49
|
+
*/
|
|
50
|
+
refill() {
|
|
51
|
+
const now = Date.now();
|
|
52
|
+
const elapsed = now - this.lastRefill;
|
|
53
|
+
// Calculate tokens to add
|
|
54
|
+
const tokensToAdd = elapsed * this.refillRate;
|
|
55
|
+
// Add tokens, capped at max
|
|
56
|
+
this.tokens = Math.min(this.maxTokens, this.tokens + tokensToAdd);
|
|
57
|
+
this.lastRefill = now;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Try to acquire a token (allow a request)
|
|
61
|
+
*
|
|
62
|
+
* @param cost - Number of tokens to consume (default: 1)
|
|
63
|
+
* @returns Rate limit result indicating if request is allowed
|
|
64
|
+
*/
|
|
65
|
+
tryAcquire(cost = 1) {
|
|
66
|
+
this.refill();
|
|
67
|
+
const allowed = this.tokens >= cost;
|
|
68
|
+
if (allowed) {
|
|
69
|
+
this.tokens -= cost;
|
|
70
|
+
}
|
|
71
|
+
// Calculate reset time (time until 1 token is available)
|
|
72
|
+
const resetIn = allowed ? 0 : Math.ceil((cost - this.tokens) / this.refillRate);
|
|
73
|
+
return {
|
|
74
|
+
allowed,
|
|
75
|
+
remaining: Math.floor(this.tokens),
|
|
76
|
+
resetIn,
|
|
77
|
+
limit: this.config.maxRequests,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get current state without consuming a token
|
|
82
|
+
*/
|
|
83
|
+
getState() {
|
|
84
|
+
this.refill();
|
|
85
|
+
return {
|
|
86
|
+
allowed: this.tokens >= 1,
|
|
87
|
+
remaining: Math.floor(this.tokens),
|
|
88
|
+
resetIn: this.tokens < 1 ? Math.ceil((1 - this.tokens) / this.refillRate) : 0,
|
|
89
|
+
limit: this.config.maxRequests,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Reset the rate limiter (clear all tokens)
|
|
94
|
+
*/
|
|
95
|
+
reset() {
|
|
96
|
+
this.tokens = this.maxTokens;
|
|
97
|
+
this.lastRefill = Date.now();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Multi-tier Rate Limiter
|
|
102
|
+
*
|
|
103
|
+
* Enforces multiple rate limits simultaneously (e.g., per-second, per-minute, per-hour)
|
|
104
|
+
* Request is only allowed if ALL tiers allow it
|
|
105
|
+
*
|
|
106
|
+
* @example
|
|
107
|
+
* ```typescript
|
|
108
|
+
* const limiter = new MultiTierRateLimiter([
|
|
109
|
+
* { maxRequests: 10, windowMs: 1000 }, // 10/second
|
|
110
|
+
* { maxRequests: 100, windowMs: 60000 }, // 100/minute
|
|
111
|
+
* ]);
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
export class MultiTierRateLimiter {
|
|
115
|
+
limiters;
|
|
116
|
+
constructor(configs) {
|
|
117
|
+
this.limiters = configs.map(config => new RateLimiter(config));
|
|
118
|
+
}
|
|
119
|
+
/**
|
|
120
|
+
* Try to acquire across all tiers
|
|
121
|
+
* Request is only allowed if ALL tiers allow it
|
|
122
|
+
*/
|
|
123
|
+
tryAcquire(cost = 1) {
|
|
124
|
+
// Check all tiers first (dry run)
|
|
125
|
+
const results = this.limiters.map(limiter => limiter.getState());
|
|
126
|
+
// If any tier would block, return the most restrictive result
|
|
127
|
+
const blocked = results.find(r => !r.allowed || r.remaining < cost);
|
|
128
|
+
if (blocked) {
|
|
129
|
+
return {
|
|
130
|
+
allowed: false,
|
|
131
|
+
remaining: blocked.remaining,
|
|
132
|
+
resetIn: blocked.resetIn,
|
|
133
|
+
limit: blocked.limit,
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
// All tiers allow it - actually consume tokens
|
|
137
|
+
const actualResults = this.limiters.map(limiter => limiter.tryAcquire(cost));
|
|
138
|
+
// Return the most restrictive successful result
|
|
139
|
+
return actualResults.reduce((mostRestrictive, current) => {
|
|
140
|
+
return current.remaining < mostRestrictive.remaining ? current : mostRestrictive;
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Get current state (most restrictive tier)
|
|
145
|
+
*/
|
|
146
|
+
getState() {
|
|
147
|
+
const results = this.limiters.map(limiter => limiter.getState());
|
|
148
|
+
// Return the most restrictive state
|
|
149
|
+
return results.reduce((mostRestrictive, current) => {
|
|
150
|
+
if (!current.allowed)
|
|
151
|
+
return current;
|
|
152
|
+
if (!mostRestrictive.allowed)
|
|
153
|
+
return mostRestrictive;
|
|
154
|
+
return current.remaining < mostRestrictive.remaining ? current : mostRestrictive;
|
|
155
|
+
});
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Reset all tiers
|
|
159
|
+
*/
|
|
160
|
+
reset() {
|
|
161
|
+
this.limiters.forEach(limiter => limiter.reset());
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Keyed Rate Limiter
|
|
166
|
+
*
|
|
167
|
+
* Maintains separate rate limits for different keys (e.g., per-user, per-IP)
|
|
168
|
+
* Automatically cleans up old entries to prevent memory leaks
|
|
169
|
+
*
|
|
170
|
+
* @example
|
|
171
|
+
* ```typescript
|
|
172
|
+
* const limiter = new KeyedRateLimiter({
|
|
173
|
+
* maxRequests: 100,
|
|
174
|
+
* windowMs: 60000,
|
|
175
|
+
* });
|
|
176
|
+
*
|
|
177
|
+
* // Different limits for different users
|
|
178
|
+
* const result = limiter.tryAcquire('user-123');
|
|
179
|
+
* ```
|
|
180
|
+
*/
|
|
181
|
+
export class KeyedRateLimiter {
|
|
182
|
+
limiters;
|
|
183
|
+
config;
|
|
184
|
+
cleanupTimer = null;
|
|
185
|
+
maxKeys;
|
|
186
|
+
constructor(config, maxKeys = 10000) {
|
|
187
|
+
this.config = config;
|
|
188
|
+
this.limiters = new Map();
|
|
189
|
+
this.maxKeys = maxKeys;
|
|
190
|
+
// Cleanup old entries every 5 minutes to prevent memory leaks
|
|
191
|
+
this.cleanupTimer = setInterval(() => {
|
|
192
|
+
this.cleanup();
|
|
193
|
+
}, 5 * 60 * 1000);
|
|
194
|
+
// Don't keep process alive
|
|
195
|
+
this.cleanupTimer.unref();
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* Get or create a rate limiter for the given key
|
|
199
|
+
*/
|
|
200
|
+
getLimiter(key) {
|
|
201
|
+
let limiter = this.limiters.get(key);
|
|
202
|
+
if (!limiter) {
|
|
203
|
+
limiter = new RateLimiter(this.config);
|
|
204
|
+
this.limiters.set(key, limiter);
|
|
205
|
+
// Enforce max keys limit
|
|
206
|
+
if (this.limiters.size > this.maxKeys) {
|
|
207
|
+
// Remove the oldest entry (first in Map)
|
|
208
|
+
const firstKey = this.limiters.keys().next().value;
|
|
209
|
+
if (firstKey) {
|
|
210
|
+
this.limiters.delete(firstKey);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return limiter;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Try to acquire for a specific key
|
|
218
|
+
*/
|
|
219
|
+
tryAcquire(key, cost = 1) {
|
|
220
|
+
const limiter = this.getLimiter(key);
|
|
221
|
+
return limiter.tryAcquire(cost);
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Get state for a specific key
|
|
225
|
+
*/
|
|
226
|
+
getState(key) {
|
|
227
|
+
const limiter = this.getLimiter(key);
|
|
228
|
+
return limiter.getState();
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Reset a specific key
|
|
232
|
+
*/
|
|
233
|
+
reset(key) {
|
|
234
|
+
const limiter = this.limiters.get(key);
|
|
235
|
+
if (limiter) {
|
|
236
|
+
limiter.reset();
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Clean up inactive limiters
|
|
241
|
+
*/
|
|
242
|
+
cleanup() {
|
|
243
|
+
// Remove limiters that have full tokens (haven't been used recently)
|
|
244
|
+
const toDelete = [];
|
|
245
|
+
for (const [key, limiter] of this.limiters.entries()) {
|
|
246
|
+
const state = limiter.getState();
|
|
247
|
+
// If tokens are at max, this limiter hasn't been used recently
|
|
248
|
+
if (state.remaining >= this.config.maxRequests) {
|
|
249
|
+
toDelete.push(key);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
for (const key of toDelete) {
|
|
253
|
+
this.limiters.delete(key);
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Dispose of resources
|
|
258
|
+
*/
|
|
259
|
+
dispose() {
|
|
260
|
+
if (this.cleanupTimer) {
|
|
261
|
+
clearInterval(this.cleanupTimer);
|
|
262
|
+
this.cleanupTimer = null;
|
|
263
|
+
}
|
|
264
|
+
this.limiters.clear();
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Default rate limit configurations for common use cases
|
|
269
|
+
*/
|
|
270
|
+
export const DEFAULT_RATE_LIMITS = {
|
|
271
|
+
/**
|
|
272
|
+
* API calls - 60 requests per minute
|
|
273
|
+
*/
|
|
274
|
+
API: {
|
|
275
|
+
maxRequests: 60,
|
|
276
|
+
windowMs: 60 * 1000,
|
|
277
|
+
burstAllowance: 10,
|
|
278
|
+
},
|
|
279
|
+
/**
|
|
280
|
+
* LLM API calls - 20 requests per minute (more expensive)
|
|
281
|
+
*/
|
|
282
|
+
LLM_API: {
|
|
283
|
+
maxRequests: 20,
|
|
284
|
+
windowMs: 60 * 1000,
|
|
285
|
+
burstAllowance: 5,
|
|
286
|
+
},
|
|
287
|
+
/**
|
|
288
|
+
* User actions - 100 requests per minute
|
|
289
|
+
*/
|
|
290
|
+
USER_ACTIONS: {
|
|
291
|
+
maxRequests: 100,
|
|
292
|
+
windowMs: 60 * 1000,
|
|
293
|
+
burstAllowance: 20,
|
|
294
|
+
},
|
|
295
|
+
/**
|
|
296
|
+
* File operations - 50 per minute
|
|
297
|
+
*/
|
|
298
|
+
FILE_OPS: {
|
|
299
|
+
maxRequests: 50,
|
|
300
|
+
windowMs: 60 * 1000,
|
|
301
|
+
},
|
|
302
|
+
};
|
|
303
|
+
//# sourceMappingURL=rate-limiter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rate-limiter.js","sourceRoot":"","sources":["../../src/utils/rate-limiter.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { homedir } from "os";
|
|
|
4
4
|
import { UserSettingsSchema, ProjectSettingsSchema } from "../schemas/settings-schemas.js";
|
|
5
5
|
import { ModelIdSchema } from '@ax-cli/schemas';
|
|
6
6
|
import { parseJsonFile, writeJsonFile } from "./json-utils.js";
|
|
7
|
+
import { encrypt, decrypt } from "./encryption.js";
|
|
7
8
|
/**
|
|
8
9
|
* Default values for user settings
|
|
9
10
|
* Note: These are minimal defaults. Users should run 'ax-cli setup' to configure properly.
|
|
@@ -85,8 +86,60 @@ export class SettingsManager {
|
|
|
85
86
|
this.cacheTimestamp.user = Date.now();
|
|
86
87
|
return defaultSettings;
|
|
87
88
|
}
|
|
88
|
-
//
|
|
89
|
-
|
|
89
|
+
// REQ-SEC-003: Handle API key encryption migration
|
|
90
|
+
// Priority: apiKeyEncrypted > apiKey (plain-text)
|
|
91
|
+
let decryptedApiKey;
|
|
92
|
+
if (parseResult.data.apiKeyEncrypted) {
|
|
93
|
+
// Already encrypted - decrypt it
|
|
94
|
+
try {
|
|
95
|
+
decryptedApiKey = decrypt(parseResult.data.apiKeyEncrypted);
|
|
96
|
+
}
|
|
97
|
+
catch (error) {
|
|
98
|
+
console.error('Failed to decrypt API key:', error instanceof Error ? error.message : 'Unknown error');
|
|
99
|
+
// Fall back to plain-text if decryption fails
|
|
100
|
+
if (parseResult.data.apiKey && typeof parseResult.data.apiKey === 'string') {
|
|
101
|
+
decryptedApiKey = parseResult.data.apiKey;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
else if (parseResult.data.apiKey && typeof parseResult.data.apiKey === 'string') {
|
|
106
|
+
// Plain-text API key found - needs migration
|
|
107
|
+
decryptedApiKey = parseResult.data.apiKey;
|
|
108
|
+
// Migrate to encrypted format
|
|
109
|
+
console.log('🔒 Detected plain-text API key - migrating to encrypted format...');
|
|
110
|
+
try {
|
|
111
|
+
if (!decryptedApiKey) {
|
|
112
|
+
throw new Error('API key is empty');
|
|
113
|
+
}
|
|
114
|
+
const encrypted = encrypt(decryptedApiKey);
|
|
115
|
+
// Update the config file: add apiKeyEncrypted, remove apiKey
|
|
116
|
+
const migratedConfig = {
|
|
117
|
+
...parseResult.data,
|
|
118
|
+
apiKeyEncrypted: encrypted,
|
|
119
|
+
apiKey: undefined, // Clear plain-text field
|
|
120
|
+
};
|
|
121
|
+
// Save the migrated config
|
|
122
|
+
const writeResult = writeJsonFile(this.userSettingsPath, migratedConfig, UserSettingsSchema, true // pretty
|
|
123
|
+
);
|
|
124
|
+
if (writeResult.success) {
|
|
125
|
+
console.log('✅ API key encrypted and saved successfully');
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
console.warn('⚠️ Failed to save encrypted API key:', writeResult.error);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
console.warn('⚠️ Failed to encrypt API key:', error instanceof Error ? error.message : 'Unknown error');
|
|
133
|
+
// Continue with plain-text for now, will retry on next load
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
// Build settings object with decrypted API key
|
|
137
|
+
const settings = {
|
|
138
|
+
...DEFAULT_USER_SETTINGS,
|
|
139
|
+
...parseResult.data,
|
|
140
|
+
apiKey: decryptedApiKey, // Always use decrypted value in memory
|
|
141
|
+
apiKeyEncrypted: undefined, // Don't keep encrypted version in memory
|
|
142
|
+
};
|
|
90
143
|
this.userSettingsCache = settings;
|
|
91
144
|
this.cacheTimestamp.user = Date.now();
|
|
92
145
|
return settings;
|
|
@@ -110,7 +163,25 @@ export class SettingsManager {
|
|
|
110
163
|
if (existsSync(this.userSettingsPath)) {
|
|
111
164
|
const parseResult = parseJsonFile(this.userSettingsPath);
|
|
112
165
|
if (parseResult.success) {
|
|
113
|
-
|
|
166
|
+
// Decrypt API key if encrypted
|
|
167
|
+
let apiKey;
|
|
168
|
+
if (parseResult.data.apiKeyEncrypted) {
|
|
169
|
+
try {
|
|
170
|
+
apiKey = decrypt(parseResult.data.apiKeyEncrypted);
|
|
171
|
+
}
|
|
172
|
+
catch (error) {
|
|
173
|
+
console.error('Failed to decrypt API key during save');
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
else if (parseResult.data.apiKey) {
|
|
177
|
+
apiKey = parseResult.data.apiKey;
|
|
178
|
+
}
|
|
179
|
+
existingSettings = {
|
|
180
|
+
...DEFAULT_USER_SETTINGS,
|
|
181
|
+
...parseResult.data,
|
|
182
|
+
apiKey, // Use decrypted value
|
|
183
|
+
apiKeyEncrypted: undefined, // Don't keep encrypted in memory
|
|
184
|
+
};
|
|
114
185
|
}
|
|
115
186
|
else {
|
|
116
187
|
// If file is corrupted, use defaults
|
|
@@ -118,8 +189,16 @@ export class SettingsManager {
|
|
|
118
189
|
}
|
|
119
190
|
}
|
|
120
191
|
const mergedSettings = { ...existingSettings, ...settings };
|
|
192
|
+
// REQ-SEC-003: Encrypt API key into apiKeyEncrypted field
|
|
193
|
+
const settingsToSave = { ...mergedSettings };
|
|
194
|
+
if (settingsToSave.apiKey) {
|
|
195
|
+
// Encrypt the API key
|
|
196
|
+
settingsToSave.apiKeyEncrypted = encrypt(settingsToSave.apiKey);
|
|
197
|
+
// Clear the plain-text field
|
|
198
|
+
delete settingsToSave.apiKey;
|
|
199
|
+
}
|
|
121
200
|
// Use json-utils for consistent writing with schema validation
|
|
122
|
-
const writeResult = writeJsonFile(this.userSettingsPath,
|
|
201
|
+
const writeResult = writeJsonFile(this.userSettingsPath, settingsToSave, UserSettingsSchema, // validate before writing
|
|
123
202
|
true // pretty
|
|
124
203
|
);
|
|
125
204
|
if (!writeResult.success) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"settings-manager.js","sourceRoot":"","sources":["../../src/utils/settings-manager.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"settings-manager.js","sourceRoot":"","sources":["../../src/utils/settings-manager.ts"],"names":[],"mappings":"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"}
|
package/eslint.config.js
CHANGED
|
@@ -12,6 +12,9 @@ export default [
|
|
|
12
12
|
'packages/**', // Ignore packages directory
|
|
13
13
|
'**/*.d.ts', // Ignore TypeScript declaration files
|
|
14
14
|
'**/__tests__/**', // Ignore test directories
|
|
15
|
+
'examples/**', // Ignore examples (documentation only)
|
|
16
|
+
'automatosx/tmp/**', // Ignore AutomatosX temporary files and backups
|
|
17
|
+
'vscode-extension/**', // VS Code extension has its own ESLint config
|
|
15
18
|
],
|
|
16
19
|
},
|
|
17
20
|
{
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@defai.digital/ax-cli",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.0",
|
|
4
4
|
"description": "Enterprise-Class AI Command Line Interface - Primary support for GLM (General Language Model) with multi-provider AI orchestration powered by AutomatosX.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"workspaces": [
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"id": "11e9e0ba-c39d-4fd2-aa77-bc818811c921",
|
|
3
|
-
"timestamp": "2025-11-21T03:58:12.786Z",
|
|
4
|
-
"description": "Test checkpoint",
|
|
5
|
-
"files": [
|
|
6
|
-
{
|
|
7
|
-
"path": "/test/file-1763697492786.ts",
|
|
8
|
-
"content": "test content",
|
|
9
|
-
"hash": "6ae8a75555209fd6c44157c0aed8016e763ff435a19cf186f76863140143ff72",
|
|
10
|
-
"size": 12
|
|
11
|
-
}
|
|
12
|
-
],
|
|
13
|
-
"conversationState": [
|
|
14
|
-
{
|
|
15
|
-
"type": "user",
|
|
16
|
-
"content": "Message 40",
|
|
17
|
-
"timestamp": "2025-11-21T03:58:12.786Z"
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
"type": "user",
|
|
21
|
-
"content": "Message 41",
|
|
22
|
-
"timestamp": "2025-11-21T03:58:12.786Z"
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
"type": "user",
|
|
26
|
-
"content": "Message 42",
|
|
27
|
-
"timestamp": "2025-11-21T03:58:12.786Z"
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
"type": "user",
|
|
31
|
-
"content": "Message 43",
|
|
32
|
-
"timestamp": "2025-11-21T03:58:12.786Z"
|
|
33
|
-
},
|
|
34
|
-
{
|
|
35
|
-
"type": "user",
|
|
36
|
-
"content": "Message 44",
|
|
37
|
-
"timestamp": "2025-11-21T03:58:12.786Z"
|
|
38
|
-
},
|
|
39
|
-
{
|
|
40
|
-
"type": "user",
|
|
41
|
-
"content": "Message 45",
|
|
42
|
-
"timestamp": "2025-11-21T03:58:12.786Z"
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
"type": "user",
|
|
46
|
-
"content": "Message 46",
|
|
47
|
-
"timestamp": "2025-11-21T03:58:12.786Z"
|
|
48
|
-
},
|
|
49
|
-
{
|
|
50
|
-
"type": "user",
|
|
51
|
-
"content": "Message 47",
|
|
52
|
-
"timestamp": "2025-11-21T03:58:12.786Z"
|
|
53
|
-
},
|
|
54
|
-
{
|
|
55
|
-
"type": "user",
|
|
56
|
-
"content": "Message 48",
|
|
57
|
-
"timestamp": "2025-11-21T03:58:12.786Z"
|
|
58
|
-
},
|
|
59
|
-
{
|
|
60
|
-
"type": "user",
|
|
61
|
-
"content": "Message 49",
|
|
62
|
-
"timestamp": "2025-11-21T03:58:12.786Z"
|
|
63
|
-
}
|
|
64
|
-
],
|
|
65
|
-
"metadata": {
|
|
66
|
-
"model": "glm-4.6",
|
|
67
|
-
"triggeredBy": "test"
|
|
68
|
-
}
|
|
69
|
-
}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"id": "2b260b98-b418-4c7c-9694-e2b94967e662",
|
|
3
|
-
"timestamp": "2025-11-21T03:58:12.781Z",
|
|
4
|
-
"description": "Test checkpoint",
|
|
5
|
-
"files": [
|
|
6
|
-
{
|
|
7
|
-
"path": "/test/file-1763697492781.ts",
|
|
8
|
-
"content": "test content",
|
|
9
|
-
"hash": "6ae8a75555209fd6c44157c0aed8016e763ff435a19cf186f76863140143ff72",
|
|
10
|
-
"size": 12
|
|
11
|
-
}
|
|
12
|
-
],
|
|
13
|
-
"conversationState": [
|
|
14
|
-
{
|
|
15
|
-
"type": "user",
|
|
16
|
-
"content": "Test message",
|
|
17
|
-
"timestamp": "2025-11-21T03:58:12.781Z"
|
|
18
|
-
}
|
|
19
|
-
],
|
|
20
|
-
"metadata": {
|
|
21
|
-
"model": "glm-4.6",
|
|
22
|
-
"triggeredBy": "test"
|
|
23
|
-
}
|
|
24
|
-
}
|