@hypercli.com/sdk 0.9.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 (193) hide show
  1. package/README.md +629 -0
  2. package/dist/acp-driver.d.ts +72 -0
  3. package/dist/acp-driver.d.ts.map +1 -0
  4. package/dist/acp-driver.js +147 -0
  5. package/dist/acp-driver.js.map +1 -0
  6. package/dist/acp-pool.d.ts +70 -0
  7. package/dist/acp-pool.d.ts.map +1 -0
  8. package/dist/acp-pool.js +181 -0
  9. package/dist/acp-pool.js.map +1 -0
  10. package/dist/acp.d.ts +179 -0
  11. package/dist/acp.d.ts.map +1 -0
  12. package/dist/acp.js +487 -0
  13. package/dist/acp.js.map +1 -0
  14. package/dist/agent-persona.d.ts +68 -0
  15. package/dist/agent-persona.d.ts.map +1 -0
  16. package/dist/agent-persona.js +78 -0
  17. package/dist/agent-persona.js.map +1 -0
  18. package/dist/agent-slots.d.ts +18 -0
  19. package/dist/agent-slots.d.ts.map +1 -0
  20. package/dist/agent-slots.js +24 -0
  21. package/dist/agent-slots.js.map +1 -0
  22. package/dist/agent-urls.d.ts +47 -0
  23. package/dist/agent-urls.d.ts.map +1 -0
  24. package/dist/agent-urls.js +178 -0
  25. package/dist/agent-urls.js.map +1 -0
  26. package/dist/agent.d.ts +482 -0
  27. package/dist/agent.d.ts.map +1 -0
  28. package/dist/agent.js +926 -0
  29. package/dist/agent.js.map +1 -0
  30. package/dist/agents.d.ts +1452 -0
  31. package/dist/agents.d.ts.map +1 -0
  32. package/dist/agents.js +4022 -0
  33. package/dist/agents.js.map +1 -0
  34. package/dist/billing.d.ts +72 -0
  35. package/dist/billing.d.ts.map +1 -0
  36. package/dist/billing.js +93 -0
  37. package/dist/billing.js.map +1 -0
  38. package/dist/browser-jobs.d.ts +24 -0
  39. package/dist/browser-jobs.d.ts.map +1 -0
  40. package/dist/browser-jobs.js +209 -0
  41. package/dist/browser-jobs.js.map +1 -0
  42. package/dist/browser.d.ts +41 -0
  43. package/dist/browser.d.ts.map +1 -0
  44. package/dist/browser.js +57 -0
  45. package/dist/browser.js.map +1 -0
  46. package/dist/buzz-activity.d.ts +169 -0
  47. package/dist/buzz-activity.d.ts.map +1 -0
  48. package/dist/buzz-activity.js +844 -0
  49. package/dist/buzz-activity.js.map +1 -0
  50. package/dist/channels.d.ts +99 -0
  51. package/dist/channels.d.ts.map +1 -0
  52. package/dist/channels.js +27 -0
  53. package/dist/channels.js.map +1 -0
  54. package/dist/chat-integrations.d.ts +44 -0
  55. package/dist/chat-integrations.d.ts.map +1 -0
  56. package/dist/chat-integrations.js +138 -0
  57. package/dist/chat-integrations.js.map +1 -0
  58. package/dist/client.d.ts +88 -0
  59. package/dist/client.d.ts.map +1 -0
  60. package/dist/client.js +144 -0
  61. package/dist/client.js.map +1 -0
  62. package/dist/config.d.ts +44 -0
  63. package/dist/config.d.ts.map +1 -0
  64. package/dist/config.js +192 -0
  65. package/dist/config.js.map +1 -0
  66. package/dist/connectors.d.ts +80 -0
  67. package/dist/connectors.d.ts.map +1 -0
  68. package/dist/connectors.js +2 -0
  69. package/dist/connectors.js.map +1 -0
  70. package/dist/errors.d.ts +16 -0
  71. package/dist/errors.d.ts.map +1 -0
  72. package/dist/errors.js +26 -0
  73. package/dist/errors.js.map +1 -0
  74. package/dist/files.d.ts +60 -0
  75. package/dist/files.d.ts.map +1 -0
  76. package/dist/files.js +128 -0
  77. package/dist/files.js.map +1 -0
  78. package/dist/http.d.ts +56 -0
  79. package/dist/http.d.ts.map +1 -0
  80. package/dist/http.js +362 -0
  81. package/dist/http.js.map +1 -0
  82. package/dist/index.d.ts +49 -0
  83. package/dist/index.d.ts.map +1 -0
  84. package/dist/index.js +64 -0
  85. package/dist/index.js.map +1 -0
  86. package/dist/instances.d.ts +94 -0
  87. package/dist/instances.d.ts.map +1 -0
  88. package/dist/instances.js +197 -0
  89. package/dist/instances.js.map +1 -0
  90. package/dist/integrations.d.ts +111 -0
  91. package/dist/integrations.d.ts.map +1 -0
  92. package/dist/integrations.js +206 -0
  93. package/dist/integrations.js.map +1 -0
  94. package/dist/job/base.d.ts +86 -0
  95. package/dist/job/base.d.ts.map +1 -0
  96. package/dist/job/base.js +206 -0
  97. package/dist/job/base.js.map +1 -0
  98. package/dist/job/comfyui.d.ts +259 -0
  99. package/dist/job/comfyui.d.ts.map +1 -0
  100. package/dist/job/comfyui.js +1563 -0
  101. package/dist/job/comfyui.js.map +1 -0
  102. package/dist/job/gradio.d.ts +48 -0
  103. package/dist/job/gradio.d.ts.map +1 -0
  104. package/dist/job/gradio.js +90 -0
  105. package/dist/job/gradio.js.map +1 -0
  106. package/dist/job-codecs.d.ts +66 -0
  107. package/dist/job-codecs.d.ts.map +1 -0
  108. package/dist/job-codecs.js +132 -0
  109. package/dist/job-codecs.js.map +1 -0
  110. package/dist/jobs.d.ts +148 -0
  111. package/dist/jobs.d.ts.map +1 -0
  112. package/dist/jobs.js +480 -0
  113. package/dist/jobs.js.map +1 -0
  114. package/dist/keys.d.ts +99 -0
  115. package/dist/keys.d.ts.map +1 -0
  116. package/dist/keys.js +145 -0
  117. package/dist/keys.js.map +1 -0
  118. package/dist/logs.d.ts +54 -0
  119. package/dist/logs.d.ts.map +1 -0
  120. package/dist/logs.js +256 -0
  121. package/dist/logs.js.map +1 -0
  122. package/dist/managed-context.d.ts +20 -0
  123. package/dist/managed-context.d.ts.map +1 -0
  124. package/dist/managed-context.js +95 -0
  125. package/dist/managed-context.js.map +1 -0
  126. package/dist/mcp.d.ts +7 -0
  127. package/dist/mcp.d.ts.map +1 -0
  128. package/dist/mcp.js +8 -0
  129. package/dist/mcp.js.map +1 -0
  130. package/dist/memory.d.ts +87 -0
  131. package/dist/memory.d.ts.map +1 -0
  132. package/dist/memory.js +79 -0
  133. package/dist/memory.js.map +1 -0
  134. package/dist/models.d.ts +15 -0
  135. package/dist/models.d.ts.map +1 -0
  136. package/dist/models.js +19 -0
  137. package/dist/models.js.map +1 -0
  138. package/dist/openclaw-control-ui-origin.d.ts +23 -0
  139. package/dist/openclaw-control-ui-origin.d.ts.map +1 -0
  140. package/dist/openclaw-control-ui-origin.js +53 -0
  141. package/dist/openclaw-control-ui-origin.js.map +1 -0
  142. package/dist/renders.d.ts +187 -0
  143. package/dist/renders.d.ts.map +1 -0
  144. package/dist/renders.js +360 -0
  145. package/dist/renders.js.map +1 -0
  146. package/dist/routines.d.ts +59 -0
  147. package/dist/routines.d.ts.map +1 -0
  148. package/dist/routines.js +135 -0
  149. package/dist/routines.js.map +1 -0
  150. package/dist/runners.d.ts +61 -0
  151. package/dist/runners.d.ts.map +1 -0
  152. package/dist/runners.js +127 -0
  153. package/dist/runners.js.map +1 -0
  154. package/dist/sessions.d.ts +280 -0
  155. package/dist/sessions.d.ts.map +1 -0
  156. package/dist/sessions.js +292 -0
  157. package/dist/sessions.js.map +1 -0
  158. package/dist/skills.d.ts +170 -0
  159. package/dist/skills.d.ts.map +1 -0
  160. package/dist/skills.js +2 -0
  161. package/dist/skills.js.map +1 -0
  162. package/dist/user.d.ts +78 -0
  163. package/dist/user.d.ts.map +1 -0
  164. package/dist/user.js +143 -0
  165. package/dist/user.js.map +1 -0
  166. package/dist/version.d.ts +2 -0
  167. package/dist/version.d.ts.map +1 -0
  168. package/dist/version.js +3 -0
  169. package/dist/version.js.map +1 -0
  170. package/dist/voice-session.d.ts +66 -0
  171. package/dist/voice-session.d.ts.map +1 -0
  172. package/dist/voice-session.js +366 -0
  173. package/dist/voice-session.js.map +1 -0
  174. package/dist/voice-transcription-session.d.ts +64 -0
  175. package/dist/voice-transcription-session.d.ts.map +1 -0
  176. package/dist/voice-transcription-session.js +228 -0
  177. package/dist/voice-transcription-session.js.map +1 -0
  178. package/dist/voice.d.ts +62 -0
  179. package/dist/voice.d.ts.map +1 -0
  180. package/dist/voice.js +134 -0
  181. package/dist/voice.js.map +1 -0
  182. package/dist/workspace-tomd.d.ts +61 -0
  183. package/dist/workspace-tomd.d.ts.map +1 -0
  184. package/dist/workspace-tomd.js +177 -0
  185. package/dist/workspace-tomd.js.map +1 -0
  186. package/dist/workspaces.d.ts +255 -0
  187. package/dist/workspaces.d.ts.map +1 -0
  188. package/dist/workspaces.js +653 -0
  189. package/dist/workspaces.js.map +1 -0
  190. package/package.json +115 -0
  191. package/runtime/config-require.browser.js +4 -0
  192. package/runtime/config-require.d.ts +2 -0
  193. package/runtime/config-require.node.js +8 -0
@@ -0,0 +1,360 @@
1
+ import { APIError } from './errors.js';
2
+ function renderFromDict(data) {
3
+ return {
4
+ renderId: data.id || data.render_id || '',
5
+ state: data.state || '',
6
+ template: data.template || data.meta?.template || null,
7
+ renderType: data.type || data.render_type || null,
8
+ tags: Array.isArray(data.tags) ? data.tags : null,
9
+ resultUrl: data.result_url || null,
10
+ error: data.error || null,
11
+ createdAt: data.created_at || null,
12
+ startedAt: data.started_at || null,
13
+ completedAt: data.completed_at || null,
14
+ };
15
+ }
16
+ function renderStatusFromDict(data) {
17
+ return {
18
+ renderId: data.id || data.render_id || '',
19
+ state: data.state || '',
20
+ progress: data.progress ?? null,
21
+ };
22
+ }
23
+ export class Renders {
24
+ http;
25
+ authHttp;
26
+ static DEFAULT_WAIT_TIMEOUT = 3600_000;
27
+ static DEFAULT_QUEUE_GRACE = 1800_000;
28
+ static DEFAULT_ACTIVE_GRACE = 300_000;
29
+ authMeCache = null;
30
+ constructor(http, authHttp = http) {
31
+ this.http = http;
32
+ this.authHttp = authHttp;
33
+ }
34
+ async authMe() {
35
+ if (this.authMeCache === null || this.authMeCache === undefined) {
36
+ this.authMeCache = await this.authHttp.get('/api/auth/me');
37
+ }
38
+ return this.authMeCache;
39
+ }
40
+ async supportsSubscriptionFamily(family, resource) {
41
+ try {
42
+ const authMe = await this.authMe();
43
+ const capabilities = new Set(Array.isArray(authMe.capabilities) ? authMe.capabilities : []);
44
+ if (capabilities.has(`${family}:*`)) {
45
+ return true;
46
+ }
47
+ if (resource && capabilities.has(`${family}:${resource}`)) {
48
+ return true;
49
+ }
50
+ if (!authMe?.has_active_subscription) {
51
+ return false;
52
+ }
53
+ return authMe.auth_type === 'user';
54
+ }
55
+ catch (error) {
56
+ if (error instanceof APIError) {
57
+ return false;
58
+ }
59
+ throw error;
60
+ }
61
+ }
62
+ async postFlow(flowType, payload) {
63
+ const primary = (await this.supportsSubscriptionFamily('flows', flowType))
64
+ ? `/agents/flow/${flowType}`
65
+ : `/api/flow/${flowType}`;
66
+ try {
67
+ return await this.http.post(primary, payload);
68
+ }
69
+ catch (error) {
70
+ if (primary.startsWith('/agents/flow/') && error instanceof APIError && (error.statusCode === 403 || error.statusCode === 404)) {
71
+ return await this.http.post(`/api/flow/${flowType}`, payload);
72
+ }
73
+ throw error;
74
+ }
75
+ }
76
+ async getRender(renderId, status = false) {
77
+ const suffix = status ? '/status' : '';
78
+ const primary = (await this.supportsSubscriptionFamily('flows'))
79
+ ? `/agents/flow/renders/${renderId}${suffix}`
80
+ : `/api/flow/renders/${renderId}${suffix}`;
81
+ try {
82
+ return await this.http.get(primary);
83
+ }
84
+ catch (error) {
85
+ if (primary.startsWith('/agents/flow/') && error instanceof APIError && (error.statusCode === 403 || error.statusCode === 404)) {
86
+ return await this.http.get(`/api/flow/renders/${renderId}${suffix}`);
87
+ }
88
+ throw error;
89
+ }
90
+ }
91
+ async deleteRender(renderId) {
92
+ const primary = (await this.supportsSubscriptionFamily('flows'))
93
+ ? `/agents/flow/renders/${renderId}`
94
+ : `/api/flow/renders/${renderId}`;
95
+ try {
96
+ return await this.http.delete(primary);
97
+ }
98
+ catch (error) {
99
+ if (primary.startsWith('/agents/flow/') && error instanceof APIError && (error.statusCode === 403 || error.statusCode === 404)) {
100
+ return await this.http.delete(`/api/flow/renders/${renderId}`);
101
+ }
102
+ throw error;
103
+ }
104
+ }
105
+ /**
106
+ * List all renders
107
+ */
108
+ async list(options) {
109
+ const params = {};
110
+ if (options?.state)
111
+ params.state = options.state;
112
+ if (options?.template)
113
+ params.template = options.template;
114
+ if (options?.type)
115
+ params.type = options.type;
116
+ if (options?.tags?.length) {
117
+ params.tag = [...options.tags];
118
+ }
119
+ const data = await this.http.get('/api/renders', params);
120
+ const items = typeof data === 'object' && data.items ? data.items : data;
121
+ return (items || []).map(renderFromDict);
122
+ }
123
+ /**
124
+ * Get render details
125
+ */
126
+ async get(renderId) {
127
+ const data = await this.getRender(renderId);
128
+ return renderFromDict(data);
129
+ }
130
+ /**
131
+ * Create a new render
132
+ */
133
+ async create(params, renderType = 'comfyui', notifyUrl, tags) {
134
+ const payload = {
135
+ type: renderType,
136
+ params,
137
+ };
138
+ if (notifyUrl) {
139
+ payload.notify_url = notifyUrl;
140
+ }
141
+ if (tags?.length) {
142
+ payload.tags = [...tags];
143
+ }
144
+ const data = await this.http.post('/api/renders', payload);
145
+ return renderFromDict(data);
146
+ }
147
+ /**
148
+ * Cancel a render
149
+ */
150
+ async cancel(renderId) {
151
+ return await this.deleteRender(renderId);
152
+ }
153
+ /**
154
+ * Get render status (lightweight polling endpoint)
155
+ */
156
+ async status(renderId) {
157
+ const data = await this.getRender(renderId, true);
158
+ return renderStatusFromDict(data);
159
+ }
160
+ async wait(renderId, options) {
161
+ const timeoutMs = options?.timeoutMs ?? Renders.DEFAULT_WAIT_TIMEOUT;
162
+ const pollIntervalMs = options?.pollIntervalMs ?? 5000;
163
+ const queueGraceMs = options?.queueGraceMs ?? Renders.DEFAULT_QUEUE_GRACE;
164
+ const activeGraceMs = options?.activeGraceMs ?? Renders.DEFAULT_ACTIVE_GRACE;
165
+ let deadline = Date.now() + timeoutMs;
166
+ let queueGraceUsed = false;
167
+ let activeGraceUsed = false;
168
+ let lastRender = null;
169
+ while (true) {
170
+ const render = await this.get(renderId);
171
+ lastRender = render;
172
+ const state = (render.state || '').toLowerCase();
173
+ if (state === 'completed' || state === 'failed' || state === 'cancelled') {
174
+ return render;
175
+ }
176
+ const now = Date.now();
177
+ if (now >= deadline) {
178
+ const startedAt = this.parseRenderTimestamp(render.startedAt);
179
+ if (!queueGraceUsed && (startedAt === null || startedAt === undefined)) {
180
+ queueGraceUsed = true;
181
+ deadline = now + queueGraceMs;
182
+ }
183
+ else if (!activeGraceUsed && startedAt !== null && startedAt !== undefined) {
184
+ activeGraceUsed = true;
185
+ deadline = Math.max(deadline, startedAt + activeGraceMs);
186
+ }
187
+ else {
188
+ throw new Error(`Render ${renderId} did not complete within ${(timeoutMs / 1000).toFixed(0)}s ` +
189
+ `(+${(queueGraceMs / 1000).toFixed(0)}s queue grace, +${(activeGraceMs / 1000).toFixed(0)}s active grace); ` +
190
+ `lastRender=${JSON.stringify(lastRender)}`);
191
+ }
192
+ }
193
+ await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
194
+ }
195
+ }
196
+ // =========================================================================
197
+ // Flow endpoints - simplified interfaces
198
+ // =========================================================================
199
+ parseRenderTimestamp(value) {
200
+ if (value === null || value === undefined)
201
+ return null;
202
+ if (typeof value === 'number')
203
+ return value;
204
+ if (typeof value === 'string') {
205
+ const parsed = Date.parse(value);
206
+ return Number.isNaN(parsed) ? null : parsed;
207
+ }
208
+ return null;
209
+ }
210
+ async flow(flowType, params) {
211
+ // Filter out null/undefined values
212
+ const payload = {};
213
+ for (const [key, value] of Object.entries(params)) {
214
+ if (value !== null && value !== undefined) {
215
+ payload[key] = value;
216
+ }
217
+ }
218
+ const data = await this.postFlow(flowType, payload);
219
+ return renderFromDict(data);
220
+ }
221
+ /**
222
+ * Generate an image using Qwen-Image
223
+ */
224
+ async textToImage(options) {
225
+ return this.flow('text-to-image', {
226
+ prompt: options.prompt,
227
+ negative: options.negative,
228
+ width: options.width,
229
+ height: options.height,
230
+ notify_url: options.notifyUrl,
231
+ });
232
+ }
233
+ /**
234
+ * Generate an image using HiDream I1 Full
235
+ */
236
+ async textToImageHidream(options) {
237
+ return this.flow('text-to-image-hidream', {
238
+ prompt: options.prompt,
239
+ negative: options.negative,
240
+ width: options.width,
241
+ height: options.height,
242
+ notify_url: options.notifyUrl,
243
+ });
244
+ }
245
+ /**
246
+ * Generate a video using Wan 2.2 14B
247
+ */
248
+ async textToVideo(options) {
249
+ return this.flow('text-to-video', {
250
+ prompt: options.prompt,
251
+ negative: options.negative,
252
+ width: options.width,
253
+ height: options.height,
254
+ notify_url: options.notifyUrl,
255
+ });
256
+ }
257
+ /**
258
+ * Animate an image using Wan 2.2 Animate
259
+ */
260
+ async imageToVideo(options) {
261
+ return this.flow('image-to-video', {
262
+ prompt: options.prompt,
263
+ image_url: options.imageUrl,
264
+ file_ids: options.fileIds,
265
+ negative: options.negative,
266
+ width: options.width,
267
+ height: options.height,
268
+ notify_url: options.notifyUrl,
269
+ });
270
+ }
271
+ /**
272
+ * Generate a lip-sync video using HuMo
273
+ */
274
+ async speakingVideo(options) {
275
+ return this.flow('speaking-video', {
276
+ prompt: options.prompt,
277
+ image_url: options.imageUrl,
278
+ audio_url: options.audioUrl,
279
+ file_ids: options.fileIds,
280
+ negative: options.negative,
281
+ length: options.length,
282
+ width: options.width,
283
+ height: options.height,
284
+ notify_url: options.notifyUrl,
285
+ });
286
+ }
287
+ /**
288
+ * Generate an audio-driven video using Wan 2.2 S2V
289
+ */
290
+ async speakingVideoWan(options) {
291
+ return this.flow('speaking-video-wan', {
292
+ prompt: options.prompt,
293
+ image_url: options.imageUrl,
294
+ audio_url: options.audioUrl,
295
+ negative: options.negative,
296
+ width: options.width,
297
+ height: options.height,
298
+ notify_url: options.notifyUrl,
299
+ });
300
+ }
301
+ /**
302
+ * Transform images using Qwen Image Edit
303
+ */
304
+ async imageToImage(options) {
305
+ return this.flow('image-to-image', {
306
+ prompt: options.prompt,
307
+ image_urls: options.imageUrls,
308
+ file_ids: options.fileIds,
309
+ negative: options.negative,
310
+ width: options.width,
311
+ height: options.height,
312
+ notify_url: options.notifyUrl,
313
+ });
314
+ }
315
+ /**
316
+ * Generate video morphing between two images using Wan 2.2
317
+ */
318
+ async firstLastFrameVideo(options) {
319
+ return this.flow('first-last-frame-video', {
320
+ prompt: options.prompt,
321
+ start_image_url: options.startImageUrl,
322
+ end_image_url: options.endImageUrl,
323
+ file_ids: options.fileIds,
324
+ negative: options.negative,
325
+ width: options.width,
326
+ height: options.height,
327
+ notify_url: options.notifyUrl,
328
+ });
329
+ }
330
+ /**
331
+ * Transcribe audio/video to text using WhisperX
332
+ */
333
+ async audioToText(options) {
334
+ return this.flow('audio-to-text', {
335
+ audio_url: options.audioUrl,
336
+ file_ids: options.fileIds,
337
+ notify_url: options.notifyUrl,
338
+ });
339
+ }
340
+ /**
341
+ * Generate speech from text using Qwen3-TTS
342
+ */
343
+ async textToSpeech(options) {
344
+ return this.flow('text-to-speech', {
345
+ text: options.text,
346
+ mode: options.mode,
347
+ language: options.language,
348
+ speaker: options.speaker,
349
+ style: options.style,
350
+ model_size: options.modelSize,
351
+ voice_description: options.voiceDescription,
352
+ ref_audio_url: options.refAudioUrl,
353
+ file_ids: options.fileIds,
354
+ ref_text: options.refText,
355
+ use_xvector_only: options.useXvectorOnly,
356
+ notify_url: options.notifyUrl,
357
+ });
358
+ }
359
+ }
360
+ //# sourceMappingURL=renders.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renders.js","sourceRoot":"","sources":["../src/renders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ export declare function deriveRoutinesApiBase(agentsApiBase?: string): string;
2
+ export interface Routine {
3
+ id: string;
4
+ userId: string;
5
+ agentId: string;
6
+ cron: string | null;
7
+ prompt: string;
8
+ enabled: boolean;
9
+ name: string | null;
10
+ runAt: string | null;
11
+ /** Bound ACP session the routine resumes; null starts a new session per run. */
12
+ sessionId: string | null;
13
+ nextRunAt: string | null;
14
+ createdAt: string | null;
15
+ updatedAt: string | null;
16
+ }
17
+ export interface RoutineCreateOptions {
18
+ agentId: string;
19
+ prompt: string;
20
+ cron?: string;
21
+ runAt?: string;
22
+ name?: string;
23
+ /** Bind the routine to an existing ACP session; omitted runs a fresh session. */
24
+ sessionId?: string;
25
+ enabled?: boolean;
26
+ }
27
+ export interface RoutineUpdateOptions {
28
+ agentId?: string;
29
+ /** Empty string clears the schedule field server-side (sent as JSON null). */
30
+ cron?: string;
31
+ /** Empty string clears the schedule field server-side (sent as JSON null). */
32
+ runAt?: string;
33
+ prompt?: string;
34
+ enabled?: boolean;
35
+ /** Empty string clears the name server-side (sent as JSON null). */
36
+ name?: string;
37
+ /** Empty string clears the session binding server-side (sent as JSON null). */
38
+ sessionId?: string;
39
+ }
40
+ export declare class RoutinesAPI {
41
+ private apiBase;
42
+ private apiKey;
43
+ private timeout;
44
+ constructor(apiKey: string, options?: {
45
+ apiBase?: string;
46
+ agentsApiBase?: string;
47
+ timeout?: number;
48
+ });
49
+ private headers;
50
+ private request;
51
+ list(options?: {
52
+ agentId?: string;
53
+ }): Promise<Routine[]>;
54
+ get(routineId: string): Promise<Routine>;
55
+ create(body: RoutineCreateOptions): Promise<Routine>;
56
+ update(routineId: string, body: RoutineUpdateOptions): Promise<Routine>;
57
+ delete(routineId: string): Promise<void>;
58
+ }
59
+ //# sourceMappingURL=routines.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routines.d.ts","sourceRoot":"","sources":["../src/routines.ts"],"names":[],"mappings":"AAMA,wBAAgB,qBAAqB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAWpE;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,gFAAgF;IAChF,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iFAAiF;IACjF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,8EAA8E;IAC9E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiCD,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO;IASxG,OAAO,CAAC,OAAO;YAOD,OAAO;IAsBf,IAAI,CAAC,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAU5D,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxC,MAAM,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAYpD,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,OAAO,CAAC;IAcvE,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAG/C"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * Routines API - scheduled prompts for agents.
3
+ */
4
+ import { requestWithRetry, responseAPIError } from './http.js';
5
+ import { getAgentsApiBaseUrl } from './config.js';
6
+ export function deriveRoutinesApiBase(agentsApiBase) {
7
+ const raw = (agentsApiBase || getAgentsApiBaseUrl()).replace(/\/$/, '');
8
+ const url = new URL(raw.includes('://') ? raw : `https://${raw}`);
9
+ let path = url.pathname.replace(/\/$/, '');
10
+ if (path.endsWith('/routines')) {
11
+ return `${url.protocol}//${url.host}${path}`;
12
+ }
13
+ if (path.endsWith('/agents')) {
14
+ path = path.slice(0, -'/agents'.length);
15
+ }
16
+ return `${url.protocol}//${url.host}${path}/routines`;
17
+ }
18
+ function routineFromDict(data) {
19
+ return {
20
+ id: String(data?.id || ''),
21
+ userId: String(data?.user_id || data?.userId || ''),
22
+ agentId: String(data?.agent_id || data?.agentId || ''),
23
+ cron: data?.cron ?? null,
24
+ prompt: data?.prompt || '',
25
+ enabled: Boolean(data?.enabled ?? false),
26
+ name: data?.name ?? null,
27
+ runAt: data?.run_at ?? data?.runAt ?? null,
28
+ sessionId: data?.session_id ?? data?.sessionId ?? null,
29
+ nextRunAt: data?.next_run_at ?? data?.nextRunAt ?? null,
30
+ createdAt: data?.created_at ?? data?.createdAt ?? null,
31
+ updatedAt: data?.updated_at ?? data?.updatedAt ?? null,
32
+ };
33
+ }
34
+ async function handleResponse(response, method) {
35
+ if (response.status >= 400) {
36
+ throw await responseAPIError(response, method);
37
+ }
38
+ if (response.status === 204 || response.status === 205)
39
+ return undefined;
40
+ const text = await response.text();
41
+ if (!text)
42
+ return undefined;
43
+ return JSON.parse(text);
44
+ }
45
+ function encodeRef(value) {
46
+ return encodeURIComponent(value);
47
+ }
48
+ export class RoutinesAPI {
49
+ apiBase;
50
+ apiKey;
51
+ timeout;
52
+ constructor(apiKey, options = {}) {
53
+ if (!apiKey) {
54
+ throw new Error('API key required for routines');
55
+ }
56
+ this.apiKey = apiKey;
57
+ this.apiBase = (options.apiBase || deriveRoutinesApiBase(options.agentsApiBase)).replace(/\/$/, '');
58
+ this.timeout = options.timeout ?? 30000;
59
+ }
60
+ headers() {
61
+ return {
62
+ Authorization: `Bearer ${this.apiKey}`,
63
+ 'Content-Type': 'application/json',
64
+ };
65
+ }
66
+ async request(method, path, body, params) {
67
+ let url = `${this.apiBase}${path}`;
68
+ if (params) {
69
+ const query = new URLSearchParams(params).toString();
70
+ if (query)
71
+ url = `${url}?${query}`;
72
+ }
73
+ const response = await requestWithRetry({
74
+ method,
75
+ url,
76
+ headers: this.headers(),
77
+ body,
78
+ retries: method === 'GET' ? 3 : 1,
79
+ timeout: this.timeout,
80
+ });
81
+ return handleResponse(response, method);
82
+ }
83
+ async list(options = {}) {
84
+ const params = options.agentId !== undefined ? { agent_id: options.agentId } : undefined;
85
+ const data = await this.request('GET', '', undefined, params);
86
+ const items = Array.isArray(data) ? data : Array.isArray(data?.routines) ? data.routines : null;
87
+ if (!items) {
88
+ throw new Error('Routines response must be an array.');
89
+ }
90
+ return items.map(routineFromDict);
91
+ }
92
+ async get(routineId) {
93
+ const data = await this.request('GET', `/${encodeRef(routineId)}`);
94
+ return routineFromDict(data);
95
+ }
96
+ async create(body) {
97
+ const payload = { agent_id: body.agentId };
98
+ if (body.cron !== undefined)
99
+ payload.cron = body.cron;
100
+ payload.prompt = body.prompt;
101
+ payload.enabled = body.enabled ?? true;
102
+ if (body.runAt !== undefined)
103
+ payload.run_at = body.runAt;
104
+ if (body.name !== undefined)
105
+ payload.name = body.name;
106
+ if (body.sessionId !== undefined)
107
+ payload.session_id = body.sessionId;
108
+ const data = await this.request('POST', '', payload);
109
+ return routineFromDict(data);
110
+ }
111
+ async update(routineId, body) {
112
+ const payload = {};
113
+ const nullable = (value) => (value.trim() === '' ? null : value);
114
+ if (body.agentId !== undefined)
115
+ payload.agent_id = body.agentId;
116
+ if (body.cron !== undefined)
117
+ payload.cron = nullable(body.cron);
118
+ if (body.runAt !== undefined)
119
+ payload.run_at = nullable(body.runAt);
120
+ if (body.prompt !== undefined)
121
+ payload.prompt = body.prompt;
122
+ if (body.enabled !== undefined)
123
+ payload.enabled = body.enabled;
124
+ if (body.name !== undefined)
125
+ payload.name = nullable(body.name);
126
+ if (body.sessionId !== undefined)
127
+ payload.session_id = nullable(body.sessionId);
128
+ const data = await this.request('PATCH', `/${encodeRef(routineId)}`, payload);
129
+ return routineFromDict(data);
130
+ }
131
+ async delete(routineId) {
132
+ await this.request('DELETE', `/${encodeRef(routineId)}`);
133
+ }
134
+ }
135
+ //# sourceMappingURL=routines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routines.js","sourceRoot":"","sources":["../src/routines.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ export declare function deriveRunnersApiBase(agentsApiBase?: string): string;
2
+ /** User-writable cosmetic runner metadata exposed under meta.ui. */
3
+ export interface RunnerUiMeta {
4
+ displayName?: string | null;
5
+ }
6
+ export interface RunnerMeta {
7
+ ui?: RunnerUiMeta | null;
8
+ }
9
+ export interface Runner {
10
+ runnerId: string;
11
+ ownerUserId: string;
12
+ name: string;
13
+ tags: string[];
14
+ platform: {
15
+ os: string;
16
+ arch: string;
17
+ };
18
+ version: string;
19
+ createdAt: string | null;
20
+ lastSeenAt: string | null;
21
+ disconnectedAt: string | null;
22
+ meta?: RunnerMeta | null;
23
+ /** Inventory-only fields; presence state is scoped to the responding backend instance. */
24
+ connected?: boolean;
25
+ ready?: boolean;
26
+ connectionScope?: string;
27
+ }
28
+ export interface RunnerUpdateOptions {
29
+ /** Merges into meta.ui server-side; null clears the field. */
30
+ ui?: {
31
+ displayName?: string | null;
32
+ };
33
+ }
34
+ export interface RunnerRegisterOptions {
35
+ runnerId?: string;
36
+ name: string;
37
+ tags?: string[];
38
+ version: string;
39
+ platform: {
40
+ os: string;
41
+ arch: string;
42
+ };
43
+ }
44
+ export declare class RunnersAPI {
45
+ private apiBase;
46
+ private apiKey;
47
+ private timeout;
48
+ constructor(apiKey: string, options?: {
49
+ apiBase?: string;
50
+ agentsApiBase?: string;
51
+ timeout?: number;
52
+ });
53
+ private headers;
54
+ private request;
55
+ list(): Promise<Runner[]>;
56
+ /** Omit runnerId to allocate an identity. Sent once; a lost reply is uncertain. */
57
+ register(body: RunnerRegisterOptions): Promise<Runner>;
58
+ get(runnerId: string): Promise<Runner>;
59
+ update(runnerId: string, body: RunnerUpdateOptions): Promise<Runner>;
60
+ }
61
+ //# sourceMappingURL=runners.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runners.d.ts","sourceRoot":"","sources":["../src/runners.ts"],"names":[],"mappings":"AAMA,wBAAgB,oBAAoB,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAQnE;AAED,oEAAoE;AACpE,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,IAAI,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,0FAA0F;IAC1F,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,mBAAmB;IAClC,8DAA8D;IAC9D,EAAE,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACtC;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CACxC;AAqDD,qBAAa,UAAU;IACrB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;gBAEZ,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO;IASxG,OAAO,CAAC,OAAO;YAOD,OAAO;IAYf,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAS/B,mFAAmF;IAC7E,QAAQ,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAOtD,GAAG,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKtC,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC;CAU3E"}