Lines 1-30javascript
1import {a}from'./chunk-HQBRVVXS.mjs';import {Log,Identifier,Filesystem,TruncateContent,Fetch,PKG,createServer}from'@easbot/utils';import u,{z as z$1}from'zod';import*as pe from'path';import pe__default,{join,extname,basename}from'path';import*as se from'fs';import se__default,{existsSync,readFileSync,writeFileSync,mkdirSync,chmodSync,unlinkSync}from'fs';import*as W from'fs/promises';import W__default,{readFile}from'fs/promises';import {WebSocketServer}from'ws';import Wi from'https';import Hi from'http';import zi,{randomUUID,createHash,randomBytes,createCipheriv,createDecipheriv}from'crypto';im ...
3`),a=t[t.length-1]?.metadata.tokens;return {output:i,title:s.title??"Gateway Response",metadata:{sessionId:e,source:s.source,agent:s.agent,messageCount:t.length,finishReason:n,messages:t,...a?{tokens:a}:{}}}}formatOutput(t){let e=[];if(t.text&&e.push(t.text),t.tools&&this.filterConfig.includeToolOutput)for(let s of t.tools)s.output&&e.push(`
10`).trim()}getSessionId(){return this.sessionId}resetSession(){this.sessionId=void 0;}async stop(){this.bridgeStarted&&(await this.eventBridge.stop(),this.bridgeStarted=false,this.sessionId=void 0);}};var ls=Log.create({service:"gateway:interfaces"}),$;function eo(o){$=o,o?ls.debug("Agent adapter registered",{hasSubAgentRunner:!!o.subAgentRunner}):ls.debug("Agent adapter cleared");}function to(){return $}function ue(){return $!==void 0}function X(){if(!$)throw new Error("Agent adapter not set. Call setAgentAdapter() before using Gateway.");return $}var On={Path:{home:process.env.HOME||process.e ...
11`&&t[r]!=="\r";)r++;continue}if(!s&&a==="/"&&t[r+1]==="*"){for(r+=2;r<t.length-1;){if(t[r]==="*"&&t[r+1]==="/"){r+=
12`)}buildSessionId(t,e,s){let n=[this.platform,t,e];return s&&n.push(s),n.join("_")}async handleMessage(t){if(!this.messageHandler){this.log.warn("no message handler set, dropping message",{id:t.id});return}this.updateActivity(),await this.messageHandler.onMessage(t);}async handleEvent(t,e){if(!this.messageHandler){this.log.warn("no message handler set, dropping event",{type:t});return}await this.messageHandler.onEvent({type:t,channelId:this.id,data:e,timestamp:Date.now()});}async getCommandList(){try{let t=X(),s=(await t.sdk.config.get().then(i=>i.data).catch(()=>{}))?.context?.mode??"general" ...
HighCopied Package Dependency Bridge
Package metadata claims a different repository identity while copied source loads a runtime dependency bridge.
dist/chunks/chunk-3EE2AOK7.mjsView on unpkg · L10 13`)}}catch(t){return this.log.error("failed to process /commands command",{error:String(t)}),{handled:true,reply:`\u274C Failed to list commands: ${String(t)}`}}}async handleNewCommand(t){try{return this.messageHandler?.session?this.messageHandler.session.getSession(t)?(await this.messageHandler.session.unbindBackendSession(t),this.log.
14`)}formatUptime(t){if(t<=0)return "0s";let e=Math.floor(t/1e3),s=Math.floor(e/60),n=Math.floor(s/60),i=Math.floor(n/24),r=[];return i>0&&r.push(`${i}d`),n%24>0&&r.push(`${n%24}h`),s%60>0&&r.push(`${s%60}m`),(e%60>0||r.length===0)&&r.push(`${e%60}s`),r.slice(0,2).join(" ")}};var De=class extends P{constructor(e="telegram-main"){super();a(this,"id");a(this,"platform","telegram");a(this,"name","Telegram Bot");a(this,"botConfig",null);a(this,"baseUrl","");a(this,"abortController",null);a(this,"lastUpdateId",0);a(this,"typingTimers",new Map);a(this,"sentMessages",new Map);a(this,"sessionIdMap",new ...
16${p.content}`});}catch(g){this.log.warn("failed to download text file, storing as file",{platform:"telegram",fileId:d,error:String(g)}),s.push({type:"file",data:d,mime:a});}else try{let g=c.includes(".")?c.split(".").pop():Filesystem.mimeTypeToExt(a)||"bin",p
18${p.content}`});}else await this.downloadFile(r.url,d),s.push({type:"file",data:pathToFileURL(d).href,mime:r.content_type});}catch(a){this.log.warn("failed to download file, storing as URL",{attachmentId:r.id,error:String(a)}),s.push({type:"file",data:r.url,mime:r.content_type});}return s}async downloadFile(e,s){let n=await Fetch.get(e,{responseType:"arrayBuffer",headers:{Authorization:`Bot ${this.botConfig?.botToken}`}});if(!n.ok)throw new Error(`Failed to download file: ${n.status}`);let i=Filesystem.dirname(s);await Filesystem.mkdir(i,{recursive:true});let r=Buffer.from(n.data);return await ...
20${p.content}`});}else await this.downloadFile(r.url_private_download||r.url_private,d),s.push({type:"file",data:pathToFileURL(d).href,mime:r.mimetype});}catch(a){this.log.warn("failed to download file, storing as URL",{fileId:r.id,error:String(a)}),s.push({type:"file",data:r.url_private,mime:r.mimetype});}return s}async downloadFile(e,s){let n=await Fetch.get(e,{responseType:"arrayBuffer"
21`)}buildSessionId(e,s,n){let i=["feishu",e,s];return n&&i.push(n),i.join("_")}};var Ue=class extends P{constructor(e="wechat-main"){super();a(this,"id");a(this,"platform","wechat");a(this,"name","WeChat Bot");a(this,"botConfig",null);a(this,"accessToken",null);a(this,"tokenExpireTime",0);a(this,"abortController",null);a(this,"processedMessageIds",new Set);a(this,"retryState",{attempts:0,maxAttempts:3,initialDelay:1e3,maxDelay:3e4});this.id=e,this.initLog();}async doStart(){if(!this.config)throw y(this.id,"CHANNEL_INIT_FAILED","Config not set");if(this.botConfig=this.config.platform,!this.botCo ...
22`;)s++;s<o.length&&s++;let n=s;for(;s<o.length;){if(o.startsWith("```",s)){for(t+=o.slice(n,s),s+=3;s<o.length&&o[s]!==`
23`;)s++;s<o.length&&s++;break}s++;}s>=o.length&&!o.startsWith("```",s-3)&&(t+=o.slice(e)),e=s;}else t+=o[e],e++;return t}function on(o){return
25`).trim()}async function $e(o){let t=randomUUID();return await Xt(o.baseUrl,o.token,{to_user_id:o.to,from_user_id:"",client_id:t,message_type:Oe.BOT,message_state:Yt.FINISH,context_token:o.contextToken,item_list:[{type:D.TEXT,text_item:{text:on(o.text)}}]}),{messageId:t}}async function kr(o){let t="";for(let e of o.items)t=randomUUID(),await Xt(o.baseUrl,o.token,{to_user_id:o.to,from_user_id:"",client_id:t,message_type:Oe.BOT,message_state:Yt.FINISH,context_token:o.contextToken,item_list:[e]});return t}async function cn(o){let t=Vs(o.filePath),e=await Ks({filePath:o.filePath,toUserId:o.to,medi ...
27Ask the operator to confirm:
28easbot weixin access pair ${r}`,baseUrl:t.baseUrl,token:t.token,contextToken:o.context_token||""});}catch(a){le.error("failed to send pairing code",{fromUserId:e,error:String(a)});}return}let s="",n,i;if(o.item_list){for(let r of o.item_list)if(r.type===D.TEXT&&r.text_item?.text)s+=`${s?`
29`:""}${r.text_item.text}`;else if(r.type===D.IMAGE||r.type===D.VOICE||r.type===D.FILE||r.type===D.VIDEO){let a=await Br(r,t.cdnBaseUrl,t.downloadDir);a&&(n=a.path,i=a.type),r.type===D
30`:""}[Voice transcription]: ${r.voice_item.text}`);}}if(!(!s&&!n)){if(s&&t.onPermissionResponse){let r=Or(s);if(r){let{consumePendingPermission:a}=await import('./permissions-VGMKDEK7.mjs'),c=a(r.requestId,e);if(c){await t.onPermissionResponse({requestId:c.request_id,behavior:r.behavior,fromUserId:e});return
Long lines were clipped for display.