pantheon-opencode 1.5.0-beta.12 → 1.5.0-beta.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -18,6 +18,37 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
18
18
 
19
19
  ## ✅ Closed Issues
20
20
 
21
+ ## [v1.5.0-beta.13] - 2026-09-14
22
+
23
+ <!-- Add new changes here. Running `node scripts/versioning.mjs apply` will
24
+ move this section to a versioned entry and reset the template below. -->
25
+
26
+ ## 🆕 What's New
27
+
28
+ - **TUI status-only — rows simplificadas:** cada linha do painel Delegations passa
29
+ a ser `{glyph} {alias} {elapsed}` + `desc` muted — um glyph de status, uma única
30
+ identidade e o tempo decorrido, com a descrição em tom muted. São 4 glyphs
31
+ (running animado, completed, error, cancelled/retry), sem toggle
32
+ `[Sessão]`/`[Tudo]`, sem prefixos `nat:`/`pan:` e sem losango ◇/◆.
33
+ - **Header `active`/`done`/`failed`:** o cabeçalho do painel resume apenas esses
34
+ três contadores sobre a lista completa (todas as sessões), sem `nat:`/`pan:`.
35
+ - **Ceiling 8:** no máximo 8 linhas visíveis (live-first); o excedente colapsa em
36
+ uma única linha `… +N more`.
37
+ - **Board read (jobs de todas as sessões):** o painel lê o BackgroundJobBoard
38
+ (`.pantheon/board/state.json`), então jobs `pantheon_delegate` de qualquer
39
+ sessão aparecem — não só os filhos nativos da sessão focada.
40
+ - **118 testes TUI delegations:** `tests/pantheon/tui-delegations.test.ts` com
41
+ 118/118 passando, cobrindo rows status-only, header active/done/failed, ceiling
42
+ e board read cross-session.
43
+
44
+ ## 🐞 Fixed
45
+
46
+ - **Sanitização de dead code:** removidos helpers, tipos e estado órfãos do
47
+ painel Delegations (toggle de escopo `[Sessão]`/`[Tudo]`, prefixos curtos
48
+ `nat:`/`pan:`, glyphs por estado e paginação de arquivo morto) que sobraram do
49
+ refactor status-only.
50
+ - **Board merge preserva sessão conhecida:** um record do board com
51
+ `parentSessionID` vazio não sobrescreve mais a sessão já atribuída à linha.
21
52
  ## [v1.5.0-beta.12] - 2026-09-14
22
53
 
23
54
  <!-- Add new changes here. Running `node scripts/versioning.mjs apply` will
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pantheon-opencode",
3
- "version": "1.5.0-beta.12",
3
+ "version": "1.5.0-beta.13",
4
4
  "description": "Multi-agent orchestration for OpenCode — 14 specialized agents, TDD, Themis review gates.",
5
5
  "type": "module",
6
6
  "publishConfig": {
package/plugin.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pantheon",
3
3
  "publisher": "ils15",
4
- "version": "1.5.0-beta.12",
4
+ "version": "1.5.0-beta.13",
5
5
  "displayName": "Pantheon",
6
6
  "description": "Conductor-Delegate orchestration platform with 14 specialized agents, 21 skills, and OpenCode support.",
7
7
  "agents": "./src/agents",
package/pyproject.toml CHANGED
@@ -4,7 +4,7 @@ build-backend = "setuptools.backends._legacy:_Backend"
4
4
 
5
5
  [project]
6
6
  name = "pantheon"
7
- version = "1.5.0-beta.12"
7
+ version = "1.5.0-beta.13"
8
8
  description = "Multi-agent orchestration framework"
9
9
  requires-python = ">=3.11"
10
10
  dependencies = []
@@ -22,7 +22,7 @@ type DelegationEntry = {
22
22
  read?: boolean;
23
23
  /** Internal provenance used to keep a finalized md report authoritative.
24
24
  * 'children-only' = a native task() child session with NO board report
25
- * (rendered with the distinct `nat:` prefix); 'md' = board report wins;
25
+ * (a native child row); 'md' = board report wins;
26
26
  * 'board' = read from .pantheon/board/state.json (cross-session FSM). */
27
27
  source?: 'child' | 'live' | 'md' | 'children-only' | 'board';
28
28
  };
@@ -101,17 +101,16 @@ declare function tuiLogPath(projectRoot: string): string;
101
101
  * mergeDelegationSources. */
102
102
  declare function compareDelegationEntries(a: DelegationEntry, b: DelegationEntry): number;
103
103
  /** Split the panel list: active jobs (running/retry, stale-marked) first,
104
- * then the most recent terminal reports, then the archived tail (paginated
105
- * in the View). Pure — so the history-only panel (no sessionID) is testable
104
+ * then the most recent terminal reports; the remaining tail is collapsed
105
+ * by the View into a single "… +N more" line. Pure — so the history-only panel (no sessionID) is testable
106
106
  * without the TUI runtime. */
107
107
  declare function splitDelegationList(all: readonly DelegationEntry[], maxRecent?: number, now?: number, staleThresholdMs?: number): {
108
108
  active: DelegationEntry[];
109
109
  recent: DelegationEntry[];
110
- archived: DelegationEntry[];
111
110
  };
112
- /** The list the panel actually renders (kept for the header count and
113
- * existing tests): active jobs first, then the most recent terminal
114
- * reports (capped) — the archived tail is rendered separately. Pure. */
111
+ /** Live-first window used by {@link ceilingDelegationList} (kept for the
112
+ * ceiling helper and existing tests): active jobs first, then the most
113
+ * recent terminal reports (capped). Pure. */
115
114
  declare function visibleDelegationList(all: readonly DelegationEntry[], maxTerminal?: number, now?: number, staleThresholdMs?: number): DelegationEntry[];
116
115
  /** Default stale-running threshold: 30 minutes. */
117
116
  declare const STALE_RUNNING_THRESHOLD_MS: number;
@@ -128,7 +127,7 @@ declare const IDLE_SILENCE_MS: number;
128
127
  * delegation is still treated as running by the backend.
129
128
  */
130
129
  declare function markStaleIfRunning(entry: DelegationEntry, now: number, thresholdMs?: number): DelegationEntry;
131
- /** Compact elapsed-time label: "5m 12s", "1h 30m", "2d 4h" — ticks every
130
+ /** Compact elapsed-time label, single unit only: "12s"/"3m"/"1h"/"2d" — ticks every
132
131
  * second for running jobs. */
133
132
  declare function fmtElapsed(ms: number): string;
134
133
  /** Elapsed label for one entry: an ACTIVE entry (running/retry/stale-running)
@@ -149,20 +148,13 @@ declare function delegationSpinnerFrame(now: number): string;
149
148
  * blocked/paused/scheduled/skipped. There is no `pending` display state: a
150
149
  * pre-dispatch tool part maps to `running` in {@link reduceDelegationToolPart}. */
151
150
  type DelegationDisplayState = DelegationEntry['state'];
152
- /** Static glyph per display state. `running` shows its base spinner frame;
153
- * callers that animate must prefer {@link delegationStateMarker}. Unicode
154
- * geometric shapes only (no Nerd Font) — shape is an independent channel
155
- * from color, so rows stay legible without color. */
156
- declare const DELEGATION_STATE_GLYPHS: Readonly<Record<DelegationDisplayState, string>>;
157
- declare function delegationStateGlyph(state: DelegationDisplayState): string;
158
- /** Row marker (`<glyph> `) — the state channel. `running` animates through
159
- * {@link delegationSpinnerFrame} for the given tick; every other state is
160
- * static. Pure. */
161
- declare function delegationStateMarker(state: DelegationDisplayState, now?: number): string;
162
151
  /** Semantic tone mapped to the TUI theme at the row ({@link DelegationRow}).
163
152
  * Kept separate + pure so the color channel is testable without booting the
164
153
  * renderer. */
165
154
  type DelegationStateTone = 'warning' | 'error' | 'success' | 'muted';
155
+ /** Color is the ONLY channel separating `stale-running` from a live `running`
156
+ * row — the 4-glyph row design has no dedicated stale shape. Display-only;
157
+ * no behavior change. */
166
158
  declare function delegationStateTone(state: DelegationDisplayState): DelegationStateTone;
167
159
  type ToolActivity = {
168
160
  tool: string;
@@ -268,7 +260,7 @@ declare function removeDelegationEntry(map: Map<string, LiveDelegationEntry>, pa
268
260
  * SDK exposes `api.state.part(messageID)`). The native `task` tool spawns a
269
261
  * child session with parentID = caller — the same mechanism as
270
262
  * pantheon_delegate — so its parts feed the live-map as the native signal
271
- * (rows render `nat:` via the children channel). Pure w.r.t. I/O — used
263
+ * (rows come from the children channel). Pure w.r.t. I/O — used
272
264
  * by the mount re-scan to re-seed the live map after compaction/attach. */
273
265
  declare function collectDelegationToolParts(messages: readonly {
274
266
  id?: string;
@@ -299,29 +291,6 @@ declare function boardRecordsToDelegationEntries(records: readonly BoardJobRecor
299
291
  * that carries jobs from OTHER sessions. Dedup by taskID first, then by
300
292
  * (sessionID, alias) — aliases are per parent session. Pure. */
301
293
  declare function mergeBoardDelegationSources(base: readonly DelegationEntry[], board: readonly DelegationEntry[]): DelegationEntry[];
302
- /** 'session' = focused session only (default); 'all' = every session the
303
- * board knows about. */
304
- type DelegationScope = 'session' | 'all';
305
- /** api.kv key holding the persisted scope (defaults to 'session'). */
306
- declare const DELEGATION_SCOPE_KV_KEY = "delegations.scope";
307
- /** Structural subset of TuiKV — kept local so the pure helpers are testable
308
- * without the TUI runtime. */
309
- type DelegationScopeKv = {
310
- get: (key: string, fallback?: unknown) => unknown;
311
- set: (key: string, value: unknown) => void;
312
- };
313
- /** Read the persisted scope; anything malformed/absent → 'session'. */
314
- declare function readDelegationScope(kv: DelegationScopeKv | undefined): DelegationScope;
315
- /** Persist the scope. Failure is non-fatal — the signal keeps it in memory. */
316
- declare function writeDelegationScope(kv: DelegationScopeKv | undefined, scope: DelegationScope): void;
317
- /** Keyboard/click toggle target. Pure. */
318
- declare function nextDelegationScope(scope: DelegationScope): DelegationScope;
319
- /** Keep only the focused session's jobs ('session') or all of them ('all').
320
- * An empty sessionID marks a current-session child (the children channel is
321
- * session-scoped and only fills sessionID from a matching md report), so it
322
- * counts as the current session. With no resolved session there is nothing
323
- * to scope against — fail-open to the full list. Pure. */
324
- declare function filterDelegationsByScope(entries: readonly DelegationEntry[], scope: DelegationScope, sessionID: string | null): DelegationEntry[];
325
294
  /** Server-aligned session id validity: opencode rejects anything not starting
326
295
  * with "ses" (SchemaError). This deliberately mirrors that exact contract —
327
296
  * nothing stricter, nothing looser — so a template placeholder ("{sessionID}"),
@@ -400,28 +369,34 @@ type ChildDelegationLike = {
400
369
  * (fail-open: a freshly-seen child is assumed active; the 1s poll + md
401
370
  * correct it as soon as terminal data exists). */
402
371
  declare function childStatusToState(status: string | undefined): 'running' | 'completed' | 'retry';
403
- /** Short row prefix for a delegation entry (one of the two visual channels
404
- * that split native task() work from pantheon_delegate jobs — the other is
405
- * {@link delegationIcon}):
372
+ /** Status-only row model: ONE glyph + ONE identity per row.
406
373
  *
407
- * - `nat:<agent>` — a native task() child (source 'children-only', no board
408
- * report). The child session carries no board alias, so the agent IS the
409
- * identity.
410
- * - `pan:<alias>` — a pantheon_delegate board row (`pan:apo-1`), the same
411
- * alias the manager prints in pantheon_delegation_list.
412
- *
413
- * Short prefixes keep the narrow sidebar readable (the old
414
- * `pan:apo-1`/`nat:` tags ate the row width). */
415
- declare function delegationTag(entry: DelegationEntry): string;
416
- /** Row glyph: hollow diamond `◇` for native task() children (info color,
417
- * outline) vs filled diamond `◆` for pantheon_delegate rows (state color).
418
- * Shape + color are independent channels, so the split stays legible even
419
- * without color. */
420
- declare function delegationIcon(entry: DelegationEntry): string;
421
- /** Row identity after the status marker + glyph. Pantheon rows append the
422
- * agent (`pan:apo-1 apollo`); native rows already carry it inside the tag
423
- * (`nat:apollo`) and must not duplicate it. */
424
- declare function formatDelegationIdentity(entry: DelegationEntry): string;
374
+ * A row is
375
+ * `{glyph} {alias:7} {elapsed:>5}` plus a muted description line. The short
376
+ * alias (`apo-1`) is the single identity; rows without a board alias show
377
+ * the agent instead (never both). */
378
+ type DelegationRowStatus = 'active' | 'done' | 'failed' | 'retry';
379
+ /** Map every FSM/display state to one of the 4 row kinds. reconciled never
380
+ * reaches the panel (the board parser drops it) but reads as done;
381
+ * cancelled reads as done; startup_failed reads as failed while
382
+ * startup_unknown (no error known) reads as retry. Pure. */
383
+ declare function delegationRowStatus(state: DelegationDisplayState): DelegationRowStatus;
384
+ /** The only 4 glyphs a row may show: animated active, done, failed, retry.
385
+ * Shape is redundant with color (never the only signal). Pure. */
386
+ declare const DELEGATION_ROW_GLYPHS: Readonly<Record<DelegationRowStatus, string>>;
387
+ declare function delegationRowGlyph(status: DelegationRowStatus): string;
388
+ /** Row marker (`<glyph> `) — the single state channel. `active` animates
389
+ * through the 1s spinner for the given tick; every other kind is static.
390
+ * Pure. */
391
+ declare function delegationRowMarker(state: DelegationDisplayState, now?: number): string;
392
+ /** ONE identity per row: the short board alias (`apo-1`); a row without a
393
+ * board alias (native task() child, alias `native-task`) shows the agent
394
+ * instead — never alias + agent stacked. Pure. */
395
+ declare function delegationRowIdentity(entry: DelegationEntry): string;
396
+ /** Fixed alias cell, pad-right + hard-truncate to `width` (default 7) so
397
+ * identities line up across rows. Pure. */
398
+ declare const DELEGATION_ALIAS_WIDTH = 7;
399
+ declare function formatDelegationAlias(identity: string, width?: number): string;
425
400
  /** Max description width on the row detail line — the old 180-char slice
426
401
  * wrapped the sidebar; 44 keeps one readable line. */
427
402
  declare const DELEGATION_DESCRIPTION_MAX = 44;
@@ -429,21 +404,34 @@ declare const DELEGATION_DESCRIPTION_MAX = 44;
429
404
  * `max`-length text is left untouched. Grapheme-granular, so an emoji made of
430
405
  * several code points is never split into mojibake at the boundary. Pure. */
431
406
  declare function truncateDelegationDescription(text: string, max?: number): string;
432
- /** Fixed elapsed-time box: right-aligned to `width` (default 8) so elapsed
433
- * values line up across rows, e.g. ` 12s`. A label that already fills
407
+ /** Fixed elapsed-time box: right-aligned to `width` (default 5) so elapsed
408
+ * values line up across rows, e.g. ` 12s`. A label that already fills
434
409
  * the box is returned untouched. Pure. */
435
- declare const DELEGATION_ELAPSED_WIDTH = 8;
410
+ declare const DELEGATION_ELAPSED_WIDTH = 5;
436
411
  declare function formatDelegationElapsed(entry: DelegationEntry, now: number, width?: number): string;
437
- /** First row line: `<marker><glyph> <identity>`. The marker already carries
438
- * its trailing space. Pure — the row renders the returned string verbatim. */
439
- declare function formatDelegationRow(entry: DelegationEntry, marker: string): string;
440
- /** Header summary: `(N active · M done · nat:K pan:M)`. Active counts
441
- * running/retry AND display-only stale-running (a stale row is still a live
442
- * job — it must never read as done). Pure. */
412
+ /** Colored left half of a row line: `<marker><alias:7> ` — the state glyph
413
+ * plus the single identity, padded so the muted elapsed column aligns. The
414
+ * row renders this colored lead separately from the muted elapsed tail. Pure. */
415
+ declare function formatDelegationRowLead(entry: DelegationEntry, marker: string): string;
416
+ /** Visible-row ceiling for the panel: the remainder collapses into a single
417
+ * "… +N more" line. Live rows render first, so a running job is never hidden
418
+ * by the cap. */
419
+ declare const DELEGATION_VISIBLE_CEILING = 8;
420
+ /** Header summary: `(N active · M done)` plus `· K failed` only when K > 0.
421
+ * Active counts running/retry AND display-only stale-running (a stale row is
422
+ * still a live job — it must never read as done); failed counts
423
+ * error/startup_failed; cancelled reads as done. Pure. */
443
424
  declare function formatDelegationHeader(entries: readonly DelegationEntry[]): string;
425
+ /** Cap the panel: live rows first, then most-recent terminal rows, at most
426
+ * `maxVisible` total. `hidden` is how many were dropped (rendered as
427
+ * "… +N more"). Pure. */
428
+ declare function ceilingDelegationList(all: readonly DelegationEntry[], maxVisible?: number, now?: number): {
429
+ visible: DelegationEntry[];
430
+ hidden: number;
431
+ };
444
432
  /** Split a display list into native task() rows vs pantheon_delegate rows.
445
433
  * Native = source 'children-only' (no board report); everything else counts
446
- * as pantheon. Pure — powers the header breakdown + the hooks.log line. */
434
+ * as pantheon. Pure — powers the hooks.log line. */
447
435
  declare function countDelegationSources(entries: readonly DelegationEntry[]): {
448
436
  native: number;
449
437
  pantheon: number;
@@ -462,15 +450,18 @@ declare function formatPanelLogLine(children: number, pantheon: number, native:
462
450
  * time.created. A report-less child is a NATIVE task() child (every
463
451
  * child of the current session — pantheon_delegate OR the native `task()`
464
452
  * tool — carries parentID = caller), so it gets source 'children-only',
465
- * the internal alias 'native-task' and the `nat:` tag instead of a
453
+ * the internal alias 'native-task' instead of a
466
454
  * board alias. The 'task nativa' description fallback keeps the row
467
455
  * non-empty when the child carries no title.
468
456
  * Terminal md state wins over the derived state; a running md defers to
469
457
  * the child's live status. A running child is NEVER archived — it always
470
458
  * lands in the active split (splitDelegationList active = running/retry).
459
+ * `parentSessionID` (the focused session id) is stamped on report-less
460
+ * children so the row carries its origin session; omit it and they stay
461
+ * unscoped ('').
471
462
  * Sorted running-first (compareDelegationEntries).
472
463
  * Pure — no I/O. */
473
- declare function childrenToDelegationEntries(children: readonly ChildDelegationLike[] | undefined, md: readonly DelegationEntry[], now?: number): DelegationEntry[];
464
+ declare function childrenToDelegationEntries(children: readonly ChildDelegationLike[] | undefined, md: readonly DelegationEntry[], now?: number, parentSessionID?: string): DelegationEntry[];
474
465
  /** Navigate the TUI to a child session (click/Enter on a delegation row).
475
466
  * Returns false when the route API is unavailable or the target id is
476
467
  * missing/placeholder — the row stays inert instead of crashing. Only a
@@ -495,5 +486,5 @@ declare const plugin: TuiPluginModule & {
495
486
  setup: () => Promise<void>;
496
487
  };
497
488
  //#endregion
498
- export { BoardJobRecord, ChildDelegationLike, DELEGATION_DESCRIPTION_MAX, DELEGATION_ELAPSED_WIDTH, DELEGATION_SCOPE_KV_KEY, DELEGATION_STATE_GLYPHS, DelegationActivity, DelegationDisplayState, DelegationEntry, DelegationScope, DelegationScopeKv, DelegationStateTone, DelegationToolPart, IDLE_SILENCE_MS, LiveDelegationEntry, LiveDelegationStore, ParsedDelegationToolPart, STALE_RUNNING_THRESHOLD_MS, ToolActivity, TuiSessionSources, boardRecordToDelegationEntry, boardRecordsToDelegationEntries, boardStatePath, buildChildrenPath, childStatusToState, childrenToDelegationEntries, collectDelegationToolParts, compareDelegationEntries, countDelegationSources, plugin as default, delegationActivity, delegationActivityLabel, delegationElapsed, delegationIcon, delegationSpinnerFrame, delegationStateGlyph, delegationStateMarker, delegationStateTone, delegationTag, extractToolActivity, filterDelegationsByScope, fmtElapsed, formatDelegationElapsed, formatDelegationHeader, formatDelegationIdentity, formatDelegationRow, formatPanelLogLine, isValidSessionId, latestToolActivityFor, markStaleIfRunning, mergeBoardDelegationSources, mergeChildDelegationSources, mergeDelegationSources, navigateToDelegationSession, nextDelegationScope, panelLogDir, parseDelegationMarkdown, parseDelegationToolPart, readAllDelegationEntries, readBoardState, readDelegationEntries, readDelegationScope, reduceDelegationToolPart, removeDelegationEntry, resolveCurrentSessionID, resolveDelegationsDir, resolvePantheonRoot, safeSessionPath, seedLiveDelegationMap, splitDelegationList, toDelegationEntry, trackToolActivity, truncateDelegationDescription, tuiLogPath, visibleDelegationList, writeDelegationScope };
489
+ export { BoardJobRecord, ChildDelegationLike, DELEGATION_ALIAS_WIDTH, DELEGATION_DESCRIPTION_MAX, DELEGATION_ELAPSED_WIDTH, DELEGATION_ROW_GLYPHS, DELEGATION_VISIBLE_CEILING, DelegationActivity, DelegationDisplayState, DelegationEntry, DelegationRowStatus, DelegationStateTone, DelegationToolPart, IDLE_SILENCE_MS, LiveDelegationEntry, LiveDelegationStore, ParsedDelegationToolPart, STALE_RUNNING_THRESHOLD_MS, ToolActivity, TuiSessionSources, boardRecordToDelegationEntry, boardRecordsToDelegationEntries, boardStatePath, buildChildrenPath, ceilingDelegationList, childStatusToState, childrenToDelegationEntries, collectDelegationToolParts, compareDelegationEntries, countDelegationSources, plugin as default, delegationActivity, delegationActivityLabel, delegationElapsed, delegationRowGlyph, delegationRowIdentity, delegationRowMarker, delegationRowStatus, delegationSpinnerFrame, delegationStateTone, extractToolActivity, fmtElapsed, formatDelegationAlias, formatDelegationElapsed, formatDelegationHeader, formatDelegationRowLead, formatPanelLogLine, isValidSessionId, latestToolActivityFor, markStaleIfRunning, mergeBoardDelegationSources, mergeChildDelegationSources, mergeDelegationSources, navigateToDelegationSession, panelLogDir, parseDelegationMarkdown, parseDelegationToolPart, readAllDelegationEntries, readBoardState, readDelegationEntries, reduceDelegationToolPart, removeDelegationEntry, resolveCurrentSessionID, resolveDelegationsDir, resolvePantheonRoot, safeSessionPath, seedLiveDelegationMap, splitDelegationList, toDelegationEntry, trackToolActivity, truncateDelegationDescription, tuiLogPath, visibleDelegationList };
499
490
  //# sourceMappingURL=tui.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tui.d.ts","names":[],"sources":["../src/index.tsx"],"mappings":"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"}
1
+ {"version":3,"file":"tui.d.ts","names":[],"sources":["../src/index.tsx"],"mappings":";;KAw7BY;;EAEV;;EAEA;;;;EAIA;;EAEA;EACA;;EAUA;;EAEA;EACA;EACA;;EAEA;;;;;EASA;;;;;;;;;;;iBAsBc,wBACd,aACA,oBACA,qBACC;;;;;;iBAkHmB,sBAAsB,cAAc,QAAQ;;;;;;;;iBAwC5C,yBAAyB,eAAe,QAAQ;;;KAc1D;EACV;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;iBAIc,eAAe;;;;iBAiCT,eAAe,eAAe,QAAQ;;;;;;;iBA4B5C,oBACd;EAAS;EAAoB;eAC7B;;;;iBAUc,sBACd;EAAS;EAAoB;eAC7B;;;;;;iBAUc,YAAY;;;iBAMZ,WAAW;;;;iBAOX,yBAAyB,GAAG,iBAAiB,GAAG;;;;;iBAahD,oBACd,cAAc,mBACd,oBACA,cACA;EACG,QAAQ;EAAmB,QAAQ;;;;;iBAoBxB,sBACd,cAAc,mBACd,sBACA,cACA,4BACC;;cAMU;;;;cAKA;;;;;;;;;iBAUG,mBACd,OAAO,iBACP,aACA,uBACC;;;iBAWa,WAAW;;;;iBAeX,kBAAkB,OAAO,iBAAiB;;;KAQ9C;iBAQI,mBAAmB,OAAO,kBAAkB;iBAc5C,wBAAwB,OAAO;;;iBAsB/B,uBAAuB;;;;;;KAU3B,yBAAyB;;;;KAKzB;;;;iBAKI,oBAAoB,OAAO,yBAAyB;KAwBxD;EACV;EACA;EACA;;;;;iBAsBc,oBACd;EACE;EACA;EACA;EACA;IAAU;IAAiB,QAAQ;;GAErC;EACG;EAAmB,UAAU;;;iBAYlB,kBACd,KAAK,YAAY,eACjB,mBACA,UAAU;;iBAWI,sBACd,KAAK,YAAY,eACjB,+BACA,cACA,iBACC;;;;;;;iBAca,4BACd,mBAAmB,mBACnB,eAAe,wBACd;;KAmGS;EACV;EACA;EACA;EACA;EACA;EACA;IACE;IACA,QAAQ;IACR;IACA;IACA;MAAS;MAAgB;;;;;KAKjB;;EAEV;;EAEA;;EAEA;EACA;;EAEA;EACA;;EAEA;;EAEA;EACA;EACA;EACA;;EAEA;;;KAIU;EACV;EACA;EACA;EACA;;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;;;;;;;iBAec,wBACd,MAAM,oBACN,eACC;;;iBAgGa,yBACd,KAAK,YAAY,sBACjB,MAAM,oBACN;;;iBAiGc,sBACd,KAAK,YAAY,sBACjB;;;;;;;;;iBAoBc,2BACd;EAAqB;EAAa;iBAClC,YAAY,uDACX;;;;;iBA6Ba,sBACd,KAAK,YAAY,sBACjB,gBAAgB,sBAChB;;;iBAWc,kBAAkB,MAAM,sBAAsB;;;;;;iBAqB9C,uBACd,eAAe,uBACf,aAAa,oBACZ;;;iBAyCa,6BAA6B,QAAQ,iBAAiB;;;iBAoBtD,gCACd,kBAAkB,mBACjB;;;;;iBAca,4BACd,eAAe,mBACf,gBAAgB,oBACf;;;;;;;;;iBAuEa,iBAAiB,cAAc;;;;KAOnC;;EAEV;EACA;;IAEE;MAAU;;;IAEV;MAAU;QAAY;QAAe,SAAS;;;;;;;;;;iBASlC,wBAAwB,SAAS;;;;;;;;iBAmBjC,gBAAgB;EAAgB;IAAQ;;;;;;;iBASxC,kBAAkB;EAAkC;IAAQ;;;;KAKhE;;EAEV;;EAEA;;;EAGA;;;EAGA;EACA;IACE;IACA;;;;;;;iBAQY,mBAAmB;;;;;;;KAYvB;;;;;iBAMI,oBAAoB,OAAO,yBAAyB;;;cAmBvD,uBAAuB,SAAS,OAAO;iBAOpC,mBAAmB,QAAQ;;;;iBAO3B,oBAAoB,OAAO,wBAAwB;;;;iBASnD,sBAAsB,OAAO;;;cAOhC;iBAEG,sBAAsB,kBAAkB;;;cAO3C;;;;iBAoBG,8BACd,cACA;;;;cAUW;iBAEG,wBACd,OAAO,iBACP,aACA;;;;iBAUc,wBAAwB,OAAO,iBAAiB;;;;cAYnD;;;;;iBAMG,uBAAuB,kBAAkB;;;;iBAyBzC,sBACd,cAAc,mBACd,qBACA;EACG,SAAS;EAAmB;;;;;iBAQjB,uBAAuB,kBAAkB;EACvD;EACA;EACA;;;;;iBAUc,mBACd,kBACA,kBACA,gBACA,YACA;;;;;;;;;;;;;;;;;;;;;iBAyBc,4BACd,mBAAmB,mCACnB,aAAa,mBACb,cACA,2BACC;;;;;;iBAgDa,4BACd;EAAS,YAAY,cAAc,SAAS;eAC5C;;;;;KAyLU;EACV,KAAK,YAAY;;EAEjB;;EAEA;;cAifI,QAAQ;EAAoB;EAAY,aAAa"}