dsh-plugin-core 0.33.1 → 0.33.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 (638) hide show
  1. package/README.md +9 -9
  2. package/dist/adv/explorer/open.js +4 -4
  3. package/dist/adv/explorer/open.js.map +1 -1
  4. package/dist/ui/feedback/host-toast.d.ts +1 -1
  5. package/dist/ui/feedback/host-toast.js +1 -1
  6. package/docs/help/explorer.doc.ts +1 -1
  7. package/docs/help/explorer.md +1 -1
  8. package/docs/help/integration.doc.ts +2 -2
  9. package/docs/help/integration.md +2 -2
  10. package/docs/help/session.doc.ts +1 -1
  11. package/docs/help/session.md +1 -1
  12. package/docs/help/ui.doc.ts +1 -1
  13. package/docs/help/ui.md +1 -1
  14. package/package.json +16 -16
  15. package/dist/explorer/ExplorerPanel.d.ts +0 -25
  16. package/dist/explorer/ExplorerPanel.d.ts.map +0 -1
  17. package/dist/explorer/ExplorerPanel.js +0 -111
  18. package/dist/explorer/ExplorerPanel.js.map +0 -1
  19. package/dist/explorer/FileBrowser.d.ts +0 -58
  20. package/dist/explorer/FileBrowser.d.ts.map +0 -1
  21. package/dist/explorer/FileBrowser.js +0 -632
  22. package/dist/explorer/FileBrowser.js.map +0 -1
  23. package/dist/explorer/crumb-nav.d.ts +0 -45
  24. package/dist/explorer/crumb-nav.d.ts.map +0 -1
  25. package/dist/explorer/crumb-nav.js +0 -78
  26. package/dist/explorer/crumb-nav.js.map +0 -1
  27. package/dist/explorer/crumbs-menu.d.ts +0 -37
  28. package/dist/explorer/crumbs-menu.d.ts.map +0 -1
  29. package/dist/explorer/crumbs-menu.js +0 -102
  30. package/dist/explorer/crumbs-menu.js.map +0 -1
  31. package/dist/explorer/explorer-css.d.ts +0 -2
  32. package/dist/explorer/explorer-css.d.ts.map +0 -1
  33. package/dist/explorer/explorer-css.generated.d.ts +0 -2
  34. package/dist/explorer/explorer-css.generated.d.ts.map +0 -1
  35. package/dist/explorer/explorer-css.generated.js +0 -4
  36. package/dist/explorer/explorer-css.generated.js.map +0 -1
  37. package/dist/explorer/explorer-css.js +0 -3
  38. package/dist/explorer/explorer-css.js.map +0 -1
  39. package/dist/explorer/fs-face.d.ts +0 -36
  40. package/dist/explorer/fs-face.d.ts.map +0 -1
  41. package/dist/explorer/fs-face.js +0 -74
  42. package/dist/explorer/fs-face.js.map +0 -1
  43. package/dist/explorer/index.d.ts +0 -6
  44. package/dist/explorer/index.d.ts.map +0 -1
  45. package/dist/explorer/index.js +0 -6
  46. package/dist/explorer/index.js.map +0 -1
  47. package/dist/explorer/landing.d.ts +0 -26
  48. package/dist/explorer/landing.d.ts.map +0 -1
  49. package/dist/explorer/landing.js +0 -43
  50. package/dist/explorer/landing.js.map +0 -1
  51. package/dist/explorer/open.d.ts +0 -137
  52. package/dist/explorer/open.d.ts.map +0 -1
  53. package/dist/explorer/open.js +0 -350
  54. package/dist/explorer/open.js.map +0 -1
  55. package/dist/explorer/picker-placement.d.ts +0 -69
  56. package/dist/explorer/picker-placement.d.ts.map +0 -1
  57. package/dist/explorer/picker-placement.js +0 -122
  58. package/dist/explorer/picker-placement.js.map +0 -1
  59. package/dist/explorer/preview/BytesPreview.d.ts +0 -12
  60. package/dist/explorer/preview/BytesPreview.d.ts.map +0 -1
  61. package/dist/explorer/preview/BytesPreview.js +0 -60
  62. package/dist/explorer/preview/BytesPreview.js.map +0 -1
  63. package/dist/explorer/preview/HtmlPreview.d.ts +0 -17
  64. package/dist/explorer/preview/HtmlPreview.d.ts.map +0 -1
  65. package/dist/explorer/preview/HtmlPreview.js +0 -113
  66. package/dist/explorer/preview/HtmlPreview.js.map +0 -1
  67. package/dist/explorer/preview/OfficePreview.d.ts +0 -12
  68. package/dist/explorer/preview/OfficePreview.d.ts.map +0 -1
  69. package/dist/explorer/preview/OfficePreview.js +0 -63
  70. package/dist/explorer/preview/OfficePreview.js.map +0 -1
  71. package/dist/explorer/preview/TextPreview.d.ts +0 -18
  72. package/dist/explorer/preview/TextPreview.d.ts.map +0 -1
  73. package/dist/explorer/preview/TextPreview.js +0 -122
  74. package/dist/explorer/preview/TextPreview.js.map +0 -1
  75. package/dist/explorer/preview/index.d.ts +0 -24
  76. package/dist/explorer/preview/index.d.ts.map +0 -1
  77. package/dist/explorer/preview/index.js +0 -58
  78. package/dist/explorer/preview/index.js.map +0 -1
  79. package/dist/explorer/preview/md-labels.d.ts +0 -3
  80. package/dist/explorer/preview/md-labels.d.ts.map +0 -1
  81. package/dist/explorer/preview/md-labels.js +0 -12
  82. package/dist/explorer/preview/md-labels.js.map +0 -1
  83. package/dist/explorer/preview-title-bar.d.ts +0 -26
  84. package/dist/explorer/preview-title-bar.d.ts.map +0 -1
  85. package/dist/explorer/preview-title-bar.js +0 -48
  86. package/dist/explorer/preview-title-bar.js.map +0 -1
  87. package/dist/explorer/types.d.ts +0 -259
  88. package/dist/explorer/types.d.ts.map +0 -1
  89. package/dist/explorer/types.js +0 -379
  90. package/dist/explorer/types.js.map +0 -1
  91. package/dist/session/SessionViewModal.d.ts +0 -37
  92. package/dist/session/SessionViewModal.d.ts.map +0 -1
  93. package/dist/session/SessionViewModal.js +0 -1133
  94. package/dist/session/SessionViewModal.js.map +0 -1
  95. package/dist/session/changes.d.ts +0 -73
  96. package/dist/session/changes.d.ts.map +0 -1
  97. package/dist/session/changes.js +0 -134
  98. package/dist/session/changes.js.map +0 -1
  99. package/dist/session/faces.d.ts +0 -244
  100. package/dist/session/faces.d.ts.map +0 -1
  101. package/dist/session/faces.js +0 -17
  102. package/dist/session/faces.js.map +0 -1
  103. package/dist/session/index.d.ts +0 -7
  104. package/dist/session/index.d.ts.map +0 -1
  105. package/dist/session/index.js +0 -27
  106. package/dist/session/index.js.map +0 -1
  107. package/dist/session/mirror/AskCard.d.ts +0 -35
  108. package/dist/session/mirror/AskCard.d.ts.map +0 -1
  109. package/dist/session/mirror/AskCard.js +0 -131
  110. package/dist/session/mirror/AskCard.js.map +0 -1
  111. package/dist/session/mirror/BashRow.d.ts +0 -14
  112. package/dist/session/mirror/BashRow.d.ts.map +0 -1
  113. package/dist/session/mirror/BashRow.js +0 -143
  114. package/dist/session/mirror/BashRow.js.map +0 -1
  115. package/dist/session/mirror/ChangedFileDiff.d.ts +0 -25
  116. package/dist/session/mirror/ChangedFileDiff.d.ts.map +0 -1
  117. package/dist/session/mirror/ChangedFileDiff.js +0 -178
  118. package/dist/session/mirror/ChangedFileDiff.js.map +0 -1
  119. package/dist/session/mirror/ChangedFilesCard.d.ts +0 -18
  120. package/dist/session/mirror/ChangedFilesCard.d.ts.map +0 -1
  121. package/dist/session/mirror/ChangedFilesCard.js +0 -165
  122. package/dist/session/mirror/ChangedFilesCard.js.map +0 -1
  123. package/dist/session/mirror/ChatGroupSeat.d.ts +0 -24
  124. package/dist/session/mirror/ChatGroupSeat.d.ts.map +0 -1
  125. package/dist/session/mirror/ChatGroupSeat.js +0 -135
  126. package/dist/session/mirror/ChatGroupSeat.js.map +0 -1
  127. package/dist/session/mirror/ChatNodeSeat.d.ts +0 -43
  128. package/dist/session/mirror/ChatNodeSeat.d.ts.map +0 -1
  129. package/dist/session/mirror/ChatNodeSeat.js +0 -133
  130. package/dist/session/mirror/ChatNodeSeat.js.map +0 -1
  131. package/dist/session/mirror/ChatView.d.ts +0 -47
  132. package/dist/session/mirror/ChatView.d.ts.map +0 -1
  133. package/dist/session/mirror/ChatView.js +0 -138
  134. package/dist/session/mirror/ChatView.js.map +0 -1
  135. package/dist/session/mirror/CommandCard.d.ts +0 -20
  136. package/dist/session/mirror/CommandCard.d.ts.map +0 -1
  137. package/dist/session/mirror/CommandCard.js +0 -69
  138. package/dist/session/mirror/CommandCard.js.map +0 -1
  139. package/dist/session/mirror/ContextInjectionRow.d.ts +0 -18
  140. package/dist/session/mirror/ContextInjectionRow.d.ts.map +0 -1
  141. package/dist/session/mirror/ContextInjectionRow.js +0 -50
  142. package/dist/session/mirror/ContextInjectionRow.js.map +0 -1
  143. package/dist/session/mirror/Deliverables.d.ts +0 -24
  144. package/dist/session/mirror/Deliverables.d.ts.map +0 -1
  145. package/dist/session/mirror/Deliverables.js +0 -175
  146. package/dist/session/mirror/Deliverables.js.map +0 -1
  147. package/dist/session/mirror/GenericCommandCard.d.ts +0 -136
  148. package/dist/session/mirror/GenericCommandCard.d.ts.map +0 -1
  149. package/dist/session/mirror/GenericCommandCard.js +0 -948
  150. package/dist/session/mirror/GenericCommandCard.js.map +0 -1
  151. package/dist/session/mirror/MessageIconActions.d.ts +0 -16
  152. package/dist/session/mirror/MessageIconActions.d.ts.map +0 -1
  153. package/dist/session/mirror/MessageIconActions.js +0 -69
  154. package/dist/session/mirror/MessageIconActions.js.map +0 -1
  155. package/dist/session/mirror/MessageItem.d.ts +0 -93
  156. package/dist/session/mirror/MessageItem.d.ts.map +0 -1
  157. package/dist/session/mirror/MessageItem.js +0 -194
  158. package/dist/session/mirror/MessageItem.js.map +0 -1
  159. package/dist/session/mirror/ReasoningRow.d.ts +0 -11
  160. package/dist/session/mirror/ReasoningRow.d.ts.map +0 -1
  161. package/dist/session/mirror/ReasoningRow.js +0 -111
  162. package/dist/session/mirror/ReasoningRow.js.map +0 -1
  163. package/dist/session/mirror/RunningStatus.d.ts +0 -12
  164. package/dist/session/mirror/RunningStatus.d.ts.map +0 -1
  165. package/dist/session/mirror/RunningStatus.js +0 -57
  166. package/dist/session/mirror/RunningStatus.js.map +0 -1
  167. package/dist/session/mirror/StatDialog.d.ts +0 -20
  168. package/dist/session/mirror/StatDialog.d.ts.map +0 -1
  169. package/dist/session/mirror/StatDialog.js +0 -49
  170. package/dist/session/mirror/StatDialog.js.map +0 -1
  171. package/dist/session/mirror/ToolDetails.d.ts +0 -65
  172. package/dist/session/mirror/ToolDetails.d.ts.map +0 -1
  173. package/dist/session/mirror/ToolDetails.js +0 -268
  174. package/dist/session/mirror/ToolDetails.js.map +0 -1
  175. package/dist/session/mirror/TurnProcessNodeView.d.ts +0 -10
  176. package/dist/session/mirror/TurnProcessNodeView.d.ts.map +0 -1
  177. package/dist/session/mirror/TurnProcessNodeView.js +0 -57
  178. package/dist/session/mirror/TurnProcessNodeView.js.map +0 -1
  179. package/dist/session/mirror/TurnTailNodeView.d.ts +0 -57
  180. package/dist/session/mirror/TurnTailNodeView.d.ts.map +0 -1
  181. package/dist/session/mirror/TurnTailNodeView.js +0 -106
  182. package/dist/session/mirror/TurnTailNodeView.js.map +0 -1
  183. package/dist/session/mirror/TurnTriggerNodeView.d.ts +0 -16
  184. package/dist/session/mirror/TurnTriggerNodeView.d.ts.map +0 -1
  185. package/dist/session/mirror/TurnTriggerNodeView.js +0 -103
  186. package/dist/session/mirror/TurnTriggerNodeView.js.map +0 -1
  187. package/dist/session/mirror/TurnUsagePanel.d.ts +0 -21
  188. package/dist/session/mirror/TurnUsagePanel.d.ts.map +0 -1
  189. package/dist/session/mirror/TurnUsagePanel.js +0 -41
  190. package/dist/session/mirror/TurnUsagePanel.js.map +0 -1
  191. package/dist/session/mirror/control-details.d.ts +0 -9
  192. package/dist/session/mirror/control-details.d.ts.map +0 -1
  193. package/dist/session/mirror/control-details.js +0 -549
  194. package/dist/session/mirror/control-details.js.map +0 -1
  195. package/dist/session/mirror/detail-i18n.d.ts +0 -4
  196. package/dist/session/mirror/detail-i18n.d.ts.map +0 -1
  197. package/dist/session/mirror/detail-i18n.js +0 -153
  198. package/dist/session/mirror/detail-i18n.js.map +0 -1
  199. package/dist/session/mirror/message-chrome.d.ts +0 -39
  200. package/dist/session/mirror/message-chrome.d.ts.map +0 -1
  201. package/dist/session/mirror/message-chrome.js +0 -153
  202. package/dist/session/mirror/message-chrome.js.map +0 -1
  203. package/dist/session/mirror/process-groups.d.ts +0 -56
  204. package/dist/session/mirror/process-groups.d.ts.map +0 -1
  205. package/dist/session/mirror/process-groups.js +0 -202
  206. package/dist/session/mirror/process-groups.js.map +0 -1
  207. package/dist/session/official-classes.d.ts +0 -28
  208. package/dist/session/official-classes.d.ts.map +0 -1
  209. package/dist/session/official-classes.js +0 -152
  210. package/dist/session/official-classes.js.map +0 -1
  211. package/dist/session/open-review.d.ts +0 -13
  212. package/dist/session/open-review.d.ts.map +0 -1
  213. package/dist/session/open-review.js +0 -32
  214. package/dist/session/open-review.js.map +0 -1
  215. package/dist/session/open-session-view.d.ts +0 -19
  216. package/dist/session/open-session-view.d.ts.map +0 -1
  217. package/dist/session/open-session-view.js +0 -147
  218. package/dist/session/open-session-view.js.map +0 -1
  219. package/dist/session/pending-inputs.d.ts +0 -33
  220. package/dist/session/pending-inputs.d.ts.map +0 -1
  221. package/dist/session/pending-inputs.js +0 -130
  222. package/dist/session/pending-inputs.js.map +0 -1
  223. package/dist/session/session-css.d.ts +0 -2
  224. package/dist/session/session-css.d.ts.map +0 -1
  225. package/dist/session/session-css.generated.d.ts +0 -2
  226. package/dist/session/session-css.generated.d.ts.map +0 -1
  227. package/dist/session/session-css.generated.js +0 -4
  228. package/dist/session/session-css.generated.js.map +0 -1
  229. package/dist/session/session-css.js +0 -3
  230. package/dist/session/session-css.js.map +0 -1
  231. package/dist/session/tail-follow.d.ts +0 -29
  232. package/dist/session/tail-follow.d.ts.map +0 -1
  233. package/dist/session/tail-follow.js +0 -106
  234. package/dist/session/tail-follow.js.map +0 -1
  235. package/dist/session/types.d.ts +0 -28
  236. package/dist/session/types.d.ts.map +0 -1
  237. package/dist/session/types.js +0 -12
  238. package/dist/session/types.js.map +0 -1
  239. package/dist/ui/AlertModal.d.ts +0 -41
  240. package/dist/ui/AlertModal.d.ts.map +0 -1
  241. package/dist/ui/AlertModal.js +0 -45
  242. package/dist/ui/AlertModal.js.map +0 -1
  243. package/dist/ui/Button.d.ts +0 -102
  244. package/dist/ui/Button.d.ts.map +0 -1
  245. package/dist/ui/Button.js +0 -233
  246. package/dist/ui/Button.js.map +0 -1
  247. package/dist/ui/Card.d.ts +0 -65
  248. package/dist/ui/Card.d.ts.map +0 -1
  249. package/dist/ui/Card.js +0 -109
  250. package/dist/ui/Card.js.map +0 -1
  251. package/dist/ui/Checkbox.d.ts +0 -24
  252. package/dist/ui/Checkbox.d.ts.map +0 -1
  253. package/dist/ui/Checkbox.js +0 -35
  254. package/dist/ui/Checkbox.js.map +0 -1
  255. package/dist/ui/Chip.d.ts +0 -28
  256. package/dist/ui/Chip.d.ts.map +0 -1
  257. package/dist/ui/Chip.js +0 -36
  258. package/dist/ui/Chip.js.map +0 -1
  259. package/dist/ui/CodeViewer.d.ts +0 -38
  260. package/dist/ui/CodeViewer.d.ts.map +0 -1
  261. package/dist/ui/CodeViewer.js +0 -107
  262. package/dist/ui/CodeViewer.js.map +0 -1
  263. package/dist/ui/ConfirmModal.d.ts +0 -50
  264. package/dist/ui/ConfirmModal.d.ts.map +0 -1
  265. package/dist/ui/ConfirmModal.js +0 -47
  266. package/dist/ui/ConfirmModal.js.map +0 -1
  267. package/dist/ui/DateTimePicker.d.ts +0 -45
  268. package/dist/ui/DateTimePicker.d.ts.map +0 -1
  269. package/dist/ui/DateTimePicker.js +0 -462
  270. package/dist/ui/DateTimePicker.js.map +0 -1
  271. package/dist/ui/EmptyState.d.ts +0 -12
  272. package/dist/ui/EmptyState.d.ts.map +0 -1
  273. package/dist/ui/EmptyState.js +0 -10
  274. package/dist/ui/EmptyState.js.map +0 -1
  275. package/dist/ui/Field.d.ts +0 -125
  276. package/dist/ui/Field.d.ts.map +0 -1
  277. package/dist/ui/Field.js +0 -175
  278. package/dist/ui/Field.js.map +0 -1
  279. package/dist/ui/FieldHint.d.ts +0 -18
  280. package/dist/ui/FieldHint.d.ts.map +0 -1
  281. package/dist/ui/FieldHint.js +0 -40
  282. package/dist/ui/FieldHint.js.map +0 -1
  283. package/dist/ui/FlipText.d.ts +0 -43
  284. package/dist/ui/FlipText.d.ts.map +0 -1
  285. package/dist/ui/FlipText.js +0 -59
  286. package/dist/ui/FlipText.js.map +0 -1
  287. package/dist/ui/InputGroup.d.ts +0 -91
  288. package/dist/ui/InputGroup.d.ts.map +0 -1
  289. package/dist/ui/InputGroup.js +0 -125
  290. package/dist/ui/InputGroup.js.map +0 -1
  291. package/dist/ui/LiveText.d.ts +0 -13
  292. package/dist/ui/LiveText.d.ts.map +0 -1
  293. package/dist/ui/LiveText.js +0 -19
  294. package/dist/ui/LiveText.js.map +0 -1
  295. package/dist/ui/Loader.d.ts +0 -49
  296. package/dist/ui/Loader.d.ts.map +0 -1
  297. package/dist/ui/Loader.js +0 -79
  298. package/dist/ui/Loader.js.map +0 -1
  299. package/dist/ui/LoaderBar.d.ts +0 -38
  300. package/dist/ui/LoaderBar.d.ts.map +0 -1
  301. package/dist/ui/LoaderBar.js +0 -79
  302. package/dist/ui/LoaderBar.js.map +0 -1
  303. package/dist/ui/Loading.d.ts +0 -69
  304. package/dist/ui/Loading.d.ts.map +0 -1
  305. package/dist/ui/Loading.js +0 -164
  306. package/dist/ui/Loading.js.map +0 -1
  307. package/dist/ui/MarqueeText.d.ts +0 -22
  308. package/dist/ui/MarqueeText.d.ts.map +0 -1
  309. package/dist/ui/MarqueeText.js +0 -52
  310. package/dist/ui/MarqueeText.js.map +0 -1
  311. package/dist/ui/Modal.d.ts +0 -73
  312. package/dist/ui/Modal.d.ts.map +0 -1
  313. package/dist/ui/Modal.js +0 -83
  314. package/dist/ui/Modal.js.map +0 -1
  315. package/dist/ui/ModelPicker.d.ts +0 -48
  316. package/dist/ui/ModelPicker.d.ts.map +0 -1
  317. package/dist/ui/ModelPicker.js +0 -101
  318. package/dist/ui/ModelPicker.js.map +0 -1
  319. package/dist/ui/Pagination.d.ts +0 -59
  320. package/dist/ui/Pagination.d.ts.map +0 -1
  321. package/dist/ui/Pagination.js +0 -112
  322. package/dist/ui/Pagination.js.map +0 -1
  323. package/dist/ui/PanelDock.d.ts +0 -132
  324. package/dist/ui/PanelDock.d.ts.map +0 -1
  325. package/dist/ui/PanelDock.js +0 -390
  326. package/dist/ui/PanelDock.js.map +0 -1
  327. package/dist/ui/Picker.d.ts +0 -56
  328. package/dist/ui/Picker.d.ts.map +0 -1
  329. package/dist/ui/Picker.js +0 -244
  330. package/dist/ui/Picker.js.map +0 -1
  331. package/dist/ui/QuickToolbar.d.ts +0 -54
  332. package/dist/ui/QuickToolbar.d.ts.map +0 -1
  333. package/dist/ui/QuickToolbar.js +0 -254
  334. package/dist/ui/QuickToolbar.js.map +0 -1
  335. package/dist/ui/SectionHead.d.ts +0 -35
  336. package/dist/ui/SectionHead.d.ts.map +0 -1
  337. package/dist/ui/SectionHead.js +0 -45
  338. package/dist/ui/SectionHead.js.map +0 -1
  339. package/dist/ui/Segmented.d.ts +0 -99
  340. package/dist/ui/Segmented.d.ts.map +0 -1
  341. package/dist/ui/Segmented.js +0 -135
  342. package/dist/ui/Segmented.js.map +0 -1
  343. package/dist/ui/SideSheet.d.ts +0 -70
  344. package/dist/ui/SideSheet.d.ts.map +0 -1
  345. package/dist/ui/SideSheet.js +0 -130
  346. package/dist/ui/SideSheet.js.map +0 -1
  347. package/dist/ui/SplitGroup.d.ts +0 -37
  348. package/dist/ui/SplitGroup.d.ts.map +0 -1
  349. package/dist/ui/SplitGroup.js +0 -36
  350. package/dist/ui/SplitGroup.js.map +0 -1
  351. package/dist/ui/Surface.d.ts +0 -43
  352. package/dist/ui/Surface.d.ts.map +0 -1
  353. package/dist/ui/Surface.js +0 -39
  354. package/dist/ui/Surface.js.map +0 -1
  355. package/dist/ui/Table.d.ts +0 -30
  356. package/dist/ui/Table.d.ts.map +0 -1
  357. package/dist/ui/Table.js +0 -96
  358. package/dist/ui/Table.js.map +0 -1
  359. package/dist/ui/Textarea.d.ts +0 -36
  360. package/dist/ui/Textarea.d.ts.map +0 -1
  361. package/dist/ui/Textarea.js +0 -35
  362. package/dist/ui/Textarea.js.map +0 -1
  363. package/dist/ui/Toast.d.ts +0 -45
  364. package/dist/ui/Toast.d.ts.map +0 -1
  365. package/dist/ui/Toast.js +0 -225
  366. package/dist/ui/Toast.js.map +0 -1
  367. package/dist/ui/WorkspacePicker.d.ts +0 -35
  368. package/dist/ui/WorkspacePicker.d.ts.map +0 -1
  369. package/dist/ui/WorkspacePicker.js +0 -39
  370. package/dist/ui/WorkspacePicker.js.map +0 -1
  371. package/dist/ui/card-css.d.ts +0 -2
  372. package/dist/ui/card-css.d.ts.map +0 -1
  373. package/dist/ui/card-css.generated.d.ts +0 -2
  374. package/dist/ui/card-css.generated.d.ts.map +0 -1
  375. package/dist/ui/card-css.generated.js +0 -4
  376. package/dist/ui/card-css.generated.js.map +0 -1
  377. package/dist/ui/card-css.js +0 -5
  378. package/dist/ui/card-css.js.map +0 -1
  379. package/dist/ui/chevron.d.ts +0 -22
  380. package/dist/ui/chevron.d.ts.map +0 -1
  381. package/dist/ui/chevron.js +0 -33
  382. package/dist/ui/chevron.js.map +0 -1
  383. package/dist/ui/chip-css.d.ts +0 -2
  384. package/dist/ui/chip-css.d.ts.map +0 -1
  385. package/dist/ui/chip-css.generated.d.ts +0 -2
  386. package/dist/ui/chip-css.generated.d.ts.map +0 -1
  387. package/dist/ui/chip-css.generated.js +0 -4
  388. package/dist/ui/chip-css.generated.js.map +0 -1
  389. package/dist/ui/chip-css.js +0 -12
  390. package/dist/ui/chip-css.js.map +0 -1
  391. package/dist/ui/code-viewer-css.d.ts +0 -2
  392. package/dist/ui/code-viewer-css.d.ts.map +0 -1
  393. package/dist/ui/code-viewer-css.generated.d.ts +0 -2
  394. package/dist/ui/code-viewer-css.generated.d.ts.map +0 -1
  395. package/dist/ui/code-viewer-css.generated.js +0 -4
  396. package/dist/ui/code-viewer-css.generated.js.map +0 -1
  397. package/dist/ui/code-viewer-css.js +0 -3
  398. package/dist/ui/code-viewer-css.js.map +0 -1
  399. package/dist/ui/code-viewer-lang.d.ts +0 -15
  400. package/dist/ui/code-viewer-lang.d.ts.map +0 -1
  401. package/dist/ui/code-viewer-lang.js +0 -190
  402. package/dist/ui/code-viewer-lang.js.map +0 -1
  403. package/dist/ui/code-viewer-theme.d.ts +0 -5
  404. package/dist/ui/code-viewer-theme.d.ts.map +0 -1
  405. package/dist/ui/code-viewer-theme.js +0 -138
  406. package/dist/ui/code-viewer-theme.js.map +0 -1
  407. package/dist/ui/controls/button-css.generated.d.ts +0 -2
  408. package/dist/ui/controls/button-css.generated.d.ts.map +0 -1
  409. package/dist/ui/controls/button-css.generated.js +0 -4
  410. package/dist/ui/controls/button-css.generated.js.map +0 -1
  411. package/dist/ui/controls/datetime-css.generated.d.ts +0 -2
  412. package/dist/ui/controls/datetime-css.generated.d.ts.map +0 -1
  413. package/dist/ui/controls/datetime-css.generated.js +0 -4
  414. package/dist/ui/controls/datetime-css.generated.js.map +0 -1
  415. package/dist/ui/controls/field-css.generated.d.ts +0 -2
  416. package/dist/ui/controls/field-css.generated.d.ts.map +0 -1
  417. package/dist/ui/controls/field-css.generated.js +0 -4
  418. package/dist/ui/controls/field-css.generated.js.map +0 -1
  419. package/dist/ui/controls/hint-css.generated.d.ts +0 -2
  420. package/dist/ui/controls/hint-css.generated.d.ts.map +0 -1
  421. package/dist/ui/controls/hint-css.generated.js +0 -4
  422. package/dist/ui/controls/hint-css.generated.js.map +0 -1
  423. package/dist/ui/controls/input-group-css.generated.d.ts +0 -2
  424. package/dist/ui/controls/input-group-css.generated.d.ts.map +0 -1
  425. package/dist/ui/controls/input-group-css.generated.js +0 -4
  426. package/dist/ui/controls/input-group-css.generated.js.map +0 -1
  427. package/dist/ui/controls/loader-bar-css.generated.d.ts +0 -2
  428. package/dist/ui/controls/loader-bar-css.generated.d.ts.map +0 -1
  429. package/dist/ui/controls/loader-bar-css.generated.js +0 -4
  430. package/dist/ui/controls/loader-bar-css.generated.js.map +0 -1
  431. package/dist/ui/controls/loader-css.generated.d.ts +0 -2
  432. package/dist/ui/controls/loader-css.generated.d.ts.map +0 -1
  433. package/dist/ui/controls/loader-css.generated.js +0 -4
  434. package/dist/ui/controls/loader-css.generated.js.map +0 -1
  435. package/dist/ui/controls/loading-css.generated.d.ts +0 -2
  436. package/dist/ui/controls/loading-css.generated.d.ts.map +0 -1
  437. package/dist/ui/controls/loading-css.generated.js +0 -4
  438. package/dist/ui/controls/loading-css.generated.js.map +0 -1
  439. package/dist/ui/controls/pagination-css.generated.d.ts +0 -2
  440. package/dist/ui/controls/pagination-css.generated.d.ts.map +0 -1
  441. package/dist/ui/controls/pagination-css.generated.js +0 -4
  442. package/dist/ui/controls/pagination-css.generated.js.map +0 -1
  443. package/dist/ui/controls/quick-toolbar-css.generated.d.ts +0 -2
  444. package/dist/ui/controls/quick-toolbar-css.generated.d.ts.map +0 -1
  445. package/dist/ui/controls/quick-toolbar-css.generated.js +0 -4
  446. package/dist/ui/controls/quick-toolbar-css.generated.js.map +0 -1
  447. package/dist/ui/controls/section-head-css.generated.d.ts +0 -2
  448. package/dist/ui/controls/section-head-css.generated.d.ts.map +0 -1
  449. package/dist/ui/controls/section-head-css.generated.js +0 -4
  450. package/dist/ui/controls/section-head-css.generated.js.map +0 -1
  451. package/dist/ui/controls/segmented-css.generated.d.ts +0 -2
  452. package/dist/ui/controls/segmented-css.generated.d.ts.map +0 -1
  453. package/dist/ui/controls/segmented-css.generated.js +0 -4
  454. package/dist/ui/controls/segmented-css.generated.js.map +0 -1
  455. package/dist/ui/controls/split-group-css.generated.d.ts +0 -2
  456. package/dist/ui/controls/split-group-css.generated.d.ts.map +0 -1
  457. package/dist/ui/controls/split-group-css.generated.js +0 -4
  458. package/dist/ui/controls/split-group-css.generated.js.map +0 -1
  459. package/dist/ui/controls/table-css.generated.d.ts +0 -2
  460. package/dist/ui/controls/table-css.generated.d.ts.map +0 -1
  461. package/dist/ui/controls/table-css.generated.js +0 -4
  462. package/dist/ui/controls/table-css.generated.js.map +0 -1
  463. package/dist/ui/controls/table-plain-css.generated.d.ts +0 -2
  464. package/dist/ui/controls/table-plain-css.generated.d.ts.map +0 -1
  465. package/dist/ui/controls/table-plain-css.generated.js +0 -4
  466. package/dist/ui/controls/table-plain-css.generated.js.map +0 -1
  467. package/dist/ui/controls-css.d.ts +0 -16
  468. package/dist/ui/controls-css.d.ts.map +0 -1
  469. package/dist/ui/controls-css.js +0 -26
  470. package/dist/ui/controls-css.js.map +0 -1
  471. package/dist/ui/css.d.ts +0 -35
  472. package/dist/ui/css.d.ts.map +0 -1
  473. package/dist/ui/css.js +0 -52
  474. package/dist/ui/css.js.map +0 -1
  475. package/dist/ui/datetime-logic.d.ts +0 -102
  476. package/dist/ui/datetime-logic.d.ts.map +0 -1
  477. package/dist/ui/datetime-logic.js +0 -200
  478. package/dist/ui/datetime-logic.js.map +0 -1
  479. package/dist/ui/feedback-css.d.ts +0 -2
  480. package/dist/ui/feedback-css.d.ts.map +0 -1
  481. package/dist/ui/feedback-css.generated.d.ts +0 -2
  482. package/dist/ui/feedback-css.generated.d.ts.map +0 -1
  483. package/dist/ui/feedback-css.generated.js +0 -4
  484. package/dist/ui/feedback-css.generated.js.map +0 -1
  485. package/dist/ui/feedback-css.js +0 -4
  486. package/dist/ui/feedback-css.js.map +0 -1
  487. package/dist/ui/flip-css.d.ts +0 -2
  488. package/dist/ui/flip-css.d.ts.map +0 -1
  489. package/dist/ui/flip-css.generated.d.ts +0 -2
  490. package/dist/ui/flip-css.generated.d.ts.map +0 -1
  491. package/dist/ui/flip-css.generated.js +0 -4
  492. package/dist/ui/flip-css.generated.js.map +0 -1
  493. package/dist/ui/flip-css.js +0 -4
  494. package/dist/ui/flip-css.js.map +0 -1
  495. package/dist/ui/host-data.d.ts +0 -119
  496. package/dist/ui/host-data.d.ts.map +0 -1
  497. package/dist/ui/host-data.js +0 -122
  498. package/dist/ui/host-data.js.map +0 -1
  499. package/dist/ui/host-toast.d.ts +0 -23
  500. package/dist/ui/host-toast.d.ts.map +0 -1
  501. package/dist/ui/host-toast.js +0 -34
  502. package/dist/ui/host-toast.js.map +0 -1
  503. package/dist/ui/loader-bar-art.d.ts +0 -6
  504. package/dist/ui/loader-bar-art.d.ts.map +0 -1
  505. package/dist/ui/loader-bar-art.js +0 -6
  506. package/dist/ui/loader-bar-art.js.map +0 -1
  507. package/dist/ui/loading-host.d.ts +0 -49
  508. package/dist/ui/loading-host.d.ts.map +0 -1
  509. package/dist/ui/loading-host.js +0 -57
  510. package/dist/ui/loading-host.js.map +0 -1
  511. package/dist/ui/locale.d.ts +0 -4
  512. package/dist/ui/locale.d.ts.map +0 -1
  513. package/dist/ui/locale.js +0 -17
  514. package/dist/ui/locale.js.map +0 -1
  515. package/dist/ui/marquee-css.d.ts +0 -2
  516. package/dist/ui/marquee-css.d.ts.map +0 -1
  517. package/dist/ui/marquee-css.generated.d.ts +0 -2
  518. package/dist/ui/marquee-css.generated.d.ts.map +0 -1
  519. package/dist/ui/marquee-css.generated.js +0 -4
  520. package/dist/ui/marquee-css.generated.js.map +0 -1
  521. package/dist/ui/marquee-css.js +0 -4
  522. package/dist/ui/marquee-css.js.map +0 -1
  523. package/dist/ui/modal-host.d.ts +0 -51
  524. package/dist/ui/modal-host.d.ts.map +0 -1
  525. package/dist/ui/modal-host.js +0 -170
  526. package/dist/ui/modal-host.js.map +0 -1
  527. package/dist/ui/overlay-css.d.ts +0 -2
  528. package/dist/ui/overlay-css.d.ts.map +0 -1
  529. package/dist/ui/overlay-css.generated.d.ts +0 -2
  530. package/dist/ui/overlay-css.generated.d.ts.map +0 -1
  531. package/dist/ui/overlay-css.generated.js +0 -4
  532. package/dist/ui/overlay-css.generated.js.map +0 -1
  533. package/dist/ui/overlay-css.js +0 -2
  534. package/dist/ui/overlay-css.js.map +0 -1
  535. package/dist/ui/overlay.d.ts +0 -62
  536. package/dist/ui/overlay.d.ts.map +0 -1
  537. package/dist/ui/overlay.js +0 -94
  538. package/dist/ui/overlay.js.map +0 -1
  539. package/dist/ui/pagination-logic.d.ts +0 -36
  540. package/dist/ui/pagination-logic.d.ts.map +0 -1
  541. package/dist/ui/pagination-logic.js +0 -73
  542. package/dist/ui/pagination-logic.js.map +0 -1
  543. package/dist/ui/panel-css.d.ts +0 -2
  544. package/dist/ui/panel-css.d.ts.map +0 -1
  545. package/dist/ui/panel-css.generated.d.ts +0 -2
  546. package/dist/ui/panel-css.generated.d.ts.map +0 -1
  547. package/dist/ui/panel-css.generated.js +0 -4
  548. package/dist/ui/panel-css.generated.js.map +0 -1
  549. package/dist/ui/panel-css.js +0 -2
  550. package/dist/ui/panel-css.js.map +0 -1
  551. package/dist/ui/panel-dock-css.d.ts +0 -2
  552. package/dist/ui/panel-dock-css.d.ts.map +0 -1
  553. package/dist/ui/panel-dock-css.generated.d.ts +0 -2
  554. package/dist/ui/panel-dock-css.generated.d.ts.map +0 -1
  555. package/dist/ui/panel-dock-css.generated.js +0 -4
  556. package/dist/ui/panel-dock-css.generated.js.map +0 -1
  557. package/dist/ui/panel-dock-css.js +0 -4
  558. package/dist/ui/panel-dock-css.js.map +0 -1
  559. package/dist/ui/panel-dock-logic.d.ts +0 -67
  560. package/dist/ui/panel-dock-logic.d.ts.map +0 -1
  561. package/dist/ui/panel-dock-logic.js +0 -110
  562. package/dist/ui/panel-dock-logic.js.map +0 -1
  563. package/dist/ui/panel.d.ts +0 -41
  564. package/dist/ui/panel.d.ts.map +0 -1
  565. package/dist/ui/panel.js +0 -37
  566. package/dist/ui/panel.js.map +0 -1
  567. package/dist/ui/picker-css.d.ts +0 -2
  568. package/dist/ui/picker-css.d.ts.map +0 -1
  569. package/dist/ui/picker-css.generated.d.ts +0 -2
  570. package/dist/ui/picker-css.generated.d.ts.map +0 -1
  571. package/dist/ui/picker-css.generated.js +0 -4
  572. package/dist/ui/picker-css.generated.js.map +0 -1
  573. package/dist/ui/picker-css.js +0 -4
  574. package/dist/ui/picker-css.js.map +0 -1
  575. package/dist/ui/picker-icons.d.ts +0 -12
  576. package/dist/ui/picker-icons.d.ts.map +0 -1
  577. package/dist/ui/picker-icons.js +0 -29
  578. package/dist/ui/picker-icons.js.map +0 -1
  579. package/dist/ui/picker-logic.d.ts +0 -33
  580. package/dist/ui/picker-logic.d.ts.map +0 -1
  581. package/dist/ui/picker-logic.js +0 -68
  582. package/dist/ui/picker-logic.js.map +0 -1
  583. package/dist/ui/quick-toolbar-logic.d.ts +0 -76
  584. package/dist/ui/quick-toolbar-logic.d.ts.map +0 -1
  585. package/dist/ui/quick-toolbar-logic.js +0 -40
  586. package/dist/ui/quick-toolbar-logic.js.map +0 -1
  587. package/dist/ui/resizer.d.ts +0 -29
  588. package/dist/ui/resizer.d.ts.map +0 -1
  589. package/dist/ui/resizer.js +0 -42
  590. package/dist/ui/resizer.js.map +0 -1
  591. package/dist/ui/side-panel-css.d.ts +0 -2
  592. package/dist/ui/side-panel-css.d.ts.map +0 -1
  593. package/dist/ui/side-panel-css.generated.d.ts +0 -2
  594. package/dist/ui/side-panel-css.generated.d.ts.map +0 -1
  595. package/dist/ui/side-panel-css.generated.js +0 -4
  596. package/dist/ui/side-panel-css.generated.js.map +0 -1
  597. package/dist/ui/side-panel-css.js +0 -2
  598. package/dist/ui/side-panel-css.js.map +0 -1
  599. package/dist/ui/side-sheet-css.d.ts +0 -2
  600. package/dist/ui/side-sheet-css.d.ts.map +0 -1
  601. package/dist/ui/side-sheet-css.generated.d.ts +0 -2
  602. package/dist/ui/side-sheet-css.generated.d.ts.map +0 -1
  603. package/dist/ui/side-sheet-css.generated.js +0 -4
  604. package/dist/ui/side-sheet-css.generated.js.map +0 -1
  605. package/dist/ui/side-sheet-css.js +0 -2
  606. package/dist/ui/side-sheet-css.js.map +0 -1
  607. package/dist/ui/surface-css.d.ts +0 -2
  608. package/dist/ui/surface-css.d.ts.map +0 -1
  609. package/dist/ui/surface-css.generated.d.ts +0 -2
  610. package/dist/ui/surface-css.generated.d.ts.map +0 -1
  611. package/dist/ui/surface-css.generated.js +0 -4
  612. package/dist/ui/surface-css.generated.js.map +0 -1
  613. package/dist/ui/surface-css.js +0 -7
  614. package/dist/ui/surface-css.js.map +0 -1
  615. package/dist/ui/table-logic.d.ts +0 -110
  616. package/dist/ui/table-logic.d.ts.map +0 -1
  617. package/dist/ui/table-logic.js +0 -81
  618. package/dist/ui/table-logic.js.map +0 -1
  619. package/dist/ui/table-shared.d.ts +0 -101
  620. package/dist/ui/table-shared.d.ts.map +0 -1
  621. package/dist/ui/table-shared.js +0 -229
  622. package/dist/ui/table-shared.js.map +0 -1
  623. package/dist/ui/thenable.d.ts +0 -9
  624. package/dist/ui/thenable.d.ts.map +0 -1
  625. package/dist/ui/thenable.js +0 -15
  626. package/dist/ui/thenable.js.map +0 -1
  627. package/dist/ui/ticker.d.ts +0 -8
  628. package/dist/ui/ticker.d.ts.map +0 -1
  629. package/dist/ui/ticker.js +0 -49
  630. package/dist/ui/ticker.js.map +0 -1
  631. package/dist/ui/toast-host.d.ts +0 -24
  632. package/dist/ui/toast-host.d.ts.map +0 -1
  633. package/dist/ui/toast-host.js +0 -20
  634. package/dist/ui/toast-host.js.map +0 -1
  635. package/dist/ui/tooltip.d.ts +0 -29
  636. package/dist/ui/tooltip.d.ts.map +0 -1
  637. package/dist/ui/tooltip.js +0 -10
  638. package/dist/ui/tooltip.js.map +0 -1
@@ -1,111 +0,0 @@
1
- // 官方对照:ui-chat@0.2.1-rc.5 lib/client.js:6107-6260(reasoningText / latestCompletedParagraphFirstLine /
2
- // ReasoningRow)+ ReasoningContent(lib/client.js:6568-6576)。
3
- // root[data-variant=think][data-state=running|ok][data-expanded][data-preview]
4
- // > [running] visuallyHidden「正在思考」
5
- // > DisclosureRow(icon=IconThinkOutlineRegular 14px,title=t("message.think")=「思考」,running ⇒ 整行 shimmer)
6
- // collapsedContent = separator(data-shimmer-decoration, 2×2px) + summary[data-streaming]
7
- // > summaryText > TextShimmer(summary)
8
- // content = thinkBody > MarkdownText(compact, streaming=running)
9
- // 折叠态 root 固定一行高(contain:size layout + height 24px+delta);[data-preview] 缺失 ⇒ separator/summary 隐藏。
10
- import { Fragment, createElement as h, useMemo, useState } from 'react';
11
- import { DisclosureRow, IconThinkOutlineRegular, MarkdownText, TextShimmer } from '../../ui/official.js';
12
- import { officialClass } from '../official-classes.js';
13
- import { markdownLabels } from '../../explorer/preview/md-labels.js';
14
- /** 官方 firstLine(lib/client.js:6140 区):首行。 */
15
- function firstLine(text) {
16
- const newline = text.indexOf('\n');
17
- return newline === -1 ? text : text.slice(0, newline);
18
- }
19
- /** 官方 reasoningText:剥掉模型签名包裹(`<signature>…</signature>`),无可见内容返回空串。 */
20
- function reasoningText(text) {
21
- if (text[0] !== '<')
22
- return text;
23
- const opening = '<signature>';
24
- if (opening.startsWith(text))
25
- return '';
26
- if (!text.startsWith(opening))
27
- return text;
28
- const end = text.indexOf('</signature>', 11);
29
- if (end === -1)
30
- return '';
31
- let start = end + 12;
32
- while (start < text.length) {
33
- if (text[start] === '\n')
34
- start += 1;
35
- else if (text[start] === '\r' && text[start + 1] === '\n')
36
- start += 2;
37
- else
38
- break;
39
- }
40
- return text.slice(start);
41
- }
42
- /** 官方 latestCompletedParagraphFirstLine:最后一段已结束段落的首行(流式预览用)。 */
43
- function latestCompletedParagraphFirstLine(text) {
44
- let summary = '';
45
- let paragraphStart = 0;
46
- const separator = /\r?\n(?:[\t ]*\r?\n)+/g;
47
- for (;;) {
48
- const nextParagraph = separator.exec(text);
49
- const paragraphEnd = nextParagraph === null ? text.length : nextParagraph.index + nextParagraph[0].indexOf('\n');
50
- const newline = text.indexOf('\n', paragraphStart);
51
- if (newline !== -1 && newline <= paragraphEnd) {
52
- const candidate = text.slice(paragraphStart, newline).trim();
53
- if (candidate !== '')
54
- summary = candidate;
55
- }
56
- if (nextParagraph === null)
57
- return summary;
58
- paragraphStart = nextParagraph.index + nextParagraph[0].length;
59
- }
60
- }
61
- /** 思考行:折叠 = 「思考 · 首行预览 ⌄」;展开 = thinkBody 全文(MarkdownText compact)。 */
62
- export function ReasoningRowMirror(props) {
63
- const { text: rawText, running = false, preview: settledPreview = true, t } = props;
64
- const [open, setOpen] = useState(false);
65
- const text = useMemo(() => reasoningText(rawText), [rawText]);
66
- if (text !== rawText && text.trim() === '')
67
- return null;
68
- const summaryText = running ? latestCompletedParagraphFirstLine(text) : firstLine(text);
69
- // lib 目标是 ES2020(无 String.replaceAll)⇒ split/join 等价去 `**`。
70
- const summary = summaryText.split('**').join('');
71
- const preview = !open && summary !== '' && (running || settledPreview);
72
- return h('div', {
73
- className: officialClass('ReasoningRow', 'root') ?? '',
74
- 'data-variant': 'think',
75
- 'data-state': running ? 'running' : 'ok',
76
- 'data-expanded': open || undefined,
77
- 'data-preview': preview || undefined,
78
- }, running
79
- ? h('span', { className: officialClass('accessibility', 'visuallyHidden') ?? '' }, t('reasoningRunning'))
80
- : null, h(DisclosureRow, {
81
- icon: h(IconThinkOutlineRegular, { size: 14 }),
82
- title: t('thinkLabel'),
83
- running,
84
- open,
85
- expandable: true,
86
- expandOnRowClick: true,
87
- onToggle: () => { setOpen(value => !value); },
88
- rowClassName: officialClass('ReasoningRow', 'row') ?? '',
89
- leadingClassName: officialClass('ReasoningRow', 'leading') ?? '',
90
- titleClassName: officialClass('ReasoningRow', 'title') ?? '',
91
- collapsedContent: h(Fragment, null, h('span', {
92
- className: officialClass('ReasoningRow', 'separator') ?? '',
93
- 'data-shimmer-decoration': true,
94
- 'aria-hidden': true,
95
- }),
96
- // 官方是 summary > summaryText 两层:外层 nowrap 截断、内层 text-overflow:ellipsis(省略号)。
97
- h('span', {
98
- className: officialClass('ReasoningRow', 'summary') ?? '',
99
- 'data-streaming': running || undefined,
100
- }, h('span', { className: officialClass('ReasoningRow', 'summaryText') ?? '' }, h(TextShimmer, null, summary)))),
101
- children: open
102
- ? h('div', { className: officialClass('ReasoningRow', 'thinkBody') ?? '' }, h(MarkdownText, {
103
- text,
104
- streaming: running,
105
- labels: markdownLabels(),
106
- variant: 'compact',
107
- }))
108
- : undefined,
109
- }));
110
- }
111
- //# sourceMappingURL=ReasoningRow.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReasoningRow.js","sourceRoot":"","sources":["../../../src/session/mirror/ReasoningRow.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import { createElement as h } from 'react';
2
- import type { Translate } from '../../utils/i18n.js';
3
- /**
4
- * 运行中状态行:会话流末尾一行「深度求索中,用时 N 秒 ···」(蓝色 shimmer)。
5
- * @param startTime - 当前 turn 开始时间;undefined = 尚未起轮(只显示「深度求索中」)。
6
- * @param t - 翻译席位。
7
- */
8
- export declare function RunningStatusMirror(props: {
9
- startTime: number | undefined;
10
- t: Translate;
11
- }): ReturnType<typeof h>;
12
- //# sourceMappingURL=RunningStatus.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RunningStatus.d.ts","sourceRoot":"","sources":["../../../src/session/mirror/RunningStatus.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,IAAI,CAAC,EAAuB,MAAM,OAAO,CAAA;AAG/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAuBpD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE;IACzC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,CAAC,EAAE,SAAS,CAAA;CACb,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,CA+BvB"}
@@ -1,57 +0,0 @@
1
- // 官方对照:ui-chat@0.2.1-rc.5 lib/client.js:5580-5638(RunningWhaleTail + RunningStatus;
2
- // 0.2.2-alpha.3 仅多 paused/holding 两个占位参数,默认渲染同构)
3
- // root div.running[data-chat-running]
4
- // > visuallyHidden(role=status) > runningDivider(.5px 顶部横线,官方 CSS 按「前一项是否 tail」显隐)
5
- // > runningContent > runningIcon(鲸尾:animated APNG mask + still SVG 兜底)+ TextShimmer(label)
6
- // label:startTime 缺失 =「深度求索中」;否则「深度求索中,用时 {duration} ···」(duration = formatRunDuration)。
7
- // ⚠ 0.2.x 起运行态只由这一行代表:turn 未关闭时官方 TurnProcessNodeView 整块不渲染(见 TurnProcessNodeView.ts)。
8
- import { createElement as h, useEffect, useState } from 'react';
9
- import { TextShimmer } from '../../ui/official.js';
10
- import { officialClass } from '../official-classes.js';
11
- import { durationText, formatRunDuration } from './message-chrome.js';
12
- /** 官方 LIVE_RUN_CLOCK_INTERVAL_MS(lib/client.js:979)。 */
13
- const LIVE_RUN_CLOCK_INTERVAL_MS = 1000;
14
- /** 官方静态兜底 SVG 的鲸尾路径(lib/client.js:6340 REST_PATH,16×16)。 */
15
- const REST_PATH = 'M8.844 13.742C8.967 12.328 8.45 10.4 8.45 9.65C8.45 8.94 8.88 8.43 9.6 8.43C11.285 8.43 12.106 8.281 12.685 8.104C13.71 7.791 14.585 6.768 15.055 5.945C15.137 5.803 14.99 5.641 14.829 5.671C13.829 5.86 12.828 5.376 11.827 4.978C10.659 4.514 9.491 4.707 8.935 4.876C8.805 4.915 8.658 4.819 8.636 4.686C8.468 3.643 7.405 2.615 5.498 2.238C4.54 2.048 3.748 1.574 3.347 1.202C3.252 1.113 3.088 1.125 3.03 1.242C2.628 2.059 2.168 3.82 5.248 6.115C5.82 6.494 6.31 6.785 6.574 7.637C6.72 8.104 6.157 9.168 6.061 9.368C5.157 11.27 5.089 12.19 4.926 13.742';
16
- /** 官方 RunningWhaleTail:APNG mask 动画(官方 CSS 提供资源)+ 静态 SVG 兜底。 */
17
- function RunningWhaleTail() {
18
- return h('span', { className: officialClass('ChatView', 'runningIcon') ?? '', 'aria-hidden': 'true' }, h('span', { className: officialClass('ChatView', 'runningWhaleAnimated') ?? '' }), h('svg', {
19
- className: officialClass('ChatView', 'runningWhaleStill') ?? '',
20
- width: '100%',
21
- height: '100%',
22
- viewBox: '0 0 16 16',
23
- fill: 'none',
24
- }, h('path', { d: REST_PATH, stroke: 'currentColor', strokeWidth: 1 })));
25
- }
26
- /**
27
- * 运行中状态行:会话流末尾一行「深度求索中,用时 N 秒 ···」(蓝色 shimmer)。
28
- * @param startTime - 当前 turn 开始时间;undefined = 尚未起轮(只显示「深度求索中」)。
29
- * @param t - 翻译席位。
30
- */
31
- export function RunningStatusMirror(props) {
32
- const { startTime, t } = props;
33
- const [now, setNow] = useState(() => Date.now());
34
- useEffect(() => {
35
- if (startTime === undefined)
36
- return;
37
- setNow(Date.now());
38
- const timer = setInterval(() => { setNow(Date.now()); }, LIVE_RUN_CLOCK_INTERVAL_MS);
39
- return () => { clearInterval(timer); };
40
- }, [startTime]);
41
- const label = startTime === undefined
42
- ? t('chatDeepDiving')
43
- : t('chatDeepDivingFor', { duration: durationText(formatRunDuration(Math.max(1000, now - startTime), t)) });
44
- return h('div', {
45
- className: officialClass('ChatView', 'running') ?? '',
46
- 'data-chat-running': true,
47
- }, h('span', {
48
- className: officialClass('accessibility', 'visuallyHidden') ?? '',
49
- role: 'status',
50
- 'aria-live': 'polite',
51
- 'aria-atomic': 'true',
52
- }, t('chatDeepDiving')), h('span', { className: officialClass('ChatView', 'runningDivider') ?? '', 'aria-hidden': 'true' }), h('span', { className: officialClass('ChatView', 'runningContent') ?? '' }, h(RunningWhaleTail, null), h(TextShimmer, {
53
- active: true,
54
- className: officialClass('ChatView', 'runningText') ?? '',
55
- }, label)));
56
- }
57
- //# sourceMappingURL=RunningStatus.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RunningStatus.js","sourceRoot":"","sources":["../../../src/session/mirror/RunningStatus.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import type { CSSProperties, RefObject } from 'react';
2
- /**
3
- * 官方 stat-dialog.ts 的 MEASURE_STYLE:首趟(pos 未定)时面板「隐藏但仍布局」,
4
- * 好让 useAnchoredPosition 量到真实尺寸。官方要求面板铺 `pos ?? MEASURE_STYLE`;
5
- * 漏了它 ⇒ 首趟完全无定位、面板落进文档流撑长页面(真机 2026-10-23:点用量无反应 + 滚动条变长)。
6
- */
7
- export declare const STAT_MEASURE_STYLE: CSSProperties;
8
- export interface StatDialogSeat {
9
- open: boolean;
10
- setOpen(open: boolean): void;
11
- rootRef: RefObject<HTMLSpanElement | null>;
12
- panelRef: RefObject<HTMLDivElement | null>;
13
- pos: CSSProperties | undefined;
14
- }
15
- /** 官方 useStatDialog:把弹层挂在触发器上方(side: 'top'),点外 / Esc 关闭。 */
16
- export declare function useStatDialog(controlled?: {
17
- open?: boolean;
18
- setOpen?(open: boolean): void;
19
- }): StatDialogSeat;
20
- //# sourceMappingURL=StatDialog.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StatDialog.d.ts","sourceRoot":"","sources":["../../../src/session/mirror/StatDialog.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAMrD;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,EAAE,aAAyD,CAAA;AAE1F,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,CAAA;IACb,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5B,OAAO,EAAE,SAAS,CAAC,eAAe,GAAG,IAAI,CAAC,CAAA;IAC1C,QAAQ,EAAE,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAA;IAC1C,GAAG,EAAE,aAAa,GAAG,SAAS,CAAA;CAC/B;AAED,4DAA4D;AAC5D,wBAAgB,aAAa,CAAC,UAAU,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAA;CAAE,GAAG,cAAc,CA4B5G"}
@@ -1,49 +0,0 @@
1
- // 官方对照:packages/client/ui-chat/src/client/chat/stat-dialog.js(0.1.7-rc.2 lib/client.js:6278-6350)
2
- // PANEL_MARGIN = 12 / PANEL_GAP = 8(lib/client.js:6281-6283)
3
- // useStatDialog = 受控开关 + useAnchoredPosition(side:'top') + useDismissOnOutsidePointer + Escape 关闭。
4
- // 官方用的是 primitives 的同名 hook,这里直接复用同一份实现(不是自绘定位)。
5
- import { useEffect, useRef, useState } from 'react';
6
- import { useAnchoredPosition, useDismissOnOutsidePointer } from '../../ui/official.js';
7
- const PANEL_MARGIN = 12;
8
- const PANEL_GAP = 8;
9
- /**
10
- * 官方 stat-dialog.ts 的 MEASURE_STYLE:首趟(pos 未定)时面板「隐藏但仍布局」,
11
- * 好让 useAnchoredPosition 量到真实尺寸。官方要求面板铺 `pos ?? MEASURE_STYLE`;
12
- * 漏了它 ⇒ 首趟完全无定位、面板落进文档流撑长页面(真机 2026-10-23:点用量无反应 + 滚动条变长)。
13
- */
14
- export const STAT_MEASURE_STYLE = { visibility: 'hidden', left: 0, top: 0 };
15
- /** 官方 useStatDialog:把弹层挂在触发器上方(side: 'top'),点外 / Esc 关闭。 */
16
- export function useStatDialog(controlled) {
17
- const [ownOpen, setOwnOpen] = useState(false);
18
- const open = controlled?.open ?? ownOpen;
19
- const setOpen = controlled?.setOpen ?? setOwnOpen;
20
- const rootRef = useRef(null);
21
- const panelRef = useRef(null);
22
- const pos = useAnchoredPosition({ open, anchorRef: rootRef, panelRef, side: 'top', gap: PANEL_GAP, margin: PANEL_MARGIN });
23
- useDismissOnOutsidePointer(rootRef, open, setOpen, panelRef);
24
- useEffect(() => {
25
- if (!open)
26
- return;
27
- const onKeyDown = (event) => {
28
- if (event.key === 'Escape')
29
- setOpen(false);
30
- };
31
- // 官方 chat:6806-6820:pointerdown 之外还要捕获阶段 click(只发 click 的交互也得关)。
32
- const onClick = (event) => {
33
- const target = event.target;
34
- if (!(target instanceof Node))
35
- return;
36
- if (rootRef.current?.contains(target) === true || panelRef.current?.contains(target) === true)
37
- return;
38
- setOpen(false);
39
- };
40
- document.addEventListener('keydown', onKeyDown);
41
- document.addEventListener('click', onClick, true);
42
- return () => {
43
- document.removeEventListener('keydown', onKeyDown);
44
- document.removeEventListener('click', onClick, true);
45
- };
46
- }, [open, setOpen]);
47
- return { open, setOpen, rootRef, panelRef, pos };
48
- }
49
- //# sourceMappingURL=StatDialog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StatDialog.js","sourceRoot":"","sources":["../../../src/session/mirror/StatDialog.ts"],"names":[],"mappings":"AAAA,kGAAkG;AAClG,+DAA+D;AAC/D,qGAAqG;AACrG,iDAAiD;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEnD,OAAO,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AAEtF,MAAM,YAAY,GAAG,EAAE,CAAA;AACvB,MAAM,SAAS,GAAG,CAAC,CAAA;AAEnB;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAkB,EAAE,UAAU,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAA;AAU1F,4DAA4D;AAC5D,MAAM,UAAU,aAAa,CAAC,UAA8D;IAC1F,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAA;IACtD,MAAM,IAAI,GAAG,UAAU,EAAE,IAAI,IAAI,OAAO,CAAA;IACxC,MAAM,OAAO,GAAG,UAAU,EAAE,OAAO,IAAI,UAAU,CAAA;IACjD,MAAM,OAAO,GAAG,MAAM,CAAyB,IAAI,CAAC,CAAA;IACpD,MAAM,QAAQ,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;IACpD,MAAM,GAAG,GAAG,mBAAmB,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAA;IAC1H,0BAA0B,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC5D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,IAAI;YAAE,OAAM;QACjB,MAAM,SAAS,GAAG,CAAC,KAAoB,EAAQ,EAAE;YAC/C,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ;gBAAE,OAAO,CAAC,KAAK,CAAC,CAAA;QAC5C,CAAC,CAAA;QACD,iEAAiE;QACjE,MAAM,OAAO,GAAG,CAAC,KAAiB,EAAQ,EAAE;YAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAA;YAC3B,IAAI,CAAC,CAAC,MAAM,YAAY,IAAI,CAAC;gBAAE,OAAM;YACrC,IAAI,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,KAAK,IAAI;gBAAE,OAAM;YACrG,OAAO,CAAC,KAAK,CAAC,CAAA;QAChB,CAAC,CAAA;QACD,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;QAC/C,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;QACjD,OAAO,GAAG,EAAE;YACV,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;YAClD,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;QACtD,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;IACnB,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAA;AAClD,CAAC"}
@@ -1,65 +0,0 @@
1
- import { type ReactElement } from 'react';
2
- import { type Translate } from '../../utils/i18n.js';
3
- export interface DetailField {
4
- label: string;
5
- value: string;
6
- }
7
- export interface DetailItemModel {
8
- title?: string;
9
- subtitle?: string;
10
- description?: string;
11
- fields: DetailField[];
12
- lines?: readonly string[];
13
- status?: {
14
- value: 'completed' | 'in_progress' | 'pending';
15
- label: string;
16
- };
17
- badge?: {
18
- tone?: string;
19
- label: string;
20
- };
21
- location?: {
22
- path: string;
23
- line?: number;
24
- };
25
- change?: {
26
- value?: 'added' | 'removed' | 'updated';
27
- label: string;
28
- };
29
- previousStatus?: string;
30
- markdown?: string;
31
- code?: {
32
- text: string;
33
- language?: string;
34
- };
35
- groups?: {
36
- label: string;
37
- items: DetailItemModel[];
38
- }[];
39
- }
40
- export interface ToolDetailsModel {
41
- items: DetailItemModel[];
42
- summary?: string;
43
- empty?: string;
44
- caption?: string;
45
- unchanged?: {
46
- label: string;
47
- items: DetailItemModel[];
48
- };
49
- }
50
- /**
51
- * 官方 detailsCardModel(3985-4029)的「目标 / 定时任务」子集。
52
- * 结算成功且结果为合法 JSON 才出详情卡;其余一律 null ⇒ 调用方走 ioCard 兜底。
53
- */
54
- export declare function detailsCardModel(name: string, argsRaw: string, output: string, settled: boolean, isError: boolean, t: Translate): ToolDetailsModel | null;
55
- /** 官方 DetailsRow 的摘要优先级(4080):summary → 第一项 title → empty → 原摘要。 */
56
- export declare function detailsSummary(model: ToolDetailsModel): string | undefined;
57
- /** 官方 ToolDetails(1458-1492):caption + 空态 / 列表 + 可折叠的「未变更」组。 */
58
- export declare function ToolDetailsView({ model, t, onOpenFile }: {
59
- model: ToolDetailsModel;
60
- t: Translate;
61
- onOpenFile?: (path: string, options?: {
62
- line?: number;
63
- }) => void;
64
- }): ReactElement;
65
- //# sourceMappingURL=ToolDetails.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToolDetails.d.ts","sourceRoot":"","sources":["../../../src/session/mirror/ToolDetails.ts"],"names":[],"mappings":"AAMA,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,OAAO,CAAA;AAU7D,OAAO,EAAa,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAA;AAG/D,MAAM,WAAW,WAAW;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;AAC7D,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,WAAW,EAAE,CAAA;IACrB,KAAK,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IACzB,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1E,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACxC,QAAQ,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1C,MAAM,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IACnE,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,IAAI,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IAC1C,MAAM,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,eAAe,EAAE,CAAA;KAAE,EAAE,CAAA;CACvD;AACD,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,eAAe,EAAE,CAAA;IACxB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,eAAe,EAAE,CAAA;KAAE,CAAA;CACxD;AAqID;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS,GAAG,gBAAgB,GAAG,IAAI,CAmCzJ;AAED,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,GAAG,SAAS,CAE1E;AA4ED,gEAAgE;AAChE,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE;IACxD,KAAK,EAAE,gBAAgB,CAAA;IACvB,CAAC,EAAE,SAAS,CAAA;IACZ,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAA;CACjE,GAAG,YAAY,CAcf"}
@@ -1,268 +0,0 @@
1
- // 官方对照:ui-tool `components/ToolDetails`(lib/client.js:1357-1492)
2
- // + `models/details-card-model`(:2988-3010、:3805-3821、:3854-3977、:3985-4029)。
3
- //
4
- // 本轮只移植「目标 / 定时任务」两族的模型(官方 `controlDetails` / `inspectionDetails`
5
- // 那 400+ 行仍落回 ioCard);视图保留这两族真正会用到的字段。
6
- // shortcut: control/inspection 系工具无专属详情,等宿主真机有样本再按同一模型接口补。
7
- import { createElement as h } from 'react';
8
- import { CodeBlock, IconCheckOutlineRegular, IconChevronRightOutlineRegular, IconPlayOutlineRegular, MarkdownText, } from '../../ui/official.js';
9
- import { officialClass } from '../official-classes.js';
10
- import { markdownLabels } from '../../explorer/preview/md-labels.js';
11
- import { getLocale } from '../../utils/i18n.js';
12
- import { controlDetails, inspectionDetails } from './control-details.js';
13
- const isRecord = (value) => typeof value === 'object' && value !== null && !Array.isArray(value);
14
- const nonempty = (value) => typeof value === 'string' && value.trim() !== '';
15
- const count = (value) => typeof value === 'number' && Number.isSafeInteger(value) && value >= 0;
16
- function detailJson(text) {
17
- try {
18
- return JSON.parse(text);
19
- }
20
- catch {
21
- return undefined;
22
- }
23
- }
24
- /** 官方 formatDate(3808-3821):本地化绝对时间,格式化失败退回原始 ISO 串。 */
25
- function formatDate(date, fallback) {
26
- try {
27
- return new Intl.DateTimeFormat(getLocale(), {
28
- year: 'numeric', month: 'short', day: 'numeric',
29
- hour: '2-digit', minute: '2-digit', second: '2-digit', timeZoneName: 'short',
30
- }).format(date);
31
- }
32
- catch {
33
- return fallback;
34
- }
35
- }
36
- /** 官方 goalDetail(3854-3883):形状不全一律返回 null ⇒ 落回 ioCard,不半渲染。 */
37
- function goalDetail(value, t) {
38
- if (!isRecord(value))
39
- return null;
40
- if (value.goal === null)
41
- return { items: [], empty: t('detailGoalEmpty') };
42
- const goal = value.goal;
43
- if (!isRecord(goal) || !nonempty(goal.id) || !nonempty(goal.objective))
44
- return null;
45
- if (!count(goal.revision) || !count(goal.roundsStarted) || !count(goal.maxGoalRounds))
46
- return null;
47
- const phase = goal.phase;
48
- if (phase !== 'active' && phase !== 'paused' && phase !== 'blocked' && phase !== 'complete')
49
- return null;
50
- if (value.activation !== 'armed' && value.activation !== 'disarmed')
51
- return null;
52
- const phases = {
53
- active: () => t('detailGoalActive'),
54
- paused: () => t('detailGoalPaused'),
55
- blocked: () => t('detailGoalBlocked'),
56
- complete: () => t('detailGoalComplete'),
57
- };
58
- const fields = [
59
- {
60
- label: t('detailState'),
61
- value: phase === 'active' && value.activation === 'disarmed' ? t('detailGoalDisarmed') : phases[phase](),
62
- },
63
- { label: t('detailGoalRounds'), value: `${goal.roundsStarted} / ${goal.maxGoalRounds}` },
64
- ];
65
- if (goal.blockedReason !== undefined) {
66
- const reason = goal.blockedReason;
67
- if (!isRecord(reason) || !nonempty(reason.code) || !nonempty(reason.message))
68
- return null;
69
- fields.push({ label: t('detailGoalReason'), value: reason.message });
70
- }
71
- return { items: [{ title: goal.objective, fields }] };
72
- }
73
- const WEEKDAY_KEYS = [
74
- 'detailWeekday1', 'detailWeekday2', 'detailWeekday3', 'detailWeekday4',
75
- 'detailWeekday5', 'detailWeekday6', 'detailWeekday7',
76
- ];
77
- /** 官方 interval(3894-3899)。 */
78
- function interval(seconds, t) {
79
- if (seconds % 86400 === 0)
80
- return t('detailDays', { count: seconds / 86400 });
81
- if (seconds % 3600 === 0)
82
- return t('detailHours', { count: seconds / 3600 });
83
- if (seconds % 60 === 0)
84
- return t('detailMinutes', { count: seconds / 60 });
85
- return t('detailSeconds', { count: seconds });
86
- }
87
- const shortTime = (time) => time.replace(/:00\.000$/, '').replace(/\.000$/, '');
88
- function weekdayText(days, t) {
89
- if (!Array.isArray(days) || days.length === 0)
90
- return undefined;
91
- const labels = [];
92
- for (const day of days) {
93
- if (typeof day !== 'number' || !Number.isInteger(day))
94
- return undefined;
95
- const key = WEEKDAY_KEYS[day - 1];
96
- if (key === undefined)
97
- return undefined;
98
- labels.push(t(key));
99
- }
100
- return labels.join(t('detailWeekdayJoin'));
101
- }
102
- /** 官方 scheduleItem(3916-3977):只认形状齐全、时间可解析的记录。 */
103
- function scheduleItem(value, t) {
104
- if (!isRecord(value) || !nonempty(value.id) || !nonempty(value.prompt))
105
- return null;
106
- if (typeof value.scheduledAt !== 'string')
107
- return null;
108
- if (value.deliveryMode !== 'host' && value.deliveryMode !== 'session-local')
109
- return null;
110
- if (value.state !== 'scheduled' && value.state !== 'overdue')
111
- return null;
112
- const date = new Date(value.scheduledAt);
113
- if (!Number.isFinite(date.getTime()) || date.toISOString() !== value.scheduledAt)
114
- return null;
115
- let frequency;
116
- switch (value.kind) {
117
- case 'at':
118
- frequency = t('detailScheduleOnce');
119
- break;
120
- case 'after':
121
- if (!count(value.afterSeconds) || value.afterSeconds === 0)
122
- return null;
123
- frequency = t('detailScheduleOnce');
124
- break;
125
- case 'every':
126
- if (!count(value.everySeconds) || value.everySeconds === 0)
127
- return null;
128
- frequency = t('detailScheduleEvery', { interval: interval(value.everySeconds, t) });
129
- break;
130
- case 'daily':
131
- if (!nonempty(value.time) || !nonempty(value.timeZone))
132
- return null;
133
- frequency = t('detailScheduleDaily', { time: shortTime(value.time), zone: value.timeZone });
134
- break;
135
- case 'weekly': {
136
- const days = weekdayText(value.weekdays, t);
137
- if (!nonempty(value.time) || !nonempty(value.timeZone) || days === undefined)
138
- return null;
139
- frequency = t('detailScheduleWeekly', { days, time: shortTime(value.time), zone: value.timeZone });
140
- break;
141
- }
142
- case 'cron':
143
- if (!nonempty(value.expression) || !nonempty(value.timeZone))
144
- return null;
145
- frequency = t('detailScheduleCron', { expression: value.expression, zone: value.timeZone });
146
- break;
147
- default:
148
- return null;
149
- }
150
- return {
151
- title: nonempty(value.title) ? value.title : value.prompt,
152
- fields: [
153
- { label: t('detailScheduleWhen'), value: formatDate(date, value.scheduledAt) },
154
- { label: t('detailScheduleFrequency'), value: frequency },
155
- { label: t('detailState'), value: value.state === 'scheduled' ? t('detailScheduleScheduled') : t('detailScheduleOverdue') },
156
- ],
157
- };
158
- }
159
- /**
160
- * 官方 detailsCardModel(3985-4029)的「目标 / 定时任务」子集。
161
- * 结算成功且结果为合法 JSON 才出详情卡;其余一律 null ⇒ 调用方走 ioCard 兜底。
162
- */
163
- export function detailsCardModel(name, argsRaw, output, settled, isError, t) {
164
- if (!settled || isError || output === '')
165
- return null;
166
- const args = detailJson(argsRaw);
167
- if (!isRecord(args))
168
- return null;
169
- const value = detailJson(output);
170
- // 官方顺序(3992):control → inspection → goal/schedule;前两者吃文本格式,JSON 解析失败也可能出卡。
171
- const recorded = controlDetails(name, args, output, value, t) ?? inspectionDetails(name, args, output, value, t);
172
- if (recorded !== null)
173
- return recorded;
174
- if (value === undefined)
175
- return null;
176
- switch (name) {
177
- case 'create_goal':
178
- case 'get_goal':
179
- case 'update_goal':
180
- return goalDetail(value, t);
181
- case 'schedule_create':
182
- case 'schedule_update': {
183
- const item = scheduleItem(value, t);
184
- return item === null ? null : { items: [item] };
185
- }
186
- case 'schedule_list': {
187
- if (!Array.isArray(value))
188
- return null;
189
- const items = [];
190
- for (const entry of value) {
191
- const item = scheduleItem(entry, t);
192
- if (item === null)
193
- return null;
194
- items.push(item);
195
- }
196
- return { items, summary: t('detailScheduleCount', { count: items.length }), empty: t('detailScheduleEmpty') };
197
- }
198
- case 'schedule_delete':
199
- if (!isRecord(value) || !nonempty(value.id) || value.deleted !== true)
200
- return null;
201
- return { items: [{ title: value.id, fields: [{ label: t('detailState'), value: t('detailScheduleDeleted') }] }] };
202
- default:
203
- return null;
204
- }
205
- }
206
- /** 官方 DetailsRow 的摘要优先级(4080):summary → 第一项 title → empty → 原摘要。 */
207
- export function detailsSummary(model) {
208
- return model.summary ?? model.items[0]?.title ?? model.empty;
209
- }
210
- /** 官方 DetailItem(1357-1449)本轮用到的字段;markdown/code/groups 由后续模型补齐。 */
211
- function DetailItem({ item, t, onOpenFile }) {
212
- const cls = (semantic) => officialClass('ToolDetails', semantic) ?? '';
213
- const status = item.status;
214
- return h('li', { className: cls('item'), 'data-change': item.change?.value }, item.title !== undefined
215
- ? h('div', { className: cls('heading') }, status !== undefined
216
- ? h('span', { className: cls('status'), role: 'img', 'aria-label': item.change?.label ?? status.label }, item.change?.value === 'added' ? '+' : item.change?.value === 'removed' ? '−'
217
- : status.value === 'completed' ? h(IconCheckOutlineRegular, { size: 14 })
218
- : status.value === 'in_progress' ? h(IconPlayOutlineRegular, { size: 14 })
219
- : h('span', { className: cls('pending') }))
220
- : null, item.location !== undefined && onOpenFile !== undefined
221
- ? h('button', {
222
- className: cls('path'), type: 'button',
223
- onClick: () => {
224
- const location = item.location;
225
- if (location !== undefined) {
226
- if (location.line === undefined)
227
- onOpenFile(location.path);
228
- else
229
- onOpenFile(location.path, { line: location.line });
230
- }
231
- },
232
- }, item.title)
233
- : h('span', { className: cls('text') }, item.title), item.badge !== undefined
234
- ? h('span', { className: cls('badge'), 'data-tone': item.badge.tone }, item.badge.label)
235
- : null, status !== undefined
236
- ? h('span', { className: cls('statusText') }, item.previousStatus !== undefined
237
- ? h('span', null, h('span', { className: cls('previous') }, item.previousStatus), h('span', null, ' → '))
238
- : null, h('span', null, status.label), item.change?.value === 'updated' && item.previousStatus === undefined
239
- ? h('span', null, ' · ', item.change.label)
240
- : null)
241
- : null)
242
- : null, item.subtitle !== undefined ? h('div', { className: cls('subtitle') }, item.subtitle) : null, item.description !== undefined ? h('p', { className: cls('description') }, item.description) : null, item.fields.length > 0
243
- ? h('dl', { className: cls('fields') }, item.fields.map(field => h('div', { key: field.label, className: cls('field') }, h('dt', null, field.label), h('dd', null, field.value))))
244
- : null, item.lines !== undefined
245
- ? h('ul', { className: cls('lines') }, item.lines.map((line, index) => h('li', { key: index }, line)))
246
- : null, item.markdown !== undefined
247
- ? h('div', { className: cls('prose') }, h(MarkdownText, { text: item.markdown, labels: markdownLabels() }))
248
- : null, item.code !== undefined
249
- ? h(CodeBlock, {
250
- code: item.code.text,
251
- lang: item.code.language,
252
- toolbarLabels: { codeLabel: t('codeBlockLabel'), wrapLabel: t('diffWrapLabel'), unwrapLabel: t('diffUnwrapLabel') },
253
- copyLabel: t('copyLabel'),
254
- copiedLabel: t('copiedLabel'),
255
- className: cls('code'),
256
- })
257
- : null, ...(item.groups ?? []).map((group, index) => h('details', { key: index, className: cls('group') }, h('summary', null, h(IconChevronRightOutlineRegular), h('span', null, group.label)), h('ul', { className: cls('list') }, group.items.map((child, childIndex) => h(DetailItem, { key: childIndex, item: child, t, onOpenFile }))))));
258
- }
259
- /** 官方 ToolDetails(1458-1492):caption + 空态 / 列表 + 可折叠的「未变更」组。 */
260
- export function ToolDetailsView({ model, t, onOpenFile }) {
261
- const cls = (semantic) => officialClass('ToolDetails', semantic) ?? '';
262
- return h('div', { className: cls('root'), 'data-caption': model.caption !== undefined || undefined }, model.caption !== undefined ? h('div', { className: cls('caption') }, model.caption) : null, model.items.length === 0
263
- ? h('p', { className: cls('empty') }, model.empty)
264
- : h('ul', { className: cls('list') }, model.items.map((item, index) => h(DetailItem, { key: index, item, t, onOpenFile }))), model.unchanged !== undefined
265
- ? h('details', { className: cls('unchanged') }, h('summary', null, h(IconChevronRightOutlineRegular), model.unchanged.label), h('ul', { className: cls('list') }, model.unchanged.items.map((item, index) => h(DetailItem, { key: index, item, t, onOpenFile }))))
266
- : null);
267
- }
268
- //# sourceMappingURL=ToolDetails.js.map