chatlab-cli 0.36.2 → 0.37.1
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/{chat-command-SEV6N3AR.mjs → chat-command-YAFRLHMQ.mjs} +15 -16
- package/dist/{chat-command-SEV6N3AR.mjs.map → chat-command-YAFRLHMQ.mjs.map} +1 -1
- package/dist/{chunk-6EZPD3XJ.mjs → chunk-2PY4XCH3.mjs} +6 -3
- package/dist/chunk-2PY4XCH3.mjs.map +1 -0
- package/dist/{chunk-HWIXK7SU.mjs → chunk-73TJ2S7W.mjs} +1643 -3
- package/dist/chunk-73TJ2S7W.mjs.map +1 -0
- package/dist/{chunk-YUH3H3QW.mjs → chunk-ARIBCH47.mjs} +96 -5
- package/dist/chunk-ARIBCH47.mjs.map +1 -0
- package/dist/{chunk-WRBFV2GX.mjs → chunk-FPVRSXQ4.mjs} +49 -55
- package/dist/chunk-FPVRSXQ4.mjs.map +1 -0
- package/dist/{chunk-VREVDZ4Q.mjs → chunk-GKCIRKOH.mjs} +1934 -35
- package/dist/chunk-GKCIRKOH.mjs.map +1 -0
- package/dist/{chunk-TJ3NOBVI.mjs → chunk-JWJREWVN.mjs} +119 -288
- package/dist/chunk-JWJREWVN.mjs.map +1 -0
- package/dist/{chunk-TWH422HC.mjs → chunk-MMTEGUQA.mjs} +3 -3
- package/dist/{chunk-VUYWUHWW.mjs → chunk-N4SB6QZV.mjs} +3 -3
- package/dist/chunk-N4SB6QZV.mjs.map +1 -0
- package/dist/{chunk-TRGR3KKJ.mjs → chunk-OTYNMDDL.mjs} +2643 -682
- package/dist/chunk-OTYNMDDL.mjs.map +1 -0
- package/dist/{chunk-CH5YAZ4Q.mjs → chunk-PDQV4RUA.mjs} +2 -2
- package/dist/{chunk-WJQOXOMR.mjs → chunk-UP6JIV3S.mjs} +285 -41
- package/dist/chunk-UP6JIV3S.mjs.map +1 -0
- package/dist/chunk-WDLO7OLX.mjs +101 -0
- package/dist/chunk-WDLO7OLX.mjs.map +1 -0
- package/dist/cli.mjs +9 -9
- package/dist/contacts-worker.mjs +2 -2
- package/dist/global-insight-worker.mjs +1 -1
- package/dist/{http-237XYNRT.mjs → http-LPFPVTBC.mjs} +12 -12
- package/dist/{import-R2E2TFAK.mjs → import-T4WX2ZJL.mjs} +7 -7
- package/dist/index.mjs +12 -12
- package/dist/{mcp-BED4AARV.mjs → mcp-SMF3NWIN.mjs} +8 -8
- package/dist/people-relationships-worker.mjs +2 -2
- package/dist/semantic-index-worker.mjs +1 -1
- package/dist/{src-AYMALWU5.mjs → src-EGLLMTAU.mjs} +44 -14
- package/dist/{stream-import-RXNSOOYH.mjs → stream-import-2BXJTTCE.mjs} +7 -7
- package/dist/{worker-runtime-JGAZU7MC.mjs → worker-runtime-RDLSPXFT.mjs} +5 -5
- package/dist-cli-web/assets/AISettingsTab-CEhrXlYR.js +1 -0
- package/dist-cli-web/assets/{AboutTab-DCM1-glA.js → AboutTab-Bbu0SsMM.js} +1 -1
- package/dist-cli-web/assets/ActionToolsPanel-DDNXXH8v.css +1 -0
- package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang-IB1yZxCE.js +75 -0
- package/dist-cli-web/assets/{Alert-D-egBWcb.js → Alert-510jTN3l.js} +1 -1
- package/dist-cli-web/assets/ApiSettingsTab-Bi1GRMN4.js +2 -0
- package/dist-cli-web/assets/BatchManageTab-DhnqMCSM.js +1 -0
- package/dist-cli-web/assets/{BufferResource-BE2_2bZK.js → BufferResource-CKZxnACp.js} +1 -1
- package/dist-cli-web/assets/{CanvasRenderer-DDKdvEYQ.js → CanvasRenderer-BeK5POBy.js} +1 -1
- package/dist-cli-web/assets/CardDecoration-RuBA3N2j.js +1 -0
- package/dist-cli-web/assets/ChatRecordDrawer-BY_-lIEj.js +1 -0
- package/dist-cli-web/assets/{ChatRecordWorkspace-DqUI4QiU.js → ChatRecordWorkspace-7prKd-Tq.js} +1 -1
- package/dist-cli-web/assets/Checkbox-_eH64bb0.js +1 -0
- package/dist-cli-web/assets/DataDirCleanupNotice-BHaXwlfr.js +1 -0
- package/dist-cli-web/assets/{DatePicker.vue_vue_type_script_setup_true_lang-sPDoPzZ9.js → DatePicker.vue_vue_type_script_setup_true_lang-D9Ul_GYz.js} +1 -1
- package/dist-cli-web/assets/{DebugToolsPanel-BIHA6jw4.js → DebugToolsPanel-ByKItGrS.js} +1 -1
- package/dist-cli-web/assets/EChart.vue_vue_type_script_setup_true_lang-DubnuUXI.js +1 -0
- package/dist-cli-web/assets/EChartBar.vue_vue_type_script_setup_true_lang-DKNCZuFm.js +1 -0
- package/dist-cli-web/assets/EChartLine.vue_vue_type_script_setup_true_lang-Fl7xAOSR.js +1 -0
- package/dist-cli-web/assets/EChartWordcloud-C6XM4KOX.js +1 -0
- package/dist-cli-web/assets/FileDropZone.vue_vue_type_script_setup_true_lang-DYDdRSNE.js +1 -0
- package/dist-cli-web/assets/{Filter-kO4dIDJ2.js → Filter-CByj_rCR.js} +1 -1
- package/dist-cli-web/assets/GlobalTaskBar-BdELjzrs.js +1 -0
- package/dist-cli-web/assets/GlobalTaskBar-haLzezqY.css +1 -0
- package/dist-cli-web/assets/GroupRelationshipGalaxyView-CnzPEgUS.js +1 -0
- package/dist-cli-web/assets/Label-DCIcxkhU.js +1 -0
- package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-BBcCt_Qm.js +1 -0
- package/dist-cli-web/assets/MessageExportModal-DNU16Bs8.js +1 -0
- package/dist-cli-web/assets/PageHeader-CKeZjNNR.js +1 -0
- package/dist-cli-web/assets/PageHeader-CPLgiKT8.css +1 -0
- package/dist-cli-web/assets/{PageTabs.vue_vue_type_script_setup_true_lang-Cgungbjl.js → PageTabs.vue_vue_type_script_setup_true_lang-C8M3wNNH.js} +1 -1
- package/dist-cli-web/assets/{RelationshipGalaxyCanvas-Cod1JX9m.js → RelationshipGalaxyCanvas-CDhljGyJ.js} +3 -3
- package/dist-cli-web/assets/{RelationshipGalaxyThreeCanvas-CkefzeFJ.js → RelationshipGalaxyThreeCanvas-BP8fsvvf.js} +1 -1
- package/dist-cli-web/assets/{RenderTargetSystem-SuQ7cbze.js → RenderTargetSystem-D76QrDT_.js} +1 -1
- package/dist-cli-web/assets/{RovingFocusItem-psoFYxrC.js → RovingFocusItem-BJMUQ5DJ.js} +1 -1
- package/dist-cli-web/assets/{ScreenCaptureModal-D4r9ixKh.js → ScreenCaptureModal-DkX4z-M1.js} +1 -1
- package/dist-cli-web/assets/SectionTabs.vue_vue_type_script_setup_true_lang-qFhJO5B0.js +1 -0
- package/dist-cli-web/assets/Select-B5oJc5y1.js +1 -0
- package/dist-cli-web/assets/SettingsModal-BO-QKQ2h.js +2 -0
- package/dist-cli-web/assets/{StorageTab-DhSJ-0Ir.js → StorageTab-CPPXXaRm.js} +1 -1
- package/dist-cli-web/assets/Switch-CDk3LZ4_.js +1 -0
- package/dist-cli-web/assets/Tabs-BMq9wODW.js +1 -0
- package/dist-cli-web/assets/{Tabs-Bnm_Q7yW.js → Tabs-DqWTBV8x.js} +1 -1
- package/dist-cli-web/assets/ThemeCard.vue_vue_type_script_setup_true_lang-D2outEOV.js +1 -0
- package/dist-cli-web/assets/{TimeSelect.vue_vue_type_script_setup_true_lang-Cjz8Wpg-.js → TimeSelect.vue_vue_type_script_setup_true_lang-BcflxP_U.js} +1 -1
- package/dist-cli-web/assets/{VisuallyHiddenInput-Bo_XwaLu.js → VisuallyHiddenInput-BAFpkxMI.js} +1 -1
- package/dist-cli-web/assets/{WebGLRenderer-D1x9WZRj.js → WebGLRenderer-DjCPvR_O.js} +1 -1
- package/dist-cli-web/assets/{WebGPURenderer-37Nw-tLm.js → WebGPURenderer-C2B_u03z.js} +1 -1
- package/dist-cli-web/assets/aiChat--CR4g2M7.js +8 -0
- package/dist-cli-web/assets/base-F6s0vTrr.js +1 -0
- package/dist-cli-web/assets/{browserAll-CWrz_-4U.js → browserAll-DiUAZg4L.js} +1 -1
- package/dist-cli-web/assets/chatMessages-BGRbSlvD.css +1 -0
- package/dist-cli-web/assets/chatMessages-Bd33SSXI.js +147 -0
- package/dist-cli-web/assets/cli-web-DoibEdj2.js +1 -0
- package/dist-cli-web/assets/{fetch-CkXgOxcu.js → fetch-4nh1LaVF.js} +3 -3
- package/dist-cli-web/assets/fetch-7lUvXbhU.js +1 -0
- package/dist-cli-web/assets/{fetch-CFpLXWTe.js → fetch-BEaW1j5H.js} +1 -1
- package/dist-cli-web/assets/{fetch-CgA1peJD.js → fetch-B_YFABxI.js} +1 -1
- package/dist-cli-web/assets/{fetch-BGmCCyzz.js → fetch-BeX69kpS.js} +1 -1
- package/dist-cli-web/assets/{fetch-Du-wU0OO.js → fetch-CRocA-4C.js} +1 -1
- package/dist-cli-web/assets/{fetch-DPSWt6yX.js → fetch-CXM-cjDS.js} +1 -1
- package/dist-cli-web/assets/{fetch-qd2FgBWQ.js → fetch-CXqeAbnY.js} +1 -1
- package/dist-cli-web/assets/{fetch-6pcVxB9h.js → fetch-CxVcHNid.js} +1 -1
- package/dist-cli-web/assets/fetch-DBpDMy29.js +1 -0
- package/dist-cli-web/assets/{fetch-Gu4qQjUB.js → fetch-DKBBS9Op.js} +1 -1
- package/dist-cli-web/assets/{fetch-DZ6OF-xW.js → fetch-epFXmPIQ.js} +1 -1
- package/dist-cli-web/assets/{host-D8zlA62K.js → host-C4rU8pKA.js} +1 -1
- package/dist-cli-web/assets/{host-CWsAWKgy.js → host-CtSqR_Zm.js} +1 -1
- package/dist-cli-web/assets/{index-Dy0fRMDf.js → index-4DVZ2g0M.js} +10 -10
- package/dist-cli-web/assets/index-B1oj9KDv.js +135 -0
- package/dist-cli-web/assets/index-BFH1j_R9.js +1 -0
- package/dist-cli-web/assets/index-BZpR015e.css +1 -0
- package/dist-cli-web/assets/index-BgelKQTW.css +1 -0
- package/dist-cli-web/assets/{index-v6DlL4ue.js → index-BvMAw3Zd.js} +1 -1
- package/dist-cli-web/assets/index-C1A1FwpO.css +1 -0
- package/dist-cli-web/assets/index-CIIyg_o9.css +1 -0
- package/dist-cli-web/assets/index-CaYtkONV.js +64 -0
- package/dist-cli-web/assets/index-CuCQ1d9f.js +1 -0
- package/dist-cli-web/assets/index-D3Hyjv4e.js +137 -0
- package/dist-cli-web/assets/index-D8cHMqV-.js +2 -0
- package/dist-cli-web/assets/index-DlHuILT_.js +1 -0
- package/dist-cli-web/assets/index-R4LqAnx9.js +2 -0
- package/dist-cli-web/assets/index-_m1mf1jm.js +1 -0
- package/dist-cli-web/assets/{index-a7CT8DQm.js → index-ekvsNmfe.js} +1 -1
- package/dist-cli-web/assets/index-mXe1LssU.js +1 -0
- package/dist-cli-web/assets/index-mbLXPIyC.js +1 -0
- package/dist-cli-web/assets/{people-page-header-Czt9e1jv.js → people-page-header-BbYSSpsO.js} +1 -1
- package/dist-cli-web/assets/{prompt-DGazz143.js → prompt-C-ofJ7t_.js} +1 -1
- package/dist-cli-web/assets/{semantic-index-config-builder-BkFHzIUy.js → semantic-index-config-builder-D3TYVYC-.js} +1 -1
- package/dist-cli-web/assets/service-BYOUkk7V.js +1 -0
- package/dist-cli-web/assets/{service-CAp0YJoS.js → service-CppETV4a.js} +1 -1
- package/dist-cli-web/assets/service-tEx-5LUL.js +1 -0
- package/dist-cli-web/assets/useFormControl-CrWi_6Hn.js +1 -0
- package/dist-cli-web/assets/useTable-Clk7ecq-.js +1 -0
- package/dist-cli-web/assets/{useToast-YAHDkKDN.js → useToast-B5LaA6c-.js} +1 -1
- package/dist-cli-web/assets/{vendor-echarts-hTLhTs52.js → vendor-echarts-C9ugTmum.js} +1 -1
- package/dist-cli-web/assets/{vendor-echarts-wordcloud-B8CF_NgP.js → vendor-echarts-wordcloud-DNiU8Psq.js} +1 -1
- package/dist-cli-web/assets/{webworkerAll-CvSp2Y8j.js → webworkerAll-CyA4b4LT.js} +1 -1
- package/dist-cli-web/index.html +2 -2
- package/package.json +3 -3
- package/dist/chunk-6E46U4H2.mjs +0 -41
- package/dist/chunk-6E46U4H2.mjs.map +0 -1
- package/dist/chunk-6EZPD3XJ.mjs.map +0 -1
- package/dist/chunk-HWIXK7SU.mjs.map +0 -1
- package/dist/chunk-TJ3NOBVI.mjs.map +0 -1
- package/dist/chunk-TRGR3KKJ.mjs.map +0 -1
- package/dist/chunk-VREVDZ4Q.mjs.map +0 -1
- package/dist/chunk-VUYWUHWW.mjs.map +0 -1
- package/dist/chunk-WJQOXOMR.mjs.map +0 -1
- package/dist/chunk-WRBFV2GX.mjs.map +0 -1
- package/dist/chunk-YUH3H3QW.mjs.map +0 -1
- package/dist-cli-web/assets/AISettingsTab-VgI7PiJd.js +0 -1
- package/dist-cli-web/assets/ActionToolsPanel-BTGgwXVD.css +0 -1
- package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang-a7RMjjve.js +0 -112
- package/dist-cli-web/assets/ApiSettingsTab-Co3LWf1f.js +0 -2
- package/dist-cli-web/assets/BatchManageTab-2LrckmQm.js +0 -1
- package/dist-cli-web/assets/ChatRecordDrawer-DRhztqLG.js +0 -1
- package/dist-cli-web/assets/Checkbox-EfpQmv4A.js +0 -1
- package/dist-cli-web/assets/DataDirCleanupNotice-BYIiR58J.js +0 -1
- package/dist-cli-web/assets/EChart.vue_vue_type_script_setup_true_lang-DryMSoCz.js +0 -1
- package/dist-cli-web/assets/EChartBar.vue_vue_type_script_setup_true_lang-BdFW-hvt.js +0 -1
- package/dist-cli-web/assets/EChartLine.vue_vue_type_script_setup_true_lang-C69Kdw9X.js +0 -1
- package/dist-cli-web/assets/EChartWordcloud-DM7UEHdK.js +0 -1
- package/dist-cli-web/assets/GlobalTaskBar-BZS_h0zC.js +0 -1
- package/dist-cli-web/assets/GlobalTaskBar-COW_uBX6.css +0 -1
- package/dist-cli-web/assets/GroupRelationshipGalaxyView--WIaHx_F.js +0 -1
- package/dist-cli-web/assets/Label-CIuDXyeM.js +0 -1
- package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-B_7VHxTx.js +0 -1
- package/dist-cli-web/assets/MessageExportModal-BQsIpyxv.js +0 -1
- package/dist-cli-web/assets/PageHeader-DxhQHF_0.js +0 -1
- package/dist-cli-web/assets/PageHeader-XIXMTomn.css +0 -1
- package/dist-cli-web/assets/SectionTabs.vue_vue_type_script_setup_true_lang-v_7aRBgM.js +0 -1
- package/dist-cli-web/assets/Select-CxurgslB.js +0 -1
- package/dist-cli-web/assets/SettingsModal-DBZucuf6.js +0 -2
- package/dist-cli-web/assets/Switch-3D81G6uV.js +0 -1
- package/dist-cli-web/assets/Tabs-DB603EEu.js +0 -1
- package/dist-cli-web/assets/ThemeCard.vue_vue_type_script_setup_true_lang-BDTdkH5i.js +0 -1
- package/dist-cli-web/assets/aiChat-BCzYQeZq.js +0 -8
- package/dist-cli-web/assets/cli-web-C-8N0CJh.js +0 -1
- package/dist-cli-web/assets/fetch-B69OkB6B.js +0 -1
- package/dist-cli-web/assets/fetch-z9M9FcIC.js +0 -1
- package/dist-cli-web/assets/index-BGd4ZfhO.js +0 -2
- package/dist-cli-web/assets/index-BYZF1ngN.js +0 -1
- package/dist-cli-web/assets/index-BcuwlCin.css +0 -1
- package/dist-cli-web/assets/index-BnaLj2dx.css +0 -1
- package/dist-cli-web/assets/index-Bq5q3kSU.js +0 -36
- package/dist-cli-web/assets/index-CPR3jdC2.js +0 -137
- package/dist-cli-web/assets/index-D3AjvaOX.js +0 -1
- package/dist-cli-web/assets/index-DAitScUA.js +0 -1
- package/dist-cli-web/assets/index-DBSMWAJ0.js +0 -1
- package/dist-cli-web/assets/index-DTn9htw-.js +0 -64
- package/dist-cli-web/assets/index-DV_rWxcH.js +0 -1
- package/dist-cli-web/assets/index-DxhAGqYM.css +0 -1
- package/dist-cli-web/assets/index-I0mIcDpE.css +0 -1
- package/dist-cli-web/assets/index-onwNShRw.js +0 -2
- package/dist-cli-web/assets/service-BMqwB74f.js +0 -1
- package/dist-cli-web/assets/service-CUQ8iHdS.js +0 -1
- package/dist-cli-web/assets/useFormControl-DcSMUc2d.js +0 -1
- package/dist-cli-web/assets/useTable-Clmq3sge.js +0 -1
- /package/dist/{chunk-TWH422HC.mjs.map → chunk-MMTEGUQA.mjs.map} +0 -0
- /package/dist/{chunk-CH5YAZ4Q.mjs.map → chunk-PDQV4RUA.mjs.map} +0 -0
- /package/dist/{http-237XYNRT.mjs.map → http-LPFPVTBC.mjs.map} +0 -0
- /package/dist/{import-R2E2TFAK.mjs.map → import-T4WX2ZJL.mjs.map} +0 -0
- /package/dist/{mcp-BED4AARV.mjs.map → mcp-SMF3NWIN.mjs.map} +0 -0
- /package/dist/{src-AYMALWU5.mjs.map → src-EGLLMTAU.mjs.map} +0 -0
- /package/dist/{stream-import-RXNSOOYH.mjs.map → stream-import-2BXJTTCE.mjs.map} +0 -0
- /package/dist/{worker-runtime-JGAZU7MC.mjs.map → worker-runtime-RDLSPXFT.mjs.map} +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{y as L,a as D,j as l,z as k,e as pe,H as le,D as T,c as C,d as B,B as fe,I as z,J as w,w as v,K as y,q as ge,L as me,N as O,O as R,r as G,M as F,Q as I,V as _e,W,X as be,S as H,T as E,A as xe,R as ye}from"./RelationshipGalaxyCanvas-Cod1JX9m.js";import{c as Ge,u as Pe,U as Se,B as Te,G as Be,e as Ce,l as ve,a as Ue,t as Me}from"./BufferResource-BE2_2bZK.js";import{R as we,S as Re,d as Ee}from"./RenderTargetSystem-SuQ7cbze.js";import"./index-Bq5q3kSU.js";import"./vendor-snapdom--nZvo8Sg.js";import"./index-BGd4ZfhO.js";import"./Tabs-DB603EEu.js";import"./RovingFocusItem-psoFYxrC.js";import"./useToast-YAHDkKDN.js";import"./LoadingState.vue_vue_type_script_setup_true_lang-B_7VHxTx.js";import"./people-page-header-Czt9e1jv.js";import"./relationship-galaxy-connections-Cg4G5yYE.js";import"./relationship-galaxy-viewport-Cwfa51ER.js";import"./Filter-kO4dIDJ2.js";const P=D.for2d();class N{start(e,t,r){const s=e.renderer,i=s.encoder,n=r.gpuProgram;this._shader=r,this._geometry=t,i.setGeometry(t,n),P.blendMode="normal",s.pipeline.getPipeline(t,n,P);const o=s.globalUniforms.bindGroup;i.resetBindGroup(1),i.setBindGroup(0,o,n)}execute(e,t){const r=this._shader.gpuProgram,s=e.renderer,i=s.encoder;if(!t.bindGroup){const u=t.textures;t.bindGroup=L(u.textures,u.count,s.limits.maxBatchableTextures)}P.blendMode=t.blendMode;const n=s.bindGroup.getBindGroup(t.bindGroup,r,1),o=s.pipeline.getPipeline(this._geometry,r,P,t.topology);t.bindGroup._touch(s.gc.now,s.tick),i.setPipeline(o),i.renderPassEncoder.setBindGroup(1,n),i.renderPassEncoder.drawIndexed(t.size,1,t.start)}}N.extension={type:[l.WebGPUPipesAdaptor],name:"batch"};class V{constructor(e){this._hash=Object.create(null),this._renderer=e}contextChange(e){this._gpu=e}getBindGroup(e,t,r){return e._updateKey(),this._hash[e._key]||this._createBindGroup(e,t,r)}_createBindGroup(e,t,r){const s=this._gpu.device,i=t.layout[r],n=[],o=this._renderer;for(const g in i){const p=e.resources[g]??e.resources[i[g]];let h;if(p._resourceType==="uniformGroup"){const d=p;o.ubo.updateUniformGroup(d);const f=d.buffer;h={buffer:o.buffer.getGPUBuffer(f),offset:0,size:f.descriptor.size}}else if(p._resourceType==="buffer"){const d=p;h={buffer:o.buffer.getGPUBuffer(d),offset:0,size:d.descriptor.size}}else if(p._resourceType==="bufferResource"){const d=p;h={buffer:o.buffer.getGPUBuffer(d.buffer),offset:d.offset,size:d.size}}else if(p._resourceType==="textureSampler"){const d=p;h=o.texture.getGpuSampler(d)}else if(p._resourceType==="textureSource"){const d=p;h=o.texture.getTextureView(d)}n.push({binding:i[g],resource:h})}const u=o.shader.getProgramData(t).bindGroups[r],c=s.createBindGroup({layout:u,entries:n});return this._hash[e._key]=c,c}destroy(){this._hash=null,this._renderer=null}}V.extension={type:[l.WebGPUSystem],name:"bindGroup"};class Ae{constructor(e){this.gpuBuffer=e}destroy(){this.gpuBuffer.destroy(),this.gpuBuffer=null}}class j{constructor(e){this._renderer=e,this._managedBuffers=new k({renderer:e,type:"resource",onUnload:this.onBufferUnload.bind(this),name:"gpuBuffer"})}contextChange(e){this._gpu=e}getGPUBuffer(e){return e._gcLastUsed=this._renderer.gc.now,e._gpuData[this._renderer.uid]?.gpuBuffer||this.createGPUBuffer(e)}updateBuffer(e){const t=this.getGPUBuffer(e),r=e.data;return e._updateID&&r&&(e._updateID=0,this._gpu.device.queue.writeBuffer(t,0,r.buffer,0,(e._updateSize||r.byteLength)+3&-4)),t}destroyAll(){this._managedBuffers.removeAll()}onBufferUnload(e){e.off("update",this.updateBuffer,this),e.off("change",this.onBufferChange,this)}createGPUBuffer(e){const t=this._gpu.device.createBuffer(e.descriptor);return e._updateID=0,e._resourceId=pe("resource"),e.data&&(le(e.data.buffer,t.getMappedRange(),e.data.byteOffset,e.data.byteLength),t.unmap()),e._gpuData[this._renderer.uid]=new Ae(t),this._managedBuffers.add(e)&&(e.on("update",this.updateBuffer,this),e.on("change",this.onBufferChange,this)),t}onBufferChange(e){this._managedBuffers.remove(e),e._updateID=0,this.createGPUBuffer(e)}destroy(){this._managedBuffers.destroy(),this._renderer=null,this._gpu=null}}j.extension={type:[l.WebGPUSystem],name:"buffer"};class Le{constructor({minUniformOffsetAlignment:e}){this._minUniformOffsetAlignment=256,this.byteIndex=0,this._minUniformOffsetAlignment=e,this.data=new Float32Array(65535)}clear(){this.byteIndex=0}addEmptyGroup(e){if(e>this._minUniformOffsetAlignment/4)throw new Error(`UniformBufferBatch: array is too large: ${e*4}`);const t=this.byteIndex;let r=t+e*4;if(r=Math.ceil(r/this._minUniformOffsetAlignment)*this._minUniformOffsetAlignment,r>this.data.length*4)throw new Error("UniformBufferBatch: ubo batch got too big");return this.byteIndex=r,t}addGroup(e){const t=this.addEmptyGroup(e.length);for(let r=0;r<e.length;r++)this.data[t/4+r]=e[r];return t}destroy(){this.data=null}}class K{constructor(e){this._colorMaskCache=15,this._renderer=e}setMask(e){this._colorMaskCache!==e&&(this._colorMaskCache=e,this._renderer.pipeline.setColorMask(e))}destroy(){this._renderer=null,this._colorMaskCache=null}}K.extension={type:[l.WebGPUSystem],name:"colorMask"};class U{constructor(e){this._renderer=e}async init(e){return this._initPromise?this._initPromise:(this._initPromise=(e.gpu?Promise.resolve(e.gpu):this._createDeviceAndAdaptor(e)).then(t=>{this.gpu=t,this.extensions={transientAttachment:typeof GPUTextureUsage.TRANSIENT_ATTACHMENT=="number"},this._renderer.runners.contextChange.emit(this.gpu)}),this._initPromise)}contextChange(e){this._renderer.gpu=e}async _createDeviceAndAdaptor(e){const t=await T.get().getNavigator().gpu.requestAdapter({powerPreference:e.powerPreference,forceFallbackAdapter:e.forceFallbackAdapter}),r=["texture-compression-bc","texture-compression-astc","texture-compression-etc2"].filter(i=>t.features.has(i)),s=await t.requestDevice({requiredFeatures:r});return{adapter:t,device:s}}destroy(){this.gpu=null,this.extensions=null,this._renderer=null}}U.extension={type:[l.WebGPUSystem],name:"device"};U.defaultOptions={powerPreference:void 0,forceFallbackAdapter:!1};class q{constructor(e){this._boundBindGroup=Object.create(null),this._boundVertexBuffer=Object.create(null),this._renderer=e}renderStart(){this.commandFinished=new Promise(e=>{this._resolveCommandFinished=e}),this.commandEncoder=this._renderer.gpu.device.createCommandEncoder()}beginRenderPass(e){this.endRenderPass(),this._clearCache(),this.renderPassEncoder=this.commandEncoder.beginRenderPass(e.descriptor)}endRenderPass(){this.renderPassEncoder&&this.renderPassEncoder.end(),this.renderPassEncoder=null}setViewport(e){this.renderPassEncoder.setViewport(e.x,e.y,e.width,e.height,0,1)}setPipelineFromGeometryProgramAndState(e,t,r,s){const i=this._renderer.pipeline.getPipeline(e,t,r,s);this.setPipeline(i)}setPipeline(e){this._boundPipeline!==e&&(this._boundPipeline=e,this.renderPassEncoder.setPipeline(e))}_setVertexBuffer(e,t){this._boundVertexBuffer[e]!==t&&(this._boundVertexBuffer[e]=t,this.renderPassEncoder.setVertexBuffer(e,this._renderer.buffer.updateBuffer(t)))}_setIndexBuffer(e){if(this._boundIndexBuffer===e)return;this._boundIndexBuffer=e;const t=e.data.BYTES_PER_ELEMENT===2?"uint16":"uint32";this.renderPassEncoder.setIndexBuffer(this._renderer.buffer.updateBuffer(e),t)}resetBindGroup(e){this._boundBindGroup[e]=null}setBindGroup(e,t,r){if(this._boundBindGroup[e]===t)return;this._boundBindGroup[e]=t,t._touch(this._renderer.gc.now,this._renderer.tick);const s=this._renderer.bindGroup.getBindGroup(t,r,e);this.renderPassEncoder.setBindGroup(e,s)}setGeometry(e,t){const r=this._renderer.pipeline.getBufferNamesToBind(e,t);for(const s in r)this._setVertexBuffer(parseInt(s,10),e.attributes[r[s]].buffer);e.indexBuffer&&this._setIndexBuffer(e.indexBuffer)}_setShaderBindGroups(e,t){for(const r in e.groups){const s=e.groups[r];t||this._syncBindGroup(s),this.setBindGroup(r,s,e.gpuProgram)}}_syncBindGroup(e){for(const t in e.resources){const r=e.resources[t];r.isUniformGroup&&this._renderer.ubo.updateUniformGroup(r)}}draw(e){const{geometry:t,shader:r,state:s,topology:i,size:n,start:o,instanceCount:u,skipSync:c}=e;this.setPipelineFromGeometryProgramAndState(t,r.gpuProgram,s,i),this.setGeometry(t,r.gpuProgram),this._setShaderBindGroups(r,c),t.indexBuffer?this.renderPassEncoder.drawIndexed(n||t.indexBuffer.data.length,u??t.instanceCount,o||0):this.renderPassEncoder.draw(n||t.getSize(),u??t.instanceCount,o||0)}finishRenderPass(){this.renderPassEncoder&&(this.renderPassEncoder.end(),this.renderPassEncoder=null)}postrender(){this.finishRenderPass(),this._gpu.device.queue.submit([this.commandEncoder.finish()]),this._resolveCommandFinished(),this.commandEncoder=null}restoreRenderPass(){const e=this._renderer.renderTarget.adaptor.getDescriptor(this._renderer.renderTarget.renderTarget,!1,[0,0,0,1],this._renderer.renderTarget.mipLevel,this._renderer.renderTarget.layer);this.renderPassEncoder=this.commandEncoder.beginRenderPass(e);const t=this._boundPipeline,r={...this._boundVertexBuffer},s=this._boundIndexBuffer,i={...this._boundBindGroup};this._clearCache();const n=this._renderer.renderTarget.viewport;this.renderPassEncoder.setViewport(n.x,n.y,n.width,n.height,0,1),this.setPipeline(t);for(const o in r)this._setVertexBuffer(o,r[o]);for(const o in i)this.setBindGroup(o,i[o],null);this._setIndexBuffer(s)}_clearCache(){for(let e=0;e<16;e++)this._boundBindGroup[e]=null,this._boundVertexBuffer[e]=null;this._boundIndexBuffer=null,this._boundPipeline=null}destroy(){this._renderer=null,this._gpu=null,this._boundBindGroup=null,this._boundVertexBuffer=null,this._boundIndexBuffer=null,this._boundPipeline=null}contextChange(e){this._gpu=e}}q.extension={type:[l.WebGPUSystem],name:"encoder",priority:1};class Y{constructor(e){this._renderer=e}contextChange(){this.maxTextures=this._renderer.device.gpu.device.limits.maxSampledTexturesPerShaderStage,this.maxBatchableTextures=this.maxTextures}destroy(){}}Y.extension={type:[l.WebGPUSystem],name:"limits"};class ${constructor(e){this._renderTargetStencilState=Object.create(null),this._renderer=e,e.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(e){let t=this._renderTargetStencilState[e.uid];t||(t=this._renderTargetStencilState[e.uid]={stencilMode:C.DISABLED,stencilReference:0}),this._activeRenderTarget=e,this.setStencilMode(t.stencilMode,t.stencilReference)}setStencilMode(e,t){const r=this._renderTargetStencilState[this._activeRenderTarget.uid];r.stencilMode=e,r.stencilReference=t;const s=this._renderer;s.pipeline.setStencilMode(e),s.encoder.renderPassEncoder.setStencilReference(t)}destroy(){this._renderer.renderTarget.onRenderTargetChange.remove(this),this._renderer=null,this._activeRenderTarget=null,this._renderTargetStencilState=null}}$.extension={type:[l.WebGPUSystem],name:"stencil"};const S={i32:{align:4,size:4},u32:{align:4,size:4},f32:{align:4,size:4},f16:{align:2,size:2},"vec2<i32>":{align:8,size:8},"vec2<u32>":{align:8,size:8},"vec2<f32>":{align:8,size:8},"vec2<f16>":{align:4,size:4},"vec3<i32>":{align:16,size:12},"vec3<u32>":{align:16,size:12},"vec3<f32>":{align:16,size:12},"vec3<f16>":{align:8,size:6},"vec4<i32>":{align:16,size:16},"vec4<u32>":{align:16,size:16},"vec4<f32>":{align:16,size:16},"vec4<f16>":{align:8,size:8},"mat2x2<f32>":{align:8,size:16},"mat2x2<f16>":{align:4,size:8},"mat3x2<f32>":{align:8,size:24},"mat3x2<f16>":{align:4,size:12},"mat4x2<f32>":{align:8,size:32},"mat4x2<f16>":{align:4,size:16},"mat2x3<f32>":{align:16,size:32},"mat2x3<f16>":{align:8,size:16},"mat3x3<f32>":{align:16,size:48},"mat3x3<f16>":{align:8,size:24},"mat4x3<f32>":{align:16,size:64},"mat4x3<f16>":{align:8,size:32},"mat2x4<f32>":{align:16,size:32},"mat2x4<f16>":{align:8,size:16},"mat3x4<f32>":{align:16,size:48},"mat3x4<f16>":{align:8,size:24},"mat4x4<f32>":{align:16,size:64},"mat4x4<f16>":{align:8,size:32}};function De(a){const e=a.map(r=>({data:r,offset:0,size:0}));let t=0;for(let r=0;r<e.length;r++){const s=e[r];let i=S[s.data.type].size;const n=S[s.data.type].align;if(!S[s.data.type])throw new Error(`[Pixi.js] WebGPU UniformBuffer: Unknown type ${s.data.type}`);s.data.size>1&&(i=Math.max(i,n)*s.data.size),t=Math.ceil(t/n)*n,s.size=i,s.offset=t,t+=i}return t=Math.ceil(t/16)*16,{uboElements:e,size:t}}function ke(a,e){const{size:t,align:r}=S[a.data.type],s=(r-t)/4,i=a.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
|
|
1
|
+
import{y as L,a as D,j as l,z as k,e as pe,H as le,D as T,c as C,d as B,B as fe,I as z,J as w,w as v,K as y,q as ge,L as me,N as O,O as R,r as G,M as F,Q as I,V as _e,W,X as be,S as H,T as E,A as xe,R as ye}from"./RelationshipGalaxyCanvas-CDhljGyJ.js";import{c as Ge,u as Pe,U as Se,B as Te,G as Be,e as Ce,l as ve,a as Ue,t as Me}from"./BufferResource-CKZxnACp.js";import{R as we,S as Re,d as Ee}from"./RenderTargetSystem-D76QrDT_.js";import"./index-B1oj9KDv.js";import"./vendor-snapdom--nZvo8Sg.js";import"./index-D8cHMqV-.js";import"./Tabs-BMq9wODW.js";import"./RovingFocusItem-BJMUQ5DJ.js";import"./useToast-B5LaA6c-.js";import"./LoadingState.vue_vue_type_script_setup_true_lang-BBcCt_Qm.js";import"./people-page-header-BbYSSpsO.js";import"./relationship-galaxy-connections-Cg4G5yYE.js";import"./relationship-galaxy-viewport-Cwfa51ER.js";import"./Filter-CByj_rCR.js";const P=D.for2d();class N{start(e,t,r){const s=e.renderer,i=s.encoder,n=r.gpuProgram;this._shader=r,this._geometry=t,i.setGeometry(t,n),P.blendMode="normal",s.pipeline.getPipeline(t,n,P);const o=s.globalUniforms.bindGroup;i.resetBindGroup(1),i.setBindGroup(0,o,n)}execute(e,t){const r=this._shader.gpuProgram,s=e.renderer,i=s.encoder;if(!t.bindGroup){const u=t.textures;t.bindGroup=L(u.textures,u.count,s.limits.maxBatchableTextures)}P.blendMode=t.blendMode;const n=s.bindGroup.getBindGroup(t.bindGroup,r,1),o=s.pipeline.getPipeline(this._geometry,r,P,t.topology);t.bindGroup._touch(s.gc.now,s.tick),i.setPipeline(o),i.renderPassEncoder.setBindGroup(1,n),i.renderPassEncoder.drawIndexed(t.size,1,t.start)}}N.extension={type:[l.WebGPUPipesAdaptor],name:"batch"};class V{constructor(e){this._hash=Object.create(null),this._renderer=e}contextChange(e){this._gpu=e}getBindGroup(e,t,r){return e._updateKey(),this._hash[e._key]||this._createBindGroup(e,t,r)}_createBindGroup(e,t,r){const s=this._gpu.device,i=t.layout[r],n=[],o=this._renderer;for(const g in i){const p=e.resources[g]??e.resources[i[g]];let h;if(p._resourceType==="uniformGroup"){const d=p;o.ubo.updateUniformGroup(d);const f=d.buffer;h={buffer:o.buffer.getGPUBuffer(f),offset:0,size:f.descriptor.size}}else if(p._resourceType==="buffer"){const d=p;h={buffer:o.buffer.getGPUBuffer(d),offset:0,size:d.descriptor.size}}else if(p._resourceType==="bufferResource"){const d=p;h={buffer:o.buffer.getGPUBuffer(d.buffer),offset:d.offset,size:d.size}}else if(p._resourceType==="textureSampler"){const d=p;h=o.texture.getGpuSampler(d)}else if(p._resourceType==="textureSource"){const d=p;h=o.texture.getTextureView(d)}n.push({binding:i[g],resource:h})}const u=o.shader.getProgramData(t).bindGroups[r],c=s.createBindGroup({layout:u,entries:n});return this._hash[e._key]=c,c}destroy(){this._hash=null,this._renderer=null}}V.extension={type:[l.WebGPUSystem],name:"bindGroup"};class Ae{constructor(e){this.gpuBuffer=e}destroy(){this.gpuBuffer.destroy(),this.gpuBuffer=null}}class j{constructor(e){this._renderer=e,this._managedBuffers=new k({renderer:e,type:"resource",onUnload:this.onBufferUnload.bind(this),name:"gpuBuffer"})}contextChange(e){this._gpu=e}getGPUBuffer(e){return e._gcLastUsed=this._renderer.gc.now,e._gpuData[this._renderer.uid]?.gpuBuffer||this.createGPUBuffer(e)}updateBuffer(e){const t=this.getGPUBuffer(e),r=e.data;return e._updateID&&r&&(e._updateID=0,this._gpu.device.queue.writeBuffer(t,0,r.buffer,0,(e._updateSize||r.byteLength)+3&-4)),t}destroyAll(){this._managedBuffers.removeAll()}onBufferUnload(e){e.off("update",this.updateBuffer,this),e.off("change",this.onBufferChange,this)}createGPUBuffer(e){const t=this._gpu.device.createBuffer(e.descriptor);return e._updateID=0,e._resourceId=pe("resource"),e.data&&(le(e.data.buffer,t.getMappedRange(),e.data.byteOffset,e.data.byteLength),t.unmap()),e._gpuData[this._renderer.uid]=new Ae(t),this._managedBuffers.add(e)&&(e.on("update",this.updateBuffer,this),e.on("change",this.onBufferChange,this)),t}onBufferChange(e){this._managedBuffers.remove(e),e._updateID=0,this.createGPUBuffer(e)}destroy(){this._managedBuffers.destroy(),this._renderer=null,this._gpu=null}}j.extension={type:[l.WebGPUSystem],name:"buffer"};class Le{constructor({minUniformOffsetAlignment:e}){this._minUniformOffsetAlignment=256,this.byteIndex=0,this._minUniformOffsetAlignment=e,this.data=new Float32Array(65535)}clear(){this.byteIndex=0}addEmptyGroup(e){if(e>this._minUniformOffsetAlignment/4)throw new Error(`UniformBufferBatch: array is too large: ${e*4}`);const t=this.byteIndex;let r=t+e*4;if(r=Math.ceil(r/this._minUniformOffsetAlignment)*this._minUniformOffsetAlignment,r>this.data.length*4)throw new Error("UniformBufferBatch: ubo batch got too big");return this.byteIndex=r,t}addGroup(e){const t=this.addEmptyGroup(e.length);for(let r=0;r<e.length;r++)this.data[t/4+r]=e[r];return t}destroy(){this.data=null}}class K{constructor(e){this._colorMaskCache=15,this._renderer=e}setMask(e){this._colorMaskCache!==e&&(this._colorMaskCache=e,this._renderer.pipeline.setColorMask(e))}destroy(){this._renderer=null,this._colorMaskCache=null}}K.extension={type:[l.WebGPUSystem],name:"colorMask"};class U{constructor(e){this._renderer=e}async init(e){return this._initPromise?this._initPromise:(this._initPromise=(e.gpu?Promise.resolve(e.gpu):this._createDeviceAndAdaptor(e)).then(t=>{this.gpu=t,this.extensions={transientAttachment:typeof GPUTextureUsage.TRANSIENT_ATTACHMENT=="number"},this._renderer.runners.contextChange.emit(this.gpu)}),this._initPromise)}contextChange(e){this._renderer.gpu=e}async _createDeviceAndAdaptor(e){const t=await T.get().getNavigator().gpu.requestAdapter({powerPreference:e.powerPreference,forceFallbackAdapter:e.forceFallbackAdapter}),r=["texture-compression-bc","texture-compression-astc","texture-compression-etc2"].filter(i=>t.features.has(i)),s=await t.requestDevice({requiredFeatures:r});return{adapter:t,device:s}}destroy(){this.gpu=null,this.extensions=null,this._renderer=null}}U.extension={type:[l.WebGPUSystem],name:"device"};U.defaultOptions={powerPreference:void 0,forceFallbackAdapter:!1};class q{constructor(e){this._boundBindGroup=Object.create(null),this._boundVertexBuffer=Object.create(null),this._renderer=e}renderStart(){this.commandFinished=new Promise(e=>{this._resolveCommandFinished=e}),this.commandEncoder=this._renderer.gpu.device.createCommandEncoder()}beginRenderPass(e){this.endRenderPass(),this._clearCache(),this.renderPassEncoder=this.commandEncoder.beginRenderPass(e.descriptor)}endRenderPass(){this.renderPassEncoder&&this.renderPassEncoder.end(),this.renderPassEncoder=null}setViewport(e){this.renderPassEncoder.setViewport(e.x,e.y,e.width,e.height,0,1)}setPipelineFromGeometryProgramAndState(e,t,r,s){const i=this._renderer.pipeline.getPipeline(e,t,r,s);this.setPipeline(i)}setPipeline(e){this._boundPipeline!==e&&(this._boundPipeline=e,this.renderPassEncoder.setPipeline(e))}_setVertexBuffer(e,t){this._boundVertexBuffer[e]!==t&&(this._boundVertexBuffer[e]=t,this.renderPassEncoder.setVertexBuffer(e,this._renderer.buffer.updateBuffer(t)))}_setIndexBuffer(e){if(this._boundIndexBuffer===e)return;this._boundIndexBuffer=e;const t=e.data.BYTES_PER_ELEMENT===2?"uint16":"uint32";this.renderPassEncoder.setIndexBuffer(this._renderer.buffer.updateBuffer(e),t)}resetBindGroup(e){this._boundBindGroup[e]=null}setBindGroup(e,t,r){if(this._boundBindGroup[e]===t)return;this._boundBindGroup[e]=t,t._touch(this._renderer.gc.now,this._renderer.tick);const s=this._renderer.bindGroup.getBindGroup(t,r,e);this.renderPassEncoder.setBindGroup(e,s)}setGeometry(e,t){const r=this._renderer.pipeline.getBufferNamesToBind(e,t);for(const s in r)this._setVertexBuffer(parseInt(s,10),e.attributes[r[s]].buffer);e.indexBuffer&&this._setIndexBuffer(e.indexBuffer)}_setShaderBindGroups(e,t){for(const r in e.groups){const s=e.groups[r];t||this._syncBindGroup(s),this.setBindGroup(r,s,e.gpuProgram)}}_syncBindGroup(e){for(const t in e.resources){const r=e.resources[t];r.isUniformGroup&&this._renderer.ubo.updateUniformGroup(r)}}draw(e){const{geometry:t,shader:r,state:s,topology:i,size:n,start:o,instanceCount:u,skipSync:c}=e;this.setPipelineFromGeometryProgramAndState(t,r.gpuProgram,s,i),this.setGeometry(t,r.gpuProgram),this._setShaderBindGroups(r,c),t.indexBuffer?this.renderPassEncoder.drawIndexed(n||t.indexBuffer.data.length,u??t.instanceCount,o||0):this.renderPassEncoder.draw(n||t.getSize(),u??t.instanceCount,o||0)}finishRenderPass(){this.renderPassEncoder&&(this.renderPassEncoder.end(),this.renderPassEncoder=null)}postrender(){this.finishRenderPass(),this._gpu.device.queue.submit([this.commandEncoder.finish()]),this._resolveCommandFinished(),this.commandEncoder=null}restoreRenderPass(){const e=this._renderer.renderTarget.adaptor.getDescriptor(this._renderer.renderTarget.renderTarget,!1,[0,0,0,1],this._renderer.renderTarget.mipLevel,this._renderer.renderTarget.layer);this.renderPassEncoder=this.commandEncoder.beginRenderPass(e);const t=this._boundPipeline,r={...this._boundVertexBuffer},s=this._boundIndexBuffer,i={...this._boundBindGroup};this._clearCache();const n=this._renderer.renderTarget.viewport;this.renderPassEncoder.setViewport(n.x,n.y,n.width,n.height,0,1),this.setPipeline(t);for(const o in r)this._setVertexBuffer(o,r[o]);for(const o in i)this.setBindGroup(o,i[o],null);this._setIndexBuffer(s)}_clearCache(){for(let e=0;e<16;e++)this._boundBindGroup[e]=null,this._boundVertexBuffer[e]=null;this._boundIndexBuffer=null,this._boundPipeline=null}destroy(){this._renderer=null,this._gpu=null,this._boundBindGroup=null,this._boundVertexBuffer=null,this._boundIndexBuffer=null,this._boundPipeline=null}contextChange(e){this._gpu=e}}q.extension={type:[l.WebGPUSystem],name:"encoder",priority:1};class Y{constructor(e){this._renderer=e}contextChange(){this.maxTextures=this._renderer.device.gpu.device.limits.maxSampledTexturesPerShaderStage,this.maxBatchableTextures=this.maxTextures}destroy(){}}Y.extension={type:[l.WebGPUSystem],name:"limits"};class ${constructor(e){this._renderTargetStencilState=Object.create(null),this._renderer=e,e.renderTarget.onRenderTargetChange.add(this)}onRenderTargetChange(e){let t=this._renderTargetStencilState[e.uid];t||(t=this._renderTargetStencilState[e.uid]={stencilMode:C.DISABLED,stencilReference:0}),this._activeRenderTarget=e,this.setStencilMode(t.stencilMode,t.stencilReference)}setStencilMode(e,t){const r=this._renderTargetStencilState[this._activeRenderTarget.uid];r.stencilMode=e,r.stencilReference=t;const s=this._renderer;s.pipeline.setStencilMode(e),s.encoder.renderPassEncoder.setStencilReference(t)}destroy(){this._renderer.renderTarget.onRenderTargetChange.remove(this),this._renderer=null,this._activeRenderTarget=null,this._renderTargetStencilState=null}}$.extension={type:[l.WebGPUSystem],name:"stencil"};const S={i32:{align:4,size:4},u32:{align:4,size:4},f32:{align:4,size:4},f16:{align:2,size:2},"vec2<i32>":{align:8,size:8},"vec2<u32>":{align:8,size:8},"vec2<f32>":{align:8,size:8},"vec2<f16>":{align:4,size:4},"vec3<i32>":{align:16,size:12},"vec3<u32>":{align:16,size:12},"vec3<f32>":{align:16,size:12},"vec3<f16>":{align:8,size:6},"vec4<i32>":{align:16,size:16},"vec4<u32>":{align:16,size:16},"vec4<f32>":{align:16,size:16},"vec4<f16>":{align:8,size:8},"mat2x2<f32>":{align:8,size:16},"mat2x2<f16>":{align:4,size:8},"mat3x2<f32>":{align:8,size:24},"mat3x2<f16>":{align:4,size:12},"mat4x2<f32>":{align:8,size:32},"mat4x2<f16>":{align:4,size:16},"mat2x3<f32>":{align:16,size:32},"mat2x3<f16>":{align:8,size:16},"mat3x3<f32>":{align:16,size:48},"mat3x3<f16>":{align:8,size:24},"mat4x3<f32>":{align:16,size:64},"mat4x3<f16>":{align:8,size:32},"mat2x4<f32>":{align:16,size:32},"mat2x4<f16>":{align:8,size:16},"mat3x4<f32>":{align:16,size:48},"mat3x4<f16>":{align:8,size:24},"mat4x4<f32>":{align:16,size:64},"mat4x4<f16>":{align:8,size:32}};function De(a){const e=a.map(r=>({data:r,offset:0,size:0}));let t=0;for(let r=0;r<e.length;r++){const s=e[r];let i=S[s.data.type].size;const n=S[s.data.type].align;if(!S[s.data.type])throw new Error(`[Pixi.js] WebGPU UniformBuffer: Unknown type ${s.data.type}`);s.data.size>1&&(i=Math.max(i,n)*s.data.size),t=Math.ceil(t/n)*n,s.size=i,s.offset=t,t+=i}return t=Math.ceil(t/16)*16,{uboElements:e,size:t}}function ke(a,e){const{size:t,align:r}=S[a.data.type],s=(r-t)/4,i=a.data.type.indexOf("i32")>=0?"dataInt32":"data";return`
|
|
2
2
|
v = uv.${a.data.name};
|
|
3
3
|
${e!==0?`offset += ${e};`:""}
|
|
4
4
|
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-B1oj9KDv.js","assets/vendor-snapdom--nZvo8Sg.js","assets/index-BZpR015e.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{$ as Ut,h as kt,b as z,e as oe,aB as nt,aG as tt,bP as at,bQ as Ht,Z as Jt,bt as Vt,bR as ht,ap as Gt,ab as Qt,bS as Yt,aA as Zt,L as St,aF as me,bT as vt,a5 as Xt}from"./index-B1oj9KDv.js";import{u as Kt}from"./prompt-C-ofJ7t_.js";import{C as Lt}from"./chatlabSiteLocale-CrCNb8QP.js";const Je="chart_runtime",es=4e3,ts=`
|
|
3
|
+
…[truncated]`;function Ct(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function At(e){return!Ct(e)||!Array.isArray(e.content)?"":e.content.map(s=>Ct(s)&&s.type==="text"&&typeof s.text=="string"?s.text:"").filter(s=>s.length>0).join(`
|
|
4
|
+
`)}function bt(e,s=es){return e.length<=s?e:e.slice(0,s)+ts}function fe(){return Ut("assistant-crud")}function Te(){return Ut("skill-crud")}const wt=Lt,ss={"zh-CN":"cn","zh-TW":"cn","en-US":"en","ja-JP":"ja"},Ft=kt("assistant",()=>{const e=z([]),s=z(null),o=z(!1),c=new Set;let i=null;const p=z([]),A=z([]),b=z(!1),w=z(null),x=z("group"),L=z("zh-CN"),V=oe(()=>s.value?e.value.find(h=>h.id===s.value)??null:null),E=oe(()=>e.value.filter(h=>{const m=!h.applicableChatTypes?.length||h.applicableChatTypes.includes(x.value),B=!h.supportedLocales?.length||h.supportedLocales.some(j=>L.value.startsWith(j));return m&&B})),$=4,ee=oe(()=>E.value.slice(0,$)),ne=oe(()=>E.value.slice($)),O=oe(()=>E.value.length>$),F=oe(()=>{const h=new Set(e.value.map(m=>m.id));return A.value.map(m=>({...m,imported:h.has(m.id)}))});function Y(h,m){x.value=h,L.value=m}async function te(){try{const h=fe();e.value=await h.getAll(),o.value=!0}catch(h){console.error("[AssistantStore] Failed to load assistants:",h)}}async function qe(){try{p.value=await fe().getBuiltinToolCatalog()}catch(h){console.error("[AssistantStore] Failed to load builtin tool catalog:",h)}}async function ke(h){const m=ss[h||L.value]??"en",B=`${wt}/${m}/assistant.json`;b.value=!0,w.value=null;try{const j=await nt().fetchRemoteConfig(B);if(!j.success||!j.data){w.value=j.error||"Failed to fetch cloud catalog",A.value=[];return}const _e=j.data;if(!Array.isArray(_e)){w.value="Invalid catalog format",A.value=[];return}A.value=_e.filter(we=>we.id&&we.name&&we.path)}catch(j){w.value=String(j),A.value=[]}finally{b.value=!1}}async function Ae(h){const m=`${wt}${h.path}`;try{const B=await nt().fetchRemoteConfig(m);if(!B.success||typeof B.data!="string")return{success:!1,error:B.error||"Failed to fetch assistant content"};const j=await fe().importFromMd(B.data);return j.success&&await te(),j}catch(B){return{success:!1,error:String(B)}}}function he(h){return e.value.some(m=>m.id===h)}function W(h){s.value=h}function Oe(){s.value=null}async function $e(h){try{return await fe().getConfig(h)}catch(m){return console.error("[AssistantStore] Failed to get config:",m),null}}async function ae(h,m){try{const B=await fe().update(h,m);return B.success&&await te(),B}catch(B){return{success:!1,error:String(B)}}}async function Ne(h){try{const m=await fe().reset(h);return m.success&&await te(),m}catch(m){return{success:!1,error:String(m)}}}async function I(h){const m=tt(h);if(c.has(m))return null;c.add(m);try{const B=await fe().getUpgradeInfo(m);if(!B)return null;try{if(i||(i={...(await at().getPreferences()).assistantUpgradeSkippedVersions}),B.latestVersion!==null&&i[B.builtinId]===B.latestVersion)return null}catch(j){console.error("[AssistantStore] Failed to load skipped assistant upgrades:",j)}return B}catch(B){return c.delete(m),console.error("[AssistantStore] Failed to check assistant upgrade:",B),null}}async function T(h){if(h.latestVersion===null)return{success:!1,error:"Assistant template version is unavailable"};try{i||(i={...(await at().getPreferences()).assistantUpgradeSkippedVersions});const m={...i,[h.builtinId]:h.latestVersion},B=await at().savePreferences({assistantUpgradeSkippedVersions:m});return B.success&&(i=m),B}catch(m){return{success:!1,error:String(m)}}}async function M(h,m){try{const B=await fe().upgradeWithBackup(h.assistantId,m);return B.success&&await te(),B}catch(B){return{success:!1,error:String(B)}}}async function ie(h){try{const m=await fe().create(h);return m.success&&await te(),m}catch(m){return{success:!1,error:String(m)}}}async function be(h){try{const m=fe(),B=await m.getConfig(h);if(!B)return{success:!1,error:"Assistant not found"};const{id:j,builtinId:_e,...we}=B,Qe=await m.create({...we,name:`${B.name}${Ht.global.t("ai.assistant.duplicateSuffix")}`});return Qe.success&&await te(),Qe}catch(m){return{success:!1,error:String(m)}}}async function Ge(h){try{const m=await fe().delete(h);return m.success&&await te(),m}catch(m){return{success:!1,error:String(m)}}}return{assistants:e,selectedAssistantId:s,selectedAssistant:V,isLoaded:o,builtinToolCatalog:p,cloudCatalog:A,cloudLoading:b,cloudError:w,cloudCatalogWithStatus:F,currentChatType:x,currentLocale:L,filteredAssistants:E,defaultAssistants:ee,moreAssistants:ne,hasMoreAssistants:O,loadAssistants:te,loadBuiltinToolCatalog:qe,fetchCloudCatalog:ke,importFromCloud:Ae,isCloudItemImported:he,selectAssistant:W,clearSelection:Oe,setFilterContext:Y,getAssistantConfig:$e,updateAssistant:ae,createAssistant:ie,duplicateAssistant:be,resetAssistant:Ne,checkDefaultAssistantUpgrade:I,skipAssistantUpgrade:T,upgradeAssistantWithBackup:M,deleteAssistant:Ge}}),Bt=Lt,ns={"zh-CN":"cn","zh-TW":"cn","en-US":"en","ja-JP":"ja"},rs=kt("skill",()=>{const e=z([]),s=z(null),o=z(!1),c=z([]),i=z([]),p=z(!1),A=z(null),b=z("group"),w=z("zh-CN");function x(){const I=w.value.startsWith("zh");return{id:Je,name:I?"绘图助手":"Chart Assistant",description:I?"按本轮问题生成灵活的聊天数据图表":"Generate flexible charts for this chat question",tags:[I?"图表":"chart"],chatScope:"all",tools:["render_chart","get_schema"],builtinId:Je}}const L=oe(()=>s.value?s.value===Je?x():e.value.find(I=>I.id===s.value)??null:null),V=oe(()=>x()),E=oe(()=>e.value.filter(I=>I.chatScope==="all"||I.chatScope===b.value)),$=oe(()=>{const T=Ft().selectedAssistant,M=[V.value,...E.value];return T?M.filter(ie=>(ie.tools.length,!0)):M}),ee=oe(()=>{const I={};for(const T of $.value){const M=T.tags[0]||"other";I[M]||(I[M]=[]),I[M].push(T)}return I}),ne=oe(()=>{const I=new Set(e.value.map(T=>T.id));return i.value.map(T=>({...T,imported:I.has(T.id)}))});function O(I,T){b.value=I,T&&(w.value=T)}async function F(){try{e.value=await Te().getAll(),o.value=!0}catch(I){console.error("[SkillStore] Failed to load skills:",I)}}async function Y(){try{c.value=await Te().getBuiltinCatalog()}catch(I){console.error("[SkillStore] Failed to load builtin catalog:",I)}}async function te(){const I=ns[w.value]??"en",T=`${Bt}/${I}/skill.json`;p.value=!0,A.value=null;try{const M=await nt().fetchRemoteConfig(T);if(!M.success||!M.data){A.value=M.error||"Failed to fetch cloud catalog",i.value=[];return}const ie=M.data;if(!Array.isArray(ie)){A.value="Invalid catalog format",i.value=[];return}i.value=ie.filter(be=>be.id&&be.name&&be.path)}catch(M){A.value=String(M),i.value=[]}finally{p.value=!1}}async function qe(I){const T=`${Bt}${I.path}`;try{const M=await nt().fetchRemoteConfig(T);if(!M.success||typeof M.data!="string")return{success:!1,error:M.error||"Failed to fetch skill content"};const ie=await Te().importFromMd(M.data);return ie.success&&await F(),ie}catch(M){return{success:!1,error:String(M)}}}function ke(I){return e.value.some(T=>T.id===I)}function Ae(I){s.value=I}async function he(I){if(I===Je)return{...x(),prompt:"",builtinId:Je};try{return await Te().getConfig(I)}catch(T){return console.error("[SkillStore] Failed to get skill config:",T),null}}async function W(I,T){try{const M=await Te().update(I,T);return M.success&&await F(),M}catch(M){return{success:!1,error:String(M)}}}async function Oe(I){try{const T=await Te().create(I);return T.success&&await F(),T}catch(T){return{success:!1,error:String(T)}}}async function $e(I){try{const T=await Te().delete(I);return T.success&&(s.value===I&&(s.value=null),await F()),T}catch(T){return{success:!1,error:String(T)}}}async function ae(I){try{const T=await Te().importBuiltin(I);return T.success&&(await F(),await Y()),T}catch(T){return{success:!1,error:String(T)}}}async function Ne(I){try{const T=await Te().reimport(I);return T.success&&(await F(),await Y()),T}catch(T){return{success:!1,error:String(T)}}}return{skills:e,activeSkillId:s,builtinCatalog:c,isLoaded:o,currentChatType:b,currentLocale:w,activeSkill:L,scopedSkills:E,compatibleSkills:$,groupedSkills:ee,cloudCatalog:i,cloudLoading:p,cloudError:A,cloudCatalogWithStatus:ne,setFilterContext:O,loadSkills:F,loadBuiltinCatalog:Y,fetchCloudCatalog:te,importFromCloud:qe,isCloudItemImported:ke,activateSkill:Ae,getSkillConfig:he,updateSkill:W,createSkill:Oe,deleteSkill:$e,importSkill:ae,reimportSkill:Ne}});async function qt(e){const{url:s,method:o="POST",headers:c={},body:i,signal:p,onEvent:A}=e,b=await Jt(s,{method:o,headers:{"Content-Type":"application/json",...c},body:i!=null?JSON.stringify(i):void 0,signal:p});if(!b.ok){const E=await b.text().catch(()=>"");throw new Error(`SSE request failed: HTTP ${b.status} ${E}`)}if(!b.body)throw new Error("SSE response has no body");const w=b.body.getReader(),x=new TextDecoder;let L="",V="";for(;;){const{done:E,value:$}=await w.read();if(E)break;L+=x.decode($,{stream:!0});const ee=L.split(`
|
|
5
|
+
`);L=ee.pop()||"";for(const ne of ee)ne.startsWith("event: ")?V=ne.slice(7).trim():ne.startsWith("data: ")&&(A({event:V,data:ne.slice(6)}),V="")}L.trim()&&L.startsWith("data: ")&&A({event:V,data:L.slice(6)})}function Ms(){return{async chatStream(e,s,o){let c;try{return await qt({url:"/_web/ai/llm/chat-stream",body:{messages:e,options:s},onEvent:({data:i})=>{try{const p=JSON.parse(i);p.finishReason==="error"&&p.error&&(c=p.error),o?.(p)}catch{}}}),c?{success:!1,error:c}:{success:!0}}catch(i){const p=i instanceof Error?i.message:String(i);return{success:!1,error:c??p}}}}}const Fe=new Map;function it(){return{runStream(e,s){const o=Date.now();ht("ai_request_started");const c=new AbortController,i=`local_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;Fe.set(i,{serverId:"",abortController:c});const A=new Promise(b=>{let w="";const x=[];let L=0,V,E=!1,$;qt({url:"/_web/ai/agent/stream",body:e,signal:c.signal,onEvent:({event:ee,data:ne})=>{try{const O=JSON.parse(ne);if(ee==="meta"){const Y=Fe.get(i);Y&&(Y.serverId=O.requestId??"");return}const F=O;switch(s?.(F),F.type){case"content":F.content&&(w+=F.content);break;case"tool_start":F.toolName&&x.push(F.toolName);break;case"status":F.status&&(L=F.status.round);break;case"done":F.usage&&(V=F.usage);break;case"error":E=!0,$=F.error;break}}catch{}}}).then(()=>{Fe.delete(i),b({success:!E,result:{content:w,toolsUsed:x,toolRounds:L,totalUsage:V},...E&&$?{error:$}:{}})}).catch(ee=>{Fe.delete(i),c.signal.aborted?b({success:!1,result:{content:w,toolsUsed:x,toolRounds:L,aborted:!0}}):b({success:!1,error:{name:"FetchError",message:ee.message??String(ee),stack:null}})})}).then(b=>(ht("ai_request_completed",{success:b.success,duration_ms:Date.now()-o,...b.success?{}:{failure_reason:b.result?.aborted?"aborted":b.error?.name==="FetchError"?"network":"unknown"}}),b));return{requestId:i,promise:A}},async abort(e){const s=Fe.get(e);if(!s)return{success:!1,error:"Request not found"};if(s.abortController.abort(),s.serverId)try{const{post:o}=await Vt(async()=>{const{post:c}=await import("./index-B1oj9KDv.js").then(i=>i.dW);return{post:c}},__vite__mapDeps([0,1,2]));await o("/ai/agent/abort",{requestId:s.serverId})}catch{}return Fe.delete(e),{success:!0}}}}function os(e){return e.desensitize&&!e.desensitizeRules.some(s=>s.builtin)}function as(e){if(e.dataCleaning||e.mergeConsecutive||e.blacklistKeywords.length>0||e.denoise||e.desensitize||e.anonymizeNames)return{dataCleaning:e.dataCleaning,mergeConsecutive:e.mergeConsecutive,mergeWindowSeconds:e.mergeWindowSeconds,blacklistKeywords:[...e.blacklistKeywords],denoise:e.denoise,desensitize:e.desensitize,desensitizeRules:e.desensitizeRules.map(o=>({...o,locales:[...o.locales]})),anonymizeNames:e.anonymizeNames}}function ge(e){return e==="render_chart"}function is(e,s,o){if(!e||!ge(e))return null;const c=e;return{type:"tool",tool:{name:c,displayName:c,status:"running",params:s,toolCallId:o,transient:!0}}}function It(e,s,o){if(!se(e))return!1;const c=e;return c.type!=="tool"||!c.tool||c.tool.transient!==!0||c.tool.name!==s||o&&c.tool.toolCallId!==o?!1:ge(String(c.tool.name))}function ls(e,s,o){let c=!1;const i=[...e];for(let p=i.length-1;p>=0;p--)if(It(i[p],s,o)){i.splice(p,1),c=!0;break}return c?i:[...e]}function se(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Rt(e){return se(e)&&e.version===1&&se(e.spec)&&se(e.dataset)}function ft(e){if(!se(e))return[];const s=se(e.details)?e.details:e,o=[];if(Rt(s.chart)&&o.push(s.chart),Array.isArray(s.charts))for(const c of s.charts)Rt(c)&&o.push(c);return o}function Ot(e){return{...e,dataset:{...e.dataset,rows:[]}}}function $t(e){return e.map(s=>({type:"chart",chart:Ot(s)}))}function pt(e){return Array.isArray(e)?`[${e.map(pt).join(",")}]`:se(e)?`{${Object.keys(e).sort().map(s=>`${JSON.stringify(s)}:${pt(e[s])}`).join(",")}}`:JSON.stringify(e)}function Mt(e){const s=Ot(e);return pt({spec:s.spec,columns:s.dataset.columns,data:s.data,rowCount:s.rowCount,truncated:s.truncated})}function cs(e,s){const o=Mt(s);return e.some(c=>{if(!se(c))return!1;const i=c;return i.type==="chart"&&i.chart?Mt(i.chart)===o:!1})}function us(e,s,o,c){const i=[...e];let p=-1;for(let x=i.length-1;x>=0;x--)if(It(i[x],s,o)){p=x;break}const A=p>=0?i.filter((x,L)=>L!==p):i,b=c.filter(x=>!cs(A,x)),w=$t(b);return p>=0?(i.splice(p,1,...w),i):[...i,...w]}function ds(e,s,o,c,i){if(c.length>0)return us(e,s,o,c);if(i){let A=!1;const b=e.map(w=>{if(!It(w,s,o))return w;A=!0;const x={...w.tool};return delete x.transient,{...w,tool:{...x,status:"error",result:i.error.message,displayResult:i.error.message,isError:!0}}});return A?b:[...e,i]}return ls(e,s,o)}function Ps(e,s,o){const c=e[s];return!se(c)||c.type!=="error"||!se(c.error)||c.error.name!=="ChartRenderError"?!1:o?.isStreaming?!0:e.slice(s+1).some(i=>se(i)&&i.type==="chart")}function fs(e){return se(e)?typeof e.error=="string"?e.error:se(e.error)&&typeof e.error.message=="string"?e.error.message:Array.isArray(e.content)?e.content.map(s=>se(s)&&s.type==="text"&&typeof s.text=="string"?s.text:"").join(`
|
|
6
|
+
`).trim():null:null}function Pt(e,s){if(!ge(e)||ft(s).length>0)return null;const o=fs(s);if(!o)return null;const i=/^Error:\s*(.+)$/is.exec(o)?.[1]?.trim();return!i||/^Call get_schema before render_chart\b/i.test(i)?null:{type:"error",error:{name:"ChartRenderError",message:i,stack:null}}}function st(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function lt(e){return st(e)&&e.version===1&&typeof e.query=="string"&&Array.isArray(e.groups)}function xt(e){if(!st(e))return null;const s=st(e.details)?e.details:null;if(s&<(s.evidence))return s.evidence;const o=st(e.data)?e.data:null;return o&<(o.evidence)?o.evidence:lt(e.evidence)?e.evidence:null}function ps(e){return{type:"evidence",evidence:e}}function Ve(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ct(e){return Ve(e)?e.version===1&&typeof e.query=="string"&&Array.isArray(e.sources)&&Ve(e.coverage):!1}function gs(e){if(!Ve(e))return null;const s=Ve(e.details)?e.details:null;if(s&&ct(s.crossChatEvidence))return s.crossChatEvidence;const o=Ve(e.data)?e.data:null;return o&&ct(o.crossChatEvidence)?o.crossChatEvidence:ct(e.crossChatEvidence)?e.crossChatEvidence:null}function ms(e){return{type:"cross_chat_evidence",evidence:e}}function Et(e){return JSON.parse(JSON.stringify(e))}function yt(e){return JSON.parse(JSON.stringify(e))}function zt(e){return e?.type==="plan_draft"&&typeof e.text=="string"}function ks(e,s){const o=e.map(yt),c=o[o.length-1];return zt(c)?c.text+=s:o.push({type:"plan_draft",version:1,status:"streaming",text:s}),o}function Is(e,s){const o=e.map(yt);for(let c=o.length-1;c>=0;c--){const i=o[c];if(zt(i)){const p=i.text.trim();return o[c]={...Et(s),...p?{displayText:p}:{}},o}}return o.push(Et(s)),o}function ys(e){return e.filter(s=>s.type!=="plan_draft").map(yt)}function Ts(e){if(e)for(let s=e.length-1;s>=0;s-=1){const o=e[s];if(o.type==="text"&&o.processDurationMs!==void 0)return o.processDurationMs}}function Xe(e,s){if(!e)return;const o=e.findLastIndex(c=>c.type==="text");return o<0?e:e.map((c,i)=>i===o&&c.type==="text"?{...c,processDurationMs:s}:c)}function Nt(e){if(!e)return;const s=JSON.parse(JSON.stringify(e));for(const o of s)o.type==="tool"&&delete o.tool.displayResult;return s}function ut(e){return e.toolCallId?`id:${e.toolCallId}`:`name:${e.name}`}function _t(){const e=new Map;let s=null;const o=()=>{if(s){const i=e.get(s);if(i)return i}const c=Array.from(e.entries()).at(-1);return s=c?.[0]??null,c?.[1]??null};return{start(c){const i=ut(c),p={name:c.name,displayName:c.name,status:"running",toolCallId:c.toolCallId};return e.set(i,p),s=i,p},update(c){const i=ut(c),p=e.get(i);if(!p)return o();const A={...p,progress:c.progress};return e.set(i,A),s=i,A},finish(c){const i=ut(c),p=e.get(i);e.delete(i),s===i&&(s=null);const A=o();return A||(p?{...p,status:c.status}:null)},current(){return o()},clear(){e.clear(),s=null}}}function hs(e,s){if(!e.isStreaming)return null;const o=e.contentBlocks?[...e.contentBlocks]:[];let c=e.content,i=!1;for(const p of s){const A=o[o.length-1];if(p.type==="content"){if(p.content.trim().length===0&&A?.type!=="text")continue;A?.type==="text"?A.text=(A.text||"")+p.content:o.push({type:"text",text:p.content}),c+=p.content,i=!0;continue}const b=p.thinkTag||"think";A?.type==="think"&&A.tag===b?(A.text=(A.text||"")+p.content,i=!0):p.content.trim().length>0&&(o.push({type:"think",tag:b,text:p.content}),i=!0)}return i?{content:c,contentBlocks:o}:{content:e.content,contentBlocks:e.contentBlocks||[]}}function Ss(){return typeof requestAnimationFrame=="function"&&typeof cancelAnimationFrame=="function"?{request:e=>requestAnimationFrame(e),cancel:e=>cancelAnimationFrame(e)}:{request:e=>setTimeout(e,16),cancel:e=>clearTimeout(e)}}function vs(e,s=Ss()){let o=null,c=[];function i(){if(o!==null&&(s.cancel(o),o=null),c.length===0)return;const b=c;c=[],e(b)}function p(b){const w=c[c.length-1];w?.type==="content"&&b.type==="content"||w?.type==="think"&&b.type==="think"&&w.thinkTag===b.thinkTag?w.content+=b.content:c.push({...b}),o===null&&(o=s.request(()=>{o=null,i()}))}function A(){o!==null&&(s.cancel(o),o=null),c=[]}return{push:p,flush:i,cancel:A}}const pe="__draft__";function Cs(e){return e?`${e.startTs}_${e.endTs}`:"all"}function As(e){return e.kind==="global"?"global":`${e.sessionId}:${e.chatType}:${Cs(e.timeFilter)}`}function gt(){return{promptTokens:0,completionTokens:0,totalTokens:0,cacheReadTokens:0,cacheWriteTokens:0}}function Dt(e){return{promptTokens:e.promptTokens??0,completionTokens:e.completionTokens??0,totalTokens:e.totalTokens??0,cacheReadTokens:e.cacheReadTokens??0,cacheWriteTokens:e.cacheWriteTokens??0}}function Ke(e){if(e&&typeof e=="object"){const s=e;return{name:typeof s.name=="string"?s.name:null,message:typeof s.message=="string"?s.message:"未知错误",stack:typeof s.stack=="string"?s.stack:null,statusCode:typeof s.statusCode=="number"?s.statusCode:null,url:typeof s.url=="string"?s.url:null,responseBody:typeof s.responseBody=="string"?s.responseBody:null,responseHeaders:s.responseHeaders&&typeof s.responseHeaders=="object"?s.responseHeaders:null,requestBody:typeof s.requestBody=="string"?s.requestBody:null,cause:typeof s.cause=="string"?s.cause:null,provider:typeof s.provider=="string"?s.provider:null,friendlyMessage:typeof s.friendlyMessage=="string"?s.friendlyMessage:null}}return{name:null,message:e?String(e):"未知错误",stack:null}}function et(e){const s=e.contentBlocks;return{id:e.id,role:e.role,content:e.content,timestamp:e.timestamp*1e3,parentId:e.parentId,contentBlocks:s,processDurationMs:Ts(s),entityRefs:e.entityRefs}}function mt(e=null){return{messages:[],sourceMessages:[],currentKeywords:[],assistantId:e,loaded:!1}}function bs(e){const s=mt(null);return{kind:e.kind??"session",sessionId:e.sessionId,sessionName:e.sessionName,chatType:e.chatType,locale:e.locale,timeFilter:e.timeFilter,selectedAssistantId:null,messages:s.messages,sourceMessages:s.sourceMessages,currentKeywords:s.currentKeywords,isLoadingSource:!1,isAIThinking:!1,currentAIChatId:null,currentToolStatus:null,toolsUsedInCurrentRound:[],sessionTokenUsage:gt(),agentStatus:null,ownerInfo:void 0,ownerInfoInitialized:!1,isAborted:!1,currentRequestId:"",currentAgentRequestId:"",aiChatBuffers:{[pe]:s}}}function dt(e){return e.currentAIChatId??pe}const xs=kt("aiChatRuntime",()=>{const e=z({}),s=z(null),o=Kt(),c=Gt(),i=Qt(),p=Ft(),A=rs(),b=Yt(),{aiGlobalSettings:w}=Zt(o);let x=null;const L=new Map;function V(n){const t=(L.get(n)??0)+1;return L.set(n,t),t}function E(n,t){return L.get(n)===t}function $(n){return`${n}_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function ee(n){const t=As(n),a=e.value[t];if(a)return a.sessionName=n.sessionName,a.chatType=n.chatType,a.locale=n.locale,a.timeFilter=n.timeFilter,{chatKey:t,state:a};const r=bs(n);e.value[t]=r;const u=e.value[t];return Ae(t),{chatKey:t,state:u}}function ne(n){return ee({kind:"global",sessionId:"",sessionName:"Global AI analysis",chatType:"group",locale:n})}function O(n){return e.value[n]??null}function F(){return s.value?O(s.value.chatKey):null}function Y(n,t,a=null){return n.aiChatBuffers[t]||(n.aiChatBuffers[t]=mt(a)),n.aiChatBuffers[t]}function te(n,t){const a=n.currentAIChatId??pe,r=n.aiChatBuffers[a];r&&(r.sessionTokenUsage={...n.sessionTokenUsage});const u=Y(n,t);n.currentAIChatId=t===pe?null:t,n.messages=u.messages,n.sourceMessages=u.sourceMessages,n.currentKeywords=u.currentKeywords,n.selectedAssistantId=u.assistantId,n.sessionTokenUsage=u.sessionTokenUsage?{...u.sessionTokenUsage}:gt(),n.agentStatus=null}function qe(n,t,a){const r=Y(n,t);return n.aiChatBuffers[a]=r,t!==a&&delete n.aiChatBuffers[t],n.currentAIChatId===null&&t===pe&&(n.currentAIChatId=a),r}function ke(n){const t=O(n);t&&(t.selectedAssistantId?p.selectAssistant(t.selectedAssistantId):p.clearSelection())}async function Ae(n){const t=O(n);if(!t||t.kind==="global")return;const r=c.sessions.find(u=>u.id===t.sessionId)?.ownerId;if(!r){t.ownerInfo=void 0,t.ownerInfoInitialized=!0;return}if(!(t.ownerInfoInitialized&&t.ownerInfo?.platformId===r))try{const v=(await St().getMembers(t.sessionId)).find(f=>f.platformId===r);t.ownerInfo=v?{platformId:r,displayName:v.groupNickname||v.accountName||r}:{platformId:r,displayName:r},t.ownerInfoInitialized=!0}catch(u){console.error("[AI] 获取 Owner 信息失败:",u),t.ownerInfo=void 0,t.ownerInfoInitialized=!0}}function he(n,t,a,r=null){const u=O(n);u&&(s.value={requestId:a,kind:u.kind,chatKey:n,sessionId:u.sessionId,sessionName:u.sessionName,chatType:u.chatType,aiChatId:r,questionPreview:t.trim().slice(0,80),startedAt:Date.now()})}function W(n,t){s.value&&s.value.chatKey===n&&(t&&s.value.requestId!==t||(s.value=null))}function Oe(n,t){s.value&&s.value.chatKey===n&&(s.value.aiChatId=t)}function $e(n){return{phase:"preparing",round:0,toolsUsed:n.toolsUsedInCurrentRound.length,contextTokens:0,totalUsage:{...n.sessionTokenUsage},updatedAt:Date.now()}}function ae(n,t,a){const r=n.agentStatus?{...n.agentStatus}:$e(n);n.agentStatus={...r,...a,phase:t,updatedAt:Date.now()}}function Ne(n,t){const a=O(n);if(!a||a.isAIThinking)return!1;const r=Y(a,dt(a),t);return r.assistantId=t,a.selectedAssistantId=t,p.selectAssistant(t),!0}async function I(n,t,a){const r=O(n);if(!r||!E(n,a))return!1;try{const u=await me().getAIChat(t);if(!E(n,a))return!1;const v=u?.kind===r.kind&&(r.kind==="global"||u.sessionId===r.sessionId);if(!u||!v)return!1;const f=Y(r,t,u.assistantId);if(!f.loaded){const[y,C]=await Promise.all([me().getMessages(t),me().getAIChatTokenUsage(t)]);if(!E(n,a))return!1;f.messages.splice(0,f.messages.length,...y.map(R=>et(R))),f.sourceMessages.splice(0,f.sourceMessages.length),f.currentKeywords.splice(0,f.currentKeywords.length),f.sessionTokenUsage=Dt(C),f.loaded=!0}return E(n,a)?(f.assistantId=u.assistantId,te(r,t),ke(n),!0):!1}catch(u){return E(n,a)&&console.error("[AI] 加载对话历史失败:",u),!1}}async function T(n,t){return O(n)?I(n,t,V(n)):!1}function M(n,t){const a=O(n);if(!a)return!1;const r=t??pe;return a.aiChatBuffers[r]?(V(n),te(a,r),ke(n),!0):!1}function ie(){if(!s.value)return!1;const n=s.value,t=M(n.chatKey,n.aiChatId);return x=t&&n.kind==="session"?n.chatKey:null,t}async function be(n,t){const a=x===n;if(x=null,a)return;const r=O(n);if(!r||r.isAIThinking)return;const u=V(n);if(!(!p.isLoaded&&(await p.loadAssistants(),!E(n,u)))&&!(t&&(await I(n,t,u)||!E(n,u)))){try{const v=(await me().getAIChats(r.sessionId))[0];if(!E(n,u)||v&&v.id!==t&&(await I(n,v.id,u)||!E(n,u)))return}catch(v){if(!E(n,u))return;console.error("[AI] Failed to load the latest conversation:",v)}if(E(n,u)){if(!r.selectedAssistantId){const v=tt(r.locale);Ne(n,v)}Ge(n)}}}function Ge(n,t){const a=O(n);if(!a||a.isAIThinking)return!1;V(n);const r=mt(a.selectedAssistantId);return a.aiChatBuffers[pe]=r,te(a,pe),a.currentToolStatus=null,a.toolsUsedInCurrentRound=[],a.isLoadingSource=!1,a.sessionTokenUsage=gt(),a.agentStatus=null,a.isAborted=!1,a.currentRequestId="",a.currentAgentRequestId="",t&&r.messages.push({id:$("welcome"),role:"assistant",content:t,timestamp:Date.now()}),!0}function h(n,t){let a;const r=k=>{const S=t();n.messages[S]={...n.messages[S],...k}},u=(k,S,g)=>{const _=t(),P=n.messages[_].contentBlocks||[],X=S||"think",H=P[P.length-1];let q=H;if(H&&H.type==="think"&&H.tag===X)H.text+=k;else if(k.trim().length>0)q={type:"think",tag:X,text:k},P.push(q);else if(g!==void 0)for(let J=P.length-1;J>=0;J--){const ve=P[J];if(ve.type==="think"&&ve.tag===X){q=ve;break}}g!==void 0&&q&&q.type==="think"&&(q.durationMs=g),r({contentBlocks:[...P]})},v=vs(k=>{const S=t(),g=n.messages[S],_=hs(g,k);_&&r({content:_.content,contentBlocks:_.contentBlocks})}),f=()=>v.flush(),y=()=>v.cancel(),C=k=>{f(),r(k)};return{updateAIMessage:C,appendTextToBlocks:k=>{k&&(k.trim().length>0&&a===void 0&&(a=Date.now()),v.push({type:"content",content:k}))},appendThinkToBlocks:(k,S,g)=>{!k&&g===void 0||(k&&v.push({type:"think",content:k,thinkTag:S}),g!==void 0&&(f(),u("",S,g)))},appendChartsToBlocks:k=>{if(k.length===0)return;f();const S=t(),g=n.messages[S].contentBlocks||[];g.push(...$t(k)),C({contentBlocks:[...g]})},appendEvidenceToBlocks:k=>{f();const S=t(),g=n.messages[S].contentBlocks||[];g.push(ps(k)),C({contentBlocks:[...g]})},appendCrossChatEvidenceToBlocks:k=>{f();const S=t(),g=n.messages[S].contentBlocks||[];g.push(ms(k)),C({contentBlocks:[...g]})},appendPlanDraftToBlocks:k=>{if(!k)return;f();const S=t(),g=n.messages[S].contentBlocks||[];C({contentBlocks:[...ks(g,k)]})},appendPlanToBlocks:k=>{f();const S=t(),g=n.messages[S].contentBlocks||[];C({contentBlocks:[...Is(g,k)]})},removePlanDraftsFromBlocks:()=>{f();const k=t(),S=n.messages[k].contentBlocks||[];C({contentBlocks:[...ys(S)]})},updatePlanBlockStatus:k=>{f();const S=t(),g=n.messages[S].contentBlocks||[];for(let _=g.length-1;_>=0;_--){const P=g[_];if(P.type==="plan"){P.status=k;break}}C({contentBlocks:[...g]})},appendErrorToBlocks:k=>{f();const S=t(),g=n.messages[S].contentBlocks||[];g.push({type:"error",error:k}),C({contentBlocks:[...g]})},addToolBlock:(k,S,g)=>{f();const _=t(),P=n.messages[_].contentBlocks||[];P.push({type:"tool",tool:{name:k,displayName:k,status:"running",params:S,toolCallId:g}}),C({contentBlocks:[...P]})},addRenderOnlyToolPendingBlock:(k,S,g)=>{const _=is(k,S,g);if(!_)return;f();const P=t(),X=n.messages[P].contentBlocks||[];X.push(_),C({contentBlocks:[...X]})},updateRenderOnlyToolResult:(k,S,g,_)=>{f();const P=t(),X=n.messages[P].contentBlocks||[];C({contentBlocks:ds(X,k,S,g,_)})},updateToolBlockStatus:(k,S,g)=>{f();const _=t(),P=n.messages[_].contentBlocks||[],X=q=>q.type==="tool"&&q.tool.status==="running";let H;if(g?.toolCallId)for(let q=P.length-1;q>=0;q--){const J=P[q];if(X(J)&&J.tool.toolCallId===g.toolCallId){H=J;break}}if(!H)for(let q=P.length-1;q>=0;q--){const J=P[q];if(X(J)&&J.tool.name===k){H=J;break}}H&&(H.tool.status=S,g?.result!==void 0&&(H.tool.result=g.result),g?.displayResult!==void 0&&(H.tool.displayResult=g.displayResult),g?.isError!==void 0&&(H.tool.isError=g.isError)),C({contentBlocks:[...P]})},completeTurn:k=>{f();const S=a;if(a=void 0,k||S===void 0)return;const g=t(),_=n.messages[g];if(!_||_.processDurationMs!==void 0)return;const P=Math.max(0,S-_.timestamp);r({processDurationMs:P,contentBlocks:Xe(_.contentBlocks,P)})},settleProcessDuration:()=>{f();const k=t(),S=n.messages[k];if(!S||S.processDurationMs!==void 0)return;const g=Math.max(0,Date.now()-S.timestamp);r({processDurationMs:g,contentBlocks:Xe(S.contentBlocks,g)})},flushPendingText:f,discardPendingText:y}}async function m(n,t,a){const r=O(n);if(!r)return{success:!1,reason:"error"};if(!t.trim())return{success:!1,reason:"empty"};if(r.isAIThinking||s.value)return{success:!1,reason:"busy",activeTask:s.value};const u=$("req"),v=dt(r);let f=v===pe?null:v;const y=Y(r,v,r.selectedAssistantId);let C,R;const G=new Set;let Q=null;y.assistantId=r.selectedAssistantId,y.loaded=!0,he(n,t,u,f),ke(n),r.kind==="session"&&Ae(n);const le=r.kind==="session"?A.activeSkillId:null,Ie=r.kind==="session"?A.activeSkill?.name:null,De=w.value.enableAutoSkill??!0,Ye=De?w.value.chartAutoMode??"suggest":"explicit",ze=(a?.mentionedMembers??[]).map(N=>({memberId:N.memberId,platformId:N.platformId,displayName:N.displayName,aliases:[...N.aliases],mentionText:N.mentionText})),Z=(a?.entityRefs??[]).map(N=>({...N}));r.isAIThinking=!0,r.isLoadingSource=!0,r.currentToolStatus=null,r.toolsUsedInCurrentRound=[],r.agentStatus=null,r.isAborted=!1,r.currentRequestId=u,r.currentAgentRequestId="";try{const N=await vt().hasConfig();if(r.isAborted)return W(n,u),{success:!1,reason:"aborted"};if(r.currentRequestId!==u)return W(n,u),{success:!1,reason:"busy",activeTask:s.value};if(!N)return y.messages.push({id:$("error"),role:"assistant",content:"⚠️ 请先配置 AI 服务。点击左下角「设置」按钮前往「模型配置Tab」进行配置。",timestamp:Date.now()}),W(n,u),{success:!1,reason:"no_config"};const D={id:$("user"),role:"user",content:t,timestamp:Date.now(),toolCalls:[],entityRefs:Z};C=D,y.messages.push(D);const Be={id:$("ai"),role:"assistant",content:"",timestamp:Date.now(),isStreaming:!0,contentBlocks:[]};le&&Ie&&Be.contentBlocks.push({type:"skill",skillId:le,skillName:Ie}),y.messages.push(Be);try{a?.onAccepted?.()}catch(l){console.error("[AI] Failed to acknowledge accepted user message:",l)}let U=y.messages.length-1,ce=!1;const re=_t(),{updateAIMessage:Se,appendTextToBlocks:k,appendThinkToBlocks:S,appendChartsToBlocks:g,appendEvidenceToBlocks:_,appendCrossChatEvidenceToBlocks:P,appendPlanDraftToBlocks:X,appendPlanToBlocks:H,removePlanDraftsFromBlocks:q,updatePlanBlockStatus:J,appendErrorToBlocks:ve,addToolBlock:We,addRenderOnlyToolPendingBlock:rt,updateRenderOnlyToolResult:ue,updateToolBlockStatus:Re,completeTurn:Ze,settleProcessDuration:Me,flushPendingText:Ue,discardPendingText:Pe}=h(y,()=>U),ye=y.assistantId??tt(r.locale);if(!f){const l=t.slice(0,50)+(t.length>50?"...":""),d=r.kind==="global"?await me().createGlobalAIChat(l,ye):await me().createAIChat(r.sessionId,l,ye);if(r.isAborted)return Me(),Se({isStreaming:!1}),W(n,u),{success:!1,reason:"aborted"};if(r.currentRequestId!==u)return Me(),Se({isStreaming:!1}),W(n,u),{success:!1,reason:"busy",activeTask:s.value};f=d.id,qe(r,pe,d.id),y.assistantId=ye,Oe(n,d.id)}const xe={sessionId:r.sessionId,aiChatId:f,timeFilter:r.timeFilter?{startTs:r.timeFilter.startTs,endTs:r.timeFilter.endTs}:void 0,maxMessagesLimit:w.value.maxMessagesPerRequest,ownerInfo:r.ownerInfo?{platformId:r.ownerInfo.platformId,displayName:r.ownerInfo.displayName}:void 0,mentionedMembers:ze.length>0?ze:void 0,preprocessConfig:await j(),searchContextBefore:w.value.searchContextBefore,searchContextAfter:w.value.searchContextAfter},{requestId:de,promise:ot}=it().runStream({userMessage:t,chatKind:r.kind,sessionId:r.kind==="session"?r.sessionId:void 0,entityRefs:r.kind==="global"&&Z.length>0?Z:void 0,aiChatId:f,timeFilter:xe.timeFilter,maxMessagesLimit:xe.maxMessagesLimit,ownerInfo:r.kind==="session"?xe.ownerInfo:void 0,mentionedMembers:r.kind==="session"?xe.mentionedMembers:void 0,preprocessConfig:xe.preprocessConfig,chatType:r.chatType,locale:r.locale,assistantId:ye,skillId:r.kind==="session"?le:void 0,enableAutoSkill:r.kind==="session"&&!le?De:void 0,chartAutoMode:r.kind==="session"&&!le?Ye:void 0,thinkingLevel:(()=>{const l=b.defaultAssistant;if(!(!l?.configId||!l?.modelId))return o.getThinkingLevel(l.configId,l.modelId)})()},l=>{if(!(r.isAborted||u!==r.currentRequestId))switch(l.type){case"content":l.content&&(r.currentToolStatus=re.current(),k(l.content));break;case"think":l.content?S(l.content,l.thinkTag):l.thinkDurationMs!==void 0&&S("",l.thinkTag,l.thinkDurationMs);break;case"tool_start":if(l.toolName){const d=l.toolParams;r.currentToolStatus=re.start({name:l.toolName,toolCallId:l.toolCallId}),r.toolsUsedInCurrentRound.push(l.toolName),ge(l.toolName)?rt(l.toolName,d,l.toolCallId):We(l.toolName,d,l.toolCallId)}break;case"tool_update":Ue(),l.toolName&&l.toolProgress&&(r.currentToolStatus=re.update({name:l.toolName,toolCallId:l.toolCallId,progress:l.toolProgress}));break;case"tool_result":if(l.toolName){const d=ft(l.toolResult),K=Pt(l.toolName,l.toolResult);ge(l.toolName)?ue(l.toolName,l.toolCallId,d,K):g(d);const Ee=xt(l.toolResult);Ee&&_(Ee);const je=gs(l.toolResult);je&&P(je),K&&(ge(l.toolName)||ve(K.error));const Le=K!==null||l.toolIsError===!0;if(r.currentToolStatus?.name===l.toolName&&(r.currentToolStatus={...r.currentToolStatus,status:Le?"error":"done"}),!ge(l.toolName)){const He=At(l.toolResult);Re(l.toolName,Le?"error":"done",{toolCallId:l.toolCallId,result:bt(He),displayResult:He,isError:l.toolIsError})}r.currentToolStatus=re.finish({name:l.toolName,toolCallId:l.toolCallId,status:Le?"error":"done"})}r.isLoadingSource=!1;break;case"plan_delta":l.planDelta&&X(l.planDelta);break;case"memory_change":l.memoryId&&G.add(l.memoryId),l.provenanceToken&&(Q=l.provenanceToken);break;case"plan":l.plan&&(H(l.plan),J("executing"));break;case"plan_skipped":q();break;case"turn_end":Ze(!!l.hadToolCalls);break;case"status":Ue(),l.status&&(!r.agentStatus||l.status.updatedAt>=r.agentStatus.updatedAt)&&(r.agentStatus=l.status);break;case"compression_done":if(Ue(),l.compressionResult){const d={id:`summary-${Date.now()}`,role:"summary",content:l.compressionResult.summaryContent,timestamp:l.compressionResult.timestamp},K=Math.max(0,y.messages.length-2);y.messages.splice(K,0,d),U++}break;case"done":Me(),re.clear(),r.currentToolStatus=null,ce||J("done"),l.usage&&(R={...l.usage},r.sessionTokenUsage={promptTokens:r.sessionTokenUsage.promptTokens+l.usage.promptTokens,completionTokens:r.sessionTokenUsage.completionTokens+l.usage.completionTokens,totalTokens:r.sessionTokenUsage.totalTokens+l.usage.totalTokens,cacheReadTokens:r.sessionTokenUsage.cacheReadTokens+l.usage.cacheReadTokens,cacheWriteTokens:r.sessionTokenUsage.cacheWriteTokens+l.usage.cacheWriteTokens}),ae(r,ce?"error":"completed",l.usage?{totalUsage:l.usage}:void 0);break;case"error":if(Me(),q(),J("skipped"),r.currentToolStatus&&(r.currentToolStatus={...r.currentToolStatus,status:"error"},Re(r.currentToolStatus.name,"error",{toolCallId:r.currentToolStatus.toolCallId})),re.clear(),!ce){ce=!0;const d=y.messages[U].contentBlocks||[];d.push({type:"error",error:Ke(l.error)}),Se({contentBlocks:[...d],isStreaming:!1})}ae(r,"error");break}});r.currentAgentRequestId=de,he(n,t,de,f);const Ce=await ot;if(r.isAborted)return Pe(),W(n,de),{success:!1,reason:"aborted"};if(Ue(),u!==r.currentRequestId)return W(n,de),{success:!1,reason:"busy",activeTask:s.value};if(Ce.success&&Ce.result){y.messages[U]={...y.messages[U],dataSource:{toolsUsed:Ce.result.toolsUsed,toolRounds:Ce.result.toolRounds},isStreaming:!1};const l=await B(f,D,y.messages[U],R,[...G],Q);if(!l)return{success:!1,reason:"error"};Object.assign(D,l.userMessage),y.messages[U]={...y.messages[U],...l.assistantMessage,isStreaming:!1}}else if(ce){const l=await B(f,D,y.messages[U],R,[...G],Q);if(!l)return{success:!1,reason:"error"};Object.assign(D,l.userMessage),y.messages[U]={...y.messages[U],...l.assistantMessage,isStreaming:!1}}else{ae(r,"error");const l=y.messages[U].contentBlocks||[];l.push({type:"error",error:Ke(Ce.error)}),y.messages[U]={...y.messages[U],contentBlocks:[...l],isStreaming:!1};const d=await B(f,D,y.messages[U],R,[...G],Q);if(!d)return{success:!1,reason:"error"};Object.assign(D,d.userMessage),y.messages[U]={...y.messages[U],...d.assistantMessage,isStreaming:!1}}return Ce.success?{success:!0}:{success:!1,reason:"error"}}catch(N){console.error("[AI] 处理失败:",N),r.agentStatus=null;const D=y.messages[y.messages.length-1];if(D&&D.role==="assistant"){const Be={name:N instanceof Error?N.name:null,message:N instanceof Error?N.message:String(N),stack:N instanceof Error?N.stack??null:null},U=D.contentBlocks||[];U.push({type:"error",error:Be}),D.contentBlocks=[...U];const ce=D.processDurationMs??Math.max(0,Date.now()-D.timestamp);D.processDurationMs=ce,D.contentBlocks=Xe(D.contentBlocks,ce),D.isStreaming=!1;const re=C||y.messages.findLast(Se=>Se.role==="user");re&&await B(f,re,D,R,[...G],Q)}return{success:!1,reason:"error"}}finally{r.isAIThinking=!1,r.isLoadingSource=!1,r.currentToolStatus=null,r.isAborted=!1,r.currentRequestId="",r.currentAgentRequestId="",W(n)}}async function B(n,t,a,r,u=[],v=null){try{if(!n)return null;const f=Nt(a.contentBlocks),{userMessage:y,assistantMessage:C}=await me().addMessagePair(n,{content:t.content,entityRefs:t.entityRefs},{content:a.content,contentBlocks:f,tokenUsage:r});if(u.length>0)try{if(!v)throw new Error("Memory provenance token is missing");await me().linkAIMemorySources({provenanceToken:v,aiChatId:n,userMessageId:y.id,assistantMessageId:C.id,memoryIds:u})}catch(R){Xt("AI memory source linking failed",R instanceof Error?R.stack:void 0)}return{userMessage:et(y),assistantMessage:et(C)}}catch(f){return console.error("[AI] 保存对话失败:",f),null}}async function j(){const n=i.aiPreprocessConfig;return os(n)&&await i.ensureDesensitizeRules(),as(i.aiPreprocessConfig)}function _e(n){return n.trim().replace(/^[\s"'“”‘’([{<]+|[\s"'“”‘’)\]}>.,!?;:,。!?;:、]+$/g,"").toLocaleLowerCase()}async function we(n,t){const a=new Set;for(const r of t.matchAll(/@([^\s@]+)/g)){const u=_e(r[1]??"");u&&a.add(u)}if(a.size===0)return[];try{const r=await St().getMembers(n.sessionId),u=new Map;r.forEach(C=>{const R=C.groupNickname||C.accountName||C.platformId;u.set(R,(u.get(R)??0)+1)});const v=r.map(C=>{const R=C.groupNickname||C.accountName||C.platformId,G=(u.get(R)??0)>1?`${R}·${C.platformId}`:R,Q=[...C.aliases],le=[R,C.groupNickname||"",C.accountName||"",C.platformId,G,...Q].map(_e).filter(Boolean);return{memberId:C.id,platformId:C.platformId,displayName:R,aliases:Q,mentionText:`@${G}`,lookupValues:le}}),f=[],y=new Set;for(const C of a){const R=v.find(G=>!y.has(G.memberId)&&G.lookupValues.includes(C));R&&(y.add(R.memberId),f.push({memberId:R.memberId,platformId:R.platformId,displayName:R.displayName,aliases:R.aliases,mentionText:R.mentionText}))}return f}catch(r){return console.error("[AI] Failed to resolve mentioned members for edited message:",r),[]}}async function Qe(n,t,a){const r=O(n),u=a.trim();if(!r||!r.currentAIChatId)return{success:!1,reason:"error"};if(!u)return{success:!1,reason:"empty"};if(r.isAIThinking||s.value)return{success:!1,reason:"busy",activeTask:s.value};const v=Y(r,r.currentAIChatId,r.selectedAssistantId),f=v.messages.findIndex(Q=>Q.id===t),y=v.messages[f];if(!y||y.role!=="user"||y.isStreaming)return{success:!1,reason:"error"};if(y.content.trim()===u)return{success:!1,reason:"empty"};const C=v.messages.findLastIndex(Q=>Q.role==="user"),R=v.messages.slice(f+1);return f===C&&(R.length===0||R.length===1&&R[0]?.role==="assistant")?Wt(n,r,v,f,y,u):{success:!1,reason:"error"}}async function Wt(n,t,a,r,u,v){const f=$("req");let y,C=!1;const R=_t();he(n,v,f,t.currentAIChatId),ke(n),Ae(n),t.isAIThinking=!0,t.isLoadingSource=!0,t.currentToolStatus=null,t.toolsUsedInCurrentRound=[],t.agentStatus=null,t.isAborted=!1,t.currentRequestId=f,t.currentAgentRequestId="";const G=a.messages[r+1],Q=G?.role==="assistant",le={id:$("ai"),role:"assistant",content:"",timestamp:Date.now(),isStreaming:!0,contentBlocks:[]},Ie=A.activeSkillId,De=A.activeSkill?.name;Ie&&De&&le.contentBlocks.push({type:"skill",skillId:Ie,skillName:De});const Ye={...u,content:v},ze=Q?2:1;a.messages.splice(r,ze,Ye,le);const Z=r+1,N=()=>{a.messages.splice(r,a.messages.length-r,u),Q&&a.messages.splice(r+1,0,G)},{updateAIMessage:D,appendTextToBlocks:Be,appendThinkToBlocks:U,appendChartsToBlocks:ce,appendEvidenceToBlocks:re,appendPlanDraftToBlocks:Se,appendPlanToBlocks:k,removePlanDraftsFromBlocks:S,updatePlanBlockStatus:g,appendErrorToBlocks:_,addToolBlock:P,addRenderOnlyToolPendingBlock:X,updateRenderOnlyToolResult:H,updateToolBlockStatus:q,completeTurn:J,settleProcessDuration:ve,flushPendingText:We,discardPendingText:rt}=h(a,()=>Z);try{if(!await vt().hasConfig())return N(),W(n,f),{success:!1,reason:"no_config"};const Re=a.assistantId??tt(t.locale),Ze=await we(t,v);if(t.isAborted)return N(),W(n,f),{success:!1,reason:"aborted"};if(f!==t.currentRequestId)return N(),W(n,f),{success:!1,reason:"busy",activeTask:s.value};const Me=w.value.enableAutoSkill??!0,Ue=Me?w.value.chartAutoMode??"suggest":"explicit",Pe={sessionId:t.sessionId,aiChatId:t.currentAIChatId,historyLeafMessageId:u.parentId??null,timeFilter:t.timeFilter?{startTs:t.timeFilter.startTs,endTs:t.timeFilter.endTs}:void 0,maxMessagesLimit:w.value.maxMessagesPerRequest,ownerInfo:t.ownerInfo?{platformId:t.ownerInfo.platformId,displayName:t.ownerInfo.displayName}:void 0,mentionedMembers:Ze.length>0?Ze:void 0,preprocessConfig:await j(),searchContextBefore:w.value.searchContextBefore,searchContextAfter:w.value.searchContextAfter},{requestId:ye,promise:xe}=it().runStream({userMessage:v,sessionId:t.sessionId,aiChatId:t.currentAIChatId,historyLeafMessageId:u.parentId??null,timeFilter:Pe.timeFilter,maxMessagesLimit:Pe.maxMessagesLimit,ownerInfo:Pe.ownerInfo,mentionedMembers:Pe.mentionedMembers,preprocessConfig:Pe.preprocessConfig,chatType:t.chatType,locale:t.locale,assistantId:Re,skillId:Ie,enableAutoSkill:Ie?void 0:Me,chartAutoMode:Ie?void 0:Ue,thinkingLevel:(()=>{const d=b.defaultAssistant;if(!(!d?.configId||!d?.modelId))return o.getThinkingLevel(d.configId,d.modelId)})()},d=>{if(!(t.isAborted||f!==t.currentRequestId))switch(d.type){case"content":t.currentToolStatus=R.current(),Be(d.content||"");break;case"think":d.content?U(d.content,d.thinkTag):d.thinkDurationMs!==void 0&&U("",d.thinkTag,d.thinkDurationMs);break;case"tool_start":if(d.toolName){const K=d.toolParams;t.currentToolStatus=R.start({name:d.toolName,toolCallId:d.toolCallId}),t.toolsUsedInCurrentRound.push(d.toolName),ge(d.toolName)?X(d.toolName,K,d.toolCallId):P(d.toolName,K,d.toolCallId)}break;case"tool_update":We(),d.toolName&&d.toolProgress&&(t.currentToolStatus=R.update({name:d.toolName,toolCallId:d.toolCallId,progress:d.toolProgress}));break;case"tool_result":if(d.toolName){const K=ft(d.toolResult),Ee=Pt(d.toolName,d.toolResult),je=Ee!==null||d.toolIsError===!0;ge(d.toolName)?H(d.toolName,d.toolCallId,K,Ee):ce(K);const Le=xt(d.toolResult);if(Le&&re(Le),Ee&&(ge(d.toolName)||_(Ee.error)),!ge(d.toolName)){const He=At(d.toolResult);q(d.toolName,je?"error":"done",{toolCallId:d.toolCallId,result:bt(He),displayResult:He,isError:d.toolIsError})}t.currentToolStatus=R.finish({name:d.toolName,toolCallId:d.toolCallId,status:je?"error":"done"})}t.isLoadingSource=!1;break;case"plan_delta":d.planDelta&&Se(d.planDelta);break;case"plan":d.plan&&(k(d.plan),g("executing"));break;case"plan_skipped":S();break;case"turn_end":J(!!d.hadToolCalls);break;case"status":We(),d.status&&(!t.agentStatus||d.status.updatedAt>=t.agentStatus.updatedAt)&&(t.agentStatus=d.status);break;case"done":ve(),R.clear(),t.currentToolStatus=null,C||g("done"),d.usage&&(y={...d.usage}),ae(t,C?"error":"completed",d.usage?{totalUsage:d.usage}:void 0);break;case"error":{ve(),S(),g("skipped"),C=!0,t.currentToolStatus&&q(t.currentToolStatus.name,"error",{toolCallId:t.currentToolStatus.toolCallId}),R.clear();const K=a.messages[Z].contentBlocks||[];K.push({type:"error",error:Ke(d.error)}),D({contentBlocks:[...K],isStreaming:!1}),ae(t,"error");break}}});t.currentAgentRequestId=ye,he(n,v,ye,t.currentAIChatId);const de=await xe;if(t.isAborted)return rt(),N(),W(n,ye),{success:!1,reason:"aborted"};if(We(),f!==t.currentRequestId)return N(),W(n,ye),{success:!1,reason:"busy",activeTask:s.value};if(de.success&&de.result)D({dataSource:{toolsUsed:de.result.toolsUsed,toolRounds:de.result.toolRounds},isStreaming:!1});else if(!C){ae(t,"error");const d=a.messages[Z].contentBlocks||[];d.push({type:"error",error:Ke(de.error)}),D({contentBlocks:[...d],isStreaming:!1})}if(!de.success)return N(),{success:!1,reason:"error"};const ot=Nt(a.messages[Z].contentBlocks),Ce=await me().replaceLatestMessageRound(t.currentAIChatId,{userMessageId:u.id,userContent:v,assistantMessage:{content:a.messages[Z].content,contentBlocks:ot,tokenUsage:y}}),l=a.messages[Z].processDurationMs;return a.messages[Z]={...et(Ce),dataSource:a.messages[Z].dataSource,processDurationMs:l,isStreaming:!1},a.messages[r]={...a.messages[r],content:v},a.sessionTokenUsage=Dt(await me().getAIChatTokenUsage(t.currentAIChatId)),t.sessionTokenUsage={...a.sessionTokenUsage},{success:!0}}catch(ue){if(t.isAborted)return N(),{success:!1,reason:"aborted"};console.error("[AI] edit and regenerate failed:",ue);const Re=a.messages[Z]?.contentBlocks||[];return Re.push({type:"error",error:{name:ue instanceof Error?ue.name:null,message:ue instanceof Error?ue.message:String(ue),stack:ue instanceof Error?ue.stack??null:null}}),a.messages[Z]&&D({contentBlocks:[...Re],isStreaming:!1}),{success:!1,reason:"error"}}finally{t.isAIThinking=!1,t.isLoadingSource=!1,t.currentToolStatus=null,t.isAborted=!1,t.currentRequestId="",t.currentAgentRequestId="",W(n)}}async function Tt(n){const t=O(n);if(!t||!t.isAIThinking)return!1;t.isAborted=!0,t.isAIThinking=!1,t.isLoadingSource=!1,t.currentToolStatus=null,ae(t,"aborted");const a=s.value?.chatKey===n?s.value.aiChatId??pe:dt(t),r=t.aiChatBuffers[a],u=r?r.messages[r.messages.length-1]:void 0;if(u&&u.role==="assistant"&&u.isStreaming){const v=u.processDurationMs??Math.max(0,Date.now()-u.timestamp);u.processDurationMs=v,u.contentBlocks=Xe(u.contentBlocks,v),u.isStreaming=!1,u.content+=`
|
|
7
|
+
|
|
8
|
+
_(已停止生成)_`}if(t.currentAgentRequestId)try{await it().abort(t.currentAgentRequestId)}catch(v){console.error("[AI] 中止 Agent 请求失败:",v)}return t.currentRequestId="",t.currentAgentRequestId="",W(n),!0}async function jt(){return s.value?Tt(s.value.chatKey):!1}return{sessionStates:e,activeTask:s,ensureSessionState:ee,ensureGlobalState:ne,getSessionState:O,getActiveTaskState:F,applySessionAssistantSelection:ke,selectAssistantForSession:Ne,loadAIChat:T,focusAIChat:M,focusActiveTaskAIChat:ie,resetToSelectorOnEnter:be,startNewAIChat:Ge,sendMessage:m,editMessageAndRegenerate:Qe,stopGeneration:Tt,stopActiveTask:jt}});export{rs as a,Ms as b,Ft as c,Ps as s,xs as u};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{M as e}from"./index-B1oj9KDv.js";const r={[e.TEXT]:"text",[e.IMAGE]:"image",[e.VOICE]:"voice",[e.VIDEO]:"video",[e.FILE]:"file",[e.EMOJI]:"emoji",[e.LINK]:"link",[e.LOCATION]:"location",[e.RED_PACKET]:"redPacket",[e.TRANSFER]:"transfer",[e.POKE]:"poke",[e.CALL]:"call",[e.SHARE]:"share",[e.REPLY]:"reply",[e.FORWARD]:"forward",[e.CONTACT]:"contact",[e.SYSTEM]:"system",[e.RECALL]:"recall",[e.OTHER]:"other"};function n(a,o){const E=r[a];return o&&E?o(`common.messageType.${E}`):o?o("common.messageType.unknown"):"未知"}export{n as g};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{t as M,U as Z,P as f,v as te,j as y,E as ie,w as g,r as P,x as V}from"./RelationshipGalaxyCanvas-Cod1JX9m.js";import"./webworkerAll-CvSp2Y8j.js";import"./index-Bq5q3kSU.js";import"./vendor-snapdom--nZvo8Sg.js";import"./index-BGd4ZfhO.js";import"./Tabs-DB603EEu.js";import"./RovingFocusItem-psoFYxrC.js";import"./useToast-YAHDkKDN.js";import"./LoadingState.vue_vue_type_script_setup_true_lang-B_7VHxTx.js";import"./people-page-header-Czt9e1jv.js";import"./relationship-galaxy-connections-Cg4G5yYE.js";import"./relationship-galaxy-viewport-Cwfa51ER.js";import"./Filter-kO4dIDJ2.js";class q{constructor(e){this._lastTransform="",this._observer=null,this._tickerAttached=!1,this.updateTranslation=()=>{if(!this._canvas)return;const t=this._canvas.getBoundingClientRect(),i=this._canvas.width,n=this._canvas.height,s=t.width/i*this._renderer.resolution,o=t.height/n*this._renderer.resolution,r=t.left,l=t.top,d=`translate(${r}px, ${l}px) scale(${s}, ${o})`;d!==this._lastTransform&&(this._domElement.style.transform=d,this._lastTransform=d)},this._domElement=e.domElement,this._renderer=e.renderer,!(globalThis.OffscreenCanvas&&this._renderer.canvas instanceof OffscreenCanvas)&&(this._canvas=this._renderer.canvas,this._attachObserver())}get canvas(){return this._canvas}ensureAttached(){!this._domElement.parentNode&&this._canvas.parentNode&&(this._canvas.parentNode.appendChild(this._domElement),this.updateTranslation())}_attachObserver(){"ResizeObserver"in globalThis?(this._observer&&(this._observer.disconnect(),this._observer=null),this._observer=new ResizeObserver(e=>{for(const t of e){if(t.target!==this._canvas)continue;const i=this.canvas.width,n=this.canvas.height,s=t.contentRect.width/i*this._renderer.resolution,o=t.contentRect.height/n*this._renderer.resolution;(this._lastScaleX!==s||this._lastScaleY!==o)&&(this.updateTranslation(),this._lastScaleX=s,this._lastScaleY=o)}}),this._observer.observe(this._canvas)):this._tickerAttached||M.shared.add(this.updateTranslation,this,Z.HIGH)}destroy(){this._observer?(this._observer.disconnect(),this._observer=null):this._tickerAttached&&M.shared.remove(this.updateTranslation),this._domElement=null,this._renderer=null,this._canvas=null,this._tickerAttached=!1,this._lastTransform="",this._lastScaleX=null,this._lastScaleY=null}}class w{constructor(e){this.bubbles=!0,this.cancelBubble=!0,this.cancelable=!1,this.composed=!1,this.defaultPrevented=!1,this.eventPhase=w.prototype.NONE,this.propagationStopped=!1,this.propagationImmediatelyStopped=!1,this.layer=new f,this.page=new f,this.NONE=0,this.CAPTURING_PHASE=1,this.AT_TARGET=2,this.BUBBLING_PHASE=3,this.manager=e}get layerX(){return this.layer.x}get layerY(){return this.layer.y}get pageX(){return this.page.x}get pageY(){return this.page.y}get data(){return this}composedPath(){return this.manager&&(!this.path||this.path[this.path.length-1]!==this.target)&&(this.path=this.target?this.manager.propagationPath(this.target):[]),this.path}initEvent(e,t,i){throw new Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}initUIEvent(e,t,i,n,s){throw new Error("initUIEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}preventDefault(){this.nativeEvent instanceof Event&&this.nativeEvent.cancelable&&this.nativeEvent.preventDefault(),this.defaultPrevented=!0}stopImmediatePropagation(){this.propagationImmediatelyStopped=!0}stopPropagation(){this.propagationStopped=!0}}var I=/iPhone/i,B=/iPod/i,C=/iPad/i,U=/\biOS-universal(?:.+)Mac\b/i,k=/\bAndroid(?:.+)Mobile\b/i,R=/Android/i,b=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,O=/Silk/i,v=/Windows Phone/i,X=/\bWindows(?:.+)ARM\b/i,K=/BlackBerry/i,Y=/BB10/i,H=/Opera Mini/i,F=/\b(CriOS|Chrome)(?:.+)Mobile/i,N=/Mobile(?:.+)Firefox\b/i,$=function(a){return typeof a<"u"&&a.platform==="MacIntel"&&typeof a.maxTouchPoints=="number"&&a.maxTouchPoints>1&&typeof MSStream>"u"};function ne(a){return function(e){return e.test(a)}}function j(a){var e={userAgent:"",platform:"",maxTouchPoints:0};!a&&typeof navigator<"u"?e={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof a=="string"?e.userAgent=a:a&&a.userAgent&&(e={userAgent:a.userAgent,platform:a.platform,maxTouchPoints:a.maxTouchPoints||0});var t=e.userAgent,i=t.split("[FBAN");typeof i[1]<"u"&&(t=i[0]),i=t.split("Twitter"),typeof i[1]<"u"&&(t=i[0]);var n=ne(t),s={apple:{phone:n(I)&&!n(v),ipod:n(B),tablet:!n(I)&&(n(C)||$(e))&&!n(v),universal:n(U),device:(n(I)||n(B)||n(C)||n(U)||$(e))&&!n(v)},amazon:{phone:n(b),tablet:!n(b)&&n(O),device:n(b)||n(O)},android:{phone:!n(v)&&n(b)||!n(v)&&n(k),tablet:!n(v)&&!n(b)&&!n(k)&&(n(O)||n(R)),device:!n(v)&&(n(b)||n(O)||n(k)||n(R))||n(/\bokhttp\b/i)},windows:{phone:n(v),tablet:n(X),device:n(v)||n(X)},other:{blackberry:n(K),blackberry10:n(Y),opera:n(H),firefox:n(N),chrome:n(F),device:n(K)||n(Y)||n(H)||n(N)||n(F)},any:!1,phone:!1,tablet:!1};return s.any=s.apple.device||s.android.device||s.windows.device||s.other.device,s.phone=s.apple.phone||s.android.phone||s.windows.phone,s.tablet=s.apple.tablet||s.android.tablet||s.windows.tablet,s}const se=j.default??j,oe=se(globalThis.navigator),re=9,G=100,ae=0,le=0,W=2,z=1,he=-1e3,ce=-1e3,de=2,L=class J{constructor(e,t=oe){this._mobileInfo=t,this.debug=!1,this._activateOnTab=!0,this._deactivateOnMouseMove=!0,this._isActive=!1,this._isMobileAccessibility=!1,this._div=null,this._pools={},this._renderId=0,this._children=[],this._androidUpdateCount=0,this._androidUpdateFrequency=500,this._isRunningTests=!1,this._boundOnKeyDown=this._onKeyDown.bind(this),this._boundOnMouseMove=this._onMouseMove.bind(this),this._hookDiv=null,(t.tablet||t.phone)&&this._createTouchHook(),this._renderer=e}get isActive(){return this._isActive}get isMobileAccessibility(){return this._isMobileAccessibility}get hookDiv(){return this._hookDiv}get div(){return this._div}_createTouchHook(){const e=document.createElement("button");e.style.width=`${z}px`,e.style.height=`${z}px`,e.style.position="absolute",e.style.top=`${he}px`,e.style.left=`${ce}px`,e.style.zIndex=de.toString(),e.style.backgroundColor="#FF0000",e.title="select to enable accessibility for this content",e.addEventListener("focus",()=>{this._isMobileAccessibility=!0,this._activate(),this._destroyTouchHook()}),document.body.appendChild(e),this._hookDiv=e}_destroyTouchHook(){this._hookDiv&&(document.body.removeChild(this._hookDiv),this._hookDiv=null)}_activate(){if(this._isActive)return;this._isActive=!0,this._div||(this._div=document.createElement("div"),this._div.style.position="absolute",this._div.style.top=`${ae}px`,this._div.style.left=`${le}px`,this._div.style.pointerEvents="none",this._div.style.zIndex=W.toString(),this._canvasObserver=new q({domElement:this._div,renderer:this._renderer})),this._activateOnTab&&globalThis.addEventListener("keydown",this._boundOnKeyDown,!1),this._deactivateOnMouseMove&&globalThis.document.addEventListener("mousemove",this._boundOnMouseMove,!0);const e=this._renderer.view.canvas;if(e.parentNode)this._canvasObserver.ensureAttached(),this._initAccessibilitySetup();else{const t=new MutationObserver(()=>{e.parentNode&&(t.disconnect(),this._canvasObserver.ensureAttached(),this._initAccessibilitySetup())});t.observe(document.body,{childList:!0,subtree:!0})}}_initAccessibilitySetup(){this._renderer.runners.postrender.add(this),this._renderer.lastObjectRendered&&this._updateAccessibleObjects(this._renderer.lastObjectRendered)}_deactivate(){if(!(!this._isActive||this._isMobileAccessibility)){this._isActive=!1,globalThis.document.removeEventListener("mousemove",this._boundOnMouseMove,!0),this._activateOnTab&&globalThis.addEventListener("keydown",this._boundOnKeyDown,!1),this._renderer.runners.postrender.remove(this);for(const e of this._children)e._accessibleDiv?.parentNode&&(e._accessibleDiv.parentNode.removeChild(e._accessibleDiv),e._accessibleDiv=null),e._accessibleActive=!1;for(const e in this._pools)this._pools[e].forEach(i=>{i.parentNode&&i.parentNode.removeChild(i)}),delete this._pools[e];this._div?.parentNode&&this._div.parentNode.removeChild(this._div),this._pools={},this._children=[]}}_updateAccessibleObjects(e){if(!e.visible||!e.accessibleChildren)return;e.accessible&&(e._accessibleActive||this._addChild(e),e._renderId=this._renderId);const t=e.children;if(t)for(let i=0;i<t.length;i++)this._updateAccessibleObjects(t[i])}init(e){const i={accessibilityOptions:{...J.defaultOptions,...e?.accessibilityOptions||{}}};this.debug=i.accessibilityOptions.debug,this._activateOnTab=i.accessibilityOptions.activateOnTab,this._deactivateOnMouseMove=i.accessibilityOptions.deactivateOnMouseMove,i.accessibilityOptions.enabledByDefault&&this._activate(),this._renderer.runners.postrender.remove(this)}postrender(){const e=performance.now();if(this._mobileInfo.android.device&&e<this._androidUpdateCount||(this._androidUpdateCount=e+this._androidUpdateFrequency,(!this._renderer.renderingToScreen||!this._renderer.view.canvas)&&!this._isRunningTests))return;const t=new Set;if(this._renderer.lastObjectRendered){this._updateAccessibleObjects(this._renderer.lastObjectRendered);for(const i of this._children)i._renderId===this._renderId&&t.add(this._children.indexOf(i))}for(let i=this._children.length-1;i>=0;i--){const n=this._children[i];t.has(i)||(n._accessibleDiv&&n._accessibleDiv.parentNode&&(n._accessibleDiv.parentNode.removeChild(n._accessibleDiv),this._getPool(n.accessibleType).push(n._accessibleDiv),n._accessibleDiv=null),n._accessibleActive=!1,te(this._children,i,1))}this._renderer.renderingToScreen&&this._canvasObserver.ensureAttached();for(let i=0;i<this._children.length;i++){const n=this._children[i];if(!n._accessibleActive||!n._accessibleDiv)continue;const s=n._accessibleDiv,o=n.hitArea||n.getBounds().rectangle;if(n.hitArea){const r=n.worldTransform;s.style.left=`${r.tx+o.x*r.a}px`,s.style.top=`${r.ty+o.y*r.d}px`,s.style.width=`${o.width*r.a}px`,s.style.height=`${o.height*r.d}px`}else this._capHitArea(o),s.style.left=`${o.x}px`,s.style.top=`${o.y}px`,s.style.width=`${o.width}px`,s.style.height=`${o.height}px`}this._renderId++}_updateDebugHTML(e){e.innerHTML=`type: ${e.type}</br> title : ${e.title}</br> tabIndex: ${e.tabIndex}`}_capHitArea(e){e.x<0&&(e.width+=e.x,e.x=0),e.y<0&&(e.height+=e.y,e.y=0);const{width:t,height:i}=this._renderer;e.x+e.width>t&&(e.width=t-e.x),e.y+e.height>i&&(e.height=i-e.y)}_addChild(e){let i=this._getPool(e.accessibleType).pop();i?(i.innerHTML="",i.removeAttribute("title"),i.removeAttribute("aria-label"),i.tabIndex=0):(e.accessibleType==="button"?i=document.createElement("button"):(i=document.createElement(e.accessibleType),i.style.cssText=`
|
|
1
|
+
import{t as M,U as Z,P as f,v as te,j as y,E as ie,w as g,r as P,x as V}from"./RelationshipGalaxyCanvas-CDhljGyJ.js";import"./webworkerAll-CyA4b4LT.js";import"./index-B1oj9KDv.js";import"./vendor-snapdom--nZvo8Sg.js";import"./index-D8cHMqV-.js";import"./Tabs-BMq9wODW.js";import"./RovingFocusItem-BJMUQ5DJ.js";import"./useToast-B5LaA6c-.js";import"./LoadingState.vue_vue_type_script_setup_true_lang-BBcCt_Qm.js";import"./people-page-header-BbYSSpsO.js";import"./relationship-galaxy-connections-Cg4G5yYE.js";import"./relationship-galaxy-viewport-Cwfa51ER.js";import"./Filter-CByj_rCR.js";class q{constructor(e){this._lastTransform="",this._observer=null,this._tickerAttached=!1,this.updateTranslation=()=>{if(!this._canvas)return;const t=this._canvas.getBoundingClientRect(),i=this._canvas.width,n=this._canvas.height,s=t.width/i*this._renderer.resolution,o=t.height/n*this._renderer.resolution,r=t.left,l=t.top,d=`translate(${r}px, ${l}px) scale(${s}, ${o})`;d!==this._lastTransform&&(this._domElement.style.transform=d,this._lastTransform=d)},this._domElement=e.domElement,this._renderer=e.renderer,!(globalThis.OffscreenCanvas&&this._renderer.canvas instanceof OffscreenCanvas)&&(this._canvas=this._renderer.canvas,this._attachObserver())}get canvas(){return this._canvas}ensureAttached(){!this._domElement.parentNode&&this._canvas.parentNode&&(this._canvas.parentNode.appendChild(this._domElement),this.updateTranslation())}_attachObserver(){"ResizeObserver"in globalThis?(this._observer&&(this._observer.disconnect(),this._observer=null),this._observer=new ResizeObserver(e=>{for(const t of e){if(t.target!==this._canvas)continue;const i=this.canvas.width,n=this.canvas.height,s=t.contentRect.width/i*this._renderer.resolution,o=t.contentRect.height/n*this._renderer.resolution;(this._lastScaleX!==s||this._lastScaleY!==o)&&(this.updateTranslation(),this._lastScaleX=s,this._lastScaleY=o)}}),this._observer.observe(this._canvas)):this._tickerAttached||M.shared.add(this.updateTranslation,this,Z.HIGH)}destroy(){this._observer?(this._observer.disconnect(),this._observer=null):this._tickerAttached&&M.shared.remove(this.updateTranslation),this._domElement=null,this._renderer=null,this._canvas=null,this._tickerAttached=!1,this._lastTransform="",this._lastScaleX=null,this._lastScaleY=null}}class w{constructor(e){this.bubbles=!0,this.cancelBubble=!0,this.cancelable=!1,this.composed=!1,this.defaultPrevented=!1,this.eventPhase=w.prototype.NONE,this.propagationStopped=!1,this.propagationImmediatelyStopped=!1,this.layer=new f,this.page=new f,this.NONE=0,this.CAPTURING_PHASE=1,this.AT_TARGET=2,this.BUBBLING_PHASE=3,this.manager=e}get layerX(){return this.layer.x}get layerY(){return this.layer.y}get pageX(){return this.page.x}get pageY(){return this.page.y}get data(){return this}composedPath(){return this.manager&&(!this.path||this.path[this.path.length-1]!==this.target)&&(this.path=this.target?this.manager.propagationPath(this.target):[]),this.path}initEvent(e,t,i){throw new Error("initEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}initUIEvent(e,t,i,n,s){throw new Error("initUIEvent() is a legacy DOM API. It is not implemented in the Federated Events API.")}preventDefault(){this.nativeEvent instanceof Event&&this.nativeEvent.cancelable&&this.nativeEvent.preventDefault(),this.defaultPrevented=!0}stopImmediatePropagation(){this.propagationImmediatelyStopped=!0}stopPropagation(){this.propagationStopped=!0}}var I=/iPhone/i,B=/iPod/i,C=/iPad/i,U=/\biOS-universal(?:.+)Mac\b/i,k=/\bAndroid(?:.+)Mobile\b/i,R=/Android/i,b=/(?:SD4930UR|\bSilk(?:.+)Mobile\b)/i,O=/Silk/i,v=/Windows Phone/i,X=/\bWindows(?:.+)ARM\b/i,K=/BlackBerry/i,Y=/BB10/i,H=/Opera Mini/i,F=/\b(CriOS|Chrome)(?:.+)Mobile/i,N=/Mobile(?:.+)Firefox\b/i,$=function(a){return typeof a<"u"&&a.platform==="MacIntel"&&typeof a.maxTouchPoints=="number"&&a.maxTouchPoints>1&&typeof MSStream>"u"};function ne(a){return function(e){return e.test(a)}}function j(a){var e={userAgent:"",platform:"",maxTouchPoints:0};!a&&typeof navigator<"u"?e={userAgent:navigator.userAgent,platform:navigator.platform,maxTouchPoints:navigator.maxTouchPoints||0}:typeof a=="string"?e.userAgent=a:a&&a.userAgent&&(e={userAgent:a.userAgent,platform:a.platform,maxTouchPoints:a.maxTouchPoints||0});var t=e.userAgent,i=t.split("[FBAN");typeof i[1]<"u"&&(t=i[0]),i=t.split("Twitter"),typeof i[1]<"u"&&(t=i[0]);var n=ne(t),s={apple:{phone:n(I)&&!n(v),ipod:n(B),tablet:!n(I)&&(n(C)||$(e))&&!n(v),universal:n(U),device:(n(I)||n(B)||n(C)||n(U)||$(e))&&!n(v)},amazon:{phone:n(b),tablet:!n(b)&&n(O),device:n(b)||n(O)},android:{phone:!n(v)&&n(b)||!n(v)&&n(k),tablet:!n(v)&&!n(b)&&!n(k)&&(n(O)||n(R)),device:!n(v)&&(n(b)||n(O)||n(k)||n(R))||n(/\bokhttp\b/i)},windows:{phone:n(v),tablet:n(X),device:n(v)||n(X)},other:{blackberry:n(K),blackberry10:n(Y),opera:n(H),firefox:n(N),chrome:n(F),device:n(K)||n(Y)||n(H)||n(N)||n(F)},any:!1,phone:!1,tablet:!1};return s.any=s.apple.device||s.android.device||s.windows.device||s.other.device,s.phone=s.apple.phone||s.android.phone||s.windows.phone,s.tablet=s.apple.tablet||s.android.tablet||s.windows.tablet,s}const se=j.default??j,oe=se(globalThis.navigator),re=9,G=100,ae=0,le=0,W=2,z=1,he=-1e3,ce=-1e3,de=2,L=class J{constructor(e,t=oe){this._mobileInfo=t,this.debug=!1,this._activateOnTab=!0,this._deactivateOnMouseMove=!0,this._isActive=!1,this._isMobileAccessibility=!1,this._div=null,this._pools={},this._renderId=0,this._children=[],this._androidUpdateCount=0,this._androidUpdateFrequency=500,this._isRunningTests=!1,this._boundOnKeyDown=this._onKeyDown.bind(this),this._boundOnMouseMove=this._onMouseMove.bind(this),this._hookDiv=null,(t.tablet||t.phone)&&this._createTouchHook(),this._renderer=e}get isActive(){return this._isActive}get isMobileAccessibility(){return this._isMobileAccessibility}get hookDiv(){return this._hookDiv}get div(){return this._div}_createTouchHook(){const e=document.createElement("button");e.style.width=`${z}px`,e.style.height=`${z}px`,e.style.position="absolute",e.style.top=`${he}px`,e.style.left=`${ce}px`,e.style.zIndex=de.toString(),e.style.backgroundColor="#FF0000",e.title="select to enable accessibility for this content",e.addEventListener("focus",()=>{this._isMobileAccessibility=!0,this._activate(),this._destroyTouchHook()}),document.body.appendChild(e),this._hookDiv=e}_destroyTouchHook(){this._hookDiv&&(document.body.removeChild(this._hookDiv),this._hookDiv=null)}_activate(){if(this._isActive)return;this._isActive=!0,this._div||(this._div=document.createElement("div"),this._div.style.position="absolute",this._div.style.top=`${ae}px`,this._div.style.left=`${le}px`,this._div.style.pointerEvents="none",this._div.style.zIndex=W.toString(),this._canvasObserver=new q({domElement:this._div,renderer:this._renderer})),this._activateOnTab&&globalThis.addEventListener("keydown",this._boundOnKeyDown,!1),this._deactivateOnMouseMove&&globalThis.document.addEventListener("mousemove",this._boundOnMouseMove,!0);const e=this._renderer.view.canvas;if(e.parentNode)this._canvasObserver.ensureAttached(),this._initAccessibilitySetup();else{const t=new MutationObserver(()=>{e.parentNode&&(t.disconnect(),this._canvasObserver.ensureAttached(),this._initAccessibilitySetup())});t.observe(document.body,{childList:!0,subtree:!0})}}_initAccessibilitySetup(){this._renderer.runners.postrender.add(this),this._renderer.lastObjectRendered&&this._updateAccessibleObjects(this._renderer.lastObjectRendered)}_deactivate(){if(!(!this._isActive||this._isMobileAccessibility)){this._isActive=!1,globalThis.document.removeEventListener("mousemove",this._boundOnMouseMove,!0),this._activateOnTab&&globalThis.addEventListener("keydown",this._boundOnKeyDown,!1),this._renderer.runners.postrender.remove(this);for(const e of this._children)e._accessibleDiv?.parentNode&&(e._accessibleDiv.parentNode.removeChild(e._accessibleDiv),e._accessibleDiv=null),e._accessibleActive=!1;for(const e in this._pools)this._pools[e].forEach(i=>{i.parentNode&&i.parentNode.removeChild(i)}),delete this._pools[e];this._div?.parentNode&&this._div.parentNode.removeChild(this._div),this._pools={},this._children=[]}}_updateAccessibleObjects(e){if(!e.visible||!e.accessibleChildren)return;e.accessible&&(e._accessibleActive||this._addChild(e),e._renderId=this._renderId);const t=e.children;if(t)for(let i=0;i<t.length;i++)this._updateAccessibleObjects(t[i])}init(e){const i={accessibilityOptions:{...J.defaultOptions,...e?.accessibilityOptions||{}}};this.debug=i.accessibilityOptions.debug,this._activateOnTab=i.accessibilityOptions.activateOnTab,this._deactivateOnMouseMove=i.accessibilityOptions.deactivateOnMouseMove,i.accessibilityOptions.enabledByDefault&&this._activate(),this._renderer.runners.postrender.remove(this)}postrender(){const e=performance.now();if(this._mobileInfo.android.device&&e<this._androidUpdateCount||(this._androidUpdateCount=e+this._androidUpdateFrequency,(!this._renderer.renderingToScreen||!this._renderer.view.canvas)&&!this._isRunningTests))return;const t=new Set;if(this._renderer.lastObjectRendered){this._updateAccessibleObjects(this._renderer.lastObjectRendered);for(const i of this._children)i._renderId===this._renderId&&t.add(this._children.indexOf(i))}for(let i=this._children.length-1;i>=0;i--){const n=this._children[i];t.has(i)||(n._accessibleDiv&&n._accessibleDiv.parentNode&&(n._accessibleDiv.parentNode.removeChild(n._accessibleDiv),this._getPool(n.accessibleType).push(n._accessibleDiv),n._accessibleDiv=null),n._accessibleActive=!1,te(this._children,i,1))}this._renderer.renderingToScreen&&this._canvasObserver.ensureAttached();for(let i=0;i<this._children.length;i++){const n=this._children[i];if(!n._accessibleActive||!n._accessibleDiv)continue;const s=n._accessibleDiv,o=n.hitArea||n.getBounds().rectangle;if(n.hitArea){const r=n.worldTransform;s.style.left=`${r.tx+o.x*r.a}px`,s.style.top=`${r.ty+o.y*r.d}px`,s.style.width=`${o.width*r.a}px`,s.style.height=`${o.height*r.d}px`}else this._capHitArea(o),s.style.left=`${o.x}px`,s.style.top=`${o.y}px`,s.style.width=`${o.width}px`,s.style.height=`${o.height}px`}this._renderId++}_updateDebugHTML(e){e.innerHTML=`type: ${e.type}</br> title : ${e.title}</br> tabIndex: ${e.tabIndex}`}_capHitArea(e){e.x<0&&(e.width+=e.x,e.x=0),e.y<0&&(e.height+=e.y,e.y=0);const{width:t,height:i}=this._renderer;e.x+e.width>t&&(e.width=t-e.x),e.y+e.height>i&&(e.height=i-e.y)}_addChild(e){let i=this._getPool(e.accessibleType).pop();i?(i.innerHTML="",i.removeAttribute("title"),i.removeAttribute("aria-label"),i.tabIndex=0):(e.accessibleType==="button"?i=document.createElement("button"):(i=document.createElement(e.accessibleType),i.style.cssText=`
|
|
2
2
|
color: transparent;
|
|
3
3
|
pointer-events: none;
|
|
4
4
|
padding: 0;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.evidence-details[data-v-812e30c9]{max-height:min(24rem,50vh);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.cross-chat-evidence-details[data-v-8bc36d76]{max-height:min(32rem,65vh);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.ai-user-bubble{padding:10px 16px}.ai-user-bubble .prose{font-size:16px;line-height:24px}.ai-message-actions button{color:#6b7280!important}.ai-message-actions button:hover:not(:disabled){color:#374151!important;background-color:#f3f4f6}.dark .ai-message-actions button{color:#9ca3af!important}.dark .ai-message-actions button:hover:not(:disabled){color:#e5e7eb!important;background-color:#1f2937}.ai-live-row{position:relative;overflow:hidden}.ai-live-row[data-running]:after{content:"";position:absolute;inset-block:0;left:0;width:300px;background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--color-page-bg) 60%,transparent) 55%,transparent 100%);animation:ai-live-row-sweep 2.5s ease-in-out infinite;pointer-events:none}.dark .ai-live-row[data-running]:after{background:linear-gradient(90deg,transparent 0%,color-mix(in srgb,var(--color-page-dark) 60%,transparent) 55%,transparent 100%)}@keyframes ai-live-row-sweep{0%{left:-300px}80%,to{left:100%}}.ai-process-fold{display:grid;grid-template-rows:0fr;transition:grid-template-rows .2s ease-out}.ai-process-fold[data-open]{grid-template-rows:1fr}.ai-process-fold-inner{min-height:0;overflow:hidden;visibility:hidden;transition:visibility 0s linear .2s}.ai-process-fold[data-open]>.ai-process-fold-inner{visibility:visible;transition-delay:0s}.ai-tool-result-scroll{max-height:min(18rem,40vh);overflow:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.prose.ai-process-detail-content{font-size:.875rem;line-height:1.5rem}.prose.ai-thought-content{line-height:1.2rem}@media(prefers-reduced-motion:reduce){.ai-live-row[data-running]:after{animation:none}.ai-process-fold{transition:none}}.ai-chat-editor[data-v-f56852af] .tiptap{min-height:48px;max-height:192px;overflow-y:auto;border:0;padding:0;color:var(--color-gray-900);font-size:.875rem;line-height:1.5rem;outline:none}.ai-chat-editor[data-v-f56852af] .tiptap p{margin:0}.ai-chat-editor[data-v-f56852af] .tiptap .ai-chat-mention{display:inline-flex;align-items:center;border-radius:.375rem;background:color-mix(in srgb,var(--color-primary-500) 12%,transparent);padding:0 .25rem;color:var(--color-primary-700);line-height:1.25rem;white-space:nowrap}.ai-chat-editor[data-v-f56852af] .tiptap p.is-editor-empty:first-child:before{color:var(--color-gray-400)}.dark .ai-chat-editor[data-v-f56852af] .tiptap{color:var(--color-gray-100)}.dark .ai-chat-editor[data-v-f56852af] .tiptap .ai-chat-mention{background:color-mix(in srgb,var(--color-primary-500) 16%,transparent);color:var(--color-primary-400)}.dark .ai-chat-editor[data-v-f56852af] .tiptap p.is-editor-empty:first-child:before{color:var(--color-gray-500)}.ai-chat-mention-menu-host>div{width:16rem!important;max-width:calc(100vw - 2rem);opacity:0;visibility:hidden}.ai-chat-mention-menu-host>div[style*="transform: translate"]{visibility:visible;animation:ai-chat-mention-menu-reveal 0s 40ms forwards}@keyframes ai-chat-mention-menu-reveal{to{opacity:1}}.ai-chat-mention-menu-host [role=listbox]{box-sizing:border-box;width:16rem;min-width:0;max-width:calc(100vw - 2rem);max-height:16rem;padding:.25rem;overflow:hidden;background:var(--ui-bg);border:1px solid var(--ui-border);border-radius:.75rem;box-shadow:0 12px 32px #00000029}.ai-chat-mention-menu-host [role=presentation]{overflow-y:auto;scrollbar-width:thin}.ai-chat-mention-menu-host [role=group]{padding:0}.ai-chat-mention-menu-host [role=option]{min-height:2.25rem;align-items:center;gap:.375rem;padding:.25rem .5rem;border-radius:.5rem}.ai-chat-mention-menu-host [role=option]:before{inset:0;border-radius:.5rem}.ai-chat-mention-menu-host.has-keyboard-selection [role=option][data-highlighted]:before{background:color-mix(in srgb,var(--ui-primary) 10%,transparent)}.ai-chat-mention-menu-host [role=option]:hover:before{background:color-mix(in srgb,var(--ui-primary) 6%,transparent)}.ai-chat-mention-tabs{padding:.25rem .25rem .375rem;background:var(--ui-bg)}.ai-chat-mention-tabs__inner{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.125rem;padding:.125rem;background:var(--ui-bg-muted);border-radius:.5rem}.ai-chat-mention-tabs__button{height:1.625rem;padding:0 .5rem;color:var(--ui-text-muted);font-size:.75rem;line-height:1rem;cursor:pointer;border-radius:.375rem}.ai-chat-mention-tabs__button:hover{color:var(--ui-text-highlighted)}.ai-chat-mention-tabs__button.is-active{color:var(--ui-text-highlighted);background:var(--ui-bg);box-shadow:0 1px 2px #00000014}.slash-menu-enter-active[data-v-0f67bc21],.slash-menu-leave-active[data-v-0f67bc21]{transition:opacity .16s ease,transform .16s ease}.slash-menu-enter-from[data-v-0f67bc21],.slash-menu-leave-to[data-v-0f67bc21]{transform:translateY(8px);opacity:0}
|