@taskcast/core 0.2.0 → 0.3.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 (40) hide show
  1. package/dist/config.d.ts +13 -2
  2. package/dist/config.d.ts.map +1 -1
  3. package/dist/config.js.map +1 -1
  4. package/dist/engine.d.ts +17 -1
  5. package/dist/engine.d.ts.map +1 -1
  6. package/dist/engine.js +93 -5
  7. package/dist/engine.js.map +1 -1
  8. package/dist/heartbeat-monitor.d.ts +40 -0
  9. package/dist/heartbeat-monitor.d.ts.map +1 -0
  10. package/dist/heartbeat-monitor.js +139 -0
  11. package/dist/heartbeat-monitor.js.map +1 -0
  12. package/dist/index.d.ts +4 -0
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +4 -0
  15. package/dist/index.js.map +1 -1
  16. package/dist/memory-adapters.d.ts +15 -1
  17. package/dist/memory-adapters.d.ts.map +1 -1
  18. package/dist/memory-adapters.js +93 -0
  19. package/dist/memory-adapters.js.map +1 -1
  20. package/dist/scheduler.d.ts +24 -0
  21. package/dist/scheduler.d.ts.map +1 -0
  22. package/dist/scheduler.js +64 -0
  23. package/dist/scheduler.js.map +1 -0
  24. package/dist/series.d.ts.map +1 -1
  25. package/dist/series.js +3 -2
  26. package/dist/series.js.map +1 -1
  27. package/dist/state-machine.d.ts.map +1 -1
  28. package/dist/state-machine.js +4 -3
  29. package/dist/state-machine.js.map +1 -1
  30. package/dist/types.d.ts +87 -2
  31. package/dist/types.d.ts.map +1 -1
  32. package/dist/worker-manager.d.ts +68 -0
  33. package/dist/worker-manager.d.ts.map +1 -0
  34. package/dist/worker-manager.js +336 -0
  35. package/dist/worker-manager.js.map +1 -0
  36. package/dist/worker-matching.d.ts +23 -0
  37. package/dist/worker-matching.d.ts.map +1 -0
  38. package/dist/worker-matching.js +50 -0
  39. package/dist/worker-matching.js.map +1 -0
  40. package/package.json +1 -1
@@ -23,6 +23,8 @@ export class MemoryShortTermStore {
23
23
  events = new Map();
24
24
  seriesLatest = new Map();
25
25
  indexCounters = new Map();
26
+ workers = new Map();
27
+ assignments = new Map();
26
28
  async saveTask(task) {
27
29
  this.tasks.set(task.id, { ...task });
28
30
  }
@@ -89,5 +91,96 @@ export class MemoryShortTermStore {
89
91
  }
90
92
  this.seriesLatest.set(key, { ...event });
91
93
  }
94
+ // Task query
95
+ async listTasks(filter) {
96
+ let tasks = Array.from(this.tasks.values());
97
+ if (filter.status?.length) {
98
+ tasks = tasks.filter((t) => filter.status.includes(t.status));
99
+ }
100
+ if (filter.types?.length) {
101
+ tasks = tasks.filter((t) => t.type !== undefined && filter.types.includes(t.type));
102
+ }
103
+ if (filter.tags) {
104
+ const { all, any, none } = filter.tags;
105
+ tasks = tasks.filter((t) => {
106
+ const taskTags = t.tags ?? [];
107
+ if (all && !all.every((tag) => taskTags.includes(tag)))
108
+ return false;
109
+ if (any && !any.some((tag) => taskTags.includes(tag)))
110
+ return false;
111
+ if (none && none.some((tag) => taskTags.includes(tag)))
112
+ return false;
113
+ return true;
114
+ });
115
+ }
116
+ if (filter.assignMode?.length) {
117
+ tasks = tasks.filter((t) => t.assignMode !== undefined && filter.assignMode.includes(t.assignMode));
118
+ }
119
+ if (filter.excludeTaskIds?.length) {
120
+ const excluded = new Set(filter.excludeTaskIds);
121
+ tasks = tasks.filter((t) => !excluded.has(t.id));
122
+ }
123
+ if (filter.limit !== undefined) {
124
+ tasks = tasks.slice(0, filter.limit);
125
+ }
126
+ return tasks;
127
+ }
128
+ // Worker state
129
+ async saveWorker(worker) {
130
+ this.workers.set(worker.id, { ...worker });
131
+ }
132
+ async getWorker(workerId) {
133
+ return this.workers.get(workerId) ?? null;
134
+ }
135
+ async listWorkers(filter) {
136
+ let workers = Array.from(this.workers.values());
137
+ if (filter?.status?.length) {
138
+ workers = workers.filter((w) => filter.status.includes(w.status));
139
+ }
140
+ if (filter?.connectionMode?.length) {
141
+ workers = workers.filter((w) => filter.connectionMode.includes(w.connectionMode));
142
+ }
143
+ return workers;
144
+ }
145
+ async deleteWorker(workerId) {
146
+ this.workers.delete(workerId);
147
+ }
148
+ // Atomic claim — single-threaded JS makes this safe without locking.
149
+ // The Redis adapter uses a Lua script for the same guarantee across processes.
150
+ async claimTask(taskId, workerId, cost) {
151
+ const worker = this.workers.get(workerId);
152
+ if (!worker || worker.usedSlots + cost > worker.capacity)
153
+ return false;
154
+ const task = this.tasks.get(taskId);
155
+ if (!task || (task.status !== 'pending' && task.status !== 'assigned'))
156
+ return false;
157
+ task.status = 'assigned';
158
+ task.assignedWorker = workerId;
159
+ task.cost = cost;
160
+ task.updatedAt = Date.now();
161
+ worker.usedSlots += cost;
162
+ return true;
163
+ }
164
+ // Worker assignments
165
+ async addAssignment(assignment) {
166
+ this.assignments.set(assignment.taskId, { ...assignment });
167
+ }
168
+ async removeAssignment(taskId) {
169
+ this.assignments.delete(taskId);
170
+ }
171
+ async getWorkerAssignments(workerId) {
172
+ return Array.from(this.assignments.values()).filter((a) => a.workerId === workerId);
173
+ }
174
+ async getTaskAssignment(taskId) {
175
+ return this.assignments.get(taskId) ?? null;
176
+ }
177
+ // TTL management — no-op in memory adapter (setTTL is also a no-op)
178
+ async clearTTL(_taskId) {
179
+ // no-op in memory adapter
180
+ }
181
+ // Task query by status
182
+ async listByStatus(statuses) {
183
+ return Array.from(this.tasks.values()).filter((t) => statuses.includes(t.status));
184
+ }
92
185
  }
93
186
  //# sourceMappingURL=memory-adapters.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"memory-adapters.js","sourceRoot":"","sources":["../src/memory-adapters.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"memory-adapters.js","sourceRoot":"","sources":["../src/memory-adapters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { TaskEngine } from './engine.js';
2
+ import type { ShortTermStore } from './types.js';
3
+ export interface TaskSchedulerOptions {
4
+ engine: TaskEngine;
5
+ shortTermStore: ShortTermStore;
6
+ checkIntervalMs?: number;
7
+ pausedColdAfterMs?: number;
8
+ blockedColdAfterMs?: number;
9
+ }
10
+ export declare class TaskScheduler {
11
+ private engine;
12
+ private shortTermStore;
13
+ private checkIntervalMs;
14
+ private timer?;
15
+ private pausedColdAfterMs?;
16
+ private blockedColdAfterMs?;
17
+ constructor(opts: TaskSchedulerOptions);
18
+ start(): void;
19
+ stop(): void;
20
+ tick(): Promise<void>;
21
+ private _checkWakeUpTimers;
22
+ private _checkColdDemotion;
23
+ }
24
+ //# sourceMappingURL=scheduler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.d.ts","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAEhD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,UAAU,CAAA;IAClB,cAAc,EAAE,cAAc,CAAA;IAC9B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,cAAc,CAAgB;IACtC,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,KAAK,CAAC,CAAgC;IAC9C,OAAO,CAAC,iBAAiB,CAAC,CAAQ;IAClC,OAAO,CAAC,kBAAkB,CAAC,CAAQ;gBAEvB,IAAI,EAAE,oBAAoB;IAQtC,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI;IAIN,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAKb,kBAAkB;YAclB,kBAAkB;CAkBjC"}
@@ -0,0 +1,64 @@
1
+ export class TaskScheduler {
2
+ engine;
3
+ shortTermStore;
4
+ checkIntervalMs;
5
+ timer;
6
+ pausedColdAfterMs;
7
+ blockedColdAfterMs;
8
+ constructor(opts) {
9
+ this.engine = opts.engine;
10
+ this.shortTermStore = opts.shortTermStore;
11
+ this.checkIntervalMs = opts.checkIntervalMs ?? 60_000;
12
+ if (opts.pausedColdAfterMs !== undefined)
13
+ this.pausedColdAfterMs = opts.pausedColdAfterMs;
14
+ if (opts.blockedColdAfterMs !== undefined)
15
+ this.blockedColdAfterMs = opts.blockedColdAfterMs;
16
+ }
17
+ start() {
18
+ this.timer = setInterval(() => this.tick().catch(() => { }), this.checkIntervalMs);
19
+ }
20
+ stop() {
21
+ if (this.timer)
22
+ clearInterval(this.timer);
23
+ }
24
+ async tick() {
25
+ await this._checkWakeUpTimers();
26
+ await this._checkColdDemotion();
27
+ }
28
+ async _checkWakeUpTimers() {
29
+ const blockedTasks = await this.shortTermStore.listByStatus(['blocked']);
30
+ const now = Date.now();
31
+ for (const task of blockedTasks) {
32
+ if (task.resumeAt && task.resumeAt <= now) {
33
+ try {
34
+ await this.engine.transitionTask(task.id, 'running');
35
+ }
36
+ catch {
37
+ // Task may have been transitioned by someone else
38
+ }
39
+ }
40
+ }
41
+ }
42
+ async _checkColdDemotion() {
43
+ if (!this.pausedColdAfterMs && !this.blockedColdAfterMs)
44
+ return;
45
+ const suspended = await this.shortTermStore.listByStatus(['paused', 'blocked']);
46
+ const now = Date.now();
47
+ for (const task of suspended) {
48
+ const threshold = task.status === 'paused' ? this.pausedColdAfterMs : this.blockedColdAfterMs;
49
+ if (!threshold)
50
+ continue;
51
+ if (now - task.updatedAt >= threshold) {
52
+ try {
53
+ await this.engine.publishEvent(task.id, {
54
+ type: 'taskcast:cold',
55
+ level: 'info',
56
+ data: {},
57
+ });
58
+ }
59
+ catch { /* best-effort */ }
60
+ }
61
+ }
62
+ }
63
+ }
64
+ //# sourceMappingURL=scheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scheduler.js","sourceRoot":"","sources":["../src/scheduler.ts"],"names":[],"mappings":"AAWA,MAAM,OAAO,aAAa;IAChB,MAAM,CAAY;IAClB,cAAc,CAAgB;IAC9B,eAAe,CAAQ;IACvB,KAAK,CAAiC;IACtC,iBAAiB,CAAS;IAC1B,kBAAkB,CAAS;IAEnC,YAAY,IAA0B;QACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAA;QACzC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,eAAe,IAAI,MAAM,CAAA;QACrD,IAAI,IAAI,CAAC,iBAAiB,KAAK,SAAS;YAAE,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAA;QACzF,IAAI,IAAI,CAAC,kBAAkB,KAAK,SAAS;YAAE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAA;IAC9F,CAAC;IAED,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,CAAA;IACnF,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,KAAK;YAAE,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC3C,CAAC;IAED,KAAK,CAAC,IAAI;QACR,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAA;QAC/B,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAA;IACjC,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,CAAC,CAAA;QACxE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;YAChC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,IAAI,GAAG,EAAE,CAAC;gBAC1C,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,CAAA;gBACtD,CAAC;gBAAC,MAAM,CAAC;oBACP,kDAAkD;gBACpD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,IAAI,CAAC,IAAI,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAAE,OAAM;QAC/D,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAA;QAC/E,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAA;YAC7F,IAAI,CAAC,SAAS;gBAAE,SAAQ;YACxB,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,IAAI,SAAS,EAAE,CAAC;gBACtC,IAAI,CAAC;oBACH,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE;wBACtC,IAAI,EAAE,eAAe;wBACrB,KAAK,EAAE,MAAM;wBACb,IAAI,EAAE,EAAE;qBACT,CAAC,CAAA;gBACJ,CAAC;gBAAC,MAAM,CAAC,CAAC,iBAAiB,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"series.d.ts","sourceRoot":"","sources":["../src/series.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3D,wBAAsB,aAAa,CACjC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,SAAS,CAAC,CAqCpB"}
1
+ {"version":3,"file":"series.d.ts","sourceRoot":"","sources":["../src/series.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,YAAY,CAAA;AAE3D,wBAAsB,aAAa,CACjC,KAAK,EAAE,SAAS,EAChB,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,SAAS,CAAC,CAsCpB"}
package/dist/series.js CHANGED
@@ -7,6 +7,7 @@ export async function processSeries(event, store) {
7
7
  return event;
8
8
  }
9
9
  if (seriesMode === 'accumulate') {
10
+ const field = event.seriesAccField ?? 'delta';
10
11
  const prev = await store.getSeriesLatest(taskId, seriesId);
11
12
  let merged = event;
12
13
  if (prev !== null) {
@@ -16,10 +17,10 @@ export async function processSeries(event, store) {
16
17
  const newData = (typeof event.data === 'object' && event.data !== null)
17
18
  ? event.data
18
19
  : {};
19
- if (typeof prevData['text'] === 'string' && typeof newData['text'] === 'string') {
20
+ if (typeof prevData[field] === 'string' && typeof newData[field] === 'string') {
20
21
  merged = {
21
22
  ...event,
22
- data: { ...newData, text: prevData['text'] + newData['text'] },
23
+ data: { ...newData, [field]: prevData[field] + newData[field] },
23
24
  };
24
25
  }
25
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"series.js","sourceRoot":"","sources":["../src/series.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAgB,EAChB,KAAqB;IAErB,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACzC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;IAE9C,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC1D,IAAI,MAAM,GAAG,KAAK,CAAA;QAElB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;gBACpE,CAAC,CAAC,IAAI,CAAC,IAA+B;gBACtC,CAAC,CAAC,EAAE,CAAA;YACN,MAAM,OAAO,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;gBACrE,CAAC,CAAC,KAAK,CAAC,IAA+B;gBACvC,CAAC,CAAC,EAAE,CAAA;YACN,IAAI,OAAO,QAAQ,CAAC,MAAM,CAAC,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,MAAM,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAChF,MAAM,GAAG;oBACP,GAAG,KAAK;oBACR,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE;iBAC/D,CAAA;YACH,CAAC;QACH,CAAC;QAED,MAAM,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;QACrD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,sFAAsF;IACtF,MAAM,KAAK,CAAC,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC3D,OAAO,KAAK,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"series.js","sourceRoot":"","sources":["../src/series.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAgB,EAChB,KAAqB;IAErB,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACzC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,KAAK,CAAA;IAE9C,IAAI,UAAU,KAAK,UAAU,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;QAChC,MAAM,KAAK,GAAG,KAAK,CAAC,cAAc,IAAI,OAAO,CAAA;QAC7C,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;QAC1D,IAAI,MAAM,GAAG,KAAK,CAAA;QAElB,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,MAAM,QAAQ,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC;gBACpE,CAAC,CAAC,IAAI,CAAC,IAA+B;gBACtC,CAAC,CAAC,EAAE,CAAA;YACN,MAAM,OAAO,GAAG,CAAC,OAAO,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;gBACrE,CAAC,CAAC,KAAK,CAAC,IAA+B;gBACvC,CAAC,CAAC,EAAE,CAAA;YACN,IAAI,OAAO,QAAQ,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC;gBAC9E,MAAM,GAAG;oBACP,GAAG,KAAK;oBACR,IAAI,EAAE,EAAE,GAAG,OAAO,EAAE,CAAC,KAAK,CAAC,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,EAAE;iBAChE,CAAA;YACH,CAAC;QACH,CAAC;QAED,MAAM,KAAK,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;QACrD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,sFAAsF;IACtF,MAAM,KAAK,CAAC,sBAAsB,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAA;IAC3D,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"state-machine.d.ts","sourceRoot":"","sources":["../src/state-machine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,eAAO,MAAM,iBAAiB,EAAE,SAAS,UAAU,EAKzC,CAAA;AAEV,eAAO,MAAM,kBAAkB,EAAE,SAAS,UAAU,EAG1C,CAAA;AAaV,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,GAAG,OAAO,CAIvE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,GAAG,UAAU,CAK5E;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAEtD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAEvD"}
1
+ {"version":3,"file":"state-machine.d.ts","sourceRoot":"","sources":["../src/state-machine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE5C,eAAO,MAAM,iBAAiB,EAAE,SAAS,UAAU,EAKzC,CAAA;AAEV,eAAO,MAAM,kBAAkB,EAAE,SAAS,UAAU,EAG1C,CAAA;AAcV,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,GAAG,OAAO,CAIvE;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,GAAG,UAAU,CAK5E;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAEtD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAEvD"}
@@ -9,10 +9,11 @@ export const SUSPENDED_STATUSES = [
9
9
  'blocked',
10
10
  ];
11
11
  const ALLOWED_TRANSITIONS = {
12
- pending: ['running', 'cancelled'],
12
+ pending: ['assigned', 'running', 'paused', 'cancelled'],
13
+ assigned: ['running', 'pending', 'paused', 'cancelled'],
13
14
  running: ['paused', 'blocked', 'completed', 'failed', 'timeout', 'cancelled'],
14
- paused: ['running', 'blocked', 'cancelled'],
15
- blocked: ['running', 'paused', 'cancelled', 'failed'],
15
+ paused: ['running', 'assigned', 'blocked', 'cancelled'],
16
+ blocked: ['running', 'assigned', 'paused', 'cancelled', 'failed'],
16
17
  completed: [],
17
18
  failed: [],
18
19
  timeout: [],
@@ -1 +1 @@
1
- {"version":3,"file":"state-machine.js","sourceRoot":"","sources":["../src/state-machine.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAA0B;IACtD,WAAW;IACX,QAAQ;IACR,SAAS;IACT,WAAW;CACH,CAAA;AAEV,MAAM,CAAC,MAAM,kBAAkB,GAA0B;IACvD,QAAQ;IACR,SAAS;CACD,CAAA;AAEV,MAAM,mBAAmB,GAAqC;IAC5D,OAAO,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;IACjC,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC;IAC7E,MAAM,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC;IAC3C,OAAO,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC;IACrD,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;CACd,CAAA;AAED,MAAM,UAAU,aAAa,CAAC,IAAgB,EAAE,EAAc;IAC5D,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,KAAK,CAAA;IAC7B,yGAAyG;IACzG,OAAO,mBAAmB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,KAAK,CAAA;AACzD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAgB,EAAE,EAAc;IAC9D,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,MAAM,EAAE,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAkB;IAC3C,OAAO,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAC3C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAkB;IAC5C,OAAO,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAC5C,CAAC"}
1
+ {"version":3,"file":"state-machine.js","sourceRoot":"","sources":["../src/state-machine.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,iBAAiB,GAA0B;IACtD,WAAW;IACX,QAAQ;IACR,SAAS;IACT,WAAW;CACH,CAAA;AAEV,MAAM,CAAC,MAAM,kBAAkB,GAA0B;IACvD,QAAQ;IACR,SAAS;CACD,CAAA;AAEV,MAAM,mBAAmB,GAAqC;IAC5D,OAAO,EAAE,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC;IACvD,QAAQ,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,CAAC;IACvD,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,CAAC;IAC7E,MAAM,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC;IACvD,OAAO,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC;IACjE,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,EAAE;IACV,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;CACd,CAAA;AAED,MAAM,UAAU,aAAa,CAAC,IAAgB,EAAE,EAAc;IAC5D,IAAI,IAAI,KAAK,EAAE;QAAE,OAAO,KAAK,CAAA;IAC7B,yGAAyG;IACzG,OAAO,mBAAmB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,KAAK,CAAA;AACzD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAgB,EAAE,EAAc;IAC9D,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,KAAK,CAAC,uBAAuB,IAAI,MAAM,EAAE,EAAE,CAAC,CAAA;IACxD,CAAC;IACD,OAAO,EAAE,CAAA;AACX,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAkB;IAC3C,OAAO,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAC3C,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,MAAkB;IAC5C,OAAO,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;AAC5C,CAAC"}
package/dist/types.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type TaskStatus = 'pending' | 'running' | 'paused' | 'blocked' | 'completed' | 'failed' | 'timeout' | 'cancelled';
1
+ export type TaskStatus = 'pending' | 'assigned' | 'running' | 'paused' | 'blocked' | 'completed' | 'failed' | 'timeout' | 'cancelled';
2
2
  export interface TaskError {
3
3
  code?: string;
4
4
  message: string;
@@ -31,7 +31,7 @@ export interface RetryConfig {
31
31
  }
32
32
  export type SeriesMode = 'keep-all' | 'accumulate' | 'latest';
33
33
  export type Level = 'debug' | 'info' | 'warn' | 'error';
34
- export type PermissionScope = 'task:create' | 'task:manage' | 'event:publish' | 'event:subscribe' | 'event:history' | 'webhook:create' | '*';
34
+ export type PermissionScope = 'task:create' | 'task:manage' | 'event:publish' | 'event:subscribe' | 'event:history' | 'webhook:create' | 'worker:connect' | 'worker:manage' | 'task:resolve' | 'task:signal' | '*';
35
35
  export interface CleanupRule {
36
36
  name?: string;
37
37
  match?: {
@@ -49,6 +49,49 @@ export interface CleanupRule {
49
49
  seriesMode?: SeriesMode[];
50
50
  };
51
51
  }
52
+ export interface BlockedRequest {
53
+ type: string;
54
+ data: unknown;
55
+ }
56
+ export type AssignMode = 'external' | 'pull' | 'ws-offer' | 'ws-race';
57
+ export type DisconnectPolicy = 'reassign' | 'mark' | 'fail';
58
+ export type WorkerStatus = 'idle' | 'busy' | 'draining' | 'offline';
59
+ export interface TagMatcher {
60
+ all?: string[];
61
+ any?: string[];
62
+ none?: string[];
63
+ }
64
+ export interface WorkerMatchRule {
65
+ taskTypes?: string[];
66
+ tags?: TagMatcher;
67
+ }
68
+ export interface Worker {
69
+ id: string;
70
+ status: WorkerStatus;
71
+ matchRule: WorkerMatchRule;
72
+ capacity: number;
73
+ usedSlots: number;
74
+ weight: number;
75
+ connectionMode: 'pull' | 'websocket';
76
+ connectedAt: number;
77
+ lastHeartbeatAt: number;
78
+ metadata?: Record<string, unknown>;
79
+ }
80
+ export type WorkerAssignmentStatus = 'offered' | 'assigned' | 'running';
81
+ export interface WorkerAssignment {
82
+ taskId: string;
83
+ workerId: string;
84
+ cost: number;
85
+ assignedAt: number;
86
+ status: WorkerAssignmentStatus;
87
+ }
88
+ export interface WorkerAuditEvent {
89
+ id: string;
90
+ workerId: string;
91
+ timestamp: number;
92
+ action: 'connected' | 'disconnected' | 'updated' | 'task_assigned' | 'task_declined' | 'task_reclaimed' | 'draining' | 'heartbeat_timeout' | 'pull_request';
93
+ data?: Record<string, unknown>;
94
+ }
52
95
  export interface Task {
53
96
  id: string;
54
97
  type?: string;
@@ -66,6 +109,14 @@ export interface Task {
66
109
  cleanup?: {
67
110
  rules: CleanupRule[];
68
111
  };
112
+ tags?: string[];
113
+ assignMode?: AssignMode;
114
+ cost?: number;
115
+ assignedWorker?: string;
116
+ reason?: string;
117
+ resumeAt?: number;
118
+ blockedRequest?: BlockedRequest;
119
+ disconnectPolicy?: DisconnectPolicy;
69
120
  }
70
121
  export interface TaskEvent {
71
122
  id: string;
@@ -77,6 +128,7 @@ export interface TaskEvent {
77
128
  data: unknown;
78
129
  seriesId?: string;
79
130
  seriesMode?: SeriesMode;
131
+ seriesAccField?: string;
80
132
  }
81
133
  export interface SSEEnvelope {
82
134
  filteredIndex: number;
@@ -89,6 +141,7 @@ export interface SSEEnvelope {
89
141
  data: unknown;
90
142
  seriesId?: string;
91
143
  seriesMode?: SeriesMode;
144
+ seriesAccField?: string;
92
145
  }
93
146
  export interface SinceCursor {
94
147
  id?: string;
@@ -121,12 +174,38 @@ export interface ShortTermStore {
121
174
  getSeriesLatest(taskId: string, seriesId: string): Promise<TaskEvent | null>;
122
175
  setSeriesLatest(taskId: string, seriesId: string, event: TaskEvent): Promise<void>;
123
176
  replaceLastSeriesEvent(taskId: string, seriesId: string, event: TaskEvent): Promise<void>;
177
+ listTasks(filter: TaskFilter): Promise<Task[]>;
178
+ saveWorker(worker: Worker): Promise<void>;
179
+ getWorker(workerId: string): Promise<Worker | null>;
180
+ listWorkers(filter?: WorkerFilter): Promise<Worker[]>;
181
+ deleteWorker(workerId: string): Promise<void>;
182
+ claimTask(taskId: string, workerId: string, cost: number): Promise<boolean>;
183
+ addAssignment(assignment: WorkerAssignment): Promise<void>;
184
+ removeAssignment(taskId: string): Promise<void>;
185
+ getWorkerAssignments(workerId: string): Promise<WorkerAssignment[]>;
186
+ getTaskAssignment(taskId: string): Promise<WorkerAssignment | null>;
187
+ clearTTL(taskId: string): Promise<void>;
188
+ listByStatus(statuses: TaskStatus[]): Promise<Task[]>;
124
189
  }
125
190
  export interface LongTermStore {
126
191
  saveTask(task: Task): Promise<void>;
127
192
  getTask(taskId: string): Promise<Task | null>;
128
193
  saveEvent(event: TaskEvent): Promise<void>;
129
194
  getEvents(taskId: string, opts?: EventQueryOptions): Promise<TaskEvent[]>;
195
+ saveWorkerEvent(event: WorkerAuditEvent): Promise<void>;
196
+ getWorkerEvents(workerId: string, opts?: EventQueryOptions): Promise<WorkerAuditEvent[]>;
197
+ }
198
+ export interface TaskFilter {
199
+ status?: TaskStatus[];
200
+ types?: string[];
201
+ tags?: TagMatcher;
202
+ assignMode?: AssignMode[];
203
+ excludeTaskIds?: string[];
204
+ limit?: number;
205
+ }
206
+ export interface WorkerFilter {
207
+ status?: WorkerStatus[];
208
+ connectionMode?: ('pull' | 'websocket')[];
130
209
  }
131
210
  export interface ErrorContext {
132
211
  operation: string;
@@ -140,5 +219,11 @@ export interface TaskcastHooks {
140
219
  onWebhookFailed?(config: WebhookConfig, err: unknown): void;
141
220
  onSSEConnect?(taskId: string, clientId: string): void;
142
221
  onSSEDisconnect?(taskId: string, clientId: string, duration: number): void;
222
+ onTaskCreated?(task: Task): void;
223
+ onTaskTransitioned?(task: Task, from: TaskStatus, to: TaskStatus): void;
224
+ onWorkerConnected?(worker: Worker): void;
225
+ onWorkerDisconnected?(worker: Worker, reason: string): void;
226
+ onTaskAssigned?(task: Task, worker: Worker): void;
227
+ onTaskDeclined?(task: Task, worker: Worker, blacklisted: boolean): void;
143
228
  }
144
229
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,SAAS,GACT,QAAQ,GACR,SAAS,GACT,WAAW,GACX,QAAQ,GACR,SAAS,GACT,WAAW,CAAA;AAEf,MAAM,WAAW,SAAS;IACxB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAClC;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,KAAK,CAAC;QACX,KAAK,EAAE;YAAE,KAAK,EAAE,eAAe,EAAE,CAAA;SAAE,CAAA;QACnC,OAAO,EAAE;YACP,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YAChC,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;SACf,CAAA;KACF,CAAC,CAAA;CACH;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,eAAe,CAAA;IACxB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,KAAK,CAAC,EAAE,WAAW,CAAA;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,OAAO,GAAG,aAAa,GAAG,QAAQ,CAAA;IAC3C,cAAc,EAAE,MAAM,CAAA;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,YAAY,GAAG,QAAQ,CAAA;AAE7D,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;AAEvD,MAAM,MAAM,eAAe,GACvB,aAAa,GACb,aAAa,GACb,eAAe,GACf,iBAAiB,GACjB,eAAe,GACf,gBAAgB,GAChB,GAAG,CAAA;AAEP,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE;QACN,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;QACpB,MAAM,CAAC,EAAE,UAAU,EAAE,CAAA;KACtB,CAAA;IACD,OAAO,EAAE;QACP,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,MAAM,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAA;IACjC,WAAW,CAAC,EAAE;QACZ,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;QAChB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAA;QAChB,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,UAAU,CAAC,EAAE,UAAU,EAAE,CAAA;KAC1B,CAAA;CACF;AAED,MAAM,WAAW,IAAI;IACnB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,UAAU,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,cAAc,CAAA;IAC3B,QAAQ,CAAC,EAAE,aAAa,EAAE,CAAA;IAC1B,OAAO,CAAC,EAAE;QAAE,KAAK,EAAE,WAAW,EAAE,CAAA;KAAE,CAAA;CACnC;AAID,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,SAAS,EAAE,MAAM,CAAA;IACjB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,KAAK,CAAA;IACZ,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,KAAK,CAAA;IACZ,IAAI,EAAE,OAAO,CAAA;IACb,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB;AAID,MAAM,WAAW,WAAW;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAA;IAChB,MAAM,CAAC,EAAE,KAAK,EAAE,CAAA;IAChB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,WAAW,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAID,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,GAAG,MAAM,IAAI,CAAA;CAC5E;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IAC7C,4DAA4D;IAC5D,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC1C,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5D,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;IACzE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACzD,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAA;IAC5E,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAClF,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC1F;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IACnC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;IAC7C,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1C,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;CAC1E;AAID,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,YAAY,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,GAAG,IAAI,CAAA;IACjD,aAAa,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAA;IAChC,gBAAgB,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,YAAY,GAAG,IAAI,CAAA;IAC5D,cAAc,CAAC,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACvD,eAAe,CAAC,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAAA;IAC3D,YAAY,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;IACrD,eAAe,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAC3E"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,68 @@
1
+ import type { Task, Worker, WorkerFilter, WorkerAssignment, BroadcastProvider, ShortTermStore, LongTermStore, TaskcastHooks, AssignMode, DisconnectPolicy, WorkerMatchRule } from './types.js';
2
+ import type { TaskEngine } from './engine.js';
3
+ export interface WorkerManagerOptions {
4
+ engine: TaskEngine;
5
+ shortTermStore: ShortTermStore;
6
+ broadcast: BroadcastProvider;
7
+ longTermStore?: LongTermStore;
8
+ hooks?: TaskcastHooks;
9
+ defaults?: WorkerManagerDefaults;
10
+ }
11
+ export interface WorkerManagerDefaults {
12
+ assignMode?: AssignMode;
13
+ heartbeatIntervalMs?: number;
14
+ heartbeatTimeoutMs?: number;
15
+ offerTimeoutMs?: number;
16
+ disconnectPolicy?: DisconnectPolicy;
17
+ disconnectGraceMs?: number;
18
+ }
19
+ export interface WorkerRegistration {
20
+ id?: string;
21
+ matchRule: WorkerMatchRule;
22
+ capacity: number;
23
+ weight?: number;
24
+ connectionMode: Worker['connectionMode'];
25
+ metadata?: Record<string, unknown>;
26
+ }
27
+ export interface WorkerUpdate {
28
+ weight?: number;
29
+ capacity?: number;
30
+ matchRule?: WorkerMatchRule;
31
+ status?: 'draining';
32
+ }
33
+ export interface DispatchResult {
34
+ matched: boolean;
35
+ workerId?: string;
36
+ }
37
+ export interface ClaimResult {
38
+ success: boolean;
39
+ reason?: string;
40
+ }
41
+ export interface DeclineOptions {
42
+ blacklist?: boolean;
43
+ }
44
+ export declare class WorkerManager {
45
+ private opts;
46
+ private engine;
47
+ private shortTermStore;
48
+ private longTermStore?;
49
+ private hooks?;
50
+ constructor(opts: WorkerManagerOptions);
51
+ get heartbeatIntervalMs(): number;
52
+ private emitTaskAudit;
53
+ private emitWorkerAudit;
54
+ registerWorker(config: WorkerRegistration): Promise<Worker>;
55
+ unregisterWorker(workerId: string): Promise<void>;
56
+ updateWorker(workerId: string, update: WorkerUpdate): Promise<Worker | null>;
57
+ heartbeat(workerId: string): Promise<void>;
58
+ getWorker(workerId: string): Promise<Worker | null>;
59
+ listWorkers(filter?: WorkerFilter): Promise<Worker[]>;
60
+ dispatchTask(taskId: string): Promise<DispatchResult>;
61
+ claimTask(taskId: string, workerId: string): Promise<ClaimResult>;
62
+ declineTask(taskId: string, workerId: string, opts?: DeclineOptions): Promise<void>;
63
+ getWorkerTasks(workerId: string): Promise<WorkerAssignment[]>;
64
+ releaseTask(taskId: string): Promise<void>;
65
+ waitForTask(workerId: string, signal?: AbortSignal): Promise<Task>;
66
+ notifyNewTask(taskId: string): Promise<void>;
67
+ }
68
+ //# sourceMappingURL=worker-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker-manager.d.ts","sourceRoot":"","sources":["../src/worker-manager.ts"],"names":[],"mappings":"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"}