@corenel/web-ui 0.8.0 → 0.10.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.
Files changed (83) hide show
  1. package/dist/AskUser.d.ts.map +1 -1
  2. package/dist/AskUser.js +3 -1
  3. package/dist/AskUser.js.map +1 -1
  4. package/dist/CommandTray.d.ts.map +1 -1
  5. package/dist/CommandTray.js +2 -1
  6. package/dist/CommandTray.js.map +1 -1
  7. package/dist/Composer.d.ts.map +1 -1
  8. package/dist/Composer.js +14 -6
  9. package/dist/Composer.js.map +1 -1
  10. package/dist/ContextBar.d.ts.map +1 -1
  11. package/dist/ContextBar.js +24 -1
  12. package/dist/ContextBar.js.map +1 -1
  13. package/dist/ContextManager.d.ts +10 -1
  14. package/dist/ContextManager.d.ts.map +1 -1
  15. package/dist/ContextManager.js +63 -26
  16. package/dist/ContextManager.js.map +1 -1
  17. package/dist/ContextStrip.d.ts +5 -1
  18. package/dist/ContextStrip.d.ts.map +1 -1
  19. package/dist/ContextStrip.js +4 -1
  20. package/dist/ContextStrip.js.map +1 -1
  21. package/dist/ExclusionsModal.d.ts +3 -0
  22. package/dist/ExclusionsModal.d.ts.map +1 -1
  23. package/dist/ExclusionsModal.js +28 -7
  24. package/dist/ExclusionsModal.js.map +1 -1
  25. package/dist/RichContent.d.ts.map +1 -1
  26. package/dist/RichContent.js +3 -1
  27. package/dist/RichContent.js.map +1 -1
  28. package/dist/SummaryTranscript.d.ts.map +1 -1
  29. package/dist/SummaryTranscript.js +4 -3
  30. package/dist/SummaryTranscript.js.map +1 -1
  31. package/dist/TodoBar.d.ts.map +1 -1
  32. package/dist/TodoBar.js +12 -6
  33. package/dist/TodoBar.js.map +1 -1
  34. package/dist/ToolFold.d.ts.map +1 -1
  35. package/dist/ToolFold.js +2 -1
  36. package/dist/ToolFold.js.map +1 -1
  37. package/dist/Transcript.d.ts.map +1 -1
  38. package/dist/Transcript.js +30 -20
  39. package/dist/Transcript.js.map +1 -1
  40. package/dist/agentChat/AgentChat.d.ts +8 -2
  41. package/dist/agentChat/AgentChat.d.ts.map +1 -1
  42. package/dist/agentChat/AgentChat.js +149 -90
  43. package/dist/agentChat/AgentChat.js.map +1 -1
  44. package/dist/agentChat/OptionsDrawer.js +1 -1
  45. package/dist/agentChat/OptionsDrawer.js.map +1 -1
  46. package/dist/agentChat/PlanReview.d.ts +37 -5
  47. package/dist/agentChat/PlanReview.d.ts.map +1 -1
  48. package/dist/agentChat/PlanReview.js +192 -24
  49. package/dist/agentChat/PlanReview.js.map +1 -1
  50. package/dist/agentChat/controller.d.ts +16 -1
  51. package/dist/agentChat/controller.d.ts.map +1 -1
  52. package/dist/agentChat/controller.js.map +1 -1
  53. package/dist/chatSkin.d.ts +20 -0
  54. package/dist/chatSkin.d.ts.map +1 -0
  55. package/dist/chatSkin.js +220 -0
  56. package/dist/chatSkin.js.map +1 -0
  57. package/dist/chatSkinContext.d.ts +55 -0
  58. package/dist/chatSkinContext.d.ts.map +1 -0
  59. package/dist/chatSkinContext.js +16 -0
  60. package/dist/chatSkinContext.js.map +1 -0
  61. package/dist/chatSkinCss.d.ts +3 -0
  62. package/dist/chatSkinCss.d.ts.map +1 -0
  63. package/dist/chatSkinCss.js +202 -0
  64. package/dist/chatSkinCss.js.map +1 -0
  65. package/dist/commandTurn.d.ts +4 -1
  66. package/dist/commandTurn.d.ts.map +1 -1
  67. package/dist/commandTurn.js +13 -1
  68. package/dist/commandTurn.js.map +1 -1
  69. package/dist/contextCopy.d.ts +13 -0
  70. package/dist/contextCopy.d.ts.map +1 -0
  71. package/dist/contextCopy.js +20 -0
  72. package/dist/contextCopy.js.map +1 -0
  73. package/dist/toolRender.d.ts.map +1 -1
  74. package/dist/toolRender.js +7 -6
  75. package/dist/toolRender.js.map +1 -1
  76. package/dist/transcriptSkin.d.ts +23 -1
  77. package/dist/transcriptSkin.d.ts.map +1 -1
  78. package/dist/transcriptSkin.js +134 -9
  79. package/dist/transcriptSkin.js.map +1 -1
  80. package/dist/transcriptSkinCss.d.ts.map +1 -1
  81. package/dist/transcriptSkinCss.js +17 -10
  82. package/dist/transcriptSkinCss.js.map +1 -1
  83. package/package.json +5 -5
@@ -14,14 +14,18 @@ import { enabledSkillCatalog, subscribeSkills } from '@corenel/harness/skills';
14
14
  import { skillIndex, createSkillTool } from '@corenel/harness/tools/skillTool';
15
15
  import { subscribeLoadedTools } from '@corenel/tools-web/sessionLoadedTools';
16
16
  import { selectionFile, BASE_SYSTEM_FILE } from '@corenel/harness/prompts/systemPromptSelection';
17
- import { IcTrash, IcZap, IcChevron } from '@corenel/ui-kit/icons';
18
- import { ContextStrip } from './ContextStrip';
17
+ import { IcTrash, IcZap, IcChevron, IcAlert } from '@corenel/ui-kit/icons';
18
+ import { ContextStrip, STRIP_COLOR } from './ContextStrip';
19
+ import { CACHE_WARNING_TITLE, CACHE_WARNING_TURN } from './contextCopy';
19
20
  import { ExclusionsModal } from './ExclusionsModal';
20
21
  import { COMPACT_AT_FILL } from '@corenel/harness/core/compactHistory';
21
- import { isCheckpointTurn } from '@corenel/harness/conversation';
22
+ import { isCheckpointTurn, foldPoint, isFoldedTurn } from '@corenel/harness/conversation';
22
23
  /** The strip key for the system-prompt block. Not a turn id, and cannot collide
23
24
  * with one: turn ids are `t<base36>` / `n<base36>`. */
24
25
  const SYSTEM_BLOCK = '__system__';
26
+ /** The strip key for the folded-history block: the folded view, sent as one
27
+ * block in place of the turns it stands for. Same no-collision rule. */
28
+ const FOLD_BLOCK = '__folded__';
25
29
  const PARTS = [
26
30
  { key: 'persona', label: 'Persona', est: 300 },
27
31
  { key: 'mode', label: 'Mode', est: 200 },
@@ -36,18 +40,23 @@ const SYS_BASE_EST = 600; // systems/system-base.md baseline (always included)
36
40
  * committed) so mounting the drawer never re-encodes the whole conversation;
37
41
  * re-count when the counter itself upgrades (heuristic -> BPE). */
38
42
  const turnTokCache = new WeakMap();
39
- export function turnTokens(t) {
43
+ /** Tokens in a message array, cached on the array's identity. A folded view is
44
+ * immutable once stamped, like a committed turn, so it is counted the same way. */
45
+ function messagesTokens(messages) {
40
46
  const ver = tokenCountsVersion();
41
- const hit = turnTokCache.get(t.messages);
47
+ const hit = turnTokCache.get(messages);
42
48
  if (hit && hit.ver === ver)
43
49
  return hit.tok;
44
50
  let s = '';
45
- for (const m of t.messages)
51
+ for (const m of messages)
46
52
  s += typeof m.content === 'string' ? m.content : JSON.stringify(m.content ?? '');
47
53
  const tok = estimateTokens(s);
48
- turnTokCache.set(t.messages, { ver, tok });
54
+ turnTokCache.set(messages, { ver, tok });
49
55
  return tok;
50
56
  }
57
+ export function turnTokens(t) {
58
+ return messagesTokens(t.messages);
59
+ }
51
60
  /** Pull readable text from a message's content, which may be a plain string or
52
61
  * an array of parts (multimodal turns carry `[{type:'text',text},{type:'image'…}]`). */
53
62
  function textOf(content) {
@@ -114,15 +123,19 @@ export function bucketOffloads(records, turns) {
114
123
  }
115
124
  /** One offloaded record under NOT SENT: zap + tool + size + source-turn
116
125
  * attribution, an optional Restore action, and the expandable preview. */
117
- export function OffloadRow({ record, fromLabel, sourceDropped, onRestore, note }) {
126
+ export function OffloadRow({ record, fromLabel, sourceDropped, lockedLabel, onRestore, note }) {
118
127
  const [open, setOpen] = useState(false);
119
- return (_jsxs("div", { style: S.offWrap, children: [_jsxs("div", { style: S.off, children: [_jsxs("button", { style: S.offMain, onClick: () => setOpen((o) => !o), title: `Show a preview of the frozen content (${tokOf(record.bytes)})`, children: [_jsx("span", { style: { ...S.chev, transform: open ? 'rotate(90deg)' : 'none' }, children: _jsx(IcChevron, { size: 12 }) }), _jsx("span", { style: S.zap, children: _jsx(IcZap, { size: 11 }) }), _jsx("span", { style: S.offName, children: record.toolName }), _jsx("span", { style: S.offMeta, children: kb(record.bytes) }), fromLabel && _jsxs("span", { style: S.offFrom, title: fromLabel, children: ["from \u201C", fromLabel.slice(0, 32), fromLabel.length > 32 ? '…' : '', "\u201D"] })] }), onRestore && (_jsx("button", { style: S.turnAction, onClick: onRestore, title: sourceDropped
120
- ? 'Restore the full content into its turn (replaces the stub; removes this frozen copy). That turn is currently dropped — restore the turn too for the model to see it.'
121
- : 'Restore the full content into its turn in the window (replaces the stub; removes this frozen copy)', children: "Restore" }))] }), note && _jsx("div", { style: S.offNote, children: note }), open && _jsxs("pre", { style: S.preview, children: [record.content.slice(0, 600), record.content.length > 600 ? '…' : ''] })] }));
128
+ return (_jsxs("div", { style: S.offWrap, children: [_jsxs("div", { style: S.off, children: [_jsxs("button", { style: S.offMain, onClick: () => setOpen((o) => !o), title: `Show a preview of the frozen content (${tokOf(record.bytes)})`, children: [_jsx("span", { style: { ...S.chev, transform: open ? 'rotate(90deg)' : 'none' }, children: _jsx(IcChevron, { size: 12 }) }), _jsx("span", { style: S.zap, children: _jsx(IcZap, { size: 11 }) }), _jsx("span", { style: S.offName, children: record.toolName }), _jsx("span", { style: S.offMeta, children: kb(record.bytes) }), lockedLabel && _jsx("span", { style: S.offFrom, title: "Its turn is at or before the fold, so it cannot be restored into the window.", children: lockedLabel }), !lockedLabel && fromLabel && _jsxs("span", { style: S.offFrom, title: fromLabel, children: ["from \u201C", fromLabel.slice(0, 32), fromLabel.length > 32 ? '…' : '', "\u201D"] })] }), onRestore && (_jsx("button", { style: S.turnAction, onClick: onRestore,
129
+ /* The cache warning only where it is true: restoring into a DROPPED
130
+ turn changes nothing the model sees, since the turn is still not
131
+ sent. */
132
+ title: sourceDropped
133
+ ? 'Restore the full content into its turn (replaces the stub; removes this frozen copy). That turn is currently dropped, so restore the turn too for the model to see it.'
134
+ : `Restore the full content into its turn in the window (replaces the stub; removes this frozen copy). ${CACHE_WARNING_TITLE}`, children: "Restore" }))] }), note && _jsx("div", { style: S.offNote, children: note }), open && _jsxs("pre", { style: S.preview, children: [record.content.slice(0, 600), record.content.length > 600 ? '…' : ''] })] }));
122
135
  }
123
136
  /** A dropped turn under NOT SENT. */
124
137
  export function DroppedTurnRow({ turn, tok, onRestore }) {
125
- return (_jsxs("div", { style: S.turnCardHead, children: [_jsx("span", { style: { ...S.turnText, color: 'var(--text-tertiary)' }, children: turnLabel(turn) }), _jsx("span", { style: S.turnMeta, children: fmtTok(tok) }), _jsx("button", { style: S.turnAction, onClick: onRestore, title: "Include this turn \u2014 it moves back into the window and is sent to the model", children: "Restore" })] }));
138
+ return (_jsxs("div", { style: S.turnCardHead, children: [_jsx("span", { style: { ...S.turnText, color: 'var(--text-tertiary)' }, children: turnLabel(turn) }), _jsx("span", { style: S.turnMeta, children: fmtTok(tok) }), _jsx("button", { style: S.turnAction, onClick: onRestore, title: `Include this turn. It moves back into the window and is sent to the model. ${CACHE_WARNING_TITLE}`, children: "Restore" })] }));
126
139
  }
127
140
  /**
128
141
  * Live projected context composition: system prompt (base + enabled parts) + the
@@ -211,15 +224,26 @@ sessionId) {
211
224
  * again -- a committed turn array is immutable, so the heuristic counts taken
212
225
  * on the first render would stand forever. It went unnoticed while the
213
226
  * upgrade happened at boot, before any drawer had rendered a number. */
214
- const perTurn = useMemo(() => turns.map((t) => ({ t, tok: turnTokens(t) })), [turns, countsVer]);
215
- const turnsTok = perTurn.reduce((n, x) => n + (x.t.included ? x.tok : 0), 0);
227
+ /* AFTER A FOLD, WHAT IS SENT IS THE VIEW. The runtime sends the newest
228
+ * usable folded view plus the included turns after the user turn it folded
229
+ * through (foldPoint -- the one rule both sides read). Summing the raw
230
+ * included turns instead counted every folded turn again, so the figure
231
+ * overstated the request by the whole history the fold replaced. */
232
+ const fp = useMemo(() => foldPoint(turns), [turns]);
233
+ const perTurn = useMemo(() => turns.map((t, i) => ({ t, tok: turnTokens(t), beforeFold: isFoldedTurn(turns, i, fp) })), [turns, fp, countsVer]);
234
+ const viewTok = useMemo(() => (fp ? messagesTokens(fp.view) : 0), [fp, countsVer]);
235
+ /** Turns sent on their own: included, and not represented by the view. */
236
+ const sentTurns = perTurn.filter((x, i) => x.t.included && (!fp || i > fp.throughIndex));
237
+ const turnsTok = viewTok + sentTurns.reduce((n, x) => n + x.tok, 0);
216
238
  const projected = systemTok + turnsTok;
217
239
  const w = Math.max(1, contextWindow);
218
240
  return {
219
241
  turns, partTok, systemTok, skillsTok, skillCount, perTurn, turnsTok, projected,
242
+ /** The fold point the next send starts from and its view's size; null / 0 with no fold. */
243
+ fold: fp, viewTok,
220
244
  pct: Math.min(100, Math.round((projected / w) * 100)),
221
245
  over: projected > contextWindow,
222
- includedCount: perTurn.filter((x) => x.t.included).length,
246
+ includedCount: sentTurns.length,
223
247
  };
224
248
  }
225
249
  export function ContextManagerBody({ contextWindow, systemSource, offloaded: offloadedSource, conversation, sessionId }) {
@@ -274,7 +298,7 @@ export function ContextManagerBody({ contextWindow, systemSource, offloaded: off
274
298
  }, []);
275
299
  const usage = usageSummary(conversation.turns, getUsageTurns());
276
300
  // ---- projected composition (estimate) — shared with the collapsed ContextBar ----
277
- const { turns, partTok, systemTok, skillsTok, skillCount, perTurn, turnsTok, projected, pct, over } = useContextProjection(contextWindow, parts, conversation, sessionId);
301
+ const { turns, partTok, systemTok, skillsTok, skillCount, perTurn, turnsTok, projected, pct, over, fold, viewTok } = useContextProjection(contextWindow, parts, conversation, sessionId);
278
302
  const w = Math.max(1, contextWindow);
279
303
  const reclaimedBytes = offloaded.reduce((n, o) => n + o.bytes, 0);
280
304
  const thr = effectiveThreshold(preset, projected / w);
@@ -286,15 +310,23 @@ export function ContextManagerBody({ contextWindow, systemSource, offloaded: off
286
310
  * which would have put a description of the model's own forgetting into its
287
311
  * window, the one thing the seam design forbids. Found by opening the panel
288
312
  * on a conversation that had actually compacted. */
313
+ /* A TURN AT OR BEFORE THE FOLD IS NEITHER SENT NOR "NOT SENT". The runtime
314
+ * refuses to include, drop or restore into any of them, so none is listed in
315
+ * either group below or offered a Drop or Restore. An INCLUDED one is folded:
316
+ * the folded view stands for it, and it is drawn inside the one Folded
317
+ * history block. An excluded one was never sent to the folding run, so it is
318
+ * not counted as folded either. */
289
319
  const conversational = perTurn.filter((x) => !isCheckpointTurn(x.t));
290
- const warmTurns = conversational.filter((x) => x.t.included);
291
- const coldTurns = conversational.filter((x) => !x.t.included);
320
+ const warmTurns = conversational.filter((x) => x.t.included && !x.beforeFold);
321
+ const coldTurns = conversational.filter((x) => !x.t.included && !x.beforeFold);
322
+ const foldedCount = conversational.filter((x) => x.beforeFold && x.t.included).length;
292
323
  const offParts = PARTS.filter((p) => !parts[p.key]);
293
324
  const attributed = [...byTurn.entries()].flatMap(([turnId, recs]) => {
294
- const t = turns.find((x) => x.id === turnId);
295
- const label = t ? turnLabel(t) : null;
296
- const sourceDropped = t ? !t.included : false;
297
- return recs.map((r) => ({ r, turnId, label, sourceDropped }));
325
+ const row = perTurn.find((x) => x.t.id === turnId);
326
+ const label = row ? turnLabel(row.t) : null;
327
+ const sourceDropped = row ? !row.t.included : false;
328
+ const lockedLabel = row?.beforeFold ? (row.t.included ? 'In folded history' : 'Not sent before the fold') : undefined;
329
+ return recs.map((r) => ({ r, turnId, label, sourceDropped, lockedLabel }));
298
330
  });
299
331
  const partsTok = offParts.reduce((n, p) => n + partTok(p.key), 0); // DISABLED SYSTEM PARTS estimate — not offloads
300
332
  const droppedTok = coldTurns.reduce((n, x) => n + x.tok, 0);
@@ -309,6 +341,8 @@ export function ContextManagerBody({ contextWindow, systemSource, offloaded: off
309
341
  * keeps them off the strip as well.) */
310
342
  const blocks = [
311
343
  ...(systemTok > 0 ? [{ key: SYSTEM_BLOCK, kind: 'system', label: 'System prompt', tok: systemTok }] : []),
344
+ // The folded view, drawn where the turns it stands for used to be.
345
+ ...(fold ? [{ key: FOLD_BLOCK, kind: 'folded', label: 'Folded history', tok: viewTok }] : []),
312
346
  ...warmTurns.map(({ t, tok }) => ({ key: t.id, kind: 'turn', label: turnLabel(t), tok })),
313
347
  ];
314
348
  /* OPENS ON THE LARGEST BLOCK, because that is the question this panel is here
@@ -360,12 +394,12 @@ export function ContextManagerBody({ contextWindow, systemSource, offloaded: off
360
394
  /** Which composed parts this conversation's system prompt actually carries —
361
395
  * where its tokens come from, which is the panel's whole question. */
362
396
  const composedIn = PARTS.filter((x) => parts[x.key]).map((x) => x.label);
363
- return (_jsxs("div", { style: S.panel, children: [_jsxs("div", { style: S.body, children: [_jsxs("div", { style: S.section, children: [_jsxs("div", { style: S.budgetHead, children: [_jsxs("span", { style: S.bigNum, title: "Estimated tokens if you run now", children: [fmtTok(projected), _jsxs("span", { style: S.bigDim, children: [" / ", fmtTok(contextWindow)] })] }), _jsxs("span", { style: { ...S.pctChip, ...(over ? S.pctOver : null) }, children: [pct, "%"] })] }), _jsx("div", { "data-testid": "context-strip", children: _jsx(ContextStrip, { blocks: blocks, contextWindow: contextWindow, selected: selectedKey, onSelect: setSel }) }), _jsxs("div", { style: S.legend, children: [_jsx(Legend, { c: "var(--accent)", k: "System", v: fmtTok(systemTok) }), _jsx(Legend, { c: "var(--brand-cyan, #3fb6d4)", k: "Turns", v: fmtTok(turnsTok) }), _jsx(Legend, { c: "var(--surface-3)", k: "Free", v: fmtTok(Math.max(0, contextWindow - projected)) }), _jsx("span", { style: { ...S.actions, marginLeft: 'auto' }, children: _jsxs("button", { style: S.miniBtn, onClick: () => setManageOpen(true), title: "Choose which turns the model receives", children: ["Manage turns", conversational.length > 0 ? ` (${conversational.length})` : ''] }) })] }), _jsxs("div", { style: S.compactRow, children: [_jsx("span", { style: { ...S.pctChip, ...(projected >= compactAt ? S.pctWarn : null) }, children: projected >= compactAt
397
+ return (_jsxs("div", { style: S.panel, children: [_jsxs("div", { style: S.body, children: [_jsxs("div", { style: S.section, children: [_jsxs("div", { style: S.budgetHead, children: [_jsxs("span", { style: S.bigNum, title: "Estimated tokens if you run now", children: [fmtTok(projected), _jsxs("span", { style: S.bigDim, children: [" / ", fmtTok(contextWindow)] })] }), _jsxs("span", { style: { ...S.pctChip, ...(over ? S.pctOver : null) }, children: [pct, "%"] })] }), _jsx("div", { "data-testid": "context-strip", children: _jsx(ContextStrip, { blocks: blocks, contextWindow: contextWindow, selected: selectedKey, onSelect: setSel }) }), _jsxs("div", { style: S.legend, children: [_jsx(Legend, { c: "var(--accent)", k: "System", v: fmtTok(systemTok) }), fold && _jsx(Legend, { c: STRIP_COLOR.folded, k: "Folded", v: fmtTok(viewTok), testId: "legend-folded" }), _jsx(Legend, { c: STRIP_COLOR.turn, k: "Turns", v: fmtTok(turnsTok - viewTok), testId: "legend-turns" }), _jsx(Legend, { c: "var(--surface-3)", k: "Free", v: fmtTok(Math.max(0, contextWindow - projected)) }), _jsx("span", { style: { ...S.actions, marginLeft: 'auto' }, children: _jsxs("button", { style: S.miniBtn, onClick: () => setManageOpen(true), title: "Choose which turns the model receives", children: ["Manage turns", conversational.length > 0 ? ` (${conversational.length})` : ''] }) })] }), _jsxs("div", { style: S.compactRow, children: [_jsx("span", { style: { ...S.pctChip, ...(projected >= compactAt ? S.pctWarn : null) }, children: projected >= compactAt
364
398
  ? `at ${Math.round(COMPACT_AT_FILL * 100)}% — the next run compacts first`
365
- : `compacts at ${Math.round(COMPACT_AT_FILL * 100)}% · ${fmtTok(compactAt - projected)} to go` }), seamCount > 0 && (_jsxs("span", { style: S.secMeta, title: "Compactions in this conversation. Each left a seam in the transcript you can expand to read.", children: [seamCount === 1 ? '1 checkpoint' : `${seamCount} checkpoints`, " so far"] })), reclaimedBytes > 0 && (_jsxs("span", { style: S.savedChip, title: "Offloaded tool outputs \u2014 frozen out of the window, recoverable on demand", children: [_jsx("span", { style: S.zap, children: _jsx(IcZap, { size: 11 }) }), _jsx("b", { style: S.savedNum, children: kb(reclaimedBytes) }), "\u00A0offloaded", offloadedSource && (_jsx("button", { style: S.savedClear, onClick: () => { offloadedSource.clear().then(refresh); }, title: "Clear offloaded results", "aria-label": "Clear offloaded results", children: _jsx(IcTrash, { size: 11 }) }))] }))] }), _jsxs("div", { style: S.estNote, children: [preset === 'off' ? 'Compression off — large results are never offloaded.' : `Offloads results over ${(thr / 1000).toFixed(1)} KB at this fill (${preset}).`, ' ', "Projected estimate \u2014 system-prompt size is approximate.", usage.lastContext !== null ? ` Last request ${fmtTok(usage.lastContext)}.` : ''] })] }), selected && (_jsxs("div", { style: S.detail, "data-testid": "context-detail", children: [_jsxs("div", { style: S.rowHead, children: [_jsxs("span", { style: S.secLabel, children: [_jsx("span", { style: { ...S.tempDot, background: selected.kind === 'system' ? 'var(--accent)' : 'var(--brand-cyan, #3fb6d4)' } }), selected.kind === 'system' ? 'System prompt' : 'Selected turn'] }), _jsxs("span", { style: S.secMeta, children: [fmtTok(selected.tok), " \u00B7 ", shareOfWindow(selected.tok)] })] }), _jsx("div", { style: S.detailText, children: selected.label }), selected.kind === 'turn' && (_jsxs("div", { style: S.actions, children: [_jsx("button", { style: S.turnAction, onClick: () => toggleInclude(selected.key), title: "Drop this turn \u2014 it moves to Not sent and is not sent to the model", children: "Drop" }), frozenBytesFor(selected.key) > 0 && (_jsxs("span", { style: S.secMeta, title: "This turn's large outputs were offloaded \u2014 a stub is in the window. Restore them under Not sent.", children: [kb(frozenBytesFor(selected.key)), " frozen"] }))] })), selected.kind === 'system' && (_jsx("div", { style: S.estNote, children: "The system prompt is always sent. Its parts are below." }))] })), usage.session.turns > 0 && (_jsxs("div", { style: S.section, "data-testid": "usage", children: [_jsx("div", { style: S.rowHead, children: _jsx("span", { style: S.secLabel, children: "Usage" }) }), _jsxs("div", { style: { ...S.usageBox, ...S.usageGrid }, role: "table", "aria-label": "Token usage and cost", tabIndex: 0, children: [['', 'context', 'billed in', 'calls', 'cached', 'out', 'cost'].map((h) => (_jsx("span", { style: S.usageHead, role: "columnheader", children: h }, h || 'label'))), _jsxs("div", { style: S.usageRow, role: "row", "data-testid": "usage-session", children: [_jsx("span", { style: S.usageLabel, children: "Session" }), _jsx("span", { style: S.usageNum, children: "\u2014" }), _jsx("span", { style: S.usageNum, children: usage.session.inTok.toLocaleString() }), _jsx("span", { style: S.usageNum, children: usage.session.calls === null ? '—' : usage.session.calls.toLocaleString() }), _jsx("span", { style: S.usageNum, children: usage.session.cachedTok === null ? '—' : usage.session.cachedTok.toLocaleString() }), _jsx("span", { style: S.usageNum, children: usage.session.outTok.toLocaleString() }), _jsxs("span", { style: S.usageNum, children: ["$", usage.session.cost.toFixed(4)] })] }), usage.recent.map((r) => (_jsxs("div", { style: S.usageRow, role: "row", "data-testid": "usage-turn", children: [_jsxs("span", { style: S.usageLabelDim, children: ["Turn ", r.index] }), _jsx("span", { style: S.usageNum, children: r.ctxTok === null ? '—' : r.ctxTok.toLocaleString() }), _jsx("span", { style: S.usageNum, children: r.inTok.toLocaleString() }), _jsx("span", { style: S.usageNum, children: r.calls === null ? '—' : r.calls.toLocaleString() }), _jsx("span", { style: S.usageNum, children: r.cachedTok === null ? '—' : r.cachedTok.toLocaleString() }), _jsx("span", { style: S.usageNum, children: r.outTok.toLocaleString() }), _jsxs("span", { style: S.usageNum, children: ["$", r.cost.toFixed(4)] })] }, r.id)))] }), _jsxs("div", { style: S.quietRow, children: [_jsx("span", { style: S.estNote, children: "context = a turn's largest single request, the same measure as the window above." }), _jsx("span", { style: S.estNote, children: "billed in = the prompt sent on every model call, added up; a turn with 3 calls bills it 3 times." })] })] })), _jsxs("div", { style: S.section, "data-testid": "system-row", children: [_jsxs("div", { style: S.sysRowStatic, children: [_jsx("span", { style: S.sysLabel, children: "System prompt" }), shownSource && _jsx("code", { style: S.sourceCode, title: "The system prompt file this conversation runs under", children: shownSource }), _jsxs("span", { style: S.secMeta, children: ["~", fmtTok(systemTok)] })] }), _jsxs("div", { style: S.quietRow, children: [_jsxs("span", { style: S.estNote, children: [composedIn.length > 0 ? `Includes ${composedIn.join(', ')}.` : 'Base prompt only.', parts.baseSystem ? ' File-type prompt overridden.' : ''] }), skillsTok > 0 && (_jsxs("span", { style: S.estNote, "data-testid": "system-skills", children: [skillCount, " skill", skillCount === 1 ? '' : 's', " listed: ~", fmtTok(skillsTok), ". Each loads its full instructions only when the agent uses it."] })), _jsx("span", { style: S.estNote, children: "Fixed for this conversation \u2014 Settings sets it for new conversations." })] })] }), !notSentEmpty && (_jsxs("div", { style: S.section, children: [_jsxs("button", { style: S.foldHead, onClick: () => setNotSentOpen((o) => !o), "aria-expanded": notSentOpen, title: "Everything excluded from the next request \u2014 parts you disabled, turns you dropped, and large outputs compression froze.", children: [_jsx("span", { style: { ...S.chev, transform: notSentOpen ? 'rotate(90deg)' : 'none' }, children: _jsx(IcChevron, { size: 12 }) }), _jsxs("span", { style: S.secLabel, children: [_jsx("span", { style: { ...S.tempDot, background: 'var(--surface-3)' } }), "Not sent"] }), _jsx("span", { style: { ...S.secMeta, marginLeft: 'auto' }, children: notSentSummary })] }), notSentOpen && (_jsxs("div", { style: S.list, children: [offParts.length > 0 && (_jsxs(_Fragment, { children: [_jsxs("span", { style: S.subLabel, title: "System-prompt parts this conversation was started without \u2014 its system prompt omits them. Settings sets this for new conversations.", children: ["System parts \u00B7 ", offParts.length, " \u00B7 ~", fmtTok(partsTok)] }), offParts.map((p) => (_jsxs("div", { style: S.turnCardHead, children: [_jsx("span", { style: { ...S.turnText, color: 'var(--text-tertiary)' }, children: p.label }), _jsxs("span", { style: S.turnMeta, children: ["~", fmtTok(partTok(p.key))] })] }, p.key)))] })), coldTurns.length > 0 && (_jsxs(_Fragment, { children: [_jsxs("span", { style: S.subLabel, title: "Whole exchanges you excluded \u2014 the model does not see them. Restore puts one back in the window.", children: ["Dropped turns \u00B7 ", coldTurns.length, " \u00B7 ", fmtTok(droppedTok)] }), coldTurns.map(({ t, tok }) => (_jsx(DroppedTurnRow, { turn: t, tok: tok, onRestore: () => toggleInclude(t.id) }, t.id)))] })), offloaded.length > 0 && (_jsxs(_Fragment, { children: [_jsxs("span", { style: S.subLabel, title: "Large tool outputs the compression setting froze out of the window. For each, a short stub pointing at it stays in its turn, and the assistant can pull the content back itself with recall_result.", children: ["Offloaded outputs \u00B7 ", offloaded.length, " \u00B7 ", kb(reclaimedBytes)] }), attributed.map(({ r, turnId, label, sourceDropped }) => (_jsx(OffloadRow, { record: r, fromLabel: label, sourceDropped: sourceDropped, note: restoreNotes[r.id], onRestore: offloadedSource ? () => { void restore(turnId, r); } : undefined }, r.id))), unattached.length > 0 && (_jsxs(_Fragment, { children: [_jsxs("span", { style: S.subLabel, title: "Frozen outputs whose turn is no longer in this conversation \u2014 nothing in the window points at them. Preview here, or clear them with the trash button in the header above.", children: ["Unattached \u00B7 ", unattached.length, " \u00B7 ", kb(unattached.reduce((n, r) => n + r.bytes, 0))] }), unattached.map((r) => _jsx(OffloadRow, { record: r, fromLabel: null }, r.id))] }))] }))] }))] }))] }), manageOpen && (_jsx(ExclusionsModal, { rows: conversational, contextWindow: contextWindow, toggleInclude: toggleInclude, onClose: () => setManageOpen(false) }))] }));
399
+ : `compacts at ${Math.round(COMPACT_AT_FILL * 100)}% · ${fmtTok(compactAt - projected)} to go` }), seamCount > 0 && (_jsxs("span", { style: S.secMeta, title: "Compactions in this conversation. Each left a seam in the transcript you can expand to read.", children: [seamCount === 1 ? '1 checkpoint' : `${seamCount} checkpoints`, " so far"] })), reclaimedBytes > 0 && (_jsxs("span", { style: S.savedChip, title: "Offloaded tool outputs \u2014 frozen out of the window, recoverable on demand", children: [_jsx("span", { style: S.zap, children: _jsx(IcZap, { size: 11 }) }), _jsx("b", { style: S.savedNum, children: kb(reclaimedBytes) }), "\u00A0offloaded", offloadedSource && (_jsx("button", { style: S.savedClear, onClick: () => { offloadedSource.clear().then(refresh); }, title: "Clear offloaded results", "aria-label": "Clear offloaded results", children: _jsx(IcTrash, { size: 11 }) }))] }))] }), foldedCount > 0 && (_jsxs("div", { style: S.estNote, "data-testid": "folded-note", children: [foldedCount === 1 ? '1 earlier turn is' : `${foldedCount} earlier turns are`, " folded into the summary. The assistant can search them with recall_history."] })), _jsxs("div", { style: S.estNote, children: [preset === 'off' ? 'Compression off — large results are never offloaded.' : `Offloads results over ${(thr / 1000).toFixed(1)} KB at this fill (${preset}).`, ' ', "Projected estimate \u2014 system-prompt size is approximate.", usage.lastContext !== null ? ` Last request ${fmtTok(usage.lastContext)}.` : ''] })] }), selected && (_jsxs("div", { style: S.detail, "data-testid": "context-detail", children: [_jsxs("div", { style: S.rowHead, children: [_jsxs("span", { style: S.secLabel, children: [_jsx("span", { style: { ...S.tempDot, background: STRIP_COLOR[selected.kind] } }), selected.kind === 'system' ? 'System prompt' : selected.kind === 'folded' ? 'Folded history' : 'Selected turn'] }), _jsxs("span", { style: S.secMeta, children: [fmtTok(selected.tok), " \u00B7 ", shareOfWindow(selected.tok)] })] }), selected.kind !== 'folded' && _jsx("div", { style: S.detailText, children: selected.label }), selected.kind === 'folded' && (_jsx("div", { style: S.estNote, children: "Summary, pinned directives and recent messages from before the fold. It is sent as one block." })), selected.kind === 'turn' && (_jsxs(_Fragment, { children: [_jsxs("div", { style: S.actions, children: [_jsx("button", { style: S.turnAction, onClick: () => toggleInclude(selected.key), title: `Drop this turn. It moves to Not sent and is not sent to the model. ${CACHE_WARNING_TITLE}`, children: "Drop" }), frozenBytesFor(selected.key) > 0 && (_jsxs("span", { style: S.secMeta, title: "This turn's large outputs were offloaded \u2014 a stub is in the window. Restore them under Not sent.", children: [kb(frozenBytesFor(selected.key)), " frozen"] }))] }), _jsxs("div", { style: S.warnNote, "data-testid": "cache-warning", children: [_jsx("span", { style: S.warnIcon, "aria-hidden": "true", children: _jsx(IcAlert, { size: 12 }) }), CACHE_WARNING_TURN] })] })), selected.kind === 'system' && (_jsx("div", { style: S.estNote, children: "The system prompt is always sent. Its parts are below." }))] })), usage.session.turns > 0 && (_jsxs("div", { style: S.section, "data-testid": "usage", children: [_jsx("div", { style: S.rowHead, children: _jsx("span", { style: S.secLabel, children: "Usage" }) }), _jsxs("div", { style: { ...S.usageBox, ...S.usageGrid }, role: "table", "aria-label": "Token usage and cost", tabIndex: 0, children: [['', 'context', 'billed in', 'calls', 'cached', 'out', 'cost'].map((h) => (_jsx("span", { style: S.usageHead, role: "columnheader", children: h }, h || 'label'))), _jsxs("div", { style: S.usageRow, role: "row", "data-testid": "usage-session", children: [_jsx("span", { style: S.usageLabel, children: "Session" }), _jsx("span", { style: S.usageNum, children: "\u2014" }), _jsx("span", { style: S.usageNum, children: usage.session.inTok.toLocaleString() }), _jsx("span", { style: S.usageNum, children: usage.session.calls === null ? '—' : usage.session.calls.toLocaleString() }), _jsx("span", { style: S.usageNum, children: usage.session.cachedTok === null ? '—' : usage.session.cachedTok.toLocaleString() }), _jsx("span", { style: S.usageNum, children: usage.session.outTok.toLocaleString() }), _jsxs("span", { style: S.usageNum, children: ["$", usage.session.cost.toFixed(4)] })] }), usage.recent.map((r) => (_jsxs("div", { style: S.usageRow, role: "row", "data-testid": "usage-turn", children: [_jsxs("span", { style: S.usageLabelDim, children: ["Turn ", r.index] }), _jsx("span", { style: S.usageNum, children: r.ctxTok === null ? '—' : r.ctxTok.toLocaleString() }), _jsx("span", { style: S.usageNum, children: r.inTok.toLocaleString() }), _jsx("span", { style: S.usageNum, children: r.calls === null ? '—' : r.calls.toLocaleString() }), _jsx("span", { style: S.usageNum, children: r.cachedTok === null ? '—' : r.cachedTok.toLocaleString() }), _jsx("span", { style: S.usageNum, children: r.outTok.toLocaleString() }), _jsxs("span", { style: S.usageNum, children: ["$", r.cost.toFixed(4)] })] }, r.id)))] }), _jsxs("div", { style: S.quietRow, children: [_jsx("span", { style: S.estNote, children: "context = a turn's largest single request, the same measure as the window above." }), _jsx("span", { style: S.estNote, children: "billed in = the prompt sent on every model call, added up; a turn with 3 calls bills it 3 times." })] })] })), _jsxs("div", { style: S.section, "data-testid": "system-row", children: [_jsxs("div", { style: S.sysRowStatic, children: [_jsx("span", { style: S.sysLabel, children: "System prompt" }), shownSource && _jsx("code", { style: S.sourceCode, title: "The system prompt file this conversation runs under", children: shownSource }), _jsxs("span", { style: S.secMeta, children: ["~", fmtTok(systemTok)] })] }), _jsxs("div", { style: S.quietRow, children: [_jsxs("span", { style: S.estNote, children: [composedIn.length > 0 ? `Includes ${composedIn.join(', ')}.` : 'Base prompt only.', parts.baseSystem ? ' File-type prompt overridden.' : ''] }), skillsTok > 0 && (_jsxs("span", { style: S.estNote, "data-testid": "system-skills", children: [skillCount, " skill", skillCount === 1 ? '' : 's', " listed: ~", fmtTok(skillsTok), ". Each loads its full instructions only when the agent uses it."] })), _jsx("span", { style: S.estNote, children: "Fixed for this conversation \u2014 Settings sets it for new conversations." })] })] }), !notSentEmpty && (_jsxs("div", { style: S.section, children: [_jsxs("button", { style: S.foldHead, onClick: () => setNotSentOpen((o) => !o), "aria-expanded": notSentOpen, title: "Everything excluded from the next request \u2014 parts you disabled, turns you dropped, and large outputs compression froze.", children: [_jsx("span", { style: { ...S.chev, transform: notSentOpen ? 'rotate(90deg)' : 'none' }, children: _jsx(IcChevron, { size: 12 }) }), _jsxs("span", { style: S.secLabel, children: [_jsx("span", { style: { ...S.tempDot, background: 'var(--surface-3)' } }), "Not sent"] }), _jsx("span", { style: { ...S.secMeta, marginLeft: 'auto' }, children: notSentSummary })] }), notSentOpen && (_jsxs("div", { style: S.list, children: [offParts.length > 0 && (_jsxs(_Fragment, { children: [_jsxs("span", { style: S.subLabel, title: "System-prompt parts this conversation was started without \u2014 its system prompt omits them. Settings sets this for new conversations.", children: ["System parts \u00B7 ", offParts.length, " \u00B7 ~", fmtTok(partsTok)] }), offParts.map((p) => (_jsxs("div", { style: S.turnCardHead, children: [_jsx("span", { style: { ...S.turnText, color: 'var(--text-tertiary)' }, children: p.label }), _jsxs("span", { style: S.turnMeta, children: ["~", fmtTok(partTok(p.key))] })] }, p.key)))] })), coldTurns.length > 0 && (_jsxs(_Fragment, { children: [_jsxs("span", { style: S.subLabel, title: "Whole exchanges you excluded \u2014 the model does not see them. Restore puts one back in the window.", children: ["Dropped turns \u00B7 ", coldTurns.length, " \u00B7 ", fmtTok(droppedTok)] }), coldTurns.map(({ t, tok }) => (_jsx(DroppedTurnRow, { turn: t, tok: tok, onRestore: () => toggleInclude(t.id) }, t.id)))] })), offloaded.length > 0 && (_jsxs(_Fragment, { children: [_jsxs("span", { style: S.subLabel, title: "Large tool outputs the compression setting froze out of the window. For each, a short stub pointing at it stays in its turn, and the assistant can pull the content back itself with recall_result.", children: ["Offloaded outputs \u00B7 ", offloaded.length, " \u00B7 ", kb(reclaimedBytes)] }), attributed.map(({ r, turnId, label, sourceDropped, lockedLabel }) => (_jsx(OffloadRow, { record: r, fromLabel: label, sourceDropped: sourceDropped, lockedLabel: lockedLabel, note: restoreNotes[r.id], onRestore: offloadedSource && !lockedLabel ? () => { void restore(turnId, r); } : undefined }, r.id))), unattached.length > 0 && (_jsxs(_Fragment, { children: [_jsxs("span", { style: S.subLabel, title: "Frozen outputs whose turn is no longer in this conversation \u2014 nothing in the window points at them. Preview here, or clear them with the trash button in the header above.", children: ["Unattached \u00B7 ", unattached.length, " \u00B7 ", kb(unattached.reduce((n, r) => n + r.bytes, 0))] }), unattached.map((r) => _jsx(OffloadRow, { record: r, fromLabel: null }, r.id))] }))] }))] }))] }))] }), manageOpen && (_jsx(ExclusionsModal, { rows: conversational, contextWindow: contextWindow, toggleInclude: toggleInclude, onClose: () => setManageOpen(false) }))] }));
366
400
  }
367
- function Legend({ c, k, v }) {
368
- return _jsxs("span", { style: S.legItem, children: [_jsx("span", { style: { ...S.legDot, background: c } }), k, " ", _jsx("span", { style: S.legVal, children: v })] });
401
+ function Legend({ c, k, v, testId }) {
402
+ return _jsxs("span", { style: S.legItem, "data-testid": testId, children: [_jsx("span", { style: { ...S.legDot, background: c } }), k, " ", _jsx("span", { style: S.legVal, children: v })] });
369
403
  }
370
404
  const mono = 'var(--font-mono)';
371
405
  const S = {
@@ -412,6 +446,9 @@ const S = {
412
446
  legDot: { width: 8, height: 8, borderRadius: 2, flexShrink: 0 },
413
447
  legVal: { color: 'var(--text-tertiary)', fontFamily: mono, fontVariantNumeric: 'tabular-nums' },
414
448
  estNote: { fontSize: 10.5, color: 'var(--text-disabled)' },
449
+ // estNote with a leading alert icon in the warning token pctWarn already uses.
450
+ warnNote: { display: 'flex', alignItems: 'center', gap: 5, fontSize: 10.5, color: 'var(--text-disabled)' },
451
+ warnIcon: { display: 'inline-flex', flexShrink: 0, color: 'var(--warning, #b45309)' },
415
452
  savedChip: { marginLeft: 'auto', display: 'inline-flex', alignItems: 'center', gap: 5, padding: '2px 4px 2px 9px', border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-pill, 999px)', background: 'color-mix(in srgb, var(--brand-purple, #8b5cf6) 10%, transparent)', color: 'var(--text-secondary)', fontSize: 11.5, fontWeight: 600 },
416
453
  savedNum: { fontFamily: mono, fontVariantNumeric: 'tabular-nums', fontWeight: 600, color: 'var(--text-primary)' },
417
454
  savedClear: { display: 'inline-flex', alignItems: 'center', justifyContent: 'center', width: 20, height: 20, border: 0, borderRadius: 999, background: 'transparent', color: 'var(--text-tertiary)', cursor: 'pointer' },
@@ -1 +1 @@
1
- {"version":3,"file":"ContextManager.js","sourceRoot":"","sources":["../ContextManager.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContextManager.js","sourceRoot":"","sources":["../ContextManager.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAE5D,OAAO,EAAE,kBAAkB,EAAwB,MAAM,8BAA8B,CAAC;AACxF,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAoB,MAAM,8BAA8B,CAAC;AAChF,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAChI,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,4BAA4B,EAAE,MAAM,wCAAwC,CAAC;AAC3G,OAAO,EAAE,4BAA4B,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACvG,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAC;AAEjG,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,WAAW,EAAmB,MAAM,gBAAgB,CAAC;AAC5E,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE1F;uDACuD;AACvD,MAAM,YAAY,GAAG,YAAY,CAAC;AAClC;wEACwE;AACxE,MAAM,UAAU,GAAG,YAAY,CAAC;AAoDhC,MAAM,KAAK,GAA6D;IACtE,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,EAAE;IAC9C,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE;IACxC,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,EAAE,GAAG,EAAE;IACpD,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,iCAAiC;CACnF,CAAC;AACF,MAAM,YAAY,GAAG,GAAG,CAAC,CAAC,oDAAoD;AAE9E;;;;;mEAKmE;AACnE,MAAM,YAAY,GAAG,IAAI,OAAO,EAAwC,CAAC;AAEzE;mFACmF;AACnF,SAAS,cAAc,CAAC,QAAsC;IAC5D,MAAM,GAAG,GAAG,kBAAkB,EAAE,CAAC;IACjC,MAAM,GAAG,GAAG,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACvC,IAAI,GAAG,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG;QAAE,OAAO,GAAG,CAAC,GAAG,CAAC;IAC3C,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,KAAK,MAAM,CAAC,IAAI,QAAQ;QAAE,CAAC,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAC3G,MAAM,GAAG,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;IAC9B,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IACzC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,CAAmB;IAC5C,OAAO,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACpC,CAAC;AACD;wFACwF;AACxF,SAAS,MAAM,CAAC,OAAgB;IAC9B,IAAI,OAAO,OAAO,KAAK,QAAQ;QAAE,OAAO,OAAO,CAAC;IAChD,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,OAAO,OAAO;aACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAQ,CAAwB,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;aAClI,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC;AACD,SAAS,SAAS,CAAC,CAAmB;IACpC,MAAM,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1E,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC;AAC9C,CAAC;AAED;;;;8EAI8E;AAE9E,sFAAsF;AACtF,MAAM,UAAU,WAAW,CAAC,EAAU;IACpC,MAAM,CAAC,GAAG,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACpC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IACpB,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAChD,CAAC;AAED,MAAM,EAAE,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC;AACxE,8EAA8E;AAC9E,4DAA4D;AAC5D,MAAM,KAAK,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;AAEhF;;oEAEoE;AACpE,MAAM,UAAU,cAAc,CAC5B,OAA0B,EAC1B,KAAuB;IAEvB,MAAM,MAAM,GAAG,KAAK;SACjB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SACjD,MAAM,CAAC,CAAC,CAAC,EAAmC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,CAAC;SAC5D,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAI,GAAG,EAA6B,CAAC;IACpD,MAAM,UAAU,GAAsB,EAAE,CAAC;IACzC,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC;QACvE,IAAI,KAAK,GAAkB,IAAI,CAAC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3B,IAAI,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;gBAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;gBAAC,MAAM;YAAC,CAAC;QACvG,CAAC;QACD,IAAI,KAAK,IAAI,IAAI,EAAE,CAAC;YAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAAC,SAAS;QAAC,CAAC;QACpD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC9C,MAAM,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC;AAChC,CAAC;AAED;0EAC0E;AAC1E,MAAM,UAAU,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,IAAI,EAe1F;IACC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,CACL,eAAK,KAAK,EAAE,CAAC,CAAC,OAAO,aACnB,eAAK,KAAK,EAAE,CAAC,CAAC,GAAG,aACf,kBAAQ,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,yCAAyC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,aACjI,eAAM,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,EAAE,YAAE,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,GAAO,EACtG,eAAM,KAAK,EAAE,CAAC,CAAC,GAAG,YAAE,KAAC,KAAK,IAAC,IAAI,EAAE,EAAE,GAAI,GAAO,EAC9C,eAAM,KAAK,EAAE,CAAC,CAAC,OAAO,YAAG,MAAM,CAAC,QAAQ,GAAQ,EAChD,eAAM,KAAK,EAAE,CAAC,CAAC,OAAO,YAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,GAAQ,EAChD,WAAW,IAAI,eAAM,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAC,8EAA8E,YAAE,WAAW,GAAQ,EAChJ,CAAC,WAAW,IAAI,SAAS,IAAI,gBAAM,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,SAAS,4BAAS,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,SAAS,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,cAAS,IACzI,EACR,SAAS,IAAI,CACZ,iBACE,KAAK,EAAE,CAAC,CAAC,UAAU,EACnB,OAAO,EAAE,SAAS;wBAClB;;mCAEW;wBACX,KAAK,EAAE,aAAa;4BAClB,CAAC,CAAC,wKAAwK;4BAC1K,CAAC,CAAC,uGAAuG,mBAAmB,EAAE,wBAGzH,CACV,IACG,EACL,IAAI,IAAI,cAAK,KAAK,EAAE,CAAC,CAAC,OAAO,YAAG,IAAI,GAAO,EAC3C,IAAI,IAAI,eAAK,KAAK,EAAE,CAAC,CAAC,OAAO,aAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IAAO,IACxG,CACP,CAAC;AACJ,CAAC;AAED,qCAAqC;AACrC,MAAM,UAAU,cAAc,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAkE;IACrH,OAAO,CACL,eAAK,KAAK,EAAE,CAAC,CAAC,YAAY,aACxB,eAAM,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,sBAAsB,EAAE,YAAG,SAAS,CAAC,IAAI,CAAC,GAAQ,EACvF,eAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,YAAG,MAAM,CAAC,GAAG,CAAC,GAAQ,EAC7C,iBAAQ,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,8EAA8E,mBAAmB,EAAE,wBAAkB,IACzK,CACP,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAClC,aAAqB,EACrB,KAAkB,EAClB,YAAgC;AAChC;;;4EAG4E;AAC5E,SAAkB;IAElB,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;IACjC;;;;;;;;;;;;;;;;wDAgBoD;IACpD;sEACkE;IAClE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC1C,SAAS,CAAC,GAAG,EAAE,CAAC,4BAA4B,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClF,sEAAsE;IACtE,SAAS,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1E;;;;;;qBAMiB;IACjB,SAAS,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACzE,MAAM,YAAY,GAAG,QAAQ,EAAE,CAAC,MAAM,CAAC;IACvC,MAAM,SAAS,GAAG,kBAAkB,EAAE,CAAC;IACvC,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE;QACH;kFAC0E;QAC1E,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC9E,OAAO,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACnI,CAAC,EACD,CAAC,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAC9C,CAAC;IACF;;;;6EAIyE;IACzE,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChD,SAAS,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACxE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC;QACvE,mBAAmB,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;aACrD,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE;YAChB,IAAI,CAAC,IAAI;gBAAE,OAAO;YAClB,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC9D,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAC9B,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnJ,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;YAAC,aAAa,CAAC,EAAE,CAAC,CAAC;YAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvE,OAAO,GAAG,EAAE,GAAG,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;IACrC,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC;IACxG,MAAM,OAAO,GAAG,CAAC,GAAsB,EAAU,EAAE,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;IAChI,MAAM,SAAS,GAAG,YAAY,GAAG,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChH;;;;4EAIwE;IACxE;;;;wEAIoE;IACpE,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAC9F,CAAC,KAAK,EAAE,EAAE,EAAE,SAAS,CAAC,CACvB,CAAC;IACF,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC;IACnF,0EAA0E;IAC1E,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IACzF,MAAM,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACpE,MAAM,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IACvC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;IACrC,OAAO;QACL,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS;QAC9E,2FAA2F;QAC3F,IAAI,EAAE,EAAE,EAAE,OAAO;QACjB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;QACrD,IAAI,EAAE,SAAS,GAAG,aAAa;QAC/B,aAAa,EAAE,SAAS,CAAC,MAAM;KAChC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,EAAE,aAAa,EAAE,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,YAAY,EAAE,SAAS,EAcpH;IACC;;;;;;;;;;;;;gCAa4B;IAC5B,SAAS,CAAC,GAAG,EAAE,GAAG,KAAK,yBAAyB,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC3D,MAAM,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,YAAY,CAAC;IAC1D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAoB,EAAE,CAAC,CAAC;IAClE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAyB,EAAE,CAAC,CAAC;IAC7E,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACtD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACnC,yEAAyE;IACzE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACpD;;;iCAG6B;IAC7B,MAAM,MAAM,GAAoB,cAAc,EAAE,CAAC;IACjD;;;;uEAImE;IACnE,SAAS,CAAC,GAAG,EAAE,CAAC,4BAA4B,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,mBAAmB,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,cAAc,EAAE,CAAC;IAChD,MAAM,YAAY,GAAG,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC;IAC5C,MAAM,OAAO,GAAG,GAAG,EAAE;QACnB,eAAe,CAAC,EAAE,CAAC,CAAC,CAAC,wDAAwD;QAC7E,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;IACpG,CAAC,CAAC;IACF,SAAS,CAAC,OAAO,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtC;6EACyE;IACzE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/C,MAAM,CAAC,gBAAgB,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;QACzD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,sBAAsB,EAAE,OAAO,CAAC,CAAC;IAC3E,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,KAAK,GAAG,YAAY,CAAC,YAAY,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;IAEhE,oFAAoF;IACpF,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,aAAa,EAAE,KAAK,EAAE,YAAY,EAAE,SAAS,CAAC,CAAC;IACzL,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC;IACrC,MAAM,cAAc,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAClE,MAAM,GAAG,GAAG,kBAAkB,CAAC,MAAM,EAAE,SAAS,GAAG,CAAC,CAAC,CAAC;IAEtD,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IAEnG;;;;;;wDAMoD;IACpD;;;;;uCAKmC;IACnC,MAAM,cAAc,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC9E,MAAM,SAAS,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC/E,MAAM,WAAW,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;IACtF,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;QAClE,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;QACnD,MAAM,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC5C,MAAM,aAAa,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;QACpD,MAAM,WAAW,GAAG,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtH,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,gDAAgD;IACnH,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAC5D,MAAM,cAAc,GAAG,CAAC,EAAU,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC/F,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC;IAE/F;;;;;;4CAMwC;IACxC,MAAM,MAAM,GAAiB;QAC3B,GAAG,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,IAAI,EAAE,QAAiB,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClH,mEAAmE;QACnE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,QAAiB,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtG,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,MAAe,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;KACnG,CAAC;IACF;;;;qDAIiD;IACjD,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAoB,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;IAC5G,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,OAAO,CAAC;IAC9D,MAAM,WAAW,GAAG,QAAQ,EAAE,GAAG,IAAI,IAAI,CAAC;IAC1C,MAAM,aAAa,GAAG,CAAC,GAAW,EAAU,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,iBAAiB,CAAC;IAE5G;;6CAEyC;IACzC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;IACxD,gFAAgF;IAChF,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;IAClD,gFAAgF;IAChF,MAAM,cAAc,GAAG;QACrB,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,QAAQ,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;QACvF,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,QAAQ,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE;QAC1F,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE;KACzD,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAE9B,MAAM,OAAO,GAAG,KAAK,EAAE,MAAc,EAAE,CAAkB,EAAE,EAAE;QAC3D,IAAI,CAAC,eAAe;YAAE,OAAO;QAC7B,IAAI,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/C,4EAA4E;YAC5E,4EAA4E;YAC5E,2CAA2C;YAC3C,YAAY,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAC1D,MAAM,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;YACnD,OAAO,EAAE,CAAC;QACZ,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,gDAAgD,EAAE,CAAC,CAAC,CAAC;QAC/F,CAAC;IACH,CAAC,CAAC;IAGF;;;;;sBAKkB;IAClB,MAAM,UAAU,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,YAAY,IAAI,YAAY,KAAK,gBAAgB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;IAChH,MAAM,WAAW,GAAG,KAAK,CAAC,UAAU;QAClC,CAAC,CAAC,CAAC,YAAY,IAAI,gBAAgB,CAAC;QACpC,CAAC,CAAC,UAAU,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,gBAAgB,CAAC,CAAC,CAAC;IACpG;0EACsE;IACtE,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IAEzE,OAAO,CACL,eAAK,KAAK,EAAE,CAAC,CAAC,KAAK,aACjB,eAAK,KAAK,EAAE,CAAC,CAAC,IAAI,aAIhB,eAAK,KAAK,EAAE,CAAC,CAAC,OAAO,aACnB,eAAK,KAAK,EAAE,CAAC,CAAC,UAAU,aACtB,gBAAM,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,EAAC,iCAAiC,aAAE,MAAM,CAAC,SAAS,CAAC,EAAC,gBAAM,KAAK,EAAE,CAAC,CAAC,MAAM,oBAAM,MAAM,CAAC,aAAa,CAAC,IAAQ,IAAO,EACjJ,gBAAM,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,aAAG,GAAG,SAAS,IACtE,EAIN,6BAAiB,eAAe,YAC9B,KAAC,YAAY,IAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,GAAI,GACnG,EAEN,eAAK,KAAK,EAAE,CAAC,CAAC,MAAM,aAClB,KAAC,MAAM,IAAC,CAAC,EAAC,eAAe,EAAC,CAAC,EAAC,QAAQ,EAAC,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,GAAI,EAI5D,IAAI,IAAI,KAAC,MAAM,IAAC,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,EAAC,QAAQ,EAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,EAAC,eAAe,GAAG,EAChG,KAAC,MAAM,IAAC,CAAC,EAAE,WAAW,CAAC,IAAI,EAAE,CAAC,EAAC,OAAO,EAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,GAAG,OAAO,CAAC,EAAE,MAAM,EAAC,cAAc,GAAG,EAC9F,KAAC,MAAM,IAAC,CAAC,EAAC,kBAAkB,EAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC,CAAC,GAAI,EAM3F,eAAM,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,YAC/C,kBAAQ,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,KAAK,EAAC,uCAAuC,6BAC5F,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,IACpE,GACJ,IACH,EAWN,eAAK,KAAK,EAAE,CAAC,CAAC,UAAU,aACtB,eAAM,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,SAAS,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,YAC1E,SAAS,IAAI,SAAS;4CACrB,CAAC,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC,iCAAiC;4CAC1E,CAAC,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,GAAG,CAAC,OAAO,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC,QAAQ,GAC3F,EACN,SAAS,GAAG,CAAC,IAAI,CAChB,gBAAM,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAC,8FAA8F,aACzH,SAAS,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,SAAS,cAAc,eACzD,CACR,EACA,cAAc,GAAG,CAAC,IAAI,CACrB,gBAAM,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,KAAK,EAAC,+EAA0E,aACxG,eAAM,KAAK,EAAE,CAAC,CAAC,GAAG,YAAE,KAAC,KAAK,IAAC,IAAI,EAAE,EAAE,GAAI,GAAO,EAC9C,YAAG,KAAK,EAAE,CAAC,CAAC,QAAQ,YAAG,EAAE,CAAC,cAAc,CAAC,GAAK,qBAC7C,eAAe,IAAI,CAClB,iBAAQ,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,eAAe,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAC,yBAAyB,gBAAY,yBAAyB,YAAC,KAAC,OAAO,IAAC,IAAI,EAAE,EAAE,GAAI,GAAS,CAC5L,IACI,CACR,IACG,EAEL,WAAW,GAAG,CAAC,IAAI,CAClB,eAAK,KAAK,EAAE,CAAC,CAAC,OAAO,iBAAc,aAAa,aAC7C,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,GAAG,WAAW,oBAAoB,oFACzE,CACP,EAKD,eAAK,KAAK,EAAE,CAAC,CAAC,OAAO,aAClB,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,sDAAsD,CAAC,CAAC,CAAC,yBAAyB,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,qBAAqB,MAAM,IAAI,EAC3J,GAAG,kEAAyD,KAAK,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,iBAAiB,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,IACxI,IACF,EAIL,QAAQ,IAAI,CACX,eAAK,KAAK,EAAE,CAAC,CAAC,MAAM,iBAAc,gBAAgB,aAChD,eAAK,KAAK,EAAE,CAAC,CAAC,OAAO,aACnB,gBAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,aACrB,eAAM,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAI,EACxE,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,eAAe,IAC1G,EACP,gBAAM,KAAK,EAAE,CAAC,CAAC,OAAO,aAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAK,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAQ,IACjF,EAEL,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,cAAK,KAAK,EAAE,CAAC,CAAC,UAAU,YAAG,QAAQ,CAAC,KAAK,GAAO,EAC9E,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,CAC7B,cAAK,KAAK,EAAE,CAAC,CAAC,OAAO,8GAAqG,CAC3H,EACA,QAAQ,CAAC,IAAI,KAAK,MAAM,IAAI,CAC3B,8BACE,eAAK,KAAK,EAAE,CAAC,CAAC,OAAO,aACnB,iBAAQ,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,sEAAsE,mBAAmB,EAAE,qBAAe,EACzL,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CACnC,gBAAM,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,KAAK,EAAC,uGAAkG,aAC7H,EAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,eAC5B,CACR,IACG,EACN,eAAK,KAAK,EAAE,CAAC,CAAC,QAAQ,iBAAc,eAAe,aACjD,eAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,iBAAc,MAAM,YAAC,KAAC,OAAO,IAAC,IAAI,EAAE,EAAE,GAAI,GAAO,EACvE,kBAAkB,IACf,IACL,CACJ,EACA,QAAQ,CAAC,IAAI,KAAK,QAAQ,IAAI,CAC7B,cAAK,KAAK,EAAE,CAAC,CAAC,OAAO,uEAA8D,CACpF,IACG,CACP,EAmBA,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,CAC1B,eAAK,KAAK,EAAE,CAAC,CAAC,OAAO,iBAAc,OAAO,aACxC,cAAK,KAAK,EAAE,CAAC,CAAC,OAAO,YAAE,eAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,sBAAc,GAAM,EAClE,eAAK,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,IAAI,EAAC,OAAO,gBAAY,sBAAsB,EAAC,QAAQ,EAAE,CAAC,aACtG,CAAC,EAAE,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACzE,eAAyB,KAAK,EAAE,CAAC,CAAC,SAAS,EAAE,IAAI,EAAC,cAAc,YAAE,CAAC,IAAxD,CAAC,IAAI,OAAO,CAAoD,CAC5E,CAAC,EACF,eAAK,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAC,KAAK,iBAAa,eAAe,aAC5D,eAAM,KAAK,EAAE,CAAC,CAAC,UAAU,wBAAgB,EACzC,eAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,uBAAU,EACjC,eAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,YAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAQ,EACtE,eAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,YAAG,KAAK,CAAC,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,cAAc,EAAE,GAAQ,EAC3G,eAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,YAAG,KAAK,CAAC,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,cAAc,EAAE,GAAQ,EACnH,eAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,YAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,EAAE,GAAQ,EACvE,gBAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,kBAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAQ,IAC5D,EACL,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACvB,eAAgB,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,IAAI,EAAC,KAAK,iBAAa,YAAY,aACpE,gBAAM,KAAK,EAAE,CAAC,CAAC,aAAa,sBAAQ,CAAC,CAAC,KAAK,IAAQ,EACnD,eAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,YAAG,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,GAAQ,EACrF,eAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,YAAG,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,GAAQ,EAC1D,eAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,YAAG,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,EAAE,GAAQ,EACnF,eAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,YAAG,CAAC,CAAC,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,cAAc,EAAE,GAAQ,EAC3F,eAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,YAAG,CAAC,CAAC,MAAM,CAAC,cAAc,EAAE,GAAQ,EAC3D,gBAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,kBAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAQ,KAP5C,CAAC,CAAC,EAAE,CAQR,CACP,CAAC,IACE,EACN,eAAK,KAAK,EAAE,CAAC,CAAC,QAAQ,aACpB,eAAM,KAAK,EAAE,CAAC,CAAC,OAAO,iGAA8F,EACpH,eAAM,KAAK,EAAE,CAAC,CAAC,OAAO,iHAAyG,IAC3H,IACF,CACP,EAED,eAAK,KAAK,EAAE,CAAC,CAAC,OAAO,iBAAc,YAAY,aAC7C,eAAK,KAAK,EAAE,CAAC,CAAC,YAAY,aACxB,eAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,8BAAsB,EAC5C,WAAW,IAAI,eAAM,KAAK,EAAE,CAAC,CAAC,UAAU,EAAE,KAAK,EAAC,qDAAqD,YAAE,WAAW,GAAQ,EAC3H,gBAAM,KAAK,EAAE,CAAC,CAAC,OAAO,kBAAI,MAAM,CAAC,SAAS,CAAC,IAAQ,IAC/C,EACN,eAAK,KAAK,EAAE,CAAC,CAAC,QAAQ,aACpB,gBAAM,KAAK,EAAE,CAAC,CAAC,OAAO,aACnB,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,mBAAmB,EAClF,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,EAAE,IACnD,EACN,SAAS,GAAG,CAAC,IAAI,CAChB,gBAAM,KAAK,EAAE,CAAC,CAAC,OAAO,iBAAc,eAAe,aAChD,UAAU,YAAQ,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,gBAAY,MAAM,CAAC,SAAS,CAAC,uEACtE,CACR,EACD,eAAM,KAAK,EAAE,CAAC,CAAC,OAAO,2FAA8E,IAChG,IACF,EAQL,CAAC,YAAY,IAAI,CAChB,eAAK,KAAK,EAAE,CAAC,CAAC,OAAO,aACnB,kBACE,KAAK,EAAE,CAAC,CAAC,QAAQ,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,mBACzB,WAAW,EAC1B,KAAK,EAAC,8HAAyH,aAE/H,eAAM,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,EAAE,YAAE,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,GAAI,GAAO,EAC7G,gBAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,aAAE,eAAM,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,GAAI,gBAAe,EACzG,eAAM,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,YAAG,cAAc,GAAQ,IACnE,EACR,WAAW,IAAI,CAChB,eAAK,KAAK,EAAE,CAAC,CAAC,IAAI,aACf,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,CACtB,8BACE,gBAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAC,0IAAqI,qCAAiB,QAAQ,CAAC,MAAM,eAAM,MAAM,CAAC,QAAQ,CAAC,IAAQ,EAMjO,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACnB,eAAiB,KAAK,EAAE,CAAC,CAAC,YAAY,aACpC,eAAM,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,sBAAsB,EAAE,YAAG,CAAC,CAAC,KAAK,GAAQ,EAC/E,gBAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,kBAAI,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAQ,KAFjD,CAAC,CAAC,GAAG,CAGT,CACP,CAAC,IACD,CACJ,EACA,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CACvB,8BACE,gBAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAC,uGAAkG,sCAAkB,SAAS,CAAC,MAAM,cAAK,MAAM,CAAC,UAAU,CAAC,IAAQ,EACjM,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAC7B,KAAC,cAAc,IAAY,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,IAA7D,CAAC,CAAC,EAAE,CAA6D,CACvF,CAAC,IACD,CACJ,EACA,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CACvB,8BACE,gBAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAC,qMAAqM,0CAAsB,SAAS,CAAC,MAAM,cAAK,EAAE,CAAC,cAAc,CAAC,IAAQ,EACxS,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,CACpE,KAAC,UAAU,IAAY,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,eAAe,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,IAAhN,CAAC,CAAC,EAAE,CAAgN,CACtO,CAAC,EACD,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CACxB,8BACE,gBAAM,KAAK,EAAE,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAC,iLAA4K,mCAAe,UAAU,CAAC,MAAM,cAAK,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,IAAQ,EACtS,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAC,UAAU,IAAY,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,IAAhC,CAAC,CAAC,EAAE,CAAgC,CAAC,IAC5E,CACJ,IACA,CACJ,IACG,CACL,IACG,CACP,IAEG,EAEL,UAAU,IAAI,CACb,KAAC,eAAe,IACd,IAAI,EAAE,cAAc,EACpB,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,GACnC,CACH,IACG,CACP,CAAC;AACJ,CAAC;AAED,SAAS,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAwD;IACvF,OAAO,gBAAM,KAAK,EAAE,CAAC,CAAC,OAAO,iBAAe,MAAM,aAAE,eAAM,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,UAAU,EAAE,CAAC,EAAE,GAAI,EAAC,CAAC,OAAE,eAAM,KAAK,EAAE,CAAC,CAAC,MAAM,YAAG,CAAC,GAAQ,IAAO,CAAC;AAClJ,CAAC;AAED,MAAM,IAAI,GAAG,kBAAkB,CAAC;AAChC,MAAM,CAAC,GAAwB;IAC7B,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,kBAAkB,EAAE;IACvH,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE;IAClH,gFAAgF;IAChF,+EAA+E;IAC/E,6EAA6E;IAC7E,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;IAC5E,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,EAAE,EAAE,EAAE;IAC9F,QAAQ,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,sBAAsB,EAAE;IACtM,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE;IAClE,kFAAkF;IAClF,SAAS,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,mBAAmB,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,SAAS,EAAE;IACnS,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,cAAc,EAAE;IAChH,kHAAkH;IAClH;sFACkF;IAClF,QAAQ,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,gCAAgC,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE;IAC7I,yEAAyE;IACzE,uEAAuE;IACvE,SAAS,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,kDAAkD,EAAE,cAAc,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,cAAc,EAAE;IAC3P,QAAQ,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE;IACjC,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,sBAAsB,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE;IACnL,UAAU,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,GAAG,EAAE;IAC7D,aAAa,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE;IAChD,QAAQ,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE;IACtF,OAAO,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE;IACjE,SAAS;IACT,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,eAAe,EAAE;IACtF,MAAM,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE;IACvJ,MAAM,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE;IACxE,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,uBAAuB,EAAE,UAAU,EAAE,oCAAoC,EAAE,YAAY,EAAE,2BAA2B,EAAE,OAAO,EAAE,SAAS,EAAE;IAC7M,OAAO,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,oBAAoB,EAAE;IACrE,OAAO,EAAE,EAAE,KAAK,EAAE,yBAAyB,EAAE,UAAU,EAAE,8DAA8D,EAAE;IACzH,UAAU,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE;IAChF,4EAA4E;IAC5E,8EAA8E;IAC9E,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,gCAAgC,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE;IAC7M,UAAU,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE;IACxG,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE;IAC3L,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE;IAC5E,OAAO,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,uBAAuB,EAAE;IACjH,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;IAC/D,MAAM,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,cAAc,EAAE;IAC/F,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,sBAAsB,EAAE;IAC1D,+EAA+E;IAC/E,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,sBAAsB,EAAE;IAC1G,QAAQ,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,yBAAyB,EAAE;IACrF,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,gCAAgC,EAAE,YAAY,EAAE,2BAA2B,EAAE,UAAU,EAAE,mEAAmE,EAAE,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE;IAC1V,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,qBAAqB,EAAE;IACjH,UAAU,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,sBAAsB,EAAE,MAAM,EAAE,SAAS,EAAE;IACxN,GAAG,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,8BAA8B,EAAE,UAAU,EAAE,CAAC,EAAE;IACrF,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE;IAC3D,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,gCAAgC,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE;IAC1R,aAAa;IACb,2EAA2E;IAC3E,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,gCAAgC,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,uBAAuB,EAAE,KAAK,EAAE,MAAM,EAAE;IAC/O,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE;IAChF,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,qBAAqB,EAAE;IAC3E,UAAU,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,oCAAoC,EAAE,YAAY,EAAE,uBAAuB,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE;IAClS,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE;IACpD,IAAI,EAAE,CAAC,EAAW,EAAuB,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAAC,sBAAsB,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,sBAAsB,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;IACha,OAAO,EAAE,CAAC,EAAW,EAAuB,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,uBAAuB,EAAE,CAAC;IACvJ,WAAW;IACX,OAAO,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,gCAAgC,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE;IAC7R,IAAI,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE;IAC3D,KAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,GAAG,EAAE,OAAO,EAAE,SAAS,EAAE;IAC7F,YAAY,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,gCAAgC,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE;IAChM,UAAU,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,gCAAgC,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE;IAC/S,QAAQ,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE;IACzG,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,EAAE;IAC9H,UAAU,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,cAAc,EAAE,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE;IACtM,QAAQ,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,WAAW,EAAE;IAC/M,oEAAoE;IACpE,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,EAAE,gCAAgC,EAAE,YAAY,EAAE,kBAAkB,EAAE,UAAU,EAAE,kBAAkB,EAAE,QAAQ,EAAE,QAAQ,EAAE;IACrL,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;IACvE,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,EAAE,UAAU,EAAE,aAAa,EAAE,KAAK,EAAE,uBAAuB,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE;IAChN,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE;IACzI,OAAO,EAAE,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,sCAAsC,EAAE;IACrG,IAAI,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,8BAA8B,EAAE,UAAU,EAAE,CAAC,EAAE;IAC1H,OAAO,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,KAAK,EAAE,qBAAqB,EAAE,UAAU,EAAE,IAAI,EAAE;IAC1F,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,sBAAsB,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC,EAAE;IACjJ,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,gCAAgC,EAAE,UAAU,EAAE,kBAAkB,EAAE,KAAK,EAAE,uBAAuB,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE;CACvS,CAAC"}
@@ -1,5 +1,7 @@
1
1
  import React from 'react';
2
- export type StripKind = 'system' | 'turn';
2
+ /** `folded` is the folded view: sent as one block in place of the turns it
3
+ * stands for, so it is drawn apart from the turns sent on their own. */
4
+ export type StripKind = 'system' | 'turn' | 'folded';
3
5
  export interface StripBlock {
4
6
  key: string;
5
7
  kind: StripKind;
@@ -8,6 +10,8 @@ export interface StripBlock {
8
10
  label: string;
9
11
  tok: number;
10
12
  }
13
+ /** Exported so the drawer's legend draws each kind in the colour the strip does. */
14
+ export declare const STRIP_COLOR: Record<StripKind, string>;
11
15
  export declare function ContextStrip({ blocks, contextWindow, selected, onSelect }: {
12
16
  blocks: StripBlock[];
13
17
  /** 0 means the window is unknown (a proxied agent owns its own context). The
@@ -1 +1 @@
1
- {"version":3,"file":"ContextStrip.d.ts","sourceRoot":"","sources":["../ContextStrip.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE1C,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB;kEAC8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAWD,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;IAC1E,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB;;kEAE8D;IAC9D,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,qBA2BA"}
1
+ {"version":3,"file":"ContextStrip.d.ts","sourceRoot":"","sources":["../ContextStrip.tsx"],"names":[],"mappings":"AAgBA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B;wEACwE;AACxE,MAAM,MAAM,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,QAAQ,CAAC;AAErD,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB;kEAC8D;IAC9D,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAMD,oFAAoF;AACpF,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAIjD,CAAC;AAGF,wBAAgB,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE;IAC1E,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB;;kEAE8D;IAC9D,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC,qBA2BA"}
@@ -4,10 +4,13 @@ import { fmtTok } from '@corenel/ui-kit/usage';
4
4
  /** Below this a block is invisible, and a thing in the window that draws as
5
5
  * nothing is a lie. A 40-token turn in a 128K window is 0.03%. */
6
6
  const MIN_PCT = 0.6;
7
- const COLOR = {
7
+ /** Exported so the drawer's legend draws each kind in the colour the strip does. */
8
+ export const STRIP_COLOR = {
8
9
  system: 'var(--accent)',
9
10
  turn: 'var(--brand-cyan, #3fb6d4)',
11
+ folded: 'color-mix(in srgb, var(--brand-cyan, #3fb6d4) 50%, var(--surface-3))',
10
12
  };
13
+ const COLOR = STRIP_COLOR;
11
14
  export function ContextStrip({ blocks, contextWindow, selected, onSelect }) {
12
15
  const w = contextWindow > 0 ? contextWindow : 0;
13
16
  const pct = (tok) => (w ? Math.max(MIN_PCT, (tok / w) * 100) : 0);
@@ -1 +1 @@
1
- {"version":3,"file":"ContextStrip.js","sourceRoot":"","sources":["../ContextStrip.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ContextStrip.js","sourceRoot":"","sources":["../ContextStrip.tsx"],"names":[],"mappings":"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"}
@@ -3,6 +3,9 @@ import type { ConversationTurn } from '@corenel/harness/conversation';
3
3
  export interface ExclusionRow {
4
4
  t: ConversationTurn;
5
5
  tok: number;
6
+ /** At or before the fold point (isFoldedTurn): shown, never selectable.
7
+ * Folded when the turn is included; never sent when it is not. */
8
+ beforeFold?: boolean;
6
9
  }
7
10
  export declare function ExclusionsModal({ rows, contextWindow, toggleInclude, onClose }: {
8
11
  rows: ExclusionRow[];
@@ -1 +1 @@
1
- {"version":3,"file":"ExclusionsModal.d.ts","sourceRoot":"","sources":["../ExclusionsModal.tsx"],"names":[],"mappings":"AAkBA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAItE,MAAM,WAAW,YAAY;IAAG,CAAC,EAAE,gBAAgB,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE;AAalE,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE;IAC/E,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,qBAsFA"}
1
+ {"version":3,"file":"ExclusionsModal.d.ts","sourceRoot":"","sources":["../ExclusionsModal.tsx"],"names":[],"mappings":"AAyBA,OAAO,KAAuC,MAAM,OAAO,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AAKtE,MAAM,WAAW,YAAY;IAC3B,CAAC,EAAE,gBAAgB,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ;sEACkE;IAClE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAaD,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,EAAE;IAC/E,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB,qBAmGA"}
@@ -16,10 +16,18 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
16
16
  * counts here are the same counts the strip and the collapsed bar are drawing —
17
17
  * this is a view over that work, not a second measurement of it. The caller
18
18
  * filters seams out: a compaction seam is not a turn and cannot be included.
19
+ *
20
+ * A row AT OR BEFORE THE FOLD (the caller marks it) is listed but never
21
+ * offered: the runtime refuses to include or drop it. An included one is
22
+ * FOLDED, since the folded view stands for it; an excluded one was never sent
23
+ * to the folding run, so it stays "dropped" and says it cannot be included
24
+ * now. Either way its checkbox is disabled, and no bulk action or total
25
+ * counts it.
19
26
  */
20
27
  import { useEffect, useMemo, useState } from 'react';
21
28
  import { fmtTok } from '@corenel/ui-kit/usage';
22
- import { IcX } from '@corenel/ui-kit/icons';
29
+ import { IcX, IcAlert } from '@corenel/ui-kit/icons';
30
+ import { FOLDED_TITLE, NOT_SENT_BEFORE_FOLD_TITLE, CACHE_WARNING_BULK } from './contextCopy';
23
31
  /** First line of a turn, for the row label. Long enough to recognise, short
24
32
  * enough that fifteen of them are still scannable. */
25
33
  function label(turn) {
@@ -47,7 +55,10 @@ export function ExclusionsModal({ rows, contextWindow, toggleInclude, onClose })
47
55
  next.add(id);
48
56
  return next;
49
57
  });
50
- const chosen = rows.filter((r) => picked.has(r.t.id));
58
+ // Rows at or before the fold are out of every action and every total below.
59
+ const live = rows.filter((r) => !r.beforeFold);
60
+ const foldedCount = rows.filter((r) => r.beforeFold && r.t.included).length;
61
+ const chosen = live.filter((r) => picked.has(r.t.id));
51
62
  /* APPLIED ONLY WHERE IT CHANGES SOMETHING. `toggleInclude` FLIPS, so calling
52
63
  * it on an already-dropped turn puts it back — a mixed selection sent to
53
64
  * "Drop" would restore half of itself. Invisible in a one-at-a-time control,
@@ -59,23 +70,31 @@ export function ExclusionsModal({ rows, contextWindow, toggleInclude, onClose })
59
70
  list.forEach((r) => toggleInclude(r.t.id));
60
71
  setPicked(new Set());
61
72
  };
62
- const inWindow = rows.filter((r) => r.t.included);
73
+ const inWindow = live.filter((r) => r.t.included);
63
74
  const pct = contextWindow > 0 ? Math.round((sum(inWindow) / contextWindow) * 100) : 0;
64
- return (_jsx("div", { style: S.backdrop, onClick: onClose, children: _jsxs("div", { style: S.modal, onClick: (e) => e.stopPropagation(), role: "dialog", "aria-modal": "true", "aria-label": "Manage turns in the context window", children: [_jsxs("div", { style: S.head, children: [_jsx("span", { style: S.title, children: "Turns in the window" }), _jsxs("span", { style: S.meta, children: [inWindow.length, " of ", rows.length, " \u00B7 ", fmtTok(sum(inWindow)), contextWindow > 0 ? ` · ${pct}%` : ''] }), _jsx("button", { style: S.icon, onClick: onClose, "aria-label": "Close", children: _jsx(IcX, { size: 14 }) })] }), _jsxs("div", { style: S.tools, children: [_jsx("button", { style: S.mini, onClick: () => setPicked(new Set(rows.map((r) => r.t.id))), children: "Select all" }), _jsx("button", { style: S.mini, onClick: () => setPicked(new Set()), disabled: picked.size === 0, children: "Clear" }), _jsx("button", { style: { ...S.mini, ...(bySize ? S.miniOn : null) }, onClick: () => setBySize((v) => !v), "aria-pressed": bySize, children: "Largest first" })] }), _jsxs("div", { style: S.list, children: [rows.length === 0 && _jsx("div", { style: S.empty, children: "No turns yet. As you chat, each exchange shows here and can be dropped to free the window." }), ordered.map(({ t, tok }) => (_jsxs("label", { "data-testid": `row-${t.id}`, style: { ...S.row, ...(picked.has(t.id) ? S.rowOn : null) }, children: [_jsx("input", { type: "checkbox", checked: picked.has(t.id), onChange: () => toggle(t.id), "aria-label": label(t), style: S.check }), _jsx("span", { style: { ...S.text, ...(t.included ? null : S.textOut) }, children: label(t) }), !t.included && _jsx("span", { style: S.chip, children: "dropped" }), _jsx("span", { style: S.tok, children: fmtTok(tok) })] }, t.id)))] }), _jsxs("div", { style: S.foot, children: [_jsx("span", { style: S.note, children: "Dropping a turn invalidates the model\u2019s cache from that turn onward \u2014 the newest cost least." }), _jsxs("span", { style: S.actions, children: [_jsxs("button", { style: S.btn, onClick: () => apply(toRestore), disabled: toRestore.length === 0, children: ["Restore ", toRestore.length || '', " ", toRestore.length ? `· ${fmtTok(sum(toRestore))}` : ''] }), _jsxs("button", { style: { ...S.btn, ...S.btnPrimary }, onClick: () => apply(toDrop), disabled: toDrop.length === 0, children: ["Drop ", toDrop.length || '', " ", toDrop.length ? `· frees ${fmtTok(sum(toDrop))}` : ''] })] })] })] }) }));
75
+ return (_jsx("div", { style: S.backdrop, onClick: onClose, children: _jsxs("div", { style: S.modal, onClick: (e) => e.stopPropagation(), role: "dialog", "aria-modal": "true", "aria-label": "Manage turns in the context window", children: [_jsxs("div", { style: S.head, children: [_jsx("span", { style: S.title, children: "Turns in the window" }), _jsxs("span", { style: S.meta, title: `${inWindow.length} of ${live.length} turns in the window${foldedCount > 0 ? `, ${foldedCount} folded` : ''}`, children: [inWindow.length, " of ", live.length, " \u00B7 ", fmtTok(sum(inWindow)), contextWindow > 0 ? ` · ${pct}%` : '', foldedCount > 0 ? ` · ${foldedCount} folded` : ''] }), _jsx("button", { style: S.icon, onClick: onClose, "aria-label": "Close", children: _jsx(IcX, { size: 14 }) })] }), _jsxs("div", { style: S.tools, children: [_jsx("button", { style: S.mini, onClick: () => setPicked(new Set(live.map((r) => r.t.id))), children: "Select all" }), _jsx("button", { style: S.mini, onClick: () => setPicked(new Set()), disabled: picked.size === 0, children: "Clear" }), _jsx("button", { style: { ...S.mini, ...(bySize ? S.miniOn : null) }, onClick: () => setBySize((v) => !v), "aria-pressed": bySize, children: "Largest first" })] }), _jsxs("div", { style: S.list, children: [rows.length === 0 && _jsx("div", { style: S.empty, children: "No turns yet. As you chat, each exchange shows here and can be dropped to free the window." }), ordered.map(({ t, tok, beforeFold }) => {
76
+ const folded = !!beforeFold && t.included;
77
+ const title = beforeFold ? (folded ? FOLDED_TITLE : NOT_SENT_BEFORE_FOLD_TITLE) : undefined;
78
+ return (_jsxs("label", { "data-testid": `row-${t.id}`, title: title, style: { ...S.row, ...(picked.has(t.id) ? S.rowOn : null), ...(beforeFold ? S.rowFolded : null) }, children: [_jsx("input", { type: "checkbox", checked: !beforeFold && picked.has(t.id), disabled: !!beforeFold, onChange: () => toggle(t.id), "aria-label": label(t), style: S.check }), _jsx("span", { style: { ...S.text, ...(t.included || folded ? null : S.textOut) }, children: label(t) }), folded
79
+ ? _jsx("span", { style: S.chip, children: "folded" })
80
+ : !t.included && _jsx("span", { style: S.chip, children: "dropped" }), _jsx("span", { style: S.tok, children: fmtTok(tok) })] }, t.id));
81
+ })] }), _jsxs("div", { style: S.foot, children: [_jsxs("span", { style: S.note, "data-testid": "cache-warning", children: [_jsx("span", { style: S.warnIcon, "aria-hidden": "true", children: _jsx(IcAlert, { size: 12 }) }), CACHE_WARNING_BULK] }), _jsxs("span", { style: S.actions, children: [_jsxs("button", { style: S.btn, onClick: () => apply(toRestore), disabled: toRestore.length === 0, children: ["Restore ", toRestore.length || '', " ", toRestore.length ? `· ${fmtTok(sum(toRestore))}` : ''] }), _jsxs("button", { style: { ...S.btn, ...S.btnPrimary }, onClick: () => apply(toDrop), disabled: toDrop.length === 0, children: ["Drop ", toDrop.length || '', " ", toDrop.length ? `· frees ${fmtTok(sum(toDrop))}` : ''] })] })] })] }) }));
65
82
  }
66
83
  const S = {
67
84
  // Same shape as CommandPalette's shell, on the shared token scale.
68
85
  backdrop: { position: 'fixed', inset: 0, zIndex: 'var(--z-modal-backdrop, 1000)', background: 'var(--scrim, rgba(0,0,0,.45))', display: 'flex', alignItems: 'center', justifyContent: 'center', padding: 16 },
69
86
  modal: { width: 'min(620px, 94vw)', maxHeight: '80vh', display: 'flex', flexDirection: 'column', background: 'var(--surface-1)', border: '1px solid var(--border-default)', borderRadius: 'var(--radius-lg)', boxShadow: 'var(--shadow-5)', overflow: 'hidden' },
70
87
  head: { display: 'flex', alignItems: 'center', gap: 10, padding: '12px 14px', borderBottom: '1px solid var(--border-subtle)' },
71
- title: { fontSize: 14, fontWeight: 600, color: 'var(--text-primary)' },
72
- meta: { fontSize: 11.5, color: 'var(--text-tertiary)', fontFamily: 'var(--font-mono)', fontVariantNumeric: 'tabular-nums' },
73
- icon: { marginLeft: 'auto', display: 'inline-flex', alignItems: 'center', justifyContent: 'center', width: 26, height: 26, border: 0, borderRadius: 'var(--radius-sm)', background: 'transparent', color: 'var(--text-tertiary)', cursor: 'pointer' },
88
+ title: { fontSize: 14, fontWeight: 600, color: 'var(--text-primary)', flexShrink: 0 },
89
+ // minWidth 0 lets it shrink below its text; the ellipsis keeps it one line.
90
+ meta: { minWidth: 0, overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap', fontSize: 11.5, color: 'var(--text-tertiary)', fontFamily: 'var(--font-mono)', fontVariantNumeric: 'tabular-nums' },
91
+ icon: { marginLeft: 'auto', flexShrink: 0, display: 'inline-flex', alignItems: 'center', justifyContent: 'center', width: 26, height: 26, border: 0, borderRadius: 'var(--radius-sm)', background: 'transparent', color: 'var(--text-tertiary)', cursor: 'pointer' },
74
92
  tools: { display: 'flex', alignItems: 'center', gap: 6, padding: '8px 14px', borderBottom: '1px solid var(--border-subtle)' },
75
93
  mini: { height: 24, padding: '0 9px', border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-sm)', background: 'var(--surface-2)', color: 'var(--text-secondary)', fontSize: 11.5, fontWeight: 600, fontFamily: 'inherit', cursor: 'pointer' },
76
94
  miniOn: { borderColor: 'var(--border-accent, var(--accent))', background: 'var(--accent-soft)', color: 'var(--text-primary)' },
77
95
  list: { flex: 1, minHeight: 0, overflowY: 'auto', padding: 8, display: 'flex', flexDirection: 'column', gap: 4 },
78
96
  row: { display: 'flex', alignItems: 'center', gap: 9, padding: '7px 9px', border: '1px solid transparent', borderRadius: 'var(--radius-sm)', cursor: 'pointer' },
97
+ rowFolded: { cursor: 'default' },
79
98
  rowOn: { borderColor: 'var(--border-accent, var(--accent))', background: 'var(--accent-soft)' },
80
99
  check: { width: 14, height: 14, flexShrink: 0, accentColor: 'var(--accent)' },
81
100
  text: { flex: 1, minWidth: 0, fontSize: 12.5, color: 'var(--text-primary)', overflow: 'hidden', textOverflow: 'ellipsis', whiteSpace: 'nowrap' },
@@ -85,6 +104,8 @@ const S = {
85
104
  empty: { padding: '18px 10px', fontSize: 12.5, color: 'var(--text-tertiary)', lineHeight: 1.5 },
86
105
  foot: { display: 'flex', alignItems: 'center', gap: 12, padding: '10px 14px', borderTop: '1px solid var(--border-subtle)', flexWrap: 'wrap' },
87
106
  note: { flex: 1, minWidth: 180, fontSize: 11, color: 'var(--text-disabled)', lineHeight: 1.45 },
107
+ // Inline before the note's text, in the warning token the drawer uses.
108
+ warnIcon: { display: 'inline-flex', verticalAlign: '-2px', marginRight: 5, color: 'var(--warning, #b45309)' },
88
109
  actions: { display: 'inline-flex', alignItems: 'center', gap: 8 },
89
110
  btn: { height: 28, padding: '0 12px', border: '1px solid var(--border-subtle)', borderRadius: 'var(--radius-sm)', background: 'var(--surface-2)', color: 'var(--text-secondary)', fontSize: 12, fontWeight: 600, fontFamily: 'inherit', cursor: 'pointer' },
90
111
  btnPrimary: { borderColor: 'var(--border-accent, var(--accent))', background: 'var(--accent-soft)', color: 'var(--text-primary)' },