@vibe-agent-toolkit/cli 0.2.0-rc.1 → 0.2.0-rc.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -5
- package/dist/bin/vat +95 -28
- package/dist/bin/vat.js +95 -28
- package/dist/bin/vat.js.map +1 -1
- package/dist/bin.js +115 -76
- package/dist/bin.js.map +1 -1
- package/dist/command-loaders.d.ts +44 -0
- package/dist/command-loaders.d.ts.map +1 -0
- package/dist/command-loaders.js +60 -0
- package/dist/command-loaders.js.map +1 -0
- 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/index.js +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 +66 -13
- 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 +2 -2
- package/dist/commands/audit/distributed-tree.d.ts.map +1 -1
- package/dist/commands/audit/distributed-tree.js +11 -7
- package/dist/commands/audit/distributed-tree.js.map +1 -1
- package/dist/commands/audit/git-url-clone.d.ts +1 -1
- package/dist/commands/audit/git-url-clone.d.ts.map +1 -1
- package/dist/commands/audit/git-url-clone.js.map +1 -1
- package/dist/commands/audit/hierarchical-output.d.ts +1 -1
- package/dist/commands/audit/hierarchical-output.d.ts.map +1 -1
- package/dist/commands/audit/hierarchical-output.js +1 -1
- package/dist/commands/audit/hierarchical-output.js.map +1 -1
- package/dist/commands/audit/provenance.d.ts.map +1 -1
- package/dist/commands/audit/provenance.js +4 -3
- package/dist/commands/audit/provenance.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 +98 -8
- package/dist/commands/audit.d.ts.map +1 -1
- package/dist/commands/audit.js +1126 -394
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/build.d.ts +1 -1
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +40 -36
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/cache/cache-control.d.ts +82 -0
- package/dist/commands/cache/cache-control.d.ts.map +1 -0
- package/dist/commands/cache/cache-control.js +86 -0
- package/dist/commands/cache/cache-control.js.map +1 -0
- package/dist/commands/cache/clear.d.ts +34 -6
- package/dist/commands/cache/clear.d.ts.map +1 -1
- package/dist/commands/cache/clear.js +101 -15
- package/dist/commands/cache/clear.js.map +1 -1
- package/dist/commands/cache/index.d.ts +13 -63
- package/dist/commands/cache/index.d.ts.map +1 -1
- package/dist/commands/cache/index.js +47 -79
- package/dist/commands/cache/index.js.map +1 -1
- package/dist/commands/claude/claude-config.d.ts.map +1 -1
- package/dist/commands/claude/claude-config.js +6 -0
- package/dist/commands/claude/claude-config.js.map +1 -1
- package/dist/commands/claude/context.d.ts +340 -0
- package/dist/commands/claude/context.d.ts.map +1 -0
- package/dist/commands/claude/context.js +1080 -0
- package/dist/commands/claude/context.js.map +1 -0
- package/dist/commands/claude/index.d.ts +14 -0
- package/dist/commands/claude/index.d.ts.map +1 -1
- package/dist/commands/claude/index.js +22 -2
- package/dist/commands/claude/index.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 +40 -31
- 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 +73 -22
- package/dist/commands/claude/marketplace/validate.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/validate.js +407 -72
- 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 +54 -1
- package/dist/commands/claude/org/helpers.d.ts.map +1 -1
- package/dist/commands/claude/org/helpers.js +42 -7
- package/dist/commands/claude/org/helpers.js.map +1 -1
- package/dist/commands/claude/org/index.d.ts.map +1 -1
- package/dist/commands/claude/org/index.js +24 -16
- package/dist/commands/claude/org/index.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 +527 -0
- package/dist/commands/claude/org/skills.d.ts.map +1 -1
- package/dist/commands/claude/org/skills.js +1414 -108
- 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 +6 -3
- 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 +11 -7
- package/dist/commands/claude/org/workspaces.js.map +1 -1
- package/dist/commands/claude/plugin/build.d.ts +41 -3
- package/dist/commands/claude/plugin/build.d.ts.map +1 -1
- package/dist/commands/claude/plugin/build.js +147 -80
- 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 +2 -7
- 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 +93 -62
- 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/marketplace-json.d.ts +24 -9
- package/dist/commands/claude/plugin/marketplace-json.d.ts.map +1 -1
- package/dist/commands/claude/plugin/marketplace-json.js +10 -9
- package/dist/commands/claude/plugin/marketplace-json.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 +3 -6
- 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 -14
- 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 +17 -15
- package/dist/commands/consistency-check.d.ts.map +1 -1
- package/dist/commands/consistency-check.js +152 -106
- 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 +1 -2
- 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 +95 -41
- 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 +20 -12
- 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 +50 -0
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +245 -52
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/inventory.d.ts +13 -1
- package/dist/commands/inventory.d.ts.map +1 -1
- package/dist/commands/inventory.js +121 -17
- package/dist/commands/inventory.js.map +1 -1
- package/dist/commands/mcp/collections.d.ts +1 -1
- package/dist/commands/mcp/collections.d.ts.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 +182 -114
- package/dist/commands/phase-utils.d.ts.map +1 -1
- package/dist/commands/phase-utils.js +154 -163
- 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 +3 -2
- 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 +64 -0
- package/dist/commands/rag/index-command.d.ts.map +1 -1
- package/dist/commands/rag/index-command.js +72 -6
- 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 +23 -10
- 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/builtin-help.d.ts +27 -0
- package/dist/commands/resources/builtin-help.d.ts.map +1 -0
- package/dist/commands/resources/builtin-help.js +46 -0
- package/dist/commands/resources/builtin-help.js.map +1 -0
- package/dist/commands/resources/check-progress.d.ts +154 -0
- package/dist/commands/resources/check-progress.d.ts.map +1 -0
- package/dist/commands/resources/check-progress.js +222 -0
- package/dist/commands/resources/check-progress.js.map +1 -0
- package/dist/commands/resources/check-supervisor.d.ts +465 -0
- package/dist/commands/resources/check-supervisor.d.ts.map +1 -0
- package/dist/commands/resources/check-supervisor.js +573 -0
- package/dist/commands/resources/check-supervisor.js.map +1 -0
- package/dist/commands/resources/check.d.ts +593 -0
- package/dist/commands/resources/check.d.ts.map +1 -0
- package/dist/commands/resources/check.js +1365 -0
- package/dist/commands/resources/check.js.map +1 -0
- package/dist/commands/resources/index.d.ts.map +1 -1
- package/dist/commands/resources/index.js +418 -4
- package/dist/commands/resources/index.js.map +1 -1
- package/dist/commands/resources/query.d.ts +106 -0
- package/dist/commands/resources/query.d.ts.map +1 -0
- package/dist/commands/resources/query.js +177 -0
- package/dist/commands/resources/query.js.map +1 -0
- package/dist/commands/resources/scan.d.ts +24 -0
- package/dist/commands/resources/scan.d.ts.map +1 -1
- package/dist/commands/resources/scan.js +17 -8
- package/dist/commands/resources/scan.js.map +1 -1
- package/dist/commands/resources/validate.d.ts +42 -2
- package/dist/commands/resources/validate.d.ts.map +1 -1
- package/dist/commands/resources/validate.js +208 -55
- 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 +40 -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 +99 -62
- package/dist/commands/skill/review.js.map +1 -1
- package/dist/commands/skill/test/configure.d.ts +56 -0
- package/dist/commands/skill/test/configure.d.ts.map +1 -1
- package/dist/commands/skill/test/configure.js +75 -16
- package/dist/commands/skill/test/configure.js.map +1 -1
- package/dist/commands/skill/test/run.d.ts +63 -10
- package/dist/commands/skill/test/run.d.ts.map +1 -1
- package/dist/commands/skill/test/run.js +258 -77
- package/dist/commands/skill/test/run.js.map +1 -1
- package/dist/commands/skills/build.d.ts +94 -4
- package/dist/commands/skills/build.d.ts.map +1 -1
- package/dist/commands/skills/build.js +325 -97
- 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 -31
- 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 +3 -5
- 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 +47 -6
- package/dist/commands/skills/skill-discovery.d.ts.map +1 -1
- package/dist/commands/skills/skill-discovery.js +61 -11
- 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 +140 -4
- package/dist/commands/skills/validate.d.ts.map +1 -1
- package/dist/commands/skills/validate.js +224 -67
- package/dist/commands/skills/validate.js.map +1 -1
- package/dist/commands/validate.d.ts +1 -1
- package/dist/commands/validate.d.ts.map +1 -1
- package/dist/commands/validate.js +63 -27
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/verify.d.ts +119 -15
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +357 -142
- 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 +100 -0
- package/dist/report-schemas.js.map +1 -0
- package/dist/skill-resolution/classify.js +2 -2
- package/dist/skill-resolution/classify.js.map +1 -1
- 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 +55 -57
- 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 +7 -4
- package/dist/utils/agent-runner.js.map +1 -1
- package/dist/utils/claude-context-lens.d.ts +34 -0
- package/dist/utils/claude-context-lens.d.ts.map +1 -0
- package/dist/utils/claude-context-lens.js +39 -0
- package/dist/utils/claude-context-lens.js.map +1 -0
- package/dist/utils/command-error.d.ts +138 -20
- package/dist/utils/command-error.d.ts.map +1 -1
- package/dist/utils/command-error.js +172 -36
- 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 +40 -14
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/corpus-target.d.ts +26 -0
- package/dist/utils/corpus-target.d.ts.map +1 -0
- package/dist/utils/corpus-target.js +35 -0
- package/dist/utils/corpus-target.js.map +1 -0
- 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-anchor.d.ts +2 -2
- package/dist/utils/issue-anchor.d.ts.map +1 -1
- package/dist/utils/issue-anchor.js +1 -1
- package/dist/utils/issue-rendering.d.ts +3 -3
- package/dist/utils/issue-rendering.d.ts.map +1 -1
- package/dist/utils/issue-rendering.js +3 -3
- package/dist/utils/issue-rendering.js.map +1 -1
- package/dist/utils/issue-severity.d.ts +12 -5
- package/dist/utils/issue-severity.d.ts.map +1 -1
- package/dist/utils/issue-severity.js +1 -1
- package/dist/utils/issue-severity.js.map +1 -1
- package/dist/utils/optional-backend.d.ts +78 -0
- package/dist/utils/optional-backend.d.ts.map +1 -0
- package/dist/utils/optional-backend.js +117 -0
- package/dist/utils/optional-backend.js.map +1 -0
- package/dist/utils/output.d.ts +26 -0
- package/dist/utils/output.d.ts.map +1 -1
- package/dist/utils/output.js +35 -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/population-wiring.d.ts +100 -0
- package/dist/utils/population-wiring.d.ts.map +1 -0
- package/dist/utils/population-wiring.js +98 -0
- package/dist/utils/population-wiring.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-lenses.d.ts +98 -0
- package/dist/utils/projection-lenses.d.ts.map +1 -0
- package/dist/utils/projection-lenses.js +203 -0
- package/dist/utils/projection-lenses.js.map +1 -0
- package/dist/utils/projection-query.d.ts +324 -0
- package/dist/utils/projection-query.d.ts.map +1 -0
- package/dist/utils/projection-query.js +357 -0
- package/dist/utils/projection-query.js.map +1 -0
- package/dist/utils/projection-store.d.ts +335 -0
- package/dist/utils/projection-store.d.ts.map +1 -0
- package/dist/utils/projection-store.js +522 -0
- package/dist/utils/projection-store.js.map +1 -0
- package/dist/utils/relation-limits.d.ts +50 -0
- package/dist/utils/relation-limits.d.ts.map +1 -0
- package/dist/utils/relation-limits.js +50 -0
- package/dist/utils/relation-limits.js.map +1 -0
- 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 +132 -2
- package/dist/utils/resource-loader.d.ts.map +1 -1
- package/dist/utils/resource-loader.js +288 -27
- 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-discovery.d.ts.map +1 -1
- package/dist/utils/skill-discovery.js +2 -1
- package/dist/utils/skill-discovery.js.map +1 -1
- package/dist/utils/skill-packaging-config.d.ts +63 -1
- package/dist/utils/skill-packaging-config.d.ts.map +1 -1
- package/dist/utils/skill-packaging-config.js +56 -1
- 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 +36 -0
- package/dist/utils/vat-bin-path.d.ts.map +1 -0
- package/dist/utils/vat-bin-path.js +48 -0
- package/dist/utils/vat-bin-path.js.map +1 -0
- package/dist/utils/verdict-helpers.d.ts +1 -1
- package/dist/utils/verdict-helpers.d.ts.map +1 -1
- package/dist/utils/verdict-helpers.js +1 -1
- package/dist/utils/verdict-helpers.js.map +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -3
- package/dist/version.js.map +1 -1
- package/docs/agent.md +2 -2
- package/docs/audit.md +141 -37
- package/docs/doctor.md +7 -6
- package/docs/index.md +19 -11
- package/docs/mcp.md +2 -2
- package/docs/rag.md +3 -2
- package/docs/resources.md +13 -3
- package/docs/skill-test.md +10 -9
- package/docs/skills.md +53 -69
- package/package.json +35 -26
- package/schemas/ard-emit.json +149 -0
- package/schemas/okf-validate.json +170 -0
- package/schemas/resources-check.json +229 -0
- package/schemas/skill-review.json +230 -0
- package/dist/commands/resources/command-helpers.d.ts +0 -5
- package/dist/commands/resources/command-helpers.d.ts.map +0 -1
- package/dist/commands/resources/command-helpers.js +0 -6
- package/dist/commands/resources/command-helpers.js.map +0 -1
|
@@ -1,4 +1,376 @@
|
|
|
1
|
+
import type { MultipartFile, MultipartResult, OrgApiClient } from '@vibe-agent-toolkit/claude-marketplace';
|
|
2
|
+
import type { ValidationConfig } from '@vibe-agent-toolkit/schema';
|
|
1
3
|
import { Command } from 'commander';
|
|
4
|
+
import type { OrgCommandFailure } from './helpers.js';
|
|
5
|
+
export interface SkillUploadResult {
|
|
6
|
+
id: string;
|
|
7
|
+
displayTitle: string;
|
|
8
|
+
version: string;
|
|
9
|
+
createdAt: string;
|
|
10
|
+
}
|
|
11
|
+
interface UploadLogger {
|
|
12
|
+
info: (msg: string) => void;
|
|
13
|
+
/**
|
|
14
|
+
* REQUIRED, not optional. An optional `warn` invites `logger.warn?.(…)`,
|
|
15
|
+
* which drops the message wherever a caller supplied only `info` — and a
|
|
16
|
+
* warning that vanishes depending on its caller is the exact shape this
|
|
17
|
+
* command keeps being audited for.
|
|
18
|
+
*/
|
|
19
|
+
warn: (msg: string) => void;
|
|
20
|
+
}
|
|
21
|
+
/** Read `POST /v1/skills` — the shape measured against the live API. */
|
|
22
|
+
export declare function readCreateSkillResponse(raw: unknown): SkillUploadResult;
|
|
23
|
+
/** The document a delete command publishes. */
|
|
24
|
+
export interface SkillDeleteResult {
|
|
25
|
+
readonly id: string;
|
|
26
|
+
readonly deleted: boolean;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Read a DELETE response into the result a delete command prints.
|
|
30
|
+
*
|
|
31
|
+
* 🔑 Same class of problem as {@link readSkillUploadResponse} — the client's
|
|
32
|
+
* `<T>` is an assertion, not a check — but the OPPOSITE verdict on an empty
|
|
33
|
+
* body, and deliberately so. The client used to reject a 2xx carrying no body
|
|
34
|
+
* with a parse error, which reported a 204 DELETE that SUCCEEDED as a failure;
|
|
35
|
+
* that is fixed, and the value now handed to this reader for such a response is
|
|
36
|
+
* `undefined`. Refusing it here, the way an upload response is refused, would
|
|
37
|
+
* reinstate the same lie one layer up — and reading `.id` off it, which is what
|
|
38
|
+
* the two call sites did, is a `TypeError` in place of a report.
|
|
39
|
+
*
|
|
40
|
+
* So an empty body is read as the success it is: the status already said the
|
|
41
|
+
* resource is gone, the id is the one this process asked for, and there is
|
|
42
|
+
* nothing else to learn. Measured live behaviour today is a JSON body carrying
|
|
43
|
+
* `type: skill_deleted`, so the empty case is LATENT rather than a live
|
|
44
|
+
* regression — but it is one 204 away, and a latent `TypeError` is not a
|
|
45
|
+
* contract.
|
|
46
|
+
*
|
|
47
|
+
* `deleted` is false only when the body affirmatively names a DIFFERENT
|
|
48
|
+
* outcome, which is the one case where the API is saying something this command
|
|
49
|
+
* must not paper over — and {@link reportDelete} is what makes the run END that
|
|
50
|
+
* way rather than merely say so in a field nothing reads.
|
|
51
|
+
*
|
|
52
|
+
* ⚠️ `expectedTypes` is a LIST because only one member of it is measured.
|
|
53
|
+
* `skill_deleted` came back from a live `DELETE /v1/skills/{id}`;
|
|
54
|
+
* `skill_version_deleted` is the plausible spelling for the version endpoint and
|
|
55
|
+
* has never been seen. A single guessed string would make every version delete
|
|
56
|
+
* report `deleted: false` — and now exit 1 — if the vendor spells it differently
|
|
57
|
+
* by one character. Accepting either keeps the check honest about what it knows:
|
|
58
|
+
* a body naming something that is neither is a real divergence worth failing on.
|
|
59
|
+
*/
|
|
60
|
+
export declare function readDeleteResponse(raw: unknown, requestedId: string, expectedTypes: readonly string[]): SkillDeleteResult;
|
|
61
|
+
/** The success types measured against the live `DELETE /v1/skills/{id}`. */
|
|
62
|
+
export declare const SKILL_DELETED_TYPES: readonly string[];
|
|
63
|
+
/**
|
|
64
|
+
* The success types a version delete may answer with — see
|
|
65
|
+
* {@link readDeleteResponse} for why this is two and not one.
|
|
66
|
+
*/
|
|
67
|
+
export declare const SKILL_VERSION_DELETED_TYPES: readonly string[];
|
|
68
|
+
/**
|
|
69
|
+
* A delete's document, tagged as a FAILED run when the API said the thing was
|
|
70
|
+
* not deleted.
|
|
71
|
+
*
|
|
72
|
+
* 🔑 Without this, `deleted: false` was computed, printed under
|
|
73
|
+
* `status: success`, and exited 0 — the exact "the run completed and its outcome
|
|
74
|
+
* is wrong" shape that {@link orgCommandFailure} was added in this same change to
|
|
75
|
+
* fix for `--from-npm`, in the one branch that never got wired to it. A CI
|
|
76
|
+
* wrapper spelled `vat claude org skills delete X || fail` reported green while
|
|
77
|
+
* the skill was still there.
|
|
78
|
+
*
|
|
79
|
+
* The document is still PUBLISHED — the id and the verdict are what the operator
|
|
80
|
+
* needs — and only the exit code changes. Throwing instead would end non-zero and
|
|
81
|
+
* discard the report.
|
|
82
|
+
*/
|
|
83
|
+
export declare function reportDelete(raw: unknown, requestedId: string, expectedTypes: readonly string[]): SkillDeleteResult | OrgCommandFailure;
|
|
84
|
+
/** The document a version delete publishes: which version, of which skill. */
|
|
85
|
+
export interface SkillVersionDeleteResult extends SkillDeleteResult {
|
|
86
|
+
readonly version: string;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* A version delete's document — the same verdict as {@link reportDelete}, about
|
|
90
|
+
* a subject that can actually be identified.
|
|
91
|
+
*
|
|
92
|
+
* 🚨 **The version-delete document used to name no version at all, and its `id`
|
|
93
|
+
* meant two different things depending on the response.** It went through
|
|
94
|
+
* `reportDelete(raw, skillId, …)`, so `readDeleteResponse` returned the API's
|
|
95
|
+
* ECHOED id when there was a body — the VERSION identifier — and fell back to
|
|
96
|
+
* the requested id — the SKILL identifier — on a 204. Two runs of the same
|
|
97
|
+
* command therefore published `id` fields from two different namespaces, and
|
|
98
|
+
* neither run's document said which of a skill's versions had been destroyed.
|
|
99
|
+
* An audit trail of an irreversible operation that cannot name what it destroyed
|
|
100
|
+
* is not an audit trail.
|
|
101
|
+
*
|
|
102
|
+
* Both fields are now local knowledge, which is the whole point: this process
|
|
103
|
+
* asked to delete `version` of `skillId` and the API confirmed a deletion, so
|
|
104
|
+
* nothing about the subject's identity has to be recovered from the response
|
|
105
|
+
* shape. The response is still read — for the VERDICT, which is the one thing
|
|
106
|
+
* only the API knows.
|
|
107
|
+
*/
|
|
108
|
+
export declare function reportVersionDelete(raw: unknown, skillId: string, version: string): SkillVersionDeleteResult | OrgCommandFailure;
|
|
109
|
+
/**
|
|
110
|
+
* Add the versions a `--all` run destroyed to its report, preserving whatever
|
|
111
|
+
* verdict {@link reportDelete} reached.
|
|
112
|
+
*
|
|
113
|
+
* Unwrapping and re-wrapping rather than spreading into the tagged value: the
|
|
114
|
+
* failure tag sits BESIDE the document, so a naive `{ ...result, deletedVersions }`
|
|
115
|
+
* on a failure would produce an object carrying `orgCommandFailed` next to the
|
|
116
|
+
* skill's fields and publish the tag as part of the operator's document.
|
|
117
|
+
*/
|
|
118
|
+
export declare function mergeDeleteReport(result: SkillDeleteResult | OrgCommandFailure, deletedVersions: readonly string[]): object;
|
|
119
|
+
/** Read `POST /v1/skills/{id}/versions`. */
|
|
120
|
+
export declare function readSkillVersionResponse(raw: unknown): SkillUploadResult;
|
|
121
|
+
/**
|
|
122
|
+
* Build the multipart request body for an upload, refusing it before anything is
|
|
123
|
+
* sent when THAT BODY is OVER the API's upload ceiling.
|
|
124
|
+
*
|
|
125
|
+
* 🔑 **The ceiling is INCLUSIVE, and that is measured rather than reasoned.** A
|
|
126
|
+
* request body of exactly {@link API_SKILL_MAX_UPLOAD_BYTES} bytes is ACCEPTED;
|
|
127
|
+
* one byte more is refused `413`:
|
|
128
|
+
*
|
|
129
|
+
* | raw file bytes | + framing | = body | live API |
|
|
130
|
+
* |---|---|---|---|
|
|
131
|
+
* | 31,456,735 | 545 | **31,457,280** | `status: success` |
|
|
132
|
+
* | 31,456,736 | 545 | 31,457,281 | `413` |
|
|
133
|
+
*
|
|
134
|
+
* So the comparison here is `>`, not `>=`. An earlier version of this code used
|
|
135
|
+
* `>=` on the argument that firing AT the ceiling was the conservative reading —
|
|
136
|
+
* an argument that was never measured, and the measurement above refutes it. It
|
|
137
|
+
* is not conservative: it refuses a body the API takes, and the operator has no
|
|
138
|
+
* way to tell that VAT and not Anthropic said no.
|
|
139
|
+
*
|
|
140
|
+
* ⚠️ **The build-time lane deliberately differs, and must not be "harmonised"
|
|
141
|
+
* with this one.** `checkPackagedSizeLimit` fires when FILE BYTES reach the same
|
|
142
|
+
* number — `>=` — because framing is never zero, so files totalling exactly the
|
|
143
|
+
* limit always produce a request LARGER than the limit and therefore a real 413.
|
|
144
|
+
* Two lanes, two measures, two rules: **file bytes `>=` refuse; request bytes `>`
|
|
145
|
+
* refuse.** Both are right about the quantity each can see.
|
|
146
|
+
*
|
|
147
|
+
* THE one gate every upload passes through, whichever shape it started as. The
|
|
148
|
+
* check used to live inside the directory-packaging step alone, so
|
|
149
|
+
* `skills install big-skill.zip` — the one input that is by construction a
|
|
150
|
+
* single large binary, and the shape the check was written for — reached the
|
|
151
|
+
* wire unmeasured.
|
|
152
|
+
*
|
|
153
|
+
* 🔑 **It weighs the BODY, not the sum of the file bytes.** The API measures the
|
|
154
|
+
* request, and the request is this buffer. Summing `file.content.length` — what
|
|
155
|
+
* this did — ignores the per-part framing `buildMultipartFormData` adds: a
|
|
156
|
+
* 51-byte boundary line, a `Content-Disposition` of 61 bytes plus the filename, a
|
|
157
|
+
* 42-byte content-type-and-blank-line and a 2-byte trailing CRLF, so 156 bytes
|
|
158
|
+
* plus the filename PER FILE, plus a 53-byte terminator. A 1,000-file bundle
|
|
159
|
+
* therefore carries ~180 KiB that the old measure could not see, and a bundle
|
|
160
|
+
* whose content sat just under the ceiling passed the pre-flight and then earned
|
|
161
|
+
* the 413 this check exists to prevent — 11 seconds for 30 MB, measured.
|
|
162
|
+
*
|
|
163
|
+
* No headroom constant closes that gap, and none is added: the exact number is
|
|
164
|
+
* available for free by building the body first and asking it how long it is.
|
|
165
|
+
* The body is then RETURNED, so the bytes that were weighed are the bytes that go
|
|
166
|
+
* out; a gate that only inspected its inputs would be one refactor away from
|
|
167
|
+
* measuring something the caller no longer sends.
|
|
168
|
+
*
|
|
169
|
+
* The build-time `PACKAGED_SIZE_EXCEEDS_API_LIMIT` cannot do this — there is no
|
|
170
|
+
* request at build time — so it weighs files on disk and says so. The two
|
|
171
|
+
* messages name what each measured rather than pretending to be the same number.
|
|
172
|
+
*/
|
|
173
|
+
export declare function buildUploadBodyOrRefuse(fields: Record<string, string>, files: readonly MultipartFile[], bundleRoot?: string): MultipartResult;
|
|
174
|
+
/**
|
|
175
|
+
* A vendor refusal this CLI can answer with a specific next command.
|
|
176
|
+
*
|
|
177
|
+
* `matches` are ALL required, and are deliberately more than one: a single word
|
|
178
|
+
* like `version` appears in refusals that have nothing to do with this case, so
|
|
179
|
+
* each entry names both the subject the API is talking about and the verdict it
|
|
180
|
+
* reached about it.
|
|
181
|
+
*/
|
|
182
|
+
interface VendorRefusalRemedy {
|
|
183
|
+
/** Every pattern must match the API's message for the remedy to apply. */
|
|
184
|
+
readonly matches: readonly RegExp[];
|
|
185
|
+
/** Appended to the vendor's sentence — never substituted for it. */
|
|
186
|
+
readonly remedy: string;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* A failed request, re-thrown with the command that answers it when — and only
|
|
190
|
+
* when — the API said one of the specific things listed by the caller.
|
|
191
|
+
*
|
|
192
|
+
* **What is matched, exactly:** an {@link ApiRequestError} whose `statusCode` is
|
|
193
|
+
* 400 and whose message satisfies every pattern of one {@link
|
|
194
|
+
* VendorRefusalRemedy}. Both live wordings are measured, not guessed:
|
|
195
|
+
* `400 Skill cannot reuse an existing display_title` and
|
|
196
|
+
* `400 Cannot delete skill with existing versions. Delete all versions first.`
|
|
197
|
+
*
|
|
198
|
+
* **How it fails safe:** anything that does not match is returned UNTOUCHED, so
|
|
199
|
+
* an unrelated 400 keeps the API's exact words and gets no misleading remedy. If
|
|
200
|
+
* the vendor rewords a refusal, the operator loses a hint — they never gain a
|
|
201
|
+
* wrong one. The remedy is appended, so the vendor's sentence survives in full.
|
|
202
|
+
*
|
|
203
|
+
* One mechanism, several refusals, and each call site passes only the refusals
|
|
204
|
+
* that are REACHABLE from it — a second copy of this matcher per case is how the
|
|
205
|
+
* two would come to disagree about what "fail safe" means.
|
|
206
|
+
*/
|
|
207
|
+
export declare function withRemedy(error: unknown, candidates: readonly VendorRefusalRemedy[]): unknown;
|
|
208
|
+
/**
|
|
209
|
+
* The skill still has versions, so it cannot be deleted.
|
|
210
|
+
*
|
|
211
|
+
* `--all` leads, because it IS the one-step path: the `--all` branch of this
|
|
212
|
+
* command fetches every version and deletes them before deleting the skill. The
|
|
213
|
+
* by-hand sequence follows for an operator who wants to see what is there first.
|
|
214
|
+
* Naming only `versions delete` would send them round a loop they can already
|
|
215
|
+
* ask the CLI to run.
|
|
216
|
+
*/
|
|
217
|
+
export declare const EXISTING_VERSIONS_REFUSAL: VendorRefusalRemedy;
|
|
218
|
+
/** Only the CREATE path can earn a duplicate-title refusal — see {@link uploadSkillDir}. */
|
|
219
|
+
export declare function withDuplicateTitleRemedy(error: unknown): unknown;
|
|
220
|
+
/**
|
|
221
|
+
* The version's SKILL.md declares a different `name` than the skill it is being
|
|
222
|
+
* added to.
|
|
223
|
+
*
|
|
224
|
+
* The server enforces name consistency per `skill_id` (measured), which is why
|
|
225
|
+
* `versions add` cannot silently re-root a skill's file tree and why this is the
|
|
226
|
+
* one refusal that endpoint can earn. The remedy names both fixes, because which
|
|
227
|
+
* one is right depends on what the operator meant: keep the skill and put its
|
|
228
|
+
* name back, or publish the renamed tree as the separate skill it now is.
|
|
229
|
+
*
|
|
230
|
+
* ⚠️ The vendor's exact wording here has NOT been measured, only the fact of the
|
|
231
|
+
* refusal. `withRemedy` fails safe on no match — the operator loses a hint, never
|
|
232
|
+
* gains a wrong one — so a guessed pattern is the conservative thing to ship.
|
|
233
|
+
*/
|
|
234
|
+
export declare const VERSION_NAME_MISMATCH_REFUSAL: VendorRefusalRemedy;
|
|
235
|
+
/** Only the VERSION path can earn a name-consistency refusal — see {@link uploadSkillVersionDir}. */
|
|
236
|
+
export declare function withVersionRootRemedy(error: unknown): unknown;
|
|
237
|
+
/**
|
|
238
|
+
* A failure that got NO answer from the server, re-thrown saying what was
|
|
239
|
+
* actually sent and what a retry would risk.
|
|
240
|
+
*
|
|
241
|
+
* ⛔ **The trigger is a RECORDED FACT, never the error's class.** This used to
|
|
242
|
+
* read `if (error instanceof ApiRequestError) return error;` — "a completed
|
|
243
|
+
* exchange always arrives as an `ApiRequestError`, so anything else must be a
|
|
244
|
+
* dropped connection". The first half is true and the converse is not, and the
|
|
245
|
+
* converse is what shipped: `buildSkillsHeaders()` throws a plain `Error` before
|
|
246
|
+
* a socket is ever opened, so
|
|
247
|
+
* `ANTHROPIC_API_KEY= vat claude org skills install <dir>` told a first-time
|
|
248
|
+
* operator, on top of the real "no key" message, that a connection had closed,
|
|
249
|
+
* that VAT had sent 6.8 KiB (the length of a buffer that never left the process),
|
|
250
|
+
* and that the outcome was unknown — then sent them to a recovery command that
|
|
251
|
+
* fails with the identical missing-key error. Three false statements and a loop.
|
|
252
|
+
*
|
|
253
|
+
* So the gate is POSITIVE and evidential: annotate only an
|
|
254
|
+
* {@link ApiTransportError}, which exists only once the transport has been
|
|
255
|
+
* reached and carries `bytesSent` read off the socket at failure time. Anything
|
|
256
|
+
* else — a missing credential, a bad URL, a response VAT refused to read —
|
|
257
|
+
* passes through with its own message untouched.
|
|
258
|
+
*
|
|
259
|
+
* Two outcomes, because the byte count decides which is TRUE:
|
|
260
|
+
*
|
|
261
|
+
* - **Nothing left the machine** (`bytesSent === 0`: DNS never resolved, the
|
|
262
|
+
* connection was refused, the handshake failed). The outcome is not unknown,
|
|
263
|
+
* it is known: nothing happened. Saying "check what exists" here would send
|
|
264
|
+
* an operator to look for a skill that was never sent.
|
|
265
|
+
* - **Some bytes went out and no status came back.** Now the outcome genuinely
|
|
266
|
+
* is unknown, and the part the operator cannot see is how far it got. The
|
|
267
|
+
* client never replays a POST — one that failed with no status may still have
|
|
268
|
+
* taken effect — so the retry is theirs, and it can leave two skills behind.
|
|
269
|
+
*
|
|
270
|
+
* **No threshold.** There is no constant here for "close to the ceiling" and
|
|
271
|
+
* there must not be: an invented margin is a number nobody can re-derive. The
|
|
272
|
+
* bytes sent, the body size and the ceiling are printed and the reader draws
|
|
273
|
+
* their own conclusion.
|
|
274
|
+
*/
|
|
275
|
+
export declare function explainAnsweredNothing(error: unknown, bodyBytes: number): unknown;
|
|
276
|
+
/**
|
|
277
|
+
* Resolve a `<source>` CLI argument to an absolute path.
|
|
278
|
+
*
|
|
279
|
+
* 🪤 The test used to be `source.startsWith('/')`, which is false for
|
|
280
|
+
* `D:\builds\skill` — so a Windows operator's absolute path was joined onto the
|
|
281
|
+
* working directory and reported back as `Source not found: <cwd>/D:/builds/skill`.
|
|
282
|
+
* {@link isAbsoluteAnyPlatform} answers for POSIX roots, drive letters and UNC
|
|
283
|
+
* paths on EVERY host, so the behaviour is the same wherever it runs and a
|
|
284
|
+
* POSIX-only CI can see the drive-letter case at all.
|
|
285
|
+
*/
|
|
286
|
+
export declare function resolveSourceArgument(source: string): string;
|
|
287
|
+
/** What {@link inspectZipArchive} can tell a caller about an archive. */
|
|
288
|
+
export interface ZipInspection {
|
|
289
|
+
/** The API-enforced quantity: the sum of every entry's declared size. */
|
|
290
|
+
readonly uncompressedBytes: number;
|
|
291
|
+
/** The `name` declared by the SKILL.md nearest the archive root, if any. */
|
|
292
|
+
readonly declaredName: string | undefined;
|
|
293
|
+
/**
|
|
294
|
+
* Entry names carrying a {@link NEVER_UPLOADED_DIR_NAMES} path segment —
|
|
295
|
+
* `evals/` above all. The directory lane REFUSES these; this is what lets the
|
|
296
|
+
* ZIP lane reach the same verdict about the same content.
|
|
297
|
+
*/
|
|
298
|
+
readonly neverUploaded: readonly string[];
|
|
299
|
+
/**
|
|
300
|
+
* Every markdown member, inflated, shaped as the parts the directory lane
|
|
301
|
+
* hands {@link warnUnportableReferences} — so the ZIP lane runs the SAME
|
|
302
|
+
* checks over the same content rather than a second implementation of them.
|
|
303
|
+
*
|
|
304
|
+
* Markdown only, and only within {@link MAX_INSPECTED_DOCUMENT_BYTES} an
|
|
305
|
+
* entry: these detectors read prose, and inflating an archive's binaries to
|
|
306
|
+
* hand them to a reader that skips them is work spent to produce nothing.
|
|
307
|
+
*/
|
|
308
|
+
readonly documents: readonly MultipartFile[];
|
|
309
|
+
/**
|
|
310
|
+
* The archive's top-level directory, when it has one — the prefix
|
|
311
|
+
* {@link bundleRelativeName} strips so a finding is located in the same
|
|
312
|
+
* namespace a `validation.allow` glob is matched in. `undefined` for an
|
|
313
|
+
* archive whose SKILL.md sits at the root, which has no prefix to strip.
|
|
314
|
+
*/
|
|
315
|
+
readonly bundleRoot: string | undefined;
|
|
316
|
+
/**
|
|
317
|
+
* Members this inspection wanted and could not inflate — a bad CRC, a
|
|
318
|
+
* compression method that is not store/deflate, an encrypted entry — each
|
|
319
|
+
* with the reader's reason. Skipped, never fatal (an archive VAT cannot read
|
|
320
|
+
* is not an archive VAT should block), but NAMED: a document that was not
|
|
321
|
+
* checked is a promise `install --help` makes that this run did not keep,
|
|
322
|
+
* and the operator is owed the list.
|
|
323
|
+
*/
|
|
324
|
+
readonly unreadable: readonly ZipEntryFailure[];
|
|
325
|
+
}
|
|
326
|
+
/** One archive member the reader refused, and why. */
|
|
327
|
+
export interface ZipEntryFailure {
|
|
328
|
+
readonly entry: string;
|
|
329
|
+
readonly reason: string;
|
|
330
|
+
}
|
|
331
|
+
/** An archive the reader could not open at all, and why. */
|
|
332
|
+
export interface ZipUnreadable {
|
|
333
|
+
readonly archiveUnreadable: string;
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* What a ZIP will weigh AFTER the API expands it, read from the archive's own
|
|
337
|
+
* central directory — plus the name its inner SKILL.md declares, any answer key
|
|
338
|
+
* it carries, and the markdown members the portability checks read.
|
|
339
|
+
*
|
|
340
|
+
* 🔑 **The API expands a ZIP and applies the ceiling to the UNCOMPRESSED total,
|
|
341
|
+
* not to the archive.** Measured against the live API by an adopter: a
|
|
342
|
+
* 10,707,463-byte archive of a 47.85 MiB tree — comfortably inside the request
|
|
343
|
+
* ceiling as bytes on the wire — came back
|
|
344
|
+
* `400: Zip file uncompressed size exceeds 30MB`. So the body check every other
|
|
345
|
+
* shape passes through is structurally blind here: compression is exactly the
|
|
346
|
+
* thing that makes the measured quantity stop predicting the enforced one. A
|
|
347
|
+
* ZIP is therefore the one input that could pass every local gate and still be
|
|
348
|
+
* refused remotely, which is the same defect class as the ZIP path once
|
|
349
|
+
* skipping the size check altogether.
|
|
350
|
+
*
|
|
351
|
+
* ⚠️ **The boundary itself is UNMEASURED on this lane.** One refusal at 47.85
|
|
352
|
+
* MiB is all the evidence there is; nobody has bracketed where the uncompressed
|
|
353
|
+
* rule actually cuts, or confirmed it is the same constant as the request lane.
|
|
354
|
+
* So this refuses only on `>` — strictly the looser choice — and a bundle near
|
|
355
|
+
* the line is still sent for the API to judge. Do not tighten this to `>=`, or
|
|
356
|
+
* quote it as a measured ceiling, without bracketing it the way
|
|
357
|
+
* {@link API_SKILL_MAX_UPLOAD_BYTES} was bracketed.
|
|
358
|
+
*
|
|
359
|
+
* ⛔ Sizes come from entry HEADERS, which an archive can lie about. That is
|
|
360
|
+
* fine: a lie can only change whether VAT refuses early, never whether the API
|
|
361
|
+
* does.
|
|
362
|
+
*
|
|
363
|
+
* ⚠️ **Reading an entry is not free, and the docstring here used to claim it
|
|
364
|
+
* was** — "no zip-slip or zip-bomb surface is opened — the entries are read, not
|
|
365
|
+
* written" was true of the enumeration half and FALSE of the one `getData()`
|
|
366
|
+
* call, which inflates `header.size` bytes into memory. Worse, it ran BEFORE the
|
|
367
|
+
* caller's uncompressed-total gate, so the ceiling this function exists to
|
|
368
|
+
* enforce could not protect the inflation this function performed. Nothing is
|
|
369
|
+
* written to disk — that part stands — but the decompression is now ordered
|
|
370
|
+
* after the total is known and bounded by {@link MAX_INSPECTED_DOCUMENT_BYTES},
|
|
371
|
+
* so an archive declaring a 4 GiB SKILL.md is enumerated and never inflated.
|
|
372
|
+
*/
|
|
373
|
+
export declare function inspectZipArchive(zipPath: string): Promise<ZipInspection | ZipUnreadable>;
|
|
2
374
|
interface CollectedUploadFiles {
|
|
3
375
|
files: Array<{
|
|
4
376
|
relativePath: string;
|
|
@@ -19,6 +391,161 @@ interface CollectedUploadFiles {
|
|
|
19
391
|
* no caller can obtain an upload set with the exclusion skipped.
|
|
20
392
|
*/
|
|
21
393
|
export declare function collectSkillUploadFiles(skillDir: string): Promise<CollectedUploadFiles>;
|
|
394
|
+
/**
|
|
395
|
+
* Warn about references in the bundle that cannot resolve once it is published.
|
|
396
|
+
*
|
|
397
|
+
* 🚨 **Until this existed, `install` validated NOTHING.** It weighed the request
|
|
398
|
+
* and sent it; every check VAT owns — the non-portable reference family, the
|
|
399
|
+
* unqualified MCP tool names, the non-portable command family — ran in
|
|
400
|
+
* `vat audit` and `vat skills build` and never on the one path where content
|
|
401
|
+
* leaves the machine. An adopter found the consequence directly: of 54 built
|
|
402
|
+
* skills, 10 referenced paths outside their own directory, one of them exec'ing
|
|
403
|
+
* a script under a SIBLING skill. Under the Skills API each skill is its own
|
|
404
|
+
* top-level tree with no siblings, so those uploaded with a green tick and could
|
|
405
|
+
* not possibly run. "It uploaded" is not "it works", and the publish command was
|
|
406
|
+
* the only lane in a position to say so before the bytes left.
|
|
407
|
+
*
|
|
408
|
+
* ⚠️ **Warns, never refuses.** These are `warning`-severity codes and the
|
|
409
|
+
* operator may have reasons VAT cannot see; turning a publish into an exit 2 on
|
|
410
|
+
* a heuristic is a worse failure than the one being reported. Blocking belongs
|
|
411
|
+
* to `vat skills build` and `vat audit`, which run before this and can gate CI.
|
|
412
|
+
*
|
|
413
|
+
* Costs nothing extra: it reads the buffers already collected for the upload, so
|
|
414
|
+
* no file is opened twice and nothing is walked again.
|
|
415
|
+
*
|
|
416
|
+
* 🚨 **The three collectors are RAW issue producers, and raw issues are not what
|
|
417
|
+
* an adopter agreed to see.** Everywhere else in VAT they pass through
|
|
418
|
+
* {@link runValidationFramework}, which applies `validation.allow` waivers and
|
|
419
|
+
* `validation.severity` overrides. Printed unfiltered, this lane contradicted
|
|
420
|
+
* VAT's own documented remedy: `MCP_TOOL_NAME_UNQUALIFIED` tells authors to
|
|
421
|
+
* "waive that one identifier with a `validation.allow` entry", and an author who
|
|
422
|
+
* did exactly that got a green `vat skills build` and then the same warning on
|
|
423
|
+
* every publish with nothing left to silence it with.
|
|
424
|
+
*
|
|
425
|
+
* ⚠️ The `location` is the BUNDLE-relative path, not the API-keyed
|
|
426
|
+
* `<declared-name>/<path>` spelling. An allow glob matches `ValidationIssue.location`,
|
|
427
|
+
* which is contractually project/bundle-relative, so the keyed spelling could not
|
|
428
|
+
* have matched an entry even once allows were applied — the same divergence
|
|
429
|
+
* {@link bundleRelativeName} exists to strip out of the oversize message.
|
|
430
|
+
*
|
|
431
|
+
* ⛔ The run-level ALLOW_UNUSED sweep is deliberately NOT drained here. This lane
|
|
432
|
+
* runs three validator families out of the whole registry, so every allow entry
|
|
433
|
+
* for any other code would be reported as dead — advising the author to delete
|
|
434
|
+
* the entry that makes their build green.
|
|
435
|
+
*/
|
|
436
|
+
export declare function warnUnportableReferences(files: readonly MultipartFile[], bundleRoot: string | undefined, validation: ValidationConfig | undefined, logger: UploadLogger): void;
|
|
437
|
+
/**
|
|
438
|
+
* List candidate package directories in node_modules (scoped + unscoped).
|
|
439
|
+
*
|
|
440
|
+
* Exported for testing: this and {@link findSkillsDir} decide WHICH tree
|
|
441
|
+
* `--from-npm` publishes to an org, and the whole `--from-npm` path was
|
|
442
|
+
* untested — `packages/cli/src/commands/**` is coverage-excluded, so nothing in
|
|
443
|
+
* any report said so.
|
|
444
|
+
*/
|
|
445
|
+
export declare function listNodeModulePackages(nodeModulesDir: string): string[];
|
|
446
|
+
/**
|
|
447
|
+
* Find the dist/skills/ directory in a package. Checks the package itself
|
|
448
|
+
* first, then scans node_modules for sub-packages that contain built skills.
|
|
449
|
+
*/
|
|
450
|
+
export declare function findSkillsDir(packageDir: string): string | undefined;
|
|
451
|
+
/** One skill the batch could not publish, and why. */
|
|
452
|
+
export interface SkillUploadFailure {
|
|
453
|
+
readonly skill: string;
|
|
454
|
+
readonly error: string;
|
|
455
|
+
}
|
|
456
|
+
/** The document `install --from-npm` publishes. */
|
|
457
|
+
export interface NpmInstallSummary {
|
|
458
|
+
source: string;
|
|
459
|
+
skillsUploaded: number;
|
|
460
|
+
skillsFailed?: number;
|
|
461
|
+
errors?: readonly SkillUploadFailure[];
|
|
462
|
+
skills: readonly SkillUploadResult[];
|
|
463
|
+
}
|
|
464
|
+
/**
|
|
465
|
+
* The batch's report, tagged as a failure when ANY skill did not publish.
|
|
466
|
+
*
|
|
467
|
+
* 🔑 Partial success is a failure. The old code returned this document plainly,
|
|
468
|
+
* so `executeOrgCommand` stamped `status: success` on it and exited 0 — a run in
|
|
469
|
+
* which all three skills were rejected printed `skillsUploaded: 0 /
|
|
470
|
+
* skillsFailed: 3` under `status: success`, and a CI wrapper written as
|
|
471
|
+
* `vat claude org skills install --from-npm … || fail` published nothing and
|
|
472
|
+
* reported green.
|
|
473
|
+
*
|
|
474
|
+
* Some-succeeded is tagged the same way as none-succeeded, deliberately: the
|
|
475
|
+
* workspace is now in a MIXED state that nobody asked for, which is exactly the
|
|
476
|
+
* case a human has to look at. Calling it green because two of three landed is
|
|
477
|
+
* the same lie, only smaller. What did land stays in the document, so the reader
|
|
478
|
+
* can see how far the run got.
|
|
479
|
+
*/
|
|
480
|
+
export declare function summarizeNpmInstall(source: string, results: readonly SkillUploadResult[], errors: readonly SkillUploadFailure[]): NpmInstallSummary | OrgCommandFailure;
|
|
481
|
+
/**
|
|
482
|
+
* Upload a local skill directory or ZIP file. Exported for testing.
|
|
483
|
+
*/
|
|
484
|
+
export declare function installFromLocal(source: string, titleOverride: string | undefined, client: OrgApiClient, logger: UploadLogger): Promise<object>;
|
|
485
|
+
/** One version the sweep could not delete, and the reason it gave. */
|
|
486
|
+
export interface VersionDeleteFailure {
|
|
487
|
+
readonly version: string;
|
|
488
|
+
readonly reason: string;
|
|
489
|
+
}
|
|
490
|
+
/** What a `--all` sweep did to the versions it was handed. */
|
|
491
|
+
export interface VersionSweep {
|
|
492
|
+
/** Versions this run destroyed. Irreversible, and the record of it. */
|
|
493
|
+
readonly deleted: readonly string[];
|
|
494
|
+
/** Versions still there, each with why. Empty means the sweep is complete. */
|
|
495
|
+
readonly failures: readonly VersionDeleteFailure[];
|
|
496
|
+
}
|
|
497
|
+
/**
|
|
498
|
+
* Delete every version handed in, and keep going when one refuses.
|
|
499
|
+
*
|
|
500
|
+
* 🚨 **One refusal is a fact about ONE version.** This loop used to return on the
|
|
501
|
+
* first one, so every version after it was never ATTEMPTED — not failed, not
|
|
502
|
+
* reported, unexamined. Deleting a workspace skill requires deleting every
|
|
503
|
+
* version first, so the operator was left with a skill that could not be deleted,
|
|
504
|
+
* a report that named one problem out of an unknown number, and no way to tell
|
|
505
|
+
* from the output which versions were still there. A transient refusal on version
|
|
506
|
+
* 2 of 30 hid the state of the other 28.
|
|
507
|
+
*
|
|
508
|
+
* The sweep therefore ATTEMPTS all of them and reports both lists. The caller
|
|
509
|
+
* decides what the outcome means: some deleted plus some failed is a run that
|
|
510
|
+
* happened and went wrong (exit 1, with the record); nothing deleted at all is
|
|
511
|
+
* the ending the command's help documents as exit 2.
|
|
512
|
+
*
|
|
513
|
+
* ⛔ It deliberately does NOT stop early on a repeated failure. A "the API is
|
|
514
|
+
* clearly down, give up" heuristic is how the abandoned-versions defect reads
|
|
515
|
+
* from inside: the whole value here is that every version's state is KNOWN when
|
|
516
|
+
* the command ends.
|
|
517
|
+
*/
|
|
518
|
+
export declare function deleteEveryVersion(client: Pick<OrgApiClient, 'deleteSkillVersion'>, skillId: string, versions: readonly string[], logger: UploadLogger): Promise<VersionSweep>;
|
|
519
|
+
/**
|
|
520
|
+
* Every version the sweep could not delete, and why — the one sentence both the
|
|
521
|
+
* published report and the exit-2 throw are built from, so the two endings never
|
|
522
|
+
* describe the same run differently.
|
|
523
|
+
*/
|
|
524
|
+
export declare function describeVersionSweepFailures(failures: readonly VersionDeleteFailure[]): string;
|
|
525
|
+
/** What {@link reportHalfDeleted} needs to describe a run that destroyed some of what it was asked to. */
|
|
526
|
+
export interface HalfDeletedReport {
|
|
527
|
+
readonly skillId: string;
|
|
528
|
+
readonly deletedVersions: readonly string[];
|
|
529
|
+
/** Versions still present. Empty when the sweep completed and the SKILL delete is what failed. */
|
|
530
|
+
readonly failedVersions: readonly string[];
|
|
531
|
+
readonly error: string;
|
|
532
|
+
}
|
|
533
|
+
/**
|
|
534
|
+
* The document a `--all` run publishes when it destroyed something and then did
|
|
535
|
+
* not finish.
|
|
536
|
+
*
|
|
537
|
+
* 🔑 The deleted list is a RECORD, not a progress counter. Version deletion is
|
|
538
|
+
* irreversible, so a failure part-way through leaves a workspace nobody can
|
|
539
|
+
* reconstruct — and throwing here would end on `handleCommandError`'s exit 2
|
|
540
|
+
* ("the run could not happen") and DISCARD the document. It happened, and it
|
|
541
|
+
* destroyed things the operator now has no other list of. So the lists travel
|
|
542
|
+
* with the failure and the run ends 1: it happened, and its outcome is wrong.
|
|
543
|
+
*
|
|
544
|
+
* `failedVersions` is the other half, and the half a re-run needs: what is still
|
|
545
|
+
* there. Without it the operator knows what they lost and not what they still
|
|
546
|
+
* have to deal with.
|
|
547
|
+
*/
|
|
548
|
+
export declare function reportHalfDeleted(report: HalfDeletedReport): OrgCommandFailure;
|
|
22
549
|
export declare function createOrgSkillsCommand(): Command;
|
|
23
550
|
export {};
|
|
24
551
|
//# sourceMappingURL=skills.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../../../src/commands/claude/org/skills.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"skills.d.ts","sourceRoot":"","sources":["../../../../src/commands/claude/org/skills.ts"],"names":[],"mappings":"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"}
|