@agi-fans/dsh-tui 0.14.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/CHANGELOG.md +48 -1
- package/lib/chrome/goal-bar.d.ts +13 -0
- package/lib/chrome/goal-bar.js +45 -0
- package/lib/chrome/goal-bar.js.map +1 -0
- package/lib/chrome/grapheme.d.ts +15 -0
- package/lib/chrome/grapheme.js +49 -0
- package/lib/chrome/grapheme.js.map +1 -0
- package/lib/chrome/markdown.js +96 -28
- package/lib/chrome/markdown.js.map +1 -1
- package/lib/chrome/renderer.d.ts +5 -61
- package/lib/chrome/renderer.js +17 -181
- package/lib/chrome/renderer.js.map +1 -1
- package/lib/chrome/status-config.d.ts +9 -4
- package/lib/chrome/status-config.js +13 -4
- package/lib/chrome/status-config.js.map +1 -1
- package/lib/chrome/status-line.d.ts +2 -0
- package/lib/chrome/status-line.js +4 -1
- package/lib/chrome/status-line.js.map +1 -1
- package/lib/chrome/tool-renderers.js +48 -2
- package/lib/chrome/tool-renderers.js.map +1 -1
- package/lib/commands/diff.d.ts +32 -0
- package/lib/commands/diff.js +116 -0
- package/lib/commands/diff.js.map +1 -0
- package/lib/commands/jobs.d.ts +14 -0
- package/lib/commands/jobs.js +82 -0
- package/lib/commands/jobs.js.map +1 -0
- package/lib/commands/model.d.ts +25 -0
- package/lib/commands/model.js +168 -4
- package/lib/commands/model.js.map +1 -1
- package/lib/commands/permission.d.ts +10 -1
- package/lib/commands/permission.js +23 -14
- package/lib/commands/permission.js.map +1 -1
- package/lib/commands/session.js +72 -1
- package/lib/commands/session.js.map +1 -1
- package/lib/definition.d.ts +25 -3
- package/lib/definition.js.map +1 -1
- package/lib/input/editor.d.ts +2 -0
- package/lib/input/editor.js +19 -9
- package/lib/input/editor.js.map +1 -1
- package/lib/input/keybindings-config.d.ts +1 -1
- package/lib/input/keybindings-config.js +9 -0
- package/lib/input/keybindings-config.js.map +1 -1
- package/lib/runtime/agent-profile.d.ts +11 -0
- package/lib/runtime/agent-profile.js +20 -1
- package/lib/runtime/agent-profile.js.map +1 -1
- package/lib/runtime/provider-local.d.ts +9 -1
- package/lib/runtime/provider-local.js +317 -89
- package/lib/runtime/provider-local.js.map +1 -1
- package/lib/runtime/runner.js +33 -8
- package/lib/runtime/runner.js.map +1 -1
- package/lib/runtime/tool-presentation.js +13 -2
- package/lib/runtime/tool-presentation.js.map +1 -1
- package/lib/session/job-notice.d.ts +28 -0
- package/lib/session/job-notice.js +34 -0
- package/lib/session/job-notice.js.map +1 -0
- package/lib/session/live-attempt-tracker.d.ts +43 -0
- package/lib/session/live-attempt-tracker.js +58 -0
- package/lib/session/live-attempt-tracker.js.map +1 -0
- package/lib/session/project-context.d.ts +2 -0
- package/lib/session/project-context.js +22 -11
- package/lib/session/project-context.js.map +1 -1
- package/lib/session/session-configuration.js +1 -1
- package/lib/session/session-configuration.js.map +1 -1
- package/lib/session/session-controller.d.ts +10 -4
- package/lib/session/session-controller.js +289 -64
- package/lib/session/session-controller.js.map +1 -1
- package/lib/session/subagent-roster.d.ts +37 -0
- package/lib/session/subagent-roster.js +79 -14
- package/lib/session/subagent-roster.js.map +1 -1
- package/lib/session/tui-settings.js +1 -0
- package/lib/session/tui-settings.js.map +1 -1
- package/lib/views/event-views.d.ts +43 -1
- package/lib/views/event-views.js +191 -64
- package/lib/views/event-views.js.map +1 -1
- package/lib/views/hotkeys.js +11 -4
- package/lib/views/hotkeys.js.map +1 -1
- package/lib/views/settings-list.js +1 -0
- package/lib/views/settings-list.js.map +1 -1
- package/lib/views/stream-time.d.ts +14 -0
- package/lib/views/stream-time.js +32 -0
- package/lib/views/stream-time.js.map +1 -0
- package/lib/views/streaming-reveal.js +14 -5
- package/lib/views/streaming-reveal.js.map +1 -1
- package/lib/views/trajectory.d.ts +47 -1
- package/lib/views/trajectory.js +393 -58
- package/lib/views/trajectory.js.map +1 -1
- package/lib/views/transcript-search.d.ts +42 -0
- package/lib/views/transcript-search.js +84 -0
- package/lib/views/transcript-search.js.map +1 -0
- package/package.json +41 -30
package/lib/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,52 @@ The format is based on [Keep a Changelog], and this project adheres to [Semantic
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.15.0] - 2026-09-10
|
|
10
|
+
|
|
11
|
+
### Changed
|
|
12
|
+
|
|
13
|
+
- The session goal bar now renders below the `Deep Driving` activity row instead of above it, so the rows docked below the transcript share one order, and its phase label no longer carries the `◈` icon.
|
|
14
|
+
- Updated the DeepSeek Harness runtime cohort from `0.1.5-alpha.2` to the published `0.1.5-rc.1` release. This corridor changes no plugin contract: the only host-facing difference is that `dsh-llm-deepseek` now pre-registers `deepseek-flash` (DeepSeek-V41-Flash, text and image input, in-history system prompt updates) in its default catalog, so `/model` lists one more route. New sessions now start on `deepseek-flash`, matching the upstream base bundle; `deepseek-v4-flash`, `deepseek-v4-pro`, and `deepseek-v4-flash-vision-exp` remain available, and `OMDSH_MODEL` still overrides the default. The adapter registers the route without probing gateway availability, so a gateway that has not enabled the model id answers `INVALID_REQUEST`.
|
|
15
|
+
- Updated the DeepSeek Harness runtime cohort from `0.1.3-alpha.2` to the published `0.1.5-alpha.2` release (no `0.1.4` line was ever published). `/trajectory` reads the renamed `tool/ptc-dispatch` and `tool/ptc-dispatch-start` events instead of `tool/code-dispatch`, agents are now created through a `setup(agentCtx, agent)` callback instead of reading the agent off the Cordis context, and resumed older sessions migrate through the new v2→v3 edge, which promotes each system head into a `system/message` event — a resumed log therefore gains two events before its `session/end-seed` boundary and persists as `session.v3.jsonl`.
|
|
16
|
+
- Updated the DeepSeek Harness runtime cohort to the published `0.1.3-alpha.2` release (the `0.1.3-alpha.1` tag was never published to npm). Custom persona overrides must move `config.text` to `config.prefix` (optional `config.suffix`, `complete` and `includeRuntimeContext` unchanged). Live assistant streaming no longer publishes `assistant/chunk` session events: the TUI now subscribes to the agent-scoped `agent/assistant-stream` frames for incremental presentation, and durable settlements arrive as `assistant/message` (now embedding the exact timed stream) or the new `assistant/attempt`. `/trajectory` and session stats derive first-token times from the embedded stream.
|
|
17
|
+
- Session persistence moved to the handle-based seam: recent-session and subagent transcript reads use `open(id, 'read')` through the new `readColdSessionLog` helper. Existing sessions are migrated read-through to the session-format v2 log (`session.v2.jsonl`, predecessor files retained unchanged). Command submission attachments now declare `type` (`image`), and file/content blocks render as `[file name · N bytes]`.
|
|
18
|
+
- `/clear` is now presentation-only: it empties the visible transcript while the running turn, status, todos, and queued follow-ups keep their state, so a later Ctrl-C still interrupts the active work instead of looking like an idle clear of the input. Git workspace metadata (branch and dirty counters in the status footer) now refreshes at each turn end with a short TTL instead of freezing at startup.
|
|
19
|
+
- A human approval (or other modal prompt) now displaces an open overlay such as `/trajectory` or the Agent Hub and restores it when settled, so a confirmation can never be accepted behind a stale screen. Large session switching and tool-card replay are faster: tool presentation indexes call IDs in one pass, the recent-session list reuses unchanged rows and coalesces concurrent refreshes, and settled row sanitization plus live reveal segmentation are cached.
|
|
20
|
+
- A tool result larger than 200 KB now spills to a private file instead of entering context whole: the model and the transcript both see a bounded preview plus the file path, and expanding that card shows the same preview rather than the full text. The original stays in the spill file for `read` or `grep`.
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
|
|
24
|
+
- Installing `@agi-fans/oh-my-dsh` with npm no longer resolves a mixed Harness cohort. The previous release pinned `0.1.5-alpha.2` directly while downstream packages declared `^0.1.5-alpha.2` peer ranges, and prerelease ranges accept a later prerelease in the same version tuple, so a fresh install mixed alpha.2 and rc.1 copies of eight shared packages and the packed application failed to boot with `prompt section "deployment:persona-prefix" is already registered`. Every dependency now pins `0.1.5-rc.1`, which installs as a single cohort.
|
|
25
|
+
- Input is now Unicode-safe end to end: the editor moves and deletes by grapheme boundaries (an emoji can no longer be split into a lone surrogate, and vertical motion snaps out of a surrogate pair), and terminal bytes are decoded across stream chunks so a multi-byte character split between data events is no longer corrupted.
|
|
26
|
+
- Pipe mode no longer drops submitted lines when two lines arrive in one stream chunk; buffered lines drain before EOF.
|
|
27
|
+
- File writes and edits now honor the session's Access preset: `write`, `edit`, and `str_replace_editor` previously ignored Read only and Workspace write and could modify any path the process could reach. A mutation outside the workspace now returns the shared sandbox denial, and the model may retry it once at a wider mode after approval.
|
|
28
|
+
- The composer's Access badge now reports the sandbox mode actually in force, so an approved widening is visible instead of showing only the standing preset.
|
|
29
|
+
- Tool cards no longer repeat the raw argument JSON in their Input section when the tool already supplied a semantic title, removing redundant lines from `read` and similar cards.
|
|
30
|
+
- Terminal rendering no longer dies on pathologically nested markdown. Deeply nested blockquotes, deeply indented lists, and long `*`/`_` runs used to overflow the call stack inside the markdown lexer and take the whole process down with `RangeError: Maximum call stack size exceeded`. Nesting is now clamped before lexing, and rendering stops descending past a fixed depth, so such content still shows its text.
|
|
31
|
+
|
|
32
|
+
### Added
|
|
33
|
+
|
|
34
|
+
- `/trajectory` search gained match navigation: matching scans the full ledger, so collapsed turns and hidden subtools still count, and `n`/`N` (result state) or `Ctrl+N`/`Ctrl+P` (while editing) step across matches; `Enter` locates a hidden match and expands its collapsed turn or subtool call. Matching rows show a `×N` badge, the snippet follows the focused occurrence, and the toolbar reports `(3/10)` plus `End: follow · +N new` while detached. The query editor is grapheme-safe and `/` inside it is a literal character (path queries like `src/foo` type correctly).
|
|
35
|
+
- `/model <query>` resolves a provider/model or fuzzy model name against the installed catalog: exact matches switch immediately and print `Default model: …`, ambiguous matches open the picker, and the three closest entries are shown on no match. `/model --session <query>` switches the active session without writing the saved default (fresh starts still use the saved default) and reports `Session model: …`; the flag cannot combine with a subcommand.
|
|
36
|
+
- Oversized tool results are trimmed to an 8192-character budget (4096 head, 1024 tail) before conversation compaction runs; the full original stays in the session log.
|
|
37
|
+
- Repeated identical tool calls now draw an advisory reminder at 3, 5, and 8 consecutive repeats, and tools that declare a limit now receive a cooperative per-call deadline that reports `tool call timed out after <ms>ms`.
|
|
38
|
+
- An active session goal now renders as a bar above the composer with its phase, objective, and admitted-round counter, and clears itself when the goal completes. `/jobs` lists the session's background jobs with status and elapsed time, `/jobs kill <id>` stops one, and a finished background job posts one completion notice.
|
|
39
|
+
- The model can now fetch public web pages with `web_fetch`. Web search stays disabled because DeepSeek's native search spends a whole model turn per query.
|
|
40
|
+
- Delegation gained `subagent_fork`, which seeds a child with the parent's completed turns so the inherited prefix stays eligible for cache reuse. `/tools` now lists both `subagent` and `subagent_fork`.
|
|
41
|
+
- The model can now orchestrate many subagents at once: `workflow_run` takes a JavaScript script that fans work out across delegated children with phases and structured results, and `ralph` iterates fresh agents toward one objective until a worker reports completion or a blocker. Both come from the Harness base composition and were previously unreachable. The orchestration script runs on a worker thread rather than the host event loop, so a large fan-out does not stall the interface. `workflow_run` is named apart from the existing `/workflow` slash command, which still switches the Default/Plan workflow.
|
|
42
|
+
- Delegation also gained `subagent_isolated`, which runs a child in its own process rather than on the TUI's event loop. Both currently mounted backends run the child on that loop, so several concurrent audits can pin a core and stall rendering, scrolling, and the `Deep Driving` animation; the isolated backend keeps that work off the TUI thread. It trades features for isolation: an isolated child cannot be steered or followed up after dispatch (use `subagent` for that), cannot inherit the parent's conversation (use `subagent_fork`), accepts no model, persona, or tool filter, and carries no parent-enforced recursion cap. `subagent` and `subagent_fork` are unchanged. The child boots its own Harness profile from an isolated home, so it needs a `dsh` on `PATH` that can serve the `acp` profile; `OMDSH_ACP_COMMAND` and `OMDSH_ACP_ARGS` override the launcher.
|
|
43
|
+
- Automatic context compaction now shows the same live `Compacting` activity as `/compact` and records what the model's view lost when it finishes: `Context compacted · 3 events · 12.4K tokens condensed`, or `Context trimmed · 2 results` when the model-free prune pass was enough. A failed compaction reports the error instead of staying silent.
|
|
44
|
+
- omdsh can now drive local language servers: add `lsp.json` beside `mcp.json` (user `$DSH_HOME/lsp.json` and project `.dsh/lsp.json`, project wins) and the agent gains a read-only `lsp` tool for definitions, references, implementations, and hover. No server is configured by default, and no `lsp` tool appears until one is.
|
|
45
|
+
- omdsh now runs on Windows. Every session gets exactly one confined shell — `pwsh` on Windows, `bash` elsewhere — and the Minimal preset's persistent shell follows the same rule, so the agent never carries a shell tool whose interpreter is missing. CI gained a `windows-latest` job covering install, typecheck, build, and a boot smoke.
|
|
46
|
+
- `/sessions <query>` searches durable session content through the mounted full-text index (SQLite FTS5, opened lazily on the first search so startup still avoids `node:sqlite`) and resumes the chosen hit; a bare `/sessions` keeps the Session Library.
|
|
47
|
+
- The active session title is written to the terminal window/tab title and can be shown on the status line's first row through the new `Session` item, off by default and configurable in `/settings`.
|
|
48
|
+
- The model can now keep persistent terminal sessions: `terminal_open`, `terminal_send`, `terminal_read`, `terminal_signal`, `terminal_close`, and `terminal_list` retain cwd, environment, and interactive children across calls. The one-shot `bash`/`pwsh` tools remain the default for bounded commands.
|
|
49
|
+
- Application keybindings now cover transcript scrolling, tool expansion, history search, and transcript search through `keybindings.json` (`scroll-page-up`, `scroll-page-down`, `scroll-fast-up`, `scroll-fast-down`, `toggle-tools`, `search-history`, `search-transcript`); defaults are unchanged.
|
|
50
|
+
- `Ctrl+F` on an empty composer searches the current transcript: matching rows paint inverse, `n`/`N` or `Ctrl+N`/`Ctrl+P` step across matches, and `Enter` confirms the query. A non-empty draft keeps the editor's own `Ctrl+F`.
|
|
51
|
+
- `/diff` summarizes the workspace changes as a per-file table with added and removed line counts and lists untracked files; `/diff <path>` prints one file's patch. It only reads git state and never stages or commits.
|
|
52
|
+
- The model can declare finished deliverables with `present`, which records the workspace files it produced so they stay findable after the turn. The card lists their source paths and descriptions instead of the raw call arguments, and `/trajectory` records each declaration as a `DELIVERABLE` row. Files are referenced where they already live, never copied or preserved.
|
|
53
|
+
- Resuming a session now restores the subagents it dispatched. The parent's durable `subagent/catalog` directory puts each direct child back on the roster as a completed run, so the Agent Hub still lists it and its transcript stays openable from disk; previously a resumed parent showed no subagents at all, because its children are neither loaded nor replayed. `/trajectory` records each catalogued child as a `SUBAGENT` row.
|
|
54
|
+
|
|
9
55
|
## [0.14.0] - 2026-09-04
|
|
10
56
|
|
|
11
57
|
### Changed
|
|
@@ -305,7 +351,8 @@ The format is based on [Keep a Changelog], and this project adheres to [Semantic
|
|
|
305
351
|
- Preserved terminal-cell alignment and right padding for long commands, CJK text, emoji, ANSI styling, and narrow viewports.
|
|
306
352
|
- Stabilized incremental rendering, transcript scrolling, cursor placement, tool-output folding, and queued input during active turns.
|
|
307
353
|
|
|
308
|
-
[Unreleased]: https://github.com/agi-fans/oh-my-dsh/compare/v0.
|
|
354
|
+
[Unreleased]: https://github.com/agi-fans/oh-my-dsh/compare/v0.15.0...HEAD
|
|
355
|
+
[0.15.0]: https://github.com/agi-fans/oh-my-dsh/compare/v0.14.0...v0.15.0
|
|
309
356
|
[0.14.0]: https://github.com/agi-fans/oh-my-dsh/compare/v0.13.0...v0.14.0
|
|
310
357
|
[0.13.0]: https://github.com/agi-fans/oh-my-dsh/compare/v0.12.0...v0.13.0
|
|
311
358
|
[0.12.0]: https://github.com/agi-fans/oh-my-dsh/compare/v0.11.0...v0.12.0
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Durable-goal bar docked above the composer. One unframed row: a phase label,
|
|
3
|
+
* the objective (truncated to the terminal width), and the admitted-round
|
|
4
|
+
* counter right-aligned at the terminal edge whenever any round has started.
|
|
5
|
+
* The counter carries `/maxGoalRounds` only when the goal has a cap. A
|
|
6
|
+
* completed goal never reaches this renderer — the projection reports it as
|
|
7
|
+
* absent.
|
|
8
|
+
* @module @agi-fans/dsh-tui/goal-bar
|
|
9
|
+
*/
|
|
10
|
+
import type { TuiGoalStatus } from '../definition.ts';
|
|
11
|
+
import type { Theme } from './theme.ts';
|
|
12
|
+
/** Render the goal bar, or nothing when there is no row to show. */
|
|
13
|
+
export declare function renderGoalBar(goal: TuiGoalStatus, theme: Theme, width: number): string[];
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Durable-goal bar docked above the composer. One unframed row: a phase label,
|
|
3
|
+
* the objective (truncated to the terminal width), and the admitted-round
|
|
4
|
+
* counter right-aligned at the terminal edge whenever any round has started.
|
|
5
|
+
* The counter carries `/maxGoalRounds` only when the goal has a cap. A
|
|
6
|
+
* completed goal never reaches this renderer — the projection reports it as
|
|
7
|
+
* absent.
|
|
8
|
+
* @module @agi-fans/dsh-tui/goal-bar
|
|
9
|
+
*/
|
|
10
|
+
import { truncateToWidth, visibleWidth } from "./width.js";
|
|
11
|
+
const PHASE_LABEL = {
|
|
12
|
+
active: 'Goal',
|
|
13
|
+
paused: 'Goal paused',
|
|
14
|
+
blocked: 'Goal blocked',
|
|
15
|
+
};
|
|
16
|
+
const PHASE_TONE = {
|
|
17
|
+
active: 'accent',
|
|
18
|
+
paused: 'warning',
|
|
19
|
+
blocked: 'error',
|
|
20
|
+
};
|
|
21
|
+
/** Render the goal bar, or nothing when there is no row to show. */
|
|
22
|
+
export function renderGoalBar(goal, theme, width) {
|
|
23
|
+
if (width <= 0)
|
|
24
|
+
return [];
|
|
25
|
+
const label = theme.bold(theme.fg(PHASE_TONE[goal.phase], PHASE_LABEL[goal.phase]));
|
|
26
|
+
const objective = theme.fg('text', goal.objective);
|
|
27
|
+
const reason = goal.blockedReason === undefined
|
|
28
|
+
? ''
|
|
29
|
+
: theme.fg('dim', ' — ') + theme.fg('warning', goal.blockedReason);
|
|
30
|
+
const left = ' ' + label + theme.fg('dim', ' · ') + objective + reason;
|
|
31
|
+
const rounds = goal.roundsStarted === 0
|
|
32
|
+
? ''
|
|
33
|
+
: theme.fg('dim', `round ${goal.roundsStarted}${goal.maxGoalRounds > 0 ? `/${goal.maxGoalRounds}` : ''}`);
|
|
34
|
+
if (rounds === '')
|
|
35
|
+
return [truncateToWidth(left, width)];
|
|
36
|
+
const roundsWidth = visibleWidth(rounds);
|
|
37
|
+
const leftWidth = visibleWidth(left);
|
|
38
|
+
if (leftWidth + roundsWidth + 2 <= width) {
|
|
39
|
+
return [left + ' '.repeat(width - leftWidth - roundsWidth) + rounds];
|
|
40
|
+
}
|
|
41
|
+
if (roundsWidth + 4 >= width)
|
|
42
|
+
return [truncateToWidth(left, width)];
|
|
43
|
+
return [truncateToWidth(left, width - roundsWidth - 2) + ' ' + rounds];
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=goal-bar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"goal-bar.js","sourceRoot":"","sources":["../../src/chrome/goal-bar.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAE1D,MAAM,WAAW,GAA2C;IAC1D,MAAM,EAAE,MAAM;IACd,MAAM,EAAE,aAAa;IACrB,OAAO,EAAE,cAAc;CACxB,CAAA;AAED,MAAM,UAAU,GAA+C;IAC7D,MAAM,EAAE,QAAQ;IAChB,MAAM,EAAE,SAAS;IACjB,OAAO,EAAE,OAAO;CACjB,CAAA;AAED,oEAAoE;AACpE,MAAM,UAAU,aAAa,CAAC,IAAmB,EAAE,KAAY,EAAE,KAAa;IAC5E,IAAI,KAAK,IAAI,CAAC;QAAE,OAAO,EAAE,CAAA;IACzB,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;IACnF,MAAM,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;IAClD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,KAAK,SAAS;QAC7C,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;IACpE,MAAM,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,SAAS,GAAG,MAAM,CAAA;IACvE,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,KAAK,CAAC;QACrC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA;IAC3G,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;IACxD,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAA;IACxC,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;IACpC,IAAI,SAAS,GAAG,WAAW,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;QACzC,OAAO,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,SAAS,GAAG,WAAW,CAAC,GAAG,MAAM,CAAC,CAAA;IACtE,CAAC;IACD,IAAI,WAAW,GAAG,CAAC,IAAI,KAAK;QAAE,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;IACnE,OAAO,CAAC,eAAe,CAAC,IAAI,EAAE,KAAK,GAAG,WAAW,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,MAAM,CAAC,CAAA;AACzE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grapheme-boundary geometry shared by the input editor and the query editor.
|
|
3
|
+
*
|
|
4
|
+
* Movement and deletion operate on Unicode grapheme clusters rather than
|
|
5
|
+
* UTF-16 code units, so an emoji or combining sequence can never be split
|
|
6
|
+
* into a lone surrogate or a broken segment. Offsets remain UTF-16 indices
|
|
7
|
+
* into the original string (the internal buffer representation).
|
|
8
|
+
* @module @agi-fans/dsh-tui
|
|
9
|
+
*/
|
|
10
|
+
/** Index of the grapheme boundary before `cursor` (UTF-16 index). */
|
|
11
|
+
export declare function moveGraphemeLeft(text: string, cursor: number): number;
|
|
12
|
+
/** Index of the grapheme boundary after `cursor` (UTF-16 index). */
|
|
13
|
+
export declare function moveGraphemeRight(text: string, cursor: number): number;
|
|
14
|
+
/** Snap a UTF-16 offset forward to the grapheme boundary it belongs to. */
|
|
15
|
+
export declare function snapToGraphemeBoundary(text: string, cursor: number): number;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Grapheme-boundary geometry shared by the input editor and the query editor.
|
|
3
|
+
*
|
|
4
|
+
* Movement and deletion operate on Unicode grapheme clusters rather than
|
|
5
|
+
* UTF-16 code units, so an emoji or combining sequence can never be split
|
|
6
|
+
* into a lone surrogate or a broken segment. Offsets remain UTF-16 indices
|
|
7
|
+
* into the original string (the internal buffer representation).
|
|
8
|
+
* @module @agi-fans/dsh-tui
|
|
9
|
+
*/
|
|
10
|
+
let graphemeSegmenter;
|
|
11
|
+
function graphemes(text) {
|
|
12
|
+
graphemeSegmenter ??= new Intl.Segmenter(undefined, { granularity: 'grapheme' });
|
|
13
|
+
return graphemeSegmenter.segment(text);
|
|
14
|
+
}
|
|
15
|
+
/** Index of the grapheme boundary before `cursor` (UTF-16 index). */
|
|
16
|
+
export function moveGraphemeLeft(text, cursor) {
|
|
17
|
+
if (cursor <= 0)
|
|
18
|
+
return cursor;
|
|
19
|
+
let prev = cursor;
|
|
20
|
+
for (const part of graphemes(text)) {
|
|
21
|
+
if (part.index >= cursor)
|
|
22
|
+
return prev;
|
|
23
|
+
prev = part.index;
|
|
24
|
+
}
|
|
25
|
+
return prev;
|
|
26
|
+
}
|
|
27
|
+
/** Index of the grapheme boundary after `cursor` (UTF-16 index). */
|
|
28
|
+
export function moveGraphemeRight(text, cursor) {
|
|
29
|
+
if (cursor >= text.length)
|
|
30
|
+
return cursor;
|
|
31
|
+
for (const part of graphemes(text)) {
|
|
32
|
+
if (part.index < cursor && cursor < part.index + part.segment.length) {
|
|
33
|
+
return part.index + part.segment.length;
|
|
34
|
+
}
|
|
35
|
+
if (part.index >= cursor)
|
|
36
|
+
return part.index + part.segment.length;
|
|
37
|
+
}
|
|
38
|
+
return text.length;
|
|
39
|
+
}
|
|
40
|
+
/** Snap a UTF-16 offset forward to the grapheme boundary it belongs to. */
|
|
41
|
+
export function snapToGraphemeBoundary(text, cursor) {
|
|
42
|
+
for (const part of graphemes(text)) {
|
|
43
|
+
if (part.index < cursor && cursor < part.index + part.segment.length) {
|
|
44
|
+
return part.index + part.segment.length;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return cursor;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=grapheme.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"grapheme.js","sourceRoot":"","sources":["../../src/chrome/grapheme.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,IAAI,iBAA6C,CAAA;AAEjD,SAAS,SAAS,CAAC,IAAY;IAC7B,iBAAiB,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAA;IAChF,OAAO,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;AACxC,CAAC;AAED,qEAAqE;AACrE,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,MAAc;IAC3D,IAAI,MAAM,IAAI,CAAC;QAAE,OAAO,MAAM,CAAA;IAC9B,IAAI,IAAI,GAAG,MAAM,CAAA;IACjB,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM;YAAE,OAAO,IAAI,CAAA;QACrC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,iBAAiB,CAAC,IAAY,EAAE,MAAc;IAC5D,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM;QAAE,OAAO,MAAM,CAAA;IACxC,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACrE,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;QACzC,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,IAAI,MAAM;YAAE,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;IACnE,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAA;AACpB,CAAC;AAED,2EAA2E;AAC3E,MAAM,UAAU,sBAAsB,CAAC,IAAY,EAAE,MAAc;IACjE,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,IAAI,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,MAAM,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACrE,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;QACzC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/lib/chrome/markdown.js
CHANGED
|
@@ -118,7 +118,49 @@ function normalizeHtml(source) {
|
|
|
118
118
|
.replaceAll('"', '"').replaceAll(''', "'").replaceAll(' ', ' ');
|
|
119
119
|
}
|
|
120
120
|
function prepare(source) {
|
|
121
|
-
return normalizeHtml(source).replaceAll('\r\n', '\n').replaceAll('\r', '\n');
|
|
121
|
+
return clampNesting(normalizeHtml(source).replaceAll('\r\n', '\n').replaceAll('\r', '\n'));
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Cap the nesting one markdown source may express before the lexer runs.
|
|
125
|
+
* `marked` recurses once per nested blockquote or list level and once per
|
|
126
|
+
* emphasis run, so `'> '.repeat(5000)`, a deeply indented list, or a long `***`
|
|
127
|
+
* run overflows the call stack **inside the parser** — before any rendering
|
|
128
|
+
* guard can help, and on some inputs as an uncatchable process crash rather
|
|
129
|
+
* than a catchable `RangeError`. Clamping the shape here keeps the model's
|
|
130
|
+
* intent while bounding the parser's recursion. Fenced code keeps its bytes.
|
|
131
|
+
*/
|
|
132
|
+
const MAX_MARKDOWN_NESTING = 24;
|
|
133
|
+
const MAX_EMPHASIS_RUN = 3;
|
|
134
|
+
function clampNesting(source) {
|
|
135
|
+
let fence;
|
|
136
|
+
return source.split('\n').map((line) => {
|
|
137
|
+
const fenceMatch = /^\s*(`{3,}|~{3,})/u.exec(line);
|
|
138
|
+
if (fence !== undefined) {
|
|
139
|
+
if (fenceMatch?.[1] !== undefined
|
|
140
|
+
&& fenceMatch[1].startsWith(fence[0] ?? '')
|
|
141
|
+
&& fenceMatch[1].length >= fence.length)
|
|
142
|
+
fence = undefined;
|
|
143
|
+
return line;
|
|
144
|
+
}
|
|
145
|
+
if (fenceMatch?.[1] !== undefined) {
|
|
146
|
+
fence = fenceMatch[1];
|
|
147
|
+
return line;
|
|
148
|
+
}
|
|
149
|
+
let out = line;
|
|
150
|
+
const quote = /^(\s*)((?:>\s?)+)(.*)$/u.exec(out);
|
|
151
|
+
if (quote !== null) {
|
|
152
|
+
const count = ((quote[2] ?? '').match(/>/gu) ?? []).length;
|
|
153
|
+
if (count > MAX_MARKDOWN_NESTING) {
|
|
154
|
+
out = (quote[1] ?? '') + '> '.repeat(MAX_MARKDOWN_NESTING) + (quote[3] ?? '');
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
const indent = /^( +)(\S.*)$/u.exec(out);
|
|
158
|
+
const spaces = indent?.[1]?.length ?? 0;
|
|
159
|
+
if (indent !== null && spaces > MAX_MARKDOWN_NESTING * 2) {
|
|
160
|
+
out = ' '.repeat(MAX_MARKDOWN_NESTING * 2) + (indent[2] ?? '');
|
|
161
|
+
}
|
|
162
|
+
return out.replace(/([*_])\1{2,}/gu, (_match, mark) => mark.repeat(MAX_EMPHASIS_RUN));
|
|
163
|
+
}).join('\n');
|
|
122
164
|
}
|
|
123
165
|
function isProseCodespan(text) {
|
|
124
166
|
const words = text.trim().split(/\s+/u).filter(Boolean);
|
|
@@ -181,9 +223,29 @@ function paintLink(label, href, theme, style) {
|
|
|
181
223
|
function flattenText(text) {
|
|
182
224
|
return text.replace(/\n+/gu, ' ');
|
|
183
225
|
}
|
|
184
|
-
|
|
226
|
+
/**
|
|
227
|
+
* Maximum block and inline nesting a single render descends into. Markdown in
|
|
228
|
+
* model output can nest arbitrarily (`> > > …`, `***…`, indented lists), and an
|
|
229
|
+
* unbounded walk blows the JS call stack — which crashes the process rather
|
|
230
|
+
* than raising a catchable error. Past this depth the renderer degrades to the
|
|
231
|
+
* node's plain text instead of recursing further.
|
|
232
|
+
*/
|
|
233
|
+
const MAX_MARKDOWN_DEPTH = 24;
|
|
234
|
+
/** Plain text of one token tree, used when nesting exceeds the depth cap. */
|
|
235
|
+
function tokenText(token) {
|
|
236
|
+
if ('text' in token && typeof token.text === 'string')
|
|
237
|
+
return token.text;
|
|
238
|
+
if ('tokens' in token && Array.isArray(token.tokens)) {
|
|
239
|
+
return token.tokens.map(tokenText).join('');
|
|
240
|
+
}
|
|
241
|
+
return '';
|
|
242
|
+
}
|
|
243
|
+
function renderInlineTokens(tokens, theme, style, depth = 0) {
|
|
185
244
|
if (tokens === undefined)
|
|
186
245
|
return '';
|
|
246
|
+
if (depth > MAX_MARKDOWN_DEPTH) {
|
|
247
|
+
return paintBase(theme, flattenText(tokens.map(tokenText).join('')), style);
|
|
248
|
+
}
|
|
187
249
|
let out = '';
|
|
188
250
|
for (const token of tokens) {
|
|
189
251
|
if (isMathToken(token)) {
|
|
@@ -197,32 +259,32 @@ function renderInlineTokens(tokens, theme, style) {
|
|
|
197
259
|
case 'text':
|
|
198
260
|
out += token.tokens === undefined
|
|
199
261
|
? paintBase(theme, flattenText(token.text), style)
|
|
200
|
-
: renderInlineTokens(token.tokens, theme, style);
|
|
262
|
+
: renderInlineTokens(token.tokens, theme, style, depth + 1);
|
|
201
263
|
break;
|
|
202
264
|
case 'strong':
|
|
203
|
-
out += paintBold(theme, renderInlineTokens(token.tokens, theme, style), style);
|
|
265
|
+
out += paintBold(theme, renderInlineTokens(token.tokens, theme, style, depth + 1), style);
|
|
204
266
|
break;
|
|
205
267
|
case 'em':
|
|
206
|
-
out += paintItalic(theme, renderInlineTokens(token.tokens, theme, style), style);
|
|
268
|
+
out += paintItalic(theme, renderInlineTokens(token.tokens, theme, style, depth + 1), style);
|
|
207
269
|
break;
|
|
208
270
|
case 'del':
|
|
209
|
-
out += paintStrike(theme, renderInlineTokens(token.tokens, theme, style), style);
|
|
271
|
+
out += paintStrike(theme, renderInlineTokens(token.tokens, theme, style, depth + 1), style);
|
|
210
272
|
break;
|
|
211
273
|
case 'codespan':
|
|
212
274
|
out += paintFg(theme, ink(style, isProseCodespan(token.text) ? 'muted' : 'mdCode'), token.text, style);
|
|
213
275
|
break;
|
|
214
276
|
case 'link':
|
|
215
|
-
out += paintLink(renderInlineTokens(token.tokens, theme, style) || token.text, token.href, theme, style) + openBase(theme, style);
|
|
277
|
+
out += paintLink(renderInlineTokens(token.tokens, theme, style, depth + 1) || token.text, token.href, theme, style) + openBase(theme, style);
|
|
216
278
|
break;
|
|
217
279
|
case 'image':
|
|
218
|
-
out += paintLink(renderInlineTokens(token.tokens, theme, style) || token.text || 'image', token.href, theme, style) + openBase(theme, style);
|
|
280
|
+
out += paintLink(renderInlineTokens(token.tokens, theme, style, depth + 1) || token.text || 'image', token.href, theme, style) + openBase(theme, style);
|
|
219
281
|
break;
|
|
220
282
|
case 'br':
|
|
221
283
|
out += '\n';
|
|
222
284
|
break;
|
|
223
285
|
default:
|
|
224
286
|
if ('tokens' in token && token.tokens !== undefined)
|
|
225
|
-
out += renderInlineTokens(token.tokens, theme, style);
|
|
287
|
+
out += renderInlineTokens(token.tokens, theme, style, depth + 1);
|
|
226
288
|
else if ('text' in token && typeof token.text === 'string')
|
|
227
289
|
out += paintBase(theme, flattenText(token.text), style);
|
|
228
290
|
}
|
|
@@ -231,7 +293,7 @@ function renderInlineTokens(tokens, theme, style) {
|
|
|
231
293
|
}
|
|
232
294
|
/** Inline markdown: code, links, strike, bold, italic, math. */
|
|
233
295
|
export function renderInline(text, theme, style) {
|
|
234
|
-
return renderInlineTokens(Lexer.lexInline(prepare(text), parser.defaults), theme, style);
|
|
296
|
+
return renderInlineTokens(Lexer.lexInline(prepare(text), parser.defaults), theme, style, 0);
|
|
235
297
|
}
|
|
236
298
|
function withStyle(theme, style, line) {
|
|
237
299
|
if (style === undefined || line === '')
|
|
@@ -243,14 +305,14 @@ function withStyledLines(theme, style, lines) {
|
|
|
243
305
|
return [...lines];
|
|
244
306
|
return lines.map(line => withStyle(theme, style, line));
|
|
245
307
|
}
|
|
246
|
-
function flowLines(token, theme, width, style) {
|
|
308
|
+
function flowLines(token, theme, width, style, depth = 0) {
|
|
247
309
|
if (token.type === 'paragraph' || token.type === 'text' || token.type === 'heading') {
|
|
248
310
|
const inner = token.tokens === undefined
|
|
249
311
|
? paintBase(theme, flattenText('text' in token ? String(token.text ?? '') : ''), style)
|
|
250
|
-
: renderInlineTokens(token.tokens, theme, style);
|
|
312
|
+
: renderInlineTokens(token.tokens, theme, style, depth);
|
|
251
313
|
return wrapStyled(inner, width);
|
|
252
314
|
}
|
|
253
|
-
return renderBlock(token, theme, width, 0, style);
|
|
315
|
+
return renderBlock(token, theme, width, 0, style, depth);
|
|
254
316
|
}
|
|
255
317
|
function renderTable(token, theme, width) {
|
|
256
318
|
const header = token.header.map(cell => theme.bold(renderInlineTokens(cell.tokens, theme)));
|
|
@@ -367,7 +429,7 @@ function renderCode(token, theme, width, style) {
|
|
|
367
429
|
lines.push(...wrapStyled(theme.fg(fence, ' ```'), width));
|
|
368
430
|
return lines;
|
|
369
431
|
}
|
|
370
|
-
function renderList(token, theme, width, level, style) {
|
|
432
|
+
function renderList(token, theme, width, level, style, depth = 0) {
|
|
371
433
|
const lines = [];
|
|
372
434
|
let number = typeof token.start === 'number' && token.start > 0 ? token.start : 1;
|
|
373
435
|
for (const item of token.items) {
|
|
@@ -378,11 +440,11 @@ function renderList(token, theme, width, level, style) {
|
|
|
378
440
|
? theme.fg(bullet, `${number}. `)
|
|
379
441
|
: theme.fg(bullet, '• ');
|
|
380
442
|
number += 1;
|
|
381
|
-
lines.push(...renderListItem(item, marker, theme, width, level, style));
|
|
443
|
+
lines.push(...renderListItem(item, marker, theme, width, level, style, depth));
|
|
382
444
|
}
|
|
383
445
|
return lines;
|
|
384
446
|
}
|
|
385
|
-
function renderListItem(item, marker, theme, width, level, style) {
|
|
447
|
+
function renderListItem(item, marker, theme, width, level, style, depth = 0) {
|
|
386
448
|
const pad = ' '.repeat(level);
|
|
387
449
|
const markerWidth = visibleWidth(pad + marker);
|
|
388
450
|
const hang = ' '.repeat(markerWidth);
|
|
@@ -396,11 +458,11 @@ function renderListItem(item, marker, theme, width, level, style) {
|
|
|
396
458
|
continue;
|
|
397
459
|
}
|
|
398
460
|
if (child.type === 'list') {
|
|
399
|
-
lines.push(...renderList(child, theme, width, level + 1, style));
|
|
461
|
+
lines.push(...renderList(child, theme, width, level + 1, style, depth + 1));
|
|
400
462
|
first = false;
|
|
401
463
|
continue;
|
|
402
464
|
}
|
|
403
|
-
const content = withStyledLines(theme, style, flowLines(child, theme, innerWidth, style));
|
|
465
|
+
const content = withStyledLines(theme, style, flowLines(child, theme, innerWidth, style, depth + 1));
|
|
404
466
|
if (first) {
|
|
405
467
|
lines.push(pad + marker + (content[0] ?? ''));
|
|
406
468
|
for (const line of content.slice(1))
|
|
@@ -416,11 +478,11 @@ function renderListItem(item, marker, theme, width, level, style) {
|
|
|
416
478
|
lines.push(pad + marker.trimEnd());
|
|
417
479
|
return lines;
|
|
418
480
|
}
|
|
419
|
-
function renderBlockquote(token, theme, width, style) {
|
|
420
|
-
const inner = renderTokens(token.tokens, theme, Math.max(1, width - 2), 0, style);
|
|
481
|
+
function renderBlockquote(token, theme, width, style, depth = 0) {
|
|
482
|
+
const inner = renderTokens(token.tokens, theme, Math.max(1, width - 2), 0, style, depth);
|
|
421
483
|
return inner.map(line => theme.fg('borderMuted', '│ ') + line);
|
|
422
484
|
}
|
|
423
|
-
function renderBlock(token, theme, width, listLevel, style) {
|
|
485
|
+
function renderBlock(token, theme, width, listLevel, style, depth = 0) {
|
|
424
486
|
if (isMathToken(token)) {
|
|
425
487
|
return wrapStyled(' ' + renderMath(token.text, theme, style), width);
|
|
426
488
|
}
|
|
@@ -430,14 +492,14 @@ function renderBlock(token, theme, width, listLevel, style) {
|
|
|
430
492
|
case 'hr':
|
|
431
493
|
return [theme.fg('borderMuted', '─'.repeat(Math.max(1, width)))];
|
|
432
494
|
case 'heading':
|
|
433
|
-
return wrapStyled(theme.bold(theme.fg(style?.color === 'thinkingText' ? 'thinkingText' : 'mdHeading', renderInlineTokens(token.tokens, theme, style))), width);
|
|
495
|
+
return wrapStyled(theme.bold(theme.fg(style?.color === 'thinkingText' ? 'thinkingText' : 'mdHeading', renderInlineTokens(token.tokens, theme, style, depth + 1))), width);
|
|
434
496
|
case 'paragraph':
|
|
435
497
|
case 'text':
|
|
436
|
-
return flowLines(token, theme, width, style);
|
|
498
|
+
return flowLines(token, theme, width, style, depth + 1);
|
|
437
499
|
case 'blockquote':
|
|
438
|
-
return renderBlockquote(token, theme, width, style);
|
|
500
|
+
return renderBlockquote(token, theme, width, style, depth + 1);
|
|
439
501
|
case 'list':
|
|
440
|
-
return renderList(token, theme, width, listLevel, style);
|
|
502
|
+
return renderList(token, theme, width, listLevel, style, depth + 1);
|
|
441
503
|
case 'code':
|
|
442
504
|
return renderCode(token, theme, width, style);
|
|
443
505
|
case 'table':
|
|
@@ -451,17 +513,23 @@ function renderBlock(token, theme, width, listLevel, style) {
|
|
|
451
513
|
return [];
|
|
452
514
|
default:
|
|
453
515
|
if ('tokens' in token && token.tokens !== undefined)
|
|
454
|
-
return renderTokens(token.tokens, theme, width, listLevel, style);
|
|
516
|
+
return renderTokens(token.tokens, theme, width, listLevel, style, depth + 1);
|
|
455
517
|
if ('text' in token && typeof token.text === 'string') {
|
|
456
518
|
return wrapStyled(paintBase(theme, flattenText(token.text), style), width);
|
|
457
519
|
}
|
|
458
520
|
return [];
|
|
459
521
|
}
|
|
460
522
|
}
|
|
461
|
-
function renderTokens(tokens, theme, width, listLevel, style) {
|
|
523
|
+
function renderTokens(tokens, theme, width, listLevel, style, depth = 0) {
|
|
462
524
|
const lines = [];
|
|
463
525
|
for (const token of tokens) {
|
|
464
|
-
|
|
526
|
+
if (depth > MAX_MARKDOWN_DEPTH) {
|
|
527
|
+
const text = flattenText(tokenText(token));
|
|
528
|
+
if (text !== '')
|
|
529
|
+
lines.push(...wrapStyled(paintBase(theme, text, style), width));
|
|
530
|
+
continue;
|
|
531
|
+
}
|
|
532
|
+
const chunk = renderBlock(token, theme, width, listLevel, style, depth);
|
|
465
533
|
if (chunk.length === 0)
|
|
466
534
|
continue;
|
|
467
535
|
lines.push(...withStyledLines(theme, style, chunk));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/chrome/markdown.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,EAA+D,MAAM,QAAQ,CAAA;AACnG,OAAO,EAAE,GAAG,EAAE,MAAM,EAAc,MAAM,YAAY,CAAA;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AACxD,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAsB,MAAM,eAAe,CAAA;AAC1H,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAI/D,MAAM,YAAY,GAAqC;IACrD,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG;IAC/E,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG;IAClF,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG;CAC1E,CAAA;AACD,MAAM,WAAW,GAAqC;IACpD,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;CACvH,CAAA;AASD,SAAS,WAAW,CAAC,KAAY;IAC/B,OAAO,KAAK,CAAC,IAAI,KAAK,MAAM,CAAA;AAC9B,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAY,EAAE,IAAY;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;IAC5B,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;QAChI,OAAO,CAAC,CAAC,CAAA;IACX,CAAC;IACD,KAAK,IAAI,KAAK,GAAG,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;QAC3D,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,CAAA;QACxB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,KAAK,IAAI,CAAC,CAAA;YACV,SAAQ;QACV,CAAC;QACD,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC,CAAA;QAC5B,IAAI,IAAI,KAAK,GAAG;YAAE,SAAQ;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QAC5B,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI;YAAE,OAAO,CAAC,CAAC,CAAA;QAC5C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,CAAA;QAC5B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG;YAAE,SAAQ;QAC9D,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACnE,CAAC;IACD,OAAO,CAAC,CAAC,CAAA;AACX,CAAC;AAED,SAAS,cAAc,CAAC,GAAW;IACjC,IAAI,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAC3B,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAChC,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC;QAAE,IAAI,GAAG,KAAK,CAAA;IAC/D,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAClC,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,OAAO,GAAG,IAAI,CAAC;QAAE,IAAI,GAAG,OAAO,CAAA;IACrE,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;AACvC,CAAC;AAED,MAAM,SAAS,GAAkC;IAC/C,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,OAAO;IACd,KAAK,CAAC,GAAG;QACP,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC/B,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAA;IACzC,CAAC;IACD,SAAS,CAAC,GAAG;QACX,MAAM,KAAK,GAAG,iDAAiD,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACzE,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE;YAAE,OAAO,SAAS,CAAA;QACtE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IACtF,CAAC;CACF,CAAA;AAED,MAAM,UAAU,GAAkC;IAChD,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,QAAQ;IACf,KAAK,CAAC,GAAG;QACP,OAAO,cAAc,CAAC,GAAG,CAAC,CAAA;IAC5B,CAAC;IACD,SAAS,CAAC,GAAG;QACX,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YAChC,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAClD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;YACpG,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;YACjC,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAClD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAA;YACrF,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1B,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;YACjC,IAAI,GAAG,KAAK,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;gBAClD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;YACpG,CAAC;YACD,OAAO,SAAS,CAAA;QAClB,CAAC;QACD,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,SAAS,CAAA;QAC1C,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,OAAO,SAAS,CAAA;QACtD,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;QACrC,IAAI,GAAG,KAAK,CAAC,CAAC;YAAE,OAAO,SAAS,CAAA;QAChC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAA;IAC9E,CAAC;CACF,CAAA;AAED,MAAM,MAAM,GAAG,IAAI,MAAM,EAAE,CAAA;AAC3B,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC,CAAA;AAE7E,SAAS,aAAa,CAAC,MAAc;IACnC,OAAO,MAAM;SACV,OAAO,CAAC,eAAe,EAAE,MAAM,CAAC;SAChC,OAAO,CAAC,+BAA+B,EAAE,MAAM,CAAC;SAChD,OAAO,CAAC,qBAAqB,EAAE,IAAI,CAAC;SACpC,OAAO,CAAC,kIAAkI,EAAE,EAAE,CAAC;SAC/I,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC;SACxE,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;AACjF,CAAC;AAED,SAAS,OAAO,CAAC,MAAc;IAC7B,OAAO,aAAa,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;AAC9E,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IACvD,OAAO,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;AACtE,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,KAAY,EAAE,KAAqB;IACpE,MAAM,UAAU,GAAG,KAAK;SACrB,OAAO,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,IAAY,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;SAChF,OAAO,CAAC,sBAAsB,EAAE,CAAC,MAAM,EAAE,IAAY,EAAE,EAAE,CACxD,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC3D,OAAO,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAA;IACpC,OAAO,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,CAAA;AAChE,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;IACvB,MAAM,OAAO,GAAG,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC;WAClD,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC;WACtC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC3C,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAA;IACjD,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;AAChD,CAAC;AAED,SAAS,aAAa,CAAC,IAAuB,EAAE,KAAY,EAAE,KAAa,EAAE,KAAqB;IAChG,MAAM,MAAM,GAAa,EAAE,CAAA;IAC3B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,EAAE,CAAA;QACtB,IAAI,GAAG,KAAK,EAAE,IAAI,yCAAyC,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,SAAQ;QAC/E,MAAM,QAAQ,GAAG,iCAAiC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC5D,MAAM,IAAI,GAAG,+BAA+B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACtD,MAAM,IAAI,GAAG,QAAQ;YACnB,CAAC,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE;YAC/G,CAAC,CAAC,IAAI;gBACJ,CAAC,CAAC,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE;gBACzE,CAAC,CAAC,GAAG,CAAA;QACT,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,GAAG,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,aAAa,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;IAClG,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,2BAA2B,CAAC,CAAC,CAAA;AAChG,CAAC;AAED,SAAS,UAAU,CAAC,IAAY,EAAE,KAAa;IAC7C,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;AAC3C,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY;IAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;AAC3D,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,IAAY,EAAE,KAAY;IAC1D,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC7B,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,MAAM,KAAK,EAAE;QAAE,OAAO,KAAK,CAAA;IAChD,OAAO,WAAW,MAAM,OAAO,KAAK,cAAc,CAAA;AACpD,CAAC;AAED,SAAS,SAAS,CAAC,KAAa,EAAE,IAAY,EAAE,KAAY,EAAE,KAAqB;IACjF,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;IACjE,MAAM,MAAM,GAAG,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;IACrE,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;IAClD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM;QAAE,OAAO,SAAS,CAAA;IACxD,MAAM,GAAG,GAAG,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,EAAE,GAAG,GAAG,IAAI,GAAG,GAAG,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;IACzF,OAAO,SAAS,GAAG,GAAG,GAAG,GAAG,CAAA;AAC9B,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;AACnC,CAAC;AAED,SAAS,kBAAkB,CAAC,MAAoC,EAAE,KAAY,EAAE,KAAqB;IACnG,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,CAAA;IACnC,IAAI,GAAG,GAAG,EAAE,CAAA;IACZ,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;YACvB,GAAG,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;YAC3C,SAAQ;QACV,CAAC;QACD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,QAAQ;gBACX,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;gBAC1C,MAAK;YACP,KAAK,MAAM;gBACT,GAAG,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;oBAC/B,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC;oBAClD,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;gBAClD,MAAK;YACP,KAAK,QAAQ;gBACX,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;gBAC9E,MAAK;YACP,KAAK,IAAI;gBACP,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;gBAChF,MAAK;YACP,KAAK,KAAK;gBACR,GAAG,IAAI,WAAW,CAAC,KAAK,EAAE,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;gBAChF,MAAK;YACP,KAAK,UAAU;gBACb,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;gBACtG,MAAK;YACP,KAAK,MAAM;gBACT,GAAG,IAAI,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;gBACjI,MAAK;YACP,KAAK,OAAO;gBACV,GAAG,IAAI,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,IAAI,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;gBAC5I,MAAK;YACP,KAAK,IAAI;gBACP,GAAG,IAAI,IAAI,CAAA;gBACX,MAAK;YACP;gBACE,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;oBAAE,GAAG,IAAI,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;qBACrG,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ;oBAAE,GAAG,IAAI,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,CAAA;QACvH,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,KAAY,EAAE,KAAqB;IAC5E,OAAO,kBAAkB,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;AAC1F,CAAC;AAED,SAAS,SAAS,CAAC,KAAY,EAAE,KAAgC,EAAE,IAAY;IAC7E,IAAI,KAAK,KAAK,SAAS,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,IAAI,CAAA;IACnD,OAAO,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,IAAI,CAAA;AACtC,CAAC;AAED,SAAS,eAAe,CAAC,KAAY,EAAE,KAAgC,EAAE,KAAwB;IAC/F,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,CAAC,GAAG,KAAK,CAAC,CAAA;IAC1C,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC,CAAA;AACzD,CAAC;AAED,SAAS,SAAS,CAAC,KAAY,EAAE,KAAY,EAAE,KAAa,EAAE,KAAqB;IACjF,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACpF,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,KAAK,SAAS;YACtC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC;YACvF,CAAC,CAAC,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QAClD,OAAO,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;AACnD,CAAC;AAED,SAAS,WAAW,CAAC,KAAmB,EAAE,KAAY,EAAE,KAAa;IACnE,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;IAC3F,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAA;IAC3F,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAA;IAC1B,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IACzB,MAAM,cAAc,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAA;IACnC,MAAM,SAAS,GAAG,KAAK,GAAG,cAAc,CAAA;IACxC,IAAI,SAAS,GAAG,IAAI,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG;YACV,IAAI,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI;YAC7D,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;SAC/E,CAAA;QACD,OAAO,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;IACtE,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACpD,IAAI,GAAG,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QACvC,KAAK,MAAM,GAAG,IAAI,IAAI;YAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QACvE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACzB,CAAC,CAAC,CAAA;IACF,MAAM,WAAW,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,IAAI,CAAC,GAAG,CACpD,EAAE,EACF,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CACnF,CAAA;IACD,IAAI,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACnD,IAAI,GAAG,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAA;QACtC,KAAK,MAAM,GAAG,IAAI,IAAI;YAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;QACtE,OAAO,GAAG,CAAA;IACZ,CAAC,CAAC,CAAA;IACF,IAAI,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAA;IACtE,IAAI,YAAY,GAAG,SAAS,EAAE,CAAC;QAC7B,MAAM,SAAS,GAAG,SAAS,GAAG,IAAI,CAAA;QAClC,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;QACnF,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC;YAC9C,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,SAAS,CAAC;YAC3D,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACP,IAAI,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAA;QAC9E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,IAAI,CAAC,EAAE,CAAC;YAChE,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;QACtC,CAAC;QACD,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAA;IACpE,CAAC;IAED,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAA;IACvE,IAAI,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACzE,IAAI,YAAY,GAAG,SAAS,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;QACjF,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAA;QACrE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,GAAG,YAAY,CAAC,CAAA;QACnD,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,WAAW,GAAG,CAAC;YAC1D,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,WAAW,CAAC,GAAG,KAAK,CAAC;YACtD,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACP,IAAI,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,KAAK,EAAE,CAAC,CAAC,CAAA;QAC5E,OAAO,QAAQ,GAAG,CAAC,EAAE,CAAC;YACpB,IAAI,IAAI,GAAG,KAAK,CAAA;YAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACjD,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBAAE,SAAQ;gBACnD,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAA;gBAChC,QAAQ,IAAI,CAAC,CAAA;gBACb,IAAI,GAAG,IAAI,CAAA;YACb,CAAC;YACD,IAAI,CAAC,IAAI;gBAAE,MAAK;QAClB,CAAC;IACH,CAAC;IAED,MAAM,CAAC,GAAG,GAAG,CAAC,UAAU,CAAA;IACxB,MAAM,CAAC,GAAG,KAAK,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC/C,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,IAAc,EAAE,GAAW,EAAE,KAAa,EAAU,EAAE,CAChF,KAAK,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,CAAA;IACxE,MAAM,QAAQ,GAAG,CAAC,IAAY,EAAE,GAAW,EAAY,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;IAC1F,MAAM,QAAQ,GAAG,CAAC,KAAiB,EAAE,SAAkB,EAAY,EAAE;QACnE,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;QAC/D,MAAM,GAAG,GAAa,EAAE,CAAA;QACxB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;gBACnC,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,CAAA;gBAC7B,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;gBAC/C,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAA;YAChD,CAAC,CAAC,CAAA;YACF,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,CAAC,CAAA;QACzD,CAAC;QACD,OAAO,GAAG,CAAA;IACZ,CAAC,CAAA;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAC1C,MAAM,KAAK,GAAG;QACZ,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC;QACnD,GAAG,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC;QAC7D,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC;KAClD,CAAA;IACD,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,EAAE,CAAC;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAA;QAChC,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;QACvE,IAAI,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAA;QAC/D,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAA;IACnE,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,UAAU,CAAC,KAAkB,EAAE,KAAY,EAAE,KAAa,EAAE,KAAqB;IACxF,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IACtC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IACnC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAA;IAC7C,MAAM,KAAK,GAAG,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;IACrE,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,SAAS,EAAE,CAAC;QACrC,KAAK,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;IACzD,CAAC;SAAM,CAAC;QACN,MAAM,WAAW,GAAG,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QAChE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACxC,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YACjC,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC,CAAA;QACpE,CAAC;IACH,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;IAC1D,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,UAAU,CAAC,KAAkB,EAAE,KAAY,EAAE,KAAa,EAAE,KAAa,EAAE,KAAqB;IACvG,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,MAAM,GAAG,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACjF,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,MAAM,MAAM,GAAG,KAAK,EAAE,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,cAAc,CAAA;QAChF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,KAAK,IAAI;YAC/B,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,GAAG,CAAC;YACvF,CAAC,CAAC,KAAK,CAAC,OAAO;gBACb,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC;gBACjC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAC5B,MAAM,IAAI,CAAC,CAAA;QACX,KAAK,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;IACzE,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,cAAc,CACrB,IAAqB,EACrB,MAAc,EACd,KAAY,EACZ,KAAa,EACb,KAAa,EACb,KAAqB;IAErB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;IAC9B,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,GAAG,MAAM,CAAC,CAAA;IAC9C,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAA;IACpC,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,WAAW,CAAC,CAAA;IACnD,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,IAAI,KAAK,GAAG,IAAI,CAAA;IAChB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACpC,SAAQ;QACV,CAAC;QACD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC1B,KAAK,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,KAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC,CAAA;YAC/E,KAAK,GAAG,KAAK,CAAA;YACb,SAAQ;QACV,CAAC;QACD,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC,CAAA;QACzF,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;YAC7C,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;YAC5D,KAAK,GAAG,KAAK,CAAA;QACf,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,IAAI,IAAI,OAAO;gBAAE,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;QACrD,CAAC;IACH,CAAC;IACD,IAAI,KAAK;QAAE,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAA;IAC7C,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,gBAAgB,CAAC,KAAwB,EAAE,KAAY,EAAE,KAAa,EAAE,KAAqB;IACpG,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;IACjF,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;AAChE,CAAC;AAED,SAAS,WAAW,CAAC,KAAY,EAAE,KAAY,EAAE,KAAa,EAAE,SAAiB,EAAE,KAAqB;IACtG,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,UAAU,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;IACvE,CAAC;IACD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,OAAO;YACV,OAAO,CAAC,EAAE,CAAC,CAAA;QACb,KAAK,IAAI;YACP,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;QAClE,KAAK,SAAS;YACZ,OAAO,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,EAAE,kBAAkB,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QAChK,KAAK,WAAW,CAAC;QACjB,KAAK,MAAM;YACT,OAAO,SAAS,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QAC9C,KAAK,YAAY;YACf,OAAO,gBAAgB,CAAC,KAA0B,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QAC1E,KAAK,MAAM;YACT,OAAO,UAAU,CAAC,KAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;QACzE,KAAK,MAAM;YACT,OAAO,UAAU,CAAC,KAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QAC9D,KAAK,OAAO;YACV,OAAO,WAAW,CAAC,KAAqB,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QACzD,KAAK,MAAM;YACT,CAAC;gBACC,MAAM,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAA;gBACjD,OAAO,QAAQ,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;YACvF,CAAC;QACH,KAAK,KAAK;YACR,OAAO,EAAE,CAAA;QACX;YACE,IAAI,QAAQ,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS;gBAAE,OAAO,YAAY,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;YACtH,IAAI,MAAM,IAAI,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtD,OAAO,UAAU,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,KAAK,CAAC,CAAA;YAC5E,CAAC;YACD,OAAO,EAAE,CAAA;IACb,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,MAAwB,EAAE,KAAY,EAAE,KAAa,EAAE,SAAiB,EAAE,KAAqB;IACnH,MAAM,KAAK,GAAa,EAAE,CAAA;IAC1B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,CAAA;QAChE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,SAAQ;QAChC,KAAK,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAA;IACrD,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,KAAY,EAAE,KAAa,EAAE,KAAqB;IAC/F,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5C,MAAM,KAAK,GAAG,YAAY,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;IAC1D,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,GAAG,EAAE,CAAA;IACtE,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,KAAK,EAAE,CAAA;IACrC,OAAO,KAAK,CAAA;AACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/chrome/markdown.ts"],"names":[],"mappings":"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"}
|