chainlesschain 0.47.6 → 0.47.8
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/package.json +2 -2
- package/src/assets/web-panel/.build-hash +1 -1
- package/src/assets/web-panel/assets/Analytics-BFI7jbwM.css +1 -0
- package/src/assets/web-panel/assets/Analytics-DQ135mAd.js +3 -0
- package/src/assets/web-panel/assets/AppLayout-6SPt_8Y_.js +1 -0
- package/src/assets/web-panel/assets/AppLayout-BFJ-Fofn.css +1 -0
- package/src/assets/web-panel/assets/{Backup-Ba9UybpT.js → Backup-DbVRG5vE.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-BwXskT21.js → Chat-wVhrFK9C.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-UmOe7qvE.js → Cowork-lOC25IW2.js} +1 -1
- package/src/assets/web-panel/assets/{Cron-JHS-rc-4.js → Cron-3P0eVLTV.js} +1 -1
- package/src/assets/web-panel/assets/{Dashboard-B95cMCO7.js → Dashboard-Br7kCwKJ.js} +1 -1
- package/src/assets/web-panel/assets/{Git-CSYO0_zk.js → Git-CrDCcBig.js} +2 -2
- package/src/assets/web-panel/assets/{Logs-Hxw_K0km.js → Logs-BfTE8urP.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-DIE75TrB.js → McpTools-CsGIijNe.js} +1 -1
- package/src/assets/web-panel/assets/{Memory-C4KVnLlp.js → Memory-BXX_yMKJ.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-DuzrHMAk.js → Notes-DU6Vf2cL.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-DTq6uF82.js → Organization-Bny6yOPV.js} +4 -4
- package/src/assets/web-panel/assets/{P2P-C0hjlhsR.js → P2P-BxFZ1Bit.js} +2 -2
- package/src/assets/web-panel/assets/{Permissions-Ec0NH-xC.js → Permissions-B1j3Mtms.js} +3 -3
- package/src/assets/web-panel/assets/{Projects-U8D0asCS.js → Projects-D-CGscDu.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-BngtTLvJ.js → Providers-r6NaBYMf.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-B9NbwCKM.js → RssFeed-D7b68C5q.js} +1 -1
- package/src/assets/web-panel/assets/{Security-BL5Rkr1T.js → Security-MJfKv0EJ.js} +3 -3
- package/src/assets/web-panel/assets/{Services-D4MJzLld.js → Services-Yb_Q1V3d.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-CQTOMDwF.js → Skills-DLTHcH5T.js} +1 -1
- package/src/assets/web-panel/assets/{Tasks-DepbJMnL.js → Tasks-CqycpPjS.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-C24PVZPu.js → Templates-y01u2Zis.js} +1 -1
- package/src/assets/web-panel/assets/VideoEditing-BA1N-5kq.css +1 -0
- package/src/assets/web-panel/assets/VideoEditing-B_nPKw6B.js +1 -0
- package/src/assets/web-panel/assets/{Wallet-PQoSpN_P.js → Wallet-CsRgnjJY.js} +1 -1
- package/src/assets/web-panel/assets/{WebAuthn-BcuyQ4Lr.js → WebAuthn-DWoR5ADp.js} +1 -1
- package/src/assets/web-panel/assets/{WorkflowEditor-C-SvXbHW.js → WorkflowEditor-DBJhFPMN.js} +1 -1
- package/src/assets/web-panel/assets/{antd-DEjZPGMj.js → antd-Dh2t0vGq.js} +84 -84
- package/src/assets/web-panel/assets/index-tN-8TosE.js +2 -0
- package/src/assets/web-panel/assets/{markdown-CusdXFxb.js → markdown-CBnGGMzE.js} +1 -1
- package/src/assets/web-panel/index.html +2 -2
- package/src/commands/agent.js +20 -0
- package/src/commands/mcp.js +86 -4
- package/src/commands/memory.js +85 -4
- package/src/commands/sandbox.js +80 -6
- package/src/commands/serve.js +10 -0
- package/src/commands/session.js +250 -0
- package/src/commands/stream.js +75 -0
- package/src/commands/video.js +363 -0
- package/src/gateways/http/envelope-http-server.js +194 -0
- package/src/gateways/ws/message-dispatcher.js +123 -0
- package/src/gateways/ws/session-core-protocol.js +427 -0
- package/src/gateways/ws/session-protocol.js +42 -1
- package/src/gateways/ws/video-protocol.js +230 -0
- package/src/gateways/ws/ws-server.js +72 -0
- package/src/gateways/ws/ws-session-gateway.js +7 -3
- package/src/harness/jsonl-session-store.js +17 -9
- package/src/index.js +8 -0
- package/src/lib/agent-stream.js +63 -0
- package/src/lib/chat-core.js +183 -6
- package/src/lib/cowork/ab-comparator-cli.js +44 -23
- package/src/lib/cowork/agent-group-runner.js +145 -0
- package/src/lib/cowork/debate-review-cli.js +47 -25
- package/src/lib/cowork/project-style-analyzer-cli.js +34 -7
- package/src/lib/interaction-adapter.js +59 -1
- package/src/lib/jsonl-session-store.js +2 -0
- package/src/lib/memory-injection.js +90 -0
- package/src/lib/provider-stream.js +120 -0
- package/src/lib/sandbox-v2.js +198 -3
- package/src/lib/session-consolidator.js +125 -0
- package/src/lib/session-core-singletons.js +56 -0
- package/src/lib/session-tail.js +128 -0
- package/src/lib/session-usage.js +166 -0
- package/src/lib/shell-approval.js +96 -0
- package/src/lib/ws-chat-handler.js +3 -0
- package/src/repl/agent-repl.js +294 -6
- package/src/repl/chat-repl.js +87 -100
- package/src/runtime/agent-core.js +98 -15
- package/src/runtime/agent-runtime.js +105 -3
- package/src/runtime/policies/agent-policy.js +10 -0
- package/src/skills/video-editing/SKILL.md +46 -0
- package/src/skills/video-editing/beat-snap.js +127 -0
- package/src/skills/video-editing/extractors/audio-extractor.js +212 -0
- package/src/skills/video-editing/extractors/subtitle-extractor.js +90 -0
- package/src/skills/video-editing/extractors/video-extractor.js +137 -0
- package/src/skills/video-editing/parallel-orchestrator.js +212 -0
- package/src/skills/video-editing/pipeline.js +480 -0
- package/src/skills/video-editing/prompts/aesthetic-analysis.md +21 -0
- package/src/skills/video-editing/prompts/audio-segment.md +15 -0
- package/src/skills/video-editing/prompts/character-identify.md +19 -0
- package/src/skills/video-editing/prompts/dense-caption.md +20 -0
- package/src/skills/video-editing/prompts/editor-system.md +29 -0
- package/src/skills/video-editing/prompts/hook-dialogue.md +17 -0
- package/src/skills/video-editing/prompts/protagonist-detect.md +20 -0
- package/src/skills/video-editing/prompts/scene-caption.md +16 -0
- package/src/skills/video-editing/prompts/shot-caption.md +25 -0
- package/src/skills/video-editing/prompts/shot-plan.md +28 -0
- package/src/skills/video-editing/prompts/structure-proposal.md +16 -0
- package/src/skills/video-editing/prompts/vlog-scene-caption.md +18 -0
- package/src/skills/video-editing/render/audio-mix.js +128 -0
- package/src/skills/video-editing/render/ffmpeg-concat.js +45 -0
- package/src/skills/video-editing/render/ffmpeg-extract.js +67 -0
- package/src/skills/video-editing/reviewer.js +161 -0
- package/src/skills/video-editing/tools/commit.js +108 -0
- package/src/skills/video-editing/tools/review-clip.js +46 -0
- package/src/skills/video-editing/tools/semantic-retrieval.js +56 -0
- package/src/skills/video-editing/tools/shot-trimming.js +73 -0
- package/src/assets/web-panel/assets/Analytics-B4OM8S8X.css +0 -1
- package/src/assets/web-panel/assets/Analytics-DgypYeUB.js +0 -3
- package/src/assets/web-panel/assets/AppLayout-Bzf3mSZI.js +0 -1
- package/src/assets/web-panel/assets/AppLayout-DQyDwGut.css +0 -1
- package/src/assets/web-panel/assets/index-CwvzTTw_.js +0 -2
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* video_shot_trimming — 帧级精细分析:给定时间范围,返回断点 + 可用性评估
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { promises as fs } from "fs";
|
|
6
|
+
import path from "path";
|
|
7
|
+
|
|
8
|
+
export const TOOL_DEF = {
|
|
9
|
+
name: "video_shot_trimming",
|
|
10
|
+
description:
|
|
11
|
+
"Analyze video frames + transcripts within a time range, return detailed breakdowns with usability.",
|
|
12
|
+
inputSchema: {
|
|
13
|
+
type: "object",
|
|
14
|
+
properties: {
|
|
15
|
+
start_time: { type: "number", description: "Start time in seconds" },
|
|
16
|
+
end_time: { type: "number", description: "End time in seconds" },
|
|
17
|
+
},
|
|
18
|
+
required: ["start_time", "end_time"],
|
|
19
|
+
},
|
|
20
|
+
isReadOnly: true,
|
|
21
|
+
riskLevel: "LOW",
|
|
22
|
+
availableInPlanMode: true,
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
export async function execute({ start_time, end_time }, context) {
|
|
26
|
+
const captionPath = path.join(context.assetDir, "video_caption.json");
|
|
27
|
+
const raw = await fs.readFile(captionPath, "utf-8");
|
|
28
|
+
const { fps, captions } = JSON.parse(raw);
|
|
29
|
+
|
|
30
|
+
const startFrame = Math.floor(start_time * fps);
|
|
31
|
+
const endFrame = Math.ceil(end_time * fps);
|
|
32
|
+
const relevantCaptions = captions.slice(
|
|
33
|
+
Math.max(0, startFrame),
|
|
34
|
+
Math.min(captions.length, endFrame + 1),
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
const subtitlePath = path.join(context.assetDir, "audio_caption.json");
|
|
38
|
+
let subtitles = [];
|
|
39
|
+
try {
|
|
40
|
+
const audioRaw = await fs.readFile(subtitlePath, "utf-8");
|
|
41
|
+
const audioData = JSON.parse(audioRaw);
|
|
42
|
+
subtitles = (audioData.subtitles || []).filter(
|
|
43
|
+
(s) => s.end >= start_time && s.start <= end_time,
|
|
44
|
+
);
|
|
45
|
+
} catch {}
|
|
46
|
+
|
|
47
|
+
if (context.llmCall) {
|
|
48
|
+
const result = await context.llmCall({
|
|
49
|
+
type: "dense-caption",
|
|
50
|
+
start_time,
|
|
51
|
+
end_time,
|
|
52
|
+
captions: relevantCaptions,
|
|
53
|
+
subtitles,
|
|
54
|
+
});
|
|
55
|
+
return {
|
|
56
|
+
time_range: { start: start_time, end: end_time },
|
|
57
|
+
segments: result || [],
|
|
58
|
+
frame_count: relevantCaptions.length,
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
return {
|
|
63
|
+
time_range: { start: start_time, end: end_time },
|
|
64
|
+
segments: relevantCaptions.map((c, i) => ({
|
|
65
|
+
frame_idx: startFrame + i,
|
|
66
|
+
time: parseFloat(((startFrame + i) / fps).toFixed(3)),
|
|
67
|
+
caption: c.caption,
|
|
68
|
+
usability: "unknown",
|
|
69
|
+
})),
|
|
70
|
+
frame_count: relevantCaptions.length,
|
|
71
|
+
subtitles,
|
|
72
|
+
};
|
|
73
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[data-v-92f257d5] .analytics-row:hover td{background:var(--bg-card-hover)!important}[data-v-92f257d5] .ant-card-head{border-color:var(--border-color)!important;color:var(--text-primary)!important}[data-v-92f257d5] .ant-radio-button-wrapper{background:var(--bg-card)!important;border-color:var(--border-color)!important;color:var(--text-secondary)!important}[data-v-92f257d5] .ant-radio-button-wrapper-checked{background:#1677ff!important;border-color:#1677ff!important;color:#fff!important}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{u as ie}from"./ws-Dma34ig_.js";import{_ as ue}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{q as ce,n as de,T as G,a2 as pe,a3 as ve,a4 as H,N as C}from"./antd-DEjZPGMj.js";import{w as fe,o as me,a3 as m,a1 as S,k as o,Z as s,f as y,X as f,r as X,Y as r,G as i,u as b,W as I,a5 as x,a4 as g}from"./vendor-CN0Iv_qZ.js";const ke={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ye={style:{display:"flex","align-items":"center",gap:"12px"}},_e={key:0,style:{"text-align":"center",padding:"60px"}},xe={key:1,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},ge={key:2,style:{color:"#faad14"}},Te={key:3,style:{color:"var(--text-secondary)"}},be={key:0,style:{"text-align":"center",padding:"60px"}},he={key:0,style:{color:"var(--text-secondary)","font-size":"12px","font-family":"monospace"}},we={key:2,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},Ce={key:3,style:{color:"#faad14"}},Se={key:4,style:{color:"var(--text-secondary)"}},Ie={key:0,style:{"text-align":"center",padding:"40px"}},ze={__name:"Analytics",setup(Re){const h=ie(),z=y("all"),O=y(!1),M=y(!1),N=y(!1),B=y(!1),D=y(!1),A=y(!1),L=y(20),p=X({totalCalls:0,totalTokens:0,totalCost:0,avgResponseTime:0}),R=y([]),j=y([]),v=X({entries:0,hits:0,tokensSaved:0,expired:0}),Y=[{title:"Provider",key:"provider",dataIndex:"provider",width:"120px",sorter:(e,t)=>(e.provider||"").localeCompare(t.provider||"")},{title:"Model",key:"model",dataIndex:"model",ellipsis:!0,sorter:(e,t)=>(e.model||"").localeCompare(t.model||"")},{title:"调用次数",key:"calls",dataIndex:"calls",width:"100px",sorter:(e,t)=>(e.calls||0)-(t.calls||0)},{title:"Input Tokens",key:"inputTokens",dataIndex:"inputTokens",width:"120px",sorter:(e,t)=>(e.inputTokens||0)-(t.inputTokens||0)},{title:"Output Tokens",key:"outputTokens",dataIndex:"outputTokens",width:"130px",sorter:(e,t)=>(e.outputTokens||0)-(t.outputTokens||0)},{title:"Total Tokens",key:"totalTokens",dataIndex:"totalTokens",width:"120px",sorter:(e,t)=>(e.totalTokens||0)-(t.totalTokens||0)},{title:"费用 (USD)",key:"cost",dataIndex:"cost",width:"110px",sorter:(e,t)=>(e.cost||0)-(t.cost||0)},{title:"平均响应",key:"avgResponseTime",dataIndex:"avgResponseTime",width:"110px",sorter:(e,t)=>(e.avgResponseTime||0)-(t.avgResponseTime||0)}],Z=[{title:"时间",key:"timestamp",dataIndex:"timestamp",width:"180px"},{title:"Provider",key:"provider",dataIndex:"provider",width:"110px"},{title:"Model",key:"model",dataIndex:"model",ellipsis:!0},{title:"Input",key:"inputTokens",dataIndex:"inputTokens",width:"90px"},{title:"Output",key:"outputTokens",dataIndex:"outputTokens",width:"90px"},{title:"费用",key:"cost",dataIndex:"cost",width:"100px"},{title:"响应时间",key:"responseTime",dataIndex:"responseTime",width:"100px"}];function T(e){return(e||"").replace(/,/g,"")}function w(e){try{const t=(e||"").trim(),a=t.search(/[{[]/);return a>=0?JSON.parse(t.slice(a)):null}catch{return null}}function K(e){const t=(e||"").split(`
|
|
2
|
-
`);for(const a of t){const l=a.trim(),_=l.match(/total\s*calls?\s*[::]\s*([\d,]+)/i);_&&(p.totalCalls=parseInt(T(_[1]),10)||0);const u=l.match(/total\s*tokens?\s*[::]\s*([\d,]+)/i);u&&(p.totalTokens=parseInt(T(u[1]),10)||0);const d=l.match(/cost\s*[::]\s*\$?([\d,.]+)/i);d&&(p.totalCost=parseFloat(T(d[1]))||0);const c=l.match(/(?:avg|average)\s*(?:response\s*)?time\s*[::]\s*([\d,.]+)/i);c&&(p.avgResponseTime=parseFloat(T(c[1]))||0)}}function Q(e){p.totalCalls=e.totalCalls??e.total_calls??e.calls??0,p.totalTokens=e.totalTokens??e.total_tokens??e.tokens??0,p.totalCost=e.totalCost??e.total_cost??e.cost??0,p.avgResponseTime=e.avgResponseTime??e.avg_response_time??e.avgTime??0}function ee(e){return(Array.isArray(e)?e:e.breakdown||e.providers||e.rows||[]).map((a,l)=>({key:l,provider:a.provider||"-",model:a.model||"-",calls:a.calls||a.count||0,inputTokens:a.inputTokens??a.input_tokens??0,outputTokens:a.outputTokens??a.output_tokens??0,totalTokens:a.totalTokens??a.total_tokens??(a.inputTokens??0)+(a.outputTokens??0),cost:a.cost??a.total_cost??0,avgResponseTime:a.avgResponseTime??a.avg_response_time??0}))}function te(e){return(Array.isArray(e)?e:e.recent||e.records||e.rows||[]).map((a,l)=>({key:l,timestamp:a.timestamp||a.time||a.created_at||"-",provider:a.provider||"-",model:a.model||"-",inputTokens:a.inputTokens??a.input_tokens??0,outputTokens:a.outputTokens??a.output_tokens??0,cost:a.cost??0,responseTime:a.responseTime??a.response_time??0}))}function oe(e){v.entries=e.entries??e.count??e.size??0,v.hits=e.hits??e.cacheHits??e.cache_hits??0,v.tokensSaved=e.tokensSaved??e.tokens_saved??0,v.expired=e.expired??e.expiredCount??e.expired_count??0}function se(e){const t=(e||"").split(`
|
|
3
|
-
`);for(const a of t){const l=a.trim(),_=l.match(/entries?\s*[::]\s*([\d,]+)/i);_&&(v.entries=parseInt(T(_[1]),10)||0);const u=l.match(/hits?\s*[::]\s*([\d,]+)/i);u&&(v.hits=parseInt(T(u[1]),10)||0);const d=l.match(/(?:tokens?\s*)?saved\s*[::]\s*([\d,]+)/i);d&&(v.tokensSaved=parseInt(T(d[1]),10)||0);const c=l.match(/expired?\s*[::]\s*([\d,]+)/i);c&&(v.expired=parseInt(T(c[1]),10)||0)}}async function P(){O.value=!0;try{const{output:e}=await h.execute(`tokens show --period ${z.value} --json`,15e3),t=w(e);t?Q(t):K(e)}catch(e){console.error("loadSummary failed:",e)}finally{O.value=!1}}async function ae(){M.value=!0;try{const{output:e}=await h.execute("tokens breakdown --json",15e3),t=w(e);t?R.value=ee(t):R.value=[]}catch(e){console.error("loadBreakdown failed:",e),R.value=[]}finally{M.value=!1}}async function F(){N.value=!0;try{const{output:e}=await h.execute(`tokens recent --limit ${L.value} --json`,15e3),t=w(e);t?j.value=te(t):j.value=[]}catch(e){console.error("loadRecent failed:",e),j.value=[]}finally{N.value=!1}}async function $(){B.value=!0;try{const{output:e}=await h.execute("tokens cache --json",15e3),t=w(e);t?oe(t):se(e)}catch(e){console.error("loadCache failed:",e)}finally{B.value=!1}}async function ne(){D.value=!0;try{const{output:e}=await h.execute("tokens cache --clear --json",15e3),t=w(e);t&&t.error?C.error("清理缓存失败: "+t.error):(C.success("缓存已清理"),await $())}catch(e){C.error("清理缓存失败: "+e.message)}finally{D.value=!1}}async function le(){A.value=!0;try{const{output:e}=await h.execute("tokens cache --cleanup --json",15e3),t=w(e);t&&t.error?C.error("清理过期失败: "+t.error):(C.success("过期缓存已清理"),await $())}catch(e){C.error("清理过期失败: "+e.message)}finally{A.value=!1}}async function U(){await Promise.all([P(),ae(),F(),$()])}return fe(z,()=>{P()}),me(U),(e,t)=>{const a=f("a-radio-button"),l=f("a-radio-group"),_=f("a-button"),u=f("a-statistic"),d=f("a-card"),c=f("a-col"),V=f("a-row"),J=f("a-spin"),W=f("a-tag"),q=f("a-empty"),E=f("a-table"),re=f("a-space");return r(),m("div",null,[S("div",ke,[t[7]||(t[7]=S("div",null,[S("h2",{class:"page-title"},"使用分析"),S("p",{class:"page-sub"},"Token 用量 / 成本 / 缓存")],-1)),S("div",ye,[o(l,{value:z.value,"onUpdate:value":t[0]||(t[0]=n=>z.value=n),"button-style":"solid",size:"small"},{default:s(()=>[o(a,{value:"today"},{default:s(()=>[...t[2]||(t[2]=[i("今天",-1)])]),_:1}),o(a,{value:"week"},{default:s(()=>[...t[3]||(t[3]=[i("本周",-1)])]),_:1}),o(a,{value:"month"},{default:s(()=>[...t[4]||(t[4]=[i("本月",-1)])]),_:1}),o(a,{value:"all"},{default:s(()=>[...t[5]||(t[5]=[i("全部",-1)])]),_:1})]),_:1},8,["value"]),o(_,{type:"primary",ghost:"",loading:O.value,onClick:U},{icon:s(()=>[o(b(ce))]),default:s(()=>[t[6]||(t[6]=i(" 刷新 ",-1))]),_:1},8,["loading"])])]),o(V,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:s(()=>[o(c,{xs:24,sm:12,lg:6},{default:s(()=>[o(d,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(u,{title:"总调用次数",value:p.totalCalls,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:s(()=>[o(b(de))]),suffix:s(()=>[...t[8]||(t[8]=[i("次",-1)])]),_:1},8,["value"])]),_:1})]),_:1}),o(c,{xs:24,sm:12,lg:6},{default:s(()=>[o(d,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(u,{title:"总 Token 数",value:p.totalTokens,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:s(()=>[o(b(G))]),_:1},8,["value"])]),_:1})]),_:1}),o(c,{xs:24,sm:12,lg:6},{default:s(()=>[o(d,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(u,{title:"总费用",value:p.totalCost,precision:4,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:s(()=>[o(b(pe))]),suffix:s(()=>[...t[9]||(t[9]=[i("USD",-1)])]),_:1},8,["value"])]),_:1})]),_:1}),o(c,{xs:24,sm:12,lg:6},{default:s(()=>[o(d,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(u,{title:"平均响应时间",value:p.avgResponseTime,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:s(()=>[o(b(G))]),suffix:s(()=>[...t[10]||(t[10]=[i("ms",-1)])]),_:1},8,["value"])]),_:1})]),_:1})]),_:1}),o(d,{title:"Provider 分布",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{default:s(()=>[M.value?(r(),m("div",_e,[o(J,{size:"large"})])):(r(),I(E,{key:1,columns:Y,"data-source":R.value,pagination:{pageSize:20,showTotal:n=>`共 ${n} 条`},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"analytics-row"},{bodyCell:s(({column:n,record:k})=>[n.key==="provider"?(r(),I(W,{key:0,color:"blue"},{default:s(()=>[i(x(k.provider),1)]),_:2},1024)):g("",!0),n.key==="model"?(r(),m("span",xe,x(k.model),1)):g("",!0),n.key==="cost"?(r(),m("span",ge,"$"+x((k.cost||0).toFixed(4)),1)):g("",!0),n.key==="avgResponseTime"?(r(),m("span",Te,x(k.avgResponseTime||0)+" ms",1)):g("",!0)]),emptyText:s(()=>[o(q,{description:"暂无调用记录"})]),_:1},8,["data-source","pagination"]))]),_:1}),o(d,{title:"最近调用记录",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{extra:s(()=>[o(l,{value:L.value,"onUpdate:value":t[1]||(t[1]=n=>L.value=n),size:"small",onChange:F},{default:s(()=>[o(a,{value:10},{default:s(()=>[...t[11]||(t[11]=[i("10",-1)])]),_:1}),o(a,{value:20},{default:s(()=>[...t[12]||(t[12]=[i("20",-1)])]),_:1}),o(a,{value:50},{default:s(()=>[...t[13]||(t[13]=[i("50",-1)])]),_:1})]),_:1},8,["value"])]),default:s(()=>[N.value?(r(),m("div",be,[o(J,{size:"large"})])):(r(),I(E,{key:1,columns:Z,"data-source":j.value,pagination:{pageSize:20,showTotal:n=>`共 ${n} 条`},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"analytics-row"},{bodyCell:s(({column:n,record:k})=>[n.key==="timestamp"?(r(),m("span",he,x(k.timestamp),1)):g("",!0),n.key==="provider"?(r(),I(W,{key:1,color:"blue"},{default:s(()=>[i(x(k.provider),1)]),_:2},1024)):g("",!0),n.key==="model"?(r(),m("span",we,x(k.model),1)):g("",!0),n.key==="cost"?(r(),m("span",Ce,"$"+x((k.cost||0).toFixed(4)),1)):g("",!0),n.key==="responseTime"?(r(),m("span",Se,x(k.responseTime||0)+" ms",1)):g("",!0)]),emptyText:s(()=>[o(q,{description:"暂无调用记录"})]),_:1},8,["data-source","pagination"]))]),_:1}),o(d,{title:"缓存状态",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:s(()=>[o(re,null,{default:s(()=>[o(_,{size:"small",loading:A.value,onClick:le,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[o(b(H))]),default:s(()=>[t[14]||(t[14]=i(" 清理过期 ",-1))]),_:1},8,["loading"]),o(_,{size:"small",danger:"",loading:D.value,onClick:ne,style:{"border-color":"var(--border-color)"}},{icon:s(()=>[o(b(H))]),default:s(()=>[t[15]||(t[15]=i(" 清理缓存 ",-1))]),_:1},8,["loading"])]),_:1})]),default:s(()=>[B.value?(r(),m("div",Ie,[o(J)])):(r(),I(V,{key:1,gutter:[16,16]},{default:s(()=>[o(c,{xs:12,sm:6},{default:s(()=>[o(u,{title:"缓存条目",value:v.entries,"value-style":{color:"#1677ff",fontSize:"18px"}},{prefix:s(()=>[o(b(ve))]),_:1},8,["value"])]),_:1}),o(c,{xs:12,sm:6},{default:s(()=>[o(u,{title:"命中次数",value:v.hits,"value-style":{color:"#52c41a",fontSize:"18px"}},null,8,["value"])]),_:1}),o(c,{xs:12,sm:6},{default:s(()=>[o(u,{title:"节省 Token",value:v.tokensSaved,"value-style":{color:"#faad14",fontSize:"18px"}},null,8,["value"])]),_:1}),o(c,{xs:12,sm:6},{default:s(()=>[o(u,{title:"已过期",value:v.expired,"value-style":{color:"#ff4d4f",fontSize:"18px"}},null,8,["value"])]),_:1})]),_:1}))]),_:1})])}}},Be=ue(ze,[["__scopeId","data-v-92f257d5"]]);export{Be as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as ve,W as _,Z as t,X as d,$ as ge,a0 as be,Y as i,k as e,a1 as a,a2 as w,a3 as r,a4 as S,F as j,u as s,a5 as g,G as l,a6 as Oe,a7 as Ce,f as we,c as m}from"./vendor-CN0Iv_qZ.js";import{u as je}from"./ws-Dma34ig_.js";import{u as Te,T as Se}from"./index-CwvzTTw_.js";import{_ as Be}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{F as B,G as x,D as M,M as A,R as F,C as K,b as P,c as G,d as I,e as W,B as D,f as V,h as z,i as E,T as U,S as $,L as H,W as X,j as Y,k as Z,P as q,l as J,m as Q,n as h,o as ee,p as te,K as oe,I as xe}from"./antd-DEjZPGMj.js";const Le={key:0,class:"logo-text"},Ne={key:0,class:"mode-banner project"},Re={class:"banner-info"},Me={class:"banner-name"},Ae={key:1,class:"mode-banner global"},Fe=["title"],Ke={key:0,class:"footer-text"},Pe={class:"header-left"},Ge={class:"header-right"},Ie={class:"theme-switcher"},We=["data-theme-key","onClick"],De={__name:"AppLayout",setup(Ve){const se=ge(),ne=be(),b=je(),T=Te(),u=we(!1),y=window.__CC_CONFIG__||{},p=m(()=>y.mode==="project"),le=m(()=>T.current),ae=m(()=>T.config.vars["--menu-mode"]),L=m(()=>{const c=ne.name?.toLowerCase()||"dashboard";return[{mcptools:"mcp"}[c]||c]}),O=m(()=>b.status),ie=m(()=>({connected:"success",connecting:"processing",error:"error",disconnected:"default"})[b.status]||"default"),de=m(()=>({connected:"已连接",connecting:"连接中...",error:"连接错误",disconnected:"未连接"})[b.status]||"未知");function ue(c){T.setTheme(c)}function re({key:c}){se.push({mcp:"/mcp"}[c]||`/${c}`)}return ve(()=>b.connect()),(c,o)=>{const n=d("a-menu-item"),k=d("a-menu-item-group"),v=d("a-menu-divider"),ce=d("a-menu"),pe=d("a-badge"),me=d("a-layout-sider"),N=d("a-tooltip"),ye=d("a-tag"),ke=d("a-layout-header"),fe=d("router-view"),_e=d("a-layout-content"),R=d("a-layout");return i(),_(R,{class:"app-root"},{default:t(()=>[e(me,{collapsed:u.value,"onUpdate:collapsed":o[1]||(o[1]=f=>u.value=f),collapsible:"","collapsed-width":56,width:216,class:"sidebar"},{default:t(()=>[a("div",{class:w(["logo",{collapsed:u.value}])},[o[2]||(o[2]=a("span",{class:"logo-icon"},"⛓",-1)),u.value?S("",!0):(i(),r("span",Le,"ChainlessChain"))],2),u.value?(i(),r("div",{key:1,class:"mode-icon-sm",title:p.value?s(y).projectName:"全局模式"},[p.value?(i(),_(s(B),{key:0,style:{color:"#1677ff"}})):(i(),_(s(x),{key:1,style:{color:"#722ed1"}}))],8,Fe)):(i(),r(j,{key:0},[p.value?(i(),r("div",Ne,[e(s(B),{class:"banner-icon"}),a("div",Re,[a("div",Me,g(s(y).projectName||"项目"),1),o[3]||(o[3]=a("div",{class:"banner-sub"},"项目级面板",-1))])])):(i(),r("div",Ae,[e(s(x),{class:"banner-icon"}),o[4]||(o[4]=a("span",{class:"banner-name"},"全局模式",-1))]))],64)),e(ce,{selectedKeys:L.value,"onUpdate:selectedKeys":o[0]||(o[0]=f=>L.value=f),theme:ae.value,mode:"inline","inline-collapsed":u.value,class:"side-menu",onClick:re},{default:t(()=>[u.value?(i(),r(j,{key:1},[e(n,{key:"dashboard"},{icon:t(()=>[e(s(M))]),_:1}),e(n,{key:"chat"},{icon:t(()=>[e(s(A))]),_:1}),e(n,{key:"cowork"},{icon:t(()=>[e(s(F))]),_:1}),e(n,{key:"services"},{icon:t(()=>[e(s(K))]),_:1}),e(n,{key:"logs"},{icon:t(()=>[e(s(P))]),_:1}),e(v,{class:"divider-sm"}),e(n,{key:"skills"},{icon:t(()=>[e(s(G))]),_:1}),e(n,{key:"providers"},{icon:t(()=>[e(s(I))]),_:1}),e(n,{key:"mcp"},{icon:t(()=>[e(s(W))]),_:1}),e(v,{class:"divider-sm"}),e(n,{key:"notes"},{icon:t(()=>[e(s(D))]),_:1}),e(n,{key:"memory"},{icon:t(()=>[e(s(V))]),_:1}),e(n,{key:"cron"},{icon:t(()=>[e(s(z))]),_:1}),e(n,{key:"workflow"},{icon:t(()=>[e(s(E))]),_:1}),e(n,{key:"tasks"},{icon:t(()=>[e(s(U))]),_:1}),e(v,{class:"divider-sm"}),e(n,{key:"security"},{icon:t(()=>[e(s($))]),_:1}),e(n,{key:"permissions"},{icon:t(()=>[e(s(H))]),_:1}),e(n,{key:"p2p"},{icon:t(()=>[e(s(X))]),_:1}),e(n,{key:"backup"},{icon:t(()=>[e(s(Y))]),_:1}),e(n,{key:"git"},{icon:t(()=>[e(s(Z))]),_:1}),e(n,{key:"projects"},{icon:t(()=>[e(s(q))]),_:1}),e(v,{class:"divider-sm"}),e(n,{key:"wallet"},{icon:t(()=>[e(s(J))]),_:1}),e(n,{key:"organization"},{icon:t(()=>[e(s(Q))]),_:1}),e(n,{key:"analytics"},{icon:t(()=>[e(s(h))]),_:1}),e(n,{key:"templates"},{icon:t(()=>[e(s(ee))]),_:1}),e(v,{class:"divider-sm"}),e(n,{key:"rssfeed"},{icon:t(()=>[e(s(te))]),_:1}),e(n,{key:"webauthn"},{icon:t(()=>[e(s(oe))]),_:1})],64)):(i(),r(j,{key:0},[e(k,null,{title:t(()=>[...o[5]||(o[5]=[a("span",{class:"group-label"},"概 览",-1)])]),default:t(()=>[e(n,{key:"dashboard"},{icon:t(()=>[e(s(M))]),default:t(()=>[o[6]||(o[6]=l("仪表板",-1))]),_:1}),e(n,{key:"chat"},{icon:t(()=>[e(s(A))]),default:t(()=>[o[7]||(o[7]=l("AI 对话",-1))]),_:1}),e(n,{key:"cowork"},{icon:t(()=>[e(s(F))]),default:t(()=>[o[8]||(o[8]=l("日常协作",-1))]),_:1}),e(n,{key:"services"},{icon:t(()=>[e(s(K))]),default:t(()=>[o[9]||(o[9]=l("服务管理",-1))]),_:1}),e(n,{key:"logs"},{icon:t(()=>[e(s(P))]),default:t(()=>[o[10]||(o[10]=l("日志查看",-1))]),_:1})]),_:1}),e(k,null,{title:t(()=>[...o[11]||(o[11]=[a("span",{class:"group-label"},"配 置",-1)])]),default:t(()=>[e(n,{key:"skills"},{icon:t(()=>[e(s(G))]),default:t(()=>[o[12]||(o[12]=l("技能管理",-1))]),_:1}),e(n,{key:"providers"},{icon:t(()=>[e(s(I))]),default:t(()=>[o[13]||(o[13]=l("LLM 配置",-1))]),_:1}),e(n,{key:"mcp"},{icon:t(()=>[e(s(W))]),default:t(()=>[o[14]||(o[14]=l("MCP 工具",-1))]),_:1})]),_:1}),e(k,null,{title:t(()=>[...o[15]||(o[15]=[a("span",{class:"group-label"},"数 据",-1)])]),default:t(()=>[e(n,{key:"notes"},{icon:t(()=>[e(s(D))]),default:t(()=>[o[16]||(o[16]=l("笔记管理",-1))]),_:1}),e(n,{key:"memory"},{icon:t(()=>[e(s(V))]),default:t(()=>[o[17]||(o[17]=l("记忆文件",-1))]),_:1}),e(n,{key:"cron"},{icon:t(()=>[e(s(z))]),default:t(()=>[o[18]||(o[18]=l("定时任务",-1))]),_:1}),e(n,{key:"workflow"},{icon:t(()=>[e(s(E))]),default:t(()=>[o[19]||(o[19]=l("工作流编辑",-1))]),_:1}),e(n,{key:"tasks"},{icon:t(()=>[e(s(U))]),default:t(()=>[o[20]||(o[20]=l("后台任务",-1))]),_:1})]),_:1}),e(k,null,{title:t(()=>[...o[21]||(o[21]=[a("span",{class:"group-label"},"高 级",-1)])]),default:t(()=>[e(n,{key:"security"},{icon:t(()=>[e(s($))]),default:t(()=>[o[22]||(o[22]=l("安全中心",-1))]),_:1}),e(n,{key:"permissions"},{icon:t(()=>[e(s(H))]),default:t(()=>[o[23]||(o[23]=l("权限管理",-1))]),_:1}),e(n,{key:"p2p"},{icon:t(()=>[e(s(X))]),default:t(()=>[o[24]||(o[24]=l("P2P 网络",-1))]),_:1}),e(n,{key:"backup"},{icon:t(()=>[e(s(Y))]),default:t(()=>[o[25]||(o[25]=l("备份同步",-1))]),_:1}),e(n,{key:"git"},{icon:t(()=>[e(s(Z))]),default:t(()=>[o[26]||(o[26]=l("Git 与数据",-1))]),_:1}),e(n,{key:"projects"},{icon:t(()=>[e(s(q))]),default:t(()=>[o[27]||(o[27]=l("项目管理",-1))]),_:1})]),_:1}),e(k,null,{title:t(()=>[...o[28]||(o[28]=[a("span",{class:"group-label"},"企 业",-1)])]),default:t(()=>[e(n,{key:"wallet"},{icon:t(()=>[e(s(J))]),default:t(()=>[o[29]||(o[29]=l("钱包管理",-1))]),_:1}),e(n,{key:"organization"},{icon:t(()=>[e(s(Q))]),default:t(()=>[o[30]||(o[30]=l("组织管理",-1))]),_:1}),e(n,{key:"analytics"},{icon:t(()=>[e(s(h))]),default:t(()=>[o[31]||(o[31]=l("使用分析",-1))]),_:1}),e(n,{key:"templates"},{icon:t(()=>[e(s(ee))]),default:t(()=>[o[32]||(o[32]=l("模板中心",-1))]),_:1})]),_:1}),e(k,null,{title:t(()=>[...o[33]||(o[33]=[a("span",{class:"group-label"},"扩 展",-1)])]),default:t(()=>[e(n,{key:"rssfeed"},{icon:t(()=>[e(s(te))]),default:t(()=>[o[34]||(o[34]=l("RSS 订阅",-1))]),_:1}),e(n,{key:"webauthn"},{icon:t(()=>[e(s(oe))]),default:t(()=>[o[35]||(o[35]=l("身份认证",-1))]),_:1})]),_:1})],64))]),_:1},8,["selectedKeys","theme","inline-collapsed"]),a("div",{class:w(["sidebar-footer",{collapsed:u.value}])},[e(pe,{status:ie.value},null,8,["status"]),u.value?S("",!0):(i(),r("span",Ke,g(de.value),1))],2)]),_:1},8,["collapsed"]),e(R,{class:"main-area"},{default:t(()=>[e(ke,{class:"app-header"},{default:t(()=>[a("div",Pe,[a("div",{class:w(["scope-tag",p.value?"project":"global"])},[(i(),_(Oe(p.value?s(B):s(x)))),a("span",null,g(p.value?s(y).projectName||"项目":"全局模式"),1),p.value&&s(y).projectRoot?(i(),_(N,{key:0,title:s(y).projectRoot},{default:t(()=>[e(s(xe),{class:"info-icon"})]),_:1},8,["title"])):S("",!0)],2)]),a("div",Ge,[a("div",Ie,[(i(!0),r(j,null,Ce(s(Se),(f,C)=>(i(),_(N,{key:C,title:f.label},{default:t(()=>[a("button",{class:w(["theme-btn",{active:le.value===C}]),"data-theme-key":C,onClick:ze=>ue(C)},g(f.icon),11,We)]),_:2},1032,["title"]))),128))]),o[36]||(o[36]=a("span",{class:"version-tag"},"v5.0.2.9",-1)),e(ye,{color:O.value==="connected"?"green":O.value==="connecting"?"orange":"red",class:"ws-tag"},{default:t(()=>[l(g(O.value==="connected"?"已连接":O.value==="connecting"?"连接中":"断开"),1)]),_:1},8,["color"])])]),_:1}),e(_e,{class:"page-content"},{default:t(()=>[e(fe)]),_:1})]),_:1})]),_:1})}}},Ye=Be(De,[["__scopeId","data-v-0f2124da"]]);export{Ye as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.app-root[data-v-0f2124da]{min-height:100vh;background:var(--bg-base)}.sidebar[data-v-0f2124da]{background:var(--bg-sidebar)!important;border-right:1px solid var(--border-color);transition:background .25s}[data-v-0f2124da] .ant-layout-sider-children{display:flex;flex-direction:column;overflow:hidden}.main-area[data-v-0f2124da]{background:var(--bg-base)}.logo[data-v-0f2124da]{height:52px;display:flex;align-items:center;padding:0 18px;gap:10px;border-bottom:1px solid var(--border-color);overflow:hidden;white-space:nowrap;flex-shrink:0}.logo.collapsed[data-v-0f2124da]{padding:0;justify-content:center}.logo-icon[data-v-0f2124da]{font-size:20px;flex-shrink:0}.logo-text[data-v-0f2124da]{color:var(--logo-text);font-weight:700;font-size:14px;letter-spacing:.01em}.mode-banner[data-v-0f2124da]{display:flex;align-items:center;gap:8px;padding:7px 10px;margin:8px 8px 4px;border-radius:7px;overflow:hidden}.mode-banner.project[data-v-0f2124da]{background:#1677ff1a;border:1px solid rgba(22,119,255,.2)}.mode-banner.global[data-v-0f2124da]{background:#722ed11a;border:1px solid rgba(114,46,209,.2)}.banner-icon[data-v-0f2124da]{font-size:13px;flex-shrink:0;color:#1677ff}.mode-banner.global .banner-icon[data-v-0f2124da]{color:#722ed1}.banner-info[data-v-0f2124da]{flex:1;min-width:0}.banner-name[data-v-0f2124da]{font-size:12px;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.banner-sub[data-v-0f2124da]{font-size:10px;color:#1677ff;margin-top:1px}.mode-banner.global .banner-name[data-v-0f2124da]{color:#c084fc}.mode-icon-sm[data-v-0f2124da]{display:flex;justify-content:center;padding:8px 0;font-size:14px}.side-menu[data-v-0f2124da]{border:none!important;margin-top:2px;-webkit-user-select:none;user-select:none;background:transparent!important;flex:1;overflow-y:auto;overflow-x:hidden}.group-label[data-v-0f2124da]{color:var(--group-title);font-size:10px;font-weight:700;letter-spacing:.12em;padding-left:6px}[data-v-0f2124da] .ant-menu-item-group-title{padding:8px 16px 2px!important}[data-v-0f2124da] .ant-menu-item{height:38px!important;line-height:38px!important;margin:1px 4px!important;border-radius:6px!important}.divider-sm[data-v-0f2124da]{margin:4px 0!important}.sidebar-footer[data-v-0f2124da]{flex-shrink:0;padding:8px 18px;display:flex;align-items:center;gap:8px;border-top:1px solid var(--border-color)}.sidebar-footer.collapsed[data-v-0f2124da]{justify-content:center;padding:8px 0}.footer-text[data-v-0f2124da]{color:var(--text-secondary);font-size:11px}.app-header[data-v-0f2124da]{background:var(--bg-header)!important;padding:0 20px!important;border-bottom:1px solid var(--border-color);height:50px!important;line-height:50px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;box-shadow:0 1px 4px #0000000f}.header-left[data-v-0f2124da],.header-right[data-v-0f2124da]{display:flex;align-items:center;gap:10px}.scope-tag[data-v-0f2124da]{display:flex;align-items:center;gap:5px;padding:3px 10px;border-radius:5px;font-size:12px;font-weight:500}.scope-tag.project[data-v-0f2124da]{background:#1677ff1a;color:#1677ff;border:1px solid rgba(22,119,255,.2)}.scope-tag.global[data-v-0f2124da]{background:#722ed11a;color:#722ed1;border:1px solid rgba(114,46,209,.2)}.info-icon[data-v-0f2124da]{opacity:.45;cursor:help;margin-left:2px}.theme-switcher[data-v-0f2124da]{display:flex;align-items:center;gap:4px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:20px;padding:3px 6px}.theme-btn[data-v-0f2124da]{width:26px;height:26px;border:none;border-radius:50%;cursor:pointer;background:transparent;font-size:14px;line-height:1;display:flex;align-items:center;justify-content:center;transition:background .15s,transform .15s;opacity:.55}.theme-btn[data-v-0f2124da]:hover{opacity:.9;transform:scale(1.15);background:var(--bg-card-hover)}.theme-btn.active[data-v-0f2124da]{opacity:1;transform:scale(1.1);background:var(--bg-card-hover);outline:2px solid var(--text-secondary)}.version-tag[data-v-0f2124da]{color:var(--text-muted);font-size:11px}.ws-tag[data-v-0f2124da]{margin:0!important;font-size:11px}.page-content[data-v-0f2124da]{padding:24px;overflow:auto;background:var(--bg-base);min-height:calc(100vh - 50px)}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./AppLayout-Bzf3mSZI.js","./vendor-CN0Iv_qZ.js","./ws-Dma34ig_.js","./_plugin-vue_export-helper-DlAUqK2U.js","./antd-DEjZPGMj.js","./AppLayout-DQyDwGut.css","./Dashboard-B95cMCO7.js","./chat-BYmuDvol.js","./Dashboard-CKeMmCoT.css","./Chat-BwXskT21.js","./markdown-CusdXFxb.js","./Chat-DfR76jyX.css","./github-dark-Dfs9RUU9.css","./Cowork-UmOe7qvE.js","./Cowork-CXuhlHew.css","./Services-D4MJzLld.js","./Services-C8Qs6KXv.css","./Logs-Hxw_K0km.js","./Logs-Gf_Mv9Nx.css","./Skills-CQTOMDwF.js","./parsers-DftYMnlk.js","./Skills-BdjRyorN.css","./Providers-BngtTLvJ.js","./Providers-BEakqcO5.css","./McpTools-DIE75TrB.js","./McpTools-CyhSLDwf.css","./Notes-DuzrHMAk.js","./Notes-BG69sJKi.css","./Memory-C4KVnLlp.js","./Memory-DRghrGJr.css","./Cron-JHS-rc-4.js","./WorkflowEditor-C-SvXbHW.js","./WorkflowEditor-D5bX6woe.css","./Tasks-DepbJMnL.js","./Tasks-BJjN_YEm.css","./Security-BL5Rkr1T.js","./Security-Dwxw7rfP.css","./Permissions-Ec0NH-xC.js","./Permissions-C9WlkGl-.css","./P2P-C0hjlhsR.js","./P2P-OEzOeMZX.css","./Git-CSYO0_zk.js","./Git-DGcuBXST.css","./Projects-U8D0asCS.js","./Projects-DxKelI5h.css","./Wallet-PQoSpN_P.js","./Wallet-DnIumafl.css","./Organization-DTq6uF82.js","./Organization-DdOOM4ic.css","./Analytics-DgypYeUB.js","./Analytics-B4OM8S8X.css","./Templates-C24PVZPu.js","./Templates-DOY_oZnm.css","./Backup-Ba9UybpT.js","./Backup-fZqtfC1m.css","./RssFeed-B9NbwCKM.js","./RssFeed-BlFC20eg.css","./WebAuthn-BcuyQ4Lr.js","./WebAuthn-CNPl2VQR.css"])))=>i.map(i=>d[i]);
|
|
2
|
-
import{S as L,U as B,V as I,f as T,c as E,o as R,W as O,u as k,X as y,Y as V,Z as D,k as x,R as S,_ as w}from"./vendor-CN0Iv_qZ.js";import{a as g,A as M}from"./antd-DEjZPGMj.js";(function(){const a=document.createElement("link").relList;if(a&&a.supports&&a.supports("modulepreload"))return;for(const t of document.querySelectorAll('link[rel="modulepreload"]'))m(t);new MutationObserver(t=>{for(const o of t)if(o.type==="childList")for(const n of o.addedNodes)n.tagName==="LINK"&&n.rel==="modulepreload"&&m(n)}).observe(document,{childList:!0,subtree:!0});function c(t){const o={};return t.integrity&&(o.integrity=t.integrity),t.referrerPolicy&&(o.referrerPolicy=t.referrerPolicy),t.crossOrigin==="use-credentials"?o.credentials="include":t.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function m(t){if(t.ep)return;t.ep=!0;const o=c(t);fetch(t.href,o)}})();const C="modulepreload",N=function(s,a){return new URL(s,a).href},P={},e=function(a,c,m){let t=Promise.resolve();if(c&&c.length>0){let b=function(i){return Promise.all(i.map(d=>Promise.resolve(d).then(u=>({status:"fulfilled",value:u}),u=>({status:"rejected",reason:u}))))};const n=document.getElementsByTagName("link"),r=document.querySelector("meta[property=csp-nonce]"),p=r?.nonce||r?.getAttribute("nonce");t=b(c.map(i=>{if(i=N(i,m),i in P)return;P[i]=!0;const d=i.endsWith(".css"),u=d?'[rel="stylesheet"]':"";if(m)for(let f=n.length-1;f>=0;f--){const _=n[f];if(_.href===i&&(!d||_.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${i}"]${u}`))return;const l=document.createElement("link");if(l.rel=d?"stylesheet":C,d||(l.as="script"),l.crossOrigin="",l.href=i,p&&l.setAttribute("nonce",p),document.head.appendChild(l),d)return new Promise((f,_)=>{l.addEventListener("load",f),l.addEventListener("error",()=>_(new Error(`Unable to preload CSS for ${i}`)))})}))}function o(n){const r=new Event("vite:preloadError",{cancelable:!0});if(r.payload=n,window.dispatchEvent(r),!r.defaultPrevented)throw n}return t.then(n=>{for(const r of n||[])r.status==="rejected"&&o(r.reason);return a().catch(o)})},U=[{path:"/",component:()=>e(()=>import("./AppLayout-Bzf3mSZI.js"),__vite__mapDeps([0,1,2,3,4,5]),import.meta.url),children:[{path:"",redirect:"/dashboard"},{path:"dashboard",name:"Dashboard",component:()=>e(()=>import("./Dashboard-B95cMCO7.js"),__vite__mapDeps([6,1,2,7,3,4,8]),import.meta.url)},{path:"chat",name:"Chat",component:()=>e(()=>import("./Chat-BwXskT21.js"),__vite__mapDeps([9,1,10,4,7,2,3,11,12]),import.meta.url)},{path:"cowork",name:"Cowork",component:()=>e(()=>import("./Cowork-UmOe7qvE.js"),__vite__mapDeps([13,1,10,4,2,7,3,14,12]),import.meta.url)},{path:"services",name:"Services",component:()=>e(()=>import("./Services-D4MJzLld.js"),__vite__mapDeps([15,2,1,3,4,16]),import.meta.url)},{path:"logs",name:"Logs",component:()=>e(()=>import("./Logs-Hxw_K0km.js"),__vite__mapDeps([17,2,1,3,4,18]),import.meta.url)},{path:"skills",name:"Skills",component:()=>e(()=>import("./Skills-CQTOMDwF.js"),__vite__mapDeps([19,1,2,20,7,3,4,21]),import.meta.url)},{path:"providers",name:"Providers",component:()=>e(()=>import("./Providers-BngtTLvJ.js"),__vite__mapDeps([22,1,2,20,3,4,23]),import.meta.url)},{path:"mcp",name:"McpTools",component:()=>e(()=>import("./McpTools-DIE75TrB.js"),__vite__mapDeps([24,2,1,3,4,25]),import.meta.url)},{path:"notes",name:"Notes",component:()=>e(()=>import("./Notes-DuzrHMAk.js"),__vite__mapDeps([26,2,1,3,4,27]),import.meta.url)},{path:"memory",name:"Memory",component:()=>e(()=>import("./Memory-C4KVnLlp.js"),__vite__mapDeps([28,2,1,3,4,29]),import.meta.url)},{path:"cron",name:"Cron",component:()=>e(()=>import("./Cron-JHS-rc-4.js"),__vite__mapDeps([30,2,1,4]),import.meta.url)},{path:"workflow",name:"Workflow",component:()=>e(()=>import("./WorkflowEditor-C-SvXbHW.js"),__vite__mapDeps([31,1,2,3,4,32]),import.meta.url)},{path:"tasks",name:"Tasks",component:()=>e(()=>import("./Tasks-DepbJMnL.js"),__vite__mapDeps([33,1,2,3,4,34]),import.meta.url)},{path:"security",name:"Security",component:()=>e(()=>import("./Security-BL5Rkr1T.js"),__vite__mapDeps([35,2,1,3,4,36]),import.meta.url)},{path:"permissions",name:"Permissions",component:()=>e(()=>import("./Permissions-Ec0NH-xC.js"),__vite__mapDeps([37,2,1,3,4,38]),import.meta.url)},{path:"p2p",name:"P2P",component:()=>e(()=>import("./P2P-C0hjlhsR.js"),__vite__mapDeps([39,2,1,3,4,40]),import.meta.url)},{path:"git",name:"Git",component:()=>e(()=>import("./Git-CSYO0_zk.js"),__vite__mapDeps([41,2,1,3,4,42]),import.meta.url)},{path:"projects",name:"Projects",component:()=>e(()=>import("./Projects-U8D0asCS.js"),__vite__mapDeps([43,2,1,3,4,44]),import.meta.url)},{path:"wallet",name:"Wallet",component:()=>e(()=>import("./Wallet-PQoSpN_P.js"),__vite__mapDeps([45,2,1,3,4,46]),import.meta.url)},{path:"organization",name:"Organization",component:()=>e(()=>import("./Organization-DTq6uF82.js"),__vite__mapDeps([47,1,2,3,4,48]),import.meta.url)},{path:"analytics",name:"Analytics",component:()=>e(()=>import("./Analytics-DgypYeUB.js"),__vite__mapDeps([49,2,1,3,4,50]),import.meta.url)},{path:"templates",name:"Templates",component:()=>e(()=>import("./Templates-C24PVZPu.js"),__vite__mapDeps([51,1,2,3,4,52]),import.meta.url)},{path:"backup",name:"Backup",component:()=>e(()=>import("./Backup-Ba9UybpT.js"),__vite__mapDeps([53,2,1,3,4,54]),import.meta.url)},{path:"rssfeed",name:"RssFeed",component:()=>e(()=>import("./RssFeed-B9NbwCKM.js"),__vite__mapDeps([55,1,2,3,4,56]),import.meta.url)},{path:"webauthn",name:"WebAuthn",component:()=>e(()=>import("./WebAuthn-BcuyQ4Lr.js"),__vite__mapDeps([57,2,1,3,4,58]),import.meta.url)}]}],F=L({history:B(),routes:U}),A="cc_theme",v={dark:{label:"暗黑",icon:"🌑",antd:{algorithm:g.darkAlgorithm,token:{colorPrimary:"#1677ff",colorBgBase:"#141414",colorBgContainer:"#1f1f1f",colorBgElevated:"#2a2a2a",borderRadius:8,fontFamily:'system-ui, -apple-system, "Segoe UI", sans-serif'},components:{Layout:{siderBg:"#1c1c1c",headerBg:"#1c1c1c",bodyBg:"#141414"},Menu:{darkItemBg:"#1c1c1c",darkSubMenuItemBg:"#171717"}}},vars:{"--bg-base":"#141414","--bg-sidebar":"#1c1c1c","--bg-header":"#1c1c1c","--bg-card":"#1f1f1f","--bg-card-hover":"#262626","--border-color":"#252525","--border-subtle":"#1e1e1e","--text-primary":"#e0e0e0","--text-secondary":"#888","--text-muted":"#444","--logo-text":"#ffffff","--menu-mode":"dark","--shadow-card":"0 2px 8px rgba(0,0,0,.45)","--group-title":"#3a3a3a"}},light:{label:"亮白",icon:"☀️",antd:{algorithm:g.defaultAlgorithm,token:{colorPrimary:"#1677ff",colorBgBase:"#ffffff",colorBgContainer:"#ffffff",colorBgElevated:"#ffffff",borderRadius:8,fontFamily:'system-ui, -apple-system, "Segoe UI", sans-serif'},components:{Layout:{siderBg:"#ffffff",headerBg:"#ffffff",bodyBg:"#f4f6fb"},Menu:{itemBg:"#ffffff"}}},vars:{"--bg-base":"#f4f6fb","--bg-sidebar":"#ffffff","--bg-header":"#ffffff","--bg-card":"#ffffff","--bg-card-hover":"#f0f4ff","--border-color":"#e8edf5","--border-subtle":"#f0f0f0","--text-primary":"#1a1a2e","--text-secondary":"#5a6474","--text-muted":"#b0b8c8","--logo-text":"#1a1a2e","--menu-mode":"light","--shadow-card":"0 2px 12px rgba(0,0,0,.07)","--group-title":"#aab0bc"}},blue:{label:"深蓝",icon:"🌊",antd:{algorithm:g.darkAlgorithm,token:{colorPrimary:"#2f80ed",colorBgBase:"#0d1117",colorBgContainer:"#161b22",colorBgElevated:"#1c2230",borderRadius:8,fontFamily:'system-ui, -apple-system, "Segoe UI", sans-serif'},components:{Layout:{siderBg:"#0f1923",headerBg:"#0f1923",bodyBg:"#0d1117"},Menu:{darkItemBg:"#0f1923",darkSubMenuItemBg:"#0b1520"}}},vars:{"--bg-base":"#0d1117","--bg-sidebar":"#0f1923","--bg-header":"#0f1923","--bg-card":"#161b22","--bg-card-hover":"#1c2230","--border-color":"#21303f","--border-subtle":"#182030","--text-primary":"#c9d8ef","--text-secondary":"#6e8caa","--text-muted":"#2d4060","--logo-text":"#e0eeff","--menu-mode":"dark","--shadow-card":"0 2px 8px rgba(0,40,80,.5)","--group-title":"#2d4060"}},green:{label:"翠绿",icon:"🌿",antd:{algorithm:g.darkAlgorithm,token:{colorPrimary:"#29a270",colorBgBase:"#0a1a12",colorBgContainer:"#0f2318",colorBgElevated:"#152e20",borderRadius:8,fontFamily:'system-ui, -apple-system, "Segoe UI", sans-serif'},components:{Layout:{siderBg:"#0c1e14",headerBg:"#0c1e14",bodyBg:"#0a1a12"},Menu:{darkItemBg:"#0c1e14",darkSubMenuItemBg:"#091810"}}},vars:{"--bg-base":"#0a1a12","--bg-sidebar":"#0c1e14","--bg-header":"#0c1e14","--bg-card":"#0f2318","--bg-card-hover":"#152e20","--border-color":"#1a3828","--border-subtle":"#122a1c","--text-primary":"#c0e8c8","--text-secondary":"#5a9a6a","--text-muted":"#1e4028","--logo-text":"#d8f0e0","--menu-mode":"dark","--shadow-card":"0 2px 8px rgba(0,40,20,.5)","--group-title":"#1e4028"}}},W=I("theme",()=>{const s=T(localStorage.getItem(A)||"light"),a=E(()=>v[s.value]||v.dark),c=E(()=>a.value.antd),m=E(()=>s.value!=="light");function t(){const r=a.value.vars,p=document.documentElement;for(const[b,i]of Object.entries(r))p.style.setProperty(b,i);p.setAttribute("data-theme",s.value)}function o(r){v[r]&&(s.value=r,localStorage.setItem(A,r),t())}function n(){t()}return{current:s,config:a,antdTheme:c,isDark:m,setTheme:o,init:n}}),j={__name:"App",setup(s){const a=W();return R(()=>a.init()),(c,m)=>{const t=y("router-view"),o=y("a-config-provider");return V(),O(o,{theme:k(a).antdTheme},{default:D(()=>[x(t)]),_:1},8,["theme"])}}},h=S(j);h.use(w());h.use(F);h.use(M);h.mount("#app");export{v as T,W as u};
|