@frontmcp/sdk 1.3.0 → 1.4.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 (186) hide show
  1. package/README.md +65 -60
  2. package/agent/agent.scope.d.ts +164 -0
  3. package/agent/agent.scope.d.ts.map +1 -1
  4. package/app/instances/app.esm.instance.d.ts.map +1 -1
  5. package/app/instances/app.remote.instance.d.ts.map +1 -1
  6. package/auth/auth-ui/auth-ui.contract.d.ts +149 -0
  7. package/auth/auth-ui/auth-ui.contract.d.ts.map +1 -0
  8. package/auth/auth-ui/auth-ui.registry.d.ts +151 -0
  9. package/auth/auth-ui/auth-ui.registry.d.ts.map +1 -0
  10. package/auth/auth-ui/auth-ui.render.d.ts +49 -0
  11. package/auth/auth-ui/auth-ui.render.d.ts.map +1 -0
  12. package/auth/auth-ui/auth-ui.state.d.ts +62 -0
  13. package/auth/auth-ui/auth-ui.state.d.ts.map +1 -0
  14. package/auth/auth-ui/index.d.ts +24 -0
  15. package/auth/auth-ui/index.d.ts.map +1 -0
  16. package/auth/auth.registry.d.ts.map +1 -1
  17. package/auth/authorized-apps.utils.d.ts +51 -0
  18. package/auth/authorized-apps.utils.d.ts.map +1 -0
  19. package/auth/consent-tools.helper.d.ts +26 -0
  20. package/auth/consent-tools.helper.d.ts.map +1 -0
  21. package/auth/consent.utils.d.ts +62 -0
  22. package/auth/consent.utils.d.ts.map +1 -0
  23. package/auth/credentials/credentials.context-extension.d.ts +63 -0
  24. package/auth/credentials/credentials.context-extension.d.ts.map +1 -0
  25. package/auth/credentials/credentials.providers.d.ts +40 -0
  26. package/auth/credentials/credentials.providers.d.ts.map +1 -0
  27. package/auth/credentials/index.d.ts +3 -0
  28. package/auth/credentials/index.d.ts.map +1 -0
  29. package/auth/flows/auth.verify.flow.d.ts.map +1 -1
  30. package/auth/flows/oauth.auth-ui.flow.d.ts +53 -0
  31. package/auth/flows/oauth.auth-ui.flow.d.ts.map +1 -0
  32. package/auth/flows/oauth.authorize.flow.d.ts +51 -9
  33. package/auth/flows/oauth.authorize.flow.d.ts.map +1 -1
  34. package/auth/flows/oauth.callback.flow.d.ts +118 -5
  35. package/auth/flows/oauth.callback.flow.d.ts.map +1 -1
  36. package/auth/flows/oauth.connect.flow.d.ts +89 -0
  37. package/auth/flows/oauth.connect.flow.d.ts.map +1 -0
  38. package/auth/flows/oauth.provider-callback.flow.d.ts +34 -4
  39. package/auth/flows/oauth.provider-callback.flow.d.ts.map +1 -1
  40. package/auth/flows/oauth.register.flow.d.ts +16 -20
  41. package/auth/flows/oauth.register.flow.d.ts.map +1 -1
  42. package/auth/flows/oauth.token.flow.d.ts +2 -2
  43. package/auth/flows/oauth.token.flow.d.ts.map +1 -1
  44. package/auth/flows/oauth.userinfo.flow.d.ts +67 -0
  45. package/auth/flows/oauth.userinfo.flow.d.ts.map +1 -0
  46. package/auth/flows/session.verify.flow.d.ts +2 -2
  47. package/auth/flows/session.verify.flow.d.ts.map +1 -1
  48. package/auth/flows/well-known.jwks.flow.d.ts +3 -3
  49. package/auth/flows/well-known.oauth-authorization-server.flow.d.ts +3 -2
  50. package/auth/flows/well-known.oauth-authorization-server.flow.d.ts.map +1 -1
  51. package/auth/flows/well-known.prm.flow.d.ts +1 -1
  52. package/auth/flows/well-known.prm.flow.d.ts.map +1 -1
  53. package/auth/instances/instance.local-primary-auth.d.ts +226 -12
  54. package/auth/instances/instance.local-primary-auth.d.ts.map +1 -1
  55. package/auth/secure-store/index.d.ts +3 -0
  56. package/auth/secure-store/index.d.ts.map +1 -0
  57. package/auth/secure-store/secure-store.context-extension.d.ts +61 -0
  58. package/auth/secure-store/secure-store.context-extension.d.ts.map +1 -0
  59. package/auth/secure-store/secure-store.providers.d.ts +36 -0
  60. package/auth/secure-store/secure-store.providers.d.ts.map +1 -0
  61. package/common/decorators/agent.decorator.d.ts +32 -0
  62. package/common/decorators/agent.decorator.d.ts.map +1 -1
  63. package/common/decorators/app.decorator.d.ts.map +1 -1
  64. package/common/decorators/front-mcp.decorator.d.ts.map +1 -1
  65. package/common/decorators/skill.decorator.d.ts.map +1 -1
  66. package/common/decorators/tool.decorator.d.ts +44 -0
  67. package/common/decorators/tool.decorator.d.ts.map +1 -1
  68. package/common/entries/scope.entry.d.ts +7 -0
  69. package/common/entries/scope.entry.d.ts.map +1 -1
  70. package/common/entries/skill.entry.d.ts +22 -1
  71. package/common/entries/skill.entry.d.ts.map +1 -1
  72. package/common/entries/tool.entry.d.ts +17 -0
  73. package/common/entries/tool.entry.d.ts.map +1 -1
  74. package/common/interfaces/internal/primary-auth-provider.interface.d.ts +18 -0
  75. package/common/interfaces/internal/primary-auth-provider.interface.d.ts.map +1 -1
  76. package/common/interfaces/tool.interface.d.ts +26 -0
  77. package/common/interfaces/tool.interface.d.ts.map +1 -1
  78. package/common/metadata/app.metadata.d.ts +472 -0
  79. package/common/metadata/app.metadata.d.ts.map +1 -1
  80. package/common/metadata/front-mcp.metadata.d.ts +1773 -52
  81. package/common/metadata/front-mcp.metadata.d.ts.map +1 -1
  82. package/common/metadata/index.d.ts +1 -0
  83. package/common/metadata/index.d.ts.map +1 -1
  84. package/common/metadata/output-policy.d.ts +82 -0
  85. package/common/metadata/output-policy.d.ts.map +1 -0
  86. package/common/metadata/skill.metadata.d.ts +45 -1
  87. package/common/metadata/skill.metadata.d.ts.map +1 -1
  88. package/common/metadata/tool-ui.metadata.d.ts +1 -1
  89. package/common/metadata/tool-ui.metadata.d.ts.map +1 -1
  90. package/common/metadata/tool.metadata.d.ts +65 -0
  91. package/common/metadata/tool.metadata.d.ts.map +1 -1
  92. package/common/schemas/http-output.schema.d.ts +25 -25
  93. package/common/schemas/http-output.schema.d.ts.map +1 -1
  94. package/common/tokens/app.tokens.d.ts.map +1 -1
  95. package/common/tokens/front-mcp.tokens.d.ts.map +1 -1
  96. package/common/tokens/skill.tokens.d.ts +2 -0
  97. package/common/tokens/skill.tokens.d.ts.map +1 -1
  98. package/common/tokens/tool.tokens.d.ts +1 -0
  99. package/common/tokens/tool.tokens.d.ts.map +1 -1
  100. package/common/types/auth/session.types.d.ts +2 -2
  101. package/common/types/options/auth/index.d.ts +4 -4
  102. package/common/types/options/auth/index.d.ts.map +1 -1
  103. package/common/types/options/auth/interfaces.d.ts +1 -1
  104. package/common/types/options/auth/interfaces.d.ts.map +1 -1
  105. package/common/types/options/auth/orchestrated.schema.d.ts +1 -1
  106. package/common/types/options/auth/orchestrated.schema.d.ts.map +1 -1
  107. package/common/types/options/auth/shared.schemas.d.ts +2 -2
  108. package/common/types/options/auth/shared.schemas.d.ts.map +1 -1
  109. package/common/types/options/http/index.d.ts +1 -1
  110. package/common/types/options/http/index.d.ts.map +1 -1
  111. package/common/types/options/http/interfaces.d.ts +56 -1
  112. package/common/types/options/http/interfaces.d.ts.map +1 -1
  113. package/common/types/options/http/schema.d.ts +15 -0
  114. package/common/types/options/http/schema.d.ts.map +1 -1
  115. package/common/types/options/session/schema.d.ts +3 -3
  116. package/common/types/options/transport/schema.d.ts +1 -1
  117. package/common/utils/caller-dir.utils.d.ts +15 -0
  118. package/common/utils/caller-dir.utils.d.ts.map +1 -0
  119. package/common/utils/index.d.ts +1 -0
  120. package/common/utils/index.d.ts.map +1 -1
  121. package/errors/index.d.ts +3 -1
  122. package/errors/index.d.ts.map +1 -1
  123. package/errors/mcp.error.d.ts +36 -2
  124. package/errors/mcp.error.d.ts.map +1 -1
  125. package/errors/tool-credentials-required.error.d.ts +70 -0
  126. package/errors/tool-credentials-required.error.d.ts.map +1 -0
  127. package/esm/index.mjs +6551 -2688
  128. package/flows/flow.instance.d.ts.map +1 -1
  129. package/front-mcp/front-mcp.d.ts +52 -32
  130. package/front-mcp/front-mcp.d.ts.map +1 -1
  131. package/front-mcp/front-mcp.providers.d.ts +700 -8
  132. package/front-mcp/front-mcp.providers.d.ts.map +1 -1
  133. package/index.d.ts +29 -4
  134. package/index.d.ts.map +1 -1
  135. package/index.js +7138 -3307
  136. package/package.json +10 -11
  137. package/scope/flows/http.request.flow.d.ts +18 -1
  138. package/scope/flows/http.request.flow.d.ts.map +1 -1
  139. package/scope/optional-dependency.util.d.ts +39 -0
  140. package/scope/optional-dependency.util.d.ts.map +1 -0
  141. package/scope/scope.instance.d.ts +17 -0
  142. package/scope/scope.instance.d.ts.map +1 -1
  143. package/scope/scope.utils.d.ts.map +1 -1
  144. package/server/adapters/express.host.adapter.d.ts.map +1 -1
  145. package/server/custom-routes.helper.d.ts +81 -0
  146. package/server/custom-routes.helper.d.ts.map +1 -0
  147. package/skill/flows/http/llm-full-txt.flow.d.ts +1 -1
  148. package/skill/flows/http/llm-txt.flow.d.ts +1 -1
  149. package/skill/flows/http/skills-api.flow.d.ts +18 -1
  150. package/skill/flows/http/skills-api.flow.d.ts.map +1 -1
  151. package/skill/flows/load-skill.flow.d.ts +7 -0
  152. package/skill/flows/load-skill.flow.d.ts.map +1 -1
  153. package/skill/flows/search-skills.flow.d.ts +13 -0
  154. package/skill/flows/search-skills.flow.d.ts.map +1 -1
  155. package/skill/index.d.ts +1 -0
  156. package/skill/index.d.ts.map +1 -1
  157. package/skill/sep-2640/resources/skill-file.resource.d.ts.map +1 -1
  158. package/skill/sep-2640/resources/skill-index.resource.d.ts.map +1 -1
  159. package/skill/sep-2640/resources/skill-md.resource.d.ts.map +1 -1
  160. package/skill/sep-2640/sep-2640.per-skill.d.ts.map +1 -1
  161. package/skill/skill-authorities.helper.d.ts +100 -0
  162. package/skill/skill-authorities.helper.d.ts.map +1 -0
  163. package/skill/skill.instance.d.ts.map +1 -1
  164. package/skill/skill.registry.d.ts +34 -0
  165. package/skill/skill.registry.d.ts.map +1 -1
  166. package/task/helpers/cli-task-runner.d.ts.map +1 -1
  167. package/tool/flows/call-tool.flow.d.ts +26 -1
  168. package/tool/flows/call-tool.flow.d.ts.map +1 -1
  169. package/tool/flows/tool-credentials.gate.d.ts +31 -0
  170. package/tool/flows/tool-credentials.gate.d.ts.map +1 -0
  171. package/tool/flows/tools-list.flow.d.ts.map +1 -1
  172. package/tool/tool.instance.d.ts.map +1 -1
  173. package/tool/ui/index.d.ts +1 -1
  174. package/tool/ui/index.d.ts.map +1 -1
  175. package/tool/ui/ui-resource.handler.d.ts.map +1 -1
  176. package/tool/ui/ui-shared.d.ts +33 -1
  177. package/tool/ui/ui-shared.d.ts.map +1 -1
  178. package/transport/adapters/transport.local.adapter.d.ts.map +1 -1
  179. package/transport/flows/handle.sse.flow.d.ts +1 -1
  180. package/transport/flows/handle.streamable-http.flow.d.ts +58 -1
  181. package/transport/flows/handle.streamable-http.flow.d.ts.map +1 -1
  182. package/transport/mcp-handlers/call-tool-request.handler.d.ts.map +1 -1
  183. package/transport/mcp-handlers/read-resource-request.handler.d.ts.map +1 -1
  184. package/transport/mcp-handlers/skills-list-request.handler.d.ts.map +1 -1
  185. package/transport/mcp-handlers/skills-load-request.handler.d.ts.map +1 -1
  186. package/transport/mcp-handlers/skills-search-request.handler.d.ts.map +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frontmcp/sdk",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "description": "FrontMCP SDK",
5
5
  "author": "AgentFront <info@agentfront.dev>",
6
6
  "homepage": "https://docs.agentfront.dev",
@@ -86,16 +86,15 @@
86
86
  "node": ">=24.0.0"
87
87
  },
88
88
  "peerDependencies": {
89
- "zod": "^4.0.0",
90
89
  "express": "^4.18.0 || ^5.0.0",
91
90
  "cors": "^2.8.5",
92
91
  "raw-body": "^3.0.0",
93
92
  "content-type": "^1.0.5",
94
93
  "@vercel/kv": "^3.0.0",
95
- "@frontmcp/storage-sqlite": "1.3.0",
94
+ "@frontmcp/storage-sqlite": "1.4.0",
96
95
  "openai": "^4.0.0 || ^5.0.0 || ^6.0.0",
97
96
  "@anthropic-ai/sdk": "^0.30.0 || ^0.78.0",
98
- "@frontmcp/observability": "1.3.0",
97
+ "@frontmcp/observability": "1.4.0",
99
98
  "@enclave-vm/core": "^2.13.0",
100
99
  "vectoriadb": "^2.2.0",
101
100
  "@opentelemetry/api": "^1.9.0",
@@ -132,13 +131,13 @@
132
131
  },
133
132
  "dependencies": {
134
133
  "@types/cors": "^2.8.17",
135
- "@frontmcp/utils": "1.3.0",
136
- "@frontmcp/guard": "1.3.0",
137
- "@frontmcp/di": "1.3.0",
138
- "@frontmcp/lazy-zod": "1.3.0",
139
- "@frontmcp/uipack": "1.3.0",
140
- "@frontmcp/auth": "1.3.0",
141
- "@frontmcp/protocol": "1.3.0",
134
+ "@frontmcp/utils": "1.4.0",
135
+ "@frontmcp/guard": "1.4.0",
136
+ "@frontmcp/di": "1.4.0",
137
+ "@frontmcp/lazy-zod": "1.4.0",
138
+ "@frontmcp/uipack": "1.4.0",
139
+ "@frontmcp/auth": "1.4.0",
140
+ "@frontmcp/protocol": "1.4.0",
142
141
  "ioredis": "^5.8.0",
143
142
  "js-yaml": "^4.1.1",
144
143
  "jose": "^6.1.3",
@@ -44,11 +44,11 @@ export declare const httpRequestStateSchema: import("@frontmcp/lazy-zod").ZodObj
44
44
  isPublic: import("@frontmcp/lazy-zod").ZodOptional<import("@frontmcp/lazy-zod").ZodBoolean>;
45
45
  platformType: import("@frontmcp/lazy-zod").ZodOptional<import("@frontmcp/lazy-zod").ZodEnum<{
46
46
  unknown: "unknown";
47
+ continue: "continue";
47
48
  openai: "openai";
48
49
  claude: "claude";
49
50
  gemini: "gemini";
50
51
  cursor: "cursor";
51
- continue: "continue";
52
52
  cody: "cody";
53
53
  "generic-mcp": "generic-mcp";
54
54
  "ext-apps": "ext-apps";
@@ -92,6 +92,23 @@ export default class HttpRequestFlow extends FlowBase<typeof name> {
92
92
  traceRequest(): Promise<void>;
93
93
  acquireQuota(): Promise<void>;
94
94
  checkAuthorization(): Promise<void>;
95
+ /**
96
+ * Build a live {@link OrchestratedAuthAccessorAdapter} for the verified request
97
+ * and register it under {@link ORCHESTRATED_AUTH_ACCESSOR} so tools can read
98
+ * upstream provider tokens via `this.orchestration.getToken(id)`.
99
+ *
100
+ * `session:verify` returns a lightweight authorization (`{ token, user, … }`)
101
+ * rather than a full OrchestratedAuthorization, so we reconstruct one here from
102
+ * the verified JWT + the primary auth's encrypted token store (the same store
103
+ * the federated provider-callback flow wrote upstream tokens into, keyed by
104
+ * `deriveAuthorizationId(token)`). No-op unless the scope is in orchestrated
105
+ * mode with a token store and a non-empty bearer token — so public/transparent
106
+ * and anonymous requests are unaffected.
107
+ *
108
+ * Security: tokens stay server-side and AES-GCM-encrypted at rest; only the
109
+ * non-PII provider ids are read here to project the authorization.
110
+ */
111
+ private bindOrchestrationAccessor;
95
112
  router(): Promise<void>;
96
113
  handleLegacySse(): Promise<void>;
97
114
  handleSse(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"http.request.flow.d.ts","sourceRoot":"","sources":["../../../src/scope/flows/http.request.flow.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,QAAQ,EAGR,eAAe,EACf,gBAAgB,EAShB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AAGtB,QAAA,MAAM,IAAI;;;;;CA8B2B,CAAC;AAEtC,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAIjC,CAAC;AAEH,QAAA,MAAM,IAAI,EAAG,cAAuB,CAAC;AAGrC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,WAAW;QACnB,cAAc,EAAE,cAAc,CAC5B,eAAe,EACf,OAAO,IAAI,EACX,OAAO,eAAe,EACtB,OAAO,gBAAgB,EACvB,OAAO,sBAAsB,CAC9B,CAAC;KACH;CACF;AAYD,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,QAAQ,CAAC,OAAO,IAAI,CAAC;IAChE,MAAM,wCAA8C;IACpD,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,SAAS,CAAM;IAEvB,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU;IActD,YAAY;IAkDZ,YAAY;IA8BZ,kBAAkB;IA+ClB,MAAM;IAsNN,eAAe;IAuBf,SAAS;IAuBT,oBAAoB;IAuBpB,kBAAkB;IAuBlB,mBAAmB;IAuBnB,mBAAmB;IAgDnB,QAAQ;IAcd;;;OAGG;IACH,OAAO,CAAC,QAAQ;CA8CjB"}
1
+ {"version":3,"file":"http.request.flow.d.ts","sourceRoot":"","sources":["../../../src/scope/flows/http.request.flow.ts"],"names":[],"mappings":"AAYA,OAAO,EAIL,QAAQ,EAGR,eAAe,EACf,gBAAgB,EAShB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,cAAc,CAAC;AAGtB,QAAA,MAAM,IAAI;;;;;CA8B2B,CAAC;AAEtC,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAIjC,CAAC;AAEH,QAAA,MAAM,IAAI,EAAG,cAAuB,CAAC;AAGrC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,WAAW;QACnB,cAAc,EAAE,cAAc,CAC5B,eAAe,EACf,OAAO,IAAI,EACX,OAAO,eAAe,EACtB,OAAO,gBAAgB,EACvB,OAAO,sBAAsB,CAC9B,CAAC;KACH;CACF;AAYD,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,QAAQ,CAAC,OAAO,IAAI,CAAC;IAChE,MAAM,wCAA8C;IACpD,OAAO,CAAC,gBAAgB,CAAK;IAC7B,OAAO,CAAC,SAAS,CAAM;IAEvB,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU;IActD,YAAY;IAkDZ,YAAY;IA8BZ,kBAAkB;IAmDxB;;;;;;;;;;;;;;;OAeG;YACW,yBAAyB;IAwCjC,MAAM;IAsNN,eAAe;IAuBf,SAAS;IAuBT,oBAAoB;IAuBpB,kBAAkB;IAuBlB,mBAAmB;IAuBnB,mBAAmB;IAgDnB,QAAQ;IAcd;;;OAGG;IACH,OAAO,CAAC,QAAQ;CA8CjB"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * Helpers for probing optional peer dependencies that are loaded lazily via
3
+ * `require()` (e.g. `@frontmcp/observability`).
4
+ *
5
+ * A bare `try { require(pkg) } catch { warn("not installed") }` is misleading:
6
+ * `require()` throws for many reasons OTHER than the package being absent — an
7
+ * export-condition or transpile mismatch (a dev runtime such as tsx resolving a
8
+ * package's TS source entry under yarn), a missing transitive peer, or a load-time
9
+ * error in the module itself. In all of those the package IS installed and
10
+ * resolvable, yet the user is told to reinstall it, which never helps (#453).
11
+ */
12
+ /**
13
+ * Outcome of classifying a failed `require()` of an optional dependency.
14
+ */
15
+ export interface OptionalDependencyProbe {
16
+ /**
17
+ * - `not-installed` — the module is genuinely unresolvable (reinstalling helps).
18
+ * - `load-failed` — the module resolves but `require()` threw (a load / export
19
+ * condition / transpile / peer mismatch; reinstalling will NOT help).
20
+ */
21
+ status: 'not-installed' | 'load-failed';
22
+ /** Path returned by the runtime resolver, present only when `load-failed`. */
23
+ resolvedPath?: string;
24
+ /** Message from the original `require()` error. */
25
+ error: string;
26
+ }
27
+ /**
28
+ * Classify why `require(moduleName)` failed by re-probing with the SAME resolver
29
+ * the runtime uses, so the verdict matches reality instead of always blaming a
30
+ * missing install.
31
+ *
32
+ * @param moduleName - the specifier that failed to `require()`.
33
+ * @param loadError - the error thrown by the failed `require()`.
34
+ * @param resolve - resolver to probe existence with. Pass `require.resolve` from
35
+ * the caller; kept injectable so this stays unit-testable and ESM-safe (the
36
+ * helper module itself never references `require`).
37
+ */
38
+ export declare function probeOptionalDependency(moduleName: string, loadError: unknown, resolve: (id: string) => string): OptionalDependencyProbe;
39
+ //# sourceMappingURL=optional-dependency.util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optional-dependency.util.d.ts","sourceRoot":"","sources":["../../src/scope/optional-dependency.util.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;;OAIG;IACH,MAAM,EAAE,eAAe,GAAG,aAAa,CAAC;IACxC,8EAA8E;IAC9E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,OAAO,EAClB,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,GAC9B,uBAAuB,CAWzB"}
@@ -3,6 +3,7 @@ import { type GuardManager } from '@frontmcp/guard';
3
3
  import { type EventStore } from '@frontmcp/protocol';
4
4
  import AgentRegistry from '../agent/agent.registry';
5
5
  import AppRegistry from '../app/app.registry';
6
+ import { AuthUiRegistry } from '../auth/auth-ui';
6
7
  import { AuthRegistry } from '../auth/auth.registry';
7
8
  import { type ChannelNotificationService } from '../channel/channel-notification.service';
8
9
  import type ChannelRegistry from '../channel/channel.registry';
@@ -44,6 +45,7 @@ export declare class Scope extends ScopeEntry {
44
45
  notificationService: NotificationService;
45
46
  haManager?: HaManager;
46
47
  private toolUIRegistry;
48
+ private authUiRegistry?;
47
49
  readonly entryPath: string;
48
50
  readonly routeBase: string;
49
51
  readonly orchestrated: boolean;
@@ -99,6 +101,20 @@ export declare class Scope extends ScopeEntry {
99
101
  * Extracted from initialize() for readability.
100
102
  */
101
103
  private compileUIWidgets;
104
+ /**
105
+ * Build the custom auth-UI registry (#469) PER SCOPE from this scope's resolved
106
+ * auth options (`auth.ui` / `auth.extras`). The parent multi-app scope reads
107
+ * the top-level `@FrontMcp({ auth })`, and each `splitByApp` scope reads its own
108
+ * `@App({ auth })` (resolved into `this.metadata.auth` by `normalizeAppScope`),
109
+ * so a split app gets ITS OWN auth UI.
110
+ *
111
+ * No-op (leaves {@link authUiRegistry} undefined) when neither is declared, so
112
+ * the OAuth flows serve the built-in HTML pages exactly as before. When custom
113
+ * slots ARE declared, their SSR + hydration bundles are pre-built at startup
114
+ * (mirroring `compileUIWidgets`); build failures are logged + cached, never
115
+ * thrown, so a broken component degrades to the built-in page.
116
+ */
117
+ private buildAuthUiRegistry;
102
118
  private formatScopeSummary;
103
119
  private get defaultScopeProviders();
104
120
  get auth(): FrontMcpAuth;
@@ -108,6 +124,7 @@ export declare class Scope extends ScopeEntry {
108
124
  get apps(): AppRegistry;
109
125
  get tools(): ToolRegistry;
110
126
  get toolUI(): ToolUIRegistry;
127
+ get authUi(): AuthUiRegistry | undefined;
111
128
  get resources(): ResourceRegistry;
112
129
  get prompts(): PromptRegistry;
113
130
  get agents(): AgentRegistry;
@@ -1 +1 @@
1
- {"version":3,"file":"scope.instance.d.ts","sourceRoot":"","sources":["../../src/scope/scope.instance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scope.instance.d.ts","sourceRoot":"","sources":["../../src/scope/scope.instance.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAsB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAGrD,OAAO,aAAa,MAAM,yBAAyB,CAAC;AAEpD,OAAO,WAAW,MAAM,qBAAqB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,KAAK,0BAA0B,EAAE,MAAM,yCAAyC,CAAC;AAE1F,OAAO,KAAK,eAAe,MAAM,6BAA6B,CAAC;AAC/D,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,qCAAqC,CAAC;AAI3E,OAAO,EACL,cAAc,EACd,cAAc,EAEd,UAAU,EAEV,KAAK,WAAW,EAChB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,WAAW,EAChB,KAAK,KAAK,EACV,KAAK,IAAI,EACV,MAAM,WAAW,CAAC;AAQnB,OAAO,EAA0B,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAK/E,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAIlD,OAAO,KAAK,WAAW,MAAM,qBAAqB,CAAC;AAInD,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,cAAwC,MAAM,2BAA2B,CAAC;AACjF,OAAO,cAAc,MAAM,2BAA2B,CAAC;AACvD,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;AAC7D,OAAO,gBAAgB,MAAM,+BAA+B,CAAC;AAI7D,OAAO,EAA2B,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEhF,OAAO,aAAa,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAKL,YAAY,EAKZ,KAAK,SAAS,EACf,MAAM,SAAS,CAAC;AAEjB,OAAO,YAAY,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EAA6C,cAAc,EAAE,MAAM,YAAY,CAAC;AAGvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,KAAK,gBAAgB,MAAM,+BAA+B,CAAC;AAIlE,qBAAa,KAAM,SAAQ,UAAU;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmB;IACnD,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAEhC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmB;IAClD,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,cAAc,CAAmB;IACzC,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,WAAW,CAAgB;IACnC,OAAO,CAAC,YAAY,CAAC,CAAiB;IAEtC,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,mBAAmB,EAAE,mBAAmB,CAAC;IACjC,SAAS,CAAC,EAAE,SAAS,CAAC;IAC9B,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,cAAc,CAAC,CAAiB;IACxC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAS;IAEvC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAEhC,6EAA6E;IAC7E,OAAO,CAAC,iBAAiB,CAAC,CAAmB;IAC7C,qFAAqF;IACrF,OAAO,CAAC,sBAAsB,CAAC,CAAqD;IAEpF,iEAAiE;IACjE,OAAO,CAAC,UAAU,CAAC,CAAY;IAC/B,8EAA8E;IAC9E,OAAO,CAAC,eAAe,CAAC,CAAqD;IAE7E,4EAA4E;IAC5E,OAAO,CAAC,aAAa,CAAC,CAAe;IAErC,wEAAwE;IACxE,OAAO,CAAC,aAAa,CAAC,CAAsB;IAE5C,yDAAyD;IACzD,OAAO,CAAC,WAAW,CAAC,CAAa;IAEjC,uDAAuD;IACvD,OAAO,CAAC,UAAU,CAAC,CAAc;IACjC,OAAO,CAAC,eAAe,CAAC,CAAmB;IAC3C,OAAO,CAAC,oBAAoB,CAAC,CAAsB;IACnD,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,mBAAmB,CAAC,CAAqB;IAEjD,4EAA4E;IAC5E,OAAO,CAAC,iBAAiB,CAAC,CAAe;IAEzC,oEAAoE;IACpE,OAAO,CAAC,kBAAkB,CAAC,CAA6C;IACxE,OAAO,CAAC,0BAA0B,CAAC,CAAqD;IACxF,OAAO,CAAC,wBAAwB,CAAC,CAAmD;IAEpF,gCAAgC;IAChC,OAAO,CAAC,cAAc,CAAC,CAAkB;IACzC,OAAO,CAAC,2BAA2B,CAAC,CAA6B;IACjE,OAAO,CAAC,gBAAgB,CAAC,CAAkB;IAC3C,OAAO,CAAC,gBAAgB,CAAC,CAAsB;IAE/C,kEAAkE;IAClE,OAAO,CAAC,cAAc,CAAC,CAAgB;IAEvC,4EAA4E;IAC5E,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;gBAEtB,GAAG,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB;cAsC/C,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAqvB3C;;;;;;;OAOG;YACW,qBAAqB;IAwBnC;;;OAGG;YACW,gBAAgB;IAsH9B;;;;;;;;;;;;OAYG;YACW,mBAAmB;IAkDjC,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,KAAK,qBAAqB,GA+BhC;IAED,IAAI,IAAI,IAAI,YAAY,CAEvB;IAED,IAAI,KAAK,IAAI,YAAY,CAExB;IAED,IAAI,aAAa,IAAI,YAAY,CAEhC;IAED,IAAI,SAAS,qBAEZ;IAED,IAAI,IAAI,IAAI,WAAW,CAEtB;IAED,IAAI,KAAK,IAAI,YAAY,CAExB;IAED,IAAI,MAAM,IAAI,cAAc,CAE3B;IAED,IAAI,MAAM,IAAI,cAAc,GAAG,SAAS,CAEvC;IAED,IAAI,SAAS,IAAI,gBAAgB,CAEhC;IAED,IAAI,OAAO,IAAI,cAAc,CAE5B;IAED,IAAI,MAAM,IAAI,aAAa,CAE1B;IAED,IAAI,MAAM,IAAI,aAAa,CAE1B;IAED,IAAI,IAAI,IAAI,WAAW,GAAG,SAAS,CAElC;IAED,IAAI,SAAS,IAAI,gBAAgB,GAAG,SAAS,CAE5C;IAED,IAAI,QAAQ,IAAI,eAAe,GAAG,SAAS,CAE1C;IAED,IAAI,oBAAoB,IAAI,0BAA0B,GAAG,SAAS,CAEjE;IAED,IAAI,eAAe,IAAI,eAAe,GAAG,SAAS,CAEjD;IAED;;;;;;;;;;OAUG;IACH,IAAI,YAAY,IAAI,mBAAmB,GAAG,SAAS,CAElD;IAED,IAAI,OAAO,IAAI,cAAc,GAAG,SAAS,CAExC;IAED,IAAI,aAAa,IAAI,mBAAmB,CAEvC;IAED;;;;;;;;;OASG;IACH,IAAI,gBAAgB,IAAI,gBAAgB,GAAG,SAAS,CAEnD;IAED;;;OAGG;IACH,IAAI,SAAS,IAAI,SAAS,GAAG,SAAS,CAErC;IAED;;;OAGG;IACH,IAAI,KAAK,IAAI,YAAY,GAAG,SAAS,CAEpC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,IAAI,UAAU,IAAI,UAAU,GAAG,SAAS,CAEvC;IAED;;;OAGG;IACH,IAAI,gBAAgB,IAAI,YAAY,GAAG,SAAS,CAE/C;IAED;;;OAGG;IACH,IAAI,aAAa,IAAI,aAAa,GAAG,SAAS,CAE7C;IAED;;;;OAIG;IACH,IAAI,iBAAiB,IAAI,OAAO,gBAAgB,EAAE,iBAAiB,GAAG,SAAS,CAE9E;IAED;;;OAGG;IACH,IAAI,yBAAyB,IAAI,OAAO,gBAAgB,EAAE,yBAAyB,GAAG,SAAS,CAE9F;IAED;;;OAGG;IACH,IAAI,uBAAuB,IAAI,OAAO,gBAAgB,EAAE,uBAAuB,GAAG,SAAS,CAE1F;IAED;;;;OAIG;IACH,qBAAqB,IAAI,MAAM,EAAE;IA6JjC;;;OAGG;IACH,OAAO,CAAC,iCAAiC;IAkBzC;;;OAGG;IACH,IAAI,UAAU;;;;;;kBAEb;IAED,aAAa,CAAC,GAAG,KAAK,EAAE,QAAQ,EAAE;IAIlC,OAAO,CAAC,IAAI,SAAS,QAAQ,EAC3B,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,EACxB,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GACtB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAIpC,gBAAgB,CAAC,IAAI,SAAS,QAAQ,EAC1C,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,EACxB,IAAI,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,GACtB,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAQ9B;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB/B;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAM/B"}
@@ -1 +1 @@
1
- {"version":3,"file":"scope.utils.d.ts","sourceRoot":"","sources":["../../src/scope/scope.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,cAAc,CAAC;AAGvD,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAE7B,KAAK,WAAW,EACjB,MAAM,WAAW,CAAC;AAInB;;;;;GAKG;AAEH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,sBAAsB,GAAG,wBAAwB,GAC1D,WAAW,CAuBb;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,sBAAsB,GAAG,WAAW,CAU7G;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,GAAG,KAAK,EAAE,CAO5D"}
1
+ {"version":3,"file":"scope.utils.d.ts","sourceRoot":"","sources":["../../src/scope/scope.utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,KAAK,EAAE,MAAM,cAAc,CAAC;AAGvD,OAAO,EAGL,KAAK,OAAO,EACZ,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAE7B,KAAK,WAAW,EACjB,MAAM,WAAW,CAAC;AAInB;;;;;GAKG;AAEH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,sBAAsB,GAAG,wBAAwB,GAC1D,WAAW,CA2Bb;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,sBAAsB,GAAG,WAAW,CAU7G;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,WAAW,GAAG,KAAK,EAAE,CAO5D"}
@@ -1 +1 @@
1
- {"version":3,"file":"express.host.adapter.d.ts","sourceRoot":"","sources":["../../../src/server/adapters/express.host.adapter.ts"],"names":[],"mappings":"AAIA,OAAO,OAAO,MAAM,SAAS,CAAC;AAI9B,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,UAAU,EAEf,KAAK,oBAAoB,EAE1B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAGlF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,QAAQ,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACnC;AAED,qBAAa,kBAAmB,SAAQ,iBAAiB;IACvD,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,CAAC,EAAE,yBAAyB;IAkF/C,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB;IAI7E,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB;IAInE,eAAe,CAAC,OAAO,EAAE,oBAAoB,IACnC,KAAK,OAAO,CAAC,OAAO,EAAE,KAAK,OAAO,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,YAAY;IAQjF;;;;OAIG;IACH,OAAO,IAAI,IAAI;IAMf;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,WAAW;IAK3B,KAAK,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;YAqCrD,kBAAkB;CASjC"}
1
+ {"version":3,"file":"express.host.adapter.d.ts","sourceRoot":"","sources":["../../../src/server/adapters/express.host.adapter.ts"],"names":[],"mappings":"AAIA,OAAO,OAAO,MAAM,SAAS,CAAC;AAI9B,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,UAAU,EAEf,KAAK,oBAAoB,EAE1B,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAGlF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD;;;;GAIG;AACH,eAAO,MAAM,0BAA0B,QAAQ,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;;;OAIG;IACH,IAAI,CAAC,EAAE,WAAW,CAAC;IAEnB;;;OAGG;IACH,QAAQ,CAAC,EAAE,eAAe,CAAC;IAE3B;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAE5B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACnC;AAED,qBAAa,kBAAmB,SAAQ,iBAAiB;IACvD,OAAO,CAAC,GAAG,CAAa;IACxB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,QAAQ,CAAS;gBAEb,OAAO,CAAC,EAAE,yBAAyB;IAmG/C,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB;IAI7E,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB;IAInE,eAAe,CAAC,OAAO,EAAE,oBAAoB,IACnC,KAAK,OAAO,CAAC,OAAO,EAAE,KAAK,OAAO,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,YAAY;IAQjF;;;;OAIG;IACH,OAAO,IAAI,IAAI;IAMf;;;OAGG;IACH,UAAU,IAAI,OAAO,CAAC,WAAW;IAK3B,KAAK,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM;YAqCrD,kBAAkB;CASjC"}
@@ -0,0 +1,81 @@
1
+ import { type FrontMcpLogger, type FrontMcpServer, type HttpRouteConfig, type ServerRequest, type ServerRequestHandler } from '../common';
2
+ /** Shape of the `session:verify` flow output we care about here. */
3
+ export type VerifyResult = {
4
+ kind: 'authorized';
5
+ authorization: unknown;
6
+ } | {
7
+ kind: 'unauthorized';
8
+ prmMetadataHeader: string;
9
+ } | {
10
+ kind: 'forbidden';
11
+ prmMetadataHeader: string;
12
+ };
13
+ /**
14
+ * Dispatch the MCP `session:verify` flow for a request. The scope passes a thin
15
+ * closure over its generic `runFlow` so this helper stays decoupled from the
16
+ * scope's flow-name typing.
17
+ */
18
+ export type VerifySessionFn = (request: ServerRequest) => Promise<VerifyResult | undefined>;
19
+ export interface RegisterCustomHttpRoutesArgs {
20
+ /** Custom routes from `http.routes`. */
21
+ routes: HttpRouteConfig[] | undefined;
22
+ /** Active host server to register routes on. */
23
+ server: FrontMcpServer;
24
+ /** Runs `session:verify` for `auth: true` routes. */
25
+ verifySession: VerifySessionFn;
26
+ /** Resolved gateway entry path (e.g. `''` or `'/mcp'`). */
27
+ entryPath: string;
28
+ /** Per-app / per-scope route base (e.g. `''` or `'/billing'`). */
29
+ routeBase: string;
30
+ logger: FrontMcpLogger;
31
+ }
32
+ /**
33
+ * Error thrown when a custom `http.routes` path collides with a FrontMCP
34
+ * reserved surface. Fail-fast at startup rather than silently shadowing (or
35
+ * being shadowed by) the MCP endpoint / discovery / health surfaces.
36
+ */
37
+ export declare class ReservedRouteCollisionError extends Error {
38
+ readonly method: string;
39
+ readonly path: string;
40
+ readonly reserved: string;
41
+ constructor(method: string, path: string, reserved: string);
42
+ }
43
+ /**
44
+ * Build the exact-match + prefix reserved-path set for the resolved MCP base.
45
+ *
46
+ * - Exact matches: the MCP base itself, `<base>/sse`, `<base>/message`,
47
+ * `/health`, `/metrics`.
48
+ * - Prefix matches: `/oauth`, `/.well-known` (any sub-path is reserved).
49
+ */
50
+ export declare function computeReservedPaths(entryPath: string, routeBase: string): {
51
+ exact: Set<string>;
52
+ prefixes: string[];
53
+ };
54
+ /**
55
+ * Throw {@link ReservedRouteCollisionError} when `path` collides with a
56
+ * reserved FrontMCP surface. Express path params (`:id`) and wildcards in the
57
+ * *custom* path are compared literally — only the static prefix matters for the
58
+ * reserved-surface check, so a route like `/files/:id` never collides unless it
59
+ * is literally under `/oauth`, `/.well-known`, etc.
60
+ */
61
+ export declare function assertNotReserved(method: string, path: string, reserved: {
62
+ exact: Set<string>;
63
+ prefixes: string[];
64
+ }): void;
65
+ /**
66
+ * Wrap a user route handler in the MCP `session:verify` auth flow. On
67
+ * unauthorized/forbidden the request is short-circuited with a 401/403 carrying
68
+ * the `WWW-Authenticate` header (mirroring `http.request.flow.ts`); on success
69
+ * the verified authorization is attached to `req.authSession` (and the internal
70
+ * auth token) before the user handler runs.
71
+ */
72
+ export declare function wrapWithAuth(handler: ServerRequestHandler, verifySession: VerifySessionFn, logger: FrontMcpLogger): ServerRequestHandler;
73
+ /**
74
+ * Register all configured custom HTTP routes on the active server.
75
+ *
76
+ * No-op when `routes` is empty/undefined. Throws {@link ReservedRouteCollisionError}
77
+ * (fail-fast) on the first path that collides with a reserved surface — so a
78
+ * misconfiguration aborts boot instead of silently mis-mounting.
79
+ */
80
+ export declare function registerCustomHttpRoutes(args: RegisterCustomHttpRoutesArgs): void;
81
+ //# sourceMappingURL=custom-routes.helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-routes.helper.d.ts","sourceRoot":"","sources":["../../src/server/custom-routes.helper.ts"],"names":[],"mappings":"AAgBA,OAAO,EAML,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EAE1B,MAAM,WAAW,CAAC;AAGnB,oEAAoE;AACpE,MAAM,MAAM,YAAY,GACpB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,aAAa,EAAE,OAAO,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,GACnD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAA;CAAE,CAAC;AAErD;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,EAAE,aAAa,KAAK,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAAC;AAE5F,MAAM,WAAW,4BAA4B;IAC3C,wCAAwC;IACxC,MAAM,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC;IACtC,gDAAgD;IAChD,MAAM,EAAE,cAAc,CAAC;IACvB,qDAAqD;IACrD,aAAa,EAAE,eAAe,CAAC;IAC/B,2DAA2D;IAC3D,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED;;;;GAIG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;aAElC,MAAM,EAAE,MAAM;aACd,IAAI,EAAE,MAAM;aACZ,QAAQ,EAAE,MAAM;gBAFhB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM;CASnC;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAcrH;AAQD;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE;IAAE,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GACnD,IAAI,CAYN;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAC1B,OAAO,EAAE,oBAAoB,EAC7B,aAAa,EAAE,eAAe,EAC9B,MAAM,EAAE,cAAc,GACrB,oBAAoB,CAwCtB;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,4BAA4B,GAAG,IAAI,CAajF"}
@@ -22,8 +22,8 @@ declare const outputSchema: import("@frontmcp/lazy-zod").ZodObject<{
22
22
  secure: import("@frontmcp/lazy-zod").ZodOptional<import("@frontmcp/lazy-zod").ZodBoolean>;
23
23
  sameSite: import("@frontmcp/lazy-zod").ZodOptional<import("@frontmcp/lazy-zod").ZodEnum<{
24
24
  strict: "strict";
25
- lax: "lax";
26
25
  none: "none";
26
+ lax: "lax";
27
27
  }>>;
28
28
  maxAge: import("@frontmcp/lazy-zod").ZodOptional<import("@frontmcp/lazy-zod").ZodNumber>;
29
29
  expires: import("@frontmcp/lazy-zod").ZodOptional<import("@frontmcp/lazy-zod").ZodDate>;
@@ -22,8 +22,8 @@ declare const outputSchema: import("@frontmcp/lazy-zod").ZodObject<{
22
22
  secure: import("@frontmcp/lazy-zod").ZodOptional<import("@frontmcp/lazy-zod").ZodBoolean>;
23
23
  sameSite: import("@frontmcp/lazy-zod").ZodOptional<import("@frontmcp/lazy-zod").ZodEnum<{
24
24
  strict: "strict";
25
- lax: "lax";
26
25
  none: "none";
26
+ lax: "lax";
27
27
  }>>;
28
28
  maxAge: import("@frontmcp/lazy-zod").ZodOptional<import("@frontmcp/lazy-zod").ZodNumber>;
29
29
  expires: import("@frontmcp/lazy-zod").ZodOptional<import("@frontmcp/lazy-zod").ZodDate>;
@@ -35,8 +35,8 @@ declare const outputSchema: import("@frontmcp/lazy-zod").ZodObject<{
35
35
  secure: import("@frontmcp/lazy-zod").ZodOptional<import("@frontmcp/lazy-zod").ZodBoolean>;
36
36
  sameSite: import("@frontmcp/lazy-zod").ZodOptional<import("@frontmcp/lazy-zod").ZodEnum<{
37
37
  strict: "strict";
38
- lax: "lax";
39
38
  none: "none";
39
+ lax: "lax";
40
40
  }>>;
41
41
  maxAge: import("@frontmcp/lazy-zod").ZodOptional<import("@frontmcp/lazy-zod").ZodNumber>;
42
42
  expires: import("@frontmcp/lazy-zod").ZodOptional<import("@frontmcp/lazy-zod").ZodDate>;
@@ -79,6 +79,23 @@ export default class SkillsApiFlow extends FlowBase<typeof name> {
79
79
  * provider via the scope DI container.
80
80
  */
81
81
  private tryGetSemanticProvider;
82
+ /**
83
+ * Best-effort AuthInfo for HTTP authorities evaluation.
84
+ *
85
+ * The skills HTTP auth validator (api-key / bearer) is a binary gate and does
86
+ * not surface claims, so authority-gated skills are evaluated fail-closed on
87
+ * the HTTP surface. When the server runs in transparent/auth mode the request
88
+ * MAY carry a verified `authSession` with `user` claims; we forward those so a
89
+ * JWT bearer with roles/permissions still evaluates correctly. Otherwise an
90
+ * empty AuthInfo is returned, which denies any role/permission-gated skill.
91
+ */
92
+ private httpAuthInfo;
93
+ /**
94
+ * Filter search results (whose projected metadata lacks `authorities`) down
95
+ * to skills the caller can discover, by resolving the live skill entry to
96
+ * read its declared authorities. No-op when no engine is configured.
97
+ */
98
+ private filterHttpResultsByAuthorities;
82
99
  private handleListSkills;
83
100
  }
84
101
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"skills-api.flow.d.ts","sourceRoot":"","sources":["../../../../src/skill/flows/http/skills-api.flow.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,QAAQ,EAQR,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAC;AASzB,QAAA,MAAM,WAAW;;;;gCAAkB,CAAC;AAEpC,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;gCAWf,CAAC;AAEH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;gCAAiB,CAAC;AAEpC,QAAA,MAAM,IAAI;;;CAG2B,CAAC;AAEtC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,WAAW;QACnB,iBAAiB,EAAE,cAAc,CAC/B,aAAa,EACb,OAAO,IAAI,EACX,OAAO,WAAW,EAClB,OAAO,YAAY,EACnB,OAAO,WAAW,CACnB,CAAC;KACH;CACF;AAED,QAAA,MAAM,IAAI,EAAG,iBAA0B,CAAC;AAGxC;;;;;;;;GAQG;AAWH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,QAAQ,CAAC,OAAO,IAAI,CAAC;IAC9D,MAAM,2CAA2C;IAEjD;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO;IAsBhE,YAAY;IAsCZ,YAAY;IA+FZ,aAAa;YA2CL,cAAc;YA8Dd,kBAAkB;IAqHhC;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;YAoChB,gBAAgB;CA0D/B"}
1
+ {"version":3,"file":"skills-api.flow.d.ts","sourceRoot":"","sources":["../../../../src/skill/flows/http/skills-api.flow.ts"],"names":[],"mappings":"AASA,OAAO,EAEL,QAAQ,EAQR,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,aAAa,EACnB,MAAM,iBAAiB,CAAC;AAezB,QAAA,MAAM,WAAW;;;;gCAAkB,CAAC;AAEpC,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;gCAWf,CAAC;AAEH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;gCAAiB,CAAC;AAEpC,QAAA,MAAM,IAAI;;;CAG2B,CAAC;AAEtC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,WAAW;QACnB,iBAAiB,EAAE,cAAc,CAC/B,aAAa,EACb,OAAO,IAAI,EACX,OAAO,WAAW,EAClB,OAAO,YAAY,EACnB,OAAO,WAAW,CACnB,CAAC;KACH;CACF;AAED,QAAA,MAAM,IAAI,EAAG,iBAA0B,CAAC;AAGxC;;;;;;;;GAQG;AAWH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,QAAQ,CAAC,OAAO,IAAI,CAAC;IAC9D,MAAM,2CAA2C;IAEjD;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,UAAU,GAAG,OAAO;IAsBhE,YAAY;IAsCZ,YAAY;IA+FZ,aAAa;YA2CL,cAAc;YAuEd,kBAAkB;IA0HhC;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAoC9B;;;;;;;;;OASG;IACH,OAAO,CAAC,YAAY;IAMpB;;;;OAIG;YACW,8BAA8B;YAO9B,gBAAgB;CA2D/B"}
@@ -158,6 +158,13 @@ export default class LoadSkillFlow extends FlowBase<typeof name> {
158
158
  logger: import("../../common").FrontMcpLogger;
159
159
  parseInput(): Promise<void>;
160
160
  loadSkills(): Promise<void>;
161
+ /**
162
+ * Resolve the registered skill entry that backs a loaded skill, so its
163
+ * `authorities` metadata can be evaluated. Matches by the requested id, the
164
+ * resolved content id, and finally by display name — covering id/name/
165
+ * qualified-name lookups the registry's `loadSkill` accepts.
166
+ */
167
+ private findSkillEntry;
161
168
  /**
162
169
  * Activate skill sessions for tool authorization enforcement.
163
170
  * This stage only runs if activateSession is true in the input.
@@ -1 +1 @@
1
- {"version":3,"file":"load-skill.flow.d.ts","sourceRoot":"","sources":["../../../src/skill/flows/load-skill.flow.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AAEvC,OAAO,EAAQ,QAAQ,EAA8B,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAG/F,OAAO,KAAK,EAAE,qBAAqB,EAAmB,MAAM,gCAAgC,CAAC;AAE7F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAIlE,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;gCAoBf,CAAC;AA4CH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAShB,CAAC;AAMH,UAAU,wBAAwB;IAChC,UAAU,EAAE,eAAe,CAAC;IAC5B,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;CAC1C;AAED,QAAA,MAAM,WAAW;;;;;;;;;;;;iBAKwB,CAAC,CAAC,OAAO,CAAC,wBAAwB,EAAE,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAGxF,CAAC;AAEH,QAAA,MAAM,IAAI;;;;CAI2B,CAAC;AAEtC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,WAAW;QACnB,aAAa,EAAE,cAAc,CAC3B,aAAa,EACb,OAAO,IAAI,EACX,OAAO,WAAW,EAClB,OAAO,YAAY,EACnB,OAAO,WAAW,CACnB,CAAC;KACH;CACF;AAED,QAAA,MAAM,IAAI,EAAG,aAAsB,CAAC;AAGpC;;;;;;;;;;;;;;;;GAgBG;AAQH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,QAAQ,CAAC,OAAO,IAAI,CAAC;IAC9D,MAAM,wCAA2C;IAG3C,UAAU;IAkBV,UAAU;IA2BhB;;;OAGG;IAEG,gBAAgB;IA+ChB,QAAQ;CAyJf"}
1
+ {"version":3,"file":"load-skill.flow.d.ts","sourceRoot":"","sources":["../../../src/skill/flows/load-skill.flow.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,oBAAoB,CAAC;AAEvC,OAAO,EAAQ,QAAQ,EAA8B,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAG/F,OAAO,KAAK,EAAE,qBAAqB,EAAmB,MAAM,gCAAgC,CAAC;AAG7F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAIlE,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;gCAoBf,CAAC;AA4CH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAShB,CAAC;AAMH,UAAU,wBAAwB;IAChC,UAAU,EAAE,eAAe,CAAC;IAC5B,gBAAgB,CAAC,EAAE,qBAAqB,CAAC;CAC1C;AAED,QAAA,MAAM,WAAW;;;;;;;;;;;;iBAKwB,CAAC,CAAC,OAAO,CAAC,wBAAwB,EAAE,GAAG,SAAS,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAGxF,CAAC;AAEH,QAAA,MAAM,IAAI;;;;CAI2B,CAAC;AAEtC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,WAAW;QACnB,aAAa,EAAE,cAAc,CAC3B,aAAa,EACb,OAAO,IAAI,EACX,OAAO,WAAW,EAClB,OAAO,YAAY,EACnB,OAAO,WAAW,CACnB,CAAC;KACH;CACF;AAED,QAAA,MAAM,IAAI,EAAG,aAAsB,CAAC;AAGpC;;;;;;;;;;;;;;;;GAgBG;AAQH,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,QAAQ,CAAC,OAAO,IAAI,CAAC;IAC9D,MAAM,wCAA2C;IAG3C,UAAU;IAkBV,UAAU;IAwChB;;;;;OAKG;IACH,OAAO,CAAC,cAAc;IAWtB;;;OAGG;IAEG,gBAAgB;IA+ChB,QAAQ;CAyJf"}
@@ -95,6 +95,19 @@ export default class SearchSkillsFlow extends FlowBase<typeof name> {
95
95
  parseInput(): Promise<void>;
96
96
  search(): Promise<void>;
97
97
  finalize(): Promise<void>;
98
+ /**
99
+ * Remove search results the caller is not authorized to discover.
100
+ *
101
+ * Search-result metadata is projected from `SkillContent` and does NOT carry
102
+ * the `authorities` field, so we resolve the live skill entry (by id/name)
103
+ * to read its declared authorities, then evaluate via the scope's engine.
104
+ * No-op when no authorities engine is configured; results unchanged.
105
+ *
106
+ * Evaluated WITHOUT request input — `fromInput`/ReBAC-by-input policies can't
107
+ * be evaluated at search time and will be treated as a denial. Use
108
+ * role/permission/claims-based authorities for discoverable skills.
109
+ */
110
+ private filterResultsByAuthorities;
98
111
  }
99
112
  export {};
100
113
  //# sourceMappingURL=search-skills.flow.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"search-skills.flow.d.ts","sourceRoot":"","sources":["../../../src/skill/flows/search-skills.flow.ts"],"names":[],"mappings":"AAIA,OAAO,EAAQ,QAAQ,EAAgD,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAwCjH,QAAA,MAAM,WAAW;;;;;;;;;;;;gCAYf,CAAC;AAGH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;gCAmBhB,CAAC;AAKH,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAUf,CAAC;AAEH,QAAA,MAAM,IAAI;;;;CAI2B,CAAC;AAEtC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,WAAW;QACnB,eAAe,EAAE,cAAc,CAC7B,gBAAgB,EAChB,OAAO,IAAI,EACX,OAAO,WAAW,EAClB,OAAO,YAAY,EACnB,OAAO,WAAW,CACnB,CAAC;KACH;CACF;AAED,QAAA,MAAM,IAAI,EAAG,eAAwB,CAAC;AAGtC;;;;;;;;;;;;;;;;;;GAkBG;AAQH,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,QAAQ,CAAC,OAAO,IAAI,CAAC;IACjE,MAAM,wCAA8C;IAG9C,UAAU;IAyBV,MAAM;IAyCN,QAAQ;CA6Df"}
1
+ {"version":3,"file":"search-skills.flow.d.ts","sourceRoot":"","sources":["../../../src/skill/flows/search-skills.flow.ts"],"names":[],"mappings":"AAIA,OAAO,EAAQ,QAAQ,EAAgD,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAyCjH,QAAA,MAAM,WAAW;;;;;;;;;;;;gCAYf,CAAC;AAGH,QAAA,MAAM,YAAY;;;;;;;;;;;;;;;;;;gCAmBhB,CAAC;AAKH,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAUf,CAAC;AAEH,QAAA,MAAM,IAAI;;;;CAI2B,CAAC;AAEtC,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,WAAW;QACnB,eAAe,EAAE,cAAc,CAC7B,gBAAgB,EAChB,OAAO,IAAI,EACX,OAAO,WAAW,EAClB,OAAO,YAAY,EACnB,OAAO,WAAW,CACnB,CAAC;KACH;CACF;AAED,QAAA,MAAM,IAAI,EAAG,eAAwB,CAAC;AAGtC;;;;;;;;;;;;;;;;;;GAkBG;AAQH,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,QAAQ,CAAC,OAAO,IAAI,CAAC;IACjE,MAAM,wCAA8C;IAG9C,UAAU;IAyBV,MAAM;IAyCN,QAAQ;IAoEd;;;;;;;;;;;OAWG;YACW,0BAA0B;CAOzC"}
package/skill/index.d.ts CHANGED
@@ -72,6 +72,7 @@ export { SearchSkillsFlow, LoadSkillFlow } from './flows';
72
72
  export { SEP_2640_EXTENSION_ID, SEP_2640_META_NAMESPACE, SKILL_ARCHIVE_MIME_TYPES, SKILL_INDEX_MIME_TYPE, SKILL_INDEX_SCHEMA_URI, SKILL_INDEX_URI, SKILL_MD_MIME_TYPE, SKILL_MD_PRIORITY, SKILL_SUPPORT_PRIORITY, SKILL_URI_SCHEME, buildArchiveIndexEntry, buildResourceTemplateIndexEntry, buildSkillIndex, buildSkillMdIndexEntry, buildSkillUri, isSkillIndexUri, isSkillUri, parseSkillUri, parseSkillUriWithKnownSkill, serializeSkillMd, validateSkillPath, type ParsedSkillUri, type SkillIndexDocument, type SkillIndexEntry, type SkillIndexEntryType, } from './sep-2640';
73
73
  export { getSep2640Resources, Sep2640SkillFileResource, Sep2640SkillIndexResource, Sep2640SkillMdResource, } from './sep-2640/resources';
74
74
  export { findAndLoadSkillByPath, findSkillByPath, getSepVisibleSkills, readSkillFileByPath, } from './sep-2640/sep-2640.resource-helpers';
75
+ export { assertSkillAuthorized, filterSkillsByAuthorities, getSkillAuthorities } from './skill-authorities.helper';
75
76
  export { findNestedSkillMd } from './skill-directory-loader';
76
77
  export { SkillSessionManager } from './session/skill-session.manager';
77
78
  export { MemorySkillSessionStore, createSkillSessionStore } from './session/skill-session-store.interface';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skill/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/skill/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"skill-file.resource.d.ts","sourceRoot":"","sources":["../../../../src/skill/sep-2640/resources/skill-file.resource.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,KAAK,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAU5F,KAAK,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD;;;;;;;;;;;GAWG;AACH,qBAOa,wBAAyB,SAAQ,eAAe,CAAC,MAAM,CAAC;IAC7D,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAOtE,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAwBrE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CA+BxE"}
1
+ {"version":3,"file":"skill-file.resource.d.ts","sourceRoot":"","sources":["../../../../src/skill/sep-2640/resources/skill-file.resource.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,KAAK,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAW5F,KAAK,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAEtD;;;;;;;;;;;GAWG;AACH,qBAOa,wBAAyB,SAAQ,eAAe,CAAC,MAAM,CAAC;IAC7D,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAQtE,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAyBrE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAkCxE"}
@@ -1 +1 @@
1
- {"version":3,"file":"skill-index.resource.d.ts","sourceRoot":"","sources":["../../../../src/skill/sep-2640/resources/skill-index.resource.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAK7D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBASa,yBAA0B,SAAQ,eAAe;IACtD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAkDxD"}
1
+ {"version":3,"file":"skill-index.resource.d.ts","sourceRoot":"","sources":["../../../../src/skill/sep-2640/resources/skill-index.resource.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAM7D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBASa,yBAA0B,SAAQ,eAAe;IACtD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAuDxD"}
@@ -1 +1 @@
1
- {"version":3,"file":"skill-md.resource.d.ts","sourceRoot":"","sources":["../../../../src/skill/sep-2640/resources/skill-md.resource.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,KAAK,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAK5F,KAAK,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpC;;;;;;;;;;;GAWG;AACH,qBAQa,sBAAuB,SAAQ,eAAe,CAAC,MAAM,CAAC;IAC3D,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAOtE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAcxE"}
1
+ {"version":3,"file":"skill-md.resource.d.ts","sourceRoot":"","sources":["../../../../src/skill/sep-2640/resources/skill-md.resource.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAG7D,OAAO,EAAE,eAAe,EAAE,KAAK,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAM5F,KAAK,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpC;;;;;;;;;;;GAWG;AACH,qBAQa,sBAAuB,SAAQ,eAAe,CAAC,MAAM,CAAC;IAC3D,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAQtE,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAkBxE"}
@@ -1 +1 @@
1
- {"version":3,"file":"sep-2640.per-skill.d.ts","sourceRoot":"","sources":["../../../src/skill/sep-2640/sep-2640.per-skill.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAE3B,KAAK,UAAU,EACf,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,gBAAgB,MAAM,kCAAkC,CAAC;AAMrE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,UAAU,EACjB,IAAI,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GACnC,sBAAsB,CAgDxB;AAED;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE;IACvD,KAAK,EAAE,UAAU,CAAC;IAClB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1E,GAAG,OAAO,CAAC,IAAI,CAAC,CAkChB"}
1
+ {"version":3,"file":"sep-2640.per-skill.d.ts","sourceRoot":"","sources":["../../../src/skill/sep-2640/sep-2640.per-skill.ts"],"names":[],"mappings":"AAmBA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,sBAAsB,EAE3B,KAAK,UAAU,EACf,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,gBAAgB,MAAM,kCAAkC,CAAC;AAMrE;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,UAAU,EACjB,KAAK,EAAE,UAAU,EACjB,IAAI,GAAE;IAAE,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GACnC,sBAAsB,CA4DxB;AAED;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAAC,OAAO,EAAE;IACvD,KAAK,EAAE,UAAU,CAAC;IAClB,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,MAAM,EAAE,UAAU,EAAE,CAAC;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,mBAAmB,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;CAC1E,GAAG,OAAO,CAAC,IAAI,CAAC,CAkChB"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Skill authorities enforcement helpers.
3
+ *
4
+ * Mirrors the tool/resource enforcement pattern (`checkEntryAuthorities` for
5
+ * single-entry deny and `filterByAuthorities` for discovery filtering) for the
6
+ * `@Skill({ authorities })` metadata field. Because skills are served across
7
+ * several surfaces (MCP `skills/load` + `skills/search` flows, SEP-2640
8
+ * `skill://` resources, and the HTTP `/skills` API), the deny/filter logic is
9
+ * centralised here so every surface enforces the same policy.
10
+ *
11
+ * Behaviour preserved from the rest of the framework:
12
+ * - When no authorities engine + context builder is configured on the scope,
13
+ * every check is a no-op (skills behave exactly as before).
14
+ * - Skills WITHOUT an `authorities` field are never gated.
15
+ *
16
+ * Discovery filtering ({@link filterSkillsByAuthorities}) evaluates policies
17
+ * WITHOUT request input — `fromInput`/ReBAC-by-input conditions cannot be
18
+ * evaluated at list time, mirroring the tool/resource list flows. Skill
19
+ * authorities meant for discovery filtering should be role/permission/claims
20
+ * based.
21
+ */
22
+ import type { ScopeEntry, SkillEntry } from '../common';
23
+ import type { SkillRegistryInterface } from './skill.registry';
24
+ /** Minimal duck-typed surface of the scope we rely on for authorities. */
25
+ type AuthoritiesScopeView = Pick<ScopeEntry, 'authoritiesEngine' | 'authoritiesContextBuilder' | 'authoritiesScopeMapping'>;
26
+ /**
27
+ * Normalise the request AuthInfo so the authorities context builder can read
28
+ * claims from `authInfo.user`.
29
+ *
30
+ * Skills are enforced from surfaces that receive the **raw transport AuthInfo**
31
+ * (`{ token, clientId, scopes, extra: { user, sessionId } }`) — namely the
32
+ * SEP-2640 `skill://` resources and the `skills/*` MCP handlers. The shared
33
+ * `AuthoritiesContextBuilder.build()` reads `authInfo.user`, which the
34
+ * tool/resource FLOWS already receive lifted to the top level. To match that
35
+ * behaviour without changing the shared builder, lift `extra.user` to
36
+ * `authInfo.user` when the top-level `user` is absent. Already-normalised
37
+ * AuthInfo (with a top-level `user`) is returned unchanged.
38
+ */
39
+ export declare function normalizeAuthInfoForAuthorities(authInfo: Record<string, unknown>): Record<string, unknown>;
40
+ /**
41
+ * Read the `authorities` metadata declared on a skill entry, if any.
42
+ * Returns undefined for skills that do not declare authorities.
43
+ */
44
+ export declare function getSkillAuthorities(skill: SkillEntry): import('@frontmcp/auth').AuthoritiesMetadata | undefined;
45
+ /**
46
+ * Assert that the caller is authorized to load/read the given skill.
47
+ *
48
+ * Mirrors `checkEntryAuthorities` for tools/resources: throws
49
+ * `AuthorityDeniedError` (MCP code -32003) when the skill declares
50
+ * `authorities` and the caller's claims do not satisfy the policy.
51
+ *
52
+ * No-op (resolves) when:
53
+ * - no authorities engine/context builder is configured, or
54
+ * - the skill declares no `authorities`.
55
+ *
56
+ * @param scope The active scope (provides engine/context builder/scopeMapping).
57
+ * @param skill The skill entry being loaded/read.
58
+ * @param authInfo Request AuthInfo (claims, roles, permissions).
59
+ * @param input Optional request input for ABAC/ReBAC `fromInput` conditions.
60
+ */
61
+ export declare function assertSkillAuthorized(scope: AuthoritiesScopeView, skill: SkillEntry, authInfo: Record<string, unknown>, input?: Record<string, unknown>): Promise<void>;
62
+ /**
63
+ * Filter a list of skill entries down to those the caller is authorized to
64
+ * discover. Mirrors `filterByAuthorities` for tools/resources.
65
+ *
66
+ * Skills without `authorities` always pass. When no engine/context builder is
67
+ * configured the list is returned unchanged.
68
+ *
69
+ * Evaluated WITHOUT request input: `fromInput`/ReBAC-by-input policies cannot
70
+ * be evaluated during discovery and will therefore be treated as a denial when
71
+ * they reference request input that is absent. Use role/permission/claims-based
72
+ * authorities for skills that must remain discoverable.
73
+ *
74
+ * @param scope The active scope (provides engine/context builder).
75
+ * @param skills The candidate skill entries.
76
+ * @param authInfo Request AuthInfo (claims, roles, permissions).
77
+ * @returns The subset of skills the caller is authorized to see.
78
+ */
79
+ export declare function filterSkillsByAuthorities<T extends SkillEntry>(scope: AuthoritiesScopeView, skills: readonly T[], authInfo: Record<string, unknown>): Promise<T[]>;
80
+ /**
81
+ * Filter discovery results whose projected metadata only carries an id/name
82
+ * (e.g. `skills/search` / `skills/list` MCP responses, or HTTP search results)
83
+ * down to the skills the caller is authorized to see.
84
+ *
85
+ * Search/list metadata is projected from `SkillContent` and does NOT carry the
86
+ * `authorities` field, so we resolve the live skill entry by id/name to read
87
+ * its declared authorities, then evaluate via the scope's engine. No-op when no
88
+ * authorities engine is configured (results returned unchanged), and items
89
+ * whose backing entry can't be resolved are kept (treated as ungated).
90
+ *
91
+ * Evaluated WITHOUT request input — see {@link filterSkillsByAuthorities}.
92
+ */
93
+ export declare function filterSkillMetadataByAuthorities<T extends {
94
+ metadata: {
95
+ id?: string;
96
+ name: string;
97
+ };
98
+ }>(scope: AuthoritiesScopeView, registry: SkillRegistryInterface, results: readonly T[], authInfo: Record<string, unknown>): Promise<T[]>;
99
+ export {};
100
+ //# sourceMappingURL=skill-authorities.helper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skill-authorities.helper.d.ts","sourceRoot":"","sources":["../../src/skill/skill-authorities.helper.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACxD,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D,0EAA0E;AAC1E,KAAK,oBAAoB,GAAG,IAAI,CAC9B,UAAU,EACV,mBAAmB,GAAG,2BAA2B,GAAG,yBAAyB,CAC9E,CAAC;AAEF;;;;;;;;;;;;GAYG;AACH,wBAAgB,+BAA+B,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAM1G;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,gBAAgB,EAAE,mBAAmB,GAAG,SAAS,CAI/G;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,oBAAoB,EAC3B,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAClC,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,yBAAyB,CAAC,CAAC,SAAS,UAAU,EAClE,KAAK,EAAE,oBAAoB,EAC3B,MAAM,EAAE,SAAS,CAAC,EAAE,EACpB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,CAAC,EAAE,CAAC,CAoBd;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,gCAAgC,CAAC,CAAC,SAAS;IAAE,QAAQ,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,EAC1G,KAAK,EAAE,oBAAoB,EAC3B,QAAQ,EAAE,sBAAsB,EAChC,OAAO,EAAE,SAAS,CAAC,EAAE,EACrB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,CAAC,EAAE,CAAC,CAsBd"}
@@ -1 +1 @@
1
- {"version":3,"file":"skill.instance.d.ts","sourceRoot":"","sources":["../../src/skill/skill.instance.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,UAAU,EAEV,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,gBAAgB,MAAM,+BAA+B,CAAC;AAgBlE;;;;;;;GAOG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAC3C,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAEhD,uCAAuC;IACvC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAE3B,0CAA0C;IAC1C,OAAO,CAAC,kBAAkB,CAAC,CAAS;IAEpC,0CAA0C;IAC1C,OAAO,CAAC,aAAa,CAAC,CAAqB;IAE3C,+BAA+B;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAEhC,kCAAkC;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC,6CAA6C;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC,0CAA0C;IAC1C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;gBAEtC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa;cAsBlE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3C;;OAEG;IACM,cAAc,IAAI,MAAM;IAIjC;;;OAGG;IACY,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IA2ClD;;;OAGG;IACH;;OAEG;IACH,UAAU,IAAI,MAAM,GAAG,SAAS;IAUjB,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC;IAsC5C;;OAEG;IACM,WAAW,IAAI,YAAY,EAAE;IAMtC;;OAEG;IACM,YAAY,IAAI,MAAM,EAAE;IAIjC;;OAEG;IACM,OAAO,IAAI,MAAM,EAAE;IAI5B;;OAEG;IACM,QAAQ,IAAI,OAAO;IAI5B;;OAEG;IACM,WAAW,IAAI,MAAM;IAI9B;;OAEG;IACH,IAAI,SAAS,IAAI,gBAAgB,CAEhC;IAED;;OAEG;IACH,UAAU,IAAI,IAAI;IAKlB;;;;;;OAMG;IACH,cAAc,IAAI,YAAY,GAAG,SAAS;CAa3C;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,gBAAgB,EAC3B,KAAK,EAAE,aAAa,GACnB,aAAa,CAEf;AAoFD;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAC7D,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAW7B"}
1
+ {"version":3,"file":"skill.instance.d.ts","sourceRoot":"","sources":["../../src/skill/skill.instance.ts"],"names":[],"mappings":"AAIA,OAAO,EAEL,UAAU,EAEV,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,YAAY,EAClB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,OAAO,KAAK,gBAAgB,MAAM,+BAA+B,CAAC;AAgBlE;;;;;;;GAOG;AACH,qBAAa,aAAc,SAAQ,UAAU;IAC3C,mDAAmD;IACnD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAmB;IAEhD,uCAAuC;IACvC,QAAQ,CAAC,KAAK,EAAE,UAAU,CAAC;IAE3B,0CAA0C;IAC1C,OAAO,CAAC,kBAAkB,CAAC,CAAS;IAEpC,0CAA0C;IAC1C,OAAO,CAAC,aAAa,CAAC,CAAqB;IAE3C,+BAA+B;IAC/B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAW;IAEhC,kCAAkC;IAClC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAElC,6CAA6C;IAC7C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAU;IAEjC,0CAA0C;IAC1C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;gBAEtC,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa;cAsBlE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAO3C;;OAEG;IACM,cAAc,IAAI,MAAM;IAIjC;;;OAGG;IACY,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IA2ClD;;;OAGG;IACH;;OAEG;IACH,UAAU,IAAI,MAAM,GAAG,SAAS;IAUjB,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC;IAsC5C;;OAEG;IACM,WAAW,IAAI,YAAY,EAAE;IAMtC;;OAEG;IACM,YAAY,IAAI,MAAM,EAAE;IAIjC;;OAEG;IACM,OAAO,IAAI,MAAM,EAAE;IAI5B;;OAEG;IACM,QAAQ,IAAI,OAAO;IAI5B;;OAEG;IACM,WAAW,IAAI,MAAM;IAI9B;;OAEG;IACH,IAAI,SAAS,IAAI,gBAAgB,CAEhC;IAED;;OAEG;IACH,UAAU,IAAI,IAAI;IAKlB;;;;;;OAMG;IACH,cAAc,IAAI,YAAY,GAAG,SAAS;CAa3C;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,WAAW,EACnB,SAAS,EAAE,gBAAgB,EAC3B,KAAK,EAAE,aAAa,GACnB,aAAa,CAEf;AAkHD;;;GAGG;AACH,wBAAsB,2BAA2B,CAC/C,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,YAAY,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAC7D,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAiB7B"}