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.
- package/.turbo/turbo-build.log +5 -0
- package/CHANGELOG.md +9 -0
- package/README.md +290 -106
- package/dist/actions.d.ts +95 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/actions.js +437 -0
- package/dist/actions.js.map +1 -0
- package/dist/approve.d.ts +49 -0
- package/dist/approve.d.ts.map +1 -0
- package/dist/approve.js +235 -0
- package/dist/approve.js.map +1 -0
- package/dist/ask.d.ts +42 -0
- package/dist/ask.d.ts.map +1 -0
- package/dist/ask.js +227 -0
- package/dist/ask.js.map +1 -0
- package/dist/decide.d.ts +62 -0
- package/dist/decide.d.ts.map +1 -0
- package/dist/decide.js +245 -0
- package/dist/decide.js.map +1 -0
- package/dist/do.d.ts +63 -0
- package/dist/do.d.ts.map +1 -0
- package/dist/do.js +228 -0
- package/dist/do.js.map +1 -0
- package/dist/generate.d.ts +61 -0
- package/dist/generate.d.ts.map +1 -0
- package/dist/generate.js +299 -0
- package/dist/generate.js.map +1 -0
- package/dist/goals.d.ts +89 -0
- package/dist/goals.d.ts.map +1 -0
- package/dist/goals.js +206 -0
- package/dist/goals.js.map +1 -0
- package/dist/index.d.ts +68 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +69 -0
- package/dist/index.js.map +1 -0
- package/dist/is.d.ts +54 -0
- package/dist/is.d.ts.map +1 -0
- package/dist/is.js +318 -0
- package/dist/is.js.map +1 -0
- package/dist/kpis.d.ts +103 -0
- package/dist/kpis.d.ts.map +1 -0
- package/dist/kpis.js +271 -0
- package/dist/kpis.js.map +1 -0
- package/dist/notify.d.ts +47 -0
- package/dist/notify.d.ts.map +1 -0
- package/dist/notify.js +220 -0
- package/dist/notify.js.map +1 -0
- package/dist/role.d.ts +53 -0
- package/dist/role.d.ts.map +1 -0
- package/dist/role.js +111 -0
- package/dist/role.js.map +1 -0
- package/dist/team.d.ts +61 -0
- package/dist/team.d.ts.map +1 -0
- package/dist/team.js +131 -0
- package/dist/team.js.map +1 -0
- package/dist/transports.d.ts +164 -0
- package/dist/transports.d.ts.map +1 -0
- package/dist/transports.js +358 -0
- package/dist/transports.js.map +1 -0
- package/dist/types.d.ts +693 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +72 -0
- package/dist/types.js.map +1 -0
- package/package.json +27 -61
- package/src/actions.ts +615 -0
- package/src/approve.ts +317 -0
- package/src/ask.ts +304 -0
- package/src/decide.ts +295 -0
- package/src/do.ts +275 -0
- package/src/generate.ts +364 -0
- package/src/goals.ts +220 -0
- package/src/index.ts +118 -0
- package/src/is.ts +372 -0
- package/src/kpis.ts +348 -0
- package/src/notify.ts +303 -0
- package/src/role.ts +116 -0
- package/src/team.ts +142 -0
- package/src/transports.ts +504 -0
- package/src/types.ts +843 -0
- package/test/actions.test.ts +546 -0
- package/test/standalone.test.ts +299 -0
- package/test/types.test.ts +460 -0
- package/tsconfig.json +9 -0
package/dist/types.d.ts
ADDED
|
@@ -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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"}
|