@linghun/tui 0.1.0 → 0.1.2

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 (208) hide show
  1. package/dist/agent-completion-finalizer.js +3 -3
  2. package/dist/background-control-runtime.js +56 -55
  3. package/dist/cache-command-runtime.js +3 -3
  4. package/dist/capability-runtime.js +35 -34
  5. package/dist/{chunk-TJLC3QAS.js → chunk-36ZWUJQS.js} +1 -1
  6. package/dist/{chunk-JDWXC2OQ.js → chunk-3MRYQO7X.js} +4 -4
  7. package/dist/{chunk-2FVEKTKN.js → chunk-3PG7I3LA.js} +4 -4
  8. package/dist/{chunk-J7ZE2JKP.js → chunk-42ZZUF7P.js} +3 -3
  9. package/dist/{chunk-DTK5NBTV.js → chunk-4BFCUJX6.js} +95 -11
  10. package/dist/{chunk-YH6UIHNF.js → chunk-4QWCNMP6.js} +2 -2
  11. package/dist/{chunk-WKMBK5UP.js → chunk-4TO2LDMP.js} +1 -1
  12. package/dist/chunk-4UER2AKI.js +636 -0
  13. package/dist/{chunk-WHFDDZHY.js → chunk-5IFNLTOF.js} +4 -4
  14. package/dist/{chunk-W3KHJNSH.js → chunk-6CHUZ2NF.js} +2 -2
  15. package/dist/{chunk-I3NTAIMF.js → chunk-6DBBXNEG.js} +3 -3
  16. package/dist/{chunk-GDQQNPBP.js → chunk-6GXIGN5W.js} +1 -1
  17. package/dist/{chunk-QLRTQHTR.js → chunk-6JGRNES6.js} +2 -2
  18. package/dist/{chunk-D7TCSOAZ.js → chunk-7BHMBWG2.js} +3 -3
  19. package/dist/{chunk-KO64OFSG.js → chunk-7C6T7RKJ.js} +1 -1
  20. package/dist/{chunk-4WHZ6JKD.js → chunk-7R4YXN7Z.js} +335 -63
  21. package/dist/{chunk-LDABZV5V.js → chunk-7RZE45OT.js} +1 -1
  22. package/dist/{chunk-MLUIOBKL.js → chunk-7ZMDQZ22.js} +4 -4
  23. package/dist/{chunk-X7A22JHP.js → chunk-A4H3UTJZ.js} +1 -1
  24. package/dist/{chunk-LVIM2PA7.js → chunk-AGI6GFFL.js} +3 -3
  25. package/dist/{chunk-D3UTL2QX.js → chunk-ATY7WBIT.js} +1 -1
  26. package/dist/{chunk-ZOSK2UEU.js → chunk-BBK5BA5C.js} +99 -117
  27. package/dist/{chunk-SRZIA6B4.js → chunk-BNC4F63N.js} +1 -1
  28. package/dist/{chunk-WQMSRO4D.js → chunk-CJRJR7TP.js} +5 -5
  29. package/dist/{chunk-OEYW3JE3.js → chunk-DIDRFIIW.js} +2 -2
  30. package/dist/{chunk-AKPXMCVF.js → chunk-EKYXI6C7.js} +11 -7
  31. package/dist/{chunk-GMUCSNUD.js → chunk-FGGY5KNM.js} +7 -7
  32. package/dist/{chunk-APJIC2O5.js → chunk-GTIZNO5O.js} +84 -0
  33. package/dist/{chunk-UOHZQIVL.js → chunk-GXFYUZAM.js} +1 -1
  34. package/dist/{chunk-DDXS2RDZ.js → chunk-HGCTHBUY.js} +1 -1
  35. package/dist/{chunk-QTDGRZMZ.js → chunk-HJOC5WUV.js} +1 -1
  36. package/dist/{chunk-ECFLCY5V.js → chunk-HPIHFENG.js} +2 -2
  37. package/dist/{chunk-SYBNJZEL.js → chunk-HPMBSOQ4.js} +1 -1
  38. package/dist/{chunk-QB4VWH7W.js → chunk-HPQ2IHOW.js} +4 -4
  39. package/dist/{chunk-RVY34HK4.js → chunk-HZ5XNKWS.js} +5 -2
  40. package/dist/{chunk-4K6UB524.js → chunk-IPZZGDUU.js} +1 -1
  41. package/dist/{chunk-JHGWGH2C.js → chunk-J6CYFWSW.js} +89 -7
  42. package/dist/{chunk-6CI6TKLN.js → chunk-JAVRQ3LM.js} +1 -1
  43. package/dist/{chunk-VCSRBS47.js → chunk-JLAJZPOC.js} +1 -1
  44. package/dist/{chunk-THZBFYAH.js → chunk-JY3LI63F.js} +2 -2
  45. package/dist/{chunk-RMLTVKOY.js → chunk-L4YVE3RG.js} +2 -2
  46. package/dist/{chunk-P277M7Z5.js → chunk-LBC75QAB.js} +1 -1
  47. package/dist/{chunk-F6TVBCZV.js → chunk-LWW2IAFC.js} +1 -1
  48. package/dist/{chunk-64MJP6FK.js → chunk-NK4NMYF5.js} +52 -10
  49. package/dist/{chunk-DNQN74CC.js → chunk-NL4M3V5D.js} +33 -0
  50. package/dist/{chunk-OF3K3CU5.js → chunk-O2U4XQVM.js} +2 -2
  51. package/dist/{chunk-LQTVYUT3.js → chunk-OJTMM5CV.js} +2 -2
  52. package/dist/{chunk-HW2TBXVK.js → chunk-OPVRII63.js} +1 -1
  53. package/dist/{chunk-ZZ2CNCXJ.js → chunk-OSFBVVEP.js} +4 -4
  54. package/dist/{chunk-F43AMWLZ.js → chunk-PDTJVJVD.js} +1 -1
  55. package/dist/{chunk-UDQT5CWK.js → chunk-PI6T2AGS.js} +1 -1
  56. package/dist/{chunk-JO5ANTMR.js → chunk-PPUOHBAK.js} +84 -37
  57. package/dist/{chunk-N7G2X2LK.js → chunk-QD4SCW4A.js} +235 -198
  58. package/dist/{chunk-SOPYWTFV.js → chunk-RRUI3VWQ.js} +1 -1
  59. package/dist/{chunk-IN42UISW.js → chunk-SRJ4XWOR.js} +10 -5
  60. package/dist/{chunk-6RJVTUWI.js → chunk-T6UOCF5D.js} +5 -1
  61. package/dist/{chunk-VTQL23UM.js → chunk-TVNWAEJR.js} +1 -1
  62. package/dist/chunk-TY4KIVA6.js +50 -0
  63. package/dist/{chunk-UT2TYK2A.js → chunk-TYTVAFGB.js} +1 -1
  64. package/dist/{chunk-OMZYPQVA.js → chunk-UGYFQF6M.js} +1 -1
  65. package/dist/{chunk-TYF4GJR3.js → chunk-UIKN3CDF.js} +4 -4
  66. package/dist/{chunk-JGDIO2NF.js → chunk-UO3KYTBU.js} +1 -1
  67. package/dist/{chunk-KI7C6ZOD.js → chunk-VIJ7GDKI.js} +1 -1
  68. package/dist/{chunk-NKFKOEYX.js → chunk-WCMHJ6SS.js} +1 -1
  69. package/dist/{chunk-EORRZP3F.js → chunk-WX2OTJXL.js} +1 -1
  70. package/dist/{chunk-BOV4K7FP.js → chunk-WXTHKLNH.js} +9 -1
  71. package/dist/{chunk-CRQORMFF.js → chunk-X37FSYAX.js} +1 -1
  72. package/dist/{chunk-JQCRCDOC.js → chunk-X7E34LKV.js} +15 -15
  73. package/dist/chunk-X7HMDZZQ.js +85 -0
  74. package/dist/{chunk-B4GQTZMT.js → chunk-YDTJ7UBG.js} +4 -4
  75. package/dist/{chunk-K56D3X7S.js → chunk-YKOXJQGX.js} +34 -2
  76. package/dist/{chunk-3GCIXKCI.js → chunk-YLOJWSHB.js} +9 -5
  77. package/dist/{chunk-GKZYTPN2.js → chunk-YMEMN5FG.js} +1 -1
  78. package/dist/chunk-YQNK7HK3.js +87 -0
  79. package/dist/{chunk-M4AIK2SP.js → chunk-Z265MCGC.js} +15 -11
  80. package/dist/{chunk-FTAEPAVY.js → chunk-ZF36LULR.js} +4 -4
  81. package/dist/{chunk-66BNE332.js → chunk-ZJDPYOTK.js} +4 -4
  82. package/dist/{chunk-RM5QMOFY.js → chunk-ZKPQ4KLK.js} +1 -1
  83. package/dist/command-panel-runtime.js +34 -33
  84. package/dist/compact-cache-command-runtime.js +56 -55
  85. package/dist/compact-preflight-runtime.js +21 -21
  86. package/dist/connector-runtime.js +36 -35
  87. package/dist/deep-compact-runtime.js +6 -6
  88. package/dist/deferred-tools-catalog.js +5 -5
  89. package/dist/details-status-runtime.js +34 -33
  90. package/dist/evidence-runtime.d.ts.map +1 -1
  91. package/dist/evidence-runtime.js +12 -12
  92. package/dist/extension-command-runtime.js +7 -7
  93. package/dist/extension-slash-runtime.js +35 -34
  94. package/dist/failure-learning-command-runtime.js +36 -35
  95. package/dist/failure-learning-presenter.js +4 -4
  96. package/dist/failure-learning-runtime.js +3 -3
  97. package/dist/final-answer-gate.js +2 -2
  98. package/dist/git-command-runtime.js +35 -34
  99. package/dist/handoff-session-runtime.js +8 -8
  100. package/dist/headless-bench-runtime.d.ts +108 -0
  101. package/dist/headless-bench-runtime.d.ts.map +1 -0
  102. package/dist/headless-bench-runtime.js +30 -0
  103. package/dist/index-result-presenter.js +5 -5
  104. package/dist/index-runtime.js +5 -5
  105. package/dist/index.d.ts +31 -0
  106. package/dist/index.d.ts.map +1 -1
  107. package/dist/index.js +531 -78
  108. package/dist/job-agent-command-runtime.d.ts +2 -1
  109. package/dist/job-agent-command-runtime.d.ts.map +1 -1
  110. package/dist/job-agent-command-runtime.js +34 -33
  111. package/dist/job-runner-presenter.js +3 -3
  112. package/dist/job-runtime.js +9 -9
  113. package/dist/mcp-index-command-runtime.js +5 -5
  114. package/dist/mcp-index-runtime.js +39 -38
  115. package/dist/mcp-sse-runtime.js +3 -3
  116. package/dist/mcp-stdio-runtime.js +4 -4
  117. package/dist/memory-command-runtime.js +36 -35
  118. package/dist/memory-extraction-runtime.js +3 -3
  119. package/dist/memory-rules-runtime.js +3 -3
  120. package/dist/meta-scheduler-runtime.d.ts +10 -0
  121. package/dist/meta-scheduler-runtime.d.ts.map +1 -1
  122. package/dist/meta-scheduler-runtime.js +2 -1
  123. package/dist/model-command-runtime.js +35 -34
  124. package/dist/model-loop-runtime.d.ts +1 -1
  125. package/dist/model-loop-runtime.d.ts.map +1 -1
  126. package/dist/model-loop-runtime.js +1 -1
  127. package/dist/model-prompt-runtime.d.ts.map +1 -1
  128. package/dist/model-prompt-runtime.js +10 -10
  129. package/dist/model-stream-runtime.d.ts +4 -0
  130. package/dist/model-stream-runtime.d.ts.map +1 -1
  131. package/dist/model-stream-runtime.js +56 -55
  132. package/dist/model-tool-runtime.d.ts +3 -2
  133. package/dist/model-tool-runtime.d.ts.map +1 -1
  134. package/dist/model-tool-runtime.js +58 -55
  135. package/dist/pending-details-presenter.js +3 -3
  136. package/dist/permission-approval-runtime.js +56 -55
  137. package/dist/permission-continuation-runtime.d.ts.map +1 -1
  138. package/dist/permission-continuation-runtime.js +4 -4
  139. package/dist/process-command-runtime.d.ts.map +1 -1
  140. package/dist/process-command-runtime.js +4 -4
  141. package/dist/process-guard.d.ts +3 -0
  142. package/dist/process-guard.d.ts.map +1 -1
  143. package/dist/process-guard.js +1 -1
  144. package/dist/provider-loop-runtime.js +3 -3
  145. package/dist/remote-command-runtime.js +35 -34
  146. package/dist/runner-runtime.js +8 -8
  147. package/dist/runtime-status-presenter.js +3 -3
  148. package/dist/runtime-status-snapshot.js +4 -4
  149. package/dist/shell/components/AgentProgressTree.js +2 -2
  150. package/dist/shell/components/BackgroundTaskOverlay.js +2 -2
  151. package/dist/shell/components/BtwPanel.js +2 -2
  152. package/dist/shell/components/CommandPanel.js +2 -2
  153. package/dist/shell/components/Composer.d.ts +16 -2
  154. package/dist/shell/components/Composer.d.ts.map +1 -1
  155. package/dist/shell/components/Composer.js +9 -7
  156. package/dist/shell/components/ConfigPanel.js +2 -2
  157. package/dist/shell/components/HelpPanel.js +2 -2
  158. package/dist/shell/components/HistorySearchPanel.js +2 -2
  159. package/dist/shell/components/MessageMarkdown.d.ts +23 -0
  160. package/dist/shell/components/MessageMarkdown.d.ts.map +1 -1
  161. package/dist/shell/components/MessageMarkdown.js +5 -3
  162. package/dist/shell/components/MouseInputRouter.js +5 -80
  163. package/dist/shell/components/OutputLine.d.ts.map +1 -1
  164. package/dist/shell/components/OutputLine.js +5 -3
  165. package/dist/shell/components/ProductBlock.d.ts.map +1 -1
  166. package/dist/shell/components/ProductBlock.js +5 -5
  167. package/dist/shell/components/ScrollViewport.js +3 -82
  168. package/dist/shell/components/SessionsPanel.js +2 -2
  169. package/dist/shell/components/ShellApp.d.ts.map +1 -1
  170. package/dist/shell/components/ShellApp.js +29 -24
  171. package/dist/shell/components/SlashSuggestions.js +2 -2
  172. package/dist/shell/components/StatusFooter.js +2 -2
  173. package/dist/shell/components/StatusTray.d.ts.map +1 -1
  174. package/dist/shell/components/StatusTray.js +2 -1
  175. package/dist/shell/components/StructuredDiff.js +2 -2
  176. package/dist/shell/components/TaskListView.js +2 -2
  177. package/dist/shell/components/TaskSuggestionBar.js +2 -2
  178. package/dist/shell/components/WorkflowProgressView.js +2 -2
  179. package/dist/shell/components/useAnchoredCursor.d.ts +6 -9
  180. package/dist/shell/components/useAnchoredCursor.d.ts.map +1 -1
  181. package/dist/shell/components/useAnchoredCursor.js +1 -1
  182. package/dist/shell/ink-renderer.d.ts.map +1 -1
  183. package/dist/shell/ink-renderer.js +29 -24
  184. package/dist/shell/models/transcript-selection-state.js +2 -2
  185. package/dist/shell/plain-renderer.d.ts.map +1 -1
  186. package/dist/shell/plain-renderer.js +2 -2
  187. package/dist/shell/text-utils.d.ts +16 -0
  188. package/dist/shell/text-utils.d.ts.map +1 -1
  189. package/dist/shell/text-utils.js +3 -1
  190. package/dist/shell/view-model.js +14 -14
  191. package/dist/slash-command-runtime.js +56 -55
  192. package/dist/slash-dispatch.js +4 -4
  193. package/dist/startup-runtime.js +2 -2
  194. package/dist/tool-output-presenter.d.ts.map +1 -1
  195. package/dist/tool-output-presenter.js +1 -1
  196. package/dist/tui-agent-job-runtime.js +11 -11
  197. package/dist/tui-data-types.d.ts +10 -0
  198. package/dist/tui-data-types.d.ts.map +1 -1
  199. package/dist/tui-details-runtime.js +10 -10
  200. package/dist/tui-memory-runtime.js +5 -5
  201. package/dist/tui-output-surface.js +15 -15
  202. package/dist/tui-permission-runtime.js +5 -5
  203. package/dist/tui-state-runtime.js +4 -4
  204. package/dist/verification-command-runtime.js +12 -12
  205. package/dist/workflow-command-runtime.d.ts.map +1 -1
  206. package/dist/workflow-command-runtime.js +34 -33
  207. package/package.json +5 -5
  208. package/dist/chunk-GW5YDCRZ.js +0 -42
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  ConfigPanel
3
- } from "../../chunk-VCSRBS47.js";
3
+ } from "../../chunk-JLAJZPOC.js";
4
4
  import "../../chunk-GC55DMZV.js";
5
- import "../../chunk-APJIC2O5.js";
5
+ import "../../chunk-GTIZNO5O.js";
6
6
  export {
7
7
  ConfigPanel
8
8
  };
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  HelpPanel
3
- } from "../../chunk-D3UTL2QX.js";
3
+ } from "../../chunk-ATY7WBIT.js";
4
4
  import "../../chunk-GC55DMZV.js";
5
- import "../../chunk-APJIC2O5.js";
5
+ import "../../chunk-GTIZNO5O.js";
6
6
  export {
7
7
  HelpPanel
8
8
  };
@@ -3,7 +3,7 @@ import {
3
3
  } from "../../chunk-GC55DMZV.js";
4
4
  import {
5
5
  fitText
6
- } from "../../chunk-APJIC2O5.js";
6
+ } from "../../chunk-GTIZNO5O.js";
7
7
 
8
8
  // src/shell/components/HistorySearchPanel.tsx
9
9
  import { Box, Text } from "@linghun/ink-runtime";
@@ -47,7 +47,7 @@ function HistorySearchPanel({
47
47
  children: [
48
48
  /* @__PURE__ */ jsxs(Text, { children: [
49
49
  /* @__PURE__ */ jsx(Text, { color: theme.accent, bold: true, children: hint.prefix }),
50
- /* @__PURE__ */ jsx(Text, { children: query || "" })
50
+ /* @__PURE__ */ jsx(Text, { children: fitText(query || "", Math.max(8, innerWidth - hint.prefix.length)) })
51
51
  ] }),
52
52
  visible.length === 0 ? /* @__PURE__ */ jsx(Text, { color: theme.dim ?? theme.muted, dimColor: true, children: hint.empty }) : visible.map((entry, idx) => {
53
53
  const active = idx === cursor;
@@ -15,11 +15,34 @@ export type MessageMarkdownProps = {
15
15
  selectionLineRanges?: ProductBlockSelectionRange[];
16
16
  isStreaming?: boolean;
17
17
  };
18
+ type InlineToken = {
19
+ kind: "text";
20
+ value: string;
21
+ } | {
22
+ kind: "code";
23
+ value: string;
24
+ } | {
25
+ kind: "bold";
26
+ value: string;
27
+ } | {
28
+ kind: "italic";
29
+ value: string;
30
+ } | {
31
+ kind: "link";
32
+ value: string;
33
+ href: string;
34
+ };
18
35
  type MarkdownRenderSegment = {
19
36
  kind: "markdown" | "diff";
20
37
  text: string;
21
38
  };
22
39
  export declare function __testSplitRawDiffSections(text: string): MarkdownRenderSegment[];
40
+ export declare function __testWrapInlineMarkdownRows(value: string, wrapWidth: number): Array<Array<{
41
+ kind: InlineToken["kind"];
42
+ value: string;
43
+ sourceStart: number;
44
+ sourceEnd: number;
45
+ }>>;
23
46
  export declare function MessageMarkdown({ text, theme, dim, tone, wrapWidth, selectionLineIndexes, selectionLineRanges, isStreaming, }: MessageMarkdownProps): React.ReactNode;
24
47
  export type StreamingMarkdownState = {
25
48
  stablePrefix: string;
@@ -1 +1 @@
1
- {"version":3,"file":"MessageMarkdown.d.ts","sourceRoot":"","sources":["../../../src/shell/components/MessageMarkdown.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAK9D,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED,wBAAgB,uBAAuB,CAAC,EACtC,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,GAAG,KAAK,CAAC,SAAS,CAElB;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,YAAY,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,mBAAmB,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAuBF,KAAK,qBAAqB,GAAG;IAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAgJzE,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAGhF;AA6pBD,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,KAAK,EACL,GAAW,EACX,IAAgB,EAChB,SAAS,EACT,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,GACZ,EAAE,oBAAoB,GAAG,KAAK,CAAC,SAAS,CA2ExC;AAyFD,MAAM,MAAM,sBAAsB,GAAG;IACnC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,sBAAsB,GAC5B;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,CAgB7E;AA+CD,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,KAAK,EACL,GAAW,EACX,IAAgB,EAChB,SAAS,GACV,EAAE,oBAAoB,GAAG,KAAK,CAAC,SAAS,CA+BxC"}
1
+ {"version":3,"file":"MessageMarkdown.d.ts","sourceRoot":"","sources":["../../../src/shell/components/MessageMarkdown.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAK9D,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C;AAED,wBAAgB,uBAAuB,CAAC,EACtC,QAAQ,GACT,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,GAAG,KAAK,CAAC,SAAS,CAElB;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC;IAClB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,GAAG,YAAY,CAAC;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,mBAAmB,CAAC,EAAE,0BAA0B,EAAE,CAAC;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,KAAK,WAAW,GACZ;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAiBlD,KAAK,qBAAqB,GAAG;IAAE,IAAI,EAAE,UAAU,GAAG,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAgJzE,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,EAAE,CAGhF;AA0ED,wBAAgB,4BAA4B,CAC1C,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,MAAM,GAChB,KAAK,CAAC,KAAK,CAAC;IAAE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC,CASpG;AA+qBD,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,KAAK,EACL,GAAW,EACX,IAAgB,EAChB,SAAS,EACT,oBAAoB,EACpB,mBAAmB,EACnB,WAAW,GACZ,EAAE,oBAAoB,GAAG,KAAK,CAAC,SAAS,CA2ExC;AA0FD,MAAM,MAAM,sBAAsB,GAAG;IACnC,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,wBAAgB,+BAA+B,CAC7C,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,sBAAsB,GAC5B;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,CAgB7E;AA+CD,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,KAAK,EACL,GAAW,EACX,IAAgB,EAChB,SAAS,GACV,EAAE,oBAAoB,GAAG,KAAK,CAAC,SAAS,CA+BxC"}
@@ -3,16 +3,18 @@ import {
3
3
  MessageResponseProvider,
4
4
  StreamingMarkdown,
5
5
  __testSplitRawDiffSections,
6
+ __testWrapInlineMarkdownRows,
6
7
  splitStreamingMarkdownForRender,
7
8
  useInMessageResponse
8
- } from "../../chunk-DTK5NBTV.js";
9
- import "../../chunk-F43AMWLZ.js";
10
- import "../../chunk-APJIC2O5.js";
9
+ } from "../../chunk-4BFCUJX6.js";
10
+ import "../../chunk-PDTJVJVD.js";
11
+ import "../../chunk-GTIZNO5O.js";
11
12
  export {
12
13
  MessageMarkdown,
13
14
  MessageResponseProvider,
14
15
  StreamingMarkdown,
15
16
  __testSplitRawDiffSections,
17
+ __testWrapInlineMarkdownRows,
16
18
  splitStreamingMarkdownForRender,
17
19
  useInMessageResponse
18
20
  };
@@ -1,84 +1,9 @@
1
1
  import {
2
- WheelAccelerator
3
- } from "../../chunk-PGWW3DVE.js";
4
- import {
5
- useScrollRuntime
6
- } from "../../chunk-LL7LBRDL.js";
7
- import {
8
- isXtermJsTerminal
9
- } from "../../chunk-DICVLZHH.js";
10
-
11
- // src/shell/components/MouseInputRouter.tsx
12
- import {
13
- useWheelInput,
14
- useMouseInput,
15
- useTerminalInput
16
- } from "@linghun/ink-runtime";
17
- import { useCallback, useMemo, useRef } from "react";
18
- function MouseInputRouter({
19
- active,
20
- scroll,
21
- selectionActive = true,
22
- onInput
23
- }) {
24
- const accelerator = useMemo(() => {
25
- const base = Number.parseInt(process.env.LINGHUN_SCROLL_SPEED ?? "1", 10) || 1;
26
- const terminalType = isXtermJsTerminal() ? "xterm.js" : "native";
27
- return new WheelAccelerator({ base, terminalType });
28
- }, []);
29
- const scrollRef = useRef(scroll);
30
- scrollRef.current = scroll;
31
- const dispatchScroll = useCallback(
32
- (delta) => {
33
- onInput({ type: "transcript-scroll", delta });
34
- },
35
- [onInput]
36
- );
37
- const accumulateScroll = useScrollRuntime(dispatchScroll);
38
- useWheelInput(
39
- useCallback(
40
- (event) => {
41
- const step = accelerator.recordEvent(Date.now(), event.direction, scrollRef.current?.viewportHeight);
42
- if (step !== 0) {
43
- accumulateScroll(event.direction === "up" ? step : -step);
44
- }
45
- },
46
- [accelerator, accumulateScroll]
47
- ),
48
- { isActive: active }
49
- );
50
- useMouseInput(
51
- useCallback(
52
- (event) => {
53
- if (!selectionActive) return;
54
- onInput({
55
- type: "transcript-mouse",
56
- event: {
57
- x: Math.max(0, event.x - 1),
58
- y: Math.max(0, event.y - 1),
59
- button: event.button === 0 || event.button === 3 ? "left" : "other",
60
- action: event.action === "press" ? "down" : event.action === "release" ? "up" : event.action
61
- }
62
- });
63
- },
64
- [onInput, selectionActive]
65
- ),
66
- { isActive: active }
67
- );
68
- useTerminalInput(
69
- useCallback(
70
- (event) => {
71
- if (event.kind !== "terminal-response") return;
72
- if (event.response !== "\x1B[O") return;
73
- if (!selectionActive) return;
74
- onInput({ type: "transcript-mouse", event: { x: 0, y: 0, button: "left", action: "focus-out" } });
75
- },
76
- [onInput, selectionActive]
77
- ),
78
- { isActive: active }
79
- );
80
- return null;
81
- }
2
+ MouseInputRouter
3
+ } from "../../chunk-X7HMDZZQ.js";
4
+ import "../../chunk-PGWW3DVE.js";
5
+ import "../../chunk-LL7LBRDL.js";
6
+ import "../../chunk-DICVLZHH.js";
82
7
  export {
83
8
  MouseInputRouter
84
9
  };
@@ -1 +1 @@
1
- {"version":3,"file":"OutputLine.d.ts","sourceRoot":"","sources":["../../../src/shell/components/OutputLine.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAkB,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,UAAU,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAC9B,CAAC;AAEF,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,OAAO,EACP,OAAO,EACP,SAAS,EACT,WAAkB,EAClB,KAAK,EACL,aAAa,EACb,QAAkB,GACnB,EAAE,eAAe,GAAG,KAAK,CAAC,SAAS,CA6BnC"}
1
+ {"version":3,"file":"OutputLine.d.ts","sourceRoot":"","sources":["../../../src/shell/components/OutputLine.tsx"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAkB,MAAM,OAAO,CAAC;AAGvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAI9C,KAAK,eAAe,GAAG;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,EAAE,UAAU,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAC9B,CAAC;AAEF,wBAAgB,UAAU,CAAC,EACzB,OAAO,EACP,OAAO,EACP,OAAO,EACP,SAAS,EACT,WAAkB,EAClB,KAAK,EACL,aAAa,EACb,QAAkB,GACnB,EAAE,eAAe,GAAG,KAAK,CAAC,SAAS,CA8BnC"}
@@ -10,6 +10,7 @@ import {
10
10
  import { Box, Text } from "@linghun/ink-runtime";
11
11
  import { useMemo } from "react";
12
12
  import { jsx } from "react/jsx-runtime";
13
+ var OUTPUT_LINE_PADDING_LEFT = 2;
13
14
  function OutputLine({
14
15
  content,
15
16
  verbose,
@@ -20,18 +21,19 @@ function OutputLine({
20
21
  terminalWidth,
21
22
  language = "zh-CN"
22
23
  }) {
24
+ const contentWidth = Math.max(8, terminalWidth - OUTPUT_LINE_PADDING_LEFT);
23
25
  const formattedContent = useMemo(() => {
24
26
  let formatted = tryJsonFormatContent(content);
25
27
  if (linkifyUrls) {
26
28
  formatted = linkifyUrlsInText(formatted);
27
29
  }
28
30
  if (!verbose) {
29
- formatted = renderTruncatedContent(formatted, terminalWidth, language);
31
+ formatted = renderTruncatedContent(formatted, contentWidth, language);
30
32
  }
31
33
  return formatted;
32
- }, [content, verbose, linkifyUrls, terminalWidth, language]);
34
+ }, [content, verbose, linkifyUrls, contentWidth, language]);
33
35
  const color = isError ? theme.error : isWarning ? theme.warning : void 0;
34
- return /* @__PURE__ */ jsx(Box, { paddingLeft: 2, children: /* @__PURE__ */ jsx(Text, { color, children: formattedContent }) });
36
+ return /* @__PURE__ */ jsx(Box, { paddingLeft: OUTPUT_LINE_PADDING_LEFT, children: /* @__PURE__ */ jsx(Text, { color, children: formattedContent }) });
35
37
  }
36
38
  export {
37
39
  OutputLine
@@ -1 +1 @@
1
- {"version":3,"file":"ProductBlock.d.ts","sourceRoot":"","sources":["../../../src/shell/components/ProductBlock.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAoB,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAgE3E,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAkB,GACnB,EAAE;IACD,KAAK,EAAE,qBAAqB,CAAC;IAC7B,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAC9B,GAAG,KAAK,CAAC,SAAS,CAiPlB"}
1
+ {"version":3,"file":"ProductBlock.d.ts","sourceRoot":"","sources":["../../../src/shell/components/ProductBlock.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,KAAK,UAAU,EAAmB,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAoB,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAoE3E,wBAAgB,YAAY,CAAC,EAC3B,KAAK,EACL,KAAK,EACL,KAAK,EACL,QAAkB,GACnB,EAAE;IACD,KAAK,EAAE,qBAAqB,CAAC;IAC7B,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAC9B,GAAG,KAAK,CAAC,SAAS,CAuPlB"}
@@ -1,12 +1,12 @@
1
1
  import {
2
2
  ProductBlock
3
- } from "../../chunk-M4AIK2SP.js";
4
- import "../../chunk-L5GOCMZP.js";
3
+ } from "../../chunk-Z265MCGC.js";
5
4
  import "../../chunk-MOJL4X4L.js";
6
- import "../../chunk-DTK5NBTV.js";
7
- import "../../chunk-F43AMWLZ.js";
5
+ import "../../chunk-4BFCUJX6.js";
6
+ import "../../chunk-PDTJVJVD.js";
7
+ import "../../chunk-L5GOCMZP.js";
8
8
  import "../../chunk-GC55DMZV.js";
9
- import "../../chunk-APJIC2O5.js";
9
+ import "../../chunk-GTIZNO5O.js";
10
10
  export {
11
11
  ProductBlock
12
12
  };
@@ -1,86 +1,7 @@
1
1
  import {
2
- computeScrollViewportOffset
3
- } from "../../chunk-JPXSFZFC.js";
4
-
5
- // src/shell/components/ScrollViewport.tsx
6
- import { Box } from "@linghun/ink-runtime";
7
- import { useEffect, useRef, useState } from "react";
8
- import { jsx } from "react/jsx-runtime";
9
- function TranscriptViewport({
10
- scroll,
11
- virtualRange,
12
- onOverflowChange,
13
- onMeasure,
14
- onGeometry,
15
- children
16
- }) {
17
- const viewportRef = useRef(null);
18
- const contentRef = useRef(null);
19
- const [maxOffset, setMaxOffset] = useState(0);
20
- const maxOffsetRef = useRef(0);
21
- const lastReportedOverflow = useRef(void 0);
22
- const lastReportedMeasure = useRef(void 0);
23
- const lastReportedGeometry = useRef(void 0);
24
- const lastDimKey = useRef("");
25
- useEffect(() => {
26
- const viewportNode = viewportRef.current?.yogaNode;
27
- const contentNode = contentRef.current?.yogaNode;
28
- if (!viewportNode || !contentNode) return;
29
- const viewportHeight = viewportNode.getComputedHeight();
30
- const viewportWidth = viewportNode.getComputedWidth();
31
- const measuredContentHeight = contentNode.getComputedHeight();
32
- const contentHeight = virtualRange?.estimatedContentHeight ?? measuredContentHeight;
33
- const dimKey = `${viewportHeight}:${contentHeight}`;
34
- if (dimKey === lastDimKey.current) return;
35
- lastDimKey.current = dimKey;
36
- const nextMax = Math.max(0, Math.floor(contentHeight - viewportHeight));
37
- const nextOffset = computeScrollViewportOffset(nextMax, scroll);
38
- const measureKey = `${viewportHeight}:${contentHeight}`;
39
- if (onMeasure && lastReportedMeasure.current !== measureKey) {
40
- lastReportedMeasure.current = measureKey;
41
- onMeasure({ viewportHeight, contentHeight });
42
- }
43
- if (onGeometry) {
44
- const origin = computeAbsolutePosition(viewportRef.current);
45
- const geometry = {
46
- x: Math.floor(origin.x),
47
- y: Math.floor(origin.y),
48
- width: Math.floor(viewportWidth),
49
- height: Math.floor(viewportHeight),
50
- contentHeight: Math.floor(contentHeight),
51
- topOffset: nextOffset.topOffset
52
- };
53
- const geometryKey = `${geometry.x}:${geometry.y}:${geometry.width}:${geometry.height}:${geometry.contentHeight}:${geometry.topOffset}`;
54
- if (lastReportedGeometry.current !== geometryKey) {
55
- lastReportedGeometry.current = geometryKey;
56
- onGeometry(geometry);
57
- }
58
- }
59
- if (maxOffsetRef.current !== nextMax) {
60
- maxOffsetRef.current = nextMax;
61
- setMaxOffset(nextMax);
62
- }
63
- const hasOverflow = nextMax > 0;
64
- if (onOverflowChange && lastReportedOverflow.current !== hasOverflow) {
65
- lastReportedOverflow.current = hasOverflow;
66
- onOverflowChange(hasOverflow);
67
- }
68
- });
69
- const { marginTop } = computeScrollViewportOffset(maxOffset, scroll);
70
- const contentMarginTop = virtualRange && virtualRange.estimatedContentHeight > 0 ? marginTop + virtualRange.topSpacer : marginTop;
71
- return /* @__PURE__ */ jsx(Box, { ref: viewportRef, flexDirection: "column", flexGrow: 1, minHeight: 0, overflow: "hidden", children: /* @__PURE__ */ jsx(Box, { ref: contentRef, flexDirection: "column", flexShrink: 0, marginTop: contentMarginTop, children }) });
72
- }
73
- function computeAbsolutePosition(node) {
74
- let current = node ?? void 0;
75
- let x = 0;
76
- let y = 0;
77
- while (current?.yogaNode) {
78
- x += current.yogaNode.getComputedLeft();
79
- y += current.yogaNode.getComputedTop();
80
- current = current.parentNode;
81
- }
82
- return { x, y };
83
- }
2
+ TranscriptViewport
3
+ } from "../../chunk-YQNK7HK3.js";
4
+ import "../../chunk-JPXSFZFC.js";
84
5
  export {
85
6
  TranscriptViewport
86
7
  };
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  SessionsPanel
3
- } from "../../chunk-YH6UIHNF.js";
3
+ } from "../../chunk-4QWCNMP6.js";
4
4
  import "../../chunk-GC55DMZV.js";
5
- import "../../chunk-APJIC2O5.js";
5
+ import "../../chunk-GTIZNO5O.js";
6
6
  export {
7
7
  SessionsPanel
8
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ShellApp.d.ts","sourceRoot":"","sources":["../../../src/shell/components/ShellApp.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,KAAK,EAAE,eAAe,EAAoC,MAAM,aAAa,CAAC;AAoBrF,wBAAgB,QAAQ,CAAC,EACvB,UAAU,EACV,UAAU,GACX,EAAE;IACD,UAAU,EAAE,eAAe,CAAC;IAC5B,UAAU,EAAE,kBAAkB,CAAC;CAChC,GAAG,KAAK,CAAC,SAAS,CA+DlB"}
1
+ {"version":3,"file":"ShellApp.d.ts","sourceRoot":"","sources":["../../../src/shell/components/ShellApp.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,KAAK,EAAE,eAAe,EAAoC,MAAM,aAAa,CAAC;AAqBrF,wBAAgB,QAAQ,CAAC,EACvB,UAAU,EACV,UAAU,GACX,EAAE;IACD,UAAU,EAAE,eAAe,CAAC;IAC5B,UAAU,EAAE,kBAAkB,CAAC;CAChC,GAAG,KAAK,CAAC,SAAS,CAoElB"}
@@ -1,45 +1,50 @@
1
1
  import {
2
2
  ShellApp
3
- } from "../../chunk-N7G2X2LK.js";
4
- import "../../chunk-KO64OFSG.js";
5
- import "../../chunk-SOPYWTFV.js";
6
- import "../../chunk-6RJVTUWI.js";
7
- import "../../chunk-JGDIO2NF.js";
8
- import "../../chunk-CRQORMFF.js";
3
+ } from "../../chunk-QD4SCW4A.js";
4
+ import "../../chunk-RRUI3VWQ.js";
5
+ import "../../chunk-T6UOCF5D.js";
6
+ import "../../chunk-UO3KYTBU.js";
7
+ import "../../chunk-X37FSYAX.js";
9
8
  import "../../chunk-SQIBPLLV.js";
9
+ import "../../chunk-7C6T7RKJ.js";
10
10
  import "../../chunk-JLCPHVBN.js";
11
- import "../../chunk-M4AIK2SP.js";
12
- import "../../chunk-L5GOCMZP.js";
13
- import "../../chunk-YH6UIHNF.js";
14
- import "../../chunk-F6TVBCZV.js";
15
- import "../../chunk-UOHZQIVL.js";
16
- import "../../chunk-ZOSK2UEU.js";
11
+ import "../../chunk-Z265MCGC.js";
12
+ import "../../chunk-YQNK7HK3.js";
13
+ import "../../chunk-4QWCNMP6.js";
14
+ import "../../chunk-BBK5BA5C.js";
17
15
  import "../../chunk-JBLVBO3U.js";
18
- import "../../chunk-GW5YDCRZ.js";
19
- import "../../chunk-HW2TBXVK.js";
20
- import "../../chunk-VCSRBS47.js";
16
+ import "../../chunk-TY4KIVA6.js";
17
+ import "../../chunk-OPVRII63.js";
18
+ import "../../chunk-JLAJZPOC.js";
21
19
  import "../../chunk-MOJL4X4L.js";
22
- import "../../chunk-D3UTL2QX.js";
23
- import "../../chunk-DTK5NBTV.js";
24
- import "../../chunk-F43AMWLZ.js";
25
- import "../../chunk-TJLC3QAS.js";
26
- import "../../chunk-6CI6TKLN.js";
20
+ import "../../chunk-ATY7WBIT.js";
21
+ import "../../chunk-4BFCUJX6.js";
22
+ import "../../chunk-PDTJVJVD.js";
23
+ import "../../chunk-L5GOCMZP.js";
24
+ import "../../chunk-X7HMDZZQ.js";
25
+ import "../../chunk-PGWW3DVE.js";
26
+ import "../../chunk-LL7LBRDL.js";
27
+ import "../../chunk-36ZWUJQS.js";
28
+ import "../../chunk-JAVRQ3LM.js";
29
+ import "../../chunk-LWW2IAFC.js";
30
+ import "../../chunk-GXFYUZAM.js";
27
31
  import "../../chunk-F46N43MG.js";
28
32
  import "../../chunk-CFMSB6ST.js";
29
33
  import "../../chunk-XFPNU42I.js";
30
34
  import "../../chunk-P4CPRJLI.js";
31
35
  import "../../chunk-YPQFSFYK.js";
36
+ import "../../chunk-JPXSFZFC.js";
32
37
  import "../../chunk-TFZEFIQT.js";
33
38
  import "../../chunk-GC55DMZV.js";
34
39
  import "../../chunk-DICVLZHH.js";
35
- import "../../chunk-4K6UB524.js";
40
+ import "../../chunk-IPZZGDUU.js";
36
41
  import "../../chunk-RBOQJFIZ.js";
37
- import "../../chunk-KI7C6ZOD.js";
42
+ import "../../chunk-VIJ7GDKI.js";
38
43
  import "../../chunk-PGNALDEH.js";
39
44
  import "../../chunk-6SMM5CMP.js";
40
45
  import "../../chunk-K4FSYBSY.js";
41
- import "../../chunk-OMZYPQVA.js";
42
- import "../../chunk-APJIC2O5.js";
46
+ import "../../chunk-UGYFQF6M.js";
47
+ import "../../chunk-GTIZNO5O.js";
43
48
  export {
44
49
  ShellApp
45
50
  };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  SlashSuggestions
3
- } from "../../chunk-HW2TBXVK.js";
4
- import "../../chunk-APJIC2O5.js";
3
+ } from "../../chunk-OPVRII63.js";
4
+ import "../../chunk-GTIZNO5O.js";
5
5
  export {
6
6
  SlashSuggestions
7
7
  };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  StatusFooter
3
- } from "../../chunk-SOPYWTFV.js";
4
- import "../../chunk-APJIC2O5.js";
3
+ } from "../../chunk-RRUI3VWQ.js";
4
+ import "../../chunk-GTIZNO5O.js";
5
5
  export {
6
6
  StatusFooter
7
7
  };
@@ -1 +1 @@
1
- {"version":3,"file":"StatusTray.d.ts","sourceRoot":"","sources":["../../../src/shell/components/StatusTray.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,KAAK,EACL,KAAK,GACN,EAAE;IACD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,KAAK,CAAC,SAAS,CAUlB"}
1
+ {"version":3,"file":"StatusTray.d.ts","sourceRoot":"","sources":["../../../src/shell/components/StatusTray.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,wBAAgB,UAAU,CAAC,EACzB,MAAM,EACN,KAAK,EACL,KAAK,GACN,EAAE;IACD,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,GAAG,KAAK,CAAC,SAAS,CAYlB"}
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  StatusTray
3
- } from "../../chunk-6RJVTUWI.js";
3
+ } from "../../chunk-T6UOCF5D.js";
4
+ import "../../chunk-GTIZNO5O.js";
4
5
  export {
5
6
  StatusTray
6
7
  };
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  StructuredDiff
3
- } from "../../chunk-F43AMWLZ.js";
4
- import "../../chunk-APJIC2O5.js";
3
+ } from "../../chunk-PDTJVJVD.js";
4
+ import "../../chunk-GTIZNO5O.js";
5
5
  export {
6
6
  StructuredDiff
7
7
  };
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  TaskListView
3
- } from "../../chunk-JGDIO2NF.js";
3
+ } from "../../chunk-UO3KYTBU.js";
4
4
  import "../../chunk-GC55DMZV.js";
5
5
  import "../../chunk-RBOQJFIZ.js";
6
- import "../../chunk-APJIC2O5.js";
6
+ import "../../chunk-GTIZNO5O.js";
7
7
  export {
8
8
  TaskListView
9
9
  };
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  TaskSuggestionBar
3
- } from "../../chunk-CRQORMFF.js";
3
+ } from "../../chunk-X37FSYAX.js";
4
4
  import "../../chunk-GC55DMZV.js";
5
- import "../../chunk-APJIC2O5.js";
5
+ import "../../chunk-GTIZNO5O.js";
6
6
  export {
7
7
  TaskSuggestionBar
8
8
  };
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  WorkflowProgressView
3
- } from "../../chunk-KO64OFSG.js";
3
+ } from "../../chunk-7C6T7RKJ.js";
4
4
  import "../../chunk-GC55DMZV.js";
5
5
  import "../../chunk-RBOQJFIZ.js";
6
- import "../../chunk-APJIC2O5.js";
6
+ import "../../chunk-GTIZNO5O.js";
7
7
  export {
8
8
  WorkflowProgressView
9
9
  };
@@ -9,20 +9,17 @@ import type { TerminalCapability } from "../terminal-capability.js";
9
9
  * position via Ink's useCursor.
10
10
  *
11
11
  * Cursor write timing:
12
- * - desiredPosition is computed in render phase from anchorRef.current,
13
- * parent-chain yoga layout, and hasMeasured.
14
- * - setCursorPosition(desiredPosition) is called directly in render phase.
15
- * It is safe to do so because Ink's useCursor's setCursorPosition is
16
- * a useCallback that only writes a ref; the actual commit happens inside
17
- * useCursor's own useInsertionEffect at commit time. Writing during render
18
- * ensures the latest desired position is committed without an effect lag.
12
+ * - render passes the last committed post-layout position to Ink.
13
+ * - useLayoutEffect recomputes the absolute parent-chain origin after Yoga
14
+ * commits layout, then schedules a second render only when the position
15
+ * changed. This catches parent movement from home centering, task bottom
16
+ * pinning, soft wrapping, and terminal resize.
19
17
  * - When the terminal cannot reliably position the cursor, when the layout
20
18
  * has not been measured yet, or when the parent chain cannot resolve, we
21
19
  * pass undefined (cursor hidden). No fake inverse-text cursor.
22
20
  *
23
21
  * useBoxMetrics is observed only to:
24
- * - trigger re-runs when layout/resize/sibling content changes
25
- * - gate first-frame readiness via hasMeasured
22
+ * - trigger re-runs when anchor layout/resize changes
26
23
  * Its left/top values are never used as absolute coordinates.
27
24
  */
28
25
  export declare function useAnchoredCursor(declared: {
@@ -1 +1 @@
1
- {"version":3,"file":"useAnchoredCursor.d.ts","sourceRoot":"","sources":["../../../src/shell/components/useAnchoredCursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAA4B,MAAM,sBAAsB,CAAC;AACjF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AA+BpE;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EAC7C,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,EAC7C,UAAU,EAAE,kBAAkB,GAC7B,IAAI,CAiCN"}
1
+ {"version":3,"file":"useAnchoredCursor.d.ts","sourceRoot":"","sources":["../../../src/shell/components/useAnchoredCursor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAA4B,MAAM,sBAAsB,CAAC;AAEjF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AA+BpE;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,EAC7C,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,UAAU,GAAG,IAAI,CAAC,EAC7C,UAAU,EAAE,kBAAkB,GAC7B,IAAI,CAmBN"}
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useAnchoredCursor
3
- } from "../../chunk-GW5YDCRZ.js";
3
+ } from "../../chunk-TY4KIVA6.js";
4
4
  export {
5
5
  useAnchoredCursor
6
6
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ink-renderer.d.ts","sourceRoot":"","sources":["../../src/shell/ink-renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAItD,OAAO,EAAE,KAAK,kBAAkB,EAA4B,MAAM,0BAA0B,CAAC;AAS7F,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEtE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,oBAAoB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,CAY5E;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,eAAe,EAC3B,OAAO,GAAE,kBAAuB,GAC/B,gBAAgB,CAuIlB;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAS9E;AAMD,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,wCAAwC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"ink-renderer.d.ts","sourceRoot":"","sources":["../../src/shell/ink-renderer.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAItD,OAAO,EAAE,KAAK,kBAAkB,EAA4B,MAAM,0BAA0B,CAAC;AAS7F,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEtE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,oBAAoB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C,CAAC;AAIF,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,CAY5E;AAED,wBAAgB,cAAc,CAC5B,UAAU,EAAE,eAAe,EAC3B,OAAO,GAAE,kBAAuB,GAC/B,gBAAgB,CAwIlB;AAED,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,kBAAkB,GAAG,OAAO,CAQ9E;AAsBD,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAED,wCAAwC;AACxC,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,YAAY,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC"}