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.
- package/CHANGELOG.md +9 -0
- package/README.md +2 -0
- package/dist/actions.d.ts.map +1 -1
- package/dist/actions.js +33 -21
- package/dist/actions.js.map +1 -1
- package/dist/agent-comms.d.ts.map +1 -1
- package/dist/agent-comms.js +36 -25
- package/dist/agent-comms.js.map +1 -1
- package/dist/approve.d.ts +40 -8
- package/dist/approve.d.ts.map +1 -1
- package/dist/approve.js +86 -20
- package/dist/approve.js.map +1 -1
- package/dist/ask.d.ts +38 -7
- package/dist/ask.d.ts.map +1 -1
- package/dist/ask.js +85 -25
- package/dist/ask.js.map +1 -1
- package/dist/browse.d.ts +223 -0
- package/dist/browse.d.ts.map +1 -0
- package/dist/browse.js +392 -0
- package/dist/browse.js.map +1 -0
- package/dist/capability-tiers.js +3 -3
- package/dist/capability-tiers.js.map +1 -1
- package/dist/cascade-context.d.ts +28 -28
- package/dist/client.d.ts +162 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +64 -0
- package/dist/client.js.map +1 -0
- package/dist/decide.d.ts +42 -6
- package/dist/decide.d.ts.map +1 -1
- package/dist/decide.js +54 -11
- package/dist/decide.js.map +1 -1
- package/dist/do.d.ts +36 -7
- package/dist/do.d.ts.map +1 -1
- package/dist/do.js +82 -39
- package/dist/do.js.map +1 -1
- package/dist/error-escalation.d.ts.map +1 -1
- package/dist/error-escalation.js +38 -38
- package/dist/error-escalation.js.map +1 -1
- package/dist/generate.d.ts +48 -7
- package/dist/generate.d.ts.map +1 -1
- package/dist/generate.js +49 -8
- package/dist/generate.js.map +1 -1
- package/dist/goals.d.ts +10 -9
- package/dist/goals.d.ts.map +1 -1
- package/dist/goals.js +30 -24
- package/dist/goals.js.map +1 -1
- package/dist/image.d.ts +189 -0
- package/dist/image.d.ts.map +1 -0
- package/dist/image.js +528 -0
- package/dist/image.js.map +1 -0
- package/dist/index.d.ts +49 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +58 -2
- package/dist/index.js.map +1 -1
- package/dist/is.d.ts +45 -10
- package/dist/is.d.ts.map +1 -1
- package/dist/is.js +56 -21
- package/dist/is.js.map +1 -1
- package/dist/kpis.d.ts +24 -15
- package/dist/kpis.d.ts.map +1 -1
- package/dist/kpis.js +16 -14
- package/dist/kpis.js.map +1 -1
- package/dist/load-balancing.d.ts.map +1 -1
- package/dist/load-balancing.js +124 -38
- package/dist/load-balancing.js.map +1 -1
- package/dist/logger.d.ts +76 -0
- package/dist/logger.d.ts.map +1 -0
- package/dist/logger.js +39 -0
- package/dist/logger.js.map +1 -0
- package/dist/notify.d.ts +38 -9
- package/dist/notify.d.ts.map +1 -1
- package/dist/notify.js +72 -17
- package/dist/notify.js.map +1 -1
- package/dist/role.d.ts +5 -4
- package/dist/role.d.ts.map +1 -1
- package/dist/role.js +13 -10
- package/dist/role.js.map +1 -1
- package/dist/runtime.d.ts +310 -0
- package/dist/runtime.d.ts.map +1 -0
- package/dist/runtime.js +510 -0
- package/dist/runtime.js.map +1 -0
- package/dist/team.d.ts +11 -6
- package/dist/team.d.ts.map +1 -1
- package/dist/team.js +22 -15
- package/dist/team.js.map +1 -1
- package/dist/transports/email.d.ts +318 -0
- package/dist/transports/email.d.ts.map +1 -0
- package/dist/transports/email.js +779 -0
- package/dist/transports/email.js.map +1 -0
- package/dist/transports/slack.d.ts +515 -0
- package/dist/transports/slack.d.ts.map +1 -0
- package/dist/transports/slack.js +844 -0
- package/dist/transports/slack.js.map +1 -0
- package/dist/transports.d.ts.map +1 -1
- package/dist/transports.js +44 -25
- package/dist/transports.js.map +1 -1
- package/dist/types.d.ts +141 -19
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +5 -0
- package/dist/types.js.map +1 -1
- package/dist/utils/id.d.ts +19 -0
- package/dist/utils/id.d.ts.map +1 -0
- package/dist/utils/id.js +21 -0
- package/dist/utils/id.js.map +1 -0
- package/dist/video.d.ts +203 -0
- package/dist/video.d.ts.map +1 -0
- package/dist/video.js +528 -0
- package/dist/video.js.map +1 -0
- package/dist/worker.d.ts +343 -0
- package/dist/worker.d.ts.map +1 -0
- package/dist/worker.js +698 -0
- package/dist/worker.js.map +1 -0
- package/package.json +32 -14
- package/src/actions.ts +39 -30
- package/src/agent-comms.ts +54 -92
- package/src/approve.ts +91 -20
- package/src/ask.ts +99 -25
- package/src/browse.ts +627 -0
- package/src/capability-tiers.ts +5 -5
- package/src/client.ts +221 -0
- package/src/decide.ts +81 -35
- package/src/do.ts +98 -52
- package/src/error-escalation.ts +55 -67
- package/src/generate.ts +52 -18
- package/src/goals.ts +36 -27
- package/src/image.ts +816 -0
- package/src/index.ts +187 -2
- package/src/is.ts +59 -25
- package/src/kpis.ts +41 -36
- package/src/load-balancing.ts +132 -46
- package/src/logger.ts +93 -0
- package/src/notify.ts +78 -17
- package/src/role.ts +30 -20
- package/src/runtime.ts +796 -0
- package/src/team.ts +24 -19
- package/src/transports/email.ts +1160 -0
- package/src/transports/slack.ts +1320 -0
- package/src/transports.ts +58 -43
- package/src/types.ts +174 -46
- package/src/utils/id.ts +21 -0
- package/src/video.ts +906 -0
- package/src/worker.ts +1007 -0
- package/test/approve.test.ts +305 -0
- package/test/ask.test.ts +274 -0
- package/test/browse.test.ts +361 -0
- package/test/decide.test.ts +252 -0
- package/test/do.test.ts +144 -0
- package/test/error-logging.test.ts +357 -0
- package/test/generate.test.ts +319 -0
- package/test/image.test.ts +398 -0
- package/test/is.test.ts +287 -0
- package/test/load-balancing-safety.test.ts +404 -0
- package/test/notify.test.ts +434 -0
- package/test/primitives.test.ts +320 -0
- package/test/runtime-integration.test.ts +892 -0
- package/test/transports/crypto.test.ts +230 -0
- package/test/transports/email.test.ts +866 -0
- package/test/transports/id-generation.test.ts +91 -0
- package/test/transports/slack.test.ts +760 -0
- package/test/type-safety.test.ts +834 -0
- package/test/types.test.ts +60 -2
- package/test/video.test.ts +530 -0
- package/test/worker.test.ts +1433 -0
- package/tsconfig.json +4 -1
- package/vitest.config.ts +42 -0
- package/wrangler.jsonc +36 -0
- package/.turbo/turbo-build.log +0 -4
- package/LICENSE +0 -21
- package/src/actions.js +0 -436
- package/src/approve.js +0 -234
- package/src/ask.js +0 -226
- package/src/decide.js +0 -244
- package/src/do.js +0 -227
- package/src/generate.js +0 -298
- package/src/goals.js +0 -205
- package/src/index.js +0 -68
- package/src/is.js +0 -317
- package/src/kpis.js +0 -270
- package/src/notify.js +0 -219
- package/src/role.js +0 -110
- package/src/team.js +0 -130
- package/src/transports.js +0 -357
- 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
|
-
*
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|