@deepseek-harness-tui/dsh-tui 0.11.1 → 0.11.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 (427) hide show
  1. package/README.md +50 -20
  2. package/assets/whale-girl/whale-girl-dark.png +0 -0
  3. package/assets/whale-girl/whale-girl-happy.png +0 -0
  4. package/assets/whale-girl/whale-girl.png +0 -0
  5. package/bin/dsh-tui.js +63 -3
  6. package/cordis.patch.yml +39 -17
  7. package/cordis.yml +3 -2
  8. package/lib/settings.json +1272 -0
  9. package/lib/types/adapter/channel/ui-policy.d.ts +9 -2
  10. package/lib/types/adapter/channel/ui-policy.d.ts.map +1 -1
  11. package/lib/types/adapter/channel/ui-policy.js +13 -0
  12. package/lib/types/adapter/kernel/replay.d.ts.map +1 -1
  13. package/lib/types/adapter/kernel/replay.js +2 -0
  14. package/lib/types/adapter/ports/channel-display.d.ts +12 -0
  15. package/lib/types/adapter/ports/channel-display.d.ts.map +1 -1
  16. package/lib/types/adapter/ports/channel-session.d.ts +38 -0
  17. package/lib/types/adapter/ports/channel-session.d.ts.map +1 -1
  18. package/lib/types/adapter/ports/channel-settings.d.ts +12 -0
  19. package/lib/types/adapter/ports/channel-settings.d.ts.map +1 -1
  20. package/lib/types/adapter/ports/channel-ui.d.ts +46 -4
  21. package/lib/types/adapter/ports/channel-ui.d.ts.map +1 -1
  22. package/lib/types/adapter/ports/channel-view.d.ts +43 -0
  23. package/lib/types/adapter/ports/channel-view.d.ts.map +1 -1
  24. package/lib/types/commands.d.ts.map +1 -1
  25. package/lib/types/commands.js +2 -0
  26. package/lib/types/components/BalanceReportRow.d.ts +10 -2
  27. package/lib/types/components/BalanceReportRow.d.ts.map +1 -1
  28. package/lib/types/components/BalanceReportRow.js +18 -4
  29. package/lib/types/components/CompactionStatusRow.d.ts +24 -0
  30. package/lib/types/components/CompactionStatusRow.d.ts.map +1 -0
  31. package/lib/types/components/CompactionStatusRow.js +72 -0
  32. package/lib/types/components/GoalTodoPanel.js +2 -2
  33. package/lib/types/components/HelpMenu.d.ts +2 -2
  34. package/lib/types/components/HelpMenu.d.ts.map +1 -1
  35. package/lib/types/components/HelpMenu.js +5 -4
  36. package/lib/types/components/InlineMathParagraph.d.ts +22 -0
  37. package/lib/types/components/InlineMathParagraph.d.ts.map +1 -0
  38. package/lib/types/components/InlineMathParagraph.js +178 -0
  39. package/lib/types/components/LogoV2.d.ts +41 -3
  40. package/lib/types/components/LogoV2.d.ts.map +1 -1
  41. package/lib/types/components/LogoV2.js +148 -24
  42. package/lib/types/components/Markdown.d.ts +10 -3
  43. package/lib/types/components/Markdown.d.ts.map +1 -1
  44. package/lib/types/components/Markdown.js +47 -14
  45. package/lib/types/components/MathBlock.d.ts +13 -0
  46. package/lib/types/components/MathBlock.d.ts.map +1 -0
  47. package/lib/types/components/MathBlock.js +136 -0
  48. package/lib/types/components/MessageList.d.ts +10 -1
  49. package/lib/types/components/MessageList.d.ts.map +1 -1
  50. package/lib/types/components/MessageList.js +13 -4
  51. package/lib/types/components/MigratePicker.d.ts +30 -0
  52. package/lib/types/components/MigratePicker.d.ts.map +1 -0
  53. package/lib/types/components/MigratePicker.js +38 -0
  54. package/lib/types/components/PromptInput.d.ts +17 -0
  55. package/lib/types/components/PromptInput.d.ts.map +1 -1
  56. package/lib/types/components/PromptInput.js +48 -7
  57. package/lib/types/components/SplitDiffView.d.ts.map +1 -1
  58. package/lib/types/components/SplitDiffView.js +2 -1
  59. package/lib/types/components/StarPrompt.d.ts +53 -0
  60. package/lib/types/components/StarPrompt.d.ts.map +1 -0
  61. package/lib/types/components/StarPrompt.js +281 -0
  62. package/lib/types/components/StreamingMarkdown.d.ts.map +1 -1
  63. package/lib/types/components/StreamingMarkdown.js +20 -3
  64. package/lib/types/components/TimelineRail.d.ts.map +1 -1
  65. package/lib/types/components/TimelineRail.js +9 -1
  66. package/lib/types/components/Whale.d.ts +17 -8
  67. package/lib/types/components/Whale.d.ts.map +1 -1
  68. package/lib/types/components/Whale.js +25 -15
  69. package/lib/types/components/WhaleGirl.d.ts +29 -0
  70. package/lib/types/components/WhaleGirl.d.ts.map +1 -0
  71. package/lib/types/components/WhaleGirl.js +32 -0
  72. package/lib/types/components/WorkingSpinner.d.ts +4 -1
  73. package/lib/types/components/WorkingSpinner.d.ts.map +1 -1
  74. package/lib/types/components/WorkingSpinner.js +2 -2
  75. package/lib/types/components/bigfont.d.ts +47 -18
  76. package/lib/types/components/bigfont.d.ts.map +1 -1
  77. package/lib/types/components/bigfont.js +55 -40
  78. package/lib/types/components/design-system/ThemeProvider.d.ts +6 -0
  79. package/lib/types/components/design-system/ThemeProvider.d.ts.map +1 -1
  80. package/lib/types/components/design-system/ThemeProvider.js +40 -1
  81. package/lib/types/components/maidPortrait.d.ts +44 -0
  82. package/lib/types/components/maidPortrait.d.ts.map +1 -0
  83. package/lib/types/components/maidPortrait.js +178 -0
  84. package/lib/types/components/mathPreview.d.ts +25 -0
  85. package/lib/types/components/mathPreview.d.ts.map +1 -0
  86. package/lib/types/components/mathPreview.js +48 -0
  87. package/lib/types/components/messages/AssistantThinkingMessage.d.ts.map +1 -1
  88. package/lib/types/components/messages/AssistantThinkingMessage.js +2 -1
  89. package/lib/types/components/messages/AssistantToolUseMessage.d.ts.map +1 -1
  90. package/lib/types/components/messages/AssistantToolUseMessage.js +3 -2
  91. package/lib/types/components/messages/TranscriptImages.d.ts.map +1 -1
  92. package/lib/types/components/messages/TranscriptImages.js +11 -1
  93. package/lib/types/components/questions/AskUserQuestionPanel.d.ts +14 -2
  94. package/lib/types/components/questions/AskUserQuestionPanel.d.ts.map +1 -1
  95. package/lib/types/components/questions/AskUserQuestionPanel.js +80 -38
  96. package/lib/types/components/questions/PlanReviewPanel.d.ts.map +1 -1
  97. package/lib/types/components/questions/PlanReviewPanel.js +3 -3
  98. package/lib/types/components/sessions/ForeignSessionRow.d.ts +34 -0
  99. package/lib/types/components/sessions/ForeignSessionRow.d.ts.map +1 -0
  100. package/lib/types/components/sessions/ForeignSessionRow.js +43 -0
  101. package/lib/types/components/sessions/SourceTabs.d.ts +52 -0
  102. package/lib/types/components/sessions/SourceTabs.d.ts.map +1 -0
  103. package/lib/types/components/sessions/SourceTabs.js +70 -0
  104. package/lib/types/components/splashEggs.d.ts +56 -0
  105. package/lib/types/components/splashEggs.d.ts.map +1 -0
  106. package/lib/types/components/splashEggs.js +67 -0
  107. package/lib/types/components/splashFonts.d.ts +119 -0
  108. package/lib/types/components/splashFonts.d.ts.map +1 -0
  109. package/lib/types/components/splashFonts.js +267 -0
  110. package/lib/types/components/splashLayout.d.ts +41 -0
  111. package/lib/types/components/splashLayout.d.ts.map +1 -0
  112. package/lib/types/components/splashLayout.js +40 -0
  113. package/lib/types/components/whaleGirlSprite.d.ts +17 -0
  114. package/lib/types/components/whaleGirlSprite.d.ts.map +1 -0
  115. package/lib/types/components/whaleGirlSprite.js +47 -0
  116. package/lib/types/deepseekPricing.d.ts +74 -0
  117. package/lib/types/deepseekPricing.d.ts.map +1 -1
  118. package/lib/types/deepseekPricing.js +110 -11
  119. package/lib/types/dsh-adapter/channel/action-readiness.d.ts +1 -1
  120. package/lib/types/dsh-adapter/channel/action-readiness.d.ts.map +1 -1
  121. package/lib/types/dsh-adapter/channel/action-readiness.js +6 -1
  122. package/lib/types/dsh-adapter/channel/background-action.d.ts +1 -0
  123. package/lib/types/dsh-adapter/channel/background-action.d.ts.map +1 -1
  124. package/lib/types/dsh-adapter/channel/background-action.js +1 -0
  125. package/lib/types/dsh-adapter/channel/binding-events.d.ts +8 -9
  126. package/lib/types/dsh-adapter/channel/binding-events.d.ts.map +1 -1
  127. package/lib/types/dsh-adapter/channel/binding-events.js +69 -21
  128. package/lib/types/dsh-adapter/channel/compaction.d.ts +2 -1
  129. package/lib/types/dsh-adapter/channel/compaction.d.ts.map +1 -1
  130. package/lib/types/dsh-adapter/channel/compaction.js +35 -2
  131. package/lib/types/dsh-adapter/channel/local-actions.d.ts.map +1 -1
  132. package/lib/types/dsh-adapter/channel/local-actions.js +6 -1
  133. package/lib/types/dsh-adapter/channel/model-switch.d.ts.map +1 -1
  134. package/lib/types/dsh-adapter/channel/model-switch.js +5 -1
  135. package/lib/types/dsh-adapter/channel/paths.d.ts.map +1 -1
  136. package/lib/types/dsh-adapter/channel/paths.js +7 -1
  137. package/lib/types/dsh-adapter/channel/preferences.d.ts +1 -1
  138. package/lib/types/dsh-adapter/channel/preferences.d.ts.map +1 -1
  139. package/lib/types/dsh-adapter/channel/preferences.js +16 -0
  140. package/lib/types/dsh-adapter/channel/projection.d.ts +1 -2
  141. package/lib/types/dsh-adapter/channel/projection.d.ts.map +1 -1
  142. package/lib/types/dsh-adapter/channel/projection.js +127 -17
  143. package/lib/types/dsh-adapter/channel/question-record.d.ts +76 -0
  144. package/lib/types/dsh-adapter/channel/question-record.d.ts.map +1 -0
  145. package/lib/types/dsh-adapter/channel/question-record.js +107 -0
  146. package/lib/types/dsh-adapter/channel/session-lineage.d.ts +42 -0
  147. package/lib/types/dsh-adapter/channel/session-lineage.d.ts.map +1 -0
  148. package/lib/types/dsh-adapter/channel/session-lineage.js +51 -0
  149. package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts +2 -0
  150. package/lib/types/dsh-adapter/channel/session-live-adoption.d.ts.map +1 -1
  151. package/lib/types/dsh-adapter/channel/session-live-adoption.js +9 -3
  152. package/lib/types/dsh-adapter/channel/session-metadata.d.ts +2 -1
  153. package/lib/types/dsh-adapter/channel/session-metadata.d.ts.map +1 -1
  154. package/lib/types/dsh-adapter/channel/session-metadata.js +39 -7
  155. package/lib/types/dsh-adapter/channel/session-reset.d.ts +1 -1
  156. package/lib/types/dsh-adapter/channel/session-reset.d.ts.map +1 -1
  157. package/lib/types/dsh-adapter/channel/session-reset.js +7 -0
  158. package/lib/types/dsh-adapter/channel/session-resume.d.ts +1 -0
  159. package/lib/types/dsh-adapter/channel/session-resume.d.ts.map +1 -1
  160. package/lib/types/dsh-adapter/channel/session-resume.js +4 -2
  161. package/lib/types/dsh-adapter/channel/settings-host.d.ts.map +1 -1
  162. package/lib/types/dsh-adapter/channel/settings-host.js +8 -0
  163. package/lib/types/dsh-adapter/channel/state.d.ts +14 -1
  164. package/lib/types/dsh-adapter/channel/state.d.ts.map +1 -1
  165. package/lib/types/dsh-adapter/channel/state.js +6 -1
  166. package/lib/types/dsh-adapter/channel/subagent-projection.d.ts +30 -35
  167. package/lib/types/dsh-adapter/channel/subagent-projection.d.ts.map +1 -1
  168. package/lib/types/dsh-adapter/channel/subagent-projection.js +138 -4
  169. package/lib/types/dsh-adapter/channel/types.d.ts +1 -1
  170. package/lib/types/dsh-adapter/channel/types.d.ts.map +1 -1
  171. package/lib/types/dsh-adapter/channel.d.ts.map +1 -1
  172. package/lib/types/dsh-adapter/channel.js +19 -4
  173. package/lib/types/dsh-adapter/compat/messages.d.ts +6 -0
  174. package/lib/types/dsh-adapter/compat/messages.d.ts.map +1 -1
  175. package/lib/types/dsh-adapter/compat/messages.js +9 -0
  176. package/lib/types/dsh-adapter/contract.d.ts +5 -5
  177. package/lib/types/dsh-adapter/contract.d.ts.map +1 -1
  178. package/lib/types/dsh-adapter/contract.js +8 -6
  179. package/lib/types/dsh-adapter/index.d.ts +36 -1
  180. package/lib/types/dsh-adapter/index.d.ts.map +1 -1
  181. package/lib/types/dsh-adapter/index.js +22 -6
  182. package/lib/types/dsh-adapter/migrate/adapters/claude-code.d.ts +3 -0
  183. package/lib/types/dsh-adapter/migrate/adapters/claude-code.d.ts.map +1 -0
  184. package/lib/types/dsh-adapter/migrate/adapters/claude-code.js +131 -0
  185. package/lib/types/dsh-adapter/migrate/adapters/claude-code.parse.d.ts +17 -0
  186. package/lib/types/dsh-adapter/migrate/adapters/claude-code.parse.d.ts.map +1 -0
  187. package/lib/types/dsh-adapter/migrate/adapters/claude-code.parse.js +329 -0
  188. package/lib/types/dsh-adapter/migrate/adapters/codex.d.ts +3 -0
  189. package/lib/types/dsh-adapter/migrate/adapters/codex.d.ts.map +1 -0
  190. package/lib/types/dsh-adapter/migrate/adapters/codex.js +102 -0
  191. package/lib/types/dsh-adapter/migrate/adapters/codex.parse.d.ts +16 -0
  192. package/lib/types/dsh-adapter/migrate/adapters/codex.parse.d.ts.map +1 -0
  193. package/lib/types/dsh-adapter/migrate/adapters/codex.parse.js +289 -0
  194. package/lib/types/dsh-adapter/migrate/adapters/grok-build.d.ts +3 -0
  195. package/lib/types/dsh-adapter/migrate/adapters/grok-build.d.ts.map +1 -0
  196. package/lib/types/dsh-adapter/migrate/adapters/grok-build.js +117 -0
  197. package/lib/types/dsh-adapter/migrate/adapters/grok-build.parse.d.ts +13 -0
  198. package/lib/types/dsh-adapter/migrate/adapters/grok-build.parse.d.ts.map +1 -0
  199. package/lib/types/dsh-adapter/migrate/adapters/grok-build.parse.js +178 -0
  200. package/lib/types/dsh-adapter/migrate/adapters/omp.d.ts +3 -0
  201. package/lib/types/dsh-adapter/migrate/adapters/omp.d.ts.map +1 -0
  202. package/lib/types/dsh-adapter/migrate/adapters/omp.js +133 -0
  203. package/lib/types/dsh-adapter/migrate/adapters/scan-fs.d.ts +60 -0
  204. package/lib/types/dsh-adapter/migrate/adapters/scan-fs.d.ts.map +1 -0
  205. package/lib/types/dsh-adapter/migrate/adapters/scan-fs.js +178 -0
  206. package/lib/types/dsh-adapter/migrate/adapters/scan.d.ts +8 -0
  207. package/lib/types/dsh-adapter/migrate/adapters/scan.d.ts.map +1 -0
  208. package/lib/types/dsh-adapter/migrate/adapters/scan.js +40 -0
  209. package/lib/types/dsh-adapter/migrate/adapters/zcode.d.ts +3 -0
  210. package/lib/types/dsh-adapter/migrate/adapters/zcode.d.ts.map +1 -0
  211. package/lib/types/dsh-adapter/migrate/adapters/zcode.js +93 -0
  212. package/lib/types/dsh-adapter/migrate/adapters/zcode.parse.d.ts +9 -0
  213. package/lib/types/dsh-adapter/migrate/adapters/zcode.parse.d.ts.map +1 -0
  214. package/lib/types/dsh-adapter/migrate/adapters/zcode.parse.js +89 -0
  215. package/lib/types/dsh-adapter/migrate/bin-path.d.ts +6 -0
  216. package/lib/types/dsh-adapter/migrate/bin-path.d.ts.map +1 -0
  217. package/lib/types/dsh-adapter/migrate/bin-path.js +30 -0
  218. package/lib/types/dsh-adapter/migrate/browse.d.ts +42 -0
  219. package/lib/types/dsh-adapter/migrate/browse.d.ts.map +1 -0
  220. package/lib/types/dsh-adapter/migrate/browse.js +90 -0
  221. package/lib/types/dsh-adapter/migrate/cli.d.ts +9 -0
  222. package/lib/types/dsh-adapter/migrate/cli.d.ts.map +1 -0
  223. package/lib/types/dsh-adapter/migrate/cli.js +106 -0
  224. package/lib/types/dsh-adapter/migrate/import-one.d.ts +89 -0
  225. package/lib/types/dsh-adapter/migrate/import-one.d.ts.map +1 -0
  226. package/lib/types/dsh-adapter/migrate/import-one.js +133 -0
  227. package/lib/types/dsh-adapter/migrate/index.d.ts +35 -0
  228. package/lib/types/dsh-adapter/migrate/index.d.ts.map +1 -0
  229. package/lib/types/dsh-adapter/migrate/index.js +107 -0
  230. package/lib/types/dsh-adapter/migrate/parse/injection.d.ts +40 -0
  231. package/lib/types/dsh-adapter/migrate/parse/injection.d.ts.map +1 -0
  232. package/lib/types/dsh-adapter/migrate/parse/injection.js +127 -0
  233. package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts +28 -0
  234. package/lib/types/dsh-adapter/migrate/parse/jsonl.d.ts.map +1 -0
  235. package/lib/types/dsh-adapter/migrate/parse/jsonl.js +40 -0
  236. package/lib/types/dsh-adapter/migrate/parse/role-turns.d.ts +28 -0
  237. package/lib/types/dsh-adapter/migrate/parse/role-turns.d.ts.map +1 -0
  238. package/lib/types/dsh-adapter/migrate/parse/role-turns.js +50 -0
  239. package/lib/types/dsh-adapter/migrate/parse/title.d.ts +18 -0
  240. package/lib/types/dsh-adapter/migrate/parse/title.d.ts.map +1 -0
  241. package/lib/types/dsh-adapter/migrate/parse/title.js +29 -0
  242. package/lib/types/dsh-adapter/migrate/parse/tools.d.ts +62 -0
  243. package/lib/types/dsh-adapter/migrate/parse/tools.d.ts.map +1 -0
  244. package/lib/types/dsh-adapter/migrate/parse/tools.js +110 -0
  245. package/lib/types/dsh-adapter/migrate/picker.d.ts +64 -0
  246. package/lib/types/dsh-adapter/migrate/picker.d.ts.map +1 -0
  247. package/lib/types/dsh-adapter/migrate/picker.js +86 -0
  248. package/lib/types/dsh-adapter/migrate/recent-agents.d.ts +40 -0
  249. package/lib/types/dsh-adapter/migrate/recent-agents.d.ts.map +1 -0
  250. package/lib/types/dsh-adapter/migrate/recent-agents.js +100 -0
  251. package/lib/types/dsh-adapter/migrate/sessionize.d.ts +39 -0
  252. package/lib/types/dsh-adapter/migrate/sessionize.d.ts.map +1 -0
  253. package/lib/types/dsh-adapter/migrate/sessionize.js +271 -0
  254. package/lib/types/dsh-adapter/migrate/types.d.ts +176 -0
  255. package/lib/types/dsh-adapter/migrate/types.d.ts.map +1 -0
  256. package/lib/types/dsh-adapter/migrate/types.js +11 -0
  257. package/lib/types/dsh-adapter/migrate/uuid.d.ts +7 -0
  258. package/lib/types/dsh-adapter/migrate/uuid.d.ts.map +1 -0
  259. package/lib/types/dsh-adapter/migrate/uuid.js +25 -0
  260. package/lib/types/dsh-adapter/plugin.d.ts +4 -2
  261. package/lib/types/dsh-adapter/plugin.d.ts.map +1 -1
  262. package/lib/types/dsh-adapter/plugin.js +143 -364
  263. package/lib/types/dsh-adapter/providerWizard.d.ts +17 -0
  264. package/lib/types/dsh-adapter/providerWizard.d.ts.map +1 -1
  265. package/lib/types/dsh-adapter/providerWizard.js +254 -66
  266. package/lib/types/dsh-adapter/questions.d.ts +22 -15
  267. package/lib/types/dsh-adapter/questions.d.ts.map +1 -1
  268. package/lib/types/dsh-adapter/questions.js +47 -45
  269. package/lib/types/dsh-adapter/sessions/digest.d.ts +11 -6
  270. package/lib/types/dsh-adapter/sessions/digest.d.ts.map +1 -1
  271. package/lib/types/dsh-adapter/sessions/digest.js +20 -13
  272. package/lib/types/dsh-adapter/sessions/frames.d.ts +3 -1
  273. package/lib/types/dsh-adapter/sessions/frames.d.ts.map +1 -1
  274. package/lib/types/dsh-adapter/sessions/frames.js +5 -4
  275. package/lib/types/dsh-adapter/sessions/list.d.ts +6 -1
  276. package/lib/types/dsh-adapter/sessions/list.d.ts.map +1 -1
  277. package/lib/types/dsh-adapter/sessions/list.js +188 -164
  278. package/lib/types/dsh-adapter/sessions/recovery.d.ts +16 -0
  279. package/lib/types/dsh-adapter/sessions/recovery.d.ts.map +1 -0
  280. package/lib/types/dsh-adapter/sessions/recovery.js +108 -0
  281. package/lib/types/dsh-adapter/sessions/snapshot.d.ts +7 -0
  282. package/lib/types/dsh-adapter/sessions/snapshot.d.ts.map +1 -0
  283. package/lib/types/dsh-adapter/sessions/snapshot.js +90 -0
  284. package/lib/types/dsh-adapter/sessions/store.d.ts +10 -4
  285. package/lib/types/dsh-adapter/sessions/store.d.ts.map +1 -1
  286. package/lib/types/dsh-adapter/sessions/store.js +62 -25
  287. package/lib/types/dsh-adapter/sideQuestion.d.ts +41 -2
  288. package/lib/types/dsh-adapter/sideQuestion.d.ts.map +1 -1
  289. package/lib/types/dsh-adapter/sideQuestion.js +98 -2
  290. package/lib/types/dsh-adapter/subagents.d.ts +28 -3
  291. package/lib/types/dsh-adapter/subagents.d.ts.map +1 -1
  292. package/lib/types/dsh-adapter/subagents.js +77 -2
  293. package/lib/types/herdr.d.ts +2 -0
  294. package/lib/types/herdr.d.ts.map +1 -1
  295. package/lib/types/herdr.js +9 -3
  296. package/lib/types/i18n.d.ts +424 -42
  297. package/lib/types/i18n.d.ts.map +1 -1
  298. package/lib/types/i18n.js +145 -20
  299. package/lib/types/ink/components/App.d.ts +2 -2
  300. package/lib/types/ink/components/App.d.ts.map +1 -1
  301. package/lib/types/ink/components/App.js +5 -1
  302. package/lib/types/ink/components/Image.d.ts +14 -1
  303. package/lib/types/ink/components/Image.d.ts.map +1 -1
  304. package/lib/types/ink/components/Image.js +2 -2
  305. package/lib/types/ink/events/input-event.js +3 -3
  306. package/lib/types/ink/hooks/use-terminal-images.d.ts +12 -0
  307. package/lib/types/ink/hooks/use-terminal-images.d.ts.map +1 -1
  308. package/lib/types/ink/hooks/use-terminal-images.js +13 -0
  309. package/lib/types/ink/ink.d.ts +6 -0
  310. package/lib/types/ink/ink.d.ts.map +1 -1
  311. package/lib/types/ink/ink.js +16 -1
  312. package/lib/types/ink/kitty-graphics.d.ts +44 -3
  313. package/lib/types/ink/kitty-graphics.d.ts.map +1 -1
  314. package/lib/types/ink/kitty-graphics.js +184 -23
  315. package/lib/types/ink/output.d.ts +24 -2
  316. package/lib/types/ink/output.d.ts.map +1 -1
  317. package/lib/types/ink/output.js +83 -5
  318. package/lib/types/ink/parse-keypress.d.ts +26 -1
  319. package/lib/types/ink/parse-keypress.d.ts.map +1 -1
  320. package/lib/types/ink/parse-keypress.js +156 -13
  321. package/lib/types/ink/render-node-to-output.d.ts.map +1 -1
  322. package/lib/types/ink/render-node-to-output.js +8 -1
  323. package/lib/types/ink/screen.d.ts +24 -0
  324. package/lib/types/ink/screen.d.ts.map +1 -1
  325. package/lib/types/ink/screen.js +89 -0
  326. package/lib/types/ink/selection.d.ts +40 -18
  327. package/lib/types/ink/selection.d.ts.map +1 -1
  328. package/lib/types/ink/selection.js +142 -30
  329. package/lib/types/ink/sixel-codec.d.ts +12 -1
  330. package/lib/types/ink/sixel-codec.d.ts.map +1 -1
  331. package/lib/types/ink/sixel-codec.js +29 -5
  332. package/lib/types/ink/sixel-graphics.d.ts.map +1 -1
  333. package/lib/types/ink/sixel-graphics.js +5 -3
  334. package/lib/types/ink/styles.d.ts +9 -0
  335. package/lib/types/ink/styles.d.ts.map +1 -1
  336. package/lib/types/ink/terminal-image.d.ts +8 -0
  337. package/lib/types/ink/terminal-image.d.ts.map +1 -1
  338. package/lib/types/ink/terminal-querier.d.ts +7 -1
  339. package/lib/types/ink/terminal-querier.d.ts.map +1 -1
  340. package/lib/types/ink/terminal-querier.js +12 -2
  341. package/lib/types/ink/timeline-rail.d.ts +5 -0
  342. package/lib/types/ink/timeline-rail.d.ts.map +1 -1
  343. package/lib/types/math/inline-layout.d.ts +29 -0
  344. package/lib/types/math/inline-layout.d.ts.map +1 -0
  345. package/lib/types/math/inline-layout.js +106 -0
  346. package/lib/types/math/layout.d.ts +58 -0
  347. package/lib/types/math/layout.d.ts.map +1 -0
  348. package/lib/types/math/layout.js +59 -0
  349. package/lib/types/math/renderer.d.ts +64 -0
  350. package/lib/types/math/renderer.d.ts.map +1 -0
  351. package/lib/types/math/renderer.js +256 -0
  352. package/lib/types/screens/Chat.d.ts +14 -1
  353. package/lib/types/screens/Chat.d.ts.map +1 -1
  354. package/lib/types/screens/Chat.js +606 -53
  355. package/lib/types/screens/SessionSupervisor.d.ts +2 -1
  356. package/lib/types/screens/SessionSupervisor.d.ts.map +1 -1
  357. package/lib/types/screens/SessionSupervisor.js +156 -19
  358. package/lib/types/screens/Settings.d.ts.map +1 -1
  359. package/lib/types/screens/Settings.js +49 -11
  360. package/lib/types/screens/StatusLine.d.ts.map +1 -1
  361. package/lib/types/screens/StatusLine.js +45 -15
  362. package/lib/types/screens/chatOverlay.d.ts +5 -0
  363. package/lib/types/screens/chatOverlay.d.ts.map +1 -1
  364. package/lib/types/screens/chatOverlay.js +1 -0
  365. package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.d.ts +47 -0
  366. package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.d.ts.map +1 -0
  367. package/lib/types/screens/sessionSupervisor/ForeignSessionPanes.js +65 -0
  368. package/lib/types/screens/sessionSupervisor/model.d.ts +12 -0
  369. package/lib/types/screens/sessionSupervisor/model.d.ts.map +1 -1
  370. package/lib/types/screens/sessionSupervisor/model.js +26 -0
  371. package/lib/types/screens/sessionSupervisor/useForeignSessions.d.ts +107 -0
  372. package/lib/types/screens/sessionSupervisor/useForeignSessions.d.ts.map +1 -0
  373. package/lib/types/screens/sessionSupervisor/useForeignSessions.js +312 -0
  374. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts +4 -1
  375. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.d.ts.map +1 -1
  376. package/lib/types/screens/sessionSupervisor/useSessionSupervisor.js +97 -14
  377. package/lib/types/sessionHistory.d.ts +2 -2
  378. package/lib/types/sessionHistory.d.ts.map +1 -1
  379. package/lib/types/sessionHistory.js +31 -5
  380. package/lib/types/settings/definitions.d.ts +681 -0
  381. package/lib/types/settings/definitions.d.ts.map +1 -0
  382. package/lib/types/settings/definitions.js +511 -0
  383. package/lib/types/starAction.d.ts +44 -0
  384. package/lib/types/starAction.d.ts.map +1 -0
  385. package/lib/types/starAction.js +52 -0
  386. package/lib/types/terminal-utils/latex.d.ts +10 -0
  387. package/lib/types/terminal-utils/latex.d.ts.map +1 -0
  388. package/lib/types/terminal-utils/latex.js +1417 -0
  389. package/lib/types/terminal-utils/markdown.d.ts +3 -1
  390. package/lib/types/terminal-utils/markdown.d.ts.map +1 -1
  391. package/lib/types/terminal-utils/markdown.js +26 -1
  392. package/lib/types/terminal-utils/math.d.ts +66 -0
  393. package/lib/types/terminal-utils/math.d.ts.map +1 -0
  394. package/lib/types/terminal-utils/math.js +337 -0
  395. package/lib/types/tips.d.ts.map +1 -1
  396. package/lib/types/tips.js +6 -0
  397. package/lib/types/tuiDisplayPrefs.d.ts +67 -0
  398. package/lib/types/tuiDisplayPrefs.d.ts.map +1 -1
  399. package/lib/types/tuiDisplayPrefs.js +59 -0
  400. package/lib/types/ui.d.ts +1 -1
  401. package/lib/types/ui.d.ts.map +1 -1
  402. package/lib/types/ui.js +1 -1
  403. package/lib/types/usageStats.d.ts +98 -0
  404. package/lib/types/usageStats.d.ts.map +1 -0
  405. package/lib/types/usageStats.js +169 -0
  406. package/lib/types/utils/bmp.d.ts +17 -0
  407. package/lib/types/utils/bmp.d.ts.map +1 -0
  408. package/lib/types/utils/bmp.js +154 -0
  409. package/lib/types/utils/clipboard.d.ts +14 -2
  410. package/lib/types/utils/clipboard.d.ts.map +1 -1
  411. package/lib/types/utils/clipboard.js +143 -8
  412. package/lib/types/utils/fold-long-lines.d.ts.map +1 -1
  413. package/lib/types/utils/fold-long-lines.js +2 -1
  414. package/lib/types/utils/keymap.d.ts +4 -1
  415. package/lib/types/utils/keymap.d.ts.map +1 -1
  416. package/lib/types/utils/keymap.js +8 -0
  417. package/lib/types/utils/modifiers.d.ts +4 -3
  418. package/lib/types/utils/modifiers.d.ts.map +1 -1
  419. package/lib/types/utils/modifiers.js +4 -3
  420. package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/LICENSE +202 -0
  421. package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/NOTICE +20 -0
  422. package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/index.d.ts +16 -0
  423. package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/lib/bundled-packages.json +4 -0
  424. package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/lib/index.mjs +20 -0
  425. package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/lib/index.mjs.LEGAL.txt +35 -0
  426. package/node_modules/@dsh-tui-vendor/mathjax-tex-svg/package.json +29 -0
  427. package/package.json +111 -97
@@ -0,0 +1,511 @@
1
+ import { SPLASH_FONT_OPTIONS } from '../components/splashFonts.js';
2
+ export const SETTING_DEFINITIONS = {
3
+ 'diffLayout': {
4
+ label: 'Diff layout',
5
+ descriptions: { zh: 'diff 布局' },
6
+ group: 'conversation',
7
+ hint: 'Edit/Write tool cards: auto picks by terminal width, or force one layout.',
8
+ hintDescriptions: { zh: 'Edit/Write 工具卡的 diff 呈现:auto 按终端宽度选择,或强制一种布局。' },
9
+ kind: 'select',
10
+ options: [
11
+ { value: 'auto', label: 'Auto (by width)', descriptions: { zh: '自动(按宽度)' } },
12
+ { value: 'split', label: 'Side-by-side', descriptions: { zh: '双栏对照' } },
13
+ { value: 'unified', label: 'Unified', descriptions: { zh: '统一式' } },
14
+ ],
15
+ },
16
+ 'effortDefault': {
17
+ label: 'Default reasoning effort',
18
+ descriptions: { zh: '默认推理强度' },
19
+ group: 'conversation',
20
+ hint: 'Reasoning-effort level new sessions start on; the current session applies it to its next request too, when the model offers the tier (an unlisted level falls back to the model default). Auto = follow the cordis.yml `effort` pin, then the persisted /effort choice, then the model default.',
21
+ hintDescriptions: { zh: '新会话起始的推理强度档位;模型提供该档位时,当前会话的下一请求也会应用(模型不提供的档位会静默回落到模型默认)。自动 = 依次跟随 cordis.yml 的 effort 配置、持久化的 /effort 选择、模型默认档。' },
22
+ kind: 'select',
23
+ options: [
24
+ { value: 'auto', label: 'Auto (model default)', descriptions: { zh: '自动(模型默认)' } },
25
+ { value: 'off', label: 'Off', descriptions: { zh: '关闭' } },
26
+ { value: 'low', label: 'Low', descriptions: { zh: '低' } },
27
+ { value: 'high', label: 'High', descriptions: { zh: '高' } },
28
+ { value: 'max', label: 'Max', descriptions: { zh: '最高' } },
29
+ ],
30
+ },
31
+ 'expandEditor': {
32
+ label: 'Fullscreen draft editor',
33
+ descriptions: { zh: '全屏草稿编辑' },
34
+ group: 'conversation',
35
+ hint: 'On: the ⛶ affordance in the input row and the expand-editor shortcut (default Ctrl+Shift+E) expand the draft into a whole-screen editor (Enter = newline, Ctrl+Enter = send). Off: both entry points disappear. On by default.',
36
+ hintDescriptions: { zh: '开启:输入行尾 ⛶ 按钮与全屏编辑快捷键(默认 Ctrl+Shift+E)把草稿展开成整屏编辑器(Enter 换行、Ctrl+Enter 发送)。关闭:两个入口都不显示。默认开启。' },
37
+ kind: 'boolean',
38
+ },
39
+ 'foldTerminalCommand': {
40
+ label: 'Fold terminal command',
41
+ descriptions: { zh: '折叠终端命令' },
42
+ group: 'conversation',
43
+ hint: 'Terminal cards (Bash/PowerShell): collapse a multi-line command header to its first line + count; Ctrl+O or a click expands it.',
44
+ hintDescriptions: { zh: '终端卡(Bash/PowerShell):多行命令头部折叠为首行 + 计数;Ctrl+O 或点击卡片展开。' },
45
+ kind: 'boolean',
46
+ },
47
+ 'fullscreen': {
48
+ label: 'Fullscreen mode',
49
+ descriptions: { zh: '全屏模式' },
50
+ group: 'appearance',
51
+ hint: 'On: app takes the whole screen (vim/less style), in-app mouse. Off: native scrollback; full-page screens keep the mouse. Restart to apply.',
52
+ hintDescriptions: { zh: '开启:接管整个终端(同 vim/less),应用内鼠标;关闭:终端原生滚动选择;整屏页两种模式都有鼠标。重启生效。' },
53
+ kind: 'boolean',
54
+ },
55
+ 'imageBacking': {
56
+ label: 'Photo image background',
57
+ descriptions: { zh: '图片底色' },
58
+ group: 'rendering',
59
+ hint: "What sits behind photos and illustrations in the chat. Transparent paints only the pixels of the image itself — the terminal background or wallpaper shows through at anti-aliased edges and transparent corners; Terminal colour composites onto the terminal background first, which keeps soft edges smooth (Sixel has no partial alpha). Applies immediately.",
60
+ hintDescriptions: { zh: '聊天里的照片/插图背后垫什么。透明:只画图片自己的像素,抗锯齿边缘和透明圆角处透出终端底色或壁纸;终端底色:先合成到终端背景色上,柔和边缘更平滑(Sixel 没有部分透明)。立即生效。' },
61
+ kind: 'select',
62
+ options: [
63
+ { value: 'transparent', label: 'Transparent', descriptions: { zh: '透明(透出终端背景)' } },
64
+ { value: 'terminal', label: 'Terminal colour', descriptions: { zh: '合成到终端底色' } },
65
+ ],
66
+ },
67
+ 'lang': {
68
+ label: 'Language',
69
+ descriptions: { zh: '界面语言' },
70
+ group: 'appearance',
71
+ hint: 'UI language for the whole interface — applies immediately and is saved.',
72
+ hintDescriptions: { zh: '整个界面的显示语言——立即生效并保存。' },
73
+ kind: 'select',
74
+ options: [
75
+ { value: 'zh', label: '中文', descriptions: { zh: '中文' } },
76
+ { value: 'en', label: 'English', descriptions: { zh: '英文' } },
77
+ ],
78
+ },
79
+ 'mathImageBacking': {
80
+ label: 'Formula image background',
81
+ descriptions: { zh: '公式图片底色' },
82
+ group: 'math',
83
+ hint: 'What sits behind a formula rendered as an image. Transparent paints only the formula and lets the terminal background (a wallpaper included) show through; Terminal colour composites it onto the terminal background first, which is calmer on busy backgrounds and keeps anti-aliased edges smooth (Sixel has no partial alpha). Applies immediately.',
84
+ hintDescriptions: { zh: '公式渲染成图片时背后垫什么。透明:只画公式本身,终端底色或壁纸直接透出来;终端底色:先合成到终端背景色上,在花哨的背景上更稳,抗锯齿边缘也更平滑(Sixel 没有部分透明)。立即生效。' },
85
+ kind: 'select',
86
+ options: [
87
+ { value: 'transparent', label: 'Transparent', descriptions: { zh: '透明(透出终端背景)' } },
88
+ { value: 'terminal', label: 'Terminal colour', descriptions: { zh: '合成到终端底色' } },
89
+ ],
90
+ },
91
+ 'mathImageScale': {
92
+ label: 'Formula image size',
93
+ descriptions: { zh: '公式图片大小' },
94
+ group: 'math',
95
+ hint: 'How large a display formula is set when it renders as an image (LaTeX math → Image, both on this page). Text size matches the body text; Large and Extra large set display math bigger, which also hands the terminal more device pixels for its strokes — the only sharpness lever a terminal image has. Inline formulas are unaffected: their single row of cells caps the resolution. Applies immediately.',
96
+ hintDescriptions: { zh: '块级公式渲染成图片时的大小(配合 LaTeX 公式的「图片」)。与正文同尺寸:和正文一样大;放大 / 更大:显示公式排得更大,终端也因此有更多像素画笔画,观感更锐利——这是终端图片唯一的清晰度杠杆。行内公式不受影响(只能占一行,像素上限被卡死)。立即生效。' },
97
+ kind: 'select',
98
+ options: [
99
+ { value: 'auto', label: 'Text size', descriptions: { zh: '与正文同尺寸' } },
100
+ { value: 'large', label: 'Large', descriptions: { zh: '放大' } },
101
+ { value: 'xlarge', label: 'Extra large', descriptions: { zh: '更大' } },
102
+ ],
103
+ },
104
+ 'mathRendering': {
105
+ label: 'LaTeX math',
106
+ descriptions: { zh: 'LaTeX 公式' },
107
+ group: 'math',
108
+ hint: 'How LaTeX math in replies ($…$, \\(…\\), $$…$$, \\[…\\]) renders. Auto: the best available renderer — today Unicode text with symbols, sub/superscripts, stacked fractions and limits, matrices, cases. Image: typeset block formulas and eligible one-row inline formulas as images when the terminal has graphics — Kitty (Kitty, Ghostty, WezTerm, iTerm2…) or Sixel (Windows Terminal 1.22+, xterm, foot, WezTerm); Unicode elsewhere and for formulas that do not fit. Unicode: always Unicode text. Source: keep the TeX as written. Unsupported, still-streaming, or too-wide formulas keep their source. Applies immediately.',
109
+ hintDescriptions: { zh: '回复中的 LaTeX 公式($…$、\\(…\\)、$$…$$、\\[…\\])怎么显示。自动:用当前最好的渲染方式——目前是 Unicode 文本(符号、上下标、竖排的分数与上下限、矩阵、分段函数)。图片:终端支持图形时把块级公式与能压入一行的行内公式排版成图片——Kitty(Kitty、Ghostty、WezTerm、iTerm2 等)或 Sixel(Windows Terminal 1.22+、xterm、foot、WezTerm);其他终端与放不下的公式用 Unicode。Unicode:固定用 Unicode 文本。源码:保留原始 TeX。不支持、仍在流式输出或比终端宽的公式保留源码。立即生效。' },
110
+ kind: 'select',
111
+ options: [
112
+ { value: 'auto', label: 'Auto', descriptions: { zh: '自动' } },
113
+ { value: 'image', label: 'Image', descriptions: { zh: '图片' } },
114
+ { value: 'unicode', label: 'Unicode', descriptions: { zh: 'Unicode' } },
115
+ { value: 'source', label: 'Source', descriptions: { zh: '源码' } },
116
+ ],
117
+ },
118
+ 'mermaidDiagrams': {
119
+ label: 'Mermaid diagrams',
120
+ descriptions: { zh: 'Mermaid 图表' },
121
+ group: 'rendering',
122
+ hint: 'Render ```mermaid fences in replies as box-drawing diagrams (flowchart, sequence, state, class, ER, pie, mindmap, timeline, gitGraph). Diagrams wider than the terminal, or of an unsupported type, keep the fenced source. Applies immediately. On by default.',
123
+ hintDescriptions: { zh: '把回复中的 ```mermaid 代码块画成字符图(flowchart、sequence、state、class、ER、pie、mindmap、timeline、gitGraph)。比终端宽或类型不支持的图保留源码。立即生效。默认开启。' },
124
+ kind: 'boolean',
125
+ },
126
+ 'minimal': {
127
+ label: 'Minimal mode',
128
+ descriptions: { zh: '极简模式' },
129
+ group: 'appearance',
130
+ hint: 'Hide the header splash, emoji glyphs, and decorative colors; code highlight and tool colors stay. Trims the status bar to model + cwd.',
131
+ hintDescriptions: { zh: '隐藏开屏头部、emoji 状态符与装饰性配色;代码高亮与工具配色保留,底栏只留模型与目录。' },
132
+ kind: 'boolean',
133
+ },
134
+ 'pageMargin': {
135
+ label: 'Page margin',
136
+ descriptions: { zh: '页边距' },
137
+ group: 'appearance',
138
+ hint: 'Inset the whole UI from the terminal edges. ←/→ cycles presets (none / slim / normal / roomy); Enter types a custom spec `NxM`: N columns per side, M rows top/bottom (e.g. 3x1, max 8x4; a bare `N` keeps rows at 1). Empty resets to the default `normal`. Applies immediately.',
139
+ hintDescriptions: { zh: '让整个界面相对终端四边内缩。←/→ 循环预设(none / slim / normal / roomy);Enter 输入自定义 `NxM`:左右各 N 列、上下各 M 行(如 3x1,上限 8x4;只填 N 则上下保持 1 行)。清空恢复默认 normal。立即生效。' },
140
+ kind: 'text',
141
+ options: [
142
+ { value: 'none', label: 'None', descriptions: { zh: '无' } },
143
+ { value: 'slim', label: 'Slim', descriptions: { zh: '窄' } },
144
+ { value: 'normal', label: 'Normal', descriptions: { zh: '常规' } },
145
+ { value: 'roomy', label: 'Roomy', descriptions: { zh: '宽' } },
146
+ ],
147
+ },
148
+ 'promptSessionLabel': {
149
+ label: 'Session name chip',
150
+ descriptions: { zh: '会话名标签' },
151
+ group: 'conversation',
152
+ hint: 'Show the session name on the prompt top border, right corner. Off by default.',
153
+ hintDescriptions: { zh: '在输入框顶边框右上角显示会话名。默认关闭。' },
154
+ kind: 'boolean',
155
+ },
156
+ 'recapOnOpen': {
157
+ label: 'Auto recap on open',
158
+ descriptions: { zh: '打开会话时自动总结' },
159
+ group: 'conversation',
160
+ hint: 'On: opening/resuming a session automatically summarizes its recent activity into a dim line at the bottom of the transcript (hover/click to view or apply the suggested title). Off: use /recap manually.',
161
+ hintDescriptions: { zh: '开启:打开/恢复会话时自动把最近活动总结成一行灰字显示在会话底部(可悬停/点击查看或应用建议标题);关闭:手动使用 /recap。' },
162
+ kind: 'boolean',
163
+ },
164
+ 'scrollGutter': {
165
+ label: 'Transcript gutter',
166
+ descriptions: { zh: '转录边栏' },
167
+ group: 'appearance',
168
+ hint: 'Right gutter of the fullscreen transcript: per-turn timeline ticks, a proportional scrollbar, or nothing.',
169
+ hintDescriptions: { zh: '全屏转录区右侧边栏:按轮次的时间线节点、比例滚动条,或留空。' },
170
+ kind: 'select',
171
+ options: [
172
+ { value: 'timeline', label: 'Turn timeline', descriptions: { zh: '轮次时间线' } },
173
+ { value: 'scrollbar', label: 'Scrollbar', descriptions: { zh: '滚动条' } },
174
+ { value: 'hidden', label: 'Hidden', descriptions: { zh: '隐藏' } },
175
+ ],
176
+ },
177
+ 'smoothStreaming': {
178
+ label: 'Smooth streaming',
179
+ descriptions: { zh: '流式平滑输出' },
180
+ group: 'conversation',
181
+ hint: 'Reveal live replies, expanded thinking, and tool-call bodies through an even ~30fps flow instead of per-burst jumps; one-shot non-streaming replies paint as a flow too. Replay/history always paints complete. On by default.',
182
+ hintDescriptions: { zh: '把实时回复、展开的思考与工具卡正文按 ~30fps 匀速揭示,不再随供应商突发一跳一跳;一次性到达的非流式回复也会平滑打出。回放/历史内容始终完整直出。默认开启。' },
183
+ kind: 'boolean',
184
+ },
185
+ 'splashFont': {
186
+ label: 'Splash font',
187
+ descriptions: { zh: '开屏大字字体' },
188
+ group: 'splash',
189
+ hint: 'Big-text face on the header splash. Daily rotates by local date (default); pick a face to pin that one. Applies immediately.',
190
+ hintDescriptions: { zh: '开屏头部的大字字面。按天轮换(默认)随本地日期换款;选某一款即固定那一款。立即生效。' },
191
+ kind: 'select',
192
+ options: SPLASH_FONT_OPTIONS,
193
+ },
194
+ 'statusBar.activity': {
195
+ label: 'Show activity summary',
196
+ descriptions: { zh: '显示活动摘要' },
197
+ hint: 'Show the idle working-activity summary.',
198
+ hintDescriptions: { zh: '显示空闲时的工作活动摘要。' },
199
+ kind: 'boolean',
200
+ group: 'status-bar',
201
+ },
202
+ 'statusBar.cache': {
203
+ label: 'Show cache',
204
+ descriptions: { zh: '显示缓存' },
205
+ hint: 'Show prompt-cache hit information.',
206
+ hintDescriptions: { zh: '显示提示词缓存命中信息。' },
207
+ kind: 'boolean',
208
+ group: 'status-bar',
209
+ },
210
+ 'statusBar.compact': {
211
+ label: 'Compact status bar',
212
+ descriptions: { zh: '紧凑状态栏' },
213
+ hint: 'Prefer the compact status presentation when terminal space allows.',
214
+ hintDescriptions: { zh: '终端空间允许时优先使用紧凑状态栏布局。' },
215
+ kind: 'boolean',
216
+ group: 'status-bar',
217
+ },
218
+ 'statusBar.contextBar': {
219
+ label: 'Show context progress bar',
220
+ descriptions: { zh: '显示上下文进度条' },
221
+ hint: 'Show the segmented context progress bar on its own footer row.',
222
+ hintDescriptions: { zh: '在底部单独一行显示分段上下文进度条。' },
223
+ kind: 'boolean',
224
+ group: 'status-bar',
225
+ },
226
+ 'statusBar.contextUsage': {
227
+ label: 'Show context usage',
228
+ descriptions: { zh: '显示上下文用量' },
229
+ hint: 'Show current context-window consumption.',
230
+ hintDescriptions: { zh: '显示当前上下文窗口占用情况。' },
231
+ kind: 'boolean',
232
+ group: 'status-bar',
233
+ },
234
+ 'statusBar.cost': {
235
+ label: 'Show session cost estimate',
236
+ descriptions: { zh: '显示本会话花费估算' },
237
+ hint: 'Show the estimated session spend (≈¥) next to the token totals. Only appears for official DeepSeek providers whose model has a known price; the estimate follows the official per-million-token rates (peak/idle hours) and is not a bill.',
238
+ hintDescriptions: { zh: '在 Token 总量旁显示本会话花费估算(≈¥)。仅在使用 DeepSeek 官方 API key 且模型有已知单价时显示;按官方每百万 token 单价(高峰/空闲时段)估算,非账单。' },
239
+ kind: 'boolean',
240
+ group: 'status-bar',
241
+ },
242
+ 'statusBar.cwd': {
243
+ label: 'Show working directory',
244
+ descriptions: { zh: '显示工作目录' },
245
+ hint: 'Show the session working directory.',
246
+ hintDescriptions: { zh: '显示当前会话的工作目录。' },
247
+ kind: 'boolean',
248
+ group: 'status-bar',
249
+ },
250
+ 'statusBar.gitBranch': {
251
+ label: 'Show git branch',
252
+ descriptions: { zh: '显示 Git 分支' },
253
+ hint: 'Show the current git branch when available.',
254
+ hintDescriptions: { zh: '可用时显示当前 Git 分支。' },
255
+ kind: 'boolean',
256
+ group: 'status-bar',
257
+ },
258
+ 'statusBar.goal': {
259
+ label: 'Show goal status',
260
+ descriptions: { zh: '显示 Goal 状态' },
261
+ hint: 'Show a compact goal chip (phase glyph + rounds) in the status footer while a goal exists.',
262
+ hintDescriptions: { zh: '存在 Goal 时,在底部状态栏显示紧凑的 Goal 状态(阶段符号与轮次)。' },
263
+ kind: 'boolean',
264
+ group: 'status-bar',
265
+ },
266
+ 'statusBar.mode': {
267
+ label: 'Show session mode',
268
+ descriptions: { zh: '显示会话模式' },
269
+ hint: 'Show the active non-default session mode.',
270
+ hintDescriptions: { zh: '显示当前启用的非默认会话模式。' },
271
+ kind: 'boolean',
272
+ group: 'status-bar',
273
+ },
274
+ 'statusBar.model': {
275
+ label: 'Show model',
276
+ descriptions: { zh: '显示模型' },
277
+ hint: 'Show the live model id in the status bar.',
278
+ hintDescriptions: { zh: '在状态栏显示当前模型标识。' },
279
+ kind: 'boolean',
280
+ group: 'status-bar',
281
+ },
282
+ 'statusBar.sessionId': {
283
+ label: 'Show session id',
284
+ descriptions: { zh: '显示会话 ID' },
285
+ hint: 'Show the short session id (# + first 8 chars) — it matches the session log filename for --resume.',
286
+ hintDescriptions: { zh: '显示短会话 ID(# + 前 8 位)——与日志文件名对应,方便 --resume 定位。' },
287
+ kind: 'boolean',
288
+ group: 'status-bar',
289
+ },
290
+ 'statusBar.sessionTitle': {
291
+ label: 'Show session title',
292
+ descriptions: { zh: '显示会话标题' },
293
+ hint: 'Show the current session title.',
294
+ hintDescriptions: { zh: '显示当前会话标题。' },
295
+ kind: 'boolean',
296
+ group: 'status-bar',
297
+ },
298
+ 'statusBar.shortcutHint': {
299
+ label: 'Show shortcut reminder',
300
+ descriptions: { zh: '显示快捷键提示' },
301
+ hint: 'Control only the idle `? for shortcuts` reminder; pressing ? and the Esc shortcut hints are unaffected.',
302
+ hintDescriptions: { zh: '仅控制空闲时的 `? for shortcuts` 提示;按 ? 打开快捷键以及 Esc 快捷提示均不受影响。' },
303
+ kind: 'boolean',
304
+ group: 'status-bar',
305
+ },
306
+ 'statusBar.thinking': {
307
+ label: 'Show thinking',
308
+ descriptions: { zh: '显示思考' },
309
+ hint: 'Show the live reasoning effort or thinking mode.',
310
+ hintDescriptions: { zh: '显示当前推理强度或思考模式。' },
311
+ kind: 'boolean',
312
+ group: 'status-bar',
313
+ },
314
+ 'statusBar.tokens': {
315
+ label: 'Show token totals',
316
+ descriptions: { zh: '显示 Token 总量' },
317
+ hint: 'Show running input and output token totals.',
318
+ hintDescriptions: { zh: '显示累计输入与输出 Token。' },
319
+ kind: 'boolean',
320
+ group: 'status-bar',
321
+ },
322
+ 'statusBar.tps': {
323
+ label: 'Show output speed',
324
+ descriptions: { zh: '显示输出速度' },
325
+ hint: 'Show live and recent tokens-per-second metrics.',
326
+ hintDescriptions: { zh: '显示实时及近期每秒 Token 指标。' },
327
+ kind: 'boolean',
328
+ group: 'status-bar',
329
+ },
330
+ 'statusBar.trajectory': {
331
+ label: 'Show trajectory strip',
332
+ descriptions: { zh: '显示轨迹条' },
333
+ hint: 'Show the animated mini trajectory strip at the footer edge.',
334
+ hintDescriptions: { zh: '在状态栏边缘显示动态迷你轨迹条。' },
335
+ kind: 'boolean',
336
+ group: 'status-bar',
337
+ },
338
+ 'terminalImages': {
339
+ label: 'Terminal image previews',
340
+ descriptions: { zh: '终端图片预览' },
341
+ group: 'rendering',
342
+ hint: 'Preview images in supported terminals. Use /restart to apply. Sending images is unaffected.',
343
+ hintDescriptions: { zh: '在支持的终端中预览图片。修改后用 /restart 生效;不影响向模型发送图片。' },
344
+ kind: 'boolean',
345
+ },
346
+ 'thinkingFold': {
347
+ label: 'Thinking display',
348
+ descriptions: { zh: '思考块展示' },
349
+ group: 'conversation',
350
+ hint: 'Preview shows 2-3 live lines; Full stays expanded until turn end. Click a streaming block to switch between preview and full.',
351
+ hintDescriptions: { zh: '预览模式显示 2-3 行动态思考;展开模式保持至轮末。点击流式思考块可在预览与全文间切换。' },
352
+ kind: 'select',
353
+ options: [
354
+ { value: 'preview', label: 'Preview (2-3 lines)', descriptions: { zh: '预览(2-3 行)' } },
355
+ { value: 'full', label: 'Full until turn end', descriptions: { zh: '展开至轮末' } },
356
+ ],
357
+ },
358
+ 'toolBackground': {
359
+ label: 'Tool background',
360
+ descriptions: { zh: '工具卡背景' },
361
+ group: 'appearance',
362
+ hint: 'Choose whether tool-call cards add no, subtle, or strong background emphasis.',
363
+ hintDescriptions: { zh: '选择工具调用卡片不添加、轻微或明显的背景强调。' },
364
+ kind: 'select',
365
+ options: [
366
+ { value: 'none', label: 'None', descriptions: { zh: '无' } },
367
+ { value: 'subtle', label: 'Subtle', descriptions: { zh: '轻微' } },
368
+ { value: 'strong', label: 'Strong', descriptions: { zh: '明显' } },
369
+ ],
370
+ },
371
+ 'whale': {
372
+ label: 'Header art',
373
+ descriptions: { zh: '标题图形 logo' },
374
+ group: 'splash',
375
+ hint: 'Show the header splash art — the pixel whale, or the maid portrait when the setting below is on. Off leaves a text-only header.',
376
+ hintDescriptions: { zh: '开屏头部显示图形 logo:像素鲸鱼(打开下方「女仆娘立绘」时显示女仆娘)。关闭则只留文字标题。' },
377
+ kind: 'boolean',
378
+ },
379
+ 'whaleGirl': {
380
+ label: 'Maid portrait',
381
+ descriptions: { zh: '女仆娘立绘' },
382
+ group: 'splash',
383
+ hint: 'Swap the header splash\'s pixel whale for the author-designed maid portrait, rendered FIRST as a real raster through the terminal image protocols (Kitty/Sixel); terminals without graphics support fall back to the character-art maid.',
384
+ hintDescriptions: { zh: '把开屏头部的像素鲸鱼换成项目作者绘制的女仆娘立绘,最优先走终端图像协议(Kitty/Sixel)的真图渲染;终端不支持时回落到字符画版女仆娘。' },
385
+ kind: 'boolean',
386
+ },
387
+ 'whaleIdle': {
388
+ label: 'Welcome whale idle',
389
+ descriptions: { zh: '鲸鱼娘闲置动画(欢迎期)' },
390
+ group: 'splash',
391
+ hint: 'Welcome-phase idle behaviors: after the intro the whale flutters its fins, thumps its tail, and dozes off when idle; clicking wakes a dozing whale and pops a heart. The first agent turn freezes it to the static standard frame.',
392
+ hintDescriptions: { zh: '欢迎期闲置行为:开屏后鲸鱼娘摆鱼鳍、偶尔拍尾巴,空闲会睡着冒 Z;点击唤醒睡着的鲸鱼娘并冒爱心。开始第一个任务后定格为静态标准帧。' },
393
+ kind: 'boolean',
394
+ },
395
+ };
396
+ /**
397
+ * Topic groups for /settings, in root-page order. Two presentations share
398
+ * this list: 'inline' groups render their fields directly on the root page
399
+ * under a small header (shallow topics — hiding a handful of fields behind
400
+ * a navigation row costs more clicks than the ordering buys), 'page' groups
401
+ * render one navigation row and keep their fields a level down (deep,
402
+ * cohesive domains: the formula trio, the status-bar block, the shortcut
403
+ * remaps). Every built-in setting names one of these (verified by
404
+ * scripts/verify-settings-definitions.ts); a field without a group would
405
+ * render on the root under "general". */
406
+ export const SETTING_GROUPS = [
407
+ { id: 'appearance', mode: 'inline', title: 'Appearance', descriptions: { zh: '外观与布局' } },
408
+ { id: 'splash', mode: 'inline', title: 'Splash', descriptions: { zh: '开屏与吉祥物' } },
409
+ { id: 'conversation', mode: 'inline', title: 'Conversation', descriptions: { zh: '对话与输入' } },
410
+ { id: 'rendering', mode: 'inline', title: 'Rendering', descriptions: { zh: '图表与图片' } },
411
+ { id: 'math', mode: 'page', title: 'Formula', descriptions: { zh: '公式设置' } },
412
+ { id: 'status-bar', mode: 'page', title: 'Status bar', descriptions: { zh: '底栏设置' } },
413
+ { id: 'shortcuts', mode: 'page', title: 'Shortcuts', descriptions: { zh: '快捷键' } },
414
+ ];
415
+ /**
416
+ * Top-level Config keys the settings service may edit at runtime: every
417
+ * defined setting's root, plus the shortcut remaps. Keys without a Config
418
+ * schema field (state read straight from the settings namespace) are
419
+ * ignored by editableConfig.
420
+ */
421
+ export const EDITABLE_CONFIG_KEYS = [
422
+ ...new Set([...Object.keys(SETTING_DEFINITIONS).map(key => key.split('.')[0]), 'shortcuts']),
423
+ ];
424
+ /** The static part of a /settings field for `key` (path included). */
425
+ export function settingField(key) {
426
+ return { path: key.split('.'), ...SETTING_DEFINITIONS[key] };
427
+ }
428
+ /**
429
+ * Shortcut remap fields (`shortcuts.<action>`): one per SHORTCUT_ACTIONS
430
+ * entry; the help text names the platform's default combos.
431
+ */
432
+ export const SHORTCUT_FIELD_META = {
433
+ paste: {
434
+ label: 'Paste shortcut',
435
+ zh: '粘贴快捷键',
436
+ hintEn: d => `Clipboard paste (text, file paths, images). Default: ${d}. Alt+V works where the terminal eats Ctrl+V.`,
437
+ hintZh: d => `剪贴板粘贴(文本、文件路径、图片)。默认 ${d}。终端吞掉 Ctrl+V 时可用 Alt+V。`,
438
+ },
439
+ history: {
440
+ label: 'History search shortcut',
441
+ zh: '历史搜索快捷键',
442
+ hintEn: d => `Open the prompt-history search. Default: ${d}.`,
443
+ hintZh: d => `打开输入历史搜索。默认 ${d}。`,
444
+ },
445
+ editor: {
446
+ label: 'External editor shortcut',
447
+ zh: '外部编辑器快捷键',
448
+ hintEn: d => `Edit the draft in $VISUAL/$EDITOR. Default: ${d}.`,
449
+ hintZh: d => `在 $VISUAL/$EDITOR 外部编辑器中编辑草稿。默认 ${d}。`,
450
+ },
451
+ transcript: {
452
+ label: 'Transcript mode shortcut',
453
+ zh: '转录模式快捷键',
454
+ hintEn: d => `Toggle expanded transcript mode. Default: ${d}.`,
455
+ hintZh: d => `切换展开转录模式。默认 ${d}。`,
456
+ },
457
+ trajectory: {
458
+ label: 'Trajectory scene shortcut',
459
+ zh: '轨迹场景快捷键',
460
+ hintEn: d => `Open the trajectory scene. Default: ${d}.`,
461
+ hintZh: d => `打开轨迹场景。默认 ${d}。`,
462
+ },
463
+ dashboard: {
464
+ label: 'Subagent dashboard shortcut',
465
+ zh: '子代理面板快捷键',
466
+ hintEn: d => `Open the subagent dashboard. Default: ${d}.`,
467
+ hintZh: d => `打开子代理面板。默认 ${d}。`,
468
+ },
469
+ contextPanel: {
470
+ label: 'Loaded-context panel shortcut',
471
+ zh: '加载上下文面板快捷键',
472
+ hintEn: d => `Toggle the startup loaded-context panel. Default: ${d}.`,
473
+ hintZh: d => `切换启动时的已加载上下文面板。默认 ${d}。`,
474
+ },
475
+ showAll: {
476
+ label: 'Show-all shortcut',
477
+ zh: '显示全部消息快捷键',
478
+ hintEn: d => `Toggle show-all-messages. Default: ${d}.`,
479
+ hintZh: d => `切换显示全部消息。默认 ${d}。`,
480
+ },
481
+ redraw: {
482
+ label: 'Redraw shortcut',
483
+ zh: '终端重绘快捷键',
484
+ hintEn: d => `Clear and repaint the terminal. Default: ${d}.`,
485
+ hintZh: d => `清空并重绘终端。默认 ${d}。`,
486
+ },
487
+ todoFold: {
488
+ label: 'Todo fold shortcut',
489
+ zh: '待办折叠快捷键',
490
+ hintEn: d => `Fold/unfold the goal/todo panel. Default: ${d}.`,
491
+ hintZh: d => `折叠/展开目标与待办面板。默认 ${d}。`,
492
+ },
493
+ questionFold: {
494
+ label: 'Question panel fold shortcut',
495
+ zh: '提问面板折叠快捷键',
496
+ hintEn: d => `Fold/unfold the pending question panel. Default: ${d}.`,
497
+ hintZh: d => `折叠/展开等待回答的提问面板。默认 ${d}。`,
498
+ },
499
+ expandEditor: {
500
+ label: 'Fullscreen editor shortcut',
501
+ zh: '全屏草稿编辑快捷键',
502
+ hintEn: d => `Toggle the fullscreen draft editor (Enter inserts a newline, Ctrl+Enter sends). Default: ${d}.`,
503
+ hintZh: d => `切换全屏草稿编辑器(Enter 换行、Ctrl+Enter 发送)。默认 ${d}。`,
504
+ },
505
+ star: {
506
+ label: 'One-key star shortcut',
507
+ zh: '一键 star 快捷键',
508
+ hintEn: d => `Star the project via the gh CLI (same action as /star and the splash line's click). Default: ${d}.`,
509
+ hintZh: d => `用 gh 给项目点 star(与 /star、开屏标语点击同一个动作)。默认 ${d}。`,
510
+ },
511
+ };
@@ -0,0 +1,44 @@
1
+ /**
2
+ * 求 star 的"一键"动作:`gh repo star <owner>/<repo>`。
3
+ *
4
+ * 为什么是 `gh` 而不是 `git`:star 是 GitHub 的 API 概念,`git` 本身没有这个能力;
5
+ * 而且终端里的 OSC 8 链接**只能打开 URL**,点不出命令来——所以"一键"必须是 TUI 里
6
+ * 一个显式动作(`/star` 或弹窗按钮),由用户按下去才执行。
7
+ *
8
+ * 三条硬约束:
9
+ * 1. **绝不自动 star**:没有用户动作就不会调用这里;
10
+ * 2. **绝不阻塞界面**:全部走 `execFileNoThrow`(永不 reject)+ 每步都有超时;
11
+ * 3. **失败要说人话**:没装 `gh` / 没登录 / 网络失败分别给不同结论,调用方好回一句
12
+ * 有意义的提示,并回落到"在浏览器里打开"。
13
+ */
14
+ /** 要 star 的仓库(`owner/name`)。 */
15
+ export declare const STAR_REPO = "ccch1mneyyy/dsh-TUI";
16
+ /** 一键 star 的结果:`starred` 以外都是"没成,但说清了为什么"。 */
17
+ export type StarOutcome = {
18
+ readonly kind: 'starred';
19
+ } | {
20
+ readonly kind: 'no-gh';
21
+ } | {
22
+ readonly kind: 'not-authed';
23
+ } | {
24
+ readonly kind: 'failed';
25
+ readonly detail: string;
26
+ };
27
+ /** 执行器签名(测试注入用;生产就是 `execFileNoThrow`)。 */
28
+ export type StarExec = (file: string, args: readonly string[], options?: {
29
+ timeout?: number;
30
+ }) => Promise<{
31
+ code: number | null;
32
+ stdout: string;
33
+ stderr: string;
34
+ }>;
35
+ /**
36
+ * 让本机 `gh` 给仓库点一个 star。
37
+ * @param options - `exec` 是测试缝;`timeoutMs` 是 star 那一步的超时(探测步骤固定短超时)。
38
+ * @returns 结果;只有 `starred` 表示真的点上了。
39
+ */
40
+ export declare function starRepo(options?: {
41
+ exec?: StarExec;
42
+ timeoutMs?: number;
43
+ }): Promise<StarOutcome>;
44
+ //# sourceMappingURL=starAction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starAction.d.ts","sourceRoot":"","sources":["../../src/starAction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,gCAAgC;AAChC,eAAO,MAAM,SAAS,wBAAwB,CAAA;AAE9C,8CAA8C;AAC9C,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,GAC5B;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAA;CAAE,GAC1B;IAAE,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE,GAC/B;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAcxD,2CAA2C;AAC3C,MAAM,MAAM,QAAQ,GAAG,CACrB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,KAC3B,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAAA;AASrE;;;;GAIG;AACH,wBAAsB,QAAQ,CAAC,OAAO,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,QAAQ,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,WAAW,CAAC,CAWtG"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * 求 star 的"一键"动作:`gh repo star <owner>/<repo>`。
3
+ *
4
+ * 为什么是 `gh` 而不是 `git`:star 是 GitHub 的 API 概念,`git` 本身没有这个能力;
5
+ * 而且终端里的 OSC 8 链接**只能打开 URL**,点不出命令来——所以"一键"必须是 TUI 里
6
+ * 一个显式动作(`/star` 或弹窗按钮),由用户按下去才执行。
7
+ *
8
+ * 三条硬约束:
9
+ * 1. **绝不自动 star**:没有用户动作就不会调用这里;
10
+ * 2. **绝不阻塞界面**:全部走 `execFileNoThrow`(永不 reject)+ 每步都有超时;
11
+ * 3. **失败要说人话**:没装 `gh` / 没登录 / 网络失败分别给不同结论,调用方好回一句
12
+ * 有意义的提示,并回落到"在浏览器里打开"。
13
+ */
14
+ import { execFileNoThrow } from './utils/execFileNoThrow.js';
15
+ /** 要 star 的仓库(`owner/name`)。 */
16
+ export const STAR_REPO = 'ccch1mneyyy/dsh-TUI';
17
+ /** 探测 `gh` 是否存在用的命令(只读,不改任何东西)。 */
18
+ const GH_VERSION_ARGS = ['--version'];
19
+ /** 判定登录态:`gh auth status` 退出码非 0 就是没登录。 */
20
+ const GH_AUTH_ARGS = ['auth', 'status'];
21
+ /**
22
+ * 点 star 的本体:`gh api -X PUT user/starred/<owner>/<repo>`。**不用**
23
+ * `gh repo star`——那是 gh ≥ 2.63 才有的子命令,老版本直接报
24
+ * `unknown command "star" for "gh repo"`(本机实测踩坑);REST PUT 全
25
+ * 版本 gh 可用,成功即 204(gh api 对 204 打空 body、退出码 0)。
26
+ */
27
+ const GH_STAR_ARGS = ['api', '-X', 'PUT', `user/starred/${STAR_REPO}`];
28
+ /** 把子进程输出压成一行短句(提示里不塞整段 stderr)。 */
29
+ const summarize = (result) => {
30
+ if (result.code === null)
31
+ return '命令超时或被杀掉';
32
+ const text = (result.stderr.trim() || result.stdout.trim() || `exit ${result.code}`).replace(/\s+/gu, ' ');
33
+ return text.length > 200 ? `${text.slice(0, 200)}…` : text;
34
+ };
35
+ /**
36
+ * 让本机 `gh` 给仓库点一个 star。
37
+ * @param options - `exec` 是测试缝;`timeoutMs` 是 star 那一步的超时(探测步骤固定短超时)。
38
+ * @returns 结果;只有 `starred` 表示真的点上了。
39
+ */
40
+ export async function starRepo(options) {
41
+ const exec = options?.exec ?? execFileNoThrow;
42
+ const probe = await exec('gh', GH_VERSION_ARGS, { timeout: 3000 });
43
+ if (probe.code !== 0)
44
+ return { kind: 'no-gh' };
45
+ const auth = await exec('gh', GH_AUTH_ARGS, { timeout: 5000 });
46
+ if (auth.code !== 0)
47
+ return { kind: 'not-authed' };
48
+ const star = await exec('gh', GH_STAR_ARGS, { timeout: options?.timeoutMs ?? 15_000 });
49
+ if (star.code === 0)
50
+ return { kind: 'starred' };
51
+ return { kind: 'failed', detail: summarize(star) };
52
+ }
@@ -0,0 +1,10 @@
1
+ export interface RenderLatexOptions {
2
+ /** Stack fractions and operator limits vertically for display math (default: false). */
3
+ display?: boolean;
4
+ }
5
+ /**
6
+ * Render a basic LaTeX math expression as terminal-friendly Unicode text.
7
+ * Returns undefined when the expression contains unsupported or malformed syntax.
8
+ */
9
+ export declare function renderLatex(source: string, options?: RenderLatexOptions): string | undefined;
10
+ //# sourceMappingURL=latex.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"latex.d.ts","sourceRoot":"","sources":["../../../src/terminal-utils/latex.ts"],"names":[],"mappings":"AA8+CA,MAAM,WAAW,kBAAkB;IAClC,wFAAwF;IACxF,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,MAAM,GAAG,SAAS,CAkBhG"}