aitu-app 0.6.21 → 0.6.23
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 +3 -3
- package/assets/{ChatMessagesArea-Bc7FkjZo.js → ChatMessagesArea-DqACQvRr.js} +3 -3
- package/assets/{KnowledgeBaseContent-BLIcG9KK.js → KnowledgeBaseContent-EsX2PFX5.js} +4 -4
- package/assets/{ModelBenchmarkWorkbench-CGztJD2j.js → ModelBenchmarkWorkbench-ByD8lm52.js} +1 -1
- package/assets/{ResizableDivider-DfqWs8LM.js → ResizableDivider-CZlMlLZf.js} +1 -1
- package/assets/{ToolboxDrawer-B9g_w8pc.js → ToolboxDrawer-BholUGhB.js} +1 -1
- package/assets/{VideoAnalyzer-KdlQiqKF.js → VideoAnalyzer-D_M4uOqO.js} +1 -1
- package/assets/{ai-analyze-D51W4jnj.js → ai-analyze-3gy1d3MZ.js} +1 -1
- package/assets/{arc-BqtXmYwJ.js → arc-BdqY42Os.js} +1 -1
- package/assets/{arc-DVIrWwbE.js → arc-CDaddBap.js} +1 -1
- package/assets/{batch-image-generation-DEC8rrCP.js → batch-image-generation-DYpHNIYD.js} +1 -1
- package/assets/{blockDiagram-38ab4fdb-BgPS1CyJ.js → blockDiagram-38ab4fdb-BCBuhQBv.js} +1 -1
- package/assets/{blockDiagram-38ab4fdb-CMoyjTgm.js → blockDiagram-38ab4fdb-DuiEoACT.js} +1 -1
- package/assets/{c4Diagram-3d4e48cf-wjCA-CL-.js → c4Diagram-3d4e48cf-CxjYMqSH.js} +1 -1
- package/assets/{c4Diagram-3d4e48cf-CIeKmCwa.js → c4Diagram-3d4e48cf-DJcdGekb.js} +1 -1
- package/assets/channel-CMg8aOke.js +1 -0
- package/assets/channel-DpnsHiyr.js +1 -0
- package/assets/{classDiagram-70f12bd4-DfTNrA1t.js → classDiagram-70f12bd4-C9ir5_u-.js} +1 -1
- package/assets/{classDiagram-70f12bd4-vizVZzUd.js → classDiagram-70f12bd4-D4Eg_jvE.js} +1 -1
- package/assets/{classDiagram-v2-f2320105-LutY6jPP.js → classDiagram-v2-f2320105-DUkHLx4s.js} +1 -1
- package/assets/{classDiagram-v2-f2320105-DO7izSAk.js → classDiagram-v2-f2320105-torLXVJ_.js} +1 -1
- package/assets/{clipper-D3zP18nj.js → clipper-Bwa6ow0N.js} +1 -1
- package/assets/clone-UtRIaqB-.js +1 -0
- package/assets/clone-easkkPV8.js +1 -0
- package/assets/{createText-2e5e7dd3-iSllMU05.js → createText-2e5e7dd3-BqClxvYh.js} +1 -1
- package/assets/{createText-2e5e7dd3-CtWg9f_f.js → createText-2e5e7dd3-jCBdBJre.js} +1 -1
- package/assets/{edges-e0da2a9e-B8N3S4AD.js → edges-e0da2a9e-D6SuM8kW.js} +1 -1
- package/assets/{edges-e0da2a9e-B9APkBSa.js → edges-e0da2a9e-ZMTl_9-E.js} +1 -1
- package/assets/{erDiagram-9861fffd-Dnp1WpmL.js → erDiagram-9861fffd-D4TP94WS.js} +1 -1
- package/assets/{erDiagram-9861fffd-B1x-ZWfU.js → erDiagram-9861fffd-tSh6Kumc.js} +1 -1
- package/assets/{flowDb-956e92f1-BT8eaBZE.js → flowDb-956e92f1-BstO-E0O.js} +1 -1
- package/assets/{flowDb-956e92f1-5caTHN1T.js → flowDb-956e92f1-DO1uk4CN.js} +1 -1
- package/assets/{flowDiagram-66a62f08-Cx_V_MoA.js → flowDiagram-66a62f08-CIB70ZLG.js} +1 -1
- package/assets/{flowDiagram-66a62f08-B5xcjVie.js → flowDiagram-66a62f08-DVWXGCQW.js} +1 -1
- package/assets/flowDiagram-v2-96b9c2cf-2dvIlqff.js +1 -0
- package/assets/flowDiagram-v2-96b9c2cf-FHByW5Qf.js +1 -0
- package/assets/{flowchart-elk-definition-4a651766-Cjgywupa.js → flowchart-elk-definition-4a651766-DslNcKnw.js} +1 -1
- package/assets/{flowchart-elk-definition-4a651766-CwIA9l-O.js → flowchart-elk-definition-4a651766-VZBaCCuR.js} +1 -1
- package/assets/{ganttDiagram-c361ad54-oySKvDa4.js → ganttDiagram-c361ad54-6ivn1r03.js} +1 -1
- package/assets/{ganttDiagram-c361ad54-6zSjhOJy.js → ganttDiagram-c361ad54-DV0GRnEF.js} +1 -1
- package/assets/{gitGraphDiagram-72cf32ee-BnNAY3pp.js → gitGraphDiagram-72cf32ee-BEygKXY0.js} +1 -1
- package/assets/{gitGraphDiagram-72cf32ee-BK7TWB1s.js → gitGraphDiagram-72cf32ee-DWr5zUM5.js} +1 -1
- package/assets/{graph-BPS27gwv.js → graph-Bz5-jTrQ.js} +1 -1
- package/assets/{graph-B_MH2EY9.js → graph-CTW56_iR.js} +1 -1
- package/assets/{grid-image-DLa8OQhL.js → grid-image-ustlw6xm.js} +1 -1
- package/assets/{has-D0S1Zmzg.js → has-Cfo42O_S.js} +1 -1
- package/assets/{hasIn-De9yBkgj.js → hasIn-BnqD3im9.js} +1 -1
- package/assets/{index-3862675e-FzFTrzJW.js → index-3862675e-BIEcREX2.js} +1 -1
- package/assets/{index-3862675e-D6LCgHcS.js → index-3862675e-DtEGYDS9.js} +1 -1
- package/assets/{index-CSxjkKUk.js → index-38lOAtlf.js} +1 -1
- package/assets/{index-B_TY0tLT.js → index-BBJDDK-n.js} +1 -1
- package/assets/{index-BdrYk4gf.js → index-BBK3pqat.js} +1 -1
- package/assets/{index-Br6iEGLw.js → index-BQZA18li.js} +1 -1
- package/assets/{index-CqeciDtE.js → index-BZ2tQlet.js} +1 -1
- package/assets/{index-CGUpUzSI.js → index-BfFqrO67.js} +1 -1
- package/assets/{index-CIsTR1zp.js → index-BpP2md3O.js} +1 -1
- package/assets/{index-B3GMIqjJ.js → index-BsvORYza.js} +1 -1
- package/assets/{index-BR5Ge2w3.js → index-Bvbn2yoQ.js} +1 -1
- package/assets/{index-Bjr6SLmW.js → index-Bvq4Tvew.js} +1 -1
- package/assets/{index-CG_qIHbM.js → index-C0X8TvCO.js} +1 -1
- package/assets/{index-DUFh_idy.js → index-COYEoYWB.js} +1 -1
- package/assets/{index-DYQtOpt_.js → index-CU767Blb.js} +1 -1
- package/assets/{index-T5OF1JP4.js → index-CabAbVyG.js} +1 -1
- package/assets/{index-6opHRfWl.js → index-CinaDqE2.js} +1 -1
- package/assets/{index-Cb_6lq4r.js → index-CjnFm61D.js} +1 -1
- package/assets/{index-Ia_xKhIZ.js → index-CjoN3geg.js} +5 -5
- package/assets/{index-DJhDtQwz.js → index-Ck7rYA9l.js} +1 -1
- package/assets/{index-BUde8Mm7.js → index-Cz48aR51.js} +1 -1
- package/assets/{index-CU-f8hlX.js → index-CzP2YV2v.js} +1 -1
- package/assets/{index-C6mW2Bug.js → index-D1K2I3RI.js} +1 -1
- package/assets/{index-CAghokCh.js → index-D6IOmGmZ.js} +1 -1
- package/assets/{index-DFgRlr0t.js → index-DB8WynLR.js} +1 -1
- package/assets/{index-GP_0iNEx.js → index-DTNxAFlV.js} +1 -1
- package/assets/{index-Ctlb8bi0.js → index-DWwB3QfL.js} +1 -1
- package/assets/{index-BIv91qW9.js → index-Diazikky.js} +16 -16
- package/assets/{index-Ddc6oDDk.js → index-DjfBmoou.js} +1 -1
- package/assets/{index-Dgs_9LtJ.js → index-DznmfPeT.js} +1 -1
- package/assets/{index-B8Cp8ZAq.js → index-_ICarhdX.js} +1 -1
- package/assets/{index-CoNiRHcD.js → index-_r7YzZKB.js} +1 -1
- package/assets/{index-B1Qj7KmK.js → index-_y8oEtqK.js} +1 -1
- package/assets/{index-rrHZbeHC.js → index-eR1AbFwy.js} +1 -1
- package/assets/{index-sARZWo5n.js → index-y6GLvp-x.js} +1 -1
- package/assets/{infoDiagram-f8f76790-DqxLIqvx.js → infoDiagram-f8f76790-CHjrZoNR.js} +1 -1
- package/assets/{infoDiagram-f8f76790-C5lK_OdP.js → infoDiagram-f8f76790-KGgVa5eK.js} +1 -1
- package/assets/{inspiration-board-DELLwhlH.js → inspiration-board-DnOMJ0Xl.js} +1 -1
- package/assets/{isEmpty-DF_ugZHw.js → isEmpty-B2SlhWS8.js} +1 -1
- package/assets/{journeyDiagram-49397b02-BJ9tbMfk.js → journeyDiagram-49397b02-B6HxdUty.js} +1 -1
- package/assets/{journeyDiagram-49397b02-f6bVwxyz.js → journeyDiagram-49397b02-SvKr4NPe.js} +1 -1
- package/assets/{layers-DAOrLzwi.js → layers-CfqtMGte.js} +1 -1
- package/assets/{layout-fmUyEip8.js → layout-DuXC-n5M.js} +1 -1
- package/assets/{layout-yMh6DKYs.js → layout-SSxspuqe.js} +1 -1
- package/assets/{line-DANa88VO.js → line-CJfcXGFW.js} +1 -1
- package/assets/{line-DXiCFjwk.js → line-DqYd8bzV.js} +1 -1
- package/assets/{linear-5iY8Cy-H.js → linear-9lES0hAA.js} +1 -1
- package/assets/{linear-ctDXkzM_.js → linear-DxE9VuUs.js} +1 -1
- package/assets/{mermaid.core-Dgk12NKe.js → mermaid.core-B5XmWSVz.js} +5 -5
- package/assets/{mindmap-definition-fc14e90a-DLlf6Rx9.js → mindmap-definition-fc14e90a-C85XM3qU.js} +1 -1
- package/assets/{mindmap-definition-fc14e90a-C7BlMhzr.js → mindmap-definition-fc14e90a-De6tVs8Y.js} +1 -1
- package/assets/{model-benchmark-launcher-fleyPbmY.js → model-benchmark-launcher-B-qig9XH.js} +1 -1
- package/assets/{photo-wall-splitter-xpPO2k5T.js → photo-wall-splitter-C1BIQpZe.js} +1 -1
- package/assets/{pick-VCZntyna.js → pick-Dy1eQ_1d.js} +1 -1
- package/assets/{pieDiagram-8a3498a8-BBnaNSJ-.js → pieDiagram-8a3498a8-BjQMvS12.js} +1 -1
- package/assets/{pieDiagram-8a3498a8-BvSfbq65.js → pieDiagram-8a3498a8-aCiXxLDX.js} +1 -1
- package/assets/{quadrantDiagram-120e2f19-Cm8pCCM5.js → quadrantDiagram-120e2f19-CDAN6W9g.js} +1 -1
- package/assets/{quadrantDiagram-120e2f19-Bnh-DNQv.js → quadrantDiagram-120e2f19-Cgj8CMc0.js} +1 -1
- package/assets/{requirementDiagram-deff3bca-DMRUc1cx.js → requirementDiagram-deff3bca-D3x57SJ6.js} +1 -1
- package/assets/{requirementDiagram-deff3bca-CDm-DECv.js → requirementDiagram-deff3bca-Itb0zQU2.js} +1 -1
- package/assets/{sankeyDiagram-04a897e0-CXC5R9JG.js → sankeyDiagram-04a897e0-DiMwHm4Y.js} +1 -1
- package/assets/{sankeyDiagram-04a897e0-BMtXJIXg.js → sankeyDiagram-04a897e0-Duoeqdm1.js} +1 -1
- package/assets/{sequenceDiagram-704730f1-CNMmBUQx.js → sequenceDiagram-704730f1-BmOQzTUI.js} +1 -1
- package/assets/{sequenceDiagram-704730f1-D42qglAv.js → sequenceDiagram-704730f1-Dju7QPTk.js} +1 -1
- package/assets/{settings-dialog-2ODvctTh.js → settings-dialog-CzGNLfkF.js} +1 -1
- package/assets/{shard-sync-service-D3USLllH.js → shard-sync-service-B128XNJa.js} +1 -1
- package/assets/{stateDiagram-587899a1-DqPLyMub.js → stateDiagram-587899a1-Ca3MHvNM.js} +1 -1
- package/assets/{stateDiagram-587899a1-DsEPR5ou.js → stateDiagram-587899a1-DdT-3A8-.js} +1 -1
- package/assets/{stateDiagram-v2-d93cdb3a-Bf_7sDs_.js → stateDiagram-v2-d93cdb3a-DDYM4kXo.js} +1 -1
- package/assets/{stateDiagram-v2-d93cdb3a-DrlPKA21.js → stateDiagram-v2-d93cdb3a-i2wIxuVG.js} +1 -1
- package/assets/{styles-6aaf32cf-Bj2sDHb0.js → styles-6aaf32cf-DkWpuvOu.js} +1 -1
- package/assets/{styles-6aaf32cf-YHAPMNO9.js → styles-6aaf32cf-o4-icR7K.js} +1 -1
- package/assets/{styles-9a916d00-7jELss6_.js → styles-9a916d00-6GjHjkld.js} +1 -1
- package/assets/{styles-9a916d00-CZUDnhpb.js → styles-9a916d00-CyR-8fWx.js} +1 -1
- package/assets/{styles-c10674c1-DC9073pI.js → styles-c10674c1-BFsf5zbR.js} +1 -1
- package/assets/{styles-c10674c1-DLuj745u.js → styles-c10674c1-DIjbfSP5.js} +1 -1
- package/assets/{svgDrawCommon-08f97a94-CrWF0HaY.js → svgDrawCommon-08f97a94-CSE72X8r.js} +1 -1
- package/assets/{svgDrawCommon-08f97a94-D2AO9i1k.js → svgDrawCommon-08f97a94-S7JNq_7Q.js} +1 -1
- package/assets/{timeline-definition-85554ec2-7KS0GPh6.js → timeline-definition-85554ec2-Bs-a8nwJ.js} +1 -1
- package/assets/{timeline-definition-85554ec2-leTEuD1Q.js → timeline-definition-85554ec2-CTvSjV1A.js} +1 -1
- package/assets/ttd-dialog-B94XLDLW.js +115 -0
- package/assets/{upload-CQNwOcX2.js → upload-CVZb3TLK.js} +1 -1
- package/assets/{video-recovery-service-BQIopXWm.js → video-recovery-service-ByGum3it.js} +1 -1
- package/assets/{xychartDiagram-e933f94c-B_6b1Ojq.js → xychartDiagram-e933f94c-BLhmzlLM.js} +1 -1
- package/assets/{xychartDiagram-e933f94c-BCEY4mIx.js → xychartDiagram-e933f94c-DoAqlXyB.js} +1 -1
- package/changelog.json +26 -0
- package/package.json +1 -1
- package/precache-manifest.json +283 -283
- package/sw.js +1 -1
- package/version.json +3 -7
- package/assets/channel-Ckduo0Rh.js +0 -1
- package/assets/channel-DXN87Isu.js +0 -1
- package/assets/clone-CuD87pDT.js +0 -1
- package/assets/clone-DOLqw3Mb.js +0 -1
- package/assets/flowDiagram-v2-96b9c2cf-BaJg3X7e.js +0 -1
- package/assets/flowDiagram-v2-96b9c2cf-bslUZjmZ.js +0 -1
- package/assets/ttd-dialog-DZzhIaYG.js +0 -115
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-
|
|
2
|
-
import{cE as Y,r as s,ab as e,fd as Is,cN as de,bW as me,fe as Ps,d5 as Ke,ff as rs,d1 as fe,cM as xe,da as ke,fg as we,fh as Be,fi as As,fj as oe,fk as pe,aj as ds,fl as Fs,fm as Ze,cn as _,fn as Ws,fo as Os,fp as Hs,fq as Xs,fr as Ys,cR as Zs,fs as Se,ak as Ve,ft as qe,fu as Gs,fv as Me,an as Qs,bV as Js,be as he,cJ as ls,ae as be,ep as en,cj as sn,fw as nn,bl as R,fx as cs,dr as us,cx as an,c0 as tn,c2 as Ge,am as Ce,fy as on,fz as rn,fA as dn,bN as ln,eh as ms,cc as Qe,fB as cn,bm as Ue,fC as un,ac as mn}from"./index-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-Diazikky.js","./index-D73zwRQ2.css"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{cE as Y,r as s,ab as e,fd as Is,cN as de,bW as me,fe as Ps,d5 as Ke,ff as rs,d1 as fe,cM as xe,da as ke,fg as we,fh as Be,fi as As,fj as oe,fk as pe,aj as ds,fl as Fs,fm as Ze,cn as _,fn as Ws,fo as Os,fp as Hs,fq as Xs,fr as Ys,cR as Zs,fs as Se,ak as Ve,ft as qe,fu as Gs,fv as Me,an as Qs,bV as Js,be as he,cJ as ls,ae as be,ep as en,cj as sn,fw as nn,bl as R,fx as cs,dr as us,cx as an,c0 as tn,c2 as Ge,am as Ce,fy as on,fz as rn,fA as dn,bN as ln,eh as ms,cc as Qe,fB as cn,bm as Ue,fC as un,ac as mn}from"./index-Diazikky.js";/**
|
|
3
3
|
* @license lucide-react v0.562.0 - ISC
|
|
4
4
|
*
|
|
5
5
|
* This source code is licensed under the ISC license.
|
|
@@ -123,6 +123,6 @@ ${n}
|
|
|
123
123
|
`).trim()}const ri=({noteId:n,noteContent:i,noteTitle:r,onInsertToNote:d,onSaved:k})=>{const f=tn("text"),[m,l]=s.useState([]),[w,z]=s.useState(""),[y,v]=s.useState(f.modelId||as),[U,K]=s.useState(()=>Ge(f.profileId,f.modelId||as)),[g,D]=s.useState(!1),[u,b]=s.useState(null),[S,P]=s.useState(null),h=s.useRef(null),C=s.useRef(null);s.useEffect(()=>{let p=!0;return(async()=>{l([]);try{const $=await ni(n);p&&($&&$.messages.length>0?l($.messages):l([{id:"init",role:"model",content:"我已经阅读了这篇笔记。你可以让我提取摘要、关键点,或者直接与我讨论笔记内容。",type:"text",timestamp:Date.now()}]))}catch($){console.error("Failed to load chat history",$)}})(),()=>{p=!1}},[n]),s.useEffect(()=>{m.length>0&&ii(n,m).catch(console.error)},[m,n]),s.useEffect(()=>{h.current&&(h.current.scrollTop=h.current.scrollHeight)},[m]),s.useEffect(()=>{C.current&&(C.current.style.height="auto",C.current.style.height=`${Math.min(C.current.scrollHeight,120)}px`)},[w]);const E=s.useCallback(()=>{S&&(S.abort(),P(null),D(!1),l(p=>[...p,{id:Date.now().toString(),role:"model",content:"🚫 已停止生成",type:"text",timestamp:Date.now()}]))},[S]),L=s.useCallback(async()=>{if(!w.trim()||g)return;const p={id:Date.now().toString(),role:"user",content:w,type:"text",timestamp:Date.now()};l($=>[...$,p]),z(""),D(!0),C.current&&(C.current.style.height="auto");const I=new AbortController;P(I);try{const $=m.concat(p).map(B=>({role:B.role==="model"?"assistant":"user",content:[{type:"text",text:B.content}]}));if($.length<=2){const B=`Context:
|
|
124
124
|
${i}
|
|
125
125
|
|
|
126
|
-
Task: ${p.content}`,A=$.length-1;$[A].content=[{type:"text",text:B}]}const N=(Date.now()+1).toString();b(N),l(B=>[...B,{id:N,role:"model",content:"正在思考...",type:"text",timestamp:Date.now()}]),await Qn($,{model:U||y,onProgress:B=>{l(A=>A.map(ee=>ee.id===N?{...ee,content:B}:ee))},signal:I.signal})}catch($){$.name!=="AbortError"&&l(N=>[...N,{id:Date.now().toString(),role:"model",content:`Error: ${$.message||"Something went wrong"}`,type:"text",timestamp:Date.now()}])}finally{D(!1),P(null),b(null)}},[w,g,m,i,y,U]),F=s.useCallback(async()=>{if(g)return;D(!0);const p={id:Date.now().toString(),role:"user",content:"提取知识点",type:"text",timestamp:Date.now()};l(N=>[...N,p]);const I=new AbortController;P(I);const $=(Date.now()+1).toString();l(N=>[...N,{id:$,role:"model",content:"正在分析笔记内容并提取知识点...",type:"text",timestamp:Date.now()}]);try{const N=await Jn(i,{title:r,model:U||y,signal:I.signal});l(B=>B.map(A=>A.id===$?{...A,content:"知识点提取完成:",type:"extraction-result",data:N}:A))}catch(N){N.name!=="AbortError"&&l(B=>B.map(A=>A.id===$?{...A,content:`提取失败: ${N.message}`}:A))}finally{D(!1),P(null)}},[g,i,r,y,U]),V=p=>{p.key==="Enter"&&!p.shiftKey&&(p.preventDefault(),L())},Z=s.useCallback(p=>{if(!p){R.warning("没有可复制的内容");return}navigator.clipboard.writeText(p).then(()=>{R.success("复制成功")}).catch(()=>{R.error("复制失败")})},[]),H=s.useCallback(p=>p.type==="text"?p.content:p.type==="extraction-result"&&p.data?gs(p.data):"",[]),O=s.useCallback(p=>{if(p.type==="extraction-result"&&p.data)try{const I=ti(p.data,{format:"markdown",includeSource:!0,includeTags:!0});oi(I.content,I.filename,I.mimeType)}catch(I){console.error("Failed to export",I),R.error("导出失败")}},[]);return e.jsxDEV("div",{className:"kb-extraction-chat",children:[e.jsxDEV("div",{className:"kb-extraction-chat__header",children:e.jsxDEV("div",{className:"kb-extraction-chat__title",children:[e.jsxDEV(Ce,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:427,columnNumber:11},void 0),e.jsxDEV("span",{children:"知识提取 & 对话"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:428,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:426,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:425,columnNumber:7},void 0),e.jsxDEV("div",{className:"kb-extraction-chat__messages",ref:h,children:m.map(p=>e.jsxDEV("div",{className:`kb-message kb-message--${p.role}`,children:[e.jsxDEV("div",{className:"kb-message__avatar",children:p.role==="user"?e.jsxDEV(Ve,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:436,columnNumber:38},void 0):e.jsxDEV(on,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:436,columnNumber:49},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:435,columnNumber:13},void 0),e.jsxDEV("div",{className:"kb-message__body",children:[e.jsxDEV("div",{className:"kb-message__content",children:p.role==="model"?e.jsxDEV("div",{className:"kb-message__content-scroll",children:p.type==="text"?p.id===u&&(p.content==="正在思考..."||p.content==="正在分析笔记内容并提取知识点...")?e.jsxDEV("div",{className:"kb-message__thinking","aria-label":"思考中",children:[e.jsxDEV("span",{className:"kb-message__thinking-text",children:p.content.replace(/\.+$/,"")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:445,columnNumber:27},void 0),e.jsxDEV("span",{className:"kb-message__thinking-dots",children:[e.jsxDEV("span",{children:"."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:447,columnNumber:29},void 0),e.jsxDEV("span",{children:"."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:447,columnNumber:43},void 0),e.jsxDEV("span",{children:"."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:447,columnNumber:57},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:446,columnNumber:27},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:444,columnNumber:25},void 0):p.content?e.jsxDEV("div",{className:"kb-message__markdown-wrap",children:e.jsxDEV(Me,{markdown:p.content,readOnly:!0,showModeSwitch:!1,initialMode:"wysiwyg",className:"kb-extraction-markdown"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:452,columnNumber:27},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:451,columnNumber:25},void 0):null:e.jsxDEV(ts,{result:p.data},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:462,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:441,columnNumber:19},void 0):p.type==="text"?e.jsxDEV("div",{className:"kb-message__text",children:p.content},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:467,columnNumber:21},void 0):e.jsxDEV(ts,{result:p.data},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:469,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:439,columnNumber:15},void 0),p.role==="model"&&e.jsxDEV("div",{className:"kb-message__actions",children:[e.jsxDEV("button",{className:"kb-message__action-btn",onClick:()=>Z(H(p)),title:"复制",children:e.jsxDEV(Ke,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:480,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:475,columnNumber:19},void 0),e.jsxDEV("button",{className:"kb-message__action-btn",onClick:()=>{const I=H(p);I&&(d==null||d(I))},title:"插入到笔记",children:e.jsxDEV(Un,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:490,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:482,columnNumber:19},void 0),p.type==="extraction-result"&&e.jsxDEV("button",{className:"kb-message__action-btn",onClick:()=>O(p),title:"导出 Markdown",children:e.jsxDEV(Se,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:498,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:493,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:474,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:438,columnNumber:13},void 0)]},p.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:434,columnNumber:11},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:432,columnNumber:7},void 0),e.jsxDEV("div",{className:"kb-extraction-chat__input-area",children:[e.jsxDEV("div",{className:"kb-extraction-chat__input-wrapper",children:e.jsxDEV("textarea",{ref:C,className:"kb-extraction-chat__textarea",value:w,onChange:p=>z(p.target.value),onKeyDown:V,placeholder:"输入问题,与 AI 讨论笔记内容...",disabled:g,rows:1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:510,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:509,columnNumber:9},void 0),e.jsxDEV("div",{className:"kb-extraction-chat__input-actions",children:[e.jsxDEV("div",{className:"kb-extraction-chat__model-selector",children:e.jsxDEV(rn,{value:y,valueRef:U,onChange:(p,I)=>{v(p),K(I||Ge(null,p))},variant:"capsule"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:523,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:522,columnNumber:11},void 0),e.jsxDEV("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[e.jsxDEV("button",{className:"kb-extraction-chat__icon-btn",onClick:F,title:"一键提取知识点",disabled:g,children:e.jsxDEV(Ce,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:541,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:535,columnNumber:13},void 0),e.jsxDEV("button",{className:`kb-extraction-chat__send-btn ${w.trim()||g?"kb-extraction-chat__send-btn--active":""}`,onClick:g?E:L,disabled:!w.trim()&&!g,title:g?"停止生成":"发送",children:g?e.jsxDEV(gn,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:554,columnNumber:28},void 0):e.jsxDEV(dn,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:554,columnNumber:55},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:544,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:534,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:521,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:508,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:424,columnNumber:5},void 0)},ts=({result:n})=>{const i=ln.useMemo(()=>gs(n),[n]);return e.jsxDEV("div",{className:"kb-extraction-result-view",children:e.jsxDEV(Me,{markdown:i,readOnly:!0,showModeSwitch:!1,initialMode:"wysiwyg",className:"kb-extraction-markdown"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:573,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:572,columnNumber:5},void 0)},os=[{label:"更新时间",value:"updatedAt"},{label:"创建时间",value:"createdAt"},{label:"标题",value:"title"}],di=({value:n,onChange:i})=>{var f;const r=((f=os.find(m=>m.value===n.field))==null?void 0:f.label)||"排序",d=m=>{const l=m.value;["asc","desc"].includes(l)?i({...n,order:l}):l===n.field?i({...n,order:n.order==="asc"?"desc":"asc"}):i({...n,field:l,order:l==="title"?"asc":"desc"})},k=[{content:"排序字段",disabled:!0,className:"kb-sort-dropdown__header"},...os.map(m=>({content:m.label,value:m.value,prefixIcon:n.field===m.value?e.jsxDEV(de,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:47,columnNumber:47},void 0):e.jsxDEV("div",{style:{width:14}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:47,columnNumber:69},void 0)})),{divider:!0},{content:"排序方式",disabled:!0,className:"kb-sort-dropdown__header"},{content:"升序",value:"asc",prefixIcon:n.order==="asc"?e.jsxDEV(de,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:58,columnNumber:43},void 0):e.jsxDEV("div",{style:{width:14}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:58,columnNumber:65},void 0),suffixIcon:e.jsxDEV(es,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:59,columnNumber:19},void 0)},{content:"降序",value:"desc",prefixIcon:n.order==="desc"?e.jsxDEV(de,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:64,columnNumber:44},void 0):e.jsxDEV("div",{style:{width:14}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:64,columnNumber:66},void 0),suffixIcon:e.jsxDEV(Je,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:65,columnNumber:19},void 0)}];return e.jsxDEV(ms,{options:k,onClick:d,trigger:"click",minColumnWidth:120,children:e.jsxDEV(be,{variant:"outline",size:"small",className:"kb-sort-trigger",children:[n.order==="asc"?e.jsxDEV(es,{size:14,style:{marginRight:4}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:77,columnNumber:34},void 0):e.jsxDEV(Je,{size:14,style:{marginRight:4}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:77,columnNumber:85},void 0),r]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:76,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:70,columnNumber:5},void 0)},ui=({initialNoteId:n})=>{var Oe;const[i,r]=s.useState([]),[d,k]=s.useState([]),[f,m]=s.useState([]),[l,w]=s.useState(null),[z,y]=s.useState([]),[v,U]=s.useState({}),[K,g]=s.useState(null),[D,u]=s.useState(new Set),[b,S]=s.useState(null),[P,h]=s.useState(""),[C,E]=s.useState(_.loadSortPreference?_.loadSortPreference():{field:"updatedAt",order:"desc"}),[L,F]=s.useState([]),[V,Z]=s.useState(!1),[H,O]=s.useState(!1),[p,I]=s.useState(!1),[$,N]=s.useState(null),B=s.useRef(null),A=s.useRef(null),[ee,ne]=s.useState(!1),[ae,q]=s.useState("related"),[X,G]=s.useState(280),[Q,Re]=s.useState(300),le=s.useRef(!1),ce=s.useRef(!1),je=s.useRef(null);s.useEffect(()=>{const a=localStorage.getItem("kb-sidebar-width");if(a){const t=parseInt(a,10);!isNaN(t)&&t>100&&t<800&&G(t)}const o=localStorage.getItem("kb-right-sidebar-width");if(o){const t=parseInt(o,10);!isNaN(t)&&t>100&&t<800&&Re(t)}},[]),s.useEffect(()=>{const a=t=>{if(!je.current)return;const c=je.current.getBoundingClientRect();if(le.current){t.preventDefault();const x=Math.max(200,Math.min(600,t.clientX-c.left));G(x)}else if(ce.current){t.preventDefault();const x=Math.max(200,Math.min(600,c.right-t.clientX));Re(x)}},o=()=>{le.current&&(le.current=!1,localStorage.setItem("kb-sidebar-width",X.toString()),document.body.style.cursor=""),ce.current&&(ce.current=!1,localStorage.setItem("kb-right-sidebar-width",Q.toString()),document.body.style.cursor="")};return le.current||ce.current?(document.addEventListener("mousemove",a),document.addEventListener("mouseup",o)):document.addEventListener("mousemove",a),document.addEventListener("mousemove",a),document.addEventListener("mouseup",o),()=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",o)}},[X,Q]);const ps=a=>{a.preventDefault(),le.current=!0,document.body.style.cursor="col-resize"},xs=a=>{a.preventDefault(),ce.current=!0,document.body.style.cursor="col-resize"},[ze,ks]=s.useState(null),$e=s.useRef(!1),Le=s.useRef(!1);s.useEffect(()=>{if($e.current)return;$e.current=!0,(async()=>{await _.initialize(),await W();try{const t=await _.getStorageUsage();ks(t)}catch{}if(n){se(n);return}const o=window.__kbPendingNavigation;if(o){window.__kbPendingNavigation=null;const{directoryName:t,autoCreateNote:c}=o;if(t){const j=(await _.getAllDirectories()).find(T=>T.name===t);if(j&&(g(j.id),u(T=>{const M=new Set(T);return M.add(j.id),M}),c)){const T=t==="Skill"?"新Skill":"新笔记",M=await _.createNote(T,j.id);await W(),u(De=>{const ue=new Set(De);return ue.add(j.id),ue}),S(M.id);const J=await _.getNoteById(M.id);w(J),y([])}}}})()},[]);const W=s.useCallback(async()=>{const[a,o,t]=await Promise.all([_.getAllDirectories(),_.getAllNoteMetas(),_.getAllTags()]),c=Array.from(new Map(a.map(T=>[T.id,T])).values());r(c);const x=Array.from(new Map(o.map(T=>[T.id,T])).values());k(x);const j=Array.from(new Map(t.map(T=>[T.id,T])).values());m(j),!K&&!b&&c.length>0&&(g(c[0].id),u(new Set([c[0].id]))),await ws(x)},[K,b]),ws=s.useCallback(async a=>{try{const[o,t]=await Promise.all([_.getAllTags(),_.getAllNoteTags()]),c=new Map(o.map(j=>[j.id,j])),x={};for(const j of a)x[j.id]=[];for(const j of t)if(x[j.noteId]&&c.has(j.tagId)){const T=c.get(j.tagId);T&&(x[j.noteId].some(M=>M.id===T.id)||x[j.noteId].push(T))}for(const j in x)x[j].sort((T,M)=>T.name.localeCompare(M.name));U(x)}catch(o){console.error("Failed to refresh note tags map:",o)}},[]);s.useEffect(()=>{if(!P.trim()){N(null);return}return B.current&&clearTimeout(B.current),B.current=setTimeout(async()=>{try{const o=await cs().search(P,{limit:50,filter:K?{directoryId:K}:{}});N(o)}catch{N(null)}},300),()=>{B.current&&clearTimeout(B.current)}},[P,K]);const ie=s.useMemo(()=>{if($&&P.trim()){const o=new Set($.map(x=>x.id)),t=new Map($.map((x,j)=>[x.id,j]));let c=d.filter(x=>o.has(x.id));if(L.length>0){const x=new Set(L);c=c.filter(j=>(v[j.id]||[]).some(M=>x.has(M.id)))}return c.sort((x,j)=>(t.get(x.id)??0)-(t.get(j.id)??0))}let a=d;if(L.length>0){const o=new Set(L);a=a.filter(t=>(v[t.id]||[]).some(x=>o.has(x.id)))}return _.sortNoteMetas(a,C)},[d,K,P,L,C,v,$]),hs=s.useMemo(()=>{const a={},o=new Set;for(const t of ie)o.has(t.id)||(o.add(t.id),a[t.directoryId]=(a[t.directoryId]||0)+1);return a},[ie]),js=s.useMemo(()=>{var o;const a={};for(const t of ie){const c=a[o=t.directoryId]??(a[o]=[]);c.some(x=>x.id===t.id)||c.push(t)}return a},[ie]),ye=s.useCallback(async a=>{await _.createDirectory(a),await W()},[W]),ys=s.useCallback(async(a,o)=>{await _.updateDirectory(a,{name:o}),await W()},[W]),vs=s.useCallback(async a=>{const o=i.find(c=>c.id===a);if(!o)return;const t=Qe.confirm({header:"确认删除目录",body:`确定要删除目录 "${o.name}" 及其下的所有笔记吗?此操作不可撤销。`,onConfirm:async()=>{var c;try{await _.deleteDirectory(a),K===a&&(g(((c=i[0])==null?void 0:c.id)||null),S(null),w(null)),await W(),R.success("目录已删除")}catch(x){R.error(`删除失败: ${x.message}`)}t.destroy()},onClose:()=>{t.destroy()}})},[W,K,i]),Es=s.useCallback(async a=>{try{await _.duplicateDirectory(a),await W(),R.success("目录复制成功")}catch(o){R.error(`复制目录失败: ${o.message}`)}},[W]),Ds=s.useCallback(a=>{u(o=>{const t=new Set(o);return t.has(a)?t.delete(a):t.add(a),t})},[]),se=s.useCallback(async a=>{if(S(a),g(null),y(v[a]||[]),a.startsWith(re)){const t=a.slice(re.length),c=Be.find(x=>x.id===t);if(c){const x=["image","inspiration","grid_image"],j=["ppt"],T=c.mcpTool&&x.some(J=>c.mcpTool.includes(J))?"image":c.mcpTool&&j.some(J=>c.mcpTool.includes(J))?"ppt":void 0,M={id:a,title:c.name,content:c.description||"",directoryId:"",createdAt:0,updatedAt:0,metadata:{...T?{outputType:T}:{}}};w(M),y([])}return}if(a.startsWith(oe)){const t=a.slice(oe.length),c=cn(t);if(c){const x={id:a,title:c.name,content:c.content||c.description||"",directoryId:"",createdAt:0,updatedAt:0,metadata:{...c.outputType?{outputType:c.outputType}:{},...c.category?{category:c.category}:{}}};w(x),y([])}return}const o=await _.getNoteById(a);if(w(o),o){const t=await _.getTagsForNote(o.id);y(t),u(c=>{const x=new Set(c);return x.add(o.directoryId),x})}},[i,v]),ve=s.useCallback(async a=>{const o=new Set(d.filter(M=>M.directoryId===a).map(M=>M.title)),t=i.find(M=>M.id===a),c=(t==null?void 0:t.name)==="Skill"?"新Skill":"新笔记";let x=c,j=1;for(;o.has(x);)x=`${c} ${j}`,j++;const T=await _.createNote(x,a);await W(),u(M=>{const J=new Set(M);return J.add(a),J}),se(T.id)},[W,se,d,i]),Ee=s.useCallback(async(a,o)=>{await _.updateNote(a,o),k(t=>t.map(c=>c.id===a?{...c,...o,updatedAt:Date.now()}:c)),(l==null?void 0:l.id)===a&&w(t=>t&&{...t,...o,updatedAt:Date.now()});try{const t=window.__drawnixBoard;if(t&&t.children){const{Transforms:c}=await Ue(async()=>{const{Transforms:x}=await import("./index-BIv91qW9.js").then(j=>j.iH);return{Transforms:x}},__vite__mapDeps([0,1]),import.meta.url);t.children.forEach((x,j)=>{if(x.noteId===a){const T={};o.title!==void 0&&(T.title=o.title),o.content!==void 0&&(T.body=o.content),Object.keys(T).length>0&&c.setNode(t,T,[j])}})}}catch(t){console.warn("[KB] Failed to sync note update to canvas card:",t)}},[l]),_s=s.useCallback(async a=>{if(!l)return;const o=l.content?`
|
|
126
|
+
Task: ${p.content}`,A=$.length-1;$[A].content=[{type:"text",text:B}]}const N=(Date.now()+1).toString();b(N),l(B=>[...B,{id:N,role:"model",content:"正在思考...",type:"text",timestamp:Date.now()}]),await Qn($,{model:U||y,onProgress:B=>{l(A=>A.map(ee=>ee.id===N?{...ee,content:B}:ee))},signal:I.signal})}catch($){$.name!=="AbortError"&&l(N=>[...N,{id:Date.now().toString(),role:"model",content:`Error: ${$.message||"Something went wrong"}`,type:"text",timestamp:Date.now()}])}finally{D(!1),P(null),b(null)}},[w,g,m,i,y,U]),F=s.useCallback(async()=>{if(g)return;D(!0);const p={id:Date.now().toString(),role:"user",content:"提取知识点",type:"text",timestamp:Date.now()};l(N=>[...N,p]);const I=new AbortController;P(I);const $=(Date.now()+1).toString();l(N=>[...N,{id:$,role:"model",content:"正在分析笔记内容并提取知识点...",type:"text",timestamp:Date.now()}]);try{const N=await Jn(i,{title:r,model:U||y,signal:I.signal});l(B=>B.map(A=>A.id===$?{...A,content:"知识点提取完成:",type:"extraction-result",data:N}:A))}catch(N){N.name!=="AbortError"&&l(B=>B.map(A=>A.id===$?{...A,content:`提取失败: ${N.message}`}:A))}finally{D(!1),P(null)}},[g,i,r,y,U]),V=p=>{p.key==="Enter"&&!p.shiftKey&&(p.preventDefault(),L())},Z=s.useCallback(p=>{if(!p){R.warning("没有可复制的内容");return}navigator.clipboard.writeText(p).then(()=>{R.success("复制成功")}).catch(()=>{R.error("复制失败")})},[]),H=s.useCallback(p=>p.type==="text"?p.content:p.type==="extraction-result"&&p.data?gs(p.data):"",[]),O=s.useCallback(p=>{if(p.type==="extraction-result"&&p.data)try{const I=ti(p.data,{format:"markdown",includeSource:!0,includeTags:!0});oi(I.content,I.filename,I.mimeType)}catch(I){console.error("Failed to export",I),R.error("导出失败")}},[]);return e.jsxDEV("div",{className:"kb-extraction-chat",children:[e.jsxDEV("div",{className:"kb-extraction-chat__header",children:e.jsxDEV("div",{className:"kb-extraction-chat__title",children:[e.jsxDEV(Ce,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:427,columnNumber:11},void 0),e.jsxDEV("span",{children:"知识提取 & 对话"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:428,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:426,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:425,columnNumber:7},void 0),e.jsxDEV("div",{className:"kb-extraction-chat__messages",ref:h,children:m.map(p=>e.jsxDEV("div",{className:`kb-message kb-message--${p.role}`,children:[e.jsxDEV("div",{className:"kb-message__avatar",children:p.role==="user"?e.jsxDEV(Ve,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:436,columnNumber:38},void 0):e.jsxDEV(on,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:436,columnNumber:49},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:435,columnNumber:13},void 0),e.jsxDEV("div",{className:"kb-message__body",children:[e.jsxDEV("div",{className:"kb-message__content",children:p.role==="model"?e.jsxDEV("div",{className:"kb-message__content-scroll",children:p.type==="text"?p.id===u&&(p.content==="正在思考..."||p.content==="正在分析笔记内容并提取知识点...")?e.jsxDEV("div",{className:"kb-message__thinking","aria-label":"思考中",children:[e.jsxDEV("span",{className:"kb-message__thinking-text",children:p.content.replace(/\.+$/,"")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:445,columnNumber:27},void 0),e.jsxDEV("span",{className:"kb-message__thinking-dots",children:[e.jsxDEV("span",{children:"."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:447,columnNumber:29},void 0),e.jsxDEV("span",{children:"."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:447,columnNumber:43},void 0),e.jsxDEV("span",{children:"."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:447,columnNumber:57},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:446,columnNumber:27},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:444,columnNumber:25},void 0):p.content?e.jsxDEV("div",{className:"kb-message__markdown-wrap",children:e.jsxDEV(Me,{markdown:p.content,readOnly:!0,showModeSwitch:!1,initialMode:"wysiwyg",className:"kb-extraction-markdown"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:452,columnNumber:27},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:451,columnNumber:25},void 0):null:e.jsxDEV(ts,{result:p.data},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:462,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:441,columnNumber:19},void 0):p.type==="text"?e.jsxDEV("div",{className:"kb-message__text",children:p.content},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:467,columnNumber:21},void 0):e.jsxDEV(ts,{result:p.data},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:469,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:439,columnNumber:15},void 0),p.role==="model"&&e.jsxDEV("div",{className:"kb-message__actions",children:[e.jsxDEV("button",{className:"kb-message__action-btn",onClick:()=>Z(H(p)),title:"复制",children:e.jsxDEV(Ke,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:480,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:475,columnNumber:19},void 0),e.jsxDEV("button",{className:"kb-message__action-btn",onClick:()=>{const I=H(p);I&&(d==null||d(I))},title:"插入到笔记",children:e.jsxDEV(Un,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:490,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:482,columnNumber:19},void 0),p.type==="extraction-result"&&e.jsxDEV("button",{className:"kb-message__action-btn",onClick:()=>O(p),title:"导出 Markdown",children:e.jsxDEV(Se,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:498,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:493,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:474,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:438,columnNumber:13},void 0)]},p.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:434,columnNumber:11},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:432,columnNumber:7},void 0),e.jsxDEV("div",{className:"kb-extraction-chat__input-area",children:[e.jsxDEV("div",{className:"kb-extraction-chat__input-wrapper",children:e.jsxDEV("textarea",{ref:C,className:"kb-extraction-chat__textarea",value:w,onChange:p=>z(p.target.value),onKeyDown:V,placeholder:"输入问题,与 AI 讨论笔记内容...",disabled:g,rows:1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:510,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:509,columnNumber:9},void 0),e.jsxDEV("div",{className:"kb-extraction-chat__input-actions",children:[e.jsxDEV("div",{className:"kb-extraction-chat__model-selector",children:e.jsxDEV(rn,{value:y,valueRef:U,onChange:(p,I)=>{v(p),K(I||Ge(null,p))},variant:"capsule"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:523,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:522,columnNumber:11},void 0),e.jsxDEV("div",{style:{display:"flex",alignItems:"center",gap:"8px"},children:[e.jsxDEV("button",{className:"kb-extraction-chat__icon-btn",onClick:F,title:"一键提取知识点",disabled:g,children:e.jsxDEV(Ce,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:541,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:535,columnNumber:13},void 0),e.jsxDEV("button",{className:`kb-extraction-chat__send-btn ${w.trim()||g?"kb-extraction-chat__send-btn--active":""}`,onClick:g?E:L,disabled:!w.trim()&&!g,title:g?"停止生成":"发送",children:g?e.jsxDEV(gn,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:554,columnNumber:28},void 0):e.jsxDEV(dn,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:554,columnNumber:55},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:544,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:534,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:521,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:508,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:424,columnNumber:5},void 0)},ts=({result:n})=>{const i=ln.useMemo(()=>gs(n),[n]);return e.jsxDEV("div",{className:"kb-extraction-result-view",children:e.jsxDEV(Me,{markdown:i,readOnly:!0,showModeSwitch:!1,initialMode:"wysiwyg",className:"kb-extraction-markdown"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:573,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBKnowledgeExtraction.tsx",lineNumber:572,columnNumber:5},void 0)},os=[{label:"更新时间",value:"updatedAt"},{label:"创建时间",value:"createdAt"},{label:"标题",value:"title"}],di=({value:n,onChange:i})=>{var f;const r=((f=os.find(m=>m.value===n.field))==null?void 0:f.label)||"排序",d=m=>{const l=m.value;["asc","desc"].includes(l)?i({...n,order:l}):l===n.field?i({...n,order:n.order==="asc"?"desc":"asc"}):i({...n,field:l,order:l==="title"?"asc":"desc"})},k=[{content:"排序字段",disabled:!0,className:"kb-sort-dropdown__header"},...os.map(m=>({content:m.label,value:m.value,prefixIcon:n.field===m.value?e.jsxDEV(de,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:47,columnNumber:47},void 0):e.jsxDEV("div",{style:{width:14}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:47,columnNumber:69},void 0)})),{divider:!0},{content:"排序方式",disabled:!0,className:"kb-sort-dropdown__header"},{content:"升序",value:"asc",prefixIcon:n.order==="asc"?e.jsxDEV(de,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:58,columnNumber:43},void 0):e.jsxDEV("div",{style:{width:14}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:58,columnNumber:65},void 0),suffixIcon:e.jsxDEV(es,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:59,columnNumber:19},void 0)},{content:"降序",value:"desc",prefixIcon:n.order==="desc"?e.jsxDEV(de,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:64,columnNumber:44},void 0):e.jsxDEV("div",{style:{width:14}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:64,columnNumber:66},void 0),suffixIcon:e.jsxDEV(Je,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:65,columnNumber:19},void 0)}];return e.jsxDEV(ms,{options:k,onClick:d,trigger:"click",minColumnWidth:120,children:e.jsxDEV(be,{variant:"outline",size:"small",className:"kb-sort-trigger",children:[n.order==="asc"?e.jsxDEV(es,{size:14,style:{marginRight:4}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:77,columnNumber:34},void 0):e.jsxDEV(Je,{size:14,style:{marginRight:4}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:77,columnNumber:85},void 0),r]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:76,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KBSortDropdown.tsx",lineNumber:70,columnNumber:5},void 0)},ui=({initialNoteId:n})=>{var Oe;const[i,r]=s.useState([]),[d,k]=s.useState([]),[f,m]=s.useState([]),[l,w]=s.useState(null),[z,y]=s.useState([]),[v,U]=s.useState({}),[K,g]=s.useState(null),[D,u]=s.useState(new Set),[b,S]=s.useState(null),[P,h]=s.useState(""),[C,E]=s.useState(_.loadSortPreference?_.loadSortPreference():{field:"updatedAt",order:"desc"}),[L,F]=s.useState([]),[V,Z]=s.useState(!1),[H,O]=s.useState(!1),[p,I]=s.useState(!1),[$,N]=s.useState(null),B=s.useRef(null),A=s.useRef(null),[ee,ne]=s.useState(!1),[ae,q]=s.useState("related"),[X,G]=s.useState(280),[Q,Re]=s.useState(300),le=s.useRef(!1),ce=s.useRef(!1),je=s.useRef(null);s.useEffect(()=>{const a=localStorage.getItem("kb-sidebar-width");if(a){const t=parseInt(a,10);!isNaN(t)&&t>100&&t<800&&G(t)}const o=localStorage.getItem("kb-right-sidebar-width");if(o){const t=parseInt(o,10);!isNaN(t)&&t>100&&t<800&&Re(t)}},[]),s.useEffect(()=>{const a=t=>{if(!je.current)return;const c=je.current.getBoundingClientRect();if(le.current){t.preventDefault();const x=Math.max(200,Math.min(600,t.clientX-c.left));G(x)}else if(ce.current){t.preventDefault();const x=Math.max(200,Math.min(600,c.right-t.clientX));Re(x)}},o=()=>{le.current&&(le.current=!1,localStorage.setItem("kb-sidebar-width",X.toString()),document.body.style.cursor=""),ce.current&&(ce.current=!1,localStorage.setItem("kb-right-sidebar-width",Q.toString()),document.body.style.cursor="")};return le.current||ce.current?(document.addEventListener("mousemove",a),document.addEventListener("mouseup",o)):document.addEventListener("mousemove",a),document.addEventListener("mousemove",a),document.addEventListener("mouseup",o),()=>{document.removeEventListener("mousemove",a),document.removeEventListener("mouseup",o)}},[X,Q]);const ps=a=>{a.preventDefault(),le.current=!0,document.body.style.cursor="col-resize"},xs=a=>{a.preventDefault(),ce.current=!0,document.body.style.cursor="col-resize"},[ze,ks]=s.useState(null),$e=s.useRef(!1),Le=s.useRef(!1);s.useEffect(()=>{if($e.current)return;$e.current=!0,(async()=>{await _.initialize(),await W();try{const t=await _.getStorageUsage();ks(t)}catch{}if(n){se(n);return}const o=window.__kbPendingNavigation;if(o){window.__kbPendingNavigation=null;const{directoryName:t,autoCreateNote:c}=o;if(t){const j=(await _.getAllDirectories()).find(T=>T.name===t);if(j&&(g(j.id),u(T=>{const M=new Set(T);return M.add(j.id),M}),c)){const T=t==="Skill"?"新Skill":"新笔记",M=await _.createNote(T,j.id);await W(),u(De=>{const ue=new Set(De);return ue.add(j.id),ue}),S(M.id);const J=await _.getNoteById(M.id);w(J),y([])}}}})()},[]);const W=s.useCallback(async()=>{const[a,o,t]=await Promise.all([_.getAllDirectories(),_.getAllNoteMetas(),_.getAllTags()]),c=Array.from(new Map(a.map(T=>[T.id,T])).values());r(c);const x=Array.from(new Map(o.map(T=>[T.id,T])).values());k(x);const j=Array.from(new Map(t.map(T=>[T.id,T])).values());m(j),!K&&!b&&c.length>0&&(g(c[0].id),u(new Set([c[0].id]))),await ws(x)},[K,b]),ws=s.useCallback(async a=>{try{const[o,t]=await Promise.all([_.getAllTags(),_.getAllNoteTags()]),c=new Map(o.map(j=>[j.id,j])),x={};for(const j of a)x[j.id]=[];for(const j of t)if(x[j.noteId]&&c.has(j.tagId)){const T=c.get(j.tagId);T&&(x[j.noteId].some(M=>M.id===T.id)||x[j.noteId].push(T))}for(const j in x)x[j].sort((T,M)=>T.name.localeCompare(M.name));U(x)}catch(o){console.error("Failed to refresh note tags map:",o)}},[]);s.useEffect(()=>{if(!P.trim()){N(null);return}return B.current&&clearTimeout(B.current),B.current=setTimeout(async()=>{try{const o=await cs().search(P,{limit:50,filter:K?{directoryId:K}:{}});N(o)}catch{N(null)}},300),()=>{B.current&&clearTimeout(B.current)}},[P,K]);const ie=s.useMemo(()=>{if($&&P.trim()){const o=new Set($.map(x=>x.id)),t=new Map($.map((x,j)=>[x.id,j]));let c=d.filter(x=>o.has(x.id));if(L.length>0){const x=new Set(L);c=c.filter(j=>(v[j.id]||[]).some(M=>x.has(M.id)))}return c.sort((x,j)=>(t.get(x.id)??0)-(t.get(j.id)??0))}let a=d;if(L.length>0){const o=new Set(L);a=a.filter(t=>(v[t.id]||[]).some(x=>o.has(x.id)))}return _.sortNoteMetas(a,C)},[d,K,P,L,C,v,$]),hs=s.useMemo(()=>{const a={},o=new Set;for(const t of ie)o.has(t.id)||(o.add(t.id),a[t.directoryId]=(a[t.directoryId]||0)+1);return a},[ie]),js=s.useMemo(()=>{var o;const a={};for(const t of ie){const c=a[o=t.directoryId]??(a[o]=[]);c.some(x=>x.id===t.id)||c.push(t)}return a},[ie]),ye=s.useCallback(async a=>{await _.createDirectory(a),await W()},[W]),ys=s.useCallback(async(a,o)=>{await _.updateDirectory(a,{name:o}),await W()},[W]),vs=s.useCallback(async a=>{const o=i.find(c=>c.id===a);if(!o)return;const t=Qe.confirm({header:"确认删除目录",body:`确定要删除目录 "${o.name}" 及其下的所有笔记吗?此操作不可撤销。`,onConfirm:async()=>{var c;try{await _.deleteDirectory(a),K===a&&(g(((c=i[0])==null?void 0:c.id)||null),S(null),w(null)),await W(),R.success("目录已删除")}catch(x){R.error(`删除失败: ${x.message}`)}t.destroy()},onClose:()=>{t.destroy()}})},[W,K,i]),Es=s.useCallback(async a=>{try{await _.duplicateDirectory(a),await W(),R.success("目录复制成功")}catch(o){R.error(`复制目录失败: ${o.message}`)}},[W]),Ds=s.useCallback(a=>{u(o=>{const t=new Set(o);return t.has(a)?t.delete(a):t.add(a),t})},[]),se=s.useCallback(async a=>{if(S(a),g(null),y(v[a]||[]),a.startsWith(re)){const t=a.slice(re.length),c=Be.find(x=>x.id===t);if(c){const x=["image","inspiration","grid_image"],j=["ppt"],T=c.mcpTool&&x.some(J=>c.mcpTool.includes(J))?"image":c.mcpTool&&j.some(J=>c.mcpTool.includes(J))?"ppt":void 0,M={id:a,title:c.name,content:c.description||"",directoryId:"",createdAt:0,updatedAt:0,metadata:{...T?{outputType:T}:{}}};w(M),y([])}return}if(a.startsWith(oe)){const t=a.slice(oe.length),c=cn(t);if(c){const x={id:a,title:c.name,content:c.content||c.description||"",directoryId:"",createdAt:0,updatedAt:0,metadata:{...c.outputType?{outputType:c.outputType}:{},...c.category?{category:c.category}:{}}};w(x),y([])}return}const o=await _.getNoteById(a);if(w(o),o){const t=await _.getTagsForNote(o.id);y(t),u(c=>{const x=new Set(c);return x.add(o.directoryId),x})}},[i,v]),ve=s.useCallback(async a=>{const o=new Set(d.filter(M=>M.directoryId===a).map(M=>M.title)),t=i.find(M=>M.id===a),c=(t==null?void 0:t.name)==="Skill"?"新Skill":"新笔记";let x=c,j=1;for(;o.has(x);)x=`${c} ${j}`,j++;const T=await _.createNote(x,a);await W(),u(M=>{const J=new Set(M);return J.add(a),J}),se(T.id)},[W,se,d,i]),Ee=s.useCallback(async(a,o)=>{await _.updateNote(a,o),k(t=>t.map(c=>c.id===a?{...c,...o,updatedAt:Date.now()}:c)),(l==null?void 0:l.id)===a&&w(t=>t&&{...t,...o,updatedAt:Date.now()});try{const t=window.__drawnixBoard;if(t&&t.children){const{Transforms:c}=await Ue(async()=>{const{Transforms:x}=await import("./index-Diazikky.js").then(j=>j.iH);return{Transforms:x}},__vite__mapDeps([0,1]),import.meta.url);t.children.forEach((x,j)=>{if(x.noteId===a){const T={};o.title!==void 0&&(T.title=o.title),o.content!==void 0&&(T.body=o.content),Object.keys(T).length>0&&c.setNode(t,T,[j])}})}}catch(t){console.warn("[KB] Failed to sync note update to canvas card:",t)}},[l]),_s=s.useCallback(async a=>{if(!l)return;const o=l.content?`
|
|
127
127
|
|
|
128
|
-
`:"",t=(l.content||"")+o+a;await Ee(l.id,{content:t}),R.success("已插入到笔记末尾")},[l,Ee]),Us=s.useCallback(async a=>{var t,c;const o=window.__drawnixBoard;if(!o){R.warning("请先打开画布");return}try{if(o.children.find(te=>te.noteId===a.id)&&!window.confirm("画布中已存在关联该笔记的卡片,是否再次插入?"))return;const j=await _.getNoteById(a.id);if(!j){R.error("获取笔记内容失败");return}const{getViewportOrigination:T}=await Ue(async()=>{const{getViewportOrigination:te}=await import("./index-BIv91qW9.js").then(_e=>_e.iH);return{getViewportOrigination:te}},__vite__mapDeps([0,1]),import.meta.url),M=T(o),J=((t=o.host)==null?void 0:t.clientWidth)||800,De=((c=o.host)==null?void 0:c.clientHeight)||600,ue=Math.round(window.innerWidth*.5),He=180,Xe=((M==null?void 0:M[0])??0)+J/2-ue/2,Ye=((M==null?void 0:M[1])??0)+De/2-He/2,{Transforms:$s}=await Ue(async()=>{const{Transforms:te}=await import("./index-BIv91qW9.js").then(_e=>_e.iH);return{Transforms:te}},__vite__mapDeps([0,1]),import.meta.url),Ls={type:"card",id:`card-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,title:j.title||"无标题",body:j.content||"",noteId:j.id,fillColor:"#FA8C16",points:[[Xe,Ye],[Xe+ue,Ye+He]]};$s.insertNode(o,Ls,[o.children.length]),R.success("已插入到画布")}catch(x){console.error("[KB] Failed to insert note to canvas:",x),R.error(`插入失败: ${x.message}`)}},[]),Ks=s.useCallback(async a=>{try{await _.duplicateNote(a),await W(),R.success("笔记复制成功")}catch(o){R.error(`复制笔记失败: ${o.message}`)}},[W]),Bs=s.useCallback(async a=>{if(a.startsWith(re)){R.warning("系统内置 Skill,不可删除");return}if(a.startsWith(oe)){R.warning("外部 Skill,不可在此删除(请在设置中管理外部 Skill 包)");return}const o=d.find(c=>c.id===a);if(!o)return;const t=Qe.confirm({header:"确认删除笔记",body:`确定要删除笔记 "${o.title||"无标题"}" 吗?此操作不可撤销。`,onConfirm:async()=>{try{await _.deleteNote(a),b===a&&(S(null),w(null),y([])),await W(),R.success("笔记已删除")}catch(c){R.error(`删除失败: ${c.message}`)}t.destroy()},onClose:()=>{t.destroy()}})},[b,W,d]);s.useEffect(()=>{!Le.current&&ie.length>0&&(se(ie[0].id),Le.current=!0)},[ie,se]),s.useEffect(()=>{const a=o=>{const{noteId:t}=o.detail;t&&se(t)};return window.addEventListener("kb:open-note",a),()=>window.removeEventListener("kb:open-note",a)},[se]),s.useEffect(()=>{const a=async o=>{const{directoryName:t,autoCreateNote:c}=o.detail;if(!t)return;window.__kbPendingNavigation&&(window.__kbPendingNavigation=null);const j=(await _.getAllDirectories()).find(T=>T.name===t);j&&(g(j.id),u(T=>{const M=new Set(T);return M.add(j.id),M}),c&&await ve(j.id))};return window.addEventListener("kb:navigate",a),()=>window.removeEventListener("kb:navigate",a)},[ve]);const Vs=s.useCallback(async(a,o)=>{await _.setNoteTags(a,o);const t=await _.getTagsForNote(a);y(t),U(x=>({...x,[a]:t}));const c=await _.getAllTags();m(c)},[]),Ie=s.useCallback(async a=>{const o=await _.createTag(a),t=await _.getAllTags();return m(t),o},[]),qs=s.useCallback(async(a,o)=>{await _.updateTag(a,{name:o});const t=await _.getAllTags();m(t)},[]),Cs=s.useCallback(async a=>{await _.deleteTag(a);const o=await _.getAllTags();if(m(o),l){const t=await _.getTagsForNote(l.id);y(t),U(c=>({...c,[l.id]:t}))}},[l]),Ts=s.useCallback(a=>{E(a),_.saveSortPreference&&_.saveSortPreference(a)},[]);s.useEffect(()=>{if(!H)return;const a=o=>{A.current&&!A.current.contains(o.target)&&O(!1)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[H]);const Ne=s.useRef(null),Pe=s.useCallback(()=>{var a;(a=Ne.current)==null||a.click()},[]),Ss=s.useCallback(async a=>{const o=a.target.files;if(!(!o||!K)){for(const t of Array.from(o)){if(!t.name.endsWith(".md")&&!t.name.endsWith(".markdown"))continue;const c=await t.text();await _.importNoteFromMarkdown(c,K,t.name)}await W(),Ne.current&&(Ne.current.value="")}},[K,W]),Ae=s.useCallback(async()=>{try{const a=await _.exportAsZip(),o=URL.createObjectURL(a),t=document.createElement("a");t.href=o,t.download=`knowledge-base-${new Date().toISOString().slice(0,10)}.zip`,document.body.appendChild(t),t.click(),document.body.removeChild(t),URL.revokeObjectURL(o)}catch(a){console.error("Export failed:",a),R.error("导出失败")}},[]),ge=s.useRef(null),Fe=s.useCallback(()=>{var a;(a=ge.current)==null||a.click()},[]),Ms=s.useCallback(async a=>{var t;const o=(t=a.target.files)==null?void 0:t[0];if(o){try{if(o.name.toLowerCase().endsWith(".zip")){const c=await _.importFromZip(o);c.noteCount===0&&c.dirCount===0?R.warning("导入完成:没有新增内容(可能已存在重复内容)"):R.success(`导入完成:${c.dirCount} 个新目录、${c.noteCount} 篇笔记`)}else{const c=await o.text(),x=JSON.parse(c);if(x.version!==1&&x.version!==2){R.error("不支持的导入格式");return}const j=await _.importAllData(x);R.success(`导入完成:${j.dirCount} 个目录、${j.noteCount} 篇笔记、${j.tagCount} 个标签`)}await W()}catch(c){console.error(c),R.error("导入失败,请确认文件格式正确")}ge.current&&(ge.current.value="")}},[W]),We=s.useCallback(()=>{const a=window.prompt("请输入目录名称","新建目录");a&&ye(a)},[ye]),Rs=s.useCallback(a=>{switch(a.value){case"create-dir":We();break;case"manage-tags":Z(!0);break;case"import-md":Pe();break;case"import-zip":Fe();break;case"export-zip":Ae();break}},[We,Pe,Fe,Ae]),zs=s.useMemo(()=>[{content:"新建目录",value:"create-dir",prefixIcon:e.jsxDEV(wn,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:912,columnNumber:57},void 0)},{content:"管理标签",value:"manage-tags",prefixIcon:e.jsxDEV(Mn,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:913,columnNumber:58},void 0)},{content:"导入 Markdown",value:"import-md",prefixIcon:e.jsxDEV(ss,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:914,columnNumber:63},void 0)},{content:"导入 ZIP",value:"import-zip",prefixIcon:e.jsxDEV(ss,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:915,columnNumber:59},void 0)},{content:"导出 ZIP",value:"export-zip",prefixIcon:e.jsxDEV(Se,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:916,columnNumber:59},void 0)}],[]);return e.jsxDEV("div",{className:"kb-drawer",children:[e.jsxDEV("input",{ref:Ne,type:"file",accept:".md,.markdown",multiple:!0,style:{display:"none"},onChange:Ss},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:922,columnNumber:7},void 0),e.jsxDEV("input",{ref:ge,type:"file",accept:".json,.zip",style:{display:"none"},onChange:Ms},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:930,columnNumber:7},void 0),e.jsxDEV("div",{className:"kb-drawer__body",ref:je,children:[e.jsxDEV("div",{className:"kb-drawer__sidebar",style:{width:X},children:[e.jsxDEV("div",{className:"kb-drawer__toolbar",children:[e.jsxDEV("div",{className:"kb-drawer__search",style:{display:"flex",gap:"8px",alignItems:"center",marginBottom:"8px"},children:[e.jsxDEV(he,{size:"small",prefixIcon:e.jsxDEV(ls,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:947,columnNumber:29},void 0),placeholder:"搜索笔记...",value:P,onChange:a=>h(a),clearable:!0,style:{flex:1}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:945,columnNumber:15},void 0),e.jsxDEV(ms,{trigger:"click",options:zs,onClick:Rs,minColumnWidth:120,maxColumnWidth:200,popupProps:{overlayStyle:{width:200}},children:e.jsxDEV("button",{style:{background:"transparent",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",padding:"4px",color:"var(--td-text-color-secondary)",borderRadius:"4px"},onMouseEnter:a=>a.currentTarget.style.backgroundColor="var(--td-bg-color-container-hover)",onMouseLeave:a=>a.currentTarget.style.backgroundColor="transparent",title:"更多操作",children:e.jsxDEV(un,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:978,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:962,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:954,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:944,columnNumber:13},void 0),e.jsxDEV("div",{className:"kb-drawer__filters",style:{display:"flex",gap:"8px",alignItems:"center"},children:[e.jsxDEV(Fn,{allTags:f,selectedTagIds:L,onSelectedChange:F},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:984,columnNumber:15},void 0),e.jsxDEV("div",{style:{flex:1}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:989,columnNumber:15},void 0),e.jsxDEV(di,{value:C,onChange:Ts},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:990,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:983,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:943,columnNumber:11},void 0),e.jsxDEV($n,{directories:i,notesByDir:js,noteTagsMap:v,noteCounts:hs,selectedDirId:K,selectedNoteId:b,expandedDirIds:D,onSelectDir:a=>{g(a),S(null),w(null)},onToggleExpand:Ds,onCreateDir:ye,onRenameDir:ys,onDeleteDir:vs,onDuplicateDir:Es,onSelectNote:se,onCreateNote:ve,onDeleteNote:Bs,onDuplicateNote:Ks,isCreatingDir:p,onCancelCreateDir:()=>I(!1),onInsertNoteToCanvas:Us},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:995,columnNumber:11},void 0),ze&&e.jsxDEV("div",{className:"kb-drawer__storage-bar",children:[e.jsxDEV(mn,{size:12},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1025,columnNumber:15},void 0),e.jsxDEV("span",{className:"kb-drawer__storage-text",children:["已用 ",li(ze.used)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1026,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1024,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:941,columnNumber:9},void 0),e.jsxDEV("div",{className:"kb-resizer",onMouseDown:ps},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1033,columnNumber:9},void 0),e.jsxDEV("div",{className:"kb-drawer__editor",children:e.jsxDEV(An,{note:l,allTags:f,noteTags:z,readOnly:!!(b&&(b.startsWith(re)||b.startsWith(oe))),isSkillDirectory:!!(l&&(((Oe=i.find(a=>a.id===l.directoryId))==null?void 0:Oe.name)==="Skill"||b&&b.startsWith(re)||b&&b.startsWith(oe))),onUpdateNote:Ee,onSetNoteTags:Vs,onCreateTag:Ie},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1037,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1036,columnNumber:9},void 0),l&&e.jsxDEV(e.Fragment,{children:ee?e.jsxDEV("button",{className:"kb-drawer__right-toggle",onClick:()=>ne(!1),title:"展开侧边栏",children:e.jsxDEV(qn,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1064,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1059,columnNumber:15},void 0):e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"kb-resizer",onMouseDown:xs},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1068,columnNumber:17},void 0),e.jsxDEV("div",{className:"kb-drawer__right-sidebar",style:{width:Q},children:[e.jsxDEV("div",{className:"kb-drawer__right-header",children:[e.jsxDEV("div",{className:"kb-drawer__right-tabs",children:[e.jsxDEV("button",{className:`kb-drawer__right-tab ${ae==="related"?"kb-drawer__right-tab--active":""}`,onClick:()=>q("related"),title:"相似笔记",children:e.jsxDEV(fs,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1078,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1073,columnNumber:21},void 0),e.jsxDEV("button",{className:`kb-drawer__right-tab ${ae==="extraction"?"kb-drawer__right-tab--active":""}`,onClick:()=>q("extraction"),title:"知识提取",children:e.jsxDEV(Ce,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1085,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1080,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1072,columnNumber:19},void 0),e.jsxDEV("button",{className:"kb-drawer__right-collapse-btn",onClick:()=>ne(!0),title:"收起侧边栏",children:e.jsxDEV(Bn,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1093,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1088,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1071,columnNumber:19},void 0),e.jsxDEV("div",{className:"kb-drawer__right-content",children:ae==="related"?e.jsxDEV(On,{currentNoteId:l.id,allNotes:d,noteTagsMap:v,onSelectNote:se},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1100,columnNumber:21},void 0):e.jsxDEV(ri,{noteId:l.id,noteContent:l.content,noteTitle:l.title,onSaved:()=>W(),onInsertToNote:_s},l.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1107,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1098,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1069,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1067,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1057,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:939,columnNumber:7},void 0),e.jsxDEV(Wn,{visible:V,onClose:()=>Z(!1),allTags:f,onCreateTag:Ie,onUpdateTag:qs,onDeleteTag:Cs},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1123,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:920,columnNumber:5},void 0)};function li(n){if(n===0)return"0 B";const i=["B","KB","MB","GB"],r=Math.floor(Math.log(n)/Math.log(1024));return`${(n/Math.pow(1024,r)).toFixed(1)} ${i[r]}`}export{ui as default};
|
|
128
|
+
`:"",t=(l.content||"")+o+a;await Ee(l.id,{content:t}),R.success("已插入到笔记末尾")},[l,Ee]),Us=s.useCallback(async a=>{var t,c;const o=window.__drawnixBoard;if(!o){R.warning("请先打开画布");return}try{if(o.children.find(te=>te.noteId===a.id)&&!window.confirm("画布中已存在关联该笔记的卡片,是否再次插入?"))return;const j=await _.getNoteById(a.id);if(!j){R.error("获取笔记内容失败");return}const{getViewportOrigination:T}=await Ue(async()=>{const{getViewportOrigination:te}=await import("./index-Diazikky.js").then(_e=>_e.iH);return{getViewportOrigination:te}},__vite__mapDeps([0,1]),import.meta.url),M=T(o),J=((t=o.host)==null?void 0:t.clientWidth)||800,De=((c=o.host)==null?void 0:c.clientHeight)||600,ue=Math.round(window.innerWidth*.5),He=180,Xe=((M==null?void 0:M[0])??0)+J/2-ue/2,Ye=((M==null?void 0:M[1])??0)+De/2-He/2,{Transforms:$s}=await Ue(async()=>{const{Transforms:te}=await import("./index-Diazikky.js").then(_e=>_e.iH);return{Transforms:te}},__vite__mapDeps([0,1]),import.meta.url),Ls={type:"card",id:`card-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,title:j.title||"无标题",body:j.content||"",noteId:j.id,fillColor:"#FA8C16",points:[[Xe,Ye],[Xe+ue,Ye+He]]};$s.insertNode(o,Ls,[o.children.length]),R.success("已插入到画布")}catch(x){console.error("[KB] Failed to insert note to canvas:",x),R.error(`插入失败: ${x.message}`)}},[]),Ks=s.useCallback(async a=>{try{await _.duplicateNote(a),await W(),R.success("笔记复制成功")}catch(o){R.error(`复制笔记失败: ${o.message}`)}},[W]),Bs=s.useCallback(async a=>{if(a.startsWith(re)){R.warning("系统内置 Skill,不可删除");return}if(a.startsWith(oe)){R.warning("外部 Skill,不可在此删除(请在设置中管理外部 Skill 包)");return}const o=d.find(c=>c.id===a);if(!o)return;const t=Qe.confirm({header:"确认删除笔记",body:`确定要删除笔记 "${o.title||"无标题"}" 吗?此操作不可撤销。`,onConfirm:async()=>{try{await _.deleteNote(a),b===a&&(S(null),w(null),y([])),await W(),R.success("笔记已删除")}catch(c){R.error(`删除失败: ${c.message}`)}t.destroy()},onClose:()=>{t.destroy()}})},[b,W,d]);s.useEffect(()=>{!Le.current&&ie.length>0&&(se(ie[0].id),Le.current=!0)},[ie,se]),s.useEffect(()=>{const a=o=>{const{noteId:t}=o.detail;t&&se(t)};return window.addEventListener("kb:open-note",a),()=>window.removeEventListener("kb:open-note",a)},[se]),s.useEffect(()=>{const a=async o=>{const{directoryName:t,autoCreateNote:c}=o.detail;if(!t)return;window.__kbPendingNavigation&&(window.__kbPendingNavigation=null);const j=(await _.getAllDirectories()).find(T=>T.name===t);j&&(g(j.id),u(T=>{const M=new Set(T);return M.add(j.id),M}),c&&await ve(j.id))};return window.addEventListener("kb:navigate",a),()=>window.removeEventListener("kb:navigate",a)},[ve]);const Vs=s.useCallback(async(a,o)=>{await _.setNoteTags(a,o);const t=await _.getTagsForNote(a);y(t),U(x=>({...x,[a]:t}));const c=await _.getAllTags();m(c)},[]),Ie=s.useCallback(async a=>{const o=await _.createTag(a),t=await _.getAllTags();return m(t),o},[]),qs=s.useCallback(async(a,o)=>{await _.updateTag(a,{name:o});const t=await _.getAllTags();m(t)},[]),Cs=s.useCallback(async a=>{await _.deleteTag(a);const o=await _.getAllTags();if(m(o),l){const t=await _.getTagsForNote(l.id);y(t),U(c=>({...c,[l.id]:t}))}},[l]),Ts=s.useCallback(a=>{E(a),_.saveSortPreference&&_.saveSortPreference(a)},[]);s.useEffect(()=>{if(!H)return;const a=o=>{A.current&&!A.current.contains(o.target)&&O(!1)};return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[H]);const Ne=s.useRef(null),Pe=s.useCallback(()=>{var a;(a=Ne.current)==null||a.click()},[]),Ss=s.useCallback(async a=>{const o=a.target.files;if(!(!o||!K)){for(const t of Array.from(o)){if(!t.name.endsWith(".md")&&!t.name.endsWith(".markdown"))continue;const c=await t.text();await _.importNoteFromMarkdown(c,K,t.name)}await W(),Ne.current&&(Ne.current.value="")}},[K,W]),Ae=s.useCallback(async()=>{try{const a=await _.exportAsZip(),o=URL.createObjectURL(a),t=document.createElement("a");t.href=o,t.download=`knowledge-base-${new Date().toISOString().slice(0,10)}.zip`,document.body.appendChild(t),t.click(),document.body.removeChild(t),URL.revokeObjectURL(o)}catch(a){console.error("Export failed:",a),R.error("导出失败")}},[]),ge=s.useRef(null),Fe=s.useCallback(()=>{var a;(a=ge.current)==null||a.click()},[]),Ms=s.useCallback(async a=>{var t;const o=(t=a.target.files)==null?void 0:t[0];if(o){try{if(o.name.toLowerCase().endsWith(".zip")){const c=await _.importFromZip(o);c.noteCount===0&&c.dirCount===0?R.warning("导入完成:没有新增内容(可能已存在重复内容)"):R.success(`导入完成:${c.dirCount} 个新目录、${c.noteCount} 篇笔记`)}else{const c=await o.text(),x=JSON.parse(c);if(x.version!==1&&x.version!==2){R.error("不支持的导入格式");return}const j=await _.importAllData(x);R.success(`导入完成:${j.dirCount} 个目录、${j.noteCount} 篇笔记、${j.tagCount} 个标签`)}await W()}catch(c){console.error(c),R.error("导入失败,请确认文件格式正确")}ge.current&&(ge.current.value="")}},[W]),We=s.useCallback(()=>{const a=window.prompt("请输入目录名称","新建目录");a&&ye(a)},[ye]),Rs=s.useCallback(a=>{switch(a.value){case"create-dir":We();break;case"manage-tags":Z(!0);break;case"import-md":Pe();break;case"import-zip":Fe();break;case"export-zip":Ae();break}},[We,Pe,Fe,Ae]),zs=s.useMemo(()=>[{content:"新建目录",value:"create-dir",prefixIcon:e.jsxDEV(wn,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:912,columnNumber:57},void 0)},{content:"管理标签",value:"manage-tags",prefixIcon:e.jsxDEV(Mn,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:913,columnNumber:58},void 0)},{content:"导入 Markdown",value:"import-md",prefixIcon:e.jsxDEV(ss,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:914,columnNumber:63},void 0)},{content:"导入 ZIP",value:"import-zip",prefixIcon:e.jsxDEV(ss,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:915,columnNumber:59},void 0)},{content:"导出 ZIP",value:"export-zip",prefixIcon:e.jsxDEV(Se,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:916,columnNumber:59},void 0)}],[]);return e.jsxDEV("div",{className:"kb-drawer",children:[e.jsxDEV("input",{ref:Ne,type:"file",accept:".md,.markdown",multiple:!0,style:{display:"none"},onChange:Ss},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:922,columnNumber:7},void 0),e.jsxDEV("input",{ref:ge,type:"file",accept:".json,.zip",style:{display:"none"},onChange:Ms},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:930,columnNumber:7},void 0),e.jsxDEV("div",{className:"kb-drawer__body",ref:je,children:[e.jsxDEV("div",{className:"kb-drawer__sidebar",style:{width:X},children:[e.jsxDEV("div",{className:"kb-drawer__toolbar",children:[e.jsxDEV("div",{className:"kb-drawer__search",style:{display:"flex",gap:"8px",alignItems:"center",marginBottom:"8px"},children:[e.jsxDEV(he,{size:"small",prefixIcon:e.jsxDEV(ls,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:947,columnNumber:29},void 0),placeholder:"搜索笔记...",value:P,onChange:a=>h(a),clearable:!0,style:{flex:1}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:945,columnNumber:15},void 0),e.jsxDEV(ms,{trigger:"click",options:zs,onClick:Rs,minColumnWidth:120,maxColumnWidth:200,popupProps:{overlayStyle:{width:200}},children:e.jsxDEV("button",{style:{background:"transparent",border:"none",cursor:"pointer",display:"flex",alignItems:"center",justifyContent:"center",padding:"4px",color:"var(--td-text-color-secondary)",borderRadius:"4px"},onMouseEnter:a=>a.currentTarget.style.backgroundColor="var(--td-bg-color-container-hover)",onMouseLeave:a=>a.currentTarget.style.backgroundColor="transparent",title:"更多操作",children:e.jsxDEV(un,{size:18},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:978,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:962,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:954,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:944,columnNumber:13},void 0),e.jsxDEV("div",{className:"kb-drawer__filters",style:{display:"flex",gap:"8px",alignItems:"center"},children:[e.jsxDEV(Fn,{allTags:f,selectedTagIds:L,onSelectedChange:F},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:984,columnNumber:15},void 0),e.jsxDEV("div",{style:{flex:1}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:989,columnNumber:15},void 0),e.jsxDEV(di,{value:C,onChange:Ts},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:990,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:983,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:943,columnNumber:11},void 0),e.jsxDEV($n,{directories:i,notesByDir:js,noteTagsMap:v,noteCounts:hs,selectedDirId:K,selectedNoteId:b,expandedDirIds:D,onSelectDir:a=>{g(a),S(null),w(null)},onToggleExpand:Ds,onCreateDir:ye,onRenameDir:ys,onDeleteDir:vs,onDuplicateDir:Es,onSelectNote:se,onCreateNote:ve,onDeleteNote:Bs,onDuplicateNote:Ks,isCreatingDir:p,onCancelCreateDir:()=>I(!1),onInsertNoteToCanvas:Us},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:995,columnNumber:11},void 0),ze&&e.jsxDEV("div",{className:"kb-drawer__storage-bar",children:[e.jsxDEV(mn,{size:12},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1025,columnNumber:15},void 0),e.jsxDEV("span",{className:"kb-drawer__storage-text",children:["已用 ",li(ze.used)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1026,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1024,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:941,columnNumber:9},void 0),e.jsxDEV("div",{className:"kb-resizer",onMouseDown:ps},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1033,columnNumber:9},void 0),e.jsxDEV("div",{className:"kb-drawer__editor",children:e.jsxDEV(An,{note:l,allTags:f,noteTags:z,readOnly:!!(b&&(b.startsWith(re)||b.startsWith(oe))),isSkillDirectory:!!(l&&(((Oe=i.find(a=>a.id===l.directoryId))==null?void 0:Oe.name)==="Skill"||b&&b.startsWith(re)||b&&b.startsWith(oe))),onUpdateNote:Ee,onSetNoteTags:Vs,onCreateTag:Ie},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1037,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1036,columnNumber:9},void 0),l&&e.jsxDEV(e.Fragment,{children:ee?e.jsxDEV("button",{className:"kb-drawer__right-toggle",onClick:()=>ne(!1),title:"展开侧边栏",children:e.jsxDEV(qn,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1064,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1059,columnNumber:15},void 0):e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"kb-resizer",onMouseDown:xs},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1068,columnNumber:17},void 0),e.jsxDEV("div",{className:"kb-drawer__right-sidebar",style:{width:Q},children:[e.jsxDEV("div",{className:"kb-drawer__right-header",children:[e.jsxDEV("div",{className:"kb-drawer__right-tabs",children:[e.jsxDEV("button",{className:`kb-drawer__right-tab ${ae==="related"?"kb-drawer__right-tab--active":""}`,onClick:()=>q("related"),title:"相似笔记",children:e.jsxDEV(fs,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1078,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1073,columnNumber:21},void 0),e.jsxDEV("button",{className:`kb-drawer__right-tab ${ae==="extraction"?"kb-drawer__right-tab--active":""}`,onClick:()=>q("extraction"),title:"知识提取",children:e.jsxDEV(Ce,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1085,columnNumber:23},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1080,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1072,columnNumber:19},void 0),e.jsxDEV("button",{className:"kb-drawer__right-collapse-btn",onClick:()=>ne(!0),title:"收起侧边栏",children:e.jsxDEV(Bn,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1093,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1088,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1071,columnNumber:19},void 0),e.jsxDEV("div",{className:"kb-drawer__right-content",children:ae==="related"?e.jsxDEV(On,{currentNoteId:l.id,allNotes:d,noteTagsMap:v,onSelectNote:se},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1100,columnNumber:21},void 0):e.jsxDEV(ri,{noteId:l.id,noteContent:l.content,noteTitle:l.title,onSaved:()=>W(),onInsertToNote:_s},l.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1107,columnNumber:21},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1098,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1069,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1067,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1057,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:939,columnNumber:7},void 0),e.jsxDEV(Wn,{visible:V,onClose:()=>Z(!1),allTags:f,onCreateTag:Ie,onUpdateTag:qs,onDeleteTag:Cs},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:1123,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/knowledge-base/KnowledgeBaseContent.tsx",lineNumber:920,columnNumber:5},void 0)};function li(n){if(n===0)return"0 B";const i=["B","KB","MB","GB"],r=Math.floor(Math.log(n)/Math.log(1024));return`${(n/Math.pow(1024,r)).toFixed(1)} ${i[r]}`}export{ui as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{r as a,I as us,_ as hs,b7 as bs,b8 as w,b9 as C,ba as R,bb as ge,bc as ps,bd as Ee,ab as s,be as ks,bf as fs,bg as Te,bh as Ns,bi as xs,bj as je,bk as vs,bl as we,bm as gs,bn as js,bo as ws,bp as _s,bq as Ms,br as Es}from"./index-
|
|
1
|
+
import{r as a,I as us,_ as hs,b7 as bs,b8 as w,b9 as C,ba as R,bb as ge,bc as ps,bd as Ee,ab as s,be as ks,bf as fs,bg as Te,bh as Ns,bi as xs,bj as je,bk as vs,bl as we,bm as gs,bn as js,bo as ws,bp as _s,bq as Ms,br as Es}from"./index-Diazikky.js";import{b as ys}from"./model-benchmark-launcher-B-qig9XH.js";import{S as ee}from"./index-Ck7rYA9l.js";import"./pick-Dy1eQ_1d.js";import"./hasIn-BnqD3im9.js";function $e(r,c){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(r);c&&(l=l.filter(function(u){return Object.getOwnPropertyDescriptor(r,u).enumerable})),t.push.apply(t,l)}return t}function Oe(r){for(var c=1;c<arguments.length;c++){var t=arguments[c]!=null?arguments[c]:{};c%2?$e(Object(t),!0).forEach(function(l){hs(r,l,t[l])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):$e(Object(t)).forEach(function(l){Object.defineProperty(r,l,Object.getOwnPropertyDescriptor(t,l))})}return r}var Ds={tag:"svg",attrs:{fill:"none",viewBox:"0 0 24 24",width:"1em",height:"1em"},children:[{tag:"path",attrs:{fill:"currentColor",d:"M2 2L22 2L22 22L2 22L2 2ZM4 4L4 20L20 20L20 4L4 4ZM11 8.5L6 8.5V6.5L18 6.5V8.5L13 8.5V18H11V8.5Z"}}]},Qe=a.forwardRef(function(r,c){return a.createElement(us,Oe(Oe({},r),{},{id:"textbox",ref:c,icon:Ds}))});Qe.displayName="TextboxIcon";const se={text:"文本",image:"图片",video:"视频",audio:"音频"},re={"cross-provider":"跨供应商对比","cross-model":"多模型批测",custom:"自定义测试"},Bs={"cross-provider":"锁定一个模型,横向比较不同供应商的稳定性、速度和效果差异。","cross-model":"锁定一个供应商,一次跑完同类模型,快速筛掉慢和差的型号。",custom:"手动编排供应商与模型组合,适合做定向复测和候选名单对比。"},Vs={speed:"速度优先",cost:"成本优先",balanced:"综合平衡","value-for-money":"性价比"},_e={draft:"待启动",running:"测试中",completed:"已完成",partial:"部分失败",failed:"全部失败"},ue={pending:"待测",running:"测试中",completed:"已完成",failed:"失败"},Ss=6,qs=8,Ke=32e3;function oe(r){return r?new Date(r).toLocaleString("zh-CN",{hour12:!1}):""}function Ye(r){return r.length>Ke?`${r.slice(0,Ke-8)}...[截断]`:r}function O(r){return r?r.startsWith("data:")?"[内嵌数据已省略]":Ye(r):""}function Us(r){return r!=null&&r.length?Ye(r.map(c=>O(c)).join(`
|
|
2
2
|
`)):""}function Fe(r){return r?"是":"否"}function he(r){let c=0,t=0;return r.forEach(l=>{typeof l=="number"&&Number.isFinite(l)&&(c+=l,t+=1)}),t>0?Number((c/t).toFixed(2)):null}function Is(r=new Date){const c=`${r.getFullYear()}${String(r.getMonth()+1).padStart(2,"0")}${String(r.getDate()).padStart(2,"0")}`,t=`${String(r.getHours()).padStart(2,"0")}${String(r.getMinutes()).padStart(2,"0")}${String(r.getSeconds()).padStart(2,"0")}`;return`model-benchmark-history_${c}_${t}.xlsx`}function Me(r){return r!==null}function Ws(r){return r.trim().toLowerCase().split(/\s+/).filter(Boolean)}function be(r,c){const t=Ws(r);if(t.length===0)return!0;const l=c.filter(Boolean).join(" ").toLowerCase();return t.every(u=>l.includes(u))}function Cs(r){return r==="text"?"supportsText":r==="image"?"supportsImage":r==="video"?"supportsVideo":"supportsAudio"}function Ge(r,c){const t=Cs(c);return r.filter(l=>l.enabled&&(l.id===vs||l.capabilities[t]))}function Ls(){const[r,c]=a.useState(0);return a.useEffect(()=>Ee.subscribe(()=>{c(t=>t+1)}),[]),r}function As(){const[r,c]=a.useState(()=>je.get());return a.useEffect(()=>{const t=l=>{c(l)};return je.addListener(t),()=>{je.removeListener(t)}},[]),r}function pe(r){return!r||r<0?"--":r<1e3?`${r}ms`:`${(r/1e3).toFixed(r>=1e4?1:2)}s`}function Ps(r){const c=new Map;r.entries.forEach(l=>{var K,h;const u=(K=l.modelId)==null?void 0:K.trim(),p=(h=l.modelLabel)==null?void 0:h.trim();u&&p&&!c.has(u)&&c.set(u,{modelId:u,modelLabel:p})});const t=new Map;return c.forEach(({modelLabel:l})=>{t.set(l,(t.get(l)||0)+1)}),Array.from(c.values()).map(({modelId:l,modelLabel:u})=>(t.get(u)||0)>1?`${u} · ${l}`:u)}function ze(r){return r?r.entries.reduce((c,t)=>(c.total+=1,t.status==="completed"&&(c.completed+=1),t.status==="failed"&&(c.failed+=1),t.status==="running"&&(c.running+=1),c),{total:0,completed:0,failed:0,running:0}):{total:0,completed:0,failed:0,running:0}}function _(r,c){const t=Ee.getState(r).models.filter(u=>u.type===c),l=new Map;return t.forEach(u=>{l.has(u.id)||l.set(u.id,u)}),Array.from(l.values())}function He(r){return r.shortLabel||r.label||r.id}function Xe(r){const c=He(r);return c===r.id?c:`${c} · ${r.id}`}function Rs(r,c){return`${r}::${c}`}function Xs({}){const r=bs(ys),c=As(),t=Ls(),[l,u]=a.useState(()=>w.getState()),[p,K]=a.useState("text"),[h,ye]=a.useState("cross-provider"),[x,ne]=a.useState(""),[L,ae]=a.useState(""),[F,A]=a.useState([]),[G,z]=a.useState([]),[X,Q]=a.useState([]),[T,Ts]=a.useState(""),[$,$s]=a.useState(!1),[Je,De]=a.useState(C("text").id),[ie,ke]=a.useState(C("text").prompt),[Be,Ze]=a.useState(2),[fe,Ve]=a.useState(!1),[Ne,es]=a.useState("speed"),[xe,ss]=a.useState(""),[ce,rs]=a.useState("all"),Se=a.useRef(""),V=a.useRef(!1),le=a.useRef(null);a.useRef({}),a.useEffect(()=>{const e=w.observe().subscribe(o=>{a.startTransition(()=>{u(o)})});return()=>e.unsubscribe()},[]);const j=a.useMemo(()=>Ge(c,p),[p,c]),Y=a.useMemo(()=>new Map(j.map(e=>[e.id,e])),[j]),y=x&&Y.get(x)||null,S=a.useMemo(()=>x?_(x,p):[],[t,p,x]),ve=a.useMemo(()=>{const e=new Map;return j.forEach(o=>{_(o.id,p).forEach(m=>{e.has(m.id)||e.set(m.id,m)})}),Array.from(e.values())},[j,t,p]),q=a.useMemo(()=>j.flatMap(e=>_(e.id,p).map(o=>R(e.id,e.name,o))),[j,t,p]);a.useEffect(()=>{if(V.current){console.debug("[Benchmark] reconcile profile/prompt: skipped (launchGuard)");return}if(!j.length){ne("");return}const e=C(p);De(e.id),ke(o=>o===C("text").prompt||o===C("image").prompt||o===C("video").prompt||o===C("audio").prompt?e.prompt:o),(!x||!Y.has(x))&&ne(j[0].id)},[j,p,Y,x]),a.useEffect(()=>{if(V.current){console.debug("[Benchmark] reconcile modelIds: skipped (launchGuard)");return}const e=S.map(o=>o.id);if(e.length===0){A([]);return}A(o=>{const m=ge(o,e,{fallback:"all"});return m!==o&&console.debug("[Benchmark] reconcile modelIds: changed",{from:o,to:m}),m})},[S]),a.useEffect(()=>{if(V.current){console.debug("[Benchmark] reconcile selectedModelId: skipped (launchGuard)");return}const e=ve.map(o=>o.id);if(e.length===0){ae("");return}e.includes(L)||ae(e[0])},[ve,L]);const P=a.useMemo(()=>L?j.map(e=>{const o=_(e.id,p).find(m=>m.id===L);return o?R(e.id,e.name,o):null}).filter(Me):[],[j,p,L]);a.useEffect(()=>{if(V.current){console.debug("[Benchmark] reconcile providerIds: skipped (launchGuard)");return}z(e=>ge(e,P.map(o=>o.profileId),{fallback:"all"}))},[P]),a.useEffect(()=>{if(V.current){console.debug("[Benchmark] reconcile customKeys: skipped (launchGuard)");return}Q(e=>ge(e,q.map(o=>o.selectionKey),{fallback:"first",limit:Ss}))},[q]);const k=a.useMemo(()=>l.sessions.find(e=>e.id===l.activeSessionId)||null,[l.activeSessionId,l.sessions]),qe=a.useMemo(()=>l.sessions.filter(e=>ce!=="all"&&e.modality!==ce?!1:be(xe,[e.title,e.prompt,re[e.compareMode],se[e.modality],...e.entries.flatMap(o=>[o.profileName,o.profileId,o.modelLabel,o.modelId,o.vendor])])),[ce,xe,l.sessions]);a.useEffect(()=>{k&&es(k.rankingMode)},[k]);const os=a.useMemo(()=>ze(k),[k]),ns=a.useMemo(()=>k?ps(k.entries,k.rankingMode):[],[k]),U=a.useMemo(()=>{if(h==="cross-provider")return P.filter(e=>G.includes(e.profileId));if(h==="cross-model"){if(!x)return[];const e=Y.get(x);return e?S.filter(o=>F.includes(o.id)).map(o=>R(e.id,e.name,o)):[]}return q.filter(e=>X.includes(e.selectionKey))},[S,h,P,q,Y,X,F,x,G]),Ue=a.useMemo(()=>{if(!k||k.modality!==p||k.compareMode!==h)return!1;const e=U.map(m=>m.selectionKey);if(e.length===0||k.entries.length!==e.length)return!1;const o=new Set(e);return k.entries.every(m=>o.has(m.selectionKey))},[k,h,p,U]),Ie=a.useMemo(()=>k&&Ue?k.entries.map(e=>({key:e.selectionKey,modelLabel:e.modelLabel,profileName:e.profileName,badgeLabel:ue[e.status]||ue.pending})):U.map(e=>({key:e.selectionKey,modelLabel:e.modelLabel,profileName:e.profileName,badgeLabel:ue.pending})),[k,Ue,U]),N=k,H=N?os:ze(null),We=N?ns:[];Ie.length,Ie.slice(0,qs);const M=We.find(e=>e.status==="completed")||null,Ce=a.useMemo(()=>S.filter(e=>{const o=F.includes(e.id);return $&&!o?!1:be(T,[He(e),e.id,y==null?void 0:y.name])}),[y==null?void 0:y.name,S,T,F,$]),Le=a.useMemo(()=>P.filter(e=>{const o=G.includes(e.profileId);return $&&!o?!1:be(T,[e.profileName,e.modelLabel,e.modelId,e.profileId])}),[P,T,G,$]),Ae=a.useMemo(()=>q.filter(e=>{const o=X.includes(e.selectionKey);return $&&!o?!1:be(T,[e.profileName,e.modelLabel,e.modelId,e.profileId])}),[q,T,X,$]),te=a.useMemo(()=>h==="cross-model"?Ce.map(e=>e.id):h==="cross-provider"?Le.map(e=>e.profileId):Ae.map(e=>e.selectionKey),[h,Ce,Le,Ae]);a.useEffect(()=>{if(te.length===0){le.current=null;return}le.current&&te.includes(le.current)||(le.current=te[0])},[te]),a.useEffect(()=>{var Re;if(!r){console.debug("[Benchmark] useEffect: no initialRequest, skip");return}if(!l.ready){console.debug("[Benchmark] useEffect: storeState not ready, waiting...");return}const e=JSON.stringify(r);if(Se.current===e){console.debug("[Benchmark] useEffect: same signature, skip",{signature:e});return}const o=r.modality||"text",m=Ge(c,o),D=r.profileId||"",I=r.modelId||"",W=D?Ee.getState(D):null,me=D&&I?_(D,o):[],de=!I||me.some(f=>f.id===I);if(W&&I&&!de&&(W.status==="idle"||W.status==="loading")){console.debug("[Benchmark] useEffect: waiting for requested model discovery",{signature:e,requestedProfileId:D,requestedModelId:I,status:W.status,discoveryVersion:t});return}V.current=!0,Se.current=e;const J=r.compareMode||(r.modelId?"cross-provider":"cross-model");let g=J,i=[];const n=r.profileId&&r.modelId?Rs(r.profileId,r.modelId):"";J==="cross-provider"&&r.modelId&&(i=m.filter(f=>_(f.id,o).some(Z=>Z.id===r.modelId)).map(f=>f.id),i.length<=1&&(g="custom",console.debug("[Benchmark] cross-provider → custom downgrade",{modelId:r.modelId,matchingProviderIds:i}))),console.debug("[Benchmark] useEffect: applying initialRequest",{nextModality:o,nextCompareMode:g,requestedCompareMode:J,profileId:r.profileId,modelId:r.modelId,profileCount:m.length,matchingProviderIds:i});const E=C(o);K(o),ye(g),De(E.id),ke(E.prompt);const d=r.profileId||i[0]||((Re=m[0])==null?void 0:Re.id)||"";if(d&&ne(d),g==="cross-provider"&&r.modelId)ae(r.modelId),z(i);else if(g==="cross-model"&&r.modelId)A([r.modelId]);else if(g==="cross-model"&&!r.modelId&&d){const f=_(d,o);A(f.map(Z=>Z.id))}else g==="custom"&&n&&Q([n]);const ms=window.setTimeout(()=>{let f;if(g==="cross-provider"&&r.modelId)f=m.map(b=>{const v=_(b.id,o).find(B=>B.id===r.modelId);return v?R(b.id,b.name,v):null}).filter(Me);else if(g==="cross-model"&&r.modelId){const b=m.find(v=>v.id===d);if(b){const v=_(b.id,o).find(B=>B.id===r.modelId);f=v?[R(b.id,b.name,v)]:[]}else f=[]}else if(g==="custom"){const b=m.find(v=>v.id===(r.profileId||d));if(b&&r.modelId){const v=_(b.id,o).find(B=>B.id===r.modelId);f=v?[R(b.id,b.name,v)]:[]}else f=[]}else{const b=d||x;b?f=_(b,o).map(v=>{const B=m.find(ds=>ds.id===b);return B?R(B.id,B.name,v):null}).filter(Me):f=[]}if(!f.length){console.debug("[Benchmark] setTimeout: no targets built, abort");return}if(console.debug("[Benchmark] setTimeout: creating session",{targetCount:f.length,targets:f.map(b=>`${b.profileName}/${b.modelId}`),autoRun:r.autoRun}),!r.autoRun){requestAnimationFrame(()=>{setTimeout(()=>{V.current=!1,console.debug("[Benchmark] guard released without autoRun")},0)});return}const Z=w.createSession({modality:o,compareMode:g,promptPresetId:E.id,prompt:E.prompt,rankingMode:Ne,targets:f,source:"shortcut"});w.runSession(Z.id),requestAnimationFrame(()=>{setTimeout(()=>{V.current=!1,console.debug("[Benchmark] guard released")},0)})},120);return()=>{window.clearTimeout(ms)}},[t,r,c,Ne,x,l.ready]);const as=async()=>{if(U.length===0||!ie.trim())return;const e=w.createSession({modality:p,compareMode:h,promptPresetId:Je,prompt:ie,rankingMode:Ne,targets:U,source:"manual"});await w.runSession(e.id,Be)},is=async()=>{if(fe)return;const e=l.sessions;if(e.length===0){we.warning("暂无历史会话可导出");return}Ve(!0);try{const o=await gs(()=>import("./xlsx-CkFp8p6R.js"),[],import.meta.url),m=e.flatMap(i=>i.entries.map(n=>({会话标题:i.title,会话ID:i.id,会话创建时间:oe(i.createdAt),模态:se[i.modality],对比方式:re[i.compareMode],会话状态:_e[i.status],提示词预设:i.promptPresetId,提示词:O(i.prompt),供应商配置:n.profileName,供应商ID:n.profileId,模型名称:n.modelLabel,模型ID:n.modelId,厂商:n.vendor,选择Key:n.selectionKey,结果ID:n.id,结果状态:ue[n.status],开始时间:oe(n.startedAt),首响时间:oe(n.firstResponseAt),完成时间:oe(n.completedAt),首响ms:n.firstResponseMs,总耗时ms:n.totalDurationMs,预估成本:n.estimatedCost,用户评分:n.userScore,已收藏:Fe(n.favorite),已淘汰:Fe(n.rejected),错误摘要:O(n.errorSummary),预览文本:O(n.preview.text),预览链接:O(n.preview.url),预览链接列表:Us(n.preview.urls),预览格式:n.preview.format||"",预览时长:n.preview.duration??"",预览标题:O(n.preview.title)}))),D=new Map;e.forEach(i=>{i.entries.forEach(n=>{const E=`${i.modality}::${n.selectionKey}`,d=D.get(E)||{profileName:n.profileName,profileId:n.profileId,modelLabel:n.modelLabel,modelId:n.modelId,vendor:n.vendor,modality:se[i.modality],selectionKey:n.selectionKey,sessionIds:new Set,count:0,completedCount:0,failedCount:0,runningCount:0,pendingCount:0,favoriteCount:0,rejectedCount:0,firstResponseValues:[],totalDurationValues:[],costValues:[],scoreValues:[],latestAt:0};d.sessionIds.add(i.id),d.count+=1,n.status==="completed"&&(d.completedCount+=1),n.status==="failed"&&(d.failedCount+=1),n.status==="running"&&(d.runningCount+=1),n.status==="pending"&&(d.pendingCount+=1),n.favorite&&(d.favoriteCount+=1),n.rejected&&(d.rejectedCount+=1),typeof n.firstResponseMs=="number"&&d.firstResponseValues.push(n.firstResponseMs),typeof n.totalDurationMs=="number"&&d.totalDurationValues.push(n.totalDurationMs),typeof n.estimatedCost=="number"&&d.costValues.push(n.estimatedCost),typeof n.userScore=="number"&&d.scoreValues.push(n.userScore),d.latestAt=Math.max(d.latestAt,n.completedAt||n.startedAt||i.updatedAt||i.createdAt),D.set(E,d)})});const I=Array.from(D.values()).map(i=>({供应商配置:i.profileName,供应商ID:i.profileId,模型名称:i.modelLabel,模型ID:i.modelId,厂商:i.vendor,模态:i.modality,选择Key:i.selectionKey,测试次数:i.count,涉及会话数:i.sessionIds.size,完成次数:i.completedCount,失败次数:i.failedCount,运行中次数:i.runningCount,待测次数:i.pendingCount,收藏次数:i.favoriteCount,淘汰次数:i.rejectedCount,平均首响ms:he(i.firstResponseValues),最快首响ms:i.firstResponseValues.length>0?Math.min(...i.firstResponseValues):null,平均总耗时ms:he(i.totalDurationValues),最快总耗时ms:i.totalDurationValues.length>0?Math.min(...i.totalDurationValues):null,平均成本:he(i.costValues),平均评分:he(i.scoreValues),最近测试时间:oe(i.latestAt)})).sort((i,n)=>{const E=(n.平均评分??-1)-(i.平均评分??-1);if(E!==0)return E;const d=(i.平均首响ms??Number.MAX_SAFE_INTEGER)-(n.平均首响ms??Number.MAX_SAFE_INTEGER);return d!==0?d:(i.平均成本??Number.MAX_SAFE_INTEGER)-(n.平均成本??Number.MAX_SAFE_INTEGER)}),W=o.utils.book_new(),me=o.utils.json_to_sheet(I),de=o.utils.json_to_sheet(m);me["!cols"]=[{wch:18},{wch:22},{wch:24},{wch:32},{wch:14},{wch:10},{wch:32},{wch:8},{wch:10},{wch:8},{wch:8},{wch:10},{wch:8},{wch:8},{wch:8},{wch:18},{wch:18},{wch:12},{wch:18},{wch:12},{wch:12},{wch:12},{wch:20}],de["!cols"]=[{wch:28},{wch:24},{wch:20},{wch:10},{wch:14},{wch:10},{wch:18},{wch:60},{wch:18},{wch:22},{wch:24},{wch:32},{wch:14},{wch:32},{wch:24},{wch:10},{wch:20},{wch:20},{wch:20},{wch:12},{wch:12},{wch:12},{wch:10},{wch:8},{wch:8},{wch:36},{wch:60},{wch:60},{wch:80},{wch:12},{wch:10},{wch:28}],o.utils.book_append_sheet(W,me,"模型汇总"),o.utils.book_append_sheet(W,de,"原始结果");const J=o.write(W,{bookType:"xlsx",type:"array"}),g=new Blob([J],{type:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});js(g,Is()),we.success(`已导出 ${I.length} 个模型结果`)}catch(o){console.error("[ModelBenchmark] Excel export failed:",o),we.error("导出 Excel 失败,请稍后重试")}finally{Ve(!1)}},cs=e=>{const o=e.preview.rawData?s.jsxDEV("details",{className:"model-benchmark__raw-data",children:[s.jsxDEV("summary",{children:"原始数据 (JSON)"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1373,columnNumber:9},this),s.jsxDEV("pre",{children:JSON.stringify(e.preview.rawData,null,2)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1374,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1372,columnNumber:7},this):null;return e.modality==="text"?s.jsxDEV("div",{className:"model-benchmark__preview-content",children:[s.jsxDEV("pre",{className:"model-benchmark__preview-text",children:e.preview.text||"暂无返回"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1381,columnNumber:11},this),o]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1380,columnNumber:9},this):e.modality==="image"&&e.preview.url?s.jsxDEV("div",{className:"model-benchmark__preview-content",children:[s.jsxDEV("img",{className:"model-benchmark__preview-image",src:e.preview.url,alt:e.modelLabel,loading:"lazy"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1392,columnNumber:11},this),o]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1391,columnNumber:9},this):e.modality==="video"&&e.preview.url?s.jsxDEV("div",{className:"model-benchmark__preview-content",children:[s.jsxDEV("video",{className:"model-benchmark__preview-video",src:e.preview.url,controls:!0,preload:"metadata"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1406,columnNumber:11},this),o]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1405,columnNumber:9},this):e.modality==="audio"&&e.preview.url?s.jsxDEV("div",{className:"model-benchmark__preview-content",children:[s.jsxDEV("div",{className:"model-benchmark__preview-audio-shell",children:[s.jsxDEV("audio",{controls:!0,preload:"none",src:e.preview.url},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1421,columnNumber:13},this),e.preview.text?s.jsxDEV("pre",{className:"model-benchmark__preview-text",children:e.preview.text},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1423,columnNumber:15},this):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1420,columnNumber:11},this),o]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1419,columnNumber:9},this):s.jsxDEV("div",{className:"model-benchmark__preview-empty",children:[e.status==="failed"?"加载失败":"暂无预览",o]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1434,columnNumber:7},this)};h==="cross-model"?`${(y==null?void 0:y.name)||"未选择"}`:h==="cross-provider"&&`${L||"未选择"}`;const ls=ve.map(e=>({label:Xe(e),value:e.id})),Pe=P.map(e=>({label:`${e.profileName} · ${e.modelLabel}`,value:e.profileId})),ts=[{label:"全部",value:"all",icon:s.jsxDEV(ws,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1472,columnNumber:40},this)},{label:"图片",value:"image",icon:s.jsxDEV(_s,{size:"14px"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1473,columnNumber:42},this)},{label:"视频",value:"video",icon:s.jsxDEV(Ms,{size:"14px"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1474,columnNumber:42},this)},{label:"音频",value:"audio",icon:s.jsxDEV(Es,{size:14,strokeWidth:1.9},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1475,columnNumber:42},this)},{label:"文本",value:"text",icon:s.jsxDEV(Qe,{size:"14px"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1476,columnNumber:41},this)}];return s.jsxDEV("div",{className:"model-benchmark",children:[s.jsxDEV("aside",{className:"model-benchmark__sidebar",children:[s.jsxDEV("div",{className:"model-benchmark__sidebar-head",children:[s.jsxDEV("div",{className:"model-benchmark__panel-title",children:"历史会话"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1483,columnNumber:11},this),s.jsxDEV("button",{type:"button",className:"model-benchmark__ghost-button",onClick:is,disabled:l.sessions.length===0||fe,children:fe?"导出中...":"导出 Excel"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1484,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1482,columnNumber:9},this),s.jsxDEV("div",{className:"model-benchmark__sidebar-filters",children:[s.jsxDEV(ks,{value:xe,onChange:ss,placeholder:"搜索会话 / 模型 / 供应商",prefixIcon:s.jsxDEV(fs,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1498,columnNumber:25},this),size:"small",clearable:!0},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1494,columnNumber:11},this),s.jsxDEV("div",{className:"model-benchmark__sidebar-tabs",children:ts.map(e=>s.jsxDEV(Te,{content:e.label,theme:"light",children:s.jsxDEV("button",{type:"button",className:ce===e.value?"model-benchmark__sidebar-tab model-benchmark__sidebar-tab--active":"model-benchmark__sidebar-tab",onClick:()=>rs(e.value),"aria-label":e.label,title:e.label,children:e.icon},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1505,columnNumber:17},this)},e.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1504,columnNumber:15},this))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1502,columnNumber:11},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1493,columnNumber:9},this),s.jsxDEV("div",{className:"model-benchmark__session-list",children:qe.length>0?qe.map(e=>{const o=Ps(e);return s.jsxDEV("div",{className:"model-benchmark__session-row",children:[s.jsxDEV("button",{type:"button",className:`model-benchmark__session-item ${e.id===l.activeSessionId?"model-benchmark__session-item--active":""}`,onClick:()=>w.setActiveSession(e.id),children:[s.jsxDEV("span",{className:"model-benchmark__session-title",children:e.title},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1537,columnNumber:21},this),s.jsxDEV("span",{className:"model-benchmark__session-models",children:o.length>0?o.join(" / "):"暂无模型信息"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1540,columnNumber:21},this),s.jsxDEV("span",{className:"model-benchmark__session-meta",children:[re[e.compareMode]," · ",e.entries.length," 个目标 ·"," ",_e[e.status]]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1545,columnNumber:21},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1528,columnNumber:19},this),s.jsxDEV("button",{type:"button",className:"model-benchmark__session-delete",onClick:()=>w.removeSession(e.id),"aria-label":`删除会话 ${e.title}`,title:"删除会话",children:s.jsxDEV(Ns,{},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1557,columnNumber:21},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1550,columnNumber:19},this)]},e.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1527,columnNumber:17},this)}):s.jsxDEV("div",{className:"model-benchmark__session-empty",children:l.sessions.length===0?"暂无历史会话":"没有匹配的历史会话"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1563,columnNumber:13},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1522,columnNumber:9},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1481,columnNumber:7},this),s.jsxDEV("main",{className:"model-benchmark__main",children:s.jsxDEV("div",{className:"model-benchmark__main-shell",children:[s.jsxDEV("section",{className:"model-benchmark__config-dashboard",children:[s.jsxDEV("div",{className:"model-benchmark__config-row model-benchmark__config-row--top",children:[s.jsxDEV("div",{className:"model-benchmark__modality-tabs",children:Object.keys(se).map(e=>s.jsxDEV("button",{type:"button",className:p===e?"active":"",onClick:()=>K(e),children:se[e]},e,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1577,columnNumber:21},this))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1574,columnNumber:15},this),s.jsxDEV("div",{className:"model-benchmark__mode-selector",children:Object.entries(re).map(([e,o])=>s.jsxDEV(Te,{content:Bs[e],placement:"top",children:s.jsxDEV("button",{type:"button",className:h===e?"active":"",onClick:()=>ye(e),children:o},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1597,columnNumber:23},this)},e,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1592,columnNumber:21},this))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1589,columnNumber:15},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1573,columnNumber:13},this),s.jsxDEV("div",{className:"model-benchmark__config-main",children:[s.jsxDEV("div",{className:"model-benchmark__config-controls",children:[s.jsxDEV("div",{className:"model-benchmark__primary-select-row",children:[h==="cross-model"?s.jsxDEV(ee,{className:"model-benchmark__select",label:"目标供应商: ",value:x,onChange:e=>ne(e),options:j.map(e=>({label:e.name,value:e.id}))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1616,columnNumber:21},this):null,h==="cross-provider"?s.jsxDEV(ee,{filterable:!0,className:"model-benchmark__select",label:"对比模型: ",value:L,options:ls,placeholder:"搜索并选择要横向对比的模型",onChange:e=>ae(e||"")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1629,columnNumber:21},this):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1614,columnNumber:17},this),s.jsxDEV("div",{className:"model-benchmark__secondary-select-row",children:[h==="cross-provider"?s.jsxDEV(ee,{multiple:!0,filterable:!0,minCollapsedNum:3,popupProps:{overlayClassName:"model-benchmark__select-popup"},panelTopContent:s.jsxDEV("div",{className:"model-benchmark__select-actions",children:[s.jsxDEV("button",{type:"button",onClick:()=>z(Pe.map(e=>e.value)),children:"全选"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1654,columnNumber:27},this),s.jsxDEV("button",{type:"button",onClick:()=>z([]),children:"清除"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1655,columnNumber:27},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1653,columnNumber:25},this),className:"model-benchmark__multi-select",label:"参测供应商: ",value:G,options:Pe,placeholder:"多选要参与对比的供应商 (已选即为批测队列)",onChange:e=>z(Array.isArray(e)?e:[])},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1645,columnNumber:21},this):null,h==="cross-model"?s.jsxDEV(ee,{multiple:!0,filterable:!0,minCollapsedNum:3,popupProps:{overlayClassName:"model-benchmark__select-popup"},panelTopContent:s.jsxDEV("div",{className:"model-benchmark__select-actions",children:[s.jsxDEV("button",{type:"button",onClick:()=>A(S.map(e=>e.id)),children:"全选"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1681,columnNumber:27},this),s.jsxDEV("button",{type:"button",onClick:()=>A([]),children:"清除"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1682,columnNumber:27},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1680,columnNumber:25},this),className:"model-benchmark__multi-select",label:"参测模型: ",value:F,options:S.map(e=>({label:Xe(e),value:e.id})),placeholder:"多选要测试的模型 (已选即为批测队列)",onChange:e=>A(Array.isArray(e)?e:[])},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1672,columnNumber:21},this):null,h==="custom"?s.jsxDEV(ee,{multiple:!0,filterable:!0,minCollapsedNum:3,popupProps:{overlayClassName:"model-benchmark__select-popup"},panelTopContent:s.jsxDEV("div",{className:"model-benchmark__select-actions",children:[s.jsxDEV("button",{type:"button",onClick:()=>Q(q.map(e=>e.selectionKey)),children:"全选"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1711,columnNumber:27},this),s.jsxDEV("button",{type:"button",onClick:()=>Q([]),children:"清除"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1712,columnNumber:27},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1710,columnNumber:25},this),className:"model-benchmark__multi-select",label:"目标组合: ",value:X,options:q.map(e=>({label:`${e.profileName} · ${e.modelLabel}`,value:e.selectionKey})),placeholder:"手动编排供应商与模型组合",onChange:e=>Q(Array.isArray(e)?e:[])},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1702,columnNumber:21},this):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1643,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1613,columnNumber:15},this),s.jsxDEV("div",{className:"model-benchmark__config-actions",children:[s.jsxDEV("div",{className:"model-benchmark__prompt-area",children:s.jsxDEV("textarea",{value:ie,onChange:e=>ke(e.target.value),placeholder:"在此输入测试提示词..."},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1735,columnNumber:19},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1734,columnNumber:17},this),s.jsxDEV("div",{className:"model-benchmark__action-row-inline",children:[s.jsxDEV("div",{className:"model-benchmark__concurrency",children:[s.jsxDEV("span",{children:"最大并发:"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1743,columnNumber:21},this),s.jsxDEV("input",{type:"text",inputMode:"numeric","aria-label":"最大并发",value:Be,onChange:e=>{const o=e.target.value.replace(/\D/g,""),m=Number(o);Ze(Math.min(10,Math.max(1,m||1)))}},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1744,columnNumber:21},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1742,columnNumber:19},this),s.jsxDEV("button",{type:"button",className:"model-benchmark__primary-button",onClick:as,disabled:!l.ready||U.length===0||!ie.trim(),children:["开始测试 (",U.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1756,columnNumber:19},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1741,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1733,columnNumber:15},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1612,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1572,columnNumber:11},this),s.jsxDEV("div",{className:"model-benchmark__main-head",children:s.jsxDEV("div",{children:[s.jsxDEV("div",{className:"model-benchmark__eyebrow",children:N?re[N.compareMode]:"Result Board"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1775,columnNumber:15},this),s.jsxDEV("h3",{children:N?N.title:"还没有测试结果"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1778,columnNumber:15},this),N?s.jsxDEV("p",{className:"model-benchmark__main-desc",children:[H.total," 个目标",H.completed>0?`,${H.completed} 成功`:"",H.failed>0?`,${H.failed} 失败`:""," · ",_e[N.status]," · ",Vs[N.rankingMode]]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1780,columnNumber:17},this):s.jsxDEV("p",{className:"model-benchmark__main-desc",children:"请先在上方明确范围,或点击历史会话查看以往结果。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1788,columnNumber:17},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1774,columnNumber:13},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1773,columnNumber:11},this),N?s.jsxDEV(s.Fragment,{children:[M?s.jsxDEV("section",{className:"model-benchmark__spotlight",children:[s.jsxDEV("div",{className:"model-benchmark__spotlight-copy",children:[s.jsxDEV("div",{className:"model-benchmark__eyebrow",children:"当前第一名"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1800,columnNumber:21},this),s.jsxDEV("h4",{children:N.compareMode==="cross-provider"?M.profileName:M.modelLabel},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1801,columnNumber:21},this),s.jsxDEV("p",{children:[N.compareMode==="cross-provider"?`${M.modelLabel},`:`来自 ${M.profileName},`,"首响 ",pe(M.firstResponseMs),",总耗时 ",pe(M.totalDurationMs)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1806,columnNumber:21},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1799,columnNumber:19},this),s.jsxDEV("div",{className:"model-benchmark__spotlight-meta",children:[M.userScore?s.jsxDEV("span",{children:[M.userScore," 分"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1815,columnNumber:43},this):null,M.favorite?s.jsxDEV("span",{children:"已收藏"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1816,columnNumber:42},this):null]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1814,columnNumber:19},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1798,columnNumber:17},this):null,s.jsxDEV("div",{className:"model-benchmark__result-grid",children:We.map((e,o)=>s.jsxDEV("article",{className:`model-benchmark__result-card model-benchmark__result-card--${e.status}`,children:[s.jsxDEV("header",{className:"model-benchmark__result-head",children:[s.jsxDEV("div",{className:"model-benchmark__result-rank",children:["#",o+1]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1828,columnNumber:23},this),s.jsxDEV("div",{className:"model-benchmark__result-heading",children:[s.jsxDEV("div",{className:"model-benchmark__result-title",children:e.modelLabel},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1830,columnNumber:25},this),s.jsxDEV("div",{className:"model-benchmark__result-subtitle",children:e.profileName},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1833,columnNumber:25},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1829,columnNumber:23},this),s.jsxDEV("span",{className:`model-benchmark__status model-benchmark__status--${e.status}`,children:e.status==="completed"?"完成":e.status==="failed"?"失败":e.status==="running"?"测试中":"等待中"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1837,columnNumber:23},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1827,columnNumber:21},this),s.jsxDEV("div",{className:"model-benchmark__result-metrics",children:[s.jsxDEV("span",{children:["首响 ",pe(e.firstResponseMs)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1851,columnNumber:23},this),s.jsxDEV("span",{children:["总耗时 ",pe(e.totalDurationMs)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1852,columnNumber:23},this),s.jsxDEV("span",{children:["成本"," ",e.estimatedCost===null?"未知":`¥${e.estimatedCost.toFixed(4)}`]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1853,columnNumber:23},this),s.jsxDEV("span",{children:["性价比"," ",(()=>{const m=xs(e);return m===null?"—":`${m}/10`})()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1859,columnNumber:23},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1850,columnNumber:21},this),s.jsxDEV("div",{className:"model-benchmark__preview",children:cs(e)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1868,columnNumber:21},this),e.errorSummary?s.jsxDEV("div",{className:"model-benchmark__error",children:e.errorSummary},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1873,columnNumber:23},this):null,s.jsxDEV("div",{className:"model-benchmark__feedback",children:[s.jsxDEV("div",{className:"model-benchmark__score-row",children:[1,2,3,4,5].map(m=>s.jsxDEV("button",{type:"button",className:`model-benchmark__score-chip ${e.userScore===m?"model-benchmark__score-chip--active":""}`,onClick:()=>w.setEntryFeedback(N.id,e.id,{userScore:e.userScore===m?null:m}),children:[m,"分"]},m,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1879,columnNumber:27},this))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1877,columnNumber:23},this),s.jsxDEV("div",{className:"model-benchmark__action-row",children:[s.jsxDEV("button",{type:"button",className:`model-benchmark__ghost-button ${e.favorite?"model-benchmark__ghost-button--active":""}`,onClick:()=>w.setEntryFeedback(N.id,e.id,{favorite:!e.favorite}),children:"收藏"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1902,columnNumber:25},this),s.jsxDEV("button",{type:"button",className:`model-benchmark__ghost-button ${e.rejected?"model-benchmark__ghost-button--danger":""}`,onClick:()=>w.setEntryFeedback(N.id,e.id,{rejected:!e.rejected}),children:"淘汰"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1921,columnNumber:25},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1901,columnNumber:23},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1876,columnNumber:21},this)]},e.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1823,columnNumber:19},this))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1821,columnNumber:15},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1796,columnNumber:13},this):s.jsxDEV("div",{className:"model-benchmark__empty",children:"先在左侧选定“同供应商多模型”或“同模型跨供应商”,把批测目标编满后再开跑。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1947,columnNumber:13},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1571,columnNumber:9},this)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1570,columnNumber:7},this)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/model-benchmark/ModelBenchmarkWorkbench.tsx",lineNumber:1480,columnNumber:5},this)}export{Xs as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{r as l,bR as ie,bl as x,bS as re,bT as le,ah as W,al as te,ab as s,bU as de,an as oe,bV as ce,ae as k,ag as X,af as Y,bW as ue}from"./index-BIv91qW9.js";const pe=({images:o,onImagesChange:p,language:U="zh",disabled:m=!1,multiple:g=!0,maxCount:h=10,label:M,slotLabels:f,onError:t})=>{const[q,y]=l.useState(!1),[C,I]=l.useState(!1),[_,z]=l.useState(0),[j,w]=l.useState(null),F=l.useRef(null),S=l.useRef(null),{addAsset:B}=ie(),u={zh:{local:"本地",library:"素材库",dragHint:"拖拽图片到此处",pasteHint:"或 Ctrl+V 粘贴",invalidFile:"请上传图片文件",fileTooLarge:"图片大小不能超过 25MB",someFilesInvalid:"部分文件格式不支持或超过25MB限制",loadFailed:"加载图片失败",maxCountReached:"最多上传 {count} 张图片"},en:{local:"Local",library:"Library",dragHint:"Drop images here",pasteHint:"or Ctrl+V to paste",invalidFile:"Please upload image files",fileTooLarge:"Image size cannot exceed 25MB",someFilesInvalid:"Some files are not supported or exceed 25MB limit",loadFailed:"Failed to load image",maxCountReached:"Maximum {count} images allowed"}}[U],E=l.useCallback(e=>e.type.startsWith("image/")?e.size>25*1024*1024?(x.error(u.fileTooLarge),!1):!0:(x.error(u.invalidFile),!1),[u]),A=l.useCallback((e,a)=>new Promise((n,r)=>{const d=new FileReader;d.onload=()=>{n({url:d.result,name:a,file:(e instanceof File,e)})},d.onerror=r,d.readAsDataURL(e)}),[]),b=l.useCallback(async(e,a)=>{const r=Array.from(e).filter(E);if(r.length===0)return;g&&o.length+r.length>h&&(x.warning(u.maxCountReached.replace("{count}",String(h))),r.splice(h-o.length));const d=[];for(const i of r)try{let c=i;if(i.size>10*1024*1024){const N=re(i.size/1048576),v=x.loading({content:U==="zh"?`正在压缩图片 (${(i.size/1024/1024).toFixed(1)}MB)...`:`Compressing image (${(i.size/1024/1024).toFixed(1)}MB)...`,duration:0,placement:"top"});try{c=await le(i,N.targetSizeMB),x.close(v),x.success({content:U==="zh"?`压缩完成: ${(i.size/1024/1024).toFixed(1)}MB → ${(c.size/1024/1024).toFixed(1)}MB`:`Compressed: ${(i.size/1024/1024).toFixed(1)}MB → ${(c.size/1024/1024).toFixed(1)}MB`,duration:2})}catch(R){x.close(v),console.error("[ReferenceImageUpload] Compression failed:",R),t==null||t(U==="zh"?"图片压缩失败":"Image compression failed");continue}}d.push({blob:c,name:i.name})}catch(c){console.error("[ReferenceImageUpload] Error processing file:",c),t==null||t(u.loadFailed);continue}if(d.length!==0){d.forEach(({blob:i,name:c})=>{B(i,W.IMAGE,te.LOCAL,c).catch(N=>{console.warn("[ReferenceImageUpload] Failed to add asset to library:",N)})});try{const i=await Promise.all(d.map(({blob:c,name:N})=>A(c,N)));if(f&&a!==void 0){const c=[...o];c[a]=i[0],p(c.filter(Boolean))}else p(g?[...o,...i]:i.slice(0,1));t==null||t(null)}catch(i){console.error("[ReferenceImageUpload] Failed to process files:",i),t==null||t(u.loadFailed)}}},[o,g,h,f,U,E,A,B,p,t,u]),J=l.useCallback(e=>{const a=e.target.files;a&&a.length>0&&b(a,f?_:void 0),e.target.value=""},[b,f,_]),K=l.useCallback(async e=>{try{const n=await(await fetch(e.url)).blob(),r=new FileReader;r.onload=()=>{const d={url:r.result,name:e.name};if(f){const i=[...o];i[_]=d,p(i.filter(Boolean))}else if(g){if(o.length>=h){x.warning(u.maxCountReached.replace("{count}",String(h)));return}p([...o,d])}else p([d]);y(!1),t==null||t(null)},r.readAsDataURL(n)}catch(a){console.error("[ReferenceImageUpload] Failed to convert asset to base64:",a),t==null||t(u.loadFailed),y(!1)}},[o,g,h,f,_,p,t,u]),P=l.useCallback(e=>{e.preventDefault(),e.stopPropagation(),m||I(!0)},[m]),L=l.useCallback(e=>{var n;e.preventDefault(),e.stopPropagation();const a=(n=F.current)==null?void 0:n.getBoundingClientRect();if(a){const{clientX:r,clientY:d}=e;(r<a.left||r>a.right||d<a.top||d>a.bottom)&&I(!1)}},[]),T=l.useCallback(e=>{e.preventDefault(),e.stopPropagation()},[]),$=l.useCallback((e,a)=>{if(e.preventDefault(),e.stopPropagation(),I(!1),m)return;const n=e.dataTransfer.files;n&&n.length>0&&b(n,a)},[m,b]);l.useEffect(()=>{const e=async a=>{var N;if(m)return;const n=document.activeElement,r=F.current;if(!r||!(r.contains(n)||n===document.body||(n==null?void 0:n.tagName)==="BODY"))return;const i=(N=a.clipboardData)==null?void 0:N.items;if(!i)return;const c=[];for(let v=0;v<i.length;v++){const R=i[v];if(R.type.startsWith("image/")){const G=R.getAsFile();G&&c.push(G)}}c.length>0&&(a.preventDefault(),b(c))};return document.addEventListener("paste",e),()=>{document.removeEventListener("paste",e)}},[m,b]);const Q=l.useCallback(e=>{const a=o.filter((n,r)=>r!==e);w(null),p(a)},[o,p]),O=l.useCallback(e=>{var a;e!==void 0&&z(e),(a=S.current)==null||a.click()},[]),H=l.useCallback(e=>{e!==void 0&&z(e),y(!0)},[]),Z=l.useCallback((e,a)=>{const n=a.currentTarget.getBoundingClientRect(),r=n.left+n.width/2,d=n.top-10;w({url:e,x:r,y:d})},[]),ee=l.useCallback(()=>{w(null)},[]),D=e=>s.jsxDEV("div",{className:`reference-image-upload__placeholder ${C?"reference-image-upload__placeholder--dragging":""}`,onDragEnter:P,onDragLeave:L,onDragOver:T,onDrop:a=>$(a,e),children:s.jsxDEV("div",{className:"reference-image-upload__buttons",children:[s.jsxDEV(k,{variant:"outline",icon:s.jsxDEV(X,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:401,columnNumber:17},void 0),onClick:()=>O(e),disabled:m,"data-track":"reference_image_upload_local",className:"reference-image-upload__btn",children:u.local},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:399,columnNumber:9},void 0),s.jsxDEV(k,{variant:"outline",icon:s.jsxDEV(Y,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:411,columnNumber:17},void 0),onClick:()=>H(e),disabled:m,"data-track":"reference_image_upload_library",className:"reference-image-upload__btn",children:u.library},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:409,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:398,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:391,columnNumber:5},void 0),V=(e,a)=>s.jsxDEV("div",{className:"reference-image-upload__preview",onMouseEnter:n=>Z(e.url,n),onMouseLeave:ee,children:[s.jsxDEV("img",{src:e.url,alt:e.name,className:"reference-image-upload__image"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:431,columnNumber:7},void 0),s.jsxDEV("button",{type:"button",className:"reference-image-upload__remove",onClick:()=>Q(a),disabled:m,"data-track":"reference_image_upload_remove",children:s.jsxDEV(ue,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:443,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:436,columnNumber:7},void 0),f&&f[a]&&s.jsxDEV("div",{className:"reference-image-upload__slot-label",children:f[a]},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:446,columnNumber:9},void 0)]},a,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:425,columnNumber:5},void 0),ae=()=>f?s.jsxDEV("div",{className:"reference-image-upload__slots",children:f.map((e,a)=>{const n=o[a];return s.jsxDEV("div",{className:"reference-image-upload__slot",children:[s.jsxDEV("div",{className:"reference-image-upload__slot-title",children:e},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:463,columnNumber:15},void 0),n?V(n,a):s.jsxDEV("div",{className:`reference-image-upload__slot-placeholder ${C?"reference-image-upload__slot-placeholder--dragging":""}`,onDragEnter:P,onDragLeave:L,onDragOver:T,onDrop:r=>$(r,a),children:s.jsxDEV("div",{className:"reference-image-upload__slot-buttons",children:[s.jsxDEV(k,{variant:"outline",icon:s.jsxDEV(X,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:477,columnNumber:29},void 0),onClick:()=>O(a),disabled:m,"data-track":"reference_image_upload_slot_local",className:"reference-image-upload__slot-btn",children:u.local},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:475,columnNumber:21},void 0),s.jsxDEV(k,{variant:"outline",icon:s.jsxDEV(Y,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:487,columnNumber:29},void 0),onClick:()=>H(a),disabled:m,"data-track":"reference_image_upload_slot_library",className:"reference-image-upload__slot-btn",children:u.library},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:485,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:474,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:467,columnNumber:17},void 0)]},a,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:462,columnNumber:13},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:458,columnNumber:7},void 0):null,se=()=>{const e=g&&o.length<h;return s.jsxDEV("div",{className:"reference-image-upload__grid",children:[o.map((a,n)=>V(a,n)),e&&D(),o.length===0&&!e&&D()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:510,columnNumber:7},void 0)},ne=()=>o.length>0?s.jsxDEV("div",{className:"reference-image-upload__single",children:[V(o[0],0),s.jsxDEV("div",{className:"reference-image-upload__replace",children:D()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:524,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:522,columnNumber:9},void 0):D();return s.jsxDEV(s.Fragment,{children:[j&&de.createPortal(s.jsxDEV("div",{className:"reference-image-upload__hover-preview",style:{left:`${j.x}px`,top:`${j.y}px`,transform:"translate(-50%, -100%)"},children:s.jsxDEV("img",{src:j.url,alt:"Preview"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:545,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:537,columnNumber:9},void 0),document.body),s.jsxDEV("div",{ref:F,className:`reference-image-upload ${m?"reference-image-upload--disabled":""}`,tabIndex:0,children:[M&&s.jsxDEV("div",{className:"reference-image-upload__label",children:M},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:556,columnNumber:11},void 0),s.jsxDEV("input",{ref:S,type:"file",accept:"image/*",multiple:g&&!f,onChange:J,className:"reference-image-upload__input",disabled:m},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:559,columnNumber:9},void 0),f?ae():g?se():ne(),q&&s.jsxDEV(oe,{isOpen:q,onClose:()=>y(!1),mode:ce.SELECT,filterType:W.IMAGE,onSelect:K},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:572,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:550,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:534,columnNumber:5},void 0)};export{pe as R};
|
|
1
|
+
import{r as l,bR as ie,bl as x,bS as re,bT as le,ah as W,al as te,ab as s,bU as de,an as oe,bV as ce,ae as k,ag as X,af as Y,bW as ue}from"./index-Diazikky.js";const pe=({images:o,onImagesChange:p,language:U="zh",disabled:m=!1,multiple:g=!0,maxCount:h=10,label:M,slotLabels:f,onError:t})=>{const[q,y]=l.useState(!1),[C,I]=l.useState(!1),[_,z]=l.useState(0),[j,w]=l.useState(null),F=l.useRef(null),S=l.useRef(null),{addAsset:B}=ie(),u={zh:{local:"本地",library:"素材库",dragHint:"拖拽图片到此处",pasteHint:"或 Ctrl+V 粘贴",invalidFile:"请上传图片文件",fileTooLarge:"图片大小不能超过 25MB",someFilesInvalid:"部分文件格式不支持或超过25MB限制",loadFailed:"加载图片失败",maxCountReached:"最多上传 {count} 张图片"},en:{local:"Local",library:"Library",dragHint:"Drop images here",pasteHint:"or Ctrl+V to paste",invalidFile:"Please upload image files",fileTooLarge:"Image size cannot exceed 25MB",someFilesInvalid:"Some files are not supported or exceed 25MB limit",loadFailed:"Failed to load image",maxCountReached:"Maximum {count} images allowed"}}[U],E=l.useCallback(e=>e.type.startsWith("image/")?e.size>25*1024*1024?(x.error(u.fileTooLarge),!1):!0:(x.error(u.invalidFile),!1),[u]),A=l.useCallback((e,a)=>new Promise((n,r)=>{const d=new FileReader;d.onload=()=>{n({url:d.result,name:a,file:(e instanceof File,e)})},d.onerror=r,d.readAsDataURL(e)}),[]),b=l.useCallback(async(e,a)=>{const r=Array.from(e).filter(E);if(r.length===0)return;g&&o.length+r.length>h&&(x.warning(u.maxCountReached.replace("{count}",String(h))),r.splice(h-o.length));const d=[];for(const i of r)try{let c=i;if(i.size>10*1024*1024){const N=re(i.size/1048576),v=x.loading({content:U==="zh"?`正在压缩图片 (${(i.size/1024/1024).toFixed(1)}MB)...`:`Compressing image (${(i.size/1024/1024).toFixed(1)}MB)...`,duration:0,placement:"top"});try{c=await le(i,N.targetSizeMB),x.close(v),x.success({content:U==="zh"?`压缩完成: ${(i.size/1024/1024).toFixed(1)}MB → ${(c.size/1024/1024).toFixed(1)}MB`:`Compressed: ${(i.size/1024/1024).toFixed(1)}MB → ${(c.size/1024/1024).toFixed(1)}MB`,duration:2})}catch(R){x.close(v),console.error("[ReferenceImageUpload] Compression failed:",R),t==null||t(U==="zh"?"图片压缩失败":"Image compression failed");continue}}d.push({blob:c,name:i.name})}catch(c){console.error("[ReferenceImageUpload] Error processing file:",c),t==null||t(u.loadFailed);continue}if(d.length!==0){d.forEach(({blob:i,name:c})=>{B(i,W.IMAGE,te.LOCAL,c).catch(N=>{console.warn("[ReferenceImageUpload] Failed to add asset to library:",N)})});try{const i=await Promise.all(d.map(({blob:c,name:N})=>A(c,N)));if(f&&a!==void 0){const c=[...o];c[a]=i[0],p(c.filter(Boolean))}else p(g?[...o,...i]:i.slice(0,1));t==null||t(null)}catch(i){console.error("[ReferenceImageUpload] Failed to process files:",i),t==null||t(u.loadFailed)}}},[o,g,h,f,U,E,A,B,p,t,u]),J=l.useCallback(e=>{const a=e.target.files;a&&a.length>0&&b(a,f?_:void 0),e.target.value=""},[b,f,_]),K=l.useCallback(async e=>{try{const n=await(await fetch(e.url)).blob(),r=new FileReader;r.onload=()=>{const d={url:r.result,name:e.name};if(f){const i=[...o];i[_]=d,p(i.filter(Boolean))}else if(g){if(o.length>=h){x.warning(u.maxCountReached.replace("{count}",String(h)));return}p([...o,d])}else p([d]);y(!1),t==null||t(null)},r.readAsDataURL(n)}catch(a){console.error("[ReferenceImageUpload] Failed to convert asset to base64:",a),t==null||t(u.loadFailed),y(!1)}},[o,g,h,f,_,p,t,u]),P=l.useCallback(e=>{e.preventDefault(),e.stopPropagation(),m||I(!0)},[m]),L=l.useCallback(e=>{var n;e.preventDefault(),e.stopPropagation();const a=(n=F.current)==null?void 0:n.getBoundingClientRect();if(a){const{clientX:r,clientY:d}=e;(r<a.left||r>a.right||d<a.top||d>a.bottom)&&I(!1)}},[]),T=l.useCallback(e=>{e.preventDefault(),e.stopPropagation()},[]),$=l.useCallback((e,a)=>{if(e.preventDefault(),e.stopPropagation(),I(!1),m)return;const n=e.dataTransfer.files;n&&n.length>0&&b(n,a)},[m,b]);l.useEffect(()=>{const e=async a=>{var N;if(m)return;const n=document.activeElement,r=F.current;if(!r||!(r.contains(n)||n===document.body||(n==null?void 0:n.tagName)==="BODY"))return;const i=(N=a.clipboardData)==null?void 0:N.items;if(!i)return;const c=[];for(let v=0;v<i.length;v++){const R=i[v];if(R.type.startsWith("image/")){const G=R.getAsFile();G&&c.push(G)}}c.length>0&&(a.preventDefault(),b(c))};return document.addEventListener("paste",e),()=>{document.removeEventListener("paste",e)}},[m,b]);const Q=l.useCallback(e=>{const a=o.filter((n,r)=>r!==e);w(null),p(a)},[o,p]),O=l.useCallback(e=>{var a;e!==void 0&&z(e),(a=S.current)==null||a.click()},[]),H=l.useCallback(e=>{e!==void 0&&z(e),y(!0)},[]),Z=l.useCallback((e,a)=>{const n=a.currentTarget.getBoundingClientRect(),r=n.left+n.width/2,d=n.top-10;w({url:e,x:r,y:d})},[]),ee=l.useCallback(()=>{w(null)},[]),D=e=>s.jsxDEV("div",{className:`reference-image-upload__placeholder ${C?"reference-image-upload__placeholder--dragging":""}`,onDragEnter:P,onDragLeave:L,onDragOver:T,onDrop:a=>$(a,e),children:s.jsxDEV("div",{className:"reference-image-upload__buttons",children:[s.jsxDEV(k,{variant:"outline",icon:s.jsxDEV(X,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:401,columnNumber:17},void 0),onClick:()=>O(e),disabled:m,"data-track":"reference_image_upload_local",className:"reference-image-upload__btn",children:u.local},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:399,columnNumber:9},void 0),s.jsxDEV(k,{variant:"outline",icon:s.jsxDEV(Y,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:411,columnNumber:17},void 0),onClick:()=>H(e),disabled:m,"data-track":"reference_image_upload_library",className:"reference-image-upload__btn",children:u.library},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:409,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:398,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:391,columnNumber:5},void 0),V=(e,a)=>s.jsxDEV("div",{className:"reference-image-upload__preview",onMouseEnter:n=>Z(e.url,n),onMouseLeave:ee,children:[s.jsxDEV("img",{src:e.url,alt:e.name,className:"reference-image-upload__image"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:431,columnNumber:7},void 0),s.jsxDEV("button",{type:"button",className:"reference-image-upload__remove",onClick:()=>Q(a),disabled:m,"data-track":"reference_image_upload_remove",children:s.jsxDEV(ue,{size:14},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:443,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:436,columnNumber:7},void 0),f&&f[a]&&s.jsxDEV("div",{className:"reference-image-upload__slot-label",children:f[a]},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:446,columnNumber:9},void 0)]},a,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:425,columnNumber:5},void 0),ae=()=>f?s.jsxDEV("div",{className:"reference-image-upload__slots",children:f.map((e,a)=>{const n=o[a];return s.jsxDEV("div",{className:"reference-image-upload__slot",children:[s.jsxDEV("div",{className:"reference-image-upload__slot-title",children:e},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:463,columnNumber:15},void 0),n?V(n,a):s.jsxDEV("div",{className:`reference-image-upload__slot-placeholder ${C?"reference-image-upload__slot-placeholder--dragging":""}`,onDragEnter:P,onDragLeave:L,onDragOver:T,onDrop:r=>$(r,a),children:s.jsxDEV("div",{className:"reference-image-upload__slot-buttons",children:[s.jsxDEV(k,{variant:"outline",icon:s.jsxDEV(X,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:477,columnNumber:29},void 0),onClick:()=>O(a),disabled:m,"data-track":"reference_image_upload_slot_local",className:"reference-image-upload__slot-btn",children:u.local},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:475,columnNumber:21},void 0),s.jsxDEV(k,{variant:"outline",icon:s.jsxDEV(Y,{size:16},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:487,columnNumber:29},void 0),onClick:()=>H(a),disabled:m,"data-track":"reference_image_upload_slot_library",className:"reference-image-upload__slot-btn",children:u.library},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:485,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:474,columnNumber:19},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:467,columnNumber:17},void 0)]},a,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:462,columnNumber:13},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:458,columnNumber:7},void 0):null,se=()=>{const e=g&&o.length<h;return s.jsxDEV("div",{className:"reference-image-upload__grid",children:[o.map((a,n)=>V(a,n)),e&&D(),o.length===0&&!e&&D()]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:510,columnNumber:7},void 0)},ne=()=>o.length>0?s.jsxDEV("div",{className:"reference-image-upload__single",children:[V(o[0],0),s.jsxDEV("div",{className:"reference-image-upload__replace",children:D()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:524,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:522,columnNumber:9},void 0):D();return s.jsxDEV(s.Fragment,{children:[j&&de.createPortal(s.jsxDEV("div",{className:"reference-image-upload__hover-preview",style:{left:`${j.x}px`,top:`${j.y}px`,transform:"translate(-50%, -100%)"},children:s.jsxDEV("img",{src:j.url,alt:"Preview"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:545,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:537,columnNumber:9},void 0),document.body),s.jsxDEV("div",{ref:F,className:`reference-image-upload ${m?"reference-image-upload--disabled":""}`,tabIndex:0,children:[M&&s.jsxDEV("div",{className:"reference-image-upload__label",children:M},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:556,columnNumber:11},void 0),s.jsxDEV("input",{ref:S,type:"file",accept:"image/*",multiple:g&&!f,onChange:J,className:"reference-image-upload__input",disabled:m},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:559,columnNumber:9},void 0),f?ae():g?se():ne(),q&&s.jsxDEV(oe,{isOpen:q,onClose:()=>y(!1),mode:ce.SELECT,filterType:W.IMAGE,onSelect:K},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:572,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:550,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/ttd-dialog/shared/ReferenceImageUpload.tsx",lineNumber:534,columnNumber:5},void 0)};export{pe as R};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{c as Ar,eU as On,eo as Ie,eV as yt,bP as W,es as Pr,eW as dt,bN as J,r as N,ei as re,em as ue,eX as Qt,bG as tt,eY as Mr,bO as Ee,bx as qr,eu as kn,bH as Vn,bI as In,bJ as Ln,bK as An,bM as Yt,ej as Ue,bB as mt,et as mr,eZ as Jt,e_ as Pn,ev as Rr,eA as Xe,b5 as Mn,ew as qn,ek as Rn,e$ as Un,f0 as vr,f1 as $n,f2 as Hn,f3 as Kn,I as zn,_ as Wn,t as Bn,ab as P,bg as Pt,ae as je,bh as Gn,f4 as Qn,f5 as Ur,f6 as Je,f7 as Yn,bl as Ne,f8 as Re,cj as Jn,be as Ze,cV as Zn,A as Xn,dA as ea,f9 as ta,fa as gr,fb as ra,cl as hr,fc as pr,b as na,cc as aa,bf as oa,ef as ia,cg as la}from"./index-
|
|
1
|
+
import{c as Ar,eU as On,eo as Ie,eV as yt,bP as W,es as Pr,eW as dt,bN as J,r as N,ei as re,em as ue,eX as Qt,bG as tt,eY as Mr,bO as Ee,bx as qr,eu as kn,bH as Vn,bI as In,bJ as Ln,bK as An,bM as Yt,ej as Ue,bB as mt,et as mr,eZ as Jt,e_ as Pn,ev as Rr,eA as Xe,b5 as Mn,ew as qn,ek as Rn,e$ as Un,f0 as vr,f1 as $n,f2 as Hn,f3 as Kn,I as zn,_ as Wn,t as Bn,ab as P,bg as Pt,ae as je,bh as Gn,f4 as Qn,f5 as Ur,f6 as Je,f7 as Yn,bl as Ne,f8 as Re,cj as Jn,be as Ze,cV as Zn,A as Xn,dA as ea,f9 as ta,fa as gr,fb as ra,cl as hr,fc as pr,b as na,cc as aa,bf as oa,ef as ia,cg as la}from"./index-Diazikky.js";import{i as Ke}from"./isEmpty-B2SlhWS8.js";import{g as le}from"./hasIn-BnqD3im9.js";import{h as $r}from"./has-Cfo42O_S.js";import{b as ua}from"./pick-Dy1eQ_1d.js";import{S as Hr}from"./index-Ck7rYA9l.js";function sa(){if(!arguments.length)return[];var t=arguments[0];return Ar(t)?t:[t]}function yr(t){return t===null}function $e(t,r,e){return t==null?t:ua(t,r,e)}function et(t,r){return t==null?!0:On(t,r)}/**
|
|
2
2
|
* tdesign v1.16.3
|
|
3
3
|
* (c) 2026 tdesign
|
|
4
4
|
* @license MIT
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{as as Se,ab as e,bN as Ae,c2 as be,r as l,bY as se,dm as Ie,dn as Me,dp as Ue,ce as ne,c6 as ie,dq as X,dr as $e,cV as Te,y as Oe,ds as me,dt as ke}from"./index-
|
|
1
|
+
import{as as Se,ab as e,bN as Ae,c2 as be,r as l,bY as se,dm as Ie,dn as Me,dp as Ue,ce as ne,c6 as ie,dq as X,dr as $e,cV as Te,y as Oe,ds as me,dt as ke}from"./index-Diazikky.js";import{R as Ge}from"./ResizableDivider-CZlMlLZf.js";const qe="video-analyzer:records",Re=50;async function ue(){return await Se.get(qe)||[]}async function he(a){await Se.set(qe,a)}async function Fe(a){const r=await ue();for(r.unshift(a);r.length>Re;){let n=-1;for(let u=r.length-1;u>=0;u--)if(!r[u].starred){n=u;break}if(n===-1)break;r.splice(n,1)}return await he(r),r}async function Y(a,r){const n=await ue(),u=n.findIndex(i=>i.id===a);return u>=0&&(n[u]={...n[u],...r},await he(n)),n}async function Le(a){const n=(await ue()).filter(u=>u.id!==a);return await he(n),n}const ze=[{id:"analyze",label:"分析"},{id:"script",label:"脚本"},{id:"generate",label:"生成"}],Be=({current:a,onNavigate:r,hasRecord:n})=>{const u=ze.findIndex(i=>i.id===a);return e.jsxDEV("div",{className:"va-step-bar",children:ze.map((i,f)=>{const t=i.id===a,c=f<u,p=!n&&f>0;return e.jsxDEV(Ae.Fragment,{children:[f>0&&e.jsxDEV("span",{className:"va-step-arrow",children:"→"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/StepBar.tsx",lineNumber:33,columnNumber:23},void 0),e.jsxDEV("button",{className:`va-step ${t?"active":""} ${c?"past":""}`,onClick:()=>!p&&r(i.id),disabled:p,children:[e.jsxDEV("span",{className:"va-step-num",children:f+1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/StepBar.tsx",lineNumber:39,columnNumber:15},void 0),i.label]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/StepBar.tsx",lineNumber:34,columnNumber:13},void 0)]},i.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/StepBar.tsx",lineNumber:32,columnNumber:11},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/video-analyzer/components/StepBar.tsx",lineNumber:25,columnNumber:5},void 0)};function Pe(a,r){var u,i,f,t;if(a.prompt!==void 0)return{prompt:a.prompt,targetDuration:a.targetDuration??r,videoModel:a.videoModel,videoModelRef:be((u=a.videoModelRef)==null?void 0:u.profileId,(i=a.videoModelRef)==null?void 0:i.modelId),segmentDuration:a.segmentDuration};const n=[];return a.name&&n.push(a.name),a.category&&n.push(a.category),a.sellingPoints&&n.push(a.sellingPoints),{prompt:n.join(","),targetDuration:a.targetDuration??r,videoModel:a.videoModel,videoModelRef:be((f=a.videoModelRef)==null?void 0:f.profileId,(t=a.videoModelRef)==null?void 0:t.modelId),segmentDuration:a.segmentDuration}}const de={opening:"#3B82F6",product:"#F59E0B",detail:"#8B5CF6",scene:"#10B981",cta:"#EF4444",other:"#6B7280"};function De(a){switch(a){case"9x16":return"720x1280";case"1x1":return"1024x1024";default:return"1280x720"}}function Ce(a,r,n){const u=a.map((t,c)=>[`### ${c+1}. ${t.label} (${t.startTime}s-${t.endTime}s)`,"",`**画面描述:** ${t.description||"-"}`,"",`**旁白:** ${t.narration||"-"}`,t.dialogue?`
|
|
2
2
|
**角色对白:** ${t.dialogue}`:"",t.dialogue_speakers?`
|
|
3
3
|
**对白角色:** ${t.dialogue_speakers}`:"",t.speech_relation?`
|
|
4
4
|
**语音关系:** ${t.speech_relation}`:"",t.camera_movement?`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as w,J as D,B as f,C,K as V,L as k,O as p}from"./index-
|
|
1
|
+
import{A as w,J as D,B as f,C,K as V,L as k,O as p}from"./index-Diazikky.js";function z(n,e){switch(n){case"generate_image":return`生成图片: ${((e==null?void 0:e.prompt)||"").substring(0,30)}...`;case"generate_video":return`生成视频: ${((e==null?void 0:e.prompt)||"").substring(0,30)}...`;case"generate_grid_image":return`生成宫格图: ${((e==null?void 0:e.theme)||"").substring(0,30)}...`;case"insert_svg":return"插入SVG矢量图";case"canvas_insertion":case"insert_to_canvas":return"插入到画布";default:return`执行 ${n}`}}async function E(n,e,l){var M;if(!n)return{success:!1,error:"缺少必填参数 context"};const s=[];try{const a=w.get(),i=await D.execute(n,{model:n.model.id||a.textModelName||((M=f("text")[0])==null?void 0:M.id)||p(),modelRef:l||null,onChunk:r=>{var t;(t=e==null?void 0:e.onChunk)==null||t.call(e,r)},onToolCall:r=>{var I,h,v,T,y;const t={...r.arguments};if(["generate_image","generate_video","generate_grid_image","generate_photo_wall"].includes(r.name)){const u=t.model,m=r.name==="generate_video",S=(I=n.model)==null?void 0:I.type,x=(h=n.model)==null?void 0:h.id,g=S===(m?"video":"image")?x:void 0,d=g&&(l==null?void 0:l.modelId)===g?l:null,$=a.imageModelName||((v=f("image")[0])==null?void 0:v.id)||C(),b=a.videoModelName||((T=f("video")[0])==null?void 0:T.id)||V(),o=g||(m?b:$);if(u){const A=k(u);(m?A!=="video":A!=="image")?(t.model=o,d&&d.modelId===o?t.modelRef=d:delete t.modelRef):d&&d.modelId===u&&(t.modelRef=d)}else t.model=o,d&&d.modelId===o?t.modelRef=d:delete t.modelRef}const _={id:`step-tool-${Date.now()}-${Math.random().toString(36).substring(2,6)}`,mcp:r.name,args:t,description:z(r.name,t),status:"pending"};s.push(_),(y=e==null?void 0:e.onAddSteps)==null||y.call(e,[_])},onToolResult:r=>{var t;if(s.length>0){const c=s[s.length-1];c.status=r.success?"completed":"failed",(t=e==null?void 0:e.onUpdateStep)==null||t.call(e,c.id,c.status,r.data,r.error)}}});return i.success?{success:!0,generatedSteps:s,response:i.response}:{success:!1,error:i.error||"AI 分析失败",generatedSteps:s}}catch(a){return console.error("[AIAnalyze] Analysis failed:",a),{success:!1,error:a.message||"AI 分析失败",generatedSteps:s}}}export{E as analyzeWithAI};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{w as ln,c as J}from"./path-CY0bYimO.js";import{D as rn,E as N,F as D,G as an,H as y,I as on,J as z,K as _,L as un,M as t,N as sn,O as tn,P as fn}from"./mermaid.core-
|
|
1
|
+
import{w as ln,c as J}from"./path-CY0bYimO.js";import{D as rn,E as N,F as D,G as an,H as y,I as on,J as z,K as _,L as un,M as t,N as sn,O as tn,P as fn}from"./mermaid.core-B5XmWSVz.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function mn(l){return l.endAngle}function pn(l){return l&&l.padAngle}function dn(l,h,O,E,v,A,K,r){var q=O-l,i=E-h,n=K-v,m=r-A,a=m*q-n*i;if(!(a*a<y))return a=(n*(h-A)-m*(l-v))/a,[l+a*q,h+a*i]}function W(l,h,O,E,v,A,K){var r=l-O,q=h-E,i=(K?A:-A)/z(r*r+q*q),n=i*q,m=-i*r,a=l+n,s=h+m,f=O+n,c=E+m,L=(a+f)/2,o=(s+c)/2,p=f-a,g=c-s,R=p*p+g*g,T=v-A,P=a*c-f*s,F=(g<0?-1:1)*z(tn(0,T*T*R-P*P)),G=(P*g-p*F)/R,H=(-P*p-g*F)/R,w=(P*g+p*F)/R,d=(-P*p+g*F)/R,x=G-L,e=H-o,u=w-L,M=d-o;return x*x+e*e>u*u+M*M&&(G=w,H=d),{cx:G,cy:H,x01:-n,y01:-m,x11:G*(v/T-1),y11:H*(v/T-1)}}function vn(){var l=cn,h=yn,O=J(0),E=null,v=gn,A=mn,K=pn,r=null,q=ln(i);function i(){var n,m,a=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,L=un(c-f),o=c>f;if(r||(r=n=q()),s<a&&(m=s,s=a,a=m),!(s>y))r.moveTo(0,0);else if(L>on-y)r.moveTo(s*N(f),s*D(f)),r.arc(0,0,s,f,c,!o),a>y&&(r.moveTo(a*N(c),a*D(c)),r.arc(0,0,a,c,f,o));else{var p=f,g=c,R=f,T=c,P=L,F=L,G=K.apply(this,arguments)/2,H=G>y&&(E?+E.apply(this,arguments):z(a*a+s*s)),w=_(un(s-a)/2,+O.apply(this,arguments)),d=w,x=w,e,u;if(H>y){var M=sn(H/a*D(G)),B=sn(H/s*D(G));(P-=M*2)>y?(M*=o?1:-1,R+=M,T-=M):(P=0,R=T=(f+c)/2),(F-=B*2)>y?(B*=o?1:-1,p+=B,g-=B):(F=0,p=g=(f+c)/2)}var S=s*N(p),j=s*D(p),C=a*N(T),Q=a*D(T);if(w>y){var U=s*N(g),V=s*D(g),X=a*N(R),Y=a*D(R),I;if(L<rn)if(I=dn(S,j,X,Y,U,V,C,Q)){var Z=S-I[0],$=j-I[1],k=U-I[0],b=V-I[1],nn=1/D(fn((Z*k+$*b)/(z(Z*Z+$*$)*z(k*k+b*b)))/2),en=z(I[0]*I[0]+I[1]*I[1]);d=_(w,(a-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else d=x=0}F>y?x>y?(e=W(X,Y,S,j,s,x,o),u=W(U,V,C,Q,s,x,o),r.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?r.arc(e.cx,e.cy,x,t(e.y01,e.x01),t(u.y01,u.x01),!o):(r.arc(e.cx,e.cy,x,t(e.y01,e.x01),t(e.y11,e.x11),!o),r.arc(0,0,s,t(e.cy+e.y11,e.cx+e.x11),t(u.cy+u.y11,u.cx+u.x11),!o),r.arc(u.cx,u.cy,x,t(u.y11,u.x11),t(u.y01,u.x01),!o))):(r.moveTo(S,j),r.arc(0,0,s,p,g,!o)):r.moveTo(S,j),!(a>y)||!(P>y)?r.lineTo(C,Q):d>y?(e=W(C,Q,U,V,a,-d,o),u=W(S,j,X,Y,a,-d,o),r.lineTo(e.cx+e.x01,e.cy+e.y01),d<w?r.arc(e.cx,e.cy,d,t(e.y01,e.x01),t(u.y01,u.x01),!o):(r.arc(e.cx,e.cy,d,t(e.y01,e.x01),t(e.y11,e.x11),!o),r.arc(0,0,a,t(e.cy+e.y11,e.cx+e.x11),t(u.cy+u.y11,u.cx+u.x11),o),r.arc(u.cx,u.cy,d,t(u.y11,u.x11),t(u.y01,u.x01),!o))):r.arc(0,0,a,T,R,o)}if(r.closePath(),n)return r=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,m=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-rn/2;return[N(m)*n,D(m)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:J(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:J(+n),i):h},i.cornerRadius=function(n){return arguments.length?(O=typeof n=="function"?n:J(+n),i):O},i.padRadius=function(n){return arguments.length?(E=n==null?null:typeof n=="function"?n:J(+n),i):E},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:J(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:J(+n),i):A},i.padAngle=function(n){return arguments.length?(K=typeof n=="function"?n:J(+n),i):K},i.context=function(n){return arguments.length?(r=n??null,i):r},i}export{vn as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{w as ln,c as J}from"./path-CbwjOpE9.js";import{E as rn,F as N,G as E,H as an,I as y,J as on,K as j,L as _,M as un,N as t,O as sn,P as tn,Q as fn}from"./index-
|
|
1
|
+
import{w as ln,c as J}from"./path-CbwjOpE9.js";import{E as rn,F as N,G as E,H as an,I as y,J as on,K as j,L as _,M as un,N as t,O as sn,P as tn,Q as fn}from"./index-CjoN3geg.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function mn(l){return l.endAngle}function pn(l){return l&&l.padAngle}function dn(l,h,q,I,v,A,K,r){var D=q-l,i=I-h,n=K-v,m=r-A,a=m*D-n*i;if(!(a*a<y))return a=(n*(h-A)-m*(l-v))/a,[l+a*D,h+a*i]}function W(l,h,q,I,v,A,K){var r=l-q,D=h-I,i=(K?A:-A)/j(r*r+D*D),n=i*D,m=-i*r,a=l+n,s=h+m,f=q+n,c=I+m,L=(a+f)/2,o=(s+c)/2,p=f-a,g=c-s,R=p*p+g*g,T=v-A,P=a*c-f*s,F=(g<0?-1:1)*j(tn(0,T*T*R-P*P)),G=(P*g-p*F)/R,H=(-P*p-g*F)/R,w=(P*g+p*F)/R,d=(-P*p+g*F)/R,x=G-L,e=H-o,u=w-L,M=d-o;return x*x+e*e>u*u+M*M&&(G=w,H=d),{cx:G,cy:H,x01:-n,y01:-m,x11:G*(v/T-1),y11:H*(v/T-1)}}function vn(){var l=cn,h=yn,q=J(0),I=null,v=gn,A=mn,K=pn,r=null,D=ln(i);function i(){var n,m,a=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-an,c=A.apply(this,arguments)-an,L=un(c-f),o=c>f;if(r||(r=n=D()),s<a&&(m=s,s=a,a=m),!(s>y))r.moveTo(0,0);else if(L>on-y)r.moveTo(s*N(f),s*E(f)),r.arc(0,0,s,f,c,!o),a>y&&(r.moveTo(a*N(c),a*E(c)),r.arc(0,0,a,c,f,o));else{var p=f,g=c,R=f,T=c,P=L,F=L,G=K.apply(this,arguments)/2,H=G>y&&(I?+I.apply(this,arguments):j(a*a+s*s)),w=_(un(s-a)/2,+q.apply(this,arguments)),d=w,x=w,e,u;if(H>y){var M=sn(H/a*E(G)),z=sn(H/s*E(G));(P-=M*2)>y?(M*=o?1:-1,R+=M,T-=M):(P=0,R=T=(f+c)/2),(F-=z*2)>y?(z*=o?1:-1,p+=z,g-=z):(F=0,p=g=(f+c)/2)}var Q=s*N(p),S=s*E(p),B=a*N(T),C=a*E(T);if(w>y){var U=s*N(g),V=s*E(g),X=a*N(R),Y=a*E(R),O;if(L<rn)if(O=dn(Q,S,X,Y,U,V,B,C)){var Z=Q-O[0],$=S-O[1],k=U-O[0],b=V-O[1],nn=1/E(fn((Z*k+$*b)/(j(Z*Z+$*$)*j(k*k+b*b)))/2),en=j(O[0]*O[0]+O[1]*O[1]);d=_(w,(a-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else d=x=0}F>y?x>y?(e=W(X,Y,Q,S,s,x,o),u=W(U,V,B,C,s,x,o),r.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?r.arc(e.cx,e.cy,x,t(e.y01,e.x01),t(u.y01,u.x01),!o):(r.arc(e.cx,e.cy,x,t(e.y01,e.x01),t(e.y11,e.x11),!o),r.arc(0,0,s,t(e.cy+e.y11,e.cx+e.x11),t(u.cy+u.y11,u.cx+u.x11),!o),r.arc(u.cx,u.cy,x,t(u.y11,u.x11),t(u.y01,u.x01),!o))):(r.moveTo(Q,S),r.arc(0,0,s,p,g,!o)):r.moveTo(Q,S),!(a>y)||!(P>y)?r.lineTo(B,C):d>y?(e=W(B,C,U,V,a,-d,o),u=W(Q,S,X,Y,a,-d,o),r.lineTo(e.cx+e.x01,e.cy+e.y01),d<w?r.arc(e.cx,e.cy,d,t(e.y01,e.x01),t(u.y01,u.x01),!o):(r.arc(e.cx,e.cy,d,t(e.y01,e.x01),t(e.y11,e.x11),!o),r.arc(0,0,a,t(e.cy+e.y11,e.cx+e.x11),t(u.cy+u.y11,u.cx+u.x11),o),r.arc(u.cx,u.cy,d,t(u.y11,u.x11),t(u.y01,u.x01),!o))):r.arc(0,0,a,T,R,o)}if(r.closePath(),n)return r=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,m=(+v.apply(this,arguments)+ +A.apply(this,arguments))/2-rn/2;return[N(m)*n,E(m)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:J(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:J(+n),i):h},i.cornerRadius=function(n){return arguments.length?(q=typeof n=="function"?n:J(+n),i):q},i.padRadius=function(n){return arguments.length?(I=n==null?null:typeof n=="function"?n:J(+n),i):I},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:J(+n),i):v},i.endAngle=function(n){return arguments.length?(A=typeof n=="function"?n:J(+n),i):A},i.padAngle=function(n){return arguments.length?(K=typeof n=="function"?n:J(+n),i):K},i.context=function(n){return arguments.length?(r=n??null,i):r},i}export{vn as a};
|