hzl-cli 1.24.1 → 1.25.1
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 +12 -12
- package/dist/commands/guide-content.d.ts +2 -0
- package/dist/commands/guide-content.d.ts.map +1 -0
- package/dist/commands/guide-content.js +99 -0
- package/dist/commands/guide-content.js.map +1 -0
- package/dist/commands/guide.d.ts +3 -0
- package/dist/commands/guide.d.ts.map +1 -0
- package/dist/commands/guide.js +10 -0
- package/dist/commands/guide.js.map +1 -0
- package/dist/commands/guide.test.d.ts +2 -0
- package/dist/commands/guide.test.d.ts.map +1 -0
- package/dist/commands/guide.test.js +26 -0
- package/dist/commands/guide.test.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +5 -3
package/README.md
CHANGED
|
@@ -363,8 +363,8 @@ If your coding agent supports an instruction file (for example `CLAUDE.md`, `AGE
|
|
|
363
363
|
|
|
364
364
|
### Drop-in policy snippet
|
|
365
365
|
|
|
366
|
-
<!-- START [code:md]
|
|
367
|
-
<!-- ⚠️ DO NOT EDIT - Auto-generated from
|
|
366
|
+
<!-- START [code:md] snippets/HZL-GUIDE.md -->
|
|
367
|
+
<!-- ⚠️ DO NOT EDIT - Auto-generated from snippets/HZL-GUIDE.md -->
|
|
368
368
|
````md
|
|
369
369
|
### HZL task ledger (external task tracking)
|
|
370
370
|
|
|
@@ -463,12 +463,12 @@ hzl task complete <parent-id> # If all done, complete parent
|
|
|
463
463
|
**DESTRUCTIVE - Never run without explicit user request:**
|
|
464
464
|
- `hzl task prune` — **PERMANENTLY DELETES** old done/archived tasks. No undo.
|
|
465
465
|
````
|
|
466
|
-
<!-- END [code:md]
|
|
466
|
+
<!-- END [code:md] snippets/HZL-GUIDE.md -->
|
|
467
467
|
|
|
468
468
|
That snippet is intentionally concise. The goal is clear triggers and structure, not ceremony.
|
|
469
469
|
|
|
470
|
-
<!-- START
|
|
471
|
-
<!-- ⚠️ DO NOT EDIT - Auto-generated from
|
|
470
|
+
<!-- START snippets/AGENT-SKILLS-INSTALL.md -->
|
|
471
|
+
<!-- ⚠️ DO NOT EDIT - Auto-generated from snippets/AGENT-SKILLS-INSTALL.md -->
|
|
472
472
|
### Claude Code skill (optional)
|
|
473
473
|
|
|
474
474
|
HZL includes a Claude Code skill that helps agents work effectively with HZL.
|
|
@@ -507,7 +507,7 @@ Codex will download the skill and ask whether to add HZL guidance user-wide or p
|
|
|
507
507
|
**Option B: Manual install**
|
|
508
508
|
|
|
509
509
|
Follow the steps in [`.codex/INSTALL.md`](https://github.com/tmchow/hzl/blob/main/.codex/INSTALL.md) yourself.
|
|
510
|
-
<!-- END
|
|
510
|
+
<!-- END snippets/AGENT-SKILLS-INSTALL.md -->
|
|
511
511
|
|
|
512
512
|
---
|
|
513
513
|
|
|
@@ -520,12 +520,12 @@ HZL fits well as the task ledger that OpenClaw (and its sub-agents) can share.
|
|
|
520
520
|
|
|
521
521
|
Copy/paste this into an OpenClaw chat (single prompt):
|
|
522
522
|
|
|
523
|
-
<!-- START [code:txt]
|
|
524
|
-
<!-- ⚠️ DO NOT EDIT - Auto-generated from
|
|
523
|
+
<!-- START [code:txt] snippets/OPENCLAW-SETUP-PROMPT.md -->
|
|
524
|
+
<!-- ⚠️ DO NOT EDIT - Auto-generated from snippets/OPENCLAW-SETUP-PROMPT.md -->
|
|
525
525
|
````txt
|
|
526
526
|
Install HZL from https://github.com/tmchow/hzl and run hzl init. Install the HZL skill from https://www.clawhub.ai/tmchow/hzl. Then append the HZL policy from https://raw.githubusercontent.com/tmchow/hzl/main/docs/openclaw/tools-prompt.md to my TOOLS.md.
|
|
527
527
|
````
|
|
528
|
-
<!-- END [code:txt]
|
|
528
|
+
<!-- END [code:txt] snippets/OPENCLAW-SETUP-PROMPT.md -->
|
|
529
529
|
|
|
530
530
|
### Manual setup
|
|
531
531
|
|
|
@@ -552,8 +552,8 @@ https://raw.githubusercontent.com/tmchow/hzl/main/docs/openclaw/tools-prompt.md
|
|
|
552
552
|
|
|
553
553
|
To keep both the HZL CLI and your OpenClaw skill up to date, copy/paste this prompt into an OpenClaw chat. It creates a script you can reuse:
|
|
554
554
|
|
|
555
|
-
<!-- START [code:txt]
|
|
556
|
-
<!-- ⚠️ DO NOT EDIT - Auto-generated from
|
|
555
|
+
<!-- START [code:txt] snippets/UPGRADE-HZL-PROMPT.md -->
|
|
556
|
+
<!-- ⚠️ DO NOT EDIT - Auto-generated from snippets/UPGRADE-HZL-PROMPT.md -->
|
|
557
557
|
````txt
|
|
558
558
|
Create a script at scripts/upgrade-hzl.sh (in your workspace) that upgrades both the hzl-cli npm package and the hzl skill from ClawHub. The script should:
|
|
559
559
|
|
|
@@ -563,7 +563,7 @@ Create a script at scripts/upgrade-hzl.sh (in your workspace) that upgrades both
|
|
|
563
563
|
|
|
564
564
|
Make it executable. In the future when I say "upgrade hzl", run this script.
|
|
565
565
|
````
|
|
566
|
-
<!-- END [code:txt]
|
|
566
|
+
<!-- END [code:txt] snippets/UPGRADE-HZL-PROMPT.md -->
|
|
567
567
|
|
|
568
568
|
After running this once, just say "upgrade hzl" to OpenClaw to run the script. Consider adding a cron job to have OpenClaw run the upgrade automatically on a schedule.
|
|
569
569
|
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export declare const GUIDE_CONTENT = "### HZL task ledger (external task tracking)\n\nHZL is an external task database. Use it when external tracking helps clarity, handoff, or auditability.\n\n**Use HZL when:**\n- Work has multiple steps or may not finish this session\n- You want durable record of progress or ownership\n- Handoff or review expected\n- Task is non-trivial (~30+ min or risky changes)\n\n**Skip HZL when:**\n- Small, clearly scoped work completed immediately\n- Quick one-off answer or tiny change\n\n**Rule of thumb:** If you're tempted to make a multi-step plan, use HZL.\n\n**Structure:**\n- **Project** = repo name. One per repo. Always `hzl project list` first.\n- **Task** = feature or work item.\n- **Subtask** = breakdown (`--parent <id>`). Max 1 level.\n\n**Anti-pattern: project sprawl**\n```bash\nhzl project create \"query-perf\" # Wrong: feature is not a project\n```\nFeatures are parent tasks:\n```bash\nhzl task add \"Query perf\" -P myrepo # Parent task\nhzl task add \"Fix N+1\" --parent <parent-id> # Subtask\n```\n\n---\n\n**Setup:**\n```bash\nhzl project list # Always check first\nhzl project create <repo-name> # Only if needed\n```\n\n**Adding work:**\n```bash\nhzl task add \"Feature X\" -P myrepo -s ready # Ready to claim\nhzl task add \"Subtask A\" --parent <id> # Subtask\nhzl task add \"Subtask B\" --parent <id> --depends-on <subtask-a-id> # With dependency\n```\n\n**Task context:** Use `-d` for details, `-l` for reference docs:\n```bash\nhzl task add \"Add rate limiting\" -P myrepo -s ready \\\n -d \"Per linked spec. Use RateLimiter from src/middleware/.\" \\\n -l docs/rate-limit-spec.md\n```\nIf docs exist, reference them (don't duplicate\u2014avoids drift). If no docs, include enough detail to complete the task. Description supports markdown/multiline.\n\n**Working on a task:**\n```bash\nhzl task next -P myrepo # Next available task\nhzl task next --parent <id> # Next subtask of parent\nhzl task next -P myrepo --claim # Find and claim in one step\nhzl task claim <id> # Claim specific task\nhzl task checkpoint <id> \"milestone X\" # Notable progress or before pausing\n```\n\n**Changing status:**\n```bash\nhzl task set-status <id> ready # Make claimable (from backlog)\nhzl task set-status <id> backlog # Move back to planning\n```\nStatuses: `backlog` \u2192 `ready` \u2192 `in_progress` \u2192 `done` (or `blocked`)\n\n**When blocked:**\n```bash\nhzl task block <id> --comment \"Waiting for API keys from DevOps\"\nhzl task unblock <id> # When resolved\n```\n\n**Finishing work:**\n```bash\nhzl task comment <id> \"Implemented X, tested Y\" # Optional: final notes\nhzl task complete <id>\n\n# After completing a subtask, check parent:\nhzl task show <parent-id> --json # Any subtasks left?\nhzl task complete <parent-id> # If all done, complete parent\n```\n\n**Troubleshooting:**\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>` |\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
|
+
//# sourceMappingURL=guide-content.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guide-content.d.ts","sourceRoot":"","sources":["../../src/commands/guide-content.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,2wGA+FuD,CAAC"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
// Auto-generated from snippets/HZL-GUIDE.md
|
|
2
|
+
// Do not edit directly - edit the source snippet instead
|
|
3
|
+
export const GUIDE_CONTENT = `### HZL task ledger (external task tracking)
|
|
4
|
+
|
|
5
|
+
HZL is an external task database. Use it when external tracking helps clarity, handoff, or auditability.
|
|
6
|
+
|
|
7
|
+
**Use HZL when:**
|
|
8
|
+
- Work has multiple steps or may not finish this session
|
|
9
|
+
- You want durable record of progress or ownership
|
|
10
|
+
- Handoff or review expected
|
|
11
|
+
- Task is non-trivial (~30+ min or risky changes)
|
|
12
|
+
|
|
13
|
+
**Skip HZL when:**
|
|
14
|
+
- Small, clearly scoped work completed immediately
|
|
15
|
+
- Quick one-off answer or tiny change
|
|
16
|
+
|
|
17
|
+
**Rule of thumb:** If you're tempted to make a multi-step plan, use HZL.
|
|
18
|
+
|
|
19
|
+
**Structure:**
|
|
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.
|
|
23
|
+
|
|
24
|
+
**Anti-pattern: project sprawl**
|
|
25
|
+
\`\`\`bash
|
|
26
|
+
hzl project create "query-perf" # Wrong: feature is not a project
|
|
27
|
+
\`\`\`
|
|
28
|
+
Features are parent tasks:
|
|
29
|
+
\`\`\`bash
|
|
30
|
+
hzl task add "Query perf" -P myrepo # Parent task
|
|
31
|
+
hzl task add "Fix N+1" --parent <parent-id> # Subtask
|
|
32
|
+
\`\`\`
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
**Setup:**
|
|
37
|
+
\`\`\`bash
|
|
38
|
+
hzl project list # Always check first
|
|
39
|
+
hzl project create <repo-name> # Only if needed
|
|
40
|
+
\`\`\`
|
|
41
|
+
|
|
42
|
+
**Adding work:**
|
|
43
|
+
\`\`\`bash
|
|
44
|
+
hzl task add "Feature X" -P myrepo -s ready # Ready to claim
|
|
45
|
+
hzl task add "Subtask A" --parent <id> # Subtask
|
|
46
|
+
hzl task add "Subtask B" --parent <id> --depends-on <subtask-a-id> # With dependency
|
|
47
|
+
\`\`\`
|
|
48
|
+
|
|
49
|
+
**Task context:** Use \`-d\` for details, \`-l\` for reference docs:
|
|
50
|
+
\`\`\`bash
|
|
51
|
+
hzl task add "Add rate limiting" -P myrepo -s ready \\
|
|
52
|
+
-d "Per linked spec. Use RateLimiter from src/middleware/." \\
|
|
53
|
+
-l docs/rate-limit-spec.md
|
|
54
|
+
\`\`\`
|
|
55
|
+
If docs exist, reference them (don't duplicate—avoids drift). If no docs, include enough detail to complete the task. Description supports markdown/multiline.
|
|
56
|
+
|
|
57
|
+
**Working on a task:**
|
|
58
|
+
\`\`\`bash
|
|
59
|
+
hzl task next -P myrepo # Next available task
|
|
60
|
+
hzl task next --parent <id> # Next subtask of parent
|
|
61
|
+
hzl task next -P myrepo --claim # Find and claim in one step
|
|
62
|
+
hzl task claim <id> # Claim specific task
|
|
63
|
+
hzl task checkpoint <id> "milestone X" # Notable progress or before pausing
|
|
64
|
+
\`\`\`
|
|
65
|
+
|
|
66
|
+
**Changing status:**
|
|
67
|
+
\`\`\`bash
|
|
68
|
+
hzl task set-status <id> ready # Make claimable (from backlog)
|
|
69
|
+
hzl task set-status <id> backlog # Move back to planning
|
|
70
|
+
\`\`\`
|
|
71
|
+
Statuses: \`backlog\` → \`ready\` → \`in_progress\` → \`done\` (or \`blocked\`)
|
|
72
|
+
|
|
73
|
+
**When blocked:**
|
|
74
|
+
\`\`\`bash
|
|
75
|
+
hzl task block <id> --comment "Waiting for API keys from DevOps"
|
|
76
|
+
hzl task unblock <id> # When resolved
|
|
77
|
+
\`\`\`
|
|
78
|
+
|
|
79
|
+
**Finishing work:**
|
|
80
|
+
\`\`\`bash
|
|
81
|
+
hzl task comment <id> "Implemented X, tested Y" # Optional: final notes
|
|
82
|
+
hzl task complete <id>
|
|
83
|
+
|
|
84
|
+
# After completing a subtask, check parent:
|
|
85
|
+
hzl task show <parent-id> --json # Any subtasks left?
|
|
86
|
+
hzl task complete <parent-id> # If all done, complete parent
|
|
87
|
+
\`\`\`
|
|
88
|
+
|
|
89
|
+
**Troubleshooting:**
|
|
90
|
+
| Error | Fix |
|
|
91
|
+
|-------|-----|
|
|
92
|
+
| "not claimable (status: backlog)" | \`hzl task set-status <id> ready\` |
|
|
93
|
+
| "Cannot complete: status is X" | Claim first: \`hzl task claim <id>\` |
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
**DESTRUCTIVE - Never run without explicit user request:**
|
|
98
|
+
- \`hzl task prune\` — **PERMANENTLY DELETES** old done/archived tasks. No undo.`;
|
|
99
|
+
//# sourceMappingURL=guide-content.js.map
|
|
@@ -0,0 +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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iFA+FoD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guide.d.ts","sourceRoot":"","sources":["../../src/commands/guide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,kBAAkB,IAAI,OAAO,CAM5C"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { GUIDE_CONTENT } from './guide-content.js';
|
|
3
|
+
export function createGuideCommand() {
|
|
4
|
+
return new Command('guide')
|
|
5
|
+
.description('Output HZL workflow documentation for AI agents')
|
|
6
|
+
.action(() => {
|
|
7
|
+
console.log(GUIDE_CONTENT);
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=guide.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guide.js","sourceRoot":"","sources":["../../src/commands/guide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;SACxB,WAAW,CAAC,iDAAiD,CAAC;SAC9D,MAAM,CAAC,GAAG,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guide.test.d.ts","sourceRoot":"","sources":["../../src/commands/guide.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
2
|
+
import { createGuideCommand } from './guide.js';
|
|
3
|
+
import { GUIDE_CONTENT } from './guide-content.js';
|
|
4
|
+
describe('guide command', () => {
|
|
5
|
+
let consoleSpy;
|
|
6
|
+
beforeEach(() => {
|
|
7
|
+
consoleSpy = vi.spyOn(console, 'log').mockImplementation(() => { });
|
|
8
|
+
});
|
|
9
|
+
afterEach(() => {
|
|
10
|
+
consoleSpy.mockRestore();
|
|
11
|
+
});
|
|
12
|
+
it('should output the guide content', async () => {
|
|
13
|
+
const command = createGuideCommand();
|
|
14
|
+
await command.parseAsync([], { from: 'user' });
|
|
15
|
+
expect(consoleSpy).toHaveBeenCalledWith(GUIDE_CONTENT);
|
|
16
|
+
});
|
|
17
|
+
it('should have guide content from HZL-GUIDE.md', () => {
|
|
18
|
+
// Verify the content includes expected sections
|
|
19
|
+
expect(GUIDE_CONTENT).toContain('HZL task ledger');
|
|
20
|
+
expect(GUIDE_CONTENT).toContain('Use HZL when:');
|
|
21
|
+
expect(GUIDE_CONTENT).toContain('Skip HZL when:');
|
|
22
|
+
expect(GUIDE_CONTENT).toContain('hzl project list');
|
|
23
|
+
expect(GUIDE_CONTENT).toContain('hzl task');
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
//# sourceMappingURL=guide.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guide.test.js","sourceRoot":"","sources":["../../src/commands/guide.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAI,UAAuC,CAAC;IAE5C,UAAU,CAAC,GAAG,EAAE;QACd,UAAU,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,WAAW,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,KAAK,IAAI,EAAE;QAC/C,MAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;QACrC,MAAM,OAAO,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;QAE/C,MAAM,CAAC,UAAU,CAAC,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,gDAAgD;QAChD,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACnD,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;QACjD,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;QAClD,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC;QACpD,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC9C,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEjF,wBAAgB,aAAa,IAAI,OAAO,CA2BvC;AAED,wBAAsB,GAAG,CAAC,IAAI,GAAE,MAAM,EAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAGtE;AAED,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,UAAU,GACX,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -17,6 +17,7 @@ import { createDoctorCommand } from './commands/doctor.js';
|
|
|
17
17
|
import { createLockCommand } from './commands/lock.js';
|
|
18
18
|
import { createSampleProjectCommand } from './commands/sample-project.js';
|
|
19
19
|
import { createServeCommand } from './commands/serve.js';
|
|
20
|
+
import { createGuideCommand } from './commands/guide.js';
|
|
20
21
|
import { CLIError, ExitCode } from './errors.js';
|
|
21
22
|
import { resolveDbPaths, readConfig } from './config.js';
|
|
22
23
|
import { formatOutput, printSuccess, printError, printTable } from './output.js';
|
|
@@ -42,6 +43,7 @@ export function createProgram() {
|
|
|
42
43
|
program.addCommand(createDoctorCommand());
|
|
43
44
|
program.addCommand(createLockCommand());
|
|
44
45
|
program.addCommand(createServeCommand());
|
|
46
|
+
program.addCommand(createGuideCommand());
|
|
45
47
|
return program;
|
|
46
48
|
}
|
|
47
49
|
export async function run(argv = process.argv) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,GAAG,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,iDAAiD;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEjF,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,KAAK,CAAC;SACX,WAAW,CAAC,sDAAsD,CAAC;SACnE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;SACpB,MAAM,CAAC,aAAa,EAAE,uBAAuB,CAAC;SAC9C,MAAM,CAAC,QAAQ,EAAE,uBAAuB,EAAE,KAAK,CAAC,CAAC;IAEpD,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC5C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,UAAU,CAAC,0BAA0B,EAAE,CAAC,CAAC;IACjD,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAEzC,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,GAAG,CAAC,OAAiB,OAAO,CAAC,IAAI;IACrD,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,OAAO,EACL,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,UAAU,GACX,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hzl-cli",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.25.1",
|
|
4
4
|
"description": "CLI for HZL - External task ledger for coding agents and OpenClaw.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -60,8 +60,8 @@
|
|
|
60
60
|
"libsql": "^0.5.0",
|
|
61
61
|
"commander": "^14.0.0",
|
|
62
62
|
"zod": "^3.23.8",
|
|
63
|
-
"hzl-core": "1.
|
|
64
|
-
"hzl-web": "1.
|
|
63
|
+
"hzl-core": "1.25.1",
|
|
64
|
+
"hzl-web": "1.25.1"
|
|
65
65
|
},
|
|
66
66
|
"devDependencies": {
|
|
67
67
|
"@types/better-sqlite3": "^7.6.13",
|
|
@@ -71,7 +71,9 @@
|
|
|
71
71
|
"vitest": "^4.0.18"
|
|
72
72
|
},
|
|
73
73
|
"scripts": {
|
|
74
|
+
"prebuild": "node ../../scripts/generate-guide-content.js",
|
|
74
75
|
"build": "tsc -b",
|
|
76
|
+
"pretest": "node ../../scripts/generate-guide-content.js",
|
|
75
77
|
"test": "vitest run",
|
|
76
78
|
"test:watch": "vitest"
|
|
77
79
|
}
|