@sleep2agi/agent-network 2.3.0-preview.26 → 2.3.0-preview.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +119 -9
- package/dist/bin/cli.d.ts +1 -1
- package/dist/bin/cli.js +1 -1
- package/dist/src/client.js +1 -1
- package/dist/src/grok-attach-client.d.ts +115 -0
- package/dist/src/grok-copresence-profile.d.ts +44 -0
- package/dist/src/im/feishu/worker.js +1 -1
- package/dist/src/node-server.js +1 -1
- package/dist/src/normalize-runtime.d.ts +1 -9
- package/dist/src/opencode-agent-node-pair.d.ts +14 -0
- package/dist/src/opencode-auth-login.d.ts +43 -0
- package/dist/src/opencode-launch-env.d.ts +13 -0
- package/dist/src/opencode-owner-mode.d.ts +6 -0
- package/dist/src/opencode-package-binary.d.ts +21 -0
- package/dist/src/opencode-pin.d.ts +6 -1
- package/dist/src/opencode-preset.d.ts +37 -8
- package/dist/src/opencode-safe-root.d.ts +27 -0
- package/dist/src/opencode-smoke-env.d.ts +1 -0
- package/dist/src/runtime-choices.d.ts +15 -0
- package/package.json +7 -3
package/dist/src/client.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x39040b=a0_0x83b7;(function(_0x3d9895,_0x1da5f7){const _0x56236a=a0_0x83b7,_0x47d527=_0x3d9895();while(!![]){try{const _0x439c11=-parseInt(_0x56236a(0xcb))/0x1+-parseInt(_0x56236a(0xcd))/0x2*(-parseInt(_0x56236a(0x107))/0x3)+-parseInt(_0x56236a(0x108))/0x4+parseInt(_0x56236a(0xeb))/0x5+parseInt(_0x56236a(0xfa))/0x6+parseInt(_0x56236a(0xed))/0x7*(-parseInt(_0x56236a(0xe5))/0x8)+parseInt(_0x56236a(0xe7))/0x9*(-parseInt(_0x56236a(0xf8))/0xa);if(_0x439c11===_0x1da5f7)break;else _0x47d527['push'](_0x47d527['shift']());}catch(_0x5a9b37){_0x47d527['push'](_0x47d527['shift']());}}}(a0_0x6800,0xb7804));import{EventEmitter as a0_0x72c79f}from'events';import{hostname as a0_0x128a22}from'os';function a0_0x83b7(_0x4099dd,_0x63a88c){_0x4099dd=_0x4099dd-0xb3;const _0x68007=a0_0x6800();let _0x83b7b5=_0x68007[_0x4099dd];return _0x83b7b5;}class T extends a0_0x72c79f{[a0_0x39040b(0xfc)];[a0_0x39040b(0xf4)];['token'];[a0_0x39040b(0xe8)];[a0_0x39040b(0xf6)];[a0_0x39040b(0xc8)];['reconnectDelay'];['heartbeatTimer'];[a0_0x39040b(0xdd)];['running']=!0x1;constructor(_0x28d2a3){const _0x23e39f=a0_0x39040b;super();if(this[_0x23e39f(0xfc)]=_0x28d2a3['url'][_0x23e39f(0xe2)](/\/$/,''),this[_0x23e39f(0xf4)]=_0x28d2a3[_0x23e39f(0xf4)],this[_0x23e39f(0xf9)]=_0x28d2a3[_0x23e39f(0xf9)],this[_0x23e39f(0xe8)]=_0x28d2a3['agent']||_0x23e39f(0xb8),this[_0x23e39f(0xf6)]=_0x23e39f(0xb4)+_0x28d2a3['alias']+'-'+Date[_0x23e39f(0xfd)]()[_0x23e39f(0xc5)](0x24),this[_0x23e39f(0xc8)]=_0x28d2a3[_0x23e39f(0xc8)]??0x2bf20,this[_0x23e39f(0xf5)]=_0x28d2a3[_0x23e39f(0xf5)]??0xbb8,_0x28d2a3[_0x23e39f(0xe6)]!==!0x1)this[_0x23e39f(0xc0)]();}[a0_0x39040b(0xf3)](_0x38416c){const _0x1529e6=a0_0x39040b;console[_0x1529e6(0xf3)]('['+new Date()[_0x1529e6(0xfb)]()[_0x1529e6(0x105)](0x0,0x8)+_0x1529e6(0xc3)+this[_0x1529e6(0xf4)]+']\x20'+_0x38416c);}async[a0_0x39040b(0x109)](_0x503ff9,_0x278668){const _0x482186=a0_0x39040b;let _0x4fe4dd={'Content-Type':_0x482186(0x104),'Accept':'application/json,\x20text/event-stream'};if(this[_0x482186(0xf9)])_0x4fe4dd[_0x482186(0xfe)]=_0x482186(0xe1)+this[_0x482186(0xf9)];let _0x2ad69b=await(await fetch(this[_0x482186(0xfc)]+_0x482186(0xba),{'method':_0x482186(0x106),'headers':_0x4fe4dd,'body':JSON['stringify']({'jsonrpc':_0x482186(0xd3),'id':Date[_0x482186(0xfd)](),'method':_0x482186(0xdf),'params':{'name':_0x503ff9,'arguments':_0x278668}})}))[_0x482186(0xda)](),_0x4c6347=_0x2ad69b['match'](/data: (.+)/),_0x1f3bf9=_0x4c6347?JSON[_0x482186(0xdc)](_0x4c6347[0x1]):JSON[_0x482186(0xdc)](_0x2ad69b),_0x108842=_0x1f3bf9?.[_0x482186(0xff)]?.[_0x482186(0xc4)]?.[0x0]?.[_0x482186(0xda)];return _0x108842?JSON[_0x482186(0xdc)](_0x108842):_0x1f3bf9;}async['connect'](){const _0x507dec=a0_0x39040b;if(this[_0x507dec(0x102)])return;this[_0x507dec(0x102)]=!0x0,await this[_0x507dec(0xd1)](_0x507dec(0xc7)),this['log']('registered'),this[_0x507dec(0xd0)]=setInterval(()=>{const _0x5749fe=_0x507dec;this[_0x5749fe(0xd1)](_0x5749fe(0xc7))['catch'](_0x54f549=>this[_0x5749fe(0xf3)](_0x5749fe(0xd2)+_0x54f549[_0x5749fe(0xb7)]));},this[_0x507dec(0xc8)]),this['connectSSE']();}async['disconnect'](){const _0x2b6c17=a0_0x39040b;if(this[_0x2b6c17(0x102)]=!0x1,this['sseAbort']?.[_0x2b6c17(0xd8)](),this[_0x2b6c17(0xd0)])clearInterval(this[_0x2b6c17(0xd0)]);await this[_0x2b6c17(0xd1)](_0x2b6c17(0xe4))[_0x2b6c17(0xf1)](()=>{}),this[_0x2b6c17(0xf3)]('disconnected');}async['send'](_0x24aed3,_0x192b0f,_0x306d83=a0_0x39040b(0xd4)){const _0x3a92af=a0_0x39040b;return this[_0x3a92af(0x109)](_0x3a92af(0xc2),{'alias':_0x24aed3,'task':_0x192b0f,'priority':_0x306d83,'from_session':this['alias']});}async['message'](_0x2f029e,_0x5dacc3){const _0x3a7b44=a0_0x39040b;return this[_0x3a7b44(0x109)](_0x3a7b44(0xf7),{'alias':_0x2f029e,'message':_0x5dacc3,'from_session':this[_0x3a7b44(0xf4)]});}async[a0_0x39040b(0xc6)](_0x592113,_0x5742a2,_0x2c3bbf=a0_0x39040b(0xea)){const _0x16eccb=a0_0x39040b;return this['call'](_0x16eccb(0xd9),{'in_reply_to':_0x592113,'text':_0x5742a2,'status':_0x2c3bbf});}async['status'](_0x143e91,_0x17b06e){const _0x121db4=a0_0x39040b;return this[_0x121db4(0x109)](_0x121db4(0x101),{'resume_id':this[_0x121db4(0xf6)],'alias':this[_0x121db4(0xf4)],'status':_0x143e91,'server':a0_0x128a22(),'hostname':a0_0x128a22(),'agent':this[_0x121db4(0xe8)],'project_dir':process[_0x121db4(0xcf)](),..._0x17b06e});}async[a0_0x39040b(0xe0)](){const _0x40ba54=a0_0x39040b;return this[_0x40ba54(0x109)]('get_all_status',{});}async[a0_0x39040b(0xc1)](_0x330e12,_0x19fbbf){const _0xd4ee60=a0_0x39040b;return this[_0xd4ee60(0x109)](_0xd4ee60(0xc1),{'message':_0x330e12,'filter_server':_0x19fbbf?.[_0xd4ee60(0xb5)],'filter_status':_0x19fbbf?.[_0xd4ee60(0xd1)]});}async[a0_0x39040b(0xb3)](){const _0x168cba=a0_0x39040b;let _0x2b2e0e=encodeURIComponent(this[_0x168cba(0xf4)]),_0x3e799d=this[_0x168cba(0xfc)]+'/events/'+_0x2b2e0e,_0x38efbc=this[_0x168cba(0xf5)];while(this[_0x168cba(0x102)]){try{this[_0x168cba(0xdd)]=new AbortController();let _0x1003f6={'Accept':_0x168cba(0xf2)};if(this[_0x168cba(0xf9)])_0x1003f6[_0x168cba(0xfe)]=_0x168cba(0xe1)+this[_0x168cba(0xf9)];let _0x451ca2=await fetch(_0x3e799d,{'headers':_0x1003f6,'signal':this[_0x168cba(0xdd)][_0x168cba(0xe9)]});if(!_0x451ca2['ok']||!_0x451ca2[_0x168cba(0xc9)]){this[_0x168cba(0xf3)](_0x168cba(0xee)+_0x451ca2[_0x168cba(0xd1)]),await this['sleep'](_0x38efbc),_0x38efbc=Math['min'](_0x38efbc*1.5,0xea60);continue;}_0x38efbc=this[_0x168cba(0xf5)];let _0x467679=_0x451ca2[_0x168cba(0xc9)]['getReader'](),_0x1fe17d=new TextDecoder(),_0x19ee25='';while(this[_0x168cba(0x102)]){let {done:_0xdc7ac5,value:_0xd8036}=await _0x467679[_0x168cba(0xb6)]();if(_0xdc7ac5)break;_0x19ee25+=_0x1fe17d[_0x168cba(0xef)](_0xd8036,{'stream':!0x0});let _0x4134c1=_0x19ee25[_0x168cba(0xec)]('\x0a');_0x19ee25=_0x4134c1[_0x168cba(0xbe)]()||'';for(let _0x547216 of _0x4134c1){if(!_0x547216[_0x168cba(0xbb)](_0x168cba(0xbd)))continue;try{let _0xd8573d=JSON[_0x168cba(0xdc)](_0x547216[_0x168cba(0x105)](0x6));if(_0xd8573d[_0x168cba(0xb9)]==='connected'){this[_0x168cba(0xf3)]('SSE\x20connected'),this[_0x168cba(0xf0)]('connected');continue;}if(_0xd8573d['type']===_0x168cba(0xd5)||_0xd8573d['type']===_0x168cba(0xbf)||_0xd8573d['type']===_0x168cba(0xc1))await this[_0x168cba(0xd6)]();}catch{}}}}catch(_0x76544a){if(_0x76544a[_0x168cba(0xdb)]===_0x168cba(0xbc))break;this[_0x168cba(0xf0)]('error',_0x76544a),this[_0x168cba(0xf3)](_0x168cba(0xe3)+_0x76544a[_0x168cba(0xb7)]);}if(this[_0x168cba(0x102)])this[_0x168cba(0xf0)](_0x168cba(0xca)),this[_0x168cba(0xf3)]('SSE\x20reconnecting\x20in\x20'+_0x38efbc/0x3e8+'s...'),await this['sleep'](_0x38efbc),_0x38efbc=Math[_0x168cba(0xde)](_0x38efbc*1.5,0xea60);}}async[a0_0x39040b(0xd6)](){const _0x1d0c4c=a0_0x39040b;try{let _0x516bb7=(await this[_0x1d0c4c(0x109)](_0x1d0c4c(0x100),{'alias':this[_0x1d0c4c(0xf4)],'limit':0xa}))?.[_0x1d0c4c(0xd7)]||[];for(let _0x2d7ff2 of _0x516bb7)await this[_0x1d0c4c(0x109)](_0x1d0c4c(0x103),{'alias':this[_0x1d0c4c(0xf4)],'message_id':_0x2d7ff2['id']}),this[_0x1d0c4c(0xf3)]('←\x20'+_0x2d7ff2[_0x1d0c4c(0xcc)]+':\x20'+_0x2d7ff2[_0x1d0c4c(0xc4)][_0x1d0c4c(0x105)](0x0,0x3c)),this[_0x1d0c4c(0xf0)]('task',_0x2d7ff2),this['emit'](_0x1d0c4c(0xb7),_0x2d7ff2);}catch(_0x49cb9c){this[_0x1d0c4c(0xf3)](_0x1d0c4c(0xce)+_0x49cb9c[_0x1d0c4c(0xb7)]);}}['sleep'](_0x32e54e){return new Promise(_0x493b64=>setTimeout(_0x493b64,_0x32e54e));}}function a0_0x6800(){const _0x5745bb=['signal','completed','423660GDjeqU','split','171332ZuXwpb','SSE\x20failed:\x20','decode','emit','catch','text/event-stream','log','alias','reconnectDelay','resumeId','send_message','60pnXDEj','token','5749638dLjXbO','toTimeString','url','now','Authorization','result','get_inbox','report_status','running','ack_inbox','application/json','slice','POST','93723yHyEix','164760amRLki','call','connectSSE','sdk-','server','read','message','sdk','type','/mcp','startsWith','AbortError','data:\x20','pop','new_message','connect','broadcast','send_task',']\x20[commhub:','content','toString','reply','idle','heartbeatInterval','body','disconnected','327932mZSOHZ','from_session','94gvhBQl','inbox\x20error:\x20','cwd','heartbeatTimer','status','heartbeat\x20failed:\x20','2.0','normal','new_task','processInbox','messages','abort','send_reply','text','name','parse','sseAbort','min','tools/call','getAllStatus','Bearer\x20','replace','SSE\x20error:\x20','offline','24LrbntV','autoConnect','1975743NlnNmf','agent'];a0_0x6800=function(){return _0x5745bb;};return a0_0x6800();}var $=T;export{$ as default,T as CommHub};
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import type { Duplex } from "node:stream";
|
|
2
|
+
export declare const GROK_ATTACH_PROTOCOL = "anet-grok-copresence-attach";
|
|
3
|
+
export declare const GROK_ATTACH_PROTOCOL_VERSION = 1;
|
|
4
|
+
export declare const GROK_ATTACH_DEFAULT_MAX_FRAME_BYTES: number;
|
|
5
|
+
export declare const GROK_ATTACH_DEFAULT_MAX_BUFFER_BYTES: number;
|
|
6
|
+
export declare const GROK_ATTACH_DEFAULT_HANDSHAKE_TIMEOUT_MS = 5000;
|
|
7
|
+
export declare const GROK_ATTACH_DEFAULT_CLOSE_TIMEOUT_MS = 1000;
|
|
8
|
+
export type GrokAttachJsonValue = null | boolean | number | string | GrokAttachJsonValue[] | {
|
|
9
|
+
[key: string]: GrokAttachJsonValue;
|
|
10
|
+
};
|
|
11
|
+
export interface GrokAttachHelloFrame {
|
|
12
|
+
type: "hello";
|
|
13
|
+
protocol: typeof GROK_ATTACH_PROTOCOL;
|
|
14
|
+
version: typeof GROK_ATTACH_PROTOCOL_VERSION;
|
|
15
|
+
alias: string;
|
|
16
|
+
sessionId: string;
|
|
17
|
+
[key: string]: unknown;
|
|
18
|
+
}
|
|
19
|
+
export interface GrokAttachOutputFrame {
|
|
20
|
+
type: "output";
|
|
21
|
+
data: string;
|
|
22
|
+
encoding: "base64";
|
|
23
|
+
}
|
|
24
|
+
export interface GrokAttachStatusFrame {
|
|
25
|
+
type: "status";
|
|
26
|
+
status: GrokAttachJsonValue;
|
|
27
|
+
}
|
|
28
|
+
export interface GrokAttachErrorFrame {
|
|
29
|
+
type: "error";
|
|
30
|
+
code: string;
|
|
31
|
+
message: string;
|
|
32
|
+
fatal: boolean;
|
|
33
|
+
}
|
|
34
|
+
export interface GrokAttachDetachFrame {
|
|
35
|
+
type: "detach";
|
|
36
|
+
}
|
|
37
|
+
export type GrokAttachServerFrame = GrokAttachHelloFrame | GrokAttachOutputFrame | GrokAttachStatusFrame | GrokAttachErrorFrame | GrokAttachDetachFrame;
|
|
38
|
+
export interface GrokAttachInputFrame {
|
|
39
|
+
type: "input";
|
|
40
|
+
data: string;
|
|
41
|
+
encoding: "base64";
|
|
42
|
+
}
|
|
43
|
+
export interface GrokAttachResizeFrame {
|
|
44
|
+
type: "resize";
|
|
45
|
+
cols: number;
|
|
46
|
+
rows: number;
|
|
47
|
+
}
|
|
48
|
+
export type GrokAttachClientFrame = GrokAttachInputFrame | GrokAttachResizeFrame | GrokAttachDetachFrame;
|
|
49
|
+
export interface GrokAttachInputSource {
|
|
50
|
+
on(event: "data", listener: (chunk: unknown) => void): unknown;
|
|
51
|
+
on(event: "end", listener: () => void): unknown;
|
|
52
|
+
off?(event: "data" | "end", listener: (...args: any[]) => void): unknown;
|
|
53
|
+
removeListener?(event: "data" | "end", listener: (...args: any[]) => void): unknown;
|
|
54
|
+
pause?(): unknown;
|
|
55
|
+
resume?(): unknown;
|
|
56
|
+
}
|
|
57
|
+
export interface GrokAttachOutputSink {
|
|
58
|
+
write(chunk: Uint8Array): boolean | void;
|
|
59
|
+
columns?: number;
|
|
60
|
+
rows?: number;
|
|
61
|
+
once?(event: "drain", listener: () => void): unknown;
|
|
62
|
+
}
|
|
63
|
+
export interface GrokAttachSignalSource {
|
|
64
|
+
on(event: "SIGWINCH", listener: () => void): unknown;
|
|
65
|
+
off?(event: "SIGWINCH", listener: () => void): unknown;
|
|
66
|
+
removeListener?(event: "SIGWINCH", listener: () => void): unknown;
|
|
67
|
+
}
|
|
68
|
+
export interface GrokAttachSocketStat {
|
|
69
|
+
uid: number;
|
|
70
|
+
isSocket(): boolean;
|
|
71
|
+
isSymbolicLink(): boolean;
|
|
72
|
+
}
|
|
73
|
+
export interface GrokAttachDependencies {
|
|
74
|
+
lstat?: (socketPath: string) => Promise<GrokAttachSocketStat>;
|
|
75
|
+
getuid?: () => number | undefined;
|
|
76
|
+
connect?: (socketPath: string) => Duplex;
|
|
77
|
+
}
|
|
78
|
+
export interface GrokAttachClientOptions {
|
|
79
|
+
socketPath: string;
|
|
80
|
+
input: GrokAttachInputSource;
|
|
81
|
+
output: GrokAttachOutputSink;
|
|
82
|
+
signalSource?: GrokAttachSignalSource;
|
|
83
|
+
terminalSize?: () => {
|
|
84
|
+
cols: number | undefined;
|
|
85
|
+
rows: number | undefined;
|
|
86
|
+
};
|
|
87
|
+
maxFrameBytes?: number;
|
|
88
|
+
maxBufferBytes?: number;
|
|
89
|
+
handshakeTimeoutMs?: number;
|
|
90
|
+
closeTimeoutMs?: number;
|
|
91
|
+
detachOnInputEnd?: boolean;
|
|
92
|
+
onHello?: (frame: GrokAttachHelloFrame) => void;
|
|
93
|
+
onStatus?: (frame: GrokAttachStatusFrame) => void;
|
|
94
|
+
onError?: (error: Error, frame?: GrokAttachErrorFrame) => void;
|
|
95
|
+
onDetach?: (frame: GrokAttachDetachFrame) => void;
|
|
96
|
+
dependencies?: GrokAttachDependencies;
|
|
97
|
+
}
|
|
98
|
+
export type GrokAttachCloseReason = "local-detach" | "input-end" | "remote-detach" | "socket-close" | "socket-error" | "protocol-error";
|
|
99
|
+
export interface GrokAttachCloseInfo {
|
|
100
|
+
reason: GrokAttachCloseReason;
|
|
101
|
+
error?: Error;
|
|
102
|
+
}
|
|
103
|
+
export interface GrokAttachSession {
|
|
104
|
+
readonly socketPath: string;
|
|
105
|
+
readonly closed: Promise<GrokAttachCloseInfo>;
|
|
106
|
+
detach(): void;
|
|
107
|
+
resize(cols?: number, rows?: number): void;
|
|
108
|
+
}
|
|
109
|
+
export declare class GrokAttachRemoteError extends Error {
|
|
110
|
+
readonly code: string;
|
|
111
|
+
readonly fatal: boolean;
|
|
112
|
+
constructor(frame: GrokAttachErrorFrame);
|
|
113
|
+
}
|
|
114
|
+
export declare function validateGrokAttachSocket(socketPath: string, dependencies?: GrokAttachDependencies): Promise<void>;
|
|
115
|
+
export declare function connectGrokAttach(options: GrokAttachClientOptions): Promise<GrokAttachSession>;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
export declare const GROK_UNIX_SOCKET_PATH_MAX_BYTES = 100;
|
|
2
|
+
export declare const GROK_COPRESENCE_CAPABILITY_MARKER = "ANET_CAPABILITY_GROK_COPRESENCE_V2";
|
|
3
|
+
export declare const GROK_PREVIEW_RESOLVER_INHERITED_ENV_KEYS: readonly ["PATH", "TMPDIR", "TMP", "TEMP", "LANG", "LC_ALL", "LC_CTYPE", "TZ"];
|
|
4
|
+
export declare const GROK_AGENT_NODE_INHERITED_ENV_KEYS: readonly ["PATH", "HOME", "TMPDIR", "TMP", "TEMP", "LANG", "LC_ALL", "LC_CTYPE", "TZ", "SHELL", "USER", "LOGNAME", "TERM", "COLORTERM", "NO_COLOR"];
|
|
5
|
+
export declare const GROK_AGENT_NODE_OPTIONAL_ENV_KEYS: readonly ["GROK_BINARY", "GROK_HOME", "FLOCK_BINARY", "SETPRIV_BINARY", "UNSHARE_BINARY", "GROK_CLI_TIMEOUT_MS", "GROK_HANDSHAKE_TIMEOUT_MS", "LOG_LEVEL", "ANET_GOAL_TICK_MS", "COMMHUB_MAX_GOALS_PER_NODE"];
|
|
6
|
+
/** Exact environment for the long-lived agent-node parent of the Grok TUI. */
|
|
7
|
+
export declare function buildGrokAgentNodeEnv(parentEnv: NodeJS.ProcessEnv): Record<string, string>;
|
|
8
|
+
export declare function grokPreviewResolverConfigPaths(home: string): {
|
|
9
|
+
directory: string;
|
|
10
|
+
userConfig: string;
|
|
11
|
+
globalConfig: string;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* npm rejects loading the same file as both user and global config. Prepare
|
|
15
|
+
* two distinct, empty, owner-only files without following a final symlink so
|
|
16
|
+
* the resolver cannot inherit a user's ordinary npmrc credentials.
|
|
17
|
+
*/
|
|
18
|
+
export declare function prepareGrokPreviewResolverConfigs(home: string): void;
|
|
19
|
+
/** Exact environment for the short-lived npm resolver and capability probe. */
|
|
20
|
+
export declare function buildGrokPreviewResolverEnv(parentEnv: NodeJS.ProcessEnv, home: string): Record<string, string>;
|
|
21
|
+
/** Old headless-only agent-node builds already advertised grok-build-cli. */
|
|
22
|
+
export declare function agentNodeHelpSupportsGrokCopresence(help: string): boolean;
|
|
23
|
+
export interface GrokCopresenceProfileFields {
|
|
24
|
+
grokCopresence: boolean;
|
|
25
|
+
grokLeaderSocket?: string;
|
|
26
|
+
grokAttachSocket?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface GrokSocketPathOptions {
|
|
29
|
+
cwd?: string;
|
|
30
|
+
home?: string;
|
|
31
|
+
xdgRuntimeDir?: string;
|
|
32
|
+
uid?: number;
|
|
33
|
+
platform?: NodeJS.Platform;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Allocate deterministic, short Unix socket paths without creating anything.
|
|
37
|
+
* The runtime owns directory creation and permissions; `anet node create`
|
|
38
|
+
* only persists the identity of the two sockets.
|
|
39
|
+
*/
|
|
40
|
+
export declare function grokCopresenceSocketPaths(nodeId: string, options?: GrokSocketPathOptions): {
|
|
41
|
+
leaderSocket: string;
|
|
42
|
+
attachSocket: string;
|
|
43
|
+
};
|
|
44
|
+
export declare function grokBuildCliCreationFields(runtime: string, nodeId: string, headless?: boolean, options?: GrokSocketPathOptions): GrokCopresenceProfileFields | Record<string, never>;
|