hzl-cli 2.10.0 → 3.1.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 (71) hide show
  1. package/README.md +11 -0
  2. package/dist/__tests__/integration/cli-integration.test.js +33 -13
  3. package/dist/__tests__/integration/cli-integration.test.js.map +1 -1
  4. package/dist/commands/events.d.ts +20 -0
  5. package/dist/commands/events.d.ts.map +1 -0
  6. package/dist/commands/events.js +155 -0
  7. package/dist/commands/events.js.map +1 -0
  8. package/dist/commands/events.test.d.ts +2 -0
  9. package/dist/commands/events.test.d.ts.map +1 -0
  10. package/dist/commands/events.test.js +146 -0
  11. package/dist/commands/events.test.js.map +1 -0
  12. package/dist/commands/serve.d.ts.map +1 -1
  13. package/dist/commands/serve.js +23 -4
  14. package/dist/commands/serve.js.map +1 -1
  15. package/dist/commands/stats.d.ts +4 -6
  16. package/dist/commands/stats.d.ts.map +1 -1
  17. package/dist/commands/stats.js +27 -52
  18. package/dist/commands/stats.js.map +1 -1
  19. package/dist/commands/stats.test.js +63 -22
  20. package/dist/commands/stats.test.js.map +1 -1
  21. package/dist/commands/task/add.d.ts +1 -0
  22. package/dist/commands/task/add.d.ts.map +1 -1
  23. package/dist/commands/task/add.js +7 -2
  24. package/dist/commands/task/add.js.map +1 -1
  25. package/dist/commands/task/add.test.js +11 -0
  26. package/dist/commands/task/add.test.js.map +1 -1
  27. package/dist/commands/task/list.test.js +19 -0
  28. package/dist/commands/task/list.test.js.map +1 -1
  29. package/dist/commands/task/show.d.ts +1 -1
  30. package/dist/commands/task/show.d.ts.map +1 -1
  31. package/dist/commands/task/show.test.js +13 -0
  32. package/dist/commands/task/show.test.js.map +1 -1
  33. package/dist/commands/task/stuck.d.ts +1 -0
  34. package/dist/commands/task/stuck.d.ts.map +1 -1
  35. package/dist/commands/task/stuck.js +4 -2
  36. package/dist/commands/task/stuck.js.map +1 -1
  37. package/dist/commands/task/stuck.test.js +20 -0
  38. package/dist/commands/task/stuck.test.js.map +1 -1
  39. package/dist/commands/task/update.d.ts.map +1 -1
  40. package/dist/commands/task/update.js +12 -1
  41. package/dist/commands/task/update.js.map +1 -1
  42. package/dist/commands/task/update.test.js +42 -0
  43. package/dist/commands/task/update.test.js.map +1 -1
  44. package/dist/config.d.ts.map +1 -1
  45. package/dist/config.js +5 -3
  46. package/dist/config.js.map +1 -1
  47. package/dist/db.d.ts +2 -0
  48. package/dist/db.d.ts.map +1 -1
  49. package/dist/db.js +4 -1
  50. package/dist/db.js.map +1 -1
  51. package/dist/db.test.js +6 -5
  52. package/dist/db.test.js.map +1 -1
  53. package/dist/index.js +3 -3
  54. package/dist/index.js.map +1 -1
  55. package/dist/parse.d.ts +2 -0
  56. package/dist/parse.d.ts.map +1 -1
  57. package/dist/parse.js +16 -0
  58. package/dist/parse.js.map +1 -1
  59. package/dist/parse.test.js +23 -1
  60. package/dist/parse.test.js.map +1 -1
  61. package/dist/types.d.ts +4 -0
  62. package/dist/types.d.ts.map +1 -1
  63. package/package.json +4 -4
  64. package/dist/commands/export-events.d.ts +0 -14
  65. package/dist/commands/export-events.d.ts.map +0 -1
  66. package/dist/commands/export-events.js +0 -66
  67. package/dist/commands/export-events.js.map +0 -1
  68. package/dist/commands/export-events.test.d.ts +0 -2
  69. package/dist/commands/export-events.test.d.ts.map +0 -1
  70. package/dist/commands/export-events.test.js +0 -36
  71. package/dist/commands/export-events.test.js.map +0 -1
package/README.md CHANGED
@@ -24,6 +24,17 @@ Full docs at **[hzl-tasks.com](https://www.hzl-tasks.com)**
24
24
  - [Architecture](https://www.hzl-tasks.com/reference/architecture/)
25
25
  - [Troubleshooting](https://www.hzl-tasks.com/troubleshooting/)
26
26
 
27
+ ## Orchestrator Primitives
28
+
29
+ HZL stays on the ledger side of the boundary. OpenClaw or another orchestrator should subscribe, poll, and decide what to do:
30
+
31
+ ```bash
32
+ hzl events --follow # raw NDJSON lifecycle feed
33
+ hzl stats --window 1h # raw operational counters
34
+ hzl task stuck --json --stale # recovery polling surface
35
+ hzl hook drain # deliver durable on_done hooks
36
+ ```
37
+
27
38
  ## Links
28
39
 
29
40
  - [Contributing](./CONTRIBUTING.md)
@@ -5,7 +5,7 @@ import { execSync } from 'child_process';
5
5
  import { fileURLToPath } from 'url';
6
6
  import Database from 'libsql';
7
7
  import { initializeDbFromPath, closeDb } from '../../db.js';
8
- import { createTestContext, hzlJson, hzlMayFail, } from './helpers.js';
8
+ import { createTestContext, hzlExec, hzlJson, hzlMayFail, } from './helpers.js';
9
9
  const __filename = fileURLToPath(import.meta.url);
10
10
  const __dirname = path.dirname(__filename);
11
11
  const packageRoot = path.resolve(__dirname, '../../..');
@@ -229,7 +229,7 @@ describe('CLI Integration Tests', { timeout: 30000 }, () => {
229
229
  });
230
230
  });
231
231
  describe('stats command', () => {
232
- it('returns task counts by status', () => {
232
+ it('returns the canonical stats payload', () => {
233
233
  const t1 = addTask('inbox', 'Backlog task');
234
234
  const t2 = addTask('inbox', 'Ready task');
235
235
  const t3 = addTask('inbox', 'In progress task');
@@ -241,10 +241,13 @@ describe('CLI Integration Tests', { timeout: 30000 }, () => {
241
241
  hzlJson(ctx, `task claim ${t4.task_id} --agent agent-1`);
242
242
  hzlJson(ctx, `task complete ${t4.task_id} --author agent-1`);
243
243
  const stats = hzlJson(ctx, 'stats --project inbox');
244
- expect(stats.by_status.backlog).toBe(1);
245
- expect(stats.by_status.ready).toBe(1);
246
- expect(stats.by_status.in_progress).toBe(1);
247
- expect(stats.by_status.done).toBe(1);
244
+ expect(stats.window).toBe('24h');
245
+ expect(stats.queue.backlog).toBe(1);
246
+ expect(stats.queue.ready).toBe(1);
247
+ expect(stats.queue.in_progress).toBe(1);
248
+ expect(stats.queue.done).toBe(1);
249
+ expect(stats.queue.available).toBe(1);
250
+ expect(stats.completions.total).toBe(1);
248
251
  });
249
252
  });
250
253
  describe('validate command', () => {
@@ -256,15 +259,15 @@ describe('CLI Integration Tests', { timeout: 30000 }, () => {
256
259
  expect(result.issues).toHaveLength(0);
257
260
  });
258
261
  });
259
- describe('export-events command', () => {
260
- it('exports events to JSONL file', () => {
262
+ describe('events command', () => {
263
+ it('prints NDJSON events to stdout', () => {
261
264
  addTask('inbox', 'Task 1');
262
265
  addTask('inbox', 'Task 2');
263
- const exportPath = path.join(ctx.tempDir, 'events.jsonl');
264
- hzlJson(ctx, `export-events ${exportPath}`);
265
- expect(fs.existsSync(exportPath)).toBe(true);
266
- const content = fs.readFileSync(exportPath, 'utf-8');
267
- const lines = content.trim().split('\n').filter((line) => line.length > 0);
266
+ const output = execSync(`node "${cliBinaryPath}" --db "${ctx.dbPath}" events`, {
267
+ encoding: 'utf-8',
268
+ env: { ...process.env, HZL_CONFIG: ctx.configPath },
269
+ }).trim();
270
+ const lines = output.split('\n').filter((line) => line.length > 0);
268
271
  // 1 project_created (inbox) + 2 task_created events
269
272
  expect(lines).toHaveLength(3);
270
273
  const events = lines.map((line) => JSON.parse(line));
@@ -275,6 +278,23 @@ describe('CLI Integration Tests', { timeout: 30000 }, () => {
275
278
  expect(event.event_id).toBeDefined();
276
279
  }
277
280
  });
281
+ it('supports from and limit options', () => {
282
+ addTask('inbox', 'Task 1');
283
+ addTask('inbox', 'Task 2');
284
+ addTask('inbox', 'Task 3');
285
+ const output = execSync(`node "${cliBinaryPath}" --db "${ctx.dbPath}" events --from 1 --limit 2`, {
286
+ encoding: 'utf-8',
287
+ env: { ...process.env, HZL_CONFIG: ctx.configPath },
288
+ }).trim();
289
+ const events = output.split('\n').map((line) => JSON.parse(line));
290
+ expect(events.map((event) => event.rowid)).toEqual([2, 3]);
291
+ });
292
+ it('returns a normal CLI error for unsupported formats', () => {
293
+ const result = hzlExec(ctx, '--format md events');
294
+ expect(result.success).toBe(false);
295
+ expect(result.stderr).toContain('hzl events only supports JSON output');
296
+ expect(result.stderr).not.toContain('Fatal error');
297
+ });
278
298
  });
279
299
  describe('release and reopen commands', () => {
280
300
  it('releases a claimed task back to ready', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"cli-integration.test.js","sourceRoot":"","sources":["../../../src/__tests__/integration/cli-integration.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAChF,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,QAAQ,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EACL,iBAAiB,EACjB,OAAO,EACP,UAAU,GAEX,MAAM,cAAc,CAAC;AAEtB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AACxD,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AAE/D,SAAS,CAAC,GAAG,EAAE;IACb,QAAQ,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;AACpE,CAAC,EAAE,OAAO,CAAC,CAAC;AAEZ,QAAQ,CAAC,uBAAuB,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,EAAE;IACzD,IAAI,GAAgB,CAAC;IAErB,UAAU,CAAC,GAAG,EAAE;QACd,GAAG,GAAG,iBAAiB,EAAE,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,GAAG,CAAC,OAAO,EAAE,CAAC;IAChB,CAAC,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,CAAC,OAAe,EAAE,KAAa,EAAE,SAAS,GAAG,EAAE,EAAE,EAAE;QACjE,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;YACxB,UAAU,CAAC,GAAG,EAAE,kBAAkB,OAAO,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,MAAM,IAAI,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9C,OAAO,OAAO,CACZ,GAAG,EACH,aAAa,KAAK,QAAQ,OAAO,GAAG,IAAI,EAAE,CAC3C,CAAC;IACJ,CAAC,CAAC;IAEF,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;YAC/B,MAAM,MAAM,GAAG,OAAO,CAA6C,GAAG,EAAE,MAAM,CAAC,CAAC;YAChF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,eAAe,EAAE,GAAG,EAAE;YACvB,MAAM,KAAK,GAAG,OAAO,CAA6C,GAAG,EAAE,MAAM,CAAC,CAAC;YAC/E,MAAM,MAAM,GAAG,OAAO,CAA6C,GAAG,EAAE,MAAM,CAAC,CAAC;YAChF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0BAA0B,EAAE,GAAG,EAAE;YAClC,MAAM,MAAM,GAAG,OAAO,CAA6C,GAAG,EAAE,MAAM,CAAC,CAAC;YAChF,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;YACxC,MAAM,MAAM,GAAG,OAAO,CAAgD,GAAG,EAAE,UAAU,CAAC,CAAC;YACvF,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACjD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACzC,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;YAChE,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,oCAAoC,CAAC,CAAC;YACpF,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAE/B,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EACH,2BAA2B,CAC5B,CAAC;YACF,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEnD,OAAO,CAAC,GAAG,EAAE,mBAAmB,MAAM,QAAQ,CAAC,CAAC;YAChD,MAAM,UAAU,GAAG,OAAO,CAA+B,GAAG,EAAE,aAAa,MAAM,EAAE,CAAC,CAAC;YACrF,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE7C,OAAO,CAAC,GAAG,EAAE,cAAc,MAAM,6BAA6B,CAAC,CAAC;YAChE,MAAM,UAAU,GAAG,OAAO,CACxB,GAAG,EACH,aAAa,MAAM,EAAE,CACtB,CAAC;YACF,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACnD,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAE9C,OAAO,CAAC,GAAG,EAAE,iBAAiB,MAAM,mBAAmB,CAAC,CAAC;YACzD,MAAM,aAAa,GAAG,OAAO,CAA+B,GAAG,EAAE,aAAa,MAAM,EAAE,CAAC,CAAC;YACxF,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE/C,OAAO,CAAC,GAAG,EAAE,gBAAgB,MAAM,kCAAkC,CAAC,CAAC;YACvE,MAAM,YAAY,GAAG,OAAO,CAA+B,GAAG,EAAE,aAAa,MAAM,EAAE,CAAC,CAAC;YACvF,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC;YAC/D,OAAO,CAAC,OAAO,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC;YAEpD,MAAM,KAAK,GAAG,OAAO,CACnB,GAAG,EACH,2BAA2B,CAC5B,CAAC;YACF,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;gBAC/B,OAAO,CAAC,GAAG,EAAE,mBAAmB,IAAI,CAAC,OAAO,QAAQ,CAAC,CAAC;YACxD,CAAC;YAED,MAAM,IAAI,GAAG,OAAO,CAAsB,GAAG,EAAE,mCAAmC,CAAC,CAAC;YACpF,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;YAChD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,gBAAgB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;YAE1E,OAAO,CAAC,GAAG,EAAE,mBAAmB,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC;YACrD,OAAO,CAAC,GAAG,EAAE,mBAAmB,IAAI,CAAC,OAAO,QAAQ,CAAC,CAAC;YAEtD,MAAM,KAAK,GAAG,OAAO,CAAsB,GAAG,EAAE,mCAAmC,CAAC,CAAC;YACrF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAExC,OAAO,CAAC,GAAG,EAAE,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC;YAE9D,MAAM,KAAK,GAAG,OAAO,CAAsB,GAAG,EAAE,mCAAmC,CAAC,CAAC;YACrF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YACjD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,EAAE,mBAAmB,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,EAAE,mBAAmB,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;YACvD,OAAO,CAAC,GAAG,EAAE,cAAc,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,EAAE,cAAc,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;YAE1D,MAAM,IAAI,GAAG,OAAO,CAClB,GAAG,EACH,yBAAyB,CAC1B,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YACrD,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,EAAE,mBAAmB,SAAS,CAAC,OAAO,QAAQ,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,EAAE,mBAAmB,QAAQ,CAAC,OAAO,QAAQ,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,EAAE,cAAc,SAAS,CAAC,OAAO,gBAAgB,CAAC,CAAC;YAC9D,OAAO,CAAC,GAAG,EAAE,cAAc,QAAQ,CAAC,OAAO,gBAAgB,CAAC,CAAC;YAE7D,MAAM,IAAI,GAAG,OAAO,CAClB,GAAG,EACH,6CAA6C,CAC9C,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACnC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAChD,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAEzC,MAAM,SAAS,GAAG,OAAO,CACvB,GAAG,EACH,gBAAgB,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CACjD,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEpD,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,EAAE;iBACZ,OAAO,CAAC,+DAA+D,CAAC;iBACxE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAgC,CAAC;YACrD,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClE,EAAE,CAAC,KAAK,EAAE,CAAC;YAEX,OAAO,CAAC,GAAG,EAAE,mBAAmB,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAElE,MAAM,OAAO,GAAG,IAAI,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC5C,MAAM,SAAS,GAAG,OAAO;iBACtB,OAAO,CAAC,+DAA+D,CAAC;iBACxE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAgC,CAAC;YACrD,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3E,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;YACrC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YACzC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAEzC,OAAO,CAAC,GAAG,EAAE,gBAAgB,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAE/D,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,gBAAgB,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YACjF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;QACjD,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAE3C,OAAO,CAAC,GAAG,EAAE,gBAAgB,IAAI,CAAC,OAAO,kCAAkC,CAAC,CAAC;YAC7E,OAAO,CAAC,GAAG,EAAE,gBAAgB,IAAI,CAAC,OAAO,mCAAmC,CAAC,CAAC;YAE9E,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EACH,aAAa,IAAI,CAAC,OAAO,EAAE,CAC5B,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACzC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAE3C,OAAO,CAAC,GAAG,EAAE,mBAAmB,IAAI,CAAC,OAAO,iCAAiC,CAAC,CAAC;YAC/E,OAAO,CAAC,GAAG,EAAE,mBAAmB,IAAI,CAAC,OAAO,iCAAiC,CAAC,CAAC;YAE/E,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EACH,aAAa,IAAI,CAAC,OAAO,EAAE,CAC5B,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;QACjC,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,OAAO,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAC;YACnD,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;YACrC,OAAO,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC;YAEtC,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EACH,4BAA4B,CAC7B,CAAC;YACF,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4BAA4B,EAAE,GAAG,EAAE;YACpC,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,8CAA8C,CAAC,CAAC;YACjF,OAAO,CAAC,OAAO,EAAE,eAAe,EAAE,yCAAyC,CAAC,CAAC;YAE7E,MAAM,OAAO,GAAG,OAAO,CAAsC,GAAG,EAAE,kBAAkB,CAAC,CAAC;YACtF,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;YACzC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC/B,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAC/B,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;YAE/B,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EACH,cAAc,CACf,CAAC;YACF,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAE1C,MAAM,QAAQ,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC;YACvE,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;YAClD,UAAU,CAAC,GAAG,EAAE,0BAA0B,CAAC,CAAC;YAE5C,OAAO,CAAC,GAAG,EAAE,aAAa,IAAI,CAAC,OAAO,YAAY,CAAC,CAAC;YAEpD,MAAM,SAAS,GAAG,OAAO,CACvB,GAAG,EACH,aAAa,IAAI,CAAC,OAAO,EAAE,CAC5B,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YACjC,OAAO,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YAEjC,OAAO,CAAC,GAAG,EAAE,wCAAwC,CAAC,CAAC;YAEvD,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EACH,cAAc,CACf,CAAC;YACF,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACnD,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;YACvC,MAAM,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;QAC1C,EAAE,CAAC,qCAAqC,EAAE,GAAG,EAAE;YAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAC3C,OAAO,CAAC,GAAG,EAAE,mBAAmB,IAAI,CAAC,OAAO,QAAQ,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,EAAE,cAAc,IAAI,CAAC,OAAO,kBAAkB,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,EAAE,gBAAgB,IAAI,CAAC,OAAO,kBAAkB,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,EAAE,iBAAiB,IAAI,CAAC,OAAO,mBAAmB,CAAC,CAAC;YAE/D,MAAM,OAAO,GAAG,OAAO,CACrB,GAAG,EACH,gBAAgB,IAAI,CAAC,OAAO,EAAE,CAC/B,CAAC;YACF,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAErD,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;YAC7C,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;YAC/C,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YAC5C,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC1C,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;YAChD,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;YAEzC,OAAO,CAAC,GAAG,EAAE,mBAAmB,EAAE,CAAC,OAAO,QAAQ,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,EAAE,mBAAmB,EAAE,CAAC,OAAO,QAAQ,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,EAAE,mBAAmB,EAAE,CAAC,OAAO,QAAQ,CAAC,CAAC;YACpD,OAAO,CAAC,GAAG,EAAE,cAAc,EAAE,CAAC,OAAO,kBAAkB,CAAC,CAAC;YACzD,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,CAAC,OAAO,mBAAmB,CAAC,CAAC;YAE7D,MAAM,KAAK,GAAG,OAAO,CAAwC,GAAG,EAAE,uBAAuB,CAAC,CAAC;YAE3F,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACxC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAE3B,MAAM,MAAM,GAAG,OAAO,CAA0C,GAAG,EAAE,UAAU,CAAC,CAAC;YACjF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC3B,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAE3B,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;YAC1D,OAAO,CAAC,GAAG,EAAE,iBAAiB,UAAU,EAAE,CAAC,CAAC;YAE5C,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC7C,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC3E,oDAAoD;YACpD,MAAM,CAAC,KAAK,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;YAE9B,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC/C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC5C,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC5C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAC;YACvC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,6BAA6B,EAAE,GAAG,EAAE;QAC3C,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;YACjD,OAAO,CAAC,GAAG,EAAE,mBAAmB,IAAI,CAAC,OAAO,QAAQ,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,EAAE,cAAc,IAAI,CAAC,OAAO,kBAAkB,CAAC,CAAC;YAE3D,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EACH,gBAAgB,IAAI,CAAC,OAAO,EAAE,CAC/B,CAAC;YACF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtC,8EAA8E;YAC9E,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qBAAqB,EAAE,GAAG,EAAE;YAC7B,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;YAChD,OAAO,CAAC,GAAG,EAAE,mBAAmB,IAAI,CAAC,OAAO,QAAQ,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,EAAE,cAAc,IAAI,CAAC,OAAO,kBAAkB,CAAC,CAAC;YAC3D,OAAO,CAAC,GAAG,EAAE,iBAAiB,IAAI,CAAC,OAAO,mBAAmB,CAAC,CAAC;YAE/D,MAAM,QAAQ,GAAG,OAAO,CAAqB,GAAG,EAAE,eAAe,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;YACjF,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;QACxC,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;YACvC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;YAC/C,OAAO,CAAC,GAAG,EAAE,mBAAmB,IAAI,CAAC,OAAO,QAAQ,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,EAAE,cAAc,IAAI,CAAC,OAAO,6BAA6B,CAAC,CAAC;YAEtE,MAAM,MAAM,GAAG,OAAO,CACpB,GAAG,EACH,cAAc,IAAI,CAAC,OAAO,0BAA0B,CACrD,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAC;YAC7D,OAAO,CAAC,GAAG,EAAE,mBAAmB,IAAI,CAAC,OAAO,QAAQ,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,EAAE,cAAc,IAAI,CAAC,OAAO,6BAA6B,CAAC,CAAC;YAEtE,MAAM,MAAM,GAAG,OAAO,CACpB,GAAG,EACH,cAAc,IAAI,CAAC,OAAO,0BAA0B,CACrD,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,mCAAmC,CAAC,CAAC;YACnE,OAAO,CAAC,GAAG,EAAE,mBAAmB,IAAI,CAAC,OAAO,QAAQ,CAAC,CAAC;YACtD,OAAO,CAAC,GAAG,EAAE,cAAc,IAAI,CAAC,OAAO,6BAA6B,CAAC,CAAC;YAEtE,MAAM,MAAM,GAAG,UAAU,CACvB,GAAG,EACH,cAAc,IAAI,CAAC,OAAO,0CAA0C,CACrE,CAAC;YACF,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,GAAG,EAAE;YAC/C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAC5C,OAAO,CAAC,GAAG,EAAE,mBAAmB,IAAI,CAAC,OAAO,QAAQ,CAAC,CAAC;YAEtD,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7D,MAAM,QAAQ,GAAG,oBAAoB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,CAAC;gBACH,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,EAAE;oBAC3C,MAAM,EAAE,eAAe;oBACvB,WAAW,EAAE,SAAS;iBACvB,CAAC,CAAC;YACL,CAAC;oBAAS,CAAC;gBACT,OAAO,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC;YAED,MAAM,WAAW,GAAG,OAAO,CACzB,GAAG,EACH,2BAA2B,CAC5B,CAAC;YACF,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"cli-integration.test.js","sourceRoot":"","sources":["../../../src/__tests__/integration/cli-integration.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { Command } from 'commander';
2
+ import { type Services } from '../db.js';
3
+ export interface EventsResult {
4
+ count: number;
5
+ lastEventId: number;
6
+ }
7
+ interface RunEventsOptions {
8
+ services: Services;
9
+ fromId?: number;
10
+ limit?: number;
11
+ follow?: boolean;
12
+ pollIntervalMs?: number;
13
+ signal?: AbortSignal;
14
+ sleep?: (ms: number, signal?: AbortSignal) => Promise<void>;
15
+ writeLine?: (line: string) => void | Promise<void>;
16
+ }
17
+ export declare function streamEvents(options: RunEventsOptions): Promise<EventsResult>;
18
+ export declare function createEventsCommand(): Command;
19
+ export {};
20
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../src/commands/events.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAyB,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAQhE,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAQD,UAAU,gBAAgB;IACxB,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD;AA0DD,wBAAsB,YAAY,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC,CA0EnF;AAED,wBAAgB,mBAAmB,IAAI,OAAO,CAuC7C"}
@@ -0,0 +1,155 @@
1
+ import { Command } from 'commander';
2
+ import { resolveDbPaths } from '../config.js';
3
+ import { initializeDb, closeDb } from '../db.js';
4
+ import { CLIError, ExitCode, handleError } from '../errors.js';
5
+ import { GlobalOptionsSchema } from '../types.js';
6
+ import { parseOptionalInteger } from '../parse.js';
7
+ const DEFAULT_POLL_INTERVAL_MS = 2_000;
8
+ const DEFAULT_READ_BATCH_SIZE = 500;
9
+ function createAbortError() {
10
+ const error = new Error('Aborted');
11
+ error.name = 'AbortError';
12
+ return error;
13
+ }
14
+ function isAbortError(error) {
15
+ return error instanceof Error && error.name === 'AbortError';
16
+ }
17
+ function isBrokenPipeError(error) {
18
+ return (typeof error === 'object' &&
19
+ error !== null &&
20
+ 'code' in error &&
21
+ error.code === 'EPIPE');
22
+ }
23
+ function defaultSleep(ms, signal) {
24
+ if (signal?.aborted) {
25
+ return Promise.reject(createAbortError());
26
+ }
27
+ return new Promise((resolve, reject) => {
28
+ const timer = setTimeout(() => {
29
+ signal?.removeEventListener('abort', onAbort);
30
+ resolve();
31
+ }, ms);
32
+ const onAbort = () => {
33
+ clearTimeout(timer);
34
+ signal?.removeEventListener('abort', onAbort);
35
+ reject(createAbortError());
36
+ };
37
+ signal?.addEventListener('abort', onAbort, { once: true });
38
+ });
39
+ }
40
+ function defaultWriteLine(line) {
41
+ return new Promise((resolve, reject) => {
42
+ try {
43
+ process.stdout.write(`${line}\n`, (error) => {
44
+ if (error) {
45
+ reject(error);
46
+ return;
47
+ }
48
+ resolve();
49
+ });
50
+ }
51
+ catch (error) {
52
+ reject(error instanceof Error ? error : new Error(String(error)));
53
+ }
54
+ });
55
+ }
56
+ export async function streamEvents(options) {
57
+ const { services, fromId, limit, follow = false, pollIntervalMs = DEFAULT_POLL_INTERVAL_MS, signal, sleep = defaultSleep, writeLine = defaultWriteLine, } = options;
58
+ let count = 0;
59
+ let lastEventId = fromId ?? (follow ? services.eventStore.getLatestEventId() : 0);
60
+ const emitBatch = async (maxEvents) => {
61
+ let remaining = maxEvents ?? Number.POSITIVE_INFINITY;
62
+ while (remaining > 0 && !signal?.aborted) {
63
+ const pageSize = Number.isFinite(remaining)
64
+ ? Math.min(remaining, DEFAULT_READ_BATCH_SIZE)
65
+ : DEFAULT_READ_BATCH_SIZE;
66
+ const events = services.eventStore.getEvents({
67
+ afterId: lastEventId,
68
+ limit: pageSize,
69
+ });
70
+ if (events.length === 0) {
71
+ return true;
72
+ }
73
+ for (const event of events) {
74
+ try {
75
+ await writeLine(JSON.stringify(event));
76
+ }
77
+ catch (error) {
78
+ if (isAbortError(error) || isBrokenPipeError(error)) {
79
+ return false;
80
+ }
81
+ throw error;
82
+ }
83
+ count += 1;
84
+ lastEventId = event.rowid;
85
+ }
86
+ remaining -= events.length;
87
+ if (events.length < pageSize) {
88
+ return true;
89
+ }
90
+ }
91
+ return !signal?.aborted;
92
+ };
93
+ const initialCompleted = await emitBatch(limit);
94
+ if (!initialCompleted) {
95
+ return { count, lastEventId };
96
+ }
97
+ if (!follow) {
98
+ return { count, lastEventId };
99
+ }
100
+ try {
101
+ while (!signal?.aborted) {
102
+ await sleep(pollIntervalMs, signal);
103
+ if (signal?.aborted)
104
+ break;
105
+ const completed = await emitBatch();
106
+ if (!completed)
107
+ break;
108
+ }
109
+ }
110
+ catch (error) {
111
+ if (!isAbortError(error))
112
+ throw error;
113
+ }
114
+ return { count, lastEventId };
115
+ }
116
+ export function createEventsCommand() {
117
+ return new Command('events')
118
+ .description('Stream raw ledger events as NDJSON')
119
+ .option('--from <id>', 'Read events after rowid')
120
+ .option('--limit <n>', 'Limit initial events emitted')
121
+ .option('--follow', 'Keep polling for new events', false)
122
+ .action(async function (opts) {
123
+ const globalOpts = GlobalOptionsSchema.parse(this.optsWithGlobals());
124
+ let services = null;
125
+ const controller = new AbortController();
126
+ const onSigint = () => controller.abort();
127
+ try {
128
+ if (globalOpts.format !== 'json') {
129
+ throw new CLIError('hzl events only supports JSON output', ExitCode.InvalidInput);
130
+ }
131
+ const { eventsDbPath, cacheDbPath } = resolveDbPaths(globalOpts.db);
132
+ services = initializeDb({ eventsDbPath, cacheDbPath });
133
+ process.on('SIGINT', onSigint);
134
+ await streamEvents({
135
+ services,
136
+ fromId: parseOptionalInteger(opts.from, 'from', { min: 0 }),
137
+ limit: parseOptionalInteger(opts.limit, 'limit', { min: 1 }),
138
+ follow: opts.follow ?? false,
139
+ signal: controller.signal,
140
+ });
141
+ }
142
+ catch (e) {
143
+ if (!isAbortError(e) && !isBrokenPipeError(e)) {
144
+ handleError(e, globalOpts.json);
145
+ }
146
+ }
147
+ finally {
148
+ process.off('SIGINT', onSigint);
149
+ if (services) {
150
+ closeDb(services);
151
+ }
152
+ }
153
+ });
154
+ }
155
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../src/commands/events.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=events.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.test.d.ts","sourceRoot":"","sources":["../../src/commands/events.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,146 @@
1
+ import { afterEach, beforeEach, describe, expect, it } from 'vitest';
2
+ import fs from 'fs';
3
+ import os from 'os';
4
+ import path from 'path';
5
+ import { initializeDbFromPath, closeDb } from '../db.js';
6
+ import { streamEvents } from './events.js';
7
+ describe('streamEvents', () => {
8
+ let tempDir;
9
+ let dbPath;
10
+ let services;
11
+ beforeEach(() => {
12
+ tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'hzl-events-test-'));
13
+ dbPath = path.join(tempDir, 'events.db');
14
+ services = initializeDbFromPath(dbPath);
15
+ });
16
+ afterEach(() => {
17
+ closeDb(services);
18
+ fs.rmSync(tempDir, { recursive: true, force: true });
19
+ });
20
+ it('emits bounded NDJSON in rowid order', async () => {
21
+ services.taskService.createTask({ title: 'Task 1', project: 'inbox' });
22
+ services.taskService.createTask({ title: 'Task 2', project: 'inbox' });
23
+ const lines = [];
24
+ const result = await streamEvents({
25
+ services,
26
+ writeLine: (line) => {
27
+ lines.push(line);
28
+ },
29
+ });
30
+ expect(result.count).toBe(3);
31
+ const events = lines.map((line) => JSON.parse(line));
32
+ expect(events.map((event) => event.rowid)).toEqual([1, 2, 3]);
33
+ expect(events[0].type).toBe('project_created');
34
+ expect(events[1].type).toBe('task_created');
35
+ expect(events[2].type).toBe('task_created');
36
+ });
37
+ it('honors fromId and limit for bounded reads', async () => {
38
+ services.taskService.createTask({ title: 'Task 1', project: 'inbox' });
39
+ services.taskService.createTask({ title: 'Task 2', project: 'inbox' });
40
+ services.taskService.createTask({ title: 'Task 3', project: 'inbox' });
41
+ const lines = [];
42
+ const result = await streamEvents({
43
+ services,
44
+ fromId: 1,
45
+ limit: 2,
46
+ writeLine: (line) => {
47
+ lines.push(line);
48
+ },
49
+ });
50
+ expect(result.count).toBe(2);
51
+ const events = lines.map((line) => JSON.parse(line));
52
+ expect(events.map((event) => event.rowid)).toEqual([2, 3]);
53
+ });
54
+ it('starts follow mode from now when fromId is omitted', async () => {
55
+ services.taskService.createTask({ title: 'Existing task', project: 'inbox' });
56
+ const lines = [];
57
+ const controller = new AbortController();
58
+ let sleepCalls = 0;
59
+ await streamEvents({
60
+ services,
61
+ follow: true,
62
+ signal: controller.signal,
63
+ writeLine: (line) => {
64
+ lines.push(line);
65
+ },
66
+ sleep: async () => {
67
+ sleepCalls += 1;
68
+ if (sleepCalls === 1) {
69
+ services.taskService.createTask({ title: 'New task', project: 'inbox' });
70
+ return;
71
+ }
72
+ controller.abort();
73
+ },
74
+ });
75
+ expect(lines).toHaveLength(1);
76
+ const event = JSON.parse(lines[0]);
77
+ expect(event.type).toBe('task_created');
78
+ expect(event.data.title).toBe('New task');
79
+ });
80
+ it('limits only the initial catch-up batch in follow mode', async () => {
81
+ services.taskService.createTask({ title: 'Task 1', project: 'inbox' });
82
+ services.taskService.createTask({ title: 'Task 2', project: 'inbox' });
83
+ services.taskService.createTask({ title: 'Task 3', project: 'inbox' });
84
+ const lines = [];
85
+ const controller = new AbortController();
86
+ let sleepCalls = 0;
87
+ await streamEvents({
88
+ services,
89
+ fromId: 0,
90
+ limit: 1,
91
+ follow: true,
92
+ signal: controller.signal,
93
+ writeLine: (line) => {
94
+ lines.push(line);
95
+ },
96
+ sleep: async () => {
97
+ sleepCalls += 1;
98
+ if (sleepCalls === 1) {
99
+ services.taskService.createTask({ title: 'Task 4', project: 'inbox' });
100
+ return;
101
+ }
102
+ controller.abort();
103
+ },
104
+ });
105
+ const events = lines.map((line) => JSON.parse(line));
106
+ expect(events.map((event) => event.rowid)).toEqual([1, 2, 3, 4, 5]);
107
+ expect(events.at(-1)?.data.title).toBe('Task 4');
108
+ });
109
+ it('stops gracefully on EPIPE from writeLine', async () => {
110
+ services.taskService.createTask({ title: 'Task 1', project: 'inbox' });
111
+ services.taskService.createTask({ title: 'Task 2', project: 'inbox' });
112
+ let writeCount = 0;
113
+ const result = await streamEvents({
114
+ services,
115
+ writeLine: () => {
116
+ writeCount += 1;
117
+ if (writeCount >= 2) {
118
+ const error = new Error('write EPIPE');
119
+ error.code = 'EPIPE';
120
+ throw error;
121
+ }
122
+ },
123
+ });
124
+ expect(writeCount).toBe(2);
125
+ expect(result.count).toBe(1);
126
+ });
127
+ it('stops gracefully on AbortError from writeLine', async () => {
128
+ services.taskService.createTask({ title: 'Task 1', project: 'inbox' });
129
+ services.taskService.createTask({ title: 'Task 2', project: 'inbox' });
130
+ let writeCount = 0;
131
+ const result = await streamEvents({
132
+ services,
133
+ writeLine: () => {
134
+ writeCount += 1;
135
+ if (writeCount >= 2) {
136
+ const error = new Error('Aborted');
137
+ error.name = 'AbortError';
138
+ throw error;
139
+ }
140
+ },
141
+ });
142
+ expect(writeCount).toBe(2);
143
+ expect(result.count).toBe(1);
144
+ });
145
+ });
146
+ //# sourceMappingURL=events.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.test.js","sourceRoot":"","sources":["../../src/commands/events.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyPpC,wBAAgB,kBAAkB,IAAI,OAAO,CA+C5C"}
1
+ {"version":3,"file":"serve.d.ts","sourceRoot":"","sources":["../../src/commands/serve.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6QpC,wBAAgB,kBAAkB,IAAI,OAAO,CAmD5C"}
@@ -4,7 +4,7 @@ import { spawn } from 'child_process';
4
4
  import fs from 'fs';
5
5
  import path from 'path';
6
6
  import os from 'os';
7
- import { resolveDbPaths, isDevMode } from '../config.js';
7
+ import { resolveDbPaths, isDevMode, readConfig, getConfigPath } from '../config.js';
8
8
  import { initializeDb, closeDb } from '../db.js';
9
9
  import { handleError } from '../errors.js';
10
10
  import { GlobalOptionsSchema } from '../types.js';
@@ -174,7 +174,19 @@ function runBackground(port, host, dbOption, allowFraming = false) {
174
174
  console.log('');
175
175
  console.log(`Run 'hzl serve --stop' to stop`);
176
176
  }
177
- async function runForeground(port, host, dbOption, allowFraming = false) {
177
+ // Resolve gateway config from CLI flags, config file, or defaults
178
+ function resolveGatewayConfig(opts) {
179
+ const config = readConfig(getConfigPath());
180
+ return {
181
+ gatewayUrl: opts.gatewayUrl ?? config.gateway?.url,
182
+ gatewayToken: opts.gatewayToken ?? config.gateway?.token,
183
+ };
184
+ }
185
+ // Get the config directory path (for device identity persistence)
186
+ function getConfigDir() {
187
+ return path.dirname(getConfigPath());
188
+ }
189
+ async function runForeground(port, host, dbOption, allowFraming = false, gatewayOpts) {
178
190
  const { eventsDbPath, cacheDbPath } = resolveDbPaths(dbOption);
179
191
  const services = initializeDb({ eventsDbPath, cacheDbPath });
180
192
  const server = createWebServer({
@@ -184,6 +196,10 @@ async function runForeground(port, host, dbOption, allowFraming = false) {
184
196
  taskService: services.taskService,
185
197
  eventStore: services.eventStore,
186
198
  searchService: services.searchService,
199
+ statsService: services.statsService,
200
+ gatewayUrl: gatewayOpts?.gatewayUrl,
201
+ gatewayToken: gatewayOpts?.gatewayToken,
202
+ configDir: getConfigDir(),
187
203
  });
188
204
  // Write PID file for --status to detect
189
205
  writePidFile(process.pid, port);
@@ -220,6 +236,8 @@ export function createServeCommand() {
220
236
  .option('--stop', 'Stop the background server')
221
237
  .option('--status', 'Check if server is running')
222
238
  .option('--print-systemd', 'Print systemd unit file')
239
+ .option('--gateway-url <url>', 'OpenClaw gateway WebSocket URL')
240
+ .option('--gateway-token <token>', 'OpenClaw gateway auth token')
223
241
  .action(async function (opts) {
224
242
  const globalOpts = GlobalOptionsSchema.parse(this.optsWithGlobals());
225
243
  const port = parseIntegerWithDefault(opts.port, 'Port', DEFAULT_PORT, { min: 1, max: 65535 });
@@ -237,10 +255,11 @@ export function createServeCommand() {
237
255
  runStop();
238
256
  return;
239
257
  }
258
+ const gatewayOpts = resolveGatewayConfig(opts);
240
259
  if (opts.background) {
241
260
  // Don't re-fork if we're already the background process
242
261
  if (process.env.HZL_SERVE_BACKGROUND === '1') {
243
- await runForeground(port, host, globalOpts.db, opts.allowFraming);
262
+ await runForeground(port, host, globalOpts.db, opts.allowFraming, gatewayOpts);
244
263
  }
245
264
  else {
246
265
  runBackground(port, host, globalOpts.db, opts.allowFraming);
@@ -248,7 +267,7 @@ export function createServeCommand() {
248
267
  return;
249
268
  }
250
269
  // Default: foreground mode
251
- await runForeground(port, host, globalOpts.db, opts.allowFraming);
270
+ await runForeground(port, host, globalOpts.db, opts.allowFraming, gatewayOpts);
252
271
  }
253
272
  catch (e) {
254
273
  handleError(e, globalOpts.json);