@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.
Files changed (82) hide show
  1. package/README.md +205 -0
  2. package/dist/agent.d.ts +63 -0
  3. package/dist/agent.d.ts.map +1 -0
  4. package/dist/agent.js +128 -0
  5. package/dist/agent.js.map +1 -0
  6. package/dist/agents.d.ts +245 -0
  7. package/dist/agents.d.ts.map +1 -0
  8. package/dist/agents.js +602 -0
  9. package/dist/agents.js.map +1 -0
  10. package/dist/billing.d.ts +38 -0
  11. package/dist/billing.d.ts.map +1 -0
  12. package/dist/billing.js +53 -0
  13. package/dist/billing.js.map +1 -0
  14. package/dist/claw.d.ts +83 -0
  15. package/dist/claw.d.ts.map +1 -0
  16. package/dist/claw.js +148 -0
  17. package/dist/claw.js.map +1 -0
  18. package/dist/client.d.ts +62 -0
  19. package/dist/client.d.ts.map +1 -0
  20. package/dist/client.js +82 -0
  21. package/dist/client.js.map +1 -0
  22. package/dist/config.d.ts +28 -0
  23. package/dist/config.d.ts.map +1 -0
  24. package/dist/config.js +107 -0
  25. package/dist/config.js.map +1 -0
  26. package/dist/errors.d.ts +9 -0
  27. package/dist/errors.d.ts.map +1 -0
  28. package/dist/errors.js +15 -0
  29. package/dist/errors.js.map +1 -0
  30. package/dist/files.d.ts +60 -0
  31. package/dist/files.d.ts.map +1 -0
  32. package/dist/files.js +128 -0
  33. package/dist/files.js.map +1 -0
  34. package/dist/gateway.d.ts +216 -0
  35. package/dist/gateway.d.ts.map +1 -0
  36. package/dist/gateway.js +1306 -0
  37. package/dist/gateway.js.map +1 -0
  38. package/dist/http.d.ts +41 -0
  39. package/dist/http.d.ts.map +1 -0
  40. package/dist/http.js +206 -0
  41. package/dist/http.js.map +1 -0
  42. package/dist/index.d.ts +22 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +36 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/instances.d.ts +93 -0
  47. package/dist/instances.d.ts.map +1 -0
  48. package/dist/instances.js +196 -0
  49. package/dist/instances.js.map +1 -0
  50. package/dist/job/base.d.ts +80 -0
  51. package/dist/job/base.d.ts.map +1 -0
  52. package/dist/job/base.js +200 -0
  53. package/dist/job/base.js.map +1 -0
  54. package/dist/job/comfyui.d.ts +75 -0
  55. package/dist/job/comfyui.d.ts.map +1 -0
  56. package/dist/job/comfyui.js +454 -0
  57. package/dist/job/comfyui.js.map +1 -0
  58. package/dist/job/gradio.d.ts +48 -0
  59. package/dist/job/gradio.d.ts.map +1 -0
  60. package/dist/job/gradio.js +90 -0
  61. package/dist/job/gradio.js.map +1 -0
  62. package/dist/jobs.d.ts +132 -0
  63. package/dist/jobs.d.ts.map +1 -0
  64. package/dist/jobs.js +244 -0
  65. package/dist/jobs.js.map +1 -0
  66. package/dist/keys.d.ts +39 -0
  67. package/dist/keys.d.ts.map +1 -0
  68. package/dist/keys.js +53 -0
  69. package/dist/keys.js.map +1 -0
  70. package/dist/logs.d.ts +54 -0
  71. package/dist/logs.d.ts.map +1 -0
  72. package/dist/logs.js +256 -0
  73. package/dist/logs.js.map +1 -0
  74. package/dist/renders.d.ts +168 -0
  75. package/dist/renders.d.ts.map +1 -0
  76. package/dist/renders.js +228 -0
  77. package/dist/renders.js.map +1 -0
  78. package/dist/user.d.ts +20 -0
  79. package/dist/user.d.ts.map +1 -0
  80. package/dist/user.js +23 -0
  81. package/dist/user.js.map +1 -0
  82. package/package.json +65 -0
package/README.md ADDED
@@ -0,0 +1,205 @@
1
+ # @hypercli.com/sdk
2
+
3
+ TypeScript SDK for HyperCLI API - GPU cloud compute made simple.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @hypercli.com/sdk
9
+ ```
10
+
11
+ **Dependencies:**
12
+ - `ws` - WebSocket client for log streaming
13
+ - Node.js 18+ (uses native `fetch`)
14
+
15
+ ## Quick Start
16
+
17
+ ```typescript
18
+ import { HyperCLI } from '@hypercli.com/sdk';
19
+
20
+ // Initialize client (uses HYPERCLI_API_KEY from env or ~/.hypercli/config)
21
+ const client = new HyperCLI();
22
+
23
+ // Or pass API key directly
24
+ const client = new HyperCLI({ apiKey: 'your_key' });
25
+
26
+ // Check balance
27
+ const balance = await client.billing.balance();
28
+ console.log(`Balance: $${balance.total}`);
29
+
30
+ // Launch a GPU job
31
+ const job = await client.jobs.create({
32
+ image: 'nvidia/cuda:12.0-runtime-ubuntu22.04',
33
+ gpuType: 'l40s',
34
+ gpuCount: 1,
35
+ command: 'python train.py',
36
+ dryRun: true,
37
+ env: { MODEL: 'llama-3' },
38
+ });
39
+
40
+ console.log(`Job started: ${job.jobId}`);
41
+ console.log(`Hostname: ${job.hostname}`);
42
+ ```
43
+
44
+ ## Configuration
45
+
46
+ Set your API key via:
47
+ 1. Environment variable: `export HYPERCLI_API_KEY=your_key`
48
+ 2. Config file: `~/.hypercli/config`
49
+ 3. Constructor: `new HyperCLI({ apiKey: 'your_key' })`
50
+
51
+ ```typescript
52
+ import { configure } from '@hypercli.com/sdk';
53
+
54
+ // Save to ~/.hypercli/config
55
+ configure('your_api_key');
56
+ ```
57
+
58
+ ## Examples
59
+
60
+ ### Billing
61
+
62
+ ```typescript
63
+ const balance = await client.billing.balance();
64
+ const txs = await client.billing.transactions(limit: 10);
65
+ ```
66
+
67
+ ### Jobs
68
+
69
+ ```typescript
70
+ // List running jobs
71
+ const jobs = await client.jobs.list('running');
72
+
73
+ // Get job details
74
+ const job = await client.jobs.get(jobId);
75
+
76
+ // Cancel job
77
+ await client.jobs.cancel(jobId);
78
+
79
+ // Get logs
80
+ const logs = await client.jobs.logs(jobId);
81
+
82
+ // Get metrics
83
+ const metrics = await client.jobs.metrics(jobId);
84
+
85
+ // Non-interactive exec
86
+ const execResult = await client.jobs.exec(jobId, 'nvidia-smi');
87
+
88
+ // Interactive shell WebSocket
89
+ const ws = await client.jobs.shellConnect(jobId, '/bin/bash');
90
+ ws.close();
91
+ ```
92
+
93
+ ### HyperClaw Agent Exec/Shell
94
+
95
+ ```typescript
96
+ const models = await client.agent.models();
97
+
98
+ // Execute command in a HyperClaw (reef) container
99
+ const agentExec = await client.agents.exec(agentId, 'ls -la');
100
+
101
+ // Interactive shell for HyperClaw container
102
+ const agentWs = await client.agents.shellConnect(agentId);
103
+ agentWs.close();
104
+ ```
105
+
106
+ ### Renders (Managed AI Workflows)
107
+
108
+ ```typescript
109
+ // Text to image
110
+ const render = await client.renders.textToImage({
111
+ prompt: 'a cat wearing sunglasses',
112
+ width: 1024,
113
+ height: 1024,
114
+ });
115
+
116
+ // Text to video
117
+ const video = await client.renders.textToVideo({
118
+ prompt: 'a cat walking through a garden',
119
+ });
120
+
121
+ // Check status
122
+ const status = await client.renders.status(render.renderId);
123
+ ```
124
+
125
+ ### File Uploads
126
+
127
+ ```typescript
128
+ // Upload local file
129
+ const file = await client.files.upload('./image.png');
130
+
131
+ // Upload from URL
132
+ const file = await client.files.uploadUrl('https://example.com/image.png');
133
+ await client.files.waitReady(file.id);
134
+
135
+ // Use in renders
136
+ const render = await client.renders.imageToVideo({
137
+ prompt: 'dancing',
138
+ fileIds: [file.id],
139
+ });
140
+ ```
141
+
142
+ ### Log Streaming
143
+
144
+ ```typescript
145
+ import { streamLogs } from '@hypercli.com/sdk';
146
+
147
+ await streamLogs(client, jobId, (line) => {
148
+ console.log(line);
149
+ });
150
+ ```
151
+
152
+ ### ComfyUI Workflows
153
+
154
+ ```typescript
155
+ import { ComfyUIJob, applyParams, graphToApi } from '@hypercli.com/sdk';
156
+
157
+ // Launch ComfyUI instance
158
+ const comfy = await ComfyUIJob.createForTemplate(client, 'flux-dev', {
159
+ gpuType: 'l40s',
160
+ lb: 8188, // HTTPS load balancer
161
+ auth: true,
162
+ });
163
+
164
+ // Wait for ready
165
+ await comfy.waitReady();
166
+
167
+ // Load and modify workflow
168
+ const workflow = JSON.parse(fs.readFileSync('workflow.json', 'utf-8'));
169
+ applyParams(workflow, {
170
+ prompt: 'a beautiful landscape',
171
+ seed: 42,
172
+ steps: 20,
173
+ });
174
+
175
+ // Execute workflow
176
+ const response = await fetch(`${comfy.baseUrl}/prompt`, {
177
+ method: 'POST',
178
+ headers: { ...comfy.authHeaders, 'Content-Type': 'application/json' },
179
+ body: JSON.stringify({ prompt: workflow }),
180
+ });
181
+ ```
182
+
183
+ ## API Reference
184
+
185
+ ### Client
186
+
187
+ - `client.billing` - Billing API
188
+ - `client.jobs` - Jobs API
189
+ - `client.user` - User API
190
+ - `client.instances` - GPU instances, types, regions, pricing
191
+ - `client.renders` - Render API
192
+ - `client.files` - File upload/download
193
+ - `client.keys` - API keys management
194
+ - `client.agent` - HyperClaw inference API
195
+ - `client.agents` - HyperClaw agent container exec/shell API
196
+
197
+ ### Job Helpers
198
+
199
+ - `BaseJob` - Base class for GPU jobs
200
+ - `ComfyUIJob` - ComfyUI-specific helpers
201
+ - `GradioJob` - Gradio-specific helpers
202
+
203
+ ## License
204
+
205
+ MIT
@@ -0,0 +1,63 @@
1
+ /**
2
+ * HyperAgent API client - AI agent inference using OpenAI-compatible API
3
+ *
4
+ * Note: OpenAI client integration is not included in this SDK.
5
+ * Use the OpenAI Node.js SDK directly with HyperClaw endpoints.
6
+ */
7
+ import type { HTTPClient } from './http.js';
8
+ export interface HyperAgentKey {
9
+ key: string;
10
+ planId: string;
11
+ expiresAt: Date;
12
+ tpmLimit: number;
13
+ rpmLimit: number;
14
+ userId: string | null;
15
+ }
16
+ export interface HyperAgentPlan {
17
+ id: string;
18
+ name: string;
19
+ priceUsd: number;
20
+ tpmLimit: number;
21
+ rpmLimit: number;
22
+ }
23
+ export interface HyperAgentModel {
24
+ id: string;
25
+ name: string;
26
+ contextLength: number;
27
+ supportsVision: boolean;
28
+ supportsFunctionCalling: boolean;
29
+ supportsToolChoice: boolean;
30
+ }
31
+ /**
32
+ * HyperAgent API Client
33
+ *
34
+ * For chat completions, use the OpenAI Node.js SDK directly:
35
+ *
36
+ * ```typescript
37
+ * import OpenAI from 'openai';
38
+ *
39
+ * const openai = new OpenAI({
40
+ * apiKey: client.agent.apiKey,
41
+ * baseURL: client.agent.baseUrl,
42
+ * });
43
+ * ```
44
+ */
45
+ export declare class HyperAgent {
46
+ private http;
47
+ static readonly AGENT_API_BASE = "https://api.hypercli.com/v1";
48
+ static readonly DEV_API_BASE = "https://api.dev.hypercli.com/v1";
49
+ readonly apiKey: string;
50
+ readonly baseUrl: string;
51
+ constructor(http: HTTPClient, agentApiKey?: string, dev?: boolean);
52
+ private get baseUrlWithoutV1();
53
+ keyStatus(): Promise<HyperAgentKey>;
54
+ plans(): Promise<HyperAgentPlan[]>;
55
+ models(): Promise<HyperAgentModel[]>;
56
+ discoveryHealth(): Promise<{
57
+ hostsTotal: number;
58
+ hostsHealthy: number;
59
+ fallbacksActive: number;
60
+ }>;
61
+ discoveryConfig(apiKey?: string): Promise<any>;
62
+ }
63
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,OAAO,CAAC;IACxB,uBAAuB,EAAE,OAAO,CAAC;IACjC,kBAAkB,EAAE,OAAO,CAAC;CAC7B;AA0CD;;;;;;;;;;;;;GAaG;AACH,qBAAa,UAAU;IAQnB,OAAO,CAAC,IAAI;IAPd,MAAM,CAAC,QAAQ,CAAC,cAAc,iCAAiC;IAC/D,MAAM,CAAC,QAAQ,CAAC,YAAY,qCAAqC;IAEjE,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,OAAO,EAAE,MAAM,CAAC;gBAGtB,IAAI,EAAE,UAAU,EACxB,WAAW,CAAC,EAAE,MAAM,EACpB,GAAG,GAAE,OAAe;IAMtB,OAAO,KAAK,gBAAgB,GAE3B;IAEK,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC;IAenC,KAAK,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;IAelC,MAAM,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAsBpC,eAAe,IAAI,OAAO,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,MAAM,CAAC;QACrB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IAUI,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;CAgBrD"}
package/dist/agent.js ADDED
@@ -0,0 +1,128 @@
1
+ function hyperAgentKeyFromDict(data) {
2
+ let expiresAt;
3
+ if (typeof data.expires_at === 'string') {
4
+ expiresAt = new Date(data.expires_at.replace('Z', '+00:00'));
5
+ }
6
+ else {
7
+ expiresAt = new Date(data.expires_at);
8
+ }
9
+ return {
10
+ key: data.key,
11
+ planId: data.plan_id,
12
+ expiresAt,
13
+ tpmLimit: data.tpm_limit || 0,
14
+ rpmLimit: data.rpm_limit || 0,
15
+ userId: data.user_id || null,
16
+ };
17
+ }
18
+ function hyperAgentPlanFromDict(data) {
19
+ return {
20
+ id: data.id,
21
+ name: data.name,
22
+ priceUsd: data.price_usd,
23
+ tpmLimit: data.tpm_limit,
24
+ rpmLimit: data.rpm_limit,
25
+ };
26
+ }
27
+ function hyperAgentModelFromDict(data) {
28
+ const caps = data.capabilities || {};
29
+ return {
30
+ id: data.id,
31
+ name: data.name || data.id,
32
+ contextLength: data.context_length || 0,
33
+ supportsVision: caps.supports_vision || false,
34
+ supportsFunctionCalling: caps.supports_function_calling || false,
35
+ supportsToolChoice: caps.supports_tool_choice || false,
36
+ };
37
+ }
38
+ /**
39
+ * HyperAgent API Client
40
+ *
41
+ * For chat completions, use the OpenAI Node.js SDK directly:
42
+ *
43
+ * ```typescript
44
+ * import OpenAI from 'openai';
45
+ *
46
+ * const openai = new OpenAI({
47
+ * apiKey: client.agent.apiKey,
48
+ * baseURL: client.agent.baseUrl,
49
+ * });
50
+ * ```
51
+ */
52
+ export class HyperAgent {
53
+ http;
54
+ static AGENT_API_BASE = 'https://api.hypercli.com/v1';
55
+ static DEV_API_BASE = 'https://api.dev.hypercli.com/v1';
56
+ apiKey;
57
+ baseUrl;
58
+ constructor(http, agentApiKey, dev = false) {
59
+ this.http = http;
60
+ this.apiKey = agentApiKey || http['apiKey'];
61
+ this.baseUrl = dev ? HyperAgent.DEV_API_BASE : HyperAgent.AGENT_API_BASE;
62
+ }
63
+ get baseUrlWithoutV1() {
64
+ return this.baseUrl.replace('/v1', '');
65
+ }
66
+ async keyStatus() {
67
+ const response = await fetch(`${this.baseUrlWithoutV1}/api/keys/status`, {
68
+ headers: {
69
+ Authorization: `Bearer ${this.apiKey}`,
70
+ },
71
+ });
72
+ if (!response.ok) {
73
+ throw new Error(`Failed to get key status: ${response.statusText}`);
74
+ }
75
+ const data = await response.json();
76
+ return hyperAgentKeyFromDict(data);
77
+ }
78
+ async plans() {
79
+ const response = await fetch(`${this.baseUrlWithoutV1}/api/plans`, {
80
+ headers: {
81
+ Authorization: `Bearer ${this.apiKey}`,
82
+ },
83
+ });
84
+ if (!response.ok) {
85
+ throw new Error(`Failed to get plans: ${response.statusText}`);
86
+ }
87
+ const data = await response.json();
88
+ return (data.plans || []).map(hyperAgentPlanFromDict);
89
+ }
90
+ async models() {
91
+ const response = await fetch(`${this.baseUrl}/models`, {
92
+ headers: {
93
+ Authorization: `Bearer ${this.apiKey}`,
94
+ },
95
+ });
96
+ if (!response.ok) {
97
+ throw new Error(`Failed to get models: ${response.statusText}`);
98
+ }
99
+ const data = await response.json();
100
+ return (data.data || []).map((model) => hyperAgentModelFromDict({
101
+ id: model.id,
102
+ name: model.name || model.id,
103
+ context_length: model.context_length || 0,
104
+ capabilities: model.capabilities || {},
105
+ }));
106
+ }
107
+ async discoveryHealth() {
108
+ const response = await fetch(`${this.baseUrlWithoutV1}/discovery/health`);
109
+ if (!response.ok) {
110
+ throw new Error(`Failed to get discovery health: ${response.statusText}`);
111
+ }
112
+ return (await response.json());
113
+ }
114
+ async discoveryConfig(apiKey) {
115
+ const headers = {};
116
+ if (apiKey) {
117
+ headers['X-API-KEY'] = apiKey;
118
+ }
119
+ const response = await fetch(`${this.baseUrlWithoutV1}/discovery/config`, {
120
+ headers,
121
+ });
122
+ if (!response.ok) {
123
+ throw new Error(`Failed to get discovery config: ${response.statusText}`);
124
+ }
125
+ return await response.json();
126
+ }
127
+ }
128
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,245 @@
1
+ /**
2
+ * HyperClaw agents API - typed agent lifecycle, files, exec, and OpenClaw access.
3
+ */
4
+ import type { HTTPClient } from './http.js';
5
+ import { GatewayClient, type ChatEvent, type GatewayOptions, type OpenClawConfigSchemaResponse } from './gateway.js';
6
+ export interface AgentExecResult {
7
+ exitCode: number;
8
+ stdout: string;
9
+ stderr: string;
10
+ }
11
+ export interface AgentTokenResponse {
12
+ agent_id?: string;
13
+ pod_id?: string;
14
+ token?: string;
15
+ jwt?: string;
16
+ expires_at?: string | null;
17
+ }
18
+ export interface AgentShellTokenResponse {
19
+ agent_id?: string;
20
+ jwt: string;
21
+ expires_at?: string | null;
22
+ ws_url?: string;
23
+ shell?: string | null;
24
+ dry_run?: boolean;
25
+ }
26
+ export interface AgentLogsTokenResponse {
27
+ agent_id?: string;
28
+ jwt: string;
29
+ expires_at?: string | null;
30
+ ws_url?: string;
31
+ }
32
+ export interface AgentListResponse {
33
+ items: Agent[];
34
+ budget?: Record<string, any>;
35
+ }
36
+ export interface AgentRouteConfig {
37
+ port: number;
38
+ prefix?: string;
39
+ auth?: boolean;
40
+ strip_prefix?: boolean;
41
+ [key: string]: any;
42
+ }
43
+ export interface RegistryAuth {
44
+ username?: string;
45
+ password?: string;
46
+ token?: string;
47
+ [key: string]: any;
48
+ }
49
+ export interface BuildAgentConfigOptions {
50
+ env?: Record<string, string>;
51
+ ports?: Record<string, any>[] | null;
52
+ routes?: Record<string, AgentRouteConfig> | null;
53
+ command?: string[] | null;
54
+ entrypoint?: string[] | null;
55
+ image?: string | null;
56
+ registryUrl?: string | null;
57
+ registryAuth?: RegistryAuth | null;
58
+ gatewayToken?: string | null;
59
+ }
60
+ export interface CreateAgentOptions extends BuildAgentConfigOptions {
61
+ name?: string;
62
+ size?: string;
63
+ cpu?: number;
64
+ memory?: number;
65
+ config?: Record<string, any>;
66
+ dryRun?: boolean;
67
+ start?: boolean;
68
+ }
69
+ export interface StartAgentOptions extends BuildAgentConfigOptions {
70
+ config?: Record<string, any>;
71
+ dryRun?: boolean;
72
+ }
73
+ export interface AgentExecOptions {
74
+ timeout?: number;
75
+ dryRun?: boolean;
76
+ }
77
+ export interface AgentStateFields {
78
+ id: string;
79
+ userId: string;
80
+ podId: string;
81
+ podName: string;
82
+ state: string;
83
+ name?: string | null;
84
+ cpu: number;
85
+ memory: number;
86
+ hostname?: string | null;
87
+ jwtToken?: string | null;
88
+ jwtExpiresAt?: Date | null;
89
+ startedAt?: Date | null;
90
+ stoppedAt?: Date | null;
91
+ lastError?: string | null;
92
+ createdAt?: Date | null;
93
+ updatedAt?: Date | null;
94
+ launchConfig?: Record<string, any> | null;
95
+ routes: Record<string, AgentRouteConfig>;
96
+ command: string[];
97
+ entrypoint: string[];
98
+ ports: Record<string, any>[];
99
+ dryRun: boolean;
100
+ }
101
+ export interface AgentHydrationData {
102
+ id?: string;
103
+ user_id?: string;
104
+ pod_id?: string;
105
+ pod_name?: string;
106
+ state?: string;
107
+ name?: string | null;
108
+ cpu?: number;
109
+ memory?: number;
110
+ hostname?: string | null;
111
+ jwt_token?: string | null;
112
+ jwt_expires_at?: string | null;
113
+ started_at?: string | null;
114
+ stopped_at?: string | null;
115
+ last_error?: string | null;
116
+ created_at?: string | null;
117
+ updated_at?: string | null;
118
+ launch_config?: Record<string, any> | null;
119
+ routes?: Record<string, AgentRouteConfig> | null;
120
+ command?: string[] | null;
121
+ entrypoint?: string[] | null;
122
+ ports?: Record<string, any>[] | null;
123
+ dry_run?: boolean;
124
+ openclaw_url?: string | null;
125
+ gateway_url?: string | null;
126
+ gateway_token?: string | null;
127
+ [key: string]: any;
128
+ }
129
+ export declare function resolveAgentsApiBase(apiBase: string): string;
130
+ export declare function buildAgentConfig(config?: Record<string, any>, options?: BuildAgentConfigOptions): {
131
+ config: Record<string, any>;
132
+ gatewayToken: string;
133
+ };
134
+ export declare class Agent {
135
+ readonly id: string;
136
+ readonly userId: string;
137
+ readonly podId: string;
138
+ readonly podName: string;
139
+ readonly state: string;
140
+ readonly name: string | null;
141
+ readonly cpu: number;
142
+ readonly memory: number;
143
+ readonly hostname: string | null;
144
+ jwtToken: string | null;
145
+ jwtExpiresAt: Date | null;
146
+ readonly startedAt: Date | null;
147
+ readonly stoppedAt: Date | null;
148
+ readonly lastError: string | null;
149
+ readonly createdAt: Date | null;
150
+ readonly updatedAt: Date | null;
151
+ launchConfig: Record<string, any> | null;
152
+ routes: Record<string, AgentRouteConfig>;
153
+ command: string[];
154
+ entrypoint: string[];
155
+ ports: Record<string, any>[];
156
+ readonly dryRun: boolean;
157
+ _deployments: Deployments | null;
158
+ constructor(fields: AgentStateFields);
159
+ static fromDict(data: AgentHydrationData): Agent;
160
+ get publicUrl(): string | null;
161
+ get vncUrl(): string | null;
162
+ get shellUrl(): string | null;
163
+ get executorUrl(): string | null;
164
+ get isRunning(): boolean;
165
+ protected requireDeployments(): Deployments;
166
+ refreshToken(): Promise<AgentTokenResponse>;
167
+ env(): Promise<Record<string, string>>;
168
+ exec(command: string, options?: AgentExecOptions): Promise<AgentExecResult>;
169
+ health(): Promise<Record<string, any>>;
170
+ filesList(path?: string): Promise<any[]>;
171
+ fileReadBytes(path: string): Promise<Uint8Array>;
172
+ fileRead(path: string): Promise<string>;
173
+ fileWriteBytes(path: string, content: Uint8Array | ArrayBuffer | string): Promise<Record<string, any>>;
174
+ fileWrite(path: string, content: string): Promise<Record<string, any>>;
175
+ fileDelete(path: string, options?: {
176
+ recursive?: boolean;
177
+ }): Promise<Record<string, any>>;
178
+ cpTo(localPath: string, remotePath: string): Promise<Record<string, any>>;
179
+ cpFrom(remotePath: string, localPath: string): Promise<string>;
180
+ shellConnect(shell?: string): Promise<WebSocket>;
181
+ }
182
+ export declare class OpenClawAgent extends Agent {
183
+ gatewayUrl: string | null;
184
+ gatewayToken: string | null;
185
+ constructor(fields: AgentStateFields & {
186
+ gatewayUrl?: string | null;
187
+ gatewayToken?: string | null;
188
+ });
189
+ static fromDict(data: AgentHydrationData): OpenClawAgent;
190
+ /**
191
+ * Resolve the gateway token. If not set locally (e.g. page refresh),
192
+ * fetches from the pod's runtime env via the backend.
193
+ */
194
+ resolveGatewayToken(): Promise<string | null>;
195
+ gateway(options?: Omit<Partial<GatewayOptions>, 'url' | 'token'>): GatewayClient;
196
+ connect(options?: Omit<Partial<GatewayOptions>, 'url' | 'token'>): Promise<GatewayClient>;
197
+ gatewayStatus(options?: Omit<Partial<GatewayOptions>, 'url' | 'token'>): Promise<Record<string, any>>;
198
+ configGet(options?: Omit<Partial<GatewayOptions>, 'url' | 'token'>): Promise<Record<string, any>>;
199
+ configSchema(options?: Omit<Partial<GatewayOptions>, 'url' | 'token'>): Promise<OpenClawConfigSchemaResponse>;
200
+ sessionsList(options?: Omit<Partial<GatewayOptions>, 'url' | 'token'>): Promise<any[]>;
201
+ chatSend(message: string, sessionKey: string, options?: Omit<Partial<GatewayOptions>, 'url' | 'token'>): AsyncGenerator<ChatEvent>;
202
+ }
203
+ export declare class Deployments {
204
+ private readonly http;
205
+ private readonly apiKey;
206
+ private readonly apiBase;
207
+ private readonly agentsWsUrl;
208
+ constructor(http: HTTPClient, agentApiKey?: string, agentApiBase?: string, agentsWsUrl?: string);
209
+ private hydrateAgent;
210
+ private agentIdFor;
211
+ private fetchRaw;
212
+ create(options?: CreateAgentOptions): Promise<Agent>;
213
+ budget(): Promise<Record<string, any>>;
214
+ metrics(agentId: string): Promise<Record<string, any>>;
215
+ list(): Promise<AgentListResponse>;
216
+ get(agentId: string): Promise<Agent>;
217
+ start(agentId: string, options?: StartAgentOptions): Promise<Agent>;
218
+ stop(agentId: string): Promise<Agent>;
219
+ delete(agentId: string): Promise<Record<string, any>>;
220
+ refreshToken(agentId: string): Promise<AgentTokenResponse>;
221
+ logsToken(agentId: string): Promise<AgentLogsTokenResponse>;
222
+ env(agentId: string): Promise<{
223
+ agent_id: string;
224
+ env: Record<string, string>;
225
+ }>;
226
+ exec(target: Agent | string, command: string, options?: AgentExecOptions): Promise<AgentExecResult>;
227
+ health(target: Agent): Promise<Record<string, any>>;
228
+ filesList(target: Agent | string, path?: string): Promise<any[]>;
229
+ fileReadBytes(target: Agent | string, path: string): Promise<Uint8Array>;
230
+ fileRead(target: Agent | string, path: string): Promise<string>;
231
+ fileWriteBytes(target: Agent | string, path: string, content: Uint8Array | ArrayBuffer | string): Promise<Record<string, any>>;
232
+ fileWrite(target: Agent | string, path: string, content: string): Promise<Record<string, any>>;
233
+ fileDelete(target: Agent | string, path: string, options?: {
234
+ recursive?: boolean;
235
+ }): Promise<Record<string, any>>;
236
+ cpTo(target: Agent | string, localPath: string, remotePath: string): Promise<Record<string, any>>;
237
+ cpFrom(target: Agent | string, remotePath: string, localPath: string): Promise<string>;
238
+ logsConnect(agentId: string, options?: {
239
+ tailLines?: number;
240
+ container?: string;
241
+ }): Promise<WebSocket>;
242
+ shellToken(agentId: string, shell?: string, dryRun?: boolean): Promise<AgentShellTokenResponse>;
243
+ shellConnect(agentId: string, shell?: string): Promise<WebSocket>;
244
+ }
245
+ //# sourceMappingURL=agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"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"}