@kilnai/runtime 0.1.15 → 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 +7 -3
- 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/channels/web-channel.d.ts +2 -0
- package/dist/channels/web-channel.d.ts.map +1 -1
- package/dist/channels/web-channel.js +9 -0
- package/dist/channels/web-channel.js.map +1 -1
- 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/dev-routes.d.ts +1 -1
- package/dist/gateway/dev-routes.d.ts.map +1 -1
- package/dist/gateway/dev-routes.js +2 -2
- package/dist/gateway/dev-routes.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 +55 -1
- 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 +250 -14
- package/dist/gateway/gateway-server.js.map +1 -1
- package/dist/gateway/handoff-routes.d.ts +15 -0
- package/dist/gateway/handoff-routes.d.ts.map +1 -0
- package/dist/gateway/handoff-routes.js +253 -0
- package/dist/gateway/handoff-routes.js.map +1 -0
- 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 +69 -0
- package/dist/gateway/message-pipeline.d.ts.map +1 -0
- package/dist/gateway/message-pipeline.js +185 -0
- package/dist/gateway/message-pipeline.js.map +1 -0
- 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 +74 -36
- 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 +17 -3
- package/dist/gateway/tenant-admin-routes.js.map +1 -1
- package/dist/gateway/tenant-routes.d.ts.map +1 -1
- package/dist/gateway/tenant-routes.js +18 -27
- package/dist/gateway/tenant-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/trace-context.d.ts +8 -0
- package/dist/gateway/trace-context.d.ts.map +1 -0
- package/dist/gateway/trace-context.js +17 -0
- package/dist/gateway/trace-context.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 +205 -33
- 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 +184 -7
- package/dist/gateway/ws-tenant-routes.js.map +1 -1
- package/dist/index.d.ts +63 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +39 -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/context-summarizer.d.ts +11 -0
- package/dist/session/context-summarizer.d.ts.map +1 -0
- package/dist/session/context-summarizer.js +23 -0
- package/dist/session/context-summarizer.js.map +1 -0
- package/dist/session/escalation-detector.d.ts +27 -0
- package/dist/session/escalation-detector.d.ts.map +1 -0
- package/dist/session/escalation-detector.js +75 -0
- package/dist/session/escalation-detector.js.map +1 -0
- package/dist/session/in-memory-session-store.d.ts +11 -0
- package/dist/session/in-memory-session-store.d.ts.map +1 -0
- package/dist/session/in-memory-session-store.js +26 -0
- package/dist/session/in-memory-session-store.js.map +1 -0
- package/dist/session/mode-b-orchestrator.d.ts +54 -1
- package/dist/session/mode-b-orchestrator.d.ts.map +1 -1
- package/dist/session/mode-b-orchestrator.js +349 -17
- package/dist/session/mode-b-orchestrator.js.map +1 -1
- package/dist/session/mode-b-session.d.ts +48 -1
- package/dist/session/mode-b-session.d.ts.map +1 -1
- package/dist/session/mode-b-session.js +105 -0
- package/dist/session/mode-b-session.js.map +1 -1
- package/dist/session/redis-session-store.d.ts +22 -0
- package/dist/session/redis-session-store.d.ts.map +1 -0
- package/dist/session/redis-session-store.js +44 -0
- package/dist/session/redis-session-store.js.map +1 -0
- package/dist/session/session-mode.d.ts +4 -0
- package/dist/session/session-mode.d.ts.map +1 -0
- package/dist/session/session-mode.js +20 -0
- package/dist/session/session-mode.js.map +1 -0
- package/dist/session/session-registry.d.ts +17 -9
- package/dist/session/session-registry.d.ts.map +1 -1
- package/dist/session/session-registry.js +80 -29
- package/dist/session/session-registry.js.map +1 -1
- package/dist/session/session-serializer.d.ts +4 -0
- package/dist/session/session-serializer.d.ts.map +1 -0
- package/dist/session/session-serializer.js +26 -0
- package/dist/session/session-serializer.js.map +1 -0
- package/dist/session/session-store.d.ts +9 -0
- package/dist/session/session-store.d.ts.map +1 -0
- package/dist/session/session-store.js +2 -0
- package/dist/session/session-store.js.map +1 -0
- 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 +7 -3
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
// Builds per-request tool infrastructure from a TenantConfig.
|
|
2
|
+
// Called once per inbound message in channel handlers.
|
|
3
|
+
import { SlidingWindowRateLimiter } from "@kilnai/core";
|
|
4
|
+
import { WebhookToolExecutor } from "./webhook-tool-executor.js";
|
|
5
|
+
const DEFAULT_WEBHOOK_TIMEOUT_MS = 30_000;
|
|
6
|
+
export function buildTenantToolContext(tenant, existingBuiltins) {
|
|
7
|
+
const callBuiltinTools = new Map();
|
|
8
|
+
const toolDefinitions = [];
|
|
9
|
+
// 1. Build webhook tools
|
|
10
|
+
if (tenant.webhookTools && tenant.webhookTools.length > 0) {
|
|
11
|
+
const webhookConfigs = tenant.webhookTools.map((wt) => ({
|
|
12
|
+
name: wt.name,
|
|
13
|
+
description: wt.description ?? `Webhook tool: ${wt.name}`,
|
|
14
|
+
url: wt.url,
|
|
15
|
+
secret: wt.secret,
|
|
16
|
+
timeoutMs: wt.timeout ? wt.timeout * 1000 : DEFAULT_WEBHOOK_TIMEOUT_MS,
|
|
17
|
+
inputSchema: wt.inputSchema,
|
|
18
|
+
}));
|
|
19
|
+
const executor = new WebhookToolExecutor(webhookConfigs);
|
|
20
|
+
for (const config of webhookConfigs) {
|
|
21
|
+
callBuiltinTools.set(config.name, (input) => executor.execute(config.name, input));
|
|
22
|
+
}
|
|
23
|
+
toolDefinitions.push(...executor.getToolDefinitions());
|
|
24
|
+
}
|
|
25
|
+
// 2. Merge existing builtins (existing take precedence on collision)
|
|
26
|
+
if (existingBuiltins) {
|
|
27
|
+
for (const [name, fn] of existingBuiltins) {
|
|
28
|
+
callBuiltinTools.set(name, fn);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// 3. Build allowlist
|
|
32
|
+
let toolAllowlist;
|
|
33
|
+
if (tenant.tools) {
|
|
34
|
+
toolAllowlist = new Set(tenant.tools);
|
|
35
|
+
// Also add webhook tool names to the allowlist
|
|
36
|
+
for (const wt of tenant.webhookTools ?? []) {
|
|
37
|
+
toolAllowlist.add(wt.name);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
// 4. Build rate limiter
|
|
41
|
+
let rateLimiter;
|
|
42
|
+
if (tenant.toolConfig?.rateLimits) {
|
|
43
|
+
rateLimiter = new SlidingWindowRateLimiter(tenant.toolConfig.rateLimits);
|
|
44
|
+
}
|
|
45
|
+
// 5. Max tool rounds
|
|
46
|
+
const maxToolRounds = tenant.toolConfig?.maxIterationsPerSession;
|
|
47
|
+
return {
|
|
48
|
+
callBuiltinTools,
|
|
49
|
+
toolDefinitions,
|
|
50
|
+
toolAllowlist,
|
|
51
|
+
rateLimiter,
|
|
52
|
+
maxToolRounds,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=tenant-tool-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tenant-tool-factory.js","sourceRoot":"","sources":["../../src/gateway/tenant-tool-factory.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,uDAAuD;AAGvD,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAWjE,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAE1C,MAAM,UAAU,sBAAsB,CACpC,MAAoB,EACpB,gBAA4F;IAE5F,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAgE,CAAC;IACjG,MAAM,eAAe,GAAqB,EAAE,CAAC;IAE7C,yBAAyB;IACzB,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,MAAM,cAAc,GAAwB,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3E,IAAI,EAAE,EAAE,CAAC,IAAI;YACb,WAAW,EAAE,EAAE,CAAC,WAAW,IAAI,iBAAiB,EAAE,CAAC,IAAI,EAAE;YACzD,GAAG,EAAE,EAAE,CAAC,GAAG;YACX,MAAM,EAAE,EAAE,CAAC,MAAM;YACjB,SAAS,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,0BAA0B;YACtE,WAAW,EAAE,EAAE,CAAC,WAAW;SAC5B,CAAC,CAAC,CAAC;QAEJ,MAAM,QAAQ,GAAG,IAAI,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAEzD,KAAK,MAAM,MAAM,IAAI,cAAc,EAAE,CAAC;YACpC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QACrF,CAAC;QAED,eAAe,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,qEAAqE;IACrE,IAAI,gBAAgB,EAAE,CAAC;QACrB,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,gBAAgB,EAAE,CAAC;YAC1C,gBAAgB,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAED,qBAAqB;IACrB,IAAI,aAAsC,CAAC;IAC3C,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,aAAa,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACtC,+CAA+C;QAC/C,KAAK,MAAM,EAAE,IAAI,MAAM,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;YAC3C,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,wBAAwB;IACxB,IAAI,WAAoC,CAAC;IACzC,IAAI,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC;QAClC,WAAW,GAAG,IAAI,wBAAwB,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC3E,CAAC;IAED,qBAAqB;IACrB,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,EAAE,uBAAuB,CAAC;IAEjE,OAAO;QACL,gBAAgB;QAChB,eAAe;QACf,aAAa;QACb,WAAW;QACX,aAAa;KACd,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare class TraceContext {
|
|
2
|
+
readonly traceId: string;
|
|
3
|
+
constructor(traceId?: string);
|
|
4
|
+
log(component: string, message: string, data?: Record<string, unknown>): void;
|
|
5
|
+
warn(component: string, message: string, data?: Record<string, unknown>): void;
|
|
6
|
+
error(component: string, message: string, data?: Record<string, unknown>): void;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=trace-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-context.d.ts","sourceRoot":"","sources":["../../src/gateway/trace-context.ts"],"names":[],"mappings":"AAEA,qBAAa,YAAY;IACvB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;gBAEb,OAAO,CAAC,EAAE,MAAM;IAI5B,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI7E,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAI9E,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAGhF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
// Per-request trace context for structured logging across gateway entry points
|
|
2
|
+
export class TraceContext {
|
|
3
|
+
traceId;
|
|
4
|
+
constructor(traceId) {
|
|
5
|
+
this.traceId = traceId ?? crypto.randomUUID();
|
|
6
|
+
}
|
|
7
|
+
log(component, message, data) {
|
|
8
|
+
console.log(`[${this.traceId}] [${component}] ${message}`, data ? JSON.stringify(data) : "");
|
|
9
|
+
}
|
|
10
|
+
warn(component, message, data) {
|
|
11
|
+
console.warn(`[${this.traceId}] [${component}] ${message}`, data ? JSON.stringify(data) : "");
|
|
12
|
+
}
|
|
13
|
+
error(component, message, data) {
|
|
14
|
+
console.error(`[${this.traceId}] [${component}] ${message}`, data ? JSON.stringify(data) : "");
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=trace-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trace-context.js","sourceRoot":"","sources":["../../src/gateway/trace-context.ts"],"names":[],"mappings":"AAAA,+EAA+E;AAE/E,MAAM,OAAO,YAAY;IACd,OAAO,CAAS;IAEzB,YAAY,OAAgB;QAC1B,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;IAChD,CAAC;IAED,GAAG,CAAC,SAAiB,EAAE,OAAe,EAAE,IAA8B;QACpE,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,MAAM,SAAS,KAAK,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,IAAI,CAAC,SAAiB,EAAE,OAAe,EAAE,IAA8B;QACrE,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,OAAO,MAAM,SAAS,KAAK,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,KAAK,CAAC,SAAiB,EAAE,OAAe,EAAE,IAA8B;QACtE,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,MAAM,SAAS,KAAK,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACjG,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare class WebhookDedup {
|
|
2
|
+
private readonly seen;
|
|
3
|
+
private readonly ttlMs;
|
|
4
|
+
private readonly cleanupInterval;
|
|
5
|
+
constructor(ttlMs?: number);
|
|
6
|
+
/** Returns true if this messageId was already seen within the TTL window. */
|
|
7
|
+
isDuplicate(messageId: string): boolean;
|
|
8
|
+
/** Clear the periodic cleanup interval. */
|
|
9
|
+
close(): void;
|
|
10
|
+
/** Remove entries that have expired. */
|
|
11
|
+
private evictExpired;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=webhook-dedup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-dedup.d.ts","sourceRoot":"","sources":["../../src/gateway/webhook-dedup.ts"],"names":[],"mappings":"AAGA,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA6B;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAC/B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiC;gBAErD,KAAK,SAAgB;IAKjC,6EAA6E;IAC7E,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAavC,2CAA2C;IAC3C,KAAK,IAAI,IAAI;IAIb,wCAAwC;IACxC,OAAO,CAAC,YAAY;CAQrB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// Gateway: WebhookDedup -- at-least-once delivery deduplication for Meta webhooks
|
|
2
|
+
// Tracks seen message IDs with TTL to prevent processing the same message twice
|
|
3
|
+
export class WebhookDedup {
|
|
4
|
+
seen = new Map(); // messageId -> expiresAt timestamp
|
|
5
|
+
ttlMs;
|
|
6
|
+
cleanupInterval;
|
|
7
|
+
constructor(ttlMs = 5 * 60 * 1000) {
|
|
8
|
+
this.ttlMs = ttlMs;
|
|
9
|
+
this.cleanupInterval = setInterval(() => this.evictExpired(), 60_000);
|
|
10
|
+
}
|
|
11
|
+
/** Returns true if this messageId was already seen within the TTL window. */
|
|
12
|
+
isDuplicate(messageId) {
|
|
13
|
+
const now = Date.now();
|
|
14
|
+
const expiresAt = this.seen.get(messageId);
|
|
15
|
+
if (expiresAt !== undefined) {
|
|
16
|
+
if (now < expiresAt)
|
|
17
|
+
return true;
|
|
18
|
+
// Expired -- fall through to re-add
|
|
19
|
+
}
|
|
20
|
+
this.seen.set(messageId, now + this.ttlMs);
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
/** Clear the periodic cleanup interval. */
|
|
24
|
+
close() {
|
|
25
|
+
clearInterval(this.cleanupInterval);
|
|
26
|
+
}
|
|
27
|
+
/** Remove entries that have expired. */
|
|
28
|
+
evictExpired() {
|
|
29
|
+
const now = Date.now();
|
|
30
|
+
for (const [id, expiresAt] of this.seen) {
|
|
31
|
+
if (now >= expiresAt) {
|
|
32
|
+
this.seen.delete(id);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=webhook-dedup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-dedup.js","sourceRoot":"","sources":["../../src/gateway/webhook-dedup.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,gFAAgF;AAEhF,MAAM,OAAO,YAAY;IACN,IAAI,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,mCAAmC;IACrE,KAAK,CAAS;IACd,eAAe,CAAiC;IAEjE,YAAY,KAAK,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,MAAM,CAAC,CAAC;IACxE,CAAC;IAED,6EAA6E;IAC7E,WAAW,CAAC,SAAiB;QAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEvB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3C,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;YAC5B,IAAI,GAAG,GAAG,SAAS;gBAAE,OAAO,IAAI,CAAC;YACjC,oCAAoC;QACtC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3C,OAAO,KAAK,CAAC;IACf,CAAC;IAED,2CAA2C;IAC3C,KAAK;QACH,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACtC,CAAC;IAED,wCAAwC;IAChC,YAAY;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,EAAE,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACxC,IAAI,GAAG,IAAI,SAAS,EAAE,CAAC;gBACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ToolDefinition } from "@kilnai/core";
|
|
2
|
+
export interface WebhookToolConfig {
|
|
3
|
+
readonly name: string;
|
|
4
|
+
readonly description: string;
|
|
5
|
+
readonly url: string;
|
|
6
|
+
readonly secret: string;
|
|
7
|
+
readonly timeoutMs: number;
|
|
8
|
+
readonly inputSchema?: Record<string, unknown>;
|
|
9
|
+
}
|
|
10
|
+
export declare class WebhookToolExecutor {
|
|
11
|
+
private readonly configs;
|
|
12
|
+
constructor(configs: readonly WebhookToolConfig[]);
|
|
13
|
+
handles(toolName: string): boolean;
|
|
14
|
+
execute(toolName: string, input: Record<string, unknown>): Promise<unknown>;
|
|
15
|
+
getToolDefinitions(): ToolDefinition[];
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=webhook-tool-executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-tool-executor.d.ts","sourceRoot":"","sources":["../../src/gateway/webhook-tool-executor.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAEnD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChD;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;gBAErD,OAAO,EAAE,SAAS,iBAAiB,EAAE;IAIjD,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI5B,OAAO,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IA0DjF,kBAAkB,IAAI,cAAc,EAAE;CAQvC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
// Infrastructure adapter: execute external HTTP endpoints as tools
|
|
2
|
+
import { signHmacSha256 } from "../utils/hmac.js";
|
|
3
|
+
import { KilnError } from "@kilnai/core";
|
|
4
|
+
export class WebhookToolExecutor {
|
|
5
|
+
configs;
|
|
6
|
+
constructor(configs) {
|
|
7
|
+
this.configs = new Map(configs.map((c) => [c.name, c]));
|
|
8
|
+
}
|
|
9
|
+
handles(toolName) {
|
|
10
|
+
return this.configs.has(toolName);
|
|
11
|
+
}
|
|
12
|
+
async execute(toolName, input) {
|
|
13
|
+
const config = this.configs.get(toolName);
|
|
14
|
+
if (!config) {
|
|
15
|
+
throw new KilnError("WEBHOOK_TOOL_FAILED", `Webhook tool "${toolName}" not configured`, {
|
|
16
|
+
context: { toolName },
|
|
17
|
+
retryable: false,
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
const timestamp = new Date().toISOString();
|
|
21
|
+
const payload = JSON.stringify({ tool: toolName, input, timestamp });
|
|
22
|
+
const signature = signHmacSha256(config.secret, payload);
|
|
23
|
+
const controller = new AbortController();
|
|
24
|
+
const timer = setTimeout(() => controller.abort(), config.timeoutMs);
|
|
25
|
+
try {
|
|
26
|
+
const response = await fetch(config.url, {
|
|
27
|
+
method: "POST",
|
|
28
|
+
headers: {
|
|
29
|
+
"Content-Type": "application/json",
|
|
30
|
+
"X-Kiln-Signature": `sha256=${signature}`,
|
|
31
|
+
"X-Kiln-Timestamp": timestamp,
|
|
32
|
+
},
|
|
33
|
+
body: payload,
|
|
34
|
+
signal: controller.signal,
|
|
35
|
+
});
|
|
36
|
+
if (!response.ok) {
|
|
37
|
+
throw new KilnError("WEBHOOK_TOOL_FAILED", `Webhook tool "${toolName}" returned HTTP ${response.status}`, {
|
|
38
|
+
context: { toolName, url: config.url, status: response.status },
|
|
39
|
+
retryable: response.status >= 500,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return await response.json();
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
if (err instanceof KilnError)
|
|
46
|
+
throw err;
|
|
47
|
+
const message = err instanceof Error && err.name === "AbortError"
|
|
48
|
+
? `Webhook tool "${toolName}" timed out after ${config.timeoutMs}ms`
|
|
49
|
+
: `Webhook tool "${toolName}" failed: ${err instanceof Error ? err.message : String(err)}`;
|
|
50
|
+
throw new KilnError("WEBHOOK_TOOL_FAILED", message, {
|
|
51
|
+
context: { toolName, url: config.url },
|
|
52
|
+
retryable: true,
|
|
53
|
+
cause: err,
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
finally {
|
|
57
|
+
clearTimeout(timer);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
getToolDefinitions() {
|
|
61
|
+
return Array.from(this.configs.values()).map((c) => ({
|
|
62
|
+
name: c.name,
|
|
63
|
+
description: c.description,
|
|
64
|
+
inputSchema: c.inputSchema ?? {},
|
|
65
|
+
tags: new Set(),
|
|
66
|
+
}));
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=webhook-tool-executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"webhook-tool-executor.js","sourceRoot":"","sources":["../../src/gateway/webhook-tool-executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,8 +2,12 @@ import { Hono } from "hono";
|
|
|
2
2
|
import type { ModeBOrchestrator } from "../session/mode-b-orchestrator.js";
|
|
3
3
|
import type { SessionRegistry } from "../session/session-registry.js";
|
|
4
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";
|
|
5
7
|
import type { BillingConfig } from "./budget-middleware.js";
|
|
6
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";
|
|
7
11
|
export interface WhatsAppWebhookConfig {
|
|
8
12
|
readonly appName: string;
|
|
9
13
|
readonly orchestrator: ModeBOrchestrator;
|
|
@@ -15,6 +19,13 @@ export interface WhatsAppWebhookConfig {
|
|
|
15
19
|
readonly eventEmitter?: ConversationEventEmitter;
|
|
16
20
|
/** Base path for per-tenant data (e.g. ~/.kiln/gateway/bonitas). Memory DBs stored under <basePath>/memory/ */
|
|
17
21
|
readonly memoryBasePath?: string;
|
|
22
|
+
readonly sttAdapter?: SttAdapter;
|
|
23
|
+
readonly knowledgePipeline?: RetrievalPipeline;
|
|
24
|
+
readonly knowledgeMode?: "auto" | "tool";
|
|
25
|
+
readonly contactMemoryService?: ContactMemoryService;
|
|
26
|
+
readonly dedup?: WebhookDedup;
|
|
27
|
+
readonly handoffSummarizer?: AgentHandoffSummarizer;
|
|
28
|
+
readonly eventBus?: EventBus;
|
|
18
29
|
}
|
|
19
30
|
export declare function createWhatsAppWebhookRoutes(config: WhatsAppWebhookConfig): Hono;
|
|
20
31
|
//# sourceMappingURL=whatsapp-webhook-routes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"whatsapp-webhook-routes.d.ts","sourceRoot":"","sources":["../../src/gateway/whatsapp-webhook-routes.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAM5B,OAAO,KAAK,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"whatsapp-webhook-routes.d.ts","sourceRoot":"","sources":["../../src/gateway/whatsapp-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;AAI7C,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,qBAAqB;IACpC,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,+GAA+G;IAC/G,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;AAsHD,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,CA4G/E"}
|