@kilnai/runtime 0.1.16 → 0.9.1

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 (211) hide show
  1. package/README.md +2 -2
  2. package/dist/channels/email-api.d.ts +29 -0
  3. package/dist/channels/email-api.d.ts.map +1 -0
  4. package/dist/channels/email-api.js +133 -0
  5. package/dist/channels/email-api.js.map +1 -0
  6. package/dist/channels/email-channel.d.ts +26 -0
  7. package/dist/channels/email-channel.d.ts.map +1 -0
  8. package/dist/channels/email-channel.js +59 -0
  9. package/dist/channels/email-channel.js.map +1 -0
  10. package/dist/channels/email-template.d.ts +10 -0
  11. package/dist/channels/email-template.d.ts.map +1 -0
  12. package/dist/channels/email-template.js +63 -0
  13. package/dist/channels/email-template.js.map +1 -0
  14. package/dist/channels/instagram-api.d.ts +29 -0
  15. package/dist/channels/instagram-api.d.ts.map +1 -0
  16. package/dist/channels/instagram-api.js +75 -0
  17. package/dist/channels/instagram-api.js.map +1 -0
  18. package/dist/channels/instagram-channel.d.ts +24 -0
  19. package/dist/channels/instagram-channel.d.ts.map +1 -0
  20. package/dist/channels/instagram-channel.js +55 -0
  21. package/dist/channels/instagram-channel.js.map +1 -0
  22. package/dist/channels/message-formatter.d.ts +17 -0
  23. package/dist/channels/message-formatter.d.ts.map +1 -1
  24. package/dist/channels/message-formatter.js +27 -0
  25. package/dist/channels/message-formatter.js.map +1 -1
  26. package/dist/channels/messenger-api.d.ts +27 -0
  27. package/dist/channels/messenger-api.d.ts.map +1 -0
  28. package/dist/channels/messenger-api.js +75 -0
  29. package/dist/channels/messenger-api.js.map +1 -0
  30. package/dist/channels/messenger-channel.d.ts +23 -0
  31. package/dist/channels/messenger-channel.d.ts.map +1 -0
  32. package/dist/channels/messenger-channel.js +55 -0
  33. package/dist/channels/messenger-channel.js.map +1 -0
  34. package/dist/enrichment/enrichment-runner.d.ts +17 -0
  35. package/dist/enrichment/enrichment-runner.d.ts.map +1 -0
  36. package/dist/enrichment/enrichment-runner.js +45 -0
  37. package/dist/enrichment/enrichment-runner.js.map +1 -0
  38. package/dist/enrichment/sqlite-enrichment-store.d.ts +14 -0
  39. package/dist/enrichment/sqlite-enrichment-store.d.ts.map +1 -0
  40. package/dist/enrichment/sqlite-enrichment-store.js +69 -0
  41. package/dist/enrichment/sqlite-enrichment-store.js.map +1 -0
  42. package/dist/gateway/audio-preprocessor.d.ts +11 -0
  43. package/dist/gateway/audio-preprocessor.d.ts.map +1 -0
  44. package/dist/gateway/audio-preprocessor.js +76 -0
  45. package/dist/gateway/audio-preprocessor.js.map +1 -0
  46. package/dist/gateway/auth-middleware.d.ts.map +1 -1
  47. package/dist/gateway/auth-middleware.js +10 -2
  48. package/dist/gateway/auth-middleware.js.map +1 -1
  49. package/dist/gateway/contact-memory-admin-routes.d.ts +9 -0
  50. package/dist/gateway/contact-memory-admin-routes.d.ts.map +1 -0
  51. package/dist/gateway/contact-memory-admin-routes.js +42 -0
  52. package/dist/gateway/contact-memory-admin-routes.js.map +1 -0
  53. package/dist/gateway/context-formatter.d.ts +5 -0
  54. package/dist/gateway/context-formatter.d.ts.map +1 -0
  55. package/dist/gateway/context-formatter.js +16 -0
  56. package/dist/gateway/context-formatter.js.map +1 -0
  57. package/dist/gateway/conversation-event-emitter.d.ts +4 -1
  58. package/dist/gateway/conversation-event-emitter.d.ts.map +1 -1
  59. package/dist/gateway/conversation-event-emitter.js +44 -13
  60. package/dist/gateway/conversation-event-emitter.js.map +1 -1
  61. package/dist/gateway/dev-routes.js +1 -1
  62. package/dist/gateway/dev-routes.js.map +1 -1
  63. package/dist/gateway/email-loop-guard.d.ts +10 -0
  64. package/dist/gateway/email-loop-guard.d.ts.map +1 -0
  65. package/dist/gateway/email-loop-guard.js +39 -0
  66. package/dist/gateway/email-loop-guard.js.map +1 -0
  67. package/dist/gateway/email-thread-store.d.ts +24 -0
  68. package/dist/gateway/email-thread-store.d.ts.map +1 -0
  69. package/dist/gateway/email-thread-store.js +34 -0
  70. package/dist/gateway/email-thread-store.js.map +1 -0
  71. package/dist/gateway/email-webhook-routes.d.ts +32 -0
  72. package/dist/gateway/email-webhook-routes.d.ts.map +1 -0
  73. package/dist/gateway/email-webhook-routes.js +411 -0
  74. package/dist/gateway/email-webhook-routes.js.map +1 -0
  75. package/dist/gateway/enrichment-admin-routes.d.ts +9 -0
  76. package/dist/gateway/enrichment-admin-routes.d.ts.map +1 -0
  77. package/dist/gateway/enrichment-admin-routes.js +41 -0
  78. package/dist/gateway/enrichment-admin-routes.js.map +1 -0
  79. package/dist/gateway/gateway-routes.d.ts +17 -1
  80. package/dist/gateway/gateway-routes.d.ts.map +1 -1
  81. package/dist/gateway/gateway-routes.js +41 -0
  82. package/dist/gateway/gateway-routes.js.map +1 -1
  83. package/dist/gateway/gateway-server.d.ts.map +1 -1
  84. package/dist/gateway/gateway-server.js +248 -12
  85. package/dist/gateway/gateway-server.js.map +1 -1
  86. package/dist/gateway/handoff-routes.d.ts.map +1 -1
  87. package/dist/gateway/handoff-routes.js +39 -0
  88. package/dist/gateway/handoff-routes.js.map +1 -1
  89. package/dist/gateway/instagram-webhook-routes.d.ts +30 -0
  90. package/dist/gateway/instagram-webhook-routes.d.ts.map +1 -0
  91. package/dist/gateway/instagram-webhook-routes.js +394 -0
  92. package/dist/gateway/instagram-webhook-routes.js.map +1 -0
  93. package/dist/gateway/knowledge-admin-routes.d.ts +9 -0
  94. package/dist/gateway/knowledge-admin-routes.d.ts.map +1 -0
  95. package/dist/gateway/knowledge-admin-routes.js +84 -0
  96. package/dist/gateway/knowledge-admin-routes.js.map +1 -0
  97. package/dist/gateway/knowledge-factory.d.ts +19 -0
  98. package/dist/gateway/knowledge-factory.d.ts.map +1 -0
  99. package/dist/gateway/knowledge-factory.js +122 -0
  100. package/dist/gateway/knowledge-factory.js.map +1 -0
  101. package/dist/gateway/message-pipeline.d.ts +22 -2
  102. package/dist/gateway/message-pipeline.d.ts.map +1 -1
  103. package/dist/gateway/message-pipeline.js +90 -4
  104. package/dist/gateway/message-pipeline.js.map +1 -1
  105. package/dist/gateway/messenger-webhook-routes.d.ts +30 -0
  106. package/dist/gateway/messenger-webhook-routes.d.ts.map +1 -0
  107. package/dist/gateway/messenger-webhook-routes.js +394 -0
  108. package/dist/gateway/messenger-webhook-routes.js.map +1 -0
  109. package/dist/gateway/meta-webhook-foundation.d.ts +12 -0
  110. package/dist/gateway/meta-webhook-foundation.d.ts.map +1 -0
  111. package/dist/gateway/meta-webhook-foundation.js +25 -0
  112. package/dist/gateway/meta-webhook-foundation.js.map +1 -0
  113. package/dist/gateway/mode-b-routes.d.ts +8 -0
  114. package/dist/gateway/mode-b-routes.d.ts.map +1 -1
  115. package/dist/gateway/mode-b-routes.js +53 -2
  116. package/dist/gateway/mode-b-routes.js.map +1 -1
  117. package/dist/gateway/outbound-routes.d.ts.map +1 -1
  118. package/dist/gateway/outbound-routes.js +49 -21
  119. package/dist/gateway/outbound-routes.js.map +1 -1
  120. package/dist/gateway/routing-test-routes.d.ts +10 -0
  121. package/dist/gateway/routing-test-routes.d.ts.map +1 -0
  122. package/dist/gateway/routing-test-routes.js +76 -0
  123. package/dist/gateway/routing-test-routes.js.map +1 -0
  124. package/dist/gateway/sqlite-email-thread-store.d.ts +13 -0
  125. package/dist/gateway/sqlite-email-thread-store.d.ts.map +1 -0
  126. package/dist/gateway/sqlite-email-thread-store.js +66 -0
  127. package/dist/gateway/sqlite-email-thread-store.js.map +1 -0
  128. package/dist/gateway/stt-factory.d.ts +3 -0
  129. package/dist/gateway/stt-factory.d.ts.map +1 -0
  130. package/dist/gateway/stt-factory.js +21 -0
  131. package/dist/gateway/stt-factory.js.map +1 -0
  132. package/dist/gateway/tenant-admin-routes.d.ts +1 -1
  133. package/dist/gateway/tenant-admin-routes.d.ts.map +1 -1
  134. package/dist/gateway/tenant-admin-routes.js +16 -2
  135. package/dist/gateway/tenant-admin-routes.js.map +1 -1
  136. package/dist/gateway/tenant-tool-factory.d.ts +10 -0
  137. package/dist/gateway/tenant-tool-factory.d.ts.map +1 -0
  138. package/dist/gateway/tenant-tool-factory.js +55 -0
  139. package/dist/gateway/tenant-tool-factory.js.map +1 -0
  140. package/dist/gateway/webhook-dedup.d.ts +13 -0
  141. package/dist/gateway/webhook-dedup.d.ts.map +1 -0
  142. package/dist/gateway/webhook-dedup.js +37 -0
  143. package/dist/gateway/webhook-dedup.js.map +1 -0
  144. package/dist/gateway/webhook-tool-executor.d.ts +17 -0
  145. package/dist/gateway/webhook-tool-executor.d.ts.map +1 -0
  146. package/dist/gateway/webhook-tool-executor.js +69 -0
  147. package/dist/gateway/webhook-tool-executor.js.map +1 -0
  148. package/dist/gateway/whatsapp-webhook-routes.d.ts +11 -0
  149. package/dist/gateway/whatsapp-webhook-routes.d.ts.map +1 -1
  150. package/dist/gateway/whatsapp-webhook-routes.js +158 -22
  151. package/dist/gateway/whatsapp-webhook-routes.js.map +1 -1
  152. package/dist/gateway/ws-tenant-routes.d.ts +9 -0
  153. package/dist/gateway/ws-tenant-routes.d.ts.map +1 -1
  154. package/dist/gateway/ws-tenant-routes.js +149 -6
  155. package/dist/gateway/ws-tenant-routes.js.map +1 -1
  156. package/dist/index.d.ts +47 -3
  157. package/dist/index.d.ts.map +1 -1
  158. package/dist/index.js +28 -1
  159. package/dist/index.js.map +1 -1
  160. package/dist/observability/composite-event-store.d.ts +13 -0
  161. package/dist/observability/composite-event-store.d.ts.map +1 -0
  162. package/dist/observability/composite-event-store.js +37 -0
  163. package/dist/observability/composite-event-store.js.map +1 -0
  164. package/dist/observability/prometheus-collector.d.ts +33 -0
  165. package/dist/observability/prometheus-collector.d.ts.map +1 -0
  166. package/dist/observability/prometheus-collector.js +169 -0
  167. package/dist/observability/prometheus-collector.js.map +1 -0
  168. package/dist/session/agent-handoff-summarizer.d.ts +11 -0
  169. package/dist/session/agent-handoff-summarizer.d.ts.map +1 -0
  170. package/dist/session/agent-handoff-summarizer.js +26 -0
  171. package/dist/session/agent-handoff-summarizer.js.map +1 -0
  172. package/dist/session/mode-b-orchestrator.d.ts +47 -1
  173. package/dist/session/mode-b-orchestrator.d.ts.map +1 -1
  174. package/dist/session/mode-b-orchestrator.js +286 -18
  175. package/dist/session/mode-b-orchestrator.js.map +1 -1
  176. package/dist/session/mode-b-session.d.ts +24 -4
  177. package/dist/session/mode-b-session.d.ts.map +1 -1
  178. package/dist/session/mode-b-session.js +37 -4
  179. package/dist/session/mode-b-session.js.map +1 -1
  180. package/dist/session/session-registry.d.ts +3 -2
  181. package/dist/session/session-registry.d.ts.map +1 -1
  182. package/dist/session/session-registry.js +35 -2
  183. package/dist/session/session-registry.js.map +1 -1
  184. package/dist/session/session-serializer.d.ts.map +1 -1
  185. package/dist/session/session-serializer.js +4 -0
  186. package/dist/session/session-serializer.js.map +1 -1
  187. package/dist/tenant/agent-resolver.d.ts +26 -0
  188. package/dist/tenant/agent-resolver.d.ts.map +1 -0
  189. package/dist/tenant/agent-resolver.js +232 -0
  190. package/dist/tenant/agent-resolver.js.map +1 -0
  191. package/dist/tenant/ping-pong-guard.d.ts +9 -0
  192. package/dist/tenant/ping-pong-guard.d.ts.map +1 -0
  193. package/dist/tenant/ping-pong-guard.js +30 -0
  194. package/dist/tenant/ping-pong-guard.js.map +1 -0
  195. package/dist/tenant/system-prompt-builder.d.ts +1 -1
  196. package/dist/tenant/system-prompt-builder.d.ts.map +1 -1
  197. package/dist/tenant/system-prompt-builder.js +13 -1
  198. package/dist/tenant/system-prompt-builder.js.map +1 -1
  199. package/dist/tenant/tenant-registry.d.ts +3 -0
  200. package/dist/tenant/tenant-registry.d.ts.map +1 -1
  201. package/dist/tenant/tenant-registry.js +83 -4
  202. package/dist/tenant/tenant-registry.js.map +1 -1
  203. package/dist/tenant/tenant-router.d.ts +27 -0
  204. package/dist/tenant/tenant-router.d.ts.map +1 -0
  205. package/dist/tenant/tenant-router.js +72 -0
  206. package/dist/tenant/tenant-router.js.map +1 -0
  207. package/dist/utils/hmac.d.ts +1 -0
  208. package/dist/utils/hmac.d.ts.map +1 -1
  209. package/dist/utils/hmac.js +3 -0
  210. package/dist/utils/hmac.js.map +1 -1
  211. package/package.json +2 -2
@@ -2,7 +2,7 @@ import { mkdirSync, writeFileSync, readFileSync, readdirSync, existsSync, unlink
2
2
  import { join } from "node:path";
3
3
  import { KilnError } from "@kilnai/core";
4
4
  import { validateTenantConfig } from "@kilnai/core";
5
- const SENSITIVE_FIELDS = ["whatsappAccessToken", "whatsappVerifyToken"];
5
+ const SENSITIVE_FIELDS = ["whatsappAccessToken", "whatsappVerifyToken", "instagramAccessToken", "messengerAccessToken"];
6
6
  const ENCRYPTED_PLACEHOLDER = "[encrypted]";
7
7
  export class TenantNotFoundError extends KilnError {
8
8
  constructor(tenantId) {
@@ -44,6 +44,24 @@ export class TenantRegistry {
44
44
  result[field] = ENCRYPTED_PLACEHOLDER;
45
45
  }
46
46
  }
47
+ // Encrypt email transport API key
48
+ if (config.emailTransportConfig?.apiKey && config.emailTransportConfig.apiKey !== ENCRYPTED_PLACEHOLDER) {
49
+ const secretKey = `tenant:${config.tenantId}:emailTransportApiKey`;
50
+ this.secretStore.set(secretKey, config.emailTransportConfig.apiKey);
51
+ result.emailTransportConfig = { ...config.emailTransportConfig, apiKey: ENCRYPTED_PLACEHOLDER };
52
+ }
53
+ // Encrypt webhook tool secrets
54
+ if (config.webhookTools && config.webhookTools.length > 0) {
55
+ const encryptedTools = config.webhookTools.map(wt => {
56
+ if (wt.secret && wt.secret !== ENCRYPTED_PLACEHOLDER) {
57
+ const secretKey = `tenant:${config.tenantId}:webhookTool:${wt.name}`;
58
+ this.secretStore.set(secretKey, wt.secret);
59
+ return { ...wt, secret: ENCRYPTED_PLACEHOLDER };
60
+ }
61
+ return wt;
62
+ });
63
+ result.webhookTools = encryptedTools;
64
+ }
47
65
  return result;
48
66
  }
49
67
  hydrateSecrets(config) {
@@ -59,14 +77,43 @@ export class TenantRegistry {
59
77
  result[field] = decrypted;
60
78
  }
61
79
  }
80
+ // Hydrate email transport API key
81
+ if (config.emailTransportConfig?.apiKey === ENCRYPTED_PLACEHOLDER) {
82
+ const secretKey = `tenant:${config.tenantId}:emailTransportApiKey`;
83
+ const decrypted = this.secretStore.get(secretKey);
84
+ if (decrypted) {
85
+ result.emailTransportConfig = { ...config.emailTransportConfig, apiKey: decrypted };
86
+ }
87
+ }
88
+ // Hydrate webhook tool secrets
89
+ if (config.webhookTools && config.webhookTools.length > 0) {
90
+ const hydratedTools = config.webhookTools.map(wt => {
91
+ if (wt.secret === ENCRYPTED_PLACEHOLDER) {
92
+ const secretKey = `tenant:${config.tenantId}:webhookTool:${wt.name}`;
93
+ const decrypted = this.secretStore.get(secretKey);
94
+ if (decrypted)
95
+ return { ...wt, secret: decrypted };
96
+ }
97
+ return wt;
98
+ });
99
+ result.webhookTools = hydratedTools;
100
+ }
62
101
  return result;
63
102
  }
64
- deleteSecrets(tenantId) {
103
+ deleteSecrets(tenantId, config) {
65
104
  if (!this.secretStore)
66
105
  return;
67
106
  for (const field of SENSITIVE_FIELDS) {
68
107
  this.secretStore.delete(`tenant:${tenantId}:${field}`);
69
108
  }
109
+ // Delete email transport API key
110
+ this.secretStore.delete(`tenant:${tenantId}:emailTransportApiKey`);
111
+ // Delete webhook tool secrets if config is available
112
+ if (config?.webhookTools) {
113
+ for (const wt of config.webhookTools) {
114
+ this.secretStore.delete(`tenant:${tenantId}:webhookTool:${wt.name}`);
115
+ }
116
+ }
70
117
  }
71
118
  load() {
72
119
  if (!existsSync(this.storageDir))
@@ -128,10 +175,11 @@ export class TenantRegistry {
128
175
  return this.hydrateSecrets(encrypted);
129
176
  }
130
177
  remove(tenantId) {
131
- if (!this.tenants.has(tenantId))
178
+ const existing = this.tenants.get(tenantId);
179
+ if (!existing)
132
180
  return false;
133
181
  this.tenants.delete(tenantId);
134
- this.deleteSecrets(tenantId);
182
+ this.deleteSecrets(tenantId, existing);
135
183
  const filePath = join(this.storageDir, `${tenantId}.json`);
136
184
  if (existsSync(filePath))
137
185
  unlinkSync(filePath);
@@ -157,6 +205,37 @@ export class TenantRegistry {
157
205
  }
158
206
  return undefined;
159
207
  }
208
+ resolveByInstagramPageId(pageId, appName) {
209
+ for (const tenant of this.tenants.values()) {
210
+ if (tenant.instagramPageId === pageId &&
211
+ tenant.appName === appName &&
212
+ tenant.enabled) {
213
+ return tenant;
214
+ }
215
+ }
216
+ return undefined;
217
+ }
218
+ resolveByMessengerPageId(pageId, appName) {
219
+ for (const tenant of this.tenants.values()) {
220
+ if (tenant.messengerPageId === pageId &&
221
+ tenant.appName === appName &&
222
+ tenant.enabled) {
223
+ return tenant;
224
+ }
225
+ }
226
+ return undefined;
227
+ }
228
+ resolveByEmailAddress(emailAddress, appName) {
229
+ const normalized = emailAddress.toLowerCase();
230
+ for (const tenant of this.tenants.values()) {
231
+ if (tenant.emailAddress?.toLowerCase() === normalized &&
232
+ tenant.appName === appName &&
233
+ tenant.enabled) {
234
+ return tenant;
235
+ }
236
+ }
237
+ return undefined;
238
+ }
160
239
  persist(config) {
161
240
  mkdirSync(this.storageDir, { recursive: true });
162
241
  const filePath = join(this.storageDir, `${config.tenantId}.json`);
@@ -1 +1 @@
1
- {"version":3,"file":"tenant-registry.js","sourceRoot":"","sources":["../../src/tenant/tenant-registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tenant-registry.js","sourceRoot":"","sources":["../../src/tenant/tenant-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { ContentPart, TenantRoutingConfig, TenantAgentConfig } from "@kilnai/core";
2
+ import type { AgentRAG } from "@kilnai/core";
3
+ export interface RoutingResult {
4
+ readonly agentId: string;
5
+ readonly tier: "rule" | "embedding" | "fallback";
6
+ readonly matchedPattern?: string;
7
+ readonly confidence?: number;
8
+ }
9
+ export interface TenantRouter {
10
+ route(userParts: readonly ContentPart[]): RoutingResult;
11
+ }
12
+ export declare class DefaultTenantRouter implements TenantRouter {
13
+ private readonly compiledRules;
14
+ private readonly fallbackAgentId;
15
+ constructor(config: TenantRoutingConfig);
16
+ route(userParts: readonly ContentPart[]): RoutingResult;
17
+ }
18
+ export declare class EmbeddingTenantRouter implements TenantRouter {
19
+ private readonly regexRouter;
20
+ private readonly agentRag;
21
+ private readonly agents;
22
+ private readonly embeddingThreshold;
23
+ constructor(config: TenantRoutingConfig, agentRag: AgentRAG, agents: readonly TenantAgentConfig[]);
24
+ route(userParts: readonly ContentPart[]): RoutingResult;
25
+ routeAsync(userParts: readonly ContentPart[]): Promise<RoutingResult>;
26
+ }
27
+ //# sourceMappingURL=tenant-router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-router.d.ts","sourceRoot":"","sources":["../../src/tenant/tenant-router.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAExF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAE7C,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,SAAS,EAAE,SAAS,WAAW,EAAE,GAAG,aAAa,CAAC;CACzD;AAQD,qBAAa,mBAAoB,YAAW,YAAY;IACtD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA0B;IACxD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;gBAE7B,MAAM,EAAE,mBAAmB;IAkBvC,KAAK,CAAC,SAAS,EAAE,SAAS,WAAW,EAAE,GAAG,aAAa;CAkBxD;AAED,qBAAa,qBAAsB,YAAW,YAAY;IACxD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;IACtD,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;gBAEhC,MAAM,EAAE,mBAAmB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,iBAAiB,EAAE;IAOjG,KAAK,CAAC,SAAS,EAAE,SAAS,WAAW,EAAE,GAAG,aAAa;IAIjD,UAAU,CAAC,SAAS,EAAE,SAAS,WAAW,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;CAgB5E"}
@@ -0,0 +1,72 @@
1
+ // Multi-agent routing: selects which agent handles a message based on regex rules + fallback
2
+ // Stateless, created per-call. Fail-open on broken regex rules.
3
+ import { extractText } from "@kilnai/core";
4
+ export class DefaultTenantRouter {
5
+ compiledRules;
6
+ fallbackAgentId;
7
+ constructor(config) {
8
+ this.fallbackAgentId = config.fallback;
9
+ const rules = [];
10
+ for (const rule of config.rules ?? []) {
11
+ try {
12
+ rules.push({
13
+ regex: new RegExp(rule.match, "i"),
14
+ agentId: rule.agent,
15
+ pattern: rule.match,
16
+ });
17
+ }
18
+ catch {
19
+ // Skip broken regex -- fail-open
20
+ }
21
+ }
22
+ this.compiledRules = rules;
23
+ }
24
+ route(userParts) {
25
+ const text = extractText(userParts);
26
+ for (const rule of this.compiledRules) {
27
+ if (rule.regex.test(text)) {
28
+ return {
29
+ agentId: rule.agentId,
30
+ tier: "rule",
31
+ matchedPattern: rule.pattern,
32
+ };
33
+ }
34
+ }
35
+ return {
36
+ agentId: this.fallbackAgentId,
37
+ tier: "fallback",
38
+ };
39
+ }
40
+ }
41
+ export class EmbeddingTenantRouter {
42
+ regexRouter;
43
+ agentRag;
44
+ agents;
45
+ embeddingThreshold;
46
+ constructor(config, agentRag, agents) {
47
+ this.regexRouter = new DefaultTenantRouter(config);
48
+ this.agentRag = agentRag;
49
+ this.agents = agents;
50
+ this.embeddingThreshold = config.embeddingThreshold ?? 0.75;
51
+ }
52
+ route(userParts) {
53
+ return this.regexRouter.route(userParts);
54
+ }
55
+ async routeAsync(userParts) {
56
+ const regexResult = this.regexRouter.route(userParts);
57
+ if (regexResult.tier === "rule")
58
+ return regexResult;
59
+ try {
60
+ const text = extractText(userParts);
61
+ const ragResult = await this.agentRag.selectAgent(text, this.agents);
62
+ if (ragResult && ragResult.score >= this.embeddingThreshold) {
63
+ return { agentId: ragResult.agentId, tier: "embedding", confidence: ragResult.score };
64
+ }
65
+ }
66
+ catch {
67
+ // Fail-open: fall through to fallback
68
+ }
69
+ return regexResult;
70
+ }
71
+ }
72
+ //# sourceMappingURL=tenant-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-router.js","sourceRoot":"","sources":["../../src/tenant/tenant-router.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,gEAAgE;AAGhE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAoB3C,MAAM,OAAO,mBAAmB;IACb,aAAa,CAA0B;IACvC,eAAe,CAAS;IAEzC,YAAY,MAA2B;QACrC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,QAAQ,CAAC;QAEvC,MAAM,KAAK,GAAmB,EAAE,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YACtC,IAAI,CAAC;gBACH,KAAK,CAAC,IAAI,CAAC;oBACT,KAAK,EAAE,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC;oBAClC,OAAO,EAAE,IAAI,CAAC,KAAK;oBACnB,OAAO,EAAE,IAAI,CAAC,KAAK;iBACpB,CAAC,CAAC;YACL,CAAC;YAAC,MAAM,CAAC;gBACP,iCAAiC;YACnC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,SAAiC;QACrC,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QAEpC,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACtC,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,OAAO;oBACL,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,IAAI,EAAE,MAAM;oBACZ,cAAc,EAAE,IAAI,CAAC,OAAO;iBAC7B,CAAC;YACJ,CAAC;QACH,CAAC;QAED,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,eAAe;YAC7B,IAAI,EAAE,UAAU;SACjB,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,qBAAqB;IACf,WAAW,CAAsB;IACjC,QAAQ,CAAW;IACnB,MAAM,CAA+B;IACrC,kBAAkB,CAAS;IAE5C,YAAY,MAA2B,EAAE,QAAkB,EAAE,MAAoC;QAC/F,IAAI,CAAC,WAAW,GAAG,IAAI,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACnD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,IAAI,IAAI,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,SAAiC;QACrC,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,SAAiC;QAChD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QACtD,IAAI,WAAW,CAAC,IAAI,KAAK,MAAM;YAAE,OAAO,WAAW,CAAC;QAEpD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;YACpC,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YACrE,IAAI,SAAS,IAAI,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5D,OAAO,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC;YACxF,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,sCAAsC;QACxC,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;CACF"}
@@ -12,4 +12,5 @@
12
12
  * @returns true if the signature is valid
13
13
  */
14
14
  export declare function verifyHmacSha256(secret: string, payload: string, signature: string): boolean;
15
+ export declare function signHmacSha256(secret: string, payload: string): string;
15
16
  //# sourceMappingURL=hmac.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hmac.d.ts","sourceRoot":"","sources":["../../src/utils/hmac.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAU5F"}
1
+ {"version":3,"file":"hmac.d.ts","sourceRoot":"","sources":["../../src/utils/hmac.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAU5F;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAEtE"}
@@ -24,4 +24,7 @@ export function verifyHmacSha256(secret, payload, signature) {
24
24
  return false;
25
25
  }
26
26
  }
27
+ export function signHmacSha256(secret, payload) {
28
+ return createHmac("sha256", secret).update(payload).digest("hex");
29
+ }
27
30
  //# sourceMappingURL=hmac.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"hmac.js","sourceRoot":"","sources":["../../src/utils/hmac.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAElE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,OAAe,EAAE,SAAiB;IACjF,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE5E,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAEvD,IAAI,CAAC;QACH,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IACtF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"hmac.js","sourceRoot":"","sources":["../../src/utils/hmac.ts"],"names":[],"mappings":"AAAA,kEAAkE;AAElE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE1D;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAc,EAAE,OAAe,EAAE,SAAiB;IACjF,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAE5E,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAEvD,IAAI,CAAC;QACH,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC;IACtF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,OAAe;IAC5D,OAAO,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACpE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kilnai/runtime",
3
- "version": "0.1.16",
3
+ "version": "0.9.1",
4
4
  "description": "Multi-app gateway server, multi-tenant management, and channel adapters for @kilnai/core",
5
5
  "type": "module",
6
6
  "exports": {
@@ -42,7 +42,7 @@
42
42
  "hono": "^4.7.0"
43
43
  },
44
44
  "peerDependencies": {
45
- "@kilnai/core": "^0.1.16",
45
+ "@kilnai/core": "^0.9.1",
46
46
  "@opentelemetry/api": "^1.9.0",
47
47
  "ioredis": ">=5.0.0"
48
48
  },