@xpert-ai/chatkit-ui 0.4.2 → 0.4.4
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.
- package/dist/app/assets/{_baseUniq-DhcCNE2L.js → _baseUniq-TMxiHmEt.js} +1 -1
- package/dist/app/assets/{abap-_IjCfpBS.js → abap-Ck-A--kS.js} +1 -1
- package/dist/app/assets/{abnf-CekkQUy9.js → abnf-ETC1zUJ3.js} +1 -1
- package/dist/app/assets/{actionscript-C9XSSYhb.js → actionscript-D--OP--K.js} +1 -1
- package/dist/app/assets/{ada-4vLfjsZX.js → ada-CDetVdj6.js} +1 -1
- package/dist/app/assets/{agda-CER1MQer.js → agda-BMJYMk52.js} +1 -1
- package/dist/app/assets/{al-DVApc0ak.js → al-Db9ENOd3.js} +1 -1
- package/dist/app/assets/{antlr4-CTOuYhug.js → antlr4-BW8d6D2N.js} +1 -1
- package/dist/app/assets/{apacheconf-Cx3fh3do.js → apacheconf-BQPffoZs.js} +1 -1
- package/dist/app/assets/{apex-CQChIoUK.js → apex-BDhwAKiF.js} +1 -1
- package/dist/app/assets/{apl-rqEDU7gi.js → apl-BS9tU3lX.js} +1 -1
- package/dist/app/assets/{applescript-SibyzsWq.js → applescript-CAuteGTO.js} +1 -1
- package/dist/app/assets/{aql-D5s-oH6r.js → aql-DlV09MnJ.js} +1 -1
- package/dist/app/assets/{arc-CqOJzRv3.js → arc-D3dvEiRa.js} +1 -1
- package/dist/app/assets/{architectureDiagram-Q4EWVU46-Sc4cdTS9.js → architectureDiagram-Q4EWVU46-BJNOb03u.js} +1 -1
- package/dist/app/assets/{arduino-CAvcLJph.js → arduino-Fwp0Gqjn.js} +1 -1
- package/dist/app/assets/{arff-DXHd3IWb.js → arff-D1ze2M6G.js} +1 -1
- package/dist/app/assets/{asciidoc-D1qamWMF.js → asciidoc-DuSG0rE-.js} +1 -1
- package/dist/app/assets/{asm6502-CLD-Uamm.js → asm6502-DiyS793s.js} +1 -1
- package/dist/app/assets/{asmatmel-CTTTETEh.js → asmatmel-BgPjOvKk.js} +1 -1
- package/dist/app/assets/{aspnet-gANAeiiI.js → aspnet-DS6cVlO8.js} +1 -1
- package/dist/app/assets/{autohotkey-DZzEICDN.js → autohotkey-BhOfSyb7.js} +1 -1
- package/dist/app/assets/{autoit-DU2qU7yP.js → autoit-qharvHka.js} +1 -1
- package/dist/app/assets/{avisynth-CW7VMs_l.js → avisynth-DuYY8hq9.js} +1 -1
- package/dist/app/assets/{avro-idl-m7lwvLZF.js → avro-idl-CVlpaCRn.js} +1 -1
- package/dist/app/assets/{bash-DhNYFOgQ.js → bash-CRdlMYvM.js} +1 -1
- package/dist/app/assets/{basic-CBgclVFD.js → basic-DupsYiAg.js} +1 -1
- package/dist/app/assets/{batch-_m1D2SzT.js → batch-SuJmV6In.js} +1 -1
- package/dist/app/assets/{bbcode-BuWXKUuN.js → bbcode-BS6lj-GP.js} +1 -1
- package/dist/app/assets/{bicep-CNNhU7qf.js → bicep-rkAfEJ7t.js} +1 -1
- package/dist/app/assets/{birb-Df15PWNN.js → birb-iXd4GkHj.js} +1 -1
- package/dist/app/assets/{bison-pTGuYt5R.js → bison-DXF-YZke.js} +1 -1
- package/dist/app/assets/{blockDiagram-DXYQGD6D-COmjjfPf.js → blockDiagram-DXYQGD6D-FJZrsqQ2.js} +1 -1
- package/dist/app/assets/{bnf-5rjVHg1A.js → bnf-H9nHTWOC.js} +1 -1
- package/dist/app/assets/{brainfuck-2M-a_fzt.js → brainfuck-6HhEdVzI.js} +1 -1
- package/dist/app/assets/{brightscript-BUcx3Uan.js → brightscript-B00Ory-q.js} +1 -1
- package/dist/app/assets/{bro-BtT_dXGd.js → bro-BguB8PwR.js} +1 -1
- package/dist/app/assets/{bsl-C1h-9jbB.js → bsl-CnoKMnh1.js} +1 -1
- package/dist/app/assets/{c-Cn84DM0m.js → c-BLZaQSul.js} +1 -1
- package/dist/app/assets/{c4Diagram-AHTNJAMY-BE1kXuuS.js → c4Diagram-AHTNJAMY-aFMpHsr7.js} +1 -1
- package/dist/app/assets/{cfscript-2H4o-JIw.js → cfscript-Dj3sn5qb.js} +1 -1
- package/dist/app/assets/{chaiscript-C1Bjxsfh.js → chaiscript-B2Li8_Xi.js} +1 -1
- package/dist/app/assets/channel-DYgM_zKD.js +1 -0
- package/dist/app/assets/{chunk-4BX2VUAB-DZ_C_iKC.js → chunk-4BX2VUAB-mNkmACgc.js} +1 -1
- package/dist/app/assets/{chunk-4TB4RGXK-DApXi72F.js → chunk-4TB4RGXK-UImL1Qph.js} +1 -1
- package/dist/app/assets/{chunk-55IACEB6-Dk5pcDDA.js → chunk-55IACEB6-BrbuP7ej.js} +1 -1
- package/dist/app/assets/{chunk-EDXVE4YY-C3768OfQ.js → chunk-EDXVE4YY-nIuwelfS.js} +1 -1
- package/dist/app/assets/{chunk-FMBD7UC4-BvglBVER.js → chunk-FMBD7UC4-BcWvK3ua.js} +1 -1
- package/dist/app/assets/{chunk-OYMX7WX6-DMLEPpZh.js → chunk-OYMX7WX6-NFSrvN2K.js} +1 -1
- package/dist/app/assets/{chunk-QZHKN3VN-_kOwjXni.js → chunk-QZHKN3VN-A-S7sUFp.js} +1 -1
- package/dist/app/assets/{chunk-YZCP3GAM-BofXuboV.js → chunk-YZCP3GAM-NsOgLJm6.js} +1 -1
- package/dist/app/assets/{cil-DHyrqdX_.js → cil-BSYlNEvs.js} +1 -1
- package/dist/app/assets/classDiagram-6PBFFD2Q-G-7-i5lY.js +1 -0
- package/dist/app/assets/classDiagram-v2-HSJHXN6E-G-7-i5lY.js +1 -0
- package/dist/app/assets/{clike-Bf02ej9F.js → clike-DaoHXpYs.js} +1 -1
- package/dist/app/assets/{clojure-LoSvb9pa.js → clojure-CtOotL0u.js} +1 -1
- package/dist/app/assets/clone-4Dzzc8I_.js +1 -0
- package/dist/app/assets/{cmake-BkWc04wT.js → cmake-BSiUfJHf.js} +1 -1
- package/dist/app/assets/{cobol-_nZTdMgt.js → cobol-Blq62nOS.js} +1 -1
- package/dist/app/assets/{coffeescript-DT5ySztk.js → coffeescript-wfCQi2dy.js} +1 -1
- package/dist/app/assets/{concurnas-DSAYXuEZ.js → concurnas-BptxXLM6.js} +1 -1
- package/dist/app/assets/{coq-CrgIrANd.js → coq-m0xx6QVk.js} +1 -1
- package/dist/app/assets/{core-C27f_Wct.js → core-BlK5liku.js} +1 -1
- package/dist/app/assets/{cose-bilkent-S5V4N54A-BqnGiR9q.js → cose-bilkent-S5V4N54A-BVlJJjjG.js} +1 -1
- package/dist/app/assets/{cpp-DNsF-Kz_.js → cpp-DrIwjXt4.js} +1 -1
- package/dist/app/assets/{crystal-yRp-Ck4J.js → crystal-B2OownN0.js} +1 -1
- package/dist/app/assets/{csharp-Dh8DUZOE.js → csharp-C8hT9u31.js} +1 -1
- package/dist/app/assets/{cshtml-CuaqD5vI.js → cshtml-Bqk4UcKH.js} +1 -1
- package/dist/app/assets/{csp-TuU29N7c.js → csp-B23dqIVk.js} +1 -1
- package/dist/app/assets/{css-DfThiGDT.js → css-C7bAsgCD.js} +1 -1
- package/dist/app/assets/{css-extras-DN46Xx9D.js → css-extras-BxAj6HIM.js} +1 -1
- package/dist/app/assets/{csv-BEpZMNNd.js → csv-CITuvdZl.js} +1 -1
- package/dist/app/assets/{cypher-CXuYSM3m.js → cypher-BdWaNEPh.js} +1 -1
- package/dist/app/assets/{d-DBLRM2HM.js → d-DWzNEoy_.js} +1 -1
- package/dist/app/assets/{dagre-KV5264BT-YbfphbKk.js → dagre-KV5264BT-Cwq32s4A.js} +1 -1
- package/dist/app/assets/{dart-ClooZxtE.js → dart-Cct8-2Yi.js} +1 -1
- package/dist/app/assets/{dataweave-iLNtOM4o.js → dataweave-sykaGSqb.js} +1 -1
- package/dist/app/assets/{dax-OQ4SKQyZ.js → dax-CZ69LQsy.js} +1 -1
- package/dist/app/assets/{dhall-BcEs9_Il.js → dhall-DThgzXZx.js} +1 -1
- package/dist/app/assets/{diagram-5BDNPKRD-CrSfz4ol.js → diagram-5BDNPKRD-BfciTHMz.js} +1 -1
- package/dist/app/assets/{diagram-G4DWMVQ6-COOuGquM.js → diagram-G4DWMVQ6-Q37x31io.js} +1 -1
- package/dist/app/assets/{diagram-MMDJMWI5-CLudV92t.js → diagram-MMDJMWI5-Cyyx6ZUw.js} +1 -1
- package/dist/app/assets/{diagram-TYMM5635-7hK6dmHH.js → diagram-TYMM5635-BUh40K6u.js} +1 -1
- package/dist/app/assets/{diff-C3sAjilP.js → diff-UDoi3FBV.js} +1 -1
- package/dist/app/assets/{django-DWDamL3u.js → django-CUQxRbf9.js} +1 -1
- package/dist/app/assets/{dns-zone-file-Bs-k24AT.js → dns-zone-file-9UmAuR-l.js} +1 -1
- package/dist/app/assets/{docker-CbsxZOR_.js → docker-vhZ6HugE.js} +1 -1
- package/dist/app/assets/{dot-cmPUgJiw.js → dot-Dlao8ZwH.js} +1 -1
- package/dist/app/assets/{ebnf-B20H8M5E.js → ebnf-BfWJycwn.js} +1 -1
- package/dist/app/assets/{editorconfig-CD8ZN3N0.js → editorconfig-DsrBDVtJ.js} +1 -1
- package/dist/app/assets/{eiffel-A2f55FY2.js → eiffel-ZZ7Z0b2_.js} +1 -1
- package/dist/app/assets/{ejs-DFRIdoGh.js → ejs-SLmpmzms.js} +1 -1
- package/dist/app/assets/{elixir-_kwd_REn.js → elixir-BdkxsFt4.js} +1 -1
- package/dist/app/assets/{elm-DQY_1HmV.js → elm-DSgkBbD-.js} +1 -1
- package/dist/app/assets/{erDiagram-SMLLAGMA-S51NLIRq.js → erDiagram-SMLLAGMA-CKj18meA.js} +1 -1
- package/dist/app/assets/{erb-Dhn1_rOy.js → erb-AX38416h.js} +1 -1
- package/dist/app/assets/{erlang-X69_IFoF.js → erlang-DY2BVWMP.js} +1 -1
- package/dist/app/assets/{etlua-KG8BhZyB.js → etlua-BSaUvZH7.js} +1 -1
- package/dist/app/assets/{excel-formula-CNlbsFIR.js → excel-formula-CGTOeZhB.js} +1 -1
- package/dist/app/assets/{factor-B3wH4xq3.js → factor-CtvOHq60.js} +1 -1
- package/dist/app/assets/{false-CgytrAC7.js → false-C4FtFKhi.js} +1 -1
- package/dist/app/assets/{firestore-security-rules-Coo0DWR5.js → firestore-security-rules-Z8TPJQpU.js} +1 -1
- package/dist/app/assets/{flow-Cy8AbL-B.js → flow-0LSCeVxZ.js} +1 -1
- package/dist/app/assets/{flowDiagram-DWJPFMVM-3gGb45g_.js → flowDiagram-DWJPFMVM-CmW1pCPp.js} +1 -1
- package/dist/app/assets/{fortran-h5riSewD.js → fortran-DR7--sEx.js} +1 -1
- package/dist/app/assets/{fsharp-CkvWu7RS.js → fsharp-CoiFf2ek.js} +1 -1
- package/dist/app/assets/{ftl-A8LPSp4k.js → ftl-BsfZdglK.js} +1 -1
- package/dist/app/assets/{ganttDiagram-T4ZO3ILL-LEeFMCzh.js → ganttDiagram-T4ZO3ILL-C1vWI0vT.js} +1 -1
- package/dist/app/assets/{gap-Db8FJjp9.js → gap-D5rs685K.js} +1 -1
- package/dist/app/assets/{gcode-CmfDqUKZ.js → gcode-ioide_II.js} +1 -1
- package/dist/app/assets/{gdscript-DJWWbktQ.js → gdscript-C1ZWRkkr.js} +1 -1
- package/dist/app/assets/{gedcom-DZLZnv4o.js → gedcom-DS1yKzLz.js} +1 -1
- package/dist/app/assets/{gherkin-dhrCyYj5.js → gherkin-uIhE-MbH.js} +1 -1
- package/dist/app/assets/{git-Dee4nqm_.js → git-B5BRNNT7.js} +1 -1
- package/dist/app/assets/{gitGraphDiagram-UUTBAWPF-Cx0_OfVi.js → gitGraphDiagram-UUTBAWPF-DEg-duQZ.js} +1 -1
- package/dist/app/assets/{glsl-CGkGtKvP.js → glsl-B9fhkctz.js} +1 -1
- package/dist/app/assets/{gml-Cyovha5T.js → gml-offEglBU.js} +1 -1
- package/dist/app/assets/{gn-CZZWsczF.js → gn-FZ0bWEld.js} +1 -1
- package/dist/app/assets/{go-TELCDRfl.js → go-BIRlaT1a.js} +1 -1
- package/dist/app/assets/{go-module-DwdrJQUt.js → go-module-SjD6zijS.js} +1 -1
- package/dist/app/assets/{graph-Def3Ff6O.js → graph-sBvKxujm.js} +1 -1
- package/dist/app/assets/{graphql-BQkD7E1b.js → graphql-Be74WDAY.js} +1 -1
- package/dist/app/assets/{groovy-DSpGF2Ks.js → groovy-ChbEq3v0.js} +1 -1
- package/dist/app/assets/{haml-VPtmscyv.js → haml-C6FObrUo.js} +1 -1
- package/dist/app/assets/{handlebars-B6tGrDNr.js → handlebars-36OFp0YX.js} +1 -1
- package/dist/app/assets/{haskell-sD0oStLn.js → haskell-DuohgBoX.js} +1 -1
- package/dist/app/assets/{haxe-CHQlINJc.js → haxe-CNMh78ZV.js} +1 -1
- package/dist/app/assets/{hcl-B8fn6CLE.js → hcl-BpxVSY5Z.js} +1 -1
- package/dist/app/assets/{hlsl-BRt3KlBi.js → hlsl-DnxGKW3m.js} +1 -1
- package/dist/app/assets/{hoon-Y1tyBFu_.js → hoon-XUklDmVn.js} +1 -1
- package/dist/app/assets/{hpkp-B6tkTng1.js → hpkp-Did6vsrG.js} +1 -1
- package/dist/app/assets/{hsts-BT0gpx-A.js → hsts-DS9blmxt.js} +1 -1
- package/dist/app/assets/{http-Vi5xN3SQ.js → http-DA2WLFiQ.js} +1 -1
- package/dist/app/assets/{ichigojam-DwzjQwUK.js → ichigojam-DdOMt5rE.js} +1 -1
- package/dist/app/assets/{icon-CpNOZuom.js → icon-PVJAVx5C.js} +1 -1
- package/dist/app/assets/{icu-message-format-E7DXI-1d.js → icu-message-format-6jii1RVV.js} +1 -1
- package/dist/app/assets/{idris-Z32VP4RM.js → idris-UxX24g1J.js} +1 -1
- package/dist/app/assets/{iecst-CN5WMb2J.js → iecst-BynNGYT2.js} +1 -1
- package/dist/app/assets/{ignore-BPsyPKDL.js → ignore-4EVq7-cE.js} +1 -1
- package/dist/app/assets/{index-t-7uVNvT.js → index-CAfb2sup.js} +165 -165
- package/dist/app/assets/index-E0F-_Dk8.css +1 -0
- package/dist/app/assets/{infoDiagram-42DDH7IO-CloBfZbd.js → infoDiagram-42DDH7IO-BfATVLk8.js} +1 -1
- package/dist/app/assets/{inform7-DGLBlAGK.js → inform7-BXb820VQ.js} +1 -1
- package/dist/app/assets/{ini-BV3KOH-Q.js → ini-Cmr0cBrX.js} +1 -1
- package/dist/app/assets/{io-CRo9k3OJ.js → io-BdLksOc2.js} +1 -1
- package/dist/app/assets/{ishikawaDiagram-UXIWVN3A-CYPPbF3l.js → ishikawaDiagram-UXIWVN3A-B6I8Yqfq.js} +1 -1
- package/dist/app/assets/{j-CHGRxEkV.js → j-CAftgdTa.js} +1 -1
- package/dist/app/assets/{java-DcCc37S9.js → java-fwAzePp5.js} +1 -1
- package/dist/app/assets/{javadoc-BajT0oRQ.js → javadoc-BcYkNCK0.js} +1 -1
- package/dist/app/assets/{javadoclike-BMMsIcdV.js → javadoclike-B57hwpBc.js} +1 -1
- package/dist/app/assets/{javascript-DyXwMbB3.js → javascript-u1gm812-.js} +1 -1
- package/dist/app/assets/{javastacktrace-DTvR039l.js → javastacktrace-cj9BHFXH.js} +1 -1
- package/dist/app/assets/{jexl-Ot_nPhCk.js → jexl-DrO8YpRi.js} +1 -1
- package/dist/app/assets/{jolie-BUy51jNj.js → jolie-C5CF-EiA.js} +1 -1
- package/dist/app/assets/{journeyDiagram-VCZTEJTY-Brna5vzp.js → journeyDiagram-VCZTEJTY-62Da_9fB.js} +1 -1
- package/dist/app/assets/{jq-5mmxZEvV.js → jq-BQS35fYF.js} +1 -1
- package/dist/app/assets/{js-extras-zVUUAKO_.js → js-extras-Dc8Ge9lP.js} +1 -1
- package/dist/app/assets/{js-templates-iJxD_2Sa.js → js-templates-BChMs7zu.js} +1 -1
- package/dist/app/assets/{jsdoc-DJ_m_yCh.js → jsdoc-Dsh0OaeE.js} +1 -1
- package/dist/app/assets/{json-CZjhVgPK.js → json-DSLB2HLl.js} +1 -1
- package/dist/app/assets/{json5-BNvFsIbI.js → json5-cRfUF1uJ.js} +1 -1
- package/dist/app/assets/{jsonp-gRo4PPGN.js → jsonp-DXOWbjE0.js} +1 -1
- package/dist/app/assets/{jsstacktrace-CT2oLlCK.js → jsstacktrace-DlgtDbr8.js} +1 -1
- package/dist/app/assets/{jsx-d0efg1vk.js → jsx-CyFeFIQM.js} +1 -1
- package/dist/app/assets/{julia-Dqs_RiDo.js → julia-vGoL8D9z.js} +1 -1
- package/dist/app/assets/{kanban-definition-6JOO6SKY-tE-1j_ia.js → kanban-definition-6JOO6SKY-JAtH1H2c.js} +1 -1
- package/dist/app/assets/{keepalived-Ber37oOF.js → keepalived-u6JnaMHj.js} +1 -1
- package/dist/app/assets/{keyman-C5bFTeeI.js → keyman-C2x0si7Y.js} +1 -1
- package/dist/app/assets/{kotlin-DBq0G8Hn.js → kotlin-l8__XfWl.js} +1 -1
- package/dist/app/assets/{kumir-_r-igbu1.js → kumir-CaQaIRBf.js} +1 -1
- package/dist/app/assets/{kusto-Dnrek9TI.js → kusto-DYDxqji-.js} +1 -1
- package/dist/app/assets/{latex-B78lTwvc.js → latex-D2qjbQmB.js} +1 -1
- package/dist/app/assets/{latte-CaSKAGnv.js → latte-CmbmgbPe.js} +1 -1
- package/dist/app/assets/{layout-BZiHvIMv.js → layout-BMTuSUP-.js} +1 -1
- package/dist/app/assets/{less-C0gq5vaY.js → less-DpljErLD.js} +1 -1
- package/dist/app/assets/{lilypond-GMV-kxfc.js → lilypond-DAeqUsI_.js} +1 -1
- package/dist/app/assets/{linear-sCxwL64x.js → linear-CqSIeBnp.js} +1 -1
- package/dist/app/assets/{liquid-Bjcywher.js → liquid-Bo11FNrj.js} +1 -1
- package/dist/app/assets/{lisp-Di4LOhy9.js → lisp-BNBGpNSq.js} +1 -1
- package/dist/app/assets/{livescript-CgOnolfS.js → livescript-CNBuUGwr.js} +1 -1
- package/dist/app/assets/{llvm-BGjbbrCi.js → llvm-BCQgrmMc.js} +1 -1
- package/dist/app/assets/{log-D7n8H9fm.js → log-7C67ffIH.js} +1 -1
- package/dist/app/assets/{lolcode-Cu9-2TFS.js → lolcode-tyVOf0-i.js} +1 -1
- package/dist/app/assets/{lua-lccF9r61.js → lua-D1tjiZGJ.js} +1 -1
- package/dist/app/assets/{magma-DcqQ1hwM.js → magma-DvpErL5E.js} +1 -1
- package/dist/app/assets/{makefile-kISpU6yQ.js → makefile-DVopM6_I.js} +1 -1
- package/dist/app/assets/{markdown-ClsPn-UJ.js → markdown-zDaJjBqz.js} +1 -1
- package/dist/app/assets/{markup-GKEZzmxD.js → markup-Dn7T0Xgl.js} +1 -1
- package/dist/app/assets/{markup-templating-CWO2xZeJ.js → markup-templating-jmwD3Mv5.js} +1 -1
- package/dist/app/assets/{matlab-gPoR8X9J.js → matlab-Dmd8VzKM.js} +1 -1
- package/dist/app/assets/{maxscript-BHY3xiu7.js → maxscript-FjCyY0j5.js} +1 -1
- package/dist/app/assets/{mel-rpDPR1uL.js → mel-BDzXY19C.js} +1 -1
- package/dist/app/assets/{mermaid-BuzahRsL.js → mermaid-lu-_cgAH.js} +1 -1
- package/dist/app/assets/{min-qX6PyCsg.js → min-DYtuudAi.js} +1 -1
- package/dist/app/assets/{mindmap-definition-QFDTVHPH-ssFAYwGj.js → mindmap-definition-QFDTVHPH-C0LlKYnG.js} +1 -1
- package/dist/app/assets/{mizar-uCD34iKQ.js → mizar-BDWlOEMd.js} +1 -1
- package/dist/app/assets/{mongodb-BHQiMgqu.js → mongodb-BqhqCTUF.js} +1 -1
- package/dist/app/assets/{monkey-DgUxfqRD.js → monkey-DD_wkxjO.js} +1 -1
- package/dist/app/assets/{moonscript-jEu2rBFy.js → moonscript-5BliHqu8.js} +1 -1
- package/dist/app/assets/{n1ql-Dt-1d48e.js → n1ql-BI9d8-dk.js} +1 -1
- package/dist/app/assets/{n4js-DhUX1sWN.js → n4js-CiGP0jcT.js} +1 -1
- package/dist/app/assets/{nand2tetris-hdl-B1sxYngv.js → nand2tetris-hdl-h4B9YPVX.js} +1 -1
- package/dist/app/assets/{naniscript-CLirJ9GC.js → naniscript-0FP5ZgNv.js} +1 -1
- package/dist/app/assets/{nasm-DFO6i9-v.js → nasm-CfsxN3sz.js} +1 -1
- package/dist/app/assets/{neon-CJVuQ87S.js → neon-Ds1qWnTS.js} +1 -1
- package/dist/app/assets/{nevod-BKKiVTjs.js → nevod-CpogMq0t.js} +1 -1
- package/dist/app/assets/{nginx-B_LEBTut.js → nginx-CBAywKyc.js} +1 -1
- package/dist/app/assets/{nim-DgvJ6hOl.js → nim-CKndoR7P.js} +1 -1
- package/dist/app/assets/{nix-CJ0KPl9Q.js → nix-C2aGN04i.js} +1 -1
- package/dist/app/assets/{nsis-C6JwEFTE.js → nsis-BS2FD5Ui.js} +1 -1
- package/dist/app/assets/{objectivec-B9B-kBxR.js → objectivec-BV3I8zfq.js} +1 -1
- package/dist/app/assets/{ocaml-SkFdro3L.js → ocaml-CumNTZrg.js} +1 -1
- package/dist/app/assets/{opencl-DSfJf34E.js → opencl-BA7HxeS1.js} +1 -1
- package/dist/app/assets/{openqasm-CDzDtizQ.js → openqasm-CVlYcfEb.js} +1 -1
- package/dist/app/assets/{oz-BWs_ndEf.js → oz-BgNzyTQm.js} +1 -1
- package/dist/app/assets/{parigp-_-pO98W4.js → parigp-HAeKHx70.js} +1 -1
- package/dist/app/assets/{parser-BwdpGZPJ.js → parser-DBm9W7gH.js} +1 -1
- package/dist/app/assets/{pascal-AEdKVQZ6.js → pascal-DVVWX7c3.js} +1 -1
- package/dist/app/assets/{pascaligo-B3FRz8ot.js → pascaligo-9sC0JINE.js} +1 -1
- package/dist/app/assets/{pcaxis-5fq3uU8R.js → pcaxis-BExTG1b5.js} +1 -1
- package/dist/app/assets/{peoplecode-DZ4fk8ON.js → peoplecode-BYMaBssU.js} +1 -1
- package/dist/app/assets/{perl-B3MXzetZ.js → perl-BnEaJyRt.js} +1 -1
- package/dist/app/assets/{php-vEB1iVno.js → php-DTvaAe6L.js} +1 -1
- package/dist/app/assets/{php-extras-DLRpD8nq.js → php-extras-BryvmqOr.js} +1 -1
- package/dist/app/assets/{phpdoc-BCqSfVX6.js → phpdoc-DNQcJB7n.js} +1 -1
- package/dist/app/assets/{pieDiagram-DEJITSTG-DxXi7DQ2.js → pieDiagram-DEJITSTG-CNyUzOEA.js} +1 -1
- package/dist/app/assets/{plsql-DPtxfxuA.js → plsql-C53Rqwl3.js} +1 -1
- package/dist/app/assets/{powerquery-BOfyovx0.js → powerquery-CBDVLr0E.js} +1 -1
- package/dist/app/assets/{powershell-DxVo8OSN.js → powershell-BTjXHGcn.js} +1 -1
- package/dist/app/assets/{processing-ijqSDZY0.js → processing-LU1Q4Xrp.js} +1 -1
- package/dist/app/assets/{prolog-DlYEmyH_.js → prolog-CAkqp_8e.js} +1 -1
- package/dist/app/assets/{promql-BjVFHQmv.js → promql-qm_oe_qq.js} +1 -1
- package/dist/app/assets/{properties-bwk71nw-.js → properties-CkopXTtp.js} +1 -1
- package/dist/app/assets/{protobuf-Cih2akTP.js → protobuf-Y8NjvM3i.js} +1 -1
- package/dist/app/assets/{psl-Cw1dOcRa.js → psl-C6tOp1_K.js} +1 -1
- package/dist/app/assets/{pug-DwJYMQlV.js → pug-CS_9WzOj.js} +1 -1
- package/dist/app/assets/{puppet-Caud_s-m.js → puppet-CUp_EgdL.js} +1 -1
- package/dist/app/assets/{pure-B5oj-gCx.js → pure-Blo1Mo0B.js} +1 -1
- package/dist/app/assets/{purebasic-BgeP5DDD.js → purebasic-Ca8-6hSG.js} +1 -1
- package/dist/app/assets/{purescript-CsHryjK3.js → purescript-NTJk_TqU.js} +1 -1
- package/dist/app/assets/{q-BP8bBuGv.js → q-B6Zcp4zx.js} +1 -1
- package/dist/app/assets/{qml-BgY-HmDG.js → qml-BWFD-5NF.js} +1 -1
- package/dist/app/assets/{qore-uOYNMdCg.js → qore-CDatToXb.js} +1 -1
- package/dist/app/assets/{qsharp-Cmp5vMRr.js → qsharp-D7nj5IOf.js} +1 -1
- package/dist/app/assets/{quadrantDiagram-34T5L4WZ-f7twVcyL.js → quadrantDiagram-34T5L4WZ-DhG4JpPn.js} +1 -1
- package/dist/app/assets/{r-BPMuS20T.js → r-B1QI-AqR.js} +1 -1
- package/dist/app/assets/{racket-qc2-NKzR.js → racket-B4nDtIWF.js} +1 -1
- package/dist/app/assets/{reason-Rphq4wU8.js → reason-JWfMNNZ5.js} +1 -1
- package/dist/app/assets/{regex-lUJxQlEc.js → regex-CJNXHeEg.js} +1 -1
- package/dist/app/assets/{rego-CgRMQR4R.js → rego-LQxbhCWr.js} +1 -1
- package/dist/app/assets/{renpy-O53RZ3yB.js → renpy-BDFd6l-h.js} +1 -1
- package/dist/app/assets/{requirementDiagram-MS252O5E-C-2UwVat.js → requirementDiagram-MS252O5E-VIZnTHe_.js} +1 -1
- package/dist/app/assets/{rest-lCVyRpHi.js → rest-CGwOWaqn.js} +1 -1
- package/dist/app/assets/{rip-Cb9MAixU.js → rip-BIv3Yp6n.js} +1 -1
- package/dist/app/assets/{roboconf-p--JilwP.js → roboconf-DGg8AzxQ.js} +1 -1
- package/dist/app/assets/{robotframework-CJWG7axQ.js → robotframework-Cu4U-LJt.js} +1 -1
- package/dist/app/assets/{ruby-DgHGg4xu.js → ruby-jJNeRq1e.js} +1 -1
- package/dist/app/assets/{rust-mfoZutVO.js → rust-DBMO8o-k.js} +1 -1
- package/dist/app/assets/{sankeyDiagram-XADWPNL6-DtWni1zR.js → sankeyDiagram-XADWPNL6-D109kLbO.js} +1 -1
- package/dist/app/assets/{sas-hkuUJbuO.js → sas-BXMgxJ5D.js} +1 -1
- package/dist/app/assets/{sass-DdYTeGYi.js → sass-BXkCPsxr.js} +1 -1
- package/dist/app/assets/{scala-BmqlMvBk.js → scala-A2dbBlRv.js} +1 -1
- package/dist/app/assets/{scheme-DGuanVCO.js → scheme-5YfcUkz6.js} +1 -1
- package/dist/app/assets/{scss-CQnillil.js → scss-CKQrod7s.js} +1 -1
- package/dist/app/assets/{sequenceDiagram-FGHM5R23-V1Ofbw_p.js → sequenceDiagram-FGHM5R23-BWFRA3S4.js} +1 -1
- package/dist/app/assets/{shell-session-DCSmJkzu.js → shell-session-7xRIeziW.js} +1 -1
- package/dist/app/assets/{smali-ffxofes2.js → smali-Dp3s5TDa.js} +1 -1
- package/dist/app/assets/{smalltalk-B3WSwake.js → smalltalk-Cn6dJ_DR.js} +1 -1
- package/dist/app/assets/{smarty-TkH0F2ZR.js → smarty-B62Phcz3.js} +1 -1
- package/dist/app/assets/{sml-Dn0OaBIX.js → sml-CRGJcRiK.js} +1 -1
- package/dist/app/assets/{solidity-X5AVGR0y.js → solidity-CmijFrY5.js} +1 -1
- package/dist/app/assets/{solution-file-CPrmt5Hs.js → solution-file-CMlGbfWf.js} +1 -1
- package/dist/app/assets/{soy-BWtqIhQj.js → soy-DfV0L1AX.js} +1 -1
- package/dist/app/assets/{sparql-B3dCbOij.js → sparql-UU0JEsJN.js} +1 -1
- package/dist/app/assets/{splunk-spl-DFme2x2-.js → splunk-spl-CoMa2odZ.js} +1 -1
- package/dist/app/assets/{sqf-B6O1kNSS.js → sqf-BK0u4w1w.js} +1 -1
- package/dist/app/assets/{sql-CJQw5AKW.js → sql-DNyh2fmD.js} +1 -1
- package/dist/app/assets/{squirrel-CzQsXTWv.js → squirrel-inCt7JHG.js} +1 -1
- package/dist/app/assets/{stan-lf0anrTR.js → stan-Doi4GinI.js} +1 -1
- package/dist/app/assets/{stateDiagram-FHFEXIEX-DCCf5FXE.js → stateDiagram-FHFEXIEX-BrDgd0rD.js} +1 -1
- package/dist/app/assets/stateDiagram-v2-QKLJ7IA2-DrNQuVcu.js +1 -0
- package/dist/app/assets/{stylus-COiHJR5i.js → stylus-B--PyNIy.js} +1 -1
- package/dist/app/assets/{swift-DkkKYkZS.js → swift-CzynVDjb.js} +1 -1
- package/dist/app/assets/{systemd-yMlv02T9.js → systemd-BzRtQaxY.js} +1 -1
- package/dist/app/assets/{t4-cs-rnhIAIrb.js → t4-cs-DRmWJZc9.js} +1 -1
- package/dist/app/assets/{t4-templating-DMWX9YhQ.js → t4-templating-DPZ7hNhf.js} +1 -1
- package/dist/app/assets/{t4-vb-ftpXLDQa.js → t4-vb-DJ-j33dQ.js} +1 -1
- package/dist/app/assets/{tap-BPZr3MHO.js → tap-Cxx_PgyE.js} +1 -1
- package/dist/app/assets/{tcl-Da5z37GP.js → tcl-Bs4a0Dfs.js} +1 -1
- package/dist/app/assets/{textile-D_cVONZR.js → textile-BoRmwUMy.js} +1 -1
- package/dist/app/assets/{timeline-definition-GMOUNBTQ-BUqjHP-0.js → timeline-definition-GMOUNBTQ-CzfKhXYm.js} +1 -1
- package/dist/app/assets/{toml-DKAIAUDo.js → toml-Dt03eQXy.js} +1 -1
- package/dist/app/assets/{tremor-UPWxEF30.js → tremor-DAjHRWBi.js} +1 -1
- package/dist/app/assets/{tt2-F3kwqgAK.js → tt2-BeNFgyN2.js} +1 -1
- package/dist/app/assets/{turtle-BGEC3Tea.js → turtle-BzI8BWIV.js} +1 -1
- package/dist/app/assets/{twig-BF1UtTiF.js → twig-Df--35lw.js} +1 -1
- package/dist/app/assets/{typescript-0Q55yGyu.js → typescript-BAKA2fdq.js} +1 -1
- package/dist/app/assets/{typoscript-BZzT6IZ0.js → typoscript-r0z-RS5y.js} +1 -1
- package/dist/app/assets/{unrealscript-CRZUJaDf.js → unrealscript-dT1dIQam.js} +1 -1
- package/dist/app/assets/{uorazor-DQbuUO_0.js → uorazor-C4wimjxD.js} +1 -1
- package/dist/app/assets/{uri-DaYUWj2f.js → uri-D7oE-PoJ.js} +1 -1
- package/dist/app/assets/{v-B_keUXs0.js → v-DwJtB8Vm.js} +1 -1
- package/dist/app/assets/{vala-C280zAuu.js → vala-D0mTgP2k.js} +1 -1
- package/dist/app/assets/{vbnet-BP5k7ovm.js → vbnet-BJfu6o8X.js} +1 -1
- package/dist/app/assets/{velocity-Cpzxjvpc.js → velocity-BJB5m8fQ.js} +1 -1
- package/dist/app/assets/{vennDiagram-DHZGUBPP-DMBYuFGJ.js → vennDiagram-DHZGUBPP-Cgb8-zyn.js} +1 -1
- package/dist/app/assets/{verilog-CsCWJCKK.js → verilog-Ci2D8dFC.js} +1 -1
- package/dist/app/assets/{vhdl-CnOBMJDT.js → vhdl-DcEoROdo.js} +1 -1
- package/dist/app/assets/{vim-BHrvXFGg.js → vim-BzWQ6rL0.js} +1 -1
- package/dist/app/assets/{visual-basic-DVMUkaLe.js → visual-basic-C9jUzYfG.js} +1 -1
- package/dist/app/assets/{wardley-RL74JXVD-D39mFmVb.js → wardley-RL74JXVD-Btw_ODEd.js} +1 -1
- package/dist/app/assets/{wardleyDiagram-NUSXRM2D-tYKT99K6.js → wardleyDiagram-NUSXRM2D-B84YCqkj.js} +1 -1
- package/dist/app/assets/{warpscript-D6-BbIHr.js → warpscript-BVhze8vt.js} +1 -1
- package/dist/app/assets/{wasm-Bi73rb7-.js → wasm-zAS-bEPo.js} +1 -1
- package/dist/app/assets/{web-idl-D5ZtoJL_.js → web-idl-G3r7q-fK.js} +1 -1
- package/dist/app/assets/{wiki-CorqGblj.js → wiki-exG7pUTP.js} +1 -1
- package/dist/app/assets/{wolfram-CfD99H8b.js → wolfram-C_Mj1MJG.js} +1 -1
- package/dist/app/assets/{wren-Bxtd03-U.js → wren-CdV44Tnx.js} +1 -1
- package/dist/app/assets/{xeora-CK88z6DA.js → xeora-2KKn4X5q.js} +1 -1
- package/dist/app/assets/{xml-doc-CG1bthfs.js → xml-doc-DLPYHfMi.js} +1 -1
- package/dist/app/assets/{xojo-ClNCxa3l.js → xojo-B6ggSUBg.js} +1 -1
- package/dist/app/assets/{xquery-KJgwBO7a.js → xquery-B2tHFdf8.js} +1 -1
- package/dist/app/assets/{xychartDiagram-5P7HB3ND-Cpkqm7JZ.js → xychartDiagram-5P7HB3ND-CWuLJaAz.js} +1 -1
- package/dist/app/assets/{yaml-BN5ddz6N.js → yaml-BkS8H31d.js} +1 -1
- package/dist/app/assets/{yang-wM3Tqav1.js → yang-DT_nuuZI.js} +1 -1
- package/dist/app/assets/{zig-At4jiVd0.js → zig-B0zYSJvR.js} +1 -1
- package/dist/app/index.html +2 -2
- package/dist/index.cjs +750 -662
- package/dist/index.js +752 -663
- package/package.json +4 -4
- package/dist/app/assets/channel-BVeXXlex.js +0 -1
- package/dist/app/assets/classDiagram-6PBFFD2Q-Bx9mt6fp.js +0 -1
- package/dist/app/assets/classDiagram-v2-HSJHXN6E-Bx9mt6fp.js +0 -1
- package/dist/app/assets/clone-C3qA4Qv-.js +0 -1
- package/dist/app/assets/index-ByruneYs.css +0 -1
- package/dist/app/assets/stateDiagram-v2-QKLJ7IA2-CWJp5A97.js +0 -1
package/dist/index.js
CHANGED
|
@@ -8178,7 +8178,7 @@ var TabsContent = React28.forwardRef(
|
|
|
8178
8178
|
TabsContent.displayName = "TabsContent";
|
|
8179
8179
|
|
|
8180
8180
|
// src/components/thread/markdown-text.tsx
|
|
8181
|
-
import ReactMarkdown from "react-markdown";
|
|
8181
|
+
import ReactMarkdown, { defaultUrlTransform } from "react-markdown";
|
|
8182
8182
|
import remarkGfm from "remark-gfm";
|
|
8183
8183
|
import rehypeKatex from "rehype-katex";
|
|
8184
8184
|
import remarkMath from "remark-math";
|
|
@@ -8186,6 +8186,7 @@ import {
|
|
|
8186
8186
|
Children,
|
|
8187
8187
|
isValidElement,
|
|
8188
8188
|
memo,
|
|
8189
|
+
useContext as useContext5,
|
|
8189
8190
|
useId as useId4,
|
|
8190
8191
|
useState as useState14
|
|
8191
8192
|
} from "react";
|
|
@@ -8766,11 +8767,78 @@ var proposedPlanOpenPattern = /^\s*<proposed_plan>\s*$/;
|
|
|
8766
8767
|
var proposedPlanClosePattern = /^\s*<\/proposed_plan>\s*$/;
|
|
8767
8768
|
var markdownFencePattern = /^ {0,3}(`{3,}|~{3,})/;
|
|
8768
8769
|
var planMarkdownFencePattern = /^\s*(`{3,}|~{3,})[ \t]*(?:markdown|md)[^\n]*\r?\n([\s\S]*?)\r?\n\1[ \t]*\s*$/i;
|
|
8770
|
+
var knowledgebaseCitationEffectName = "knowledgebase.open_citation";
|
|
8769
8771
|
var stripMarkdownNode = (props) => {
|
|
8770
8772
|
const elementProps = { ...props };
|
|
8771
8773
|
delete elementProps.node;
|
|
8772
8774
|
return elementProps;
|
|
8773
8775
|
};
|
|
8776
|
+
var parseKnowledgebaseCitationHref = (href) => {
|
|
8777
|
+
if (typeof href !== "string" || !href.trim()) {
|
|
8778
|
+
return null;
|
|
8779
|
+
}
|
|
8780
|
+
try {
|
|
8781
|
+
const url = new URL(href);
|
|
8782
|
+
if (url.protocol !== "xpert:" || url.hostname !== "knowledgebase" || url.pathname !== "/chunk") {
|
|
8783
|
+
return null;
|
|
8784
|
+
}
|
|
8785
|
+
const documentId = url.searchParams.get("documentId")?.trim();
|
|
8786
|
+
if (!documentId) {
|
|
8787
|
+
return null;
|
|
8788
|
+
}
|
|
8789
|
+
const knowledgebaseId = url.searchParams.get("knowledgebaseId")?.trim();
|
|
8790
|
+
const chunkId = url.searchParams.get("chunkId")?.trim();
|
|
8791
|
+
const documentName = url.searchParams.get("documentName")?.trim();
|
|
8792
|
+
return {
|
|
8793
|
+
documentId,
|
|
8794
|
+
citationUrl: href,
|
|
8795
|
+
...knowledgebaseId ? { knowledgebaseId } : {},
|
|
8796
|
+
...chunkId ? { chunkId } : {},
|
|
8797
|
+
...documentName ? { documentName } : {}
|
|
8798
|
+
};
|
|
8799
|
+
} catch {
|
|
8800
|
+
return null;
|
|
8801
|
+
}
|
|
8802
|
+
};
|
|
8803
|
+
var markdownUrlTransform = (value) => parseKnowledgebaseCitationHref(value) ? value : defaultUrlTransform(value);
|
|
8804
|
+
function MarkdownAnchor({
|
|
8805
|
+
className,
|
|
8806
|
+
href,
|
|
8807
|
+
onClick,
|
|
8808
|
+
...props
|
|
8809
|
+
}) {
|
|
8810
|
+
const parentMessenger = useContext5(ParentMessengerContext);
|
|
8811
|
+
const citationTarget = parseKnowledgebaseCitationHref(href);
|
|
8812
|
+
const anchorProps = stripMarkdownNode(props);
|
|
8813
|
+
return /* @__PURE__ */ jsx32(
|
|
8814
|
+
"a",
|
|
8815
|
+
{
|
|
8816
|
+
className: cn(
|
|
8817
|
+
citationTarget ? "text-muted-foreground text-[0.85em] underline decoration-dotted underline-offset-4 transition-colors hover:text-primary" : "text-primary font-medium underline underline-offset-4",
|
|
8818
|
+
className
|
|
8819
|
+
),
|
|
8820
|
+
href,
|
|
8821
|
+
target: citationTarget ? void 0 : "_blank",
|
|
8822
|
+
rel: citationTarget ? void 0 : "noopener noreferrer",
|
|
8823
|
+
"data-knowledgebase-citation": citationTarget ? "true" : void 0,
|
|
8824
|
+
onClick: (event) => {
|
|
8825
|
+
onClick?.(event);
|
|
8826
|
+
if (!citationTarget || event.defaultPrevented) {
|
|
8827
|
+
return;
|
|
8828
|
+
}
|
|
8829
|
+
event.preventDefault();
|
|
8830
|
+
parentMessenger?.sendEvent("public_event", [
|
|
8831
|
+
"effect",
|
|
8832
|
+
{
|
|
8833
|
+
name: knowledgebaseCitationEffectName,
|
|
8834
|
+
data: citationTarget
|
|
8835
|
+
}
|
|
8836
|
+
]);
|
|
8837
|
+
},
|
|
8838
|
+
...anchorProps
|
|
8839
|
+
}
|
|
8840
|
+
);
|
|
8841
|
+
}
|
|
8774
8842
|
var getTextContent = (children) => Children.toArray(children).map((child) => {
|
|
8775
8843
|
if (typeof child === "string" || typeof child === "number") {
|
|
8776
8844
|
return String(child);
|
|
@@ -8865,6 +8933,7 @@ function MarkdownContent({ children }) {
|
|
|
8865
8933
|
{
|
|
8866
8934
|
remarkPlugins: [remarkGfm, remarkMath],
|
|
8867
8935
|
rehypePlugins: [rehypeKatex],
|
|
8936
|
+
urlTransform: markdownUrlTransform,
|
|
8868
8937
|
components: defaultComponents,
|
|
8869
8938
|
children
|
|
8870
8939
|
}
|
|
@@ -9070,18 +9139,7 @@ var defaultComponents = {
|
|
|
9070
9139
|
...stripMarkdownNode(props)
|
|
9071
9140
|
}
|
|
9072
9141
|
),
|
|
9073
|
-
a:
|
|
9074
|
-
"a",
|
|
9075
|
-
{
|
|
9076
|
-
className: cn(
|
|
9077
|
-
"text-primary font-medium underline underline-offset-4",
|
|
9078
|
-
className
|
|
9079
|
-
),
|
|
9080
|
-
target: "_blank",
|
|
9081
|
-
rel: "noopener noreferrer",
|
|
9082
|
-
...stripMarkdownNode(props)
|
|
9083
|
-
}
|
|
9084
|
-
),
|
|
9142
|
+
a: MarkdownAnchor,
|
|
9085
9143
|
blockquote: ({ className, ...props }) => /* @__PURE__ */ jsx32(
|
|
9086
9144
|
"blockquote",
|
|
9087
9145
|
{
|
|
@@ -17208,6 +17266,13 @@ function Chat({
|
|
|
17208
17266
|
fallbackTitle: t("history.threadFallback")
|
|
17209
17267
|
});
|
|
17210
17268
|
const assistantTitle = assistantName || resolvedTitle;
|
|
17269
|
+
const layoutMaxWidth = options?.layout?.maxWidth;
|
|
17270
|
+
const chatColumnStyle = React49.useMemo(() => {
|
|
17271
|
+
if (layoutMaxWidth === void 0 || layoutMaxWidth === null || layoutMaxWidth === "") {
|
|
17272
|
+
return void 0;
|
|
17273
|
+
}
|
|
17274
|
+
return { maxWidth: layoutMaxWidth };
|
|
17275
|
+
}, [layoutMaxWidth]);
|
|
17211
17276
|
return /* @__PURE__ */ jsxs37(
|
|
17212
17277
|
UploadDroppedFiles,
|
|
17213
17278
|
{
|
|
@@ -17223,309 +17288,325 @@ function Chat({
|
|
|
17223
17288
|
className
|
|
17224
17289
|
),
|
|
17225
17290
|
children: [
|
|
17226
|
-
/* @__PURE__ */ jsxs37(
|
|
17227
|
-
|
|
17228
|
-
|
|
17229
|
-
|
|
17230
|
-
|
|
17231
|
-
|
|
17232
|
-
|
|
17233
|
-
|
|
17234
|
-
|
|
17235
|
-
|
|
17236
|
-
|
|
17237
|
-
|
|
17238
|
-
|
|
17239
|
-
|
|
17240
|
-
|
|
17241
|
-
|
|
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"
|
|
17291
|
+
/* @__PURE__ */ jsxs37(
|
|
17292
|
+
"div",
|
|
17293
|
+
{
|
|
17294
|
+
"data-slot": "chatkit-chat-header",
|
|
17295
|
+
className: "mx-auto flex w-full items-center justify-between border-b p-2 sticky top-0 z-10 bg-background",
|
|
17296
|
+
style: chatColumnStyle,
|
|
17297
|
+
children: [
|
|
17298
|
+
/* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-3 overflow-hidden", children: [
|
|
17299
|
+
/* @__PURE__ */ jsxs37("div", { className: "relative shrink-0", children: [
|
|
17300
|
+
/* @__PURE__ */ jsx54(
|
|
17301
|
+
ChatkitAvatar,
|
|
17302
|
+
{
|
|
17303
|
+
avatar: assistantAvatar,
|
|
17304
|
+
className: "h-9 w-9 border border-border/60",
|
|
17305
|
+
label: assistantTitle
|
|
17306
|
+
}
|
|
17262
17307
|
),
|
|
17263
|
-
"
|
|
17264
|
-
|
|
17265
|
-
|
|
17266
|
-
|
|
17267
|
-
|
|
17268
|
-
|
|
17269
|
-
|
|
17270
|
-
|
|
17271
|
-
|
|
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"
|
|
17308
|
+
/* @__PURE__ */ jsx54("span", { className: "absolute bottom-0 right-0 h-2.5 w-2.5 rounded-full border-2 border-background bg-green-500" })
|
|
17309
|
+
] }),
|
|
17310
|
+
/* @__PURE__ */ jsxs37("div", { className: "truncate", children: [
|
|
17311
|
+
/* @__PURE__ */ jsx54(
|
|
17312
|
+
"h2",
|
|
17313
|
+
{
|
|
17314
|
+
className: "text-lg font-semibold truncate",
|
|
17315
|
+
title: assistantTitle,
|
|
17316
|
+
children: assistantTitle
|
|
17317
|
+
}
|
|
17279
17318
|
),
|
|
17280
|
-
"
|
|
17281
|
-
|
|
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") })
|
|
17319
|
+
/* @__PURE__ */ jsx54("p", { className: "text-xs text-muted-foreground", children: t("chat.statusOnline") })
|
|
17320
|
+
] })
|
|
17305
17321
|
] }),
|
|
17306
|
-
/* @__PURE__ */
|
|
17307
|
-
|
|
17308
|
-
|
|
17309
|
-
|
|
17310
|
-
|
|
17311
|
-
|
|
17312
|
-
|
|
17313
|
-
|
|
17314
|
-
|
|
17315
|
-
|
|
17316
|
-
|
|
17317
|
-
|
|
17318
|
-
|
|
17319
|
-
|
|
17320
|
-
|
|
17321
|
-
|
|
17322
|
-
|
|
17323
|
-
|
|
17324
|
-
|
|
17325
|
-
|
|
17326
|
-
|
|
17327
|
-
|
|
17328
|
-
|
|
17329
|
-
|
|
17330
|
-
|
|
17331
|
-
|
|
17332
|
-
|
|
17333
|
-
|
|
17334
|
-
|
|
17335
|
-
|
|
17336
|
-
|
|
17337
|
-
|
|
17338
|
-
|
|
17339
|
-
|
|
17322
|
+
/* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-1", children: [
|
|
17323
|
+
canMinimizeToPet && /* @__PURE__ */ jsxs37(Tooltip, { children: [
|
|
17324
|
+
/* @__PURE__ */ jsx54(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx54("span", { className: "inline-flex h-8 w-8", children: /* @__PURE__ */ jsx54(
|
|
17325
|
+
"button",
|
|
17326
|
+
{
|
|
17327
|
+
type: "button",
|
|
17328
|
+
onClick: handleMinimizeToPet,
|
|
17329
|
+
className: cn(
|
|
17330
|
+
"flex h-8 w-8 cursor-pointer items-center justify-center rounded-md",
|
|
17331
|
+
"text-muted-foreground hover:text-foreground hover:bg-muted",
|
|
17332
|
+
"transition-colors duration-150"
|
|
17333
|
+
),
|
|
17334
|
+
"aria-label": t("chat.minimizeToPet"),
|
|
17335
|
+
children: /* @__PURE__ */ jsx54(Minus, { size: 16 })
|
|
17336
|
+
}
|
|
17337
|
+
) }) }),
|
|
17338
|
+
/* @__PURE__ */ jsx54(TooltipContent, { side: "bottom", children: t("chat.minimizeToPet") })
|
|
17339
|
+
] }),
|
|
17340
|
+
/* @__PURE__ */ jsxs37(Tooltip, { children: [
|
|
17341
|
+
/* @__PURE__ */ jsx54(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx54("span", { className: "inline-flex h-8 w-8", children: /* @__PURE__ */ jsx54(
|
|
17342
|
+
"button",
|
|
17343
|
+
{
|
|
17344
|
+
type: "button",
|
|
17345
|
+
onClick: () => setPetSettingsOpen(true),
|
|
17346
|
+
className: cn(
|
|
17347
|
+
"flex h-8 w-8 cursor-pointer items-center justify-center rounded-md",
|
|
17348
|
+
"text-muted-foreground hover:text-foreground hover:bg-muted",
|
|
17349
|
+
"transition-colors duration-150"
|
|
17350
|
+
),
|
|
17351
|
+
"aria-label": t("settings.open"),
|
|
17352
|
+
children: /* @__PURE__ */ jsx54(Settings2, { size: 16 })
|
|
17353
|
+
}
|
|
17354
|
+
) }) }),
|
|
17355
|
+
/* @__PURE__ */ jsx54(TooltipContent, { side: "bottom", children: t("settings.open") })
|
|
17356
|
+
] }),
|
|
17357
|
+
history?.enabled !== false && /* @__PURE__ */ jsxs37(Fragment9, { children: [
|
|
17358
|
+
/* @__PURE__ */ jsxs37(Tooltip, { children: [
|
|
17359
|
+
/* @__PURE__ */ jsx54(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx54("span", { className: "inline-flex h-8 w-8", children: /* @__PURE__ */ jsx54(
|
|
17360
|
+
"button",
|
|
17361
|
+
{
|
|
17362
|
+
type: "button",
|
|
17363
|
+
onClick: handleNewThread,
|
|
17364
|
+
disabled: missingConfig || isHistoryLoading,
|
|
17365
|
+
className: cn(
|
|
17366
|
+
"flex h-8 w-8 cursor-pointer items-center justify-center rounded-md",
|
|
17367
|
+
"text-muted-foreground hover:text-foreground hover:bg-muted",
|
|
17368
|
+
"transition-colors duration-150",
|
|
17369
|
+
"disabled:pointer-events-none disabled:opacity-50 disabled:cursor-not-allowed"
|
|
17370
|
+
),
|
|
17371
|
+
"aria-label": t("history.newThread"),
|
|
17372
|
+
children: /* @__PURE__ */ jsx54(Pencil4, { size: 16 })
|
|
17373
|
+
}
|
|
17374
|
+
) }) }),
|
|
17375
|
+
/* @__PURE__ */ jsx54(TooltipContent, { side: "bottom", children: t("history.newThread") })
|
|
17376
|
+
] }),
|
|
17377
|
+
/* @__PURE__ */ jsx54(
|
|
17378
|
+
HistorySidebar,
|
|
17379
|
+
{
|
|
17380
|
+
threads,
|
|
17381
|
+
currentThreadId: stream.threadId ?? void 0,
|
|
17382
|
+
onNewThread: handleNewThread,
|
|
17383
|
+
onSelectThread: handleSelectThread,
|
|
17384
|
+
onDeleteThread: handleDeleteThread,
|
|
17385
|
+
showDelete: history?.showDelete !== false,
|
|
17386
|
+
disabled: missingConfig || isThreadsLoading || isHistoryLoading
|
|
17387
|
+
}
|
|
17388
|
+
)
|
|
17389
|
+
] })
|
|
17390
|
+
] })
|
|
17391
|
+
]
|
|
17392
|
+
}
|
|
17393
|
+
),
|
|
17394
|
+
/* @__PURE__ */ jsxs37(
|
|
17395
|
+
"div",
|
|
17396
|
+
{
|
|
17397
|
+
"data-slot": "chatkit-chat-content",
|
|
17398
|
+
className: "mx-auto w-full flex-1 p-4",
|
|
17399
|
+
style: chatColumnStyle,
|
|
17400
|
+
children: [
|
|
17401
|
+
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 }),
|
|
17402
|
+
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 }),
|
|
17403
|
+
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 }),
|
|
17404
|
+
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") }),
|
|
17405
|
+
messages.length === 0 && !canLoadMoreMessages ? /* @__PURE__ */ jsx54(
|
|
17406
|
+
StartScreen,
|
|
17340
17407
|
{
|
|
17341
|
-
|
|
17342
|
-
|
|
17343
|
-
|
|
17344
|
-
|
|
17345
|
-
|
|
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")
|
|
17408
|
+
startScreen,
|
|
17409
|
+
onPromptClick: handlePromptClick,
|
|
17410
|
+
onPromptEdit: handlePromptEdit,
|
|
17411
|
+
promptSendDisabled: isSubmissionBlocked,
|
|
17412
|
+
promptEditDisabled: isPromptEditDisabled
|
|
17348
17413
|
}
|
|
17349
|
-
),
|
|
17350
|
-
|
|
17351
|
-
|
|
17352
|
-
|
|
17353
|
-
|
|
17354
|
-
|
|
17355
|
-
|
|
17356
|
-
|
|
17357
|
-
|
|
17358
|
-
|
|
17359
|
-
|
|
17360
|
-
|
|
17361
|
-
|
|
17362
|
-
|
|
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
|
|
17414
|
+
) : /* @__PURE__ */ jsxs37("div", { className: "space-y-4", children: [
|
|
17415
|
+
canLoadMoreMessages && /* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-3 py-1", children: [
|
|
17416
|
+
/* @__PURE__ */ jsx54("div", { className: "h-px min-w-8 flex-1 bg-border" }),
|
|
17417
|
+
/* @__PURE__ */ jsx54(
|
|
17418
|
+
Button,
|
|
17419
|
+
{
|
|
17420
|
+
type: "button",
|
|
17421
|
+
variant: "ghost",
|
|
17422
|
+
size: "sm",
|
|
17423
|
+
onClick: handleLoadMoreMessages,
|
|
17424
|
+
disabled: isLoadingMoreMessages,
|
|
17425
|
+
className: "h-7 px-2 text-xs font-medium text-muted-foreground hover:text-foreground",
|
|
17426
|
+
children: isLoadingMoreMessages ? t("chat.loadingMoreMessages") : t("chat.loadMoreMessages")
|
|
17427
|
+
}
|
|
17394
17428
|
),
|
|
17395
|
-
|
|
17429
|
+
/* @__PURE__ */ jsx54("div", { className: "h-px min-w-8 flex-1 bg-border" })
|
|
17430
|
+
] }),
|
|
17431
|
+
messages.map((message, index) => {
|
|
17432
|
+
const messageType = String(message.type);
|
|
17433
|
+
const isAssistantMessage = messageType === "assistant" || messageType === "ai";
|
|
17434
|
+
const isStreamingMessage = stream.isLoading && index === messages.length - 1;
|
|
17435
|
+
const streamingStatus = isAssistantMessage ? getAssistantStreamingStatus(
|
|
17436
|
+
{
|
|
17437
|
+
...message,
|
|
17438
|
+
lastStreamOutputAt: lastStreamOutputAtRef.current
|
|
17439
|
+
},
|
|
17440
|
+
isStreamingMessage,
|
|
17441
|
+
{ now: streamingNow }
|
|
17442
|
+
) : null;
|
|
17443
|
+
if (isAssistantMessage && !hasRenderableAssistantMessage(message) && !streamingStatus) {
|
|
17444
|
+
return null;
|
|
17445
|
+
}
|
|
17446
|
+
const messageContent = typeof message.content === "string" ? message.content : Array.isArray(message.content) ? message.content.map((part) => formatMessageContent(part)).join("") : formatMessageContent(message.content);
|
|
17447
|
+
const hasPlainRenderableContent = messageContent.trim().length > 0;
|
|
17448
|
+
const humanMessage = message;
|
|
17449
|
+
const humanReferences = humanMessage.references ?? [];
|
|
17450
|
+
const humanAttachments = [
|
|
17451
|
+
...humanMessage.fileAssets ?? [],
|
|
17452
|
+
...humanMessage.attachments ?? []
|
|
17453
|
+
];
|
|
17454
|
+
const humanRuntimeCapabilityOptions = message.type === "human" ? humanMessage.runtimeCapabilityOptions ?? getSelectedRuntimeCapabilityOptions(
|
|
17455
|
+
getRecommendedRuntimeCapabilitiesSelection(
|
|
17456
|
+
humanMessage.runtimeCapabilities
|
|
17457
|
+
),
|
|
17458
|
+
runtimeCapabilityOptions
|
|
17459
|
+
) : [];
|
|
17460
|
+
const hasHumanAttachments = message.type === "human" && humanAttachments.length > 0;
|
|
17461
|
+
const canQuoteMessage = message.type === "human" || isAssistantMessage;
|
|
17462
|
+
const quoteSource = message.type === "human" ? t("chat.youLabel") : assistantTitle;
|
|
17463
|
+
if (!isAssistantMessage && !hasPlainRenderableContent && !hasHumanAttachments && humanRuntimeCapabilityOptions.length === 0 && humanReferences.length === 0) {
|
|
17464
|
+
return null;
|
|
17465
|
+
}
|
|
17466
|
+
return /* @__PURE__ */ jsx54(
|
|
17396
17467
|
"div",
|
|
17397
17468
|
{
|
|
17398
17469
|
className: cn(
|
|
17399
|
-
"
|
|
17400
|
-
|
|
17470
|
+
"group flex gap-3",
|
|
17471
|
+
message.type === "human" ? "justify-end" : "justify-start -ml-1"
|
|
17472
|
+
// AI messages: slightly closer to left
|
|
17401
17473
|
),
|
|
17402
|
-
children:
|
|
17403
|
-
|
|
17404
|
-
|
|
17405
|
-
|
|
17406
|
-
|
|
17407
|
-
|
|
17408
|
-
|
|
17409
|
-
|
|
17410
|
-
|
|
17411
|
-
"
|
|
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,
|
|
17474
|
+
children: /* @__PURE__ */ jsxs37(
|
|
17475
|
+
"div",
|
|
17476
|
+
{
|
|
17477
|
+
className: cn(
|
|
17478
|
+
"flex flex-col px-3 overflow-hidden",
|
|
17479
|
+
isAssistantMessage && "min-w-0 flex-1"
|
|
17480
|
+
),
|
|
17481
|
+
children: [
|
|
17482
|
+
/* @__PURE__ */ jsx54(
|
|
17483
|
+
"div",
|
|
17417
17484
|
{
|
|
17418
|
-
|
|
17419
|
-
|
|
17420
|
-
|
|
17421
|
-
},
|
|
17422
|
-
|
|
17423
|
-
|
|
17424
|
-
|
|
17425
|
-
|
|
17426
|
-
})
|
|
17485
|
+
...canQuoteMessage ? {
|
|
17486
|
+
"data-quote-message-id": message.id,
|
|
17487
|
+
"data-quote-source": quoteSource
|
|
17488
|
+
} : {},
|
|
17489
|
+
className: cn(
|
|
17490
|
+
"max-w-full rounded-2xl",
|
|
17491
|
+
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"
|
|
17492
|
+
// AI messages: use chat-specific foreground color
|
|
17427
17493
|
),
|
|
17494
|
+
children: isAssistantMessage ? /* @__PURE__ */ jsx54(
|
|
17495
|
+
AssistantMessage,
|
|
17496
|
+
{
|
|
17497
|
+
message: {
|
|
17498
|
+
...message,
|
|
17499
|
+
type: "assistant"
|
|
17500
|
+
},
|
|
17501
|
+
messages: messages.slice(0, index + 1).map(
|
|
17502
|
+
(item) => ({
|
|
17503
|
+
...item,
|
|
17504
|
+
type: String(item.type) === "ai" ? "assistant" : item.type
|
|
17505
|
+
})
|
|
17506
|
+
),
|
|
17507
|
+
isStreaming: isStreamingMessage,
|
|
17508
|
+
streamingStatus,
|
|
17509
|
+
isThreadRunning: currentThreadIsRunning,
|
|
17510
|
+
organizationId: stream.organizationId,
|
|
17511
|
+
apiUrl: stream.apiUrl
|
|
17512
|
+
}
|
|
17513
|
+
) : /* @__PURE__ */ jsxs37(Fragment9, { children: [
|
|
17514
|
+
message.type === "human" && humanRuntimeCapabilityOptions.length > 0 && /* @__PURE__ */ jsx54("div", { className: "mb-2 flex flex-wrap gap-1.5", children: humanRuntimeCapabilityOptions.map((option) => /* @__PURE__ */ jsxs37(
|
|
17515
|
+
"span",
|
|
17516
|
+
{
|
|
17517
|
+
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",
|
|
17518
|
+
children: [
|
|
17519
|
+
/* @__PURE__ */ jsx54(
|
|
17520
|
+
RuntimeCapabilityIcon,
|
|
17521
|
+
{
|
|
17522
|
+
option,
|
|
17523
|
+
variant: "chip"
|
|
17524
|
+
}
|
|
17525
|
+
),
|
|
17526
|
+
/* @__PURE__ */ jsx54("span", { className: "max-w-[9rem] truncate", children: option.label })
|
|
17527
|
+
]
|
|
17528
|
+
},
|
|
17529
|
+
`${option.type}:${option.id}`
|
|
17530
|
+
)) }),
|
|
17531
|
+
message.type === "human" && humanReferences.length > 0 && /* @__PURE__ */ jsx54("div", { className: "mb-2 flex flex-wrap gap-1.5", children: humanReferences.map((reference) => /* @__PURE__ */ jsx54(
|
|
17532
|
+
ReferenceChip,
|
|
17533
|
+
{
|
|
17534
|
+
reference,
|
|
17535
|
+
variant: "message"
|
|
17536
|
+
},
|
|
17537
|
+
getReferenceKey(reference)
|
|
17538
|
+
)) }),
|
|
17539
|
+
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(
|
|
17540
|
+
"div",
|
|
17541
|
+
{
|
|
17542
|
+
className: "flex items-center gap-1.5 rounded-md bg-primary-foreground/20 px-2 py-1 text-xs",
|
|
17543
|
+
children: [
|
|
17544
|
+
/* @__PURE__ */ jsx54(FileText5, { size: 12 }),
|
|
17545
|
+
/* @__PURE__ */ jsx54("span", { className: "max-w-[100px] truncate", children: file.originalName ?? file.id })
|
|
17546
|
+
]
|
|
17547
|
+
},
|
|
17548
|
+
fileIndex
|
|
17549
|
+
)) }),
|
|
17550
|
+
Array.isArray(message.content) ? message.content.map((part, partIndex) => /* @__PURE__ */ jsx54(
|
|
17551
|
+
"p",
|
|
17552
|
+
{
|
|
17553
|
+
className: "wrap-break-word text-sm leading-relaxed",
|
|
17554
|
+
children: formatMessageContent(part)
|
|
17555
|
+
},
|
|
17556
|
+
`${part.type}-${partIndex}`
|
|
17557
|
+
)) : /* @__PURE__ */ jsx54("span", { className: "wrap-break-word text-sm leading-relaxed", children: formatMessageContent(message.content) })
|
|
17558
|
+
] })
|
|
17559
|
+
}
|
|
17560
|
+
),
|
|
17561
|
+
/* @__PURE__ */ jsx54(
|
|
17562
|
+
MessageActions,
|
|
17563
|
+
{
|
|
17564
|
+
content: messageContent,
|
|
17565
|
+
isAssistant: isAssistantMessage,
|
|
17428
17566
|
isStreaming: isStreamingMessage,
|
|
17429
|
-
|
|
17430
|
-
isThreadRunning: currentThreadIsRunning,
|
|
17431
|
-
organizationId: stream.organizationId,
|
|
17432
|
-
apiUrl: stream.apiUrl
|
|
17567
|
+
onRetry: isAssistantMessage && !stream.isLoading && index === messages.length - 1 ? () => handleRetry(index) : void 0
|
|
17433
17568
|
}
|
|
17434
|
-
)
|
|
17435
|
-
|
|
17436
|
-
|
|
17437
|
-
|
|
17438
|
-
|
|
17439
|
-
|
|
17440
|
-
|
|
17441
|
-
|
|
17442
|
-
|
|
17443
|
-
|
|
17444
|
-
|
|
17445
|
-
|
|
17446
|
-
|
|
17447
|
-
|
|
17448
|
-
|
|
17449
|
-
|
|
17450
|
-
|
|
17451
|
-
|
|
17452
|
-
|
|
17453
|
-
|
|
17454
|
-
|
|
17455
|
-
|
|
17456
|
-
|
|
17457
|
-
|
|
17458
|
-
|
|
17459
|
-
|
|
17460
|
-
|
|
17461
|
-
|
|
17462
|
-
|
|
17463
|
-
|
|
17464
|
-
|
|
17465
|
-
|
|
17466
|
-
|
|
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
|
-
]
|
|
17569
|
+
)
|
|
17570
|
+
]
|
|
17571
|
+
}
|
|
17572
|
+
)
|
|
17573
|
+
},
|
|
17574
|
+
message.id ?? `${message.type}-${index}`
|
|
17575
|
+
);
|
|
17576
|
+
}),
|
|
17577
|
+
showLoadingDots && (() => {
|
|
17578
|
+
const lastMessage = messages[messages.length - 1];
|
|
17579
|
+
const lastMessageType = lastMessage ? String(lastMessage.type) : "";
|
|
17580
|
+
const isLastMessageFromAI = lastMessageType === "ai" || lastMessageType === "assistant";
|
|
17581
|
+
const lastAssistantStatus = isLastMessageFromAI ? getAssistantStreamingStatus(
|
|
17582
|
+
{
|
|
17583
|
+
...lastMessage,
|
|
17584
|
+
lastStreamOutputAt: lastStreamOutputAtRef.current
|
|
17585
|
+
},
|
|
17586
|
+
stream.isLoading,
|
|
17587
|
+
{ now: streamingNow }
|
|
17588
|
+
) : null;
|
|
17589
|
+
if (lastAssistantStatus) return null;
|
|
17590
|
+
const fallbackStreamingStatus = getAssistantStreamingStatus(
|
|
17591
|
+
{
|
|
17592
|
+
status: void 0,
|
|
17593
|
+
reasoning: void 0,
|
|
17594
|
+
lastStreamOutputAt: lastStreamOutputAtRef.current
|
|
17595
|
+
},
|
|
17596
|
+
stream.isLoading,
|
|
17597
|
+
{ now: streamingNow }
|
|
17598
|
+
);
|
|
17599
|
+
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(
|
|
17600
|
+
AssistantStreamingIndicator,
|
|
17601
|
+
{
|
|
17602
|
+
status: fallbackStreamingStatus ?? "loading"
|
|
17492
17603
|
}
|
|
17493
|
-
)
|
|
17494
|
-
}
|
|
17495
|
-
|
|
17496
|
-
|
|
17497
|
-
|
|
17498
|
-
|
|
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
|
-
] }),
|
|
17604
|
+
) }) });
|
|
17605
|
+
})()
|
|
17606
|
+
] })
|
|
17607
|
+
]
|
|
17608
|
+
}
|
|
17609
|
+
),
|
|
17529
17610
|
!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
17611
|
Button,
|
|
17531
17612
|
{
|
|
@@ -17570,386 +17651,394 @@ function Chat({
|
|
|
17570
17651
|
)
|
|
17571
17652
|
}
|
|
17572
17653
|
),
|
|
17573
|
-
/* @__PURE__ */ jsxs37(
|
|
17574
|
-
|
|
17575
|
-
|
|
17576
|
-
|
|
17577
|
-
|
|
17578
|
-
|
|
17579
|
-
|
|
17580
|
-
|
|
17581
|
-
|
|
17582
|
-
|
|
17583
|
-
|
|
17584
|
-
|
|
17585
|
-
|
|
17586
|
-
|
|
17587
|
-
|
|
17588
|
-
|
|
17589
|
-
|
|
17590
|
-
|
|
17591
|
-
|
|
17592
|
-
|
|
17593
|
-
|
|
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"
|
|
17654
|
+
/* @__PURE__ */ jsxs37(
|
|
17655
|
+
"div",
|
|
17656
|
+
{
|
|
17657
|
+
"data-slot": "chatkit-chat-composer",
|
|
17658
|
+
className: "mx-auto w-full p-2 sticky bottom-0 z-10 bg-background",
|
|
17659
|
+
style: chatColumnStyle,
|
|
17660
|
+
children: [
|
|
17661
|
+
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 }),
|
|
17662
|
+
/* @__PURE__ */ jsx54(
|
|
17663
|
+
ChatAttachments,
|
|
17664
|
+
{
|
|
17665
|
+
ref: attachmentsRef,
|
|
17666
|
+
accept: acceptMimes,
|
|
17667
|
+
maxCount: composer?.attachments?.maxCount ?? 10,
|
|
17668
|
+
maxSize: composer?.attachments?.maxSize ?? 100 * 1024 * 1024,
|
|
17669
|
+
retryUploadLabel: t("chat.retryUpload"),
|
|
17670
|
+
uploadFile: uploadContextFile,
|
|
17671
|
+
deleteFile: deleteContextFile,
|
|
17672
|
+
getFileStatus: getContextFileStatus,
|
|
17673
|
+
onStateChange: setAttachmentState
|
|
17674
|
+
}
|
|
17634
17675
|
),
|
|
17635
|
-
children:
|
|
17636
|
-
|
|
17637
|
-
|
|
17638
|
-
|
|
17639
|
-
|
|
17640
|
-
|
|
17641
|
-
|
|
17676
|
+
references.length > 0 && /* @__PURE__ */ jsx54("div", { className: "mb-3 flex flex-wrap gap-2", children: references.map((reference) => /* @__PURE__ */ jsx54(
|
|
17677
|
+
ReferenceChip,
|
|
17678
|
+
{
|
|
17679
|
+
reference,
|
|
17680
|
+
variant: "composer",
|
|
17681
|
+
onRemove: () => setReferences(
|
|
17682
|
+
(previous) => previous.filter(
|
|
17683
|
+
(item) => getReferenceKey(item) !== getReferenceKey(reference)
|
|
17642
17684
|
)
|
|
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
17685
|
),
|
|
17661
|
-
|
|
17662
|
-
|
|
17663
|
-
|
|
17664
|
-
|
|
17665
|
-
|
|
17666
|
-
|
|
17667
|
-
|
|
17668
|
-
|
|
17686
|
+
removeLabel: t("composer.removeReference")
|
|
17687
|
+
},
|
|
17688
|
+
getReferenceKey(reference)
|
|
17689
|
+
)) }),
|
|
17690
|
+
detachedRunRuntimeCapabilityOptions.length > 0 && /* @__PURE__ */ jsxs37("div", { className: "mb-2 flex flex-wrap items-center gap-2", children: [
|
|
17691
|
+
/* @__PURE__ */ jsx54("span", { className: "text-xs text-muted-foreground", children: t("composer.capabilities.runOnly") }),
|
|
17692
|
+
detachedRunRuntimeCapabilityOptions.map((option) => /* @__PURE__ */ jsxs37(
|
|
17693
|
+
"span",
|
|
17694
|
+
{
|
|
17695
|
+
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",
|
|
17696
|
+
children: [
|
|
17697
|
+
/* @__PURE__ */ jsx54(RuntimeCapabilityIcon, { option, variant: "chip" }),
|
|
17698
|
+
/* @__PURE__ */ jsx54("span", { className: "max-w-40 truncate", children: option.label }),
|
|
17699
|
+
/* @__PURE__ */ jsx54(
|
|
17700
|
+
"button",
|
|
17701
|
+
{
|
|
17702
|
+
type: "button",
|
|
17703
|
+
onClick: () => removeRunRuntimeCapability(option),
|
|
17704
|
+
className: "rounded-full p-0.5 hover:bg-primary/15",
|
|
17705
|
+
title: t("composer.capabilities.removeRunCapability"),
|
|
17706
|
+
"aria-label": t("composer.capabilities.removeRunCapability"),
|
|
17707
|
+
children: /* @__PURE__ */ jsx54(X6, { size: 11 })
|
|
17708
|
+
}
|
|
17709
|
+
)
|
|
17710
|
+
]
|
|
17711
|
+
},
|
|
17712
|
+
`${option.type}:${option.id}`
|
|
17713
|
+
))
|
|
17714
|
+
] }),
|
|
17715
|
+
showGoalStatus && /* @__PURE__ */ jsxs37(
|
|
17716
|
+
"div",
|
|
17717
|
+
{
|
|
17718
|
+
className: cn(
|
|
17719
|
+
"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",
|
|
17720
|
+
isGoalObjectiveExpanded ? "items-start" : "items-center"
|
|
17721
|
+
),
|
|
17722
|
+
children: [
|
|
17723
|
+
/* @__PURE__ */ jsx54(
|
|
17724
|
+
Target2,
|
|
17669
17725
|
{
|
|
17670
|
-
|
|
17671
|
-
|
|
17672
|
-
|
|
17673
|
-
|
|
17674
|
-
onClick: () => {
|
|
17675
|
-
const prefix = "/goal edit ";
|
|
17676
|
-
setComposerText(`${prefix}${threadGoal.objective}`);
|
|
17677
|
-
},
|
|
17678
|
-
children: /* @__PURE__ */ jsx54(Pencil4, { className: "size-3" })
|
|
17726
|
+
className: cn(
|
|
17727
|
+
"size-4 shrink-0 text-muted-foreground",
|
|
17728
|
+
isGoalObjectiveExpanded && "mt-1"
|
|
17729
|
+
)
|
|
17679
17730
|
}
|
|
17680
|
-
)
|
|
17681
|
-
/* @__PURE__ */
|
|
17682
|
-
|
|
17683
|
-
|
|
17684
|
-
|
|
17685
|
-
|
|
17686
|
-
|
|
17687
|
-
|
|
17688
|
-
|
|
17689
|
-
|
|
17690
|
-
|
|
17691
|
-
|
|
17692
|
-
|
|
17693
|
-
|
|
17694
|
-
|
|
17695
|
-
|
|
17696
|
-
|
|
17697
|
-
|
|
17731
|
+
),
|
|
17732
|
+
/* @__PURE__ */ jsxs37("div", { className: "min-w-0 flex-1", children: [
|
|
17733
|
+
/* @__PURE__ */ jsxs37("div", { className: "flex min-w-0 items-center gap-2", children: [
|
|
17734
|
+
/* @__PURE__ */ jsx54("span", { className: "font-medium", children: t("chat.goal.label") }),
|
|
17735
|
+
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}`) }),
|
|
17736
|
+
isGoalLoading && /* @__PURE__ */ jsx54(Loader29, { className: "size-3 animate-spin text-muted-foreground" })
|
|
17737
|
+
] }),
|
|
17738
|
+
/* @__PURE__ */ jsx54(
|
|
17739
|
+
"div",
|
|
17740
|
+
{
|
|
17741
|
+
className: cn(
|
|
17742
|
+
"mt-0.5 text-muted-foreground",
|
|
17743
|
+
threadGoal?.objective && !goalError && isGoalObjectiveExpanded ? "whitespace-pre-wrap break-words" : "truncate"
|
|
17744
|
+
),
|
|
17745
|
+
children: goalError || threadGoal?.objective
|
|
17746
|
+
}
|
|
17747
|
+
),
|
|
17748
|
+
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", {
|
|
17749
|
+
elapsed: formatGoalElapsed(displayedGoalElapsedSeconds)
|
|
17750
|
+
}) }) })
|
|
17751
|
+
] }),
|
|
17752
|
+
threadGoal && /* @__PURE__ */ jsxs37("div", { className: "flex shrink-0 items-center gap-1", children: [
|
|
17753
|
+
/* @__PURE__ */ jsxs37(Tooltip, { children: [
|
|
17754
|
+
/* @__PURE__ */ jsx54(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx54(
|
|
17755
|
+
Button,
|
|
17756
|
+
{
|
|
17757
|
+
type: "button",
|
|
17758
|
+
variant: "ghost",
|
|
17759
|
+
size: "icon-xs",
|
|
17760
|
+
disabled: isGoalLoading,
|
|
17761
|
+
onClick: () => {
|
|
17762
|
+
const prefix = "/goal edit ";
|
|
17763
|
+
setComposerText(`${prefix}${threadGoal.objective}`);
|
|
17764
|
+
},
|
|
17765
|
+
children: /* @__PURE__ */ jsx54(Pencil4, { className: "size-3" })
|
|
17698
17766
|
}
|
|
17699
|
-
}),
|
|
17700
|
-
|
|
17701
|
-
}
|
|
17702
|
-
|
|
17703
|
-
|
|
17704
|
-
|
|
17705
|
-
|
|
17706
|
-
|
|
17707
|
-
|
|
17708
|
-
|
|
17709
|
-
|
|
17710
|
-
|
|
17711
|
-
|
|
17712
|
-
|
|
17713
|
-
|
|
17714
|
-
|
|
17715
|
-
|
|
17716
|
-
|
|
17717
|
-
|
|
17718
|
-
|
|
17719
|
-
|
|
17767
|
+
) }),
|
|
17768
|
+
/* @__PURE__ */ jsx54(TooltipContent, { children: t("chat.goal.edit") })
|
|
17769
|
+
] }),
|
|
17770
|
+
/* @__PURE__ */ jsxs37(Tooltip, { children: [
|
|
17771
|
+
/* @__PURE__ */ jsx54(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx54(
|
|
17772
|
+
Button,
|
|
17773
|
+
{
|
|
17774
|
+
type: "button",
|
|
17775
|
+
variant: "ghost",
|
|
17776
|
+
size: "icon-xs",
|
|
17777
|
+
disabled: isGoalLoading,
|
|
17778
|
+
onClick: () => void handleGoalCommand({
|
|
17779
|
+
args: threadGoal.status === "paused" ? "resume" : "pause",
|
|
17780
|
+
commandSource: {
|
|
17781
|
+
type: "slash_command",
|
|
17782
|
+
name: "goal",
|
|
17783
|
+
source: "runtime",
|
|
17784
|
+
executionType: "insert_invocation"
|
|
17785
|
+
}
|
|
17786
|
+
}),
|
|
17787
|
+
children: threadGoal.status === "paused" ? /* @__PURE__ */ jsx54(Play, { className: "size-3" }) : /* @__PURE__ */ jsx54(Pause, { className: "size-3" })
|
|
17720
17788
|
}
|
|
17721
|
-
}),
|
|
17722
|
-
|
|
17723
|
-
}
|
|
17724
|
-
|
|
17725
|
-
|
|
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,
|
|
17789
|
+
) }),
|
|
17790
|
+
/* @__PURE__ */ jsx54(TooltipContent, { children: threadGoal.status === "paused" ? t("chat.goal.resume") : t("chat.goal.pause") })
|
|
17791
|
+
] }),
|
|
17792
|
+
/* @__PURE__ */ jsxs37(Tooltip, { children: [
|
|
17793
|
+
/* @__PURE__ */ jsx54(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx54(
|
|
17794
|
+
Button,
|
|
17739
17795
|
{
|
|
17740
|
-
|
|
17741
|
-
|
|
17742
|
-
|
|
17743
|
-
|
|
17796
|
+
type: "button",
|
|
17797
|
+
variant: "ghost",
|
|
17798
|
+
size: "icon-xs",
|
|
17799
|
+
disabled: isGoalLoading,
|
|
17800
|
+
onClick: () => void handleGoalCommand({
|
|
17801
|
+
args: "clear",
|
|
17802
|
+
commandSource: {
|
|
17803
|
+
type: "slash_command",
|
|
17804
|
+
name: "goal",
|
|
17805
|
+
source: "runtime",
|
|
17806
|
+
executionType: "insert_invocation"
|
|
17807
|
+
}
|
|
17808
|
+
}),
|
|
17809
|
+
children: /* @__PURE__ */ jsx54(Trash23, { className: "size-3" })
|
|
17744
17810
|
}
|
|
17745
|
-
)
|
|
17746
|
-
|
|
17747
|
-
|
|
17748
|
-
|
|
17749
|
-
|
|
17750
|
-
|
|
17751
|
-
|
|
17752
|
-
|
|
17753
|
-
|
|
17754
|
-
|
|
17755
|
-
|
|
17756
|
-
|
|
17757
|
-
|
|
17758
|
-
|
|
17759
|
-
|
|
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,
|
|
17811
|
+
) }),
|
|
17812
|
+
/* @__PURE__ */ jsx54(TooltipContent, { children: t("chat.goal.clear") })
|
|
17813
|
+
] }),
|
|
17814
|
+
threadGoal.objective && !goalError && /* @__PURE__ */ jsxs37(Tooltip, { children: [
|
|
17815
|
+
/* @__PURE__ */ jsx54(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsx54(
|
|
17816
|
+
Button,
|
|
17817
|
+
{
|
|
17818
|
+
type: "button",
|
|
17819
|
+
variant: "ghost",
|
|
17820
|
+
size: "icon-xs",
|
|
17821
|
+
"aria-expanded": isGoalObjectiveExpanded,
|
|
17822
|
+
"aria-label": isGoalObjectiveExpanded ? t("chat.goal.collapseObjective") : t("chat.goal.expandObjective"),
|
|
17823
|
+
onClick: () => setIsGoalObjectiveExpanded((expanded) => !expanded),
|
|
17824
|
+
children: /* @__PURE__ */ jsx54(
|
|
17825
|
+
ChevronDown5,
|
|
17863
17826
|
{
|
|
17864
|
-
|
|
17865
|
-
|
|
17827
|
+
className: cn(
|
|
17828
|
+
"size-3 transition-transform",
|
|
17829
|
+
isGoalObjectiveExpanded && "rotate-180"
|
|
17830
|
+
)
|
|
17866
17831
|
}
|
|
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
|
|
17832
|
+
)
|
|
17900
17833
|
}
|
|
17901
17834
|
) }),
|
|
17902
|
-
|
|
17903
|
-
|
|
17904
|
-
|
|
17905
|
-
|
|
17835
|
+
/* @__PURE__ */ jsx54(TooltipContent, { children: isGoalObjectiveExpanded ? t("chat.goal.collapseObjective") : t("chat.goal.expandObjective") })
|
|
17836
|
+
] })
|
|
17837
|
+
] })
|
|
17838
|
+
]
|
|
17839
|
+
}
|
|
17840
|
+
),
|
|
17841
|
+
/* @__PURE__ */ jsx54(
|
|
17842
|
+
PendingRuntimeServices,
|
|
17843
|
+
{
|
|
17844
|
+
state: stream.runtimeActivities.sandboxServices,
|
|
17845
|
+
onStopService: (serviceId) => stream.stopRuntimeActivityItem("sandbox-services", serviceId),
|
|
17846
|
+
attachToComposer: !hasPendingTodos && !hasPendingFollowUps,
|
|
17847
|
+
className: hasPendingTodos || hasPendingFollowUps ? "mb-2" : void 0
|
|
17848
|
+
}
|
|
17849
|
+
),
|
|
17850
|
+
/* @__PURE__ */ jsx54(
|
|
17851
|
+
PendingTodos,
|
|
17852
|
+
{
|
|
17853
|
+
snapshot: stream.todos,
|
|
17854
|
+
attachToComposer: !hasPendingFollowUps,
|
|
17855
|
+
className: hasPendingFollowUps ? "mb-2" : void 0
|
|
17856
|
+
}
|
|
17857
|
+
),
|
|
17858
|
+
/* @__PURE__ */ jsx54(
|
|
17859
|
+
PendingFollowUps,
|
|
17860
|
+
{
|
|
17861
|
+
items: pendingFollowUps,
|
|
17862
|
+
isLoading: stream.isLoading,
|
|
17863
|
+
onPromoteToSteer: (id) => stream.promotePendingFollowUpToSteer(id),
|
|
17864
|
+
canSendNow: stream.canSendPendingFollowUpNow,
|
|
17865
|
+
onSendNow: (id) => stream.sendPendingFollowUpNow(id),
|
|
17866
|
+
onEdit: handleEditPendingFollowUp,
|
|
17867
|
+
onRemove: stream.removePendingFollowUp,
|
|
17868
|
+
attachToComposer: true
|
|
17869
|
+
}
|
|
17870
|
+
),
|
|
17871
|
+
/* @__PURE__ */ jsx54(
|
|
17872
|
+
RequestUserInputPanel,
|
|
17873
|
+
{
|
|
17874
|
+
request: stream.pendingRequestUserInput,
|
|
17875
|
+
onSubmit: stream.submitRequestUserInput,
|
|
17876
|
+
onDismiss: stream.stop,
|
|
17877
|
+
attachToComposer: true
|
|
17878
|
+
}
|
|
17879
|
+
),
|
|
17880
|
+
/* @__PURE__ */ jsx54(
|
|
17881
|
+
HITLApprovalPanel,
|
|
17882
|
+
{
|
|
17883
|
+
request: stream.pendingHITLRequest,
|
|
17884
|
+
onSubmit: stream.submitHITLDecision,
|
|
17885
|
+
onDismiss: stream.stop,
|
|
17886
|
+
attachToComposer: true
|
|
17887
|
+
}
|
|
17888
|
+
),
|
|
17889
|
+
runtimeCapabilityPalette && /* @__PURE__ */ jsx54(
|
|
17890
|
+
SlashPalette,
|
|
17891
|
+
{
|
|
17892
|
+
palette: runtimeCapabilityPalette,
|
|
17893
|
+
options: slashPaletteOptions,
|
|
17894
|
+
paletteRef: slashPaletteRef,
|
|
17895
|
+
optionRefs: slashPaletteOptionRefs,
|
|
17896
|
+
panelRoundedClass: getPanelRoundedClass(theme.radius),
|
|
17897
|
+
itemRoundedClass: getMenuItemRoundedClass(theme.radius),
|
|
17898
|
+
emptyLabel: slashPaletteEmptyLabel,
|
|
17899
|
+
capabilityEmptyLabels: slashPaletteCapabilityEmptyLabels,
|
|
17900
|
+
onSelect: selectSlashPaletteOption
|
|
17901
|
+
}
|
|
17902
|
+
),
|
|
17903
|
+
/* @__PURE__ */ jsx54("form", { className: "flex items-end", onSubmit: handleSubmit, children: /* @__PURE__ */ jsxs37(
|
|
17904
|
+
"div",
|
|
17905
|
+
{
|
|
17906
|
+
"data-slot": "composer-input-shell",
|
|
17907
|
+
"data-layout": isComposerStacked ? "stacked" : "inline",
|
|
17908
|
+
className: cn(
|
|
17909
|
+
"relative flex flex-1 overflow-hidden",
|
|
17910
|
+
"bg-background border border-border shadow-sm",
|
|
17911
|
+
isComposerStacked ? "min-h-[5.5rem] px-1.5 pt-1.5 pb-12" : "min-h-12 px-1.5 py-1",
|
|
17912
|
+
"focus-within:border-muted-foreground/30 focus-within:shadow-md",
|
|
17913
|
+
"transition-[min-height,padding,border-radius,box-shadow,border-color] duration-300 ease-[cubic-bezier(0.2,0.8,0.2,1)]",
|
|
17914
|
+
composerInputRoundedClass
|
|
17915
|
+
),
|
|
17916
|
+
children: [
|
|
17917
|
+
/* @__PURE__ */ jsx54(
|
|
17918
|
+
"div",
|
|
17919
|
+
{
|
|
17920
|
+
ref: composerInputRef,
|
|
17921
|
+
role: "textbox",
|
|
17922
|
+
"aria-multiline": "true",
|
|
17923
|
+
"aria-disabled": missingConfig || isHistoryLoading || hasPendingInteractiveRequest,
|
|
17924
|
+
contentEditable: !(missingConfig || isHistoryLoading || hasPendingInteractiveRequest),
|
|
17925
|
+
suppressContentEditableWarning: true,
|
|
17926
|
+
onInput: handleComposerInput,
|
|
17927
|
+
onCompositionEnd: handleComposerCompositionEnd,
|
|
17928
|
+
onSelect: handleComposerSelect,
|
|
17929
|
+
onPaste: handleComposerPaste,
|
|
17930
|
+
onKeyDown: handleComposerKeyDown,
|
|
17931
|
+
"data-placeholder": inputPlaceholder,
|
|
17932
|
+
className: cn(
|
|
17933
|
+
"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)]",
|
|
17934
|
+
isComposerStacked ? "px-2 py-1.5" : "py-1 pr-11 pl-11 mt-1",
|
|
17935
|
+
"empty:before:pointer-events-none empty:before:text-muted-foreground empty:before:content-[attr(data-placeholder)]",
|
|
17936
|
+
(missingConfig || isHistoryLoading || hasPendingInteractiveRequest) && "cursor-not-allowed opacity-50"
|
|
17937
|
+
),
|
|
17938
|
+
children: renderedComposerParts.map(
|
|
17939
|
+
(part, index) => part.type === "text" ? /* @__PURE__ */ jsx54(React49.Fragment, { children: part.text }, `text-${index}`) : /* @__PURE__ */ jsxs37(
|
|
17940
|
+
"span",
|
|
17906
17941
|
{
|
|
17907
|
-
|
|
17908
|
-
|
|
17909
|
-
|
|
17910
|
-
|
|
17911
|
-
|
|
17942
|
+
"data-composer-capability-key": part.key,
|
|
17943
|
+
"data-capability-type": part.capability.type,
|
|
17944
|
+
"data-capability-id": part.capability.id,
|
|
17945
|
+
contentEditable: false,
|
|
17946
|
+
className: "mx-0.5 inline-flex max-w-[14rem] select-none items-center gap-1 text-sm font-semibold text-primary align-baseline",
|
|
17947
|
+
children: [
|
|
17948
|
+
/* @__PURE__ */ jsx54(
|
|
17949
|
+
RuntimeCapabilityIcon,
|
|
17950
|
+
{
|
|
17951
|
+
option: part.capability,
|
|
17952
|
+
variant: "chip"
|
|
17953
|
+
}
|
|
17954
|
+
),
|
|
17955
|
+
/* @__PURE__ */ jsx54("span", { className: "truncate", children: part.capability.label })
|
|
17956
|
+
]
|
|
17957
|
+
},
|
|
17958
|
+
part.key
|
|
17912
17959
|
)
|
|
17913
|
-
|
|
17914
|
-
|
|
17915
|
-
|
|
17916
|
-
|
|
17917
|
-
|
|
17918
|
-
|
|
17919
|
-
|
|
17920
|
-
|
|
17921
|
-
|
|
17922
|
-
|
|
17923
|
-
|
|
17924
|
-
|
|
17960
|
+
)
|
|
17961
|
+
},
|
|
17962
|
+
composerDomVersion
|
|
17963
|
+
),
|
|
17964
|
+
/* @__PURE__ */ jsxs37(
|
|
17965
|
+
"div",
|
|
17966
|
+
{
|
|
17967
|
+
"data-slot": "composer-action-bar",
|
|
17968
|
+
className: "pointer-events-none absolute inset-x-1.5 bottom-1 flex min-h-10 items-center justify-between gap-2",
|
|
17969
|
+
children: [
|
|
17970
|
+
/* @__PURE__ */ jsxs37("div", { className: "pointer-events-none flex min-w-0 flex-1 items-center gap-1.5", children: [
|
|
17971
|
+
/* @__PURE__ */ jsx54("div", { className: "pointer-events-auto flex shrink-0 items-center gap-1.5", children: /* @__PURE__ */ jsx54(
|
|
17972
|
+
ComposerMenu,
|
|
17973
|
+
{
|
|
17974
|
+
composer,
|
|
17975
|
+
onAttachmentClick: handleAttachmentClick,
|
|
17976
|
+
onToolSelect: handleToolSelect,
|
|
17977
|
+
selectedTool,
|
|
17978
|
+
planModeEnabled,
|
|
17979
|
+
onPlanModeChange: setPlanModeEnabled,
|
|
17980
|
+
goalCommandAvailable,
|
|
17981
|
+
goalPanelOpen: isGoalModeOpen,
|
|
17982
|
+
onGoalPanelOpenChange: handleGoalPanelOpenChange,
|
|
17983
|
+
runtimeCapabilities: runtimeCapabilitiesReady ? runtimeCapabilities : null,
|
|
17984
|
+
selectedRuntimeCapabilities: effectiveSessionRuntimeCapabilities,
|
|
17985
|
+
onRuntimeCapabilityToggle: handleSessionRuntimeCapabilityToggle,
|
|
17986
|
+
disabled: missingConfig || isHistoryLoading || hasPendingInteractiveRequest
|
|
17987
|
+
}
|
|
17988
|
+
) }),
|
|
17989
|
+
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: [
|
|
17990
|
+
/* @__PURE__ */ jsx54("span", { className: "truncate", children: selectedTool.shortLabel ?? selectedTool.label }),
|
|
17991
|
+
/* @__PURE__ */ jsx54(
|
|
17992
|
+
"button",
|
|
17993
|
+
{
|
|
17994
|
+
type: "button",
|
|
17995
|
+
onClick: () => setSelectedTool(null),
|
|
17996
|
+
className: "shrink-0 rounded-full p-0.5 text-primary/70 hover:bg-primary/10 hover:text-primary",
|
|
17997
|
+
children: /* @__PURE__ */ jsx54(X6, { size: 12 })
|
|
17998
|
+
}
|
|
17999
|
+
)
|
|
18000
|
+
] })
|
|
18001
|
+
] }),
|
|
18002
|
+
/* @__PURE__ */ jsx54("div", { className: "pointer-events-auto shrink-0", children: /* @__PURE__ */ jsx54(
|
|
18003
|
+
SendButton,
|
|
17925
18004
|
{
|
|
17926
|
-
|
|
17927
|
-
|
|
18005
|
+
disabled: isSendDisabled,
|
|
18006
|
+
isLoading: stream.isLoading,
|
|
18007
|
+
showStop: stream.isLoading && (!trimmedDraft || hasPendingInteractiveRequest),
|
|
18008
|
+
onStop: () => stream.stop(),
|
|
18009
|
+
stopLabel: t("chat.stop"),
|
|
18010
|
+
sendLabel: t("chat.send"),
|
|
18011
|
+
shortcuts: stream.isLoading && trimmedDraft ? [
|
|
18012
|
+
{
|
|
18013
|
+
label: t("chat.followUps.queue"),
|
|
18014
|
+
keys: "Enter"
|
|
18015
|
+
}
|
|
18016
|
+
] : void 0
|
|
17928
18017
|
}
|
|
17929
|
-
|
|
17930
|
-
|
|
17931
|
-
|
|
17932
|
-
|
|
17933
|
-
|
|
17934
|
-
|
|
17935
|
-
|
|
17936
|
-
|
|
17937
|
-
|
|
17938
|
-
|
|
17939
|
-
|
|
17940
|
-
|
|
17941
|
-
|
|
17942
|
-
|
|
17943
|
-
|
|
18018
|
+
) })
|
|
18019
|
+
]
|
|
18020
|
+
}
|
|
18021
|
+
)
|
|
18022
|
+
]
|
|
18023
|
+
}
|
|
18024
|
+
) }),
|
|
18025
|
+
disclaimer?.text && /* @__PURE__ */ jsx54(
|
|
18026
|
+
"p",
|
|
18027
|
+
{
|
|
18028
|
+
className: cn(
|
|
18029
|
+
"mt-2 text-center text-xs",
|
|
18030
|
+
disclaimer.highContrast ? "text-foreground" : "text-muted-foreground"
|
|
18031
|
+
),
|
|
18032
|
+
children: disclaimer.text
|
|
18033
|
+
}
|
|
17944
18034
|
),
|
|
17945
|
-
children:
|
|
17946
|
-
|
|
17947
|
-
|
|
17948
|
-
|
|
17949
|
-
|
|
17950
|
-
|
|
17951
|
-
|
|
17952
|
-
] }),
|
|
18035
|
+
/* @__PURE__ */ jsxs37("div", { className: "mt-2 flex items-center justify-center gap-2 text-xs text-muted-foreground", children: [
|
|
18036
|
+
/* @__PURE__ */ jsx54("span", { children: t("chat.poweredBy") }),
|
|
18037
|
+
/* @__PURE__ */ jsx54(ContextUsageIndicator, { className: "absolute right-4" })
|
|
18038
|
+
] })
|
|
18039
|
+
]
|
|
18040
|
+
}
|
|
18041
|
+
),
|
|
17953
18042
|
/* @__PURE__ */ jsx54(
|
|
17954
18043
|
SettingsSheet,
|
|
17955
18044
|
{
|