@taskcast/sqlite 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.
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/long-term.d.ts +3 -1
- package/dist/long-term.d.ts.map +1 -1
- package/dist/long-term.js +70 -6
- package/dist/long-term.js.map +1 -1
- package/dist/row-mappers.d.ts +4 -1
- package/dist/row-mappers.d.ts.map +1 -1
- package/dist/row-mappers.js +48 -0
- package/dist/row-mappers.js.map +1 -1
- package/dist/short-term.d.ts +13 -1
- package/dist/short-term.d.ts.map +1 -1
- package/dist/short-term.js +191 -6
- package/dist/short-term.js.map +1 -1
- package/migrations/001_initial.sql +48 -1
- package/package.json +3 -2
package/dist/index.d.ts
CHANGED
|
@@ -7,8 +7,8 @@ export interface SqliteAdapterOptions {
|
|
|
7
7
|
path?: string;
|
|
8
8
|
}
|
|
9
9
|
export declare function createSqliteAdapters(options?: SqliteAdapterOptions): {
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
shortTermStore: SqliteShortTermStore;
|
|
11
|
+
longTermStore: SqliteLongTermStore;
|
|
12
12
|
db: DatabaseType;
|
|
13
13
|
};
|
|
14
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAEpD,OAAiB,EAAE,KAAK,QAAQ,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAIxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,oBAAyB,GAAG;IACxE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAEpD,OAAiB,EAAE,KAAK,QAAQ,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAIxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,oBAAyB,GAAG;IACxE,cAAc,EAAE,oBAAoB,CAAA;IACpC,aAAa,EAAE,mBAAmB,CAAA;IAClC,EAAE,EAAE,YAAY,CAAA;CACjB,CAeA"}
|
package/dist/index.js
CHANGED
|
@@ -15,8 +15,8 @@ export function createSqliteAdapters(options = {}) {
|
|
|
15
15
|
const migration = readFileSync(join(__dirname, '../migrations/001_initial.sql'), 'utf8');
|
|
16
16
|
db.exec(migration);
|
|
17
17
|
return {
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
shortTermStore: new SqliteShortTermStore(db),
|
|
19
|
+
longTermStore: new SqliteLongTermStore(db),
|
|
20
20
|
db,
|
|
21
21
|
};
|
|
22
22
|
}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAEpD,OAAO,QAA2C,MAAM,gBAAgB,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAMpD,MAAM,UAAU,oBAAoB,CAAC,UAAgC,EAAE;IAKrE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,eAAe,CAAA;IACrF,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC/B,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAC/B,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;IAE9B,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACzD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,+BAA+B,CAAC,EAAE,MAAM,CAAC,CAAA;IACxF,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAElB,OAAO;QACL,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAEpD,OAAO,QAA2C,MAAM,gBAAgB,CAAA;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AAMpD,MAAM,UAAU,oBAAoB,CAAC,UAAgC,EAAE;IAKrE,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC,IAAI,eAAe,CAAA;IACrF,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;IAC/B,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAC/B,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;IAE9B,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IACzD,MAAM,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,+BAA+B,CAAC,EAAE,MAAM,CAAC,CAAA;IACxF,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAElB,OAAO;QACL,cAAc,EAAE,IAAI,oBAAoB,CAAC,EAAE,CAAC;QAC5C,aAAa,EAAE,IAAI,mBAAmB,CAAC,EAAE,CAAC;QAC1C,EAAE;KACH,CAAA;AACH,CAAC"}
|
package/dist/long-term.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type Database from 'better-sqlite3';
|
|
2
|
-
import type { Task, TaskEvent, LongTermStore, EventQueryOptions } from '@taskcast/core';
|
|
2
|
+
import type { Task, TaskEvent, LongTermStore, EventQueryOptions, WorkerAuditEvent } from '@taskcast/core';
|
|
3
3
|
export declare class SqliteLongTermStore implements LongTermStore {
|
|
4
4
|
private db;
|
|
5
5
|
constructor(db: Database.Database);
|
|
@@ -7,5 +7,7 @@ export declare class SqliteLongTermStore implements LongTermStore {
|
|
|
7
7
|
getTask(taskId: string): Promise<Task | null>;
|
|
8
8
|
saveEvent(event: TaskEvent): Promise<void>;
|
|
9
9
|
getEvents(taskId: string, opts?: EventQueryOptions): Promise<TaskEvent[]>;
|
|
10
|
+
saveWorkerEvent(event: WorkerAuditEvent): Promise<void>;
|
|
11
|
+
getWorkerEvents(workerId: string, opts?: EventQueryOptions): Promise<WorkerAuditEvent[]>;
|
|
10
12
|
}
|
|
11
13
|
//# sourceMappingURL=long-term.d.ts.map
|
package/dist/long-term.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"long-term.d.ts","sourceRoot":"","sources":["../src/long-term.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"long-term.d.ts","sourceRoot":"","sources":["../src/long-term.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAKzG,qBAAa,mBAAoB,YAAW,aAAa;IAC3C,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAEnC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA+CnC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAQ7C,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB1C,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAmDzE,eAAe,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBvD,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;CAyC/F"}
|
package/dist/long-term.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { rowToTask, rowToEvent } from './row-mappers.js';
|
|
1
|
+
import { rowToTask, rowToEvent, rowToWorkerEvent } from './row-mappers.js';
|
|
2
2
|
// ─── SqliteLongTermStore ──────────────────────────────────────────────────
|
|
3
3
|
export class SqliteLongTermStore {
|
|
4
4
|
db;
|
|
@@ -7,8 +7,8 @@ export class SqliteLongTermStore {
|
|
|
7
7
|
}
|
|
8
8
|
async saveTask(task) {
|
|
9
9
|
const stmt = this.db.prepare(`
|
|
10
|
-
INSERT INTO taskcast_tasks (id, type, status, params, result, error, metadata, auth_config, webhooks, cleanup, created_at, updated_at, completed_at, ttl)
|
|
11
|
-
VALUES (@id, @type, @status, @params, @result, @error, @metadata, @auth_config, @webhooks, @cleanup, @created_at, @updated_at, @completed_at, @ttl)
|
|
10
|
+
INSERT INTO taskcast_tasks (id, type, status, params, result, error, metadata, auth_config, webhooks, cleanup, created_at, updated_at, completed_at, ttl, tags, assign_mode, cost, assigned_worker, disconnect_policy)
|
|
11
|
+
VALUES (@id, @type, @status, @params, @result, @error, @metadata, @auth_config, @webhooks, @cleanup, @created_at, @updated_at, @completed_at, @ttl, @tags, @assign_mode, @cost, @assigned_worker, @disconnect_policy)
|
|
12
12
|
ON CONFLICT (id) DO UPDATE SET
|
|
13
13
|
type = excluded.type,
|
|
14
14
|
status = excluded.status,
|
|
@@ -21,7 +21,12 @@ export class SqliteLongTermStore {
|
|
|
21
21
|
cleanup = excluded.cleanup,
|
|
22
22
|
updated_at = excluded.updated_at,
|
|
23
23
|
completed_at = excluded.completed_at,
|
|
24
|
-
ttl = excluded.ttl
|
|
24
|
+
ttl = excluded.ttl,
|
|
25
|
+
tags = excluded.tags,
|
|
26
|
+
assign_mode = excluded.assign_mode,
|
|
27
|
+
cost = excluded.cost,
|
|
28
|
+
assigned_worker = excluded.assigned_worker,
|
|
29
|
+
disconnect_policy = excluded.disconnect_policy
|
|
25
30
|
`);
|
|
26
31
|
stmt.run({
|
|
27
32
|
id: task.id,
|
|
@@ -38,6 +43,11 @@ export class SqliteLongTermStore {
|
|
|
38
43
|
updated_at: task.updatedAt,
|
|
39
44
|
completed_at: task.completedAt ?? null,
|
|
40
45
|
ttl: task.ttl ?? null,
|
|
46
|
+
tags: task.tags ? JSON.stringify(task.tags) : null,
|
|
47
|
+
assign_mode: task.assignMode ?? null,
|
|
48
|
+
cost: task.cost ?? null,
|
|
49
|
+
assigned_worker: task.assignedWorker ?? null,
|
|
50
|
+
disconnect_policy: task.disconnectPolicy ?? null,
|
|
41
51
|
});
|
|
42
52
|
}
|
|
43
53
|
async getTask(taskId) {
|
|
@@ -46,8 +56,8 @@ export class SqliteLongTermStore {
|
|
|
46
56
|
}
|
|
47
57
|
async saveEvent(event) {
|
|
48
58
|
this.db
|
|
49
|
-
.prepare(`INSERT INTO taskcast_events (id, task_id, idx, timestamp, type, level, data, series_id, series_mode)
|
|
50
|
-
VALUES (@id, @task_id, @idx, @timestamp, @type, @level, @data, @series_id, @series_mode)
|
|
59
|
+
.prepare(`INSERT INTO taskcast_events (id, task_id, idx, timestamp, type, level, data, series_id, series_mode, series_acc_field)
|
|
60
|
+
VALUES (@id, @task_id, @idx, @timestamp, @type, @level, @data, @series_id, @series_mode, @series_acc_field)
|
|
51
61
|
ON CONFLICT (id) DO NOTHING`)
|
|
52
62
|
.run({
|
|
53
63
|
id: event.id,
|
|
@@ -59,6 +69,7 @@ export class SqliteLongTermStore {
|
|
|
59
69
|
data: event.data != null ? JSON.stringify(event.data) : null,
|
|
60
70
|
series_id: event.seriesId ?? null,
|
|
61
71
|
series_mode: event.seriesMode ?? null,
|
|
72
|
+
series_acc_field: event.seriesAccField ?? null,
|
|
62
73
|
});
|
|
63
74
|
}
|
|
64
75
|
async getEvents(taskId, opts) {
|
|
@@ -108,5 +119,58 @@ export class SqliteLongTermStore {
|
|
|
108
119
|
const rows = this.db.prepare(sql).all(...params);
|
|
109
120
|
return rows.map(rowToEvent);
|
|
110
121
|
}
|
|
122
|
+
// ─── Worker audit events ─────────────────────────────────────────────────
|
|
123
|
+
async saveWorkerEvent(event) {
|
|
124
|
+
this.db
|
|
125
|
+
.prepare(`INSERT INTO taskcast_worker_events (id, worker_id, timestamp, action, data)
|
|
126
|
+
VALUES (@id, @worker_id, @timestamp, @action, @data)
|
|
127
|
+
ON CONFLICT (id) DO NOTHING`)
|
|
128
|
+
.run({
|
|
129
|
+
id: event.id,
|
|
130
|
+
worker_id: event.workerId,
|
|
131
|
+
timestamp: event.timestamp,
|
|
132
|
+
action: event.action,
|
|
133
|
+
data: event.data ? JSON.stringify(event.data) : null,
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
async getWorkerEvents(workerId, opts) {
|
|
137
|
+
const since = opts?.since;
|
|
138
|
+
const limit = opts?.limit;
|
|
139
|
+
let sql;
|
|
140
|
+
const params = [workerId];
|
|
141
|
+
if (since?.timestamp !== undefined) {
|
|
142
|
+
sql = `
|
|
143
|
+
SELECT * FROM taskcast_worker_events
|
|
144
|
+
WHERE worker_id = ? AND timestamp > ?
|
|
145
|
+
ORDER BY timestamp ASC
|
|
146
|
+
`;
|
|
147
|
+
params.push(since.timestamp);
|
|
148
|
+
}
|
|
149
|
+
else if (since?.id) {
|
|
150
|
+
sql = `
|
|
151
|
+
SELECT * FROM taskcast_worker_events
|
|
152
|
+
WHERE worker_id = ?
|
|
153
|
+
AND timestamp > COALESCE(
|
|
154
|
+
(SELECT timestamp FROM taskcast_worker_events WHERE id = ?),
|
|
155
|
+
0
|
|
156
|
+
)
|
|
157
|
+
ORDER BY timestamp ASC
|
|
158
|
+
`;
|
|
159
|
+
params.push(since.id);
|
|
160
|
+
}
|
|
161
|
+
else {
|
|
162
|
+
sql = `
|
|
163
|
+
SELECT * FROM taskcast_worker_events
|
|
164
|
+
WHERE worker_id = ?
|
|
165
|
+
ORDER BY timestamp ASC
|
|
166
|
+
`;
|
|
167
|
+
}
|
|
168
|
+
if (limit) {
|
|
169
|
+
sql += ' LIMIT ?';
|
|
170
|
+
params.push(limit);
|
|
171
|
+
}
|
|
172
|
+
const rows = this.db.prepare(sql).all(...params);
|
|
173
|
+
return rows.map(rowToWorkerEvent);
|
|
174
|
+
}
|
|
111
175
|
}
|
|
112
176
|
//# sourceMappingURL=long-term.js.map
|
package/dist/long-term.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"long-term.js","sourceRoot":"","sources":["../src/long-term.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"long-term.js","sourceRoot":"","sources":["../src/long-term.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAE1E,6EAA6E;AAE7E,MAAM,OAAO,mBAAmB;IACV;IAApB,YAAoB,EAAqB;QAArB,OAAE,GAAF,EAAE,CAAmB;IAAG,CAAC;IAE7C,KAAK,CAAC,QAAQ,CAAC,IAAU;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;KAqB5B,CAAC,CAAA;QAEF,IAAI,CAAC,GAAG,CAAC;YACP,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;YACvB,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;YACxD,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;YACxD,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI;YACrD,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;YAC9D,WAAW,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI;YACrE,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI;YAC9D,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI;YAC3D,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,YAAY,EAAE,IAAI,CAAC,WAAW,IAAI,IAAI;YACtC,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,IAAI;YACrB,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YAClD,WAAW,EAAE,IAAI,CAAC,UAAU,IAAI,IAAI;YACpC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;YACvB,eAAe,EAAE,IAAI,CAAC,cAAc,IAAI,IAAI;YAC5C,iBAAiB,EAAE,IAAI,CAAC,gBAAgB,IAAI,IAAI;SACjD,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAc;QAC1B,MAAM,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,CAAC,MAAM,CAEtE,CAAA;QAEb,OAAO,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IACpC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAgB;QAC9B,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;qCAE6B,CAC9B;aACA,GAAG,CAAC;YACH,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,OAAO,EAAE,KAAK,CAAC,MAAM;YACrB,GAAG,EAAE,KAAK,CAAC,KAAK;YAChB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YAC5D,SAAS,EAAE,KAAK,CAAC,QAAQ,IAAI,IAAI;YACjC,WAAW,EAAE,KAAK,CAAC,UAAU,IAAI,IAAI;YACrC,gBAAgB,EAAE,KAAK,CAAC,cAAc,IAAI,IAAI;SAC/C,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,IAAwB;QACtD,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,CAAA;QACzB,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,CAAA;QAEzB,IAAI,GAAW,CAAA;QACf,MAAM,MAAM,GAAc,CAAC,MAAM,CAAC,CAAA;QAElC,IAAI,KAAK,EAAE,EAAE,EAAE,CAAC;YACd,GAAG,GAAG;;;;;;;;OAQL,CAAA;YACD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,CAAA;QAC/B,CAAC;aAAM,IAAI,KAAK,EAAE,KAAK,KAAK,SAAS,EAAE,CAAC;YACtC,GAAG,GAAG;;;;OAIL,CAAA;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC1B,CAAC;aAAM,IAAI,KAAK,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;YAC1C,GAAG,GAAG;;;;OAIL,CAAA;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QAC9B,CAAC;aAAM,CAAC;YACN,GAAG,GAAG;;;;OAIL,CAAA;QACH,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,GAAG,IAAI,UAAU,CAAA;YACjB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAA8B,CAAA;QAC7E,OAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAC7B,CAAC;IAED,4EAA4E;IAE5E,KAAK,CAAC,eAAe,CAAC,KAAuB;QAC3C,IAAI,CAAC,EAAE;aACJ,OAAO,CACN;;qCAE6B,CAC9B;aACA,GAAG,CAAC;YACH,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,SAAS,EAAE,KAAK,CAAC,QAAQ;YACzB,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;SACrD,CAAC,CAAA;IACN,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,IAAwB;QAC9D,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,CAAA;QACzB,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,CAAA;QAEzB,IAAI,GAAW,CAAA;QACf,MAAM,MAAM,GAAc,CAAC,QAAQ,CAAC,CAAA;QAEpC,IAAI,KAAK,EAAE,SAAS,KAAK,SAAS,EAAE,CAAC;YACnC,GAAG,GAAG;;;;OAIL,CAAA;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;QAC9B,CAAC;aAAM,IAAI,KAAK,EAAE,EAAE,EAAE,CAAC;YACrB,GAAG,GAAG;;;;;;;;OAQL,CAAA;YACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACvB,CAAC;aAAM,CAAC;YACN,GAAG,GAAG;;;;OAIL,CAAA;QACH,CAAC;QAED,IAAI,KAAK,EAAE,CAAC;YACV,GAAG,IAAI,UAAU,CAAA;YACjB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,MAAM,CAA8B,CAAA;QAC7E,OAAO,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAA;IACnC,CAAC;CACF"}
|
package/dist/row-mappers.d.ts
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
import type { Task, TaskEvent } from '@taskcast/core';
|
|
1
|
+
import type { Task, TaskEvent, Worker, WorkerAssignment, WorkerAuditEvent } from '@taskcast/core';
|
|
2
2
|
export declare function rowToTask(row: Record<string, unknown>): Task;
|
|
3
|
+
export declare function rowToWorker(row: Record<string, unknown>): Worker;
|
|
4
|
+
export declare function rowToWorkerAssignment(row: Record<string, unknown>): WorkerAssignment;
|
|
5
|
+
export declare function rowToWorkerEvent(row: Record<string, unknown>): WorkerAuditEvent;
|
|
3
6
|
export declare function rowToEvent(row: Record<string, unknown>): TaskEvent;
|
|
4
7
|
//# sourceMappingURL=row-mappers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row-mappers.d.ts","sourceRoot":"","sources":["../src/row-mappers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"row-mappers.d.ts","sourceRoot":"","sources":["../src/row-mappers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,IAAI,EACJ,SAAS,EAET,MAAM,EACN,gBAAgB,EAChB,gBAAgB,EAGjB,MAAM,gBAAgB,CAAA;AAEvB,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAyB5D;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAchE;AAED,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB,CAQpF;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,gBAAgB,CAS/E;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAgBlE"}
|
package/dist/row-mappers.js
CHANGED
|
@@ -25,8 +25,54 @@ export function rowToTask(row) {
|
|
|
25
25
|
task.completedAt = row['completed_at'];
|
|
26
26
|
if (row['ttl'] != null)
|
|
27
27
|
task.ttl = row['ttl'];
|
|
28
|
+
if (row['tags'] != null)
|
|
29
|
+
task.tags = JSON.parse(row['tags']);
|
|
30
|
+
if (row['assign_mode'] != null)
|
|
31
|
+
task.assignMode = row['assign_mode'];
|
|
32
|
+
if (row['cost'] != null)
|
|
33
|
+
task.cost = row['cost'];
|
|
34
|
+
if (row['assigned_worker'] != null)
|
|
35
|
+
task.assignedWorker = row['assigned_worker'];
|
|
36
|
+
if (row['disconnect_policy'] != null)
|
|
37
|
+
task.disconnectPolicy = row['disconnect_policy'];
|
|
28
38
|
return task;
|
|
29
39
|
}
|
|
40
|
+
export function rowToWorker(row) {
|
|
41
|
+
const worker = {
|
|
42
|
+
id: row['id'],
|
|
43
|
+
status: row['status'],
|
|
44
|
+
matchRule: JSON.parse(row['match_rule']),
|
|
45
|
+
capacity: row['capacity'],
|
|
46
|
+
usedSlots: row['used_slots'],
|
|
47
|
+
weight: row['weight'],
|
|
48
|
+
connectionMode: row['connection_mode'],
|
|
49
|
+
connectedAt: row['connected_at'],
|
|
50
|
+
lastHeartbeatAt: row['last_heartbeat_at'],
|
|
51
|
+
};
|
|
52
|
+
if (row['metadata'] != null)
|
|
53
|
+
worker.metadata = JSON.parse(row['metadata']);
|
|
54
|
+
return worker;
|
|
55
|
+
}
|
|
56
|
+
export function rowToWorkerAssignment(row) {
|
|
57
|
+
return {
|
|
58
|
+
taskId: row['task_id'],
|
|
59
|
+
workerId: row['worker_id'],
|
|
60
|
+
cost: row['cost'],
|
|
61
|
+
assignedAt: row['assigned_at'],
|
|
62
|
+
status: row['status'],
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
export function rowToWorkerEvent(row) {
|
|
66
|
+
const event = {
|
|
67
|
+
id: row['id'],
|
|
68
|
+
workerId: row['worker_id'],
|
|
69
|
+
timestamp: row['timestamp'],
|
|
70
|
+
action: row['action'],
|
|
71
|
+
};
|
|
72
|
+
if (row['data'] != null)
|
|
73
|
+
event.data = JSON.parse(row['data']);
|
|
74
|
+
return event;
|
|
75
|
+
}
|
|
30
76
|
export function rowToEvent(row) {
|
|
31
77
|
const event = {
|
|
32
78
|
id: row['id'],
|
|
@@ -41,6 +87,8 @@ export function rowToEvent(row) {
|
|
|
41
87
|
event.seriesId = row['series_id'];
|
|
42
88
|
if (row['series_mode'] != null)
|
|
43
89
|
event.seriesMode = row['series_mode'];
|
|
90
|
+
if (row['series_acc_field'] != null)
|
|
91
|
+
event.seriesAccField = row['series_acc_field'];
|
|
44
92
|
return event;
|
|
45
93
|
}
|
|
46
94
|
//# sourceMappingURL=row-mappers.js.map
|
package/dist/row-mappers.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row-mappers.js","sourceRoot":"","sources":["../src/row-mappers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"row-mappers.js","sourceRoot":"","sources":["../src/row-mappers.ts"],"names":[],"mappings":"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"}
|
package/dist/short-term.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type Database from 'better-sqlite3';
|
|
2
|
-
import type { Task, TaskEvent, ShortTermStore, EventQueryOptions } from '@taskcast/core';
|
|
2
|
+
import type { Task, TaskEvent, TaskStatus, ShortTermStore, EventQueryOptions, TaskFilter, Worker, WorkerFilter, WorkerAssignment } from '@taskcast/core';
|
|
3
3
|
export declare class SqliteShortTermStore implements ShortTermStore {
|
|
4
4
|
private db;
|
|
5
5
|
constructor(db: Database.Database);
|
|
@@ -12,5 +12,17 @@ export declare class SqliteShortTermStore implements ShortTermStore {
|
|
|
12
12
|
getSeriesLatest(taskId: string, seriesId: string): Promise<TaskEvent | null>;
|
|
13
13
|
setSeriesLatest(taskId: string, seriesId: string, event: TaskEvent): Promise<void>;
|
|
14
14
|
replaceLastSeriesEvent(taskId: string, seriesId: string, event: TaskEvent): Promise<void>;
|
|
15
|
+
listTasks(filter: TaskFilter): Promise<Task[]>;
|
|
16
|
+
saveWorker(worker: Worker): Promise<void>;
|
|
17
|
+
getWorker(workerId: string): Promise<Worker | null>;
|
|
18
|
+
listWorkers(filter?: WorkerFilter): Promise<Worker[]>;
|
|
19
|
+
deleteWorker(workerId: string): Promise<void>;
|
|
20
|
+
claimTask(taskId: string, workerId: string, cost: number): Promise<boolean>;
|
|
21
|
+
addAssignment(assignment: WorkerAssignment): Promise<void>;
|
|
22
|
+
removeAssignment(taskId: string): Promise<void>;
|
|
23
|
+
getWorkerAssignments(workerId: string): Promise<WorkerAssignment[]>;
|
|
24
|
+
getTaskAssignment(taskId: string): Promise<WorkerAssignment | null>;
|
|
25
|
+
clearTTL(_taskId: string): Promise<void>;
|
|
26
|
+
listByStatus(statuses: TaskStatus[]): Promise<Task[]>;
|
|
15
27
|
}
|
|
16
28
|
//# sourceMappingURL=short-term.d.ts.map
|
package/dist/short-term.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"short-term.d.ts","sourceRoot":"","sources":["../src/short-term.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"short-term.d.ts","sourceRoot":"","sources":["../src/short-term.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAA;AAC1C,OAAO,KAAK,EACV,IAAI,EACJ,SAAS,EACT,UAAU,EACV,cAAc,EACd,iBAAiB,EACjB,UAAU,EACV,MAAM,EACN,YAAY,EACZ,gBAAgB,EACjB,MAAM,gBAAgB,CAAA;AAKvB,qBAAa,oBAAqB,YAAW,cAAc;IAC7C,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAEnC,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IA+CnC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAQ7C,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAa1C,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB5D,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAqDzE,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAQ5E,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAUlF,sBAAsB,CAC1B,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,SAAS,GACf,OAAO,CAAC,IAAI,CAAC;IA+BV,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IA8C9C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BzC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAQnD,WAAW,CAAC,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiBrD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM7C,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAyC3E,aAAa,CAAC,UAAU,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB1D,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAQnE,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IASnE,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKxC,YAAY,CAAC,QAAQ,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;CAU5D"}
|
package/dist/short-term.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { rowToTask, rowToEvent } from './row-mappers.js';
|
|
1
|
+
import { rowToTask, rowToEvent, rowToWorker, rowToWorkerAssignment } from './row-mappers.js';
|
|
2
2
|
// ─── SqliteShortTermStore ─────────────────────────────────────────────────
|
|
3
3
|
export class SqliteShortTermStore {
|
|
4
4
|
db;
|
|
@@ -7,8 +7,8 @@ export class SqliteShortTermStore {
|
|
|
7
7
|
}
|
|
8
8
|
async saveTask(task) {
|
|
9
9
|
const stmt = this.db.prepare(`
|
|
10
|
-
INSERT INTO taskcast_tasks (id, type, status, params, result, error, metadata, auth_config, webhooks, cleanup, created_at, updated_at, completed_at, ttl)
|
|
11
|
-
VALUES (@id, @type, @status, @params, @result, @error, @metadata, @auth_config, @webhooks, @cleanup, @created_at, @updated_at, @completed_at, @ttl)
|
|
10
|
+
INSERT INTO taskcast_tasks (id, type, status, params, result, error, metadata, auth_config, webhooks, cleanup, created_at, updated_at, completed_at, ttl, tags, assign_mode, cost, assigned_worker, disconnect_policy)
|
|
11
|
+
VALUES (@id, @type, @status, @params, @result, @error, @metadata, @auth_config, @webhooks, @cleanup, @created_at, @updated_at, @completed_at, @ttl, @tags, @assign_mode, @cost, @assigned_worker, @disconnect_policy)
|
|
12
12
|
ON CONFLICT (id) DO UPDATE SET
|
|
13
13
|
type = excluded.type,
|
|
14
14
|
status = excluded.status,
|
|
@@ -21,7 +21,12 @@ export class SqliteShortTermStore {
|
|
|
21
21
|
cleanup = excluded.cleanup,
|
|
22
22
|
updated_at = excluded.updated_at,
|
|
23
23
|
completed_at = excluded.completed_at,
|
|
24
|
-
ttl = excluded.ttl
|
|
24
|
+
ttl = excluded.ttl,
|
|
25
|
+
tags = excluded.tags,
|
|
26
|
+
assign_mode = excluded.assign_mode,
|
|
27
|
+
cost = excluded.cost,
|
|
28
|
+
assigned_worker = excluded.assigned_worker,
|
|
29
|
+
disconnect_policy = excluded.disconnect_policy
|
|
25
30
|
`);
|
|
26
31
|
stmt.run({
|
|
27
32
|
id: task.id,
|
|
@@ -38,6 +43,11 @@ export class SqliteShortTermStore {
|
|
|
38
43
|
updated_at: task.updatedAt,
|
|
39
44
|
completed_at: task.completedAt ?? null,
|
|
40
45
|
ttl: task.ttl ?? null,
|
|
46
|
+
tags: task.tags ? JSON.stringify(task.tags) : null,
|
|
47
|
+
assign_mode: task.assignMode ?? null,
|
|
48
|
+
cost: task.cost ?? null,
|
|
49
|
+
assigned_worker: task.assignedWorker ?? null,
|
|
50
|
+
disconnect_policy: task.disconnectPolicy ?? null,
|
|
41
51
|
});
|
|
42
52
|
}
|
|
43
53
|
async getTask(taskId) {
|
|
@@ -55,8 +65,8 @@ export class SqliteShortTermStore {
|
|
|
55
65
|
}
|
|
56
66
|
async appendEvent(taskId, event) {
|
|
57
67
|
this.db
|
|
58
|
-
.prepare(`INSERT INTO taskcast_events (id, task_id, idx, timestamp, type, level, data, series_id, series_mode)
|
|
59
|
-
VALUES (@id, @task_id, @idx, @timestamp, @type, @level, @data, @series_id, @series_mode)`)
|
|
68
|
+
.prepare(`INSERT INTO taskcast_events (id, task_id, idx, timestamp, type, level, data, series_id, series_mode, series_acc_field)
|
|
69
|
+
VALUES (@id, @task_id, @idx, @timestamp, @type, @level, @data, @series_id, @series_mode, @series_acc_field)`)
|
|
60
70
|
.run({
|
|
61
71
|
id: event.id,
|
|
62
72
|
task_id: event.taskId,
|
|
@@ -67,6 +77,7 @@ export class SqliteShortTermStore {
|
|
|
67
77
|
data: event.data != null ? JSON.stringify(event.data) : null,
|
|
68
78
|
series_id: event.seriesId ?? null,
|
|
69
79
|
series_mode: event.seriesMode ?? null,
|
|
80
|
+
series_acc_field: event.seriesAccField ?? null,
|
|
70
81
|
});
|
|
71
82
|
}
|
|
72
83
|
async getEvents(taskId, opts) {
|
|
@@ -161,5 +172,179 @@ export class SqliteShortTermStore {
|
|
|
161
172
|
}
|
|
162
173
|
await this.setSeriesLatest(taskId, seriesId, event);
|
|
163
174
|
}
|
|
175
|
+
// ─── Task query ──────────────────────────────────────────────────────────
|
|
176
|
+
async listTasks(filter) {
|
|
177
|
+
let sql = 'SELECT * FROM taskcast_tasks WHERE 1=1';
|
|
178
|
+
const params = [];
|
|
179
|
+
if (filter.status?.length) {
|
|
180
|
+
sql += ` AND status IN (${filter.status.map(() => '?').join(', ')})`;
|
|
181
|
+
params.push(...filter.status);
|
|
182
|
+
}
|
|
183
|
+
if (filter.types?.length) {
|
|
184
|
+
sql += ` AND type IN (${filter.types.map(() => '?').join(', ')})`;
|
|
185
|
+
params.push(...filter.types);
|
|
186
|
+
}
|
|
187
|
+
if (filter.assignMode?.length) {
|
|
188
|
+
sql += ` AND assign_mode IN (${filter.assignMode.map(() => '?').join(', ')})`;
|
|
189
|
+
params.push(...filter.assignMode);
|
|
190
|
+
}
|
|
191
|
+
if (filter.excludeTaskIds?.length) {
|
|
192
|
+
sql += ` AND id NOT IN (${filter.excludeTaskIds.map(() => '?').join(', ')})`;
|
|
193
|
+
params.push(...filter.excludeTaskIds);
|
|
194
|
+
}
|
|
195
|
+
const rows = this.db.prepare(sql).all(...params);
|
|
196
|
+
let tasks = rows.map(rowToTask);
|
|
197
|
+
// Tag filtering is done in-memory because tags are stored as JSON text
|
|
198
|
+
if (filter.tags) {
|
|
199
|
+
const { all, any, none } = filter.tags;
|
|
200
|
+
tasks = tasks.filter((t) => {
|
|
201
|
+
const taskTags = t.tags ?? [];
|
|
202
|
+
if (all && !all.every((tag) => taskTags.includes(tag)))
|
|
203
|
+
return false;
|
|
204
|
+
if (any && !any.some((tag) => taskTags.includes(tag)))
|
|
205
|
+
return false;
|
|
206
|
+
if (none && none.some((tag) => taskTags.includes(tag)))
|
|
207
|
+
return false;
|
|
208
|
+
return true;
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
// Apply limit AFTER tag filtering to ensure correct result count
|
|
212
|
+
if (filter.limit !== undefined) {
|
|
213
|
+
tasks = tasks.slice(0, filter.limit);
|
|
214
|
+
}
|
|
215
|
+
return tasks;
|
|
216
|
+
}
|
|
217
|
+
// ─── Worker state ────────────────────────────────────────────────────────
|
|
218
|
+
async saveWorker(worker) {
|
|
219
|
+
this.db
|
|
220
|
+
.prepare(`INSERT INTO taskcast_workers (id, status, match_rule, capacity, used_slots, weight, connection_mode, connected_at, last_heartbeat_at, metadata)
|
|
221
|
+
VALUES (@id, @status, @match_rule, @capacity, @used_slots, @weight, @connection_mode, @connected_at, @last_heartbeat_at, @metadata)
|
|
222
|
+
ON CONFLICT (id) DO UPDATE SET
|
|
223
|
+
status = excluded.status,
|
|
224
|
+
match_rule = excluded.match_rule,
|
|
225
|
+
capacity = excluded.capacity,
|
|
226
|
+
used_slots = excluded.used_slots,
|
|
227
|
+
weight = excluded.weight,
|
|
228
|
+
connection_mode = excluded.connection_mode,
|
|
229
|
+
connected_at = excluded.connected_at,
|
|
230
|
+
last_heartbeat_at = excluded.last_heartbeat_at,
|
|
231
|
+
metadata = excluded.metadata`)
|
|
232
|
+
.run({
|
|
233
|
+
id: worker.id,
|
|
234
|
+
status: worker.status,
|
|
235
|
+
match_rule: JSON.stringify(worker.matchRule),
|
|
236
|
+
capacity: worker.capacity,
|
|
237
|
+
used_slots: worker.usedSlots,
|
|
238
|
+
weight: worker.weight,
|
|
239
|
+
connection_mode: worker.connectionMode,
|
|
240
|
+
connected_at: worker.connectedAt,
|
|
241
|
+
last_heartbeat_at: worker.lastHeartbeatAt,
|
|
242
|
+
metadata: worker.metadata ? JSON.stringify(worker.metadata) : null,
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
async getWorker(workerId) {
|
|
246
|
+
const row = this.db
|
|
247
|
+
.prepare('SELECT * FROM taskcast_workers WHERE id = ?')
|
|
248
|
+
.get(workerId);
|
|
249
|
+
return row ? rowToWorker(row) : null;
|
|
250
|
+
}
|
|
251
|
+
async listWorkers(filter) {
|
|
252
|
+
let sql = 'SELECT * FROM taskcast_workers WHERE 1=1';
|
|
253
|
+
const params = [];
|
|
254
|
+
if (filter?.status?.length) {
|
|
255
|
+
sql += ` AND status IN (${filter.status.map(() => '?').join(', ')})`;
|
|
256
|
+
params.push(...filter.status);
|
|
257
|
+
}
|
|
258
|
+
if (filter?.connectionMode?.length) {
|
|
259
|
+
sql += ` AND connection_mode IN (${filter.connectionMode.map(() => '?').join(', ')})`;
|
|
260
|
+
params.push(...filter.connectionMode);
|
|
261
|
+
}
|
|
262
|
+
const rows = this.db.prepare(sql).all(...params);
|
|
263
|
+
return rows.map(rowToWorker);
|
|
264
|
+
}
|
|
265
|
+
async deleteWorker(workerId) {
|
|
266
|
+
this.db.prepare('DELETE FROM taskcast_workers WHERE id = ?').run(workerId);
|
|
267
|
+
}
|
|
268
|
+
// ─── Atomic claim ────────────────────────────────────────────────────────
|
|
269
|
+
async claimTask(taskId, workerId, cost) {
|
|
270
|
+
// SQLite is single-writer, so a transaction provides atomicity.
|
|
271
|
+
const claim = this.db.transaction(() => {
|
|
272
|
+
const workerRow = this.db
|
|
273
|
+
.prepare('SELECT * FROM taskcast_workers WHERE id = ?')
|
|
274
|
+
.get(workerId);
|
|
275
|
+
if (!workerRow)
|
|
276
|
+
return false;
|
|
277
|
+
const worker = rowToWorker(workerRow);
|
|
278
|
+
if (worker.usedSlots + cost > worker.capacity)
|
|
279
|
+
return false;
|
|
280
|
+
const taskRow = this.db
|
|
281
|
+
.prepare('SELECT * FROM taskcast_tasks WHERE id = ?')
|
|
282
|
+
.get(taskId);
|
|
283
|
+
if (!taskRow)
|
|
284
|
+
return false;
|
|
285
|
+
const task = rowToTask(taskRow);
|
|
286
|
+
if (task.status !== 'pending' && task.status !== 'assigned')
|
|
287
|
+
return false;
|
|
288
|
+
// Update task
|
|
289
|
+
this.db
|
|
290
|
+
.prepare(`UPDATE taskcast_tasks
|
|
291
|
+
SET status = 'assigned', assigned_worker = ?, cost = ?, updated_at = ?
|
|
292
|
+
WHERE id = ?`)
|
|
293
|
+
.run(workerId, cost, Date.now(), taskId);
|
|
294
|
+
// Update worker used slots
|
|
295
|
+
this.db
|
|
296
|
+
.prepare('UPDATE taskcast_workers SET used_slots = ? WHERE id = ?')
|
|
297
|
+
.run(worker.usedSlots + cost, workerId);
|
|
298
|
+
return true;
|
|
299
|
+
});
|
|
300
|
+
return claim();
|
|
301
|
+
}
|
|
302
|
+
// ─── Worker assignments ──────────────────────────────────────────────────
|
|
303
|
+
async addAssignment(assignment) {
|
|
304
|
+
this.db
|
|
305
|
+
.prepare(`INSERT INTO taskcast_worker_assignments (task_id, worker_id, cost, assigned_at, status)
|
|
306
|
+
VALUES (@task_id, @worker_id, @cost, @assigned_at, @status)
|
|
307
|
+
ON CONFLICT (task_id) DO UPDATE SET
|
|
308
|
+
worker_id = excluded.worker_id,
|
|
309
|
+
cost = excluded.cost,
|
|
310
|
+
assigned_at = excluded.assigned_at,
|
|
311
|
+
status = excluded.status`)
|
|
312
|
+
.run({
|
|
313
|
+
task_id: assignment.taskId,
|
|
314
|
+
worker_id: assignment.workerId,
|
|
315
|
+
cost: assignment.cost,
|
|
316
|
+
assigned_at: assignment.assignedAt,
|
|
317
|
+
status: assignment.status,
|
|
318
|
+
});
|
|
319
|
+
}
|
|
320
|
+
async removeAssignment(taskId) {
|
|
321
|
+
this.db.prepare('DELETE FROM taskcast_worker_assignments WHERE task_id = ?').run(taskId);
|
|
322
|
+
}
|
|
323
|
+
async getWorkerAssignments(workerId) {
|
|
324
|
+
const rows = this.db
|
|
325
|
+
.prepare('SELECT * FROM taskcast_worker_assignments WHERE worker_id = ?')
|
|
326
|
+
.all(workerId);
|
|
327
|
+
return rows.map(rowToWorkerAssignment);
|
|
328
|
+
}
|
|
329
|
+
async getTaskAssignment(taskId) {
|
|
330
|
+
const row = this.db
|
|
331
|
+
.prepare('SELECT * FROM taskcast_worker_assignments WHERE task_id = ?')
|
|
332
|
+
.get(taskId);
|
|
333
|
+
return row ? rowToWorkerAssignment(row) : null;
|
|
334
|
+
}
|
|
335
|
+
// TTL management — no-op: SQLite does not support key-level TTL.
|
|
336
|
+
async clearTTL(_taskId) {
|
|
337
|
+
// No-op: SQLite does not support key-level TTL.
|
|
338
|
+
}
|
|
339
|
+
// Task query by status
|
|
340
|
+
async listByStatus(statuses) {
|
|
341
|
+
if (statuses.length === 0)
|
|
342
|
+
return [];
|
|
343
|
+
const placeholders = statuses.map(() => '?').join(', ');
|
|
344
|
+
const rows = this.db
|
|
345
|
+
.prepare(`SELECT * FROM taskcast_tasks WHERE status IN (${placeholders})`)
|
|
346
|
+
.all(...statuses);
|
|
347
|
+
return rows.map(rowToTask);
|
|
348
|
+
}
|
|
164
349
|
}
|
|
165
350
|
//# sourceMappingURL=short-term.js.map
|
package/dist/short-term.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"short-term.js","sourceRoot":"","sources":["../src/short-term.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"short-term.js","sourceRoot":"","sources":["../src/short-term.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,7 +12,12 @@ CREATE TABLE IF NOT EXISTS taskcast_tasks (
|
|
|
12
12
|
created_at INTEGER NOT NULL,
|
|
13
13
|
updated_at INTEGER NOT NULL,
|
|
14
14
|
completed_at INTEGER,
|
|
15
|
-
ttl INTEGER
|
|
15
|
+
ttl INTEGER,
|
|
16
|
+
tags TEXT,
|
|
17
|
+
assign_mode TEXT,
|
|
18
|
+
cost INTEGER,
|
|
19
|
+
assigned_worker TEXT,
|
|
20
|
+
disconnect_policy TEXT
|
|
16
21
|
);
|
|
17
22
|
|
|
18
23
|
CREATE TABLE IF NOT EXISTS taskcast_events (
|
|
@@ -25,6 +30,7 @@ CREATE TABLE IF NOT EXISTS taskcast_events (
|
|
|
25
30
|
data TEXT,
|
|
26
31
|
series_id TEXT,
|
|
27
32
|
series_mode TEXT,
|
|
33
|
+
series_acc_field TEXT,
|
|
28
34
|
UNIQUE(task_id, idx)
|
|
29
35
|
);
|
|
30
36
|
|
|
@@ -42,3 +48,44 @@ CREATE TABLE IF NOT EXISTS taskcast_index_counters (
|
|
|
42
48
|
|
|
43
49
|
CREATE INDEX IF NOT EXISTS idx_events_task_idx ON taskcast_events(task_id, idx);
|
|
44
50
|
CREATE INDEX IF NOT EXISTS idx_events_task_ts ON taskcast_events(task_id, timestamp);
|
|
51
|
+
|
|
52
|
+
-- Worker assignment columns on tasks
|
|
53
|
+
-- SQLite does not support ADD COLUMN IF NOT EXISTS, so we use CREATE TABLE IF NOT EXISTS
|
|
54
|
+
-- and these columns are added to the initial schema for new databases.
|
|
55
|
+
-- For existing databases, a separate migration would be needed.
|
|
56
|
+
|
|
57
|
+
-- Workers table
|
|
58
|
+
CREATE TABLE IF NOT EXISTS taskcast_workers (
|
|
59
|
+
id TEXT PRIMARY KEY,
|
|
60
|
+
status TEXT NOT NULL,
|
|
61
|
+
match_rule TEXT NOT NULL,
|
|
62
|
+
capacity INTEGER NOT NULL,
|
|
63
|
+
used_slots INTEGER NOT NULL,
|
|
64
|
+
weight INTEGER NOT NULL,
|
|
65
|
+
connection_mode TEXT NOT NULL,
|
|
66
|
+
connected_at INTEGER NOT NULL,
|
|
67
|
+
last_heartbeat_at INTEGER NOT NULL,
|
|
68
|
+
metadata TEXT
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
-- Worker assignments table
|
|
72
|
+
CREATE TABLE IF NOT EXISTS taskcast_worker_assignments (
|
|
73
|
+
task_id TEXT PRIMARY KEY,
|
|
74
|
+
worker_id TEXT NOT NULL,
|
|
75
|
+
cost INTEGER NOT NULL,
|
|
76
|
+
assigned_at INTEGER NOT NULL,
|
|
77
|
+
status TEXT NOT NULL
|
|
78
|
+
);
|
|
79
|
+
|
|
80
|
+
CREATE INDEX IF NOT EXISTS idx_worker_assignments_worker_id ON taskcast_worker_assignments(worker_id);
|
|
81
|
+
|
|
82
|
+
-- Worker audit events table
|
|
83
|
+
CREATE TABLE IF NOT EXISTS taskcast_worker_events (
|
|
84
|
+
id TEXT PRIMARY KEY,
|
|
85
|
+
worker_id TEXT NOT NULL,
|
|
86
|
+
timestamp INTEGER NOT NULL,
|
|
87
|
+
action TEXT NOT NULL,
|
|
88
|
+
data TEXT
|
|
89
|
+
);
|
|
90
|
+
|
|
91
|
+
CREATE INDEX IF NOT EXISTS idx_worker_events_worker_id ON taskcast_worker_events(worker_id, timestamp);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taskcast/sqlite",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "SQLite local storage adapter for Taskcast.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -26,11 +26,12 @@
|
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"publishConfig": {
|
|
29
|
+
"access": "public",
|
|
29
30
|
"provenance": true
|
|
30
31
|
},
|
|
31
32
|
"dependencies": {
|
|
32
33
|
"better-sqlite3": "^11.0.0",
|
|
33
|
-
"@taskcast/core": "0.
|
|
34
|
+
"@taskcast/core": "0.3.1"
|
|
34
35
|
},
|
|
35
36
|
"devDependencies": {
|
|
36
37
|
"@types/better-sqlite3": "^7.6.0",
|