@vibe-agent-toolkit/resources 0.1.39-rc.8 → 0.1.39
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/dist/content-cache.d.ts +67 -0
- package/dist/content-cache.d.ts.map +1 -0
- package/dist/content-cache.js +160 -0
- package/dist/content-cache.js.map +1 -0
- package/dist/external-link-cache.d.ts +16 -2
- package/dist/external-link-cache.d.ts.map +1 -1
- package/dist/external-link-cache.js +43 -13
- package/dist/external-link-cache.js.map +1 -1
- package/dist/external-link-validator.d.ts +75 -2
- package/dist/external-link-validator.d.ts.map +1 -1
- package/dist/external-link-validator.js +184 -4
- package/dist/external-link-validator.js.map +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -1
- package/dist/link-auth-classify.d.ts +34 -0
- package/dist/link-auth-classify.d.ts.map +1 -0
- package/dist/link-auth-classify.js +42 -0
- package/dist/link-auth-classify.js.map +1 -0
- package/dist/link-auth-config-build.d.ts +47 -0
- package/dist/link-auth-config-build.d.ts.map +1 -0
- package/dist/link-auth-config-build.js +86 -0
- package/dist/link-auth-config-build.js.map +1 -0
- package/dist/link-auth-content-fetch.d.ts +75 -0
- package/dist/link-auth-content-fetch.d.ts.map +1 -0
- package/dist/link-auth-content-fetch.js +101 -0
- package/dist/link-auth-content-fetch.js.map +1 -0
- package/dist/link-auth-deps-memo.d.ts +40 -0
- package/dist/link-auth-deps-memo.d.ts.map +1 -0
- package/dist/link-auth-deps-memo.js +47 -0
- package/dist/link-auth-deps-memo.js.map +1 -0
- package/dist/link-auth-transport.d.ts +44 -0
- package/dist/link-auth-transport.d.ts.map +1 -0
- package/dist/link-auth-transport.js +151 -0
- package/dist/link-auth-transport.js.map +1 -0
- package/dist/link-parser.d.ts.map +1 -1
- package/dist/link-parser.js +8 -1
- package/dist/link-parser.js.map +1 -1
- package/dist/link-validator.d.ts +8 -8
- package/dist/link-validator.d.ts.map +1 -1
- package/dist/link-validator.js +51 -18
- package/dist/link-validator.js.map +1 -1
- package/dist/resource-registry.d.ts +2 -0
- package/dist/resource-registry.d.ts.map +1 -1
- package/dist/resource-registry.js +19 -4
- package/dist/resource-registry.js.map +1 -1
- package/dist/schemas/link-auth.d.ts +1049 -303
- package/dist/schemas/link-auth.d.ts.map +1 -1
- package/dist/schemas/link-auth.js +39 -20
- package/dist/schemas/link-auth.js.map +1 -1
- package/dist/schemas/project-config.d.ts +2942 -759
- package/dist/schemas/project-config.d.ts.map +1 -1
- package/dist/schemas/project-config.js +27 -1
- package/dist/schemas/project-config.js.map +1 -1
- package/dist/schemas/resource-metadata.d.ts +10 -9
- package/dist/schemas/resource-metadata.d.ts.map +1 -1
- package/dist/schemas/resource-metadata.js +2 -0
- package/dist/schemas/resource-metadata.js.map +1 -1
- package/package.json +4 -4
- package/src/content-cache.ts +190 -0
- package/src/external-link-cache.ts +50 -13
- package/src/external-link-validator.ts +268 -5
- package/src/index.ts +23 -0
- package/src/link-auth-classify.ts +61 -0
- package/src/link-auth-config-build.ts +130 -0
- package/src/link-auth-content-fetch.ts +146 -0
- package/src/link-auth-deps-memo.ts +56 -0
- package/src/link-auth-transport.ts +179 -0
- package/src/link-parser.ts +8 -1
- package/src/link-validator.ts +65 -17
- package/src/resource-registry.ts +25 -5
- package/src/schemas/link-auth.ts +47 -21
- package/src/schemas/project-config.ts +31 -1
- package/src/schemas/resource-metadata.ts +2 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link-auth.d.ts","sourceRoot":"","sources":["../../src/schemas/link-auth.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"link-auth.d.ts","sourceRoot":"","sources":["../../src/schemas/link-auth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAMxB,eAAO,MAAM,mBAAmB;;;;;;;;;gCAS2C,CAAC;AAE5E,eAAO,MAAM,iBAAiB;;;;;;;;;;;;gCAUwD,CAAC;AAEvF,eAAO,MAAM,kBAAkB;;;;;;gCAOgC,CAAC;AAEhE;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB;;;;;;gCAO2D,CAAC;AAE5F,eAAO,MAAM,iBAAiB;;;;;;;;;;;;kCASoE,CAAC;AAEnG,eAAO,MAAM,mBAAmB;;;;;;;;;;;;gCAckE,CAAC;AAMnG,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAWjB,CAAC;AAWjB,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAEiE,CAAC;AAMlG,eAAO,MAAM,mBAAmB;;;;;;gCAShB,CAAC;AAEjB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAQkD,CAAC;AAEpF;;;;;GAKG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACzE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAC5D,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
|
|
@@ -3,24 +3,26 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Validates the shape of an adopter's linkAuth configuration: providers
|
|
5
5
|
* (each either a `use: <macro>` reference or a full inline provider) plus
|
|
6
|
-
* an optional cache config.
|
|
7
|
-
*
|
|
6
|
+
* an optional cache config. **Passthrough** — per the repo Postel's Law
|
|
7
|
+
* rule, schemas that parse external data (adopter `vibe-agent-toolkit.config.yaml`)
|
|
8
|
+
* are liberal: unknown fields pass through rather than abort the parse, so
|
|
9
|
+
* an adopter with a forward-compatible field or a typo gets `vat resources
|
|
10
|
+
* validate` degrading gracefully instead of crashing. Typo-catching DX is
|
|
11
|
+
* a separate lint/warn pass, not a hard parse failure.
|
|
8
12
|
*
|
|
9
13
|
* Provider entries accept EITHER:
|
|
10
14
|
* - `{ use: <name>, ...overrides }` — reference a shipped macro by name;
|
|
11
|
-
* override fields are deep-merged on top at expansion time.
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
*
|
|
15
|
-
* after expansion (slice 2 wires that).
|
|
16
|
-
* - A full inline `{ match, rewrite, auth, token, check }` — every field
|
|
17
|
-
* required, every nested object strict.
|
|
15
|
+
* override fields are deep-merged on top at expansion time.
|
|
16
|
+
* - A full inline `{ match, rewrite, auth, token, check }` — every required
|
|
17
|
+
* field present, with declared-field types still enforced (passthrough
|
|
18
|
+
* only relaxes unknown-key handling, not type checking on known fields).
|
|
18
19
|
*
|
|
19
20
|
* Mirrors the runtime types in `@vibe-agent-toolkit/utils`'s `link-auth/`
|
|
20
21
|
* module. Keep these aligned: a config that parses here must satisfy the
|
|
21
22
|
* `Provider` / `LinkAuthConfig` interfaces over there.
|
|
22
23
|
*
|
|
23
|
-
* Per design issue #113 §4 (vocabulary) and §5 (macros)
|
|
24
|
+
* Per design issue #113 §4 (vocabulary) and §5 (macros), and the repo
|
|
25
|
+
* CLAUDE.md Postel's Law rule for adopter-facing configs.
|
|
24
26
|
*/
|
|
25
27
|
import { z } from 'zod';
|
|
26
28
|
// ---------------------------------------------------------------------------
|
|
@@ -34,7 +36,7 @@ export const ProviderMatchSchema = z
|
|
|
34
36
|
.optional()
|
|
35
37
|
.describe('Globs that, if any match the hostname, exclude this provider'),
|
|
36
38
|
})
|
|
37
|
-
.
|
|
39
|
+
.passthrough()
|
|
38
40
|
.describe('Provider selection — match.host + optional excludeHost globs');
|
|
39
41
|
export const RewriteRuleSchema = z
|
|
40
42
|
.object({
|
|
@@ -45,7 +47,7 @@ export const RewriteRuleSchema = z
|
|
|
45
47
|
.describe('Computed variables, each a template that references captures from `when`'),
|
|
46
48
|
to: z.string().min(1).describe('URL template — interpolates ${capture} and ${var}'),
|
|
47
49
|
})
|
|
48
|
-
.
|
|
50
|
+
.passthrough()
|
|
49
51
|
.describe('A single rewrite rule (one entry in a provider\'s ordered rewrite list)');
|
|
50
52
|
export const ProviderAuthSchema = z
|
|
51
53
|
.object({
|
|
@@ -53,16 +55,30 @@ export const ProviderAuthSchema = z
|
|
|
53
55
|
.record(z.string(), z.string())
|
|
54
56
|
.describe('Header name → value template. Values interpolate ${token} and any capture/var.'),
|
|
55
57
|
})
|
|
56
|
-
.
|
|
58
|
+
.passthrough()
|
|
57
59
|
.describe('Auth headers attached to the authenticated fetch');
|
|
60
|
+
/**
|
|
61
|
+
* Optional fetch-mode header overrides (§6.2). Same shape as ProviderAuth,
|
|
62
|
+
* different role: `auth.headers` covers the health-check request; `fetch.headers`
|
|
63
|
+
* covers content retrieval (e.g. GitHub `application/vnd.github.raw` instead of
|
|
64
|
+
* `application/vnd.github+json`). Both templates expand against the same context.
|
|
65
|
+
*/
|
|
66
|
+
export const ProviderFetchSchema = z
|
|
67
|
+
.object({
|
|
68
|
+
headers: z
|
|
69
|
+
.record(z.string(), z.string())
|
|
70
|
+
.describe('Header name → value template, same templating as auth.headers.'),
|
|
71
|
+
})
|
|
72
|
+
.passthrough()
|
|
73
|
+
.describe('Optional content-fetch header overrides — distinct from health-check headers');
|
|
58
74
|
export const TokenSourceSchema = z
|
|
59
75
|
.union([
|
|
60
|
-
z.object({ env: z.string().min(1) }).
|
|
76
|
+
z.object({ env: z.string().min(1) }).passthrough(),
|
|
61
77
|
z
|
|
62
78
|
.object({
|
|
63
79
|
command: z.union([z.string().min(1), z.array(z.string().min(1)).min(1)]),
|
|
64
80
|
})
|
|
65
|
-
.
|
|
81
|
+
.passthrough(),
|
|
66
82
|
])
|
|
67
83
|
.describe('A single token source — env var, or argv command (preferred), or convenience string');
|
|
68
84
|
export const ProviderCheckSchema = z
|
|
@@ -76,20 +92,23 @@ export const ProviderCheckSchema = z
|
|
|
76
92
|
.enum(['ambiguous', 'dead'])
|
|
77
93
|
.describe('Per-host: does 404 mean "dead" (honest 404 host like Graph) or "ambiguous" (masking host like GitHub)?'),
|
|
78
94
|
})
|
|
79
|
-
.
|
|
95
|
+
.passthrough()
|
|
80
96
|
.describe('Status-to-outcome classifier (consumed by the resources layer, not the pure engine)');
|
|
81
97
|
// ---------------------------------------------------------------------------
|
|
82
98
|
// Provider entry (inline OR macro reference)
|
|
83
99
|
// ---------------------------------------------------------------------------
|
|
84
|
-
const InlineProviderSchema = z
|
|
100
|
+
export const InlineProviderSchema = z
|
|
85
101
|
.object({
|
|
86
102
|
match: ProviderMatchSchema,
|
|
87
103
|
rewrite: z.array(RewriteRuleSchema).min(1).describe('Ordered rewrite rules — first matching wins'),
|
|
88
104
|
auth: ProviderAuthSchema,
|
|
105
|
+
fetch: ProviderFetchSchema
|
|
106
|
+
.optional()
|
|
107
|
+
.describe('Optional fetch-mode header override (§6.2) — content retrieval, distinct from health-check'),
|
|
89
108
|
token: z.array(TokenSourceSchema).describe('Ordered token sources — first non-empty wins'),
|
|
90
109
|
check: ProviderCheckSchema,
|
|
91
110
|
})
|
|
92
|
-
.
|
|
111
|
+
.passthrough();
|
|
93
112
|
const MacroProviderSchema = z
|
|
94
113
|
.object({
|
|
95
114
|
use: z.string().min(1).describe('Macro name (e.g. "github", "sharepoint")'),
|
|
@@ -111,7 +130,7 @@ export const LinkAuthCacheSchema = z
|
|
|
111
130
|
.optional()
|
|
112
131
|
.describe('Content cache TTL in minutes (default 30 — used by slice 3 content-fetch)'),
|
|
113
132
|
})
|
|
114
|
-
.
|
|
133
|
+
.passthrough();
|
|
115
134
|
export const LinkAuthConfigSchema = z
|
|
116
135
|
.object({
|
|
117
136
|
cache: LinkAuthCacheSchema.optional(),
|
|
@@ -119,6 +138,6 @@ export const LinkAuthConfigSchema = z
|
|
|
119
138
|
.array(ProviderEntrySchema)
|
|
120
139
|
.describe('Ordered list of providers — first claiming-by-host wins'),
|
|
121
140
|
})
|
|
122
|
-
.
|
|
141
|
+
.passthrough()
|
|
123
142
|
.describe('`resources.linkAuth` — authenticated external link resolution config');
|
|
124
143
|
//# sourceMappingURL=link-auth.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link-auth.js","sourceRoot":"","sources":["../../src/schemas/link-auth.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"link-auth.js","sourceRoot":"","sources":["../../src/schemas/link-auth.ts"],"names":[],"mappings":"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"}
|