@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/dist/jobs.d.ts ADDED
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Jobs API - GPU job management
3
+ */
4
+ import type { HTTPClient } from './http.js';
5
+ import WebSocket from 'ws';
6
+ export interface Job {
7
+ jobId: string;
8
+ jobKey: string;
9
+ state: string;
10
+ gpuType: string;
11
+ gpuCount: number;
12
+ region: string;
13
+ interruptible: boolean;
14
+ pricePerHour: number;
15
+ pricePerSecond: number;
16
+ dockerImage: string;
17
+ runtime: number;
18
+ hostname: string | null;
19
+ coldBoot: boolean;
20
+ createdAt: number | null;
21
+ startedAt: number | null;
22
+ completedAt: number | null;
23
+ }
24
+ export interface ExecResult {
25
+ jobId: string;
26
+ stdout: string;
27
+ stderr: string;
28
+ exitCode: number;
29
+ }
30
+ export interface GPUMetrics {
31
+ index: number;
32
+ name: string;
33
+ utilization: number;
34
+ memoryUsed: number;
35
+ memoryTotal: number;
36
+ temperature: number;
37
+ powerDraw: number;
38
+ }
39
+ export interface SystemMetrics {
40
+ cpuPercent: number;
41
+ cpuCores: number;
42
+ cpuUnixPercent: number;
43
+ memoryUsed: number;
44
+ memoryLimit: number;
45
+ }
46
+ export interface JobMetrics {
47
+ gpus: GPUMetrics[];
48
+ system: SystemMetrics | null;
49
+ }
50
+ export interface CreateJobOptions {
51
+ image: string;
52
+ command?: string;
53
+ gpuType?: string;
54
+ gpuCount?: number;
55
+ region?: string;
56
+ runtime?: number;
57
+ interruptible?: boolean;
58
+ env?: Record<string, string>;
59
+ ports?: Record<string, number>;
60
+ auth?: boolean;
61
+ registryAuth?: {
62
+ username: string;
63
+ password: string;
64
+ };
65
+ dockerfile?: string;
66
+ dryRun?: boolean;
67
+ }
68
+ export declare class Jobs {
69
+ private http;
70
+ constructor(http: HTTPClient);
71
+ /**
72
+ * List all jobs
73
+ */
74
+ list(state?: string): Promise<Job[]>;
75
+ /**
76
+ * Get job details
77
+ */
78
+ get(jobId: string): Promise<Job>;
79
+ /**
80
+ * Create a new job
81
+ */
82
+ create(options: CreateJobOptions): Promise<Job>;
83
+ /**
84
+ * Cancel a job
85
+ */
86
+ cancel(jobId: string): Promise<any>;
87
+ /**
88
+ * Extend job runtime
89
+ */
90
+ extend(jobId: string, runtime: number): Promise<Job>;
91
+ /**
92
+ * Get job logs
93
+ */
94
+ logs(jobId: string): Promise<string>;
95
+ /**
96
+ * Get job GPU metrics
97
+ */
98
+ metrics(jobId: string): Promise<JobMetrics>;
99
+ /**
100
+ * Get job auth token
101
+ */
102
+ token(jobId: string): Promise<string>;
103
+ /**
104
+ * Execute a command non-interactively on a running job container.
105
+ */
106
+ exec(jobId: string, command: string, timeout?: number): Promise<ExecResult>;
107
+ /**
108
+ * Connect to a job shell via director WebSocket proxy.
109
+ */
110
+ shellConnect(jobId: string, shell?: string): Promise<WebSocket>;
111
+ }
112
+ /**
113
+ * Check if string looks like a UUID (job ID)
114
+ */
115
+ export declare function isUuid(s: string): boolean;
116
+ /**
117
+ * Find job by UUID via direct API call
118
+ */
119
+ export declare function findById(jobs: Jobs, jobId: string): Promise<Job | null>;
120
+ /**
121
+ * Find job by hostname (exact or prefix match)
122
+ */
123
+ export declare function findByHostname(jobList: Job[], hostname: string): Job | null;
124
+ /**
125
+ * Find job by IP address (extracted from hostname)
126
+ */
127
+ export declare function findByIp(jobList: Job[], ip: string): Promise<Job | null>;
128
+ /**
129
+ * Find a job by UUID, hostname, or IP address
130
+ */
131
+ export declare function findJob(jobs: Jobs, identifier: string, state?: string): Promise<Job | null>;
132
+ //# sourceMappingURL=jobs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobs.d.ts","sourceRoot":"","sources":["../src/jobs.ts"],"names":[],"mappings":"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"}
package/dist/jobs.js ADDED
@@ -0,0 +1,244 @@
1
+ import WebSocket from 'ws';
2
+ function jobFromDict(data) {
3
+ return {
4
+ jobId: data.job_id || '',
5
+ jobKey: data.job_key || '',
6
+ state: data.state || '',
7
+ gpuType: data.gpu_type || '',
8
+ gpuCount: data.gpu_count || 1,
9
+ region: data.region || '',
10
+ interruptible: data.interruptible !== false,
11
+ pricePerHour: data.price_per_hour || 0,
12
+ pricePerSecond: data.price_per_second || 0,
13
+ dockerImage: data.docker_image || '',
14
+ runtime: data.runtime || 0,
15
+ hostname: data.hostname || null,
16
+ coldBoot: data.cold_boot ?? true,
17
+ createdAt: data.created_at || null,
18
+ startedAt: data.started_at || null,
19
+ completedAt: data.completed_at || null,
20
+ };
21
+ }
22
+ function execResultFromDict(data) {
23
+ return {
24
+ jobId: data.job_id || '',
25
+ stdout: data.stdout || '',
26
+ stderr: data.stderr || '',
27
+ exitCode: data.exit_code ?? -1,
28
+ };
29
+ }
30
+ function gpuMetricsFromDict(data) {
31
+ return {
32
+ index: data.index || 0,
33
+ name: data.name || '',
34
+ utilization: data.utilization_gpu_percent || 0,
35
+ memoryUsed: data.memory_used_mb || 0,
36
+ memoryTotal: data.memory_total_mb || 0,
37
+ temperature: data.temperature_c || 0,
38
+ powerDraw: data.power_draw_w || 0,
39
+ };
40
+ }
41
+ function systemMetricsFromDict(data) {
42
+ return {
43
+ cpuPercent: data.cpu_percent || 0,
44
+ cpuCores: data.cpu_cores || 1,
45
+ cpuUnixPercent: data.cpu_unix_percent || data.cpu_percent || 0,
46
+ memoryUsed: data.memory_used_mb || 0,
47
+ memoryLimit: data.memory_limit_mb || 0,
48
+ };
49
+ }
50
+ function jobMetricsFromDict(data) {
51
+ return {
52
+ gpus: (data.gpus || []).map(gpuMetricsFromDict),
53
+ system: data.system ? systemMetricsFromDict(data.system) : null,
54
+ };
55
+ }
56
+ export class Jobs {
57
+ http;
58
+ constructor(http) {
59
+ this.http = http;
60
+ }
61
+ /**
62
+ * List all jobs
63
+ */
64
+ async list(state) {
65
+ const params = {};
66
+ if (state) {
67
+ params.state = state;
68
+ }
69
+ const data = await this.http.get('/api/jobs', params);
70
+ // API returns {"jobs": [...], "total_count": ...}
71
+ const jobs = typeof data === 'object' && data.jobs ? data.jobs : data;
72
+ return (jobs || []).map(jobFromDict);
73
+ }
74
+ /**
75
+ * Get job details
76
+ */
77
+ async get(jobId) {
78
+ const data = await this.http.get(`/api/jobs/${jobId}`);
79
+ return jobFromDict(data);
80
+ }
81
+ /**
82
+ * Create a new job
83
+ */
84
+ async create(options) {
85
+ const { image, command, gpuType = 'l40s', gpuCount = 1, region, runtime, interruptible = true, env, ports, auth, registryAuth, dockerfile, dryRun = false, } = options;
86
+ const payload = {
87
+ docker_image: image,
88
+ gpu_type: gpuType,
89
+ gpu_count: gpuCount,
90
+ interruptible,
91
+ command: command ? Buffer.from(command).toString('base64') : '',
92
+ };
93
+ if (region)
94
+ payload.region = region;
95
+ if (runtime)
96
+ payload.runtime = runtime;
97
+ if (env)
98
+ payload.env_vars = env;
99
+ if (ports)
100
+ payload.ports = ports;
101
+ if (auth)
102
+ payload.auth = auth;
103
+ if (registryAuth)
104
+ payload.registry_auth = registryAuth;
105
+ if (dockerfile)
106
+ payload.dockerfile = dockerfile;
107
+ if (dryRun)
108
+ payload.dry_run = true;
109
+ const data = await this.http.post('/api/jobs', payload);
110
+ return jobFromDict(data);
111
+ }
112
+ /**
113
+ * Cancel a job
114
+ */
115
+ async cancel(jobId) {
116
+ return await this.http.delete(`/api/jobs/${jobId}`);
117
+ }
118
+ /**
119
+ * Extend job runtime
120
+ */
121
+ async extend(jobId, runtime) {
122
+ const data = await this.http.patch(`/api/jobs/${jobId}`, { runtime });
123
+ return jobFromDict(data);
124
+ }
125
+ /**
126
+ * Get job logs
127
+ */
128
+ async logs(jobId) {
129
+ const data = await this.http.get(`/api/jobs/${jobId}/logs`);
130
+ return data.logs || '';
131
+ }
132
+ /**
133
+ * Get job GPU metrics
134
+ */
135
+ async metrics(jobId) {
136
+ const data = await this.http.get(`/api/jobs/${jobId}/metrics`);
137
+ return jobMetricsFromDict(data);
138
+ }
139
+ /**
140
+ * Get job auth token
141
+ */
142
+ async token(jobId) {
143
+ const data = await this.http.get(`/api/jobs/${jobId}/token`);
144
+ return data.token || '';
145
+ }
146
+ /**
147
+ * Execute a command non-interactively on a running job container.
148
+ */
149
+ async exec(jobId, command, timeout = 30) {
150
+ const data = await this.http.post(`/api/jobs/${jobId}/exec`, {
151
+ command,
152
+ timeout,
153
+ });
154
+ return execResultFromDict(data);
155
+ }
156
+ /**
157
+ * Connect to a job shell via director WebSocket proxy.
158
+ */
159
+ async shellConnect(jobId, shell = '/bin/bash') {
160
+ const job = await this.get(jobId);
161
+ const wsBase = this.http.baseUrl
162
+ .replace('https://', 'wss://')
163
+ .replace('http://', 'ws://')
164
+ .replace(/\/api$/, '');
165
+ const url = `${wsBase}/orchestra/ws/shell/${jobId}?token=${encodeURIComponent(job.jobKey)}&shell=${encodeURIComponent(shell)}`;
166
+ return await new Promise((resolve, reject) => {
167
+ const ws = new WebSocket(url);
168
+ const onError = (err) => reject(err);
169
+ ws.once('error', onError);
170
+ ws.once('open', () => {
171
+ ws.off('error', onError);
172
+ resolve(ws);
173
+ });
174
+ });
175
+ }
176
+ }
177
+ // Utility functions for finding jobs
178
+ /**
179
+ * Check if string looks like a UUID (job ID)
180
+ */
181
+ export function isUuid(s) {
182
+ return s.includes('-') && s.length > 30;
183
+ }
184
+ /**
185
+ * Find job by UUID via direct API call
186
+ */
187
+ export async function findById(jobs, jobId) {
188
+ try {
189
+ return await jobs.get(jobId);
190
+ }
191
+ catch {
192
+ return null;
193
+ }
194
+ }
195
+ /**
196
+ * Find job by hostname (exact or prefix match)
197
+ */
198
+ export function findByHostname(jobList, hostname) {
199
+ for (const job of jobList) {
200
+ if (job.hostname && (job.hostname === hostname || job.hostname.startsWith(hostname))) {
201
+ return job;
202
+ }
203
+ }
204
+ return null;
205
+ }
206
+ /**
207
+ * Find job by IP address (extracted from hostname)
208
+ */
209
+ export async function findByIp(jobList, ip) {
210
+ const dns = await import('dns').then(m => m.promises);
211
+ for (const job of jobList) {
212
+ if (!job.hostname)
213
+ continue;
214
+ try {
215
+ const addresses = await dns.resolve4(job.hostname);
216
+ if (addresses.includes(ip)) {
217
+ return job;
218
+ }
219
+ }
220
+ catch {
221
+ continue;
222
+ }
223
+ }
224
+ return null;
225
+ }
226
+ /**
227
+ * Find a job by UUID, hostname, or IP address
228
+ */
229
+ export async function findJob(jobs, identifier, state) {
230
+ // Try UUID first (direct API call)
231
+ if (isUuid(identifier)) {
232
+ return await findById(jobs, identifier);
233
+ }
234
+ // Get job list for hostname/IP search
235
+ const jobList = await jobs.list(state);
236
+ // Try hostname match
237
+ const byHostname = findByHostname(jobList, identifier);
238
+ if (byHostname) {
239
+ return byHostname;
240
+ }
241
+ // Try IP match (slower, requires DNS lookup)
242
+ return await findByIp(jobList, identifier);
243
+ }
244
+ //# sourceMappingURL=jobs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"jobs.js","sourceRoot":"","sources":["../src/jobs.ts"],"names":[],"mappings":"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"}
package/dist/keys.d.ts ADDED
@@ -0,0 +1,39 @@
1
+ /**
2
+ * API Keys management
3
+ */
4
+ import type { HTTPClient } from './http.js';
5
+ export interface ApiKey {
6
+ keyId: string;
7
+ name: string;
8
+ apiKey: string | null;
9
+ apiKeyPreview: string | null;
10
+ last4: string | null;
11
+ isActive: boolean;
12
+ createdAt: string;
13
+ lastUsedAt: string | null;
14
+ }
15
+ export declare class KeysAPI {
16
+ private http;
17
+ constructor(http: HTTPClient);
18
+ /**
19
+ * Create a new API key
20
+ */
21
+ create(name?: string): Promise<ApiKey>;
22
+ /**
23
+ * List all API keys (masked)
24
+ */
25
+ list(): Promise<ApiKey[]>;
26
+ /**
27
+ * Get a specific API key (masked)
28
+ */
29
+ get(keyId: string): Promise<ApiKey>;
30
+ /**
31
+ * Deactivate an API key (irreversible)
32
+ */
33
+ disable(keyId: string): Promise<any>;
34
+ /**
35
+ * Rename an API key
36
+ */
37
+ rename(keyId: string, name: string): Promise<ApiKey>;
38
+ }
39
+ //# sourceMappingURL=keys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.d.ts","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAeD,qBAAa,OAAO;IACN,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,UAAU;IAEpC;;OAEG;IACG,MAAM,CAAC,IAAI,GAAE,MAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAKvD;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAK/B;;OAEG;IACG,GAAG,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKzC;;OAEG;IACG,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAI1C;;OAEG;IACG,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAI3D"}
package/dist/keys.js ADDED
@@ -0,0 +1,53 @@
1
+ function apiKeyFromDict(data) {
2
+ return {
3
+ keyId: data.key_id || '',
4
+ name: data.name || '',
5
+ apiKey: data.api_key || null,
6
+ apiKeyPreview: data.api_key_preview || null,
7
+ last4: data.last4 || null,
8
+ isActive: data.is_active !== false,
9
+ createdAt: data.created_at || '',
10
+ lastUsedAt: data.last_used_at || null,
11
+ };
12
+ }
13
+ export class KeysAPI {
14
+ http;
15
+ constructor(http) {
16
+ this.http = http;
17
+ }
18
+ /**
19
+ * Create a new API key
20
+ */
21
+ async create(name = 'default') {
22
+ const data = await this.http.post('/api/keys', { name });
23
+ return apiKeyFromDict(data);
24
+ }
25
+ /**
26
+ * List all API keys (masked)
27
+ */
28
+ async list() {
29
+ const data = await this.http.get('/api/keys');
30
+ return (data || []).map(apiKeyFromDict);
31
+ }
32
+ /**
33
+ * Get a specific API key (masked)
34
+ */
35
+ async get(keyId) {
36
+ const data = await this.http.get(`/api/keys/${keyId}`);
37
+ return apiKeyFromDict(data);
38
+ }
39
+ /**
40
+ * Deactivate an API key (irreversible)
41
+ */
42
+ async disable(keyId) {
43
+ return await this.http.delete(`/api/keys/${keyId}`);
44
+ }
45
+ /**
46
+ * Rename an API key
47
+ */
48
+ async rename(keyId, name) {
49
+ const data = await this.http.patch(`/api/keys/${keyId}`, { name });
50
+ return apiKeyFromDict(data);
51
+ }
52
+ }
53
+ //# sourceMappingURL=keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"AAgBA,SAAS,cAAc,CAAC,IAAS;IAC/B,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,MAAM,IAAI,EAAE;QACxB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,EAAE;QACrB,MAAM,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;QAC5B,aAAa,EAAE,IAAI,CAAC,eAAe,IAAI,IAAI;QAC3C,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;QACzB,QAAQ,EAAE,IAAI,CAAC,SAAS,KAAK,KAAK;QAClC,SAAS,EAAE,IAAI,CAAC,UAAU,IAAI,EAAE;QAChC,UAAU,EAAE,IAAI,CAAC,YAAY,IAAI,IAAI;KACtC,CAAC;AACJ,CAAC;AAED,MAAM,OAAO,OAAO;IACE;IAApB,YAAoB,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAExC;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,OAAe,SAAS;QACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAC9C,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAC1C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,GAAG,CAAC,KAAa;QACrB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC;QACvD,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,KAAa;QACzB,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM,CAAC,KAAa,EAAE,IAAY;QACtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;QACnE,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;CACF"}
package/dist/logs.d.ts ADDED
@@ -0,0 +1,54 @@
1
+ import type { HyperCLI } from './client.js';
2
+ /**
3
+ * Fetch logs via REST API (one-time call)
4
+ */
5
+ export declare function fetchLogs(client: HyperCLI, jobId: string, tail?: number): Promise<string[]>;
6
+ /**
7
+ * Async log streamer - WebSocket streaming with optional initial fetch
8
+ */
9
+ export declare class LogStream {
10
+ private client;
11
+ private jobId;
12
+ private jobKey?;
13
+ private fetchInitial;
14
+ private maxInitialLines;
15
+ private maxBuffer;
16
+ private ws;
17
+ private buffer;
18
+ private initialFetched;
19
+ private connected;
20
+ private closed;
21
+ constructor(client: HyperCLI, jobId: string, jobKey?: string | undefined, fetchInitial?: boolean, maxInitialLines?: number, maxBuffer?: number);
22
+ get status(): 'disconnected' | 'connecting' | 'connected' | 'closed';
23
+ /**
24
+ * Connect to log stream. Returns initial logs if fetchInitial=true.
25
+ */
26
+ connect(): Promise<string[]>;
27
+ /**
28
+ * Close the WebSocket connection
29
+ */
30
+ close(): Promise<void>;
31
+ /**
32
+ * Get current buffer contents (bounded, oldest may be dropped)
33
+ */
34
+ getBuffer(): string[];
35
+ /**
36
+ * Clear the buffer
37
+ */
38
+ clearBuffer(): void;
39
+ /**
40
+ * Async iterate over NEW log lines from WebSocket
41
+ */
42
+ [Symbol.asyncIterator](): AsyncGenerator<string>;
43
+ }
44
+ /**
45
+ * Stream logs until job reaches a terminal state
46
+ */
47
+ export declare function streamLogs(client: HyperCLI, jobId: string, onLine: (line: string) => void, options?: {
48
+ untilState?: Set<string>;
49
+ pollStateInterval?: number;
50
+ fetchInitial?: boolean;
51
+ fetchFinal?: boolean;
52
+ maxInitialLines?: number;
53
+ }): Promise<void>;
54
+ //# sourceMappingURL=logs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../src/logs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAO5C;;GAEG;AACH,wBAAsB,SAAS,CAC7B,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,MAAM,EACb,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,EAAE,CAAC,CAcnB;AAED;;GAEG;AACH,qBAAa,SAAS;IAQlB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,SAAS;IAZnB,OAAO,CAAC,EAAE,CAA0B;IACpC,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,MAAM,CAAS;gBAGb,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,YAAY,GAAE,OAAc,EAC5B,eAAe,GAAE,MAAkC,EACnD,SAAS,GAAE,MAA2B;IAGhD,IAAI,MAAM,IAAI,cAAc,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAKnE;IAED;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAsDlC;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAS5B;;OAEG;IACH,SAAS,IAAI,MAAM,EAAE;IAIrB;;OAEG;IACH,WAAW,IAAI,IAAI;IAInB;;OAEG;IACI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,MAAM,CAAC;CAqExD;AAED;;GAEG;AACH,wBAAsB,UAAU,CAC9B,MAAM,EAAE,QAAQ,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,EAC9B,OAAO,CAAC,EAAE;IACR,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GACA,OAAO,CAAC,IAAI,CAAC,CAoEf"}