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

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,58 @@ 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.14] - 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
+ - **Ordenação active-first:** delegações ativas aparecem antes das concluídas,
29
+ falhas e canceladas no painel TUI.
30
+ - **Overflow active:** quando há mais delegações ativas que o teto visível, o
31
+ excedente ativo permanece representado na linha de overflow.
32
+
33
+ ## 🐞 Fixed
34
+
35
+ - **Retenção visual:** concluídas permanecem visíveis por 2 min e falhas por
36
+ 10 min antes de saírem do painel; canceladas seguem a retenção configurada.
37
+
38
+ ## ⚠️ Known Issues
39
+
40
+ - **Stale running warning:** jobs em estado `running` além do limite esperado
41
+ recebem um aviso visual de stale no painel.
42
+ ## [v1.5.0-beta.13] - 2026-09-14
43
+
44
+ <!-- Add new changes here. Running `node scripts/versioning.mjs apply` will
45
+ move this section to a versioned entry and reset the template below. -->
46
+
47
+ ## 🆕 What's New
48
+
49
+ - **TUI status-only — rows simplificadas:** cada linha do painel Delegations passa
50
+ a ser `{glyph} {alias} {elapsed}` + `desc` muted — um glyph de status, uma única
51
+ identidade e o tempo decorrido, com a descrição em tom muted. São 4 glyphs
52
+ (running animado, completed, error, cancelled/retry), sem toggle
53
+ `[Sessão]`/`[Tudo]`, sem prefixos `nat:`/`pan:` e sem losango ◇/◆.
54
+ - **Header `active`/`done`/`failed`:** o cabeçalho do painel resume apenas esses
55
+ três contadores sobre a lista completa (todas as sessões), sem `nat:`/`pan:`.
56
+ - **Ceiling 8:** no máximo 8 linhas visíveis (live-first); o excedente colapsa em
57
+ uma única linha `… +N more`.
58
+ - **Board read (jobs de todas as sessões):** o painel lê o BackgroundJobBoard
59
+ (`.pantheon/board/state.json`), então jobs `pantheon_delegate` de qualquer
60
+ sessão aparecem — não só os filhos nativos da sessão focada.
61
+ - **118 testes TUI delegations:** `tests/pantheon/tui-delegations.test.ts` com
62
+ 118/118 passando, cobrindo rows status-only, header active/done/failed, ceiling
63
+ e board read cross-session.
64
+
65
+ ## 🐞 Fixed
66
+
67
+ - **Sanitização de dead code:** removidos helpers, tipos e estado órfãos do
68
+ painel Delegations (toggle de escopo `[Sessão]`/`[Tudo]`, prefixos curtos
69
+ `nat:`/`pan:`, glyphs por estado e paginação de arquivo morto) que sobraram do
70
+ refactor status-only.
71
+ - **Board merge preserva sessão conhecida:** um record do board com
72
+ `parentSessionID` vazio não sobrescreve mais a sessão já atribuída à linha.
21
73
  ## [v1.5.0-beta.12] - 2026-09-14
22
74
 
23
75
  <!-- 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.14",
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.14",
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.14"
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;
@@ -119,6 +118,10 @@ declare const STALE_RUNNING_THRESHOLD_MS: number;
119
118
  * considered stale. Combined with the stale-running threshold to produce the
120
119
  * display-only `stale-running` state. */
121
120
  declare const IDLE_SILENCE_MS: number;
121
+ /** Visual-only terminal retention windows. Reports remain on disk and in the
122
+ * board; these constants only control which rows enter the TUI window. */
123
+ declare const DELEGATION_DONE_RETENTION_MS: number;
124
+ declare const DELEGATION_FAILED_RETENTION_MS: number;
122
125
  /**
123
126
  * Mark a running entry as `stale-running` if it has been running longer than
124
127
  * the threshold AND has no recent activity (no `updatedAt` change in the last
@@ -128,7 +131,7 @@ declare const IDLE_SILENCE_MS: number;
128
131
  * delegation is still treated as running by the backend.
129
132
  */
130
133
  declare function markStaleIfRunning(entry: DelegationEntry, now: number, thresholdMs?: number): DelegationEntry;
131
- /** Compact elapsed-time label: "5m 12s", "1h 30m", "2d 4h" — ticks every
134
+ /** Compact elapsed-time label, single unit only: "12s"/"3m"/"1h"/"2d" — ticks every
132
135
  * second for running jobs. */
133
136
  declare function fmtElapsed(ms: number): string;
134
137
  /** Elapsed label for one entry: an ACTIVE entry (running/retry/stale-running)
@@ -149,20 +152,13 @@ declare function delegationSpinnerFrame(now: number): string;
149
152
  * blocked/paused/scheduled/skipped. There is no `pending` display state: a
150
153
  * pre-dispatch tool part maps to `running` in {@link reduceDelegationToolPart}. */
151
154
  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
155
  /** Semantic tone mapped to the TUI theme at the row ({@link DelegationRow}).
163
156
  * Kept separate + pure so the color channel is testable without booting the
164
157
  * renderer. */
165
158
  type DelegationStateTone = 'warning' | 'error' | 'success' | 'muted';
159
+ /** Color is the ONLY channel separating `stale-running` from a live `running`
160
+ * row — the 4-glyph row design has no dedicated stale shape. Display-only;
161
+ * no behavior change. */
166
162
  declare function delegationStateTone(state: DelegationDisplayState): DelegationStateTone;
167
163
  type ToolActivity = {
168
164
  tool: string;
@@ -268,7 +264,7 @@ declare function removeDelegationEntry(map: Map<string, LiveDelegationEntry>, pa
268
264
  * SDK exposes `api.state.part(messageID)`). The native `task` tool spawns a
269
265
  * child session with parentID = caller — the same mechanism as
270
266
  * 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
267
+ * (rows come from the children channel). Pure w.r.t. I/O — used
272
268
  * by the mount re-scan to re-seed the live map after compaction/attach. */
273
269
  declare function collectDelegationToolParts(messages: readonly {
274
270
  id?: string;
@@ -299,29 +295,6 @@ declare function boardRecordsToDelegationEntries(records: readonly BoardJobRecor
299
295
  * that carries jobs from OTHER sessions. Dedup by taskID first, then by
300
296
  * (sessionID, alias) — aliases are per parent session. Pure. */
301
297
  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
298
  /** Server-aligned session id validity: opencode rejects anything not starting
326
299
  * with "ses" (SchemaError). This deliberately mirrors that exact contract —
327
300
  * nothing stricter, nothing looser — so a template placeholder ("{sessionID}"),
@@ -400,28 +373,34 @@ type ChildDelegationLike = {
400
373
  * (fail-open: a freshly-seen child is assumed active; the 1s poll + md
401
374
  * correct it as soon as terminal data exists). */
402
375
  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}):
376
+ /** Status-only row model: ONE glyph + ONE identity per row.
406
377
  *
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;
378
+ * A row is
379
+ * `{glyph} {alias:7} {elapsed:>5}` plus a muted description line. The short
380
+ * alias (`apo-1`) is the single identity; rows without a board alias show
381
+ * the agent instead (never both). */
382
+ type DelegationRowStatus = 'active' | 'done' | 'failed' | 'retry';
383
+ /** Map every FSM/display state to one of the 4 row kinds. reconciled never
384
+ * reaches the panel (the board parser drops it) but reads as done;
385
+ * cancelled reads as done; startup_failed reads as failed while
386
+ * startup_unknown (no error known) reads as retry. Pure. */
387
+ declare function delegationRowStatus(state: DelegationDisplayState): DelegationRowStatus;
388
+ /** The only 4 glyphs a row may show: animated active, done, failed, retry.
389
+ * Shape is redundant with color (never the only signal). Pure. */
390
+ declare const DELEGATION_ROW_GLYPHS: Readonly<Record<DelegationRowStatus, string>>;
391
+ declare function delegationRowGlyph(status: DelegationRowStatus): string;
392
+ /** Row marker (`<glyph> `) — the single state channel. `active` animates
393
+ * through the 1s spinner for the given tick; every other kind is static.
394
+ * Pure. */
395
+ declare function delegationRowMarker(state: DelegationDisplayState, now?: number): string;
396
+ /** ONE identity per row: the short board alias (`apo-1`); a row without a
397
+ * board alias (native task() child, alias `native-task`) shows the agent
398
+ * instead — never alias + agent stacked. Pure. */
399
+ declare function delegationRowIdentity(entry: DelegationEntry): string;
400
+ /** Fixed alias cell, pad-right + hard-truncate to `width` (default 7) so
401
+ * identities line up across rows. Pure. */
402
+ declare const DELEGATION_ALIAS_WIDTH = 7;
403
+ declare function formatDelegationAlias(identity: string, width?: number): string;
425
404
  /** Max description width on the row detail line — the old 180-char slice
426
405
  * wrapped the sidebar; 44 keeps one readable line. */
427
406
  declare const DELEGATION_DESCRIPTION_MAX = 44;
@@ -429,21 +408,36 @@ declare const DELEGATION_DESCRIPTION_MAX = 44;
429
408
  * `max`-length text is left untouched. Grapheme-granular, so an emoji made of
430
409
  * several code points is never split into mojibake at the boundary. Pure. */
431
410
  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
411
+ /** Fixed elapsed-time box: right-aligned to `width` (default 5) so elapsed
412
+ * values line up across rows, e.g. ` 12s`. A label that already fills
434
413
  * the box is returned untouched. Pure. */
435
- declare const DELEGATION_ELAPSED_WIDTH = 8;
414
+ declare const DELEGATION_ELAPSED_WIDTH = 5;
436
415
  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. */
416
+ /** Colored left half of a row line: `<marker><alias:7> ` — the state glyph
417
+ * plus the single identity, padded so the muted elapsed column aligns. The
418
+ * row renders this colored lead separately from the muted elapsed tail. Pure. */
419
+ declare function formatDelegationRowLead(entry: DelegationEntry, marker: string): string;
420
+ /** Visible-row ceiling for the panel: the remainder collapses into a single
421
+ * "… +N more" line. Live rows render first, so a running job is never hidden
422
+ * by the cap. */
423
+ declare const DELEGATION_VISIBLE_CEILING = 8;
424
+ /** Header summary: `(N active · M done)` plus `· K failed` only when K > 0.
425
+ * Active counts running/retry AND display-only stale-running (a stale row is
426
+ * still a live job — it must never read as done); failed counts
427
+ * error/startup_failed; cancelled reads as done. Pure. */
443
428
  declare function formatDelegationHeader(entries: readonly DelegationEntry[]): string;
429
+ /** Cap the panel: live rows first, then most-recent retained terminal rows, at
430
+ * most `maxVisible` total. Hidden counts describe the retained render list,
431
+ * not expired history. */
432
+ declare function ceilingDelegationList(all: readonly DelegationEntry[], maxVisible?: number, now?: number): {
433
+ visible: DelegationEntry[];
434
+ hidden: number;
435
+ hiddenActive: number;
436
+ hiddenTerminal: number;
437
+ };
444
438
  /** Split a display list into native task() rows vs pantheon_delegate rows.
445
439
  * Native = source 'children-only' (no board report); everything else counts
446
- * as pantheon. Pure — powers the header breakdown + the hooks.log line. */
440
+ * as pantheon. Pure — powers the hooks.log line. */
447
441
  declare function countDelegationSources(entries: readonly DelegationEntry[]): {
448
442
  native: number;
449
443
  pantheon: number;
@@ -462,23 +456,30 @@ declare function formatPanelLogLine(children: number, pantheon: number, native:
462
456
  * time.created. A report-less child is a NATIVE task() child (every
463
457
  * child of the current session — pantheon_delegate OR the native `task()`
464
458
  * tool — carries parentID = caller), so it gets source 'children-only',
465
- * the internal alias 'native-task' and the `nat:` tag instead of a
459
+ * the internal alias 'native-task' instead of a
466
460
  * board alias. The 'task nativa' description fallback keeps the row
467
461
  * non-empty when the child carries no title.
468
462
  * Terminal md state wins over the derived state; a running md defers to
469
463
  * the child's live status. A running child is NEVER archived — it always
470
464
  * lands in the active split (splitDelegationList active = running/retry).
465
+ * `parentSessionID` (the focused session id) is stamped on report-less
466
+ * children so the row carries its origin session; omit it and they stay
467
+ * unscoped ('').
471
468
  * Sorted running-first (compareDelegationEntries).
472
469
  * Pure — no I/O. */
473
- declare function childrenToDelegationEntries(children: readonly ChildDelegationLike[] | undefined, md: readonly DelegationEntry[], now?: number): DelegationEntry[];
470
+ declare function childrenToDelegationEntries(children: readonly ChildDelegationLike[] | undefined, md: readonly DelegationEntry[], now?: number, parentSessionID?: string): DelegationEntry[];
474
471
  /** Navigate the TUI to a child session (click/Enter on a delegation row).
475
472
  * Returns false when the route API is unavailable or the target id is
476
473
  * missing/placeholder — the row stays inert instead of crashing. Only a
477
474
  * server-valid session id ("ses...") ever reaches the router, so an
478
475
  * unsubstituted "{sessionID}" placeholder can never be routed. */
479
476
  declare function navigateToDelegationSession(route: {
480
- navigate?: (name: string, params?: Record<string, unknown>) => void;
477
+ navigate?: (name: string, params?: Record<string, unknown>) => void | PromiseLike<void>;
481
478
  } | undefined, taskID: string | undefined): boolean;
479
+ /** Build the mouse handler used by each delegation row. */
480
+ declare function createDelegationRowOpenHandler(route: {
481
+ navigate?: (name: string, params?: Record<string, unknown>) => void | PromiseLike<void>;
482
+ } | undefined, taskID: string | undefined): () => void;
482
483
  /** Plugin-level live delegation store shared with the event subscriptions
483
484
  * in `tui()`: the map of live entries + a version signal bumped on every
484
485
  * mutation. The View subscribes to the version (in an effect) to refresh the
@@ -495,5 +496,5 @@ declare const plugin: TuiPluginModule & {
495
496
  setup: () => Promise<void>;
496
497
  };
497
498
  //#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 };
499
+ export { BoardJobRecord, ChildDelegationLike, DELEGATION_ALIAS_WIDTH, DELEGATION_DESCRIPTION_MAX, DELEGATION_DONE_RETENTION_MS, DELEGATION_ELAPSED_WIDTH, DELEGATION_FAILED_RETENTION_MS, 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, createDelegationRowOpenHandler, 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
500
  //# 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":"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"}