@xpert-ai/chatkit-ui 0.4.2 → 0.4.3

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-DhcCNE2L.js → _baseUniq-DUmeJXMF.js} +1 -1
  2. package/dist/app/assets/{abap-_IjCfpBS.js → abap-CAHc26jT.js} +1 -1
  3. package/dist/app/assets/{abnf-CekkQUy9.js → abnf-CVkfvAG7.js} +1 -1
  4. package/dist/app/assets/{actionscript-C9XSSYhb.js → actionscript-BEzJB7WT.js} +1 -1
  5. package/dist/app/assets/{ada-4vLfjsZX.js → ada-DFt4d8s0.js} +1 -1
  6. package/dist/app/assets/{agda-CER1MQer.js → agda-Dgk-d8Ej.js} +1 -1
  7. package/dist/app/assets/{al-DVApc0ak.js → al-CgIwrIi7.js} +1 -1
  8. package/dist/app/assets/{antlr4-CTOuYhug.js → antlr4-v8CVE7fu.js} +1 -1
  9. package/dist/app/assets/{apacheconf-Cx3fh3do.js → apacheconf-DJRGF6BS.js} +1 -1
  10. package/dist/app/assets/{apex-CQChIoUK.js → apex-uUgU4D2N.js} +1 -1
  11. package/dist/app/assets/{apl-rqEDU7gi.js → apl-QLgjdSly.js} +1 -1
  12. package/dist/app/assets/{applescript-SibyzsWq.js → applescript-BFVeekYt.js} +1 -1
  13. package/dist/app/assets/{aql-D5s-oH6r.js → aql-mHS01Klr.js} +1 -1
  14. package/dist/app/assets/{arc-CqOJzRv3.js → arc-CuZh5y_d.js} +1 -1
  15. package/dist/app/assets/{architectureDiagram-Q4EWVU46-Sc4cdTS9.js → architectureDiagram-Q4EWVU46-Cp-oqFuq.js} +1 -1
  16. package/dist/app/assets/{arduino-CAvcLJph.js → arduino-D3yikoHI.js} +1 -1
  17. package/dist/app/assets/{arff-DXHd3IWb.js → arff-Bzp22yLm.js} +1 -1
  18. package/dist/app/assets/{asciidoc-D1qamWMF.js → asciidoc-DyMmgwzJ.js} +1 -1
  19. package/dist/app/assets/{asm6502-CLD-Uamm.js → asm6502-B80D95Jm.js} +1 -1
  20. package/dist/app/assets/{asmatmel-CTTTETEh.js → asmatmel-D7eDDNLW.js} +1 -1
  21. package/dist/app/assets/{aspnet-gANAeiiI.js → aspnet-DP6URAXF.js} +1 -1
  22. package/dist/app/assets/{autohotkey-DZzEICDN.js → autohotkey-CkErJpFg.js} +1 -1
  23. package/dist/app/assets/{autoit-DU2qU7yP.js → autoit-BdpOTPpv.js} +1 -1
  24. package/dist/app/assets/{avisynth-CW7VMs_l.js → avisynth-Dmhp2heE.js} +1 -1
  25. package/dist/app/assets/{avro-idl-m7lwvLZF.js → avro-idl-DUhKaWgN.js} +1 -1
  26. package/dist/app/assets/{bash-DhNYFOgQ.js → bash-BivYb6BT.js} +1 -1
  27. package/dist/app/assets/{basic-CBgclVFD.js → basic-D-8b5r6a.js} +1 -1
  28. package/dist/app/assets/{batch-_m1D2SzT.js → batch-BgMIK1_X.js} +1 -1
  29. package/dist/app/assets/{bbcode-BuWXKUuN.js → bbcode-DVoSXbR6.js} +1 -1
  30. package/dist/app/assets/{bicep-CNNhU7qf.js → bicep-DAyvfnBb.js} +1 -1
  31. package/dist/app/assets/{birb-Df15PWNN.js → birb-MciDoImB.js} +1 -1
  32. package/dist/app/assets/{bison-pTGuYt5R.js → bison-MfDz2wSW.js} +1 -1
  33. package/dist/app/assets/{blockDiagram-DXYQGD6D-COmjjfPf.js → blockDiagram-DXYQGD6D-D6fzklHs.js} +1 -1
  34. package/dist/app/assets/{bnf-5rjVHg1A.js → bnf-NfFrR8D5.js} +1 -1
  35. package/dist/app/assets/{brainfuck-2M-a_fzt.js → brainfuck-ClI8X4SF.js} +1 -1
  36. package/dist/app/assets/{brightscript-BUcx3Uan.js → brightscript-zS1iu4vq.js} +1 -1
  37. package/dist/app/assets/{bro-BtT_dXGd.js → bro-DljtPq2D.js} +1 -1
  38. package/dist/app/assets/{bsl-C1h-9jbB.js → bsl-hhgsw8vw.js} +1 -1
  39. package/dist/app/assets/{c-Cn84DM0m.js → c-DrpFfWnr.js} +1 -1
  40. package/dist/app/assets/{c4Diagram-AHTNJAMY-BE1kXuuS.js → c4Diagram-AHTNJAMY-DFqBpiK8.js} +1 -1
  41. package/dist/app/assets/{cfscript-2H4o-JIw.js → cfscript-DDb6Lyf6.js} +1 -1
  42. package/dist/app/assets/{chaiscript-C1Bjxsfh.js → chaiscript-DF48gGB2.js} +1 -1
  43. package/dist/app/assets/channel-DFkA7Odq.js +1 -0
  44. package/dist/app/assets/{chunk-4BX2VUAB-DZ_C_iKC.js → chunk-4BX2VUAB-B12wPqT-.js} +1 -1
  45. package/dist/app/assets/{chunk-4TB4RGXK-DApXi72F.js → chunk-4TB4RGXK-DvBRV7Wa.js} +1 -1
  46. package/dist/app/assets/{chunk-55IACEB6-Dk5pcDDA.js → chunk-55IACEB6-DYYpJnIt.js} +1 -1
  47. package/dist/app/assets/{chunk-EDXVE4YY-C3768OfQ.js → chunk-EDXVE4YY-C_cgU5oo.js} +1 -1
  48. package/dist/app/assets/{chunk-FMBD7UC4-BvglBVER.js → chunk-FMBD7UC4-B3gAIARW.js} +1 -1
  49. package/dist/app/assets/{chunk-OYMX7WX6-DMLEPpZh.js → chunk-OYMX7WX6-DfeuAq49.js} +1 -1
  50. package/dist/app/assets/{chunk-QZHKN3VN-_kOwjXni.js → chunk-QZHKN3VN-B_q1wkHk.js} +1 -1
  51. package/dist/app/assets/{chunk-YZCP3GAM-BofXuboV.js → chunk-YZCP3GAM-BI51-5Xl.js} +1 -1
  52. package/dist/app/assets/{cil-DHyrqdX_.js → cil-5e3EFNQ-.js} +1 -1
  53. package/dist/app/assets/classDiagram-6PBFFD2Q-BhcMxOX3.js +1 -0
  54. package/dist/app/assets/classDiagram-v2-HSJHXN6E-BhcMxOX3.js +1 -0
  55. package/dist/app/assets/{clike-Bf02ej9F.js → clike-CGm019RU.js} +1 -1
  56. package/dist/app/assets/{clojure-LoSvb9pa.js → clojure-EUxmeflx.js} +1 -1
  57. package/dist/app/assets/clone-D0zp_cmi.js +1 -0
  58. package/dist/app/assets/{cmake-BkWc04wT.js → cmake-Cx_TgZnP.js} +1 -1
  59. package/dist/app/assets/{cobol-_nZTdMgt.js → cobol-BthqexLq.js} +1 -1
  60. package/dist/app/assets/{coffeescript-DT5ySztk.js → coffeescript-Gvi0WUl9.js} +1 -1
  61. package/dist/app/assets/{concurnas-DSAYXuEZ.js → concurnas-DIsKiUcY.js} +1 -1
  62. package/dist/app/assets/{coq-CrgIrANd.js → coq-Cbm4LAk7.js} +1 -1
  63. package/dist/app/assets/{core-C27f_Wct.js → core-DbOl2YVH.js} +1 -1
  64. package/dist/app/assets/{cose-bilkent-S5V4N54A-BqnGiR9q.js → cose-bilkent-S5V4N54A-tDz06OBa.js} +1 -1
  65. package/dist/app/assets/{cpp-DNsF-Kz_.js → cpp-DvM1W1M3.js} +1 -1
  66. package/dist/app/assets/{crystal-yRp-Ck4J.js → crystal-Cgeclk0-.js} +1 -1
  67. package/dist/app/assets/{csharp-Dh8DUZOE.js → csharp-DLajxlCH.js} +1 -1
  68. package/dist/app/assets/{cshtml-CuaqD5vI.js → cshtml-D4WJuQ28.js} +1 -1
  69. package/dist/app/assets/{csp-TuU29N7c.js → csp-DlOt0mll.js} +1 -1
  70. package/dist/app/assets/{css-DfThiGDT.js → css-BzsDxt7h.js} +1 -1
  71. package/dist/app/assets/{css-extras-DN46Xx9D.js → css-extras-yKv4-OYr.js} +1 -1
  72. package/dist/app/assets/{csv-BEpZMNNd.js → csv-Bv1CB32G.js} +1 -1
  73. package/dist/app/assets/{cypher-CXuYSM3m.js → cypher-p1eqx6Jt.js} +1 -1
  74. package/dist/app/assets/{d-DBLRM2HM.js → d-Beqwk42F.js} +1 -1
  75. package/dist/app/assets/{dagre-KV5264BT-YbfphbKk.js → dagre-KV5264BT-Bva9KEQ3.js} +1 -1
  76. package/dist/app/assets/{dart-ClooZxtE.js → dart-DGUIre7b.js} +1 -1
  77. package/dist/app/assets/{dataweave-iLNtOM4o.js → dataweave-BKEvzZhX.js} +1 -1
  78. package/dist/app/assets/{dax-OQ4SKQyZ.js → dax-7DSfOdOt.js} +1 -1
  79. package/dist/app/assets/{dhall-BcEs9_Il.js → dhall-D96qT6GR.js} +1 -1
  80. package/dist/app/assets/{diagram-5BDNPKRD-CrSfz4ol.js → diagram-5BDNPKRD-BLdVEgIg.js} +1 -1
  81. package/dist/app/assets/{diagram-G4DWMVQ6-COOuGquM.js → diagram-G4DWMVQ6-B1mGc4DZ.js} +1 -1
  82. package/dist/app/assets/{diagram-MMDJMWI5-CLudV92t.js → diagram-MMDJMWI5-BCbX9vwv.js} +1 -1
  83. package/dist/app/assets/{diagram-TYMM5635-7hK6dmHH.js → diagram-TYMM5635-BbiM5rwX.js} +1 -1
  84. package/dist/app/assets/{diff-C3sAjilP.js → diff-BJy0ijGD.js} +1 -1
  85. package/dist/app/assets/{django-DWDamL3u.js → django-CA3Li7Xc.js} +1 -1
  86. package/dist/app/assets/{dns-zone-file-Bs-k24AT.js → dns-zone-file-CQ5FJ0e2.js} +1 -1
  87. package/dist/app/assets/{docker-CbsxZOR_.js → docker-C_jKEoBB.js} +1 -1
  88. package/dist/app/assets/{dot-cmPUgJiw.js → dot-UuhFwEC4.js} +1 -1
  89. package/dist/app/assets/{ebnf-B20H8M5E.js → ebnf-v-JYoSll.js} +1 -1
  90. package/dist/app/assets/{editorconfig-CD8ZN3N0.js → editorconfig-Be3ygJWd.js} +1 -1
  91. package/dist/app/assets/{eiffel-A2f55FY2.js → eiffel-wc_Ly8vK.js} +1 -1
  92. package/dist/app/assets/{ejs-DFRIdoGh.js → ejs-DkUkLWO_.js} +1 -1
  93. package/dist/app/assets/{elixir-_kwd_REn.js → elixir-D4YWMnOb.js} +1 -1
  94. package/dist/app/assets/{elm-DQY_1HmV.js → elm-DvpgkmZw.js} +1 -1
  95. package/dist/app/assets/{erDiagram-SMLLAGMA-S51NLIRq.js → erDiagram-SMLLAGMA-DeYRxjbM.js} +1 -1
  96. package/dist/app/assets/{erb-Dhn1_rOy.js → erb-BrK-PMgA.js} +1 -1
  97. package/dist/app/assets/{erlang-X69_IFoF.js → erlang-BYb5M5Pb.js} +1 -1
  98. package/dist/app/assets/{etlua-KG8BhZyB.js → etlua-Bhe3IDc-.js} +1 -1
  99. package/dist/app/assets/{excel-formula-CNlbsFIR.js → excel-formula-jODZlBfX.js} +1 -1
  100. package/dist/app/assets/{factor-B3wH4xq3.js → factor-BKsD6d0K.js} +1 -1
  101. package/dist/app/assets/{false-CgytrAC7.js → false-CcGNJYns.js} +1 -1
  102. package/dist/app/assets/{firestore-security-rules-Coo0DWR5.js → firestore-security-rules-5vyxJaeJ.js} +1 -1
  103. package/dist/app/assets/{flow-Cy8AbL-B.js → flow-NU1izkCa.js} +1 -1
  104. package/dist/app/assets/{flowDiagram-DWJPFMVM-3gGb45g_.js → flowDiagram-DWJPFMVM-Bj0SYU-k.js} +1 -1
  105. package/dist/app/assets/{fortran-h5riSewD.js → fortran-DCGTQjju.js} +1 -1
  106. package/dist/app/assets/{fsharp-CkvWu7RS.js → fsharp-DNhO6FM-.js} +1 -1
  107. package/dist/app/assets/{ftl-A8LPSp4k.js → ftl-P_p2wyPG.js} +1 -1
  108. package/dist/app/assets/{ganttDiagram-T4ZO3ILL-LEeFMCzh.js → ganttDiagram-T4ZO3ILL-Dv-WNsgb.js} +1 -1
  109. package/dist/app/assets/{gap-Db8FJjp9.js → gap-DgF9ZGYZ.js} +1 -1
  110. package/dist/app/assets/{gcode-CmfDqUKZ.js → gcode-CMhuYhvh.js} +1 -1
  111. package/dist/app/assets/{gdscript-DJWWbktQ.js → gdscript-BaNvmSXL.js} +1 -1
  112. package/dist/app/assets/{gedcom-DZLZnv4o.js → gedcom-BLjWW8zc.js} +1 -1
  113. package/dist/app/assets/{gherkin-dhrCyYj5.js → gherkin-BxsMbJgE.js} +1 -1
  114. package/dist/app/assets/{git-Dee4nqm_.js → git-C3JKKGbu.js} +1 -1
  115. package/dist/app/assets/{gitGraphDiagram-UUTBAWPF-Cx0_OfVi.js → gitGraphDiagram-UUTBAWPF-antOmae7.js} +1 -1
  116. package/dist/app/assets/{glsl-CGkGtKvP.js → glsl-Dy963NrS.js} +1 -1
  117. package/dist/app/assets/{gml-Cyovha5T.js → gml-RHKUDQYR.js} +1 -1
  118. package/dist/app/assets/{gn-CZZWsczF.js → gn-B5wX0kjQ.js} +1 -1
  119. package/dist/app/assets/{go-TELCDRfl.js → go-BO0hAT1N.js} +1 -1
  120. package/dist/app/assets/{go-module-DwdrJQUt.js → go-module-C2Fr-9ms.js} +1 -1
  121. package/dist/app/assets/{graph-Def3Ff6O.js → graph-DLqezY1N.js} +1 -1
  122. package/dist/app/assets/{graphql-BQkD7E1b.js → graphql-D58aRI9g.js} +1 -1
  123. package/dist/app/assets/{groovy-DSpGF2Ks.js → groovy-IGpaqhY4.js} +1 -1
  124. package/dist/app/assets/{haml-VPtmscyv.js → haml-C2z2yhSa.js} +1 -1
  125. package/dist/app/assets/{handlebars-B6tGrDNr.js → handlebars-BobMlUhh.js} +1 -1
  126. package/dist/app/assets/{haskell-sD0oStLn.js → haskell-nIuVVanU.js} +1 -1
  127. package/dist/app/assets/{haxe-CHQlINJc.js → haxe-D5efufya.js} +1 -1
  128. package/dist/app/assets/{hcl-B8fn6CLE.js → hcl-D9KAZKAO.js} +1 -1
  129. package/dist/app/assets/{hlsl-BRt3KlBi.js → hlsl-BFWBj6lA.js} +1 -1
  130. package/dist/app/assets/{hoon-Y1tyBFu_.js → hoon-B5vc2PPa.js} +1 -1
  131. package/dist/app/assets/{hpkp-B6tkTng1.js → hpkp-X9Vy-aP4.js} +1 -1
  132. package/dist/app/assets/{hsts-BT0gpx-A.js → hsts-BTHtjxYA.js} +1 -1
  133. package/dist/app/assets/{http-Vi5xN3SQ.js → http-D93SJiT9.js} +1 -1
  134. package/dist/app/assets/{ichigojam-DwzjQwUK.js → ichigojam-DFGOLrmf.js} +1 -1
  135. package/dist/app/assets/{icon-CpNOZuom.js → icon-BsJxVaoC.js} +1 -1
  136. package/dist/app/assets/{icu-message-format-E7DXI-1d.js → icu-message-format-C0hqHQFf.js} +1 -1
  137. package/dist/app/assets/{idris-Z32VP4RM.js → idris-D_XFEa4Y.js} +1 -1
  138. package/dist/app/assets/{iecst-CN5WMb2J.js → iecst-BBDx_Apd.js} +1 -1
  139. package/dist/app/assets/{ignore-BPsyPKDL.js → ignore-5mrYyBCy.js} +1 -1
  140. package/dist/app/assets/{index-t-7uVNvT.js → index-OJL54NcI.js} +151 -151
  141. package/dist/app/assets/index-s5_akYUB.css +1 -0
  142. package/dist/app/assets/{infoDiagram-42DDH7IO-CloBfZbd.js → infoDiagram-42DDH7IO-DHNCTrQo.js} +1 -1
  143. package/dist/app/assets/{inform7-DGLBlAGK.js → inform7-D_BK4Whb.js} +1 -1
  144. package/dist/app/assets/{ini-BV3KOH-Q.js → ini-DHL1U3zm.js} +1 -1
  145. package/dist/app/assets/{io-CRo9k3OJ.js → io-Bw7TS_7w.js} +1 -1
  146. package/dist/app/assets/{ishikawaDiagram-UXIWVN3A-CYPPbF3l.js → ishikawaDiagram-UXIWVN3A-CjewUobx.js} +1 -1
  147. package/dist/app/assets/{j-CHGRxEkV.js → j-DfX-jMbV.js} +1 -1
  148. package/dist/app/assets/{java-DcCc37S9.js → java-BldkMImw.js} +1 -1
  149. package/dist/app/assets/{javadoc-BajT0oRQ.js → javadoc-6dOM24mQ.js} +1 -1
  150. package/dist/app/assets/{javadoclike-BMMsIcdV.js → javadoclike-BHmZlS5e.js} +1 -1
  151. package/dist/app/assets/{javascript-DyXwMbB3.js → javascript-FvrzCcvc.js} +1 -1
  152. package/dist/app/assets/{javastacktrace-DTvR039l.js → javastacktrace-Byn0DB0K.js} +1 -1
  153. package/dist/app/assets/{jexl-Ot_nPhCk.js → jexl-CB5kP-Am.js} +1 -1
  154. package/dist/app/assets/{jolie-BUy51jNj.js → jolie-C7Q5mImX.js} +1 -1
  155. package/dist/app/assets/{journeyDiagram-VCZTEJTY-Brna5vzp.js → journeyDiagram-VCZTEJTY-DD8qNzmh.js} +1 -1
  156. package/dist/app/assets/{jq-5mmxZEvV.js → jq-C9deMLmZ.js} +1 -1
  157. package/dist/app/assets/{js-extras-zVUUAKO_.js → js-extras-Brhyk9ef.js} +1 -1
  158. package/dist/app/assets/{js-templates-iJxD_2Sa.js → js-templates-DhpXMSuF.js} +1 -1
  159. package/dist/app/assets/{jsdoc-DJ_m_yCh.js → jsdoc-BEesq6va.js} +1 -1
  160. package/dist/app/assets/{json-CZjhVgPK.js → json-CRGHFhSS.js} +1 -1
  161. package/dist/app/assets/{json5-BNvFsIbI.js → json5-CbPQgQz7.js} +1 -1
  162. package/dist/app/assets/{jsonp-gRo4PPGN.js → jsonp-BBjDy5AO.js} +1 -1
  163. package/dist/app/assets/{jsstacktrace-CT2oLlCK.js → jsstacktrace-CcOPcdH3.js} +1 -1
  164. package/dist/app/assets/{jsx-d0efg1vk.js → jsx-DRgBFrjX.js} +1 -1
  165. package/dist/app/assets/{julia-Dqs_RiDo.js → julia-DAe7WbG-.js} +1 -1
  166. package/dist/app/assets/{kanban-definition-6JOO6SKY-tE-1j_ia.js → kanban-definition-6JOO6SKY-DgTSO2X8.js} +1 -1
  167. package/dist/app/assets/{keepalived-Ber37oOF.js → keepalived-COsmSeDV.js} +1 -1
  168. package/dist/app/assets/{keyman-C5bFTeeI.js → keyman-Biz_0q7B.js} +1 -1
  169. package/dist/app/assets/{kotlin-DBq0G8Hn.js → kotlin-C3V8Z8W0.js} +1 -1
  170. package/dist/app/assets/{kumir-_r-igbu1.js → kumir-clIi7e8-.js} +1 -1
  171. package/dist/app/assets/{kusto-Dnrek9TI.js → kusto-BhEtzjY8.js} +1 -1
  172. package/dist/app/assets/{latex-B78lTwvc.js → latex-kWox6R5Q.js} +1 -1
  173. package/dist/app/assets/{latte-CaSKAGnv.js → latte-C8Xd4YKa.js} +1 -1
  174. package/dist/app/assets/{layout-BZiHvIMv.js → layout-CD5_V8sq.js} +1 -1
  175. package/dist/app/assets/{less-C0gq5vaY.js → less-8ceLguvR.js} +1 -1
  176. package/dist/app/assets/{lilypond-GMV-kxfc.js → lilypond-CfYHEM-K.js} +1 -1
  177. package/dist/app/assets/{linear-sCxwL64x.js → linear-B5jHFagM.js} +1 -1
  178. package/dist/app/assets/{liquid-Bjcywher.js → liquid-BJ6eYcfk.js} +1 -1
  179. package/dist/app/assets/{lisp-Di4LOhy9.js → lisp--smLUoul.js} +1 -1
  180. package/dist/app/assets/{livescript-CgOnolfS.js → livescript-BBflhyer.js} +1 -1
  181. package/dist/app/assets/{llvm-BGjbbrCi.js → llvm-Stc38VbV.js} +1 -1
  182. package/dist/app/assets/{log-D7n8H9fm.js → log-Dl9NGCxx.js} +1 -1
  183. package/dist/app/assets/{lolcode-Cu9-2TFS.js → lolcode-7yqzBped.js} +1 -1
  184. package/dist/app/assets/{lua-lccF9r61.js → lua-BEWp6yVC.js} +1 -1
  185. package/dist/app/assets/{magma-DcqQ1hwM.js → magma-a1ZYdqHu.js} +1 -1
  186. package/dist/app/assets/{makefile-kISpU6yQ.js → makefile-QpxduTfi.js} +1 -1
  187. package/dist/app/assets/{markdown-ClsPn-UJ.js → markdown-Dr9rg3gd.js} +1 -1
  188. package/dist/app/assets/{markup-GKEZzmxD.js → markup-DWdbcYGh.js} +1 -1
  189. package/dist/app/assets/{markup-templating-CWO2xZeJ.js → markup-templating-BduvWqLe.js} +1 -1
  190. package/dist/app/assets/{matlab-gPoR8X9J.js → matlab-C9LyN81W.js} +1 -1
  191. package/dist/app/assets/{maxscript-BHY3xiu7.js → maxscript-BMf24IEz.js} +1 -1
  192. package/dist/app/assets/{mel-rpDPR1uL.js → mel-C_j2S2hb.js} +1 -1
  193. package/dist/app/assets/{mermaid-BuzahRsL.js → mermaid-G8stp4Fu.js} +1 -1
  194. package/dist/app/assets/{min-qX6PyCsg.js → min-BGvlJ2dI.js} +1 -1
  195. package/dist/app/assets/{mindmap-definition-QFDTVHPH-ssFAYwGj.js → mindmap-definition-QFDTVHPH-Dxkf-h1G.js} +1 -1
  196. package/dist/app/assets/{mizar-uCD34iKQ.js → mizar-J5U-ieUu.js} +1 -1
  197. package/dist/app/assets/{mongodb-BHQiMgqu.js → mongodb-DsLKEq_k.js} +1 -1
  198. package/dist/app/assets/{monkey-DgUxfqRD.js → monkey-lZP0TIai.js} +1 -1
  199. package/dist/app/assets/{moonscript-jEu2rBFy.js → moonscript-OiCHzZ6_.js} +1 -1
  200. package/dist/app/assets/{n1ql-Dt-1d48e.js → n1ql-C6sbE8_e.js} +1 -1
  201. package/dist/app/assets/{n4js-DhUX1sWN.js → n4js-BpPLTwi3.js} +1 -1
  202. package/dist/app/assets/{nand2tetris-hdl-B1sxYngv.js → nand2tetris-hdl-BONzgEmL.js} +1 -1
  203. package/dist/app/assets/{naniscript-CLirJ9GC.js → naniscript-DmYZ1vD6.js} +1 -1
  204. package/dist/app/assets/{nasm-DFO6i9-v.js → nasm-BfiJTfj8.js} +1 -1
  205. package/dist/app/assets/{neon-CJVuQ87S.js → neon-CM742PO-.js} +1 -1
  206. package/dist/app/assets/{nevod-BKKiVTjs.js → nevod-Dlk8fgIJ.js} +1 -1
  207. package/dist/app/assets/{nginx-B_LEBTut.js → nginx-BZ-0DFHd.js} +1 -1
  208. package/dist/app/assets/{nim-DgvJ6hOl.js → nim-CU13w-pb.js} +1 -1
  209. package/dist/app/assets/{nix-CJ0KPl9Q.js → nix-DKrd4S8j.js} +1 -1
  210. package/dist/app/assets/{nsis-C6JwEFTE.js → nsis-B6Grq7ob.js} +1 -1
  211. package/dist/app/assets/{objectivec-B9B-kBxR.js → objectivec-Dbl3oSVf.js} +1 -1
  212. package/dist/app/assets/{ocaml-SkFdro3L.js → ocaml-Dp6vkH1l.js} +1 -1
  213. package/dist/app/assets/{opencl-DSfJf34E.js → opencl-BGEl-B5f.js} +1 -1
  214. package/dist/app/assets/{openqasm-CDzDtizQ.js → openqasm-CBrpfqoP.js} +1 -1
  215. package/dist/app/assets/{oz-BWs_ndEf.js → oz-Bcy_Q3m9.js} +1 -1
  216. package/dist/app/assets/{parigp-_-pO98W4.js → parigp-C8xRJQCD.js} +1 -1
  217. package/dist/app/assets/{parser-BwdpGZPJ.js → parser-Cey9DM6y.js} +1 -1
  218. package/dist/app/assets/{pascal-AEdKVQZ6.js → pascal-l6HUvzh7.js} +1 -1
  219. package/dist/app/assets/{pascaligo-B3FRz8ot.js → pascaligo-B0R2oVyK.js} +1 -1
  220. package/dist/app/assets/{pcaxis-5fq3uU8R.js → pcaxis-B7gTfCp3.js} +1 -1
  221. package/dist/app/assets/{peoplecode-DZ4fk8ON.js → peoplecode-BrynhEhk.js} +1 -1
  222. package/dist/app/assets/{perl-B3MXzetZ.js → perl-DGnem1ta.js} +1 -1
  223. package/dist/app/assets/{php-extras-DLRpD8nq.js → php-extras-UxJ7EW_B.js} +1 -1
  224. package/dist/app/assets/{php-vEB1iVno.js → php-ymrnn-Sa.js} +1 -1
  225. package/dist/app/assets/{phpdoc-BCqSfVX6.js → phpdoc-D9_wAKK9.js} +1 -1
  226. package/dist/app/assets/{pieDiagram-DEJITSTG-DxXi7DQ2.js → pieDiagram-DEJITSTG-DQU88qux.js} +1 -1
  227. package/dist/app/assets/{plsql-DPtxfxuA.js → plsql-DAA7FuKL.js} +1 -1
  228. package/dist/app/assets/{powerquery-BOfyovx0.js → powerquery-iAxKW4DJ.js} +1 -1
  229. package/dist/app/assets/{powershell-DxVo8OSN.js → powershell-CWnnAMh5.js} +1 -1
  230. package/dist/app/assets/{processing-ijqSDZY0.js → processing-Fx5vM2Rk.js} +1 -1
  231. package/dist/app/assets/{prolog-DlYEmyH_.js → prolog-MDMz_07H.js} +1 -1
  232. package/dist/app/assets/{promql-BjVFHQmv.js → promql-pDapTiOR.js} +1 -1
  233. package/dist/app/assets/{properties-bwk71nw-.js → properties-Cq5vAXr4.js} +1 -1
  234. package/dist/app/assets/{protobuf-Cih2akTP.js → protobuf-BSKn03IB.js} +1 -1
  235. package/dist/app/assets/{psl-Cw1dOcRa.js → psl-DJWnJ0aZ.js} +1 -1
  236. package/dist/app/assets/{pug-DwJYMQlV.js → pug-6thMZc-l.js} +1 -1
  237. package/dist/app/assets/{puppet-Caud_s-m.js → puppet-DcBfOA0r.js} +1 -1
  238. package/dist/app/assets/{pure-B5oj-gCx.js → pure-BMCCjO23.js} +1 -1
  239. package/dist/app/assets/{purebasic-BgeP5DDD.js → purebasic-DUfq0bVz.js} +1 -1
  240. package/dist/app/assets/{purescript-CsHryjK3.js → purescript-Bmj-jbV7.js} +1 -1
  241. package/dist/app/assets/{q-BP8bBuGv.js → q-o6FC2Oci.js} +1 -1
  242. package/dist/app/assets/{qml-BgY-HmDG.js → qml-CaBbPt0f.js} +1 -1
  243. package/dist/app/assets/{qore-uOYNMdCg.js → qore-C0fJNj2s.js} +1 -1
  244. package/dist/app/assets/{qsharp-Cmp5vMRr.js → qsharp-nrwk7Iu2.js} +1 -1
  245. package/dist/app/assets/{quadrantDiagram-34T5L4WZ-f7twVcyL.js → quadrantDiagram-34T5L4WZ-DQQGChO4.js} +1 -1
  246. package/dist/app/assets/{r-BPMuS20T.js → r-s3d67ipT.js} +1 -1
  247. package/dist/app/assets/{racket-qc2-NKzR.js → racket-CvnxUTxS.js} +1 -1
  248. package/dist/app/assets/{reason-Rphq4wU8.js → reason-abnvbDHw.js} +1 -1
  249. package/dist/app/assets/{regex-lUJxQlEc.js → regex-Dyp7nyFE.js} +1 -1
  250. package/dist/app/assets/{rego-CgRMQR4R.js → rego-D9o_M1Kt.js} +1 -1
  251. package/dist/app/assets/{renpy-O53RZ3yB.js → renpy-P-s55mrw.js} +1 -1
  252. package/dist/app/assets/{requirementDiagram-MS252O5E-C-2UwVat.js → requirementDiagram-MS252O5E-CQyaMifY.js} +1 -1
  253. package/dist/app/assets/{rest-lCVyRpHi.js → rest-CJGNsPIO.js} +1 -1
  254. package/dist/app/assets/{rip-Cb9MAixU.js → rip--_Kjyshk.js} +1 -1
  255. package/dist/app/assets/{roboconf-p--JilwP.js → roboconf-CzO4IdEr.js} +1 -1
  256. package/dist/app/assets/{robotframework-CJWG7axQ.js → robotframework-CqMBjau5.js} +1 -1
  257. package/dist/app/assets/{ruby-DgHGg4xu.js → ruby-CcbP52GS.js} +1 -1
  258. package/dist/app/assets/{rust-mfoZutVO.js → rust-BDcJmAdg.js} +1 -1
  259. package/dist/app/assets/{sankeyDiagram-XADWPNL6-DtWni1zR.js → sankeyDiagram-XADWPNL6-BR5ykQyP.js} +1 -1
  260. package/dist/app/assets/{sas-hkuUJbuO.js → sas-6ZRrxGY4.js} +1 -1
  261. package/dist/app/assets/{sass-DdYTeGYi.js → sass-LQWASCzx.js} +1 -1
  262. package/dist/app/assets/{scala-BmqlMvBk.js → scala-dLVC34jC.js} +1 -1
  263. package/dist/app/assets/{scheme-DGuanVCO.js → scheme-ljjM-kw4.js} +1 -1
  264. package/dist/app/assets/{scss-CQnillil.js → scss-BjZr9V6H.js} +1 -1
  265. package/dist/app/assets/{sequenceDiagram-FGHM5R23-V1Ofbw_p.js → sequenceDiagram-FGHM5R23-C_CfyMdO.js} +1 -1
  266. package/dist/app/assets/{shell-session-DCSmJkzu.js → shell-session-DN7Q5cOF.js} +1 -1
  267. package/dist/app/assets/{smali-ffxofes2.js → smali-BSUZr7sT.js} +1 -1
  268. package/dist/app/assets/{smalltalk-B3WSwake.js → smalltalk-DNUcII1j.js} +1 -1
  269. package/dist/app/assets/{smarty-TkH0F2ZR.js → smarty-w3V8wJ8q.js} +1 -1
  270. package/dist/app/assets/{sml-Dn0OaBIX.js → sml-DSoVmt8E.js} +1 -1
  271. package/dist/app/assets/{solidity-X5AVGR0y.js → solidity-r-lFr53c.js} +1 -1
  272. package/dist/app/assets/{solution-file-CPrmt5Hs.js → solution-file-BE-32cJO.js} +1 -1
  273. package/dist/app/assets/{soy-BWtqIhQj.js → soy-BH05VIly.js} +1 -1
  274. package/dist/app/assets/{sparql-B3dCbOij.js → sparql-BmZSbo8m.js} +1 -1
  275. package/dist/app/assets/{splunk-spl-DFme2x2-.js → splunk-spl-BBtbm42X.js} +1 -1
  276. package/dist/app/assets/{sqf-B6O1kNSS.js → sqf-2G5YaT6f.js} +1 -1
  277. package/dist/app/assets/{sql-CJQw5AKW.js → sql-BhZO3kQ8.js} +1 -1
  278. package/dist/app/assets/{squirrel-CzQsXTWv.js → squirrel-6NG1h2a_.js} +1 -1
  279. package/dist/app/assets/{stan-lf0anrTR.js → stan-DlLgeY1f.js} +1 -1
  280. package/dist/app/assets/{stateDiagram-FHFEXIEX-DCCf5FXE.js → stateDiagram-FHFEXIEX-BK6LRJ_J.js} +1 -1
  281. package/dist/app/assets/stateDiagram-v2-QKLJ7IA2-kcyyVi9f.js +1 -0
  282. package/dist/app/assets/{stylus-COiHJR5i.js → stylus-9MANoABX.js} +1 -1
  283. package/dist/app/assets/{swift-DkkKYkZS.js → swift-rgVRgAqK.js} +1 -1
  284. package/dist/app/assets/{systemd-yMlv02T9.js → systemd-DH306ton.js} +1 -1
  285. package/dist/app/assets/{t4-cs-rnhIAIrb.js → t4-cs-CqAUhraT.js} +1 -1
  286. package/dist/app/assets/{t4-templating-DMWX9YhQ.js → t4-templating-CdnkPXAS.js} +1 -1
  287. package/dist/app/assets/{t4-vb-ftpXLDQa.js → t4-vb-BGXI99pE.js} +1 -1
  288. package/dist/app/assets/{tap-BPZr3MHO.js → tap-BAZJNbLK.js} +1 -1
  289. package/dist/app/assets/{tcl-Da5z37GP.js → tcl-BOEKRtOp.js} +1 -1
  290. package/dist/app/assets/{textile-D_cVONZR.js → textile-D7X0Sgyn.js} +1 -1
  291. package/dist/app/assets/{timeline-definition-GMOUNBTQ-BUqjHP-0.js → timeline-definition-GMOUNBTQ-B_LU5nDM.js} +1 -1
  292. package/dist/app/assets/{toml-DKAIAUDo.js → toml-CfzGw53h.js} +1 -1
  293. package/dist/app/assets/{tremor-UPWxEF30.js → tremor-DYByk7ar.js} +1 -1
  294. package/dist/app/assets/{tt2-F3kwqgAK.js → tt2-CNCaPxhQ.js} +1 -1
  295. package/dist/app/assets/{turtle-BGEC3Tea.js → turtle-Bzs_at2N.js} +1 -1
  296. package/dist/app/assets/{twig-BF1UtTiF.js → twig-o2S4KNvE.js} +1 -1
  297. package/dist/app/assets/{typescript-0Q55yGyu.js → typescript-OnTd0yu3.js} +1 -1
  298. package/dist/app/assets/{typoscript-BZzT6IZ0.js → typoscript-CSmcWd5z.js} +1 -1
  299. package/dist/app/assets/{unrealscript-CRZUJaDf.js → unrealscript-cdAqsg1H.js} +1 -1
  300. package/dist/app/assets/{uorazor-DQbuUO_0.js → uorazor-It80EI2m.js} +1 -1
  301. package/dist/app/assets/{uri-DaYUWj2f.js → uri-DsMi8rd7.js} +1 -1
  302. package/dist/app/assets/{v-B_keUXs0.js → v-B_-3T97Y.js} +1 -1
  303. package/dist/app/assets/{vala-C280zAuu.js → vala-Bege32x4.js} +1 -1
  304. package/dist/app/assets/{vbnet-BP5k7ovm.js → vbnet-DxWsZHmf.js} +1 -1
  305. package/dist/app/assets/{velocity-Cpzxjvpc.js → velocity-D8j2-t5T.js} +1 -1
  306. package/dist/app/assets/{vennDiagram-DHZGUBPP-DMBYuFGJ.js → vennDiagram-DHZGUBPP-DfQHyCke.js} +1 -1
  307. package/dist/app/assets/{verilog-CsCWJCKK.js → verilog-BOdg-tSC.js} +1 -1
  308. package/dist/app/assets/{vhdl-CnOBMJDT.js → vhdl-Ce-nebP4.js} +1 -1
  309. package/dist/app/assets/{vim-BHrvXFGg.js → vim-Xv1PHa_E.js} +1 -1
  310. package/dist/app/assets/{visual-basic-DVMUkaLe.js → visual-basic-Dxm3bTj4.js} +1 -1
  311. package/dist/app/assets/{wardley-RL74JXVD-D39mFmVb.js → wardley-RL74JXVD-B6u0ieiH.js} +1 -1
  312. package/dist/app/assets/{wardleyDiagram-NUSXRM2D-tYKT99K6.js → wardleyDiagram-NUSXRM2D-DFue6QoQ.js} +1 -1
  313. package/dist/app/assets/{warpscript-D6-BbIHr.js → warpscript-CXGTE5kB.js} +1 -1
  314. package/dist/app/assets/{wasm-Bi73rb7-.js → wasm-DkO34hDs.js} +1 -1
  315. package/dist/app/assets/{web-idl-D5ZtoJL_.js → web-idl-BPq5ywx_.js} +1 -1
  316. package/dist/app/assets/{wiki-CorqGblj.js → wiki-DPqgO5Yt.js} +1 -1
  317. package/dist/app/assets/{wolfram-CfD99H8b.js → wolfram-BUOqMX2F.js} +1 -1
  318. package/dist/app/assets/{wren-Bxtd03-U.js → wren-KDTDLR_P.js} +1 -1
  319. package/dist/app/assets/{xeora-CK88z6DA.js → xeora-tlwdZtLE.js} +1 -1
  320. package/dist/app/assets/{xml-doc-CG1bthfs.js → xml-doc-mP74j5_p.js} +1 -1
  321. package/dist/app/assets/{xojo-ClNCxa3l.js → xojo-C9Z4cCIr.js} +1 -1
  322. package/dist/app/assets/{xquery-KJgwBO7a.js → xquery-CNxehrYO.js} +1 -1
  323. package/dist/app/assets/{xychartDiagram-5P7HB3ND-Cpkqm7JZ.js → xychartDiagram-5P7HB3ND-B_zEnzIh.js} +1 -1
  324. package/dist/app/assets/{yaml-BN5ddz6N.js → yaml-CYOcRzsc.js} +1 -1
  325. package/dist/app/assets/{yang-wM3Tqav1.js → yang-CdXyvG4d.js} +1 -1
  326. package/dist/app/assets/{zig-At4jiVd0.js → zig-DisfpEah.js} +1 -1
  327. package/dist/app/index.html +2 -2
  328. package/dist/index.cjs +681 -650
  329. package/dist/index.js +681 -650
  330. package/package.json +4 -4
  331. package/dist/app/assets/channel-BVeXXlex.js +0 -1
  332. package/dist/app/assets/classDiagram-6PBFFD2Q-Bx9mt6fp.js +0 -1
  333. package/dist/app/assets/classDiagram-v2-HSJHXN6E-Bx9mt6fp.js +0 -1
  334. package/dist/app/assets/clone-C3qA4Qv-.js +0 -1
  335. package/dist/app/assets/index-ByruneYs.css +0 -1
  336. package/dist/app/assets/stateDiagram-v2-QKLJ7IA2-CWJp5A97.js +0 -1
package/dist/index.js CHANGED
@@ -17208,6 +17208,13 @@ function Chat({
17208
17208
  fallbackTitle: t("history.threadFallback")
17209
17209
  });
17210
17210
  const assistantTitle = assistantName || resolvedTitle;
17211
+ const layoutMaxWidth = options?.layout?.maxWidth;
17212
+ const chatColumnStyle = React49.useMemo(() => {
17213
+ if (layoutMaxWidth === void 0 || layoutMaxWidth === null || layoutMaxWidth === "") {
17214
+ return void 0;
17215
+ }
17216
+ return { maxWidth: layoutMaxWidth };
17217
+ }, [layoutMaxWidth]);
17211
17218
  return /* @__PURE__ */ jsxs37(
17212
17219
  UploadDroppedFiles,
17213
17220
  {
@@ -17223,309 +17230,325 @@ function Chat({
17223
17230
  className
17224
17231
  ),
17225
17232
  children: [
17226
- /* @__PURE__ */ jsxs37("div", { className: "flex items-center justify-between border-b p-2 sticky top-0 z-10 bg-background", children: [
17227
- /* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-3 overflow-hidden", children: [
17228
- /* @__PURE__ */ jsxs37("div", { className: "relative shrink-0", children: [
17229
- /* @__PURE__ */ jsx54(
17230
- ChatkitAvatar,
17231
- {
17232
- avatar: assistantAvatar,
17233
- className: "h-9 w-9 border border-border/60",
17234
- label: assistantTitle
17235
- }
17236
- ),
17237
- /* @__PURE__ */ jsx54("span", { className: "absolute bottom-0 right-0 h-2.5 w-2.5 rounded-full border-2 border-background bg-green-500" })
17238
- ] }),
17239
- /* @__PURE__ */ jsxs37("div", { className: "truncate", children: [
17240
- /* @__PURE__ */ jsx54(
17241
- "h2",
17242
- {
17243
- className: "text-lg font-semibold truncate",
17244
- title: assistantTitle,
17245
- children: assistantTitle
17246
- }
17247
- ),
17248
- /* @__PURE__ */ jsx54("p", { className: "text-xs text-muted-foreground", children: t("chat.statusOnline") })
17249
- ] })
17250
- ] }),
17251
- /* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-1", children: [
17252
- canMinimizeToPet && /* @__PURE__ */ jsxs37(Tooltip, { children: [
17253
- /* @__PURE__ */ jsx54(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx54("span", { className: "inline-flex h-8 w-8", children: /* @__PURE__ */ jsx54(
17254
- "button",
17255
- {
17256
- type: "button",
17257
- onClick: handleMinimizeToPet,
17258
- className: cn(
17259
- "flex h-8 w-8 cursor-pointer items-center justify-center rounded-md",
17260
- "text-muted-foreground hover:text-foreground hover:bg-muted",
17261
- "transition-colors duration-150"
17233
+ /* @__PURE__ */ jsxs37(
17234
+ "div",
17235
+ {
17236
+ "data-slot": "chatkit-chat-header",
17237
+ className: "mx-auto flex w-full items-center justify-between border-b p-2 sticky top-0 z-10 bg-background",
17238
+ style: chatColumnStyle,
17239
+ children: [
17240
+ /* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-3 overflow-hidden", children: [
17241
+ /* @__PURE__ */ jsxs37("div", { className: "relative shrink-0", children: [
17242
+ /* @__PURE__ */ jsx54(
17243
+ ChatkitAvatar,
17244
+ {
17245
+ avatar: assistantAvatar,
17246
+ className: "h-9 w-9 border border-border/60",
17247
+ label: assistantTitle
17248
+ }
17262
17249
  ),
17263
- "aria-label": t("chat.minimizeToPet"),
17264
- children: /* @__PURE__ */ jsx54(Minus, { size: 16 })
17265
- }
17266
- ) }) }),
17267
- /* @__PURE__ */ jsx54(TooltipContent, { side: "bottom", children: t("chat.minimizeToPet") })
17268
- ] }),
17269
- /* @__PURE__ */ jsxs37(Tooltip, { children: [
17270
- /* @__PURE__ */ jsx54(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx54("span", { className: "inline-flex h-8 w-8", children: /* @__PURE__ */ jsx54(
17271
- "button",
17272
- {
17273
- type: "button",
17274
- onClick: () => setPetSettingsOpen(true),
17275
- className: cn(
17276
- "flex h-8 w-8 cursor-pointer items-center justify-center rounded-md",
17277
- "text-muted-foreground hover:text-foreground hover:bg-muted",
17278
- "transition-colors duration-150"
17250
+ /* @__PURE__ */ jsx54("span", { className: "absolute bottom-0 right-0 h-2.5 w-2.5 rounded-full border-2 border-background bg-green-500" })
17251
+ ] }),
17252
+ /* @__PURE__ */ jsxs37("div", { className: "truncate", children: [
17253
+ /* @__PURE__ */ jsx54(
17254
+ "h2",
17255
+ {
17256
+ className: "text-lg font-semibold truncate",
17257
+ title: assistantTitle,
17258
+ children: assistantTitle
17259
+ }
17279
17260
  ),
17280
- "aria-label": t("settings.open"),
17281
- children: /* @__PURE__ */ jsx54(Settings2, { size: 16 })
17282
- }
17283
- ) }) }),
17284
- /* @__PURE__ */ jsx54(TooltipContent, { side: "bottom", children: t("settings.open") })
17285
- ] }),
17286
- history?.enabled !== false && /* @__PURE__ */ jsxs37(Fragment9, { children: [
17287
- /* @__PURE__ */ jsxs37(Tooltip, { children: [
17288
- /* @__PURE__ */ jsx54(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx54("span", { className: "inline-flex h-8 w-8", children: /* @__PURE__ */ jsx54(
17289
- "button",
17290
- {
17291
- type: "button",
17292
- onClick: handleNewThread,
17293
- disabled: missingConfig || isHistoryLoading,
17294
- className: cn(
17295
- "flex h-8 w-8 cursor-pointer items-center justify-center rounded-md",
17296
- "text-muted-foreground hover:text-foreground hover:bg-muted",
17297
- "transition-colors duration-150",
17298
- "disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed"
17299
- ),
17300
- "aria-label": t("history.newThread"),
17301
- children: /* @__PURE__ */ jsx54(Pencil4, { size: 16 })
17302
- }
17303
- ) }) }),
17304
- /* @__PURE__ */ jsx54(TooltipContent, { side: "bottom", children: t("history.newThread") })
17261
+ /* @__PURE__ */ jsx54("p", { className: "text-xs text-muted-foreground", children: t("chat.statusOnline") })
17262
+ ] })
17305
17263
  ] }),
17306
- /* @__PURE__ */ jsx54(
17307
- HistorySidebar,
17308
- {
17309
- threads,
17310
- currentThreadId: stream.threadId ?? void 0,
17311
- onNewThread: handleNewThread,
17312
- onSelectThread: handleSelectThread,
17313
- onDeleteThread: handleDeleteThread,
17314
- showDelete: history?.showDelete !== false,
17315
- disabled: missingConfig || isThreadsLoading || isHistoryLoading
17316
- }
17317
- )
17318
- ] })
17319
- ] })
17320
- ] }),
17321
- /* @__PURE__ */ jsxs37("div", { className: "flex-1 p-4", children: [
17322
- errorMessage && /* @__PURE__ */ jsx54("div", { className: "mb-4 rounded-lg border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive", children: errorMessage }),
17323
- historyError && /* @__PURE__ */ jsx54("div", { className: "mb-4 rounded-lg border border-amber-200 bg-amber-50 px-3 py-2 text-sm text-amber-900", children: historyError }),
17324
- showMissingConfig && /* @__PURE__ */ jsx54("div", { className: "mb-4 rounded-lg border border-amber-200 bg-amber-50 px-3 py-2 text-sm text-amber-900", children: missingConfigDetailMessage }),
17325
- isHistoryLoading && /* @__PURE__ */ jsx54("div", { className: "mb-4 rounded-lg border border-muted px-3 py-2 text-sm text-muted-foreground", children: t("chat.loadingThread") }),
17326
- messages.length === 0 && !canLoadMoreMessages ? /* @__PURE__ */ jsx54(
17327
- StartScreen,
17328
- {
17329
- startScreen,
17330
- onPromptClick: handlePromptClick,
17331
- onPromptEdit: handlePromptEdit,
17332
- promptSendDisabled: isSubmissionBlocked,
17333
- promptEditDisabled: isPromptEditDisabled
17334
- }
17335
- ) : /* @__PURE__ */ jsxs37("div", { className: "space-y-4", children: [
17336
- canLoadMoreMessages && /* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-3 py-1", children: [
17337
- /* @__PURE__ */ jsx54("div", { className: "h-px min-w-8 flex-1 bg-border" }),
17338
- /* @__PURE__ */ jsx54(
17339
- Button,
17264
+ /* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-1", children: [
17265
+ canMinimizeToPet && /* @__PURE__ */ jsxs37(Tooltip, { children: [
17266
+ /* @__PURE__ */ jsx54(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx54("span", { className: "inline-flex h-8 w-8", children: /* @__PURE__ */ jsx54(
17267
+ "button",
17268
+ {
17269
+ type: "button",
17270
+ onClick: handleMinimizeToPet,
17271
+ className: cn(
17272
+ "flex h-8 w-8 cursor-pointer items-center justify-center rounded-md",
17273
+ "text-muted-foreground hover:text-foreground hover:bg-muted",
17274
+ "transition-colors duration-150"
17275
+ ),
17276
+ "aria-label": t("chat.minimizeToPet"),
17277
+ children: /* @__PURE__ */ jsx54(Minus, { size: 16 })
17278
+ }
17279
+ ) }) }),
17280
+ /* @__PURE__ */ jsx54(TooltipContent, { side: "bottom", children: t("chat.minimizeToPet") })
17281
+ ] }),
17282
+ /* @__PURE__ */ jsxs37(Tooltip, { children: [
17283
+ /* @__PURE__ */ jsx54(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx54("span", { className: "inline-flex h-8 w-8", children: /* @__PURE__ */ jsx54(
17284
+ "button",
17285
+ {
17286
+ type: "button",
17287
+ onClick: () => setPetSettingsOpen(true),
17288
+ className: cn(
17289
+ "flex h-8 w-8 cursor-pointer items-center justify-center rounded-md",
17290
+ "text-muted-foreground hover:text-foreground hover:bg-muted",
17291
+ "transition-colors duration-150"
17292
+ ),
17293
+ "aria-label": t("settings.open"),
17294
+ children: /* @__PURE__ */ jsx54(Settings2, { size: 16 })
17295
+ }
17296
+ ) }) }),
17297
+ /* @__PURE__ */ jsx54(TooltipContent, { side: "bottom", children: t("settings.open") })
17298
+ ] }),
17299
+ history?.enabled !== false && /* @__PURE__ */ jsxs37(Fragment9, { children: [
17300
+ /* @__PURE__ */ jsxs37(Tooltip, { children: [
17301
+ /* @__PURE__ */ jsx54(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx54("span", { className: "inline-flex h-8 w-8", children: /* @__PURE__ */ jsx54(
17302
+ "button",
17303
+ {
17304
+ type: "button",
17305
+ onClick: handleNewThread,
17306
+ disabled: missingConfig || isHistoryLoading,
17307
+ className: cn(
17308
+ "flex h-8 w-8 cursor-pointer items-center justify-center rounded-md",
17309
+ "text-muted-foreground hover:text-foreground hover:bg-muted",
17310
+ "transition-colors duration-150",
17311
+ "disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed"
17312
+ ),
17313
+ "aria-label": t("history.newThread"),
17314
+ children: /* @__PURE__ */ jsx54(Pencil4, { size: 16 })
17315
+ }
17316
+ ) }) }),
17317
+ /* @__PURE__ */ jsx54(TooltipContent, { side: "bottom", children: t("history.newThread") })
17318
+ ] }),
17319
+ /* @__PURE__ */ jsx54(
17320
+ HistorySidebar,
17321
+ {
17322
+ threads,
17323
+ currentThreadId: stream.threadId ?? void 0,
17324
+ onNewThread: handleNewThread,
17325
+ onSelectThread: handleSelectThread,
17326
+ onDeleteThread: handleDeleteThread,
17327
+ showDelete: history?.showDelete !== false,
17328
+ disabled: missingConfig || isThreadsLoading || isHistoryLoading
17329
+ }
17330
+ )
17331
+ ] })
17332
+ ] })
17333
+ ]
17334
+ }
17335
+ ),
17336
+ /* @__PURE__ */ jsxs37(
17337
+ "div",
17338
+ {
17339
+ "data-slot": "chatkit-chat-content",
17340
+ className: "mx-auto w-full flex-1 p-4",
17341
+ style: chatColumnStyle,
17342
+ children: [
17343
+ errorMessage && /* @__PURE__ */ jsx54("div", { className: "mb-4 rounded-lg border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive", children: errorMessage }),
17344
+ historyError && /* @__PURE__ */ jsx54("div", { className: "mb-4 rounded-lg border border-amber-200 bg-amber-50 px-3 py-2 text-sm text-amber-900", children: historyError }),
17345
+ showMissingConfig && /* @__PURE__ */ jsx54("div", { className: "mb-4 rounded-lg border border-amber-200 bg-amber-50 px-3 py-2 text-sm text-amber-900", children: missingConfigDetailMessage }),
17346
+ isHistoryLoading && /* @__PURE__ */ jsx54("div", { className: "mb-4 rounded-lg border border-muted px-3 py-2 text-sm text-muted-foreground", children: t("chat.loadingThread") }),
17347
+ messages.length === 0 && !canLoadMoreMessages ? /* @__PURE__ */ jsx54(
17348
+ StartScreen,
17340
17349
  {
17341
- type: "button",
17342
- variant: "ghost",
17343
- size: "sm",
17344
- onClick: handleLoadMoreMessages,
17345
- disabled: isLoadingMoreMessages,
17346
- className: "h-7 px-2 text-xs font-medium text-muted-foreground hover:text-foreground",
17347
- children: isLoadingMoreMessages ? t("chat.loadingMoreMessages") : t("chat.loadMoreMessages")
17350
+ startScreen,
17351
+ onPromptClick: handlePromptClick,
17352
+ onPromptEdit: handlePromptEdit,
17353
+ promptSendDisabled: isSubmissionBlocked,
17354
+ promptEditDisabled: isPromptEditDisabled
17348
17355
  }
17349
- ),
17350
- /* @__PURE__ */ jsx54("div", { className: "h-px min-w-8 flex-1 bg-border" })
17351
- ] }),
17352
- messages.map((message, index) => {
17353
- const messageType = String(message.type);
17354
- const isAssistantMessage = messageType === "assistant" || messageType === "ai";
17355
- const isStreamingMessage = stream.isLoading && index === messages.length - 1;
17356
- const streamingStatus = isAssistantMessage ? getAssistantStreamingStatus(
17357
- {
17358
- ...message,
17359
- lastStreamOutputAt: lastStreamOutputAtRef.current
17360
- },
17361
- isStreamingMessage,
17362
- { now: streamingNow }
17363
- ) : null;
17364
- if (isAssistantMessage && !hasRenderableAssistantMessage(message) && !streamingStatus) {
17365
- return null;
17366
- }
17367
- const messageContent = typeof message.content === "string" ? message.content : Array.isArray(message.content) ? message.content.map((part) => formatMessageContent(part)).join("") : formatMessageContent(message.content);
17368
- const hasPlainRenderableContent = messageContent.trim().length > 0;
17369
- const humanMessage = message;
17370
- const humanReferences = humanMessage.references ?? [];
17371
- const humanAttachments = [
17372
- ...humanMessage.fileAssets ?? [],
17373
- ...humanMessage.attachments ?? []
17374
- ];
17375
- const humanRuntimeCapabilityOptions = message.type === "human" ? humanMessage.runtimeCapabilityOptions ?? getSelectedRuntimeCapabilityOptions(
17376
- getRecommendedRuntimeCapabilitiesSelection(
17377
- humanMessage.runtimeCapabilities
17378
- ),
17379
- runtimeCapabilityOptions
17380
- ) : [];
17381
- const hasHumanAttachments = message.type === "human" && humanAttachments.length > 0;
17382
- const canQuoteMessage = message.type === "human" || isAssistantMessage;
17383
- const quoteSource = message.type === "human" ? t("chat.youLabel") : assistantTitle;
17384
- if (!isAssistantMessage && !hasPlainRenderableContent && !hasHumanAttachments && humanRuntimeCapabilityOptions.length === 0 && humanReferences.length === 0) {
17385
- return null;
17386
- }
17387
- return /* @__PURE__ */ jsx54(
17388
- "div",
17389
- {
17390
- className: cn(
17391
- "group flex gap-3",
17392
- message.type === "human" ? "justify-end" : "justify-start -ml-1"
17393
- // AI messages: slightly closer to left
17356
+ ) : /* @__PURE__ */ jsxs37("div", { className: "space-y-4", children: [
17357
+ canLoadMoreMessages && /* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-3 py-1", children: [
17358
+ /* @__PURE__ */ jsx54("div", { className: "h-px min-w-8 flex-1 bg-border" }),
17359
+ /* @__PURE__ */ jsx54(
17360
+ Button,
17361
+ {
17362
+ type: "button",
17363
+ variant: "ghost",
17364
+ size: "sm",
17365
+ onClick: handleLoadMoreMessages,
17366
+ disabled: isLoadingMoreMessages,
17367
+ className: "h-7 px-2 text-xs font-medium text-muted-foreground hover:text-foreground",
17368
+ children: isLoadingMoreMessages ? t("chat.loadingMoreMessages") : t("chat.loadMoreMessages")
17369
+ }
17394
17370
  ),
17395
- children: /* @__PURE__ */ jsxs37(
17371
+ /* @__PURE__ */ jsx54("div", { className: "h-px min-w-8 flex-1 bg-border" })
17372
+ ] }),
17373
+ messages.map((message, index) => {
17374
+ const messageType = String(message.type);
17375
+ const isAssistantMessage = messageType === "assistant" || messageType === "ai";
17376
+ const isStreamingMessage = stream.isLoading && index === messages.length - 1;
17377
+ const streamingStatus = isAssistantMessage ? getAssistantStreamingStatus(
17378
+ {
17379
+ ...message,
17380
+ lastStreamOutputAt: lastStreamOutputAtRef.current
17381
+ },
17382
+ isStreamingMessage,
17383
+ { now: streamingNow }
17384
+ ) : null;
17385
+ if (isAssistantMessage && !hasRenderableAssistantMessage(message) && !streamingStatus) {
17386
+ return null;
17387
+ }
17388
+ const messageContent = typeof message.content === "string" ? message.content : Array.isArray(message.content) ? message.content.map((part) => formatMessageContent(part)).join("") : formatMessageContent(message.content);
17389
+ const hasPlainRenderableContent = messageContent.trim().length > 0;
17390
+ const humanMessage = message;
17391
+ const humanReferences = humanMessage.references ?? [];
17392
+ const humanAttachments = [
17393
+ ...humanMessage.fileAssets ?? [],
17394
+ ...humanMessage.attachments ?? []
17395
+ ];
17396
+ const humanRuntimeCapabilityOptions = message.type === "human" ? humanMessage.runtimeCapabilityOptions ?? getSelectedRuntimeCapabilityOptions(
17397
+ getRecommendedRuntimeCapabilitiesSelection(
17398
+ humanMessage.runtimeCapabilities
17399
+ ),
17400
+ runtimeCapabilityOptions
17401
+ ) : [];
17402
+ const hasHumanAttachments = message.type === "human" && humanAttachments.length > 0;
17403
+ const canQuoteMessage = message.type === "human" || isAssistantMessage;
17404
+ const quoteSource = message.type === "human" ? t("chat.youLabel") : assistantTitle;
17405
+ if (!isAssistantMessage && !hasPlainRenderableContent && !hasHumanAttachments && humanRuntimeCapabilityOptions.length === 0 && humanReferences.length === 0) {
17406
+ return null;
17407
+ }
17408
+ return /* @__PURE__ */ jsx54(
17396
17409
  "div",
17397
17410
  {
17398
17411
  className: cn(
17399
- "flex flex-col px-3 overflow-hidden",
17400
- isAssistantMessage && "min-w-0 flex-1"
17412
+ "group flex gap-3",
17413
+ message.type === "human" ? "justify-end" : "justify-start -ml-1"
17414
+ // AI messages: slightly closer to left
17401
17415
  ),
17402
- children: [
17403
- /* @__PURE__ */ jsx54(
17404
- "div",
17405
- {
17406
- ...canQuoteMessage ? {
17407
- "data-quote-message-id": message.id,
17408
- "data-quote-source": quoteSource
17409
- } : {},
17410
- className: cn(
17411
- "max-w-full rounded-2xl",
17412
- message.type === "human" ? "bg-primary text-primary-foreground px-4 py-2.5" : message.type === "system" ? "bg-muted text-muted-foreground text-xs px-4 py-2.5" : "py-1 text-chat-foreground"
17413
- // AI messages: use chat-specific foreground color
17414
- ),
17415
- children: isAssistantMessage ? /* @__PURE__ */ jsx54(
17416
- AssistantMessage,
17416
+ children: /* @__PURE__ */ jsxs37(
17417
+ "div",
17418
+ {
17419
+ className: cn(
17420
+ "flex flex-col px-3 overflow-hidden",
17421
+ isAssistantMessage && "min-w-0 flex-1"
17422
+ ),
17423
+ children: [
17424
+ /* @__PURE__ */ jsx54(
17425
+ "div",
17417
17426
  {
17418
- message: {
17419
- ...message,
17420
- type: "assistant"
17421
- },
17422
- messages: messages.slice(0, index + 1).map(
17423
- (item) => ({
17424
- ...item,
17425
- type: String(item.type) === "ai" ? "assistant" : item.type
17426
- })
17427
+ ...canQuoteMessage ? {
17428
+ "data-quote-message-id": message.id,
17429
+ "data-quote-source": quoteSource
17430
+ } : {},
17431
+ className: cn(
17432
+ "max-w-full rounded-2xl",
17433
+ message.type === "human" ? "bg-primary text-primary-foreground px-4 py-2.5" : message.type === "system" ? "bg-muted text-muted-foreground text-xs px-4 py-2.5" : "py-1 text-chat-foreground"
17434
+ // AI messages: use chat-specific foreground color
17427
17435
  ),
17436
+ children: isAssistantMessage ? /* @__PURE__ */ jsx54(
17437
+ AssistantMessage,
17438
+ {
17439
+ message: {
17440
+ ...message,
17441
+ type: "assistant"
17442
+ },
17443
+ messages: messages.slice(0, index + 1).map(
17444
+ (item) => ({
17445
+ ...item,
17446
+ type: String(item.type) === "ai" ? "assistant" : item.type
17447
+ })
17448
+ ),
17449
+ isStreaming: isStreamingMessage,
17450
+ streamingStatus,
17451
+ isThreadRunning: currentThreadIsRunning,
17452
+ organizationId: stream.organizationId,
17453
+ apiUrl: stream.apiUrl
17454
+ }
17455
+ ) : /* @__PURE__ */ jsxs37(Fragment9, { children: [
17456
+ message.type === "human" && humanRuntimeCapabilityOptions.length > 0 && /* @__PURE__ */ jsx54("div", { className: "mb-2 flex flex-wrap gap-1.5", children: humanRuntimeCapabilityOptions.map((option) => /* @__PURE__ */ jsxs37(
17457
+ "span",
17458
+ {
17459
+ className: "inline-flex max-w-full items-center gap-1 rounded-md bg-primary-foreground/20 px-2 py-1 text-xs font-medium text-primary-foreground",
17460
+ children: [
17461
+ /* @__PURE__ */ jsx54(
17462
+ RuntimeCapabilityIcon,
17463
+ {
17464
+ option,
17465
+ variant: "chip"
17466
+ }
17467
+ ),
17468
+ /* @__PURE__ */ jsx54("span", { className: "max-w-[9rem] truncate", children: option.label })
17469
+ ]
17470
+ },
17471
+ `${option.type}:${option.id}`
17472
+ )) }),
17473
+ message.type === "human" && humanReferences.length > 0 && /* @__PURE__ */ jsx54("div", { className: "mb-2 flex flex-wrap gap-1.5", children: humanReferences.map((reference) => /* @__PURE__ */ jsx54(
17474
+ ReferenceChip,
17475
+ {
17476
+ reference,
17477
+ variant: "message"
17478
+ },
17479
+ getReferenceKey(reference)
17480
+ )) }),
17481
+ message.type === "human" && humanAttachments.length > 0 && /* @__PURE__ */ jsx54("div", { className: "flex flex-wrap gap-1.5 mb-2", children: humanAttachments.map((file, fileIndex) => /* @__PURE__ */ jsxs37(
17482
+ "div",
17483
+ {
17484
+ className: "flex items-center gap-1.5 rounded-md bg-primary-foreground/20 px-2 py-1 text-xs",
17485
+ children: [
17486
+ /* @__PURE__ */ jsx54(FileText5, { size: 12 }),
17487
+ /* @__PURE__ */ jsx54("span", { className: "max-w-[100px] truncate", children: file.originalName ?? file.id })
17488
+ ]
17489
+ },
17490
+ fileIndex
17491
+ )) }),
17492
+ Array.isArray(message.content) ? message.content.map((part, partIndex) => /* @__PURE__ */ jsx54(
17493
+ "p",
17494
+ {
17495
+ className: "wrap-break-word text-sm leading-relaxed",
17496
+ children: formatMessageContent(part)
17497
+ },
17498
+ `${part.type}-${partIndex}`
17499
+ )) : /* @__PURE__ */ jsx54("span", { className: "wrap-break-word text-sm leading-relaxed", children: formatMessageContent(message.content) })
17500
+ ] })
17501
+ }
17502
+ ),
17503
+ /* @__PURE__ */ jsx54(
17504
+ MessageActions,
17505
+ {
17506
+ content: messageContent,
17507
+ isAssistant: isAssistantMessage,
17428
17508
  isStreaming: isStreamingMessage,
17429
- streamingStatus,
17430
- isThreadRunning: currentThreadIsRunning,
17431
- organizationId: stream.organizationId,
17432
- apiUrl: stream.apiUrl
17509
+ onRetry: isAssistantMessage && !stream.isLoading && index === messages.length - 1 ? () => handleRetry(index) : void 0
17433
17510
  }
17434
- ) : /* @__PURE__ */ jsxs37(Fragment9, { children: [
17435
- message.type === "human" && humanRuntimeCapabilityOptions.length > 0 && /* @__PURE__ */ jsx54("div", { className: "mb-2 flex flex-wrap gap-1.5", children: humanRuntimeCapabilityOptions.map((option) => /* @__PURE__ */ jsxs37(
17436
- "span",
17437
- {
17438
- className: "inline-flex max-w-full items-center gap-1 rounded-md bg-primary-foreground/20 px-2 py-1 text-xs font-medium text-primary-foreground",
17439
- children: [
17440
- /* @__PURE__ */ jsx54(
17441
- RuntimeCapabilityIcon,
17442
- {
17443
- option,
17444
- variant: "chip"
17445
- }
17446
- ),
17447
- /* @__PURE__ */ jsx54("span", { className: "max-w-[9rem] truncate", children: option.label })
17448
- ]
17449
- },
17450
- `${option.type}:${option.id}`
17451
- )) }),
17452
- message.type === "human" && humanReferences.length > 0 && /* @__PURE__ */ jsx54("div", { className: "mb-2 flex flex-wrap gap-1.5", children: humanReferences.map((reference) => /* @__PURE__ */ jsx54(
17453
- ReferenceChip,
17454
- {
17455
- reference,
17456
- variant: "message"
17457
- },
17458
- getReferenceKey(reference)
17459
- )) }),
17460
- message.type === "human" && humanAttachments.length > 0 && /* @__PURE__ */ jsx54("div", { className: "flex flex-wrap gap-1.5 mb-2", children: humanAttachments.map((file, fileIndex) => /* @__PURE__ */ jsxs37(
17461
- "div",
17462
- {
17463
- className: "flex items-center gap-1.5 rounded-md bg-primary-foreground/20 px-2 py-1 text-xs",
17464
- children: [
17465
- /* @__PURE__ */ jsx54(FileText5, { size: 12 }),
17466
- /* @__PURE__ */ jsx54("span", { className: "max-w-[100px] truncate", children: file.originalName ?? file.id })
17467
- ]
17468
- },
17469
- fileIndex
17470
- )) }),
17471
- Array.isArray(message.content) ? message.content.map((part, partIndex) => /* @__PURE__ */ jsx54(
17472
- "p",
17473
- {
17474
- className: "wrap-break-word text-sm leading-relaxed",
17475
- children: formatMessageContent(part)
17476
- },
17477
- `${part.type}-${partIndex}`
17478
- )) : /* @__PURE__ */ jsx54("span", { className: "wrap-break-word text-sm leading-relaxed", children: formatMessageContent(message.content) })
17479
- ] })
17480
- }
17481
- ),
17482
- /* @__PURE__ */ jsx54(
17483
- MessageActions,
17484
- {
17485
- content: messageContent,
17486
- isAssistant: isAssistantMessage,
17487
- isStreaming: isStreamingMessage,
17488
- onRetry: isAssistantMessage && !stream.isLoading && index === messages.length - 1 ? () => handleRetry(index) : void 0
17489
- }
17490
- )
17491
- ]
17511
+ )
17512
+ ]
17513
+ }
17514
+ )
17515
+ },
17516
+ message.id ?? `${message.type}-${index}`
17517
+ );
17518
+ }),
17519
+ showLoadingDots && (() => {
17520
+ const lastMessage = messages[messages.length - 1];
17521
+ const lastMessageType = lastMessage ? String(lastMessage.type) : "";
17522
+ const isLastMessageFromAI = lastMessageType === "ai" || lastMessageType === "assistant";
17523
+ const lastAssistantStatus = isLastMessageFromAI ? getAssistantStreamingStatus(
17524
+ {
17525
+ ...lastMessage,
17526
+ lastStreamOutputAt: lastStreamOutputAtRef.current
17527
+ },
17528
+ stream.isLoading,
17529
+ { now: streamingNow }
17530
+ ) : null;
17531
+ if (lastAssistantStatus) return null;
17532
+ const fallbackStreamingStatus = getAssistantStreamingStatus(
17533
+ {
17534
+ status: void 0,
17535
+ reasoning: void 0,
17536
+ lastStreamOutputAt: lastStreamOutputAtRef.current
17537
+ },
17538
+ stream.isLoading,
17539
+ { now: streamingNow }
17540
+ );
17541
+ return /* @__PURE__ */ jsx54("div", { className: "flex justify-start gap-3 -ml-2", children: /* @__PURE__ */ jsx54("div", { className: "max-w-full rounded-2xl py-2.5", children: /* @__PURE__ */ jsx54(
17542
+ AssistantStreamingIndicator,
17543
+ {
17544
+ status: fallbackStreamingStatus ?? "loading"
17492
17545
  }
17493
- )
17494
- },
17495
- message.id ?? `${message.type}-${index}`
17496
- );
17497
- }),
17498
- showLoadingDots && (() => {
17499
- const lastMessage = messages[messages.length - 1];
17500
- const lastMessageType = lastMessage ? String(lastMessage.type) : "";
17501
- const isLastMessageFromAI = lastMessageType === "ai" || lastMessageType === "assistant";
17502
- const lastAssistantStatus = isLastMessageFromAI ? getAssistantStreamingStatus(
17503
- {
17504
- ...lastMessage,
17505
- lastStreamOutputAt: lastStreamOutputAtRef.current
17506
- },
17507
- stream.isLoading,
17508
- { now: streamingNow }
17509
- ) : null;
17510
- if (lastAssistantStatus) return null;
17511
- const fallbackStreamingStatus = getAssistantStreamingStatus(
17512
- {
17513
- status: void 0,
17514
- reasoning: void 0,
17515
- lastStreamOutputAt: lastStreamOutputAtRef.current
17516
- },
17517
- stream.isLoading,
17518
- { now: streamingNow }
17519
- );
17520
- return /* @__PURE__ */ jsx54("div", { className: "flex justify-start gap-3 -ml-2", children: /* @__PURE__ */ jsx54("div", { className: "max-w-full rounded-2xl py-2.5", children: /* @__PURE__ */ jsx54(
17521
- AssistantStreamingIndicator,
17522
- {
17523
- status: fallbackStreamingStatus ?? "loading"
17524
- }
17525
- ) }) });
17526
- })()
17527
- ] })
17528
- ] }),
17546
+ ) }) });
17547
+ })()
17548
+ ] })
17549
+ ]
17550
+ }
17551
+ ),
17529
17552
  !isAtBottom && messages.length > 0 && /* @__PURE__ */ jsx54("div", { className: "sticky bottom-20 z-20 flex justify-center px-4 pointer-events-none", children: /* @__PURE__ */ jsx54(
17530
17553
  Button,
17531
17554
  {
@@ -17570,386 +17593,394 @@ function Chat({
17570
17593
  )
17571
17594
  }
17572
17595
  ),
17573
- /* @__PURE__ */ jsxs37("div", { className: "p-2 sticky bottom-0 z-10 bg-background", children: [
17574
- threadErrorMessage && /* @__PURE__ */ jsx54("div", { className: "mb-3 rounded-lg border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive overflow-auto", children: threadErrorMessage }),
17575
- /* @__PURE__ */ jsx54(
17576
- ChatAttachments,
17577
- {
17578
- ref: attachmentsRef,
17579
- accept: acceptMimes,
17580
- maxCount: composer?.attachments?.maxCount ?? 10,
17581
- maxSize: composer?.attachments?.maxSize ?? 100 * 1024 * 1024,
17582
- retryUploadLabel: t("chat.retryUpload"),
17583
- uploadFile: uploadContextFile,
17584
- deleteFile: deleteContextFile,
17585
- getFileStatus: getContextFileStatus,
17586
- onStateChange: setAttachmentState
17587
- }
17588
- ),
17589
- references.length > 0 && /* @__PURE__ */ jsx54("div", { className: "mb-3 flex flex-wrap gap-2", children: references.map((reference) => /* @__PURE__ */ jsx54(
17590
- ReferenceChip,
17591
- {
17592
- reference,
17593
- variant: "composer",
17594
- onRemove: () => setReferences(
17595
- (previous) => previous.filter(
17596
- (item) => getReferenceKey(item) !== getReferenceKey(reference)
17597
- )
17598
- ),
17599
- removeLabel: t("composer.removeReference")
17600
- },
17601
- getReferenceKey(reference)
17602
- )) }),
17603
- detachedRunRuntimeCapabilityOptions.length > 0 && /* @__PURE__ */ jsxs37("div", { className: "mb-2 flex flex-wrap items-center gap-2", children: [
17604
- /* @__PURE__ */ jsx54("span", { className: "text-xs text-muted-foreground", children: t("composer.capabilities.runOnly") }),
17605
- detachedRunRuntimeCapabilityOptions.map((option) => /* @__PURE__ */ jsxs37(
17606
- "span",
17607
- {
17608
- className: "inline-flex max-w-full items-center gap-1 rounded-full bg-primary/10 px-2 py-0.5 text-xs font-medium text-primary",
17609
- children: [
17610
- /* @__PURE__ */ jsx54(RuntimeCapabilityIcon, { option, variant: "chip" }),
17611
- /* @__PURE__ */ jsx54("span", { className: "max-w-40 truncate", children: option.label }),
17612
- /* @__PURE__ */ jsx54(
17613
- "button",
17614
- {
17615
- type: "button",
17616
- onClick: () => removeRunRuntimeCapability(option),
17617
- className: "rounded-full p-0.5 hover:bg-primary/15",
17618
- title: t("composer.capabilities.removeRunCapability"),
17619
- "aria-label": t("composer.capabilities.removeRunCapability"),
17620
- children: /* @__PURE__ */ jsx54(X6, { size: 11 })
17621
- }
17622
- )
17623
- ]
17624
- },
17625
- `${option.type}:${option.id}`
17626
- ))
17627
- ] }),
17628
- showGoalStatus && /* @__PURE__ */ jsxs37(
17629
- "div",
17630
- {
17631
- className: cn(
17632
- "mb-2 flex min-h-10 gap-2 rounded-md border border-border bg-background px-2.5 py-2 text-xs text-foreground shadow-sm",
17633
- isGoalObjectiveExpanded ? "items-start" : "items-center"
17596
+ /* @__PURE__ */ jsxs37(
17597
+ "div",
17598
+ {
17599
+ "data-slot": "chatkit-chat-composer",
17600
+ className: "mx-auto w-full p-2 sticky bottom-0 z-10 bg-background",
17601
+ style: chatColumnStyle,
17602
+ children: [
17603
+ threadErrorMessage && /* @__PURE__ */ jsx54("div", { className: "mb-3 rounded-lg border border-destructive/30 bg-destructive/10 px-3 py-2 text-sm text-destructive overflow-auto", children: threadErrorMessage }),
17604
+ /* @__PURE__ */ jsx54(
17605
+ ChatAttachments,
17606
+ {
17607
+ ref: attachmentsRef,
17608
+ accept: acceptMimes,
17609
+ maxCount: composer?.attachments?.maxCount ?? 10,
17610
+ maxSize: composer?.attachments?.maxSize ?? 100 * 1024 * 1024,
17611
+ retryUploadLabel: t("chat.retryUpload"),
17612
+ uploadFile: uploadContextFile,
17613
+ deleteFile: deleteContextFile,
17614
+ getFileStatus: getContextFileStatus,
17615
+ onStateChange: setAttachmentState
17616
+ }
17634
17617
  ),
17635
- children: [
17636
- /* @__PURE__ */ jsx54(
17637
- Target2,
17638
- {
17639
- className: cn(
17640
- "size-4 shrink-0 text-muted-foreground",
17641
- isGoalObjectiveExpanded && "mt-1"
17618
+ references.length > 0 && /* @__PURE__ */ jsx54("div", { className: "mb-3 flex flex-wrap gap-2", children: references.map((reference) => /* @__PURE__ */ jsx54(
17619
+ ReferenceChip,
17620
+ {
17621
+ reference,
17622
+ variant: "composer",
17623
+ onRemove: () => setReferences(
17624
+ (previous) => previous.filter(
17625
+ (item) => getReferenceKey(item) !== getReferenceKey(reference)
17642
17626
  )
17643
- }
17644
- ),
17645
- /* @__PURE__ */ jsxs37("div", { className: "min-w-0 flex-1", children: [
17646
- /* @__PURE__ */ jsxs37("div", { className: "flex min-w-0 items-center gap-2", children: [
17647
- /* @__PURE__ */ jsx54("span", { className: "font-medium", children: t("chat.goal.label") }),
17648
- threadGoal && /* @__PURE__ */ jsx54("span", { className: "shrink-0 rounded-md bg-muted px-1.5 py-0.5 text-[11px] text-muted-foreground", children: t(`chat.goal.status.${threadGoal.status}`) }),
17649
- isGoalLoading && /* @__PURE__ */ jsx54(Loader29, { className: "size-3 animate-spin text-muted-foreground" })
17650
- ] }),
17651
- /* @__PURE__ */ jsx54(
17652
- "div",
17653
- {
17654
- className: cn(
17655
- "mt-0.5 text-muted-foreground",
17656
- threadGoal?.objective && !goalError && isGoalObjectiveExpanded ? "whitespace-pre-wrap break-words" : "truncate"
17657
- ),
17658
- children: goalError || threadGoal?.objective
17659
- }
17660
17627
  ),
17661
- threadGoal && /* @__PURE__ */ jsx54("div", { className: "mt-1 flex flex-wrap gap-x-3 gap-y-1 text-[11px] text-muted-foreground", children: /* @__PURE__ */ jsx54("span", { children: t("chat.goal.elapsed", {
17662
- elapsed: formatGoalElapsed(displayedGoalElapsedSeconds)
17663
- }) }) })
17664
- ] }),
17665
- threadGoal && /* @__PURE__ */ jsxs37("div", { className: "flex shrink-0 items-center gap-1", children: [
17666
- /* @__PURE__ */ jsxs37(Tooltip, { children: [
17667
- /* @__PURE__ */ jsx54(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx54(
17668
- Button,
17628
+ removeLabel: t("composer.removeReference")
17629
+ },
17630
+ getReferenceKey(reference)
17631
+ )) }),
17632
+ detachedRunRuntimeCapabilityOptions.length > 0 && /* @__PURE__ */ jsxs37("div", { className: "mb-2 flex flex-wrap items-center gap-2", children: [
17633
+ /* @__PURE__ */ jsx54("span", { className: "text-xs text-muted-foreground", children: t("composer.capabilities.runOnly") }),
17634
+ detachedRunRuntimeCapabilityOptions.map((option) => /* @__PURE__ */ jsxs37(
17635
+ "span",
17636
+ {
17637
+ className: "inline-flex max-w-full items-center gap-1 rounded-full bg-primary/10 px-2 py-0.5 text-xs font-medium text-primary",
17638
+ children: [
17639
+ /* @__PURE__ */ jsx54(RuntimeCapabilityIcon, { option, variant: "chip" }),
17640
+ /* @__PURE__ */ jsx54("span", { className: "max-w-40 truncate", children: option.label }),
17641
+ /* @__PURE__ */ jsx54(
17642
+ "button",
17643
+ {
17644
+ type: "button",
17645
+ onClick: () => removeRunRuntimeCapability(option),
17646
+ className: "rounded-full p-0.5 hover:bg-primary/15",
17647
+ title: t("composer.capabilities.removeRunCapability"),
17648
+ "aria-label": t("composer.capabilities.removeRunCapability"),
17649
+ children: /* @__PURE__ */ jsx54(X6, { size: 11 })
17650
+ }
17651
+ )
17652
+ ]
17653
+ },
17654
+ `${option.type}:${option.id}`
17655
+ ))
17656
+ ] }),
17657
+ showGoalStatus && /* @__PURE__ */ jsxs37(
17658
+ "div",
17659
+ {
17660
+ className: cn(
17661
+ "mb-2 flex min-h-10 gap-2 rounded-md border border-border bg-background px-2.5 py-2 text-xs text-foreground shadow-sm",
17662
+ isGoalObjectiveExpanded ? "items-start" : "items-center"
17663
+ ),
17664
+ children: [
17665
+ /* @__PURE__ */ jsx54(
17666
+ Target2,
17669
17667
  {
17670
- type: "button",
17671
- variant: "ghost",
17672
- size: "icon-xs",
17673
- disabled: isGoalLoading,
17674
- onClick: () => {
17675
- const prefix = "/goal edit ";
17676
- setComposerText(`${prefix}${threadGoal.objective}`);
17677
- },
17678
- children: /* @__PURE__ */ jsx54(Pencil4, { className: "size-3" })
17668
+ className: cn(
17669
+ "size-4 shrink-0 text-muted-foreground",
17670
+ isGoalObjectiveExpanded && "mt-1"
17671
+ )
17679
17672
  }
17680
- ) }),
17681
- /* @__PURE__ */ jsx54(TooltipContent, { children: t("chat.goal.edit") })
17682
- ] }),
17683
- /* @__PURE__ */ jsxs37(Tooltip, { children: [
17684
- /* @__PURE__ */ jsx54(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx54(
17685
- Button,
17686
- {
17687
- type: "button",
17688
- variant: "ghost",
17689
- size: "icon-xs",
17690
- disabled: isGoalLoading,
17691
- onClick: () => void handleGoalCommand({
17692
- args: threadGoal.status === "paused" ? "resume" : "pause",
17693
- commandSource: {
17694
- type: "slash_command",
17695
- name: "goal",
17696
- source: "runtime",
17697
- executionType: "insert_invocation"
17673
+ ),
17674
+ /* @__PURE__ */ jsxs37("div", { className: "min-w-0 flex-1", children: [
17675
+ /* @__PURE__ */ jsxs37("div", { className: "flex min-w-0 items-center gap-2", children: [
17676
+ /* @__PURE__ */ jsx54("span", { className: "font-medium", children: t("chat.goal.label") }),
17677
+ threadGoal && /* @__PURE__ */ jsx54("span", { className: "shrink-0 rounded-md bg-muted px-1.5 py-0.5 text-[11px] text-muted-foreground", children: t(`chat.goal.status.${threadGoal.status}`) }),
17678
+ isGoalLoading && /* @__PURE__ */ jsx54(Loader29, { className: "size-3 animate-spin text-muted-foreground" })
17679
+ ] }),
17680
+ /* @__PURE__ */ jsx54(
17681
+ "div",
17682
+ {
17683
+ className: cn(
17684
+ "mt-0.5 text-muted-foreground",
17685
+ threadGoal?.objective && !goalError && isGoalObjectiveExpanded ? "whitespace-pre-wrap break-words" : "truncate"
17686
+ ),
17687
+ children: goalError || threadGoal?.objective
17688
+ }
17689
+ ),
17690
+ threadGoal && /* @__PURE__ */ jsx54("div", { className: "mt-1 flex flex-wrap gap-x-3 gap-y-1 text-[11px] text-muted-foreground", children: /* @__PURE__ */ jsx54("span", { children: t("chat.goal.elapsed", {
17691
+ elapsed: formatGoalElapsed(displayedGoalElapsedSeconds)
17692
+ }) }) })
17693
+ ] }),
17694
+ threadGoal && /* @__PURE__ */ jsxs37("div", { className: "flex shrink-0 items-center gap-1", children: [
17695
+ /* @__PURE__ */ jsxs37(Tooltip, { children: [
17696
+ /* @__PURE__ */ jsx54(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx54(
17697
+ Button,
17698
+ {
17699
+ type: "button",
17700
+ variant: "ghost",
17701
+ size: "icon-xs",
17702
+ disabled: isGoalLoading,
17703
+ onClick: () => {
17704
+ const prefix = "/goal edit ";
17705
+ setComposerText(`${prefix}${threadGoal.objective}`);
17706
+ },
17707
+ children: /* @__PURE__ */ jsx54(Pencil4, { className: "size-3" })
17698
17708
  }
17699
- }),
17700
- children: threadGoal.status === "paused" ? /* @__PURE__ */ jsx54(Play, { className: "size-3" }) : /* @__PURE__ */ jsx54(Pause, { className: "size-3" })
17701
- }
17702
- ) }),
17703
- /* @__PURE__ */ jsx54(TooltipContent, { children: threadGoal.status === "paused" ? t("chat.goal.resume") : t("chat.goal.pause") })
17704
- ] }),
17705
- /* @__PURE__ */ jsxs37(Tooltip, { children: [
17706
- /* @__PURE__ */ jsx54(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx54(
17707
- Button,
17708
- {
17709
- type: "button",
17710
- variant: "ghost",
17711
- size: "icon-xs",
17712
- disabled: isGoalLoading,
17713
- onClick: () => void handleGoalCommand({
17714
- args: "clear",
17715
- commandSource: {
17716
- type: "slash_command",
17717
- name: "goal",
17718
- source: "runtime",
17719
- executionType: "insert_invocation"
17709
+ ) }),
17710
+ /* @__PURE__ */ jsx54(TooltipContent, { children: t("chat.goal.edit") })
17711
+ ] }),
17712
+ /* @__PURE__ */ jsxs37(Tooltip, { children: [
17713
+ /* @__PURE__ */ jsx54(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx54(
17714
+ Button,
17715
+ {
17716
+ type: "button",
17717
+ variant: "ghost",
17718
+ size: "icon-xs",
17719
+ disabled: isGoalLoading,
17720
+ onClick: () => void handleGoalCommand({
17721
+ args: threadGoal.status === "paused" ? "resume" : "pause",
17722
+ commandSource: {
17723
+ type: "slash_command",
17724
+ name: "goal",
17725
+ source: "runtime",
17726
+ executionType: "insert_invocation"
17727
+ }
17728
+ }),
17729
+ children: threadGoal.status === "paused" ? /* @__PURE__ */ jsx54(Play, { className: "size-3" }) : /* @__PURE__ */ jsx54(Pause, { className: "size-3" })
17720
17730
  }
17721
- }),
17722
- children: /* @__PURE__ */ jsx54(Trash23, { className: "size-3" })
17723
- }
17724
- ) }),
17725
- /* @__PURE__ */ jsx54(TooltipContent, { children: t("chat.goal.clear") })
17726
- ] }),
17727
- threadGoal.objective && !goalError && /* @__PURE__ */ jsxs37(Tooltip, { children: [
17728
- /* @__PURE__ */ jsx54(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx54(
17729
- Button,
17730
- {
17731
- type: "button",
17732
- variant: "ghost",
17733
- size: "icon-xs",
17734
- "aria-expanded": isGoalObjectiveExpanded,
17735
- "aria-label": isGoalObjectiveExpanded ? t("chat.goal.collapseObjective") : t("chat.goal.expandObjective"),
17736
- onClick: () => setIsGoalObjectiveExpanded((expanded) => !expanded),
17737
- children: /* @__PURE__ */ jsx54(
17738
- ChevronDown5,
17731
+ ) }),
17732
+ /* @__PURE__ */ jsx54(TooltipContent, { children: threadGoal.status === "paused" ? t("chat.goal.resume") : t("chat.goal.pause") })
17733
+ ] }),
17734
+ /* @__PURE__ */ jsxs37(Tooltip, { children: [
17735
+ /* @__PURE__ */ jsx54(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx54(
17736
+ Button,
17739
17737
  {
17740
- className: cn(
17741
- "size-3 transition-transform",
17742
- isGoalObjectiveExpanded && "rotate-180"
17743
- )
17738
+ type: "button",
17739
+ variant: "ghost",
17740
+ size: "icon-xs",
17741
+ disabled: isGoalLoading,
17742
+ onClick: () => void handleGoalCommand({
17743
+ args: "clear",
17744
+ commandSource: {
17745
+ type: "slash_command",
17746
+ name: "goal",
17747
+ source: "runtime",
17748
+ executionType: "insert_invocation"
17749
+ }
17750
+ }),
17751
+ children: /* @__PURE__ */ jsx54(Trash23, { className: "size-3" })
17744
17752
  }
17745
- )
17746
- }
17747
- ) }),
17748
- /* @__PURE__ */ jsx54(TooltipContent, { children: isGoalObjectiveExpanded ? t("chat.goal.collapseObjective") : t("chat.goal.expandObjective") })
17749
- ] })
17750
- ] })
17751
- ]
17752
- }
17753
- ),
17754
- /* @__PURE__ */ jsx54(
17755
- PendingRuntimeServices,
17756
- {
17757
- state: stream.runtimeActivities.sandboxServices,
17758
- onStopService: (serviceId) => stream.stopRuntimeActivityItem("sandbox-services", serviceId),
17759
- attachToComposer: !hasPendingTodos && !hasPendingFollowUps,
17760
- className: hasPendingTodos || hasPendingFollowUps ? "mb-2" : void 0
17761
- }
17762
- ),
17763
- /* @__PURE__ */ jsx54(
17764
- PendingTodos,
17765
- {
17766
- snapshot: stream.todos,
17767
- attachToComposer: !hasPendingFollowUps,
17768
- className: hasPendingFollowUps ? "mb-2" : void 0
17769
- }
17770
- ),
17771
- /* @__PURE__ */ jsx54(
17772
- PendingFollowUps,
17773
- {
17774
- items: pendingFollowUps,
17775
- isLoading: stream.isLoading,
17776
- onPromoteToSteer: (id) => stream.promotePendingFollowUpToSteer(id),
17777
- canSendNow: stream.canSendPendingFollowUpNow,
17778
- onSendNow: (id) => stream.sendPendingFollowUpNow(id),
17779
- onEdit: handleEditPendingFollowUp,
17780
- onRemove: stream.removePendingFollowUp,
17781
- attachToComposer: true
17782
- }
17783
- ),
17784
- /* @__PURE__ */ jsx54(
17785
- RequestUserInputPanel,
17786
- {
17787
- request: stream.pendingRequestUserInput,
17788
- onSubmit: stream.submitRequestUserInput,
17789
- onDismiss: stream.stop,
17790
- attachToComposer: true
17791
- }
17792
- ),
17793
- /* @__PURE__ */ jsx54(
17794
- HITLApprovalPanel,
17795
- {
17796
- request: stream.pendingHITLRequest,
17797
- onSubmit: stream.submitHITLDecision,
17798
- onDismiss: stream.stop,
17799
- attachToComposer: true
17800
- }
17801
- ),
17802
- runtimeCapabilityPalette && /* @__PURE__ */ jsx54(
17803
- SlashPalette,
17804
- {
17805
- palette: runtimeCapabilityPalette,
17806
- options: slashPaletteOptions,
17807
- paletteRef: slashPaletteRef,
17808
- optionRefs: slashPaletteOptionRefs,
17809
- panelRoundedClass: getPanelRoundedClass(theme.radius),
17810
- itemRoundedClass: getMenuItemRoundedClass(theme.radius),
17811
- emptyLabel: slashPaletteEmptyLabel,
17812
- capabilityEmptyLabels: slashPaletteCapabilityEmptyLabels,
17813
- onSelect: selectSlashPaletteOption
17814
- }
17815
- ),
17816
- /* @__PURE__ */ jsx54("form", { className: "flex items-end", onSubmit: handleSubmit, children: /* @__PURE__ */ jsxs37(
17817
- "div",
17818
- {
17819
- "data-slot": "composer-input-shell",
17820
- "data-layout": isComposerStacked ? "stacked" : "inline",
17821
- className: cn(
17822
- "relative flex flex-1 overflow-hidden",
17823
- "bg-background border border-border shadow-sm",
17824
- isComposerStacked ? "min-h-[5.5rem] px-1.5 pt-1.5 pb-12" : "min-h-12 px-1.5 py-1",
17825
- "focus-within:border-muted-foreground/30 focus-within:shadow-md",
17826
- "transition-[min-height,padding,border-radius,box-shadow,border-color] duration-300 ease-[cubic-bezier(0.2,0.8,0.2,1)]",
17827
- composerInputRoundedClass
17828
- ),
17829
- children: [
17830
- /* @__PURE__ */ jsx54(
17831
- "div",
17832
- {
17833
- ref: composerInputRef,
17834
- role: "textbox",
17835
- "aria-multiline": "true",
17836
- "aria-disabled": missingConfig || isHistoryLoading || hasPendingInteractiveRequest,
17837
- contentEditable: !(missingConfig || isHistoryLoading || hasPendingInteractiveRequest),
17838
- suppressContentEditableWarning: true,
17839
- onInput: handleComposerInput,
17840
- onCompositionEnd: handleComposerCompositionEnd,
17841
- onSelect: handleComposerSelect,
17842
- onPaste: handleComposerPaste,
17843
- onKeyDown: handleComposerKeyDown,
17844
- "data-placeholder": inputPlaceholder,
17845
- className: cn(
17846
- "min-h-8 max-h-32 w-full overflow-hidden whitespace-pre-wrap break-words bg-transparent text-sm leading-5 text-foreground outline-none transition-[padding,min-height] duration-300 ease-[cubic-bezier(0.2,0.8,0.2,1)]",
17847
- isComposerStacked ? "px-2 py-1.5" : "py-1 pr-11 pl-11 mt-1",
17848
- "empty:before:pointer-events-none empty:before:text-muted-foreground empty:before:content-[attr(data-placeholder)]",
17849
- (missingConfig || isHistoryLoading || hasPendingInteractiveRequest) && "cursor-not-allowed opacity-50"
17850
- ),
17851
- children: renderedComposerParts.map(
17852
- (part, index) => part.type === "text" ? /* @__PURE__ */ jsx54(React49.Fragment, { children: part.text }, `text-${index}`) : /* @__PURE__ */ jsxs37(
17853
- "span",
17854
- {
17855
- "data-composer-capability-key": part.key,
17856
- "data-capability-type": part.capability.type,
17857
- "data-capability-id": part.capability.id,
17858
- contentEditable: false,
17859
- className: "mx-0.5 inline-flex max-w-[14rem] select-none items-center gap-1 text-sm font-semibold text-primary align-baseline",
17860
- children: [
17861
- /* @__PURE__ */ jsx54(
17862
- RuntimeCapabilityIcon,
17753
+ ) }),
17754
+ /* @__PURE__ */ jsx54(TooltipContent, { children: t("chat.goal.clear") })
17755
+ ] }),
17756
+ threadGoal.objective && !goalError && /* @__PURE__ */ jsxs37(Tooltip, { children: [
17757
+ /* @__PURE__ */ jsx54(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx54(
17758
+ Button,
17759
+ {
17760
+ type: "button",
17761
+ variant: "ghost",
17762
+ size: "icon-xs",
17763
+ "aria-expanded": isGoalObjectiveExpanded,
17764
+ "aria-label": isGoalObjectiveExpanded ? t("chat.goal.collapseObjective") : t("chat.goal.expandObjective"),
17765
+ onClick: () => setIsGoalObjectiveExpanded((expanded) => !expanded),
17766
+ children: /* @__PURE__ */ jsx54(
17767
+ ChevronDown5,
17863
17768
  {
17864
- option: part.capability,
17865
- variant: "chip"
17769
+ className: cn(
17770
+ "size-3 transition-transform",
17771
+ isGoalObjectiveExpanded && "rotate-180"
17772
+ )
17866
17773
  }
17867
- ),
17868
- /* @__PURE__ */ jsx54("span", { className: "truncate", children: part.capability.label })
17869
- ]
17870
- },
17871
- part.key
17872
- )
17873
- )
17874
- },
17875
- composerDomVersion
17876
- ),
17877
- /* @__PURE__ */ jsxs37(
17878
- "div",
17879
- {
17880
- "data-slot": "composer-action-bar",
17881
- className: "pointer-events-none absolute inset-x-1.5 bottom-1 flex min-h-10 items-center justify-between gap-2",
17882
- children: [
17883
- /* @__PURE__ */ jsxs37("div", { className: "pointer-events-none flex min-w-0 flex-1 items-center gap-1.5", children: [
17884
- /* @__PURE__ */ jsx54("div", { className: "pointer-events-auto flex shrink-0 items-center gap-1.5", children: /* @__PURE__ */ jsx54(
17885
- ComposerMenu,
17886
- {
17887
- composer,
17888
- onAttachmentClick: handleAttachmentClick,
17889
- onToolSelect: handleToolSelect,
17890
- selectedTool,
17891
- planModeEnabled,
17892
- onPlanModeChange: setPlanModeEnabled,
17893
- goalCommandAvailable,
17894
- goalPanelOpen: isGoalModeOpen,
17895
- onGoalPanelOpenChange: handleGoalPanelOpenChange,
17896
- runtimeCapabilities: runtimeCapabilitiesReady ? runtimeCapabilities : null,
17897
- selectedRuntimeCapabilities: effectiveSessionRuntimeCapabilities,
17898
- onRuntimeCapabilityToggle: handleSessionRuntimeCapabilityToggle,
17899
- disabled: missingConfig || isHistoryLoading || hasPendingInteractiveRequest
17774
+ )
17900
17775
  }
17901
17776
  ) }),
17902
- selectedTool && /* @__PURE__ */ jsxs37("span", { className: "pointer-events-auto inline-flex h-8 min-w-0 max-w-[14rem] shrink items-center gap-1.5 rounded-full bg-primary/10 px-2 text-xs font-medium text-primary transition-all duration-200", children: [
17903
- /* @__PURE__ */ jsx54("span", { className: "truncate", children: selectedTool.shortLabel ?? selectedTool.label }),
17904
- /* @__PURE__ */ jsx54(
17905
- "button",
17777
+ /* @__PURE__ */ jsx54(TooltipContent, { children: isGoalObjectiveExpanded ? t("chat.goal.collapseObjective") : t("chat.goal.expandObjective") })
17778
+ ] })
17779
+ ] })
17780
+ ]
17781
+ }
17782
+ ),
17783
+ /* @__PURE__ */ jsx54(
17784
+ PendingRuntimeServices,
17785
+ {
17786
+ state: stream.runtimeActivities.sandboxServices,
17787
+ onStopService: (serviceId) => stream.stopRuntimeActivityItem("sandbox-services", serviceId),
17788
+ attachToComposer: !hasPendingTodos && !hasPendingFollowUps,
17789
+ className: hasPendingTodos || hasPendingFollowUps ? "mb-2" : void 0
17790
+ }
17791
+ ),
17792
+ /* @__PURE__ */ jsx54(
17793
+ PendingTodos,
17794
+ {
17795
+ snapshot: stream.todos,
17796
+ attachToComposer: !hasPendingFollowUps,
17797
+ className: hasPendingFollowUps ? "mb-2" : void 0
17798
+ }
17799
+ ),
17800
+ /* @__PURE__ */ jsx54(
17801
+ PendingFollowUps,
17802
+ {
17803
+ items: pendingFollowUps,
17804
+ isLoading: stream.isLoading,
17805
+ onPromoteToSteer: (id) => stream.promotePendingFollowUpToSteer(id),
17806
+ canSendNow: stream.canSendPendingFollowUpNow,
17807
+ onSendNow: (id) => stream.sendPendingFollowUpNow(id),
17808
+ onEdit: handleEditPendingFollowUp,
17809
+ onRemove: stream.removePendingFollowUp,
17810
+ attachToComposer: true
17811
+ }
17812
+ ),
17813
+ /* @__PURE__ */ jsx54(
17814
+ RequestUserInputPanel,
17815
+ {
17816
+ request: stream.pendingRequestUserInput,
17817
+ onSubmit: stream.submitRequestUserInput,
17818
+ onDismiss: stream.stop,
17819
+ attachToComposer: true
17820
+ }
17821
+ ),
17822
+ /* @__PURE__ */ jsx54(
17823
+ HITLApprovalPanel,
17824
+ {
17825
+ request: stream.pendingHITLRequest,
17826
+ onSubmit: stream.submitHITLDecision,
17827
+ onDismiss: stream.stop,
17828
+ attachToComposer: true
17829
+ }
17830
+ ),
17831
+ runtimeCapabilityPalette && /* @__PURE__ */ jsx54(
17832
+ SlashPalette,
17833
+ {
17834
+ palette: runtimeCapabilityPalette,
17835
+ options: slashPaletteOptions,
17836
+ paletteRef: slashPaletteRef,
17837
+ optionRefs: slashPaletteOptionRefs,
17838
+ panelRoundedClass: getPanelRoundedClass(theme.radius),
17839
+ itemRoundedClass: getMenuItemRoundedClass(theme.radius),
17840
+ emptyLabel: slashPaletteEmptyLabel,
17841
+ capabilityEmptyLabels: slashPaletteCapabilityEmptyLabels,
17842
+ onSelect: selectSlashPaletteOption
17843
+ }
17844
+ ),
17845
+ /* @__PURE__ */ jsx54("form", { className: "flex items-end", onSubmit: handleSubmit, children: /* @__PURE__ */ jsxs37(
17846
+ "div",
17847
+ {
17848
+ "data-slot": "composer-input-shell",
17849
+ "data-layout": isComposerStacked ? "stacked" : "inline",
17850
+ className: cn(
17851
+ "relative flex flex-1 overflow-hidden",
17852
+ "bg-background border border-border shadow-sm",
17853
+ isComposerStacked ? "min-h-[5.5rem] px-1.5 pt-1.5 pb-12" : "min-h-12 px-1.5 py-1",
17854
+ "focus-within:border-muted-foreground/30 focus-within:shadow-md",
17855
+ "transition-[min-height,padding,border-radius,box-shadow,border-color] duration-300 ease-[cubic-bezier(0.2,0.8,0.2,1)]",
17856
+ composerInputRoundedClass
17857
+ ),
17858
+ children: [
17859
+ /* @__PURE__ */ jsx54(
17860
+ "div",
17861
+ {
17862
+ ref: composerInputRef,
17863
+ role: "textbox",
17864
+ "aria-multiline": "true",
17865
+ "aria-disabled": missingConfig || isHistoryLoading || hasPendingInteractiveRequest,
17866
+ contentEditable: !(missingConfig || isHistoryLoading || hasPendingInteractiveRequest),
17867
+ suppressContentEditableWarning: true,
17868
+ onInput: handleComposerInput,
17869
+ onCompositionEnd: handleComposerCompositionEnd,
17870
+ onSelect: handleComposerSelect,
17871
+ onPaste: handleComposerPaste,
17872
+ onKeyDown: handleComposerKeyDown,
17873
+ "data-placeholder": inputPlaceholder,
17874
+ className: cn(
17875
+ "min-h-8 max-h-32 w-full overflow-hidden whitespace-pre-wrap break-words bg-transparent text-sm leading-5 text-foreground outline-none transition-[padding,min-height] duration-300 ease-[cubic-bezier(0.2,0.8,0.2,1)]",
17876
+ isComposerStacked ? "px-2 py-1.5" : "py-1 pr-11 pl-11 mt-1",
17877
+ "empty:before:pointer-events-none empty:before:text-muted-foreground empty:before:content-[attr(data-placeholder)]",
17878
+ (missingConfig || isHistoryLoading || hasPendingInteractiveRequest) && "cursor-not-allowed opacity-50"
17879
+ ),
17880
+ children: renderedComposerParts.map(
17881
+ (part, index) => part.type === "text" ? /* @__PURE__ */ jsx54(React49.Fragment, { children: part.text }, `text-${index}`) : /* @__PURE__ */ jsxs37(
17882
+ "span",
17906
17883
  {
17907
- type: "button",
17908
- onClick: () => setSelectedTool(null),
17909
- className: "shrink-0 rounded-full p-0.5 text-primary/70 hover:bg-primary/10 hover:text-primary",
17910
- children: /* @__PURE__ */ jsx54(X6, { size: 12 })
17911
- }
17884
+ "data-composer-capability-key": part.key,
17885
+ "data-capability-type": part.capability.type,
17886
+ "data-capability-id": part.capability.id,
17887
+ contentEditable: false,
17888
+ className: "mx-0.5 inline-flex max-w-[14rem] select-none items-center gap-1 text-sm font-semibold text-primary align-baseline",
17889
+ children: [
17890
+ /* @__PURE__ */ jsx54(
17891
+ RuntimeCapabilityIcon,
17892
+ {
17893
+ option: part.capability,
17894
+ variant: "chip"
17895
+ }
17896
+ ),
17897
+ /* @__PURE__ */ jsx54("span", { className: "truncate", children: part.capability.label })
17898
+ ]
17899
+ },
17900
+ part.key
17912
17901
  )
17913
- ] })
17914
- ] }),
17915
- /* @__PURE__ */ jsx54("div", { className: "pointer-events-auto shrink-0", children: /* @__PURE__ */ jsx54(
17916
- SendButton,
17917
- {
17918
- disabled: isSendDisabled,
17919
- isLoading: stream.isLoading,
17920
- showStop: stream.isLoading && (!trimmedDraft || hasPendingInteractiveRequest),
17921
- onStop: () => stream.stop(),
17922
- stopLabel: t("chat.stop"),
17923
- sendLabel: t("chat.send"),
17924
- shortcuts: stream.isLoading && trimmedDraft ? [
17902
+ )
17903
+ },
17904
+ composerDomVersion
17905
+ ),
17906
+ /* @__PURE__ */ jsxs37(
17907
+ "div",
17908
+ {
17909
+ "data-slot": "composer-action-bar",
17910
+ className: "pointer-events-none absolute inset-x-1.5 bottom-1 flex min-h-10 items-center justify-between gap-2",
17911
+ children: [
17912
+ /* @__PURE__ */ jsxs37("div", { className: "pointer-events-none flex min-w-0 flex-1 items-center gap-1.5", children: [
17913
+ /* @__PURE__ */ jsx54("div", { className: "pointer-events-auto flex shrink-0 items-center gap-1.5", children: /* @__PURE__ */ jsx54(
17914
+ ComposerMenu,
17915
+ {
17916
+ composer,
17917
+ onAttachmentClick: handleAttachmentClick,
17918
+ onToolSelect: handleToolSelect,
17919
+ selectedTool,
17920
+ planModeEnabled,
17921
+ onPlanModeChange: setPlanModeEnabled,
17922
+ goalCommandAvailable,
17923
+ goalPanelOpen: isGoalModeOpen,
17924
+ onGoalPanelOpenChange: handleGoalPanelOpenChange,
17925
+ runtimeCapabilities: runtimeCapabilitiesReady ? runtimeCapabilities : null,
17926
+ selectedRuntimeCapabilities: effectiveSessionRuntimeCapabilities,
17927
+ onRuntimeCapabilityToggle: handleSessionRuntimeCapabilityToggle,
17928
+ disabled: missingConfig || isHistoryLoading || hasPendingInteractiveRequest
17929
+ }
17930
+ ) }),
17931
+ selectedTool && /* @__PURE__ */ jsxs37("span", { className: "pointer-events-auto inline-flex h-8 min-w-0 max-w-[14rem] shrink items-center gap-1.5 rounded-full bg-primary/10 px-2 text-xs font-medium text-primary transition-all duration-200", children: [
17932
+ /* @__PURE__ */ jsx54("span", { className: "truncate", children: selectedTool.shortLabel ?? selectedTool.label }),
17933
+ /* @__PURE__ */ jsx54(
17934
+ "button",
17935
+ {
17936
+ type: "button",
17937
+ onClick: () => setSelectedTool(null),
17938
+ className: "shrink-0 rounded-full p-0.5 text-primary/70 hover:bg-primary/10 hover:text-primary",
17939
+ children: /* @__PURE__ */ jsx54(X6, { size: 12 })
17940
+ }
17941
+ )
17942
+ ] })
17943
+ ] }),
17944
+ /* @__PURE__ */ jsx54("div", { className: "pointer-events-auto shrink-0", children: /* @__PURE__ */ jsx54(
17945
+ SendButton,
17925
17946
  {
17926
- label: t("chat.followUps.queue"),
17927
- keys: "Enter"
17947
+ disabled: isSendDisabled,
17948
+ isLoading: stream.isLoading,
17949
+ showStop: stream.isLoading && (!trimmedDraft || hasPendingInteractiveRequest),
17950
+ onStop: () => stream.stop(),
17951
+ stopLabel: t("chat.stop"),
17952
+ sendLabel: t("chat.send"),
17953
+ shortcuts: stream.isLoading && trimmedDraft ? [
17954
+ {
17955
+ label: t("chat.followUps.queue"),
17956
+ keys: "Enter"
17957
+ }
17958
+ ] : void 0
17928
17959
  }
17929
- ] : void 0
17930
- }
17931
- ) })
17932
- ]
17933
- }
17934
- )
17935
- ]
17936
- }
17937
- ) }),
17938
- disclaimer?.text && /* @__PURE__ */ jsx54(
17939
- "p",
17940
- {
17941
- className: cn(
17942
- "mt-2 text-center text-xs",
17943
- disclaimer.highContrast ? "text-foreground" : "text-muted-foreground"
17960
+ ) })
17961
+ ]
17962
+ }
17963
+ )
17964
+ ]
17965
+ }
17966
+ ) }),
17967
+ disclaimer?.text && /* @__PURE__ */ jsx54(
17968
+ "p",
17969
+ {
17970
+ className: cn(
17971
+ "mt-2 text-center text-xs",
17972
+ disclaimer.highContrast ? "text-foreground" : "text-muted-foreground"
17973
+ ),
17974
+ children: disclaimer.text
17975
+ }
17944
17976
  ),
17945
- children: disclaimer.text
17946
- }
17947
- ),
17948
- /* @__PURE__ */ jsxs37("div", { className: "mt-2 flex items-center justify-center gap-2 text-xs text-muted-foreground", children: [
17949
- /* @__PURE__ */ jsx54("span", { children: t("chat.poweredBy") }),
17950
- /* @__PURE__ */ jsx54(ContextUsageIndicator, { className: "absolute right-4" })
17951
- ] })
17952
- ] }),
17977
+ /* @__PURE__ */ jsxs37("div", { className: "mt-2 flex items-center justify-center gap-2 text-xs text-muted-foreground", children: [
17978
+ /* @__PURE__ */ jsx54("span", { children: t("chat.poweredBy") }),
17979
+ /* @__PURE__ */ jsx54(ContextUsageIndicator, { className: "absolute right-4" })
17980
+ ] })
17981
+ ]
17982
+ }
17983
+ ),
17953
17984
  /* @__PURE__ */ jsx54(
17954
17985
  SettingsSheet,
17955
17986
  {