hzl-cli 1.34.0 → 2.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/README.md +29 -116
- package/dist/__tests__/integration/cli-integration.test.js +30 -31
- package/dist/__tests__/integration/cli-integration.test.js.map +1 -1
- package/dist/__tests__/integration/config.test.js +3 -3
- package/dist/__tests__/integration/config.test.js.map +1 -1
- package/dist/__tests__/integration/helpers.js +1 -1
- package/dist/__tests__/integration/helpers.js.map +1 -1
- package/dist/__tests__/integration/v2-migration.test.d.ts +2 -0
- package/dist/__tests__/integration/v2-migration.test.d.ts.map +1 -0
- package/dist/__tests__/integration/v2-migration.test.js +45 -0
- package/dist/__tests__/integration/v2-migration.test.js.map +1 -0
- package/dist/commands/agent/index.d.ts +3 -0
- package/dist/commands/agent/index.d.ts.map +1 -0
- package/dist/commands/agent/index.js +8 -0
- package/dist/commands/agent/index.js.map +1 -0
- package/dist/commands/agent/stats.d.ts +21 -0
- package/dist/commands/agent/stats.d.ts.map +1 -0
- package/dist/commands/agent/stats.js +96 -0
- package/dist/commands/agent/stats.js.map +1 -0
- package/dist/commands/agent/stats.test.d.ts +2 -0
- package/dist/commands/agent/stats.test.d.ts.map +1 -0
- package/dist/commands/agent/stats.test.js +56 -0
- package/dist/commands/agent/stats.test.js.map +1 -0
- package/dist/commands/guide-content.d.ts +1 -1
- package/dist/commands/guide-content.d.ts.map +1 -1
- package/dist/commands/guide-content.js +60 -58
- package/dist/commands/guide-content.js.map +1 -1
- package/dist/commands/task/add.d.ts +1 -1
- package/dist/commands/task/add.d.ts.map +1 -1
- package/dist/commands/task/add.js +4 -4
- package/dist/commands/task/add.js.map +1 -1
- package/dist/commands/task/add.test.js +16 -16
- package/dist/commands/task/add.test.js.map +1 -1
- package/dist/commands/task/block.d.ts +1 -1
- package/dist/commands/task/block.d.ts.map +1 -1
- package/dist/commands/task/block.js +2 -2
- package/dist/commands/task/block.js.map +1 -1
- package/dist/commands/task/block.test.js +3 -3
- package/dist/commands/task/block.test.js.map +1 -1
- package/dist/commands/task/claim.d.ts +67 -3
- package/dist/commands/task/claim.d.ts.map +1 -1
- package/dist/commands/task/claim.js +396 -29
- package/dist/commands/task/claim.js.map +1 -1
- package/dist/commands/task/claim.test.js +64 -5
- package/dist/commands/task/claim.test.js.map +1 -1
- package/dist/commands/task/complete.d.ts +1 -0
- package/dist/commands/task/complete.d.ts.map +1 -1
- package/dist/commands/task/complete.js +7 -2
- package/dist/commands/task/complete.js.map +1 -1
- package/dist/commands/task/complete.test.js +14 -0
- package/dist/commands/task/complete.test.js.map +1 -1
- package/dist/commands/task/index.d.ts.map +1 -1
- package/dist/commands/task/index.js +0 -2
- package/dist/commands/task/index.js.map +1 -1
- package/dist/commands/task/list.d.ts +20 -1
- package/dist/commands/task/list.d.ts.map +1 -1
- package/dist/commands/task/list.js +165 -24
- package/dist/commands/task/list.js.map +1 -1
- package/dist/commands/task/list.test.js +65 -4
- package/dist/commands/task/list.test.js.map +1 -1
- package/dist/commands/task/release.d.ts +1 -1
- package/dist/commands/task/release.d.ts.map +1 -1
- package/dist/commands/task/release.js +1 -1
- package/dist/commands/task/release.js.map +1 -1
- package/dist/commands/task/release.test.js +1 -1
- package/dist/commands/task/release.test.js.map +1 -1
- package/dist/commands/task/show.js +4 -4
- package/dist/commands/task/show.js.map +1 -1
- package/dist/commands/task/start.js +2 -2
- package/dist/commands/task/start.js.map +1 -1
- package/dist/commands/task/steal.d.ts +1 -1
- package/dist/commands/task/steal.d.ts.map +1 -1
- package/dist/commands/task/steal.js +13 -13
- package/dist/commands/task/steal.js.map +1 -1
- package/dist/commands/task/steal.test.js +8 -8
- package/dist/commands/task/steal.test.js.map +1 -1
- package/dist/commands/task/stuck.d.ts +1 -1
- package/dist/commands/task/stuck.d.ts.map +1 -1
- package/dist/commands/task/stuck.js +3 -3
- package/dist/commands/task/stuck.js.map +1 -1
- package/dist/commands/task/unblock.d.ts +1 -1
- package/dist/commands/task/unblock.d.ts.map +1 -1
- package/dist/commands/task/unblock.js +1 -1
- package/dist/commands/task/unblock.js.map +1 -1
- package/dist/commands/task/unblock.test.js +2 -2
- package/dist/commands/task/unblock.test.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +1 -0
- package/dist/config.js.map +1 -1
- package/dist/config.test.js +9 -1
- package/dist/config.test.js.map +1 -1
- package/dist/db.d.ts.map +1 -1
- package/dist/db.js +3 -1
- package/dist/db.js.map +1 -1
- package/dist/db.test.js +9 -9
- package/dist/db.test.js.map +1 -1
- package/dist/errors.d.ts +4 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +28 -3
- package/dist/errors.js.map +1 -1
- package/dist/errors.test.js +30 -2
- package/dist/errors.test.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +96 -2
- package/dist/index.js.map +1 -1
- package/dist/index.test.js +9 -0
- package/dist/index.test.js.map +1 -1
- package/dist/output.d.ts +17 -0
- package/dist/output.d.ts.map +1 -1
- package/dist/output.js +29 -4
- package/dist/output.js.map +1 -1
- package/dist/output.test.d.ts +2 -0
- package/dist/output.test.d.ts.map +1 -0
- package/dist/output.test.js +39 -0
- package/dist/output.test.js.map +1 -0
- package/dist/types.d.ts +21 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +12 -3
- package/dist/types.js.map +1 -1
- package/dist/types.test.js +9 -2
- package/dist/types.test.js.map +1 -1
- package/package.json +3 -3
- package/dist/commands/task/next.d.ts +0 -27
- package/dist/commands/task/next.d.ts.map +0 -1
- package/dist/commands/task/next.js +0 -115
- package/dist/commands/task/next.js.map +0 -1
- package/dist/commands/task/next.test.d.ts +0 -2
- package/dist/commands/task/next.test.d.ts.map +0 -1
- package/dist/commands/task/next.test.js +0 -148
- package/dist/commands/task/next.test.js.map +0 -1
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { TaskStatus } from 'hzl-core/events/types.js';
|
|
3
|
+
import { resolveDbPaths } from '../../config.js';
|
|
4
|
+
import { initializeDb, closeDb } from '../../db.js';
|
|
5
|
+
import { CLIError, ExitCode, handleError } from '../../errors.js';
|
|
6
|
+
import { GlobalOptionsSchema } from '../../types.js';
|
|
7
|
+
export function runAgentStats(options) {
|
|
8
|
+
const { services, project, status, json } = options;
|
|
9
|
+
const db = services.cacheDb;
|
|
10
|
+
let query = `
|
|
11
|
+
SELECT agent AS agent, status, COUNT(*) AS count
|
|
12
|
+
FROM tasks_current
|
|
13
|
+
WHERE agent IS NOT NULL
|
|
14
|
+
AND status != 'archived'
|
|
15
|
+
`;
|
|
16
|
+
const params = [];
|
|
17
|
+
if (project) {
|
|
18
|
+
query += ' AND project = ?';
|
|
19
|
+
params.push(project);
|
|
20
|
+
}
|
|
21
|
+
if (status) {
|
|
22
|
+
query += ' AND status = ?';
|
|
23
|
+
params.push(status);
|
|
24
|
+
}
|
|
25
|
+
query += ' GROUP BY agent, status ORDER BY agent ASC, status ASC';
|
|
26
|
+
const rows = db.prepare(query).all(...params);
|
|
27
|
+
const byAgent = new Map();
|
|
28
|
+
for (const row of rows) {
|
|
29
|
+
if (!byAgent.has(row.agent)) {
|
|
30
|
+
byAgent.set(row.agent, {
|
|
31
|
+
agent: row.agent,
|
|
32
|
+
total: 0,
|
|
33
|
+
by_status: {},
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
const entry = byAgent.get(row.agent);
|
|
37
|
+
entry.total += row.count;
|
|
38
|
+
entry.by_status[row.status] = row.count;
|
|
39
|
+
}
|
|
40
|
+
const agents = Array.from(byAgent.values());
|
|
41
|
+
const result = {
|
|
42
|
+
agents,
|
|
43
|
+
total_agents: agents.length,
|
|
44
|
+
total_tasks: agents.reduce((sum, agent) => sum + agent.total, 0),
|
|
45
|
+
};
|
|
46
|
+
if (json) {
|
|
47
|
+
console.log(JSON.stringify(result));
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
if (agents.length === 0) {
|
|
51
|
+
console.log('No assigned tasks found');
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
console.log('Agent Stats:');
|
|
55
|
+
for (const entry of agents) {
|
|
56
|
+
const statuses = Object.entries(entry.by_status)
|
|
57
|
+
.map(([key, value]) => `${key}:${value}`)
|
|
58
|
+
.join(', ');
|
|
59
|
+
console.log(` ${entry.agent} total=${entry.total} (${statuses})`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return result;
|
|
64
|
+
}
|
|
65
|
+
export function createAgentStatsCommand() {
|
|
66
|
+
return new Command('stats')
|
|
67
|
+
.description('Show counts-only workload summaries by agent')
|
|
68
|
+
.option('-P, --project <project>', 'Filter by project')
|
|
69
|
+
.option('-s, --status <status>', 'Filter by status')
|
|
70
|
+
.action(function (opts) {
|
|
71
|
+
const globalOpts = GlobalOptionsSchema.parse(this.optsWithGlobals());
|
|
72
|
+
const { eventsDbPath, cacheDbPath } = resolveDbPaths(globalOpts.db);
|
|
73
|
+
const services = initializeDb({ eventsDbPath, cacheDbPath });
|
|
74
|
+
try {
|
|
75
|
+
const parsedStatus = opts.status && Object.values(TaskStatus).includes(opts.status)
|
|
76
|
+
? opts.status
|
|
77
|
+
: undefined;
|
|
78
|
+
if (opts.status && !parsedStatus) {
|
|
79
|
+
throw new CLIError(`Invalid status: ${opts.status}`, ExitCode.InvalidInput);
|
|
80
|
+
}
|
|
81
|
+
runAgentStats({
|
|
82
|
+
services,
|
|
83
|
+
project: opts.project,
|
|
84
|
+
status: parsedStatus,
|
|
85
|
+
json: globalOpts.json ?? false,
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
handleError(error, globalOpts.json);
|
|
90
|
+
}
|
|
91
|
+
finally {
|
|
92
|
+
closeDb(services);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=stats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/commands/agent/stats.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats.test.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/stats.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { describe, it, expect, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
import os from 'os';
|
|
5
|
+
import { initializeDbFromPath, closeDb } from '../../db.js';
|
|
6
|
+
import { TaskStatus } from 'hzl-core/events/types.js';
|
|
7
|
+
import { runAgentStats } from './stats.js';
|
|
8
|
+
describe('runAgentStats', () => {
|
|
9
|
+
let tempDir;
|
|
10
|
+
let dbPath;
|
|
11
|
+
let services;
|
|
12
|
+
beforeEach(() => {
|
|
13
|
+
tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'hzl-agent-stats-test-'));
|
|
14
|
+
dbPath = path.join(tempDir, 'test.db');
|
|
15
|
+
services = initializeDbFromPath(dbPath);
|
|
16
|
+
});
|
|
17
|
+
afterEach(() => {
|
|
18
|
+
closeDb(services);
|
|
19
|
+
fs.rmSync(tempDir, { recursive: true, force: true });
|
|
20
|
+
});
|
|
21
|
+
it('returns per-agent totals and per-status counts', () => {
|
|
22
|
+
const t1 = services.taskService.createTask({ title: 'Task 1', project: 'inbox' });
|
|
23
|
+
const t2 = services.taskService.createTask({ title: 'Task 2', project: 'inbox' });
|
|
24
|
+
services.taskService.setStatus(t1.task_id, TaskStatus.Ready);
|
|
25
|
+
services.taskService.setStatus(t2.task_id, TaskStatus.Ready);
|
|
26
|
+
services.taskService.claimTask(t1.task_id, { author: 'clara' });
|
|
27
|
+
services.taskService.claimTask(t2.task_id, { author: 'clara' });
|
|
28
|
+
services.taskService.completeTask(t2.task_id, { author: 'clara' });
|
|
29
|
+
const result = runAgentStats({ services, json: false });
|
|
30
|
+
expect(result.total_agents).toBe(1);
|
|
31
|
+
expect(result.total_tasks).toBe(2);
|
|
32
|
+
expect(result.agents[0]?.agent).toBe('clara');
|
|
33
|
+
expect(result.agents[0]?.by_status.in_progress).toBe(1);
|
|
34
|
+
expect(result.agents[0]?.by_status.done).toBe(1);
|
|
35
|
+
});
|
|
36
|
+
it('supports project and status filters', () => {
|
|
37
|
+
services.projectService.createProject('alpha');
|
|
38
|
+
const t1 = services.taskService.createTask({ title: 'Task 1', project: 'alpha' });
|
|
39
|
+
const t2 = services.taskService.createTask({ title: 'Task 2', project: 'inbox' });
|
|
40
|
+
services.taskService.setStatus(t1.task_id, TaskStatus.Ready);
|
|
41
|
+
services.taskService.setStatus(t2.task_id, TaskStatus.Ready);
|
|
42
|
+
services.taskService.claimTask(t1.task_id, { author: 'agent-a' });
|
|
43
|
+
services.taskService.claimTask(t2.task_id, { author: 'agent-a' });
|
|
44
|
+
services.taskService.completeTask(t2.task_id, { author: 'agent-a' });
|
|
45
|
+
const filtered = runAgentStats({
|
|
46
|
+
services,
|
|
47
|
+
project: 'alpha',
|
|
48
|
+
status: TaskStatus.InProgress,
|
|
49
|
+
json: false,
|
|
50
|
+
});
|
|
51
|
+
expect(filtered.total_agents).toBe(1);
|
|
52
|
+
expect(filtered.total_tasks).toBe(1);
|
|
53
|
+
expect(filtered.agents[0]?.by_status.in_progress).toBe(1);
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=stats.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats.test.js","sourceRoot":"","sources":["../../../src/commands/agent/stats.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const GUIDE_CONTENT = "### HZL task ledger (
|
|
1
|
+
export declare const GUIDE_CONTENT = "### HZL task ledger (agent instructions)\n\nUse this guide to operate HZL as the shared task ledger for agents on one machine/OpenClaw instance.\n\n**Use HZL when:**\n- Work has multiple steps or may not finish this session\n- You need durable ownership, progress, or handoff state\n- One agent needs help from another agent\n- You need visibility/auditability for ongoing agent work\n\n**Skip HZL when:**\n- The work is tiny and can be completed immediately\n- A one-off answer does not need durable tracking\n\n**Rule of thumb:** If work could span sessions or involve multiple agents, use HZL.\n\n---\n\n**Primary orientation:**\n- HZL is agent-first: agents create, claim, hand off, and complete tasks.\n- Humans typically steer and observe; they can also create/update tasks when needed.\n- Projects are optional scopes. Use `inbox` when you do not need scoping.\n\n**Structure:**\n- **Project (optional)** = shared scope/domain (e.g., `research`, `writing`, `api-service`).\n- **Task** = unit of work.\n- **Subtask** = breakdown (`--parent <id>`), max depth 1.\n- **Agent** = ownership identity (`--agent`).\n\n---\n\n**Setup / scope selection:**\n```bash\nhzl project list # Check existing scopes\nhzl project create research # Optional: create scope only if useful\n```\n\n**Create work:**\n```bash\n# Unscoped/global queue (inbox)\nhzl task add \"Triage failing tests\" -s ready\n\n# Scoped queue\nhzl task add \"Summarize benchmark paper\" -P research -s ready\n\n# Delegate directly to another agent\nhzl task add \"Draft release notes\" -P writing -s ready --agent writer-1 --author main-agent\n```\n\n**Claim work:**\n```bash\n# Replace <agent-name> with this agent's identity (for example: lobster, clara, researcher-1)\n\n# Let HZL pick next eligible task\nhzl task claim --next --agent <agent-name>\nhzl task claim --next -P research --agent <agent-name>\n\n# Claim specific task by ID (after reasoning over candidates)\nhzl task claim <id> --agent <agent-name>\n```\n\n**Inspect candidate work:**\n```bash\nhzl task list --available --view summary\nhzl task list -P research --available --view summary\nhzl task list --agent-pattern 'writer*' --view summary\n```\n\n**Record progress / blockers:**\n```bash\nhzl task checkpoint <id> \"completed first pass, next: validate edge cases\"\nhzl task progress <id> 60\nhzl task block <id> --comment \"Waiting for dependency decision\"\nhzl task unblock <id>\n```\n\n**Complete / hand off:**\n```bash\nhzl task comment <id> \"handoff: implementation done, needs review\"\nhzl task complete <id>\n```\n\n---\n\n**Recovery for stuck tasks (leases):**\n```bash\nhzl task claim --next -P research --agent researcher-1 --lease 60\nhzl task stuck\nhzl task steal <id> --if-expired --agent researcher-2\n```\n\n**Troubleshooting quick hits:**\n| Error | Fix |\n|-------|-----|\n| \"not claimable (status: backlog)\" | `hzl task set-status <id> ready` |\n| \"Cannot complete: status is X\" | Claim first: `hzl task claim <id> --agent <name>` |\n\n---\n\n**DESTRUCTIVE - Never run without explicit user request:**\n- `hzl task prune` \u2014 **PERMANENTLY DELETES** old done/archived tasks. No undo.";
|
|
2
2
|
//# sourceMappingURL=guide-content.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guide-content.d.ts","sourceRoot":"","sources":["../../src/commands/guide-content.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,
|
|
1
|
+
{"version":3,"file":"guide-content.d.ts","sourceRoot":"","sources":["../../src/commands/guide-content.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,ymGAoGuD,CAAC"}
|
|
@@ -1,99 +1,101 @@
|
|
|
1
1
|
// Auto-generated from snippets/HZL-GUIDE.md
|
|
2
2
|
// Do not edit directly - edit the source snippet instead
|
|
3
|
-
export const GUIDE_CONTENT = `### HZL task ledger (
|
|
3
|
+
export const GUIDE_CONTENT = `### HZL task ledger (agent instructions)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Use this guide to operate HZL as the shared task ledger for agents on one machine/OpenClaw instance.
|
|
6
6
|
|
|
7
7
|
**Use HZL when:**
|
|
8
8
|
- Work has multiple steps or may not finish this session
|
|
9
|
-
- You
|
|
10
|
-
-
|
|
11
|
-
-
|
|
9
|
+
- You need durable ownership, progress, or handoff state
|
|
10
|
+
- One agent needs help from another agent
|
|
11
|
+
- You need visibility/auditability for ongoing agent work
|
|
12
12
|
|
|
13
13
|
**Skip HZL when:**
|
|
14
|
-
-
|
|
15
|
-
-
|
|
14
|
+
- The work is tiny and can be completed immediately
|
|
15
|
+
- A one-off answer does not need durable tracking
|
|
16
16
|
|
|
17
|
-
**Rule of thumb:** If
|
|
17
|
+
**Rule of thumb:** If work could span sessions or involve multiple agents, use HZL.
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
- **Project** = repo name. One per repo. Always \`hzl project list\` first.
|
|
21
|
-
- **Task** = feature or work item.
|
|
22
|
-
- **Subtask** = breakdown (\`--parent <id>\`). Max 1 level.
|
|
19
|
+
---
|
|
23
20
|
|
|
24
|
-
**
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
21
|
+
**Primary orientation:**
|
|
22
|
+
- HZL is agent-first: agents create, claim, hand off, and complete tasks.
|
|
23
|
+
- Humans typically steer and observe; they can also create/update tasks when needed.
|
|
24
|
+
- Projects are optional scopes. Use \`inbox\` when you do not need scoping.
|
|
25
|
+
|
|
26
|
+
**Structure:**
|
|
27
|
+
- **Project (optional)** = shared scope/domain (e.g., \`research\`, \`writing\`, \`api-service\`).
|
|
28
|
+
- **Task** = unit of work.
|
|
29
|
+
- **Subtask** = breakdown (\`--parent <id>\`), max depth 1.
|
|
30
|
+
- **Agent** = ownership identity (\`--agent\`).
|
|
33
31
|
|
|
34
32
|
---
|
|
35
33
|
|
|
36
|
-
**Setup:**
|
|
34
|
+
**Setup / scope selection:**
|
|
37
35
|
\`\`\`bash
|
|
38
|
-
hzl project list
|
|
39
|
-
hzl project create
|
|
36
|
+
hzl project list # Check existing scopes
|
|
37
|
+
hzl project create research # Optional: create scope only if useful
|
|
40
38
|
\`\`\`
|
|
41
39
|
|
|
42
|
-
**
|
|
40
|
+
**Create work:**
|
|
43
41
|
\`\`\`bash
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
hzl task add "Subtask A" --parent <id> # Subtask
|
|
47
|
-
hzl task add "Subtask B" --parent <id> --depends-on <subtask-a-id> # With dependency
|
|
48
|
-
\`\`\`
|
|
42
|
+
# Unscoped/global queue (inbox)
|
|
43
|
+
hzl task add "Triage failing tests" -s ready
|
|
49
44
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
45
|
+
# Scoped queue
|
|
46
|
+
hzl task add "Summarize benchmark paper" -P research -s ready
|
|
47
|
+
|
|
48
|
+
# Delegate directly to another agent
|
|
49
|
+
hzl task add "Draft release notes" -P writing -s ready --agent writer-1 --author main-agent
|
|
55
50
|
\`\`\`
|
|
56
|
-
If docs exist, reference them (don't duplicate—avoids drift). If no docs, include enough detail to complete the task. Description supports markdown/multiline.
|
|
57
51
|
|
|
58
|
-
**
|
|
52
|
+
**Claim work:**
|
|
59
53
|
\`\`\`bash
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
hzl task claim <
|
|
64
|
-
hzl task
|
|
65
|
-
|
|
54
|
+
# Replace <agent-name> with this agent's identity (for example: lobster, clara, researcher-1)
|
|
55
|
+
|
|
56
|
+
# Let HZL pick next eligible task
|
|
57
|
+
hzl task claim --next --agent <agent-name>
|
|
58
|
+
hzl task claim --next -P research --agent <agent-name>
|
|
59
|
+
|
|
60
|
+
# Claim specific task by ID (after reasoning over candidates)
|
|
61
|
+
hzl task claim <id> --agent <agent-name>
|
|
66
62
|
\`\`\`
|
|
67
63
|
|
|
68
|
-
**
|
|
64
|
+
**Inspect candidate work:**
|
|
69
65
|
\`\`\`bash
|
|
70
|
-
hzl task
|
|
71
|
-
hzl task
|
|
66
|
+
hzl task list --available --view summary
|
|
67
|
+
hzl task list -P research --available --view summary
|
|
68
|
+
hzl task list --agent-pattern 'writer*' --view summary
|
|
72
69
|
\`\`\`
|
|
73
|
-
Statuses: \`backlog\` → \`ready\` → \`in_progress\` → \`done\` (or \`blocked\`)
|
|
74
70
|
|
|
75
|
-
**
|
|
71
|
+
**Record progress / blockers:**
|
|
76
72
|
\`\`\`bash
|
|
77
|
-
hzl task
|
|
78
|
-
hzl task
|
|
73
|
+
hzl task checkpoint <id> "completed first pass, next: validate edge cases"
|
|
74
|
+
hzl task progress <id> 60
|
|
75
|
+
hzl task block <id> --comment "Waiting for dependency decision"
|
|
76
|
+
hzl task unblock <id>
|
|
79
77
|
\`\`\`
|
|
80
78
|
|
|
81
|
-
**
|
|
79
|
+
**Complete / hand off:**
|
|
82
80
|
\`\`\`bash
|
|
83
|
-
hzl task comment <id> "
|
|
81
|
+
hzl task comment <id> "handoff: implementation done, needs review"
|
|
84
82
|
hzl task complete <id>
|
|
83
|
+
\`\`\`
|
|
84
|
+
|
|
85
|
+
---
|
|
85
86
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
hzl task
|
|
89
|
-
hzl task
|
|
87
|
+
**Recovery for stuck tasks (leases):**
|
|
88
|
+
\`\`\`bash
|
|
89
|
+
hzl task claim --next -P research --agent researcher-1 --lease 60
|
|
90
|
+
hzl task stuck
|
|
91
|
+
hzl task steal <id> --if-expired --agent researcher-2
|
|
90
92
|
\`\`\`
|
|
91
93
|
|
|
92
|
-
**Troubleshooting:**
|
|
94
|
+
**Troubleshooting quick hits:**
|
|
93
95
|
| Error | Fix |
|
|
94
96
|
|-------|-----|
|
|
95
97
|
| "not claimable (status: backlog)" | \`hzl task set-status <id> ready\` |
|
|
96
|
-
| "Cannot complete: status is X" | Claim first: \`hzl task claim <id>\` |
|
|
98
|
+
| "Cannot complete: status is X" | Claim first: \`hzl task claim <id> --agent <name>\` |
|
|
97
99
|
|
|
98
100
|
---
|
|
99
101
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guide-content.js","sourceRoot":"","sources":["../../src/commands/guide-content.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,yDAAyD;AAEzD,MAAM,CAAC,MAAM,aAAa,GAAG
|
|
1
|
+
{"version":3,"file":"guide-content.js","sourceRoot":"","sources":["../../src/commands/guide-content.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,yDAAyD;AAEzD,MAAM,CAAC,MAAM,aAAa,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iFAoGoD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/commands/task/add.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAyB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAMnE,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,
|
|
1
|
+
{"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../../src/commands/task/add.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAyB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAMnE,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;CACf;AAgBD,wBAAgB,MAAM,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,CAmFrD;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CA4C1C"}
|
|
@@ -7,7 +7,7 @@ import { TaskStatus } from 'hzl-core/events/types.js';
|
|
|
7
7
|
import { GlobalOptionsSchema } from '../../types.js';
|
|
8
8
|
import { resolveId } from '../../resolve-id.js';
|
|
9
9
|
export function runAdd(options) {
|
|
10
|
-
const { services, title, description, links, tags, priority, dependsOn, parent, status,
|
|
10
|
+
const { services, title, description, links, tags, priority, dependsOn, parent, status, agent, author, comment, json } = options;
|
|
11
11
|
let project = options.project;
|
|
12
12
|
// Validate status flag
|
|
13
13
|
let initialStatus;
|
|
@@ -55,7 +55,7 @@ export function runAdd(options) {
|
|
|
55
55
|
priority,
|
|
56
56
|
depends_on: dependsOn,
|
|
57
57
|
parent_id: parent,
|
|
58
|
-
|
|
58
|
+
agent: agent,
|
|
59
59
|
initial_status: initialStatus,
|
|
60
60
|
comment,
|
|
61
61
|
}, {
|
|
@@ -90,7 +90,7 @@ export function createAddCommand() {
|
|
|
90
90
|
.option('--depends-on <ids>', 'Comma-separated task IDs this depends on')
|
|
91
91
|
.option('--parent <taskId>', 'Parent task ID (creates subtask, inherits project)')
|
|
92
92
|
.option('-s, --status <status>', 'Initial status (backlog, ready, in_progress, blocked, done)')
|
|
93
|
-
.option('--
|
|
93
|
+
.option('--agent <name>', 'Agent identity for task ownership')
|
|
94
94
|
.option('--author <name>', 'Who is performing this create/assignment action')
|
|
95
95
|
.option('--comment <comment>', 'Comment explaining the status (recommended for blocked)')
|
|
96
96
|
.action(function (title, opts) {
|
|
@@ -111,7 +111,7 @@ export function createAddCommand() {
|
|
|
111
111
|
dependsOn,
|
|
112
112
|
parent,
|
|
113
113
|
status: opts.status,
|
|
114
|
-
|
|
114
|
+
agent: opts.agent,
|
|
115
115
|
author: opts.author,
|
|
116
116
|
comment: opts.comment,
|
|
117
117
|
json: globalOpts.json ?? false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/task/add.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,OAAO,EAAiB,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AA2ChD,MAAM,UAAU,MAAM,CAAC,OAAmB;IACxC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"add.js","sourceRoot":"","sources":["../../../src/commands/task/add.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,34 +54,34 @@ describe('runAdd', () => {
|
|
|
54
54
|
const task = services.taskService.getTaskById(result.task_id);
|
|
55
55
|
expect(task?.links).toEqual(['docs/design.md', 'https://example.com/spec']);
|
|
56
56
|
});
|
|
57
|
-
it('creates a task with
|
|
57
|
+
it('creates a task with agent in backlog', () => {
|
|
58
58
|
const result = runAdd({
|
|
59
59
|
services,
|
|
60
60
|
project: 'inbox',
|
|
61
61
|
title: 'Backlog task',
|
|
62
|
-
|
|
62
|
+
agent: 'kenji',
|
|
63
63
|
json: false,
|
|
64
64
|
});
|
|
65
65
|
const task = services.taskService.getTaskById(result.task_id);
|
|
66
66
|
expect(task?.status).toBe('backlog');
|
|
67
|
-
expect(task?.
|
|
67
|
+
expect(task?.agent).toBe('kenji');
|
|
68
68
|
});
|
|
69
|
-
it('records author separately from
|
|
69
|
+
it('records author separately from agent on create', () => {
|
|
70
70
|
const result = runAdd({
|
|
71
71
|
services,
|
|
72
72
|
project: 'inbox',
|
|
73
73
|
title: 'Delegated task',
|
|
74
|
-
|
|
74
|
+
agent: 'kenji',
|
|
75
75
|
author: 'clara',
|
|
76
76
|
status: 'ready',
|
|
77
77
|
json: false,
|
|
78
78
|
});
|
|
79
79
|
const task = services.taskService.getTaskById(result.task_id);
|
|
80
|
-
expect(task?.
|
|
80
|
+
expect(task?.agent).toBe('kenji');
|
|
81
81
|
const events = services.eventStore.getByTaskId(result.task_id);
|
|
82
82
|
expect(events[0].type).toBe('task_created');
|
|
83
83
|
expect(events[0].author).toBe('clara');
|
|
84
|
-
expect(events[0].data.
|
|
84
|
+
expect(events[0].data.agent).toBe('kenji');
|
|
85
85
|
});
|
|
86
86
|
it('creates a task with dependencies', () => {
|
|
87
87
|
const dep = runAdd({ services, project: 'inbox', title: 'Dependency', json: false });
|
|
@@ -175,45 +175,45 @@ describe('runAdd', () => {
|
|
|
175
175
|
const task = services.taskService.getTaskById(result.task_id);
|
|
176
176
|
expect(task?.status).toBe('ready');
|
|
177
177
|
});
|
|
178
|
-
it('creates task with -s ready and keeps
|
|
178
|
+
it('creates task with -s ready and keeps agent', () => {
|
|
179
179
|
const result = runAdd({
|
|
180
180
|
services,
|
|
181
181
|
project: 'inbox',
|
|
182
182
|
title: 'Ready task',
|
|
183
183
|
status: 'ready',
|
|
184
|
-
|
|
184
|
+
agent: 'kenji',
|
|
185
185
|
json: false,
|
|
186
186
|
});
|
|
187
187
|
const task = services.taskService.getTaskById(result.task_id);
|
|
188
188
|
expect(task?.status).toBe('ready');
|
|
189
|
-
expect(task?.
|
|
189
|
+
expect(task?.agent).toBe('kenji');
|
|
190
190
|
});
|
|
191
|
-
it('creates task with -s in_progress and sets
|
|
191
|
+
it('creates task with -s in_progress and sets agent', () => {
|
|
192
192
|
const result = runAdd({
|
|
193
193
|
services,
|
|
194
194
|
project: 'inbox',
|
|
195
195
|
title: 'In progress task',
|
|
196
196
|
status: 'in_progress',
|
|
197
|
-
|
|
197
|
+
agent: 'agent-1',
|
|
198
198
|
json: false,
|
|
199
199
|
});
|
|
200
200
|
const task = services.taskService.getTaskById(result.task_id);
|
|
201
201
|
expect(task?.status).toBe('in_progress');
|
|
202
|
-
expect(task?.
|
|
202
|
+
expect(task?.agent).toBe('agent-1');
|
|
203
203
|
});
|
|
204
|
-
it('keeps
|
|
204
|
+
it('keeps agent when -s in_progress has distinct --author', () => {
|
|
205
205
|
const result = runAdd({
|
|
206
206
|
services,
|
|
207
207
|
project: 'inbox',
|
|
208
208
|
title: 'Delegated in progress task',
|
|
209
209
|
status: 'in_progress',
|
|
210
|
-
|
|
210
|
+
agent: 'kenji',
|
|
211
211
|
author: 'clara',
|
|
212
212
|
json: false,
|
|
213
213
|
});
|
|
214
214
|
const task = services.taskService.getTaskById(result.task_id);
|
|
215
215
|
expect(task?.status).toBe('in_progress');
|
|
216
|
-
expect(task?.
|
|
216
|
+
expect(task?.agent).toBe('kenji');
|
|
217
217
|
const events = services.eventStore.getByTaskId(result.task_id);
|
|
218
218
|
expect(events[0].author).toBe('clara');
|
|
219
219
|
expect(events[1].author).toBe('clara');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.test.js","sourceRoot":"","sources":["../../../src/commands/task/add.test.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAiB,MAAM,aAAa,CAAC;AAE3E,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,IAAI,OAAe,CAAC;IACpB,IAAI,MAAc,CAAC;IACnB,IAAI,QAAkB,CAAC;IAEvB,UAAU,CAAC,GAAG,EAAE;QACd,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;QAClE,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;QACvC,QAAQ,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,CAAC,QAAQ,CAAC,CAAC;QAClB,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,MAAM,GAAG,MAAM,CAAC;YACpB,QAAQ;YACR,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,WAAW;YAClB,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACvC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACpD,MAAM,MAAM,GAAG,MAAM,CAAC;YACpB,QAAQ;YACR,OAAO,EAAE,YAAY;YACrB,KAAK,EAAE,WAAW;YAClB,WAAW,EAAE,eAAe;YAC5B,IAAI,EAAE,CAAC,QAAQ,EAAE,SAAS,CAAC;YAC3B,QAAQ,EAAE,CAAC;YACX,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1C,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,MAAM,GAAG,MAAM,CAAC;YACpB,QAAQ;YACR,OAAO,EAAE,OAAO;YAChB,KAAK,EAAE,iBAAiB;YACxB,KAAK,EAAE,CAAC,gBAAgB,EAAE,0BAA0B,CAAC;YACrD,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;QAEH,MAAM,IAAI,GAAG,QAAQ,CAAC,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC9D,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,gBAAgB,EAAE,0BAA0B,CAAC,CAAC,CAAC;IAC9E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"add.test.js","sourceRoot":"","sources":["../../../src/commands/task/add.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../../src/commands/task/block.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAyB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAMnE,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,
|
|
1
|
+
{"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../../src/commands/task/block.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAyB,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAMnE,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAOD,wBAAgB,QAAQ,CAAC,OAAO,EAAE;IAChC,QAAQ,EAAE,QAAQ,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;CACf,GAAG,WAAW,CA6Bd;AAED,wBAAgB,kBAAkB,IAAI,OAAO,CAyB5C"}
|