@princeverma130104/agentguard 1.0.0 → 1.0.2

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/guard.js CHANGED
@@ -5,19 +5,34 @@
5
5
  * Orchestrates scanning, tokenization, vault storage, and deanonymization.
6
6
  */
7
7
  Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.AgentGuard = void 0;
8
+ exports.AgentGuard = exports.OutboundApprovalError = void 0;
9
9
  const uuid_1 = require("uuid");
10
+ const crypto_1 = require("crypto");
10
11
  const scanner_1 = require("./scanner");
11
12
  const vault_1 = require("./vault");
13
+ class OutboundApprovalError extends Error {
14
+ constructor() {
15
+ super('Outbound LLM request was not approved.');
16
+ this.name = 'OutboundApprovalError';
17
+ }
18
+ }
19
+ exports.OutboundApprovalError = OutboundApprovalError;
12
20
  class AgentGuard {
13
21
  constructor(options = {}) {
14
22
  this.options = options;
15
23
  this.auditLog = [];
24
+ const maxTextLength = options.maxTextLength ?? 1000000;
25
+ if (!Number.isSafeInteger(maxTextLength) || maxTextLength <= 0) {
26
+ throw new RangeError('maxTextLength must be a positive safe integer.');
27
+ }
16
28
  this.vault = new vault_1.TokenVault({
17
29
  redisUrl: options.redisUrl,
18
30
  ttlSeconds: options.ttlSeconds,
31
+ maxTokensPerSession: options.maxTokensPerSession,
32
+ vaultEncryptionKey: options.vaultEncryptionKey,
19
33
  });
20
34
  this.verbose = options.verbose ?? false;
35
+ this.maxTextLength = maxTextLength;
21
36
  }
22
37
  /**
23
38
  * Scans input text, replaces all detected PII with deterministic tokens,
@@ -31,6 +46,15 @@ class AgentGuard {
31
46
  * @returns Sanitized text, session ID, and a redaction summary
32
47
  */
33
48
  async anonymize(text, sessionId) {
49
+ if (typeof text !== 'string') {
50
+ throw new TypeError('text must be a string.');
51
+ }
52
+ if (text.length > this.maxTextLength) {
53
+ throw new RangeError(`text exceeds the configured maximum of ${this.maxTextLength} characters.`);
54
+ }
55
+ if (sessionId !== undefined && (typeof sessionId !== 'string' || sessionId.length === 0 || sessionId.length > 512)) {
56
+ throw new TypeError('sessionId must be a non-empty string of at most 512 characters.');
57
+ }
34
58
  const activeSession = sessionId ?? (0, uuid_1.v4)();
35
59
  const scan = (0, scanner_1.scanText)(text, this.options.customPatterns);
36
60
  if (!scan.hasSensitiveData) {
@@ -41,46 +65,32 @@ class AgentGuard {
41
65
  };
42
66
  }
43
67
  const uniqueValues = (0, scanner_1.extractUniqueValues)(scan);
44
- const typeCounters = {};
45
68
  const redactedCounts = {};
46
- const existingVault = await this.vault.getVault(activeSession);
47
- for (const token of Object.keys(existingVault)) {
48
- const match = /^\[([A-Z_]+)_(\d+)\]$/.exec(token);
49
- if (match) {
50
- typeCounters[match[1]] = Math.max(typeCounters[match[1]] ?? 0, Number(match[2]));
51
- }
52
- }
53
- let sanitizedText = text;
69
+ const tokenByValue = new Map();
54
70
  for (const [rawValue, entityType] of uniqueValues.entries()) {
55
- // Check if this value already has a token in the session (deduplication)
56
- const existingToken = await this.vault.lookupToken(activeSession, rawValue);
57
- let token;
58
- if (existingToken) {
59
- token = existingToken;
60
- }
61
- else {
62
- typeCounters[entityType] = (typeCounters[entityType] ?? 0) + 1;
63
- token = `[${entityType}_${typeCounters[entityType]}]`;
64
- while (Object.prototype.hasOwnProperty.call(existingVault, token)) {
65
- typeCounters[entityType]++;
66
- token = `[${entityType}_${typeCounters[entityType]}]`;
67
- }
68
- await this.vault.store(activeSession, token, rawValue);
69
- existingVault[token] = rawValue;
71
+ const { token, created } = await this.vault.getOrStore(activeSession, entityType, rawValue);
72
+ tokenByValue.set(rawValue, token);
73
+ if (created) {
70
74
  redactedCounts[entityType] = (redactedCounts[entityType] ?? 0) + 1;
71
75
  }
72
- // Replace ALL occurrences of rawValue in the text
73
- sanitizedText = sanitizedText.split(rawValue).join(token);
74
76
  }
77
+ let sanitizedText = '';
78
+ let cursor = 0;
79
+ for (const entity of scan.entities) {
80
+ sanitizedText += text.slice(cursor, entity.startIndex);
81
+ sanitizedText += tokenByValue.get(entity.value);
82
+ cursor = entity.endIndex;
83
+ }
84
+ sanitizedText += text.slice(cursor);
75
85
  const redactionSummary = redactedCounts;
76
86
  this.recordAudit({
77
87
  timestamp: new Date().toISOString(),
78
- sessionId: activeSession,
88
+ sessionIdHash: this.hashSessionId(activeSession),
79
89
  operation: 'anonymize',
80
90
  entityTypesRedacted: Object.keys(redactionSummary),
81
91
  });
82
92
  if (this.verbose) {
83
- console.log(`[AgentGuard] Anonymized | session=${activeSession} | types=${JSON.stringify(redactionSummary)}`);
93
+ console.log(`[AgentGuard] Anonymized | sessionHash=${this.hashSessionId(activeSession)} | types=${JSON.stringify(redactionSummary)}`);
84
94
  }
85
95
  return { sanitizedText, sessionId: activeSession, redactionSummary };
86
96
  }
@@ -94,26 +104,122 @@ class AgentGuard {
94
104
  * @returns Text with all tokens replaced by original values
95
105
  */
96
106
  async deanonymize(tokenizedText, sessionId) {
107
+ this.validateSessionId(sessionId);
108
+ if (typeof tokenizedText !== 'string') {
109
+ throw new TypeError('tokenizedText must be a string.');
110
+ }
111
+ if (tokenizedText.length > this.maxTextLength) {
112
+ throw new RangeError(`tokenizedText exceeds the configured maximum of ${this.maxTextLength} characters.`);
113
+ }
97
114
  const vault = await this.vault.getVault(sessionId);
98
- let restoredText = tokenizedText;
99
115
  let restoredCount = 0;
100
- for (const [token, rawValue] of Object.entries(vault)) {
101
- if (restoredText.includes(token)) {
102
- restoredText = restoredText.split(token).join(rawValue);
103
- restoredCount++;
116
+ let outputLength = 0;
117
+ let cursor = 0;
118
+ const parts = [];
119
+ const tokenPattern = /\[[A-Z_]+_\d+\]/g;
120
+ let match;
121
+ while ((match = tokenPattern.exec(tokenizedText)) !== null) {
122
+ const token = match[0];
123
+ const replacement = Object.prototype.hasOwnProperty.call(vault, token)
124
+ ? vault[token]
125
+ : token;
126
+ outputLength += match.index - cursor + replacement.length;
127
+ if (outputLength > this.maxTextLength) {
128
+ throw new RangeError(`restored text exceeds the configured maximum of ${this.maxTextLength} characters.`);
104
129
  }
130
+ parts.push(tokenizedText.slice(cursor, match.index), replacement);
131
+ cursor = match.index + token.length;
132
+ if (Object.prototype.hasOwnProperty.call(vault, token))
133
+ restoredCount++;
105
134
  }
135
+ const tail = tokenizedText.slice(cursor);
136
+ if (outputLength + tail.length > this.maxTextLength) {
137
+ throw new RangeError(`restored text exceeds the configured maximum of ${this.maxTextLength} characters.`);
138
+ }
139
+ parts.push(tail);
140
+ const restoredText = parts.join('');
106
141
  this.recordAudit({
107
142
  timestamp: new Date().toISOString(),
108
- sessionId,
143
+ sessionIdHash: this.hashSessionId(sessionId),
109
144
  operation: 'deanonymize',
110
145
  totalTokensRestored: restoredCount,
111
146
  });
112
147
  if (this.verbose) {
113
- console.log(`[AgentGuard] Deanonymized | session=${sessionId} | tokensRestored=${restoredCount}`);
148
+ console.log(`[AgentGuard] Deanonymized | sessionHash=${this.hashSessionId(sessionId)} | tokensRestored=${restoredCount}`);
114
149
  }
115
150
  return restoredText;
116
151
  }
152
+ /**
153
+ * Anonymizes strings throughout a JSON-compatible value, including property
154
+ * names, and reuses one vault session for the complete structure.
155
+ */
156
+ async anonymizeObject(value, sessionId) {
157
+ const initial = await this.anonymize('', sessionId);
158
+ const redactionSummary = {};
159
+ const sanitizedValue = await this.mapJsonValue(value, async (text) => {
160
+ const result = await this.anonymize(text, initial.sessionId);
161
+ for (const [entityType, count] of Object.entries(result.redactionSummary)) {
162
+ redactionSummary[entityType] = (redactionSummary[entityType] ?? 0) + count;
163
+ }
164
+ return result.sanitizedText;
165
+ }, new WeakSet(), 0, 'Request');
166
+ return {
167
+ sanitizedValue,
168
+ sessionId: initial.sessionId,
169
+ redactionSummary,
170
+ };
171
+ }
172
+ /**
173
+ * Restores tokens throughout a JSON-compatible value using one session.
174
+ * Only call this for a session authorized by the consuming application.
175
+ */
176
+ async deanonymizeObject(value, sessionId) {
177
+ this.validateSessionId(sessionId);
178
+ return this.mapJsonValue(value, (text) => this.deanonymize(text, sessionId), new WeakSet(), 0, 'Response');
179
+ }
180
+ /**
181
+ * Anonymizes a prompt before invoking the caller's outbound LLM function.
182
+ * If supplied, approval receives sanitized text only; any result other than
183
+ * literal true blocks the call. Sanitization or approval errors fail closed.
184
+ */
185
+ async sendToLLM(send, prompt, options = {}) {
186
+ if (typeof send !== 'function') {
187
+ throw new TypeError('send must be a function.');
188
+ }
189
+ if (options.approve !== undefined && typeof options.approve !== 'function') {
190
+ throw new TypeError('approve must be a function when provided.');
191
+ }
192
+ const { sanitizedText, sessionId, redactionSummary } = await this.anonymize(prompt, options.sessionId);
193
+ if (options.approve) {
194
+ let approved;
195
+ try {
196
+ approved = await options.approve({
197
+ sanitizedPrompt: sanitizedText,
198
+ redactionSummary: { ...redactionSummary },
199
+ });
200
+ }
201
+ catch (error) {
202
+ this.recordAudit({
203
+ timestamp: new Date().toISOString(),
204
+ sessionIdHash: this.hashSessionId(sessionId),
205
+ operation: 'outbound_rejected',
206
+ entityTypesRedacted: Object.keys(redactionSummary),
207
+ });
208
+ throw error;
209
+ }
210
+ this.recordAudit({
211
+ timestamp: new Date().toISOString(),
212
+ sessionIdHash: this.hashSessionId(sessionId),
213
+ operation: approved === true ? 'outbound_approved' : 'outbound_rejected',
214
+ entityTypesRedacted: Object.keys(redactionSummary),
215
+ });
216
+ if (approved !== true) {
217
+ throw new OutboundApprovalError();
218
+ }
219
+ }
220
+ const result = await send(sanitizedText);
221
+ return { result, sessionId, redactionSummary };
222
+ }
117
223
  /**
118
224
  * Wraps an async function, automatically anonymizing its string input
119
225
  * and deanonymizing the string output. Useful for wrapping LLM calls.
@@ -139,18 +245,18 @@ class AgentGuard {
139
245
  await this.vault.destroySession(sessionId);
140
246
  this.recordAudit({
141
247
  timestamp: new Date().toISOString(),
142
- sessionId,
248
+ sessionIdHash: this.hashSessionId(sessionId),
143
249
  operation: 'session_destroy',
144
250
  });
145
251
  if (this.verbose) {
146
- console.log(`[AgentGuard] Session destroyed | session=${sessionId}`);
252
+ console.log(`[AgentGuard] Session destroyed | sessionHash=${this.hashSessionId(sessionId)}`);
147
253
  }
148
254
  }
149
255
  /**
150
256
  * Returns the in-memory audit log (no PII, only metadata).
151
257
  */
152
258
  getAuditLog() {
153
- return this.auditLog;
259
+ return this.auditLog.map((entry) => ({ ...entry }));
154
260
  }
155
261
  /**
156
262
  * Checks Redis connectivity. Use in health-check endpoints.
@@ -172,6 +278,65 @@ class AgentGuard {
172
278
  this.auditLog.shift();
173
279
  }
174
280
  }
281
+ hashSessionId(sessionId) {
282
+ return (0, crypto_1.createHash)('sha256').update(sessionId).digest('hex').slice(0, 16);
283
+ }
284
+ validateSessionId(sessionId) {
285
+ if (typeof sessionId !== 'string' || sessionId.length === 0 || sessionId.length > 512) {
286
+ throw new TypeError('sessionId must be a non-empty string of at most 512 characters.');
287
+ }
288
+ }
289
+ async mapJsonValue(value, mapText, ancestors, depth, label) {
290
+ if (depth > 100) {
291
+ throw new RangeError(`${label} body exceeds the maximum nesting depth of 100.`);
292
+ }
293
+ if (typeof value === 'string')
294
+ return mapText(value);
295
+ if (value === null ||
296
+ typeof value === 'boolean' ||
297
+ (typeof value === 'number' && Number.isFinite(value))) {
298
+ return value;
299
+ }
300
+ if (typeof value !== 'object') {
301
+ throw new TypeError(`${label} body must contain only JSON-compatible values.`);
302
+ }
303
+ if (ancestors.has(value)) {
304
+ throw new TypeError(`${label} body must not contain circular references.`);
305
+ }
306
+ if (!Array.isArray(value) &&
307
+ Object.getPrototypeOf(value) !== Object.prototype &&
308
+ Object.getPrototypeOf(value) !== null) {
309
+ throw new TypeError(`${label} body must contain only JSON-compatible objects.`);
310
+ }
311
+ ancestors.add(value);
312
+ try {
313
+ if (Array.isArray(value)) {
314
+ const result = [];
315
+ for (const item of value) {
316
+ result.push(await this.mapJsonValue(item, mapText, ancestors, depth + 1, label));
317
+ }
318
+ return result;
319
+ }
320
+ const result = {};
321
+ for (const [key, item] of Object.entries(value)) {
322
+ const mappedKey = await mapText(key);
323
+ const mappedValue = await this.mapJsonValue(item, mapText, ancestors, depth + 1, label);
324
+ if (Object.prototype.hasOwnProperty.call(result, mappedKey)) {
325
+ throw new TypeError(`${label} property names collide after anonymization.`);
326
+ }
327
+ Object.defineProperty(result, mappedKey, {
328
+ configurable: true,
329
+ enumerable: true,
330
+ value: mappedValue,
331
+ writable: true,
332
+ });
333
+ }
334
+ return result;
335
+ }
336
+ finally {
337
+ ancestors.delete(value);
338
+ }
339
+ }
175
340
  }
176
341
  exports.AgentGuard = AgentGuard;
177
342
  //# sourceMappingURL=guard.js.map
package/dist/guard.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"guard.js","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guard.js","sourceRoot":"","sources":["../src/guard.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -6,7 +6,8 @@
6
6
  * Import from 'agentguard/langchain' for LangChain.js integration.
7
7
  */
8
8
  export { AgentGuard } from './guard';
9
- export type { GuardOptions, AnonymizeResult, AuditEntry } from './guard';
9
+ export type { GuardOptions, AnonymizeResult, AnonymizeObjectResult, AuditEntry, JsonValue, OutboundApprovalRequest, OutboundCallOptions, OutboundCallResult, } from './guard';
10
+ export { OutboundApprovalError } from './guard';
10
11
  export { TokenVault } from './vault';
11
12
  export type { VaultOptions } from './vault';
12
13
  export { scanText, extractUniqueValues } from './scanner';
@@ -14,7 +15,7 @@ export type { DetectedEntity, ScanResult } from './scanner';
14
15
  export { PATTERN_REGISTRY, PATTERN_ORDER } from './patterns';
15
16
  export type { PatternKey } from './patterns';
16
17
  export { createRequestMiddleware, createResponseMiddleware, createGuardMiddleware, } from './middleware';
17
- export type { GuardRequest, GuardResponse } from './middleware';
18
+ export type { GuardRequest, GuardResponse, GuardMiddlewareStack } from './middleware';
18
19
  export { createMastraGuard } from './mastra';
19
20
  export type { MastraGuard, MastraStepContext, MastraStepResult } from './mastra';
20
21
  export { createLangChainGuard } from './langchain';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAGzE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5C,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC1D,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG5D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC7D,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAGhE,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,YAAY,EACV,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,UAAU,EACV,SAAS,EACT,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG5C,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAC1D,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAG5D,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC7D,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C,OAAO,EACL,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,GACtB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGtF,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC7C,YAAY,EAAE,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAEjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACnD,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -7,10 +7,12 @@
7
7
  * Import from 'agentguard/langchain' for LangChain.js integration.
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.createLangChainGuard = exports.createMastraGuard = exports.createGuardMiddleware = exports.createResponseMiddleware = exports.createRequestMiddleware = exports.PATTERN_ORDER = exports.PATTERN_REGISTRY = exports.extractUniqueValues = exports.scanText = exports.TokenVault = exports.AgentGuard = void 0;
10
+ exports.createLangChainGuard = exports.createMastraGuard = exports.createGuardMiddleware = exports.createResponseMiddleware = exports.createRequestMiddleware = exports.PATTERN_ORDER = exports.PATTERN_REGISTRY = exports.extractUniqueValues = exports.scanText = exports.TokenVault = exports.OutboundApprovalError = exports.AgentGuard = void 0;
11
11
  // Core engine
12
12
  var guard_1 = require("./guard");
13
13
  Object.defineProperty(exports, "AgentGuard", { enumerable: true, get: function () { return guard_1.AgentGuard; } });
14
+ var guard_2 = require("./guard");
15
+ Object.defineProperty(exports, "OutboundApprovalError", { enumerable: true, get: function () { return guard_2.OutboundApprovalError; } });
14
16
  // Vault
15
17
  var vault_1 = require("./vault");
16
18
  Object.defineProperty(exports, "TokenVault", { enumerable: true, get: function () { return vault_1.TokenVault; } });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,cAAc;AACd,iCAAqC;AAA5B,mGAAA,UAAU,OAAA;AAGnB,QAAQ;AACR,iCAAqC;AAA5B,mGAAA,UAAU,OAAA;AAGnB,UAAU;AACV,qCAA0D;AAAjD,mGAAA,QAAQ,OAAA;AAAE,8GAAA,mBAAmB,OAAA;AAGtC,WAAW;AACX,uCAA6D;AAApD,4GAAA,gBAAgB,OAAA;AAAE,yGAAA,aAAa,OAAA;AAGxC,aAAa;AACb,2CAIsB;AAHpB,qHAAA,uBAAuB,OAAA;AACvB,sHAAA,wBAAwB,OAAA;AACxB,mHAAA,qBAAqB,OAAA;AAIvB,yBAAyB;AACzB,mCAA6C;AAApC,2GAAA,iBAAiB,OAAA;AAG1B,yCAAmD;AAA1C,iHAAA,oBAAoB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEH,cAAc;AACd,iCAAqC;AAA5B,mGAAA,UAAU,OAAA;AAWnB,iCAAgD;AAAvC,8GAAA,qBAAqB,OAAA;AAE9B,QAAQ;AACR,iCAAqC;AAA5B,mGAAA,UAAU,OAAA;AAGnB,UAAU;AACV,qCAA0D;AAAjD,mGAAA,QAAQ,OAAA;AAAE,8GAAA,mBAAmB,OAAA;AAGtC,WAAW;AACX,uCAA6D;AAApD,4GAAA,gBAAgB,OAAA;AAAE,yGAAA,aAAa,OAAA;AAGxC,aAAa;AACb,2CAIsB;AAHpB,qHAAA,uBAAuB,OAAA;AACvB,sHAAA,wBAAwB,OAAA;AACxB,mHAAA,qBAAqB,OAAA;AAIvB,yBAAyB;AACzB,mCAA6C;AAApC,2GAAA,iBAAiB,OAAA;AAG1B,yCAAmD;AAA1C,iHAAA,oBAAoB,OAAA"}
@@ -33,6 +33,8 @@ export interface LangChainGuardHandler {
33
33
  text: string;
34
34
  }>>;
35
35
  }, runId: string): Promise<void>;
36
+ /** Failure hook: releases the session association for a failed run. */
37
+ handleLLMError(error: unknown, runId: string): Promise<void>;
36
38
  /** Chat message hook: anonymizes HumanMessages in-place */
37
39
  handleChatModelStart(llm: Record<string, unknown>, messages: LangChainMessage[][], runId: string): Promise<void>;
38
40
  }
@@ -41,7 +43,8 @@ export interface LangChainGuard {
41
43
  guard: AgentGuard;
42
44
  /**
43
45
  * Manually restore tokens in any output string.
44
- * Uses the handler's current sessionId.
46
+ * Uses the latest completed/in-progress sessionId. Supply an explicit ID
47
+ * when multiple LLM runs may be in flight concurrently.
45
48
  */
46
49
  restore(text: string, sessionId?: string): Promise<string>;
47
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"langchain.d.ts","sourceRoot":"","sources":["../src/langchain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,6DAA6D;IAC7D,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9B,yDAAyD;IACzD,cAAc,CACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,OAAO,EAAE,MAAM,EAAE,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,wDAAwD;IACxD,YAAY,CACV,MAAM,EAAE;QAAE,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC,CAAA;KAAE,EACvD,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,2DAA2D;IAC3D,oBAAoB,CAClB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,QAAQ,EAAE,gBAAgB,EAAE,EAAE,EAC9B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,qBAAqB,CAAC;IAC/B,KAAK,EAAE,UAAU,CAAC;IAClB;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,cAAc,CAmD3E"}
1
+ {"version":3,"file":"langchain.d.ts","sourceRoot":"","sources":["../src/langchain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,qBAAqB;IACpC,6DAA6D;IAC7D,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAE9B,yDAAyD;IACzD,cAAc,CACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,OAAO,EAAE,MAAM,EAAE,EACjB,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,wDAAwD;IACxD,YAAY,CACV,MAAM,EAAE;QAAE,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC,CAAA;KAAE,EACvD,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,uEAAuE;IACvE,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7D,2DAA2D;IAC3D,oBAAoB,CAClB,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC5B,QAAQ,EAAE,gBAAgB,EAAE,EAAE,EAC9B,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,IAAI,CAAC,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,qBAAqB,CAAC;IAC/B,KAAK,EAAE,UAAU,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CAC5D;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,cAAc,CA+D3E"}
package/dist/langchain.js CHANGED
@@ -25,35 +25,53 @@ const guard_1 = require("./guard");
25
25
  * the LLM call lifecycle to apply AgentGuard protection.
26
26
  */
27
27
  function createLangChainGuard(options) {
28
- const guard = new guard_1.AgentGuard({ verbose: true, ...options });
28
+ const guard = new guard_1.AgentGuard(options);
29
+ const sessionsByRunId = new Map();
29
30
  const handler = {
30
31
  sessionId: undefined,
31
32
  async handleLLMStart(_llm, prompts, _runId) {
33
+ let sessionId = sessionsByRunId.get(_runId);
32
34
  for (let i = 0; i < prompts.length; i++) {
33
- const { sanitizedText, sessionId } = await guard.anonymize(prompts[i], handler.sessionId);
34
- prompts[i] = sanitizedText;
35
+ const result = await guard.anonymize(prompts[i], sessionId);
36
+ sessionId = result.sessionId;
37
+ prompts[i] = result.sanitizedText;
38
+ }
39
+ if (sessionId) {
40
+ sessionsByRunId.set(_runId, sessionId);
35
41
  handler.sessionId = sessionId;
36
42
  }
37
43
  },
38
44
  async handleLLMEnd(output, _runId) {
39
- if (!handler.sessionId)
45
+ const sessionId = sessionsByRunId.get(_runId);
46
+ if (!sessionId)
40
47
  return;
41
- for (const generationBatch of output.generations) {
42
- for (const gen of generationBatch) {
43
- gen.text = await guard.deanonymize(gen.text, handler.sessionId);
48
+ try {
49
+ for (const generationBatch of output.generations) {
50
+ for (const gen of generationBatch) {
51
+ gen.text = await guard.deanonymize(gen.text, sessionId);
52
+ }
44
53
  }
45
54
  }
55
+ finally {
56
+ sessionsByRunId.delete(_runId);
57
+ }
58
+ },
59
+ async handleLLMError(_error, _runId) {
60
+ sessionsByRunId.delete(_runId);
46
61
  },
47
62
  async handleChatModelStart(_llm, messages, _runId) {
63
+ let sessionId = sessionsByRunId.get(_runId);
48
64
  for (const batch of messages) {
49
65
  for (const msg of batch) {
50
- if (msg.role !== 'system') {
51
- const { sanitizedText, sessionId } = await guard.anonymize(msg.content, handler.sessionId);
52
- msg.content = sanitizedText;
53
- handler.sessionId = sessionId;
54
- }
66
+ const result = await guard.anonymize(msg.content, sessionId);
67
+ sessionId = result.sessionId;
68
+ msg.content = result.sanitizedText;
55
69
  }
56
70
  }
71
+ if (sessionId) {
72
+ sessionsByRunId.set(_runId, sessionId);
73
+ handler.sessionId = sessionId;
74
+ }
57
75
  },
58
76
  };
59
77
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"langchain.js","sourceRoot":"","sources":["../src/langchain.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;AAiDH,oDAmDC;AAlGD,mCAAmD;AA2CnD;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,OAAsB;IACzD,MAAM,KAAK,GAAG,IAAI,kBAAU,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAE5D,MAAM,OAAO,GAA0B;QACrC,SAAS,EAAE,SAAS;QAEpB,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM;YACxC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACxC,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,MAAM,KAAK,CAAC,SAAS,CACxD,OAAO,CAAC,CAAC,CAAC,EACV,OAAO,CAAC,SAAS,CAClB,CAAC;gBACF,OAAO,CAAC,CAAC,CAAC,GAAG,aAAa,CAAC;gBAC3B,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;YAChC,CAAC;QACH,CAAC;QAED,KAAK,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM;YAC/B,IAAI,CAAC,OAAO,CAAC,SAAS;gBAAE,OAAO;YAC/B,KAAK,MAAM,eAAe,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;gBACjD,KAAK,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;oBAClC,GAAG,CAAC,IAAI,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;gBAClE,CAAC;YACH,CAAC;QACH,CAAC;QAED,KAAK,CAAC,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM;YAC/C,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;gBAC7B,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;oBACxB,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;wBAC1B,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,MAAM,KAAK,CAAC,SAAS,CACxD,GAAG,CAAC,OAAO,EACX,OAAO,CAAC,SAAS,CAClB,CAAC;wBACF,GAAG,CAAC,OAAO,GAAG,aAAa,CAAC;wBAC5B,OAAO,CAAC,SAAS,GAAG,SAAS,CAAC;oBAChC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;KACF,CAAC;IAEF,OAAO;QACL,OAAO;QACP,KAAK;QACL,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,SAAS;YAC3B,MAAM,GAAG,GAAG,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC;YAC3C,IAAI,CAAC,GAAG;gBAAE,OAAO,IAAI,CAAC;YACtB,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACtC,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"langchain.js","sourceRoot":"","sources":["../src/langchain.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"mastra.d.ts","sourceRoot":"","sources":["../src/mastra.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,UAAU,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,SAAS,iBAAiB,EAAE,OAAO,SAAS,gBAAgB,EAC3E,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,GACtC,CAAC,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC;;;OAGG;IACH,eAAe,CACb,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACnE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,WAAW,CAsErE"}
1
+ {"version":3,"file":"mastra.d.ts","sourceRoot":"","sources":["../src/mastra.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,UAAU,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,SAAS,iBAAiB,EAAE,OAAO,SAAS,gBAAgB,EAC3E,EAAE,EAAE,CAAC,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,GACtC,CAAC,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IACvC;;;OAGG;IACH,eAAe,CACb,MAAM,EAAE,MAAM,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACrD;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACnE;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,WAAW,CAkErE"}
package/dist/mastra.js CHANGED
@@ -28,7 +28,7 @@ const guard_1 = require("./guard");
28
28
  * @param options AgentGuard configuration
29
29
  */
30
30
  function createMastraGuard(options) {
31
- const guard = new guard_1.AgentGuard({ verbose: true, ...options });
31
+ const guard = new guard_1.AgentGuard(options);
32
32
  return {
33
33
  guard,
34
34
  wrapStep(fn) {
@@ -49,14 +49,9 @@ function createMastraGuard(options) {
49
49
  if (ctx.messages) {
50
50
  const sanitizedMessages = [];
51
51
  for (const msg of ctx.messages) {
52
- if (msg.role !== 'system') {
53
- const { sanitizedText, sessionId: sid } = await guard.anonymize(msg.content, sessionId);
54
- sessionId = sid;
55
- sanitizedMessages.push({ ...msg, content: sanitizedText });
56
- }
57
- else {
58
- sanitizedMessages.push(msg);
59
- }
52
+ const { sanitizedText, sessionId: sid } = await guard.anonymize(msg.content, sessionId);
53
+ sessionId = sid;
54
+ sanitizedMessages.push({ ...msg, content: sanitizedText });
60
55
  }
61
56
  sanitizedCtx.messages = sanitizedMessages;
62
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mastra.js","sourceRoot":"","sources":["../src/mastra.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mastra.js","sourceRoot":"","sources":["../src/mastra.ts"],"names":[],"mappings":"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"}
@@ -8,21 +8,26 @@ import { IncomingMessage, ServerResponse } from 'http';
8
8
  import { AgentGuard, GuardOptions } from './guard';
9
9
  export type NextFunction = (err?: unknown) => void;
10
10
  export interface GuardRequest extends IncomingMessage {
11
- agentGuardSessionId?: string;
12
11
  body?: unknown;
13
12
  }
14
13
  export interface GuardResponse extends ServerResponse {
15
- agentGuardSessionId?: string;
16
14
  /** Express adds this method at runtime — typed here for middleware compatibility */
17
15
  json?: (body: unknown) => GuardResponse;
18
16
  }
17
+ export type GuardMiddlewareStack = [
18
+ ReturnType<typeof createRequestMiddleware>,
19
+ ReturnType<typeof createResponseMiddleware>
20
+ ] & {
21
+ guard: AgentGuard;
22
+ close(): Promise<void>;
23
+ };
19
24
  /**
20
25
  * Creates an Express-compatible middleware that:
21
26
  * 1. Reads the raw request body
22
27
  * 2. Applies AgentGuard anonymization to any string fields
23
- * 3. Attaches the session ID to the request for downstream deanonymization
28
+ * 3. Keeps the session ID private for paired response restoration
24
29
  */
25
- export declare function createRequestMiddleware(guard: AgentGuard): (req: GuardRequest, res: GuardResponse, next: NextFunction) => Promise<void>;
30
+ export declare function createRequestMiddleware(guard: AgentGuard): (req: GuardRequest, _res: GuardResponse, next: NextFunction) => Promise<void>;
26
31
  /**
27
32
  * Creates an Express-compatible middleware that deanonymizes response bodies
28
33
  * before sending them to the downstream tool/browser.
@@ -32,5 +37,5 @@ export declare function createResponseMiddleware(guard: AgentGuard): (req: Guard
32
37
  * Standalone factory to create a full guard middleware stack.
33
38
  * Usage: app.use(...createGuardMiddleware({ redisUrl: '...' }));
34
39
  */
35
- export declare function createGuardMiddleware(options?: GuardOptions): ((req: GuardRequest, res: GuardResponse, next: NextFunction) => Promise<void>)[];
40
+ export declare function createGuardMiddleware(options?: GuardOptions): GuardMiddlewareStack;
36
41
  //# sourceMappingURL=middleware.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAEnD,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,oFAAoF;IACpF,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,aAAa,CAAC;CACzC;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,UAAU,IAErD,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,MAAM,YAAY,KACjB,OAAO,CAAC,IAAI,CAAC,CAajB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,UAAU,IAEtD,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,MAAM,YAAY,KACjB,OAAO,CAAC,IAAI,CAAC,CAmBjB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,YAAY,UApDnD,YAAY,OACZ,aAAa,QACZ,YAAY,KACjB,OAAO,CAAC,IAAI,CAAC,IAuDjB"}
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEnD,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAEnD,MAAM,WAAW,YAAa,SAAQ,eAAe;IACnD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,MAAM,WAAW,aAAc,SAAQ,cAAc;IACnD,oFAAoF;IACpF,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,aAAa,CAAC;CACzC;AAID,MAAM,MAAM,oBAAoB,GAAG;IACjC,UAAU,CAAC,OAAO,uBAAuB,CAAC;IAC1C,UAAU,CAAC,OAAO,wBAAwB,CAAC;CAC5C,GAAG;IACF,KAAK,EAAE,UAAU,CAAC;IAClB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,UAAU,IAErD,KAAK,YAAY,EACjB,MAAM,aAAa,EACnB,MAAM,YAAY,KACjB,OAAO,CAAC,IAAI,CAAC,CAYjB;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,UAAU,IAEtD,KAAK,YAAY,EACjB,KAAK,aAAa,EAClB,MAAM,YAAY,KACjB,OAAO,CAAC,IAAI,CAAC,CAoBjB;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,oBAAoB,CAYlF"}