@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.
- package/README.md +2 -2
- package/dist/channels/email-api.d.ts +29 -0
- package/dist/channels/email-api.d.ts.map +1 -0
- package/dist/channels/email-api.js +133 -0
- package/dist/channels/email-api.js.map +1 -0
- package/dist/channels/email-channel.d.ts +26 -0
- package/dist/channels/email-channel.d.ts.map +1 -0
- package/dist/channels/email-channel.js +59 -0
- package/dist/channels/email-channel.js.map +1 -0
- package/dist/channels/email-template.d.ts +10 -0
- package/dist/channels/email-template.d.ts.map +1 -0
- package/dist/channels/email-template.js +63 -0
- package/dist/channels/email-template.js.map +1 -0
- package/dist/channels/instagram-api.d.ts +29 -0
- package/dist/channels/instagram-api.d.ts.map +1 -0
- package/dist/channels/instagram-api.js +75 -0
- package/dist/channels/instagram-api.js.map +1 -0
- package/dist/channels/instagram-channel.d.ts +24 -0
- package/dist/channels/instagram-channel.d.ts.map +1 -0
- package/dist/channels/instagram-channel.js +55 -0
- package/dist/channels/instagram-channel.js.map +1 -0
- package/dist/channels/message-formatter.d.ts +17 -0
- package/dist/channels/message-formatter.d.ts.map +1 -1
- package/dist/channels/message-formatter.js +27 -0
- package/dist/channels/message-formatter.js.map +1 -1
- package/dist/channels/messenger-api.d.ts +27 -0
- package/dist/channels/messenger-api.d.ts.map +1 -0
- package/dist/channels/messenger-api.js +75 -0
- package/dist/channels/messenger-api.js.map +1 -0
- package/dist/channels/messenger-channel.d.ts +23 -0
- package/dist/channels/messenger-channel.d.ts.map +1 -0
- package/dist/channels/messenger-channel.js +55 -0
- package/dist/channels/messenger-channel.js.map +1 -0
- package/dist/enrichment/enrichment-runner.d.ts +17 -0
- package/dist/enrichment/enrichment-runner.d.ts.map +1 -0
- package/dist/enrichment/enrichment-runner.js +45 -0
- package/dist/enrichment/enrichment-runner.js.map +1 -0
- package/dist/enrichment/sqlite-enrichment-store.d.ts +14 -0
- package/dist/enrichment/sqlite-enrichment-store.d.ts.map +1 -0
- package/dist/enrichment/sqlite-enrichment-store.js +69 -0
- package/dist/enrichment/sqlite-enrichment-store.js.map +1 -0
- package/dist/gateway/audio-preprocessor.d.ts +11 -0
- package/dist/gateway/audio-preprocessor.d.ts.map +1 -0
- package/dist/gateway/audio-preprocessor.js +76 -0
- package/dist/gateway/audio-preprocessor.js.map +1 -0
- package/dist/gateway/auth-middleware.d.ts.map +1 -1
- package/dist/gateway/auth-middleware.js +10 -2
- package/dist/gateway/auth-middleware.js.map +1 -1
- package/dist/gateway/contact-memory-admin-routes.d.ts +9 -0
- package/dist/gateway/contact-memory-admin-routes.d.ts.map +1 -0
- package/dist/gateway/contact-memory-admin-routes.js +42 -0
- package/dist/gateway/contact-memory-admin-routes.js.map +1 -0
- package/dist/gateway/context-formatter.d.ts +5 -0
- package/dist/gateway/context-formatter.d.ts.map +1 -0
- package/dist/gateway/context-formatter.js +16 -0
- package/dist/gateway/context-formatter.js.map +1 -0
- package/dist/gateway/conversation-event-emitter.d.ts +4 -1
- package/dist/gateway/conversation-event-emitter.d.ts.map +1 -1
- package/dist/gateway/conversation-event-emitter.js +44 -13
- package/dist/gateway/conversation-event-emitter.js.map +1 -1
- package/dist/gateway/email-loop-guard.d.ts +10 -0
- package/dist/gateway/email-loop-guard.d.ts.map +1 -0
- package/dist/gateway/email-loop-guard.js +39 -0
- package/dist/gateway/email-loop-guard.js.map +1 -0
- package/dist/gateway/email-thread-store.d.ts +24 -0
- package/dist/gateway/email-thread-store.d.ts.map +1 -0
- package/dist/gateway/email-thread-store.js +34 -0
- package/dist/gateway/email-thread-store.js.map +1 -0
- package/dist/gateway/email-webhook-routes.d.ts +32 -0
- package/dist/gateway/email-webhook-routes.d.ts.map +1 -0
- package/dist/gateway/email-webhook-routes.js +411 -0
- package/dist/gateway/email-webhook-routes.js.map +1 -0
- package/dist/gateway/enrichment-admin-routes.d.ts +9 -0
- package/dist/gateway/enrichment-admin-routes.d.ts.map +1 -0
- package/dist/gateway/enrichment-admin-routes.js +41 -0
- package/dist/gateway/enrichment-admin-routes.js.map +1 -0
- package/dist/gateway/gateway-routes.d.ts +17 -1
- package/dist/gateway/gateway-routes.d.ts.map +1 -1
- package/dist/gateway/gateway-routes.js +40 -0
- package/dist/gateway/gateway-routes.js.map +1 -1
- package/dist/gateway/gateway-server.d.ts.map +1 -1
- package/dist/gateway/gateway-server.js +248 -12
- package/dist/gateway/gateway-server.js.map +1 -1
- package/dist/gateway/handoff-routes.d.ts.map +1 -1
- package/dist/gateway/handoff-routes.js +39 -0
- package/dist/gateway/handoff-routes.js.map +1 -1
- package/dist/gateway/instagram-webhook-routes.d.ts +30 -0
- package/dist/gateway/instagram-webhook-routes.d.ts.map +1 -0
- package/dist/gateway/instagram-webhook-routes.js +394 -0
- package/dist/gateway/instagram-webhook-routes.js.map +1 -0
- package/dist/gateway/knowledge-admin-routes.d.ts +9 -0
- package/dist/gateway/knowledge-admin-routes.d.ts.map +1 -0
- package/dist/gateway/knowledge-admin-routes.js +84 -0
- package/dist/gateway/knowledge-admin-routes.js.map +1 -0
- package/dist/gateway/knowledge-factory.d.ts +19 -0
- package/dist/gateway/knowledge-factory.d.ts.map +1 -0
- package/dist/gateway/knowledge-factory.js +122 -0
- package/dist/gateway/knowledge-factory.js.map +1 -0
- package/dist/gateway/message-pipeline.d.ts +21 -1
- package/dist/gateway/message-pipeline.d.ts.map +1 -1
- package/dist/gateway/message-pipeline.js +87 -1
- package/dist/gateway/message-pipeline.js.map +1 -1
- package/dist/gateway/messenger-webhook-routes.d.ts +30 -0
- package/dist/gateway/messenger-webhook-routes.d.ts.map +1 -0
- package/dist/gateway/messenger-webhook-routes.js +394 -0
- package/dist/gateway/messenger-webhook-routes.js.map +1 -0
- package/dist/gateway/meta-webhook-foundation.d.ts +12 -0
- package/dist/gateway/meta-webhook-foundation.d.ts.map +1 -0
- package/dist/gateway/meta-webhook-foundation.js +25 -0
- package/dist/gateway/meta-webhook-foundation.js.map +1 -0
- package/dist/gateway/mode-b-routes.d.ts +8 -0
- package/dist/gateway/mode-b-routes.d.ts.map +1 -1
- package/dist/gateway/mode-b-routes.js +48 -1
- package/dist/gateway/mode-b-routes.js.map +1 -1
- package/dist/gateway/outbound-routes.d.ts.map +1 -1
- package/dist/gateway/outbound-routes.js +49 -21
- package/dist/gateway/outbound-routes.js.map +1 -1
- package/dist/gateway/routing-test-routes.d.ts +10 -0
- package/dist/gateway/routing-test-routes.d.ts.map +1 -0
- package/dist/gateway/routing-test-routes.js +76 -0
- package/dist/gateway/routing-test-routes.js.map +1 -0
- package/dist/gateway/sqlite-email-thread-store.d.ts +13 -0
- package/dist/gateway/sqlite-email-thread-store.d.ts.map +1 -0
- package/dist/gateway/sqlite-email-thread-store.js +66 -0
- package/dist/gateway/sqlite-email-thread-store.js.map +1 -0
- package/dist/gateway/stt-factory.d.ts +3 -0
- package/dist/gateway/stt-factory.d.ts.map +1 -0
- package/dist/gateway/stt-factory.js +21 -0
- package/dist/gateway/stt-factory.js.map +1 -0
- package/dist/gateway/tenant-admin-routes.d.ts.map +1 -1
- package/dist/gateway/tenant-admin-routes.js +14 -0
- package/dist/gateway/tenant-admin-routes.js.map +1 -1
- package/dist/gateway/tenant-tool-factory.d.ts +10 -0
- package/dist/gateway/tenant-tool-factory.d.ts.map +1 -0
- package/dist/gateway/tenant-tool-factory.js +55 -0
- package/dist/gateway/tenant-tool-factory.js.map +1 -0
- package/dist/gateway/webhook-dedup.d.ts +13 -0
- package/dist/gateway/webhook-dedup.d.ts.map +1 -0
- package/dist/gateway/webhook-dedup.js +37 -0
- package/dist/gateway/webhook-dedup.js.map +1 -0
- package/dist/gateway/webhook-tool-executor.d.ts +17 -0
- package/dist/gateway/webhook-tool-executor.d.ts.map +1 -0
- package/dist/gateway/webhook-tool-executor.js +69 -0
- package/dist/gateway/webhook-tool-executor.js.map +1 -0
- package/dist/gateway/whatsapp-webhook-routes.d.ts +11 -0
- package/dist/gateway/whatsapp-webhook-routes.d.ts.map +1 -1
- package/dist/gateway/whatsapp-webhook-routes.js +158 -22
- package/dist/gateway/whatsapp-webhook-routes.js.map +1 -1
- package/dist/gateway/ws-tenant-routes.d.ts +9 -0
- package/dist/gateway/ws-tenant-routes.d.ts.map +1 -1
- package/dist/gateway/ws-tenant-routes.js +149 -6
- package/dist/gateway/ws-tenant-routes.js.map +1 -1
- package/dist/index.d.ts +47 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +28 -1
- package/dist/index.js.map +1 -1
- package/dist/observability/composite-event-store.d.ts +13 -0
- package/dist/observability/composite-event-store.d.ts.map +1 -0
- package/dist/observability/composite-event-store.js +37 -0
- package/dist/observability/composite-event-store.js.map +1 -0
- package/dist/observability/prometheus-collector.d.ts +33 -0
- package/dist/observability/prometheus-collector.d.ts.map +1 -0
- package/dist/observability/prometheus-collector.js +170 -0
- package/dist/observability/prometheus-collector.js.map +1 -0
- package/dist/session/agent-handoff-summarizer.d.ts +11 -0
- package/dist/session/agent-handoff-summarizer.d.ts.map +1 -0
- package/dist/session/agent-handoff-summarizer.js +26 -0
- package/dist/session/agent-handoff-summarizer.js.map +1 -0
- package/dist/session/mode-b-orchestrator.d.ts +47 -1
- package/dist/session/mode-b-orchestrator.d.ts.map +1 -1
- package/dist/session/mode-b-orchestrator.js +284 -16
- package/dist/session/mode-b-orchestrator.js.map +1 -1
- package/dist/session/mode-b-session.d.ts +21 -1
- package/dist/session/mode-b-session.d.ts.map +1 -1
- package/dist/session/mode-b-session.js +40 -0
- package/dist/session/mode-b-session.js.map +1 -1
- package/dist/session/session-registry.d.ts +1 -0
- package/dist/session/session-registry.d.ts.map +1 -1
- package/dist/session/session-registry.js +33 -0
- package/dist/session/session-registry.js.map +1 -1
- package/dist/session/session-serializer.d.ts.map +1 -1
- package/dist/session/session-serializer.js +4 -0
- package/dist/session/session-serializer.js.map +1 -1
- package/dist/tenant/agent-resolver.d.ts +26 -0
- package/dist/tenant/agent-resolver.d.ts.map +1 -0
- package/dist/tenant/agent-resolver.js +232 -0
- package/dist/tenant/agent-resolver.js.map +1 -0
- package/dist/tenant/ping-pong-guard.d.ts +9 -0
- package/dist/tenant/ping-pong-guard.d.ts.map +1 -0
- package/dist/tenant/ping-pong-guard.js +30 -0
- package/dist/tenant/ping-pong-guard.js.map +1 -0
- package/dist/tenant/system-prompt-builder.d.ts +1 -1
- package/dist/tenant/system-prompt-builder.d.ts.map +1 -1
- package/dist/tenant/system-prompt-builder.js +13 -1
- package/dist/tenant/system-prompt-builder.js.map +1 -1
- package/dist/tenant/tenant-registry.d.ts +3 -0
- package/dist/tenant/tenant-registry.d.ts.map +1 -1
- package/dist/tenant/tenant-registry.js +83 -4
- package/dist/tenant/tenant-registry.js.map +1 -1
- package/dist/tenant/tenant-router.d.ts +27 -0
- package/dist/tenant/tenant-router.d.ts.map +1 -0
- package/dist/tenant/tenant-router.js +72 -0
- package/dist/tenant/tenant-router.js.map +1 -0
- package/dist/utils/hmac.d.ts +1 -0
- package/dist/utils/hmac.d.ts.map +1 -1
- package/dist/utils/hmac.js +3 -0
- package/dist/utils/hmac.js.map +1 -1
- 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;
|
|
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,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACvI,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,MAAM,CAAC;IACnC,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,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAC3C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,UAAU,CAAC;IACzD,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACrC;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,cAAc,CAAC,EAAE,SAAS,oBAAoB,EAAE,CAAC;IAC1D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE;QACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;QAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;KAC9B,CAAC;CACH;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,CA0M9F"}
|
|
@@ -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.
|
|
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;
|
|
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"}
|