@vibe-agent-toolkit/cli 0.1.0-rc.10
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 +125 -0
- package/dist/bin/vat.d.ts +18 -0
- package/dist/bin/vat.d.ts.map +1 -0
- package/dist/bin/vat.js +174 -0
- package/dist/bin/vat.js.map +1 -0
- package/dist/bin.d.ts +7 -0
- package/dist/bin.d.ts.map +1 -0
- package/dist/bin.js +108 -0
- package/dist/bin.js.map +1 -0
- package/dist/commands/agent/audit.d.ts +9 -0
- package/dist/commands/agent/audit.d.ts.map +1 -0
- package/dist/commands/agent/audit.js +139 -0
- package/dist/commands/agent/audit.js.map +1 -0
- package/dist/commands/agent/build.d.ts +13 -0
- package/dist/commands/agent/build.d.ts.map +1 -0
- package/dist/commands/agent/build.js +52 -0
- package/dist/commands/agent/build.js.map +1 -0
- package/dist/commands/agent/help.d.ts +5 -0
- package/dist/commands/agent/help.d.ts.map +1 -0
- package/dist/commands/agent/help.js +10 -0
- package/dist/commands/agent/help.js.map +1 -0
- package/dist/commands/agent/import.d.ts +10 -0
- package/dist/commands/agent/import.d.ts.map +1 -0
- package/dist/commands/agent/import.js +50 -0
- package/dist/commands/agent/import.js.map +1 -0
- package/dist/commands/agent/index.d.ts +7 -0
- package/dist/commands/agent/index.d.ts.map +1 -0
- package/dist/commands/agent/index.js +293 -0
- package/dist/commands/agent/index.js.map +1 -0
- package/dist/commands/agent/install.d.ts +15 -0
- package/dist/commands/agent/install.d.ts.map +1 -0
- package/dist/commands/agent/install.js +107 -0
- package/dist/commands/agent/install.js.map +1 -0
- package/dist/commands/agent/installed.d.ts +13 -0
- package/dist/commands/agent/installed.d.ts.map +1 -0
- package/dist/commands/agent/installed.js +106 -0
- package/dist/commands/agent/installed.js.map +1 -0
- package/dist/commands/agent/list.d.ts +8 -0
- package/dist/commands/agent/list.d.ts.map +1 -0
- package/dist/commands/agent/list.js +41 -0
- package/dist/commands/agent/list.js.map +1 -0
- package/dist/commands/agent/run.d.ts +17 -0
- package/dist/commands/agent/run.d.ts.map +1 -0
- package/dist/commands/agent/run.js +44 -0
- package/dist/commands/agent/run.js.map +1 -0
- package/dist/commands/agent/uninstall.d.ts +13 -0
- package/dist/commands/agent/uninstall.d.ts.map +1 -0
- package/dist/commands/agent/uninstall.js +48 -0
- package/dist/commands/agent/uninstall.js.map +1 -0
- package/dist/commands/agent/validate.d.ts +8 -0
- package/dist/commands/agent/validate.d.ts.map +1 -0
- package/dist/commands/agent/validate.js +51 -0
- package/dist/commands/agent/validate.js.map +1 -0
- package/dist/commands/rag/clear-command.d.ts +10 -0
- package/dist/commands/rag/clear-command.d.ts.map +1 -0
- package/dist/commands/rag/clear-command.js +22 -0
- package/dist/commands/rag/clear-command.js.map +1 -0
- package/dist/commands/rag/command-helpers.d.ts +27 -0
- package/dist/commands/rag/command-helpers.d.ts.map +1 -0
- package/dist/commands/rag/command-helpers.js +58 -0
- package/dist/commands/rag/command-helpers.js.map +1 -0
- package/dist/commands/rag/help.d.ts +5 -0
- package/dist/commands/rag/help.d.ts.map +1 -0
- package/dist/commands/rag/help.js +10 -0
- package/dist/commands/rag/help.js.map +1 -0
- package/dist/commands/rag/index-command.d.ts +10 -0
- package/dist/commands/rag/index-command.d.ts.map +1 -0
- package/dist/commands/rag/index-command.js +49 -0
- package/dist/commands/rag/index-command.js.map +1 -0
- package/dist/commands/rag/index.d.ts +7 -0
- package/dist/commands/rag/index.d.ts.map +1 -0
- package/dist/commands/rag/index.js +168 -0
- package/dist/commands/rag/index.js.map +1 -0
- package/dist/commands/rag/query-command.d.ts +11 -0
- package/dist/commands/rag/query-command.d.ts.map +1 -0
- package/dist/commands/rag/query-command.js +54 -0
- package/dist/commands/rag/query-command.js.map +1 -0
- package/dist/commands/rag/stats-command.d.ts +10 -0
- package/dist/commands/rag/stats-command.d.ts.map +1 -0
- package/dist/commands/rag/stats-command.js +25 -0
- package/dist/commands/rag/stats-command.js.map +1 -0
- package/dist/commands/resources/command-helpers.d.ts +5 -0
- package/dist/commands/resources/command-helpers.d.ts.map +1 -0
- package/dist/commands/resources/command-helpers.js +6 -0
- package/dist/commands/resources/command-helpers.js.map +1 -0
- package/dist/commands/resources/help.d.ts +5 -0
- package/dist/commands/resources/help.d.ts.map +1 -0
- package/dist/commands/resources/help.js +10 -0
- package/dist/commands/resources/help.js.map +1 -0
- package/dist/commands/resources/index.d.ts +7 -0
- package/dist/commands/resources/index.d.ts.map +1 -0
- package/dist/commands/resources/index.js +64 -0
- package/dist/commands/resources/index.js.map +1 -0
- package/dist/commands/resources/scan.d.ts +9 -0
- package/dist/commands/resources/scan.d.ts.map +1 -0
- package/dist/commands/resources/scan.js +47 -0
- package/dist/commands/resources/scan.js.map +1 -0
- package/dist/commands/resources/validate.d.ts +9 -0
- package/dist/commands/resources/validate.d.ts.map +1 -0
- package/dist/commands/resources/validate.js +61 -0
- package/dist/commands/resources/validate.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/schemas/config.d.ts +1034 -0
- package/dist/schemas/config.d.ts.map +1 -0
- package/dist/schemas/config.js +135 -0
- package/dist/schemas/config.js.map +1 -0
- package/dist/utils/agent-discovery.d.ts +32 -0
- package/dist/utils/agent-discovery.d.ts.map +1 -0
- package/dist/utils/agent-discovery.js +108 -0
- package/dist/utils/agent-discovery.js.map +1 -0
- package/dist/utils/agent-runner.d.ts +22 -0
- package/dist/utils/agent-runner.d.ts.map +1 -0
- package/dist/utils/agent-runner.js +120 -0
- package/dist/utils/agent-runner.js.map +1 -0
- package/dist/utils/command-error.d.ts +19 -0
- package/dist/utils/command-error.d.ts.map +1 -0
- package/dist/utils/command-error.js +36 -0
- package/dist/utils/command-error.js.map +1 -0
- package/dist/utils/config-loader.d.ts +12 -0
- package/dist/utils/config-loader.d.ts.map +1 -0
- package/dist/utils/config-loader.js +39 -0
- package/dist/utils/config-loader.js.map +1 -0
- package/dist/utils/help-loader.d.ts +12 -0
- package/dist/utils/help-loader.d.ts.map +1 -0
- package/dist/utils/help-loader.js +39 -0
- package/dist/utils/help-loader.js.map +1 -0
- package/dist/utils/logger.d.ts +14 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +21 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/output.d.ts +20 -0
- package/dist/utils/output.d.ts.map +1 -0
- package/dist/utils/output.js +40 -0
- package/dist/utils/output.js.map +1 -0
- package/dist/utils/project-root.d.ts +11 -0
- package/dist/utils/project-root.d.ts.map +1 -0
- package/dist/utils/project-root.js +35 -0
- package/dist/utils/project-root.js.map +1 -0
- package/dist/utils/resource-loader.d.ts +30 -0
- package/dist/utils/resource-loader.d.ts.map +1 -0
- package/dist/utils/resource-loader.js +63 -0
- package/dist/utils/resource-loader.js.map +1 -0
- package/dist/utils/scope-locations.d.ts +17 -0
- package/dist/utils/scope-locations.d.ts.map +1 -0
- package/dist/utils/scope-locations.js +40 -0
- package/dist/utils/scope-locations.js.map +1 -0
- package/dist/utils/validate-help-files.d.ts +14 -0
- package/dist/utils/validate-help-files.d.ts.map +1 -0
- package/dist/utils/validate-help-files.js +61 -0
- package/dist/utils/validate-help-files.js.map +1 -0
- package/dist/version.d.ts +13 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +27 -0
- package/dist/version.js.map +1 -0
- package/docs/agent.md +100 -0
- package/docs/index.md +309 -0
- package/docs/rag.md +449 -0
- package/docs/resources.md +158 -0
- package/package.json +68 -0
package/README.md
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# @vibe-agent-toolkit/cli
|
|
2
|
+
|
|
3
|
+
Command-line interface for the Vibe Agent Toolkit.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
Install the umbrella package globally:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install -g vibe-agent-toolkit
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Or install CLI package directly in a project:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
npm install @vibe-agent-toolkit/cli
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
|
|
21
|
+
### Basic Commands
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
# Show version (with context)
|
|
25
|
+
vat --version
|
|
26
|
+
|
|
27
|
+
# Show help
|
|
28
|
+
vat --help
|
|
29
|
+
|
|
30
|
+
# Show comprehensive help
|
|
31
|
+
vat --help --verbose
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Resources Commands
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
# Scan markdown resources
|
|
38
|
+
vat resources scan docs/
|
|
39
|
+
|
|
40
|
+
# Validate link integrity
|
|
41
|
+
vat resources validate docs/
|
|
42
|
+
|
|
43
|
+
# Show resources help
|
|
44
|
+
vat resources --help --verbose
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### RAG Commands
|
|
48
|
+
|
|
49
|
+
Index and query markdown documents using vector search:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
# Index markdown files into RAG database
|
|
53
|
+
vat rag index docs/
|
|
54
|
+
|
|
55
|
+
# Search the database
|
|
56
|
+
vat rag query "authentication methods"
|
|
57
|
+
|
|
58
|
+
# View database statistics
|
|
59
|
+
vat rag stats
|
|
60
|
+
|
|
61
|
+
# Clear database (rebuild required after)
|
|
62
|
+
vat rag clear
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
**Database Options:**
|
|
66
|
+
- Default: `.rag-db` in project root
|
|
67
|
+
- Custom: `--db <path>` flag on any command
|
|
68
|
+
|
|
69
|
+
**Embedding Model:**
|
|
70
|
+
- Uses transformers.js with `all-MiniLM-L6-v2` (local, fast, free)
|
|
71
|
+
- 384-dimensional embeddings
|
|
72
|
+
- No API key required
|
|
73
|
+
|
|
74
|
+
### Configuration
|
|
75
|
+
|
|
76
|
+
Create `vibe-agent-toolkit.config.yaml` at project root:
|
|
77
|
+
|
|
78
|
+
```yaml
|
|
79
|
+
version: 1
|
|
80
|
+
resources:
|
|
81
|
+
include:
|
|
82
|
+
- "docs/**/*.md"
|
|
83
|
+
- "agents/**/README.md"
|
|
84
|
+
exclude:
|
|
85
|
+
- "node_modules/**"
|
|
86
|
+
- "**/test/fixtures/**"
|
|
87
|
+
validation:
|
|
88
|
+
checkLinks: true
|
|
89
|
+
checkAnchors: true
|
|
90
|
+
allowExternal: true
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### Development Mode
|
|
94
|
+
|
|
95
|
+
Set `VAT_ROOT_DIR` to run from source:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
export VAT_ROOT_DIR=/path/to/vibe-agent-toolkit
|
|
99
|
+
vat --version # Shows: 0.1.0-dev (/path/to/vibe-agent-toolkit)
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
## Documentation
|
|
103
|
+
|
|
104
|
+
- [CLI Reference](./docs/) - Complete command documentation (markdown source)
|
|
105
|
+
- Run `vat --help --verbose` for the same documentation at runtime
|
|
106
|
+
- [Architecture](../../docs/architecture/README.md) - Package structure
|
|
107
|
+
|
|
108
|
+
## Development
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
# Build
|
|
112
|
+
bun run build
|
|
113
|
+
|
|
114
|
+
# Test
|
|
115
|
+
bun test
|
|
116
|
+
bun test:integration
|
|
117
|
+
bun test:system
|
|
118
|
+
|
|
119
|
+
# Prepare binaries after build
|
|
120
|
+
bun run prepare-cli-bin
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## License
|
|
124
|
+
|
|
125
|
+
MIT © Jeff Dutton
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Smart vat wrapper with context-aware execution
|
|
4
|
+
*
|
|
5
|
+
* Automatically detects execution context and delegates to appropriate binary:
|
|
6
|
+
* - Developer mode: Inside vibe-agent-toolkit repo → packages/cli/dist/bin.js (unpackaged dev build)
|
|
7
|
+
* - Local install: Project has vibe-agent-toolkit → node_modules version (packaged)
|
|
8
|
+
* - Global install: Fallback → globally installed version (packaged)
|
|
9
|
+
*
|
|
10
|
+
* Features:
|
|
11
|
+
* - Version detection and comparison
|
|
12
|
+
* - Debug mode (VAT_DEBUG=1) shows resolution details
|
|
13
|
+
* - Works from any subdirectory within the repo
|
|
14
|
+
*
|
|
15
|
+
* Works in both git and non-git directories.
|
|
16
|
+
*/
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=vat.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vat.d.ts","sourceRoot":"","sources":["../../src/bin/vat.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;GAcG"}
|
package/dist/bin/vat.js
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Smart vat wrapper with context-aware execution
|
|
4
|
+
*
|
|
5
|
+
* Automatically detects execution context and delegates to appropriate binary:
|
|
6
|
+
* - Developer mode: Inside vibe-agent-toolkit repo → packages/cli/dist/bin.js (unpackaged dev build)
|
|
7
|
+
* - Local install: Project has vibe-agent-toolkit → node_modules version (packaged)
|
|
8
|
+
* - Global install: Fallback → globally installed version (packaged)
|
|
9
|
+
*
|
|
10
|
+
* Features:
|
|
11
|
+
* - Version detection and comparison
|
|
12
|
+
* - Debug mode (VAT_DEBUG=1) shows resolution details
|
|
13
|
+
* - Works from any subdirectory within the repo
|
|
14
|
+
*
|
|
15
|
+
* Works in both git and non-git directories.
|
|
16
|
+
*/
|
|
17
|
+
import { spawnSync } from 'node:child_process';
|
|
18
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
19
|
+
import { resolve, dirname, join } from 'node:path';
|
|
20
|
+
import { fileURLToPath } from 'node:url';
|
|
21
|
+
import { findProjectRoot } from '../utils/project-root.js';
|
|
22
|
+
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
23
|
+
function spawnCli(binPath, context, contextPath) {
|
|
24
|
+
const env = {
|
|
25
|
+
...process.env,
|
|
26
|
+
VAT_CONTEXT: context,
|
|
27
|
+
VAT_CONTEXT_PATH: contextPath,
|
|
28
|
+
};
|
|
29
|
+
// eslint-disable-next-line sonarjs/no-os-command-from-path -- node is always in PATH for CLI usage
|
|
30
|
+
const result = spawnSync('node', [binPath, ...process.argv.slice(2)], {
|
|
31
|
+
stdio: 'inherit',
|
|
32
|
+
env,
|
|
33
|
+
});
|
|
34
|
+
process.exit(result.status ?? 1);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Check if we're in vibe-agent-toolkit repo (developer mode)
|
|
38
|
+
* Simple detection: both wrapper and bin.js must exist in project structure
|
|
39
|
+
*
|
|
40
|
+
* @param projectRoot - Root directory of the project
|
|
41
|
+
* @returns Path to bin.js if detected, null otherwise
|
|
42
|
+
*/
|
|
43
|
+
function getDevModeBinary(projectRoot) {
|
|
44
|
+
const wrapperPath = join(projectRoot, 'packages/cli/dist/bin/vat.js');
|
|
45
|
+
const binPath = join(projectRoot, 'packages/cli/dist/bin.js');
|
|
46
|
+
if (process.env['VAT_DEBUG'] === '1') {
|
|
47
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- checking project structure files for debug
|
|
48
|
+
console.error(`[vat debug] Dev check - wrapper: ${wrapperPath} (${existsSync(wrapperPath)})`);
|
|
49
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- checking project structure files for debug
|
|
50
|
+
console.error(`[vat debug] Dev check - bin: ${binPath} (${existsSync(binPath)})`);
|
|
51
|
+
}
|
|
52
|
+
// Both files must exist to confirm we're in vibe-agent-toolkit repo
|
|
53
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- checking project structure files
|
|
54
|
+
if (existsSync(wrapperPath) && existsSync(binPath)) {
|
|
55
|
+
return binPath;
|
|
56
|
+
}
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Find local vibe-agent-toolkit installation in node_modules
|
|
61
|
+
* Walks up directory tree from project root
|
|
62
|
+
*
|
|
63
|
+
* @param projectRoot - Root directory to start searching from
|
|
64
|
+
* @returns Path to local bin.js if found, null otherwise
|
|
65
|
+
*/
|
|
66
|
+
function findLocalInstall(projectRoot) {
|
|
67
|
+
let current = projectRoot;
|
|
68
|
+
while (true) {
|
|
69
|
+
const localBin = join(current, 'node_modules/@vibe-agent-toolkit/cli/dist/bin.js');
|
|
70
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- checking for local install
|
|
71
|
+
if (existsSync(localBin)) {
|
|
72
|
+
return localBin;
|
|
73
|
+
}
|
|
74
|
+
const parent = dirname(current);
|
|
75
|
+
if (parent === current) {
|
|
76
|
+
// Reached filesystem root
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
current = parent;
|
|
80
|
+
}
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Read version from package.json
|
|
85
|
+
* @param packageJsonPath - Path to package.json file
|
|
86
|
+
* @returns Version string or null if not found
|
|
87
|
+
*/
|
|
88
|
+
function readVersion(packageJsonPath) {
|
|
89
|
+
try {
|
|
90
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- reading version from package.json
|
|
91
|
+
if (!existsSync(packageJsonPath)) {
|
|
92
|
+
return null;
|
|
93
|
+
}
|
|
94
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- reading version from package.json
|
|
95
|
+
const content = readFileSync(packageJsonPath, 'utf-8');
|
|
96
|
+
const pkg = JSON.parse(content);
|
|
97
|
+
return pkg.version ?? null;
|
|
98
|
+
}
|
|
99
|
+
catch {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Main entry point - detects context and executes appropriate binary
|
|
105
|
+
*/
|
|
106
|
+
function main() {
|
|
107
|
+
const cwd = process.cwd();
|
|
108
|
+
const args = process.argv.slice(2);
|
|
109
|
+
const debug = process.env['VAT_DEBUG'] === '1';
|
|
110
|
+
// Priority 1: Explicit override via VAT_ROOT_DIR
|
|
111
|
+
if (process.env['VAT_ROOT_DIR']) {
|
|
112
|
+
const binPath = join(process.env['VAT_ROOT_DIR'], 'packages/cli/dist/bin.js');
|
|
113
|
+
// eslint-disable-next-line security/detect-non-literal-fs-filename -- dynamic path from env is expected
|
|
114
|
+
if (existsSync(binPath)) {
|
|
115
|
+
if (debug) {
|
|
116
|
+
console.error('[vat debug] Using VAT_ROOT_DIR override');
|
|
117
|
+
console.error(`[vat debug] Binary: ${binPath}`);
|
|
118
|
+
}
|
|
119
|
+
spawnCli(binPath, 'dev', process.env['VAT_ROOT_DIR']);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
// Find project root from current working directory
|
|
123
|
+
const projectRoot = findProjectRoot(cwd) ?? cwd;
|
|
124
|
+
let binPath;
|
|
125
|
+
let context;
|
|
126
|
+
let binDir;
|
|
127
|
+
// Priority 2: Check for developer mode (inside vibe-agent-toolkit repo)
|
|
128
|
+
const devBin = getDevModeBinary(projectRoot);
|
|
129
|
+
if (devBin) {
|
|
130
|
+
binPath = devBin;
|
|
131
|
+
context = 'dev';
|
|
132
|
+
binDir = dirname(dirname(devBin)); // packages/cli/dist -> packages/cli
|
|
133
|
+
}
|
|
134
|
+
// Priority 3: Check for local install (node_modules)
|
|
135
|
+
else {
|
|
136
|
+
const localBin = findLocalInstall(projectRoot);
|
|
137
|
+
if (localBin) {
|
|
138
|
+
binPath = localBin;
|
|
139
|
+
context = 'local';
|
|
140
|
+
binDir = dirname(dirname(localBin)); // node_modules/@vibe-agent-toolkit/cli/dist -> node_modules/@vibe-agent-toolkit/cli
|
|
141
|
+
}
|
|
142
|
+
// Priority 4: Use global install (this script's location)
|
|
143
|
+
else {
|
|
144
|
+
binPath = resolve(__dirname, '../bin.js');
|
|
145
|
+
context = 'global';
|
|
146
|
+
binDir = dirname(__dirname); // dist -> cli root
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// Read versions for comparison
|
|
150
|
+
// __dirname = dist/bin, so go up twice to reach package.json at cli root
|
|
151
|
+
const globalPkgPath = join(dirname(dirname(__dirname)), 'package.json');
|
|
152
|
+
const globalVersion = readVersion(globalPkgPath);
|
|
153
|
+
let localVersion = null;
|
|
154
|
+
if (context === 'local') {
|
|
155
|
+
const localPkgPath = join(binDir, 'package.json');
|
|
156
|
+
localVersion = readVersion(localPkgPath);
|
|
157
|
+
}
|
|
158
|
+
// Debug output
|
|
159
|
+
if (debug) {
|
|
160
|
+
console.error(`[vat debug] CWD: ${cwd}`);
|
|
161
|
+
console.error(`[vat debug] Project root: ${projectRoot}`);
|
|
162
|
+
console.error(`[vat debug] Context: ${context}`);
|
|
163
|
+
console.error(`[vat debug] Binary: ${binPath}`);
|
|
164
|
+
console.error(`[vat debug] Global version: ${globalVersion ?? 'unknown'}`);
|
|
165
|
+
console.error(`[vat debug] Local version: ${localVersion ?? 'N/A'}`);
|
|
166
|
+
console.error(`[vat debug] Args: ${args.join(' ')}`);
|
|
167
|
+
}
|
|
168
|
+
// Execute the binary with all arguments (only pass projectRoot for dev context)
|
|
169
|
+
const contextPath = context === 'dev' ? projectRoot : undefined;
|
|
170
|
+
spawnCli(binPath, context, contextPath);
|
|
171
|
+
}
|
|
172
|
+
// Run main function
|
|
173
|
+
main();
|
|
174
|
+
//# sourceMappingURL=vat.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vat.js","sourceRoot":"","sources":["../../src/bin/vat.ts"],"names":[],"mappings":"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"}
|
package/dist/bin.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.d.ts","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":";AAEA;;;GAGG"}
|
package/dist/bin.js
ADDED
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
/**
|
|
3
|
+
* Main entry point for vat CLI
|
|
4
|
+
* Uses Commander.js for command structure
|
|
5
|
+
*/
|
|
6
|
+
import { Command } from 'commander';
|
|
7
|
+
import { createAgentCommand, showAgentVerboseHelp } from './commands/agent/index.js';
|
|
8
|
+
import { createRagCommand, showRagVerboseHelp } from './commands/rag/index.js';
|
|
9
|
+
import { createResourcesCommand, showResourcesVerboseHelp } from './commands/resources/index.js';
|
|
10
|
+
import { loadVerboseHelp } from './utils/help-loader.js';
|
|
11
|
+
import { createLogger } from './utils/logger.js';
|
|
12
|
+
import { version, getVersionString } from './version.js';
|
|
13
|
+
const program = new Command();
|
|
14
|
+
// Context detection from environment
|
|
15
|
+
const context = process.env['VAT_CONTEXT']
|
|
16
|
+
? {
|
|
17
|
+
type: process.env['VAT_CONTEXT'],
|
|
18
|
+
path: process.env['VAT_CONTEXT_PATH'],
|
|
19
|
+
}
|
|
20
|
+
: null;
|
|
21
|
+
program
|
|
22
|
+
.name('vat')
|
|
23
|
+
.description('Agent-friendly toolkit for building, testing, and deploying portable AI agents')
|
|
24
|
+
.version(getVersionString(version, context), '-v, --version', 'Output version number')
|
|
25
|
+
.option('--debug', 'Enable debug logging')
|
|
26
|
+
.option('--verbose', 'Show verbose help (markdown format)')
|
|
27
|
+
.helpCommand(false) // Disable redundant 'help' command, use --help instead
|
|
28
|
+
.showHelpAfterError()
|
|
29
|
+
.configureOutput({
|
|
30
|
+
writeOut: (str) => process.stdout.write(str), // Help goes to stdout (pipeable)
|
|
31
|
+
writeErr: (str) => process.stderr.write(str), // Errors go to stderr
|
|
32
|
+
})
|
|
33
|
+
.addHelpText('after', `
|
|
34
|
+
Example:
|
|
35
|
+
$ vat resources validate docs/ # Validate markdown links (run before commit)
|
|
36
|
+
|
|
37
|
+
Environment:
|
|
38
|
+
VAT_DEBUG=1 # Show context detection details
|
|
39
|
+
|
|
40
|
+
For command details: vat resources --help
|
|
41
|
+
For comprehensive help: vat --help --verbose
|
|
42
|
+
For agent guidance: docs/cli/CLAUDE.md
|
|
43
|
+
`);
|
|
44
|
+
// Handle --help --verbose at root level only
|
|
45
|
+
// Don't handle --verbose if a subcommand was specified
|
|
46
|
+
const hasSubcommand = process.argv.slice(2).some(arg => !arg.startsWith('-'));
|
|
47
|
+
program.on('option:verbose', () => {
|
|
48
|
+
const opts = program.opts();
|
|
49
|
+
// Only show root verbose help if no subcommand is present
|
|
50
|
+
if (opts['verbose'] && !hasSubcommand && program.args.length === 0) {
|
|
51
|
+
showVerboseHelp();
|
|
52
|
+
process.exit(0);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
// Special handling for "resources --verbose" before parsing
|
|
56
|
+
if (process.argv.includes('resources') && process.argv.includes('--verbose')) {
|
|
57
|
+
const argv = process.argv.slice(2);
|
|
58
|
+
const resourcesIndex = argv.indexOf('resources');
|
|
59
|
+
// Check if there's no subcommand after 'resources'
|
|
60
|
+
const afterResources = argv.slice(resourcesIndex + 1);
|
|
61
|
+
const hasSubcommand = afterResources.some(arg => !arg.startsWith('-'));
|
|
62
|
+
if (!hasSubcommand) {
|
|
63
|
+
showResourcesVerboseHelp();
|
|
64
|
+
process.exit(0);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
// Special handling for "rag --verbose" before parsing
|
|
68
|
+
if (process.argv.includes('rag') && process.argv.includes('--verbose')) {
|
|
69
|
+
const argv = process.argv.slice(2);
|
|
70
|
+
const ragIndex = argv.indexOf('rag');
|
|
71
|
+
// Check if there's no subcommand after 'rag'
|
|
72
|
+
const afterRag = argv.slice(ragIndex + 1);
|
|
73
|
+
const hasSubcommand = afterRag.some(arg => !arg.startsWith('-'));
|
|
74
|
+
if (!hasSubcommand) {
|
|
75
|
+
showRagVerboseHelp();
|
|
76
|
+
process.exit(0);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// Special handling for "agent --verbose" before parsing
|
|
80
|
+
if (process.argv.includes('agent') && process.argv.includes('--verbose')) {
|
|
81
|
+
const argv = process.argv.slice(2);
|
|
82
|
+
const agentIndex = argv.indexOf('agent');
|
|
83
|
+
// Check if there's no subcommand after 'agent'
|
|
84
|
+
const afterAgent = argv.slice(agentIndex + 1);
|
|
85
|
+
const hasSubcommand = afterAgent.some(arg => !arg.startsWith('-'));
|
|
86
|
+
if (!hasSubcommand) {
|
|
87
|
+
showAgentVerboseHelp();
|
|
88
|
+
process.exit(0);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
// Add command groups
|
|
92
|
+
program.addCommand(createResourcesCommand());
|
|
93
|
+
program.addCommand(createRagCommand());
|
|
94
|
+
program.addCommand(createAgentCommand());
|
|
95
|
+
// Handle unknown commands
|
|
96
|
+
program.on('command:*', (operands) => {
|
|
97
|
+
const logger = createLogger();
|
|
98
|
+
logger.error(`error: unknown command '${operands[0]}'`);
|
|
99
|
+
logger.error('');
|
|
100
|
+
program.help({ error: true });
|
|
101
|
+
});
|
|
102
|
+
program.parse();
|
|
103
|
+
function showVerboseHelp() {
|
|
104
|
+
const helpContent = loadVerboseHelp(); // Loads from docs/cli/index.md
|
|
105
|
+
process.stdout.write(helpContent);
|
|
106
|
+
process.stdout.write('\n');
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=bin.js.map
|
package/dist/bin.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent audit command - audits Claude Skills for quality and compatibility
|
|
3
|
+
*/
|
|
4
|
+
export interface AuditCommandOptions {
|
|
5
|
+
debug?: boolean;
|
|
6
|
+
recursive?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function auditCommand(targetPath: string | undefined, options: AuditCommandOptions): Promise<void>;
|
|
9
|
+
//# sourceMappingURL=audit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/audit.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,MAAM,WAAW,mBAAmB;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CAoBf"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent audit command - audits Claude Skills for quality and compatibility
|
|
3
|
+
*/
|
|
4
|
+
import * as path from 'node:path';
|
|
5
|
+
import { detectFormat } from '@vibe-agent-toolkit/discovery';
|
|
6
|
+
import { validateSkill } from '@vibe-agent-toolkit/runtime-claude-skills';
|
|
7
|
+
import { handleCommandError } from '../../utils/command-error.js';
|
|
8
|
+
import { createLogger } from '../../utils/logger.js';
|
|
9
|
+
import { writeYamlOutput } from '../../utils/output.js';
|
|
10
|
+
export async function auditCommand(targetPath, options) {
|
|
11
|
+
const logger = createLogger(options.debug ? { debug: true } : {});
|
|
12
|
+
const startTime = Date.now();
|
|
13
|
+
try {
|
|
14
|
+
const scanPath = targetPath ? path.resolve(targetPath) : process.cwd();
|
|
15
|
+
logger.debug(`Auditing Claude Skills at: ${scanPath}`);
|
|
16
|
+
// Get validation results
|
|
17
|
+
const results = await getValidationResults(scanPath, options.recursive ?? false, logger);
|
|
18
|
+
// Calculate and output summary
|
|
19
|
+
const summary = calculateSummary(results, startTime);
|
|
20
|
+
writeYamlOutput(summary);
|
|
21
|
+
// Log human-readable output and exit
|
|
22
|
+
handleAuditResults(results, summary, logger);
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
handleCommandError(error, logger, startTime, 'AgentAudit');
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
async function getValidationResults(scanPath, recursive, logger) {
|
|
29
|
+
const format = detectFormat(scanPath);
|
|
30
|
+
if (format === 'claude-skill') {
|
|
31
|
+
logger.debug('Detected single Claude Skill');
|
|
32
|
+
const result = await validateSkill({ skillPath: scanPath });
|
|
33
|
+
return [result];
|
|
34
|
+
}
|
|
35
|
+
if (format === 'vat-agent') {
|
|
36
|
+
const skillPath = path.join(scanPath, 'SKILL.md');
|
|
37
|
+
logger.debug('Detected VAT agent, validating SKILL.md');
|
|
38
|
+
const result = await validateSkill({ skillPath, isVATGenerated: true });
|
|
39
|
+
return [result];
|
|
40
|
+
}
|
|
41
|
+
logger.debug('Scanning directory for Claude Skills');
|
|
42
|
+
return scanDirectory(scanPath, recursive, logger);
|
|
43
|
+
}
|
|
44
|
+
function calculateSummary(results, startTime) {
|
|
45
|
+
const successCount = results.filter((r) => r.status === 'success').length;
|
|
46
|
+
const warningCount = results.filter((r) => r.status === 'warning').length;
|
|
47
|
+
const errorCount = results.filter((r) => r.status === 'error').length;
|
|
48
|
+
const totalErrors = results.reduce((sum, r) => sum + r.issues.filter(i => i.severity === 'error').length, 0);
|
|
49
|
+
const totalWarnings = results.reduce((sum, r) => sum + r.issues.filter(i => i.severity === 'warning').length, 0);
|
|
50
|
+
const totalInfo = results.reduce((sum, r) => sum + r.issues.filter(i => i.severity === 'info').length, 0);
|
|
51
|
+
let status;
|
|
52
|
+
if (errorCount > 0) {
|
|
53
|
+
status = 'error';
|
|
54
|
+
}
|
|
55
|
+
else if (warningCount > 0) {
|
|
56
|
+
status = 'warning';
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
status = 'success';
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
status,
|
|
63
|
+
summary: {
|
|
64
|
+
filesScanned: results.length,
|
|
65
|
+
success: successCount,
|
|
66
|
+
warnings: warningCount,
|
|
67
|
+
errors: errorCount,
|
|
68
|
+
},
|
|
69
|
+
issues: {
|
|
70
|
+
errors: totalErrors,
|
|
71
|
+
warnings: totalWarnings,
|
|
72
|
+
info: totalInfo,
|
|
73
|
+
},
|
|
74
|
+
files: results,
|
|
75
|
+
duration: `${Date.now() - startTime}ms`,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
function handleAuditResults(results, summary, logger) {
|
|
79
|
+
const { errors: errorCount, warnings: warningCount, success: successCount } = summary.summary;
|
|
80
|
+
if (errorCount > 0) {
|
|
81
|
+
logErrors(results, errorCount, logger);
|
|
82
|
+
process.exit(1);
|
|
83
|
+
}
|
|
84
|
+
if (warningCount > 0) {
|
|
85
|
+
logWarnings(results, warningCount, logger);
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
logger.info(`Audit successful: ${successCount} file(s) passed`);
|
|
89
|
+
}
|
|
90
|
+
process.exit(0);
|
|
91
|
+
}
|
|
92
|
+
function logErrors(results, errorCount, logger) {
|
|
93
|
+
logger.error(`Audit failed: ${errorCount} file(s) with errors`);
|
|
94
|
+
const errorResults = results.filter((r) => r.status === 'error');
|
|
95
|
+
for (const result of errorResults) {
|
|
96
|
+
logger.error(`\n${result.path}:`);
|
|
97
|
+
const errorIssues = result.issues.filter((i) => i.severity === 'error');
|
|
98
|
+
logIssues(errorIssues, logger.error.bind(logger));
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
function logWarnings(results, warningCount, logger) {
|
|
102
|
+
logger.info(`Audit passed with warnings: ${warningCount} file(s)`);
|
|
103
|
+
const warningResults = results.filter((r) => r.status === 'warning');
|
|
104
|
+
for (const result of warningResults) {
|
|
105
|
+
logger.info(`\n${result.path}:`);
|
|
106
|
+
const warningIssues = result.issues.filter((i) => i.severity === 'warning');
|
|
107
|
+
logIssues(warningIssues, logger.info.bind(logger));
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
function logIssues(issues, logFn) {
|
|
111
|
+
for (const issue of issues) {
|
|
112
|
+
logFn(` [${issue.code}] ${issue.message}`);
|
|
113
|
+
if (issue.location) {
|
|
114
|
+
logFn(` at: ${issue.location}`);
|
|
115
|
+
}
|
|
116
|
+
if (issue.fix) {
|
|
117
|
+
logFn(` fix: ${issue.fix}`);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
async function scanDirectory(dirPath, recursive, logger) {
|
|
122
|
+
const fs = await import('node:fs/promises');
|
|
123
|
+
const results = [];
|
|
124
|
+
const entries = await fs.readdir(dirPath, { withFileTypes: true });
|
|
125
|
+
for (const entry of entries) {
|
|
126
|
+
const fullPath = path.join(dirPath, entry.name);
|
|
127
|
+
if (entry.isFile() && entry.name === 'SKILL.md') {
|
|
128
|
+
logger.debug(`Validating: ${fullPath}`);
|
|
129
|
+
const result = await validateSkill({ skillPath: fullPath });
|
|
130
|
+
results.push(result);
|
|
131
|
+
}
|
|
132
|
+
else if (entry.isDirectory() && recursive) {
|
|
133
|
+
const subResults = await scanDirectory(fullPath, recursive, logger);
|
|
134
|
+
results.push(...subResults);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return results;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../../src/commands/agent/audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent build command - Package agents for deployment targets
|
|
3
|
+
*/
|
|
4
|
+
export interface BuildCommandOptions {
|
|
5
|
+
target?: string;
|
|
6
|
+
output?: string;
|
|
7
|
+
debug?: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Build an agent for a specific deployment target
|
|
11
|
+
*/
|
|
12
|
+
export declare function buildCommand(pathOrName: string, options: BuildCommandOptions): Promise<void>;
|
|
13
|
+
//# sourceMappingURL=build.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/build.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,MAAM,WAAW,mBAAmB;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,IAAI,CAAC,CA2Cf"}
|