digital-workers 2.1.3 → 2.3.0

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 (183) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +2 -0
  3. package/dist/actions.d.ts.map +1 -1
  4. package/dist/actions.js +33 -21
  5. package/dist/actions.js.map +1 -1
  6. package/dist/agent-comms.d.ts.map +1 -1
  7. package/dist/agent-comms.js +36 -25
  8. package/dist/agent-comms.js.map +1 -1
  9. package/dist/approve.d.ts +40 -8
  10. package/dist/approve.d.ts.map +1 -1
  11. package/dist/approve.js +86 -20
  12. package/dist/approve.js.map +1 -1
  13. package/dist/ask.d.ts +38 -7
  14. package/dist/ask.d.ts.map +1 -1
  15. package/dist/ask.js +85 -25
  16. package/dist/ask.js.map +1 -1
  17. package/dist/browse.d.ts +223 -0
  18. package/dist/browse.d.ts.map +1 -0
  19. package/dist/browse.js +392 -0
  20. package/dist/browse.js.map +1 -0
  21. package/dist/capability-tiers.js +3 -3
  22. package/dist/capability-tiers.js.map +1 -1
  23. package/dist/cascade-context.d.ts +28 -28
  24. package/dist/client.d.ts +162 -0
  25. package/dist/client.d.ts.map +1 -0
  26. package/dist/client.js +64 -0
  27. package/dist/client.js.map +1 -0
  28. package/dist/decide.d.ts +42 -6
  29. package/dist/decide.d.ts.map +1 -1
  30. package/dist/decide.js +54 -11
  31. package/dist/decide.js.map +1 -1
  32. package/dist/do.d.ts +36 -7
  33. package/dist/do.d.ts.map +1 -1
  34. package/dist/do.js +82 -39
  35. package/dist/do.js.map +1 -1
  36. package/dist/error-escalation.d.ts.map +1 -1
  37. package/dist/error-escalation.js +38 -38
  38. package/dist/error-escalation.js.map +1 -1
  39. package/dist/generate.d.ts +48 -7
  40. package/dist/generate.d.ts.map +1 -1
  41. package/dist/generate.js +49 -8
  42. package/dist/generate.js.map +1 -1
  43. package/dist/goals.d.ts +10 -9
  44. package/dist/goals.d.ts.map +1 -1
  45. package/dist/goals.js +30 -24
  46. package/dist/goals.js.map +1 -1
  47. package/dist/image.d.ts +189 -0
  48. package/dist/image.d.ts.map +1 -0
  49. package/dist/image.js +528 -0
  50. package/dist/image.js.map +1 -0
  51. package/dist/index.d.ts +49 -2
  52. package/dist/index.d.ts.map +1 -1
  53. package/dist/index.js +58 -2
  54. package/dist/index.js.map +1 -1
  55. package/dist/is.d.ts +45 -10
  56. package/dist/is.d.ts.map +1 -1
  57. package/dist/is.js +56 -21
  58. package/dist/is.js.map +1 -1
  59. package/dist/kpis.d.ts +24 -15
  60. package/dist/kpis.d.ts.map +1 -1
  61. package/dist/kpis.js +16 -14
  62. package/dist/kpis.js.map +1 -1
  63. package/dist/load-balancing.d.ts.map +1 -1
  64. package/dist/load-balancing.js +124 -38
  65. package/dist/load-balancing.js.map +1 -1
  66. package/dist/logger.d.ts +76 -0
  67. package/dist/logger.d.ts.map +1 -0
  68. package/dist/logger.js +39 -0
  69. package/dist/logger.js.map +1 -0
  70. package/dist/notify.d.ts +38 -9
  71. package/dist/notify.d.ts.map +1 -1
  72. package/dist/notify.js +72 -17
  73. package/dist/notify.js.map +1 -1
  74. package/dist/role.d.ts +5 -4
  75. package/dist/role.d.ts.map +1 -1
  76. package/dist/role.js +13 -10
  77. package/dist/role.js.map +1 -1
  78. package/dist/runtime.d.ts +310 -0
  79. package/dist/runtime.d.ts.map +1 -0
  80. package/dist/runtime.js +510 -0
  81. package/dist/runtime.js.map +1 -0
  82. package/dist/team.d.ts +11 -6
  83. package/dist/team.d.ts.map +1 -1
  84. package/dist/team.js +22 -15
  85. package/dist/team.js.map +1 -1
  86. package/dist/transports/email.d.ts +318 -0
  87. package/dist/transports/email.d.ts.map +1 -0
  88. package/dist/transports/email.js +779 -0
  89. package/dist/transports/email.js.map +1 -0
  90. package/dist/transports/slack.d.ts +515 -0
  91. package/dist/transports/slack.d.ts.map +1 -0
  92. package/dist/transports/slack.js +844 -0
  93. package/dist/transports/slack.js.map +1 -0
  94. package/dist/transports.d.ts.map +1 -1
  95. package/dist/transports.js +44 -25
  96. package/dist/transports.js.map +1 -1
  97. package/dist/types.d.ts +141 -19
  98. package/dist/types.d.ts.map +1 -1
  99. package/dist/types.js +5 -0
  100. package/dist/types.js.map +1 -1
  101. package/dist/utils/id.d.ts +19 -0
  102. package/dist/utils/id.d.ts.map +1 -0
  103. package/dist/utils/id.js +21 -0
  104. package/dist/utils/id.js.map +1 -0
  105. package/dist/video.d.ts +203 -0
  106. package/dist/video.d.ts.map +1 -0
  107. package/dist/video.js +528 -0
  108. package/dist/video.js.map +1 -0
  109. package/dist/worker.d.ts +343 -0
  110. package/dist/worker.d.ts.map +1 -0
  111. package/dist/worker.js +698 -0
  112. package/dist/worker.js.map +1 -0
  113. package/package.json +32 -14
  114. package/src/actions.ts +39 -30
  115. package/src/agent-comms.ts +54 -92
  116. package/src/approve.ts +91 -20
  117. package/src/ask.ts +99 -25
  118. package/src/browse.ts +627 -0
  119. package/src/capability-tiers.ts +5 -5
  120. package/src/client.ts +221 -0
  121. package/src/decide.ts +81 -35
  122. package/src/do.ts +98 -52
  123. package/src/error-escalation.ts +55 -67
  124. package/src/generate.ts +52 -18
  125. package/src/goals.ts +36 -27
  126. package/src/image.ts +816 -0
  127. package/src/index.ts +187 -2
  128. package/src/is.ts +59 -25
  129. package/src/kpis.ts +41 -36
  130. package/src/load-balancing.ts +132 -46
  131. package/src/logger.ts +93 -0
  132. package/src/notify.ts +78 -17
  133. package/src/role.ts +30 -20
  134. package/src/runtime.ts +796 -0
  135. package/src/team.ts +24 -19
  136. package/src/transports/email.ts +1160 -0
  137. package/src/transports/slack.ts +1320 -0
  138. package/src/transports.ts +58 -43
  139. package/src/types.ts +174 -46
  140. package/src/utils/id.ts +21 -0
  141. package/src/video.ts +906 -0
  142. package/src/worker.ts +1007 -0
  143. package/test/approve.test.ts +305 -0
  144. package/test/ask.test.ts +274 -0
  145. package/test/browse.test.ts +361 -0
  146. package/test/decide.test.ts +252 -0
  147. package/test/do.test.ts +144 -0
  148. package/test/error-logging.test.ts +357 -0
  149. package/test/generate.test.ts +319 -0
  150. package/test/image.test.ts +398 -0
  151. package/test/is.test.ts +287 -0
  152. package/test/load-balancing-safety.test.ts +404 -0
  153. package/test/notify.test.ts +434 -0
  154. package/test/primitives.test.ts +320 -0
  155. package/test/runtime-integration.test.ts +892 -0
  156. package/test/transports/crypto.test.ts +230 -0
  157. package/test/transports/email.test.ts +866 -0
  158. package/test/transports/id-generation.test.ts +91 -0
  159. package/test/transports/slack.test.ts +760 -0
  160. package/test/type-safety.test.ts +834 -0
  161. package/test/types.test.ts +60 -2
  162. package/test/video.test.ts +530 -0
  163. package/test/worker.test.ts +1433 -0
  164. package/tsconfig.json +4 -1
  165. package/vitest.config.ts +42 -0
  166. package/wrangler.jsonc +36 -0
  167. package/.turbo/turbo-build.log +0 -4
  168. package/LICENSE +0 -21
  169. package/src/actions.js +0 -436
  170. package/src/approve.js +0 -234
  171. package/src/ask.js +0 -226
  172. package/src/decide.js +0 -244
  173. package/src/do.js +0 -227
  174. package/src/generate.js +0 -298
  175. package/src/goals.js +0 -205
  176. package/src/index.js +0 -68
  177. package/src/is.js +0 -317
  178. package/src/kpis.js +0 -270
  179. package/src/notify.js +0 -219
  180. package/src/role.js +0 -110
  181. package/src/team.js +0 -130
  182. package/src/transports.js +0 -357
  183. package/src/types.js +0 -71
package/dist/image.js ADDED
@@ -0,0 +1,528 @@
1
+ /**
2
+ * Image generation functionality for digital workers
3
+ *
4
+ * This module provides image generation primitives within a worker context,
5
+ * with rich metadata about the generation process.
6
+ *
7
+ * - `image()` - Generates images with full metadata (model, size, style)
8
+ * - `image.variations()` - Creates variations of an existing image
9
+ * - `image.edit()` - Edits an image with a text prompt and optional mask
10
+ * - `image.upscale()` - Upscales an image to higher resolution
11
+ * - `image.style()` - Creates a curried function for a specific style
12
+ *
13
+ * The key difference from direct API calls is context and metadata:
14
+ * - digital-workers returns `ImageResult` with content + metadata
15
+ * - Direct API calls return just the generated image
16
+ *
17
+ * @module
18
+ */
19
+ /**
20
+ * Style preset configurations
21
+ */
22
+ const STYLE_PROMPTS = {
23
+ realistic: 'photorealistic, highly detailed, natural lighting, 8k resolution',
24
+ artistic: 'artistic interpretation, painterly style, creative composition',
25
+ cartoon: 'cartoon style, cel-shaded, vibrant colors, animated look',
26
+ abstract: 'abstract art, non-representational, geometric shapes, modern art',
27
+ photographic: 'professional photography, DSLR quality, sharp focus, studio lighting',
28
+ 'digital-art': 'digital art, concept art, detailed illustration, artstation trending',
29
+ cinematic: 'cinematic composition, dramatic lighting, movie scene, film grain',
30
+ };
31
+ /**
32
+ * Default configuration
33
+ */
34
+ const DEFAULTS = {
35
+ model: 'dall-e-3',
36
+ size: '1024x1024',
37
+ format: 'url',
38
+ quality: 'standard',
39
+ n: 1,
40
+ };
41
+ /**
42
+ * Get environment variable safely (works in both Node.js and Workers)
43
+ */
44
+ function getEnv(key) {
45
+ if (typeof process !== 'undefined' && process?.env) {
46
+ return process.env[key];
47
+ }
48
+ return undefined;
49
+ }
50
+ /**
51
+ * Get the image generation endpoint based on model
52
+ */
53
+ function getImageEndpoint(model) {
54
+ // Route to appropriate worker based on model
55
+ const baseUrl = getEnv('AI_GATEWAY_URL') || getEnv('IMAGE_GATEWAY_URL') || 'https://image.workers.do';
56
+ if (model.startsWith('dall-e') || model.startsWith('openai/')) {
57
+ return `${baseUrl}/openai/images/generations`;
58
+ }
59
+ if (model.startsWith('stable-diffusion') || model.startsWith('stability/')) {
60
+ return `${baseUrl}/stability/images/generations`;
61
+ }
62
+ if (model.startsWith('flux') || model.startsWith('black-forest/')) {
63
+ return `${baseUrl}/flux/images/generations`;
64
+ }
65
+ if (model.startsWith('midjourney/')) {
66
+ return `${baseUrl}/midjourney/images/generations`;
67
+ }
68
+ // Default to generic endpoint
69
+ return `${baseUrl}/images/generations`;
70
+ }
71
+ /**
72
+ * Get authorization headers
73
+ */
74
+ function getAuthHeaders() {
75
+ const headers = {};
76
+ const openaiKey = getEnv('OPENAI_API_KEY');
77
+ if (openaiKey) {
78
+ headers['Authorization'] = `Bearer ${openaiKey}`;
79
+ }
80
+ const gatewayToken = getEnv('AI_GATEWAY_TOKEN');
81
+ if (gatewayToken) {
82
+ headers['X-Gateway-Token'] = gatewayToken;
83
+ }
84
+ return headers;
85
+ }
86
+ /**
87
+ * Enhance prompt with style modifiers
88
+ */
89
+ function enhancePrompt(prompt, style) {
90
+ if (!style || !STYLE_PROMPTS[style]) {
91
+ return prompt;
92
+ }
93
+ return `${prompt}, ${STYLE_PROMPTS[style]}`;
94
+ }
95
+ /**
96
+ * Convert base64 data URL to Blob
97
+ */
98
+ function base64ToBlob(dataUrl) {
99
+ const base64Data = dataUrl.split(',')[1];
100
+ if (!base64Data) {
101
+ throw new Error('Invalid data URL format');
102
+ }
103
+ const binaryData = atob(base64Data);
104
+ const bytes = new Uint8Array(binaryData.length);
105
+ for (let i = 0; i < binaryData.length; i++) {
106
+ bytes[i] = binaryData.charCodeAt(i);
107
+ }
108
+ return new Blob([bytes], { type: 'image/png' });
109
+ }
110
+ /**
111
+ * Generate an image from a text prompt
112
+ *
113
+ * @param prompt - The text prompt describing the image to generate
114
+ * @param options - Generation options (style, size, model, etc.)
115
+ * @returns Promise resolving to ImageResult with URL and metadata
116
+ *
117
+ * @example
118
+ * ```ts
119
+ * // Generate a simple image
120
+ * const result = await image('A sunset over mountains')
121
+ * console.log(result.url) // URL to the generated image
122
+ * console.log(result.metadata.model) // Model used
123
+ * ```
124
+ *
125
+ * @example
126
+ * ```ts
127
+ * // Generate with options
128
+ * const result = await image('A portrait of a robot', {
129
+ * style: 'cinematic',
130
+ * size: '1024x1024',
131
+ * quality: 'hd',
132
+ * })
133
+ * ```
134
+ *
135
+ * @example
136
+ * ```ts
137
+ * // Generate multiple images
138
+ * const result = await image('Abstract patterns', {
139
+ * style: 'abstract',
140
+ * n: 4,
141
+ * })
142
+ * ```
143
+ */
144
+ export async function image(prompt, options = {}) {
145
+ const startTime = Date.now();
146
+ const { style, size = DEFAULTS.size, model = DEFAULTS.model, n = DEFAULTS.n, format = DEFAULTS.format, quality = DEFAULTS.quality, negativePrompt, seed, parameters = {}, } = options;
147
+ const enhancedPrompt = enhancePrompt(prompt, style);
148
+ const endpoint = getImageEndpoint(model);
149
+ // Build the request payload
150
+ const payload = {
151
+ prompt: enhancedPrompt,
152
+ size,
153
+ n,
154
+ response_format: format === 'url' ? 'url' : format === 'b64_json' ? 'b64_json' : 'url',
155
+ ...parameters,
156
+ };
157
+ // Add optional parameters using bracket notation for index signatures
158
+ if (quality && model.includes('dall-e-3')) {
159
+ payload['quality'] = quality;
160
+ }
161
+ if (negativePrompt) {
162
+ payload['negative_prompt'] = negativePrompt;
163
+ }
164
+ if (seed !== undefined) {
165
+ payload['seed'] = seed;
166
+ }
167
+ if (model) {
168
+ payload['model'] = model;
169
+ }
170
+ // Make the API request
171
+ const response = await fetch(endpoint, {
172
+ method: 'POST',
173
+ headers: {
174
+ 'Content-Type': 'application/json',
175
+ ...getAuthHeaders(),
176
+ },
177
+ body: JSON.stringify(payload),
178
+ });
179
+ if (!response.ok) {
180
+ const error = await response.text();
181
+ throw new Error(`Image generation failed: ${response.status} - ${error}`);
182
+ }
183
+ const apiResponse = (await response.json());
184
+ const imageData = apiResponse.data?.[0];
185
+ if (!imageData) {
186
+ throw new Error('No image data returned from API');
187
+ }
188
+ const imageUrl = imageData.url || (imageData.b64_json ? `data:image/png;base64,${imageData.b64_json}` : '');
189
+ if (!imageUrl) {
190
+ throw new Error('No image URL or data returned from API');
191
+ }
192
+ // Build metadata, only including defined values
193
+ const metadata = {
194
+ model,
195
+ size,
196
+ duration: Date.now() - startTime,
197
+ format,
198
+ quality,
199
+ };
200
+ if (style) {
201
+ metadata.style = style;
202
+ }
203
+ if (seed !== undefined) {
204
+ metadata.seed = seed;
205
+ }
206
+ const imageResult = {
207
+ url: imageUrl,
208
+ prompt,
209
+ metadata,
210
+ };
211
+ // Only add revisedPrompt if it's defined (exactOptionalPropertyTypes)
212
+ if (imageData.revised_prompt) {
213
+ imageResult.revisedPrompt = imageData.revised_prompt;
214
+ }
215
+ return imageResult;
216
+ }
217
+ /**
218
+ * Generate variations of an existing image
219
+ *
220
+ * @param imageUrl - URL or base64 of the source image
221
+ * @param options - Variation options
222
+ * @returns Promise resolving to array of ImageResults
223
+ *
224
+ * @example
225
+ * ```ts
226
+ * const variations = await image.variations('https://example.com/image.png', {
227
+ * count: 3,
228
+ * size: '1024x1024',
229
+ * })
230
+ *
231
+ * variations.forEach((v, i) => {
232
+ * console.log(`Variation ${i + 1}: ${v.url}`)
233
+ * })
234
+ * ```
235
+ */
236
+ image.variations = async function variations(imageUrl, options = {}) {
237
+ const startTime = Date.now();
238
+ const { count = 3, size = DEFAULTS.size, model = 'dall-e-2', // DALL-E 2 supports variations
239
+ format = DEFAULTS.format, } = options;
240
+ const baseUrl = getEnv('AI_GATEWAY_URL') || getEnv('IMAGE_GATEWAY_URL') || 'https://image.workers.do';
241
+ const endpoint = `${baseUrl}/openai/images/variations`;
242
+ // Build form data for image upload
243
+ const formData = new FormData();
244
+ // If it's a URL, we need to fetch the image first
245
+ if (imageUrl.startsWith('http')) {
246
+ const imageResponse = await fetch(imageUrl);
247
+ const imageBlob = await imageResponse.blob();
248
+ formData.append('image', imageBlob, 'image.png');
249
+ }
250
+ else if (imageUrl.startsWith('data:')) {
251
+ // Handle base64 data URL
252
+ const blob = base64ToBlob(imageUrl);
253
+ formData.append('image', blob, 'image.png');
254
+ }
255
+ else {
256
+ throw new Error('Invalid image URL format. Must be an HTTP URL or data URL.');
257
+ }
258
+ formData.append('n', String(count));
259
+ formData.append('size', size);
260
+ formData.append('response_format', format === 'b64_json' ? 'b64_json' : 'url');
261
+ if (model) {
262
+ formData.append('model', model);
263
+ }
264
+ const response = await fetch(endpoint, {
265
+ method: 'POST',
266
+ headers: getAuthHeaders(),
267
+ body: formData,
268
+ });
269
+ if (!response.ok) {
270
+ const error = await response.text();
271
+ throw new Error(`Image variations failed: ${response.status} - ${error}`);
272
+ }
273
+ const apiResponse = (await response.json());
274
+ if (!apiResponse.data || apiResponse.data.length === 0) {
275
+ throw new Error('No variations returned from API');
276
+ }
277
+ const duration = Date.now() - startTime;
278
+ const dataLength = apiResponse.data.length;
279
+ return apiResponse.data.map((item, index) => ({
280
+ url: item.url || (item.b64_json ? `data:image/png;base64,${item.b64_json}` : ''),
281
+ prompt: `Variation ${index + 1} of source image`,
282
+ metadata: {
283
+ model,
284
+ size,
285
+ duration: Math.round(duration / dataLength),
286
+ format,
287
+ },
288
+ }));
289
+ };
290
+ /**
291
+ * Edit an image using a text prompt and optional mask
292
+ *
293
+ * @param imageUrl - URL or base64 of the source image
294
+ * @param options - Edit options including prompt and optional mask
295
+ * @returns Promise resolving to ImageResult
296
+ *
297
+ * @example
298
+ * ```ts
299
+ * // Simple edit
300
+ * const result = await image.edit('https://example.com/image.png', {
301
+ * prompt: 'Add a rainbow in the sky',
302
+ * })
303
+ * ```
304
+ *
305
+ * @example
306
+ * ```ts
307
+ * // Edit with mask
308
+ * const result = await image.edit('https://example.com/image.png', {
309
+ * prompt: 'A cat sitting on the couch',
310
+ * mask: 'https://example.com/mask.png', // Transparent areas will be edited
311
+ * })
312
+ * ```
313
+ */
314
+ image.edit = async function edit(imageUrl, options) {
315
+ const startTime = Date.now();
316
+ const { prompt, mask, size = DEFAULTS.size, model = 'dall-e-2', // DALL-E 2 supports edits
317
+ n = 1, format = DEFAULTS.format, } = options;
318
+ const baseUrl = getEnv('AI_GATEWAY_URL') || getEnv('IMAGE_GATEWAY_URL') || 'https://image.workers.do';
319
+ const endpoint = `${baseUrl}/openai/images/edits`;
320
+ const formData = new FormData();
321
+ // Add source image
322
+ if (imageUrl.startsWith('http')) {
323
+ const imageResponse = await fetch(imageUrl);
324
+ const imageBlob = await imageResponse.blob();
325
+ formData.append('image', imageBlob, 'image.png');
326
+ }
327
+ else if (imageUrl.startsWith('data:')) {
328
+ const blob = base64ToBlob(imageUrl);
329
+ formData.append('image', blob, 'image.png');
330
+ }
331
+ else {
332
+ throw new Error('Invalid image URL format. Must be an HTTP URL or data URL.');
333
+ }
334
+ // Add mask if provided
335
+ if (mask) {
336
+ if (mask.startsWith('http')) {
337
+ const maskResponse = await fetch(mask);
338
+ const maskBlob = await maskResponse.blob();
339
+ formData.append('mask', maskBlob, 'mask.png');
340
+ }
341
+ else if (mask.startsWith('data:')) {
342
+ const maskBlob = base64ToBlob(mask);
343
+ formData.append('mask', maskBlob, 'mask.png');
344
+ }
345
+ }
346
+ formData.append('prompt', prompt);
347
+ formData.append('n', String(n));
348
+ formData.append('size', size);
349
+ formData.append('response_format', format === 'b64_json' ? 'b64_json' : 'url');
350
+ if (model) {
351
+ formData.append('model', model);
352
+ }
353
+ const response = await fetch(endpoint, {
354
+ method: 'POST',
355
+ headers: getAuthHeaders(),
356
+ body: formData,
357
+ });
358
+ if (!response.ok) {
359
+ const error = await response.text();
360
+ throw new Error(`Image edit failed: ${response.status} - ${error}`);
361
+ }
362
+ const apiResponse = (await response.json());
363
+ const imageData = apiResponse.data?.[0];
364
+ if (!imageData) {
365
+ throw new Error('No edited image returned from API');
366
+ }
367
+ const editedUrl = imageData.url || (imageData.b64_json ? `data:image/png;base64,${imageData.b64_json}` : '');
368
+ return {
369
+ url: editedUrl,
370
+ prompt,
371
+ metadata: {
372
+ model,
373
+ size,
374
+ duration: Date.now() - startTime,
375
+ format,
376
+ },
377
+ };
378
+ };
379
+ /**
380
+ * Upscale an image to a higher resolution
381
+ *
382
+ * @param imageUrl - URL or base64 of the source image
383
+ * @param options - Upscale options
384
+ * @returns Promise resolving to UpscaleResult
385
+ *
386
+ * @example
387
+ * ```ts
388
+ * const result = await image.upscale('https://example.com/small.png', {
389
+ * scale: 4,
390
+ * })
391
+ *
392
+ * console.log(`Upscaled from ${result.originalSize.width}x${result.originalSize.height}`)
393
+ * console.log(`to ${result.upscaledSize.width}x${result.upscaledSize.height}`)
394
+ * ```
395
+ */
396
+ image.upscale = async function upscale(imageUrl, options = {}) {
397
+ const startTime = Date.now();
398
+ const { scale = 2, model = 'real-esrgan', format = DEFAULTS.format, denoise } = options;
399
+ const baseUrl = getEnv('AI_GATEWAY_URL') || getEnv('IMAGE_GATEWAY_URL') || 'https://image.workers.do';
400
+ const endpoint = `${baseUrl}/upscale`;
401
+ const payload = {
402
+ image: imageUrl,
403
+ scale,
404
+ model,
405
+ response_format: format,
406
+ };
407
+ if (denoise !== undefined) {
408
+ payload['denoise'] = denoise;
409
+ }
410
+ const response = await fetch(endpoint, {
411
+ method: 'POST',
412
+ headers: {
413
+ 'Content-Type': 'application/json',
414
+ ...getAuthHeaders(),
415
+ },
416
+ body: JSON.stringify(payload),
417
+ });
418
+ if (!response.ok) {
419
+ const error = await response.text();
420
+ throw new Error(`Image upscale failed: ${response.status} - ${error}`);
421
+ }
422
+ const apiResponse = (await response.json());
423
+ const upscaledUrl = apiResponse.url || (apiResponse.b64_json ? `data:image/png;base64,${apiResponse.b64_json}` : '');
424
+ if (!upscaledUrl) {
425
+ throw new Error('No upscaled image returned from API');
426
+ }
427
+ // Extract dimensions from response or estimate
428
+ const originalWidth = apiResponse.original_width || 256;
429
+ const originalHeight = apiResponse.original_height || 256;
430
+ const upscaledWidth = apiResponse.upscaled_width || originalWidth * scale;
431
+ const upscaledHeight = apiResponse.upscaled_height || originalHeight * scale;
432
+ return {
433
+ url: upscaledUrl,
434
+ prompt: 'Upscaled image',
435
+ originalSize: {
436
+ width: originalWidth,
437
+ height: originalHeight,
438
+ },
439
+ upscaledSize: {
440
+ width: upscaledWidth,
441
+ height: upscaledHeight,
442
+ },
443
+ scaleFactor: scale,
444
+ metadata: {
445
+ model,
446
+ size: `${upscaledWidth}x${upscaledHeight}`,
447
+ duration: Date.now() - startTime,
448
+ format,
449
+ },
450
+ };
451
+ };
452
+ /**
453
+ * Create a curried function for generating images with a specific style
454
+ *
455
+ * @param style - The style preset to use
456
+ * @returns A function that generates images with the specified style
457
+ *
458
+ * @example
459
+ * ```ts
460
+ * // Create a cinematic image generator
461
+ * const cinematicImage = image.style('cinematic')
462
+ *
463
+ * const result1 = await cinematicImage('A spaceship landing on Mars')
464
+ * const result2 = await cinematicImage('A detective in a rainy city')
465
+ * // Both images will have cinematic style applied
466
+ * ```
467
+ *
468
+ * @example
469
+ * ```ts
470
+ * // Create specialized generators
471
+ * const cartoonGen = image.style('cartoon')
472
+ * const realisticGen = image.style('realistic')
473
+ * const abstractGen = image.style('abstract')
474
+ *
475
+ * // Use them throughout your app
476
+ * const cartoonAvatar = await cartoonGen('A friendly robot')
477
+ * ```
478
+ */
479
+ image.style = function style(stylePreset) {
480
+ return function styledImage(prompt, options = {}) {
481
+ return image(prompt, { ...options, style: stylePreset });
482
+ };
483
+ };
484
+ /**
485
+ * Batch generate multiple images from different prompts
486
+ *
487
+ * @param prompts - Array of prompts to generate
488
+ * @param options - Shared options for all generations
489
+ * @returns Promise resolving to array of ImageResults
490
+ *
491
+ * @example
492
+ * ```ts
493
+ * const results = await image.batch([
494
+ * 'A sunset over mountains',
495
+ * 'A forest in autumn',
496
+ * 'A city at night',
497
+ * ], { style: 'photographic' })
498
+ * ```
499
+ */
500
+ image.batch = async function batch(prompts, options = {}) {
501
+ return Promise.all(prompts.map((prompt) => image(prompt, options)));
502
+ };
503
+ /**
504
+ * Generate an image with a specific aspect ratio
505
+ *
506
+ * @param prompt - The text prompt
507
+ * @param aspectRatio - The desired aspect ratio ('portrait' | 'landscape' | 'square')
508
+ * @param options - Additional options
509
+ * @returns Promise resolving to ImageResult
510
+ *
511
+ * @example
512
+ * ```ts
513
+ * // Generate a portrait image
514
+ * const portrait = await image.aspectRatio('A professional headshot', 'portrait')
515
+ *
516
+ * // Generate a landscape image
517
+ * const landscape = await image.aspectRatio('Mountain range panorama', 'landscape')
518
+ * ```
519
+ */
520
+ image.aspectRatio = async function aspectRatio(prompt, ratio, options = {}) {
521
+ const sizeMap = {
522
+ portrait: '1024x1792',
523
+ landscape: '1792x1024',
524
+ square: '1024x1024',
525
+ };
526
+ return image(prompt, { ...options, size: sizeMap[ratio] });
527
+ };
528
+ //# sourceMappingURL=image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../src/image.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,7 +6,29 @@
6
6
  * defines a unified Worker interface that enables workflows to be designed
7
7
  * once and executed by any combination of AI and human workers.
8
8
  *
9
- * Package relationships:
9
+ * ## Worker Routing vs ai-functions Primitives
10
+ *
11
+ * **IMPORTANT:** This package exports functions that overlap in name with
12
+ * `ai-functions` primitives (do, ask, decide, approve, generate, is) but
13
+ * serve fundamentally different purposes:
14
+ *
15
+ * | Function | digital-workers | ai-functions |
16
+ * |----------|----------------|--------------|
17
+ * | `do` | Routes tasks to Workers | Direct LLM task description |
18
+ * | `ask` | Routes questions via Slack/email | LLM content for human UI |
19
+ * | `decide` | Multi-criteria decision framework | LLM-as-judge comparison |
20
+ * | `approve` | Real approval workflow via channels | LLM-generated approval content |
21
+ * | `generate` | Content generation with metadata | Core LLM generation primitive |
22
+ * | `is` | Type/schema validation with errors | Boolean assertion via LLM |
23
+ * | `notify` | Real channel delivery | (no equivalent) |
24
+ *
25
+ * **digital-workers functions are worker coordination primitives** that route
26
+ * work to AI Agents or Humans via real communication channels.
27
+ *
28
+ * **ai-functions primitives are direct LLM operations** for text generation,
29
+ * decision-making, and content creation.
30
+ *
31
+ * ## Package relationships:
10
32
  * - `autonomous-agents` - Implements Worker for AI agents
11
33
  * - `human-in-the-loop` - Implements Worker for humans
12
34
  * - `ai-workflows` - Uses digital-workers to orchestrate execution
@@ -32,12 +54,13 @@
32
54
  * const worker$ = withWorkers($)
33
55
  *
34
56
  * $.on.Expense.submitted(async (expense) => {
57
+ * // These route to REAL workers via REAL channels
35
58
  * await worker$.notify(finance, `New expense: ${expense.amount}`)
36
59
  *
37
60
  * const approval = await worker$.approve(
38
61
  * `Expense: $${expense.amount}`,
39
62
  * manager,
40
- * { via: 'slack' }
63
+ * { via: 'slack' } // Actually sends to Slack!
41
64
  * )
42
65
  *
43
66
  * if (approval.approved) {
@@ -54,17 +77,32 @@ export { registerWorkerActions, withWorkers, handleNotify, handleAsk, handleAppr
54
77
  export { Role } from './role.js';
55
78
  export { Team } from './team.js';
56
79
  export { Goals } from './goals.js';
80
+ /**
81
+ * Worker Routing Functions
82
+ *
83
+ * These functions route work to Workers (AI Agents or Humans) via real
84
+ * communication channels. They are NOT direct LLM primitives.
85
+ *
86
+ * For direct LLM primitives, use the identically-named functions from
87
+ * `ai-functions` instead. See module documentation for comparison table.
88
+ */
57
89
  export { approve } from './approve.js';
58
90
  export { ask } from './ask.js';
91
+ export { browse } from './browse.js';
59
92
  export { do } from './do.js';
60
93
  export { decide } from './decide.js';
61
94
  export { generate } from './generate.js';
95
+ export { image } from './image.js';
62
96
  export { is } from './is.js';
63
97
  export { notify } from './notify.js';
98
+ export { video } from './video.js';
64
99
  export { kpis, okrs } from './kpis.js';
65
100
  export { WorkerVerbs } from './types.js';
66
101
  export { CAPABILITY_TIERS, TIER_ORDER, compareTiers, isHigherTier, isLowerTier, getNextTier, getPreviousTier, getTierConfig, getToolsForTier, matchTierToComplexity, canExecuteAtTier, validateTierEscalation, createCapabilityProfile, TierRegistry, } from './capability-tiers.js';
67
102
  export type { CapabilityTier, CapabilityProfile, TierConfig, TierToolset, TaskComplexity, TierMatchResult, TierEscalation, EscalationValidationResult, ProfileConstraints, } from './capability-tiers.js';
103
+ export type { BrowseOptions, BrowseResult, BrowseAction, BrowseActionType, Viewport, ClickOptions, TypeOptions, ScrollOptions, ScreenshotOptions, ExtractOptions, } from './browse.js';
104
+ export type { ImageStyle, ImageSize, ImageFormat, ImageOptions, ImageResult, VariationOptions, EditOptions, UpscaleOptions, UpscaleResult, } from './image.js';
105
+ export type { VideoOptions, VideoResult, VideoResolution, VideoAspectRatio, VideoModel, VideoStyle, VideoMetadata, VideoFromImageOptions, VideoExtendOptions, VideoEditOptions, } from './video.js';
68
106
  export type { Transport, TransportConfig, MessagePayload, MessageAction, DeliveryResult, Address, TransportHandler, } from './transports.js';
69
107
  export { channelToTransport, getWorkerTransports, getTeamTransports, resolveAddress, resolveWorkerAddresses, getPrimaryAddress, registerTransport, getTransportHandler, hasTransport, listTransports, sendViaTransport, sendToMultipleTransports, buildNotifyPayload, buildAskPayload, buildApprovePayload, toDigitalToolsMessage, fromDigitalToolsMessage, MessageTypeMapping, CallTypeMapping, } from './transports.js';
70
108
  export { createCascadeContext, validateContext, enrichContext, serializeContext, deserializeContext, mergeContexts, diffContexts, createContextVersion, AgentCascadeContextSchema, AgentTierSchema, ContextVersionSchema, AgentRefSchema, TaskPrioritySchema, TaskInfoSchema, ExecutionPhaseSchema, ExecutionStateSchema, TraceEntrySchema, } from './cascade-context.js';
@@ -73,6 +111,15 @@ export { AgentMessageBus, createMessageBus, sendToAgent, broadcastToGroup, reque
73
111
  export type { AgentMessage, MessageEnvelope, MessageAck, MessageType, MessagePriority, DeliveryStatus, HandoffRequest, HandoffResult, HandoffStatus, CoordinationPattern, MessageHandler, SubscribeOptions, MessageBusOptions, SendOptions, RequestOptions, OnMessageOptions, RequestResponseOptions, FanOutOptions, FanOutResult, FanInOptions, PipelineOptions, InitiateHandoffOptions, RejectHandoffOptions, CompleteHandoffOptions, } from './agent-comms.js';
74
112
  export { createRoundRobinBalancer, createLeastBusyBalancer, createCapabilityRouter, createPriorityQueueBalancer, createAgentAvailabilityTracker, createCompositeBalancer, createRoutingRuleEngine, collectRoutingMetrics, resetRoutingMetrics, } from './load-balancing.js';
75
113
  export type { LoadBalancer, BalancerStrategy, AgentInfo, TaskRequest, RouteResult, AgentAvailability, RoutingRule, RoutingRuleCondition, RoutingMetrics, CompositeBalancerConfig, } from './load-balancing.js';
114
+ export { SlackTransport, createSlackTransport, registerSlackTransport, slackSection, slackHeader, slackDivider, slackContext, slackButton, slackActions, } from './transports/slack.js';
115
+ export type { SlackTransportConfig, SlackBlockType, SlackTextObject, SlackButtonElement, SlackConfirmDialog, SlackSectionBlock, SlackDividerBlock, SlackHeaderBlock, SlackContextBlock, SlackActionsBlock, SlackBlock, SlackMessage, SlackApiResponse, SlackPostMessageResponse, SlackUserInfoResponse, SlackConversationInfoResponse, SlackInteractionPayload, SlackActionPayload, SlackWebhookRequest, WebhookHandlerResult, } from './transports/slack.js';
116
+ export { EmailTransport, createEmailTransport, createEmailTransportWithProvider, createResendProvider, generateNotificationEmail, generateApprovalEmail, parseApprovalReply, isEmailTransportConfig, isApproved, isRejected, } from './transports/email.js';
117
+ export type { EmailProvider, EmailMessage, EmailSendResult, EmailAttachment, EmailTag, EmailTransportConfig, EmailTemplateOptions, ApprovalRequestData, ParsedEmailReply, InboundEmail, } from './transports/email.js';
76
118
  export { getErrorSeverity, getErrorCategory, createClassifiedError, classifyError, isEscalatable, preserveContext, buildErrorChain, createEscalationPolicy, getNextEscalationTier, determineEscalationPath, shouldEscalate, detectCircularEscalation, validateEscalationPath, calculateBackoff, createRetryState, shouldRetry, selectFallbackAgent, getDegradationLevel, createRecoveryState, updateRecoveryState, isRecoverable, createEscalationEngine, } from './error-escalation.js';
77
119
  export type { ErrorSeverity, ErrorCategory, ClassifiedError, ErrorContext, ErrorChain, SeverityOptions, ErrorChainOptions, EscalationPath, EscalationPolicy, EscalationPolicyOptions, EscalationRule, EscalationThreshold, EscalationResult, EscalationValidationResult as ErrorEscalationValidationResult, TierPolicyConfig, ErrorHistoryEntry, RetryConfig, RetryState, FallbackConfig, AgentForFallback, DegradationLevel, DegradationOptions, RecoveryState, RecoveryStateOptions, RecoveryStateUpdate, EscalationEngine, EscalationEngineOptions, HandleErrorOptions, EscalationMetrics, } from './error-escalation.js';
120
+ export { HumanRequestProcessor, InMemoryRequestStore, createHumanRequestProcessor, } from './runtime.js';
121
+ export type { HumanRequest, HumanRequestStore, RequestStatus, RequestType, RequestResult, CreateRequestData, UpdateRequestData, ProcessorConfig, TransportAdapters, SubmitResult, SubmitRequestData, WebhookPayload, WebhookResult, CompleteCallbackData, TimeoutCallbackData, CancelResult, } from './runtime.js';
122
+ export type { Logger } from './logger.js';
123
+ export { noopLogger, createConsoleLogger } from './logger.js';
124
+ export { generateRequestId } from './utils/id.js';
78
125
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}