@vibe-agent-toolkit/cli 0.1.37 → 0.1.39-rc.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 +7 -4
- package/dist/bin/vat +10 -5
- package/dist/bin/vat.js +10 -5
- package/dist/bin/vat.js.map +1 -1
- package/dist/commands/agent/build.d.ts.map +1 -1
- package/dist/commands/agent/build.js +3 -0
- package/dist/commands/agent/build.js.map +1 -1
- package/dist/commands/agent/index.d.ts.map +1 -1
- package/dist/commands/agent/index.js +25 -1
- package/dist/commands/agent/index.js.map +1 -1
- package/dist/commands/agent/run.d.ts.map +1 -1
- package/dist/commands/agent/run.js +5 -0
- package/dist/commands/agent/run.js.map +1 -1
- package/dist/commands/agent/validate.d.ts.map +1 -1
- package/dist/commands/agent/validate.js +3 -0
- package/dist/commands/agent/validate.js.map +1 -1
- package/dist/commands/audit/hierarchical-output.d.ts +2 -1
- package/dist/commands/audit/hierarchical-output.d.ts.map +1 -1
- package/dist/commands/audit/hierarchical-output.js.map +1 -1
- package/dist/commands/audit.d.ts.map +1 -1
- package/dist/commands/audit.js +20 -9
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +9 -0
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/claude/claude-config.d.ts.map +1 -1
- package/dist/commands/claude/claude-config.js +4 -2
- package/dist/commands/claude/claude-config.js.map +1 -1
- package/dist/commands/claude/marketplace/git-publish.d.ts +5 -12
- package/dist/commands/claude/marketplace/git-publish.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/git-publish.js +7 -80
- package/dist/commands/claude/marketplace/git-publish.js.map +1 -1
- package/dist/commands/claude/marketplace/publish-tree.d.ts +12 -4
- package/dist/commands/claude/marketplace/publish-tree.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/publish-tree.js +54 -24
- package/dist/commands/claude/marketplace/publish-tree.js.map +1 -1
- package/dist/commands/claude/marketplace/publish.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/publish.js +14 -39
- package/dist/commands/claude/marketplace/publish.js.map +1 -1
- package/dist/commands/claude/marketplace/validate.js.map +1 -1
- package/dist/commands/claude/plugin/install.js +2 -2
- package/dist/commands/claude/plugin/install.js.map +1 -1
- package/dist/commands/corpus/index.d.ts.map +1 -1
- package/dist/commands/corpus/index.js +6 -0
- package/dist/commands/corpus/index.js.map +1 -1
- package/dist/commands/corpus/report.js +2 -2
- package/dist/commands/corpus/report.js.map +1 -1
- package/dist/commands/corpus/runner.js +3 -3
- package/dist/commands/corpus/runner.js.map +1 -1
- package/dist/commands/corpus/scan.d.ts.map +1 -1
- package/dist/commands/corpus/scan.js +4 -0
- package/dist/commands/corpus/scan.js.map +1 -1
- package/dist/commands/corpus/seed.d.ts +24 -0
- package/dist/commands/corpus/seed.d.ts.map +1 -1
- package/dist/commands/corpus/seed.js +7 -3
- package/dist/commands/corpus/seed.js.map +1 -1
- package/dist/commands/doctor.d.ts +4 -2
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +24 -34
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/rag/command-helpers.d.ts +7 -2
- package/dist/commands/rag/command-helpers.d.ts.map +1 -1
- package/dist/commands/rag/command-helpers.js +10 -5
- package/dist/commands/rag/command-helpers.js.map +1 -1
- package/dist/commands/rag/index-command.d.ts.map +1 -1
- package/dist/commands/rag/index-command.js +11 -3
- package/dist/commands/rag/index-command.js.map +1 -1
- package/dist/commands/rag/index.d.ts.map +1 -1
- package/dist/commands/rag/index.js +24 -0
- package/dist/commands/rag/index.js.map +1 -1
- package/dist/commands/resources/index.d.ts.map +1 -1
- package/dist/commands/resources/index.js +16 -1
- package/dist/commands/resources/index.js.map +1 -1
- package/dist/commands/resources/scan.d.ts.map +1 -1
- package/dist/commands/resources/scan.js +4 -1
- package/dist/commands/resources/scan.js.map +1 -1
- package/dist/commands/resources/validate.d.ts.map +1 -1
- package/dist/commands/resources/validate.js +162 -117
- package/dist/commands/resources/validate.js.map +1 -1
- package/dist/commands/skill/review.d.ts.map +1 -1
- package/dist/commands/skill/review.js +14 -2
- package/dist/commands/skill/review.js.map +1 -1
- package/dist/commands/skills/build.d.ts.map +1 -1
- package/dist/commands/skills/build.js +12 -0
- package/dist/commands/skills/build.js.map +1 -1
- package/dist/commands/skills/index.js +6 -0
- package/dist/commands/skills/index.js.map +1 -1
- package/dist/commands/skills/package.d.ts.map +1 -1
- package/dist/commands/skills/package.js +10 -0
- package/dist/commands/skills/package.js.map +1 -1
- package/dist/commands/skills/skill-discovery.d.ts +9 -2
- package/dist/commands/skills/skill-discovery.d.ts.map +1 -1
- package/dist/commands/skills/skill-discovery.js +83 -18
- package/dist/commands/skills/skill-discovery.js.map +1 -1
- package/dist/commands/skills/validate-command.d.ts.map +1 -1
- package/dist/commands/skills/validate-command.js +6 -0
- package/dist/commands/skills/validate-command.js.map +1 -1
- package/dist/commands/skills/validate.d.ts.map +1 -1
- package/dist/commands/skills/validate.js +15 -3
- package/dist/commands/skills/validate.js.map +1 -1
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +9 -0
- package/dist/commands/verify.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +0 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/agent-discovery.d.ts.map +1 -1
- package/dist/utils/agent-discovery.js +2 -3
- package/dist/utils/agent-discovery.js.map +1 -1
- package/dist/utils/config-loader.d.ts +11 -24
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +34 -68
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/logger.d.ts +1 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +3 -0
- package/dist/utils/logger.js.map +1 -1
- package/dist/utils/output.js +3 -3
- package/dist/utils/output.js.map +1 -1
- package/dist/utils/project-root-policy.d.ts +33 -0
- package/dist/utils/project-root-policy.d.ts.map +1 -0
- package/dist/utils/project-root-policy.js +49 -0
- package/dist/utils/project-root-policy.js.map +1 -0
- package/dist/utils/resource-loader.d.ts +9 -4
- package/dist/utils/resource-loader.d.ts.map +1 -1
- package/dist/utils/resource-loader.js +24 -28
- package/dist/utils/resource-loader.js.map +1 -1
- package/dist/utils/verdict-helpers.d.ts +2 -1
- package/dist/utils/verdict-helpers.d.ts.map +1 -1
- package/dist/utils/verdict-helpers.js +1 -1
- package/dist/utils/verdict-helpers.js.map +1 -1
- package/docs/agent.md +25 -0
- package/docs/audit.md +25 -0
- package/docs/doctor.md +13 -0
- package/docs/index.md +19 -0
- package/docs/mcp.md +16 -0
- package/docs/rag.md +18 -0
- package/docs/resources.md +45 -3
- package/docs/skills.md +61 -3
- package/package.json +12 -13
- package/dist/commands/claude/marketplace/tag-utils.d.ts +0 -11
- package/dist/commands/claude/marketplace/tag-utils.d.ts.map +0 -1
- package/dist/commands/claude/marketplace/tag-utils.js +0 -17
- package/dist/commands/claude/marketplace/tag-utils.js.map +0 -1
- package/dist/utils/project-root.d.ts +0 -30
- package/dist/utils/project-root.d.ts.map +0 -1
- package/dist/utils/project-root.js +0 -59
- package/dist/utils/project-root.js.map +0 -1
package/docs/audit.md
CHANGED
|
@@ -555,6 +555,31 @@ Windows users: Use forward slashes even on Windows - they work correctly in Node
|
|
|
555
555
|
|
|
556
556
|
SKILL.md files can use any line ending (LF, CRLF) - the parser handles both.
|
|
557
557
|
|
|
558
|
+
## Requirements
|
|
559
|
+
|
|
560
|
+
`vat audit` has an unusual policy because it operates on per-skill
|
|
561
|
+
governing context rather than a single top-level `projectRoot`:
|
|
562
|
+
|
|
563
|
+
- **`projectRoot`**: per-skill walk-up. There is no single `projectRoot` for an
|
|
564
|
+
audit run. Each `SKILL.md` discovered during scanning walks up to its own
|
|
565
|
+
nearest `vibe-agent-toolkit.config.yaml`-or-`.git/` ancestor and uses that as
|
|
566
|
+
*its* `projectRoot`. Skills with no governing config or git ancestor are
|
|
567
|
+
reported as ungoverned (an audit finding, not a fatal error). This lets `vat
|
|
568
|
+
audit` work on external community trees, downloaded plugin bundles, and
|
|
569
|
+
monorepos with multiple sub-package configs.
|
|
570
|
+
- **Config**: accept defaults. Per-skill `validation.severity` and
|
|
571
|
+
`validation.allow` overrides come from whichever
|
|
572
|
+
`vibe-agent-toolkit.config.yaml` each skill walks up to. The audit itself
|
|
573
|
+
always exits 0 (advisory) regardless of severity outcomes.
|
|
574
|
+
|
|
575
|
+
The per-skill walk-up is cached via a module-level two-layer cache and pre-warmed
|
|
576
|
+
during top-down descent for efficiency on large trees.
|
|
577
|
+
|
|
578
|
+
See [Roots and Config — Canonical Concepts](../../../docs/concepts/roots-and-config.md)
|
|
579
|
+
for the `projectRoot` ladder and the audit walk-up model. See
|
|
580
|
+
[`docs/skill-quality-and-compatibility.md`](../../../docs/skill-quality-and-compatibility.md)
|
|
581
|
+
for VAT's advisory-audit stance.
|
|
582
|
+
|
|
558
583
|
## Related Commands
|
|
559
584
|
|
|
560
585
|
- `vat agent audit <path>` - Legacy skill-only audit (deprecated)
|
package/docs/doctor.md
CHANGED
|
@@ -260,6 +260,19 @@ fi
|
|
|
260
260
|
- **Skipped:** When running installed VAT globally
|
|
261
261
|
- **Fix:** Run `bun run build` in VAT source directory
|
|
262
262
|
|
|
263
|
+
## Requirements
|
|
264
|
+
|
|
265
|
+
- **`projectRoot`**: optional. `vat doctor` tolerates a missing `projectRoot`
|
|
266
|
+
and reports its absence as a diagnostic finding rather than refusing to run.
|
|
267
|
+
This is by design: doctor is the command users invoke when they suspect their
|
|
268
|
+
setup is wrong, so it must run anywhere.
|
|
269
|
+
- **Config**: not used as input. Doctor checks whether a config file *exists*
|
|
270
|
+
and parses as a finding, but it does not consume config fields to drive its
|
|
271
|
+
behavior.
|
|
272
|
+
|
|
273
|
+
See [Roots and Config — Canonical Concepts](../../../docs/concepts/roots-and-config.md)
|
|
274
|
+
for terminology.
|
|
275
|
+
|
|
263
276
|
## Tips
|
|
264
277
|
|
|
265
278
|
- Run `vat doctor` before reporting issues to verify environment
|
package/docs/index.md
CHANGED
|
@@ -332,6 +332,25 @@ The `vat` wrapper automatically detects your execution context:
|
|
|
332
332
|
When running global `vat` from within the toolkit repository, it automatically
|
|
333
333
|
switches to dev mode and shows the `-dev` suffix.
|
|
334
334
|
|
|
335
|
+
## Requirements
|
|
336
|
+
|
|
337
|
+
Every VAT command declares a `projectRoot` policy and a config policy. The
|
|
338
|
+
short version:
|
|
339
|
+
|
|
340
|
+
- **`projectRoot` = the VAT authoring boundary.** Discovered as: nearest
|
|
341
|
+
`vibe-agent-toolkit.config.yaml` → else nearest `.git/` → else `null`.
|
|
342
|
+
- **Per-command policy varies.** Some commands require it (`vat skills build`,
|
|
343
|
+
`vat agent build`, `vat build`, `vat verify`). Some tolerate its absence
|
|
344
|
+
(`vat skills validate --user`, `vat agent list`, `vat rag *` with `--db`).
|
|
345
|
+
Some have a **loud-cwd fallback** that warns to stderr and continues
|
|
346
|
+
(`vat resources scan`, `vat resources validate`).
|
|
347
|
+
- **`vat audit` is special:** there is no single `projectRoot`; each scanned
|
|
348
|
+
skill walks up to its own governing context.
|
|
349
|
+
|
|
350
|
+
Every command's `--help` output includes a `Requirements:` section declaring
|
|
351
|
+
its policy. The full matrix and rationale live in
|
|
352
|
+
[Roots and Config — Canonical Concepts](../../../docs/concepts/roots-and-config.md).
|
|
353
|
+
|
|
335
354
|
## Configuration
|
|
336
355
|
|
|
337
356
|
Place `vibe-agent-toolkit.config.yaml` at project root:
|
package/docs/mcp.md
CHANGED
|
@@ -310,6 +310,22 @@ All implementations must:
|
|
|
310
310
|
|
|
311
311
|
See [MCP Gateway README](../../gateway-mcp/README.md) for planned features.
|
|
312
312
|
|
|
313
|
+
## Requirements
|
|
314
|
+
|
|
315
|
+
Both MCP subcommands run as server / discovery operations and do not consume a
|
|
316
|
+
VAT authoring context:
|
|
317
|
+
|
|
318
|
+
- **`vat mcp list-collections`**
|
|
319
|
+
- **`projectRoot`**: N/A.
|
|
320
|
+
- **Config**: not used.
|
|
321
|
+
- **`vat mcp serve <package>`**
|
|
322
|
+
- **`projectRoot`**: N/A. The server resolves `<package>` from `node_modules`
|
|
323
|
+
or an explicit path; project context is not needed.
|
|
324
|
+
- **Config**: not used.
|
|
325
|
+
|
|
326
|
+
See [Roots and Config — Canonical Concepts](../../../docs/concepts/roots-and-config.md)
|
|
327
|
+
for terminology.
|
|
328
|
+
|
|
313
329
|
## See Also
|
|
314
330
|
|
|
315
331
|
- [MCP Gateway README](../../gateway-mcp/README.md)
|
package/docs/rag.md
CHANGED
|
@@ -441,6 +441,24 @@ vat rag index docs/
|
|
|
441
441
|
2. Query too broad/vague → Be more specific
|
|
442
442
|
3. Chunk boundaries split relevant content → Adjust chunk size (future feature)
|
|
443
443
|
|
|
444
|
+
## Requirements
|
|
445
|
+
|
|
446
|
+
| Subcommand | `projectRoot` | Config |
|
|
447
|
+
|---|---|---|
|
|
448
|
+
| `vat rag index [path]` | optional (tolerates absence — `--db` supplies the path directly) | required fields (`rag.*`) when `--db` is not supplied; otherwise unused |
|
|
449
|
+
| `vat rag query <text>` | optional (`--db` overrides) | required file with `rag.*` for default db lookup |
|
|
450
|
+
| `vat rag stats` | optional (`--db` overrides) | required file with `rag.*` for default db lookup |
|
|
451
|
+
| `vat rag clear` | optional (`--db` overrides) | required file with `rag.*` for default db lookup |
|
|
452
|
+
|
|
453
|
+
RAG commands are unusual: they tolerate a missing `projectRoot` because the
|
|
454
|
+
caller can always specify `--db <path>` explicitly. But when `--db` is omitted,
|
|
455
|
+
VAT needs `rag.*` config fields to locate the configured store. The two
|
|
456
|
+
mechanisms are complementary — `--db` is for one-off use, `rag.*` config is for
|
|
457
|
+
project-default behavior.
|
|
458
|
+
|
|
459
|
+
See [Roots and Config — Canonical Concepts](../../../docs/concepts/roots-and-config.md)
|
|
460
|
+
for terminology.
|
|
461
|
+
|
|
444
462
|
## More Information
|
|
445
463
|
|
|
446
464
|
- **GitHub:** https://github.com/jdutton/vibe-agent-toolkit
|
package/docs/resources.md
CHANGED
|
@@ -53,6 +53,20 @@ vat resources scan docs/
|
|
|
53
53
|
# ---
|
|
54
54
|
```
|
|
55
55
|
|
|
56
|
+
**Requirements:**
|
|
57
|
+
|
|
58
|
+
- **`projectRoot`**: optional with **loud-cwd fallback**. When invoked with an
|
|
59
|
+
explicit `[path]`, that path is the effective base. Without a path, VAT walks
|
|
60
|
+
up from `cwd` for `vibe-agent-toolkit.config.yaml` then `.git/`; if neither is
|
|
61
|
+
found, the command falls back to `cwd` and emits a single stderr warning
|
|
62
|
+
identifying the fallback. The scan still completes — the warning is the
|
|
63
|
+
contract that prevents silent surprise.
|
|
64
|
+
- **Config**: optional. Uses built-in include/exclude defaults if no config file
|
|
65
|
+
is present.
|
|
66
|
+
|
|
67
|
+
See [Roots and Config — Canonical Concepts](../../../docs/concepts/roots-and-config.md)
|
|
68
|
+
for the loud-cwd fallback policy and the projectRoot discovery ladder.
|
|
69
|
+
|
|
56
70
|
### vat resources validate [path]
|
|
57
71
|
|
|
58
72
|
**Purpose:** Validate markdown resources with strict error reporting
|
|
@@ -121,6 +135,30 @@ vat resources validate docs/
|
|
|
121
135
|
# ---
|
|
122
136
|
```
|
|
123
137
|
|
|
138
|
+
**Requirements:**
|
|
139
|
+
|
|
140
|
+
- **`projectRoot`**: optional with **loud-cwd fallback**. With an explicit
|
|
141
|
+
`[path]` the path is used as the base directory; without it VAT walks for a
|
|
142
|
+
`vibe-agent-toolkit.config.yaml` then `.git/` ancestor, and falls back to
|
|
143
|
+
`cwd` with a stderr warning if neither is found.
|
|
144
|
+
- **Config**: optional. Defaults are applied when no config file is present;
|
|
145
|
+
`--frontmatter-schema` is independent of config.
|
|
146
|
+
|
|
147
|
+
**Leading-`/` URI-reference resolution.** Markdown body links and frontmatter
|
|
148
|
+
URI-references whose path component starts with `/` (e.g.
|
|
149
|
+
`[See](/docs/foo.md)`, `parent_spec: /docs/foo.md`) are RFC 3986 §4.2
|
|
150
|
+
absolute-path references and are resolved against the discovered `projectRoot`.
|
|
151
|
+
Once cwd-fallback has fired, the effective `projectRoot` is `cwd` and leading-`/`
|
|
152
|
+
links resolve against `cwd` — consistent with the loud-cwd contract. The
|
|
153
|
+
`absolute_no_root` failure mode fires only when `projectRoot` is genuinely
|
|
154
|
+
undefined (e.g. a programmatic embedder that did not supply one); leading-`/`
|
|
155
|
+
links that escape `projectRoot` via path traversal surface as
|
|
156
|
+
`absolute_escapes_root`. Both surface as `broken_file` issues.
|
|
157
|
+
|
|
158
|
+
See [Roots and Config — Canonical Concepts](../../../docs/concepts/roots-and-config.md)
|
|
159
|
+
for the projectRoot ladder, the loud-cwd fallback policy, and the rationale
|
|
160
|
+
behind RFC-3986-compliant leading-`/` resolution.
|
|
161
|
+
|
|
124
162
|
## Configuration
|
|
125
163
|
|
|
126
164
|
Place `vibe-agent-toolkit.config.yaml` at project root:
|
|
@@ -134,10 +172,14 @@ resources:
|
|
|
134
172
|
exclude:
|
|
135
173
|
- "node_modules/**"
|
|
136
174
|
- "**/test/fixtures/**"
|
|
175
|
+
# Optional: per-code severity overrides (keys are validation codes,
|
|
176
|
+
# values are error | warning | info | ignore). External-URL findings
|
|
177
|
+
# default to `warning` (non-fatal), so a dead external link won't fail
|
|
178
|
+
# the build unless you raise its severity here.
|
|
137
179
|
validation:
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
180
|
+
severity:
|
|
181
|
+
EXTERNAL_URL_DEAD: ignore # don't fail the build on dead external links
|
|
182
|
+
FRONTMATTER_SCHEMA_ERROR: error
|
|
141
183
|
```
|
|
142
184
|
|
|
143
185
|
## Integration with vibe-validate
|
package/docs/skills.md
CHANGED
|
@@ -128,6 +128,19 @@ vat skills validate --user
|
|
|
128
128
|
vat skills validate packages/my-agent/resources/skills
|
|
129
129
|
```
|
|
130
130
|
|
|
131
|
+
**Requirements:**
|
|
132
|
+
|
|
133
|
+
- **`projectRoot`**: required. `vat skills validate` refuses to run if no
|
|
134
|
+
`vibe-agent-toolkit.config.yaml` or `.git/` ancestor is found. Source-mode
|
|
135
|
+
validation always runs against a real authoring boundary.
|
|
136
|
+
- **Config**: optional. Falls back to built-in defaults if no config file is
|
|
137
|
+
present, but a `projectRoot` is still required to anchor link resolution and
|
|
138
|
+
the gitignore-safety gate.
|
|
139
|
+
|
|
140
|
+
See [Roots and Config — Canonical Concepts](../../../docs/concepts/roots-and-config.md)
|
|
141
|
+
for the discovery ladder, the loud-cwd fallback policy, and the CLI-boundary
|
|
142
|
+
discovery rule that this command participates in.
|
|
143
|
+
|
|
131
144
|
---
|
|
132
145
|
|
|
133
146
|
### vat skills build
|
|
@@ -203,6 +216,18 @@ vat skills build --skill my-skill
|
|
|
203
216
|
vat skills build --dry-run
|
|
204
217
|
```
|
|
205
218
|
|
|
219
|
+
**Requirements:**
|
|
220
|
+
|
|
221
|
+
- **`projectRoot`**: required. `vat skills build` refuses to run if no
|
|
222
|
+
`vibe-agent-toolkit.config.yaml` or `.git/` ancestor is found. This guards
|
|
223
|
+
against accidental builds outside a VAT project.
|
|
224
|
+
- **Config**: required file with `skills.*` fields populated. The build
|
|
225
|
+
pipeline reads `skills.discovery` and `skills.config.*` directly — there are
|
|
226
|
+
no useful defaults for these.
|
|
227
|
+
|
|
228
|
+
See [Roots and Config — Canonical Concepts](../../../docs/concepts/roots-and-config.md)
|
|
229
|
+
for terminology.
|
|
230
|
+
|
|
206
231
|
---
|
|
207
232
|
|
|
208
233
|
### vat skills package <skill-path>
|
|
@@ -270,6 +295,18 @@ vat skills package SKILL.md -o dist --no-rewrite-links
|
|
|
270
295
|
vat skills package SKILL.md -o dist -b /custom/base
|
|
271
296
|
```
|
|
272
297
|
|
|
298
|
+
**Requirements:**
|
|
299
|
+
|
|
300
|
+
- **`projectRoot`**: required. Packaging is an explicit-adoption operation and
|
|
301
|
+
is refused outside a discovered VAT project (no `vibe-agent-toolkit.config.yaml`
|
|
302
|
+
or `.git/` ancestor).
|
|
303
|
+
- **Config**: required file with `skills.*` fields populated. Per-skill packaging
|
|
304
|
+
options (`skills.config.<name>`) drive link rewriting, bundle inclusion, and
|
|
305
|
+
validation overrides.
|
|
306
|
+
|
|
307
|
+
See [Roots and Config — Canonical Concepts](../../../docs/concepts/roots-and-config.md)
|
|
308
|
+
for terminology.
|
|
309
|
+
|
|
273
310
|
---
|
|
274
311
|
|
|
275
312
|
### vat skills install \<source\>
|
|
@@ -378,7 +415,17 @@ vat skills install ./dist/skills/my-skill --target claude --scope project
|
|
|
378
415
|
**Post-Installation:**
|
|
379
416
|
After installation, you need to:
|
|
380
417
|
1. Restart Claude Code (or the target agent), or
|
|
381
|
-
2. Run `/reload-
|
|
418
|
+
2. Run `/reload-plugins` in Claude Code to load the new skill
|
|
419
|
+
|
|
420
|
+
**Requirements:**
|
|
421
|
+
|
|
422
|
+
- **`projectRoot`**: N/A. `vat skills install` is a user-level operation that
|
|
423
|
+
installs into platform target directories (`~/.claude/skills/`,
|
|
424
|
+
`.claude/skills/`, etc.) regardless of where it is invoked.
|
|
425
|
+
- **Config**: not used.
|
|
426
|
+
|
|
427
|
+
See [Roots and Config — Canonical Concepts](../../../docs/concepts/roots-and-config.md)
|
|
428
|
+
for terminology.
|
|
382
429
|
|
|
383
430
|
---
|
|
384
431
|
|
|
@@ -453,6 +500,17 @@ vat skills list packages/my-agent
|
|
|
453
500
|
vat skills list --verbose
|
|
454
501
|
```
|
|
455
502
|
|
|
503
|
+
**Requirements:**
|
|
504
|
+
|
|
505
|
+
- **`projectRoot`**: optional. `vat skills list` tolerates a missing
|
|
506
|
+
`projectRoot`. With `--user` it scans user installation directories directly
|
|
507
|
+
and skips project-root discovery entirely.
|
|
508
|
+
- **Config**: optional. Project mode honors config-defined include/exclude
|
|
509
|
+
patterns when present; defaults are used otherwise.
|
|
510
|
+
|
|
511
|
+
See [Roots and Config — Canonical Concepts](../../../docs/concepts/roots-and-config.md)
|
|
512
|
+
for terminology.
|
|
513
|
+
|
|
456
514
|
---
|
|
457
515
|
|
|
458
516
|
## Distribution Workflow
|
|
@@ -580,7 +638,7 @@ User: /my-skill
|
|
|
580
638
|
- Use `--dry-run` to preview what will be installed before committing
|
|
581
639
|
- Use `--force` flag carefully (overwrites existing skills)
|
|
582
640
|
- Verify installation: `vat skills list --user`
|
|
583
|
-
- Remember to restart the target agent or run `/reload-
|
|
641
|
+
- Remember to restart the target agent or run `/reload-plugins` in Claude Code
|
|
584
642
|
|
|
585
643
|
---
|
|
586
644
|
|
|
@@ -660,7 +718,7 @@ name: my-help # Instead of "help"
|
|
|
660
718
|
**Solution:**
|
|
661
719
|
1. Verify installation: `vat skills list --user`
|
|
662
720
|
2. Check location: Should be in `~/.claude/skills/` not `~/.claude/plugins/`
|
|
663
|
-
3. Restart Claude Code or run `/reload-
|
|
721
|
+
3. Restart Claude Code or run `/reload-plugins`
|
|
664
722
|
|
|
665
723
|
### "Windows-style backslashes"
|
|
666
724
|
**Problem:** Links use backslashes: `resources\SKILL.md`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vibe-agent-toolkit/cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.39-rc.1",
|
|
4
4
|
"description": "Command-line interface for vibe-agent-toolkit",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -41,27 +41,26 @@
|
|
|
41
41
|
"//dependencies-note": "DO NOT add example agent packages or adopter packages here. Adopter packages (like vat-development-agents) depend on the CLI binary at build time — declaring them as deps creates a circular build dependency. They are built in a second turbo pass via package#task overrides in turbo.json.",
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@anthropic-ai/sdk": "^0.71.2",
|
|
44
|
-
"@vibe-agent-toolkit/agent-config": "0.1.
|
|
45
|
-
"@vibe-agent-toolkit/agent-schema": "0.1.
|
|
46
|
-
"@vibe-agent-toolkit/agent-skills": "0.1.
|
|
47
|
-
"@vibe-agent-toolkit/claude-marketplace": "0.1.
|
|
48
|
-
"@vibe-agent-toolkit/discovery": "0.1.
|
|
49
|
-
"@vibe-agent-toolkit/gateway-mcp": "0.1.
|
|
50
|
-
"@vibe-agent-toolkit/rag": "0.1.
|
|
51
|
-
"@vibe-agent-toolkit/rag-lancedb": "0.1.
|
|
52
|
-
"@vibe-agent-toolkit/resources": "0.1.
|
|
53
|
-
"@vibe-agent-toolkit/utils": "0.1.
|
|
44
|
+
"@vibe-agent-toolkit/agent-config": "0.1.39-rc.1",
|
|
45
|
+
"@vibe-agent-toolkit/agent-schema": "0.1.39-rc.1",
|
|
46
|
+
"@vibe-agent-toolkit/agent-skills": "0.1.39-rc.1",
|
|
47
|
+
"@vibe-agent-toolkit/claude-marketplace": "0.1.39-rc.1",
|
|
48
|
+
"@vibe-agent-toolkit/discovery": "0.1.39-rc.1",
|
|
49
|
+
"@vibe-agent-toolkit/gateway-mcp": "0.1.39-rc.1",
|
|
50
|
+
"@vibe-agent-toolkit/rag": "0.1.39-rc.1",
|
|
51
|
+
"@vibe-agent-toolkit/rag-lancedb": "0.1.39-rc.1",
|
|
52
|
+
"@vibe-agent-toolkit/resources": "0.1.39-rc.1",
|
|
53
|
+
"@vibe-agent-toolkit/utils": "0.1.39-rc.1",
|
|
54
54
|
"adm-zip": "^0.5.16",
|
|
55
55
|
"commander": "^12.1.0",
|
|
56
|
-
"js-yaml": "^4.1.0",
|
|
57
56
|
"picomatch": "^4.0.3",
|
|
58
57
|
"semver": "^7.7.3",
|
|
59
58
|
"tar": "^7.5.7",
|
|
59
|
+
"yaml": "^2.6.1",
|
|
60
60
|
"zod": "^3.24.1"
|
|
61
61
|
},
|
|
62
62
|
"devDependencies": {
|
|
63
63
|
"@types/adm-zip": "^0.5.7",
|
|
64
|
-
"@types/js-yaml": "^4.0.9",
|
|
65
64
|
"@types/node": "^22.10.5",
|
|
66
65
|
"@types/picomatch": "^4.0.2",
|
|
67
66
|
"@types/semver": "^7.7.1",
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Format a per-plugin source-repo tag name for the multi-plugin marketplace
|
|
3
|
-
* publish flow.
|
|
4
|
-
*
|
|
5
|
-
* Plugin-name validation (`/^[a-z0-9][a-z0-9-]*$/`) is enforced upstream by
|
|
6
|
-
* `ClaudeMarketplacePluginEntrySchema`; semver validation is enforced upstream
|
|
7
|
-
* by the schema's `version` refine. This formatter only enforces non-empty
|
|
8
|
-
* inputs.
|
|
9
|
-
*/
|
|
10
|
-
export declare function pluginTagName(name: string, version: string): string;
|
|
11
|
-
//# sourceMappingURL=tag-utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tag-utils.d.ts","sourceRoot":"","sources":["../../../../src/commands/claude/marketplace/tag-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAInE"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Format a per-plugin source-repo tag name for the multi-plugin marketplace
|
|
3
|
-
* publish flow.
|
|
4
|
-
*
|
|
5
|
-
* Plugin-name validation (`/^[a-z0-9][a-z0-9-]*$/`) is enforced upstream by
|
|
6
|
-
* `ClaudeMarketplacePluginEntrySchema`; semver validation is enforced upstream
|
|
7
|
-
* by the schema's `version` refine. This formatter only enforces non-empty
|
|
8
|
-
* inputs.
|
|
9
|
-
*/
|
|
10
|
-
export function pluginTagName(name, version) {
|
|
11
|
-
if (!name)
|
|
12
|
-
throw new Error('Plugin name is required for tag naming');
|
|
13
|
-
if (!version)
|
|
14
|
-
throw new Error('Version is required for tag naming');
|
|
15
|
-
return `${name}-v${version}`;
|
|
16
|
-
}
|
|
17
|
-
//# sourceMappingURL=tag-utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tag-utils.js","sourceRoot":"","sources":["../../../../src/commands/claude/marketplace/tag-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY,EAAE,OAAe;IACzD,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACrE,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACpE,OAAO,GAAG,IAAI,KAAK,OAAO,EAAE,CAAC;AAC/B,CAAC"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Project root detection utility
|
|
3
|
-
* Walks up directory tree to find .git or vibe-agent-toolkit.config.yaml
|
|
4
|
-
*
|
|
5
|
-
* Environment Variables:
|
|
6
|
-
* - VAT_TEST_ROOT: Override project root for testing (bypasses detection)
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* Find project root by walking up directory tree
|
|
10
|
-
*
|
|
11
|
-
* @param startDir - Directory to start search from
|
|
12
|
-
* @returns Project root path or null if not found
|
|
13
|
-
*
|
|
14
|
-
* @remarks
|
|
15
|
-
* Can be overridden with VAT_TEST_ROOT environment variable for testing.
|
|
16
|
-
* This allows tests to specify an exact project root without relying on
|
|
17
|
-
* directory structure (.git or config file presence).
|
|
18
|
-
*
|
|
19
|
-
* @example
|
|
20
|
-
* ```typescript
|
|
21
|
-
* // Normal usage
|
|
22
|
-
* const root = findProjectRoot(process.cwd());
|
|
23
|
-
*
|
|
24
|
-
* // Test usage with override
|
|
25
|
-
* process.env.VAT_TEST_ROOT = '/path/to/test/fixtures';
|
|
26
|
-
* const root = findProjectRoot(process.cwd()); // Returns /path/to/test/fixtures
|
|
27
|
-
* ```
|
|
28
|
-
*/
|
|
29
|
-
export declare function findProjectRoot(startDir: string): string | null;
|
|
30
|
-
//# sourceMappingURL=project-root.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"project-root.d.ts","sourceRoot":"","sources":["../../src/utils/project-root.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAOH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CA+B/D"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Project root detection utility
|
|
3
|
-
* Walks up directory tree to find .git or vibe-agent-toolkit.config.yaml
|
|
4
|
-
*
|
|
5
|
-
* Environment Variables:
|
|
6
|
-
* - VAT_TEST_ROOT: Override project root for testing (bypasses detection)
|
|
7
|
-
*/
|
|
8
|
-
import * as fs from 'node:fs';
|
|
9
|
-
import * as path from 'node:path';
|
|
10
|
-
import { safePath } from '@vibe-agent-toolkit/utils';
|
|
11
|
-
/**
|
|
12
|
-
* Find project root by walking up directory tree
|
|
13
|
-
*
|
|
14
|
-
* @param startDir - Directory to start search from
|
|
15
|
-
* @returns Project root path or null if not found
|
|
16
|
-
*
|
|
17
|
-
* @remarks
|
|
18
|
-
* Can be overridden with VAT_TEST_ROOT environment variable for testing.
|
|
19
|
-
* This allows tests to specify an exact project root without relying on
|
|
20
|
-
* directory structure (.git or config file presence).
|
|
21
|
-
*
|
|
22
|
-
* @example
|
|
23
|
-
* ```typescript
|
|
24
|
-
* // Normal usage
|
|
25
|
-
* const root = findProjectRoot(process.cwd());
|
|
26
|
-
*
|
|
27
|
-
* // Test usage with override
|
|
28
|
-
* process.env.VAT_TEST_ROOT = '/path/to/test/fixtures';
|
|
29
|
-
* const root = findProjectRoot(process.cwd()); // Returns /path/to/test/fixtures
|
|
30
|
-
* ```
|
|
31
|
-
*/
|
|
32
|
-
export function findProjectRoot(startDir) {
|
|
33
|
-
// Override for testing: VAT_TEST_ROOT bypasses detection
|
|
34
|
-
if (process.env['VAT_TEST_ROOT']) {
|
|
35
|
-
return process.env['VAT_TEST_ROOT'];
|
|
36
|
-
}
|
|
37
|
-
let current = safePath.resolve(startDir);
|
|
38
|
-
const root = path.parse(current).root;
|
|
39
|
-
while (current !== root) {
|
|
40
|
-
// Check for .git directory
|
|
41
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- path walking is intentional
|
|
42
|
-
if (fs.existsSync(safePath.join(current, '.git'))) {
|
|
43
|
-
return current;
|
|
44
|
-
}
|
|
45
|
-
// Check for config file
|
|
46
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- path walking is intentional
|
|
47
|
-
if (fs.existsSync(safePath.join(current, 'vibe-agent-toolkit.config.yaml'))) {
|
|
48
|
-
return current;
|
|
49
|
-
}
|
|
50
|
-
// Move up one directory
|
|
51
|
-
const parent = path.dirname(current);
|
|
52
|
-
if (parent === current) {
|
|
53
|
-
break; // Reached root
|
|
54
|
-
}
|
|
55
|
-
current = parent;
|
|
56
|
-
}
|
|
57
|
-
return null;
|
|
58
|
-
}
|
|
59
|
-
//# sourceMappingURL=project-root.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"project-root.js","sourceRoot":"","sources":["../../src/utils/project-root.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,eAAe,CAAC,QAAgB;IAC9C,yDAAyD;IACzD,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC;IAEtC,OAAO,OAAO,KAAK,IAAI,EAAE,CAAC;QACxB,2BAA2B;QAC3B,kGAAkG;QAClG,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC;YAClD,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,wBAAwB;QACxB,kGAAkG;QAClG,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,gCAAgC,CAAC,CAAC,EAAE,CAAC;YAC5E,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,wBAAwB;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACrC,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,MAAM,CAAC,eAAe;QACxB,CAAC;QACD,OAAO,GAAG,MAAM,CAAC;IACnB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|