@vibe-agent-toolkit/cli 0.2.0-rc.7 → 0.2.0-rc.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- package/dist/bin/vat +34 -19
- package/dist/bin/vat.js +34 -19
- package/dist/bin/vat.js.map +1 -1
- package/dist/bin.js +5 -2
- package/dist/bin.js.map +1 -1
- package/dist/commands/agent/build.d.ts.map +1 -1
- package/dist/commands/agent/build.js +2 -1
- package/dist/commands/agent/build.js.map +1 -1
- package/dist/commands/agent/import.d.ts.map +1 -1
- package/dist/commands/agent/import.js +3 -2
- package/dist/commands/agent/import.js.map +1 -1
- package/dist/commands/agent/install-path.d.ts +36 -0
- package/dist/commands/agent/install-path.d.ts.map +1 -0
- package/dist/commands/agent/install-path.js +44 -0
- package/dist/commands/agent/install-path.js.map +1 -0
- package/dist/commands/agent/install.d.ts.map +1 -1
- package/dist/commands/agent/install.js +22 -10
- package/dist/commands/agent/install.js.map +1 -1
- package/dist/commands/agent/installed.d.ts.map +1 -1
- package/dist/commands/agent/installed.js +22 -12
- package/dist/commands/agent/installed.js.map +1 -1
- package/dist/commands/agent/list.d.ts.map +1 -1
- package/dist/commands/agent/list.js +2 -1
- package/dist/commands/agent/list.js.map +1 -1
- package/dist/commands/agent/run.d.ts.map +1 -1
- package/dist/commands/agent/run.js +2 -1
- package/dist/commands/agent/run.js.map +1 -1
- package/dist/commands/agent/uninstall.d.ts.map +1 -1
- package/dist/commands/agent/uninstall.js +13 -6
- package/dist/commands/agent/uninstall.js.map +1 -1
- package/dist/commands/agent/validate.d.ts.map +1 -1
- package/dist/commands/agent/validate.js +3 -2
- package/dist/commands/agent/validate.js.map +1 -1
- package/dist/commands/ard/emit.d.ts +72 -23
- package/dist/commands/ard/emit.d.ts.map +1 -1
- package/dist/commands/ard/emit.js +109 -56
- package/dist/commands/ard/emit.js.map +1 -1
- package/dist/commands/ard/index.d.ts +1 -1
- package/dist/commands/ard/index.d.ts.map +1 -1
- package/dist/commands/ard/index.js +4 -3
- package/dist/commands/ard/index.js.map +1 -1
- package/dist/commands/audit/distributed-tree.d.ts.map +1 -1
- package/dist/commands/audit/distributed-tree.js +9 -6
- package/dist/commands/audit/distributed-tree.js.map +1 -1
- package/dist/commands/audit/scan-population.d.ts +158 -0
- package/dist/commands/audit/scan-population.d.ts.map +1 -0
- package/dist/commands/audit/scan-population.js +292 -0
- package/dist/commands/audit/scan-population.js.map +1 -0
- package/dist/commands/audit-settings.d.ts.map +1 -1
- package/dist/commands/audit-settings.js +6 -5
- package/dist/commands/audit-settings.js.map +1 -1
- package/dist/commands/audit.d.ts +16 -14
- package/dist/commands/audit.d.ts.map +1 -1
- package/dist/commands/audit.js +304 -389
- package/dist/commands/audit.js.map +1 -1
- package/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +24 -24
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/cache/clear.d.ts.map +1 -1
- package/dist/commands/cache/clear.js +17 -10
- package/dist/commands/cache/clear.js.map +1 -1
- package/dist/commands/claude/budget.d.ts +127 -28
- package/dist/commands/claude/budget.d.ts.map +1 -1
- package/dist/commands/claude/budget.js +76 -33
- package/dist/commands/claude/budget.js.map +1 -1
- package/dist/commands/claude/context.d.ts.map +1 -1
- package/dist/commands/claude/context.js +3 -2
- package/dist/commands/claude/context.js.map +1 -1
- package/dist/commands/claude/marketplace/changelog-utils.d.ts +1 -1
- package/dist/commands/claude/marketplace/changelog-utils.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/changelog-utils.js +1 -2
- package/dist/commands/claude/marketplace/changelog-utils.js.map +1 -1
- package/dist/commands/claude/marketplace/git-publish.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/git-publish.js +3 -2
- package/dist/commands/claude/marketplace/git-publish.js.map +1 -1
- package/dist/commands/claude/marketplace/license-utils.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/license-utils.js +0 -1
- package/dist/commands/claude/marketplace/license-utils.js.map +1 -1
- package/dist/commands/claude/marketplace/publish-tree.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/publish-tree.js +0 -6
- package/dist/commands/claude/marketplace/publish-tree.js.map +1 -1
- package/dist/commands/claude/marketplace/publish.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/publish.js +2 -1
- package/dist/commands/claude/marketplace/publish.js.map +1 -1
- package/dist/commands/claude/marketplace/validate.d.ts.map +1 -1
- package/dist/commands/claude/marketplace/validate.js +25 -15
- package/dist/commands/claude/marketplace/validate.js.map +1 -1
- package/dist/commands/claude/org/api-keys.d.ts +0 -3
- package/dist/commands/claude/org/api-keys.d.ts.map +1 -1
- package/dist/commands/claude/org/api-keys.js +2 -1
- package/dist/commands/claude/org/api-keys.js.map +1 -1
- package/dist/commands/claude/org/helpers.d.ts +17 -22
- package/dist/commands/claude/org/helpers.d.ts.map +1 -1
- package/dist/commands/claude/org/helpers.js +6 -22
- package/dist/commands/claude/org/helpers.js.map +1 -1
- package/dist/commands/claude/org/invites.d.ts +0 -3
- package/dist/commands/claude/org/invites.d.ts.map +1 -1
- package/dist/commands/claude/org/invites.js +3 -2
- package/dist/commands/claude/org/invites.js.map +1 -1
- package/dist/commands/claude/org/skills.d.ts +19 -1
- package/dist/commands/claude/org/skills.d.ts.map +1 -1
- package/dist/commands/claude/org/skills.js +141 -105
- package/dist/commands/claude/org/skills.js.map +1 -1
- package/dist/commands/claude/org/users.d.ts +0 -3
- package/dist/commands/claude/org/users.d.ts.map +1 -1
- package/dist/commands/claude/org/users.js +3 -2
- package/dist/commands/claude/org/users.js.map +1 -1
- package/dist/commands/claude/org/workspaces.d.ts +0 -3
- package/dist/commands/claude/org/workspaces.d.ts.map +1 -1
- package/dist/commands/claude/org/workspaces.js +6 -5
- package/dist/commands/claude/org/workspaces.js.map +1 -1
- package/dist/commands/claude/plugin/build.d.ts.map +1 -1
- package/dist/commands/claude/plugin/build.js +12 -31
- package/dist/commands/claude/plugin/build.js.map +1 -1
- package/dist/commands/claude/plugin/helpers.d.ts.map +1 -1
- package/dist/commands/claude/plugin/helpers.js +0 -6
- package/dist/commands/claude/plugin/helpers.js.map +1 -1
- package/dist/commands/claude/plugin/install.d.ts +12 -0
- package/dist/commands/claude/plugin/install.d.ts.map +1 -1
- package/dist/commands/claude/plugin/install.js +71 -60
- package/dist/commands/claude/plugin/install.js.map +1 -1
- package/dist/commands/claude/plugin/list.d.ts.map +1 -1
- package/dist/commands/claude/plugin/list.js +3 -2
- package/dist/commands/claude/plugin/list.js.map +1 -1
- package/dist/commands/claude/plugin/plugin-changelog.d.ts.map +1 -1
- package/dist/commands/claude/plugin/plugin-changelog.js +0 -2
- package/dist/commands/claude/plugin/plugin-changelog.js.map +1 -1
- package/dist/commands/claude/plugin/plugin-files.d.ts.map +1 -1
- package/dist/commands/claude/plugin/plugin-files.js +0 -3
- package/dist/commands/claude/plugin/plugin-files.js.map +1 -1
- package/dist/commands/claude/plugin/plugin-validators.d.ts.map +1 -1
- package/dist/commands/claude/plugin/plugin-validators.js +3 -6
- package/dist/commands/claude/plugin/plugin-validators.js.map +1 -1
- package/dist/commands/claude/plugin/tree-copy.d.ts +2 -1
- package/dist/commands/claude/plugin/tree-copy.d.ts.map +1 -1
- package/dist/commands/claude/plugin/tree-copy.js +15 -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 +9 -13
- package/dist/commands/consistency-check.d.ts.map +1 -1
- package/dist/commands/consistency-check.js +91 -81
- package/dist/commands/consistency-check.js.map +1 -1
- package/dist/commands/corpus/report.d.ts.map +1 -1
- package/dist/commands/corpus/report.js +1 -2
- package/dist/commands/corpus/report.js.map +1 -1
- package/dist/commands/corpus/runner.d.ts.map +1 -1
- package/dist/commands/corpus/runner.js +2 -6
- package/dist/commands/corpus/runner.js.map +1 -1
- package/dist/commands/corpus/scan.d.ts.map +1 -1
- package/dist/commands/corpus/scan.js +2 -3
- 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.map +1 -1
- package/dist/commands/doctor.js +55 -37
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/inventory.d.ts.map +1 -1
- package/dist/commands/inventory.js +6 -7
- package/dist/commands/inventory.js.map +1 -1
- package/dist/commands/mcp/list-collections.d.ts.map +1 -1
- package/dist/commands/mcp/list-collections.js +2 -1
- package/dist/commands/mcp/list-collections.js.map +1 -1
- package/dist/commands/mcp/serve.d.ts.map +1 -1
- package/dist/commands/mcp/serve.js +3 -2
- package/dist/commands/mcp/serve.js.map +1 -1
- package/dist/commands/okf/index.d.ts.map +1 -1
- package/dist/commands/okf/index.js +14 -2
- package/dist/commands/okf/index.js.map +1 -1
- package/dist/commands/okf/validate.d.ts +157 -48
- package/dist/commands/okf/validate.d.ts.map +1 -1
- package/dist/commands/okf/validate.js +109 -76
- package/dist/commands/okf/validate.js.map +1 -1
- package/dist/commands/phase-utils.d.ts +11 -10
- package/dist/commands/phase-utils.d.ts.map +1 -1
- package/dist/commands/phase-utils.js +30 -14
- package/dist/commands/phase-utils.js.map +1 -1
- package/dist/commands/positional-args.d.ts.map +1 -1
- package/dist/commands/positional-args.js +2 -1
- package/dist/commands/positional-args.js.map +1 -1
- package/dist/commands/rag/clear-command.d.ts.map +1 -1
- package/dist/commands/rag/clear-command.js +2 -1
- package/dist/commands/rag/clear-command.js.map +1 -1
- package/dist/commands/rag/index-command.d.ts.map +1 -1
- package/dist/commands/rag/index-command.js +4 -1
- package/dist/commands/rag/index-command.js.map +1 -1
- package/dist/commands/rag/query-command.d.ts.map +1 -1
- package/dist/commands/rag/query-command.js +2 -1
- package/dist/commands/rag/query-command.js.map +1 -1
- package/dist/commands/rag/stats-command.d.ts.map +1 -1
- package/dist/commands/rag/stats-command.js +2 -1
- package/dist/commands/rag/stats-command.js.map +1 -1
- package/dist/commands/resources/check-progress.d.ts.map +1 -1
- package/dist/commands/resources/check-progress.js +5 -2
- package/dist/commands/resources/check-progress.js.map +1 -1
- package/dist/commands/resources/check-supervisor.d.ts.map +1 -1
- package/dist/commands/resources/check-supervisor.js +14 -7
- package/dist/commands/resources/check-supervisor.js.map +1 -1
- package/dist/commands/resources/check.d.ts +135 -4
- package/dist/commands/resources/check.d.ts.map +1 -1
- package/dist/commands/resources/check.js +97 -80
- package/dist/commands/resources/check.js.map +1 -1
- package/dist/commands/resources/index.d.ts.map +1 -1
- package/dist/commands/resources/index.js +24 -21
- package/dist/commands/resources/index.js.map +1 -1
- package/dist/commands/resources/query.d.ts.map +1 -1
- package/dist/commands/resources/query.js +4 -8
- package/dist/commands/resources/query.js.map +1 -1
- package/dist/commands/resources/scan.d.ts.map +1 -1
- package/dist/commands/resources/scan.js +4 -8
- package/dist/commands/resources/scan.js.map +1 -1
- package/dist/commands/resources/validate.d.ts +1 -1
- package/dist/commands/resources/validate.d.ts.map +1 -1
- package/dist/commands/resources/validate.js +0 -1
- package/dist/commands/resources/validate.js.map +1 -1
- package/dist/commands/skill/review-checklist.d.ts +3 -2
- package/dist/commands/skill/review-checklist.d.ts.map +1 -1
- package/dist/commands/skill/review-checklist.js +4 -2
- package/dist/commands/skill/review-checklist.js.map +1 -1
- package/dist/commands/skill/review.d.ts +247 -0
- package/dist/commands/skill/review.d.ts.map +1 -1
- package/dist/commands/skill/review.js +90 -60
- package/dist/commands/skill/review.js.map +1 -1
- package/dist/commands/skill/test/configure.d.ts.map +1 -1
- package/dist/commands/skill/test/configure.js +0 -1
- package/dist/commands/skill/test/configure.js.map +1 -1
- package/dist/commands/skill/test/run.d.ts +12 -6
- package/dist/commands/skill/test/run.d.ts.map +1 -1
- package/dist/commands/skill/test/run.js +118 -63
- package/dist/commands/skill/test/run.js.map +1 -1
- package/dist/commands/skills/build.d.ts +69 -2
- package/dist/commands/skills/build.d.ts.map +1 -1
- package/dist/commands/skills/build.js +112 -39
- package/dist/commands/skills/build.js.map +1 -1
- package/dist/commands/skills/install.d.ts +2 -1
- package/dist/commands/skills/install.d.ts.map +1 -1
- package/dist/commands/skills/install.js +20 -30
- package/dist/commands/skills/install.js.map +1 -1
- package/dist/commands/skills/list.d.ts.map +1 -1
- package/dist/commands/skills/list.js +14 -18
- package/dist/commands/skills/list.js.map +1 -1
- package/dist/commands/skills/package.d.ts +1 -1
- package/dist/commands/skills/package.d.ts.map +1 -1
- package/dist/commands/skills/package.js +6 -8
- package/dist/commands/skills/package.js.map +1 -1
- package/dist/commands/skills/scope-guard.d.ts.map +1 -1
- package/dist/commands/skills/scope-guard.js +2 -4
- package/dist/commands/skills/scope-guard.js.map +1 -1
- package/dist/commands/skills/shared.d.ts.map +1 -1
- package/dist/commands/skills/shared.js +2 -4
- package/dist/commands/skills/shared.js.map +1 -1
- package/dist/commands/skills/skill-discovery.d.ts.map +1 -1
- package/dist/commands/skills/skill-discovery.js +0 -1
- 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/validate.d.ts +1 -1
- package/dist/commands/validate.js +8 -6
- package/dist/commands/validate.js.map +1 -1
- package/dist/commands/verify.d.ts +8 -2
- package/dist/commands/verify.d.ts.map +1 -1
- package/dist/commands/verify.js +86 -56
- package/dist/commands/verify.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/report-schemas.d.ts +45 -0
- package/dist/report-schemas.d.ts.map +1 -0
- package/dist/report-schemas.js +102 -0
- package/dist/report-schemas.js.map +1 -0
- package/dist/skill-resolution/resolve-skill-reference.d.ts.map +1 -1
- package/dist/skill-resolution/resolve-skill-reference.js +2 -3
- package/dist/skill-resolution/resolve-skill-reference.js.map +1 -1
- package/dist/utils/agent-discovery.d.ts.map +1 -1
- package/dist/utils/agent-discovery.js +22 -11
- package/dist/utils/agent-discovery.js.map +1 -1
- package/dist/utils/agent-runner.d.ts.map +1 -1
- package/dist/utils/agent-runner.js +0 -1
- package/dist/utils/agent-runner.js.map +1 -1
- package/dist/utils/command-error.d.ts +63 -62
- package/dist/utils/command-error.d.ts.map +1 -1
- package/dist/utils/command-error.js +80 -76
- package/dist/utils/command-error.js.map +1 -1
- package/dist/utils/config-loader.d.ts +2 -1
- package/dist/utils/config-loader.d.ts.map +1 -1
- package/dist/utils/config-loader.js +3 -6
- package/dist/utils/config-loader.js.map +1 -1
- package/dist/utils/context-budget-issues.d.ts +1 -1
- package/dist/utils/context-budget-issues.js +1 -1
- package/dist/utils/corpus-target.d.ts +5 -27
- package/dist/utils/corpus-target.d.ts.map +1 -1
- package/dist/utils/corpus-target.js +7 -33
- package/dist/utils/corpus-target.js.map +1 -1
- package/dist/utils/help-loader.d.ts.map +1 -1
- package/dist/utils/help-loader.js +0 -1
- package/dist/utils/help-loader.js.map +1 -1
- package/dist/utils/issue-rendering.d.ts +2 -2
- package/dist/utils/issue-rendering.js +2 -2
- package/dist/utils/optional-backend.d.ts.map +1 -1
- package/dist/utils/optional-backend.js +2 -1
- package/dist/utils/optional-backend.js.map +1 -1
- package/dist/utils/output.d.ts +9 -0
- package/dist/utils/output.d.ts.map +1 -1
- package/dist/utils/output.js +16 -0
- package/dist/utils/output.js.map +1 -1
- package/dist/utils/package-json.d.ts +24 -0
- package/dist/utils/package-json.d.ts.map +1 -0
- package/dist/utils/package-json.js +49 -0
- package/dist/utils/package-json.js.map +1 -0
- package/dist/utils/project-root-policy.d.ts.map +1 -1
- package/dist/utils/project-root-policy.js +0 -2
- package/dist/utils/project-root-policy.js.map +1 -1
- package/dist/utils/resource-loader.js +2 -2
- package/dist/utils/resource-loader.js.map +1 -1
- package/dist/utils/skill-packaging-config.d.ts +27 -0
- package/dist/utils/skill-packaging-config.d.ts.map +1 -1
- package/dist/utils/skill-packaging-config.js +30 -0
- package/dist/utils/skill-packaging-config.js.map +1 -1
- package/dist/utils/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.map +1 -1
- package/dist/utils/user-context-scanner.js +0 -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 +3 -4
- package/dist/utils/validate-help-files.js.map +1 -1
- package/dist/utils/vat-bin-path.d.ts.map +1 -1
- package/dist/utils/vat-bin-path.js +0 -1
- package/dist/utils/vat-bin-path.js.map +1 -1
- package/dist/version.d.ts.map +1 -1
- package/dist/version.js +1 -3
- package/dist/version.js.map +1 -1
- package/docs/audit.md +44 -53
- package/docs/doctor.md +1 -0
- package/docs/index.md +18 -10
- package/docs/rag.md +0 -1
- package/docs/resources.md +0 -1
- package/docs/skill-test.md +10 -9
- package/docs/skills.md +6 -7
- package/package.json +22 -27
- package/schemas/ard-emit.json +149 -0
- package/schemas/claude-budget.json +197 -0
- package/schemas/okf-validate.json +170 -0
- package/schemas/resources-check.json +186 -0
- package/schemas/skill-review.json +230 -0
|
@@ -8,67 +8,177 @@
|
|
|
8
8
|
* `okf.bundles.<name>.severity`; the finding is still reported either way.
|
|
9
9
|
*/
|
|
10
10
|
import { type OkfBundleReport } from '@vibe-agent-toolkit/resources';
|
|
11
|
-
import type
|
|
11
|
+
import { type Report } from '@vibe-agent-toolkit/schema';
|
|
12
|
+
import { z } from 'zod';
|
|
12
13
|
export interface OkfValidateOptions {
|
|
13
14
|
format?: 'yaml' | 'json';
|
|
14
15
|
specVersion?: string;
|
|
15
16
|
debug?: boolean;
|
|
16
17
|
}
|
|
18
|
+
/** One checked bundle's `data` row: what was read, never the findings (those are the envelope's). */
|
|
19
|
+
export declare const OkfBundleSummarySchema: z.ZodObject<{
|
|
20
|
+
/** The `okf.bundles.<name>` key. */
|
|
21
|
+
bundle: z.ZodString;
|
|
22
|
+
/** The root as the config file wrote it — never the resolved absolute path. */
|
|
23
|
+
root: z.ZodString;
|
|
24
|
+
/** Every non-reserved `.md` beneath the root, bundle-relative and sorted. */
|
|
25
|
+
conceptDocuments: z.ZodArray<z.ZodString, "many">;
|
|
26
|
+
/** Every `index.md` / `log.md` beneath the root, bundle-relative and sorted. */
|
|
27
|
+
reservedDocuments: z.ZodArray<z.ZodString, "many">;
|
|
28
|
+
/** What the root `index.md` declares, when it declares a well-formed one. Reported, never obeyed. */
|
|
29
|
+
declaredOkfVersion: z.ZodOptional<z.ZodString>;
|
|
30
|
+
}, "strict", z.ZodTypeAny, {
|
|
31
|
+
root: string;
|
|
32
|
+
bundle: string;
|
|
33
|
+
conceptDocuments: string[];
|
|
34
|
+
reservedDocuments: string[];
|
|
35
|
+
declaredOkfVersion?: string | undefined;
|
|
36
|
+
}, {
|
|
37
|
+
root: string;
|
|
38
|
+
bundle: string;
|
|
39
|
+
conceptDocuments: string[];
|
|
40
|
+
reservedDocuments: string[];
|
|
41
|
+
declaredOkfVersion?: string | undefined;
|
|
42
|
+
}>;
|
|
43
|
+
export declare const OkfValidateDataSchema: z.ZodObject<{
|
|
44
|
+
bundles: z.ZodArray<z.ZodObject<{
|
|
45
|
+
/** The `okf.bundles.<name>` key. */
|
|
46
|
+
bundle: z.ZodString;
|
|
47
|
+
/** The root as the config file wrote it — never the resolved absolute path. */
|
|
48
|
+
root: z.ZodString;
|
|
49
|
+
/** Every non-reserved `.md` beneath the root, bundle-relative and sorted. */
|
|
50
|
+
conceptDocuments: z.ZodArray<z.ZodString, "many">;
|
|
51
|
+
/** Every `index.md` / `log.md` beneath the root, bundle-relative and sorted. */
|
|
52
|
+
reservedDocuments: z.ZodArray<z.ZodString, "many">;
|
|
53
|
+
/** What the root `index.md` declares, when it declares a well-formed one. Reported, never obeyed. */
|
|
54
|
+
declaredOkfVersion: z.ZodOptional<z.ZodString>;
|
|
55
|
+
}, "strict", z.ZodTypeAny, {
|
|
56
|
+
root: string;
|
|
57
|
+
bundle: string;
|
|
58
|
+
conceptDocuments: string[];
|
|
59
|
+
reservedDocuments: string[];
|
|
60
|
+
declaredOkfVersion?: string | undefined;
|
|
61
|
+
}, {
|
|
62
|
+
root: string;
|
|
63
|
+
bundle: string;
|
|
64
|
+
conceptDocuments: string[];
|
|
65
|
+
reservedDocuments: string[];
|
|
66
|
+
declaredOkfVersion?: string | undefined;
|
|
67
|
+
}>, "many">;
|
|
68
|
+
/**
|
|
69
|
+
* Present only when there was nothing to check, and says what to declare or
|
|
70
|
+
* which root to look at.
|
|
71
|
+
*
|
|
72
|
+
* 🪤 The command used to print `status: passed`, `bundles: []`, exit 0 when a
|
|
73
|
+
* project declared no `okf.bundles` at all — a report indistinguishable from
|
|
74
|
+
* a bundle read in full and found conformant, so a mistyped key
|
|
75
|
+
* (`okf.bundle:`, `okf.Bundles:`) read as a clean bill of health. The
|
|
76
|
+
* envelope's REQUIRED `examined` now says `0` in that case, and this sentence
|
|
77
|
+
* says why. The exit code stays 0: nothing failed, and failing a build for a
|
|
78
|
+
* feature the project never opted into would be worse.
|
|
79
|
+
*/
|
|
80
|
+
notice: z.ZodOptional<z.ZodString>;
|
|
81
|
+
}, "strict", z.ZodTypeAny, {
|
|
82
|
+
bundles: {
|
|
83
|
+
root: string;
|
|
84
|
+
bundle: string;
|
|
85
|
+
conceptDocuments: string[];
|
|
86
|
+
reservedDocuments: string[];
|
|
87
|
+
declaredOkfVersion?: string | undefined;
|
|
88
|
+
}[];
|
|
89
|
+
notice?: string | undefined;
|
|
90
|
+
}, {
|
|
91
|
+
bundles: {
|
|
92
|
+
root: string;
|
|
93
|
+
bundle: string;
|
|
94
|
+
conceptDocuments: string[];
|
|
95
|
+
reservedDocuments: string[];
|
|
96
|
+
declaredOkfVersion?: string | undefined;
|
|
97
|
+
}[];
|
|
98
|
+
notice?: string | undefined;
|
|
99
|
+
}>;
|
|
100
|
+
export type OkfBundleSummary = z.infer<typeof OkfBundleSummarySchema>;
|
|
101
|
+
export type OkfValidateData = z.infer<typeof OkfValidateDataSchema>;
|
|
17
102
|
/** The document this command publishes. */
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
export type OkfValidateStatus = 'passed' | 'failed' | 'no-bundles';
|
|
44
|
-
/** The summary half of the report: pure, so the status rule is testable. */
|
|
45
|
-
export interface OkfValidateSummary {
|
|
46
|
-
status: OkfValidateStatus;
|
|
47
|
-
findingCount: number;
|
|
103
|
+
export declare const OKF_VALIDATE_REPORT_SCHEMA: import("@vibe-agent-toolkit/schema").ReportZodSchema<z.ZodObject<{
|
|
104
|
+
bundles: z.ZodArray<z.ZodObject<{
|
|
105
|
+
/** The `okf.bundles.<name>` key. */
|
|
106
|
+
bundle: z.ZodString;
|
|
107
|
+
/** The root as the config file wrote it — never the resolved absolute path. */
|
|
108
|
+
root: z.ZodString;
|
|
109
|
+
/** Every non-reserved `.md` beneath the root, bundle-relative and sorted. */
|
|
110
|
+
conceptDocuments: z.ZodArray<z.ZodString, "many">;
|
|
111
|
+
/** Every `index.md` / `log.md` beneath the root, bundle-relative and sorted. */
|
|
112
|
+
reservedDocuments: z.ZodArray<z.ZodString, "many">;
|
|
113
|
+
/** What the root `index.md` declares, when it declares a well-formed one. Reported, never obeyed. */
|
|
114
|
+
declaredOkfVersion: z.ZodOptional<z.ZodString>;
|
|
115
|
+
}, "strict", z.ZodTypeAny, {
|
|
116
|
+
root: string;
|
|
117
|
+
bundle: string;
|
|
118
|
+
conceptDocuments: string[];
|
|
119
|
+
reservedDocuments: string[];
|
|
120
|
+
declaredOkfVersion?: string | undefined;
|
|
121
|
+
}, {
|
|
122
|
+
root: string;
|
|
123
|
+
bundle: string;
|
|
124
|
+
conceptDocuments: string[];
|
|
125
|
+
reservedDocuments: string[];
|
|
126
|
+
declaredOkfVersion?: string | undefined;
|
|
127
|
+
}>, "many">;
|
|
48
128
|
/**
|
|
49
|
-
*
|
|
50
|
-
*
|
|
129
|
+
* Present only when there was nothing to check, and says what to declare or
|
|
130
|
+
* which root to look at.
|
|
51
131
|
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
132
|
+
* 🪤 The command used to print `status: passed`, `bundles: []`, exit 0 when a
|
|
133
|
+
* project declared no `okf.bundles` at all — a report indistinguishable from
|
|
134
|
+
* a bundle read in full and found conformant, so a mistyped key
|
|
135
|
+
* (`okf.bundle:`, `okf.Bundles:`) read as a clean bill of health. The
|
|
136
|
+
* envelope's REQUIRED `examined` now says `0` in that case, and this sentence
|
|
137
|
+
* says why. The exit code stays 0: nothing failed, and failing a build for a
|
|
138
|
+
* feature the project never opted into would be worse.
|
|
58
139
|
*/
|
|
59
|
-
|
|
60
|
-
|
|
140
|
+
notice: z.ZodOptional<z.ZodString>;
|
|
141
|
+
}, "strict", z.ZodTypeAny, {
|
|
142
|
+
bundles: {
|
|
143
|
+
root: string;
|
|
144
|
+
bundle: string;
|
|
145
|
+
conceptDocuments: string[];
|
|
146
|
+
reservedDocuments: string[];
|
|
147
|
+
declaredOkfVersion?: string | undefined;
|
|
148
|
+
}[];
|
|
149
|
+
notice?: string | undefined;
|
|
150
|
+
}, {
|
|
151
|
+
bundles: {
|
|
152
|
+
root: string;
|
|
153
|
+
bundle: string;
|
|
154
|
+
conceptDocuments: string[];
|
|
155
|
+
reservedDocuments: string[];
|
|
156
|
+
declaredOkfVersion?: string | undefined;
|
|
157
|
+
}[];
|
|
158
|
+
notice?: string | undefined;
|
|
159
|
+
}>>;
|
|
160
|
+
export type OkfValidateReport = Report<OkfValidateData>;
|
|
161
|
+
/** One bundle's report beside the absolute root it was read from. */
|
|
162
|
+
export interface CheckedOkfBundle {
|
|
163
|
+
readonly report: OkfBundleReport;
|
|
164
|
+
/** The resolved absolute root, so a finding can name a project-relative file. */
|
|
165
|
+
readonly root: string;
|
|
61
166
|
}
|
|
62
167
|
/**
|
|
63
|
-
*
|
|
168
|
+
* Assemble the report for a set of checked bundles. Pure, so the status rule
|
|
169
|
+
* and the denominator are unit-testable.
|
|
170
|
+
*
|
|
171
|
+
* `examined` counts every document that was opened and judged — concept and
|
|
172
|
+
* reserved alike — across every bundle. A declared-but-empty bundle and an
|
|
173
|
+
* empty declaration both examine zero, and the notice tells them apart.
|
|
64
174
|
*
|
|
65
|
-
* @param
|
|
66
|
-
* @
|
|
67
|
-
*
|
|
175
|
+
* @param checked - One report per bundle that was actually checked, with its root
|
|
176
|
+
* @param projectRoot - What every finding's `location` is relative to
|
|
177
|
+
* @returns The report
|
|
68
178
|
*/
|
|
69
|
-
export declare function summarizeOkfBundles(
|
|
179
|
+
export declare function summarizeOkfBundles(checked: readonly CheckedOkfBundle[], projectRoot: string): OkfValidateReport;
|
|
70
180
|
/**
|
|
71
|
-
*
|
|
181
|
+
* Check every selected bundle and assemble the report.
|
|
72
182
|
*
|
|
73
183
|
* Separate from the action so the shape is testable without a process exit.
|
|
74
184
|
*
|
|
@@ -78,5 +188,4 @@ export declare function summarizeOkfBundles(bundles: readonly OkfBundleReport[])
|
|
|
78
188
|
export declare function okfValidateReport(bundleArg: string | undefined, options: OkfValidateOptions): Promise<OkfValidateReport>;
|
|
79
189
|
/** Action handler for `vat okf validate [bundle]`. */
|
|
80
190
|
export declare function okfValidateCommand(bundleArg: string | undefined, options: OkfValidateOptions): Promise<void>;
|
|
81
|
-
export {};
|
|
82
191
|
//# sourceMappingURL=validate.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/commands/okf/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAIL,KAAK,eAAe,EAErB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../../src/commands/okf/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EAIL,KAAK,eAAe,EAErB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAsE,KAAK,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAE7H,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qGAAqG;AACrG,eAAO,MAAM,sBAAsB;IACjC,oCAAoC;;IAEpC,+EAA+E;;IAE/E,6EAA6E;;IAE7E,gFAAgF;;IAEhF,qGAAqG;;;;;;;;;;;;;;EAE5F,CAAC;AAEZ,eAAO,MAAM,qBAAqB;;QAZhC,oCAAoC;;QAEpC,+EAA+E;;QAE/E,6EAA6E;;QAE7E,gFAAgF;;QAEhF,qGAAqG;;;;;;;;;;;;;;;IAMrG;;;;;;;;;;;OAWG;;;;;;;;;;;;;;;;;;;;EAEM,CAAC;AAEZ,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAEpE,2CAA2C;AAC3C,eAAO,MAAM,0BAA0B;;QAjCrC,oCAAoC;;QAEpC,+EAA+E;;QAE/E,6EAA6E;;QAE7E,gFAAgF;;QAEhF,qGAAqG;;;;;;;;;;;;;;;IAMrG;;;;;;;;;;;OAWG;;;;;;;;;;;;;;;;;;;;GAQwE,CAAC;AAE9E,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;AAExD,qEAAqE;AACrE,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,iFAAiF;IACjF,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACvB;AA8ED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,SAAS,gBAAgB,EAAE,EACpC,WAAW,EAAE,MAAM,GAClB,iBAAiB,CAyBnB;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,iBAAiB,CAAC,CAmB5B;AAED,sDAAsD;AACtD,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,IAAI,CAAC,CAcf"}
|
|
@@ -9,48 +9,50 @@
|
|
|
9
9
|
*/
|
|
10
10
|
import { dirname } from 'node:path';
|
|
11
11
|
import { okfBundleRuns, parseConfigFile, validateOkfBundle, } from '@vibe-agent-toolkit/resources';
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
12
|
+
import { buildReport, exitCodeForSeverityCounts, reportSchema } from '@vibe-agent-toolkit/schema';
|
|
13
|
+
import { findConfigFile, issueLocation, safePath } from '@vibe-agent-toolkit/utils';
|
|
14
|
+
import { z } from 'zod';
|
|
15
|
+
import { handleReportCommandError } from '../../utils/command-error.js';
|
|
14
16
|
import { createLogger } from '../../utils/logger.js';
|
|
15
|
-
import {
|
|
16
|
-
/**
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
17
|
+
import { writeStructuredOutput } from '../../utils/output.js';
|
|
18
|
+
/** One checked bundle's `data` row: what was read, never the findings (those are the envelope's). */
|
|
19
|
+
export const OkfBundleSummarySchema = z.object({
|
|
20
|
+
/** The `okf.bundles.<name>` key. */
|
|
21
|
+
bundle: z.string(),
|
|
22
|
+
/** The root as the config file wrote it — never the resolved absolute path. */
|
|
23
|
+
root: z.string(),
|
|
24
|
+
/** Every non-reserved `.md` beneath the root, bundle-relative and sorted. */
|
|
25
|
+
conceptDocuments: z.array(z.string()),
|
|
26
|
+
/** Every `index.md` / `log.md` beneath the root, bundle-relative and sorted. */
|
|
27
|
+
reservedDocuments: z.array(z.string()),
|
|
28
|
+
/** What the root `index.md` declares, when it declares a well-formed one. Reported, never obeyed. */
|
|
29
|
+
declaredOkfVersion: z.string().optional(),
|
|
30
|
+
}).strict();
|
|
31
|
+
export const OkfValidateDataSchema = z.object({
|
|
32
|
+
bundles: z.array(OkfBundleSummarySchema),
|
|
33
|
+
/**
|
|
34
|
+
* Present only when there was nothing to check, and says what to declare or
|
|
35
|
+
* which root to look at.
|
|
36
|
+
*
|
|
37
|
+
* 🪤 The command used to print `status: passed`, `bundles: []`, exit 0 when a
|
|
38
|
+
* project declared no `okf.bundles` at all — a report indistinguishable from
|
|
39
|
+
* a bundle read in full and found conformant, so a mistyped key
|
|
40
|
+
* (`okf.bundle:`, `okf.Bundles:`) read as a clean bill of health. The
|
|
41
|
+
* envelope's REQUIRED `examined` now says `0` in that case, and this sentence
|
|
42
|
+
* says why. The exit code stays 0: nothing failed, and failing a build for a
|
|
43
|
+
* feature the project never opted into would be worse.
|
|
44
|
+
*/
|
|
45
|
+
notice: z.string().optional(),
|
|
46
|
+
}).strict();
|
|
47
|
+
/** The document this command publishes. */
|
|
48
|
+
export const OKF_VALIDATE_REPORT_SCHEMA = reportSchema(OkfValidateDataSchema);
|
|
46
49
|
/**
|
|
47
50
|
* The bundles whose root was read successfully and held not one markdown file.
|
|
48
51
|
*
|
|
49
|
-
* 🪤 The same green-without-running shape the `
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
* in full and found conformant.
|
|
52
|
+
* 🪤 The same green-without-running shape the `notice` exists for, one level
|
|
53
|
+
* down. A `root:` typo that lands on a real-but-wrong directory, or a root
|
|
54
|
+
* written one level too deep, produces zero findings and an `examined` that
|
|
55
|
+
* only THIS bundle's rows explain — so the run says so in words too.
|
|
54
56
|
*
|
|
55
57
|
* A bundle carrying findings is excluded even when its document lists are empty:
|
|
56
58
|
* that is the unreadable-root case, which already says the truthful thing in its
|
|
@@ -79,38 +81,73 @@ function vacuousNotice(vacuous) {
|
|
|
79
81
|
return `${named} contains no .md files, so nothing was checked in ${subject}. A root pointing one level too deep, or at a real-but-wrong directory, reads exactly like this — check \`okf.bundles.<name>.root\`.`;
|
|
80
82
|
}
|
|
81
83
|
/**
|
|
82
|
-
*
|
|
84
|
+
* The sentence a run carries when it examined less than a reader would assume.
|
|
83
85
|
*
|
|
84
|
-
* @param bundles -
|
|
85
|
-
* @returns The
|
|
86
|
-
* notice when nothing was declared or a declared bundle held nothing
|
|
86
|
+
* @param bundles - Every bundle report in the run
|
|
87
|
+
* @returns The notice, or nothing when every declared bundle held documents
|
|
87
88
|
*/
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
const issueCounts = countOkfFindings(findings);
|
|
92
|
-
if (bundles.length === 0) {
|
|
93
|
-
return {
|
|
94
|
-
status: 'no-bundles',
|
|
95
|
-
findingCount,
|
|
96
|
-
issueCounts,
|
|
97
|
-
notice: 'No OKF bundles are declared, so nothing was checked. Declare one under `okf.bundles.<name>.root` in vibe-agent-toolkit.config.yaml; every non-reserved .md beneath that root is then checked for frontmatter carrying a non-empty `type`.',
|
|
98
|
-
};
|
|
99
|
-
}
|
|
100
|
-
// Status and exit code deliberately do NOT move: nothing failed, and failing a
|
|
101
|
-
// build over an empty directory would be worse than the silence. It is the
|
|
102
|
-
// report that must stop implying a bundle was read when it was not.
|
|
89
|
+
function noticeFor(bundles) {
|
|
90
|
+
if (bundles.length === 0)
|
|
91
|
+
return NO_BUNDLES_NOTICE;
|
|
103
92
|
const vacuous = vacuousBundles(bundles);
|
|
104
|
-
|
|
93
|
+
return vacuous.length > 0 ? vacuousNotice(vacuous) : undefined;
|
|
94
|
+
}
|
|
95
|
+
const NO_BUNDLES_NOTICE = 'No OKF bundles are declared, so nothing was checked. Declare one under `okf.bundles.<name>.root` in vibe-agent-toolkit.config.yaml; every non-reserved .md beneath that root is then checked for frontmatter carrying a non-empty `type`.';
|
|
96
|
+
/**
|
|
97
|
+
* A bundle's finding as the envelope publishes it: the same code, severity and
|
|
98
|
+
* message, with `location` the project-relative path of the document — the
|
|
99
|
+
* file you would open — rather than a bundle-relative `document` a reader had
|
|
100
|
+
* to join with the bundle's root by hand.
|
|
101
|
+
*
|
|
102
|
+
* @param finding - The lane's finding
|
|
103
|
+
* @param root - The bundle's absolute root
|
|
104
|
+
* @param projectRoot - What `location` is relative to
|
|
105
|
+
* @returns The published finding
|
|
106
|
+
*/
|
|
107
|
+
function toFinding(finding, root, projectRoot) {
|
|
105
108
|
return {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
109
|
+
code: finding.code,
|
|
110
|
+
severity: finding.severity,
|
|
111
|
+
message: finding.message,
|
|
112
|
+
location: issueLocation(safePath.join(root, finding.document), projectRoot),
|
|
113
|
+
...(finding.link === undefined ? {} : { link: finding.link }),
|
|
114
|
+
...(finding.line === undefined ? {} : { line: finding.line }),
|
|
110
115
|
};
|
|
111
116
|
}
|
|
112
117
|
/**
|
|
113
|
-
* Assemble the report for
|
|
118
|
+
* Assemble the report for a set of checked bundles. Pure, so the status rule
|
|
119
|
+
* and the denominator are unit-testable.
|
|
120
|
+
*
|
|
121
|
+
* `examined` counts every document that was opened and judged — concept and
|
|
122
|
+
* reserved alike — across every bundle. A declared-but-empty bundle and an
|
|
123
|
+
* empty declaration both examine zero, and the notice tells them apart.
|
|
124
|
+
*
|
|
125
|
+
* @param checked - One report per bundle that was actually checked, with its root
|
|
126
|
+
* @param projectRoot - What every finding's `location` is relative to
|
|
127
|
+
* @returns The report
|
|
128
|
+
*/
|
|
129
|
+
export function summarizeOkfBundles(checked, projectRoot) {
|
|
130
|
+
const bundles = checked.map((entry) => entry.report);
|
|
131
|
+
const findings = checked.flatMap((entry) => entry.report.findings.map((finding) => toFinding(finding, entry.root, projectRoot)));
|
|
132
|
+
const examined = bundles.reduce((sum, report) => sum + report.conceptDocuments.length + report.reservedDocuments.length, 0);
|
|
133
|
+
const notice = noticeFor(bundles);
|
|
134
|
+
return buildReport({
|
|
135
|
+
examined,
|
|
136
|
+
findings,
|
|
137
|
+
data: {
|
|
138
|
+
bundles: bundles.map((report) => ({
|
|
139
|
+
bundle: report.bundle,
|
|
140
|
+
root: report.root,
|
|
141
|
+
conceptDocuments: report.conceptDocuments,
|
|
142
|
+
reservedDocuments: report.reservedDocuments,
|
|
143
|
+
...(report.declaredOkfVersion === undefined ? {} : { declaredOkfVersion: report.declaredOkfVersion }),
|
|
144
|
+
})),
|
|
145
|
+
...(notice === undefined ? {} : { notice }),
|
|
146
|
+
},
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Check every selected bundle and assemble the report.
|
|
114
151
|
*
|
|
115
152
|
* Separate from the action so the shape is testable without a process exit.
|
|
116
153
|
*
|
|
@@ -123,35 +160,31 @@ export async function okfValidateReport(bundleArg, options) {
|
|
|
123
160
|
throw new Error('No vibe-agent-toolkit.config.yaml found. Run from a project directory.');
|
|
124
161
|
}
|
|
125
162
|
const config = await parseConfigFile(configPath);
|
|
126
|
-
const
|
|
163
|
+
const projectRoot = dirname(configPath);
|
|
164
|
+
const runs = okfBundleRuns(config.okf, projectRoot, {
|
|
127
165
|
...(bundleArg !== undefined && { bundle: bundleArg }),
|
|
128
166
|
...(options.specVersion !== undefined && { specVersion: options.specVersion }),
|
|
129
167
|
});
|
|
130
|
-
const
|
|
168
|
+
const checked = [];
|
|
131
169
|
for (const run of runs) {
|
|
132
|
-
|
|
170
|
+
checked.push({ report: await validateOkfBundle(run), root: run.root });
|
|
133
171
|
}
|
|
134
|
-
return
|
|
172
|
+
return summarizeOkfBundles(checked, projectRoot);
|
|
135
173
|
}
|
|
136
174
|
/** Action handler for `vat okf validate [bundle]`. */
|
|
137
175
|
export async function okfValidateCommand(bundleArg, options) {
|
|
138
176
|
const logger = createLogger(options.debug === true ? { debug: true } : {});
|
|
139
177
|
const startTime = Date.now();
|
|
140
178
|
try {
|
|
141
|
-
const report = await okfValidateReport(bundleArg, options);
|
|
142
|
-
|
|
143
|
-
writeJsonOutput(report);
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
writeYamlOutput(report);
|
|
147
|
-
}
|
|
179
|
+
const report = { ...(await okfValidateReport(bundleArg, options)), durationMs: Date.now() - startTime };
|
|
180
|
+
writeStructuredOutput(report, options.format);
|
|
148
181
|
// Read from the counts the report PUBLISHES, not from the status word: an
|
|
149
182
|
// adopter who promotes or lowers a bundle's severity then gates on exactly
|
|
150
183
|
// the number a reader can see.
|
|
151
|
-
process.exit(report.
|
|
184
|
+
process.exit(exitCodeForSeverityCounts(report.summary));
|
|
152
185
|
}
|
|
153
186
|
catch (error) {
|
|
154
|
-
|
|
187
|
+
handleReportCommandError(error, logger, startTime, 'OKF validate', options.format);
|
|
155
188
|
}
|
|
156
189
|
}
|
|
157
190
|
//# sourceMappingURL=validate.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/commands/okf/validate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACL,aAAa,EACb,eAAe,EACf,iBAAiB,GAGlB,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/commands/okf/validate.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Shared utilities for top-level phase orchestration commands (vat build, vat verify, vat validate).
|
|
3
3
|
*/
|
|
4
|
-
import { type SeverityCounts } from '@vibe-agent-toolkit/schema';
|
|
4
|
+
import { type ExitCodeValue, type SeverityCounts } from '@vibe-agent-toolkit/schema';
|
|
5
5
|
import { type Command } from 'commander';
|
|
6
6
|
import { createLogger } from '../utils/logger.js';
|
|
7
7
|
/**
|
|
@@ -23,7 +23,7 @@ import { createLogger } from '../utils/logger.js';
|
|
|
23
23
|
*/
|
|
24
24
|
export interface PhaseOutcome {
|
|
25
25
|
document: unknown;
|
|
26
|
-
exitCode:
|
|
26
|
+
exitCode: ExitCodeValue;
|
|
27
27
|
/**
|
|
28
28
|
* The phase failed UNEXPECTEDLY, so `document` is the shared error envelope
|
|
29
29
|
* (`{status, error, duration}`) rather than the command's own report.
|
|
@@ -106,7 +106,7 @@ export interface PhaseResult {
|
|
|
106
106
|
name: string;
|
|
107
107
|
status: PhaseStatus;
|
|
108
108
|
/** The exit code the phase claimed for itself. */
|
|
109
|
-
exitCode?:
|
|
109
|
+
exitCode?: ExitCodeValue;
|
|
110
110
|
/** Why the phase could not run at all (it threw past its own error handling). */
|
|
111
111
|
error?: string;
|
|
112
112
|
/**
|
|
@@ -226,9 +226,10 @@ export declare function worseOf(a: PhaseStatus, b: PhaseStatus): PhaseStatus;
|
|
|
226
226
|
*
|
|
227
227
|
* | exit code | phase status | why |
|
|
228
228
|
* |-----------------------|----------------|-----------------------------------------|
|
|
229
|
-
* | 0
|
|
230
|
-
* | 1
|
|
231
|
-
* |
|
|
229
|
+
* | `OK` (0) | `success` | ran, found nothing actionable |
|
|
230
|
+
* | `FINDINGS` (1) | `error` | ran, found validation errors |
|
|
231
|
+
* | `ERROR` (2) | `system-error` | the phase itself reported a system error |
|
|
232
|
+
* | anything else | throws | a defect in the phase, filed by `runPhase` as `system-error` |
|
|
232
233
|
*
|
|
233
234
|
* The exit code is then reconciled with the phase's OWN reported `status`,
|
|
234
235
|
* worst-wins. An exit code has three values and cannot express `warning`:
|
|
@@ -327,9 +328,9 @@ export declare function phaseIssueCounts(result: PhaseResult): SeverityCounts;
|
|
|
327
328
|
export declare function aggregatePhaseIssueCounts(results: readonly PhaseResult[]): SeverityCounts;
|
|
328
329
|
/**
|
|
329
330
|
* The process exit code for a set of phase outcomes, per the exit-code contract
|
|
330
|
-
* every orchestrator's help text documents:
|
|
331
|
-
*
|
|
332
|
-
* and counts instead.
|
|
331
|
+
* every orchestrator's help text documents: `OK` pass, `FINDINGS` validation
|
|
332
|
+
* failure, `ERROR` system error. Warnings do not fail a run — they are
|
|
333
|
+
* published in the status and counts instead.
|
|
333
334
|
*/
|
|
334
|
-
export declare function exitCodeForPhases(results: readonly PhaseResult[]):
|
|
335
|
+
export declare function exitCodeForPhases(results: readonly PhaseResult[]): ExitCodeValue;
|
|
335
336
|
//# sourceMappingURL=phase-utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase-utils.d.ts","sourceRoot":"","sources":["../../src/commands/phase-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,
|
|
1
|
+
{"version":3,"file":"phase-utils.d.ts","sourceRoot":"","sources":["../../src/commands/phase-utils.ts"],"names":[],"mappings":"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"}
|