digital-workers 0.1.1 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/.turbo/turbo-build.log +5 -0
  2. package/CHANGELOG.md +9 -0
  3. package/README.md +290 -106
  4. package/dist/actions.d.ts +95 -0
  5. package/dist/actions.d.ts.map +1 -0
  6. package/dist/actions.js +437 -0
  7. package/dist/actions.js.map +1 -0
  8. package/dist/approve.d.ts +49 -0
  9. package/dist/approve.d.ts.map +1 -0
  10. package/dist/approve.js +235 -0
  11. package/dist/approve.js.map +1 -0
  12. package/dist/ask.d.ts +42 -0
  13. package/dist/ask.d.ts.map +1 -0
  14. package/dist/ask.js +227 -0
  15. package/dist/ask.js.map +1 -0
  16. package/dist/decide.d.ts +62 -0
  17. package/dist/decide.d.ts.map +1 -0
  18. package/dist/decide.js +245 -0
  19. package/dist/decide.js.map +1 -0
  20. package/dist/do.d.ts +63 -0
  21. package/dist/do.d.ts.map +1 -0
  22. package/dist/do.js +228 -0
  23. package/dist/do.js.map +1 -0
  24. package/dist/generate.d.ts +61 -0
  25. package/dist/generate.d.ts.map +1 -0
  26. package/dist/generate.js +299 -0
  27. package/dist/generate.js.map +1 -0
  28. package/dist/goals.d.ts +89 -0
  29. package/dist/goals.d.ts.map +1 -0
  30. package/dist/goals.js +206 -0
  31. package/dist/goals.js.map +1 -0
  32. package/dist/index.d.ts +68 -0
  33. package/dist/index.d.ts.map +1 -0
  34. package/dist/index.js +69 -0
  35. package/dist/index.js.map +1 -0
  36. package/dist/is.d.ts +54 -0
  37. package/dist/is.d.ts.map +1 -0
  38. package/dist/is.js +318 -0
  39. package/dist/is.js.map +1 -0
  40. package/dist/kpis.d.ts +103 -0
  41. package/dist/kpis.d.ts.map +1 -0
  42. package/dist/kpis.js +271 -0
  43. package/dist/kpis.js.map +1 -0
  44. package/dist/notify.d.ts +47 -0
  45. package/dist/notify.d.ts.map +1 -0
  46. package/dist/notify.js +220 -0
  47. package/dist/notify.js.map +1 -0
  48. package/dist/role.d.ts +53 -0
  49. package/dist/role.d.ts.map +1 -0
  50. package/dist/role.js +111 -0
  51. package/dist/role.js.map +1 -0
  52. package/dist/team.d.ts +61 -0
  53. package/dist/team.d.ts.map +1 -0
  54. package/dist/team.js +131 -0
  55. package/dist/team.js.map +1 -0
  56. package/dist/transports.d.ts +164 -0
  57. package/dist/transports.d.ts.map +1 -0
  58. package/dist/transports.js +358 -0
  59. package/dist/transports.js.map +1 -0
  60. package/dist/types.d.ts +693 -0
  61. package/dist/types.d.ts.map +1 -0
  62. package/dist/types.js +72 -0
  63. package/dist/types.js.map +1 -0
  64. package/package.json +27 -61
  65. package/src/actions.ts +615 -0
  66. package/src/approve.ts +317 -0
  67. package/src/ask.ts +304 -0
  68. package/src/decide.ts +295 -0
  69. package/src/do.ts +275 -0
  70. package/src/generate.ts +364 -0
  71. package/src/goals.ts +220 -0
  72. package/src/index.ts +118 -0
  73. package/src/is.ts +372 -0
  74. package/src/kpis.ts +348 -0
  75. package/src/notify.ts +303 -0
  76. package/src/role.ts +116 -0
  77. package/src/team.ts +142 -0
  78. package/src/transports.ts +504 -0
  79. package/src/types.ts +843 -0
  80. package/test/actions.test.ts +546 -0
  81. package/test/standalone.test.ts +299 -0
  82. package/test/types.test.ts +460 -0
  83. package/tsconfig.json +9 -0
@@ -0,0 +1,693 @@
1
+ /**
2
+ * Type definitions for digital-workers
3
+ *
4
+ * Digital workers (Agents and Humans) communicate through Actions that integrate
5
+ * with the ai-workflows system. Worker actions (notify, ask, approve, decide)
6
+ * are durable workflow actions with Actor/Object semantics.
7
+ *
8
+ * ## Key Concepts
9
+ *
10
+ * - **Worker**: Common interface for Agent and Human
11
+ * - **Contacts**: How a worker can be reached (email, slack, phone, etc.)
12
+ * - **Action**: Durable workflow action (notify, ask, approve, decide)
13
+ * - **Team**: Group of workers with shared contacts
14
+ *
15
+ * @packageDocumentation
16
+ */
17
+ import type { SimpleSchema } from 'ai-functions';
18
+ /**
19
+ * Worker type - either an AI agent or a human
20
+ */
21
+ export type WorkerType = 'agent' | 'human';
22
+ /**
23
+ * Worker status
24
+ */
25
+ export type WorkerStatus = 'available' | 'busy' | 'away' | 'offline';
26
+ /**
27
+ * Contact channel names - how workers can be reached
28
+ */
29
+ export type ContactChannel = 'email' | 'slack' | 'teams' | 'discord' | 'phone' | 'sms' | 'whatsapp' | 'telegram' | 'web' | 'api' | 'webhook';
30
+ /**
31
+ * Email contact - simple string or config object
32
+ */
33
+ export interface EmailContact {
34
+ address: string;
35
+ name?: string;
36
+ verified?: boolean;
37
+ }
38
+ /**
39
+ * Slack contact - mention, channel, or config
40
+ */
41
+ export interface SlackContact {
42
+ workspace?: string;
43
+ user?: string;
44
+ channel?: string;
45
+ botToken?: string;
46
+ }
47
+ /**
48
+ * Teams contact
49
+ */
50
+ export interface TeamsContact {
51
+ tenant?: string;
52
+ user?: string;
53
+ team?: string;
54
+ channel?: string;
55
+ }
56
+ /**
57
+ * Discord contact
58
+ */
59
+ export interface DiscordContact {
60
+ server?: string;
61
+ user?: string;
62
+ channel?: string;
63
+ }
64
+ /**
65
+ * Phone contact
66
+ */
67
+ export interface PhoneContact {
68
+ number: string;
69
+ country?: string;
70
+ verified?: boolean;
71
+ voice?: string;
72
+ language?: string;
73
+ }
74
+ /**
75
+ * SMS contact
76
+ */
77
+ export interface SmsContact {
78
+ number: string;
79
+ verified?: boolean;
80
+ }
81
+ /**
82
+ * WhatsApp contact
83
+ */
84
+ export interface WhatsAppContact {
85
+ number: string;
86
+ verified?: boolean;
87
+ }
88
+ /**
89
+ * Telegram contact
90
+ */
91
+ export interface TelegramContact {
92
+ user?: string;
93
+ chat?: string;
94
+ }
95
+ /**
96
+ * Web UI contact
97
+ */
98
+ export interface WebContact {
99
+ url?: string;
100
+ userId?: string;
101
+ pushEnabled?: boolean;
102
+ }
103
+ /**
104
+ * API contact (for agents)
105
+ */
106
+ export interface ApiContact {
107
+ endpoint: string;
108
+ auth?: 'bearer' | 'api-key' | 'oauth' | 'none';
109
+ version?: string;
110
+ }
111
+ /**
112
+ * Webhook contact
113
+ */
114
+ export interface WebhookContact {
115
+ url: string;
116
+ secret?: string;
117
+ events?: string[];
118
+ }
119
+ /**
120
+ * Contacts - how a worker can be reached
121
+ *
122
+ * Each channel can be a simple string or a config object.
123
+ *
124
+ * @example
125
+ * ```ts
126
+ * contacts: {
127
+ * email: 'alice@company.com',
128
+ * slack: { workspace: 'acme', user: 'U123' },
129
+ * phone: '+1-555-1234',
130
+ * }
131
+ * ```
132
+ */
133
+ export interface Contacts {
134
+ email?: string | EmailContact;
135
+ slack?: string | SlackContact;
136
+ teams?: string | TeamsContact;
137
+ discord?: string | DiscordContact;
138
+ phone?: string | PhoneContact;
139
+ sms?: string | SmsContact;
140
+ whatsapp?: string | WhatsAppContact;
141
+ telegram?: string | TelegramContact;
142
+ web?: string | WebContact;
143
+ api?: string | ApiContact;
144
+ webhook?: string | WebhookContact;
145
+ }
146
+ /**
147
+ * Contact preferences for routing
148
+ */
149
+ export interface ContactPreferences {
150
+ primary?: ContactChannel;
151
+ urgent?: ContactChannel;
152
+ fallback?: ContactChannel[];
153
+ quietHours?: {
154
+ start: string;
155
+ end: string;
156
+ timezone?: string;
157
+ };
158
+ }
159
+ /**
160
+ * Worker - common interface for Agent and Human
161
+ *
162
+ * Workers are execution entities that can perform tasks and be reached
163
+ * through their configured contact channels.
164
+ *
165
+ * @example
166
+ * ```ts
167
+ * const alice: Worker = {
168
+ * id: 'user_alice',
169
+ * name: 'Alice',
170
+ * type: 'human',
171
+ * status: 'available',
172
+ * contacts: {
173
+ * email: 'alice@company.com',
174
+ * slack: { workspace: 'acme', user: 'U123' },
175
+ * phone: '+1-555-1234',
176
+ * },
177
+ * }
178
+ * ```
179
+ */
180
+ export interface Worker {
181
+ id: string;
182
+ name: string;
183
+ type: WorkerType;
184
+ status: WorkerStatus;
185
+ contacts: Contacts;
186
+ preferences?: ContactPreferences;
187
+ role?: WorkerRole;
188
+ teams?: string[];
189
+ skills?: string[];
190
+ tools?: string[];
191
+ metadata?: Record<string, unknown>;
192
+ }
193
+ /**
194
+ * Worker reference - lightweight reference
195
+ */
196
+ export interface WorkerRef {
197
+ id: string;
198
+ type?: WorkerType;
199
+ name?: string;
200
+ role?: string;
201
+ }
202
+ /**
203
+ * Team - group of workers with shared contacts
204
+ *
205
+ * @example
206
+ * ```ts
207
+ * const engineering: Team = {
208
+ * id: 'team_eng',
209
+ * name: 'Engineering',
210
+ * members: [alice, bob, deployBot],
211
+ * contacts: {
212
+ * slack: '#engineering',
213
+ * email: 'eng@company.com',
214
+ * },
215
+ * }
216
+ * ```
217
+ */
218
+ export interface Team {
219
+ id: string;
220
+ name: string;
221
+ description?: string;
222
+ members: WorkerRef[];
223
+ contacts: Contacts;
224
+ lead?: WorkerRef;
225
+ goals?: string[];
226
+ metadata?: Record<string, unknown>;
227
+ }
228
+ /**
229
+ * Worker action types
230
+ *
231
+ * These are the actions that can be performed on/by workers.
232
+ * They integrate with ai-workflows as durable actions.
233
+ */
234
+ export type WorkerAction = 'notify' | 'ask' | 'approve' | 'decide' | 'do';
235
+ /**
236
+ * Base action data - integrates with ai-workflows ActionData
237
+ *
238
+ * Every worker action has:
239
+ * - actor: Who is performing/initiating the action
240
+ * - object: Who/what is being acted upon
241
+ * - action: The action type
242
+ * - via: Channel(s) to use
243
+ */
244
+ export interface WorkerActionData {
245
+ /** Who is performing/initiating the action */
246
+ actor: WorkerRef | string;
247
+ /** Who/what is being acted upon */
248
+ object: Worker | Team | WorkerRef | string;
249
+ /** The action being performed */
250
+ action: WorkerAction;
251
+ /** Channel(s) to use */
252
+ via?: ContactChannel | ContactChannel[];
253
+ /** Action status */
254
+ status?: 'pending' | 'active' | 'completed' | 'failed';
255
+ /** Additional metadata */
256
+ metadata?: Record<string, unknown>;
257
+ }
258
+ /**
259
+ * Notify action data
260
+ *
261
+ * @example
262
+ * ```ts
263
+ * await $.do('Worker.notify', {
264
+ * actor: system,
265
+ * object: alice,
266
+ * message: 'Deployment complete',
267
+ * via: 'slack',
268
+ * })
269
+ * ```
270
+ */
271
+ export interface NotifyActionData extends WorkerActionData {
272
+ action: 'notify';
273
+ message: string;
274
+ priority?: 'low' | 'normal' | 'high' | 'urgent';
275
+ }
276
+ /**
277
+ * Ask action data
278
+ *
279
+ * @example
280
+ * ```ts
281
+ * const answer = await $.do('Worker.ask', {
282
+ * actor: system,
283
+ * object: alice,
284
+ * question: 'What is the priority?',
285
+ * via: 'slack',
286
+ * schema: { priority: 'low | normal | high' },
287
+ * })
288
+ * ```
289
+ */
290
+ export interface AskActionData extends WorkerActionData {
291
+ action: 'ask';
292
+ question: string;
293
+ schema?: SimpleSchema;
294
+ timeout?: number;
295
+ }
296
+ /**
297
+ * Approve action data
298
+ *
299
+ * @example
300
+ * ```ts
301
+ * const result = await $.do('Worker.approve', {
302
+ * actor: manager,
303
+ * object: expense,
304
+ * request: 'Expense: $500 for AWS',
305
+ * via: 'slack',
306
+ * })
307
+ * ```
308
+ */
309
+ export interface ApproveActionData extends WorkerActionData {
310
+ action: 'approve';
311
+ request: string;
312
+ context?: Record<string, unknown>;
313
+ timeout?: number;
314
+ escalate?: boolean;
315
+ }
316
+ /**
317
+ * Decide action data
318
+ *
319
+ * @example
320
+ * ```ts
321
+ * const decision = await $.do('Worker.decide', {
322
+ * actor: alice,
323
+ * object: 'technology choice',
324
+ * options: ['React', 'Vue', 'Svelte'],
325
+ * criteria: ['DX', 'Performance', 'Ecosystem'],
326
+ * })
327
+ * ```
328
+ */
329
+ export interface DecideActionData extends WorkerActionData {
330
+ action: 'decide';
331
+ options: unknown[];
332
+ context?: string | Record<string, unknown>;
333
+ criteria?: string[];
334
+ }
335
+ /**
336
+ * Do action data - execute a task
337
+ *
338
+ * @example
339
+ * ```ts
340
+ * const result = await $.do('Worker.do', {
341
+ * actor: deployBot,
342
+ * object: 'production',
343
+ * instruction: 'Deploy v2.1.0',
344
+ * })
345
+ * ```
346
+ */
347
+ export interface DoActionData extends WorkerActionData {
348
+ action: 'do';
349
+ instruction: string;
350
+ timeout?: number;
351
+ maxRetries?: number;
352
+ }
353
+ /**
354
+ * Notify result
355
+ */
356
+ export interface NotifyResult {
357
+ sent: boolean;
358
+ via: ContactChannel[];
359
+ recipients?: WorkerRef[];
360
+ sentAt?: Date;
361
+ messageId?: string;
362
+ delivery?: Array<{
363
+ channel: ContactChannel;
364
+ status: 'sent' | 'delivered' | 'failed';
365
+ error?: string;
366
+ }>;
367
+ }
368
+ /**
369
+ * Ask result
370
+ */
371
+ export interface AskResult<T = string> {
372
+ answer: T;
373
+ answeredBy?: WorkerRef;
374
+ answeredAt?: Date;
375
+ via?: ContactChannel;
376
+ }
377
+ /**
378
+ * Approve result
379
+ */
380
+ export interface ApprovalResult {
381
+ approved: boolean;
382
+ approvedBy?: WorkerRef;
383
+ approvedAt?: Date;
384
+ notes?: string;
385
+ via?: ContactChannel;
386
+ }
387
+ /**
388
+ * Decide result
389
+ */
390
+ export interface DecideResult<T = string> {
391
+ choice: T;
392
+ reasoning: string;
393
+ confidence: number;
394
+ alternatives?: Array<{
395
+ option: T;
396
+ score: number;
397
+ }>;
398
+ }
399
+ /**
400
+ * Do result
401
+ */
402
+ export interface DoResult<T = unknown> {
403
+ result: T;
404
+ success: boolean;
405
+ error?: string;
406
+ duration?: number;
407
+ steps?: Array<{
408
+ action: string;
409
+ result: unknown;
410
+ timestamp: Date;
411
+ }>;
412
+ }
413
+ /**
414
+ * Worker verbs following the ai-database conjugation pattern
415
+ *
416
+ * Each verb has:
417
+ * - action: Base form (notify, ask, approve, decide)
418
+ * - actor: Who does it (notifier, asker, approver, decider)
419
+ * - activity: Gerund (notifying, asking, approving, deciding)
420
+ * - reverse: Past forms (notifiedAt, notifiedBy, askedAt, etc.)
421
+ */
422
+ export declare const WorkerVerbs: {
423
+ readonly notify: {
424
+ readonly action: "notify";
425
+ readonly actor: "notifier";
426
+ readonly act: "notifies";
427
+ readonly activity: "notifying";
428
+ readonly result: "notification";
429
+ readonly reverse: {
430
+ readonly at: "notifiedAt";
431
+ readonly by: "notifiedBy";
432
+ readonly via: "notifiedVia";
433
+ };
434
+ };
435
+ readonly ask: {
436
+ readonly action: "ask";
437
+ readonly actor: "asker";
438
+ readonly act: "asks";
439
+ readonly activity: "asking";
440
+ readonly result: "question";
441
+ readonly reverse: {
442
+ readonly at: "askedAt";
443
+ readonly by: "askedBy";
444
+ readonly via: "askedVia";
445
+ };
446
+ };
447
+ readonly approve: {
448
+ readonly action: "approve";
449
+ readonly actor: "approver";
450
+ readonly act: "approves";
451
+ readonly activity: "approving";
452
+ readonly result: "approval";
453
+ readonly reverse: {
454
+ readonly at: "approvedAt";
455
+ readonly by: "approvedBy";
456
+ readonly via: "approvedVia";
457
+ };
458
+ readonly inverse: "reject";
459
+ };
460
+ readonly decide: {
461
+ readonly action: "decide";
462
+ readonly actor: "decider";
463
+ readonly act: "decides";
464
+ readonly activity: "deciding";
465
+ readonly result: "decision";
466
+ readonly reverse: {
467
+ readonly at: "decidedAt";
468
+ readonly by: "decidedBy";
469
+ };
470
+ };
471
+ readonly do: {
472
+ readonly action: "do";
473
+ readonly actor: "doer";
474
+ readonly act: "does";
475
+ readonly activity: "doing";
476
+ readonly result: "task";
477
+ readonly reverse: {
478
+ readonly at: "doneAt";
479
+ readonly by: "doneBy";
480
+ };
481
+ };
482
+ };
483
+ /**
484
+ * Worker event names for workflow registration
485
+ *
486
+ * These events can be handled via $.on.Worker.notify, $.on.Worker.ask, etc.
487
+ */
488
+ export type WorkerEvent = 'Worker.notify' | 'Worker.ask' | 'Worker.approve' | 'Worker.decide' | 'Worker.do' | 'Worker.notified' | 'Worker.answered' | 'Worker.approved' | 'Worker.rejected' | 'Worker.decided' | 'Worker.done' | 'Worker.failed';
489
+ /**
490
+ * Worker context extension for WorkflowContext
491
+ *
492
+ * Provides convenience methods on $ for worker actions.
493
+ *
494
+ * @example
495
+ * ```ts
496
+ * Workflow($ => {
497
+ * $.on.Expense.submitted(async (expense, $) => {
498
+ * // Use worker actions via $
499
+ * await $.notify(finance, `New expense: ${expense.amount}`)
500
+ *
501
+ * const approval = await $.approve(expense.description, manager, {
502
+ * via: 'slack',
503
+ * context: { amount: expense.amount },
504
+ * })
505
+ *
506
+ * if (approval.approved) {
507
+ * await $.notify(expense.submitter, 'Your expense was approved!')
508
+ * }
509
+ * })
510
+ * })
511
+ * ```
512
+ */
513
+ export interface WorkerContext {
514
+ /**
515
+ * Send a notification to a worker/team
516
+ */
517
+ notify(target: Worker | Team | WorkerRef | string, message: string, options?: NotifyOptions): Promise<NotifyResult>;
518
+ /**
519
+ * Ask a question to a worker/team
520
+ */
521
+ ask<T = string>(target: Worker | Team | WorkerRef | string, question: string, options?: AskOptions): Promise<AskResult<T>>;
522
+ /**
523
+ * Request approval from a worker/team
524
+ */
525
+ approve(request: string, target: Worker | Team | WorkerRef | string, options?: ApproveOptions): Promise<ApprovalResult>;
526
+ /**
527
+ * Make a decision (AI or human)
528
+ */
529
+ decide<T = string>(options: DecideOptions<T>): Promise<DecideResult<T>>;
530
+ }
531
+ /**
532
+ * Base options for worker actions
533
+ */
534
+ export interface ActionOptions {
535
+ via?: ContactChannel | ContactChannel[];
536
+ timeout?: number;
537
+ context?: Record<string, unknown>;
538
+ }
539
+ /**
540
+ * Notify options
541
+ */
542
+ export interface NotifyOptions extends ActionOptions {
543
+ priority?: 'low' | 'normal' | 'high' | 'urgent';
544
+ fallback?: boolean;
545
+ metadata?: Record<string, unknown>;
546
+ }
547
+ /**
548
+ * Ask options
549
+ */
550
+ export interface AskOptions extends ActionOptions {
551
+ schema?: SimpleSchema;
552
+ }
553
+ /**
554
+ * Approve options
555
+ */
556
+ export interface ApproveOptions extends ActionOptions {
557
+ escalate?: boolean;
558
+ }
559
+ /**
560
+ * Decide options
561
+ */
562
+ export interface DecideOptions<T = string> {
563
+ options: T[];
564
+ context?: string | Record<string, unknown>;
565
+ criteria?: string[];
566
+ includeReasoning?: boolean;
567
+ }
568
+ /**
569
+ * Worker role definition
570
+ */
571
+ export interface WorkerRole {
572
+ name: string;
573
+ description: string;
574
+ responsibilities: string[];
575
+ skills?: string[];
576
+ permissions?: string[];
577
+ type?: 'ai' | 'human' | 'hybrid';
578
+ }
579
+ /**
580
+ * Worker goals
581
+ */
582
+ export interface WorkerGoals {
583
+ shortTerm: string[];
584
+ longTerm: string[];
585
+ strategic?: string[];
586
+ metrics?: KPI[];
587
+ }
588
+ /**
589
+ * KPI definition
590
+ */
591
+ export interface KPI {
592
+ name: string;
593
+ description: string;
594
+ current: number;
595
+ target: number;
596
+ unit: string;
597
+ trend?: 'up' | 'down' | 'stable';
598
+ period?: string;
599
+ }
600
+ /**
601
+ * OKR definition
602
+ */
603
+ export interface OKR {
604
+ objective: string;
605
+ keyResults: Array<{
606
+ name: string;
607
+ current: number;
608
+ target: number;
609
+ unit: string;
610
+ }>;
611
+ owner?: WorkerRef;
612
+ dueDate?: Date;
613
+ progress?: number;
614
+ }
615
+ /**
616
+ * Target for an action - Worker, Team, or reference
617
+ */
618
+ export type ActionTarget = Worker | Team | WorkerRef | string;
619
+ /**
620
+ * Union of all action data types
621
+ */
622
+ export type AnyWorkerActionData = NotifyActionData | AskActionData | ApproveActionData | DecideActionData | DoActionData;
623
+ /**
624
+ * @deprecated Use DecideResult instead
625
+ */
626
+ export type Decision<T = string> = DecideResult<T>;
627
+ /**
628
+ * @deprecated Use DoResult instead
629
+ */
630
+ export type TaskResult<T = unknown> = DoResult<T>;
631
+ /**
632
+ * @deprecated Use ApproveOptions instead
633
+ */
634
+ export type ApprovalOptions = ApproveOptions;
635
+ /**
636
+ * Options for task execution
637
+ */
638
+ export interface DoOptions {
639
+ maxRetries?: number;
640
+ timeout?: number;
641
+ background?: boolean;
642
+ context?: Record<string, unknown>;
643
+ }
644
+ /**
645
+ * Content type for generation
646
+ */
647
+ export type GenerationType = 'text' | 'code' | 'structured' | 'image' | 'video' | 'audio';
648
+ /**
649
+ * Options for content generation
650
+ */
651
+ export interface GenerateOptions {
652
+ type?: GenerationType;
653
+ model?: string;
654
+ instructions?: string;
655
+ schema?: import('ai-functions').SimpleSchema;
656
+ maxTokens?: number;
657
+ temperature?: number;
658
+ format?: string;
659
+ language?: string;
660
+ }
661
+ /**
662
+ * Result of content generation
663
+ */
664
+ export interface GenerateResult<T = string> {
665
+ content: T;
666
+ type: GenerationType;
667
+ model?: string;
668
+ tokensUsed?: number;
669
+ cached?: boolean;
670
+ metadata?: Record<string, unknown>;
671
+ }
672
+ /**
673
+ * Options for type checking
674
+ */
675
+ export interface IsOptions {
676
+ coerce?: boolean;
677
+ strict?: boolean;
678
+ errorMessages?: Record<string, string>;
679
+ }
680
+ /**
681
+ * Result of type checking
682
+ */
683
+ export interface TypeCheckResult<T = unknown> {
684
+ valid: boolean;
685
+ value?: T;
686
+ errors?: string[];
687
+ coerced?: boolean;
688
+ }
689
+ /**
690
+ * @deprecated Use Team instead
691
+ */
692
+ export type WorkerTeam = Team;
693
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}