pi-rehydra 0.0.0-stage → 1.0.0
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 +56 -0
- package/README.md +56 -3
- package/dist/browser.d.ts +54 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +74 -0
- package/dist/browser.js.map +1 -0
- package/dist/core/anonymizer.d.ts +309 -0
- package/dist/core/anonymizer.d.ts.map +1 -0
- package/dist/core/anonymizer.js +555 -0
- package/dist/core/anonymizer.js.map +1 -0
- package/dist/core/index.d.ts +6 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +6 -0
- package/dist/core/index.js.map +1 -0
- package/dist/crypto/index.d.ts +6 -0
- package/dist/crypto/index.d.ts.map +1 -0
- package/dist/crypto/index.js +6 -0
- package/dist/crypto/index.js.map +1 -0
- package/dist/crypto/pii-map-crypto.d.ts +114 -0
- package/dist/crypto/pii-map-crypto.d.ts.map +1 -0
- package/dist/crypto/pii-map-crypto.js +228 -0
- package/dist/crypto/pii-map-crypto.js.map +1 -0
- package/dist/host-agnostic/normalize-options.d.ts +43 -0
- package/dist/host-agnostic/normalize-options.d.ts.map +1 -0
- package/dist/host-agnostic/normalize-options.js +115 -0
- package/dist/host-agnostic/normalize-options.js.map +1 -0
- package/dist/host-agnostic/scrub.d.ts +105 -0
- package/dist/host-agnostic/scrub.d.ts.map +1 -0
- package/dist/host-agnostic/scrub.js +179 -0
- package/dist/host-agnostic/scrub.js.map +1 -0
- package/dist/index.d.ts +53 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +72 -0
- package/dist/index.js.map +1 -0
- package/dist/ner/bio-decoder.d.ts +64 -0
- package/dist/ner/bio-decoder.d.ts.map +1 -0
- package/dist/ner/bio-decoder.js +218 -0
- package/dist/ner/bio-decoder.js.map +1 -0
- package/dist/ner/index.d.ts +12 -0
- package/dist/ner/index.d.ts.map +1 -0
- package/dist/ner/index.js +12 -0
- package/dist/ner/index.js.map +1 -0
- package/dist/ner/inference-server-client.d.ts +81 -0
- package/dist/ner/inference-server-client.d.ts.map +1 -0
- package/dist/ner/inference-server-client.js +120 -0
- package/dist/ner/inference-server-client.js.map +1 -0
- package/dist/ner/inference-server-ner-model.d.ts +43 -0
- package/dist/ner/inference-server-ner-model.d.ts.map +1 -0
- package/dist/ner/inference-server-ner-model.js +119 -0
- package/dist/ner/inference-server-ner-model.js.map +1 -0
- package/dist/ner/model-manager.d.ts +111 -0
- package/dist/ner/model-manager.d.ts.map +1 -0
- package/dist/ner/model-manager.js +334 -0
- package/dist/ner/model-manager.js.map +1 -0
- package/dist/ner/ner-model.d.ts +172 -0
- package/dist/ner/ner-model.d.ts.map +1 -0
- package/dist/ner/ner-model.js +514 -0
- package/dist/ner/ner-model.js.map +1 -0
- package/dist/ner/onnx-runtime.browser.d.ts +46 -0
- package/dist/ner/onnx-runtime.browser.d.ts.map +1 -0
- package/dist/ner/onnx-runtime.browser.js +90 -0
- package/dist/ner/onnx-runtime.browser.js.map +1 -0
- package/dist/ner/onnx-runtime.d.ts +72 -0
- package/dist/ner/onnx-runtime.d.ts.map +1 -0
- package/dist/ner/onnx-runtime.js +132 -0
- package/dist/ner/onnx-runtime.js.map +1 -0
- package/dist/ner/token-window.d.ts +19 -0
- package/dist/ner/token-window.d.ts.map +1 -0
- package/dist/ner/token-window.js +101 -0
- package/dist/ner/token-window.js.map +1 -0
- package/dist/ner/tokenizer.d.ts +142 -0
- package/dist/ner/tokenizer.d.ts.map +1 -0
- package/dist/ner/tokenizer.js +362 -0
- package/dist/ner/tokenizer.js.map +1 -0
- package/dist/opencode-plugin/git-identity.d.ts +3 -0
- package/dist/opencode-plugin/git-identity.d.ts.map +1 -0
- package/dist/opencode-plugin/git-identity.js +37 -0
- package/dist/opencode-plugin/git-identity.js.map +1 -0
- package/dist/opencode-plugin/github-username.d.ts +3 -0
- package/dist/opencode-plugin/github-username.d.ts.map +1 -0
- package/dist/opencode-plugin/github-username.js +41 -0
- package/dist/opencode-plugin/github-username.js.map +1 -0
- package/dist/opencode-plugin/identity-recognizer.d.ts +5 -0
- package/dist/opencode-plugin/identity-recognizer.d.ts.map +1 -0
- package/dist/opencode-plugin/identity-recognizer.js +21 -0
- package/dist/opencode-plugin/identity-recognizer.js.map +1 -0
- package/dist/opencode-plugin/index.d.ts +7 -0
- package/dist/opencode-plugin/index.d.ts.map +1 -0
- package/dist/opencode-plugin/index.js +6 -0
- package/dist/opencode-plugin/index.js.map +1 -0
- package/dist/opencode-plugin/plugin.d.ts +39 -0
- package/dist/opencode-plugin/plugin.d.ts.map +1 -0
- package/dist/opencode-plugin/plugin.js +294 -0
- package/dist/opencode-plugin/plugin.js.map +1 -0
- package/dist/opencode-plugin/types.d.ts +33 -0
- package/dist/opencode-plugin/types.d.ts.map +1 -0
- package/dist/opencode-plugin/types.js +5 -0
- package/dist/opencode-plugin/types.js.map +1 -0
- package/dist/opencode-plugin/v2/anon-state.d.ts +12 -0
- package/dist/opencode-plugin/v2/anon-state.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/anon-state.js +14 -0
- package/dist/opencode-plugin/v2/anon-state.js.map +1 -0
- package/dist/opencode-plugin/v2/deep-rehydrate.d.ts +13 -0
- package/dist/opencode-plugin/v2/deep-rehydrate.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/deep-rehydrate.js +33 -0
- package/dist/opencode-plugin/v2/deep-rehydrate.js.map +1 -0
- package/dist/opencode-plugin/v2/index.d.ts +17 -0
- package/dist/opencode-plugin/v2/index.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/index.js +17 -0
- package/dist/opencode-plugin/v2/index.js.map +1 -0
- package/dist/opencode-plugin/v2/logger.d.ts +24 -0
- package/dist/opencode-plugin/v2/logger.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/logger.js +73 -0
- package/dist/opencode-plugin/v2/logger.js.map +1 -0
- package/dist/opencode-plugin/v2/options.d.ts +33 -0
- package/dist/opencode-plugin/v2/options.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/options.js +63 -0
- package/dist/opencode-plugin/v2/options.js.map +1 -0
- package/dist/opencode-plugin/v2/register-hooks.d.ts +43 -0
- package/dist/opencode-plugin/v2/register-hooks.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/register-hooks.js +160 -0
- package/dist/opencode-plugin/v2/register-hooks.js.map +1 -0
- package/dist/opencode-plugin/v2/rehydrate-tail.d.ts +101 -0
- package/dist/opencode-plugin/v2/rehydrate-tail.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/rehydrate-tail.js +147 -0
- package/dist/opencode-plugin/v2/rehydrate-tail.js.map +1 -0
- package/dist/opencode-plugin/v2/response-rehydrate.d.ts +78 -0
- package/dist/opencode-plugin/v2/response-rehydrate.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/response-rehydrate.js +210 -0
- package/dist/opencode-plugin/v2/response-rehydrate.js.map +1 -0
- package/dist/opencode-plugin/v2/scrub-messages.d.ts +51 -0
- package/dist/opencode-plugin/v2/scrub-messages.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/scrub-messages.js +105 -0
- package/dist/opencode-plugin/v2/scrub-messages.js.map +1 -0
- package/dist/opencode-plugin/v2/sessions.d.ts +17 -0
- package/dist/opencode-plugin/v2/sessions.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/sessions.js +23 -0
- package/dist/opencode-plugin/v2/sessions.js.map +1 -0
- package/dist/opencode-plugin/v2/sse.d.ts +101 -0
- package/dist/opencode-plugin/v2/sse.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/sse.js +235 -0
- package/dist/opencode-plugin/v2/sse.js.map +1 -0
- package/dist/opencode-plugin/v2/types.d.ts +188 -0
- package/dist/opencode-plugin/v2/types.d.ts.map +1 -0
- package/dist/opencode-plugin/v2/types.js +10 -0
- package/dist/opencode-plugin/v2/types.js.map +1 -0
- package/dist/opencode-plugin/vcs-command.d.ts +3 -0
- package/dist/opencode-plugin/vcs-command.d.ts.map +1 -0
- package/dist/opencode-plugin/vcs-command.js +34 -0
- package/dist/opencode-plugin/vcs-command.js.map +1 -0
- package/dist/pi-extension/extension.d.ts +40 -0
- package/dist/pi-extension/extension.d.ts.map +1 -0
- package/dist/pi-extension/extension.js +471 -0
- package/dist/pi-extension/extension.js.map +1 -0
- package/dist/pi-extension/git-identity.d.ts +3 -0
- package/dist/pi-extension/git-identity.d.ts.map +1 -0
- package/dist/pi-extension/git-identity.js +37 -0
- package/dist/pi-extension/git-identity.js.map +1 -0
- package/dist/pi-extension/github-username.d.ts +3 -0
- package/dist/pi-extension/github-username.d.ts.map +1 -0
- package/dist/pi-extension/github-username.js +41 -0
- package/dist/pi-extension/github-username.js.map +1 -0
- package/dist/pi-extension/host-types.d.ts +120 -0
- package/dist/pi-extension/host-types.d.ts.map +1 -0
- package/dist/pi-extension/host-types.js +12 -0
- package/dist/pi-extension/host-types.js.map +1 -0
- package/dist/pi-extension/identity-recognizer.d.ts +5 -0
- package/dist/pi-extension/identity-recognizer.d.ts.map +1 -0
- package/dist/pi-extension/identity-recognizer.js +21 -0
- package/dist/pi-extension/identity-recognizer.js.map +1 -0
- package/dist/pi-extension/index.d.ts +28 -0
- package/dist/pi-extension/index.d.ts.map +1 -0
- package/dist/pi-extension/index.js +15 -0
- package/dist/pi-extension/index.js.map +1 -0
- package/dist/pi-extension/options.d.ts +34 -0
- package/dist/pi-extension/options.d.ts.map +1 -0
- package/dist/pi-extension/options.js +2 -0
- package/dist/pi-extension/options.js.map +1 -0
- package/dist/pipeline/index.d.ts +12 -0
- package/dist/pipeline/index.d.ts.map +1 -0
- package/dist/pipeline/index.js +12 -0
- package/dist/pipeline/index.js.map +1 -0
- package/dist/pipeline/prenormalize.d.ts +48 -0
- package/dist/pipeline/prenormalize.d.ts.map +1 -0
- package/dist/pipeline/prenormalize.js +94 -0
- package/dist/pipeline/prenormalize.js.map +1 -0
- package/dist/pipeline/resolver.d.ts +56 -0
- package/dist/pipeline/resolver.d.ts.map +1 -0
- package/dist/pipeline/resolver.js +239 -0
- package/dist/pipeline/resolver.js.map +1 -0
- package/dist/pipeline/semantic-data-loader.d.ts +171 -0
- package/dist/pipeline/semantic-data-loader.d.ts.map +1 -0
- package/dist/pipeline/semantic-data-loader.js +677 -0
- package/dist/pipeline/semantic-data-loader.js.map +1 -0
- package/dist/pipeline/semantic-enricher.d.ts +112 -0
- package/dist/pipeline/semantic-enricher.d.ts.map +1 -0
- package/dist/pipeline/semantic-enricher.js +322 -0
- package/dist/pipeline/semantic-enricher.js.map +1 -0
- package/dist/pipeline/tagger.d.ts +121 -0
- package/dist/pipeline/tagger.d.ts.map +1 -0
- package/dist/pipeline/tagger.js +545 -0
- package/dist/pipeline/tagger.js.map +1 -0
- package/dist/pipeline/title-extractor.d.ts +79 -0
- package/dist/pipeline/title-extractor.d.ts.map +1 -0
- package/dist/pipeline/title-extractor.js +801 -0
- package/dist/pipeline/title-extractor.js.map +1 -0
- package/dist/pipeline/validator.d.ts +65 -0
- package/dist/pipeline/validator.d.ts.map +1 -0
- package/dist/pipeline/validator.js +292 -0
- package/dist/pipeline/validator.js.map +1 -0
- package/dist/proxy/index.d.ts +13 -0
- package/dist/proxy/index.d.ts.map +1 -0
- package/dist/proxy/index.js +12 -0
- package/dist/proxy/index.js.map +1 -0
- package/dist/proxy/providers/anthropic.d.ts +28 -0
- package/dist/proxy/providers/anthropic.d.ts.map +1 -0
- package/dist/proxy/providers/anthropic.js +265 -0
- package/dist/proxy/providers/anthropic.js.map +1 -0
- package/dist/proxy/providers/index.d.ts +19 -0
- package/dist/proxy/providers/index.d.ts.map +1 -0
- package/dist/proxy/providers/index.js +41 -0
- package/dist/proxy/providers/index.js.map +1 -0
- package/dist/proxy/providers/openai.d.ts +27 -0
- package/dist/proxy/providers/openai.d.ts.map +1 -0
- package/dist/proxy/providers/openai.js +203 -0
- package/dist/proxy/providers/openai.js.map +1 -0
- package/dist/proxy/providers/streaming-tool-loop.d.ts +12 -0
- package/dist/proxy/providers/streaming-tool-loop.d.ts.map +1 -0
- package/dist/proxy/providers/streaming-tool-loop.js +223 -0
- package/dist/proxy/providers/streaming-tool-loop.js.map +1 -0
- package/dist/proxy/providers/types.d.ts +109 -0
- package/dist/proxy/providers/types.d.ts.map +1 -0
- package/dist/proxy/providers/types.js +2 -0
- package/dist/proxy/providers/types.js.map +1 -0
- package/dist/proxy/proxy-server.d.ts +61 -0
- package/dist/proxy/proxy-server.d.ts.map +1 -0
- package/dist/proxy/proxy-server.js +146 -0
- package/dist/proxy/proxy-server.js.map +1 -0
- package/dist/proxy/rehydra-fetch.d.ts +35 -0
- package/dist/proxy/rehydra-fetch.d.ts.map +1 -0
- package/dist/proxy/rehydra-fetch.js +631 -0
- package/dist/proxy/rehydra-fetch.js.map +1 -0
- package/dist/proxy/rehydra-proxy.d.ts +40 -0
- package/dist/proxy/rehydra-proxy.d.ts.map +1 -0
- package/dist/proxy/rehydra-proxy.js +150 -0
- package/dist/proxy/rehydra-proxy.js.map +1 -0
- package/dist/proxy/sse-parser.d.ts +59 -0
- package/dist/proxy/sse-parser.d.ts.map +1 -0
- package/dist/proxy/sse-parser.js +112 -0
- package/dist/proxy/sse-parser.js.map +1 -0
- package/dist/proxy/system-instruction.d.ts +19 -0
- package/dist/proxy/system-instruction.d.ts.map +1 -0
- package/dist/proxy/system-instruction.js +33 -0
- package/dist/proxy/system-instruction.js.map +1 -0
- package/dist/proxy/tool-loop-stream.d.ts +7 -0
- package/dist/proxy/tool-loop-stream.d.ts.map +1 -0
- package/dist/proxy/tool-loop-stream.js +65 -0
- package/dist/proxy/tool-loop-stream.js.map +1 -0
- package/dist/proxy/types.d.ts +138 -0
- package/dist/proxy/types.d.ts.map +1 -0
- package/dist/proxy/types.js +5 -0
- package/dist/proxy/types.js.map +1 -0
- package/dist/proxy/wrap-client.d.ts +47 -0
- package/dist/proxy/wrap-client.d.ts.map +1 -0
- package/dist/proxy/wrap-client.js +70 -0
- package/dist/proxy/wrap-client.js.map +1 -0
- package/dist/recognizers/address.d.ts +2 -0
- package/dist/recognizers/address.d.ts.map +1 -0
- package/dist/recognizers/address.js +23 -0
- package/dist/recognizers/address.js.map +1 -0
- package/dist/recognizers/base.d.ts +78 -0
- package/dist/recognizers/base.d.ts.map +1 -0
- package/dist/recognizers/base.js +100 -0
- package/dist/recognizers/base.js.map +1 -0
- package/dist/recognizers/bic-swift.d.ts +10 -0
- package/dist/recognizers/bic-swift.d.ts.map +1 -0
- package/dist/recognizers/bic-swift.js +107 -0
- package/dist/recognizers/bic-swift.js.map +1 -0
- package/dist/recognizers/credit-card.d.ts +32 -0
- package/dist/recognizers/credit-card.d.ts.map +1 -0
- package/dist/recognizers/credit-card.js +160 -0
- package/dist/recognizers/credit-card.js.map +1 -0
- package/dist/recognizers/custom-id.d.ts +28 -0
- package/dist/recognizers/custom-id.d.ts.map +1 -0
- package/dist/recognizers/custom-id.js +116 -0
- package/dist/recognizers/custom-id.js.map +1 -0
- package/dist/recognizers/date.d.ts +10 -0
- package/dist/recognizers/date.d.ts.map +1 -0
- package/dist/recognizers/date.js +228 -0
- package/dist/recognizers/date.js.map +1 -0
- package/dist/recognizers/email.d.ts +10 -0
- package/dist/recognizers/email.d.ts.map +1 -0
- package/dist/recognizers/email.js +75 -0
- package/dist/recognizers/email.js.map +1 -0
- package/dist/recognizers/iban.d.ts +14 -0
- package/dist/recognizers/iban.d.ts.map +1 -0
- package/dist/recognizers/iban.js +67 -0
- package/dist/recognizers/iban.js.map +1 -0
- package/dist/recognizers/index.d.ts +25 -0
- package/dist/recognizers/index.d.ts.map +1 -0
- package/dist/recognizers/index.js +53 -0
- package/dist/recognizers/index.js.map +1 -0
- package/dist/recognizers/ip-address.d.ts +14 -0
- package/dist/recognizers/ip-address.d.ts.map +1 -0
- package/dist/recognizers/ip-address.js +183 -0
- package/dist/recognizers/ip-address.js.map +1 -0
- package/dist/recognizers/phone.d.ts +10 -0
- package/dist/recognizers/phone.d.ts.map +1 -0
- package/dist/recognizers/phone.js +145 -0
- package/dist/recognizers/phone.js.map +1 -0
- package/dist/recognizers/postal-code.d.ts +16 -0
- package/dist/recognizers/postal-code.d.ts.map +1 -0
- package/dist/recognizers/postal-code.js +42 -0
- package/dist/recognizers/postal-code.js.map +1 -0
- package/dist/recognizers/registry.d.ts +59 -0
- package/dist/recognizers/registry.d.ts.map +1 -0
- package/dist/recognizers/registry.js +113 -0
- package/dist/recognizers/registry.js.map +1 -0
- package/dist/recognizers/secrets/api-key.d.ts +6 -0
- package/dist/recognizers/secrets/api-key.d.ts.map +1 -0
- package/dist/recognizers/secrets/api-key.js +40 -0
- package/dist/recognizers/secrets/api-key.js.map +1 -0
- package/dist/recognizers/secrets/aws-credentials.d.ts +7 -0
- package/dist/recognizers/secrets/aws-credentials.d.ts.map +1 -0
- package/dist/recognizers/secrets/aws-credentials.js +68 -0
- package/dist/recognizers/secrets/aws-credentials.js.map +1 -0
- package/dist/recognizers/secrets/config-secret.d.ts +8 -0
- package/dist/recognizers/secrets/config-secret.d.ts.map +1 -0
- package/dist/recognizers/secrets/config-secret.js +59 -0
- package/dist/recognizers/secrets/config-secret.js.map +1 -0
- package/dist/recognizers/secrets/connection-string.d.ts +6 -0
- package/dist/recognizers/secrets/connection-string.d.ts.map +1 -0
- package/dist/recognizers/secrets/connection-string.js +40 -0
- package/dist/recognizers/secrets/connection-string.js.map +1 -0
- package/dist/recognizers/secrets/env-var.d.ts +8 -0
- package/dist/recognizers/secrets/env-var.d.ts.map +1 -0
- package/dist/recognizers/secrets/env-var.js +54 -0
- package/dist/recognizers/secrets/env-var.js.map +1 -0
- package/dist/recognizers/secrets/index.d.ts +22 -0
- package/dist/recognizers/secrets/index.d.ts.map +1 -0
- package/dist/recognizers/secrets/index.js +41 -0
- package/dist/recognizers/secrets/index.js.map +1 -0
- package/dist/recognizers/secrets/jwt.d.ts +6 -0
- package/dist/recognizers/secrets/jwt.d.ts.map +1 -0
- package/dist/recognizers/secrets/jwt.js +47 -0
- package/dist/recognizers/secrets/jwt.js.map +1 -0
- package/dist/recognizers/secrets/key-patterns.d.ts +10 -0
- package/dist/recognizers/secrets/key-patterns.d.ts.map +1 -0
- package/dist/recognizers/secrets/key-patterns.js +15 -0
- package/dist/recognizers/secrets/key-patterns.js.map +1 -0
- package/dist/recognizers/secrets/literal-value.d.ts +10 -0
- package/dist/recognizers/secrets/literal-value.d.ts.map +1 -0
- package/dist/recognizers/secrets/literal-value.js +48 -0
- package/dist/recognizers/secrets/literal-value.js.map +1 -0
- package/dist/recognizers/secrets/private-key.d.ts +6 -0
- package/dist/recognizers/secrets/private-key.d.ts.map +1 -0
- package/dist/recognizers/secrets/private-key.js +16 -0
- package/dist/recognizers/secrets/private-key.js.map +1 -0
- package/dist/recognizers/url.d.ts +14 -0
- package/dist/recognizers/url.d.ts.map +1 -0
- package/dist/recognizers/url.js +121 -0
- package/dist/recognizers/url.js.map +1 -0
- package/dist/storage/browser.d.ts +13 -0
- package/dist/storage/browser.d.ts.map +1 -0
- package/dist/storage/browser.js +13 -0
- package/dist/storage/browser.js.map +1 -0
- package/dist/storage/in-memory.d.ts +60 -0
- package/dist/storage/in-memory.d.ts.map +1 -0
- package/dist/storage/in-memory.js +108 -0
- package/dist/storage/in-memory.js.map +1 -0
- package/dist/storage/index.d.ts +11 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +11 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/indexeddb.d.ts +69 -0
- package/dist/storage/indexeddb.d.ts.map +1 -0
- package/dist/storage/indexeddb.js +274 -0
- package/dist/storage/indexeddb.js.map +1 -0
- package/dist/storage/session-base.d.ts +34 -0
- package/dist/storage/session-base.d.ts.map +1 -0
- package/dist/storage/session-base.js +122 -0
- package/dist/storage/session-base.js.map +1 -0
- package/dist/storage/session.d.ts +19 -0
- package/dist/storage/session.d.ts.map +1 -0
- package/dist/storage/session.js +31 -0
- package/dist/storage/session.js.map +1 -0
- package/dist/storage/sqlite.d.ts +80 -0
- package/dist/storage/sqlite.d.ts.map +1 -0
- package/dist/storage/sqlite.js +255 -0
- package/dist/storage/sqlite.js.map +1 -0
- package/dist/storage/types.d.ts +208 -0
- package/dist/storage/types.d.ts.map +1 -0
- package/dist/storage/types.js +6 -0
- package/dist/storage/types.js.map +1 -0
- package/dist/streaming/anonymizer-stream.d.ts +63 -0
- package/dist/streaming/anonymizer-stream.d.ts.map +1 -0
- package/dist/streaming/anonymizer-stream.js +184 -0
- package/dist/streaming/anonymizer-stream.js.map +1 -0
- package/dist/streaming/index.d.ts +9 -0
- package/dist/streaming/index.d.ts.map +1 -0
- package/dist/streaming/index.js +8 -0
- package/dist/streaming/index.js.map +1 -0
- package/dist/streaming/sentence-buffer.d.ts +78 -0
- package/dist/streaming/sentence-buffer.d.ts.map +1 -0
- package/dist/streaming/sentence-buffer.js +239 -0
- package/dist/streaming/sentence-buffer.js.map +1 -0
- package/dist/streaming/stream-factory.d.ts +38 -0
- package/dist/streaming/stream-factory.d.ts.map +1 -0
- package/dist/streaming/stream-factory.js +69 -0
- package/dist/streaming/stream-factory.js.map +1 -0
- package/dist/streaming/types.d.ts +121 -0
- package/dist/streaming/types.d.ts.map +1 -0
- package/dist/streaming/types.js +5 -0
- package/dist/streaming/types.js.map +1 -0
- package/dist/types/index.d.ts +269 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +95 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/pii-types.d.ts +64 -0
- package/dist/types/pii-types.d.ts.map +1 -0
- package/dist/types/pii-types.js +153 -0
- package/dist/types/pii-types.js.map +1 -0
- package/dist/utils/iban-checksum.d.ts +23 -0
- package/dist/utils/iban-checksum.d.ts.map +1 -0
- package/dist/utils/iban-checksum.js +106 -0
- package/dist/utils/iban-checksum.js.map +1 -0
- package/dist/utils/index.d.ts +11 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +11 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/json-walk.d.ts +32 -0
- package/dist/utils/json-walk.d.ts.map +1 -0
- package/dist/utils/json-walk.js +78 -0
- package/dist/utils/json-walk.js.map +1 -0
- package/dist/utils/luhn.d.ts +17 -0
- package/dist/utils/luhn.d.ts.map +1 -0
- package/dist/utils/luhn.js +55 -0
- package/dist/utils/luhn.js.map +1 -0
- package/dist/utils/offsets.d.ts +86 -0
- package/dist/utils/offsets.d.ts.map +1 -0
- package/dist/utils/offsets.js +124 -0
- package/dist/utils/offsets.js.map +1 -0
- package/dist/utils/path.d.ts +34 -0
- package/dist/utils/path.d.ts.map +1 -0
- package/dist/utils/path.js +96 -0
- package/dist/utils/path.js.map +1 -0
- package/dist/utils/regex.d.ts +11 -0
- package/dist/utils/regex.d.ts.map +1 -0
- package/dist/utils/regex.js +14 -0
- package/dist/utils/regex.js.map +1 -0
- package/dist/utils/storage-browser.d.ts +51 -0
- package/dist/utils/storage-browser.d.ts.map +1 -0
- package/dist/utils/storage-browser.js +381 -0
- package/dist/utils/storage-browser.js.map +1 -0
- package/dist/utils/storage-node.d.ts +51 -0
- package/dist/utils/storage-node.d.ts.map +1 -0
- package/dist/utils/storage-node.js +153 -0
- package/dist/utils/storage-node.js.map +1 -0
- package/dist/utils/storage.browser.d.ts +75 -0
- package/dist/utils/storage.browser.d.ts.map +1 -0
- package/dist/utils/storage.browser.js +69 -0
- package/dist/utils/storage.browser.js.map +1 -0
- package/dist/utils/storage.d.ts +73 -0
- package/dist/utils/storage.d.ts.map +1 -0
- package/dist/utils/storage.js +69 -0
- package/dist/utils/storage.js.map +1 -0
- package/index.d.ts +11 -0
- package/index.js +7 -0
- package/package.json +55 -5
package/README.en.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# pi-rehydra
|
|
2
|
+
|
|
3
|
+
Scrub detected secrets from Pi conversations before the main LLM request.
|
|
4
|
+
|
|
5
|
+
[中文](./README.md)
|
|
6
|
+
|
|
7
|
+
This extension intercepts the conversation between [Pi](https://pi.dev) and the LLM. Secrets from your `.env` files are replaced with placeholders before they leave your machine, and transparently restored before any tool (shell commands, file writes, etc.) executes locally.
|
|
8
|
+
|
|
9
|
+
It uses Pi's `ExtensionAPI` events: `context_with_system`, `tool_call`, `tool_result`, `message_end`, and `session_start` / `session_shutdown`.
|
|
10
|
+
|
|
11
|
+
Detection and rehydration are local. The model only sees placeholders; your tools always see real values.
|
|
12
|
+
|
|
13
|
+
## Install
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
pi install npm:pi-rehydra
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Pi writes the package entry to `~/.pi/agent/settings.json`. Edit that file to add extension options:
|
|
20
|
+
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"packages": [
|
|
24
|
+
{
|
|
25
|
+
"source": "npm:pi-rehydra"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"rehydra": {
|
|
29
|
+
"envFiles": [".env", ".env.local"],
|
|
30
|
+
"redactValues": ["sk-live-abc123..."]
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Every key under `rehydra` is an extension option: `envFiles`, `redactValues`, `minValueLength`, `disableTypes`, `locale`, `vcsIdentities`, `policy`, `anonymizer`, `tagFormat`. `envFiles` defaults to `["**/.env*"]`, skipping `node_modules`, `.git`, and symlinks.
|
|
36
|
+
|
|
37
|
+
## How it works
|
|
38
|
+
|
|
39
|
+
| Event | Effect |
|
|
40
|
+
|---|---|
|
|
41
|
+
| `session_start` | Instantiate the anonymizer, build the session map, parse the `rehydra` config |
|
|
42
|
+
| `context_with_system` | Anonymize all request messages and inject the rehydra instruction when needed |
|
|
43
|
+
| `tool_call` | Restore PII tags in tool arguments before local execution |
|
|
44
|
+
| `tool_result` | Anonymize the completed tool result before it re-enters model context |
|
|
45
|
+
| `message_end` | Rewrite the final assistant message so PII tags are replaced with real values |
|
|
46
|
+
| `session_shutdown` | Dispose of the anonymizer and session registry |
|
|
47
|
+
|
|
48
|
+
## Limitations
|
|
49
|
+
|
|
50
|
+
- Model calls that bypass these hooks (rare, e.g. user-initiated notes) are not intercepted.
|
|
51
|
+
- `URL` and `IP_ADDRESS` are disabled by default; re-enable with `disableTypes: []`.
|
|
52
|
+
- This extension cannot guarantee that title or compaction summaries stay sanitized — disable title agents if you need titles to be human-readable.
|
|
53
|
+
|
|
54
|
+
## License
|
|
55
|
+
|
|
56
|
+
MIT
|
package/README.md
CHANGED
|
@@ -1,3 +1,56 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
# pi-rehydra
|
|
2
|
+
|
|
3
|
+
在主 LLM 请求发出之前,脱敏 Pi 对话中检测到的密钥。
|
|
4
|
+
|
|
5
|
+
[English](./README.en.md)
|
|
6
|
+
|
|
7
|
+
这个扩展拦截 [Pi](https://pi.dev) 与 LLM 之间的对话。你的 `.env` 文件中的密钥在离开本机前被替换为占位符,并在工具(shell 命令、文件写入等)在本地执行前透明还原。
|
|
8
|
+
|
|
9
|
+
它依赖 Pi 的 `ExtensionAPI`:`context_with_system`、`tool_call`、`tool_result`、`message_end`、`session_start` / `session_shutdown`。
|
|
10
|
+
|
|
11
|
+
脱敏和还原都在本地进行;模型只用占位符推理,工具始终拿到真实值。
|
|
12
|
+
|
|
13
|
+
## 安装
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
pi install npm:pi-rehydra
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
Pi 会在 `~/.pi/agent/settings.json` 写入包声明。然后编辑该文件添加扩展配置:
|
|
20
|
+
|
|
21
|
+
```json
|
|
22
|
+
{
|
|
23
|
+
"packages": [
|
|
24
|
+
{
|
|
25
|
+
"source": "npm:pi-rehydra"
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
"rehydra": {
|
|
29
|
+
"envFiles": [".env", ".env.local"],
|
|
30
|
+
"redactValues": ["sk-live-abc123..."]
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
`rehydra` 键的所有字段都是扩展配置项:`envFiles`、`redactValues`、`minValueLength`、`disableTypes`、`locale`、`vcsIdentities`、`policy`、`anonymizer`、`tagFormat`。`envFiles` 默认是 `["**/.env*"]`,会跳过 `node_modules`、`.git` 和符号链接。
|
|
36
|
+
|
|
37
|
+
## 工作原理
|
|
38
|
+
|
|
39
|
+
| 钩子 | 作用 |
|
|
40
|
+
|---|---|
|
|
41
|
+
| `session_start` | 实例化匿名器、装配会话映射、解析 `rehydra` 配置 |
|
|
42
|
+
| `context_with_system` | 匿名化模型请求前的所有消息,并按需追加 rehydra 指令 |
|
|
43
|
+
| `tool_call` | 在工具执行前还原工具入参中的 PII 标签 |
|
|
44
|
+
| `tool_result` | 在结果返回给模型前脱敏真实 PII |
|
|
45
|
+
| `message_end` | 改写最终回答的文本块,把 PII 标签还原为真实值 |
|
|
46
|
+
| `session_shutdown` | 释放匿名器与会话注册表 |
|
|
47
|
+
|
|
48
|
+
## 限制
|
|
49
|
+
|
|
50
|
+
- 不会拦截用户在 UI 里粘贴的、且未走这些 hook 的模型调用。
|
|
51
|
+
- 默认禁用 `URL` 和 `IP_ADDRESS`;通过 `disableTypes: []` 重新启用。
|
|
52
|
+
- Pi 扩展无法保证消息标题(title)与元数据走相同的 hook,因此这些字段仍可能包含占位符。建议在脱敏时启用完整的 PII 脱敏策略。
|
|
53
|
+
|
|
54
|
+
## License
|
|
55
|
+
|
|
56
|
+
MIT
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rehydra Module - Browser Entry Point
|
|
3
|
+
* Browser-safe entry point for on-device PII anonymization
|
|
4
|
+
*
|
|
5
|
+
* This module excludes Node.js-specific exports like SQLitePIIStorageProvider.
|
|
6
|
+
* For full functionality including SQLite, use the main entry point or import from 'rehydra/node'.
|
|
7
|
+
*/
|
|
8
|
+
export * from "./types/index.js";
|
|
9
|
+
export type { Recognizer } from "./recognizers/index.js";
|
|
10
|
+
export { RegexRecognizer, RecognizerRegistry, createDefaultRegistry, createRegistry, getGlobalRegistry, emailRecognizer, phoneRecognizer, ukPostalCodeRecognizer, streetAddressRecognizer, UK_POSTAL_CODE_PATTERN, isValidUKPostalCode, normalizeUKPostalCode, ibanRecognizer, bicSwiftRecognizer, creditCardRecognizer, ipAddressRecognizer, urlRecognizer, createCustomIdRecognizer, createCaseIdRecognizer, createCustomerIdRecognizer, } from "./recognizers/index.js";
|
|
11
|
+
export { NERModel, NERModelStub, createNERModel, createNERModelStub, WordPieceTokenizer, loadVocabFromFile, parseVocab, loadRuntime, detectRuntime, getRuntimeType, type INERModel, type NERModelConfig, type NERPrediction, type NERModelMode, type DownloadProgressCallback, type OrtSessionOptions, MODEL_REGISTRY, getModelCacheDir, isModelDownloaded, downloadModel, ensureModel, clearModelCache, listDownloadedModels, } from "./ner/index.js";
|
|
12
|
+
export { prenormalize, resolveEntities, tagEntities, validateOutput, generateTag, parseTag, rehydrate, enrichSemantics, inferGender, classifyLocation, getDatabaseStats, hasName, hasLocation, isSemanticDataAvailable, isSemanticDataDownloaded, getSemanticDataCacheDir, getDataDirectory, downloadSemanticData, ensureSemanticData, initializeSemanticData, loadSemanticData, clearSemanticData, clearSemanticDataCache, getSemanticDataInfo, SEMANTIC_DATA_FILES, extractTitle, extractTitlesFromSpans, mergeAdjacentTitleSpans, getTitlesForLanguage, getAllTitles, startsWithTitle, isOnlyTitle, type SemanticDataFileInfo, type EnricherConfig, type GenderResult, type LocationResult, type TitleExtractionResult, } from "./pipeline/index.js";
|
|
13
|
+
export type { KeyProvider } from "./crypto/index.js";
|
|
14
|
+
export { encryptPIIMap, decryptPIIMap, generateKey, deriveKey, generateSalt, InMemoryKeyProvider, ConfigKeyProvider, validateKey, secureCompare, uint8ArrayToBase64, base64ToUint8Array, } from "./crypto/index.js";
|
|
15
|
+
export { getStorageProvider, isNode, isBrowser, resetStorageProvider, setStorageProvider, type StorageProvider, } from "#storage";
|
|
16
|
+
export { type PIIStorageProvider, type PIIMapMetadata, type StoredPIIMap, type ListOptions, type AnonymizerSession, InMemoryPIIStorageProvider, IndexedDBPIIStorageProvider, } from "./storage/browser.js";
|
|
17
|
+
export { join as pathJoin, dirname as pathDirname, basename as pathBasename, normalize as pathNormalize, extname as pathExtname, isAbsolute as pathIsAbsolute, } from "./utils/path.js";
|
|
18
|
+
import { Anonymizer as AnonymizerCore, anonymize as anonymizeCore, anonymizeRegexOnly as anonymizeRegexOnlyCore, anonymizeWithNER as anonymizeWithNERCore, type AnonymizerConfig, type NERConfig } from "./core/index.js";
|
|
19
|
+
export type { AnonymizerConfig, NERConfig };
|
|
20
|
+
/**
|
|
21
|
+
* Anonymizer instance
|
|
22
|
+
* Main class for performing PII anonymization
|
|
23
|
+
*/
|
|
24
|
+
export declare class Anonymizer extends AnonymizerCore {
|
|
25
|
+
constructor(config?: AnonymizerConfig);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Creates an anonymizer with the specified configuration
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* ```typescript
|
|
32
|
+
* // Regex-only (no NER)
|
|
33
|
+
* const anonymizer = createAnonymizer();
|
|
34
|
+
*
|
|
35
|
+
* // With NER (auto-downloads model on first use)
|
|
36
|
+
* const anonymizer = createAnonymizer({
|
|
37
|
+
* ner: { mode: 'quantized' }
|
|
38
|
+
* });
|
|
39
|
+
*
|
|
40
|
+
* // With NER and progress callback
|
|
41
|
+
* const anonymizer = createAnonymizer({
|
|
42
|
+
* ner: {
|
|
43
|
+
* mode: 'standard',
|
|
44
|
+
* onStatus: (status) => console.log(status),
|
|
45
|
+
* onDownloadProgress: (p) => console.log(`${p.file}: ${p.percent}%`)
|
|
46
|
+
* }
|
|
47
|
+
* });
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export declare function createAnonymizer(config?: AnonymizerConfig): Anonymizer;
|
|
51
|
+
export declare const anonymize: typeof anonymizeCore;
|
|
52
|
+
export declare const anonymizeRegexOnly: typeof anonymizeRegexOnlyCore;
|
|
53
|
+
export declare const anonymizeWithNER: typeof anonymizeWithNERCore;
|
|
54
|
+
//# sourceMappingURL=browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|
package/dist/browser.js
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rehydra Module - Browser Entry Point
|
|
3
|
+
* Browser-safe entry point for on-device PII anonymization
|
|
4
|
+
*
|
|
5
|
+
* This module excludes Node.js-specific exports like SQLitePIIStorageProvider.
|
|
6
|
+
* For full functionality including SQLite, use the main entry point or import from 'rehydra/node'.
|
|
7
|
+
*/
|
|
8
|
+
// Re-export types
|
|
9
|
+
export * from "./types/index.js";
|
|
10
|
+
export { RegexRecognizer, RecognizerRegistry, createDefaultRegistry, createRegistry, getGlobalRegistry, emailRecognizer, phoneRecognizer, ukPostalCodeRecognizer, streetAddressRecognizer, UK_POSTAL_CODE_PATTERN, isValidUKPostalCode, normalizeUKPostalCode, ibanRecognizer, bicSwiftRecognizer, creditCardRecognizer, ipAddressRecognizer, urlRecognizer, createCustomIdRecognizer, createCaseIdRecognizer, createCustomerIdRecognizer, } from "./recognizers/index.js";
|
|
11
|
+
// Re-export NER components
|
|
12
|
+
export { NERModel, NERModelStub, createNERModel, createNERModelStub, WordPieceTokenizer, loadVocabFromFile, parseVocab, loadRuntime, detectRuntime, getRuntimeType, MODEL_REGISTRY, getModelCacheDir, isModelDownloaded, downloadModel, ensureModel, clearModelCache, listDownloadedModels, } from "./ner/index.js";
|
|
13
|
+
// Re-export pipeline components
|
|
14
|
+
export { prenormalize, resolveEntities, tagEntities, validateOutput, generateTag, parseTag, rehydrate, enrichSemantics, inferGender, classifyLocation, getDatabaseStats, hasName, hasLocation,
|
|
15
|
+
// Semantic data loader exports
|
|
16
|
+
isSemanticDataAvailable, isSemanticDataDownloaded, getSemanticDataCacheDir, getDataDirectory, downloadSemanticData, ensureSemanticData, initializeSemanticData, loadSemanticData, clearSemanticData, clearSemanticDataCache, getSemanticDataInfo, SEMANTIC_DATA_FILES,
|
|
17
|
+
// Title extractor exports
|
|
18
|
+
extractTitle, extractTitlesFromSpans, mergeAdjacentTitleSpans, getTitlesForLanguage, getAllTitles, startsWithTitle, isOnlyTitle, } from "./pipeline/index.js";
|
|
19
|
+
export { encryptPIIMap, decryptPIIMap, generateKey, deriveKey, generateSalt, InMemoryKeyProvider, ConfigKeyProvider, validateKey, secureCompare, uint8ArrayToBase64, base64ToUint8Array, } from "./crypto/index.js";
|
|
20
|
+
// Re-export storage utilities (file system abstraction)
|
|
21
|
+
export { getStorageProvider, isNode, isBrowser, resetStorageProvider, setStorageProvider, } from "#storage";
|
|
22
|
+
// Re-export PII storage providers (browser-safe only - no SQLite)
|
|
23
|
+
export { InMemoryPIIStorageProvider, IndexedDBPIIStorageProvider,
|
|
24
|
+
// Note: SQLitePIIStorageProvider is NOT exported in browser build
|
|
25
|
+
// Import from 'rehydra/storage/sqlite' if needed in Node.js
|
|
26
|
+
} from "./storage/browser.js";
|
|
27
|
+
// Re-export path utilities
|
|
28
|
+
export { join as pathJoin, dirname as pathDirname, basename as pathBasename, normalize as pathNormalize, extname as pathExtname, isAbsolute as pathIsAbsolute, } from "./utils/path.js";
|
|
29
|
+
// Import core anonymizer components
|
|
30
|
+
import { Anonymizer as AnonymizerCore, anonymize as anonymizeCore, anonymizeRegexOnly as anonymizeRegexOnlyCore, anonymizeWithNER as anonymizeWithNERCore, } from "./core/index.js";
|
|
31
|
+
// Import session implementation
|
|
32
|
+
import { AnonymizerSessionImpl } from "./storage/session-base.js";
|
|
33
|
+
/**
|
|
34
|
+
* Anonymizer instance
|
|
35
|
+
* Main class for performing PII anonymization
|
|
36
|
+
*/
|
|
37
|
+
export class Anonymizer extends AnonymizerCore {
|
|
38
|
+
constructor(config = {}) {
|
|
39
|
+
super(config, (anonymizer, sessionId, storage, keyProvider) => {
|
|
40
|
+
return new AnonymizerSessionImpl(anonymizer, sessionId, storage, keyProvider);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Creates an anonymizer with the specified configuration
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```typescript
|
|
49
|
+
* // Regex-only (no NER)
|
|
50
|
+
* const anonymizer = createAnonymizer();
|
|
51
|
+
*
|
|
52
|
+
* // With NER (auto-downloads model on first use)
|
|
53
|
+
* const anonymizer = createAnonymizer({
|
|
54
|
+
* ner: { mode: 'quantized' }
|
|
55
|
+
* });
|
|
56
|
+
*
|
|
57
|
+
* // With NER and progress callback
|
|
58
|
+
* const anonymizer = createAnonymizer({
|
|
59
|
+
* ner: {
|
|
60
|
+
* mode: 'standard',
|
|
61
|
+
* onStatus: (status) => console.log(status),
|
|
62
|
+
* onDownloadProgress: (p) => console.log(`${p.file}: ${p.percent}%`)
|
|
63
|
+
* }
|
|
64
|
+
* });
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
export function createAnonymizer(config) {
|
|
68
|
+
return new Anonymizer(config);
|
|
69
|
+
}
|
|
70
|
+
// Re-export standalone functions from core
|
|
71
|
+
export const anonymize = anonymizeCore;
|
|
72
|
+
export const anonymizeRegexOnly = anonymizeRegexOnlyCore;
|
|
73
|
+
export const anonymizeWithNER = anonymizeWithNERCore;
|
|
74
|
+
//# sourceMappingURL=browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Core Anonymizer Module
|
|
3
|
+
* Shared implementation for both browser and Node.js entry points
|
|
4
|
+
*/
|
|
5
|
+
import { AnonymizationResult, AnonymizationPolicy, AnonymizationMode, SemanticConfig, SecretsConfig, PIIType, TagFormat } from "../types/index.js";
|
|
6
|
+
import { RecognizerRegistry } from "../recognizers/index.js";
|
|
7
|
+
import { type INERModel, type OrtSessionOptions } from "../ner/index.js";
|
|
8
|
+
import { type NERModelMode, type DownloadProgressCallback } from "../ner/model-manager.js";
|
|
9
|
+
import { type RawPIIMap } from "../pipeline/tagger.js";
|
|
10
|
+
import { type KeyProvider } from "../crypto/index.js";
|
|
11
|
+
export type { RawPIIMap } from "../pipeline/tagger.js";
|
|
12
|
+
import type { PIIStorageProvider, AnonymizerSession } from "../storage/types.js";
|
|
13
|
+
export type { PIIStorageProvider, AnonymizerSession };
|
|
14
|
+
/**
|
|
15
|
+
* NER configuration options
|
|
16
|
+
*/
|
|
17
|
+
export interface NERConfig {
|
|
18
|
+
/**
|
|
19
|
+
* NER model mode:
|
|
20
|
+
* - 'standard': Full-size multilingual model (~1.1 GB)
|
|
21
|
+
* - 'quantized': Smaller quantized model (~280 MB)
|
|
22
|
+
* - 'disabled': No NER, regex-only detection
|
|
23
|
+
* - 'custom': Use custom model paths
|
|
24
|
+
*/
|
|
25
|
+
mode: NERModelMode;
|
|
26
|
+
/**
|
|
27
|
+
* Custom model path (required when mode is 'custom')
|
|
28
|
+
*/
|
|
29
|
+
modelPath?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Custom vocab path (required when mode is 'custom')
|
|
32
|
+
*/
|
|
33
|
+
vocabPath?: string;
|
|
34
|
+
/**
|
|
35
|
+
* Whether to auto-download model if not present
|
|
36
|
+
* @default true
|
|
37
|
+
*/
|
|
38
|
+
autoDownload?: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Callback for download progress
|
|
41
|
+
*/
|
|
42
|
+
onDownloadProgress?: DownloadProgressCallback;
|
|
43
|
+
/**
|
|
44
|
+
* Callback for status messages
|
|
45
|
+
*/
|
|
46
|
+
onStatus?: (status: string) => void;
|
|
47
|
+
/**
|
|
48
|
+
* Confidence thresholds per PII type (0.0 - 1.0)
|
|
49
|
+
* Overrides default thresholds for specified types
|
|
50
|
+
* @example { PERSON: 0.8, ORG: 0.7 }
|
|
51
|
+
*/
|
|
52
|
+
thresholds?: Partial<Record<PIIType, number>>;
|
|
53
|
+
/**
|
|
54
|
+
* ONNX session options for performance tuning
|
|
55
|
+
* Allows customizing execution providers, threading, and graph optimizations
|
|
56
|
+
* @example { executionProviders: ['CoreMLExecutionProvider', 'CPUExecutionProvider'] }
|
|
57
|
+
*/
|
|
58
|
+
sessionOptions?: OrtSessionOptions;
|
|
59
|
+
/**
|
|
60
|
+
* Inference backend: 'local' (default) or 'inference-server'
|
|
61
|
+
* - 'local': Local ONNX Runtime inference (CPU)
|
|
62
|
+
* - 'inference-server': Remote GPU inference via HTTP (enterprise deployment)
|
|
63
|
+
* @default 'local'
|
|
64
|
+
*/
|
|
65
|
+
backend?: "local" | "inference-server";
|
|
66
|
+
/**
|
|
67
|
+
* Inference server URL (required when backend is 'inference-server')
|
|
68
|
+
* @example 'http://localhost:8080'
|
|
69
|
+
*/
|
|
70
|
+
inferenceServerUrl?: string;
|
|
71
|
+
/**
|
|
72
|
+
* Inference server request timeout in milliseconds (default: 30000)
|
|
73
|
+
* Only used when backend is 'inference-server'
|
|
74
|
+
*/
|
|
75
|
+
inferenceServerTimeout?: number;
|
|
76
|
+
/**
|
|
77
|
+
* Enable case-insensitive fallback for detecting lowercase names.
|
|
78
|
+
* Runs a second NER pass on title-cased text and merges new detections.
|
|
79
|
+
* Doubles NER inference time but catches names like "tom" that the
|
|
80
|
+
* case-sensitive model would otherwise miss.
|
|
81
|
+
* @default false
|
|
82
|
+
*/
|
|
83
|
+
caseFallback?: boolean;
|
|
84
|
+
/**
|
|
85
|
+
* Confidence penalty multiplier for case-fallback detections (0.0 - 1.0).
|
|
86
|
+
* Applied as: confidence * caseFallbackPenalty
|
|
87
|
+
* @default 0.85
|
|
88
|
+
*/
|
|
89
|
+
caseFallbackPenalty?: number;
|
|
90
|
+
/**
|
|
91
|
+
* Number of content tokens shared by adjacent windows when a long input is
|
|
92
|
+
* split into multiple inference windows. Larger overlap improves recall for
|
|
93
|
+
* entities near window boundaries at the cost of more windows.
|
|
94
|
+
* @default min(64, floor((maxLength - 2) / 4))
|
|
95
|
+
*/
|
|
96
|
+
windowOverlapTokens?: number;
|
|
97
|
+
/**
|
|
98
|
+
* Maximum number of inference windows per input. Inputs that tokenize to
|
|
99
|
+
* more windows are scanned only up to this bound (onWindowCap fires once per
|
|
100
|
+
* capped inference pass — so twice for one input when caseFallback runs a
|
|
101
|
+
* second pass). Guards against unbounded inference cost on very large
|
|
102
|
+
* opaque payloads (e.g. multi-megabyte base64 attachments).
|
|
103
|
+
* @default undefined (unbounded — full coverage)
|
|
104
|
+
*/
|
|
105
|
+
maxWindowsPerInput?: number;
|
|
106
|
+
/**
|
|
107
|
+
* Called when an input exceeds maxWindowsPerInput and its tail is left
|
|
108
|
+
* unscanned by NER. Callers should log/meter this — it is a coverage
|
|
109
|
+
* reduction, not an error. When absent, a console warning is emitted.
|
|
110
|
+
* `inputLength` is the full input character count.
|
|
111
|
+
*/
|
|
112
|
+
onWindowCap?: (info: {
|
|
113
|
+
scannedWindows: number;
|
|
114
|
+
inputLength: number;
|
|
115
|
+
}) => void;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Anonymizer configuration
|
|
119
|
+
*/
|
|
120
|
+
export interface AnonymizerConfig {
|
|
121
|
+
/** Recognizer registry (uses default if not provided) */
|
|
122
|
+
registry?: RecognizerRegistry;
|
|
123
|
+
/**
|
|
124
|
+
* Anonymization mode:
|
|
125
|
+
* - 'pseudonymize': Reversible anonymization with encrypted PII map (default)
|
|
126
|
+
* - 'anonymize': Irreversible anonymization without PII map
|
|
127
|
+
* @default 'pseudonymize'
|
|
128
|
+
*/
|
|
129
|
+
mode?: AnonymizationMode;
|
|
130
|
+
/**
|
|
131
|
+
* NER configuration
|
|
132
|
+
* @default { mode: 'disabled' }
|
|
133
|
+
*/
|
|
134
|
+
ner?: NERConfig;
|
|
135
|
+
/**
|
|
136
|
+
* Semantic enrichment configuration
|
|
137
|
+
* Enables MT-friendly PII tags with gender/scope attributes
|
|
138
|
+
* @default { enabled: false }
|
|
139
|
+
*/
|
|
140
|
+
semantic?: SemanticConfig;
|
|
141
|
+
/**
|
|
142
|
+
* Secrets/credentials detection configuration
|
|
143
|
+
* Detects API keys, private keys, JWTs, connection strings, etc.
|
|
144
|
+
* @default { enabled: false }
|
|
145
|
+
*/
|
|
146
|
+
secrets?: SecretsConfig;
|
|
147
|
+
/** Key provider for encryption (generates random key if not provided) */
|
|
148
|
+
keyProvider?: KeyProvider;
|
|
149
|
+
/**
|
|
150
|
+
* PII storage provider for automatic session-based persistence
|
|
151
|
+
* When provided, enables the session() method for automatic PII map storage
|
|
152
|
+
*/
|
|
153
|
+
piiStorageProvider?: PIIStorageProvider;
|
|
154
|
+
/** Default policy — merged with SDK defaults, so partial overrides are safe */
|
|
155
|
+
defaultPolicy?: Partial<AnonymizationPolicy>;
|
|
156
|
+
/** Model version string */
|
|
157
|
+
modelVersion?: string;
|
|
158
|
+
/** Policy version string */
|
|
159
|
+
policyVersion?: string;
|
|
160
|
+
/**
|
|
161
|
+
* Optional callback for validation warnings emitted during anonymization.
|
|
162
|
+
* When not provided, warnings are silently ignored.
|
|
163
|
+
* Previously these were logged via console.warn, which pollutes stdout
|
|
164
|
+
* in TUI-based editors.
|
|
165
|
+
*/
|
|
166
|
+
onValidationWarning?: (warnings: Array<{
|
|
167
|
+
code: string;
|
|
168
|
+
message: string;
|
|
169
|
+
}>) => void;
|
|
170
|
+
/**
|
|
171
|
+
* Tag format configuration for PII placeholder tags.
|
|
172
|
+
* Controls the delimiters and keyword used in tags.
|
|
173
|
+
* @default { open: "<", close: "/>", keyword: "PII" } (XML-style)
|
|
174
|
+
* @example { open: "[[", close: "]]" } for bracket-style tags
|
|
175
|
+
*/
|
|
176
|
+
tagFormat?: TagFormat;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* Session implementation factory type
|
|
180
|
+
*/
|
|
181
|
+
export type SessionFactory = (anonymizer: Anonymizer, sessionId: string, storage: PIIStorageProvider, keyProvider: KeyProvider) => AnonymizerSession;
|
|
182
|
+
/**
|
|
183
|
+
* Anonymizer instance
|
|
184
|
+
* Main class for performing PII anonymization
|
|
185
|
+
*/
|
|
186
|
+
export declare class Anonymizer {
|
|
187
|
+
private registry;
|
|
188
|
+
private nerModel;
|
|
189
|
+
private nerConfig;
|
|
190
|
+
private semanticConfig;
|
|
191
|
+
private secretsConfig;
|
|
192
|
+
private mode;
|
|
193
|
+
private keyProvider;
|
|
194
|
+
private piiStorageProvider;
|
|
195
|
+
private defaultPolicy;
|
|
196
|
+
private modelVersion;
|
|
197
|
+
private policyVersion;
|
|
198
|
+
private initialized;
|
|
199
|
+
private semanticDataReady;
|
|
200
|
+
private sessionFactory;
|
|
201
|
+
private onValidationWarning;
|
|
202
|
+
private tagFormat;
|
|
203
|
+
constructor(config?: AnonymizerConfig, sessionFactory?: SessionFactory);
|
|
204
|
+
/**
|
|
205
|
+
* Returns the resolved tag format configuration
|
|
206
|
+
*/
|
|
207
|
+
get resolvedTagFormat(): TagFormat;
|
|
208
|
+
/**
|
|
209
|
+
* Initializes the anonymizer
|
|
210
|
+
* Downloads NER model and semantic data if needed and loads them
|
|
211
|
+
*/
|
|
212
|
+
initialize(): Promise<void>;
|
|
213
|
+
/**
|
|
214
|
+
* Anonymizes text, replacing PII with placeholder tags
|
|
215
|
+
* @param text - Input text to anonymize
|
|
216
|
+
* @param locale - Optional locale hint (e.g., 'de-DE', 'en-US')
|
|
217
|
+
* @param policy - Optional policy override
|
|
218
|
+
* @param existingPiiMap - Optional existing PII map for session-level ID reuse
|
|
219
|
+
* @returns Anonymization result with anonymized text and encrypted PII map
|
|
220
|
+
*/
|
|
221
|
+
anonymize(text: string, locale?: string, policy?: Partial<AnonymizationPolicy>, existingPiiMap?: RawPIIMap): Promise<AnonymizationResult>;
|
|
222
|
+
/**
|
|
223
|
+
* Disposes of resources
|
|
224
|
+
*/
|
|
225
|
+
dispose(): Promise<void>;
|
|
226
|
+
/**
|
|
227
|
+
* Gets the recognizer registry
|
|
228
|
+
*/
|
|
229
|
+
getRegistry(): RecognizerRegistry;
|
|
230
|
+
/**
|
|
231
|
+
* Gets the NER model
|
|
232
|
+
*/
|
|
233
|
+
getNERModel(): INERModel | null;
|
|
234
|
+
/**
|
|
235
|
+
* Whether the anonymizer is initialized
|
|
236
|
+
*/
|
|
237
|
+
get isInitialized(): boolean;
|
|
238
|
+
/**
|
|
239
|
+
* Creates a session-bound interface for automatic PII map storage
|
|
240
|
+
*
|
|
241
|
+
* @param sessionId - Unique identifier for this session/conversation
|
|
242
|
+
* @returns AnonymizerSession that auto-saves on anonymize and auto-loads on rehydrate
|
|
243
|
+
* @throws Error if piiStorageProvider was not configured
|
|
244
|
+
*
|
|
245
|
+
* @example
|
|
246
|
+
* ```typescript
|
|
247
|
+
* const session = anonymizer.session('chat-123');
|
|
248
|
+
*
|
|
249
|
+
* // Anonymize - auto-saves to storage
|
|
250
|
+
* const result = await session.anonymize('Hello John Smith!');
|
|
251
|
+
*
|
|
252
|
+
* // Rehydrate - auto-loads and decrypts
|
|
253
|
+
* const original = await session.rehydrate(translatedText);
|
|
254
|
+
* ```
|
|
255
|
+
*/
|
|
256
|
+
session(sessionId: string): AnonymizerSession;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Creates an anonymizer with the specified configuration
|
|
260
|
+
*
|
|
261
|
+
* @example
|
|
262
|
+
* ```typescript
|
|
263
|
+
* // Regex-only (no NER)
|
|
264
|
+
* const anonymizer = createAnonymizer();
|
|
265
|
+
*
|
|
266
|
+
* // With NER (auto-downloads model on first use)
|
|
267
|
+
* const anonymizer = createAnonymizer({
|
|
268
|
+
* ner: { mode: 'quantized' }
|
|
269
|
+
* });
|
|
270
|
+
*
|
|
271
|
+
* // With NER and progress callback
|
|
272
|
+
* const anonymizer = createAnonymizer({
|
|
273
|
+
* ner: {
|
|
274
|
+
* mode: 'standard',
|
|
275
|
+
* onStatus: (status) => console.log(status),
|
|
276
|
+
* onDownloadProgress: (p) => console.log(`${p.file}: ${p.percent}%`)
|
|
277
|
+
* }
|
|
278
|
+
* });
|
|
279
|
+
* ```
|
|
280
|
+
*/
|
|
281
|
+
export declare function createAnonymizer(config?: AnonymizerConfig, sessionFactory?: SessionFactory): Anonymizer;
|
|
282
|
+
/**
|
|
283
|
+
* Convenience function for one-off anonymization
|
|
284
|
+
* Creates a temporary anonymizer with default settings (regex-only)
|
|
285
|
+
*/
|
|
286
|
+
export declare function anonymize(text: string, locale?: string, policy?: Partial<AnonymizationPolicy>): Promise<AnonymizationResult>;
|
|
287
|
+
/**
|
|
288
|
+
* Quick regex-only anonymization (no NER, faster)
|
|
289
|
+
*/
|
|
290
|
+
export declare function anonymizeRegexOnly(text: string, policy?: Partial<AnonymizationPolicy>): Promise<AnonymizationResult>;
|
|
291
|
+
/**
|
|
292
|
+
* Full anonymization with NER
|
|
293
|
+
* Auto-downloads the quantized model on first use
|
|
294
|
+
*
|
|
295
|
+
* @example
|
|
296
|
+
* ```typescript
|
|
297
|
+
* const result = await anonymizeWithNER(
|
|
298
|
+
* 'Contact John Smith at john@example.com',
|
|
299
|
+
* {
|
|
300
|
+
* mode: 'quantized',
|
|
301
|
+
* onStatus: console.log
|
|
302
|
+
* }
|
|
303
|
+
* );
|
|
304
|
+
* ```
|
|
305
|
+
*/
|
|
306
|
+
export declare function anonymizeWithNER(text: string, nerConfig: Omit<NERConfig, "mode"> & {
|
|
307
|
+
mode?: "standard" | "quantized";
|
|
308
|
+
}, policy?: Partial<AnonymizationPolicy>): Promise<AnonymizationResult>;
|
|
309
|
+
//# sourceMappingURL=anonymizer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anonymizer.d.ts","sourceRoot":"","sources":["../../src/core/anonymizer.ts"],"names":[],"mappings":"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"}
|