@fgbg/mdocs 0.8.23 → 0.8.25
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 +1 -1
- package/agent-skills/changelog/SKILL.md +12 -1
- package/agent-skills/index.json +1 -1
- package/dist/server/agent/Agent/run.js +2 -2
- package/dist/server/agent/Agent/run.js.map +1 -1
- package/dist/server/agent/Agent/system-prompt.js +13 -3
- package/dist/server/agent/Agent/system-prompt.js.map +1 -1
- package/dist/server/cli/self-update.js +50 -32
- package/dist/server/cli/self-update.js.map +1 -1
- package/dist/server/routes/agent.routes.js +10 -0
- package/dist/server/routes/agent.routes.js.map +1 -1
- package/dist/web/assets/AgentChatPanel-BTCyf9Ww.js +1 -0
- package/dist/web/assets/{AgentSkillFormCard-DeZnOTQg.js → AgentSkillFormCard-CAD6QqQ0.js} +1 -1
- package/dist/web/assets/{AiWriteWorkbench-hUYjin2m.js → AiWriteWorkbench-PVv90TJS.js} +1 -1
- package/dist/web/assets/{DiagramEditor-NtNY3sZL-C9hL71kf.js → DiagramEditor-NtNY3sZL-DqPXDJHY.js} +1 -1
- package/dist/web/assets/{DocumentEditor-BmmnuieO.js → DocumentEditor-zNIJgxe0.js} +1 -1
- package/dist/web/assets/MergeView-Y3zB8V5p.js +10 -0
- package/dist/web/assets/{PlaygroundPage-CgaNgQEp.js → PlaygroundPage-DAaEm887.js} +1 -1
- package/dist/web/assets/{SettingsPage-Fl5Tu7u3.js → SettingsPage-DhdiNEhO.js} +1 -1
- package/dist/web/assets/{Toolbar-BaKuyXey.js → Toolbar-B36NxaTc.js} +1 -1
- package/dist/web/assets/{VisitorPickerModal-DPyg6mIt.js → VisitorPickerModal-drnOuPLP.js} +1 -1
- package/dist/web/assets/{copy-UkvgEfIg.js → copy-CX8GOyUb.js} +1 -1
- package/dist/web/assets/{diagram-BLCqfrbF.js → diagram-3lhA7FYR.js} +638 -638
- package/dist/web/assets/index-DgM2rYI-.js +185 -0
- package/dist/web/assets/index-S_lCknAk.css +1 -0
- package/dist/web/assets/{meta2dEngine-BD2XbzaV-2ovN6JHu.js → meta2dEngine-BD2XbzaV-CCgjRlVJ.js} +1 -1
- package/dist/web/assets/{motion-Bz_inm1R.js → motion-92iQWeIW.js} +1 -1
- package/dist/web/assets/{plus-B-uEAM2g.js → plus-BWV299MC.js} +1 -1
- package/dist/web/assets/{react-6CQL39Gs.js → react-BUhFwPCj.js} +3 -3
- package/dist/web/assets/{ui-TwLH91RV.js → ui-06fxEgif.js} +3 -3
- package/dist/web/index.html +4 -4
- package/package.json +1 -1
- package/dist/web/assets/AgentChatPanel-CtdLYtSw.js +0 -1
- package/dist/web/assets/MergeView-CjhCBNPa.js +0 -22
- package/dist/web/assets/index-Ct5Vt4tz.js +0 -185
- package/dist/web/assets/index-Dt_PAYaR.css +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/diagram-
|
|
2
|
-
var hS=Object.defineProperty;var gS=(e,t,r)=>t in e?hS(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var he=(e,t,r)=>gS(e,typeof t!="symbol"?t+"":t,r);import{r as d,j as N,R as q,a as bS,b as _o,c as vS,g as Tl,d as Xi,m as jl,T as su,e as M5,f as I5,h as F5,i as T5,k as j5,l as Db,n as yS,M as xS,o as wS,p as CS,q as _b,s as SS,t as kS,u as $S,v as DS,w as A5,S as _S,x as ES,y as MS,z as IS,A as ad,B as FS,_ as Ph,C as TS,P as jS,D as lu,E as AS,F as RS,G as zS,H as BS,I as PS,J as NS,K as OS,L as Eb,N as Nh,O as LS,Q as HS,U as qS,V as WS,W as VS,X as GS,Y as US,Z as XS,$ as YS,a0 as Mb,a1 as Ib,a2 as Fb,a3 as ma,a4 as KS,a5 as ZS,a6 as QS,a7 as JS}from"./react-vendor-BJFXgntS.js";import{c as ek,r as tk,g as rk,s as Oh,G as nk,m as al,u as ok,C as qn,M as ik,a as ak,_ as Xt,b as R5,d as Lh,T as sk,e as lk}from"./motion-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/diagram-3lhA7FYR.js","assets/react-vendor-BJFXgntS.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
var hS=Object.defineProperty;var gS=(e,t,r)=>t in e?hS(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var he=(e,t,r)=>gS(e,typeof t!="symbol"?t+"":t,r);import{r as d,j as N,R as q,a as bS,b as _o,c as vS,g as Tl,d as Xi,m as jl,T as su,e as M5,f as I5,h as F5,i as T5,k as j5,l as Db,n as yS,M as xS,o as wS,p as CS,q as _b,s as SS,t as kS,u as $S,v as DS,w as A5,S as _S,x as ES,y as MS,z as IS,A as ad,B as FS,_ as Ph,C as TS,P as jS,D as lu,E as AS,F as RS,G as zS,H as BS,I as PS,J as NS,K as OS,L as Eb,N as Nh,O as LS,Q as HS,U as qS,V as WS,W as VS,X as GS,Y as US,Z as XS,$ as YS,a0 as Mb,a1 as Ib,a2 as Fb,a3 as ma,a4 as KS,a5 as ZS,a6 as QS,a7 as JS}from"./react-vendor-BJFXgntS.js";import{c as ek,r as tk,g as rk,s as Oh,G as nk,m as al,u as ok,C as qn,M as ik,a as ak,_ as Xt,b as R5,d as Lh,T as sk,e as lk}from"./motion-92iQWeIW.js";const Hh=d.createContext(null);d.memo(({children:e,motion:t})=>N.jsx(Hh,{value:t,children:e}));const oee=()=>{const e=d.use(Hh);if(!e)throw new Error("Please wrap your app with <ConfigProvider> (or <MotionProvider>) and pass the motion component");return e};function ck(e){var t=[];if(e.length===0)return"";if(typeof e[0]!="string")throw new TypeError("Url must be a string. Received "+e[0]);if(e[0].match(/^[^/:]+:\/*$/)&&e.length>1){var r=e.shift();e[0]=r+e[0]}e[0].match(/^file:\/\/\//)?e[0]=e[0].replace(/^([^/:]+):\/*/,"$1:///"):e[0]=e[0].replace(/^([^/:]+):\/*/,"$1://");for(var n=0;n<e.length;n++){var o=e[n];if(typeof o!="string")throw new TypeError("Url must be a string. Received "+o);o!==""&&(n>0&&(o=o.replace(/^[\/]+/,"")),n<e.length-1?o=o.replace(/[\/]+$/,""):o=o.replace(/[\/]+$/,"/"),t.push(o))}var i=t.join("/");i=i.replace(/\/(\?|&|#[^!])/g,"$1");var a=i.split("?");return i=a.shift()+(a.length>0?"?":"")+a.join("&"),i}function Tb(){var e;return typeof arguments[0]=="object"?e=arguments[0]:e=[].slice.call(arguments),ck(e)}const uk="https://unpkg.com",dk="https://registry.npmmirror.com",z5=({pkg:e,version:t="latest",path:r,proxy:n})=>{switch(n){case"unpkg":return Tb(uk,`${e}@${t}`,r);default:return Tb(dk,e,t,"files",r)}},qh=d.createContext(null),B5=d.createContext({locale:"en",t:e=>e}),uc=e=>typeof(e==null?void 0:e.then)=="function",iee=d.memo(({children:e,config:t,locale:r,resources:n,motion:o})=>{const i=r??"en",[a,s]=d.useState(()=>n&&!uc(n)?n:void 0),[l,c]=d.useState(i),u=d.useRef(0);d.useEffect(()=>{const m=++u.current;if(!n){s(void 0),c(i);return}if(uc(n)){const h=i;n.then(g=>{u.current===m&&(s(g),c(h))}).catch(()=>{u.current});return}s(n),c(i)},[i,n]);const f=uc(n)?a:n,p=uc(n)?l:i;return N.jsx(B5,{value:d.useMemo(()=>{const m=Array.isArray(f)?f:f?Object.values(f):[],h=Object.assign({},...m);return{locale:p,t:v=>h[v]||v}},[p,f]),children:N.jsx(qh,{value:t??null,children:N.jsx(Hh,{value:o,children:e})})})}),jb=({pkg:e,version:t,path:r})=>z5({path:r,pkg:e,proxy:"aliyun",version:t}),Wh=()=>{const e=d.use(qh);return e?(e==null?void 0:e.proxy)!=="custom"?({pkg:t,version:r,path:n})=>z5({path:n,pkg:t,proxy:e.proxy,version:r}):(e==null?void 0:e.customCdnFn)||jb:jb},fk=()=>d.use(B5);function Fo(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function cr(e){"@babel/helpers - typeof";return cr=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},cr(e)}function pk(e,t){if(cr(e)!="object"||!e)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t);if(cr(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function P5(e){var t=pk(e,"string");return cr(t)=="symbol"?t:t+""}function mk(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,P5(n.key),n)}}function To(e,t,r){return t&&mk(e.prototype,t),Object.defineProperty(e,"prototype",{writable:!1}),e}function Kt(e,t,r){return(t=P5(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var hk=function(){function e(){Fo(this,e),Kt(this,"_cacheList",[ek])}return To(e,[{key:"add",value:function(r){var n=this.getCache(r.key);return n||(this._cacheList.push(r),r)}},{key:"delete",value:function(r){this._cacheList=this._cacheList.filter(function(n){return n.key!==r.key})}},{key:"hasCache",value:function(r){return this._cacheList.some(function(n){return n.key===r.key})}},{key:"getCache",value:function(r){return this._cacheList.find(function(n){return n.key===r})}},{key:"getCacheList",value:function(){return this._cacheList}}]),e}(),Ab=typeof document<"u",N5=function(t,r){return"".concat(t,"-").concat(r)},gk=function(t,r,n,o){var i=o.hashPriority;tk(t,r,n);var a=".".concat(N5(t.key,r.name)),s=i==="low"?":where(".concat(a,")"):a;if(t.inserted[r.name]===void 0){var l="",c=r;do{var u=t.insert(r===c?s:"",c,t.sheet,!0);!Ab&&u!==void 0&&(l+=u),c=c.next}while(c!==void 0);if(!Ab&&l.length!==0)return l}},Vh=function(t){return cr(t)==="object"&&"styles"in t&&"name"in t&&"toString"in t},bk=function e(t){for(var r="",n=0;n<t.length;n++){var o=t[n];if(o!==null){var i=void 0;switch(cr(o)){case"boolean":break;case"object":{if(Array.isArray(o))i=e(o);else{i="";for(var a in o)o[a]&&a&&(i&&(i+=" "),i+=a)}break}default:i=o}i&&(r&&(r+=" "),r+=i)}}return r},vk=function(t,r,n){var o=[],i=rk(t,o,n);return o.length<2?n:i+r(o)},yk=function(t,r){return function(){for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];var a=Oh(o,t.registered,void 0);return gk(t,a,!1,r),N5(t.key,a.name)}},xk=function(t,r){return function(){for(var n=arguments.length,o=new Array(n),i=0;i<n;i++)o[i]=arguments[i];var a=o.map(function(s){return Vh(s)?r(s):s});return vk(t.registered,r,bk(a))}},Gh=function(t,r){var n=yk(t,{hashPriority:r.hashPriority||"high",label:r.label}),o=xk(t,n);return{css:n,cx:o}},Al=function(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];return Oh(r)},O5="acss";function Rb(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function st(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Rb(Object(r),!0).forEach(function(n){Kt(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Rb(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var wk=function(t){return d.createContext(t)},Ck=function(t){return function(){for(var r=arguments.length,n=new Array(r),o=0;o<r;o++)n[o]=arguments[o];return d.memo(function(i){var a=t();return N.jsx(nk,{styles:Oh(n,void 0,st(st({},i),{},{theme:a}))})})}};const dt=e=>{const t=d.useRef(e);return t.current=e,d.useCallback((...n)=>{var o;return(o=t.current)==null?void 0:o.call(t,...n)},[])};function uo(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}const zb=uo()?d.useLayoutEffect:d.useEffect,Wt=(e,t)=>{const r=d.useRef(!0);zb(()=>e(r.current),t),zb(()=>(r.current=!1,()=>{r.current=!0}),[])},S0=(e,t)=>{Wt(r=>{if(!r)return e()},t)},Sk=e=>{const t=d.useRef(!1),[r,n]=d.useState(e);d.useEffect(()=>(t.current=!1,()=>{t.current=!0}),[]);function o(i,a){a&&t.current||n(i)}return[r,o]};function er(e,t){const[r,n]=d.useState(e),o=t!==void 0?t:r;return Wt(i=>{i||n(t)},[t]),[o,n]}var L5={exports:{}},Zt={};/**
|
|
3
3
|
* @license React
|
|
4
4
|
* react-is.production.min.js
|
|
5
5
|
*
|
|
@@ -2710,7 +2710,7 @@ l0,-`+(r+144)+`c-2,-159.3,-10,-310.7,-24,-454c-53.3,-528,-210,-949.7,
|
|
|
2710
2710
|
overflow: hidden;
|
|
2711
2711
|
max-width: 100%;
|
|
2712
2712
|
height: auto;
|
|
2713
|
-
`})),WG=fr(wn.root,{defaultVariants:{variant:"filled"},variants:{variant:{filled:wn.filled,outlined:wn.outlined,borderless:wn.borderless}}}),VG="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgdmlld0JveD0iMCAwIDI1NiAyNTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2IiBmaWxsPSIjM0IzQjNCIi8+CjxwYXRoIGQ9Ik0xNTYuODg4IDkxLjAwMkgxMDAuMTEyQzk1LjYzMjkgOTEuMDAyIDkyLjAwMTUgOTQuNjMzNCA5Mi4wMDE1IDk5LjExMjdWMTU1Ljg4OEM5Mi4wMDE1IDE2MC4zNjcgOTUuNjMyOSAxNjMuOTk5IDEwMC4xMTIgMTYzLjk5OUgxNTYuODg4QzE2MS4zNjcgMTYzLjk5OSAxNjQuOTk4IDE2MC4zNjcgMTY0Ljk5OCAxNTUuODg4Vjk5LjExMjdDMTY0Ljk5OCA5NC42MzM0IDE2MS4zNjcgOTEuMDAyIDE1Ni44ODggOTEuMDAyWiIgc3Ryb2tlPSIjNjI2MjYyIiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTY0Ljk5OCAxMzkuNjY4TDE1Mi40ODQgMTI3LjE1M0MxNTAuOTYyIDEyNS42MzIgMTQ4LjkgMTI0Ljc3OCAxNDYuNzQ5IDEyNC43NzhDMTQ0LjU5OSAxMjQuNzc4IDE0Mi41MzYgMTI1LjYzMiAxNDEuMDE1IDEyNy4xNTNMMTA0LjE2OCAxNjRNMTE2LjMzNCAxMjMuNDQ1QzEyMC44MTMgMTIzLjQ0NSAxMjQuNDQ1IDExOS44MTQgMTI0LjQ0NSAxMTUuMzM0QzEyNC40NDUgMTEwLjg1NSAxMjAuODEzIDEwNy4yMjQgMTE2LjMzNCAxMDcuMjI0QzExMS44NTUgMTA3LjIyNCAxMDguMjIzIDExMC44NTUgMTA4LjIyMyAxMTUuMzM0QzEwOC4yMjMgMTE5LjgxNCAxMTEuODU1IDEyMy40NDUgMTE2LjMzNCAxMjMuNDQ1WiIgc3Ryb2tlPSIjNjI2MjYyIiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K",GG="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgdmlld0JveD0iMCAwIDI1NiAyNTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2IiBmaWxsPSIjRUNFQ0VDIi8+CjxwYXRoIGQ9Ik0xNTYuODg4IDkxLjAwMkgxMDAuMTEyQzk1LjYzMjkgOTEuMDAyIDkyLjAwMTUgOTQuNjMzNCA5Mi4wMDE1IDk5LjExMjdWMTU1Ljg4OEM5Mi4wMDE1IDE2MC4zNjcgOTUuNjMyOSAxNjMuOTk5IDEwMC4xMTIgMTYzLjk5OUgxNTYuODg4QzE2MS4zNjcgMTYzLjk5OSAxNjQuOTk4IDE2MC4zNjcgMTY0Ljk5OCAxNTUuODg4Vjk5LjExMjdDMTY0Ljk5OCA5NC42MzM0IDE2MS4zNjcgOTEuMDAyIDE1Ni44ODggOTEuMDAyWiIgc3Ryb2tlPSIjRDdEN0Q3IiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTY0Ljk5OCAxMzkuNjY4TDE1Mi40ODQgMTI3LjE1M0MxNTAuOTYyIDEyNS42MzIgMTQ4LjkgMTI0Ljc3OCAxNDYuNzQ5IDEyNC43NzhDMTQ0LjU5OSAxMjQuNzc4IDE0Mi41MzYgMTI1LjYzMiAxNDEuMDE1IDEyNy4xNTNMMTA0LjE2OCAxNjRNMTE2LjMzNCAxMjMuNDQ1QzEyMC44MTMgMTIzLjQ0NSAxMjQuNDQ1IDExOS44MTQgMTI0LjQ0NSAxMTUuMzM0QzEyNC40NDUgMTEwLjg1NSAxMjAuODEzIDEwNy4yMjQgMTE2LjMzNCAxMDcuMjI0QzExMS44NTUgMTA3LjIyNCAxMDguMjIzIDExMC44NTUgMTA4LjIyMyAxMTUuMzM0QzEwOC4yMjMgMTE5LjgxNCAxMTEuODU1IDEyMy40NDUgMTE2LjMzNCAxMjMuNDQ1WiIgc3Ryb2tlPSIjRDdEN0Q3IiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K",n9=d.memo(({children:e,visible:t})=>{const r=d.useRef(null);return d.useEffect(()=>{if(!r.current)return;const n=o=>{o.preventDefault()};t?r.current.addEventListener("wheel",n,{passive:!1}):r.current.removeEventListener("wheel",n)},[t]),N.jsx("div",{ref:r,children:e})});var UG={"image.copy":"Copy","image.copyFailed":"Copy Failed","image.copySuccess":"Copy Success","image.download":"Download","image.downloadFailed":"Download Failed","image.downloadSuccess":"Download Success","image.flipHorizontal":"Flip Horizontal","image.flipVertical":"Flip Vertical","image.rotateLeft":"Rotate Left","image.rotateRight":"Rotate Right","image.zoomIn":"Zoom In","image.zoomOut":"Zoom Out"};const XG=e=>new Promise((t,r)=>{const n=new Image,o=URL.createObjectURL(e);n.onload=()=>{URL.revokeObjectURL(o);const i=document.createElement("canvas");i.width=n.naturalWidth,i.height=n.naturalHeight;const a=i.getContext("2d");if(!a){r(new Error("Canvas context not available"));return}a.drawImage(n,0,0),i.toBlob(s=>{s?t(s):r(new Error("Failed to convert to PNG"))},"image/png",1)},n.onerror=()=>{URL.revokeObjectURL(o),r(new Error("Failed to load image"))},n.src=o}),YG=async e=>{const t=(e.type||"").toLowerCase();return t==="image/png"||t==="image/svg+xml"?{[t]:e}:{"image/png":await XG(e)}},KG=e=>{try{const t=new URL(e).pathname.match(/\/([^/]+)$/);return t?decodeURIComponent(t[1]):"image"}catch{return"image"}},ZG=e=>{var t;return{"image/svg+xml":"svg","image/png":"png","image/jpeg":"jpg","image/jpg":"jpg","image/webp":"webp","image/gif":"gif"}[e==null?void 0:e.toLowerCase()]||((t=e==null?void 0:e.split("/")[1])==null?void 0:t.split("+")[0])||"png"},o9=d.memo(({children:e,info:t,minScale:r,maxScale:n})=>{const{t:o}=IW(UG),[i,a]=d.useState(null),[s,l]=d.useState(!1),[c,u]=d.useState(!1),{transform:{scale:f},actions:{onFlipY:p,onFlipX:m,onRotateLeft:h,onRotateRight:g,onZoomOut:v,onZoomIn:b},image:{url:y}}=t,x=d.useCallback(async()=>{u(!0);try{const S=await(await fetch(y,{mode:"cors"})).blob(),C=URL.createObjectURL(S);let k=KG(y);const D=ZG(S.type);k.includes(".")?k.endsWith(".svg+xml")&&(k=k.replace(/\.svg\+xml$/i,".svg")):k=`${k}.${D}`,await jW(C,k),URL.revokeObjectURL(C),La.success(o("image.downloadSuccess"))}catch{La.error(o("image.downloadFailed"))}finally{u(!1)}},[y,o]),w=d.useCallback(async()=>{l(!0);try{const S=await YG(await(await fetch(y,{mode:"cors"})).blob());await navigator.clipboard.write([new ClipboardItem(S)]),La.success(o("image.copySuccess"))}catch{La.error(o("image.copyFailed"))}finally{l(!1)}},[y,o]);return N.jsx(A1,{popupContainer:i??void 0,children:N.jsxs(ir,{horizontal:!0,className:wn.toolbar,gap:4,ref:a,children:[N.jsx(un,{icon:XH,title:o("image.flipHorizontal"),onClick:m}),N.jsx(un,{icon:GH,title:o("image.flipVertical"),onClick:p}),N.jsx(un,{icon:OH,title:o("image.rotateLeft"),onClick:h}),N.jsx(un,{icon:HH,title:o("image.rotateRight"),onClick:g}),N.jsx(un,{disabled:f===r,icon:tq,title:o("image.zoomOut"),onClick:v}),N.jsx(un,{disabled:f===n,icon:JH,title:o("image.zoomIn"),onClick:b}),N.jsx(un,{icon:e7,loading:s,title:o("image.copy"),onClick:w}),N.jsx(un,{icon:EH,loading:c,title:o("image.download"),onClick:x}),e]})})}),QG=e=>{const[t,r]=d.useState(!1);return d.useMemo(()=>{if(e===!1)return e;const{onVisibleChange:n,onOpenChange:o,minScale:i=.32,maxScale:a=32,toolbarAddon:s,rootClassName:l,imageRender:c,toolbarRender:u,...f}=e===!0?{}:e||{};return{actionsRender:(p,m)=>{const h=N.jsx(o9,{info:m,maxScale:a,minScale:i,children:s});return u?u(h,m):h},closeIcon:N.jsx(At,{color:"#fff",icon:Wu}),imageRender:(p,m)=>{const h=N.jsx(n9,{visible:t,children:p});return c?c(h,m):h},maxScale:a,minScale:i,onOpenChange:(p,m)=>{r(p),o==null||o(p,m),n==null||n(p,!p,m.current)},rootClassName:Fe(wn.preview,l),...f}},[e,t,wn])},{PreviewGroup:JG}=a1,i9=d.memo(({items:e,children:t,enable:r=!0,preview:n})=>{const o=QG(n);return r?N.jsx(JG,{items:e,preview:o,children:t}):t});i9.displayName="PreviewGroup";const eU=e=>{const[t,r]=d.useState(!1);return d.useMemo(()=>{if(e===!1)return e;const{onVisibleChange:n,onOpenChange:o,minScale:i=.32,maxScale:a=32,toolbarAddon:s,rootClassName:l,imageRender:c,toolbarRender:u,actionsRender:f,...p}=e===!0?{}:e||{};return{actionsRender:f||((m,h)=>{const g=N.jsx(o9,{info:h,maxScale:a,minScale:i,children:s});return u?u(g,h):g}),closeIcon:N.jsx(At,{color:"#fff",icon:Wu}),imageRender:(m,h)=>{const g=N.jsx(n9,{visible:t,children:m});return c?c(g,h):g},maxScale:a,minScale:i,onOpenChange:m=>{r(m),o==null||o(m),n==null||n(m,!m)},rootClassName:Fe(wn.preview,l),styles:{mask:{backdropFilter:"blur(8px)"}},...p}},[e,t,wn])},a9=d.memo(({ref:e,style:t,preview:r,isLoading:n,maxHeight:o="100%",maxWidth:i="100%",minHeight:a,minWidth:s,actions:l,className:c,alwaysShowActions:u,variant:f="filled",objectFit:p="cover",classNames:m,styles:h,onClick:g,width:v,height:b,...y})=>{const{isDarkMode:x}=En(),w=u?wn.actionsVisible:wn.actionsHidden,S=eU(r);return n?N.jsx("div",{onClick:g,children:N.jsx(oa.Avatar,{active:!0,style:{borderRadius:Ce.borderRadius,height:b,maxHeight:o,maxWidth:i,minHeight:a,minWidth:s,width:v}})}):N.jsxs(ir,{className:Fe(WG({variant:f}),c),ref:e,style:t,children:[l&&N.jsx("div",{className:Fe(w,u?"":"actions-hidden"),children:l}),N.jsx(a1,{className:Fe(wn.image,m==null?void 0:m.image),fallback:x?VG:GG,height:b,loading:"lazy",preview:r===!1?!1:S,width:v,classNames:{root:Fe(wn.wrapper,m==null?void 0:m.wrapper)},style:{maxHeight:o,maxWidth:i,minHeight:a,minWidth:s,objectFit:p||"cover",...h==null?void 0:h.image},styles:{root:h==null?void 0:h.wrapper},onClick:g,...y})]})});a9.displayName="Image";const ib=a9;ib.PreviewGroup=i9;const s9=[{displayName:"Lobe Theme",id:"lobe-theme"},{background:"#fbf9ff",displayName:"Mermaid Default",id:"default"},{background:"#fffcf8",displayName:"Mermaid Base",id:"base"},{background:"#000",displayName:"Mermaid Dark",id:"dark"},{background:"#f9ffeb",displayName:"Mermaid Forest",id:"forest"},{background:"#fff",displayName:"Mermaid Neutral",id:"neutral"}],Ko=new Map,R4=500,tU=()=>{if(Ko.size>R4){const e=Math.floor(R4*.2),t=Array.from(Ko.keys()).slice(0,e);for(const r of t)Ko.delete(r)}};let qf=null;const l9=()=>typeof window>"u"?Promise.resolve(null):(qf||(qf=Ph(()=>import("./diagram-BLCqfrbF.js").then(e=>e.d),__vite__mapDeps([0,1])).then(e=>e.default)),qf),c9=(e,t,r="strict")=>({fontFamily:e.fontFamilyCode,gantt:{useWidth:1920},securityLevel:r,startOnLoad:!1,theme:t||(e.isDarkMode?"dark":"neutral"),themeVariables:t?void 0:{errorBkgColor:e.colorTextDescription,errorTextColor:e.colorTextDescription,fontFamily:e.fontFamily,lineColor:e.colorTextSecondary,mainBkg:e.colorBgContainer,noteBkgColor:e.colorInfoBg,noteTextColor:e.colorInfoText,pie1:e.geekblue,pie2:e.colorWarning,pie3:e.colorSuccess,pie4:e.colorError,primaryBorderColor:e.colorBorder,primaryColor:e.colorBgContainer,primaryTextColor:e.colorText,secondaryBorderColor:e.colorInfoBorder,secondaryColor:e.colorInfoBg,secondaryTextColor:e.colorInfoText,tertiaryBorderColor:e.colorSuccessBorder,tertiaryColor:e.colorSuccessBg,tertiaryTextColor:e.colorSuccessText,textColor:e.colorText}}),rU=(e,{id:t,theme:r,securityLevel:n})=>{const o=f1(),[i,a]=d.useState(""),s=d.useMemo(()=>c9(o,r,n),[o.fontFamilyCode,o.isDarkMode,o.colorTextDescription,o.fontFamily,o.colorTextSecondary,o.colorBgContainer,o.colorInfoBg,o.colorInfoText,o.geekblue,o.colorWarning,o.colorSuccess,o.colorError,o.colorBorder,o.colorInfoBorder,o.colorSuccessBorder,o.colorSuccessBg,o.colorSuccessText,o.colorText,r,n]),l=d.useMemo(()=>{const c=e.length<1e4?e:_l.hashStr(e);return[t,r||(o.isDarkMode?"d":"l"),c].filter(Boolean).join("-")},[e,t,o.isDarkMode,r]);return d.useEffect(()=>{const c=Ko.get(l);if(c){c.then(f=>{a(f)}).catch(()=>{});return}const u=(async()=>{try{const f=await l9();if(!f)return"";if(await f.parse(e)){f.initialize(s);const{svg:p}=await f.render(t,e);return p}else throw new Error("Mermaid 语法无效")}catch(f){return console.error("Mermaid 解析错误:",f),""}})();Ko.set(l,u),tU(),u.then(f=>{Ko.get(l)===u&&a(f)}).catch(()=>{Ko.get(l)===u&&Ko.delete(l)})},[l,e,t,s]),i},u9=d.memo(({children:e,className:t,fallbackClassName:r,ref:n,style:o,theme:i,variant:a})=>{const s=e??"",l=i==="lobe-theme"||!i,c=d.useMemo(()=>{var g;if(!l)return(g=s9.find(v=>v.id===i))==null?void 0:g.background},[l,i]),u=rU(s,{id:q8(`mermaid-${d.useId()}`),theme:l?void 0:i}),f=!u,[p,m]=d.useState();d.useEffect(()=>()=>{p&&URL.revokeObjectURL(p)},[p]),d.useEffect(()=>{if(f||!u)return;let g=u;if(typeof window<"u"&&typeof navigator<"u"&&navigator.userAgent.includes("Firefox")){const b=new DOMParser().parseFromString(u,"image/svg+xml"),y=b.documentElement;if(y&&y.hasAttribute("viewBox")){const x=y.getAttribute("viewBox").split(" ");Array.isArray(x)&&x.length===4&&(y.setAttribute("width",x[2]),y.setAttribute("height",x[3])),g=new XMLSerializer().serializeToString(b)}}const v=new Blob([g],{type:"image/svg+xml"});m(URL.createObjectURL(v))},[f,u]);const h={background:a==="filled"?c:void 0,margin:0,minWidth:300,padding:a==="borderless"?0:16,position:"relative",width:"100%",...o};return p?N.jsx(ib,{alt:"mermaid",className:t,maxHeight:480,minWidth:300,objectFit:"contain",ref:n,src:p,style:h,variant:"borderless",width:"100%"}):N.jsx("div",{className:r,style:o,children:N.jsx("div",{style:{padding:16},children:"Loading..."})})});u9.displayName="StaticMermaid";const nU=(e,{enabled:t=!0,id:r,theme:n})=>{const o=f1(),[i,a]=d.useState(""),s=d.useRef(""),l=d.useRef(e),c=d.useRef(void 0),u=d.useMemo(()=>c9(o,n),[o.fontFamilyCode,o.isDarkMode,o.colorTextDescription,o.fontFamily,o.colorTextSecondary,o.colorBgContainer,o.colorInfoBg,o.colorInfoText,o.geekblue,o.colorWarning,o.colorSuccess,o.colorError,o.colorBorder,o.colorInfoBorder,o.colorSuccessBorder,o.colorSuccessBg,o.colorSuccessText,o.colorText,n]);return d.useEffect(()=>{l.current=e},[e]),d.useEffect(()=>{if(!t){a(""),s.current="";const m=c.current;m&&clearTimeout(m);return}const f=l.current;if(f===s.current&&i)return;const p=c.current;return p&&clearTimeout(p),c.current=setTimeout(async()=>{const m=l.current;if(m===f)try{const h=await l9();if(!h)return;if(await h.parse(m)){h.initialize(u);const{svg:g}=await h.render(r,m);l.current===m&&(a(g),s.current=m)}}catch(h){m===l.current&&console.error("Mermaid 解析错误:",h)}},300),()=>{const m=c.current;m&&clearTimeout(m)}},[t,e,r,u,i]),i},d9=d.memo(({children:e,className:t,fallbackClassName:r,ref:n,style:o,theme:i,variant:a})=>{const s=e??"",l=i==="lobe-theme"||!i,c=d.useMemo(()=>{var g;if(!l)return(g=s9.find(v=>v.id===i))==null?void 0:g.background},[l,i]),u=nU(s,{enabled:!0,id:q8(`mermaid-${d.useId()}`),theme:l?void 0:i}),f=!u,[p,m]=d.useState();d.useEffect(()=>()=>{p&&URL.revokeObjectURL(p)},[p]),d.useEffect(()=>{if(f||!u){m(void 0);return}let g=u;if(typeof window<"u"&&typeof navigator<"u"&&navigator.userAgent.includes("Firefox")){const b=new DOMParser().parseFromString(u,"image/svg+xml"),y=b.documentElement;if(y&&y.hasAttribute("viewBox")){const x=y.getAttribute("viewBox").split(" ");Array.isArray(x)&&x.length===4&&(y.setAttribute("width",x[2]),y.setAttribute("height",x[3])),g=new XMLSerializer().serializeToString(b)}}const v=new Blob([g],{type:"image/svg+xml"});m(URL.createObjectURL(v))},[f,u]);const h={background:a==="filled"?c:void 0,margin:0,minWidth:300,padding:a==="borderless"?0:16,position:"relative",width:"100%",...o};return p?N.jsx(ib,{alt:"mermaid",className:t,maxHeight:480,minWidth:300,objectFit:"contain",ref:n,src:p,style:h,variant:"borderless",width:"100%"}):N.jsx("div",{className:r,style:o,children:N.jsx("div",{style:{padding:16},children:"Rendering..."})})});d9.displayName="StreamMermaid";const oU=Jl`
|
|
2713
|
+
`})),WG=fr(wn.root,{defaultVariants:{variant:"filled"},variants:{variant:{filled:wn.filled,outlined:wn.outlined,borderless:wn.borderless}}}),VG="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgdmlld0JveD0iMCAwIDI1NiAyNTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2IiBmaWxsPSIjM0IzQjNCIi8+CjxwYXRoIGQ9Ik0xNTYuODg4IDkxLjAwMkgxMDAuMTEyQzk1LjYzMjkgOTEuMDAyIDkyLjAwMTUgOTQuNjMzNCA5Mi4wMDE1IDk5LjExMjdWMTU1Ljg4OEM5Mi4wMDE1IDE2MC4zNjcgOTUuNjMyOSAxNjMuOTk5IDEwMC4xMTIgMTYzLjk5OUgxNTYuODg4QzE2MS4zNjcgMTYzLjk5OSAxNjQuOTk4IDE2MC4zNjcgMTY0Ljk5OCAxNTUuODg4Vjk5LjExMjdDMTY0Ljk5OCA5NC42MzM0IDE2MS4zNjcgOTEuMDAyIDE1Ni44ODggOTEuMDAyWiIgc3Ryb2tlPSIjNjI2MjYyIiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTY0Ljk5OCAxMzkuNjY4TDE1Mi40ODQgMTI3LjE1M0MxNTAuOTYyIDEyNS42MzIgMTQ4LjkgMTI0Ljc3OCAxNDYuNzQ5IDEyNC43NzhDMTQ0LjU5OSAxMjQuNzc4IDE0Mi41MzYgMTI1LjYzMiAxNDEuMDE1IDEyNy4xNTNMMTA0LjE2OCAxNjRNMTE2LjMzNCAxMjMuNDQ1QzEyMC44MTMgMTIzLjQ0NSAxMjQuNDQ1IDExOS44MTQgMTI0LjQ0NSAxMTUuMzM0QzEyNC40NDUgMTEwLjg1NSAxMjAuODEzIDEwNy4yMjQgMTE2LjMzNCAxMDcuMjI0QzExMS44NTUgMTA3LjIyNCAxMDguMjIzIDExMC44NTUgMTA4LjIyMyAxMTUuMzM0QzEwOC4yMjMgMTE5LjgxNCAxMTEuODU1IDEyMy40NDUgMTE2LjMzNCAxMjMuNDQ1WiIgc3Ryb2tlPSIjNjI2MjYyIiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K",GG="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjU2IiBoZWlnaHQ9IjI1NiIgdmlld0JveD0iMCAwIDI1NiAyNTYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIyNTYiIGhlaWdodD0iMjU2IiBmaWxsPSIjRUNFQ0VDIi8+CjxwYXRoIGQ9Ik0xNTYuODg4IDkxLjAwMkgxMDAuMTEyQzk1LjYzMjkgOTEuMDAyIDkyLjAwMTUgOTQuNjMzNCA5Mi4wMDE1IDk5LjExMjdWMTU1Ljg4OEM5Mi4wMDE1IDE2MC4zNjcgOTUuNjMyOSAxNjMuOTk5IDEwMC4xMTIgMTYzLjk5OUgxNTYuODg4QzE2MS4zNjcgMTYzLjk5OSAxNjQuOTk4IDE2MC4zNjcgMTY0Ljk5OCAxNTUuODg4Vjk5LjExMjdDMTY0Ljk5OCA5NC42MzM0IDE2MS4zNjcgOTEuMDAyIDE1Ni44ODggOTEuMDAyWiIgc3Ryb2tlPSIjRDdEN0Q3IiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTY0Ljk5OCAxMzkuNjY4TDE1Mi40ODQgMTI3LjE1M0MxNTAuOTYyIDEyNS42MzIgMTQ4LjkgMTI0Ljc3OCAxNDYuNzQ5IDEyNC43NzhDMTQ0LjU5OSAxMjQuNzc4IDE0Mi41MzYgMTI1LjYzMiAxNDEuMDE1IDEyNy4xNTNMMTA0LjE2OCAxNjRNMTE2LjMzNCAxMjMuNDQ1QzEyMC44MTMgMTIzLjQ0NSAxMjQuNDQ1IDExOS44MTQgMTI0LjQ0NSAxMTUuMzM0QzEyNC40NDUgMTEwLjg1NSAxMjAuODEzIDEwNy4yMjQgMTE2LjMzNCAxMDcuMjI0QzExMS44NTUgMTA3LjIyNCAxMDguMjIzIDExMC44NTUgMTA4LjIyMyAxMTUuMzM0QzEwOC4yMjMgMTE5LjgxNCAxMTEuODU1IDEyMy40NDUgMTE2LjMzNCAxMjMuNDQ1WiIgc3Ryb2tlPSIjRDdEN0Q3IiBzdHJva2Utd2lkdGg9IjguMTEwNzciIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8L3N2Zz4K",n9=d.memo(({children:e,visible:t})=>{const r=d.useRef(null);return d.useEffect(()=>{if(!r.current)return;const n=o=>{o.preventDefault()};t?r.current.addEventListener("wheel",n,{passive:!1}):r.current.removeEventListener("wheel",n)},[t]),N.jsx("div",{ref:r,children:e})});var UG={"image.copy":"Copy","image.copyFailed":"Copy Failed","image.copySuccess":"Copy Success","image.download":"Download","image.downloadFailed":"Download Failed","image.downloadSuccess":"Download Success","image.flipHorizontal":"Flip Horizontal","image.flipVertical":"Flip Vertical","image.rotateLeft":"Rotate Left","image.rotateRight":"Rotate Right","image.zoomIn":"Zoom In","image.zoomOut":"Zoom Out"};const XG=e=>new Promise((t,r)=>{const n=new Image,o=URL.createObjectURL(e);n.onload=()=>{URL.revokeObjectURL(o);const i=document.createElement("canvas");i.width=n.naturalWidth,i.height=n.naturalHeight;const a=i.getContext("2d");if(!a){r(new Error("Canvas context not available"));return}a.drawImage(n,0,0),i.toBlob(s=>{s?t(s):r(new Error("Failed to convert to PNG"))},"image/png",1)},n.onerror=()=>{URL.revokeObjectURL(o),r(new Error("Failed to load image"))},n.src=o}),YG=async e=>{const t=(e.type||"").toLowerCase();return t==="image/png"||t==="image/svg+xml"?{[t]:e}:{"image/png":await XG(e)}},KG=e=>{try{const t=new URL(e).pathname.match(/\/([^/]+)$/);return t?decodeURIComponent(t[1]):"image"}catch{return"image"}},ZG=e=>{var t;return{"image/svg+xml":"svg","image/png":"png","image/jpeg":"jpg","image/jpg":"jpg","image/webp":"webp","image/gif":"gif"}[e==null?void 0:e.toLowerCase()]||((t=e==null?void 0:e.split("/")[1])==null?void 0:t.split("+")[0])||"png"},o9=d.memo(({children:e,info:t,minScale:r,maxScale:n})=>{const{t:o}=IW(UG),[i,a]=d.useState(null),[s,l]=d.useState(!1),[c,u]=d.useState(!1),{transform:{scale:f},actions:{onFlipY:p,onFlipX:m,onRotateLeft:h,onRotateRight:g,onZoomOut:v,onZoomIn:b},image:{url:y}}=t,x=d.useCallback(async()=>{u(!0);try{const S=await(await fetch(y,{mode:"cors"})).blob(),C=URL.createObjectURL(S);let k=KG(y);const D=ZG(S.type);k.includes(".")?k.endsWith(".svg+xml")&&(k=k.replace(/\.svg\+xml$/i,".svg")):k=`${k}.${D}`,await jW(C,k),URL.revokeObjectURL(C),La.success(o("image.downloadSuccess"))}catch{La.error(o("image.downloadFailed"))}finally{u(!1)}},[y,o]),w=d.useCallback(async()=>{l(!0);try{const S=await YG(await(await fetch(y,{mode:"cors"})).blob());await navigator.clipboard.write([new ClipboardItem(S)]),La.success(o("image.copySuccess"))}catch{La.error(o("image.copyFailed"))}finally{l(!1)}},[y,o]);return N.jsx(A1,{popupContainer:i??void 0,children:N.jsxs(ir,{horizontal:!0,className:wn.toolbar,gap:4,ref:a,children:[N.jsx(un,{icon:XH,title:o("image.flipHorizontal"),onClick:m}),N.jsx(un,{icon:GH,title:o("image.flipVertical"),onClick:p}),N.jsx(un,{icon:OH,title:o("image.rotateLeft"),onClick:h}),N.jsx(un,{icon:HH,title:o("image.rotateRight"),onClick:g}),N.jsx(un,{disabled:f===r,icon:tq,title:o("image.zoomOut"),onClick:v}),N.jsx(un,{disabled:f===n,icon:JH,title:o("image.zoomIn"),onClick:b}),N.jsx(un,{icon:e7,loading:s,title:o("image.copy"),onClick:w}),N.jsx(un,{icon:EH,loading:c,title:o("image.download"),onClick:x}),e]})})}),QG=e=>{const[t,r]=d.useState(!1);return d.useMemo(()=>{if(e===!1)return e;const{onVisibleChange:n,onOpenChange:o,minScale:i=.32,maxScale:a=32,toolbarAddon:s,rootClassName:l,imageRender:c,toolbarRender:u,...f}=e===!0?{}:e||{};return{actionsRender:(p,m)=>{const h=N.jsx(o9,{info:m,maxScale:a,minScale:i,children:s});return u?u(h,m):h},closeIcon:N.jsx(At,{color:"#fff",icon:Wu}),imageRender:(p,m)=>{const h=N.jsx(n9,{visible:t,children:p});return c?c(h,m):h},maxScale:a,minScale:i,onOpenChange:(p,m)=>{r(p),o==null||o(p,m),n==null||n(p,!p,m.current)},rootClassName:Fe(wn.preview,l),...f}},[e,t,wn])},{PreviewGroup:JG}=a1,i9=d.memo(({items:e,children:t,enable:r=!0,preview:n})=>{const o=QG(n);return r?N.jsx(JG,{items:e,preview:o,children:t}):t});i9.displayName="PreviewGroup";const eU=e=>{const[t,r]=d.useState(!1);return d.useMemo(()=>{if(e===!1)return e;const{onVisibleChange:n,onOpenChange:o,minScale:i=.32,maxScale:a=32,toolbarAddon:s,rootClassName:l,imageRender:c,toolbarRender:u,actionsRender:f,...p}=e===!0?{}:e||{};return{actionsRender:f||((m,h)=>{const g=N.jsx(o9,{info:h,maxScale:a,minScale:i,children:s});return u?u(g,h):g}),closeIcon:N.jsx(At,{color:"#fff",icon:Wu}),imageRender:(m,h)=>{const g=N.jsx(n9,{visible:t,children:m});return c?c(g,h):g},maxScale:a,minScale:i,onOpenChange:m=>{r(m),o==null||o(m),n==null||n(m,!m)},rootClassName:Fe(wn.preview,l),styles:{mask:{backdropFilter:"blur(8px)"}},...p}},[e,t,wn])},a9=d.memo(({ref:e,style:t,preview:r,isLoading:n,maxHeight:o="100%",maxWidth:i="100%",minHeight:a,minWidth:s,actions:l,className:c,alwaysShowActions:u,variant:f="filled",objectFit:p="cover",classNames:m,styles:h,onClick:g,width:v,height:b,...y})=>{const{isDarkMode:x}=En(),w=u?wn.actionsVisible:wn.actionsHidden,S=eU(r);return n?N.jsx("div",{onClick:g,children:N.jsx(oa.Avatar,{active:!0,style:{borderRadius:Ce.borderRadius,height:b,maxHeight:o,maxWidth:i,minHeight:a,minWidth:s,width:v}})}):N.jsxs(ir,{className:Fe(WG({variant:f}),c),ref:e,style:t,children:[l&&N.jsx("div",{className:Fe(w,u?"":"actions-hidden"),children:l}),N.jsx(a1,{className:Fe(wn.image,m==null?void 0:m.image),fallback:x?VG:GG,height:b,loading:"lazy",preview:r===!1?!1:S,width:v,classNames:{root:Fe(wn.wrapper,m==null?void 0:m.wrapper)},style:{maxHeight:o,maxWidth:i,minHeight:a,minWidth:s,objectFit:p||"cover",...h==null?void 0:h.image},styles:{root:h==null?void 0:h.wrapper},onClick:g,...y})]})});a9.displayName="Image";const ib=a9;ib.PreviewGroup=i9;const s9=[{displayName:"Lobe Theme",id:"lobe-theme"},{background:"#fbf9ff",displayName:"Mermaid Default",id:"default"},{background:"#fffcf8",displayName:"Mermaid Base",id:"base"},{background:"#000",displayName:"Mermaid Dark",id:"dark"},{background:"#f9ffeb",displayName:"Mermaid Forest",id:"forest"},{background:"#fff",displayName:"Mermaid Neutral",id:"neutral"}],Ko=new Map,R4=500,tU=()=>{if(Ko.size>R4){const e=Math.floor(R4*.2),t=Array.from(Ko.keys()).slice(0,e);for(const r of t)Ko.delete(r)}};let qf=null;const l9=()=>typeof window>"u"?Promise.resolve(null):(qf||(qf=Ph(()=>import("./diagram-3lhA7FYR.js").then(e=>e.d),__vite__mapDeps([0,1])).then(e=>e.default)),qf),c9=(e,t,r="strict")=>({fontFamily:e.fontFamilyCode,gantt:{useWidth:1920},securityLevel:r,startOnLoad:!1,theme:t||(e.isDarkMode?"dark":"neutral"),themeVariables:t?void 0:{errorBkgColor:e.colorTextDescription,errorTextColor:e.colorTextDescription,fontFamily:e.fontFamily,lineColor:e.colorTextSecondary,mainBkg:e.colorBgContainer,noteBkgColor:e.colorInfoBg,noteTextColor:e.colorInfoText,pie1:e.geekblue,pie2:e.colorWarning,pie3:e.colorSuccess,pie4:e.colorError,primaryBorderColor:e.colorBorder,primaryColor:e.colorBgContainer,primaryTextColor:e.colorText,secondaryBorderColor:e.colorInfoBorder,secondaryColor:e.colorInfoBg,secondaryTextColor:e.colorInfoText,tertiaryBorderColor:e.colorSuccessBorder,tertiaryColor:e.colorSuccessBg,tertiaryTextColor:e.colorSuccessText,textColor:e.colorText}}),rU=(e,{id:t,theme:r,securityLevel:n})=>{const o=f1(),[i,a]=d.useState(""),s=d.useMemo(()=>c9(o,r,n),[o.fontFamilyCode,o.isDarkMode,o.colorTextDescription,o.fontFamily,o.colorTextSecondary,o.colorBgContainer,o.colorInfoBg,o.colorInfoText,o.geekblue,o.colorWarning,o.colorSuccess,o.colorError,o.colorBorder,o.colorInfoBorder,o.colorSuccessBorder,o.colorSuccessBg,o.colorSuccessText,o.colorText,r,n]),l=d.useMemo(()=>{const c=e.length<1e4?e:_l.hashStr(e);return[t,r||(o.isDarkMode?"d":"l"),c].filter(Boolean).join("-")},[e,t,o.isDarkMode,r]);return d.useEffect(()=>{const c=Ko.get(l);if(c){c.then(f=>{a(f)}).catch(()=>{});return}const u=(async()=>{try{const f=await l9();if(!f)return"";if(await f.parse(e)){f.initialize(s);const{svg:p}=await f.render(t,e);return p}else throw new Error("Mermaid 语法无效")}catch(f){return console.error("Mermaid 解析错误:",f),""}})();Ko.set(l,u),tU(),u.then(f=>{Ko.get(l)===u&&a(f)}).catch(()=>{Ko.get(l)===u&&Ko.delete(l)})},[l,e,t,s]),i},u9=d.memo(({children:e,className:t,fallbackClassName:r,ref:n,style:o,theme:i,variant:a})=>{const s=e??"",l=i==="lobe-theme"||!i,c=d.useMemo(()=>{var g;if(!l)return(g=s9.find(v=>v.id===i))==null?void 0:g.background},[l,i]),u=rU(s,{id:q8(`mermaid-${d.useId()}`),theme:l?void 0:i}),f=!u,[p,m]=d.useState();d.useEffect(()=>()=>{p&&URL.revokeObjectURL(p)},[p]),d.useEffect(()=>{if(f||!u)return;let g=u;if(typeof window<"u"&&typeof navigator<"u"&&navigator.userAgent.includes("Firefox")){const b=new DOMParser().parseFromString(u,"image/svg+xml"),y=b.documentElement;if(y&&y.hasAttribute("viewBox")){const x=y.getAttribute("viewBox").split(" ");Array.isArray(x)&&x.length===4&&(y.setAttribute("width",x[2]),y.setAttribute("height",x[3])),g=new XMLSerializer().serializeToString(b)}}const v=new Blob([g],{type:"image/svg+xml"});m(URL.createObjectURL(v))},[f,u]);const h={background:a==="filled"?c:void 0,margin:0,minWidth:300,padding:a==="borderless"?0:16,position:"relative",width:"100%",...o};return p?N.jsx(ib,{alt:"mermaid",className:t,maxHeight:480,minWidth:300,objectFit:"contain",ref:n,src:p,style:h,variant:"borderless",width:"100%"}):N.jsx("div",{className:r,style:o,children:N.jsx("div",{style:{padding:16},children:"Loading..."})})});u9.displayName="StaticMermaid";const nU=(e,{enabled:t=!0,id:r,theme:n})=>{const o=f1(),[i,a]=d.useState(""),s=d.useRef(""),l=d.useRef(e),c=d.useRef(void 0),u=d.useMemo(()=>c9(o,n),[o.fontFamilyCode,o.isDarkMode,o.colorTextDescription,o.fontFamily,o.colorTextSecondary,o.colorBgContainer,o.colorInfoBg,o.colorInfoText,o.geekblue,o.colorWarning,o.colorSuccess,o.colorError,o.colorBorder,o.colorInfoBorder,o.colorSuccessBorder,o.colorSuccessBg,o.colorSuccessText,o.colorText,n]);return d.useEffect(()=>{l.current=e},[e]),d.useEffect(()=>{if(!t){a(""),s.current="";const m=c.current;m&&clearTimeout(m);return}const f=l.current;if(f===s.current&&i)return;const p=c.current;return p&&clearTimeout(p),c.current=setTimeout(async()=>{const m=l.current;if(m===f)try{const h=await l9();if(!h)return;if(await h.parse(m)){h.initialize(u);const{svg:g}=await h.render(r,m);l.current===m&&(a(g),s.current=m)}}catch(h){m===l.current&&console.error("Mermaid 解析错误:",h)}},300),()=>{const m=c.current;m&&clearTimeout(m)}},[t,e,r,u,i]),i},d9=d.memo(({children:e,className:t,fallbackClassName:r,ref:n,style:o,theme:i,variant:a})=>{const s=e??"",l=i==="lobe-theme"||!i,c=d.useMemo(()=>{var g;if(!l)return(g=s9.find(v=>v.id===i))==null?void 0:g.background},[l,i]),u=nU(s,{enabled:!0,id:q8(`mermaid-${d.useId()}`),theme:l?void 0:i}),f=!u,[p,m]=d.useState();d.useEffect(()=>()=>{p&&URL.revokeObjectURL(p)},[p]),d.useEffect(()=>{if(f||!u){m(void 0);return}let g=u;if(typeof window<"u"&&typeof navigator<"u"&&navigator.userAgent.includes("Firefox")){const b=new DOMParser().parseFromString(u,"image/svg+xml"),y=b.documentElement;if(y&&y.hasAttribute("viewBox")){const x=y.getAttribute("viewBox").split(" ");Array.isArray(x)&&x.length===4&&(y.setAttribute("width",x[2]),y.setAttribute("height",x[3])),g=new XMLSerializer().serializeToString(b)}}const v=new Blob([g],{type:"image/svg+xml"});m(URL.createObjectURL(v))},[f,u]);const h={background:a==="filled"?c:void 0,margin:0,minWidth:300,padding:a==="borderless"?0:16,position:"relative",width:"100%",...o};return p?N.jsx(ib,{alt:"mermaid",className:t,maxHeight:480,minWidth:300,objectFit:"contain",ref:n,src:p,style:h,variant:"borderless",width:"100%"}):N.jsx("div",{className:r,style:o,children:N.jsx("div",{style:{padding:16},children:"Rendering..."})})});d9.displayName="StreamMermaid";const oU=Jl`
|
|
2714
2714
|
0% {
|
|
2715
2715
|
opacity: 0;
|
|
2716
2716
|
}
|
package/dist/web/index.html
CHANGED
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
opacity: 0.65;
|
|
28
28
|
}
|
|
29
29
|
</style>
|
|
30
|
-
<script type="module" crossorigin src="/assets/index-
|
|
30
|
+
<script type="module" crossorigin src="/assets/index-DgM2rYI-.js"></script>
|
|
31
31
|
<link rel="modulepreload" crossorigin href="/assets/react-vendor-BJFXgntS.js">
|
|
32
|
-
<link rel="modulepreload" crossorigin href="/assets/motion-
|
|
33
|
-
<link rel="modulepreload" crossorigin href="/assets/ui-
|
|
34
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
32
|
+
<link rel="modulepreload" crossorigin href="/assets/motion-92iQWeIW.js">
|
|
33
|
+
<link rel="modulepreload" crossorigin href="/assets/ui-06fxEgif.js">
|
|
34
|
+
<link rel="stylesheet" crossorigin href="/assets/index-S_lCknAk.css">
|
|
35
35
|
</head>
|
|
36
36
|
<body>
|
|
37
37
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{r as d,j as e}from"./react-vendor-BJFXgntS.js";import{ad as Ae,ae as Ce,i as me,af as _e,ag as qe,ah as Re,ai as $e,aj as Ee,ak as De,al as xe,am as Me,an as Fe,ao as Te}from"./index-Ct5Vt4tz.js";import{H as ze,S as Pe,A as Be}from"./AgentSkillFormCard-DeZnOTQg.js";import{P as Le}from"./plus-B-uEAM2g.js";import{D as He,E as Ke}from"./ui-TwLH91RV.js";import{C as Oe,a as Ue}from"./copy-UkvgEfIg.js";import"./motion-Bz_inm1R.js";function te(r){var n;return r==null||typeof r=="boolean"?"":typeof r=="string"||typeof r=="number"?String(r):Array.isArray(r)?r.map(te).join(""):typeof r=="object"&&"props"in r?te((n=r.props)==null?void 0:n.children):""}function We(r){const[n,c]=d.useState(!1),o=d.useRef(null),b=te(r.children).replace(/\n$/,"");d.useEffect(()=>()=>{o.current!=null&&window.clearTimeout(o.current)},[]);async function x(){if(b)try{await navigator.clipboard.writeText(b),c(!0),o.current!=null&&window.clearTimeout(o.current),o.current=window.setTimeout(()=>c(!1),1500)}catch{}}return e.jsxs("div",{className:"mdocs-agent-panel-md-pre-wrap",children:[e.jsx("button",{type:"button",className:"mdocs-agent-panel-md-copy",onClick:()=>void x(),"aria-label":n?"已复制":"复制代码",title:n?"已复制":"复制",children:n?e.jsx(Oe,{size:14,"aria-hidden":!0}):e.jsx(Ue,{size:14,"aria-hidden":!0})}),e.jsx("pre",{children:r.children})]})}function pe(r){return e.jsx("div",{className:"mdocs-agent-panel-md",children:e.jsx(He,{remarkPlugins:[Ke],components:{pre:({children:n})=>e.jsx(We,{children:n})},children:r.children})})}const Ge=["如何发布文档?","草稿是什么?","如何创建域?"];function he(r,n){return n.map((c,o)=>{const b=c.skillNames&&c.skillNames.length>0?c.skillNames:c.skillIds&&c.skillIds.length>0?c.skillIds:void 0;return{id:`h-${r}-${o}-${c.role}`,role:c.role,content:c.content,skillNames:b}})}function Xe(r,n){const c=r.slice(),o=c[c.length-1];return(o==null?void 0:o.type)==="text"?c[c.length-1]={type:"text",text:o.text+n}:c.push({type:"text",text:n}),c}function Ye(r,n){const c=r.slice(),o=c[c.length-1];return(o==null?void 0:o.type)==="thinking"?c[c.length-1]={type:"thinking",text:o.text+n}:c.push({type:"thinking",text:n}),c}function fe(r){return r!=null&&r.length?r.filter(n=>n.type==="text").map(n=>n.text).join(""):""}function Je(r){return!!(r!=null&&r.some(n=>n.type==="thinking"&&n.text.length>0))}function Qe(r){const n=new Date(r);if(Number.isNaN(n.getTime()))return"";const c=new Date;return n.getFullYear()===c.getFullYear()&&n.getMonth()===c.getMonth()&&n.getDate()===c.getDate()?n.toLocaleTimeString(void 0,{hour:"2-digit",minute:"2-digit"}):n.toLocaleDateString(void 0,{month:"2-digit",day:"2-digit"})}function ge(r){if(r>=1e3){const n=r/1e3;return`${n>=10?Math.round(n):Math.round(n*10)/10}K`}return String(r)}function Ve(r){const{block:n,onResolved:c}=r,[o,b]=d.useState(""),[x,R]=d.useState(!1),[$,C]=d.useState(1),E=d.useRef(!1),z=d.useRef(c);z.current=c;const I=n.status==="open",_=d.useRef(0);d.useEffect(()=>{if(!I)return;E.current=!1;const k=new Date(n.expiresAt).getTime(),q=Date.now(),w=Math.max(k-q,1);_.current=w,C(1);const g=()=>{const F=k-Date.now(),K=Math.max(0,Math.min(1,F/w));C(K),F<=0&&!E.current&&(E.current=!0,Fe(n.requestId).catch(()=>{}).finally(()=>{z.current(n.requestId,"","expired")}))};g();const P=window.setInterval(g,100);return()=>window.clearInterval(P)},[I,n.expiresAt,n.requestId]);async function S(k){const q=k.trim();if(!(!q||x||!I)){R(!0);try{await Te(n.requestId,q),c(n.requestId,q,"selected")}catch{c(n.requestId,q,"failed")}finally{R(!1)}}}async function u(){if(!(x||!I)){R(!0),E.current=!0;try{await xe(n.requestId),c(n.requestId,"","cancelled")}catch{c(n.requestId,"","failed")}finally{R(!1)}}}const H=Math.max(0,Math.ceil($*_.current/1e3));return e.jsxs("div",{className:"mdocs-agent-choice-card"+(I?"":" mdocs-agent-choice-card-done"),children:[e.jsxs("div",{className:"mdocs-agent-choice-head",children:[e.jsx("p",{className:"mdocs-agent-choice-title",children:n.title}),I?e.jsxs("span",{className:"mdocs-agent-choice-timer","aria-live":"polite",children:[H,"s"]}):null]}),I?e.jsx("div",{className:"mdocs-agent-choice-progress",role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round($*100),children:e.jsx("div",{className:"mdocs-agent-choice-progress-bar",style:{transform:`scaleX(${$})`}})}):null,n.status==="selected"&&n.selected?e.jsxs("p",{className:"mdocs-agent-choice-result",children:["已选择:",n.selected]}):null,n.status==="cancelled"?e.jsx("p",{className:"mdocs-agent-choice-result muted",children:"已取消"}):null,n.status==="expired"?e.jsx("p",{className:"mdocs-agent-choice-result muted",children:"已超时,选择已失效"}):null,n.status==="failed"?e.jsx("p",{className:"mdocs-agent-choice-result muted",children:"提交失败或已失效"}):null,I?e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"mdocs-agent-choice-options",children:n.options.map(k=>e.jsx("button",{type:"button",className:"mdocs-agent-choice-option",disabled:x,onClick:()=>void S(k),children:k},k))}),e.jsxs("div",{className:"mdocs-agent-choice-custom",children:[e.jsx("input",{value:o,disabled:x,placeholder:"或输入自己的内容…",onChange:k=>b(k.target.value),onKeyDown:k=>{k.key==="Enter"&&(k.preventDefault(),S(o))}}),e.jsx("button",{type:"button",disabled:x||!o.trim(),onClick:()=>void S(o),children:"提交"})]}),e.jsx("div",{className:"mdocs-agent-choice-footer",children:e.jsx("button",{type:"button",className:"mdocs-agent-choice-cancel",disabled:x,onClick:()=>void u(),children:"取消"})})]}):null]})}function Ze(r){const b=2*Math.PI*8.75,x=Math.min(100,Math.max(0,r.percent)),R=b*(1-x/100),$=x>=90?"danger":x>=70?"warn":"ok",C=`上下文 ${x}% · 已用 ${ge(r.used)} / ${ge(r.limit)} tokens`;return e.jsx("span",{className:"mdocs-agent-panel-context mdocs-agent-panel-context-"+$,"data-tooltip":C,"aria-label":C,role:"img",tabIndex:0,children:e.jsxs("svg",{width:20,height:20,viewBox:"0 0 20 20","aria-hidden":!0,children:[e.jsx("circle",{className:"mdocs-agent-panel-context-track",cx:20/2,cy:20/2,r:8.75,fill:"none",strokeWidth:2.5}),e.jsx("circle",{className:"mdocs-agent-panel-context-value",cx:20/2,cy:20/2,r:8.75,fill:"none",strokeWidth:2.5,strokeLinecap:"round",strokeDasharray:b,strokeDashoffset:R,transform:`rotate(-90 ${20/2} ${20/2})`})]})})}function es(r){var n;for(const c of r)if(!(c.role!=="assistant"||!((n=c.blocks)!=null&&n.length))){for(const o of c.blocks)if((o.type==="choice_card"||o.type==="skill_form_card")&&o.status==="open")return!0}return!1}const cs=d.forwardRef(function(n,c){const{open:o,onClose:b,visitorName:x,anchorStyle:R,onOpenDocument:$,onTreeChanged:C,onDocumentOverwritten:E,onOpenCoding:z}=n,I=((x==null?void 0:x.trim().charAt(0))||"我").toUpperCase(),[_,S]=d.useState(!1),[u,H]=d.useState(null),[k,q]=d.useState(null),[w,g]=d.useState([]),[P,F]=d.useState(null),[K,ye]=d.useState([]),[je,ne]=d.useState(!1),[O,U]=d.useState(""),[B,ae]=d.useState([]),[y,W]=d.useState(!1),[ie,D]=d.useState(null),[G,re]=d.useState(null),[X,T]=d.useState(!1),[M,le]=d.useState(!1),ke=d.useRef(null),Y=d.useRef(null),v=d.useRef(null),ce=d.useRef(0),L=d.useRef(!0),J=d.useRef(w);J.current=w;function oe(s){return ce.current+=1,`${s}-${ce.current}`}function Ne(s,m=48){return s.scrollHeight-s.scrollTop-s.clientHeight<=m}function A(){const s=Y.current;!s||!L.current||(s.scrollTop=s.scrollHeight)}function be(){const s=Y.current;s&&(L.current=Ne(s))}async function Se(){ne(!0);try{const s=await Re();ye(s.sessions),P||F(s.lastOpenedSessionId)}catch{}finally{ne(!1)}}async function Q(){try{const s=await qe();re(s)}catch{}}d.useEffect(()=>{var m;if(!o){S(!1),(m=v.current)==null||m.abort(),v.current=null,W(!1);return}let s=!1;return(async()=>{try{const a=await Ae();s||(H(a),q(null))}catch(a){s||(H(null),q(a instanceof Error?a.message:String(a)))}})(),Q(),()=>{s=!0}},[o]),d.useEffect(()=>{if(!o)return;let s=!1;return(async()=>{try{const m=await Ce();if(s)return;F(m.sessionId),g(a=>a.length>0?a:he(m.sessionId,m.messages))}catch{}})(),()=>{s=!0}},[o]),d.useEffect(()=>{!o||!_||Se()},[o,_]);function V(){if(!M){if(es(J.current)){T(!0);return}T(!1),b()}}async function we(){var a;if(M)return;le(!0);const s=J.current,m=[];for(const j of s)if(!(j.role!=="assistant"||!j.blocks))for(const p of j.blocks)p.type==="choice_card"&&p.status==="open"&&m.push(xe(p.requestId).catch(()=>{})),p.type==="skill_form_card"&&p.status==="open"&&m.push(Me(p.requestId).catch(()=>{}));await Promise.all(m),(a=v.current)==null||a.abort(),g(j=>j.map(p=>p.role!=="assistant"||!p.blocks?p:{...p,blocks:p.blocks.map(h=>h.type==="choice_card"&&h.status==="open"?{...h,status:"cancelled"}:h.type==="skill_form_card"&&h.status==="open"?{...h,status:"cancelled"}:h)})),T(!1),le(!1),b()}const Z=d.useRef(V);Z.current=V,d.useImperativeHandle(c,()=>({requestClose:()=>Z.current()}),[]),d.useEffect(()=>{if(!o){T(!1);return}const s=m=>{if(m.key==="Escape"){if(X){M||T(!1);return}if(_){S(!1);return}Z.current()}};return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[o,_,X,M]);async function ee(s){var h;const m=s.trim();if(!m||y)return;if(!(u!=null&&u.enabled)){D((u==null?void 0:u.reason)==="missing_api_key"?"请先在设置 → AI 配置 DeepSeek API Key":(u==null?void 0:u.reason)==="skills_missing"?"手册 skills 未就绪,请确认已构建 agent-skills":"助手暂不可用");return}(h=v.current)==null||h.abort();const a=new AbortController;v.current=a;const j={id:oe("u"),role:"user",content:m,skillNames:B.length>0?[...B]:void 0},p=oe("a");L.current=!0,g(N=>[...N,j,{id:p,role:"assistant",content:""}]),U(""),W(!0),D(null),S(!1),requestAnimationFrame(()=>A());try{let N=!1;await De(m,{skillNames:B.length>0?B:void 0,signal:a.signal,onEvent:i=>{i.type==="text_delta"?(g(f=>f.map(t=>{if(t.id!==p)return t;const l=Xe(t.blocks??[],i.text);return{...t,blocks:l,content:fe(l)}})),requestAnimationFrame(()=>A())):i.type==="thinking_delta"?(g(f=>f.map(t=>{if(t.id!==p)return t;const l=Ye(t.blocks??[],i.text);return{...t,blocks:l}})),requestAnimationFrame(()=>A())):i.type==="sources"?(g(f=>f.map(t=>{if(t.id!==p)return t;const l=(t.blocks??[]).slice(),se=l[l.length-1];return(se==null?void 0:se.type)==="sources"?l[l.length-1]={type:"sources",items:i.items}:l.push({type:"sources",items:i.items}),{...t,blocks:l}})),requestAnimationFrame(()=>A())):i.type==="document_table"?(g(f=>f.map(t=>{if(t.id!==p)return t;const l=[...t.blocks??[],{type:"document_table",title:i.title,rows:i.rows}];return{...t,blocks:l}})),requestAnimationFrame(()=>A())):i.type==="document_card"?(g(f=>f.map(t=>{if(t.id!==p)return t;const l=[...t.blocks??[],{type:"document_card",documentId:i.documentId,title:i.title,path:i.path,preview:i.preview}];return{...t,blocks:l}})),requestAnimationFrame(()=>A())):i.type==="tool_notice"?(g(f=>f.map(t=>{if(t.id!==p)return t;const l=[...t.blocks??[],{type:"tool_notice",toolName:i.toolName,text:i.text}];return{...t,blocks:l}})),requestAnimationFrame(()=>A())):i.type==="choice_card"?(g(f=>f.map(t=>{if(t.id!==p)return t;const l=[...t.blocks??[],{type:"choice_card",requestId:i.requestId,title:i.title,options:i.options,expiresAt:i.expiresAt,status:"open"}];return{...t,blocks:l}})),requestAnimationFrame(()=>A())):i.type==="choice_expired"?g(f=>f.map(t=>t.id!==p||!t.blocks?t:{...t,blocks:t.blocks.map(l=>l.type==="choice_card"&&l.requestId===i.requestId&&l.status==="open"?{...l,status:"expired"}:l)})):i.type==="skill_form_card"?(g(f=>f.map(t=>{if(t.id!==p)return t;const l=[...t.blocks??[],{type:"skill_form_card",requestId:i.requestId,mode:i.mode,title:i.title,currentName:i.currentName,initialName:i.initialName,initialDescription:i.initialDescription,initialBody:i.initialBody,expiresAt:i.expiresAt,status:"open"}];return{...t,blocks:l}})),requestAnimationFrame(()=>A())):i.type==="skill_form_expired"?g(f=>f.map(t=>t.id!==p||!t.blocks?t:{...t,blocks:t.blocks.map(l=>l.type==="skill_form_card"&&l.requestId===i.requestId&&l.status==="open"?{...l,status:"expired"}:l)})):i.type==="tree_changed"?C==null||C():i.type==="document_overwritten"?E==null||E({documentId:i.documentId,headCommitId:i.headCommitId}):i.type==="open_coding"?z==null||z({documentId:i.documentId,displayName:i.displayName}):i.type==="context_usage"?re({percent:i.percent,used:i.used,limit:i.limit}):i.type==="error"&&(N=!0,D(i.message))}}),!a.signal.aborted&&!N&&ae([])}catch(N){if(a.signal.aborted)return;D(N instanceof Error?N.message:String(N))}finally{v.current===a&&(v.current=null),W(!1)}}async function Ie(){var s;if(!y){(s=v.current)==null||s.abort(),D(null),S(!1),W(!1);try{const m=await $e();F(m.sessionId),g([]),U(""),L.current=!0,Q()}catch(m){D(m instanceof Error?m.message:String(m))}}}async function ve(s){var m;if(!y){if(s===P){S(!1);return}(m=v.current)==null||m.abort(),D(null);try{const a=await Ee(s);F(a.sessionId),g(he(a.sessionId,a.messages)),U(""),S(!1),L.current=!0,requestAnimationFrame(()=>A()),Q()}catch(a){D(a instanceof Error?a.message:String(a))}}}function de(s){!s||!$||$(s)}if(!o)return null;const ue=k??(u&&!u.enabled?u.reason==="missing_api_key"?"未配置 API Key:请打开设置 → AI":u.reason==="skills_missing"?"skills 未就绪":"助手暂不可用":null);return e.jsxs("div",{ref:ke,className:"mdocs-agent-panel",role:"dialog","aria-label":"mdocs 智能助手",style:R,children:[e.jsxs("header",{className:"mdocs-agent-panel-header",children:[e.jsxs("div",{className:"mdocs-agent-panel-title",children:[e.jsx("img",{src:me,alt:"",className:"mdocs-agent-panel-title-logo"}),e.jsx("span",{children:"mdocs 智能助手"})]}),e.jsxs("div",{className:"mdocs-agent-panel-actions",children:[e.jsx("button",{type:"button",className:"mdocs-agent-panel-icon-btn",title:"新会话","aria-label":"新会话",disabled:y,onClick:()=>void Ie(),children:e.jsx(Le,{size:16,strokeWidth:1.8})}),e.jsx("button",{type:"button",className:"mdocs-agent-panel-icon-btn"+(_?" active":""),title:"历史会话","aria-label":"历史会话",onClick:()=>S(s=>!s),children:e.jsx(ze,{size:16,strokeWidth:1.8})}),e.jsx("button",{type:"button",className:"mdocs-agent-panel-icon-btn",title:"关闭","aria-label":"关闭",onClick:V,children:e.jsx(_e,{size:16,strokeWidth:1.8})})]})]}),_?e.jsxs("div",{className:"mdocs-agent-panel-history",children:[e.jsxs("div",{className:"mdocs-agent-panel-history-head",children:[e.jsx("span",{children:"历史会话"}),e.jsx("button",{type:"button",className:"mdocs-agent-panel-history-back",onClick:()=>S(!1),children:"返回对话"})]}),je?e.jsx("p",{className:"mdocs-agent-panel-history-hint",children:"加载中…"}):K.length===0?e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"mdocs-agent-panel-history-empty",children:"暂无历史会话"}),e.jsx("p",{className:"mdocs-agent-panel-history-hint",children:"发一条消息后会出现在这里"})]}):e.jsx("ul",{className:"mdocs-agent-panel-history-list",children:K.map(s=>e.jsx("li",{children:e.jsxs("button",{type:"button",className:"mdocs-agent-panel-history-item"+(s.id===P?" active":""),disabled:y,onClick:()=>void ve(s.id),children:[e.jsx("span",{className:"mdocs-agent-panel-history-title",children:s.title}),e.jsx("span",{className:"mdocs-agent-panel-history-time",children:Qe(s.updatedAt)})]})},s.id))})]}):e.jsxs("div",{className:"mdocs-agent-panel-body",children:[e.jsx("div",{className:"mdocs-agent-panel-welcome",ref:Y,onScroll:be,children:w.length===0?e.jsxs(e.Fragment,{children:[e.jsx("p",{className:"mdocs-agent-panel-hello",children:"你好,我是 mdocs 智能助手"}),e.jsx("p",{className:"mdocs-agent-panel-desc",children:"我能答疑、搜文档、整理结构,也能帮你写全文;需要精细改稿请点文档顶栏「帮写」。"}),ue?e.jsx("p",{className:"mdocs-agent-panel-status-warn",children:ue}):e.jsx("div",{className:"mdocs-agent-panel-chips",children:Ge.map(s=>e.jsx("button",{type:"button",className:"mdocs-agent-panel-chip",onClick:()=>void ee(s),disabled:y||!(u!=null&&u.enabled),children:s},s))})]}):e.jsx("div",{className:"mdocs-agent-panel-messages",children:w.map(s=>{var m;return e.jsxs("div",{className:"mdocs-agent-panel-msg"+(s.role==="user"?" mdocs-agent-panel-msg-user":" mdocs-agent-panel-msg-assistant"),children:[s.role==="assistant"?e.jsx("div",{className:"mdocs-agent-panel-avatar mdocs-agent-panel-avatar-ai","aria-hidden":!0,children:e.jsx("img",{src:me,alt:""})}):null,e.jsxs("div",{className:"mdocs-agent-panel-msg-bubble",children:[s.role==="user"&&s.skillNames&&s.skillNames.length>0?e.jsxs("div",{className:"mdocs-agent-msg-skills",children:["Skill ×",s.skillNames.length]}):null,s.role==="assistant"?s.blocks&&s.blocks.length>0?e.jsxs("div",{className:"mdocs-agent-panel-timeline",children:[s.blocks.map((a,j)=>{var p;return a.type==="thinking"?a.text?e.jsxs("details",{className:"mdocs-agent-panel-think-fold",open:y&&s.id===((p=w[w.length-1])==null?void 0:p.id),children:[e.jsx("summary",{children:"思考中"}),e.jsx("pre",{className:"mdocs-agent-panel-think-body",children:a.text})]},`${s.id}-th-${j}`):null:a.type==="text"?a.text?e.jsx("div",{className:"mdocs-agent-panel-block",children:e.jsx(pe,{children:a.text})},`${s.id}-t-${j}`):null:a.type==="sources"?a.items.length===0?null:e.jsx("div",{className:"mdocs-agent-panel-block",children:e.jsxs("details",{className:"mdocs-agent-panel-tool-fold",children:[e.jsxs("summary",{children:["已阅读 ",a.items.length," 个页面"]}),e.jsx("ol",{className:"mdocs-agent-panel-sources-list",children:a.items.map(h=>e.jsx("li",{children:e.jsx("a",{href:h.url,target:"_blank",rel:"noreferrer",children:h.name})},h.id))})]})},`${s.id}-s-${j}`):a.type==="tool_notice"?e.jsx("div",{className:"mdocs-agent-panel-block",children:e.jsx("p",{className:"mdocs-agent-panel-tool-notice",children:a.text})},`${s.id}-n-${j}`):a.type==="choice_card"?e.jsx("div",{className:"mdocs-agent-panel-block",children:e.jsx(Ve,{block:a,onResolved:(h,N,i)=>{g(f=>f.map(t=>t.id!==s.id||!t.blocks?t:{...t,blocks:t.blocks.map(l=>l.type==="choice_card"&&l.requestId===h?{...l,status:i,selected:i==="selected"?N:l.selected}:l)}))}})},`${s.id}-ch-${j}`):a.type==="skill_form_card"?e.jsx("div",{className:"mdocs-agent-panel-block",children:e.jsx(Pe,{block:a,onResolved:(h,N,i)=>{g(f=>f.map(t=>t.id!==s.id||!t.blocks?t:{...t,blocks:t.blocks.map(l=>l.type==="skill_form_card"&&l.requestId===h?{...l,status:N,submittedName:N==="submitted"?i:l.submittedName}:l)}))}})},`${s.id}-sf-${j}`):a.type==="document_card"?e.jsx("div",{className:"mdocs-agent-panel-block",children:e.jsxs("details",{className:"mdocs-agent-panel-tool-fold",children:[e.jsxs("summary",{children:[e.jsxs("button",{type:"button",className:"mdocs-agent-panel-doc-link",onClick:h=>{h.preventDefault(),h.stopPropagation(),de(a.documentId)},children:["《",a.title,"》"]}),e.jsx("span",{className:"mdocs-agent-panel-tool-fold-hint",children:"文档预览"})]}),e.jsxs("div",{className:"mdocs-agent-panel-doc-card-body",children:[a.path?e.jsx("p",{className:"mdocs-agent-panel-doc-card-path",children:a.path}):null,a.preview?e.jsx("p",{className:"mdocs-agent-panel-doc-card-preview",children:a.preview}):e.jsx("p",{className:"mdocs-agent-panel-doc-card-preview muted",children:"(无正文预览)"})]})]})},`${s.id}-c-${j}`):e.jsx("div",{className:"mdocs-agent-panel-block",children:e.jsxs("details",{className:"mdocs-agent-panel-tool-fold",children:[e.jsxs("summary",{children:[a.title,e.jsx("span",{className:"mdocs-agent-panel-tool-fold-hint",children:a.rows.length===0?"无结果":`${a.rows.length} 条`})]}),e.jsx("div",{className:"mdocs-agent-panel-doc-table-wrap",children:a.rows.length===0?e.jsx("p",{className:"mdocs-agent-panel-doc-table-empty",children:"无结果"}):e.jsxs("table",{className:"mdocs-agent-panel-doc-table",children:[e.jsx("thead",{children:e.jsxs("tr",{children:[e.jsx("th",{children:"文章名字"}),e.jsx("th",{children:"文章内容"})]})}),e.jsx("tbody",{children:a.rows.map(h=>e.jsxs("tr",{children:[e.jsx("td",{children:e.jsx("button",{type:"button",className:"mdocs-agent-panel-doc-link",onClick:()=>de(h.documentId),children:h.title})}),e.jsx("td",{children:h.summary||"-"})]},h.documentId))})]})})]})},`${s.id}-d-${j}`)}),y&&s.id===((m=w[w.length-1])==null?void 0:m.id)&&!fe(s.blocks)&&!Je(s.blocks)?e.jsxs("span",{className:"mdocs-agent-panel-thinking","aria-label":"思考中",children:[e.jsx("span",{}),e.jsx("span",{}),e.jsx("span",{})]}):null]}):s.content?e.jsx(pe,{children:s.content}):y?e.jsxs("span",{className:"mdocs-agent-panel-thinking","aria-label":"思考中",children:[e.jsx("span",{}),e.jsx("span",{}),e.jsx("span",{})]}):null:s.content]}),s.role==="user"?e.jsx("div",{className:"mdocs-agent-panel-avatar mdocs-agent-panel-avatar-user","aria-hidden":!0,children:I}):null]},s.id)})})}),ie?e.jsx("p",{className:"mdocs-agent-panel-status-warn",children:ie}):null,e.jsx(Be,{selectedNames:B,onChange:ae,disabled:y||!(u!=null&&u.enabled)}),e.jsxs("div",{className:"mdocs-agent-panel-input-wrap",children:[e.jsx("textarea",{className:"mdocs-agent-panel-input",rows:2,placeholder:u!=null&&u.enabled?"把你的问题告诉我…":"请先配置 API Key",value:O,disabled:y||!(u!=null&&u.enabled),onChange:s=>U(s.target.value),onKeyDown:s=>{s.key==="Enter"&&!s.shiftKey&&(s.preventDefault(),ee(O))}}),G?e.jsx(Ze,{percent:G.percent,used:G.used,limit:G.limit}):null,e.jsx("button",{type:"button",className:y?"mdocs-agent-panel-send mdocs-agent-panel-send-stop":"mdocs-agent-panel-send",disabled:y?!1:!(u!=null&&u.enabled)||!O.trim(),onClick:()=>{var s;if(y){(s=v.current)==null||s.abort();return}ee(O)},title:y?"停止":"发送","aria-label":y?"停止":"发送",children:y?"■":"↑"})]}),e.jsx("p",{className:"mdocs-agent-panel-footnote",children:"内容由 AI 生成,仅供参考"})]}),X?e.jsx("div",{className:"mdocs-agent-close-confirm-backdrop",role:"presentation",onClick:()=>{M||T(!1)},children:e.jsxs("div",{className:"mdocs-message-dialog mdocs-agent-close-confirm",role:"dialog","aria-modal":"true","aria-labelledby":"mdocs-agent-close-confirm-title",onClick:s=>s.stopPropagation(),children:[e.jsx("h3",{id:"mdocs-agent-close-confirm-title",className:"mdocs-message-dialog-title",children:"有待处理的倒计时"}),e.jsx("p",{className:"mdocs-message-dialog-body",children:"当前还有选择卡或 Skill 表单在倒计时。强制关闭会取消这些操作并退出助手;也可以继续等待完成后再关。"}),e.jsxs("div",{className:"mdocs-message-dialog-actions mdocs-agent-close-confirm-actions",children:[e.jsx("button",{type:"button",className:"secondary",disabled:M,onClick:()=>T(!1),children:"继续等待"}),e.jsx("button",{type:"button",disabled:M,onClick:()=>void we(),children:M?"关闭中…":"强制关闭并退出"})]})]})}):null]})});export{cs as AgentChatPanel};
|