@vibe-agent-toolkit/cli 0.1.41-rc.7 → 0.1.41

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.
Files changed (185) hide show
  1. package/dist/bin/vat +24 -1
  2. package/dist/bin/vat.js +24 -1
  3. package/dist/bin/vat.js.map +1 -1
  4. package/dist/bin.js +23 -2
  5. package/dist/bin.js.map +1 -1
  6. package/dist/commands/agent/list.d.ts +11 -0
  7. package/dist/commands/agent/list.d.ts.map +1 -1
  8. package/dist/commands/agent/list.js +30 -11
  9. package/dist/commands/agent/list.js.map +1 -1
  10. package/dist/commands/audit/distributed-tree.d.ts +172 -0
  11. package/dist/commands/audit/distributed-tree.d.ts.map +1 -0
  12. package/dist/commands/audit/distributed-tree.js +319 -0
  13. package/dist/commands/audit/distributed-tree.js.map +1 -0
  14. package/dist/commands/audit.d.ts +69 -1
  15. package/dist/commands/audit.d.ts.map +1 -1
  16. package/dist/commands/audit.js +525 -174
  17. package/dist/commands/audit.js.map +1 -1
  18. package/dist/commands/build.d.ts +14 -0
  19. package/dist/commands/build.d.ts.map +1 -1
  20. package/dist/commands/build.js +103 -26
  21. package/dist/commands/build.js.map +1 -1
  22. package/dist/commands/claude/marketplace/git-publish.d.ts.map +1 -1
  23. package/dist/commands/claude/marketplace/git-publish.js +21 -3
  24. package/dist/commands/claude/marketplace/git-publish.js.map +1 -1
  25. package/dist/commands/claude/marketplace/validate.d.ts +125 -0
  26. package/dist/commands/claude/marketplace/validate.d.ts.map +1 -1
  27. package/dist/commands/claude/marketplace/validate.js +251 -44
  28. package/dist/commands/claude/marketplace/validate.js.map +1 -1
  29. package/dist/commands/claude/org/stubs.d.ts +9 -1
  30. package/dist/commands/claude/org/stubs.d.ts.map +1 -1
  31. package/dist/commands/claude/org/stubs.js +11 -3
  32. package/dist/commands/claude/org/stubs.js.map +1 -1
  33. package/dist/commands/claude/plugin/build.d.ts +34 -4
  34. package/dist/commands/claude/plugin/build.d.ts.map +1 -1
  35. package/dist/commands/claude/plugin/build.js +187 -16
  36. package/dist/commands/claude/plugin/build.js.map +1 -1
  37. package/dist/commands/claude/plugin/plugin-files.d.ts.map +1 -1
  38. package/dist/commands/claude/plugin/plugin-files.js +6 -2
  39. package/dist/commands/claude/plugin/plugin-files.js.map +1 -1
  40. package/dist/commands/claude/plugin/plugin-json-merge.d.ts.map +1 -1
  41. package/dist/commands/claude/plugin/plugin-json-merge.js +15 -0
  42. package/dist/commands/claude/plugin/plugin-json-merge.js.map +1 -1
  43. package/dist/commands/claude/plugin/tree-copy.d.ts +40 -0
  44. package/dist/commands/claude/plugin/tree-copy.d.ts.map +1 -1
  45. package/dist/commands/claude/plugin/tree-copy.js +100 -4
  46. package/dist/commands/claude/plugin/tree-copy.js.map +1 -1
  47. package/dist/commands/corpus/report.d.ts +22 -4
  48. package/dist/commands/corpus/report.d.ts.map +1 -1
  49. package/dist/commands/corpus/report.js +1 -0
  50. package/dist/commands/corpus/report.js.map +1 -1
  51. package/dist/commands/corpus/runner.d.ts +16 -1
  52. package/dist/commands/corpus/runner.d.ts.map +1 -1
  53. package/dist/commands/corpus/runner.js +40 -22
  54. package/dist/commands/corpus/runner.js.map +1 -1
  55. package/dist/commands/doctor.js +1 -1
  56. package/dist/commands/doctor.js.map +1 -1
  57. package/dist/commands/inventory.d.ts +2 -0
  58. package/dist/commands/inventory.d.ts.map +1 -1
  59. package/dist/commands/inventory.js +45 -4
  60. package/dist/commands/inventory.js.map +1 -1
  61. package/dist/commands/phase-utils.d.ts +183 -14
  62. package/dist/commands/phase-utils.d.ts.map +1 -1
  63. package/dist/commands/phase-utils.js +294 -29
  64. package/dist/commands/phase-utils.js.map +1 -1
  65. package/dist/commands/positional-args.d.ts +36 -0
  66. package/dist/commands/positional-args.d.ts.map +1 -0
  67. package/dist/commands/positional-args.js +52 -0
  68. package/dist/commands/positional-args.js.map +1 -0
  69. package/dist/commands/rag/query-command.d.ts +40 -0
  70. package/dist/commands/rag/query-command.d.ts.map +1 -1
  71. package/dist/commands/rag/query-command.js +47 -20
  72. package/dist/commands/rag/query-command.js.map +1 -1
  73. package/dist/commands/resources/index.d.ts.map +1 -1
  74. package/dist/commands/resources/index.js +27 -9
  75. package/dist/commands/resources/index.js.map +1 -1
  76. package/dist/commands/resources/scan.d.ts +37 -0
  77. package/dist/commands/resources/scan.d.ts.map +1 -1
  78. package/dist/commands/resources/scan.js +47 -32
  79. package/dist/commands/resources/scan.js.map +1 -1
  80. package/dist/commands/resources/validate.d.ts +136 -1
  81. package/dist/commands/resources/validate.d.ts.map +1 -1
  82. package/dist/commands/resources/validate.js +105 -66
  83. package/dist/commands/resources/validate.js.map +1 -1
  84. package/dist/commands/skill/review-checklist.d.ts.map +1 -1
  85. package/dist/commands/skill/review-checklist.js +5 -0
  86. package/dist/commands/skill/review-checklist.js.map +1 -1
  87. package/dist/commands/skill/review.d.ts.map +1 -1
  88. package/dist/commands/skill/review.js +7 -3
  89. package/dist/commands/skill/review.js.map +1 -1
  90. package/dist/commands/skill/test/run.d.ts +1 -1
  91. package/dist/commands/skill/test/run.d.ts.map +1 -1
  92. package/dist/commands/skill/test/run.js +8 -6
  93. package/dist/commands/skill/test/run.js.map +1 -1
  94. package/dist/commands/skills/build.d.ts +349 -11
  95. package/dist/commands/skills/build.d.ts.map +1 -1
  96. package/dist/commands/skills/build.js +901 -97
  97. package/dist/commands/skills/build.js.map +1 -1
  98. package/dist/commands/skills/command-helpers.d.ts +6 -10
  99. package/dist/commands/skills/command-helpers.d.ts.map +1 -1
  100. package/dist/commands/skills/command-helpers.js +6 -22
  101. package/dist/commands/skills/command-helpers.js.map +1 -1
  102. package/dist/commands/skills/list.d.ts +18 -0
  103. package/dist/commands/skills/list.d.ts.map +1 -1
  104. package/dist/commands/skills/list.js +41 -15
  105. package/dist/commands/skills/list.js.map +1 -1
  106. package/dist/commands/skills/package.d.ts +15 -0
  107. package/dist/commands/skills/package.d.ts.map +1 -1
  108. package/dist/commands/skills/package.js +30 -20
  109. package/dist/commands/skills/package.js.map +1 -1
  110. package/dist/commands/skills/scope-guard.d.ts +64 -0
  111. package/dist/commands/skills/scope-guard.d.ts.map +1 -0
  112. package/dist/commands/skills/scope-guard.js +86 -0
  113. package/dist/commands/skills/scope-guard.js.map +1 -0
  114. package/dist/commands/skills/validate-command.d.ts.map +1 -1
  115. package/dist/commands/skills/validate-command.js +41 -7
  116. package/dist/commands/skills/validate-command.js.map +1 -1
  117. package/dist/commands/skills/validate.d.ts +44 -3
  118. package/dist/commands/skills/validate.d.ts.map +1 -1
  119. package/dist/commands/skills/validate.js +217 -53
  120. package/dist/commands/skills/validate.js.map +1 -1
  121. package/dist/commands/validate.d.ts +18 -0
  122. package/dist/commands/validate.d.ts.map +1 -1
  123. package/dist/commands/validate.js +89 -68
  124. package/dist/commands/validate.js.map +1 -1
  125. package/dist/commands/verify.d.ts +113 -6
  126. package/dist/commands/verify.d.ts.map +1 -1
  127. package/dist/commands/verify.js +440 -123
  128. package/dist/commands/verify.js.map +1 -1
  129. package/dist/index.d.ts +1 -1
  130. package/dist/index.d.ts.map +1 -1
  131. package/dist/index.js +7 -1
  132. package/dist/index.js.map +1 -1
  133. package/dist/skill-resolution/index.d.ts +1 -1
  134. package/dist/skill-resolution/index.d.ts.map +1 -1
  135. package/dist/skill-resolution/index.js +1 -1
  136. package/dist/skill-resolution/index.js.map +1 -1
  137. package/dist/skill-resolution/packaging-config.d.ts +15 -2
  138. package/dist/skill-resolution/packaging-config.d.ts.map +1 -1
  139. package/dist/skill-resolution/packaging-config.js +39 -2
  140. package/dist/skill-resolution/packaging-config.js.map +1 -1
  141. package/dist/utils/command-error.d.ts +34 -1
  142. package/dist/utils/command-error.d.ts.map +1 -1
  143. package/dist/utils/command-error.js +32 -1
  144. package/dist/utils/command-error.js.map +1 -1
  145. package/dist/utils/help-loader.d.ts +6 -2
  146. package/dist/utils/help-loader.d.ts.map +1 -1
  147. package/dist/utils/help-loader.js +9 -16
  148. package/dist/utils/help-loader.js.map +1 -1
  149. package/dist/utils/issue-rendering.d.ts +130 -0
  150. package/dist/utils/issue-rendering.d.ts.map +1 -1
  151. package/dist/utils/issue-rendering.js +147 -0
  152. package/dist/utils/issue-rendering.js.map +1 -1
  153. package/dist/utils/issue-severity.d.ts +51 -0
  154. package/dist/utils/issue-severity.d.ts.map +1 -0
  155. package/dist/utils/issue-severity.js +63 -0
  156. package/dist/utils/issue-severity.js.map +1 -0
  157. package/dist/utils/output.d.ts +54 -5
  158. package/dist/utils/output.d.ts.map +1 -1
  159. package/dist/utils/output.js +111 -17
  160. package/dist/utils/output.js.map +1 -1
  161. package/dist/utils/relativize-paths.d.ts +45 -0
  162. package/dist/utils/relativize-paths.d.ts.map +1 -0
  163. package/dist/utils/relativize-paths.js +67 -0
  164. package/dist/utils/relativize-paths.js.map +1 -0
  165. package/dist/utils/resource-loader.d.ts +21 -2
  166. package/dist/utils/resource-loader.d.ts.map +1 -1
  167. package/dist/utils/resource-loader.js +85 -11
  168. package/dist/utils/resource-loader.js.map +1 -1
  169. package/dist/utils/skill-packaging-config.d.ts +22 -1
  170. package/dist/utils/skill-packaging-config.d.ts.map +1 -1
  171. package/dist/utils/skill-packaging-config.js +26 -0
  172. package/dist/utils/skill-packaging-config.js.map +1 -1
  173. package/dist/utils/verdict-helpers.d.ts +4 -3
  174. package/dist/utils/verdict-helpers.d.ts.map +1 -1
  175. package/dist/utils/verdict-helpers.js +6 -13
  176. package/dist/utils/verdict-helpers.js.map +1 -1
  177. package/dist/version.d.ts +22 -2
  178. package/dist/version.d.ts.map +1 -1
  179. package/dist/version.js +31 -2
  180. package/dist/version.js.map +1 -1
  181. package/docs/index.md +12 -0
  182. package/docs/rag.md +9 -4
  183. package/docs/resources.md +30 -14
  184. package/docs/skills.md +25 -7
  185. package/package.json +12 -12
package/dist/bin/vat CHANGED
@@ -18,7 +18,27 @@ import { spawnSync } from 'node:child_process';
18
18
  import { existsSync, readFileSync } from 'node:fs';
19
19
  import { dirname } from 'node:path';
20
20
  import { fileURLToPath } from 'node:url';
21
- import { findNodeWorkspaceRoot, safePath } from '@vibe-agent-toolkit/utils';
21
+ import { describeStdioBlocking, findNodeWorkspaceRoot, makeStdioBlocking, safePath, } from '@vibe-agent-toolkit/utils';
22
+ // Before ANY output. This file — not bin.ts — is what package.json maps `vat` to,
23
+ // so it is the CLI entry point in every installed copy, and `makeStdioBlocking`
24
+ // is documented as belonging first thing in one. The delegated child applies it
25
+ // again for the command's own output; what this protects is THIS process's
26
+ // writes, every one of which is followed by `spawnCli`'s immediate
27
+ // `process.exit`. See ../utils/output.ts.
28
+ const stdioBlocking = makeStdioBlocking();
29
+ /**
30
+ * Report whether the streams above actually went blocking.
31
+ *
32
+ * A free function rather than an inline `if` in `main()` because `main()` is
33
+ * already at the cognitive-complexity ceiling, and because reaching through an
34
+ * internal Node handle is precisely the kind of thing that can fail quietly on
35
+ * Windows — the diagnostic must not be the first thing dropped to save a branch.
36
+ */
37
+ function reportStdioBlocking(debug) {
38
+ if (debug) {
39
+ console.error(`[vat debug] ${describeStdioBlocking(stdioBlocking)}`);
40
+ }
41
+ }
22
42
  const __dirname = dirname(fileURLToPath(import.meta.url));
23
43
  function spawnCli(binPath, context, contextPath) {
24
44
  const env = {
@@ -111,6 +131,9 @@ function main() {
111
131
  const cwd = testRoot ? safePath.resolve(testRoot) : process.cwd();
112
132
  const args = process.argv.slice(2);
113
133
  const debug = process.env['VAT_DEBUG'] === '1';
134
+ // Reported here rather than in the block further down because every dispatch
135
+ // path below ends in `spawnCli`, which never returns.
136
+ reportStdioBlocking(debug);
114
137
  // Priority 1: Explicit override via VAT_ROOT_DIR
115
138
  if (process.env['VAT_ROOT_DIR']) {
116
139
  const binPath = safePath.join(process.env['VAT_ROOT_DIR'], 'packages/cli/dist/bin.js');
package/dist/bin/vat.js CHANGED
@@ -18,7 +18,27 @@ import { spawnSync } from 'node:child_process';
18
18
  import { existsSync, readFileSync } from 'node:fs';
19
19
  import { dirname } from 'node:path';
20
20
  import { fileURLToPath } from 'node:url';
21
- import { findNodeWorkspaceRoot, safePath } from '@vibe-agent-toolkit/utils';
21
+ import { describeStdioBlocking, findNodeWorkspaceRoot, makeStdioBlocking, safePath, } from '@vibe-agent-toolkit/utils';
22
+ // Before ANY output. This file — not bin.ts — is what package.json maps `vat` to,
23
+ // so it is the CLI entry point in every installed copy, and `makeStdioBlocking`
24
+ // is documented as belonging first thing in one. The delegated child applies it
25
+ // again for the command's own output; what this protects is THIS process's
26
+ // writes, every one of which is followed by `spawnCli`'s immediate
27
+ // `process.exit`. See ../utils/output.ts.
28
+ const stdioBlocking = makeStdioBlocking();
29
+ /**
30
+ * Report whether the streams above actually went blocking.
31
+ *
32
+ * A free function rather than an inline `if` in `main()` because `main()` is
33
+ * already at the cognitive-complexity ceiling, and because reaching through an
34
+ * internal Node handle is precisely the kind of thing that can fail quietly on
35
+ * Windows — the diagnostic must not be the first thing dropped to save a branch.
36
+ */
37
+ function reportStdioBlocking(debug) {
38
+ if (debug) {
39
+ console.error(`[vat debug] ${describeStdioBlocking(stdioBlocking)}`);
40
+ }
41
+ }
22
42
  const __dirname = dirname(fileURLToPath(import.meta.url));
23
43
  function spawnCli(binPath, context, contextPath) {
24
44
  const env = {
@@ -111,6 +131,9 @@ function main() {
111
131
  const cwd = testRoot ? safePath.resolve(testRoot) : process.cwd();
112
132
  const args = process.argv.slice(2);
113
133
  const debug = process.env['VAT_DEBUG'] === '1';
134
+ // Reported here rather than in the block further down because every dispatch
135
+ // path below ends in `spawnCli`, which never returns.
136
+ reportStdioBlocking(debug);
114
137
  // Priority 1: Explicit override via VAT_ROOT_DIR
115
138
  if (process.env['VAT_ROOT_DIR']) {
116
139
  const binPath = safePath.join(process.env['VAT_ROOT_DIR'], 'packages/cli/dist/bin.js');
@@ -1 +1 @@
1
- {"version":3,"file":"vat.js","sourceRoot":"","sources":["../../src/bin/vat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vat.js","sourceRoot":"","sources":["../../src/bin/vat.ts"],"names":[],"mappings":"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"}
package/dist/bin.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * Main entry point for vat CLI
4
4
  * Uses Commander.js for command structure
5
5
  */
6
- import { safePath } from '@vibe-agent-toolkit/utils';
6
+ import { describeStdioBlocking, makeStdioBlocking, safePath } from '@vibe-agent-toolkit/utils';
7
7
  import { Command } from 'commander';
8
8
  import { createAgentCommand, showAgentVerboseHelp } from './commands/agent/index.js';
9
9
  import { createAuditCommand } from './commands/audit.js';
@@ -22,6 +22,17 @@ import { createVerifyTopLevelCommand } from './commands/verify.js';
22
22
  import { loadVerboseHelp, writeHelpSync } from './utils/help-loader.js';
23
23
  import { createLogger } from './utils/logger.js';
24
24
  import { version, getVersionString } from './version.js';
25
+ // Before ANY output: a piped stdio is non-blocking, and every command here exits
26
+ // the moment it finishes, so unflushed bytes would be discarded. See output.ts.
27
+ const stdioBlocking = makeStdioBlocking();
28
+ // Reported by hand rather than through the parsed `--debug` option because this
29
+ // has to run before Commander parses anything — the same reason the verbose-help
30
+ // checks below read process.argv directly. Reaching through an internal Node
31
+ // handle can fail silently, and a truncated report with no explanation is the
32
+ // exact failure this reporting exists to make diagnosable.
33
+ if (process.argv.includes('--debug')) {
34
+ process.stderr.write(`[DEBUG] ${describeStdioBlocking(stdioBlocking)}\n`);
35
+ }
25
36
  const program = new Command();
26
37
  // Context detection from environment
27
38
  const context = process.env['VAT_CONTEXT']
@@ -33,7 +44,17 @@ const context = process.env['VAT_CONTEXT']
33
44
  program
34
45
  .name('vat')
35
46
  .description('Agent-friendly toolkit for building, testing, and deploying portable AI agents')
36
- .version(getVersionString(version, context), '-v, --version', 'Output version number')
47
+ // `import.meta.filename`, NOT process.argv[1] and NOT anything cwd-derived:
48
+ // this is the file Node actually loaded (symlinks already resolved), so it
49
+ // identifies the running build even when the wrapper's cwd-derived context
50
+ // resolves to a bare 'global'. See getVersionString for the incident.
51
+ // Long form ONLY. A short `-v` here is registered on the ROOT program, and
52
+ // Commander resolves root options before the subcommand's own — so it silently
53
+ // shadowed the `-v, --verbose` that validate/verify/build/skills-build each
54
+ // advertise in their own --help. `vat validate -v` printed the version and
55
+ // exited 0 without validating, making a CI step spelled that way a
56
+ // permanently-green gate that ran nothing. Do not re-add the short flag.
57
+ .version(getVersionString(version, context, import.meta.filename), '--version', 'Output version number')
37
58
  .option('--cwd <dir>', 'Change working directory before running any command')
38
59
  .option('--debug', 'Enable debug logging')
39
60
  .helpCommand(false) // Disable redundant 'help' command, use --help instead
package/dist/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,19 @@
1
1
  /**
2
2
  * Agent list command - discovers and lists all agents
3
3
  */
4
+ import { type DiscoveredAgent } from '../../utils/agent-discovery.js';
4
5
  export interface ListCommandOptions {
5
6
  debug?: boolean;
6
7
  }
8
+ /**
9
+ * Build the agent-list payload.
10
+ *
11
+ * Pure, so the payload's shape — including the fact that `path` is root-relative
12
+ * — is under unit test rather than only under a CLI spawn. `root` is stated
13
+ * once and is the only absolute path in the document; without it a relative
14
+ * `path` is unresolvable, and with absolute paths the payload names the machine
15
+ * it ran on.
16
+ */
17
+ export declare function buildAgentListOutput(agents: readonly DiscoveredAgent[], root: string, durationMs: number): Record<string, unknown>;
7
18
  export declare function listCommand(options: ListCommandOptions): Promise<void>;
8
19
  //# sourceMappingURL=list.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/list.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoC5E"}
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/list.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAMtF,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AASD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,eAAe,EAAE,EAClC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAczB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B5E"}
@@ -1,10 +1,35 @@
1
1
  /**
2
2
  * Agent list command - discovers and lists all agents
3
3
  */
4
+ import { safePath } from '@vibe-agent-toolkit/utils';
4
5
  import { discoverAgents } from '../../utils/agent-discovery.js';
5
6
  import { handleCommandError } from '../../utils/command-error.js';
6
7
  import { createLogger } from '../../utils/logger.js';
7
8
  import { writeYamlOutput } from '../../utils/output.js';
9
+ import { relativizePathEntries } from '../../utils/relativize-paths.js';
10
+ /**
11
+ * Build the agent-list payload.
12
+ *
13
+ * Pure, so the payload's shape — including the fact that `path` is root-relative
14
+ * — is under unit test rather than only under a CLI spawn. `root` is stated
15
+ * once and is the only absolute path in the document; without it a relative
16
+ * `path` is unresolvable, and with absolute paths the payload names the machine
17
+ * it ran on.
18
+ */
19
+ export function buildAgentListOutput(agents, root, durationMs) {
20
+ const reported = agents.map(agent => ({
21
+ name: agent.name,
22
+ version: agent.version,
23
+ path: agent.path,
24
+ }));
25
+ return {
26
+ status: 'success',
27
+ root,
28
+ agents: relativizePathEntries(reported, root),
29
+ count: agents.length,
30
+ duration: `${durationMs}ms`,
31
+ };
32
+ }
8
33
  export async function listCommand(options) {
9
34
  const logger = createLogger(options.debug ? { debug: true } : {});
10
35
  const startTime = Date.now();
@@ -12,23 +37,17 @@ export async function listCommand(options) {
12
37
  logger.debug('Discovering agents...');
13
38
  logger.debug(`Search paths: packages/vat-development-agents/agents, agents, .`);
14
39
  const agents = await discoverAgents();
15
- const output = {
16
- status: 'success',
17
- agents: agents.map(agent => ({
18
- name: agent.name,
19
- version: agent.version,
20
- path: agent.path,
21
- })),
22
- count: agents.length,
23
- duration: `${Date.now() - startTime}ms`,
24
- };
40
+ // `discoverAgents` resolves its search paths against cwd, so cwd — not a
41
+ // config/git projectRoot — is the honest base for what it found.
42
+ const root = safePath.resolve(process.cwd());
43
+ const output = buildAgentListOutput(agents, root, Date.now() - startTime);
25
44
  writeYamlOutput(output);
26
45
  if (agents.length === 0) {
27
46
  logger.info('No agents discovered');
28
47
  }
29
48
  else {
30
49
  logger.info(`Found ${agents.length} agent(s):`);
31
- for (const agent of agents) {
50
+ for (const agent of output['agents']) {
32
51
  logger.info(` ${agent.name} (${agent.version}) - ${agent.path}`);
33
52
  }
34
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/agent/list.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAMxD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B;IAC3D,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QAEhF,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;QAEtC,MAAM,MAAM,GAAG;YACb,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;gBAC3B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;aACjB,CAAC,CAAC;YACH,KAAK,EAAE,MAAM,CAAC,MAAM;YACpB,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,IAAI;SACxC,CAAC;QAEF,eAAe,CAAC,MAAM,CAAC,CAAC;QAExB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC;YAChD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBAC3B,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/agent/list.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,cAAc,EAAwB,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAaxE;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAkC,EAClC,IAAY,EACZ,UAAkB;IAElB,MAAM,QAAQ,GAAoB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC,CAAC,CAAC;IAEJ,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,IAAI;QACJ,MAAM,EAAE,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC;QAC7C,KAAK,EAAE,MAAM,CAAC,MAAM;QACpB,QAAQ,EAAE,GAAG,UAAU,IAAI;KAC5B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B;IAC3D,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QAEhF,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;QAEtC,yEAAyE;QACzE,iEAAiE;QACjE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;QAE1E,eAAe,CAAC,MAAM,CAAC,CAAC;QAExB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC;YAChD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAoB,EAAE,CAAC;gBACxD,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"}
@@ -0,0 +1,172 @@
1
+ /**
2
+ * "Is this tree repository SOURCE, or an artifact somebody published?"
3
+ *
4
+ * `vat audit` needs an answer before it can run the presence-side detectors —
5
+ * `PACKAGED_AGENT_INSTRUCTION_FILE` above all — because the same `CLAUDE.md`
6
+ * means opposite things on the two sides of that line. Sitting beside a source
7
+ * `SKILL.md` in a working repo it is ordinary repo guidance that ships nowhere;
8
+ * sitting in a built bundle or an installed plugin it demonstrably travelled to
9
+ * a consumer.
10
+ *
11
+ * ## The discriminator this replaced, and why it was wrong
12
+ *
13
+ * The first answer was "does the project's `vibe-agent-toolkit.config.yaml`
14
+ * declare this SKILL.md, matched by absolute path?" — no match meant the tree
15
+ * had been handed to us. Two ordinary cases falsify that inference, and both
16
+ * were observed on adopter fixtures:
17
+ *
18
+ * - **A repo that has not adopted VAT at all** has no config, so nothing is
19
+ * declared. `vat audit` on a fresh repo is the first command a new user runs,
20
+ * and it greeted them with a warning whose first remedy is "remove the file,
21
+ * or move it outside the directory that is packaged" — about guidance that
22
+ * ships nowhere.
23
+ * - **An adopting repo whose `include` globs do not enumerate every skill
24
+ * directory in the tree** — drafts, vendored copies, test fixtures. Not being
25
+ * named by a glob is not evidence of publication.
26
+ *
27
+ * ## What replaced it
28
+ *
29
+ * Two observable facts about where the file actually LIVES, in this order:
30
+ *
31
+ * 1. **Inside a Claude install root** (`plugins/`, `skills/`, `marketplaces/`
32
+ * under `$CLAUDE_CONFIG_DIR` or `~/.claude`) — the directories whose entire
33
+ * purpose is holding artifacts an installer put there. This clause wins over
34
+ * the git test below, and it must: Claude Code installs a marketplace by
35
+ * `git clone`, so an installed tree's files are TRACKED SOURCE — of somebody
36
+ * else's repository. For a git-distributed plugin, tracked source *is* what
37
+ * ships, which is precisely how a scaffold template like Anthropic's
38
+ * `dataverse` `templates/CLAUDE.md` reaches every consumer. Judging that tree
39
+ * by tracked-ness would silence the dominant audited population.
40
+ *
41
+ * Both halves of that sentence are statements about somebody else's product,
42
+ * and clause 1 outranking clause 2 rests on them. No test in this repo can
43
+ * contradict either — they can only be re-read:
44
+ *
45
+ * @vendor-claim reviewed=2026-08-02 verify=Install a marketplace with /plugin marketplace add and confirm ~/.claude/plugins/marketplaces/<name> is a git working copy; confirm dataverse still ships templates/CLAUDE.md
46
+ *
47
+ * 2. **Not git-visible source** — the `SKILL.md` is gitignored, or it lies
48
+ * outside any git repository. A built `dist/` bundle is gitignored; an
49
+ * unpacked tarball is outside a repo; a working tree's skill is neither.
50
+ *
51
+ * Neither clause consults the project's config, and neither is CONDITIONAL on it:
52
+ * `vat audit` asks this question in its config-aware lane exactly as it does in
53
+ * its wild one. The config-declaration test was not merely replaced inside this
54
+ * module — it also had to stop gating whether this module is reached, or it
55
+ * survives at the caller in its purest form, where it can only suppress.
56
+ *
57
+ * Untracked-but-not-ignored is deliberately SOURCE, not "distributed": that is
58
+ * a skill the author has written and not yet committed, and treating authoring
59
+ * in progress as a distribution artifact would make the first audit of a new
60
+ * skill the loudest one. `GitTracker`'s active set (`git ls-files --cached
61
+ * --others --exclude-standard`) answers exactly this three-way question in O(1),
62
+ * which is why this module reuses it rather than adding a second git-status path.
63
+ *
64
+ * Deliberately NOT inferred from a `dist/` path substring or from a bundle's
65
+ * frontmatter `name`: both assert a cause the code cannot observe, and adopter
66
+ * output directories vary. Location under an install root is not that kind of
67
+ * guess — it is the same directory constant the `--user` scan itself is defined
68
+ * by, resolved from {@link getClaudeUserPaths}.
69
+ *
70
+ * ## Known limits, both deliberate
71
+ *
72
+ * - A skill the author writes IN PLACE under `~/.claude/skills/` and keeps in a
73
+ * dotfiles repo is reported, because it is indistinguishable by location from
74
+ * an installed one. The install root is what a consumer's Claude reads from;
75
+ * a skill living there is being consumed either way.
76
+ * - A third-party skills repo audited by `vat audit <git-url>` is a clone, so
77
+ * its skills read as source and stay silent. That is consistent: auditing
78
+ * somebody's repo source is the same situation as auditing your own. A
79
+ * third-party *plugin* still reports, because the plugin lane crawls the whole
80
+ * plugin tree independently of this classifier.
81
+ *
82
+ * ## When git cannot be consulted
83
+ *
84
+ * Clause 2 is only as good as git's willingness to answer, and `gitLsFiles`
85
+ * returns the same `null` for a missing binary, a corrupt `.git` and an
86
+ * unreadable one. That `null` used to arrive here as "not ignored" — i.e. source,
87
+ * i.e. silence — so the detector switched itself off and the run still reported
88
+ * `status: success` with nothing to indicate why. This module therefore has a
89
+ * third answer, `'indeterminate'`, and reports it (see
90
+ * {@link distributedTreeFindings}) rather than guessing in either direction.
91
+ */
92
+ import { type ValidationIssue } from '@vibe-agent-toolkit/agent-schema';
93
+ import { GitTracker } from '@vibe-agent-toolkit/utils';
94
+ /**
95
+ * Get (or build) the pre-populated tracker for one git root.
96
+ *
97
+ * Shared with `resolveScanContext` in audit.ts so a run pays for `git ls-files`
98
+ * once per repository, whether the caller wants scan-time gitignore filtering or
99
+ * the provenance answer below.
100
+ */
101
+ export declare function getOrCreateGitTracker(gitRoot: string): Promise<GitTracker>;
102
+ /** Clear the per-root tracker cache (see `resetAuditCaches`). */
103
+ export declare function resetGitTrackerCache(): void;
104
+ /**
105
+ * Where a scanned skill tree came from, as far as the filesystem can testify.
106
+ *
107
+ * `'repo-source'` — a working tree somebody is authoring in.
108
+ * `'distributed'` — an artifact somebody published: a built bundle, an installed
109
+ * skill or plugin, an unpacked third-party tarball.
110
+ * `'indeterminate'` — the question could not be asked, because git could not be
111
+ * consulted. A THIRD state, not a default: the two-valued version of this type
112
+ * forced every git failure into `'repo-source'` (see
113
+ * {@link classifyScannedSkillTree}), which is the answer that stays silent.
114
+ */
115
+ export type SkillTreeProvenance = 'repo-source' | 'distributed' | 'indeterminate';
116
+ /**
117
+ * True when `absolutePath` is `root` or lies beneath it.
118
+ *
119
+ * Both sides are put through {@link toForwardSlash} first: a Windows caller can
120
+ * hand us a backslash path, and a prefix test across mixed separators reports a
121
+ * sibling directory as "outside" — the exact shape that would quietly turn this
122
+ * whole clause off on one platform.
123
+ *
124
+ * Exported because `audit.ts` asks the same containment question of the same
125
+ * kind of path when deciding which crawl owns a subtree; a second spelling of a
126
+ * prefix test is how the separator bug gets reintroduced on one side only.
127
+ */
128
+ export declare function isWithin(root: string, absolutePath: string): boolean;
129
+ /**
130
+ * Classify the tree holding `skillMdPath`. See this module's header for the
131
+ * reasoning behind each clause and the order they are applied in.
132
+ */
133
+ export declare function classifyScannedSkillTree(skillMdPath: string): Promise<SkillTreeProvenance>;
134
+ /**
135
+ * Will a crawl rooted at this SKILL.md's directory actually report the WHOLE
136
+ * subtree beneath it — nested skills included?
137
+ *
138
+ * The question the directory walk needs before it descends, and it is not the
139
+ * same as "is there a SKILL.md here". {@link distributedTreeFindings} matches at
140
+ * any depth, so a distributed (or unclassifiable) skill's crawl covers every
141
+ * descendant and they must stand down or one file is counted once per ancestor.
142
+ * A `repo-source` skill's crawl does not run at all, so standing its descendants
143
+ * down would convert a double count into silence — and provenance is NOT
144
+ * monotone down a tree: a gitignored bundle can sit inside a tracked source
145
+ * skill, and a scan rooted above `<claudeDir>/skills` reaches an install root
146
+ * from outside one.
147
+ */
148
+ export declare function crawlOwnsSubtree(skillMdPath: string): Promise<boolean>;
149
+ /**
150
+ * The agent-instruction files present in a skill's own directory, when that
151
+ * directory is a distributed tree. Empty otherwise — including when the caller
152
+ * says a plugin lane already owns this subtree.
153
+ *
154
+ * `[]` declared dests, from BOTH callers, including the config-aware one that does
155
+ * hold a `files:` block. The parameter takes skill-OUTPUT-relative dests, and the
156
+ * tree crawled here is not an output tree — it is wherever the SKILL.md lives, so
157
+ * a `dest` and a path relative to this root are two different coordinate systems.
158
+ * Feeding dests in would exempt by accidental basename agreement and mislabel it
159
+ * as intent. `vat verify` is the lane that maps a built bundle back to the config
160
+ * that produced it, with both sides in output coordinates, and it applies the
161
+ * explicit-`files:` exemption there — which is what
162
+ * `PACKAGED_AGENT_INSTRUCTION_FILE`'s own remediation already tells readers.
163
+ *
164
+ * @param crawlTree `false` when a plugin lane already crawled this subtree.
165
+ * REQUIRED and never defaulted, because the wrong answer is silent in both
166
+ * directions: a skill nested inside a plugin is already crawled by
167
+ * `validatePlugin` at any depth, so crawling again reports one file twice,
168
+ * while omitting it for a standalone bundle is the blindness this pass exists
169
+ * to end.
170
+ */
171
+ export declare function distributedTreeFindings(skillPath: string, locationRoot: string, crawlTree: boolean): Promise<ValidationIssue[]>;
172
+ //# sourceMappingURL=distributed-tree.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"distributed-tree.d.ts","sourceRoot":"","sources":["../../../src/commands/audit/distributed-tree.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0FG;AAEH,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,kCAAkC,CAAC;AAGxE,OAAO,EAEL,UAAU,EAKX,MAAM,2BAA2B,CAAC;AAKnC;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAShF;AAcD,iEAAiE;AACjE,wBAAgB,oBAAoB,IAAI,IAAI,CAG3C;AAED;;;;;;;;;;GAUG;AACH,MAAM,MAAM,mBAAmB,GAAG,aAAa,GAAG,aAAa,GAAG,eAAe,CAAC;AAmClF;;;;;;;;;;;GAWG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAIpE;AAkBD;;;GAGG;AACH,wBAAsB,wBAAwB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAShG;AA0BD;;;;;;;;;;;;;GAaG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE5E;AA+BD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,eAAe,EAAE,CAAC,CAuB5B"}