@kilnai/runtime 0.21.2 → 0.23.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
  import { Hono } from "hono";
2
2
  import type { App, SttAdapter, ContactMemoryService } from "@kilnai/core";
3
- import type { GatewayAppBinding, SecurityConfig, AuditLog } from "@kilnai/core";
3
+ import type { GatewayAppBinding, SecurityConfig, AuditLog, GatewayMcpConfig } from "@kilnai/core";
4
4
  import type { ChannelRegistry } from "../channels/channel-registry.js";
5
5
  import type { WebChannel } from "../channels/web-channel.js";
6
6
  import type { ModeBAppRuntime } from "./mode-b-routes.js";
@@ -47,6 +47,7 @@ export interface LoadedApp {
47
47
  export interface GatewayServerConfig {
48
48
  readonly port: number;
49
49
  readonly apps: readonly LoadedApp[];
50
+ readonly mcp?: GatewayMcpConfig;
50
51
  readonly delegationRegistry?: DelegationRegistry;
51
52
  readonly healthRegistry?: HealthRegistry;
52
53
  readonly startTime?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"gateway-routes.d.ts","sourceRoot":"","sources":["../../src/gateway/gateway-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway-routes.d.ts","sourceRoot":"","sources":["../../src/gateway/gateway-routes.ts"],"names":[],"mappings":"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"}
@@ -57,6 +57,27 @@ export function createGatewayApp(config) {
57
57
  subsystems,
58
58
  });
59
59
  });
60
+ if (config.mcp?.enabled) {
61
+ app.get("/.well-known/oauth-authorization-server", (c) => {
62
+ const baseUrl = new URL(c.req.url).origin;
63
+ return c.json({
64
+ issuer: baseUrl,
65
+ token_endpoint: `${baseUrl}/oauth/token`,
66
+ response_types_supported: ["token"],
67
+ grant_types_supported: ["urn:ietf:params:oauth:grant-type:token-exchange"],
68
+ token_endpoint_auth_methods_supported: ["none", "client_secret_basic"],
69
+ });
70
+ });
71
+ app.get("/.well-known/oauth-protected-resource", (c) => {
72
+ const baseUrl = new URL(c.req.url).origin;
73
+ return c.json({
74
+ resource: baseUrl,
75
+ authorization_servers: [baseUrl],
76
+ bearer_methods_supported: ["header"],
77
+ resource_documentation: `${baseUrl}/mcp`,
78
+ });
79
+ });
80
+ }
60
81
  // Dev mode routes (local development only -- no auth)
61
82
  if (config.devMode) {
62
83
  if (config.studioDistPath) {
@@ -1 +1 @@
1
- {"version":3,"file":"gateway-routes.js","sourceRoot":"","sources":["../../src/gateway/gateway-routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway-routes.js","sourceRoot":"","sources":["../../src/gateway/gateway-routes.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"gateway-server.d.ts","sourceRoot":"","sources":["../../src/gateway/gateway-server.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAA6F,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAmClJ,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAClI,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACtD,gFAAgF;IAChF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAmDD,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAy5BnG;AAqJD,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuF9E"}
1
+ {"version":3,"file":"gateway-server.d.ts","sourceRoot":"","sources":["../../src/gateway/gateway-server.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAA6F,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAmClJ,YAAY,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAClI,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,YAAY,EAAE,qBAAqB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,YAAY,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAErD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,2DAA2D;IAC3D,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IACtD,gFAAgF;IAChF,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAmED,wBAAsB,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4sCnG;AAkKD,wBAAsB,cAAc,CAAC,OAAO,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAuF9E"}
@@ -22,11 +22,11 @@ import { DevTokenStore } from "./dev-token-store.js";
22
22
  import { ConversationEventEmitter } from "./conversation-event-emitter.js";
23
23
  import { createSttAdapter } from "./stt-factory.js";
24
24
  import { createKnowledgePipeline, createSourceManager, createContactMemoryService } from "./knowledge-factory.js";
25
- import { extractText } from "@kilnai/core";
25
+ import { extractText, textPart, textParts } from "@kilnai/core";
26
26
  import { WebhookDedup } from "./webhook-dedup.js";
27
27
  import { IntegrationRegistry } from "./integration-registry.js";
28
28
  import { LocalCredentialResolver } from "./local-credential-resolver.js";
29
- import { configureIntegrationDeps } from "./tenant-tool-factory.js";
29
+ import { configureIntegrationDeps, getIntegrationDeps } from "./tenant-tool-factory.js";
30
30
  import { SqliteEmailThreadStore } from "./sqlite-email-thread-store.js";
31
31
  import { SqliteEnrichmentStore } from "../enrichment/sqlite-enrichment-store.js";
32
32
  import { CompositeEventStore } from "../observability/composite-event-store.js";
@@ -79,6 +79,22 @@ function resolveStudioDist() {
79
79
  return undefined;
80
80
  }
81
81
  }
82
+ class ProviderScorerLlmBridge {
83
+ adapter;
84
+ model;
85
+ constructor(adapter, model) {
86
+ this.adapter = adapter;
87
+ this.model = model;
88
+ }
89
+ async evaluate(prompt) {
90
+ const response = await this.adapter.createMessage({
91
+ system: `You are an evaluation judge running as model ${this.model}.`,
92
+ messages: [{ role: "user", parts: [textPart(prompt)] }],
93
+ maxTokens: 512,
94
+ });
95
+ return extractText(response.parts);
96
+ }
97
+ }
82
98
  export async function startGateway(configPath, options) {
83
99
  let content;
84
100
  try {
@@ -659,6 +675,7 @@ export async function startGateway(configPath, options) {
659
675
  const honoApp = createGatewayApp({
660
676
  port,
661
677
  apps: loadedApps,
678
+ mcp: gatewayConfig.mcp,
662
679
  delegationRegistry,
663
680
  healthRegistry,
664
681
  startTime,
@@ -844,6 +861,18 @@ export async function startGateway(configPath, options) {
844
861
  const mcpApiKey = gatewayConfig.mcp.auth?.type === "api-key" && gatewayConfig.mcp.auth.keyEnv
845
862
  ? process.env[gatewayConfig.mcp.auth.keyEnv]
846
863
  : undefined;
864
+ const evalProvider = gatewayConfig.mcp.eval
865
+ ? createProviderFromConfig({
866
+ name: gatewayConfig.mcp.eval.provider,
867
+ model: gatewayConfig.mcp.eval.model,
868
+ apiKeyEnv: gatewayConfig.mcp.eval.apiKeyEnv,
869
+ })
870
+ : undefined;
871
+ const evalBridge = evalProvider && gatewayConfig.mcp.eval
872
+ ? new ProviderScorerLlmBridge(evalProvider, gatewayConfig.mcp.eval.model ?? "claude-haiku-4-5-20251001")
873
+ : undefined;
874
+ const { SwarmStore } = await import("../mcp/swarm-store.js");
875
+ const swarmStore = devMemoryStores ? new SwarmStore(devMemoryStores.get("project")) : undefined;
847
876
  const mcpServer = new GatewayMcpServer({
848
877
  deps: {
849
878
  getMemoryByScope: devMemoryStores
@@ -887,6 +916,100 @@ export async function startGateway(configPath, options) {
887
916
  return false;
888
917
  }
889
918
  : undefined,
919
+ getCrossAgentMemory: devMemoryStores
920
+ ? async (teamId, q, tags, limit) => {
921
+ const store = devMemoryStores.get("project");
922
+ if (!store)
923
+ return [];
924
+ const teamTag = `_team:${teamId}`;
925
+ const requiredTags = [teamTag, ...parseCommaTags(tags)];
926
+ const maxResults = limit ?? 50;
927
+ if (q) {
928
+ const results = await store.search(q, maxResults);
929
+ return results
930
+ .filter((r) => hasAllTags(r.entry.tags, requiredTags))
931
+ .slice(0, maxResults)
932
+ .map((r) => ({
933
+ id: r.entry.id,
934
+ layer: r.entry.layer,
935
+ content: r.entry.content,
936
+ tags: r.entry.tags,
937
+ score: r.score,
938
+ snippet: r.snippet,
939
+ }));
940
+ }
941
+ return store
942
+ .listEntries({ tags: requiredTags.join(","), limit: maxResults })
943
+ .slice(0, maxResults)
944
+ .map((e) => ({
945
+ id: e.id,
946
+ layer: e.layer,
947
+ content: e.content,
948
+ tags: e.tags,
949
+ }));
950
+ }
951
+ : undefined,
952
+ setCrossAgentMemory: devMemoryStores
953
+ ? async (teamId, key, content, tags) => {
954
+ const store = devMemoryStores.get("project");
955
+ if (!store)
956
+ return { id: "" };
957
+ const teamTag = `_team:${teamId}`;
958
+ const mergedTags = uniqueTags([teamTag, `key:${key}`, ...parseCommaTags(tags)]);
959
+ const id = await store.save({ layer: "project", content, tags: mergedTags });
960
+ return { id };
961
+ }
962
+ : undefined,
963
+ deleteCrossAgentMemory: devMemoryStores
964
+ ? async (teamId, id) => {
965
+ const store = devMemoryStores.get("project");
966
+ if (!store)
967
+ return false;
968
+ const teamTag = `_team:${teamId}`;
969
+ const entry = store.listEntries({ limit: 1000000 }).find((e) => e.id === id);
970
+ if (!entry || !entry.tags.includes(teamTag))
971
+ return false;
972
+ await store.forget(id);
973
+ return true;
974
+ }
975
+ : undefined,
976
+ listCrossAgentMemory: devMemoryStores
977
+ ? async (teamId, tags, limit) => {
978
+ const store = devMemoryStores.get("project");
979
+ if (!store)
980
+ return [];
981
+ const teamTag = `_team:${teamId}`;
982
+ const tagFilter = uniqueTags([teamTag, ...parseCommaTags(tags)]).join(",");
983
+ const maxResults = limit ?? 50;
984
+ return store
985
+ .listEntries({ tags: tagFilter, limit: maxResults })
986
+ .slice(0, maxResults)
987
+ .map((e) => ({
988
+ id: e.id,
989
+ layer: e.layer,
990
+ content: e.content,
991
+ tags: e.tags,
992
+ }));
993
+ }
994
+ : undefined,
995
+ swarmJoin: swarmStore
996
+ ? (swarmId, agentId, description) => swarmStore.join(swarmId, agentId, description)
997
+ : undefined,
998
+ swarmLeave: swarmStore
999
+ ? (swarmId, agentId) => swarmStore.leave(swarmId, agentId)
1000
+ : undefined,
1001
+ swarmStatus: swarmStore
1002
+ ? (swarmId) => swarmStore.status(swarmId)
1003
+ : undefined,
1004
+ swarmBroadcast: swarmStore
1005
+ ? (swarmId, agentId, message) => swarmStore.broadcast(swarmId, agentId, message)
1006
+ : undefined,
1007
+ swarmClaim: swarmStore
1008
+ ? (swarmId, agentId, resourceId) => swarmStore.claim(swarmId, agentId, resourceId)
1009
+ : undefined,
1010
+ swarmRelease: swarmStore
1011
+ ? (swarmId, agentId, resourceId) => swarmStore.release(swarmId, agentId, resourceId)
1012
+ : undefined,
890
1013
  searchKnowledge: async (appName, query, limit) => {
891
1014
  const loaded = loadedApps.find((a) => a.name === appName);
892
1015
  if (!loaded?.knowledgePipeline)
@@ -916,6 +1039,170 @@ export async function startGateway(configPath, options) {
916
1039
  apps[appName] = pipeline.metrics;
917
1040
  return { enabled: true, apps };
918
1041
  },
1042
+ // Integration Runtime (Phase 4)
1043
+ listIntegrations: () => {
1044
+ const deps = getIntegrationDeps();
1045
+ if (!deps)
1046
+ return [];
1047
+ return deps.registry.all().map((a) => ({
1048
+ provider: a.provider,
1049
+ version: a.version,
1050
+ operations: a.operations.map((op) => ({ name: op.name, description: op.description })),
1051
+ }));
1052
+ },
1053
+ executeIntegration: async (provider, operation, tenantId, input) => {
1054
+ const deps = getIntegrationDeps();
1055
+ if (!deps)
1056
+ throw new KilnError("CONFIG_INVALID", "Integration runtime not configured");
1057
+ const adapter = deps.registry.get(provider);
1058
+ if (!adapter)
1059
+ throw new KilnError("CONFIG_INVALID", `Integration provider "${provider}" not registered`);
1060
+ const { IntegrationExecutor } = await import("./integration-executor.js");
1061
+ const executor = new IntegrationExecutor(adapter, deps.credentialResolver, tenantId, provider);
1062
+ return executor.execute(operation, input);
1063
+ },
1064
+ // Routing diagnostics
1065
+ testRouting: async (tenantId, message) => {
1066
+ for (const loaded of loadedApps) {
1067
+ const tr = loaded.tenantRuntime;
1068
+ if (!tr)
1069
+ continue;
1070
+ const tenant = tr.tenantRegistry.get(tenantId);
1071
+ if (!tenant || !tenant.routing || !tenant.agents?.length)
1072
+ continue;
1073
+ const { DefaultTenantRouter } = await import("../tenant/tenant-router.js");
1074
+ const userParts = textParts(message);
1075
+ const text = extractText(userParts);
1076
+ const allRules = [];
1077
+ for (const rule of tenant.routing.rules ?? []) {
1078
+ try {
1079
+ allRules.push({ pattern: rule.match, agent: rule.agent, matched: new RegExp(rule.match, "i").test(text) });
1080
+ }
1081
+ catch {
1082
+ allRules.push({ pattern: rule.match, agent: rule.agent, matched: false });
1083
+ }
1084
+ }
1085
+ const router = new DefaultTenantRouter(tenant.routing);
1086
+ const result = router.route(userParts);
1087
+ const agent = tenant.agents.find((a) => a.id === result.agentId);
1088
+ return {
1089
+ agentId: result.agentId,
1090
+ agentName: agent?.name ?? result.agentId,
1091
+ tier: result.tier,
1092
+ matchedPattern: result.matchedPattern ?? null,
1093
+ confidence: result.confidence ?? null,
1094
+ allRules,
1095
+ };
1096
+ }
1097
+ throw new KilnError("CONFIG_INVALID", `Tenant "${tenantId}" not found or has no routing configured`);
1098
+ },
1099
+ // Eval scoring (rule-based scorers only — no LLM dependency)
1100
+ evalScore: async (input, output, expected, scorerNames) => {
1101
+ const { ExactMatchScorer, JsonValidityScorer, EffortScorer, RoutingAccuracyScorer, ToolCallingAccuracyScorer } = await import("@kilnai/core");
1102
+ const allScorers = [
1103
+ new ExactMatchScorer(),
1104
+ new JsonValidityScorer(),
1105
+ new EffortScorer(),
1106
+ new RoutingAccuracyScorer(),
1107
+ new ToolCallingAccuracyScorer(),
1108
+ ];
1109
+ const scorers = scorerNames?.length
1110
+ ? allScorers.filter((s) => scorerNames.includes(s.name))
1111
+ : allScorers;
1112
+ const results = await Promise.all(scorers.map((s) => s.score({ input, output, expected })));
1113
+ return results;
1114
+ },
1115
+ evalScoreLlm: gatewayConfig.mcp?.eval
1116
+ ? async (input, output, expected, context, scorerNames, scorerOptions) => {
1117
+ if (!evalBridge)
1118
+ return [];
1119
+ const { FaithfulnessScorer, RelevanceScorer, CoherenceScorer, HallucinationScorer, ToxicityScorer, PolicyAdherenceScorer, ContextRelevanceScorer, ToolTrajectoryScorer, MultiTurnConsistencyScorer, SafetyPreservationScorer, HandoffQualityScorer, CustomPromptScorer, } = await import("@kilnai/core");
1120
+ const isRecord = (v) => typeof v === "object" && v !== null && !Array.isArray(v);
1121
+ const options = isRecord(scorerOptions) ? scorerOptions : {};
1122
+ const policies = Array.isArray(options["policies"]) && options["policies"].every((p) => typeof p === "string")
1123
+ ? options["policies"]
1124
+ : [];
1125
+ const customPrompt = typeof options["prompt"] === "string" && options["prompt"].trim()
1126
+ ? options["prompt"]
1127
+ : `Evaluate this output quality.
1128
+
1129
+ Input: {{input}}
1130
+ Output: {{output}}
1131
+ Expected: {{expected}}
1132
+ Context: {{context}}
1133
+
1134
+ Respond EXACTLY in this format:
1135
+ SCORE: <number from 0.0 to 1.0>
1136
+ REASONING: <one sentence explanation>`;
1137
+ const metadata = {};
1138
+ if (isRecord(options["metadata"]))
1139
+ Object.assign(metadata, options["metadata"]);
1140
+ for (const key of ["toolCalls", "conversationHistory", "handoffHistory", "attackType"]) {
1141
+ if (key in options)
1142
+ metadata[key] = options[key];
1143
+ }
1144
+ const allScorers = [
1145
+ new FaithfulnessScorer(evalBridge),
1146
+ new RelevanceScorer(evalBridge),
1147
+ new CoherenceScorer(evalBridge),
1148
+ new HallucinationScorer(evalBridge),
1149
+ new ToxicityScorer(evalBridge),
1150
+ new PolicyAdherenceScorer(evalBridge, policies),
1151
+ new ContextRelevanceScorer(evalBridge),
1152
+ new ToolTrajectoryScorer(evalBridge),
1153
+ new MultiTurnConsistencyScorer(evalBridge),
1154
+ new SafetyPreservationScorer(evalBridge),
1155
+ new HandoffQualityScorer(evalBridge),
1156
+ new CustomPromptScorer("custom-prompt", customPrompt, evalBridge),
1157
+ ];
1158
+ const scorers = scorerNames?.length
1159
+ ? allScorers.filter((s) => scorerNames.includes(s.name))
1160
+ : allScorers;
1161
+ return Promise.all(scorers.map((s) => s.score({ input, output, expected, context, metadata })));
1162
+ }
1163
+ : undefined,
1164
+ // Enrichment access
1165
+ getEnrichment: async (sessionId) => {
1166
+ for (const loaded of loadedApps) {
1167
+ const store = loaded.enrichmentAdminConfig?.enrichmentStore;
1168
+ if (!store)
1169
+ continue;
1170
+ const enrichment = await store.get(sessionId);
1171
+ if (enrichment)
1172
+ return enrichment;
1173
+ }
1174
+ return undefined;
1175
+ },
1176
+ listEnrichments: async (tenantId, limit, cursor) => {
1177
+ for (const loaded of loadedApps) {
1178
+ const store = loaded.enrichmentAdminConfig?.enrichmentStore;
1179
+ if (!store)
1180
+ continue;
1181
+ const result = await store.listByTenant(tenantId, limit ?? 20, cursor);
1182
+ return {
1183
+ enrichments: result.enrichments,
1184
+ nextCursor: result.nextCursor,
1185
+ };
1186
+ }
1187
+ return { enrichments: [] };
1188
+ },
1189
+ // Budget enforcement
1190
+ checkBudget: async (tenantId, appName) => {
1191
+ const loaded = loadedApps.find((a) => a.name === appName);
1192
+ const billing = loaded?.tenantRuntime?.billing;
1193
+ if (!billing)
1194
+ return { allowed: true, remaining: -1, unit: "unknown" };
1195
+ const { checkBudget: check } = await import("./budget-middleware.js");
1196
+ return check(billing, tenantId);
1197
+ },
1198
+ reportUsage: async (tenantId, appName, messages, tokens, model) => {
1199
+ const loaded = loadedApps.find((a) => a.name === appName);
1200
+ const billing = loaded?.tenantRuntime?.billing;
1201
+ if (!billing)
1202
+ return;
1203
+ const { reportUsage: report } = await import("./budget-middleware.js");
1204
+ await report(billing, { tenantId, messages, tokens, model });
1205
+ },
919
1206
  },
920
1207
  apiKey: mcpApiKey,
921
1208
  });
@@ -948,6 +1235,17 @@ const VALID_MEMORY_LAYERS = ["user", "agent", "project"];
948
1235
  function resolveMemoryLayer(scope) {
949
1236
  return VALID_MEMORY_LAYERS.includes(scope) ? scope : "project";
950
1237
  }
1238
+ function parseCommaTags(tags) {
1239
+ if (!tags)
1240
+ return [];
1241
+ return tags.split(",").map((t) => t.trim()).filter(Boolean);
1242
+ }
1243
+ function uniqueTags(tags) {
1244
+ return [...new Set(tags.filter(Boolean))];
1245
+ }
1246
+ function hasAllTags(entryTags, requiredTags) {
1247
+ return requiredTags.every((tag) => entryTags.includes(tag));
1248
+ }
951
1249
  /** Create a ProviderAdapter from a Mode B provider config */
952
1250
  function createProviderFromConfig(config) {
953
1251
  const apiKey = config.apiKeyEnv ? process.env[config.apiKeyEnv] ?? "" : "";