@taskcast/sqlite 0.2.0 → 0.3.0

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 CHANGED
@@ -7,8 +7,8 @@ export interface SqliteAdapterOptions {
7
7
  path?: string;
8
8
  }
9
9
  export declare function createSqliteAdapters(options?: SqliteAdapterOptions): {
10
- shortTerm: SqliteShortTermStore;
11
- longTerm: SqliteLongTermStore;
10
+ shortTermStore: SqliteShortTermStore;
11
+ longTermStore: SqliteLongTermStore;
12
12
  db: DatabaseType;
13
13
  };
14
14
  //# sourceMappingURL=index.d.ts.map
@@ -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,SAAS,EAAE,oBAAoB,CAAA;IAC/B,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,EAAE,EAAE,YAAY,CAAA;CACjB,CAeA"}
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
- shortTerm: new SqliteShortTermStore(db),
19
- longTerm: new SqliteLongTermStore(db),
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,SAAS,EAAE,IAAI,oBAAoB,CAAC,EAAE,CAAC;QACvC,QAAQ,EAAE,IAAI,mBAAmB,CAAC,EAAE,CAAC;QACrC,EAAE;KACH,CAAA;AACH,CAAC"}
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"}
@@ -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
@@ -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;AAKvF,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;IAqCnC,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAQ7C,SAAS,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAoB1C,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAgDhF"}
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;IAoB1C,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) {
@@ -108,5 +118,58 @@ export class SqliteLongTermStore {
108
118
  const rows = this.db.prepare(sql).all(...params);
109
119
  return rows.map(rowToEvent);
110
120
  }
121
+ // ─── Worker audit events ─────────────────────────────────────────────────
122
+ async saveWorkerEvent(event) {
123
+ this.db
124
+ .prepare(`INSERT INTO taskcast_worker_events (id, worker_id, timestamp, action, data)
125
+ VALUES (@id, @worker_id, @timestamp, @action, @data)
126
+ ON CONFLICT (id) DO NOTHING`)
127
+ .run({
128
+ id: event.id,
129
+ worker_id: event.workerId,
130
+ timestamp: event.timestamp,
131
+ action: event.action,
132
+ data: event.data ? JSON.stringify(event.data) : null,
133
+ });
134
+ }
135
+ async getWorkerEvents(workerId, opts) {
136
+ const since = opts?.since;
137
+ const limit = opts?.limit;
138
+ let sql;
139
+ const params = [workerId];
140
+ if (since?.timestamp !== undefined) {
141
+ sql = `
142
+ SELECT * FROM taskcast_worker_events
143
+ WHERE worker_id = ? AND timestamp > ?
144
+ ORDER BY timestamp ASC
145
+ `;
146
+ params.push(since.timestamp);
147
+ }
148
+ else if (since?.id) {
149
+ sql = `
150
+ SELECT * FROM taskcast_worker_events
151
+ WHERE worker_id = ?
152
+ AND timestamp > COALESCE(
153
+ (SELECT timestamp FROM taskcast_worker_events WHERE id = ?),
154
+ 0
155
+ )
156
+ ORDER BY timestamp ASC
157
+ `;
158
+ params.push(since.id);
159
+ }
160
+ else {
161
+ sql = `
162
+ SELECT * FROM taskcast_worker_events
163
+ WHERE worker_id = ?
164
+ ORDER BY timestamp ASC
165
+ `;
166
+ }
167
+ if (limit) {
168
+ sql += ' LIMIT ?';
169
+ params.push(limit);
170
+ }
171
+ const rows = this.db.prepare(sql).all(...params);
172
+ return rows.map(rowToWorkerEvent);
173
+ }
111
174
  }
112
175
  //# sourceMappingURL=long-term.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"long-term.js","sourceRoot":"","sources":["../src/long-term.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"long-term.js","sourceRoot":"","sources":["../src/long-term.ts"],"names":[],"mappings":"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"}
@@ -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,EAAE,IAAI,EAAE,SAAS,EAAc,MAAM,gBAAgB,CAAA;AAEjE,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAoB5D;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAelE"}
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,CAelE"}
@@ -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'],
@@ -1 +1 @@
1
- {"version":3,"file":"row-mappers.js","sourceRoot":"","sources":["../src/row-mappers.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,SAAS,CAAC,GAA4B;IACpD,MAAM,IAAI,GAAS;QACjB,EAAE,EAAE,GAAG,CAAC,IAAI,CAAW;QACvB,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAmB;QACvC,SAAS,EAAE,GAAG,CAAC,YAAY,CAAW;QACtC,SAAS,EAAE,GAAG,CAAC,YAAY,CAAW;KACvC,CAAA;IAED,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI;QAAE,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAW,CAAA;IAC1D,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI;QAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAW,CAAC,CAAA;IAC5E,IAAI,GAAG,CAAC,QAAQ,CAAC,IAAI,IAAI;QAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAW,CAAC,CAAA;IAC5E,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI;QAAE,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAW,CAAC,CAAA;IACzE,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI;QAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAW,CAAC,CAAA;IAClF,IAAI,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI;QAAE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAW,CAAC,CAAA;IAC1F,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI;QAAE,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAW,CAAC,CAAA;IAClF,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI;QAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAW,CAAC,CAAA;IAC/E,IAAI,GAAG,CAAC,cAAc,CAAC,IAAI,IAAI;QAAE,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,cAAc,CAAW,CAAA;IACjF,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI;QAAE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,CAAW,CAAA;IAEvD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,GAA4B;IACrD,MAAM,KAAK,GAAc;QACvB,EAAE,EAAE,GAAG,CAAC,IAAI,CAAW;QACvB,MAAM,EAAE,GAAG,CAAC,SAAS,CAAW;QAChC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAW;QAC3B,SAAS,EAAE,GAAG,CAAC,WAAW,CAAW;QACrC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAW;QAC3B,KAAK,EAAE,GAAG,CAAC,OAAO,CAAuB;QACzC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAW,CAAC,CAAC,CAAC,CAAC,IAAI;KACrE,CAAA;IAED,IAAI,GAAG,CAAC,WAAW,CAAC,IAAI,IAAI;QAAE,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAW,CAAA;IACzE,IAAI,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI;QAAE,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,aAAa,CAAe,CAAA;IAEnF,OAAO,KAAK,CAAA;AACd,CAAC"}
1
+ {"version":3,"file":"row-mappers.js","sourceRoot":"","sources":["../src/row-mappers.ts"],"names":[],"mappings":"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"}
@@ -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, 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,15 @@ 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>;
15
25
  }
16
26
  //# sourceMappingURL=short-term.d.ts.map
@@ -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,EAAE,IAAI,EAAE,SAAS,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAKxF,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;IAqCnC,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;IAmB5D,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;CA4BjB"}
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,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;IAmB5D,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;CAO1E"}
@@ -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) {
@@ -161,5 +171,165 @@ export class SqliteShortTermStore {
161
171
  }
162
172
  await this.setSeriesLatest(taskId, seriesId, event);
163
173
  }
174
+ // ─── Task query ──────────────────────────────────────────────────────────
175
+ async listTasks(filter) {
176
+ let sql = 'SELECT * FROM taskcast_tasks WHERE 1=1';
177
+ const params = [];
178
+ if (filter.status?.length) {
179
+ sql += ` AND status IN (${filter.status.map(() => '?').join(', ')})`;
180
+ params.push(...filter.status);
181
+ }
182
+ if (filter.types?.length) {
183
+ sql += ` AND type IN (${filter.types.map(() => '?').join(', ')})`;
184
+ params.push(...filter.types);
185
+ }
186
+ if (filter.assignMode?.length) {
187
+ sql += ` AND assign_mode IN (${filter.assignMode.map(() => '?').join(', ')})`;
188
+ params.push(...filter.assignMode);
189
+ }
190
+ if (filter.excludeTaskIds?.length) {
191
+ sql += ` AND id NOT IN (${filter.excludeTaskIds.map(() => '?').join(', ')})`;
192
+ params.push(...filter.excludeTaskIds);
193
+ }
194
+ const rows = this.db.prepare(sql).all(...params);
195
+ let tasks = rows.map(rowToTask);
196
+ // Tag filtering is done in-memory because tags are stored as JSON text
197
+ if (filter.tags) {
198
+ const { all, any, none } = filter.tags;
199
+ tasks = tasks.filter((t) => {
200
+ const taskTags = t.tags ?? [];
201
+ if (all && !all.every((tag) => taskTags.includes(tag)))
202
+ return false;
203
+ if (any && !any.some((tag) => taskTags.includes(tag)))
204
+ return false;
205
+ if (none && none.some((tag) => taskTags.includes(tag)))
206
+ return false;
207
+ return true;
208
+ });
209
+ }
210
+ // Apply limit AFTER tag filtering to ensure correct result count
211
+ if (filter.limit !== undefined) {
212
+ tasks = tasks.slice(0, filter.limit);
213
+ }
214
+ return tasks;
215
+ }
216
+ // ─── Worker state ────────────────────────────────────────────────────────
217
+ async saveWorker(worker) {
218
+ this.db
219
+ .prepare(`INSERT INTO taskcast_workers (id, status, match_rule, capacity, used_slots, weight, connection_mode, connected_at, last_heartbeat_at, metadata)
220
+ VALUES (@id, @status, @match_rule, @capacity, @used_slots, @weight, @connection_mode, @connected_at, @last_heartbeat_at, @metadata)
221
+ ON CONFLICT (id) DO UPDATE SET
222
+ status = excluded.status,
223
+ match_rule = excluded.match_rule,
224
+ capacity = excluded.capacity,
225
+ used_slots = excluded.used_slots,
226
+ weight = excluded.weight,
227
+ connection_mode = excluded.connection_mode,
228
+ connected_at = excluded.connected_at,
229
+ last_heartbeat_at = excluded.last_heartbeat_at,
230
+ metadata = excluded.metadata`)
231
+ .run({
232
+ id: worker.id,
233
+ status: worker.status,
234
+ match_rule: JSON.stringify(worker.matchRule),
235
+ capacity: worker.capacity,
236
+ used_slots: worker.usedSlots,
237
+ weight: worker.weight,
238
+ connection_mode: worker.connectionMode,
239
+ connected_at: worker.connectedAt,
240
+ last_heartbeat_at: worker.lastHeartbeatAt,
241
+ metadata: worker.metadata ? JSON.stringify(worker.metadata) : null,
242
+ });
243
+ }
244
+ async getWorker(workerId) {
245
+ const row = this.db
246
+ .prepare('SELECT * FROM taskcast_workers WHERE id = ?')
247
+ .get(workerId);
248
+ return row ? rowToWorker(row) : null;
249
+ }
250
+ async listWorkers(filter) {
251
+ let sql = 'SELECT * FROM taskcast_workers WHERE 1=1';
252
+ const params = [];
253
+ if (filter?.status?.length) {
254
+ sql += ` AND status IN (${filter.status.map(() => '?').join(', ')})`;
255
+ params.push(...filter.status);
256
+ }
257
+ if (filter?.connectionMode?.length) {
258
+ sql += ` AND connection_mode IN (${filter.connectionMode.map(() => '?').join(', ')})`;
259
+ params.push(...filter.connectionMode);
260
+ }
261
+ const rows = this.db.prepare(sql).all(...params);
262
+ return rows.map(rowToWorker);
263
+ }
264
+ async deleteWorker(workerId) {
265
+ this.db.prepare('DELETE FROM taskcast_workers WHERE id = ?').run(workerId);
266
+ }
267
+ // ─── Atomic claim ────────────────────────────────────────────────────────
268
+ async claimTask(taskId, workerId, cost) {
269
+ // SQLite is single-writer, so a transaction provides atomicity.
270
+ const claim = this.db.transaction(() => {
271
+ const workerRow = this.db
272
+ .prepare('SELECT * FROM taskcast_workers WHERE id = ?')
273
+ .get(workerId);
274
+ if (!workerRow)
275
+ return false;
276
+ const worker = rowToWorker(workerRow);
277
+ if (worker.usedSlots + cost > worker.capacity)
278
+ return false;
279
+ const taskRow = this.db
280
+ .prepare('SELECT * FROM taskcast_tasks WHERE id = ?')
281
+ .get(taskId);
282
+ if (!taskRow)
283
+ return false;
284
+ const task = rowToTask(taskRow);
285
+ if (task.status !== 'pending' && task.status !== 'assigned')
286
+ return false;
287
+ // Update task
288
+ this.db
289
+ .prepare(`UPDATE taskcast_tasks
290
+ SET status = 'assigned', assigned_worker = ?, cost = ?, updated_at = ?
291
+ WHERE id = ?`)
292
+ .run(workerId, cost, Date.now(), taskId);
293
+ // Update worker used slots
294
+ this.db
295
+ .prepare('UPDATE taskcast_workers SET used_slots = ? WHERE id = ?')
296
+ .run(worker.usedSlots + cost, workerId);
297
+ return true;
298
+ });
299
+ return claim();
300
+ }
301
+ // ─── Worker assignments ──────────────────────────────────────────────────
302
+ async addAssignment(assignment) {
303
+ this.db
304
+ .prepare(`INSERT INTO taskcast_worker_assignments (task_id, worker_id, cost, assigned_at, status)
305
+ VALUES (@task_id, @worker_id, @cost, @assigned_at, @status)
306
+ ON CONFLICT (task_id) DO UPDATE SET
307
+ worker_id = excluded.worker_id,
308
+ cost = excluded.cost,
309
+ assigned_at = excluded.assigned_at,
310
+ status = excluded.status`)
311
+ .run({
312
+ task_id: assignment.taskId,
313
+ worker_id: assignment.workerId,
314
+ cost: assignment.cost,
315
+ assigned_at: assignment.assignedAt,
316
+ status: assignment.status,
317
+ });
318
+ }
319
+ async removeAssignment(taskId) {
320
+ this.db.prepare('DELETE FROM taskcast_worker_assignments WHERE task_id = ?').run(taskId);
321
+ }
322
+ async getWorkerAssignments(workerId) {
323
+ const rows = this.db
324
+ .prepare('SELECT * FROM taskcast_worker_assignments WHERE worker_id = ?')
325
+ .all(workerId);
326
+ return rows.map(rowToWorkerAssignment);
327
+ }
328
+ async getTaskAssignment(taskId) {
329
+ const row = this.db
330
+ .prepare('SELECT * FROM taskcast_worker_assignments WHERE task_id = ?')
331
+ .get(taskId);
332
+ return row ? rowToWorkerAssignment(row) : null;
333
+ }
164
334
  }
165
335
  //# sourceMappingURL=short-term.js.map
@@ -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 (
@@ -42,3 +47,44 @@ CREATE TABLE IF NOT EXISTS taskcast_index_counters (
42
47
 
43
48
  CREATE INDEX IF NOT EXISTS idx_events_task_idx ON taskcast_events(task_id, idx);
44
49
  CREATE INDEX IF NOT EXISTS idx_events_task_ts ON taskcast_events(task_id, timestamp);
50
+
51
+ -- Worker assignment columns on tasks
52
+ -- SQLite does not support ADD COLUMN IF NOT EXISTS, so we use CREATE TABLE IF NOT EXISTS
53
+ -- and these columns are added to the initial schema for new databases.
54
+ -- For existing databases, a separate migration would be needed.
55
+
56
+ -- Workers table
57
+ CREATE TABLE IF NOT EXISTS taskcast_workers (
58
+ id TEXT PRIMARY KEY,
59
+ status TEXT NOT NULL,
60
+ match_rule TEXT NOT NULL,
61
+ capacity INTEGER NOT NULL,
62
+ used_slots INTEGER NOT NULL,
63
+ weight INTEGER NOT NULL,
64
+ connection_mode TEXT NOT NULL,
65
+ connected_at INTEGER NOT NULL,
66
+ last_heartbeat_at INTEGER NOT NULL,
67
+ metadata TEXT
68
+ );
69
+
70
+ -- Worker assignments table
71
+ CREATE TABLE IF NOT EXISTS taskcast_worker_assignments (
72
+ task_id TEXT PRIMARY KEY,
73
+ worker_id TEXT NOT NULL,
74
+ cost INTEGER NOT NULL,
75
+ assigned_at INTEGER NOT NULL,
76
+ status TEXT NOT NULL
77
+ );
78
+
79
+ CREATE INDEX IF NOT EXISTS idx_worker_assignments_worker_id ON taskcast_worker_assignments(worker_id);
80
+
81
+ -- Worker audit events table
82
+ CREATE TABLE IF NOT EXISTS taskcast_worker_events (
83
+ id TEXT PRIMARY KEY,
84
+ worker_id TEXT NOT NULL,
85
+ timestamp INTEGER NOT NULL,
86
+ action TEXT NOT NULL,
87
+ data TEXT
88
+ );
89
+
90
+ 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.2.0",
3
+ "version": "0.3.0",
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.2.0"
34
+ "@taskcast/core": "0.3.0"
34
35
  },
35
36
  "devDependencies": {
36
37
  "@types/better-sqlite3": "^7.6.0",