@vibe-agent-toolkit/agent-skills 0.1.41-rc.7 → 0.1.41

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.
Files changed (104) hide show
  1. package/dist/content-type-routing.d.ts +18 -1
  2. package/dist/content-type-routing.d.ts.map +1 -1
  3. package/dist/content-type-routing.js +17 -0
  4. package/dist/content-type-routing.js.map +1 -1
  5. package/dist/evidence/build-evidence.d.ts +38 -0
  6. package/dist/evidence/build-evidence.d.ts.map +1 -0
  7. package/dist/evidence/build-evidence.js +60 -0
  8. package/dist/evidence/build-evidence.js.map +1 -0
  9. package/dist/evidence/index.d.ts +1 -0
  10. package/dist/evidence/index.d.ts.map +1 -1
  11. package/dist/evidence/index.js +1 -0
  12. package/dist/evidence/index.js.map +1 -1
  13. package/dist/files-config.d.ts +225 -31
  14. package/dist/files-config.d.ts.map +1 -1
  15. package/dist/files-config.js +445 -123
  16. package/dist/files-config.js.map +1 -1
  17. package/dist/index.d.ts +8 -6
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +10 -4
  20. package/dist/index.js.map +1 -1
  21. package/dist/post-build-checks.d.ts +10 -1
  22. package/dist/post-build-checks.d.ts.map +1 -1
  23. package/dist/post-build-checks.js +55 -6
  24. package/dist/post-build-checks.js.map +1 -1
  25. package/dist/schemas/index.d.ts +3 -2
  26. package/dist/schemas/index.d.ts.map +1 -1
  27. package/dist/schemas/index.js +2 -2
  28. package/dist/schemas/index.js.map +1 -1
  29. package/dist/schemas/installed-plugins-registry.d.ts +137 -63
  30. package/dist/schemas/installed-plugins-registry.d.ts.map +1 -1
  31. package/dist/schemas/installed-plugins-registry.js +94 -6
  32. package/dist/schemas/installed-plugins-registry.js.map +1 -1
  33. package/dist/schemas/known-marketplaces-registry.d.ts +165 -100
  34. package/dist/schemas/known-marketplaces-registry.d.ts.map +1 -1
  35. package/dist/schemas/known-marketplaces-registry.js +108 -21
  36. package/dist/schemas/known-marketplaces-registry.js.map +1 -1
  37. package/dist/schemas/registry-drift.d.ts +53 -0
  38. package/dist/schemas/registry-drift.d.ts.map +1 -0
  39. package/dist/schemas/registry-drift.js +50 -0
  40. package/dist/schemas/registry-drift.js.map +1 -0
  41. package/dist/skill-packager.d.ts +75 -5
  42. package/dist/skill-packager.d.ts.map +1 -1
  43. package/dist/skill-packager.js +304 -50
  44. package/dist/skill-packager.js.map +1 -1
  45. package/dist/skill-source/git-clone.d.ts.map +1 -1
  46. package/dist/skill-source/git-clone.js +32 -11
  47. package/dist/skill-source/git-clone.js.map +1 -1
  48. package/dist/skill-test/eval-inputs.js +2 -2
  49. package/dist/skill-test/eval-inputs.js.map +1 -1
  50. package/dist/skill-test/eval-lint.js +2 -2
  51. package/dist/skill-test/eval-lint.js.map +1 -1
  52. package/dist/skill-test/grader-prompt.js +2 -2
  53. package/dist/skill-test/grader-prompt.js.map +1 -1
  54. package/dist/test-input.d.ts +59 -24
  55. package/dist/test-input.d.ts.map +1 -1
  56. package/dist/test-input.js +77 -16
  57. package/dist/test-input.js.map +1 -1
  58. package/dist/validators/agent-instruction-presence.d.ts +41 -0
  59. package/dist/validators/agent-instruction-presence.d.ts.map +1 -0
  60. package/dist/validators/agent-instruction-presence.js +79 -0
  61. package/dist/validators/agent-instruction-presence.js.map +1 -0
  62. package/dist/validators/bundled-resource-link-detection.d.ts +20 -3
  63. package/dist/validators/bundled-resource-link-detection.d.ts.map +1 -1
  64. package/dist/validators/bundled-resource-link-detection.js +78 -34
  65. package/dist/validators/bundled-resource-link-detection.js.map +1 -1
  66. package/dist/validators/compat-detectors.d.ts +9 -4
  67. package/dist/validators/compat-detectors.d.ts.map +1 -1
  68. package/dist/validators/compat-detectors.js +18 -30
  69. package/dist/validators/compat-detectors.js.map +1 -1
  70. package/dist/validators/index.d.ts +1 -0
  71. package/dist/validators/index.d.ts.map +1 -1
  72. package/dist/validators/index.js +1 -0
  73. package/dist/validators/index.js.map +1 -1
  74. package/dist/validators/packaging-validator.d.ts +68 -10
  75. package/dist/validators/packaging-validator.d.ts.map +1 -1
  76. package/dist/validators/packaging-validator.js +51 -10
  77. package/dist/validators/packaging-validator.js.map +1 -1
  78. package/dist/validators/registry-validator.d.ts.map +1 -1
  79. package/dist/validators/registry-validator.js +28 -7
  80. package/dist/validators/registry-validator.js.map +1 -1
  81. package/dist/validators/rule-engine/rule-context.d.ts +4 -2
  82. package/dist/validators/rule-engine/rule-context.d.ts.map +1 -1
  83. package/dist/validators/rule-engine/rule-context.js.map +1 -1
  84. package/dist/validators/rule-engine/rule-engine.d.ts.map +1 -1
  85. package/dist/validators/rule-engine/rule-engine.js +15 -3
  86. package/dist/validators/rule-engine/rule-engine.js.map +1 -1
  87. package/dist/validators/skill-validator.d.ts.map +1 -1
  88. package/dist/validators/skill-validator.js +16 -10
  89. package/dist/validators/skill-validator.js.map +1 -1
  90. package/dist/validators/source-only-codes.d.ts.map +1 -1
  91. package/dist/validators/source-only-codes.js +1 -0
  92. package/dist/validators/source-only-codes.js.map +1 -1
  93. package/dist/validators/validation-rules.d.ts +135 -17
  94. package/dist/validators/validation-rules.d.ts.map +1 -1
  95. package/dist/validators/validation-rules.js +192 -38
  96. package/dist/validators/validation-rules.js.map +1 -1
  97. package/dist/validators/walker-to-issues.d.ts.map +1 -1
  98. package/dist/validators/walker-to-issues.js +20 -7
  99. package/dist/validators/walker-to-issues.js.map +1 -1
  100. package/dist/walk-link-graph.d.ts +10 -1
  101. package/dist/walk-link-graph.d.ts.map +1 -1
  102. package/dist/walk-link-graph.js +124 -39
  103. package/dist/walk-link-graph.js.map +1 -1
  104. package/package.json +5 -5
@@ -1,13 +1,42 @@
1
1
  import { z } from 'zod';
2
2
  import { zodToJsonSchema } from 'zod-to-json-schema';
3
+ import { isRecord, recordDrift, recordUnknownKeys, } from './registry-drift.js';
4
+ /**
5
+ * `installed_plugins.json` is written and owned by Claude Code — VAT only reads it.
6
+ * Per VAT's Postel's Law rule (CLAUDE.md: "Reading outside world → liberal"), these
7
+ * schemas `.passthrough()` and keep `scope` open: an unrecognized field or install
8
+ * scope is drift in someone else's file, not an error in the user's setup.
9
+ *
10
+ * Modelling it strictly turned every shape Claude Code added — the `project` scope,
11
+ * its `projectPath` companion, the removal of `isLocal` — into a wall of false errors.
12
+ *
13
+ * Liberality alone would be blindness, so it is paired with
14
+ * {@link detectInstalledPluginsRegistryDrift}: what passthrough absorbs still gets
15
+ * reported, at `info`, as `REGISTRY_SHAPE_DRIFT`.
16
+ */
17
+ /**
18
+ * Install scopes VAT's model knows about. Not enforced by the schema — a scope
19
+ * outside this list parses fine and is reported as drift instead.
20
+ */
21
+ export const KNOWN_INSTALLATION_SCOPES = [
22
+ 'user',
23
+ 'system',
24
+ 'project',
25
+ 'local',
26
+ ];
27
+ const KNOWN_SCOPE_SET = new Set(KNOWN_INSTALLATION_SCOPES);
3
28
  /**
4
29
  * Single plugin installation entry
5
30
  */
6
31
  const PluginInstallationSchema = z
7
32
  .object({
8
33
  scope: z
9
- .enum(['user', 'system'])
10
- .describe('Installation scope (user or system-wide)'),
34
+ .string()
35
+ .describe(`Installation scope (recognized: ${KNOWN_INSTALLATION_SCOPES.join(', ')}; others pass through as drift)`),
36
+ projectPath: z
37
+ .string()
38
+ .optional()
39
+ .describe('Absolute path to the project a project-scoped installation belongs to'),
11
40
  installPath: z
12
41
  .string()
13
42
  .describe('Absolute path to installed plugin directory'),
@@ -28,16 +57,17 @@ const PluginInstallationSchema = z
28
57
  .describe('Git commit SHA for git-based installations'),
29
58
  isLocal: z
30
59
  .boolean()
31
- .describe('Whether plugin is installed locally (not from marketplace)'),
60
+ .optional()
61
+ .describe('Whether plugin is installed locally (not from marketplace). Current Claude Code no longer writes this field.'),
32
62
  })
33
- .strict();
63
+ .passthrough();
34
64
  /**
35
65
  * Schema for installed_plugins.json registry
36
66
  * Tracks all installed plugins with version and path info
37
67
  *
38
68
  * Format: { "plugin-name@marketplace-name": [installation entries] }
39
69
  *
40
- * A single plugin can have multiple installations (e.g., both user and system scope).
70
+ * A single plugin can have multiple installations (e.g., both user and project scope).
41
71
  */
42
72
  export const InstalledPluginsRegistrySchema = z
43
73
  .object({
@@ -48,7 +78,65 @@ export const InstalledPluginsRegistrySchema = z
48
78
  .regex(/^[^@]+@[^@]+$/, 'Key must be in format "plugin@marketplace"'), z.array(PluginInstallationSchema).min(1))
49
79
  .describe('Map of plugin@marketplace to installation entries'),
50
80
  })
51
- .strict()
81
+ .passthrough()
52
82
  .describe('Installed plugins registry structure');
53
83
  export const InstalledPluginsRegistryJsonSchema = zodToJsonSchema(InstalledPluginsRegistrySchema, { name: 'InstalledPluginsRegistry', $refStrategy: 'none' });
84
+ const KNOWN_REGISTRY_KEYS = new Set(['version', 'plugins']);
85
+ const KNOWN_INSTALLATION_KEYS = new Set([
86
+ 'scope',
87
+ 'projectPath',
88
+ 'installPath',
89
+ 'version',
90
+ 'installedAt',
91
+ 'lastUpdated',
92
+ 'gitCommitSha',
93
+ 'isLocal',
94
+ ]);
95
+ /**
96
+ * Collect drift observations for one installation entry.
97
+ *
98
+ * @param entry - Candidate installation entry (may be any shape)
99
+ * @param pointer - Dotted pointer to the entry, e.g. `plugins.foo@bar.0`
100
+ * @param record - Accumulator, keyed by message so N entries sharing one unknown
101
+ * field produce one observation rather than N identical ones
102
+ */
103
+ function collectEntryDrift(entry, pointer, record) {
104
+ if (!isRecord(entry)) {
105
+ return;
106
+ }
107
+ recordUnknownKeys(entry, KNOWN_INSTALLATION_KEYS, pointer, (key) => `Installation entries carry unrecognized field '${key}'`, record);
108
+ const scope = entry['scope'];
109
+ if (typeof scope === 'string' && !KNOWN_SCOPE_SET.has(scope)) {
110
+ recordDrift(record, `${pointer}.scope`, `Installation scope '${scope}' is not one of the recognized scopes (${KNOWN_INSTALLATION_SCOPES.join(', ')})`);
111
+ }
112
+ }
113
+ /**
114
+ * Report what `.passthrough()` absorbed: fields and scope values in an
115
+ * installed-plugins registry that VAT's model does not recognize.
116
+ *
117
+ * Deduplicated by message — the point is "Claude Code writes something new",
118
+ * not "it wrote it 28 times".
119
+ *
120
+ * @param data - Parsed registry JSON (any shape; non-objects yield no drift)
121
+ * @returns One observation per distinct unrecognized field or scope value
122
+ */
123
+ export function detectInstalledPluginsRegistryDrift(data) {
124
+ const found = new Map();
125
+ if (!isRecord(data)) {
126
+ return [];
127
+ }
128
+ recordUnknownKeys(data, KNOWN_REGISTRY_KEYS, '', (key) => `Registry carries unrecognized top-level field '${key}'`, found);
129
+ const plugins = data['plugins'];
130
+ if (isRecord(plugins)) {
131
+ for (const [pluginKey, entries] of Object.entries(plugins)) {
132
+ if (!Array.isArray(entries)) {
133
+ continue;
134
+ }
135
+ for (const [index, entry] of entries.entries()) {
136
+ collectEntryDrift(entry, `plugins.${pluginKey}.${index}`, found);
137
+ }
138
+ }
139
+ }
140
+ return [...found.values()];
141
+ }
54
142
  //# sourceMappingURL=installed-plugins-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"installed-plugins-registry.js","sourceRoot":"","sources":["../../src/schemas/installed-plugins-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;GAEG;AACH,MAAM,wBAAwB,GAAG,CAAC;KAC/B,MAAM,CAAC;IACN,KAAK,EAAE,CAAC;SACL,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;SACxB,QAAQ,CAAC,0CAA0C,CAAC;IAEvD,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,CAAC,6CAA6C,CAAC;IAE1D,OAAO,EAAE,CAAC;SACP,MAAM,EAAE;SACR,QAAQ,CAAC,0CAA0C,CAAC;IAEvD,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,oDAAoD,CAAC;IAEjE,WAAW,EAAE,CAAC;SACX,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,iDAAiD,CAAC;IAE9D,YAAY,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,4CAA4C,CAAC;IAEzD,OAAO,EAAE,CAAC;SACP,OAAO,EAAE;SACT,QAAQ,CAAC,4DAA4D,CAAC;CAC1E,CAAC;KACD,MAAM,EAAE,CAAC;AAEZ;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC;KAC5C,MAAM,CAAC;IACN,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,uCAAuC,CAAC;IAEvE,OAAO,EAAE,CAAC;SACP,MAAM,CACL,CAAC;SACE,MAAM,EAAE;SACR,KAAK,CAAC,eAAe,EAAE,4CAA4C,CAAC,EACvE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CACzC;SACA,QAAQ,CAAC,mDAAmD,CAAC;CACjE,CAAC;KACD,MAAM,EAAE;KACR,QAAQ,CAAC,sCAAsC,CAAC,CAAC;AAOpD,MAAM,CAAC,MAAM,kCAAkC,GAAG,eAAe,CAC/D,8BAA8B,EAC9B,EAAE,IAAI,EAAE,0BAA0B,EAAE,YAAY,EAAE,MAAM,EAAE,CAC3D,CAAC"}
1
+ {"version":3,"file":"installed-plugins-registry.js","sourceRoot":"","sources":["../../src/schemas/installed-plugins-registry.ts"],"names":[],"mappings":"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"}
@@ -1,72 +1,111 @@
1
1
  import { z } from 'zod';
2
+ import { type RegistryShapeDrift } from './registry-drift.js';
2
3
  /**
3
- * Marketplace source - GitHub or local file
4
+ * `known_marketplaces.json` is written and owned by Claude Code — VAT only reads it.
5
+ * Per VAT's Postel's Law rule (CLAUDE.md: "Reading outside world → liberal"), these
6
+ * schemas `.passthrough()` and keep the source `kind` open: an unrecognized field or
7
+ * marketplace source kind is drift in someone else's file, not an error in the user's
8
+ * setup.
9
+ *
10
+ * Modelling it strictly turned every shape Claude Code added — the git `ref` on a
11
+ * github source, the `directory` source kind — into a hard error against a registry
12
+ * the user cannot edit.
13
+ *
14
+ * Liberality alone would be blindness, so it is paired with
15
+ * {@link detectKnownMarketplacesRegistryDrift}: what passthrough absorbs still gets
16
+ * reported, at `info`, under the same `REGISTRY_SHAPE_DRIFT` code the installed-plugins
17
+ * registry uses.
18
+ */
19
+ /**
20
+ * Marketplace source kinds VAT's model knows about. Not enforced by the schema — a
21
+ * kind outside this list parses fine and is reported as drift instead.
22
+ */
23
+ export declare const KNOWN_MARKETPLACE_SOURCE_KINDS: readonly ["github", "file", "directory"];
24
+ /**
25
+ * Marketplace source location.
26
+ *
27
+ * Kind-specific fields are optional rather than required-per-kind: a github source
28
+ * carries `repo` (and optionally a `ref`), a file/directory source carries `path`.
29
+ * Requiring them per kind would re-create the false errors this schema exists to
30
+ * avoid the moment Claude Code renames one.
4
31
  */
5
- declare const MarketplaceSourceSchema: z.ZodDiscriminatedUnion<"source", [z.ZodObject<{
6
- source: z.ZodLiteral<"github">;
7
- repo: z.ZodString;
8
- }, "strict", z.ZodTypeAny, {
9
- source: "github";
10
- repo: string;
11
- }, {
12
- source: "github";
13
- repo: string;
14
- }>, z.ZodObject<{
15
- source: z.ZodLiteral<"file">;
16
- path: z.ZodString;
17
- }, "strict", z.ZodTypeAny, {
18
- source: "file";
19
- path: string;
20
- }, {
21
- source: "file";
22
- path: string;
23
- }>]>;
32
+ declare const MarketplaceSourceSchema: z.ZodObject<{
33
+ source: z.ZodString;
34
+ repo: z.ZodOptional<z.ZodString>;
35
+ ref: z.ZodOptional<z.ZodString>;
36
+ path: z.ZodOptional<z.ZodString>;
37
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
38
+ source: z.ZodString;
39
+ repo: z.ZodOptional<z.ZodString>;
40
+ ref: z.ZodOptional<z.ZodString>;
41
+ path: z.ZodOptional<z.ZodString>;
42
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
43
+ source: z.ZodString;
44
+ repo: z.ZodOptional<z.ZodString>;
45
+ ref: z.ZodOptional<z.ZodString>;
46
+ path: z.ZodOptional<z.ZodString>;
47
+ }, z.ZodTypeAny, "passthrough">>;
24
48
  /**
25
49
  * Single marketplace registry entry
26
50
  */
27
51
  declare const MarketplaceEntrySchema: z.ZodObject<{
28
- source: z.ZodDiscriminatedUnion<"source", [z.ZodObject<{
29
- source: z.ZodLiteral<"github">;
30
- repo: z.ZodString;
31
- }, "strict", z.ZodTypeAny, {
32
- source: "github";
33
- repo: string;
34
- }, {
35
- source: "github";
36
- repo: string;
37
- }>, z.ZodObject<{
38
- source: z.ZodLiteral<"file">;
39
- path: z.ZodString;
40
- }, "strict", z.ZodTypeAny, {
41
- source: "file";
42
- path: string;
43
- }, {
44
- source: "file";
45
- path: string;
46
- }>]>;
52
+ source: z.ZodObject<{
53
+ source: z.ZodString;
54
+ repo: z.ZodOptional<z.ZodString>;
55
+ ref: z.ZodOptional<z.ZodString>;
56
+ path: z.ZodOptional<z.ZodString>;
57
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
58
+ source: z.ZodString;
59
+ repo: z.ZodOptional<z.ZodString>;
60
+ ref: z.ZodOptional<z.ZodString>;
61
+ path: z.ZodOptional<z.ZodString>;
62
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
63
+ source: z.ZodString;
64
+ repo: z.ZodOptional<z.ZodString>;
65
+ ref: z.ZodOptional<z.ZodString>;
66
+ path: z.ZodOptional<z.ZodString>;
67
+ }, z.ZodTypeAny, "passthrough">>;
47
68
  installLocation: z.ZodString;
48
69
  lastUpdated: z.ZodString;
49
- }, "strict", z.ZodTypeAny, {
50
- source: {
51
- source: "github";
52
- repo: string;
53
- } | {
54
- source: "file";
55
- path: string;
56
- };
57
- lastUpdated: string;
58
- installLocation: string;
59
- }, {
60
- source: {
61
- source: "github";
62
- repo: string;
63
- } | {
64
- source: "file";
65
- path: string;
66
- };
67
- lastUpdated: string;
68
- installLocation: string;
69
- }>;
70
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
71
+ source: z.ZodObject<{
72
+ source: z.ZodString;
73
+ repo: z.ZodOptional<z.ZodString>;
74
+ ref: z.ZodOptional<z.ZodString>;
75
+ path: z.ZodOptional<z.ZodString>;
76
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
77
+ source: z.ZodString;
78
+ repo: z.ZodOptional<z.ZodString>;
79
+ ref: z.ZodOptional<z.ZodString>;
80
+ path: z.ZodOptional<z.ZodString>;
81
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
82
+ source: z.ZodString;
83
+ repo: z.ZodOptional<z.ZodString>;
84
+ ref: z.ZodOptional<z.ZodString>;
85
+ path: z.ZodOptional<z.ZodString>;
86
+ }, z.ZodTypeAny, "passthrough">>;
87
+ installLocation: z.ZodString;
88
+ lastUpdated: z.ZodString;
89
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
90
+ source: z.ZodObject<{
91
+ source: z.ZodString;
92
+ repo: z.ZodOptional<z.ZodString>;
93
+ ref: z.ZodOptional<z.ZodString>;
94
+ path: z.ZodOptional<z.ZodString>;
95
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
96
+ source: z.ZodString;
97
+ repo: z.ZodOptional<z.ZodString>;
98
+ ref: z.ZodOptional<z.ZodString>;
99
+ path: z.ZodOptional<z.ZodString>;
100
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
101
+ source: z.ZodString;
102
+ repo: z.ZodOptional<z.ZodString>;
103
+ ref: z.ZodOptional<z.ZodString>;
104
+ path: z.ZodOptional<z.ZodString>;
105
+ }, z.ZodTypeAny, "passthrough">>;
106
+ installLocation: z.ZodString;
107
+ lastUpdated: z.ZodString;
108
+ }, z.ZodTypeAny, "passthrough">>;
70
109
  /**
71
110
  * Schema for known_marketplaces.json registry
72
111
  * Tracks all known marketplace sources
@@ -74,48 +113,63 @@ declare const MarketplaceEntrySchema: z.ZodObject<{
74
113
  * Format: { "marketplace-name": { source, installLocation, lastUpdated } }
75
114
  */
76
115
  export declare const KnownMarketplacesRegistrySchema: z.ZodRecord<z.ZodString, z.ZodObject<{
77
- source: z.ZodDiscriminatedUnion<"source", [z.ZodObject<{
78
- source: z.ZodLiteral<"github">;
79
- repo: z.ZodString;
80
- }, "strict", z.ZodTypeAny, {
81
- source: "github";
82
- repo: string;
83
- }, {
84
- source: "github";
85
- repo: string;
86
- }>, z.ZodObject<{
87
- source: z.ZodLiteral<"file">;
88
- path: z.ZodString;
89
- }, "strict", z.ZodTypeAny, {
90
- source: "file";
91
- path: string;
92
- }, {
93
- source: "file";
94
- path: string;
95
- }>]>;
116
+ source: z.ZodObject<{
117
+ source: z.ZodString;
118
+ repo: z.ZodOptional<z.ZodString>;
119
+ ref: z.ZodOptional<z.ZodString>;
120
+ path: z.ZodOptional<z.ZodString>;
121
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
122
+ source: z.ZodString;
123
+ repo: z.ZodOptional<z.ZodString>;
124
+ ref: z.ZodOptional<z.ZodString>;
125
+ path: z.ZodOptional<z.ZodString>;
126
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
127
+ source: z.ZodString;
128
+ repo: z.ZodOptional<z.ZodString>;
129
+ ref: z.ZodOptional<z.ZodString>;
130
+ path: z.ZodOptional<z.ZodString>;
131
+ }, z.ZodTypeAny, "passthrough">>;
132
+ installLocation: z.ZodString;
133
+ lastUpdated: z.ZodString;
134
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
135
+ source: z.ZodObject<{
136
+ source: z.ZodString;
137
+ repo: z.ZodOptional<z.ZodString>;
138
+ ref: z.ZodOptional<z.ZodString>;
139
+ path: z.ZodOptional<z.ZodString>;
140
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
141
+ source: z.ZodString;
142
+ repo: z.ZodOptional<z.ZodString>;
143
+ ref: z.ZodOptional<z.ZodString>;
144
+ path: z.ZodOptional<z.ZodString>;
145
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
146
+ source: z.ZodString;
147
+ repo: z.ZodOptional<z.ZodString>;
148
+ ref: z.ZodOptional<z.ZodString>;
149
+ path: z.ZodOptional<z.ZodString>;
150
+ }, z.ZodTypeAny, "passthrough">>;
151
+ installLocation: z.ZodString;
152
+ lastUpdated: z.ZodString;
153
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
154
+ source: z.ZodObject<{
155
+ source: z.ZodString;
156
+ repo: z.ZodOptional<z.ZodString>;
157
+ ref: z.ZodOptional<z.ZodString>;
158
+ path: z.ZodOptional<z.ZodString>;
159
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
160
+ source: z.ZodString;
161
+ repo: z.ZodOptional<z.ZodString>;
162
+ ref: z.ZodOptional<z.ZodString>;
163
+ path: z.ZodOptional<z.ZodString>;
164
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
165
+ source: z.ZodString;
166
+ repo: z.ZodOptional<z.ZodString>;
167
+ ref: z.ZodOptional<z.ZodString>;
168
+ path: z.ZodOptional<z.ZodString>;
169
+ }, z.ZodTypeAny, "passthrough">>;
96
170
  installLocation: z.ZodString;
97
171
  lastUpdated: z.ZodString;
98
- }, "strict", z.ZodTypeAny, {
99
- source: {
100
- source: "github";
101
- repo: string;
102
- } | {
103
- source: "file";
104
- path: string;
105
- };
106
- lastUpdated: string;
107
- installLocation: string;
108
- }, {
109
- source: {
110
- source: "github";
111
- repo: string;
112
- } | {
113
- source: "file";
114
- path: string;
115
- };
116
- lastUpdated: string;
117
- installLocation: string;
118
- }>>;
172
+ }, z.ZodTypeAny, "passthrough">>>;
119
173
  export type KnownMarketplacesRegistry = z.infer<typeof KnownMarketplacesRegistrySchema>;
120
174
  export type MarketplaceEntry = z.infer<typeof MarketplaceEntrySchema>;
121
175
  export type MarketplaceSource = z.infer<typeof MarketplaceSourceSchema>;
@@ -125,5 +179,16 @@ export declare const KnownMarketplacesRegistryJsonSchema: import("zod-to-json-sc
125
179
  [key: string]: import("zod-to-json-schema").JsonSchema7Type;
126
180
  } | undefined;
127
181
  };
182
+ /**
183
+ * Report what `.passthrough()` absorbed: fields and source kinds in a
184
+ * known-marketplaces registry that VAT's model does not recognize.
185
+ *
186
+ * Deduplicated by message — the point is "Claude Code writes something new",
187
+ * not "it wrote it eight times".
188
+ *
189
+ * @param data - Parsed registry JSON (any shape; non-objects yield no drift)
190
+ * @returns One observation per distinct unrecognized field or source kind
191
+ */
192
+ export declare function detectKnownMarketplacesRegistryDrift(data: unknown): RegistryShapeDrift[];
128
193
  export {};
129
194
  //# sourceMappingURL=known-marketplaces-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"known-marketplaces-registry.d.ts","sourceRoot":"","sources":["../../src/schemas/known-marketplaces-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB;;GAEG;AACH,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;IAoBY,CAAC;AAE1C;;GAEG;AACH,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAcmB,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAEO,CAAC;AAEpD,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,+BAA+B,CACtC,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,mCAAmC;;;;;CAG/C,CAAC"}
1
+ {"version":3,"file":"known-marketplaces-registry.d.ts","sourceRoot":"","sources":["../../src/schemas/known-marketplaces-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,OAAO,EAKN,KAAK,kBAAkB,EACvB,MAAM,qBAAqB,CAAC;AAE7B;;;;;;;;;;;;;;;GAeG;AAEH;;;GAGG;AACH,eAAO,MAAM,8BAA8B,0CAIjC,CAAC;AAMX;;;;;;;GAOG;AACH,QAAA,MAAM,uBAAuB;;;;;;;;;;;;;;;gCAyBY,CAAC;AAE1C;;GAEG;AACH,QAAA,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAcmB,CAAC;AAEhD;;;;;GAKG;AACH,eAAO,MAAM,+BAA+B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iCAEO,CAAC;AAEpD,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,KAAK,CAC9C,OAAO,+BAA+B,CACtC,CAAC;AACF,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAExE,eAAO,MAAM,mCAAmC;;;;;CAG/C,CAAC;AA+DF;;;;;;;;;GASG;AACH,wBAAgB,oCAAoC,CACnD,IAAI,EAAE,OAAO,GACX,kBAAkB,EAAE,CAYtB"}
@@ -1,27 +1,60 @@
1
1
  import { z } from 'zod';
2
2
  import { zodToJsonSchema } from 'zod-to-json-schema';
3
+ import { isRecord, recordDrift, recordUnknownKeys, } from './registry-drift.js';
3
4
  /**
4
- * Marketplace source - GitHub or local file
5
+ * `known_marketplaces.json` is written and owned by Claude Code — VAT only reads it.
6
+ * Per VAT's Postel's Law rule (CLAUDE.md: "Reading outside world → liberal"), these
7
+ * schemas `.passthrough()` and keep the source `kind` open: an unrecognized field or
8
+ * marketplace source kind is drift in someone else's file, not an error in the user's
9
+ * setup.
10
+ *
11
+ * Modelling it strictly turned every shape Claude Code added — the git `ref` on a
12
+ * github source, the `directory` source kind — into a hard error against a registry
13
+ * the user cannot edit.
14
+ *
15
+ * Liberality alone would be blindness, so it is paired with
16
+ * {@link detectKnownMarketplacesRegistryDrift}: what passthrough absorbs still gets
17
+ * reported, at `info`, under the same `REGISTRY_SHAPE_DRIFT` code the installed-plugins
18
+ * registry uses.
19
+ */
20
+ /**
21
+ * Marketplace source kinds VAT's model knows about. Not enforced by the schema — a
22
+ * kind outside this list parses fine and is reported as drift instead.
23
+ */
24
+ export const KNOWN_MARKETPLACE_SOURCE_KINDS = [
25
+ 'github',
26
+ 'file',
27
+ 'directory',
28
+ ];
29
+ const KNOWN_SOURCE_KIND_SET = new Set(KNOWN_MARKETPLACE_SOURCE_KINDS);
30
+ /**
31
+ * Marketplace source location.
32
+ *
33
+ * Kind-specific fields are optional rather than required-per-kind: a github source
34
+ * carries `repo` (and optionally a `ref`), a file/directory source carries `path`.
35
+ * Requiring them per kind would re-create the false errors this schema exists to
36
+ * avoid the moment Claude Code renames one.
5
37
  */
6
38
  const MarketplaceSourceSchema = z
7
- .discriminatedUnion('source', [
8
- z
9
- .object({
10
- source: z.literal('github'),
11
- repo: z
12
- .string()
13
- .regex(/^[^/]+\/[^/]+$/, 'Must be in format "owner/repo"'),
14
- })
15
- .strict()
16
- .describe('GitHub repository'),
17
- z
18
- .object({
19
- source: z.literal('file'),
20
- path: z.string(),
21
- })
22
- .strict()
23
- .describe('Local file path'),
24
- ])
39
+ .object({
40
+ source: z
41
+ .string()
42
+ .describe(`Source kind (recognized: ${KNOWN_MARKETPLACE_SOURCE_KINDS.join(', ')}; others pass through as drift)`),
43
+ repo: z
44
+ .string()
45
+ .regex(/^[^/]+\/[^/]+$/, 'Must be in format "owner/repo"')
46
+ .optional()
47
+ .describe('GitHub repository in "owner/repo" form'),
48
+ ref: z
49
+ .string()
50
+ .optional()
51
+ .describe('Git ref (branch, tag or commit) a github marketplace is pinned to'),
52
+ path: z
53
+ .string()
54
+ .optional()
55
+ .describe('Filesystem path for a file or directory marketplace'),
56
+ })
57
+ .passthrough()
25
58
  .describe('Marketplace source location');
26
59
  /**
27
60
  * Single marketplace registry entry
@@ -34,10 +67,10 @@ const MarketplaceEntrySchema = z
34
67
  .describe('Absolute path to marketplace installation'),
35
68
  lastUpdated: z
36
69
  .string()
37
- .datetime()
70
+ .datetime({ offset: true })
38
71
  .describe('ISO 8601 last update timestamp'),
39
72
  })
40
- .strict()
73
+ .passthrough()
41
74
  .describe('Single marketplace registry entry');
42
75
  /**
43
76
  * Schema for known_marketplaces.json registry
@@ -49,4 +82,58 @@ export const KnownMarketplacesRegistrySchema = z
49
82
  .record(z.string().min(1), MarketplaceEntrySchema)
50
83
  .describe('Known marketplaces registry structure');
51
84
  export const KnownMarketplacesRegistryJsonSchema = zodToJsonSchema(KnownMarketplacesRegistrySchema, { name: 'KnownMarketplacesRegistry', $refStrategy: 'none' });
85
+ const KNOWN_ENTRY_KEYS = new Set([
86
+ 'source',
87
+ 'installLocation',
88
+ 'lastUpdated',
89
+ ]);
90
+ const KNOWN_SOURCE_KEYS = new Set([
91
+ 'source',
92
+ 'repo',
93
+ 'ref',
94
+ 'path',
95
+ ]);
96
+ /**
97
+ * Collect drift observations for one marketplace entry.
98
+ *
99
+ * @param entry - Candidate marketplace entry (may be any shape)
100
+ * @param pointer - Dotted pointer to the entry, i.e. the marketplace name
101
+ * @param record - Accumulator, keyed by message so N marketplaces sharing one
102
+ * unknown field produce one observation rather than N identical ones
103
+ */
104
+ function collectEntryDrift(entry, pointer, record) {
105
+ if (!isRecord(entry)) {
106
+ return;
107
+ }
108
+ recordUnknownKeys(entry, KNOWN_ENTRY_KEYS, pointer, (key) => `Marketplace entries carry unrecognized field '${key}'`, record);
109
+ const source = entry['source'];
110
+ if (!isRecord(source)) {
111
+ return;
112
+ }
113
+ recordUnknownKeys(source, KNOWN_SOURCE_KEYS, `${pointer}.source`, (key) => `Marketplace sources carry unrecognized field '${key}'`, record);
114
+ const kind = source['source'];
115
+ if (typeof kind === 'string' && !KNOWN_SOURCE_KIND_SET.has(kind)) {
116
+ recordDrift(record, `${pointer}.source.source`, `Marketplace source kind '${kind}' is not one of the recognized kinds (${KNOWN_MARKETPLACE_SOURCE_KINDS.join(', ')})`);
117
+ }
118
+ }
119
+ /**
120
+ * Report what `.passthrough()` absorbed: fields and source kinds in a
121
+ * known-marketplaces registry that VAT's model does not recognize.
122
+ *
123
+ * Deduplicated by message — the point is "Claude Code writes something new",
124
+ * not "it wrote it eight times".
125
+ *
126
+ * @param data - Parsed registry JSON (any shape; non-objects yield no drift)
127
+ * @returns One observation per distinct unrecognized field or source kind
128
+ */
129
+ export function detectKnownMarketplacesRegistryDrift(data) {
130
+ const found = new Map();
131
+ if (!isRecord(data)) {
132
+ return [];
133
+ }
134
+ for (const [marketplaceName, entry] of Object.entries(data)) {
135
+ collectEntryDrift(entry, marketplaceName, found);
136
+ }
137
+ return [...found.values()];
138
+ }
52
139
  //# sourceMappingURL=known-marketplaces-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"known-marketplaces-registry.js","sourceRoot":"","sources":["../../src/schemas/known-marketplaces-registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD;;GAEG;AACH,MAAM,uBAAuB,GAAG,CAAC;KAC/B,kBAAkB,CAAC,QAAQ,EAAE;IAC7B,CAAC;SACC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;QAC3B,IAAI,EAAE,CAAC;aACL,MAAM,EAAE;aACR,KAAK,CAAC,gBAAgB,EAAE,gCAAgC,CAAC;KAC3D,CAAC;SACD,MAAM,EAAE;SACR,QAAQ,CAAC,mBAAmB,CAAC;IAE/B,CAAC;SACC,MAAM,CAAC;QACP,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC;QACzB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;KAChB,CAAC;SACD,MAAM,EAAE;SACR,QAAQ,CAAC,iBAAiB,CAAC;CAC7B,CAAC;KACD,QAAQ,CAAC,6BAA6B,CAAC,CAAC;AAE1C;;GAEG;AACH,MAAM,sBAAsB,GAAG,CAAC;KAC9B,MAAM,CAAC;IACP,MAAM,EAAE,uBAAuB,CAAC,QAAQ,CAAC,6BAA6B,CAAC;IAEvE,eAAe,EAAE,CAAC;SAChB,MAAM,EAAE;SACR,QAAQ,CAAC,2CAA2C,CAAC;IAEvD,WAAW,EAAE,CAAC;SACZ,MAAM,EAAE;SACR,QAAQ,EAAE;SACV,QAAQ,CAAC,gCAAgC,CAAC;CAC5C,CAAC;KACD,MAAM,EAAE;KACR,QAAQ,CAAC,mCAAmC,CAAC,CAAC;AAEhD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,+BAA+B,GAAG,CAAC;KAC9C,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,sBAAsB,CAAC;KACjD,QAAQ,CAAC,uCAAuC,CAAC,CAAC;AAQpD,MAAM,CAAC,MAAM,mCAAmC,GAAG,eAAe,CACjE,+BAA+B,EAC/B,EAAE,IAAI,EAAE,2BAA2B,EAAE,YAAY,EAAE,MAAM,EAAE,CAC3D,CAAC"}
1
+ {"version":3,"file":"known-marketplaces-registry.js","sourceRoot":"","sources":["../../src/schemas/known-marketplaces-registry.ts"],"names":[],"mappings":"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"}