pi-rehydra 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.en.md +29 -1
- package/README.md +28 -2
- package/dist/core/anonymizer.d.ts +9 -1
- package/dist/core/anonymizer.d.ts.map +1 -1
- package/dist/core/anonymizer.js +169 -15
- package/dist/core/anonymizer.js.map +1 -1
- package/dist/core/observer.d.ts +33 -0
- package/dist/core/observer.d.ts.map +1 -0
- package/dist/core/observer.js +2 -0
- package/dist/core/observer.js.map +1 -0
- package/dist/host-agnostic/normalize-options.d.ts +28 -2
- package/dist/host-agnostic/normalize-options.d.ts.map +1 -1
- package/dist/host-agnostic/normalize-options.js +60 -4
- package/dist/host-agnostic/normalize-options.js.map +1 -1
- package/dist/host-agnostic/policy-input.d.ts +41 -0
- package/dist/host-agnostic/policy-input.d.ts.map +1 -0
- package/dist/host-agnostic/policy-input.js +172 -0
- package/dist/host-agnostic/policy-input.js.map +1 -0
- package/dist/host-agnostic/scrub.d.ts +42 -2
- package/dist/host-agnostic/scrub.d.ts.map +1 -1
- package/dist/host-agnostic/scrub.js +135 -17
- package/dist/host-agnostic/scrub.js.map +1 -1
- package/dist/ner/inference-server-client.d.ts.map +1 -1
- package/dist/ner/inference-server-client.js +18 -2
- package/dist/ner/inference-server-client.js.map +1 -1
- package/dist/ner/inference-server-ner-model.d.ts +8 -0
- package/dist/ner/inference-server-ner-model.d.ts.map +1 -1
- package/dist/ner/inference-server-ner-model.js +36 -3
- package/dist/ner/inference-server-ner-model.js.map +1 -1
- package/dist/ner/ner-model.d.ts.map +1 -1
- package/dist/ner/ner-model.js +5 -1
- package/dist/ner/ner-model.js.map +1 -1
- package/dist/pi-extension/extension.d.ts +5 -3
- package/dist/pi-extension/extension.d.ts.map +1 -1
- package/dist/pi-extension/extension.js +498 -32
- package/dist/pi-extension/extension.js.map +1 -1
- package/dist/pi-extension/host-types.d.ts +15 -1
- package/dist/pi-extension/host-types.d.ts.map +1 -1
- package/dist/pi-extension/options.d.ts +14 -0
- package/dist/pi-extension/options.d.ts.map +1 -1
- package/dist/pipeline/prenormalize.d.ts.map +1 -1
- package/dist/pipeline/prenormalize.js +4 -5
- package/dist/pipeline/prenormalize.js.map +1 -1
- package/dist/pipeline/tagger.d.ts.map +1 -1
- package/dist/pipeline/tagger.js +1 -0
- package/dist/pipeline/tagger.js.map +1 -1
- package/dist/pipeline/title-extractor.d.ts.map +1 -1
- package/dist/pipeline/title-extractor.js +3 -0
- package/dist/pipeline/title-extractor.js.map +1 -1
- package/dist/recognizers/address.d.ts.map +1 -1
- package/dist/recognizers/address.js +1 -0
- package/dist/recognizers/address.js.map +1 -1
- package/dist/recognizers/base.d.ts +6 -0
- package/dist/recognizers/base.d.ts.map +1 -1
- package/dist/recognizers/base.js +1 -0
- package/dist/recognizers/base.js.map +1 -1
- package/dist/recognizers/bic-swift.d.ts.map +1 -1
- package/dist/recognizers/bic-swift.js +29 -0
- package/dist/recognizers/bic-swift.js.map +1 -1
- package/dist/recognizers/credit-card.d.ts.map +1 -1
- package/dist/recognizers/credit-card.js +1 -0
- package/dist/recognizers/credit-card.js.map +1 -1
- package/dist/recognizers/custom-id.d.ts.map +1 -1
- package/dist/recognizers/custom-id.js +7 -2
- package/dist/recognizers/custom-id.js.map +1 -1
- package/dist/recognizers/date.d.ts.map +1 -1
- package/dist/recognizers/date.js +1 -0
- package/dist/recognizers/date.js.map +1 -1
- package/dist/recognizers/email.d.ts.map +1 -1
- package/dist/recognizers/email.js +4 -0
- package/dist/recognizers/email.js.map +1 -1
- package/dist/recognizers/iban.d.ts.map +1 -1
- package/dist/recognizers/iban.js +1 -0
- package/dist/recognizers/iban.js.map +1 -1
- package/dist/recognizers/ip-address.d.ts.map +1 -1
- package/dist/recognizers/ip-address.js +1 -0
- package/dist/recognizers/ip-address.js.map +1 -1
- package/dist/recognizers/phone.d.ts.map +1 -1
- package/dist/recognizers/phone.js +1 -0
- package/dist/recognizers/phone.js.map +1 -1
- package/dist/recognizers/postal-code.d.ts.map +1 -1
- package/dist/recognizers/postal-code.js +1 -0
- package/dist/recognizers/postal-code.js.map +1 -1
- package/dist/recognizers/registry.d.ts.map +1 -1
- package/dist/recognizers/registry.js +3 -1
- package/dist/recognizers/registry.js.map +1 -1
- package/dist/recognizers/secrets/api-key.d.ts.map +1 -1
- package/dist/recognizers/secrets/api-key.js +1 -0
- package/dist/recognizers/secrets/api-key.js.map +1 -1
- package/dist/recognizers/secrets/aws-credentials.d.ts.map +1 -1
- package/dist/recognizers/secrets/aws-credentials.js +1 -0
- package/dist/recognizers/secrets/aws-credentials.js.map +1 -1
- package/dist/recognizers/secrets/config-secret.d.ts.map +1 -1
- package/dist/recognizers/secrets/config-secret.js +12 -5
- package/dist/recognizers/secrets/config-secret.js.map +1 -1
- package/dist/recognizers/secrets/connection-string.d.ts.map +1 -1
- package/dist/recognizers/secrets/connection-string.js +1 -0
- package/dist/recognizers/secrets/connection-string.js.map +1 -1
- package/dist/recognizers/secrets/env-var.d.ts.map +1 -1
- package/dist/recognizers/secrets/env-var.js +17 -3
- package/dist/recognizers/secrets/env-var.js.map +1 -1
- package/dist/recognizers/secrets/index.d.ts +1 -1
- package/dist/recognizers/secrets/index.d.ts.map +1 -1
- package/dist/recognizers/secrets/index.js +1 -1
- package/dist/recognizers/secrets/index.js.map +1 -1
- package/dist/recognizers/secrets/jwt.d.ts.map +1 -1
- package/dist/recognizers/secrets/jwt.js +1 -0
- package/dist/recognizers/secrets/jwt.js.map +1 -1
- package/dist/recognizers/secrets/key-patterns.d.ts +17 -0
- package/dist/recognizers/secrets/key-patterns.d.ts.map +1 -1
- package/dist/recognizers/secrets/key-patterns.js +151 -0
- package/dist/recognizers/secrets/key-patterns.js.map +1 -1
- package/dist/recognizers/secrets/literal-value.d.ts.map +1 -1
- package/dist/recognizers/secrets/literal-value.js +1 -0
- package/dist/recognizers/secrets/literal-value.js.map +1 -1
- package/dist/recognizers/secrets/private-key.d.ts.map +1 -1
- package/dist/recognizers/secrets/private-key.js +1 -0
- package/dist/recognizers/secrets/private-key.js.map +1 -1
- package/dist/recognizers/url.d.ts.map +1 -1
- package/dist/recognizers/url.js +1 -0
- package/dist/recognizers/url.js.map +1 -1
- package/dist/records/recorder.d.ts +87 -0
- package/dist/records/recorder.d.ts.map +1 -0
- package/dist/records/recorder.js +317 -0
- package/dist/records/recorder.js.map +1 -0
- package/dist/records/types.d.ts +80 -0
- package/dist/records/types.d.ts.map +1 -0
- package/dist/records/types.js +33 -0
- package/dist/records/types.js.map +1 -0
- package/dist/storage/in-memory.d.ts.map +1 -1
- package/dist/storage/in-memory.js +8 -1
- package/dist/storage/in-memory.js.map +1 -1
- package/dist/storage/indexeddb.d.ts.map +1 -1
- package/dist/storage/indexeddb.js +5 -0
- package/dist/storage/indexeddb.js.map +1 -1
- package/dist/storage/session-base.d.ts +36 -4
- package/dist/storage/session-base.d.ts.map +1 -1
- package/dist/storage/session-base.js +226 -34
- package/dist/storage/session-base.js.map +1 -1
- package/dist/storage/session.d.ts.map +1 -1
- package/dist/storage/session.js +28 -2
- package/dist/storage/session.js.map +1 -1
- package/dist/storage/sqlite.d.ts.map +1 -1
- package/dist/storage/sqlite.js +5 -0
- package/dist/storage/sqlite.js.map +1 -1
- package/dist/storage/types.d.ts +2 -1
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/streaming/anonymizer-stream.d.ts +10 -0
- package/dist/streaming/anonymizer-stream.d.ts.map +1 -1
- package/dist/streaming/anonymizer-stream.js +33 -16
- package/dist/streaming/anonymizer-stream.js.map +1 -1
- package/dist/types/index.d.ts +21 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js.map +1 -1
- package/package.json +3 -4
package/README.en.md
CHANGED
|
@@ -48,11 +48,39 @@ Every key under `rehydra` is an extension option: `envFiles`, `redactValues`, `m
|
|
|
48
48
|
| `message_end` | Rewrite the final assistant message so PII tags are replaced with real values |
|
|
49
49
|
| `session_shutdown` | Dispose of the anonymizer and session registry |
|
|
50
50
|
|
|
51
|
+
Masked message roles: `user`, `assistant`, `toolResult`, `system` (its `content` and prompt sections, except the tool declarations section), `bashExecution` (command and output), `custom`, `branchSummary`, and `compactionSummary` — exactly the roles Pi turns into model input. When the current request replaced anything, the placeholder guidance is injected as its own prompt section, so the model treats placeholders as opaque pass-through values.
|
|
52
|
+
|
|
53
|
+
On failure: an uninitialized extension blocks tool execution. A single masking failure does not abort the request — Pi swallows handler errors and sends the unmasked content anyway, so the extension catches them and logs a warning carrying only the event name and reason, never the content.
|
|
54
|
+
|
|
55
|
+
## Masking records and comparison
|
|
56
|
+
|
|
57
|
+
Once enabled, you can check request by request what was intercepted and what the model actually received:
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"rehydra": {
|
|
62
|
+
"record": {
|
|
63
|
+
"enabled": true,
|
|
64
|
+
"includeOriginal": true
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
`/rehydra log` lists the last 20 records for the current session, `/rehydra log <id>` shows one record (hit lines plus field-level before/after), `/rehydra log --type EMAIL` filters by type; `/rehydra clear` clears the current session and `/rehydra clear --all` clears everything (both ask for confirmation).
|
|
71
|
+
|
|
72
|
+
Recording is off by default. When enabled it writes to `~/.pi/agent/rehydra/records/` (directory 0700, files 0600), trimmed by both a 7-day and a 32 MiB cap, with 256 KiB per record for comparisons. **With `includeOriginal` set to true, real values are written to local disk**; set it to false to keep only the type, detector, placeholder, length and offsets. Terminal control characters are escaped when displayed, and record text is never fed back into model context.
|
|
73
|
+
|
|
74
|
+
Any recording failure (unwritable directory, symlink, half-written line) only produces a warning and never affects masking or the request.
|
|
75
|
+
|
|
51
76
|
## Limitations
|
|
52
77
|
- Tool-argument rehydration is strict: when a tag is absent from this session's map (or the map is missing, or decryption fails), the tool call is blocked rather than run with `<PII .../>` as a real value. A placeholder can only be restored from the same session's map; the default map is in memory, so tags from before a process restart cannot be restored.
|
|
53
78
|
|
|
79
|
+
- Session maps are cached in-process to avoid repeated decryption. The cache is shared per storage instance and session id, so every session instance on the same storage sees the same map, and a streaming save invalidates it. Only another process, or a different storage instance over the same underlying data, can write a map this process's cache will not notice.
|
|
54
80
|
- Model calls that bypass these hooks (rare, e.g. user-initiated notes) are not intercepted.
|
|
55
|
-
- `URL` and `
|
|
81
|
+
- `URL`, `IP_ADDRESS`, `BIC_SWIFT`, `POSTAL_CODE` and `DATE` are disabled by default: recognizers that fire on shape alone misfire badly in code and documents. Restore them with `disableTypes: ["URL", "IP_ADDRESS"]`; a bank identifier still needs a full banking context word nearby.
|
|
82
|
+
- Only the values of sensitive fields in an `.env` file enter the global known-value set; project names and ports are not replaced later in the text. Explicitly configured `redactValues` are not affected by that filter.
|
|
83
|
+
- Collection fields in `policy` may be arrays and thresholds plain objects; an invalid field type fails startup with the field name instead of silently dropping the protection rule.
|
|
56
84
|
- This extension cannot guarantee that title or compaction summaries stay sanitized — disable title agents if you need titles to be human-readable.
|
|
57
85
|
|
|
58
86
|
## License
|
package/README.md
CHANGED
|
@@ -42,17 +42,43 @@ Pi 会在 `~/.pi/agent/settings.json` 写入包声明。然后编辑该文件添
|
|
|
42
42
|
| 钩子 | 作用 |
|
|
43
43
|
|---|---|
|
|
44
44
|
| `session_start` | 实例化匿名器、装配会话映射、解析 `rehydra` 配置 |
|
|
45
|
-
| `context_with_system` |
|
|
45
|
+
| `context_with_system` | 匿名化模型请求前的所有消息,并在本轮有替换时追加占位符说明 |
|
|
46
46
|
| `tool_call` | 在工具执行前严格还原工具入参中的 PII 标签;任一标签无法还原即阻断该次调用 |
|
|
47
47
|
| `tool_result` | 在结果返回给模型前脱敏真实 PII |
|
|
48
48
|
| `message_end` | 改写最终回答的文本块,把 PII 标签还原为真实值 |
|
|
49
49
|
| `session_shutdown` | 释放匿名器与会话注册表 |
|
|
50
|
+
覆盖的消息角色:`user`、`assistant`、`toolResult`、`system`(其 `content` 与各提示分段,工具声明段除外)、`bashExecution`(命令与输出)、`custom`、`branchSummary` 与 `compactionSummary`——这些正是宿主会转成模型输入的几种。本轮若发生过替换,占位符说明会作为独立提示分段注入,模型因此知道占位符是不可解析的透传值。
|
|
51
|
+
|
|
52
|
+
失败时的行为:扩展未初始化则阻止工具执行。单次脱敏失败不会中断请求——宿主会吞掉处理器异常并继续发送未脱敏内容,所以扩展自行捕获并写一条告警(只带事件名与原因,不含正文)。
|
|
53
|
+
## 脱敏记录与对照
|
|
54
|
+
|
|
55
|
+
开启后可以逐请求核对"哪些内容被拦截、模型实际收到了什么":
|
|
56
|
+
|
|
57
|
+
```json
|
|
58
|
+
{
|
|
59
|
+
"rehydra": {
|
|
60
|
+
"record": {
|
|
61
|
+
"enabled": true,
|
|
62
|
+
"includeOriginal": true
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
`/rehydra log` 列出当前会话最近 20 条记录,`/rehydra log <id>` 看单条详情(命中行 + 字段级 before/after),`/rehydra log --type EMAIL` 按类型筛选;`/rehydra clear` 清当前会话,`/rehydra clear --all` 清全部(都要确认)。
|
|
69
|
+
|
|
70
|
+
记录默认关闭。开启后写入 `~/.pi/agent/rehydra/records/`(目录 0700、文件 0600),按 7 天与 32 MiB 双上限裁剪,单条记录对照上限 256 KiB。**`includeOriginal` 为 true 时真实值会写到本地磁盘**;不需要时设成 `false`,记录只保留类型、检测器、占位符、长度与偏移。记录里出现的终端控制字符在展示时会转义,原文不会回填到模型上下文。
|
|
71
|
+
|
|
72
|
+
记录层任何失败(目录不可写、符号链接、半行文件)都只告警,不影响脱敏与请求。
|
|
50
73
|
|
|
51
74
|
## 限制
|
|
52
75
|
- 工具入参还原是严格的:标签不在本次会话映射中(或映射缺失、解密失败)时,该次工具调用会被阻止,不会把 `<PII .../>` 当作真实值执行。占位符只能由同一条会话的映射还原;默认使用内存映射,进程重启后旧标签无法还原。
|
|
53
76
|
|
|
77
|
+
- 会话映射在进程内缓存以避免重复解密。缓存按「存储实例 + 会话 ID」共享,因此同一存储上的多个会话实例看到的是一致的映射;流式脱敏写盘后也会让缓存失效。仅当**另一个进程**,或另一个指向同一份底层数据的存储实例改写时,本进程缓存不会失效。
|
|
54
78
|
- 不会拦截用户在 UI 里粘贴的、且未走这些 hook 的模型调用。
|
|
55
|
-
- 默认禁用 `URL
|
|
79
|
+
- 默认禁用 `URL`、`IP_ADDRESS`、`BIC_SWIFT`、`POSTAL_CODE`、`DATE`;只靠形状就能命中的识别器在代码与文档里误报率高。需要它们时把 `disableTypes` 写成 `["URL", "IP_ADDRESS"]` 即可恢复。即便恢复,银行标识码仍要求附近出现完整的银行语境词。
|
|
80
|
+
- `.env` 里只有敏感字段的值会进入全局已知值集合:项目名、端口这类普通配置值不会被替换。显式配置的 `redactValues` 不受这条筛选影响。
|
|
81
|
+
- `policy` 的集合类字段可写成数组、阈值可写成对象;字段类型不合法时扩展启动报错并指出字段名,不会静默丢掉保护规则。
|
|
56
82
|
- Pi 扩展无法保证消息标题(title)与元数据走相同的 hook,因此这些字段仍可能包含占位符。建议在脱敏时启用完整的 PII 脱敏策略。
|
|
57
83
|
|
|
58
84
|
## License
|
|
@@ -6,6 +6,8 @@ import { AnonymizationResult, AnonymizationPolicy, AnonymizationMode, SemanticCo
|
|
|
6
6
|
import { RecognizerRegistry } from "../recognizers/index.js";
|
|
7
7
|
import { type INERModel, type OrtSessionOptions } from "../ner/index.js";
|
|
8
8
|
import { type NERModelMode, type DownloadProgressCallback } from "../ner/model-manager.js";
|
|
9
|
+
import type { AnonymizeRun, PiiObserver } from "./observer.js";
|
|
10
|
+
export type { AnonymizeRun, ObservedEntity, PiiObserver } from "./observer.js";
|
|
9
11
|
import { type RawPIIMap } from "../pipeline/tagger.js";
|
|
10
12
|
import { type KeyProvider } from "../crypto/index.js";
|
|
11
13
|
export type { RawPIIMap } from "../pipeline/tagger.js";
|
|
@@ -144,6 +146,11 @@ export interface AnonymizerConfig {
|
|
|
144
146
|
* @default { enabled: false }
|
|
145
147
|
*/
|
|
146
148
|
secrets?: SecretsConfig;
|
|
149
|
+
/**
|
|
150
|
+
* 模型检测失败时的处理。`rules` 降级为规则并标记检测不完整;
|
|
151
|
+
* `block` 直接把错误抛给调用方(fail-closed)。未配置时保持原有抛错行为。
|
|
152
|
+
*/
|
|
153
|
+
nerFailure?: "rules" | "block";
|
|
147
154
|
/** Key provider for encryption (generates random key if not provided) */
|
|
148
155
|
keyProvider?: KeyProvider;
|
|
149
156
|
/**
|
|
@@ -187,6 +194,7 @@ export declare class Anonymizer {
|
|
|
187
194
|
private registry;
|
|
188
195
|
private nerModel;
|
|
189
196
|
private nerConfig;
|
|
197
|
+
private nerFailure;
|
|
190
198
|
private semanticConfig;
|
|
191
199
|
private secretsConfig;
|
|
192
200
|
private mode;
|
|
@@ -218,7 +226,7 @@ export declare class Anonymizer {
|
|
|
218
226
|
* @param existingPiiMap - Optional existing PII map for session-level ID reuse
|
|
219
227
|
* @returns Anonymization result with anonymized text and encrypted PII map
|
|
220
228
|
*/
|
|
221
|
-
anonymize(text: string, locale?: string, policy?: Partial<AnonymizationPolicy>, existingPiiMap?: RawPIIMap): Promise<AnonymizationResult>;
|
|
229
|
+
anonymize(text: string, locale?: string, policy?: Partial<AnonymizationPolicy>, existingPiiMap?: RawPIIMap, observer?: PiiObserver, run?: AnonymizeRun): Promise<AnonymizationResult>;
|
|
222
230
|
/**
|
|
223
231
|
* Disposes of resources
|
|
224
232
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anonymizer.d.ts","sourceRoot":"","sources":["../../src/core/anonymizer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EAEnB,iBAAiB,EAEjB,cAAc,EACd,aAAa,EAEb,OAAO,EACP,SAAS,EAIV,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAEL,kBAAkB,EAEnB,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"anonymizer.d.ts","sourceRoot":"","sources":["../../src/core/anonymizer.ts"],"names":[],"mappings":"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"}
|
package/dist/core/anonymizer.js
CHANGED
|
@@ -5,11 +5,12 @@
|
|
|
5
5
|
import { PIIType, DEFAULT_TAG_FORMAT, createDefaultPolicy, SECRET_PII_TYPES, } from "../types/index.js";
|
|
6
6
|
import { createDefaultRegistry, createSecretRecognizers, } from "../recognizers/index.js";
|
|
7
7
|
import { createLiteralValueRecognizer } from "../recognizers/secrets/literal-value.js";
|
|
8
|
+
import { isCredentialField } from "../recognizers/secrets/key-patterns.js";
|
|
8
9
|
import { NERModelStub, createNERModel, createInferenceServerNERModel, } from "../ner/index.js";
|
|
9
10
|
import { ensureModel, loadLabelMap, } from "../ner/model-manager.js";
|
|
10
|
-
import { prenormalize } from "../pipeline/prenormalize.js";
|
|
11
|
+
import { createLineEndingMapping, prenormalize } from "../pipeline/prenormalize.js";
|
|
11
12
|
import { resolveEntities } from "../pipeline/resolver.js";
|
|
12
|
-
import { tagEntities, countEntitiesByType, } from "../pipeline/tagger.js";
|
|
13
|
+
import { generateTag, tagEntities, countEntitiesByType, } from "../pipeline/tagger.js";
|
|
13
14
|
import { validateOutput } from "../pipeline/validator.js";
|
|
14
15
|
import { enrichSemantics } from "../pipeline/semantic-enricher.js";
|
|
15
16
|
import { ensureSemanticData, isSemanticDataAvailable, loadSemanticData, } from "../pipeline/semantic-data-loader.js";
|
|
@@ -44,6 +45,93 @@ function mergePolicyWithBase(base, partial) {
|
|
|
44
45
|
excludeLocationScopes: partial.excludeLocationScopes ?? base.excludeLocationScopes,
|
|
45
46
|
};
|
|
46
47
|
}
|
|
48
|
+
/** 判断信号是否已取消(单独成函数,避免被 TS 的收窄影响)。 */
|
|
49
|
+
function isAborted(signal) {
|
|
50
|
+
return signal !== undefined && signal.aborted;
|
|
51
|
+
}
|
|
52
|
+
/** 把取消信号转成标准 AbortError。 */
|
|
53
|
+
function toAbortError(signal) {
|
|
54
|
+
const reason = signal.reason;
|
|
55
|
+
if (reason instanceof Error)
|
|
56
|
+
return reason;
|
|
57
|
+
const error = new Error("Anonymization aborted");
|
|
58
|
+
error.name = "AbortError";
|
|
59
|
+
return error;
|
|
60
|
+
}
|
|
61
|
+
/** 等待期间保持对取消信号的响应:取消时立即以 AbortError 结束。 */
|
|
62
|
+
function raceWithSignal(promise, signal) {
|
|
63
|
+
if (signal === undefined)
|
|
64
|
+
return promise;
|
|
65
|
+
if (signal.aborted)
|
|
66
|
+
return Promise.reject(toAbortError(signal));
|
|
67
|
+
return new Promise((resolve, reject) => {
|
|
68
|
+
const onAbort = () => {
|
|
69
|
+
reject(toAbortError(signal));
|
|
70
|
+
};
|
|
71
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
72
|
+
promise.then((value) => {
|
|
73
|
+
signal.removeEventListener("abort", onAbort);
|
|
74
|
+
resolve(value);
|
|
75
|
+
}, (error) => {
|
|
76
|
+
signal.removeEventListener("abort", onAbort);
|
|
77
|
+
reject(error);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
/** 给等待加一个上限;超时抛出可归类为 model-deadline 的错误。 */
|
|
82
|
+
function withTimeout(promise, ms) {
|
|
83
|
+
return new Promise((resolve, reject) => {
|
|
84
|
+
const timer = setTimeout(() => {
|
|
85
|
+
reject(new Error("inference deadline exceeded while waiting"));
|
|
86
|
+
}, ms);
|
|
87
|
+
promise.then((value) => {
|
|
88
|
+
clearTimeout(timer);
|
|
89
|
+
resolve(value);
|
|
90
|
+
}, (error) => {
|
|
91
|
+
clearTimeout(timer);
|
|
92
|
+
reject(error);
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
/** 把模型失败归类成不含正文的错误码。 */
|
|
97
|
+
function classifyNerError(error) {
|
|
98
|
+
const message = error instanceof Error ? error.message.toLowerCase() : "";
|
|
99
|
+
if (message.includes("deadline exceeded"))
|
|
100
|
+
return "model-deadline";
|
|
101
|
+
if (message.includes("timed out") || message.includes("timeout"))
|
|
102
|
+
return "model-timeout";
|
|
103
|
+
if (message.includes("failed to connect") || message.includes("econnrefused")) {
|
|
104
|
+
return "model-unreachable";
|
|
105
|
+
}
|
|
106
|
+
if (message.includes("protocol error"))
|
|
107
|
+
return "protocol-error";
|
|
108
|
+
if (message.includes("not loaded"))
|
|
109
|
+
return "model-unavailable";
|
|
110
|
+
return "model-failed";
|
|
111
|
+
}
|
|
112
|
+
/** 把命中回调给观察者;偏移从规范化文本折回原文空间。 */
|
|
113
|
+
function notifyObserver(observer, input) {
|
|
114
|
+
const mapping = createLineEndingMapping(input.text);
|
|
115
|
+
for (const entity of input.entities) {
|
|
116
|
+
const hit = {
|
|
117
|
+
type: entity.type,
|
|
118
|
+
recognizer: entity.recognizer,
|
|
119
|
+
start: mapping.toOriginal(entity.start),
|
|
120
|
+
end: mapping.toOriginal(entity.end),
|
|
121
|
+
replaced: generateTag(entity.type, entity.id, entity.semantic, input.tagFormat),
|
|
122
|
+
};
|
|
123
|
+
if (observer.includeOriginal === true) {
|
|
124
|
+
// 从原文切片,保留内部 CRLF 与规范化的差异
|
|
125
|
+
hit.original = input.text.slice(hit.start, hit.end);
|
|
126
|
+
}
|
|
127
|
+
try {
|
|
128
|
+
observer.onEntity(hit);
|
|
129
|
+
}
|
|
130
|
+
catch {
|
|
131
|
+
// 观察者属于诊断通道,异常不能影响脱敏本身
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
47
135
|
/**
|
|
48
136
|
* Anonymizer instance
|
|
49
137
|
* Main class for performing PII anonymization
|
|
@@ -52,6 +140,7 @@ export class Anonymizer {
|
|
|
52
140
|
registry;
|
|
53
141
|
nerModel = null;
|
|
54
142
|
nerConfig;
|
|
143
|
+
nerFailure;
|
|
55
144
|
semanticConfig;
|
|
56
145
|
secretsConfig;
|
|
57
146
|
mode;
|
|
@@ -83,6 +172,7 @@ export class Anonymizer {
|
|
|
83
172
|
}
|
|
84
173
|
// Handle NER configuration
|
|
85
174
|
this.nerConfig = config.ner ?? { mode: "disabled" };
|
|
175
|
+
this.nerFailure = config.nerFailure ?? "propagate";
|
|
86
176
|
this.modelVersion = config.modelVersion ?? "1.0.0";
|
|
87
177
|
// Merge NER thresholds into default policy if provided
|
|
88
178
|
if (this.nerConfig.thresholds !== undefined) {
|
|
@@ -246,11 +336,16 @@ export class Anonymizer {
|
|
|
246
336
|
}
|
|
247
337
|
// Handle secrets .env file loading and literal value matching
|
|
248
338
|
if (this.secretsConfig.enabled) {
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
]
|
|
339
|
+
// 显式指定的值按用户意图保留,不做自动筛选
|
|
340
|
+
const explicitValues = [];
|
|
341
|
+
for (const value of this.secretsConfig.redactValues ?? []) {
|
|
342
|
+
if (value.trim().length === 0)
|
|
343
|
+
continue;
|
|
344
|
+
explicitValues.push(value);
|
|
345
|
+
}
|
|
252
346
|
const minLength = this.secretsConfig.minValueLength ?? 4;
|
|
253
347
|
// Parse .env files if provided
|
|
348
|
+
const envValues = [];
|
|
254
349
|
if (this.secretsConfig.envFiles !== undefined && this.secretsConfig.envFiles.length > 0) {
|
|
255
350
|
const storage = await getStorageProvider();
|
|
256
351
|
const envFiles = storage.resolveFiles !== undefined
|
|
@@ -260,13 +355,19 @@ export class Anonymizer {
|
|
|
260
355
|
try {
|
|
261
356
|
const content = await storage.readTextFile(envFile);
|
|
262
357
|
const parsed = parseEnvFile(content);
|
|
263
|
-
|
|
358
|
+
// 只把敏感字段的值收进已知值集合:项目名、端口这类普通配置
|
|
359
|
+
// 值一旦进入集合,后续文本里出现就会被替换。
|
|
360
|
+
for (const entry of parsed) {
|
|
361
|
+
if (isCredentialField(entry.key))
|
|
362
|
+
envValues.push(entry.value);
|
|
363
|
+
}
|
|
264
364
|
}
|
|
265
365
|
catch {
|
|
266
366
|
// Skip files that can't be read
|
|
267
367
|
}
|
|
268
368
|
}
|
|
269
369
|
}
|
|
370
|
+
const literalValues = [...explicitValues, ...envValues];
|
|
270
371
|
// Register literal value recognizer if we have values
|
|
271
372
|
if (literalValues.length > 0) {
|
|
272
373
|
this.registry.register(createLiteralValueRecognizer(literalValues, minLength));
|
|
@@ -283,10 +384,14 @@ export class Anonymizer {
|
|
|
283
384
|
* @param existingPiiMap - Optional existing PII map for session-level ID reuse
|
|
284
385
|
* @returns Anonymization result with anonymized text and encrypted PII map
|
|
285
386
|
*/
|
|
286
|
-
async anonymize(text, locale, policy, existingPiiMap) {
|
|
387
|
+
async anonymize(text, locale, policy, existingPiiMap, observer, run) {
|
|
287
388
|
if (!this.initialized) {
|
|
288
389
|
await this.initialize();
|
|
289
390
|
}
|
|
391
|
+
// 宿主取消:直接结束,不进入降级路径
|
|
392
|
+
if (run?.signal?.aborted === true) {
|
|
393
|
+
throw toAbortError(run.signal);
|
|
394
|
+
}
|
|
290
395
|
const startTime = performance.now();
|
|
291
396
|
// Merge policy with instance defaults (not global defaults)
|
|
292
397
|
// This ensures semantic config from constructor is preserved
|
|
@@ -298,8 +403,42 @@ export class Anonymizer {
|
|
|
298
403
|
const normalizedText = prenormalize(text);
|
|
299
404
|
// Step 2: Run regex recognizers
|
|
300
405
|
const regexMatches = this.registry.findAll(normalizedText, effectivePolicy);
|
|
301
|
-
// Step 3: Run NER model
|
|
302
|
-
const
|
|
406
|
+
// Step 3: Run NER model;失败按 nerFailure 策略处理
|
|
407
|
+
const detectionErrors = [];
|
|
408
|
+
let nerResult;
|
|
409
|
+
const remaining = run?.deadline === undefined ? undefined : run.deadline - Date.now();
|
|
410
|
+
try {
|
|
411
|
+
if (remaining !== undefined && remaining <= 0) {
|
|
412
|
+
// 预算已耗尽:不再发请求,直接走规则
|
|
413
|
+
throw new Error("inference deadline exceeded before request");
|
|
414
|
+
}
|
|
415
|
+
const prediction = this.nerModel.predict(normalizedText, effectivePolicy);
|
|
416
|
+
// shortcut: 预算只截断等待,底层请求仍会在自身超时后结束
|
|
417
|
+
nerResult =
|
|
418
|
+
remaining === undefined
|
|
419
|
+
? await raceWithSignal(prediction, run?.signal)
|
|
420
|
+
: await raceWithSignal(withTimeout(prediction, remaining), run?.signal);
|
|
421
|
+
}
|
|
422
|
+
catch (error) {
|
|
423
|
+
// 取消不属于检测失败,始终向上传递
|
|
424
|
+
const signal = run?.signal;
|
|
425
|
+
if (signal !== undefined && isAborted(signal))
|
|
426
|
+
throw toAbortError(signal);
|
|
427
|
+
if (error instanceof Error && error.name === "AbortError")
|
|
428
|
+
throw error;
|
|
429
|
+
if (this.nerFailure === "block" || this.nerFailure === "propagate") {
|
|
430
|
+
throw error;
|
|
431
|
+
}
|
|
432
|
+
// 降级:本次只用规则结果,并标记检测不完整
|
|
433
|
+
detectionErrors.push({ finder: "model", code: classifyNerError(error) });
|
|
434
|
+
nerResult = {
|
|
435
|
+
spans: [],
|
|
436
|
+
processingTimeMs: 0,
|
|
437
|
+
modelVersion: this.modelVersion,
|
|
438
|
+
truncated: false,
|
|
439
|
+
coverageChars: 0,
|
|
440
|
+
};
|
|
441
|
+
}
|
|
303
442
|
const nerMatches = nerResult.spans;
|
|
304
443
|
// Step 4: Resolve and merge entities
|
|
305
444
|
const resolvedMatches = resolveEntities(regexMatches, nerMatches, effectivePolicy, normalizedText);
|
|
@@ -337,6 +476,16 @@ export class Anonymizer {
|
|
|
337
476
|
}));
|
|
338
477
|
this.onValidationWarning(safeErrors);
|
|
339
478
|
}
|
|
479
|
+
// Step 6.5: 把每条替换回调给可选的观察者(诊断/记录用)。
|
|
480
|
+
// 只在调用方显式注册时执行;命中偏移折回原始文本空间。
|
|
481
|
+
if (observer !== undefined && entities.length > 0) {
|
|
482
|
+
notifyObserver(observer, {
|
|
483
|
+
text,
|
|
484
|
+
normalizedText,
|
|
485
|
+
entities,
|
|
486
|
+
tagFormat: this.tagFormat,
|
|
487
|
+
});
|
|
488
|
+
}
|
|
340
489
|
// Step 7: Build stats
|
|
341
490
|
const endTime = performance.now();
|
|
342
491
|
const stats = {
|
|
@@ -349,6 +498,7 @@ export class Anonymizer {
|
|
|
349
498
|
nerTruncated: nerResult.truncated,
|
|
350
499
|
nerCoverageChars: nerResult.coverageChars,
|
|
351
500
|
};
|
|
501
|
+
const integrity = detectionErrors.length === 0 ? "complete" : "rules-only";
|
|
352
502
|
// Step 8: Build result (without original text in entities)
|
|
353
503
|
const safeEntities = entities.map(({ original: _original, ...rest }) => rest);
|
|
354
504
|
// Step 9: Encrypt PII map (only in pseudonymize mode)
|
|
@@ -358,6 +508,9 @@ export class Anonymizer {
|
|
|
358
508
|
anonymizedText,
|
|
359
509
|
entities: safeEntities,
|
|
360
510
|
stats,
|
|
511
|
+
...(detectionErrors.length === 0
|
|
512
|
+
? {}
|
|
513
|
+
: { detectionErrors, integrity }),
|
|
361
514
|
};
|
|
362
515
|
}
|
|
363
516
|
// Pseudonymize mode - encrypt and return PII map
|
|
@@ -370,6 +523,7 @@ export class Anonymizer {
|
|
|
370
523
|
entities: safeEntities,
|
|
371
524
|
piiMap: encryptedPiiMap,
|
|
372
525
|
stats,
|
|
526
|
+
...(detectionErrors.length === 0 ? {} : { detectionErrors, integrity }),
|
|
373
527
|
};
|
|
374
528
|
}
|
|
375
529
|
/**
|
|
@@ -534,10 +688,10 @@ export async function anonymizeWithNER(text, nerConfig, policy) {
|
|
|
534
688
|
}
|
|
535
689
|
}
|
|
536
690
|
/**
|
|
537
|
-
* Parses a .env file content and returns
|
|
691
|
+
* Parses a .env file content and returns key/value pairs.
|
|
538
692
|
*/
|
|
539
693
|
function parseEnvFile(content) {
|
|
540
|
-
const
|
|
694
|
+
const entries = [];
|
|
541
695
|
const lines = content.split("\n");
|
|
542
696
|
for (const line of lines) {
|
|
543
697
|
const trimmed = line.trim();
|
|
@@ -545,11 +699,11 @@ function parseEnvFile(content) {
|
|
|
545
699
|
if (trimmed === "" || trimmed.startsWith("#"))
|
|
546
700
|
continue;
|
|
547
701
|
// Match KEY=VALUE (with optional export prefix and quotes)
|
|
548
|
-
const match = trimmed.match(/^(?:export\s+)?[A-Za-z_][A-Za-z0-9_]
|
|
549
|
-
if (match !== null && match[1] !== undefined && match[
|
|
550
|
-
|
|
702
|
+
const match = trimmed.match(/^(?:export\s+)?([A-Za-z_][A-Za-z0-9_]*)\s*=\s*["']?(.*?)["']?$/);
|
|
703
|
+
if (match !== null && match[1] !== undefined && match[2] !== undefined && match[2] !== "") {
|
|
704
|
+
entries.push({ key: match[1], value: match[2] });
|
|
551
705
|
}
|
|
552
706
|
}
|
|
553
|
-
return
|
|
707
|
+
return entries;
|
|
554
708
|
}
|
|
555
709
|
//# sourceMappingURL=anonymizer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"anonymizer.js","sourceRoot":"","sources":["../../src/core/anonymizer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"anonymizer.js","sourceRoot":"","sources":["../../src/core/anonymizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 脱敏诊断观察者。
|
|
3
|
+
*
|
|
4
|
+
* 记录能力通过这个可选回调取得"哪条命中被哪段文本替换",默认不注册时零开销;
|
|
5
|
+
* 原值只在观察者显式声明需要时填充,避免明文扩散到普通调用方。
|
|
6
|
+
*/
|
|
7
|
+
import type { PIIType } from "../types/index.js";
|
|
8
|
+
/** 一条被替换的命中。 */
|
|
9
|
+
export interface ObservedEntity {
|
|
10
|
+
type: PIIType;
|
|
11
|
+
/** 稳定检测器标识;缺失表示来源未知。 */
|
|
12
|
+
recognizer?: string;
|
|
13
|
+
/** 原文中的起止偏移(已从规范化文本折回)。 */
|
|
14
|
+
start: number;
|
|
15
|
+
end: number;
|
|
16
|
+
/** 实际写入的占位符。 */
|
|
17
|
+
replaced: string;
|
|
18
|
+
/** 原值:只有观察者声明需要时才填充。 */
|
|
19
|
+
original?: string;
|
|
20
|
+
}
|
|
21
|
+
/** 单次调用的预算与取消。 */
|
|
22
|
+
export interface AnonymizeRun {
|
|
23
|
+
/** 绝对时间戳:超过后不再调用模型,按 nerFailure 处理。 */
|
|
24
|
+
deadline?: number;
|
|
25
|
+
/** 宿主取消信号:取消直接结束,不降级。 */
|
|
26
|
+
signal?: AbortSignal;
|
|
27
|
+
}
|
|
28
|
+
/** 诊断观察者。 */
|
|
29
|
+
export interface PiiObserver {
|
|
30
|
+
readonly includeOriginal?: boolean;
|
|
31
|
+
onEntity(entity: ObservedEntity): void;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=observer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observer.d.ts","sourceRoot":"","sources":["../../src/core/observer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAEjD,gBAAgB;AAChB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,OAAO,CAAC;IACd,wBAAwB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,kBAAkB;AAClB,MAAM,WAAW,YAAY;IAC3B,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yBAAyB;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,aAAa;AACb,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IACnC,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,CAAC;CACxC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observer.js","sourceRoot":"","sources":["../../src/core/observer.ts"],"names":[],"mappings":""}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
import type { AnonymizerConfig } from "../core/anonymizer.js";
|
|
11
11
|
import { PIIType } from "../types/index.js";
|
|
12
12
|
import type { AnonymizationPolicy, TagFormat } from "../types/index.js";
|
|
13
|
+
import { type PolicyInputShape } from "./policy-input.js";
|
|
13
14
|
/** 字符串形式的 PII 类型名。 */
|
|
14
15
|
export type PIITypeName = `${PIIType}`;
|
|
15
16
|
export declare const DEFAULT_DISABLE_TYPES: PIITypeName[];
|
|
@@ -26,10 +27,30 @@ export interface RehydraSharedOptions {
|
|
|
26
27
|
allowLiteralTagsIn?: string[];
|
|
27
28
|
locale?: string;
|
|
28
29
|
tagFormat?: TagFormat;
|
|
29
|
-
|
|
30
|
+
/**
|
|
31
|
+
* 策略覆盖。程序化调用可用 Set/Map;配置文件(JSON)里用数组与普通对象,
|
|
32
|
+
* 由 `normalizePolicyInput` 规范化。
|
|
33
|
+
*/
|
|
34
|
+
policy?: Partial<AnonymizationPolicy> | PolicyInputShape;
|
|
30
35
|
/** `undefined` 表示用户没有显式配置;空对象 `{}` 也视为显式配置。 */
|
|
31
36
|
anonymizer?: AnonymizerConfig;
|
|
37
|
+
/** 脱敏记录配置。 */
|
|
38
|
+
record?: RecordOptions;
|
|
39
|
+
/** 模型检测不可用时的处理。 */
|
|
40
|
+
nerFailure?: "rules" | "block";
|
|
32
41
|
}
|
|
42
|
+
/** 脱敏记录配置(已校验)。 */
|
|
43
|
+
export interface RecordOptions {
|
|
44
|
+
enabled: boolean;
|
|
45
|
+
includeOriginal: boolean;
|
|
46
|
+
keepInMemory: number;
|
|
47
|
+
keepDays: number;
|
|
48
|
+
keepBytes: number;
|
|
49
|
+
maxRecordBytes: number;
|
|
50
|
+
/** 记录目录;未配置时由扩展按 cwd 解析。 */
|
|
51
|
+
dir?: string;
|
|
52
|
+
}
|
|
53
|
+
export declare const DEFAULT_RECORD_OPTIONS: Omit<RecordOptions, "dir">;
|
|
33
54
|
/** 校验并规范化原始选项。未知字段一律忽略,畸形值落回默认值。 */
|
|
34
55
|
export declare function normalizeRehydraOptions(raw: unknown): RehydraSharedOptions;
|
|
35
56
|
/**
|
|
@@ -40,6 +61,11 @@ export declare function normalizeRehydraOptions(raw: unknown): RehydraSharedOpti
|
|
|
40
61
|
* 2. 其余情况回退到 `ctxDirectory`(Pi 扩展传入当前 `cwd`)。
|
|
41
62
|
*/
|
|
42
63
|
export declare function anonymizerConfigFromOptions(options: RehydraSharedOptions, ctxDirectory: string): AnonymizerConfig;
|
|
43
|
-
/**
|
|
64
|
+
/**
|
|
65
|
+
* 处理 `disableTypes` 并重新打开 secret 类型。
|
|
66
|
+
*
|
|
67
|
+
* 用户给的 `policy` 会先规范化;无法解析时抛错并带上字段名,
|
|
68
|
+
* 不静默丢弃保护规则。
|
|
69
|
+
*/
|
|
44
70
|
export declare function policyFromOptions(options: RehydraSharedOptions): Partial<AnonymizationPolicy> | undefined;
|
|
45
71
|
//# sourceMappingURL=normalize-options.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-options.d.ts","sourceRoot":"","sources":["../../src/host-agnostic/normalize-options.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EACL,OAAO,EAGR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,mBAAmB,EAEnB,SAAS,EACV,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"normalize-options.d.ts","sourceRoot":"","sources":["../../src/host-agnostic/normalize-options.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EACL,OAAO,EAGR,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,mBAAmB,EAEnB,SAAS,EACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAwB,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEhF,sBAAsB;AACtB,MAAM,MAAM,WAAW,GAAG,GAAG,OAAO,EAAE,CAAC;AAGvC,eAAO,MAAM,qBAAqB,EAAE,WAAW,EAM9C,CAAC;AACF,eAAO,MAAM,iBAAiB,EAAE,MAAM,EAAiB,CAAC;AACxD,eAAO,MAAM,wBAAwB,IAAI,CAAC;AAE1C,yBAAyB;AACzB,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,yCAAyC;IACzC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,gBAAgB,CAAC;IACzD,+CAA+C;IAC/C,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc;IACd,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,mBAAmB;IACnB,UAAU,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAChC;AAED,mBAAmB;AACnB,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,eAAO,MAAM,sBAAsB,EAAE,IAAI,CAAC,aAAa,EAAE,KAAK,CAO7D,CAAC;AAqEF,oCAAoC;AACpC,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,OAAO,GAAG,oBAAoB,CA+B1E;AAED;;;;;;GAMG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,oBAAoB,EAC7B,YAAY,EAAE,MAAM,GACnB,gBAAgB,CAmBlB;AAGD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,mBAAmB,CAAC,GAAG,SAAS,CA0B1C"}
|