@ace-sdk/core 1.0.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 +54 -0
- package/dist/cache/index.d.ts +8 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +6 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/cache/local-cache.d.ts +72 -0
- package/dist/cache/local-cache.d.ts.map +1 -0
- package/dist/cache/local-cache.js +227 -0
- package/dist/cache/local-cache.js.map +1 -0
- package/dist/cache/session-storage.d.ts +76 -0
- package/dist/cache/session-storage.d.ts.map +1 -0
- package/dist/cache/session-storage.js +237 -0
- package/dist/cache/session-storage.js.map +1 -0
- package/dist/client/ace-client.d.ts +199 -0
- package/dist/client/ace-client.d.ts.map +1 -0
- package/dist/client/ace-client.js +454 -0
- package/dist/client/ace-client.js.map +1 -0
- package/dist/client/index.d.ts +6 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +5 -0
- package/dist/client/index.js.map +1 -0
- package/dist/config/context.d.ts +48 -0
- package/dist/config/context.d.ts.map +1 -0
- package/dist/config/context.js +147 -0
- package/dist/config/context.js.map +1 -0
- package/dist/config/helpers.d.ts +79 -0
- package/dist/config/helpers.d.ts.map +1 -0
- package/dist/config/helpers.js +173 -0
- package/dist/config/helpers.js.map +1 -0
- package/dist/config/index.d.ts +10 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +9 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +58 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +275 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/config/migration.d.ts +29 -0
- package/dist/config/migration.d.ts.map +1 -0
- package/dist/config/migration.js +137 -0
- package/dist/config/migration.js.map +1 -0
- package/dist/config/xdg.d.ts +62 -0
- package/dist/config/xdg.d.ts.map +1 -0
- package/dist/config/xdg.js +168 -0
- package/dist/config/xdg.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +50 -0
- package/dist/index.js.map +1 -0
- package/dist/logger/index.d.ts +6 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js +5 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/logger/interface.d.ts +73 -0
- package/dist/logger/interface.d.ts.map +1 -0
- package/dist/logger/interface.js +11 -0
- package/dist/logger/interface.js.map +1 -0
- package/dist/logger/noop.d.ts +32 -0
- package/dist/logger/noop.d.ts.map +1 -0
- package/dist/logger/noop.js +53 -0
- package/dist/logger/noop.js.map +1 -0
- package/dist/types/config.d.ts +94 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +26 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +6 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/pattern.d.ts +246 -0
- package/dist/types/pattern.d.ts.map +1 -0
- package/dist/types/pattern.js +22 -0
- package/dist/types/pattern.js.map +1 -0
- package/dist/utils/code-extractor.d.ts +34 -0
- package/dist/utils/code-extractor.d.ts.map +1 -0
- package/dist/utils/code-extractor.js +116 -0
- package/dist/utils/code-extractor.js.map +1 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +6 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/semver.d.ts +41 -0
- package/dist/utils/semver.d.ts.map +1 -0
- package/dist/utils/semver.js +90 -0
- package/dist/utils/semver.js.map +1 -0
- package/package.json +58 -0
|
@@ -0,0 +1,454 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ACE Server Client - HTTP REST API client with 3-tier cache
|
|
3
|
+
*
|
|
4
|
+
* Architecture:
|
|
5
|
+
* 1. RAM cache (fastest, lost on restart)
|
|
6
|
+
* 2. SQLite cache (fast, survives restart)
|
|
7
|
+
* 3. Remote server (slow, source of truth)
|
|
8
|
+
*
|
|
9
|
+
* @package @ace-sdk/core
|
|
10
|
+
*/
|
|
11
|
+
import { LocalCacheService } from '../cache/local-cache.js';
|
|
12
|
+
export class AceClient {
|
|
13
|
+
config;
|
|
14
|
+
localCache;
|
|
15
|
+
memoryCache; // RAM cache
|
|
16
|
+
logger;
|
|
17
|
+
// Config cache (v3.6.0+) - 1-hour TTL (configurable)
|
|
18
|
+
configCache = { data: null, timestamp: 0 };
|
|
19
|
+
CONFIG_CACHE_TTL = 60 * 60 * 1000; // 60 minutes (1 hour)
|
|
20
|
+
constructor(config, options) {
|
|
21
|
+
this.config = config;
|
|
22
|
+
this.logger = options?.logger;
|
|
23
|
+
// Support both AceConfig (legacy) and AceContext (new)
|
|
24
|
+
const serverUrl = config.serverUrl;
|
|
25
|
+
const apiToken = config.apiToken;
|
|
26
|
+
const projectId = config.projectId;
|
|
27
|
+
const orgId = 'orgId' in config ? config.orgId : this.extractOrgId(apiToken);
|
|
28
|
+
const cacheTtlMinutes = config.cacheTtlMinutes;
|
|
29
|
+
// Initialize local SQLite cache (optional - graceful fallback for Node 25+)
|
|
30
|
+
try {
|
|
31
|
+
const cacheConfig = {
|
|
32
|
+
orgId: orgId || 'default',
|
|
33
|
+
projectId,
|
|
34
|
+
ttlMinutes: cacheTtlMinutes
|
|
35
|
+
};
|
|
36
|
+
this.localCache = new LocalCacheService(cacheConfig, this.logger);
|
|
37
|
+
this.logger?.debug(`SQLite cache enabled (TTL: ${cacheTtlMinutes} minutes)`);
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
// Graceful fallback for Node.js 25+ (better-sqlite3 not yet supported)
|
|
41
|
+
this.localCache = null;
|
|
42
|
+
this.logger?.debug(`SQLite cache disabled (${error.message})`);
|
|
43
|
+
this.logger?.debug('Using RAM-only cache (degraded performance)');
|
|
44
|
+
if (process.version.startsWith('v25')) {
|
|
45
|
+
this.logger?.debug('Node.js 25 detected - SQLite support coming soon');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
this.logger?.debug(`ACE Server: ${serverUrl}`);
|
|
49
|
+
this.logger?.debug(`API Token: ${apiToken.substring(0, 15)}...`);
|
|
50
|
+
this.logger?.debug(`Project: ${projectId}`);
|
|
51
|
+
if (orgId && orgId !== 'default') {
|
|
52
|
+
this.logger?.debug(`Organization: ${orgId}`);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Extract org_id from API token
|
|
57
|
+
* Format: ace_{base64_with_org_id}
|
|
58
|
+
*/
|
|
59
|
+
extractOrgId(apiToken) {
|
|
60
|
+
// Simple extraction - token format varies
|
|
61
|
+
// Fallback to hash if can't extract
|
|
62
|
+
if (!apiToken.startsWith('ace_')) {
|
|
63
|
+
return 'default';
|
|
64
|
+
}
|
|
65
|
+
// For now, use first 8 chars after ace_ as org identifier
|
|
66
|
+
return apiToken.substring(4, 12);
|
|
67
|
+
}
|
|
68
|
+
async request(endpoint, method, body) {
|
|
69
|
+
const url = `${this.config.serverUrl}${endpoint}`;
|
|
70
|
+
// Trace logging: outgoing request
|
|
71
|
+
if (this.logger?.isTrace()) {
|
|
72
|
+
this.logger.trace(`→ ${method} ${endpoint}`);
|
|
73
|
+
if (body) {
|
|
74
|
+
// Truncate large bodies in trace output
|
|
75
|
+
const bodyStr = JSON.stringify(body);
|
|
76
|
+
const truncated = bodyStr.length > 500 ? bodyStr.substring(0, 500) + '...' : bodyStr;
|
|
77
|
+
this.logger.trace(`Request body: ${truncated}`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
const startTime = Date.now();
|
|
81
|
+
const response = await fetch(url, {
|
|
82
|
+
method,
|
|
83
|
+
headers: {
|
|
84
|
+
'Content-Type': 'application/json',
|
|
85
|
+
'Authorization': `Bearer ${this.config.apiToken}`,
|
|
86
|
+
'X-ACE-Project': this.config.projectId
|
|
87
|
+
},
|
|
88
|
+
body: body ? JSON.stringify(body) : undefined
|
|
89
|
+
});
|
|
90
|
+
const duration = Date.now() - startTime;
|
|
91
|
+
// Trace logging: response status
|
|
92
|
+
if (this.logger?.isTrace()) {
|
|
93
|
+
this.logger.trace(`← ${response.status} ${response.statusText} (${duration}ms)`);
|
|
94
|
+
}
|
|
95
|
+
if (!response.ok) {
|
|
96
|
+
const error = await response.text();
|
|
97
|
+
if (this.logger?.isTrace()) {
|
|
98
|
+
this.logger.trace(`Error response: ${error}`);
|
|
99
|
+
}
|
|
100
|
+
throw new Error(`Server error (${response.status}): ${error}`);
|
|
101
|
+
}
|
|
102
|
+
const result = await response.json();
|
|
103
|
+
// Trace logging: response body
|
|
104
|
+
if (this.logger?.isTrace()) {
|
|
105
|
+
const resultStr = JSON.stringify(result);
|
|
106
|
+
const truncated = resultStr.length > 500 ? resultStr.substring(0, 500) + '...' : resultStr;
|
|
107
|
+
this.logger.trace(`Response body: ${truncated}`);
|
|
108
|
+
}
|
|
109
|
+
return result;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Save structured playbook to server
|
|
113
|
+
* Server endpoint: POST /patterns (saves individual bullets)
|
|
114
|
+
*/
|
|
115
|
+
async savePlaybook(playbook) {
|
|
116
|
+
// Flatten playbook into array of bullets
|
|
117
|
+
const allBullets = [
|
|
118
|
+
...playbook.strategies_and_hard_rules,
|
|
119
|
+
...playbook.useful_code_snippets,
|
|
120
|
+
...playbook.troubleshooting_and_pitfalls,
|
|
121
|
+
...playbook.apis_to_use
|
|
122
|
+
];
|
|
123
|
+
// Server expects: POST /patterns with array of bullets
|
|
124
|
+
await this.request('/patterns', 'POST', { patterns: allBullets });
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Get structured playbook (3-tier cache: RAM → SQLite → Server)
|
|
128
|
+
* Endpoint: GET /playbook
|
|
129
|
+
*/
|
|
130
|
+
async getPlaybook(params) {
|
|
131
|
+
const forceRefresh = params?.forceRefresh ?? false;
|
|
132
|
+
const include_metadata = params?.include_metadata ?? true;
|
|
133
|
+
// 1. Check RAM cache (fastest)
|
|
134
|
+
if (!forceRefresh && this.memoryCache) {
|
|
135
|
+
this.logger?.info('Cache hit (RAM)');
|
|
136
|
+
return {
|
|
137
|
+
playbook: this.memoryCache,
|
|
138
|
+
total_bullets: this.countBullets(this.memoryCache),
|
|
139
|
+
metadata: undefined
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
// 2. Check SQLite cache (if available and fresh)
|
|
143
|
+
if (!forceRefresh && this.localCache && !this.localCache.needsSync()) {
|
|
144
|
+
const cached = this.localCache.getPlaybook();
|
|
145
|
+
if (cached) {
|
|
146
|
+
this.memoryCache = cached;
|
|
147
|
+
this.logger?.info('Cache hit (SQLite)');
|
|
148
|
+
return {
|
|
149
|
+
playbook: cached,
|
|
150
|
+
total_bullets: this.countBullets(cached),
|
|
151
|
+
metadata: undefined
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// 3. Fetch from server
|
|
156
|
+
this.logger?.info('Fetching playbook from server...');
|
|
157
|
+
const result = await this.request(`/playbook?include_metadata=${include_metadata}`, 'GET');
|
|
158
|
+
const playbook = result.playbook || {
|
|
159
|
+
strategies_and_hard_rules: [],
|
|
160
|
+
useful_code_snippets: [],
|
|
161
|
+
troubleshooting_and_pitfalls: [],
|
|
162
|
+
apis_to_use: []
|
|
163
|
+
};
|
|
164
|
+
// Update caches
|
|
165
|
+
this.memoryCache = playbook;
|
|
166
|
+
if (this.localCache) {
|
|
167
|
+
this.localCache.savePlaybook(playbook);
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
playbook,
|
|
171
|
+
total_bullets: result.total_bullets || this.countBullets(playbook),
|
|
172
|
+
metadata: result.metadata
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Count total bullets across all playbook sections
|
|
177
|
+
*/
|
|
178
|
+
countBullets(playbook) {
|
|
179
|
+
return (playbook.strategies_and_hard_rules.length +
|
|
180
|
+
playbook.useful_code_snippets.length +
|
|
181
|
+
playbook.troubleshooting_and_pitfalls.length +
|
|
182
|
+
playbook.apis_to_use.length);
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* Compute embeddings for texts (with SQLite cache if available)
|
|
186
|
+
* Endpoint: POST /embeddings
|
|
187
|
+
*/
|
|
188
|
+
async computeEmbeddings(texts) {
|
|
189
|
+
if (texts.length === 0)
|
|
190
|
+
return [];
|
|
191
|
+
const embeddings = [];
|
|
192
|
+
const uncachedTexts = [];
|
|
193
|
+
const uncachedIndices = [];
|
|
194
|
+
// Check cache for each text
|
|
195
|
+
if (this.localCache) {
|
|
196
|
+
for (let i = 0; i < texts.length; i++) {
|
|
197
|
+
const cached = this.localCache.getEmbedding(texts[i]);
|
|
198
|
+
if (cached) {
|
|
199
|
+
embeddings[i] = cached;
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
uncachedTexts.push(texts[i]);
|
|
203
|
+
uncachedIndices.push(i);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
uncachedTexts.push(...texts);
|
|
209
|
+
uncachedIndices.push(...texts.map((_, i) => i));
|
|
210
|
+
}
|
|
211
|
+
// Compute uncached embeddings from server
|
|
212
|
+
if (uncachedTexts.length > 0) {
|
|
213
|
+
this.logger?.info(`Computing ${uncachedTexts.length} embeddings...`);
|
|
214
|
+
const result = await this.request('/embeddings', 'POST', { texts: uncachedTexts });
|
|
215
|
+
// Fill in results and cache them
|
|
216
|
+
for (let i = 0; i < result.embeddings.length; i++) {
|
|
217
|
+
const embedding = result.embeddings[i];
|
|
218
|
+
const originalIndex = uncachedIndices[i];
|
|
219
|
+
embeddings[originalIndex] = embedding;
|
|
220
|
+
if (this.localCache) {
|
|
221
|
+
this.localCache.cacheEmbedding(uncachedTexts[i], embedding);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
return embeddings;
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Semantic search for relevant patterns
|
|
229
|
+
* Endpoint: POST /patterns/search
|
|
230
|
+
*/
|
|
231
|
+
async searchPatterns(params) {
|
|
232
|
+
const { query, section, threshold, top_k, include_metadata = true } = params;
|
|
233
|
+
if (threshold === undefined) {
|
|
234
|
+
throw new Error('searchPatterns called without threshold');
|
|
235
|
+
}
|
|
236
|
+
const now = new Date().toISOString();
|
|
237
|
+
const tempId = `temp_search_${Date.now()}`;
|
|
238
|
+
const url = `/patterns/search?include_metadata=${include_metadata}`;
|
|
239
|
+
const body = {
|
|
240
|
+
pattern: {
|
|
241
|
+
id: tempId,
|
|
242
|
+
content: query,
|
|
243
|
+
confidence: 0.8,
|
|
244
|
+
created_at: now,
|
|
245
|
+
section: section || 'general'
|
|
246
|
+
},
|
|
247
|
+
threshold
|
|
248
|
+
};
|
|
249
|
+
if (top_k !== undefined) {
|
|
250
|
+
body.top_k = top_k;
|
|
251
|
+
}
|
|
252
|
+
const result = await this.request(url, 'POST', body);
|
|
253
|
+
return {
|
|
254
|
+
similar_patterns: result.similar_patterns || [],
|
|
255
|
+
count: result.count ?? (result.similar_patterns?.length || 0),
|
|
256
|
+
threshold: result.threshold ?? threshold,
|
|
257
|
+
top_k: result.top_k,
|
|
258
|
+
domains_summary: result.domains_summary,
|
|
259
|
+
metadata: result.metadata
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
/**
|
|
263
|
+
* Get top patterns by helpful score
|
|
264
|
+
* Endpoint: GET /patterns/top
|
|
265
|
+
*/
|
|
266
|
+
async getTopPatterns(params) {
|
|
267
|
+
const { section, limit = 10, min_helpful = 0 } = params;
|
|
268
|
+
const queryParams = new URLSearchParams();
|
|
269
|
+
if (section)
|
|
270
|
+
queryParams.append('section', section);
|
|
271
|
+
queryParams.append('limit', String(limit));
|
|
272
|
+
queryParams.append('min_helpful', String(min_helpful));
|
|
273
|
+
const result = await this.request(`/patterns/top?${queryParams.toString()}`, 'GET');
|
|
274
|
+
return result.top_patterns || [];
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Get playbook analytics
|
|
278
|
+
* Endpoint: GET /analytics
|
|
279
|
+
*/
|
|
280
|
+
async getAnalytics() {
|
|
281
|
+
return this.request('/analytics', 'GET');
|
|
282
|
+
}
|
|
283
|
+
/**
|
|
284
|
+
* Clear entire playbook
|
|
285
|
+
* Server endpoint: DELETE /patterns
|
|
286
|
+
*/
|
|
287
|
+
async clearPlaybook() {
|
|
288
|
+
await this.request('/patterns?confirm=true', 'DELETE');
|
|
289
|
+
this.invalidateCache();
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Apply delta operation (ADD/UPDATE/DELETE)
|
|
293
|
+
* Server endpoint: POST /delta
|
|
294
|
+
*/
|
|
295
|
+
async applyDelta(operation) {
|
|
296
|
+
await this.request('/delta', 'POST', operation);
|
|
297
|
+
this.invalidateCache();
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Apply multiple delta operations in batch
|
|
301
|
+
*/
|
|
302
|
+
async applyDeltas(operations) {
|
|
303
|
+
for (const operation of operations) {
|
|
304
|
+
await this.applyDelta(operation);
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Store execution trace for server-side analysis
|
|
309
|
+
* Server endpoint: POST /traces
|
|
310
|
+
*/
|
|
311
|
+
async storeExecutionTrace(trace) {
|
|
312
|
+
return this.request('/traces', 'POST', trace);
|
|
313
|
+
}
|
|
314
|
+
/**
|
|
315
|
+
* Bootstrap playbook from extracted code blocks
|
|
316
|
+
* Server endpoint: POST /bootstrap
|
|
317
|
+
*/
|
|
318
|
+
async bootstrap(params) {
|
|
319
|
+
return this.request('/bootstrap', 'POST', params);
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Initialize playbook from git repository (server-side)
|
|
323
|
+
* Server endpoint: POST /init
|
|
324
|
+
*/
|
|
325
|
+
async initializeFromRepo(params) {
|
|
326
|
+
return this.request('/init', 'POST', params);
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* Get playbook status/statistics
|
|
330
|
+
* Server endpoint: GET /analytics
|
|
331
|
+
*/
|
|
332
|
+
async getStatus() {
|
|
333
|
+
return this.getAnalytics();
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Invalidate caches (force refresh on next call)
|
|
337
|
+
*/
|
|
338
|
+
invalidateCache() {
|
|
339
|
+
this.memoryCache = undefined;
|
|
340
|
+
this.logger?.debug('Cache invalidated');
|
|
341
|
+
}
|
|
342
|
+
/**
|
|
343
|
+
* Get server configuration with caching (v3.6.0+)
|
|
344
|
+
* Server endpoint: GET /api/v1/config
|
|
345
|
+
*/
|
|
346
|
+
async getConfig(useCache = true) {
|
|
347
|
+
if (useCache) {
|
|
348
|
+
const now = Date.now();
|
|
349
|
+
const isValid = this.configCache.data &&
|
|
350
|
+
(now - this.configCache.timestamp) < this.CONFIG_CACHE_TTL;
|
|
351
|
+
if (isValid) {
|
|
352
|
+
this.logger?.debug('Config cache hit (RAM)');
|
|
353
|
+
return this.configCache.data;
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
this.logger?.info('Fetching config from server...');
|
|
357
|
+
const config = await this.request('/api/v1/config', 'GET');
|
|
358
|
+
this.configCache = {
|
|
359
|
+
data: config,
|
|
360
|
+
timestamp: Date.now()
|
|
361
|
+
};
|
|
362
|
+
return config;
|
|
363
|
+
}
|
|
364
|
+
/**
|
|
365
|
+
* Verify API token and fetch organization info
|
|
366
|
+
* Server endpoint: GET /api/v1/config/verify
|
|
367
|
+
*/
|
|
368
|
+
async verifyToken() {
|
|
369
|
+
return this.request('/api/v1/config/verify', 'GET');
|
|
370
|
+
}
|
|
371
|
+
/**
|
|
372
|
+
* Batch retrieve patterns by ID (v3.6.0+)
|
|
373
|
+
* Server endpoint: POST /patterns/batch
|
|
374
|
+
*/
|
|
375
|
+
async batchGetPatterns(patternIds) {
|
|
376
|
+
if (patternIds.length === 0) {
|
|
377
|
+
return { patterns: [], found_count: 0, not_found: [] };
|
|
378
|
+
}
|
|
379
|
+
const MAX_BATCH = 50;
|
|
380
|
+
const chunks = [];
|
|
381
|
+
for (let i = 0; i < patternIds.length; i += MAX_BATCH) {
|
|
382
|
+
chunks.push(patternIds.slice(i, i + MAX_BATCH));
|
|
383
|
+
}
|
|
384
|
+
this.logger?.info(`Batch fetching ${patternIds.length} patterns in ${chunks.length} chunk(s)...`);
|
|
385
|
+
const results = await Promise.all(chunks.map(chunk => this.request('/patterns/batch', 'POST', { pattern_ids: chunk })));
|
|
386
|
+
const allPatterns = results.flatMap(r => r.patterns || []);
|
|
387
|
+
const totalFound = results.reduce((sum, r) => sum + (r.found_count || 0), 0);
|
|
388
|
+
const allNotFound = results.flatMap(r => r.not_found || []);
|
|
389
|
+
return {
|
|
390
|
+
patterns: allPatterns,
|
|
391
|
+
found_count: totalFound,
|
|
392
|
+
not_found: allNotFound
|
|
393
|
+
};
|
|
394
|
+
}
|
|
395
|
+
/**
|
|
396
|
+
* Summarize a recorded session
|
|
397
|
+
* Server endpoint: POST /api/v1/summarize
|
|
398
|
+
*/
|
|
399
|
+
async summarizeSession(sessionData) {
|
|
400
|
+
return this.request('/api/v1/summarize', 'POST', { session: sessionData });
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* Clear config cache
|
|
404
|
+
*/
|
|
405
|
+
clearConfigCache() {
|
|
406
|
+
this.configCache = { data: null, timestamp: 0 };
|
|
407
|
+
this.logger?.debug('Config cache cleared');
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* Get local cache instance
|
|
411
|
+
*/
|
|
412
|
+
getLocalCache() {
|
|
413
|
+
return this.localCache;
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Update server configuration (v3.6.0+)
|
|
417
|
+
* Server endpoint: PUT /api/v1/config?scope=project
|
|
418
|
+
*/
|
|
419
|
+
async updateConfig(settings, scope = 'project') {
|
|
420
|
+
try {
|
|
421
|
+
this.logger?.debug(`Updating config (scope=${scope})`);
|
|
422
|
+
const config = await this.request(`/api/v1/config?scope=${scope}`, 'PUT', settings);
|
|
423
|
+
this.configCache = { data: null, timestamp: 0 };
|
|
424
|
+
this.logger?.debug('Config updated successfully');
|
|
425
|
+
return config;
|
|
426
|
+
}
|
|
427
|
+
catch (error) {
|
|
428
|
+
if (error.message?.includes('404') || error.message?.includes('501')) {
|
|
429
|
+
throw new Error('This ACE Server does not support configuration updates. Please upgrade to ACE Server v3.6.0+');
|
|
430
|
+
}
|
|
431
|
+
throw error;
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* Reset server configuration to defaults (v3.9.0+)
|
|
436
|
+
* Server endpoint: POST /api/v1/config/reset?scope=project
|
|
437
|
+
*/
|
|
438
|
+
async resetConfig(scope = 'project') {
|
|
439
|
+
try {
|
|
440
|
+
this.logger?.debug(`Resetting config (scope=${scope})`);
|
|
441
|
+
const result = await this.request(`/api/v1/config/reset?scope=${scope}`, 'POST');
|
|
442
|
+
this.configCache = { data: null, timestamp: 0 };
|
|
443
|
+
this.logger?.debug('Config reset successfully');
|
|
444
|
+
return result;
|
|
445
|
+
}
|
|
446
|
+
catch (error) {
|
|
447
|
+
if (error.message?.includes('404') || error.message?.includes('501')) {
|
|
448
|
+
throw new Error('This ACE Server does not support configuration reset. Please upgrade to ACE Server v3.9.0+');
|
|
449
|
+
}
|
|
450
|
+
throw error;
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
}
|
|
454
|
+
//# sourceMappingURL=ace-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ace-client.js","sourceRoot":"","sources":["../../src/client/ace-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Context Creation and Resolution
|
|
3
|
+
* @package @ace-sdk/core
|
|
4
|
+
*/
|
|
5
|
+
import type { AceContext, ServerConfig, ResolvedContext, ResolveContextOptions } from '../types/config.js';
|
|
6
|
+
import { ConfigOverrides } from './loader.js';
|
|
7
|
+
import { ILogger } from '../logger/index.js';
|
|
8
|
+
/**
|
|
9
|
+
* Resolves org and project context using 3-tier precedence:
|
|
10
|
+
*
|
|
11
|
+
* 1. CLI flags (--org, --project) - HIGHEST PRIORITY
|
|
12
|
+
* 2. Environment variables (ACE_ORG_ID, ACE_PROJECT_ID)
|
|
13
|
+
* 3. Error - NO CONTEXT FOUND
|
|
14
|
+
*
|
|
15
|
+
* Note: .claude/settings.json is NOT read by this function. That's Claude Code's job.
|
|
16
|
+
* Claude Code reads .claude/settings.json and sets ACE_ORG_ID/ACE_PROJECT_ID as ENV vars.
|
|
17
|
+
*
|
|
18
|
+
* @param options - CLI flags and working directory
|
|
19
|
+
* @returns Resolved org and project IDs with source
|
|
20
|
+
* @throws Error if no context can be resolved
|
|
21
|
+
*/
|
|
22
|
+
export declare function resolveContext(options?: ResolveContextOptions): ResolvedContext;
|
|
23
|
+
/**
|
|
24
|
+
* Validates that an org ID matches the expected format
|
|
25
|
+
*/
|
|
26
|
+
export declare function isValidOrgId(orgId: string): boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Validates that a project ID matches the expected format
|
|
29
|
+
*/
|
|
30
|
+
export declare function isValidProjectId(projectId: string): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Create AceContext from CLI flags, environment, and config files
|
|
33
|
+
*
|
|
34
|
+
* This function implements the complete context resolution flow:
|
|
35
|
+
* 1. Resolve org/project using 4-tier precedence (flags > env > .claude/settings.json > error)
|
|
36
|
+
* 2. Load global config to get server URL and tokens
|
|
37
|
+
* 3. Get the correct token for the resolved organization
|
|
38
|
+
* 4. Merge with server-derived runtime settings
|
|
39
|
+
*
|
|
40
|
+
* @param options - CLI flags for org/project override
|
|
41
|
+
* @param serverConfig - Optional server configuration (fetched via ACEServerClient.getConfig())
|
|
42
|
+
* @param configOverrides - Optional config overrides
|
|
43
|
+
* @param logger - Optional logger
|
|
44
|
+
* @returns Complete runtime context with merged settings
|
|
45
|
+
* @throws Error if context cannot be resolved
|
|
46
|
+
*/
|
|
47
|
+
export declare function createContext(options?: ResolveContextOptions, serverConfig?: ServerConfig, configOverrides?: ConfigOverrides, logger?: ILogger): Promise<AceContext>;
|
|
48
|
+
//# sourceMappingURL=context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/config/context.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,UAAU,EAEV,YAAY,EACZ,eAAe,EACf,qBAAqB,EACtB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAc,eAAe,EAAE,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAS7C;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,OAAO,GAAE,qBAA0B,GAAG,eAAe,CA8DnF;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,aAAa,CACjC,OAAO,GAAE,qBAA0B,EACnC,YAAY,CAAC,EAAE,YAAY,EAC3B,eAAe,CAAC,EAAE,eAAe,EACjC,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,UAAU,CAAC,CAkCrB"}
|