@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scope-guard.js","sourceRoot":"","sources":["../../../src/commands/skills/scope-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,sFAAsF;AACtF,MAAM,CAAC,MAAM,eAAe,GAAG,gCAAgC,CAAC;AAmBhE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA2B;IAC9D,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE5C,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,
|
|
1
|
+
{"version":3,"file":"scope-guard.js","sourceRoot":"","sources":["../../../src/commands/skills/scope-guard.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE/C,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,sFAAsF;AACtF,MAAM,CAAC,MAAM,eAAe,GAAG,gCAAgC,CAAC;AAmBhE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAA2B;IAC9D,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE5C,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC3C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,mBAAmB,CAAC;IACtD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE;QAAE,OAAO,iBAAiB,CAAC;IAEhE,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACnE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC;QAC1D,OAAO,MAAM,eAAe,QAAQ,CAAC;IACvC,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAA2B,EAC3B,OAAe,EACf,MAAc;IAEd,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAC3C,OAAO,CACL,WAAW,OAAO,sBAAsB,OAAO,MAAM,MAAM,MAAM;QACjE,IAAI;QACJ,MAAM,OAAO,sBAAsB,eAAe,2BAA2B;QAC7E,wEAAwE;QACxE,sCAAsC,aAAa,yBAAyB;QAC5E,wEAAwE;QACxE,eAAe;QACf,IAAI;QACJ,iBAAiB,OAAO,8BAA8B,eAAe,KAAK;QAC1E,8DAA8D;QAC9D,0EAA0E,CAC3E,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAA2B,EAC3B,OAA2B;IAE3B,MAAM,MAAM,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC7C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO;IAEjC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9E,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/shared.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/shared.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE;QACL,MAAM,EAAE,MAAM,EAAE,CAAC;KACjB,CAAC;CACF;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CASvE;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACtC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,GACrC,MAAM,CAOR"}
|
|
@@ -3,17 +3,16 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { existsSync } from 'node:fs';
|
|
5
5
|
import { readFile } from 'node:fs/promises';
|
|
6
|
+
import { ExitCode } from '@vibe-agent-toolkit/schema';
|
|
6
7
|
import { safePath } from '@vibe-agent-toolkit/utils';
|
|
7
8
|
/**
|
|
8
9
|
* Read and parse package.json from current directory
|
|
9
10
|
*/
|
|
10
11
|
export async function readPackageJson(cwd) {
|
|
11
12
|
const packageJsonPath = safePath.join(cwd, 'package.json');
|
|
12
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- Reading from validated current directory
|
|
13
13
|
if (!existsSync(packageJsonPath)) {
|
|
14
14
|
throw new Error(`package.json not found in current directory: ${cwd}`);
|
|
15
15
|
}
|
|
16
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- Reading from validated current directory
|
|
17
16
|
const content = await readFile(packageJsonPath, 'utf-8');
|
|
18
17
|
return JSON.parse(content);
|
|
19
18
|
}
|
|
@@ -25,10 +24,9 @@ export async function readPackageJson(cwd) {
|
|
|
25
24
|
* @returns The validated absolute path (same as input)
|
|
26
25
|
*/
|
|
27
26
|
export function validateSkillSourcePath(skillPath, logger) {
|
|
28
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- Path from config-driven glob discovery
|
|
29
27
|
if (!existsSync(skillPath)) {
|
|
30
28
|
logger.error(`Skill source not found: ${skillPath}`);
|
|
31
|
-
process.exit(
|
|
29
|
+
process.exit(ExitCode.ERROR);
|
|
32
30
|
}
|
|
33
31
|
return skillPath;
|
|
34
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/commands/skills/shared.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAiBrD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAW;IAChD,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAE3D
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/commands/skills/shared.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAiBrD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAW;IAChD,MAAM,eAAe,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IAE3D,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,gDAAgD,GAAG,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IACzD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;AAC3C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACtC,SAAiB,EACjB,MAAuC;IAEvC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,MAAM,CAAC,KAAK,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,SAAS,CAAC;AAClB,CAAC"}
|
|
@@ -5,14 +5,51 @@
|
|
|
5
5
|
* finds matching SKILL.md files, and extracts skill names from frontmatter.
|
|
6
6
|
*/
|
|
7
7
|
import type { SkillsConfig } from '@vibe-agent-toolkit/resources';
|
|
8
|
+
import { type UnreadablePolicy } from '@vibe-agent-toolkit/utils/crawl';
|
|
8
9
|
import type { DiscoveredSkill } from './command-helpers.js';
|
|
10
|
+
/**
|
|
11
|
+
* How discovery treats a directory its crawl cannot list. REQUIRED at every
|
|
12
|
+
* call — there is no default, so `tsc` enumerates the callers and each one
|
|
13
|
+
* carries its decision at the call site.
|
|
14
|
+
*
|
|
15
|
+
* `'refuse'` — discovery throws `DirectoryListingRefusedError` with the
|
|
16
|
+
* adopter-facing sentence (root-relative directory, `skills.include` remedy),
|
|
17
|
+
* because a shorter skill list is the tell-less drop every command downstream
|
|
18
|
+
* would then confidently work from. The right answer for `vat skills validate`,
|
|
19
|
+
* `vat skills build`, `vat verify` and the rest, which must not act on a
|
|
20
|
+
* population they could not see. Discovery owns the sentence, which is why the
|
|
21
|
+
* arm is a literal here rather than the crawler's `{ refuse: { root, remedy } }`.
|
|
22
|
+
*
|
|
23
|
+
* `{ degrade }` — for a caller whose honest answer is to keep going: `vat
|
|
24
|
+
* audit`, which reports an unreadable path as `SCAN_PATH_UNREADABLE` and
|
|
25
|
+
* validates every readable sibling. Discovery enumerates around the refused
|
|
26
|
+
* directory, hands the refusal to the handler, and returns every skill it
|
|
27
|
+
* COULD see. The same arm, same shape, as the crawler's own.
|
|
28
|
+
*
|
|
29
|
+
* 🪤 This was `DiscoveryOptions { onUnreadable?: … }`, optional, defaulting to
|
|
30
|
+
* refuse. Every caller that omitted it compiled, and the one that should have
|
|
31
|
+
* degraded surfaced a round later as a HIGH.
|
|
32
|
+
*/
|
|
33
|
+
export type DiscoveryUnreadablePolicy = 'refuse' | Extract<UnreadablePolicy, {
|
|
34
|
+
degrade: unknown;
|
|
35
|
+
}>;
|
|
9
36
|
/**
|
|
10
37
|
* Read a skill's name from SKILL.md frontmatter, falling back to its H1 title and
|
|
11
38
|
* then its filename. Exported so the Claude plugin build resolves a plugin-local
|
|
12
39
|
* skill's name through the SAME definition `vat skills build` uses — per-skill
|
|
13
40
|
* config is keyed by name, so two answers would mean two effective configs.
|
|
41
|
+
*
|
|
42
|
+
* The fallback is a KEY, not a verdict. A name is optional on the agentskills.io
|
|
43
|
+
* schema, so a nameless frontmatter block is a legal skill and needs a key; a
|
|
44
|
+
* file with NO frontmatter at all is not a skill, but discovery still returns it
|
|
45
|
+
* under this key so the glob match is reported rather than dropped — the
|
|
46
|
+
* packaging validator refuses it as `SKILL_MISSING_FRONTMATTER`, located at the
|
|
47
|
+
* file's path. Excluding it here instead would shrink the denominator silently,
|
|
48
|
+
* which is the exact tell-less drop `includeUntracked` below exists to prevent.
|
|
14
49
|
*/
|
|
15
50
|
export declare function readSkillName(skillPath: string): Promise<string | undefined>;
|
|
51
|
+
/** The knob an adopter has when `skills.include` reaches a directory the crawl cannot list. */
|
|
52
|
+
export declare const SKILLS_INCLUDE_REMEDY = "Fix the permissions on that directory, or narrow the `skills.include` pattern so its base no longer reaches into it.";
|
|
16
53
|
/**
|
|
17
54
|
* Discover skills from config yaml skills section.
|
|
18
55
|
*
|
|
@@ -28,7 +65,9 @@ export declare function readSkillName(skillPath: string): Promise<string | undef
|
|
|
28
65
|
*
|
|
29
66
|
* @param skillsConfig - The skills section from vibe-agent-toolkit.config.yaml
|
|
30
67
|
* @param projectRoot - Absolute path to project root (where config yaml lives)
|
|
68
|
+
* @param unreadable - What to do with a directory the crawl cannot list —
|
|
69
|
+
* see {@link DiscoveryUnreadablePolicy}; required, no default
|
|
31
70
|
* @returns Array of discovered skills with names and source paths
|
|
32
71
|
*/
|
|
33
|
-
export declare function discoverSkillsFromConfig(skillsConfig: SkillsConfig, projectRoot: string): Promise<DiscoveredSkill[]>;
|
|
72
|
+
export declare function discoverSkillsFromConfig(skillsConfig: SkillsConfig, projectRoot: string, unreadable: DiscoveryUnreadablePolicy): Promise<DiscoveredSkill[]>;
|
|
34
73
|
//# sourceMappingURL=skill-discovery.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-discovery.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/skill-discovery.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"skill-discovery.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/skill-discovery.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,EAAkB,KAAK,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGxF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAE5D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,MAAM,yBAAyB,GAAG,QAAQ,GAAG,OAAO,CAAC,gBAAgB,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAYnG;;;;;;;;;;;;;GAaG;AACH,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAkBlF;AAyFD,+FAA+F;AAC/F,eAAO,MAAM,qBAAqB,yHACsF,CAAC;AAEzH;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,wBAAwB,CAC5C,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,yBAAyB,GACpC,OAAO,CAAC,eAAe,EAAE,CAAC,CA0B5B"}
|
|
@@ -24,6 +24,14 @@ const DISCOVERY_EXCLUDE = [
|
|
|
24
24
|
* then its filename. Exported so the Claude plugin build resolves a plugin-local
|
|
25
25
|
* skill's name through the SAME definition `vat skills build` uses — per-skill
|
|
26
26
|
* config is keyed by name, so two answers would mean two effective configs.
|
|
27
|
+
*
|
|
28
|
+
* The fallback is a KEY, not a verdict. A name is optional on the agentskills.io
|
|
29
|
+
* schema, so a nameless frontmatter block is a legal skill and needs a key; a
|
|
30
|
+
* file with NO frontmatter at all is not a skill, but discovery still returns it
|
|
31
|
+
* under this key so the glob match is reported rather than dropped — the
|
|
32
|
+
* packaging validator refuses it as `SKILL_MISSING_FRONTMATTER`, located at the
|
|
33
|
+
* file's path. Excluding it here instead would shrink the denominator silently,
|
|
34
|
+
* which is the exact tell-less drop `includeUntracked` below exists to prevent.
|
|
27
35
|
*/
|
|
28
36
|
export async function readSkillName(skillPath) {
|
|
29
37
|
const parsed = await parseFileCached(skillPath, 'markdown');
|
|
@@ -84,8 +92,7 @@ function groupIncludePatternsByBase(include, projectRoot) {
|
|
|
84
92
|
* the root does not exist (mirrors audit's filesystem-first tolerance for
|
|
85
93
|
* patterns pointing at nothing).
|
|
86
94
|
*/
|
|
87
|
-
async function crawlOneBase(base, globs) {
|
|
88
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- base derived from validated config
|
|
95
|
+
async function crawlOneBase(base, globs, projectRoot, unreadable) {
|
|
89
96
|
if (!existsSync(base)) {
|
|
90
97
|
return [];
|
|
91
98
|
}
|
|
@@ -102,8 +109,27 @@ async function crawlOneBase(base, globs) {
|
|
|
102
109
|
// this and keeps the fast path (unlike `respectGitignore: false`, which costs
|
|
103
110
|
// a full walk); the inventory lane already used it for the same reason.
|
|
104
111
|
includeUntracked: true,
|
|
112
|
+
// Under `'refuse'`, a directory the crawl cannot LIST stops discovery, by
|
|
113
|
+
// name. The alternative — enumerate around it — is the same tell-less drop
|
|
114
|
+
// described above, from the other direction: one fewer skill, exit 0, and
|
|
115
|
+
// every command downstream (build, validate, verify, audit's config-aware
|
|
116
|
+
// lane) confidently working from the shorter list. The remedy names
|
|
117
|
+
// `skills.include` rather than `skills.exclude`, because `exclude` is
|
|
118
|
+
// applied to the crawl's RESULT and cannot stop the crawl from entering
|
|
119
|
+
// the directory; only a narrower include base can. Expressed against the
|
|
120
|
+
// project root — the coordinates the include pattern itself is written in,
|
|
121
|
+
// `..` and all.
|
|
122
|
+
//
|
|
123
|
+
// A caller that has decided to degrade passes its handler straight through
|
|
124
|
+
// (see {@link DiscoveryUnreadablePolicy}); the refusal is then reported by
|
|
125
|
+
// that caller, and the crawl continues past the directory.
|
|
126
|
+
unreadable: unreadable === 'refuse'
|
|
127
|
+
? { refuse: { root: projectRoot, remedy: SKILLS_INCLUDE_REMEDY } }
|
|
128
|
+
: unreadable,
|
|
105
129
|
});
|
|
106
130
|
}
|
|
131
|
+
/** The knob an adopter has when `skills.include` reaches a directory the crawl cannot list. */
|
|
132
|
+
export const SKILLS_INCLUDE_REMEDY = 'Fix the permissions on that directory, or narrow the `skills.include` pattern so its base no longer reaches into it.';
|
|
107
133
|
/**
|
|
108
134
|
* Discover skills from config yaml skills section.
|
|
109
135
|
*
|
|
@@ -119,9 +145,11 @@ async function crawlOneBase(base, globs) {
|
|
|
119
145
|
*
|
|
120
146
|
* @param skillsConfig - The skills section from vibe-agent-toolkit.config.yaml
|
|
121
147
|
* @param projectRoot - Absolute path to project root (where config yaml lives)
|
|
148
|
+
* @param unreadable - What to do with a directory the crawl cannot list —
|
|
149
|
+
* see {@link DiscoveryUnreadablePolicy}; required, no default
|
|
122
150
|
* @returns Array of discovered skills with names and source paths
|
|
123
151
|
*/
|
|
124
|
-
export async function discoverSkillsFromConfig(skillsConfig, projectRoot) {
|
|
152
|
+
export async function discoverSkillsFromConfig(skillsConfig, projectRoot, unreadable) {
|
|
125
153
|
const { include, exclude } = skillsConfig;
|
|
126
154
|
const patternsByBase = groupIncludePatternsByBase(include, projectRoot);
|
|
127
155
|
const userExcludeMatcher = exclude && exclude.length > 0
|
|
@@ -129,7 +157,7 @@ export async function discoverSkillsFromConfig(skillsConfig, projectRoot) {
|
|
|
129
157
|
: null;
|
|
130
158
|
const foundAbsPaths = new Set();
|
|
131
159
|
for (const [base, globs] of patternsByBase) {
|
|
132
|
-
const crawled = await crawlOneBase(base, globs);
|
|
160
|
+
const crawled = await crawlOneBase(base, globs, projectRoot, unreadable);
|
|
133
161
|
for (const absPath of crawled) {
|
|
134
162
|
if (userExcludeMatcher) {
|
|
135
163
|
const relFromProject = toForwardSlash(safePath.relative(projectRoot, absPath));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skill-discovery.js","sourceRoot":"","sources":["../../../src/commands/skills/skill-discovery.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"skill-discovery.js","sourceRoot":"","sources":["../../../src/commands/skills/skill-discovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,4 +36,19 @@ export interface ResolvedNpmSource {
|
|
|
36
36
|
* Caller must clean up all entries in tempDirs when finished.
|
|
37
37
|
*/
|
|
38
38
|
export declare function resolveNpmOrTarballSource(source: string): Promise<ResolvedNpmSource>;
|
|
39
|
+
/**
|
|
40
|
+
* Remove the temp directories a resolved source left behind.
|
|
41
|
+
*
|
|
42
|
+
* Best-effort by design — the command's answer is already out, and a temp
|
|
43
|
+
* directory that will not go (an `EBUSY` on Windows, a handle a scanner still
|
|
44
|
+
* holds) must not turn a finished install into a failed one. But best-effort
|
|
45
|
+
* is not silent: a directory left behind is named, so the operator can remove
|
|
46
|
+
* what this run could not. `force: true` already tolerates one that is gone.
|
|
47
|
+
*
|
|
48
|
+
* @param tempDirs - What {@link resolveNpmOrTarballSource} minted
|
|
49
|
+
* @param logger - Where a directory that stays is reported
|
|
50
|
+
*/
|
|
51
|
+
export declare function removeResolvedTempDirs(tempDirs: readonly string[], logger: {
|
|
52
|
+
warn: (message: string) => void;
|
|
53
|
+
}): Promise<void>;
|
|
39
54
|
//# sourceMappingURL=source-resolvers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-resolvers.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/source-resolvers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAM5D;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"source-resolvers.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/source-resolvers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAM5D;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAalD;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CASpE;AAED,MAAM,WAAW,iBAAiB;IAChC,8EAA8E;IAC9E,SAAS,EAAE,MAAM,CAAC;IAClB,8CAA8C;IAC9C,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,iBAAiB,CAAC,CAmB5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,MAAM,EAAE;IAAE,IAAI,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAAE,GAC1C,OAAO,CAAC,IAAI,CAAC,CASf"}
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
* Callers are responsible for cleaning up temp directories after use.
|
|
6
6
|
*/
|
|
7
7
|
import { existsSync } from 'node:fs';
|
|
8
|
-
import { mkdtemp } from 'node:fs/promises';
|
|
9
|
-
import { mkdirSyncReal, normalizedTmpdir, safePath } from '@vibe-agent-toolkit/utils';
|
|
8
|
+
import { mkdtemp, rm } from 'node:fs/promises';
|
|
9
|
+
import { mkdirSyncReal, normalizedTmpdir, safePath, toForwardSlash } from '@vibe-agent-toolkit/utils';
|
|
10
10
|
import * as tar from 'tar';
|
|
11
11
|
import { downloadNpmPackage } from '../claude/plugin/helpers.js';
|
|
12
12
|
/**
|
|
@@ -29,7 +29,6 @@ export async function extractTarballToTemp(tarballPath) {
|
|
|
29
29
|
mkdirSyncReal(tempDir, { recursive: true });
|
|
30
30
|
await tar.extract({ file: tarballPath, cwd: tempDir });
|
|
31
31
|
const packageDir = safePath.join(tempDir, 'package');
|
|
32
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- temp path we just created
|
|
33
32
|
if (!existsSync(packageDir)) {
|
|
34
33
|
throw new Error(`Tarball does not contain a package/ directory: ${tarballPath}`);
|
|
35
34
|
}
|
|
@@ -41,7 +40,6 @@ export async function extractTarballToTemp(tarballPath) {
|
|
|
41
40
|
*/
|
|
42
41
|
export function findSkillsDirInNpmPackage(packageDir) {
|
|
43
42
|
const distSkills = safePath.join(packageDir, 'dist', 'skills');
|
|
44
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- temp path
|
|
45
43
|
if (existsSync(distSkills)) {
|
|
46
44
|
return distSkills;
|
|
47
45
|
}
|
|
@@ -70,4 +68,27 @@ export async function resolveNpmOrTarballSource(source) {
|
|
|
70
68
|
tempDirs: [tempDir],
|
|
71
69
|
};
|
|
72
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Remove the temp directories a resolved source left behind.
|
|
73
|
+
*
|
|
74
|
+
* Best-effort by design — the command's answer is already out, and a temp
|
|
75
|
+
* directory that will not go (an `EBUSY` on Windows, a handle a scanner still
|
|
76
|
+
* holds) must not turn a finished install into a failed one. But best-effort
|
|
77
|
+
* is not silent: a directory left behind is named, so the operator can remove
|
|
78
|
+
* what this run could not. `force: true` already tolerates one that is gone.
|
|
79
|
+
*
|
|
80
|
+
* @param tempDirs - What {@link resolveNpmOrTarballSource} minted
|
|
81
|
+
* @param logger - Where a directory that stays is reported
|
|
82
|
+
*/
|
|
83
|
+
export async function removeResolvedTempDirs(tempDirs, logger) {
|
|
84
|
+
for (const dir of tempDirs) {
|
|
85
|
+
try {
|
|
86
|
+
await rm(dir, { recursive: true, force: true });
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
90
|
+
logger.warn(`Could not remove temp directory ${toForwardSlash(dir)}: ${reason}`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
73
94
|
//# sourceMappingURL=source-resolvers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"source-resolvers.js","sourceRoot":"","sources":["../../../src/commands/skills/source-resolvers.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"source-resolvers.js","sourceRoot":"","sources":["../../../src/commands/skills/source-resolvers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-command.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/validate-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,wBAAgB,qBAAqB,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"validate-command.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/validate-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoBpC,wBAAgB,qBAAqB,IAAI,OAAO,CAqH/C"}
|
|
@@ -43,8 +43,10 @@ Description:
|
|
|
43
43
|
|
|
44
44
|
Validation Checks:
|
|
45
45
|
Required (non-overridable):
|
|
46
|
-
-
|
|
47
|
-
|
|
46
|
+
- A YAML frontmatter block that parses. A matched file with none — a
|
|
47
|
+
README the glob drifted onto, a SKILL.md that lost its fence — is
|
|
48
|
+
refused as SKILL_MISSING_FRONTMATTER at error, not passed as a skill.
|
|
49
|
+
(A block without a name is legal — agentskills.io makes name optional.)
|
|
48
50
|
- No reserved words (anthropic/claude)
|
|
49
51
|
- No broken internal links
|
|
50
52
|
- No circular references
|
|
@@ -107,9 +109,15 @@ Output:
|
|
|
107
109
|
Run-level findings (validation.allow entries no skill matched) are printed
|
|
108
110
|
in full in both forms; they belong to the project config, not to any skill.
|
|
109
111
|
|
|
112
|
+
A run that validated ZERO skills — skills.include globs that matched no
|
|
113
|
+
SKILL.md — is refused, not passed: one non-overridable RESOURCE_CHECK_BROKEN
|
|
114
|
+
at error naming the globs, status: error, exit 1. A config with no skills:
|
|
115
|
+
block at all is "nothing to validate": no document, exit 0.
|
|
116
|
+
|
|
110
117
|
Exit Codes:
|
|
111
118
|
0 - All validations passed (or all errors allowed by valid config)
|
|
112
|
-
1 - Validation errors found (severity=error, not allowed)
|
|
119
|
+
1 - Validation errors found (severity=error, not allowed), or the run
|
|
120
|
+
validated no skill (skills.include matched nothing)
|
|
113
121
|
2 - System error (config invalid, skill path not found)
|
|
114
122
|
|
|
115
123
|
Requirements:
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-command.js","sourceRoot":"","sources":["../../../src/commands/skills/validate-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAA2B,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAqC,eAAe,EAAE,MAAM,eAAe,CAAC;AAEnF;;;;;;;;;GASG;AACH,MAAM,aAAa,GAAuB;IACxC,OAAO,EAAE,qBAAqB;IAC9B,aAAa,EAAE,qBAAqB;CACrC,CAAC;AAEF,MAAM,UAAU,qBAAqB;IACnC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAExC,OAAO;SACJ,WAAW,CAAC,sEAAsE,CAAC;SACnF,QAAQ,CAAC,QAAQ,EAAE,iEAAiE,CAAC;SACrF,MAAM,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;SACxD,MAAM,CAAC,eAAe,EAAE,4FAA4F,CAAC;SACrH,MAAM,CAAC,aAAa,EAAE,sBAAsB,CAAC;SAC7C,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,OAAqC,EAAE,EAAE;QACnF,oBAAoB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC,CAAC;SACD,WAAW,CACV,OAAO,EACP
|
|
1
|
+
{"version":3,"file":"validate-command.js","sourceRoot":"","sources":["../../../src/commands/skills/validate-command.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,oBAAoB,EAA2B,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAqC,eAAe,EAAE,MAAM,eAAe,CAAC;AAEnF;;;;;;;;;GASG;AACH,MAAM,aAAa,GAAuB;IACxC,OAAO,EAAE,qBAAqB;IAC9B,aAAa,EAAE,qBAAqB;CACrC,CAAC;AAEF,MAAM,UAAU,qBAAqB;IACnC,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAExC,OAAO;SACJ,WAAW,CAAC,sEAAsE,CAAC;SACnF,QAAQ,CAAC,QAAQ,EAAE,iEAAiE,CAAC;SACrF,MAAM,CAAC,gBAAgB,EAAE,8BAA8B,CAAC;SACxD,MAAM,CAAC,eAAe,EAAE,4FAA4F,CAAC;SACrH,MAAM,CAAC,aAAa,EAAE,sBAAsB,CAAC;SAC7C,MAAM,CAAC,KAAK,EAAE,OAA2B,EAAE,OAAqC,EAAE,EAAE;QACnF,oBAAoB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC,CAAC;SACD,WAAW,CACV,OAAO,EACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkGL,CACI,CAAC;IAEJ,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* using validateSkillForPackaging with merged packaging config.
|
|
6
6
|
*/
|
|
7
7
|
import { type DeclaredEvalSuite, type PackagingValidationResult, type SkillPackagingConfig, type SkillValidationSharedContext } from '@vibe-agent-toolkit/agent-skills';
|
|
8
|
-
import { ResourceRegistry, type ProjectConfig, type ResourcePopulationSource } from '@vibe-agent-toolkit/resources';
|
|
8
|
+
import { ResourceRegistry, type ProjectConfig, type ResourcePopulationSource, type SkillsConfig } from '@vibe-agent-toolkit/resources';
|
|
9
9
|
import { type SeverityCounts, type ValidationIssue } from '@vibe-agent-toolkit/schema';
|
|
10
10
|
import { type createLogger } from '../../utils/logger.js';
|
|
11
11
|
import { type PhaseOutcome } from '../phase-utils.js';
|
|
@@ -36,6 +36,46 @@ type ValidationStatus = 'success' | 'warning' | 'error';
|
|
|
36
36
|
* validated at the time is what produced 78 warnings from 3 real entries.
|
|
37
37
|
*/
|
|
38
38
|
type RunIssues = readonly ValidationIssue[];
|
|
39
|
+
/**
|
|
40
|
+
* The discovery declaration a run's document answers for: the globs that
|
|
41
|
+
* decided which skills it validated. Only these two keys are read, so a caller
|
|
42
|
+
* with a full `SkillsConfig` and a test with two arrays hand in the same thing.
|
|
43
|
+
*/
|
|
44
|
+
export type SkillDiscoveryPatterns = Pick<SkillsConfig, 'include' | 'exclude'>;
|
|
45
|
+
/**
|
|
46
|
+
* The run-level findings, with the run-integrity refusal derived in front of
|
|
47
|
+
* them when the run validated no skill.
|
|
48
|
+
*
|
|
49
|
+
* 🚨 **Zero skills validated is an ERROR, not a clean run.** `skills.include`
|
|
50
|
+
* globs that discover nothing — a typo, a renamed directory, an `exclude` that
|
|
51
|
+
* swallows every match — used to take an early return that printed one info
|
|
52
|
+
* line and published NO document at exit 0, and `vat validate` folded that into
|
|
53
|
+
* `status: success`: the gate the docs name as THE gate, green forever on a
|
|
54
|
+
* config that checked nothing. `vat verify` refused the identical config in its
|
|
55
|
+
* `packaged-content` phase and its message sent the operator to this command,
|
|
56
|
+
* which then said nothing.
|
|
57
|
+
*
|
|
58
|
+
* 🔑 The ONE seam both channels read. {@link buildValidateSummary} (the
|
|
59
|
+
* document) and {@link formatValidationReportLines} (stderr) both derive their
|
|
60
|
+
* issue set here, so "denominator zero, status clean" is unrepresentable on
|
|
61
|
+
* either channel rather than merely unwritten, and the exit code — derived from
|
|
62
|
+
* the document's own counts — agrees with both by construction. Through the
|
|
63
|
+
* shared mechanism in `run-integrity.ts`: one non-overridable
|
|
64
|
+
* `RESOURCE_CHECK_BROKEN` at `error`.
|
|
65
|
+
*
|
|
66
|
+
* Only the empty GLOB is refused. A config with no `skills:` block at all is a
|
|
67
|
+
* choice — the project declares no skills — and both orchestrators already skip
|
|
68
|
+
* this phase on that config; the phase declines it the same way (no document,
|
|
69
|
+
* exit 0) rather than inventing a refusal for a gate nobody declared.
|
|
70
|
+
*
|
|
71
|
+
* @param results - One result per skill the run validated: the denominator
|
|
72
|
+
* @param runIssues - The run's own findings so far (`ALLOW_UNUSED`), so an
|
|
73
|
+
* existing run-integrity report is not duplicated
|
|
74
|
+
* @param patterns - The discovery globs, named in the refusal so the operator
|
|
75
|
+
* sees what matched nothing
|
|
76
|
+
* @returns The run-level issues the document and the stderr report publish
|
|
77
|
+
*/
|
|
78
|
+
export declare function withRunIntegrity(results: readonly PackagingValidationResult[], runIssues: RunIssues, patterns: SkillDiscoveryPatterns): ValidationIssue[];
|
|
39
79
|
/**
|
|
40
80
|
* Build the YAML summary object.
|
|
41
81
|
*
|
|
@@ -62,8 +102,13 @@ type RunIssues = readonly ValidationIssue[];
|
|
|
62
102
|
* zeros: `issueCounts` and `runIssueCounts` keep their complete
|
|
63
103
|
* `{errors, warnings, info}` shape in both modes, because they are the
|
|
64
104
|
* reconciliation identity rather than something a reader scans.
|
|
105
|
+
*
|
|
106
|
+
* A run over ZERO skills is refused here, not passed — see
|
|
107
|
+
* {@link withRunIntegrity}, which is why the discovery `patterns` are a
|
|
108
|
+
* parameter of a document builder: the refusal names the globs that matched
|
|
109
|
+
* nothing, and the builder is where the refusal is derived.
|
|
65
110
|
*/
|
|
66
|
-
export declare function buildValidateSummary(results: PackagingValidationResult[], duration: number, verbose: boolean, runIssues: RunIssues): {
|
|
111
|
+
export declare function buildValidateSummary(results: PackagingValidationResult[], duration: number, verbose: boolean, runIssues: RunIssues, patterns: SkillDiscoveryPatterns): {
|
|
67
112
|
status: ValidationStatus;
|
|
68
113
|
issueCounts: SeverityCounts;
|
|
69
114
|
runIssueCounts: SeverityCounts;
|
|
@@ -89,8 +134,12 @@ export declare function buildValidateSummary(results: PackagingValidationResult[
|
|
|
89
134
|
* Run-level findings and the banner are printed in full either way — there are
|
|
90
135
|
* ~14 of the former, and they belong to the project config rather than to any
|
|
91
136
|
* asset, so there is no row for them to collapse into.
|
|
137
|
+
*
|
|
138
|
+
* Reads the same seam as the document builder ({@link withRunIntegrity}), so a
|
|
139
|
+
* run over zero skills prints the refusal here too rather than a green banner
|
|
140
|
+
* over a document that says `error`.
|
|
92
141
|
*/
|
|
93
|
-
export declare function formatValidationReportLines(results: PackagingValidationResult[], runIssues: RunIssues, verbose: boolean): string[];
|
|
142
|
+
export declare function formatValidationReportLines(results: PackagingValidationResult[], runIssues: RunIssues, verbose: boolean, patterns: SkillDiscoveryPatterns): string[];
|
|
94
143
|
/**
|
|
95
144
|
* Log validation progress for a single skill.
|
|
96
145
|
*
|
|
@@ -161,10 +210,20 @@ export declare function buildSharedValidationContext(skills: ValidatableSkill[],
|
|
|
161
210
|
* Validate every configured skill and hand back the document and exit code,
|
|
162
211
|
* printing the document nowhere.
|
|
163
212
|
*
|
|
164
|
-
* The phase entry point for `vat validate` and `vat verify`. The
|
|
165
|
-
*
|
|
166
|
-
*
|
|
167
|
-
* `
|
|
213
|
+
* The phase entry point for `vat validate` and `vat verify`. The one early
|
|
214
|
+
* return publishes NO document: a config with no `skills:` block prints one
|
|
215
|
+
* info line, exits 0, and `phaseResultFromOutcome` records that as `success`
|
|
216
|
+
* with no `report` — both orchestrators skip the phase on that config anyway,
|
|
217
|
+
* because declaring no skills is a choice.
|
|
218
|
+
*
|
|
219
|
+
* A `skills:` block whose globs discover nothing is NOT a second early return.
|
|
220
|
+
* It used to be — one info line, no document, exit 0 — and that made `vat
|
|
221
|
+
* validate` green forever on a typo'd glob. It now runs through the same
|
|
222
|
+
* builder as a populated batch, which refuses a zero denominator (see
|
|
223
|
+
* {@link withRunIntegrity}): a document with one `RESOURCE_CHECK_BROKEN` at
|
|
224
|
+
* `error`, `status: error`, exit 1. Exit 1 and not 2, deliberately: the run
|
|
225
|
+
* completed and the gate FAILED, which is the class an operator's CI already
|
|
226
|
+
* handles; 2 is for a run that could not answer at all.
|
|
168
227
|
*/
|
|
169
228
|
export declare function runSkillsValidatePhase(pathArg: string | undefined, options: SkillsValidateCommandOptions): Promise<PhaseOutcome>;
|
|
170
229
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/validate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/commands/skills/validate.ts"],"names":[],"mappings":"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"}
|