@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/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
|
package/dist/agent.d.ts
ADDED
|
@@ -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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"}
|
package/dist/agents.d.ts
ADDED
|
@@ -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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"}
|