@decaf-ts/core 0.7.63 → 0.7.65

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 (112) hide show
  1. package/README.md +1 -1
  2. package/dist/core.cjs +1 -1
  3. package/dist/core.cjs.map +1 -1
  4. package/dist/core.js +1 -1
  5. package/dist/core.js.map +1 -1
  6. package/lib/esm/index.d.ts +1 -1
  7. package/lib/esm/index.js +1 -1
  8. package/lib/esm/migrations/MigrationService.js +2 -4
  9. package/lib/esm/migrations/MigrationService.js.map +1 -1
  10. package/lib/esm/migrations/MigrationTasks.d.ts +9 -0
  11. package/lib/esm/migrations/MigrationTasks.js +69 -0
  12. package/lib/esm/migrations/MigrationTasks.js.map +1 -0
  13. package/lib/esm/migrations/index.d.ts +1 -0
  14. package/lib/esm/migrations/index.js +1 -0
  15. package/lib/esm/migrations/index.js.map +1 -1
  16. package/lib/esm/persistence/Context.d.ts +4 -0
  17. package/lib/esm/persistence/Context.js +6 -0
  18. package/lib/esm/persistence/Context.js.map +1 -1
  19. package/lib/esm/persistence/ObserverHandler.d.ts +2 -1
  20. package/lib/esm/persistence/ObserverHandler.js.map +1 -1
  21. package/lib/esm/persistence/constants.d.ts +1 -0
  22. package/lib/esm/persistence/constants.js +1 -0
  23. package/lib/esm/persistence/constants.js.map +1 -1
  24. package/lib/esm/persistence/types.d.ts +1 -1
  25. package/lib/esm/ram/RamAdapter.js +9 -9
  26. package/lib/esm/ram/RamAdapter.js.map +1 -1
  27. package/lib/esm/ram/types.d.ts +2 -2
  28. package/lib/esm/services/PersistenceService.js +9 -1
  29. package/lib/esm/services/PersistenceService.js.map +1 -1
  30. package/lib/esm/tasks/TaskContext.d.ts +9 -4
  31. package/lib/esm/tasks/TaskContext.js +18 -3
  32. package/lib/esm/tasks/TaskContext.js.map +1 -1
  33. package/lib/esm/tasks/TaskEngine.d.ts +8 -22
  34. package/lib/esm/tasks/TaskEngine.js +189 -112
  35. package/lib/esm/tasks/TaskEngine.js.map +1 -1
  36. package/lib/esm/tasks/TaskEventBus.d.ts +8 -3
  37. package/lib/esm/tasks/TaskEventBus.js +15 -7
  38. package/lib/esm/tasks/TaskEventBus.js.map +1 -1
  39. package/lib/esm/tasks/TaskHandler.js +9 -2
  40. package/lib/esm/tasks/TaskHandler.js.map +1 -1
  41. package/lib/esm/tasks/TaskService.d.ts +33 -3
  42. package/lib/esm/tasks/TaskService.js +181 -2
  43. package/lib/esm/tasks/TaskService.js.map +1 -1
  44. package/lib/esm/tasks/builder.d.ts +42 -0
  45. package/lib/esm/tasks/builder.js +180 -0
  46. package/lib/esm/tasks/builder.js.map +1 -0
  47. package/lib/esm/tasks/logging.d.ts +30 -0
  48. package/lib/esm/tasks/logging.js +73 -0
  49. package/lib/esm/tasks/logging.js.map +1 -0
  50. package/lib/esm/tasks/models/TaskBackoffModel.js +7 -3
  51. package/lib/esm/tasks/models/TaskBackoffModel.js.map +1 -1
  52. package/lib/esm/tasks/models/TaskModel.d.ts +2 -2
  53. package/lib/esm/tasks/models/TaskModel.js +10 -3
  54. package/lib/esm/tasks/models/TaskModel.js.map +1 -1
  55. package/lib/esm/tasks/models/TaskStepSpecModel.d.ts +1 -1
  56. package/lib/esm/tasks/models/TaskStepSpecModel.js +3 -1
  57. package/lib/esm/tasks/models/TaskStepSpecModel.js.map +1 -1
  58. package/lib/esm/tasks/types.d.ts +8 -4
  59. package/lib/index.cjs +1 -1
  60. package/lib/index.d.ts +1 -1
  61. package/lib/migrations/MigrationService.cjs +2 -4
  62. package/lib/migrations/MigrationService.js.map +1 -1
  63. package/lib/migrations/MigrationTasks.cjs +72 -0
  64. package/lib/migrations/MigrationTasks.d.ts +9 -0
  65. package/lib/migrations/MigrationTasks.js.map +1 -0
  66. package/lib/migrations/index.cjs +1 -0
  67. package/lib/migrations/index.d.ts +1 -0
  68. package/lib/migrations/index.js.map +1 -1
  69. package/lib/persistence/Context.cjs +8 -1
  70. package/lib/persistence/Context.d.ts +4 -0
  71. package/lib/persistence/Context.js.map +1 -1
  72. package/lib/persistence/ObserverHandler.d.ts +2 -1
  73. package/lib/persistence/ObserverHandler.js.map +1 -1
  74. package/lib/persistence/constants.cjs +1 -0
  75. package/lib/persistence/constants.d.ts +1 -0
  76. package/lib/persistence/constants.js.map +1 -1
  77. package/lib/persistence/types.d.ts +1 -1
  78. package/lib/ram/RamAdapter.cjs +8 -8
  79. package/lib/ram/RamAdapter.js.map +1 -1
  80. package/lib/ram/types.d.ts +2 -2
  81. package/lib/services/PersistenceService.cjs +9 -1
  82. package/lib/services/PersistenceService.js.map +1 -1
  83. package/lib/tasks/TaskContext.cjs +19 -4
  84. package/lib/tasks/TaskContext.d.ts +9 -4
  85. package/lib/tasks/TaskContext.js.map +1 -1
  86. package/lib/tasks/TaskEngine.cjs +187 -110
  87. package/lib/tasks/TaskEngine.d.ts +8 -22
  88. package/lib/tasks/TaskEngine.js.map +1 -1
  89. package/lib/tasks/TaskEventBus.cjs +15 -7
  90. package/lib/tasks/TaskEventBus.d.ts +8 -3
  91. package/lib/tasks/TaskEventBus.js.map +1 -1
  92. package/lib/tasks/TaskHandler.cjs +9 -2
  93. package/lib/tasks/TaskHandler.js.map +1 -1
  94. package/lib/tasks/TaskService.cjs +179 -0
  95. package/lib/tasks/TaskService.d.ts +33 -3
  96. package/lib/tasks/TaskService.js.map +1 -1
  97. package/lib/tasks/builder.cjs +186 -0
  98. package/lib/tasks/builder.d.ts +42 -0
  99. package/lib/tasks/builder.js.map +1 -0
  100. package/lib/tasks/logging.cjs +77 -0
  101. package/lib/tasks/logging.d.ts +30 -0
  102. package/lib/tasks/logging.js.map +1 -0
  103. package/lib/tasks/models/TaskBackoffModel.cjs +6 -2
  104. package/lib/tasks/models/TaskBackoffModel.js.map +1 -1
  105. package/lib/tasks/models/TaskModel.cjs +10 -3
  106. package/lib/tasks/models/TaskModel.d.ts +2 -2
  107. package/lib/tasks/models/TaskModel.js.map +1 -1
  108. package/lib/tasks/models/TaskStepSpecModel.cjs +3 -1
  109. package/lib/tasks/models/TaskStepSpecModel.d.ts +1 -1
  110. package/lib/tasks/models/TaskStepSpecModel.js.map +1 -1
  111. package/lib/tasks/types.d.ts +8 -4
  112. package/package.json +1 -1
@@ -3,14 +3,12 @@ import { Repository } from "./../repository/Repository.js";
3
3
  import { TaskEventModel } from "./models/TaskEventModel.js";
4
4
  import { TaskHandlerRegistry } from "./TaskHandlerRegistry.js";
5
5
  import { TaskEventBus } from "./TaskEventBus.js";
6
- import { TaskBackoffModel } from "./models/TaskBackoffModel.js";
7
- import { TaskStepSpecModel } from "./models/TaskStepSpecModel.js";
8
6
  import { Condition } from "./../query/Condition.js";
9
7
  import { TaskStepResultModel } from "./models/TaskStepResultModel.js";
10
8
  import { TaskLogEntryModel } from "./models/TaskLogEntryModel.js";
11
- import { BackoffStrategy, JitterStrategy, TaskEventType, TaskStatus, TaskType, } from "./constants.js";
9
+ import { TaskEventType, TaskStatus, TaskType } from "./constants.js";
12
10
  import { LogLevel } from "@decaf-ts/logging";
13
- import { ContextualLoggedClass } from "./../utils/ContextualLoggedClass.js";
11
+ import { AbsContextual, } from "./../utils/ContextualLoggedClass.js";
14
12
  import { InternalError } from "@decaf-ts/db-decorators";
15
13
  import { computeBackoffMs, serializeError, sleep } from "./utils.js";
16
14
  import { TaskContext } from "./TaskContext.js";
@@ -21,8 +19,11 @@ export const DefaultTaskEngineConfig = {
21
19
  pollMsIdle: 1000,
22
20
  pollMsBusy: 500,
23
21
  logTailMax: 100,
22
+ streamBufferSize: 5,
23
+ maxLoggingBuffer: 300,
24
+ loggingBufferTruncation: 20,
24
25
  };
25
- export class TaskEngine extends ContextualLoggedClass {
26
+ export class TaskEngine extends AbsContextual {
26
27
  get adapter() {
27
28
  return this.config.adapter;
28
29
  }
@@ -35,7 +36,7 @@ export class TaskEngine extends ContextualLoggedClass {
35
36
  get tasks() {
36
37
  if (this._tasks)
37
38
  return this._tasks;
38
- this._tasks = Repository.forModel(TaskModel, this.config.adapter.alias);
39
+ this._tasks = Repository.forModel(TaskModel, this.adapter.alias);
39
40
  return this._tasks;
40
41
  }
41
42
  get events() {
@@ -53,58 +54,83 @@ export class TaskEngine extends ContextualLoggedClass {
53
54
  registry: config.registry || new TaskHandlerRegistry(),
54
55
  });
55
56
  }
56
- async enqueueAtomic(arg) {
57
- const doc = new TaskModel({
58
- id: arg.id,
59
- type: TaskType.ATOMIC,
60
- name: arg.name,
61
- status: TaskStatus.PENDING,
62
- input: arg.input,
63
- attempt: 0,
64
- maxAttempts: arg.maxAttempts ?? 5,
65
- backoff: {
66
- strategy: arg.backoff?.strategy ?? BackoffStrategy.EXPONENTIAL,
67
- baseMs: arg.backoff?.baseMs ?? 1000,
68
- maxMs: arg.backoff?.maxMs ?? 60_000,
69
- jitter: arg.backoff?.jitter ?? JitterStrategy.FULL,
70
- },
71
- logTail: [],
72
- });
73
- return await this.tasks.create(doc);
74
- }
75
- async enqueueComposite(arg) {
76
- const doc = new TaskModel({
77
- id: arg.id,
78
- type: TaskType.COMPOSITE,
79
- name: arg.name,
80
- status: TaskStatus.PENDING,
81
- attempt: 0,
82
- maxAttempts: arg.maxAttempts ?? 5,
83
- backoff: new TaskBackoffModel({
84
- strategy: arg.backoff?.strategy ?? BackoffStrategy.EXPONENTIAL,
85
- baseMs: arg.backoff?.baseMs ?? 1000,
86
- maxMs: arg.backoff?.maxMs ?? 60_000,
87
- jitter: arg.backoff?.jitter ?? JitterStrategy.FULL,
88
- }),
89
- steps: arg.steps.map((s) => new TaskStepSpecModel({ type: s.type, input: s.input })),
90
- currentStep: 0,
91
- stepResults: [],
92
- logTail: [],
93
- });
94
- return await this.tasks.create(doc);
57
+ isRunning() {
58
+ return this.running;
95
59
  }
96
- async getTask(id) {
97
- return await this.tasks.read(id);
60
+ async push(task, ...args) {
61
+ const { ctx, log } = await this.logCtx(args, this.push, true);
62
+ log.verbose(`pushing task ${task.classification}`);
63
+ const t = await this.tasks.create(task, ctx);
64
+ log.info(`${task.classification} task registered under ${t.id}`);
65
+ return t;
98
66
  }
99
- async cancelTask(id) {
100
- const t = await this.tasks.read(id);
67
+ // async enqueueAtomic(arg: {
68
+ // id: string;
69
+ // input?: any;
70
+ // name?: string;
71
+ // maxAttempts?: number;
72
+ // backoff?: Partial<TaskBackoffModel>;
73
+ // }): Promise<TaskModel> {
74
+ // const doc = new TaskModel({
75
+ // id: arg.id,
76
+ // type: TaskType.ATOMIC,
77
+ // name: arg.name,
78
+ // status: TaskStatus.PENDING,
79
+ // input: arg.input,
80
+ // attempt: 0,
81
+ // maxAttempts: arg.maxAttempts ?? 5,
82
+ // backoff: {
83
+ // strategy: arg.backoff?.strategy ?? BackoffStrategy.EXPONENTIAL,
84
+ // baseMs: arg.backoff?.baseMs ?? 1000,
85
+ // maxMs: arg.backoff?.maxMs ?? 60_000,
86
+ // jitter: arg.backoff?.jitter ?? JitterStrategy.FULL,
87
+ // },
88
+ // logTail: [],
89
+ // });
90
+ //
91
+ // return await this.push(doc);
92
+ // }
93
+ //
94
+ // async enqueueComposite(arg: {
95
+ // id: string;
96
+ // name?: string;
97
+ // steps: Array<{ type: string; input?: any }>;
98
+ // maxAttempts?: number;
99
+ // backoff?: Partial<TaskBackoffModel>;
100
+ // }): Promise<TaskModel> {
101
+ // const doc = new TaskModel({
102
+ // id: arg.id,
103
+ // type: TaskType.COMPOSITE,
104
+ // name: arg.name,
105
+ // status: TaskStatus.PENDING,
106
+ // attempt: 0,
107
+ // maxAttempts: arg.maxAttempts ?? 5,
108
+ // backoff: new TaskBackoffModel({
109
+ // strategy: arg.backoff?.strategy ?? BackoffStrategy.EXPONENTIAL,
110
+ // baseMs: arg.backoff?.baseMs ?? 1000,
111
+ // maxMs: arg.backoff?.maxMs ?? 60_000,
112
+ // jitter: arg.backoff?.jitter ?? JitterStrategy.FULL,
113
+ // }),
114
+ // steps: arg.steps.map(
115
+ // (s) => new TaskStepSpecModel({ classification: s.type, input: s.input })
116
+ // ),
117
+ // currentStep: 0,
118
+ // stepResults: [],
119
+ // logTail: [],
120
+ // });
121
+ //
122
+ // return await this.push(doc);
123
+ // }
124
+ async cancel(id, ...args) {
125
+ const { ctx } = (await this.logCtx(args, "cancel", true)).for(this.cancel);
126
+ const t = await this.tasks.read(id, ctx);
101
127
  if (t.status === TaskStatus.SUCCEEDED || t.status === TaskStatus.FAILED)
102
128
  return t;
103
129
  t.status = TaskStatus.CANCELED;
104
130
  t.leaseOwner = undefined;
105
131
  t.leaseExpiry = undefined;
106
- const saved = await this.tasks.update(t);
107
- await this.emitStatus(saved, TaskStatus.CANCELED);
132
+ const saved = await this.tasks.update(t, ctx);
133
+ await this.emitStatus(ctx, saved, TaskStatus.CANCELED);
108
134
  return saved;
109
135
  }
110
136
  start() {
@@ -121,13 +147,15 @@ export class TaskEngine extends ContextualLoggedClass {
121
147
  // -------------------------
122
148
  async loop() {
123
149
  while (this.running) {
124
- const claimed = await this.claimBatch();
125
- await Promise.allSettled(claimed.map((t) => this.executeClaimed(t)));
150
+ const { ctx } = await this.logCtx([], "loop", true);
151
+ const claimed = await this.claimBatch(ctx);
152
+ await Promise.allSettled(claimed.map((t) => this.executeClaimed(t, ctx)));
126
153
  await sleep(claimed.length ? this.config.pollMsBusy : this.config.pollMsIdle);
127
154
  }
128
155
  }
129
- async claimBatch() {
130
- const now = new Date();
156
+ async claimBatch(ctx) {
157
+ const log = ctx.logger.for(this.claimBatch);
158
+ const now = ctx.timestamp;
131
159
  // Runnable:
132
160
  // - PENDING
133
161
  // - WAITING_RETRY with nextRunAt <= now
@@ -146,27 +174,31 @@ export class TaskEngine extends ContextualLoggedClass {
146
174
  .where(runnable)
147
175
  .limit(Math.max(this.config.concurrency * 4, 20))
148
176
  .execute();
177
+ log.verbose(`claimBatch candidates:${candidates.length}`);
149
178
  const out = [];
150
179
  for (const c of candidates) {
151
- const claimed = await this.tryClaim(c);
180
+ const claimed = await this.tryClaim(c, ctx);
152
181
  if (claimed)
153
182
  out.push(claimed);
154
183
  if (out.length >= this.config.concurrency)
155
184
  break;
156
185
  }
186
+ log.verbose(`claimBatch claimed:${out.length}`);
157
187
  return out;
158
188
  }
159
- async tryClaim(task) {
160
- const now = Date.now();
189
+ async tryClaim(task, ctx) {
190
+ const log = ctx.logger.for(this.claimBatch);
191
+ const now = ctx.timestamp.getTime();
161
192
  const claimed = new TaskModel({
162
193
  ...task,
163
194
  status: TaskStatus.RUNNING,
164
195
  leaseOwner: this.config.workerId,
165
196
  leaseExpiry: new Date(now + this.config.leaseMs),
166
197
  });
198
+ log.info(`running handler for ${task.id} (${task.classification}) atomicity ${task.atomicity}`);
167
199
  try {
168
200
  // optimistic update; conflict errors depend on adapter implementation
169
- return await this.tasks.update(claimed);
201
+ return await this.tasks.update(claimed, ctx);
170
202
  }
171
203
  catch {
172
204
  return null;
@@ -175,17 +207,21 @@ export class TaskEngine extends ContextualLoggedClass {
175
207
  // -------------------------
176
208
  // Execution
177
209
  // -------------------------
178
- async executeClaimed(task) {
179
- const taskId = task.id;
180
- const ctx = new TaskContext().accumulate({
181
- taskId,
210
+ async executeClaimed(task, context) {
211
+ const { log } = this.logCtx([context], this.executeClaimed);
212
+ const { ctx } = (await this.tasks["adapter"]["logCtx"]([TaskModel], task.classification, true, {
213
+ taskId: task.id,
182
214
  attempt: task.attempt,
183
- log: async (level, msg, meta) => {
184
- task = await this.appendLog(task, level, msg, meta);
185
- await this.emitLog(taskId, level, msg, meta);
215
+ resultCache: {},
216
+ pipe: async (data) => {
217
+ const [, logs] = await this.appendLog(ctx, task, data);
218
+ await this.emitLog(ctx, taskId, logs);
219
+ },
220
+ flush: async () => {
221
+ return ctx.logger.flush(ctx.pipe);
186
222
  },
187
223
  progress: async (data) => {
188
- await this.emitProgress(taskId, data);
224
+ await this.emitProgress(ctx, taskId, data);
189
225
  },
190
226
  heartbeat: async () => {
191
227
  // extend lease
@@ -199,28 +235,35 @@ export class TaskEngine extends ContextualLoggedClass {
199
235
  // if we lose the claim, execution should still proceed; next update will fail and be retried by recovery
200
236
  }
201
237
  },
202
- });
203
- await this.emitStatus(task, TaskStatus.RUNNING);
238
+ })).for(this.executeClaimed);
239
+ const taskId = task.id;
240
+ const taskContext = new TaskContext(ctx);
241
+ await this.emitStatus(ctx, task, TaskStatus.RUNNING);
204
242
  try {
205
243
  let output;
206
- if (task.type === TaskType.COMPOSITE) {
207
- output = await this.runComposite(task, ctx);
244
+ if (task.atomicity === TaskType.COMPOSITE) {
245
+ output = await this.runComposite(task, taskContext);
208
246
  }
209
247
  else {
210
- const handler = this.registry.get(task.type);
248
+ const handler = this.registry.get(task.classification);
249
+ log.debug(`handler type for ${task.id} is ${handler?.constructor?.name ?? "none"}`);
211
250
  if (!handler)
212
- throw new InternalError(`No task handler registered for type: ${task.type}`);
213
- output = await handler.run(task.input, ctx);
251
+ throw new InternalError(`No task handler registered for type: ${task.classification}`);
252
+ output = await handler.run(task.input, taskContext);
253
+ log.verbose(`handler finished for ${task.id}`);
214
254
  }
215
255
  task.status = TaskStatus.SUCCEEDED;
216
256
  task.output = output;
217
257
  task.error = undefined;
218
258
  task.leaseOwner = undefined;
219
259
  task.leaseExpiry = undefined;
220
- task = await this.tasks.update(task);
221
- await this.emitStatus(task, TaskStatus.SUCCEEDED);
260
+ task = await this.tasks.update(task, ctx);
261
+ taskContext.logger.info(`task ${task.id} success state ${task.status}`);
262
+ log.info(`task ${task.id} success state ${task.status} attempt ${task.attempt}`);
263
+ await this.emitStatus(taskContext, task, TaskStatus.SUCCEEDED);
222
264
  }
223
265
  catch (err) {
266
+ log.error("task execution error", err);
224
267
  const nextAttempt = (task.attempt ?? 0) + 1;
225
268
  const serialized = serializeError(err);
226
269
  if (nextAttempt < task.maxAttempts) {
@@ -232,9 +275,10 @@ export class TaskEngine extends ContextualLoggedClass {
232
275
  task.error = serialized;
233
276
  task.leaseOwner = undefined;
234
277
  task.leaseExpiry = undefined;
235
- task = await this.tasks.update(task);
236
- await this.emitStatus(task, TaskStatus.WAITING_RETRY);
237
- await ctx.log(LogLevel.warn, `Retry scheduled`, {
278
+ task = await this.tasks.update(task, ctx);
279
+ log.warn(`task ${task.id} waiting retry state ${task.status} attempt ${task.attempt}`);
280
+ await this.emitStatus(taskContext, task, TaskStatus.WAITING_RETRY);
281
+ await ctx.pipe(LogLevel.warn, `Retry scheduled`, {
238
282
  nextRunAt,
239
283
  delayMs: delay,
240
284
  attempt: nextAttempt,
@@ -246,35 +290,61 @@ export class TaskEngine extends ContextualLoggedClass {
246
290
  task.error = serialized;
247
291
  task.leaseOwner = undefined;
248
292
  task.leaseExpiry = undefined;
249
- task = await this.tasks.update(task);
250
- await this.emitStatus(task, TaskStatus.FAILED);
251
- await ctx.log(LogLevel.error, `Task failed (max attempts reached)`, {
293
+ task = await this.tasks.update(task, ctx);
294
+ log.error(`task ${task.id} failed state ${task.status} attempt ${task.attempt}`);
295
+ await this.emitStatus(taskContext, task, TaskStatus.FAILED);
296
+ await ctx.pipe(LogLevel.error, `Task failed (max attempts reached)`, {
252
297
  maxAttempts: task.maxAttempts,
253
298
  });
254
299
  }
255
300
  }
256
301
  }
257
- async runComposite(task, ctx) {
302
+ async runComposite(task, context) {
303
+ const { ctx } = (await this.logCtx([context], task.classification, true)).for(this.runComposite);
258
304
  const steps = task.steps ?? [];
259
305
  let idx = task.currentStep ?? 0;
260
306
  const results = task.stepResults ?? [];
307
+ const cacheResult = (key, value) => {
308
+ context.cacheResult(key, value);
309
+ if (ctx instanceof TaskContext && ctx !== context) {
310
+ ctx.cacheResult(key, value);
311
+ }
312
+ };
313
+ for (let i = 0; i < results.length; i += 1) {
314
+ const existing = results[i];
315
+ if (existing?.status === TaskStatus.SUCCEEDED) {
316
+ const prevStep = steps[i];
317
+ if (!prevStep)
318
+ continue;
319
+ const cacheKey = `${task.id}:step:${i}`;
320
+ cacheResult(prevStep.classification, existing.output);
321
+ cacheResult(cacheKey, existing.output);
322
+ }
323
+ }
261
324
  while (idx < steps.length) {
262
325
  const step = steps[idx];
263
- const handler = this.registry.get(step.type);
326
+ const handler = this.registry.get(step.classification);
264
327
  if (!handler)
265
- throw new Error(`No task handler registered for composite step: ${step.type}`);
266
- await ctx.log(LogLevel.info, `Composite step ${idx + 1}/${steps.length}: ${step.type}`);
328
+ throw new Error(`No task handler registered for composite step: ${step.classification}`);
329
+ await ctx.pipe([
330
+ LogLevel.info,
331
+ `Composite step ${idx + 1}/${steps.length}: ${step.classification}`,
332
+ ]);
267
333
  try {
268
334
  const out = await handler.run(step.input, ctx);
269
- results[idx] = new TaskStepResultModel({
335
+ const stepIndex = idx;
336
+ results[stepIndex] = new TaskStepResultModel({
270
337
  status: TaskStatus.SUCCEEDED,
271
338
  output: out,
272
339
  });
273
- idx += 1;
340
+ const cacheKey = `${task.id}:step:${stepIndex}`;
341
+ cacheResult(step.classification, out);
342
+ cacheResult(cacheKey, out);
343
+ idx = stepIndex + 1;
274
344
  task.stepResults = results;
275
345
  task.currentStep = idx;
276
346
  task = await this.tasks.update(task);
277
- await this.emitProgress(task.id, {
347
+ await this.emitProgress(ctx, task.id, {
278
348
  currentStep: idx,
279
349
  totalSteps: steps.length,
280
350
  });
@@ -297,42 +367,49 @@ export class TaskEngine extends ContextualLoggedClass {
297
367
  // -------------------------
298
368
  // Events + log tail persistence
299
369
  // -------------------------
300
- async appendLog(task, level, msg, meta) {
301
- const entry = new TaskLogEntryModel({
302
- level,
303
- msg,
304
- meta,
370
+ async appendLog(ctx, task, logEntries) {
371
+ const isMulti = Array.isArray(logEntries) && Array.isArray(logEntries[0]);
372
+ const entries = (isMulti ? logEntries : [logEntries]).map(([level, msg, meta]) => {
373
+ return new TaskLogEntryModel({
374
+ level,
375
+ msg,
376
+ meta,
377
+ });
305
378
  });
306
- const nextTail = [...(task.logTail ?? []), entry].slice(-this.config.logTailMax);
379
+ const nextTail = [...(task.logTail ?? []), ...entries].slice(-this.config.logTailMax);
307
380
  task.logTail = nextTail;
308
381
  try {
309
- return await this.tasks.update(task);
382
+ return [await this.tasks.update(task, ctx), entries];
310
383
  }
311
384
  catch {
312
- return task;
385
+ return [task, []];
313
386
  }
314
387
  }
315
- async emitStatus(task, status) {
316
- const evt = await this.persistEvent(task.id, TaskEventType.STATUS, {
388
+ async emitStatus(ctx, task, status) {
389
+ if (ctx instanceof TaskContext) {
390
+ await ctx.flush();
391
+ }
392
+ const evt = await this.persistEvent(ctx, task.id, TaskEventType.STATUS, {
317
393
  status,
318
394
  });
319
- this.bus.emit(evt);
395
+ this.bus.emit(evt, ctx);
320
396
  }
321
- async emitLog(taskId, level, msg, meta) {
322
- const evt = await this.persistEvent(taskId, TaskEventType.LOG, {
323
- level,
324
- msg,
325
- meta,
326
- });
327
- this.bus.emit(evt);
397
+ async emitLog(ctx, taskId, entries) {
398
+ const evt = await this.persistEvent(ctx, taskId, TaskEventType.LOG, entries.map((e) => ({
399
+ ts: e.ts,
400
+ level: e.level,
401
+ msg: e.msg,
402
+ meta: e.meta,
403
+ })));
404
+ this.bus.emit(evt, ctx);
328
405
  }
329
- async emitProgress(taskId, data) {
330
- const evt = await this.persistEvent(taskId, TaskEventType.PROGRESS, data);
331
- this.bus.emit(evt);
406
+ async emitProgress(ctx, taskId, data) {
407
+ const evt = await this.persistEvent(ctx, taskId, TaskEventType.PROGRESS, data);
408
+ this.bus.emit(evt, ctx);
332
409
  }
333
- async persistEvent(taskId, type, payload) {
410
+ async persistEvent(ctx, taskId, type, payload) {
334
411
  const evt = new TaskEventModel({ taskId, type, payload });
335
- return await this.events.create(evt);
412
+ return await this.events.create(evt, ctx);
336
413
  }
337
414
  toString() {
338
415
  return `TaskEngine<${this.config.adapter.alias}>`;
@@ -1 +1 @@
1
- {"version":3,"file":"TaskEngine.js","sourceRoot":"","sources":["../../../src/tasks/TaskEngine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TaskEngine.js","sourceRoot":"","sources":["../../../src/tasks/TaskEngine.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,11 @@
1
1
  import { TaskEventModel } from "./models/TaskEventModel";
2
- export declare class TaskEventBus {
2
+ import { Context, ObserverFilter, ObserverHandler } from "../persistence/index";
3
+ import { TaskContext } from "./TaskContext";
4
+ import { Observer } from "../interfaces/index";
5
+ export declare class TaskEventBus extends ObserverHandler<TaskContext> {
3
6
  protected readonly listeners: Set<(evt: TaskEventModel) => void>;
4
- on(listener: (evt: TaskEventModel) => void): () => void;
5
- emit(evt: TaskEventModel): void;
7
+ observe(observer: Observer, filter?: ObserverFilter): void;
8
+ unObserve(observer: Observer): void;
9
+ on(observer: Observer): () => void;
10
+ emit(evt: TaskEventModel, ctx: Context): void;
6
11
  }
@@ -1,14 +1,22 @@
1
- export class TaskEventBus {
1
+ import { TaskEventModel } from "./models/TaskEventModel.js";
2
+ import { ObserverHandler } from "./../persistence/index.js";
3
+ export class TaskEventBus extends ObserverHandler {
2
4
  constructor() {
5
+ super(...arguments);
3
6
  this.listeners = new Set();
4
7
  }
5
- on(listener) {
6
- this.listeners.add(listener);
7
- return () => this.listeners.delete(listener);
8
+ observe(observer, filter) {
9
+ super.observe(observer, filter);
8
10
  }
9
- emit(evt) {
10
- for (const l of this.listeners)
11
- l(evt);
11
+ unObserve(observer) {
12
+ super.unObserve(observer);
13
+ }
14
+ on(observer) {
15
+ this.observe(observer);
16
+ return () => this.unObserve(observer);
17
+ }
18
+ emit(evt, ctx) {
19
+ this.updateObservers(TaskEventModel, evt.classification, evt.id, evt, ctx);
12
20
  }
13
21
  }
14
22
  //# sourceMappingURL=TaskEventBus.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TaskEventBus.js","sourceRoot":"","sources":["../../../src/tasks/TaskEventBus.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,YAAY;IAAzB;QACqB,cAAS,GAAG,IAAI,GAAG,EAAiC,CAAC;IAU1E,CAAC;IARC,EAAE,CAAC,QAAuC;QACxC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,CAAC,GAAmB;QACtB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,SAAS;YAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IACzC,CAAC;CACF"}
1
+ {"version":3,"file":"TaskEventBus.js","sourceRoot":"","sources":["../../../src/tasks/TaskEventBus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,mCAAgC;AAEzD,OAAO,EAA2B,eAAe,EAAE,kCAA6B;AAIhF,MAAM,OAAO,YAAa,SAAQ,eAA4B;IAA9D;;QACqB,cAAS,GAAG,IAAI,GAAG,EAAiC,CAAC;IAkB1E,CAAC;IAhBU,OAAO,CAAC,QAAkB,EAAE,MAAuB;QAC1D,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAClC,CAAC;IAEQ,SAAS,CAAC,QAAkB;QACnC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC5B,CAAC;IAED,EAAE,CAAC,QAAkB;QACnB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,CAAC,GAAmB,EAAE,GAAY;QACpC,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,EAAE,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC7E,CAAC;CACF"}
@@ -4,8 +4,15 @@ import { InternalError, wrapMethodWithContext } from "@decaf-ts/db-decorators";
4
4
  import { AbsContextual, } from "./../utils/ContextualLoggedClass.js";
5
5
  export class TaskHandler extends AbsContextual {
6
6
  get type() {
7
- if (!this._type)
8
- this._type = Metadata.get(this.constructor, TasksKey);
7
+ if (!this._type) {
8
+ const meta = Metadata.get(this.constructor, TasksKey);
9
+ if (typeof meta === "string") {
10
+ this._type = meta;
11
+ }
12
+ else if (meta && typeof meta.type === "string") {
13
+ this._type = meta.type;
14
+ }
15
+ }
9
16
  if (!this._type)
10
17
  throw new InternalError(`No type annotation for this handler found. did you use @task()?`);
11
18
  return this._type;
@@ -1 +1 @@
1
- {"version":3,"file":"TaskHandler.js","sourceRoot":"","sources":["../../../src/tasks/TaskHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,uBAAoB;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EACL,aAAa,GAEd,4CAAuC;AAGxC,MAAM,OAAgB,WACpB,SAAQ,aAA0B;IAKlC,IAAI,IAAI;QACN,IAAI,CAAC,IAAI,CAAC,KAAK;YACb,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAkB,EAAE,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,IAAI,CAAC,KAAK;YACb,MAAM,IAAI,aAAa,CACrB,iEAAiE,CAClE,CAAC;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QACR,qBAAqB,CACnB,IAAI,EACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CACd,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,SAAS,CACvB,KAAQ,EACR,GAAG,IAAqC;QAExC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC;IAC7B,CAAC;IAES,SAAS,CAAC,MAAS,EAAE,GAAgB;QAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnD,GAAG,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC;IAChB,CAAC;CAGF"}
1
+ {"version":3,"file":"TaskHandler.js","sourceRoot":"","sources":["../../../src/tasks/TaskHandler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,uBAAoB;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EACL,aAAa,GAEd,4CAAuC;AAGxC,MAAM,OAAgB,WACpB,SAAQ,aAA0B;IAKlC,IAAI,IAAI;QACN,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;YAChB,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAkB,EAAE,QAAQ,CAAC,CAAC;YAC7D,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;YACpB,CAAC;iBAAM,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACjD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC;YACzB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,KAAK;YACb,MAAM,IAAI,aAAa,CACrB,iEAAiE,CAClE,CAAC;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QACR,qBAAqB,CACnB,IAAI,EACJ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EACnB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EACzB,IAAI,CAAC,GAAG,CAAC,IAAI,CACd,CAAC;IACJ,CAAC;IAES,KAAK,CAAC,SAAS,CACvB,KAAQ,EACR,GAAG,IAAqC;QAExC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QAC5E,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9D,OAAO,CAAC,KAAK,EAAE,GAAG,OAAO,CAAC,CAAC;IAC7B,CAAC;IAES,SAAS,CAAC,MAAS,EAAE,GAAgB;QAC7C,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QACnD,GAAG,CAAC,IAAI,CAAC,kBAAkB,GAAG,CAAC,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAChE,OAAO,MAAM,CAAC;IAChB,CAAC;CAGF"}