hzl-core 2.9.1 → 3.0.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/__tests__/migrations/v5-upgrade.test.d.ts +2 -0
- package/dist/__tests__/migrations/v5-upgrade.test.d.ts.map +1 -0
- package/dist/__tests__/migrations/v5-upgrade.test.js +56 -0
- package/dist/__tests__/migrations/v5-upgrade.test.js.map +1 -0
- package/dist/db/migrations/index.d.ts.map +1 -1
- package/dist/db/migrations/index.js +5 -0
- package/dist/db/migrations/index.js.map +1 -1
- package/dist/db/migrations/v5.d.ts +2 -0
- package/dist/db/migrations/v5.d.ts.map +1 -0
- package/dist/db/migrations/v5.js +4 -0
- package/dist/db/migrations/v5.js.map +1 -0
- package/dist/db/schema.d.ts +1 -1
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/db/schema.js +1 -0
- package/dist/db/schema.js.map +1 -1
- package/dist/db/test-seed.d.ts +22 -0
- package/dist/db/test-seed.d.ts.map +1 -0
- package/dist/db/test-seed.js +72 -0
- package/dist/db/test-seed.js.map +1 -0
- package/dist/events/store.d.ts +8 -0
- package/dist/events/store.d.ts.map +1 -1
- package/dist/events/store.js +19 -0
- package/dist/events/store.js.map +1 -1
- package/dist/events/store.test.js +54 -0
- package/dist/events/store.test.js.map +1 -1
- package/dist/events/types.d.ts +3 -1
- package/dist/events/types.d.ts.map +1 -1
- package/dist/events/types.js +4 -0
- package/dist/events/types.js.map +1 -1
- package/dist/events/types.test.js +31 -0
- package/dist/events/types.test.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/projections/tasks-current.d.ts.map +1 -1
- package/dist/projections/tasks-current.js +3 -3
- package/dist/projections/tasks-current.js.map +1 -1
- package/dist/projections/tasks-current.test.js +18 -0
- package/dist/projections/tasks-current.test.js.map +1 -1
- package/dist/services/stats-service.d.ts +51 -0
- package/dist/services/stats-service.d.ts.map +1 -0
- package/dist/services/stats-service.js +183 -0
- package/dist/services/stats-service.js.map +1 -0
- package/dist/services/stats-service.test.d.ts +2 -0
- package/dist/services/stats-service.test.d.ts.map +1 -0
- package/dist/services/stats-service.test.js +196 -0
- package/dist/services/stats-service.test.js.map +1 -0
- package/dist/services/task-service.d.ts +33 -9
- package/dist/services/task-service.d.ts.map +1 -1
- package/dist/services/task-service.js +102 -36
- package/dist/services/task-service.js.map +1 -1
- package/dist/services/task-service.test.js +70 -41
- package/dist/services/task-service.test.js.map +1 -1
- package/dist/utils/duration.d.ts +3 -0
- package/dist/utils/duration.d.ts.map +1 -0
- package/dist/utils/duration.js +21 -0
- package/dist/utils/duration.js.map +1 -0
- package/dist/utils/duration.test.d.ts +2 -0
- package/dist/utils/duration.test.d.ts.map +1 -0
- package/dist/utils/duration.test.js +50 -0
- package/dist/utils/duration.test.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v5-upgrade.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/migrations/v5-upgrade.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
2
|
+
import Database from 'libsql';
|
|
3
|
+
import { runCacheMigrations } from '../../db/migrations/index.js';
|
|
4
|
+
import { CACHE_SCHEMA_V1 } from '../../db/schema.js';
|
|
5
|
+
describe('v5 migration (stale_after_minutes column)', () => {
|
|
6
|
+
let db;
|
|
7
|
+
beforeEach(() => {
|
|
8
|
+
db = new Database(':memory:');
|
|
9
|
+
});
|
|
10
|
+
afterEach(() => {
|
|
11
|
+
db.close();
|
|
12
|
+
});
|
|
13
|
+
function getColumns(table) {
|
|
14
|
+
const rows = db.prepare(`SELECT name FROM pragma_table_info('${table}')`).all();
|
|
15
|
+
return rows.map((row) => row.name);
|
|
16
|
+
}
|
|
17
|
+
it('adds stale_after_minutes column to existing tasks_current table', () => {
|
|
18
|
+
db.exec(`
|
|
19
|
+
CREATE TABLE hzl_local_meta (
|
|
20
|
+
key TEXT PRIMARY KEY,
|
|
21
|
+
value TEXT NOT NULL
|
|
22
|
+
);
|
|
23
|
+
|
|
24
|
+
CREATE TABLE tasks_current (
|
|
25
|
+
task_id TEXT PRIMARY KEY,
|
|
26
|
+
title TEXT NOT NULL,
|
|
27
|
+
project TEXT NOT NULL,
|
|
28
|
+
status TEXT NOT NULL,
|
|
29
|
+
parent_id TEXT,
|
|
30
|
+
description TEXT,
|
|
31
|
+
links TEXT NOT NULL DEFAULT '[]',
|
|
32
|
+
tags TEXT NOT NULL DEFAULT '[]',
|
|
33
|
+
priority INTEGER NOT NULL DEFAULT 0,
|
|
34
|
+
due_at TEXT,
|
|
35
|
+
metadata TEXT NOT NULL DEFAULT '{}',
|
|
36
|
+
claimed_at TEXT,
|
|
37
|
+
agent TEXT,
|
|
38
|
+
progress INTEGER,
|
|
39
|
+
lease_until TEXT,
|
|
40
|
+
terminal_at TEXT,
|
|
41
|
+
created_at TEXT NOT NULL,
|
|
42
|
+
updated_at TEXT NOT NULL,
|
|
43
|
+
last_event_id INTEGER NOT NULL
|
|
44
|
+
);
|
|
45
|
+
`);
|
|
46
|
+
expect(getColumns('tasks_current')).not.toContain('stale_after_minutes');
|
|
47
|
+
runCacheMigrations(db);
|
|
48
|
+
expect(getColumns('tasks_current')).toContain('stale_after_minutes');
|
|
49
|
+
});
|
|
50
|
+
it('is idempotent when stale_after_minutes already exists', () => {
|
|
51
|
+
db.exec(CACHE_SCHEMA_V1);
|
|
52
|
+
expect(getColumns('tasks_current')).toContain('stale_after_minutes');
|
|
53
|
+
expect(() => runCacheMigrations(db)).not.toThrow();
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=v5-upgrade.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v5-upgrade.test.js","sourceRoot":"","sources":["../../../src/__tests__/migrations/v5-upgrade.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,QAAQ,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,QAAQ,CAAC,2CAA2C,EAAE,GAAG,EAAE;IACzD,IAAI,EAAqB,CAAC;IAE1B,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,GAAG,IAAI,QAAQ,CAAC,UAAU,CAAC,CAAC;IAChC,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,SAAS,UAAU,CAAC,KAAa;QAC/B,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CAAC,uCAAuC,KAAK,IAAI,CAAC,CAAC,GAAG,EAAwB,CAAC;QACtG,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACzE,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;KA2BP,CAAC,CAAC;QAEH,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAEzE,kBAAkB,CAAC,EAAE,CAAC,CAAC;QAEvB,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;IACvE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uDAAuD,EAAE,GAAG,EAAE;QAC/D,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAEzB,MAAM,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,qBAAqB,CAAC,CAAC;QACrE,MAAM,CAAC,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;IACrD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,QAAQ,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,QAAQ,MAAM,QAAQ,CAAC;AAKnC,eAAO,MAAM,gCAAgC,gFAE5C,CAAC;AAkEF;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAI/D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,IAAI,CAmC9D"}
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
import { ADD_TERMINAL_AT_COLUMN, CREATE_TERMINAL_AT_INDEX } from './v2.js';
|
|
8
8
|
import { ADD_AGENT_COLUMN, BACKFILL_AGENT_FROM_ASSIGNEE, CREATE_AGENT_INDEX } from './v3.js';
|
|
9
|
+
import { ADD_STALE_AFTER_MINUTES_COLUMN } from './v5.js';
|
|
9
10
|
export const ADD_EVENTS_SCHEMA_VERSION_COLUMN = `
|
|
10
11
|
ALTER TABLE events ADD COLUMN schema_version INTEGER NOT NULL DEFAULT 1
|
|
11
12
|
`;
|
|
@@ -108,6 +109,10 @@ export function runCacheMigrations(db) {
|
|
|
108
109
|
if (columnExists(db, 'tasks_current', 'agent')) {
|
|
109
110
|
db.exec(CREATE_AGENT_INDEX);
|
|
110
111
|
}
|
|
112
|
+
// Migration V5: add task-specific stale override column.
|
|
113
|
+
if (tableExists(db, 'tasks_current') && !columnExists(db, 'tasks_current', 'stale_after_minutes')) {
|
|
114
|
+
db.exec(ADD_STALE_AFTER_MINUTES_COLUMN);
|
|
115
|
+
}
|
|
111
116
|
// Migration V4: durable foundation tables for hooks/workflow idempotency.
|
|
112
117
|
// These are safe to run on every startup.
|
|
113
118
|
db.exec(ENSURE_HOOK_AND_WORKFLOW_TABLES);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/migrations/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/db/migrations/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v5.d.ts","sourceRoot":"","sources":["../../../src/db/migrations/v5.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,8BAA8B,0GAE1C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v5.js","sourceRoot":"","sources":["../../../src/db/migrations/v5.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,8BAA8B,GAAG;;CAE7C,CAAC"}
|
package/dist/db/schema.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export declare const EVENTS_SCHEMA_V2 = "\n-- Append-only event store (source of truth)\nCREATE TABLE IF NOT EXISTS events (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n event_id TEXT NOT NULL UNIQUE,\n task_id TEXT NOT NULL,\n type TEXT NOT NULL,\n data TEXT NOT NULL CHECK (json_valid(data)),\n schema_version INTEGER NOT NULL DEFAULT 1,\n author TEXT,\n agent_id TEXT,\n session_id TEXT,\n correlation_id TEXT,\n causation_id TEXT,\n timestamp TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now'))\n);\n\n-- Append-only enforcement: prevent UPDATE on events\nCREATE TRIGGER IF NOT EXISTS events_no_update\nBEFORE UPDATE ON events\nBEGIN\n SELECT RAISE(ABORT, 'Events table is append-only: cannot UPDATE');\nEND;\n\n-- Append-only enforcement: prevent DELETE on events\nCREATE TRIGGER IF NOT EXISTS events_no_delete\nBEFORE DELETE ON events\nBEGIN\n SELECT RAISE(ABORT, 'Events table is append-only: cannot DELETE');\nEND;\n\n-- Global metadata (synced, immutable after creation)\nCREATE TABLE IF NOT EXISTS hzl_global_meta (\n key TEXT PRIMARY KEY,\n value TEXT NOT NULL\n);\n\n-- Schema migrations tracking (append-only)\nCREATE TABLE IF NOT EXISTS schema_migrations (\n migration_id TEXT PRIMARY KEY,\n applied_at_ms INTEGER NOT NULL,\n checksum TEXT NOT NULL\n);\n\n-- Indexes for events\nCREATE INDEX IF NOT EXISTS idx_events_task_id ON events(task_id);\nCREATE INDEX IF NOT EXISTS idx_events_task_id_id ON events(task_id, id);\nCREATE INDEX IF NOT EXISTS idx_events_type ON events(type);\nCREATE INDEX IF NOT EXISTS idx_events_timestamp ON events(timestamp);\nCREATE INDEX IF NOT EXISTS idx_events_correlation_id ON events(correlation_id);\n";
|
|
2
|
-
export declare const CACHE_SCHEMA_V1 = "\n-- Local metadata (per-device sync state)\nCREATE TABLE IF NOT EXISTS hzl_local_meta (\n key TEXT PRIMARY KEY,\n value TEXT NOT NULL\n);\n\n-- Projection cursor (tracks last applied event)\nCREATE TABLE IF NOT EXISTS projection_cursor (\n key TEXT PRIMARY KEY,\n value TEXT NOT NULL\n);\n\n-- Track last applied event id per projection\nCREATE TABLE IF NOT EXISTS projection_state (\n name TEXT PRIMARY KEY,\n last_event_id INTEGER NOT NULL DEFAULT 0,\n updated_at TEXT NOT NULL\n);\n\n-- Current-state projection for fast reads (rebuildable from events)\nCREATE TABLE IF NOT EXISTS tasks_current (\n task_id TEXT PRIMARY KEY,\n title TEXT NOT NULL,\n project TEXT NOT NULL,\n status TEXT NOT NULL CHECK (status IN ('backlog','ready','in_progress','blocked','done','archived')),\n parent_id TEXT,\n description TEXT,\n links TEXT NOT NULL DEFAULT '[]' CHECK (json_valid(links)),\n tags TEXT NOT NULL DEFAULT '[]' CHECK (json_valid(tags)),\n priority INTEGER NOT NULL DEFAULT 0 CHECK (priority BETWEEN 0 AND 3),\n due_at TEXT,\n metadata TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(metadata)),\n claimed_at TEXT,\n agent TEXT,\n progress INTEGER CHECK (progress >= 0 AND progress <= 100),\n lease_until TEXT,\n terminal_at TEXT,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n last_event_id INTEGER NOT NULL\n);\n\n-- Dependency edges for fast availability checks (rebuildable)\nCREATE TABLE IF NOT EXISTS task_dependencies (\n task_id TEXT NOT NULL,\n depends_on_id TEXT NOT NULL,\n PRIMARY KEY (task_id, depends_on_id)\n);\n\n-- Fast tag filtering (rebuildable)\nCREATE TABLE IF NOT EXISTS task_tags (\n task_id TEXT NOT NULL,\n tag TEXT NOT NULL,\n PRIMARY KEY (task_id, tag)\n);\n\n-- Fast access for steering comments (rebuildable)\nCREATE TABLE IF NOT EXISTS task_comments (\n event_rowid INTEGER PRIMARY KEY,\n task_id TEXT NOT NULL,\n author TEXT,\n agent_id TEXT,\n text TEXT NOT NULL,\n timestamp TEXT NOT NULL\n);\n\n-- Fast access for checkpoints (rebuildable)\nCREATE TABLE IF NOT EXISTS task_checkpoints (\n event_rowid INTEGER PRIMARY KEY,\n task_id TEXT NOT NULL,\n name TEXT NOT NULL,\n data TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(data)),\n timestamp TEXT NOT NULL\n);\n\n-- Full-text search over tasks (rebuildable)\nCREATE VIRTUAL TABLE IF NOT EXISTS task_search USING fts5(\n task_id UNINDEXED,\n title,\n description,\n tags\n);\n\n-- Projects table (projection from events)\nCREATE TABLE IF NOT EXISTS projects (\n name TEXT PRIMARY KEY,\n description TEXT,\n is_protected INTEGER NOT NULL DEFAULT 0,\n created_at TEXT NOT NULL,\n last_event_id INTEGER NOT NULL\n);\n\nCREATE INDEX IF NOT EXISTS idx_projects_protected ON projects(is_protected);\n\n-- Durable hook delivery outbox (not rebuildable)\nCREATE TABLE IF NOT EXISTS hook_outbox (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n hook_name TEXT NOT NULL,\n status TEXT NOT NULL DEFAULT 'queued' CHECK (status IN ('queued','processing','delivered','failed')),\n url TEXT NOT NULL,\n headers TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(headers)),\n payload TEXT NOT NULL CHECK (json_valid(payload)),\n attempts INTEGER NOT NULL DEFAULT 0,\n next_attempt_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),\n processing_started_at TEXT,\n delivered_at TEXT,\n failed_at TEXT,\n lock_token TEXT,\n locked_by TEXT,\n lock_expires_at TEXT,\n last_error TEXT,\n error_payload TEXT CHECK (error_payload IS NULL OR json_valid(error_payload)),\n created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),\n updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now'))\n);\n\n-- Workflow idempotency cache (not rebuildable)\nCREATE TABLE IF NOT EXISTS workflow_ops (\n op_id TEXT PRIMARY KEY,\n workflow_name TEXT NOT NULL,\n input_hash TEXT NOT NULL,\n state TEXT NOT NULL CHECK (state IN ('processing','completed','failed')),\n result_payload TEXT CHECK (result_payload IS NULL OR json_valid(result_payload)),\n error_payload TEXT CHECK (error_payload IS NULL OR json_valid(error_payload)),\n created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),\n updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now'))\n);\n\n-- Indexes for tasks_current\nCREATE INDEX IF NOT EXISTS idx_tasks_current_project_status ON tasks_current(project, status);\nCREATE INDEX IF NOT EXISTS idx_tasks_current_status ON tasks_current(status);\nCREATE INDEX IF NOT EXISTS idx_tasks_current_priority ON tasks_current(project, priority, created_at);\nCREATE INDEX IF NOT EXISTS idx_tasks_current_claim_next ON tasks_current(project, status, priority DESC, created_at ASC, task_id ASC);\nCREATE INDEX IF NOT EXISTS idx_tasks_current_stuck ON tasks_current(project, status, claimed_at);\nCREATE INDEX IF NOT EXISTS idx_tasks_current_parent ON tasks_current(parent_id);\nCREATE INDEX IF NOT EXISTS idx_tasks_current_terminal_at ON tasks_current(terminal_at);\nCREATE INDEX IF NOT EXISTS idx_tasks_current_due_at ON tasks_current(due_at);\nCREATE INDEX IF NOT EXISTS idx_tasks_current_agent ON tasks_current(agent);\n\n-- Indexes for dependencies\nCREATE INDEX IF NOT EXISTS idx_deps_depends_on ON task_dependencies(depends_on_id);\n\n-- Indexes for tags/comments/checkpoints\nCREATE INDEX IF NOT EXISTS idx_task_tags_tag ON task_tags(tag, task_id);\nCREATE INDEX IF NOT EXISTS idx_task_comments_task ON task_comments(task_id, event_rowid);\nCREATE INDEX IF NOT EXISTS idx_task_checkpoints_task ON task_checkpoints(task_id, event_rowid);\n\n-- Indexes for hook/workflow foundations\nCREATE INDEX IF NOT EXISTS idx_hook_outbox_drain ON hook_outbox(status, next_attempt_at, id);\nCREATE INDEX IF NOT EXISTS idx_hook_outbox_lock ON hook_outbox(status, lock_expires_at);\nCREATE INDEX IF NOT EXISTS idx_hook_outbox_hook_status ON hook_outbox(hook_name, status, id);\nCREATE INDEX IF NOT EXISTS idx_workflow_ops_workflow_state ON workflow_ops(workflow_name, state, updated_at);\nCREATE INDEX IF NOT EXISTS idx_workflow_ops_workflow_input ON workflow_ops(workflow_name, input_hash);\n";
|
|
2
|
+
export declare const CACHE_SCHEMA_V1 = "\n-- Local metadata (per-device sync state)\nCREATE TABLE IF NOT EXISTS hzl_local_meta (\n key TEXT PRIMARY KEY,\n value TEXT NOT NULL\n);\n\n-- Projection cursor (tracks last applied event)\nCREATE TABLE IF NOT EXISTS projection_cursor (\n key TEXT PRIMARY KEY,\n value TEXT NOT NULL\n);\n\n-- Track last applied event id per projection\nCREATE TABLE IF NOT EXISTS projection_state (\n name TEXT PRIMARY KEY,\n last_event_id INTEGER NOT NULL DEFAULT 0,\n updated_at TEXT NOT NULL\n);\n\n-- Current-state projection for fast reads (rebuildable from events)\nCREATE TABLE IF NOT EXISTS tasks_current (\n task_id TEXT PRIMARY KEY,\n title TEXT NOT NULL,\n project TEXT NOT NULL,\n status TEXT NOT NULL CHECK (status IN ('backlog','ready','in_progress','blocked','done','archived')),\n parent_id TEXT,\n description TEXT,\n links TEXT NOT NULL DEFAULT '[]' CHECK (json_valid(links)),\n tags TEXT NOT NULL DEFAULT '[]' CHECK (json_valid(tags)),\n priority INTEGER NOT NULL DEFAULT 0 CHECK (priority BETWEEN 0 AND 3),\n due_at TEXT,\n metadata TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(metadata)),\n stale_after_minutes INTEGER CHECK (stale_after_minutes >= 0),\n claimed_at TEXT,\n agent TEXT,\n progress INTEGER CHECK (progress >= 0 AND progress <= 100),\n lease_until TEXT,\n terminal_at TEXT,\n created_at TEXT NOT NULL,\n updated_at TEXT NOT NULL,\n last_event_id INTEGER NOT NULL\n);\n\n-- Dependency edges for fast availability checks (rebuildable)\nCREATE TABLE IF NOT EXISTS task_dependencies (\n task_id TEXT NOT NULL,\n depends_on_id TEXT NOT NULL,\n PRIMARY KEY (task_id, depends_on_id)\n);\n\n-- Fast tag filtering (rebuildable)\nCREATE TABLE IF NOT EXISTS task_tags (\n task_id TEXT NOT NULL,\n tag TEXT NOT NULL,\n PRIMARY KEY (task_id, tag)\n);\n\n-- Fast access for steering comments (rebuildable)\nCREATE TABLE IF NOT EXISTS task_comments (\n event_rowid INTEGER PRIMARY KEY,\n task_id TEXT NOT NULL,\n author TEXT,\n agent_id TEXT,\n text TEXT NOT NULL,\n timestamp TEXT NOT NULL\n);\n\n-- Fast access for checkpoints (rebuildable)\nCREATE TABLE IF NOT EXISTS task_checkpoints (\n event_rowid INTEGER PRIMARY KEY,\n task_id TEXT NOT NULL,\n name TEXT NOT NULL,\n data TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(data)),\n timestamp TEXT NOT NULL\n);\n\n-- Full-text search over tasks (rebuildable)\nCREATE VIRTUAL TABLE IF NOT EXISTS task_search USING fts5(\n task_id UNINDEXED,\n title,\n description,\n tags\n);\n\n-- Projects table (projection from events)\nCREATE TABLE IF NOT EXISTS projects (\n name TEXT PRIMARY KEY,\n description TEXT,\n is_protected INTEGER NOT NULL DEFAULT 0,\n created_at TEXT NOT NULL,\n last_event_id INTEGER NOT NULL\n);\n\nCREATE INDEX IF NOT EXISTS idx_projects_protected ON projects(is_protected);\n\n-- Durable hook delivery outbox (not rebuildable)\nCREATE TABLE IF NOT EXISTS hook_outbox (\n id INTEGER PRIMARY KEY AUTOINCREMENT,\n hook_name TEXT NOT NULL,\n status TEXT NOT NULL DEFAULT 'queued' CHECK (status IN ('queued','processing','delivered','failed')),\n url TEXT NOT NULL,\n headers TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(headers)),\n payload TEXT NOT NULL CHECK (json_valid(payload)),\n attempts INTEGER NOT NULL DEFAULT 0,\n next_attempt_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),\n processing_started_at TEXT,\n delivered_at TEXT,\n failed_at TEXT,\n lock_token TEXT,\n locked_by TEXT,\n lock_expires_at TEXT,\n last_error TEXT,\n error_payload TEXT CHECK (error_payload IS NULL OR json_valid(error_payload)),\n created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),\n updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now'))\n);\n\n-- Workflow idempotency cache (not rebuildable)\nCREATE TABLE IF NOT EXISTS workflow_ops (\n op_id TEXT PRIMARY KEY,\n workflow_name TEXT NOT NULL,\n input_hash TEXT NOT NULL,\n state TEXT NOT NULL CHECK (state IN ('processing','completed','failed')),\n result_payload TEXT CHECK (result_payload IS NULL OR json_valid(result_payload)),\n error_payload TEXT CHECK (error_payload IS NULL OR json_valid(error_payload)),\n created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now')),\n updated_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%fZ','now'))\n);\n\n-- Indexes for tasks_current\nCREATE INDEX IF NOT EXISTS idx_tasks_current_project_status ON tasks_current(project, status);\nCREATE INDEX IF NOT EXISTS idx_tasks_current_status ON tasks_current(status);\nCREATE INDEX IF NOT EXISTS idx_tasks_current_priority ON tasks_current(project, priority, created_at);\nCREATE INDEX IF NOT EXISTS idx_tasks_current_claim_next ON tasks_current(project, status, priority DESC, created_at ASC, task_id ASC);\nCREATE INDEX IF NOT EXISTS idx_tasks_current_stuck ON tasks_current(project, status, claimed_at);\nCREATE INDEX IF NOT EXISTS idx_tasks_current_parent ON tasks_current(parent_id);\nCREATE INDEX IF NOT EXISTS idx_tasks_current_terminal_at ON tasks_current(terminal_at);\nCREATE INDEX IF NOT EXISTS idx_tasks_current_due_at ON tasks_current(due_at);\nCREATE INDEX IF NOT EXISTS idx_tasks_current_agent ON tasks_current(agent);\n\n-- Indexes for dependencies\nCREATE INDEX IF NOT EXISTS idx_deps_depends_on ON task_dependencies(depends_on_id);\n\n-- Indexes for tags/comments/checkpoints\nCREATE INDEX IF NOT EXISTS idx_task_tags_tag ON task_tags(tag, task_id);\nCREATE INDEX IF NOT EXISTS idx_task_comments_task ON task_comments(task_id, event_rowid);\nCREATE INDEX IF NOT EXISTS idx_task_checkpoints_task ON task_checkpoints(task_id, event_rowid);\n\n-- Indexes for hook/workflow foundations\nCREATE INDEX IF NOT EXISTS idx_hook_outbox_drain ON hook_outbox(status, next_attempt_at, id);\nCREATE INDEX IF NOT EXISTS idx_hook_outbox_lock ON hook_outbox(status, lock_expires_at);\nCREATE INDEX IF NOT EXISTS idx_hook_outbox_hook_status ON hook_outbox(hook_name, status, id);\nCREATE INDEX IF NOT EXISTS idx_workflow_ops_workflow_state ON workflow_ops(workflow_name, state, updated_at);\nCREATE INDEX IF NOT EXISTS idx_workflow_ops_workflow_input ON workflow_ops(workflow_name, input_hash);\n";
|
|
3
3
|
export declare const PRAGMAS = "\nPRAGMA journal_mode=WAL;\nPRAGMA synchronous=NORMAL;\nPRAGMA foreign_keys=ON;\nPRAGMA busy_timeout=5000;\n";
|
|
4
4
|
//# sourceMappingURL=schema.d.ts.map
|
package/dist/db/schema.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB,wuDAkD5B,CAAC;AAGF,eAAO,MAAM,eAAe,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,gBAAgB,wuDAkD5B,CAAC;AAGF,eAAO,MAAM,eAAe,gpNA2J3B,CAAC;AAEF,eAAO,MAAM,OAAO,iHAKnB,CAAC"}
|
package/dist/db/schema.js
CHANGED
|
@@ -84,6 +84,7 @@ CREATE TABLE IF NOT EXISTS tasks_current (
|
|
|
84
84
|
priority INTEGER NOT NULL DEFAULT 0 CHECK (priority BETWEEN 0 AND 3),
|
|
85
85
|
due_at TEXT,
|
|
86
86
|
metadata TEXT NOT NULL DEFAULT '{}' CHECK (json_valid(metadata)),
|
|
87
|
+
stale_after_minutes INTEGER CHECK (stale_after_minutes >= 0),
|
|
87
88
|
claimed_at TEXT,
|
|
88
89
|
agent TEXT,
|
|
89
90
|
progress INTEGER CHECK (progress >= 0 AND progress <= 100),
|
package/dist/db/schema.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkD/B,CAAC;AAEF,yCAAyC;AACzC,MAAM,CAAC,MAAM,eAAe,GAAG
|
|
1
|
+
{"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkD/B,CAAC;AAEF,yCAAyC;AACzC,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2J9B,CAAC;AAEF,MAAM,CAAC,MAAM,OAAO,GAAG;;;;;CAKtB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type Database from 'libsql';
|
|
2
|
+
import type { ProjectionEngine } from '../projections/engine.js';
|
|
3
|
+
import { EventType } from '../events/types.js';
|
|
4
|
+
export declare function resetSeedCounter(): void;
|
|
5
|
+
export declare function seedEvent(eventsDb: Database.Database, projectionEngine: ProjectionEngine, input: {
|
|
6
|
+
taskId: string;
|
|
7
|
+
type: EventType;
|
|
8
|
+
data: Record<string, unknown>;
|
|
9
|
+
timestamp: string;
|
|
10
|
+
author?: string;
|
|
11
|
+
agentId?: string;
|
|
12
|
+
}): void;
|
|
13
|
+
export declare function seedCompletedTask(eventsDb: Database.Database, projectionEngine: ProjectionEngine, input: {
|
|
14
|
+
taskId: string;
|
|
15
|
+
title: string;
|
|
16
|
+
project: string;
|
|
17
|
+
agent: string;
|
|
18
|
+
readyAt: string;
|
|
19
|
+
startedAt: string;
|
|
20
|
+
doneAt: string;
|
|
21
|
+
}): void;
|
|
22
|
+
//# sourceMappingURL=test-seed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-seed.d.ts","sourceRoot":"","sources":["../../src/db/test-seed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,SAAS,EAAc,MAAM,oBAAoB,CAAC;AAI3D,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED,wBAAgB,SAAS,CACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAC3B,gBAAgB,EAAE,gBAAgB,EAClC,KAAK,EAAE;IACL,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,GACA,IAAI,CAiCN;AAED,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAC3B,gBAAgB,EAAE,gBAAgB,EAClC,KAAK,EAAE;IACL,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB,GACA,IAAI,CA0CN"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { EventType, TaskStatus } from '../events/types.js';
|
|
2
|
+
let seededEventCounter = 0;
|
|
3
|
+
export function resetSeedCounter() {
|
|
4
|
+
seededEventCounter = 0;
|
|
5
|
+
}
|
|
6
|
+
export function seedEvent(eventsDb, projectionEngine, input) {
|
|
7
|
+
seededEventCounter += 1;
|
|
8
|
+
const eventId = `seed-event-${seededEventCounter}`;
|
|
9
|
+
const payload = {
|
|
10
|
+
rowid: 0,
|
|
11
|
+
event_id: eventId,
|
|
12
|
+
task_id: input.taskId,
|
|
13
|
+
type: input.type,
|
|
14
|
+
data: input.data,
|
|
15
|
+
author: input.author,
|
|
16
|
+
agent_id: input.agentId,
|
|
17
|
+
timestamp: input.timestamp,
|
|
18
|
+
};
|
|
19
|
+
eventsDb.prepare(`
|
|
20
|
+
INSERT INTO events (
|
|
21
|
+
event_id, task_id, type, data, schema_version, author, agent_id, timestamp
|
|
22
|
+
) VALUES (?, ?, ?, ?, 1, ?, ?, ?)
|
|
23
|
+
`).run(eventId, input.taskId, input.type, JSON.stringify(input.data), input.author ?? null, input.agentId ?? null, input.timestamp);
|
|
24
|
+
const row = eventsDb
|
|
25
|
+
.prepare('SELECT id FROM events WHERE event_id = ?')
|
|
26
|
+
.get(eventId);
|
|
27
|
+
projectionEngine.applyEvent({ ...payload, rowid: row.id });
|
|
28
|
+
}
|
|
29
|
+
export function seedCompletedTask(eventsDb, projectionEngine, input) {
|
|
30
|
+
seedEvent(eventsDb, projectionEngine, {
|
|
31
|
+
taskId: input.taskId,
|
|
32
|
+
type: EventType.TaskCreated,
|
|
33
|
+
timestamp: input.readyAt,
|
|
34
|
+
data: {
|
|
35
|
+
title: input.title,
|
|
36
|
+
project: input.project,
|
|
37
|
+
agent: input.agent,
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
seedEvent(eventsDb, projectionEngine, {
|
|
41
|
+
taskId: input.taskId,
|
|
42
|
+
type: EventType.StatusChanged,
|
|
43
|
+
timestamp: input.readyAt,
|
|
44
|
+
author: input.agent,
|
|
45
|
+
data: {
|
|
46
|
+
from: TaskStatus.Backlog,
|
|
47
|
+
to: TaskStatus.Ready,
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
seedEvent(eventsDb, projectionEngine, {
|
|
51
|
+
taskId: input.taskId,
|
|
52
|
+
type: EventType.StatusChanged,
|
|
53
|
+
timestamp: input.startedAt,
|
|
54
|
+
author: input.agent,
|
|
55
|
+
data: {
|
|
56
|
+
from: TaskStatus.Ready,
|
|
57
|
+
to: TaskStatus.InProgress,
|
|
58
|
+
agent: input.agent,
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
seedEvent(eventsDb, projectionEngine, {
|
|
62
|
+
taskId: input.taskId,
|
|
63
|
+
type: EventType.StatusChanged,
|
|
64
|
+
timestamp: input.doneAt,
|
|
65
|
+
author: input.agent,
|
|
66
|
+
data: {
|
|
67
|
+
from: TaskStatus.InProgress,
|
|
68
|
+
to: TaskStatus.Done,
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=test-seed.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-seed.js","sourceRoot":"","sources":["../../src/db/test-seed.ts"],"names":[],"mappings":"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"}
|
package/dist/events/store.d.ts
CHANGED
|
@@ -19,6 +19,10 @@ export interface GetByTaskIdOptions {
|
|
|
19
19
|
afterId?: number;
|
|
20
20
|
limit?: number;
|
|
21
21
|
}
|
|
22
|
+
export interface GetEventsOptions {
|
|
23
|
+
afterId?: number;
|
|
24
|
+
limit?: number;
|
|
25
|
+
}
|
|
22
26
|
export declare class EventStore {
|
|
23
27
|
private db;
|
|
24
28
|
private upcasterRegistry;
|
|
@@ -26,10 +30,14 @@ export declare class EventStore {
|
|
|
26
30
|
private insertIgnoreStmt;
|
|
27
31
|
private selectByTaskStmt;
|
|
28
32
|
private selectByEventIdStmt;
|
|
33
|
+
private selectAllEventsStmt;
|
|
34
|
+
private selectLatestEventIdStmt;
|
|
29
35
|
constructor(db: Database.Database, upcasterRegistry?: UpcasterRegistry);
|
|
30
36
|
append(input: AppendEventInput): PersistedEventEnvelope;
|
|
31
37
|
appendIdempotent(input: AppendEventInput): PersistedEventEnvelope | null;
|
|
32
38
|
getByTaskId(taskId: string, opts?: GetByTaskIdOptions): PersistedEventEnvelope[];
|
|
39
|
+
getEvents(opts?: GetEventsOptions): PersistedEventEnvelope[];
|
|
40
|
+
getLatestEventId(): number;
|
|
33
41
|
/**
|
|
34
42
|
* Get recent events of specified types since a given event ID.
|
|
35
43
|
* Used by the web dashboard for the activity feed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/events/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,QAAQ,CAAC;AAGnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAA0B,aAAa,EAAE,SAAS,EAAqB,MAAM,YAAY,CAAC;AAEjG,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAC3D,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAiBD,qBAAa,UAAU;
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/events/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,QAAQ,CAAC;AAGnC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAA0B,aAAa,EAAE,SAAS,EAAqB,MAAM,YAAY,CAAC;AAEjG,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,sBAAuB,SAAQ,aAAa;IAC3D,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAiBD,qBAAa,UAAU;IASnB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,gBAAgB;IAT1B,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,mBAAmB,CAAqB;IAChD,OAAO,CAAC,uBAAuB,CAAqB;gBAG1C,EAAE,EAAE,QAAQ,CAAC,QAAQ,EACrB,gBAAgB,GAAE,gBAAyC;IAuCrE,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,sBAAsB;IAgCvD,gBAAgB,CAAC,KAAK,EAAE,gBAAgB,GAAG,sBAAsB,GAAG,IAAI;IA8BxE,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,sBAAsB,EAAE;IAShF,SAAS,CAAC,IAAI,GAAE,gBAAqB,GAAG,sBAAsB,EAAE;IAQhE,gBAAgB,IAAI,MAAM;IAK1B;;;OAGG;IACH,eAAe,CAAC,IAAI,GAAE;QACpB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC;KAChB,GAAG,sBAAsB,EAAE;IAuBjC,OAAO,CAAC,aAAa;CA2BtB"}
|
package/dist/events/store.js
CHANGED
|
@@ -9,6 +9,8 @@ export class EventStore {
|
|
|
9
9
|
insertIgnoreStmt;
|
|
10
10
|
selectByTaskStmt;
|
|
11
11
|
selectByEventIdStmt;
|
|
12
|
+
selectAllEventsStmt;
|
|
13
|
+
selectLatestEventIdStmt;
|
|
12
14
|
constructor(db, upcasterRegistry = new UpcasterRegistry()) {
|
|
13
15
|
this.db = db;
|
|
14
16
|
this.upcasterRegistry = upcasterRegistry;
|
|
@@ -31,6 +33,15 @@ export class EventStore {
|
|
|
31
33
|
`);
|
|
32
34
|
this.selectByEventIdStmt = db.prepare(`
|
|
33
35
|
SELECT * FROM events WHERE event_id = ?
|
|
36
|
+
`);
|
|
37
|
+
this.selectAllEventsStmt = db.prepare(`
|
|
38
|
+
SELECT * FROM events
|
|
39
|
+
WHERE id > COALESCE(?, 0)
|
|
40
|
+
ORDER BY id ASC
|
|
41
|
+
LIMIT COALESCE(?, -1)
|
|
42
|
+
`);
|
|
43
|
+
this.selectLatestEventIdStmt = db.prepare(`
|
|
44
|
+
SELECT COALESCE(MAX(id), 0) AS latest_id FROM events
|
|
34
45
|
`);
|
|
35
46
|
}
|
|
36
47
|
append(input) {
|
|
@@ -70,6 +81,14 @@ export class EventStore {
|
|
|
70
81
|
const rows = this.selectByTaskStmt.all(taskId, opts?.afterId ?? null, opts?.limit ?? null);
|
|
71
82
|
return rows.map(row => this.rowToEnvelope(row));
|
|
72
83
|
}
|
|
84
|
+
getEvents(opts = {}) {
|
|
85
|
+
const rows = this.selectAllEventsStmt.all(opts.afterId ?? null, opts.limit ?? null);
|
|
86
|
+
return rows.map((row) => this.rowToEnvelope(row));
|
|
87
|
+
}
|
|
88
|
+
getLatestEventId() {
|
|
89
|
+
const row = this.selectLatestEventIdStmt.get();
|
|
90
|
+
return row.latest_id;
|
|
91
|
+
}
|
|
73
92
|
/**
|
|
74
93
|
* Get recent events of specified types since a given event ID.
|
|
75
94
|
* Used by the web dashboard for the activity feed.
|
package/dist/events/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/events/store.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,sBAAsB,EAAiB,SAAS,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/events/store.ts"],"names":[],"mappings":"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"}
|
|
@@ -152,6 +152,60 @@ describe('EventStore', () => {
|
|
|
152
152
|
warnSpy.mockRestore();
|
|
153
153
|
});
|
|
154
154
|
});
|
|
155
|
+
describe('getEvents', () => {
|
|
156
|
+
it('returns all events in rowid order', () => {
|
|
157
|
+
const first = store.append({
|
|
158
|
+
task_id: 'TASK1',
|
|
159
|
+
type: EventType.TaskCreated,
|
|
160
|
+
data: { title: 'First', project: 'inbox' },
|
|
161
|
+
});
|
|
162
|
+
const second = store.append({
|
|
163
|
+
task_id: 'TASK2',
|
|
164
|
+
type: EventType.TaskCreated,
|
|
165
|
+
data: { title: 'Second', project: 'inbox' },
|
|
166
|
+
});
|
|
167
|
+
const events = store.getEvents();
|
|
168
|
+
expect(events.map((event) => event.rowid)).toEqual([first.rowid, second.rowid]);
|
|
169
|
+
});
|
|
170
|
+
it('supports reading after a cursor with a limit', () => {
|
|
171
|
+
const first = store.append({
|
|
172
|
+
task_id: 'TASK1',
|
|
173
|
+
type: EventType.TaskCreated,
|
|
174
|
+
data: { title: 'First', project: 'inbox' },
|
|
175
|
+
});
|
|
176
|
+
const second = store.append({
|
|
177
|
+
task_id: 'TASK2',
|
|
178
|
+
type: EventType.TaskCreated,
|
|
179
|
+
data: { title: 'Second', project: 'inbox' },
|
|
180
|
+
});
|
|
181
|
+
store.append({
|
|
182
|
+
task_id: 'TASK3',
|
|
183
|
+
type: EventType.TaskCreated,
|
|
184
|
+
data: { title: 'Third', project: 'inbox' },
|
|
185
|
+
});
|
|
186
|
+
const events = store.getEvents({ afterId: first.rowid, limit: 1 });
|
|
187
|
+
expect(events).toHaveLength(1);
|
|
188
|
+
expect(events[0].rowid).toBe(second.rowid);
|
|
189
|
+
});
|
|
190
|
+
});
|
|
191
|
+
describe('getLatestEventId', () => {
|
|
192
|
+
it('returns zero when the store is empty', () => {
|
|
193
|
+
expect(store.getLatestEventId()).toBe(0);
|
|
194
|
+
});
|
|
195
|
+
it('returns the highest event rowid', () => {
|
|
196
|
+
store.append({
|
|
197
|
+
task_id: 'TASK1',
|
|
198
|
+
type: EventType.TaskCreated,
|
|
199
|
+
data: { title: 'First', project: 'inbox' },
|
|
200
|
+
});
|
|
201
|
+
const latest = store.append({
|
|
202
|
+
task_id: 'TASK2',
|
|
203
|
+
type: EventType.TaskCreated,
|
|
204
|
+
data: { title: 'Second', project: 'inbox' },
|
|
205
|
+
});
|
|
206
|
+
expect(store.getLatestEventId()).toBe(latest.rowid);
|
|
207
|
+
});
|
|
208
|
+
});
|
|
155
209
|
describe('appendIdempotent', () => {
|
|
156
210
|
it('inserts new event', () => {
|
|
157
211
|
const result = store.appendIdempotent({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.test.js","sourceRoot":"","sources":["../../src/events/store.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAEzE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,gBAAgB,EAAsB,MAAM,gBAAgB,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,IAAI,EAAqB,CAAC;IAC1B,IAAI,KAAiB,CAAC;IAEtB,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,GAAG,YAAY,EAAE,CAAC;QACpB,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,KAAK,EAAE,CAAC;IACb,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;QACtB,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;gBACzB,OAAO,EAAE,4BAA4B;gBACrC,IAAI,EAAE,SAAS,CAAC,WAAW;gBAC3B,IAAI,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE;aAC/C,CAAC,CAAC;YAEH,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YACzD,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC/C,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;gBACzB,OAAO,EAAE,aAAa;gBACtB,IAAI,EAAE,SAAS,CAAC,WAAW;gBAC3B,IAAI,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,OAAO,EAAE;aACpD,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,sDAAsD,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,CAEhG,CAAC;YACF,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,OAAO,GAAG,4BAA4B,CAAC;YAC7C,KAAK,CAAC,MAAM,CAAC;gBACX,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,SAAS,CAAC,WAAW;gBAC3B,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;aAC1C,CAAC,CAAC;YAEH,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;gBACxB,QAAQ,EAAE,OAAO;gBACjB,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,SAAS,CAAC,WAAW;gBAC3B,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE;aAC5C,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;YAC9B,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC;gBACxB,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,SAAS,CAAC,WAAW;gBAC3B,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,gBAAgB;aAC7C,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;QAC3B,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;YAC5C,MAAM,MAAM,GAAG,4BAA4B,CAAC;YAE5C,KAAK,CAAC,MAAM,CAAC;gBACX,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,SAAS,CAAC,WAAW;gBAC3B,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;aAC1C,CAAC,CAAC;YAEH,KAAK,CAAC,MAAM,CAAC;gBACX,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,SAAS,CAAC,aAAa;gBAC7B,IAAI,EAAE,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,EAAE,EAAE,EAAE,UAAU,CAAC,KAAK,EAAE;aACzD,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YACzC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,MAAM,GAAG,OAAO,CAAC;YACvB,MAAM,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;gBACtB,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,SAAS,CAAC,WAAW;gBAC3B,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;aAC1C,CAAC,CAAC;YACH,KAAK,CAAC,MAAM,CAAC;gBACX,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,SAAS,CAAC,YAAY;gBAC5B,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;aAC5B,CAAC,CAAC;YACH,KAAK,CAAC,MAAM,CAAC;gBACX,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,SAAS,CAAC,YAAY;gBAC5B,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE;aAC5B,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC;YAChE,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAE,MAAM,CAAC,CAAC,CAAC,CAAC,IAAY,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gBAAgB,EAAE,GAAG,EAAE;YACxB,MAAM,MAAM,GAAG,OAAO,CAAC;YACvB,KAAK,CAAC,MAAM,CAAC;gBACX,OAAO,EAAE,MAAM;gBACf,IAAI,EAAE,SAAS,CAAC,WAAW;gBAC3B,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;aAC1C,CAAC,CAAC;YACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,KAAK,CAAC,MAAM,CAAC;oBACX,OAAO,EAAE,MAAM;oBACf,IAAI,EAAE,SAAS,CAAC,YAAY;oBAC5B,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE;iBAC/B,CAAC,CAAC;YACL,CAAC;YAED,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;YACvD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,SAAS,GAAoB;gBACjC;oBACE,SAAS,EAAE,SAAS,CAAC,WAAW;oBAChC,WAAW,EAAE,CAAC;oBACd,SAAS,EAAE,CAAC;oBACZ,EAAE,CAAC,IAAI;wBACL,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;wBACzB,IAAI,UAAU,IAAI,IAAI,IAAI,OAAO,IAAI,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC;4BAClF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC;4BAC3B,OAAO,IAAI,CAAC,QAAQ,CAAC;wBACvB,CAAC;wBACD,OAAO,IAAI,CAAC;oBACd,CAAC;iBACF;aACF,CAAC;YAEF,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,EAAE,IAAI,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;YAC5D,EAAE,CAAC,OAAO,CAAC;;;OAGV,CAAC,CAAC,GAAG,CACJ,YAAY,EACZ,aAAa,EACb,SAAS,CAAC,WAAW,EACrB,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,EAC1E,CAAC,EACD,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CACzB,CAAC;YAEF,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2DAA2D,EAAE,GAAG,EAAE;YACnE,MAAM,OAAO,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YAC9E,EAAE,CAAC,OAAO,CAAC;;;OAGV,CAAC,CAAC,GAAG,CACJ,YAAY,EACZ,aAAa,EACb,SAAS,CAAC,WAAW,EACrB,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EACrD,sBAAsB,GAAG,CAAC,EAC1B,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CACzB,CAAC;YAEF,MAAM,MAAM,GAAG,KAAK,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;YACtE,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,EAAE,CAAC;YAEvC,OAAO,CAAC,WAAW,EAAE,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,mBAAmB,EAAE,GAAG,EAAE;YAC3B,MAAM,MAAM,GAAG,KAAK,CAAC,gBAAgB,CAAC;gBACpC,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,SAAS,CAAC,WAAW;gBAC3B,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;aAC1C,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC9B,MAAM,CAAC,MAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,KAAK,CAAC,MAAM,CAAC;gBACX,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,SAAS,CAAC,WAAW;gBAC3B,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;aAC1C,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,KAAK,CAAC,gBAAgB,CAAC;gBACpC,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,OAAO;gBAChB,IAAI,EAAE,SAAS,CAAC,WAAW;gBAC3B,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE;aAC1C,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"store.test.js","sourceRoot":"","sources":["../../src/events/store.test.ts"],"names":[],"mappings":"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"}
|
package/dist/events/types.d.ts
CHANGED
|
@@ -60,6 +60,7 @@ declare const TaskCreatedSchema: z.ZodObject<{
|
|
|
60
60
|
priority: z.ZodOptional<z.ZodNumber>;
|
|
61
61
|
due_at: z.ZodOptional<z.ZodString>;
|
|
62
62
|
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
63
|
+
stale_after_minutes: z.ZodOptional<z.ZodNumber>;
|
|
63
64
|
agent: z.ZodOptional<z.ZodString>;
|
|
64
65
|
assignee: z.ZodOptional<z.ZodString>;
|
|
65
66
|
}, z.core.$strip>;
|
|
@@ -78,12 +79,13 @@ declare const TaskMovedSchema: z.ZodObject<{
|
|
|
78
79
|
declare const DependencySchema: z.ZodObject<{
|
|
79
80
|
depends_on_id: z.ZodString;
|
|
80
81
|
}, z.core.$strip>;
|
|
81
|
-
export declare const UPDATABLE_TASK_FIELDS: readonly ["title", "description", "links", "tags", "priority", "due_at", "metadata", "parent_id", "agent", "assignee"];
|
|
82
|
+
export declare const UPDATABLE_TASK_FIELDS: readonly ["title", "description", "links", "tags", "priority", "due_at", "metadata", "stale_after_minutes", "parent_id", "agent", "assignee"];
|
|
82
83
|
export type UpdatableTaskField = (typeof UPDATABLE_TASK_FIELDS)[number];
|
|
83
84
|
declare const TaskUpdatedSchema: z.ZodObject<{
|
|
84
85
|
field: z.ZodEnum<{
|
|
85
86
|
agent: "agent";
|
|
86
87
|
assignee: "assignee";
|
|
88
|
+
stale_after_minutes: "stale_after_minutes";
|
|
87
89
|
title: "title";
|
|
88
90
|
parent_id: "parent_id";
|
|
89
91
|
description: "description";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oBAAY,SAAS;IACnB,WAAW,iBAAiB;IAC5B,aAAa,mBAAmB;IAChC,SAAS,eAAe;IACxB,eAAe,qBAAqB;IACpC,iBAAiB,uBAAuB;IACxC,WAAW,iBAAiB;IAC5B,YAAY,kBAAkB;IAC9B,YAAY,kBAAkB;IAC9B,kBAAkB,wBAAwB;IAC1C,cAAc,oBAAoB;IAClC,cAAc,oBAAoB;IAClC,cAAc,oBAAoB;CACnC;AAED,oBAAY,UAAU;IACpB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,UAAU,gBAAgB;IAC1B,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB;AAED,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;CAcf,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oBAAY,SAAS;IACnB,WAAW,iBAAiB;IAC5B,aAAa,mBAAmB;IAChC,SAAS,eAAe;IACxB,eAAe,qBAAqB;IACpC,iBAAiB,uBAAuB;IACxC,WAAW,iBAAiB;IAC5B,YAAY,kBAAkB;IAC9B,YAAY,kBAAkB;IAC9B,kBAAkB,wBAAwB;IAC1C,cAAc,oBAAoB;IAClC,cAAc,oBAAoB;IAClC,cAAc,oBAAoB;CACnC;AAED,oBAAY,UAAU;IACpB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,UAAU,gBAAgB;IAC1B,OAAO,YAAY;IACnB,IAAI,SAAS;IACb,QAAQ,aAAa;CACtB;AAED,eAAO,MAAM,sBAAsB,IAAI,CAAC;AAExC,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD,eAAO,MAAM,YAAY;;;;;;;;;;;;;;CAcf,CAAC;AAkEX,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;iBAgBrB,CAAC;AAEH,QAAA,MAAM,mBAAmB;;;;;;;iBAWvB,CAAC;AAEH,QAAA,MAAM,eAAe;;;iBAGnB,CAAC;AAEH,QAAA,MAAM,gBAAgB;;iBAEpB,CAAC;AAOH,eAAO,MAAM,qBAAqB,+IAaxB,CAAC;AAEX,MAAM,MAAM,kBAAkB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,CAAC,CAAC;AAiBxE,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;iBAiBnB,CAAC;AAEL,QAAA,MAAM,kBAAkB;;iBAEtB,CAAC;AAEH,QAAA,MAAM,kBAAkB;;iBAEtB,CAAC;AAEH,QAAA,MAAM,wBAAwB;;;;iBAI5B,CAAC;AAEH,QAAA,MAAM,oBAAoB;;;;iBAIxB,CAAC;AAEH,QAAA,MAAM,oBAAoB;;;iBAGxB,CAAC;AAEH,QAAA,MAAM,oBAAoB;;;;iBAIxB,CAAC;AAMH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAahE,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAMtE;AAMD,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAChE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AACpE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAC5D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAC9D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAChE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAClE,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAClE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAC9E,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACtE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACtE,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAEtE,eAAO,MAAM,qBAAqB,gBAAgB,CAAC"}
|
package/dist/events/types.js
CHANGED
|
@@ -68,6 +68,7 @@ const reasonString = z.string().max(FIELD_LIMITS.REASON);
|
|
|
68
68
|
const commentString = z.string().min(1).max(FIELD_LIMITS.COMMENT);
|
|
69
69
|
const checkpointNameString = z.string().min(1).max(FIELD_LIMITS.CHECKPOINT_NAME);
|
|
70
70
|
const priorityNumber = z.number().int().min(0).max(3);
|
|
71
|
+
const staleAfterMinutesNumber = z.number().int().min(0);
|
|
71
72
|
// Arrays with item limits
|
|
72
73
|
const linksArray = z.array(linkString).max(FIELD_LIMITS.ARRAY_MAX_ITEMS);
|
|
73
74
|
const tagsArray = z.array(tagString).max(FIELD_LIMITS.ARRAY_MAX_ITEMS);
|
|
@@ -95,6 +96,7 @@ const TaskCreatedSchema = z.object({
|
|
|
95
96
|
priority: priorityNumber.optional(),
|
|
96
97
|
due_at: isoDateTime.optional(),
|
|
97
98
|
metadata: metadataRecord.optional(),
|
|
99
|
+
stale_after_minutes: staleAfterMinutesNumber.optional(),
|
|
98
100
|
// Canonical v2 field.
|
|
99
101
|
agent: z.string().max(FIELD_LIMITS.IDENTIFIER).optional(),
|
|
100
102
|
// Legacy v1 field accepted for backward compatibility during replay/interop.
|
|
@@ -131,6 +133,7 @@ export const UPDATABLE_TASK_FIELDS = [
|
|
|
131
133
|
'priority',
|
|
132
134
|
'due_at',
|
|
133
135
|
'metadata',
|
|
136
|
+
'stale_after_minutes',
|
|
134
137
|
'parent_id',
|
|
135
138
|
'agent',
|
|
136
139
|
// Legacy alias kept so historical events with field=assignee still validate.
|
|
@@ -145,6 +148,7 @@ const updatableFieldValidators = {
|
|
|
145
148
|
priority: priorityNumber,
|
|
146
149
|
due_at: isoDateTime.nullable(),
|
|
147
150
|
metadata: metadataRecord,
|
|
151
|
+
stale_after_minutes: staleAfterMinutesNumber.nullable(),
|
|
148
152
|
parent_id: nonEmptyString.nullable(),
|
|
149
153
|
agent: z.string().max(FIELD_LIMITS.IDENTIFIER).nullable(),
|
|
150
154
|
assignee: z.string().max(FIELD_LIMITS.IDENTIFIER).nullable(),
|
package/dist/events/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"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"}
|