@sleep2agi/agent-network 2.3.0-preview.76 → 2.3.0-preview.78

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.
@@ -0,0 +1,28 @@
1
+ export interface ActiveNetworkTask {
2
+ taskId: string;
3
+ from: string;
4
+ startedAt: number;
5
+ }
6
+ /** 运行时崩溃没来得及删标记时的兜底:超过这个年龄的标记当不存在。 */
7
+ export declare const ACTIVE_NETWORK_TASK_MAX_AGE_MS: number;
8
+ export declare function parseActiveNetworkTask(raw: string | null | undefined, now: number, maxAgeMs?: number): ActiveNetworkTask | null;
9
+ export type OutboundTool = "commhub_send_task" | "commhub_send_message";
10
+ export type OutboundRewrite = {
11
+ kind: "pass";
12
+ } | {
13
+ kind: "progress_of_active_task";
14
+ taskId: string;
15
+ from: string;
16
+ text: string;
17
+ };
18
+ /**
19
+ * 只在「目标 alias 恰好是当前网络任务的发起方」时改写;发给别人的照常放行——
20
+ * 模型替任务派活给第三方是合法的协作,不能一刀切。
21
+ */
22
+ export declare function decideOutboundRewrite(tool: OutboundTool, args: {
23
+ alias?: unknown;
24
+ task?: unknown;
25
+ message?: unknown;
26
+ } | null | undefined, active: ActiveNetworkTask | null): OutboundRewrite;
27
+ /** outbound-only 模式下模型不能自选 high(#1770 第三条):降为 normal,其余原样。 */
28
+ export declare function clampOutboundPriority(priority: unknown, outboundOnly: boolean): "high" | "normal" | "low" | undefined;
@@ -4,6 +4,10 @@ export declare function sendChannelTaskWithTrace(input: {
4
4
  priority?: string;
5
5
  fromAlias: string;
6
6
  networkId?: string | null;
7
+ /** Structured task metadata forwarded verbatim, e.g. { attachments: [...] }.
8
+ * Omitted from the outbound body when absent, so a call without it is
9
+ * unchanged. */
10
+ meta?: Record<string, unknown>;
7
11
  }, deps: {
8
12
  send: (args: Record<string, unknown>) => Promise<any>;
9
13
  log: (line: string) => void;
@@ -1 +1 @@
1
- const a0_0x5b5018=a0_0x1f56;(function(_0x4c94d9,_0x200b90){const _0x552650=a0_0x1f56,_0x3855a5=_0x4c94d9();while(!![]){try{const _0x4ceeeb=parseInt(_0x552650(0x1e7))/0x1+parseInt(_0x552650(0x1a9))/0x2*(parseInt(_0x552650(0x191))/0x3)+parseInt(_0x552650(0x1d3))/0x4+-parseInt(_0x552650(0x1ec))/0x5*(-parseInt(_0x552650(0x1b5))/0x6)+-parseInt(_0x552650(0x1fe))/0x7*(-parseInt(_0x552650(0x1c1))/0x8)+-parseInt(_0x552650(0x1d1))/0x9*(parseInt(_0x552650(0x1a1))/0xa)+-parseInt(_0x552650(0x1da))/0xb;if(_0x4ceeeb===_0x200b90)break;else _0x3855a5['push'](_0x3855a5['shift']());}catch(_0x10381c){_0x3855a5['push'](_0x3855a5['shift']());}}}(a0_0x1d78,0x4102e));import{EventEmitter as a0_0x3a5e97}from'events';import{hostname as a0_0x346293}from'os';var K=/(?:atok|ntok|utok|ghp|github_pat)_[A-Za-z0-9_-]+|Bearer\s+\S+/gi,L=(_0x179c3f,_0x4b399e)=>(_0x179c3f??_0x4b399e)[a0_0x5b5018(0x192)](/[\r\n\x00-\x1f\x7f]/g,'\x20')[a0_0x5b5018(0x1ef)](0x0,0xf0);function N(_0x181808){const _0x26ad3a=a0_0x5b5018;return(_0x181808 instanceof Error?_0x181808[_0x26ad3a(0x1cf)]:String(_0x181808??_0x26ad3a(0x1fb)))['replace'](K,'[REDACTED]')[_0x26ad3a(0x192)](/[\r\n\x00-\x1f\x7f]/g,'\x20')[_0x26ad3a(0x1ef)](0x0,0xf0);}function O(_0x538dc5,_0x32b550=process.env.ANET_TASK_TRACE_FORMAT===a0_0x5b5018(0x1be)){const _0xbda320=a0_0x5b5018;if(_0x32b550)return JSON[_0xbda320(0x1ad)](_0x538dc5);let _0x56bf12=L(_0x538dc5[_0xbda320(0x208)],_0xbda320(0x1f1)),_0x56d14f=L(_0x538dc5[_0xbda320(0x1d4)],_0xbda320(0x1c9)),_0x97629d=_0x538dc5[_0xbda320(0x1d2)]?_0xbda320(0x1f2)+_0x538dc5[_0xbda320(0x1d2)]+':'+(_0x538dc5['error_message']??''):'';return _0xbda320(0x1ae)+_0x538dc5[_0xbda320(0x196)]+_0xbda320(0x1a4)+L(_0x538dc5[_0xbda320(0x1eb)],_0xbda320(0x18e))+_0xbda320(0x1a0)+L(_0x538dc5['to_alias'],_0xbda320(0x18e))+'\x20task_id='+_0x56d14f+_0xbda320(0x204)+_0x56bf12+'\x20network_id='+L(_0x538dc5[_0xbda320(0x1f5)],'<unknown>')+_0xbda320(0x1d8)+_0x538dc5[_0xbda320(0x200)]+_0xbda320(0x19d)+_0x538dc5['duration_ms']+_0xbda320(0x199)+_0x538dc5[_0xbda320(0x1cc)]+_0x97629d;}function a0_0x1f56(_0x44d478,_0x3b5d0e){_0x44d478=_0x44d478-0x18d;const _0x1d7851=a0_0x1d78();let _0x1f5687=_0x1d7851[_0x44d478];return _0x1f5687;}function U(_0x49b3c5){const _0x11e7cd=a0_0x5b5018;return{'event':{'sending':'task.send.start','delivered':_0x11e7cd(0x1fc),'failed':_0x11e7cd(0x1ee),'acked':_0x11e7cd(0x1ac),'started':_0x11e7cd(0x1ca),'replied':_0x11e7cd(0x1bd),'expired':_0x11e7cd(0x1e3)}[_0x49b3c5[_0x11e7cd(0x196)]],..._0x49b3c5};}function j(_0x24376d){const _0x2beb78=a0_0x5b5018;let _0x21012f=_0x24376d?.[_0x2beb78(0x1d4)]||_0x24376d?.[_0x2beb78(0x1b6)]||_0x24376d?.['id'];if(_0x21012f)return String(_0x21012f);let _0x578288=_0x24376d?.[_0x2beb78(0x1de)]?.[0x0]?.['text'];if(typeof _0x578288!=='string')return null;try{let _0x50658c=JSON[_0x2beb78(0x198)](_0x578288);return _0x50658c?.[_0x2beb78(0x1d4)]||_0x50658c?.['message_id']||_0x50658c?.['id']||null;}catch{return null;}}async function X(_0x315ef5,_0x58898c){const _0x586d64=a0_0x5b5018;let _0x3d1249=_0x58898c[_0x586d64(0x19a)]??Date['now'],_0xf8018e=_0x3d1249(),_0x2b58a9=(_0x1e023a,_0x3a5cf7,_0x418615,_0x5cdbc8)=>{const _0x5be2c1=_0x586d64;_0x58898c[_0x5be2c1(0x1f8)](O(U({'from_alias':_0x315ef5['fromAlias'],'to_alias':_0x315ef5[_0x5be2c1(0x1d5)],'task_id':_0x3a5cf7,'parent_task_id':_0x315ef5[_0x5be2c1(0x1e8)],'network_id':_0x315ef5[_0x5be2c1(0x1c0)],'transport':_0x315ef5['transport'],'status':_0x1e023a,'duration_ms':_0x3d1249()-_0xf8018e,'lifecycle_tracking':_0x315ef5[_0x5be2c1(0x1f0)],..._0x418615!==void 0x0?{'error_code':_0x5cdbc8||_0x5be2c1(0x1e0),'error_message':N(_0x418615)}:{}})));};_0x2b58a9(_0x586d64(0x1e2),null);try{let _0x51a3e6=await _0x58898c[_0x586d64(0x1dd)](),_0x16dd66=j(_0x51a3e6);if(_0x16dd66)_0x2b58a9(_0x586d64(0x1ff),_0x16dd66);else{if(_0x51a3e6?.['ok']===!0x1||_0x51a3e6?.[_0x586d64(0x1c2)])_0x2b58a9('failed',_0x16dd66,_0x51a3e6?.['error']||_0x586d64(0x19e),'send_rejected');else _0x2b58a9(_0x586d64(0x206),null,_0x586d64(0x1d7),'missing_task_id');}return _0x51a3e6;}catch(_0x304de1){throw _0x2b58a9(_0x586d64(0x206),null,_0x304de1,_0x586d64(0x1e0)),_0x304de1;}}async function Y(_0x53c697,_0x400d02){const _0x139447=a0_0x5b5018;return X({'fromAlias':_0x53c697['fromAlias'],'toAlias':_0x53c697[_0x139447(0x1e4)],'parentTaskId':_0x53c697[_0x139447(0x1e8)]||null,'networkId':_0x53c697['networkId']||null,'transport':_0x139447(0x190),'lifecycleTracking':_0x139447(0x1fd)},_0x400d02);}class $ extends a0_0x3a5e97{[a0_0x5b5018(0x194)];[a0_0x5b5018(0x1e4)];[a0_0x5b5018(0x207)];[a0_0x5b5018(0x19c)];[a0_0x5b5018(0x1aa)];[a0_0x5b5018(0x1ea)];['reconnectDelay'];['heartbeatTimer'];['sseAbort'];[a0_0x5b5018(0x1b3)]=!0x1;constructor(_0x2977dc){const _0x50f77a=a0_0x5b5018;super();if(this[_0x50f77a(0x194)]=_0x2977dc['url']['replace'](/\/$/,''),this['alias']=_0x2977dc[_0x50f77a(0x1e4)],this['token']=_0x2977dc['token'],this[_0x50f77a(0x19c)]=_0x2977dc[_0x50f77a(0x19c)]||'sdk',this[_0x50f77a(0x1aa)]=_0x50f77a(0x1f6)+_0x2977dc[_0x50f77a(0x1e4)]+'-'+Date['now']()['toString'](0x24),this['heartbeatInterval']=_0x2977dc[_0x50f77a(0x1ea)]??0x2bf20,this[_0x50f77a(0x1f7)]=_0x2977dc[_0x50f77a(0x1f7)]??0xbb8,_0x2977dc[_0x50f77a(0x1f4)]!==!0x1)this[_0x50f77a(0x1c7)]();}[a0_0x5b5018(0x1f8)](_0x428c1c){const _0x1ecf95=a0_0x5b5018;console[_0x1ecf95(0x1f8)]('['+new Date()[_0x1ecf95(0x1d0)]()[_0x1ecf95(0x1ef)](0x0,0x8)+_0x1ecf95(0x1dc)+this[_0x1ecf95(0x1e4)]+']\x20'+_0x428c1c);}async['call'](_0x3d5f9f,_0x8a3e62){const _0x114ed5=a0_0x5b5018;let _0x38ea3c={'Content-Type':'application/json','Accept':'application/json,\x20text/event-stream'};if(this[_0x114ed5(0x207)])_0x38ea3c[_0x114ed5(0x1ab)]=_0x114ed5(0x1c6)+this[_0x114ed5(0x207)];let _0x464b63=await(await fetch(this[_0x114ed5(0x194)]+_0x114ed5(0x18f),{'method':_0x114ed5(0x1b9),'headers':_0x38ea3c,'body':JSON[_0x114ed5(0x1ad)]({'jsonrpc':_0x114ed5(0x1e9),'id':Date['now'](),'method':_0x114ed5(0x1bb),'params':{'name':_0x3d5f9f,'arguments':_0x8a3e62}})}))[_0x114ed5(0x1b0)](),_0x165fe6=_0x464b63[_0x114ed5(0x1cb)](/data: (.+)/),_0x44c99e=_0x165fe6?JSON[_0x114ed5(0x198)](_0x165fe6[0x1]):JSON[_0x114ed5(0x198)](_0x464b63),_0x37b851=_0x44c99e?.[_0x114ed5(0x1c5)]?.[_0x114ed5(0x1de)]?.[0x0]?.[_0x114ed5(0x1b0)];return _0x37b851?JSON[_0x114ed5(0x198)](_0x37b851):_0x44c99e;}async[a0_0x5b5018(0x1c7)](){const _0x44cb1f=a0_0x5b5018;if(this['running'])return;this[_0x44cb1f(0x1b3)]=!0x0,await this[_0x44cb1f(0x196)](_0x44cb1f(0x1d6)),this['log'](_0x44cb1f(0x1bc)),this[_0x44cb1f(0x20a)]=setInterval(()=>{const _0x95180b=_0x44cb1f;this[_0x95180b(0x196)](_0x95180b(0x1d6))[_0x95180b(0x20b)](_0x35e053=>this['log']('heartbeat\x20failed:\x20'+_0x35e053[_0x95180b(0x1cf)]));},this[_0x44cb1f(0x1ea)]),this['connectSSE']();}async['disconnect'](){const _0x4e6cca=a0_0x5b5018;if(this[_0x4e6cca(0x1b3)]=!0x1,this[_0x4e6cca(0x1b4)]?.[_0x4e6cca(0x209)](),this[_0x4e6cca(0x20a)])clearInterval(this['heartbeatTimer']);await this[_0x4e6cca(0x196)](_0x4e6cca(0x1e6))[_0x4e6cca(0x20b)](()=>{}),this[_0x4e6cca(0x1f8)](_0x4e6cca(0x1c4));}async[a0_0x5b5018(0x1dd)](_0x15442e,_0x53a282,_0x4acf7d=a0_0x5b5018(0x1b8)){const _0x4217be=a0_0x5b5018;return Y({'alias':_0x15442e,'fromAlias':this[_0x4217be(0x1e4)]},{'log':_0x5cf6cf=>console[_0x4217be(0x1f8)](_0x5cf6cf),'send':()=>this[_0x4217be(0x1a6)](_0x4217be(0x1ce),{'alias':_0x15442e,'task':_0x53a282,'priority':_0x4acf7d,'from_session':this['alias']})});}async[a0_0x5b5018(0x1cf)](_0x559f15,_0x575fae){return this['call']('send_message',{'alias':_0x559f15,'message':_0x575fae,'from_session':this['alias']});}async[a0_0x5b5018(0x201)](_0x2336e6,_0x26a985,_0x42cf6f='completed'){const _0x1b970e=a0_0x5b5018;return this[_0x1b970e(0x1a6)]('send_reply',{'in_reply_to':_0x2336e6,'text':_0x26a985,'status':_0x42cf6f});}async[a0_0x5b5018(0x196)](_0x164945,_0x5b2cbe){const _0x45a25a=a0_0x5b5018;return this[_0x45a25a(0x1a6)](_0x45a25a(0x197),{'resume_id':this[_0x45a25a(0x1aa)],'alias':this[_0x45a25a(0x1e4)],'status':_0x164945,'server':a0_0x346293(),'hostname':a0_0x346293(),'agent':this['agent'],'project_dir':process[_0x45a25a(0x1cd)](),..._0x5b2cbe});}async[a0_0x5b5018(0x203)](){const _0x31c2f9=a0_0x5b5018;return this[_0x31c2f9(0x1a6)]('get_all_status',{});}async[a0_0x5b5018(0x195)](_0x754ff3,_0x1219fd){const _0x131c38=a0_0x5b5018;return this[_0x131c38(0x1a6)]('broadcast',{'message':_0x754ff3,'filter_server':_0x1219fd?.[_0x131c38(0x193)],'filter_status':_0x1219fd?.[_0x131c38(0x196)]});}async['connectSSE'](){const _0x370ce5=a0_0x5b5018;let _0x1e0768=encodeURIComponent(this[_0x370ce5(0x1e4)]),_0x301dc0=this['url']+_0x370ce5(0x1db)+_0x1e0768,_0x52966f=this['reconnectDelay'];while(this[_0x370ce5(0x1b3)]){try{this[_0x370ce5(0x1b4)]=new AbortController();let _0x2a31cf={'Accept':_0x370ce5(0x19b)};if(this[_0x370ce5(0x207)])_0x2a31cf[_0x370ce5(0x1ab)]='Bearer\x20'+this[_0x370ce5(0x207)];let _0x100cf0=await fetch(_0x301dc0,{'headers':_0x2a31cf,'signal':this[_0x370ce5(0x1b4)][_0x370ce5(0x1a3)]});if(!_0x100cf0['ok']||!_0x100cf0[_0x370ce5(0x18d)]){this['log']('SSE\x20failed:\x20'+_0x100cf0['status']),await this[_0x370ce5(0x1ba)](_0x52966f),_0x52966f=Math[_0x370ce5(0x1c3)](_0x52966f*1.5,0xea60);continue;}_0x52966f=this[_0x370ce5(0x1f7)];let _0x40986f=_0x100cf0[_0x370ce5(0x18d)][_0x370ce5(0x1d9)](),_0x5c8bb4=new TextDecoder(),_0x4154d5='';while(this['running']){let {done:_0x5b54ee,value:_0x6eb12}=await _0x40986f[_0x370ce5(0x1af)]();if(_0x5b54ee)break;_0x4154d5+=_0x5c8bb4[_0x370ce5(0x1e5)](_0x6eb12,{'stream':!0x0});let _0x2afc7a=_0x4154d5[_0x370ce5(0x19f)]('\x0a');_0x4154d5=_0x2afc7a['pop']()||'';for(let _0x409383 of _0x2afc7a){if(!_0x409383[_0x370ce5(0x1df)](_0x370ce5(0x1f9)))continue;try{let _0x143c34=JSON[_0x370ce5(0x198)](_0x409383[_0x370ce5(0x1ef)](0x6));if(_0x143c34['type']===_0x370ce5(0x1b2)){this['log'](_0x370ce5(0x205)),this[_0x370ce5(0x1c8)](_0x370ce5(0x1b2));continue;}if(_0x143c34[_0x370ce5(0x1b7)]===_0x370ce5(0x202)||_0x143c34[_0x370ce5(0x1b7)]===_0x370ce5(0x1e1)||_0x143c34['type']===_0x370ce5(0x195))await this['processInbox']();}catch{}}}}catch(_0x5e8540){if(_0x5e8540[_0x370ce5(0x1a7)]===_0x370ce5(0x1f3))break;this[_0x370ce5(0x1c8)](_0x370ce5(0x1c2),_0x5e8540),this['log'](_0x370ce5(0x1ed)+_0x5e8540[_0x370ce5(0x1cf)]);}if(this[_0x370ce5(0x1b3)])this[_0x370ce5(0x1c8)](_0x370ce5(0x1c4)),this[_0x370ce5(0x1f8)](_0x370ce5(0x1fa)+_0x52966f/0x3e8+_0x370ce5(0x1a5)),await this[_0x370ce5(0x1ba)](_0x52966f),_0x52966f=Math['min'](_0x52966f*1.5,0xea60);}}async['processInbox'](){const _0x1b5ebf=a0_0x5b5018;try{let _0x47f11f=(await this['call'](_0x1b5ebf(0x1a8),{'alias':this['alias'],'limit':0xa}))?.['messages']||[];for(let _0x5ac474 of _0x47f11f)await this[_0x1b5ebf(0x1a6)](_0x1b5ebf(0x1a2),{'alias':this[_0x1b5ebf(0x1e4)],'message_id':_0x5ac474['id']}),this[_0x1b5ebf(0x1f8)]('←\x20'+_0x5ac474[_0x1b5ebf(0x1b1)]+':\x20'+_0x5ac474[_0x1b5ebf(0x1de)][_0x1b5ebf(0x1ef)](0x0,0x3c)),this['emit']('task',_0x5ac474),this[_0x1b5ebf(0x1c8)]('message',_0x5ac474);}catch(_0x5de156){this[_0x1b5ebf(0x1f8)](_0x1b5ebf(0x1bf)+_0x5de156[_0x1b5ebf(0x1cf)]);}}[a0_0x5b5018(0x1ba)](_0x5d0f11){return new Promise(_0x7f22fb=>setTimeout(_0x7f22fb,_0x5d0f11));}}var F=$;function a0_0x1d78(){const _0x4e54fd=['message','toTimeString','9ZnluEq','error_code','1709132SvjIGX','task_id','toAlias','idle','CommHub\x20response\x20omitted\x20task_id','\x20transport=','getReader','11192346JtglbB','/events/',']\x20[commhub:','send','content','startsWith','send_failed','new_message','sending','task.expired','alias','decode','offline','349508qehWZG','parentTaskId','2.0','heartbeatInterval','from_alias','1115UfTLfj','SSE\x20error:\x20','task.send.failed','slice','lifecycleTracking','<missing>','\x20error=','AbortError','autoConnect','network_id','sdk-','reconnectDelay','log','data:\x20','SSE\x20reconnecting\x20in\x20','unknown\x20error','task.send.delivered','not_tracked','1551697zREaAy','delivered','transport','reply','new_task','getAllStatus','\x20parent_task_id=','SSE\x20connected','failed','token','parent_task_id','abort','heartbeatTimer','catch','body','<unknown>','/mcp','mcp_http','12CGMwFq','replace','server','url','broadcast','status','report_status','parse','\x20lifecycle=','now','text/event-stream','agent','\x20duration_ms=','CommHub\x20rejected\x20task','split','\x20to=','4143180REWfyp','ack_inbox','signal','\x20from=','s...','call','name','get_inbox','215122CzZqYF','resumeId','Authorization','task.ack','stringify','[commhub:task]\x20','read','text','from_session','connected','running','sseAbort','7248LFCLKH','message_id','type','normal','POST','sleep','tools/call','registered','task.replied','json','inbox\x20error:\x20','networkId','8hKiFXr','error','min','disconnected','result','Bearer\x20','connect','emit','<pending>','task.started','match','lifecycle_tracking','cwd','send_task'];a0_0x1d78=function(){return _0x4e54fd;};return a0_0x1d78();}export{F as default,$ as CommHub};
1
+ const a0_0x460274=a0_0xb5b7;(function(_0x4b0420,_0x3862d9){const _0xea0b8d=a0_0xb5b7,_0x478ded=_0x4b0420();while(!![]){try{const _0x486733=parseInt(_0xea0b8d(0x19b))/0x1+-parseInt(_0xea0b8d(0x183))/0x2+parseInt(_0xea0b8d(0x1ae))/0x3+parseInt(_0xea0b8d(0x1c5))/0x4*(parseInt(_0xea0b8d(0x1f2))/0x5)+parseInt(_0xea0b8d(0x1d9))/0x6+parseInt(_0xea0b8d(0x1ed))/0x7*(-parseInt(_0xea0b8d(0x1ec))/0x8)+parseInt(_0xea0b8d(0x190))/0x9*(-parseInt(_0xea0b8d(0x185))/0xa);if(_0x486733===_0x3862d9)break;else _0x478ded['push'](_0x478ded['shift']());}catch(_0x218aac){_0x478ded['push'](_0x478ded['shift']());}}}(a0_0x131b,0x23784));function a0_0x131b(){const _0x3dc910=['\x20from=','idle','alias','get_all_status','string','connectSSE','inbox\x20error:\x20','networkId','fromAlias','task','heartbeatInterval','1665138XCTXjZ','agent','sdk','Authorization','token','task.send.failed','/mcp','SSE\x20reconnecting\x20in\x20','completed','send_message','match','<unknown>','not_tracked','reconnectDelay','sleep','url','call','sdk-','type','114168DEJDgA','119RBwqMi','stringify','content','min','task.send.delivered','45GOQJJJ','2.0','broadcast','transport','decode','now','disconnect','248118hkVOwg','name','220JsMYxo','catch','\x20error=','\x20lifecycle=','network_id','emit','lifecycle_tracking','new_message','signal','send_task','/events/','135549INjnqu','processInbox','message','getReader','replace','autoConnect','task.ack','connect','tools/call','offline','slice','137392JYVtqN','task.started','get_inbox','report_status','messages','[commhub:task]\x20','log','data:\x20','send_rejected','toAlias','running','error_code','abort','parent_task_id','task.replied','body','connected','split','reply','776478ScnAoF','send_reply','text','error','heartbeatTimer','registered','mcp_http','sending','getAllStatus','pop','result','<pending>','[REDACTED]','ack_inbox','\x20parent_task_id=','task.expired','parse','duration_ms','\x20to=','status','disconnected','sseAbort','startsWith','75356cogcvp','message_id','send','\x20task_id=','json','\x20duration_ms=','error_message','task_id','POST'];a0_0x131b=function(){return _0x3dc910;};return a0_0x131b();}import{EventEmitter as a0_0x27f7c2}from'events';import{hostname as a0_0x40a470}from'os';var K=/(?:atok|ntok|utok|ghp|github_pat)_[A-Za-z0-9_-]+|Bearer\s+\S+/gi,L=(_0x4ca002,_0x12cf0b)=>(_0x4ca002??_0x12cf0b)[a0_0x460274(0x194)](/[\r\n\x00-\x1f\x7f]/g,'\x20')[a0_0x460274(0x19a)](0x0,0xf0);function N(_0xd8183){const _0x21d018=a0_0x460274;return(_0xd8183 instanceof Error?_0xd8183[_0x21d018(0x192)]:String(_0xd8183??'unknown\x20error'))[_0x21d018(0x194)](K,_0x21d018(0x1ba))[_0x21d018(0x194)](/[\r\n\x00-\x1f\x7f]/g,'\x20')[_0x21d018(0x19a)](0x0,0xf0);}function O(_0x368419,_0x42a0a2=process.env.ANET_TASK_TRACE_FORMAT===a0_0x460274(0x1c9)){const _0x2f24b8=a0_0x460274;if(_0x42a0a2)return JSON[_0x2f24b8(0x1ee)](_0x368419);let _0x17d976=L(_0x368419[_0x2f24b8(0x1a8)],'<missing>'),_0x21a661=L(_0x368419[_0x2f24b8(0x1cc)],_0x2f24b8(0x1b9)),_0x40a75e=_0x368419[_0x2f24b8(0x1a6)]?_0x2f24b8(0x187)+_0x368419[_0x2f24b8(0x1a6)]+':'+(_0x368419[_0x2f24b8(0x1cb)]??''):'';return _0x2f24b8(0x1a0)+_0x368419[_0x2f24b8(0x1c1)]+_0x2f24b8(0x1ce)+L(_0x368419['from_alias'],_0x2f24b8(0x1e4))+_0x2f24b8(0x1c0)+L(_0x368419['to_alias'],_0x2f24b8(0x1e4))+_0x2f24b8(0x1c8)+_0x21a661+_0x2f24b8(0x1bc)+_0x17d976+'\x20network_id='+L(_0x368419[_0x2f24b8(0x189)],'<unknown>')+'\x20transport='+_0x368419[_0x2f24b8(0x1f5)]+_0x2f24b8(0x1ca)+_0x368419[_0x2f24b8(0x1bf)]+_0x2f24b8(0x188)+_0x368419[_0x2f24b8(0x18b)]+_0x40a75e;}function U(_0xdc93b9){const _0x39002a=a0_0x460274;return{'event':{'sending':'task.send.start','delivered':_0x39002a(0x1f1),'failed':_0x39002a(0x1de),'acked':_0x39002a(0x196),'started':_0x39002a(0x19c),'replied':_0x39002a(0x1a9),'expired':_0x39002a(0x1bd)}[_0xdc93b9['status']],..._0xdc93b9};}function j(_0x1b819d){const _0x502c7c=a0_0x460274;let _0x417445=_0x1b819d?.[_0x502c7c(0x1cc)]||_0x1b819d?.['message_id']||_0x1b819d?.['id'];if(_0x417445)return String(_0x417445);let _0xdf8e94=_0x1b819d?.[_0x502c7c(0x1ef)]?.[0x0]?.[_0x502c7c(0x1b0)];if(typeof _0xdf8e94!==_0x502c7c(0x1d2))return null;try{let _0x594fdc=JSON['parse'](_0xdf8e94);return _0x594fdc?.[_0x502c7c(0x1cc)]||_0x594fdc?.[_0x502c7c(0x1c6)]||_0x594fdc?.['id']||null;}catch{return null;}}async function X(_0x419c59,_0x54e738){const _0x3faf2c=a0_0x460274;let _0x2c8adf=_0x54e738[_0x3faf2c(0x181)]??Date[_0x3faf2c(0x181)],_0x3620a4=_0x2c8adf(),_0x1338df=(_0x384f17,_0x4084a7,_0x443711,_0x2e1c5b)=>{const _0xa5520e=_0x3faf2c;_0x54e738['log'](O(U({'from_alias':_0x419c59[_0xa5520e(0x1d6)],'to_alias':_0x419c59[_0xa5520e(0x1a4)],'task_id':_0x4084a7,'parent_task_id':_0x419c59['parentTaskId'],'network_id':_0x419c59[_0xa5520e(0x1d5)],'transport':_0x419c59['transport'],'status':_0x384f17,'duration_ms':_0x2c8adf()-_0x3620a4,'lifecycle_tracking':_0x419c59['lifecycleTracking'],..._0x443711!==void 0x0?{'error_code':_0x2e1c5b||'send_failed','error_message':N(_0x443711)}:{}})));};_0x1338df(_0x3faf2c(0x1b5),null);try{let _0xfca067=await _0x54e738['send'](),_0x4bf552=j(_0xfca067);if(_0x4bf552)_0x1338df('delivered',_0x4bf552);else{if(_0xfca067?.['ok']===!0x1||_0xfca067?.['error'])_0x1338df('failed',_0x4bf552,_0xfca067?.[_0x3faf2c(0x1b1)]||'CommHub\x20rejected\x20task',_0x3faf2c(0x1a3));else _0x1338df('failed',null,'CommHub\x20response\x20omitted\x20task_id','missing_task_id');}return _0xfca067;}catch(_0x429337){throw _0x1338df('failed',null,_0x429337,'send_failed'),_0x429337;}}function a0_0xb5b7(_0xc629b8,_0x3ccfb6){_0xc629b8=_0xc629b8-0x181;const _0x131baf=a0_0x131b();let _0xb5b713=_0x131baf[_0xc629b8];return _0xb5b713;}async function Y(_0x28d173,_0x29ef64){const _0x5b3c07=a0_0x460274;return X({'fromAlias':_0x28d173[_0x5b3c07(0x1d6)],'toAlias':_0x28d173['alias'],'parentTaskId':_0x28d173['parentTaskId']||null,'networkId':_0x28d173[_0x5b3c07(0x1d5)]||null,'transport':_0x5b3c07(0x1b4),'lifecycleTracking':_0x5b3c07(0x1e5)},_0x29ef64);}class $ extends a0_0x27f7c2{['url'];[a0_0x460274(0x1d0)];[a0_0x460274(0x1dd)];[a0_0x460274(0x1da)];['resumeId'];['heartbeatInterval'];['reconnectDelay'];[a0_0x460274(0x1b2)];[a0_0x460274(0x1c3)];[a0_0x460274(0x1a5)]=!0x1;constructor(_0x18582c){const _0x3e3254=a0_0x460274;super();if(this['url']=_0x18582c[_0x3e3254(0x1e8)]['replace'](/\/$/,''),this['alias']=_0x18582c[_0x3e3254(0x1d0)],this[_0x3e3254(0x1dd)]=_0x18582c['token'],this['agent']=_0x18582c[_0x3e3254(0x1da)]||_0x3e3254(0x1db),this['resumeId']=_0x3e3254(0x1ea)+_0x18582c['alias']+'-'+Date[_0x3e3254(0x181)]()['toString'](0x24),this['heartbeatInterval']=_0x18582c[_0x3e3254(0x1d8)]??0x2bf20,this[_0x3e3254(0x1e6)]=_0x18582c[_0x3e3254(0x1e6)]??0xbb8,_0x18582c[_0x3e3254(0x195)]!==!0x1)this[_0x3e3254(0x197)]();}[a0_0x460274(0x1a1)](_0x59997e){const _0x315786=a0_0x460274;console[_0x315786(0x1a1)]('['+new Date()['toTimeString']()[_0x315786(0x19a)](0x0,0x8)+']\x20[commhub:'+this[_0x315786(0x1d0)]+']\x20'+_0x59997e);}async[a0_0x460274(0x1e9)](_0x5c5b0f,_0x5a267f){const _0xbf285b=a0_0x460274;let _0x1b05ab={'Content-Type':'application/json','Accept':'application/json,\x20text/event-stream'};if(this[_0xbf285b(0x1dd)])_0x1b05ab[_0xbf285b(0x1dc)]='Bearer\x20'+this['token'];let _0x1c98b9=await(await fetch(this[_0xbf285b(0x1e8)]+_0xbf285b(0x1df),{'method':_0xbf285b(0x1cd),'headers':_0x1b05ab,'body':JSON[_0xbf285b(0x1ee)]({'jsonrpc':_0xbf285b(0x1f3),'id':Date[_0xbf285b(0x181)](),'method':_0xbf285b(0x198),'params':{'name':_0x5c5b0f,'arguments':_0x5a267f}})}))[_0xbf285b(0x1b0)](),_0x41da99=_0x1c98b9[_0xbf285b(0x1e3)](/data: (.+)/),_0x1d27da=_0x41da99?JSON[_0xbf285b(0x1be)](_0x41da99[0x1]):JSON['parse'](_0x1c98b9),_0x2e2118=_0x1d27da?.[_0xbf285b(0x1b8)]?.[_0xbf285b(0x1ef)]?.[0x0]?.[_0xbf285b(0x1b0)];return _0x2e2118?JSON[_0xbf285b(0x1be)](_0x2e2118):_0x1d27da;}async[a0_0x460274(0x197)](){const _0xf53fa5=a0_0x460274;if(this[_0xf53fa5(0x1a5)])return;this[_0xf53fa5(0x1a5)]=!0x0,await this[_0xf53fa5(0x1c1)](_0xf53fa5(0x1cf)),this[_0xf53fa5(0x1a1)](_0xf53fa5(0x1b3)),this['heartbeatTimer']=setInterval(()=>{const _0x2b3b98=_0xf53fa5;this['status'](_0x2b3b98(0x1cf))['catch'](_0x699386=>this[_0x2b3b98(0x1a1)]('heartbeat\x20failed:\x20'+_0x699386[_0x2b3b98(0x192)]));},this[_0xf53fa5(0x1d8)]),this[_0xf53fa5(0x1d3)]();}async[a0_0x460274(0x182)](){const _0x3693bd=a0_0x460274;if(this[_0x3693bd(0x1a5)]=!0x1,this[_0x3693bd(0x1c3)]?.[_0x3693bd(0x1a7)](),this['heartbeatTimer'])clearInterval(this['heartbeatTimer']);await this[_0x3693bd(0x1c1)](_0x3693bd(0x199))[_0x3693bd(0x186)](()=>{}),this[_0x3693bd(0x1a1)](_0x3693bd(0x1c2));}async[a0_0x460274(0x1c7)](_0x5386f1,_0xd4b511,_0x40465b='normal'){const _0x53d64d=a0_0x460274;return Y({'alias':_0x5386f1,'fromAlias':this['alias']},{'log':_0x3a7653=>console['log'](_0x3a7653),'send':()=>this[_0x53d64d(0x1e9)](_0x53d64d(0x18e),{'alias':_0x5386f1,'task':_0xd4b511,'priority':_0x40465b,'from_session':this[_0x53d64d(0x1d0)]})});}async[a0_0x460274(0x192)](_0x41c852,_0x2f4e60){const _0x383b3a=a0_0x460274;return this[_0x383b3a(0x1e9)](_0x383b3a(0x1e2),{'alias':_0x41c852,'message':_0x2f4e60,'from_session':this[_0x383b3a(0x1d0)]});}async[a0_0x460274(0x1ad)](_0x4a9e27,_0x1ba267,_0x2cd79f=a0_0x460274(0x1e1)){const _0x4f4630=a0_0x460274;return this['call'](_0x4f4630(0x1af),{'in_reply_to':_0x4a9e27,'text':_0x1ba267,'status':_0x2cd79f});}async[a0_0x460274(0x1c1)](_0x30d158,_0x1c4041){const _0x1ada73=a0_0x460274;return this['call'](_0x1ada73(0x19e),{'resume_id':this['resumeId'],'alias':this['alias'],'status':_0x30d158,'server':a0_0x40a470(),'hostname':a0_0x40a470(),'agent':this['agent'],'project_dir':process['cwd'](),..._0x1c4041});}async[a0_0x460274(0x1b6)](){const _0x5c7924=a0_0x460274;return this[_0x5c7924(0x1e9)](_0x5c7924(0x1d1),{});}async[a0_0x460274(0x1f4)](_0x5b8d17,_0x1598fd){const _0x36fdd7=a0_0x460274;return this['call'](_0x36fdd7(0x1f4),{'message':_0x5b8d17,'filter_server':_0x1598fd?.['server'],'filter_status':_0x1598fd?.[_0x36fdd7(0x1c1)]});}async[a0_0x460274(0x1d3)](){const _0x50a66a=a0_0x460274;let _0x1f651d=encodeURIComponent(this[_0x50a66a(0x1d0)]),_0x1140b7=this[_0x50a66a(0x1e8)]+_0x50a66a(0x18f)+_0x1f651d,_0x4e034d=this['reconnectDelay'];while(this['running']){try{this[_0x50a66a(0x1c3)]=new AbortController();let _0x1f3cca={'Accept':'text/event-stream'};if(this[_0x50a66a(0x1dd)])_0x1f3cca[_0x50a66a(0x1dc)]='Bearer\x20'+this[_0x50a66a(0x1dd)];let _0x183382=await fetch(_0x1140b7,{'headers':_0x1f3cca,'signal':this[_0x50a66a(0x1c3)][_0x50a66a(0x18d)]});if(!_0x183382['ok']||!_0x183382[_0x50a66a(0x1aa)]){this[_0x50a66a(0x1a1)]('SSE\x20failed:\x20'+_0x183382[_0x50a66a(0x1c1)]),await this['sleep'](_0x4e034d),_0x4e034d=Math[_0x50a66a(0x1f0)](_0x4e034d*1.5,0xea60);continue;}_0x4e034d=this[_0x50a66a(0x1e6)];let _0x4a2141=_0x183382[_0x50a66a(0x1aa)][_0x50a66a(0x193)](),_0x3f5a0f=new TextDecoder(),_0x1c8c79='';while(this[_0x50a66a(0x1a5)]){let {done:_0x4bc432,value:_0x2ce58a}=await _0x4a2141['read']();if(_0x4bc432)break;_0x1c8c79+=_0x3f5a0f[_0x50a66a(0x1f6)](_0x2ce58a,{'stream':!0x0});let _0x47b26a=_0x1c8c79[_0x50a66a(0x1ac)]('\x0a');_0x1c8c79=_0x47b26a[_0x50a66a(0x1b7)]()||'';for(let _0x390b97 of _0x47b26a){if(!_0x390b97[_0x50a66a(0x1c4)](_0x50a66a(0x1a2)))continue;try{let _0x1441b8=JSON[_0x50a66a(0x1be)](_0x390b97['slice'](0x6));if(_0x1441b8['type']===_0x50a66a(0x1ab)){this[_0x50a66a(0x1a1)]('SSE\x20connected'),this[_0x50a66a(0x18a)](_0x50a66a(0x1ab));continue;}if(_0x1441b8[_0x50a66a(0x1eb)]==='new_task'||_0x1441b8[_0x50a66a(0x1eb)]===_0x50a66a(0x18c)||_0x1441b8['type']===_0x50a66a(0x1f4))await this[_0x50a66a(0x191)]();}catch{}}}}catch(_0x2d6044){if(_0x2d6044[_0x50a66a(0x184)]==='AbortError')break;this[_0x50a66a(0x18a)]('error',_0x2d6044),this[_0x50a66a(0x1a1)]('SSE\x20error:\x20'+_0x2d6044[_0x50a66a(0x192)]);}if(this[_0x50a66a(0x1a5)])this[_0x50a66a(0x18a)](_0x50a66a(0x1c2)),this['log'](_0x50a66a(0x1e0)+_0x4e034d/0x3e8+'s...'),await this[_0x50a66a(0x1e7)](_0x4e034d),_0x4e034d=Math['min'](_0x4e034d*1.5,0xea60);}}async[a0_0x460274(0x191)](){const _0x533d68=a0_0x460274;try{let _0x43bf79=(await this['call'](_0x533d68(0x19d),{'alias':this[_0x533d68(0x1d0)],'limit':0xa}))?.[_0x533d68(0x19f)]||[];for(let _0x50f143 of _0x43bf79)await this[_0x533d68(0x1e9)](_0x533d68(0x1bb),{'alias':this[_0x533d68(0x1d0)],'message_id':_0x50f143['id']}),this[_0x533d68(0x1a1)]('←\x20'+_0x50f143['from_session']+':\x20'+_0x50f143[_0x533d68(0x1ef)][_0x533d68(0x19a)](0x0,0x3c)),this[_0x533d68(0x18a)](_0x533d68(0x1d7),_0x50f143),this[_0x533d68(0x18a)](_0x533d68(0x192),_0x50f143);}catch(_0x24e2b8){this[_0x533d68(0x1a1)](_0x533d68(0x1d4)+_0x24e2b8['message']);}}['sleep'](_0x419216){return new Promise(_0x298806=>setTimeout(_0x298806,_0x419216));}}var F=$;export{F as default,$ as CommHub};
@@ -22,6 +22,9 @@ export declare const GROK_COPRESENCE_CHILD_ENV = "ANET_COPRESENCE_BRIDGE";
22
22
  export interface GrokCopresenceDiagnosis {
23
23
  readonly ok: boolean;
24
24
  readonly lines: readonly string[];
25
+ /** #1768 —— 非阻断提示:平台能跑,但 agent-node 的能力表说它少了内核层保证。
26
+ * ok=true 时也可能非空;调用方打印它,不退出。 */
27
+ readonly notices: readonly string[];
25
28
  }
26
29
  /** One block naming every reason this node cannot run the shared TUI, not one
27
30
  * exit per reason. A node that is both the wrong runtime AND missing its
@@ -38,6 +41,8 @@ export interface GrokCopresenceDiagnosis {
38
41
  * A one-command launcher that lets someone get that far has not saved them
39
42
  * anything, so say it in the same breath as every other gap. */
40
43
  export declare const GROK_COPRESENCE_PLATFORMS: readonly NodeJS.Platform[];
44
+ /** 能跑但没有内核层强制的平台 —— agent-node 启动时逐条打印 reducedGuarantees,这里只提前说一句。 */
45
+ export declare const GROK_COPRESENCE_REDUCED_GUARANTEE_PLATFORMS: readonly NodeJS.Platform[];
41
46
  export declare function diagnoseGrokCopresence(input: {
42
47
  runtime: string;
43
48
  displayName: string;
@@ -0,0 +1,14 @@
1
+ export interface HostTelemetry {
2
+ hostname: string;
3
+ ip: string | null;
4
+ cpu_load_1min: number | null;
5
+ cpu_cores: number | null;
6
+ mem_total_gb: number | null;
7
+ mem_used_gb: number | null;
8
+ mem_avail_gb: number | null;
9
+ disk_total_gb: number | null;
10
+ disk_used_gb: number | null;
11
+ disk_avail_gb: number | null;
12
+ }
13
+ export declare function getHostTelemetry(): HostTelemetry;
14
+ export declare function _clearHostTelemetryCache(): void;