@zhin.js/adapter-sandbox 5.0.4 → 5.0.6
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/CHANGELOG.md +45 -0
- package/README.md +22 -1
- package/adapters/sandbox.ts +26 -0
- package/lib/endpoint.d.ts +25 -0
- package/lib/endpoint.js +155 -0
- package/lib/index.d.ts +2 -22
- package/lib/index.js +2 -67
- package/lib/protocol.d.ts +52 -0
- package/lib/protocol.js +135 -0
- package/package.json +49 -28
- package/pages/sandbox.tsx +95 -0
- package/plugin.ts +8 -0
- package/schema.json +20 -0
- package/src/endpoint.ts +188 -0
- package/src/index.ts +12 -101
- package/src/protocol.ts +200 -0
- package/client/RichTextEditor.tsx +0 -429
- package/client/Sandbox.tsx +0 -588
- package/client/index.tsx +0 -11
- package/client/sandboxTransport.ts +0 -28
- package/client/tsconfig.json +0 -7
- package/dist/index.js +0 -45
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/sandbox-ws.d.ts +0 -86
- package/lib/sandbox-ws.d.ts.map +0 -1
- package/lib/sandbox-ws.js +0 -295
- package/lib/sandbox-ws.js.map +0 -1
- package/lib/segment-mapper.d.ts +0 -2
- package/lib/segment-mapper.d.ts.map +0 -1
- package/lib/segment-mapper.js +0 -2
- package/lib/segment-mapper.js.map +0 -1
- package/src/sandbox-ws.ts +0 -404
- package/src/segment-mapper.ts +0 -1
- /package/{skills/sandbox/SKILL.md → agent/skills/sandbox.md} +0 -0
package/dist/index.js
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
import Ze,{useState as w,useEffect as he,useRef as Ae}from"react";import{cn as M,resolveMediaSrc as Me,pickMediaRawUrl as Be}from"@zhin.js/client";function la(){let c=localStorage.getItem("zhin_api_base")?.trim();return(c?c.replace(/\/$/,""):null)??window.location.origin}function sa(){return localStorage.getItem("zhin_api_token")?.trim()||localStorage.getItem("HTTP_TOKEN")?.trim()||localStorage.getItem("zhin_http_token")?.trim()||""}function Oe(c){let m=(c??la()).replace(/\/$/,""),g=new URL("/sandbox",`${m}/`);g.protocol=g.protocol==="https:"?"wss:":"ws:";let I=sa();return I&&g.searchParams.set("token",I),g.href}import{forwardRef as na,createElement as pa}from"react";var Ce=(...c)=>c.filter((m,g,I)=>!!m&&m.trim()!==""&&I.indexOf(m)===g).join(" ").trim();var He=c=>c.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase();var Ne=c=>c.replace(/^([A-Z])|[\s-_]+(\w)/g,(m,g,I)=>I?I.toUpperCase():g.toLowerCase());var ye=c=>{let m=Ne(c);return m.charAt(0).toUpperCase()+m.slice(1)};import{forwardRef as ca,createElement as We}from"react";var ge={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};var Ee=c=>{for(let m in c)if(m.startsWith("aria-")||m==="role"||m==="title")return!0;return!1};import{createContext as ra,useContext as fa,useMemo as Za,createElement as _a}from"react";var ia=ra({});var Ge=()=>fa(ia);var Ve=ca(({color:c,size:m,strokeWidth:g,absoluteStrokeWidth:I,className:E="",children:F,iconNode:h,...L},P)=>{let{size:D=24,strokeWidth:U=2,absoluteStrokeWidth:Q=!1,color:G="currentColor",className:W=""}=Ge()??{},O=I??Q?Number(g??U)*24/Number(m??D):g??U;return We("svg",{ref:P,...ge,width:m??D??ge.width,height:m??D??ge.height,stroke:c??G,strokeWidth:O,className:Ce("lucide",W,E),...!F&&!Ee(L)&&{"aria-hidden":"true"},...L},[...h.map(([B,y])=>We(B,y)),...Array.isArray(F)?F:[F]])});var f=(c,m)=>{let g=na(({className:I,...E},F)=>pa(Ve,{ref:F,iconNode:m,className:Ce(`lucide-${He(ye(c))}`,`lucide-${c}`,I),...E}));return g.displayName=ye(c),g};var ma=[["path",{d:"M10.268 21a2 2 0 0 0 3.464 0",key:"vwvbt9"}],["path",{d:"M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326",key:"11g9vi"}]],K=f("bell",ma);var La=[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]],te=f("bot",La);var xa=[["path",{d:"M20 6 9 17l-5-5",key:"1gmf2c"}]],oe=f("check",xa);var Ia=[["line",{x1:"4",x2:"20",y1:"9",y2:"9",key:"4lhtct"}],["line",{x1:"4",x2:"20",y1:"15",y2:"15",key:"vyu0kd"}],["line",{x1:"10",x2:"8",y1:"3",y2:"21",key:"1ggp8o"}],["line",{x1:"16",x2:"14",y1:"3",y2:"21",key:"weycgp"}]],de=f("hash",Ia);var Ca=[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]],ue=f("image",Ca);var ga=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]],le=f("info",ga);var ha=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],N=f("message-square",ha);var Sa=[["path",{d:"M9 18V5l12-2v13",key:"1jmyc2"}],["circle",{cx:"6",cy:"18",r:"3",key:"fqmcym"}],["circle",{cx:"18",cy:"16",r:"3",key:"1hluhg"}]],se=f("music",Sa);var ka=[["path",{d:"m21 21-4.34-4.34",key:"14j7rj"}],["circle",{cx:"11",cy:"11",r:"8",key:"4ej97u"}]],$=f("search",ka);var wa=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],re=f("send",wa);var Pa=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M8 14s1.5 2 4 2 4-2 4-2",key:"1y1vjs"}],["line",{x1:"9",x2:"9.01",y1:"9",y2:"9",key:"yxxnd0"}],["line",{x1:"15",x2:"15.01",y1:"9",y2:"9",key:"1p4y9e"}]],fe=f("smile",Pa);var ya=[["path",{d:"M10 11v6",key:"nco0om"}],["path",{d:"M14 11v6",key:"outv1u"}],["path",{d:"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6",key:"miytrc"}],["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2",key:"e791ji"}]],ie=f("trash-2",ya);var Aa=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]],Z=f("user-plus",Aa);var Ma=[["path",{d:"M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2",key:"975kel"}],["circle",{cx:"12",cy:"7",r:"4",key:"17ys0d"}]],_=f("user",Ma);var Ba=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],ce=f("users",Ba);var Da=[["path",{d:"m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5",key:"ftymec"}],["rect",{x:"2",y:"6",width:"14",height:"12",rx:"2",key:"158x01"}]],ne=f("video",Da);var Fa=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}],["path",{d:"M5 12.859a10 10 0 0 1 5.17-2.69",key:"1dl1wf"}],["path",{d:"M19 12.859a10 10 0 0 0-2.007-1.523",key:"4k23kn"}],["path",{d:"M2 8.82a15 15 0 0 1 4.177-2.643",key:"1grhjp"}],["path",{d:"M22 8.82a15 15 0 0 0-11.288-3.764",key:"z3jwby"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]],pe=f("wifi-off",Fa);var ba=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]],me=f("wifi",ba);var Ra=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],Le=f("x",Ra);import{useRef as ze,forwardRef as va,useImperativeHandle as Ta}from"react";import{jsx as qa}from"react/jsx-runtime";var Xe=va(({placeholder:c="\u8F93\u5165\u6D88\u606F...",onSend:m,onChange:g,onAtTrigger:I,minHeight:E="44px",maxHeight:F="200px"},h)=>{let L=ze(null),P=ze(null),D=()=>{if(!L.current)return{text:"",segments:[]};let d="",o=[],u=Array.from(L.current.childNodes);for(let p of u)if(p.nodeType===Node.TEXT_NODE){let r=p.textContent||"";r&&(d+=r,o.push({type:"text",data:{text:r}}))}else if(p.nodeType===Node.ELEMENT_NODE){let r=p;if(r.classList.contains("editor-face")){let n=r.dataset.id;d+=`[face:${n}]`,o.push({type:"face",data:{id:Number(n)}})}else if(r.classList.contains("editor-image")){let n=r.dataset.url;d+=`[image:${n}]`,o.push({type:"image",data:{url:n}})}else if(r.classList.contains("editor-video")){let n=r.dataset.url||"";d+=`[video:${n}]`,o.push({type:"video",data:{url:n}})}else if(r.classList.contains("editor-audio")){let n=r.dataset.url||"";d+=`[audio:${n}]`,o.push({type:"audio",data:{url:n}})}else if(r.classList.contains("editor-at")){let n=r.dataset.name,A=r.dataset.id;d+=`[@${n}]`,o.push({type:"mention",data:A?{target:A,name:n}:{target:n,name:n}})}else r.tagName==="BR"&&(d+=`
|
|
2
|
-
`)}return{text:d,segments:o}},U=d=>{if(!L.current)return;let o=document.createElement("img");o.src=`https://face.viki.moe/apng/${d}.png`,o.alt=`[face:${d}]`,o.dataset.type="face",o.dataset.id=String(d),o.className="editor-face",B(o),R()},Q=d=>{if(!L.current||!d.trim())return;let o=document.createElement("img");o.src=d.trim(),o.alt=`[image:${d.trim()}]`,o.dataset.type="image",o.dataset.url=d.trim(),o.className="editor-image",B(o),R()},G=d=>{if(!L.current||!d.trim())return;let o=d.trim(),u=document.createElement("span");u.className="editor-video",u.dataset.url=o,u.contentEditable="false",u.textContent="\u{1F4F9} \u89C6\u9891",B(u),R()},W=d=>{if(!L.current||!d.trim())return;let o=d.trim(),u=document.createElement("span");u.className="editor-audio",u.dataset.url=o,u.contentEditable="false",u.textContent="\u{1F3B5} \u97F3\u9891",B(u),R()},O=(d,o)=>{if(!L.current||!d.trim())return;let u=document.createElement("span");u.dataset.type="at",u.dataset.name=d,o&&(u.dataset.id=o),u.className="editor-at",u.contentEditable="false";let p=document.createElement("span");p.textContent="@",p.className="editor-at-symbol";let r=document.createElement("span");r.textContent=d,r.className="editor-at-name",u.appendChild(p),u.appendChild(r),B(u),R()},B=d=>{if(!L.current)return;L.current.focus();let o=window.getSelection();if(o&&o.rangeCount>0){let u=o.getRangeAt(0);if(L.current.contains(u.commonAncestorContainer))u.deleteContents(),u.insertNode(d),u.collapse(!1),o.removeAllRanges(),o.addRange(u);else{L.current.appendChild(d);let r=document.createRange();r.setStartAfter(d),r.collapse(!0),o.removeAllRanges(),o.addRange(r)}}else{L.current.appendChild(d);let u=window.getSelection();if(u){let p=document.createRange();p.setStartAfter(d),p.collapse(!0),u.removeAllRanges(),u.addRange(p)}}},y=()=>{L.current&&(L.current.innerHTML="",R())},V=()=>{L.current?.focus()},Y=()=>D(),xe=()=>{if(!L.current||!I)return;let d=window.getSelection();if(!d||d.rangeCount===0){I(!1,""),P.current=null;return}let o=d.getRangeAt(0);if(!L.current.contains(o.commonAncestorContainer)){I(!1,""),P.current=null;return}let u=o.startContainer;if(u.nodeType!==Node.TEXT_NODE){I(!1,""),P.current=null;return}let p=u,r=p.textContent?.substring(0,o.startOffset)||"",n=r.lastIndexOf("@");if(n!==-1){let A=r.substring(n+1);if(A.includes(" ")||A.includes(`
|
|
3
|
-
`)){I(!1,""),P.current=null;return}P.current=p;let z=document.createRange();z.setStart(p,n),z.setEnd(p,n+1);let v=z.getBoundingClientRect(),b=L.current.getBoundingClientRect();I(!0,A,{top:v.bottom-b.top,left:v.left-b.left})}else I(!1,""),P.current=null},R=()=>{if(xe(),g){let{text:d,segments:o}=D();g(d,o)}},Se=(d,o)=>{if(!P.current)return;let u=P.current,p=u.textContent||"",r=p.lastIndexOf("@");if(r!==-1){let n=p.substring(r+1),A=r+1+n.split(/[\s\n]/)[0].length,z=p.substring(0,r),v=p.substring(A);u.textContent=z+v;let b=window.getSelection();if(b){let T=document.createRange();T.setStart(u,r),T.collapse(!0),b.removeAllRanges(),b.addRange(T)}}P.current=null,O(d,o)},ee=d=>{d.preventDefault();let o=d.clipboardData,p=Array.from(o.items).find(n=>n.type.startsWith("image/"));if(p){let n=p.getAsFile();if(n){let A=new FileReader;A.onload=()=>{typeof A.result=="string"&&Q(A.result)},A.readAsDataURL(n)}return}let r=o.getData("text/plain");r&&(document.execCommand("insertText",!1,r),R())},J=d=>{if(d.key==="Enter"&&!d.shiftKey&&(d.preventDefault(),m)){let{text:o,segments:u}=D();m(o,u)}};return Ta(h,()=>({focus:V,clear:y,insertFace:U,insertImage:Q,insertVideo:G,insertAudio:W,insertAt:O,replaceAtTrigger:Se,getContent:Y})),qa("div",{ref:L,contentEditable:!0,suppressContentEditableWarning:!0,onInput:R,onKeyDown:J,onPaste:ee,"data-placeholder":c,className:"rich-text-editor",style:{width:"100%",minHeight:E,maxHeight:F,padding:"0.5rem 0.75rem",border:"1px solid var(--gray-6)",borderRadius:"6px",backgroundColor:"var(--gray-1)",fontSize:"var(--font-size-2)",outline:"none",overflowY:"auto",lineHeight:"1.5",wordWrap:"break-word",color:"var(--gray-12)"}})});Xe.displayName="RichTextEditor";var Ke=Xe;import{Fragment as Ua,jsx as a,jsxs as t}from"react/jsx-runtime";function De(){let[c,m]=w([]),[g,I]=w([{id:"user_1001",name:"\u6D4B\u8BD5\u7528\u6237",type:"private",unread:0},{id:"group_2001",name:"\u6D4B\u8BD5\u7FA4\u7EC4",type:"group",unread:0},{id:"channel_3001",name:"\u6D4B\u8BD5\u9891\u9053",type:"channel",unread:0}]),[E,F]=w([]),[h,L]=w(g[0]),[P,D]=w(""),[U,Q]=w("ProcessEndpoint"),[G,W]=w(!1),[O,B]=w(!1),[y,V]=w(null),[Y,xe]=w(""),[R,Se]=w(!1),[ee,J]=w(null),[d,o]=w(""),[u,p]=w(""),[r,n]=w(""),[A]=w([{id:"10001",name:"\u5F20\u4E09"},{id:"10002",name:"\u674E\u56DB"},{id:"10003",name:"\u738B\u4E94"},{id:"10004",name:"\u8D75\u516D"},{id:"10005",name:"\u6D4B\u8BD5\u7528\u6237"},{id:"10086",name:"Admin"},{id:"10010",name:"Test User"}]),[z,v]=w([]),[b,T]=w(!1),[j,ke]=w("chat"),Fe=Ae(null),H=Ae(null),q=Ae(null),_e=async()=>{try{let e=await fetch("https://face.viki.moe/metadata.json");F(await e.json())}catch(e){console.error("[Sandbox] Failed to fetch face list:",e)}};he(()=>{_e()},[]);let Qe=e=>{if(e.type==="edit"&&e.messageId){let l=Array.isArray(e.content)?e.content:Ie(String(e.content??""));m(i=>i.map(C=>C.id===e.messageId?{...C,content:l}:C));return}let s=typeof e.content=="string"?Ie(e.content):Array.isArray(e.content)?e.content:Ie(String(e.content??"")),x=e.type==="private"?`\u79C1\u804A-${e.bot||U}`:e.type==="group"?`\u7FA4\u7EC4-${e.id}`:`\u9891\u9053-${e.id}`,S=e.type;I(l=>{if(l.some(C=>C.id===e.id))return l;let i={id:e.id,name:x,type:S,unread:0};return L(i),[...l,i]}),m(l=>[...l,{id:e.messageId??`bot_${e.timestamp}`,type:"received",channelType:S,channelId:e.id,channelName:x,senderId:"endpoint",senderName:e.bot||U,content:s,timestamp:e.timestamp}])},Je=e=>{let s=[{type:"action",data:{id:e,payload:e}}],x=JSON.stringify({type:h.type,id:h.id,content:s,timestamp:Date.now()});H.current?.send(x)};he(()=>{let e=Oe();return H.current=new WebSocket(e),H.current.onopen=()=>W(!0),H.current.onmessage=s=>{try{Qe(JSON.parse(s.data))}catch(x){console.error("[Sandbox] Failed to parse message:",x)}},H.current.onclose=()=>W(!1),()=>{H.current?.close(),H.current=null,W(!1)}},[]),he(()=>{Fe.current?.scrollIntoView({behavior:"smooth"})},[c]),he(()=>{v(P.trim()?Ie(P):[])},[P]);let Ie=e=>{let s=[],x=/\[@([^\]]+)\]|\[face:(\d+)\]|\[image:([^\]]+)\]|\[video:([^\]]+)\]|\[audio:([^\]]+)\]/g,S=0,l;for(;(l=x.exec(e))!==null;){if(l.index>S){let i=e.substring(S,l.index);i&&s.push({type:"text",data:{text:i}})}l[1]?s.push({type:"mention",data:{target:l[1],name:l[1]}}):l[2]?s.push({type:"face",data:{id:parseInt(l[2],10)}}):l[3]?s.push({type:"image",data:{url:l[3]}}):l[4]?s.push({type:"video",data:{url:l[4]}}):l[5]&&s.push({type:"audio",data:{url:l[5]}}),S=x.lastIndex}if(S<e.length){let i=e.substring(S);i&&s.push({type:"text",data:{text:i}})}return s.length>0?s:[{type:"text",data:{text:e}}]},be=e=>e.length===0?!1:e.some(s=>s.type==="text"?!!String(s.data?.text??"").trim():(s.type==="keyboard",!0)),je=(e,s)=>{let x=s?"ring-1 ring-primary-foreground/25":"ring-1 ring-border/60";return e.map((S,l)=>{if(typeof S=="string")return a("span",{children:S.split(`
|
|
4
|
-
`).map((C,k)=>t(Ze.Fragment,{children:[C,k<S.split(`
|
|
5
|
-
`).length-1&&a("br",{})]},k))},l);let i=S.data;switch(S.type){case"text":return a("span",{children:String(i.text??"").split(`
|
|
6
|
-
`).map((C,k)=>t(Ze.Fragment,{children:[C,k<String(i.text??"").split(`
|
|
7
|
-
`).length-1&&a("br",{})]},k))},l);case"mention":case"at":return t("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded bg-accent text-accent-foreground text-xs mx-0.5",children:["@",String(i.name??i.target??i.qq??"")]},l);case"face":return a("img",{src:`https://face.viki.moe/apng/${i.id}.png`,alt:String(i.name??""),className:"w-6 h-6 inline-block align-middle mx-0.5",title:String(i.name??i.id??"")},l);case"dice":return t("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded bg-secondary text-xs mx-0.5",children:["\u{1F3B2} ",i.result!=null?`\u70B9\u6570 ${String(i.result)}`:"\u9AB0\u5B50"]},l);case"rps":return t("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded bg-secondary text-xs mx-0.5",children:["\u270A ",i.result!=null?`\u7ED3\u679C ${String(i.result)}`:"\u731C\u62F3"]},l);case"image":{let C=Be(i),k=Me(C,"image");return k?a("a",{href:k,target:"_blank",rel:"noreferrer",className:"block my-1",children:a("img",{src:k,alt:"",className:M("max-w-[min(320px,88vw)] rounded-lg block",x,"ring-offset-0"),onError:ae=>{ae.target.style.display="none"}})},l):a("span",{className:"text-xs opacity-70",children:"[\u56FE\u7247]"},l)}case"video":{let C=Be(i),k=Me(C,"video");return k?a("video",{src:k,controls:!0,playsInline:!0,preload:"metadata",className:M("max-w-[min(360px,92vw)] max-h-72 rounded-lg my-1 bg-black/10",x)},l):a("span",{className:"text-xs opacity-70",children:"[\u89C6\u9891\u65E0\u5730\u5740]"},l)}case"audio":case"record":{let C=Be(i),k=Me(C,"audio");return k?a("audio",{src:k,controls:!0,preload:"metadata",className:M("w-full max-w-sm my-2 h-10",s&&"opacity-95")},l):a("span",{className:"text-xs opacity-70",children:"[\u97F3\u9891\u65E0\u5730\u5740]"},l)}case"reply":return t("div",{className:"mb-1 rounded-md border border-dashed px-2 py-1 text-xs opacity-90",children:["\u21A9 \u5F15\u7528\u6D88\u606F #",String(i.message_id??i.id??"")]},l);case"forward":{let C=i.messages,k=String(i.title??"\u804A\u5929\u8BB0\u5F55");return t("div",{className:"my-1 rounded-md border bg-background/40 px-2 py-2 text-xs space-y-1",children:[t("div",{className:"font-medium",children:["\u{1F4E8} ",k]}),Array.isArray(C)&&C.length>0?t("div",{className:"space-y-1 pl-2 border-l-2 border-muted",children:[C.slice(0,3).map((ae,X)=>a("div",{className:"opacity-90",children:ae.map((Pe,ua)=>a("span",{children:Pe.type==="text"?String(Pe.data?.text??""):`[${Pe.type??"seg"}]`},ua))},X)),C.length>3&&t("div",{className:"opacity-60",children:["\u2026\u5171 ",C.length," \u6761"]})]}):a("div",{className:"opacity-70",children:"[\u5408\u5E76\u8F6C\u53D1]"})]},l)}case"keyboard":{let C=i.rows??[];return a("div",{className:"inline-grid gap-1 my-1",children:C.map((k,ae)=>a("div",{className:"flex gap-1",children:k.map(X=>a("button",{type:"button",disabled:X.disabled||s,onClick:()=>Je(X.payload),className:M("min-w-9 h-9 rounded-md border text-sm font-medium transition-colors",X.disabled?"opacity-50 cursor-not-allowed":"hover:bg-accent active:scale-95"),children:X.label},X.payload))},ae))},l)}default:return t("span",{className:"text-xs opacity-70",children:["[",S.type,"]"]},l)}})},Re=(e,s)=>{if(!be(s))return;let x={id:`msg_${Date.now()}`,type:"sent",channelType:h.type,channelId:h.id,channelName:h.name,senderId:"test_user",senderName:"\u6D4B\u8BD5\u7528\u6237",content:s,timestamp:Date.now()};m(l=>[...l,x]),D(""),v([]),q.current?.clear();let S=JSON.stringify({type:h.type,id:h.id,content:s,timestamp:Date.now()});H.current?.send(S)},$e=()=>{confirm("\u786E\u5B9A\u6E05\u7A7A\u6240\u6709\u6D88\u606F\u8BB0\u5F55\uFF1F")&&m([])},Ye=e=>{ke("chat"),L(e),I(s=>s.map(x=>x.id===e.id?{...x,unread:0}:x)),window.innerWidth<768&&T(!1)},ea=()=>{let e=["private","group","channel"],s=e[Math.floor(Math.random()*e.length)],x=prompt("\u8BF7\u8F93\u5165\u9891\u9053\u540D\u79F0\uFF1A");if(x){let S={id:`${s}_${Date.now()}`,name:x,type:s,unread:0};I(l=>[...l,S]),L(S)}},ve=e=>{switch(e){case"private":return a(_,{size:16});case"group":return a(ce,{size:16});case"channel":return a(de,{size:16});default:return a(N,{size:16})}},aa=e=>{q.current?.insertFace(e),B(!1)},Te=()=>{let e=Y.trim();!e||!y||(y==="image"?q.current?.insertImage(e):y==="video"?q.current?.insertVideo(e):q.current?.insertAudio(e),xe(""),V(null))},Oa=()=>{r.trim()&&(q.current?.insertAt(r.trim()),n(""),Se(!1))},ta=e=>{q.current?.replaceAtTrigger(e.name,e.id),J(null),o("")},oa=(e,s,x)=>{if(h.type==="private"){J(null),o("");return}e&&x?(J(x),o(s)):(J(null),o(""))},qe=A.filter(e=>{if(!d.trim())return!0;let s=d.toLowerCase();return e.name.toLowerCase().includes(s)||e.id.toLowerCase().includes(s)}),da=(e,s)=>{D(e),v(s)},Ue=E.filter(e=>e.name.toLowerCase().includes(u.toLowerCase())||e.describe.toLowerCase().includes(u.toLowerCase())),we=c.filter(e=>e.channelId===h.id);return t("div",{className:"sandbox-container rounded-xl border border-border/70 bg-card/30 shadow-sm",children:[t("button",{className:"mobile-channel-toggle md:hidden",onClick:()=>T(!b),children:[a(N,{size:20})," \u9891\u9053\u5217\u8868"]}),t("div",{className:M("channel-sidebar rounded-lg border bg-card",b&&"show"),children:[a("div",{className:"p-3 border-b",children:t("div",{className:"flex justify-between items-center",children:[t("div",{className:"flex items-center gap-2",children:[a("div",{className:"p-1 rounded-md bg-secondary",children:a(N,{size:16,className:"text-muted-foreground"})}),a("h3",{className:"font-semibold",children:"\u9891\u9053\u5217\u8868"})]}),t("span",{className:M("inline-flex items-center gap-1 px-2 py-0.5 rounded-full text-xs font-medium border",G?"bg-emerald-100 text-emerald-800 border-emerald-200 dark:bg-emerald-900/30 dark:text-emerald-400 dark:border-emerald-800":"bg-muted text-muted-foreground"),children:[G?a(me,{size:12}):a(pe,{size:12}),G?"\u5DF2\u8FDE\u63A5":"\u672A\u8FDE\u63A5"]})]})}),t("div",{className:"flex-1 overflow-y-auto p-2 space-y-1",children:[g.map(e=>{let s=j==="chat"&&h.id===e.id;return t("div",{className:M("menu-item",s&&"active"),onClick:()=>Ye(e),children:[a("span",{className:"shrink-0",children:ve(e.type)}),t("div",{className:"flex-1 min-w-0",children:[a("div",{className:"text-sm font-medium truncate",children:e.name}),a("div",{className:"text-xs text-muted-foreground",children:e.type==="private"?"\u79C1\u804A":e.type==="group"?"\u7FA4\u804A":"\u9891\u9053"})]}),e.unread>0&&a("span",{className:"inline-flex items-center justify-center h-5 min-w-5 rounded-full bg-destructive text-destructive-foreground text-[10px] font-medium px-1",children:e.unread})]},e.id)}),t("div",{className:"pt-2 mt-2 border-t space-y-1",children:[t("div",{className:M("menu-item",j==="requests"&&"active"),onClick:()=>{ke("requests"),window.innerWidth<768&&T(!1)},children:[a(Z,{size:16,className:"shrink-0"}),t("div",{className:"flex-1 min-w-0",children:[a("div",{className:"text-sm font-medium",children:"\u8BF7\u6C42"}),a("div",{className:"text-xs text-muted-foreground",children:"\u597D\u53CB/\u7FA4\u9080\u8BF7\u7B49"})]})]}),t("div",{className:M("menu-item",j==="notices"&&"active"),onClick:()=>{ke("notices"),window.innerWidth<768&&T(!1)},children:[a(K,{size:16,className:"shrink-0"}),t("div",{className:"flex-1 min-w-0",children:[a("div",{className:"text-sm font-medium",children:"\u901A\u77E5"}),a("div",{className:"text-xs text-muted-foreground",children:"\u7FA4\u7BA1/\u64A4\u56DE\u7B49"})]})]})]})]}),a("div",{className:"p-2 border-t",children:a("button",{className:"w-full py-2 px-3 rounded-md border border-dashed text-sm text-muted-foreground hover:bg-accent transition-colors",onClick:ea,children:"+ \u6DFB\u52A0\u9891\u9053"})})]}),b&&a("div",{className:"channel-overlay md:hidden",onClick:()=>T(!1)}),t("div",{className:"chat-area",children:[j==="requests"&&t("div",{className:"rounded-lg border bg-card flex-1 flex flex-col min-h-0 overflow-hidden",children:[a("div",{className:"p-3 border-b flex-shrink-0",children:t("h2",{className:"text-lg font-bold flex items-center gap-2",children:[a(Z,{size:20})," \u8BF7\u6C42"]})}),t("div",{className:"flex-1 overflow-y-auto p-4 flex flex-col items-center justify-center gap-3 text-muted-foreground text-center",children:[a(Z,{size:48,className:"opacity-30"}),a("span",{children:"\u6C99\u76D2\u4E3A\u6A21\u62DF\u73AF\u5883\uFF0C\u6682\u65E0\u8BF7\u6C42\u6570\u636E"}),t("span",{className:"text-sm",children:["\u5B9E\u9645\u597D\u53CB/\u7FA4\u9080\u8BF7\u7B49\u8BF7\u6C42\u8BF7\u5230\u4FA7\u8FB9\u680F ",a("strong",{children:"\u673A\u5668\u4EBA"})," \u9875\u9762\u8FDB\u5165\u5BF9\u5E94\u673A\u5668\u4EBA\u7BA1\u7406\u67E5\u770B"]})]})]}),j==="notices"&&t("div",{className:"rounded-lg border bg-card flex-1 flex flex-col min-h-0 overflow-hidden",children:[a("div",{className:"p-3 border-b flex-shrink-0",children:t("h2",{className:"text-lg font-bold flex items-center gap-2",children:[a(K,{size:20})," \u901A\u77E5"]})}),t("div",{className:"flex-1 overflow-y-auto p-4 flex flex-col items-center justify-center gap-3 text-muted-foreground text-center",children:[a(K,{size:48,className:"opacity-30"}),a("span",{children:"\u6C99\u76D2\u4E3A\u6A21\u62DF\u73AF\u5883\uFF0C\u6682\u65E0\u901A\u77E5\u6570\u636E"}),t("span",{className:"text-sm",children:["\u5B9E\u9645\u7FA4\u7BA1\u3001\u64A4\u56DE\u7B49\u901A\u77E5\u8BF7\u5230\u4FA7\u8FB9\u680F ",a("strong",{children:"\u673A\u5668\u4EBA"})," \u9875\u9762\u8FDB\u5165\u5BF9\u5E94\u673A\u5668\u4EBA\u7BA1\u7406\u67E5\u770B"]})]})]}),j==="chat"&&t(Ua,{children:[a("div",{className:"rounded-lg border bg-card p-3 flex-shrink-0",children:t("div",{className:"flex justify-between items-center flex-wrap gap-2",children:[t("div",{className:"flex items-center gap-3",children:[a("div",{className:"p-2 rounded-lg bg-secondary",children:ve(h.type)}),t("div",{children:[a("h2",{className:"text-lg font-bold",children:h.name}),t("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[a("span",{children:h.id}),a("span",{className:"inline-flex items-center px-1.5 py-0.5 rounded border text-[10px]",children:we.length}),a("span",{children:"\u6761\u6D88\u606F"})]})]}),a("span",{className:"inline-flex items-center px-2 py-0.5 rounded-full text-xs font-medium bg-secondary text-secondary-foreground",children:h.type==="private"?"\u79C1\u804A":h.type==="group"?"\u7FA4\u804A":"\u9891\u9053"})]}),t("div",{className:"flex items-center gap-2",children:[a("input",{value:U,onChange:e=>Q(e.target.value),placeholder:"\u673A\u5668\u4EBA\u540D\u79F0",className:"h-8 w-28 rounded-md border bg-transparent px-2 text-sm"}),t("button",{className:"inline-flex items-center gap-1 h-8 px-3 rounded-md bg-secondary text-secondary-foreground text-sm hover:bg-secondary/80",onClick:$e,children:[a(ie,{size:14})," \u6E05\u7A7A"]})]})]})}),a("div",{className:"rounded-lg border bg-card flex-1 flex flex-col min-h-0",children:a("div",{className:"flex-1 overflow-y-auto p-4",children:we.length===0?t("div",{className:"flex flex-col items-center justify-center h-full gap-3",children:[a(N,{size:64,className:"text-muted-foreground/20"}),a("span",{className:"text-muted-foreground",children:"\u6682\u65E0\u6D88\u606F\uFF0C\u5F00\u59CB\u5BF9\u8BDD\u5427\uFF01"})]}):t("div",{className:"space-y-2",children:[we.map(e=>a("div",{className:M("flex",e.type==="sent"?"justify-end":"justify-start"),children:t("div",{className:M("max-w-[70%] p-3 rounded-2xl",e.type==="sent"?"bg-primary text-primary-foreground":"bg-muted"),children:[t("div",{className:"flex items-center gap-2 mb-1",children:[e.type==="received"&&a(te,{size:14}),e.type==="sent"&&a(_,{size:14}),a("span",{className:"text-xs font-medium opacity-90",children:e.senderName}),a("span",{className:"text-xs opacity-70",children:new Date(e.timestamp).toLocaleTimeString()})]}),a("div",{className:"text-sm space-y-1",children:je(e.content,e.type==="sent")})]})},e.id)),a("div",{ref:Fe})]})})}),t("div",{className:"rounded-lg border bg-card p-3 flex-shrink-0 space-y-3",children:[t("div",{className:"flex gap-2 items-center flex-wrap",children:[a("button",{type:"button",className:M("h-8 w-8 rounded-md flex items-center justify-center border transition-colors",O?"bg-primary text-primary-foreground":"hover:bg-accent"),onClick:()=>{B(!O),V(null)},title:"\u63D2\u5165\u8868\u60C5",children:a(fe,{size:16})}),a("button",{type:"button",className:M("h-8 w-8 rounded-md flex items-center justify-center border transition-colors",y==="image"?"bg-primary text-primary-foreground":"hover:bg-accent"),onClick:()=>{V(e=>e==="image"?null:"image"),B(!1)},title:"\u63D2\u5165\u56FE\u7247 URL",children:a(ue,{size:16})}),a("button",{type:"button",className:M("h-8 w-8 rounded-md flex items-center justify-center border transition-colors",y==="video"?"bg-primary text-primary-foreground":"hover:bg-accent"),onClick:()=>{V(e=>e==="video"?null:"video"),B(!1)},title:"\u63D2\u5165\u89C6\u9891 URL",children:a(ne,{size:16})}),a("button",{type:"button",className:M("h-8 w-8 rounded-md flex items-center justify-center border transition-colors",y==="audio"?"bg-primary text-primary-foreground":"hover:bg-accent"),onClick:()=>{V(e=>e==="audio"?null:"audio"),B(!1)},title:"\u63D2\u5165\u97F3\u9891 URL",children:a(se,{size:16})}),a("div",{className:"flex-1 min-w-[1rem]"}),P&&a("button",{className:"h-8 w-8 rounded-md flex items-center justify-center hover:bg-accent transition-colors",onClick:()=>{D(""),v([])},children:a(Le,{size:16})})]}),O&&t("div",{className:"p-3 rounded-md border bg-muted/30 max-h-64 overflow-y-auto space-y-2",children:[a("input",{value:u,onChange:e=>p(e.target.value),placeholder:"\u641C\u7D22\u8868\u60C5...",className:"w-full h-8 rounded-md border bg-transparent px-2 text-sm"}),a("div",{className:"grid grid-cols-8 gap-1",children:Ue.slice(0,80).map(e=>a("button",{onClick:()=>aa(e.id),title:e.name,className:"w-10 h-10 rounded-md border flex items-center justify-center hover:bg-accent transition-colors",children:a("img",{src:`https://face.viki.moe/apng/${e.id}.png`,alt:e.name,className:"w-8 h-8"})},e.id))}),Ue.length===0&&t("div",{className:"flex flex-col items-center gap-2 py-4",children:[a($,{size:32,className:"text-muted-foreground/30"}),a("span",{className:"text-sm text-muted-foreground",children:"\u672A\u627E\u5230\u5339\u914D\u7684\u8868\u60C5"})]})]}),y&&t("div",{className:"p-3 rounded-md border bg-muted/30 space-y-2",children:[t("p",{className:"text-xs text-muted-foreground",children:[y==="image"&&"\u652F\u6301 http(s) \u56FE\u7247\u94FE\u63A5\u6216 data URL",y==="video"&&"\u652F\u6301\u6D4F\u89C8\u5668\u53EF\u89E3\u7801\u7684\u89C6\u9891\u76F4\u94FE\uFF08\u5982 .mp4\u3001.webm\uFF09",y==="audio"&&"\u652F\u6301 .mp3\u3001.ogg\u3001.wav \u7B49\u97F3\u9891\u76F4\u94FE"]}),a("input",{value:Y,onChange:e=>xe(e.target.value),placeholder:y==="image"?"\u56FE\u7247 URL\u2026":y==="video"?"\u89C6\u9891 URL\u2026":"\u97F3\u9891 URL\u2026",className:"w-full h-8 rounded-md border border-input bg-background px-2 text-sm",onKeyDown:e=>{e.key==="Enter"&&(e.preventDefault(),Te())}}),t("button",{type:"button",className:"inline-flex items-center gap-1 h-8 px-3 rounded-md bg-primary text-primary-foreground text-sm disabled:opacity-50",onClick:Te,disabled:!Y.trim(),children:[a(oe,{size:14})," \u63D2\u5165\u5230\u8F93\u5165\u6846"]})]}),t("div",{className:"flex gap-2 items-start",children:[t("div",{className:"flex-1 relative",children:[a(Ke,{ref:q,placeholder:`\u5411 ${h.name} \u53D1\u9001\u6D88\u606F...`,onSend:Re,onChange:da,onAtTrigger:oa,minHeight:"44px",maxHeight:"200px"}),ee&&a("div",{className:"absolute z-50 rounded-lg border bg-popover shadow-md min-w-60 max-h-72 overflow-y-auto p-1",style:{top:`${ee.top}px`,left:`${ee.left}px`},children:qe.length>0?qe.map(e=>t("div",{className:"flex items-center gap-2 p-2 rounded-md cursor-pointer hover:bg-accent transition-colors",onClick:()=>ta(e),children:[a(_,{size:16,className:"text-muted-foreground"}),t("div",{className:"flex-1",children:[a("div",{className:"text-sm font-medium",children:e.name}),t("div",{className:"text-xs text-muted-foreground",children:["ID: ",e.id]})]})]},e.id)):t("div",{className:"flex flex-col items-center gap-2 p-4",children:[a($,{size:20,className:"text-muted-foreground/50"}),a("span",{className:"text-xs text-muted-foreground",children:"\u672A\u627E\u5230\u5339\u914D\u7684\u7528\u6237"})]})})]}),t("button",{className:"inline-flex items-center gap-1.5 h-10 px-4 rounded-md bg-primary text-primary-foreground text-sm font-medium disabled:opacity-50 transition-colors hover:bg-primary/90",onClick:()=>{let e=q.current?.getContent();e&&Re(e.text,e.segments)},disabled:!be(z),children:[a(re,{size:16})," \u53D1\u9001"]})]}),t("div",{className:"flex items-center gap-2 flex-wrap text-xs text-muted-foreground",children:[a(le,{size:12})," \u5FEB\u6377\u64CD\u4F5C:",a("span",{className:"px-1 py-0.5 rounded border text-[10px]",children:"Enter"})," \u53D1\u9001",a("span",{className:"px-1 py-0.5 rounded border text-[10px]",children:"Shift+Enter"})," \u6362\u884C",a("span",{className:"px-1 py-0.5 rounded border text-[10px]",children:"[@\u540D\u79F0]"})," @\u67D0\u4EBA",a("span",{className:"px-1 py-0.5 rounded border text-[10px]",children:"[video:URL]"}),a("span",{className:"px-1 py-0.5 rounded border text-[10px]",children:"[audio:URL]"})]})]})]})]})]})}function Bo(c){c.addRoute({path:"/console/sandbox",name:"\u6C99\u76D2",element:c.React.createElement(De,{hostReact:c.React})}),c.addTool({id:"sandbox",name:"\u6C99\u76D2",path:"/console/sandbox"})}export{Bo as register};
|
|
8
|
-
/*! Bundled license information:
|
|
9
|
-
|
|
10
|
-
lucide-react/dist/esm/shared/src/utils/mergeClasses.mjs:
|
|
11
|
-
lucide-react/dist/esm/shared/src/utils/toKebabCase.mjs:
|
|
12
|
-
lucide-react/dist/esm/shared/src/utils/toCamelCase.mjs:
|
|
13
|
-
lucide-react/dist/esm/shared/src/utils/toPascalCase.mjs:
|
|
14
|
-
lucide-react/dist/esm/defaultAttributes.mjs:
|
|
15
|
-
lucide-react/dist/esm/shared/src/utils/hasA11yProp.mjs:
|
|
16
|
-
lucide-react/dist/esm/context.mjs:
|
|
17
|
-
lucide-react/dist/esm/Icon.mjs:
|
|
18
|
-
lucide-react/dist/esm/createLucideIcon.mjs:
|
|
19
|
-
lucide-react/dist/esm/icons/bell.mjs:
|
|
20
|
-
lucide-react/dist/esm/icons/bot.mjs:
|
|
21
|
-
lucide-react/dist/esm/icons/check.mjs:
|
|
22
|
-
lucide-react/dist/esm/icons/hash.mjs:
|
|
23
|
-
lucide-react/dist/esm/icons/image.mjs:
|
|
24
|
-
lucide-react/dist/esm/icons/info.mjs:
|
|
25
|
-
lucide-react/dist/esm/icons/message-square.mjs:
|
|
26
|
-
lucide-react/dist/esm/icons/music.mjs:
|
|
27
|
-
lucide-react/dist/esm/icons/search.mjs:
|
|
28
|
-
lucide-react/dist/esm/icons/send.mjs:
|
|
29
|
-
lucide-react/dist/esm/icons/smile.mjs:
|
|
30
|
-
lucide-react/dist/esm/icons/trash-2.mjs:
|
|
31
|
-
lucide-react/dist/esm/icons/user-plus.mjs:
|
|
32
|
-
lucide-react/dist/esm/icons/user.mjs:
|
|
33
|
-
lucide-react/dist/esm/icons/users.mjs:
|
|
34
|
-
lucide-react/dist/esm/icons/video.mjs:
|
|
35
|
-
lucide-react/dist/esm/icons/wifi-off.mjs:
|
|
36
|
-
lucide-react/dist/esm/icons/wifi.mjs:
|
|
37
|
-
lucide-react/dist/esm/icons/x.mjs:
|
|
38
|
-
lucide-react/dist/esm/lucide-react.mjs:
|
|
39
|
-
(**
|
|
40
|
-
* @license lucide-react v1.23.0 - ISC
|
|
41
|
-
*
|
|
42
|
-
* This source code is licensed under the ISC license.
|
|
43
|
-
* See the LICENSE file in the root directory of this source tree.
|
|
44
|
-
*)
|
|
45
|
-
*/
|
package/lib/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAe,MAAM,SAAS,CAAC;AAEjD,OAAO,EACL,oBAAoB,EAGrB,MAAM,iBAAiB,CAAC;AAGzB,KAAK,aAAa,GAAG;IACnB,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;CAC1D,CAAC;AAEF,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,QAAQ;QAChB,OAAO,EAAE,cAAc,CAAC;KACzB;CACF;AAKD,uBAAuB;AACvB,qBAAa,cAAe,SAAQ,oBAAoB;IACtD,GAAG,CAAC,EAAE;QAAE,EAAE,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,KAAK,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;gBAE5E,MAAM,EAAE,UAAU,CAAC,OAAO,SAAS,CAAC;IAKjC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ/B,cAAc,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;CAsB3D;AAkCD,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,eAAe,GACrB,MAAM,iBAAiB,CAAC"}
|
package/lib/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/sandbox-ws.d.ts
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
/** Sandbox 传输 — Node WebSocket。 */
|
|
2
|
-
import { EventEmitter } from "node:events";
|
|
3
|
-
import { Adapter, Endpoint, Message, type MessageElement, type MessageType, type Plugin, type SendOptions } from 'zhin.js';
|
|
4
|
-
export interface SandboxWsConfig {
|
|
5
|
-
context: "sandbox";
|
|
6
|
-
ws?: SandboxWsSocket;
|
|
7
|
-
name: string;
|
|
8
|
-
owner?: string;
|
|
9
|
-
/** yaml 预置名:启动时占位,WS 连接前在 endpoint:list 显示为离线 */
|
|
10
|
-
offline?: boolean;
|
|
11
|
-
}
|
|
12
|
-
/** 无 WS 时的占位 socket(仅用于 endpoint:list,不可收发) */
|
|
13
|
-
export declare function createOfflineSandboxWs(): SandboxWsSocket;
|
|
14
|
-
/** 兼容 `ws` 包与标准 WebSocket */
|
|
15
|
-
export type SandboxWsSocket = {
|
|
16
|
-
send(data: string): void;
|
|
17
|
-
close(code?: number, reason?: string): void;
|
|
18
|
-
on?(event: "message" | "close" | "error", listener: (...args: unknown[]) => void): void;
|
|
19
|
-
off?(event: "message" | "close" | "error", listener: (...args: unknown[]) => void): void;
|
|
20
|
-
addEventListener?(type: "message" | "close" | "error", listener: (ev: Event | MessageEvent | CloseEvent) => void): void;
|
|
21
|
-
removeEventListener?(type: "message" | "close" | "error", listener: (ev: Event | MessageEvent | CloseEvent) => void): void;
|
|
22
|
-
};
|
|
23
|
-
export type SandboxBotDefaults = {
|
|
24
|
-
name: string;
|
|
25
|
-
owner: string;
|
|
26
|
-
/** true:每连接随机 bot 名(Node 本地默认);false:固定 name */
|
|
27
|
-
randomNamePerConnection?: boolean;
|
|
28
|
-
};
|
|
29
|
-
export type ResolvedSandboxBot = {
|
|
30
|
-
context: "sandbox";
|
|
31
|
-
name: string;
|
|
32
|
-
owner: string;
|
|
33
|
-
randomNamePerConnection: boolean;
|
|
34
|
-
};
|
|
35
|
-
export declare function resolveSandboxEndpoint(appConfig: Record<string, unknown>): ResolvedSandboxBot;
|
|
36
|
-
export declare function bindSandboxWsSocket(ws: SandboxWsSocket, handlers: {
|
|
37
|
-
onMessage: (raw: string) => void;
|
|
38
|
-
onClose: () => void;
|
|
39
|
-
onError?: (err: unknown) => void;
|
|
40
|
-
}): () => void;
|
|
41
|
-
export declare function parseSandboxWsPayload(raw: string): {
|
|
42
|
-
type: MessageType;
|
|
43
|
-
id: string;
|
|
44
|
-
content: MessageElement[];
|
|
45
|
-
timestamp: number;
|
|
46
|
-
};
|
|
47
|
-
type EndpointEvent = {
|
|
48
|
-
content: MessageElement[];
|
|
49
|
-
type: MessageType;
|
|
50
|
-
id: string;
|
|
51
|
-
ts: number;
|
|
52
|
-
};
|
|
53
|
-
export declare class SandboxWsEndpoint extends EventEmitter implements Endpoint<SandboxWsConfig, EndpointEvent> {
|
|
54
|
-
#private;
|
|
55
|
-
adapter: SandboxWsHostAdapter;
|
|
56
|
-
$config: SandboxWsConfig;
|
|
57
|
-
$connected: boolean;
|
|
58
|
-
get $id(): string;
|
|
59
|
-
constructor(adapter: SandboxWsHostAdapter, $config: SandboxWsConfig);
|
|
60
|
-
$connect(): Promise<void>;
|
|
61
|
-
$disconnect(): Promise<void>;
|
|
62
|
-
$formatMessage({ content, type, id, ts }: EndpointEvent): Message<EndpointEvent>;
|
|
63
|
-
$sendMessage(options: SendOptions): Promise<string>;
|
|
64
|
-
$editMessage(options: import('zhin.js').EditMessageOptions): Promise<void>;
|
|
65
|
-
$recallMessage(_id: string): Promise<void>;
|
|
66
|
-
}
|
|
67
|
-
export declare class SandboxWsHostAdapter extends Adapter<SandboxWsEndpoint> {
|
|
68
|
-
protected readonly defaults: ResolvedSandboxBot;
|
|
69
|
-
static readonly capabilities: readonly ["inbound", "outbound"];
|
|
70
|
-
static interactivePolicy: "native";
|
|
71
|
-
constructor(plugin: Plugin, defaults: ResolvedSandboxBot);
|
|
72
|
-
getOutboundMediaCapabilities(): {
|
|
73
|
-
image: boolean;
|
|
74
|
-
audio: boolean;
|
|
75
|
-
video: boolean;
|
|
76
|
-
file: boolean;
|
|
77
|
-
maxAttachmentBytes: number;
|
|
78
|
-
};
|
|
79
|
-
createEndpoint(config: SandboxWsConfig): SandboxWsEndpoint;
|
|
80
|
-
/** `zhin.config.yml` 中 `context: sandbox` + 固定 `name` 时,启动即出现在 endpoint:list(离线) */
|
|
81
|
-
registerConfiguredPlaceholder(): void;
|
|
82
|
-
/** 外部 upgrade:注入已建立的 WebSocket */
|
|
83
|
-
acceptWebSocket(ws: SandboxWsSocket, overrides?: Partial<Pick<SandboxWsConfig, "name" | "owner">>): SandboxWsEndpoint;
|
|
84
|
-
}
|
|
85
|
-
export {};
|
|
86
|
-
//# sourceMappingURL=sandbox-ws.d.ts.map
|
package/lib/sandbox-ws.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-ws.d.ts","sourceRoot":"","sources":["../src/sandbox-ws.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EACL,OAAO,EACP,QAAQ,EACR,OAAO,EAEP,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,MAAM,EAEX,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAGpC,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,SAAS,CAAC;IACnB,EAAE,CAAC,EAAE,eAAe,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,+CAA+C;AAC/C,wBAAgB,sBAAsB,IAAI,eAAe,CAExD;AAED,6BAA6B;AAC7B,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,EAAE,CAAC,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GAAG,IAAI,CAAC;IACxF,GAAG,CAAC,CACF,KAAK,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,EACpC,QAAQ,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,GACrC,IAAI,CAAC;IACR,gBAAgB,CAAC,CACf,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,EACnC,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,YAAY,GAAG,UAAU,KAAK,IAAI,GACxD,IAAI,CAAC;IACR,mBAAmB,CAAC,CAClB,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,EACnC,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,GAAG,YAAY,GAAG,UAAU,KAAK,IAAI,GACxD,IAAI,CAAC;CACT,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,uBAAuB,CAAC,EAAE,OAAO,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,SAAS,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB,EAAE,OAAO,CAAC;CAClC,CAAC;AAUF,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,kBAAkB,CAkBpB;AAgBD,wBAAgB,mBAAmB,CACjC,EAAE,EAAE,eAAe,EACnB,QAAQ,EAAE;IACR,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;CAClC,GACA,MAAM,IAAI,CAsCZ;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG;IAClD,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB,CAqBA;AAED,KAAK,aAAa,GAAG;IACnB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,EAAE,EAAE,MAAM,CAAC;CACZ,CAAC;AAEF,qBAAa,iBAAkB,SAAQ,YAAa,YAAW,QAAQ,CAAC,eAAe,EAAE,aAAa,CAAC;;IAS5F,OAAO,EAAE,oBAAoB;IAC7B,OAAO,EAAE,eAAe;IATjC,UAAU,UAAS;IAGnB,IAAI,GAAG,WAEN;gBAGQ,OAAO,EAAE,oBAAoB,EAC7B,OAAO,EAAE,eAAe;IAK3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IA8BzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAOlC,cAAc,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,aAAa;IAsCjD,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBnD,YAAY,CAAC,OAAO,EAAE,OAAO,SAAS,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB1E,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CACjD;AAED,qBAAa,oBAAqB,SAAQ,OAAO,CAAC,iBAAiB,CAAC;IAMhE,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,kBAAkB;IALjD,gBAAyB,YAAY,mCAAoC;IACzE,OAAgB,iBAAiB,EAAG,QAAQ,CAAU;gBAGpD,MAAM,EAAE,MAAM,EACK,QAAQ,EAAE,kBAAkB;IAKjD,4BAA4B;;;;;;;IAU5B,cAAc,CAAC,MAAM,EAAE,eAAe,GAAG,iBAAiB;IAM1D,oFAAoF;IACpF,6BAA6B,IAAI,IAAI;IAYrC,kCAAkC;IAClC,eAAe,CACb,EAAE,EAAE,eAAe,EACnB,SAAS,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAC3D,iBAAiB;CAoCrB"}
|
package/lib/sandbox-ws.js
DELETED
|
@@ -1,295 +0,0 @@
|
|
|
1
|
-
/** Sandbox 传输 — Node WebSocket。 */
|
|
2
|
-
import { EventEmitter } from "node:events";
|
|
3
|
-
import { Adapter, Message, segment, } from 'zhin.js';
|
|
4
|
-
import { fromCanonicalSegments, toCanonicalSegments } from './segment-mapper.js';
|
|
5
|
-
/** 无 WS 时的占位 socket(仅用于 endpoint:list,不可收发) */
|
|
6
|
-
export function createOfflineSandboxWs() {
|
|
7
|
-
return { send: () => { }, close: () => { } };
|
|
8
|
-
}
|
|
9
|
-
function envVar(key) {
|
|
10
|
-
const g = globalThis;
|
|
11
|
-
return g.Deno?.env.get(key) ?? g.process?.env[key];
|
|
12
|
-
}
|
|
13
|
-
export function resolveSandboxEndpoint(appConfig) {
|
|
14
|
-
const endpoints = appConfig.endpoints;
|
|
15
|
-
const entry = endpoints?.find((b) => b.context === "sandbox");
|
|
16
|
-
const fixedName = typeof entry?.name === "string" ? entry.name : undefined;
|
|
17
|
-
const name = fixedName ||
|
|
18
|
-
envVar("SANDBOX_BOT_NAME") ||
|
|
19
|
-
"sandbox-bot";
|
|
20
|
-
const owner = (typeof entry?.owner === "string" && entry.owner) ||
|
|
21
|
-
envVar("SANDBOX_BOT_OWNER") ||
|
|
22
|
-
"sandbox-user";
|
|
23
|
-
return {
|
|
24
|
-
context: "sandbox",
|
|
25
|
-
name,
|
|
26
|
-
owner,
|
|
27
|
-
randomNamePerConnection: !fixedName,
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
/** 标准 WebSocket 在 upgrade 后可能尚未 OPEN;Node `ws` 在 connection 回调里通常已可 send */
|
|
31
|
-
function whenWsOpen(ws, fn) {
|
|
32
|
-
const std = ws;
|
|
33
|
-
if (typeof std.readyState === "number") {
|
|
34
|
-
if (std.readyState === WebSocket.OPEN) {
|
|
35
|
-
fn();
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
std.addEventListener("open", fn, { once: true });
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
fn();
|
|
42
|
-
}
|
|
43
|
-
export function bindSandboxWsSocket(ws, handlers) {
|
|
44
|
-
if (typeof ws.on === "function") {
|
|
45
|
-
const onMessage = (...args) => {
|
|
46
|
-
const data = args[0];
|
|
47
|
-
const raw = typeof data === "string"
|
|
48
|
-
? data
|
|
49
|
-
: data instanceof ArrayBuffer
|
|
50
|
-
? new TextDecoder().decode(data)
|
|
51
|
-
: Buffer.isBuffer(data)
|
|
52
|
-
? data.toString()
|
|
53
|
-
: String(data ?? "");
|
|
54
|
-
handlers.onMessage(raw);
|
|
55
|
-
};
|
|
56
|
-
ws.on("message", onMessage);
|
|
57
|
-
ws.on("close", handlers.onClose);
|
|
58
|
-
if (handlers.onError)
|
|
59
|
-
ws.on("error", handlers.onError);
|
|
60
|
-
return () => {
|
|
61
|
-
ws.off?.("message", onMessage);
|
|
62
|
-
ws.off?.("close", handlers.onClose);
|
|
63
|
-
if (handlers.onError)
|
|
64
|
-
ws.off?.("error", handlers.onError);
|
|
65
|
-
};
|
|
66
|
-
}
|
|
67
|
-
const onMessage = (ev) => {
|
|
68
|
-
const data = ev.data;
|
|
69
|
-
handlers.onMessage(typeof data === "string" ? data : "");
|
|
70
|
-
};
|
|
71
|
-
const onClose = () => handlers.onClose();
|
|
72
|
-
const onError = handlers.onError
|
|
73
|
-
? () => handlers.onError?.(new Error("WebSocket error"))
|
|
74
|
-
: undefined;
|
|
75
|
-
ws.addEventListener("message", onMessage);
|
|
76
|
-
ws.addEventListener("close", onClose);
|
|
77
|
-
if (onError)
|
|
78
|
-
ws.addEventListener("error", onError);
|
|
79
|
-
return () => {
|
|
80
|
-
ws.removeEventListener("message", onMessage);
|
|
81
|
-
ws.removeEventListener("close", onClose);
|
|
82
|
-
if (onError)
|
|
83
|
-
ws.removeEventListener("error", onError);
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
export function parseSandboxWsPayload(raw) {
|
|
87
|
-
let payload;
|
|
88
|
-
try {
|
|
89
|
-
payload = JSON.parse(raw);
|
|
90
|
-
}
|
|
91
|
-
catch {
|
|
92
|
-
payload = { text: raw };
|
|
93
|
-
}
|
|
94
|
-
const type = payload.type ?? "private";
|
|
95
|
-
const id = payload.id ?? "sandbox-user";
|
|
96
|
-
const content = typeof payload.content === "string"
|
|
97
|
-
? [{ type: "text", data: { text: payload.content } }]
|
|
98
|
-
: Array.isArray(payload.content)
|
|
99
|
-
? toCanonicalSegments(payload.content)
|
|
100
|
-
: [{ type: "text", data: { text: payload.text ?? raw } }];
|
|
101
|
-
return { type, id, content, timestamp: payload.timestamp ?? Date.now() };
|
|
102
|
-
}
|
|
103
|
-
export class SandboxWsEndpoint extends EventEmitter {
|
|
104
|
-
adapter;
|
|
105
|
-
$config;
|
|
106
|
-
$connected = false;
|
|
107
|
-
#unbind = null;
|
|
108
|
-
get $id() {
|
|
109
|
-
return this.$config.name;
|
|
110
|
-
}
|
|
111
|
-
constructor(adapter, $config) {
|
|
112
|
-
super();
|
|
113
|
-
this.adapter = adapter;
|
|
114
|
-
this.$config = $config;
|
|
115
|
-
}
|
|
116
|
-
async $connect() {
|
|
117
|
-
if (this.$config.offline || !this.$config.ws)
|
|
118
|
-
return;
|
|
119
|
-
const ws = this.$config.ws;
|
|
120
|
-
if (typeof ws.on !== "function" && typeof ws.addEventListener !== "function") {
|
|
121
|
-
this.$connected = true;
|
|
122
|
-
return;
|
|
123
|
-
}
|
|
124
|
-
this.#unbind = bindSandboxWsSocket(ws, {
|
|
125
|
-
onMessage: (raw) => {
|
|
126
|
-
const { type, id, content, timestamp } = parseSandboxWsPayload(raw);
|
|
127
|
-
this.adapter.emit("message.receive", this.$formatMessage({ content, type, id, ts: timestamp }));
|
|
128
|
-
},
|
|
129
|
-
onClose: () => {
|
|
130
|
-
this.$connected = false;
|
|
131
|
-
if (!this.$config.offline) {
|
|
132
|
-
this.adapter.endpoints.delete(this.$id);
|
|
133
|
-
}
|
|
134
|
-
},
|
|
135
|
-
onError: (err) => {
|
|
136
|
-
this.adapter.logger.warn(`sandbox ws error (${this.$config.name}): ${err instanceof Error ? err.message : String(err)}`);
|
|
137
|
-
},
|
|
138
|
-
});
|
|
139
|
-
this.$connected = true;
|
|
140
|
-
}
|
|
141
|
-
async $disconnect() {
|
|
142
|
-
this.#unbind?.();
|
|
143
|
-
this.#unbind = null;
|
|
144
|
-
this.$config.ws?.close();
|
|
145
|
-
this.$connected = false;
|
|
146
|
-
}
|
|
147
|
-
$formatMessage({ content, type, id, ts }) {
|
|
148
|
-
if (!this.$config.owner)
|
|
149
|
-
this.$config.owner = id;
|
|
150
|
-
const canonical = toCanonicalSegments(content);
|
|
151
|
-
const message = Message.from({ content, type, id, ts }, {
|
|
152
|
-
$id: `${ts}`,
|
|
153
|
-
$adapter: "sandbox",
|
|
154
|
-
$endpoint: this.$config.name,
|
|
155
|
-
$sender: { id, name: "mock" },
|
|
156
|
-
$channel: { id, type },
|
|
157
|
-
$content: canonical,
|
|
158
|
-
$raw: segment.raw(canonical),
|
|
159
|
-
$timestamp: ts,
|
|
160
|
-
$recall: async () => { },
|
|
161
|
-
$reply: async (replyContent, quote) => {
|
|
162
|
-
const normalized = Array.isArray(replyContent) ? replyContent : [replyContent];
|
|
163
|
-
if (quote) {
|
|
164
|
-
normalized.unshift({
|
|
165
|
-
type: "reply",
|
|
166
|
-
data: {
|
|
167
|
-
id: typeof quote === "boolean" ? message.$id : quote,
|
|
168
|
-
},
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
return await this.adapter.sendMessage({
|
|
172
|
-
context: "sandbox",
|
|
173
|
-
endpoint: this.$config.name,
|
|
174
|
-
content: normalized,
|
|
175
|
-
id,
|
|
176
|
-
type,
|
|
177
|
-
});
|
|
178
|
-
},
|
|
179
|
-
});
|
|
180
|
-
return message;
|
|
181
|
-
}
|
|
182
|
-
async $sendMessage(options) {
|
|
183
|
-
options = {
|
|
184
|
-
...options,
|
|
185
|
-
};
|
|
186
|
-
if (!this.$connected)
|
|
187
|
-
return "";
|
|
188
|
-
const ws = this.$config.ws;
|
|
189
|
-
if (!ws)
|
|
190
|
-
return "";
|
|
191
|
-
const messageId = `sb_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
|
|
192
|
-
const normalized = (Array.isArray(options.content) ? options.content : [options.content]).map((s) => typeof s === 'string' ? { type: 'text', data: { text: s } } : s);
|
|
193
|
-
const wire = fromCanonicalSegments(toCanonicalSegments(normalized));
|
|
194
|
-
ws.send(JSON.stringify({
|
|
195
|
-
...options,
|
|
196
|
-
messageId,
|
|
197
|
-
content: wire,
|
|
198
|
-
timestamp: Date.now(),
|
|
199
|
-
}));
|
|
200
|
-
return messageId;
|
|
201
|
-
}
|
|
202
|
-
async $editMessage(options) {
|
|
203
|
-
if (!this.$connected)
|
|
204
|
-
return;
|
|
205
|
-
const ws = this.$config.ws;
|
|
206
|
-
if (!ws)
|
|
207
|
-
return;
|
|
208
|
-
ws.send(JSON.stringify({
|
|
209
|
-
type: 'edit',
|
|
210
|
-
messageId: options.messageId,
|
|
211
|
-
context: options.context,
|
|
212
|
-
endpoint: options.endpoint,
|
|
213
|
-
id: options.id,
|
|
214
|
-
channelType: options.type,
|
|
215
|
-
content: options.content,
|
|
216
|
-
timestamp: Date.now(),
|
|
217
|
-
}));
|
|
218
|
-
}
|
|
219
|
-
async $recallMessage(_id) { }
|
|
220
|
-
}
|
|
221
|
-
export class SandboxWsHostAdapter extends Adapter {
|
|
222
|
-
defaults;
|
|
223
|
-
static capabilities = ['inbound', 'outbound'];
|
|
224
|
-
static interactivePolicy = 'native';
|
|
225
|
-
constructor(plugin, defaults) {
|
|
226
|
-
super(plugin, "sandbox", []);
|
|
227
|
-
this.defaults = defaults;
|
|
228
|
-
}
|
|
229
|
-
getOutboundMediaCapabilities() {
|
|
230
|
-
return {
|
|
231
|
-
image: true,
|
|
232
|
-
audio: true,
|
|
233
|
-
video: true,
|
|
234
|
-
file: true,
|
|
235
|
-
maxAttachmentBytes: 26_214_400,
|
|
236
|
-
};
|
|
237
|
-
}
|
|
238
|
-
createEndpoint(config) {
|
|
239
|
-
const endpoint = new SandboxWsEndpoint(this, config);
|
|
240
|
-
this.endpoints.set(endpoint.$id, endpoint);
|
|
241
|
-
return endpoint;
|
|
242
|
-
}
|
|
243
|
-
/** `zhin.config.yml` 中 `context: sandbox` + 固定 `name` 时,启动即出现在 endpoint:list(离线) */
|
|
244
|
-
registerConfiguredPlaceholder() {
|
|
245
|
-
if (this.defaults.randomNamePerConnection)
|
|
246
|
-
return;
|
|
247
|
-
if (this.endpoints.has(this.defaults.name))
|
|
248
|
-
return;
|
|
249
|
-
this.createEndpoint({
|
|
250
|
-
context: "sandbox",
|
|
251
|
-
name: this.defaults.name,
|
|
252
|
-
owner: this.defaults.owner,
|
|
253
|
-
ws: createOfflineSandboxWs(),
|
|
254
|
-
offline: true,
|
|
255
|
-
});
|
|
256
|
-
}
|
|
257
|
-
/** 外部 upgrade:注入已建立的 WebSocket */
|
|
258
|
-
acceptWebSocket(ws, overrides) {
|
|
259
|
-
const name = overrides?.name ??
|
|
260
|
-
(this.defaults.randomNamePerConnection
|
|
261
|
-
? `sandbox-${crypto.randomUUID().slice(0, 8)}`
|
|
262
|
-
: this.defaults.name);
|
|
263
|
-
const owner = overrides?.owner ?? this.defaults.owner;
|
|
264
|
-
const existing = this.endpoints.get(name);
|
|
265
|
-
if (existing) {
|
|
266
|
-
void existing.$disconnect();
|
|
267
|
-
this.endpoints.delete(name);
|
|
268
|
-
}
|
|
269
|
-
const endpoint = this.createEndpoint({ context: "sandbox", ws, name, owner, offline: false });
|
|
270
|
-
void endpoint.$connect();
|
|
271
|
-
if (!this.defaults.randomNamePerConnection) {
|
|
272
|
-
const readyPayload = JSON.stringify({
|
|
273
|
-
type: "ready",
|
|
274
|
-
id: owner,
|
|
275
|
-
endpoint: name,
|
|
276
|
-
content: [
|
|
277
|
-
{
|
|
278
|
-
type: "text",
|
|
279
|
-
data: {
|
|
280
|
-
text: [
|
|
281
|
-
`已连接 Sandbox「${name}」`,
|
|
282
|
-
"与 Node Host 控制台沙盒协议一致(/sandbox)",
|
|
283
|
-
"命令: help · ping · zt · status",
|
|
284
|
-
].join("\n"),
|
|
285
|
-
},
|
|
286
|
-
},
|
|
287
|
-
],
|
|
288
|
-
timestamp: Date.now(),
|
|
289
|
-
});
|
|
290
|
-
whenWsOpen(ws, () => ws.send(readyPayload));
|
|
291
|
-
}
|
|
292
|
-
return endpoint;
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
//# sourceMappingURL=sandbox-ws.js.map
|
package/lib/sandbox-ws.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox-ws.js","sourceRoot":"","sources":["../src/sandbox-ws.ts"],"names":[],"mappings":"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"}
|
package/lib/segment-mapper.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"segment-mapper.d.ts","sourceRoot":"","sources":["../src/segment-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC"}
|
package/lib/segment-mapper.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"segment-mapper.js","sourceRoot":"","sources":["../src/segment-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC"}
|