@kilnai/runtime 0.19.0 → 0.21.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 (62) hide show
  1. package/dist/gateway/auth-middleware.d.ts +9 -0
  2. package/dist/gateway/auth-middleware.d.ts.map +1 -1
  3. package/dist/gateway/auth-middleware.js +24 -0
  4. package/dist/gateway/auth-middleware.js.map +1 -1
  5. package/dist/gateway/context-formatter.d.ts +1 -0
  6. package/dist/gateway/context-formatter.d.ts.map +1 -1
  7. package/dist/gateway/context-formatter.js +5 -0
  8. package/dist/gateway/context-formatter.js.map +1 -1
  9. package/dist/gateway/gateway-routes.d.ts +3 -0
  10. package/dist/gateway/gateway-routes.d.ts.map +1 -1
  11. package/dist/gateway/gateway-routes.js +17 -0
  12. package/dist/gateway/gateway-routes.js.map +1 -1
  13. package/dist/gateway/gateway-server.d.ts.map +1 -1
  14. package/dist/gateway/gateway-server.js +121 -7
  15. package/dist/gateway/gateway-server.js.map +1 -1
  16. package/dist/gateway/jwt-verifier.d.ts +28 -0
  17. package/dist/gateway/jwt-verifier.d.ts.map +1 -0
  18. package/dist/gateway/jwt-verifier.js +44 -0
  19. package/dist/gateway/jwt-verifier.js.map +1 -0
  20. package/dist/gateway/message-pipeline.d.ts +1 -0
  21. package/dist/gateway/message-pipeline.d.ts.map +1 -1
  22. package/dist/gateway/message-pipeline.js +8 -3
  23. package/dist/gateway/message-pipeline.js.map +1 -1
  24. package/dist/gateway/mode-b-routes.d.ts.map +1 -1
  25. package/dist/gateway/mode-b-routes.js +18 -1
  26. package/dist/gateway/mode-b-routes.js.map +1 -1
  27. package/dist/index.d.ts +2 -0
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +2 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/mcp/gateway-mcp-server.d.ts +49 -0
  32. package/dist/mcp/gateway-mcp-server.d.ts.map +1 -0
  33. package/dist/mcp/gateway-mcp-server.js +280 -0
  34. package/dist/mcp/gateway-mcp-server.js.map +1 -0
  35. package/dist/mcp/gateway-mcp-types.d.ts +68 -0
  36. package/dist/mcp/gateway-mcp-types.d.ts.map +1 -0
  37. package/dist/mcp/gateway-mcp-types.js +4 -0
  38. package/dist/mcp/gateway-mcp-types.js.map +1 -0
  39. package/dist/mcp/index.d.ts +6 -0
  40. package/dist/mcp/index.d.ts.map +1 -0
  41. package/dist/mcp/index.js +4 -0
  42. package/dist/mcp/index.js.map +1 -0
  43. package/dist/mcp/tool-schemas.d.ts +563 -0
  44. package/dist/mcp/tool-schemas.d.ts.map +1 -0
  45. package/dist/mcp/tool-schemas.js +268 -0
  46. package/dist/mcp/tool-schemas.js.map +1 -0
  47. package/dist/session/mode-b-session.d.ts +7 -0
  48. package/dist/session/mode-b-session.d.ts.map +1 -1
  49. package/dist/session/mode-b-session.js +20 -0
  50. package/dist/session/mode-b-session.js.map +1 -1
  51. package/dist/session/session-serializer.d.ts.map +1 -1
  52. package/dist/session/session-serializer.js +1 -0
  53. package/dist/session/session-serializer.js.map +1 -1
  54. package/dist/tenant/agent-resolver.d.ts +4 -4
  55. package/dist/tenant/agent-resolver.d.ts.map +1 -1
  56. package/dist/tenant/agent-resolver.js +18 -16
  57. package/dist/tenant/agent-resolver.js.map +1 -1
  58. package/dist/tenant/interpolate-user-tokens.d.ts +8 -0
  59. package/dist/tenant/interpolate-user-tokens.d.ts.map +1 -0
  60. package/dist/tenant/interpolate-user-tokens.js +13 -0
  61. package/dist/tenant/interpolate-user-tokens.js.map +1 -0
  62. package/package.json +9 -4
@@ -1,4 +1,5 @@
1
1
  import type { Context, Next } from "hono";
2
+ import type { JwtVerifyFn } from "./jwt-verifier.js";
2
3
  /**
3
4
  * Require API key via X-Api-Key header. Returns 401 if missing or invalid.
4
5
  */
@@ -13,6 +14,14 @@ export declare function requireBearer(token: string): (c: Context, next: Next) =
13
14
  * Returns 401 if the header is missing or the signature is invalid.
14
15
  */
15
16
  export declare function requireWebhookSignature(secret: string, headerName: string): (c: Context, next: Next) => Promise<Response | void>;
17
+ /**
18
+ * Require a valid JWT via Authorization: Bearer <token>.
19
+ * Verifies using the provided JwtVerifyFn (JWKS or HS256).
20
+ * Attaches the decoded payload to the Hono context under key "jwtPayload" for downstream use.
21
+ * Returns 401 if the header is missing, malformed, or the token is invalid/expired.
22
+ * No error details are leaked in the response body.
23
+ */
24
+ export declare function requireJwt(verify: JwtVerifyFn): (c: Context, next: Next) => Promise<Response | void>;
16
25
  /**
17
26
  * Check if a WebSocket origin is allowed. Utility function, not middleware.
18
27
  *
@@ -1 +1 @@
1
- {"version":3,"file":"auth-middleware.d.ts","sourceRoot":"","sources":["../../src/gateway/auth-middleware.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAU1C;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAQ/F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CASjG;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAetD;AAID;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAYlG"}
1
+ {"version":3,"file":"auth-middleware.d.ts","sourceRoot":"","sources":["../../src/gateway/auth-middleware.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG1C,OAAO,KAAK,EAAE,WAAW,EAAc,MAAM,mBAAmB,CAAC;AAQjE;;GAEG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAQ/F;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CASjG;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,GACjB,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAetD;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,WAAW,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAepG;AAID;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,OAAO,CAYlG"}
@@ -52,6 +52,30 @@ export function requireWebhookSignature(secret, headerName) {
52
52
  return next();
53
53
  };
54
54
  }
55
+ /**
56
+ * Require a valid JWT via Authorization: Bearer <token>.
57
+ * Verifies using the provided JwtVerifyFn (JWKS or HS256).
58
+ * Attaches the decoded payload to the Hono context under key "jwtPayload" for downstream use.
59
+ * Returns 401 if the header is missing, malformed, or the token is invalid/expired.
60
+ * No error details are leaked in the response body.
61
+ */
62
+ export function requireJwt(verify) {
63
+ return async (c, next) => {
64
+ const auth = c.req.header("authorization");
65
+ if (!auth || !auth.startsWith("Bearer ")) {
66
+ return c.json({ error: "unauthorized", message: "Missing or malformed Authorization header" }, 401);
67
+ }
68
+ const token = auth.slice(7);
69
+ try {
70
+ const payload = await verify(token);
71
+ c.set("jwtPayload", payload);
72
+ return next();
73
+ }
74
+ catch {
75
+ return c.json({ error: "unauthorized", message: "Invalid or expired JWT" }, 401);
76
+ }
77
+ };
78
+ }
55
79
  const LOCALHOST_HOSTNAMES = new Set(["localhost", "127.0.0.1"]);
56
80
  /**
57
81
  * Check if a WebSocket origin is allowed. Utility function, not middleware.
@@ -1 +1 @@
1
- {"version":3,"file":"auth-middleware.js","sourceRoot":"","sources":["../../src/gateway/auth-middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth-middleware.js","sourceRoot":"","sources":["../../src/gateway/auth-middleware.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { VectorResult, ContactFact, GroundingMode } from "@kilnai/core";
2
2
  export declare function formatKnowledgeContext(results: readonly VectorResult[]): string | undefined;
3
3
  export declare function formatContactContext(facts: readonly ContactFact[]): string | undefined;
4
+ export declare function formatUserContext(ctx: Record<string, string> | undefined): string | undefined;
4
5
  export declare function mergeContextSources(...sources: (string | undefined)[]): string | undefined;
5
6
  export declare function appendGroundingDirective(context: string | undefined, groundingMode: GroundingMode | undefined): string | undefined;
6
7
  //# sourceMappingURL=context-formatter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context-formatter.d.ts","sourceRoot":"","sources":["../../src/gateway/context-formatter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAS7E,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,GAAG,SAAS,CAG3F;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,GAAG,SAAS,CAGtF;AAED,wBAAgB,mBAAmB,CAAC,GAAG,OAAO,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GAAG,MAAM,GAAG,SAAS,CAG1F;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,aAAa,EAAE,aAAa,GAAG,SAAS,GACvC,MAAM,GAAG,SAAS,CAGpB"}
1
+ {"version":3,"file":"context-formatter.d.ts","sourceRoot":"","sources":["../../src/gateway/context-formatter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAS7E,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,GAAG,MAAM,GAAG,SAAS,CAG3F;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,GAAG,MAAM,GAAG,SAAS,CAGtF;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAG7F;AAED,wBAAgB,mBAAmB,CAAC,GAAG,OAAO,EAAE,CAAC,MAAM,GAAG,SAAS,CAAC,EAAE,GAAG,MAAM,GAAG,SAAS,CAG1F;AAED,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,aAAa,EAAE,aAAa,GAAG,SAAS,GACvC,MAAM,GAAG,SAAS,CAGpB"}
@@ -14,6 +14,11 @@ export function formatContactContext(facts) {
14
14
  return undefined;
15
15
  return "--- Customer Context ---\n" + facts.map((f) => f.content).join("\n") + "\n---";
16
16
  }
17
+ export function formatUserContext(ctx) {
18
+ if (!ctx || Object.keys(ctx).length === 0)
19
+ return undefined;
20
+ return "[User Context]:\n" + Object.entries(ctx).map(([k, v]) => `${k}: ${v}`).join("\n");
21
+ }
17
22
  export function mergeContextSources(...sources) {
18
23
  const filtered = sources.filter(Boolean);
19
24
  return filtered.length > 0 ? filtered.join("\n\n") : undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"context-formatter.js","sourceRoot":"","sources":["../../src/gateway/context-formatter.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAI3F,MAAM,mBAAmB,GACvB,2BAA2B;IAC3B,yFAAyF;IACzF,qFAAqF;IACrF,sDAAsD;IACtD,+EAA+E,CAAC;AAElF,MAAM,UAAU,sBAAsB,CAAC,OAAgC;IACrE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAA6B;IAChE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,OAAO,4BAA4B,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;AACzF,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAG,OAA+B;IACpE,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,OAA2B,EAC3B,aAAwC;IAExC,IAAI,CAAC,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,UAAU,CAAC;QAAE,OAAO,OAAO,CAAC;IAC7F,OAAO,OAAO,GAAG,MAAM,GAAG,mBAAmB,CAAC;AAChD,CAAC"}
1
+ {"version":3,"file":"context-formatter.js","sourceRoot":"","sources":["../../src/gateway/context-formatter.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAI3F,MAAM,mBAAmB,GACvB,2BAA2B;IAC3B,yFAAyF;IACzF,qFAAqF;IACrF,sDAAsD;IACtD,+EAA+E,CAAC;AAElF,MAAM,UAAU,sBAAsB,CAAC,OAAgC;IACrE,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC3C,OAAO,wBAAwB,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAA6B;IAChE,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IACzC,OAAO,4BAA4B,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;AACzF,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAuC;IACvE,IAAI,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,SAAS,CAAC;IAC5D,OAAO,mBAAmB,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5F,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,GAAG,OAA+B;IACpE,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;AACjE,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,OAA2B,EAC3B,aAAwC;IAExC,IAAI,CAAC,OAAO,IAAI,CAAC,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,UAAU,CAAC;QAAE,OAAO,OAAO,CAAC;IAC7F,OAAO,OAAO,GAAG,MAAM,GAAG,mBAAmB,CAAC;AAChD,CAAC"}
@@ -22,6 +22,7 @@ import type { MemoryRoutesConfig } from "./memory-routes.js";
22
22
  import type { TriggerRegistry } from "../trigger/trigger-registry.js";
23
23
  import type { ConversationEventEmitter } from "./conversation-event-emitter.js";
24
24
  import type { KnowledgePipelineResult } from "./knowledge-factory.js";
25
+ import type { JwtVerifyFn } from "./jwt-verifier.js";
25
26
  export interface LoadedApp {
26
27
  readonly name: string;
27
28
  readonly app: App;
@@ -59,6 +60,8 @@ export interface GatewayServerConfig {
59
60
  readonly studioDistPath?: string;
60
61
  readonly upgradeWebSocket?: WsRoutesConfig["upgradeWebSocket"];
61
62
  readonly validateToken?: WsRoutesConfig["validateToken"];
63
+ /** Gateway-level JWT verifier. When set, applied to all API and admin routes. */
64
+ readonly jwtVerifier?: JwtVerifyFn;
62
65
  }
63
66
  export declare function createGatewayApp(config: GatewayServerConfig): Hono;
64
67
  //# sourceMappingURL=gateway-routes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gateway-routes.d.ts","sourceRoot":"","sources":["../../src/gateway/gateway-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway-routes.d.ts","sourceRoot":"","sources":["../../src/gateway/gateway-routes.ts"],"names":[],"mappings":"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"}
@@ -23,6 +23,7 @@ import { safetyMiddleware } from "./safety-middleware.js";
23
23
  import { createDevRoutes } from "./dev-routes.js";
24
24
  import { createDevInspectorHtml } from "./dev-inspector.js";
25
25
  import { createMemoryRoutes } from "./memory-routes.js";
26
+ import { requireJwt } from "./auth-middleware.js";
26
27
  export function createGatewayApp(config) {
27
28
  const app = new Hono();
28
29
  // Security middleware: prompt injection scanning (opt-in via securityConfig)
@@ -30,6 +31,8 @@ export function createGatewayApp(config) {
30
31
  const scanner = new PromptScanner(config.securityConfig.promptInjection);
31
32
  app.use("*", securityMiddleware(scanner, config.auditLog, config.securityConfig.promptInjection));
32
33
  }
34
+ // JWT middleware factory -- created once, reused for all protected route groups
35
+ const jwtMiddleware = config.jwtVerifier ? requireJwt(config.jwtVerifier) : undefined;
33
36
  // Health endpoint
34
37
  app.get("/health", async (c) => {
35
38
  const startTime = config.startTime ?? Date.now();
@@ -68,11 +71,25 @@ export function createGatewayApp(config) {
68
71
  }
69
72
  // Production memory routes (available in all modes)
70
73
  if (config.memoryRoutesConfig) {
74
+ if (jwtMiddleware) {
75
+ app.use("/api/memory/*", jwtMiddleware);
76
+ }
71
77
  const memoryRoutes = createMemoryRoutes(config.memoryRoutesConfig);
72
78
  app.route("/api", memoryRoutes);
73
79
  }
74
80
  // Per-app routes
75
81
  for (const loadedApp of config.apps) {
82
+ // JWT auth: applied to API/admin/outbound/handoff routes when gateway-level JWT is configured
83
+ if (jwtMiddleware) {
84
+ for (const channel of loadedApp.binding.channels) {
85
+ if (channel.type === "api" && channel.path) {
86
+ app.use(`${channel.path}/*`, jwtMiddleware);
87
+ }
88
+ }
89
+ app.use(`/admin/${loadedApp.name}/*`, jwtMiddleware);
90
+ app.use(`/outbound/${loadedApp.name}/*`, jwtMiddleware);
91
+ app.use(`/handoff/${loadedApp.name}/*`, jwtMiddleware);
92
+ }
76
93
  // Safety middleware per app (scans both input and output)
77
94
  const safetyPipeline = config.safetyPipelines?.get(loadedApp.name);
78
95
  if (safetyPipeline) {
@@ -1 +1 @@
1
- {"version":3,"file":"gateway-routes.js","sourceRoot":"","sources":["../../src/gateway/gateway-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway-routes.js","sourceRoot":"","sources":["../../src/gateway/gateway-routes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"gateway-server.d.ts","sourceRoot":"","sources":["../../src/gateway/gateway-server.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAA6F,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAmClJ,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAClI,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACtD,gFAAgF;IAChF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAmDD,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8yBnG;AA8ID,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuF9E"}
1
+ {"version":3,"file":"gateway-server.d.ts","sourceRoot":"","sources":["../../src/gateway/gateway-server.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAA6F,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAmClJ,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAClI,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACtD,gFAAgF;IAChF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAmDD,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAy5BnG;AAoJD,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuF9E"}
@@ -551,7 +551,7 @@ export async function startGateway(configPath, options) {
551
551
  // Auth warnings: notify when channels lack auth configuration
552
552
  for (const loaded of loadedApps) {
553
553
  for (const channel of loaded.binding.channels) {
554
- if (channel.type === "api" && channel.path && !channel.apiKeyEnv) {
554
+ if (channel.type === "api" && channel.path && !channel.apiKeyEnv && !gatewayConfig.auth) {
555
555
  console.warn(` [warn] API channel at ${channel.path} has no apiKeyEnv -- endpoints are unauthenticated`);
556
556
  }
557
557
  if (channel.type === "whatsapp" && !channel.appSecretEnv) {
@@ -637,6 +637,24 @@ export async function startGateway(configPath, options) {
637
637
  }
638
638
  }
639
639
  const tokenStore = options?.devMode ? new DevTokenStore() : undefined;
640
+ // JWT verifier: built once at startup when auth block is present in gateway.yaml
641
+ let jwtVerifier;
642
+ if (gatewayConfig.auth) {
643
+ try {
644
+ const { buildJwtVerifier } = await import("./jwt-verifier.js");
645
+ jwtVerifier = await buildJwtVerifier(gatewayConfig.auth);
646
+ const mode = gatewayConfig.auth.algorithm === "RS256"
647
+ ? `RS256 JWKS (${gatewayConfig.auth.jwksUri})`
648
+ : `HS256 (${gatewayConfig.auth.secretEnv})`;
649
+ console.log(`Auth: JWT verification enabled -- ${mode}`);
650
+ }
651
+ catch (err) {
652
+ throw new KilnError("CONFIG_INVALID", `Failed to initialize JWT verifier: ${err instanceof Error ? err.message : String(err)}`, {
653
+ context: { algorithm: gatewayConfig.auth.algorithm },
654
+ retryable: false,
655
+ });
656
+ }
657
+ }
640
658
  const { upgradeWebSocket, websocket: bunWebsocket } = createBunWebSocket();
641
659
  const honoApp = createGatewayApp({
642
660
  port,
@@ -648,6 +666,7 @@ export async function startGateway(configPath, options) {
648
666
  safetyPipelines,
649
667
  upgradeWebSocket,
650
668
  validateToken: tokenStore ? (token) => tokenStore.validate(token) : undefined,
669
+ jwtVerifier,
651
670
  devMode: options?.devMode,
652
671
  studioDistPath,
653
672
  devRoutesConfig: options?.devMode
@@ -704,8 +723,7 @@ export async function startGateway(configPath, options) {
704
723
  getMemoryByScope: async (scope, q, tags) => {
705
724
  if (!devMemoryStores)
706
725
  return [];
707
- const validLayers = ["user", "agent", "project"];
708
- const layer = validLayers.includes(scope) ? scope : "project";
726
+ const layer = resolveMemoryLayer(scope);
709
727
  const store = devMemoryStores.get(layer);
710
728
  if (!store)
711
729
  return [];
@@ -737,10 +755,7 @@ export async function startGateway(configPath, options) {
737
755
  createMemoryEntry: async (entry) => {
738
756
  if (!devMemoryStores)
739
757
  return { id: "" };
740
- const validLayers = ["user", "agent", "project"];
741
- const layer = validLayers.includes(entry["layer"])
742
- ? entry["layer"]
743
- : "project";
758
+ const layer = resolveMemoryLayer(entry["layer"]);
744
759
  const store = devMemoryStores.get(layer);
745
760
  if (!store)
746
761
  return { id: "" };
@@ -820,6 +835,100 @@ export async function startGateway(configPath, options) {
820
835
  const metrics = await registry.metrics();
821
836
  return c.text(metrics, 200, { "Content-Type": registry.contentType });
822
837
  });
838
+ // MCP server: expose gateway capabilities as MCP tools for external agents
839
+ let mcpServerInstance;
840
+ if (gatewayConfig.mcp?.enabled) {
841
+ try {
842
+ const { GatewayMcpServer } = await import("../mcp/gateway-mcp-server.js");
843
+ const mcpPath = gatewayConfig.mcp.path ?? "/mcp";
844
+ const mcpApiKey = gatewayConfig.mcp.auth?.type === "api-key" && gatewayConfig.mcp.auth.keyEnv
845
+ ? process.env[gatewayConfig.mcp.auth.keyEnv]
846
+ : undefined;
847
+ const mcpServer = new GatewayMcpServer({
848
+ deps: {
849
+ getMemoryByScope: devMemoryStores
850
+ ? async (scope, q, tags) => {
851
+ const layer = resolveMemoryLayer(scope);
852
+ const store = devMemoryStores.get(layer);
853
+ if (!store)
854
+ return [];
855
+ if (q) {
856
+ const results = await store.search(q, 100);
857
+ return results.map((r) => ({
858
+ id: r.entry.id, layer: r.entry.layer, content: r.entry.content,
859
+ tags: r.entry.tags, score: r.score, snippet: r.snippet,
860
+ }));
861
+ }
862
+ return store.listEntries({ tags }).map((e) => ({
863
+ id: e.id, layer: e.layer, content: e.content, tags: e.tags,
864
+ }));
865
+ }
866
+ : undefined,
867
+ createMemoryEntry: devMemoryStores
868
+ ? async (entry) => {
869
+ const layer = resolveMemoryLayer(entry["scope"]);
870
+ const store = devMemoryStores.get(layer);
871
+ if (!store)
872
+ return { id: "" };
873
+ const content = typeof entry["content"] === "string" ? entry["content"] : String(entry["content"] ?? "");
874
+ const rawTags = typeof entry["tags"] === "string" ? entry["tags"].split(",").map((t) => t.trim()) : [];
875
+ const id = await store.save({ layer, content, tags: rawTags });
876
+ return { id };
877
+ }
878
+ : undefined,
879
+ deleteMemoryEntry: devMemoryStores
880
+ ? async (id) => {
881
+ for (const store of devMemoryStores.values()) {
882
+ if (store.hasEntry(id)) {
883
+ await store.forget(id);
884
+ return true;
885
+ }
886
+ }
887
+ return false;
888
+ }
889
+ : undefined,
890
+ searchKnowledge: async (appName, query, limit) => {
891
+ const loaded = loadedApps.find((a) => a.name === appName);
892
+ if (!loaded?.knowledgePipeline)
893
+ return { results: [] };
894
+ const results = await loaded.knowledgePipeline.pipeline.retrieve(query, { topK: limit });
895
+ return {
896
+ results: results.map((r) => ({
897
+ content: r.content,
898
+ score: r.score,
899
+ source: r.metadata?.source,
900
+ })),
901
+ };
902
+ },
903
+ listKnowledgeSources: (appName) => {
904
+ const loaded = loadedApps.find((a) => a.name === appName);
905
+ if (!loaded?.knowledgeAdminConfig)
906
+ return { sources: [] };
907
+ const sources = loaded.knowledgeAdminConfig.sourceManager.list(appName);
908
+ return { sources: sources.map((s) => ({ ...s })) };
909
+ },
910
+ getCostSummary: () => costTracker.summary,
911
+ getSafetyMetrics: () => {
912
+ if (safetyPipelines.size === 0)
913
+ return { enabled: false };
914
+ const apps = {};
915
+ for (const [appName, pipeline] of safetyPipelines)
916
+ apps[appName] = pipeline.metrics;
917
+ return { enabled: true, apps };
918
+ },
919
+ },
920
+ apiKey: mcpApiKey,
921
+ });
922
+ await mcpServer.initialize();
923
+ mcpServerInstance = mcpServer;
924
+ honoApp.all(`${mcpPath}`, async (c) => mcpServer.handleRequest(c.req.raw));
925
+ honoApp.all(`${mcpPath}/*`, async (c) => mcpServer.handleRequest(c.req.raw));
926
+ console.log(`MCP server: listening on ${mcpPath}${mcpApiKey ? " (api-key auth)" : " (no auth)"}`);
927
+ }
928
+ catch (err) {
929
+ console.warn(`MCP server: failed to initialize -- ${err instanceof Error ? err.message : String(err)}`);
930
+ }
931
+ }
823
932
  triggerRegistry.start();
824
933
  const appNames = loadedApps.map((a) => a.name).join(", ");
825
934
  console.log(`Gateway started on port ${port} with ${loadedApps.length} apps: ${appNames}`);
@@ -829,11 +938,16 @@ export async function startGateway(configPath, options) {
829
938
  await serveAndWait(honoApp, port, () => {
830
939
  triggerRegistry.stop();
831
940
  webhookDedup.close();
941
+ mcpServerInstance?.close().catch(() => { });
832
942
  for (const loaded of loadedApps) {
833
943
  loaded.knowledgePipeline?.close().catch(() => { });
834
944
  }
835
945
  }, bunWebsocket);
836
946
  }
947
+ const VALID_MEMORY_LAYERS = ["user", "agent", "project"];
948
+ function resolveMemoryLayer(scope) {
949
+ return VALID_MEMORY_LAYERS.includes(scope) ? scope : "project";
950
+ }
837
951
  /** Create a ProviderAdapter from a Mode B provider config */
838
952
  function createProviderFromConfig(config) {
839
953
  const apiKey = config.apiKeyEnv ? process.env[config.apiKeyEnv] ?? "" : "";