@weave-kit/engine 1.6.0 → 1.8.0

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 (45) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/dist/adapters/auth/index.d.ts +4 -0
  3. package/dist/adapters/auth/index.d.ts.map +1 -1
  4. package/dist/adapters/auth/index.js +2 -0
  5. package/dist/adapters/auth/index.js.map +1 -1
  6. package/dist/adapters/auth/oauth-metadata.d.ts +23 -0
  7. package/dist/adapters/auth/oauth-metadata.d.ts.map +1 -0
  8. package/dist/adapters/auth/oauth-metadata.js +26 -0
  9. package/dist/adapters/auth/oauth-metadata.js.map +1 -0
  10. package/dist/adapters/auth/oidc.d.ts +49 -0
  11. package/dist/adapters/auth/oidc.d.ts.map +1 -0
  12. package/dist/adapters/auth/oidc.js +92 -0
  13. package/dist/adapters/auth/oidc.js.map +1 -0
  14. package/dist/adapters/auth/source.d.ts +3 -2
  15. package/dist/adapters/auth/source.d.ts.map +1 -1
  16. package/dist/adapters/auth/source.js.map +1 -1
  17. package/dist/adapters/auth/verify.d.ts +7 -5
  18. package/dist/adapters/auth/verify.d.ts.map +1 -1
  19. package/dist/adapters/mcp/http.d.ts +3 -0
  20. package/dist/adapters/mcp/http.d.ts.map +1 -1
  21. package/dist/adapters/mcp/http.js +10 -1
  22. package/dist/adapters/mcp/http.js.map +1 -1
  23. package/dist/adapters/mcp/index.d.ts +3 -1
  24. package/dist/adapters/mcp/index.d.ts.map +1 -1
  25. package/dist/adapters/mcp/index.js +2 -1
  26. package/dist/adapters/mcp/index.js.map +1 -1
  27. package/dist/adapters/rest/errorHandler.d.ts +6 -2
  28. package/dist/adapters/rest/errorHandler.d.ts.map +1 -1
  29. package/dist/adapters/rest/errorHandler.js +5 -2
  30. package/dist/adapters/rest/errorHandler.js.map +1 -1
  31. package/dist/cli/commands/doctor.d.ts +66 -1
  32. package/dist/cli/commands/doctor.d.ts.map +1 -1
  33. package/dist/cli/commands/doctor.js +104 -0
  34. package/dist/cli/commands/doctor.js.map +1 -1
  35. package/dist/cli/index.js +3 -2
  36. package/dist/cli/index.js.map +1 -1
  37. package/dist/cli/types/commands.d.ts +2 -0
  38. package/dist/cli/types/commands.d.ts.map +1 -1
  39. package/dist/runtime/engine.d.ts +9 -3
  40. package/dist/runtime/engine.d.ts.map +1 -1
  41. package/dist/runtime/engine.js +9 -4
  42. package/dist/runtime/engine.js.map +1 -1
  43. package/dist/version.d.ts +1 -1
  44. package/dist/version.js +1 -1
  45. package/package.json +2 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,43 @@ the project uses [Semantic Versioning](https://semver.org/).
5
5
 
6
6
  ## [Unreleased]
7
7
 
8
+ ## [1.8.0] - 2026-10-12
9
+
10
+ Additive (no `CONTRACT_VERSION` bump).
11
+
12
+ ### Added
13
+
14
+ - **`weave doctor --report [path]`** — write a **redacted, local-only** deployment profile (JSON,
15
+ default `weavekit-report.json`): engine/runtime versions, enabled subsystems/adapters, capability
16
+ switches (`rls.enforce`, tenants, scope, `systemSchema`, …) and object/field-count buckets, plus the
17
+ doctor check statuses. It contains no hosts, URLs, ids, object names or other customer data and is
18
+ never uploaded (the engine has no telemetry). New export `buildDeploymentReport`.
19
+
20
+ ## [1.7.0] - 2026-10-12
21
+
22
+ Additive (no `CONTRACT_VERSION` bump): built-in OIDC/JWT auth + MCP OAuth discovery.
23
+
24
+ ### Added
25
+
26
+ - **Built-in OIDC/JWT verifier (`auth.oidc`).** The engine validates bearer JWTs locally — JWKS
27
+ (explicit `jwksUri` or OIDC discovery from `issuer`), `iss`/`aud`/`exp`/`nbf` with clock skew, and
28
+ **asymmetric algorithms only** (never `none`/HMAC) — and resolves them to the identity directory
29
+ (`ref` from `subjectClaim`, default `sub`; `rolesClaim`/`tenantClaim` surfaced as `claims.roles` /
30
+ `claims.tenantId`). `auth.source` is now optional and `auth` may carry `oidc`. Powered by `jose`.
31
+ New exports `createOidcVerifier`, `OidcConfig`.
32
+ - **MCP OAuth Protected Resource Metadata (RFC 9728).** With `auth.oidc`, `GET
33
+ /.well-known/oauth-protected-resource` advertises `authorization_servers` (default `[issuer]`,
34
+ override `auth.oidc.authorizationServers`) and 401 responses carry a
35
+ `WWW-Authenticate: Bearer resource_metadata="…"` challenge — so standards-based MCP hosts (Claude,
36
+ ChatGPT connectors, VS Code) can discover and run the OAuth flow. New exports
37
+ `oauthProtectedResourceMetadata`, `wwwAuthenticateChallenge`, `OAUTH_PROTECTED_RESOURCE_PATH`.
38
+
39
+ ### Changed
40
+
41
+ - **E1 boundary:** OIDC/JWT is now **MIT** (built-in `auth.oidc`). `@weave-kit/enterprise` E1 now
42
+ covers SAML, SCIM/LDAP/HRIS directory sync, group→role mapping, multi-IdP and identity-event audit.
43
+ The `AuthVerifier` seam stays open for custom/SAML verifiers.
44
+
8
45
  ## [1.6.0] - 2026-10-12
9
46
 
10
47
  Additive (no `CONTRACT_VERSION` bump): a dedicated system schema for brownfield installs.
@@ -5,6 +5,10 @@ export type { Authenticator, AuthConfig, AuthResolver, AuthSource } from './sour
5
5
  export { createAuth } from './source.js';
6
6
  export type { AuthVerifier } from './verify.js';
7
7
  export { createDirectoryAuthenticator, enforceSyncedIdentity, withDefaultTenant, withDefaultScope } from './subject.js';
8
+ export { createOidcVerifier } from './oidc.js';
9
+ export type { OidcConfig, OidcVerifierOptions } from './oidc.js';
10
+ export { OAUTH_PROTECTED_RESOURCE_PATH, oauthProtectedResourceMetadata, wwwAuthenticateChallenge } from './oauth-metadata.js';
11
+ export type { OAuthProtectedResourceMetadata } from './oauth-metadata.js';
8
12
  /**
9
13
  * Resolve the Authorization header into a subject, or throw a 401-family
10
14
  * {@link SchemaError}. Missing header → `auth.missingKey`; present but
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAc,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAE9E,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAExH;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,CAAC,CAK1B;AAED,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,aAAa,CAEpE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/auth/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAc,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAE9E,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACxH,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,6BAA6B,EAAE,8BAA8B,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAC9H,YAAY,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAE1E;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,eAAe,CAAC,CAK1B;AAED,0FAA0F;AAC1F,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,GAAG,aAAa,CAEpE"}
@@ -2,6 +2,8 @@ import { SchemaError } from '../../core/index.js';
2
2
  import { createAuth } from './source.js';
3
3
  export { createAuth } from './source.js';
4
4
  export { createDirectoryAuthenticator, enforceSyncedIdentity, withDefaultTenant, withDefaultScope } from './subject.js';
5
+ export { createOidcVerifier } from './oidc.js';
6
+ export { OAUTH_PROTECTED_RESOURCE_PATH, oauthProtectedResourceMetadata, wwwAuthenticateChallenge } from './oauth-metadata.js';
5
7
  /**
6
8
  * Resolve the Authorization header into a subject, or throw a 401-family
7
9
  * {@link SchemaError}. Missing header → `auth.missingKey`; present but
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/auth/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAuC,MAAM,aAAa,CAAC;AAG9E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAExH;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,aAA4B,EAC5B,MAA0B,EAC1B,MAAc;IAEd,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC;IACrC,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,WAAW,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAC/E,MAAM,IAAI,WAAW,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,kBAAkB,CAAC,MAAkB;IACnD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/auth/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAuC,MAAM,aAAa,CAAC;AAG9E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACxH,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAE/C,OAAO,EAAE,6BAA6B,EAAE,8BAA8B,EAAE,wBAAwB,EAAE,MAAM,qBAAqB,CAAC;AAG9H;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,aAA4B,EAC5B,MAA0B,EAC1B,MAAc;IAEd,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACpD,IAAI,OAAO,KAAK,IAAI;QAAE,OAAO,OAAO,CAAC;IACrC,IAAI,MAAM,KAAK,SAAS;QAAE,MAAM,IAAI,WAAW,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;IAC/E,MAAM,IAAI,WAAW,CAAC,iBAAiB,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,kBAAkB,CAAC,MAAkB;IACnD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { OidcConfig } from './oidc.js';
2
+ /**
3
+ * OAuth 2.0 Protected Resource Metadata (RFC 9728) + the `WWW-Authenticate`
4
+ * challenge that points an MCP host at it. When `auth.oidc` is configured the
5
+ * engine advertises its authorization server(s) at
6
+ * `/.well-known/oauth-protected-resource`, and 401 responses carry a
7
+ * `Bearer resource_metadata="…"` challenge so a standards-based MCP host (Claude,
8
+ * ChatGPT connectors, VS Code) can discover and run the OAuth flow.
9
+ */
10
+ export declare const OAUTH_PROTECTED_RESOURCE_PATH = "/.well-known/oauth-protected-resource";
11
+ export interface OAuthProtectedResourceMetadata {
12
+ /** this protected resource's identifier (the MCP server URL) */
13
+ resource: string;
14
+ /** OAuth authorization server issuer(s) an agent obtains a token from */
15
+ authorization_servers: string[];
16
+ bearer_methods_supported: string[];
17
+ scopes_supported?: string[];
18
+ }
19
+ /** build the RFC 9728 metadata; `undefined` when OIDC is not configured */
20
+ export declare function oauthProtectedResourceMetadata(oidc: OidcConfig | undefined, origin: string): OAuthProtectedResourceMetadata | undefined;
21
+ /** the RFC 9728 `WWW-Authenticate` challenge for a 401 (points at the metadata document) */
22
+ export declare function wwwAuthenticateChallenge(origin: string): string;
23
+ //# sourceMappingURL=oauth-metadata.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-metadata.d.ts","sourceRoot":"","sources":["../../../src/adapters/auth/oauth-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C;;;;;;;GAOG;AACH,eAAO,MAAM,6BAA6B,0CAA0C,CAAC;AAErF,MAAM,WAAW,8BAA8B;IAC7C,gEAAgE;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,2EAA2E;AAC3E,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,UAAU,GAAG,SAAS,EAC5B,MAAM,EAAE,MAAM,GACb,8BAA8B,GAAG,SAAS,CAS5C;AAED,4FAA4F;AAC5F,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE/D"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * OAuth 2.0 Protected Resource Metadata (RFC 9728) + the `WWW-Authenticate`
3
+ * challenge that points an MCP host at it. When `auth.oidc` is configured the
4
+ * engine advertises its authorization server(s) at
5
+ * `/.well-known/oauth-protected-resource`, and 401 responses carry a
6
+ * `Bearer resource_metadata="…"` challenge so a standards-based MCP host (Claude,
7
+ * ChatGPT connectors, VS Code) can discover and run the OAuth flow.
8
+ */
9
+ export const OAUTH_PROTECTED_RESOURCE_PATH = '/.well-known/oauth-protected-resource';
10
+ /** build the RFC 9728 metadata; `undefined` when OIDC is not configured */
11
+ export function oauthProtectedResourceMetadata(oidc, origin) {
12
+ if (oidc === undefined)
13
+ return undefined;
14
+ const authorizationServers = oidc.authorizationServers ?? (oidc.issuer === undefined ? [] : [oidc.issuer]);
15
+ return {
16
+ resource: oidc.resource ?? origin,
17
+ authorization_servers: authorizationServers,
18
+ bearer_methods_supported: ['header'],
19
+ ...(oidc.scopes === undefined ? {} : { scopes_supported: oidc.scopes }),
20
+ };
21
+ }
22
+ /** the RFC 9728 `WWW-Authenticate` challenge for a 401 (points at the metadata document) */
23
+ export function wwwAuthenticateChallenge(origin) {
24
+ return `Bearer resource_metadata="${origin}${OAUTH_PROTECTED_RESOURCE_PATH}"`;
25
+ }
26
+ //# sourceMappingURL=oauth-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-metadata.js","sourceRoot":"","sources":["../../../src/adapters/auth/oauth-metadata.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,uCAAuC,CAAC;AAWrF,2EAA2E;AAC3E,MAAM,UAAU,8BAA8B,CAC5C,IAA4B,EAC5B,MAAc;IAEd,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC3G,OAAO;QACL,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,MAAM;QACjC,qBAAqB,EAAE,oBAAoB;QAC3C,wBAAwB,EAAE,CAAC,QAAQ,CAAC;QACpC,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;KACxE,CAAC;AACJ,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,wBAAwB,CAAC,MAAc;IACrD,OAAO,6BAA6B,MAAM,GAAG,6BAA6B,GAAG,CAAC;AAChF,CAAC"}
@@ -0,0 +1,49 @@
1
+ import type { AuthVerifier } from './verify.js';
2
+ /**
3
+ * Built-in OIDC/JWT bearer verification (MIT). The engine ships this verifier so
4
+ * a project can authenticate with a standards-based IdP (JWKS + local JWT
5
+ * validation) without an integration. It resolves a `Bearer <jwt>` into a
6
+ * {@link VerifiedIdentity} (`ref` from {@link OidcConfig.subjectClaim}, default
7
+ * `sub`); the identity directory then maps it to an `IdentitySubject`.
8
+ *
9
+ * Signature/JWKS handling is delegated to `jose` (`createRemoteJWKSet` caches and
10
+ * rotates keys by `kid`). Configure it under `EngineConfig.auth.oidc`.
11
+ */
12
+ export interface OidcConfig {
13
+ /**
14
+ * OIDC issuer. Used as the `iss` check and, unless `jwksUri` is set, to
15
+ * discover the JWKS at `<issuer>/.well-known/openid-configuration`.
16
+ */
17
+ issuer?: string;
18
+ /** explicit JWKS endpoint; overrides discovery (required when `issuer` is unset) */
19
+ jwksUri?: string;
20
+ /** expected `aud` (string or list); the token's `aud` must include it */
21
+ audience?: string | string[];
22
+ /** claim carrying the external user ref (default `sub`) */
23
+ subjectClaim?: string;
24
+ /** when set, the named claim's value is also exposed as `claims.roles` */
25
+ rolesClaim?: string;
26
+ /** when set, the named claim's value is also exposed as `claims.tenantId` */
27
+ tenantClaim?: string;
28
+ /** allowed signing algorithms (default: asymmetric RS/ES/PS/EdDSA — never `none`/HMAC) */
29
+ algorithms?: string[];
30
+ /** clock-skew tolerance in seconds (default 5) */
31
+ clockToleranceSec?: number;
32
+ /** OAuth authorization server(s) advertised at `/.well-known/oauth-protected-resource` (default: `[issuer]`) */
33
+ authorizationServers?: string[];
34
+ /** scopes advertised in the protected-resource metadata */
35
+ scopes?: string[];
36
+ /** this server's public URL (the metadata `resource`); defaults to the request origin */
37
+ resource?: string;
38
+ }
39
+ export interface OidcVerifierOptions {
40
+ /** fetch implementation (defaults to the global `fetch`); injectable for tests */
41
+ fetch?: typeof fetch;
42
+ }
43
+ /**
44
+ * Build an {@link AuthVerifier} that locally validates OIDC JWTs. Returns `null`
45
+ * (→ 401 `auth.invalidKey`) for a missing/invalid token, never throws on a bad
46
+ * credential. The JWKS is fetched lazily on the first verification.
47
+ */
48
+ export declare function createOidcVerifier(config: OidcConfig, options?: OidcVerifierOptions): AuthVerifier;
49
+ //# sourceMappingURL=oidc.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oidc.d.ts","sourceRoot":"","sources":["../../../src/adapters/auth/oidc.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oFAAoF;IACpF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6EAA6E;IAC7E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0FAA0F;IAC1F,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,kDAAkD;IAClD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gHAAgH;IAChH,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC;IAChC,2DAA2D;IAC3D,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,yFAAyF;IACzF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA6BD,MAAM,WAAW,mBAAmB;IAClC,kFAAkF;IAClF,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;CACtB;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,GAAE,mBAAwB,GAAG,YAAY,CAqDtG"}
@@ -0,0 +1,92 @@
1
+ import { createRemoteJWKSet, customFetch, jwtVerify } from 'jose';
2
+ /** asymmetric algorithms only — symmetric/HMAC/`none` are never accepted */
3
+ const DEFAULT_ALGORITHMS = [
4
+ 'RS256',
5
+ 'RS384',
6
+ 'RS512',
7
+ 'ES256',
8
+ 'ES384',
9
+ 'ES512',
10
+ 'PS256',
11
+ 'PS384',
12
+ 'PS512',
13
+ 'EdDSA',
14
+ ];
15
+ /** extract the token from a `Bearer <jwt>` Authorization header */
16
+ function bearerToken(header) {
17
+ if (header === undefined)
18
+ return undefined;
19
+ const match = /^Bearer\s+(\S+)$/i.exec(header.trim());
20
+ return match?.[1];
21
+ }
22
+ /** a string claim value (arrays/objects are ignored) */
23
+ function stringClaim(payload, name) {
24
+ const value = payload[name];
25
+ return typeof value === 'string' ? value : undefined;
26
+ }
27
+ /**
28
+ * Build an {@link AuthVerifier} that locally validates OIDC JWTs. Returns `null`
29
+ * (→ 401 `auth.invalidKey`) for a missing/invalid token, never throws on a bad
30
+ * credential. The JWKS is fetched lazily on the first verification.
31
+ */
32
+ export function createOidcVerifier(config, options = {}) {
33
+ if (config.issuer === undefined && config.jwksUri === undefined) {
34
+ throw new Error('auth.oidc: set "issuer" (discovery) or "jwksUri"');
35
+ }
36
+ const algorithms = config.algorithms ?? DEFAULT_ALGORITHMS;
37
+ const fetchImpl = options.fetch ?? fetch;
38
+ let keySet;
39
+ async function keys() {
40
+ if (keySet !== undefined)
41
+ return keySet;
42
+ let uri = config.jwksUri;
43
+ if (uri === undefined) {
44
+ const discoveryUrl = `${config.issuer.replace(/\/$/, '')}/.well-known/openid-configuration`;
45
+ const res = await fetchImpl(discoveryUrl);
46
+ if (!res.ok)
47
+ throw new Error(`auth.oidc: discovery failed (${res.status}) for ${discoveryUrl}`);
48
+ const doc = (await res.json());
49
+ if (typeof doc.jwks_uri !== 'string')
50
+ throw new Error('auth.oidc: discovery document has no jwks_uri');
51
+ uri = doc.jwks_uri;
52
+ }
53
+ keySet = createRemoteJWKSet(new URL(uri), { [customFetch]: fetchImpl });
54
+ return keySet;
55
+ }
56
+ return {
57
+ async verify(header) {
58
+ const token = bearerToken(header);
59
+ if (token === undefined)
60
+ return null;
61
+ let payload;
62
+ try {
63
+ const result = await jwtVerify(token, await keys(), {
64
+ ...(config.issuer === undefined ? {} : { issuer: config.issuer }),
65
+ ...(config.audience === undefined ? {} : { audience: config.audience }),
66
+ algorithms,
67
+ clockTolerance: config.clockToleranceSec ?? 5,
68
+ });
69
+ payload = result.payload;
70
+ }
71
+ catch {
72
+ return null; // invalid signature/claims → unauthenticated
73
+ }
74
+ const ref = stringClaim(payload, config.subjectClaim ?? 'sub');
75
+ if (ref === undefined || ref === '')
76
+ return null;
77
+ const claims = { ...payload };
78
+ if (config.rolesClaim !== undefined && claims.roles === undefined) {
79
+ const roles = payload[config.rolesClaim];
80
+ if (roles !== undefined)
81
+ claims.roles = roles;
82
+ }
83
+ if (config.tenantClaim !== undefined && claims.tenantId === undefined) {
84
+ const tenant = stringClaim(payload, config.tenantClaim);
85
+ if (tenant !== undefined)
86
+ claims.tenantId = tenant;
87
+ }
88
+ return { ref, claims };
89
+ },
90
+ };
91
+ }
92
+ //# sourceMappingURL=oidc.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oidc.js","sourceRoot":"","sources":["../../../src/adapters/auth/oidc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,SAAS,EAAyC,MAAM,MAAM,CAAC;AA0CzG,4EAA4E;AAC5E,MAAM,kBAAkB,GAAG;IACzB,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;IACP,OAAO;CACR,CAAC;AAEF,mEAAmE;AACnE,SAAS,WAAW,CAAC,MAA0B;IAC7C,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAC3C,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACtD,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,wDAAwD;AACxD,SAAS,WAAW,CAAC,OAAmB,EAAE,IAAY;IACpD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAOD;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAkB,EAAE,UAA+B,EAAE;IACtF,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,kBAAkB,CAAC;IAC3D,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;IACzC,IAAI,MAAmC,CAAC;IAExC,KAAK,UAAU,IAAI;QACjB,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO,MAAM,CAAC;QACxC,IAAI,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC;QACzB,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;YACtB,MAAM,YAAY,GAAG,GAAG,MAAM,CAAC,MAAO,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,mCAAmC,CAAC;YAC7F,MAAM,GAAG,GAAG,MAAM,SAAS,CAAC,YAAY,CAAC,CAAC;YAC1C,IAAI,CAAC,GAAG,CAAC,EAAE;gBAAE,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,CAAC,MAAM,SAAS,YAAY,EAAE,CAAC,CAAC;YAChG,MAAM,GAAG,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA2B,CAAC;YACzD,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;YACvG,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC;QACrB,CAAC;QACD,MAAM,GAAG,kBAAkB,CAAC,IAAI,GAAG,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;QACxE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO;QACL,KAAK,CAAC,MAAM,CAAC,MAA0B;YACrC,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;YAClC,IAAI,KAAK,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YACrC,IAAI,OAAmB,CAAC;YACxB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,EAAE;oBAClD,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;oBACjE,GAAG,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC;oBACvE,UAAU;oBACV,cAAc,EAAE,MAAM,CAAC,iBAAiB,IAAI,CAAC;iBAC9C,CAAC,CAAC;gBACH,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC,CAAC,6CAA6C;YAC5D,CAAC;YACD,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,YAAY,IAAI,KAAK,CAAC,CAAC;YAC/D,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE;gBAAE,OAAO,IAAI,CAAC;YACjD,MAAM,MAAM,GAA4B,EAAE,GAAG,OAAO,EAAE,CAAC;YACvD,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAClE,MAAM,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBACzC,IAAI,KAAK,KAAK,SAAS;oBAAE,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;YAChD,CAAC;YACD,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACtE,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;gBACxD,IAAI,MAAM,KAAK,SAAS;oBAAE,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC;YACrD,CAAC;YACD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -14,8 +14,9 @@ export type AuthResolver = (header: string | undefined) => IdentitySubject | nul
14
14
  * The authentication source: either a static key map or a resolver function.
15
15
  * `source` is required whenever `auth` is configured (fail fast otherwise).
16
16
  *
17
- * Stable seam (`@enterprise-reserved`): SSO/OIDC/SAML is enterprise E1; the
18
- * engine ships static-key and custom-resolver sources.
17
+ * Stable seam (`@enterprise-reserved`): SAML / multi-IdP federation is enterprise
18
+ * E1. The engine ships static-key and custom-resolver sources plus a built-in
19
+ * OIDC/JWT verifier (`auth.oidc`).
19
20
  */
20
21
  export type AuthSource = Record<string, IdentitySubject> | AuthResolver;
21
22
  /** authentication config — the single source of truth is `source` */
@@ -1 +1 @@
1
- {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../src/adapters/auth/source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,+FAA+F;AAC/F,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;CAC/F;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;AAEpH;;;;;;GAMG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,YAAY,CAAC;AAExE,qEAAqE;AACrE,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,aAAa,CAiB5D"}
1
+ {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../../../src/adapters/auth/source.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE3D,+FAA+F;AAC/F,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;CAC/F;AAED;;;;;GAKG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,KAAK,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;AAEpH;;;;;;;GAOG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,YAAY,CAAC;AAExE,qEAAqE;AACrE,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,MAAM,EAAE,UAAU,GAAG,aAAa,CAiB5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"source.js","sourceRoot":"","sources":["../../../src/adapters/auth/source.ts"],"names":[],"mappings":"AA6BA,gFAAgF;AAChF,MAAM,UAAU,UAAU,CAAC,MAAkB;IAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IACjD,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC;IACpB,OAAO;QACL,OAAO,CAAC,MAA0B;YAChC,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YACtC,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACtD,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAChC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YACxB,sEAAsE;YACtE,6DAA6D;YAC7D,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnE,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../../../src/adapters/auth/source.ts"],"names":[],"mappings":"AA8BA,gFAAgF;AAChF,MAAM,UAAU,UAAU,CAAC,MAAkB;IAC3C,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IAC7B,IAAI,OAAO,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,EAAE,OAAO,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IACjD,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC;IACpB,OAAO;QACL,OAAO,CAAC,MAA0B;YAChC,IAAI,MAAM,KAAK,SAAS;gBAAE,OAAO,IAAI,CAAC;YACtC,MAAM,KAAK,GAAG,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YACtD,IAAI,KAAK,KAAK,IAAI;gBAAE,OAAO,IAAI,CAAC;YAChC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;YACxB,sEAAsE;YACtE,6DAA6D;YAC7D,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACnE,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,12 +1,14 @@
1
1
  import type { VerifiedIdentity } from '../../core/provider/identity/index.js';
2
2
  /**
3
3
  * Authentication seam: turn a raw credential (the `Authorization` header) into
4
- * a verified-but-unresolved identity. Protocol verifiers (OIDC/JWT/SAML) are
5
- * supplied by integrations (e.g. `@weave-kit/enterprise`); the engine defines
6
- * the contract and composes it with the identity directory. Returning `null`
7
- * means the credential is missing/invalid (401).
4
+ * a verified-but-unresolved identity. The engine ships a built-in OIDC/JWT
5
+ * verifier (`createOidcVerifier`, configured via `auth.oidc`); other protocol
6
+ * verifiers (SAML, …) are supplied by integrations (e.g. `@weave-kit/enterprise`)
7
+ * against this same contract. Returning `null` means the credential is
8
+ * missing/invalid (401).
8
9
  *
9
- * Stable seam (`@enterprise-reserved`): protocol verifiers are enterprise E1.
10
+ * Stable seam (`@enterprise-reserved`): SAML and other protocol verifiers are
11
+ * enterprise E1; OIDC/JWT is MIT.
10
12
  */
11
13
  export interface AuthVerifier {
12
14
  verify(header: string | undefined): VerifiedIdentity | null | Promise<VerifiedIdentity | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/adapters/auth/verify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAE9E;;;;;;;;GAQG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;CAChG"}
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/adapters/auth/verify.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAE9E;;;;;;;;;;GAUG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,gBAAgB,GAAG,IAAI,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAAC;CAChG"}
@@ -2,6 +2,7 @@ import type { FastifyInstance } from 'fastify';
2
2
  import type { Locale, ToolDefinition } from '../../core/index.js';
3
3
  import type { ToolExecutor } from '../../runtime/tools/index.js';
4
4
  import type { Authenticator } from '../auth/index.js';
5
+ import { type OidcConfig } from '../auth/index.js';
5
6
  import type { IdentityResolver } from '../../core/provider/identity/index.js';
6
7
  import type { McpSessionStore } from './session.js';
7
8
  import type { McpGuardrails } from './guardrails.js';
@@ -34,6 +35,8 @@ export interface McpHttpDeps {
34
35
  prompts?: McpPromptsConfig;
35
36
  /** schema signature folded into the compiled-surface cache key (schema change → cache miss) */
36
37
  schemaRevision?: string;
38
+ /** when set (from `auth.oidc`), serve RFC 9728 protected-resource metadata at `/.well-known/oauth-protected-resource` */
39
+ oauth?: OidcConfig;
37
40
  }
38
41
  export declare function registerMcpRoutes(app: FastifyInstance, deps: McpHttpDeps): void;
39
42
  //# sourceMappingURL=http.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/adapters/mcp/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAkB7E,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAkB,MAAM,qBAAqB,CAAC;AAElF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAA4B,MAAM,cAAc,CAAC;AAE9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,YAAY,CAAC;AA+D3D,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,SAAS,CAAC;IAClB,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,UAAU,EAAE,aAAa,CAAC;IAC1B,YAAY,EAAE,eAAe,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;IAC3D,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;IACzC,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,0FAA0F;IAC1F,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,+FAA+F;IAC/F,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAuCD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAyN/E"}
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../../src/adapters/mcp/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAgC,MAAM,SAAS,CAAC;AAkB7E,OAAO,KAAK,EAAE,MAAM,EAAE,cAAc,EAAkB,MAAM,qBAAqB,CAAC;AAElF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAA+E,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAChI,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAA4B,MAAM,cAAc,CAAC;AAE9E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAiB,MAAM,YAAY,CAAC;AA+D3D,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,SAAS,CAAC;IAClB,aAAa,EAAE,aAAa,CAAC;IAC7B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,UAAU,EAAE,aAAa,CAAC;IAC1B,YAAY,EAAE,eAAe,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,KAAK,CAAC,EAAE;QAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QAAC,QAAQ,EAAE,YAAY,CAAA;KAAE,CAAC;IAC3D,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;IACzC,+DAA+D;IAC/D,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,0FAA0F;IAC1F,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,+FAA+F;IAC/F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yHAAyH;IACzH,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAuCD,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI,CAmO/E"}
@@ -4,7 +4,7 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
4
4
  import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
5
5
  import { CallToolRequestSchema, GetPromptRequestSchema, ListPromptsRequestSchema, ListResourcesRequestSchema, ListToolsRequestSchema, ReadResourceRequestSchema, ErrorCode, McpError, isInitializeRequest, } from '@modelcontextprotocol/sdk/types.js';
6
6
  import { SchemaError, traceIdOf, validateToolArgs } from '../../core/index.js';
7
- import { authenticate } from '../auth/index.js';
7
+ import { authenticate, OAUTH_PROTECTED_RESOURCE_PATH, oauthProtectedResourceMetadata } from '../auth/index.js';
8
8
  import { credentialIdOf } from './session.js';
9
9
  import { compileToolsFor } from './generate.js';
10
10
  import { listResources, readResource } from './resources.js';
@@ -283,6 +283,15 @@ export function registerMcpRoutes(app, deps) {
283
283
  app.post(path, handle);
284
284
  app.get(path, handle);
285
285
  app.delete(path, handle);
286
+ // OAuth 2.0 Protected Resource Metadata (RFC 9728): a public document letting a
287
+ // standards-based MCP host discover the authorization server and run the OAuth
288
+ // flow. Served only when OIDC is configured (`auth.oidc`).
289
+ if (deps.oauth !== undefined) {
290
+ app.get(OAUTH_PROTECTED_RESOURCE_PATH, async (request, reply) => {
291
+ const origin = `${request.protocol}://${request.host}`;
292
+ reply.type('application/json').send(oauthProtectedResourceMetadata(deps.oauth, origin));
293
+ });
294
+ }
286
295
  app.addHook('onClose', async () => {
287
296
  for (const entry of sessions.values()) {
288
297
  await entry.transport.close();
@@ -1 +1 @@
1
- {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/adapters/mcp/http.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http.js","sourceRoot":"","sources":["../../../src/adapters/mcp/http.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import type { AuditSink } from '../../core/audit/index.js';
4
4
  import type { AlertSink } from '../../core/provider/alerts/index.js';
5
5
  import type { IdentityDirectory, IdentityResolver } from '../../core/provider/identity/index.js';
6
6
  import type { ToolExecutor } from '../../runtime/tools/index.js';
7
- import type { Authenticator } from '../auth/index.js';
7
+ import type { Authenticator, OidcConfig } from '../auth/index.js';
8
8
  import { type RateLimitConfig } from './guardrails.js';
9
9
  import type { McpEngine } from './types.js';
10
10
  /**
@@ -85,6 +85,8 @@ export interface McpRegisterDeps {
85
85
  directory?: IdentityDirectory;
86
86
  /** schema signature: part of the compiled-surface cache key so a schema change invalidates it */
87
87
  schemaRevision?: string;
88
+ /** `auth.oidc` — enables the RFC 9728 protected-resource metadata endpoint */
89
+ oauth?: OidcConfig;
88
90
  }
89
91
  export interface McpServerHandle {
90
92
  /** closes all transports/servers and clears the session store */
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/mcp/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/mcp/index.ts"],"names":[],"mappings":"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"}
@@ -7,7 +7,7 @@ import { registerMcpRoutes } from './http.js';
7
7
  * identity (`mcp.identities`: static directory or a customer-provided resolver).
8
8
  */
9
9
  export function registerMcp(app, deps) {
10
- const { engine, authenticator, mcp, locale, audit, alerts, tools, corsOrigin, directory, schemaRevision } = deps;
10
+ const { engine, authenticator, mcp, locale, audit, alerts, tools, corsOrigin, directory, schemaRevision, oauth } = deps;
11
11
  // on-behalf-of resolver priority: a function `mcp.identities` wins, then a
12
12
  // static `mcp.identities` map, then the engine identity directory, else empty
13
13
  const explicit = mcp?.identities;
@@ -43,6 +43,7 @@ export function registerMcp(app, deps) {
43
43
  allowImpersonation: mcp?.impersonation === 'directory',
44
44
  prompts,
45
45
  schemaRevision,
46
+ ...(oauth === undefined ? {} : { oauth }),
46
47
  });
47
48
  return {
48
49
  async close() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/mcp/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAwB,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAwF9C;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAoB,EAAE,IAAqB;IACrE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAEjH,2EAA2E;IAC3E,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,GAAG,EAAE,UAAU,CAAC;IACjC,MAAM,gBAAgB,GACpB,OAAO,QAAQ,KAAK,UAAU;QAC5B,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,QAAQ,KAAK,SAAS;YACtB,CAAC,CAAC,CAAC,GAAW,EAAE,EAAE,CAAE,QAA4C,CAAC,GAAG,CAAC,IAAI,IAAI;YAC7E,CAAC,CAAC,SAAS,KAAK,SAAS;gBACvB,CAAC,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC;gBACzC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;IAErB,MAAM,UAAU,GAAG,gBAAgB,CAAC;QAClC,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS;QACrC,MAAM;QACN,KAAK;KACN,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;IAC3C,MAAM,OAAO,GACX,GAAG,EAAE,OAAO,EAAE,OAAO,KAAK,KAAK;QAC7B,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;QACrB,CAAC,CAAC;YACE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnF,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;SACpF,CAAC;IACR,iBAAiB,CAAC,GAAG,EAAE;QACrB,MAAM;QACN,aAAa;QACb,gBAAgB;QAChB,UAAU;QACV,YAAY;QACZ,MAAM;QACN,KAAK;QACL,QAAQ,EAAE,GAAG,EAAE,QAAQ;QACvB,UAAU;QACV,kBAAkB,EAAE,GAAG,EAAE,aAAa,KAAK,WAAW;QACtD,OAAO;QACP,cAAc;KACf,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,CAAC,KAAK;YACT,UAAU,CAAC,OAAO,EAAE,CAAC;YACrB,YAAY,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/adapters/mcp/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAwB,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AA0F9C;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,GAAoB,EAAE,IAAqB;IACrE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;IAExH,2EAA2E;IAC3E,8EAA8E;IAC9E,MAAM,QAAQ,GAAG,GAAG,EAAE,UAAU,CAAC;IACjC,MAAM,gBAAgB,GACpB,OAAO,QAAQ,KAAK,UAAU;QAC5B,CAAC,CAAC,QAAQ;QACV,CAAC,CAAC,QAAQ,KAAK,SAAS;YACtB,CAAC,CAAC,CAAC,GAAW,EAAE,EAAE,CAAE,QAA4C,CAAC,GAAG,CAAC,IAAI,IAAI;YAC7E,CAAC,CAAC,SAAS,KAAK,SAAS;gBACvB,CAAC,CAAC,CAAC,GAAW,EAAE,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC;gBACzC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC;IAErB,MAAM,UAAU,GAAG,gBAAgB,CAAC;QAClC,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS;QACrC,MAAM;QACN,KAAK;KACN,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;IAC3C,MAAM,OAAO,GACX,GAAG,EAAE,OAAO,EAAE,OAAO,KAAK,KAAK;QAC7B,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE;QACrB,CAAC,CAAC;YACE,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YACnF,GAAG,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;SACpF,CAAC;IACR,iBAAiB,CAAC,GAAG,EAAE;QACrB,MAAM;QACN,aAAa;QACb,gBAAgB;QAChB,UAAU;QACV,YAAY;QACZ,MAAM;QACN,KAAK;QACL,QAAQ,EAAE,GAAG,EAAE,QAAQ;QACvB,UAAU;QACV,kBAAkB,EAAE,GAAG,EAAE,aAAa,KAAK,WAAW;QACtD,OAAO;QACP,cAAc;QACd,GAAG,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;KAC1C,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,CAAC,KAAK;YACT,UAAU,CAAC,OAAO,EAAE,CAAC;YACrB,YAAY,CAAC,OAAO,EAAE,CAAC;QACzB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
@@ -1,9 +1,13 @@
1
- import type { FastifyInstance } from 'fastify';
1
+ import type { FastifyInstance, FastifyRequest } from 'fastify';
2
2
  import type { Locale } from '../../core/index.js';
3
+ export interface ErrorHandlerOptions {
4
+ /** add a `WWW-Authenticate` challenge to 401 responses (RFC 9728 OAuth protected-resource) */
5
+ wwwAuthenticate?: (request: FastifyRequest) => string;
6
+ }
3
7
  /**
4
8
  * Install uniform error handling on the app:
5
9
  * - setErrorHandler: every thrown error → {@link mapSchemaError} spec
6
10
  * - setNotFoundHandler: unknown routes → uniform 404 body
7
11
  */
8
- export declare function setErrorHandlers(app: FastifyInstance, locale: Locale): void;
12
+ export declare function setErrorHandlers(app: FastifyInstance, locale: Locale, options?: ErrorHandlerOptions): void;
9
13
  //# sourceMappingURL=errorHandler.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errorHandler.d.ts","sourceRoot":"","sources":["../../../src/adapters/rest/errorHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAIlD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAS3E"}
1
+ {"version":3,"file":"errorHandler.d.ts","sourceRoot":"","sources":["../../../src/adapters/rest/errorHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAIlD,MAAM,WAAW,mBAAmB;IAClC,8FAA8F;IAC9F,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,KAAK,MAAM,CAAC;CACvD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,mBAAwB,GAAG,IAAI,CAY9G"}
@@ -5,9 +5,12 @@ import { mapSchemaError } from '../../core/api/index.js';
5
5
  * - setErrorHandler: every thrown error → {@link mapSchemaError} spec
6
6
  * - setNotFoundHandler: unknown routes → uniform 404 body
7
7
  */
8
- export function setErrorHandlers(app, locale) {
9
- app.setErrorHandler((err, _request, reply) => {
8
+ export function setErrorHandlers(app, locale, options = {}) {
9
+ app.setErrorHandler((err, request, reply) => {
10
10
  const spec = mapSchemaError(err, locale);
11
+ if (spec.status === 401 && options.wwwAuthenticate !== undefined) {
12
+ reply.header('WWW-Authenticate', options.wwwAuthenticate(request));
13
+ }
11
14
  reply.status(spec.status).send(spec.body);
12
15
  });
13
16
  app.setNotFoundHandler((_request, reply) => {
@@ -1 +1 @@
1
- {"version":3,"file":"errorHandler.js","sourceRoot":"","sources":["../../../src/adapters/rest/errorHandler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAEzD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAoB,EAAE,MAAc;IACnE,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;QAC3C,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACzC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;QACzC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,WAAW,CAAC,eAAe,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;QAClF,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"errorHandler.js","sourceRoot":"","sources":["../../../src/adapters/rest/errorHandler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAOzD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,GAAoB,EAAE,MAAc,EAAE,UAA+B,EAAE;IACtG,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE;QAC1C,MAAM,IAAI,GAAG,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,OAAO,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;YACjE,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IACH,GAAG,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;QACzC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,WAAW,CAAC,eAAe,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC;QAClF,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;AACL,CAAC"}