@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.cjs CHANGED
@@ -1405,12 +1405,23 @@ function countCompletedTodos(items) {
1405
1405
 
1406
1406
  // src/lib/task-summary.ts
1407
1407
  var PLAN_PATTERN = /<proposed_plan>\s*([\s\S]*?)\s*<\/proposed_plan>/i;
1408
+ var WEB_SEARCH_RESULT_PATTERN = /^Title:\s*(.+?)\r?\nURL:\s*(https?:\/\/\S+)\s*$/gim;
1409
+ var SANDBOX_FILE_OUTPUT_TOOLS = /* @__PURE__ */ new Set([
1410
+ "sandbox_write_file",
1411
+ "sandbox_append_file",
1412
+ "sandbox_edit_file",
1413
+ "sandbox_multi_edit_file"
1414
+ ]);
1408
1415
  function isObject(value) {
1409
1416
  return Boolean(value) && typeof value === "object" && !Array.isArray(value);
1410
1417
  }
1411
1418
  function stringValue(value) {
1412
1419
  return typeof value === "string" && value.trim() ? value.trim() : void 0;
1413
1420
  }
1421
+ function compactText(value, maxLength) {
1422
+ const normalized = value.replace(/\s+/g, " ").trim();
1423
+ return normalized.length <= maxLength ? normalized : `${normalized.slice(0, maxLength - 3).trimEnd()}...`;
1424
+ }
1414
1425
  function timestamp(value) {
1415
1426
  const parsed = value ? Date.parse(value) : 0;
1416
1427
  return Number.isNaN(parsed) ? 0 : parsed;
@@ -1482,19 +1493,29 @@ function normalizeOutput(value) {
1482
1493
  const id = stringValue(candidate.id);
1483
1494
  const title = stringValue(candidate.title);
1484
1495
  const kind = artifactKind(candidate.kind);
1485
- if (!id || !title || !kind) return null;
1486
- const status = candidate.status;
1496
+ const status = stringValue(candidate.status)?.toLowerCase();
1497
+ const normalizedStatus = status === "success" ? status : void 0;
1498
+ const resource = normalizeResource(candidate.resource);
1499
+ if (!id || !title || !kind || status !== void 0 && status !== "success" || !isOpenableOutputResource(resource)) {
1500
+ return null;
1501
+ }
1487
1502
  return {
1488
1503
  id,
1489
1504
  kind,
1490
1505
  title,
1491
1506
  description: stringValue(candidate.description),
1492
- status: status === "pending" || status === "running" || status === "success" || status === "error" ? status : void 0,
1493
- resource: normalizeResource(candidate.resource),
1507
+ status: normalizedStatus,
1508
+ resource,
1494
1509
  messageId: stringValue(candidate.messageId),
1495
1510
  updatedAt: stringValue(candidate.updatedAt)
1496
1511
  };
1497
1512
  }
1513
+ function isCompletedOpenableOutput(output) {
1514
+ return (output.status === void 0 || output.status === "success") && isOpenableOutputResource(output.resource);
1515
+ }
1516
+ function isOpenableOutputResource(resource) {
1517
+ return resource?.type === "workspace_file" || resource?.type === "artifact" || resource?.type === "url";
1518
+ }
1498
1519
  function normalizeSource(value) {
1499
1520
  if (!isObject(value)) return null;
1500
1521
  const candidate = value;
@@ -1549,11 +1570,10 @@ function contributionFromPart(part) {
1549
1570
  if (part.type !== "component" || !isObject(part.data)) return null;
1550
1571
  const data = part.data;
1551
1572
  const direct = normalizeTaskSummaryContribution(data.taskSummary);
1552
- if (direct) return direct;
1553
- if (!isObject(data._meta)) return null;
1554
- return normalizeTaskSummaryContribution(
1573
+ const metadataContribution = isObject(data._meta) ? normalizeTaskSummaryContribution(
1555
1574
  data._meta["xpertai/taskSummary"]
1556
- );
1575
+ ) : null;
1576
+ return direct ?? metadataContribution;
1557
1577
  }
1558
1578
  function extractPlan(message) {
1559
1579
  const match = PLAN_PATTERN.exec(messageText(message.content));
@@ -1621,17 +1641,9 @@ function knownPartOutputs(part, message) {
1621
1641
  if (part.type !== "component" || !isObject(part.data)) return [];
1622
1642
  const data = part.data;
1623
1643
  const outputs = [...contributionFromPart(part)?.outputs ?? []];
1624
- if (data.type === "McpApp") {
1625
- outputs.push({
1626
- id: `mcp-app:${stringValue(part.id) ?? message.id ?? "message"}`,
1627
- kind: "mcp_app",
1628
- title: stringValue(data.title) ?? "MCP App",
1629
- resource: message.id ? { type: "message", messageId: message.id } : void 0,
1630
- messageId: message.id,
1631
- updatedAt
1632
- });
1633
- }
1634
- if (isObject(data.artifact)) {
1644
+ const sandboxOutput = sandboxFileOutput(data, message);
1645
+ if (sandboxOutput) outputs.push(sandboxOutput);
1646
+ if (isObject(data.artifact) && isCompletedOutputStatus(data.artifact.status)) {
1635
1647
  const artifact = data.artifact;
1636
1648
  const artifactId = stringValue(artifact.artifactId) ?? stringValue(artifact.id);
1637
1649
  const workspacePath = stringValue(artifact.workspacePath);
@@ -1657,6 +1669,7 @@ function knownPartOutputs(part, message) {
1657
1669
  for (const value of [data.artifactLink, data.file]) {
1658
1670
  if (!isObject(value)) continue;
1659
1671
  const artifact = value;
1672
+ if (!isCompletedOutputStatus(artifact.status)) continue;
1660
1673
  const artifactId = stringValue(artifact.artifactId) ?? stringValue(artifact.id);
1661
1674
  const workspacePath = stringValue(artifact.workspacePath);
1662
1675
  const id = artifactId ?? stringValue(artifact.fileAssetId) ?? workspacePath;
@@ -1678,6 +1691,52 @@ function knownPartOutputs(part, message) {
1678
1691
  }
1679
1692
  return outputs;
1680
1693
  }
1694
+ function sandboxFileOutput(data, message) {
1695
+ const tool = stringValue(data.tool);
1696
+ const status = stringValue(data.status)?.toLowerCase();
1697
+ if (!tool || !SANDBOX_FILE_OUTPUT_TOOLS.has(tool) || status !== "success" || !isObject(data.input)) {
1698
+ return void 0;
1699
+ }
1700
+ const workspacePath = portableWorkspacePath(
1701
+ data.input.file_path
1702
+ );
1703
+ if (!workspacePath) return void 0;
1704
+ return {
1705
+ id: `workspace-file:${workspacePath}`,
1706
+ kind: outputKindFromPath(workspacePath),
1707
+ title: workspacePath.split("/").at(-1) ?? workspacePath,
1708
+ status: "success",
1709
+ resource: { type: "workspace_file", workspacePath },
1710
+ messageId: message.id,
1711
+ updatedAt: message.updatedAt ?? message.createdAt
1712
+ };
1713
+ }
1714
+ function portableWorkspacePath(value) {
1715
+ const path = stringValue(value)?.replace(/\\/g, "/").replace(/^\.\/+/, "").replace(/\/{2,}/g, "/");
1716
+ if (!path || path.startsWith("/") || /^[a-z]:\//i.test(path) || path.split("/").some((segment) => segment === "..")) {
1717
+ return void 0;
1718
+ }
1719
+ return path;
1720
+ }
1721
+ function outputKindFromPath(path) {
1722
+ const extension = path.match(/\.([^./]+)$/)?.[1]?.toLowerCase();
1723
+ if (extension === "html" || extension === "htm") return "site";
1724
+ if (["png", "jpg", "jpeg", "gif", "webp", "svg", "avif"].includes(extension ?? ""))
1725
+ return "image";
1726
+ if (["csv", "xls", "xlsx", "ods"].includes(extension ?? ""))
1727
+ return "spreadsheet";
1728
+ if (["ppt", "pptx", "odp"].includes(extension ?? ""))
1729
+ return "presentation";
1730
+ if (["pdf", "doc", "docx", "md", "markdown", "txt", "rtf", "odt"].includes(
1731
+ extension ?? ""
1732
+ ))
1733
+ return "document";
1734
+ return "file";
1735
+ }
1736
+ function isCompletedOutputStatus(value) {
1737
+ const status = stringValue(value)?.toLowerCase();
1738
+ return status === void 0 || status === "success";
1739
+ }
1681
1740
  function sourceFromReference(reference, message) {
1682
1741
  const updatedAt = message.updatedAt ?? message.createdAt;
1683
1742
  const common = {
@@ -1750,25 +1809,42 @@ function fileSources(files, message) {
1750
1809
  ];
1751
1810
  });
1752
1811
  }
1753
- function capabilitySources(message) {
1754
- const selection = message.runtimeCapabilities;
1755
- if (!selection) return [];
1812
+ function webSearchSources(part, message) {
1813
+ if (part.type !== "component" || !isObject(part.data)) return [];
1814
+ const data = part.data;
1815
+ if (data.tool !== "web_search" || stringValue(data.status)?.toLowerCase() !== "success") {
1816
+ return [];
1817
+ }
1818
+ const output = stringValue(data.output);
1819
+ if (!output) return [];
1756
1820
  const updatedAt = message.updatedAt ?? message.createdAt;
1757
- const common = { messageId: message.id, updatedAt };
1758
- return [
1759
- ...selection.skills.ids.map((id) => ({
1760
- ...common,
1761
- id: `skill:${id}`,
1762
- kind: "skill",
1763
- title: id
1764
- })),
1765
- ...selection.plugins.nodeKeys.map((id) => ({
1766
- ...common,
1767
- id: `plugin:${id}`,
1768
- kind: "plugin",
1769
- title: id
1770
- }))
1771
- ];
1821
+ const sources = [];
1822
+ for (const match of output.matchAll(WEB_SEARCH_RESULT_PATTERN)) {
1823
+ const rawTitle = stringValue(match[1]);
1824
+ const url = httpUrl(match[2]);
1825
+ if (!url) continue;
1826
+ const title = rawTitle && rawTitle.toLowerCase() !== "n/a" ? rawTitle : new URL(url).hostname;
1827
+ sources.push({
1828
+ id: `web:${url}`,
1829
+ kind: "web_page",
1830
+ title: compactText(title, 160),
1831
+ description: url,
1832
+ resource: { type: "url", url },
1833
+ messageId: message.id,
1834
+ updatedAt
1835
+ });
1836
+ }
1837
+ return sources;
1838
+ }
1839
+ function httpUrl(value) {
1840
+ const url = stringValue(value);
1841
+ if (!url) return void 0;
1842
+ try {
1843
+ const parsed = new URL(url);
1844
+ return parsed.protocol === "http:" || parsed.protocol === "https:" ? url : void 0;
1845
+ } catch {
1846
+ return void 0;
1847
+ }
1772
1848
  }
1773
1849
  function collectLiveTaskSummary({
1774
1850
  messages,
@@ -1788,7 +1864,9 @@ function collectLiveTaskSummary({
1788
1864
  (message) => extractPlan(message) ?? []
1789
1865
  );
1790
1866
  const agentRuns = messages.flatMap(
1791
- (message) => (message.agentRuns ?? []).filter((run) => Boolean(run.parentId)).map((run) => ({
1867
+ (message) => (message.agentRuns ?? []).filter(
1868
+ (run) => run.category?.trim().toLowerCase() === "agent" && Boolean(run.parentId)
1869
+ ).map((run) => ({
1792
1870
  id: run.id,
1793
1871
  parentId: run.parentId,
1794
1872
  level: agentRunLevel(run, messages),
@@ -1796,7 +1874,7 @@ function collectLiveTaskSummary({
1796
1874
  title: (run.agentKey ? agentNames?.get(run.agentKey) : void 0) ?? run.title ?? run.xpertName ?? run.agentKey ?? "Agent",
1797
1875
  status: taskSummaryAgentStatus(run.status),
1798
1876
  elapsedTime: run.elapsedTime,
1799
- error: typeof run.error === "string" ? run.error : void 0,
1877
+ error: typeof run.error === "string" ? compactText(run.error, 160) : void 0,
1800
1878
  messageId: message.id,
1801
1879
  updatedAt: run.updatedAt ?? run.endedAt ?? run.startedAt ?? message.updatedAt
1802
1880
  }))
@@ -1820,7 +1898,7 @@ function collectLiveTaskSummary({
1820
1898
  (part) => knownPartOutputs(part, message)
1821
1899
  )
1822
1900
  )
1823
- ]),
1901
+ ]).filter(isCompletedOpenableOutput),
1824
1902
  sources: mergeLatest([
1825
1903
  ...contributions.flatMap((item) => item.sources ?? []).filter((source) => source.kind !== "sub_agent"),
1826
1904
  ...messages.flatMap((message) => [
@@ -1829,7 +1907,9 @@ function collectLiveTaskSummary({
1829
1907
  ),
1830
1908
  ...fileSources(message.fileAssets, message),
1831
1909
  ...fileSources(message.attachments, message),
1832
- ...capabilitySources(message)
1910
+ ...contentParts(message.content).flatMap(
1911
+ (part) => webSearchSources(part, message)
1912
+ )
1833
1913
  ])
1834
1914
  ]),
1835
1915
  agents: mergeAgents(agentRuns),
@@ -1841,17 +1921,21 @@ function mergeTaskSummary(history, live, historySections) {
1841
1921
  const outputs = mergeLatest([
1842
1922
  ...historySections?.outputs ?? history?.outputs.items ?? [],
1843
1923
  ...live.outputs
1844
- ]);
1924
+ ]).filter(isCompletedOpenableOutput);
1845
1925
  const sources = mergeLatest([
1846
1926
  ...historySections?.sources ?? history?.sources.items ?? [],
1847
1927
  ...live.sources
1848
1928
  ]);
1849
- const agents = mergeAgents([
1850
- ...(historySections?.agents ?? history?.agents.items ?? []).filter(
1851
- (agent) => Boolean(agent.parentId)
1852
- ),
1853
- ...live.agents
1854
- ]);
1929
+ const historyAgents = historySections?.agents ?? history?.agents.items ?? [];
1930
+ const eligibleHistoryAgents = historyAgents.filter(
1931
+ (agent) => Boolean(agent.parentId)
1932
+ );
1933
+ const excludedHistoryAgentCount = historyAgents.length - eligibleHistoryAgents.length;
1934
+ const historyAgentTotal = Math.max(
1935
+ 0,
1936
+ (history?.agents.total ?? 0) - excludedHistoryAgentCount
1937
+ );
1938
+ const agents = mergeAgents([...eligibleHistoryAgents, ...live.agents]);
1855
1939
  const pending = mergePending([
1856
1940
  ...historySections?.pending ?? history?.pending.items ?? [],
1857
1941
  ...live.pending
@@ -1876,7 +1960,7 @@ function mergeTaskSummary(history, live, historySections) {
1876
1960
  totals: {
1877
1961
  outputs: Math.max(history?.outputs.total ?? 0, outputs.length),
1878
1962
  sources: Math.max(history?.sources.total ?? 0, sources.length),
1879
- agents: agents.length,
1963
+ agents: Math.max(historyAgentTotal, agents.length),
1880
1964
  pending: Math.max(history?.pending.total ?? 0, pending.length)
1881
1965
  }
1882
1966
  };
@@ -2579,7 +2663,6 @@ var en_US_default = {
2579
2663
  partial: "Partially ready",
2580
2664
  failed: "Failed"
2581
2665
  },
2582
- poweredBy: "Powered by Xpert AI",
2583
2666
  followUps: {
2584
2667
  pending: "Pending follow-ups",
2585
2668
  queue: "Queue",
@@ -2889,7 +2972,20 @@ var en_US_default = {
2889
2972
  status: {
2890
2973
  pending: "Pending",
2891
2974
  in_progress: "In progress",
2892
- completed: "Completed"
2975
+ completed: "Completed",
2976
+ active: "Active",
2977
+ paused: "Paused",
2978
+ blocked: "Blocked",
2979
+ usage_limited: "Usage limited",
2980
+ budget_limited: "Budget limited",
2981
+ complete: "Completed",
2982
+ success: "Completed",
2983
+ error: "Failed",
2984
+ running: "Running",
2985
+ starting: "Starting",
2986
+ stopping: "Stopping",
2987
+ timeout: "Timed out",
2988
+ interrupted: "Interrupted"
2893
2989
  },
2894
2990
  pending: {
2895
2991
  approval: "Approval required",
@@ -3155,7 +3251,6 @@ var zh_CN_default = {
3155
3251
  partial: "\u90E8\u5206\u5C31\u7EEA",
3156
3252
  failed: "\u89E3\u6790\u5931\u8D25"
3157
3253
  },
3158
- poweredBy: "\u7531 Xpert AI \u9A71\u52A8",
3159
3254
  followUps: {
3160
3255
  pending: "\u5F85\u5904\u7406 Follow-up",
3161
3256
  queue: "\u6392\u961F",
@@ -3465,7 +3560,20 @@ var zh_CN_default = {
3465
3560
  status: {
3466
3561
  pending: "\u5F85\u5904\u7406",
3467
3562
  in_progress: "\u8FDB\u884C\u4E2D",
3468
- completed: "\u5DF2\u5B8C\u6210"
3563
+ completed: "\u5DF2\u5B8C\u6210",
3564
+ active: "\u8FDB\u884C\u4E2D",
3565
+ paused: "\u5DF2\u6682\u505C",
3566
+ blocked: "\u5DF2\u963B\u585E",
3567
+ usage_limited: "\u7528\u91CF\u53D7\u9650",
3568
+ budget_limited: "\u9884\u7B97\u53D7\u9650",
3569
+ complete: "\u5DF2\u5B8C\u6210",
3570
+ success: "\u5DF2\u5B8C\u6210",
3571
+ error: "\u5931\u8D25",
3572
+ running: "\u8FD0\u884C\u4E2D",
3573
+ starting: "\u542F\u52A8\u4E2D",
3574
+ stopping: "\u505C\u6B62\u4E2D",
3575
+ timeout: "\u5DF2\u8D85\u65F6",
3576
+ interrupted: "\u5DF2\u4E2D\u65AD"
3469
3577
  },
3470
3578
  pending: {
3471
3579
  approval: "\u9700\u8981\u5BA1\u6279",
@@ -3905,12 +4013,16 @@ function ThemeProvider({ children, theme: themeProp }) {
3905
4013
  React2.useEffect(() => {
3906
4014
  if (!themeRef.current) return;
3907
4015
  const el = themeRef.current;
4016
+ const root = document.documentElement;
4017
+ const rootWasDark = root.classList.contains("dark");
3908
4018
  const { colorScheme, radius, density, typography, color } = theme;
3909
4019
  const isDarkMode2 = colorScheme === "dark";
3910
4020
  if (isDarkMode2) {
3911
4021
  el.classList.add("dark");
4022
+ root.classList.add("dark");
3912
4023
  } else {
3913
4024
  el.classList.remove("dark");
4025
+ root.classList.remove("dark");
3914
4026
  }
3915
4027
  if (radius) {
3916
4028
  el.dataset.radius = radius;
@@ -3952,7 +4064,6 @@ function ThemeProvider({ children, theme: themeProp }) {
3952
4064
  }
3953
4065
  }
3954
4066
  if (color) {
3955
- const root = document.documentElement;
3956
4067
  if (color.grayscale) {
3957
4068
  const grayscaleColors = generateGrayscaleColors(color.grayscale, isDarkMode2);
3958
4069
  Object.entries(grayscaleColors).forEach(([key, value]) => {
@@ -3999,8 +4110,8 @@ function ThemeProvider({ children, theme: themeProp }) {
3999
4110
  }
4000
4111
  setThemeRevision((current) => current + 1);
4001
4112
  return () => {
4002
- const root = document.documentElement;
4003
4113
  el.classList.remove("dark");
4114
+ root.classList.toggle("dark", rootWasDark);
4004
4115
  el.removeAttribute("data-radius");
4005
4116
  el.removeAttribute("data-density");
4006
4117
  el.style.removeProperty("--density-spacing");
@@ -20382,7 +20493,8 @@ function useTaskSummary({
20382
20493
  enabled,
20383
20494
  conversationId,
20384
20495
  client,
20385
- live
20496
+ live,
20497
+ refreshVersion = 0
20386
20498
  }) {
20387
20499
  const [loaded, setLoaded] = React59.useState(null);
20388
20500
  const [historySections, setHistorySections] = React59.useState({});
@@ -20427,7 +20539,14 @@ function useTaskSummary({
20427
20539
  abortSectionRequests();
20428
20540
  requestVersionRef.current += 1;
20429
20541
  };
20430
- }, [abortSectionRequests, client, conversationId, enabled, retryVersion]);
20542
+ }, [
20543
+ abortSectionRequests,
20544
+ client,
20545
+ conversationId,
20546
+ enabled,
20547
+ refreshVersion,
20548
+ retryVersion
20549
+ ]);
20431
20550
  const snapshot = loaded?.conversationId === conversationId ? loaded.snapshot : null;
20432
20551
  const activeHistorySections = React59.useMemo(
20433
20552
  () => historySectionsConversationId === conversationId ? historySections : {},
@@ -20469,13 +20588,7 @@ function useTaskSummary({
20469
20588
  }
20470
20589
  }
20471
20590
  },
20472
- [
20473
- activeHistorySections,
20474
- client,
20475
- conversationId,
20476
- enabled,
20477
- loadingSections
20478
- ]
20591
+ [activeHistorySections, client, conversationId, enabled, loadingSections]
20479
20592
  );
20480
20593
  return {
20481
20594
  summary: mergeTaskSummary(snapshot, live, activeHistorySections),
@@ -20580,6 +20693,7 @@ function TaskSummaryContent({
20580
20693
  }) {
20581
20694
  const { t } = useChatkitTranslation();
20582
20695
  const [expanded, setExpanded] = React60.useState({});
20696
+ const [expandedLocal, setExpandedLocal] = React60.useState({});
20583
20697
  const hasTask = Boolean(
20584
20698
  summary.goal || summary.plan || summary.todos?.items.length
20585
20699
  );
@@ -20594,6 +20708,12 @@ function TaskSummaryContent({
20594
20708
  }
20595
20709
  };
20596
20710
  const sectionItems = (section, items) => expanded[section] ? items : items.slice(0, PREVIEW_SIZE);
20711
+ const localSectionItems = (section, items) => expandedLocal[section] ? items : items.slice(0, PREVIEW_SIZE);
20712
+ const localizedStatus = (status) => {
20713
+ if (!status) return void 0;
20714
+ const key = status.trim().toLowerCase().replace(/[\s-]+/g, "_");
20715
+ return t(`taskSummary.status.${key}`, { defaultValue: status });
20716
+ };
20597
20717
  const openSummaryItem = (resource, messageId, title) => {
20598
20718
  if (resource?.type === "message") {
20599
20719
  onNavigateMessage(resource.messageId);
@@ -20626,6 +20746,25 @@ function TaskSummaryContent({
20626
20746
  }
20627
20747
  );
20628
20748
  };
20749
+ const localSectionAction = (section, total2) => {
20750
+ if (total2 <= PREVIEW_SIZE) return null;
20751
+ const isExpanded = Boolean(expandedLocal[section]);
20752
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
20753
+ "button",
20754
+ {
20755
+ type: "button",
20756
+ 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",
20757
+ onClick: () => setExpandedLocal((state) => ({
20758
+ ...state,
20759
+ [section]: !isExpanded
20760
+ })),
20761
+ children: [
20762
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react36.ListChecks, { className: "size-3.5" }),
20763
+ isExpanded ? t("taskSummary.collapse") : t("taskSummary.viewAll", { count: total2 })
20764
+ ]
20765
+ }
20766
+ );
20767
+ };
20629
20768
  return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "divide-y divide-border/70", children: [
20630
20769
  Boolean(historyError) && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("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: [
20631
20770
  /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { children: t("taskSummary.historyError") }),
@@ -20642,52 +20781,41 @@ function TaskSummaryContent({
20642
20781
  }
20643
20782
  )
20644
20783
  ] }),
20645
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
20646
- SummarySection,
20647
- {
20648
- title: t("taskSummary.sections.outputs"),
20649
- children: [
20650
- summary.outputs.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(SummaryPrompt, { onClick: onFocusComposer, children: t("taskSummary.createOutput") }) : sectionItems("outputs", summary.outputs).map((item) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
20651
- SummaryButton,
20652
- {
20653
- title: item.title,
20654
- description: item.description ?? item.status,
20655
- leading: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react36.FileOutput, { className: "size-4" }),
20656
- trailing: item.resource && item.resource.type !== "message" ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react36.ExternalLink, { className: "size-3.5" }) : void 0,
20657
- onClick: () => openSummaryItem(item.resource, item.messageId, item.title)
20658
- },
20659
- item.id
20660
- )),
20661
- sectionAction("outputs", summary.totals.outputs)
20662
- ]
20663
- }
20664
- ),
20665
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
20666
- SummarySection,
20667
- {
20668
- title: t("taskSummary.sections.sources"),
20669
- children: [
20670
- sectionItems("sources", summary.sources).map((item) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
20671
- SummaryButton,
20672
- {
20673
- title: item.title,
20674
- description: item.description,
20675
- leading: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react36.BookOpen, { className: "size-4" }),
20676
- trailing: item.resource && item.resource.type !== "message" ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react36.ExternalLink, { className: "size-3.5" }) : void 0,
20677
- onClick: () => openSummaryItem(item.resource, item.messageId, item.title)
20678
- },
20679
- item.id
20680
- )),
20681
- sectionAction("sources", summary.totals.sources)
20682
- ]
20683
- }
20684
- ),
20784
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(SummarySection, { title: t("taskSummary.sections.outputs"), children: [
20785
+ summary.outputs.length === 0 ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(SummaryPrompt, { onClick: onFocusComposer, children: t("taskSummary.createOutput") }) : sectionItems("outputs", summary.outputs).map((item) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
20786
+ SummaryButton,
20787
+ {
20788
+ title: item.title,
20789
+ metadata: localizedStatus(item.status),
20790
+ description: item.description,
20791
+ leading: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react36.FileOutput, { className: "size-4" }),
20792
+ trailing: item.resource && item.resource.type !== "message" ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react36.ExternalLink, { className: "size-3.5" }) : void 0,
20793
+ onClick: () => openSummaryItem(item.resource, item.messageId, item.title)
20794
+ },
20795
+ item.id
20796
+ )),
20797
+ sectionAction("outputs", summary.totals.outputs)
20798
+ ] }),
20799
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(SummarySection, { title: t("taskSummary.sections.sources"), children: [
20800
+ sectionItems("sources", summary.sources).map((item) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
20801
+ SummaryButton,
20802
+ {
20803
+ title: item.title,
20804
+ description: item.description,
20805
+ leading: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react36.BookOpen, { className: "size-4" }),
20806
+ trailing: item.resource && item.resource.type !== "message" ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react36.ExternalLink, { className: "size-3.5" }) : void 0,
20807
+ onClick: () => openSummaryItem(item.resource, item.messageId, item.title)
20808
+ },
20809
+ item.id
20810
+ )),
20811
+ sectionAction("sources", summary.totals.sources)
20812
+ ] }),
20685
20813
  hasTask && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(SummarySection, { title: t("taskSummary.sections.task"), children: [
20686
20814
  summary.goal && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
20687
20815
  SummaryButton,
20688
20816
  {
20689
20817
  title: summary.goal.objective,
20690
- description: summary.goal.status,
20818
+ metadata: localizedStatus(summary.goal.status),
20691
20819
  leading: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react36.Target, { className: "size-4" }),
20692
20820
  onClick: onFocusComposer
20693
20821
  }
@@ -20701,34 +20829,45 @@ function TaskSummaryContent({
20701
20829
  onClick: () => summary.plan?.messageId ? onNavigateMessage(summary.plan.messageId) : onFocusComposer()
20702
20830
  }
20703
20831
  ),
20704
- (summary.todos?.items ?? []).slice(0, PREVIEW_SIZE).map((todo) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
20832
+ localSectionItems("todos", summary.todos?.items ?? []).map(
20833
+ (todo) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
20834
+ SummaryButton,
20835
+ {
20836
+ title: todo.content,
20837
+ metadata: localizedStatus(todo.status),
20838
+ leading: todo.status === "completed" ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react36.CheckCircle2, { className: "size-4 text-muted-foreground" }) : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react36.CircleEllipsis, { className: "size-4 text-muted-foreground" }),
20839
+ onClick: () => summary.todos?.messageId ? onNavigateMessage(summary.todos.messageId) : onFocusComposer()
20840
+ },
20841
+ todo.id
20842
+ )
20843
+ ),
20844
+ localSectionAction("todos", summary.todos?.items.length ?? 0)
20845
+ ] }),
20846
+ summary.running.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(SummarySection, { title: t("taskSummary.sections.running"), children: [
20847
+ localSectionItems("running", summary.running).map((item) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
20705
20848
  SummaryButton,
20706
20849
  {
20707
- title: todo.content,
20708
- description: t(`taskSummary.status.${todo.status}`),
20709
- leading: todo.status === "completed" ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react36.CheckCircle2, { className: "size-4 text-muted-foreground" }) : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react36.CircleEllipsis, { className: "size-4 text-muted-foreground" }),
20710
- onClick: () => summary.todos?.messageId ? onNavigateMessage(summary.todos.messageId) : onFocusComposer()
20850
+ title: item.title,
20851
+ metadata: localizedStatus(item.status),
20852
+ description: item.description,
20853
+ leading: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react36.PlayCircle, { className: "size-4" }),
20854
+ trailing: item.resource ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react36.ExternalLink, { className: "size-3.5" }) : void 0,
20855
+ onClick: () => item.resource && onOpenResource(item.resource, void 0, item.title)
20711
20856
  },
20712
- todo.id
20713
- ))
20857
+ item.id
20858
+ )),
20859
+ localSectionAction("running", summary.running.length)
20714
20860
  ] }),
20715
- summary.running.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(SummarySection, { title: t("taskSummary.sections.running"), children: summary.running.slice(0, PREVIEW_SIZE).map((item) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
20716
- SummaryButton,
20717
- {
20718
- title: item.title,
20719
- description: item.description ?? item.status,
20720
- leading: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react36.PlayCircle, { className: "size-4" }),
20721
- trailing: item.resource ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react36.ExternalLink, { className: "size-3.5" }) : void 0,
20722
- onClick: () => item.resource && onOpenResource(item.resource, void 0, item.title)
20723
- },
20724
- item.id
20725
- )) }),
20726
20861
  summary.agents.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(SummarySection, { title: t("taskSummary.sections.agents"), children: [
20727
20862
  sectionItems("agents", summary.agents).map((item) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
20728
20863
  SummaryButton,
20729
20864
  {
20730
20865
  title: item.title,
20731
- description: [item.status, formatElapsed(item.elapsedTime)].filter(Boolean).join(" \xB7 "),
20866
+ metadata: [
20867
+ localizedStatus(item.status),
20868
+ formatElapsed(item.elapsedTime)
20869
+ ].filter(Boolean).join(" \xB7 "),
20870
+ description: item.error,
20732
20871
  leading: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_lucide_react36.Bot, { className: "size-4" }),
20733
20872
  onClick: () => item.messageId ? onNavigateMessage(item.messageId) : onFocusComposer()
20734
20873
  },
@@ -20776,16 +20915,20 @@ function SummaryPrompt({
20776
20915
  }
20777
20916
  function SummaryButton({
20778
20917
  title,
20918
+ metadata,
20779
20919
  description,
20780
20920
  leading,
20781
20921
  trailing,
20782
20922
  onClick
20783
20923
  }) {
20924
+ const tooltipText = [title, metadata, description].filter(Boolean);
20784
20925
  return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
20785
20926
  "button",
20786
20927
  {
20787
20928
  type: "button",
20788
- disabled: !onClick,
20929
+ title: tooltipText.join("\n"),
20930
+ "aria-disabled": !onClick,
20931
+ tabIndex: onClick ? 0 : -1,
20789
20932
  onClick,
20790
20933
  className: cn(
20791
20934
  "flex w-full min-w-0 items-start gap-2.5 rounded-lg px-2 py-1.5 text-left transition-colors",
@@ -20796,6 +20939,7 @@ function SummaryButton({
20796
20939
  leading && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "mt-0.5 shrink-0 text-muted-foreground", children: leading }),
20797
20940
  /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("span", { className: "min-w-0 flex-1", children: [
20798
20941
  /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "block truncate text-sm font-medium leading-5 text-foreground", children: title }),
20942
+ metadata && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "mt-0.5 block truncate text-xs text-muted-foreground", children: metadata }),
20799
20943
  description && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "mt-0.5 block line-clamp-2 text-xs text-muted-foreground", children: description })
20800
20944
  ] }),
20801
20945
  trailing && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "mt-0.5 text-muted-foreground", children: trailing })
@@ -21892,7 +22036,8 @@ function Chat({
21892
22036
  enabled: taskSummaryEnabled,
21893
22037
  conversationId: taskSummaryConversationId,
21894
22038
  client: stream.client,
21895
- live: liveTaskSummary
22039
+ live: liveTaskSummary,
22040
+ refreshVersion: stream.historyMessageLoadVersion
21896
22041
  });
21897
22042
  const navigateToTaskSummaryMessage = React61.useCallback(
21898
22043
  async (messageId) => {
@@ -23730,7 +23875,7 @@ function Chat({
23730
23875
  "data-slot": "chatkit-chat-composer",
23731
23876
  "data-position": isInitialComposer ? "centered" : "bottom",
23732
23877
  className: cn(
23733
- "mx-auto w-full p-2 z-10 bg-background",
23878
+ "mx-auto w-full max-w-2xl px-4 pb-4 pt-2 z-10 bg-background",
23734
23879
  isInitialComposer ? "mb-auto" : "sticky bottom-0"
23735
23880
  ),
23736
23881
  style: chatColumnStyle,
@@ -24007,7 +24152,7 @@ function Chat({
24007
24152
  {
24008
24153
  "data-slot": "composer-editor-surface",
24009
24154
  className: cn(
24010
- "relative flex min-h-[10rem] min-w-0 bg-background px-2 pt-2 pb-14",
24155
+ "relative flex min-h-[6.5rem] min-w-0 bg-background px-2 pt-2 pb-14",
24011
24156
  "rounded-composer-editor"
24012
24157
  ),
24013
24158
  children: [
@@ -24028,7 +24173,7 @@ function Chat({
24028
24173
  onKeyDown: handleComposerKeyDown,
24029
24174
  "data-placeholder": inputPlaceholder,
24030
24175
  className: cn(
24031
- "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",
24176
+ "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",
24032
24177
  "empty:before:pointer-events-none empty:before:text-muted-foreground empty:before:content-[attr(data-placeholder)]",
24033
24178
  (missingConfig || isHistoryLoading || hasPendingInteractiveRequest) && "cursor-not-allowed opacity-50"
24034
24179
  ),
@@ -24183,14 +24328,6 @@ function Chat({
24183
24328
  ),
24184
24329
  children: disclaimer.text
24185
24330
  }
24186
- ),
24187
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
24188
- "div",
24189
- {
24190
- "data-slot": "chat-footer",
24191
- className: "relative mt-2 flex min-h-6 items-center justify-center gap-2 text-xs text-muted-foreground",
24192
- children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { children: t("chat.poweredBy") })
24193
- }
24194
24331
  )
24195
24332
  ]
24196
24333
  }