@kilnai/runtime 0.20.0 → 0.21.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.
- package/dist/gateway/context-formatter.d.ts +1 -0
- package/dist/gateway/context-formatter.d.ts.map +1 -1
- package/dist/gateway/context-formatter.js +5 -0
- package/dist/gateway/context-formatter.js.map +1 -1
- package/dist/gateway/dev-inspector.js +2 -2
- package/dist/gateway/gateway-server.d.ts.map +1 -1
- package/dist/gateway/gateway-server.js +101 -6
- package/dist/gateway/gateway-server.js.map +1 -1
- package/dist/gateway/message-pipeline.d.ts +1 -0
- package/dist/gateway/message-pipeline.d.ts.map +1 -1
- package/dist/gateway/message-pipeline.js +8 -3
- package/dist/gateway/message-pipeline.js.map +1 -1
- package/dist/gateway/mode-b-routes.d.ts.map +1 -1
- package/dist/gateway/mode-b-routes.js +18 -1
- package/dist/gateway/mode-b-routes.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/mcp/gateway-mcp-server.d.ts +49 -0
- package/dist/mcp/gateway-mcp-server.d.ts.map +1 -0
- package/dist/mcp/gateway-mcp-server.js +280 -0
- package/dist/mcp/gateway-mcp-server.js.map +1 -0
- package/dist/mcp/gateway-mcp-types.d.ts +68 -0
- package/dist/mcp/gateway-mcp-types.d.ts.map +1 -0
- package/dist/mcp/gateway-mcp-types.js +4 -0
- package/dist/mcp/gateway-mcp-types.js.map +1 -0
- package/dist/mcp/index.d.ts +6 -0
- package/dist/mcp/index.d.ts.map +1 -0
- package/dist/mcp/index.js +4 -0
- package/dist/mcp/index.js.map +1 -0
- package/dist/mcp/tool-schemas.d.ts +563 -0
- package/dist/mcp/tool-schemas.d.ts.map +1 -0
- package/dist/mcp/tool-schemas.js +268 -0
- package/dist/mcp/tool-schemas.js.map +1 -0
- package/dist/session/mode-b-session.d.ts +7 -0
- package/dist/session/mode-b-session.d.ts.map +1 -1
- package/dist/session/mode-b-session.js +20 -0
- package/dist/session/mode-b-session.js.map +1 -1
- package/dist/session/session-serializer.d.ts.map +1 -1
- package/dist/session/session-serializer.js +1 -0
- package/dist/session/session-serializer.js.map +1 -1
- package/dist/tenant/agent-resolver.d.ts +4 -4
- package/dist/tenant/agent-resolver.d.ts.map +1 -1
- package/dist/tenant/agent-resolver.js +18 -16
- package/dist/tenant/agent-resolver.js.map +1 -1
- package/dist/tenant/interpolate-user-tokens.d.ts +8 -0
- package/dist/tenant/interpolate-user-tokens.d.ts.map +1 -0
- package/dist/tenant/interpolate-user-tokens.js +13 -0
- package/dist/tenant/interpolate-user-tokens.js.map +1 -0
- package/package.json +7 -3
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
// MCP server: tool input schemas for the gateway MCP tools
|
|
2
|
+
// JSON Schema objects used by @modelcontextprotocol/sdk CallToolRequest validation
|
|
3
|
+
export const MEMORY_RECALL_SCHEMA = {
|
|
4
|
+
type: "object",
|
|
5
|
+
properties: {
|
|
6
|
+
scope: {
|
|
7
|
+
type: "string",
|
|
8
|
+
description: "Memory scope to recall from (user, agent, team, project, org)",
|
|
9
|
+
},
|
|
10
|
+
query: {
|
|
11
|
+
type: "string",
|
|
12
|
+
description: "Optional FTS5 search query to filter entries",
|
|
13
|
+
},
|
|
14
|
+
tags: {
|
|
15
|
+
type: "string",
|
|
16
|
+
description: "Optional comma-separated tag filter",
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
required: ["scope"],
|
|
20
|
+
};
|
|
21
|
+
export const MEMORY_STORE_SCHEMA = {
|
|
22
|
+
type: "object",
|
|
23
|
+
properties: {
|
|
24
|
+
scope: {
|
|
25
|
+
type: "string",
|
|
26
|
+
description: "Memory scope (user, agent, team, project, org)",
|
|
27
|
+
},
|
|
28
|
+
key: {
|
|
29
|
+
type: "string",
|
|
30
|
+
description: "Unique key for the memory entry",
|
|
31
|
+
},
|
|
32
|
+
content: {
|
|
33
|
+
type: "string",
|
|
34
|
+
description: "Content to store",
|
|
35
|
+
},
|
|
36
|
+
tags: {
|
|
37
|
+
type: "string",
|
|
38
|
+
description: "Optional comma-separated tags",
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
required: ["scope", "key", "content"],
|
|
42
|
+
};
|
|
43
|
+
export const MEMORY_DELETE_SCHEMA = {
|
|
44
|
+
type: "object",
|
|
45
|
+
properties: {
|
|
46
|
+
id: {
|
|
47
|
+
type: "string",
|
|
48
|
+
description: "ID of the memory entry to delete",
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
required: ["id"],
|
|
52
|
+
};
|
|
53
|
+
export const KNOWLEDGE_SEARCH_SCHEMA = {
|
|
54
|
+
type: "object",
|
|
55
|
+
properties: {
|
|
56
|
+
appName: {
|
|
57
|
+
type: "string",
|
|
58
|
+
description: "Name of the app whose knowledge base to search",
|
|
59
|
+
},
|
|
60
|
+
query: {
|
|
61
|
+
type: "string",
|
|
62
|
+
description: "Natural language search query",
|
|
63
|
+
},
|
|
64
|
+
limit: {
|
|
65
|
+
type: "number",
|
|
66
|
+
description: "Maximum number of results to return (default: 5)",
|
|
67
|
+
},
|
|
68
|
+
},
|
|
69
|
+
required: ["appName", "query"],
|
|
70
|
+
};
|
|
71
|
+
export const KNOWLEDGE_SOURCES_SCHEMA = {
|
|
72
|
+
type: "object",
|
|
73
|
+
properties: {
|
|
74
|
+
appName: {
|
|
75
|
+
type: "string",
|
|
76
|
+
description: "Name of the app whose knowledge sources to list",
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
required: ["appName"],
|
|
80
|
+
};
|
|
81
|
+
export const COST_SUMMARY_SCHEMA = {
|
|
82
|
+
type: "object",
|
|
83
|
+
properties: {},
|
|
84
|
+
required: [],
|
|
85
|
+
};
|
|
86
|
+
export const SAFETY_METRICS_SCHEMA = {
|
|
87
|
+
type: "object",
|
|
88
|
+
properties: {},
|
|
89
|
+
required: [],
|
|
90
|
+
};
|
|
91
|
+
export const INTEGRATION_LIST_SCHEMA = {
|
|
92
|
+
type: "object",
|
|
93
|
+
properties: {},
|
|
94
|
+
required: [],
|
|
95
|
+
};
|
|
96
|
+
export const INTEGRATION_EXECUTE_SCHEMA = {
|
|
97
|
+
type: "object",
|
|
98
|
+
properties: {
|
|
99
|
+
provider: { type: "string", description: "Integration provider name (e.g. 'stripe')" },
|
|
100
|
+
operation: { type: "string", description: "Operation name within the provider (e.g. 'create_link')" },
|
|
101
|
+
tenantId: { type: "string", description: "Tenant ID whose credentials will be used" },
|
|
102
|
+
input: { type: "object", description: "Input parameters for the operation (provider-defined schema)" },
|
|
103
|
+
},
|
|
104
|
+
required: ["provider", "operation", "tenantId", "input"],
|
|
105
|
+
};
|
|
106
|
+
export const ROUTING_TEST_SCHEMA = {
|
|
107
|
+
type: "object",
|
|
108
|
+
properties: {
|
|
109
|
+
tenantId: { type: "string", description: "Tenant ID to test routing for" },
|
|
110
|
+
message: { type: "string", description: "Message text to route (dry-run, not sent to LLM)" },
|
|
111
|
+
},
|
|
112
|
+
required: ["tenantId", "message"],
|
|
113
|
+
};
|
|
114
|
+
export const EVAL_SCORE_SCHEMA = {
|
|
115
|
+
type: "object",
|
|
116
|
+
properties: {
|
|
117
|
+
input: { type: "string", description: "The user input or prompt" },
|
|
118
|
+
output: { type: "string", description: "The LLM output to evaluate" },
|
|
119
|
+
expected: { type: "string", description: "Optional expected/reference output" },
|
|
120
|
+
scorers: {
|
|
121
|
+
type: "array",
|
|
122
|
+
items: { type: "string" },
|
|
123
|
+
description: "Scorer names to apply. If omitted, all configured scorers are used.",
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
required: ["input", "output"],
|
|
127
|
+
};
|
|
128
|
+
export const ENRICHMENT_GET_SCHEMA = {
|
|
129
|
+
type: "object",
|
|
130
|
+
properties: {
|
|
131
|
+
sessionId: { type: "string", description: "Session ID of the completed conversation" },
|
|
132
|
+
},
|
|
133
|
+
required: ["sessionId"],
|
|
134
|
+
};
|
|
135
|
+
export const ENRICHMENT_LIST_SCHEMA = {
|
|
136
|
+
type: "object",
|
|
137
|
+
properties: {
|
|
138
|
+
tenantId: { type: "string", description: "Tenant ID to list enrichments for" },
|
|
139
|
+
limit: { type: "number", description: "Maximum number of results (default: 20)" },
|
|
140
|
+
cursor: { type: "string", description: "Pagination cursor (enrichedAt timestamp from prior response)" },
|
|
141
|
+
},
|
|
142
|
+
required: ["tenantId"],
|
|
143
|
+
};
|
|
144
|
+
export const CROSS_AGENT_MEMORY_RECALL_SCHEMA = {
|
|
145
|
+
type: "object",
|
|
146
|
+
properties: {
|
|
147
|
+
key: { type: "string", description: "Memory key for exact tag-based lookup" },
|
|
148
|
+
query: { type: "string", description: "FTS5 search query when exact key is unknown" },
|
|
149
|
+
},
|
|
150
|
+
required: [],
|
|
151
|
+
};
|
|
152
|
+
export const CROSS_AGENT_MEMORY_STORE_SCHEMA = {
|
|
153
|
+
type: "object",
|
|
154
|
+
properties: {
|
|
155
|
+
key: { type: "string", description: "Unique key for the shared memory entry" },
|
|
156
|
+
content: { type: "string", description: "Content to store as shared context" },
|
|
157
|
+
tags: { type: "string", description: "Optional comma-separated tags" },
|
|
158
|
+
},
|
|
159
|
+
required: ["key", "content"],
|
|
160
|
+
};
|
|
161
|
+
export const BUDGET_CHECK_SCHEMA = {
|
|
162
|
+
type: "object",
|
|
163
|
+
properties: {
|
|
164
|
+
tenantId: { type: "string", description: "Tenant ID to check budget for" },
|
|
165
|
+
appName: { type: "string", description: "App name (locates the billing config)" },
|
|
166
|
+
},
|
|
167
|
+
required: ["tenantId", "appName"],
|
|
168
|
+
};
|
|
169
|
+
export const BUDGET_REPORT_SCHEMA = {
|
|
170
|
+
type: "object",
|
|
171
|
+
properties: {
|
|
172
|
+
tenantId: { type: "string", description: "Tenant ID to report usage for" },
|
|
173
|
+
appName: { type: "string", description: "App name (locates the billing config)" },
|
|
174
|
+
messages: { type: "number", description: "Number of messages to report" },
|
|
175
|
+
tokens: { type: "number", description: "Number of tokens to report" },
|
|
176
|
+
model: { type: "string", description: "Model identifier (e.g. 'claude-sonnet-4-5')" },
|
|
177
|
+
},
|
|
178
|
+
required: ["tenantId", "appName", "messages", "tokens", "model"],
|
|
179
|
+
};
|
|
180
|
+
/** All tool definitions for the gateway MCP server */
|
|
181
|
+
export const GATEWAY_MCP_TOOLS = [
|
|
182
|
+
{
|
|
183
|
+
name: "memory_recall",
|
|
184
|
+
description: "Recall memory entries by scope with optional FTS search query and tag filter",
|
|
185
|
+
inputSchema: MEMORY_RECALL_SCHEMA,
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
name: "memory_store",
|
|
189
|
+
description: "Store a new memory entry with scope, key, content, and optional tags",
|
|
190
|
+
inputSchema: MEMORY_STORE_SCHEMA,
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
name: "memory_delete",
|
|
194
|
+
description: "Delete a memory entry by its ID",
|
|
195
|
+
inputSchema: MEMORY_DELETE_SCHEMA,
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
name: "knowledge_search",
|
|
199
|
+
description: "Search the knowledge base using natural language. Returns ranked results with content and relevance scores.",
|
|
200
|
+
inputSchema: KNOWLEDGE_SEARCH_SCHEMA,
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
name: "knowledge_sources",
|
|
204
|
+
description: "List all knowledge sources registered for an app",
|
|
205
|
+
inputSchema: KNOWLEDGE_SOURCES_SCHEMA,
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
name: "cost_summary",
|
|
209
|
+
description: "Get the current cost summary including total tokens, cost in USD, and per-role:model breakdown",
|
|
210
|
+
inputSchema: COST_SUMMARY_SCHEMA,
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
name: "safety_metrics",
|
|
214
|
+
description: "Get safety pipeline metrics including PII detections, content classifications, and rail triggers",
|
|
215
|
+
inputSchema: SAFETY_METRICS_SCHEMA,
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
name: "integration_list",
|
|
219
|
+
description: "List all registered integration adapters and their available operations",
|
|
220
|
+
inputSchema: INTEGRATION_LIST_SCHEMA,
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
name: "integration_execute",
|
|
224
|
+
description: "Execute an integration operation for a tenant using their stored credentials",
|
|
225
|
+
inputSchema: INTEGRATION_EXECUTE_SCHEMA,
|
|
226
|
+
},
|
|
227
|
+
{
|
|
228
|
+
name: "routing_test",
|
|
229
|
+
description: "Dry-run tenant message routing: returns agentId, tier, matched pattern, and per-rule diagnostics",
|
|
230
|
+
inputSchema: ROUTING_TEST_SCHEMA,
|
|
231
|
+
},
|
|
232
|
+
{
|
|
233
|
+
name: "eval_score",
|
|
234
|
+
description: "Score a single input/output pair using the gateway's configured eval scorers",
|
|
235
|
+
inputSchema: EVAL_SCORE_SCHEMA,
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
name: "enrichment_get",
|
|
239
|
+
description: "Retrieve enrichment data for a completed conversation session",
|
|
240
|
+
inputSchema: ENRICHMENT_GET_SCHEMA,
|
|
241
|
+
},
|
|
242
|
+
{
|
|
243
|
+
name: "enrichment_list",
|
|
244
|
+
description: "List enrichment records for a tenant with cursor-based pagination",
|
|
245
|
+
inputSchema: ENRICHMENT_LIST_SCHEMA,
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
name: "cross_agent_memory_recall",
|
|
249
|
+
description: "Recall shared memory entries from the team scope, accessible by all agents",
|
|
250
|
+
inputSchema: CROSS_AGENT_MEMORY_RECALL_SCHEMA,
|
|
251
|
+
},
|
|
252
|
+
{
|
|
253
|
+
name: "cross_agent_memory_store",
|
|
254
|
+
description: "Store a shared memory entry in the team scope so all agents can access it",
|
|
255
|
+
inputSchema: CROSS_AGENT_MEMORY_STORE_SCHEMA,
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
name: "budget_check",
|
|
259
|
+
description: "Check remaining budget for a tenant against the app's billing endpoint",
|
|
260
|
+
inputSchema: BUDGET_CHECK_SCHEMA,
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
name: "budget_report",
|
|
264
|
+
description: "Report token usage for a tenant to the app's billing endpoint",
|
|
265
|
+
inputSchema: BUDGET_REPORT_SCHEMA,
|
|
266
|
+
},
|
|
267
|
+
];
|
|
268
|
+
//# sourceMappingURL=tool-schemas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-schemas.js","sourceRoot":"","sources":["../../src/mcp/tool-schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -25,6 +25,7 @@ export interface SerializedSessionData {
|
|
|
25
25
|
readonly totalTokens?: number;
|
|
26
26
|
readonly userTurnCount?: number;
|
|
27
27
|
readonly lastHumanMessageAt?: number | null;
|
|
28
|
+
readonly userContext?: Record<string, string>;
|
|
28
29
|
}
|
|
29
30
|
export interface ModeBSessionConfig {
|
|
30
31
|
readonly appName: string;
|
|
@@ -53,6 +54,7 @@ export declare class ModeBSession {
|
|
|
53
54
|
private _totalTokens;
|
|
54
55
|
private _userTurnCount;
|
|
55
56
|
private _lastHumanMessageAt;
|
|
57
|
+
private _userContext;
|
|
56
58
|
constructor(config: ModeBSessionConfig);
|
|
57
59
|
get lastActivityAt(): Date;
|
|
58
60
|
get isExpired(): boolean;
|
|
@@ -83,5 +85,10 @@ export declare class ModeBSession {
|
|
|
83
85
|
setSystemPrompt(prompt: string): void;
|
|
84
86
|
lastAssistantTexts(count: number): string[];
|
|
85
87
|
injectOperatorMessage(parts: readonly ContentPart[]): void;
|
|
88
|
+
get userContext(): Record<string, string> | undefined;
|
|
89
|
+
/** Merges keys from ctx into the stored user context. Empty object is a no-op. */
|
|
90
|
+
updateUserContext(ctx: Record<string, string>): void;
|
|
91
|
+
/** Replaces user context entirely. Pass undefined to clear. */
|
|
92
|
+
setUserContext(ctx: Record<string, string> | undefined): void;
|
|
86
93
|
}
|
|
87
94
|
//# sourceMappingURL=mode-b-session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mode-b-session.d.ts","sourceRoot":"","sources":["../../src/session/mode-b-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGrD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IAC1C,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,gBAAgB,EAAE,SAAS,cAAc,EAAE,CAAC;IACrD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"mode-b-session.d.ts","sourceRoot":"","sources":["../../src/session/mode-b-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -20,6 +20,7 @@ export class ModeBSession {
|
|
|
20
20
|
_totalTokens = 0;
|
|
21
21
|
_userTurnCount = 0;
|
|
22
22
|
_lastHumanMessageAt = null;
|
|
23
|
+
_userContext = undefined;
|
|
23
24
|
constructor(config) {
|
|
24
25
|
this.appName = config.appName;
|
|
25
26
|
this.tenantId = config.tenantId;
|
|
@@ -92,6 +93,10 @@ export class ModeBSession {
|
|
|
92
93
|
if (data.lastHumanMessageAt != null) {
|
|
93
94
|
session._lastHumanMessageAt = data.lastHumanMessageAt;
|
|
94
95
|
}
|
|
96
|
+
// Restore user context
|
|
97
|
+
if (data.userContext) {
|
|
98
|
+
session._userContext = data.userContext;
|
|
99
|
+
}
|
|
95
100
|
// Restore version and record loaded version for conflict detection
|
|
96
101
|
const storedVersion = data.version;
|
|
97
102
|
session._version = storedVersion;
|
|
@@ -173,5 +178,20 @@ export class ModeBSession {
|
|
|
173
178
|
this._history.push({ role: "assistant", parts });
|
|
174
179
|
this.touch();
|
|
175
180
|
}
|
|
181
|
+
get userContext() {
|
|
182
|
+
return this._userContext;
|
|
183
|
+
}
|
|
184
|
+
/** Merges keys from ctx into the stored user context. Empty object is a no-op. */
|
|
185
|
+
updateUserContext(ctx) {
|
|
186
|
+
if (Object.keys(ctx).length === 0)
|
|
187
|
+
return;
|
|
188
|
+
this._userContext = { ...this._userContext, ...ctx };
|
|
189
|
+
this._version++;
|
|
190
|
+
}
|
|
191
|
+
/** Replaces user context entirely. Pass undefined to clear. */
|
|
192
|
+
setUserContext(ctx) {
|
|
193
|
+
this._userContext = ctx;
|
|
194
|
+
this._version++;
|
|
195
|
+
}
|
|
176
196
|
}
|
|
177
197
|
//# sourceMappingURL=mode-b-session.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mode-b-session.js","sourceRoot":"","sources":["../../src/session/mode-b-session.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"mode-b-session.js","sourceRoot":"","sources":["../../src/session/mode-b-session.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-serializer.d.ts","sourceRoot":"","sources":["../../src/session/session-serializer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"session-serializer.d.ts","sourceRoot":"","sources":["../../src/session/session-serializer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAuB9D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAG7D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-serializer.js","sourceRoot":"","sources":["../../src/session/session-serializer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,UAAU,gBAAgB,CAAC,OAAqB;IACpD,MAAM,IAAI,GAA0B;QAClC,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE;QAC1C,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE;QACpD,OAAO,EAAE,OAAO,CAAC,mBAAqC;QACtD,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;
|
|
1
|
+
{"version":3,"file":"session-serializer.js","sourceRoot":"","sources":["../../src/session/session-serializer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,MAAM,UAAU,gBAAgB,CAAC,OAAqB;IACpD,MAAM,IAAI,GAA0B;QAClC,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,WAAW,EAAE;QAC1C,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,WAAW,EAAE;QACpD,OAAO,EAAE,OAAO,CAAC,mBAAqC;QACtD,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,aAAa,EAAE,OAAO,CAAC,aAAa;QACpC,kBAAkB,EAAE,OAAO,CAAC,kBAAkB;QAC9C,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC;IACF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA0B,CAAC;IACvD,OAAO,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ContentPart, TenantConfig, TenantAgentConfig, EventBus, AgentRAG } from "@kilnai/core";
|
|
1
|
+
import type { ContentPart, TenantConfig, TenantAgentConfig, EventBus, AgentRAG, UserContext } from "@kilnai/core";
|
|
2
2
|
import type { TenantToolContext } from "../gateway/tenant-tool-factory.js";
|
|
3
3
|
import type { RoutingResult } from "./tenant-router.js";
|
|
4
4
|
import type { ModeBSession } from "../session/mode-b-session.js";
|
|
@@ -20,7 +20,7 @@ export interface AsyncAgentResolverDeps {
|
|
|
20
20
|
readonly eventBus?: EventBus;
|
|
21
21
|
readonly agentRag?: AgentRAG;
|
|
22
22
|
}
|
|
23
|
-
export declare function buildAgentSystemPrompt(basePrompt: string, agent: TenantAgentConfig): string;
|
|
24
|
-
export declare function resolveAgentContext(tenant: TenantConfig, userParts: readonly ContentPart[], channel?: "web" | "whatsapp" | "instagram" | "messenger" | "email", session?: ModeBSession, existingBuiltins?: ReadonlyMap<string, (input: Record<string, unknown>) => Promise<unknown
|
|
25
|
-
export declare function resolveAgentContextAsync(tenant: TenantConfig, userParts: readonly ContentPart[], session: ModeBSession, deps?: AsyncAgentResolverDeps, channel?: "web" | "whatsapp" | "instagram" | "messenger" | "email", existingBuiltins?: ReadonlyMap<string, (input: Record<string, unknown>) => Promise<unknown
|
|
23
|
+
export declare function buildAgentSystemPrompt(basePrompt: string, agent: TenantAgentConfig, userContext?: UserContext): string;
|
|
24
|
+
export declare function resolveAgentContext(tenant: TenantConfig, userParts: readonly ContentPart[], channel?: "web" | "whatsapp" | "instagram" | "messenger" | "email", session?: ModeBSession, existingBuiltins?: ReadonlyMap<string, (input: Record<string, unknown>) => Promise<unknown>>, userContext?: UserContext): ResolvedAgentContext;
|
|
25
|
+
export declare function resolveAgentContextAsync(tenant: TenantConfig, userParts: readonly ContentPart[], session: ModeBSession, deps?: AsyncAgentResolverDeps, channel?: "web" | "whatsapp" | "instagram" | "messenger" | "email", existingBuiltins?: ReadonlyMap<string, (input: Record<string, unknown>) => Promise<unknown>>, userContext?: UserContext): Promise<ResolvedAgentContext>;
|
|
26
26
|
//# sourceMappingURL=agent-resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-resolver.d.ts","sourceRoot":"","sources":["../../src/tenant/agent-resolver.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAgD,QAAQ,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"agent-resolver.d.ts","sourceRoot":"","sources":["../../src/tenant/agent-resolver.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,iBAAiB,EAAE,QAAQ,EAAgD,QAAQ,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAIhK,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAErF,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,iBAAiB,EAAE,iBAAiB,CAAC;IAC9C,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC;IACvC,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC;IAClC,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;CAChC;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IACpD,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CAC9B;AAED,wBAAgB,sBAAsB,CACpC,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,iBAAiB,EACxB,WAAW,CAAC,EAAE,WAAW,GACxB,MAAM,CAoBR;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,SAAS,WAAW,EAAE,EACjC,OAAO,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,OAAO,EAClE,OAAO,CAAC,EAAE,YAAY,EACtB,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,EAC5F,WAAW,CAAC,EAAE,WAAW,GACxB,oBAAoB,CAuFtB;AAED,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,SAAS,WAAW,EAAE,EACjC,OAAO,EAAE,YAAY,EACrB,IAAI,CAAC,EAAE,sBAAsB,EAC7B,OAAO,CAAC,EAAE,KAAK,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,OAAO,EAClE,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,EAC5F,WAAW,CAAC,EAAE,WAAW,GACxB,OAAO,CAAC,oBAAoB,CAAC,CA6D/B"}
|
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
// Agent resolver: single integration point for multi-agent routing in all channel handlers.
|
|
2
2
|
// Resolves which agent handles a message, builds the agent-specific system prompt and tool context.
|
|
3
|
+
import { interpolateUserTokens } from "./interpolate-user-tokens.js";
|
|
3
4
|
import { buildTenantSystemPrompt } from "./system-prompt-builder.js";
|
|
4
5
|
import { buildTenantToolContext } from "../gateway/tenant-tool-factory.js";
|
|
5
6
|
import { DefaultTenantRouter, EmbeddingTenantRouter } from "./tenant-router.js";
|
|
6
7
|
import { checkPingPong } from "./ping-pong-guard.js";
|
|
7
|
-
export function buildAgentSystemPrompt(basePrompt, agent) {
|
|
8
|
+
export function buildAgentSystemPrompt(basePrompt, agent, userContext) {
|
|
9
|
+
const interp = (s) => interpolateUserTokens(s, userContext);
|
|
8
10
|
const parts = [basePrompt];
|
|
9
11
|
parts.push("");
|
|
10
12
|
parts.push("## Your Agent Identity");
|
|
11
|
-
parts.push(`You are "${agent.name}" — ${agent.role}.`);
|
|
12
|
-
parts.push(`Your primary goal: ${agent.goal}`);
|
|
13
|
+
parts.push(`You are "${agent.name}" — ${interp(agent.role)}.`);
|
|
14
|
+
parts.push(`Your primary goal: ${interp(agent.goal)}`);
|
|
13
15
|
if (agent.backstory) {
|
|
14
|
-
parts.push(`Background: ${agent.backstory}`);
|
|
16
|
+
parts.push(`Background: ${interp(agent.backstory)}`);
|
|
15
17
|
}
|
|
16
18
|
if (agent.instructions) {
|
|
17
19
|
parts.push("");
|
|
18
20
|
parts.push("## Operating Instructions");
|
|
19
|
-
parts.push(agent.instructions);
|
|
21
|
+
parts.push(interp(agent.instructions));
|
|
20
22
|
}
|
|
21
23
|
return parts.join("\n");
|
|
22
24
|
}
|
|
23
|
-
export function resolveAgentContext(tenant, userParts, channel, session, existingBuiltins) {
|
|
25
|
+
export function resolveAgentContext(tenant, userParts, channel, session, existingBuiltins, userContext) {
|
|
24
26
|
const basePrompt = buildTenantSystemPrompt(tenant, channel);
|
|
25
27
|
// No agents or single agent without routing → single-agent mode
|
|
26
28
|
if (!tenant.agents || tenant.agents.length === 0) {
|
|
@@ -32,7 +34,7 @@ export function resolveAgentContext(tenant, userParts, channel, session, existin
|
|
|
32
34
|
}
|
|
33
35
|
if (tenant.agents.length === 1) {
|
|
34
36
|
const agent = tenant.agents[0];
|
|
35
|
-
const systemPrompt = buildAgentSystemPrompt(basePrompt, agent);
|
|
37
|
+
const systemPrompt = buildAgentSystemPrompt(basePrompt, agent, userContext);
|
|
36
38
|
const toolCtx = buildAgentToolContext(tenant, agent, existingBuiltins);
|
|
37
39
|
return {
|
|
38
40
|
systemPrompt,
|
|
@@ -46,7 +48,7 @@ export function resolveAgentContext(tenant, userParts, channel, session, existin
|
|
|
46
48
|
if (!tenant.routing) {
|
|
47
49
|
// No routing config → fall back to first agent
|
|
48
50
|
const agent = tenant.agents[0];
|
|
49
|
-
const systemPrompt = buildAgentSystemPrompt(basePrompt, agent);
|
|
51
|
+
const systemPrompt = buildAgentSystemPrompt(basePrompt, agent, userContext);
|
|
50
52
|
const toolCtx = buildAgentToolContext(tenant, agent, existingBuiltins);
|
|
51
53
|
return {
|
|
52
54
|
systemPrompt,
|
|
@@ -65,7 +67,7 @@ export function resolveAgentContext(tenant, userParts, channel, session, existin
|
|
|
65
67
|
// Keep current agent
|
|
66
68
|
const currentAgent = tenant.agents.find((a) => a.id === session.activeAgentId)
|
|
67
69
|
?? tenant.agents.find((a) => a.isDefault) ?? tenant.agents[0];
|
|
68
|
-
const systemPrompt = buildAgentSystemPrompt(basePrompt, currentAgent);
|
|
70
|
+
const systemPrompt = buildAgentSystemPrompt(basePrompt, currentAgent, userContext);
|
|
69
71
|
const toolCtx = buildAgentToolContext(tenant, currentAgent, existingBuiltins);
|
|
70
72
|
return {
|
|
71
73
|
systemPrompt,
|
|
@@ -88,7 +90,7 @@ export function resolveAgentContext(tenant, userParts, channel, session, existin
|
|
|
88
90
|
}
|
|
89
91
|
const previousAgentId = session?.activeAgentId ?? undefined;
|
|
90
92
|
const isHandoff = previousAgentId !== undefined && previousAgentId !== selectedAgent.id;
|
|
91
|
-
const systemPrompt = buildAgentSystemPrompt(basePrompt, selectedAgent);
|
|
93
|
+
const systemPrompt = buildAgentSystemPrompt(basePrompt, selectedAgent, userContext);
|
|
92
94
|
const toolCtx = buildAgentToolContext(tenant, selectedAgent, existingBuiltins);
|
|
93
95
|
return {
|
|
94
96
|
systemPrompt,
|
|
@@ -100,14 +102,14 @@ export function resolveAgentContext(tenant, userParts, channel, session, existin
|
|
|
100
102
|
isHandoff,
|
|
101
103
|
};
|
|
102
104
|
}
|
|
103
|
-
export async function resolveAgentContextAsync(tenant, userParts, session, deps, channel, existingBuiltins) {
|
|
105
|
+
export async function resolveAgentContextAsync(tenant, userParts, session, deps, channel, existingBuiltins, userContext) {
|
|
104
106
|
// If agentRag is provided and tenant has multi-agent routing, use async Tier 2 routing
|
|
105
107
|
let result;
|
|
106
108
|
if (deps?.agentRag && tenant.agents && tenant.agents.length > 1 && tenant.routing) {
|
|
107
|
-
result = await resolveAgentContextWithEmbedding(tenant, userParts, channel, session, deps.agentRag, existingBuiltins);
|
|
109
|
+
result = await resolveAgentContextWithEmbedding(tenant, userParts, channel, session, deps.agentRag, existingBuiltins, userContext);
|
|
108
110
|
}
|
|
109
111
|
else {
|
|
110
|
-
result = resolveAgentContext(tenant, userParts, channel, session, existingBuiltins);
|
|
112
|
+
result = resolveAgentContext(tenant, userParts, channel, session, existingBuiltins, userContext);
|
|
111
113
|
}
|
|
112
114
|
// No handoff or blocked by guard or no summarizer → return as-is
|
|
113
115
|
if (!result.isHandoff || result.pingPongBlocked || !deps?.handoffSummarizer) {
|
|
@@ -157,7 +159,7 @@ export async function resolveAgentContextAsync(tenant, userParts, session, deps,
|
|
|
157
159
|
handoffBrief: brief || undefined,
|
|
158
160
|
};
|
|
159
161
|
}
|
|
160
|
-
async function resolveAgentContextWithEmbedding(tenant, userParts, channel, session, agentRag, existingBuiltins) {
|
|
162
|
+
async function resolveAgentContextWithEmbedding(tenant, userParts, channel, session, agentRag, existingBuiltins, userContext) {
|
|
161
163
|
const basePrompt = buildTenantSystemPrompt(tenant, channel);
|
|
162
164
|
const agents = tenant.agents;
|
|
163
165
|
const routing = tenant.routing;
|
|
@@ -168,7 +170,7 @@ async function resolveAgentContextWithEmbedding(tenant, userParts, channel, sess
|
|
|
168
170
|
if (guardResult.blocked) {
|
|
169
171
|
const currentAgent = agents.find((a) => a.id === session.activeAgentId)
|
|
170
172
|
?? agents.find((a) => a.isDefault) ?? agents[0];
|
|
171
|
-
const systemPrompt = buildAgentSystemPrompt(basePrompt, currentAgent);
|
|
173
|
+
const systemPrompt = buildAgentSystemPrompt(basePrompt, currentAgent, userContext);
|
|
172
174
|
const toolCtx = buildAgentToolContext(tenant, currentAgent, existingBuiltins);
|
|
173
175
|
return {
|
|
174
176
|
systemPrompt,
|
|
@@ -188,7 +190,7 @@ async function resolveAgentContextWithEmbedding(tenant, userParts, channel, sess
|
|
|
188
190
|
}
|
|
189
191
|
const previousAgentId = session.activeAgentId ?? undefined;
|
|
190
192
|
const isHandoff = previousAgentId !== undefined && previousAgentId !== selectedAgent.id;
|
|
191
|
-
const systemPrompt = buildAgentSystemPrompt(basePrompt, selectedAgent);
|
|
193
|
+
const systemPrompt = buildAgentSystemPrompt(basePrompt, selectedAgent, userContext);
|
|
192
194
|
const toolCtx = buildAgentToolContext(tenant, selectedAgent, existingBuiltins);
|
|
193
195
|
return {
|
|
194
196
|
systemPrompt,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-resolver.js","sourceRoot":"","sources":["../../src/tenant/agent-resolver.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,oGAAoG;AAGpG,OAAO,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,mCAAmC,CAAC;AAE3E,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAGhF,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAsBrD,MAAM,UAAU,sBAAsB,
|
|
1
|
+
{"version":3,"file":"agent-resolver.js","sourceRoot":"","sources":["../../src/tenant/agent-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { UserContext } from "@kilnai/core";
|
|
2
|
+
/**
|
|
3
|
+
* Resolves {{user.*}} tokens in a template string using the provided UserContext.
|
|
4
|
+
* Unknown keys resolve to empty string (fail-open).
|
|
5
|
+
* If userContext is undefined, the template is returned unchanged.
|
|
6
|
+
*/
|
|
7
|
+
export declare function interpolateUserTokens(template: string, userContext: UserContext | undefined): string;
|
|
8
|
+
//# sourceMappingURL=interpolate-user-tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interpolate-user-tokens.d.ts","sourceRoot":"","sources":["../../src/tenant/interpolate-user-tokens.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,CAKpG"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves {{user.*}} tokens in a template string using the provided UserContext.
|
|
3
|
+
* Unknown keys resolve to empty string (fail-open).
|
|
4
|
+
* If userContext is undefined, the template is returned unchanged.
|
|
5
|
+
*/
|
|
6
|
+
export function interpolateUserTokens(template, userContext) {
|
|
7
|
+
if (!userContext)
|
|
8
|
+
return template;
|
|
9
|
+
return template.replace(/\{\{user\.([a-zA-Z_][a-zA-Z0-9_]*)\}\}/g, (_match, key) => {
|
|
10
|
+
return Object.prototype.hasOwnProperty.call(userContext, key) ? (userContext[key] ?? "") : "";
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=interpolate-user-tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interpolate-user-tokens.js","sourceRoot":"","sources":["../../src/tenant/interpolate-user-tokens.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAgB,EAAE,WAAoC;IAC1F,IAAI,CAAC,WAAW;QAAE,OAAO,QAAQ,CAAC;IAClC,OAAO,QAAQ,CAAC,OAAO,CAAC,yCAAyC,EAAE,CAAC,MAAM,EAAE,GAAW,EAAE,EAAE;QACzF,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChG,CAAC,CAAC,CAAC;AACL,CAAC"}
|