universal-agent-memory 0.4.1 → 0.5.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/dist/bin/cli.js +0 -0
- package/dist/coordination/capability-router.d.ts +79 -0
- package/dist/coordination/capability-router.d.ts.map +1 -0
- package/dist/coordination/capability-router.js +324 -0
- package/dist/coordination/capability-router.js.map +1 -0
- package/dist/coordination/deploy-batcher.d.ts +64 -1
- package/dist/coordination/deploy-batcher.d.ts.map +1 -1
- package/dist/coordination/deploy-batcher.js +203 -39
- package/dist/coordination/deploy-batcher.js.map +1 -1
- package/dist/coordination/index.d.ts +1 -0
- package/dist/coordination/index.d.ts.map +1 -1
- package/dist/coordination/index.js +1 -0
- package/dist/coordination/index.js.map +1 -1
- package/dist/generators/template-loader.d.ts +105 -0
- package/dist/generators/template-loader.d.ts.map +1 -0
- package/dist/generators/template-loader.js +291 -0
- package/dist/generators/template-loader.js.map +1 -0
- package/dist/memory/serverless-qdrant.d.ts +102 -0
- package/dist/memory/serverless-qdrant.d.ts.map +1 -0
- package/dist/memory/serverless-qdrant.js +369 -0
- package/dist/memory/serverless-qdrant.js.map +1 -0
- package/dist/types/config.d.ts +1220 -15
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +92 -1
- package/dist/types/config.js.map +1 -1
- package/dist/types/coordination.d.ts +4 -4
- package/package.json +1 -1
- package/templates/CLAUDE.template.md +310 -822
|
@@ -1,22 +1,78 @@
|
|
|
1
1
|
import { randomUUID } from 'crypto';
|
|
2
2
|
import { CoordinationDatabase, getDefaultCoordinationDbPath } from './database.js';
|
|
3
3
|
import { execSync } from 'child_process';
|
|
4
|
+
const DEFAULT_DYNAMIC_WINDOWS = {
|
|
5
|
+
commit: 30000, // 30s - allows squashing multiple commits
|
|
6
|
+
push: 5000, // 5s - fast for PR creation
|
|
7
|
+
merge: 10000, // 10s - moderate safety
|
|
8
|
+
workflow: 5000, // 5s - fast workflow triggers
|
|
9
|
+
deploy: 60000, // 60s - safety buffer for deployments
|
|
10
|
+
};
|
|
4
11
|
export class DeployBatcher {
|
|
5
12
|
db;
|
|
6
|
-
|
|
13
|
+
dynamicWindows;
|
|
7
14
|
maxBatchSize;
|
|
8
15
|
dryRun;
|
|
16
|
+
parallelExecution;
|
|
17
|
+
maxParallelActions;
|
|
9
18
|
constructor(config = {}) {
|
|
10
19
|
const dbPath = config.dbPath || getDefaultCoordinationDbPath();
|
|
11
20
|
this.db = CoordinationDatabase.getInstance(dbPath).getDatabase();
|
|
12
|
-
|
|
21
|
+
// Support both legacy single window and new dynamic windows
|
|
22
|
+
if (config.dynamicWindows) {
|
|
23
|
+
this.dynamicWindows = { ...DEFAULT_DYNAMIC_WINDOWS, ...config.dynamicWindows };
|
|
24
|
+
}
|
|
25
|
+
else if (config.batchWindowMs) {
|
|
26
|
+
// Legacy mode: use single window for all types
|
|
27
|
+
this.dynamicWindows = {
|
|
28
|
+
commit: config.batchWindowMs,
|
|
29
|
+
push: config.batchWindowMs,
|
|
30
|
+
merge: config.batchWindowMs,
|
|
31
|
+
workflow: config.batchWindowMs,
|
|
32
|
+
deploy: config.batchWindowMs,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
this.dynamicWindows = DEFAULT_DYNAMIC_WINDOWS;
|
|
37
|
+
}
|
|
13
38
|
this.maxBatchSize = config.maxBatchSize || 20;
|
|
14
39
|
this.dryRun = config.dryRun || false;
|
|
40
|
+
this.parallelExecution = config.parallelExecution ?? true;
|
|
41
|
+
this.maxParallelActions = config.maxParallelActions || 5;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get the batch window for a specific action type.
|
|
45
|
+
*/
|
|
46
|
+
getBatchWindow(actionType) {
|
|
47
|
+
return this.dynamicWindows[actionType] || DEFAULT_DYNAMIC_WINDOWS.commit;
|
|
15
48
|
}
|
|
16
|
-
|
|
49
|
+
/**
|
|
50
|
+
* Update batch windows dynamically (useful for urgent operations).
|
|
51
|
+
*/
|
|
52
|
+
setUrgentMode(urgent) {
|
|
53
|
+
if (urgent) {
|
|
54
|
+
// Reduce all windows to minimum for urgent operations
|
|
55
|
+
this.dynamicWindows = {
|
|
56
|
+
commit: 2000,
|
|
57
|
+
push: 1000,
|
|
58
|
+
merge: 2000,
|
|
59
|
+
workflow: 1000,
|
|
60
|
+
deploy: 5000,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
// Restore defaults
|
|
65
|
+
this.dynamicWindows = { ...DEFAULT_DYNAMIC_WINDOWS };
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Queue a deploy action with type-specific batching delay.
|
|
70
|
+
*/
|
|
17
71
|
async queue(agentId, actionType, target, payload, options = {}) {
|
|
18
72
|
const now = new Date().toISOString();
|
|
19
|
-
|
|
73
|
+
// Use type-specific window, or immediate for urgent
|
|
74
|
+
const windowMs = options.urgent ? 1000 : this.getBatchWindow(actionType);
|
|
75
|
+
const executeAfter = new Date(Date.now() + windowMs).toISOString();
|
|
20
76
|
// Check for similar pending action to merge
|
|
21
77
|
const existing = this.findSimilarAction(actionType, target);
|
|
22
78
|
if (existing && this.canMerge(existing, { actionType, target, payload })) {
|
|
@@ -30,6 +86,36 @@ export class DeployBatcher {
|
|
|
30
86
|
const result = stmt.run(agentId, actionType, target, payload ? JSON.stringify(payload) : null, now, executeAfter, options.priority || 5, options.dependencies ? JSON.stringify(options.dependencies) : null);
|
|
31
87
|
return result.lastInsertRowid;
|
|
32
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Queue multiple actions atomically with optimized windows.
|
|
91
|
+
*/
|
|
92
|
+
async queueBulk(agentId, actions) {
|
|
93
|
+
const ids = [];
|
|
94
|
+
const transaction = this.db.transaction(() => {
|
|
95
|
+
for (const action of actions) {
|
|
96
|
+
const id = this.queueSync(agentId, action.actionType, action.target, action.payload, {
|
|
97
|
+
priority: action.priority,
|
|
98
|
+
});
|
|
99
|
+
ids.push(id);
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
transaction();
|
|
103
|
+
return ids;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Synchronous queue for use in transactions.
|
|
107
|
+
*/
|
|
108
|
+
queueSync(agentId, actionType, target, payload, options = {}) {
|
|
109
|
+
const now = new Date().toISOString();
|
|
110
|
+
const windowMs = this.getBatchWindow(actionType);
|
|
111
|
+
const executeAfter = new Date(Date.now() + windowMs).toISOString();
|
|
112
|
+
const stmt = this.db.prepare(`
|
|
113
|
+
INSERT INTO deploy_queue (agent_id, action_type, target, payload, status, queued_at, execute_after, priority, dependencies)
|
|
114
|
+
VALUES (?, ?, ?, ?, 'pending', ?, ?, ?, ?)
|
|
115
|
+
`);
|
|
116
|
+
const result = stmt.run(agentId, actionType, target, payload ? JSON.stringify(payload) : null, now, executeAfter, options.priority || 5, options.dependencies ? JSON.stringify(options.dependencies) : null);
|
|
117
|
+
return result.lastInsertRowid;
|
|
118
|
+
}
|
|
33
119
|
findSimilarAction(actionType, target) {
|
|
34
120
|
const stmt = this.db.prepare(`
|
|
35
121
|
SELECT id, agent_id as agentId, action_type as actionType, target, payload,
|
|
@@ -50,7 +136,6 @@ export class DeployBatcher {
|
|
|
50
136
|
};
|
|
51
137
|
}
|
|
52
138
|
canMerge(existing, incoming) {
|
|
53
|
-
// Only merge same action types on same target
|
|
54
139
|
if (existing.actionType !== incoming.actionType || existing.target !== incoming.target) {
|
|
55
140
|
return false;
|
|
56
141
|
}
|
|
@@ -78,7 +163,6 @@ export class DeployBatcher {
|
|
|
78
163
|
if (!row)
|
|
79
164
|
return;
|
|
80
165
|
const existingPayload = row.payload ? JSON.parse(row.payload) : {};
|
|
81
|
-
// Merge payloads (new values override, arrays are concatenated)
|
|
82
166
|
const merged = this.mergePayloads(existingPayload, newPayload);
|
|
83
167
|
const updateStmt = this.db.prepare(`
|
|
84
168
|
UPDATE deploy_queue SET payload = ? WHERE id = ?
|
|
@@ -92,7 +176,6 @@ export class DeployBatcher {
|
|
|
92
176
|
result[key] = [...result[key], ...value];
|
|
93
177
|
}
|
|
94
178
|
else if (key === 'messages' && Array.isArray(value)) {
|
|
95
|
-
// Special case: concatenate commit messages
|
|
96
179
|
result[key] = [...(result[key] || []), ...value];
|
|
97
180
|
}
|
|
98
181
|
else {
|
|
@@ -101,10 +184,11 @@ export class DeployBatcher {
|
|
|
101
184
|
}
|
|
102
185
|
return result;
|
|
103
186
|
}
|
|
104
|
-
|
|
187
|
+
/**
|
|
188
|
+
* Create a batch from ready actions.
|
|
189
|
+
*/
|
|
105
190
|
async createBatch() {
|
|
106
191
|
const now = new Date().toISOString();
|
|
107
|
-
// Get actions ready for execution (past their delay)
|
|
108
192
|
const stmt = this.db.prepare(`
|
|
109
193
|
SELECT id, agent_id as agentId, action_type as actionType, target, payload,
|
|
110
194
|
status, batch_id as batchId, queued_at as queuedAt,
|
|
@@ -122,13 +206,9 @@ export class DeployBatcher {
|
|
|
122
206
|
payload: row.payload ? JSON.parse(row.payload) : undefined,
|
|
123
207
|
dependencies: row.dependencies ? JSON.parse(row.dependencies) : undefined,
|
|
124
208
|
}));
|
|
125
|
-
// Group by target
|
|
126
209
|
const grouped = this.groupByTarget(actions);
|
|
127
|
-
// Squash compatible actions within each group
|
|
128
210
|
const squashed = this.squashActions(grouped);
|
|
129
|
-
// Create batch
|
|
130
211
|
const batchId = randomUUID();
|
|
131
|
-
// Mark actions as batched
|
|
132
212
|
const updateStmt = this.db.prepare(`
|
|
133
213
|
UPDATE deploy_queue SET status = 'batched', batch_id = ? WHERE id = ?
|
|
134
214
|
`);
|
|
@@ -136,7 +216,6 @@ export class DeployBatcher {
|
|
|
136
216
|
for (const action of actions) {
|
|
137
217
|
updateStmt.run(batchId, action.id);
|
|
138
218
|
}
|
|
139
|
-
// Record batch
|
|
140
219
|
this.db.prepare(`
|
|
141
220
|
INSERT INTO deploy_batches (id, created_at, status)
|
|
142
221
|
VALUES (?, ?, 'pending')
|
|
@@ -170,23 +249,19 @@ export class DeployBatcher {
|
|
|
170
249
|
continue;
|
|
171
250
|
}
|
|
172
251
|
const first = actions[0];
|
|
173
|
-
// Squash commits
|
|
174
252
|
if (first.actionType === 'commit') {
|
|
175
253
|
const squashed = this.squashCommits(actions);
|
|
176
254
|
result.push(squashed);
|
|
177
255
|
continue;
|
|
178
256
|
}
|
|
179
|
-
// Deduplicate pushes (just keep one)
|
|
180
257
|
if (first.actionType === 'push') {
|
|
181
258
|
result.push(first);
|
|
182
259
|
continue;
|
|
183
260
|
}
|
|
184
|
-
// Deduplicate workflow triggers
|
|
185
261
|
if (first.actionType === 'workflow') {
|
|
186
262
|
result.push(first);
|
|
187
263
|
continue;
|
|
188
264
|
}
|
|
189
|
-
// For other types, keep all
|
|
190
265
|
result.push(...actions);
|
|
191
266
|
}
|
|
192
267
|
return result;
|
|
@@ -203,7 +278,6 @@ export class DeployBatcher {
|
|
|
203
278
|
allFiles.push(...payload.files);
|
|
204
279
|
}
|
|
205
280
|
}
|
|
206
|
-
// Create squashed commit message
|
|
207
281
|
const squashedMessage = messages.length === 1
|
|
208
282
|
? messages[0]
|
|
209
283
|
: `Squashed ${messages.length} commits:\n\n${messages.map((m, i) => `${i + 1}. ${m}`).join('\n')}`;
|
|
@@ -211,18 +285,19 @@ export class DeployBatcher {
|
|
|
211
285
|
...commits[0],
|
|
212
286
|
payload: {
|
|
213
287
|
message: squashedMessage,
|
|
214
|
-
files: [...new Set(allFiles)],
|
|
288
|
+
files: [...new Set(allFiles)],
|
|
215
289
|
squashedFrom: commits.map((c) => c.id),
|
|
216
290
|
},
|
|
217
291
|
};
|
|
218
292
|
}
|
|
219
|
-
|
|
293
|
+
/**
|
|
294
|
+
* Execute a batch with optional parallel execution for independent actions.
|
|
295
|
+
*/
|
|
220
296
|
async executeBatch(batchId) {
|
|
221
297
|
const startTime = Date.now();
|
|
222
298
|
const errors = [];
|
|
223
299
|
let executed = 0;
|
|
224
300
|
let failed = 0;
|
|
225
|
-
// Get batch actions
|
|
226
301
|
const stmt = this.db.prepare(`
|
|
227
302
|
SELECT id, agent_id as agentId, action_type as actionType, target, payload,
|
|
228
303
|
status, batch_id as batchId, queued_at as queuedAt,
|
|
@@ -237,25 +312,57 @@ export class DeployBatcher {
|
|
|
237
312
|
payload: row.payload ? JSON.parse(row.payload) : undefined,
|
|
238
313
|
dependencies: row.dependencies ? JSON.parse(row.dependencies) : undefined,
|
|
239
314
|
}));
|
|
240
|
-
// Mark batch as executing
|
|
241
315
|
this.db.prepare(`
|
|
242
316
|
UPDATE deploy_batches SET status = 'executing', executed_at = ? WHERE id = ?
|
|
243
317
|
`).run(new Date().toISOString(), batchId);
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
318
|
+
if (this.parallelExecution) {
|
|
319
|
+
// Group independent actions for parallel execution
|
|
320
|
+
const { sequential, parallel } = this.categorizeActions(actions);
|
|
321
|
+
// Execute parallel-safe actions concurrently
|
|
322
|
+
if (parallel.length > 0) {
|
|
323
|
+
const parallelResults = await this.executeParallel(parallel);
|
|
324
|
+
for (const result of parallelResults) {
|
|
325
|
+
if (result.success) {
|
|
326
|
+
executed++;
|
|
327
|
+
}
|
|
328
|
+
else {
|
|
329
|
+
failed++;
|
|
330
|
+
if (result.error)
|
|
331
|
+
errors.push(result.error);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
250
334
|
}
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
335
|
+
// Execute sequential actions in order
|
|
336
|
+
for (const action of sequential) {
|
|
337
|
+
try {
|
|
338
|
+
await this.executeAction(action);
|
|
339
|
+
this.updateActionStatus(action.id, 'completed');
|
|
340
|
+
executed++;
|
|
341
|
+
}
|
|
342
|
+
catch (error) {
|
|
343
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
344
|
+
errors.push(`Action ${action.id} (${action.actionType}): ${errorMsg}`);
|
|
345
|
+
this.updateActionStatus(action.id, 'failed');
|
|
346
|
+
failed++;
|
|
347
|
+
}
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
else {
|
|
351
|
+
// Original sequential execution
|
|
352
|
+
for (const action of actions) {
|
|
353
|
+
try {
|
|
354
|
+
await this.executeAction(action);
|
|
355
|
+
this.updateActionStatus(action.id, 'completed');
|
|
356
|
+
executed++;
|
|
357
|
+
}
|
|
358
|
+
catch (error) {
|
|
359
|
+
const errorMsg = error instanceof Error ? error.message : String(error);
|
|
360
|
+
errors.push(`Action ${action.id} (${action.actionType}): ${errorMsg}`);
|
|
361
|
+
this.updateActionStatus(action.id, 'failed');
|
|
362
|
+
failed++;
|
|
363
|
+
}
|
|
256
364
|
}
|
|
257
365
|
}
|
|
258
|
-
// Update batch status
|
|
259
366
|
const batchStatus = failed === 0 ? 'completed' : (executed > 0 ? 'completed' : 'failed');
|
|
260
367
|
this.db.prepare(`
|
|
261
368
|
UPDATE deploy_batches SET status = ?, result = ? WHERE id = ?
|
|
@@ -269,6 +376,58 @@ export class DeployBatcher {
|
|
|
269
376
|
duration: Date.now() - startTime,
|
|
270
377
|
};
|
|
271
378
|
}
|
|
379
|
+
/**
|
|
380
|
+
* Categorize actions into parallel-safe and sequential groups.
|
|
381
|
+
*/
|
|
382
|
+
categorizeActions(actions) {
|
|
383
|
+
const sequential = [];
|
|
384
|
+
const parallel = [];
|
|
385
|
+
// Actions that can run in parallel (no state dependencies)
|
|
386
|
+
const parallelSafeTypes = ['workflow'];
|
|
387
|
+
// Actions that must be sequential (state-dependent)
|
|
388
|
+
const sequentialTypes = ['commit', 'push', 'merge', 'deploy'];
|
|
389
|
+
for (const action of actions) {
|
|
390
|
+
if (parallelSafeTypes.includes(action.actionType)) {
|
|
391
|
+
parallel.push(action);
|
|
392
|
+
}
|
|
393
|
+
else if (sequentialTypes.includes(action.actionType)) {
|
|
394
|
+
sequential.push(action);
|
|
395
|
+
}
|
|
396
|
+
else {
|
|
397
|
+
// Unknown types go sequential for safety
|
|
398
|
+
sequential.push(action);
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
return { sequential, parallel };
|
|
402
|
+
}
|
|
403
|
+
/**
|
|
404
|
+
* Execute actions in parallel with concurrency limit.
|
|
405
|
+
*/
|
|
406
|
+
async executeParallel(actions) {
|
|
407
|
+
const results = [];
|
|
408
|
+
// Process in chunks to respect maxParallelActions
|
|
409
|
+
for (let i = 0; i < actions.length; i += this.maxParallelActions) {
|
|
410
|
+
const chunk = actions.slice(i, i + this.maxParallelActions);
|
|
411
|
+
const chunkResults = await Promise.allSettled(chunk.map(async (action) => {
|
|
412
|
+
await this.executeAction(action);
|
|
413
|
+
return action;
|
|
414
|
+
}));
|
|
415
|
+
for (let j = 0; j < chunkResults.length; j++) {
|
|
416
|
+
const result = chunkResults[j];
|
|
417
|
+
const action = chunk[j];
|
|
418
|
+
if (result.status === 'fulfilled') {
|
|
419
|
+
this.updateActionStatus(action.id, 'completed');
|
|
420
|
+
results.push({ action, success: true });
|
|
421
|
+
}
|
|
422
|
+
else {
|
|
423
|
+
const errorMsg = result.reason instanceof Error ? result.reason.message : String(result.reason);
|
|
424
|
+
this.updateActionStatus(action.id, 'failed');
|
|
425
|
+
results.push({ action, success: false, error: `Action ${action.id} (${action.actionType}): ${errorMsg}` });
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
return results;
|
|
430
|
+
}
|
|
272
431
|
async executeAction(action) {
|
|
273
432
|
if (this.dryRun) {
|
|
274
433
|
console.log(`[DRY RUN] Would execute: ${action.actionType} on ${action.target}`);
|
|
@@ -345,7 +504,6 @@ export class DeployBatcher {
|
|
|
345
504
|
`);
|
|
346
505
|
stmt.run(status, actionId);
|
|
347
506
|
}
|
|
348
|
-
// Get batch status
|
|
349
507
|
getBatch(batchId) {
|
|
350
508
|
const batchStmt = this.db.prepare(`
|
|
351
509
|
SELECT id, created_at as createdAt, executed_at as executedAt, status, result
|
|
@@ -375,7 +533,6 @@ export class DeployBatcher {
|
|
|
375
533
|
status: batchRow.status,
|
|
376
534
|
};
|
|
377
535
|
}
|
|
378
|
-
// Get all pending batches
|
|
379
536
|
getPendingBatches() {
|
|
380
537
|
const stmt = this.db.prepare(`
|
|
381
538
|
SELECT id FROM deploy_batches WHERE status = 'pending'
|
|
@@ -385,10 +542,11 @@ export class DeployBatcher {
|
|
|
385
542
|
.map((row) => this.getBatch(row.id))
|
|
386
543
|
.filter((b) => b !== null);
|
|
387
544
|
}
|
|
388
|
-
|
|
545
|
+
/**
|
|
546
|
+
* Force flush all pending deploys immediately.
|
|
547
|
+
*/
|
|
389
548
|
async flushAll() {
|
|
390
549
|
const results = [];
|
|
391
|
-
// First, create batches from all pending
|
|
392
550
|
let batch = await this.createBatch();
|
|
393
551
|
while (batch) {
|
|
394
552
|
const result = await this.executeBatch(batch.id);
|
|
@@ -397,5 +555,11 @@ export class DeployBatcher {
|
|
|
397
555
|
}
|
|
398
556
|
return results;
|
|
399
557
|
}
|
|
558
|
+
/**
|
|
559
|
+
* Get current batch window configuration.
|
|
560
|
+
*/
|
|
561
|
+
getWindowConfig() {
|
|
562
|
+
return { ...this.dynamicWindows };
|
|
563
|
+
}
|
|
400
564
|
}
|
|
401
565
|
//# sourceMappingURL=deploy-batcher.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-batcher.js","sourceRoot":"","sources":["../../src/coordination/deploy-batcher.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deploy-batcher.js","sourceRoot":"","sources":["../../src/coordination/deploy-batcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/coordination/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/coordination/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/coordination/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/coordination/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import Handlebars from 'handlebars';
|
|
2
|
+
import type { ProjectAnalysis } from '../types/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* Template section identifiers for lazy loading.
|
|
5
|
+
*/
|
|
6
|
+
export type TemplateSection = 'header' | 'directives' | 'session-start' | 'coordination' | 'decision-loop' | 'memory-system' | 'worktree' | 'parallel-review' | 'triggers' | 'repository' | 'architecture' | 'components' | 'auth' | 'quick-reference' | 'skills-droids' | 'infrastructure' | 'testing' | 'troubleshooting' | 'config-files' | 'checklist' | 'knowledge' | 'footer';
|
|
7
|
+
/**
|
|
8
|
+
* Section metadata for conditional loading.
|
|
9
|
+
*/
|
|
10
|
+
export interface SectionMetadata {
|
|
11
|
+
id: TemplateSection;
|
|
12
|
+
file: string;
|
|
13
|
+
required: boolean;
|
|
14
|
+
dependencies?: TemplateSection[];
|
|
15
|
+
condition?: (analysis: ProjectAnalysis) => boolean;
|
|
16
|
+
tokenEstimate: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Default section definitions.
|
|
20
|
+
*/
|
|
21
|
+
export declare const DEFAULT_SECTIONS: SectionMetadata[];
|
|
22
|
+
/**
|
|
23
|
+
* Template loading configuration.
|
|
24
|
+
*/
|
|
25
|
+
export interface TemplateLoaderConfig {
|
|
26
|
+
sectionsDir?: string;
|
|
27
|
+
maxTokens?: number;
|
|
28
|
+
includeSections?: TemplateSection[];
|
|
29
|
+
excludeSections?: TemplateSection[];
|
|
30
|
+
forceInclude?: TemplateSection[];
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Modular template loader with lazy-loading support.
|
|
34
|
+
*/
|
|
35
|
+
export declare class TemplateLoader {
|
|
36
|
+
private sectionsDir;
|
|
37
|
+
private maxTokens;
|
|
38
|
+
private sections;
|
|
39
|
+
private compiledSections;
|
|
40
|
+
private analysis;
|
|
41
|
+
constructor(config?: TemplateLoaderConfig);
|
|
42
|
+
/**
|
|
43
|
+
* Find the sections directory.
|
|
44
|
+
*/
|
|
45
|
+
private findSectionsDir;
|
|
46
|
+
/**
|
|
47
|
+
* Register Handlebars helpers.
|
|
48
|
+
*/
|
|
49
|
+
private registerHelpers;
|
|
50
|
+
/**
|
|
51
|
+
* Set the project analysis for conditional loading.
|
|
52
|
+
*/
|
|
53
|
+
setAnalysis(analysis: ProjectAnalysis): void;
|
|
54
|
+
/**
|
|
55
|
+
* Check if a section should be included based on conditions.
|
|
56
|
+
*/
|
|
57
|
+
private shouldIncludeSection;
|
|
58
|
+
/**
|
|
59
|
+
* Get sections that should be included.
|
|
60
|
+
*/
|
|
61
|
+
getIncludedSections(): SectionMetadata[];
|
|
62
|
+
/**
|
|
63
|
+
* Estimate total tokens for included sections.
|
|
64
|
+
*/
|
|
65
|
+
estimateTotalTokens(): number;
|
|
66
|
+
/**
|
|
67
|
+
* Get remaining token budget.
|
|
68
|
+
*/
|
|
69
|
+
getRemainingTokenBudget(): number;
|
|
70
|
+
/**
|
|
71
|
+
* Load and compile a section template.
|
|
72
|
+
*/
|
|
73
|
+
loadSection(sectionId: TemplateSection): Handlebars.TemplateDelegate | null;
|
|
74
|
+
/**
|
|
75
|
+
* Load all sections and assemble the full template.
|
|
76
|
+
*/
|
|
77
|
+
loadFullTemplate(): string;
|
|
78
|
+
/**
|
|
79
|
+
* Check if section files exist.
|
|
80
|
+
*/
|
|
81
|
+
private hasSectionFiles;
|
|
82
|
+
/**
|
|
83
|
+
* Load the monolithic template as fallback.
|
|
84
|
+
*/
|
|
85
|
+
private loadMonolithicTemplate;
|
|
86
|
+
/**
|
|
87
|
+
* Compile the full template with context.
|
|
88
|
+
*/
|
|
89
|
+
compile(context: Record<string, unknown>): string;
|
|
90
|
+
/**
|
|
91
|
+
* Get a summary of what will be included.
|
|
92
|
+
*/
|
|
93
|
+
getSummary(): {
|
|
94
|
+
includedSections: string[];
|
|
95
|
+
excludedSections: string[];
|
|
96
|
+
estimatedTokens: number;
|
|
97
|
+
withinBudget: boolean;
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Create section template files from the monolithic template.
|
|
102
|
+
* This is a one-time migration utility.
|
|
103
|
+
*/
|
|
104
|
+
export declare function splitTemplateIntoSections(templatePath: string, outputDir: string): Promise<void>;
|
|
105
|
+
//# sourceMappingURL=template-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"template-loader.d.ts","sourceRoot":"","sources":["../../src/generators/template-loader.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAIpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKzD;;GAEG;AACH,MAAM,MAAM,eAAe,GACvB,QAAQ,GACR,YAAY,GACZ,eAAe,GACf,cAAc,GACd,eAAe,GACf,eAAe,GACf,UAAU,GACV,iBAAiB,GACjB,UAAU,GACV,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,MAAM,GACN,iBAAiB,GACjB,eAAe,GACf,gBAAgB,GAChB,SAAS,GACT,iBAAiB,GACjB,cAAc,GACd,WAAW,GACX,WAAW,GACX,QAAQ,CAAC;AAEb;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,eAAe,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;IACjC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,eAAe,KAAK,OAAO,CAAC;IACnD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,eAAe,EAuE7C,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC;IACpC,eAAe,CAAC,EAAE,eAAe,EAAE,CAAC;IACpC,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,gBAAgB,CAAoD;IAC5E,OAAO,CAAC,QAAQ,CAAgC;gBAEpC,MAAM,GAAE,oBAAyB;IA6B7C;;OAEG;IACH,OAAO,CAAC,eAAe;IAgBvB;;OAEG;IACH,OAAO,CAAC,eAAe;IAsBvB;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAI5C;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;OAEG;IACH,mBAAmB,IAAI,eAAe,EAAE;IAIxC;;OAEG;IACH,mBAAmB,IAAI,MAAM;IAK7B;;OAEG;IACH,uBAAuB,IAAI,MAAM;IAIjC;;OAEG;IACH,WAAW,CAAC,SAAS,EAAE,eAAe,GAAG,UAAU,CAAC,gBAAgB,GAAG,IAAI;IAuB3E;;OAEG;IACH,gBAAgB,IAAI,MAAM;IAmB1B;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAe9B;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IAMjD;;OAEG;IACH,UAAU,IAAI;QACZ,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAC3B,gBAAgB,EAAE,MAAM,EAAE,CAAC;QAC3B,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,OAAO,CAAC;KACvB;CAcF;AAED;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAKf"}
|