hail-hydra-cc 2.4.0 → 2.4.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 +99 -99
- package/bin/cli.js +105 -105
- package/files/SKILL.md +1172 -1172
- package/files/agents/hydra-analyst.md +1 -1
- package/files/agents/hydra-coder.md +2 -2
- package/files/agents/hydra-git.md +1 -1
- package/files/agents/hydra-guard.md +3 -3
- package/files/agents/hydra-runner.md +1 -1
- package/files/agents/hydra-scout.md +1 -1
- package/files/agents/hydra-scribe.md +1 -1
- package/files/agents/hydra-sentinel-scan.md +19 -1
- package/files/agents/hydra-sentinel.md +19 -1
- package/files/commands/hydra/config.md +37 -37
- package/files/commands/hydra/guard.md +71 -71
- package/files/commands/hydra/help.md +47 -47
- package/files/commands/hydra/quiet.md +16 -16
- package/files/commands/hydra/status.md +85 -85
- package/files/commands/hydra/verbose.md +29 -29
- package/files/hooks/hydra-auto-guard.js +130 -124
- package/files/hooks/hydra-check-update.js +99 -99
- package/files/hooks/hydra-statusline.js +131 -128
- package/files/references/model-capabilities.md +164 -164
- package/files/references/routing-guide.md +303 -303
- package/package.json +1 -1
- package/src/files.js +110 -110
- package/src/installer.js +401 -401
- package/src/prompts.js +80 -80
package/README.md
CHANGED
|
@@ -1,99 +1,99 @@
|
|
|
1
|
-
# hail-hydra-cc
|
|
2
|
-
|
|
3
|
-
> Multi-headed speculative execution framework for Claude Code.
|
|
4
|
-
> Inspired by speculative decoding — same quality, 3x faster, ~50% cheaper.
|
|
5
|
-
|
|
6
|
-
## Quick Install
|
|
7
|
-
|
|
8
|
-
```bash
|
|
9
|
-
npx hail-hydra-cc
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
Runs an interactive installer that deploys 10 Hydra agents into your Claude Code setup.
|
|
13
|
-
|
|
14
|
-
## What is Hydra?
|
|
15
|
-
|
|
16
|
-
Hydra makes Claude Code's Opus model an intelligent **orchestrator** instead of doing everything itself. It dispatches fast, cheap Haiku
|
|
17
|
-
|
|
18
|
-
| Head | Model | Role |
|
|
19
|
-
|------|-------|------|
|
|
20
|
-
| `hydra-scout` | 🟢 Haiku
|
|
21
|
-
| `hydra-runner` | 🟢 Haiku
|
|
22
|
-
| `hydra-scribe` | 🟢 Haiku
|
|
23
|
-
| `hydra-guard` | 🟢 Haiku
|
|
24
|
-
| `hydra-git` | 🟢 Haiku
|
|
25
|
-
| `hydra-coder` | 🔵 Sonnet
|
|
26
|
-
| `hydra-analyst` | 🔵 Sonnet
|
|
27
|
-
| `hydra-sentinel-scan` | 🟢 Haiku
|
|
28
|
-
| `hydra-sentinel` | 🔵 Sonnet
|
|
29
|
-
| `hydra-preflight` | 🟢 Haiku
|
|
30
|
-
|
|
31
|
-
**Expected gains:** 2–3× faster tasks, ~50% lower API costs, zero quality loss.
|
|
32
|
-
(Savings calculated against Opus
|
|
33
|
-
|
|
34
|
-
## Usage
|
|
35
|
-
|
|
36
|
-
```bash
|
|
37
|
-
npx hail-hydra-cc # Interactive install (recommended)
|
|
38
|
-
npx hail-hydra-cc --global # Install to ~/.claude/ — all projects
|
|
39
|
-
npx hail-hydra-cc --local # Install to ./.claude/ — this project
|
|
40
|
-
npx hail-hydra-cc --both # Install both locations
|
|
41
|
-
npx hail-hydra-cc --status # Show what's installed
|
|
42
|
-
npx hail-hydra-cc --uninstall # Remove all Hydra files
|
|
43
|
-
npx hail-hydra-cc --help # Show help
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
## What Gets Installed
|
|
47
|
-
|
|
48
|
-
```
|
|
49
|
-
~/.claude/ (or ./.claude/ for local)
|
|
50
|
-
├── agents/ # 10 agent definitions
|
|
51
|
-
│ ├── hydra-scout.md
|
|
52
|
-
│ ├── hydra-runner.md
|
|
53
|
-
│ ├── hydra-scribe.md
|
|
54
|
-
│ ├── hydra-guard.md
|
|
55
|
-
│ ├── hydra-git.md
|
|
56
|
-
│ ├── hydra-sentinel-scan.md
|
|
57
|
-
│ ├── hydra-preflight.md
|
|
58
|
-
│ ├── hydra-coder.md
|
|
59
|
-
│ ├── hydra-analyst.md
|
|
60
|
-
│ └── hydra-sentinel.md
|
|
61
|
-
├── commands/hydra/ # 10 slash commands
|
|
62
|
-
│ ├── help.md # /hydra:help
|
|
63
|
-
│ ├── status.md # /hydra:status
|
|
64
|
-
│ ├── update.md # /hydra:update
|
|
65
|
-
│ ├── config.md # /hydra:config
|
|
66
|
-
│ ├── guard.md # /hydra:guard
|
|
67
|
-
│ ├── quiet.md # /hydra:quiet
|
|
68
|
-
│ ├── verbose.md # /hydra:verbose
|
|
69
|
-
│ ├── report.md # /hydra:report
|
|
70
|
-
│ ├── map.md # /hydra:map
|
|
71
|
-
│ └── preflight.md # /hydra:preflight
|
|
72
|
-
├── hooks/ # 4 lifecycle hooks
|
|
73
|
-
│ ├── hydra-check-update.js # SessionStart — version check
|
|
74
|
-
│ ├── hydra-statusline.js # StatusLine — status bar
|
|
75
|
-
│ ├── hydra-auto-guard.js # PostToolUse — file tracker
|
|
76
|
-
│ ├── hydra-notify.js # Notification — task completion sound
|
|
77
|
-
│ └── hydra-task-complete.wav # Notification sound file
|
|
78
|
-
└── skills/hydra/ # Skill (Claude Code discoverable via /skills)
|
|
79
|
-
├── SKILL.md # Orchestrator instructions
|
|
80
|
-
├── VERSION # Installed version
|
|
81
|
-
└── references/
|
|
82
|
-
├── routing-guide.md
|
|
83
|
-
└── model-capabilities.md
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
All files are **bundled inside this package** — no network requests during installation.
|
|
87
|
-
|
|
88
|
-
## Requirements
|
|
89
|
-
|
|
90
|
-
- Node.js 16+
|
|
91
|
-
- Claude Code
|
|
92
|
-
|
|
93
|
-
## Full Documentation
|
|
94
|
-
|
|
95
|
-
[github.com/AR6420/Hail_Hydra](https://github.com/AR6420/Hail_Hydra)
|
|
96
|
-
|
|
97
|
-
## License
|
|
98
|
-
|
|
99
|
-
MIT
|
|
1
|
+
# hail-hydra-cc
|
|
2
|
+
|
|
3
|
+
> Multi-headed speculative execution framework for Claude Code.
|
|
4
|
+
> Inspired by speculative decoding — same quality, 3x faster, ~50% cheaper.
|
|
5
|
+
|
|
6
|
+
## Quick Install
|
|
7
|
+
|
|
8
|
+
```bash
|
|
9
|
+
npx hail-hydra-cc
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
Runs an interactive installer that deploys 10 Hydra agents into your Claude Code setup.
|
|
13
|
+
|
|
14
|
+
## What is Hydra?
|
|
15
|
+
|
|
16
|
+
Hydra makes Claude Code's Opus model an intelligent **orchestrator** instead of doing everything itself. It dispatches fast, cheap Haiku and Sonnet "heads" for routine tasks, reserving Opus-level reasoning only for genuinely hard problems.
|
|
17
|
+
|
|
18
|
+
| Head | Model | Role |
|
|
19
|
+
|------|-------|------|
|
|
20
|
+
| `hydra-scout` | 🟢 Haiku | Codebase exploration, file search |
|
|
21
|
+
| `hydra-runner` | 🟢 Haiku | Test execution, builds, linting |
|
|
22
|
+
| `hydra-scribe` | 🟢 Haiku | Documentation, READMEs, comments |
|
|
23
|
+
| `hydra-guard` | 🟢 Haiku | Security/quality gate after code changes |
|
|
24
|
+
| `hydra-git` | 🟢 Haiku | Git operations: commit, branch, diff |
|
|
25
|
+
| `hydra-coder` | 🔵 Sonnet | Code implementation, refactoring |
|
|
26
|
+
| `hydra-analyst` | 🔵 Sonnet | Code review, debugging, analysis |
|
|
27
|
+
| `hydra-sentinel-scan` | 🟢 Haiku | Fast integration sweep |
|
|
28
|
+
| `hydra-sentinel` | 🔵 Sonnet | Deep integration analysis |
|
|
29
|
+
| `hydra-preflight` | 🟢 Haiku | Environment detection, version probing, dep inventory |
|
|
30
|
+
|
|
31
|
+
**Expected gains:** 2–3× faster tasks, ~50% lower API costs, zero quality loss.
|
|
32
|
+
(Savings calculated against Opus at $5/$25 per MTok — February 2026 pricing)
|
|
33
|
+
|
|
34
|
+
## Usage
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
npx hail-hydra-cc # Interactive install (recommended)
|
|
38
|
+
npx hail-hydra-cc --global # Install to ~/.claude/ — all projects
|
|
39
|
+
npx hail-hydra-cc --local # Install to ./.claude/ — this project
|
|
40
|
+
npx hail-hydra-cc --both # Install both locations
|
|
41
|
+
npx hail-hydra-cc --status # Show what's installed
|
|
42
|
+
npx hail-hydra-cc --uninstall # Remove all Hydra files
|
|
43
|
+
npx hail-hydra-cc --help # Show help
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## What Gets Installed
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
~/.claude/ (or ./.claude/ for local)
|
|
50
|
+
├── agents/ # 10 agent definitions
|
|
51
|
+
│ ├── hydra-scout.md
|
|
52
|
+
│ ├── hydra-runner.md
|
|
53
|
+
│ ├── hydra-scribe.md
|
|
54
|
+
│ ├── hydra-guard.md
|
|
55
|
+
│ ├── hydra-git.md
|
|
56
|
+
│ ├── hydra-sentinel-scan.md
|
|
57
|
+
│ ├── hydra-preflight.md
|
|
58
|
+
│ ├── hydra-coder.md
|
|
59
|
+
│ ├── hydra-analyst.md
|
|
60
|
+
│ └── hydra-sentinel.md
|
|
61
|
+
├── commands/hydra/ # 10 slash commands
|
|
62
|
+
│ ├── help.md # /hydra:help
|
|
63
|
+
│ ├── status.md # /hydra:status
|
|
64
|
+
│ ├── update.md # /hydra:update
|
|
65
|
+
│ ├── config.md # /hydra:config
|
|
66
|
+
│ ├── guard.md # /hydra:guard
|
|
67
|
+
│ ├── quiet.md # /hydra:quiet
|
|
68
|
+
│ ├── verbose.md # /hydra:verbose
|
|
69
|
+
│ ├── report.md # /hydra:report
|
|
70
|
+
│ ├── map.md # /hydra:map
|
|
71
|
+
│ └── preflight.md # /hydra:preflight
|
|
72
|
+
├── hooks/ # 4 lifecycle hooks
|
|
73
|
+
│ ├── hydra-check-update.js # SessionStart — version check
|
|
74
|
+
│ ├── hydra-statusline.js # StatusLine — status bar
|
|
75
|
+
│ ├── hydra-auto-guard.js # PostToolUse — file tracker
|
|
76
|
+
│ ├── hydra-notify.js # Notification — task completion sound
|
|
77
|
+
│ └── hydra-task-complete.wav # Notification sound file
|
|
78
|
+
└── skills/hydra/ # Skill (Claude Code discoverable via /skills)
|
|
79
|
+
├── SKILL.md # Orchestrator instructions
|
|
80
|
+
├── VERSION # Installed version
|
|
81
|
+
└── references/
|
|
82
|
+
├── routing-guide.md
|
|
83
|
+
└── model-capabilities.md
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
All files are **bundled inside this package** — no network requests during installation.
|
|
87
|
+
|
|
88
|
+
## Requirements
|
|
89
|
+
|
|
90
|
+
- Node.js 16+
|
|
91
|
+
- Claude Code
|
|
92
|
+
|
|
93
|
+
## Full Documentation
|
|
94
|
+
|
|
95
|
+
[github.com/AR6420/Hail_Hydra](https://github.com/AR6420/Hail_Hydra)
|
|
96
|
+
|
|
97
|
+
## License
|
|
98
|
+
|
|
99
|
+
MIT
|
package/bin/cli.js
CHANGED
|
@@ -1,105 +1,105 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
'use strict';
|
|
3
|
-
|
|
4
|
-
// ── Node version guard ────────────────────────────────────────────────────────
|
|
5
|
-
const nodeMajor = parseInt(process.version.slice(1).split('.')[0], 10);
|
|
6
|
-
if (nodeMajor < 16) {
|
|
7
|
-
process.stderr.write(
|
|
8
|
-
`\nError: hail-hydra-cc requires Node.js 16 or higher.\n` +
|
|
9
|
-
`You have ${process.version}. Please upgrade: https://nodejs.org\n\n`
|
|
10
|
-
);
|
|
11
|
-
process.exit(1);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
// ── Imports ───────────────────────────────────────────────────────────────────
|
|
15
|
-
const { program } = require('commander');
|
|
16
|
-
const { showLogo } = require('../src/display');
|
|
17
|
-
const installer = require('../src/installer');
|
|
18
|
-
const { runPrompts } = require('../src/prompts');
|
|
19
|
-
const { VERSION } = require('../src/display');
|
|
20
|
-
|
|
21
|
-
// ── CLI definition ────────────────────────────────────────────────────────────
|
|
22
|
-
program
|
|
23
|
-
.name('hail-hydra-cc')
|
|
24
|
-
.description('Multi-headed speculative execution framework for Claude Code')
|
|
25
|
-
.version(VERSION, '-v, --version', 'Output the current version')
|
|
26
|
-
.option('--global', 'Skip prompts, install to ~/.claude/ (all projects)')
|
|
27
|
-
.option('--local', 'Skip prompts, install to ./.claude/ (this project)')
|
|
28
|
-
.option('--both', 'Skip prompts, install to both locations')
|
|
29
|
-
.option('--uninstall', 'Remove all Hydra files from global and local locations')
|
|
30
|
-
.option('--status', "Show what's currently installed and where")
|
|
31
|
-
.addHelpText('after', `
|
|
32
|
-
Examples:
|
|
33
|
-
npx hail-hydra-cc Interactive installation (recommended)
|
|
34
|
-
npx hail-hydra-cc --global Install globally — no prompts
|
|
35
|
-
npx hail-hydra-cc --local Install locally — no prompts
|
|
36
|
-
npx hail-hydra-cc --both Install both — no prompts
|
|
37
|
-
npx hail-hydra-cc --status Check installation status
|
|
38
|
-
npx hail-hydra-cc --uninstall Remove all Hydra files
|
|
39
|
-
|
|
40
|
-
What gets installed:
|
|
41
|
-
~/.claude/agents/ 9 Hydra agent .md files
|
|
42
|
-
~/.claude/skills/hydra/SKILL.md Core framework instructions
|
|
43
|
-
~/.claude/skills/hydra/references/ Model capabilities & routing guides
|
|
44
|
-
`);
|
|
45
|
-
|
|
46
|
-
// ── Main action ───────────────────────────────────────────────────────────────
|
|
47
|
-
program.action(async (options) => {
|
|
48
|
-
showLogo();
|
|
49
|
-
|
|
50
|
-
try {
|
|
51
|
-
if (options.status) {
|
|
52
|
-
await installer.showStatus();
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
if (options.uninstall) {
|
|
57
|
-
await installer.runUninstall({ interactive: true });
|
|
58
|
-
return;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
if (options.global) {
|
|
62
|
-
await installer.runInstall('global', { nonInteractive: true });
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
if (options.local) {
|
|
67
|
-
await installer.runInstall('local', { nonInteractive: true });
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
if (options.both) {
|
|
72
|
-
await installer.runInstall('both', { nonInteractive: true });
|
|
73
|
-
return;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
// No flags — run interactive prompts
|
|
77
|
-
const scope = await runPrompts();
|
|
78
|
-
if (scope) {
|
|
79
|
-
await installer.runInstall(scope);
|
|
80
|
-
}
|
|
81
|
-
} catch (err) {
|
|
82
|
-
const chalk = require('chalk');
|
|
83
|
-
|
|
84
|
-
if (err.code === 'EACCES') {
|
|
85
|
-
console.error(
|
|
86
|
-
chalk.red('\n ✖ Permission denied.') +
|
|
87
|
-
chalk.gray(' Try:\n') +
|
|
88
|
-
chalk.gray(' sudo npx hail-hydra-cc --global\n') +
|
|
89
|
-
chalk.gray(' npx hail-hydra-cc --local (no sudo needed)\n')
|
|
90
|
-
);
|
|
91
|
-
} else if (
|
|
92
|
-
err.message &&
|
|
93
|
-
(err.message.includes('User force closed') || err.message.includes('canceled'))
|
|
94
|
-
) {
|
|
95
|
-
console.log(chalk.gray('\n Installation cancelled.\n'));
|
|
96
|
-
} else {
|
|
97
|
-
console.error(chalk.red(`\n ✖ Error: ${err.message}\n`));
|
|
98
|
-
if (process.env.DEBUG) console.error(err.stack);
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
process.exit(1);
|
|
102
|
-
}
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
program.parseAsync(process.argv);
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
// ── Node version guard ────────────────────────────────────────────────────────
|
|
5
|
+
const nodeMajor = parseInt(process.version.slice(1).split('.')[0], 10);
|
|
6
|
+
if (nodeMajor < 16) {
|
|
7
|
+
process.stderr.write(
|
|
8
|
+
`\nError: hail-hydra-cc requires Node.js 16 or higher.\n` +
|
|
9
|
+
`You have ${process.version}. Please upgrade: https://nodejs.org\n\n`
|
|
10
|
+
);
|
|
11
|
+
process.exit(1);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
// ── Imports ───────────────────────────────────────────────────────────────────
|
|
15
|
+
const { program } = require('commander');
|
|
16
|
+
const { showLogo } = require('../src/display');
|
|
17
|
+
const installer = require('../src/installer');
|
|
18
|
+
const { runPrompts } = require('../src/prompts');
|
|
19
|
+
const { VERSION } = require('../src/display');
|
|
20
|
+
|
|
21
|
+
// ── CLI definition ────────────────────────────────────────────────────────────
|
|
22
|
+
program
|
|
23
|
+
.name('hail-hydra-cc')
|
|
24
|
+
.description('Multi-headed speculative execution framework for Claude Code')
|
|
25
|
+
.version(VERSION, '-v, --version', 'Output the current version')
|
|
26
|
+
.option('--global', 'Skip prompts, install to ~/.claude/ (all projects)')
|
|
27
|
+
.option('--local', 'Skip prompts, install to ./.claude/ (this project)')
|
|
28
|
+
.option('--both', 'Skip prompts, install to both locations')
|
|
29
|
+
.option('--uninstall', 'Remove all Hydra files from global and local locations')
|
|
30
|
+
.option('--status', "Show what's currently installed and where")
|
|
31
|
+
.addHelpText('after', `
|
|
32
|
+
Examples:
|
|
33
|
+
npx hail-hydra-cc Interactive installation (recommended)
|
|
34
|
+
npx hail-hydra-cc --global Install globally — no prompts
|
|
35
|
+
npx hail-hydra-cc --local Install locally — no prompts
|
|
36
|
+
npx hail-hydra-cc --both Install both — no prompts
|
|
37
|
+
npx hail-hydra-cc --status Check installation status
|
|
38
|
+
npx hail-hydra-cc --uninstall Remove all Hydra files
|
|
39
|
+
|
|
40
|
+
What gets installed:
|
|
41
|
+
~/.claude/agents/ 9 Hydra agent .md files
|
|
42
|
+
~/.claude/skills/hydra/SKILL.md Core framework instructions
|
|
43
|
+
~/.claude/skills/hydra/references/ Model capabilities & routing guides
|
|
44
|
+
`);
|
|
45
|
+
|
|
46
|
+
// ── Main action ───────────────────────────────────────────────────────────────
|
|
47
|
+
program.action(async (options) => {
|
|
48
|
+
showLogo();
|
|
49
|
+
|
|
50
|
+
try {
|
|
51
|
+
if (options.status) {
|
|
52
|
+
await installer.showStatus();
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (options.uninstall) {
|
|
57
|
+
await installer.runUninstall({ interactive: true });
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if (options.global) {
|
|
62
|
+
await installer.runInstall('global', { nonInteractive: true });
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
if (options.local) {
|
|
67
|
+
await installer.runInstall('local', { nonInteractive: true });
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
if (options.both) {
|
|
72
|
+
await installer.runInstall('both', { nonInteractive: true });
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// No flags — run interactive prompts
|
|
77
|
+
const scope = await runPrompts();
|
|
78
|
+
if (scope) {
|
|
79
|
+
await installer.runInstall(scope);
|
|
80
|
+
}
|
|
81
|
+
} catch (err) {
|
|
82
|
+
const chalk = require('chalk');
|
|
83
|
+
|
|
84
|
+
if (err.code === 'EACCES') {
|
|
85
|
+
console.error(
|
|
86
|
+
chalk.red('\n ✖ Permission denied.') +
|
|
87
|
+
chalk.gray(' Try:\n') +
|
|
88
|
+
chalk.gray(' sudo npx hail-hydra-cc --global\n') +
|
|
89
|
+
chalk.gray(' npx hail-hydra-cc --local (no sudo needed)\n')
|
|
90
|
+
);
|
|
91
|
+
} else if (
|
|
92
|
+
err.message &&
|
|
93
|
+
(err.message.includes('User force closed') || err.message.includes('canceled'))
|
|
94
|
+
) {
|
|
95
|
+
console.log(chalk.gray('\n Installation cancelled.\n'));
|
|
96
|
+
} else {
|
|
97
|
+
console.error(chalk.red(`\n ✖ Error: ${err.message}\n`));
|
|
98
|
+
if (process.env.DEBUG) console.error(err.stack);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
process.exit(1);
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
program.parseAsync(process.argv);
|