@wukonglabs/wukong 0.0.19 → 0.0.21

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 (135) hide show
  1. package/dist/cli/help.js +1 -1
  2. package/dist/cli/session-commands.d.ts.map +1 -1
  3. package/dist/cli/session-commands.js +4 -3
  4. package/dist/cli/session-commands.js.map +1 -1
  5. package/dist/index.js +73 -12
  6. package/dist/index.js.map +1 -1
  7. package/dist/tui/activity-verb.d.ts +29 -0
  8. package/dist/tui/activity-verb.d.ts.map +1 -0
  9. package/dist/tui/activity-verb.js +81 -0
  10. package/dist/tui/activity-verb.js.map +1 -0
  11. package/dist/tui/app.d.ts +29 -28
  12. package/dist/tui/app.d.ts.map +1 -1
  13. package/dist/tui/app.js +259 -132
  14. package/dist/tui/app.js.map +1 -1
  15. package/dist/tui/diff-count.d.ts +14 -0
  16. package/dist/tui/diff-count.d.ts.map +1 -0
  17. package/dist/tui/diff-count.js +21 -0
  18. package/dist/tui/diff-count.js.map +1 -0
  19. package/dist/tui/hint-bar.d.ts +12 -0
  20. package/dist/tui/hint-bar.d.ts.map +1 -0
  21. package/dist/tui/hint-bar.js +14 -0
  22. package/dist/tui/hint-bar.js.map +1 -0
  23. package/dist/tui/history-entry.d.ts +11 -0
  24. package/dist/tui/history-entry.d.ts.map +1 -0
  25. package/dist/tui/history-entry.js +35 -0
  26. package/dist/tui/history-entry.js.map +1 -0
  27. package/dist/tui/history-item.d.ts +40 -0
  28. package/dist/tui/history-item.d.ts.map +1 -0
  29. package/dist/tui/history-item.js +8 -0
  30. package/dist/tui/history-item.js.map +1 -0
  31. package/dist/tui/keys-help.d.ts +5 -0
  32. package/dist/tui/keys-help.d.ts.map +1 -0
  33. package/dist/tui/keys-help.js +36 -0
  34. package/dist/tui/keys-help.js.map +1 -0
  35. package/dist/tui/live-block.d.ts +54 -0
  36. package/dist/tui/live-block.d.ts.map +1 -0
  37. package/dist/tui/live-block.js +72 -0
  38. package/dist/tui/live-block.js.map +1 -0
  39. package/dist/tui/main-area.d.ts +40 -0
  40. package/dist/tui/main-area.d.ts.map +1 -0
  41. package/dist/tui/main-area.js +9 -0
  42. package/dist/tui/main-area.js.map +1 -0
  43. package/dist/tui/markdown.d.ts +14 -0
  44. package/dist/tui/markdown.d.ts.map +1 -0
  45. package/dist/tui/markdown.js +134 -0
  46. package/dist/tui/markdown.js.map +1 -0
  47. package/dist/tui/notice-panel.d.ts +20 -0
  48. package/dist/tui/notice-panel.d.ts.map +1 -0
  49. package/dist/tui/notice-panel.js +19 -0
  50. package/dist/tui/notice-panel.js.map +1 -0
  51. package/dist/tui/response-panel.d.ts +12 -16
  52. package/dist/tui/response-panel.d.ts.map +1 -1
  53. package/dist/tui/response-panel.js +8 -11
  54. package/dist/tui/response-panel.js.map +1 -1
  55. package/dist/tui/run-ink.d.ts +12 -0
  56. package/dist/tui/run-ink.d.ts.map +1 -1
  57. package/dist/tui/run-ink.js +2 -1
  58. package/dist/tui/run-ink.js.map +1 -1
  59. package/dist/tui/slash/menu.d.ts +16 -0
  60. package/dist/tui/slash/menu.d.ts.map +1 -0
  61. package/dist/tui/slash/menu.js +11 -0
  62. package/dist/tui/slash/menu.js.map +1 -0
  63. package/dist/tui/slash/parse.d.ts +21 -0
  64. package/dist/tui/slash/parse.d.ts.map +1 -0
  65. package/dist/tui/slash/parse.js +32 -0
  66. package/dist/tui/slash/parse.js.map +1 -0
  67. package/dist/tui/slash/registry.d.ts +20 -0
  68. package/dist/tui/slash/registry.d.ts.map +1 -0
  69. package/dist/tui/slash/registry.js +28 -0
  70. package/dist/tui/slash/registry.js.map +1 -0
  71. package/dist/tui/spinner.d.ts +11 -0
  72. package/dist/tui/spinner.d.ts.map +1 -0
  73. package/dist/tui/spinner.js +21 -0
  74. package/dist/tui/spinner.js.map +1 -0
  75. package/dist/tui/status-bar.d.ts +42 -0
  76. package/dist/tui/status-bar.d.ts.map +1 -0
  77. package/dist/tui/status-bar.js +32 -0
  78. package/dist/tui/status-bar.js.map +1 -0
  79. package/dist/tui/tail-visual.d.ts +11 -0
  80. package/dist/tui/tail-visual.d.ts.map +1 -0
  81. package/dist/tui/tail-visual.js +30 -0
  82. package/dist/tui/tail-visual.js.map +1 -0
  83. package/dist/tui/text-input.d.ts +20 -22
  84. package/dist/tui/text-input.d.ts.map +1 -1
  85. package/dist/tui/text-input.js +211 -81
  86. package/dist/tui/text-input.js.map +1 -1
  87. package/dist/tui/theme/context.d.ts +16 -0
  88. package/dist/tui/theme/context.d.ts.map +1 -0
  89. package/dist/tui/theme/context.js +28 -0
  90. package/dist/tui/theme/context.js.map +1 -0
  91. package/dist/tui/theme/persist.d.ts +11 -0
  92. package/dist/tui/theme/persist.d.ts.map +1 -0
  93. package/dist/tui/theme/persist.js +41 -0
  94. package/dist/tui/theme/persist.js.map +1 -0
  95. package/dist/tui/theme/theme.d.ts +26 -0
  96. package/dist/tui/theme/theme.d.ts.map +1 -0
  97. package/dist/tui/theme/theme.js +51 -0
  98. package/dist/tui/theme/theme.js.map +1 -0
  99. package/dist/tui/thinking-panel.d.ts +11 -20
  100. package/dist/tui/thinking-panel.d.ts.map +1 -1
  101. package/dist/tui/thinking-panel.js +29 -7
  102. package/dist/tui/thinking-panel.js.map +1 -1
  103. package/dist/tui/tool-cards.d.ts +5 -17
  104. package/dist/tui/tool-cards.d.ts.map +1 -1
  105. package/dist/tui/tool-cards.js +4 -5
  106. package/dist/tui/tool-cards.js.map +1 -1
  107. package/dist/tui/tool-summary.d.ts +2 -0
  108. package/dist/tui/tool-summary.d.ts.map +1 -0
  109. package/dist/tui/tool-summary.js +93 -0
  110. package/dist/tui/tool-summary.js.map +1 -0
  111. package/dist/tui/use-elapsed.d.ts +2 -0
  112. package/dist/tui/use-elapsed.d.ts.map +1 -0
  113. package/dist/tui/use-elapsed.js +22 -0
  114. package/dist/tui/use-elapsed.js.map +1 -0
  115. package/dist/tui/use-plan-state.d.ts +20 -1
  116. package/dist/tui/use-plan-state.d.ts.map +1 -1
  117. package/dist/tui/use-plan-state.js +52 -46
  118. package/dist/tui/use-plan-state.js.map +1 -1
  119. package/dist/tui/use-terminal-width.d.ts +2 -0
  120. package/dist/tui/use-terminal-width.d.ts.map +1 -0
  121. package/dist/tui/use-terminal-width.js +23 -0
  122. package/dist/tui/use-terminal-width.js.map +1 -0
  123. package/dist/tui/use-viewport.d.ts +15 -0
  124. package/dist/tui/use-viewport.d.ts.map +1 -0
  125. package/dist/tui/use-viewport.js +37 -0
  126. package/dist/tui/use-viewport.js.map +1 -0
  127. package/dist/tui/welcome.d.ts +29 -0
  128. package/dist/tui/welcome.d.ts.map +1 -0
  129. package/dist/tui/welcome.js +41 -0
  130. package/dist/tui/welcome.js.map +1 -0
  131. package/package.json +3 -2
  132. package/dist/tui/header.d.ts +0 -24
  133. package/dist/tui/header.d.ts.map +0 -1
  134. package/dist/tui/header.js +0 -26
  135. package/dist/tui/header.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/tui/app.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/tui/app.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * 从工具结果预览里抽取 diff 的 +/- 行数(纯函数,便于单测)。
3
+ *
4
+ * M4:edit 完成时,结果预览通常含一段 unified diff。统计以 `+` 开头
5
+ * (排除 `+++`)和 `-` 开头(排除 `---`)的行数,得到 (+N -M)。
6
+ * 抽不到就返回 null(调用方不显示 diff)。
7
+ */
8
+ export interface DiffCounts {
9
+ added: number;
10
+ removed: number;
11
+ }
12
+ export declare function countDiffLines(text: string): DiffCounts | null;
13
+ export declare function formatDiff(diff: DiffCounts): string;
14
+ //# sourceMappingURL=diff-count.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff-count.d.ts","sourceRoot":"","sources":["../../src/tui/diff-count.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAW9D;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAEnD"}
@@ -0,0 +1,21 @@
1
+ export function countDiffLines(text) {
2
+ if (!text)
3
+ return null;
4
+ let added = 0;
5
+ let removed = 0;
6
+ for (const line of text.split('\n')) {
7
+ if (line.startsWith('+++') || line.startsWith('---'))
8
+ continue;
9
+ if (line.startsWith('+'))
10
+ added++;
11
+ else if (line.startsWith('-'))
12
+ removed++;
13
+ }
14
+ if (added === 0 && removed === 0)
15
+ return null;
16
+ return { added, removed };
17
+ }
18
+ export function formatDiff(diff) {
19
+ return `+${diff.added} -${diff.removed}`;
20
+ }
21
+ //# sourceMappingURL=diff-count.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff-count.js","sourceRoot":"","sources":["../../src/tui/diff-count.ts"],"names":[],"mappings":"AAYA,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;YAAE,SAAS;QAC/D,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,KAAK,EAAE,CAAC;aAC7B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;IAC3C,CAAC;IACD,IAAI,KAAK,KAAK,CAAC,IAAI,OAAO,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAC9C,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;AAC5B,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAgB;IACzC,OAAO,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * 底部快捷键提示栏(M5,从 app.tsx 内联文本拆出)。
3
+ *
4
+ * 内容随模式切换:普通 / 反查 / 命令菜单 / busy。
5
+ * 颜色来自主题(M6)。
6
+ */
7
+ import React from 'react';
8
+ export type HintMode = 'normal' | 'reverse' | 'menu' | 'busy';
9
+ export declare function HintBar({ mode }: {
10
+ mode: HintMode;
11
+ }): React.ReactElement;
12
+ //# sourceMappingURL=hint-bar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hint-bar.d.ts","sourceRoot":"","sources":["../../src/tui/hint-bar.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAU9D,wBAAgB,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAAG,KAAK,CAAC,YAAY,CAOxE"}
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Text, Box } from 'ink';
3
+ import { useTheme } from './theme/context.js';
4
+ const HINTS = {
5
+ normal: 'Enter · send Shift+Enter · newline ? · help / · commands Ctrl+R · search Ctrl+C · interrupt',
6
+ reverse: 'Enter · accept Esc · cancel Ctrl+R · next match',
7
+ menu: '↑↓ · select Enter · run Esc · cancel',
8
+ busy: 'esc · interrupt Ctrl+C · also interrupt',
9
+ };
10
+ export function HintBar({ mode }) {
11
+ const { theme } = useTheme();
12
+ return (_jsx(Box, { children: _jsx(Text, { color: theme.dim, dimColor: true, children: HINTS[mode] }) }));
13
+ }
14
+ //# sourceMappingURL=hint-bar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hint-bar.js","sourceRoot":"","sources":["../../src/tui/hint-bar.tsx"],"names":[],"mappings":";AAOA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAI9C,MAAM,KAAK,GAA6B;IACtC,MAAM,EACJ,uGAAuG;IACzG,OAAO,EAAE,qDAAqD;IAC9D,IAAI,EAAE,0CAA0C;IAChD,IAAI,EAAE,2CAA2C;CAClD,CAAC;AAEF,MAAM,UAAU,OAAO,CAAC,EAAE,IAAI,EAAsB;IAClD,MAAM,EAAE,KAAK,EAAE,GAAG,QAAQ,EAAE,CAAC;IAC7B,OAAO,CACL,KAAC,GAAG,cACF,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,GAAG,EAAE,QAAQ,kBAAE,KAAK,CAAC,IAAI,CAAC,GAAQ,GACjD,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * 渲染一条已固化的对话记录(用于 Static)。
3
+ *
4
+ * 从 app.tsx 抽出(24-tui-redesign-viewport.md Step 1),逻辑不变。
5
+ */
6
+ import React from 'react';
7
+ import type { HistoryItem } from './history-item.js';
8
+ export declare function HistoryEntry({ item }: {
9
+ item: HistoryItem;
10
+ }): React.ReactElement;
11
+ //# sourceMappingURL=history-entry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-entry.d.ts","sourceRoot":"","sources":["../../src/tui/history-entry.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,wBAAgB,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,GAAG,KAAK,CAAC,YAAY,CA2FhF"}
@@ -0,0 +1,35 @@
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import { summarizeTool } from './tool-summary.js';
4
+ import { Markdown } from './markdown.js';
5
+ export function HistoryEntry({ item }) {
6
+ if (item.kind === 'welcome') {
7
+ return item.welcomeEl ?? _jsx(_Fragment, {});
8
+ }
9
+ if (item.kind === 'user') {
10
+ return (_jsxs(Box, { children: [_jsx(Text, { color: "green", children: '> ' }), _jsx(Text, { children: item.text })] }));
11
+ }
12
+ if (item.kind === 'thinking') {
13
+ return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsx(Text, { color: "magenta", bold: true, children: `━━ Thinking (${item.text.length} chars) ━━` }), _jsx(Text, { color: "magenta", children: item.text })] }));
14
+ }
15
+ if (item.kind === 'keys-help' || item.kind === 'help') {
16
+ return (_jsx(Box, { flexDirection: "column", paddingX: 1, children: _jsx(Text, { dimColor: true, children: item.text }) }));
17
+ }
18
+ if (item.kind === 'info') {
19
+ return (_jsx(Box, { paddingX: 1, children: _jsx(Text, { color: "cyan", children: item.text }) }));
20
+ }
21
+ if (item.kind === 'tool' && item.tool) {
22
+ const t = item.tool;
23
+ const icon = t.success === false ? '✗' : '✓';
24
+ const color = t.success === false ? 'red' : 'green';
25
+ const summary = summarizeTool(t.name, t.argsJson, t.resultPreview);
26
+ return (_jsxs(Box, { paddingX: 1, children: [_jsxs(Text, { color: color, children: [icon, " "] }), _jsx(Text, { dimColor: true, children: "\u23BF " }), _jsx(Text, { children: summary }), _jsx(Text, { dimColor: true, children: ` (${(t.durationMs / 1000).toFixed(1)}s${t.step > 0 ? `, step ${t.step}` : ''})` })] }));
27
+ }
28
+ if (item.kind === 'plan' && item.plan) {
29
+ const p = item.plan;
30
+ return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsx(Text, { color: "cyan", bold: true, children: `▶ Plan (${p.completed}/${p.total})` }), p.items.map((it, i) => (_jsx(Text, { dimColor: true, children: ` ${it.status === 'completed' ? '✓' : it.status === 'in_progress' ? '⏳' : '○'} ${it.content}` }, i)))] }));
31
+ }
32
+ const s = item.stats;
33
+ return (_jsxs(Box, { flexDirection: "column", paddingX: 1, children: [_jsxs(Box, { children: [_jsx(Text, { color: "cyan", bold: true, children: '● ' }), _jsx(Box, { flexDirection: "column", flexGrow: 1, children: _jsx(Markdown, { text: item.text }) })] }), s && (_jsxs(Text, { dimColor: true, children: [' [步骤: ', s.steps, ' | Token: ', s.totalTokens.prompt + s.totalTokens.completion, ' (prompt=', s.totalTokens.prompt, ', completion=', s.totalTokens.completion, ')', ' | 耗时: ', (s.durationMs / 1000).toFixed(1), "s", ']'] }))] }));
34
+ }
35
+ //# sourceMappingURL=history-entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-entry.js","sourceRoot":"","sources":["../../src/tui/history-entry.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * 已完成的对话条目类型定义。
3
+ *
4
+ * 从 app.tsx 抽出(24-tui-redesign-viewport.md Step 1),便于 MainArea 引用。
5
+ * 仅类型,无运行时影响。
6
+ */
7
+ export interface HistoryItem {
8
+ id: number;
9
+ kind: 'user' | 'assistant' | 'thinking' | 'keys-help' | 'help' | 'info' | 'tool' | 'plan' | 'welcome';
10
+ text: string;
11
+ stats?: {
12
+ steps: number;
13
+ totalTokens: {
14
+ prompt: number;
15
+ completion: number;
16
+ };
17
+ durationMs: number;
18
+ };
19
+ /** kind==='tool' 时携带:用于 HistoryEntry 渲染工具行 */
20
+ tool?: {
21
+ name: string;
22
+ argsJson?: string;
23
+ resultPreview?: string;
24
+ success?: boolean;
25
+ durationMs: number;
26
+ step: number;
27
+ };
28
+ /** kind==='plan' 时携带:固化时的 todo 快照(本次未实现 plan 固化,备用) */
29
+ plan?: {
30
+ completed: number;
31
+ total: number;
32
+ items: {
33
+ content: string;
34
+ status: string;
35
+ }[];
36
+ };
37
+ /** kind==='welcome' 时携带:预渲染的 Welcome 组件实例 */
38
+ welcomeEl?: React.ReactElement;
39
+ }
40
+ //# sourceMappingURL=history-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-item.d.ts","sourceRoot":"","sources":["../../src/tui/history-item.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACtG,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,UAAU,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACnG,8CAA8C;IAC9C,IAAI,CAAC,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,uDAAuD;IACvD,IAAI,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,EAAE,CAAA;KAAE,CAAC;IAC1F,6CAA6C;IAC7C,SAAS,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;CAChC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * 已完成的对话条目类型定义。
3
+ *
4
+ * 从 app.tsx 抽出(24-tui-redesign-viewport.md Step 1),便于 MainArea 引用。
5
+ * 仅类型,无运行时影响。
6
+ */
7
+ export {};
8
+ //# sourceMappingURL=history-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"history-item.js","sourceRoot":"","sources":["../../src/tui/history-item.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * 键位帮助文本(M9)。按 `?` 或 `/keys` 时整段 push 进滚动历史(Static)。
3
+ */
4
+ export declare const KEYS_HELP = "\u952E\u76D8\u5BFC\u822A\n \u2191 / \u2193 \u6D4F\u89C8\u5386\u53F2(\u7B2C\u4E00/\u672B\u884C\u65F6)\n Ctrl+R \u53CD\u5411\u641C\u7D22\u5386\u53F2\n Ctrl+A / Ctrl+E \u884C\u9996 / \u884C\u5C3E\n Ctrl+L \u6E05\u5C4F\n\n\u7F16\u8F91\n Enter \u53D1\u9001\n Shift+Enter \u6362\u884C(\u591A\u884C\u6A21\u5F0F)\n Ctrl+J \u6362\u884C\n Backspace \u5220\u9664\u524D\u4E00\u5B57\u7B26\n Home / End \u884C\u9996 / \u884C\u5C3E\n Alt+\u2190 / \u2192 \u6309\u8BCD\u8DF3\u8F6C\n Ctrl+W \u5220\u9664\u524D\u4E00\u4E2A\u8BCD\n Ctrl+K / U \u5220\u5230\u884C\u5C3E / \u884C\u9996\n Ctrl+D \u5220\u9664\u5149\u6807\u540E\u5B57\u7B26(\u7A7A\u8F93\u5165\u5219\u9000\u51FA)\n\n\u547D\u4EE4\u4E0E\u5E2E\u52A9\n / \u6253\u5F00\u547D\u4EE4\u83DC\u5355\n ? \u6253\u5F00\u952E\u4F4D\u5E2E\u52A9\n /help \u5B8C\u6574\u5E2E\u52A9\n\n\u8FD0\u884C\u63A7\u5236\n Ctrl+C \u4E00\u6B21 \u4E2D\u65AD\u5F53\u524D run(\u8F93\u5165\u6846\u4ECD\u53EF\u7528)\n Ctrl+C \u4E24\u6B21 \u7ACB\u5373\u9000\u51FA\u8FDB\u7A0B\n\n\u6388\u6743\n y / Enter \u5141\u8BB8\u4E00\u6B21\n s \u672C session \u5141\u8BB8\n l / g \u672C\u9879\u76EE / \u5168\u5C40\u5141\u8BB8\n n / x \u62D2\u7EDD / \u6C38\u4E45\u62D2\u7EDD\n v \u67E5\u770B\u5B8C\u6574\u53C2\u6570";
5
+ //# sourceMappingURL=keys-help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys-help.d.ts","sourceRoot":"","sources":["../../src/tui/keys-help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,eAAO,MAAM,SAAS,g5CA+BG,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * 键位帮助文本(M9)。按 `?` 或 `/keys` 时整段 push 进滚动历史(Static)。
3
+ */
4
+ export const KEYS_HELP = `键盘导航
5
+ ↑ / ↓ 浏览历史(第一/末行时)
6
+ Ctrl+R 反向搜索历史
7
+ Ctrl+A / Ctrl+E 行首 / 行尾
8
+ Ctrl+L 清屏
9
+
10
+ 编辑
11
+ Enter 发送
12
+ Shift+Enter 换行(多行模式)
13
+ Ctrl+J 换行
14
+ Backspace 删除前一字符
15
+ Home / End 行首 / 行尾
16
+ Alt+← / → 按词跳转
17
+ Ctrl+W 删除前一个词
18
+ Ctrl+K / U 删到行尾 / 行首
19
+ Ctrl+D 删除光标后字符(空输入则退出)
20
+
21
+ 命令与帮助
22
+ / 打开命令菜单
23
+ ? 打开键位帮助
24
+ /help 完整帮助
25
+
26
+ 运行控制
27
+ Ctrl+C 一次 中断当前 run(输入框仍可用)
28
+ Ctrl+C 两次 立即退出进程
29
+
30
+ 授权
31
+ y / Enter 允许一次
32
+ s 本 session 允许
33
+ l / g 本项目 / 全局允许
34
+ n / x 拒绝 / 永久拒绝
35
+ v 查看完整参数`;
36
+ //# sourceMappingURL=keys-help.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys-help.js","sourceRoot":"","sources":["../../src/tui/keys-help.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBA+BA,CAAC"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * LiveBlock —— 当前回合"尚未固化"的实时内容聚合区。
3
+ *
4
+ * 三段式视口(24-tui-redesign-viewport.md)的核心组件:
5
+ * - busy 期间显示本回合的 [Thinking 尾部] + [进行中工具] + [正文流式 tail]
6
+ * - 已结束的工具由 App 在 `tool_call_end` 时固化进 <Static>(不在本区)
7
+ * - 回合结束(handleSubmit 的 finally)清空 thinkingText/activeTools/streamingText,
8
+ * 本组件随之返回 null,屏幕底部只剩 StatusBar + 输入框 + HintBar。
9
+ *
10
+ * ## 高度预算(相对 23 号的硬截断改进)
11
+ *
12
+ * 旧版写死 `RESPONSE_TAIL_LINES=6` / `TOOLS_MAX_VISIBLE=2`,导致长输出/并行工具被砍。
13
+ * 本版改为按 `mainHeight` 动态分配(allocate 纯函数),优先级:
14
+ * 1. 流式响应 tail:至少 3 行,最多吃掉一半预算
15
+ * 2. 并行工具卡:每个 1 行,尽量全显示,放不下才折叠
16
+ * 3. Thinking 尾部:折叠状态下 1–4 行(替代旧版永远 1 行黑箱)
17
+ */
18
+ import React from 'react';
19
+ import type { ToolCallState } from './response-panel.js';
20
+ export interface LiveBlockProps {
21
+ thinkingText: string;
22
+ thinkingStreaming: boolean;
23
+ activeTools: ToolCallState[];
24
+ streamingText: string;
25
+ streaming: boolean;
26
+ /**
27
+ * "等待 LLM 首 token"窗口:busy=true 但 thinking/streaming 都还没起、
28
+ * 也没有工具调用。LiveBlock 必须渲染活动行,否则主区一片空白
29
+ * (用户在 LLM 响应前的 0.5-3s 看到屏幕没动静,体感卡死)。
30
+ */
31
+ awaitingLlm?: boolean;
32
+ /** 主区可用总行数(来自 useViewport);决定各区块预算 */
33
+ mainHeight: number;
34
+ /** 终端列数;未提供时用 useTerminalWidth 兜底 */
35
+ cols?: number;
36
+ /** 本轮 run 已耗时(秒);用于活动行内 stats */
37
+ elapsedSec?: number;
38
+ /** 当前 step(>=1);与 maxSteps 配对展示 "step 2/8" */
39
+ currentStep?: number;
40
+ /** 最大 step 数 */
41
+ maxSteps?: number;
42
+ }
43
+ /** 纯函数:把主区高度按优先级分配给三个区块(便于单测) */
44
+ export declare function allocate(mainHeight: number, opts: {
45
+ hasThinking: boolean;
46
+ toolCount: number;
47
+ hasResponse: boolean;
48
+ }): {
49
+ responseRows: number;
50
+ toolsVisible: number;
51
+ thinkingRows: number;
52
+ };
53
+ export declare function LiveBlock({ thinkingText, thinkingStreaming, activeTools, streamingText, streaming, awaitingLlm, mainHeight, cols: colsProp, elapsedSec, currentStep, maxSteps, }: LiveBlockProps): React.ReactElement | null;
54
+ //# sourceMappingURL=live-block.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-block.d.ts","sourceRoot":"","sources":["../../src/tui/live-block.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAQzD,MAAM,WAAW,cAAc;IAC7B,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sCAAsC;IACtC,UAAU,EAAE,MAAM,CAAC;IACnB,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,iCAAiC;AACjC,wBAAgB,QAAQ,CACtB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE;IAAE,WAAW,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,OAAO,CAAA;CAAE,GACtE;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CA0BtE;AAED,wBAAgB,SAAS,CAAC,EACxB,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,SAAS,EACT,WAAmB,EACnB,UAAU,EACV,IAAI,EAAE,QAAQ,EACd,UAAU,EACV,WAAW,EACX,QAAQ,GACT,EAAE,cAAc,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,CAuF5C"}
@@ -0,0 +1,72 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Text } from 'ink';
3
+ import { ThinkingPanel } from './thinking-panel.js';
4
+ import { ToolCards } from './tool-cards.js';
5
+ import { useTerminalWidth } from './use-terminal-width.js';
6
+ import { tailVisualLines } from './tail-visual.js';
7
+ import { pickActivityVerb, activityIcon } from './activity-verb.js';
8
+ import { useTheme } from './theme/context.js';
9
+ /** 纯函数:把主区高度按优先级分配给三个区块(便于单测) */
10
+ export function allocate(mainHeight, opts) {
11
+ const OVERHEAD = 2; // LiveBlock 自身的上下空行/留白
12
+ let budget = Math.max(3, mainHeight - OVERHEAD);
13
+ // 1. 响应 tail:至少 3 行,优先保证,最多吃掉一半预算
14
+ const responseRows = opts.hasResponse
15
+ ? Math.min(budget, Math.max(3, Math.floor(budget * 0.5)))
16
+ : 0;
17
+ budget -= responseRows;
18
+ // 2. 工具卡:每个 1 行,尽量全显示;预算不足时至少 2 个,实在不够才降到 1
19
+ const toolsVisible = opts.toolCount === 0
20
+ ? 0
21
+ : Math.min(opts.toolCount, Math.max(1, budget - 3));
22
+ budget -= toolsVisible;
23
+ // 3. Thinking 尾部:2–4 行(替代旧版永远 1 行黑箱),预算不足降到 1 行摘要
24
+ const thinkingRows = !opts.hasThinking
25
+ ? 0
26
+ : budget >= 4
27
+ ? 4
28
+ : budget >= 2
29
+ ? 2
30
+ : 1;
31
+ return { responseRows, toolsVisible, thinkingRows };
32
+ }
33
+ export function LiveBlock({ thinkingText, thinkingStreaming, activeTools, streamingText, streaming, awaitingLlm = false, mainHeight, cols: colsProp, elapsedSec, currentStep, maxSteps, }) {
34
+ const { theme } = useTheme();
35
+ const fallbackCols = useTerminalWidth();
36
+ const cols = colsProp ?? fallbackCols;
37
+ const hasThinking = thinkingText.length > 0;
38
+ const hasTools = activeTools.length > 0;
39
+ const hasResponse = streaming;
40
+ // 早退条件 —— 等 LLM 首 token 阶段(awaitingLlm)必须有视觉反馈,
41
+ // 不能因为 thinking/streaming/activeTools 都空就 return null,否则主区空白。
42
+ if (!hasThinking && !hasTools && !hasResponse && !awaitingLlm)
43
+ return null;
44
+ const { responseRows, toolsVisible, thinkingRows } = allocate(mainHeight, {
45
+ hasThinking,
46
+ toolCount: activeTools.length,
47
+ hasResponse,
48
+ });
49
+ const tail = streaming
50
+ ? tailVisualLines(streamingText, responseRows, cols)
51
+ : '';
52
+ const tailLines = tail.length > 0 ? tail.split('\n') : [];
53
+ // 活动行:沉浸式动词 + 行内资源 stats
54
+ // - awaitingLlm → Awaiting(已发请求、还没任何 chunk)
55
+ // - 有 active tool:用 tool 名派生动词(Reading / Searching / Editing ...)
56
+ // - 无 tool 且 thinkingStreaming:Thinking
57
+ // - 无 tool 且 streaming(响应):Responding
58
+ // - 格式:`🔍 Searching… (5.2s · step 2/8)`
59
+ const verb = pickActivityVerb({ activeTools, thinkingStreaming, streaming, awaitingLlm });
60
+ const icon = activityIcon(verb);
61
+ const statsParts = [];
62
+ if (typeof elapsedSec === 'number' && elapsedSec > 0) {
63
+ statsParts.push(`${elapsedSec.toFixed(1)}s`);
64
+ }
65
+ if (currentStep && currentStep > 0) {
66
+ statsParts.push(maxSteps ? `step ${currentStep}/${maxSteps}` : `step ${currentStep}`);
67
+ }
68
+ const statsSuffix = statsParts.length > 0 ? ` (${statsParts.join(' · ')})` : '';
69
+ const activityLine = `${icon} ${verb}…${statsSuffix}`;
70
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { paddingX: 1, children: _jsx(Text, { color: theme.status, bold: true, children: activityLine }) }), hasThinking && (_jsx(Box, { paddingX: 1, children: _jsx(ThinkingPanel, { thinking: thinkingText, streaming: thinkingStreaming, tailLines: thinkingStreaming ? thinkingRows : 0 }) })), hasTools && _jsx(ToolCards, { tools: activeTools, maxVisible: toolsVisible }), hasResponse && (_jsx(Box, { flexDirection: "column", paddingX: 1, children: tailLines.length === 0 ? (_jsx(Text, { color: "cyan", dimColor: true, children: "\u231B \u6B63\u5728\u751F\u6210\u54CD\u5E94\u2026" })) : (tailLines.map((line, i) => (_jsxs(Text, { color: "cyan", dimColor: true, children: [line, i === tailLines.length - 1 ? '▍' : ''] }, i)))) })), (streaming || awaitingLlm) && (_jsx(Box, { paddingX: 1, children: _jsx(Text, { dimColor: true, children: `Tip: /clear 重置会话 · esc 取消当前 run` }) }))] }));
71
+ }
72
+ //# sourceMappingURL=live-block.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"live-block.js","sourceRoot":"","sources":["../../src/tui/live-block.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * MainArea —— 三段式视口的弹性主区(24-tui-redesign-viewport.md §4.2)。
3
+ *
4
+ * 结构(从上到下):
5
+ * 1. <Static> 已固化历史(user/tool/assistant/thinking…)—— 进终端 scrollback,不占活跃重绘空间
6
+ * 2. <PlanPanel> 实时计划树(有则显示,订阅 plan_update 由 usePlanState 维护)
7
+ * 3. <LiveBlock> 本轮实时内容(thinking 尾部 + 并行工具 + 流式响应 tail)
8
+ *
9
+ * 高度由 useViewport 计算的 mainHeight 约束,保证下方 StatusBar/InputBox 永远可见。
10
+ */
11
+ import React from 'react';
12
+ import type { HistoryItem } from './history-item.js';
13
+ import type { ToolCallState } from './response-panel.js';
14
+ import type { TodoItem } from './plan-panel.js';
15
+ export interface MainAreaProps {
16
+ history: HistoryItem[];
17
+ todos: TodoItem[];
18
+ thinkingText: string;
19
+ thinkingStreaming: boolean;
20
+ activeTools: ToolCallState[];
21
+ streamingText: string;
22
+ streaming: boolean;
23
+ /**
24
+ * "等待 LLM 首 token"窗口 —— 由 App 派生后透传给 LiveBlock,
25
+ * 避免主区在 LLM 响应前的 0.5-3s 内一片空白。
26
+ */
27
+ awaitingLlm: boolean;
28
+ /** 主区可用总行数(来自 useViewport) */
29
+ mainHeight: number;
30
+ /** 终端列数(给 tailVisualLines 折算视觉行) */
31
+ cols: number;
32
+ /** 本轮 run 已耗时(秒);透传给 LiveBlock 活动行 */
33
+ elapsedSec?: number;
34
+ /** 当前 step;与 maxSteps 配对展示 "step 2/8" */
35
+ currentStep?: number;
36
+ /** 最大 step 数 */
37
+ maxSteps?: number;
38
+ }
39
+ export declare function MainArea({ history, todos, thinkingText, thinkingStreaming, activeTools, streamingText, streaming, awaitingLlm, mainHeight, cols, elapsedSec, currentStep, maxSteps, }: MainAreaProps): React.ReactElement;
40
+ //# sourceMappingURL=main-area.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main-area.d.ts","sourceRoot":"","sources":["../../src/tui/main-area.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,WAAW,EAAE,aAAa,EAAE,CAAC;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAC;IACrB,8BAA8B;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yCAAyC;IACzC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,QAAQ,CAAC,EACvB,OAAO,EACP,KAAK,EACL,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,SAAS,EACT,WAAW,EACX,UAAU,EACV,IAAI,EACJ,UAAU,EACV,WAAW,EACX,QAAQ,GACT,EAAE,aAAa,GAAG,KAAK,CAAC,YAAY,CAwBpC"}
@@ -0,0 +1,9 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Box, Static } from 'ink';
3
+ import { LiveBlock } from './live-block.js';
4
+ import { HistoryEntry } from './history-entry.js';
5
+ import { PlanPanel } from './plan-panel.js';
6
+ export function MainArea({ history, todos, thinkingText, thinkingStreaming, activeTools, streamingText, streaming, awaitingLlm, mainHeight, cols, elapsedSec, currentStep, maxSteps, }) {
7
+ return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Static, { items: history, children: (item) => _jsx(HistoryEntry, { item: item }, item.id) }), todos.length > 0 && _jsx(PlanPanel, { todos: todos }), _jsx(LiveBlock, { thinkingText: thinkingText, thinkingStreaming: thinkingStreaming, activeTools: activeTools, streamingText: streamingText, streaming: streaming, awaitingLlm: awaitingLlm, mainHeight: mainHeight, cols: cols, elapsedSec: elapsedSec, currentStep: currentStep, maxSteps: maxSteps })] }));
8
+ }
9
+ //# sourceMappingURL=main-area.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main-area.js","sourceRoot":"","sources":["../../src/tui/main-area.tsx"],"names":[],"mappings":";AAWA,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AA8B5C,MAAM,UAAU,QAAQ,CAAC,EACvB,OAAO,EACP,KAAK,EACL,YAAY,EACZ,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,SAAS,EACT,WAAW,EACX,UAAU,EACV,IAAI,EACJ,UAAU,EACV,WAAW,EACX,QAAQ,GACM;IACd,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,MAAM,IAAC,KAAK,EAAE,OAAO,YACnB,CAAC,IAAI,EAAE,EAAE,CAAC,KAAC,YAAY,IAAe,IAAI,EAAE,IAAI,IAAnB,IAAI,CAAC,EAAE,CAAgB,GAC9C,EAER,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAC,SAAS,IAAC,KAAK,EAAE,KAAK,GAAI,EAEhD,KAAC,SAAS,IACR,YAAY,EAAE,YAAY,EAC1B,iBAAiB,EAAE,iBAAiB,EACpC,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,EACxB,UAAU,EAAE,UAAU,EACtB,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,GAClB,IACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * 终端友好的轻量 Markdown 渲染器(用于 HistoryEntry 的 assistant 回复)。
3
+ *
4
+ * 设计取舍:
5
+ * - 用 marked.lexer() 拿到 token 树,逐 token 翻译为 Ink 元素;不解析 HTML
6
+ * - 不做语法高亮(代码块整体 dim);不做自动换行(交给终端 width)
7
+ * - 表格退化为简单对齐文本(用 │ 分隔),避免 box-drawing 在窄终端溢出
8
+ * - 流式 LiveBlock 暂不渲染 markdown(每次 token 都 re-parse 代价大),保持纯文本
9
+ */
10
+ import React from 'react';
11
+ export declare function Markdown({ text }: {
12
+ text: string;
13
+ }): React.ReactElement;
14
+ //# sourceMappingURL=markdown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/tui/markdown.tsx"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,wBAAgB,QAAQ,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,KAAK,CAAC,YAAY,CAavE"}