@vibe-agent-toolkit/cli 0.2.0-rc.1 → 0.2.0-rc.11
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 +97 -28
- package/dist/bin/vat.js +97 -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 +165 -0
- package/dist/commands/ard/emit.d.ts.map +1 -0
- package/dist/commands/ard/emit.js +338 -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 +84 -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 +1150 -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 +372 -0
- package/dist/commands/claude/context.d.ts.map +1 -0
- package/dist/commands/claude/context.js +1115 -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 +116 -0
- package/dist/commands/okf/index.js.map +1 -0
- package/dist/commands/okf/validate.d.ts +195 -0
- package/dist/commands/okf/validate.d.ts.map +1 -0
- package/dist/commands/okf/validate.js +199 -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 +167 -0
- package/dist/commands/resources/check-progress.d.ts.map +1 -0
- package/dist/commands/resources/check-progress.js +250 -0
- package/dist/commands/resources/check-progress.js.map +1 -0
- package/dist/commands/resources/check-supervisor.d.ts +479 -0
- package/dist/commands/resources/check-supervisor.d.ts.map +1 -0
- package/dist/commands/resources/check-supervisor.js +587 -0
- package/dist/commands/resources/check-supervisor.js.map +1 -0
- package/dist/commands/resources/check.d.ts +620 -0
- package/dist/commands/resources/check.d.ts.map +1 -0
- package/dist/commands/resources/check.js +1452 -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 +430 -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 +100 -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 +8 -6
- 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 +143 -20
- package/dist/utils/command-error.d.ts.map +1 -1
- package/dist/utils/command-error.js +179 -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 +72 -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 +134 -2
- package/dist/utils/resource-loader.d.ts.map +1 -1
- package/dist/utils/resource-loader.js +290 -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 +143 -39
- 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 +36 -27
- package/schemas/ard-emit.json +152 -0
- package/schemas/okf-validate.json +170 -0
- package/schemas/resources-check.json +257 -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
|
@@ -4,11 +4,13 @@
|
|
|
4
4
|
import fs from 'node:fs/promises';
|
|
5
5
|
import path from 'node:path';
|
|
6
6
|
import { loadAgentManifest } from '@vibe-agent-toolkit/agent-config';
|
|
7
|
-
import {
|
|
7
|
+
import { ExitCode } from '@vibe-agent-toolkit/schema';
|
|
8
|
+
import { copyDirectory, isPathAbsentError, safePath } from '@vibe-agent-toolkit/utils';
|
|
8
9
|
import { resolveAgentPath } from '../../utils/agent-discovery.js';
|
|
9
10
|
import { handleCommandError } from '../../utils/command-error.js';
|
|
10
11
|
import { createLogger } from '../../utils/logger.js';
|
|
11
12
|
import { validateAndGetScopeLocation } from '../../utils/scope-locations.js';
|
|
13
|
+
import { agentInstallPath } from './install-path.js';
|
|
12
14
|
/**
|
|
13
15
|
* Install agent command
|
|
14
16
|
*/
|
|
@@ -24,30 +26,43 @@ export async function installAgent(agentName, options) {
|
|
|
24
26
|
}
|
|
25
27
|
// Validate scope and get target location
|
|
26
28
|
const targetLocation = validateAndGetScopeLocation(runtime, scope);
|
|
29
|
+
// Refused by name before anything is examined — before the agent is even
|
|
30
|
+
// looked up: with `--force` this path is `rm -rf`'d, and the positional is
|
|
31
|
+
// the one thing on it the user typed.
|
|
32
|
+
const installPath = agentInstallPath(targetLocation, agentName);
|
|
27
33
|
// Find built skill
|
|
28
34
|
const builtSkillPath = await findBuiltSkill(agentName, runtime, logger);
|
|
29
|
-
const installPath = safePath.join(targetLocation, agentName);
|
|
30
35
|
// Ensure target directory exists
|
|
31
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- Path constructed from validated scope location
|
|
32
36
|
await fs.mkdir(targetLocation, { recursive: true });
|
|
33
|
-
// Check if already installed
|
|
37
|
+
// Check if already installed.
|
|
38
|
+
//
|
|
39
|
+
// `lstat`, not `access`: `access` FOLLOWS symlinks, so a dangling dev-mode
|
|
40
|
+
// link — precisely what `build:clean` orphans by deleting `dist/` under a
|
|
41
|
+
// previous `--dev` install — answered ENOENT here. That fell into the catch
|
|
42
|
+
// below as "not installed", which skipped the `--force` removal and left the
|
|
43
|
+
// link in place for `fs.symlink` to reject with EEXIST. `--force` was inert
|
|
44
|
+
// against the one state it most needed to clear. `lstat` stats the link
|
|
45
|
+
// itself, so the entry is seen whether or not its target still exists.
|
|
34
46
|
try {
|
|
35
|
-
await fs.
|
|
47
|
+
await fs.lstat(installPath);
|
|
36
48
|
if (!force) {
|
|
37
49
|
logger.error(`\n${agentName} already installed at ${installPath}\n` +
|
|
38
50
|
`Use --force to overwrite\n`);
|
|
39
|
-
process.exit(
|
|
51
|
+
process.exit(ExitCode.ERROR);
|
|
40
52
|
}
|
|
41
53
|
// Remove existing if force flag is set
|
|
42
54
|
await fs.rm(installPath, { recursive: true, force: true });
|
|
43
55
|
}
|
|
44
|
-
catch {
|
|
45
|
-
// Not installed
|
|
56
|
+
catch (error) {
|
|
57
|
+
// Not installed: continue. Only an ABSENCE means that — a refused `lstat`
|
|
58
|
+
// (the scope dir the OS will not let us into) or a failed `rm` used to
|
|
59
|
+
// land here too, read as "not installed", and the install then tripped
|
|
60
|
+
// over whatever was actually there.
|
|
61
|
+
if (!isPathAbsentError(error))
|
|
62
|
+
throw error;
|
|
46
63
|
}
|
|
47
64
|
if (dev) {
|
|
48
|
-
|
|
49
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- Paths from validated sources
|
|
50
|
-
await fs.symlink(builtSkillPath, installPath, 'dir');
|
|
65
|
+
await linkForDevelopment(builtSkillPath, installPath);
|
|
51
66
|
logger.info(`✓ Symlinked ${agentName} to ${installPath} (dev mode)`);
|
|
52
67
|
logger.info(` Rebuild agent to see changes immediately`);
|
|
53
68
|
}
|
|
@@ -58,12 +73,46 @@ export async function installAgent(agentName, options) {
|
|
|
58
73
|
}
|
|
59
74
|
const duration = Date.now() - startTime;
|
|
60
75
|
logger.debug(`Install completed in ${duration}ms`);
|
|
61
|
-
process.exit(
|
|
76
|
+
process.exit(ExitCode.OK);
|
|
62
77
|
}
|
|
63
78
|
catch (error) {
|
|
64
79
|
handleCommandError(error, logger, startTime, 'Install');
|
|
65
80
|
}
|
|
66
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Symlink a built bundle into place for `--dev`, failing legibly where the OS
|
|
84
|
+
* refuses.
|
|
85
|
+
*
|
|
86
|
+
* ⚠️ **This is POSIX-only in practice, and not by anything written here.**
|
|
87
|
+
* `installAgent` refuses `dev` on win32 before this is reachable, naming WSL
|
|
88
|
+
* and copy mode. So Windows never gets this far, and any Windows-specific
|
|
89
|
+
* handling added here would be dead code — an earlier revision added exactly
|
|
90
|
+
* that, relabelling a `SeCreateSymbolicLinkPrivilege` EPERM that cannot occur.
|
|
91
|
+
* If `--dev` is ever to work on Windows, the change belongs at that guard (a
|
|
92
|
+
* junction takes no elevation, as `dev-tools/src/link-workspace-packages.ts`
|
|
93
|
+
* already does), not in this catch.
|
|
94
|
+
*
|
|
95
|
+
* Deliberately does NOT fall back to copying. `--dev` exists so a rebuild is
|
|
96
|
+
* picked up live; a copy that reported success would leave someone editing
|
|
97
|
+
* sources and wondering why nothing changes — a silent wrong answer in place of
|
|
98
|
+
* a loud, correct refusal.
|
|
99
|
+
*
|
|
100
|
+
* @param builtSkillPath - Absolute path to the built bundle
|
|
101
|
+
* @param installPath - Where the link should be created
|
|
102
|
+
* @throws When the link cannot be created, naming the remedy
|
|
103
|
+
*/
|
|
104
|
+
async function linkForDevelopment(builtSkillPath, installPath) {
|
|
105
|
+
try {
|
|
106
|
+
// eslint-disable-next-line local/no-bare-symlink-in-tests -- eyes open: win32 is refused by the guard in `installAgent` before this runs, so the Windows privilege hazard the rule names cannot be reached here.
|
|
107
|
+
await fs.symlink(builtSkillPath, installPath, 'dir');
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
const detail = error instanceof Error ? error.message : String(error);
|
|
111
|
+
throw new Error(`Could not create the dev-mode symlink at ${installPath}: ${detail}\n` +
|
|
112
|
+
`Re-run with --force to replace whatever is already at ${installPath}, ` +
|
|
113
|
+
'or install without --dev to copy the bundle instead of linking it.');
|
|
114
|
+
}
|
|
115
|
+
}
|
|
67
116
|
/**
|
|
68
117
|
* Find built skill bundle
|
|
69
118
|
*/
|
|
@@ -97,7 +146,11 @@ async function findAgentPackageRoot(manifestPath) {
|
|
|
97
146
|
await fs.access(packageJsonPath);
|
|
98
147
|
return currentDir;
|
|
99
148
|
}
|
|
100
|
-
catch {
|
|
149
|
+
catch (error) {
|
|
150
|
+
// No manifest at this level: climb. A refused ancestor is not "no
|
|
151
|
+
// manifest" and stays loud.
|
|
152
|
+
if (!isPathAbsentError(error))
|
|
153
|
+
throw error;
|
|
101
154
|
currentDir = path.dirname(currentDir);
|
|
102
155
|
}
|
|
103
156
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/agent/install.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../../src/commands/agent/install.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installed.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/installed.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"installed.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/installed.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,KAAK,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AASD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAoEtF"}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
* List installed agents command
|
|
3
3
|
*/
|
|
4
4
|
import fs from 'node:fs/promises';
|
|
5
|
-
import {
|
|
5
|
+
import { ExitCode } from '@vibe-agent-toolkit/schema';
|
|
6
|
+
import { isPathAbsentError, safePath } from '@vibe-agent-toolkit/utils';
|
|
6
7
|
import yaml from 'yaml';
|
|
7
8
|
import { handleCommandError } from '../../utils/command-error.js';
|
|
8
9
|
import { createLogger } from '../../utils/logger.js';
|
|
@@ -34,7 +35,7 @@ export async function installedCommand(options) {
|
|
|
34
35
|
duration,
|
|
35
36
|
};
|
|
36
37
|
console.log(yaml.stringify(output));
|
|
37
|
-
process.exit(
|
|
38
|
+
process.exit(ExitCode.OK);
|
|
38
39
|
return;
|
|
39
40
|
}
|
|
40
41
|
// Output to stderr (human-readable)
|
|
@@ -62,7 +63,7 @@ export async function installedCommand(options) {
|
|
|
62
63
|
duration,
|
|
63
64
|
};
|
|
64
65
|
console.log(yaml.stringify(output));
|
|
65
|
-
process.exit(
|
|
66
|
+
process.exit(ExitCode.OK);
|
|
66
67
|
}
|
|
67
68
|
catch (error) {
|
|
68
69
|
handleCommandError(error, logger, startTime, 'Installed');
|
|
@@ -77,20 +78,13 @@ async function scanForInstalledSkills(scopeLocations, scopesToScan) {
|
|
|
77
78
|
const location = scopeLocations[currentScope];
|
|
78
79
|
if (!location)
|
|
79
80
|
continue;
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
catch {
|
|
84
|
-
// Directory doesn't exist, skip
|
|
81
|
+
const entries = await listScopeLocation(location);
|
|
82
|
+
if (entries === null)
|
|
85
83
|
continue;
|
|
86
|
-
}
|
|
87
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- Path from validated scope location
|
|
88
|
-
const entries = await fs.readdir(location, { withFileTypes: true });
|
|
89
84
|
for (const entry of entries) {
|
|
90
85
|
if (!entry.isDirectory() && !entry.isSymbolicLink())
|
|
91
86
|
continue;
|
|
92
87
|
const skillPath = safePath.join(location, entry.name);
|
|
93
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- Path from validated scope + entry name
|
|
94
88
|
const stats = await fs.lstat(skillPath);
|
|
95
89
|
const isSymlink = stats.isSymbolicLink();
|
|
96
90
|
skills.push({
|
|
@@ -103,4 +97,20 @@ async function scanForInstalledSkills(scopeLocations, scopesToScan) {
|
|
|
103
97
|
}
|
|
104
98
|
return skills;
|
|
105
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* The entries of one scope location, or `null` when there is no such directory.
|
|
102
|
+
*
|
|
103
|
+
* Only an ABSENCE is `null`. A scope directory the OS refuses to list is not an
|
|
104
|
+
* empty one, and reading it as empty would list fewer installs than there are.
|
|
105
|
+
*/
|
|
106
|
+
async function listScopeLocation(location) {
|
|
107
|
+
try {
|
|
108
|
+
return await fs.readdir(location, { withFileTypes: true });
|
|
109
|
+
}
|
|
110
|
+
catch (error) {
|
|
111
|
+
if (isPathAbsentError(error))
|
|
112
|
+
return null;
|
|
113
|
+
throw error;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
106
116
|
//# sourceMappingURL=installed.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"installed.js","sourceRoot":"","sources":["../../../src/commands/agent/installed.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"installed.js","sourceRoot":"","sources":["../../../src/commands/agent/installed.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/list.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/list.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAkB,KAAK,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAMtF,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AASD;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,SAAS,eAAe,EAAE,EAClC,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAczB;AAED,wBAAsB,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8B5E"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Agent list command - discovers and lists all agents
|
|
3
3
|
*/
|
|
4
|
+
import { ExitCode } from '@vibe-agent-toolkit/schema';
|
|
4
5
|
import { safePath } from '@vibe-agent-toolkit/utils';
|
|
5
6
|
import { discoverAgents } from '../../utils/agent-discovery.js';
|
|
6
7
|
import { handleCommandError } from '../../utils/command-error.js';
|
|
@@ -51,7 +52,7 @@ export async function listCommand(options) {
|
|
|
51
52
|
logger.info(` ${agent.name} (${agent.version}) - ${agent.path}`);
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
|
-
process.exit(
|
|
55
|
+
process.exit(ExitCode.OK);
|
|
55
56
|
}
|
|
56
57
|
catch (error) {
|
|
57
58
|
handleCommandError(error, logger, startTime, 'AgentList');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/agent/list.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,cAAc,EAAwB,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAaxE;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAkC,EAClC,IAAY,EACZ,UAAkB;IAElB,MAAM,QAAQ,GAAoB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC,CAAC,CAAC;IAEJ,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,IAAI;QACJ,MAAM,EAAE,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC;QAC7C,KAAK,EAAE,MAAM,CAAC,MAAM;QACpB,QAAQ,EAAE,GAAG,UAAU,IAAI;KAC5B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B;IAC3D,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QAEhF,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;QAEtC,yEAAyE;QACzE,iEAAiE;QACjE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;QAE1E,eAAe,CAAC,MAAM,CAAC,CAAC;QAExB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC;YAChD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAoB,EAAE,CAAC;gBACxD,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/agent/list.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAErD,OAAO,EAAE,cAAc,EAAwB,MAAM,gCAAgC,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAaxE;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAAkC,EAClC,IAAY,EACZ,UAAkB;IAElB,MAAM,QAAQ,GAAoB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACrD,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC,CAAC,CAAC;IAEJ,OAAO;QACL,MAAM,EAAE,SAAS;QACjB,IAAI;QACJ,MAAM,EAAE,qBAAqB,CAAC,QAAQ,EAAE,IAAI,CAAC;QAC7C,KAAK,EAAE,MAAM,CAAC,MAAM;QACpB,QAAQ,EAAE,GAAG,UAAU,IAAI;KAC5B,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,OAA2B;IAC3D,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACtC,MAAM,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;QAEhF,MAAM,MAAM,GAAG,MAAM,cAAc,EAAE,CAAC;QAEtC,yEAAyE;QACzE,iEAAiE;QACjE,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,CAAC;QAE1E,eAAe,CAAC,MAAM,CAAC,CAAC;QAExB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,MAAM,YAAY,CAAC,CAAC;YAChD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,CAAoB,EAAE,CAAC;gBACxD,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;YACpE,CAAC;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAUH,MAAM,WAAW,iBAAiB;IAChC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAC9B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,IAAI,CAAC,CAqCf"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Executes an agent with user input and displays the response.
|
|
5
5
|
*/
|
|
6
|
+
import { ExitCode } from '@vibe-agent-toolkit/schema';
|
|
6
7
|
import { resolveAgentPath } from '../../utils/agent-discovery.js';
|
|
7
8
|
import { runAgent } from '../../utils/agent-runner.js';
|
|
8
9
|
import { handleCommandError } from '../../utils/command-error.js';
|
|
@@ -40,7 +41,7 @@ export async function runCommand(pathOrName, userInput, options) {
|
|
|
40
41
|
logger.info('');
|
|
41
42
|
logger.info(`Completed in ${duration}ms (tokens: ${result.usage.inputTokens} in, ${result.usage.outputTokens} out)`);
|
|
42
43
|
}
|
|
43
|
-
process.exit(
|
|
44
|
+
process.exit(ExitCode.OK);
|
|
44
45
|
}
|
|
45
46
|
catch (error) {
|
|
46
47
|
handleCommandError(error, logger, startTime, 'AgentRun');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/commands/agent/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAMvE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,UAAkB,EAClB,SAAiB,EACjB,OAA0B;IAE1B,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,iEAAiE;QACjE,wEAAwE;QACxE,uCAAuC;QACvC,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAEjC,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC,kBAAkB,UAAU,EAAE,CAAC,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEhB,gBAAgB;QAChB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE;YACxC,SAAS;YACT,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;SAC9B,CAAC,CAAC;QAEH,4BAA4B;QAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE3B,iCAAiC;QACjC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CACT,gBAAgB,QAAQ,eAAe,MAAM,CAAC,KAAK,CAAC,WAAW,QAAQ,MAAM,CAAC,KAAK,CAAC,YAAY,OAAO,CACxG,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"run.js","sourceRoot":"","sources":["../../../src/commands/agent/run.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAMvE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,UAAkB,EAClB,SAAiB,EACjB,OAA0B;IAE1B,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,iEAAiE;QACjE,wEAAwE;QACxE,uCAAuC;QACvC,iBAAiB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAEjC,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC,kBAAkB,UAAU,EAAE,CAAC,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEhB,gBAAgB;QAChB,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE;YACxC,SAAS;YACT,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;SAC9B,CAAC,CAAC;QAEH,4BAA4B;QAC5B,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE3B,iCAAiC;QACjC,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CACT,gBAAgB,QAAQ,eAAe,MAAM,CAAC,KAAK,CAAC,WAAW,QAAQ,MAAM,CAAC,KAAK,CAAC,YAAY,OAAO,CACxG,CAAC;QACJ,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC;IAC3D,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/uninstall.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"uninstall.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/uninstall.ts"],"names":[],"mappings":"AAAA;;GAEG;AAaH,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,IAAI,CAAC,CA6Cf"}
|
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
* Uninstall agent from Agent Skills directory
|
|
3
3
|
*/
|
|
4
4
|
import fs from 'node:fs/promises';
|
|
5
|
-
import {
|
|
5
|
+
import { ExitCode } from '@vibe-agent-toolkit/schema';
|
|
6
|
+
import { isPathAbsentError } from '@vibe-agent-toolkit/utils';
|
|
6
7
|
import { handleCommandError } from '../../utils/command-error.js';
|
|
7
8
|
import { createLogger } from '../../utils/logger.js';
|
|
8
9
|
import { validateAndGetScopeLocation } from '../../utils/scope-locations.js';
|
|
10
|
+
import { agentInstallPath } from './install-path.js';
|
|
9
11
|
/**
|
|
10
12
|
* Uninstall agent command
|
|
11
13
|
*/
|
|
@@ -16,17 +18,22 @@ export async function uninstallAgent(agentName, options) {
|
|
|
16
18
|
const { runtime = 'agent-skill', scope = 'user' } = options;
|
|
17
19
|
// Validate scope and get target location
|
|
18
20
|
const targetLocation = validateAndGetScopeLocation(runtime, scope);
|
|
19
|
-
|
|
21
|
+
// Refused by name before anything is examined: the positional is the one
|
|
22
|
+
// thing on this path the user typed, and `rm -rf` is where it ends up.
|
|
23
|
+
const installPath = agentInstallPath(targetLocation, agentName);
|
|
20
24
|
// Check if installed
|
|
21
25
|
try {
|
|
22
26
|
await fs.access(installPath);
|
|
23
27
|
}
|
|
24
|
-
catch {
|
|
28
|
+
catch (error) {
|
|
29
|
+
// "Not installed" is an absence. A refusal is reported as itself by the
|
|
30
|
+
// command's error handler, not as an install that does not exist.
|
|
31
|
+
if (!isPathAbsentError(error))
|
|
32
|
+
throw error;
|
|
25
33
|
logger.error(`\n${agentName} is not installed at ${installPath}\n`);
|
|
26
|
-
process.exit(
|
|
34
|
+
process.exit(ExitCode.ERROR);
|
|
27
35
|
}
|
|
28
36
|
// Check if symlink
|
|
29
|
-
// eslint-disable-next-line security/detect-non-literal-fs-filename -- Path from validated scope + agent name
|
|
30
37
|
const stats = await fs.lstat(installPath);
|
|
31
38
|
const isSymlink = stats.isSymbolicLink();
|
|
32
39
|
// Remove installation
|
|
@@ -39,7 +46,7 @@ export async function uninstallAgent(agentName, options) {
|
|
|
39
46
|
}
|
|
40
47
|
const duration = Date.now() - startTime;
|
|
41
48
|
logger.debug(`Uninstall completed in ${duration}ms`);
|
|
42
|
-
process.exit(
|
|
49
|
+
process.exit(ExitCode.OK);
|
|
43
50
|
}
|
|
44
51
|
catch (error) {
|
|
45
52
|
handleCommandError(error, logger, startTime, 'Uninstall');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../src/commands/agent/uninstall.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"uninstall.js","sourceRoot":"","sources":["../../../src/commands/agent/uninstall.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAElC,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAE9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAE7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQrD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAAiB,EACjB,OAAyB;IAEzB,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,MAAM,EAAE,OAAO,GAAG,aAAa,EAAE,KAAK,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;QAE5D,yCAAyC;QACzC,MAAM,cAAc,GAAG,2BAA2B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAEnE,yEAAyE;QACzE,uEAAuE;QACvE,MAAM,WAAW,GAAG,gBAAgB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;QAEhE,qBAAqB;QACrB,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC/B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,wEAAwE;YACxE,kEAAkE;YAClE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;gBAAE,MAAM,KAAK,CAAC;YAC3C,MAAM,CAAC,KAAK,CAAC,KAAK,SAAS,wBAAwB,WAAW,IAAI,CAAC,CAAC;YACpE,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC/B,CAAC;QAED,mBAAmB;QACnB,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,SAAS,GAAG,KAAK,CAAC,cAAc,EAAE,CAAC;QAEzC,sBAAsB;QACtB,MAAM,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAE3D,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,CAAC,IAAI,CAAC,yBAAyB,SAAS,SAAS,WAAW,EAAE,CAAC,CAAC;QACxE,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,iBAAiB,SAAS,SAAS,WAAW,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,0BAA0B,QAAQ,IAAI,CAAC,CAAC;QAErD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAC5D,CAAC;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/validate.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/validate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,wBAAsB,eAAe,CACnC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAkDf"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Agent validate command - validates agent manifest and prerequisites
|
|
3
3
|
*/
|
|
4
4
|
import { validateAgent } from '@vibe-agent-toolkit/agent-config';
|
|
5
|
+
import { ExitCode } from '@vibe-agent-toolkit/schema';
|
|
5
6
|
import { resolveAgentPath } from '../../utils/agent-discovery.js';
|
|
6
7
|
import { handleCommandError } from '../../utils/command-error.js';
|
|
7
8
|
import { createLogger } from '../../utils/logger.js';
|
|
@@ -34,7 +35,7 @@ export async function validateCommand(pathOrName, options) {
|
|
|
34
35
|
for (const error of result.errors) {
|
|
35
36
|
logger.error(` - ${error}`);
|
|
36
37
|
}
|
|
37
|
-
process.exit(
|
|
38
|
+
process.exit(ExitCode.FINDINGS);
|
|
38
39
|
}
|
|
39
40
|
if (result.warnings.length > 0) {
|
|
40
41
|
logger.info('Validation passed with warnings:');
|
|
@@ -45,7 +46,7 @@ export async function validateCommand(pathOrName, options) {
|
|
|
45
46
|
else {
|
|
46
47
|
logger.info('Agent validation successful');
|
|
47
48
|
}
|
|
48
|
-
process.exit(
|
|
49
|
+
process.exit(ExitCode.OK);
|
|
49
50
|
}
|
|
50
51
|
catch (error) {
|
|
51
52
|
handleCommandError(error, logger, startTime, 'AgentValidate');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/commands/agent/validate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/commands/agent/validate.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAEtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAMxE,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,UAAkB,EAClB,OAA+B;IAE/B,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClE,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,CAAC;QACH,wDAAwD;QACxD,kBAAkB,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,oBAAoB,CAAC,CAAC;QAExD,uCAAuC;QACvC,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAE9D,MAAM,CAAC,KAAK,CAAC,qBAAqB,UAAU,EAAE,CAAC,CAAC;QAEhD,iBAAiB;QACjB,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;QAE/C,iBAAiB;QACjB,MAAM,MAAM,GAAG;YACb,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO;YAC1C,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE;gBACV,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B;YACD,QAAQ,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,IAAI;SACxC,CAAC;QAEF,eAAe,CAAC,MAAM,CAAC,CAAC;QAExB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;YAClB,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;YACxC,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBAClC,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,EAAE,CAAC,CAAC;YAC/B,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAClC,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YAChD,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACtC,MAAM,CAAC,IAAI,CAAC,OAAO,OAAO,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC;QAC7C,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC5B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;IAChE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `vat ard emit` — write the project's `/.well-known/ard.json`.
|
|
3
|
+
*
|
|
4
|
+
* **Emit, never depend.** This command produces a document and stops. Nothing
|
|
5
|
+
* in VAT reads one back, and no VAT behaviour is derived from one — ARD is
|
|
6
|
+
* v0.91, status Proposal, and wiring internals to a moving shape is the cost
|
|
7
|
+
* this rule avoids.
|
|
8
|
+
*/
|
|
9
|
+
import { type ShadowedArdOverrideKey } from '@vibe-agent-toolkit/resources';
|
|
10
|
+
import { type Report } from '@vibe-agent-toolkit/schema';
|
|
11
|
+
import { VatError } from '@vibe-agent-toolkit/utils';
|
|
12
|
+
import { z } from 'zod';
|
|
13
|
+
import { type SkippedArdSurface } from './surfaces.js';
|
|
14
|
+
/** Default destination, relative to the project root — the path ARD publishes at. */
|
|
15
|
+
export declare const DEFAULT_ARD_OUTPUT = ".well-known/ard.json";
|
|
16
|
+
/**
|
|
17
|
+
* Which of the three absences stopped the run.
|
|
18
|
+
*
|
|
19
|
+
* 🚨 `loadConfig` returns `undefined` for both "that directory does not exist"
|
|
20
|
+
* and "that directory has no config file", and the command used to report the
|
|
21
|
+
* third case for all of them: `--project-root /nope/nothing/here` answered "No
|
|
22
|
+
* `ard:` configuration found … Add an `ard:` block to
|
|
23
|
+
* vibe-agent-toolkit.config.yaml", prescribing an edit to a file in a directory
|
|
24
|
+
* that does not exist. Only a `stat` can tell them apart, so the command does
|
|
25
|
+
* one rather than inferring from a shared `undefined`.
|
|
26
|
+
*
|
|
27
|
+
* The distinction is also what the exit code reads: the first two are system
|
|
28
|
+
* errors (exit 2, as `vat okf validate` documents for the same conditions), the
|
|
29
|
+
* third is a project that never opted in (exit 1).
|
|
30
|
+
*/
|
|
31
|
+
export type ArdConfigAbsence = 'no-project-root' | 'no-config-file' | 'no-ard-block';
|
|
32
|
+
/** No manifest could be built, and this says which absence caused it. */
|
|
33
|
+
export declare class ArdConfigMissingError extends VatError {
|
|
34
|
+
readonly projectRoot: string;
|
|
35
|
+
readonly absence: ArdConfigAbsence;
|
|
36
|
+
constructor(projectRoot: string, absence: ArdConfigAbsence);
|
|
37
|
+
}
|
|
38
|
+
export interface ArdEmitOptions {
|
|
39
|
+
/** Project root to read the config from (default: cwd). */
|
|
40
|
+
projectRoot?: string | undefined;
|
|
41
|
+
/** Destination path, absolute or relative to the project root. */
|
|
42
|
+
output?: string | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* How the run reports itself: a human line (default) or {@link ArdEmitReport}.
|
|
45
|
+
*
|
|
46
|
+
* `text` is the default because it is what the command already wrote, and
|
|
47
|
+
* this lane's stdout is a published contract.
|
|
48
|
+
*/
|
|
49
|
+
format?: 'text' | 'json' | undefined;
|
|
50
|
+
/** Fail the run when it advertises nothing, or skipped a configured surface. */
|
|
51
|
+
strict?: boolean | undefined;
|
|
52
|
+
debug?: boolean | undefined;
|
|
53
|
+
}
|
|
54
|
+
export interface ArdEmitResult {
|
|
55
|
+
readonly outputPath: string;
|
|
56
|
+
readonly entryCount: number;
|
|
57
|
+
readonly skipped: readonly SkippedArdSurface[];
|
|
58
|
+
/**
|
|
59
|
+
* Bare `ard.entries` keys a qualified key for the same surface outranked.
|
|
60
|
+
*
|
|
61
|
+
* Not a failure — the precedence is deterministic and documented — but the
|
|
62
|
+
* losing block is dead config, and an author cannot see that from the file.
|
|
63
|
+
*/
|
|
64
|
+
readonly shadowed: readonly ShadowedArdOverrideKey[];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Build and write the manifest.
|
|
68
|
+
*
|
|
69
|
+
* @throws {ArdConfigMissingError} when no config, or no `ard:` block, is found.
|
|
70
|
+
* @throws {ArdDerivationError} when a surface cannot be turned into a
|
|
71
|
+
* conformant entry — a missing `ard.baseUrl`, an unusable URN segment, or a
|
|
72
|
+
* trust identity that does not align with the publisher.
|
|
73
|
+
*/
|
|
74
|
+
export declare function runArdEmit(options: ArdEmitOptions): Promise<ArdEmitResult>;
|
|
75
|
+
/**
|
|
76
|
+
* The codes this run's findings carry. Not registry codes: nothing here is a
|
|
77
|
+
* validation an adopter tunes through `validation.severity` — a skipped
|
|
78
|
+
* surface is a fact about what the manifest could not advertise, and its
|
|
79
|
+
* severity is the run's to decide.
|
|
80
|
+
*/
|
|
81
|
+
export declare const ARD_EMIT_CODES: {
|
|
82
|
+
/** A configured surface that became no entry, and why — the thing `--strict` gates. */
|
|
83
|
+
readonly SURFACE_SKIPPED: "ARD_SURFACE_SKIPPED";
|
|
84
|
+
/**
|
|
85
|
+
* A bare `ard.entries` key a qualified key for the same surface outranked.
|
|
86
|
+
* Not a failure — the precedence is deterministic and documented — but the
|
|
87
|
+
* losing block is dead config, and an author cannot see that from the file.
|
|
88
|
+
*/
|
|
89
|
+
readonly OVERRIDE_KEY_SHADOWED: "ARD_OVERRIDE_KEY_SHADOWED";
|
|
90
|
+
/**
|
|
91
|
+
* The project was read and declares no `ard:` block, so no manifest was
|
|
92
|
+
* built. A finding at `error` — exit 1 — because the PROJECT is the subject,
|
|
93
|
+
* not the invocation: it is fixed by editing config.
|
|
94
|
+
*/
|
|
95
|
+
readonly NOT_CONFIGURED: "ARD_NOT_CONFIGURED";
|
|
96
|
+
/** A declared surface could not be derived into a conformant entry, so no manifest was written. */
|
|
97
|
+
readonly DERIVATION_FAILED: "ARD_DERIVATION_FAILED";
|
|
98
|
+
/** `--strict` refused a manifest that leaves a declared surface (or everything) unadvertised. */
|
|
99
|
+
readonly STRICT_REFUSED: "ARD_STRICT_REFUSED";
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* What the run reports beyond its findings.
|
|
103
|
+
*
|
|
104
|
+
* 🪤 `entryCount: 0` is the empty manifest. A run that wrote `{"entries":[]}`
|
|
105
|
+
* and one that wrote a full catalogue both used to end at exit 0 with a
|
|
106
|
+
* cheerful line on stdout, and nothing a machine could read told them apart —
|
|
107
|
+
* so a CI step that emits and publishes was green over a discovery document
|
|
108
|
+
* advertising nothing. The envelope's `examined` is every configured surface
|
|
109
|
+
* the run considered, so "nothing declared" (`examined: 0`) and "everything
|
|
110
|
+
* declared was skipped" (`examined: N`, `entryCount: 0`) read differently too.
|
|
111
|
+
*/
|
|
112
|
+
export declare const ArdEmitDataSchema: z.ZodObject<{
|
|
113
|
+
/** Where the manifest was written — `null` when the project produced none. */
|
|
114
|
+
outputPath: z.ZodNullable<z.ZodString>;
|
|
115
|
+
entryCount: z.ZodNumber;
|
|
116
|
+
/**
|
|
117
|
+
* Counts BESIDE the findings. The count is what a CI step gates on without
|
|
118
|
+
* a JSON path into an array; the finding is what the human it pages then
|
|
119
|
+
* acts on. Publishing only one of them answers "how many" or "which", never
|
|
120
|
+
* both.
|
|
121
|
+
*/
|
|
122
|
+
skippedCount: z.ZodNumber;
|
|
123
|
+
shadowedCount: z.ZodNumber;
|
|
124
|
+
}, "strict", z.ZodTypeAny, {
|
|
125
|
+
outputPath: string | null;
|
|
126
|
+
entryCount: number;
|
|
127
|
+
skippedCount: number;
|
|
128
|
+
shadowedCount: number;
|
|
129
|
+
}, {
|
|
130
|
+
outputPath: string | null;
|
|
131
|
+
entryCount: number;
|
|
132
|
+
skippedCount: number;
|
|
133
|
+
shadowedCount: number;
|
|
134
|
+
}>;
|
|
135
|
+
export type ArdEmitData = z.infer<typeof ArdEmitDataSchema>;
|
|
136
|
+
/** The document `--format json` publishes. */
|
|
137
|
+
export declare const ARD_EMIT_REPORT_SCHEMA: import("@vibe-agent-toolkit/schema").ReportZodSchema<z.ZodObject<{
|
|
138
|
+
/** Where the manifest was written — `null` when the project produced none. */
|
|
139
|
+
outputPath: z.ZodNullable<z.ZodString>;
|
|
140
|
+
entryCount: z.ZodNumber;
|
|
141
|
+
/**
|
|
142
|
+
* Counts BESIDE the findings. The count is what a CI step gates on without
|
|
143
|
+
* a JSON path into an array; the finding is what the human it pages then
|
|
144
|
+
* acts on. Publishing only one of them answers "how many" or "which", never
|
|
145
|
+
* both.
|
|
146
|
+
*/
|
|
147
|
+
skippedCount: z.ZodNumber;
|
|
148
|
+
shadowedCount: z.ZodNumber;
|
|
149
|
+
}, "strict", z.ZodTypeAny, {
|
|
150
|
+
outputPath: string | null;
|
|
151
|
+
entryCount: number;
|
|
152
|
+
skippedCount: number;
|
|
153
|
+
shadowedCount: number;
|
|
154
|
+
}, {
|
|
155
|
+
outputPath: string | null;
|
|
156
|
+
entryCount: number;
|
|
157
|
+
skippedCount: number;
|
|
158
|
+
shadowedCount: number;
|
|
159
|
+
}>>;
|
|
160
|
+
export type ArdEmitReport = Report<ArdEmitData>;
|
|
161
|
+
/** Pure: the report a result becomes, so the status rule is unit-testable. */
|
|
162
|
+
export declare function buildArdEmitReport(result: ArdEmitResult): ArdEmitReport;
|
|
163
|
+
/** Action handler for `vat ard emit`. */
|
|
164
|
+
export declare function ardEmitCommand(options: ArdEmitOptions): Promise<void>;
|
|
165
|
+
//# sourceMappingURL=emit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emit.d.ts","sourceRoot":"","sources":["../../../src/commands/ard/emit.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAML,KAAK,sBAAsB,EAC5B,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAA8D,KAAK,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACrH,OAAO,EAAY,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,OAAO,EAAsB,KAAK,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE3E,qFAAqF;AACrF,eAAO,MAAM,kBAAkB,yBAAyB,CAAC;AAKzD;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,cAAc,CAAC;AAErF,yEAAyE;AACzE,qBAAa,qBAAsB,SAAQ,QAAQ;IACjD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;gBAEvB,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB;CAK3D;AAcD,MAAM,WAAW,cAAc;IAC7B,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IACrC,gFAAgF;IAChF,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC7B,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAC7B;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC/C;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,SAAS,sBAAsB,EAAE,CAAC;CACtD;AAuBD;;;;;;;GAOG;AACH,wBAAsB,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAyChF;AAED;;;;;GAKG;AACH,eAAO,MAAM,cAAc;IACzB,uFAAuF;;IAEvF;;;;OAIG;;IAEH;;;;OAIG;;IAEH,mGAAmG;;IAEnG,iGAAiG;;CAEzF,CAAC;AAEX;;;;;;;;;;GAUG;AACH,eAAO,MAAM,iBAAiB;IAC5B,8EAA8E;;;IAG9E;;;;;OAKG;;;;;;;;;;;;;EAGM,CAAC;AAEZ,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D,8CAA8C;AAC9C,eAAO,MAAM,sBAAsB;IAhBjC,8EAA8E;;;IAG9E;;;;;OAKG;;;;;;;;;;;;;GAQgE,CAAC;AAEtE,MAAM,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC;AAwBhD,8EAA8E;AAC9E,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAavE;AAoGD,yCAAyC;AACzC,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAqD3E"}
|