hzl-core 2.10.0 → 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.
Files changed (63) hide show
  1. package/dist/__tests__/migrations/v5-upgrade.test.d.ts +2 -0
  2. package/dist/__tests__/migrations/v5-upgrade.test.d.ts.map +1 -0
  3. package/dist/__tests__/migrations/v5-upgrade.test.js +56 -0
  4. package/dist/__tests__/migrations/v5-upgrade.test.js.map +1 -0
  5. package/dist/db/migrations/index.d.ts.map +1 -1
  6. package/dist/db/migrations/index.js +5 -0
  7. package/dist/db/migrations/index.js.map +1 -1
  8. package/dist/db/migrations/v5.d.ts +2 -0
  9. package/dist/db/migrations/v5.d.ts.map +1 -0
  10. package/dist/db/migrations/v5.js +4 -0
  11. package/dist/db/migrations/v5.js.map +1 -0
  12. package/dist/db/schema.d.ts +1 -1
  13. package/dist/db/schema.d.ts.map +1 -1
  14. package/dist/db/schema.js +1 -0
  15. package/dist/db/schema.js.map +1 -1
  16. package/dist/db/test-seed.d.ts +22 -0
  17. package/dist/db/test-seed.d.ts.map +1 -0
  18. package/dist/db/test-seed.js +72 -0
  19. package/dist/db/test-seed.js.map +1 -0
  20. package/dist/events/store.d.ts +8 -0
  21. package/dist/events/store.d.ts.map +1 -1
  22. package/dist/events/store.js +19 -0
  23. package/dist/events/store.js.map +1 -1
  24. package/dist/events/store.test.js +54 -0
  25. package/dist/events/store.test.js.map +1 -1
  26. package/dist/events/types.d.ts +3 -1
  27. package/dist/events/types.d.ts.map +1 -1
  28. package/dist/events/types.js +4 -0
  29. package/dist/events/types.js.map +1 -1
  30. package/dist/events/types.test.js +31 -0
  31. package/dist/events/types.test.js.map +1 -1
  32. package/dist/index.d.ts +2 -1
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +1 -0
  35. package/dist/index.js.map +1 -1
  36. package/dist/projections/tasks-current.d.ts.map +1 -1
  37. package/dist/projections/tasks-current.js +3 -3
  38. package/dist/projections/tasks-current.js.map +1 -1
  39. package/dist/projections/tasks-current.test.js +18 -0
  40. package/dist/projections/tasks-current.test.js.map +1 -1
  41. package/dist/services/stats-service.d.ts +51 -0
  42. package/dist/services/stats-service.d.ts.map +1 -0
  43. package/dist/services/stats-service.js +183 -0
  44. package/dist/services/stats-service.js.map +1 -0
  45. package/dist/services/stats-service.test.d.ts +2 -0
  46. package/dist/services/stats-service.test.d.ts.map +1 -0
  47. package/dist/services/stats-service.test.js +196 -0
  48. package/dist/services/stats-service.test.js.map +1 -0
  49. package/dist/services/task-service.d.ts +3 -9
  50. package/dist/services/task-service.d.ts.map +1 -1
  51. package/dist/services/task-service.js +17 -34
  52. package/dist/services/task-service.js.map +1 -1
  53. package/dist/services/task-service.test.js +61 -32
  54. package/dist/services/task-service.test.js.map +1 -1
  55. package/dist/utils/duration.d.ts +3 -0
  56. package/dist/utils/duration.d.ts.map +1 -0
  57. package/dist/utils/duration.js +21 -0
  58. package/dist/utils/duration.js.map +1 -0
  59. package/dist/utils/duration.test.d.ts +2 -0
  60. package/dist/utils/duration.test.d.ts.map +1 -0
  61. package/dist/utils/duration.test.js +50 -0
  62. package/dist/utils/duration.test.js.map +1 -0
  63. package/package.json +1 -1
@@ -0,0 +1,196 @@
1
+ import { afterEach, beforeEach, describe, expect, it } from 'vitest';
2
+ import { createDatastore } from '../db/datastore.js';
3
+ import { resetSeedCounter, seedCompletedTask as seedCompletedTaskShared } from '../db/test-seed.js';
4
+ import { EventStore } from '../events/store.js';
5
+ import { ProjectionEngine } from '../projections/engine.js';
6
+ import { TasksCurrentProjector } from '../projections/tasks-current.js';
7
+ import { DependenciesProjector } from '../projections/dependencies.js';
8
+ import { TagsProjector } from '../projections/tags.js';
9
+ import { CommentsCheckpointsProjector } from '../projections/comments-checkpoints.js';
10
+ import { SearchProjector } from '../projections/search.js';
11
+ import { ProjectsProjector } from '../projections/projects.js';
12
+ import { ProjectService } from './project-service.js';
13
+ import { StatsService } from './stats-service.js';
14
+ import { TaskService } from './task-service.js';
15
+ import { TaskStatus } from '../events/types.js';
16
+ describe('StatsService', () => {
17
+ let datastore;
18
+ let eventStore;
19
+ let projectionEngine;
20
+ let projectService;
21
+ let taskService;
22
+ let statsService;
23
+ beforeEach(() => {
24
+ resetSeedCounter();
25
+ datastore = createDatastore({
26
+ events: { path: ':memory:', syncMode: 'offline', readYourWrites: true },
27
+ cache: { path: ':memory:' },
28
+ });
29
+ eventStore = new EventStore(datastore.eventsDb);
30
+ projectionEngine = new ProjectionEngine(datastore.cacheDb, datastore.eventsDb);
31
+ projectionEngine.register(new TasksCurrentProjector());
32
+ projectionEngine.register(new DependenciesProjector());
33
+ projectionEngine.register(new TagsProjector());
34
+ projectionEngine.register(new CommentsCheckpointsProjector());
35
+ projectionEngine.register(new SearchProjector());
36
+ projectionEngine.register(new ProjectsProjector());
37
+ projectService = new ProjectService(datastore.cacheDb, eventStore, projectionEngine);
38
+ taskService = new TaskService(datastore.cacheDb, eventStore, projectionEngine, projectService, datastore.eventsDb);
39
+ projectService.ensureInboxExists();
40
+ statsService = new StatsService(datastore.cacheDb, datastore.eventsDb, taskService);
41
+ });
42
+ afterEach(() => {
43
+ datastore.close();
44
+ });
45
+ function seedCompletedTask(input) {
46
+ seedCompletedTaskShared(datastore.eventsDb, projectionEngine, input);
47
+ }
48
+ it('returns the canonical empty stats shape', () => {
49
+ const stats = statsService.getStats();
50
+ expect(stats).toMatchObject({
51
+ window: '24h',
52
+ projects: ['inbox'],
53
+ queue: {
54
+ backlog: 0,
55
+ ready: 0,
56
+ in_progress: 0,
57
+ blocked: 0,
58
+ done: 0,
59
+ archived: 0,
60
+ available: 0,
61
+ stale: 0,
62
+ expired_leases: 0,
63
+ },
64
+ completions: {
65
+ total: 0,
66
+ by_agent: {},
67
+ },
68
+ execution_time_ms: {
69
+ count: 0,
70
+ mean: null,
71
+ min: null,
72
+ max: null,
73
+ excluded_without_start: 0,
74
+ },
75
+ });
76
+ expect(stats.generated_at).toBeTruthy();
77
+ });
78
+ it('reports queue depth, availability, stale tasks, and expired leases', () => {
79
+ projectService.createProject('project-a');
80
+ const backlog = taskService.createTask({ title: 'Backlog', project: 'project-a' });
81
+ const ready = taskService.createTask({ title: 'Ready', project: 'project-a' });
82
+ taskService.setStatus(ready.task_id, TaskStatus.Ready);
83
+ const dep = taskService.createTask({ title: 'Dependency', project: 'project-a' });
84
+ const blockedReady = taskService.createTask({
85
+ title: 'Blocked ready',
86
+ project: 'project-a',
87
+ depends_on: [dep.task_id],
88
+ });
89
+ taskService.setStatus(blockedReady.task_id, TaskStatus.Ready);
90
+ const stale = taskService.createTask({ title: 'Stale', project: 'project-a' });
91
+ taskService.setStatus(stale.task_id, TaskStatus.Ready);
92
+ taskService.claimTask(stale.task_id, { author: 'agent-1' });
93
+ datastore.cacheDb
94
+ .prepare('UPDATE tasks_current SET claimed_at = ? WHERE task_id = ?')
95
+ .run(new Date(Date.now() - 15 * 60_000).toISOString(), stale.task_id);
96
+ const expired = taskService.createTask({ title: 'Expired', project: 'project-a' });
97
+ taskService.setStatus(expired.task_id, TaskStatus.Ready);
98
+ taskService.claimTask(expired.task_id, {
99
+ author: 'agent-2',
100
+ lease_until: new Date(Date.now() - 60_000).toISOString(),
101
+ });
102
+ const done = taskService.createTask({ title: 'Done', project: 'project-a' });
103
+ taskService.setStatus(done.task_id, TaskStatus.Ready);
104
+ taskService.claimTask(done.task_id, { author: 'agent-3' });
105
+ taskService.completeTask(done.task_id, { author: 'agent-3' });
106
+ const archived = taskService.createTask({ title: 'Archived', project: 'project-a' });
107
+ taskService.setStatus(archived.task_id, TaskStatus.Ready);
108
+ taskService.claimTask(archived.task_id, { author: 'agent-4' });
109
+ taskService.completeTask(archived.task_id, { author: 'agent-4' });
110
+ taskService.archiveTask(archived.task_id);
111
+ const stats = statsService.getStats({ project: 'project-a' });
112
+ expect(backlog.task_id).toBeTruthy();
113
+ expect(stats.queue).toMatchObject({
114
+ backlog: 2,
115
+ ready: 2,
116
+ in_progress: 2,
117
+ done: 1,
118
+ archived: 1,
119
+ available: 1,
120
+ stale: 1,
121
+ expired_leases: 1,
122
+ });
123
+ });
124
+ it('uses current project and current agent for completion counts', () => {
125
+ projectService.createProject('project-a');
126
+ projectService.createProject('project-b');
127
+ const task = taskService.createTask({
128
+ title: 'Reassigned completion',
129
+ project: 'project-a',
130
+ agent: 'agent-a',
131
+ });
132
+ taskService.setStatus(task.task_id, TaskStatus.Ready);
133
+ taskService.claimTask(task.task_id, { author: 'agent-a' });
134
+ taskService.completeTask(task.task_id, { author: 'agent-a' });
135
+ taskService.moveTask(task.task_id, 'project-b');
136
+ taskService.reopenTask(task.task_id);
137
+ taskService.claimTask(task.task_id, { author: 'agent-b' });
138
+ taskService.completeTask(task.task_id, { author: 'agent-b' });
139
+ const projectAStats = statsService.getStats({ project: 'project-a' });
140
+ const projectBStats = statsService.getStats({ project: 'project-b' });
141
+ expect(projectAStats.completions.total).toBe(0);
142
+ expect(projectBStats.completions.total).toBe(2);
143
+ expect(projectBStats.completions.by_agent).toEqual({ 'agent-b': 2 });
144
+ });
145
+ it('computes execution-time summaries per completed cycle and excludes completions without a start', () => {
146
+ const cycled = taskService.createTask({ title: 'Cycled', project: 'inbox' });
147
+ taskService.setStatus(cycled.task_id, TaskStatus.Ready);
148
+ taskService.claimTask(cycled.task_id, { author: 'agent-1' });
149
+ taskService.completeTask(cycled.task_id, { author: 'agent-1' });
150
+ taskService.reopenTask(cycled.task_id);
151
+ taskService.claimTask(cycled.task_id, { author: 'agent-1' });
152
+ taskService.completeTask(cycled.task_id, { author: 'agent-1' });
153
+ const noStart = taskService.createTask({ title: 'No start', project: 'inbox' });
154
+ taskService.setStatus(noStart.task_id, TaskStatus.Ready);
155
+ taskService.setStatus(noStart.task_id, TaskStatus.Done);
156
+ const stats = statsService.getStats();
157
+ expect(stats.completions.total).toBe(3);
158
+ expect(stats.execution_time_ms.count).toBe(2);
159
+ expect(stats.execution_time_ms.excluded_without_start).toBe(1);
160
+ expect(stats.execution_time_ms.min).not.toBeNull();
161
+ expect(stats.execution_time_ms.max).not.toBeNull();
162
+ expect(stats.execution_time_ms.mean).not.toBeNull();
163
+ expect(stats.execution_time_ms.min).toBeLessThanOrEqual(stats.execution_time_ms.mean);
164
+ expect(stats.execution_time_ms.mean).toBeLessThanOrEqual(stats.execution_time_ms.max);
165
+ });
166
+ it('excludes completions and durations outside the requested window', () => {
167
+ seedCompletedTask({
168
+ taskId: 'old-task',
169
+ title: 'Old completion',
170
+ project: 'inbox',
171
+ agent: 'agent-1',
172
+ readyAt: '2026-03-06T07:40:00.000Z',
173
+ startedAt: '2026-03-06T07:45:00.000Z',
174
+ doneAt: '2026-03-06T08:00:00.000Z',
175
+ });
176
+ seedCompletedTask({
177
+ taskId: 'recent-task',
178
+ title: 'Recent completion',
179
+ project: 'inbox',
180
+ agent: 'agent-2',
181
+ readyAt: '2026-03-07T07:10:00.000Z',
182
+ startedAt: '2026-03-07T07:20:00.000Z',
183
+ doneAt: '2026-03-07T07:30:00.000Z',
184
+ });
185
+ const stats = statsService.getStats({
186
+ asOf: '2026-03-07T08:00:00.000Z',
187
+ windowMinutes: 60,
188
+ windowLabel: '1h',
189
+ });
190
+ expect(stats.window).toBe('1h');
191
+ expect(stats.completions.total).toBe(1);
192
+ expect(stats.completions.by_agent).toEqual({ 'agent-2': 1 });
193
+ expect(stats.execution_time_ms.count).toBe(1);
194
+ });
195
+ });
196
+ //# sourceMappingURL=stats-service.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats-service.test.js","sourceRoot":"","sources":["../../src/services/stats-service.test.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ export interface CreateTaskInput {
14
14
  priority?: number;
15
15
  due_at?: string;
16
16
  metadata?: Record<string, unknown>;
17
+ stale_after_minutes?: number;
17
18
  agent?: string;
18
19
  /** @deprecated Use `agent` */
19
20
  assignee?: string;
@@ -217,11 +218,6 @@ export interface TaskListItem {
217
218
  due_at: string | null;
218
219
  tags: string[];
219
220
  }
220
- export interface TaskStats {
221
- total: number;
222
- byStatus: Record<string, number>;
223
- projects: string[];
224
- }
225
221
  export interface Task {
226
222
  task_id: string;
227
223
  title: string;
@@ -234,6 +230,7 @@ export interface Task {
234
230
  priority: number;
235
231
  due_at: string | null;
236
232
  metadata: Record<string, unknown>;
233
+ stale_after_minutes: number | null;
237
234
  claimed_at: string | null;
238
235
  agent: string | null;
239
236
  /** @deprecated Use `agent` */
@@ -249,6 +246,7 @@ export interface TaskUpdates {
249
246
  links?: string[];
250
247
  priority?: number;
251
248
  tags?: string[];
249
+ stale_after_minutes?: number | null;
252
250
  }
253
251
  export declare class TaskNotFoundError extends Error {
254
252
  constructor(taskId: string);
@@ -458,10 +456,6 @@ export declare class TaskService {
458
456
  project?: string;
459
457
  excludeDone?: boolean;
460
458
  }): Map<string, number>;
461
- /**
462
- * Get task statistics: total count, count by status, and list of projects.
463
- */
464
- getStats(): TaskStats;
465
459
  /**
466
460
  * Get incomplete (blocking) dependencies for a task.
467
461
  */
@@ -1 +1 @@
1
- {"version":3,"file":"task-service.d.ts","sourceRoot":"","sources":["../../src/services/task-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-service.d.ts","sourceRoot":"","sources":["../../src/services/task-service.ts"],"names":[],"mappings":"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"}
@@ -84,7 +84,7 @@ export class TaskService {
84
84
  this.pruneJournalPath = this.resolvePruneJournalPath(options?.pruneJournalPath);
85
85
  this.getSubtasksStmt = db.prepare(`
86
86
  SELECT task_id, title, project, status, parent_id, description,
87
- links, tags, priority, due_at, metadata,
87
+ links, tags, priority, due_at, metadata, stale_after_minutes,
88
88
  claimed_at, agent, progress, lease_until,
89
89
  created_at, updated_at
90
90
  FROM tasks_current
@@ -93,7 +93,7 @@ export class TaskService {
93
93
  `);
94
94
  this.getTaskByIdStmt = db.prepare(`
95
95
  SELECT task_id, title, project, status, parent_id, description,
96
- links, tags, priority, due_at, metadata,
96
+ links, tags, priority, due_at, metadata, stale_after_minutes,
97
97
  claimed_at, agent, progress, lease_until,
98
98
  created_at, updated_at
99
99
  FROM tasks_current
@@ -185,6 +185,7 @@ export class TaskService {
185
185
  priority: input.priority,
186
186
  due_at: input.due_at,
187
187
  metadata: input.metadata,
188
+ stale_after_minutes: input.stale_after_minutes,
188
189
  agent: input.agent ?? input.assignee,
189
190
  };
190
191
  const cleanedEventData = Object.fromEntries(Object.entries(eventData).filter(([, value]) => value !== undefined));
@@ -1098,25 +1099,28 @@ export class TaskService {
1098
1099
  'NOT EXISTS (SELECT 1 FROM task_checkpoints c WHERE c.task_id = t.task_id)',
1099
1100
  ];
1100
1101
  const params = [];
1101
- if (thresholdMinutes > 0) {
1102
- const cutoff = new Date(now - thresholdMinutes * 60_000).toISOString();
1103
- conditions.push('t.claimed_at < ?');
1104
- params.push(cutoff);
1105
- }
1106
1102
  if (project) {
1107
1103
  conditions.push('t.project = ?');
1108
1104
  params.push(project);
1109
1105
  }
1110
1106
  const sql = `
1111
- SELECT t.task_id, t.claimed_at
1107
+ SELECT t.task_id, t.claimed_at, t.stale_after_minutes
1112
1108
  FROM tasks_current t
1113
1109
  WHERE ${conditions.join(' AND ')}
1114
1110
  `;
1115
1111
  const rows = this.db.prepare(sql).all(...params);
1116
1112
  const result = new Map();
1117
1113
  for (const row of rows) {
1114
+ if (row.stale_after_minutes === 0) {
1115
+ continue;
1116
+ }
1118
1117
  const claimedMs = new Date(row.claimed_at).getTime();
1119
- const staleMinutes = Math.round((now - claimedMs) / 60_000);
1118
+ const ageMs = Math.max(0, now - claimedMs);
1119
+ const effectiveThreshold = row.stale_after_minutes ?? thresholdMinutes;
1120
+ if (ageMs < effectiveThreshold * 60_000) {
1121
+ continue;
1122
+ }
1123
+ const staleMinutes = Math.floor(ageMs / 60_000);
1120
1124
  result.set(row.task_id, staleMinutes);
1121
1125
  }
1122
1126
  return result;
@@ -1368,31 +1372,6 @@ export class TaskService {
1368
1372
  const rows = this.db.prepare(query).all(...params);
1369
1373
  return new Map(rows.map((r) => [r.parent_id, r.count]));
1370
1374
  }
1371
- /**
1372
- * Get task statistics: total count, count by status, and list of projects.
1373
- */
1374
- getStats() {
1375
- const statusRows = this.db.prepare(`
1376
- SELECT status, COUNT(*) as count
1377
- FROM tasks_current
1378
- WHERE status != 'archived'
1379
- GROUP BY status
1380
- `).all();
1381
- const projectRows = this.db.prepare(`
1382
- SELECT name FROM projects ORDER BY name
1383
- `).all();
1384
- const byStatus = {};
1385
- let total = 0;
1386
- for (const row of statusRows) {
1387
- byStatus[row.status] = row.count;
1388
- total += row.count;
1389
- }
1390
- return {
1391
- total,
1392
- byStatus,
1393
- projects: projectRows.map((r) => r.name),
1394
- };
1395
- }
1396
1375
  /**
1397
1376
  * Get incomplete (blocking) dependencies for a task.
1398
1377
  */
@@ -1553,6 +1532,9 @@ export class TaskService {
1553
1532
  if (updates.links !== undefined && !arraysEqual(updates.links, task.links)) {
1554
1533
  emitFieldUpdate('links', task.links, updates.links);
1555
1534
  }
1535
+ if (updates.stale_after_minutes !== undefined && updates.stale_after_minutes !== task.stale_after_minutes) {
1536
+ emitFieldUpdate('stale_after_minutes', task.stale_after_minutes, updates.stale_after_minutes);
1537
+ }
1556
1538
  return this.getTaskById(taskId);
1557
1539
  });
1558
1540
  }
@@ -1999,6 +1981,7 @@ export class TaskService {
1999
1981
  priority: row.priority,
2000
1982
  due_at: row.due_at,
2001
1983
  metadata: JSON.parse(row.metadata),
1984
+ stale_after_minutes: row.stale_after_minutes,
2002
1985
  claimed_at: row.claimed_at,
2003
1986
  agent: row.agent,
2004
1987
  assignee: row.agent,