@congzhen/changewayguard 6.8.12
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/LICENSE +21 -0
- package/README.md +270 -0
- package/dashboard-dist/api/104.index.js +1420 -0
- package/dashboard-dist/api/104.index.js.map +1 -0
- package/dashboard-dist/api/113.index.js +496 -0
- package/dashboard-dist/api/113.index.js.map +1 -0
- package/dashboard-dist/api/18.index.js +67 -0
- package/dashboard-dist/api/18.index.js.map +1 -0
- package/dashboard-dist/api/217.index.js +44 -0
- package/dashboard-dist/api/217.index.js.map +1 -0
- package/dashboard-dist/api/222.index.js +90 -0
- package/dashboard-dist/api/222.index.js.map +1 -0
- package/dashboard-dist/api/25.index.js +3562 -0
- package/dashboard-dist/api/25.index.js.map +1 -0
- package/dashboard-dist/api/280.index.js +206 -0
- package/dashboard-dist/api/280.index.js.map +1 -0
- package/dashboard-dist/api/369.index.js +115 -0
- package/dashboard-dist/api/369.index.js.map +1 -0
- package/dashboard-dist/api/377.index.js +1176 -0
- package/dashboard-dist/api/377.index.js.map +1 -0
- package/dashboard-dist/api/411.index.js +4250 -0
- package/dashboard-dist/api/411.index.js.map +1 -0
- package/dashboard-dist/api/424.index.js +135 -0
- package/dashboard-dist/api/424.index.js.map +1 -0
- package/dashboard-dist/api/573.index.js +806 -0
- package/dashboard-dist/api/573.index.js.map +1 -0
- package/dashboard-dist/api/598.index.js +328 -0
- package/dashboard-dist/api/598.index.js.map +1 -0
- package/dashboard-dist/api/62.index.js +4151 -0
- package/dashboard-dist/api/62.index.js.map +1 -0
- package/dashboard-dist/api/67.index.js +23383 -0
- package/dashboard-dist/api/67.index.js.map +1 -0
- package/dashboard-dist/api/678.index.js +2734 -0
- package/dashboard-dist/api/678.index.js.map +1 -0
- package/dashboard-dist/api/698.index.js +1896 -0
- package/dashboard-dist/api/698.index.js.map +1 -0
- package/dashboard-dist/api/720.index.js +98 -0
- package/dashboard-dist/api/720.index.js.map +1 -0
- package/dashboard-dist/api/830.index.js +95 -0
- package/dashboard-dist/api/830.index.js.map +1 -0
- package/dashboard-dist/api/831.index.js +99 -0
- package/dashboard-dist/api/831.index.js.map +1 -0
- package/dashboard-dist/api/84.index.js +64 -0
- package/dashboard-dist/api/84.index.js.map +1 -0
- package/dashboard-dist/api/900.index.js +65 -0
- package/dashboard-dist/api/900.index.js.map +1 -0
- package/dashboard-dist/api/917.index.js +88 -0
- package/dashboard-dist/api/917.index.js.map +1 -0
- package/dashboard-dist/api/948.index.js +64 -0
- package/dashboard-dist/api/948.index.js.map +1 -0
- package/dashboard-dist/api/953.index.js +67 -0
- package/dashboard-dist/api/953.index.js.map +1 -0
- package/dashboard-dist/api/975.index.js +374 -0
- package/dashboard-dist/api/975.index.js.map +1 -0
- package/dashboard-dist/api/drizzle/sqlite/0000_short_captain_stacy.sql +70 -0
- package/dashboard-dist/api/drizzle/sqlite/0001_closed_magus.sql +10 -0
- package/dashboard-dist/api/drizzle/sqlite/0002_agent_capability_observation.sql +38 -0
- package/dashboard-dist/api/drizzle/sqlite/0003_auth_magic_link.sql +28 -0
- package/dashboard-dist/api/drizzle/sqlite/0004_static_scan_fields.sql +8 -0
- package/dashboard-dist/api/drizzle/sqlite/0005_gateway_activity.sql +24 -0
- package/dashboard-dist/api/drizzle/sqlite/0006_sour_marauders.sql +41 -0
- package/dashboard-dist/api/drizzle/sqlite/meta/0000_snapshot.json +460 -0
- package/dashboard-dist/api/drizzle/sqlite/meta/0001_snapshot.json +536 -0
- package/dashboard-dist/api/drizzle/sqlite/meta/0006_snapshot.json +1249 -0
- package/dashboard-dist/api/drizzle/sqlite/meta/_journal.json +55 -0
- package/dashboard-dist/api/index.js +27340 -0
- package/dashboard-dist/api/index.js.map +1 -0
- package/dashboard-dist/api/package.json +16 -0
- package/dashboard-dist/api/sourcemap-register.cjs +1 -0
- package/dashboard-dist/web/assets/index-CqWIeBTD.js +158 -0
- package/dashboard-dist/web/assets/index-Dw7--9q4.css +1 -0
- package/dashboard-dist/web/changeway-logo.png +0 -0
- package/dashboard-dist/web/favicon.svg +29 -0
- package/dashboard-dist/web/index.html +14 -0
- package/dashboard-dist/web/logo.svg +16 -0
- package/dist/agent/auth.d.ts +37 -0
- package/dist/agent/auth.d.ts.map +1 -0
- package/dist/agent/auth.js +151 -0
- package/dist/agent/auth.js.map +1 -0
- package/dist/agent/behavior-detector.d.ts +150 -0
- package/dist/agent/behavior-detector.d.ts.map +1 -0
- package/dist/agent/behavior-detector.js +573 -0
- package/dist/agent/behavior-detector.js.map +1 -0
- package/dist/agent/business-reporter.d.ts +114 -0
- package/dist/agent/business-reporter.d.ts.map +1 -0
- package/dist/agent/business-reporter.js +359 -0
- package/dist/agent/business-reporter.js.map +1 -0
- package/dist/agent/config-sync.d.ts +70 -0
- package/dist/agent/config-sync.d.ts.map +1 -0
- package/dist/agent/config-sync.js +133 -0
- package/dist/agent/config-sync.js.map +1 -0
- package/dist/agent/config.d.ts +97 -0
- package/dist/agent/config.d.ts.map +1 -0
- package/dist/agent/config.js +359 -0
- package/dist/agent/config.js.map +1 -0
- package/dist/agent/content-injection-scanner.d.ts +35 -0
- package/dist/agent/content-injection-scanner.d.ts.map +1 -0
- package/dist/agent/content-injection-scanner.js +270 -0
- package/dist/agent/content-injection-scanner.js.map +1 -0
- package/dist/agent/engine-log-writer.d.ts +6 -0
- package/dist/agent/engine-log-writer.d.ts.map +1 -0
- package/dist/agent/engine-log-writer.js +18 -0
- package/dist/agent/engine-log-writer.js.map +1 -0
- package/dist/agent/env.d.ts +19 -0
- package/dist/agent/env.d.ts.map +1 -0
- package/dist/agent/env.js +43 -0
- package/dist/agent/env.js.map +1 -0
- package/dist/agent/event-reporter.d.ts +87 -0
- package/dist/agent/event-reporter.d.ts.map +1 -0
- package/dist/agent/event-reporter.js +315 -0
- package/dist/agent/event-reporter.js.map +1 -0
- package/dist/agent/file-watcher.d.ts +50 -0
- package/dist/agent/file-watcher.d.ts.map +1 -0
- package/dist/agent/file-watcher.js +135 -0
- package/dist/agent/file-watcher.js.map +1 -0
- package/dist/agent/fs-utils.d.ts +22 -0
- package/dist/agent/fs-utils.d.ts.map +1 -0
- package/dist/agent/fs-utils.js +41 -0
- package/dist/agent/fs-utils.js.map +1 -0
- package/dist/agent/gateway-manager.d.ts +59 -0
- package/dist/agent/gateway-manager.d.ts.map +1 -0
- package/dist/agent/gateway-manager.js +583 -0
- package/dist/agent/gateway-manager.js.map +1 -0
- package/dist/agent/hook-types.d.ts +276 -0
- package/dist/agent/hook-types.d.ts.map +1 -0
- package/dist/agent/hook-types.js +51 -0
- package/dist/agent/hook-types.js.map +1 -0
- package/dist/agent/index.d.ts +8 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +8 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/prompt-gate.d.ts +13 -0
- package/dist/agent/prompt-gate.d.ts.map +1 -0
- package/dist/agent/prompt-gate.js +28 -0
- package/dist/agent/prompt-gate.js.map +1 -0
- package/dist/agent/prompt-input.d.ts +9 -0
- package/dist/agent/prompt-input.d.ts.map +1 -0
- package/dist/agent/prompt-input.js +158 -0
- package/dist/agent/prompt-input.js.map +1 -0
- package/dist/agent/prompt-output.d.ts +4 -0
- package/dist/agent/prompt-output.d.ts.map +1 -0
- package/dist/agent/prompt-output.js +19 -0
- package/dist/agent/prompt-output.js.map +1 -0
- package/dist/agent/runner.d.ts +23 -0
- package/dist/agent/runner.d.ts.map +1 -0
- package/dist/agent/runner.js +154 -0
- package/dist/agent/runner.js.map +1 -0
- package/dist/agent/sanitizer.d.ts +10 -0
- package/dist/agent/sanitizer.d.ts.map +1 -0
- package/dist/agent/sanitizer.js +175 -0
- package/dist/agent/sanitizer.js.map +1 -0
- package/dist/agent/scan-activity.d.ts +18 -0
- package/dist/agent/scan-activity.d.ts.map +1 -0
- package/dist/agent/scan-activity.js +32 -0
- package/dist/agent/scan-activity.js.map +1 -0
- package/dist/agent/types.d.ts +177 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +5 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/agent/workspace-scanner.d.ts +35 -0
- package/dist/agent/workspace-scanner.d.ts.map +1 -0
- package/dist/agent/workspace-scanner.js +137 -0
- package/dist/agent/workspace-scanner.js.map +1 -0
- package/dist/dashboard-launcher.d.ts +52 -0
- package/dist/dashboard-launcher.d.ts.map +1 -0
- package/dist/dashboard-launcher.js +363 -0
- package/dist/dashboard-launcher.js.map +1 -0
- package/dist/gateway/activity.d.ts +52 -0
- package/dist/gateway/activity.d.ts.map +1 -0
- package/dist/gateway/activity.js +111 -0
- package/dist/gateway/activity.js.map +1 -0
- package/dist/gateway/config.d.ts +50 -0
- package/dist/gateway/config.d.ts.map +1 -0
- package/dist/gateway/config.js +200 -0
- package/dist/gateway/config.js.map +1 -0
- package/dist/gateway/gateway/activity.d.ts +52 -0
- package/dist/gateway/gateway/activity.d.ts.map +1 -0
- package/dist/gateway/gateway/activity.js +111 -0
- package/dist/gateway/gateway/activity.js.map +1 -0
- package/dist/gateway/gateway/config.d.ts +50 -0
- package/dist/gateway/gateway/config.d.ts.map +1 -0
- package/dist/gateway/gateway/config.js +200 -0
- package/dist/gateway/gateway/config.js.map +1 -0
- package/dist/gateway/gateway/handlers/anthropic.d.ts +12 -0
- package/dist/gateway/gateway/handlers/anthropic.d.ts.map +1 -0
- package/dist/gateway/gateway/handlers/anthropic.js +254 -0
- package/dist/gateway/gateway/handlers/anthropic.js.map +1 -0
- package/dist/gateway/gateway/handlers/gemini.d.ts +12 -0
- package/dist/gateway/gateway/handlers/gemini.d.ts.map +1 -0
- package/dist/gateway/gateway/handlers/gemini.js +101 -0
- package/dist/gateway/gateway/handlers/gemini.js.map +1 -0
- package/dist/gateway/gateway/handlers/models.d.ts +4 -0
- package/dist/gateway/gateway/handlers/models.d.ts.map +1 -0
- package/dist/gateway/gateway/handlers/models.js +36 -0
- package/dist/gateway/gateway/handlers/models.js.map +1 -0
- package/dist/gateway/gateway/handlers/openai.d.ts +16 -0
- package/dist/gateway/gateway/handlers/openai.d.ts.map +1 -0
- package/dist/gateway/gateway/handlers/openai.js +254 -0
- package/dist/gateway/gateway/handlers/openai.js.map +1 -0
- package/dist/gateway/gateway/index.d.ts +27 -0
- package/dist/gateway/gateway/index.d.ts.map +1 -0
- package/dist/gateway/gateway/index.js +293 -0
- package/dist/gateway/gateway/index.js.map +1 -0
- package/dist/gateway/gateway/mapping-store.d.ts +38 -0
- package/dist/gateway/gateway/mapping-store.d.ts.map +1 -0
- package/dist/gateway/gateway/mapping-store.js +74 -0
- package/dist/gateway/gateway/mapping-store.js.map +1 -0
- package/dist/gateway/gateway/restorer.d.ts +63 -0
- package/dist/gateway/gateway/restorer.d.ts.map +1 -0
- package/dist/gateway/gateway/restorer.js +284 -0
- package/dist/gateway/gateway/restorer.js.map +1 -0
- package/dist/gateway/gateway/sanitizer.d.ts +17 -0
- package/dist/gateway/gateway/sanitizer.d.ts.map +1 -0
- package/dist/gateway/gateway/sanitizer.js +228 -0
- package/dist/gateway/gateway/sanitizer.js.map +1 -0
- package/dist/gateway/gateway/types.d.ts +53 -0
- package/dist/gateway/gateway/types.d.ts.map +1 -0
- package/dist/gateway/gateway/types.js +5 -0
- package/dist/gateway/gateway/types.js.map +1 -0
- package/dist/gateway/handlers/anthropic.d.ts +12 -0
- package/dist/gateway/handlers/anthropic.d.ts.map +1 -0
- package/dist/gateway/handlers/anthropic.js +254 -0
- package/dist/gateway/handlers/anthropic.js.map +1 -0
- package/dist/gateway/handlers/gemini.d.ts +12 -0
- package/dist/gateway/handlers/gemini.d.ts.map +1 -0
- package/dist/gateway/handlers/gemini.js +101 -0
- package/dist/gateway/handlers/gemini.js.map +1 -0
- package/dist/gateway/handlers/models.d.ts +4 -0
- package/dist/gateway/handlers/models.d.ts.map +1 -0
- package/dist/gateway/handlers/models.js +36 -0
- package/dist/gateway/handlers/models.js.map +1 -0
- package/dist/gateway/handlers/openai.d.ts +16 -0
- package/dist/gateway/handlers/openai.d.ts.map +1 -0
- package/dist/gateway/handlers/openai.js +254 -0
- package/dist/gateway/handlers/openai.js.map +1 -0
- package/dist/gateway/index.d.ts +27 -0
- package/dist/gateway/index.d.ts.map +1 -0
- package/dist/gateway/index.js +293 -0
- package/dist/gateway/index.js.map +1 -0
- package/dist/gateway/mapping-store.d.ts +38 -0
- package/dist/gateway/mapping-store.d.ts.map +1 -0
- package/dist/gateway/mapping-store.js +74 -0
- package/dist/gateway/mapping-store.js.map +1 -0
- package/dist/gateway/restorer.d.ts +63 -0
- package/dist/gateway/restorer.d.ts.map +1 -0
- package/dist/gateway/restorer.js +284 -0
- package/dist/gateway/restorer.js.map +1 -0
- package/dist/gateway/sanitizer.d.ts +17 -0
- package/dist/gateway/sanitizer.d.ts.map +1 -0
- package/dist/gateway/sanitizer.js +228 -0
- package/dist/gateway/sanitizer.js.map +1 -0
- package/dist/gateway/types.d.ts +53 -0
- package/dist/gateway/types.d.ts.map +1 -0
- package/dist/gateway/types.js +5 -0
- package/dist/gateway/types.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2084 -0
- package/dist/index.js.map +1 -0
- package/dist/memory/index.d.ts +5 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +5 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/store.d.ts +82 -0
- package/dist/memory/store.d.ts.map +1 -0
- package/dist/memory/store.js +194 -0
- package/dist/memory/store.js.map +1 -0
- package/dist/platform-client/index.d.ts +63 -0
- package/dist/platform-client/index.d.ts.map +1 -0
- package/dist/platform-client/index.js +294 -0
- package/dist/platform-client/index.js.map +1 -0
- package/dist/platform-client/types.d.ts +109 -0
- package/dist/platform-client/types.d.ts.map +1 -0
- package/dist/platform-client/types.js +3 -0
- package/dist/platform-client/types.js.map +1 -0
- package/gateway/activity.d.ts +52 -0
- package/gateway/activity.d.ts.map +1 -0
- package/gateway/activity.js +111 -0
- package/gateway/activity.js.map +1 -0
- package/gateway/config.d.ts +50 -0
- package/gateway/config.d.ts.map +1 -0
- package/gateway/config.js +200 -0
- package/gateway/config.js.map +1 -0
- package/gateway/handlers/anthropic.d.ts +12 -0
- package/gateway/handlers/anthropic.d.ts.map +1 -0
- package/gateway/handlers/anthropic.js +254 -0
- package/gateway/handlers/anthropic.js.map +1 -0
- package/gateway/handlers/gemini.d.ts +12 -0
- package/gateway/handlers/gemini.d.ts.map +1 -0
- package/gateway/handlers/gemini.js +101 -0
- package/gateway/handlers/gemini.js.map +1 -0
- package/gateway/handlers/models.d.ts +4 -0
- package/gateway/handlers/models.d.ts.map +1 -0
- package/gateway/handlers/models.js +36 -0
- package/gateway/handlers/models.js.map +1 -0
- package/gateway/handlers/openai.d.ts +16 -0
- package/gateway/handlers/openai.d.ts.map +1 -0
- package/gateway/handlers/openai.js +254 -0
- package/gateway/handlers/openai.js.map +1 -0
- package/gateway/index.d.ts +27 -0
- package/gateway/index.d.ts.map +1 -0
- package/gateway/index.js +293 -0
- package/gateway/index.js.map +1 -0
- package/gateway/mapping-store.d.ts +38 -0
- package/gateway/mapping-store.d.ts.map +1 -0
- package/gateway/mapping-store.js +74 -0
- package/gateway/mapping-store.js.map +1 -0
- package/gateway/restorer.d.ts +63 -0
- package/gateway/restorer.d.ts.map +1 -0
- package/gateway/restorer.js +284 -0
- package/gateway/restorer.js.map +1 -0
- package/gateway/sanitizer.d.ts +17 -0
- package/gateway/sanitizer.d.ts.map +1 -0
- package/gateway/sanitizer.js +228 -0
- package/gateway/sanitizer.js.map +1 -0
- package/gateway/types.d.ts +53 -0
- package/gateway/types.d.ts.map +1 -0
- package/gateway/types.js +5 -0
- package/gateway/types.js.map +1 -0
- package/openclaw.plugin.json +86 -0
- package/package.json +74 -0
- package/samples/Untitled +1 -0
- package/samples/clean-email.txt +20 -0
- package/samples/test-document.md +53 -0
- package/samples/test-email-popup.txt +44 -0
- package/samples/test-email.txt +32 -0
- package/samples/test-webpage.html +51 -0
- package/scripts/enterprise-enroll.sh +89 -0
- package/scripts/enterprise-unenroll.sh +75 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persistent Mapping Store
|
|
3
|
+
*
|
|
4
|
+
* Maintains a global mapping between original values and placeholders.
|
|
5
|
+
* This ensures the same sensitive data always gets the same placeholder,
|
|
6
|
+
* allowing restoration to work across multiple requests in a conversation.
|
|
7
|
+
*/
|
|
8
|
+
import type { MappingTable } from "./types.js";
|
|
9
|
+
/**
|
|
10
|
+
* Get or create a placeholder for an original value
|
|
11
|
+
* If the value was seen before, returns the same placeholder
|
|
12
|
+
*/
|
|
13
|
+
export declare function getOrCreatePlaceholder(originalValue: string, entityType: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* Get the original value for a placeholder
|
|
16
|
+
*/
|
|
17
|
+
export declare function getOriginalValue(placeholder: string): string | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* Check if a string is a known placeholder
|
|
20
|
+
*/
|
|
21
|
+
export declare function isKnownPlaceholder(text: string): boolean;
|
|
22
|
+
/**
|
|
23
|
+
* Get all placeholders and their original values as a MappingTable
|
|
24
|
+
* This is used for restoration
|
|
25
|
+
*/
|
|
26
|
+
export declare function getGlobalMappingTable(): MappingTable;
|
|
27
|
+
/**
|
|
28
|
+
* Get current statistics
|
|
29
|
+
*/
|
|
30
|
+
export declare function getMappingStats(): {
|
|
31
|
+
totalMappings: number;
|
|
32
|
+
byType: Record<string, number>;
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Clear all mappings (for testing or reset)
|
|
36
|
+
*/
|
|
37
|
+
export declare function clearMappings(): void;
|
|
38
|
+
//# sourceMappingURL=mapping-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapping-store.d.ts","sourceRoot":"","sources":["../src/mapping-store.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAW/C;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,CAmBxF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAExE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,YAAY,CAEpD;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAS3F;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAIpC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Persistent Mapping Store
|
|
3
|
+
*
|
|
4
|
+
* Maintains a global mapping between original values and placeholders.
|
|
5
|
+
* This ensures the same sensitive data always gets the same placeholder,
|
|
6
|
+
* allowing restoration to work across multiple requests in a conversation.
|
|
7
|
+
*/
|
|
8
|
+
// Global mapping: original value -> placeholder
|
|
9
|
+
const originalToPlaceholder = new Map();
|
|
10
|
+
// Global mapping: placeholder -> original value (reverse lookup for restoration)
|
|
11
|
+
const placeholderToOriginal = new Map();
|
|
12
|
+
// Global counter per entity type
|
|
13
|
+
const typeCounters = new Map();
|
|
14
|
+
/**
|
|
15
|
+
* Get or create a placeholder for an original value
|
|
16
|
+
* If the value was seen before, returns the same placeholder
|
|
17
|
+
*/
|
|
18
|
+
export function getOrCreatePlaceholder(originalValue, entityType) {
|
|
19
|
+
// Check if we already have a placeholder for this value
|
|
20
|
+
const existing = originalToPlaceholder.get(originalValue);
|
|
21
|
+
if (existing) {
|
|
22
|
+
return existing;
|
|
23
|
+
}
|
|
24
|
+
// Create a new placeholder
|
|
25
|
+
const counter = (typeCounters.get(entityType) ?? 0) + 1;
|
|
26
|
+
typeCounters.set(entityType, counter);
|
|
27
|
+
const paddedId = counter.toString().padStart(8, "0");
|
|
28
|
+
const placeholder = `__PII_${entityType}_${paddedId}__`;
|
|
29
|
+
// Store both directions
|
|
30
|
+
originalToPlaceholder.set(originalValue, placeholder);
|
|
31
|
+
placeholderToOriginal.set(placeholder, originalValue);
|
|
32
|
+
return placeholder;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Get the original value for a placeholder
|
|
36
|
+
*/
|
|
37
|
+
export function getOriginalValue(placeholder) {
|
|
38
|
+
return placeholderToOriginal.get(placeholder);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Check if a string is a known placeholder
|
|
42
|
+
*/
|
|
43
|
+
export function isKnownPlaceholder(text) {
|
|
44
|
+
return placeholderToOriginal.has(text);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Get all placeholders and their original values as a MappingTable
|
|
48
|
+
* This is used for restoration
|
|
49
|
+
*/
|
|
50
|
+
export function getGlobalMappingTable() {
|
|
51
|
+
return new Map(placeholderToOriginal);
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Get current statistics
|
|
55
|
+
*/
|
|
56
|
+
export function getMappingStats() {
|
|
57
|
+
const byType = {};
|
|
58
|
+
for (const [type, count] of typeCounters.entries()) {
|
|
59
|
+
byType[type] = count;
|
|
60
|
+
}
|
|
61
|
+
return {
|
|
62
|
+
totalMappings: placeholderToOriginal.size,
|
|
63
|
+
byType,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Clear all mappings (for testing or reset)
|
|
68
|
+
*/
|
|
69
|
+
export function clearMappings() {
|
|
70
|
+
originalToPlaceholder.clear();
|
|
71
|
+
placeholderToOriginal.clear();
|
|
72
|
+
typeCounters.clear();
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=mapping-store.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapping-store.js","sourceRoot":"","sources":["../src/mapping-store.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,gDAAgD;AAChD,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAExD,iFAAiF;AACjF,MAAM,qBAAqB,GAAG,IAAI,GAAG,EAAkB,CAAC;AAExD,iCAAiC;AACjC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;AAE/C;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,aAAqB,EAAE,UAAkB;IAC9E,wDAAwD;IACxD,MAAM,QAAQ,GAAG,qBAAqB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC1D,IAAI,QAAQ,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,2BAA2B;IAC3B,MAAM,OAAO,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACxD,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAEtC,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,SAAS,UAAU,IAAI,QAAQ,IAAI,CAAC;IAExD,wBAAwB;IACxB,qBAAqB,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IACtD,qBAAqB,CAAC,GAAG,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;IAEtD,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,WAAmB;IAClD,OAAO,qBAAqB,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAChD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,qBAAqB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACzC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,IAAI,GAAG,CAAC,qBAAqB,CAAC,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,MAAM,GAA2B,EAAE,CAAC;IAC1C,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,YAAY,CAAC,OAAO,EAAE,EAAE,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;IACvB,CAAC;IACD,OAAO;QACL,aAAa,EAAE,qBAAqB,CAAC,IAAI;QACzC,MAAM;KACP,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa;IAC3B,qBAAqB,CAAC,KAAK,EAAE,CAAC;IAC9B,qBAAqB,CAAC,KAAK,EAAE,CAAC;IAC9B,YAAY,CAAC,KAAK,EAAE,CAAC;AACvB,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Security Gateway - Content Restorer
|
|
3
|
+
*
|
|
4
|
+
* Restores sanitized placeholders back to original values.
|
|
5
|
+
* Handles LLM corruption patterns (missing underscores, case variations).
|
|
6
|
+
*
|
|
7
|
+
* Placeholder format: __PII_<ENTITY_TYPE>_<SERIAL_ID>__
|
|
8
|
+
*/
|
|
9
|
+
import type { MappingTable } from "./types.js";
|
|
10
|
+
/**
|
|
11
|
+
* Restore any content (object, array, string) using the mapping table
|
|
12
|
+
*/
|
|
13
|
+
export declare function restore(content: unknown, mappingTable: MappingTable): unknown;
|
|
14
|
+
/**
|
|
15
|
+
* Restore a JSON string
|
|
16
|
+
* Useful for SSE streaming where each chunk is a JSON string
|
|
17
|
+
*/
|
|
18
|
+
export declare function restoreJSON(jsonString: string, mappingTable: MappingTable): string;
|
|
19
|
+
/**
|
|
20
|
+
* Restore SSE data line (for streaming responses)
|
|
21
|
+
* Format: "data: {...}\n"
|
|
22
|
+
*/
|
|
23
|
+
export declare function restoreSSELine(line: string, mappingTable: MappingTable): string;
|
|
24
|
+
/**
|
|
25
|
+
* StreamRestorer - Stateful streaming restoration with smart buffering
|
|
26
|
+
*
|
|
27
|
+
* Only buffers when `__` is detected (potential placeholder start).
|
|
28
|
+
* Otherwise streams through immediately for best UX.
|
|
29
|
+
*/
|
|
30
|
+
export declare class StreamRestorer {
|
|
31
|
+
private buffer;
|
|
32
|
+
private mappingTable;
|
|
33
|
+
constructor(mappingTable: MappingTable);
|
|
34
|
+
/**
|
|
35
|
+
* Process incoming text chunk
|
|
36
|
+
* Returns text that can be safely output (already restored or confirmed non-placeholder)
|
|
37
|
+
*/
|
|
38
|
+
process(chunk: string): string;
|
|
39
|
+
/**
|
|
40
|
+
* Flush what we can safely output
|
|
41
|
+
* Keeps potential incomplete placeholders in buffer
|
|
42
|
+
*/
|
|
43
|
+
private flush;
|
|
44
|
+
/**
|
|
45
|
+
* Check if text could be the start of a placeholder
|
|
46
|
+
* Returns true if it matches the beginning of __PII_<TYPE>_<ID>__
|
|
47
|
+
*/
|
|
48
|
+
private couldBePlaceholder;
|
|
49
|
+
/**
|
|
50
|
+
* Finalize stream - flush any remaining buffer
|
|
51
|
+
* Call this at end of stream to ensure nothing is lost
|
|
52
|
+
*/
|
|
53
|
+
finalize(): string;
|
|
54
|
+
/**
|
|
55
|
+
* Check if there's pending data in buffer
|
|
56
|
+
*/
|
|
57
|
+
hasPendingData(): boolean;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Create a streaming restorer for a response
|
|
61
|
+
*/
|
|
62
|
+
export declare function createStreamRestorer(mappingTable: MappingTable): StreamRestorer;
|
|
63
|
+
//# sourceMappingURL=restorer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restorer.d.ts","sourceRoot":"","sources":["../src/restorer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAyG/C;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,GAAG,OAAO,CAG7E;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,MAAM,CAWlF;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,GAAG,MAAM,CAe/E;AAYD;;;;;GAKG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,YAAY,CAAe;gBAEvB,YAAY,EAAE,YAAY;IAItC;;;OAGG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAU9B;;;OAGG;IACH,OAAO,CAAC,KAAK;IAqEb;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAoB1B;;;OAGG;IACH,QAAQ,IAAI,MAAM;IASlB;;OAEG;IACH,cAAc,IAAI,OAAO;CAG1B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,YAAY,EAAE,YAAY,GAAG,cAAc,CAE/E"}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Security Gateway - Content Restorer
|
|
3
|
+
*
|
|
4
|
+
* Restores sanitized placeholders back to original values.
|
|
5
|
+
* Handles LLM corruption patterns (missing underscores, case variations).
|
|
6
|
+
*
|
|
7
|
+
* Placeholder format: __PII_<ENTITY_TYPE>_<SERIAL_ID>__
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Build a map from placeholder patterns to original values
|
|
11
|
+
* Handles variations that LLMs might produce
|
|
12
|
+
*/
|
|
13
|
+
function buildRestorationMap(mappingTable) {
|
|
14
|
+
const restorationMap = new Map();
|
|
15
|
+
for (const [placeholder, originalValue] of mappingTable.entries()) {
|
|
16
|
+
// Extract the core pattern from placeholder like __PII_EMAIL_ADDRESS_00000001__
|
|
17
|
+
const match = placeholder.match(/^__PII_([A-Z_]+)_(\d+)__$/);
|
|
18
|
+
if (!match) {
|
|
19
|
+
// Fallback: exact match only
|
|
20
|
+
restorationMap.set(new RegExp(escapeRegex(placeholder), "g"), originalValue);
|
|
21
|
+
continue;
|
|
22
|
+
}
|
|
23
|
+
const entityType = match[1];
|
|
24
|
+
const serialId = match[2];
|
|
25
|
+
// Create flexible pattern that handles LLM corruption:
|
|
26
|
+
// - Missing leading/trailing underscores
|
|
27
|
+
// - Case variations
|
|
28
|
+
// - Extra spaces
|
|
29
|
+
const flexiblePattern = new RegExp(`_?_?PII[_\\s]*${entityType}[_\\s]*${serialId}_?_?`, "gi");
|
|
30
|
+
restorationMap.set(flexiblePattern, originalValue);
|
|
31
|
+
}
|
|
32
|
+
return restorationMap;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Escape special regex characters
|
|
36
|
+
*/
|
|
37
|
+
function escapeRegex(str) {
|
|
38
|
+
return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Restore placeholders in a string
|
|
42
|
+
*/
|
|
43
|
+
function restoreText(text, mappingTable) {
|
|
44
|
+
if (mappingTable.size === 0)
|
|
45
|
+
return text;
|
|
46
|
+
let restored = text;
|
|
47
|
+
// First pass: exact matches (fastest)
|
|
48
|
+
for (const [placeholder, originalValue] of mappingTable.entries()) {
|
|
49
|
+
if (restored.includes(placeholder)) {
|
|
50
|
+
restored = restored.split(placeholder).join(originalValue);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
// Second pass: flexible patterns for LLM corruption
|
|
54
|
+
const restorationMap = buildRestorationMap(mappingTable);
|
|
55
|
+
for (const [pattern, originalValue] of restorationMap.entries()) {
|
|
56
|
+
restored = restored.replace(pattern, originalValue);
|
|
57
|
+
}
|
|
58
|
+
// Third pass: handle "leaked ID suffix" pattern
|
|
59
|
+
// LLM might output: "original_value_00000001" instead of just "original_value"
|
|
60
|
+
for (const [placeholder, originalValue] of mappingTable.entries()) {
|
|
61
|
+
const match = placeholder.match(/^__PII_[A-Z_]+_(\d+)__$/);
|
|
62
|
+
if (match) {
|
|
63
|
+
const serialId = match[1];
|
|
64
|
+
// Pattern: original value followed by underscore and serial ID
|
|
65
|
+
const leakedPattern = new RegExp(escapeRegex(originalValue) + `[_\\s]*${serialId}`, "g");
|
|
66
|
+
restored = restored.replace(leakedPattern, originalValue);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
return restored;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Recursively restore any value (string, object, array)
|
|
73
|
+
*/
|
|
74
|
+
function restoreValue(value, mappingTable) {
|
|
75
|
+
if (typeof value === "string") {
|
|
76
|
+
return restoreText(value, mappingTable);
|
|
77
|
+
}
|
|
78
|
+
if (Array.isArray(value)) {
|
|
79
|
+
return value.map((item) => restoreValue(item, mappingTable));
|
|
80
|
+
}
|
|
81
|
+
if (value !== null && typeof value === "object") {
|
|
82
|
+
const restored = {};
|
|
83
|
+
for (const [key, val] of Object.entries(value)) {
|
|
84
|
+
restored[key] = restoreValue(val, mappingTable);
|
|
85
|
+
}
|
|
86
|
+
return restored;
|
|
87
|
+
}
|
|
88
|
+
return value;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Restore any content (object, array, string) using the mapping table
|
|
92
|
+
*/
|
|
93
|
+
export function restore(content, mappingTable) {
|
|
94
|
+
if (mappingTable.size === 0)
|
|
95
|
+
return content;
|
|
96
|
+
return restoreValue(content, mappingTable);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Restore a JSON string
|
|
100
|
+
* Useful for SSE streaming where each chunk is a JSON string
|
|
101
|
+
*/
|
|
102
|
+
export function restoreJSON(jsonString, mappingTable) {
|
|
103
|
+
if (mappingTable.size === 0)
|
|
104
|
+
return jsonString;
|
|
105
|
+
try {
|
|
106
|
+
const parsed = JSON.parse(jsonString);
|
|
107
|
+
const restored = restore(parsed, mappingTable);
|
|
108
|
+
return JSON.stringify(restored);
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
// If not valid JSON, treat as plain text
|
|
112
|
+
return restoreText(jsonString, mappingTable);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Restore SSE data line (for streaming responses)
|
|
117
|
+
* Format: "data: {...}\n"
|
|
118
|
+
*/
|
|
119
|
+
export function restoreSSELine(line, mappingTable) {
|
|
120
|
+
if (mappingTable.size === 0)
|
|
121
|
+
return line;
|
|
122
|
+
if (!line.startsWith("data: "))
|
|
123
|
+
return line;
|
|
124
|
+
const dataContent = line.slice(6); // Remove "data: " prefix
|
|
125
|
+
if (dataContent === "[DONE]")
|
|
126
|
+
return line;
|
|
127
|
+
try {
|
|
128
|
+
const parsed = JSON.parse(dataContent);
|
|
129
|
+
const restored = restore(parsed, mappingTable);
|
|
130
|
+
return `data: ${JSON.stringify(restored)}`;
|
|
131
|
+
}
|
|
132
|
+
catch {
|
|
133
|
+
// Fallback to text restoration
|
|
134
|
+
return `data: ${restoreText(dataContent, mappingTable)}`;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
// =============================================================================
|
|
138
|
+
// Streaming Restoration with Smart Buffering
|
|
139
|
+
// =============================================================================
|
|
140
|
+
// Max placeholder length: __PII_VERIFICATION_CODE_00000001__ ≈ 40 chars
|
|
141
|
+
const MAX_PLACEHOLDER_LENGTH = 50;
|
|
142
|
+
// Pattern to match complete placeholders
|
|
143
|
+
const PLACEHOLDER_PATTERN = /__PII_[A-Z_]+_\d{8}__/g;
|
|
144
|
+
/**
|
|
145
|
+
* StreamRestorer - Stateful streaming restoration with smart buffering
|
|
146
|
+
*
|
|
147
|
+
* Only buffers when `__` is detected (potential placeholder start).
|
|
148
|
+
* Otherwise streams through immediately for best UX.
|
|
149
|
+
*/
|
|
150
|
+
export class StreamRestorer {
|
|
151
|
+
buffer = "";
|
|
152
|
+
mappingTable;
|
|
153
|
+
constructor(mappingTable) {
|
|
154
|
+
this.mappingTable = mappingTable;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Process incoming text chunk
|
|
158
|
+
* Returns text that can be safely output (already restored or confirmed non-placeholder)
|
|
159
|
+
*/
|
|
160
|
+
process(chunk) {
|
|
161
|
+
// If no mappings, pass through directly
|
|
162
|
+
if (this.mappingTable.size === 0) {
|
|
163
|
+
return chunk;
|
|
164
|
+
}
|
|
165
|
+
this.buffer += chunk;
|
|
166
|
+
return this.flush();
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* Flush what we can safely output
|
|
170
|
+
* Keeps potential incomplete placeholders in buffer
|
|
171
|
+
*/
|
|
172
|
+
flush() {
|
|
173
|
+
let output = "";
|
|
174
|
+
while (this.buffer.length > 0) {
|
|
175
|
+
// Find position of `__` in buffer
|
|
176
|
+
const underscorePos = this.buffer.indexOf("__");
|
|
177
|
+
if (underscorePos === -1) {
|
|
178
|
+
// No `__` found - check if buffer ends with single `_`
|
|
179
|
+
if (this.buffer.endsWith("_")) {
|
|
180
|
+
// Keep the trailing `_` in case next chunk starts with `_`
|
|
181
|
+
output += this.buffer.slice(0, -1);
|
|
182
|
+
this.buffer = "_";
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
// Safe to output entire buffer
|
|
186
|
+
output += this.buffer;
|
|
187
|
+
this.buffer = "";
|
|
188
|
+
}
|
|
189
|
+
break;
|
|
190
|
+
}
|
|
191
|
+
// Output everything before the `__`
|
|
192
|
+
if (underscorePos > 0) {
|
|
193
|
+
output += this.buffer.slice(0, underscorePos);
|
|
194
|
+
this.buffer = this.buffer.slice(underscorePos);
|
|
195
|
+
}
|
|
196
|
+
// Now buffer starts with `__`
|
|
197
|
+
// Check if we have a complete placeholder
|
|
198
|
+
PLACEHOLDER_PATTERN.lastIndex = 0;
|
|
199
|
+
const match = PLACEHOLDER_PATTERN.exec(this.buffer);
|
|
200
|
+
if (match && match.index === 0) {
|
|
201
|
+
// Found complete placeholder at start of buffer
|
|
202
|
+
const placeholder = match[0];
|
|
203
|
+
const original = this.mappingTable.get(placeholder);
|
|
204
|
+
if (original) {
|
|
205
|
+
// Restore and output
|
|
206
|
+
output += original;
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
// Not in mapping table, output as-is
|
|
210
|
+
output += placeholder;
|
|
211
|
+
}
|
|
212
|
+
this.buffer = this.buffer.slice(placeholder.length);
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
// Check if buffer could be an incomplete placeholder
|
|
216
|
+
if (this.couldBePlaceholder(this.buffer)) {
|
|
217
|
+
// Keep buffering - might be incomplete placeholder
|
|
218
|
+
if (this.buffer.length > MAX_PLACEHOLDER_LENGTH) {
|
|
219
|
+
// Too long to be a placeholder - flush the `__` and continue
|
|
220
|
+
output += "__";
|
|
221
|
+
this.buffer = this.buffer.slice(2);
|
|
222
|
+
}
|
|
223
|
+
else {
|
|
224
|
+
// Wait for more data
|
|
225
|
+
break;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
// Definitely not a placeholder - output the `__`
|
|
230
|
+
output += "__";
|
|
231
|
+
this.buffer = this.buffer.slice(2);
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
return output;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* Check if text could be the start of a placeholder
|
|
239
|
+
* Returns true if it matches the beginning of __PII_<TYPE>_<ID>__
|
|
240
|
+
*/
|
|
241
|
+
couldBePlaceholder(text) {
|
|
242
|
+
// Must start with __
|
|
243
|
+
if (!text.startsWith("__"))
|
|
244
|
+
return false;
|
|
245
|
+
// Check partial patterns
|
|
246
|
+
const partialPatterns = [
|
|
247
|
+
/^__$/,
|
|
248
|
+
/^__P$/,
|
|
249
|
+
/^__PI$/,
|
|
250
|
+
/^__PII$/,
|
|
251
|
+
/^__PII_$/,
|
|
252
|
+
/^__PII_[A-Z_]*$/,
|
|
253
|
+
/^__PII_[A-Z_]+_$/,
|
|
254
|
+
/^__PII_[A-Z_]+_\d*$/,
|
|
255
|
+
/^__PII_[A-Z_]+_\d+_?$/,
|
|
256
|
+
];
|
|
257
|
+
return partialPatterns.some(pattern => pattern.test(text));
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Finalize stream - flush any remaining buffer
|
|
261
|
+
* Call this at end of stream to ensure nothing is lost
|
|
262
|
+
*/
|
|
263
|
+
finalize() {
|
|
264
|
+
if (this.buffer.length === 0)
|
|
265
|
+
return "";
|
|
266
|
+
// Try to restore any remaining buffer
|
|
267
|
+
const result = restoreText(this.buffer, this.mappingTable);
|
|
268
|
+
this.buffer = "";
|
|
269
|
+
return result;
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* Check if there's pending data in buffer
|
|
273
|
+
*/
|
|
274
|
+
hasPendingData() {
|
|
275
|
+
return this.buffer.length > 0;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Create a streaming restorer for a response
|
|
280
|
+
*/
|
|
281
|
+
export function createStreamRestorer(mappingTable) {
|
|
282
|
+
return new StreamRestorer(mappingTable);
|
|
283
|
+
}
|
|
284
|
+
//# sourceMappingURL=restorer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"restorer.js","sourceRoot":"","sources":["../src/restorer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AI Security Gateway - Content Sanitizer
|
|
3
|
+
*
|
|
4
|
+
* Sanitizes sensitive data in a single request-response cycle.
|
|
5
|
+
* Placeholder format: __PII_<ENTITY_TYPE>_<SERIAL_ID>__
|
|
6
|
+
*/
|
|
7
|
+
import type { SanitizeResult } from "./types.js";
|
|
8
|
+
/**
|
|
9
|
+
* Sanitize any content (messages array, object, string)
|
|
10
|
+
* Returns sanitized content and mapping table for restoration
|
|
11
|
+
*/
|
|
12
|
+
export declare function sanitize(content: unknown): SanitizeResult;
|
|
13
|
+
/**
|
|
14
|
+
* Sanitize messages array (common case for LLM APIs)
|
|
15
|
+
*/
|
|
16
|
+
export declare function sanitizeMessages(messages: unknown[]): SanitizeResult;
|
|
17
|
+
//# sourceMappingURL=sanitizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sanitizer.d.ts","sourceRoot":"","sources":["../src/sanitizer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAgB,MAAM,YAAY,CAAC;AA4Q/D;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,cAAc,CAWzD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,cAAc,CAEpE"}
|