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

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 (82) hide show
  1. package/.pantheon/code-mode/manifest.json +21 -0
  2. package/CHANGELOG.md +1026 -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 -14
  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/doctor.mjs +178 -9
  12. package/scripts/install/cli-ui.mjs +17 -11
  13. package/scripts/install/config-migration.mjs +4 -6
  14. package/scripts/install/opencode.mjs +137 -35
  15. package/scripts/install/plugin.mjs +3 -33
  16. package/scripts/install/shared.mjs +43 -2
  17. package/scripts/install/strings.mjs +129 -0
  18. package/scripts/install-mcp.mjs +1 -0
  19. package/scripts/manifest-inventory.mjs +410 -0
  20. package/scripts/mcp_persistence_server.py +537 -128
  21. package/scripts/package-evidence.mjs +242 -0
  22. package/scripts/probe-context-rehydrate.mjs +240 -0
  23. package/scripts/probe-pantheon-cost.mjs +313 -0
  24. package/scripts/release-beta-version.mjs +56 -60
  25. package/scripts/sync-artifacts.mjs +169 -0
  26. package/scripts/sync-tui.mjs +121 -53
  27. package/scripts/test-opencode-v1-v2-sandbox.sh +367 -96
  28. package/scripts/validation-policy.mjs +7 -7
  29. package/scripts/version-check.mjs +113 -108
  30. package/scripts/versioning.mjs +230 -86
  31. package/src/agents/mnemosyne.md +1 -1
  32. package/src/agents/zeus.md +2 -2
  33. package/src/mcp/code_mode_server.py +431 -55
  34. package/src/mcp/mcp_persistence_server.py +537 -128
  35. package/src/pantheon/auto-wake.ts +1 -5
  36. package/src/pantheon/background-job-board.ts +43 -1
  37. package/src/pantheon/compaction-handoff.ts +304 -0
  38. package/src/pantheon/cost-command.ts +345 -62
  39. package/src/pantheon/delegate-manager.ts +390 -8
  40. package/src/pantheon/delegation-finalize.ts +32 -0
  41. package/src/pantheon/delegation.ts +235 -18
  42. package/src/pantheon/file-persistence-salvage.ts +64 -0
  43. package/src/pantheon/file-persistence.ts +194 -45
  44. package/src/pantheon/native-probe.ts +234 -0
  45. package/src/pantheon/native-task-status.ts +139 -0
  46. package/src/pantheon/provider-capabilities.ts +221 -0
  47. package/src/pantheon/provider-stream-tracker.ts +182 -0
  48. package/src/pantheon/shared-board.ts +37 -0
  49. package/src/pantheon/task-result-guard.ts +107 -0
  50. package/src/pantheon/token-opt.ts +146 -12
  51. package/src/pantheon/tool-ceiling.ts +159 -0
  52. package/src/pantheon/v2-events.ts +18 -1
  53. package/src/plugin-v2.ts +2 -14
  54. package/src/plugin.ts +28 -17
  55. package/src/plugins/pantheon-hooks.ts +51 -0
  56. package/src/plugins/tui/dist/server.d.ts +1 -1
  57. package/src/plugins/tui/dist/server.d.ts.map +1 -1
  58. package/src/plugins/tui/dist/server.js +1 -1
  59. package/src/plugins/tui/dist/server.js.map +1 -1
  60. package/src/plugins/tui/dist/tui.d.ts +116 -27
  61. package/src/plugins/tui/dist/tui.d.ts.map +1 -1
  62. package/src/plugins/tui/dist/tui.js +414 -150
  63. package/src/plugins/tui/dist/tui.js.map +1 -1
  64. package/src/plugins/tui/dist/tui.tsx +447 -84
  65. package/src/plugins/tui/package-lock.json +2 -2
  66. package/src/plugins/tui/package.json +1 -1
  67. package/src/plugins/tui/src/index.tsx +447 -84
  68. package/.pantheon/code-mode/.gitkeep +0 -0
  69. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/checkpoint-1.json +0 -8
  70. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/checkpoint-10.json +0 -8
  71. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/checkpoint-11.json +0 -8
  72. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/checkpoint-2.json +0 -8
  73. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/checkpoint-3.json +0 -8
  74. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/checkpoint-4.json +0 -8
  75. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/checkpoint-5.json +0 -8
  76. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/checkpoint-6.json +0 -8
  77. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/checkpoint-7.json +0 -8
  78. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/checkpoint-8.json +0 -8
  79. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/checkpoint-9.json +0 -8
  80. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/heartbeat.json +0 -8
  81. package/.pantheon/code-mode/.pantheon/deepwork/initial-token-40k/session.json +0 -11
  82. 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,42 @@ 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
+ type ToolActivity = {
120
+ tool: string;
121
+ summary: string;
122
+ at: number;
123
+ };
124
+ /** Reduce one message.part.updated tool part to displayable activity.
125
+ * Returns null for non-tool parts, completed/error parts (no live activity)
126
+ * or parts without a session id. Pure. */
127
+ declare function extractToolActivity(part: {
128
+ type?: string;
129
+ tool?: string;
130
+ sessionID?: string;
131
+ state?: {
132
+ status?: string;
133
+ input?: Record<string, unknown>;
134
+ };
135
+ }, now?: number): {
136
+ sessionID: string;
137
+ activity: ToolActivity;
138
+ } | null;
139
+ /** Record an activity sample (bounded map, oldest dropped). */
140
+ declare function trackToolActivity(map: Map<string, ToolActivity>, sessionID: string, activity: ToolActivity): void;
141
+ /** Latest live activity for a child session, or null when absent/stale. */
142
+ declare function latestToolActivityFor(map: Map<string, ToolActivity>, sessionID: string | undefined, now?: number, ttlMs?: number): ToolActivity | null;
109
143
  /** Merge the immediate tool-event channel into the child-session channel.
110
144
  *
111
145
  * Children remain the durable source, while live entries make a delegation
@@ -139,7 +173,7 @@ type LiveDelegationEntry = {
139
173
  partID: string;
140
174
  /** Parent session the delegation was launched from. */
141
175
  sessionID: string;
142
- tool: 'pantheon_delegate' | 'pantheon_delegation_read';
176
+ tool: 'pantheon_delegate' | 'pantheon_delegation_read' | 'task';
143
177
  /** Agent name (from the delegate input args). */
144
178
  agent: string;
145
179
  description: string;
@@ -158,7 +192,7 @@ type ParsedDelegationToolPart = {
158
192
  callID: string;
159
193
  partID: string;
160
194
  sessionID: string;
161
- tool: 'pantheon_delegate' | 'pantheon_delegation_read';
195
+ tool: 'pantheon_delegate' | 'pantheon_delegation_read' | 'task';
162
196
  /** null for read parts (no agent arg — the id targets an existing job). */
163
197
  agent: string | null;
164
198
  description: string;
@@ -170,7 +204,9 @@ type ParsedDelegationToolPart = {
170
204
  };
171
205
  /** Extract the tool name + args from a `message.part.updated` part and
172
206
  * 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). */
207
+ * not a pantheon delegation tool part, the native `task` subagent tool
208
+ * (same parentID === caller mechanism — its children render `nat:`),
209
+ * or is missing its callID. */
174
210
  declare function parseDelegationToolPart(part: DelegationToolPart, now?: number): ParsedDelegationToolPart | null;
175
211
  /** Apply one tool part to the live map. Returns true when the map changed.
176
212
  * Pure w.r.t. I/O — only mutates `map`. */
@@ -178,11 +214,14 @@ declare function reduceDelegationToolPart(map: Map<string, LiveDelegationEntry>,
178
214
  /** Remove a live entry by part id (message.part.removed) or call id.
179
215
  * Returns true when something was removed. */
180
216
  declare function removeDelegationEntry(map: Map<string, LiveDelegationEntry>, partIDOrCallID: string): boolean;
181
- /** Collect pantheon delegation tool parts from a session's messages.
217
+ /** Collect pantheon delegation + native task tool parts from a session's messages.
182
218
  * Messages may carry their parts inline (duck-typed `msg.parts`); when
183
219
  * 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. */
220
+ * SDK exposes `api.state.part(messageID)`). The native `task` tool spawns a
221
+ * child session with parentID = caller — the same mechanism as
222
+ * pantheon_delegate — so its parts feed the live-map as the native signal
223
+ * (rows render `nat:` via the children channel). Pure w.r.t. I/O — used
224
+ * by the mount re-scan to re-seed the live map after compaction/attach. */
186
225
  declare function collectDelegationToolParts(messages: readonly {
187
226
  id?: string;
188
227
  parts?: unknown[];
@@ -278,14 +317,60 @@ type ChildDelegationLike = {
278
317
  * (the child is actively working), idle → completed, unknown → running
279
318
  * (fail-open: a freshly-seen child is assumed active; the 1s poll + md
280
319
  * 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. */
320
+ declare function childStatusToState(status: string | undefined): 'running' | 'completed' | 'retry';
321
+ /** Short row prefix for a delegation entry (one of the two visual channels
322
+ * that split native task() work from pantheon_delegate jobs — the other is
323
+ * {@link delegationIcon}):
324
+ *
325
+ * - `nat:<agent>` — a native task() child (source 'children-only', no board
326
+ * report). The child session carries no board alias, so the agent IS the
327
+ * identity.
328
+ * - `pan:<alias>` — a pantheon_delegate board row (`pan:apo-1`), the same
329
+ * alias the manager prints in pantheon_delegation_list.
330
+ *
331
+ * Short prefixes keep the narrow sidebar readable (the old
332
+ * `pan:apo-1`/`nat:` tags ate the row width). */
288
333
  declare function delegationTag(entry: DelegationEntry): string;
334
+ /** Row glyph: hollow diamond `◇` for native task() children (info color,
335
+ * outline) vs filled diamond `◆` for pantheon_delegate rows (state color).
336
+ * Shape + color are independent channels, so the split stays legible even
337
+ * without color. */
338
+ declare function delegationIcon(entry: DelegationEntry): string;
339
+ /** Row identity after the status marker + glyph. Pantheon rows append the
340
+ * agent (`pan:apo-1 apollo`); native rows already carry it inside the tag
341
+ * (`nat:apollo`) and must not duplicate it. */
342
+ declare function formatDelegationIdentity(entry: DelegationEntry): string;
343
+ /** Max description width on the row detail line — the old 180-char slice
344
+ * wrapped the sidebar; 44 keeps one readable line. */
345
+ declare const DELEGATION_DESCRIPTION_MAX = 44;
346
+ /** Truncate a description to `max` graphemes appending `…` when cut. Exact
347
+ * `max`-length text is left untouched. Grapheme-granular, so an emoji made of
348
+ * several code points is never split into mojibake at the boundary. Pure. */
349
+ declare function truncateDelegationDescription(text: string, max?: number): string;
350
+ /** Fixed elapsed-time box: right-aligned to `width` (default 8) so elapsed
351
+ * values line up across rows, e.g. ` 12s`. A label that already fills
352
+ * the box is returned untouched. Pure. */
353
+ declare const DELEGATION_ELAPSED_WIDTH = 8;
354
+ declare function formatDelegationElapsed(entry: DelegationEntry, now: number, width?: number): string;
355
+ /** First row line: `<marker><glyph> <identity>`. The marker already carries
356
+ * its trailing space. Pure — the row renders the returned string verbatim. */
357
+ declare function formatDelegationRow(entry: DelegationEntry, marker: string): string;
358
+ /** Header summary: `(N active · M done · nat:K pan:M)`. Active counts
359
+ * running/retry AND display-only stale-running (a stale row is still a live
360
+ * job — it must never read as done). Pure. */
361
+ declare function formatDelegationHeader(entries: readonly DelegationEntry[]): string;
362
+ /** Split a display list into native task() rows vs pantheon_delegate rows.
363
+ * Native = source 'children-only' (no board report); everything else counts
364
+ * as pantheon. Pure — powers the header breakdown + the hooks.log line. */
365
+ declare function countDelegationSources(entries: readonly DelegationEntry[]): {
366
+ native: number;
367
+ pantheon: number;
368
+ total: number;
369
+ };
370
+ /** Diagnostic hooks.log line for a panel re-fetch, with the children
371
+ * breakdown (pantheon = children WITH a board report, native = children
372
+ * WITHOUT one). Pure — the View logs the returned string verbatim. */
373
+ declare function formatPanelLogLine(children: number, pantheon: number, native: number, md: number, events: number): string;
289
374
  /** Turn child sessions (PRIMARY) enriched with md reports into the display
290
375
  * list. One entry per child id (duplicates across re-fetches collapse).
291
376
  * The md report is matched by `Task ID` (== child.id) and supplies alias,
@@ -294,10 +379,14 @@ declare function delegationTag(entry: DelegationEntry): string;
294
379
  * itself (fallback 'agent'), state derived from its status, startedAt from
295
380
  * time.created. A report-less child is a NATIVE task() child (every
296
381
  * 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.
382
+ * tool — carries parentID = caller), so it gets source 'children-only',
383
+ * the internal alias 'native-task' and the `nat:` tag instead of a
384
+ * board alias. The 'task nativa' description fallback keeps the row
385
+ * non-empty when the child carries no title.
299
386
  * Terminal md state wins over the derived state; a running md defers to
300
- * the child's live status. Sorted running-first (compareDelegationEntries).
387
+ * the child's live status. A running child is NEVER archived — it always
388
+ * lands in the active split (splitDelegationList active = running/retry).
389
+ * Sorted running-first (compareDelegationEntries).
301
390
  * Pure — no I/O. */
302
391
  declare function childrenToDelegationEntries(children: readonly ChildDelegationLike[] | undefined, md: readonly DelegationEntry[], now?: number): DelegationEntry[];
303
392
  /** Navigate the TUI to a child session (click/Enter on a delegation row).
@@ -324,5 +413,5 @@ declare const plugin: TuiPluginModule & {
324
413
  setup: () => Promise<void>;
325
414
  };
326
415
  //#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 };
416
+ export { ChildDelegationLike, DELEGATION_DESCRIPTION_MAX, DELEGATION_ELAPSED_WIDTH, DelegationActivity, DelegationEntry, 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, 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
417
  //# 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":";;KAu7BY;;EAEV;;EAEA;;;;EAIA;;EAEA;EACA;;EAUA;;EAEA;EACA;EACA;;EAEA;;;;EAQA;;;;;;;;;;;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;;;;;iBAahD,oBACd,cAAc,mBACd,oBACA,cACA;EACG,QAAQ;EAAmB,QAAQ;EAAmB,UAAU;;;;;iBAqBrD,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;KAY3B;EACV;EACA;EACA;;;;;iBA0Bc,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;;KAqFS;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;;;;;;;;;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;;;;;;;;;;;;;iBAkBnB,cAAc,OAAO;;;;;iBAQrB,eAAe,OAAO;;;;iBAOtB,yBAAyB,OAAO;;;cAQnC;;;;iBAoBG,8BACd,cACA;;;;cAUW;iBAEG,wBACd,OAAO,iBACP,aACA;;;iBASc,oBAAoB,OAAO,iBAAiB;;;;iBAY5C,uBAAuB,kBAAkB;;;;iBAazC,uBAAuB,kBAAkB;EACvD;EACA;EACA;;;;;iBAUc,mBACd,kBACA,kBACA,gBACA,YACA;;;;;;;;;;;;;;;;;;iBAsBc,4BACd,mBAAmB,mCACnB,aAAa,mBACb,eACC;;;;;;iBA4Ca,4BACd;EAAS,YAAY,cAAc,SAAS;eAC5C;;;;;KA4MU;EACV,KAAK,YAAY;;EAEjB;;EAEA;;cAsgBI,QAAQ;EAAoB;EAAY,aAAa"}