@kilnai/runtime 0.1.16 → 0.9.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 (208) 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/email-loop-guard.d.ts +10 -0
  62. package/dist/gateway/email-loop-guard.d.ts.map +1 -0
  63. package/dist/gateway/email-loop-guard.js +39 -0
  64. package/dist/gateway/email-loop-guard.js.map +1 -0
  65. package/dist/gateway/email-thread-store.d.ts +24 -0
  66. package/dist/gateway/email-thread-store.d.ts.map +1 -0
  67. package/dist/gateway/email-thread-store.js +34 -0
  68. package/dist/gateway/email-thread-store.js.map +1 -0
  69. package/dist/gateway/email-webhook-routes.d.ts +32 -0
  70. package/dist/gateway/email-webhook-routes.d.ts.map +1 -0
  71. package/dist/gateway/email-webhook-routes.js +411 -0
  72. package/dist/gateway/email-webhook-routes.js.map +1 -0
  73. package/dist/gateway/enrichment-admin-routes.d.ts +9 -0
  74. package/dist/gateway/enrichment-admin-routes.d.ts.map +1 -0
  75. package/dist/gateway/enrichment-admin-routes.js +41 -0
  76. package/dist/gateway/enrichment-admin-routes.js.map +1 -0
  77. package/dist/gateway/gateway-routes.d.ts +17 -1
  78. package/dist/gateway/gateway-routes.d.ts.map +1 -1
  79. package/dist/gateway/gateway-routes.js +40 -0
  80. package/dist/gateway/gateway-routes.js.map +1 -1
  81. package/dist/gateway/gateway-server.d.ts.map +1 -1
  82. package/dist/gateway/gateway-server.js +248 -12
  83. package/dist/gateway/gateway-server.js.map +1 -1
  84. package/dist/gateway/handoff-routes.d.ts.map +1 -1
  85. package/dist/gateway/handoff-routes.js +39 -0
  86. package/dist/gateway/handoff-routes.js.map +1 -1
  87. package/dist/gateway/instagram-webhook-routes.d.ts +30 -0
  88. package/dist/gateway/instagram-webhook-routes.d.ts.map +1 -0
  89. package/dist/gateway/instagram-webhook-routes.js +394 -0
  90. package/dist/gateway/instagram-webhook-routes.js.map +1 -0
  91. package/dist/gateway/knowledge-admin-routes.d.ts +9 -0
  92. package/dist/gateway/knowledge-admin-routes.d.ts.map +1 -0
  93. package/dist/gateway/knowledge-admin-routes.js +84 -0
  94. package/dist/gateway/knowledge-admin-routes.js.map +1 -0
  95. package/dist/gateway/knowledge-factory.d.ts +19 -0
  96. package/dist/gateway/knowledge-factory.d.ts.map +1 -0
  97. package/dist/gateway/knowledge-factory.js +122 -0
  98. package/dist/gateway/knowledge-factory.js.map +1 -0
  99. package/dist/gateway/message-pipeline.d.ts +21 -1
  100. package/dist/gateway/message-pipeline.d.ts.map +1 -1
  101. package/dist/gateway/message-pipeline.js +87 -1
  102. package/dist/gateway/message-pipeline.js.map +1 -1
  103. package/dist/gateway/messenger-webhook-routes.d.ts +30 -0
  104. package/dist/gateway/messenger-webhook-routes.d.ts.map +1 -0
  105. package/dist/gateway/messenger-webhook-routes.js +394 -0
  106. package/dist/gateway/messenger-webhook-routes.js.map +1 -0
  107. package/dist/gateway/meta-webhook-foundation.d.ts +12 -0
  108. package/dist/gateway/meta-webhook-foundation.d.ts.map +1 -0
  109. package/dist/gateway/meta-webhook-foundation.js +25 -0
  110. package/dist/gateway/meta-webhook-foundation.js.map +1 -0
  111. package/dist/gateway/mode-b-routes.d.ts +8 -0
  112. package/dist/gateway/mode-b-routes.d.ts.map +1 -1
  113. package/dist/gateway/mode-b-routes.js +48 -1
  114. package/dist/gateway/mode-b-routes.js.map +1 -1
  115. package/dist/gateway/outbound-routes.d.ts.map +1 -1
  116. package/dist/gateway/outbound-routes.js +49 -21
  117. package/dist/gateway/outbound-routes.js.map +1 -1
  118. package/dist/gateway/routing-test-routes.d.ts +10 -0
  119. package/dist/gateway/routing-test-routes.d.ts.map +1 -0
  120. package/dist/gateway/routing-test-routes.js +76 -0
  121. package/dist/gateway/routing-test-routes.js.map +1 -0
  122. package/dist/gateway/sqlite-email-thread-store.d.ts +13 -0
  123. package/dist/gateway/sqlite-email-thread-store.d.ts.map +1 -0
  124. package/dist/gateway/sqlite-email-thread-store.js +66 -0
  125. package/dist/gateway/sqlite-email-thread-store.js.map +1 -0
  126. package/dist/gateway/stt-factory.d.ts +3 -0
  127. package/dist/gateway/stt-factory.d.ts.map +1 -0
  128. package/dist/gateway/stt-factory.js +21 -0
  129. package/dist/gateway/stt-factory.js.map +1 -0
  130. package/dist/gateway/tenant-admin-routes.d.ts.map +1 -1
  131. package/dist/gateway/tenant-admin-routes.js +14 -0
  132. package/dist/gateway/tenant-admin-routes.js.map +1 -1
  133. package/dist/gateway/tenant-tool-factory.d.ts +10 -0
  134. package/dist/gateway/tenant-tool-factory.d.ts.map +1 -0
  135. package/dist/gateway/tenant-tool-factory.js +55 -0
  136. package/dist/gateway/tenant-tool-factory.js.map +1 -0
  137. package/dist/gateway/webhook-dedup.d.ts +13 -0
  138. package/dist/gateway/webhook-dedup.d.ts.map +1 -0
  139. package/dist/gateway/webhook-dedup.js +37 -0
  140. package/dist/gateway/webhook-dedup.js.map +1 -0
  141. package/dist/gateway/webhook-tool-executor.d.ts +17 -0
  142. package/dist/gateway/webhook-tool-executor.d.ts.map +1 -0
  143. package/dist/gateway/webhook-tool-executor.js +69 -0
  144. package/dist/gateway/webhook-tool-executor.js.map +1 -0
  145. package/dist/gateway/whatsapp-webhook-routes.d.ts +11 -0
  146. package/dist/gateway/whatsapp-webhook-routes.d.ts.map +1 -1
  147. package/dist/gateway/whatsapp-webhook-routes.js +158 -22
  148. package/dist/gateway/whatsapp-webhook-routes.js.map +1 -1
  149. package/dist/gateway/ws-tenant-routes.d.ts +9 -0
  150. package/dist/gateway/ws-tenant-routes.d.ts.map +1 -1
  151. package/dist/gateway/ws-tenant-routes.js +149 -6
  152. package/dist/gateway/ws-tenant-routes.js.map +1 -1
  153. package/dist/index.d.ts +47 -3
  154. package/dist/index.d.ts.map +1 -1
  155. package/dist/index.js +28 -1
  156. package/dist/index.js.map +1 -1
  157. package/dist/observability/composite-event-store.d.ts +13 -0
  158. package/dist/observability/composite-event-store.d.ts.map +1 -0
  159. package/dist/observability/composite-event-store.js +37 -0
  160. package/dist/observability/composite-event-store.js.map +1 -0
  161. package/dist/observability/prometheus-collector.d.ts +33 -0
  162. package/dist/observability/prometheus-collector.d.ts.map +1 -0
  163. package/dist/observability/prometheus-collector.js +170 -0
  164. package/dist/observability/prometheus-collector.js.map +1 -0
  165. package/dist/session/agent-handoff-summarizer.d.ts +11 -0
  166. package/dist/session/agent-handoff-summarizer.d.ts.map +1 -0
  167. package/dist/session/agent-handoff-summarizer.js +26 -0
  168. package/dist/session/agent-handoff-summarizer.js.map +1 -0
  169. package/dist/session/mode-b-orchestrator.d.ts +47 -1
  170. package/dist/session/mode-b-orchestrator.d.ts.map +1 -1
  171. package/dist/session/mode-b-orchestrator.js +284 -16
  172. package/dist/session/mode-b-orchestrator.js.map +1 -1
  173. package/dist/session/mode-b-session.d.ts +21 -1
  174. package/dist/session/mode-b-session.d.ts.map +1 -1
  175. package/dist/session/mode-b-session.js +40 -0
  176. package/dist/session/mode-b-session.js.map +1 -1
  177. package/dist/session/session-registry.d.ts +1 -0
  178. package/dist/session/session-registry.d.ts.map +1 -1
  179. package/dist/session/session-registry.js +33 -0
  180. package/dist/session/session-registry.js.map +1 -1
  181. package/dist/session/session-serializer.d.ts.map +1 -1
  182. package/dist/session/session-serializer.js +4 -0
  183. package/dist/session/session-serializer.js.map +1 -1
  184. package/dist/tenant/agent-resolver.d.ts +26 -0
  185. package/dist/tenant/agent-resolver.d.ts.map +1 -0
  186. package/dist/tenant/agent-resolver.js +232 -0
  187. package/dist/tenant/agent-resolver.js.map +1 -0
  188. package/dist/tenant/ping-pong-guard.d.ts +9 -0
  189. package/dist/tenant/ping-pong-guard.d.ts.map +1 -0
  190. package/dist/tenant/ping-pong-guard.js +30 -0
  191. package/dist/tenant/ping-pong-guard.js.map +1 -0
  192. package/dist/tenant/system-prompt-builder.d.ts +1 -1
  193. package/dist/tenant/system-prompt-builder.d.ts.map +1 -1
  194. package/dist/tenant/system-prompt-builder.js +13 -1
  195. package/dist/tenant/system-prompt-builder.js.map +1 -1
  196. package/dist/tenant/tenant-registry.d.ts +3 -0
  197. package/dist/tenant/tenant-registry.d.ts.map +1 -1
  198. package/dist/tenant/tenant-registry.js +83 -4
  199. package/dist/tenant/tenant-registry.js.map +1 -1
  200. package/dist/tenant/tenant-router.d.ts +27 -0
  201. package/dist/tenant/tenant-router.d.ts.map +1 -0
  202. package/dist/tenant/tenant-router.js +72 -0
  203. package/dist/tenant/tenant-router.js.map +1 -0
  204. package/dist/utils/hmac.d.ts +1 -0
  205. package/dist/utils/hmac.d.ts.map +1 -1
  206. package/dist/utils/hmac.js +3 -0
  207. package/dist/utils/hmac.js.map +1 -1
  208. package/package.json +2 -2
@@ -0,0 +1,84 @@
1
+ // Gateway: Knowledge source admin CRUD routes -- Hono sub-app for managing knowledge sources
2
+ // Follows tenant-admin-routes.ts pattern
3
+ import { Hono } from "hono";
4
+ import { KilnError } from "@kilnai/core";
5
+ import { requireBearer } from "./auth-middleware.js";
6
+ export function createKnowledgeAdminRoutes(config) {
7
+ const app = new Hono();
8
+ if (config.adminToken) {
9
+ app.use("*", requireBearer(config.adminToken));
10
+ }
11
+ // GET /sources -- list knowledge sources for this app
12
+ app.get("/sources", (c) => {
13
+ const sources = config.sourceManager.list(config.appName);
14
+ return c.json({ sources });
15
+ });
16
+ // GET /sources/:sourceId -- get single source
17
+ app.get("/sources/:sourceId", (c) => {
18
+ const sourceId = c.req.param("sourceId");
19
+ const source = config.sourceManager.get(config.appName, sourceId);
20
+ if (!source) {
21
+ return c.json({ error: "Source not found" }, 404);
22
+ }
23
+ return c.json(source);
24
+ });
25
+ // POST /sources -- add a new knowledge source
26
+ app.post("/sources", async (c) => {
27
+ let body;
28
+ try {
29
+ body = await c.req.json();
30
+ }
31
+ catch {
32
+ return c.json({ error: "Invalid JSON body" }, 400);
33
+ }
34
+ const name = body.name;
35
+ const type = body.type;
36
+ const uri = body.uri;
37
+ if (!name || !type || !uri) {
38
+ return c.json({ error: "Missing required fields: name, type, uri" }, 400);
39
+ }
40
+ if (!["file", "url", "pdf"].includes(type)) {
41
+ return c.json({ error: "Invalid type. Must be: file, url, pdf" }, 400);
42
+ }
43
+ try {
44
+ const source = await config.sourceManager.addSource({
45
+ appName: config.appName,
46
+ name,
47
+ type: type,
48
+ uri,
49
+ });
50
+ return c.json(source, 201);
51
+ }
52
+ catch (err) {
53
+ if (err instanceof KilnError && err.code === "SOURCE_ALREADY_EXISTS") {
54
+ return c.json({ error: err.message }, 409);
55
+ }
56
+ throw err;
57
+ }
58
+ });
59
+ // POST /sources/:sourceId/reindex -- force reindex a source
60
+ app.post("/sources/:sourceId/reindex", async (c) => {
61
+ const sourceId = c.req.param("sourceId");
62
+ try {
63
+ const source = await config.sourceManager.reindex(config.appName, sourceId);
64
+ return c.json(source);
65
+ }
66
+ catch (err) {
67
+ if (err instanceof KilnError && err.code === "SOURCE_NOT_FOUND") {
68
+ return c.json({ error: "Source not found" }, 404);
69
+ }
70
+ throw err;
71
+ }
72
+ });
73
+ // DELETE /sources/:sourceId -- remove a knowledge source
74
+ app.delete("/sources/:sourceId", async (c) => {
75
+ const sourceId = c.req.param("sourceId");
76
+ const removed = await config.sourceManager.removeSource(config.appName, sourceId);
77
+ if (!removed) {
78
+ return c.json({ error: "Source not found" }, 404);
79
+ }
80
+ return c.json({ removed: true });
81
+ });
82
+ return app;
83
+ }
84
+ //# sourceMappingURL=knowledge-admin-routes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-admin-routes.js","sourceRoot":"","sources":["../../src/gateway/knowledge-admin-routes.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { KnowledgeConfig, VectorStore, ContactMemoryConfig, EmbeddingAdapter, ContactMemoryService } from "@kilnai/core";
2
+ import { RetrievalPipeline, SourceManager } from "@kilnai/core";
3
+ export interface KnowledgePipelineResult {
4
+ readonly pipeline: RetrievalPipeline;
5
+ readonly store: VectorStore;
6
+ readonly embedder: EmbeddingAdapter;
7
+ readonly close: () => Promise<void>;
8
+ }
9
+ export declare function createKnowledgePipeline(config: KnowledgeConfig): Promise<KnowledgePipelineResult>;
10
+ export declare function createContactMemoryService(config: {
11
+ contactMemoryConfig: ContactMemoryConfig;
12
+ vectorStore: VectorStore;
13
+ embedder: EmbeddingAdapter;
14
+ }): ContactMemoryService;
15
+ export interface SourceManagerResult {
16
+ readonly sourceManager: SourceManager;
17
+ }
18
+ export declare function createSourceManager(pipeline: RetrievalPipeline, store: VectorStore, storageDir?: string): SourceManagerResult;
19
+ //# sourceMappingURL=knowledge-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-factory.d.ts","sourceRoot":"","sources":["../../src/gateway/knowledge-factory.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAiB,mBAAmB,EAAE,gBAAgB,EAAE,oBAAoB,EAAY,MAAM,cAAc,CAAC;AACvJ,OAAO,EAML,iBAAiB,EAQjB,aAAa,EASd,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACrC;AAED,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,uBAAuB,CAAC,CA0FvG;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,gBAAgB,CAAC;CAC5B,GAAG,oBAAoB,CAsBvB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;CACvC;AAED,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,iBAAiB,EAC3B,KAAK,EAAE,WAAW,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,mBAAmB,CAmBrB"}
@@ -0,0 +1,122 @@
1
+ // Knowledge pipeline factory -- resolves KnowledgeConfig to concrete pipeline
2
+ import { OpenAIEmbeddingAdapter, OllamaEmbeddingAdapter, InMemoryVectorStore, RecursiveTextChunker, MarkdownChunker, RetrievalPipeline, KilnError, createPgVectorStore, ContextualEnricher, AnthropicAdapter, OpenAIAdapter, DeepSeekAdapter, OllamaAdapter, SourceManager, FileExtractor, UrlExtractor, PdfExtractor, CompositeExtractor, InMemorySourceStore, JsonSourceStore, ContactMemoryServiceImpl, CohereReranker, } from "@kilnai/core";
3
+ export async function createKnowledgePipeline(config) {
4
+ // Fail-fast: validate API key for non-ollama providers
5
+ if (config.embedding.provider !== "ollama" && config.embedding.apiKeyEnv) {
6
+ const apiKey = process.env[config.embedding.apiKeyEnv] ?? "";
7
+ if (!apiKey) {
8
+ throw new KilnError("CONFIG_MISSING_ENV", `Embedding provider "${config.embedding.provider}" requires API key from env var "${config.embedding.apiKeyEnv}"`, {
9
+ context: { provider: config.embedding.provider, apiKeyEnv: config.embedding.apiKeyEnv },
10
+ });
11
+ }
12
+ }
13
+ // Resolve embedding adapter
14
+ const embedder = config.embedding.provider === "openai"
15
+ ? new OpenAIEmbeddingAdapter({
16
+ apiKey: config.embedding.apiKeyEnv ? process.env[config.embedding.apiKeyEnv] ?? "" : "",
17
+ model: config.embedding.model,
18
+ })
19
+ : new OllamaEmbeddingAdapter({
20
+ model: config.embedding.model,
21
+ baseUrl: config.embedding.baseUrl,
22
+ });
23
+ // Resolve vector store
24
+ let store;
25
+ let closeFn = async () => { };
26
+ if (config.store.backend === "pgvector") {
27
+ if (!config.store.connectionString) {
28
+ throw new KilnError("CONFIG_INVALID", "pgvector backend requires connectionString", {
29
+ context: { backend: "pgvector" },
30
+ });
31
+ }
32
+ const pgStore = await createPgVectorStore({ connectionString: config.store.connectionString });
33
+ await pgStore.initialize();
34
+ store = pgStore;
35
+ closeFn = () => pgStore.close();
36
+ }
37
+ else {
38
+ store = new InMemoryVectorStore();
39
+ }
40
+ // Resolve chunker
41
+ const chunker = config.chunking.strategy === "markdown"
42
+ ? new MarkdownChunker()
43
+ : new RecursiveTextChunker();
44
+ // Resolve contextual enricher (optional)
45
+ let enricher;
46
+ if (config.chunking.contextual?.enabled) {
47
+ const ctx = config.chunking.contextual;
48
+ const apiKey = ctx.apiKeyEnv ? process.env[ctx.apiKeyEnv] ?? "" : "";
49
+ const provider = ctx.provider === "anthropic"
50
+ ? new AnthropicAdapter({ apiKey, defaultModel: ctx.model })
51
+ : ctx.provider === "openai"
52
+ ? new OpenAIAdapter({ apiKey, defaultModel: ctx.model })
53
+ : ctx.provider === "deepseek"
54
+ ? new DeepSeekAdapter({ apiKey, defaultModel: ctx.model })
55
+ : new OllamaAdapter({ baseUrl: ctx.baseUrl, defaultModel: ctx.model });
56
+ enricher = new ContextualEnricher({
57
+ provider,
58
+ concurrency: ctx.concurrency,
59
+ });
60
+ }
61
+ // Resolve reranker (optional)
62
+ let reranker;
63
+ if (config.reranker) {
64
+ const apiKey = process.env[config.reranker.apiKeyEnv] ?? "";
65
+ if (!apiKey) {
66
+ throw new KilnError("CONFIG_MISSING_ENV", `Reranker provider "${config.reranker.provider}" requires API key from env var "${config.reranker.apiKeyEnv}"`, {
67
+ context: { provider: config.reranker.provider, apiKeyEnv: config.reranker.apiKeyEnv },
68
+ });
69
+ }
70
+ reranker = new CohereReranker({ apiKey, model: config.reranker.model });
71
+ }
72
+ const pipeline = new RetrievalPipeline({
73
+ embedder,
74
+ store,
75
+ chunker,
76
+ chunkConfig: {
77
+ chunkSize: config.chunking.chunkSize ?? 512,
78
+ chunkOverlap: config.chunking.chunkOverlap ?? 50,
79
+ },
80
+ enricher,
81
+ reranker,
82
+ });
83
+ return { pipeline, store, embedder, close: closeFn };
84
+ }
85
+ export function createContactMemoryService(config) {
86
+ const apiKey = config.contactMemoryConfig.apiKeyEnv
87
+ ? process.env[config.contactMemoryConfig.apiKeyEnv] ?? ""
88
+ : "";
89
+ const provider = config.contactMemoryConfig.provider === "anthropic"
90
+ ? new AnthropicAdapter({ apiKey, defaultModel: config.contactMemoryConfig.model })
91
+ : config.contactMemoryConfig.provider === "openai"
92
+ ? new OpenAIAdapter({ apiKey, defaultModel: config.contactMemoryConfig.model })
93
+ : config.contactMemoryConfig.provider === "deepseek"
94
+ ? new DeepSeekAdapter({ apiKey, defaultModel: config.contactMemoryConfig.model })
95
+ : new OllamaAdapter({
96
+ baseUrl: config.contactMemoryConfig.baseUrl,
97
+ defaultModel: config.contactMemoryConfig.model,
98
+ });
99
+ return new ContactMemoryServiceImpl({
100
+ vectorStore: config.vectorStore,
101
+ embedder: config.embedder,
102
+ provider,
103
+ });
104
+ }
105
+ export function createSourceManager(pipeline, store, storageDir) {
106
+ const extractor = new CompositeExtractor([
107
+ new FileExtractor(),
108
+ new UrlExtractor(),
109
+ new PdfExtractor(),
110
+ ]);
111
+ const sourceStore = storageDir
112
+ ? new JsonSourceStore(storageDir)
113
+ : new InMemorySourceStore();
114
+ const sourceManager = new SourceManager({
115
+ sourceStore,
116
+ extractor,
117
+ pipeline,
118
+ vectorStore: store,
119
+ });
120
+ return { sourceManager };
121
+ }
122
+ //# sourceMappingURL=knowledge-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"knowledge-factory.js","sourceRoot":"","sources":["../../src/gateway/knowledge-factory.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import type { ContentPart } from "@kilnai/core";
2
- import type { ModeBOrchestrator } from "../session/mode-b-orchestrator.js";
2
+ import type { ModeBOrchestrator, PerCallToolConfig, ToolExecutionSummary } from "../session/mode-b-orchestrator.js";
3
3
  import type { SessionRegistry } from "../session/session-registry.js";
4
4
  import type { BillingConfig } from "./budget-middleware.js";
5
5
  import type { ConversationEventEmitter } from "./conversation-event-emitter.js";
@@ -18,8 +18,21 @@ export interface InboundMessageContext {
18
18
  readonly channel: string;
19
19
  readonly idleTimeoutMs?: number;
20
20
  readonly recalledMemory?: string;
21
+ readonly knowledgeContext?: string;
22
+ readonly contactContext?: string;
21
23
  readonly callBuiltinTools?: ReadonlyMap<string, (input: Record<string, unknown>) => Promise<unknown>>;
24
+ readonly perCallConfig?: PerCallToolConfig;
22
25
  readonly traceId?: string;
26
+ readonly activeAgentId?: string;
27
+ readonly activeAgentName?: string;
28
+ readonly isHandoff?: boolean;
29
+ readonly previousAgentId?: string;
30
+ readonly previousAgentName?: string;
31
+ readonly handoffBrief?: string;
32
+ readonly pingPongBlocked?: boolean;
33
+ readonly pingPongReason?: string;
34
+ readonly routingTier?: "rule" | "embedding" | "fallback";
35
+ readonly routingConfidence?: number;
23
36
  }
24
37
  export interface InboundMessageResult {
25
38
  readonly parts: readonly ContentPart[];
@@ -32,7 +45,14 @@ export interface InboundMessageResult {
32
45
  readonly sessionMode: SessionMode;
33
46
  readonly escalation?: EscalationSignal;
34
47
  readonly contextSummary?: string;
48
+ readonly toolExecutions?: readonly ToolExecutionSummary[];
35
49
  readonly traceId: string;
50
+ readonly activeAgentId?: string;
51
+ readonly routingDecision?: {
52
+ readonly provider: string;
53
+ readonly model: string;
54
+ readonly routingTier: string;
55
+ };
36
56
  }
37
57
  export interface BudgetDeniedResult {
38
58
  readonly budgetExhausted: true;
@@ -1 +1 @@
1
- {"version":3,"file":"message-pipeline.d.ts","sourceRoot":"","sources":["../../src/gateway/message-pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAqB,MAAM,mCAAmC,CAAC;AAC9F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAG1E,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,SAAS,EAAE,SAAS,WAAW,EAAE,CAAC;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,wBAAwB,CAAC;IACjD,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;IACtG,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAC;IACvC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IACvC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,eAAe,EAAE,IAAI,CAAC;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,oBAAoB,CAAA;CAAE,GAC1C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,YAAY,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAEpD,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,qBAAqB,GAAG,OAAO,CAAC,aAAa,CAAC,CA8G9F"}
1
+ {"version":3,"file":"message-pipeline.d.ts","sourceRoot":"","sources":["../../src/gateway/message-pipeline.ts"],"names":[],"mappings":"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"}
@@ -26,8 +26,10 @@ export async function processInboundMessage(ctx) {
26
26
  idleTimeoutMs: ctx.idleTimeoutMs,
27
27
  });
28
28
  trace.log("pipeline", "Session ready", { sessionId: session.id, sessionMode: session.sessionMode });
29
+ // Merge recalled memory + knowledge context + contact context
30
+ const combinedMemory = [ctx.recalledMemory, ctx.knowledgeContext, ctx.contactContext].filter(Boolean).join("\n\n") || undefined;
29
31
  // Process message
30
- const result = await ctx.orchestrator.processMessage(session, ctx.userParts, ctx.recalledMemory, ctx.callBuiltinTools);
32
+ const result = await ctx.orchestrator.processMessage(session, ctx.userParts, combinedMemory, ctx.callBuiltinTools, ctx.perCallConfig);
31
33
  // Persist mutated session (required for non-reference stores like Redis)
32
34
  await ctx.sessionRegistry.save(session);
33
35
  // Report usage (fire-and-forget)
@@ -46,6 +48,9 @@ export async function processInboundMessage(ctx) {
46
48
  tenantId: ctx.tenantId,
47
49
  channel: ctx.channel,
48
50
  externalUserId: ctx.userId,
51
+ sessionId: session.id,
52
+ schemaVersion: "1",
53
+ turnNumber: session.messageCount,
49
54
  traceId: trace.traceId,
50
55
  timestamp: new Date().toISOString(),
51
56
  });
@@ -56,6 +61,8 @@ export async function processInboundMessage(ctx) {
56
61
  tenantId: ctx.tenantId,
57
62
  channel: ctx.channel,
58
63
  externalUserId: ctx.userId,
64
+ sessionId: session.id,
65
+ schemaVersion: "1",
59
66
  sessionMode: session.sessionMode,
60
67
  traceId: trace.traceId,
61
68
  timestamp: new Date().toISOString(),
@@ -69,6 +76,8 @@ export async function processInboundMessage(ctx) {
69
76
  tenantId: ctx.tenantId,
70
77
  channel: ctx.channel,
71
78
  externalUserId: ctx.userId,
79
+ sessionId: session.id,
80
+ schemaVersion: "1",
72
81
  escalationReason: result.escalation.reason,
73
82
  escalationDetail: result.escalation.detail,
74
83
  summary: result.contextSummary,
@@ -77,6 +86,78 @@ export async function processInboundMessage(ctx) {
77
86
  timestamp: new Date().toISOString(),
78
87
  });
79
88
  }
89
+ // Emit TOOL_EXECUTED events for product backend visibility
90
+ if (result.toolExecutions) {
91
+ for (const exec of result.toolExecutions) {
92
+ ctx.eventEmitter.emit({
93
+ eventType: "TOOL_EXECUTED",
94
+ tenantId: ctx.tenantId,
95
+ channel: ctx.channel,
96
+ externalUserId: ctx.userId,
97
+ sessionId: session.id,
98
+ schemaVersion: "1",
99
+ toolName: exec.toolName,
100
+ durationMs: exec.durationMs,
101
+ success: exec.success,
102
+ resultSummary: exec.resultSummary,
103
+ traceId: trace.traceId,
104
+ timestamp: new Date().toISOString(),
105
+ });
106
+ }
107
+ }
108
+ // Emit AGENT_ROUTED when multi-agent routing is active
109
+ if (ctx.activeAgentId) {
110
+ ctx.eventEmitter.emit({
111
+ eventType: "AGENT_ROUTED",
112
+ tenantId: ctx.tenantId,
113
+ channel: ctx.channel,
114
+ externalUserId: ctx.userId,
115
+ sessionId: session.id,
116
+ schemaVersion: "1",
117
+ activeAgentId: ctx.activeAgentId,
118
+ activeAgentName: ctx.activeAgentName,
119
+ routingTier: ctx.routingTier,
120
+ routingConfidence: ctx.routingConfidence,
121
+ traceId: trace.traceId,
122
+ timestamp: new Date().toISOString(),
123
+ });
124
+ }
125
+ // Emit AGENT_HANDOFF when an agent switch occurred (or was blocked)
126
+ if (ctx.isHandoff || ctx.pingPongBlocked) {
127
+ ctx.eventEmitter.emit({
128
+ eventType: "AGENT_HANDOFF",
129
+ tenantId: ctx.tenantId,
130
+ channel: ctx.channel,
131
+ externalUserId: ctx.userId,
132
+ sessionId: session.id,
133
+ schemaVersion: "1",
134
+ fromAgentId: ctx.previousAgentId,
135
+ fromAgentName: ctx.previousAgentName,
136
+ toAgentId: ctx.activeAgentId,
137
+ toAgentName: ctx.activeAgentName,
138
+ handoffBrief: ctx.handoffBrief,
139
+ handoffBlocked: ctx.pingPongBlocked,
140
+ handoffBlockReason: ctx.pingPongReason,
141
+ traceId: trace.traceId,
142
+ timestamp: new Date().toISOString(),
143
+ });
144
+ }
145
+ // Emit MODEL_ROUTED when model routing occurred
146
+ if (result.routingDecision) {
147
+ ctx.eventEmitter.emit({
148
+ eventType: "MODEL_ROUTED",
149
+ tenantId: ctx.tenantId,
150
+ channel: ctx.channel,
151
+ externalUserId: ctx.userId,
152
+ selectedProvider: result.routingDecision.provider,
153
+ selectedModel: result.routingDecision.model,
154
+ routingTier: result.routingDecision.routingTier,
155
+ sessionId: session.id,
156
+ schemaVersion: "1",
157
+ traceId: trace.traceId,
158
+ timestamp: new Date().toISOString(),
159
+ });
160
+ }
80
161
  }
81
162
  trace.log("pipeline", "Message processed", { queued: result.queued, tokens: result.inputTokens + result.outputTokens });
82
163
  return {
@@ -92,7 +173,12 @@ export async function processInboundMessage(ctx) {
92
173
  sessionMode: session.sessionMode,
93
174
  escalation: result.escalation,
94
175
  contextSummary: result.contextSummary,
176
+ toolExecutions: result.toolExecutions,
95
177
  traceId: trace.traceId,
178
+ activeAgentId: ctx.activeAgentId,
179
+ routingDecision: result.routingDecision
180
+ ? { provider: result.routingDecision.provider, model: result.routingDecision.model, routingTier: result.routingDecision.routingTier }
181
+ : undefined,
96
182
  },
97
183
  };
98
184
  }
@@ -1 +1 @@
1
- {"version":3,"file":"message-pipeline.js","sourceRoot":"","sources":["../../src/gateway/message-pipeline.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAIlE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA0ClD,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,GAA0B;IACpE,MAAM,KAAK,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAC5C,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,4BAA4B,EAAE,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAExH,eAAe;IACf,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,MAAM,YAAY,GAAG,MAAM,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;QAChF,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC1B,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;YACvC,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,YAAY,EAAE;oBACZ,eAAe,EAAE,IAAI;oBACrB,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,iBAAiB,IAAI,mBAAmB;iBAC9D;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,eAAe,CAAC,WAAW,CAAC;QACpD,OAAO,EAAE,GAAG,CAAC,OAAO;QACpB,QAAQ,EAAE,GAAG,CAAC,QAAQ;QACtB,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,aAAa,EAAE,GAAG,CAAC,aAAa;KACjC,CAAC,CAAC;IACH,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,eAAe,EAAE,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAEpG,kBAAkB;IAClB,MAAM,MAAM,GAAsB,MAAM,GAAG,CAAC,YAAY,CAAC,cAAc,CACrE,OAAO,EACP,GAAG,CAAC,SAAS,EACb,GAAG,CAAC,cAAc,EAClB,GAAG,CAAC,gBAAgB,CACrB,CAAC;IAEF,yEAAyE;IACzE,MAAM,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAExC,iCAAiC;IACjC,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE;YACvB,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,MAAM;YACpC,QAAQ,EAAE,CAAC;YACX,MAAM,EAAE,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,YAAY;YAChD,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,KAAK,IAAI,SAAS;SAC3C,CAAC,CAAC;IACL,CAAC;IAED,gCAAgC;IAChC,IAAI,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;QACrC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC;YACpB,SAAS,EAAE,kBAAkB;YAC7B,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,cAAc,EAAE,GAAG,CAAC,MAAM;YAC1B,OAAO,EAAE,KAAK,CAAC,OAAO;YACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,CAAC,CAAC;QAEH,8EAA8E;QAC9E,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;YAClB,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC;gBACpB,SAAS,EAAE,wBAAwB;gBACnC,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,cAAc,EAAE,GAAG,CAAC,MAAM;gBAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC;QACL,CAAC;QAED,6DAA6D;QAC7D,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,UAAU,EAAE,qBAAqB,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YACpF,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC;gBACpB,SAAS,EAAE,qBAAqB;gBAChC,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,OAAO,EAAE,GAAG,CAAC,OAAO;gBACpB,cAAc,EAAE,GAAG,CAAC,MAAM;gBAC1B,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM;gBAC1C,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,MAAM;gBAC1C,OAAO,EAAE,MAAM,CAAC,cAAc;gBAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;gBAChC,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,mBAAmB,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;IAExH,OAAO;QACL,EAAE,EAAE,IAAI;QACR,MAAM,EAAE;YACN,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,eAAe,EAAE,MAAM,CAAC,eAAe;YACvC,gBAAgB,EAAE,MAAM,CAAC,gBAAgB;YACzC,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,SAAS,EAAE,OAAO,CAAC,EAAE;YACrB,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"message-pipeline.js","sourceRoot":"","sources":["../../src/gateway/message-pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { Hono } from "hono";
2
+ import type { ModeBOrchestrator } from "../session/mode-b-orchestrator.js";
3
+ import type { SessionRegistry } from "../session/session-registry.js";
4
+ import type { TenantRegistry } from "../tenant/tenant-registry.js";
5
+ import type { AgentHandoffSummarizer } from "../session/agent-handoff-summarizer.js";
6
+ import type { EventBus } from "@kilnai/core";
7
+ import type { BillingConfig } from "./budget-middleware.js";
8
+ import type { ConversationEventEmitter } from "./conversation-event-emitter.js";
9
+ import type { WebhookDedup } from "./webhook-dedup.js";
10
+ import type { SttAdapter, RetrievalPipeline, ContactMemoryService } from "@kilnai/core";
11
+ export interface MessengerWebhookConfig {
12
+ readonly appName: string;
13
+ readonly orchestrator: ModeBOrchestrator;
14
+ readonly sessionRegistry: SessionRegistry;
15
+ readonly tenantRegistry: TenantRegistry;
16
+ readonly verifyToken: string;
17
+ readonly appSecret?: string;
18
+ readonly billing?: BillingConfig;
19
+ readonly eventEmitter?: ConversationEventEmitter;
20
+ readonly memoryBasePath?: string;
21
+ readonly sttAdapter?: SttAdapter;
22
+ readonly knowledgePipeline?: RetrievalPipeline;
23
+ readonly knowledgeMode?: "auto" | "tool";
24
+ readonly contactMemoryService?: ContactMemoryService;
25
+ readonly dedup?: WebhookDedup;
26
+ readonly handoffSummarizer?: AgentHandoffSummarizer;
27
+ readonly eventBus?: EventBus;
28
+ }
29
+ export declare function createMessengerWebhookRoutes(config: MessengerWebhookConfig): Hono;
30
+ //# sourceMappingURL=messenger-webhook-routes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"messenger-webhook-routes.d.ts","sourceRoot":"","sources":["../../src/gateway/messenger-webhook-routes.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAM5B,OAAO,KAAK,EAAE,iBAAiB,EAAqB,MAAM,mCAAmC,CAAC;AAC9F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAEnE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AACrF,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAG7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAIhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAIxF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,wBAAwB,CAAC;IACjD,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC;IACjC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IAC/C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IACrD,QAAQ,CAAC,KAAK,CAAC,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IACpD,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CAC9B;AAuFD,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI,CA4EjF"}