digital-workers 2.1.1 → 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 (197) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +136 -180
  3. package/dist/actions.d.ts.map +1 -1
  4. package/dist/actions.js +34 -21
  5. package/dist/actions.js.map +1 -1
  6. package/dist/agent-comms.d.ts +438 -0
  7. package/dist/agent-comms.d.ts.map +1 -0
  8. package/dist/agent-comms.js +677 -0
  9. package/dist/agent-comms.js.map +1 -0
  10. package/dist/approve.d.ts +40 -8
  11. package/dist/approve.d.ts.map +1 -1
  12. package/dist/approve.js +86 -20
  13. package/dist/approve.js.map +1 -1
  14. package/dist/ask.d.ts +38 -7
  15. package/dist/ask.d.ts.map +1 -1
  16. package/dist/ask.js +85 -25
  17. package/dist/ask.js.map +1 -1
  18. package/dist/browse.d.ts +223 -0
  19. package/dist/browse.d.ts.map +1 -0
  20. package/dist/browse.js +392 -0
  21. package/dist/browse.js.map +1 -0
  22. package/dist/capability-tiers.d.ts +230 -0
  23. package/dist/capability-tiers.d.ts.map +1 -0
  24. package/dist/capability-tiers.js +388 -0
  25. package/dist/capability-tiers.js.map +1 -0
  26. package/dist/cascade-context.d.ts +523 -0
  27. package/dist/cascade-context.d.ts.map +1 -0
  28. package/dist/cascade-context.js +494 -0
  29. package/dist/cascade-context.js.map +1 -0
  30. package/dist/client.d.ts +162 -0
  31. package/dist/client.d.ts.map +1 -0
  32. package/dist/client.js +64 -0
  33. package/dist/client.js.map +1 -0
  34. package/dist/decide.d.ts +42 -6
  35. package/dist/decide.d.ts.map +1 -1
  36. package/dist/decide.js +54 -11
  37. package/dist/decide.js.map +1 -1
  38. package/dist/do.d.ts +36 -7
  39. package/dist/do.d.ts.map +1 -1
  40. package/dist/do.js +82 -39
  41. package/dist/do.js.map +1 -1
  42. package/dist/error-escalation.d.ts +416 -0
  43. package/dist/error-escalation.d.ts.map +1 -0
  44. package/dist/error-escalation.js +656 -0
  45. package/dist/error-escalation.js.map +1 -0
  46. package/dist/generate.d.ts +48 -7
  47. package/dist/generate.d.ts.map +1 -1
  48. package/dist/generate.js +49 -8
  49. package/dist/generate.js.map +1 -1
  50. package/dist/goals.d.ts +10 -9
  51. package/dist/goals.d.ts.map +1 -1
  52. package/dist/goals.js +30 -24
  53. package/dist/goals.js.map +1 -1
  54. package/dist/image.d.ts +189 -0
  55. package/dist/image.d.ts.map +1 -0
  56. package/dist/image.js +528 -0
  57. package/dist/image.js.map +1 -0
  58. package/dist/index.d.ts +59 -2
  59. package/dist/index.d.ts.map +1 -1
  60. package/dist/index.js +92 -2
  61. package/dist/index.js.map +1 -1
  62. package/dist/is.d.ts +45 -10
  63. package/dist/is.d.ts.map +1 -1
  64. package/dist/is.js +56 -21
  65. package/dist/is.js.map +1 -1
  66. package/dist/kpis.d.ts +24 -15
  67. package/dist/kpis.d.ts.map +1 -1
  68. package/dist/kpis.js +16 -14
  69. package/dist/kpis.js.map +1 -1
  70. package/dist/load-balancing.d.ts +395 -0
  71. package/dist/load-balancing.d.ts.map +1 -0
  72. package/dist/load-balancing.js +991 -0
  73. package/dist/load-balancing.js.map +1 -0
  74. package/dist/logger.d.ts +76 -0
  75. package/dist/logger.d.ts.map +1 -0
  76. package/dist/logger.js +39 -0
  77. package/dist/logger.js.map +1 -0
  78. package/dist/notify.d.ts +38 -9
  79. package/dist/notify.d.ts.map +1 -1
  80. package/dist/notify.js +72 -17
  81. package/dist/notify.js.map +1 -1
  82. package/dist/role.d.ts +5 -4
  83. package/dist/role.d.ts.map +1 -1
  84. package/dist/role.js +13 -10
  85. package/dist/role.js.map +1 -1
  86. package/dist/runtime.d.ts +310 -0
  87. package/dist/runtime.d.ts.map +1 -0
  88. package/dist/runtime.js +510 -0
  89. package/dist/runtime.js.map +1 -0
  90. package/dist/team.d.ts +11 -6
  91. package/dist/team.d.ts.map +1 -1
  92. package/dist/team.js +22 -15
  93. package/dist/team.js.map +1 -1
  94. package/dist/transports/email.d.ts +318 -0
  95. package/dist/transports/email.d.ts.map +1 -0
  96. package/dist/transports/email.js +779 -0
  97. package/dist/transports/email.js.map +1 -0
  98. package/dist/transports/slack.d.ts +515 -0
  99. package/dist/transports/slack.d.ts.map +1 -0
  100. package/dist/transports/slack.js +844 -0
  101. package/dist/transports/slack.js.map +1 -0
  102. package/dist/transports.d.ts.map +1 -1
  103. package/dist/transports.js +44 -25
  104. package/dist/transports.js.map +1 -1
  105. package/dist/types.d.ts +149 -19
  106. package/dist/types.d.ts.map +1 -1
  107. package/dist/types.js +6 -0
  108. package/dist/types.js.map +1 -1
  109. package/dist/utils/id.d.ts +19 -0
  110. package/dist/utils/id.d.ts.map +1 -0
  111. package/dist/utils/id.js +21 -0
  112. package/dist/utils/id.js.map +1 -0
  113. package/dist/video.d.ts +203 -0
  114. package/dist/video.d.ts.map +1 -0
  115. package/dist/video.js +528 -0
  116. package/dist/video.js.map +1 -0
  117. package/dist/worker.d.ts +343 -0
  118. package/dist/worker.d.ts.map +1 -0
  119. package/dist/worker.js +698 -0
  120. package/dist/worker.js.map +1 -0
  121. package/package.json +24 -5
  122. package/src/actions.ts +48 -38
  123. package/src/agent-comms.ts +1200 -0
  124. package/src/approve.ts +91 -20
  125. package/src/ask.ts +99 -25
  126. package/src/browse.ts +627 -0
  127. package/src/capability-tiers.ts +545 -0
  128. package/src/cascade-context.ts +648 -0
  129. package/src/client.ts +221 -0
  130. package/src/decide.ts +81 -35
  131. package/src/do.ts +98 -52
  132. package/src/error-escalation.ts +1123 -0
  133. package/src/generate.ts +52 -18
  134. package/src/goals.ts +36 -27
  135. package/src/image.ts +816 -0
  136. package/src/index.ts +410 -2
  137. package/src/is.ts +59 -25
  138. package/src/kpis.ts +41 -36
  139. package/src/load-balancing.ts +1467 -0
  140. package/src/logger.ts +93 -0
  141. package/src/notify.ts +78 -17
  142. package/src/role.ts +30 -20
  143. package/src/runtime.ts +796 -0
  144. package/src/team.ts +24 -19
  145. package/src/transports/email.ts +1160 -0
  146. package/src/transports/slack.ts +1320 -0
  147. package/src/transports.ts +58 -43
  148. package/src/types.ts +182 -46
  149. package/src/utils/id.ts +21 -0
  150. package/src/video.ts +906 -0
  151. package/src/worker.ts +1007 -0
  152. package/test/agent-comms.test.ts +1397 -0
  153. package/test/approve.test.ts +305 -0
  154. package/test/ask.test.ts +274 -0
  155. package/test/browse.test.ts +361 -0
  156. package/test/capability-tiers.test.ts +631 -0
  157. package/test/cascade-context.test.ts +692 -0
  158. package/test/decide.test.ts +252 -0
  159. package/test/do.test.ts +144 -0
  160. package/test/error-escalation.test.ts +1205 -0
  161. package/test/error-logging.test.ts +357 -0
  162. package/test/generate.test.ts +319 -0
  163. package/test/image.test.ts +398 -0
  164. package/test/is.test.ts +287 -0
  165. package/test/load-balancing-safety.test.ts +404 -0
  166. package/test/load-balancing-thread-safety.test.ts +464 -0
  167. package/test/load-balancing.test.ts +1145 -0
  168. package/test/notify.test.ts +434 -0
  169. package/test/primitives.test.ts +320 -0
  170. package/test/runtime-integration.test.ts +892 -0
  171. package/test/transports/crypto.test.ts +230 -0
  172. package/test/transports/email.test.ts +866 -0
  173. package/test/transports/id-generation.test.ts +91 -0
  174. package/test/transports/slack.test.ts +760 -0
  175. package/test/type-safety.test.ts +834 -0
  176. package/test/types.test.ts +95 -2
  177. package/test/video.test.ts +530 -0
  178. package/test/worker.test.ts +1433 -0
  179. package/tsconfig.json +4 -1
  180. package/vitest.config.ts +42 -0
  181. package/wrangler.jsonc +36 -0
  182. package/.turbo/turbo-build.log +0 -5
  183. package/src/actions.js +0 -436
  184. package/src/approve.js +0 -234
  185. package/src/ask.js +0 -226
  186. package/src/decide.js +0 -244
  187. package/src/do.js +0 -227
  188. package/src/generate.js +0 -298
  189. package/src/goals.js +0 -205
  190. package/src/index.js +0 -68
  191. package/src/is.js +0 -317
  192. package/src/kpis.js +0 -270
  193. package/src/notify.js +0 -219
  194. package/src/role.js +0 -110
  195. package/src/team.js +0 -130
  196. package/src/transports.js +0 -357
  197. package/src/types.js +0 -71
@@ -0,0 +1,343 @@
1
+ /**
2
+ * Worker Export - WorkerEntrypoint for RPC access to Digital Workers
3
+ *
4
+ * Exposes worker lifecycle management, messaging, and coordination via Cloudflare RPC.
5
+ *
6
+ * @example
7
+ * ```typescript
8
+ * // wrangler.jsonc
9
+ * {
10
+ * "services": [
11
+ * { "binding": "DIGITAL_WORKERS", "service": "digital-workers" }
12
+ * ]
13
+ * }
14
+ *
15
+ * // worker.ts - consuming service
16
+ * export default {
17
+ * async fetch(request: Request, env: Env) {
18
+ * const service = env.DIGITAL_WORKERS.connect()
19
+ * const worker = await service.spawn({ name: 'my-worker' })
20
+ * return Response.json(worker)
21
+ * }
22
+ * }
23
+ * ```
24
+ *
25
+ * @packageDocumentation
26
+ */
27
+ import { WorkerEntrypoint, RpcTarget } from 'cloudflare:workers';
28
+ /**
29
+ * Worker instance status
30
+ */
31
+ type WorkerInstanceStatus = 'spawning' | 'running' | 'paused' | 'terminated' | 'error';
32
+ /**
33
+ * Worker instance state
34
+ */
35
+ interface WorkerInstance {
36
+ id: string;
37
+ name: string;
38
+ status: WorkerInstanceStatus;
39
+ type: 'agent' | 'human';
40
+ tier?: string | undefined;
41
+ createdAt: Date;
42
+ updatedAt: Date;
43
+ metadata?: Record<string, unknown> | undefined;
44
+ }
45
+ /**
46
+ * Message sent between workers
47
+ */
48
+ interface WorkerMessage<T = unknown> {
49
+ id: string;
50
+ from: string;
51
+ to: string;
52
+ type: string;
53
+ payload: T;
54
+ timestamp: Date;
55
+ acknowledged?: boolean;
56
+ }
57
+ /**
58
+ * Worker spawn options
59
+ */
60
+ interface SpawnOptions {
61
+ name?: string;
62
+ type?: 'agent' | 'human';
63
+ tier?: string;
64
+ metadata?: Record<string, unknown>;
65
+ timeout?: number;
66
+ }
67
+ /**
68
+ * Receive options
69
+ */
70
+ interface ReceiveOptions {
71
+ type?: string;
72
+ limit?: number;
73
+ acknowledged?: boolean;
74
+ }
75
+ /**
76
+ * List options
77
+ */
78
+ interface ListOptions {
79
+ status?: WorkerInstanceStatus;
80
+ type?: 'agent' | 'human';
81
+ tier?: string;
82
+ limit?: number;
83
+ includeTerminated?: boolean;
84
+ }
85
+ /**
86
+ * Set state options
87
+ */
88
+ interface SetStateOptions {
89
+ metadata?: Record<string, unknown>;
90
+ }
91
+ /**
92
+ * Broadcast result
93
+ */
94
+ interface BroadcastResult {
95
+ workerId: string;
96
+ success: boolean;
97
+ messageId?: string | undefined;
98
+ error?: string | undefined;
99
+ }
100
+ /**
101
+ * Coordination task
102
+ */
103
+ interface CoordinationTask<T = unknown> {
104
+ id: string;
105
+ type: 'fanout' | 'pipeline' | 'race' | 'consensus';
106
+ workers: string[];
107
+ status: 'pending' | 'running' | 'completed' | 'failed';
108
+ result?: T | undefined;
109
+ errors?: Error[] | undefined;
110
+ }
111
+ /**
112
+ * Consensus options
113
+ */
114
+ interface ConsensusOptions {
115
+ quorum?: number;
116
+ }
117
+ /**
118
+ * Notification target
119
+ */
120
+ type NotificationTarget = string | string[] | {
121
+ id: string;
122
+ contacts: Record<string, unknown>;
123
+ };
124
+ /**
125
+ * Notification options
126
+ */
127
+ interface NotifyOptions {
128
+ target: NotificationTarget;
129
+ message: string;
130
+ via?: string;
131
+ priority?: 'low' | 'normal' | 'high' | 'urgent';
132
+ metadata?: Record<string, unknown>;
133
+ }
134
+ /**
135
+ * Notification result
136
+ */
137
+ interface NotifyResult {
138
+ sent: boolean;
139
+ messageId: string;
140
+ via: string[];
141
+ recipients?: string[];
142
+ sentAt: Date;
143
+ jobId: string;
144
+ }
145
+ /**
146
+ * Decide options
147
+ */
148
+ interface DecideOptions {
149
+ options: (string | {
150
+ id?: string;
151
+ label?: string;
152
+ [key: string]: unknown;
153
+ })[];
154
+ context?: string;
155
+ criteria?: string[];
156
+ }
157
+ /**
158
+ * Decision result
159
+ */
160
+ interface DecisionResult {
161
+ choice: string | {
162
+ id?: string;
163
+ label?: string;
164
+ [key: string]: unknown;
165
+ };
166
+ reasoning: string;
167
+ confidence: number;
168
+ alternatives?: {
169
+ option: string | {
170
+ id?: string;
171
+ label?: string;
172
+ [key: string]: unknown;
173
+ };
174
+ score: number;
175
+ }[];
176
+ jobId: string;
177
+ }
178
+ /**
179
+ * Ask AI options
180
+ */
181
+ interface AskAIOptions {
182
+ context?: Record<string, unknown>;
183
+ schema?: Record<string, unknown>;
184
+ track?: boolean;
185
+ }
186
+ /**
187
+ * Cloudflare Workers AI interface
188
+ */
189
+ interface AIBinding {
190
+ run(model: string, input: {
191
+ prompt?: string;
192
+ messages?: {
193
+ role: string;
194
+ content: string;
195
+ }[];
196
+ }): Promise<{
197
+ response?: string;
198
+ }>;
199
+ }
200
+ /**
201
+ * Environment bindings
202
+ */
203
+ export interface Env {
204
+ AI?: AIBinding | undefined;
205
+ WORKER_STATE?: DurableObjectNamespace | undefined;
206
+ }
207
+ /**
208
+ * Core digital workers service - extends RpcTarget for RPC communication
209
+ *
210
+ * Provides worker lifecycle management, messaging, and coordination.
211
+ */
212
+ export declare class DigitalWorkersServiceCore extends RpcTarget {
213
+ private env;
214
+ constructor(env?: Env);
215
+ /**
216
+ * Spawn a new worker instance
217
+ */
218
+ spawn(options?: SpawnOptions): Promise<WorkerInstance>;
219
+ /**
220
+ * Terminate a worker
221
+ */
222
+ terminate(workerId: string): Promise<boolean>;
223
+ /**
224
+ * Pause a worker
225
+ */
226
+ pause(workerId: string): Promise<boolean>;
227
+ /**
228
+ * Resume a paused worker
229
+ */
230
+ resume(workerId: string): Promise<boolean>;
231
+ /**
232
+ * Send a message from one worker to another
233
+ */
234
+ send<T = unknown>(fromId: string, toId: string, type: string, payload: T): Promise<WorkerMessage<T>>;
235
+ /**
236
+ * Receive messages for a worker
237
+ */
238
+ receive<T = unknown>(workerId: string, options?: ReceiveOptions): Promise<WorkerMessage<T>[]>;
239
+ /**
240
+ * Acknowledge a message
241
+ */
242
+ acknowledge(workerId: string, messageId: string): Promise<boolean>;
243
+ /**
244
+ * Broadcast a message to multiple workers
245
+ */
246
+ broadcast<T = unknown>(fromId: string, toIds: string[], type: string, payload: T): Promise<BroadcastResult[]>;
247
+ /**
248
+ * Get worker state
249
+ */
250
+ getState(workerId: string): Promise<WorkerInstance | null>;
251
+ /**
252
+ * Set worker state (update metadata)
253
+ */
254
+ setState(workerId: string, options: SetStateOptions): Promise<void>;
255
+ /**
256
+ * List workers with optional filtering
257
+ */
258
+ list(options?: ListOptions): Promise<WorkerInstance[]>;
259
+ /**
260
+ * Fan out work to multiple workers (parallel execution)
261
+ */
262
+ fanOut<T = unknown>(coordinatorId: string, workerIds: string[], type: string, payload: T): Promise<CoordinationTask<T>>;
263
+ /**
264
+ * Create a sequential processing pipeline
265
+ */
266
+ pipeline<T = unknown>(workerIds: string[], type: string, payload: T): Promise<CoordinationTask<T>>;
267
+ /**
268
+ * Create a race (first to complete wins)
269
+ */
270
+ race<T = unknown>(workerIds: string[], type: string, payload: T): Promise<CoordinationTask<T>>;
271
+ /**
272
+ * Create a consensus task (all must agree)
273
+ */
274
+ consensus<T = unknown>(workerIds: string[], type: string, payload: T, options?: ConsensusOptions): Promise<CoordinationTask<T>>;
275
+ /**
276
+ * Get coordination task status
277
+ */
278
+ getTaskStatus<T = unknown>(taskId: string): Promise<CoordinationTask<T> | null>;
279
+ /**
280
+ * Generate a job ID for tracking
281
+ */
282
+ private generateJobId;
283
+ /**
284
+ * Send a notification (stateless action)
285
+ *
286
+ * Sends notifications to one or more targets. Does not require a spawned worker.
287
+ *
288
+ * @param options - Notification options
289
+ * @returns Notification result with sent status, message ID, and job ID
290
+ */
291
+ notify(options: NotifyOptions): Promise<NotifyResult>;
292
+ /**
293
+ * Make a decision between options using AI (stateless action)
294
+ *
295
+ * Uses the AI binding to evaluate options and make a decision.
296
+ * Does not require a spawned worker.
297
+ *
298
+ * @param options - Decision options including choices and context
299
+ * @returns Decision result with choice, reasoning, confidence, and job ID
300
+ */
301
+ decide(options: DecideOptions): Promise<DecisionResult>;
302
+ /**
303
+ * Ask AI a question (stateless action)
304
+ *
305
+ * Uses the AI binding to answer questions with optional context and schema.
306
+ * Does not require a spawned worker.
307
+ *
308
+ * @param question - The question to ask
309
+ * @param options - Optional context, schema, or tracking options
310
+ * @returns Answer string, structured response (if schema provided), or tracked response object
311
+ */
312
+ askAI(question: string, options?: AskAIOptions): Promise<string | Record<string, unknown> | {
313
+ answer: string;
314
+ jobId: string;
315
+ }>;
316
+ }
317
+ /**
318
+ * Digital Workers Service - WorkerEntrypoint for RPC access
319
+ *
320
+ * Provides `connect()` method that returns an RpcTarget service
321
+ * with all worker management methods.
322
+ *
323
+ * @example
324
+ * ```typescript
325
+ * // In consuming worker
326
+ * const workers = env.DIGITAL_WORKERS.connect()
327
+ * const worker = await workers.spawn({ name: 'my-agent' })
328
+ * await workers.send(worker.id, otherWorkerId, 'task', { data: 'hello' })
329
+ * ```
330
+ */
331
+ export declare class DigitalWorkersService extends WorkerEntrypoint<Env> {
332
+ /**
333
+ * Connect to the digital workers service
334
+ *
335
+ * @returns DigitalWorkersServiceCore instance for RPC calls
336
+ */
337
+ connect(): DigitalWorkersServiceCore;
338
+ }
339
+ /**
340
+ * Default export for Cloudflare Workers
341
+ */
342
+ export default DigitalWorkersService;
343
+ //# sourceMappingURL=worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../src/worker.ts"],"names":[],"mappings":"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"}