pantheon-opencode 1.5.0-beta.1 → 1.5.0-beta.11

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/.pantheon/code-mode/manifest.json +21 -0
  2. package/CHANGELOG.md +1054 -0
  3. package/README.md +171 -16
  4. package/README.pt-BR.md +99 -13
  5. package/bin/pantheon-init.mjs +178 -21
  6. package/package.json +23 -15
  7. package/plugin.json +1 -1
  8. package/pyproject.toml +65 -0
  9. package/scripts/code_mode_server.py +431 -55
  10. package/scripts/cost.mjs +30 -14
  11. package/scripts/dev-tui.sh +48 -0
  12. package/scripts/doctor.mjs +207 -9
  13. package/scripts/install/cli-ui.mjs +17 -11
  14. package/scripts/install/config-migration.mjs +4 -6
  15. package/scripts/install/opencode.mjs +137 -35
  16. package/scripts/install/plugin.mjs +3 -33
  17. package/scripts/install/shared.mjs +43 -2
  18. package/scripts/install/strings.mjs +129 -0
  19. package/scripts/install-mcp.mjs +1 -0
  20. package/scripts/manifest-inventory.mjs +410 -0
  21. package/scripts/mcp_persistence_server.py +537 -128
  22. package/scripts/package-evidence.mjs +242 -0
  23. package/scripts/probe-context-rehydrate.mjs +240 -0
  24. package/scripts/probe-pantheon-cost.mjs +313 -0
  25. package/scripts/release-beta-version.mjs +56 -60
  26. package/scripts/sync-artifacts.mjs +169 -0
  27. package/scripts/sync-tui.mjs +121 -53
  28. package/scripts/test-opencode-v1-v2-sandbox.sh +367 -96
  29. package/scripts/validation-policy.mjs +7 -7
  30. package/scripts/version-check.mjs +113 -108
  31. package/scripts/versioning.mjs +230 -86
  32. package/src/agents/mnemosyne.md +1 -1
  33. package/src/agents/zeus.md +2 -2
  34. package/src/mcp/code_mode_server.py +431 -55
  35. package/src/mcp/mcp_persistence_server.py +537 -128
  36. package/src/pantheon/auto-wake.ts +1 -5
  37. package/src/pantheon/background-job-board.ts +43 -1
  38. package/src/pantheon/compaction-handoff.ts +304 -0
  39. package/src/pantheon/cost-command.ts +345 -62
  40. package/src/pantheon/delegate-manager.ts +390 -8
  41. package/src/pantheon/delegation-finalize.ts +32 -0
  42. package/src/pantheon/delegation.ts +235 -18
  43. package/src/pantheon/file-persistence-salvage.ts +64 -0
  44. package/src/pantheon/file-persistence.ts +194 -45
  45. package/src/pantheon/native-probe.ts +234 -0
  46. package/src/pantheon/native-task-status.ts +139 -0
  47. package/src/pantheon/provider-capabilities.ts +221 -0
  48. package/src/pantheon/provider-stream-tracker.ts +182 -0
  49. package/src/pantheon/shared-board.ts +37 -0
  50. package/src/pantheon/task-result-guard.ts +107 -0
  51. package/src/pantheon/token-opt.ts +146 -12
  52. package/src/pantheon/tool-ceiling.ts +159 -0
  53. package/src/pantheon/v2-events.ts +18 -1
  54. package/src/plugin-v2.ts +2 -14
  55. package/src/plugin.ts +28 -17
  56. package/src/plugins/pantheon-hooks.ts +51 -0
  57. package/src/plugins/tui/dist/server.d.ts +1 -1
  58. package/src/plugins/tui/dist/server.d.ts.map +1 -1
  59. package/src/plugins/tui/dist/server.js +1 -1
  60. package/src/plugins/tui/dist/server.js.map +1 -1
  61. package/src/plugins/tui/dist/tui.d.ts +137 -27
  62. package/src/plugins/tui/dist/tui.d.ts.map +1 -1
  63. package/src/plugins/tui/dist/tui.js +459 -163
  64. package/src/plugins/tui/dist/tui.js.map +1 -1
  65. package/src/plugins/tui/dist/tui.tsx +506 -103
  66. package/src/plugins/tui/package-lock.json +2 -2
  67. package/src/plugins/tui/package.json +1 -1
  68. package/src/plugins/tui/src/index.tsx +506 -103
  69. package/.pantheon/code-mode/.gitkeep +0 -0
  70. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/checkpoint-1.json +0 -8
  71. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/checkpoint-10.json +0 -8
  72. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/checkpoint-11.json +0 -8
  73. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/checkpoint-2.json +0 -8
  74. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/checkpoint-3.json +0 -8
  75. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/checkpoint-4.json +0 -8
  76. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/checkpoint-5.json +0 -8
  77. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/checkpoint-6.json +0 -8
  78. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/checkpoint-7.json +0 -8
  79. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/checkpoint-8.json +0 -8
  80. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/checkpoint-9.json +0 -8
  81. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/heartbeat.json +0 -8
  82. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/session.json +0 -11
  83. package/src/pantheon/delegate-task-adapter.ts +0 -444
@@ -11,7 +11,7 @@ type DelegationEntry = {
11
11
  taskID?: string;
12
12
  /** Agent name, e.g. "apollo". */
13
13
  agent: string;
14
- state: 'running' | 'completed' | 'error' | 'startup_failed' | 'startup_unknown' | 'cancelled' | 'stale-running';
14
+ state: 'running' | 'retry' | 'completed' | 'error' | 'startup_failed' | 'startup_unknown' | 'cancelled' | 'stale-running';
15
15
  /** Epoch ms of the `Started` header. */
16
16
  startedAt: number;
17
17
  /** Epoch ms of the `Finalized` header — null while still running. */
@@ -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 `[native]` tag); 'md' = board report wins. */
25
+ * (rendered with the distinct `nat:` prefix); 'md' = board report wins. */
26
26
  source?: 'child' | 'live' | 'md' | 'children-only';
27
27
  };
28
28
  /** Parse one delegation report md header into a structured entry.
@@ -59,7 +59,7 @@ declare function readAllDelegationEntries(root: string): Promise<DelegationEntry
59
59
  declare function resolveDelegationsDir(state: {
60
60
  directory?: string;
61
61
  worktree?: string;
62
- } | undefined, cwd?: any): string;
62
+ } | undefined, cwd?: string): string;
63
63
  /** Project root derived from the delegations dir: `<root>/.pantheon/delegations`
64
64
  * → `<root>`. Used to point the panel logger at the REAL hooks.log — passing
65
65
  * the delegations dir (or its dirname) directly made createTuiLogger append
@@ -73,10 +73,18 @@ declare function tuiLogPath(projectRoot: string): string;
73
73
  * falling back to startedAt, descending). Shared by the md reader and
74
74
  * mergeDelegationSources. */
75
75
  declare function compareDelegationEntries(a: DelegationEntry, b: DelegationEntry): number;
76
- /** The list the panel actually renders: running jobs first, then the most
77
- * recent terminal reports (capped). Pure — so the history-only panel (no
78
- * sessionID) is testable without the TUI runtime. The header count uses the
79
- * same "running + recentes" list. */
76
+ /** Split the panel list: active jobs (running/retry, stale-marked) first,
77
+ * then the most recent terminal reports, then the archived tail (paginated
78
+ * in the View). Pure — so the history-only panel (no sessionID) is testable
79
+ * without the TUI runtime. */
80
+ declare function splitDelegationList(all: readonly DelegationEntry[], maxRecent?: number, now?: number, staleThresholdMs?: number): {
81
+ active: DelegationEntry[];
82
+ recent: DelegationEntry[];
83
+ archived: DelegationEntry[];
84
+ };
85
+ /** The list the panel actually renders (kept for the header count and
86
+ * existing tests): active jobs first, then the most recent terminal
87
+ * reports (capped) — the archived tail is rendered separately. Pure. */
80
88
  declare function visibleDelegationList(all: readonly DelegationEntry[], maxTerminal?: number, now?: number, staleThresholdMs?: number): DelegationEntry[];
81
89
  /** Default stale-running threshold: 30 minutes. */
82
90
  declare const STALE_RUNNING_THRESHOLD_MS: number;
@@ -96,16 +104,63 @@ declare function markStaleIfRunning(entry: DelegationEntry, now: number, thresho
96
104
  /** Compact elapsed-time label: "5m 12s", "1h 30m", "2d 4h" — ticks every
97
105
  * second for running jobs. */
98
106
  declare function fmtElapsed(ms: number): string;
99
- /** Elapsed label for one entry: running → ticks `now - startedAt`, terminal
100
- * → fixed `updatedAt - startedAt` (em dash when no finalized timestamp). */
107
+ /** Elapsed label for one entry: an ACTIVE entry (running/retry/stale-running)
108
+ * ticks `now - startedAt`; a terminal one is fixed at
109
+ * `updatedAt - startedAt` (em dash when no finalized timestamp). */
101
110
  declare function delegationElapsed(entry: DelegationEntry, now: number): string;
102
111
  /** The activity labels shown by the animated row. Keeping this pure makes the
103
112
  * state machine testable without booting OpenCode's renderer. */
104
113
  type DelegationActivity = 'delegating' | 'working' | 'reading' | 'completed' | 'error' | 'cancelled';
105
114
  declare function delegationActivity(entry: DelegationEntry): DelegationActivity;
106
115
  declare function delegationActivityLabel(entry: DelegationEntry): string;
107
- /** Return a deterministic spinner frame. The View ticks this every 140ms. */
116
+ /** Return a deterministic spinner frame. The View ticks this every 1000ms
117
+ * (not 140ms — the fast tick flickered without adding information). */
108
118
  declare function delegationSpinnerFrame(now: number): string;
119
+ /** Every state the row knows how to draw: the real BackgroundJobBoard FSM
120
+ * (src/pantheon/background-job-board.ts) plus the TUI display-only states
121
+ * (`retry`, `stale-running`). Fase 1 deliberately omits speculative
122
+ * blocked/paused/scheduled/skipped. There is no `pending` display state: a
123
+ * pre-dispatch tool part maps to `running` in {@link reduceDelegationToolPart}. */
124
+ type DelegationDisplayState = DelegationEntry['state'];
125
+ /** Static glyph per display state. `running` shows its base spinner frame;
126
+ * callers that animate must prefer {@link delegationStateMarker}. Unicode
127
+ * geometric shapes only (no Nerd Font) — shape is an independent channel
128
+ * from color, so rows stay legible without color. */
129
+ declare const DELEGATION_STATE_GLYPHS: Readonly<Record<DelegationDisplayState, string>>;
130
+ declare function delegationStateGlyph(state: DelegationDisplayState): string;
131
+ /** Row marker (`<glyph> `) — the state channel. `running` animates through
132
+ * {@link delegationSpinnerFrame} for the given tick; every other state is
133
+ * static. Pure. */
134
+ declare function delegationStateMarker(state: DelegationDisplayState, now?: number): string;
135
+ /** Semantic tone mapped to the TUI theme at the row ({@link DelegationRow}).
136
+ * Kept separate + pure so the color channel is testable without booting the
137
+ * renderer. */
138
+ type DelegationStateTone = 'warning' | 'error' | 'success' | 'muted';
139
+ declare function delegationStateTone(state: DelegationDisplayState): DelegationStateTone;
140
+ type ToolActivity = {
141
+ tool: string;
142
+ summary: string;
143
+ at: number;
144
+ };
145
+ /** Reduce one message.part.updated tool part to displayable activity.
146
+ * Returns null for non-tool parts, completed/error parts (no live activity)
147
+ * or parts without a session id. Pure. */
148
+ declare function extractToolActivity(part: {
149
+ type?: string;
150
+ tool?: string;
151
+ sessionID?: string;
152
+ state?: {
153
+ status?: string;
154
+ input?: Record<string, unknown>;
155
+ };
156
+ }, now?: number): {
157
+ sessionID: string;
158
+ activity: ToolActivity;
159
+ } | null;
160
+ /** Record an activity sample (bounded map, oldest dropped). */
161
+ declare function trackToolActivity(map: Map<string, ToolActivity>, sessionID: string, activity: ToolActivity): void;
162
+ /** Latest live activity for a child session, or null when absent/stale. */
163
+ declare function latestToolActivityFor(map: Map<string, ToolActivity>, sessionID: string | undefined, now?: number, ttlMs?: number): ToolActivity | null;
109
164
  /** Merge the immediate tool-event channel into the child-session channel.
110
165
  *
111
166
  * Children remain the durable source, while live entries make a delegation
@@ -139,7 +194,7 @@ type LiveDelegationEntry = {
139
194
  partID: string;
140
195
  /** Parent session the delegation was launched from. */
141
196
  sessionID: string;
142
- tool: 'pantheon_delegate' | 'pantheon_delegation_read';
197
+ tool: 'pantheon_delegate' | 'pantheon_delegation_read' | 'task';
143
198
  /** Agent name (from the delegate input args). */
144
199
  agent: string;
145
200
  description: string;
@@ -158,7 +213,7 @@ type ParsedDelegationToolPart = {
158
213
  callID: string;
159
214
  partID: string;
160
215
  sessionID: string;
161
- tool: 'pantheon_delegate' | 'pantheon_delegation_read';
216
+ tool: 'pantheon_delegate' | 'pantheon_delegation_read' | 'task';
162
217
  /** null for read parts (no agent arg — the id targets an existing job). */
163
218
  agent: string | null;
164
219
  description: string;
@@ -170,7 +225,9 @@ type ParsedDelegationToolPart = {
170
225
  };
171
226
  /** Extract the tool name + args from a `message.part.updated` part and
172
227
  * reduce it to what the panel needs. Returns null for anything that is
173
- * not a pantheon delegation tool part (or is missing its callID). */
228
+ * not a pantheon delegation tool part, the native `task` subagent tool
229
+ * (same parentID === caller mechanism — its children render `nat:`),
230
+ * or is missing its callID. */
174
231
  declare function parseDelegationToolPart(part: DelegationToolPart, now?: number): ParsedDelegationToolPart | null;
175
232
  /** Apply one tool part to the live map. Returns true when the map changed.
176
233
  * Pure w.r.t. I/O — only mutates `map`. */
@@ -178,11 +235,14 @@ declare function reduceDelegationToolPart(map: Map<string, LiveDelegationEntry>,
178
235
  /** Remove a live entry by part id (message.part.removed) or call id.
179
236
  * Returns true when something was removed. */
180
237
  declare function removeDelegationEntry(map: Map<string, LiveDelegationEntry>, partIDOrCallID: string): boolean;
181
- /** Collect pantheon delegation tool parts from a session's messages.
238
+ /** Collect pantheon delegation + native task tool parts from a session's messages.
182
239
  * Messages may carry their parts inline (duck-typed `msg.parts`); when
183
240
  * they don't, the optional `getParts(messageID)` callback is used (the TUI
184
- * SDK exposes `api.state.part(messageID)`). Pure w.r.t. I/O — used by the
185
- * mount re-scan to re-seed the live map after compaction/attach. */
241
+ * SDK exposes `api.state.part(messageID)`). The native `task` tool spawns a
242
+ * child session with parentID = caller — the same mechanism as
243
+ * pantheon_delegate — so its parts feed the live-map as the native signal
244
+ * (rows render `nat:` via the children channel). Pure w.r.t. I/O — used
245
+ * by the mount re-scan to re-seed the live map after compaction/attach. */
186
246
  declare function collectDelegationToolParts(messages: readonly {
187
247
  id?: string;
188
248
  parts?: unknown[];
@@ -278,14 +338,60 @@ type ChildDelegationLike = {
278
338
  * (the child is actively working), idle → completed, unknown → running
279
339
  * (fail-open: a freshly-seen child is assumed active; the 1s poll + md
280
340
  * correct it as soon as terminal data exists). */
281
- declare function childStatusToState(status: string | undefined): 'running' | 'completed';
282
- /** Row tag for a delegation entry: `[native]` for native task() children
283
- * (source 'children-only' — no board report), `[pantheon:<alias>]` for board
284
- * rows ([pantheon:apo-1]) — the same tags the manager prints in
285
- * pantheon_delegation_list, so panel rows and CLI list lines match. The
286
- * panel renders the tag with a distinct style so native task() children are
287
- * visually separable from pantheon_delegate jobs. */
341
+ declare function childStatusToState(status: string | undefined): 'running' | 'completed' | 'retry';
342
+ /** Short row prefix for a delegation entry (one of the two visual channels
343
+ * that split native task() work from pantheon_delegate jobs — the other is
344
+ * {@link delegationIcon}):
345
+ *
346
+ * - `nat:<agent>` — a native task() child (source 'children-only', no board
347
+ * report). The child session carries no board alias, so the agent IS the
348
+ * identity.
349
+ * - `pan:<alias>` — a pantheon_delegate board row (`pan:apo-1`), the same
350
+ * alias the manager prints in pantheon_delegation_list.
351
+ *
352
+ * Short prefixes keep the narrow sidebar readable (the old
353
+ * `pan:apo-1`/`nat:` tags ate the row width). */
288
354
  declare function delegationTag(entry: DelegationEntry): string;
355
+ /** Row glyph: hollow diamond `◇` for native task() children (info color,
356
+ * outline) vs filled diamond `◆` for pantheon_delegate rows (state color).
357
+ * Shape + color are independent channels, so the split stays legible even
358
+ * without color. */
359
+ declare function delegationIcon(entry: DelegationEntry): string;
360
+ /** Row identity after the status marker + glyph. Pantheon rows append the
361
+ * agent (`pan:apo-1 apollo`); native rows already carry it inside the tag
362
+ * (`nat:apollo`) and must not duplicate it. */
363
+ declare function formatDelegationIdentity(entry: DelegationEntry): string;
364
+ /** Max description width on the row detail line — the old 180-char slice
365
+ * wrapped the sidebar; 44 keeps one readable line. */
366
+ declare const DELEGATION_DESCRIPTION_MAX = 44;
367
+ /** Truncate a description to `max` graphemes appending `…` when cut. Exact
368
+ * `max`-length text is left untouched. Grapheme-granular, so an emoji made of
369
+ * several code points is never split into mojibake at the boundary. Pure. */
370
+ declare function truncateDelegationDescription(text: string, max?: number): string;
371
+ /** Fixed elapsed-time box: right-aligned to `width` (default 8) so elapsed
372
+ * values line up across rows, e.g. ` 12s`. A label that already fills
373
+ * the box is returned untouched. Pure. */
374
+ declare const DELEGATION_ELAPSED_WIDTH = 8;
375
+ declare function formatDelegationElapsed(entry: DelegationEntry, now: number, width?: number): string;
376
+ /** First row line: `<marker><glyph> <identity>`. The marker already carries
377
+ * its trailing space. Pure — the row renders the returned string verbatim. */
378
+ declare function formatDelegationRow(entry: DelegationEntry, marker: string): string;
379
+ /** Header summary: `(N active · M done · nat:K pan:M)`. Active counts
380
+ * running/retry AND display-only stale-running (a stale row is still a live
381
+ * job — it must never read as done). Pure. */
382
+ declare function formatDelegationHeader(entries: readonly DelegationEntry[]): string;
383
+ /** Split a display list into native task() rows vs pantheon_delegate rows.
384
+ * Native = source 'children-only' (no board report); everything else counts
385
+ * as pantheon. Pure — powers the header breakdown + the hooks.log line. */
386
+ declare function countDelegationSources(entries: readonly DelegationEntry[]): {
387
+ native: number;
388
+ pantheon: number;
389
+ total: number;
390
+ };
391
+ /** Diagnostic hooks.log line for a panel re-fetch, with the children
392
+ * breakdown (pantheon = children WITH a board report, native = children
393
+ * WITHOUT one). Pure — the View logs the returned string verbatim. */
394
+ declare function formatPanelLogLine(children: number, pantheon: number, native: number, md: number, events: number): string;
289
395
  /** Turn child sessions (PRIMARY) enriched with md reports into the display
290
396
  * list. One entry per child id (duplicates across re-fetches collapse).
291
397
  * The md report is matched by `Task ID` (== child.id) and supplies alias,
@@ -294,10 +400,14 @@ declare function delegationTag(entry: DelegationEntry): string;
294
400
  * itself (fallback 'agent'), state derived from its status, startedAt from
295
401
  * time.created. A report-less child is a NATIVE task() child (every
296
402
  * child of the current session — pantheon_delegate OR the native `task()`
297
- * tool — carries parentID = caller), so it gets source 'children-only'
298
- * and the `[native]` tag instead of a board alias.
403
+ * tool — carries parentID = caller), so it gets source 'children-only',
404
+ * the internal alias 'native-task' and the `nat:` tag instead of a
405
+ * board alias. The 'task nativa' description fallback keeps the row
406
+ * non-empty when the child carries no title.
299
407
  * Terminal md state wins over the derived state; a running md defers to
300
- * the child's live status. Sorted running-first (compareDelegationEntries).
408
+ * the child's live status. A running child is NEVER archived — it always
409
+ * lands in the active split (splitDelegationList active = running/retry).
410
+ * Sorted running-first (compareDelegationEntries).
301
411
  * Pure — no I/O. */
302
412
  declare function childrenToDelegationEntries(children: readonly ChildDelegationLike[] | undefined, md: readonly DelegationEntry[], now?: number): DelegationEntry[];
303
413
  /** Navigate the TUI to a child session (click/Enter on a delegation row).
@@ -324,5 +434,5 @@ declare const plugin: TuiPluginModule & {
324
434
  setup: () => Promise<void>;
325
435
  };
326
436
  //#endregion
327
- export { ChildDelegationLike, DelegationActivity, DelegationEntry, DelegationToolPart, IDLE_SILENCE_MS, LiveDelegationEntry, LiveDelegationStore, ParsedDelegationToolPart, STALE_RUNNING_THRESHOLD_MS, TuiSessionSources, buildChildrenPath, childStatusToState, childrenToDelegationEntries, collectDelegationToolParts, compareDelegationEntries, plugin as default, delegationActivity, delegationActivityLabel, delegationElapsed, delegationSpinnerFrame, delegationTag, fmtElapsed, isValidSessionId, markStaleIfRunning, mergeChildDelegationSources, mergeDelegationSources, navigateToDelegationSession, panelLogDir, parseDelegationMarkdown, parseDelegationToolPart, readAllDelegationEntries, readDelegationEntries, reduceDelegationToolPart, removeDelegationEntry, resolveCurrentSessionID, resolveDelegationsDir, safeSessionPath, seedLiveDelegationMap, toDelegationEntry, tuiLogPath, visibleDelegationList };
437
+ export { ChildDelegationLike, DELEGATION_DESCRIPTION_MAX, DELEGATION_ELAPSED_WIDTH, DELEGATION_STATE_GLYPHS, DelegationActivity, DelegationDisplayState, DelegationEntry, DelegationStateTone, DelegationToolPart, IDLE_SILENCE_MS, LiveDelegationEntry, LiveDelegationStore, ParsedDelegationToolPart, STALE_RUNNING_THRESHOLD_MS, ToolActivity, TuiSessionSources, buildChildrenPath, childStatusToState, childrenToDelegationEntries, collectDelegationToolParts, compareDelegationEntries, countDelegationSources, plugin as default, delegationActivity, delegationActivityLabel, delegationElapsed, delegationIcon, delegationSpinnerFrame, delegationStateGlyph, delegationStateMarker, delegationStateTone, delegationTag, extractToolActivity, fmtElapsed, formatDelegationElapsed, formatDelegationHeader, formatDelegationIdentity, formatDelegationRow, formatPanelLogLine, isValidSessionId, latestToolActivityFor, markStaleIfRunning, mergeChildDelegationSources, mergeDelegationSources, navigateToDelegationSession, panelLogDir, parseDelegationMarkdown, parseDelegationToolPart, readAllDelegationEntries, readDelegationEntries, reduceDelegationToolPart, removeDelegationEntry, resolveCurrentSessionID, resolveDelegationsDir, safeSessionPath, seedLiveDelegationMap, splitDelegationList, toDelegationEntry, trackToolActivity, truncateDelegationDescription, tuiLogPath, visibleDelegationList };
328
438
  //# sourceMappingURL=tui.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tui.d.ts","names":[],"sources":["../src/index.tsx"],"mappings":";;KAo7BY;;EAEV;;EAEA;;;;EAIA;;EAEA;EACA;;EASA;;EAEA;EACA;EACA;;EAEA;;;;EAIA;;;;;;;;;;;iBAsBc,wBACd,aACA,oBACA,qBACC;;;;;;iBAkHmB,sBAAsB,cAAc,QAAQ;;;;;;;;iBAwC5C,yBAAyB,eAAe,QAAQ;;;;;;;;iBAWtD,sBACd;EAAS;EAAoB;eAC7B;;;;;;iBAYc,YAAY;;;iBAMZ,WAAW;;;;iBAOX,yBAAyB,GAAG,iBAAiB,GAAG;;;;;iBAWhD,sBACd,cAAc,mBACd,sBACA,cACA,4BACC;;cASU;;;;cAKA;;;;;;;;;iBAUG,mBACd,OAAO,iBACP,aACA,uBACC;;;iBAWa,WAAW;;;iBAcX,kBAAkB,OAAO,iBAAiB;;;KAQ9C;iBAQI,mBAAmB,OAAO,kBAAkB;iBAc5C,wBAAwB,OAAO;;iBAoB/B,uBAAuB;;;;;;;iBAWvB,4BACd,mBAAmB,mBACnB,eAAe,wBACd;;KAmFS;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;;;;;iBAac,wBACd,MAAM,oBACN,eACC;;;iBA+Ea,yBACd,KAAK,YAAY,sBACjB,MAAM,oBACN;;;iBA+Fc,sBACd,KAAK,YAAY,sBACjB;;;;;;iBAiBc,2BACd;EAAqB;EAAa;iBAClC,YAAY,uDACX;;;;;iBA2Ba,sBACd,KAAK,YAAY,sBACjB,gBAAgB,sBAChB;;;iBAWc,kBAAkB,MAAM,sBAAsB;;;;;;iBAqB9C,uBACd,eAAe,uBACf,aAAa,oBACZ;;;;;;;;;iBA8Da,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;;;;;;;iBAWnB,cAAc,OAAO;;;;;;;;;;;;;;iBAiBrB,4BACd,mBAAmB,mCACnB,aAAa,mBACb,eACC;;;;;;iBA0Ca,4BACd;EAAS,YAAY,cAAc,SAAS;eAC5C;;;;;KAiLU;EACV,KAAK,YAAY;;EAEjB;;EAEA;;cAucI,QAAQ;EAAoB;EAAY,aAAa"}
1
+ {"version":3,"file":"tui.d.ts","names":[],"sources":["../src/index.tsx"],"mappings":"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"}