@agentuity/opencode 1.0.15 → 1.0.16

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 (74) hide show
  1. package/dist/agents/expert-backend.js +1 -1
  2. package/dist/agents/expert-backend.js.map +1 -1
  3. package/dist/agents/expert-frontend.js +1 -1
  4. package/dist/agents/expert-frontend.js.map +1 -1
  5. package/dist/agents/expert-ops.js +1 -1
  6. package/dist/agents/expert-ops.js.map +1 -1
  7. package/dist/agents/expert.js +1 -1
  8. package/dist/agents/expert.js.map +1 -1
  9. package/dist/agents/monitor.d.ts +1 -1
  10. package/dist/agents/monitor.d.ts.map +1 -1
  11. package/dist/agents/monitor.js +22 -33
  12. package/dist/agents/monitor.js.map +1 -1
  13. package/dist/agents/reviewer.js +1 -1
  14. package/dist/agents/reviewer.js.map +1 -1
  15. package/dist/agents/scout.js +1 -1
  16. package/dist/agents/scout.js.map +1 -1
  17. package/dist/background/manager.d.ts +1 -0
  18. package/dist/background/manager.d.ts.map +1 -1
  19. package/dist/background/manager.js +60 -26
  20. package/dist/background/manager.js.map +1 -1
  21. package/dist/plugin/hooks/cadence.d.ts +3 -1
  22. package/dist/plugin/hooks/cadence.d.ts.map +1 -1
  23. package/dist/plugin/hooks/cadence.js +167 -66
  24. package/dist/plugin/hooks/cadence.js.map +1 -1
  25. package/dist/plugin/hooks/compaction-utils.d.ts +48 -0
  26. package/dist/plugin/hooks/compaction-utils.d.ts.map +1 -0
  27. package/dist/plugin/hooks/compaction-utils.js +259 -0
  28. package/dist/plugin/hooks/compaction-utils.js.map +1 -0
  29. package/dist/plugin/hooks/params.d.ts +1 -1
  30. package/dist/plugin/hooks/params.d.ts.map +1 -1
  31. package/dist/plugin/hooks/params.js +5 -1
  32. package/dist/plugin/hooks/params.js.map +1 -1
  33. package/dist/plugin/hooks/session-memory.d.ts +2 -1
  34. package/dist/plugin/hooks/session-memory.d.ts.map +1 -1
  35. package/dist/plugin/hooks/session-memory.js +97 -48
  36. package/dist/plugin/hooks/session-memory.js.map +1 -1
  37. package/dist/plugin/plugin.d.ts.map +1 -1
  38. package/dist/plugin/plugin.js +31 -9
  39. package/dist/plugin/plugin.js.map +1 -1
  40. package/dist/sqlite/index.d.ts +1 -1
  41. package/dist/sqlite/index.d.ts.map +1 -1
  42. package/dist/sqlite/queries.d.ts +1 -0
  43. package/dist/sqlite/queries.d.ts.map +1 -1
  44. package/dist/sqlite/queries.js +4 -0
  45. package/dist/sqlite/queries.js.map +1 -1
  46. package/dist/sqlite/reader.d.ts +11 -1
  47. package/dist/sqlite/reader.d.ts.map +1 -1
  48. package/dist/sqlite/reader.js +62 -0
  49. package/dist/sqlite/reader.js.map +1 -1
  50. package/dist/sqlite/types.d.ts +40 -0
  51. package/dist/sqlite/types.d.ts.map +1 -1
  52. package/dist/types.d.ts +36 -0
  53. package/dist/types.d.ts.map +1 -1
  54. package/dist/types.js +10 -0
  55. package/dist/types.js.map +1 -1
  56. package/package.json +3 -3
  57. package/src/agents/expert-backend.ts +1 -1
  58. package/src/agents/expert-frontend.ts +1 -1
  59. package/src/agents/expert-ops.ts +1 -1
  60. package/src/agents/expert.ts +1 -1
  61. package/src/agents/monitor.ts +22 -33
  62. package/src/agents/reviewer.ts +1 -1
  63. package/src/agents/scout.ts +1 -1
  64. package/src/background/manager.ts +67 -31
  65. package/src/plugin/hooks/cadence.ts +184 -66
  66. package/src/plugin/hooks/compaction-utils.ts +291 -0
  67. package/src/plugin/hooks/params.ts +10 -1
  68. package/src/plugin/hooks/session-memory.ts +109 -47
  69. package/src/plugin/plugin.ts +47 -10
  70. package/src/sqlite/index.ts +4 -0
  71. package/src/sqlite/queries.ts +5 -0
  72. package/src/sqlite/reader.ts +69 -0
  73. package/src/sqlite/types.ts +40 -0
  74. package/src/types.ts +30 -0
@@ -1,21 +1,5 @@
1
+ import { getCurrentBranch, buildCustomCompactionPrompt, fetchAndFormatPlanningState, getImageDescriptions, getRecentToolCallSummaries, storePreCompactionSnapshot, persistCadenceStateToKV, restoreCadenceStateFromKV, formatCompactionDiagnostics, countListItems, } from './compaction-utils';
1
2
  const COMPLETION_PATTERN = /<promise>\s*DONE\s*<\/promise>/i;
2
- /**
3
- * Get the current git branch name.
4
- */
5
- async function getCurrentBranch() {
6
- try {
7
- const proc = Bun.spawn(['git', 'branch', '--show-current'], {
8
- stdout: 'pipe',
9
- stderr: 'pipe',
10
- });
11
- const stdout = await new Response(proc.stdout).text();
12
- await proc.exited;
13
- return stdout.trim() || 'unknown';
14
- }
15
- catch {
16
- return 'unknown';
17
- }
18
- }
19
3
  // Ultrawork trigger keywords - case insensitive matching
20
4
  const ULTRAWORK_TRIGGERS = [
21
5
  'ultrawork',
@@ -39,8 +23,10 @@ const ULTRAWORK_TRIGGERS = [
39
23
  * 4. Trigger continuation after compaction (session.compacted)
40
24
  * 5. Clean up on session abort/error
41
25
  */
42
- export function createCadenceHooks(ctx, _config, backgroundManager, dbReader) {
26
+ export function createCadenceHooks(ctx, config, backgroundManager, dbReader, lastUserMessages) {
43
27
  const activeCadenceSessions = new Map();
28
+ const nonCadenceSessions = new Set();
29
+ const NON_CADENCE_CACHE_MAX = 500;
44
30
  const log = (msg) => {
45
31
  ctx.client.app.log({
46
32
  body: {
@@ -55,11 +41,14 @@ export function createCadenceHooks(ctx, _config, backgroundManager, dbReader) {
55
41
  const sessionId = extractSessionId(input);
56
42
  if (!sessionId)
57
43
  return;
58
- const messageText = extractMessageText(output);
59
- if (!messageText)
60
- return;
61
- // Check if this is a Cadence start command or ultrawork trigger
62
- const cadenceType = getCadenceTriggerType(messageText);
44
+ // Use the USER's message (from chat.params) for trigger detection,
45
+ // not the model's output — avoids false positives when the model
46
+ // uses phrases like "go deep" or "be thorough" in its response.
47
+ // Delete after read entries are transient (set in chat.params,
48
+ // consumed here in chat.message) so no unbounded Map growth.
49
+ const userText = lastUserMessages?.get(sessionId) ?? '';
50
+ lastUserMessages?.delete(sessionId);
51
+ const cadenceType = getCadenceTriggerType(userText);
63
52
  if (cadenceType && !activeCadenceSessions.has(sessionId)) {
64
53
  log(`Cadence started for session ${sessionId} via ${cadenceType}`);
65
54
  const now = new Date().toISOString();
@@ -70,6 +59,8 @@ export function createCadenceHooks(ctx, _config, backgroundManager, dbReader) {
70
59
  lastActivity: now,
71
60
  };
72
61
  activeCadenceSessions.set(sessionId, state);
62
+ nonCadenceSessions.delete(sessionId);
63
+ persistCadenceStateToKV(sessionId, { ...state }).catch(() => { });
73
64
  // If triggered by ultrawork keywords, inject [CADENCE MODE] tag
74
65
  if (cadenceType === 'ultrawork') {
75
66
  injectCadenceTag(output);
@@ -77,6 +68,12 @@ export function createCadenceHooks(ctx, _config, backgroundManager, dbReader) {
77
68
  showToast(ctx, `⚡ Cadence started · ${state.iteration}/${state.maxIterations}`);
78
69
  return;
79
70
  }
71
+ // Everything below parses the MODEL's output for structured tags
72
+ // (CADENCE_STATUS, iteration counts, completion signals) that the
73
+ // model intentionally emits — these are NOT false-positive-prone.
74
+ const messageText = extractMessageText(output);
75
+ if (!messageText)
76
+ return;
80
77
  // Check if this session is in Cadence mode
81
78
  const state = activeCadenceSessions.get(sessionId);
82
79
  if (!state) {
@@ -102,6 +99,7 @@ export function createCadenceHooks(ctx, _config, backgroundManager, dbReader) {
102
99
  if (changed) {
103
100
  const loopInfo = state.loopId ? ` · ${state.loopId}` : '';
104
101
  showToast(ctx, `⚡ Cadence · ${state.iteration}/${state.maxIterations}${loopInfo}`);
102
+ persistCadenceStateToKV(sessionId, { ...state }).catch(() => { });
105
103
  }
106
104
  return;
107
105
  }
@@ -113,6 +111,7 @@ export function createCadenceHooks(ctx, _config, backgroundManager, dbReader) {
113
111
  state.iteration = newIteration;
114
112
  const loopInfo = state.loopId ? ` · ${state.loopId}` : '';
115
113
  showToast(ctx, `⚡ Cadence · ${state.iteration}/${state.maxIterations}${loopInfo}`);
114
+ persistCadenceStateToKV(sessionId, { ...state }).catch(() => { });
116
115
  }
117
116
  }
118
117
  // Check for completion signal
@@ -232,6 +231,8 @@ Continue Cadence iteration ${state.iteration} of ${state.maxIterations}
232
231
  /**
233
232
  * Called during context compaction to inject Cadence state.
234
233
  * This ensures the compaction summary includes critical loop state.
234
+ * Uses output.prompt to REPLACE the default compaction prompt with
235
+ * enriched context (planning state, images, tool calls, diagnostics).
235
236
  */
236
237
  async onCompacting(input, output) {
237
238
  const sessionId = input.sessionID;
@@ -242,18 +243,54 @@ Continue Cadence iteration ${state.iteration} of ${state.maxIterations}
242
243
  }
243
244
  log(`Injecting Cadence context during compaction for session ${sessionId}`);
244
245
  showToast(ctx, '💾 Compacting Cadence context...');
245
- // Get current git branch
246
- const branch = await getCurrentBranch();
247
- // Get active background tasks for this session
246
+ // Config flags for compaction behavior
247
+ const compactionCfg = config?.compaction ?? {};
248
+ const useCustomPrompt = compactionCfg.customPrompt !== false;
249
+ const useInlinePlanning = compactionCfg.inlinePlanning !== false;
250
+ const useImageAwareness = compactionCfg.imageAwareness !== false;
251
+ const useSnapshotToKV = compactionCfg.snapshotToKV !== false;
252
+ const maxTokens = compactionCfg.maxContextTokens ?? 4000;
253
+ // 1. Build custom compaction instructions
254
+ const instructions = useCustomPrompt ? buildCustomCompactionPrompt('cadence') : null;
255
+ // 2. Gather enrichment data in parallel
256
+ const toolCallLimit = config?.compaction?.toolCallSummaryLimit ?? 5;
257
+ const [branch, planningState, imageDescs, toolSummaries] = await Promise.all([
258
+ getCurrentBranch(),
259
+ useInlinePlanning ? fetchAndFormatPlanningState(sessionId) : Promise.resolve(null),
260
+ useImageAwareness
261
+ ? Promise.resolve(getImageDescriptions(dbReader ?? null, sessionId))
262
+ : Promise.resolve(null),
263
+ Promise.resolve(getRecentToolCallSummaries(dbReader ?? null, sessionId, toolCallLimit)),
264
+ ]);
265
+ // 3. Build Cadence state section
266
+ const cadenceStateSection = `## CADENCE MODE ACTIVE
267
+
268
+ This session is running in Cadence mode (long-running autonomous loop).
269
+
270
+ **Cadence State:**
271
+ - Session ID: ${sessionId}
272
+ - Loop ID: ${state.loopId ?? 'unknown'}
273
+ - Branch: ${branch}
274
+ - Started: ${state.startedAt}
275
+ - Iteration: ${state.iteration} / ${state.maxIterations}
276
+ - Last activity: ${state.lastActivity}
277
+
278
+ **Session Record Location:**
279
+ \`session:${sessionId}\` in agentuity-opencode-memory
280
+
281
+ After compaction:
282
+ 1. Memory will save this summary and update the session record
283
+ 2. Memory should update planning.progress with this compaction
284
+ 3. Lead will continue the loop from iteration ${state.iteration}
285
+ 4. Use 5-Question Reboot to re-orient: Where am I? Where going? Goal? Learned? Done?`;
286
+ // 4. Build background tasks section
248
287
  const tasks = backgroundManager?.getTasksByParent(sessionId) ?? [];
249
- let backgroundTaskContext = '';
288
+ let backgroundSection = null;
250
289
  if (tasks.length > 0) {
251
290
  const taskList = tasks
252
291
  .map((t) => `- **${t.id}**: ${t.description || 'No description'} (session: ${t.sessionId ?? 'pending'}, status: ${t.status})`)
253
292
  .join('\n');
254
- backgroundTaskContext = `
255
-
256
- ## Active Background Tasks
293
+ backgroundSection = `## Active Background Tasks
257
294
 
258
295
  This session has ${tasks.length} background task(s) running in separate sessions:
259
296
  ${taskList}
@@ -269,43 +306,71 @@ agentuity_background_task({
269
306
  task: "Monitor these background tasks and report when all complete:\\n${tasks.map((t) => `- ${t.id}`).join('\\n')}",
270
307
  description: "Monitor child tasks"
271
308
  })
272
- \`\`\`
273
- `;
309
+ \`\`\``;
274
310
  }
275
- output.context.push(`
276
- ## CADENCE MODE ACTIVE
277
-
278
- This session is running in Cadence mode (long-running autonomous loop).
279
-
280
- **Cadence State:**
281
- - Session ID: ${sessionId}
282
- - Loop ID: ${state.loopId ?? 'unknown'}
283
- - Branch: ${branch}
284
- - Started: ${state.startedAt}
285
- - Iteration: ${state.iteration} / ${state.maxIterations}
286
- - Last activity: ${state.lastActivity}
287
-
288
- **Session Record Location:**
289
- \`session:${sessionId}\` in agentuity-opencode-memory
290
-
291
- **Planning State:**
292
- If this session has planning active, the session record contains:
293
- - \`planning.prdKey\` - Link to the PRD being executed
294
- - \`planning.objective\` - What we're trying to accomplish
295
- - \`planning.phases\` - Current phases with status and notes
296
- - \`planning.current\` - Current phase
297
- - \`planning.findings\` - Discoveries made during work
298
- - \`planning.errors\` - Failures to avoid repeating
299
- ${backgroundTaskContext}
300
- After compaction:
301
- 1. Memory will save this summary and update the session record
302
- 2. Memory should update planning.progress with this compaction
303
- 3. Lead will continue the loop from iteration ${state.iteration}
304
- 4. Use 5-Question Reboot to re-orient: Where am I? Where going? Goal? Learned? Done?
305
- `);
306
- const dashboardSummary = buildSqliteDashboardSummary(dbReader, sessionId);
307
- if (dashboardSummary) {
308
- output.context.push(dashboardSummary);
311
+ // 5. Build SQLite dashboard section
312
+ const dashboardSection = buildSqliteDashboardSummary(dbReader, sessionId);
313
+ // 6. Combine everything into the full prompt
314
+ const sections = [];
315
+ if (instructions)
316
+ sections.push(instructions);
317
+ sections.push(cadenceStateSection);
318
+ if (backgroundSection)
319
+ sections.push(backgroundSection);
320
+ if (planningState)
321
+ sections.push(planningState);
322
+ if (imageDescs)
323
+ sections.push(imageDescs);
324
+ if (toolSummaries)
325
+ sections.push(toolSummaries);
326
+ if (dashboardSection)
327
+ sections.push(dashboardSection);
328
+ // 7. Add diagnostics
329
+ const stats = {
330
+ planningPhasesCount: countListItems(planningState),
331
+ backgroundTasksCount: tasks.length,
332
+ imageDescriptionsCount: countListItems(imageDescs),
333
+ toolCallSummariesCount: countListItems(toolSummaries),
334
+ estimatedTokens: Math.ceil(sections.join('\n\n').length / 4),
335
+ };
336
+ const diagnostics = formatCompactionDiagnostics(stats);
337
+ if (diagnostics)
338
+ sections.push(diagnostics);
339
+ // 8. Enforce token budget
340
+ let fullPrompt = sections.join('\n\n');
341
+ const estimatedTokens = Math.ceil(fullPrompt.length / 4);
342
+ if (maxTokens > 0 && estimatedTokens > maxTokens) {
343
+ // Trim least-critical sections first
344
+ const trimOrder = [diagnostics, toolSummaries, imageDescs, planningState].filter(Boolean);
345
+ let trimmed = [...sections];
346
+ for (const candidate of trimOrder) {
347
+ if (Math.ceil(trimmed.join('\n\n').length / 4) <= maxTokens)
348
+ break;
349
+ trimmed = trimmed.filter((s) => s !== candidate);
350
+ }
351
+ fullPrompt = trimmed.join('\n\n');
352
+ }
353
+ // 9. Set the full prompt or push to context
354
+ if (useCustomPrompt) {
355
+ output.prompt = fullPrompt;
356
+ }
357
+ else {
358
+ output.context.push(fullPrompt);
359
+ }
360
+ // 10. Store pre-compaction snapshot to KV (fire-and-forget)
361
+ if (useSnapshotToKV) {
362
+ storePreCompactionSnapshot(sessionId, {
363
+ timestamp: new Date().toISOString(),
364
+ sessionId,
365
+ planningState: planningState ? { raw: planningState } : undefined,
366
+ backgroundTasks: tasks.map((t) => ({
367
+ id: t.id,
368
+ description: t.description || 'No description',
369
+ status: t.status,
370
+ })),
371
+ cadenceState: state ? { ...state } : undefined,
372
+ branch,
373
+ }).catch(() => { }); // Fire and forget
309
374
  }
310
375
  },
311
376
  /**
@@ -315,6 +380,42 @@ After compaction:
315
380
  isActiveCadenceSession(sessionId) {
316
381
  return activeCadenceSessions.has(sessionId);
317
382
  },
383
+ /**
384
+ * Lazy restore: check KV for persisted Cadence state and populate in-memory Map.
385
+ * Called before routing decisions to recover state after plugin restarts.
386
+ * Returns true if state was found and restored.
387
+ */
388
+ async tryRestoreFromKV(sessionId) {
389
+ // Already in memory — nothing to restore
390
+ if (activeCadenceSessions.has(sessionId))
391
+ return true;
392
+ // Known non-Cadence session — skip KV lookup
393
+ if (nonCadenceSessions.has(sessionId))
394
+ return false;
395
+ try {
396
+ const kvState = await restoreCadenceStateFromKV(sessionId);
397
+ if (!kvState) {
398
+ if (nonCadenceSessions.size >= NON_CADENCE_CACHE_MAX) {
399
+ nonCadenceSessions.clear();
400
+ }
401
+ nonCadenceSessions.add(sessionId);
402
+ return false;
403
+ }
404
+ const state = {
405
+ startedAt: kvState.startedAt ?? new Date().toISOString(),
406
+ loopId: kvState.loopId,
407
+ iteration: kvState.iteration ?? 1,
408
+ maxIterations: kvState.maxIterations ?? 50,
409
+ lastActivity: kvState.lastActivity ?? new Date().toISOString(),
410
+ };
411
+ activeCadenceSessions.set(sessionId, state);
412
+ log(`Restored Cadence state from KV for session ${sessionId} (iteration ${state.iteration}/${state.maxIterations})`);
413
+ return true;
414
+ }
415
+ catch {
416
+ return false;
417
+ }
418
+ },
318
419
  };
319
420
  }
320
421
  function extractSessionId(input) {
@@ -1 +1 @@
1
- {"version":3,"file":"cadence.js","sourceRoot":"","sources":["../../../src/plugin/hooks/cadence.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cadence.js","sourceRoot":"","sources":["../../../src/plugin/hooks/cadence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import type { OpenCodeDBReader } from '../../sqlite/reader';
2
+ import type { CompactionStats, PreCompactionSnapshot } from '../../sqlite/types';
3
+ /**
4
+ * Get the current git branch name.
5
+ * Moved here from cadence.ts and session-memory.ts to deduplicate.
6
+ */
7
+ export declare function getCurrentBranch(): Promise<string>;
8
+ /**
9
+ * Build the custom compaction prompt for our agent system.
10
+ * This REPLACES the default OpenCode compaction prompt via output.prompt.
11
+ */
12
+ export declare function buildCustomCompactionPrompt(mode: 'cadence' | 'regular'): string;
13
+ /**
14
+ * Fetch planning state from KV and format as markdown.
15
+ * Returns null if KV is unavailable or no planning state exists.
16
+ */
17
+ export declare function fetchAndFormatPlanningState(sessionId: string): Promise<string | null>;
18
+ /**
19
+ * Get image/attachment descriptions from SQLite for compaction context.
20
+ * Returns brief metadata about non-text parts in the conversation.
21
+ */
22
+ export declare function getImageDescriptions(dbReader: OpenCodeDBReader | null, sessionId: string): string | null;
23
+ /**
24
+ * Get recent tool call summaries for compaction context.
25
+ * CONCISE — capped at limit calls, brief descriptions only.
26
+ */
27
+ export declare function getRecentToolCallSummaries(dbReader: OpenCodeDBReader | null, sessionId: string, limit?: number): string | null;
28
+ /**
29
+ * Store a pre-compaction snapshot to KV as a recovery mechanism.
30
+ */
31
+ export declare function storePreCompactionSnapshot(sessionId: string, snapshot: PreCompactionSnapshot): Promise<void>;
32
+ /**
33
+ * Persist Cadence session state to KV for recovery after plugin restart.
34
+ */
35
+ export declare function persistCadenceStateToKV(sessionId: string, state: Record<string, unknown>): Promise<void>;
36
+ /**
37
+ * Restore Cadence session state from KV.
38
+ */
39
+ export declare function restoreCadenceStateFromKV(sessionId: string): Promise<Record<string, unknown> | null>;
40
+ /**
41
+ * Format compaction diagnostics — brief summary of what was preserved.
42
+ */
43
+ export declare function formatCompactionDiagnostics(stats: CompactionStats): string;
44
+ /** Count markdown list items in a string */
45
+ export declare function countListItems(s: string | null): number;
46
+ export type { CompactionConfig } from '../../types';
47
+ export type { CompactionStats, DBNonTextPart, DBToolCallSummary, PreCompactionSnapshot, } from '../../sqlite/types';
48
+ //# sourceMappingURL=compaction-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction-utils.d.ts","sourceRoot":"","sources":["../../../src/plugin/hooks/compaction-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAiB,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhG;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC,CAYxD;AAkCD;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAmD/E;AAED;;;GAGG;AACH,wBAAsB,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CA+C3F;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CACnC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,EACjC,SAAS,EAAE,MAAM,GACf,MAAM,GAAG,IAAI,CAsBf;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACzC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,EACjC,SAAS,EAAE,MAAM,EACjB,KAAK,GAAE,MAAU,GACf,MAAM,GAAG,IAAI,CAiBf;AAED;;GAEG;AACH,wBAAsB,0BAA0B,CAC/C,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,qBAAqB,GAC7B,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC5C,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;GAEG;AACH,wBAAsB,yBAAyB,CAC9C,SAAS,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAOzC;AAED;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAS1E;AAED,4CAA4C;AAC5C,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAGvD;AAGD,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,YAAY,EACX,eAAe,EACf,aAAa,EACb,iBAAiB,EACjB,qBAAqB,GACrB,MAAM,oBAAoB,CAAC"}