chatlab-cli 0.35.0 → 0.36.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/README.md +7 -7
- package/dist/{chat-command-24RYGJAS.mjs → chat-command-XPJ43KSW.mjs} +11 -11
- package/dist/chat-command-XPJ43KSW.mjs.map +1 -0
- package/dist/{chunk-7IGBPZMI.mjs → chunk-2JPFBIAG.mjs} +268 -76
- package/dist/chunk-2JPFBIAG.mjs.map +1 -0
- package/dist/{chunk-GQMCDWZQ.mjs → chunk-5MJO4AJB.mjs} +2 -2
- package/dist/{chunk-QKEARRFH.mjs → chunk-67HNPYZJ.mjs} +3 -3
- package/dist/{chunk-U36TQMAF.mjs → chunk-6QP47LID.mjs} +2 -2
- package/dist/{chunk-4GWWKHWA.mjs → chunk-FJOGBUXU.mjs} +892 -6990
- package/dist/chunk-FJOGBUXU.mjs.map +1 -0
- package/dist/{chunk-KIMJXKZO.mjs → chunk-JOVL7OTW.mjs} +2 -2
- package/dist/{chunk-ZBPPLXM4.mjs → chunk-L7TIIVAY.mjs} +63 -63
- package/dist/chunk-L7TIIVAY.mjs.map +1 -0
- package/dist/{chunk-DC7IUDNV.mjs → chunk-NFTCEJBJ.mjs} +27 -9
- package/dist/chunk-NFTCEJBJ.mjs.map +1 -0
- package/dist/{chunk-KXDJ7N6N.mjs → chunk-NQHZPSW2.mjs} +2 -2
- package/dist/chunk-Q3NEL2KK.mjs +19126 -0
- package/dist/chunk-Q3NEL2KK.mjs.map +1 -0
- package/dist/{chunk-DEFEU567.mjs → chunk-R73XMAB2.mjs} +13 -11
- package/dist/chunk-R73XMAB2.mjs.map +1 -0
- package/dist/{chunk-BRZ6YIBR.mjs → chunk-X2QBH24F.mjs} +8 -3
- package/dist/chunk-X2QBH24F.mjs.map +1 -0
- package/dist/chunk-YKMQLAVP.mjs +25 -0
- package/dist/chunk-YKMQLAVP.mjs.map +1 -0
- package/dist/cli.mjs +10 -10
- package/dist/contacts-worker.mjs +2 -2
- package/dist/global-insight-worker.mjs +136 -4
- package/dist/global-insight-worker.mjs.map +1 -1
- package/dist/{http-3K4YMWDE.mjs → http-5RVY5J5U.mjs} +13 -13
- package/dist/{import-D4LV565A.mjs → import-ILTWVHKU.mjs} +8 -8
- package/dist/index.mjs +13 -13
- package/dist/{mcp-KL22FKQ2.mjs → mcp-Y2YXOFB4.mjs} +9 -9
- package/dist/people-relationships-worker.mjs +2 -2
- package/dist/semantic-index-worker.mjs +1 -1
- package/dist/{service-KZTHBDQ5.mjs → service-ZAHXRSFD.mjs} +6 -6
- package/dist/service-ZAHXRSFD.mjs.map +1 -0
- package/dist/{src-COIB6Z4P.mjs → src-OV5ZNE3Z.mjs} +124 -98
- package/dist/{stream-import-FSXCFG4M.mjs → stream-import-XOUM3Z5W.mjs} +8 -8
- package/dist/{undici-MU5I3L6Q.mjs → undici-UGXDRJLV.mjs} +193 -193
- package/dist/undici-UGXDRJLV.mjs.map +1 -0
- package/dist/{update-checker-3N7HQEP2.mjs → update-checker-UL2FBLXH.mjs} +3 -5
- package/dist/{update-checker-3N7HQEP2.mjs.map → update-checker-UL2FBLXH.mjs.map} +1 -1
- package/dist/{worker-runtime-DPS2LURI.mjs → worker-runtime-JNGURHDM.mjs} +6 -6
- package/dist-cli-web/assets/AISettingsTab-vvjijrc5.js +1 -0
- package/dist-cli-web/assets/{AboutTab-DMPziKjj.js → AboutTab-CxI8zJNz.js} +1 -1
- package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang-w0hHEodr.js +110 -0
- package/dist-cli-web/assets/Alert-_MYcI_E2.js +1 -0
- package/dist-cli-web/assets/ApiSettingsTab-CK7U6dVA.js +2 -0
- package/dist-cli-web/assets/BatchManageTab-1WnEqqpB.js +1 -0
- package/dist-cli-web/assets/{BufferResource-BXSJADxx.js → BufferResource-i64DlwQT.js} +1 -1
- package/dist-cli-web/assets/{CanvasRenderer-Cq--8UQ_.js → CanvasRenderer-B76mEt9A.js} +1 -1
- package/dist-cli-web/assets/ChatRecordDrawer-Bp6OSCrz.js +1 -0
- package/dist-cli-web/assets/ChatRecordWorkspace-CyfPIlIy.js +11 -0
- package/dist-cli-web/assets/ChatRecordWorkspace-D_oJMtqh.css +1 -0
- package/dist-cli-web/assets/Checkbox-Ci7IeRw1.js +1 -0
- package/dist-cli-web/assets/DataDirCleanupNotice-Dh63pOLt.js +1 -0
- package/dist-cli-web/assets/DatePicker.vue_vue_type_script_setup_true_lang-DqNBNa1D.js +1 -0
- package/dist-cli-web/assets/DebugToolsPanel-CbNsD9co.js +1 -0
- package/dist-cli-web/assets/EChart.vue_vue_type_script_setup_true_lang-YeqmodwE.js +1 -0
- package/dist-cli-web/assets/EChartBar.vue_vue_type_script_setup_true_lang-C3pZmq0v.js +1 -0
- package/dist-cli-web/assets/EChartLine.vue_vue_type_script_setup_true_lang-Co6olfwv.js +1 -0
- package/dist-cli-web/assets/{EChartWordcloud-KV0MdsDE.js → EChartWordcloud-rDusZwSq.js} +1 -1
- package/dist-cli-web/assets/{Filter-DVaqcFmI.js → Filter-yxkeHO78.js} +1 -1
- package/dist-cli-web/assets/GlobalTaskBar-BlZ-fFiq.js +1 -0
- package/dist-cli-web/assets/GroupRelationshipGalaxyView-BXQBX0zJ.js +1 -0
- package/dist-cli-web/assets/Label-CFAZFBQX.js +1 -0
- package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-CwgpqtMZ.js +1 -0
- package/dist-cli-web/assets/MessageExportModal-DU71grc7.js +1 -0
- package/dist-cli-web/assets/PageHeader-BDPf4NuI.js +1 -0
- package/dist-cli-web/assets/PageTabs.vue_vue_type_script_setup_true_lang-_j82asQU.js +1 -0
- package/dist-cli-web/assets/{RelationshipGalaxyCanvas-6EamagxG.js → RelationshipGalaxyCanvas-BODk18aA.js} +14 -14
- package/dist-cli-web/assets/RelationshipGalaxyThreeCanvas-BJyuRiC-.js +4168 -0
- package/dist-cli-web/assets/RelationshipGalaxyThreeCanvas-CCasBcBQ.css +1 -0
- package/dist-cli-web/assets/{RenderTargetSystem-mYuj4uBS.js → RenderTargetSystem-CVMvAUSv.js} +1 -1
- package/dist-cli-web/assets/RovingFocusItem-DC_06OmN.js +1 -0
- package/dist-cli-web/assets/ScreenCaptureModal-DrBFDOtC.js +1 -0
- package/dist-cli-web/assets/SectionTabs.vue_vue_type_script_setup_true_lang-C-Zj2biH.js +1 -0
- package/dist-cli-web/assets/Select-DLK2LYhO.js +1 -0
- package/dist-cli-web/assets/SettingsModal-BFkxzo0Y.css +1 -0
- package/dist-cli-web/assets/SettingsModal-DqaR4Dx5.js +2 -0
- package/dist-cli-web/assets/StorageTab-B0ebN0f8.js +1 -0
- package/dist-cli-web/assets/Switch-CokhQWxm.js +1 -0
- package/dist-cli-web/assets/Tabs-D1UiZNaZ.js +1 -0
- package/dist-cli-web/assets/Tabs-N3Q-Mpqi.js +1 -0
- package/dist-cli-web/assets/{ThemeCard.vue_vue_type_script_setup_true_lang-DPIvbq75.js → ThemeCard.vue_vue_type_script_setup_true_lang-OT-I0mbU.js} +1 -1
- package/dist-cli-web/assets/TimeSelect.vue_vue_type_script_setup_true_lang-Ccunouyf.js +1 -0
- package/dist-cli-web/assets/{VisuallyHiddenInput-BOdkR_GC.js → VisuallyHiddenInput-OAJEt_Y5.js} +1 -1
- package/dist-cli-web/assets/{WebGLRenderer-BB8ukBI_.js → WebGLRenderer-DuUeftYD.js} +1 -1
- package/dist-cli-web/assets/{WebGPURenderer-DDOzF1Kc.js → WebGPURenderer-DoWQxiWZ.js} +1 -1
- package/dist-cli-web/assets/aiChat-CdADfRnU.js +8 -0
- package/dist-cli-web/assets/{browserAll-BRqlnNxq.js → browserAll-Cb-mtR2y.js} +1 -1
- package/dist-cli-web/assets/{cli-web-ClAJ6Tao.js → cli-web-BHQCZLLg.js} +1 -1
- package/dist-cli-web/assets/{fetch-LY-yerw1.js → fetch-AvsnJLWJ.js} +1 -1
- package/dist-cli-web/assets/{fetch-Dy38lkAa.js → fetch-B-6tyYWu.js} +1 -1
- package/dist-cli-web/assets/{fetch-Bcy2T8Fe.js → fetch-B4PYy5JS.js} +1 -1
- package/dist-cli-web/assets/{fetch-DWAIk_6_.js → fetch-BbcFaCRB.js} +1 -1
- package/dist-cli-web/assets/fetch-BkA_so1e.js +1 -0
- package/dist-cli-web/assets/{fetch-q480XYZQ.js → fetch-BzXuAaT3.js} +8 -5
- package/dist-cli-web/assets/fetch-CW2fKvGp.js +1 -0
- package/dist-cli-web/assets/{fetch-DijSOvop.js → fetch-DEub4tOo.js} +1 -1
- package/dist-cli-web/assets/{fetch-CGu53cxT.js → fetch-DLTlYnDB.js} +1 -1
- package/dist-cli-web/assets/fetch-Qs38Hx1V.js +1 -0
- package/dist-cli-web/assets/{fetch-CP1afnT0.js → fetch-sYDJ-Zs8.js} +1 -1
- package/dist-cli-web/assets/{fetch-DzKlTaLz.js → fetch-ul8-uQIb.js} +1 -1
- package/dist-cli-web/assets/host-B6SQ6OGo.js +1 -0
- package/dist-cli-web/assets/host-DYIkQqvY.js +1 -0
- package/dist-cli-web/assets/{index-Di6FmCdk.js → index--IEkRjKe.js} +10 -10
- package/dist-cli-web/assets/index-9iaY_EWG.js +1 -0
- package/dist-cli-web/assets/index-B4J99zv3.css +1 -0
- package/dist-cli-web/assets/index-BBeqtL8d.css +1 -0
- package/dist-cli-web/assets/index-BnaLj2dx.css +1 -0
- package/dist-cli-web/assets/index-C7omDgiJ.js +2 -0
- package/dist-cli-web/assets/index-CHsM84U1.js +2 -0
- package/dist-cli-web/assets/index-CL8u01Pf.js +137 -0
- package/dist-cli-web/assets/{index-CNzv7aBW.js → index-CShh95fU.js} +1 -1
- package/dist-cli-web/assets/index-C_OS8Y8W.js +1 -0
- package/dist-cli-web/assets/{index-BRV_D8dv.js → index-D64XYYts.js} +1 -1
- package/dist-cli-web/assets/index-DrCc8p_I.css +1 -0
- package/dist-cli-web/assets/index-Dz_ddyZS.css +1 -0
- package/dist-cli-web/assets/index-UpTe1KzQ.js +1 -0
- package/dist-cli-web/assets/index-a8Hw6eD8.js +1 -0
- package/dist-cli-web/assets/index-jwjzZNKm.js +1 -0
- package/dist-cli-web/assets/index-pkxlF8Ee.js +1 -0
- package/dist-cli-web/assets/index-sWxuTsa7.js +36 -0
- package/dist-cli-web/assets/{people-page-header-Bh3KXD4g.js → people-page-header-0jvXFFnh.js} +1 -1
- package/dist-cli-web/assets/{prompt-DcAcgQiB.js → prompt-BPYj29Vq.js} +1 -1
- package/dist-cli-web/assets/{semantic-index-config-builder-CK6v64Y1.js → semantic-index-config-builder-vO37z355.js} +1 -1
- package/dist-cli-web/assets/service-CVoA9yNf.js +1 -0
- package/dist-cli-web/assets/{service-YZnJyEMq.js → service-D29Vftq9.js} +1 -1
- package/dist-cli-web/assets/service-DMysyLCa.js +1 -0
- package/dist-cli-web/assets/{useFormControl-B-aXrJZN.js → useFormControl-DVawP2DO.js} +1 -1
- package/dist-cli-web/assets/useTable-Bv3R_Hux.js +1 -0
- package/dist-cli-web/assets/useToast-BA0EwImD.js +1 -0
- package/dist-cli-web/assets/{vendor-echarts-DfAMQxdr.js → vendor-echarts-hTLhTs52.js} +5 -5
- package/dist-cli-web/assets/{vendor-echarts-wordcloud-BsaEJTPY.js → vendor-echarts-wordcloud-B8CF_NgP.js} +1 -1
- package/dist-cli-web/assets/{vendor-zrender-PFmZe1EY.js → vendor-zrender-D8psf1AA.js} +2 -2
- package/dist-cli-web/assets/{webworkerAll-Dwqmy_YO.js → webworkerAll-ZPE_yGnC.js} +1 -1
- package/dist-cli-web/index.html +2 -2
- package/package.json +4 -4
- package/dist/chat-command-24RYGJAS.mjs.map +0 -1
- package/dist/chunk-22YJOBA3.mjs +0 -9826
- package/dist/chunk-22YJOBA3.mjs.map +0 -1
- package/dist/chunk-4GWWKHWA.mjs.map +0 -1
- package/dist/chunk-7IGBPZMI.mjs.map +0 -1
- package/dist/chunk-BRZ6YIBR.mjs.map +0 -1
- package/dist/chunk-DC7IUDNV.mjs.map +0 -1
- package/dist/chunk-DEFEU567.mjs.map +0 -1
- package/dist/chunk-QZCNVAH6.mjs +0 -14
- package/dist/chunk-QZCNVAH6.mjs.map +0 -1
- package/dist/chunk-ZBPPLXM4.mjs.map +0 -1
- package/dist/service-KZTHBDQ5.mjs.map +0 -1
- package/dist/undici-MU5I3L6Q.mjs.map +0 -1
- package/dist-cli-web/assets/AISettingsTab-rQC2ocFH.js +0 -1
- package/dist-cli-web/assets/ActionToolsPanel.vue_vue_type_script_setup_true_lang-CnRLt_1j.js +0 -110
- package/dist-cli-web/assets/Alert--bTQXRcZ.js +0 -1
- package/dist-cli-web/assets/ApiSettingsTab-CtXl4I28.js +0 -2
- package/dist-cli-web/assets/BatchManageTab-1KaCPweN.js +0 -1
- package/dist-cli-web/assets/ChatRecordDrawer-BC0F7ok1.js +0 -11
- package/dist-cli-web/assets/ChatRecordDrawer-Tt6UduRC.css +0 -1
- package/dist-cli-web/assets/Checkbox-CwajNPGF.js +0 -1
- package/dist-cli-web/assets/DataDirCleanupNotice-D0Oruka2.js +0 -1
- package/dist-cli-web/assets/DatePicker.vue_vue_type_script_setup_true_lang-C4CsoIlq.js +0 -1
- package/dist-cli-web/assets/DebugToolsPanel-DVDwS-wz.js +0 -1
- package/dist-cli-web/assets/GlobalTaskBar-DpPMX0jx.js +0 -1
- package/dist-cli-web/assets/GroupRelationshipGalaxyView-CLnO3phW.js +0 -1
- package/dist-cli-web/assets/Label-Bt2U4lGy.js +0 -1
- package/dist-cli-web/assets/LoadingState.vue_vue_type_script_setup_true_lang-Cnshyn0f.js +0 -1
- package/dist-cli-web/assets/MessageExportModal-BozaR9UZ.js +0 -1
- package/dist-cli-web/assets/PageHeader-CEe0xTl3.js +0 -1
- package/dist-cli-web/assets/PageTabs.vue_vue_type_script_setup_true_lang-D2DZrrnv.js +0 -1
- package/dist-cli-web/assets/RelationshipGalaxyThreeCanvas-B6GB4PWS.js +0 -4108
- package/dist-cli-web/assets/RelationshipGalaxyThreeCanvas-TYGOUDiv.css +0 -1
- package/dist-cli-web/assets/RovingFocusItem-B2y6BG1a.js +0 -1
- package/dist-cli-web/assets/ScreenCaptureModal-BvAtSNNR.js +0 -1
- package/dist-cli-web/assets/SectionTabs.vue_vue_type_script_setup_true_lang-ueEF4zHE.js +0 -1
- package/dist-cli-web/assets/Select-Cm4I8u9n.js +0 -1
- package/dist-cli-web/assets/SettingsModal-CjVax3I6.css +0 -1
- package/dist-cli-web/assets/SettingsModal-Cwshzj7i.js +0 -2
- package/dist-cli-web/assets/StorageTab-D7HzH16Y.js +0 -1
- package/dist-cli-web/assets/Switch-BVw4e_19.js +0 -1
- package/dist-cli-web/assets/Tabs-Dqwkh3Ea.js +0 -1
- package/dist-cli-web/assets/Tabs-OrJkANIA.js +0 -1
- package/dist-cli-web/assets/TimeSelect.vue_vue_type_script_setup_true_lang-dEdo6CqM.js +0 -1
- package/dist-cli-web/assets/aiChat-CzFSFuOJ.js +0 -8
- package/dist-cli-web/assets/annual-summary-time-range-CmrAqcuj.js +0 -1
- package/dist-cli-web/assets/base-CawUl6ET.js +0 -1
- package/dist-cli-web/assets/dateFormat-DXuDxIye.js +0 -1
- package/dist-cli-web/assets/fetch-3_xX8Yi8.js +0 -1
- package/dist-cli-web/assets/index-0dp58uL4.css +0 -1
- package/dist-cli-web/assets/index-1X7zdLgJ.css +0 -1
- package/dist-cli-web/assets/index-4enwdBcq.css +0 -1
- package/dist-cli-web/assets/index-AudHHbMs.js +0 -1
- package/dist-cli-web/assets/index-CF4DTbvD.js +0 -1
- package/dist-cli-web/assets/index-CMLoht5R.js +0 -1
- package/dist-cli-web/assets/index-CMPHZH6B.css +0 -1
- package/dist-cli-web/assets/index-CXUTiy-V.js +0 -1
- package/dist-cli-web/assets/index-D5m0P4ss.js +0 -36
- package/dist-cli-web/assets/index-DkOrt7_X.js +0 -2
- package/dist-cli-web/assets/index-Dlb6fC68.js +0 -1
- package/dist-cli-web/assets/index-IA7YUjQX.js +0 -2
- package/dist-cli-web/assets/index-ZsZwPLWy.css +0 -1
- package/dist-cli-web/assets/index-kzU381y1.js +0 -1
- package/dist-cli-web/assets/index-z8Vogc-b.js +0 -137
- package/dist-cli-web/assets/lazy-overlay-visibility-Bd9ZFOgR.js +0 -1
- package/dist-cli-web/assets/member-select-utils-BXZ3oHct.js +0 -1
- package/dist-cli-web/assets/useTable-DPEMaGby.js +0 -1
- package/dist-cli-web/assets/useToast-B36MzFFy.js +0 -1
- /package/dist/{chunk-GQMCDWZQ.mjs.map → chunk-5MJO4AJB.mjs.map} +0 -0
- /package/dist/{chunk-QKEARRFH.mjs.map → chunk-67HNPYZJ.mjs.map} +0 -0
- /package/dist/{chunk-U36TQMAF.mjs.map → chunk-6QP47LID.mjs.map} +0 -0
- /package/dist/{chunk-KIMJXKZO.mjs.map → chunk-JOVL7OTW.mjs.map} +0 -0
- /package/dist/{chunk-KXDJ7N6N.mjs.map → chunk-NQHZPSW2.mjs.map} +0 -0
- /package/dist/{http-3K4YMWDE.mjs.map → http-5RVY5J5U.mjs.map} +0 -0
- /package/dist/{import-D4LV565A.mjs.map → import-ILTWVHKU.mjs.map} +0 -0
- /package/dist/{mcp-KL22FKQ2.mjs.map → mcp-Y2YXOFB4.mjs.map} +0 -0
- /package/dist/{src-COIB6Z4P.mjs.map → src-OV5ZNE3Z.mjs.map} +0 -0
- /package/dist/{stream-import-FSXCFG4M.mjs.map → stream-import-XOUM3Z5W.mjs.map} +0 -0
- /package/dist/{worker-runtime-DPS2LURI.mjs.map → worker-runtime-JNGURHDM.mjs.map} +0 -0
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/index-sWxuTsa7.js","assets/vendor-snapdom--nZvo8Sg.js","assets/index-DrCc8p_I.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{X as Mt,d as ct,r as D,f as se,aA as He,bO as We,bP as Ke,bQ as qt,W as Dt,bs as Ft,bR as gt,ao as Ot,a8 as $t,bS as zt,az as Wt,K as mt,aK as oe,bT as et}from"./index-sWxuTsa7.js";import{u as jt}from"./prompt-BPYj29Vq.js";import{C as Nt}from"./chatlabSiteLocale-CrCNb8QP.js";const xe="chart_runtime",Ht=4e3,Jt=`
|
|
3
|
+
…[truncated]`;function It(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function yt(e){return!It(e)||!Array.isArray(e.content)?"":e.content.map(s=>It(s)&&s.type==="text"&&typeof s.text=="string"?s.text:"").filter(s=>s.length>0).join(`
|
|
4
|
+
`)}function kt(e,s=Ht){return e.length<=s?e:e.slice(0,s)+Jt}function X(){return Mt("assistant-crud")}function ue(){return Mt("skill-crud")}const St=Nt,Vt={"zh-CN":"cn","zh-TW":"cn","en-US":"en","ja-JP":"ja"},Pt=ct("assistant",()=>{const e=D([]),s=D(null),d=D(!1),c=new Set;let l=null;const y=D([]),x=D([]),w=D([]),M=D(!1),_=D(null),U=D("group"),J=D("zh-CN"),L=se(()=>s.value?e.value.find(m=>m.id===s.value)??null:null),V=se(()=>e.value.filter(m=>{const f=!m.applicableChatTypes?.length||m.applicableChatTypes.includes(U.value),T=!m.supportedLocales?.length||m.supportedLocales.some(W=>J.value.startsWith(W));return f&&T})),F=4,Y=se(()=>V.value.slice(0,F)),de=se(()=>V.value.slice(F)),E=se(()=>V.value.length>F),K=se(()=>{const m=new Set(e.value.map(f=>f.id));return w.value.map(f=>({...f,imported:m.has(f.id)}))});function fe(m,f){U.value=m,J.value=f}async function N(){try{const m=X();e.value=await m.getAll(),d.value=!0}catch(m){console.error("[AssistantStore] Failed to load assistants:",m)}}async function ye(){try{y.value=await X().getBuiltinCatalog()}catch(m){console.error("[AssistantStore] Failed to load builtin catalog:",m)}}async function Re(){try{x.value=await X().getBuiltinToolCatalog()}catch(m){console.error("[AssistantStore] Failed to load builtin tool catalog:",m)}}async function ie(m){const f=Vt[m||J.value]??"en",T=`${St}/${f}/assistant.json`;M.value=!0,_.value=null;try{const W=await He().fetchRemoteConfig(T);if(!W.success||!W.data){_.value=W.error||"Failed to fetch cloud catalog",w.value=[];return}const n=W.data;if(!Array.isArray(n)){_.value="Invalid catalog format",w.value=[];return}w.value=n.filter(t=>t.id&&t.name&&t.path)}catch(W){_.value=String(W),w.value=[]}finally{M.value=!1}}async function he(m){const f=`${St}${m.path}`;try{const T=await He().fetchRemoteConfig(f);if(!T.success||typeof T.data!="string")return{success:!1,error:T.error||"Failed to fetch assistant content"};const W=await X().importFromMd(T.data);return W.success&&await N(),W}catch(T){return{success:!1,error:String(T)}}}function Me(m){return e.value.some(f=>f.id===m)}function ve(m){s.value=m}function Ne(){s.value=null}async function Pe(m){try{return await X().getConfig(m)}catch(f){return console.error("[AssistantStore] Failed to get config:",f),null}}async function I(m,f){try{const T=await X().update(m,f);return T.success&&await N(),T}catch(T){return{success:!1,error:String(T)}}}async function k(m){try{const f=await X().reset(m);return f.success&&await N(),f}catch(f){return{success:!1,error:String(f)}}}async function R(m){const f=We(m);if(c.has(f))return null;c.add(f);try{const T=await X().getUpgradeInfo(f);if(!T)return null;try{if(l||(l={...(await Ke().getPreferences()).assistantUpgradeSkippedVersions}),T.latestVersion!==null&&l[T.builtinId]===T.latestVersion)return null}catch(W){console.error("[AssistantStore] Failed to load skipped assistant upgrades:",W)}return T}catch(T){return c.delete(f),console.error("[AssistantStore] Failed to check assistant upgrade:",T),null}}async function ee(m){if(m.latestVersion===null)return{success:!1,error:"Assistant template version is unavailable"};try{l||(l={...(await Ke().getPreferences()).assistantUpgradeSkippedVersions});const f={...l,[m.builtinId]:m.latestVersion},T=await Ke().savePreferences({assistantUpgradeSkippedVersions:f});return T.success&&(l=f),T}catch(f){return{success:!1,error:String(f)}}}async function pe(m,f){try{const T=await X().upgradeWithBackup(m.assistantId,f);return T.success&&await N(),T}catch(T){return{success:!1,error:String(T)}}}async function Ae(m){try{const f=await X().importBuiltin(m);return f.success&&(await N(),await ye()),f}catch(f){return{success:!1,error:String(f)}}}async function Ue(m){try{const f=await X().reimport(m);return f.success&&(await N(),await ye()),f}catch(f){return{success:!1,error:String(f)}}}async function Le(m){try{const f=await X().create(m);return f.success&&await N(),f}catch(f){return{success:!1,error:String(f)}}}async function Je(m){try{const f=X(),T=await f.getConfig(m);if(!T)return{success:!1,error:"Assistant not found"};const{id:W,builtinId:n,...t}=T,o=await f.create({...t,name:`${T.name}${qt.global.t("ai.assistant.duplicateSuffix")}`});return o.success&&await N(),o}catch(f){return{success:!1,error:String(f)}}}async function Ve(m){try{const f=await X().delete(m);return f.success&&await N(),f}catch(f){return{success:!1,error:String(f)}}}return{assistants:e,selectedAssistantId:s,selectedAssistant:L,isLoaded:d,builtinCatalog:y,builtinToolCatalog:x,cloudCatalog:w,cloudLoading:M,cloudError:_,cloudCatalogWithStatus:K,currentChatType:U,currentLocale:J,filteredAssistants:V,defaultAssistants:Y,moreAssistants:de,hasMoreAssistants:E,loadAssistants:N,loadBuiltinCatalog:ye,loadBuiltinToolCatalog:Re,fetchCloudCatalog:ie,importFromCloud:he,isCloudItemImported:Me,selectAssistant:ve,clearSelection:Ne,setFilterContext:fe,getAssistantConfig:Pe,updateAssistant:I,createAssistant:Le,duplicateAssistant:Je,resetAssistant:k,checkDefaultAssistantUpgrade:R,skipAssistantUpgrade:ee,upgradeAssistantWithBackup:pe,importAssistant:Ae,reimportAssistant:Ue,deleteAssistant:Ve}}),Tt=Nt,Gt={"zh-CN":"cn","zh-TW":"cn","en-US":"en","ja-JP":"ja"},Yt=ct("skill",()=>{const e=D([]),s=D(null),d=D(!1),c=D([]),l=D([]),y=D(!1),x=D(null),w=D("group"),M=D("zh-CN");function _(){const I=M.value.startsWith("zh");return{id:xe,name:I?"绘图助手":"Chart Assistant",description:I?"按本轮问题生成灵活的聊天数据图表":"Generate flexible charts for this chat question",tags:[I?"图表":"chart"],chatScope:"all",tools:["render_chart","get_schema"],builtinId:xe}}const U=se(()=>s.value?s.value===xe?_():e.value.find(I=>I.id===s.value)??null:null),J=se(()=>_()),L=se(()=>e.value.filter(I=>I.chatScope==="all"||I.chatScope===w.value)),V=se(()=>{const k=Pt().selectedAssistant,R=[J.value,...L.value];return k?R.filter(ee=>(ee.tools.length,!0)):R}),F=se(()=>{const I={};for(const k of V.value){const R=k.tags[0]||"other";I[R]||(I[R]=[]),I[R].push(k)}return I}),Y=se(()=>{const I=new Set(e.value.map(k=>k.id));return l.value.map(k=>({...k,imported:I.has(k.id)}))});function de(I,k){w.value=I,k&&(M.value=k)}async function E(){try{e.value=await ue().getAll(),d.value=!0}catch(I){console.error("[SkillStore] Failed to load skills:",I)}}async function K(){try{c.value=await ue().getBuiltinCatalog()}catch(I){console.error("[SkillStore] Failed to load builtin catalog:",I)}}async function fe(){const I=Gt[M.value]??"en",k=`${Tt}/${I}/skill.json`;y.value=!0,x.value=null;try{const R=await He().fetchRemoteConfig(k);if(!R.success||!R.data){x.value=R.error||"Failed to fetch cloud catalog",l.value=[];return}const ee=R.data;if(!Array.isArray(ee)){x.value="Invalid catalog format",l.value=[];return}l.value=ee.filter(pe=>pe.id&&pe.name&&pe.path)}catch(R){x.value=String(R),l.value=[]}finally{y.value=!1}}async function N(I){const k=`${Tt}${I.path}`;try{const R=await He().fetchRemoteConfig(k);if(!R.success||typeof R.data!="string")return{success:!1,error:R.error||"Failed to fetch skill content"};const ee=await ue().importFromMd(R.data);return ee.success&&await E(),ee}catch(R){return{success:!1,error:String(R)}}}function ye(I){return e.value.some(k=>k.id===I)}function Re(I){s.value=I}async function ie(I){if(I===xe)return{..._(),prompt:"",builtinId:xe};try{return await ue().getConfig(I)}catch(k){return console.error("[SkillStore] Failed to get skill config:",k),null}}async function he(I,k){try{const R=await ue().update(I,k);return R.success&&await E(),R}catch(R){return{success:!1,error:String(R)}}}async function Me(I){try{const k=await ue().create(I);return k.success&&await E(),k}catch(k){return{success:!1,error:String(k)}}}async function ve(I){try{const k=await ue().delete(I);return k.success&&(s.value===I&&(s.value=null),await E()),k}catch(k){return{success:!1,error:String(k)}}}async function Ne(I){try{const k=await ue().importBuiltin(I);return k.success&&(await E(),await K()),k}catch(k){return{success:!1,error:String(k)}}}async function Pe(I){try{const k=await ue().reimport(I);return k.success&&(await E(),await K()),k}catch(k){return{success:!1,error:String(k)}}}return{skills:e,activeSkillId:s,builtinCatalog:c,isLoaded:d,currentChatType:w,currentLocale:M,activeSkill:U,scopedSkills:L,compatibleSkills:V,groupedSkills:F,cloudCatalog:l,cloudLoading:y,cloudError:x,cloudCatalogWithStatus:Y,setFilterContext:de,loadSkills:E,loadBuiltinCatalog:K,fetchCloudCatalog:fe,importFromCloud:N,isCloudItemImported:ye,activateSkill:Re,getSkillConfig:ie,updateSkill:he,createSkill:Me,deleteSkill:ve,importSkill:Ne,reimportSkill:Pe}});async function _t(e){const{url:s,method:d="POST",headers:c={},body:l,signal:y,onEvent:x}=e,w=await Dt(s,{method:d,headers:{"Content-Type":"application/json",...c},body:l!=null?JSON.stringify(l):void 0,signal:y});if(!w.ok){const L=await w.text().catch(()=>"");throw new Error(`SSE request failed: HTTP ${w.status} ${L}`)}if(!w.body)throw new Error("SSE response has no body");const M=w.body.getReader(),_=new TextDecoder;let U="",J="";for(;;){const{done:L,value:V}=await M.read();if(L)break;U+=_.decode(V,{stream:!0});const F=U.split(`
|
|
5
|
+
`);U=F.pop()||"";for(const Y of F)Y.startsWith("event: ")?J=Y.slice(7).trim():Y.startsWith("data: ")&&(x({event:J,data:Y.slice(6)}),J="")}U.trim()&&U.startsWith("data: ")&&x({event:J,data:U.slice(6)})}function gs(){return{async chatStream(e,s,d){let c;try{return await _t({url:"/_web/ai/llm/chat-stream",body:{messages:e,options:s},onEvent:({data:l})=>{try{const y=JSON.parse(l);y.finishReason==="error"&&y.error&&(c=y.error),d?.(y)}catch{}}}),c?{success:!1,error:c}:{success:!0}}catch(l){const y=l instanceof Error?l.message:String(l);return{success:!1,error:c??y}}}}}const Be=new Map;function tt(){return{runStream(e,s){const d=Date.now();gt("ai_request_started");const c=new AbortController,l=`local_${Date.now()}_${Math.random().toString(36).slice(2,8)}`;Be.set(l,{serverId:"",abortController:c});const x=new Promise(w=>{let M="";const _=[];let U=0,J,L=!1,V;_t({url:"/_web/ai/agent/stream",body:e,signal:c.signal,onEvent:({event:F,data:Y})=>{try{const de=JSON.parse(Y);if(F==="meta"){const K=Be.get(l);K&&(K.serverId=de.requestId??"");return}const E=de;switch(s?.(E),E.type){case"content":E.content&&(M+=E.content);break;case"tool_start":E.toolName&&_.push(E.toolName);break;case"status":E.status&&(U=E.status.round);break;case"done":E.usage&&(J=E.usage);break;case"error":L=!0,V=E.error;break}}catch{}}}).then(()=>{Be.delete(l),w({success:!L,result:{content:M,toolsUsed:_,toolRounds:U,totalUsage:J},...L&&V?{error:V}:{}})}).catch(F=>{Be.delete(l),c.signal.aborted?w({success:!1,result:{content:M,toolsUsed:_,toolRounds:U,aborted:!0}}):w({success:!1,error:{name:"FetchError",message:F.message??String(F),stack:null}})})}).then(w=>(gt("ai_request_completed",{success:w.success,duration_ms:Date.now()-d,...w.success?{}:{failure_reason:w.result?.aborted?"aborted":w.error?.name==="FetchError"?"network":"unknown"}}),w));return{requestId:l,promise:x}},async abort(e){const s=Be.get(e);if(!s)return{success:!1,error:"Request not found"};if(s.abortController.abort(),s.serverId)try{const{post:d}=await Ft(async()=>{const{post:c}=await import("./index-sWxuTsa7.js").then(l=>l.cY);return{post:c}},__vite__mapDeps([0,1,2]));await d("/ai/agent/abort",{requestId:s.serverId})}catch{}return Be.delete(e),{success:!0}}}}function Xt(e){return e.desensitize&&!e.desensitizeRules.some(s=>s.builtin)}function Qt(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(d=>({...d,locales:[...d.locales]})),anonymizeNames:e.anonymizeNames}}function le(e){return e==="render_chart"}function Zt(e,s,d){if(!e||!le(e))return null;const c=e;return{type:"tool",tool:{name:c,displayName:c,status:"running",params:s,toolCallId:d,transient:!0}}}function Et(e,s,d){if(!Q(e))return!1;const c=e;return c.type!=="tool"||!c.tool||c.tool.transient!==!0||c.tool.name!==s||d&&c.tool.toolCallId!==d?!1:le(String(c.tool.name))}function Kt(e,s,d){let c=!1;const l=[...e];for(let y=l.length-1;y>=0;y--)if(Et(l[y],s,d)){l.splice(y,1),c=!0;break}return c?l:[...e]}function Q(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function ht(e){return Q(e)&&e.version===1&&Q(e.spec)&&Q(e.dataset)}function ot(e){if(!Q(e))return[];const s=Q(e.details)?e.details:e,d=[];if(ht(s.chart)&&d.push(s.chart),Array.isArray(s.charts))for(const c of s.charts)ht(c)&&d.push(c);return d}function xt(e){return{...e,dataset:{...e.dataset,rows:[]}}}function Ut(e){return e.map(s=>({type:"chart",chart:xt(s)}))}function at(e){return Array.isArray(e)?`[${e.map(at).join(",")}]`:Q(e)?`{${Object.keys(e).sort().map(s=>`${JSON.stringify(s)}:${at(e[s])}`).join(",")}}`:JSON.stringify(e)}function vt(e){const s=xt(e);return at({spec:s.spec,columns:s.dataset.columns,data:s.data,rowCount:s.rowCount,truncated:s.truncated})}function es(e,s){const d=vt(s);return e.some(c=>{if(!Q(c))return!1;const l=c;return l.type==="chart"&&l.chart?vt(l.chart)===d:!1})}function ts(e,s,d,c){const l=[...e];let y=-1;for(let _=l.length-1;_>=0;_--)if(Et(l[_],s,d)){y=_;break}const x=y>=0?l.filter((_,U)=>U!==y):l,w=c.filter(_=>!es(x,_)),M=Ut(w);return y>=0?(l.splice(y,1,...M),l):[...l,...M]}function ss(e,s,d,c,l){if(c.length>0)return ts(e,s,d,c);const y=Kt(e,s,d);return l?[...y,l]:y}function ms(e,s,d){const c=e[s];return!Q(c)||c.type!=="error"||!Q(c.error)||c.error.name!=="ChartRenderError"?!1:d?.isStreaming?!0:e.slice(s+1).some(l=>Q(l)&&l.type==="chart")}function ns(e){return Q(e)?typeof e.error=="string"?e.error:Q(e.error)&&typeof e.error.message=="string"?e.error.message:Array.isArray(e.content)?e.content.map(s=>Q(s)&&s.type==="text"&&typeof s.text=="string"?s.text:"").join(`
|
|
6
|
+
`).trim():null:null}function At(e,s){if(!le(e)||ot(s).length>0)return null;const d=ns(s);if(!d)return null;const l=/^Error:\s*(.+)$/is.exec(d)?.[1]?.trim();return!l||/^Call get_schema before render_chart\b/i.test(l)?null:{type:"error",error:{name:"ChartRenderError",message:l,stack:null}}}function je(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function st(e){return je(e)&&e.version===1&&typeof e.query=="string"&&Array.isArray(e.groups)}function Ct(e){if(!je(e))return null;const s=je(e.details)?e.details:null;if(s&&st(s.evidence))return s.evidence;const d=je(e.data)?e.data:null;return d&&st(d.evidence)?d.evidence:st(e.evidence)?e.evidence:null}function rs(e){return{type:"evidence",evidence:e}}function bt(e){return JSON.parse(JSON.stringify(e))}function ut(e){return JSON.parse(JSON.stringify(e))}function Lt(e){return e?.type==="plan_draft"&&typeof e.text=="string"}function os(e,s){const d=e.map(ut),c=d[d.length-1];return Lt(c)?c.text+=s:d.push({type:"plan_draft",version:1,status:"streaming",text:s}),d}function as(e,s){const d=e.map(ut);for(let c=d.length-1;c>=0;c--){const l=d[c];if(Lt(l)){const y=l.text.trim();return d[c]={...bt(s),...y?{displayText:y}:{}},d}}return d.push(bt(s)),d}function ls(e){return e.filter(s=>s.type!=="plan_draft").map(ut)}function wt(e){if(!e)return;const s=JSON.parse(JSON.stringify(e));for(const d of s)d.type==="tool"&&delete d.tool.displayResult;return s}function nt(e){return e.toolCallId?`id:${e.toolCallId}`:`name:${e.name}`}function Bt(){const e=new Map;let s=null;const d=()=>{if(s){const l=e.get(s);if(l)return l}const c=Array.from(e.entries()).at(-1);return s=c?.[0]??null,c?.[1]??null};return{start(c){const l=nt(c),y={name:c.name,displayName:c.name,status:"running",toolCallId:c.toolCallId};return e.set(l,y),s=l,y},update(c){const l=nt(c),y=e.get(l);if(!y)return d();const x={...y,progress:c.progress};return e.set(l,x),s=l,x},finish(c){const l=nt(c),y=e.get(l);e.delete(l),s===l&&(s=null);const x=d();return x||(y?{...y,status:c.status}:null)},current(){return d()},clear(){e.clear(),s=null}}}const ae="__draft__";function is(e){return e?`${e.startTs}_${e.endTs}`:"all"}function cs(e){return`${e.sessionId}:${e.chatType}:${is(e.timeFilter)}`}function lt(){return{promptTokens:0,completionTokens:0,totalTokens:0,cacheReadTokens:0,cacheWriteTokens:0}}function Rt(e){return{promptTokens:e.promptTokens??0,completionTokens:e.completionTokens??0,totalTokens:e.totalTokens??0,cacheReadTokens:e.cacheReadTokens??0,cacheWriteTokens:e.cacheWriteTokens??0}}function $e(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 ze(e){return{id:e.id,role:e.role,content:e.content,timestamp:e.timestamp*1e3,parentId:e.parentId,contentBlocks:e.contentBlocks}}function it(e=null){return{messages:[],sourceMessages:[],currentKeywords:[],assistantId:e,loaded:!1}}function us(e){const s=it(null);return{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:lt(),agentStatus:null,ownerInfo:void 0,ownerInfoInitialized:!1,isAborted:!1,currentRequestId:"",currentAgentRequestId:"",aiChatBuffers:{[ae]:s}}}function rt(e){return e.currentAIChatId??ae}const Is=ct("aiChatRuntime",()=>{const e=D({}),s=D(null),d=jt(),c=Ot(),l=$t(),y=Pt(),x=Yt(),w=zt(),{aiGlobalSettings:M}=Wt(d);let _=!1;function U(n){return`${n}_${Date.now()}_${Math.random().toString(36).slice(2,8)}`}function J(n){const t=cs(n),o=e.value[t];if(o)return o.sessionName=n.sessionName,o.chatType=n.chatType,o.locale=n.locale,o.timeFilter=n.timeFilter,{chatKey:t,state:o};const r=us(n);e.value[t]=r;const i=e.value[t];return K(t),{chatKey:t,state:i}}function L(n){return e.value[n]??null}function V(){return s.value?L(s.value.chatKey):null}function F(n,t,o=null){return n.aiChatBuffers[t]||(n.aiChatBuffers[t]=it(o)),n.aiChatBuffers[t]}function Y(n,t){const o=n.currentAIChatId??ae,r=n.aiChatBuffers[o];r&&(r.sessionTokenUsage={...n.sessionTokenUsage});const i=F(n,t);n.currentAIChatId=t===ae?null:t,n.messages=i.messages,n.sourceMessages=i.sourceMessages,n.currentKeywords=i.currentKeywords,n.selectedAssistantId=i.assistantId,n.sessionTokenUsage=i.sessionTokenUsage?{...i.sessionTokenUsage}:lt(),n.agentStatus=null}function de(n,t,o){const r=F(n,t);return n.aiChatBuffers[o]=r,t!==o&&delete n.aiChatBuffers[t],n.currentAIChatId===null&&t===ae&&(n.currentAIChatId=o),r}function E(n){const t=L(n);t&&(t.selectedAssistantId?y.selectAssistant(t.selectedAssistantId):y.clearSelection())}async function K(n){const t=L(n);if(!t)return;const r=c.sessions.find(i=>i.id===t.sessionId)?.ownerId;if(!r){t.ownerInfo=void 0,t.ownerInfoInitialized=!0;return}if(!(t.ownerInfoInitialized&&t.ownerInfo?.platformId===r))try{const B=(await mt().getMembers(t.sessionId)).find(b=>b.platformId===r);t.ownerInfo=B?{platformId:r,displayName:B.groupNickname||B.accountName||r}:{platformId:r,displayName:r},t.ownerInfoInitialized=!0}catch(i){console.error("[AI] 获取 Owner 信息失败:",i),t.ownerInfo=void 0,t.ownerInfoInitialized=!0}}function fe(n,t,o,r=null){const i=L(n);i&&(s.value={requestId:o,chatKey:n,sessionId:i.sessionId,sessionName:i.sessionName,chatType:i.chatType,aiChatId:r,questionPreview:t.trim().slice(0,80),startedAt:Date.now()})}function N(n,t){s.value&&s.value.chatKey===n&&(t&&s.value.requestId!==t||(s.value=null))}function ye(n,t){s.value&&s.value.chatKey===n&&(s.value.aiChatId=t)}function Re(n){return{phase:"preparing",round:0,toolsUsed:n.toolsUsedInCurrentRound.length,contextTokens:0,totalUsage:{...n.sessionTokenUsage},updatedAt:Date.now()}}function ie(n,t,o){const r=n.agentStatus?{...n.agentStatus}:Re(n);n.agentStatus={...r,...o,phase:t,updatedAt:Date.now()}}function he(n,t){const o=L(n);if(!o||o.isAIThinking)return!1;const r=F(o,rt(o),t);return r.assistantId=t,o.selectedAssistantId=t,y.selectAssistant(t),!0}async function Me(n,t){const o=L(n);if(!o)return!1;try{const r=await oe().getAIChat(t),i=F(o,t,r?.assistantId??null);if(!i.loaded){const[B,b]=await Promise.all([oe().getMessages(t),oe().getAIChatTokenUsage(t)]);i.messages.splice(0,i.messages.length,...B.map(S=>ze(S))),i.sourceMessages.splice(0,i.sourceMessages.length),i.currentKeywords.splice(0,i.currentKeywords.length),i.sessionTokenUsage=Rt(b),i.loaded=!0}return i.assistantId=r?.assistantId??i.assistantId??null,Y(o,t),E(n),!0}catch(r){return console.error("[AI] 加载对话历史失败:",r),!1}}function ve(n,t){const o=L(n);if(!o)return!1;const r=t??ae;return o.aiChatBuffers[r]?(Y(o,r),E(n),!0):!1}function Ne(){return s.value?(_=!0,ve(s.value.chatKey,s.value.aiChatId)):!1}async function Pe(n){if(_){_=!1;return}const t=L(n);if(!(!t||t.isAIThinking)){if(y.isLoaded||await y.loadAssistants(),!t.selectedAssistantId){const o=We(t.locale);he(n,o)}I(n)}}function I(n,t){const o=L(n);if(!o||o.isAIThinking)return!1;const r=it(o.selectedAssistantId);return o.aiChatBuffers[ae]=r,Y(o,ae),o.currentToolStatus=null,o.toolsUsedInCurrentRound=[],o.isLoadingSource=!1,o.sessionTokenUsage=lt(),o.agentStatus=null,o.isAborted=!1,o.currentRequestId="",o.currentAgentRequestId="",t&&r.messages.push({id:U("welcome"),role:"assistant",content:t,timestamp:Date.now()}),!0}async function k(){}async function R(){}function ee(n,t){const o=g=>{const v=t();n.messages[v]={...n.messages[v],...g}};return{updateAIMessage:o,appendTextToBlocks:g=>{if(!g)return;const v=t(),u=n.messages[v].contentBlocks||[],A=u[u.length-1];g.trim().length===0&&(!A||A.type!=="text")||(A&&A.type==="text"?A.text+=g:u.push({type:"text",text:g}),o({contentBlocks:[...u],content:n.messages[v].content+g}))},appendThinkToBlocks:(g,v,u)=>{if(!g&&u===void 0)return;const A=t(),C=n.messages[A].contentBlocks||[],H=v||"think",z=C[C.length-1];let q=z;if(z&&z.type==="think"&&z.tag===H)z.text+=g;else if(g.trim().length>0)q={type:"think",tag:H,text:g},C.push(q);else if(u!==void 0)for(let G=C.length-1;G>=0;G--){const Se=C[G];if(Se.type==="think"&&Se.tag===H){q=Se;break}}u!==void 0&&q&&q.type==="think"&&(q.durationMs=u),o({contentBlocks:[...C]})},appendChartsToBlocks:g=>{if(g.length===0)return;const v=t(),u=n.messages[v].contentBlocks||[];u.push(...Ut(g)),o({contentBlocks:[...u]})},appendEvidenceToBlocks:g=>{const v=t(),u=n.messages[v].contentBlocks||[];u.push(rs(g)),o({contentBlocks:[...u]})},appendPlanDraftToBlocks:g=>{if(!g)return;const v=t(),u=n.messages[v].contentBlocks||[];o({contentBlocks:[...os(u,g)]})},appendPlanToBlocks:g=>{const v=t(),u=n.messages[v].contentBlocks||[];o({contentBlocks:[...as(u,g)]})},removePlanDraftsFromBlocks:()=>{const g=t(),v=n.messages[g].contentBlocks||[];o({contentBlocks:[...ls(v)]})},updatePlanBlockStatus:g=>{const v=t(),u=n.messages[v].contentBlocks||[];for(let A=u.length-1;A>=0;A--){const C=u[A];if(C.type==="plan"){C.status=g;break}}o({contentBlocks:[...u]})},appendErrorToBlocks:g=>{const v=t(),u=n.messages[v].contentBlocks||[];u.push({type:"error",error:g}),o({contentBlocks:[...u]})},addToolBlock:(g,v,u)=>{const A=t(),C=n.messages[A].contentBlocks||[];C.push({type:"tool",tool:{name:g,displayName:g,status:"running",params:v,toolCallId:u}}),o({contentBlocks:[...C]})},addRenderOnlyToolPendingBlock:(g,v,u)=>{const A=Zt(g,v,u);if(!A)return;const C=t(),H=n.messages[C].contentBlocks||[];H.push(A),o({contentBlocks:[...H]})},updateRenderOnlyToolResult:(g,v,u,A)=>{const C=t(),H=n.messages[C].contentBlocks||[];o({contentBlocks:ss(H,g,v,u,A)})},updateToolBlockStatus:(g,v,u)=>{const A=t(),C=n.messages[A].contentBlocks||[],H=q=>q.type==="tool"&&q.tool.status==="running";let z;if(u?.toolCallId)for(let q=C.length-1;q>=0;q--){const G=C[q];if(H(G)&&G.tool.toolCallId===u.toolCallId){z=G;break}}if(!z)for(let q=C.length-1;q>=0;q--){const G=C[q];if(H(G)&&G.tool.name===g){z=G;break}}z&&(z.tool.status=v,u?.result!==void 0&&(z.tool.result=u.result),u?.displayResult!==void 0&&(z.tool.displayResult=u.displayResult),u?.isError!==void 0&&(z.tool.isError=u.isError)),o({contentBlocks:[...C]})}}}async function pe(n,t,o){const r=L(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 i=U("req"),B=rt(r);let b=B===ae?null:B;const S=F(r,B,r.selectedAssistantId);let P,h;S.assistantId=r.selectedAssistantId,S.loaded=!0,fe(n,t,i,b),E(n),K(n);const j=x.activeSkillId,ne=x.activeSkill?.name,ke=M.value.enableAutoSkill??!0,_e=ke?M.value.chartAutoMode??"suggest":"explicit",ce=(o?.mentionedMembers??[]).map(O=>({memberId:O.memberId,platformId:O.platformId,displayName:O.displayName,aliases:[...O.aliases],mentionText:O.mentionText}));r.isAIThinking=!0,r.isLoadingSource=!0,r.currentToolStatus=null,r.toolsUsedInCurrentRound=[],r.agentStatus=null,r.isAborted=!1,r.currentRequestId=i,r.currentAgentRequestId="";try{const O=await et().hasConfig();if(r.isAborted)return N(n,i),{success:!1,reason:"aborted"};if(r.currentRequestId!==i)return N(n,i),{success:!1,reason:"busy",activeTask:s.value};if(!O)return S.messages.push({id:U("error"),role:"assistant",content:"⚠️ 请先配置 AI 服务。点击左下角「设置」按钮前往「模型配置Tab」进行配置。",timestamp:Date.now()}),N(n,i),{success:!1,reason:"no_config"};const g={id:U("user"),role:"user",content:t,timestamp:Date.now(),toolCalls:[]};P=g,S.messages.push(g);const v={id:U("ai"),role:"assistant",content:"",timestamp:Date.now(),isStreaming:!0,contentBlocks:[]};j&&ne&&v.contentBlocks.push({type:"skill",skillId:j,skillName:ne}),S.messages.push(v);let u=S.messages.length-1,A=!1;const C=Bt(),{updateAIMessage:H,appendTextToBlocks:z,appendThinkToBlocks:q,appendChartsToBlocks:G,appendEvidenceToBlocks:Se,appendPlanDraftToBlocks:Ge,appendPlanToBlocks:qe,removePlanDraftsFromBlocks:Ce,updatePlanBlockStatus:Ee,appendErrorToBlocks:Ye,addToolBlock:Xe,addRenderOnlyToolPendingBlock:Qe,updateRenderOnlyToolResult:De,updateToolBlockStatus:te}=ee(S,()=>u),ge=S.assistantId??We(r.locale);if(!b){const a=t.slice(0,50)+(t.length>50?"...":""),$=await oe().createAIChat(r.sessionId,a,ge);if(r.isAborted)return H({isStreaming:!1}),N(n,i),{success:!1,reason:"aborted"};if(r.currentRequestId!==i)return H({isStreaming:!1}),N(n,i),{success:!1,reason:"busy",activeTask:s.value};b=$.id,de(r,ae,$.id),S.assistantId=ge,ye(n,$.id)}const me={sessionId:r.sessionId,aiChatId:b,timeFilter:r.timeFilter?{startTs:r.timeFilter.startTs,endTs:r.timeFilter.endTs}:void 0,maxMessagesLimit:M.value.maxMessagesPerRequest,ownerInfo:r.ownerInfo?{platformId:r.ownerInfo.platformId,displayName:r.ownerInfo.displayName}:void 0,mentionedMembers:ce.length>0?ce:void 0,preprocessConfig:await Ue(),searchContextBefore:M.value.searchContextBefore,searchContextAfter:M.value.searchContextAfter},{requestId:Te,promise:Ze}=tt().runStream({userMessage:t,sessionId:r.sessionId,aiChatId:b,timeFilter:me.timeFilter,maxMessagesLimit:me.maxMessagesLimit,ownerInfo:me.ownerInfo,mentionedMembers:me.mentionedMembers,preprocessConfig:me.preprocessConfig,chatType:r.chatType,locale:r.locale,assistantId:ge,skillId:j,enableAutoSkill:j?void 0:ke,chartAutoMode:j?void 0:_e,thinkingLevel:(()=>{const a=w.defaultAssistant;if(!(!a?.configId||!a?.modelId))return d.getThinkingLevel(a.configId,a.modelId)})()},a=>{if(!(r.isAborted||i!==r.currentRequestId))switch(a.type){case"content":a.content&&(r.currentToolStatus=C.current(),z(a.content));break;case"think":a.content?q(a.content,a.thinkTag):a.thinkDurationMs!==void 0&&q("",a.thinkTag,a.thinkDurationMs);break;case"tool_start":if(a.toolName){const $=a.toolParams;r.currentToolStatus=C.start({name:a.toolName,toolCallId:a.toolCallId}),r.toolsUsedInCurrentRound.push(a.toolName),le(a.toolName)?Qe(a.toolName,$,a.toolCallId):Xe(a.toolName,$,a.toolCallId)}break;case"tool_update":a.toolName&&a.toolProgress&&(r.currentToolStatus=C.update({name:a.toolName,toolCallId:a.toolCallId,progress:a.toolProgress}));break;case"tool_result":if(a.toolName){const $=ot(a.toolResult),Z=At(a.toolName,a.toolResult);le(a.toolName)?De(a.toolName,a.toolCallId,$,Z):G($);const Fe=Ct(a.toolResult);Fe&&Se(Fe),Z&&(le(a.toolName)||Ye(Z.error));const be=Z!==null||a.toolIsError===!0;if(r.currentToolStatus?.name===a.toolName&&(r.currentToolStatus={...r.currentToolStatus,status:be?"error":"done"}),!le(a.toolName)){const we=yt(a.toolResult);te(a.toolName,be?"error":"done",{toolCallId:a.toolCallId,result:kt(we),displayResult:we,isError:a.toolIsError})}r.currentToolStatus=C.finish({name:a.toolName,toolCallId:a.toolCallId,status:be?"error":"done"})}r.isLoadingSource=!1;break;case"plan_delta":a.planDelta&&Ge(a.planDelta);break;case"plan":a.plan&&(qe(a.plan),Ee("executing"));break;case"plan_skipped":Ce();break;case"status":a.status&&(!r.agentStatus||a.status.updatedAt>=r.agentStatus.updatedAt)&&(r.agentStatus=a.status);break;case"compression_done":if(a.compressionResult){const $={id:`summary-${Date.now()}`,role:"summary",content:a.compressionResult.summaryContent,timestamp:a.compressionResult.timestamp},Z=Math.max(0,S.messages.length-1);S.messages.splice(Z,0,$),u++}break;case"done":C.clear(),r.currentToolStatus=null,A||Ee("done"),a.usage&&(h={...a.usage},r.sessionTokenUsage={promptTokens:r.sessionTokenUsage.promptTokens+a.usage.promptTokens,completionTokens:r.sessionTokenUsage.completionTokens+a.usage.completionTokens,totalTokens:r.sessionTokenUsage.totalTokens+a.usage.totalTokens,cacheReadTokens:r.sessionTokenUsage.cacheReadTokens+a.usage.cacheReadTokens,cacheWriteTokens:r.sessionTokenUsage.cacheWriteTokens+a.usage.cacheWriteTokens}),ie(r,"completed",a.usage?{totalUsage:a.usage}:void 0);break;case"error":if(Ce(),Ee("skipped"),r.currentToolStatus&&(r.currentToolStatus={...r.currentToolStatus,status:"error"},te(r.currentToolStatus.name,"error",{toolCallId:r.currentToolStatus.toolCallId})),C.clear(),!A){A=!0;const $=S.messages[u].contentBlocks||[];$.push({type:"error",error:$e(a.error)}),H({contentBlocks:[...$],isStreaming:!1})}ie(r,"error");break}});r.currentAgentRequestId=Te,fe(n,t,Te,b);const re=await Ze;if(r.isAborted)return N(n,Te),{success:!1,reason:"aborted"};if(i!==r.currentRequestId)return N(n,Te),{success:!1,reason:"busy",activeTask:s.value};if(re.success&&re.result){S.messages[u]={...S.messages[u],dataSource:{toolsUsed:re.result.toolsUsed,toolRounds:re.result.toolRounds},isStreaming:!1};const a=await Ae(b,g,S.messages[u],h);a&&(Object.assign(g,a.userMessage),S.messages[u]={...S.messages[u],...a.assistantMessage,isStreaming:!1})}else if(A){const a=await Ae(b,g,S.messages[u],h);a&&(Object.assign(g,a.userMessage),S.messages[u]={...S.messages[u],...a.assistantMessage,isStreaming:!1})}else{const a=S.messages[u].contentBlocks||[];a.push({type:"error",error:$e(re.error)}),S.messages[u]={...S.messages[u],contentBlocks:[...a],isStreaming:!1};const $=await Ae(b,g,S.messages[u],h);$&&(Object.assign(g,$.userMessage),S.messages[u]={...S.messages[u],...$.assistantMessage,isStreaming:!1})}return{success:!0}}catch(O){console.error("[AI] 处理失败:",O),r.agentStatus=null;const g=S.messages[S.messages.length-1];if(g&&g.role==="assistant"){const v={name:O instanceof Error?O.name:null,message:O instanceof Error?O.message:String(O),stack:O instanceof Error?O.stack??null:null},u=g.contentBlocks||[];u.push({type:"error",error:v}),g.contentBlocks=[...u],g.isStreaming=!1;const A=P||S.messages.findLast(C=>C.role==="user");A&&await Ae(b,A,g,h)}return{success:!1,reason:"error"}}finally{r.isAIThinking=!1,r.isLoadingSource=!1,r.currentToolStatus=null,r.isAborted=!1,r.currentRequestId="",r.currentAgentRequestId="",N(n)}}async function Ae(n,t,o,r){try{if(!n)return null;const i=await oe().addMessage(n,"user",t.content),B=wt(o.contentBlocks),b=await oe().addMessage(n,"assistant",o.content,void 0,void 0,B,r);return{userMessage:ze(i),assistantMessage:ze(b)}}catch(i){return console.error("[AI] 保存对话失败:",i),null}}async function Ue(){const n=l.aiPreprocessConfig;return Xt(n)&&await l.ensureDesensitizeRules(),Qt(l.aiPreprocessConfig)}function Le(n){return n.trim().replace(/^[\s"'“”‘’([{<]+|[\s"'“”‘’)\]}>.,!?;:,。!?;:、]+$/g,"").toLocaleLowerCase()}async function Je(n,t){const o=new Set;for(const r of t.matchAll(/@([^\s@]+)/g)){const i=Le(r[1]??"");i&&o.add(i)}if(o.size===0)return[];try{const r=await mt().getMembers(n.sessionId),i=new Map;r.forEach(P=>{const h=P.groupNickname||P.accountName||P.platformId;i.set(h,(i.get(h)??0)+1)});const B=r.map(P=>{const h=P.groupNickname||P.accountName||P.platformId,j=(i.get(h)??0)>1?`${h}·${P.platformId}`:h,ne=[...P.aliases],ke=[h,P.groupNickname||"",P.accountName||"",P.platformId,j,...ne].map(Le).filter(Boolean);return{memberId:P.id,platformId:P.platformId,displayName:h,aliases:ne,mentionText:`@${j}`,lookupValues:ke}}),b=[],S=new Set;for(const P of o){const h=B.find(j=>!S.has(j.memberId)&&j.lookupValues.includes(P));h&&(S.add(h.memberId),b.push({memberId:h.memberId,platformId:h.platformId,displayName:h.displayName,aliases:h.aliases,mentionText:h.mentionText}))}return b}catch(r){return console.error("[AI] Failed to resolve mentioned members for edited message:",r),[]}}async function Ve(n,t,o,r){const i=L(n),B=o.trim();if(!i||!i.currentAIChatId)return{success:!1,reason:"error"};if(!B)return{success:!1,reason:"empty"};if(i.isAIThinking||s.value)return{success:!1,reason:"busy",activeTask:s.value};const b=r?.overwriteSubsequent??!1,S=F(i,i.currentAIChatId,i.selectedAssistantId),P=S.messages.findIndex(j=>j.id===t),h=S.messages[P];return!h||h.role!=="user"||h.isStreaming?{success:!1,reason:"error"}:h.content.trim()===B?{success:!1,reason:"empty"}:b?m(n,i,S,P,h,B):f(n,i,S,P,h,B)}async function m(n,t,o,r,i,B){try{return await et().hasConfig()?t.isAborted?{success:!1,reason:"aborted"}:t.isAIThinking||s.value?{success:!1,reason:"busy",activeTask:s.value}:(await oe().deleteMessagesFrom(t.currentAIChatId,i.id),o.messages.splice(r,o.messages.length-r),pe(n,B)):{success:!1,reason:"no_config"}}catch(b){return console.error("[AI] edit and overwrite failed:",b),{success:!1,reason:"error"}}}async function f(n,t,o,r,i,B){const b=U("req");let S,P=!1;const h=Bt();fe(n,B,b,t.currentAIChatId),E(n),K(n),t.isAIThinking=!0,t.isLoadingSource=!0,t.currentToolStatus=null,t.toolsUsedInCurrentRound=[],t.agentStatus=null,t.isAborted=!1,t.currentRequestId=b,t.currentAgentRequestId="";const j=o.messages[r+1],ne=j?.role==="assistant",ke=ne?o.messages.slice(r+2):o.messages.slice(r+1),_e={id:U("ai"),role:"assistant",content:"",timestamp:Date.now(),isStreaming:!0,contentBlocks:[]},ce=x.activeSkillId,O=x.activeSkill?.name;ce&&O&&_e.contentBlocks.push({type:"skill",skillId:ce,skillName:O});const g={...i,content:B},v=ne?2:1;o.messages.splice(r,v,g,_e);const u=r+1,A=()=>{o.messages.splice(r,o.messages.length-r,i),ne&&o.messages.splice(r+1,0,j),o.messages.push(...ke)},{updateAIMessage:C,appendTextToBlocks:H,appendThinkToBlocks:z,appendChartsToBlocks:q,appendEvidenceToBlocks:G,appendPlanDraftToBlocks:Se,appendPlanToBlocks:Ge,removePlanDraftsFromBlocks:qe,updatePlanBlockStatus:Ce,appendErrorToBlocks:Ee,addToolBlock:Ye,addRenderOnlyToolPendingBlock:Xe,updateRenderOnlyToolResult:Qe,updateToolBlockStatus:De}=ee(o,()=>u);try{if(!await et().hasConfig())return A(),N(n,b),{success:!1,reason:"no_config"};const ge=o.assistantId??We(t.locale),me=await Je(t,B);if(t.isAborted)return A(),N(n,b),{success:!1,reason:"aborted"};if(b!==t.currentRequestId)return A(),N(n,b),{success:!1,reason:"busy",activeTask:s.value};const Te=M.value.enableAutoSkill??!0,Ze=Te?M.value.chartAutoMode??"suggest":"explicit",re={sessionId:t.sessionId,aiChatId:t.currentAIChatId,historyLeafMessageId:i.parentId??null,timeFilter:t.timeFilter?{startTs:t.timeFilter.startTs,endTs:t.timeFilter.endTs}:void 0,maxMessagesLimit:M.value.maxMessagesPerRequest,ownerInfo:t.ownerInfo?{platformId:t.ownerInfo.platformId,displayName:t.ownerInfo.displayName}:void 0,mentionedMembers:me.length>0?me:void 0,preprocessConfig:await Ue(),searchContextBefore:M.value.searchContextBefore,searchContextAfter:M.value.searchContextAfter},{requestId:a,promise:$}=tt().runStream({userMessage:B,sessionId:t.sessionId,aiChatId:t.currentAIChatId,historyLeafMessageId:i.parentId??null,timeFilter:re.timeFilter,maxMessagesLimit:re.maxMessagesLimit,ownerInfo:re.ownerInfo,mentionedMembers:re.mentionedMembers,preprocessConfig:re.preprocessConfig,chatType:t.chatType,locale:t.locale,assistantId:ge,skillId:ce,enableAutoSkill:ce?void 0:Te,chartAutoMode:ce?void 0:Ze,thinkingLevel:(()=>{const p=w.defaultAssistant;if(!(!p?.configId||!p?.modelId))return d.getThinkingLevel(p.configId,p.modelId)})()},p=>{if(!(t.isAborted||b!==t.currentRequestId))switch(p.type){case"content":t.currentToolStatus=h.current(),H(p.content||"");break;case"think":p.content?z(p.content,p.thinkTag):p.thinkDurationMs!==void 0&&z("",p.thinkTag,p.thinkDurationMs);break;case"tool_start":if(p.toolName){const Ie=p.toolParams;t.currentToolStatus=h.start({name:p.toolName,toolCallId:p.toolCallId}),t.toolsUsedInCurrentRound.push(p.toolName),le(p.toolName)?Xe(p.toolName,Ie,p.toolCallId):Ye(p.toolName,Ie,p.toolCallId)}break;case"tool_update":p.toolName&&p.toolProgress&&(t.currentToolStatus=h.update({name:p.toolName,toolCallId:p.toolCallId,progress:p.toolProgress}));break;case"tool_result":if(p.toolName){const Ie=ot(p.toolResult),Oe=At(p.toolName,p.toolResult),dt=Oe!==null||p.toolIsError===!0;le(p.toolName)?Qe(p.toolName,p.toolCallId,Ie,Oe):q(Ie);const ft=Ct(p.toolResult);if(ft&&G(ft),Oe&&(le(p.toolName)||Ee(Oe.error)),!le(p.toolName)){const pt=yt(p.toolResult);De(p.toolName,dt?"error":"done",{toolCallId:p.toolCallId,result:kt(pt),displayResult:pt,isError:p.toolIsError})}t.currentToolStatus=h.finish({name:p.toolName,toolCallId:p.toolCallId,status:dt?"error":"done"})}t.isLoadingSource=!1;break;case"plan_delta":p.planDelta&&Se(p.planDelta);break;case"plan":p.plan&&(Ge(p.plan),Ce("executing"));break;case"plan_skipped":qe();break;case"status":p.status&&(!t.agentStatus||p.status.updatedAt>=t.agentStatus.updatedAt)&&(t.agentStatus=p.status);break;case"done":h.clear(),t.currentToolStatus=null,P||Ce("done"),p.usage&&(S={...p.usage}),ie(t,"completed",p.usage?{totalUsage:p.usage}:void 0);break;case"error":{qe(),Ce("skipped"),P=!0,t.currentToolStatus&&De(t.currentToolStatus.name,"error",{toolCallId:t.currentToolStatus.toolCallId}),h.clear();const Ie=o.messages[u].contentBlocks||[];Ie.push({type:"error",error:$e(p.error)}),C({contentBlocks:[...Ie],isStreaming:!1}),ie(t,"error");break}}});t.currentAgentRequestId=a,fe(n,B,a,t.currentAIChatId);const Z=await $;if(t.isAborted)return A(),N(n,a),{success:!1,reason:"aborted"};if(b!==t.currentRequestId)return A(),N(n,a),{success:!1,reason:"busy",activeTask:s.value};if(Z.success&&Z.result)C({dataSource:{toolsUsed:Z.result.toolsUsed,toolRounds:Z.result.toolRounds},isStreaming:!1});else if(!P){const p=o.messages[u].contentBlocks||[];p.push({type:"error",error:$e(Z.error)}),C({contentBlocks:[...p],isStreaming:!1})}if(!Z.success)return A(),{success:!1,reason:"error"};await oe().updateMessageContent(i.id,B),ne&&await oe().deleteAndRelinkMessage(t.currentAIChatId,j.id);const Fe=wt(o.messages[u].contentBlocks),be=await oe().insertMessageAfter(t.currentAIChatId,i.id,"assistant",o.messages[u].content,Fe,S);o.messages[u]={...ze(be),dataSource:o.messages[u].dataSource,isStreaming:!1},o.messages[r]={...o.messages[r],content:B};const we=u+1;return we<o.messages.length&&(o.messages[we]={...o.messages[we],parentId:be.id}),o.sessionTokenUsage=Rt(await oe().getAIChatTokenUsage(t.currentAIChatId)),t.sessionTokenUsage={...o.sessionTokenUsage},{success:!0}}catch(te){if(t.isAborted)return A(),{success:!1,reason:"aborted"};console.error("[AI] edit and regenerate failed:",te);const ge=o.messages[u]?.contentBlocks||[];return ge.push({type:"error",error:{name:te instanceof Error?te.name:null,message:te instanceof Error?te.message:String(te),stack:te instanceof Error?te.stack??null:null}}),o.messages[u]&&C({contentBlocks:[...ge],isStreaming:!1}),{success:!1,reason:"error"}}finally{t.isAIThinking=!1,t.isLoadingSource=!1,t.currentToolStatus=null,t.isAborted=!1,t.currentRequestId="",t.currentAgentRequestId="",N(n)}}async function T(n){const t=L(n);if(!t||!t.isAIThinking)return!1;t.isAborted=!0,t.isAIThinking=!1,t.isLoadingSource=!1,t.currentToolStatus=null,ie(t,"aborted");const o=s.value?.chatKey===n?s.value.aiChatId??ae:rt(t),r=t.aiChatBuffers[o],i=r?r.messages[r.messages.length-1]:void 0;if(i&&i.role==="assistant"&&i.isStreaming&&(i.isStreaming=!1,i.content+=`
|
|
7
|
+
|
|
8
|
+
_(已停止生成)_`),t.currentAgentRequestId)try{await tt().abort(t.currentAgentRequestId)}catch(B){console.error("[AI] 中止 Agent 请求失败:",B)}return t.currentRequestId="",t.currentAgentRequestId="",N(n),!0}async function W(){return s.value?T(s.value.chatKey):!1}return{sessionStates:e,activeTask:s,ensureSessionState:J,getSessionState:L,getActiveTaskState:V,applySessionAssistantSelection:E,selectAssistantForSession:he,loadAIChat:Me,focusAIChat:ve,focusActiveTaskAIChat:Ne,resetToSelectorOnEnter:Pe,startNewAIChat:I,loadMoreSourceMessages:k,updateMaxMessages:R,sendMessage:pe,editMessageAndRegenerate:Ve,stopGeneration:T,stopActiveTask:W}});export{gs as a,Yt as b,Pt as c,ms as s,Is as u};
|
|
@@ -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-6EamagxG.js";import"./webworkerAll-Dwqmy_YO.js";import"./index-D5m0P4ss.js";import"./vendor-snapdom--nZvo8Sg.js";import"./index-IA7YUjQX.js";import"./Tabs-OrJkANIA.js";import"./RovingFocusItem-B2y6BG1a.js";import"./useToast-B36MzFFy.js";import"./LoadingState.vue_vue_type_script_setup_true_lang-Cnshyn0f.js";import"./people-page-header-Bh3KXD4g.js";import"./relationship-galaxy-connections-Cg4G5yYE.js";import"./relationship-galaxy-viewport-Cwfa51ER.js";import"./Filter-DVaqcFmI.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-BODk18aA.js";import"./webworkerAll-ZPE_yGnC.js";import"./index-sWxuTsa7.js";import"./vendor-snapdom--nZvo8Sg.js";import"./index-C7omDgiJ.js";import"./Tabs-D1UiZNaZ.js";import"./RovingFocusItem-DC_06OmN.js";import"./useToast-BA0EwImD.js";import"./LoadingState.vue_vue_type_script_setup_true_lang-CwgpqtMZ.js";import"./people-page-header-0jvXFFnh.js";import"./relationship-galaxy-connections-Cg4G5yYE.js";import"./relationship-galaxy-viewport-Cwfa51ER.js";import"./Filter-yxkeHO78.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;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{W as a,Y as n}from"./index-sWxuTsa7.js";import"./vendor-snapdom--nZvo8Sg.js";class p{async getVersion(){return"0.36.1"}async fetchRemoteConfig(e){try{const t=await fetch(e);return t.ok?{success:!0,data:(t.headers.get("content-type")||"").includes("application/json")||e.split("?")[0].endsWith(".json")?await t.json():await t.text()}:{success:!1,error:`HTTP ${t.status}`}}catch(t){return{success:!1,error:String(t)}}}setThemeSource(e){}async getOpenAtLogin(){return!1}async setOpenAtLogin(e){return{success:!1,error:"Not available in CLI Web"}}async getDesktopCloseBehavior(){return"background"}async setDesktopCloseBehavior(e){return{success:!1,error:"Not available in CLI Web"}}async getAnalyticsEnabled(){try{return(await(await a("/_web/telemetry/enabled")).json()).enabled===!0}catch{return!1}}async setAnalyticsEnabled(e){try{return await(await a("/_web/telemetry/enabled",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:e})})).json()}catch{return{success:!1}}}async trackDailyActive(e){await a("/_web/telemetry/track",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({eventName:"app_active",properties:{app_locale:e}})}).catch(()=>{})}async trackAnalyticsEvent(e,t){await a("/_web/telemetry/track",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({eventName:e,properties:t})}).catch(()=>{})}async showOpenDialog(e){return{canceled:!0,filePaths:[]}}async copyImageToClipboard(e){if(globalThis.isSecureContext===!1)return{success:!1,error:"Image clipboard requires HTTPS or localhost"};if(typeof navigator>"u"||typeof navigator.clipboard?.write!="function"||typeof ClipboardItem>"u")return{success:!1,error:"Image clipboard is not supported by this browser"};try{const t=fetch(e).then(async r=>{if(!r.ok)throw new Error(`Failed to read screenshot data: HTTP ${r.status}`);const s=await r.blob();if(s.type!=="image/png")throw new Error(`Unsupported screenshot MIME type: ${s.type||"unknown"}`);return s});return await navigator.clipboard.write([new ClipboardItem({"image/png":t})]),{success:!0}}catch(t){const r=t instanceof Error?`${t.name}: ${t.message}`:String(t);return n(`Image clipboard write failed: ${r}`,t instanceof Error?t.stack:void 0),{success:!1,error:r}}}async checkUpdate(){try{return await(await a("/_web/system/check-update")).json()}catch(e){return{hasUpdate:!1,currentVersion:"unknown",error:e instanceof Error?e.message:String(e)}}}async performUpdate(){return{success:!1,error:"Web update is unavailable. Run clb update in your terminal."}}async relaunch(){window.location.reload()}}export{p as CliWebPlatformAdapter};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{N as s,T as l,S as o,O as i}from"./index-sWxuTsa7.js";import"./vendor-snapdom--nZvo8Sg.js";class g{async hasConfig(){return s("/ai/llm/has-config")}async getConfigStore(){return s("/ai/llm/configs")}async getAllConfigs(){return(await this.getConfigStore()).configs}async getDefaultAssistantSlot(){return s("/ai/llm/default-assistant-slot")}async getFastModelSlot(){return s("/ai/llm/fast-model-slot")}async setDefaultAssistantModel(e,t){return l("/ai/llm/default-assistant-slot",{configId:e,modelId:t})}async setFastModel(e){return l("/ai/llm/fast-model-slot",e)}async getProviders(){return s("/ai/llm/providers")}async getProviderRegistry(){return s("/ai/llm/provider-registry")}async getModelCatalog(){return s("/ai/llm/model-catalog")}async addConfig(e){return o("/ai/llm/configs",e)}async updateConfig(e,t){return l(`/ai/llm/configs/${e}`,t)}async deleteConfig(e){return i(`/ai/llm/configs/${e}`)}async validateApiKey(e,t,a,r,n,m){return o("/ai/llm/validate-key",{provider:e,apiKey:t,baseUrl:a,model:r,apiFormat:n,configId:m})}async fetchRemoteModels(e,t,a,r,n){return o("/ai/llm/remote-models",{provider:e,apiKey:t,baseUrl:a,apiFormat:r,configId:n})}async addCustomProvider(e){return o("/ai/llm/custom-providers",e)}async updateCustomProvider(e,t){return l(`/ai/llm/custom-providers/${e}`,t)}async deleteCustomProvider(e){return i(`/ai/llm/custom-providers/${e}`)}async addCustomModel(e){return o("/ai/llm/custom-models",e)}async updateCustomModel(e,t,a){return l(`/ai/llm/custom-models/${e}/${encodeURIComponent(t)}`,a)}async deleteCustomModel(e,t){return i(`/ai/llm/custom-models/${e}/${encodeURIComponent(t)}`)}}export{g as FetchLLMAdapter};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{N as i,S as r,T as s,O as l}from"./index-sWxuTsa7.js";import"./vendor-snapdom--nZvo8Sg.js";class c{async getAll(){return i("/ai/skills")}async getConfig(t){try{return await i(`/ai/skills/${t}`)}catch{return null}}async create(t){return r("/ai/skills",{rawMd:t})}async update(t,a){return s(`/ai/skills/${t}`,{rawMd:a})}async delete(t){return l(`/ai/skills/${t}`)}async importFromMd(t){return r("/ai/skills/import",{rawMd:t})}async importBuiltin(t){return r("/ai/skills/import-builtin",{builtinId:t})}async reimport(t){return r(`/ai/skills/${t}/reimport`,{})}async getBuiltinCatalog(){try{return await i("/ai/skills/builtin-catalog")}catch{return[]}}}export{c as FetchSkillAdapter};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{X as O}from"./index-sWxuTsa7.js";import"./vendor-snapdom--nZvo8Sg.js";const N=`
|
|
2
2
|
msg.id,
|
|
3
3
|
m.id as senderId,
|
|
4
4
|
COALESCE(m.group_nickname, m.account_name, m.platform_id) as senderName,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{W as d,aw as l,N as I}from"./index-sWxuTsa7.js";import"./vendor-snapdom--nZvo8Sg.js";function g(i){return{success:i.success,sessionId:i.sessionId,platform:i.platform,error:i.error,importMode:i.importMode,matchedBy:i.matchedBy,createReason:i.createReason,newMessageCount:i.newMessageCount,duplicateCount:i.duplicateCount,messageCount:i.messageCount,memberCount:i.memberCount,diagnostics:i.diagnostics}}async function S(i,e,t){const o=i.body?.getReader();if(!o)return e;const s=new TextDecoder;let r="",a=e;for(;;){const{done:n,value:y}=await o.read();if(n)break;r+=s.decode(y,{stream:!0});const w=r.split(`
|
|
2
2
|
`);r=w.pop()||"";let p="";for(const u of w)if(u.startsWith("event: "))p=u.slice(7).trim();else if(u.startsWith("data: ")){const f=JSON.parse(u.slice(6));p==="progress"?t?.(f):(p==="done"||p==="error")&&(a=f),p=""}}return a}class B{constructor(){this.activeBatch=null}async requestBatchCancellation(e){try{await d(`${l()}/import/batch/${encodeURIComponent(e)}/cancel`,{method:"POST"})}catch{}}async importFile(e,t,o){if(typeof e=="string")return{success:!1,error:"File path import is not supported in Web mode"};const s=new FormData;s.append("file",e),t?.formatId&&s.append("formatId",t.formatId),t?.chatIndex!==void 0&&s.append("chatIndex",String(t.chatIndex)),t?.sessionGapThreshold!==void 0&&s.append("sessionGapThreshold",String(t.sessionGapThreshold));const r=await d(`${l()}/import`,{method:"POST",body:s});if(!r.ok){const a=await r.text();return{success:!1,error:`HTTP ${r.status}: ${a}`}}return g(await S(r,{success:!1,error:"Unknown error"},o))}async importBatch(e,t,o){if(e.some(n=>typeof n.file=="string"))return e.map(n=>({id:n.id,status:"failed",error:"File path import is not supported in Web mode"}));const s=new FormData;for(const n of e)s.append("files",n.file);t?.sessionGapThreshold!==void 0&&s.append("sessionGapThreshold",String(t.sessionGapThreshold));const r={id:crypto.randomUUID(),cancelRequested:!1};this.activeBatch=r;const a=Array(e.length);try{const n=await d(`${l()}/import/batch`,{method:"POST",body:s,headers:{"X-ChatLab-Import-Batch-Id":r.id}});if(r.cancelRequested&&await this.requestBatchCancellation(r.id),!n.ok||!n.body){const m=await n.text();return e.map(T=>({id:T.id,status:"failed",error:`HTTP ${n.status}: ${m}`}))}const y=n.body.getReader(),w=new TextDecoder;let p="",u=null,f=null,c="";for(;;){const{done:m,value:T}=await y.read();if(m)break;p+=w.decode(T,{stream:!0});const v=p.split(`
|
|
3
3
|
`);p=v.pop()||"";for(const b of v){if(b.startsWith("event: ")){c=b.slice(7).trim();continue}if(!b.startsWith("data: "))continue;const h=JSON.parse(b.slice(6));if(c==="batch-start")o?.({index:h.index,event:"start"});else if(c==="batch-progress")o?.({index:h.index,event:"progress",progress:h.progress});else if(c==="batch-complete"){const $=x(e,h.index,h.result);a[h.index]=$,o?.({index:h.index,event:"complete",result:$})}else c==="done"?u=h.map(($,C)=>x(e,C,$)):c==="error"&&(f=typeof h?.error=="string"?h.error:"Batch import failed");c=""}}return u??e.map((m,T)=>a[T]??{id:m.id,status:"failed",error:f??"Batch response ended without results"})}catch(n){return e.map((y,w)=>a[w]??{id:y.id,status:"failed",error:n instanceof Error?n.message:String(n)})}finally{this.activeBatch===r&&(this.activeBatch=null)}}cancelActiveImport(){this.activeBatch&&(this.activeBatch.cancelRequested=!0,this.requestBatchCancellation(this.activeBatch.id))}async detectFormat(e){if(typeof e=="string")return null;const t=new FormData;t.append("file",e);const o=await d(`${l()}/detect-format`,{method:"POST",body:t});return o.ok?(await o.json()).format:null}async scanMultiChatFile(e){if(typeof e=="string")return[];const t=new FormData;t.append("file",e);const o=await d(`${l()}/scan-multi-chat`,{method:"POST",body:t});return o.ok?(await o.json()).chats:[]}async prepareImportSource(e){if(typeof e=="string")return{success:!1,error:"File path import is not supported in Web mode"};const t=new FormData;t.append("file",e);const o=await d(`${l()}/import-sources`,{method:"POST",body:t}),s=await o.json().catch(()=>null);return o.ok?s??{success:!1,error:"Invalid import source response"}:{success:!1,error:s?.error||`HTTP ${o.status}`}}async importPreparedChat(e,t,o,s){const r=await d(`${l()}/import-sources/${encodeURIComponent(e)}/import`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({chatId:t,sessionGapThreshold:s?.sessionGapThreshold})});if(!r.ok){const a=await r.text();return{success:!1,error:`HTTP ${r.status}: ${a}`}}return g(await S(r,{success:!1,error:"Unknown error"},o))}async releaseImportSource(e){await d(`${l()}/import-sources/${encodeURIComponent(e)}`,{method:"DELETE"})}getSupportedFormats(){return I("/supported-formats")}async importDemo(e,t,o){return new Promise(s=>{d(`${l()}/demo/import`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({locale:e,timeZone:Intl.DateTimeFormat().resolvedOptions().timeZone,sessionGapThreshold:o?.sessionGapThreshold})}).then(async r=>{if(!r.ok||!r.body){s({success:!1,error:`HTTP ${r.status}`});return}const a=r.body.getReader(),n=new TextDecoder;let y="";for(;;){const{done:w,value:p}=await a.read();if(w)break;y+=n.decode(p,{stream:!0});const u=y.split(`
|
|
4
4
|
`);y=u.pop()||"";let f="";for(const c of u)if(c.startsWith("event: "))f=c.slice(7).trim();else if(c.startsWith("data: ")){const m=JSON.parse(c.slice(6));if(f==="progress")(m.stage==="downloading"||m.stage==="importing")&&t?.({stage:m.stage});else if(f==="result"){s(m);return}f=""}}s({success:!1,error:"Stream ended without result"})}).catch(r=>s({success:!1,error:String(r)}))})}async analyzeIncrementalImport(e,t){if(typeof t=="string")return{newMessageCount:0,duplicateCount:0,totalInFile:0,error:"File path not supported in Web mode"};const o=new FormData;o.append("file",t);const s=await d(`${l()}/sessions/${e}/import/incremental/analyze`,{method:"POST",body:o});if(!s.ok){const r=await s.text();return{newMessageCount:0,duplicateCount:0,totalInFile:0,error:`HTTP ${s.status}: ${r}`}}return await s.json()}async incrementalImport(e,t,o){if(typeof t=="string")return{success:!1,newMessageCount:0,error:"File path not supported in Web mode"};const s=new FormData;s.append("file",t);const r=await d(`${l()}/sessions/${e}/import/incremental`,{method:"POST",body:s});if(!r.ok){const a=await r.text();return{success:!1,newMessageCount:0,error:`HTTP ${r.status}: ${a}`}}return S(r,{success:!1,newMessageCount:0,error:"Unknown error"},o)}async importDirectory(e,t,o){if(typeof e=="string")return{success:!1,error:"Directory path import is not supported in Web mode"};if(e.length===0)return{success:!1,error:"No files in directory"};const s=new FormData;for(const a of e)s.append("files",a),s.append("relativePaths",a.webkitRelativePath||a.name);t?.sessionGapThreshold!==void 0&&s.append("sessionGapThreshold",String(t.sessionGapThreshold));const r=await d(`${l()}/import-directory`,{method:"POST",body:s});if(!r.ok){const a=await r.text();return{success:!1,error:`HTTP ${r.status}: ${a}`}}return g(await S(r,{success:!1,error:"Unknown error"},o))}}function x(i,e,t){const o=i[e]?.id??String(e);return t?.status==="cancelled"?{id:o,status:"cancelled"}:t?.status==="success"?{id:o,status:"success",result:g(t.result)}:{id:o,status:"failed",error:t?.error??t?.result?.error??"error.import_failed",result:t?.result?g(t.result):void 0}}export{B as FetchImportAdapter};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{N as c,O as o,Q as l,S as m,T as $,U as a,V as y}from"./index-sWxuTsa7.js";import"./vendor-snapdom--nZvo8Sg.js";function S(i,e){e&&(e.startTs&&i.set("startTs",String(e.startTs)),e.endTs&&i.set("endTs",String(e.endTs)),e.memberId&&i.set("memberId",String(e.memberId)))}function n(i){const e=new URLSearchParams;S(e,i);const s=e.toString();return s?`?${s}`:""}function u(i){const e=new URLSearchParams;i?.mode&&e.set("mode",i.mode),i?.year&&e.set("year",String(i.year)),i?.days&&e.set("days",String(i.days)),i?.acceptStale&&e.set("acceptStale","1");const s=e.toString();return s?`?${s}`:""}class h{getSessions(){return c("/sessions")}getSession(e){return c(`/sessions/${e}`)}async deleteSession(e){return(await o(`/sessions/${e}`)).success}async renameSession(e,s){return(await l(`/sessions/${e}/name`,{name:s})).success}async updateSessionOwnerId(e,s){return(await l(`/sessions/${e}/owner`,{ownerId:s})).success}tryApplyOwnerProfile(e){return m(`/sessions/${e}/owner/apply-profile`,{})}setOwnerAndApplyProfile(e,s){return m(`/sessions/${e}/owner/select`,{ownerPlatformId:s})}async excludeOwnerSession(e){return(await m(`/sessions/${e}/owner/exclude`,{})).success}getContacts(e){const s=new URLSearchParams;e?.acceptStale&&s.set("acceptStale","1"),e?.timeRangePreset&&s.set("timeRange",e.timeRangePreset),e?.pool&&s.set("pool",e.pool),e?.page&&s.set("page",String(e.page)),e?.pageSize&&s.set("pageSize",String(e.pageSize)),e?.query&&s.set("q",e.query);const t=s.toString();return c(`/contacts${t?`?${t}`:""}`)}getContactDetail(e,s){const t=new URLSearchParams;s?.acceptStale&&t.set("acceptStale","1"),s?.timeRangePreset&&t.set("timeRange",s.timeRangePreset);const r=t.toString();return c(`/contacts/${encodeURIComponent(e)}/detail${r?`?${r}`:""}`)}recomputeContacts(e){const s=new URLSearchParams;e?.timeRangePreset&&s.set("timeRange",e.timeRangePreset),e?.pool&&s.set("pool",e.pool),e?.page&&s.set("page",String(e.page)),e?.pageSize&&s.set("pageSize",String(e.pageSize)),e?.query&&s.set("q",e.query);const t=s.toString();return m(`/contacts/recompute${t?`?${t}`:""}`,{})}async markContactAsFriend(e,s){const t=new URLSearchParams;s?.timeRangePreset&&t.set("timeRange",s.timeRangePreset);const r=t.toString();return(await $(`/contacts/${encodeURIComponent(e)}/mark-friend${r?`?${r}`:""}`)).success}async unmarkContactAsFriend(e,s){const t=new URLSearchParams;s?.timeRangePreset&&t.set("timeRange",s.timeRangePreset);const r=t.toString();return(await o(`/contacts/${encodeURIComponent(e)}/mark-friend${r?`?${r}`:""}`)).success}getPeopleRelationships(e){const s=new URLSearchParams;e?.acceptStale&&s.set("acceptStale","1"),e?.timeRangePreset&&s.set("timeRange",e.timeRangePreset),e?.graphScope&&s.set("scope",e.graphScope),e?.query&&s.set("q",e.query);const t=s.toString();return c(`/people/relationships${t?`?${t}`:""}`)}recomputePeopleRelationships(e){const s=new URLSearchParams;e?.timeRangePreset&&s.set("timeRange",e.timeRangePreset),e?.graphScope&&s.set("scope",e.graphScope),e?.query&&s.set("q",e.query);const t=s.toString();return m(`/people/relationships/recompute${t?`?${t}`:""}`,{})}getPeopleRelationshipNeighborhood(e,s){const t=new URLSearchParams;s?.acceptStale&&t.set("acceptStale","1"),s?.timeRangePreset&&t.set("timeRange",s.timeRangePreset),s?.graphScope&&t.set("scope",s.graphScope);const r=t.toString();return c(`/people/relationships/${encodeURIComponent(e)}/neighborhood${r?`?${r}`:""}`)}getAnnualSummary(e){return c(`/global-insight/annual-summary${u(e)}`)}recomputeAnnualSummary(e){return m(`/global-insight/annual-summary/recompute${u(e)}`,{})}getTimeInvestment(e){return c(`/global-insight/time-investment${u(e)}`)}recomputeTimeInvestment(e){return m(`/global-insight/time-investment/recompute${u(e)}`,{})}getAvailableYears(e){return c(`/sessions/${e}/years`)}getTimeRange(e){return c(`/sessions/${e}/time-range`)}getMemberActivity(e,s){return a(`/sessions/${e}/stats/member-activity${n(s)}`)}getHourlyActivity(e,s){return a(`/sessions/${e}/stats/hourly${n(s)}`)}getDailyActivity(e,s){return a(`/sessions/${e}/stats/daily${n(s)}`)}getWeekdayActivity(e,s){return a(`/sessions/${e}/stats/weekday${n(s)}`)}getMonthlyActivity(e,s){return a(`/sessions/${e}/analytics/monthly-activity${n(s)}`)}getYearlyActivity(e,s){return a(`/sessions/${e}/analytics/yearly-activity${n(s)}`)}getMessageLengthDistribution(e,s){return a(`/sessions/${e}/analytics/message-length-distribution${n(s)}`)}getMessageTypeDistribution(e,s){return a(`/sessions/${e}/stats/message-types${n(s)}`)}getTextStats(e,s){return a(`/sessions/${e}/analytics/text-stats${n(s)}`)}getLongMessageCount(e,s,t){const r=new URLSearchParams;s?.startTs&&r.set("startTs",String(s.startTs)),s?.endTs&&r.set("endTs",String(s.endTs)),s?.memberId&&r.set("memberId",String(s.memberId)),t!=null&&r.set("minLength",String(t));const g=r.toString();return a(`/sessions/${e}/analytics/long-message-count${g?`?${g}`:""}`)}getMemberMonthlyTrend(e,s){return a(`/sessions/${e}/analytics/member-monthly-trend${n(s)}`)}getTextLengthPercentiles(e,s){return a(`/sessions/${e}/analytics/text-length-percentiles${n(s)}`)}getWordFrequency(e,s){return y("/nlp/word-frequency",{sessionId:e,...s})}getDragonKingAnalysis(e,s){return a(`/sessions/${e}/analytics/dragon-king${n(s)}`)}getDivingAnalysis(e,s){return a(`/sessions/${e}/analytics/diving${n(s)}`)}getCheckInAnalysis(e,s){return a(`/sessions/${e}/analytics/check-in${n(s)}`)}getMemeBattleAnalysis(e,s){return a(`/sessions/${e}/analytics/meme-battle${n(s)}`)}getNightOwlAnalysis(e,s){return a(`/sessions/${e}/analytics/night-owl${n(s)}`)}getRepeatAnalysis(e,s){return a(`/sessions/${e}/analytics/repeat${n(s)}`)}getMembers(e){return c(`/sessions/${e}/members`)}getMembersPaginated(e,s){const t=new URLSearchParams({page:String(s.page),pageSize:String(s.pageSize)});return s.search&&t.set("search",s.search),s.sortOrder&&t.set("sortOrder",s.sortOrder),c(`/sessions/${e}/members/paginated?${t}`)}getMemberNameHistory(e,s){return c(`/sessions/${e}/members/${s}/history`)}async updateMemberAliases(e,s,t){return(await l(`/sessions/${e}/members/${s}/aliases`,{aliases:t})).success}async mergeMembers(e,s,t){return(await m(`/sessions/${e}/members/merge`,{memberId1:s,memberId2:t})).success}async deleteMember(e,s){return(await o(`/sessions/${e}/members/${s}`)).success}async deleteMembers(e,s){return(await m(`/sessions/${e}/members/batch-delete`,{memberIds:s})).success}getCatchphraseAnalysis(e,s){return a(`/sessions/${e}/analytics/catchphrase${n(s)}`)}getLanguagePreferenceAnalysis(e,s,t,r){const g=new URLSearchParams;return g.set("locale",s),t?.startTs&&g.set("startTs",String(t.startTs)),t?.endTs&&g.set("endTs",String(t.endTs)),t?.memberId&&g.set("memberId",String(t.memberId)),a(`/sessions/${e}/analytics/language-preference?${g}`)}getMentionAnalysis(e,s){return a(`/sessions/${e}/analytics/mention${n(s)}`)}getGroupRelationshipGalaxy(e,s){return a(`/sessions/${e}/analytics/relationship-galaxy${n(s)}`)}getClusterGraph(e,s,t){const r=new URLSearchParams;s?.startTs&&r.set("startTs",String(s.startTs)),s?.endTs&&r.set("endTs",String(s.endTs)),s?.memberId&&r.set("memberId",String(s.memberId)),t?.topEdges&&r.set("topEdges",String(t.topEdges)),t?.lookAhead&&r.set("lookAhead",String(t.lookAhead)),t?.decaySeconds&&r.set("decaySeconds",String(t.decaySeconds));const g=r.toString();return a(`/sessions/${e}/analytics/cluster${g?`?${g}`:""}`)}getLaughAnalysis(e,s,t){return y(`/sessions/${e}/analytics/laugh${n(s)}`,{keywords:t??[]})}getRelationshipStats(e,s,t){return a(`/sessions/${e}/analytics/relationship${n(s)}`)}getJourneyStats(e,s){return a(`/sessions/${e}/analytics/journey${n(s)}`)}executeSQL(e,s){return m(`/sessions/${e}/sql`,{sql:s})}getSchema(e){return c(`/sessions/${e}/schema`)}pluginQuery(e,s,t){return m(`/sessions/${e}/query`,{sql:s,params:t??[]})}}export{h as FetchDataAdapter};
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{W as r,X as m}from"./index-sWxuTsa7.js";import"./vendor-snapdom--nZvo8Sg.js";function u(){return m("data")}const c=`(SELECT mc.message_id FROM message_context mc
|
|
2
2
|
JOIN message first_msg ON first_msg.id = mc.message_id
|
|
3
|
-
WHERE mc.segment_id = segment.id ORDER BY first_msg.ts ASC, first_msg.id ASC LIMIT 1) as firstMessageId`;class
|
|
4
|
-
|
|
5
|
-
FROM segment
|
|
6
|
-
|
|
3
|
+
WHERE mc.segment_id = segment.id ORDER BY first_msg.ts ASC, first_msg.id ASC LIMIT 1) as firstMessageId`;class l{async generate(s,t=1800){const e=await r(`/_web/sessions/${s}/generate-index`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({gapThreshold:t})});if(!e.ok)throw new Error(`Failed to generate session index: ${e.status}`);return(await e.json()).sessionCount}async generateIncremental(s,t=1800){const e=await r(`/_web/sessions/${s}/generate-incremental-index`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({gapThreshold:t})});if(!e.ok)throw new Error(`Failed to generate incremental session index: ${e.status}`);return(await e.json()).sessionCount}async hasIndex(s){return(await this.getStats(s)).hasIndex}async getStats(s){try{const e=(await u().pluginQuery(s,"SELECT COUNT(*) as cnt FROM segment",[]))[0]?.cnt??0;return{hasIndex:e>0,sessionCount:e,gapThreshold:1800}}catch{return{hasIndex:!1,sessionCount:0,gapThreshold:1800}}}async getAllIndexStats(){const s=await r("/_web/sessions/index-stats");return s.ok?await s.json():[]}async clear(s){return await r(`/_web/sessions/${s}/clear-index`,{method:"POST"}),!0}async updateGapThreshold(s,t){return!0}async getSessions(s){return u().pluginQuery(s,`SELECT id, start_ts as startTs, end_ts as endTs, message_count as messageCount, summary,
|
|
4
|
+
summary_message_count as summaryMessageCount, ${c}
|
|
5
|
+
FROM segment ORDER BY start_ts ASC`,[])}async getByTimeRange(s,t,e){return u().pluginQuery(s,`SELECT id, start_ts as startTs, end_ts as endTs, message_count as messageCount, summary,
|
|
6
|
+
summary_message_count as summaryMessageCount, ${c}
|
|
7
|
+
FROM segment WHERE start_ts >= ? AND end_ts <= ? ORDER BY start_ts ASC`,[t,e])}async getRecent(s,t){return u().pluginQuery(s,`SELECT id, start_ts as startTs, end_ts as endTs, message_count as messageCount, summary,
|
|
8
|
+
summary_message_count as summaryMessageCount, ${c}
|
|
9
|
+
FROM segment ORDER BY start_ts DESC LIMIT ?`,[t])}async generateSummary(s,t,e,n,o){try{const a=await r(`/_web/sessions/${s}/summaries/generate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({segmentId:t,locale:e,forceRegenerate:n,strategy:o})}),i=await a.json();return a.ok?i:{success:!1,error:i.error||`HTTP ${a.status}`}}catch(a){return{success:!1,error:a instanceof Error?a.message:String(a)}}}async generateSummaries(s,t,e){let n=0,o=0;const a=0;for(const i of t)try{(await this.generateSummary(s,i,e)).success?n++:o++}catch{o++}return{success:n,failed:o,skipped:a}}async checkCanGenerateSummary(s,t){try{const e=await r(`/_web/sessions/${s}/summaries/check-can-generate`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({segmentIds:t})});return e.ok?await e.json():{}}catch{return{}}}}export{l as FetchSessionIndexAdapter};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{N as t,T as o,O as r}from"./index-sWxuTsa7.js";import"./vendor-snapdom--nZvo8Sg.js";class u{load(){return t("/navigation-layout")}save(a){return o("/navigation-layout",a)}reset(){return r("/navigation-layout")}}export{u as FetchNavigationLayoutAdapter};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{N as a,S as s,T as n,O as i}from"./index-sWxuTsa7.js";import"./vendor-snapdom--nZvo8Sg.js";class c{async getAll(){return a("/ai/assistants")}async getConfig(t){try{return await a(`/ai/assistants/${t}`)}catch{return null}}async create(t){return s("/ai/assistants",t)}async update(t,r){return n(`/ai/assistants/${t}`,r)}async delete(t){return i(`/ai/assistants/${t}`)}async reset(t){return s(`/ai/assistants/${t}/reset`,{})}async getUpgradeInfo(t){return a(`/ai/assistants/${t}/upgrade-status`)}async upgradeWithBackup(t,r){return s(`/ai/assistants/${t}/upgrade`,{backupName:r})}async importFromMd(t){return s("/ai/assistants/import",{rawMd:t})}async getBuiltinCatalog(){return[]}async importBuiltin(t){return s("/ai/assistants/import-builtin",{builtinId:t})}async reimport(t){return s(`/ai/assistants/${t}/reimport`,{})}async getBuiltinToolCatalog(){return a("/ai/tools/catalog")}}export{c as FetchAssistantAdapter};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{N as t,S as e}from"./index-sWxuTsa7.js";import"./vendor-snapdom--nZvo8Sg.js";class o{async getInfo(){return t("/cache/info")}async clear(a){return e("/cache/clear",{cacheId:a})}async getDataDir(){return t("/cache/data-dir")}async setDataDir(a,r=!0){return e("/cache/data-dir",{path:a,migrate:r})}async openDataDirCleanup(a){return e("/cache/data-dir/cleanup/open",{cleanupId:a})}async dismissDataDirCleanupNotice(a){return e("/cache/data-dir/cleanup/dismiss",{cleanupId:a})}async deleteDataDirCleanup(a){return e("/cache/data-dir/cleanup/delete",{cleanupId:a})}async getLatestImportLog(){return t("/cache/latest-import-log")}async saveToDownloads(a,r){return e("/cache/save-to-downloads",{filename:a,dataUrl:r})}async openDir(a){return e("/cache/open-dir",{cacheId:a})}async showInFolder(a){return e("/cache/show-in-folder",{filePath:a})}}export{o as FetchCacheAdapter};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{W as c}from"./index-sWxuTsa7.js";import"./vendor-snapdom--nZvo8Sg.js";class p{preflight(e,n){return s(`/_web/sessions/${encodeURIComponent(e)}/topics/preflight`,{method:"POST",body:JSON.stringify(n)})}start(e,n){return s(`/_web/sessions/${encodeURIComponent(e)}/topics/runs`,{method:"POST",body:JSON.stringify(n)})}generateDay(e,n,o,t){return s(`/_web/sessions/${encodeURIComponent(e)}/topics/days/${encodeURIComponent(n)}/generate`,{method:"POST",body:JSON.stringify({timezone:o,locale:t})})}getLatestRun(e){return s(`/_web/sessions/${encodeURIComponent(e)}/topics/runs/latest`)}getRun(e,n){return s(`/_web/sessions/${encodeURIComponent(e)}/topics/runs/${encodeURIComponent(n)}`)}pause(e,n){return this.runAction(e,n,"pause")}resume(e,n){return this.runAction(e,n,"resume")}cancel(e,n){return this.runAction(e,n,"cancel")}getDay(e,n,o){return s(`/_web/sessions/${encodeURIComponent(e)}/topics/days/${encodeURIComponent(n)}?timezone=${encodeURIComponent(o)}`)}async deleteDay(e,n){return(await s(`/_web/sessions/${encodeURIComponent(e)}/topics/days/${encodeURIComponent(n)}`,{method:"DELETE"})).success}runAction(e,n,o){return s(`/_web/sessions/${encodeURIComponent(e)}/topics/runs/${encodeURIComponent(n)}/${o}`,{method:"POST"})}}async function s(r,e={}){const n=new Headers(e.headers);e.body!==void 0&&n.set("Content-Type","application/json");const o=await c(r,{...e,headers:n});if(!o.ok){const t=await o.json().catch(()=>null);throw new Error(t?.error||t?.message||`HTTP ${o.status}`)}return o.json()}export{p as FetchChatTopicsAdapter};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{N as r,Q as n}from"./index-sWxuTsa7.js";import"./vendor-snapdom--nZvo8Sg.js";class a{getPresentationPreferences(){return r("/preferences/bootstrap")}getPreferences(){return r("/preferences")}savePreferences(e){return n("/preferences",e)}getUiConfig(){return r("/preferences/ui-config")}saveUiConfig(e){return n("/preferences/ui-config",e)}async getLocale(){return(await r("/preferences/locale")).lang}saveLocale(e){return n("/preferences/locale",{lang:e})}}export{a as FetchPreferencesAdapter};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{N as r,S as a,T as u,O as l,W as h}from"./index-sWxuTsa7.js";import"./vendor-snapdom--nZvo8Sg.js";const g="This feature is not available in web mode";class ${async getAIChat(e){try{return await r(`/ai/chats/${e}`)}catch{return null}}async getAIChats(e){return r(`/ai/chats?sessionId=${encodeURIComponent(e)}`)}async createAIChat(e,t,s){return a("/ai/chats",{sessionId:e,title:t,assistantId:s})}async updateAIChatTitle(e,t){return u(`/ai/chats/${e}/title`,{title:t})}async deleteAIChat(e){return l(`/ai/chats/${e}`)}async getMessages(e){return r(`/ai/chats/${e}/messages`)}async addMessage(e,t,s,c,n,o,i){return a(`/ai/chats/${e}/messages`,{role:t,content:s,dataKeywords:c,dataMessageCount:n,contentBlocks:o,tokenUsage:i})}async deleteMessagesFrom(e,t){return a(`/ai/chats/${e}/messages/${t}/delete-from`,{})}async forkAIChat(e,t,s){return a(`/ai/chats/${e}/fork`,{upToMessageId:t,title:s})}async updateMessageContent(e,t){await u(`/ai/messages/${e}/content`,{content:t})}async deleteAndRelinkMessage(e,t){await a(`/ai/chats/${e}/messages/${t}/delete-relink`,{})}async insertMessageAfter(e,t,s,c,n,o){return a(`/ai/chats/${e}/messages/insert-after`,{afterMessageId:t,role:s,content:c,contentBlocks:n,tokenUsage:o})}async getAIChatTokenUsage(e){return r(`/ai/chats/${e}/token-usage`)}async estimateContextTokens(e){try{return await r(`/ai/chats/${e}/estimate-tokens`)}catch(t){return{success:!1,tokens:0,error:t instanceof Error?t.message:String(t)}}}async exportFilterResultToFile(e){try{const t=await h(`/_web/sessions/${e.sessionId}/export`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionName:e.sessionName,format:e.format||"txt",timeFilter:e.timeFilter})});if(!t.ok)return{success:!1,error:(await t.json().catch(()=>null))?.error||`HTTP ${t.status}`};const s=await t.blob(),c=t.headers.get("Content-Disposition")?.match(/filename="?(.+?)"?$/)?.[1]||`${e.sessionName}_export.txt`,n=URL.createObjectURL(s),o=document.createElement("a");return o.href=n,o.download=decodeURIComponent(c),o.click(),URL.revokeObjectURL(n),{success:!0}}catch(t){return{success:!1,error:t instanceof Error?t.message:String(t)}}}onExportProgress(e){return()=>{}}async executeAiSQL(e){return a("/ai/debug/execute-sql",{sql:e})}async getAiSchema(){return r("/ai/debug/schema")}async clearDebugContext(){return a("/ai/debug/clear-debug-context",{})}async getToolCatalog(){try{return await r("/ai/tools/full-catalog")}catch{return r("/ai/tools/catalog")}}async executeTool(e,t,s,c){try{return await a("/ai/tools/execute",{testId:e,toolName:t,params:s,sessionId:c})}catch(n){return{success:!1,error:String(n)}}}async cancelToolTest(e){try{return await a("/ai/tools/cancel",{testId:e})}catch{return{success:!1}}}async getDefaultDesensitizeRules(e){try{return await r(`/ai/desensitize-rules/defaults?locale=${encodeURIComponent(e)}`)}catch{return[]}}async mergeDesensitizeRules(e,t,s={}){try{return await a("/ai/desensitize-rules/merge",{existingRules:e,locale:t,overrides:s})}catch{return e}}async showAiLogFile(){try{return await a("/ai/logs/show")}catch(e){return{success:!1,error:e instanceof Error?e.message:g}}}}export{$ as FetchAIAdapter};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{I as t,J as o,K as r,M as m}from"./index-sWxuTsa7.js";import{T as a}from"./service-DMysyLCa.js";import"./vendor-snapdom--nZvo8Sg.js";function u(){return{canConfigureOwner:!m.usesBrowserRuntime,get:e=>r().getTimeInvestment(e),recompute:e=>r().recomputeTimeInvestment(e),openOwnerSettings:()=>t().openSettings("data","missing-owner"),subscribeOwnerSettingsClosed:e=>{const n=t();return o(()=>n.showSettings,(s,i)=>{i&&!s&&e()})}}}function g(e){e.register(a,u())}export{u as createTimeInvestmentUiService,g as registerTimeInvestmentUiService};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{I as t,J as o,K as r}from"./index-sWxuTsa7.js";import{A as s}from"./service-CVoA9yNf.js";import"./vendor-snapdom--nZvo8Sg.js";function u(){return{get:e=>r().getAnnualSummary(e),recompute:e=>r().recomputeAnnualSummary(e),openOwnerSettings:()=>t().openSettings("data","missing-owner"),subscribeOwnerSettingsClosed:e=>{const n=t();return o(()=>n.showSettings,(a,i)=>{i&&!a&&e()})}}}function g(e){e.register(s,u())}export{u as createAnnualSummaryUiService,g as registerAnnualSummaryUiService};
|