@kingsoftcloud/agentkit-personal-assistant 0.1.12 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.js +5 -5
- package/package.json +1 -1
- package/src/client/markdown.mjs +68 -1
package/dist/client.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
(()=>{var rt=Object.freeze({width:1280,height:800});var kt=100;function ot(t={}){let d=Number(t.width)||rt.width,c=Number(t.height)||rt.height;return!Number.isFinite(d)||!Number.isFinite(c)||d<=0||c<=0?rt:Object.freeze({width:Math.round(d),height:Math.round(c)})}function Tt({clientX:t,clientY:d,rect:c,display:r=rt}){let u=ot(r),n=Number(c?.width)||u.width,s=Number(c?.height)||u.height,o=Number(c?.left)||0,b=Number(c?.top)||0,g=Math.min(n/u.width,s/u.height),h=o+(n-u.width*g)/2,x=b+(s-u.height*g)/2,k=Math.max(0,Math.min(u.width-1,Math.round((Number(t)-h)/g))),_=Math.max(0,Math.min(u.height-1,Math.round((Number(d)-x)/g)));return{x:k,y:_}}function Rt({availableWidth:t,availableHeight:d,display:c=rt,maxWidth:r=Number.POSITIVE_INFINITY}={}){let u=ot(c),n=Number(t)>0?Number(t):0,s=Number(d)>0?Number(d):0,o=Number(r)>0?Number(r):Number.POSITIVE_INFINITY;if(!n||!s)return{width:0,height:0};let b=Math.min(n,o,s*(u.width/u.height)),g=h=>Math.round(h*100)/100;return{width:g(b),height:g(b*(u.height/u.width))}}function _t(t={x:0,y:0},{deltaX:d=0,deltaY:c=0}={},r=kt){let u=Number(r)>0?Number(r):kt,n=(Number(t?.x)||0)+(Number(d)||0),s=(Number(t?.y)||0)+(Number(c)||0),o=Math.trunc(n/u),b=Math.trunc(s/u);return{pending:Object.freeze({x:n-o*u,y:s-b*u}),clicks:Object.freeze({deltaX:o,deltaY:b})}}function Ct({send:t,changed:d=()=>{},failed:c=()=>{},setTimer:r=setTimeout,clearTimer:u=clearTimeout}={}){let n=!1,s=0,o="observe",b=!1,g=[],h="",x,k=()=>d({phase:o,readOnly:o!=="controlling",controlEpoch:s,available:n}),_=()=>{u(x),x=void 0;let w=h;h="",w&&o==="controlling"&&t({type:"input",controlEpoch:s,event:{type:"text",text:w}})},A=w=>{w.type==="text"?(h.length+w.text.length>16384&&_(),h+=w.text,x||(x=r(_,30))):(_(),t({type:"input",controlEpoch:s,event:w}))},J=()=>{o="acquiring",k(),t({type:"control.acquire",controlEpoch:s})},X=w=>{if(w.type==="pointermove"&&g.at(-1)?.type==="pointermove")g[g.length-1]=w;else if(g.length<32)g.push(w);else return P.release(),c("\u63A5\u7BA1\u671F\u95F4\u8F93\u5165\u8FC7\u5FEB\uFF0C\u8BF7\u91CD\u65B0\u70B9\u51FB\u4E91\u7535\u8111"),!1;return!0},P={get snapshot(){return{phase:o,readOnly:o!=="controlling",controlEpoch:s,available:n}},reset(w={}){u(x),x=void 0,h="",g=[],n=w.controlAvailable===!0,s=Number.isSafeInteger(w.controlEpoch)?w.controlEpoch:0,o=w.readOnly===!1?"controlling":"observe",b=o==="controlling",k()},input(w){return o==="controlling"?(A(w),!0):(!b||o==="observe")&&(w.type==="pointermove"||["button","key"].includes(w.type)&&w.action==="up")||w.type==="pointermove"&&o==="observe"?!1:n?(b=!0,X(w)?(o==="observe"&&J(),!0):!1):(w.type!=="pointermove"&&c("\u5F53\u524D\u4E3A\u53EA\u8BFB\u65C1\u89C2\uFF0C\u9F20\u6807\u548C\u952E\u76D8\u4E0D\u4F1A\u53D1\u9001\u5230\u4E91\u7535\u8111"),!1)},acquire(){return n?(b=!0,o==="observe"&&J(),!0):!1},release(){b=!1,g=[],o==="controlling"&&(_(),o="releasing",k(),t({type:"control.release",controlEpoch:s}))},accept(w){if(!Number.isSafeInteger(w.controlEpoch)||w.controlEpoch<s)return;if(w.controlEpoch!==s&&(u(x),x=void 0,h=""),s=w.controlEpoch,n=w.controlAvailable===!0,w.readOnly){o!=="releasing"&&(b=!1,g=[]),o="observe",k(),b&&n&&J();return}if(!b){g=[],o="releasing",k(),t({type:"control.release",controlEpoch:s});return}o="controlling",k();let ve=g;g=[];for(let O of ve)A(O)},reject(w){Number.isSafeInteger(w.controlEpoch)&&w.controlEpoch<s||(b=!1,g=[],u(x),x=void 0,h="",Number.isSafeInteger(w.controlEpoch)&&w.controlEpoch>=s&&(s=w.controlEpoch),o=w.readOnly===!1?"controlling":"observe",k(),c(w.message||"\u63A7\u5236\u6743\u6682\u4E0D\u53EF\u7528\uFF0C\u4ECD\u53EF\u7EE7\u7EED\u65C1\u89C2"))},dispose(){P.release(),u(x),x=void 0,h="",g=[]}};return P}var xe=(t,d,c)=>Object.assign(new Error(d),{code:t,cause:c}),pn=t=>{try{return new TextEncoder().encode(t).length}catch{return t.length}},st=t=>typeof t=="string"?t:String(t?.text??"");async function pt({clipboard:t}={}){let d=t||globalThis.navigator?.clipboard;if(!d||typeof d.readText!="function")throw xe("CLIPBOARD_UNAVAILABLE","\u5F53\u524D\u73AF\u5883\u4E0D\u5141\u8BB8\u8BFB\u53D6\u526A\u8D34\u677F\uFF0C\u8BF7\u70B9\u300C\u7C98\u8D34\u300D\u6309\u94AE\u518D\u8BD5");try{let c=await d.readText();return typeof c=="string"?c:""}catch(c){throw xe("CLIPBOARD_READ_DENIED","\u6D4F\u89C8\u5668\u4E0D\u5141\u8BB8\u8BFB\u53D6\u526A\u8D34\u677F\uFF0C\u8BF7\u6309 \u2318V / Ctrl+V \u518D\u8BD5",c)}}async function ft(t,{clipboard:d}={}){let c=d||globalThis.navigator?.clipboard;if(!c||typeof c.writeText!="function")throw xe("CLIPBOARD_UNAVAILABLE","\u5F53\u524D\u73AF\u5883\u4E0D\u5141\u8BB8\u5199\u5165\u526A\u8D34\u677F\uFF0C\u8BF7\u624B\u52A8\u590D\u5236");try{await c.writeText(String(t??""))}catch(r){throw xe("CLIPBOARD_WRITE_DENIED","\u6D4F\u89C8\u5668\u4E0D\u5141\u8BB8\u5199\u5165\u526A\u8D34\u677F\uFF0C\u8BF7\u91CD\u8BD5",r)}}function fn(){return Object.freeze([Object.freeze({type:"key",action:"down",key:"Control_L"}),Object.freeze({type:"key",action:"down",key:"v"}),Object.freeze({type:"key",action:"up",key:"v"}),Object.freeze({type:"key",action:"up",key:"Control_L"})])}function Ot(){return Object.freeze([Object.freeze({type:"key",action:"down",key:"Control_L"}),Object.freeze({type:"key",action:"down",key:"c"}),Object.freeze({type:"key",action:"up",key:"c"}),Object.freeze({type:"key",action:"up",key:"Control_L"})])}async function Dt({readCloud:t,beforeText:d="",timeoutMs:c=1200,settleMs:r=180,pollMs:u=50,sleep:n=o=>new Promise(b=>setTimeout(b,o)),now:s=Date.now}={}){if(typeof t!="function")throw xe("CLIPBOARD_READ_FAILED","\u8BFB\u53D6\u4E91\u7535\u8111\u526A\u8D34\u677F\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5");let o=Number.isFinite(c)&&c>=0?c:1200,b=Number.isFinite(r)&&r>=0?r:180,g=Number.isFinite(u)&&u>0?u:50,h=typeof s=="function"?s:Date.now,x=Number(h()),k="";for(;Number(h())-x<=o;){let _=await t();k=st(_);let A=Number(h())-x;if(k&&(k!==String(d??"")||A>=b))return{text:k,changed:k!==String(d??"")};if(A>=o)break;await n(Math.min(g,o-A))}return{text:k,changed:k!==String(d??"")}}function Ze(t){let d=String(t?.code||"");return d==="COMPUTER_USER_CONTROLLED"?"\u5F53\u524D\u6709\u4EBA\u6B63\u5728\u64CD\u4F5C\u4E91\u7535\u8111\uFF0C\u8BF7\u7B49\u5BF9\u65B9\u4EA4\u8FD8\u540E\u518D\u590D\u5236\u6216\u7C98\u8D34":d==="COMPUTER_LEASE_CONFLICT"?"\u4E91\u7535\u8111\u6B63\u5728\u88AB\u5176\u4ED6\u4EFB\u52A1\u4F7F\u7528\uFF0C\u8BF7\u7A0D\u540E\u518D\u590D\u5236\u6216\u7C98\u8D34":["COMPUTER_LEASE_REQUIRED","DESKTOP_CONTROL_GRANT_REQUIRED","DESKTOP_READ_ONLY","DESKTOP_CONTROL_EPOCH_CHANGED"].includes(d)?"\u9700\u8981\u5148\u70B9\u753B\u9762\u63A5\u7BA1\u4E91\u7535\u8111\uFF0C\u624D\u80FD\u8BFB\u5199\u4E91\u7AEF\u526A\u8D34\u677F":["DESKTOP_SESSION_IDLE","DESKTOP_SESSION_NOT_FOUND","CLIPBOARD_CLOSED"].includes(d)?"\u4E91\u7535\u8111\u5DF2\u7A7A\u95F2\u6216\u65AD\u5F00\uFF0C\u8BF7\u5148\u6062\u590D\u753B\u9762\u518D\u8BD5":d==="CLIPBOARD_UPGRADE_REQUIRED"?"\u5F53\u524D\u4E91\u7AEF\u7248\u672C\u5C1A\u4E0D\u652F\u6301\u526A\u8D34\u677F\uFF0C\u8BF7\u66F4\u65B0\u4E91\u7AEF\u52A9\u7406\u540E\u91CD\u8BD5":d==="CLIPBOARD_CONTROL_REQUIRED"?"\u9700\u8981\u5148\u63A5\u7BA1\u4E91\u7535\u8111\uFF0C\u624D\u80FD\u8BFB\u5199\u4E91\u7AEF\u526A\u8D34\u677F":d==="CLIPBOARD_RESPONSE_INVALID"?"\u4E91\u7AEF\u6CA1\u6709\u786E\u8BA4\u526A\u8D34\u677F\u64CD\u4F5C\u6210\u529F\uFF0C\u8BF7\u91CD\u8BD5":d==="CLIPBOARD_TIMEOUT"?"\u4E91\u7AEF\u526A\u8D34\u677F\u54CD\u5E94\u8D85\u65F6\uFF0C\u8BF7\u68C0\u67E5\u8FDE\u63A5\u540E\u91CD\u8BD5":d==="CLIPBOARD_UNAVAILABLE"?"\u4E91\u7535\u8111\u5C1A\u672A\u8FDE\u63A5\uFF0C\u8BF7\u6062\u590D\u753B\u9762\u540E\u91CD\u8BD5":d==="CLIPBOARD_TEXT_TOO_LARGE"?"\u526A\u8D34\u677F\u5185\u5BB9\u8D85\u8FC7 64 KiB\uFF0C\u4E91\u7535\u8111\u526A\u8D34\u677F\u653E\u4E0D\u4E0B":["DESKTOP_UNAVAILABLE","DESKTOP_FRAME_FAILED","DESKTOP_SESSION_FAILED"].includes(d)?"\u4E91\u7535\u8111\u6682\u65F6\u4E0D\u53EF\u7528\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5":["CLIPBOARD_FAILED","CLOUD_SESSION_FAILED"].includes(d)?"\u526A\u8D34\u677F\u64CD\u4F5C\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5":d==="CLIPBOARD_TEXT_INVALID"?"\u526A\u8D34\u677F\u5185\u5BB9\u683C\u5F0F\u4E0D\u88AB\u4E91\u7AEF\u63A5\u53D7\uFF0C\u8BF7\u91CD\u8BD5":t?.message?String(t.message):d?`\u526A\u8D34\u677F\u64CD\u4F5C\u5931\u8D25\uFF08${d}\uFF09`:"\u526A\u8D34\u677F\u64CD\u4F5C\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5"}var gn=0,yn=()=>{let t=globalThis.crypto?.randomUUID?.();return t?`clip-${t}`:`clip-${Date.now().toString(36)}-${gn+=1}`};function Nt({send:t,timeoutMs:d=5e3,controlEpoch:c,setTimer:r=setTimeout,clearTimer:u=clearTimeout}={}){let n=new Map,s=()=>{try{return typeof c=="function"?c():void 0}catch{return}},o=(h,x)=>{!h||!n.has(h.id)||(n.delete(h.id),u(h.timer),x())},b=(h,x)=>new Promise((k,_)=>{let A=yn(),J=r(()=>{let w=n.get(A);w&&o(w,()=>_(xe("CLIPBOARD_TIMEOUT","\u4E91\u7AEF\u526A\u8D34\u677F\u54CD\u5E94\u8D85\u65F6\uFF0C\u8BF7\u68C0\u67E5\u8FDE\u63A5\u540E\u91CD\u8BD5")))},d),X=s();n.set(A,{id:A,timer:J,type:h,epoch:X,resolve:k,reject:w=>_(w)});let P=!1;try{P=t({type:h,requestId:A,...Number.isSafeInteger(X)?{controlEpoch:X}:{},...x})!==!1}catch(w){o(n.get(A),()=>_(xe("CLIPBOARD_UNAVAILABLE","\u4E91\u7535\u8111\u5C1A\u672A\u8FDE\u63A5\uFF0C\u526A\u8D34\u677F\u6682\u4E0D\u53EF\u7528",w)));return}P||o(n.get(A),()=>_(xe("CLIPBOARD_UNAVAILABLE","\u4E91\u7535\u8111\u5C1A\u672A\u8FDE\u63A5\uFF0C\u526A\u8D34\u677F\u6682\u4E0D\u53EF\u7528")))}),g=Object.freeze({read:()=>b("clipboard.read").then(h=>({text:st(h)})),write:h=>b("clipboard.write",{text:String(h)}).then(()=>({written:!0})),accept(h){if(h?.type==="error"&&h.code==="DESKTOP_MESSAGE_UNSUPPORTED"&&n.size>0)return g.rejectAll(xe("CLIPBOARD_UPGRADE_REQUIRED","\u5F53\u524D\u4E91\u7AEF\u7248\u672C\u5C1A\u4E0D\u652F\u6301\u526A\u8D34\u677F\uFF0C\u8BF7\u66F4\u65B0\u4E91\u7AEF\u52A9\u7406\u540E\u91CD\u8BD5")),!0;if(!h||h.type!=="clipboard.response")return!1;let x=n.get(String(h.requestId||""));return x?(o(x,()=>{if(Number.isSafeInteger(x.epoch)&&x.epoch!==s()){x.reject(xe("DESKTOP_CONTROL_EPOCH_CHANGED","\u4E91\u7535\u8111\u63A7\u5236\u6743\u5DF2\u6539\u53D8\uFF0C\u672C\u6B21\u526A\u8D34\u677F\u64CD\u4F5C\u672A\u5B8C\u6210"));return}if(h.ok===!1){x.reject(xe(h.error?.code||"CLIPBOARD_FAILED",h.error?.message||"",h.error));return}let k=x.type==="clipboard.read"?typeof h.value=="string"||typeof h.value?.text=="string":h.value?.written===!0;if(h.ok!==!0||!k){x.reject(xe("CLIPBOARD_RESPONSE_INVALID","\u4E91\u7AEF\u6CA1\u6709\u786E\u8BA4\u526A\u8D34\u677F\u64CD\u4F5C\u6210\u529F\uFF0C\u8BF7\u91CD\u8BD5"));return}x.resolve(h.value)}),!0):!1},rejectAll(h=xe("CLIPBOARD_CLOSED","\u4E91\u7535\u8111\u8FDE\u63A5\u5DF2\u65AD\u5F00\uFF0C\u526A\u8D34\u677F\u64CD\u4F5C\u672A\u5B8C\u6210")){for(let x of[...n.values()])o(x,()=>x.reject(h))},get size(){return n.size}});return g}function Lt(t){return!t||String(t.key??"").toLowerCase()!=="v"||t.altKey||t.shiftKey||t.isComposing||t.nativeEvent?.isComposing?!1:t.metaKey===!0||t.ctrlKey===!0}function Pt(t){return!t||String(t.key??"").toLowerCase()!=="c"||t.altKey||t.shiftKey||t.isComposing||t.nativeEvent?.isComposing?!1:t.metaKey===!0||t.ctrlKey===!0}async function gt({readLocal:t,writeCloud:d,sendKeys:c,ensureControl:r,notify:u=()=>{}}={}){let n=t||(()=>pt()),s="";try{s=await n()}catch(o){return u(Ze(o)||"\u6D4F\u89C8\u5668\u4E0D\u5141\u8BB8\u8BFB\u53D6\u526A\u8D34\u677F\uFF0C\u8BF7\u6309 \u2318V / Ctrl+V \u518D\u8BD5"),{ok:!1,code:o?.code||"CLIPBOARD_READ_FAILED"}}if(!s)return u("\u672C\u5730\u526A\u8D34\u677F\u662F\u7A7A\u7684\uFF0C\u6CA1\u6709\u53EF\u7C98\u8D34\u7684\u5185\u5BB9"),{ok:!1,code:"CLIPBOARD_EMPTY"};if(pn(s)>65536)return u("\u526A\u8D34\u677F\u5185\u5BB9\u8D85\u8FC7 64 KiB\uFF0C\u4E91\u7535\u8111\u526A\u8D34\u677F\u653E\u4E0D\u4E0B"),{ok:!1,code:"CLIPBOARD_TOO_LARGE"};if(typeof r=="function")try{if(!await r())return u("\u9700\u8981\u5148\u63A5\u7BA1\u4E91\u7535\u8111\uFF0C\u624D\u80FD\u7C98\u8D34\u5230\u4E91\u7535\u8111"),{ok:!1,code:"CLIPBOARD_CONTROL_REQUIRED"}}catch(o){return u(Ze(o)||"\u63A5\u7BA1\u4E91\u7535\u8111\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5"),{ok:!1,code:o?.code||"CLIPBOARD_CONTROL_REQUIRED"}}try{if((await d(s))?.written!==!0)throw xe("CLIPBOARD_RESPONSE_INVALID","\u4E91\u7AEF\u6CA1\u6709\u786E\u8BA4\u526A\u8D34\u677F\u5199\u5165\u6210\u529F\uFF0C\u8BF7\u91CD\u8BD5")}catch(o){return u(Ze(o)||"\u5199\u5165\u4E91\u7535\u8111\u526A\u8D34\u677F\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5"),{ok:!1,code:"CLIPBOARD_WRITE_FAILED"}}if(typeof c=="function"){let o=!1;try{o=c(fn())!==!1}catch(b){return{ok:!0,code:"CLIPBOARD_KEY_FAILED",error:b}}if(!o)return u("\u5DF2\u5199\u5165\u4E91\u7535\u8111\u526A\u8D34\u677F\uFF0C\u4F46\u5F53\u524D\u6CA1\u6709\u63A7\u5236\u6743\uFF1B\u63A5\u7BA1\u4E91\u7535\u8111\u540E\u518D\u6309 Ctrl+V"),{ok:!0,code:"CLIPBOARD_KEY_NOT_SENT"}}return u("\u5DF2\u7C98\u8D34\u5230\u4E91\u7535\u8111"),{ok:!0}}async function Bt({readCloud:t,writeLocal:d,ensureControl:c,notify:r=()=>{}}={}){let u=d||(o=>ft(o));if(typeof c=="function")try{if(!await c())return r("\u9700\u8981\u5148\u63A5\u7BA1\u4E91\u7535\u8111\uFF0C\u624D\u80FD\u590D\u5236\u4E91\u7535\u8111\u5185\u5BB9"),{ok:!1,code:"CLIPBOARD_CONTROL_REQUIRED"}}catch(o){return r(Ze(o)||"\u63A5\u7BA1\u4E91\u7535\u8111\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5"),{ok:!1,code:o?.code||"CLIPBOARD_CONTROL_REQUIRED"}}let n;try{n=await t()}catch(o){return r(Ze(o)||"\u8BFB\u53D6\u4E91\u7535\u8111\u526A\u8D34\u677F\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5"),{ok:!1,code:"CLIPBOARD_READ_FAILED"}}let s=st(n);if(!s)return r("\u4E91\u7535\u8111\u526A\u8D34\u677F\u662F\u7A7A\u7684\uFF0C\u6CA1\u6709\u53EF\u590D\u5236\u7684\u5185\u5BB9"),{ok:!1,code:"CLIPBOARD_EMPTY"};try{await u(s)}catch(o){return r(Ze(o)||"\u6D4F\u89C8\u5668\u4E0D\u5141\u8BB8\u5199\u5165\u526A\u8D34\u677F\uFF0C\u8BF7\u91CD\u8BD5"),{ok:!1,code:"CLIPBOARD_WRITE_FAILED"}}return r("\u5DF2\u590D\u5236\u5230\u672C\u5730"),{ok:!0,text:s}}var bn=/^```\s*([\w+#.-]*)\s*$/u,hn=/^(#{1,6})\s+(.*)$/u,zt=/^\s*[-*+]\s+(.*)$/u,Ut=/^\s*(\d{1,3})[.)]\s+(.*)$/u,yt=/^\s*>\s?(.*)$/u,mn=/^\s*([-*_])\s*(?:\1\s*){2,}$/u;function xn(t){let c=(typeof t=="string"?t.replace(/\r\n?/gu,`
|
|
1
|
+
(()=>{var rt=Object.freeze({width:1280,height:800});var Tt=100;function ot(e={}){let l=Number(e.width)||rt.width,a=Number(e.height)||rt.height;return!Number.isFinite(l)||!Number.isFinite(a)||l<=0||a<=0?rt:Object.freeze({width:Math.round(l),height:Math.round(a)})}function Rt({clientX:e,clientY:l,rect:a,display:r=rt}){let c=ot(r),n=Number(a?.width)||c.width,s=Number(a?.height)||c.height,o=Number(a?.left)||0,g=Number(a?.top)||0,y=Math.min(n/c.width,s/c.height),h=o+(n-c.width*y)/2,m=g+(s-c.height*y)/2,k=Math.max(0,Math.min(c.width-1,Math.round((Number(e)-h)/y))),_=Math.max(0,Math.min(c.height-1,Math.round((Number(l)-m)/y)));return{x:k,y:_}}function _t({availableWidth:e,availableHeight:l,display:a=rt,maxWidth:r=Number.POSITIVE_INFINITY}={}){let c=ot(a),n=Number(e)>0?Number(e):0,s=Number(l)>0?Number(l):0,o=Number(r)>0?Number(r):Number.POSITIVE_INFINITY;if(!n||!s)return{width:0,height:0};let g=Math.min(n,o,s*(c.width/c.height)),y=h=>Math.round(h*100)/100;return{width:y(g),height:y(g*(c.height/c.width))}}function Ct(e={x:0,y:0},{deltaX:l=0,deltaY:a=0}={},r=Tt){let c=Number(r)>0?Number(r):Tt,n=(Number(e?.x)||0)+(Number(l)||0),s=(Number(e?.y)||0)+(Number(a)||0),o=Math.trunc(n/c),g=Math.trunc(s/c);return{pending:Object.freeze({x:n-o*c,y:s-g*c}),clicks:Object.freeze({deltaX:o,deltaY:g})}}function Ot({send:e,changed:l=()=>{},failed:a=()=>{},setTimer:r=setTimeout,clearTimer:c=clearTimeout}={}){let n=!1,s=0,o="observe",g=!1,y=[],h="",m,k=()=>l({phase:o,readOnly:o!=="controlling",controlEpoch:s,available:n}),_=()=>{c(m),m=void 0;let S=h;h="",S&&o==="controlling"&&e({type:"input",controlEpoch:s,event:{type:"text",text:S}})},w=S=>{S.type==="text"?(h.length+S.text.length>16384&&_(),h+=S.text,m||(m=r(_,30))):(_(),e({type:"input",controlEpoch:s,event:S}))},j=()=>{o="acquiring",k(),e({type:"control.acquire",controlEpoch:s})},H=S=>{if(S.type==="pointermove"&&y.at(-1)?.type==="pointermove")y[y.length-1]=S;else if(y.length<32)y.push(S);else return P.release(),a("\u63A5\u7BA1\u671F\u95F4\u8F93\u5165\u8FC7\u5FEB\uFF0C\u8BF7\u91CD\u65B0\u70B9\u51FB\u4E91\u7535\u8111"),!1;return!0},P={get snapshot(){return{phase:o,readOnly:o!=="controlling",controlEpoch:s,available:n}},reset(S={}){c(m),m=void 0,h="",y=[],n=S.controlAvailable===!0,s=Number.isSafeInteger(S.controlEpoch)?S.controlEpoch:0,o=S.readOnly===!1?"controlling":"observe",g=o==="controlling",k()},input(S){return o==="controlling"?(w(S),!0):(!g||o==="observe")&&(S.type==="pointermove"||["button","key"].includes(S.type)&&S.action==="up")||S.type==="pointermove"&&o==="observe"?!1:n?(g=!0,H(S)?(o==="observe"&&j(),!0):!1):(S.type!=="pointermove"&&a("\u5F53\u524D\u4E3A\u53EA\u8BFB\u65C1\u89C2\uFF0C\u9F20\u6807\u548C\u952E\u76D8\u4E0D\u4F1A\u53D1\u9001\u5230\u4E91\u7535\u8111"),!1)},acquire(){return n?(g=!0,o==="observe"&&j(),!0):!1},release(){g=!1,y=[],o==="controlling"&&(_(),o="releasing",k(),e({type:"control.release",controlEpoch:s}))},accept(S){if(!Number.isSafeInteger(S.controlEpoch)||S.controlEpoch<s)return;if(S.controlEpoch!==s&&(c(m),m=void 0,h=""),s=S.controlEpoch,n=S.controlAvailable===!0,S.readOnly){o!=="releasing"&&(g=!1,y=[]),o="observe",k(),g&&n&&j();return}if(!g){y=[],o="releasing",k(),e({type:"control.release",controlEpoch:s});return}o="controlling",k();let ve=y;y=[];for(let O of ve)w(O)},reject(S){Number.isSafeInteger(S.controlEpoch)&&S.controlEpoch<s||(g=!1,y=[],c(m),m=void 0,h="",Number.isSafeInteger(S.controlEpoch)&&S.controlEpoch>=s&&(s=S.controlEpoch),o=S.readOnly===!1?"controlling":"observe",k(),a(S.message||"\u63A7\u5236\u6743\u6682\u4E0D\u53EF\u7528\uFF0C\u4ECD\u53EF\u7EE7\u7EED\u65C1\u89C2"))},dispose(){P.release(),c(m),m=void 0,h="",y=[]}};return P}var xe=(e,l,a)=>Object.assign(new Error(l),{code:e,cause:a}),fn=e=>{try{return new TextEncoder().encode(e).length}catch{return e.length}},st=e=>typeof e=="string"?e:String(e?.text??"");async function pt({clipboard:e}={}){let l=e||globalThis.navigator?.clipboard;if(!l||typeof l.readText!="function")throw xe("CLIPBOARD_UNAVAILABLE","\u5F53\u524D\u73AF\u5883\u4E0D\u5141\u8BB8\u8BFB\u53D6\u526A\u8D34\u677F\uFF0C\u8BF7\u70B9\u300C\u7C98\u8D34\u300D\u6309\u94AE\u518D\u8BD5");try{let a=await l.readText();return typeof a=="string"?a:""}catch(a){throw xe("CLIPBOARD_READ_DENIED","\u6D4F\u89C8\u5668\u4E0D\u5141\u8BB8\u8BFB\u53D6\u526A\u8D34\u677F\uFF0C\u8BF7\u6309 \u2318V / Ctrl+V \u518D\u8BD5",a)}}async function ft(e,{clipboard:l}={}){let a=l||globalThis.navigator?.clipboard;if(!a||typeof a.writeText!="function")throw xe("CLIPBOARD_UNAVAILABLE","\u5F53\u524D\u73AF\u5883\u4E0D\u5141\u8BB8\u5199\u5165\u526A\u8D34\u677F\uFF0C\u8BF7\u624B\u52A8\u590D\u5236");try{await a.writeText(String(e??""))}catch(r){throw xe("CLIPBOARD_WRITE_DENIED","\u6D4F\u89C8\u5668\u4E0D\u5141\u8BB8\u5199\u5165\u526A\u8D34\u677F\uFF0C\u8BF7\u91CD\u8BD5",r)}}function gn(){return Object.freeze([Object.freeze({type:"key",action:"down",key:"Control_L"}),Object.freeze({type:"key",action:"down",key:"v"}),Object.freeze({type:"key",action:"up",key:"v"}),Object.freeze({type:"key",action:"up",key:"Control_L"})])}function Dt(){return Object.freeze([Object.freeze({type:"key",action:"down",key:"Control_L"}),Object.freeze({type:"key",action:"down",key:"c"}),Object.freeze({type:"key",action:"up",key:"c"}),Object.freeze({type:"key",action:"up",key:"Control_L"})])}async function Nt({readCloud:e,beforeText:l="",timeoutMs:a=1200,settleMs:r=180,pollMs:c=50,sleep:n=o=>new Promise(g=>setTimeout(g,o)),now:s=Date.now}={}){if(typeof e!="function")throw xe("CLIPBOARD_READ_FAILED","\u8BFB\u53D6\u4E91\u7535\u8111\u526A\u8D34\u677F\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5");let o=Number.isFinite(a)&&a>=0?a:1200,g=Number.isFinite(r)&&r>=0?r:180,y=Number.isFinite(c)&&c>0?c:50,h=typeof s=="function"?s:Date.now,m=Number(h()),k="";for(;Number(h())-m<=o;){let _=await e();k=st(_);let w=Number(h())-m;if(k&&(k!==String(l??"")||w>=g))return{text:k,changed:k!==String(l??"")};if(w>=o)break;await n(Math.min(y,o-w))}return{text:k,changed:k!==String(l??"")}}function Ze(e){let l=String(e?.code||"");return l==="COMPUTER_USER_CONTROLLED"?"\u5F53\u524D\u6709\u4EBA\u6B63\u5728\u64CD\u4F5C\u4E91\u7535\u8111\uFF0C\u8BF7\u7B49\u5BF9\u65B9\u4EA4\u8FD8\u540E\u518D\u590D\u5236\u6216\u7C98\u8D34":l==="COMPUTER_LEASE_CONFLICT"?"\u4E91\u7535\u8111\u6B63\u5728\u88AB\u5176\u4ED6\u4EFB\u52A1\u4F7F\u7528\uFF0C\u8BF7\u7A0D\u540E\u518D\u590D\u5236\u6216\u7C98\u8D34":["COMPUTER_LEASE_REQUIRED","DESKTOP_CONTROL_GRANT_REQUIRED","DESKTOP_READ_ONLY","DESKTOP_CONTROL_EPOCH_CHANGED"].includes(l)?"\u9700\u8981\u5148\u70B9\u753B\u9762\u63A5\u7BA1\u4E91\u7535\u8111\uFF0C\u624D\u80FD\u8BFB\u5199\u4E91\u7AEF\u526A\u8D34\u677F":["DESKTOP_SESSION_IDLE","DESKTOP_SESSION_NOT_FOUND","CLIPBOARD_CLOSED"].includes(l)?"\u4E91\u7535\u8111\u5DF2\u7A7A\u95F2\u6216\u65AD\u5F00\uFF0C\u8BF7\u5148\u6062\u590D\u753B\u9762\u518D\u8BD5":l==="CLIPBOARD_UPGRADE_REQUIRED"?"\u5F53\u524D\u4E91\u7AEF\u7248\u672C\u5C1A\u4E0D\u652F\u6301\u526A\u8D34\u677F\uFF0C\u8BF7\u66F4\u65B0\u4E91\u7AEF\u52A9\u7406\u540E\u91CD\u8BD5":l==="CLIPBOARD_CONTROL_REQUIRED"?"\u9700\u8981\u5148\u63A5\u7BA1\u4E91\u7535\u8111\uFF0C\u624D\u80FD\u8BFB\u5199\u4E91\u7AEF\u526A\u8D34\u677F":l==="CLIPBOARD_RESPONSE_INVALID"?"\u4E91\u7AEF\u6CA1\u6709\u786E\u8BA4\u526A\u8D34\u677F\u64CD\u4F5C\u6210\u529F\uFF0C\u8BF7\u91CD\u8BD5":l==="CLIPBOARD_TIMEOUT"?"\u4E91\u7AEF\u526A\u8D34\u677F\u54CD\u5E94\u8D85\u65F6\uFF0C\u8BF7\u68C0\u67E5\u8FDE\u63A5\u540E\u91CD\u8BD5":l==="CLIPBOARD_UNAVAILABLE"?"\u4E91\u7535\u8111\u5C1A\u672A\u8FDE\u63A5\uFF0C\u8BF7\u6062\u590D\u753B\u9762\u540E\u91CD\u8BD5":l==="CLIPBOARD_TEXT_TOO_LARGE"?"\u526A\u8D34\u677F\u5185\u5BB9\u8D85\u8FC7 64 KiB\uFF0C\u4E91\u7535\u8111\u526A\u8D34\u677F\u653E\u4E0D\u4E0B":["DESKTOP_UNAVAILABLE","DESKTOP_FRAME_FAILED","DESKTOP_SESSION_FAILED"].includes(l)?"\u4E91\u7535\u8111\u6682\u65F6\u4E0D\u53EF\u7528\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5":["CLIPBOARD_FAILED","CLOUD_SESSION_FAILED"].includes(l)?"\u526A\u8D34\u677F\u64CD\u4F5C\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5":l==="CLIPBOARD_TEXT_INVALID"?"\u526A\u8D34\u677F\u5185\u5BB9\u683C\u5F0F\u4E0D\u88AB\u4E91\u7AEF\u63A5\u53D7\uFF0C\u8BF7\u91CD\u8BD5":e?.message?String(e.message):l?`\u526A\u8D34\u677F\u64CD\u4F5C\u5931\u8D25\uFF08${l}\uFF09`:"\u526A\u8D34\u677F\u64CD\u4F5C\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5"}var yn=0,bn=()=>{let e=globalThis.crypto?.randomUUID?.();return e?`clip-${e}`:`clip-${Date.now().toString(36)}-${yn+=1}`};function Lt({send:e,timeoutMs:l=5e3,controlEpoch:a,setTimer:r=setTimeout,clearTimer:c=clearTimeout}={}){let n=new Map,s=()=>{try{return typeof a=="function"?a():void 0}catch{return}},o=(h,m)=>{!h||!n.has(h.id)||(n.delete(h.id),c(h.timer),m())},g=(h,m)=>new Promise((k,_)=>{let w=bn(),j=r(()=>{let S=n.get(w);S&&o(S,()=>_(xe("CLIPBOARD_TIMEOUT","\u4E91\u7AEF\u526A\u8D34\u677F\u54CD\u5E94\u8D85\u65F6\uFF0C\u8BF7\u68C0\u67E5\u8FDE\u63A5\u540E\u91CD\u8BD5")))},l),H=s();n.set(w,{id:w,timer:j,type:h,epoch:H,resolve:k,reject:S=>_(S)});let P=!1;try{P=e({type:h,requestId:w,...Number.isSafeInteger(H)?{controlEpoch:H}:{},...m})!==!1}catch(S){o(n.get(w),()=>_(xe("CLIPBOARD_UNAVAILABLE","\u4E91\u7535\u8111\u5C1A\u672A\u8FDE\u63A5\uFF0C\u526A\u8D34\u677F\u6682\u4E0D\u53EF\u7528",S)));return}P||o(n.get(w),()=>_(xe("CLIPBOARD_UNAVAILABLE","\u4E91\u7535\u8111\u5C1A\u672A\u8FDE\u63A5\uFF0C\u526A\u8D34\u677F\u6682\u4E0D\u53EF\u7528")))}),y=Object.freeze({read:()=>g("clipboard.read").then(h=>({text:st(h)})),write:h=>g("clipboard.write",{text:String(h)}).then(()=>({written:!0})),accept(h){if(h?.type==="error"&&h.code==="DESKTOP_MESSAGE_UNSUPPORTED"&&n.size>0)return y.rejectAll(xe("CLIPBOARD_UPGRADE_REQUIRED","\u5F53\u524D\u4E91\u7AEF\u7248\u672C\u5C1A\u4E0D\u652F\u6301\u526A\u8D34\u677F\uFF0C\u8BF7\u66F4\u65B0\u4E91\u7AEF\u52A9\u7406\u540E\u91CD\u8BD5")),!0;if(!h||h.type!=="clipboard.response")return!1;let m=n.get(String(h.requestId||""));return m?(o(m,()=>{if(Number.isSafeInteger(m.epoch)&&m.epoch!==s()){m.reject(xe("DESKTOP_CONTROL_EPOCH_CHANGED","\u4E91\u7535\u8111\u63A7\u5236\u6743\u5DF2\u6539\u53D8\uFF0C\u672C\u6B21\u526A\u8D34\u677F\u64CD\u4F5C\u672A\u5B8C\u6210"));return}if(h.ok===!1){m.reject(xe(h.error?.code||"CLIPBOARD_FAILED",h.error?.message||"",h.error));return}let k=m.type==="clipboard.read"?typeof h.value=="string"||typeof h.value?.text=="string":h.value?.written===!0;if(h.ok!==!0||!k){m.reject(xe("CLIPBOARD_RESPONSE_INVALID","\u4E91\u7AEF\u6CA1\u6709\u786E\u8BA4\u526A\u8D34\u677F\u64CD\u4F5C\u6210\u529F\uFF0C\u8BF7\u91CD\u8BD5"));return}m.resolve(h.value)}),!0):!1},rejectAll(h=xe("CLIPBOARD_CLOSED","\u4E91\u7535\u8111\u8FDE\u63A5\u5DF2\u65AD\u5F00\uFF0C\u526A\u8D34\u677F\u64CD\u4F5C\u672A\u5B8C\u6210")){for(let m of[...n.values()])o(m,()=>m.reject(h))},get size(){return n.size}});return y}function Pt(e){return!e||String(e.key??"").toLowerCase()!=="v"||e.altKey||e.shiftKey||e.isComposing||e.nativeEvent?.isComposing?!1:e.metaKey===!0||e.ctrlKey===!0}function Bt(e){return!e||String(e.key??"").toLowerCase()!=="c"||e.altKey||e.shiftKey||e.isComposing||e.nativeEvent?.isComposing?!1:e.metaKey===!0||e.ctrlKey===!0}async function gt({readLocal:e,writeCloud:l,sendKeys:a,ensureControl:r,notify:c=()=>{}}={}){let n=e||(()=>pt()),s="";try{s=await n()}catch(o){return c(Ze(o)||"\u6D4F\u89C8\u5668\u4E0D\u5141\u8BB8\u8BFB\u53D6\u526A\u8D34\u677F\uFF0C\u8BF7\u6309 \u2318V / Ctrl+V \u518D\u8BD5"),{ok:!1,code:o?.code||"CLIPBOARD_READ_FAILED"}}if(!s)return c("\u672C\u5730\u526A\u8D34\u677F\u662F\u7A7A\u7684\uFF0C\u6CA1\u6709\u53EF\u7C98\u8D34\u7684\u5185\u5BB9"),{ok:!1,code:"CLIPBOARD_EMPTY"};if(fn(s)>65536)return c("\u526A\u8D34\u677F\u5185\u5BB9\u8D85\u8FC7 64 KiB\uFF0C\u4E91\u7535\u8111\u526A\u8D34\u677F\u653E\u4E0D\u4E0B"),{ok:!1,code:"CLIPBOARD_TOO_LARGE"};if(typeof r=="function")try{if(!await r())return c("\u9700\u8981\u5148\u63A5\u7BA1\u4E91\u7535\u8111\uFF0C\u624D\u80FD\u7C98\u8D34\u5230\u4E91\u7535\u8111"),{ok:!1,code:"CLIPBOARD_CONTROL_REQUIRED"}}catch(o){return c(Ze(o)||"\u63A5\u7BA1\u4E91\u7535\u8111\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5"),{ok:!1,code:o?.code||"CLIPBOARD_CONTROL_REQUIRED"}}try{if((await l(s))?.written!==!0)throw xe("CLIPBOARD_RESPONSE_INVALID","\u4E91\u7AEF\u6CA1\u6709\u786E\u8BA4\u526A\u8D34\u677F\u5199\u5165\u6210\u529F\uFF0C\u8BF7\u91CD\u8BD5")}catch(o){return c(Ze(o)||"\u5199\u5165\u4E91\u7535\u8111\u526A\u8D34\u677F\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5"),{ok:!1,code:"CLIPBOARD_WRITE_FAILED"}}if(typeof a=="function"){let o=!1;try{o=a(gn())!==!1}catch(g){return{ok:!0,code:"CLIPBOARD_KEY_FAILED",error:g}}if(!o)return c("\u5DF2\u5199\u5165\u4E91\u7535\u8111\u526A\u8D34\u677F\uFF0C\u4F46\u5F53\u524D\u6CA1\u6709\u63A7\u5236\u6743\uFF1B\u63A5\u7BA1\u4E91\u7535\u8111\u540E\u518D\u6309 Ctrl+V"),{ok:!0,code:"CLIPBOARD_KEY_NOT_SENT"}}return c("\u5DF2\u7C98\u8D34\u5230\u4E91\u7535\u8111"),{ok:!0}}async function zt({readCloud:e,writeLocal:l,ensureControl:a,notify:r=()=>{}}={}){let c=l||(o=>ft(o));if(typeof a=="function")try{if(!await a())return r("\u9700\u8981\u5148\u63A5\u7BA1\u4E91\u7535\u8111\uFF0C\u624D\u80FD\u590D\u5236\u4E91\u7535\u8111\u5185\u5BB9"),{ok:!1,code:"CLIPBOARD_CONTROL_REQUIRED"}}catch(o){return r(Ze(o)||"\u63A5\u7BA1\u4E91\u7535\u8111\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5"),{ok:!1,code:o?.code||"CLIPBOARD_CONTROL_REQUIRED"}}let n;try{n=await e()}catch(o){return r(Ze(o)||"\u8BFB\u53D6\u4E91\u7535\u8111\u526A\u8D34\u677F\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5"),{ok:!1,code:"CLIPBOARD_READ_FAILED"}}let s=st(n);if(!s)return r("\u4E91\u7535\u8111\u526A\u8D34\u677F\u662F\u7A7A\u7684\uFF0C\u6CA1\u6709\u53EF\u590D\u5236\u7684\u5185\u5BB9"),{ok:!1,code:"CLIPBOARD_EMPTY"};try{await c(s)}catch(o){return r(Ze(o)||"\u6D4F\u89C8\u5668\u4E0D\u5141\u8BB8\u5199\u5165\u526A\u8D34\u677F\uFF0C\u8BF7\u91CD\u8BD5"),{ok:!1,code:"CLIPBOARD_WRITE_FAILED"}}return r("\u5DF2\u590D\u5236\u5230\u672C\u5730"),{ok:!0,text:s}}var hn=/^```\s*([\w+#.-]*)\s*$/u,mn=/^(#{1,6})\s+(.*)$/u,$t=/^\s*[-*+]\s+(.*)$/u,Ut=/^\s*(\d{1,3})[.)]\s+(.*)$/u,yt=/^\s*>\s?(.*)$/u,xn=/^\s*([-*_])\s*(?:\1\s*){2,}$/u,wn=/^:?-{1,}:?$/u;function bt(e){let l=typeof e=="string"?e.trim():"";l.startsWith("|")&&(l=l.slice(1)),l.endsWith("|")&&!l.endsWith("\\|")&&(l=l.slice(0,-1));let a=[],r="";for(let c=0;c<l.length;c+=1){let n=l[c];if(n==="\\"&&l[c+1]==="|"){r+="|",c+=1;continue}if(n==="|"){a.push(r.trim()),r="";continue}r+=n}return a.push(r.trim()),a}function Sn(e){let l=String(e||"").trim();return l.startsWith(":")&&l.endsWith(":")?"center":l.endsWith(":")?"right":"left"}function In(e,l){if(!String(e).includes("|")||!String(l).includes("|"))return null;let a=bt(e),r=bt(l);return a.length<2||r.length!==a.length||!r.every(c=>wn.test(c))?null:{headers:a,alignments:r.map(Sn)}}function vn(e){let a=(typeof e=="string"?e.replace(/\r\n?/gu,`
|
|
2
2
|
`):"").split(`
|
|
3
|
-
`),r=[],
|
|
4
|
-
`)}),o.length=0)},s=[];for(;
|
|
5
|
-
`)});continue}if(o.trim()===""){n(s),
|
|
6
|
-
`)});continue}let x=zt.exec(o),k=Ut.exec(o);if(x||k){n(s);let _={type:k?"ordered":"unordered",items:[],start:k?Number(k[1]):1};for(;u<c.length;){let A=zt.exec(c[u]),J=Ut.exec(c[u]);if(!A&&!J)break;_.items.push((A?A[1]:J[2]).trim()),u+=1}r.push(_);continue}s.push(o),u+=1}return n(s),r}function wn(t){let d=typeof t=="string"?t:"",c=[],r=n=>{n&&c.push({type:"text",text:n})},u=d;for(;u.length>0;){let n=/^`([^`]+)`/u.exec(u);if(n){c.push({type:"code",text:n[1]}),u=u.slice(n[0].length);continue}let s=/^\*\*([^*\n]+)\*\*/u.exec(u)||/^__([^_\n]+)__/u.exec(u);if(s){c.push({type:"strong",text:s[1]}),u=u.slice(s[0].length);continue}let o=/^\*([^*\s][^*\n]*)\*/u.exec(u)||/^_([^_\s][^_\n]*)_/u.exec(u);if(o){c.push({type:"em",text:o[1]}),u=u.slice(o[0].length);continue}let b=/^\[([^\]]+)\]\(([^)\s]+)\)/u.exec(u);if(b){c.push({type:"link",text:b[1],href:b[2]}),u=u.slice(b[0].length);continue}let g=u.slice(1).search(/[`*_[\]\n]/u),h=g<0?u.length:g+1;r(u.slice(0,h)),u=u.slice(h)}return c.reduce((n,s)=>{let o=n[n.length-1];return s.type==="text"&&o&&o.type==="text"?n[n.length-1]={type:"text",text:o.text+s.text}:n.push(s),n},[])}function Ft(t,d,c={}){let r=xn(d);if(r.length===0)return null;let u=(n,s)=>wn(n).map((o,b)=>{let g=`${s}-i${b}`;return o.type==="code"?t("code",{key:g,style:c.inlineCode},o.text):o.type==="strong"?t("strong",{key:g},o.text):o.type==="em"?t("em",{key:g},o.text):o.type==="link"?/^(https?:|mailto:|cloud-file:)/iu.test(o.href)?t("a",{key:g,href:o.href,target:"_blank",rel:"noreferrer noopener",style:c.link},o.text):t("span",{key:g},o.text):t("span",{key:g},o.text)});return r.map((n,s)=>{let o=`b${s}`;if(n.type==="code")return t("pre",{key:o,style:c.codeBlock},t("code",null,n.text));if(n.type==="heading")return t("div",{key:o,style:{...c.heading,...n.level<=2?c.headingStrong:null}},u(n.text,o));if(n.type==="rule")return t("hr",{key:o,style:c.rule});if(n.type==="quote")return t("blockquote",{key:o,style:c.quote},u(n.text,o));if(n.type==="unordered"||n.type==="ordered"){let b=n.type==="ordered"?"ol":"ul";return t(b,{key:o,style:c.list,start:n.type==="ordered"&&n.start!==1?n.start:void 0},n.items.map((g,h)=>t("li",{key:`${o}-l${h}`},u(g,`${o}-l${h}`))))}return t("p",{key:o,style:c.paragraph},u(n.text,o))})}var Sn={code:{copyLabel:"\u590D\u5236",copiedLabel:"\u5DF2\u590D\u5236",toolbarLabels:{codeLabel:"\u4EE3\u7801",wrapLabel:"\u81EA\u52A8\u6362\u884C",unwrapLabel:"\u53D6\u6D88\u6362\u884C"}},footnotes:"\u811A\u6CE8"};function In(t,d,c,r){let u=r?.MarkdownText,n=typeof d=="string"?d:"";return typeof u=="function"?t(u,{text:n,labels:Sn}):Ft(t,n,c)||"\u2026"}var vn="\u6709\u4EC0\u4E48\u53EF\u4EE5\u5E2E\u4F60\uFF1F",En=new Set(["DSH_SESSION_BUSY","DSH_TURN_TIMEOUT"]),$t={RUNTIME_PROCESS_INTERRUPTED:"\u4E91\u7535\u8111\u91CD\u542F\uFF0C\u4EFB\u52A1\u88AB\u4E2D\u65AD",DSH_SESSION_CONTROLLER_UNAVAILABLE:"\u4E91\u7AEF\u8FDE\u63A5\u6682\u65F6\u4E0D\u53EF\u7528\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5",DSH_TURN_NOT_ACCEPTED:"\u4E91\u7AEF\u6CA1\u6709\u63A5\u53D7\u8FD9\u4E00\u8F6E\u5BF9\u8BDD\uFF0C\u8BF7\u91CD\u65B0\u53D1\u9001",DSH_SESSION_NOT_FOUND:"\u4F1A\u8BDD\u4E0D\u5B58\u5728\u6216\u5DF2\u88AB\u5220\u9664"},An=t=>{let d=String(t||"").trim();return d?$t[d]?$t[d]:/^[A-Z][A-Z0-9_]{5,}$/u.test(d)?"\u4E91\u7AEF\u6CA1\u6709\u5B8C\u6210\u8FD9\u4E00\u8F6E\uFF0C\u8BF7\u91CD\u8BD5":d.slice(0,160):"\u8BF7\u68C0\u67E5\u4EFB\u52A1\u72B6\u6001\u540E\u91CD\u8BD5"},kn=400,Tn=8,Mt=1500,T={page:{flex:"1 1 0px",height:"100%",maxHeight:"100%",minHeight:0,minWidth:0,overflow:"hidden",boxSizing:"border-box",display:"flex",flexDirection:"column",fontSize:13,color:"var(--dsw-alias-label-primary, #17202c)",background:"var(--dsw-alias-bg-layer-1, #fff)"},header:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:10,padding:"10px 16px",borderBottom:"1px solid var(--dsw-alias-border-default, #d8dee8)",flex:"none"},title:{margin:0,fontSize:14,fontWeight:600},status:{color:"var(--dsw-alias-label-secondary, #536174)",fontSize:12},spacer:{marginLeft:"auto"},ghost:{border:"1px solid var(--dsw-alias-border-default, #d8dee8)",background:"transparent",color:"inherit",borderRadius:8,padding:"5px 10px",cursor:"pointer",font:"inherit",fontSize:12},scroller:{flex:"1 1 0px",minHeight:0,minWidth:0,overflowY:"auto",overflowX:"hidden",overscrollBehavior:"contain",boxSizing:"border-box",padding:"20px 16px 8px"},thread:{maxWidth:720,margin:"0 auto",display:"flex",flexDirection:"column",gap:14},row:{display:"flex",flexDirection:"column",gap:4,alignItems:"flex-start"},rowUser:{display:"flex",flexDirection:"column",gap:4,alignItems:"flex-end"},who:{fontSize:11,color:"var(--dsw-alias-label-secondary, #536174)"},bubble:{maxWidth:"86%",padding:"9px 12px",borderRadius:12,lineHeight:1.7,overflowWrap:"anywhere",display:"flex",flexDirection:"column",gap:8,background:"color-mix(in srgb, currentColor 5%, transparent)"},paragraph:{margin:0,whiteSpace:"pre-wrap"},heading:{fontWeight:600,fontSize:13.5},headingStrong:{fontSize:15},list:{margin:0,paddingLeft:20,display:"flex",flexDirection:"column",gap:4},codeBlock:{margin:0,padding:"10px 12px",borderRadius:8,overflowX:"auto",fontSize:12,lineHeight:1.65,background:"color-mix(in srgb, currentColor 9%, transparent)",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},inlineCode:{padding:"1px 5px",borderRadius:5,fontSize:12,background:"color-mix(in srgb, currentColor 9%, transparent)",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},quote:{margin:0,paddingLeft:10,borderLeft:"3px solid var(--dsw-alias-border-default, #d8dee8)",color:"var(--dsw-alias-label-secondary, #536174)"},rule:{border:"none",borderTop:"1px solid var(--dsw-alias-border-default, #d8dee8)",margin:"2px 0",width:"100%"},link:{color:"#2f6bff",textDecoration:"none"},bubbleUser:{maxWidth:"86%",padding:"9px 12px",borderRadius:12,lineHeight:1.7,whiteSpace:"pre-wrap",overflowWrap:"anywhere",background:"color-mix(in srgb, #2f6bff 12%, transparent)"},pulse:{animation:"pa-awaiting 1.2s ease-in-out infinite"},step:{fontSize:12,color:"var(--dsw-alias-label-secondary, #536174)",lineHeight:1.7,overflowWrap:"anywhere"},centered:{flex:1,display:"grid",placeItems:"center",padding:24,textAlign:"center"},centeredInner:{maxWidth:420,display:"flex",flexDirection:"column",gap:10,alignItems:"center"},composer:{flex:"0 0 auto",minWidth:0,boxSizing:"border-box",padding:"8px 16px 14px"},composerInner:{maxWidth:720,minWidth:0,margin:"0 auto",display:"flex",flexDirection:"column",gap:6,border:"1px solid var(--dsw-alias-border-default, #d8dee8)",borderRadius:16,padding:"10px 10px 8px 12px",background:"var(--dsw-alias-bg-layer-1, #fff)"},textarea:{flex:1,width:"100%",minWidth:0,boxSizing:"border-box",minHeight:24,maxHeight:200,resize:"none",border:"none",outline:"none",background:"transparent",color:"inherit",font:"inherit",fontSize:13,lineHeight:1.7},composerBar:{display:"flex",alignItems:"center",gap:8},iconButton:{flex:"none",width:28,height:28,display:"grid",placeItems:"center",cursor:"pointer",border:"1px solid var(--dsw-alias-border-default, #d8dee8)",borderRadius:999,background:"transparent",color:"var(--dsw-alias-label-secondary, #536174)",padding:0},send:{flex:"none",width:28,height:28,display:"grid",placeItems:"center",border:"none",borderRadius:999,cursor:"pointer",padding:0,background:"var(--dsw-alias-label-primary, #17202c)",color:"var(--dsw-alias-bg-layer-1, #fff)"},sendDisabled:{background:"var(--dsw-alias-border-default, #d8dee8)",color:"var(--dsw-alias-label-secondary, #536174)",cursor:"default"},sendQueued:{flex:"none",width:28,height:28,display:"grid",placeItems:"center",borderRadius:999,cursor:"pointer",padding:0,border:"1px dashed var(--dsw-alias-label-primary, #17202c)",background:"transparent",color:"var(--dsw-alias-label-primary, #17202c)"},queueBadge:{flex:"none",borderRadius:999,padding:"1px 8px",fontSize:11,lineHeight:"18px",background:"color-mix(in srgb, #946200 14%, transparent)",color:"#946200"},queueBubble:{maxWidth:"86%",padding:"9px 12px",borderRadius:12,lineHeight:1.7,whiteSpace:"pre-wrap",overflowWrap:"anywhere",border:"1px dashed color-mix(in srgb, currentColor 35%, transparent)",background:"color-mix(in srgb, currentColor 4%, transparent)",color:"var(--dsw-alias-label-secondary, #536174)"},queueRow:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap",justifyContent:"flex-end"},queueHint:{fontSize:11,color:"var(--dsw-alias-label-secondary, #536174)"},queueCancel:{border:"none",background:"transparent",cursor:"pointer",padding:"2px 4px",borderRadius:6,color:"var(--dsw-alias-label-secondary, #536174)",display:"inline-flex",alignItems:"center",gap:3,font:"inherit",fontSize:11},queueNotice:{maxWidth:720,margin:"0 auto 6px",fontSize:12,color:"#946200",lineHeight:1.6},attach:{flex:"none",display:"flex",alignItems:"center",gap:6,padding:"3px 8px 3px 4px",borderRadius:8,background:"var(--dsw-alias-bg-layer-2, #f4f6fa)",fontSize:11,maxWidth:180},attachName:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},attachThumb:{width:20,height:20,borderRadius:4,objectFit:"cover",flex:"none"},attachRow:{display:"flex",flexWrap:"wrap",gap:6}},U=t=>typeof t=="string"?t:"",Rn="agentkit.personal-assistant.current-session.v1",_n=t=>{let d=U(t?.agentId),c=U(t?.botId);return d&&c?`${Rn}:${encodeURIComponent(d)}:${encodeURIComponent(c)}`:""},Cn=t=>{if(!t)return"";try{return U(globalThis.localStorage?.getItem(t))}catch{return""}},On=(t,d)=>{let c=U(d);if(!(!t||!c))try{globalThis.localStorage?.setItem(t,c)}catch{}},Ye=(t,d,c=503)=>Object.assign(new Error(d),{code:t,status:c}),Dn=t=>t("svg",{width:16,height:16,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2.2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0},t("path",{d:"M12 19V5M5 12l7-7 7 7"})),Nn=t=>t("svg",{width:15,height:15,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round","aria-hidden":!0},t("path",{d:"M12 5v14M5 12h14"})),jt=t=>t("svg",{width:10,height:10,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2.4,strokeLinecap:"round","aria-hidden":!0},t("path",{d:"M6 6l12 12M18 6L6 18"}));function Wt({React:t,request:d,scope:c,markdown:r=void 0,onOpenComputer:u=null}={}){if(!t)return"\u4E2A\u4EBA\u52A9\u7406\u5BF9\u8BDD\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u91CD\u65B0\u6253\u5F00";let{createElement:n,useCallback:s,useEffect:o,useRef:b,useState:g}=t,h=_n(c),[x,k]=g("loading"),[_,A]=g(""),[J,X]=g([]),[P,w]=g(""),[ve,O]=g(""),[D,we]=g(""),[C,N]=g([]),[q,L]=g(""),[ee,ue]=g([]),Ke=b(null),[re,Me]=g(!1),[se,pe]=g(!1),[Ve,Se]=g(""),[W,le]=g([]),[Ne,oe]=g(""),ye=b(0),F=b(new Map),ce=b([]),H=b(!1),de=b(null),ke=b(!1);ke.current=re;let je=b(!1);je.current=se;let z=b("loading");z.current=x;let ie=b(0),M=b(!0),fe=b(null),ge=b(!0),Ie=b("");Ie.current=P;let K=s(async(i,y={})=>{if(typeof d!="function")throw new Error("Studio Host \u5C1A\u672A\u8FDE\u63A5");return d(i,y)},[d]),_e=s(i=>{!Array.isArray(i)||i.length===0||N(y=>{let f=[...y];for(let l of i)if(!(!l||typeof l!="object")){if(l.type==="message"){let I=U(l.id)||`local-${f.length}`,v=U(l.role)||"assistant",B=U(l.text),Ae=f.findIndex(Be=>Be.id===I),G={id:I,role:v,text:B,done:l.done!==!1,clientTurnId:l.clientTurnId,status:"accepted"};if(Ae>=0)f[Ae]={...f[Ae],...G};else if(v==="user"){let Be=f.findIndex(Re=>Re.role==="user"&&l.clientTurnId&&Re.clientTurnId===l.clientTurnId);Be>=0?f[Be]={...G}:f.push(G)}else f.push(G)}else if(l.type==="delta"){let I=U(l.id)||`local-${f.length}`,v=f.findIndex(B=>B.id===I);v>=0?f[v]={...f[v],text:f[v].text+U(l.text)}:f.push({id:I,role:"assistant",text:U(l.text),done:!1})}else if(l.type==="step"&&U(l.text)){let I={id:U(l.id),role:"step",text:U(l.text),done:!0},v=f.findIndex(B=>B.id===I.id);v>=0?f[v]=I:f.push(I)}}return f})},[]),be=s(async i=>{if(!i)return;let y=Ie.current;if(y&&y!==i&&ce.current.length>0){let l=ce.current.length;ce.current=[],le([]),de.current&&(clearTimeout(de.current),de.current=null),oe(`\u5DF2\u5207\u6362\u4F1A\u8BDD\uFF0C${l} \u6761\u6392\u961F\u6D88\u606F\u672A\u53D1\u9001\uFF0C\u5DF2\u53D6\u6D88`)}else y&&y!==i&&oe("");Ie.current=i;let f=++ie.current;w(i),k("loading"),A(""),ye.current=0,ge.current=!0,N([]);try{let l=await K("personal-assistant.session.snapshot",{sessionId:i});if(!M.current||Ie.current!==i||f!==ie.current)return;if(!l||typeof l!="object"||Array.isArray(l)||!Array.isArray(l.messages)||!Array.isArray(l.turns)||!Number.isSafeInteger(l.cursor)||l.cursor<0)throw Ye("PERSONAL_ASSISTANT_SESSION_SNAPSHOT_INVALID","\u4E91\u7AEF\u4F1A\u8BDD\u5FEB\u7167\u683C\u5F0F\u65E0\u6548\uFF0C\u8BF7\u91CD\u65B0\u540C\u6B65");O(U(l?.runtimeInstanceId)),we(U(l?.stateStorage)),ye.current=l.cursor;let I=l.messages;N(I.map((v,B)=>({id:U(v?.id)||`history-${B}`,role:U(v?.role)||"assistant",text:U(v?.text),done:!0}))),pe(l.turns?.some(v=>["queued","running"].includes(v.status))||!1),On(h,i),k("ready")}catch(l){if(!M.current||f!==ie.current)return;k("error"),A(l?.message||"\u65E0\u6CD5\u8BFB\u53D6\u4F1A\u8BDD\u5185\u5BB9")}},[K,h]),We=s(async()=>{if(M.current){if(ke.current||je.current||ce.current.length>0){oe("\u5F53\u524D\u4F1A\u8BDD\u8FD8\u6709\u8FDB\u884C\u4E2D\u7684\u4EFB\u52A1\uFF0C\u8BF7\u7B49\u5F85\u5B8C\u6210\u540E\u518D\u65B0\u5EFA\u4F1A\u8BDD");return}k("loading"),A("");try{let i=await K("personal-assistant.session.create",{}),y=U(i?.sessionId);if(!y)throw Ye("PERSONAL_ASSISTANT_SESSION_CREATE_INVALID","\u4E91\u7AEF\u6CA1\u6709\u8FD4\u56DE\u6709\u6548\u7684\u65B0\u4F1A\u8BDD\u6807\u8BC6");X(f=>[...f.filter(l=>U(l?.sessionId)!==y),{sessionId:y,title:U(i?.title)||"\u65B0\u4F1A\u8BDD"}]),await be(y)}catch(i){if(!M.current)return;k("error"),A(i?.message||"\u65B0\u4F1A\u8BDD\u521B\u5EFA\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5")}}},[K,be]),S=s(async()=>{if(k("loading"),A(""),!!M.current)try{let i=await K("personal-assistant.sessions.list");if(!M.current)return;if(!Array.isArray(i?.sessions))throw Ye("PERSONAL_ASSISTANT_SESSION_LIST_INVALID","\u4E91\u7AEF\u4F1A\u8BDD\u76EE\u5F55\u683C\u5F0F\u65E0\u6548\uFF0C\u8BF7\u91CD\u8BD5");let y=new Set;if(i.sessions.some(I=>{let v=U(I?.sessionId);return!I||typeof I!="object"||!v||y.has(v)?!0:(y.add(v),!1)}))throw Ye("PERSONAL_ASSISTANT_SESSION_LIST_INVALID","\u4E91\u7AEF\u4F1A\u8BDD\u76EE\u5F55\u5305\u542B\u65E0\u6548\u4F1A\u8BDD\uFF0C\u8BF7\u91CD\u8BD5");let f=i.sessions;O(U(i.runtimeInstanceId)),we(U(i.stateStorage)),X(f);let l=Cn(h);if(l&&!f.some(I=>U(I.sessionId)===l))throw Ye("PERSONAL_ASSISTANT_SESSION_STATE_MISSING","\u4E91\u7AEF\u5386\u53F2\u4F1A\u8BDD\u6682\u65F6\u4E0D\u53EF\u89C1\uFF0C\u8BF7\u68C0\u67E5\u5B9E\u4F8B\u72B6\u6001\u540E\u91CD\u8BD5\uFF0C\u6216\u624B\u52A8\u9009\u62E9\u4F1A\u8BDD");if(f.length>0){let I=f.find(v=>U(v.sessionId)===l)||f[0];await be(U(I.sessionId));return}await We()}catch(i){if(!M.current)return;k("error"),A(i?.message||"\u4F1A\u8BDD\u901A\u9053\u6682\u65F6\u4E0D\u53EF\u7528")}},[K,We,be,h]);o(()=>(M.current=!0,S(),()=>{M.current=!1,de.current&&(clearTimeout(de.current),de.current=null)}),[S]),o(()=>{if(x!=="ready"||!P)return;let i=!1,y=null,f=async()=>{try{let l=await K("personal-assistant.session.events",{sessionId:P,cursor:ye.current});if(i)return;if(!l||typeof l!="object"||Array.isArray(l)||!Array.isArray(l.events)||!Array.isArray(l.turns)||!Number.isSafeInteger(l.cursor))throw Ye("PERSONAL_ASSISTANT_SESSION_EVENTS_INVALID","\u4E91\u7AEF\u4F1A\u8BDD\u589E\u91CF\u683C\u5F0F\u65E0\u6548\uFF0C\u8BF7\u91CD\u65B0\u540C\u6B65");if(l.cursor<ye.current)throw Ye("SESSION_CURSOR_STALE","\u4F1A\u8BDD\u65E5\u5FD7\u5DF2\u66F4\u65B0\uFF0C\u8BF7\u91CD\u65B0\u540C\u6B65",409);ye.current=l.cursor,_e(l.events),pe(l.turns.some(G=>["queued","running"].includes(G.status)));let I=l.turns.findLast(G=>["queued","running"].includes(G.status)),v={cloud_computer:"\u64CD\u4F5C\u4E91\u7535\u8111",cloud_workspace:"\u5904\u7406\u4E91\u7AEF\u6587\u4EF6",cloud_bash:"\u6267\u884C\u4E91\u7AEF\u547D\u4EE4",cloud_run_code:"\u8FD0\u884C\u4E91\u7AEF\u4EE3\u7801",assistant_schedule:"\u8BBE\u7F6E\u4E91\u7AEF\u4EFB\u52A1"},B=I?.progress?.tool;Se(B?`${I.progress.state==="running"?"\u6B63\u5728":"\u5DF2\u5B8C\u6210"}${v[B]||(B.startsWith("cloud_browser_")?"\u64CD\u4F5C\u4E91\u7AEF\u6D4F\u89C8\u5668":"\u6267\u884C\u5DE5\u5177")}`:"");let Ae=l.turns.filter(G=>["failed","interrupted","cancelled"].includes(G.status)&&!En.has(String(G.error||""))).map(G=>({type:"step",id:`turn-status-${G.turnId}`,text:`\u4EFB\u52A1${G.status==="failed"?"\u5931\u8D25":"\u5DF2\u4E2D\u65AD"}\uFF1A${An(G.error)}`}));_e(Ae),A("")}catch(l){if(!i){if(l.code==="SESSION_CURSOR_STALE"||l.code==="PERSONAL_ASSISTANT_SESSION_EVENTS_INVALID"){be(P);return}A(l.message||"\u4E91\u7AEF\u8FDE\u63A5\u4E2D\u65AD\uFF0C\u6B63\u5728\u6062\u590D\uFF1B\u4EFB\u52A1\u4E0D\u4F1A\u6539\u5230\u672C\u673A\u6267\u884C")}}i||(y=setTimeout(f,600))};return y=setTimeout(f,200),()=>{i=!0,clearTimeout(y)}},[x,P,K,_e,be]),o(()=>{let i=fe.current;i&&ge.current&&(i.scrollTop=i.scrollHeight)},[C,se]);let Te=async i=>{let y=Array.from(i.target.files||[]);i.target.value="";let f=[];for(let l of y.slice(0,4)){if(!l||l.size>512*1024){A("\u6BCF\u4E2A\u9644\u4EF6\u6700\u591A 512 KiB\uFF0C\u8BF7\u5148\u538B\u7F29\u6216\u62C6\u5206\u6587\u4EF6");continue}let I=await new Promise(v=>{let B=new FileReader;B.onload=()=>v(String(B.result||"")),B.onerror=()=>v(""),B.readAsDataURL(l)});I&&f.push({id:`${Date.now()}-${l.name}`,name:l.name,mimeType:l.type||"application/octet-stream",size:l.size,dataUrl:I})}f.length&&ue(l=>[...l,...f].slice(0,4))},V=i=>{ce.current=i,le(i)},et=()=>{de.current&&(clearTimeout(de.current),de.current=null)},Le=i=>Number(i?.status)===409||/SESSION_BUSY|active turn|正忙|处理中/u.test(`${i?.code||""} ${i?.message||""}`),$=async(i,{restoreDraft:y=!1}={})=>{F.current.set(i.clientTurnId,i),ge.current=!0,Me(!0),A(""),pe(!0),N(l=>l.some(I=>I.clientTurnId===i.clientTurnId)?l.map(I=>I.clientTurnId===i.clientTurnId?{...I,status:"pending"}:I):[...l,{id:`local-user-${i.clientTurnId}`,clientTurnId:i.clientTurnId,role:"user",text:i.text,done:!1,status:"pending"}]);let f=i;try{let l=Array.isArray(f.attachments)?f.attachments:[];if(l.length===0&&Array.isArray(f.uploads)&&f.uploads.length>0){let v=[];for(let B of f.uploads)v.push(await K("personal-assistant.file.upload",{sessionId:f.sessionId,name:B.name,dataUrl:B.dataUrl}));l=v.map(({path:B,name:Ae,mediaType:G,bytes:Be})=>({path:B,name:Ae,mediaType:G,bytes:Be})),f={...f,attachments:l,uploads:[]},F.current.set(f.clientTurnId,f)}let I=await K("personal-assistant.turn.submit",{sessionId:f.sessionId,text:f.text,clientTurnId:f.clientTurnId,attachments:l});return M.current?(F.current.delete(f.clientTurnId),N(v=>v.map(B=>B.clientTurnId===f.clientTurnId?{...B,status:"accepted",turnId:I.turnId}:B)),{ok:!0,item:f}):{ok:!0,item:f}}catch(l){return M.current?(pe(Le(l)),y&&!Le(l)&&L(I=>I||f.text),N(I=>I.map(v=>v.clientTurnId===f.clientTurnId?{...v,status:"failed",failure:l.message||"\u53D1\u9001\u7ED3\u679C\u5F85\u786E\u8BA4\uFF0C\u91CD\u8BD5\u5C06\u590D\u7528\u539F\u6807\u8BC6"}:v)),{ok:!1,failure:l,item:f}):{ok:!1,failure:l,item:f}}finally{M.current&&Me(!1)}},Ce=(i,y)=>{let f=(i.attempts||0)+1;if(F.current.delete(i.clientTurnId),N(I=>I.filter(v=>v.clientTurnId!==i.clientTurnId)),f>Tn){oe(`\u6392\u961F\u6D88\u606F\u591A\u6B21\u672A\u53D1\u51FA\uFF08${y?.message||"\u4E91\u7535\u8111\u4ECD\u5FD9"}\uFF09\uFF0C\u5DF2\u653E\u56DE\u8F93\u5165\u6846\uFF0C\u8BF7\u624B\u52A8\u91CD\u8BD5`),L(I=>I||i.text);return}V([{...i,attempts:f},...ce.current]);let l=(Mt*Math.min(f,3)/1e3).toFixed(1);oe(`\u4E91\u7535\u8111\u4ECD\u5728\u5904\u7406\u4E0A\u4E00\u8F6E\uFF0C\u6D88\u606F\u5DF2\u6392\u961F\uFF0C\u7EA6 ${l} \u79D2\u540E\u81EA\u52A8\u91CD\u53D1`),et(),de.current=setTimeout(()=>{de.current=null,Qe(!0)},Mt*Math.min(f,3))},Qe=async i=>{let y=Ie.current;if(H.current||!M.current||z.current!=="ready"||!y||ke.current||!i&&je.current)return!1;let f=ce.current[0];if(!f)return!1;if(f.sessionId!==y)return V([]),oe("\u4F1A\u8BDD\u5DF2\u53D8\u5316\uFF0C\u6392\u961F\u6D88\u606F\u672A\u53D1\u9001"),!1;H.current=!0,V(ce.current.slice(1));try{let l=await $(f);return l.ok?!0:(Le(l.failure)?Ce(l.item||f,l.failure):oe(`\u6392\u961F\u6D88\u606F\u53D1\u9001\u5931\u8D25\uFF1A${l.failure?.message||"\u8BF7\u70B9\u51FB\u91CD\u8BD5"}`),!1)}finally{H.current=!1}},Oe=i=>{F.current.delete(i),V(ce.current.filter(y=>y.clientTurnId!==i)),oe("\u5DF2\u64A4\u56DE\u6392\u961F\u6D88\u606F")},Pe=async(i=null)=>{if(x!=="ready"||!P)return;if(i){re||$(i,{restoreDraft:!0});return}let y=q.trim()||(ee.length?"\u8BF7\u67E5\u770B\u9644\u4EF6\u3002":"");if(!y)return;let f=ee.map(({name:I,mimeType:v,size:B,dataUrl:Ae})=>({name:I,mimeType:v,size:B,dataUrl:Ae}));if(re||se){V([...ce.current,{clientTurnId:crypto.randomUUID(),text:y,sessionId:P,uploads:f,attempts:0,queuedAt:Date.now()}]),ge.current=!0,L(""),ue([]),A(""),oe("");return}L(""),ue([]),A(""),oe("");let l=await $({clientTurnId:crypto.randomUUID(),text:y,sessionId:P,uploads:f,attempts:0},{restoreDraft:!0});!l.ok&&Le(l.failure)&&Ce(l.item,l.failure)};o(()=>{if(x!=="ready"||!P||re||se||W.length===0)return;let i=setTimeout(()=>{Qe(!1)},kn);return()=>clearTimeout(i)},[x,P,re,se,W]),o(()=>{if(W.length===0||typeof window>"u"||typeof window.addEventListener!="function")return;let i=y=>{y.preventDefault(),y.returnValue=""};return window.addEventListener("beforeunload",i),()=>window.removeEventListener("beforeunload",i)},[W.length]);let Ee=[P?"\u5F53\u524D\u52A9\u7406\u7EBF\u7A0B\u5DF2\u6301\u4E45\u5316":"",ve?`\u8FD0\u884C\u5B9E\u4F8B ${ve}`:"",D?`\u72B6\u6001 ${D}`:""].filter(Boolean).join(" \xB7 "),he=n("header",{style:T.header,"data-window-drag":""},n("h1",{style:T.title},"\u4E2A\u4EBA\u52A9\u7406"),n("span",{style:T.status,title:Ee||void 0},x==="ready"?"\u4E91\u7AEF\u5E38\u9A7B\uFF0C\u5173\u6389\u7A97\u53E3\u4E5F\u4F1A\u7EE7\u7EED":x==="loading"?"\u6B63\u5728\u8FDE\u63A5\u2026":"\u8FDE\u63A5\u4E0D\u53EF\u7528"),n("span",{style:T.spacer}),n("button",{type:"button","data-window-drag-recall":"",disabled:x==="loading"||re||se||W.length>0,onClick:()=>{We()},"aria-label":"\u5F00\u59CB\u65B0\u4EFB\u52A1",title:W.length>0?"\u8BF7\u7B49\u5F85\u6392\u961F\u6D88\u606F\u53D1\u9001\u540E\u518D\u5F00\u59CB\u65B0\u4EFB\u52A1":"\u5F00\u59CB\u4E00\u4E2A\u65B0\u7684\u52A9\u7406\u4EFB\u52A1\u7EBF\u7A0B",style:T.ghost},"\u65B0\u4EFB\u52A1"),u?n("button",{type:"button","data-window-drag-recall":"",onClick:u,"aria-label":"\u6253\u5F00\u4E91\u7535\u8111\u4FA7\u680F",title:"\u6253\u5F00\u6216\u91CD\u65B0\u6253\u5F00\u4E91\u7535\u8111\u4FA7\u680F",style:{...T.ghost,display:"inline-flex",alignItems:"center",gap:6}},n("svg",{width:16,height:16,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.6,"aria-hidden":!0},n("rect",{x:3,y:4,width:18,height:13,rx:2}),n("path",{d:"M8 21h8M12 17v4"})),"\u4E91\u7535\u8111"):null);return n("section",{"data-personal-assistant-conversation":"true","data-agent-id":U(c?.agentId)||void 0,"data-bot-id":U(c?.botId)||void 0,"data-session-id":P||void 0,"data-runtime-instance-id":ve||void 0,"data-state-storage":D||void 0,style:T.page,onClick:async i=>{let y=i.target.closest?.('a[href^="cloud-file:"]');if(y){i.preventDefault();try{let f=await K("personal-assistant.file.download",{sessionId:P,path:decodeURIComponent(y.getAttribute("href").slice(11))}),l=Uint8Array.from(atob(f.data),B=>B.charCodeAt(0)),I=URL.createObjectURL(new Blob([l],{type:"application/octet-stream"})),v=document.createElement("a");v.href=I,v.download=f.name,v.click(),setTimeout(()=>URL.revokeObjectURL(I),1e3)}catch(f){A(f.message||"\u4E91\u7AEF\u6587\u4EF6\u4E0B\u8F7D\u5931\u8D25")}}}},he,n("style",null,"@keyframes pa-awaiting { 0%, 100% { opacity: 0.35 } 50% { opacity: 1 } }"),_&&C.length>0?n("div",{role:"alert",style:{padding:"8px 16px",background:"#fff0d6",display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},n("span",null,_),P?n("button",{type:"button",style:T.ghost,disabled:x==="loading",onClick:()=>{be(P)}},"\u91CD\u65B0\u540C\u6B65\u4F1A\u8BDD"):null):null,n("div",{ref:fe,"data-personal-assistant-messages":"true",style:T.scroller,onScroll:i=>{let y=i.currentTarget;ge.current=y.scrollHeight-y.clientHeight-y.scrollTop<64}},n("div",{style:T.thread},C.length===0?n("div",{style:{...T.status,paddingTop:40,textAlign:"center"}},x==="error"?n("div",{style:{...T.centeredInner,margin:"0 auto"}},n("strong",null,"\u6682\u65F6\u8FDE\u4E0D\u4E0A\u4E2A\u4EBA\u52A9\u7406"),n("span",null,_||"\u8BF7\u7A0D\u540E\u91CD\u8BD5"),n("button",{style:T.ghost,onClick:()=>{S()}},"\u91CD\u8BD5")):x==="loading"?"\u6B63\u5728\u8FDE\u63A5\u4E2A\u4EBA\u52A9\u7406\u2026":vn):null,C.map(i=>{if(i.role==="step")return n("div",{key:i.id,style:T.step},`\xB7 ${i.text}`);let y=i.role==="user";return n("div",{key:i.id,style:y?T.rowUser:T.row},n("span",{style:T.who},y?"\u4F60":"\u52A9\u7406"),n("div",{style:y?T.bubbleUser:T.bubble},y?i.text||"\u2026":In(n,i.text,T,r)),i.status==="failed"?n("button",{onClick:()=>{Pe(F.current.get(i.clientTurnId))},disabled:re},`${i.failure} \xB7 \u91CD\u8BD5\u53D1\u9001`):null)}),se?n("div",{key:"awaiting",style:T.row},n("span",{style:T.who},"\u52A9\u7406"),n("div",{style:{...T.bubble,color:"var(--dsw-alias-label-secondary, #536174)"}},n("span",{style:T.pulse},Ve||"\u6B63\u5728\u5904\u7406\u2026"))):null,W.map(i=>n("div",{key:`queued-${i.clientTurnId}`,style:T.rowUser},n("span",{style:T.who},"\u4F60 \xB7 \u6392\u961F\u4E2D"),n("div",{style:T.queueBubble},`${i.text}${i.uploads?.length?`\uFF08${i.uploads.length} \u4E2A\u9644\u4EF6\u5F85\u53D1\uFF09`:""}`),n("div",{style:T.queueRow},n("span",{style:T.queueHint},i.attempts?"\u4E91\u7535\u8111\u4ECD\u5728\u5904\u7406\u4E0A\u4E00\u8F6E\uFF0C\u7A0D\u540E\u81EA\u52A8\u91CD\u53D1":"\u5DF2\u6392\u961F\uFF0C\u672C\u8F6E\u7ED3\u675F\u540E\u53D1\u9001"),n("button",{type:"button","aria-label":`\u64A4\u56DE\u6392\u961F\u6D88\u606F\uFF1A${i.text.slice(0,24)}`,title:"\u64A4\u56DE\u8FD9\u6761\u6392\u961F\u6D88\u606F",style:T.queueCancel,onClick:()=>Oe(i.clientTurnId)},jt(n),"\u64A4\u56DE")))))),n("div",{"data-personal-assistant-composer":"true",style:T.composer},Ne?n("div",{role:"status",style:T.queueNotice},Ne):null,n("div",{style:T.composerInner},ee.length>0?n("div",{style:T.attachRow},ee.map(i=>n("span",{key:i.id,style:T.attach},i.mimeType.startsWith("image/")?n("img",{src:i.dataUrl,alt:"",style:T.attachThumb}):null,n("span",{style:T.attachName},i.name),n("button",{"aria-label":`\u79FB\u9664 ${i.name}`,style:{...T.iconButton,width:16,height:16,border:"none"},onClick:()=>ue(y=>y.filter(f=>f.id!==i.id))},jt(n))))):null,n("textarea",{"aria-label":"\u7ED9\u4E2A\u4EBA\u52A9\u7406\u53D1\u6D88\u606F",value:q,rows:1,style:T.textarea,placeholder:x!=="ready"?"\u4E91\u7AEF\u6682\u672A\u8FDE\u63A5\uFF0C\u53EF\u5148\u5199\u4E0B\u6D88\u606F":re||se?"\u672C\u8F6E\u8FDB\u884C\u4E2D\uFF1A\u73B0\u5728\u53D1\u9001\u4F1A\u6392\u961F\uFF0C\u672C\u8F6E\u7ED3\u675F\u540E\u81EA\u52A8\u53D1\u51FA":"\u7ED9\u4E2A\u4EBA\u52A9\u7406\u53D1\u6D88\u606F\uFF0CEnter \u53D1\u9001\uFF0CShift+Enter \u6362\u884C",onChange:i=>L(i.target.value),onKeyDown:i=>{x==="ready"&&i.key==="Enter"&&!i.shiftKey&&!i.nativeEvent?.isComposing&&(i.preventDefault(),Pe())}}),n("div",{style:T.composerBar},n("button",{"aria-label":"\u6DFB\u52A0\u9644\u4EF6",style:T.iconButton,disabled:x!=="ready"||re,title:"\u4E0A\u4F20\u5230\u4E91\u7535\u8111\uFF1A\u6700\u591A 4 \u4E2A\u6587\u4EF6\uFF0C\u6BCF\u4E2A 512 KiB",onClick:()=>Ke.current?.click()},Nn(n)),n("input",{ref:Ke,type:"file",multiple:!0,accept:"image/*,.txt,.md,.json,.pdf",style:{display:"none"},onChange:Te}),n("span",{style:T.spacer}),W.length>0?n("span",{role:"status",style:T.queueBadge},`\u6392\u961F\u4E2D ${W.length}`):null,n("button",{"aria-label":W.length>0?`\u53D1\u9001\u6D88\u606F\uFF08\u6392\u961F\u4E2D ${W.length} \u6761\uFF09`:"\u53D1\u9001\u6D88\u606F",title:re||se?"\u672C\u8F6E\u8FDB\u884C\u4E2D\uFF1A\u53D1\u9001\u540E\u4F1A\u6392\u961F\uFF0C\u672C\u8F6E\u7ED3\u675F\u540E\u81EA\u52A8\u53D1\u51FA":"\u53D1\u9001\u6D88\u606F",disabled:x!=="ready"||!q.trim()&&ee.length===0,style:x!=="ready"||!q.trim()&&ee.length===0?{...T.send,...T.sendDisabled}:re||se?T.sendQueued:T.send,onClick:()=>{Pe()}},Dn(n))))))}var Ht="personal-assistant-computer",Ln="personal-assistant",Kt="\u5F53\u524D Studio \u7684\u539F\u751F\u4FA7\u680F\u7EC4\u4EF6\u9700\u8981\u66F4\u65B0\uFF0C\u8BF7\u5B89\u88C5\u672C\u6B21\u968F\u63D2\u4EF6\u63D0\u4F9B\u7684\u5BBF\u4E3B\u7EC4\u4EF6\u5305\u3002",Pn=()=>Object.assign(new Error(Kt),{code:"PERSONAL_ASSISTANT_NATIVE_SIDEBAR_REQUIRED"});function Bn(t){return t.workbench.render(t)}function Vt({sidebarRight:t,slots:d,panelId:c=Ln}={}){let r=typeof t?.registerPanelSurface=="function"&&typeof t?.openPanelTab=="function"&&typeof t?.setPanelExpanded=="function"&&typeof d?.inject=="function"&&typeof d?.register=="function",u=new Set,n,s=!1,o=Object.freeze({binding:void 0}),b=()=>{o=Object.freeze({binding:n});for(let A of[...u])A()},g=()=>{if(!r)throw Pn();if(s)throw new Error("\u4E91\u7535\u8111\u5DE5\u4F5C\u9762\u677F\u5DF2\u5173\u95ED")},h,x,k=()=>t.openPanelTab(c,Ht),_={available:r,unavailableReason:r?null:Kt,subscribe:A=>(u.add(A),()=>u.delete(A)),getSnapshot:()=>o,bind(A,J){if(g(),!A?.agentId||!A?.botId||typeof J!="function")throw new Error("\u4E91\u7AEF\u52A9\u7406\u5C1A\u672A\u8FDE\u63A5");n&&(n.scope.agentId!==A.agentId||n.scope.botId!==A.botId)&&(h(),h=t.registerPanelSurface(c)),n=Object.freeze({scope:Object.freeze({...A}),request:J}),b(),k()},open(){g(),n&&(k(),t.setPanelExpanded(c,!0))},collapse(){g(),t.setPanelExpanded(c,!1)},dispose(){s||(s=!0,x?.(),h?.(),u.clear())}};return r&&(h=t.registerPanelSurface(c),x=d.inject("sidebar.right.panel.tab",()=>d.register({name:"sidebar.right.panel.tab",key:Ht,inject:()=>({workbench:_})},Bn))),_}function qt({React:t,workbench:d,Panel:c,active:r=!0,fullscreen:u=!1}){let{createElement:n,useSyncExternalStore:s}=t,o=s(d.subscribe,d.getSnapshot,d.getSnapshot);if(!r||!o.binding)return null;let{scope:b,request:g}=o.binding;return n(c,{key:`${b.agentId}:${b.botId}:${b.sessionId||""}`,request:g,initialBotId:b.botId,initialSessionId:b.sessionId,agentId:b.agentId,variant:"native-tab",active:r,nativeFullscreen:u})}var zn="__directory__";function bt(t){if(!Array.isArray(t)||t.length>128)throw new TypeError("\u52A9\u7406\u76EE\u5F55\u683C\u5F0F\u65E0\u6548");let d=new Set;return t.map(c=>{let r=String(c?.botId||"").trim(),u=String(c?.displayName||r).trim();if(!r||r.length>64||/[\u0000-\u001f]/u.test(r)||r===zn||d.has(r)||!u||u.length>256)throw new TypeError("\u52A9\u7406\u76EE\u5F55\u683C\u5F0F\u65E0\u6548");return d.add(r),{botId:r,displayName:r==="default"&&u==="Personal Assistant"?"\u9ED8\u8BA4\u52A9\u7406":r==="researcher"&&u==="Researcher"?"\u7814\u7A76\u52A9\u7406":u}})}function ht(t,d=""){let c=bt(t),r=String(d||"").trim(),u=r?c.find(n=>n.botId===r):c.find(n=>n.botId==="default")||(c.length===1?c[0]:void 0);if(!u)throw Object.assign(new Error("\u4E91\u7AEF\u52A9\u7406\u7ED1\u5B9A\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"),{code:"PERSONAL_ASSISTANT_BINDING_UNAVAILABLE"});return u.botId}var wt=class extends Error{constructor(){super("Personal Assistant gateway is not connected"),this.name="PersonalAssistantGatewayUnavailableError",this.code="PERSONAL_ASSISTANT_GATEWAY_UNAVAILABLE"}};var Gt=Object.freeze(["slots","connection","sidebarRight"]),mt="personal-assistant",Jn=Object.freeze({enabled:!1,autoConnect:!1}),at="personal-assistant-computer",Je="0.1.12 @ 2026-11-02T10:01:10.557Z",Yt=12e3,He;function Zt(t){He=t}var Jt;function en(t){Jt=t&&typeof t.MarkdownText=="function"?t:void 0}var Q={background:"var(--dsw-alias-bg-layer-1, #fff)",color:"var(--dsw-alias-label-primary, #17202c)",border:"1px solid var(--dsw-alias-border-default, #d8dee8)"},xt=t=>typeof t?.message=="string"&&t.message&&!/^(fetch failed|Failed to fetch)$/u.test(t.message)?t.message.slice(0,180):"\u4E91\u7535\u8111\u8FDE\u63A5\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5",Qt=t=>t?.code==="PERSONAL_ASSISTANT_DIRECTORY_UNAVAILABLE"&&Number(t?.status)===409?"\u5F53\u524D\u4E91\u7AEF\u7248\u672C\u5C1A\u4E0D\u652F\u6301\u52A9\u7406\u5217\u8868\uFF0C\u8BF7\u66F4\u65B0\u4E91\u7AEF\u52A9\u7406\u540E\u91CD\u8BD5":"\u8FDE\u63A5\u6682\u65F6\u4E0D\u53EF\u7528\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5",Un=t=>Number(t?.status)===409&&["PERSONAL_ASSISTANT_DIRECTORY_UNSUPPORTED","PERSONAL_ASSISTANT_DIRECTORY_UNAVAILABLE"].includes(t?.code);function St(t){let d=typeof t?.reason=="string"?t.reason:"",c=Array.isArray(t?.candidates)?t.candidates.filter(n=>typeof n?.agentId=="string"&&n.agentId):[],r={id:"check",label:"\u68C0\u67E5\u5F00\u901A\u72B6\u6001"};return c.length>0?{tone:"reuse",title:"\u53D1\u73B0\u5DF2\u5F00\u901A\u7684\u4E2A\u4EBA\u52A9\u7406",detail:`\u8D26\u53F7\u4E0B\u5DF2\u6709 ${c.length} \u4E2A\u4E2A\u4EBA\u52A9\u7406\u3002\u4E00\u4E2A\u5B50\u8D26\u53F7\u53EA\u9700\u8981\u4E00\u4E2A\uFF0C\u76F4\u63A5\u8FDE\u63A5\u5373\u53EF\u590D\u7528\uFF0C\u4E0D\u4F1A\u91CD\u590D\u521B\u5EFA\u3002`,actions:[{id:"connect",label:"\u8FDE\u63A5\u5DF2\u53D1\u73B0\u7684\u4E2A\u4EBA\u52A9\u7406",primary:!0},r]}:d==="needs-create"?{tone:"create",title:"\u5F00\u901A\u4E2A\u4EBA\u52A9\u7406",detail:"\u4E00\u4E2A\u5B50\u8D26\u53F7\u53EF\u5F00\u901A\u4E00\u4E2A\u4E2A\u4EBA\u52A9\u7406\u3002\u5F00\u901A\u540E\u4F1A\u5F97\u5230\u4E00\u4F4D\u4E91\u7AEF\u6301\u7EED\u8FD0\u884C\u7684\u52A9\u7406\u548C\u4E00\u53F0\u4E13\u5C5E\u4E91\u7535\u8111\uFF0C\u5173\u6389 Studio \u4E5F\u4F1A\u7EE7\u7EED\u5DE5\u4F5C\u3002",actions:[{id:"create",label:"\u5F00\u901A\u4E2A\u4EBA\u52A9\u7406",primary:!0},r]}:d==="credential-unavailable"?{tone:"reuse",title:"\u6B63\u5728\u6062\u590D\u8FDE\u63A5\u51ED\u8BC1",detail:"\u4E2A\u4EBA\u52A9\u7406\u5B9E\u4F8B\u5DF2\u7ECF\u5728\u8D26\u53F7\u4E0B\uFF0C\u4F46\u4E91\u7AEF\u6682\u65F6\u6CA1\u6709\u8FD4\u56DE\u8FDE\u63A5\u51ED\u8BC1\u3002\u91CD\u65B0\u83B7\u53D6\u5373\u53EF\u590D\u7528\u73B0\u6709\u5B9E\u4F8B\uFF0C\u4E0D\u9700\u8981\u91CD\u65B0\u5F00\u901A\u3002",actions:[{id:"connect",label:"\u91CD\u65B0\u83B7\u53D6\u8FDE\u63A5\u51ED\u8BC1",primary:!0},r]}:{tone:"retry",title:"\u6682\u65F6\u8BFB\u4E0D\u5230\u5F00\u901A\u72B6\u6001",detail:`${typeof t?.detail=="string"&&t.detail?t.detail:""}\u8BF7\u5148\u786E\u8BA4 Studio \u5DF2\u767B\u5F55\u4E91\u7AEF\u8D26\u53F7\uFF0C\u518D\u91CD\u65B0\u68C0\u67E5\u4E00\u6B21\uFF1B\u786E\u8BA4\u8D26\u53F7\u4E0B\u786E\u5B9E\u6CA1\u6709\u4E2A\u4EBA\u52A9\u7406\u540E\u518D\u5F00\u901A\uFF0C\u907F\u514D\u91CD\u590D\u521B\u5EFA\u3002`,actions:[r,{id:"create",label:"\u786E\u8BA4\u672A\u5F00\u901A\u540E\u5F00\u901A",primary:!1}]}}var tn=t=>t==="reuse"?["\u786E\u8BA4\u8D26\u53F7\u4E0B\u7684\u4E2A\u4EBA\u52A9\u7406\u5B9E\u4F8B","\u76F4\u63A5\u8FDE\u63A5\u5373\u53EF\u590D\u7528\uFF0C\u4E0D\u4F1A\u91CD\u590D\u521B\u5EFA","\u9700\u8981\u770B\u753B\u9762\u6216\u52A8\u624B\u65F6\uFF0C\u6253\u5F00\u300C\u4E91\u7535\u8111\u300D\u63A5\u7BA1"]:["\u767B\u5F55 Studio \u4E91\u7AEF\u8D26\u53F7\uFF0C\u5F00\u901A\u4E2A\u4EBA\u52A9\u7406\uFF08\u7EA6 1\u20132 \u5206\u949F\uFF09","\u8FDE\u63A5\u540E\u5373\u53EF\u5728\u300C\u4E2A\u4EBA\u52A9\u7406\u300D\u9875\u5BF9\u8BDD\uFF0C\u4E91\u7AEF 7\xD724 \u8FD0\u884C","\u9700\u8981\u770B\u753B\u9762\u6216\u52A8\u624B\u65F6\uFF0C\u6253\u5F00\u300C\u4E91\u7535\u8111\u300D\u63A5\u7BA1"],j={page:{flex:"1 1 auto",minHeight:0,overflowY:"auto",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:14,padding:"32px 20px",textAlign:"center",boxSizing:"border-box"},eyebrow:{fontSize:11,letterSpacing:"0.1em",textTransform:"uppercase",color:"var(--dsw-alias-label-secondary, #536174)"},title:{margin:0,fontSize:20,fontWeight:600,letterSpacing:"-0.01em"},detail:{margin:0,maxWidth:460,lineHeight:1.75,color:"var(--dsw-alias-label-secondary, #536174)"},steps:{margin:0,padding:0,listStyle:"none",display:"flex",flexDirection:"column",gap:8,textAlign:"left",maxWidth:460},step:{display:"flex",gap:10,alignItems:"flex-start",lineHeight:1.7},stepIndex:{flex:"none",width:20,height:20,borderRadius:999,display:"grid",placeItems:"center",fontSize:12,background:"color-mix(in srgb, currentColor 10%, transparent)"},actions:{display:"flex",gap:10,flexWrap:"wrap",justifyContent:"center",alignItems:"center",marginTop:4},primary:{...Q,borderRadius:8,padding:"8px 16px",cursor:"pointer",font:"inherit",fontSize:13,fontWeight:500,border:"none",background:"var(--dsw-alias-label-primary, #17202c)",color:"var(--dsw-alias-bg-layer-1, #fff)"},ghost:{...Q,borderRadius:8,padding:"8px 14px",cursor:"pointer",font:"inherit",fontSize:13,background:"transparent"},notice:{margin:0,maxWidth:460,color:"var(--dsw-alias-label-secondary, #536174)",fontSize:12,lineHeight:1.7},diag:{alignSelf:"center",color:"var(--dsw-alias-label-tertiary, #76808e)",fontSize:11,opacity:.8,maxWidth:"100%",overflowWrap:"anywhere"}},Fn={Control:"Control_L",Meta:"Super_L",Alt:"Alt_L",Shift:"Shift_L",Enter:"Return",Escape:"Escape",Tab:"Tab",Backspace:"BackSpace",Delete:"Delete",ArrowUp:"Up",ArrowDown:"Down",ArrowLeft:"Left",ArrowRight:"Right"," ":"space"};function Xt({request:t,initialBotId:d="",openInSidebar:c=null,variant:r="page",nativeFullscreen:u=!1}={}){let n=He||globalThis.React;if(!n)return"\u4E2A\u4EBA\u52A9\u7406\u9875\u9762\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u91CD\u65B0\u6253\u5F00";let{createElement:s,useEffect:o,useRef:b,useState:g}=n,h=n.useLayoutEffect||o,[x,k]=g(null),[_,A]=g([]),[J,X]=g(""),[P,w]=g(null),[ve,O]=g(!1),[D,we]=g(d),[C,N]=g("loading"),[q,L]=g(""),[ee,ue]=g(!0),[Ke,re]=g(0),[Me,se]=g(0),[pe,Ve]=g("observe"),[Se,W]=g(null),[le,Ne]=g(""),[oe,ye]=g(""),[F,ce]=g(null),[H,de]=g(()=>ot()),[ke,je]=g(null),z=b(null),ie=b(null),M=b(null),fe=b(null),ge=b(null),Ie=b(null),K=b(null),_e=b(null),be=b(null),We=b(u);We.current=u;let S=b({mounted:!0,socket:null,generation:0,frameEpoch:0,session:null,suspended:!1,resuming:!1,pendingInputs:[],display:{width:1280,height:800},readOnly:!0,botId:D,config:null,reconnect:null,firstFrame:null,receivedSeq:-1,pendingFrame:null,decoding:!1,frames:0,lastMove:0,wheelPending:{x:0,y:0},wheelFrame:0,pressed:new Set,buttons:new Set,composition:!1,retries:0,taskId:"",mode:"control",frameMetadata:null,reconnectAllowed:!1,controlError:""});S.current.botId=D;let Te=async(e,a={})=>{if(typeof t!="function")throw new Error("Studio Host \u5C1A\u672A\u8FDE\u63A5");return t(e,a)},V=e=>{let a=S.current;return a.socket?.readyState!==1?!1:(a.socket.send(JSON.stringify(e)),!0)},et=()=>{let e=S.current;for(let a of e.pressed)z.current?.input({type:"key",action:"up",key:a});for(let a of e.buttons)z.current?.input({type:"button",action:"up",button:a});e.pressed.clear(),e.buttons.clear()},Le=()=>{for(let e of S.current.buttons)z.current?.input({type:"button",action:"up",button:e});S.current.buttons.clear()};z.current||(z.current=Ct({send:V,changed:e=>{let a=S.current;a.controlPhase=e.phase,a.readOnly=e.readOnly,a.controlEpoch=e.controlEpoch,e.phase==="controlling"&&(a.controlError=""),e.readOnly&&K.current&&(K.current.style.visibility="hidden"),e.phase==="observe"&&(a.pressed.clear(),a.buttons.clear()),a.mounted&&(ue(e.readOnly),Ve(e.phase))},failed:e=>{S.current.controlError=e||"\u63A7\u5236\u6743\u6682\u4E0D\u53EF\u7528",S.current.mounted&&L(e)}})),ie.current||(ie.current=Nt({send:V,controlEpoch:()=>z.current?.snapshot?.controlEpoch}));let $=()=>{et(),z.current.release(),S.current.pressed.clear(),S.current.buttons.clear()},Ce=()=>{let e=S.current;e.pointerFrame&&cancelAnimationFrame(e.pointerFrame),e.pointerFrame=null;let a=e.lastPointer;e.lastPointer=null,a&&(!e.readOnly||e.controlPhase==="acquiring")&&(!e.sentPointer||a.x!==e.sentPointer.x||a.y!==e.sentPointer.y)&&(z.current.input({type:"pointermove",...a}),e.sentPointer=a)},Qe=()=>{clearTimeout(S.current.reconnect),clearTimeout(S.current.firstFrame),S.current.reconnect=null,S.current.firstFrame=null},Oe=(e=!0)=>{let a=S.current;a.reconnectAllowed=!1,Qe(),$(),a.generation+=1,ie.current?.rejectAll();try{V({type:"close"}),a.socket?.close(1e3,"panel closed")}catch{}z.current.reset({readOnly:!0}),a.lastDrawnFrame=null,a.socket=null,a.session=null,a.pendingFrame=null,a.frameMetadata=null,a.readOnly=!0,ge.current?.blur(),a.suspended=!1,a.resuming=!1,a.pendingInputs=[],a.frameEpoch++,a.mounted&&ce(null),e&&a.mounted&&(N(a.config?.configured?"idle":"unconfigured"),ue(!0))},Pe=e=>{Oe(!1),ue(!0),N("closed"),L(e?.reason==="lease-lost"||Number(e?.status)===409?"\u63A7\u5236\u79DF\u7EA6\u5DF2\u5931\u6548\uFF0C\u684C\u9762\u8FDE\u63A5\u5DF2\u5173\u95ED\uFF1B\u8BF7\u91CD\u65B0\u8FDE\u63A5\u6216\u9009\u62E9\u53EA\u8BFB\u65C1\u89C2":e?.code==="DESKTOP_SESSION_NOT_FOUND"||Number(e?.status)===404?"\u684C\u9762\u4F1A\u8BDD\u5DF2\u7ED3\u675F\uFF08\u53EF\u80FD\u56E0\u7A7A\u95F2\u8D85\u65F6\uFF09\uFF0C\u8BF7\u91CD\u65B0\u8FDE\u63A5":"\u684C\u9762\u8FDE\u63A5\u5DF2\u7ED3\u675F\uFF0C\u53EF\u91CD\u65B0\u8FDE\u63A5\u4E91\u7535\u8111")},Ee=e=>{let a=S.current;if(e.type!=="pointermove"&&Ce(),a.suspended||a.resuming){if(e.type==="pointermove")return!1;let E=a.mode==="control";if(E){if(a.pendingInputs.length>=32)return Oe(),L("\u6062\u590D\u671F\u95F4\u8F93\u5165\u8FC7\u5FEB\uFF0C\u8BF7\u91CD\u65B0\u8FDE\u63A5"),!1;a.pendingInputs.push(e)}return a.resuming||Be(),E}return!a.session||a.socket?.readyState!==1?(L("\u4E91\u7535\u8111\u5C1A\u672A\u8FDE\u63A5\uFF0C\u8F93\u5165\u672A\u53D1\u9001"),!1):z.current.input(e)},he=e=>{S.current.mounted&&(ye(e),M.current&&clearTimeout(M.current),M.current=setTimeout(()=>{S.current.mounted&&ye("")},4e3))},i=e=>{let a=!1;for(let E of e)a=Ee(E)||a;return a},y=async()=>{let e=S.current,a=z.current?.snapshot;if(!e.session||e.socket?.readyState!==1)return he("\u4E91\u7535\u8111\u5C1A\u672A\u8FDE\u63A5\uFF0C\u8BF7\u5148\u6253\u5F00\u684C\u9762"),!1;if(a&&a.phase==="controlling"&&a.readOnly===!1)return!0;if(e.suspended||e.resuming)return he("\u4E91\u7535\u8111\u6B63\u5728\u6062\u590D\uFF0C\u8BF7\u7A0D\u5019\u518D\u8BD5"),!1;if(!a?.available)return he("\u5F53\u524D\u4E3A\u53EA\u8BFB\u65C1\u89C2\uFF0C\u8BF7\u5148\u6253\u5F00\u63A7\u5236\u6A21\u5F0F"),!1;if(e.controlError="",!z.current.acquire())return he("\u5F53\u524D\u65E0\u6CD5\u63A5\u7BA1\u4E91\u7535\u8111\uFF0C\u8BF7\u91CD\u8BD5"),!1;let E=Date.now()+8e3;for(;Date.now()<E;){await new Promise(Z=>setTimeout(Z,50));let p=z.current.snapshot;if(p.phase==="controlling"&&p.readOnly===!1)return!0;if(e.controlError)break}return he(e.controlError||"\u63A5\u7BA1\u4E91\u7535\u8111\u8D85\u65F6\uFF0C\u8BF7\u91CD\u8BD5"),!1},f=async()=>{if(!await y())return{ok:!1,code:"CLIPBOARD_CONTROL_REQUIRED"};let e=await ie.current.read().catch(()=>({text:""})),a=!1;if(!S.current.pressed.has("_copyShortcut")){S.current.pressed.add("_copyShortcut");try{a=i(Ot())!==!1}finally{S.current.pressed.delete("_copyShortcut")}}if(!a)return he("\u590D\u5236\u6309\u952E\u672A\u53D1\u9001\uFF0C\u8BF7\u5148\u63A5\u7BA1\u4E91\u7535\u8111\u540E\u518D\u8BD5"),{ok:!1,code:"CLIPBOARD_KEY_NOT_SENT"};let E;try{E=await Dt({readCloud:()=>ie.current.read(),beforeText:st(e)})}catch(p){return he(p?.message||"\u8BFB\u53D6\u4E91\u7535\u8111\u526A\u8D34\u677F\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5"),{ok:!1,code:p?.code||"CLIPBOARD_READ_FAILED"}}return Bt({readCloud:async()=>E,writeLocal:p=>I(p),notify:he})},l=async()=>{try{let e=await Te("personal-assistant.clipboard.read");if(typeof e?.text=="string")return e.text}catch{}return pt()},I=async e=>{try{await Te("personal-assistant.clipboard.write",{text:String(e??"")});return}catch{}await ft(String(e??""))},v=()=>gt({readLocal:()=>l(),writeCloud:e=>ie.current.write(e),sendKeys:i,ensureControl:y,notify:he}),B=e=>gt({readLocal:async()=>String(e??""),writeCloud:a=>ie.current.write(a),sendKeys:i,ensureControl:y,notify:he}),Ae=async()=>{let e=S.current;if(!e.decoding){e.decoding=!0;try{for(;e.pendingFrame;){let a=e.pendingFrame;e.pendingFrame=null;let E;try{if(E=await createImageBitmap(new Blob([a.bytes],{type:"image/jpeg"})),!e.mounted||e.suspended||a.frameEpoch!==e.frameEpoch||a.generation!==e.generation||a.seq<e.receivedSeq||!fe.current)continue;e.lastDrawnFrame=a;let p=fe.current,Z=p.getBoundingClientRect(),ae=Math.max(1,globalThis.devicePixelRatio||1);p.width=Math.max(1,Math.round(Z.width*ae)),p.height=Math.max(1,Math.round(Z.height*ae));let ne=p.getContext("2d"),Y=e.display,me=Math.min(p.width/Y.width,p.height/Y.height),Fe=Y.width*me,R=Y.height*me;ne.clearRect(0,0,p.width,p.height),ne.drawImage(E,(p.width-Fe)/2,(p.height-R)/2,Fe,R);let $e=e.firstFrame!==null;e.frames+=1,clearTimeout(e.firstFrame),e.firstFrame=null,e.retries=0,$e&&L(""),N(e.readOnly?"readonly":"ready"),re(0)}catch{e.mounted&&L("\u684C\u9762\u5E27\u65E0\u6CD5\u89E3\u7801\uFF0C\u8BF7\u91CD\u8BD5")}finally{E?.close()}}}finally{e.decoding=!1}}},G=e=>{let a=S.current;clearTimeout(a.firstFrame),a.firstFrame=null,a.suspended=!0,a.resuming=!1,a.readOnly=!0,a.pendingInputs=[],a.frameEpoch++,a.pendingFrame=null,a.frameMetadata=null,a.pressed.clear(),a.buttons.clear(),a.frames=0,se(0),ue(!0),N("dormant"),L(e?.leaseReleased===!1?"\u5DF2\u7A7A\u95F2\uFF0C\u753B\u9762\u5DF2\u6682\u505C\uFF1B\u63A7\u5236\u6743\u4ECD\u7531\u5916\u90E8\u4EFB\u52A1\u7BA1\u7406":"\u5DF2\u7A7A\u95F2\uFF0C\u63A7\u5236\u6743\u5DF2\u91CA\u653E\uFF1B\u64CD\u4F5C\u684C\u9762\u5373\u53EF\u6062\u590D")},Be=()=>{let e=S.current;if(e.resuming||!e.suspended)return;if(e.socket?.readyState!==1){Re(e.mode,!1,e.pendingInputs);return}e.resuming=!0,N("resuming"),L("\u6B63\u5728\u6062\u590D\u684C\u9762\u5E76\u68C0\u67E5\u63A7\u5236\u6743\uFF0C\u8BF7\u7A0D\u5019\u3002"),V({type:"resume",mode:e.mode,activity:!0});let a=e.generation,E=e.socket;e.firstFrame=setTimeout(()=>{e.mounted&&e.generation===a&&e.firstFrame!==null&&E.close(4e3,"resume frame timeout")},Yt)},Re=async(e="read",a=!1,E=[])=>{let p=S.current,Z=String(p.botId||"").trim();if(!p.config?.configured){N("unconfigured");return}if(!Z||!p.bots?.some(ne=>ne.botId===Z)){L("\u4E91\u7AEF\u52A9\u7406\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5");return}Oe(!1),p.pendingInputs=E,p.resuming=E.length>0;let ae=++p.generation;p.reconnectAllowed=!0,a||(p.retries=0),p.mode=e,p.taskId||=`studio-desktop-${globalThis.crypto.randomUUID()}`,p.receivedSeq=-1,p.frameMetadata=null,N(a?"reconnecting":"connecting"),L("\u9996\u6B21\u6216\u4F11\u7720\u540E\u8FDE\u63A5\u53EF\u80FD\u9700\u8981\u6570\u79D2\uFF0C\u8BF7\u7A0D\u5019\u3002");try{let ne=await Te("personal-assistant.desktop.ticket",{agentId:p.config.agentId,botId:Z,mode:e==="observe"?"control":e});if(!p.mounted||ae!==p.generation)return;let Y=new WebSocket(ne.wsUrl,["agentkit.personal-assistant.desktop.v1",`agentkit.desktop.ticket.${ne.ticket}`]);Y.binaryType="arraybuffer",p.socket=Y;let me=()=>p.mounted&&p.generation===ae;Y.onopen=()=>{if(!me()){Y.close();return}V({type:"open",botId:Z,taskId:p.taskId,mode:e,...ne.leaseId?{leaseId:ne.leaseId}:{}}),p.firstFrame=setTimeout(()=>{me()&&(L("\u4E91\u7535\u8111\u54CD\u5E94\u8F83\u6162\uFF0C\u6B63\u5728\u91CD\u65B0\u8FDE\u63A5"),Y.close(4e3,"first frame timeout"))},Yt)},Y.onmessage=Fe=>{if(!me())return;if(typeof Fe.data!="string"){let $e=p.frameMetadata;p.frameMetadata=null;let Ge=Fe.data;if(!$e||!Number.isSafeInteger($e.seq)||$e.seq<=p.receivedSeq||!(Ge instanceof ArrayBuffer)||Ge.byteLength===0||Ge.byteLength>307200||p.suspended)return;p.receivedSeq=$e.seq,p.pendingFrame={bytes:Ge,seq:$e.seq,generation:ae,frameEpoch:p.frameEpoch},Ae();return}let R;try{R=JSON.parse(Fe.data)}catch{return}if(R.type==="ready"){p.suspended=!1,p.resuming=!1,p.receivedSeq=-1,p.session=R.sessionId,p.readOnly=!!R.readOnly,p.display=ot(R.display),de(p.display),ce(R.diagnostics||null),p.mode=e,z.current.reset(R);let $e=p.pendingInputs;if(p.pendingInputs=[],p.readOnly)p.pressed.clear(),p.buttons.clear();else for(let Ge of $e)z.current.input(Ge);ue(p.readOnly),L("\u4E91\u7535\u8111\u5DF2\u8FDE\u63A5\uFF0C\u6B63\u5728\u51C6\u5907\u684C\u9762\u753B\u9762");return}if(R.type==="control"){z.current.accept(R),L("");return}if(R.type==="idle"){G(R);return}if(R.type==="frame"){R.unchanged||(p.frameMetadata=R);return}if(R.type==="clipboard.response"){ie.current?.accept(R);return}if(R.type==="closed"){R.retryable!==!0&&Pe(R);return}if(R.type==="error"){if(ie.current?.accept(R)||Number.isSafeInteger(R.controlEpoch)&&R.controlEpoch<p.controlEpoch)return;if(L(R.message||R.code||"\u4E91\u7535\u8111\u8BF7\u6C42\u5931\u8D25"),p.handoffSupported&&R.recoverable===!0){z.current.reject(R);return}if(R.recoverable===!0&&Number(R.status)===409){R.code==="DESKTOP_SESSION_IDLE"?G():(p.pendingInputs=[],p.readOnly=!0,p.pressed.clear(),p.buttons.clear(),ue(!0),N("readonly"));return}if(Number(R.status)===409&&e==="control"&&!p.session){Re(S.current.handoffSupported?"observe":"read");return}[404,409].includes(Number(R.status))||R.code==="DESKTOP_SESSION_NOT_FOUND"?Pe(R):p.session||(N("error"),Oe(!1))}},Y.onerror=()=>{me()&&L("\u684C\u9762\u901A\u9053\u6682\u65F6\u65AD\u5F00\uFF0C\u6B63\u5728\u91CD\u8FDE")},Y.onclose=Fe=>{if(!me())return;if(ie.current?.rejectAll(),p.suspended&&Fe.code!==1e3){clearTimeout(p.firstFrame),p.firstFrame=null,p.socket=null,N("dormant");return}if(p.session=null,clearTimeout(p.firstFrame),p.firstFrame=null,!p.reconnectAllowed||Fe.code===1e3){Pe();return}if(document.hidden){N("hidden");return}let R=++p.retries;if(re(R),R>5){p.reconnectAllowed=!1,N("error"),L("\u65E0\u6CD5\u8FDE\u63A5\u4E91\u7535\u8111\uFF0C\u8BF7\u68C0\u67E5\u5B9E\u4F8B\u72B6\u6001\u6216\u7F51\u7EDC\u540E\u91CD\u8BD5");return}N("reconnecting"),p.reconnect=setTimeout(()=>{Re(e,!0,p.pendingInputs)},Math.min(8e3,1e3*2**(R-1)))}}catch(ne){p.mounted&&ae===p.generation&&(N("error"),L(Qt(ne)))}},lt=async e=>{if(e?.aborted)return null;try{let a=await Te("personal-assistant.desktop.status");return a&&typeof a=="object"?a:null}catch(a){return a?.code==="PERSONAL_ASSISTANT_OPERATION_UNAVAILABLE"||a?.status===404?null:{configured:!1,reason:"unavailable",detail:xt(a),candidates:[]}}},ct=async e=>{if(!le){Ne(e),L(e==="create"?"\u6B63\u5728\u521B\u5EFA\u4E2A\u4EBA\u52A9\u7406\uFF0C\u53EF\u80FD\u9700\u8981\u51E0\u5206\u949F\u2026":"\u6B63\u5728\u83B7\u53D6\u4E91\u7AEF\u8FDE\u63A5\u51ED\u8BC1\u2026");try{await Te(`personal-assistant.desktop.${e}`),L(""),await qe()}catch(a){L(xt(a)),W(await lt().catch(()=>null))}finally{Ne("")}}},qe=async(e,a=!1)=>{Oe(!1),N("loading"),L(""),X(""),w(null);try{let E=await Te("personal-assistant.configuration");if(e?.aborted||!S.current.mounted)return;if(S.current.config=E,k(E),!E.configured){let ne=await lt(e);if(e?.aborted||!S.current.mounted)return;if(S.current.bots=[],A([]),we(""),W(ne),N("unconfigured"),ne?.configured&&!a){await qe(e,!0);return}return}W(null);let p=await Te("personal-assistant.bots.list");if(e?.aborted||!S.current.mounted)return;if(p.directoryAvailable!==!0)throw Object.assign(new Error("directory unavailable"),{code:"PERSONAL_ASSISTANT_DIRECTORY_UNAVAILABLE",status:409});let Z=bt(p.bots);S.current.bots=Z,S.current.handoffSupported=p.features?.includes("desktop-handoff/v1")===!0,A(Z);let ae=Z.length?ht(Z,d||E.botId):"";S.current.botId=ae,we(ae),N(Z.length?"idle":"empty"),ae&&["computer","native-tab"].includes(r)&&Re(S.current.handoffSupported?"observe":"read")}catch(E){if(e?.aborted||!S.current.mounted)return;Number.isInteger(E?.closeCode)&&E.closeCode>=1e3&&E.closeCode<=4999&&w(E.closeCode),S.current.bots=[],A([]),we("");let p=a?null:await lt(e).catch(()=>null);if(e?.aborted||!S.current.mounted)return;if(p?.configured){W(null),await qe(e,!0);return}if(p){W(typeof p.reason=="string"&&p.reason?p:{...p,reason:"unavailable",detail:xt(E)}),N("unconfigured");return}N("directory-error"),X(Un(E)?"\u4E91\u7AEF\u52A9\u7406\u9700\u8981\u66F4\u65B0\uFF0C\u8BF7\u66F4\u65B0\u540E\u91CD\u65B0\u8FDE\u63A5\u3002":Qt(E))}};o(()=>{let e=S.current;e.mounted=!0;let a=new AbortController;qe(a.signal);let E=setInterval(()=>{e.mounted&&se(e.frames),e.frames=0},1e3),p=()=>{document.hidden?($(),V({type:"pause"})):e.socket?.readyState===1?V({type:"resume"}):e.reconnectAllowed&&e.config?.configured&&e.session===null&&e.socket&&Re(e.mode,!0)},Z=typeof ResizeObserver=="function"?new ResizeObserver(()=>{e.lastDrawnFrame&&(e.pendingFrame=e.lastDrawnFrame,Ae())}):null;fe.current&&Z?.observe(fe.current);let ae=()=>$(),ne=Y=>{Ie.current?.contains(Y.target)||$()};return document.addEventListener("visibilitychange",p),window.addEventListener("blur",ae),document.addEventListener("pointerdown",ne,!0),()=>{e.mounted=!1,Z?.disconnect(),e.pointerFrame&&cancelAnimationFrame(e.pointerFrame),e.wheelFrame&&cancelAnimationFrame(e.wheelFrame),a.abort(),Oe(!1),clearInterval(E),document.removeEventListener("visibilitychange",p),window.removeEventListener("blur",ae),document.removeEventListener("pointerdown",ne,!0)}},[t]);let dt=e=>Tt({clientX:e.clientX,clientY:e.clientY,rect:fe.current.getBoundingClientRect(),display:S.current.display}),rn=e=>{e.preventDefault();let a=S.current,E=a.wheelPending||(a.wheelPending={x:0,y:0});a.wheelPending={x:E.x+(Number(e.deltaX)||0),y:E.y+(Number(e.deltaY)||0)},!a.wheelFrame&&(a.wheelFrame=requestAnimationFrame(()=>{if(a.wheelFrame=0,!a.mounted)return;let p=_t(a.wheelPending);a.wheelPending=p.pending,!(!p.clicks.deltaX&&!p.clicks.deltaY)&&Ee({type:"wheel",deltaX:p.clicks.deltaX,deltaY:p.clicks.deltaY})}))},It=e=>{e.preventDefault();let a=S.current,E=[1,2,3][e.button]||1;e.type==="pointerdown"?(ge.current?.focus(),fe.current?.setPointerCapture(e.pointerId),Ee({type:"button",action:"down",button:E,...dt(e)})&&a.buttons.add(E)):(Ee({type:"button",action:"up",button:E,...dt(e)}),a.buttons.delete(E),fe.current?.hasPointerCapture(e.pointerId)&&fe.current.releasePointerCapture(e.pointerId))},it=e=>{if(S.current.composition||e.isComposing||e.nativeEvent?.isComposing||e.key==="Process"||e.key==="Unidentified")return;if(Lt(e)){e.preventDefault(),v();return}if(Pt(e)){e.preventDefault(),e.type==="keydown"&&!e.repeat&&f();return}let a=e.ctrlKey||e.metaKey||e.altKey;if(e.key.length===1&&!a||e.key==="Escape"&&We.current)return;e.preventDefault();let E=Fn[e.key]||e.key;/^[A-Za-z0-9_]+$/u.test(E)&&(e.type==="keydown"?!e.repeat&&Ee({type:"key",action:"down",key:E})&&S.current.pressed.add(E):(Ee({type:"key",action:"up",key:E}),S.current.pressed.delete(E)))},ut={loading:"\u6B63\u5728\u68C0\u67E5\u52A9\u7406\u72B6\u6001",idle:"\u51C6\u5907\u8FDE\u63A5",dormant:"\u5DF2\u7A7A\u95F2",resuming:"\u6B63\u5728\u6062\u590D\u684C\u9762",unconfigured:"\u4E2A\u4EBA\u52A9\u7406\u5C1A\u672A\u5F00\u901A",empty:"\u6682\u65F6\u6CA1\u6709\u53EF\u7528\u52A9\u7406","directory-error":"\u6682\u65F6\u65E0\u6CD5\u8BFB\u53D6\u52A9\u7406\u5217\u8868",connecting:"\u6B63\u5728\u542F\u52A8\u4E91\u7535\u8111",readonly:"\u53EA\u8BFB\u65C1\u89C2",ready:"\u6B63\u5728\u63A7\u5236\u4E91\u7535\u8111",reconnecting:"\u6B63\u5728\u6062\u590D\u8FDE\u63A5",hidden:"\u753B\u9762\u5DF2\u6682\u505C",closed:"\u684C\u9762\u8FDE\u63A5\u5DF2\u7ED3\u675F",error:"\u8FDE\u63A5\u6682\u65F6\u4E0D\u53EF\u7528"}[C],ze={...Q,borderRadius:6,padding:"7px 12px",cursor:"pointer",font:"inherit"},te=["ready","readonly","hidden","reconnecting","dormant","resuming"].includes(C),De=_.length>0,Ue=Se?.reason||"",on=Array.isArray(Se?.candidates)?Se.candidates.length:0,sn=Ue==="needs-create"?"\u8FD8\u6CA1\u6709\u521B\u5EFA\u4E2A\u4EBA\u52A9\u7406":Ue==="credential-unavailable"?"\u6B63\u5728\u6062\u590D\u4E2A\u4EBA\u52A9\u7406\u7684\u8FDE\u63A5\u51ED\u8BC1":Ue==="unavailable"?"\u6682\u65F6\u65E0\u6CD5\u81EA\u52A8\u8FDE\u63A5\u4E2A\u4EBA\u52A9\u7406":"\u4E2A\u4EBA\u52A9\u7406\u5C1A\u672A\u5F00\u901A",an=Ue==="needs-create"?"\u4E91\u8D26\u53F7\u4E0B\u8FD8\u6CA1\u6709\u4E2A\u4EBA\u52A9\u7406\u5B9E\u4F8B\uFF0C\u521B\u5EFA\u540E\u5373\u53EF\u5728\u8FD9\u91CC\u8FDE\u63A5\u4E13\u5C5E\u4E91\u7535\u8111\u3002":Ue==="credential-unavailable"?"\u4E91\u7AEF\u6682\u65F6\u6CA1\u6709\u8FD4\u56DE\u8FDE\u63A5\u51ED\u8BC1\uFF0C\u53EF\u4EE5\u91CD\u65B0\u83B7\u53D6\u3002":Ue==="unavailable"?Se?.detail||"\u8BF7\u68C0\u67E5\u4E91\u7AEF\u767B\u5F55\u72B6\u6001\u540E\u91CD\u8BD5\u3002":"\u5F00\u901A\u5B8C\u6210\u540E\uFF0C\u5373\u53EF\u5728\u8FD9\u91CC\u8FDE\u63A5\u4E13\u5C5E\u4E91\u7535\u8111\u3002",ln=C==="unconfigured"?sn:C==="empty"?"\u52A9\u7406\u6B63\u5728\u51C6\u5907\u4E2D":C==="directory-error"?"\u6682\u65F6\u65E0\u6CD5\u8FDE\u63A5\u4E91\u7AEF\u52A9\u7406":"\u6B63\u5728\u68C0\u67E5\u52A9\u7406\u72B6\u6001",cn=C==="unconfigured"?an:C==="empty"?"\u4E91\u7AEF\u521D\u59CB\u5316\u5B8C\u6210\u540E\uFF0C\u53EF\u7528\u52A9\u7406\u4F1A\u663E\u793A\u5728\u8FD9\u91CC\u3002":C==="directory-error"?J:"\u8BF7\u7A0D\u5019",Xe=r==="computer"||r==="native-tab";h(()=>{if(!Xe)return;let e=_e.current;if(!e)return;let a=()=>{let p=e.getBoundingClientRect(),Z=be.current?.getBoundingClientRect?.().height||0,ae=te||De?Math.min(128,Math.max(44,Z)):0,ne=Math.max(0,p.height-(ae?ae+10:0)),Y=Rt({availableWidth:p.width,availableHeight:ne,display:H,maxWidth:1280});je(me=>Y.width>0&&Y.height>0?me&&Math.abs(me.width-Y.width)<.5&&Math.abs(me.height-Y.height)<.5?me:Y:me??null)};a();let E=typeof ResizeObserver=="function"?new ResizeObserver(a):null;return E?.observe(e),be.current&&E?.observe(be.current),()=>E?.disconnect()},[Xe,H,te,De,pe,q,oe]);let tt=C==="unconfigured"?St(Se):null,dn=e=>{e==="check"?qe():ct(e)},vt=tt?s("div",{"data-personal-assistant-onboarding":"true",style:j.page},s("div",{"data-window-drag":"",style:{display:"flex",flexDirection:"column",gap:4,alignItems:"center"}},s("div",{style:j.eyebrow},"\u4E2A\u4EBA\u52A9\u7406 \xB7 \u5F00\u901A\u5F15\u5BFC"),s("h2",{style:j.title},tt.title)),s("p",{style:j.detail},tt.detail),s("ol",{style:j.steps},tn(tt.tone).map((e,a)=>s("li",{key:e,style:j.step},s("span",{style:j.stepIndex},String(a+1)),s("span",null,e)))),s("div",{style:j.actions},tt.actions.map(e=>s("button",{key:e.id,disabled:!!le,style:e.primary?j.primary:j.ghost,onClick:()=>dn(e.id)},le===e.id?e.id==="create"?"\u6B63\u5728\u5F00\u901A\u2026":e.id==="connect"?"\u6B63\u5728\u8FDE\u63A5\u2026":"\u68C0\u67E5\u4E2D\u2026":e.label)),le?s("span",{role:"status",style:j.notice},"\u5904\u7406\u4E2D\uFF0C\u8BF7\u7A0D\u5019\u2026"):null),q?s("p",{role:"status",style:j.notice},q):null,s("details",{style:j.diag},s("summary",{style:{cursor:"pointer"}},"\u8BCA\u65AD"),s("small",{"data-personal-assistant-build":Je},`\u6784\u5EFA ${Je}`))):null,Et=s("div",{ref:Ie,"data-personal-assistant-desktop-card":Xe?"true":void 0,style:{position:"relative",background:"var(--dsw-alias-bg-layer-2, #f1f3f6)",...Xe?{...ke&&ke.width>0&&ke.height>0?{width:`${ke.width}px`,height:`${ke.height}px`}:{width:"100%",aspectRatio:`${H.width} / ${H.height}`},flex:"none",minWidth:0,borderRadius:14,overflow:"hidden",boxShadow:"0 0 0 1px var(--dsw-alias-border-default, #d8dee8), 0 8px 28px #1018280d"}:{flex:1,minHeight:240}}},["dormant","resuming"].includes(C)?s("div",{role:"status",style:{position:"absolute",inset:0,zIndex:1,pointerEvents:"none",display:"grid",placeItems:"center",padding:16,textAlign:"center",background:"color-mix(in srgb, var(--dsw-alias-bg-layer-1, #fff) 82%, transparent)",color:"var(--dsw-alias-label-primary, #17202c)"}},C==="dormant"?"\u5DF2\u7A7A\u95F2\uFF0C\u64CD\u4F5C\u684C\u9762\u5373\u53EF\u6062\u590D":"\u6B63\u5728\u6062\u590D\u684C\u9762\u2026"):null,s("canvas",{ref:fe,"aria-label":"\u4E91\u7535\u8111\u684C\u9762",tabIndex:te?0:-1,onPointerDown:It,onPointerUp:It,onPointerCancel:Le,onLostPointerCapture:Le,onPointerLeave:()=>{K.current&&(K.current.style.visibility="hidden")},onPointerMove:e=>{let a=S.current,E=e.nativeEvent?.getCoalescedEvents?.().at(-1)||e;if(K.current){let p=fe.current.getBoundingClientRect();K.current.style.transform=`translate(${E.clientX-p.left}px, ${E.clientY-p.top}px)`,K.current.style.visibility=a.readOnly?"hidden":"visible"}a.lastPointer=dt(E),a.pointerFrame||(a.pointerFrame=requestAnimationFrame(()=>{a.mounted&&Ce()}))},onContextMenu:e=>e.preventDefault(),onWheel:rn,onKeyDown:it,onKeyUp:it,style:{...Xe?{position:"absolute",inset:0}:{},width:"100%",height:"100%",display:"block",visibility:te?"visible":"hidden",pointerEvents:te?"auto":"none",touchAction:"none",cursor:ee?"default":"none"}}),s("div",{ref:K,"aria-hidden":!0,style:{position:"absolute",top:0,left:0,pointerEvents:"none",visibility:"hidden",zIndex:2,width:18,height:22}},s("svg",{viewBox:"0 0 18 22",width:18,height:22},s("path",{d:"M1 1v16l4-4 3 7 3-1-3-7h6z",fill:"#fff",stroke:"#162033",strokeWidth:1.2}))),te?null:s("div",{style:{position:"absolute",inset:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:10,padding:16,textAlign:"center"}},s("h2",{style:{margin:0,fontSize:18,fontWeight:500}},De?ut:ln),s("p",{style:{margin:0,maxWidth:380,lineHeight:1.7,color:"var(--dsw-alias-label-secondary, #536174)"}},De?q||"\u8FDE\u63A5\u540E\u5373\u53EF\u4F7F\u7528\u4E91\u7AEF\u684C\u9762\uFF0C\u5173\u95ED\u9762\u677F\u4F1A\u91CA\u653E\u672C\u6B21\u63A7\u5236\u3002":cn),!De&&C!=="loading"?s("div",{style:{display:"flex",gap:8,flexWrap:"wrap",justifyContent:"center",alignItems:"center"}},C==="unconfigured"&&Ue==="needs-create"?s("button",{style:ze,disabled:!!le,onClick:()=>{ct("create")}},le==="create"?"\u6B63\u5728\u521B\u5EFA\u2026":"\u521B\u5EFA\u4E2A\u4EBA\u52A9\u7406"):null,C==="unconfigured"&&(Ue==="credential-unavailable"||on>0)?s("button",{style:ze,disabled:!!le,onClick:()=>{ct("connect")}},le==="connect"?"\u6B63\u5728\u83B7\u53D6\u2026":Ue==="credential-unavailable"?"\u91CD\u65B0\u83B7\u53D6\u8FDE\u63A5\u51ED\u8BC1":"\u8FDE\u63A5\u5DF2\u53D1\u73B0\u7684\u4E2A\u4EBA\u52A9\u7406"):null,s("button",{style:{...ze,background:"transparent"},disabled:!!le,onClick:()=>{qe()}},"\u68C0\u67E5\u5F00\u901A\u72B6\u6001"),le?s("span",{role:"status",style:{color:"var(--dsw-alias-label-secondary, #536174)",fontSize:12}},"\u5904\u7406\u4E2D\uFF0C\u8BF7\u7A0D\u5019\u2026"):null):null),s("input",{ref:ge,"aria-label":"\u4E91\u7535\u8111\u6587\u672C\u8F93\u5165",autoComplete:"off",disabled:!te||ee&&!z.current.snapshot.available&&!(S.current.mode==="control"&&["dormant","resuming"].includes(C)),tabIndex:-1,style:{position:"absolute",width:1,height:1,opacity:0,left:0,top:0},onKeyDown:it,onKeyUp:it,onPaste:e=>{let a=e.clipboardData?.getData?.("text/plain")??"";a&&(e.preventDefault(),B(a))},onCompositionStart:()=>{S.current.composition=!0},onCompositionEnd:e=>{S.current.composition=!1;let a=e.currentTarget.value;e.currentTarget.value="",a&&Ee({type:"text",text:a})},onInput:e=>{if(S.current.composition||e.nativeEvent?.isComposing)return;let a=e.currentTarget.value;e.currentTarget.value="",a&&Ee({type:"text",text:a})}})),nt="var(--dsw-alias-label-secondary, #536174)",un={...ze,background:"transparent",color:"inherit",border:Q.border},At={...ze,borderRadius:999,padding:"7px 16px",border:"none",fontWeight:500,background:"var(--dsw-alias-label-primary, #17202c)",color:"var(--dsw-alias-bg-layer-1, #fff)"};return Xe?s("section",{"data-personal-assistant-computer":"true",style:{...Q,border:"none",height:"100%",minHeight:0,minWidth:0,display:"flex",flexDirection:"column",background:"var(--dsw-alias-bg-base, #fff)",color:"inherit",fontSize:13}},r!=="native-tab"?s("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 12px",borderBottom:Q.border}},s("strong",{style:{fontWeight:500}},"\u4E91\u7535\u8111"),s("span",{role:"status","aria-live":"polite",style:{color:nt,fontSize:12}},ut),null):null,ee&&te&&!z.current.snapshot.available?s("div",{role:"alert",style:{background:"#fff0d6",color:"#763c00",padding:"8px 12px"}},"\u53EA\u8BFB\u65C1\u89C2\uFF1A\u9F20\u6807\u548C\u952E\u76D8\u4E0D\u4F1A\u53D1\u9001\u5230\u4E91\u7535\u8111"):null,s("div",{"data-personal-assistant-desktop-layout":"true",style:{flex:1,minHeight:0,minWidth:0,overflow:"hidden",display:"flex",flexDirection:"column",alignItems:"center",gap:12,padding:"20px 16px 12px",boxSizing:"border-box"}},s("div",{ref:_e,"data-personal-assistant-desktop-stack":"true",style:{width:"100%",maxWidth:1280,minHeight:0,flex:"1 1 auto",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:10}},vt||Et,te||De?s("div",{ref:be,"data-personal-assistant-control-capsule":"true",role:"status","aria-live":"polite",style:{flex:"none",display:"flex",flexWrap:"wrap",justifyContent:"center",alignItems:"center",gap:6,width:"fit-content",maxWidth:"100%",boxSizing:"border-box",padding:"7px 12px",borderRadius:999,background:"var(--dsw-alias-bg-layer-1, #fff)",border:Q.border,boxShadow:"0 1px 4px #10182808",lineHeight:1.5}},!te&&De?s("button",{style:At,disabled:["connecting","resuming"].includes(C),onClick:()=>{Re(S.current.handoffSupported?"observe":"read")}},C==="connecting"?"\u6B63\u5728\u542F\u52A8\u2026":"\u91CD\u65B0\u8FDE\u63A5"):null,te&&ee?s("span",{style:{color:nt,fontSize:12}},pe==="acquiring"?"\u6B63\u5728\u63A5\u7BA1\u2026":pe==="releasing"?"\u6B63\u5728\u4EA4\u8FD8\u2026":"\u52A9\u7406\u6B63\u5728\u4F7F\u7528 \xB7 \u70B9\u753B\u9762\u5373\u53EF\u63A5\u7BA1"):null,te&&ee&&z.current.snapshot.available?s("button",{style:{...At,padding:"3px 9px",fontSize:11},onClick:()=>z.current.acquire()},"\u63A5\u7BA1"):null,te&&!ee?s("span",{style:{color:nt,fontSize:12}},"\u60A8\u62E5\u6709\u63A7\u5236\u6743 \xB7 \u70B9\u753B\u9762\u5916\u91CA\u653E"):null,te&&!ee?s("button",{style:{...un,padding:"3px 9px",fontSize:11},onClick:$},"\u4EA4\u8FD8"):null,te&&q?s("span",{style:{color:nt,fontSize:12}},q):null,te&&oe?s("span",{role:"status","aria-live":"polite",style:{color:nt,fontSize:12}},oe):null):null)),s("details",{style:{flex:"none",alignSelf:"flex-end",color:"var(--dsw-alias-label-tertiary, #76808e)",fontSize:11,opacity:.8,maxWidth:"100%",overflowWrap:"anywhere"}},s("summary",{style:{cursor:"pointer"}},"\u8BCA\u65AD"),s("div",{style:{paddingTop:8,lineHeight:1.7}},s("div",null,`\u5BA2\u6237\u7AEF\uFF1A${Je}`),F?s("div",null,`\u4E91\u7535\u8111\u5305\uFF1A${F.packageVersion||"\u672A\u77E5"} \xB7 \u6E05\u5355\uFF1A${F.manifestVersion||"\u672A\u77E5"}`):null,F?.runtimeBuild&&F.runtimeBuild!=="unknown"?s("div",null,`\u8FD0\u884C\u65F6\u6784\u5EFA\uFF1A${F.runtimeBuild}`):null,F?.computerImage&&F.computerImage!=="unknown"?s("div",null,`\u7535\u8111\u955C\u50CF\uFF1A${F.computerImage}`):null,F?.dock?s("div",null,`Dock\uFF1A${F.dock.position} \xB7 ${F.dock.iconCount} \u4E2A\u56FE\u6807`):null))):s("section",{"data-personal-assistant-panel":"true",style:{...Q,border:"none",height:"100%",minHeight:0,display:"flex",flexDirection:"column",fontSize:13}},s("header",{style:{display:"flex",flexWrap:"wrap",gap:8,alignItems:"center",padding:12,borderBottom:Q.border}},s("strong",{style:{fontWeight:500,marginRight:8}},"\u4E2A\u4EBA\u52A9\u7406"),De&&["idle","closed","error"].includes(C)?s("button",{style:ze,onClick:()=>{qe()}},"\u5237\u65B0\u52A9\u7406\u5217\u8868"):null,typeof c=="function"?s("button",{style:ze,onClick:c},"\u653E\u5230\u53F3\u4FA7\u680F"):null,De?s("button",{style:ze,disabled:["connecting","resuming"].includes(C),onClick:()=>C==="dormant"?Be():void Re(S.current.handoffSupported?"observe":"control")},C==="dormant"?"\u6062\u590D\u753B\u9762":ee&&C==="readonly"?"\u7533\u8BF7\u63A7\u5236":te?"\u91CD\u65B0\u8FDE\u63A5":"\u8FDE\u63A5\u4E91\u7535\u8111"):null,De?s("button",{style:ze,disabled:C==="connecting",onClick:()=>{Re("read")}},"\u53EA\u8BFB\u65C1\u89C2"):null,te?s("span",{role:"status","aria-live":"polite",style:{marginLeft:"auto",color:"var(--dsw-alias-label-secondary, #536174)"}},ut):null),C==="readonly"?s("div",{role:"alert",style:{background:"#fff0d6",color:"#763c00",padding:"8px 12px"}},"\u5F53\u524D\u4E3A\u53EA\u8BFB\u65C1\u89C2\uFF0C\u9F20\u6807\u548C\u952E\u76D8\u8F93\u5165\u4E0D\u4F1A\u53D1\u9001\uFF1B\u53EF\u7533\u8BF7\u63A7\u5236"):null,te&&q?s("div",{role:"status",style:{padding:"8px 12px"}},q):null,vt||Et,s("footer",{style:{display:"flex",alignItems:"start",justifyContent:"space-between",gap:12,padding:"7px 12px",color:"var(--dsw-alias-label-secondary, #536174)",borderTop:Q.border}},s("details",{open:ve,onToggle:e=>O(e.currentTarget.open)},s("summary",{style:{cursor:"pointer"}},"\u8BCA\u65AD"),P?s("div",{style:{paddingTop:8}},`\u76EE\u5F55\u8FDE\u63A5\u5173\u95ED\u7801\uFF1A${P}`):null,s("div",{style:{paddingTop:8,lineHeight:1.8,overflowWrap:"anywhere"}},s("div",null,`\u4E91\u7AEF\u5B9E\u4F8B\uFF1A${x?.agentId||"\u672A\u5F00\u901A"}`),s("div",null,`\u8FDE\u63A5\u6807\u8BC6\uFF1A${D||"\u672A\u8FDE\u63A5"}`),s("div",null,`\u753B\u9762\u5E27\u7387\uFF1A${Me} fps`),F?s("div",null,`\u4E91\u7535\u8111\u5305\uFF1A${F.packageVersion||"\u672A\u77E5"} \xB7 \u6E05\u5355\uFF1A${F.manifestVersion||"\u672A\u77E5"}`):null,F?.dock?s("div",null,`Dock\uFF1A${F.dock.position} \xB7 ${F.dock.iconCount} \u4E2A\u56FE\u6807`):null,s("div",null,"\u5FEB\u6377\u952E\u4F1A\u8F6C\u53D1\u5230\u4E91\u7535\u8111\uFF1BEsc \u4F18\u5148\u9000\u51FA\u5168\u5C4F"))),s("small",{"data-personal-assistant-build":Je,style:{opacity:.75}},`\u6784\u5EFA ${Je}`)))}function $n({request:t,nativeWorkbench:d}={}){let c=He||globalThis.React;if(!c)return"\u4E2A\u4EBA\u52A9\u7406\u9875\u9762\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u91CD\u65B0\u6253\u5F00";let{createElement:r,useEffect:u,useState:n,useCallback:s}=c,[o,b]=n(null),[g,h]=n(""),[x,k]=n(null),[_,A]=n(""),[J,X]=n(0);u(()=>{let O=!1;return b(null),h(""),k(null),(async()=>{try{let D=await t("personal-assistant.configuration");if(!D.configured){let N=await t("personal-assistant.desktop.status").catch(()=>null);O||k(N||{configured:!1,reason:"unavailable",candidates:[]});return}let we=await t("personal-assistant.bots.list");if(we.directoryAvailable!==!0)throw new Error("\u6682\u65F6\u65E0\u6CD5\u8FDE\u63A5\u4E91\u7AEF\u52A9\u7406\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5");let C=ht(we.bots,D.botId||we.primaryBotId);O||b({agentId:D.agentId,botId:C})}catch(D){O||h(D.message||"\u4E91\u7AEF\u52A9\u7406\u6682\u4E0D\u53EF\u7528")}})(),()=>{O=!0}},[t,J]);let P=s((O,D={})=>{if(!o)throw new Error("\u4E91\u7AEF\u52A9\u7406\u5C1A\u672A\u8FDE\u63A5");if(D.agentId&&D.agentId!==o.agentId)throw new Error("\u4E91\u7AEF\u5B9E\u4F8B\u4E0D\u4E00\u81F4");if(O!=="personal-assistant.bots.list"&&D.botId&&D.botId!==o.botId)throw new Error("\u4E91\u7AEF\u52A9\u7406\u4E0D\u4E00\u81F4");return t(O,{...D,...o})},[t,o?.agentId,o?.botId]);u(()=>{o&&d?.available?d.bind(o,P):o&&h(d?.unavailableReason||"\u5F53\u524D\u5BBF\u4E3B\u9700\u8981\u66F4\u65B0\u539F\u751F\u4FA7\u680F\u7EC4\u4EF6")},[d,P,o?.agentId,o?.botId]);let w=x?St(x):null,ve=O=>{_||(A(O),h(""),(async()=>{try{await t(`personal-assistant.desktop.${O}`),X(D=>D+1)}catch(D){h(D?.message||"\u64CD\u4F5C\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5")}finally{A("")}})())};return!o&&w?r("div",{"data-personal-assistant-onboarding":"true",style:j.page},r("div",{"data-window-drag":"",style:{display:"flex",flexDirection:"column",gap:4,alignItems:"center"}},r("div",{style:j.eyebrow},"\u4E2A\u4EBA\u52A9\u7406 \xB7 \u5F00\u901A\u5F15\u5BFC"),r("h2",{style:j.title},w.title)),r("p",{style:j.detail},w.detail),r("ol",{style:j.steps},tn(w.tone).map((O,D)=>r("li",{key:O,style:j.step},r("span",{style:j.stepIndex},String(D+1)),r("span",null,O)))),r("div",{style:j.actions},w.actions.map(O=>r("button",{key:O.id,disabled:!!_,style:O.primary?j.primary:j.ghost,onClick:()=>O.id==="check"?X(D=>D+1):ve(O.id)},_===O.id?"\u5904\u7406\u4E2D\u2026":O.label))),g?r("p",{role:"alert",style:{...j.notice,color:"#b42318"}},g):null):o?d?.available?r("div",{key:`${o.agentId}:${o.botId}`,"data-personal-assistant-home":"true","data-agent-id":o.agentId,"data-bot-id":o.botId,style:{flex:"1 1 0px",height:"100%",maxHeight:"100%",minHeight:0,minWidth:0,overflow:"hidden",boxSizing:"border-box",display:"flex",flexDirection:"column"}},r(Wt,{React:c,request:P,scope:o,markdown:Jt,onOpenComputer:()=>d.open()})):r("div",{role:"alert",style:{padding:24}},"\u5F53\u524D\u5BBF\u4E3B\u5C1A\u672A\u63D0\u4F9B\u539F\u751F\u4E91\u7535\u8111\u4FA7\u680F\uFF0C\u8BF7\u66F4\u65B0 Studio \u540E\u91CD\u65B0\u6253\u5F00\u3002"):r("div",{role:"status",style:{padding:24}},g||"\u6B63\u5728\u8FDE\u63A5\u4E91\u7AEF\u4E2A\u4EBA\u52A9\u7406\u2026",g?r("button",{onClick:()=>X(O=>O+1)},"\u91CD\u65B0\u8FDE\u63A5"):null)}var m={page:{padding:"2px 2px 28px",display:"flex",flexDirection:"column",gap:18,maxWidth:700,fontSize:13,color:"var(--dsw-alias-label-primary, #17202c)"},title:{margin:0,fontSize:18,fontWeight:600,letterSpacing:"-0.01em"},lede:{margin:0,color:"var(--dsw-alias-label-secondary, #536174)",fontSize:13,lineHeight:1.7},card:{border:Q.border,borderRadius:12,overflow:"hidden"},row:{display:"flex",gap:16,padding:"12px 14px",borderTop:"1px solid var(--dsw-alias-border-default, #d8dee8)",alignItems:"flex-start"},rowFirst:{display:"flex",gap:16,padding:"12px 14px",alignItems:"flex-start"},label:{width:116,flex:"none",color:"var(--dsw-alias-label-secondary, #536174)",fontSize:13,lineHeight:1.7},value:{flex:1,minWidth:0,fontSize:13,lineHeight:1.7,overflowWrap:"anywhere"},mono:{fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",fontSize:12},actions:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"},button:{...Q,borderRadius:8,padding:"6px 11px",cursor:"pointer",font:"inherit",fontSize:13},note:{color:"var(--dsw-alias-label-secondary, #536174)",fontSize:12,lineHeight:1.7},badge:{display:"inline-block",borderRadius:999,padding:"1px 8px",fontSize:12,lineHeight:1.7},badgeOk:{background:"color-mix(in srgb, #067647 12%, transparent)",color:"#067647"},badgeIdle:{background:"color-mix(in srgb, #946200 14%, transparent)",color:"#946200"},badgeError:{background:"color-mix(in srgb, #b42318 12%, transparent)",color:"#b42318"},dangerButton:{...Q,borderRadius:8,padding:"6px 11px",cursor:"pointer",font:"inherit",fontSize:13,color:"#b42318",border:"1px solid color-mix(in srgb, #b42318 35%, transparent)",background:"transparent"},confirmBox:{border:"1px solid color-mix(in srgb, #b42318 30%, transparent)",borderRadius:12,padding:"12px 14px",display:"flex",flexDirection:"column",gap:10,background:"color-mix(in srgb, #b42318 4%, transparent)"},dangerInput:{...Q,border:"1px solid var(--dsw-alias-border-default, #d8dee8)",borderRadius:8,padding:"6px 9px",font:"inherit",fontSize:12,width:"100%",maxWidth:360,boxSizing:"border-box"},danger:{...Q,borderRadius:8,padding:"6px 11px",cursor:"pointer",font:"inherit",fontSize:13,color:"#fff",border:"1px solid #b42318",background:"#b42318"},dangerDisabled:{...Q,borderRadius:8,padding:"6px 11px",cursor:"not-allowed",font:"inherit",fontSize:13,color:"#fff",border:"1px solid color-mix(in srgb, #b42318 35%, transparent)",background:"color-mix(in srgb, #b42318 35%, transparent)"},success:{color:"#067647",fontSize:12,lineHeight:1.7},input:{...Q,border:"1px solid var(--dsw-alias-border-default, #d8dee8)",borderRadius:8,padding:"6px 9px",font:"inherit",fontSize:12,width:"100%",maxWidth:360,boxSizing:"border-box"},textarea:{...Q,border:"1px solid var(--dsw-alias-border-default, #d8dee8)",borderRadius:8,padding:"6px 9px",font:"inherit",fontSize:12,width:"100%",minHeight:76,resize:"vertical",boxSizing:"border-box"},envRow:{display:"flex",gap:6,alignItems:"center",marginBottom:6,flexWrap:"wrap"},envKey:{...Q,border:"1px solid var(--dsw-alias-border-default, #d8dee8)",borderRadius:8,padding:"5px 8px",font:"inherit",fontSize:12,width:190,boxSizing:"border-box"},envValue:{...Q,border:"1px solid var(--dsw-alias-border-default, #d8dee8)",borderRadius:8,padding:"5px 8px",font:"inherit",fontSize:12,width:220,boxSizing:"border-box"},tinyButton:{...Q,borderRadius:8,padding:"4px 8px",cursor:"pointer",font:"inherit",fontSize:12}};function Mn({request:t,openComputer:d=null}={}){let c=He||globalThis.React;if(!c)return"\u8BBE\u7F6E\u9875\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u91CD\u65B0\u6253\u5F00 Studio";let{createElement:r,useEffect:u,useState:n,useCallback:s}=c,[o,b]=n(null),[g,h]=n(null),[x,k]=n(""),[_,A]=n(!1),[J,X]=n(""),[P,w]=n(!1),[ve,O]=n(""),[D,we]=n(!1),[C,N]=n(""),[q,L]=n(null),[ee,ue]=n(null),[Ke,re]=n(""),[Me,se]=n(""),[pe,Ve]=n(""),[Se,W]=n([]),[le,Ne]=n([]),[oe,ye]=n(""),[F,ce]=n(""),[H,de]=n(!1),[ke,je]=n(null),[z,ie]=n(""),M=s(async()=>{A(!0),k("");let i=Date.now();try{let y=await t("personal-assistant.configuration");if(b(y),y?.configured?je(null):je(await t("personal-assistant.desktop.status").catch(()=>null)),y?.configured){let f=await t("personal-assistant.bots.list");h(Array.isArray(f?.bots)?f.bots:[]);try{let l=await t("personal-assistant.settings.inspect");L(l),re(l?.model||""),se(l?.prompt||""),Ve(l?.runtime?.version||""),W((l?.environmentVariables||[]).map(v=>({...v,saved:!0,dirty:!1}))),Ne([]),ye("");let I=await t("personal-assistant.settings.versions",{currentVersion:l?.runtime?.version||""}).catch(v=>(ye(v?.message||"\u6682\u65F6\u8BFB\u4E0D\u5230\u53EF\u5347\u7EA7\u7684\u7248\u672C"),null));ue(I)}catch(l){L(null),ue(null),ye(l?.message||"\u8BFB\u53D6\u4E91\u7AEF\u914D\u7F6E\u5931\u8D25")}}else h([]),L(null),ue(null);X(`${new Date().toLocaleTimeString("zh-CN",{hour12:!1})} \xB7 ${Date.now()-i} ms`)}catch(y){k(y?.message||"\u8FDE\u63A5\u68C0\u67E5\u5931\u8D25"),X(`${new Date().toLocaleTimeString("zh-CN",{hour12:!1})} \xB7 \u5931\u8D25`)}finally{A(!1)}},[t]),fe=s(async i=>{if(!z){ie(i),k("");try{await t(`personal-assistant.desktop.${i}`),await M()}catch(y){k(y?.message||"\u64CD\u4F5C\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5")}finally{ie("")}}},[z,M,t]),ge=o?.agentId||"",Ie=!!ge&&ve.trim()===ge,K=s(async()=>{if(Ie){we(!0),k("");try{await t("personal-assistant.desktop.destroy",{confirmAgentId:ge}),w(!1),O(""),N("\u4E2A\u4EBA\u52A9\u7406\u5DF2\u5173\u95ED\uFF1A\u4E91\u7AEF\u5B9E\u4F8B\u5DF2\u5220\u9664\uFF0C\u5173\u8054\u7684\u4E91\u8D44\u6E90\u8BA2\u5355\u6B63\u5728\u91CA\u653E\uFF0C\u672C\u673A\u7ED1\u5B9A\u5DF2\u6E05\u9664\u3002"),b({configured:!1}),h([]),X("")}catch(i){let y=String(i?.message||"");k(/更新 Studio|云连接服务/iu.test(y)?"\u5F53\u524D Studio \u7248\u672C\u8FD8\u4E0D\u652F\u6301\u5173\u95ED\u4E2A\u4EBA\u52A9\u7406\uFF0C\u8BF7\u66F4\u65B0 Studio \u540E\u91CD\u8BD5\u3002":y||"\u5173\u95ED\u4E2A\u4EBA\u52A9\u7406\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5")}finally{we(!1)}}},[ge,Ie,t]),_e=(i,y)=>W(f=>f.map((l,I)=>I===i?{...l,...y,dirty:!0}:l)),be=()=>W(i=>[...i,{key:"",value:"",sensitive:!1,saved:!1,dirty:!0}]),We=i=>{let y=Se[i];y&&(W(f=>f.filter((l,I)=>I!==i)),y.saved&&y.key&&Ne(f=>f.includes(y.key)?f:[...f,y.key]))},S=q?.recordSource==="studio",Te=s(async()=>{if(!(!S||H)){de(!0),ye(""),ce("");try{let i=Se.filter(y=>y.dirty===!0||y.saved!==!0).map(y=>({key:String(y.key||"").trim(),value:String(y.value||""),sensitive:y.sensitive===!0}));await t("personal-assistant.settings.update",{model:Ke.trim(),prompt:Me,runtimeVersion:pe,environmentVariables:i,deleteKeys:le}),ce(`\u5DF2\u63D0\u4EA4\u4E91\u7AEF\u66F4\u65B0\uFF08\u7248\u672C ${pe}\uFF09\uFF0C\u4E2A\u4EBA\u52A9\u7406\u6B63\u5728\u5E94\u7528\u65B0\u914D\u7F6E\uFF0C\u901A\u5E38 1\u20132 \u5206\u949F\u5B8C\u6210\uFF0C\u671F\u95F4\u4E91\u7535\u8111\u4F1A\u77ED\u6682\u91CD\u8FDE\u3002`),Ne([]);try{let y=await t("personal-assistant.settings.inspect");L(y),re(y?.model||""),se(y?.prompt||""),Ve(y?.runtime?.version||pe),W((y?.environmentVariables||[]).map(f=>({...f,saved:!0,dirty:!1})))}catch{}}catch(i){ye(i?.message||"\u4FDD\u5B58\u914D\u7F6E\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5")}finally{de(!1)}}},[S,le,Se,Ke,Me,t,H,pe]);u(()=>{M()},[M]);let V=o?.configured===!0,et=o===null?"\u68C0\u67E5\u4E2D":V?"\u5DF2\u5F00\u901A":"\u5C1A\u672A\u5F00\u901A",Le={...m.badge,...o===null?m.badgeIdle:V?m.badgeOk:m.badgeIdle},$=(i,y,f=!1)=>r("div",{style:f?m.rowFirst:m.row},r("div",{style:m.label},i),r("div",{style:m.value},y)),Ce=V?null:St(ke),Qe=Ce?r("div",{"data-personal-assistant-onboarding":"true",style:m.card},r("div",{style:{...m.rowFirst,flexDirection:"column",gap:8,alignItems:"stretch"}},r("div",{style:{fontSize:15,fontWeight:600}},Ce.title),r("div",{style:m.note},Ce.detail),r("div",{style:m.actions},Ce.actions.map(i=>r("button",{key:i.id,disabled:!!z,style:i.primary?m.button:{...m.button,background:"transparent"},onClick:()=>i.id==="check"?void M():void fe(i.id)},z===i.id?"\u5904\u7406\u4E2D\u2026":i.label))))):null,Oe={...m.note,display:"inline-flex",gap:4,alignItems:"center"},Pe={...m.actions,marginTop:6},Ee={display:"flex",flexDirection:"column",gap:8},he=()=>{if(!q)return r("div",{style:m.card},$("\u4E91\u7AEF\u914D\u7F6E",r("div",{style:m.note},H?"\u8BFB\u53D6\u4E2D\u2026":oe||"\u6682\u65F6\u8BFB\u4E0D\u5230\u4E91\u7AEF\u914D\u7F6E\uFF1B\u8BF7\u70B9\u4E0B\u65B9\u201C\u68C0\u67E5\u8FDE\u63A5\u201D\u91CD\u8BD5"),!0));if(q.recordSource!=="studio")return r("div",{style:m.card},$("\u4E91\u7AEF\u914D\u7F6E",r("div",{style:m.note},"\u8FD9\u4E2A\u4E2A\u4EBA\u52A9\u7406\u662F\u7528\u65E7\u7248 Studio \u521B\u5EFA\u7684\uFF0C\u672C\u673A\u6CA1\u6709\u8BB0\u5F55\u5B83\u7684\u914D\u7F6E\u6E05\u5355\uFF0C\u6682\u65F6\u4E0D\u80FD\u5728\u7EBF\u4FEE\u6539\u3002\u53EF\u4EE5\u5173\u95ED\u540E\u91CD\u65B0\u521B\u5EFA\uFF1B\u7B49\u4E91\u7AEF\u5E73\u53F0\u63D0\u4F9B\u8BFB\u53D6\u63A5\u53E3\u540E\u5373\u53EF\u76F4\u63A5\u7F16\u8F91\u3002"),!0));let i=ee&&ee.catalogAvailable?r("select",{style:m.input,value:pe,disabled:H,"aria-label":"\u8FD0\u884C\u65F6\u7248\u672C",onChange:l=>Ve(String(l?.target?.value??""))},ee.versions.map(l=>r("option",{key:l.version,value:l.version},l.version===q.runtime?.version?`${l.version}\uFF08\u5F53\u524D\uFF09`:l.version))):r("div",{style:m.note},`${q.runtime?.version||pe||"\u672A\u77E5\u7248\u672C"} \xB7 \u4E91\u7AEF\u8FD8\u6CA1\u6709\u53D1\u5E03\u53EF\u5347\u7EA7\u7248\u672C`),y=r("div",null,Se.length?Se.map((l,I)=>r("div",{key:`env-${I}`,style:m.envRow},r("input",{style:m.envKey,value:l.key,placeholder:"KEY","aria-label":"\u73AF\u5883\u53D8\u91CF\u540D",disabled:H||l.saved===!0,onChange:v=>_e(I,{key:String(v?.target?.value??"")})}),r("input",{style:m.envValue,value:l.value,"aria-label":"\u73AF\u5883\u53D8\u91CF\u503C",type:l.sensitive===!0?"password":"text",disabled:H,placeholder:l.saved===!0&&l.sensitive===!0?"\u5DF2\u4FDD\u5B58\uFF08\u7559\u7A7A\u4E0D\u4FEE\u6539\uFF09":"VALUE",onChange:v=>_e(I,{value:String(v?.target?.value??"")})}),r("label",{style:Oe},r("input",{type:"checkbox",checked:l.sensitive===!0,disabled:H,onChange:v=>_e(I,{sensitive:v?.target?.checked===!0})}),"\u654F\u611F"),r("button",{style:m.tinyButton,disabled:H,onClick:()=>We(I)},"\u5220\u9664"))):r("div",{style:m.note},"\u8FD8\u6CA1\u6709\u914D\u7F6E\u73AF\u5883\u53D8\u91CF"),r("div",{style:Pe},r("button",{style:m.tinyButton,disabled:H,onClick:be},"\u6DFB\u52A0\u53D8\u91CF"),r("span",{style:m.note},"\u5DF2\u4FDD\u5B58\u7684\u654F\u611F\u503C\u4E0D\u4F1A\u56DE\u663E\uFF0C\u7559\u7A7A\u8868\u793A\u4E0D\u4FEE\u6539\uFF1B\u5220\u9664\u540E\u4FDD\u5B58\u751F\u6548"))),f=r("div",{style:Ee},F?r("div",{style:m.success},F):null,oe?r("div",{style:{...m.note,color:"#b42318"}},oe):null,r("div",{style:m.actions},r("button",{style:m.button,disabled:H,onClick:()=>{Te()}},H?"\u6B63\u5728\u4FDD\u5B58\u2026":"\u4FDD\u5B58\u914D\u7F6E"),r("span",{style:m.note},"\u4FDD\u5B58\u4F1A\u63D0\u4EA4\u4E00\u6B21\u4E91\u7AEF\u66F4\u65B0\uFF0C\u7531\u4E91\u7AEF\u6EDA\u52A8\u5E94\u7528")));return r("div",{style:m.card},$("\u4E91\u7AEF\u914D\u7F6E",r("div",{style:m.note},"\u6A21\u578B\u3001\u7CFB\u7EDF\u63D0\u793A\u8BCD\u3001\u8FD0\u884C\u65F6\u7248\u672C\u548C\u73AF\u5883\u53D8\u91CF\u4FDD\u5B58\u5728\u4E91\u7AEF\u5B9E\u4F8B\u3002\u4FDD\u5B58\u65F6\u63D0\u4EA4\u4E00\u6B21\u4E91\u7AEF\u66F4\u65B0\uFF0C\u7531\u4E91\u7AEF\u6EDA\u52A8\u5E94\u7528\u5230\u5B9E\u4F8B\uFF0C\u4E0D\u9700\u8981\u672C\u673A\u91CD\u542F\u3002"),!0),q.detailAvailable===!1?$("\u8BF4\u660E",r("div",{style:m.note},q.detailNote||"\u4E91\u7AEF\u5E73\u53F0\u6682\u65F6\u6CA1\u6709\u8FD4\u56DE\u5B9E\u4F8B\u8BE6\u60C5\uFF0C\u4E0B\u9762\u663E\u793A\u7684\u662F\u672C\u673A\u8BB0\u5F55\u7684\u914D\u7F6E\uFF1B\u73AF\u5883\u53D8\u91CF\u8BE6\u60C5\u6682\u65F6\u4E0D\u53EF\u89C1\u3002")):null,$("\u6A21\u578B",r("input",{style:m.input,value:Ke,disabled:H,placeholder:"\u4F8B\u5982 deepseek-v4.1-flash-1017","aria-label":"\u6A21\u578B\u540D\u79F0",onChange:l=>re(String(l?.target?.value??""))})),$("\u7CFB\u7EDF\u63D0\u793A\u8BCD",r("textarea",{style:m.textarea,value:Me,disabled:H,"aria-label":"\u7CFB\u7EDF\u63D0\u793A\u8BCD",onChange:l=>se(String(l?.target?.value??""))})),$("\u8FD0\u884C\u65F6\u7248\u672C",i),$("\u73AF\u5883\u53D8\u91CF",y),$("\u4FDD\u5B58",f))};return r("section",{"data-personal-assistant-settings":"true",style:m.page},r("div",{"data-window-drag":""},r("h1",{style:m.title},"\u4E2A\u4EBA\u52A9\u7406"),r("p",{style:{...m.lede,marginTop:6}},"\u4E91\u7AEF\u6301\u7EED\u8FD0\u884C\u7684\u52A9\u7406\uFF0C\u5E26\u4E00\u53F0\u72EC\u7ACB\u4E91\u7535\u8111\u3002\u5173\u6389\u7A97\u53E3\u5B83\u4E5F\u5728\u5DE5\u4F5C\uFF1B\u5BF9\u8BDD\u4E0E\u4E91\u7535\u8111\u5728\u5DE6\u4FA7\u300C\u4E2A\u4EBA\u52A9\u7406\u300D\u9875\u3002")),x?r("div",{role:"alert",style:{...m.note,color:"#b42318",background:"color-mix(in srgb, #b42318 8%, transparent)",border:"1px solid color-mix(in srgb, #b42318 25%, transparent)",borderRadius:10,padding:"9px 12px"}},x):null,Qe,r("div",{style:m.card},$("\u72B6\u6001",r("span",null,r("span",{style:Le},et),J?r("span",{style:m.note},`\u3000\u4E0A\u6B21\u68C0\u67E5 ${J}`):null),!0),$("\u4E91\u7AEF\u5B9E\u4F8B",o?.agentId?r("span",{style:m.mono},o.agentId):r("span",{style:m.note},V?"\u672A\u8FD4\u56DE\u5B9E\u4F8B\u6807\u8BC6":"\u5F00\u901A\u540E\u7531 Studio \u7ED1\u5B9A")),$("\u7F51\u5173",o?.gatewayUrl?r("span",{style:m.mono},o.gatewayUrl):r("span",{style:m.note},"\u7531 Studio Host \u914D\u7F6E")),$("\u52A9\u7406\u8FDE\u63A5",r("span",{style:m.note},g===null?"\u68C0\u67E5\u4E2D":g.length?"\u5DF2\u8FDE\u63A5\u4F60\u7684\u52A9\u7406":"\u52A9\u7406\u5C1A\u672A\u5C31\u7EEA")),$("\u8BB0\u5FC6",r("div",null,r("div",{style:m.mono},"/workspace/assistant-state"),r("div",{style:m.note},"\u8BB0\u5FC6\u3001\u4F1A\u8BDD\u4E0E\u5B9A\u65F6\u4EFB\u52A1\u968F\u4E91\u7535\u8111\u6301\u4E45\u4FDD\u5B58\uFF0C\u6362\u8BBE\u5907\u4E5F\u5728"))),$("\u4E91\u7AEF\u80FD\u529B",r("div",null,r("div",null,"\u9ED8\u8BA4\u5F00\u542F\uFF1A\u4E91\u7AEF\u547D\u4EE4\u6267\u884C\u3001\u4E91\u7AEF\u6D4F\u89C8\u5668"),r("div",{style:m.note},"\u90FD\u8DD1\u5728\u9694\u79BB\u5DE5\u4F5C\u533A\uFF1A\u8BFB\u4E0D\u5230\u672C\u673A\u6587\u4EF6\u4E0E\u51ED\u8BC1\uFF0C\u4E0D\u80FD\u8BBF\u95EE\u5185\u7F51\u4E0E\u672C\u673A\u5730\u5740\uFF1B\u654F\u611F\u64CD\u4F5C\u4F1A\u5148\u8BF7\u4F60\u786E\u8BA4"))),$("\u63D2\u4EF6\u7248\u672C",r("span",{style:m.note},`\u6784\u5EFA ${Je}`))),V?he():null,V||C?r("div",{style:m.card},$("\u5173\u95ED\u4E2A\u4EBA\u52A9\u7406",r("div",{style:{display:"flex",flexDirection:"column",gap:8}},r("div",{style:m.note},"\u5173\u95ED\u4F1A\u5220\u9664\u4E91\u7AEF\u5B9E\u4F8B\uFF08\u4E91\u7535\u8111 Pod\uFF09\u548C\u4E91\u7AEF\u52A9\u7406\u6570\u636E\uFF0C\u5E76\u91CA\u653E\u5173\u8054\u7684\u4E91\u8D44\u6E90\u8BA2\u5355\uFF1B\u672C\u673A\u7ED1\u5B9A\u4E5F\u4F1A\u4E00\u5E76\u6E05\u9664\uFF0C\u4E4B\u540E\u53EF\u91CD\u65B0\u521B\u5EFA\u3002"),C?r("div",{style:m.success},C):null,P?r("div",{style:m.confirmBox},r("div",{style:{...m.note,color:"#b42318"}},"\u6B64\u64CD\u4F5C\u4E0D\u53EF\u64A4\u9500\u3002\u8BF7\u8F93\u5165\u4E0A\u65B9\u300C\u4E91\u7AEF\u5B9E\u4F8B\u300D\u7684\u6807\u8BC6\u4EE5\u786E\u8BA4\u5173\u95ED\uFF1A"),r("input",{style:m.dangerInput,value:ve,placeholder:ge||"ar-\u2026","aria-label":"\u8F93\u5165\u4E91\u7AEF\u5B9E\u4F8B\u6807\u8BC6\u4EE5\u786E\u8BA4\u5173\u95ED",disabled:D,onChange:i=>O(String(i?.target?.value??""))}),r("div",{style:m.actions},r("button",{style:Ie&&!D?m.danger:m.dangerDisabled,disabled:!Ie||D,onClick:()=>{K()}},D?"\u6B63\u5728\u5173\u95ED\u2026":"\u786E\u8BA4\u5173\u95ED\u4E2A\u4EBA\u52A9\u7406"),r("button",{style:m.button,disabled:D,onClick:()=>{w(!1),O("")}},"\u53D6\u6D88"))):r("div",{style:m.actions},r("button",{style:m.dangerButton,disabled:!V||D,onClick:()=>{w(!0),O(""),N("")}},"\u5173\u95ED\u4E2A\u4EBA\u52A9\u7406"),r("span",{style:m.note},V?"\u9700\u8981\u8F93\u5165\u5B9E\u4F8B\u6807\u8BC6\u4E8C\u6B21\u786E\u8BA4":"\u5F53\u524D\u6CA1\u6709\u5DF2\u5F00\u901A\u7684\u4E2A\u4EBA\u52A9\u7406"))),!0)):null,r("div",{style:m.actions},r("button",{style:m.button,disabled:_,onClick:()=>{M()}},_?"\u6B63\u5728\u68C0\u67E5\u2026":"\u68C0\u67E5\u8FDE\u63A5"),r("span",{style:m.note},"\u68C0\u67E5\u4F1A\u8BFB\u53D6\u5F00\u901A\u72B6\u6001\u5E76\u62C9\u53D6\u4E00\u6B21\u52A9\u7406\u5217\u8868\uFF0C\u4E0D\u4F1A\u542F\u52A8\u4E91\u7535\u8111")))}function jn({size:t}={}){let d=He,c=Number(t)>0?Number(t):16;return d?.createElement?d.createElement("svg",{width:c,height:c,viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:1.4,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",focusable:"false",style:{display:"block"}},d.createElement("path",{d:"M3.4 3.2h9.2a1.3 1.3 0 0 1 1.3 1.3H7.7l-2.9 2.3v-2.3H3.4a1.3 1.3 0 0 1-1.3-1.3V4.5a1.3 1.3 0 0 1 1.3-1.3z"}),d.createElement("path",{d:"M8.1 5.6l.62 1.46 1.46.62-1.46.62L8.1 9.76l-.62-1.46-1.46-.62 1.46-.62z"})):"\u52A9"}function Wn({size:t}={}){let d=He,c=Number(t)>0?Number(t):16;return d?.createElement?d.createElement("svg",{width:c,height:c,viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:1.4,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",focusable:"false",style:{display:"block",flex:"0 0 auto"}},d.createElement("rect",{x:2.2,y:3.4,width:11.6,height:7.4,rx:1.4}),d.createElement("path",{d:"M6.6 13.4h2.8"}),d.createElement("path",{d:"M8 10.8v2.6"})):null}function Hn(){let t=He,d=Wn({size:15});return!t?.createElement||!d?"\u4E91\u7535\u8111":t.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:"6px",lineHeight:1}},d,t.createElement("span",null,"\u4E91\u7535\u8111"))}function nn(t){if(!t?.slots?.inject||!t.slots.register)throw new TypeError("Personal Assistant client requires the public DSH slots service");let d=async(n,s={})=>{if(!t.connection?.rpc?.call)throw new wt;let o=await t.connection.rpc.call("/api","personal-assistant",{operation:n,payload:s});if(!o?.ok)throw Object.assign(new Error(o?.error?.message||"Studio Host \u8BF7\u6C42\u5931\u8D25"),{code:o?.error?.code,status:o?.error?.details?.status,closeCode:o?.error?.details?.closeCode});return o.value},c=(n,s)=>{try{let o=()=>n();return typeof t.effect=="function"?t.effect(o,s):o()}catch(o){try{console.warn(`[personal-assistant] ${s} \u6CE8\u518C\u5931\u8D25`,o)}catch{}return}},r=Vt({sidebarRight:t.sidebarRight,slots:t.slots});r&&(r.render=n=>qt({...n,React:He||globalThis.React,workbench:r,Panel:Xt}),c(()=>()=>r.dispose(),"personal-assistant: native workbench")),c(()=>t.slots.inject("main",()=>t.slots.register({name:"main",key:mt,inject:()=>({request:d,nativeWorkbench:r})},$n)),"personal-assistant: main panel"),c(()=>t.slots.inject("sidebar.panellist",()=>t.slots.register({name:"sidebar.panellist",id:mt,order:90,label:"\u4E2A\u4EBA\u52A9\u7406"},jn)),"personal-assistant: sidebar row"),c(()=>t.slots.inject("settings.section",()=>t.slots.register({name:"settings.section",id:`${mt}-settings`,order:196,label:"\u4E2A\u4EBA\u52A9\u7406",inject:()=>({request:d})},Mn)),"personal-assistant: settings section"),typeof t.inject=="function"&&c(()=>t.inject(["sidebarRightTabs"],n=>{let s=[],o=b=>{typeof b=="function"&&s.push(b)};try{let b=n.sidebarRightTabs;if(b===void 0||typeof b.register!="function")return;o(b.register({id:at,kind:at,title:()=>"\u4E91\u7535\u8111",guide:[{order:20,title:()=>"\u4E91\u7535\u8111",description:()=>"\u4E2A\u4EBA\u52A9\u7406\u7684\u4E91\u7AEF\u7535\u8111\u753B\u9762\uFF0C\u53EF\u83B7\u53D6\u63A7\u5236\u6743"}]})),o(n.slots.inject("sidebar.right.pane.tab",()=>n.slots.register({name:"sidebar.right.pane.tab",key:at,inject:()=>({request:d})},g=>Xt({...g,variant:"computer"})))),o(n.slots.inject("sidebar.right.pane.tab.title",()=>n.slots.register({name:"sidebar.right.pane.tab.title",key:at},Hn)))}catch(b){try{console.warn("[personal-assistant] \u53F3\u4FA7\u680F\u6CE8\u518C\u5931\u8D25",b)}catch{}}return()=>{for(let b of s.reverse())b()}}),"personal-assistant: right tab")}window.__ModuleLoader__.load({id:"@kingsoftcloud/agentkit-personal-assistant",factory:t=>{Zt(t("react"));let d;try{d=t("@deepseek-ai/dsh-client-ui-primitives")}catch{d=void 0}return en(d),{name:"agentkit-personal-assistant",inject:Gt,apply:nn}}});})();
|
|
3
|
+
`),r=[],c=0,n=o=>{o.length!==0&&(r.push({type:"paragraph",text:o.join(`
|
|
4
|
+
`)}),o.length=0)},s=[];for(;c<a.length;){let o=a[c],g=hn.exec(o);if(g){n(s);let w=[];for(c+=1;c<a.length&&!/^```\s*$/u.test(a[c]);)w.push(a[c]),c+=1;c+=1,r.push({type:"code",lang:g[1]||"",text:w.join(`
|
|
5
|
+
`)});continue}if(o.trim()===""){n(s),c+=1;continue}let y=c+1<a.length?In(o,a[c+1]):null;if(y){n(s),c+=2;let w=[];for(;c<a.length&&a[c].trim()!==""&&a[c].includes("|");){let j=bt(a[c]);if(j.length!==y.headers.length)break;w.push(j),c+=1}r.push({type:"table",...y,rows:w});continue}let h=mn.exec(o);if(h){n(s),r.push({type:"heading",level:h[1].length,text:h[2].trim()}),c+=1;continue}if(xn.test(o)){n(s),r.push({type:"rule"}),c+=1;continue}let m=yt.exec(o);if(m){n(s);let w=[m[1]];for(c+=1;c<a.length&&yt.test(a[c]);)w.push(yt.exec(a[c])[1]),c+=1;r.push({type:"quote",text:w.join(`
|
|
6
|
+
`)});continue}let k=$t.exec(o),_=Ut.exec(o);if(k||_){n(s);let w={type:_?"ordered":"unordered",items:[],start:_?Number(_[1]):1};for(;c<a.length;){let j=$t.exec(a[c]),H=Ut.exec(a[c]);if(!j&&!H)break;w.items.push((j?j[1]:H[2]).trim()),c+=1}r.push(w);continue}s.push(o),c+=1}return n(s),r}function En(e){let l=typeof e=="string"?e:"",a=[],r=n=>{n&&a.push({type:"text",text:n})},c=l;for(;c.length>0;){let n=/^`([^`]+)`/u.exec(c);if(n){a.push({type:"code",text:n[1]}),c=c.slice(n[0].length);continue}let s=/^\*\*([^*\n]+)\*\*/u.exec(c)||/^__([^_\n]+)__/u.exec(c);if(s){a.push({type:"strong",text:s[1]}),c=c.slice(s[0].length);continue}let o=/^\*([^*\s][^*\n]*)\*/u.exec(c)||/^_([^_\s][^_\n]*)_/u.exec(c);if(o){a.push({type:"em",text:o[1]}),c=c.slice(o[0].length);continue}let g=/^\[([^\]]+)\]\(([^)\s]+)\)/u.exec(c);if(g){a.push({type:"link",text:g[1],href:g[2]}),c=c.slice(g[0].length);continue}let y=c.slice(1).search(/[`*_[\]\n]/u),h=y<0?c.length:y+1;r(c.slice(0,h)),c=c.slice(h)}return a.reduce((n,s)=>{let o=n[n.length-1];return s.type==="text"&&o&&o.type==="text"?n[n.length-1]={type:"text",text:o.text+s.text}:n.push(s),n},[])}function Ft(e,l,a={}){let r=vn(l);if(r.length===0)return null;let c=(n,s)=>En(n).map((o,g)=>{let y=`${s}-i${g}`;return o.type==="code"?e("code",{key:y,style:a.inlineCode},o.text):o.type==="strong"?e("strong",{key:y},o.text):o.type==="em"?e("em",{key:y},o.text):o.type==="link"?/^(https?:|mailto:|cloud-file:)/iu.test(o.href)?e("a",{key:y,href:o.href,target:"_blank",rel:"noreferrer noopener",style:a.link},o.text):e("span",{key:y},o.text):e("span",{key:y},o.text)});return r.map((n,s)=>{let o=`b${s}`;if(n.type==="code")return e("pre",{key:o,style:a.codeBlock},e("code",null,n.text));if(n.type==="heading")return e("div",{key:o,style:{...a.heading,...n.level<=2?a.headingStrong:null}},c(n.text,o));if(n.type==="rule")return e("hr",{key:o,style:a.rule});if(n.type==="quote")return e("blockquote",{key:o,style:a.quote},c(n.text,o));if(n.type==="unordered"||n.type==="ordered"){let g=n.type==="ordered"?"ol":"ul";return e(g,{key:o,style:a.list,start:n.type==="ordered"&&n.start!==1?n.start:void 0},n.items.map((y,h)=>e("li",{key:`${o}-l${h}`},c(y,`${o}-l${h}`))))}if(n.type==="table"){let g=(m,k,_,w)=>e(m,{key:w,style:{border:"1px solid var(--dsw-alias-border-default, #d8dee8)",padding:"6px 8px",verticalAlign:"top",...m==="th"?{background:"var(--dsw-alias-bg-layer-2, #f7f9fc)",fontWeight:600}:null,...a.tableCell||{},textAlign:n.alignments[_]||"left"}},c(k,w)),y=e("thead",{key:`${o}-head`},e("tr",{key:`${o}-head-row`},n.headers.map((m,k)=>g("th",m,k,`${o}-h${k}`)))),h=e("tbody",{key:`${o}-body`},n.rows.map((m,k)=>e("tr",{key:`${o}-r${k}`},m.map((_,w)=>g("td",_,w,`${o}-r${k}-c${w}`)))));return e("div",{key:o,style:{overflowX:"auto",...a.tableWrap}},e("table",{style:{borderCollapse:"collapse",width:"100%",...a.table}},y,h))}return e("p",{key:o,style:a.paragraph},c(n.text,o))})}var An={code:{copyLabel:"\u590D\u5236",copiedLabel:"\u5DF2\u590D\u5236",toolbarLabels:{codeLabel:"\u4EE3\u7801",wrapLabel:"\u81EA\u52A8\u6362\u884C",unwrapLabel:"\u53D6\u6D88\u6362\u884C"}},footnotes:"\u811A\u6CE8"};function kn(e,l,a,r){let c=r?.MarkdownText,n=typeof l=="string"?l:"";return typeof c=="function"?e(c,{text:n,labels:An}):Ft(e,n,a)||"\u2026"}var Tn="\u6709\u4EC0\u4E48\u53EF\u4EE5\u5E2E\u4F60\uFF1F",Rn=new Set(["DSH_SESSION_BUSY","DSH_TURN_TIMEOUT"]),Mt={RUNTIME_PROCESS_INTERRUPTED:"\u4E91\u7535\u8111\u91CD\u542F\uFF0C\u4EFB\u52A1\u88AB\u4E2D\u65AD",DSH_SESSION_CONTROLLER_UNAVAILABLE:"\u4E91\u7AEF\u8FDE\u63A5\u6682\u65F6\u4E0D\u53EF\u7528\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5",DSH_TURN_NOT_ACCEPTED:"\u4E91\u7AEF\u6CA1\u6709\u63A5\u53D7\u8FD9\u4E00\u8F6E\u5BF9\u8BDD\uFF0C\u8BF7\u91CD\u65B0\u53D1\u9001",DSH_SESSION_NOT_FOUND:"\u4F1A\u8BDD\u4E0D\u5B58\u5728\u6216\u5DF2\u88AB\u5220\u9664"},_n=e=>{let l=String(e||"").trim();return l?Mt[l]?Mt[l]:/^[A-Z][A-Z0-9_]{5,}$/u.test(l)?"\u4E91\u7AEF\u6CA1\u6709\u5B8C\u6210\u8FD9\u4E00\u8F6E\uFF0C\u8BF7\u91CD\u8BD5":l.slice(0,160):"\u8BF7\u68C0\u67E5\u4EFB\u52A1\u72B6\u6001\u540E\u91CD\u8BD5"},Cn=400,On=8,Wt=1500,T={page:{flex:"1 1 0px",height:"100%",maxHeight:"100%",minHeight:0,minWidth:0,overflow:"hidden",boxSizing:"border-box",display:"flex",flexDirection:"column",fontSize:13,color:"var(--dsw-alias-label-primary, #17202c)",background:"var(--dsw-alias-bg-layer-1, #fff)"},header:{display:"flex",flexWrap:"wrap",alignItems:"center",gap:10,padding:"10px 16px",borderBottom:"1px solid var(--dsw-alias-border-default, #d8dee8)",flex:"none"},title:{margin:0,fontSize:14,fontWeight:600},status:{color:"var(--dsw-alias-label-secondary, #536174)",fontSize:12},spacer:{marginLeft:"auto"},ghost:{border:"1px solid var(--dsw-alias-border-default, #d8dee8)",background:"transparent",color:"inherit",borderRadius:8,padding:"5px 10px",cursor:"pointer",font:"inherit",fontSize:12},scroller:{flex:"1 1 0px",minHeight:0,minWidth:0,overflowY:"auto",overflowX:"hidden",overscrollBehavior:"contain",boxSizing:"border-box",padding:"20px 16px 8px"},thread:{maxWidth:720,margin:"0 auto",display:"flex",flexDirection:"column",gap:14},row:{display:"flex",flexDirection:"column",gap:4,alignItems:"flex-start"},rowUser:{display:"flex",flexDirection:"column",gap:4,alignItems:"flex-end"},who:{fontSize:11,color:"var(--dsw-alias-label-secondary, #536174)"},bubble:{maxWidth:"86%",padding:"9px 12px",borderRadius:12,lineHeight:1.7,overflowWrap:"anywhere",display:"flex",flexDirection:"column",gap:8,background:"color-mix(in srgb, currentColor 5%, transparent)"},paragraph:{margin:0,whiteSpace:"pre-wrap"},heading:{fontWeight:600,fontSize:13.5},headingStrong:{fontSize:15},list:{margin:0,paddingLeft:20,display:"flex",flexDirection:"column",gap:4},codeBlock:{margin:0,padding:"10px 12px",borderRadius:8,overflowX:"auto",fontSize:12,lineHeight:1.65,background:"color-mix(in srgb, currentColor 9%, transparent)",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},inlineCode:{padding:"1px 5px",borderRadius:5,fontSize:12,background:"color-mix(in srgb, currentColor 9%, transparent)",fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace"},quote:{margin:0,paddingLeft:10,borderLeft:"3px solid var(--dsw-alias-border-default, #d8dee8)",color:"var(--dsw-alias-label-secondary, #536174)"},rule:{border:"none",borderTop:"1px solid var(--dsw-alias-border-default, #d8dee8)",margin:"2px 0",width:"100%"},link:{color:"#2f6bff",textDecoration:"none"},bubbleUser:{maxWidth:"86%",padding:"9px 12px",borderRadius:12,lineHeight:1.7,whiteSpace:"pre-wrap",overflowWrap:"anywhere",background:"color-mix(in srgb, #2f6bff 12%, transparent)"},pulse:{animation:"pa-awaiting 1.2s ease-in-out infinite"},step:{fontSize:12,color:"var(--dsw-alias-label-secondary, #536174)",lineHeight:1.7,overflowWrap:"anywhere"},centered:{flex:1,display:"grid",placeItems:"center",padding:24,textAlign:"center"},centeredInner:{maxWidth:420,display:"flex",flexDirection:"column",gap:10,alignItems:"center"},composer:{flex:"0 0 auto",minWidth:0,boxSizing:"border-box",padding:"8px 16px 14px"},composerInner:{maxWidth:720,minWidth:0,margin:"0 auto",display:"flex",flexDirection:"column",gap:6,border:"1px solid var(--dsw-alias-border-default, #d8dee8)",borderRadius:16,padding:"10px 10px 8px 12px",background:"var(--dsw-alias-bg-layer-1, #fff)"},textarea:{flex:1,width:"100%",minWidth:0,boxSizing:"border-box",minHeight:24,maxHeight:200,resize:"none",border:"none",outline:"none",background:"transparent",color:"inherit",font:"inherit",fontSize:13,lineHeight:1.7},composerBar:{display:"flex",alignItems:"center",gap:8},iconButton:{flex:"none",width:28,height:28,display:"grid",placeItems:"center",cursor:"pointer",border:"1px solid var(--dsw-alias-border-default, #d8dee8)",borderRadius:999,background:"transparent",color:"var(--dsw-alias-label-secondary, #536174)",padding:0},send:{flex:"none",width:28,height:28,display:"grid",placeItems:"center",border:"none",borderRadius:999,cursor:"pointer",padding:0,background:"var(--dsw-alias-label-primary, #17202c)",color:"var(--dsw-alias-bg-layer-1, #fff)"},sendDisabled:{background:"var(--dsw-alias-border-default, #d8dee8)",color:"var(--dsw-alias-label-secondary, #536174)",cursor:"default"},sendQueued:{flex:"none",width:28,height:28,display:"grid",placeItems:"center",borderRadius:999,cursor:"pointer",padding:0,border:"1px dashed var(--dsw-alias-label-primary, #17202c)",background:"transparent",color:"var(--dsw-alias-label-primary, #17202c)"},queueBadge:{flex:"none",borderRadius:999,padding:"1px 8px",fontSize:11,lineHeight:"18px",background:"color-mix(in srgb, #946200 14%, transparent)",color:"#946200"},queueBubble:{maxWidth:"86%",padding:"9px 12px",borderRadius:12,lineHeight:1.7,whiteSpace:"pre-wrap",overflowWrap:"anywhere",border:"1px dashed color-mix(in srgb, currentColor 35%, transparent)",background:"color-mix(in srgb, currentColor 4%, transparent)",color:"var(--dsw-alias-label-secondary, #536174)"},queueRow:{display:"flex",alignItems:"center",gap:6,flexWrap:"wrap",justifyContent:"flex-end"},queueHint:{fontSize:11,color:"var(--dsw-alias-label-secondary, #536174)"},queueCancel:{border:"none",background:"transparent",cursor:"pointer",padding:"2px 4px",borderRadius:6,color:"var(--dsw-alias-label-secondary, #536174)",display:"inline-flex",alignItems:"center",gap:3,font:"inherit",fontSize:11},queueNotice:{maxWidth:720,margin:"0 auto 6px",fontSize:12,color:"#946200",lineHeight:1.6},attach:{flex:"none",display:"flex",alignItems:"center",gap:6,padding:"3px 8px 3px 4px",borderRadius:8,background:"var(--dsw-alias-bg-layer-2, #f4f6fa)",fontSize:11,maxWidth:180},attachName:{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},attachThumb:{width:20,height:20,borderRadius:4,objectFit:"cover",flex:"none"},attachRow:{display:"flex",flexWrap:"wrap",gap:6}},$=e=>typeof e=="string"?e:"",Dn="agentkit.personal-assistant.current-session.v1",Nn=e=>{let l=$(e?.agentId),a=$(e?.botId);return l&&a?`${Dn}:${encodeURIComponent(l)}:${encodeURIComponent(a)}`:""},Ln=e=>{if(!e)return"";try{return $(globalThis.localStorage?.getItem(e))}catch{return""}},Pn=(e,l)=>{let a=$(l);if(!(!e||!a))try{globalThis.localStorage?.setItem(e,a)}catch{}},Ye=(e,l,a=503)=>Object.assign(new Error(l),{code:e,status:a}),Bn=e=>e("svg",{width:16,height:16,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2.2,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":!0},e("path",{d:"M12 19V5M5 12l7-7 7 7"})),zn=e=>e("svg",{width:15,height:15,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round","aria-hidden":!0},e("path",{d:"M12 5v14M5 12h14"})),jt=e=>e("svg",{width:10,height:10,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2.4,strokeLinecap:"round","aria-hidden":!0},e("path",{d:"M6 6l12 12M18 6L6 18"}));function Ht({React:e,request:l,scope:a,markdown:r=void 0,onOpenComputer:c=null}={}){if(!e)return"\u4E2A\u4EBA\u52A9\u7406\u5BF9\u8BDD\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u91CD\u65B0\u6253\u5F00";let{createElement:n,useCallback:s,useEffect:o,useRef:g,useState:y}=e,h=Nn(a),[m,k]=y("loading"),[_,w]=y(""),[j,H]=y([]),[P,S]=y(""),[ve,O]=y(""),[D,we]=y(""),[C,N]=y([]),[Q,L]=y(""),[ee,ue]=y([]),Ve=g(null),[re,Me]=y(!1),[se,pe]=y(!1),[Ke,Se]=y(""),[V,le]=y([]),[Ne,oe]=y(""),ye=g(0),U=g(new Map),ce=g([]),K=g(!1),de=g(null),ke=g(!1);ke.current=re;let We=g(!1);We.current=se;let z=g("loading");z.current=m;let ie=g(0),M=g(!0),fe=g(null),ge=g(!0),Ie=g("");Ie.current=P;let q=s(async(i,b={})=>{if(typeof l!="function")throw new Error("Studio Host \u5C1A\u672A\u8FDE\u63A5");return l(i,b)},[l]),_e=s(i=>{!Array.isArray(i)||i.length===0||N(b=>{let f=[...b];for(let u of i)if(!(!u||typeof u!="object")){if(u.type==="message"){let v=$(u.id)||`local-${f.length}`,E=$(u.role)||"assistant",B=$(u.text),Ae=f.findIndex(Be=>Be.id===v),Z={id:v,role:E,text:B,done:u.done!==!1,clientTurnId:u.clientTurnId,status:"accepted"};if(Ae>=0)f[Ae]={...f[Ae],...Z};else if(E==="user"){let Be=f.findIndex(Re=>Re.role==="user"&&u.clientTurnId&&Re.clientTurnId===u.clientTurnId);Be>=0?f[Be]={...Z}:f.push(Z)}else f.push(Z)}else if(u.type==="delta"){let v=$(u.id)||`local-${f.length}`,E=f.findIndex(B=>B.id===v);E>=0?f[E]={...f[E],text:f[E].text+$(u.text)}:f.push({id:v,role:"assistant",text:$(u.text),done:!1})}else if(u.type==="step"&&$(u.text)){let v={id:$(u.id),role:"step",text:$(u.text),done:!0},E=f.findIndex(B=>B.id===v.id);E>=0?f[E]=v:f.push(v)}}return f})},[]),be=s(async i=>{if(!i)return;let b=Ie.current;if(b&&b!==i&&ce.current.length>0){let u=ce.current.length;ce.current=[],le([]),de.current&&(clearTimeout(de.current),de.current=null),oe(`\u5DF2\u5207\u6362\u4F1A\u8BDD\uFF0C${u} \u6761\u6392\u961F\u6D88\u606F\u672A\u53D1\u9001\uFF0C\u5DF2\u53D6\u6D88`)}else b&&b!==i&&oe("");Ie.current=i;let f=++ie.current;S(i),k("loading"),w(""),ye.current=0,ge.current=!0,N([]);try{let u=await q("personal-assistant.session.snapshot",{sessionId:i});if(!M.current||Ie.current!==i||f!==ie.current)return;if(!u||typeof u!="object"||Array.isArray(u)||!Array.isArray(u.messages)||!Array.isArray(u.turns)||!Number.isSafeInteger(u.cursor)||u.cursor<0)throw Ye("PERSONAL_ASSISTANT_SESSION_SNAPSHOT_INVALID","\u4E91\u7AEF\u4F1A\u8BDD\u5FEB\u7167\u683C\u5F0F\u65E0\u6548\uFF0C\u8BF7\u91CD\u65B0\u540C\u6B65");O($(u?.runtimeInstanceId)),we($(u?.stateStorage)),ye.current=u.cursor;let v=u.messages;N(v.map((E,B)=>({id:$(E?.id)||`history-${B}`,role:$(E?.role)||"assistant",text:$(E?.text),done:!0}))),pe(u.turns?.some(E=>["queued","running"].includes(E.status))||!1),Pn(h,i),k("ready")}catch(u){if(!M.current||f!==ie.current)return;k("error"),w(u?.message||"\u65E0\u6CD5\u8BFB\u53D6\u4F1A\u8BDD\u5185\u5BB9")}},[q,h]),je=s(async()=>{if(M.current){if(ke.current||We.current||ce.current.length>0){oe("\u5F53\u524D\u4F1A\u8BDD\u8FD8\u6709\u8FDB\u884C\u4E2D\u7684\u4EFB\u52A1\uFF0C\u8BF7\u7B49\u5F85\u5B8C\u6210\u540E\u518D\u65B0\u5EFA\u4F1A\u8BDD");return}k("loading"),w("");try{let i=await q("personal-assistant.session.create",{}),b=$(i?.sessionId);if(!b)throw Ye("PERSONAL_ASSISTANT_SESSION_CREATE_INVALID","\u4E91\u7AEF\u6CA1\u6709\u8FD4\u56DE\u6709\u6548\u7684\u65B0\u4F1A\u8BDD\u6807\u8BC6");H(f=>[...f.filter(u=>$(u?.sessionId)!==b),{sessionId:b,title:$(i?.title)||"\u65B0\u4F1A\u8BDD"}]),await be(b)}catch(i){if(!M.current)return;k("error"),w(i?.message||"\u65B0\u4F1A\u8BDD\u521B\u5EFA\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5")}}},[q,be]),I=s(async()=>{if(k("loading"),w(""),!!M.current)try{let i=await q("personal-assistant.sessions.list");if(!M.current)return;if(!Array.isArray(i?.sessions))throw Ye("PERSONAL_ASSISTANT_SESSION_LIST_INVALID","\u4E91\u7AEF\u4F1A\u8BDD\u76EE\u5F55\u683C\u5F0F\u65E0\u6548\uFF0C\u8BF7\u91CD\u8BD5");let b=new Set;if(i.sessions.some(v=>{let E=$(v?.sessionId);return!v||typeof v!="object"||!E||b.has(E)?!0:(b.add(E),!1)}))throw Ye("PERSONAL_ASSISTANT_SESSION_LIST_INVALID","\u4E91\u7AEF\u4F1A\u8BDD\u76EE\u5F55\u5305\u542B\u65E0\u6548\u4F1A\u8BDD\uFF0C\u8BF7\u91CD\u8BD5");let f=i.sessions;O($(i.runtimeInstanceId)),we($(i.stateStorage)),H(f);let u=Ln(h);if(u&&!f.some(v=>$(v.sessionId)===u))throw Ye("PERSONAL_ASSISTANT_SESSION_STATE_MISSING","\u4E91\u7AEF\u5386\u53F2\u4F1A\u8BDD\u6682\u65F6\u4E0D\u53EF\u89C1\uFF0C\u8BF7\u68C0\u67E5\u5B9E\u4F8B\u72B6\u6001\u540E\u91CD\u8BD5\uFF0C\u6216\u624B\u52A8\u9009\u62E9\u4F1A\u8BDD");if(f.length>0){let v=f.find(E=>$(E.sessionId)===u)||f[0];await be($(v.sessionId));return}await je()}catch(i){if(!M.current)return;k("error"),w(i?.message||"\u4F1A\u8BDD\u901A\u9053\u6682\u65F6\u4E0D\u53EF\u7528")}},[q,je,be,h]);o(()=>(M.current=!0,I(),()=>{M.current=!1,de.current&&(clearTimeout(de.current),de.current=null)}),[I]),o(()=>{if(m!=="ready"||!P)return;let i=!1,b=null,f=async()=>{try{let u=await q("personal-assistant.session.events",{sessionId:P,cursor:ye.current});if(i)return;if(!u||typeof u!="object"||Array.isArray(u)||!Array.isArray(u.events)||!Array.isArray(u.turns)||!Number.isSafeInteger(u.cursor))throw Ye("PERSONAL_ASSISTANT_SESSION_EVENTS_INVALID","\u4E91\u7AEF\u4F1A\u8BDD\u589E\u91CF\u683C\u5F0F\u65E0\u6548\uFF0C\u8BF7\u91CD\u65B0\u540C\u6B65");if(u.cursor<ye.current)throw Ye("SESSION_CURSOR_STALE","\u4F1A\u8BDD\u65E5\u5FD7\u5DF2\u66F4\u65B0\uFF0C\u8BF7\u91CD\u65B0\u540C\u6B65",409);ye.current=u.cursor,_e(u.events),pe(u.turns.some(Z=>["queued","running"].includes(Z.status)));let v=u.turns.findLast(Z=>["queued","running"].includes(Z.status)),E={cloud_computer:"\u64CD\u4F5C\u4E91\u7535\u8111",cloud_workspace:"\u5904\u7406\u4E91\u7AEF\u6587\u4EF6",cloud_bash:"\u6267\u884C\u4E91\u7AEF\u547D\u4EE4",cloud_run_code:"\u8FD0\u884C\u4E91\u7AEF\u4EE3\u7801",assistant_schedule:"\u8BBE\u7F6E\u4E91\u7AEF\u4EFB\u52A1"},B=v?.progress?.tool;Se(B?`${v.progress.state==="running"?"\u6B63\u5728":"\u5DF2\u5B8C\u6210"}${E[B]||(B.startsWith("cloud_browser_")?"\u64CD\u4F5C\u4E91\u7AEF\u6D4F\u89C8\u5668":"\u6267\u884C\u5DE5\u5177")}`:"");let Ae=u.turns.filter(Z=>["failed","interrupted","cancelled"].includes(Z.status)&&!Rn.has(String(Z.error||""))).map(Z=>({type:"step",id:`turn-status-${Z.turnId}`,text:`\u4EFB\u52A1${Z.status==="failed"?"\u5931\u8D25":"\u5DF2\u4E2D\u65AD"}\uFF1A${_n(Z.error)}`}));_e(Ae),w("")}catch(u){if(!i){if(u.code==="SESSION_CURSOR_STALE"||u.code==="PERSONAL_ASSISTANT_SESSION_EVENTS_INVALID"){be(P);return}w(u.message||"\u4E91\u7AEF\u8FDE\u63A5\u4E2D\u65AD\uFF0C\u6B63\u5728\u6062\u590D\uFF1B\u4EFB\u52A1\u4E0D\u4F1A\u6539\u5230\u672C\u673A\u6267\u884C")}}i||(b=setTimeout(f,600))};return b=setTimeout(f,200),()=>{i=!0,clearTimeout(b)}},[m,P,q,_e,be]),o(()=>{let i=fe.current;i&&ge.current&&(i.scrollTop=i.scrollHeight)},[C,se]);let Te=async i=>{let b=Array.from(i.target.files||[]);i.target.value="";let f=[];for(let u of b.slice(0,4)){if(!u||u.size>512*1024){w("\u6BCF\u4E2A\u9644\u4EF6\u6700\u591A 512 KiB\uFF0C\u8BF7\u5148\u538B\u7F29\u6216\u62C6\u5206\u6587\u4EF6");continue}let v=await new Promise(E=>{let B=new FileReader;B.onload=()=>E(String(B.result||"")),B.onerror=()=>E(""),B.readAsDataURL(u)});v&&f.push({id:`${Date.now()}-${u.name}`,name:u.name,mimeType:u.type||"application/octet-stream",size:u.size,dataUrl:v})}f.length&&ue(u=>[...u,...f].slice(0,4))},Y=i=>{ce.current=i,le(i)},et=()=>{de.current&&(clearTimeout(de.current),de.current=null)},Le=i=>Number(i?.status)===409||/SESSION_BUSY|active turn|正忙|处理中/u.test(`${i?.code||""} ${i?.message||""}`),F=async(i,{restoreDraft:b=!1}={})=>{U.current.set(i.clientTurnId,i),ge.current=!0,Me(!0),w(""),pe(!0),N(u=>u.some(v=>v.clientTurnId===i.clientTurnId)?u.map(v=>v.clientTurnId===i.clientTurnId?{...v,status:"pending"}:v):[...u,{id:`local-user-${i.clientTurnId}`,clientTurnId:i.clientTurnId,role:"user",text:i.text,done:!1,status:"pending"}]);let f=i;try{let u=Array.isArray(f.attachments)?f.attachments:[];if(u.length===0&&Array.isArray(f.uploads)&&f.uploads.length>0){let E=[];for(let B of f.uploads)E.push(await q("personal-assistant.file.upload",{sessionId:f.sessionId,name:B.name,dataUrl:B.dataUrl}));u=E.map(({path:B,name:Ae,mediaType:Z,bytes:Be})=>({path:B,name:Ae,mediaType:Z,bytes:Be})),f={...f,attachments:u,uploads:[]},U.current.set(f.clientTurnId,f)}let v=await q("personal-assistant.turn.submit",{sessionId:f.sessionId,text:f.text,clientTurnId:f.clientTurnId,attachments:u});return M.current?(U.current.delete(f.clientTurnId),N(E=>E.map(B=>B.clientTurnId===f.clientTurnId?{...B,status:"accepted",turnId:v.turnId}:B)),{ok:!0,item:f}):{ok:!0,item:f}}catch(u){return M.current?(pe(Le(u)),b&&!Le(u)&&L(v=>v||f.text),N(v=>v.map(E=>E.clientTurnId===f.clientTurnId?{...E,status:"failed",failure:u.message||"\u53D1\u9001\u7ED3\u679C\u5F85\u786E\u8BA4\uFF0C\u91CD\u8BD5\u5C06\u590D\u7528\u539F\u6807\u8BC6"}:E)),{ok:!1,failure:u,item:f}):{ok:!1,failure:u,item:f}}finally{M.current&&Me(!1)}},Ce=(i,b)=>{let f=(i.attempts||0)+1;if(U.current.delete(i.clientTurnId),N(v=>v.filter(E=>E.clientTurnId!==i.clientTurnId)),f>On){oe(`\u6392\u961F\u6D88\u606F\u591A\u6B21\u672A\u53D1\u51FA\uFF08${b?.message||"\u4E91\u7535\u8111\u4ECD\u5FD9"}\uFF09\uFF0C\u5DF2\u653E\u56DE\u8F93\u5165\u6846\uFF0C\u8BF7\u624B\u52A8\u91CD\u8BD5`),L(v=>v||i.text);return}Y([{...i,attempts:f},...ce.current]);let u=(Wt*Math.min(f,3)/1e3).toFixed(1);oe(`\u4E91\u7535\u8111\u4ECD\u5728\u5904\u7406\u4E0A\u4E00\u8F6E\uFF0C\u6D88\u606F\u5DF2\u6392\u961F\uFF0C\u7EA6 ${u} \u79D2\u540E\u81EA\u52A8\u91CD\u53D1`),et(),de.current=setTimeout(()=>{de.current=null,Qe(!0)},Wt*Math.min(f,3))},Qe=async i=>{let b=Ie.current;if(K.current||!M.current||z.current!=="ready"||!b||ke.current||!i&&We.current)return!1;let f=ce.current[0];if(!f)return!1;if(f.sessionId!==b)return Y([]),oe("\u4F1A\u8BDD\u5DF2\u53D8\u5316\uFF0C\u6392\u961F\u6D88\u606F\u672A\u53D1\u9001"),!1;K.current=!0,Y(ce.current.slice(1));try{let u=await F(f);return u.ok?!0:(Le(u.failure)?Ce(u.item||f,u.failure):oe(`\u6392\u961F\u6D88\u606F\u53D1\u9001\u5931\u8D25\uFF1A${u.failure?.message||"\u8BF7\u70B9\u51FB\u91CD\u8BD5"}`),!1)}finally{K.current=!1}},Oe=i=>{U.current.delete(i),Y(ce.current.filter(b=>b.clientTurnId!==i)),oe("\u5DF2\u64A4\u56DE\u6392\u961F\u6D88\u606F")},Pe=async(i=null)=>{if(m!=="ready"||!P)return;if(i){re||F(i,{restoreDraft:!0});return}let b=Q.trim()||(ee.length?"\u8BF7\u67E5\u770B\u9644\u4EF6\u3002":"");if(!b)return;let f=ee.map(({name:v,mimeType:E,size:B,dataUrl:Ae})=>({name:v,mimeType:E,size:B,dataUrl:Ae}));if(re||se){Y([...ce.current,{clientTurnId:crypto.randomUUID(),text:b,sessionId:P,uploads:f,attempts:0,queuedAt:Date.now()}]),ge.current=!0,L(""),ue([]),w(""),oe("");return}L(""),ue([]),w(""),oe("");let u=await F({clientTurnId:crypto.randomUUID(),text:b,sessionId:P,uploads:f,attempts:0},{restoreDraft:!0});!u.ok&&Le(u.failure)&&Ce(u.item,u.failure)};o(()=>{if(m!=="ready"||!P||re||se||V.length===0)return;let i=setTimeout(()=>{Qe(!1)},Cn);return()=>clearTimeout(i)},[m,P,re,se,V]),o(()=>{if(V.length===0||typeof window>"u"||typeof window.addEventListener!="function")return;let i=b=>{b.preventDefault(),b.returnValue=""};return window.addEventListener("beforeunload",i),()=>window.removeEventListener("beforeunload",i)},[V.length]);let Ee=[P?"\u5F53\u524D\u52A9\u7406\u7EBF\u7A0B\u5DF2\u6301\u4E45\u5316":"",ve?`\u8FD0\u884C\u5B9E\u4F8B ${ve}`:"",D?`\u72B6\u6001 ${D}`:""].filter(Boolean).join(" \xB7 "),he=n("header",{style:T.header,"data-window-drag":""},n("h1",{style:T.title},"\u4E2A\u4EBA\u52A9\u7406"),n("span",{style:T.status,title:Ee||void 0},m==="ready"?"\u4E91\u7AEF\u5E38\u9A7B\uFF0C\u5173\u6389\u7A97\u53E3\u4E5F\u4F1A\u7EE7\u7EED":m==="loading"?"\u6B63\u5728\u8FDE\u63A5\u2026":"\u8FDE\u63A5\u4E0D\u53EF\u7528"),n("span",{style:T.spacer}),n("button",{type:"button","data-window-drag-recall":"",disabled:m==="loading"||re||se||V.length>0,onClick:()=>{je()},"aria-label":"\u5F00\u59CB\u65B0\u4EFB\u52A1",title:V.length>0?"\u8BF7\u7B49\u5F85\u6392\u961F\u6D88\u606F\u53D1\u9001\u540E\u518D\u5F00\u59CB\u65B0\u4EFB\u52A1":"\u5F00\u59CB\u4E00\u4E2A\u65B0\u7684\u52A9\u7406\u4EFB\u52A1\u7EBF\u7A0B",style:T.ghost},"\u65B0\u4EFB\u52A1"),c?n("button",{type:"button","data-window-drag-recall":"",onClick:c,"aria-label":"\u6253\u5F00\u4E91\u7535\u8111\u4FA7\u680F",title:"\u6253\u5F00\u6216\u91CD\u65B0\u6253\u5F00\u4E91\u7535\u8111\u4FA7\u680F",style:{...T.ghost,display:"inline-flex",alignItems:"center",gap:6}},n("svg",{width:16,height:16,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:1.6,"aria-hidden":!0},n("rect",{x:3,y:4,width:18,height:13,rx:2}),n("path",{d:"M8 21h8M12 17v4"})),"\u4E91\u7535\u8111"):null);return n("section",{"data-personal-assistant-conversation":"true","data-agent-id":$(a?.agentId)||void 0,"data-bot-id":$(a?.botId)||void 0,"data-session-id":P||void 0,"data-runtime-instance-id":ve||void 0,"data-state-storage":D||void 0,style:T.page,onClick:async i=>{let b=i.target.closest?.('a[href^="cloud-file:"]');if(b){i.preventDefault();try{let f=await q("personal-assistant.file.download",{sessionId:P,path:decodeURIComponent(b.getAttribute("href").slice(11))}),u=Uint8Array.from(atob(f.data),B=>B.charCodeAt(0)),v=URL.createObjectURL(new Blob([u],{type:"application/octet-stream"})),E=document.createElement("a");E.href=v,E.download=f.name,E.click(),setTimeout(()=>URL.revokeObjectURL(v),1e3)}catch(f){w(f.message||"\u4E91\u7AEF\u6587\u4EF6\u4E0B\u8F7D\u5931\u8D25")}}}},he,n("style",null,"@keyframes pa-awaiting { 0%, 100% { opacity: 0.35 } 50% { opacity: 1 } }"),_&&C.length>0?n("div",{role:"alert",style:{padding:"8px 16px",background:"#fff0d6",display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"}},n("span",null,_),P?n("button",{type:"button",style:T.ghost,disabled:m==="loading",onClick:()=>{be(P)}},"\u91CD\u65B0\u540C\u6B65\u4F1A\u8BDD"):null):null,n("div",{ref:fe,"data-personal-assistant-messages":"true",style:T.scroller,onScroll:i=>{let b=i.currentTarget;ge.current=b.scrollHeight-b.clientHeight-b.scrollTop<64}},n("div",{style:T.thread},C.length===0?n("div",{style:{...T.status,paddingTop:40,textAlign:"center"}},m==="error"?n("div",{style:{...T.centeredInner,margin:"0 auto"}},n("strong",null,"\u6682\u65F6\u8FDE\u4E0D\u4E0A\u4E2A\u4EBA\u52A9\u7406"),n("span",null,_||"\u8BF7\u7A0D\u540E\u91CD\u8BD5"),n("button",{style:T.ghost,onClick:()=>{I()}},"\u91CD\u8BD5")):m==="loading"?"\u6B63\u5728\u8FDE\u63A5\u4E2A\u4EBA\u52A9\u7406\u2026":Tn):null,C.map(i=>{if(i.role==="step")return n("div",{key:i.id,style:T.step},`\xB7 ${i.text}`);let b=i.role==="user";return n("div",{key:i.id,style:b?T.rowUser:T.row},n("span",{style:T.who},b?"\u4F60":"\u52A9\u7406"),n("div",{style:b?T.bubbleUser:T.bubble},b?i.text||"\u2026":kn(n,i.text,T,r)),i.status==="failed"?n("button",{onClick:()=>{Pe(U.current.get(i.clientTurnId))},disabled:re},`${i.failure} \xB7 \u91CD\u8BD5\u53D1\u9001`):null)}),se?n("div",{key:"awaiting",style:T.row},n("span",{style:T.who},"\u52A9\u7406"),n("div",{style:{...T.bubble,color:"var(--dsw-alias-label-secondary, #536174)"}},n("span",{style:T.pulse},Ke||"\u6B63\u5728\u5904\u7406\u2026"))):null,V.map(i=>n("div",{key:`queued-${i.clientTurnId}`,style:T.rowUser},n("span",{style:T.who},"\u4F60 \xB7 \u6392\u961F\u4E2D"),n("div",{style:T.queueBubble},`${i.text}${i.uploads?.length?`\uFF08${i.uploads.length} \u4E2A\u9644\u4EF6\u5F85\u53D1\uFF09`:""}`),n("div",{style:T.queueRow},n("span",{style:T.queueHint},i.attempts?"\u4E91\u7535\u8111\u4ECD\u5728\u5904\u7406\u4E0A\u4E00\u8F6E\uFF0C\u7A0D\u540E\u81EA\u52A8\u91CD\u53D1":"\u5DF2\u6392\u961F\uFF0C\u672C\u8F6E\u7ED3\u675F\u540E\u53D1\u9001"),n("button",{type:"button","aria-label":`\u64A4\u56DE\u6392\u961F\u6D88\u606F\uFF1A${i.text.slice(0,24)}`,title:"\u64A4\u56DE\u8FD9\u6761\u6392\u961F\u6D88\u606F",style:T.queueCancel,onClick:()=>Oe(i.clientTurnId)},jt(n),"\u64A4\u56DE")))))),n("div",{"data-personal-assistant-composer":"true",style:T.composer},Ne?n("div",{role:"status",style:T.queueNotice},Ne):null,n("div",{style:T.composerInner},ee.length>0?n("div",{style:T.attachRow},ee.map(i=>n("span",{key:i.id,style:T.attach},i.mimeType.startsWith("image/")?n("img",{src:i.dataUrl,alt:"",style:T.attachThumb}):null,n("span",{style:T.attachName},i.name),n("button",{"aria-label":`\u79FB\u9664 ${i.name}`,style:{...T.iconButton,width:16,height:16,border:"none"},onClick:()=>ue(b=>b.filter(f=>f.id!==i.id))},jt(n))))):null,n("textarea",{"aria-label":"\u7ED9\u4E2A\u4EBA\u52A9\u7406\u53D1\u6D88\u606F",value:Q,rows:1,style:T.textarea,placeholder:m!=="ready"?"\u4E91\u7AEF\u6682\u672A\u8FDE\u63A5\uFF0C\u53EF\u5148\u5199\u4E0B\u6D88\u606F":re||se?"\u672C\u8F6E\u8FDB\u884C\u4E2D\uFF1A\u73B0\u5728\u53D1\u9001\u4F1A\u6392\u961F\uFF0C\u672C\u8F6E\u7ED3\u675F\u540E\u81EA\u52A8\u53D1\u51FA":"\u7ED9\u4E2A\u4EBA\u52A9\u7406\u53D1\u6D88\u606F\uFF0CEnter \u53D1\u9001\uFF0CShift+Enter \u6362\u884C",onChange:i=>L(i.target.value),onKeyDown:i=>{m==="ready"&&i.key==="Enter"&&!i.shiftKey&&!i.nativeEvent?.isComposing&&(i.preventDefault(),Pe())}}),n("div",{style:T.composerBar},n("button",{"aria-label":"\u6DFB\u52A0\u9644\u4EF6",style:T.iconButton,disabled:m!=="ready"||re,title:"\u4E0A\u4F20\u5230\u4E91\u7535\u8111\uFF1A\u6700\u591A 4 \u4E2A\u6587\u4EF6\uFF0C\u6BCF\u4E2A 512 KiB",onClick:()=>Ve.current?.click()},zn(n)),n("input",{ref:Ve,type:"file",multiple:!0,accept:"image/*,.txt,.md,.json,.pdf",style:{display:"none"},onChange:Te}),n("span",{style:T.spacer}),V.length>0?n("span",{role:"status",style:T.queueBadge},`\u6392\u961F\u4E2D ${V.length}`):null,n("button",{"aria-label":V.length>0?`\u53D1\u9001\u6D88\u606F\uFF08\u6392\u961F\u4E2D ${V.length} \u6761\uFF09`:"\u53D1\u9001\u6D88\u606F",title:re||se?"\u672C\u8F6E\u8FDB\u884C\u4E2D\uFF1A\u53D1\u9001\u540E\u4F1A\u6392\u961F\uFF0C\u672C\u8F6E\u7ED3\u675F\u540E\u81EA\u52A8\u53D1\u51FA":"\u53D1\u9001\u6D88\u606F",disabled:m!=="ready"||!Q.trim()&&ee.length===0,style:m!=="ready"||!Q.trim()&&ee.length===0?{...T.send,...T.sendDisabled}:re||se?T.sendQueued:T.send,onClick:()=>{Pe()}},Bn(n))))))}var Vt="personal-assistant-computer",$n="personal-assistant",Kt="\u5F53\u524D Studio \u7684\u539F\u751F\u4FA7\u680F\u7EC4\u4EF6\u9700\u8981\u66F4\u65B0\uFF0C\u8BF7\u5B89\u88C5\u672C\u6B21\u968F\u63D2\u4EF6\u63D0\u4F9B\u7684\u5BBF\u4E3B\u7EC4\u4EF6\u5305\u3002",Un=()=>Object.assign(new Error(Kt),{code:"PERSONAL_ASSISTANT_NATIVE_SIDEBAR_REQUIRED"});function Fn(e){return e.workbench.render(e)}function qt({sidebarRight:e,slots:l,panelId:a=$n}={}){let r=typeof e?.registerPanelSurface=="function"&&typeof e?.openPanelTab=="function"&&typeof e?.setPanelExpanded=="function"&&typeof l?.inject=="function"&&typeof l?.register=="function",c=new Set,n,s=!1,o=Object.freeze({binding:void 0}),g=()=>{o=Object.freeze({binding:n});for(let w of[...c])w()},y=()=>{if(!r)throw Un();if(s)throw new Error("\u4E91\u7535\u8111\u5DE5\u4F5C\u9762\u677F\u5DF2\u5173\u95ED")},h,m,k=()=>e.openPanelTab(a,Vt),_={available:r,unavailableReason:r?null:Kt,subscribe:w=>(c.add(w),()=>c.delete(w)),getSnapshot:()=>o,bind(w,j){if(y(),!w?.agentId||!w?.botId||typeof j!="function")throw new Error("\u4E91\u7AEF\u52A9\u7406\u5C1A\u672A\u8FDE\u63A5");n&&(n.scope.agentId!==w.agentId||n.scope.botId!==w.botId)&&(h(),h=e.registerPanelSurface(a)),n=Object.freeze({scope:Object.freeze({...w}),request:j}),g(),k()},open(){y(),n&&(k(),e.setPanelExpanded(a,!0))},collapse(){y(),e.setPanelExpanded(a,!1)},dispose(){s||(s=!0,m?.(),h?.(),c.clear())}};return r&&(h=e.registerPanelSurface(a),m=l.inject("sidebar.right.panel.tab",()=>l.register({name:"sidebar.right.panel.tab",key:Vt,inject:()=>({workbench:_})},Fn))),_}function Yt({React:e,workbench:l,Panel:a,active:r=!0,fullscreen:c=!1}){let{createElement:n,useSyncExternalStore:s}=e,o=s(l.subscribe,l.getSnapshot,l.getSnapshot);if(!r||!o.binding)return null;let{scope:g,request:y}=o.binding;return n(a,{key:`${g.agentId}:${g.botId}:${g.sessionId||""}`,request:y,initialBotId:g.botId,initialSessionId:g.sessionId,agentId:g.agentId,variant:"native-tab",active:r,nativeFullscreen:c})}var Mn="__directory__";function ht(e){if(!Array.isArray(e)||e.length>128)throw new TypeError("\u52A9\u7406\u76EE\u5F55\u683C\u5F0F\u65E0\u6548");let l=new Set;return e.map(a=>{let r=String(a?.botId||"").trim(),c=String(a?.displayName||r).trim();if(!r||r.length>64||/[\u0000-\u001f]/u.test(r)||r===Mn||l.has(r)||!c||c.length>256)throw new TypeError("\u52A9\u7406\u76EE\u5F55\u683C\u5F0F\u65E0\u6548");return l.add(r),{botId:r,displayName:r==="default"&&c==="Personal Assistant"?"\u9ED8\u8BA4\u52A9\u7406":r==="researcher"&&c==="Researcher"?"\u7814\u7A76\u52A9\u7406":c}})}function mt(e,l=""){let a=ht(e),r=String(l||"").trim(),c=r?a.find(n=>n.botId===r):a.find(n=>n.botId==="default")||(a.length===1?a[0]:void 0);if(!c)throw Object.assign(new Error("\u4E91\u7AEF\u52A9\u7406\u7ED1\u5B9A\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5"),{code:"PERSONAL_ASSISTANT_BINDING_UNAVAILABLE"});return c.botId}var St=class extends Error{constructor(){super("Personal Assistant gateway is not connected"),this.name="PersonalAssistantGatewayUnavailableError",this.code="PERSONAL_ASSISTANT_GATEWAY_UNAVAILABLE"}};var Zt=Object.freeze(["slots","connection","sidebarRight"]),xt="personal-assistant",rr=Object.freeze({enabled:!1,autoConnect:!1}),at="personal-assistant-computer",Je="0.1.13 @ 2026-11-02T11:14:33.213Z",Qt=12e3,He;function Jt(e){He=e}var en;function tn(e){en=e&&typeof e.MarkdownText=="function"?e:void 0}var G={background:"var(--dsw-alias-bg-layer-1, #fff)",color:"var(--dsw-alias-label-primary, #17202c)",border:"1px solid var(--dsw-alias-border-default, #d8dee8)"},wt=e=>typeof e?.message=="string"&&e.message&&!/^(fetch failed|Failed to fetch)$/u.test(e.message)?e.message.slice(0,180):"\u4E91\u7535\u8111\u8FDE\u63A5\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5",Xt=e=>e?.code==="PERSONAL_ASSISTANT_DIRECTORY_UNAVAILABLE"&&Number(e?.status)===409?"\u5F53\u524D\u4E91\u7AEF\u7248\u672C\u5C1A\u4E0D\u652F\u6301\u52A9\u7406\u5217\u8868\uFF0C\u8BF7\u66F4\u65B0\u4E91\u7AEF\u52A9\u7406\u540E\u91CD\u8BD5":"\u8FDE\u63A5\u6682\u65F6\u4E0D\u53EF\u7528\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5",Wn=e=>Number(e?.status)===409&&["PERSONAL_ASSISTANT_DIRECTORY_UNSUPPORTED","PERSONAL_ASSISTANT_DIRECTORY_UNAVAILABLE"].includes(e?.code);function It(e){let l=typeof e?.reason=="string"?e.reason:"",a=Array.isArray(e?.candidates)?e.candidates.filter(n=>typeof n?.agentId=="string"&&n.agentId):[],r={id:"check",label:"\u68C0\u67E5\u5F00\u901A\u72B6\u6001"};return a.length>0?{tone:"reuse",title:"\u53D1\u73B0\u5DF2\u5F00\u901A\u7684\u4E2A\u4EBA\u52A9\u7406",detail:`\u8D26\u53F7\u4E0B\u5DF2\u6709 ${a.length} \u4E2A\u4E2A\u4EBA\u52A9\u7406\u3002\u4E00\u4E2A\u5B50\u8D26\u53F7\u53EA\u9700\u8981\u4E00\u4E2A\uFF0C\u76F4\u63A5\u8FDE\u63A5\u5373\u53EF\u590D\u7528\uFF0C\u4E0D\u4F1A\u91CD\u590D\u521B\u5EFA\u3002`,actions:[{id:"connect",label:"\u8FDE\u63A5\u5DF2\u53D1\u73B0\u7684\u4E2A\u4EBA\u52A9\u7406",primary:!0},r]}:l==="needs-create"?{tone:"create",title:"\u5F00\u901A\u4E2A\u4EBA\u52A9\u7406",detail:"\u4E00\u4E2A\u5B50\u8D26\u53F7\u53EF\u5F00\u901A\u4E00\u4E2A\u4E2A\u4EBA\u52A9\u7406\u3002\u5F00\u901A\u540E\u4F1A\u5F97\u5230\u4E00\u4F4D\u4E91\u7AEF\u6301\u7EED\u8FD0\u884C\u7684\u52A9\u7406\u548C\u4E00\u53F0\u4E13\u5C5E\u4E91\u7535\u8111\uFF0C\u5173\u6389 Studio \u4E5F\u4F1A\u7EE7\u7EED\u5DE5\u4F5C\u3002",actions:[{id:"create",label:"\u5F00\u901A\u4E2A\u4EBA\u52A9\u7406",primary:!0},r]}:l==="credential-unavailable"?{tone:"reuse",title:"\u6B63\u5728\u6062\u590D\u8FDE\u63A5\u51ED\u8BC1",detail:"\u4E2A\u4EBA\u52A9\u7406\u5B9E\u4F8B\u5DF2\u7ECF\u5728\u8D26\u53F7\u4E0B\uFF0C\u4F46\u4E91\u7AEF\u6682\u65F6\u6CA1\u6709\u8FD4\u56DE\u8FDE\u63A5\u51ED\u8BC1\u3002\u91CD\u65B0\u83B7\u53D6\u5373\u53EF\u590D\u7528\u73B0\u6709\u5B9E\u4F8B\uFF0C\u4E0D\u9700\u8981\u91CD\u65B0\u5F00\u901A\u3002",actions:[{id:"connect",label:"\u91CD\u65B0\u83B7\u53D6\u8FDE\u63A5\u51ED\u8BC1",primary:!0},r]}:{tone:"retry",title:"\u6682\u65F6\u8BFB\u4E0D\u5230\u5F00\u901A\u72B6\u6001",detail:`${typeof e?.detail=="string"&&e.detail?e.detail:""}\u8BF7\u5148\u786E\u8BA4 Studio \u5DF2\u767B\u5F55\u4E91\u7AEF\u8D26\u53F7\uFF0C\u518D\u91CD\u65B0\u68C0\u67E5\u4E00\u6B21\uFF1B\u786E\u8BA4\u8D26\u53F7\u4E0B\u786E\u5B9E\u6CA1\u6709\u4E2A\u4EBA\u52A9\u7406\u540E\u518D\u5F00\u901A\uFF0C\u907F\u514D\u91CD\u590D\u521B\u5EFA\u3002`,actions:[r,{id:"create",label:"\u786E\u8BA4\u672A\u5F00\u901A\u540E\u5F00\u901A",primary:!1}]}}var nn=e=>e==="reuse"?["\u786E\u8BA4\u8D26\u53F7\u4E0B\u7684\u4E2A\u4EBA\u52A9\u7406\u5B9E\u4F8B","\u76F4\u63A5\u8FDE\u63A5\u5373\u53EF\u590D\u7528\uFF0C\u4E0D\u4F1A\u91CD\u590D\u521B\u5EFA","\u9700\u8981\u770B\u753B\u9762\u6216\u52A8\u624B\u65F6\uFF0C\u6253\u5F00\u300C\u4E91\u7535\u8111\u300D\u63A5\u7BA1"]:["\u767B\u5F55 Studio \u4E91\u7AEF\u8D26\u53F7\uFF0C\u5F00\u901A\u4E2A\u4EBA\u52A9\u7406\uFF08\u7EA6 1\u20132 \u5206\u949F\uFF09","\u8FDE\u63A5\u540E\u5373\u53EF\u5728\u300C\u4E2A\u4EBA\u52A9\u7406\u300D\u9875\u5BF9\u8BDD\uFF0C\u4E91\u7AEF 7\xD724 \u8FD0\u884C","\u9700\u8981\u770B\u753B\u9762\u6216\u52A8\u624B\u65F6\uFF0C\u6253\u5F00\u300C\u4E91\u7535\u8111\u300D\u63A5\u7BA1"],W={page:{flex:"1 1 auto",minHeight:0,overflowY:"auto",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:14,padding:"32px 20px",textAlign:"center",boxSizing:"border-box"},eyebrow:{fontSize:11,letterSpacing:"0.1em",textTransform:"uppercase",color:"var(--dsw-alias-label-secondary, #536174)"},title:{margin:0,fontSize:20,fontWeight:600,letterSpacing:"-0.01em"},detail:{margin:0,maxWidth:460,lineHeight:1.75,color:"var(--dsw-alias-label-secondary, #536174)"},steps:{margin:0,padding:0,listStyle:"none",display:"flex",flexDirection:"column",gap:8,textAlign:"left",maxWidth:460},step:{display:"flex",gap:10,alignItems:"flex-start",lineHeight:1.7},stepIndex:{flex:"none",width:20,height:20,borderRadius:999,display:"grid",placeItems:"center",fontSize:12,background:"color-mix(in srgb, currentColor 10%, transparent)"},actions:{display:"flex",gap:10,flexWrap:"wrap",justifyContent:"center",alignItems:"center",marginTop:4},primary:{...G,borderRadius:8,padding:"8px 16px",cursor:"pointer",font:"inherit",fontSize:13,fontWeight:500,border:"none",background:"var(--dsw-alias-label-primary, #17202c)",color:"var(--dsw-alias-bg-layer-1, #fff)"},ghost:{...G,borderRadius:8,padding:"8px 14px",cursor:"pointer",font:"inherit",fontSize:13,background:"transparent"},notice:{margin:0,maxWidth:460,color:"var(--dsw-alias-label-secondary, #536174)",fontSize:12,lineHeight:1.7},diag:{alignSelf:"center",color:"var(--dsw-alias-label-tertiary, #76808e)",fontSize:11,opacity:.8,maxWidth:"100%",overflowWrap:"anywhere"}},jn={Control:"Control_L",Meta:"Super_L",Alt:"Alt_L",Shift:"Shift_L",Enter:"Return",Escape:"Escape",Tab:"Tab",Backspace:"BackSpace",Delete:"Delete",ArrowUp:"Up",ArrowDown:"Down",ArrowLeft:"Left",ArrowRight:"Right"," ":"space"};function Gt({request:e,initialBotId:l="",openInSidebar:a=null,variant:r="page",nativeFullscreen:c=!1}={}){let n=He||globalThis.React;if(!n)return"\u4E2A\u4EBA\u52A9\u7406\u9875\u9762\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u91CD\u65B0\u6253\u5F00";let{createElement:s,useEffect:o,useRef:g,useState:y}=n,h=n.useLayoutEffect||o,[m,k]=y(null),[_,w]=y([]),[j,H]=y(""),[P,S]=y(null),[ve,O]=y(!1),[D,we]=y(l),[C,N]=y("loading"),[Q,L]=y(""),[ee,ue]=y(!0),[Ve,re]=y(0),[Me,se]=y(0),[pe,Ke]=y("observe"),[Se,V]=y(null),[le,Ne]=y(""),[oe,ye]=y(""),[U,ce]=y(null),[K,de]=y(()=>ot()),[ke,We]=y(null),z=g(null),ie=g(null),M=g(null),fe=g(null),ge=g(null),Ie=g(null),q=g(null),_e=g(null),be=g(null),je=g(c);je.current=c;let I=g({mounted:!0,socket:null,generation:0,frameEpoch:0,session:null,suspended:!1,resuming:!1,pendingInputs:[],display:{width:1280,height:800},readOnly:!0,botId:D,config:null,reconnect:null,firstFrame:null,receivedSeq:-1,pendingFrame:null,decoding:!1,frames:0,lastMove:0,wheelPending:{x:0,y:0},wheelFrame:0,pressed:new Set,buttons:new Set,composition:!1,retries:0,taskId:"",mode:"control",frameMetadata:null,reconnectAllowed:!1,controlError:""});I.current.botId=D;let Te=async(t,d={})=>{if(typeof e!="function")throw new Error("Studio Host \u5C1A\u672A\u8FDE\u63A5");return e(t,d)},Y=t=>{let d=I.current;return d.socket?.readyState!==1?!1:(d.socket.send(JSON.stringify(t)),!0)},et=()=>{let t=I.current;for(let d of t.pressed)z.current?.input({type:"key",action:"up",key:d});for(let d of t.buttons)z.current?.input({type:"button",action:"up",button:d});t.pressed.clear(),t.buttons.clear()},Le=()=>{for(let t of I.current.buttons)z.current?.input({type:"button",action:"up",button:t});I.current.buttons.clear()};z.current||(z.current=Ot({send:Y,changed:t=>{let d=I.current;d.controlPhase=t.phase,d.readOnly=t.readOnly,d.controlEpoch=t.controlEpoch,t.phase==="controlling"&&(d.controlError=""),t.readOnly&&q.current&&(q.current.style.visibility="hidden"),t.phase==="observe"&&(d.pressed.clear(),d.buttons.clear()),d.mounted&&(ue(t.readOnly),Ke(t.phase))},failed:t=>{I.current.controlError=t||"\u63A7\u5236\u6743\u6682\u4E0D\u53EF\u7528",I.current.mounted&&L(t)}})),ie.current||(ie.current=Lt({send:Y,controlEpoch:()=>z.current?.snapshot?.controlEpoch}));let F=()=>{et(),z.current.release(),I.current.pressed.clear(),I.current.buttons.clear()},Ce=()=>{let t=I.current;t.pointerFrame&&cancelAnimationFrame(t.pointerFrame),t.pointerFrame=null;let d=t.lastPointer;t.lastPointer=null,d&&(!t.readOnly||t.controlPhase==="acquiring")&&(!t.sentPointer||d.x!==t.sentPointer.x||d.y!==t.sentPointer.y)&&(z.current.input({type:"pointermove",...d}),t.sentPointer=d)},Qe=()=>{clearTimeout(I.current.reconnect),clearTimeout(I.current.firstFrame),I.current.reconnect=null,I.current.firstFrame=null},Oe=(t=!0)=>{let d=I.current;d.reconnectAllowed=!1,Qe(),F(),d.generation+=1,ie.current?.rejectAll();try{Y({type:"close"}),d.socket?.close(1e3,"panel closed")}catch{}z.current.reset({readOnly:!0}),d.lastDrawnFrame=null,d.socket=null,d.session=null,d.pendingFrame=null,d.frameMetadata=null,d.readOnly=!0,ge.current?.blur(),d.suspended=!1,d.resuming=!1,d.pendingInputs=[],d.frameEpoch++,d.mounted&&ce(null),t&&d.mounted&&(N(d.config?.configured?"idle":"unconfigured"),ue(!0))},Pe=t=>{Oe(!1),ue(!0),N("closed"),L(t?.reason==="lease-lost"||Number(t?.status)===409?"\u63A7\u5236\u79DF\u7EA6\u5DF2\u5931\u6548\uFF0C\u684C\u9762\u8FDE\u63A5\u5DF2\u5173\u95ED\uFF1B\u8BF7\u91CD\u65B0\u8FDE\u63A5\u6216\u9009\u62E9\u53EA\u8BFB\u65C1\u89C2":t?.code==="DESKTOP_SESSION_NOT_FOUND"||Number(t?.status)===404?"\u684C\u9762\u4F1A\u8BDD\u5DF2\u7ED3\u675F\uFF08\u53EF\u80FD\u56E0\u7A7A\u95F2\u8D85\u65F6\uFF09\uFF0C\u8BF7\u91CD\u65B0\u8FDE\u63A5":"\u684C\u9762\u8FDE\u63A5\u5DF2\u7ED3\u675F\uFF0C\u53EF\u91CD\u65B0\u8FDE\u63A5\u4E91\u7535\u8111")},Ee=t=>{let d=I.current;if(t.type!=="pointermove"&&Ce(),d.suspended||d.resuming){if(t.type==="pointermove")return!1;let A=d.mode==="control";if(A){if(d.pendingInputs.length>=32)return Oe(),L("\u6062\u590D\u671F\u95F4\u8F93\u5165\u8FC7\u5FEB\uFF0C\u8BF7\u91CD\u65B0\u8FDE\u63A5"),!1;d.pendingInputs.push(t)}return d.resuming||Be(),A}return!d.session||d.socket?.readyState!==1?(L("\u4E91\u7535\u8111\u5C1A\u672A\u8FDE\u63A5\uFF0C\u8F93\u5165\u672A\u53D1\u9001"),!1):z.current.input(t)},he=t=>{I.current.mounted&&(ye(t),M.current&&clearTimeout(M.current),M.current=setTimeout(()=>{I.current.mounted&&ye("")},4e3))},i=t=>{let d=!1;for(let A of t)d=Ee(A)||d;return d},b=async()=>{let t=I.current,d=z.current?.snapshot;if(!t.session||t.socket?.readyState!==1)return he("\u4E91\u7535\u8111\u5C1A\u672A\u8FDE\u63A5\uFF0C\u8BF7\u5148\u6253\u5F00\u684C\u9762"),!1;if(d&&d.phase==="controlling"&&d.readOnly===!1)return!0;if(t.suspended||t.resuming)return he("\u4E91\u7535\u8111\u6B63\u5728\u6062\u590D\uFF0C\u8BF7\u7A0D\u5019\u518D\u8BD5"),!1;if(!d?.available)return he("\u5F53\u524D\u4E3A\u53EA\u8BFB\u65C1\u89C2\uFF0C\u8BF7\u5148\u6253\u5F00\u63A7\u5236\u6A21\u5F0F"),!1;if(t.controlError="",!z.current.acquire())return he("\u5F53\u524D\u65E0\u6CD5\u63A5\u7BA1\u4E91\u7535\u8111\uFF0C\u8BF7\u91CD\u8BD5"),!1;let A=Date.now()+8e3;for(;Date.now()<A;){await new Promise(J=>setTimeout(J,50));let p=z.current.snapshot;if(p.phase==="controlling"&&p.readOnly===!1)return!0;if(t.controlError)break}return he(t.controlError||"\u63A5\u7BA1\u4E91\u7535\u8111\u8D85\u65F6\uFF0C\u8BF7\u91CD\u8BD5"),!1},f=async()=>{if(!await b())return{ok:!1,code:"CLIPBOARD_CONTROL_REQUIRED"};let t=await ie.current.read().catch(()=>({text:""})),d=!1;if(!I.current.pressed.has("_copyShortcut")){I.current.pressed.add("_copyShortcut");try{d=i(Dt())!==!1}finally{I.current.pressed.delete("_copyShortcut")}}if(!d)return he("\u590D\u5236\u6309\u952E\u672A\u53D1\u9001\uFF0C\u8BF7\u5148\u63A5\u7BA1\u4E91\u7535\u8111\u540E\u518D\u8BD5"),{ok:!1,code:"CLIPBOARD_KEY_NOT_SENT"};let A;try{A=await Nt({readCloud:()=>ie.current.read(),beforeText:st(t)})}catch(p){return he(p?.message||"\u8BFB\u53D6\u4E91\u7535\u8111\u526A\u8D34\u677F\u5931\u8D25\uFF0C\u8BF7\u91CD\u8BD5"),{ok:!1,code:p?.code||"CLIPBOARD_READ_FAILED"}}return zt({readCloud:async()=>A,writeLocal:p=>v(p),notify:he})},u=async()=>{try{let t=await Te("personal-assistant.clipboard.read");if(typeof t?.text=="string")return t.text}catch{}return pt()},v=async t=>{try{await Te("personal-assistant.clipboard.write",{text:String(t??"")});return}catch{}await ft(String(t??""))},E=()=>gt({readLocal:()=>u(),writeCloud:t=>ie.current.write(t),sendKeys:i,ensureControl:b,notify:he}),B=t=>gt({readLocal:async()=>String(t??""),writeCloud:d=>ie.current.write(d),sendKeys:i,ensureControl:b,notify:he}),Ae=async()=>{let t=I.current;if(!t.decoding){t.decoding=!0;try{for(;t.pendingFrame;){let d=t.pendingFrame;t.pendingFrame=null;let A;try{if(A=await createImageBitmap(new Blob([d.bytes],{type:"image/jpeg"})),!t.mounted||t.suspended||d.frameEpoch!==t.frameEpoch||d.generation!==t.generation||d.seq<t.receivedSeq||!fe.current)continue;t.lastDrawnFrame=d;let p=fe.current,J=p.getBoundingClientRect(),ae=Math.max(1,globalThis.devicePixelRatio||1);p.width=Math.max(1,Math.round(J.width*ae)),p.height=Math.max(1,Math.round(J.height*ae));let ne=p.getContext("2d"),X=t.display,me=Math.min(p.width/X.width,p.height/X.height),Ue=X.width*me,R=X.height*me;ne.clearRect(0,0,p.width,p.height),ne.drawImage(A,(p.width-Ue)/2,(p.height-R)/2,Ue,R);let Fe=t.firstFrame!==null;t.frames+=1,clearTimeout(t.firstFrame),t.firstFrame=null,t.retries=0,Fe&&L(""),N(t.readOnly?"readonly":"ready"),re(0)}catch{t.mounted&&L("\u684C\u9762\u5E27\u65E0\u6CD5\u89E3\u7801\uFF0C\u8BF7\u91CD\u8BD5")}finally{A?.close()}}}finally{t.decoding=!1}}},Z=t=>{let d=I.current;clearTimeout(d.firstFrame),d.firstFrame=null,d.suspended=!0,d.resuming=!1,d.readOnly=!0,d.pendingInputs=[],d.frameEpoch++,d.pendingFrame=null,d.frameMetadata=null,d.pressed.clear(),d.buttons.clear(),d.frames=0,se(0),ue(!0),N("dormant"),L(t?.leaseReleased===!1?"\u5DF2\u7A7A\u95F2\uFF0C\u753B\u9762\u5DF2\u6682\u505C\uFF1B\u63A7\u5236\u6743\u4ECD\u7531\u5916\u90E8\u4EFB\u52A1\u7BA1\u7406":"\u5DF2\u7A7A\u95F2\uFF0C\u63A7\u5236\u6743\u5DF2\u91CA\u653E\uFF1B\u64CD\u4F5C\u684C\u9762\u5373\u53EF\u6062\u590D")},Be=()=>{let t=I.current;if(t.resuming||!t.suspended)return;if(t.socket?.readyState!==1){Re(t.mode,!1,t.pendingInputs);return}t.resuming=!0,N("resuming"),L("\u6B63\u5728\u6062\u590D\u684C\u9762\u5E76\u68C0\u67E5\u63A7\u5236\u6743\uFF0C\u8BF7\u7A0D\u5019\u3002"),Y({type:"resume",mode:t.mode,activity:!0});let d=t.generation,A=t.socket;t.firstFrame=setTimeout(()=>{t.mounted&&t.generation===d&&t.firstFrame!==null&&A.close(4e3,"resume frame timeout")},Qt)},Re=async(t="read",d=!1,A=[])=>{let p=I.current,J=String(p.botId||"").trim();if(!p.config?.configured){N("unconfigured");return}if(!J||!p.bots?.some(ne=>ne.botId===J)){L("\u4E91\u7AEF\u52A9\u7406\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5");return}Oe(!1),p.pendingInputs=A,p.resuming=A.length>0;let ae=++p.generation;p.reconnectAllowed=!0,d||(p.retries=0),p.mode=t,p.taskId||=`studio-desktop-${globalThis.crypto.randomUUID()}`,p.receivedSeq=-1,p.frameMetadata=null,N(d?"reconnecting":"connecting"),L("\u9996\u6B21\u6216\u4F11\u7720\u540E\u8FDE\u63A5\u53EF\u80FD\u9700\u8981\u6570\u79D2\uFF0C\u8BF7\u7A0D\u5019\u3002");try{let ne=await Te("personal-assistant.desktop.ticket",{agentId:p.config.agentId,botId:J,mode:t==="observe"?"control":t});if(!p.mounted||ae!==p.generation)return;let X=new WebSocket(ne.wsUrl,["agentkit.personal-assistant.desktop.v1",`agentkit.desktop.ticket.${ne.ticket}`]);X.binaryType="arraybuffer",p.socket=X;let me=()=>p.mounted&&p.generation===ae;X.onopen=()=>{if(!me()){X.close();return}Y({type:"open",botId:J,taskId:p.taskId,mode:t,...ne.leaseId?{leaseId:ne.leaseId}:{}}),p.firstFrame=setTimeout(()=>{me()&&(L("\u4E91\u7535\u8111\u54CD\u5E94\u8F83\u6162\uFF0C\u6B63\u5728\u91CD\u65B0\u8FDE\u63A5"),X.close(4e3,"first frame timeout"))},Qt)},X.onmessage=Ue=>{if(!me())return;if(typeof Ue.data!="string"){let Fe=p.frameMetadata;p.frameMetadata=null;let Ge=Ue.data;if(!Fe||!Number.isSafeInteger(Fe.seq)||Fe.seq<=p.receivedSeq||!(Ge instanceof ArrayBuffer)||Ge.byteLength===0||Ge.byteLength>307200||p.suspended)return;p.receivedSeq=Fe.seq,p.pendingFrame={bytes:Ge,seq:Fe.seq,generation:ae,frameEpoch:p.frameEpoch},Ae();return}let R;try{R=JSON.parse(Ue.data)}catch{return}if(R.type==="ready"){p.suspended=!1,p.resuming=!1,p.receivedSeq=-1,p.session=R.sessionId,p.readOnly=!!R.readOnly,p.display=ot(R.display),de(p.display),ce(R.diagnostics||null),p.mode=t,z.current.reset(R);let Fe=p.pendingInputs;if(p.pendingInputs=[],p.readOnly)p.pressed.clear(),p.buttons.clear();else for(let Ge of Fe)z.current.input(Ge);ue(p.readOnly),L("\u4E91\u7535\u8111\u5DF2\u8FDE\u63A5\uFF0C\u6B63\u5728\u51C6\u5907\u684C\u9762\u753B\u9762");return}if(R.type==="control"){z.current.accept(R),L("");return}if(R.type==="idle"){Z(R);return}if(R.type==="frame"){R.unchanged||(p.frameMetadata=R);return}if(R.type==="clipboard.response"){ie.current?.accept(R);return}if(R.type==="closed"){R.retryable!==!0&&Pe(R);return}if(R.type==="error"){if(ie.current?.accept(R)||Number.isSafeInteger(R.controlEpoch)&&R.controlEpoch<p.controlEpoch)return;if(L(R.message||R.code||"\u4E91\u7535\u8111\u8BF7\u6C42\u5931\u8D25"),p.handoffSupported&&R.recoverable===!0){z.current.reject(R);return}if(R.recoverable===!0&&Number(R.status)===409){R.code==="DESKTOP_SESSION_IDLE"?Z():(p.pendingInputs=[],p.readOnly=!0,p.pressed.clear(),p.buttons.clear(),ue(!0),N("readonly"));return}if(Number(R.status)===409&&t==="control"&&!p.session){Re(I.current.handoffSupported?"observe":"read");return}[404,409].includes(Number(R.status))||R.code==="DESKTOP_SESSION_NOT_FOUND"?Pe(R):p.session||(N("error"),Oe(!1))}},X.onerror=()=>{me()&&L("\u684C\u9762\u901A\u9053\u6682\u65F6\u65AD\u5F00\uFF0C\u6B63\u5728\u91CD\u8FDE")},X.onclose=Ue=>{if(!me())return;if(ie.current?.rejectAll(),p.suspended&&Ue.code!==1e3){clearTimeout(p.firstFrame),p.firstFrame=null,p.socket=null,N("dormant");return}if(p.session=null,clearTimeout(p.firstFrame),p.firstFrame=null,!p.reconnectAllowed||Ue.code===1e3){Pe();return}if(document.hidden){N("hidden");return}let R=++p.retries;if(re(R),R>5){p.reconnectAllowed=!1,N("error"),L("\u65E0\u6CD5\u8FDE\u63A5\u4E91\u7535\u8111\uFF0C\u8BF7\u68C0\u67E5\u5B9E\u4F8B\u72B6\u6001\u6216\u7F51\u7EDC\u540E\u91CD\u8BD5");return}N("reconnecting"),p.reconnect=setTimeout(()=>{Re(t,!0,p.pendingInputs)},Math.min(8e3,1e3*2**(R-1)))}}catch(ne){p.mounted&&ae===p.generation&&(N("error"),L(Xt(ne)))}},lt=async t=>{if(t?.aborted)return null;try{let d=await Te("personal-assistant.desktop.status");return d&&typeof d=="object"?d:null}catch(d){return d?.code==="PERSONAL_ASSISTANT_OPERATION_UNAVAILABLE"||d?.status===404?null:{configured:!1,reason:"unavailable",detail:wt(d),candidates:[]}}},ct=async t=>{if(!le){Ne(t),L(t==="create"?"\u6B63\u5728\u521B\u5EFA\u4E2A\u4EBA\u52A9\u7406\uFF0C\u53EF\u80FD\u9700\u8981\u51E0\u5206\u949F\u2026":"\u6B63\u5728\u83B7\u53D6\u4E91\u7AEF\u8FDE\u63A5\u51ED\u8BC1\u2026");try{await Te(`personal-assistant.desktop.${t}`),L(""),await qe()}catch(d){L(wt(d)),V(await lt().catch(()=>null))}finally{Ne("")}}},qe=async(t,d=!1)=>{Oe(!1),N("loading"),L(""),H(""),S(null);try{let A=await Te("personal-assistant.configuration");if(t?.aborted||!I.current.mounted)return;if(I.current.config=A,k(A),!A.configured){let ne=await lt(t);if(t?.aborted||!I.current.mounted)return;if(I.current.bots=[],w([]),we(""),V(ne),N("unconfigured"),ne?.configured&&!d){await qe(t,!0);return}return}V(null);let p=await Te("personal-assistant.bots.list");if(t?.aborted||!I.current.mounted)return;if(p.directoryAvailable!==!0)throw Object.assign(new Error("directory unavailable"),{code:"PERSONAL_ASSISTANT_DIRECTORY_UNAVAILABLE",status:409});let J=ht(p.bots);I.current.bots=J,I.current.handoffSupported=p.features?.includes("desktop-handoff/v1")===!0,w(J);let ae=J.length?mt(J,l||A.botId):"";I.current.botId=ae,we(ae),N(J.length?"idle":"empty"),ae&&["computer","native-tab"].includes(r)&&Re(I.current.handoffSupported?"observe":"read")}catch(A){if(t?.aborted||!I.current.mounted)return;Number.isInteger(A?.closeCode)&&A.closeCode>=1e3&&A.closeCode<=4999&&S(A.closeCode),I.current.bots=[],w([]),we("");let p=d?null:await lt(t).catch(()=>null);if(t?.aborted||!I.current.mounted)return;if(p?.configured){V(null),await qe(t,!0);return}if(p){V(typeof p.reason=="string"&&p.reason?p:{...p,reason:"unavailable",detail:wt(A)}),N("unconfigured");return}N("directory-error"),H(Wn(A)?"\u4E91\u7AEF\u52A9\u7406\u9700\u8981\u66F4\u65B0\uFF0C\u8BF7\u66F4\u65B0\u540E\u91CD\u65B0\u8FDE\u63A5\u3002":Xt(A))}};o(()=>{let t=I.current;t.mounted=!0;let d=new AbortController;qe(d.signal);let A=setInterval(()=>{t.mounted&&se(t.frames),t.frames=0},1e3),p=()=>{document.hidden?(F(),Y({type:"pause"})):t.socket?.readyState===1?Y({type:"resume"}):t.reconnectAllowed&&t.config?.configured&&t.session===null&&t.socket&&Re(t.mode,!0)},J=typeof ResizeObserver=="function"?new ResizeObserver(()=>{t.lastDrawnFrame&&(t.pendingFrame=t.lastDrawnFrame,Ae())}):null;fe.current&&J?.observe(fe.current);let ae=()=>F(),ne=X=>{Ie.current?.contains(X.target)||F()};return document.addEventListener("visibilitychange",p),window.addEventListener("blur",ae),document.addEventListener("pointerdown",ne,!0),()=>{t.mounted=!1,J?.disconnect(),t.pointerFrame&&cancelAnimationFrame(t.pointerFrame),t.wheelFrame&&cancelAnimationFrame(t.wheelFrame),d.abort(),Oe(!1),clearInterval(A),document.removeEventListener("visibilitychange",p),window.removeEventListener("blur",ae),document.removeEventListener("pointerdown",ne,!0)}},[e]);let dt=t=>Rt({clientX:t.clientX,clientY:t.clientY,rect:fe.current.getBoundingClientRect(),display:I.current.display}),on=t=>{t.preventDefault();let d=I.current,A=d.wheelPending||(d.wheelPending={x:0,y:0});d.wheelPending={x:A.x+(Number(t.deltaX)||0),y:A.y+(Number(t.deltaY)||0)},!d.wheelFrame&&(d.wheelFrame=requestAnimationFrame(()=>{if(d.wheelFrame=0,!d.mounted)return;let p=Ct(d.wheelPending);d.wheelPending=p.pending,!(!p.clicks.deltaX&&!p.clicks.deltaY)&&Ee({type:"wheel",deltaX:p.clicks.deltaX,deltaY:p.clicks.deltaY})}))},vt=t=>{t.preventDefault();let d=I.current,A=[1,2,3][t.button]||1;t.type==="pointerdown"?(ge.current?.focus(),fe.current?.setPointerCapture(t.pointerId),Ee({type:"button",action:"down",button:A,...dt(t)})&&d.buttons.add(A)):(Ee({type:"button",action:"up",button:A,...dt(t)}),d.buttons.delete(A),fe.current?.hasPointerCapture(t.pointerId)&&fe.current.releasePointerCapture(t.pointerId))},it=t=>{if(I.current.composition||t.isComposing||t.nativeEvent?.isComposing||t.key==="Process"||t.key==="Unidentified")return;if(Pt(t)){t.preventDefault(),E();return}if(Bt(t)){t.preventDefault(),t.type==="keydown"&&!t.repeat&&f();return}let d=t.ctrlKey||t.metaKey||t.altKey;if(t.key.length===1&&!d||t.key==="Escape"&&je.current)return;t.preventDefault();let A=jn[t.key]||t.key;/^[A-Za-z0-9_]+$/u.test(A)&&(t.type==="keydown"?!t.repeat&&Ee({type:"key",action:"down",key:A})&&I.current.pressed.add(A):(Ee({type:"key",action:"up",key:A}),I.current.pressed.delete(A)))},ut={loading:"\u6B63\u5728\u68C0\u67E5\u52A9\u7406\u72B6\u6001",idle:"\u51C6\u5907\u8FDE\u63A5",dormant:"\u5DF2\u7A7A\u95F2",resuming:"\u6B63\u5728\u6062\u590D\u684C\u9762",unconfigured:"\u4E2A\u4EBA\u52A9\u7406\u5C1A\u672A\u5F00\u901A",empty:"\u6682\u65F6\u6CA1\u6709\u53EF\u7528\u52A9\u7406","directory-error":"\u6682\u65F6\u65E0\u6CD5\u8BFB\u53D6\u52A9\u7406\u5217\u8868",connecting:"\u6B63\u5728\u542F\u52A8\u4E91\u7535\u8111",readonly:"\u53EA\u8BFB\u65C1\u89C2",ready:"\u6B63\u5728\u63A7\u5236\u4E91\u7535\u8111",reconnecting:"\u6B63\u5728\u6062\u590D\u8FDE\u63A5",hidden:"\u753B\u9762\u5DF2\u6682\u505C",closed:"\u684C\u9762\u8FDE\u63A5\u5DF2\u7ED3\u675F",error:"\u8FDE\u63A5\u6682\u65F6\u4E0D\u53EF\u7528"}[C],ze={...G,borderRadius:6,padding:"7px 12px",cursor:"pointer",font:"inherit"},te=["ready","readonly","hidden","reconnecting","dormant","resuming"].includes(C),De=_.length>0,$e=Se?.reason||"",sn=Array.isArray(Se?.candidates)?Se.candidates.length:0,an=$e==="needs-create"?"\u8FD8\u6CA1\u6709\u521B\u5EFA\u4E2A\u4EBA\u52A9\u7406":$e==="credential-unavailable"?"\u6B63\u5728\u6062\u590D\u4E2A\u4EBA\u52A9\u7406\u7684\u8FDE\u63A5\u51ED\u8BC1":$e==="unavailable"?"\u6682\u65F6\u65E0\u6CD5\u81EA\u52A8\u8FDE\u63A5\u4E2A\u4EBA\u52A9\u7406":"\u4E2A\u4EBA\u52A9\u7406\u5C1A\u672A\u5F00\u901A",ln=$e==="needs-create"?"\u4E91\u8D26\u53F7\u4E0B\u8FD8\u6CA1\u6709\u4E2A\u4EBA\u52A9\u7406\u5B9E\u4F8B\uFF0C\u521B\u5EFA\u540E\u5373\u53EF\u5728\u8FD9\u91CC\u8FDE\u63A5\u4E13\u5C5E\u4E91\u7535\u8111\u3002":$e==="credential-unavailable"?"\u4E91\u7AEF\u6682\u65F6\u6CA1\u6709\u8FD4\u56DE\u8FDE\u63A5\u51ED\u8BC1\uFF0C\u53EF\u4EE5\u91CD\u65B0\u83B7\u53D6\u3002":$e==="unavailable"?Se?.detail||"\u8BF7\u68C0\u67E5\u4E91\u7AEF\u767B\u5F55\u72B6\u6001\u540E\u91CD\u8BD5\u3002":"\u5F00\u901A\u5B8C\u6210\u540E\uFF0C\u5373\u53EF\u5728\u8FD9\u91CC\u8FDE\u63A5\u4E13\u5C5E\u4E91\u7535\u8111\u3002",cn=C==="unconfigured"?an:C==="empty"?"\u52A9\u7406\u6B63\u5728\u51C6\u5907\u4E2D":C==="directory-error"?"\u6682\u65F6\u65E0\u6CD5\u8FDE\u63A5\u4E91\u7AEF\u52A9\u7406":"\u6B63\u5728\u68C0\u67E5\u52A9\u7406\u72B6\u6001",dn=C==="unconfigured"?ln:C==="empty"?"\u4E91\u7AEF\u521D\u59CB\u5316\u5B8C\u6210\u540E\uFF0C\u53EF\u7528\u52A9\u7406\u4F1A\u663E\u793A\u5728\u8FD9\u91CC\u3002":C==="directory-error"?j:"\u8BF7\u7A0D\u5019",Xe=r==="computer"||r==="native-tab";h(()=>{if(!Xe)return;let t=_e.current;if(!t)return;let d=()=>{let p=t.getBoundingClientRect(),J=be.current?.getBoundingClientRect?.().height||0,ae=te||De?Math.min(128,Math.max(44,J)):0,ne=Math.max(0,p.height-(ae?ae+10:0)),X=_t({availableWidth:p.width,availableHeight:ne,display:K,maxWidth:1280});We(me=>X.width>0&&X.height>0?me&&Math.abs(me.width-X.width)<.5&&Math.abs(me.height-X.height)<.5?me:X:me??null)};d();let A=typeof ResizeObserver=="function"?new ResizeObserver(d):null;return A?.observe(t),be.current&&A?.observe(be.current),()=>A?.disconnect()},[Xe,K,te,De,pe,Q,oe]);let tt=C==="unconfigured"?It(Se):null,un=t=>{t==="check"?qe():ct(t)},Et=tt?s("div",{"data-personal-assistant-onboarding":"true",style:W.page},s("div",{"data-window-drag":"",style:{display:"flex",flexDirection:"column",gap:4,alignItems:"center"}},s("div",{style:W.eyebrow},"\u4E2A\u4EBA\u52A9\u7406 \xB7 \u5F00\u901A\u5F15\u5BFC"),s("h2",{style:W.title},tt.title)),s("p",{style:W.detail},tt.detail),s("ol",{style:W.steps},nn(tt.tone).map((t,d)=>s("li",{key:t,style:W.step},s("span",{style:W.stepIndex},String(d+1)),s("span",null,t)))),s("div",{style:W.actions},tt.actions.map(t=>s("button",{key:t.id,disabled:!!le,style:t.primary?W.primary:W.ghost,onClick:()=>un(t.id)},le===t.id?t.id==="create"?"\u6B63\u5728\u5F00\u901A\u2026":t.id==="connect"?"\u6B63\u5728\u8FDE\u63A5\u2026":"\u68C0\u67E5\u4E2D\u2026":t.label)),le?s("span",{role:"status",style:W.notice},"\u5904\u7406\u4E2D\uFF0C\u8BF7\u7A0D\u5019\u2026"):null),Q?s("p",{role:"status",style:W.notice},Q):null,s("details",{style:W.diag},s("summary",{style:{cursor:"pointer"}},"\u8BCA\u65AD"),s("small",{"data-personal-assistant-build":Je},`\u6784\u5EFA ${Je}`))):null,At=s("div",{ref:Ie,"data-personal-assistant-desktop-card":Xe?"true":void 0,style:{position:"relative",background:"var(--dsw-alias-bg-layer-2, #f1f3f6)",...Xe?{...ke&&ke.width>0&&ke.height>0?{width:`${ke.width}px`,height:`${ke.height}px`}:{width:"100%",aspectRatio:`${K.width} / ${K.height}`},flex:"none",minWidth:0,borderRadius:14,overflow:"hidden",boxShadow:"0 0 0 1px var(--dsw-alias-border-default, #d8dee8), 0 8px 28px #1018280d"}:{flex:1,minHeight:240}}},["dormant","resuming"].includes(C)?s("div",{role:"status",style:{position:"absolute",inset:0,zIndex:1,pointerEvents:"none",display:"grid",placeItems:"center",padding:16,textAlign:"center",background:"color-mix(in srgb, var(--dsw-alias-bg-layer-1, #fff) 82%, transparent)",color:"var(--dsw-alias-label-primary, #17202c)"}},C==="dormant"?"\u5DF2\u7A7A\u95F2\uFF0C\u64CD\u4F5C\u684C\u9762\u5373\u53EF\u6062\u590D":"\u6B63\u5728\u6062\u590D\u684C\u9762\u2026"):null,s("canvas",{ref:fe,"aria-label":"\u4E91\u7535\u8111\u684C\u9762",tabIndex:te?0:-1,onPointerDown:vt,onPointerUp:vt,onPointerCancel:Le,onLostPointerCapture:Le,onPointerLeave:()=>{q.current&&(q.current.style.visibility="hidden")},onPointerMove:t=>{let d=I.current,A=t.nativeEvent?.getCoalescedEvents?.().at(-1)||t;if(q.current){let p=fe.current.getBoundingClientRect();q.current.style.transform=`translate(${A.clientX-p.left}px, ${A.clientY-p.top}px)`,q.current.style.visibility=d.readOnly?"hidden":"visible"}d.lastPointer=dt(A),d.pointerFrame||(d.pointerFrame=requestAnimationFrame(()=>{d.mounted&&Ce()}))},onContextMenu:t=>t.preventDefault(),onWheel:on,onKeyDown:it,onKeyUp:it,style:{...Xe?{position:"absolute",inset:0}:{},width:"100%",height:"100%",display:"block",visibility:te?"visible":"hidden",pointerEvents:te?"auto":"none",touchAction:"none",cursor:ee?"default":"none"}}),s("div",{ref:q,"aria-hidden":!0,style:{position:"absolute",top:0,left:0,pointerEvents:"none",visibility:"hidden",zIndex:2,width:18,height:22}},s("svg",{viewBox:"0 0 18 22",width:18,height:22},s("path",{d:"M1 1v16l4-4 3 7 3-1-3-7h6z",fill:"#fff",stroke:"#162033",strokeWidth:1.2}))),te?null:s("div",{style:{position:"absolute",inset:0,display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:10,padding:16,textAlign:"center"}},s("h2",{style:{margin:0,fontSize:18,fontWeight:500}},De?ut:cn),s("p",{style:{margin:0,maxWidth:380,lineHeight:1.7,color:"var(--dsw-alias-label-secondary, #536174)"}},De?Q||"\u8FDE\u63A5\u540E\u5373\u53EF\u4F7F\u7528\u4E91\u7AEF\u684C\u9762\uFF0C\u5173\u95ED\u9762\u677F\u4F1A\u91CA\u653E\u672C\u6B21\u63A7\u5236\u3002":dn),!De&&C!=="loading"?s("div",{style:{display:"flex",gap:8,flexWrap:"wrap",justifyContent:"center",alignItems:"center"}},C==="unconfigured"&&$e==="needs-create"?s("button",{style:ze,disabled:!!le,onClick:()=>{ct("create")}},le==="create"?"\u6B63\u5728\u521B\u5EFA\u2026":"\u521B\u5EFA\u4E2A\u4EBA\u52A9\u7406"):null,C==="unconfigured"&&($e==="credential-unavailable"||sn>0)?s("button",{style:ze,disabled:!!le,onClick:()=>{ct("connect")}},le==="connect"?"\u6B63\u5728\u83B7\u53D6\u2026":$e==="credential-unavailable"?"\u91CD\u65B0\u83B7\u53D6\u8FDE\u63A5\u51ED\u8BC1":"\u8FDE\u63A5\u5DF2\u53D1\u73B0\u7684\u4E2A\u4EBA\u52A9\u7406"):null,s("button",{style:{...ze,background:"transparent"},disabled:!!le,onClick:()=>{qe()}},"\u68C0\u67E5\u5F00\u901A\u72B6\u6001"),le?s("span",{role:"status",style:{color:"var(--dsw-alias-label-secondary, #536174)",fontSize:12}},"\u5904\u7406\u4E2D\uFF0C\u8BF7\u7A0D\u5019\u2026"):null):null),s("input",{ref:ge,"aria-label":"\u4E91\u7535\u8111\u6587\u672C\u8F93\u5165",autoComplete:"off",disabled:!te||ee&&!z.current.snapshot.available&&!(I.current.mode==="control"&&["dormant","resuming"].includes(C)),tabIndex:-1,style:{position:"absolute",width:1,height:1,opacity:0,left:0,top:0},onKeyDown:it,onKeyUp:it,onPaste:t=>{let d=t.clipboardData?.getData?.("text/plain")??"";d&&(t.preventDefault(),B(d))},onCompositionStart:()=>{I.current.composition=!0},onCompositionEnd:t=>{I.current.composition=!1;let d=t.currentTarget.value;t.currentTarget.value="",d&&Ee({type:"text",text:d})},onInput:t=>{if(I.current.composition||t.nativeEvent?.isComposing)return;let d=t.currentTarget.value;t.currentTarget.value="",d&&Ee({type:"text",text:d})}})),nt="var(--dsw-alias-label-secondary, #536174)",pn={...ze,background:"transparent",color:"inherit",border:G.border},kt={...ze,borderRadius:999,padding:"7px 16px",border:"none",fontWeight:500,background:"var(--dsw-alias-label-primary, #17202c)",color:"var(--dsw-alias-bg-layer-1, #fff)"};return Xe?s("section",{"data-personal-assistant-computer":"true",style:{...G,border:"none",height:"100%",minHeight:0,minWidth:0,display:"flex",flexDirection:"column",background:"var(--dsw-alias-bg-base, #fff)",color:"inherit",fontSize:13}},r!=="native-tab"?s("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"8px 12px",borderBottom:G.border}},s("strong",{style:{fontWeight:500}},"\u4E91\u7535\u8111"),s("span",{role:"status","aria-live":"polite",style:{color:nt,fontSize:12}},ut),null):null,ee&&te&&!z.current.snapshot.available?s("div",{role:"alert",style:{background:"#fff0d6",color:"#763c00",padding:"8px 12px"}},"\u53EA\u8BFB\u65C1\u89C2\uFF1A\u9F20\u6807\u548C\u952E\u76D8\u4E0D\u4F1A\u53D1\u9001\u5230\u4E91\u7535\u8111"):null,s("div",{"data-personal-assistant-desktop-layout":"true",style:{flex:1,minHeight:0,minWidth:0,overflow:"hidden",display:"flex",flexDirection:"column",alignItems:"center",gap:12,padding:"20px 16px 12px",boxSizing:"border-box"}},s("div",{ref:_e,"data-personal-assistant-desktop-stack":"true",style:{width:"100%",maxWidth:1280,minHeight:0,flex:"1 1 auto",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:10}},Et||At,te||De?s("div",{ref:be,"data-personal-assistant-control-capsule":"true",role:"status","aria-live":"polite",style:{flex:"none",display:"flex",flexWrap:"wrap",justifyContent:"center",alignItems:"center",gap:6,width:"fit-content",maxWidth:"100%",boxSizing:"border-box",padding:"7px 12px",borderRadius:999,background:"var(--dsw-alias-bg-layer-1, #fff)",border:G.border,boxShadow:"0 1px 4px #10182808",lineHeight:1.5}},!te&&De?s("button",{style:kt,disabled:["connecting","resuming"].includes(C),onClick:()=>{Re(I.current.handoffSupported?"observe":"read")}},C==="connecting"?"\u6B63\u5728\u542F\u52A8\u2026":"\u91CD\u65B0\u8FDE\u63A5"):null,te&&ee?s("span",{style:{color:nt,fontSize:12}},pe==="acquiring"?"\u6B63\u5728\u63A5\u7BA1\u2026":pe==="releasing"?"\u6B63\u5728\u4EA4\u8FD8\u2026":"\u52A9\u7406\u6B63\u5728\u4F7F\u7528 \xB7 \u70B9\u753B\u9762\u5373\u53EF\u63A5\u7BA1"):null,te&&ee&&z.current.snapshot.available?s("button",{style:{...kt,padding:"3px 9px",fontSize:11},onClick:()=>z.current.acquire()},"\u63A5\u7BA1"):null,te&&!ee?s("span",{style:{color:nt,fontSize:12}},"\u60A8\u62E5\u6709\u63A7\u5236\u6743 \xB7 \u70B9\u753B\u9762\u5916\u91CA\u653E"):null,te&&!ee?s("button",{style:{...pn,padding:"3px 9px",fontSize:11},onClick:F},"\u4EA4\u8FD8"):null,te&&Q?s("span",{style:{color:nt,fontSize:12}},Q):null,te&&oe?s("span",{role:"status","aria-live":"polite",style:{color:nt,fontSize:12}},oe):null):null)),s("details",{style:{flex:"none",alignSelf:"flex-end",color:"var(--dsw-alias-label-tertiary, #76808e)",fontSize:11,opacity:.8,maxWidth:"100%",overflowWrap:"anywhere"}},s("summary",{style:{cursor:"pointer"}},"\u8BCA\u65AD"),s("div",{style:{paddingTop:8,lineHeight:1.7}},s("div",null,`\u5BA2\u6237\u7AEF\uFF1A${Je}`),U?s("div",null,`\u4E91\u7535\u8111\u5305\uFF1A${U.packageVersion||"\u672A\u77E5"} \xB7 \u6E05\u5355\uFF1A${U.manifestVersion||"\u672A\u77E5"}`):null,U?.runtimeBuild&&U.runtimeBuild!=="unknown"?s("div",null,`\u8FD0\u884C\u65F6\u6784\u5EFA\uFF1A${U.runtimeBuild}`):null,U?.computerImage&&U.computerImage!=="unknown"?s("div",null,`\u7535\u8111\u955C\u50CF\uFF1A${U.computerImage}`):null,U?.dock?s("div",null,`Dock\uFF1A${U.dock.position} \xB7 ${U.dock.iconCount} \u4E2A\u56FE\u6807`):null))):s("section",{"data-personal-assistant-panel":"true",style:{...G,border:"none",height:"100%",minHeight:0,display:"flex",flexDirection:"column",fontSize:13}},s("header",{style:{display:"flex",flexWrap:"wrap",gap:8,alignItems:"center",padding:12,borderBottom:G.border}},s("strong",{style:{fontWeight:500,marginRight:8}},"\u4E2A\u4EBA\u52A9\u7406"),De&&["idle","closed","error"].includes(C)?s("button",{style:ze,onClick:()=>{qe()}},"\u5237\u65B0\u52A9\u7406\u5217\u8868"):null,typeof a=="function"?s("button",{style:ze,onClick:a},"\u653E\u5230\u53F3\u4FA7\u680F"):null,De?s("button",{style:ze,disabled:["connecting","resuming"].includes(C),onClick:()=>C==="dormant"?Be():void Re(I.current.handoffSupported?"observe":"control")},C==="dormant"?"\u6062\u590D\u753B\u9762":ee&&C==="readonly"?"\u7533\u8BF7\u63A7\u5236":te?"\u91CD\u65B0\u8FDE\u63A5":"\u8FDE\u63A5\u4E91\u7535\u8111"):null,De?s("button",{style:ze,disabled:C==="connecting",onClick:()=>{Re("read")}},"\u53EA\u8BFB\u65C1\u89C2"):null,te?s("span",{role:"status","aria-live":"polite",style:{marginLeft:"auto",color:"var(--dsw-alias-label-secondary, #536174)"}},ut):null),C==="readonly"?s("div",{role:"alert",style:{background:"#fff0d6",color:"#763c00",padding:"8px 12px"}},"\u5F53\u524D\u4E3A\u53EA\u8BFB\u65C1\u89C2\uFF0C\u9F20\u6807\u548C\u952E\u76D8\u8F93\u5165\u4E0D\u4F1A\u53D1\u9001\uFF1B\u53EF\u7533\u8BF7\u63A7\u5236"):null,te&&Q?s("div",{role:"status",style:{padding:"8px 12px"}},Q):null,Et||At,s("footer",{style:{display:"flex",alignItems:"start",justifyContent:"space-between",gap:12,padding:"7px 12px",color:"var(--dsw-alias-label-secondary, #536174)",borderTop:G.border}},s("details",{open:ve,onToggle:t=>O(t.currentTarget.open)},s("summary",{style:{cursor:"pointer"}},"\u8BCA\u65AD"),P?s("div",{style:{paddingTop:8}},`\u76EE\u5F55\u8FDE\u63A5\u5173\u95ED\u7801\uFF1A${P}`):null,s("div",{style:{paddingTop:8,lineHeight:1.8,overflowWrap:"anywhere"}},s("div",null,`\u4E91\u7AEF\u5B9E\u4F8B\uFF1A${m?.agentId||"\u672A\u5F00\u901A"}`),s("div",null,`\u8FDE\u63A5\u6807\u8BC6\uFF1A${D||"\u672A\u8FDE\u63A5"}`),s("div",null,`\u753B\u9762\u5E27\u7387\uFF1A${Me} fps`),U?s("div",null,`\u4E91\u7535\u8111\u5305\uFF1A${U.packageVersion||"\u672A\u77E5"} \xB7 \u6E05\u5355\uFF1A${U.manifestVersion||"\u672A\u77E5"}`):null,U?.dock?s("div",null,`Dock\uFF1A${U.dock.position} \xB7 ${U.dock.iconCount} \u4E2A\u56FE\u6807`):null,s("div",null,"\u5FEB\u6377\u952E\u4F1A\u8F6C\u53D1\u5230\u4E91\u7535\u8111\uFF1BEsc \u4F18\u5148\u9000\u51FA\u5168\u5C4F"))),s("small",{"data-personal-assistant-build":Je,style:{opacity:.75}},`\u6784\u5EFA ${Je}`)))}function Hn({request:e,nativeWorkbench:l}={}){let a=He||globalThis.React;if(!a)return"\u4E2A\u4EBA\u52A9\u7406\u9875\u9762\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u91CD\u65B0\u6253\u5F00";let{createElement:r,useEffect:c,useState:n,useCallback:s}=a,[o,g]=n(null),[y,h]=n(""),[m,k]=n(null),[_,w]=n(""),[j,H]=n(0);c(()=>{let O=!1;return g(null),h(""),k(null),(async()=>{try{let D=await e("personal-assistant.configuration");if(!D.configured){let N=await e("personal-assistant.desktop.status").catch(()=>null);O||k(N||{configured:!1,reason:"unavailable",candidates:[]});return}let we=await e("personal-assistant.bots.list");if(we.directoryAvailable!==!0)throw new Error("\u6682\u65F6\u65E0\u6CD5\u8FDE\u63A5\u4E91\u7AEF\u52A9\u7406\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5");let C=mt(we.bots,D.botId||we.primaryBotId);O||g({agentId:D.agentId,botId:C})}catch(D){O||h(D.message||"\u4E91\u7AEF\u52A9\u7406\u6682\u4E0D\u53EF\u7528")}})(),()=>{O=!0}},[e,j]);let P=s((O,D={})=>{if(!o)throw new Error("\u4E91\u7AEF\u52A9\u7406\u5C1A\u672A\u8FDE\u63A5");if(D.agentId&&D.agentId!==o.agentId)throw new Error("\u4E91\u7AEF\u5B9E\u4F8B\u4E0D\u4E00\u81F4");if(O!=="personal-assistant.bots.list"&&D.botId&&D.botId!==o.botId)throw new Error("\u4E91\u7AEF\u52A9\u7406\u4E0D\u4E00\u81F4");return e(O,{...D,...o})},[e,o?.agentId,o?.botId]);c(()=>{o&&l?.available?l.bind(o,P):o&&h(l?.unavailableReason||"\u5F53\u524D\u5BBF\u4E3B\u9700\u8981\u66F4\u65B0\u539F\u751F\u4FA7\u680F\u7EC4\u4EF6")},[l,P,o?.agentId,o?.botId]);let S=m?It(m):null,ve=O=>{_||(w(O),h(""),(async()=>{try{await e(`personal-assistant.desktop.${O}`),H(D=>D+1)}catch(D){h(D?.message||"\u64CD\u4F5C\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5")}finally{w("")}})())};return!o&&S?r("div",{"data-personal-assistant-onboarding":"true",style:W.page},r("div",{"data-window-drag":"",style:{display:"flex",flexDirection:"column",gap:4,alignItems:"center"}},r("div",{style:W.eyebrow},"\u4E2A\u4EBA\u52A9\u7406 \xB7 \u5F00\u901A\u5F15\u5BFC"),r("h2",{style:W.title},S.title)),r("p",{style:W.detail},S.detail),r("ol",{style:W.steps},nn(S.tone).map((O,D)=>r("li",{key:O,style:W.step},r("span",{style:W.stepIndex},String(D+1)),r("span",null,O)))),r("div",{style:W.actions},S.actions.map(O=>r("button",{key:O.id,disabled:!!_,style:O.primary?W.primary:W.ghost,onClick:()=>O.id==="check"?H(D=>D+1):ve(O.id)},_===O.id?"\u5904\u7406\u4E2D\u2026":O.label))),y?r("p",{role:"alert",style:{...W.notice,color:"#b42318"}},y):null):o?l?.available?r("div",{key:`${o.agentId}:${o.botId}`,"data-personal-assistant-home":"true","data-agent-id":o.agentId,"data-bot-id":o.botId,style:{flex:"1 1 0px",height:"100%",maxHeight:"100%",minHeight:0,minWidth:0,overflow:"hidden",boxSizing:"border-box",display:"flex",flexDirection:"column"}},r(Ht,{React:a,request:P,scope:o,markdown:en,onOpenComputer:()=>l.open()})):r("div",{role:"alert",style:{padding:24}},"\u5F53\u524D\u5BBF\u4E3B\u5C1A\u672A\u63D0\u4F9B\u539F\u751F\u4E91\u7535\u8111\u4FA7\u680F\uFF0C\u8BF7\u66F4\u65B0 Studio \u540E\u91CD\u65B0\u6253\u5F00\u3002"):r("div",{role:"status",style:{padding:24}},y||"\u6B63\u5728\u8FDE\u63A5\u4E91\u7AEF\u4E2A\u4EBA\u52A9\u7406\u2026",y?r("button",{onClick:()=>H(O=>O+1)},"\u91CD\u65B0\u8FDE\u63A5"):null)}var x={page:{padding:"2px 2px 28px",display:"flex",flexDirection:"column",gap:18,maxWidth:700,fontSize:13,color:"var(--dsw-alias-label-primary, #17202c)"},title:{margin:0,fontSize:18,fontWeight:600,letterSpacing:"-0.01em"},lede:{margin:0,color:"var(--dsw-alias-label-secondary, #536174)",fontSize:13,lineHeight:1.7},card:{border:G.border,borderRadius:12,overflow:"hidden"},row:{display:"flex",gap:16,padding:"12px 14px",borderTop:"1px solid var(--dsw-alias-border-default, #d8dee8)",alignItems:"flex-start"},rowFirst:{display:"flex",gap:16,padding:"12px 14px",alignItems:"flex-start"},label:{width:116,flex:"none",color:"var(--dsw-alias-label-secondary, #536174)",fontSize:13,lineHeight:1.7},value:{flex:1,minWidth:0,fontSize:13,lineHeight:1.7,overflowWrap:"anywhere"},mono:{fontFamily:"ui-monospace, SFMono-Regular, Menlo, monospace",fontSize:12},actions:{display:"flex",gap:8,alignItems:"center",flexWrap:"wrap"},button:{...G,borderRadius:8,padding:"6px 11px",cursor:"pointer",font:"inherit",fontSize:13},note:{color:"var(--dsw-alias-label-secondary, #536174)",fontSize:12,lineHeight:1.7},badge:{display:"inline-block",borderRadius:999,padding:"1px 8px",fontSize:12,lineHeight:1.7},badgeOk:{background:"color-mix(in srgb, #067647 12%, transparent)",color:"#067647"},badgeIdle:{background:"color-mix(in srgb, #946200 14%, transparent)",color:"#946200"},badgeError:{background:"color-mix(in srgb, #b42318 12%, transparent)",color:"#b42318"},dangerButton:{...G,borderRadius:8,padding:"6px 11px",cursor:"pointer",font:"inherit",fontSize:13,color:"#b42318",border:"1px solid color-mix(in srgb, #b42318 35%, transparent)",background:"transparent"},confirmBox:{border:"1px solid color-mix(in srgb, #b42318 30%, transparent)",borderRadius:12,padding:"12px 14px",display:"flex",flexDirection:"column",gap:10,background:"color-mix(in srgb, #b42318 4%, transparent)"},dangerInput:{...G,border:"1px solid var(--dsw-alias-border-default, #d8dee8)",borderRadius:8,padding:"6px 9px",font:"inherit",fontSize:12,width:"100%",maxWidth:360,boxSizing:"border-box"},danger:{...G,borderRadius:8,padding:"6px 11px",cursor:"pointer",font:"inherit",fontSize:13,color:"#fff",border:"1px solid #b42318",background:"#b42318"},dangerDisabled:{...G,borderRadius:8,padding:"6px 11px",cursor:"not-allowed",font:"inherit",fontSize:13,color:"#fff",border:"1px solid color-mix(in srgb, #b42318 35%, transparent)",background:"color-mix(in srgb, #b42318 35%, transparent)"},success:{color:"#067647",fontSize:12,lineHeight:1.7},input:{...G,border:"1px solid var(--dsw-alias-border-default, #d8dee8)",borderRadius:8,padding:"6px 9px",font:"inherit",fontSize:12,width:"100%",maxWidth:360,boxSizing:"border-box"},textarea:{...G,border:"1px solid var(--dsw-alias-border-default, #d8dee8)",borderRadius:8,padding:"6px 9px",font:"inherit",fontSize:12,width:"100%",minHeight:76,resize:"vertical",boxSizing:"border-box"},envRow:{display:"flex",gap:6,alignItems:"center",marginBottom:6,flexWrap:"wrap"},envKey:{...G,border:"1px solid var(--dsw-alias-border-default, #d8dee8)",borderRadius:8,padding:"5px 8px",font:"inherit",fontSize:12,width:190,boxSizing:"border-box"},envValue:{...G,border:"1px solid var(--dsw-alias-border-default, #d8dee8)",borderRadius:8,padding:"5px 8px",font:"inherit",fontSize:12,width:220,boxSizing:"border-box"},tinyButton:{...G,borderRadius:8,padding:"4px 8px",cursor:"pointer",font:"inherit",fontSize:12}};function Vn({request:e,openComputer:l=null}={}){let a=He||globalThis.React;if(!a)return"\u8BBE\u7F6E\u9875\u5C1A\u672A\u5C31\u7EEA\uFF0C\u8BF7\u91CD\u65B0\u6253\u5F00 Studio";let{createElement:r,useEffect:c,useState:n,useCallback:s}=a,[o,g]=n(null),[y,h]=n(null),[m,k]=n(""),[_,w]=n(!1),[j,H]=n(""),[P,S]=n(!1),[ve,O]=n(""),[D,we]=n(!1),[C,N]=n(""),[Q,L]=n(null),[ee,ue]=n(null),[Ve,re]=n(""),[Me,se]=n(""),[pe,Ke]=n(""),[Se,V]=n([]),[le,Ne]=n([]),[oe,ye]=n(""),[U,ce]=n(""),[K,de]=n(!1),[ke,We]=n(null),[z,ie]=n(""),M=s(async()=>{w(!0),k("");let i=Date.now();try{let b=await e("personal-assistant.configuration");if(g(b),b?.configured?We(null):We(await e("personal-assistant.desktop.status").catch(()=>null)),b?.configured){let f=await e("personal-assistant.bots.list");h(Array.isArray(f?.bots)?f.bots:[]);try{let u=await e("personal-assistant.settings.inspect");L(u),re(u?.model||""),se(u?.prompt||""),Ke(u?.runtime?.version||""),V((u?.environmentVariables||[]).map(E=>({...E,saved:!0,dirty:!1}))),Ne([]),ye("");let v=await e("personal-assistant.settings.versions",{currentVersion:u?.runtime?.version||""}).catch(E=>(ye(E?.message||"\u6682\u65F6\u8BFB\u4E0D\u5230\u53EF\u5347\u7EA7\u7684\u7248\u672C"),null));ue(v)}catch(u){L(null),ue(null),ye(u?.message||"\u8BFB\u53D6\u4E91\u7AEF\u914D\u7F6E\u5931\u8D25")}}else h([]),L(null),ue(null);H(`${new Date().toLocaleTimeString("zh-CN",{hour12:!1})} \xB7 ${Date.now()-i} ms`)}catch(b){k(b?.message||"\u8FDE\u63A5\u68C0\u67E5\u5931\u8D25"),H(`${new Date().toLocaleTimeString("zh-CN",{hour12:!1})} \xB7 \u5931\u8D25`)}finally{w(!1)}},[e]),fe=s(async i=>{if(!z){ie(i),k("");try{await e(`personal-assistant.desktop.${i}`),await M()}catch(b){k(b?.message||"\u64CD\u4F5C\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5")}finally{ie("")}}},[z,M,e]),ge=o?.agentId||"",Ie=!!ge&&ve.trim()===ge,q=s(async()=>{if(Ie){we(!0),k("");try{await e("personal-assistant.desktop.destroy",{confirmAgentId:ge}),S(!1),O(""),N("\u4E2A\u4EBA\u52A9\u7406\u5DF2\u5173\u95ED\uFF1A\u4E91\u7AEF\u5B9E\u4F8B\u5DF2\u5220\u9664\uFF0C\u5173\u8054\u7684\u4E91\u8D44\u6E90\u8BA2\u5355\u6B63\u5728\u91CA\u653E\uFF0C\u672C\u673A\u7ED1\u5B9A\u5DF2\u6E05\u9664\u3002"),g({configured:!1}),h([]),H("")}catch(i){let b=String(i?.message||"");k(/更新 Studio|云连接服务/iu.test(b)?"\u5F53\u524D Studio \u7248\u672C\u8FD8\u4E0D\u652F\u6301\u5173\u95ED\u4E2A\u4EBA\u52A9\u7406\uFF0C\u8BF7\u66F4\u65B0 Studio \u540E\u91CD\u8BD5\u3002":b||"\u5173\u95ED\u4E2A\u4EBA\u52A9\u7406\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5")}finally{we(!1)}}},[ge,Ie,e]),_e=(i,b)=>V(f=>f.map((u,v)=>v===i?{...u,...b,dirty:!0}:u)),be=()=>V(i=>[...i,{key:"",value:"",sensitive:!1,saved:!1,dirty:!0}]),je=i=>{let b=Se[i];b&&(V(f=>f.filter((u,v)=>v!==i)),b.saved&&b.key&&Ne(f=>f.includes(b.key)?f:[...f,b.key]))},I=Q?.recordSource==="studio",Te=s(async()=>{if(!(!I||K)){de(!0),ye(""),ce("");try{let i=Se.filter(b=>b.dirty===!0||b.saved!==!0).map(b=>({key:String(b.key||"").trim(),value:String(b.value||""),sensitive:b.sensitive===!0}));await e("personal-assistant.settings.update",{model:Ve.trim(),prompt:Me,runtimeVersion:pe,environmentVariables:i,deleteKeys:le}),ce(`\u5DF2\u63D0\u4EA4\u4E91\u7AEF\u66F4\u65B0\uFF08\u7248\u672C ${pe}\uFF09\uFF0C\u4E2A\u4EBA\u52A9\u7406\u6B63\u5728\u5E94\u7528\u65B0\u914D\u7F6E\uFF0C\u901A\u5E38 1\u20132 \u5206\u949F\u5B8C\u6210\uFF0C\u671F\u95F4\u4E91\u7535\u8111\u4F1A\u77ED\u6682\u91CD\u8FDE\u3002`),Ne([]);try{let b=await e("personal-assistant.settings.inspect");L(b),re(b?.model||""),se(b?.prompt||""),Ke(b?.runtime?.version||pe),V((b?.environmentVariables||[]).map(f=>({...f,saved:!0,dirty:!1})))}catch{}}catch(i){ye(i?.message||"\u4FDD\u5B58\u914D\u7F6E\u5931\u8D25\uFF0C\u8BF7\u7A0D\u540E\u91CD\u8BD5")}finally{de(!1)}}},[I,le,Se,Ve,Me,e,K,pe]);c(()=>{M()},[M]);let Y=o?.configured===!0,et=o===null?"\u68C0\u67E5\u4E2D":Y?"\u5DF2\u5F00\u901A":"\u5C1A\u672A\u5F00\u901A",Le={...x.badge,...o===null?x.badgeIdle:Y?x.badgeOk:x.badgeIdle},F=(i,b,f=!1)=>r("div",{style:f?x.rowFirst:x.row},r("div",{style:x.label},i),r("div",{style:x.value},b)),Ce=Y?null:It(ke),Qe=Ce?r("div",{"data-personal-assistant-onboarding":"true",style:x.card},r("div",{style:{...x.rowFirst,flexDirection:"column",gap:8,alignItems:"stretch"}},r("div",{style:{fontSize:15,fontWeight:600}},Ce.title),r("div",{style:x.note},Ce.detail),r("div",{style:x.actions},Ce.actions.map(i=>r("button",{key:i.id,disabled:!!z,style:i.primary?x.button:{...x.button,background:"transparent"},onClick:()=>i.id==="check"?void M():void fe(i.id)},z===i.id?"\u5904\u7406\u4E2D\u2026":i.label))))):null,Oe={...x.note,display:"inline-flex",gap:4,alignItems:"center"},Pe={...x.actions,marginTop:6},Ee={display:"flex",flexDirection:"column",gap:8},he=()=>{if(!Q)return r("div",{style:x.card},F("\u4E91\u7AEF\u914D\u7F6E",r("div",{style:x.note},K?"\u8BFB\u53D6\u4E2D\u2026":oe||"\u6682\u65F6\u8BFB\u4E0D\u5230\u4E91\u7AEF\u914D\u7F6E\uFF1B\u8BF7\u70B9\u4E0B\u65B9\u201C\u68C0\u67E5\u8FDE\u63A5\u201D\u91CD\u8BD5"),!0));if(Q.recordSource!=="studio")return r("div",{style:x.card},F("\u4E91\u7AEF\u914D\u7F6E",r("div",{style:x.note},"\u8FD9\u4E2A\u4E2A\u4EBA\u52A9\u7406\u662F\u7528\u65E7\u7248 Studio \u521B\u5EFA\u7684\uFF0C\u672C\u673A\u6CA1\u6709\u8BB0\u5F55\u5B83\u7684\u914D\u7F6E\u6E05\u5355\uFF0C\u6682\u65F6\u4E0D\u80FD\u5728\u7EBF\u4FEE\u6539\u3002\u53EF\u4EE5\u5173\u95ED\u540E\u91CD\u65B0\u521B\u5EFA\uFF1B\u7B49\u4E91\u7AEF\u5E73\u53F0\u63D0\u4F9B\u8BFB\u53D6\u63A5\u53E3\u540E\u5373\u53EF\u76F4\u63A5\u7F16\u8F91\u3002"),!0));let i=ee&&ee.catalogAvailable?r("select",{style:x.input,value:pe,disabled:K,"aria-label":"\u8FD0\u884C\u65F6\u7248\u672C",onChange:u=>Ke(String(u?.target?.value??""))},ee.versions.map(u=>r("option",{key:u.version,value:u.version},u.version===Q.runtime?.version?`${u.version}\uFF08\u5F53\u524D\uFF09`:u.version))):r("div",{style:x.note},`${Q.runtime?.version||pe||"\u672A\u77E5\u7248\u672C"} \xB7 \u4E91\u7AEF\u8FD8\u6CA1\u6709\u53D1\u5E03\u53EF\u5347\u7EA7\u7248\u672C`),b=r("div",null,Se.length?Se.map((u,v)=>r("div",{key:`env-${v}`,style:x.envRow},r("input",{style:x.envKey,value:u.key,placeholder:"KEY","aria-label":"\u73AF\u5883\u53D8\u91CF\u540D",disabled:K||u.saved===!0,onChange:E=>_e(v,{key:String(E?.target?.value??"")})}),r("input",{style:x.envValue,value:u.value,"aria-label":"\u73AF\u5883\u53D8\u91CF\u503C",type:u.sensitive===!0?"password":"text",disabled:K,placeholder:u.saved===!0&&u.sensitive===!0?"\u5DF2\u4FDD\u5B58\uFF08\u7559\u7A7A\u4E0D\u4FEE\u6539\uFF09":"VALUE",onChange:E=>_e(v,{value:String(E?.target?.value??"")})}),r("label",{style:Oe},r("input",{type:"checkbox",checked:u.sensitive===!0,disabled:K,onChange:E=>_e(v,{sensitive:E?.target?.checked===!0})}),"\u654F\u611F"),r("button",{style:x.tinyButton,disabled:K,onClick:()=>je(v)},"\u5220\u9664"))):r("div",{style:x.note},"\u8FD8\u6CA1\u6709\u914D\u7F6E\u73AF\u5883\u53D8\u91CF"),r("div",{style:Pe},r("button",{style:x.tinyButton,disabled:K,onClick:be},"\u6DFB\u52A0\u53D8\u91CF"),r("span",{style:x.note},"\u5DF2\u4FDD\u5B58\u7684\u654F\u611F\u503C\u4E0D\u4F1A\u56DE\u663E\uFF0C\u7559\u7A7A\u8868\u793A\u4E0D\u4FEE\u6539\uFF1B\u5220\u9664\u540E\u4FDD\u5B58\u751F\u6548"))),f=r("div",{style:Ee},U?r("div",{style:x.success},U):null,oe?r("div",{style:{...x.note,color:"#b42318"}},oe):null,r("div",{style:x.actions},r("button",{style:x.button,disabled:K,onClick:()=>{Te()}},K?"\u6B63\u5728\u4FDD\u5B58\u2026":"\u4FDD\u5B58\u914D\u7F6E"),r("span",{style:x.note},"\u4FDD\u5B58\u4F1A\u63D0\u4EA4\u4E00\u6B21\u4E91\u7AEF\u66F4\u65B0\uFF0C\u7531\u4E91\u7AEF\u6EDA\u52A8\u5E94\u7528")));return r("div",{style:x.card},F("\u4E91\u7AEF\u914D\u7F6E",r("div",{style:x.note},"\u6A21\u578B\u3001\u7CFB\u7EDF\u63D0\u793A\u8BCD\u3001\u8FD0\u884C\u65F6\u7248\u672C\u548C\u73AF\u5883\u53D8\u91CF\u4FDD\u5B58\u5728\u4E91\u7AEF\u5B9E\u4F8B\u3002\u4FDD\u5B58\u65F6\u63D0\u4EA4\u4E00\u6B21\u4E91\u7AEF\u66F4\u65B0\uFF0C\u7531\u4E91\u7AEF\u6EDA\u52A8\u5E94\u7528\u5230\u5B9E\u4F8B\uFF0C\u4E0D\u9700\u8981\u672C\u673A\u91CD\u542F\u3002"),!0),Q.detailAvailable===!1?F("\u8BF4\u660E",r("div",{style:x.note},Q.detailNote||"\u4E91\u7AEF\u5E73\u53F0\u6682\u65F6\u6CA1\u6709\u8FD4\u56DE\u5B9E\u4F8B\u8BE6\u60C5\uFF0C\u4E0B\u9762\u663E\u793A\u7684\u662F\u672C\u673A\u8BB0\u5F55\u7684\u914D\u7F6E\uFF1B\u73AF\u5883\u53D8\u91CF\u8BE6\u60C5\u6682\u65F6\u4E0D\u53EF\u89C1\u3002")):null,F("\u6A21\u578B",r("input",{style:x.input,value:Ve,disabled:K,placeholder:"\u4F8B\u5982 deepseek-v4.1-flash-1017","aria-label":"\u6A21\u578B\u540D\u79F0",onChange:u=>re(String(u?.target?.value??""))})),F("\u7CFB\u7EDF\u63D0\u793A\u8BCD",r("textarea",{style:x.textarea,value:Me,disabled:K,"aria-label":"\u7CFB\u7EDF\u63D0\u793A\u8BCD",onChange:u=>se(String(u?.target?.value??""))})),F("\u8FD0\u884C\u65F6\u7248\u672C",i),F("\u73AF\u5883\u53D8\u91CF",b),F("\u4FDD\u5B58",f))};return r("section",{"data-personal-assistant-settings":"true",style:x.page},r("div",{"data-window-drag":""},r("h1",{style:x.title},"\u4E2A\u4EBA\u52A9\u7406"),r("p",{style:{...x.lede,marginTop:6}},"\u4E91\u7AEF\u6301\u7EED\u8FD0\u884C\u7684\u52A9\u7406\uFF0C\u5E26\u4E00\u53F0\u72EC\u7ACB\u4E91\u7535\u8111\u3002\u5173\u6389\u7A97\u53E3\u5B83\u4E5F\u5728\u5DE5\u4F5C\uFF1B\u5BF9\u8BDD\u4E0E\u4E91\u7535\u8111\u5728\u5DE6\u4FA7\u300C\u4E2A\u4EBA\u52A9\u7406\u300D\u9875\u3002")),m?r("div",{role:"alert",style:{...x.note,color:"#b42318",background:"color-mix(in srgb, #b42318 8%, transparent)",border:"1px solid color-mix(in srgb, #b42318 25%, transparent)",borderRadius:10,padding:"9px 12px"}},m):null,Qe,r("div",{style:x.card},F("\u72B6\u6001",r("span",null,r("span",{style:Le},et),j?r("span",{style:x.note},`\u3000\u4E0A\u6B21\u68C0\u67E5 ${j}`):null),!0),F("\u4E91\u7AEF\u5B9E\u4F8B",o?.agentId?r("span",{style:x.mono},o.agentId):r("span",{style:x.note},Y?"\u672A\u8FD4\u56DE\u5B9E\u4F8B\u6807\u8BC6":"\u5F00\u901A\u540E\u7531 Studio \u7ED1\u5B9A")),F("\u7F51\u5173",o?.gatewayUrl?r("span",{style:x.mono},o.gatewayUrl):r("span",{style:x.note},"\u7531 Studio Host \u914D\u7F6E")),F("\u52A9\u7406\u8FDE\u63A5",r("span",{style:x.note},y===null?"\u68C0\u67E5\u4E2D":y.length?"\u5DF2\u8FDE\u63A5\u4F60\u7684\u52A9\u7406":"\u52A9\u7406\u5C1A\u672A\u5C31\u7EEA")),F("\u8BB0\u5FC6",r("div",null,r("div",{style:x.mono},"/workspace/assistant-state"),r("div",{style:x.note},"\u8BB0\u5FC6\u3001\u4F1A\u8BDD\u4E0E\u5B9A\u65F6\u4EFB\u52A1\u968F\u4E91\u7535\u8111\u6301\u4E45\u4FDD\u5B58\uFF0C\u6362\u8BBE\u5907\u4E5F\u5728"))),F("\u4E91\u7AEF\u80FD\u529B",r("div",null,r("div",null,"\u9ED8\u8BA4\u5F00\u542F\uFF1A\u4E91\u7AEF\u547D\u4EE4\u6267\u884C\u3001\u4E91\u7AEF\u6D4F\u89C8\u5668"),r("div",{style:x.note},"\u90FD\u8DD1\u5728\u9694\u79BB\u5DE5\u4F5C\u533A\uFF1A\u8BFB\u4E0D\u5230\u672C\u673A\u6587\u4EF6\u4E0E\u51ED\u8BC1\uFF0C\u4E0D\u80FD\u8BBF\u95EE\u5185\u7F51\u4E0E\u672C\u673A\u5730\u5740\uFF1B\u654F\u611F\u64CD\u4F5C\u4F1A\u5148\u8BF7\u4F60\u786E\u8BA4"))),F("\u63D2\u4EF6\u7248\u672C",r("span",{style:x.note},`\u6784\u5EFA ${Je}`))),Y?he():null,Y||C?r("div",{style:x.card},F("\u5173\u95ED\u4E2A\u4EBA\u52A9\u7406",r("div",{style:{display:"flex",flexDirection:"column",gap:8}},r("div",{style:x.note},"\u5173\u95ED\u4F1A\u5220\u9664\u4E91\u7AEF\u5B9E\u4F8B\uFF08\u4E91\u7535\u8111 Pod\uFF09\u548C\u4E91\u7AEF\u52A9\u7406\u6570\u636E\uFF0C\u5E76\u91CA\u653E\u5173\u8054\u7684\u4E91\u8D44\u6E90\u8BA2\u5355\uFF1B\u672C\u673A\u7ED1\u5B9A\u4E5F\u4F1A\u4E00\u5E76\u6E05\u9664\uFF0C\u4E4B\u540E\u53EF\u91CD\u65B0\u521B\u5EFA\u3002"),C?r("div",{style:x.success},C):null,P?r("div",{style:x.confirmBox},r("div",{style:{...x.note,color:"#b42318"}},"\u6B64\u64CD\u4F5C\u4E0D\u53EF\u64A4\u9500\u3002\u8BF7\u8F93\u5165\u4E0A\u65B9\u300C\u4E91\u7AEF\u5B9E\u4F8B\u300D\u7684\u6807\u8BC6\u4EE5\u786E\u8BA4\u5173\u95ED\uFF1A"),r("input",{style:x.dangerInput,value:ve,placeholder:ge||"ar-\u2026","aria-label":"\u8F93\u5165\u4E91\u7AEF\u5B9E\u4F8B\u6807\u8BC6\u4EE5\u786E\u8BA4\u5173\u95ED",disabled:D,onChange:i=>O(String(i?.target?.value??""))}),r("div",{style:x.actions},r("button",{style:Ie&&!D?x.danger:x.dangerDisabled,disabled:!Ie||D,onClick:()=>{q()}},D?"\u6B63\u5728\u5173\u95ED\u2026":"\u786E\u8BA4\u5173\u95ED\u4E2A\u4EBA\u52A9\u7406"),r("button",{style:x.button,disabled:D,onClick:()=>{S(!1),O("")}},"\u53D6\u6D88"))):r("div",{style:x.actions},r("button",{style:x.dangerButton,disabled:!Y||D,onClick:()=>{S(!0),O(""),N("")}},"\u5173\u95ED\u4E2A\u4EBA\u52A9\u7406"),r("span",{style:x.note},Y?"\u9700\u8981\u8F93\u5165\u5B9E\u4F8B\u6807\u8BC6\u4E8C\u6B21\u786E\u8BA4":"\u5F53\u524D\u6CA1\u6709\u5DF2\u5F00\u901A\u7684\u4E2A\u4EBA\u52A9\u7406"))),!0)):null,r("div",{style:x.actions},r("button",{style:x.button,disabled:_,onClick:()=>{M()}},_?"\u6B63\u5728\u68C0\u67E5\u2026":"\u68C0\u67E5\u8FDE\u63A5"),r("span",{style:x.note},"\u68C0\u67E5\u4F1A\u8BFB\u53D6\u5F00\u901A\u72B6\u6001\u5E76\u62C9\u53D6\u4E00\u6B21\u52A9\u7406\u5217\u8868\uFF0C\u4E0D\u4F1A\u542F\u52A8\u4E91\u7535\u8111")))}function Kn({size:e}={}){let l=He,a=Number(e)>0?Number(e):16;return l?.createElement?l.createElement("svg",{width:a,height:a,viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:1.4,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",focusable:"false",style:{display:"block"}},l.createElement("path",{d:"M3.4 3.2h9.2a1.3 1.3 0 0 1 1.3 1.3H7.7l-2.9 2.3v-2.3H3.4a1.3 1.3 0 0 1-1.3-1.3V4.5a1.3 1.3 0 0 1 1.3-1.3z"}),l.createElement("path",{d:"M8.1 5.6l.62 1.46 1.46.62-1.46.62L8.1 9.76l-.62-1.46-1.46-.62 1.46-.62z"})):"\u52A9"}function qn({size:e}={}){let l=He,a=Number(e)>0?Number(e):16;return l?.createElement?l.createElement("svg",{width:a,height:a,viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:1.4,strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",focusable:"false",style:{display:"block",flex:"0 0 auto"}},l.createElement("rect",{x:2.2,y:3.4,width:11.6,height:7.4,rx:1.4}),l.createElement("path",{d:"M6.6 13.4h2.8"}),l.createElement("path",{d:"M8 10.8v2.6"})):null}function Yn(){let e=He,l=qn({size:15});return!e?.createElement||!l?"\u4E91\u7535\u8111":e.createElement("span",{style:{display:"inline-flex",alignItems:"center",gap:"6px",lineHeight:1}},l,e.createElement("span",null,"\u4E91\u7535\u8111"))}function rn(e){if(!e?.slots?.inject||!e.slots.register)throw new TypeError("Personal Assistant client requires the public DSH slots service");let l=async(n,s={})=>{if(!e.connection?.rpc?.call)throw new St;let o=await e.connection.rpc.call("/api","personal-assistant",{operation:n,payload:s});if(!o?.ok)throw Object.assign(new Error(o?.error?.message||"Studio Host \u8BF7\u6C42\u5931\u8D25"),{code:o?.error?.code,status:o?.error?.details?.status,closeCode:o?.error?.details?.closeCode});return o.value},a=(n,s)=>{try{let o=()=>n();return typeof e.effect=="function"?e.effect(o,s):o()}catch(o){try{console.warn(`[personal-assistant] ${s} \u6CE8\u518C\u5931\u8D25`,o)}catch{}return}},r=qt({sidebarRight:e.sidebarRight,slots:e.slots});r&&(r.render=n=>Yt({...n,React:He||globalThis.React,workbench:r,Panel:Gt}),a(()=>()=>r.dispose(),"personal-assistant: native workbench")),a(()=>e.slots.inject("main",()=>e.slots.register({name:"main",key:xt,inject:()=>({request:l,nativeWorkbench:r})},Hn)),"personal-assistant: main panel"),a(()=>e.slots.inject("sidebar.panellist",()=>e.slots.register({name:"sidebar.panellist",id:xt,order:90,label:"\u4E2A\u4EBA\u52A9\u7406"},Kn)),"personal-assistant: sidebar row"),a(()=>e.slots.inject("settings.section",()=>e.slots.register({name:"settings.section",id:`${xt}-settings`,order:196,label:"\u4E2A\u4EBA\u52A9\u7406",inject:()=>({request:l})},Vn)),"personal-assistant: settings section"),typeof e.inject=="function"&&a(()=>e.inject(["sidebarRightTabs"],n=>{let s=[],o=g=>{typeof g=="function"&&s.push(g)};try{let g=n.sidebarRightTabs;if(g===void 0||typeof g.register!="function")return;o(g.register({id:at,kind:at,title:()=>"\u4E91\u7535\u8111",guide:[{order:20,title:()=>"\u4E91\u7535\u8111",description:()=>"\u4E2A\u4EBA\u52A9\u7406\u7684\u4E91\u7AEF\u7535\u8111\u753B\u9762\uFF0C\u53EF\u83B7\u53D6\u63A7\u5236\u6743"}]})),o(n.slots.inject("sidebar.right.pane.tab",()=>n.slots.register({name:"sidebar.right.pane.tab",key:at,inject:()=>({request:l})},y=>Gt({...y,variant:"computer"})))),o(n.slots.inject("sidebar.right.pane.tab.title",()=>n.slots.register({name:"sidebar.right.pane.tab.title",key:at},Yn)))}catch(g){try{console.warn("[personal-assistant] \u53F3\u4FA7\u680F\u6CE8\u518C\u5931\u8D25",g)}catch{}}return()=>{for(let g of s.reverse())g()}}),"personal-assistant: right tab")}window.__ModuleLoader__.load({id:"@kingsoftcloud/agentkit-personal-assistant",factory:e=>{Jt(e("react"));let l;try{l=e("@deepseek-ai/dsh-client-ui-primitives")}catch{l=void 0}return tn(l),{name:"agentkit-personal-assistant",inject:Zt,apply:rn}}});})();
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kingsoftcloud/agentkit-personal-assistant",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.13",
|
|
4
4
|
"description": "Standalone personal assistant DSH plugin with multi-Bot profiles and an explicit Cloud Computer Broker boundary.",
|
|
5
5
|
"homepage": "https://github.com/kingsoftcloud/agentkit-personal-assistant",
|
|
6
6
|
"repository": {
|
package/src/client/markdown.mjs
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* 极简 Markdown 渲染:只覆盖模型回答里真正常见的语法,不引入第三方依赖。
|
|
3
3
|
*
|
|
4
4
|
* 支持:围栏代码块、行内代码、粗体、斜体、链接、无序/有序列表、引用、标题、
|
|
5
|
-
*
|
|
5
|
+
* GFM 表格、分隔线、段落内换行。已知限制:不解析嵌套列表、HTML(一律按文本转义显示)。
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
8
|
const FENCE = /^```\s*([\w+#.-]*)\s*$/u;
|
|
@@ -11,6 +11,39 @@ const UL = /^\s*[-*+]\s+(.*)$/u;
|
|
|
11
11
|
const OL = /^\s*(\d{1,3})[.)]\s+(.*)$/u;
|
|
12
12
|
const QUOTE = /^\s*>\s?(.*)$/u;
|
|
13
13
|
const RULE = /^\s*([-*_])\s*(?:\1\s*){2,}$/u;
|
|
14
|
+
const TABLE_SEPARATOR = /^:?-{1,}:?$/u;
|
|
15
|
+
|
|
16
|
+
/** 拆分一行表格,支持首尾管道符和转义的 `\\|`。 */
|
|
17
|
+
function splitTableRow(line) {
|
|
18
|
+
let value = typeof line === 'string' ? line.trim() : '';
|
|
19
|
+
if (value.startsWith('|')) value = value.slice(1);
|
|
20
|
+
if (value.endsWith('|') && !value.endsWith('\\|')) value = value.slice(0, -1);
|
|
21
|
+
const cells = [];
|
|
22
|
+
let cell = '';
|
|
23
|
+
for (let index = 0; index < value.length; index += 1) {
|
|
24
|
+
const character = value[index];
|
|
25
|
+
if (character === '\\' && value[index + 1] === '|') { cell += '|'; index += 1; continue; }
|
|
26
|
+
if (character === '|') { cells.push(cell.trim()); cell = ''; continue; }
|
|
27
|
+
cell += character;
|
|
28
|
+
}
|
|
29
|
+
cells.push(cell.trim());
|
|
30
|
+
return cells;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function tableAlignment(cell) {
|
|
34
|
+
const value = String(cell || '').trim();
|
|
35
|
+
if (value.startsWith(':') && value.endsWith(':')) return 'center';
|
|
36
|
+
if (value.endsWith(':')) return 'right';
|
|
37
|
+
return 'left';
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
function tableHeaderAndSeparator(headerLine, separatorLine) {
|
|
41
|
+
if (!String(headerLine).includes('|') || !String(separatorLine).includes('|')) return null;
|
|
42
|
+
const headers = splitTableRow(headerLine);
|
|
43
|
+
const separators = splitTableRow(separatorLine);
|
|
44
|
+
if (headers.length < 2 || separators.length !== headers.length || !separators.every(cell => TABLE_SEPARATOR.test(cell))) return null;
|
|
45
|
+
return { headers, alignments: separators.map(tableAlignment) };
|
|
46
|
+
}
|
|
14
47
|
|
|
15
48
|
/** 把 Markdown 源码切成块;纯函数,方便单测。 */
|
|
16
49
|
export function parseMarkdown(source) {
|
|
@@ -37,6 +70,21 @@ export function parseMarkdown(source) {
|
|
|
37
70
|
continue;
|
|
38
71
|
}
|
|
39
72
|
if (line.trim() === '') { flushParagraph(paragraph); index += 1; continue; }
|
|
73
|
+
const table = index + 1 < lines.length ? tableHeaderAndSeparator(line, lines[index + 1]) : null;
|
|
74
|
+
if (table) {
|
|
75
|
+
flushParagraph(paragraph);
|
|
76
|
+
index += 2;
|
|
77
|
+
const rows = [];
|
|
78
|
+
while (index < lines.length && lines[index].trim() !== '') {
|
|
79
|
+
if (!lines[index].includes('|')) break;
|
|
80
|
+
const row = splitTableRow(lines[index]);
|
|
81
|
+
if (row.length !== table.headers.length) break;
|
|
82
|
+
rows.push(row);
|
|
83
|
+
index += 1;
|
|
84
|
+
}
|
|
85
|
+
blocks.push({ type: 'table', ...table, rows });
|
|
86
|
+
continue;
|
|
87
|
+
}
|
|
40
88
|
const heading = HEADING.exec(line);
|
|
41
89
|
if (heading) {
|
|
42
90
|
flushParagraph(paragraph);
|
|
@@ -125,6 +173,25 @@ export function renderMarkdown(h, source, styles = {}) {
|
|
|
125
173
|
return h(tag, { key, style: styles.list, start: block.type === 'ordered' && block.start !== 1 ? block.start : undefined },
|
|
126
174
|
block.items.map((item, position) => h('li', { key: `${key}-l${position}` }, inline(item, `${key}-l${position}`))));
|
|
127
175
|
}
|
|
176
|
+
if (block.type === 'table') {
|
|
177
|
+
const tableCell = (tag, text, column, cellKey) => h(tag, {
|
|
178
|
+
key: cellKey,
|
|
179
|
+
style: {
|
|
180
|
+
border: '1px solid var(--dsw-alias-border-default, #d8dee8)',
|
|
181
|
+
padding: '6px 8px',
|
|
182
|
+
verticalAlign: 'top',
|
|
183
|
+
...(tag === 'th' ? { background: 'var(--dsw-alias-bg-layer-2, #f7f9fc)', fontWeight: 600 } : null),
|
|
184
|
+
...(styles.tableCell || {}),
|
|
185
|
+
textAlign: block.alignments[column] || 'left',
|
|
186
|
+
},
|
|
187
|
+
}, inline(text, cellKey));
|
|
188
|
+
const header = h('thead', { key: `${key}-head` }, h('tr', { key: `${key}-head-row` },
|
|
189
|
+
block.headers.map((text, column) => tableCell('th', text, column, `${key}-h${column}`))));
|
|
190
|
+
const body = h('tbody', { key: `${key}-body` }, block.rows.map((row, rowIndex) => h('tr', { key: `${key}-r${rowIndex}` },
|
|
191
|
+
row.map((text, column) => tableCell('td', text, column, `${key}-r${rowIndex}-c${column}`)))));
|
|
192
|
+
return h('div', { key, style: { overflowX: 'auto', ...styles.tableWrap } },
|
|
193
|
+
h('table', { style: { borderCollapse: 'collapse', width: '100%', ...styles.table } }, header, body));
|
|
194
|
+
}
|
|
128
195
|
return h('p', { key, style: styles.paragraph }, inline(block.text, key));
|
|
129
196
|
});
|
|
130
197
|
}
|