@xpert-ai/chatkit-ui 0.5.7 → 0.5.9

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 (336) hide show
  1. package/dist/app/assets/{_baseUniq-CLWaYEgB.js → _baseUniq-BLpvr8Li.js} +1 -1
  2. package/dist/app/assets/{abap-BmIw086p.js → abap-DuWq8-Fa.js} +1 -1
  3. package/dist/app/assets/{abnf-Chq250EI.js → abnf-BHjR3bmX.js} +1 -1
  4. package/dist/app/assets/{actionscript-COrRMERh.js → actionscript-DJxrYQDx.js} +1 -1
  5. package/dist/app/assets/{ada-Bk-Xom8E.js → ada-CbL6tAKZ.js} +1 -1
  6. package/dist/app/assets/{agda-CqOba_mv.js → agda-Ck6x7eDV.js} +1 -1
  7. package/dist/app/assets/{al-Cs36z4Zx.js → al-DdXfEkta.js} +1 -1
  8. package/dist/app/assets/{antlr4-BDwRWkYa.js → antlr4-upUqmaYh.js} +1 -1
  9. package/dist/app/assets/{apacheconf-DyeF8GiM.js → apacheconf-CupXJx2-.js} +1 -1
  10. package/dist/app/assets/{apex-Ba7OzTgr.js → apex-0YDHPbgn.js} +1 -1
  11. package/dist/app/assets/{apl-B_R4FVMi.js → apl-RmSfPwym.js} +1 -1
  12. package/dist/app/assets/{applescript-Dya3fhGB.js → applescript-COai1tTm.js} +1 -1
  13. package/dist/app/assets/{aql-Dp0iXsVF.js → aql-CbZi1-r0.js} +1 -1
  14. package/dist/app/assets/{arc-cvg0TXhv.js → arc-DIn4pjjH.js} +1 -1
  15. package/dist/app/assets/{architectureDiagram-Q4EWVU46-SzYujqWe.js → architectureDiagram-Q4EWVU46-Dmhp32t-.js} +1 -1
  16. package/dist/app/assets/{arduino-CqlJ3hCz.js → arduino-CQPi4w3l.js} +1 -1
  17. package/dist/app/assets/{arff-CX7MFQRO.js → arff-CeuE6lSG.js} +1 -1
  18. package/dist/app/assets/{asciidoc-ZI4Q-s1q.js → asciidoc-DCNYoRln.js} +1 -1
  19. package/dist/app/assets/{asm6502-B3FObQ_T.js → asm6502-Pd3JHkRr.js} +1 -1
  20. package/dist/app/assets/{asmatmel-kCkPLHbr.js → asmatmel-Cc5XZnaJ.js} +1 -1
  21. package/dist/app/assets/{aspnet-DH6G5Ew1.js → aspnet-C533BcWB.js} +1 -1
  22. package/dist/app/assets/{autohotkey-oVz8ND3F.js → autohotkey-DKsSzBeu.js} +1 -1
  23. package/dist/app/assets/{autoit-Dl11lBUq.js → autoit-BBqFqs2I.js} +1 -1
  24. package/dist/app/assets/{avisynth-DarE5Dg7.js → avisynth-BQhu1vn5.js} +1 -1
  25. package/dist/app/assets/{avro-idl-D56MDNhv.js → avro-idl-CLl66iQZ.js} +1 -1
  26. package/dist/app/assets/{bash-B1XwQNyf.js → bash-D-02JHh4.js} +1 -1
  27. package/dist/app/assets/{basic-DYR2Jwfm.js → basic-D0Z8Jj8l.js} +1 -1
  28. package/dist/app/assets/{batch-DxAP-2NI.js → batch-B6HFRBhp.js} +1 -1
  29. package/dist/app/assets/{bbcode-pH3o53ih.js → bbcode-CE7knYbs.js} +1 -1
  30. package/dist/app/assets/{bicep-C1CpxPZE.js → bicep--WgDi_5T.js} +1 -1
  31. package/dist/app/assets/{birb-CX87HOYx.js → birb-CRszBx8p.js} +1 -1
  32. package/dist/app/assets/{bison-DhyP8gg_.js → bison-2yOIavxu.js} +1 -1
  33. package/dist/app/assets/{blockDiagram-DXYQGD6D-USlgBl6-.js → blockDiagram-DXYQGD6D-CdfVTYe6.js} +1 -1
  34. package/dist/app/assets/{bnf-DBDHgoDx.js → bnf-Dg8yqReW.js} +1 -1
  35. package/dist/app/assets/{brainfuck-BGbbW6jD.js → brainfuck-CMcDLgle.js} +1 -1
  36. package/dist/app/assets/{brightscript-DhiNdhdf.js → brightscript-Cqzcw5aY.js} +1 -1
  37. package/dist/app/assets/{bro-CI2nlc1k.js → bro-CCYADGfA.js} +1 -1
  38. package/dist/app/assets/{bsl-Cqfc86Uw.js → bsl-BazS2rLi.js} +1 -1
  39. package/dist/app/assets/{c-Bcq4TtJR.js → c-CzdIRBJL.js} +1 -1
  40. package/dist/app/assets/{c4Diagram-AHTNJAMY-BLdJV9Sm.js → c4Diagram-AHTNJAMY-CzWbdT2z.js} +1 -1
  41. package/dist/app/assets/{cfscript-zugsry85.js → cfscript-BfocvIBZ.js} +1 -1
  42. package/dist/app/assets/{chaiscript-Dy8MtPY1.js → chaiscript-DEeofdbI.js} +1 -1
  43. package/dist/app/assets/channel-C-xwEqfR.js +1 -0
  44. package/dist/app/assets/{chunk-4BX2VUAB-BxD-_SIo.js → chunk-4BX2VUAB-DXvcZJRe.js} +1 -1
  45. package/dist/app/assets/{chunk-4TB4RGXK-xGQqBHD0.js → chunk-4TB4RGXK-Cvk3MhhJ.js} +1 -1
  46. package/dist/app/assets/{chunk-55IACEB6-CWaDgSsu.js → chunk-55IACEB6-Om7ibAwr.js} +1 -1
  47. package/dist/app/assets/{chunk-EDXVE4YY-BSLQHGaz.js → chunk-EDXVE4YY-DbAgli9I.js} +1 -1
  48. package/dist/app/assets/{chunk-FMBD7UC4-C7DoPpkj.js → chunk-FMBD7UC4-DObpaYUO.js} +1 -1
  49. package/dist/app/assets/{chunk-OYMX7WX6-CNUKCbYN.js → chunk-OYMX7WX6-rGMgjhKm.js} +1 -1
  50. package/dist/app/assets/{chunk-QZHKN3VN-CLEOhth0.js → chunk-QZHKN3VN-BtHCPSxj.js} +1 -1
  51. package/dist/app/assets/{chunk-YZCP3GAM-CrgW5GzR.js → chunk-YZCP3GAM-CDkTBaPo.js} +1 -1
  52. package/dist/app/assets/{cil-CSQR5L6I.js → cil-BNlTLivw.js} +1 -1
  53. package/dist/app/assets/classDiagram-6PBFFD2Q-DZxfIDiK.js +1 -0
  54. package/dist/app/assets/classDiagram-v2-HSJHXN6E-DZxfIDiK.js +1 -0
  55. package/dist/app/assets/{clike-DreJ-26H.js → clike-BBIPxwPb.js} +1 -1
  56. package/dist/app/assets/{clojure-C4rI0CNM.js → clojure-SjJCVW3l.js} +1 -1
  57. package/dist/app/assets/clone-nOTgxCHT.js +1 -0
  58. package/dist/app/assets/{cmake-D_E8QKZD.js → cmake-DKXTFLeQ.js} +1 -1
  59. package/dist/app/assets/{cobol-Dd0WgkgL.js → cobol-DDV2T8Ov.js} +1 -1
  60. package/dist/app/assets/{coffeescript-CKG9eRoI.js → coffeescript-DLlO3-WB.js} +1 -1
  61. package/dist/app/assets/{concurnas-Cw11QyjG.js → concurnas-Zk22sd4q.js} +1 -1
  62. package/dist/app/assets/{coq-C3R9mTvc.js → coq-CB49fGLj.js} +1 -1
  63. package/dist/app/assets/{core-DZ2wHOxY.js → core-GilJv2TY.js} +1 -1
  64. package/dist/app/assets/{cose-bilkent-S5V4N54A-DmUGr3LM.js → cose-bilkent-S5V4N54A-dCcXah1N.js} +1 -1
  65. package/dist/app/assets/{cpp-DokiuQJt.js → cpp-_nLYhTeO.js} +1 -1
  66. package/dist/app/assets/{crystal-CEcE525Q.js → crystal-0uF3fCBY.js} +1 -1
  67. package/dist/app/assets/{csharp-BEgDNJSm.js → csharp-9a018lXK.js} +1 -1
  68. package/dist/app/assets/{cshtml-BgqAtQ__.js → cshtml-DeRWrMgA.js} +1 -1
  69. package/dist/app/assets/{csp-xjpIA0Cl.js → csp-C1JPZRc6.js} +1 -1
  70. package/dist/app/assets/{css-n5noIfRb.js → css-CtlaCojl.js} +1 -1
  71. package/dist/app/assets/{css-extras-BcBihPSP.js → css-extras-_r0fSC4K.js} +1 -1
  72. package/dist/app/assets/{csv-BB3YePGO.js → csv-DEVHAMet.js} +1 -1
  73. package/dist/app/assets/{cypher-D-HnFmIS.js → cypher-OQlwpa7A.js} +1 -1
  74. package/dist/app/assets/{d-B6t4xIiC.js → d-CBefACWo.js} +1 -1
  75. package/dist/app/assets/{dagre-KV5264BT-De0SZKaZ.js → dagre-KV5264BT-BbcR5yFp.js} +1 -1
  76. package/dist/app/assets/{dart-nDJlvZiq.js → dart-DnZNI7st.js} +1 -1
  77. package/dist/app/assets/{dataweave-MLevrHXi.js → dataweave-C0KQEfm3.js} +1 -1
  78. package/dist/app/assets/{dax-D19-PKMy.js → dax-C85xkJS9.js} +1 -1
  79. package/dist/app/assets/{dhall-CY6aTI2P.js → dhall-Dr7lP2CR.js} +1 -1
  80. package/dist/app/assets/{diagram-5BDNPKRD-mV_Wn285.js → diagram-5BDNPKRD-CAF6Irol.js} +1 -1
  81. package/dist/app/assets/{diagram-G4DWMVQ6-DEQ6bw6_.js → diagram-G4DWMVQ6-BjM_224a.js} +1 -1
  82. package/dist/app/assets/{diagram-MMDJMWI5-saPCqXbt.js → diagram-MMDJMWI5-DLUB15w5.js} +1 -1
  83. package/dist/app/assets/{diagram-TYMM5635-Bc55PAVD.js → diagram-TYMM5635-DBbpw92w.js} +1 -1
  84. package/dist/app/assets/{diff-C5owdxCH.js → diff-BMBQT17e.js} +1 -1
  85. package/dist/app/assets/{django-DX5K_Lf4.js → django-ciXFTeWU.js} +1 -1
  86. package/dist/app/assets/{dns-zone-file-B8xBiXK4.js → dns-zone-file-DC-B5K-Z.js} +1 -1
  87. package/dist/app/assets/{docker-B9QI3ZyP.js → docker-A8DlJ91e.js} +1 -1
  88. package/dist/app/assets/{dot-1jbGtFg0.js → dot-DC8VHvNV.js} +1 -1
  89. package/dist/app/assets/{ebnf-4zi7pSk1.js → ebnf-92ogoCIr.js} +1 -1
  90. package/dist/app/assets/{editorconfig-c8-h1UlL.js → editorconfig-D-VWzvau.js} +1 -1
  91. package/dist/app/assets/{eiffel-DsXpCd2Z.js → eiffel-BQlPy2tR.js} +1 -1
  92. package/dist/app/assets/{ejs-DDdn5A3i.js → ejs-hYRRXYEf.js} +1 -1
  93. package/dist/app/assets/{elixir-BHlBm_yU.js → elixir-BQaOfAKO.js} +1 -1
  94. package/dist/app/assets/{elm-CiDFdPze.js → elm-CMZDaOsd.js} +1 -1
  95. package/dist/app/assets/{erDiagram-SMLLAGMA-C4yQ0GlF.js → erDiagram-SMLLAGMA-D7RIpy8K.js} +1 -1
  96. package/dist/app/assets/{erb-DASSxMxt.js → erb-BhUx9oZj.js} +1 -1
  97. package/dist/app/assets/{erlang-v8JRNRHg.js → erlang-BEE4gQmE.js} +1 -1
  98. package/dist/app/assets/{etlua-DZD7a7Jf.js → etlua-Do5lhS9I.js} +1 -1
  99. package/dist/app/assets/{excel-formula-MyC97nAI.js → excel-formula-CmwpMtyy.js} +1 -1
  100. package/dist/app/assets/{factor-B5PO8-iK.js → factor-B2pJs6O3.js} +1 -1
  101. package/dist/app/assets/{false-DLfRU1nK.js → false-DvjmZdOv.js} +1 -1
  102. package/dist/app/assets/{firestore-security-rules-COJVUV0t.js → firestore-security-rules-CFb_h360.js} +1 -1
  103. package/dist/app/assets/{flow-BNlz-6hX.js → flow-D0Mztv7X.js} +1 -1
  104. package/dist/app/assets/{flowDiagram-DWJPFMVM-BXHf7HWl.js → flowDiagram-DWJPFMVM-Bs64njF4.js} +1 -1
  105. package/dist/app/assets/{fortran-DorvQvuU.js → fortran-1pOElj0a.js} +1 -1
  106. package/dist/app/assets/{fsharp-CMDvOtPz.js → fsharp-B6O1vScF.js} +1 -1
  107. package/dist/app/assets/{ftl-C0ofQ7Z_.js → ftl-BC1JMSb3.js} +1 -1
  108. package/dist/app/assets/{ganttDiagram-T4ZO3ILL-CvGkKz8n.js → ganttDiagram-T4ZO3ILL-BaqYXbd5.js} +1 -1
  109. package/dist/app/assets/{gap-C0gyjgyS.js → gap-DHN_hna1.js} +1 -1
  110. package/dist/app/assets/{gcode-BtlHTa9V.js → gcode-CYOpCOHU.js} +1 -1
  111. package/dist/app/assets/{gdscript-DTqe4uwl.js → gdscript-C_fDjtde.js} +1 -1
  112. package/dist/app/assets/{gedcom-b4_QsalW.js → gedcom-BVEMpxDC.js} +1 -1
  113. package/dist/app/assets/{gherkin-BRaijNNe.js → gherkin-CbpN6mFf.js} +1 -1
  114. package/dist/app/assets/{git-CBD5U5DY.js → git-Bf1dI9II.js} +1 -1
  115. package/dist/app/assets/{gitGraphDiagram-UUTBAWPF-D3WK5u1w.js → gitGraphDiagram-UUTBAWPF-BdL4HwfB.js} +1 -1
  116. package/dist/app/assets/{glsl-Bs6Epr6a.js → glsl-DHfVVpll.js} +1 -1
  117. package/dist/app/assets/{gml-DB3_POL9.js → gml-CKW0I1sM.js} +1 -1
  118. package/dist/app/assets/{gn-CF-QhIKN.js → gn-BolaXeCK.js} +1 -1
  119. package/dist/app/assets/{go-Bf_9FEdH.js → go-CvNTUNQj.js} +1 -1
  120. package/dist/app/assets/{go-module-CA_6vLMU.js → go-module-DHNsqTFu.js} +1 -1
  121. package/dist/app/assets/{graph-BckoiIkc.js → graph-w3lwjjfd.js} +1 -1
  122. package/dist/app/assets/{graphql-B_EGfqII.js → graphql-CqMPX6Uj.js} +1 -1
  123. package/dist/app/assets/{groovy-DAndqueF.js → groovy-ric2FEOh.js} +1 -1
  124. package/dist/app/assets/{haml-BcmULMPT.js → haml-Cxb5CUqP.js} +1 -1
  125. package/dist/app/assets/{handlebars-y_7_rnDH.js → handlebars-Cn3du5zM.js} +1 -1
  126. package/dist/app/assets/{haskell-BMVXHQLX.js → haskell-C6_pQzAW.js} +1 -1
  127. package/dist/app/assets/{haxe-ptOpqykn.js → haxe-ByVxVzJ9.js} +1 -1
  128. package/dist/app/assets/{hcl-zRdkV3LE.js → hcl-B54wt0UB.js} +1 -1
  129. package/dist/app/assets/{hlsl-BNXfMvF8.js → hlsl-zd81HZk_.js} +1 -1
  130. package/dist/app/assets/{hoon-BIBxFt3i.js → hoon-CIsFAweE.js} +1 -1
  131. package/dist/app/assets/{hpkp-CN1HXIbY.js → hpkp-BjSjLyAt.js} +1 -1
  132. package/dist/app/assets/{hsts-CoXh-wqv.js → hsts-DYV6IErn.js} +1 -1
  133. package/dist/app/assets/{http-t-TWhkRr.js → http-vOpsxP66.js} +1 -1
  134. package/dist/app/assets/{ichigojam-D_FxM4aQ.js → ichigojam-0LTExBpZ.js} +1 -1
  135. package/dist/app/assets/{icon-CUaZJoCa.js → icon-B-Gp4jiE.js} +1 -1
  136. package/dist/app/assets/{icu-message-format-By8yja5S.js → icu-message-format-jiNYPlT8.js} +1 -1
  137. package/dist/app/assets/{idris-4GlvSztz.js → idris-ZMBybD9e.js} +1 -1
  138. package/dist/app/assets/{iecst-nPP964Az.js → iecst-B3wVu7MT.js} +1 -1
  139. package/dist/app/assets/{ignore-BFvj9-AN.js → ignore-DCDIFGnd.js} +1 -1
  140. package/dist/app/assets/index-BAb1mpfo.css +1 -0
  141. package/dist/app/assets/{index-CN-0zu_D.js → index-Bc4smTvC.js} +183 -182
  142. package/dist/app/assets/{infoDiagram-42DDH7IO-Bnsy-5bq.js → infoDiagram-42DDH7IO-Bbh4hemk.js} +1 -1
  143. package/dist/app/assets/{inform7-CF6LgXQQ.js → inform7-BI05xVNw.js} +1 -1
  144. package/dist/app/assets/{ini-CeigaWPi.js → ini-vxj4aj2b.js} +1 -1
  145. package/dist/app/assets/{io-CRHhVTrv.js → io-Dv10BjOU.js} +1 -1
  146. package/dist/app/assets/{ishikawaDiagram-UXIWVN3A-V1PRHvu1.js → ishikawaDiagram-UXIWVN3A-BuEYSyJU.js} +1 -1
  147. package/dist/app/assets/{j-enwO1Wmz.js → j-BW8yPUOH.js} +1 -1
  148. package/dist/app/assets/{java-B9QaHcJd.js → java-BkBlxlrY.js} +1 -1
  149. package/dist/app/assets/{javadoc-DRScKA1N.js → javadoc-Cx6tkfWS.js} +1 -1
  150. package/dist/app/assets/{javadoclike-DtGAS-cv.js → javadoclike-BBfuCCPL.js} +1 -1
  151. package/dist/app/assets/{javascript-D3V3g0FJ.js → javascript-CAUiQeA4.js} +1 -1
  152. package/dist/app/assets/{javastacktrace-B5lApfgX.js → javastacktrace-DVKSc9mr.js} +1 -1
  153. package/dist/app/assets/{jexl-De4FTViK.js → jexl-Ctv9A-4Y.js} +1 -1
  154. package/dist/app/assets/{jolie-C6Zkfs3U.js → jolie-8oLOtI3_.js} +1 -1
  155. package/dist/app/assets/{journeyDiagram-VCZTEJTY--_XuL7C5.js → journeyDiagram-VCZTEJTY-DUm9Kxjg.js} +1 -1
  156. package/dist/app/assets/{jq-CaVz4Cbo.js → jq-C5TPho8v.js} +1 -1
  157. package/dist/app/assets/{js-extras-BLR7xlFc.js → js-extras-CvvS7hCP.js} +1 -1
  158. package/dist/app/assets/{js-templates-S-P3pgZx.js → js-templates-D1ItFqxK.js} +1 -1
  159. package/dist/app/assets/{jsdoc-DA2TpZo1.js → jsdoc-D0lTE-nD.js} +1 -1
  160. package/dist/app/assets/{json-DxBWOaJn.js → json-Bj6Xy1YF.js} +1 -1
  161. package/dist/app/assets/{json5-CO5ViDeP.js → json5-CvDs8NVg.js} +1 -1
  162. package/dist/app/assets/{jsonp-Wq0QyWa8.js → jsonp-BFor_KVf.js} +1 -1
  163. package/dist/app/assets/{jsstacktrace-BLR8OluG.js → jsstacktrace-DaDHvFwg.js} +1 -1
  164. package/dist/app/assets/{jsx-DmJT_QzA.js → jsx-9z5hmKsA.js} +1 -1
  165. package/dist/app/assets/{julia-Bd7p13_X.js → julia-DwK7_L2k.js} +1 -1
  166. package/dist/app/assets/{kanban-definition-6JOO6SKY-C8Va8LAw.js → kanban-definition-6JOO6SKY-B4PLi6a2.js} +1 -1
  167. package/dist/app/assets/{keepalived-D_m2TyIj.js → keepalived-QQAuR044.js} +1 -1
  168. package/dist/app/assets/{keyman-DjW6nWCS.js → keyman-WSDbwfnX.js} +1 -1
  169. package/dist/app/assets/{kotlin-BVWvmXl0.js → kotlin-CGASEpWD.js} +1 -1
  170. package/dist/app/assets/{kumir-CAxuJd34.js → kumir-Doyw9YhD.js} +1 -1
  171. package/dist/app/assets/{kusto-CuUimFgY.js → kusto-xM5aYCkT.js} +1 -1
  172. package/dist/app/assets/{latex-d8_VLhf8.js → latex-7t6762ct.js} +1 -1
  173. package/dist/app/assets/{latte-BmcUd_IB.js → latte-CYYMtaGq.js} +1 -1
  174. package/dist/app/assets/{layout-DuqNnE4Q.js → layout-Cq9HzFXC.js} +1 -1
  175. package/dist/app/assets/{less-BkKGTsNG.js → less-B-rkr2Db.js} +1 -1
  176. package/dist/app/assets/{lilypond-TRnkZO7q.js → lilypond-BJWXSiTf.js} +1 -1
  177. package/dist/app/assets/{linear-B2fnwI3E.js → linear-DRDsgNmW.js} +1 -1
  178. package/dist/app/assets/{liquid-3GbzU7nV.js → liquid--20_a0Si.js} +1 -1
  179. package/dist/app/assets/{lisp-Ctqep9DR.js → lisp-B_0ZteJz.js} +1 -1
  180. package/dist/app/assets/{livescript-DNwquCT7.js → livescript-1Jx0SETD.js} +1 -1
  181. package/dist/app/assets/{llvm-8bucivb6.js → llvm-B9HfHMKf.js} +1 -1
  182. package/dist/app/assets/{log-B4FnkUTm.js → log-CRWfAu0Z.js} +1 -1
  183. package/dist/app/assets/{lolcode-BLeuVc1E.js → lolcode-DMRD9BNM.js} +1 -1
  184. package/dist/app/assets/{lua-DwjfNGtz.js → lua-D-hyZPBj.js} +1 -1
  185. package/dist/app/assets/{magma-hPFFx79G.js → magma-CIgc0Q1n.js} +1 -1
  186. package/dist/app/assets/{makefile-C2CZD5vB.js → makefile-CBunZoPa.js} +1 -1
  187. package/dist/app/assets/{markdown-j6Zktjvm.js → markdown-DvJvDbDy.js} +1 -1
  188. package/dist/app/assets/{markup-DfN4ymw-.js → markup-D3VPet1J.js} +1 -1
  189. package/dist/app/assets/{markup-templating-BPS4-nAP.js → markup-templating-D7DvUP7P.js} +1 -1
  190. package/dist/app/assets/{matlab-BGeJv0j8.js → matlab-CjKtwgDT.js} +1 -1
  191. package/dist/app/assets/{maxscript-CWrTjgBX.js → maxscript-CvzRNTSR.js} +1 -1
  192. package/dist/app/assets/{mel-DGQaHOGs.js → mel-DVwlWwS1.js} +1 -1
  193. package/dist/app/assets/{mermaid-CtEMQhrR.js → mermaid-mTOAb9I1.js} +1 -1
  194. package/dist/app/assets/{min-CuWVuwXA.js → min-6n2-iCAm.js} +1 -1
  195. package/dist/app/assets/{mindmap-definition-QFDTVHPH-BQCXLcu2.js → mindmap-definition-QFDTVHPH-eTB4aUJ6.js} +1 -1
  196. package/dist/app/assets/{mizar-DeUk256x.js → mizar-D1v4Nv22.js} +1 -1
  197. package/dist/app/assets/{mongodb-B5kYMXfv.js → mongodb-B6xPI5vi.js} +1 -1
  198. package/dist/app/assets/{monkey-8L561opU.js → monkey-8ZQGq2j6.js} +1 -1
  199. package/dist/app/assets/{moonscript-CDlMWHLd.js → moonscript-qkDyELmz.js} +1 -1
  200. package/dist/app/assets/{n1ql-a5aTcp96.js → n1ql-7qzjjhYg.js} +1 -1
  201. package/dist/app/assets/{n4js-B_W2iwdF.js → n4js--0WDRpBj.js} +1 -1
  202. package/dist/app/assets/{nand2tetris-hdl-5_Ma3Gcs.js → nand2tetris-hdl-zYT29X94.js} +1 -1
  203. package/dist/app/assets/{naniscript-DwmVzjHV.js → naniscript-BEKVFrJA.js} +1 -1
  204. package/dist/app/assets/{nasm-BwoisEaQ.js → nasm-BxgE8BWF.js} +1 -1
  205. package/dist/app/assets/{neon-BI73tyd0.js → neon-CRmkHhWg.js} +1 -1
  206. package/dist/app/assets/{nevod-D92PDZKZ.js → nevod-DqOKiweO.js} +1 -1
  207. package/dist/app/assets/{nginx-Dq9r1NIk.js → nginx-BepDunyM.js} +1 -1
  208. package/dist/app/assets/{nim-xjOEbIAk.js → nim-DOYwB93n.js} +1 -1
  209. package/dist/app/assets/{nix-EnMJgnc8.js → nix-OcEzpwWS.js} +1 -1
  210. package/dist/app/assets/{nsis-CH5H0EC_.js → nsis-WQEGbgSb.js} +1 -1
  211. package/dist/app/assets/{objectivec-BS9YPLvy.js → objectivec-B8PulHhQ.js} +1 -1
  212. package/dist/app/assets/{ocaml-DeaG5BlB.js → ocaml-DrKpTrGd.js} +1 -1
  213. package/dist/app/assets/{opencl-O9ymHk7H.js → opencl-DJD4I4Az.js} +1 -1
  214. package/dist/app/assets/{openqasm-aQT0V46D.js → openqasm-BzLNaS1E.js} +1 -1
  215. package/dist/app/assets/{oz-B2akcmUR.js → oz-CddQDW4N.js} +1 -1
  216. package/dist/app/assets/{parigp-xOQhi94u.js → parigp-DL9Pul5Z.js} +1 -1
  217. package/dist/app/assets/{parser-Bc5Qs2p0.js → parser-BaeyVs6E.js} +1 -1
  218. package/dist/app/assets/{pascal-DAR8ROsy.js → pascal-DZwRqOCW.js} +1 -1
  219. package/dist/app/assets/{pascaligo-DftNQckw.js → pascaligo-CglPcMbu.js} +1 -1
  220. package/dist/app/assets/{pcaxis-BMPF3He-.js → pcaxis-m1flL1nx.js} +1 -1
  221. package/dist/app/assets/{peoplecode-CC7E3WK2.js → peoplecode-BPZXOWEd.js} +1 -1
  222. package/dist/app/assets/{perl-BAXHKqGw.js → perl-DEj9sd22.js} +1 -1
  223. package/dist/app/assets/{php-Cj-RDbjB.js → php-ChAzX5Xy.js} +1 -1
  224. package/dist/app/assets/{php-extras-BKprAKx3.js → php-extras-BEC2cMHJ.js} +1 -1
  225. package/dist/app/assets/{phpdoc-bw2dAv0c.js → phpdoc-Efem6iWX.js} +1 -1
  226. package/dist/app/assets/{pieDiagram-DEJITSTG-8KZu5YaI.js → pieDiagram-DEJITSTG-I2O3vbig.js} +1 -1
  227. package/dist/app/assets/{plsql-Dw17XioY.js → plsql-Bgiemx8O.js} +1 -1
  228. package/dist/app/assets/{powerquery-Dj3cf27n.js → powerquery-DoH4a5fD.js} +1 -1
  229. package/dist/app/assets/{powershell-B_7q1eiT.js → powershell-CXwYZoB9.js} +1 -1
  230. package/dist/app/assets/{processing-DoFMi-hm.js → processing-BG-k24bE.js} +1 -1
  231. package/dist/app/assets/{prolog-e5E2hrDl.js → prolog-BQk3s9Cz.js} +1 -1
  232. package/dist/app/assets/{promql-DemahR4f.js → promql-Cn8XzgOs.js} +1 -1
  233. package/dist/app/assets/{properties-BMScPOms.js → properties-BzFCc7p8.js} +1 -1
  234. package/dist/app/assets/{protobuf-ClMTc4op.js → protobuf-DsVZomkz.js} +1 -1
  235. package/dist/app/assets/{psl-CNOWPWSJ.js → psl-BL1By2Di.js} +1 -1
  236. package/dist/app/assets/{pug-CN_LkEkF.js → pug-CJXPw-_y.js} +1 -1
  237. package/dist/app/assets/{puppet-DWy51Ujv.js → puppet-BgLD34yT.js} +1 -1
  238. package/dist/app/assets/{pure-DpqvZXoD.js → pure-D5KRS3X3.js} +1 -1
  239. package/dist/app/assets/{purebasic-HuZjA6iK.js → purebasic-BO_zjFwL.js} +1 -1
  240. package/dist/app/assets/{purescript-B_rypcfi.js → purescript-Ddc7moMi.js} +1 -1
  241. package/dist/app/assets/{q-DgWLKp8s.js → q-CsHjuzhk.js} +1 -1
  242. package/dist/app/assets/{qml-CS-KlEUk.js → qml-YbRFzx0z.js} +1 -1
  243. package/dist/app/assets/{qore-Du1o4lX4.js → qore-BFgUYB1S.js} +1 -1
  244. package/dist/app/assets/{qsharp-DyC4mLin.js → qsharp-DRh0td2A.js} +1 -1
  245. package/dist/app/assets/{quadrantDiagram-34T5L4WZ-B8NRWwee.js → quadrantDiagram-34T5L4WZ-sLTzbhk2.js} +1 -1
  246. package/dist/app/assets/{r-cjlCY8c-.js → r-5gqFGwLd.js} +1 -1
  247. package/dist/app/assets/{racket-HKASX9J6.js → racket-BgmD87H8.js} +1 -1
  248. package/dist/app/assets/{reason--QfwxdM6.js → reason-D_tR9ps8.js} +1 -1
  249. package/dist/app/assets/{regex-LRhyh4CM.js → regex-hcOGgwnQ.js} +1 -1
  250. package/dist/app/assets/{rego-DTntuhgD.js → rego-C0pl_3VC.js} +1 -1
  251. package/dist/app/assets/{renpy-Dkrt0VEv.js → renpy-lT_4OszV.js} +1 -1
  252. package/dist/app/assets/{requirementDiagram-MS252O5E-CaB6KEof.js → requirementDiagram-MS252O5E-CEJ8Rcnr.js} +1 -1
  253. package/dist/app/assets/{rest-BeNvB5yg.js → rest-BBI-g8mr.js} +1 -1
  254. package/dist/app/assets/{rip-Cy4A89Kt.js → rip-C3KbnjS_.js} +1 -1
  255. package/dist/app/assets/{roboconf-DFBsCjrv.js → roboconf-CoZ--fPi.js} +1 -1
  256. package/dist/app/assets/{robotframework-DvpHCUN3.js → robotframework-DY6-Pswb.js} +1 -1
  257. package/dist/app/assets/{ruby-C-cly0v1.js → ruby-Bs6f5Nvi.js} +1 -1
  258. package/dist/app/assets/{rust-ClRZWU0b.js → rust-D0f4oPW4.js} +1 -1
  259. package/dist/app/assets/{sankeyDiagram-XADWPNL6-DF9Djzs-.js → sankeyDiagram-XADWPNL6-Dx6TM5mU.js} +1 -1
  260. package/dist/app/assets/{sas-BEyyAboW.js → sas-RrsOkHla.js} +1 -1
  261. package/dist/app/assets/{sass-nWC6zoS4.js → sass-D3DRkshk.js} +1 -1
  262. package/dist/app/assets/{scala-DW3gR9J_.js → scala-2yub5Noi.js} +1 -1
  263. package/dist/app/assets/{scheme-D9mG68D-.js → scheme-DUUET_XL.js} +1 -1
  264. package/dist/app/assets/{scss-BQt6Rs6_.js → scss-mXwcbbk-.js} +1 -1
  265. package/dist/app/assets/{sequenceDiagram-FGHM5R23-CdtsuV-5.js → sequenceDiagram-FGHM5R23-9GU2p9Ma.js} +1 -1
  266. package/dist/app/assets/{shell-session-CS7lePBM.js → shell-session-DoXxry6a.js} +1 -1
  267. package/dist/app/assets/{smali-Cq5zcu4r.js → smali-BM6j_ZPX.js} +1 -1
  268. package/dist/app/assets/{smalltalk-B-yBsNi3.js → smalltalk-Bcd172Pc.js} +1 -1
  269. package/dist/app/assets/{smarty-BVg1RxB6.js → smarty-oKqEpnDS.js} +1 -1
  270. package/dist/app/assets/{sml-to26KERd.js → sml-B1upkj4b.js} +1 -1
  271. package/dist/app/assets/{solidity-Cuiioq2j.js → solidity-xeq40f3P.js} +1 -1
  272. package/dist/app/assets/{solution-file-DgQO4nmb.js → solution-file-DRFXyDTT.js} +1 -1
  273. package/dist/app/assets/{soy-D_5DFQlV.js → soy-OSBkuqMW.js} +1 -1
  274. package/dist/app/assets/{sparql-DOqsplC_.js → sparql-D3k_wEdU.js} +1 -1
  275. package/dist/app/assets/{splunk-spl-CEMVSRXA.js → splunk-spl-FKET7kp7.js} +1 -1
  276. package/dist/app/assets/{sqf-DTJB2erl.js → sqf-BSn0GDGB.js} +1 -1
  277. package/dist/app/assets/{sql-CdlOPIn3.js → sql-D6mgKQB5.js} +1 -1
  278. package/dist/app/assets/{squirrel-DCa0jh5a.js → squirrel-DFu-guJ8.js} +1 -1
  279. package/dist/app/assets/{stan-BhPssW9W.js → stan-CDr-fjyl.js} +1 -1
  280. package/dist/app/assets/{stateDiagram-FHFEXIEX-DAFPc-8q.js → stateDiagram-FHFEXIEX-z2DiLwCm.js} +1 -1
  281. package/dist/app/assets/stateDiagram-v2-QKLJ7IA2-CHMZFZDU.js +1 -0
  282. package/dist/app/assets/{stylus-DICRhFyA.js → stylus-BFOCUvnx.js} +1 -1
  283. package/dist/app/assets/{swift-4kCmBqJY.js → swift-uHqpQZ6J.js} +1 -1
  284. package/dist/app/assets/{systemd-D9e_dugq.js → systemd-CYQNlgLz.js} +1 -1
  285. package/dist/app/assets/{t4-cs-85UBx4Yk.js → t4-cs-usG5jkwF.js} +1 -1
  286. package/dist/app/assets/{t4-templating-CRzRcmVy.js → t4-templating-D4wDOtGr.js} +1 -1
  287. package/dist/app/assets/{t4-vb-Bf2LyvyV.js → t4-vb-C1p1TL0w.js} +1 -1
  288. package/dist/app/assets/{tap-Th817yuG.js → tap-DFMBztgQ.js} +1 -1
  289. package/dist/app/assets/{tcl-8DeIll4K.js → tcl-BCt4zqi_.js} +1 -1
  290. package/dist/app/assets/{textile-BJFgn0rh.js → textile-Bloj03Mi.js} +1 -1
  291. package/dist/app/assets/{timeline-definition-GMOUNBTQ-Ck9tMTXM.js → timeline-definition-GMOUNBTQ-d06kVX17.js} +1 -1
  292. package/dist/app/assets/{toml-BaOjU24H.js → toml-BhS4WNxa.js} +1 -1
  293. package/dist/app/assets/{tremor-Ccd8rcUj.js → tremor-DviIbCpH.js} +1 -1
  294. package/dist/app/assets/{tt2-DWcil7vv.js → tt2-DE0j1lmS.js} +1 -1
  295. package/dist/app/assets/{turtle-Cy9j_Gx7.js → turtle-BxCayuSl.js} +1 -1
  296. package/dist/app/assets/{twig-BJdUKscP.js → twig-DtCkUjxy.js} +1 -1
  297. package/dist/app/assets/{typescript-CIJqbdNP.js → typescript-3pYqwxJ2.js} +1 -1
  298. package/dist/app/assets/{typoscript-OHj-fy40.js → typoscript-Dy8ykcri.js} +1 -1
  299. package/dist/app/assets/{unrealscript-q8qkQiED.js → unrealscript-C4Peef6q.js} +1 -1
  300. package/dist/app/assets/{uorazor-DdA66vNa.js → uorazor-91g1sfeu.js} +1 -1
  301. package/dist/app/assets/{uri-BEPzvcKj.js → uri-DDMRMgIp.js} +1 -1
  302. package/dist/app/assets/{v-CGH7mz4T.js → v-2gwj9f62.js} +1 -1
  303. package/dist/app/assets/{vala-CR1rbp5k.js → vala-CUiPsFoo.js} +1 -1
  304. package/dist/app/assets/{vbnet-CYW5csoH.js → vbnet-Zsyt2tdN.js} +1 -1
  305. package/dist/app/assets/{velocity-DV6L9NOs.js → velocity-CSkxzAQi.js} +1 -1
  306. package/dist/app/assets/{vennDiagram-DHZGUBPP-DyQ3L9Lf.js → vennDiagram-DHZGUBPP-eRSD5RJQ.js} +1 -1
  307. package/dist/app/assets/{verilog-BSCSzZqe.js → verilog-BtHxNyJ7.js} +1 -1
  308. package/dist/app/assets/{vhdl-D2chxwGU.js → vhdl-C0vU6j5h.js} +1 -1
  309. package/dist/app/assets/{vim-Dl0TZ9xX.js → vim-dvVtnnHy.js} +1 -1
  310. package/dist/app/assets/{visual-basic-7dTt3oNi.js → visual-basic-B-m3tLsh.js} +1 -1
  311. package/dist/app/assets/{wardley-RL74JXVD-ahT_LtaL.js → wardley-RL74JXVD-BgTJCIjC.js} +1 -1
  312. package/dist/app/assets/{wardleyDiagram-NUSXRM2D-MFWazalA.js → wardleyDiagram-NUSXRM2D-B19yXjvI.js} +1 -1
  313. package/dist/app/assets/{warpscript-PQ2WU7oS.js → warpscript-1YJK0eIR.js} +1 -1
  314. package/dist/app/assets/{wasm-By1rT3a-.js → wasm-B18nYup5.js} +1 -1
  315. package/dist/app/assets/{web-idl-BimQaw7Z.js → web-idl-DaaOjvPO.js} +1 -1
  316. package/dist/app/assets/{wiki-A9kUBHsB.js → wiki-6hqpglgh.js} +1 -1
  317. package/dist/app/assets/{wolfram-Bd0IwNTD.js → wolfram-uGnnCOiH.js} +1 -1
  318. package/dist/app/assets/{wren-DbnTzI0M.js → wren-BVgxyvFh.js} +1 -1
  319. package/dist/app/assets/{xeora-CiuLF24E.js → xeora-BIlCKODO.js} +1 -1
  320. package/dist/app/assets/{xml-doc-DxVuQAGZ.js → xml-doc-COhD3a_e.js} +1 -1
  321. package/dist/app/assets/{xojo-edH7Z19S.js → xojo-CffC0OLi.js} +1 -1
  322. package/dist/app/assets/{xquery-D8cwD4oE.js → xquery-BysER8W6.js} +1 -1
  323. package/dist/app/assets/{xychartDiagram-5P7HB3ND-nqWbeY47.js → xychartDiagram-5P7HB3ND-Ba1Vo7v6.js} +1 -1
  324. package/dist/app/assets/{yaml-Dq4ock1r.js → yaml-BjlUOXdf.js} +1 -1
  325. package/dist/app/assets/{yang-CmRaJ1fi.js → yang-CE61CGXZ.js} +1 -1
  326. package/dist/app/assets/{zig-mxEIubbp.js → zig-BwDJZvRM.js} +1 -1
  327. package/dist/app/index.html +2 -2
  328. package/dist/index.cjs +274 -137
  329. package/dist/index.js +274 -137
  330. package/package.json +3 -3
  331. package/dist/app/assets/channel-DUmZHumk.js +0 -1
  332. package/dist/app/assets/classDiagram-6PBFFD2Q-C0l0_wYE.js +0 -1
  333. package/dist/app/assets/classDiagram-v2-HSJHXN6E-C0l0_wYE.js +0 -1
  334. package/dist/app/assets/clone-BBm_TQET.js +0 -1
  335. package/dist/app/assets/index-DElrl_bY.css +0 -1
  336. package/dist/app/assets/stateDiagram-v2-QKLJ7IA2-Btav3HrZ.js +0 -1
package/dist/index.js CHANGED
@@ -1390,12 +1390,23 @@ function countCompletedTodos(items) {
1390
1390
 
1391
1391
  // src/lib/task-summary.ts
1392
1392
  var PLAN_PATTERN = /<proposed_plan>\s*([\s\S]*?)\s*<\/proposed_plan>/i;
1393
+ var WEB_SEARCH_RESULT_PATTERN = /^Title:\s*(.+?)\r?\nURL:\s*(https?:\/\/\S+)\s*$/gim;
1394
+ var SANDBOX_FILE_OUTPUT_TOOLS = /* @__PURE__ */ new Set([
1395
+ "sandbox_write_file",
1396
+ "sandbox_append_file",
1397
+ "sandbox_edit_file",
1398
+ "sandbox_multi_edit_file"
1399
+ ]);
1393
1400
  function isObject(value) {
1394
1401
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
1395
1402
  }
1396
1403
  function stringValue(value) {
1397
1404
  return typeof value === "string" && value.trim() ? value.trim() : void 0;
1398
1405
  }
1406
+ function compactText(value, maxLength) {
1407
+ const normalized = value.replace(/\s+/g, " ").trim();
1408
+ return normalized.length <= maxLength ? normalized : `${normalized.slice(0, maxLength - 3).trimEnd()}...`;
1409
+ }
1399
1410
  function timestamp(value) {
1400
1411
  const parsed = value ? Date.parse(value) : 0;
1401
1412
  return Number.isNaN(parsed) ? 0 : parsed;
@@ -1467,19 +1478,29 @@ function normalizeOutput(value) {
1467
1478
  const id = stringValue(candidate.id);
1468
1479
  const title = stringValue(candidate.title);
1469
1480
  const kind = artifactKind(candidate.kind);
1470
- if (!id || !title || !kind) return null;
1471
- const status = candidate.status;
1481
+ const status = stringValue(candidate.status)?.toLowerCase();
1482
+ const normalizedStatus = status === "success" ? status : void 0;
1483
+ const resource = normalizeResource(candidate.resource);
1484
+ if (!id || !title || !kind || status !== void 0 && status !== "success" || !isOpenableOutputResource(resource)) {
1485
+ return null;
1486
+ }
1472
1487
  return {
1473
1488
  id,
1474
1489
  kind,
1475
1490
  title,
1476
1491
  description: stringValue(candidate.description),
1477
- status: status === "pending" || status === "running" || status === "success" || status === "error" ? status : void 0,
1478
- resource: normalizeResource(candidate.resource),
1492
+ status: normalizedStatus,
1493
+ resource,
1479
1494
  messageId: stringValue(candidate.messageId),
1480
1495
  updatedAt: stringValue(candidate.updatedAt)
1481
1496
  };
1482
1497
  }
1498
+ function isCompletedOpenableOutput(output) {
1499
+ return (output.status === void 0 || output.status === "success") && isOpenableOutputResource(output.resource);
1500
+ }
1501
+ function isOpenableOutputResource(resource) {
1502
+ return resource?.type === "workspace_file" || resource?.type === "artifact" || resource?.type === "url";
1503
+ }
1483
1504
  function normalizeSource(value) {
1484
1505
  if (!isObject(value)) return null;
1485
1506
  const candidate = value;
@@ -1534,11 +1555,10 @@ function contributionFromPart(part) {
1534
1555
  if (part.type !== "component" || !isObject(part.data)) return null;
1535
1556
  const data = part.data;
1536
1557
  const direct = normalizeTaskSummaryContribution(data.taskSummary);
1537
- if (direct) return direct;
1538
- if (!isObject(data._meta)) return null;
1539
- return normalizeTaskSummaryContribution(
1558
+ const metadataContribution = isObject(data._meta) ? normalizeTaskSummaryContribution(
1540
1559
  data._meta["xpertai/taskSummary"]
1541
- );
1560
+ ) : null;
1561
+ return direct ?? metadataContribution;
1542
1562
  }
1543
1563
  function extractPlan(message) {
1544
1564
  const match = PLAN_PATTERN.exec(messageText(message.content));
@@ -1606,17 +1626,9 @@ function knownPartOutputs(part, message) {
1606
1626
  if (part.type !== "component" || !isObject(part.data)) return [];
1607
1627
  const data = part.data;
1608
1628
  const outputs = [...contributionFromPart(part)?.outputs ?? []];
1609
- if (data.type === "McpApp") {
1610
- outputs.push({
1611
- id: `mcp-app:${stringValue(part.id) ?? message.id ?? "message"}`,
1612
- kind: "mcp_app",
1613
- title: stringValue(data.title) ?? "MCP App",
1614
- resource: message.id ? { type: "message", messageId: message.id } : void 0,
1615
- messageId: message.id,
1616
- updatedAt
1617
- });
1618
- }
1619
- if (isObject(data.artifact)) {
1629
+ const sandboxOutput = sandboxFileOutput(data, message);
1630
+ if (sandboxOutput) outputs.push(sandboxOutput);
1631
+ if (isObject(data.artifact) && isCompletedOutputStatus(data.artifact.status)) {
1620
1632
  const artifact = data.artifact;
1621
1633
  const artifactId = stringValue(artifact.artifactId) ?? stringValue(artifact.id);
1622
1634
  const workspacePath = stringValue(artifact.workspacePath);
@@ -1642,6 +1654,7 @@ function knownPartOutputs(part, message) {
1642
1654
  for (const value of [data.artifactLink, data.file]) {
1643
1655
  if (!isObject(value)) continue;
1644
1656
  const artifact = value;
1657
+ if (!isCompletedOutputStatus(artifact.status)) continue;
1645
1658
  const artifactId = stringValue(artifact.artifactId) ?? stringValue(artifact.id);
1646
1659
  const workspacePath = stringValue(artifact.workspacePath);
1647
1660
  const id = artifactId ?? stringValue(artifact.fileAssetId) ?? workspacePath;
@@ -1663,6 +1676,52 @@ function knownPartOutputs(part, message) {
1663
1676
  }
1664
1677
  return outputs;
1665
1678
  }
1679
+ function sandboxFileOutput(data, message) {
1680
+ const tool = stringValue(data.tool);
1681
+ const status = stringValue(data.status)?.toLowerCase();
1682
+ if (!tool || !SANDBOX_FILE_OUTPUT_TOOLS.has(tool) || status !== "success" || !isObject(data.input)) {
1683
+ return void 0;
1684
+ }
1685
+ const workspacePath = portableWorkspacePath(
1686
+ data.input.file_path
1687
+ );
1688
+ if (!workspacePath) return void 0;
1689
+ return {
1690
+ id: `workspace-file:${workspacePath}`,
1691
+ kind: outputKindFromPath(workspacePath),
1692
+ title: workspacePath.split("/").at(-1) ?? workspacePath,
1693
+ status: "success",
1694
+ resource: { type: "workspace_file", workspacePath },
1695
+ messageId: message.id,
1696
+ updatedAt: message.updatedAt ?? message.createdAt
1697
+ };
1698
+ }
1699
+ function portableWorkspacePath(value) {
1700
+ const path = stringValue(value)?.replace(/\\/g, "/").replace(/^\.\/+/, "").replace(/\/{2,}/g, "/");
1701
+ if (!path || path.startsWith("/") || /^[a-z]:\//i.test(path) || path.split("/").some((segment) => segment === "..")) {
1702
+ return void 0;
1703
+ }
1704
+ return path;
1705
+ }
1706
+ function outputKindFromPath(path) {
1707
+ const extension = path.match(/\.([^./]+)$/)?.[1]?.toLowerCase();
1708
+ if (extension === "html" || extension === "htm") return "site";
1709
+ if (["png", "jpg", "jpeg", "gif", "webp", "svg", "avif"].includes(extension ?? ""))
1710
+ return "image";
1711
+ if (["csv", "xls", "xlsx", "ods"].includes(extension ?? ""))
1712
+ return "spreadsheet";
1713
+ if (["ppt", "pptx", "odp"].includes(extension ?? ""))
1714
+ return "presentation";
1715
+ if (["pdf", "doc", "docx", "md", "markdown", "txt", "rtf", "odt"].includes(
1716
+ extension ?? ""
1717
+ ))
1718
+ return "document";
1719
+ return "file";
1720
+ }
1721
+ function isCompletedOutputStatus(value) {
1722
+ const status = stringValue(value)?.toLowerCase();
1723
+ return status === void 0 || status === "success";
1724
+ }
1666
1725
  function sourceFromReference(reference, message) {
1667
1726
  const updatedAt = message.updatedAt ?? message.createdAt;
1668
1727
  const common = {
@@ -1735,25 +1794,42 @@ function fileSources(files, message) {
1735
1794
  ];
1736
1795
  });
1737
1796
  }
1738
- function capabilitySources(message) {
1739
- const selection = message.runtimeCapabilities;
1740
- if (!selection) return [];
1797
+ function webSearchSources(part, message) {
1798
+ if (part.type !== "component" || !isObject(part.data)) return [];
1799
+ const data = part.data;
1800
+ if (data.tool !== "web_search" || stringValue(data.status)?.toLowerCase() !== "success") {
1801
+ return [];
1802
+ }
1803
+ const output = stringValue(data.output);
1804
+ if (!output) return [];
1741
1805
  const updatedAt = message.updatedAt ?? message.createdAt;
1742
- const common = { messageId: message.id, updatedAt };
1743
- return [
1744
- ...selection.skills.ids.map((id) => ({
1745
- ...common,
1746
- id: `skill:${id}`,
1747
- kind: "skill",
1748
- title: id
1749
- })),
1750
- ...selection.plugins.nodeKeys.map((id) => ({
1751
- ...common,
1752
- id: `plugin:${id}`,
1753
- kind: "plugin",
1754
- title: id
1755
- }))
1756
- ];
1806
+ const sources = [];
1807
+ for (const match of output.matchAll(WEB_SEARCH_RESULT_PATTERN)) {
1808
+ const rawTitle = stringValue(match[1]);
1809
+ const url = httpUrl(match[2]);
1810
+ if (!url) continue;
1811
+ const title = rawTitle && rawTitle.toLowerCase() !== "n/a" ? rawTitle : new URL(url).hostname;
1812
+ sources.push({
1813
+ id: `web:${url}`,
1814
+ kind: "web_page",
1815
+ title: compactText(title, 160),
1816
+ description: url,
1817
+ resource: { type: "url", url },
1818
+ messageId: message.id,
1819
+ updatedAt
1820
+ });
1821
+ }
1822
+ return sources;
1823
+ }
1824
+ function httpUrl(value) {
1825
+ const url = stringValue(value);
1826
+ if (!url) return void 0;
1827
+ try {
1828
+ const parsed = new URL(url);
1829
+ return parsed.protocol === "http:" || parsed.protocol === "https:" ? url : void 0;
1830
+ } catch {
1831
+ return void 0;
1832
+ }
1757
1833
  }
1758
1834
  function collectLiveTaskSummary({
1759
1835
  messages,
@@ -1773,7 +1849,9 @@ function collectLiveTaskSummary({
1773
1849
  (message) => extractPlan(message) ?? []
1774
1850
  );
1775
1851
  const agentRuns = messages.flatMap(
1776
- (message) => (message.agentRuns ?? []).filter((run) => Boolean(run.parentId)).map((run) => ({
1852
+ (message) => (message.agentRuns ?? []).filter(
1853
+ (run) => run.category?.trim().toLowerCase() === "agent" && Boolean(run.parentId)
1854
+ ).map((run) => ({
1777
1855
  id: run.id,
1778
1856
  parentId: run.parentId,
1779
1857
  level: agentRunLevel(run, messages),
@@ -1781,7 +1859,7 @@ function collectLiveTaskSummary({
1781
1859
  title: (run.agentKey ? agentNames?.get(run.agentKey) : void 0) ?? run.title ?? run.xpertName ?? run.agentKey ?? "Agent",
1782
1860
  status: taskSummaryAgentStatus(run.status),
1783
1861
  elapsedTime: run.elapsedTime,
1784
- error: typeof run.error === "string" ? run.error : void 0,
1862
+ error: typeof run.error === "string" ? compactText(run.error, 160) : void 0,
1785
1863
  messageId: message.id,
1786
1864
  updatedAt: run.updatedAt ?? run.endedAt ?? run.startedAt ?? message.updatedAt
1787
1865
  }))
@@ -1805,7 +1883,7 @@ function collectLiveTaskSummary({
1805
1883
  (part) => knownPartOutputs(part, message)
1806
1884
  )
1807
1885
  )
1808
- ]),
1886
+ ]).filter(isCompletedOpenableOutput),
1809
1887
  sources: mergeLatest([
1810
1888
  ...contributions.flatMap((item) => item.sources ?? []).filter((source) => source.kind !== "sub_agent"),
1811
1889
  ...messages.flatMap((message) => [
@@ -1814,7 +1892,9 @@ function collectLiveTaskSummary({
1814
1892
  ),
1815
1893
  ...fileSources(message.fileAssets, message),
1816
1894
  ...fileSources(message.attachments, message),
1817
- ...capabilitySources(message)
1895
+ ...contentParts(message.content).flatMap(
1896
+ (part) => webSearchSources(part, message)
1897
+ )
1818
1898
  ])
1819
1899
  ]),
1820
1900
  agents: mergeAgents(agentRuns),
@@ -1826,17 +1906,21 @@ function mergeTaskSummary(history, live, historySections) {
1826
1906
  const outputs = mergeLatest([
1827
1907
  ...historySections?.outputs ?? history?.outputs.items ?? [],
1828
1908
  ...live.outputs
1829
- ]);
1909
+ ]).filter(isCompletedOpenableOutput);
1830
1910
  const sources = mergeLatest([
1831
1911
  ...historySections?.sources ?? history?.sources.items ?? [],
1832
1912
  ...live.sources
1833
1913
  ]);
1834
- const agents = mergeAgents([
1835
- ...(historySections?.agents ?? history?.agents.items ?? []).filter(
1836
- (agent) => Boolean(agent.parentId)
1837
- ),
1838
- ...live.agents
1839
- ]);
1914
+ const historyAgents = historySections?.agents ?? history?.agents.items ?? [];
1915
+ const eligibleHistoryAgents = historyAgents.filter(
1916
+ (agent) => Boolean(agent.parentId)
1917
+ );
1918
+ const excludedHistoryAgentCount = historyAgents.length - eligibleHistoryAgents.length;
1919
+ const historyAgentTotal = Math.max(
1920
+ 0,
1921
+ (history?.agents.total ?? 0) - excludedHistoryAgentCount
1922
+ );
1923
+ const agents = mergeAgents([...eligibleHistoryAgents, ...live.agents]);
1840
1924
  const pending = mergePending([
1841
1925
  ...historySections?.pending ?? history?.pending.items ?? [],
1842
1926
  ...live.pending
@@ -1861,7 +1945,7 @@ function mergeTaskSummary(history, live, historySections) {
1861
1945
  totals: {
1862
1946
  outputs: Math.max(history?.outputs.total ?? 0, outputs.length),
1863
1947
  sources: Math.max(history?.sources.total ?? 0, sources.length),
1864
- agents: agents.length,
1948
+ agents: Math.max(historyAgentTotal, agents.length),
1865
1949
  pending: Math.max(history?.pending.total ?? 0, pending.length)
1866
1950
  }
1867
1951
  };
@@ -2581,7 +2665,6 @@ var en_US_default = {
2581
2665
  partial: "Partially ready",
2582
2666
  failed: "Failed"
2583
2667
  },
2584
- poweredBy: "Powered by Xpert AI",
2585
2668
  followUps: {
2586
2669
  pending: "Pending follow-ups",
2587
2670
  queue: "Queue",
@@ -2891,7 +2974,20 @@ var en_US_default = {
2891
2974
  status: {
2892
2975
  pending: "Pending",
2893
2976
  in_progress: "In progress",
2894
- completed: "Completed"
2977
+ completed: "Completed",
2978
+ active: "Active",
2979
+ paused: "Paused",
2980
+ blocked: "Blocked",
2981
+ usage_limited: "Usage limited",
2982
+ budget_limited: "Budget limited",
2983
+ complete: "Completed",
2984
+ success: "Completed",
2985
+ error: "Failed",
2986
+ running: "Running",
2987
+ starting: "Starting",
2988
+ stopping: "Stopping",
2989
+ timeout: "Timed out",
2990
+ interrupted: "Interrupted"
2895
2991
  },
2896
2992
  pending: {
2897
2993
  approval: "Approval required",
@@ -3157,7 +3253,6 @@ var zh_CN_default = {
3157
3253
  partial: "\u90E8\u5206\u5C31\u7EEA",
3158
3254
  failed: "\u89E3\u6790\u5931\u8D25"
3159
3255
  },
3160
- poweredBy: "\u7531 Xpert AI \u9A71\u52A8",
3161
3256
  followUps: {
3162
3257
  pending: "\u5F85\u5904\u7406 Follow-up",
3163
3258
  queue: "\u6392\u961F",
@@ -3467,7 +3562,20 @@ var zh_CN_default = {
3467
3562
  status: {
3468
3563
  pending: "\u5F85\u5904\u7406",
3469
3564
  in_progress: "\u8FDB\u884C\u4E2D",
3470
- completed: "\u5DF2\u5B8C\u6210"
3565
+ completed: "\u5DF2\u5B8C\u6210",
3566
+ active: "\u8FDB\u884C\u4E2D",
3567
+ paused: "\u5DF2\u6682\u505C",
3568
+ blocked: "\u5DF2\u963B\u585E",
3569
+ usage_limited: "\u7528\u91CF\u53D7\u9650",
3570
+ budget_limited: "\u9884\u7B97\u53D7\u9650",
3571
+ complete: "\u5DF2\u5B8C\u6210",
3572
+ success: "\u5DF2\u5B8C\u6210",
3573
+ error: "\u5931\u8D25",
3574
+ running: "\u8FD0\u884C\u4E2D",
3575
+ starting: "\u542F\u52A8\u4E2D",
3576
+ stopping: "\u505C\u6B62\u4E2D",
3577
+ timeout: "\u5DF2\u8D85\u65F6",
3578
+ interrupted: "\u5DF2\u4E2D\u65AD"
3471
3579
  },
3472
3580
  pending: {
3473
3581
  approval: "\u9700\u8981\u5BA1\u6279",
@@ -3907,12 +4015,16 @@ function ThemeProvider({ children, theme: themeProp }) {
3907
4015
  React2.useEffect(() => {
3908
4016
  if (!themeRef.current) return;
3909
4017
  const el = themeRef.current;
4018
+ const root = document.documentElement;
4019
+ const rootWasDark = root.classList.contains("dark");
3910
4020
  const { colorScheme, radius, density, typography, color } = theme;
3911
4021
  const isDarkMode2 = colorScheme === "dark";
3912
4022
  if (isDarkMode2) {
3913
4023
  el.classList.add("dark");
4024
+ root.classList.add("dark");
3914
4025
  } else {
3915
4026
  el.classList.remove("dark");
4027
+ root.classList.remove("dark");
3916
4028
  }
3917
4029
  if (radius) {
3918
4030
  el.dataset.radius = radius;
@@ -3954,7 +4066,6 @@ function ThemeProvider({ children, theme: themeProp }) {
3954
4066
  }
3955
4067
  }
3956
4068
  if (color) {
3957
- const root = document.documentElement;
3958
4069
  if (color.grayscale) {
3959
4070
  const grayscaleColors = generateGrayscaleColors(color.grayscale, isDarkMode2);
3960
4071
  Object.entries(grayscaleColors).forEach(([key, value]) => {
@@ -4001,8 +4112,8 @@ function ThemeProvider({ children, theme: themeProp }) {
4001
4112
  }
4002
4113
  setThemeRevision((current) => current + 1);
4003
4114
  return () => {
4004
- const root = document.documentElement;
4005
4115
  el.classList.remove("dark");
4116
+ root.classList.toggle("dark", rootWasDark);
4006
4117
  el.removeAttribute("data-radius");
4007
4118
  el.removeAttribute("data-density");
4008
4119
  el.style.removeProperty("--density-spacing");
@@ -20534,7 +20645,8 @@ function useTaskSummary({
20534
20645
  enabled,
20535
20646
  conversationId,
20536
20647
  client,
20537
- live
20648
+ live,
20649
+ refreshVersion = 0
20538
20650
  }) {
20539
20651
  const [loaded, setLoaded] = React59.useState(null);
20540
20652
  const [historySections, setHistorySections] = React59.useState({});
@@ -20579,7 +20691,14 @@ function useTaskSummary({
20579
20691
  abortSectionRequests();
20580
20692
  requestVersionRef.current += 1;
20581
20693
  };
20582
- }, [abortSectionRequests, client, conversationId, enabled, retryVersion]);
20694
+ }, [
20695
+ abortSectionRequests,
20696
+ client,
20697
+ conversationId,
20698
+ enabled,
20699
+ refreshVersion,
20700
+ retryVersion
20701
+ ]);
20583
20702
  const snapshot = loaded?.conversationId === conversationId ? loaded.snapshot : null;
20584
20703
  const activeHistorySections = React59.useMemo(
20585
20704
  () => historySectionsConversationId === conversationId ? historySections : {},
@@ -20621,13 +20740,7 @@ function useTaskSummary({
20621
20740
  }
20622
20741
  }
20623
20742
  },
20624
- [
20625
- activeHistorySections,
20626
- client,
20627
- conversationId,
20628
- enabled,
20629
- loadingSections
20630
- ]
20743
+ [activeHistorySections, client, conversationId, enabled, loadingSections]
20631
20744
  );
20632
20745
  return {
20633
20746
  summary: mergeTaskSummary(snapshot, live, activeHistorySections),
@@ -20744,6 +20857,7 @@ function TaskSummaryContent({
20744
20857
  }) {
20745
20858
  const { t } = useChatkitTranslation();
20746
20859
  const [expanded, setExpanded] = React60.useState({});
20860
+ const [expandedLocal, setExpandedLocal] = React60.useState({});
20747
20861
  const hasTask = Boolean(
20748
20862
  summary.goal || summary.plan || summary.todos?.items.length
20749
20863
  );
@@ -20758,6 +20872,12 @@ function TaskSummaryContent({
20758
20872
  }
20759
20873
  };
20760
20874
  const sectionItems = (section, items) => expanded[section] ? items : items.slice(0, PREVIEW_SIZE);
20875
+ const localSectionItems = (section, items) => expandedLocal[section] ? items : items.slice(0, PREVIEW_SIZE);
20876
+ const localizedStatus = (status) => {
20877
+ if (!status) return void 0;
20878
+ const key = status.trim().toLowerCase().replace(/[\s-]+/g, "_");
20879
+ return t(`taskSummary.status.${key}`, { defaultValue: status });
20880
+ };
20761
20881
  const openSummaryItem = (resource, messageId, title) => {
20762
20882
  if (resource?.type === "message") {
20763
20883
  onNavigateMessage(resource.messageId);
@@ -20790,6 +20910,25 @@ function TaskSummaryContent({
20790
20910
  }
20791
20911
  );
20792
20912
  };
20913
+ const localSectionAction = (section, total2) => {
20914
+ if (total2 <= PREVIEW_SIZE) return null;
20915
+ const isExpanded = Boolean(expandedLocal[section]);
20916
+ return /* @__PURE__ */ jsxs45(
20917
+ "button",
20918
+ {
20919
+ type: "button",
20920
+ className: "mt-1 flex w-full items-center gap-2 rounded-lg px-2 py-1.5 text-left text-sm text-muted-foreground transition-colors hover:bg-muted/60 hover:text-foreground",
20921
+ onClick: () => setExpandedLocal((state) => ({
20922
+ ...state,
20923
+ [section]: !isExpanded
20924
+ })),
20925
+ children: [
20926
+ /* @__PURE__ */ jsx64(ListChecks3, { className: "size-3.5" }),
20927
+ isExpanded ? t("taskSummary.collapse") : t("taskSummary.viewAll", { count: total2 })
20928
+ ]
20929
+ }
20930
+ );
20931
+ };
20793
20932
  return /* @__PURE__ */ jsxs45("div", { className: "divide-y divide-border/70", children: [
20794
20933
  Boolean(historyError) && /* @__PURE__ */ jsxs45("div", { className: "m-3 flex items-start justify-between gap-3 rounded-lg border border-destructive/30 bg-destructive/5 px-3 py-2 text-xs text-destructive", children: [
20795
20934
  /* @__PURE__ */ jsx64("span", { children: t("taskSummary.historyError") }),
@@ -20806,52 +20945,41 @@ function TaskSummaryContent({
20806
20945
  }
20807
20946
  )
20808
20947
  ] }),
20809
- /* @__PURE__ */ jsxs45(
20810
- SummarySection,
20811
- {
20812
- title: t("taskSummary.sections.outputs"),
20813
- children: [
20814
- summary.outputs.length === 0 ? /* @__PURE__ */ jsx64(SummaryPrompt, { onClick: onFocusComposer, children: t("taskSummary.createOutput") }) : sectionItems("outputs", summary.outputs).map((item) => /* @__PURE__ */ jsx64(
20815
- SummaryButton,
20816
- {
20817
- title: item.title,
20818
- description: item.description ?? item.status,
20819
- leading: /* @__PURE__ */ jsx64(FileOutput, { className: "size-4" }),
20820
- trailing: item.resource && item.resource.type !== "message" ? /* @__PURE__ */ jsx64(ExternalLink, { className: "size-3.5" }) : void 0,
20821
- onClick: () => openSummaryItem(item.resource, item.messageId, item.title)
20822
- },
20823
- item.id
20824
- )),
20825
- sectionAction("outputs", summary.totals.outputs)
20826
- ]
20827
- }
20828
- ),
20829
- /* @__PURE__ */ jsxs45(
20830
- SummarySection,
20831
- {
20832
- title: t("taskSummary.sections.sources"),
20833
- children: [
20834
- sectionItems("sources", summary.sources).map((item) => /* @__PURE__ */ jsx64(
20835
- SummaryButton,
20836
- {
20837
- title: item.title,
20838
- description: item.description,
20839
- leading: /* @__PURE__ */ jsx64(BookOpen3, { className: "size-4" }),
20840
- trailing: item.resource && item.resource.type !== "message" ? /* @__PURE__ */ jsx64(ExternalLink, { className: "size-3.5" }) : void 0,
20841
- onClick: () => openSummaryItem(item.resource, item.messageId, item.title)
20842
- },
20843
- item.id
20844
- )),
20845
- sectionAction("sources", summary.totals.sources)
20846
- ]
20847
- }
20848
- ),
20948
+ /* @__PURE__ */ jsxs45(SummarySection, { title: t("taskSummary.sections.outputs"), children: [
20949
+ summary.outputs.length === 0 ? /* @__PURE__ */ jsx64(SummaryPrompt, { onClick: onFocusComposer, children: t("taskSummary.createOutput") }) : sectionItems("outputs", summary.outputs).map((item) => /* @__PURE__ */ jsx64(
20950
+ SummaryButton,
20951
+ {
20952
+ title: item.title,
20953
+ metadata: localizedStatus(item.status),
20954
+ description: item.description,
20955
+ leading: /* @__PURE__ */ jsx64(FileOutput, { className: "size-4" }),
20956
+ trailing: item.resource && item.resource.type !== "message" ? /* @__PURE__ */ jsx64(ExternalLink, { className: "size-3.5" }) : void 0,
20957
+ onClick: () => openSummaryItem(item.resource, item.messageId, item.title)
20958
+ },
20959
+ item.id
20960
+ )),
20961
+ sectionAction("outputs", summary.totals.outputs)
20962
+ ] }),
20963
+ /* @__PURE__ */ jsxs45(SummarySection, { title: t("taskSummary.sections.sources"), children: [
20964
+ sectionItems("sources", summary.sources).map((item) => /* @__PURE__ */ jsx64(
20965
+ SummaryButton,
20966
+ {
20967
+ title: item.title,
20968
+ description: item.description,
20969
+ leading: /* @__PURE__ */ jsx64(BookOpen3, { className: "size-4" }),
20970
+ trailing: item.resource && item.resource.type !== "message" ? /* @__PURE__ */ jsx64(ExternalLink, { className: "size-3.5" }) : void 0,
20971
+ onClick: () => openSummaryItem(item.resource, item.messageId, item.title)
20972
+ },
20973
+ item.id
20974
+ )),
20975
+ sectionAction("sources", summary.totals.sources)
20976
+ ] }),
20849
20977
  hasTask && /* @__PURE__ */ jsxs45(SummarySection, { title: t("taskSummary.sections.task"), children: [
20850
20978
  summary.goal && /* @__PURE__ */ jsx64(
20851
20979
  SummaryButton,
20852
20980
  {
20853
20981
  title: summary.goal.objective,
20854
- description: summary.goal.status,
20982
+ metadata: localizedStatus(summary.goal.status),
20855
20983
  leading: /* @__PURE__ */ jsx64(Target2, { className: "size-4" }),
20856
20984
  onClick: onFocusComposer
20857
20985
  }
@@ -20865,34 +20993,45 @@ function TaskSummaryContent({
20865
20993
  onClick: () => summary.plan?.messageId ? onNavigateMessage(summary.plan.messageId) : onFocusComposer()
20866
20994
  }
20867
20995
  ),
20868
- (summary.todos?.items ?? []).slice(0, PREVIEW_SIZE).map((todo) => /* @__PURE__ */ jsx64(
20996
+ localSectionItems("todos", summary.todos?.items ?? []).map(
20997
+ (todo) => /* @__PURE__ */ jsx64(
20998
+ SummaryButton,
20999
+ {
21000
+ title: todo.content,
21001
+ metadata: localizedStatus(todo.status),
21002
+ leading: todo.status === "completed" ? /* @__PURE__ */ jsx64(CheckCircle25, { className: "size-4 text-muted-foreground" }) : /* @__PURE__ */ jsx64(CircleEllipsis, { className: "size-4 text-muted-foreground" }),
21003
+ onClick: () => summary.todos?.messageId ? onNavigateMessage(summary.todos.messageId) : onFocusComposer()
21004
+ },
21005
+ todo.id
21006
+ )
21007
+ ),
21008
+ localSectionAction("todos", summary.todos?.items.length ?? 0)
21009
+ ] }),
21010
+ summary.running.length > 0 && /* @__PURE__ */ jsxs45(SummarySection, { title: t("taskSummary.sections.running"), children: [
21011
+ localSectionItems("running", summary.running).map((item) => /* @__PURE__ */ jsx64(
20869
21012
  SummaryButton,
20870
21013
  {
20871
- title: todo.content,
20872
- description: t(`taskSummary.status.${todo.status}`),
20873
- leading: todo.status === "completed" ? /* @__PURE__ */ jsx64(CheckCircle25, { className: "size-4 text-muted-foreground" }) : /* @__PURE__ */ jsx64(CircleEllipsis, { className: "size-4 text-muted-foreground" }),
20874
- onClick: () => summary.todos?.messageId ? onNavigateMessage(summary.todos.messageId) : onFocusComposer()
21014
+ title: item.title,
21015
+ metadata: localizedStatus(item.status),
21016
+ description: item.description,
21017
+ leading: /* @__PURE__ */ jsx64(PlayCircle, { className: "size-4" }),
21018
+ trailing: item.resource ? /* @__PURE__ */ jsx64(ExternalLink, { className: "size-3.5" }) : void 0,
21019
+ onClick: () => item.resource && onOpenResource(item.resource, void 0, item.title)
20875
21020
  },
20876
- todo.id
20877
- ))
21021
+ item.id
21022
+ )),
21023
+ localSectionAction("running", summary.running.length)
20878
21024
  ] }),
20879
- summary.running.length > 0 && /* @__PURE__ */ jsx64(SummarySection, { title: t("taskSummary.sections.running"), children: summary.running.slice(0, PREVIEW_SIZE).map((item) => /* @__PURE__ */ jsx64(
20880
- SummaryButton,
20881
- {
20882
- title: item.title,
20883
- description: item.description ?? item.status,
20884
- leading: /* @__PURE__ */ jsx64(PlayCircle, { className: "size-4" }),
20885
- trailing: item.resource ? /* @__PURE__ */ jsx64(ExternalLink, { className: "size-3.5" }) : void 0,
20886
- onClick: () => item.resource && onOpenResource(item.resource, void 0, item.title)
20887
- },
20888
- item.id
20889
- )) }),
20890
21025
  summary.agents.length > 0 && /* @__PURE__ */ jsxs45(SummarySection, { title: t("taskSummary.sections.agents"), children: [
20891
21026
  sectionItems("agents", summary.agents).map((item) => /* @__PURE__ */ jsx64(
20892
21027
  SummaryButton,
20893
21028
  {
20894
21029
  title: item.title,
20895
- description: [item.status, formatElapsed(item.elapsedTime)].filter(Boolean).join(" \xB7 "),
21030
+ metadata: [
21031
+ localizedStatus(item.status),
21032
+ formatElapsed(item.elapsedTime)
21033
+ ].filter(Boolean).join(" \xB7 "),
21034
+ description: item.error,
20896
21035
  leading: /* @__PURE__ */ jsx64(Bot5, { className: "size-4" }),
20897
21036
  onClick: () => item.messageId ? onNavigateMessage(item.messageId) : onFocusComposer()
20898
21037
  },
@@ -20940,16 +21079,20 @@ function SummaryPrompt({
20940
21079
  }
20941
21080
  function SummaryButton({
20942
21081
  title,
21082
+ metadata,
20943
21083
  description,
20944
21084
  leading,
20945
21085
  trailing,
20946
21086
  onClick
20947
21087
  }) {
21088
+ const tooltipText = [title, metadata, description].filter(Boolean);
20948
21089
  return /* @__PURE__ */ jsxs45(
20949
21090
  "button",
20950
21091
  {
20951
21092
  type: "button",
20952
- disabled: !onClick,
21093
+ title: tooltipText.join("\n"),
21094
+ "aria-disabled": !onClick,
21095
+ tabIndex: onClick ? 0 : -1,
20953
21096
  onClick,
20954
21097
  className: cn(
20955
21098
  "flex w-full min-w-0 items-start gap-2.5 rounded-lg px-2 py-1.5 text-left transition-colors",
@@ -20960,6 +21103,7 @@ function SummaryButton({
20960
21103
  leading && /* @__PURE__ */ jsx64("span", { className: "mt-0.5 shrink-0 text-muted-foreground", children: leading }),
20961
21104
  /* @__PURE__ */ jsxs45("span", { className: "min-w-0 flex-1", children: [
20962
21105
  /* @__PURE__ */ jsx64("span", { className: "block truncate text-sm font-medium leading-5 text-foreground", children: title }),
21106
+ metadata && /* @__PURE__ */ jsx64("span", { className: "mt-0.5 block truncate text-xs text-muted-foreground", children: metadata }),
20963
21107
  description && /* @__PURE__ */ jsx64("span", { className: "mt-0.5 block line-clamp-2 text-xs text-muted-foreground", children: description })
20964
21108
  ] }),
20965
21109
  trailing && /* @__PURE__ */ jsx64("span", { className: "mt-0.5 text-muted-foreground", children: trailing })
@@ -22055,7 +22199,8 @@ function Chat({
22055
22199
  enabled: taskSummaryEnabled,
22056
22200
  conversationId: taskSummaryConversationId,
22057
22201
  client: stream.client,
22058
- live: liveTaskSummary
22202
+ live: liveTaskSummary,
22203
+ refreshVersion: stream.historyMessageLoadVersion
22059
22204
  });
22060
22205
  const navigateToTaskSummaryMessage = React61.useCallback(
22061
22206
  async (messageId) => {
@@ -23893,7 +24038,7 @@ function Chat({
23893
24038
  "data-slot": "chatkit-chat-composer",
23894
24039
  "data-position": isInitialComposer ? "centered" : "bottom",
23895
24040
  className: cn(
23896
- "mx-auto w-full p-2 z-10 bg-background",
24041
+ "mx-auto w-full max-w-2xl px-4 pb-4 pt-2 z-10 bg-background",
23897
24042
  isInitialComposer ? "mb-auto" : "sticky bottom-0"
23898
24043
  ),
23899
24044
  style: chatColumnStyle,
@@ -24170,7 +24315,7 @@ function Chat({
24170
24315
  {
24171
24316
  "data-slot": "composer-editor-surface",
24172
24317
  className: cn(
24173
- "relative flex min-h-[10rem] min-w-0 bg-background px-2 pt-2 pb-14",
24318
+ "relative flex min-h-[6.5rem] min-w-0 bg-background px-2 pt-2 pb-14",
24174
24319
  "rounded-composer-editor"
24175
24320
  ),
24176
24321
  children: [
@@ -24191,7 +24336,7 @@ function Chat({
24191
24336
  onKeyDown: handleComposerKeyDown,
24192
24337
  "data-placeholder": inputPlaceholder,
24193
24338
  className: cn(
24194
- "min-h-20 max-h-36 w-full overflow-y-auto whitespace-pre-wrap break-words bg-transparent px-2 py-2 text-base leading-6 text-foreground outline-none",
24339
+ "min-h-10 max-h-36 w-full overflow-y-auto whitespace-pre-wrap break-words bg-transparent px-2 py-2 text-base leading-6 text-foreground outline-none",
24195
24340
  "empty:before:pointer-events-none empty:before:text-muted-foreground empty:before:content-[attr(data-placeholder)]",
24196
24341
  (missingConfig || isHistoryLoading || hasPendingInteractiveRequest) && "cursor-not-allowed opacity-50"
24197
24342
  ),
@@ -24346,14 +24491,6 @@ function Chat({
24346
24491
  ),
24347
24492
  children: disclaimer.text
24348
24493
  }
24349
- ),
24350
- /* @__PURE__ */ jsx65(
24351
- "div",
24352
- {
24353
- "data-slot": "chat-footer",
24354
- className: "relative mt-2 flex min-h-6 items-center justify-center gap-2 text-xs text-muted-foreground",
24355
- children: /* @__PURE__ */ jsx65("span", { children: t("chat.poweredBy") })
24356
- }
24357
24494
  )
24358
24495
  ]
24359
24496
  }