@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.
Files changed (90) hide show
  1. package/lib/CHANGELOG.md +48 -1
  2. package/lib/chrome/goal-bar.d.ts +13 -0
  3. package/lib/chrome/goal-bar.js +45 -0
  4. package/lib/chrome/goal-bar.js.map +1 -0
  5. package/lib/chrome/grapheme.d.ts +15 -0
  6. package/lib/chrome/grapheme.js +49 -0
  7. package/lib/chrome/grapheme.js.map +1 -0
  8. package/lib/chrome/markdown.js +96 -28
  9. package/lib/chrome/markdown.js.map +1 -1
  10. package/lib/chrome/renderer.d.ts +5 -61
  11. package/lib/chrome/renderer.js +17 -181
  12. package/lib/chrome/renderer.js.map +1 -1
  13. package/lib/chrome/status-config.d.ts +9 -4
  14. package/lib/chrome/status-config.js +13 -4
  15. package/lib/chrome/status-config.js.map +1 -1
  16. package/lib/chrome/status-line.d.ts +2 -0
  17. package/lib/chrome/status-line.js +4 -1
  18. package/lib/chrome/status-line.js.map +1 -1
  19. package/lib/chrome/tool-renderers.js +48 -2
  20. package/lib/chrome/tool-renderers.js.map +1 -1
  21. package/lib/commands/diff.d.ts +32 -0
  22. package/lib/commands/diff.js +116 -0
  23. package/lib/commands/diff.js.map +1 -0
  24. package/lib/commands/jobs.d.ts +14 -0
  25. package/lib/commands/jobs.js +82 -0
  26. package/lib/commands/jobs.js.map +1 -0
  27. package/lib/commands/model.d.ts +25 -0
  28. package/lib/commands/model.js +168 -4
  29. package/lib/commands/model.js.map +1 -1
  30. package/lib/commands/permission.d.ts +10 -1
  31. package/lib/commands/permission.js +23 -14
  32. package/lib/commands/permission.js.map +1 -1
  33. package/lib/commands/session.js +72 -1
  34. package/lib/commands/session.js.map +1 -1
  35. package/lib/definition.d.ts +25 -3
  36. package/lib/definition.js.map +1 -1
  37. package/lib/input/editor.d.ts +2 -0
  38. package/lib/input/editor.js +19 -9
  39. package/lib/input/editor.js.map +1 -1
  40. package/lib/input/keybindings-config.d.ts +1 -1
  41. package/lib/input/keybindings-config.js +9 -0
  42. package/lib/input/keybindings-config.js.map +1 -1
  43. package/lib/runtime/agent-profile.d.ts +11 -0
  44. package/lib/runtime/agent-profile.js +20 -1
  45. package/lib/runtime/agent-profile.js.map +1 -1
  46. package/lib/runtime/provider-local.d.ts +9 -1
  47. package/lib/runtime/provider-local.js +317 -89
  48. package/lib/runtime/provider-local.js.map +1 -1
  49. package/lib/runtime/runner.js +33 -8
  50. package/lib/runtime/runner.js.map +1 -1
  51. package/lib/runtime/tool-presentation.js +13 -2
  52. package/lib/runtime/tool-presentation.js.map +1 -1
  53. package/lib/session/job-notice.d.ts +28 -0
  54. package/lib/session/job-notice.js +34 -0
  55. package/lib/session/job-notice.js.map +1 -0
  56. package/lib/session/live-attempt-tracker.d.ts +43 -0
  57. package/lib/session/live-attempt-tracker.js +58 -0
  58. package/lib/session/live-attempt-tracker.js.map +1 -0
  59. package/lib/session/project-context.d.ts +2 -0
  60. package/lib/session/project-context.js +22 -11
  61. package/lib/session/project-context.js.map +1 -1
  62. package/lib/session/session-configuration.js +1 -1
  63. package/lib/session/session-configuration.js.map +1 -1
  64. package/lib/session/session-controller.d.ts +10 -4
  65. package/lib/session/session-controller.js +289 -64
  66. package/lib/session/session-controller.js.map +1 -1
  67. package/lib/session/subagent-roster.d.ts +37 -0
  68. package/lib/session/subagent-roster.js +79 -14
  69. package/lib/session/subagent-roster.js.map +1 -1
  70. package/lib/session/tui-settings.js +1 -0
  71. package/lib/session/tui-settings.js.map +1 -1
  72. package/lib/views/event-views.d.ts +43 -1
  73. package/lib/views/event-views.js +191 -64
  74. package/lib/views/event-views.js.map +1 -1
  75. package/lib/views/hotkeys.js +11 -4
  76. package/lib/views/hotkeys.js.map +1 -1
  77. package/lib/views/settings-list.js +1 -0
  78. package/lib/views/settings-list.js.map +1 -1
  79. package/lib/views/stream-time.d.ts +14 -0
  80. package/lib/views/stream-time.js +32 -0
  81. package/lib/views/stream-time.js.map +1 -0
  82. package/lib/views/streaming-reveal.js +14 -5
  83. package/lib/views/streaming-reveal.js.map +1 -1
  84. package/lib/views/trajectory.d.ts +47 -1
  85. package/lib/views/trajectory.js +393 -58
  86. package/lib/views/trajectory.js.map +1 -1
  87. package/lib/views/transcript-search.d.ts +42 -0
  88. package/lib/views/transcript-search.js +84 -0
  89. package/lib/views/transcript-search.js.map +1 -0
  90. 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.14.0...HEAD
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"}
@@ -118,7 +118,49 @@ function normalizeHtml(source) {
118
118
  .replaceAll('&quot;', '"').replaceAll('&#39;', "'").replaceAll('&nbsp;', ' ');
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
- function renderInlineTokens(tokens, theme, style) {
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
- const chunk = renderBlock(token, theme, width, listLevel, style);
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":"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"}
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/chrome/markdown.ts"],"names":[],"mappings":"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"}