digital-tasks 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/dist/task.js ADDED
@@ -0,0 +1,321 @@
1
+ /**
2
+ * Task - Core task creation and management functions
3
+ *
4
+ * @packageDocumentation
5
+ */
6
+ import { taskQueue } from './queue.js';
7
+ /**
8
+ * Generate a unique task ID
9
+ */
10
+ function generateTaskId() {
11
+ return `task_${Date.now()}_${Math.random().toString(36).slice(2, 9)}`;
12
+ }
13
+ /**
14
+ * Create a new task from a function definition
15
+ *
16
+ * @example
17
+ * ```ts
18
+ * const task = await createTask({
19
+ * function: {
20
+ * type: 'generative',
21
+ * name: 'summarize',
22
+ * args: { text: 'The text to summarize' },
23
+ * output: 'string',
24
+ * promptTemplate: 'Summarize: {{text}}',
25
+ * },
26
+ * input: { text: 'Long article content...' },
27
+ * priority: 'high',
28
+ * })
29
+ * ```
30
+ */
31
+ export async function createTask(options) {
32
+ const now = new Date();
33
+ // Convert string dependencies to TaskDependency array
34
+ let dependencies;
35
+ if (options.dependencies && options.dependencies.length > 0) {
36
+ dependencies = options.dependencies.map((taskId) => ({
37
+ type: 'blocked_by',
38
+ taskId,
39
+ satisfied: false,
40
+ }));
41
+ }
42
+ // Determine allowed workers from function type
43
+ let allowedWorkers = options.allowedWorkers;
44
+ if (!allowedWorkers) {
45
+ const funcType = options.function.type;
46
+ if (funcType === 'human') {
47
+ allowedWorkers = ['human'];
48
+ }
49
+ else if (funcType === 'agentic') {
50
+ allowedWorkers = ['agent'];
51
+ }
52
+ else {
53
+ allowedWorkers = ['any'];
54
+ }
55
+ }
56
+ const task = {
57
+ id: generateTaskId(),
58
+ function: options.function,
59
+ status: options.scheduledFor ? 'pending' : 'queued',
60
+ priority: options.priority || 'normal',
61
+ input: options.input,
62
+ allowedWorkers,
63
+ dependencies,
64
+ scheduledFor: options.scheduledFor,
65
+ deadline: options.deadline,
66
+ timeout: options.timeout,
67
+ tags: options.tags,
68
+ parentId: options.parentId,
69
+ projectId: options.projectId,
70
+ metadata: options.metadata,
71
+ createdAt: now,
72
+ events: [],
73
+ };
74
+ // Auto-assign if specified
75
+ if (options.assignTo) {
76
+ task.assignment = {
77
+ worker: options.assignTo,
78
+ assignedAt: now,
79
+ };
80
+ task.status = 'assigned';
81
+ }
82
+ // Check if blocked by dependencies
83
+ if (dependencies && dependencies.length > 0) {
84
+ const hasPendingDeps = dependencies.some((d) => d.type === 'blocked_by' && !d.satisfied);
85
+ if (hasPendingDeps) {
86
+ task.status = 'blocked';
87
+ }
88
+ }
89
+ // Add to queue
90
+ await taskQueue.add(task);
91
+ return task;
92
+ }
93
+ /**
94
+ * Get a task by ID
95
+ */
96
+ export async function getTask(id) {
97
+ return taskQueue.get(id);
98
+ }
99
+ /**
100
+ * Start working on a task
101
+ */
102
+ export async function startTask(taskId, worker) {
103
+ const task = await taskQueue.get(taskId);
104
+ if (!task)
105
+ return undefined;
106
+ // Claim the task if not already assigned
107
+ if (!task.assignment) {
108
+ const claimed = await taskQueue.claim(taskId, worker);
109
+ if (!claimed)
110
+ return undefined;
111
+ }
112
+ // Update status to in_progress
113
+ return taskQueue.update(taskId, {
114
+ status: 'in_progress',
115
+ event: {
116
+ type: 'started',
117
+ actor: worker,
118
+ message: `Started by ${worker.name || worker.id}`,
119
+ },
120
+ });
121
+ }
122
+ /**
123
+ * Update task progress
124
+ */
125
+ export async function updateProgress(taskId, percent, step) {
126
+ return taskQueue.update(taskId, {
127
+ progress: {
128
+ percent,
129
+ step,
130
+ updatedAt: new Date(),
131
+ },
132
+ event: {
133
+ type: 'progress',
134
+ message: step || `Progress: ${percent}%`,
135
+ data: { percent, step },
136
+ },
137
+ });
138
+ }
139
+ /**
140
+ * Complete a task with output
141
+ */
142
+ export async function completeTask(taskId, output) {
143
+ const task = await taskQueue.get(taskId);
144
+ if (!task) {
145
+ return {
146
+ taskId,
147
+ success: false,
148
+ error: {
149
+ code: 'TASK_NOT_FOUND',
150
+ message: `Task "${taskId}" not found`,
151
+ },
152
+ };
153
+ }
154
+ await taskQueue.complete(taskId, output);
155
+ return {
156
+ taskId,
157
+ success: true,
158
+ output,
159
+ metadata: {
160
+ duration: task.startedAt
161
+ ? Date.now() - task.startedAt.getTime()
162
+ : 0,
163
+ startedAt: task.startedAt || new Date(),
164
+ completedAt: new Date(),
165
+ worker: task.assignment?.worker,
166
+ },
167
+ };
168
+ }
169
+ /**
170
+ * Fail a task with error
171
+ */
172
+ export async function failTask(taskId, error) {
173
+ const task = await taskQueue.get(taskId);
174
+ if (!task) {
175
+ return {
176
+ taskId,
177
+ success: false,
178
+ error: {
179
+ code: 'TASK_NOT_FOUND',
180
+ message: `Task "${taskId}" not found`,
181
+ },
182
+ };
183
+ }
184
+ const errorMessage = error instanceof Error ? error.message : error;
185
+ await taskQueue.fail(taskId, errorMessage);
186
+ return {
187
+ taskId,
188
+ success: false,
189
+ error: {
190
+ code: 'TASK_FAILED',
191
+ message: errorMessage,
192
+ details: error instanceof Error ? { stack: error.stack } : undefined,
193
+ },
194
+ metadata: {
195
+ duration: task.startedAt
196
+ ? Date.now() - task.startedAt.getTime()
197
+ : 0,
198
+ startedAt: task.startedAt || new Date(),
199
+ completedAt: new Date(),
200
+ worker: task.assignment?.worker,
201
+ },
202
+ };
203
+ }
204
+ /**
205
+ * Cancel a task
206
+ */
207
+ export async function cancelTask(taskId, reason) {
208
+ const task = await taskQueue.get(taskId);
209
+ if (!task)
210
+ return false;
211
+ await taskQueue.update(taskId, {
212
+ status: 'cancelled',
213
+ event: {
214
+ type: 'cancelled',
215
+ message: reason || 'Task cancelled',
216
+ },
217
+ });
218
+ return true;
219
+ }
220
+ /**
221
+ * Add a comment to a task
222
+ */
223
+ export async function addComment(taskId, comment, author) {
224
+ return taskQueue.update(taskId, {
225
+ event: {
226
+ type: 'comment',
227
+ actor: author,
228
+ message: comment,
229
+ },
230
+ });
231
+ }
232
+ /**
233
+ * Create a subtask
234
+ */
235
+ export async function createSubtask(parentTaskId, options) {
236
+ return createTask({
237
+ ...options,
238
+ parentId: parentTaskId,
239
+ });
240
+ }
241
+ /**
242
+ * Get subtasks of a task
243
+ */
244
+ export async function getSubtasks(parentTaskId) {
245
+ return taskQueue.query({ parentId: parentTaskId });
246
+ }
247
+ /**
248
+ * Wait for a task to complete
249
+ */
250
+ export async function waitForTask(taskId, options) {
251
+ const timeout = options?.timeout ?? 5 * 60 * 1000; // 5 minutes
252
+ const pollInterval = options?.pollInterval ?? 1000; // 1 second
253
+ const startTime = Date.now();
254
+ while (Date.now() - startTime < timeout) {
255
+ const task = await taskQueue.get(taskId);
256
+ if (!task) {
257
+ return {
258
+ taskId,
259
+ success: false,
260
+ error: {
261
+ code: 'TASK_NOT_FOUND',
262
+ message: `Task "${taskId}" not found`,
263
+ },
264
+ };
265
+ }
266
+ if (task.status === 'completed') {
267
+ return {
268
+ taskId,
269
+ success: true,
270
+ output: task.output,
271
+ metadata: {
272
+ duration: task.completedAt && task.startedAt
273
+ ? task.completedAt.getTime() - task.startedAt.getTime()
274
+ : 0,
275
+ startedAt: task.startedAt || task.createdAt,
276
+ completedAt: task.completedAt || new Date(),
277
+ worker: task.assignment?.worker,
278
+ },
279
+ };
280
+ }
281
+ if (task.status === 'failed') {
282
+ return {
283
+ taskId,
284
+ success: false,
285
+ error: {
286
+ code: 'TASK_FAILED',
287
+ message: task.error || 'Task failed',
288
+ },
289
+ metadata: {
290
+ duration: task.completedAt && task.startedAt
291
+ ? task.completedAt.getTime() - task.startedAt.getTime()
292
+ : 0,
293
+ startedAt: task.startedAt || task.createdAt,
294
+ completedAt: task.completedAt || new Date(),
295
+ worker: task.assignment?.worker,
296
+ },
297
+ };
298
+ }
299
+ if (task.status === 'cancelled') {
300
+ return {
301
+ taskId,
302
+ success: false,
303
+ error: {
304
+ code: 'TASK_CANCELLED',
305
+ message: 'Task was cancelled',
306
+ },
307
+ };
308
+ }
309
+ // Wait before polling again
310
+ await new Promise((resolve) => setTimeout(resolve, pollInterval));
311
+ }
312
+ return {
313
+ taskId,
314
+ success: false,
315
+ error: {
316
+ code: 'TIMEOUT',
317
+ message: `Task did not complete within ${timeout}ms`,
318
+ },
319
+ };
320
+ }
321
+ //# sourceMappingURL=task.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.js","sourceRoot":"","sources":["../src/task.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,292 @@
1
+ /**
2
+ * Types for digital-tasks
3
+ *
4
+ * Task = Function + metadata (status, progress, assignment, dependencies)
5
+ *
6
+ * Every task is a function call. The function can be:
7
+ * - Code: generates executable code
8
+ * - Generative: AI generates content (no tools)
9
+ * - Agentic: AI with tools in a loop
10
+ * - Human: requires human input
11
+ *
12
+ * @packageDocumentation
13
+ */
14
+ import type { FunctionDefinition, CodeFunctionDefinition, GenerativeFunctionDefinition, AgenticFunctionDefinition, HumanFunctionDefinition } from 'ai-functions';
15
+ export type { FunctionDefinition, CodeFunctionDefinition, GenerativeFunctionDefinition, AgenticFunctionDefinition, HumanFunctionDefinition, };
16
+ /**
17
+ * Task lifecycle status
18
+ */
19
+ export type TaskStatus = 'pending' | 'queued' | 'assigned' | 'in_progress' | 'blocked' | 'review' | 'completed' | 'failed' | 'cancelled';
20
+ /**
21
+ * Task priority levels
22
+ */
23
+ export type TaskPriority = 'low' | 'normal' | 'high' | 'urgent' | 'critical';
24
+ /**
25
+ * Who can work on this task
26
+ */
27
+ export type WorkerType = 'agent' | 'human' | 'team' | 'any';
28
+ /**
29
+ * Worker reference
30
+ */
31
+ export interface WorkerRef {
32
+ type: WorkerType;
33
+ id: string;
34
+ name?: string;
35
+ role?: string;
36
+ }
37
+ /**
38
+ * Task assignment
39
+ */
40
+ export interface TaskAssignment {
41
+ worker: WorkerRef;
42
+ assignedAt: Date;
43
+ assignedBy?: string;
44
+ notes?: string;
45
+ }
46
+ /**
47
+ * Dependency type
48
+ */
49
+ export type DependencyType = 'blocks' | 'blocked_by' | 'related_to' | 'parent' | 'child';
50
+ /**
51
+ * Task dependency
52
+ */
53
+ export interface TaskDependency {
54
+ type: DependencyType;
55
+ taskId: string;
56
+ satisfied?: boolean;
57
+ }
58
+ /**
59
+ * Task progress
60
+ */
61
+ export interface TaskProgress {
62
+ percent: number;
63
+ step?: string;
64
+ totalSteps?: number;
65
+ currentStep?: number;
66
+ estimatedTimeRemaining?: number;
67
+ updatedAt: Date;
68
+ }
69
+ /**
70
+ * Task event for history
71
+ */
72
+ export interface TaskEvent {
73
+ id: string;
74
+ type: 'created' | 'assigned' | 'started' | 'progress' | 'blocked' | 'unblocked' | 'completed' | 'failed' | 'cancelled' | 'comment';
75
+ timestamp: Date;
76
+ actor?: WorkerRef;
77
+ data?: unknown;
78
+ message?: string;
79
+ }
80
+ /**
81
+ * Task = Function + metadata
82
+ *
83
+ * A task wraps a function (code, generative, agentic, or human)
84
+ * with lifecycle management, assignment, and dependencies.
85
+ */
86
+ export interface Task<TInput = unknown, TOutput = unknown> {
87
+ /** Unique task ID */
88
+ id: string;
89
+ /** The function this task executes */
90
+ function: FunctionDefinition<TInput, TOutput>;
91
+ /** Current status */
92
+ status: TaskStatus;
93
+ /** Priority level */
94
+ priority: TaskPriority;
95
+ /** Input value (resolved from function.args) */
96
+ input?: TInput;
97
+ /** Output value (when completed) */
98
+ output?: TOutput;
99
+ /** Error (when failed) */
100
+ error?: string;
101
+ /** Who can work on this */
102
+ allowedWorkers?: WorkerType[];
103
+ /** Current assignment */
104
+ assignment?: TaskAssignment;
105
+ /** Task dependencies */
106
+ dependencies?: TaskDependency[];
107
+ /** Current progress */
108
+ progress?: TaskProgress;
109
+ /** When created */
110
+ createdAt: Date;
111
+ /** Scheduled start time */
112
+ scheduledFor?: Date;
113
+ /** Deadline */
114
+ deadline?: Date;
115
+ /** When started */
116
+ startedAt?: Date;
117
+ /** When completed */
118
+ completedAt?: Date;
119
+ /** Timeout in ms */
120
+ timeout?: number;
121
+ /** Parent task ID */
122
+ parentId?: string;
123
+ /** Project ID */
124
+ projectId?: string;
125
+ /** Tags */
126
+ tags?: string[];
127
+ /** Custom metadata */
128
+ metadata?: Record<string, unknown>;
129
+ /** Event history */
130
+ events?: TaskEvent[];
131
+ }
132
+ /**
133
+ * Any task (for collections)
134
+ */
135
+ export type AnyTask = Task<any, any>;
136
+ /**
137
+ * Create task from a Code function
138
+ */
139
+ export interface CodeTaskOptions<TInput = unknown, TOutput = unknown> {
140
+ function: CodeFunctionDefinition<TInput, TOutput>;
141
+ input?: TInput;
142
+ priority?: TaskPriority;
143
+ assignTo?: WorkerRef;
144
+ dependencies?: string[];
145
+ deadline?: Date;
146
+ tags?: string[];
147
+ parentId?: string;
148
+ projectId?: string;
149
+ }
150
+ /**
151
+ * Create task from a Generative function
152
+ */
153
+ export interface GenerativeTaskOptions<TInput = unknown, TOutput = unknown> {
154
+ function: GenerativeFunctionDefinition<TInput, TOutput>;
155
+ input?: TInput;
156
+ priority?: TaskPriority;
157
+ assignTo?: WorkerRef;
158
+ dependencies?: string[];
159
+ deadline?: Date;
160
+ tags?: string[];
161
+ parentId?: string;
162
+ projectId?: string;
163
+ }
164
+ /**
165
+ * Create task from an Agentic function
166
+ */
167
+ export interface AgenticTaskOptions<TInput = unknown, TOutput = unknown> {
168
+ function: AgenticFunctionDefinition<TInput, TOutput>;
169
+ input?: TInput;
170
+ priority?: TaskPriority;
171
+ assignTo?: WorkerRef;
172
+ dependencies?: string[];
173
+ deadline?: Date;
174
+ tags?: string[];
175
+ parentId?: string;
176
+ projectId?: string;
177
+ }
178
+ /**
179
+ * Create task from a Human function
180
+ */
181
+ export interface HumanTaskOptions<TInput = unknown, TOutput = unknown> {
182
+ function: HumanFunctionDefinition<TInput, TOutput>;
183
+ input?: TInput;
184
+ priority?: TaskPriority;
185
+ assignTo?: WorkerRef;
186
+ dependencies?: string[];
187
+ deadline?: Date;
188
+ tags?: string[];
189
+ parentId?: string;
190
+ projectId?: string;
191
+ }
192
+ /**
193
+ * Generic task creation options
194
+ */
195
+ export interface CreateTaskOptions<TInput = unknown, TOutput = unknown> {
196
+ function: FunctionDefinition<TInput, TOutput>;
197
+ input?: TInput;
198
+ priority?: TaskPriority;
199
+ allowedWorkers?: WorkerType[];
200
+ assignTo?: WorkerRef;
201
+ dependencies?: string[];
202
+ scheduledFor?: Date;
203
+ deadline?: Date;
204
+ timeout?: number;
205
+ tags?: string[];
206
+ parentId?: string;
207
+ projectId?: string;
208
+ metadata?: Record<string, unknown>;
209
+ }
210
+ /**
211
+ * Task update options
212
+ */
213
+ export interface UpdateTaskOptions {
214
+ status?: TaskStatus;
215
+ progress?: Partial<TaskProgress>;
216
+ assignment?: TaskAssignment;
217
+ priority?: TaskPriority;
218
+ event?: Omit<TaskEvent, 'id' | 'timestamp'>;
219
+ metadata?: Record<string, unknown>;
220
+ }
221
+ /**
222
+ * Task query options
223
+ */
224
+ export interface TaskQuery {
225
+ status?: TaskStatus | TaskStatus[];
226
+ priority?: TaskPriority | TaskPriority[];
227
+ functionType?: 'code' | 'generative' | 'agentic' | 'human';
228
+ assignedTo?: string;
229
+ tags?: string[];
230
+ projectId?: string;
231
+ parentId?: string;
232
+ search?: string;
233
+ sortBy?: 'createdAt' | 'priority' | 'deadline' | 'status';
234
+ sortOrder?: 'asc' | 'desc';
235
+ limit?: number;
236
+ offset?: number;
237
+ }
238
+ /**
239
+ * Task queue options
240
+ */
241
+ export interface TaskQueueOptions {
242
+ name?: string;
243
+ concurrency?: number;
244
+ defaultTimeout?: number;
245
+ persistent?: boolean;
246
+ }
247
+ /**
248
+ * Task queue interface
249
+ */
250
+ export interface TaskQueue {
251
+ add(task: AnyTask): Promise<void>;
252
+ get(id: string): Promise<AnyTask | undefined>;
253
+ update(id: string, options: UpdateTaskOptions): Promise<AnyTask | undefined>;
254
+ remove(id: string): Promise<boolean>;
255
+ query(options: TaskQuery): Promise<AnyTask[]>;
256
+ getNextForWorker(worker: WorkerRef): Promise<AnyTask | undefined>;
257
+ claim(taskId: string, worker: WorkerRef): Promise<boolean>;
258
+ complete(taskId: string, output: unknown): Promise<void>;
259
+ fail(taskId: string, error: string): Promise<void>;
260
+ stats(): Promise<TaskQueueStats>;
261
+ }
262
+ /**
263
+ * Task queue stats
264
+ */
265
+ export interface TaskQueueStats {
266
+ total: number;
267
+ byStatus: Record<TaskStatus, number>;
268
+ byPriority: Record<TaskPriority, number>;
269
+ byFunctionType?: Record<string, number>;
270
+ avgWaitTime?: number;
271
+ avgCompletionTime?: number;
272
+ }
273
+ /**
274
+ * Task execution result
275
+ */
276
+ export interface TaskResult<TOutput = unknown> {
277
+ taskId: string;
278
+ success: boolean;
279
+ output?: TOutput;
280
+ error?: {
281
+ code: string;
282
+ message: string;
283
+ details?: unknown;
284
+ };
285
+ metadata?: {
286
+ duration: number;
287
+ startedAt: Date;
288
+ completedAt: Date;
289
+ worker?: WorkerRef;
290
+ };
291
+ }
292
+ //# 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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"}
package/dist/types.js ADDED
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Types for digital-tasks
3
+ *
4
+ * Task = Function + metadata (status, progress, assignment, dependencies)
5
+ *
6
+ * Every task is a function call. The function can be:
7
+ * - Code: generates executable code
8
+ * - Generative: AI generates content (no tools)
9
+ * - Agentic: AI with tools in a loop
10
+ * - Human: requires human input
11
+ *
12
+ * @packageDocumentation
13
+ */
14
+ export {};
15
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG"}