universal-agent-memory 0.4.1 → 0.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/README.md +106 -289
  2. package/dist/bin/cli.js +0 -0
  3. package/dist/cli/generate.d.ts +7 -0
  4. package/dist/cli/generate.d.ts.map +1 -1
  5. package/dist/cli/generate.js +89 -2
  6. package/dist/cli/generate.js.map +1 -1
  7. package/dist/coordination/capability-router.d.ts +79 -0
  8. package/dist/coordination/capability-router.d.ts.map +1 -0
  9. package/dist/coordination/capability-router.js +324 -0
  10. package/dist/coordination/capability-router.js.map +1 -0
  11. package/dist/coordination/deploy-batcher.d.ts +64 -1
  12. package/dist/coordination/deploy-batcher.d.ts.map +1 -1
  13. package/dist/coordination/deploy-batcher.js +203 -39
  14. package/dist/coordination/deploy-batcher.js.map +1 -1
  15. package/dist/coordination/index.d.ts +1 -0
  16. package/dist/coordination/index.d.ts.map +1 -1
  17. package/dist/coordination/index.js +1 -0
  18. package/dist/coordination/index.js.map +1 -1
  19. package/dist/generators/claude-md.js +18 -5
  20. package/dist/generators/claude-md.js.map +1 -1
  21. package/dist/generators/template-loader.d.ts +105 -0
  22. package/dist/generators/template-loader.d.ts.map +1 -0
  23. package/dist/generators/template-loader.js +291 -0
  24. package/dist/generators/template-loader.js.map +1 -0
  25. package/dist/memory/serverless-qdrant.d.ts +102 -0
  26. package/dist/memory/serverless-qdrant.d.ts.map +1 -0
  27. package/dist/memory/serverless-qdrant.js +369 -0
  28. package/dist/memory/serverless-qdrant.js.map +1 -0
  29. package/dist/types/config.d.ts +1220 -15
  30. package/dist/types/config.d.ts.map +1 -1
  31. package/dist/types/config.js +92 -1
  32. package/dist/types/config.js.map +1 -1
  33. package/dist/types/coordination.d.ts +4 -4
  34. package/dist/utils/merge-claude-md.d.ts +20 -7
  35. package/dist/utils/merge-claude-md.d.ts.map +1 -1
  36. package/dist/utils/merge-claude-md.js +252 -59
  37. package/dist/utils/merge-claude-md.js.map +1 -1
  38. package/package.json +1 -1
  39. package/templates/CLAUDE.template.md +286 -837
@@ -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
- batchWindowMs;
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
- this.batchWindowMs = config.batchWindowMs || 30000; // 30 seconds
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
- // Queue a deploy action with batching delay
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
- const executeAfter = new Date(Date.now() + this.batchWindowMs).toISOString();
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
- // Create a batch from ready actions
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)], // Deduplicate files
288
+ files: [...new Set(allFiles)],
215
289
  squashedFrom: commits.map((c) => c.id),
216
290
  },
217
291
  };
218
292
  }
219
- // Execute a batch
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
- // Execute each action
245
- for (const action of actions) {
246
- try {
247
- await this.executeAction(action);
248
- this.updateActionStatus(action.id, 'completed');
249
- executed++;
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
- catch (error) {
252
- const errorMsg = error instanceof Error ? error.message : String(error);
253
- errors.push(`Action ${action.id} (${action.actionType}): ${errorMsg}`);
254
- this.updateActionStatus(action.id, 'failed');
255
- failed++;
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
- // Force flush all pending deploys
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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAEnF,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAWzC,MAAM,OAAO,aAAa;IAChB,EAAE,CAAoB;IACtB,aAAa,CAAS;IACtB,YAAY,CAAS;IACrB,MAAM,CAAU;IAExB,YAAY,SAA8B,EAAE;QAC1C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,4BAA4B,EAAE,CAAC;QAC/D,IAAI,CAAC,EAAE,GAAG,oBAAoB,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,CAAC;QACjE,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC,aAAa;QACjE,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC;QAC9C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK,CAAC;IACvC,CAAC;IAED,4CAA4C;IAC5C,KAAK,CAAC,KAAK,CACT,OAAe,EACf,UAA4B,EAC5B,MAAc,EACd,OAAiC,EACjC,UAA0D,EAAE;QAE5D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,WAAW,EAAE,CAAC;QAE7E,4CAA4C;QAC5C,MAAM,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC5D,IAAI,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YACzE,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAC9C,OAAO,QAAQ,CAAC,EAAE,CAAC;QACrB,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;KAG5B,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CACrB,OAAO,EACP,UAAU,EACV,MAAM,EACN,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,EACxC,GAAG,EACH,YAAY,EACZ,OAAO,CAAC,QAAQ,IAAI,CAAC,EACrB,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CACnE,CAAC;QAEF,OAAO,MAAM,CAAC,eAAyB,CAAC;IAC1C,CAAC;IAEO,iBAAiB,CACvB,UAA4B,EAC5B,MAAc;QAEd,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;KAQ5B,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAwC,CAAC;QAChF,IAAI,CAAC,GAAG;YAAE,OAAO,IAAI,CAAC;QAEtB,OAAO;YACL,GAAG,GAAG;YACN,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAiB,CAAC,CAAC,CAAC,CAAC,SAAS;YACpE,YAAY,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAsB,CAAC,CAAC,CAAC,CAAC,SAAS;SACpE,CAAC;IACpB,CAAC;IAEO,QAAQ,CACd,QAAsB,EACtB,QAA6F;QAE7F,8CAA8C;QAC9C,IAAI,QAAQ,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,EAAE,CAAC;YACvF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,0BAA0B;QAC1B,IAAI,QAAQ,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,sCAAsC;QACtC,IAAI,QAAQ,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;YACnC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,wCAAwC;QACxC,IAAI,QAAQ,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,UAAkB,EAAE,UAAoC;QACjF,IAAI,CAAC,UAAU;YAAE,OAAO;QAExB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAE5B,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAoC,CAAC;QACpE,IAAI,CAAC,GAAG;YAAE,OAAO;QAEjB,MAAM,eAAe,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAEnE,gEAAgE;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;QAE/D,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAElC,CAAC,CAAC;QACH,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,UAAU,CAAC,CAAC;IACrD,CAAC;IAEO,aAAa,CACnB,QAAiC,EACjC,QAAiC;QAEjC,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;QAE/B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACvD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAI,MAAM,CAAC,GAAG,CAAe,EAAE,GAAG,KAAK,CAAC,CAAC;YAC1D,CAAC;iBAAM,IAAI,GAAG,KAAK,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtD,4CAA4C;gBAC5C,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAE,MAAM,CAAC,GAAG,CAAc,IAAI,EAAE,CAAC,EAAE,GAAG,KAAK,CAAC,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACtB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,oCAAoC;IACpC,KAAK,CAAC,WAAW;QACf,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAErC,qDAAqD;QACrD,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;KAQ5B,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAmC,CAAC;QAChF,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC;QAEnC,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACjC,GAAG,GAAG;YACN,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAiB,CAAC,CAAC,CAAC,CAAC,SAAS;YACpE,YAAY,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAsB,CAAC,CAAC,CAAC,CAAC,SAAS;SACpF,CAAC,CAAmB,CAAC;QAEtB,kBAAkB;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE5C,8CAA8C;QAC9C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAE7C,eAAe;QACf,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;QAE7B,0BAA0B;QAC1B,MAAM,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAElC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE;YAC3C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YACrC,CAAC;YAED,eAAe;YACf,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;OAGf,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;QAEH,WAAW,EAAE,CAAC;QAEd,OAAO;YACL,EAAE,EAAE,OAAO;YACX,OAAO,EAAE,QAAQ;YACjB,SAAS,EAAE,GAAG;YACd,MAAM,EAAE,SAAS;SAClB,CAAC;IACJ,CAAC;IAEO,aAAa,CAAC,OAAuB;QAC3C,MAAM,MAAM,GAAG,IAAI,GAAG,EAA0B,CAAC;QAEjD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YACpD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtB,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC5B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,aAAa,CAAC,OAAoC;QACxD,MAAM,MAAM,GAAmB,EAAE,CAAC;QAElC,KAAK,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,OAAO,EAAE,CAAC;YAClC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAEnC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxB,SAAS;YACX,CAAC;YAED,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAEzB,iBAAiB;YACjB,IAAI,KAAK,CAAC,UAAU,KAAK,QAAQ,EAAE,CAAC;gBAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACtB,SAAS;YACX,CAAC;YAED,qCAAqC;YACrC,IAAI,KAAK,CAAC,UAAU,KAAK,MAAM,EAAE,CAAC;gBAChC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnB,SAAS;YACX,CAAC;YAED,gCAAgC;YAChC,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;gBACpC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACnB,SAAS;YACX,CAAC;YAED,4BAA4B;YAC5B,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC;QAC1B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,aAAa,CAAC,OAAuB;QAC3C,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAM,CAAC,OAA6D,CAAC;YACrF,IAAI,OAAO,EAAE,OAAO,EAAE,CAAC;gBACrB,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACjC,CAAC;YACD,IAAI,OAAO,EAAE,KAAK,EAAE,CAAC;gBACnB,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,MAAM,eAAe,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC;YAC3C,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACb,CAAC,CAAC,YAAY,QAAQ,CAAC,MAAM,gBAAgB,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QAErG,OAAO;YACL,GAAG,OAAO,CAAC,CAAC,CAAC;YACb,OAAO,EAAE;gBACP,OAAO,EAAE,eAAe;gBACxB,KAAK,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,oBAAoB;gBACnD,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACvC;SACF,CAAC;IACJ,CAAC;IAED,kBAAkB;IAClB,KAAK,CAAC,YAAY,CAAC,OAAe;QAChC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,MAAM,GAAG,CAAC,CAAC;QAEf,oBAAoB;QACpB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;KAO5B,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAmC,CAAC;QACjE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACjC,GAAG,GAAG;YACN,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAiB,CAAC,CAAC,CAAC,CAAC,SAAS;YACpE,YAAY,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAsB,CAAC,CAAC,CAAC,CAAC,SAAS;SACpF,CAAC,CAAmB,CAAC;QAEtB,0BAA0B;QAC1B,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAEf,CAAC,CAAC,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,CAAC;QAE1C,sBAAsB;QACtB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;gBACjC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;gBAChD,QAAQ,EAAE,CAAC;YACb,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,QAAQ,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBACxE,MAAM,CAAC,IAAI,CAAC,UAAU,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,UAAU,MAAM,QAAQ,EAAE,CAAC,CAAC;gBACvE,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAC7C,MAAM,EAAE,CAAC;YACX,CAAC;QACH,CAAC;QAED,sBAAsB;QACtB,MAAM,WAAW,GAAiB,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACvG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAEf,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;QAE3E,OAAO;YACL,OAAO;YACP,OAAO,EAAE,MAAM,KAAK,CAAC;YACrB,eAAe,EAAE,QAAQ;YACzB,aAAa,EAAE,MAAM;YACrB,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;YAC9C,QAAQ,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;SACjC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,MAAoB;QAC9C,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,4BAA4B,MAAM,CAAC,UAAU,OAAO,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;YACjF,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,EAAE,CAAC;QAErC,QAAQ,MAAM,CAAC,UAAU,EAAE,CAAC;YAC1B,KAAK,QAAQ;gBACX,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACjD,MAAM;YACR,KAAK,MAAM;gBACT,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAC/C,MAAM;YACR,KAAK,OAAO;gBACV,MAAM,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBAChD,MAAM;YACR,KAAK,UAAU;gBACb,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACnD,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;gBACjD,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,OAAgC;QAC3E,MAAM,OAAO,GAAI,OAAO,CAAC,OAAkB,IAAI,kBAAkB,CAAC;QAClE,MAAM,KAAK,GAAI,OAAO,CAAC,KAAkB,IAAI,EAAE,CAAC;QAEhD,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,QAAQ,CAAC,WAAW,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5D,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,QAAQ,CAAC,kBAAkB,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACjF,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,MAAc,EAAE,OAAgC;QACxE,MAAM,MAAM,GAAI,OAAO,CAAC,MAAiB,IAAI,QAAQ,CAAC;QACtD,MAAM,KAAK,GAAI,OAAO,CAAC,KAAiB,IAAI,KAAK,CAAC;QAElD,MAAM,SAAS,GAAG,KAAK,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,QAAQ,CAAC,YAAY,SAAS,IAAI,MAAM,IAAI,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC3E,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,OAAgC;QAC1E,MAAM,MAAM,GAAI,OAAO,CAAC,MAAiB,IAAI,MAAM,CAAC;QACpD,MAAM,MAAM,GAAI,OAAO,CAAC,MAAkB,IAAI,KAAK,CAAC;QAEpD,IAAI,MAAM,EAAE,CAAC;YACX,QAAQ,CAAC,sBAAsB,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,aAAa,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QACrD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,OAAgC;QAC5E,MAAM,QAAQ,GAAG,MAAM,CAAC;QACxB,MAAM,GAAG,GAAI,OAAO,CAAC,GAAc,IAAI,MAAM,CAAC;QAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,MAA4C,CAAC;QAEpE,IAAI,SAAS,GAAG,EAAE,CAAC;QACnB,IAAI,MAAM,EAAE,CAAC;YACX,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;iBAC/B,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;iBAC3C,IAAI,CAAC,GAAG,CAAC,CAAC;QACf,CAAC;QAED,QAAQ,CAAC,mBAAmB,QAAQ,UAAU,GAAG,IAAI,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACvF,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,MAAc,EAAE,OAAgC;QAC1E,MAAM,WAAW,GAAG,MAAM,CAAC;QAC3B,MAAM,OAAO,GAAI,OAAO,CAAC,OAAkB,IAAI,UAAU,WAAW,EAAE,CAAC;QAEvE,QAAQ,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,CAAC;IAEO,kBAAkB,CAAC,QAAgB,EAAE,MAAoB;QAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAE5B,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,mBAAmB;IACnB,QAAQ,CAAC,OAAe;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;KAIjC,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAwC,CAAC;QAC/E,IAAI,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QAE3B,MAAM,WAAW,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;KAMnC,CAAC,CAAC;QACH,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAmC,CAAC;QAE9E,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACvC,GAAG,GAAG;YACN,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAiB,CAAC,CAAC,CAAC,CAAC,SAAS;YACpE,YAAY,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,YAAsB,CAAC,CAAC,CAAC,CAAC,SAAS;SACpF,CAAC,CAAmB,CAAC;QAEtB,OAAO;YACL,EAAE,EAAE,OAAO;YACX,OAAO;YACP,SAAS,EAAE,QAAQ,CAAC,SAAmB;YACvC,MAAM,EAAE,QAAQ,CAAC,MAAsB;SACxC,CAAC;IACJ,CAAC;IAED,0BAA0B;IAC1B,iBAAiB;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;KAE5B,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,EAA2B,CAAC;QAEjD,OAAO,IAAI;aACR,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;aACnC,MAAM,CAAC,CAAC,CAAC,EAAoB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;IACjD,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,QAAQ;QACZ,MAAM,OAAO,GAAkB,EAAE,CAAC;QAElC,yCAAyC;QACzC,IAAI,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACrC,OAAO,KAAK,EAAE,CAAC;YACb,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACjD,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;QACnC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"deploy-batcher.js","sourceRoot":"","sources":["../../src/coordination/deploy-batcher.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export * from './database.js';
2
2
  export * from './service.js';
3
3
  export * from './deploy-batcher.js';
4
+ export * from './capability-router.js';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -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,4 +1,5 @@
1
1
  export * from './database.js';
2
2
  export * from './service.js';
3
3
  export * from './deploy-batcher.js';
4
+ export * from './capability-router.js';
4
5
  //# sourceMappingURL=index.js.map
@@ -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"}
@@ -613,14 +613,27 @@ function getDesktopTemplate() {
613
613
  // Check locations in order:
614
614
  // 1. User's project templates directory
615
615
  // 2. Package's templates directory (for npm installed version)
616
+ // 3. Node modules (when installed as dependency)
617
+ // 4. Fallback inline template
616
618
  const userTemplatePath = join(process.cwd(), 'templates/CLAUDE.template.md');
617
619
  const packageTemplatePath = join(__dirname, '../../templates/CLAUDE.template.md');
618
- if (existsSync(userTemplatePath)) {
619
- return readFileSync(userTemplatePath, 'utf-8');
620
- }
621
- if (existsSync(packageTemplatePath)) {
622
- return readFileSync(packageTemplatePath, 'utf-8');
620
+ const nodeModulesPath = join(process.cwd(), 'node_modules/universal-agent-memory/templates/CLAUDE.template.md');
621
+ const templatePaths = [
622
+ { path: userTemplatePath, name: 'project templates' },
623
+ { path: packageTemplatePath, name: 'package templates' },
624
+ { path: nodeModulesPath, name: 'node_modules' },
625
+ ];
626
+ for (const { path, name } of templatePaths) {
627
+ if (existsSync(path)) {
628
+ try {
629
+ return readFileSync(path, 'utf-8');
630
+ }
631
+ catch (e) {
632
+ console.warn(`Warning: Found template at ${name} but couldn't read it: ${e}`);
633
+ }
634
+ }
623
635
  }
636
+ console.info('Using built-in fallback template. For full features, ensure templates/CLAUDE.template.md exists.');
624
637
  // Fallback inline template for desktop
625
638
  return `<coding_guidelines>
626
639