@hypercli.com/sdk 2026.3.13-1
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 +205 -0
- package/dist/agent.d.ts +63 -0
- package/dist/agent.d.ts.map +1 -0
- package/dist/agent.js +128 -0
- package/dist/agent.js.map +1 -0
- package/dist/agents.d.ts +245 -0
- package/dist/agents.d.ts.map +1 -0
- package/dist/agents.js +602 -0
- package/dist/agents.js.map +1 -0
- package/dist/billing.d.ts +38 -0
- package/dist/billing.d.ts.map +1 -0
- package/dist/billing.js +53 -0
- package/dist/billing.js.map +1 -0
- package/dist/claw.d.ts +83 -0
- package/dist/claw.d.ts.map +1 -0
- package/dist/claw.js +148 -0
- package/dist/claw.js.map +1 -0
- package/dist/client.d.ts +62 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +82 -0
- package/dist/client.js.map +1 -0
- package/dist/config.d.ts +28 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +107 -0
- package/dist/config.js.map +1 -0
- package/dist/errors.d.ts +9 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +15 -0
- package/dist/errors.js.map +1 -0
- package/dist/files.d.ts +60 -0
- package/dist/files.d.ts.map +1 -0
- package/dist/files.js +128 -0
- package/dist/files.js.map +1 -0
- package/dist/gateway.d.ts +216 -0
- package/dist/gateway.d.ts.map +1 -0
- package/dist/gateway.js +1306 -0
- package/dist/gateway.js.map +1 -0
- package/dist/http.d.ts +41 -0
- package/dist/http.d.ts.map +1 -0
- package/dist/http.js +206 -0
- package/dist/http.js.map +1 -0
- package/dist/index.d.ts +22 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/dist/instances.d.ts +93 -0
- package/dist/instances.d.ts.map +1 -0
- package/dist/instances.js +196 -0
- package/dist/instances.js.map +1 -0
- package/dist/job/base.d.ts +80 -0
- package/dist/job/base.d.ts.map +1 -0
- package/dist/job/base.js +200 -0
- package/dist/job/base.js.map +1 -0
- package/dist/job/comfyui.d.ts +75 -0
- package/dist/job/comfyui.d.ts.map +1 -0
- package/dist/job/comfyui.js +454 -0
- package/dist/job/comfyui.js.map +1 -0
- package/dist/job/gradio.d.ts +48 -0
- package/dist/job/gradio.d.ts.map +1 -0
- package/dist/job/gradio.js +90 -0
- package/dist/job/gradio.js.map +1 -0
- package/dist/jobs.d.ts +132 -0
- package/dist/jobs.d.ts.map +1 -0
- package/dist/jobs.js +244 -0
- package/dist/jobs.js.map +1 -0
- package/dist/keys.d.ts +39 -0
- package/dist/keys.d.ts.map +1 -0
- package/dist/keys.js +53 -0
- package/dist/keys.js.map +1 -0
- package/dist/logs.d.ts +54 -0
- package/dist/logs.d.ts.map +1 -0
- package/dist/logs.js +256 -0
- package/dist/logs.js.map +1 -0
- package/dist/renders.d.ts +168 -0
- package/dist/renders.d.ts.map +1 -0
- package/dist/renders.js +228 -0
- package/dist/renders.js.map +1 -0
- package/dist/user.d.ts +20 -0
- package/dist/user.d.ts.map +1 -0
- package/dist/user.js +23 -0
- package/dist/user.js.map +1 -0
- package/package.json +65 -0
package/dist/files.d.ts
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Files API - upload assets for use in renders
|
|
3
|
+
*/
|
|
4
|
+
import type { HTTPClient } from './http.js';
|
|
5
|
+
export interface File {
|
|
6
|
+
id: string;
|
|
7
|
+
userId: string;
|
|
8
|
+
filename: string;
|
|
9
|
+
contentType: string;
|
|
10
|
+
fileSize: number;
|
|
11
|
+
url: string;
|
|
12
|
+
state: string | null;
|
|
13
|
+
error: string | null;
|
|
14
|
+
createdAt: string | null;
|
|
15
|
+
}
|
|
16
|
+
export declare class Files {
|
|
17
|
+
private http;
|
|
18
|
+
constructor(http: HTTPClient);
|
|
19
|
+
/**
|
|
20
|
+
* Upload a file for use in renders
|
|
21
|
+
*/
|
|
22
|
+
upload(filePath: string): Promise<File>;
|
|
23
|
+
/**
|
|
24
|
+
* Upload file bytes directly
|
|
25
|
+
*/
|
|
26
|
+
uploadBytes(content: Buffer, filename: string, contentType: string): Promise<File>;
|
|
27
|
+
/**
|
|
28
|
+
* Upload a file from a URL (async backend processing)
|
|
29
|
+
*/
|
|
30
|
+
uploadUrl(url: string, path?: string): Promise<File>;
|
|
31
|
+
/**
|
|
32
|
+
* Upload a file from base64-encoded data (async backend processing)
|
|
33
|
+
*/
|
|
34
|
+
uploadB64(data: string, filename: string, contentType?: string, path?: string): Promise<File>;
|
|
35
|
+
/**
|
|
36
|
+
* Get file metadata and URL
|
|
37
|
+
*/
|
|
38
|
+
get(fileId: string): Promise<File>;
|
|
39
|
+
/**
|
|
40
|
+
* Delete an uploaded file
|
|
41
|
+
*/
|
|
42
|
+
delete(fileId: string): Promise<any>;
|
|
43
|
+
/**
|
|
44
|
+
* Wait for an async upload to complete
|
|
45
|
+
*/
|
|
46
|
+
waitReady(fileId: string, timeout?: number, pollInterval?: number): Promise<File>;
|
|
47
|
+
/**
|
|
48
|
+
* Check if file is ready
|
|
49
|
+
*/
|
|
50
|
+
isReady(file: File): boolean;
|
|
51
|
+
/**
|
|
52
|
+
* Check if file upload failed
|
|
53
|
+
*/
|
|
54
|
+
isFailed(file: File): boolean;
|
|
55
|
+
/**
|
|
56
|
+
* Check if file is processing
|
|
57
|
+
*/
|
|
58
|
+
isProcessing(file: File): boolean;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=files.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.d.ts","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAI5C,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAgBD,qBAAa,KAAK;IACJ,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAEpC;;OAEG;IACG,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB7C;;OAEG;IACG,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQxF;;OAEG;IACG,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ1D;;OAEG;IACG,SAAS,CACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,EACpB,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC;IAShB;;OAEG;IACG,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxC;;OAEG;IACG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAI1C;;OAEG;IACG,SAAS,CACb,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,MAAc,EACvB,YAAY,GAAE,MAAa,GAC1B,OAAO,CAAC,IAAI,CAAC;IAoBhB;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAI5B;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;IAI7B;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO;CAGlC"}
|
package/dist/files.js
ADDED
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { readFileSync } from 'fs';
|
|
2
|
+
import { basename } from 'path';
|
|
3
|
+
function fileFromDict(data) {
|
|
4
|
+
return {
|
|
5
|
+
id: data.id || '',
|
|
6
|
+
userId: data.user_id || '',
|
|
7
|
+
filename: data.filename || '',
|
|
8
|
+
contentType: data.content_type || '',
|
|
9
|
+
fileSize: data.file_size || 0,
|
|
10
|
+
url: data.url || '',
|
|
11
|
+
state: data.state || null,
|
|
12
|
+
error: data.error || null,
|
|
13
|
+
createdAt: data.created_at || null,
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
export class Files {
|
|
17
|
+
http;
|
|
18
|
+
constructor(http) {
|
|
19
|
+
this.http = http;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Upload a file for use in renders
|
|
23
|
+
*/
|
|
24
|
+
async upload(filePath) {
|
|
25
|
+
const content = readFileSync(filePath);
|
|
26
|
+
const filename = basename(filePath);
|
|
27
|
+
// Guess content type
|
|
28
|
+
let contentType = 'application/octet-stream';
|
|
29
|
+
if (filename.endsWith('.png'))
|
|
30
|
+
contentType = 'image/png';
|
|
31
|
+
else if (filename.endsWith('.jpg') || filename.endsWith('.jpeg'))
|
|
32
|
+
contentType = 'image/jpeg';
|
|
33
|
+
else if (filename.endsWith('.gif'))
|
|
34
|
+
contentType = 'image/gif';
|
|
35
|
+
else if (filename.endsWith('.webp'))
|
|
36
|
+
contentType = 'image/webp';
|
|
37
|
+
else if (filename.endsWith('.mp3'))
|
|
38
|
+
contentType = 'audio/mpeg';
|
|
39
|
+
else if (filename.endsWith('.wav'))
|
|
40
|
+
contentType = 'audio/wav';
|
|
41
|
+
else if (filename.endsWith('.mp4'))
|
|
42
|
+
contentType = 'video/mp4';
|
|
43
|
+
else if (filename.endsWith('.webm'))
|
|
44
|
+
contentType = 'video/webm';
|
|
45
|
+
return this.uploadBytes(content, filename, contentType);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Upload file bytes directly
|
|
49
|
+
*/
|
|
50
|
+
async uploadBytes(content, filename, contentType) {
|
|
51
|
+
const files = {
|
|
52
|
+
file: { filename, content, contentType },
|
|
53
|
+
};
|
|
54
|
+
const data = await this.http.postMultipart('/api/files/multi', files);
|
|
55
|
+
return fileFromDict(data);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Upload a file from a URL (async backend processing)
|
|
59
|
+
*/
|
|
60
|
+
async uploadUrl(url, path) {
|
|
61
|
+
const payload = { url };
|
|
62
|
+
if (path)
|
|
63
|
+
payload.path = path;
|
|
64
|
+
const data = await this.http.post('/api/files/url', payload);
|
|
65
|
+
return fileFromDict(data);
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Upload a file from base64-encoded data (async backend processing)
|
|
69
|
+
*/
|
|
70
|
+
async uploadB64(data, filename, contentType, path) {
|
|
71
|
+
const payload = { data, filename };
|
|
72
|
+
if (contentType)
|
|
73
|
+
payload.content_type = contentType;
|
|
74
|
+
if (path)
|
|
75
|
+
payload.path = path;
|
|
76
|
+
const result = await this.http.post('/api/files/b64', payload);
|
|
77
|
+
return fileFromDict(result);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Get file metadata and URL
|
|
81
|
+
*/
|
|
82
|
+
async get(fileId) {
|
|
83
|
+
const data = await this.http.get(`/api/files/${fileId}`);
|
|
84
|
+
return fileFromDict(data);
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Delete an uploaded file
|
|
88
|
+
*/
|
|
89
|
+
async delete(fileId) {
|
|
90
|
+
return await this.http.delete(`/api/files/${fileId}`);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Wait for an async upload to complete
|
|
94
|
+
*/
|
|
95
|
+
async waitReady(fileId, timeout = 60000, pollInterval = 1000) {
|
|
96
|
+
const start = Date.now();
|
|
97
|
+
while (Date.now() - start < timeout) {
|
|
98
|
+
const file = await this.get(fileId);
|
|
99
|
+
if (file.state === 'done') {
|
|
100
|
+
return file;
|
|
101
|
+
}
|
|
102
|
+
if (file.state === 'failed') {
|
|
103
|
+
throw new Error(`File upload failed: ${file.error}`);
|
|
104
|
+
}
|
|
105
|
+
await new Promise(resolve => setTimeout(resolve, pollInterval));
|
|
106
|
+
}
|
|
107
|
+
throw new Error(`File ${fileId} did not complete within ${timeout}ms`);
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Check if file is ready
|
|
111
|
+
*/
|
|
112
|
+
isReady(file) {
|
|
113
|
+
return file.state === 'done';
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Check if file upload failed
|
|
117
|
+
*/
|
|
118
|
+
isFailed(file) {
|
|
119
|
+
return file.state === 'failed';
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Check if file is processing
|
|
123
|
+
*/
|
|
124
|
+
isProcessing(file) {
|
|
125
|
+
return file.state === 'processing';
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=files.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"files.js","sourceRoot":"","sources":["../src/files.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* OpenClaw Gateway WebSocket Client
|
|
3
|
+
*
|
|
4
|
+
* Connects to an agent's OpenClaw gateway over WebSocket for real-time
|
|
5
|
+
* configuration, chat, session management, and file operations.
|
|
6
|
+
*
|
|
7
|
+
* Protocol: OpenClaw Gateway v3
|
|
8
|
+
*/
|
|
9
|
+
export interface GatewayOptions {
|
|
10
|
+
/** WebSocket URL (wss://openclaw-{agent}.hypercli.com) */
|
|
11
|
+
url: string;
|
|
12
|
+
/** Optional legacy query token for edge/proxy auth. Gateway auth uses `gatewayToken`. */
|
|
13
|
+
token?: string;
|
|
14
|
+
/** Shared gateway auth token used in the WebSocket connect handshake. */
|
|
15
|
+
gatewayToken?: string;
|
|
16
|
+
/** Deployment id used for trusted pairing approval via agent exec. */
|
|
17
|
+
deploymentId?: string;
|
|
18
|
+
/** HyperCLI API bearer token used for trusted pairing approval via agent exec. */
|
|
19
|
+
apiKey?: string;
|
|
20
|
+
/** HyperCLI API base URL used for trusted pairing approval via agent exec. */
|
|
21
|
+
apiBase?: string;
|
|
22
|
+
/** Automatically approve first-time browser pairing using trusted agent exec. */
|
|
23
|
+
autoApprovePairing?: boolean;
|
|
24
|
+
/** Client ID (default: "openclaw-control-ui") */
|
|
25
|
+
clientId?: string;
|
|
26
|
+
/** Client mode (default: "webchat") */
|
|
27
|
+
clientMode?: string;
|
|
28
|
+
/** Optional client display name */
|
|
29
|
+
clientDisplayName?: string;
|
|
30
|
+
/** Client version sent to the gateway */
|
|
31
|
+
clientVersion?: string;
|
|
32
|
+
/** Client platform sent to the gateway */
|
|
33
|
+
platform?: string;
|
|
34
|
+
/** Optional client instance ID */
|
|
35
|
+
instanceId?: string;
|
|
36
|
+
/** Optional gateway capability list */
|
|
37
|
+
caps?: string[];
|
|
38
|
+
/** Origin header (default: "https://hypercli.com") */
|
|
39
|
+
origin?: string;
|
|
40
|
+
/** Default RPC timeout in ms (default: 15000) */
|
|
41
|
+
timeout?: number;
|
|
42
|
+
/** Called after a successful hello-ok response */
|
|
43
|
+
onHello?: (hello: Record<string, any>) => void;
|
|
44
|
+
/** Called after the socket closes */
|
|
45
|
+
onClose?: (info: GatewayCloseInfo) => void;
|
|
46
|
+
/** Called when an event sequence gap is detected */
|
|
47
|
+
onGap?: (info: {
|
|
48
|
+
expected: number;
|
|
49
|
+
received: number;
|
|
50
|
+
}) => void;
|
|
51
|
+
/** Called when a browser device pairing request is pending or updated. */
|
|
52
|
+
onPairing?: (pairing: GatewayPairingState | null) => void;
|
|
53
|
+
}
|
|
54
|
+
export interface GatewayEvent {
|
|
55
|
+
type: string;
|
|
56
|
+
event: string;
|
|
57
|
+
payload: Record<string, any>;
|
|
58
|
+
seq?: number;
|
|
59
|
+
}
|
|
60
|
+
export interface ChatEvent {
|
|
61
|
+
type: "content" | "thinking" | "tool_call" | "tool_result" | "done" | "error";
|
|
62
|
+
text?: string;
|
|
63
|
+
data?: Record<string, any>;
|
|
64
|
+
}
|
|
65
|
+
export interface ChatAttachment {
|
|
66
|
+
type: string;
|
|
67
|
+
mimeType: string;
|
|
68
|
+
content: string;
|
|
69
|
+
fileName?: string;
|
|
70
|
+
}
|
|
71
|
+
export interface GatewayCloseInfo {
|
|
72
|
+
code: number;
|
|
73
|
+
reason: string;
|
|
74
|
+
error?: GatewayErrorShape | null;
|
|
75
|
+
}
|
|
76
|
+
export interface GatewayPairingState {
|
|
77
|
+
requestId: string;
|
|
78
|
+
role: string;
|
|
79
|
+
gatewayUrl: string;
|
|
80
|
+
deviceId?: string;
|
|
81
|
+
status: "pending" | "approving" | "approved" | "failed";
|
|
82
|
+
updatedAtMs: number;
|
|
83
|
+
error?: string;
|
|
84
|
+
}
|
|
85
|
+
export interface OpenClawConfigUiHint {
|
|
86
|
+
label?: string;
|
|
87
|
+
help?: string;
|
|
88
|
+
tags?: string[];
|
|
89
|
+
group?: string;
|
|
90
|
+
order?: number;
|
|
91
|
+
advanced?: boolean;
|
|
92
|
+
sensitive?: boolean;
|
|
93
|
+
placeholder?: string;
|
|
94
|
+
itemTemplate?: unknown;
|
|
95
|
+
}
|
|
96
|
+
export interface OpenClawConfigSchemaResponse {
|
|
97
|
+
schema: Record<string, any>;
|
|
98
|
+
uiHints: Record<string, OpenClawConfigUiHint>;
|
|
99
|
+
version?: string;
|
|
100
|
+
generatedAt?: string;
|
|
101
|
+
}
|
|
102
|
+
export interface OpenClawConfigNodeDescriptor {
|
|
103
|
+
schema: Record<string, any>;
|
|
104
|
+
type?: string;
|
|
105
|
+
properties: Record<string, Record<string, any>>;
|
|
106
|
+
additionalProperties: boolean;
|
|
107
|
+
additionalPropertySchema: Record<string, any> | null;
|
|
108
|
+
isDynamicMap: boolean;
|
|
109
|
+
}
|
|
110
|
+
export type GatewayEventHandler = (event: GatewayEvent) => void;
|
|
111
|
+
type GatewayErrorShape = {
|
|
112
|
+
code: string;
|
|
113
|
+
message: string;
|
|
114
|
+
details?: unknown;
|
|
115
|
+
};
|
|
116
|
+
export declare function normalizeOpenClawConfigSchemaNode(value: unknown): Record<string, any>;
|
|
117
|
+
export declare function describeOpenClawConfigNode(value: unknown): OpenClawConfigNodeDescriptor;
|
|
118
|
+
export declare function createOpenClawConfigValue(value: unknown): unknown;
|
|
119
|
+
export declare function normalizeOpenClawConfigSchema(value: unknown): OpenClawConfigSchemaResponse | null;
|
|
120
|
+
export declare function resolveOpenClawConfigUiHint(source: OpenClawConfigSchemaResponse | Record<string, OpenClawConfigUiHint> | null | undefined, path: string): {
|
|
121
|
+
path: string;
|
|
122
|
+
hint: OpenClawConfigUiHint;
|
|
123
|
+
} | null;
|
|
124
|
+
export declare class GatewayClient {
|
|
125
|
+
private url;
|
|
126
|
+
private token?;
|
|
127
|
+
private gatewayToken?;
|
|
128
|
+
private deploymentId?;
|
|
129
|
+
private apiKey?;
|
|
130
|
+
private apiBase?;
|
|
131
|
+
private autoApprovePairing;
|
|
132
|
+
private clientId;
|
|
133
|
+
private clientMode;
|
|
134
|
+
private clientDisplayName?;
|
|
135
|
+
private clientVersion;
|
|
136
|
+
private clientPlatform;
|
|
137
|
+
private clientInstanceId?;
|
|
138
|
+
private caps;
|
|
139
|
+
private origin;
|
|
140
|
+
private defaultTimeout;
|
|
141
|
+
private ws;
|
|
142
|
+
private pending;
|
|
143
|
+
private eventHandlers;
|
|
144
|
+
private connected;
|
|
145
|
+
private closed;
|
|
146
|
+
private reconnectTimer;
|
|
147
|
+
private connectTimer;
|
|
148
|
+
private backoffMs;
|
|
149
|
+
private connectNonce;
|
|
150
|
+
private connectSent;
|
|
151
|
+
private pendingConnectError;
|
|
152
|
+
private pairingState;
|
|
153
|
+
private autoApproveAttemptedRequestIds;
|
|
154
|
+
private lastSeq;
|
|
155
|
+
private connectPromise;
|
|
156
|
+
private resolveConnectPromise;
|
|
157
|
+
private rejectConnectPromise;
|
|
158
|
+
private _version;
|
|
159
|
+
private _protocol;
|
|
160
|
+
onDisconnect: (() => void) | null;
|
|
161
|
+
constructor(options: GatewayOptions);
|
|
162
|
+
private readonly onHello?;
|
|
163
|
+
private readonly onClose?;
|
|
164
|
+
private readonly onGap?;
|
|
165
|
+
private readonly onPairing?;
|
|
166
|
+
get version(): string | null;
|
|
167
|
+
get protocol(): number | null;
|
|
168
|
+
get isConnected(): boolean;
|
|
169
|
+
get pendingPairing(): GatewayPairingState | null;
|
|
170
|
+
private storageScope;
|
|
171
|
+
/** Subscribe to server-sent events */
|
|
172
|
+
onEvent(handler: GatewayEventHandler): () => void;
|
|
173
|
+
/** Connect and keep reconnecting until stopped */
|
|
174
|
+
connect(): Promise<void>;
|
|
175
|
+
start(): Promise<void>;
|
|
176
|
+
/** Close permanently and stop reconnecting */
|
|
177
|
+
close(): void;
|
|
178
|
+
stop(): void;
|
|
179
|
+
private updatePairingState;
|
|
180
|
+
private canAutoApprovePairing;
|
|
181
|
+
private approvePairingRequest;
|
|
182
|
+
private openSocket;
|
|
183
|
+
private queueConnect;
|
|
184
|
+
private scheduleReconnect;
|
|
185
|
+
private flushPending;
|
|
186
|
+
private handleClose;
|
|
187
|
+
private sendConnect;
|
|
188
|
+
private handleMessage;
|
|
189
|
+
private sendRawRequest;
|
|
190
|
+
private rpc;
|
|
191
|
+
request<T = any>(method: string, params?: Record<string, any>, timeout?: number): Promise<T>;
|
|
192
|
+
configGet(): Promise<Record<string, any>>;
|
|
193
|
+
configSchema(): Promise<OpenClawConfigSchemaResponse>;
|
|
194
|
+
configPatch(patch: Record<string, any>): Promise<void>;
|
|
195
|
+
configSet(config: Record<string, any>): Promise<void>;
|
|
196
|
+
modelsList(): Promise<any[]>;
|
|
197
|
+
sessionsList(): Promise<any[]>;
|
|
198
|
+
sessionsPreview(sessionKey: string, limit?: number): Promise<any[]>;
|
|
199
|
+
chatHistory(sessionKey?: string, limit?: number): Promise<any[]>;
|
|
200
|
+
chatAbort(sessionKey?: string): Promise<void>;
|
|
201
|
+
sendChat(message: string, sessionKey?: string, agentId?: string, attachments?: ChatAttachment[]): Promise<any>;
|
|
202
|
+
sessionsReset(sessionKey: string): Promise<void>;
|
|
203
|
+
chatSend(message: string, sessionKey: string): AsyncGenerator<ChatEvent>;
|
|
204
|
+
filesList(agentId?: string): Promise<any[]>;
|
|
205
|
+
fileGet(agentId: string, name: string): Promise<string>;
|
|
206
|
+
fileSet(agentId: string, name: string, content: string): Promise<void>;
|
|
207
|
+
agentsList(): Promise<any[]>;
|
|
208
|
+
cronList(): Promise<any[]>;
|
|
209
|
+
cronAdd(job: Record<string, any>): Promise<any>;
|
|
210
|
+
cronRemove(jobId: string): Promise<void>;
|
|
211
|
+
execApprove(execId: string): Promise<void>;
|
|
212
|
+
execDeny(execId: string): Promise<void>;
|
|
213
|
+
status(): Promise<Record<string, any>>;
|
|
214
|
+
}
|
|
215
|
+
export {};
|
|
216
|
+
//# sourceMappingURL=gateway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../src/gateway.ts"],"names":[],"mappings":"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"}
|