@vibe-agent-toolkit/cli 0.2.0-rc.6 → 0.2.0-rc.8
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 +4 -5
- package/dist/bin/vat +34 -19
- package/dist/bin/vat.js +34 -19
- package/dist/bin/vat.js.map +1 -1
- package/dist/bin.js +44 -158
- package/dist/bin.js.map +1 -1
- package/dist/command-loaders.d.ts +2 -2
- package/dist/command-loaders.d.ts.map +1 -1
- package/dist/command-loaders.js +4 -2
- package/dist/command-loaders.js.map +1 -1
- package/dist/commands/agent/build.d.ts.map +1 -1
- package/dist/commands/agent/build.js +2 -1
- package/dist/commands/agent/build.js.map +1 -1
- package/dist/commands/agent/import.d.ts.map +1 -1
- package/dist/commands/agent/import.js +3 -2
- package/dist/commands/agent/import.js.map +1 -1
- package/dist/commands/agent/install-path.d.ts +36 -0
- package/dist/commands/agent/install-path.d.ts.map +1 -0
- package/dist/commands/agent/install-path.js +44 -0
- package/dist/commands/agent/install-path.js.map +1 -0
- package/dist/commands/agent/install.d.ts.map +1 -1
- package/dist/commands/agent/install.js +22 -10
- package/dist/commands/agent/install.js.map +1 -1
- package/dist/commands/agent/installed.d.ts.map +1 -1
- package/dist/commands/agent/installed.js +22 -12
- package/dist/commands/agent/installed.js.map +1 -1
- package/dist/commands/agent/list.d.ts.map +1 -1
- package/dist/commands/agent/list.js +2 -1
- package/dist/commands/agent/list.js.map +1 -1
- package/dist/commands/agent/run.d.ts.map +1 -1
- package/dist/commands/agent/run.js +2 -1
- package/dist/commands/agent/run.js.map +1 -1
- package/dist/commands/agent/uninstall.d.ts.map +1 -1
- package/dist/commands/agent/uninstall.js +13 -6
- package/dist/commands/agent/uninstall.js.map +1 -1
- package/dist/commands/agent/validate.d.ts.map +1 -1
- package/dist/commands/agent/validate.js +3 -2
- package/dist/commands/agent/validate.js.map +1 -1
- package/dist/commands/ard/emit.d.ts +153 -0
- package/dist/commands/ard/emit.d.ts.map +1 -0
- package/dist/commands/ard/emit.js +276 -0
- package/dist/commands/ard/emit.js.map +1 -0
- package/dist/commands/ard/index.d.ts +12 -0
- package/dist/commands/ard/index.d.ts.map +1 -0
- package/dist/commands/ard/index.js +80 -0
- package/dist/commands/ard/index.js.map +1 -0
- package/dist/commands/ard/surfaces.d.ts +56 -0
- package/dist/commands/ard/surfaces.d.ts.map +1 -0
- package/dist/commands/ard/surfaces.js +150 -0
- package/dist/commands/ard/surfaces.js.map +1 -0
- package/dist/commands/audit/distributed-tree.d.ts.map +1 -1
- package/dist/commands/audit/distributed-tree.js +9 -6
- package/dist/commands/audit/distributed-tree.js.map +1 -1
- package/dist/commands/audit/scan-population.d.ts +158 -0
- package/dist/commands/audit/scan-population.d.ts.map +1 -0
- package/dist/commands/audit/scan-population.js +292 -0
- package/dist/commands/audit/scan-population.js.map +1 -0
- package/dist/commands/audit-settings.d.ts.map +1 -1
- package/dist/commands/audit-settings.js +6 -5
- package/dist/commands/audit-settings.js.map +1 -1
- package/dist/commands/audit.d.ts +78 -9
- package/dist/commands/audit.d.ts.map +1 -1
- package/dist/commands/audit.js +853 -473
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +24 -24
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/cache/clear.d.ts.map +1 -1
- package/dist/commands/cache/clear.js +17 -10
- package/dist/commands/cache/clear.js.map +1 -1
- package/dist/commands/claude/budget.d.ts +136 -24
- package/dist/commands/claude/budget.d.ts.map +1 -1
- package/dist/commands/claude/budget.js +152 -57
- package/dist/commands/claude/budget.js.map +1 -1
- package/dist/commands/claude/context.d.ts.map +1 -1
- package/dist/commands/claude/context.js +4 -3
- package/dist/commands/claude/context.js.map +1 -1
- package/dist/commands/claude/marketplace/changelog-utils.d.ts +1 -1
- package/dist/commands/claude/marketplace/changelog-utils.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/changelog-utils.js +1 -2
- package/dist/commands/claude/marketplace/changelog-utils.js.map +1 -1
- package/dist/commands/claude/marketplace/git-publish.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/git-publish.js +3 -2
- package/dist/commands/claude/marketplace/git-publish.js.map +1 -1
- package/dist/commands/claude/marketplace/license-utils.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/license-utils.js +0 -1
- package/dist/commands/claude/marketplace/license-utils.js.map +1 -1
- package/dist/commands/claude/marketplace/publish-tree.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/publish-tree.js +0 -6
- 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 +2 -1
- package/dist/commands/claude/marketplace/publish.js.map +1 -1
- package/dist/commands/claude/marketplace/validate.d.ts +55 -22
- package/dist/commands/claude/marketplace/validate.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/validate.js +392 -77
- package/dist/commands/claude/marketplace/validate.js.map +1 -1
- package/dist/commands/claude/org/api-keys.d.ts +0 -3
- package/dist/commands/claude/org/api-keys.d.ts.map +1 -1
- package/dist/commands/claude/org/api-keys.js +2 -1
- package/dist/commands/claude/org/api-keys.js.map +1 -1
- package/dist/commands/claude/org/helpers.d.ts +17 -22
- package/dist/commands/claude/org/helpers.d.ts.map +1 -1
- package/dist/commands/claude/org/helpers.js +6 -22
- package/dist/commands/claude/org/helpers.js.map +1 -1
- package/dist/commands/claude/org/invites.d.ts +0 -3
- package/dist/commands/claude/org/invites.d.ts.map +1 -1
- package/dist/commands/claude/org/invites.js +3 -2
- package/dist/commands/claude/org/invites.js.map +1 -1
- package/dist/commands/claude/org/skills.d.ts +103 -4
- package/dist/commands/claude/org/skills.d.ts.map +1 -1
- package/dist/commands/claude/org/skills.js +331 -123
- package/dist/commands/claude/org/skills.js.map +1 -1
- package/dist/commands/claude/org/users.d.ts +0 -3
- package/dist/commands/claude/org/users.d.ts.map +1 -1
- package/dist/commands/claude/org/users.js +3 -2
- package/dist/commands/claude/org/users.js.map +1 -1
- package/dist/commands/claude/org/workspaces.d.ts +0 -3
- package/dist/commands/claude/org/workspaces.d.ts.map +1 -1
- package/dist/commands/claude/org/workspaces.js +6 -5
- package/dist/commands/claude/org/workspaces.js.map +1 -1
- package/dist/commands/claude/plugin/build.d.ts +8 -0
- package/dist/commands/claude/plugin/build.d.ts.map +1 -1
- package/dist/commands/claude/plugin/build.js +28 -33
- package/dist/commands/claude/plugin/build.js.map +1 -1
- package/dist/commands/claude/plugin/helpers.d.ts.map +1 -1
- package/dist/commands/claude/plugin/helpers.js +0 -6
- package/dist/commands/claude/plugin/helpers.js.map +1 -1
- package/dist/commands/claude/plugin/install.d.ts +12 -0
- package/dist/commands/claude/plugin/install.d.ts.map +1 -1
- package/dist/commands/claude/plugin/install.js +71 -60
- package/dist/commands/claude/plugin/install.js.map +1 -1
- package/dist/commands/claude/plugin/list.d.ts.map +1 -1
- package/dist/commands/claude/plugin/list.js +3 -2
- package/dist/commands/claude/plugin/list.js.map +1 -1
- package/dist/commands/claude/plugin/plugin-changelog.d.ts.map +1 -1
- package/dist/commands/claude/plugin/plugin-changelog.js +0 -2
- package/dist/commands/claude/plugin/plugin-changelog.js.map +1 -1
- package/dist/commands/claude/plugin/plugin-files.d.ts.map +1 -1
- package/dist/commands/claude/plugin/plugin-files.js +0 -3
- package/dist/commands/claude/plugin/plugin-files.js.map +1 -1
- package/dist/commands/claude/plugin/plugin-validators.d.ts.map +1 -1
- package/dist/commands/claude/plugin/plugin-validators.js +3 -6
- package/dist/commands/claude/plugin/plugin-validators.js.map +1 -1
- package/dist/commands/claude/plugin/tree-copy.d.ts +73 -0
- package/dist/commands/claude/plugin/tree-copy.d.ts.map +1 -1
- package/dist/commands/claude/plugin/tree-copy.js +221 -15
- package/dist/commands/claude/plugin/tree-copy.js.map +1 -1
- package/dist/commands/claude/plugin/uninstall.d.ts.map +1 -1
- package/dist/commands/claude/plugin/uninstall.js +4 -4
- package/dist/commands/claude/plugin/uninstall.js.map +1 -1
- package/dist/commands/consistency-check.d.ts +9 -13
- package/dist/commands/consistency-check.d.ts.map +1 -1
- package/dist/commands/consistency-check.js +91 -81
- package/dist/commands/consistency-check.js.map +1 -1
- package/dist/commands/corpus/index.d.ts.map +1 -1
- package/dist/commands/corpus/index.js +3 -0
- package/dist/commands/corpus/index.js.map +1 -1
- package/dist/commands/corpus/report.d.ts +0 -1
- package/dist/commands/corpus/report.d.ts.map +1 -1
- package/dist/commands/corpus/report.js +1 -3
- package/dist/commands/corpus/report.js.map +1 -1
- package/dist/commands/corpus/runner.d.ts +58 -1
- package/dist/commands/corpus/runner.d.ts.map +1 -1
- package/dist/commands/corpus/runner.js +92 -21
- 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 +2 -4
- package/dist/commands/corpus/scan.js.map +1 -1
- package/dist/commands/corpus/seed.d.ts +4 -4
- package/dist/commands/corpus/seed.d.ts.map +1 -1
- package/dist/commands/corpus/seed.js +1 -3
- package/dist/commands/corpus/seed.js.map +1 -1
- package/dist/commands/doctor.d.ts +14 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +147 -51
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/inventory.d.ts.map +1 -1
- package/dist/commands/inventory.js +6 -7
- package/dist/commands/inventory.js.map +1 -1
- package/dist/commands/mcp/list-collections.d.ts.map +1 -1
- package/dist/commands/mcp/list-collections.js +2 -1
- package/dist/commands/mcp/list-collections.js.map +1 -1
- package/dist/commands/mcp/serve.d.ts.map +1 -1
- package/dist/commands/mcp/serve.js +3 -2
- package/dist/commands/mcp/serve.js.map +1 -1
- package/dist/commands/okf/index.d.ts +11 -0
- package/dist/commands/okf/index.d.ts.map +1 -0
- package/dist/commands/okf/index.js +114 -0
- package/dist/commands/okf/index.js.map +1 -0
- package/dist/commands/okf/validate.d.ts +191 -0
- package/dist/commands/okf/validate.d.ts.map +1 -0
- package/dist/commands/okf/validate.js +190 -0
- package/dist/commands/okf/validate.js.map +1 -0
- package/dist/commands/phase-utils.d.ts +30 -13
- package/dist/commands/phase-utils.d.ts.map +1 -1
- package/dist/commands/phase-utils.js +56 -19
- package/dist/commands/phase-utils.js.map +1 -1
- package/dist/commands/positional-args.d.ts.map +1 -1
- package/dist/commands/positional-args.js +2 -1
- package/dist/commands/positional-args.js.map +1 -1
- package/dist/commands/rag/clear-command.d.ts.map +1 -1
- package/dist/commands/rag/clear-command.js +2 -1
- package/dist/commands/rag/clear-command.js.map +1 -1
- package/dist/commands/rag/index-command.d.ts +27 -2
- package/dist/commands/rag/index-command.d.ts.map +1 -1
- package/dist/commands/rag/index-command.js +48 -8
- 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 +2 -0
- package/dist/commands/rag/index.js.map +1 -1
- package/dist/commands/rag/query-command.d.ts.map +1 -1
- package/dist/commands/rag/query-command.js +2 -1
- package/dist/commands/rag/query-command.js.map +1 -1
- package/dist/commands/rag/stats-command.d.ts.map +1 -1
- package/dist/commands/rag/stats-command.js +2 -1
- package/dist/commands/rag/stats-command.js.map +1 -1
- package/dist/commands/resources/check-progress.d.ts +3 -0
- package/dist/commands/resources/check-progress.d.ts.map +1 -1
- package/dist/commands/resources/check-progress.js +11 -2
- package/dist/commands/resources/check-progress.js.map +1 -1
- package/dist/commands/resources/check-supervisor.d.ts.map +1 -1
- package/dist/commands/resources/check-supervisor.js +14 -7
- package/dist/commands/resources/check-supervisor.js.map +1 -1
- package/dist/commands/resources/check.d.ts +168 -8
- package/dist/commands/resources/check.d.ts.map +1 -1
- package/dist/commands/resources/check.js +222 -118
- package/dist/commands/resources/check.js.map +1 -1
- package/dist/commands/resources/index.d.ts.map +1 -1
- package/dist/commands/resources/index.js +64 -29
- package/dist/commands/resources/index.js.map +1 -1
- package/dist/commands/resources/query.d.ts +18 -1
- package/dist/commands/resources/query.d.ts.map +1 -1
- package/dist/commands/resources/query.js +33 -12
- package/dist/commands/resources/query.js.map +1 -1
- package/dist/commands/resources/scan.d.ts.map +1 -1
- package/dist/commands/resources/scan.js +4 -8
- package/dist/commands/resources/scan.js.map +1 -1
- package/dist/commands/resources/validate.d.ts +30 -1
- package/dist/commands/resources/validate.d.ts.map +1 -1
- package/dist/commands/resources/validate.js +116 -14
- package/dist/commands/resources/validate.js.map +1 -1
- package/dist/commands/skill/review-checklist.d.ts +3 -2
- package/dist/commands/skill/review-checklist.d.ts.map +1 -1
- package/dist/commands/skill/review-checklist.js +4 -2
- package/dist/commands/skill/review-checklist.js.map +1 -1
- package/dist/commands/skill/review.d.ts +247 -0
- package/dist/commands/skill/review.d.ts.map +1 -1
- package/dist/commands/skill/review.js +98 -61
- package/dist/commands/skill/review.js.map +1 -1
- package/dist/commands/skill/test/configure.d.ts.map +1 -1
- package/dist/commands/skill/test/configure.js +0 -1
- package/dist/commands/skill/test/configure.js.map +1 -1
- package/dist/commands/skill/test/run.d.ts +12 -6
- package/dist/commands/skill/test/run.d.ts.map +1 -1
- package/dist/commands/skill/test/run.js +137 -67
- package/dist/commands/skill/test/run.js.map +1 -1
- package/dist/commands/skills/build.d.ts +69 -2
- package/dist/commands/skills/build.d.ts.map +1 -1
- package/dist/commands/skills/build.js +128 -42
- package/dist/commands/skills/build.js.map +1 -1
- package/dist/commands/skills/install.d.ts +2 -1
- package/dist/commands/skills/install.d.ts.map +1 -1
- package/dist/commands/skills/install.js +20 -30
- package/dist/commands/skills/install.js.map +1 -1
- package/dist/commands/skills/list.d.ts +2 -1
- package/dist/commands/skills/list.d.ts.map +1 -1
- package/dist/commands/skills/list.js +44 -26
- package/dist/commands/skills/list.js.map +1 -1
- package/dist/commands/skills/package.d.ts +1 -1
- package/dist/commands/skills/package.d.ts.map +1 -1
- package/dist/commands/skills/package.js +6 -8
- package/dist/commands/skills/package.js.map +1 -1
- package/dist/commands/skills/scope-guard.d.ts.map +1 -1
- package/dist/commands/skills/scope-guard.js +2 -4
- package/dist/commands/skills/scope-guard.js.map +1 -1
- package/dist/commands/skills/shared.d.ts.map +1 -1
- package/dist/commands/skills/shared.js +2 -4
- package/dist/commands/skills/shared.js.map +1 -1
- package/dist/commands/skills/skill-discovery.d.ts +40 -1
- package/dist/commands/skills/skill-discovery.d.ts.map +1 -1
- package/dist/commands/skills/skill-discovery.js +32 -4
- package/dist/commands/skills/skill-discovery.js.map +1 -1
- package/dist/commands/skills/source-resolvers.d.ts +15 -0
- package/dist/commands/skills/source-resolvers.d.ts.map +1 -1
- package/dist/commands/skills/source-resolvers.js +25 -4
- package/dist/commands/skills/source-resolvers.js.map +1 -1
- package/dist/commands/skills/validate-command.d.ts.map +1 -1
- package/dist/commands/skills/validate-command.js +11 -3
- package/dist/commands/skills/validate-command.js.map +1 -1
- package/dist/commands/skills/validate.d.ts +66 -7
- package/dist/commands/skills/validate.d.ts.map +1 -1
- package/dist/commands/skills/validate.js +133 -29
- package/dist/commands/skills/validate.js.map +1 -1
- package/dist/commands/validate.d.ts +1 -1
- package/dist/commands/validate.js +8 -6
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/verify.d.ts +102 -5
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +246 -69
- 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 +5 -1
- package/dist/index.js.map +1 -1
- package/dist/report-schemas.d.ts +45 -0
- package/dist/report-schemas.d.ts.map +1 -0
- package/dist/report-schemas.js +102 -0
- package/dist/report-schemas.js.map +1 -0
- package/dist/skill-resolution/packaging-config.d.ts +49 -5
- package/dist/skill-resolution/packaging-config.d.ts.map +1 -1
- package/dist/skill-resolution/packaging-config.js +59 -19
- package/dist/skill-resolution/packaging-config.js.map +1 -1
- package/dist/skill-resolution/resolve-skill-reference.d.ts.map +1 -1
- package/dist/skill-resolution/resolve-skill-reference.js +8 -6
- package/dist/skill-resolution/resolve-skill-reference.js.map +1 -1
- package/dist/utils/agent-discovery.d.ts.map +1 -1
- package/dist/utils/agent-discovery.js +22 -11
- package/dist/utils/agent-discovery.js.map +1 -1
- package/dist/utils/agent-runner.d.ts.map +1 -1
- package/dist/utils/agent-runner.js +0 -1
- package/dist/utils/agent-runner.js.map +1 -1
- package/dist/utils/command-error.d.ts +87 -55
- package/dist/utils/command-error.d.ts.map +1 -1
- package/dist/utils/command-error.js +113 -64
- package/dist/utils/command-error.js.map +1 -1
- package/dist/utils/config-loader.d.ts +2 -1
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +3 -6
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/context-budget-issues.d.ts +1 -1
- package/dist/utils/context-budget-issues.js +1 -1
- package/dist/utils/corpus-target.d.ts +5 -27
- package/dist/utils/corpus-target.d.ts.map +1 -1
- package/dist/utils/corpus-target.js +7 -33
- package/dist/utils/corpus-target.js.map +1 -1
- package/dist/utils/edge-lens-evaluation.d.ts +83 -0
- package/dist/utils/edge-lens-evaluation.d.ts.map +1 -0
- package/dist/utils/edge-lens-evaluation.js +110 -0
- package/dist/utils/edge-lens-evaluation.js.map +1 -0
- package/dist/utils/help-loader.d.ts.map +1 -1
- package/dist/utils/help-loader.js +0 -1
- package/dist/utils/help-loader.js.map +1 -1
- package/dist/utils/issue-rendering.d.ts +2 -2
- package/dist/utils/issue-rendering.js +2 -2
- package/dist/utils/optional-backend.d.ts +5 -4
- package/dist/utils/optional-backend.d.ts.map +1 -1
- package/dist/utils/optional-backend.js +7 -5
- package/dist/utils/optional-backend.js.map +1 -1
- package/dist/utils/output.d.ts +9 -0
- package/dist/utils/output.d.ts.map +1 -1
- package/dist/utils/output.js +16 -0
- package/dist/utils/output.js.map +1 -1
- package/dist/utils/package-json.d.ts +24 -0
- package/dist/utils/package-json.d.ts.map +1 -0
- package/dist/utils/package-json.js +49 -0
- package/dist/utils/package-json.js.map +1 -0
- package/dist/utils/project-root-policy.d.ts +20 -0
- package/dist/utils/project-root-policy.d.ts.map +1 -1
- package/dist/utils/project-root-policy.js +30 -0
- package/dist/utils/project-root-policy.js.map +1 -1
- package/dist/utils/projection-query.d.ts +41 -4
- package/dist/utils/projection-query.d.ts.map +1 -1
- package/dist/utils/projection-query.js +44 -10
- package/dist/utils/projection-query.js.map +1 -1
- package/dist/utils/projection-store.d.ts +41 -15
- package/dist/utils/projection-store.d.ts.map +1 -1
- package/dist/utils/projection-store.js +65 -18
- package/dist/utils/projection-store.js.map +1 -1
- package/dist/utils/repeatable-option.d.ts +37 -0
- package/dist/utils/repeatable-option.d.ts.map +1 -0
- package/dist/utils/repeatable-option.js +39 -0
- package/dist/utils/repeatable-option.js.map +1 -0
- package/dist/utils/resource-loader.d.ts +4 -3
- package/dist/utils/resource-loader.d.ts.map +1 -1
- package/dist/utils/resource-loader.js +63 -32
- package/dist/utils/resource-loader.js.map +1 -1
- package/dist/utils/root-argv.d.ts +53 -0
- package/dist/utils/root-argv.d.ts.map +1 -0
- package/dist/utils/root-argv.js +215 -0
- package/dist/utils/root-argv.js.map +1 -0
- package/dist/utils/run-integrity.d.ts +95 -0
- package/dist/utils/run-integrity.d.ts.map +1 -0
- package/dist/utils/run-integrity.js +102 -0
- package/dist/utils/run-integrity.js.map +1 -0
- package/dist/utils/skill-packaging-config.d.ts +27 -0
- package/dist/utils/skill-packaging-config.d.ts.map +1 -1
- package/dist/utils/skill-packaging-config.js +30 -0
- package/dist/utils/skill-packaging-config.js.map +1 -1
- package/dist/utils/sqlite-experimental-warning.d.ts +69 -0
- package/dist/utils/sqlite-experimental-warning.d.ts.map +1 -0
- package/dist/utils/sqlite-experimental-warning.js +144 -0
- package/dist/utils/sqlite-experimental-warning.js.map +1 -0
- package/dist/utils/url-redact.d.ts.map +1 -1
- package/dist/utils/url-redact.js +4 -6
- package/dist/utils/url-redact.js.map +1 -1
- package/dist/utils/user-context-scanner.d.ts +8 -0
- package/dist/utils/user-context-scanner.d.ts.map +1 -1
- package/dist/utils/user-context-scanner.js +4 -2
- package/dist/utils/user-context-scanner.js.map +1 -1
- package/dist/utils/validate-help-files.d.ts.map +1 -1
- package/dist/utils/validate-help-files.js +12 -6
- package/dist/utils/validate-help-files.js.map +1 -1
- package/dist/utils/vat-bin-path.d.ts.map +1 -1
- package/dist/utils/vat-bin-path.js +0 -1
- package/dist/utils/vat-bin-path.js.map +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -3
- package/dist/version.js.map +1 -1
- package/docs/audit.md +141 -37
- package/docs/doctor.md +7 -6
- package/docs/index.md +19 -11
- package/docs/rag.md +3 -2
- package/docs/resources.md +5 -2
- package/docs/skill-test.md +10 -9
- package/docs/skills.md +53 -69
- package/package.json +24 -29
- package/schemas/ard-emit.json +149 -0
- package/schemas/claude-budget.json +197 -0
- package/schemas/okf-validate.json +170 -0
- package/schemas/resources-check.json +186 -0
- package/schemas/skill-review.json +230 -0
package/README.md
CHANGED
|
@@ -85,7 +85,7 @@ vat doctor --verbose
|
|
|
85
85
|
```
|
|
86
86
|
|
|
87
87
|
**What it checks:**
|
|
88
|
-
- Node.js version (>=
|
|
88
|
+
- Node.js version (>=22.13.0 required — the range comes from the CLI's own `engines.node`)
|
|
89
89
|
- Git installation and repository
|
|
90
90
|
- Configuration file exists and is valid
|
|
91
91
|
- VAT version (checks for updates)
|
|
@@ -103,7 +103,7 @@ report and states how many it hid):
|
|
|
103
103
|
Running diagnostic checks...
|
|
104
104
|
|
|
105
105
|
✅ Node.js version
|
|
106
|
-
v22.
|
|
106
|
+
v22.13.0 (meets requirement: >=22.13.0)
|
|
107
107
|
|
|
108
108
|
✅ Git installed
|
|
109
109
|
git version 2.43.0
|
|
@@ -131,8 +131,8 @@ If checks fail, doctor provides specific suggestions:
|
|
|
131
131
|
|
|
132
132
|
```
|
|
133
133
|
❌ Node.js version
|
|
134
|
-
|
|
135
|
-
💡
|
|
134
|
+
v22.4.0 does not satisfy the required range. Node.js >=22.13.0 required.
|
|
135
|
+
💡 Install a Node.js version in that range: https://nodejs.org/ or use nvm
|
|
136
136
|
```
|
|
137
137
|
|
|
138
138
|
### Configuration
|
|
@@ -140,7 +140,6 @@ If checks fail, doctor provides specific suggestions:
|
|
|
140
140
|
Create `vibe-agent-toolkit.config.yaml` at project root:
|
|
141
141
|
|
|
142
142
|
```yaml
|
|
143
|
-
version: 1
|
|
144
143
|
resources:
|
|
145
144
|
include:
|
|
146
145
|
- "docs/**/*.md"
|
package/dist/bin/vat
CHANGED
|
@@ -19,7 +19,8 @@ import { existsSync, readFileSync } from 'node:fs';
|
|
|
19
19
|
import { createRequire } from 'node:module';
|
|
20
20
|
import { dirname } from 'node:path';
|
|
21
21
|
import { fileURLToPath } from 'node:url';
|
|
22
|
-
import {
|
|
22
|
+
import { ExitCode, installLastResortExit } from '@vibe-agent-toolkit/schema';
|
|
23
|
+
import { findNodeWorkspaceRoot, isPathAbsentError, safePath, } from '@vibe-agent-toolkit/utils';
|
|
23
24
|
import { describeStdioBlocking, makeStdioBlocking, } from '@vibe-agent-toolkit/utils/process';
|
|
24
25
|
// Before ANY output. This file — not bin.ts — is what package.json maps `vat` to,
|
|
25
26
|
// so it is the CLI entry point in every installed copy, and `makeStdioBlocking`
|
|
@@ -41,6 +42,8 @@ function reportStdioBlocking(debug) {
|
|
|
41
42
|
console.error(`[vat debug] ${describeStdioBlocking(stdioBlocking)}`);
|
|
42
43
|
}
|
|
43
44
|
}
|
|
45
|
+
// A throw nothing below caught ends on ExitCode.ERROR, never Node's default 1.
|
|
46
|
+
installLastResortExit();
|
|
44
47
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
45
48
|
function spawnCli(binPath, context, contextPath) {
|
|
46
49
|
const env = {
|
|
@@ -48,12 +51,14 @@ function spawnCli(binPath, context, contextPath) {
|
|
|
48
51
|
VAT_CONTEXT: context,
|
|
49
52
|
VAT_CONTEXT_PATH: contextPath,
|
|
50
53
|
};
|
|
51
|
-
//
|
|
52
|
-
|
|
54
|
+
// The node running this wrapper, never a PATH lookup: the child must be the
|
|
55
|
+
// same binary, and `node` by name is whatever PATH says first.
|
|
56
|
+
const result = spawnSync(process.execPath, [binPath, ...process.argv.slice(2)], {
|
|
53
57
|
stdio: 'inherit',
|
|
54
58
|
env,
|
|
55
59
|
});
|
|
56
|
-
|
|
60
|
+
// A child that died of a signal has no status; that is not a finding.
|
|
61
|
+
process.exit(result.status ?? ExitCode.ERROR);
|
|
57
62
|
}
|
|
58
63
|
/**
|
|
59
64
|
* Check if we're in vibe-agent-toolkit repo (developer mode)
|
|
@@ -66,13 +71,10 @@ function getDevModeBinary(projectRoot) {
|
|
|
66
71
|
const wrapperPath = safePath.join(projectRoot, 'packages/cli/dist/bin/vat.js');
|
|
67
72
|
const binPath = safePath.join(projectRoot, 'packages/cli/dist/bin.js');
|
|
68
73
|
if (process.env['VAT_DEBUG'] === '1') {
|
|
69
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- checking project structure files for debug
|
|
70
74
|
console.error(`[vat debug] Dev check - wrapper: ${wrapperPath} (${existsSync(wrapperPath)})`);
|
|
71
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- checking project structure files for debug
|
|
72
75
|
console.error(`[vat debug] Dev check - bin: ${binPath} (${existsSync(binPath)})`);
|
|
73
76
|
}
|
|
74
77
|
// Both files must exist to confirm we're in vibe-agent-toolkit repo
|
|
75
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- checking project structure files
|
|
76
78
|
if (existsSync(wrapperPath) && existsSync(binPath)) {
|
|
77
79
|
return binPath;
|
|
78
80
|
}
|
|
@@ -84,7 +86,7 @@ function getDevModeBinary(projectRoot) {
|
|
|
84
86
|
* Resolved through Node's OWN resolver rather than by probing a path, because the
|
|
85
87
|
* path this used to probe —
|
|
86
88
|
* `<dir>/node_modules/@vibe-agent-toolkit/cli/dist/bin.js` — assumes npm's flat
|
|
87
|
-
* layout and **does not exist under pnpm
|
|
89
|
+
* layout and **does not exist under pnpm**. An adopter depending on
|
|
88
90
|
* the umbrella `vibe-agent-toolkit` package gets no top-level
|
|
89
91
|
* `node_modules/@vibe-agent-toolkit/` directory at all; the real CLI lives under
|
|
90
92
|
* `node_modules/.pnpm/@vibe-agent-toolkit+cli@<ver>_<hash>/…`. So priority 3 never
|
|
@@ -110,7 +112,7 @@ function getDevModeBinary(projectRoot) {
|
|
|
110
112
|
* `vibe-agent-toolkit` package — the documented way to adopt VAT — the CLI is a
|
|
111
113
|
* TRANSITIVE dependency and is deliberately unreachable from the adopter root.
|
|
112
114
|
* Resolving from the adopter alone would still miss it, which is the umbrella case
|
|
113
|
-
*
|
|
115
|
+
* adopters actually hit. It IS reachable from the umbrella package's own
|
|
114
116
|
* directory, so that package is resolved first (it is a direct dependency, hence
|
|
115
117
|
* visible) and used as the base for the second hop.
|
|
116
118
|
*
|
|
@@ -131,7 +133,6 @@ function findLocalInstall(projectRoot) {
|
|
|
131
133
|
// Still existence-checked: a dependency can be installed without having been
|
|
132
134
|
// built (a fresh workspace checkout, a partial install), and spawning a
|
|
133
135
|
// missing file would fail far from its cause.
|
|
134
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- checking for local install
|
|
135
136
|
if (existsSync(localBin))
|
|
136
137
|
return localBin;
|
|
137
138
|
}
|
|
@@ -140,18 +141,29 @@ function findLocalInstall(projectRoot) {
|
|
|
140
141
|
/**
|
|
141
142
|
* `require.resolve` reduced to "found it, or didn't".
|
|
142
143
|
*
|
|
143
|
-
* A
|
|
144
|
+
* A NOT-FOUND is priority 3's ordinary "not applicable" answer — no local
|
|
144
145
|
* install on this base — so it falls through to the next base and ultimately to
|
|
145
|
-
* the global install rather than failing the run.
|
|
146
|
+
* the global install rather than failing the run. Two codes spell it: the
|
|
147
|
+
* package is not installed (`MODULE_NOT_FOUND`), or it is installed but too old
|
|
148
|
+
* to export its manifest (`ERR_PACKAGE_PATH_NOT_EXPORTED`) — either way no
|
|
149
|
+
* usable local install. Anything else (`ERR_INVALID_ARG_VALUE` from a bad
|
|
150
|
+
* `fromPath`, a loader fault) is not "absent" and stays loud.
|
|
146
151
|
*/
|
|
147
152
|
function tryResolve(fromPath, specifier) {
|
|
148
153
|
try {
|
|
149
154
|
return createRequire(fromPath).resolve(specifier);
|
|
150
155
|
}
|
|
151
|
-
catch {
|
|
152
|
-
|
|
156
|
+
catch (error) {
|
|
157
|
+
if (isResolutionNotFound(error))
|
|
158
|
+
return null;
|
|
159
|
+
throw error;
|
|
153
160
|
}
|
|
154
161
|
}
|
|
162
|
+
/** The two `require.resolve` codes that mean "nothing usable here". */
|
|
163
|
+
function isResolutionNotFound(error) {
|
|
164
|
+
const code = error?.code;
|
|
165
|
+
return code === 'MODULE_NOT_FOUND' || code === 'ERR_PACKAGE_PATH_NOT_EXPORTED';
|
|
166
|
+
}
|
|
155
167
|
/**
|
|
156
168
|
* Read version from package.json
|
|
157
169
|
* @param packageJsonPath - Path to package.json file
|
|
@@ -159,17 +171,21 @@ function tryResolve(fromPath, specifier) {
|
|
|
159
171
|
*/
|
|
160
172
|
function readVersion(packageJsonPath) {
|
|
161
173
|
try {
|
|
162
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- reading version from package.json
|
|
163
174
|
if (!existsSync(packageJsonPath)) {
|
|
164
175
|
return null;
|
|
165
176
|
}
|
|
166
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- reading version from package.json
|
|
167
177
|
const content = readFileSync(packageJsonPath, 'utf-8');
|
|
168
178
|
const pkg = JSON.parse(content);
|
|
169
179
|
return pkg.version ?? null;
|
|
170
180
|
}
|
|
171
|
-
catch {
|
|
172
|
-
|
|
181
|
+
catch (error) {
|
|
182
|
+
// The existence check above is not atomic with the read: a manifest removed
|
|
183
|
+
// between the two is "not found". A manifest the OS refuses, or one that is
|
|
184
|
+
// not JSON, is not — this wrapper is about to dispatch to that very install,
|
|
185
|
+
// and a broken manifest is the first fact worth seeing.
|
|
186
|
+
if (isPathAbsentError(error))
|
|
187
|
+
return null;
|
|
188
|
+
throw error;
|
|
173
189
|
}
|
|
174
190
|
}
|
|
175
191
|
/**
|
|
@@ -189,7 +205,6 @@ function main() {
|
|
|
189
205
|
// Priority 1: Explicit override via VAT_ROOT_DIR
|
|
190
206
|
if (process.env['VAT_ROOT_DIR']) {
|
|
191
207
|
const binPath = safePath.join(process.env['VAT_ROOT_DIR'], 'packages/cli/dist/bin.js');
|
|
192
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- dynamic path from env is expected
|
|
193
208
|
if (existsSync(binPath)) {
|
|
194
209
|
if (debug) {
|
|
195
210
|
console.error('[vat debug] Using VAT_ROOT_DIR override');
|
package/dist/bin/vat.js
CHANGED
|
@@ -19,7 +19,8 @@ import { existsSync, readFileSync } from 'node:fs';
|
|
|
19
19
|
import { createRequire } from 'node:module';
|
|
20
20
|
import { dirname } from 'node:path';
|
|
21
21
|
import { fileURLToPath } from 'node:url';
|
|
22
|
-
import {
|
|
22
|
+
import { ExitCode, installLastResortExit } from '@vibe-agent-toolkit/schema';
|
|
23
|
+
import { findNodeWorkspaceRoot, isPathAbsentError, safePath, } from '@vibe-agent-toolkit/utils';
|
|
23
24
|
import { describeStdioBlocking, makeStdioBlocking, } from '@vibe-agent-toolkit/utils/process';
|
|
24
25
|
// Before ANY output. This file — not bin.ts — is what package.json maps `vat` to,
|
|
25
26
|
// so it is the CLI entry point in every installed copy, and `makeStdioBlocking`
|
|
@@ -41,6 +42,8 @@ function reportStdioBlocking(debug) {
|
|
|
41
42
|
console.error(`[vat debug] ${describeStdioBlocking(stdioBlocking)}`);
|
|
42
43
|
}
|
|
43
44
|
}
|
|
45
|
+
// A throw nothing below caught ends on ExitCode.ERROR, never Node's default 1.
|
|
46
|
+
installLastResortExit();
|
|
44
47
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
45
48
|
function spawnCli(binPath, context, contextPath) {
|
|
46
49
|
const env = {
|
|
@@ -48,12 +51,14 @@ function spawnCli(binPath, context, contextPath) {
|
|
|
48
51
|
VAT_CONTEXT: context,
|
|
49
52
|
VAT_CONTEXT_PATH: contextPath,
|
|
50
53
|
};
|
|
51
|
-
//
|
|
52
|
-
|
|
54
|
+
// The node running this wrapper, never a PATH lookup: the child must be the
|
|
55
|
+
// same binary, and `node` by name is whatever PATH says first.
|
|
56
|
+
const result = spawnSync(process.execPath, [binPath, ...process.argv.slice(2)], {
|
|
53
57
|
stdio: 'inherit',
|
|
54
58
|
env,
|
|
55
59
|
});
|
|
56
|
-
|
|
60
|
+
// A child that died of a signal has no status; that is not a finding.
|
|
61
|
+
process.exit(result.status ?? ExitCode.ERROR);
|
|
57
62
|
}
|
|
58
63
|
/**
|
|
59
64
|
* Check if we're in vibe-agent-toolkit repo (developer mode)
|
|
@@ -66,13 +71,10 @@ function getDevModeBinary(projectRoot) {
|
|
|
66
71
|
const wrapperPath = safePath.join(projectRoot, 'packages/cli/dist/bin/vat.js');
|
|
67
72
|
const binPath = safePath.join(projectRoot, 'packages/cli/dist/bin.js');
|
|
68
73
|
if (process.env['VAT_DEBUG'] === '1') {
|
|
69
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- checking project structure files for debug
|
|
70
74
|
console.error(`[vat debug] Dev check - wrapper: ${wrapperPath} (${existsSync(wrapperPath)})`);
|
|
71
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- checking project structure files for debug
|
|
72
75
|
console.error(`[vat debug] Dev check - bin: ${binPath} (${existsSync(binPath)})`);
|
|
73
76
|
}
|
|
74
77
|
// Both files must exist to confirm we're in vibe-agent-toolkit repo
|
|
75
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- checking project structure files
|
|
76
78
|
if (existsSync(wrapperPath) && existsSync(binPath)) {
|
|
77
79
|
return binPath;
|
|
78
80
|
}
|
|
@@ -84,7 +86,7 @@ function getDevModeBinary(projectRoot) {
|
|
|
84
86
|
* Resolved through Node's OWN resolver rather than by probing a path, because the
|
|
85
87
|
* path this used to probe —
|
|
86
88
|
* `<dir>/node_modules/@vibe-agent-toolkit/cli/dist/bin.js` — assumes npm's flat
|
|
87
|
-
* layout and **does not exist under pnpm
|
|
89
|
+
* layout and **does not exist under pnpm**. An adopter depending on
|
|
88
90
|
* the umbrella `vibe-agent-toolkit` package gets no top-level
|
|
89
91
|
* `node_modules/@vibe-agent-toolkit/` directory at all; the real CLI lives under
|
|
90
92
|
* `node_modules/.pnpm/@vibe-agent-toolkit+cli@<ver>_<hash>/…`. So priority 3 never
|
|
@@ -110,7 +112,7 @@ function getDevModeBinary(projectRoot) {
|
|
|
110
112
|
* `vibe-agent-toolkit` package — the documented way to adopt VAT — the CLI is a
|
|
111
113
|
* TRANSITIVE dependency and is deliberately unreachable from the adopter root.
|
|
112
114
|
* Resolving from the adopter alone would still miss it, which is the umbrella case
|
|
113
|
-
*
|
|
115
|
+
* adopters actually hit. It IS reachable from the umbrella package's own
|
|
114
116
|
* directory, so that package is resolved first (it is a direct dependency, hence
|
|
115
117
|
* visible) and used as the base for the second hop.
|
|
116
118
|
*
|
|
@@ -131,7 +133,6 @@ function findLocalInstall(projectRoot) {
|
|
|
131
133
|
// Still existence-checked: a dependency can be installed without having been
|
|
132
134
|
// built (a fresh workspace checkout, a partial install), and spawning a
|
|
133
135
|
// missing file would fail far from its cause.
|
|
134
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- checking for local install
|
|
135
136
|
if (existsSync(localBin))
|
|
136
137
|
return localBin;
|
|
137
138
|
}
|
|
@@ -140,18 +141,29 @@ function findLocalInstall(projectRoot) {
|
|
|
140
141
|
/**
|
|
141
142
|
* `require.resolve` reduced to "found it, or didn't".
|
|
142
143
|
*
|
|
143
|
-
* A
|
|
144
|
+
* A NOT-FOUND is priority 3's ordinary "not applicable" answer — no local
|
|
144
145
|
* install on this base — so it falls through to the next base and ultimately to
|
|
145
|
-
* the global install rather than failing the run.
|
|
146
|
+
* the global install rather than failing the run. Two codes spell it: the
|
|
147
|
+
* package is not installed (`MODULE_NOT_FOUND`), or it is installed but too old
|
|
148
|
+
* to export its manifest (`ERR_PACKAGE_PATH_NOT_EXPORTED`) — either way no
|
|
149
|
+
* usable local install. Anything else (`ERR_INVALID_ARG_VALUE` from a bad
|
|
150
|
+
* `fromPath`, a loader fault) is not "absent" and stays loud.
|
|
146
151
|
*/
|
|
147
152
|
function tryResolve(fromPath, specifier) {
|
|
148
153
|
try {
|
|
149
154
|
return createRequire(fromPath).resolve(specifier);
|
|
150
155
|
}
|
|
151
|
-
catch {
|
|
152
|
-
|
|
156
|
+
catch (error) {
|
|
157
|
+
if (isResolutionNotFound(error))
|
|
158
|
+
return null;
|
|
159
|
+
throw error;
|
|
153
160
|
}
|
|
154
161
|
}
|
|
162
|
+
/** The two `require.resolve` codes that mean "nothing usable here". */
|
|
163
|
+
function isResolutionNotFound(error) {
|
|
164
|
+
const code = error?.code;
|
|
165
|
+
return code === 'MODULE_NOT_FOUND' || code === 'ERR_PACKAGE_PATH_NOT_EXPORTED';
|
|
166
|
+
}
|
|
155
167
|
/**
|
|
156
168
|
* Read version from package.json
|
|
157
169
|
* @param packageJsonPath - Path to package.json file
|
|
@@ -159,17 +171,21 @@ function tryResolve(fromPath, specifier) {
|
|
|
159
171
|
*/
|
|
160
172
|
function readVersion(packageJsonPath) {
|
|
161
173
|
try {
|
|
162
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- reading version from package.json
|
|
163
174
|
if (!existsSync(packageJsonPath)) {
|
|
164
175
|
return null;
|
|
165
176
|
}
|
|
166
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- reading version from package.json
|
|
167
177
|
const content = readFileSync(packageJsonPath, 'utf-8');
|
|
168
178
|
const pkg = JSON.parse(content);
|
|
169
179
|
return pkg.version ?? null;
|
|
170
180
|
}
|
|
171
|
-
catch {
|
|
172
|
-
|
|
181
|
+
catch (error) {
|
|
182
|
+
// The existence check above is not atomic with the read: a manifest removed
|
|
183
|
+
// between the two is "not found". A manifest the OS refuses, or one that is
|
|
184
|
+
// not JSON, is not — this wrapper is about to dispatch to that very install,
|
|
185
|
+
// and a broken manifest is the first fact worth seeing.
|
|
186
|
+
if (isPathAbsentError(error))
|
|
187
|
+
return null;
|
|
188
|
+
throw error;
|
|
173
189
|
}
|
|
174
190
|
}
|
|
175
191
|
/**
|
|
@@ -189,7 +205,6 @@ function main() {
|
|
|
189
205
|
// Priority 1: Explicit override via VAT_ROOT_DIR
|
|
190
206
|
if (process.env['VAT_ROOT_DIR']) {
|
|
191
207
|
const binPath = safePath.join(process.env['VAT_ROOT_DIR'], 'packages/cli/dist/bin.js');
|
|
192
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- dynamic path from env is expected
|
|
193
208
|
if (existsSync(binPath)) {
|
|
194
209
|
if (debug) {
|
|
195
210
|
console.error('[vat debug] Using VAT_ROOT_DIR override');
|
package/dist/bin/vat.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vat.js","sourceRoot":"","sources":["../../src/bin/vat.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAG,OAAO,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,OAAO,EACL,qBAAqB,EACrB,QAAQ,GACT,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,mCAAmC,CAAC;AAE3C,kFAAkF;AAClF,gFAAgF;AAChF,gFAAgF;AAChF,2EAA2E;AAC3E,mEAAmE;AACnE,0CAA0C;AAC1C,MAAM,aAAa,GAAG,iBAAiB,EAAE,CAAC;AAE1C;;;;;;;GAOG;AACH,SAAS,mBAAmB,CAAC,KAAc;IACzC,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,eAAe,qBAAqB,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;AACH,CAAC;AAED,MAAM,SAAS,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAI1D,SAAS,QAAQ,CAAC,OAAe,EAAE,OAAgB,EAAE,WAAoB;IACvE,MAAM,GAAG,GAAG;QACV,GAAG,OAAO,CAAC,GAAG;QACd,WAAW,EAAE,OAAO;QACpB,gBAAgB,EAAE,WAAW;KAC9B,CAAC;IAEF,
|
|
1
|
+
{"version":3,"file":"vat.js","sourceRoot":"","sources":["../../src/bin/vat.ts"],"names":[],"mappings":"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"}
|
package/dist/bin.js
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* Main entry point for vat CLI
|
|
4
4
|
* Uses Commander.js for command structure
|
|
5
5
|
*/
|
|
6
|
+
import { ExitCode, installLastResortExit } from '@vibe-agent-toolkit/schema';
|
|
6
7
|
import { safePath } from '@vibe-agent-toolkit/utils';
|
|
7
8
|
import { describeStdioBlocking, makeStdioBlocking } from '@vibe-agent-toolkit/utils/process';
|
|
8
9
|
import { Command, CommanderError } from 'commander';
|
|
@@ -11,10 +12,13 @@ import { registerCacheControl } from './commands/cache/cache-control.js';
|
|
|
11
12
|
import { exitCodeForCommanderEnding } from './utils/command-error.js';
|
|
12
13
|
import { loadVerboseHelp, writeHelpSync } from './utils/help-loader.js';
|
|
13
14
|
import { createLogger } from './utils/logger.js';
|
|
15
|
+
import { createRootArgvGrammar } from './utils/root-argv.js';
|
|
14
16
|
import { version, getVersionString } from './version.js';
|
|
15
17
|
// Before ANY output: a piped stdio is non-blocking, and every command here exits
|
|
16
18
|
// the moment it finishes, so unflushed bytes would be discarded. See output.ts.
|
|
17
19
|
const stdioBlocking = makeStdioBlocking();
|
|
20
|
+
// A throw nothing below caught ends on ExitCode.ERROR, never Node's default 1 — see `installLastResortExit`.
|
|
21
|
+
installLastResortExit();
|
|
18
22
|
// Reported by hand rather than through the parsed `--debug` option because this
|
|
19
23
|
// has to run before Commander parses anything — the same reason the verbose-help
|
|
20
24
|
// checks below read process.argv directly. Reaching through an internal Node
|
|
@@ -93,171 +97,53 @@ program.hook('preAction', () => {
|
|
|
93
97
|
process.chdir(safePath.resolve(cwd));
|
|
94
98
|
}
|
|
95
99
|
});
|
|
96
|
-
// Handle --help --verbose at root level before parsing
|
|
97
|
-
// Manually check process.argv since --verbose is not a root-level option
|
|
98
|
-
const hasHelp = process.argv.includes('--help') || process.argv.includes('-h');
|
|
99
|
-
const hasVerbose = process.argv.includes('--verbose');
|
|
100
|
-
const hasSubcommand = process.argv.slice(2).some(arg => !arg.startsWith('-'));
|
|
101
|
-
if (hasHelp && hasVerbose && !hasSubcommand) {
|
|
102
|
-
// Root level: vat --help --verbose
|
|
103
|
-
showVerboseHelp();
|
|
104
|
-
process.exit(0);
|
|
105
|
-
}
|
|
106
|
-
// Special handling for "resources --verbose" before parsing
|
|
107
|
-
if (process.argv.includes('resources') && process.argv.includes('--verbose')) {
|
|
108
|
-
const argv = process.argv.slice(2);
|
|
109
|
-
const resourcesIndex = argv.indexOf('resources');
|
|
110
|
-
// Check if there's no subcommand after 'resources'
|
|
111
|
-
const afterResources = argv.slice(resourcesIndex + 1);
|
|
112
|
-
const hasSubcommand = afterResources.some(arg => !arg.startsWith('-'));
|
|
113
|
-
if (!hasSubcommand) {
|
|
114
|
-
(await import('./commands/resources/index.js')).showResourcesVerboseHelp();
|
|
115
|
-
process.exit(0);
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
// Special handling for "rag --verbose" before parsing
|
|
119
|
-
if (process.argv.includes('rag') && process.argv.includes('--verbose')) {
|
|
120
|
-
const argv = process.argv.slice(2);
|
|
121
|
-
const ragIndex = argv.indexOf('rag');
|
|
122
|
-
// Check if there's no subcommand after 'rag'
|
|
123
|
-
const afterRag = argv.slice(ragIndex + 1);
|
|
124
|
-
const hasSubcommand = afterRag.some(arg => !arg.startsWith('-'));
|
|
125
|
-
if (!hasSubcommand) {
|
|
126
|
-
(await import('./commands/rag/index.js')).showRagVerboseHelp();
|
|
127
|
-
process.exit(0);
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
// Special handling for "agent --verbose" before parsing
|
|
131
|
-
if (process.argv.includes('agent') && process.argv.includes('--verbose')) {
|
|
132
|
-
const argv = process.argv.slice(2);
|
|
133
|
-
const agentIndex = argv.indexOf('agent');
|
|
134
|
-
// Check if there's no subcommand after 'agent'
|
|
135
|
-
const afterAgent = argv.slice(agentIndex + 1);
|
|
136
|
-
const hasSubcommand = afterAgent.some(arg => !arg.startsWith('-'));
|
|
137
|
-
if (!hasSubcommand) {
|
|
138
|
-
(await import('./commands/agent/index.js')).showAgentVerboseHelp();
|
|
139
|
-
process.exit(0);
|
|
140
|
-
}
|
|
141
|
-
}
|
|
142
|
-
/** Registers `doctor`, which attaches itself to the program rather than being added. */
|
|
143
|
-
const loadDoctor = async () => (await import('./commands/doctor.js')).doctorCommand(program);
|
|
144
100
|
/**
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
*
|
|
148
|
-
* Read off commander's own declarations rather than hardcoded, because the
|
|
149
|
-
* blast radius grows with every future root option. Today that is `--version`,
|
|
150
|
-
* `--cwd <dir>`, `--debug` and `--no-cache`; only `--cwd` takes a value.
|
|
151
|
-
*
|
|
152
|
-
* ORDERING MATTERS: this must run AFTER `registerCacheControl(program)` above,
|
|
153
|
-
* which is what puts `--no-cache` into `program.options`. Built before that
|
|
154
|
-
* call, `--no-cache` would read as undeclared and every `vat --no-cache <verb>`
|
|
155
|
-
* would silently give up the lazy load and register the whole tree — a quiet
|
|
156
|
-
* perf regression with no failing test to announce it.
|
|
101
|
+
* The argv this program was given, and the grammar every pre-parse decision
|
|
102
|
+
* below reads it through.
|
|
157
103
|
*
|
|
158
|
-
*
|
|
159
|
-
* options
|
|
160
|
-
*
|
|
161
|
-
*
|
|
162
|
-
* error. Accepting them here would re-create the very bug this scan exists to
|
|
163
|
-
* avoid: a token commander rejects, treated by us as an ordinary flag to skip.
|
|
104
|
+
* ⚠️ Built HERE, and not earlier: `createRootArgvGrammar` reads
|
|
105
|
+
* `program.options`, which only holds `--no-cache` after
|
|
106
|
+
* `registerCacheControl(program)` above. See that function for what a
|
|
107
|
+
* prematurely-built grammar silently costs.
|
|
164
108
|
*/
|
|
165
|
-
const
|
|
166
|
-
const
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
valueTakingRootFlags.add(flag);
|
|
173
|
-
};
|
|
174
|
-
for (const option of program.options) {
|
|
175
|
-
const takesValue = Boolean(option.required || option.optional);
|
|
176
|
-
declareRootFlag(option.short, takesValue);
|
|
177
|
-
declareRootFlag(option.long, takesValue);
|
|
178
|
-
}
|
|
179
|
-
/**
|
|
180
|
-
* Classify an option-shaped token against what this program declares.
|
|
181
|
-
*
|
|
182
|
-
* The `--flag=value` case is not just "strip the suffix": commander only
|
|
183
|
-
* accepts the inline form for a VALUE-TAKING option — its `--foo=bar` branch
|
|
184
|
-
* requires `option.required || option.optional` — so `--debug=1` is an unknown
|
|
185
|
-
* option even though `--debug` is declared.
|
|
186
|
-
*
|
|
187
|
-
* Anything unrecognised is reported as `undeclared` rather than guessed at.
|
|
188
|
-
* The cost of being wrong is asymmetric: a false `undeclared` only forfeits the
|
|
189
|
-
* lazy-load saving, while a false "declared" ships a wrong help page at exit 0.
|
|
190
|
-
*/
|
|
191
|
-
function classifyOptionToken(arg) {
|
|
192
|
-
const equalsIndex = arg.indexOf('=');
|
|
193
|
-
if (equalsIndex !== -1) {
|
|
194
|
-
return valueTakingRootFlags.has(arg.slice(0, equalsIndex)) ? 'self-contained' : 'undeclared';
|
|
195
|
-
}
|
|
196
|
-
if (!declaredRootFlags.has(arg))
|
|
197
|
-
return 'undeclared';
|
|
198
|
-
return valueTakingRootFlags.has(arg) ? 'consumes-next' : 'self-contained';
|
|
109
|
+
const argv = process.argv.slice(2);
|
|
110
|
+
const rootArgv = createRootArgvGrammar(program.options);
|
|
111
|
+
// `--verbose` is not a commander option anywhere — it selects a hand-written
|
|
112
|
+
// help page — so these four checks run before parsing.
|
|
113
|
+
if (rootArgv.wantsRootVerboseHelp(argv)) {
|
|
114
|
+
showVerboseHelp();
|
|
115
|
+
process.exit(ExitCode.OK);
|
|
199
116
|
}
|
|
200
117
|
/**
|
|
201
|
-
* The command
|
|
202
|
-
* is needed (or nothing is).
|
|
203
|
-
*
|
|
204
|
-
* This must model commander's grammar, not just "the first token without a
|
|
205
|
-
* dash". Two ways a naive scan got it wrong, both shipped and both verified:
|
|
206
|
-
*
|
|
207
|
-
* - **An option's VALUE is not a verb.** `--cwd <dir>` takes a value that does
|
|
208
|
-
* not start with `-`, so `vat --cwd skills validate` picked `skills`,
|
|
209
|
-
* registered only that, and left `validate` unregistered — while
|
|
210
|
-
* `vat --cwd skills validate --help` printed ROOT help and exited **0**.
|
|
211
|
-
* Only the space-separated form was affected; `--cwd=skills` carries its
|
|
212
|
-
* value inline. The advertised `vat --cwd <dir> build` also lost the entire
|
|
213
|
-
* startup saving, since a non-colliding directory matched no loader key and
|
|
214
|
-
* fell through to loading everything.
|
|
215
|
-
* - **`--help` BEFORE the verb renders ROOT help**, which has to list every
|
|
216
|
-
* command. Loading only the named one made `vat --help audit` print a help
|
|
217
|
-
* page claiming the CLI has exactly one command, and exit 0. `vat audit
|
|
218
|
-
* --help` is the other order and returns on the verb before reaching the
|
|
219
|
-
* flag, so it still loads just `audit`.
|
|
220
|
-
* - **An UNDECLARED option is not a flag to skip over.** `--help` is only the
|
|
221
|
-
* most visible member of that class — it is not in `program.options` either,
|
|
222
|
-
* which is exactly why the bail-out above works. Commander's `parseOptions`
|
|
223
|
-
* switches its destination to `unknown` at the FIRST unrecognised
|
|
224
|
-
* option-shaped token and never switches back, so the verb after it never
|
|
225
|
-
* reaches `operands`; the run ends in `unknownOption()` +
|
|
226
|
-
* `showHelpAfterError()`, i.e. ROOT help. `vat --verbose audit` therefore
|
|
227
|
-
* printed an error page listing exactly one command. Every undeclared option
|
|
228
|
-
* gets the `--help` treatment for that reason.
|
|
229
|
-
* - **A lone `-` is an OPERAND, not an option.** Commander's `maybeOption`
|
|
230
|
-
* requires `arg.length > 1`, so `-` lands in `operands` and reaches the
|
|
231
|
-
* `command:*` handler as an unknown command — which again renders root help.
|
|
232
|
-
* Falling through to the operand return below hands `-` to the dispatcher,
|
|
233
|
-
* where it matches no loader key and the whole tree loads.
|
|
118
|
+
* The command groups whose `--verbose` help page is a hand-written document.
|
|
234
119
|
*
|
|
235
|
-
*
|
|
236
|
-
*
|
|
237
|
-
*
|
|
238
|
-
* behaviourally correct — the scan only ever trades away startup time.
|
|
120
|
+
* A table rather than three near-identical blocks: they diverged once already
|
|
121
|
+
* (see `wantsGroupVerboseHelp`), and the loader stays inside the arrow so the
|
|
122
|
+
* group's module is imported only when that group is the one being asked about.
|
|
239
123
|
*/
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
124
|
+
const VERBOSE_HELP_GROUPS = [
|
|
125
|
+
{
|
|
126
|
+
group: 'resources',
|
|
127
|
+
show: async () => (await import('./commands/resources/index.js')).showResourcesVerboseHelp(),
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
group: 'rag',
|
|
131
|
+
show: async () => (await import('./commands/rag/index.js')).showRagVerboseHelp(),
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
group: 'agent',
|
|
135
|
+
show: async () => (await import('./commands/agent/index.js')).showAgentVerboseHelp(),
|
|
136
|
+
},
|
|
137
|
+
];
|
|
138
|
+
for (const { group, show } of VERBOSE_HELP_GROUPS) {
|
|
139
|
+
if (rootArgv.wantsGroupVerboseHelp(argv, group)) {
|
|
140
|
+
await show();
|
|
141
|
+
process.exit(ExitCode.OK);
|
|
257
142
|
}
|
|
258
|
-
return undefined;
|
|
259
143
|
}
|
|
260
|
-
|
|
144
|
+
/** Registers `doctor`, which attaches itself to the program rather than being added. */
|
|
145
|
+
const loadDoctor = async () => (await import('./commands/doctor.js')).doctorCommand(program);
|
|
146
|
+
const requestedCommand = rootArgv.requestedCommand(argv);
|
|
261
147
|
/**
|
|
262
148
|
* Whether this invocation is answerable without any command module.
|
|
263
149
|
*
|
|
@@ -271,8 +157,8 @@ const requestedCommand = readRequestedCommand(process.argv.slice(2));
|
|
|
271
157
|
* has no subcommands.
|
|
272
158
|
*/
|
|
273
159
|
const versionOnly = requestedCommand === undefined
|
|
274
|
-
&&
|
|
275
|
-
&&
|
|
160
|
+
&& argv.length > 0
|
|
161
|
+
&& argv.every(arg => arg === '--version');
|
|
276
162
|
if (requestedCommand === 'doctor') {
|
|
277
163
|
await loadDoctor();
|
|
278
164
|
}
|
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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"}
|