rehydra 0.7.0 → 0.9.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.
Files changed (82) hide show
  1. package/README.md +40 -3
  2. package/dist/cli/commands/anonymize.d.ts.map +1 -1
  3. package/dist/cli/commands/anonymize.js +3 -0
  4. package/dist/cli/commands/anonymize.js.map +1 -1
  5. package/dist/cli/commands/inspect.d.ts.map +1 -1
  6. package/dist/cli/commands/inspect.js +2 -0
  7. package/dist/cli/commands/inspect.js.map +1 -1
  8. package/dist/cli/commands/proxy.d.ts +3 -0
  9. package/dist/cli/commands/proxy.d.ts.map +1 -0
  10. package/dist/cli/commands/proxy.js +259 -0
  11. package/dist/cli/commands/proxy.js.map +1 -0
  12. package/dist/cli/commands/rehydrate.d.ts.map +1 -1
  13. package/dist/cli/commands/rehydrate.js +3 -1
  14. package/dist/cli/commands/rehydrate.js.map +1 -1
  15. package/dist/cli/main.d.ts +6 -0
  16. package/dist/cli/main.d.ts.map +1 -1
  17. package/dist/cli/main.js +38 -5
  18. package/dist/cli/main.js.map +1 -1
  19. package/dist/cli/utils/tag-format.d.ts +4 -0
  20. package/dist/cli/utils/tag-format.d.ts.map +1 -0
  21. package/dist/cli/utils/tag-format.js +12 -0
  22. package/dist/cli/utils/tag-format.js.map +1 -0
  23. package/dist/core/anonymizer.d.ts +13 -1
  24. package/dist/core/anonymizer.d.ts.map +1 -1
  25. package/dist/core/anonymizer.js +15 -3
  26. package/dist/core/anonymizer.js.map +1 -1
  27. package/dist/opencode-plugin/plugin.d.ts.map +1 -1
  28. package/dist/opencode-plugin/plugin.js +16 -12
  29. package/dist/opencode-plugin/plugin.js.map +1 -1
  30. package/dist/opencode-plugin/types.d.ts +3 -1
  31. package/dist/opencode-plugin/types.d.ts.map +1 -1
  32. package/dist/pipeline/tagger.d.ts +17 -14
  33. package/dist/pipeline/tagger.d.ts.map +1 -1
  34. package/dist/pipeline/tagger.js +126 -45
  35. package/dist/pipeline/tagger.js.map +1 -1
  36. package/dist/pipeline/validator.d.ts +2 -2
  37. package/dist/pipeline/validator.d.ts.map +1 -1
  38. package/dist/pipeline/validator.js +43 -22
  39. package/dist/pipeline/validator.js.map +1 -1
  40. package/dist/proxy/index.d.ts +1 -1
  41. package/dist/proxy/index.d.ts.map +1 -1
  42. package/dist/proxy/index.js +1 -1
  43. package/dist/proxy/index.js.map +1 -1
  44. package/dist/proxy/providers/anthropic.d.ts.map +1 -1
  45. package/dist/proxy/providers/anthropic.js +29 -0
  46. package/dist/proxy/providers/anthropic.js.map +1 -1
  47. package/dist/proxy/proxy-server.d.ts +9 -1
  48. package/dist/proxy/proxy-server.d.ts.map +1 -1
  49. package/dist/proxy/proxy-server.js +2 -2
  50. package/dist/proxy/proxy-server.js.map +1 -1
  51. package/dist/proxy/rehydra-fetch.d.ts.map +1 -1
  52. package/dist/proxy/rehydra-fetch.js +28 -14
  53. package/dist/proxy/rehydra-fetch.js.map +1 -1
  54. package/dist/proxy/rehydra-proxy.d.ts.map +1 -1
  55. package/dist/proxy/rehydra-proxy.js +22 -0
  56. package/dist/proxy/rehydra-proxy.js.map +1 -1
  57. package/dist/proxy/system-instruction.d.ts +9 -0
  58. package/dist/proxy/system-instruction.d.ts.map +1 -1
  59. package/dist/proxy/system-instruction.js +24 -10
  60. package/dist/proxy/system-instruction.js.map +1 -1
  61. package/dist/proxy/types.d.ts +9 -0
  62. package/dist/proxy/types.d.ts.map +1 -1
  63. package/dist/storage/session-base.d.ts +2 -1
  64. package/dist/storage/session-base.d.ts.map +1 -1
  65. package/dist/storage/session-base.js +1 -1
  66. package/dist/storage/session-base.js.map +1 -1
  67. package/dist/streaming/sentence-buffer.d.ts.map +1 -1
  68. package/dist/streaming/sentence-buffer.js +4 -3
  69. package/dist/streaming/sentence-buffer.js.map +1 -1
  70. package/dist/types/index.d.ts +18 -0
  71. package/dist/types/index.d.ts.map +1 -1
  72. package/dist/types/index.js +8 -0
  73. package/dist/types/index.js.map +1 -1
  74. package/dist/utils/index.d.ts +1 -0
  75. package/dist/utils/index.d.ts.map +1 -1
  76. package/dist/utils/index.js +1 -0
  77. package/dist/utils/index.js.map +1 -1
  78. package/dist/utils/regex.d.ts +11 -0
  79. package/dist/utils/regex.d.ts.map +1 -0
  80. package/dist/utils/regex.js +14 -0
  81. package/dist/utils/regex.js.map +1 -0
  82. package/package.json +1 -1
package/README.md CHANGED
@@ -29,6 +29,33 @@
29
29
 
30
30
  ## Quick Start
31
31
 
32
+ ### Proxy — protect your AI coding tools
33
+
34
+ Run a local proxy that anonymizes PII before it reaches the LLM and rehydrates responses. Works with Claude Code, Cursor, and any OpenAI/Anthropic-compatible client.
35
+
36
+ ```bash
37
+ npx @rehydra/cli proxy claude --api-key sk-ant-...
38
+ ```
39
+
40
+ ```
41
+ rehydra proxy
42
+
43
+ Provider anthropic (https://api.anthropic.com)
44
+ Listening http://127.0.0.1:8787
45
+ NER quantized
46
+
47
+ Configure your tools:
48
+
49
+ Claude Code
50
+ ANTHROPIC_BASE_URL=http://127.0.0.1:8787 claude
51
+ ```
52
+
53
+ Names, emails, phone numbers, and other PII are replaced with placeholders in transit. Tool results (file reads, bash output) are anonymized. Tool call arguments (file writes, bash commands) are rehydrated. The LLM never sees real PII.
54
+
55
+ > **Note:** The proxy requires an [Anthropic API key](https://console.anthropic.com/settings/keys). Claude Max/Pro subscriptions use OAuth which `api.anthropic.com` does not support through proxies.
56
+
57
+ ### Library — embed PII anonymization in your app
58
+
32
59
  ```typescript
33
60
  import { anonymize } from 'rehydra';
34
61
 
@@ -40,10 +67,22 @@ const { anonymizedText } = await anonymize(
40
67
 
41
68
  Works in **Node.js**, **Bun**, and **browsers**. No data leaves your machine.
42
69
 
70
+ ### OpenCode plugin — scrub secrets from your coding agent
71
+
72
+ ```bash
73
+ npm install @rehydra/opencode
74
+ ```
75
+
76
+ ```json
77
+ { "plugin": ["@rehydra/opencode"] }
78
+ ```
79
+
80
+ Intercepts the conversation between [OpenCode](https://github.com/sst/opencode) and the LLM. Secrets from `.env` files are replaced with placeholders before they leave your machine and restored before tools execute.
81
+
43
82
  ## Features
44
83
 
45
84
  - **Regex + NER detection** — emails, phones, IBANs, credit cards, names, orgs, locations, and more
46
- - **LLM Proxy** — drop-in `fetch` wrapper or standalone proxy server for OpenAI, Anthropic, and compatible APIs
85
+ - **LLM Proxy** — CLI proxy or drop-in `fetch` wrapper for OpenAI, Anthropic, and compatible APIs
47
86
  - **Streaming** — Transform stream with low-latency mode for real-time LLM token streams
48
87
  - **Sessions** — consistent PII IDs across multi-message conversations with persistent storage
49
88
  - **Encryption** — AES-256-GCM via Web Crypto API
@@ -54,8 +93,6 @@ Works in **Node.js**, **Bun**, and **browsers**. No data leaves your machine.
54
93
  ```typescript
55
94
  import {
56
95
  createAnonymizer,
57
- decryptPIIMap,
58
- rehydrate,
59
96
  InMemoryKeyProvider,
60
97
  SQLitePIIStorageProvider,
61
98
  } from 'rehydra';
@@ -1 +1 @@
1
- {"version":3,"file":"anonymize.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/anonymize.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAiGhD,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,CA2BjB"}
1
+ {"version":3,"file":"anonymize.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/anonymize.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAkGhD,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,CA2BjB"}
@@ -6,6 +6,7 @@ import { CLIError } from "../utils/errors.js";
6
6
  import { readInput, writeOutput, getInputStream, getOutputStream } from "../utils/io.js";
7
7
  import { formatText, formatJson, formatNdjson, formatStats } from "../utils/format.js";
8
8
  import { savePIIMapFile } from "../utils/pii-map-file.js";
9
+ import { buildTagFormatFromOptions } from "../utils/tag-format.js";
9
10
  function parseTypes(typesStr) {
10
11
  const allValues = new Set(Object.values(PIIType));
11
12
  const types = new Set();
@@ -109,6 +110,7 @@ async function anonymizeBatch(options, nerMode, anonMode, format, keyProvider, k
109
110
  const config = {
110
111
  mode: anonMode,
111
112
  keyProvider,
113
+ tagFormat: buildTagFormatFromOptions(options),
112
114
  };
113
115
  const nerConfig = buildNerConfig(nerMode, options.quiet);
114
116
  if (nerConfig !== undefined) {
@@ -178,6 +180,7 @@ async function anonymizeFile(filePath, options, nerMode, anonMode, format, keyPr
178
180
  const anonymizerConfig = {
179
181
  mode: anonMode,
180
182
  keyProvider,
183
+ tagFormat: buildTagFormatFromOptions(options),
181
184
  };
182
185
  const nerConfig = buildNerConfig(nerMode, options.quiet);
183
186
  if (nerConfig !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"anonymize.js","sourceRoot":"","sources":["../../../src/cli/commands/anonymize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anonymize.js","sourceRoot":"","sources":["../../../src/cli/commands/anonymize.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/inspect.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA8BhD,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,CAsEjB"}
1
+ {"version":3,"file":"inspect.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/inspect.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA+BhD,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,CAuEjB"}
@@ -3,6 +3,7 @@ import { SECRET_PII_TYPES } from "../../types/pii-types.js";
3
3
  import { CLIError } from "../utils/errors.js";
4
4
  import { readInput, writeOutput } from "../utils/io.js";
5
5
  import { formatInspect, formatStats } from "../utils/format.js";
6
+ import { buildTagFormatFromOptions } from "../utils/tag-format.js";
6
7
  function parseTypes(typesStr) {
7
8
  const allValues = new Set(Object.values(PIIType));
8
9
  const types = new Set();
@@ -33,6 +34,7 @@ export async function inspectCommand(filePath, options) {
33
34
  const config = {
34
35
  mode: "pseudonymize",
35
36
  keyProvider: new InMemoryKeyProvider(),
37
+ tagFormat: buildTagFormatFromOptions(options),
36
38
  };
37
39
  if (nerMode !== "disabled") {
38
40
  config.ner = {
@@ -1 +1 @@
1
- {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../../src/cli/commands/inspect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"inspect.js","sourceRoot":"","sources":["../../../src/cli/commands/inspect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ParsedOptions } from "../main.js";
2
+ export declare function proxyCommand(provider: string | undefined, options: ParsedOptions): Promise<number>;
3
+ //# sourceMappingURL=proxy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/proxy.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AA4DhD,wBAAsB,YAAY,CAChC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,CAwLjB"}
@@ -0,0 +1,259 @@
1
+ import { createServer } from "node:http";
2
+ import { PIIType, mergePolicy, generateKey, uint8ArrayToBase64, ConfigKeyProvider, InMemoryPIIStorageProvider, isModelDownloaded, downloadModel, } from "../../index.js";
3
+ import { SECRET_PII_TYPES } from "../../types/pii-types.js";
4
+ import { createRehydraProxy, incomingMessageToRequest, writeResponse, } from "../../proxy/index.js";
5
+ import { CLIError } from "../utils/errors.js";
6
+ import { bold, dim, cyan, green, yellow } from "../utils/color.js";
7
+ import { formatProgress, writeProgress, clearProgress } from "../utils/progress.js";
8
+ import { buildTagFormatFromOptions } from "../utils/tag-format.js";
9
+ const PROVIDER_UPSTREAMS = {
10
+ openai: "https://api.openai.com",
11
+ anthropic: "https://api.anthropic.com",
12
+ claude: "https://api.anthropic.com",
13
+ };
14
+ const PROVIDER_CANONICAL = {
15
+ openai: "openai",
16
+ anthropic: "anthropic",
17
+ claude: "anthropic",
18
+ };
19
+ function getConnectionHints(provider, baseUrl, hasApiKey) {
20
+ const lines = [];
21
+ if (provider === "anthropic") {
22
+ if (hasApiKey) {
23
+ lines.push(` ${bold("Claude Code")}`, ` ANTHROPIC_BASE_URL=${baseUrl} claude`);
24
+ }
25
+ else {
26
+ lines.push(` ${bold("Claude Code")} ${dim("(requires --api-key)")}`, ` ANTHROPIC_BASE_URL=${baseUrl} claude`);
27
+ }
28
+ lines.push("", ` ${bold("Cursor")}`, ` Settings ${dim("→")} Models ${dim("→")} Anthropic ${dim("→")} Override Base URL`, ` ${dim(baseUrl)}`);
29
+ }
30
+ else {
31
+ lines.push(` ${bold("Environment variable")}`, ` export OPENAI_BASE_URL=${baseUrl}/v1`, "", ` ${bold("Cursor")}`, ` Settings ${dim("→")} Models ${dim("→")} OpenAI ${dim("→")} Override Base URL`, ` ${dim(baseUrl + "/v1")}`, "", ` ${bold("OpenAI SDK")}`, ` ${dim(`new OpenAI({ baseURL: "${baseUrl}/v1" })`)}`);
32
+ }
33
+ return lines.join("\n");
34
+ }
35
+ export async function proxyCommand(provider, options) {
36
+ if (provider === undefined) {
37
+ throw new CLIError("Missing provider argument.\n\n" +
38
+ "Usage: rehydra proxy <provider>\n\n" +
39
+ "Providers:\n" +
40
+ " openai OpenAI API\n" +
41
+ " anthropic Anthropic API\n" +
42
+ " claude Alias for anthropic");
43
+ }
44
+ const providerLower = provider.toLowerCase();
45
+ const canonical = PROVIDER_CANONICAL[providerLower];
46
+ if (canonical === undefined) {
47
+ throw new CLIError(`Unknown provider: ${provider}\nSupported: openai, anthropic, claude`);
48
+ }
49
+ const upstream = options.upstream ?? PROVIDER_UPSTREAMS[providerLower];
50
+ const port = parseInt(options.port ?? "8787", 10);
51
+ const host = "127.0.0.1";
52
+ if (isNaN(port) || port < 1 || port > 65535) {
53
+ throw new CLIError(`Invalid port: ${options.port}`);
54
+ }
55
+ // Key setup
56
+ const envKey = process.env["REHYDRA_KEY"];
57
+ const flagKey = options.key;
58
+ const externalKey = flagKey ?? envKey;
59
+ let keyProvider;
60
+ if (externalKey !== undefined) {
61
+ keyProvider = new ConfigKeyProvider(externalKey);
62
+ }
63
+ else {
64
+ const keyBytes = generateKey();
65
+ keyProvider = new ConfigKeyProvider(uint8ArrayToBase64(keyBytes));
66
+ }
67
+ const storage = new InMemoryPIIStorageProvider();
68
+ const nerMode = validateNerMode(options.ner);
69
+ // Policy
70
+ let policy;
71
+ if (options.types !== undefined) {
72
+ const enabledTypes = parseTypes(options.types);
73
+ const policyPartial = { enabledTypes };
74
+ if (options.secrets) {
75
+ const regexEnabledTypes = new Set(enabledTypes);
76
+ for (const t of SECRET_PII_TYPES) {
77
+ enabledTypes.add(t);
78
+ regexEnabledTypes.add(t);
79
+ }
80
+ policyPartial.regexEnabledTypes = regexEnabledTypes;
81
+ }
82
+ policy = mergePolicy(policyPartial);
83
+ }
84
+ // LLM API key — from --api-key flag or LLM_API_KEY env var
85
+ const llmApiKey = options["api-key"] ?? process.env["LLM_API_KEY"];
86
+ // Build shared proxy config (without NER initially)
87
+ const baseProxyConfig = {
88
+ upstream,
89
+ provider: canonical,
90
+ keyProvider,
91
+ piiStorageProvider: storage,
92
+ anonymizer: {
93
+ ...(options.secrets ? { secrets: { enabled: true } } : {}),
94
+ tagFormat: buildTagFormatFromOptions(options),
95
+ },
96
+ policy,
97
+ locale: options.locale,
98
+ apiKey: llmApiKey,
99
+ };
100
+ // Start with regex-only proxy (instant startup)
101
+ let handler = createRehydraProxy(baseProxyConfig);
102
+ // Create HTTP server with swappable handler
103
+ const server = createServer((req, res) => {
104
+ void (async () => {
105
+ try {
106
+ const webRequest = incomingMessageToRequest(req, host, port);
107
+ const webResponse = await handler(webRequest);
108
+ await writeResponse(res, webResponse);
109
+ }
110
+ catch (error) {
111
+ res.writeHead(502, { "Content-Type": "application/json" });
112
+ res.end(JSON.stringify({
113
+ error: "proxy_error",
114
+ message: error instanceof Error ? error.message : "Unknown proxy error",
115
+ }));
116
+ }
117
+ })();
118
+ });
119
+ await new Promise((resolve, reject) => {
120
+ server.on("error", reject);
121
+ server.listen(port, host, () => {
122
+ resolve();
123
+ });
124
+ });
125
+ // Print startup banner
126
+ const baseUrl = `http://${host}:${port}`;
127
+ const nerEnabled = nerMode !== "disabled";
128
+ let linesAfterNer = 0;
129
+ if (!options.quiet) {
130
+ const nerLine = ` NER ${nerEnabled ? yellow("loading...") : dim("disabled")}`;
131
+ const bannerBottom = [
132
+ ...(llmApiKey !== undefined ? [` API key ${green("configured")}`] : []),
133
+ ...(options.secrets ? [` Secrets ${green("enabled")}`] : []),
134
+ "",
135
+ ` ${bold("Configure your tools:")}`,
136
+ "",
137
+ getConnectionHints(canonical, baseUrl, llmApiKey !== undefined),
138
+ "",
139
+ ` ${dim("Ctrl+C to stop")}`,
140
+ "",
141
+ ];
142
+ const banner = [
143
+ "",
144
+ ` ${bold("rehydra proxy")}`,
145
+ "",
146
+ ` Provider ${cyan(canonical)} ${dim(`(${upstream})`)}`,
147
+ ` Listening ${green(baseUrl)}`,
148
+ nerLine,
149
+ ...bannerBottom,
150
+ ].join("\n");
151
+ process.stderr.write(banner);
152
+ // Count lines after NER line for in-place cursor update
153
+ linesAfterNer = bannerBottom.join("\n").split("\n").length;
154
+ }
155
+ // Helper to update the NER status line in-place
156
+ const updateNerLine = (text) => {
157
+ if (options.quiet)
158
+ return;
159
+ if (process.stderr.isTTY && linesAfterNer > 0) {
160
+ process.stderr.write(`\x1b[${linesAfterNer}A\x1b[2K\r${text}\x1b[${linesAfterNer}B\r`);
161
+ }
162
+ };
163
+ // Background: download and warm up NER model, then swap handler
164
+ if (nerEnabled) {
165
+ void loadNerAndSwap(nerMode, options, baseProxyConfig).then((nerProxy) => {
166
+ if (nerProxy !== null) {
167
+ handler = nerProxy;
168
+ updateNerLine(` NER ${green(nerMode)}`);
169
+ }
170
+ else {
171
+ updateNerLine(` NER ${yellow("failed")} ${dim("(regex-only)")}`);
172
+ }
173
+ });
174
+ }
175
+ // Wait for shutdown signal
176
+ await new Promise((resolve) => {
177
+ const shutdown = () => {
178
+ if (!options.quiet) {
179
+ process.stderr.write(dim("\nShutting down...\n"));
180
+ }
181
+ resolve();
182
+ };
183
+ process.on("SIGINT", shutdown);
184
+ process.on("SIGTERM", shutdown);
185
+ });
186
+ await new Promise((resolve, reject) => {
187
+ server.close((err) => {
188
+ if (err !== undefined)
189
+ reject(err);
190
+ else
191
+ resolve();
192
+ });
193
+ });
194
+ return 0;
195
+ }
196
+ /**
197
+ * Downloads the NER model (if needed), creates a NER-enabled proxy, and returns it.
198
+ * Returns null on failure (proxy continues with regex-only).
199
+ */
200
+ async function loadNerAndSwap(nerMode, options, baseConfig) {
201
+ const modelMode = nerMode === "standard" ? "standard" : "quantized";
202
+ try {
203
+ // Download model if not cached
204
+ const alreadyDownloaded = await isModelDownloaded(modelMode);
205
+ if (!alreadyDownloaded) {
206
+ if (!options.quiet) {
207
+ process.stderr.write(` ${dim(`Downloading NER model (${modelMode})...`)}\n`);
208
+ }
209
+ const onProgress = (progress) => {
210
+ if (!options.quiet) {
211
+ writeProgress(formatProgress(progress.file, progress.percent));
212
+ }
213
+ };
214
+ await downloadModel(modelMode, onProgress);
215
+ clearProgress();
216
+ }
217
+ // Create NER-enabled proxy
218
+ const nerProxy = createRehydraProxy({
219
+ ...baseConfig,
220
+ anonymizer: {
221
+ ...baseConfig.anonymizer,
222
+ ner: {
223
+ mode: nerMode,
224
+ autoDownload: false, // already downloaded
225
+ },
226
+ },
227
+ });
228
+ return nerProxy;
229
+ }
230
+ catch {
231
+ return null;
232
+ }
233
+ }
234
+ // --- helpers ---
235
+ function validateNerMode(mode) {
236
+ const valid = ["disabled", "quantized", "standard"];
237
+ if (!valid.includes(mode)) {
238
+ throw new CLIError(`Invalid NER mode: ${mode}\nValid modes: ${valid.join(", ")}`);
239
+ }
240
+ return mode;
241
+ }
242
+ function parseTypes(typesStr) {
243
+ const allValues = new Set(Object.values(PIIType));
244
+ const types = new Set();
245
+ for (const raw of typesStr.split(",")) {
246
+ const t = raw.trim().toUpperCase();
247
+ if (t === "")
248
+ continue;
249
+ if (!allValues.has(t)) {
250
+ throw new CLIError(`Unknown PII type: ${raw.trim()}\nValid types: ${[...allValues].join(", ")}`);
251
+ }
252
+ types.add(t);
253
+ }
254
+ if (types.size === 0) {
255
+ throw new CLIError("--types must specify at least one PII type");
256
+ }
257
+ return types;
258
+ }
259
+ //# sourceMappingURL=proxy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"proxy.js","sourceRoot":"","sources":["../../../src/cli/commands/proxy.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rehydrate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/rehydrate.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAKhD,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,CAkCjB"}
1
+ {"version":3,"file":"rehydrate.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/rehydrate.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAMhD,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,MAAM,CAAC,CAmCjB"}
@@ -2,6 +2,7 @@ import { decryptPIIMap, base64ToUint8Array, rehydrate, } from "../../index.js";
2
2
  import { CLIError } from "../utils/errors.js";
3
3
  import { readInput, writeOutput } from "../utils/io.js";
4
4
  import { loadPIIMapFile } from "../utils/pii-map-file.js";
5
+ import { buildTagFormatFromOptions } from "../utils/tag-format.js";
5
6
  export async function rehydrateCommand(filePath, options) {
6
7
  const input = await readInput(filePath);
7
8
  const piiMapFile = await loadPIIMapFile(options["pii-map"]);
@@ -21,7 +22,8 @@ export async function rehydrateCommand(filePath, options) {
21
22
  catch {
22
23
  throw new CLIError("Failed to decrypt PII map. Check that the encryption key is correct.");
23
24
  }
24
- const output = rehydrate(input, rawPiiMap);
25
+ const tagFormat = buildTagFormatFromOptions(options);
26
+ const output = rehydrate(input, rawPiiMap, false, tagFormat);
25
27
  // Ensure trailing newline
26
28
  const finalOutput = output.endsWith("\n") ? output : output + "\n";
27
29
  await writeOutput(finalOutput, options.output);
@@ -1 +1 @@
1
- {"version":3,"file":"rehydrate.js","sourceRoot":"","sources":["../../../src/cli/commands/rehydrate.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,SAAS,GACV,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAA4B,EAC5B,OAAsB;IAEtB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAE5D,2BAA2B;IAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAC5B,MAAM,WAAW,GAAG,OAAO,IAAI,MAAM,CAAC;IACtC,MAAM,SAAS,GAAG,WAAW,IAAI,UAAU,CAAC,GAAG,CAAC;IAEhD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,QAAQ,CAChB,uGAAuG,CACxG,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAE/C,IAAI,SAAoB,CAAC;IACzB,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,QAAQ,CAChB,sEAAsE,CACvE,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAE3C,0BAA0B;IAC1B,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;IACnE,MAAM,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/C,OAAO,CAAC,CAAC;AACX,CAAC"}
1
+ {"version":3,"file":"rehydrate.js","sourceRoot":"","sources":["../../../src/cli/commands/rehydrate.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,SAAS,GACV,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,QAA4B,EAC5B,OAAsB;IAEtB,MAAM,KAAK,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;IAE5D,2BAA2B;IAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;IAC5B,MAAM,WAAW,GAAG,OAAO,IAAI,MAAM,CAAC;IACtC,MAAM,SAAS,GAAG,WAAW,IAAI,UAAU,CAAC,GAAG,CAAC;IAEhD,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,IAAI,QAAQ,CAChB,uGAAuG,CACxG,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAE/C,IAAI,SAAoB,CAAC;IACzB,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC/D,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,QAAQ,CAChB,sEAAsE,CACvE,CAAC;IACJ,CAAC;IAED,MAAM,SAAS,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACrD,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAE7D,0BAA0B;IAC1B,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;IACnE,MAAM,WAAW,CAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAE/C,OAAO,CAAC,CAAC;AACX,CAAC"}
@@ -11,6 +11,12 @@ export interface ParsedOptions {
11
11
  "env-file"?: string;
12
12
  verbose: boolean;
13
13
  quiet: boolean;
14
+ port?: string;
15
+ upstream?: string;
16
+ "api-key"?: string;
17
+ "tag-open"?: string;
18
+ "tag-close"?: string;
19
+ "tag-keyword"?: string;
14
20
  }
15
21
  export declare function run(argv?: string[]): Promise<number>;
16
22
  //# sourceMappingURL=main.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB;AAqDD,wBAAsB,GAAG,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,CAuFjF"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/cli/main.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAgED,wBAAsB,GAAG,CAAC,IAAI,GAAE,MAAM,EAA0B,GAAG,OAAO,CAAC,MAAM,CAAC,CA4GjF"}
package/dist/cli/main.js CHANGED
@@ -5,6 +5,7 @@ import { anonymizeCommand } from "./commands/anonymize.js";
5
5
  import { rehydrateCommand } from "./commands/rehydrate.js";
6
6
  import { inspectCommand } from "./commands/inspect.js";
7
7
  import { setupNerCommand } from "./commands/setup-ner.js";
8
+ import { proxyCommand } from "./commands/proxy.js";
8
9
  const require = createRequire(import.meta.url);
9
10
  const pkg = require("../../package.json");
10
11
  const HELP_TEXT = `
@@ -14,10 +15,11 @@ ${bold("USAGE")}
14
15
  rehydra <command> [file] [options]
15
16
 
16
17
  ${bold("COMMANDS")}
17
- anonymize <file> Anonymize a file or stdin
18
- rehydrate <file> Rehydrate a previously anonymized file
19
- inspect <file> Show detected PII without anonymizing (dry run)
20
- setup-ner Download and set up NER model
18
+ anonymize <file> Anonymize a file or stdin
19
+ rehydrate <file> Rehydrate a previously anonymized file
20
+ inspect <file> Show detected PII without anonymizing (dry run)
21
+ proxy <provider> Start a PII-filtering proxy for LLM APIs
22
+ setup-ner Download and set up NER model
21
23
 
22
24
  ${bold("OPTIONS")}
23
25
  -o, --output <file> Output file (default: stdout)
@@ -30,6 +32,12 @@ ${bold("OPTIONS")}
30
32
  --locale <locale> Locale hint for detection (e.g., de-DE)
31
33
  --secrets Enable secrets/credentials detection
32
34
  --env-file <file> .env file path for literal value redaction
35
+ -p, --port <port> Proxy port (default: 8787)
36
+ --upstream <url> Custom upstream URL (overrides provider default)
37
+ --api-key <key> LLM API key (or set LLM_API_KEY env var)
38
+ --tag-open <str> Tag open delimiter (default: "<")
39
+ --tag-close <str> Tag close delimiter (default: "/>")
40
+ --tag-keyword <str> Tag keyword (default: "PII")
33
41
  --no-color Disable colored output
34
42
  --verbose Show detection details
35
43
  -q, --quiet Suppress non-essential output
@@ -52,6 +60,10 @@ ${bold("EXAMPLES")}
52
60
  ${dim("# Inspect detected PII")}
53
61
  rehydra inspect input.txt
54
62
 
63
+ ${dim("# Start a proxy for Claude Code")}
64
+ rehydra proxy claude
65
+ ${dim("# then: export ANTHROPIC_BASE_URL=http://127.0.0.1:8787")}
66
+
55
67
  ${bold("EXIT CODES")}
56
68
  0 Success
57
69
  1 Error
@@ -66,7 +78,7 @@ export async function run(argv = process.argv.slice(2)) {
66
78
  options: {
67
79
  output: { type: "string", short: "o" },
68
80
  format: { type: "string", short: "f", default: "text" },
69
- ner: { type: "string", default: "disabled" },
81
+ ner: { type: "string" },
70
82
  "pii-map": { type: "string", default: ".rehydra-pii-map.json" },
71
83
  key: { type: "string" },
72
84
  types: { type: "string" },
@@ -74,6 +86,12 @@ export async function run(argv = process.argv.slice(2)) {
74
86
  locale: { type: "string" },
75
87
  secrets: { type: "boolean", default: false },
76
88
  "env-file": { type: "string" },
89
+ port: { type: "string", short: "p" },
90
+ upstream: { type: "string" },
91
+ "api-key": { type: "string" },
92
+ "tag-open": { type: "string" },
93
+ "tag-close": { type: "string" },
94
+ "tag-keyword": { type: "string" },
77
95
  "no-color": { type: "boolean", default: false },
78
96
  verbose: { type: "boolean", default: false },
79
97
  quiet: { type: "boolean", short: "q", default: false },
@@ -122,6 +140,12 @@ export async function run(argv = process.argv.slice(2)) {
122
140
  "env-file": values["env-file"],
123
141
  verbose: values["verbose"] === true,
124
142
  quiet: values["quiet"] === true,
143
+ port: values["port"],
144
+ upstream: values["upstream"],
145
+ "api-key": values["api-key"],
146
+ "tag-open": values["tag-open"],
147
+ "tag-close": values["tag-close"],
148
+ "tag-keyword": values["tag-keyword"],
125
149
  };
126
150
  switch (command) {
127
151
  case "anonymize":
@@ -130,6 +154,15 @@ export async function run(argv = process.argv.slice(2)) {
130
154
  return rehydrateCommand(filePath, options);
131
155
  case "inspect":
132
156
  return inspectCommand(filePath, options);
157
+ case "proxy": {
158
+ // Default to NER quantized for proxy (override global default of "disabled")
159
+ // unless the user explicitly passed --ner
160
+ const explicitNer = values["ner"];
161
+ if (explicitNer === undefined) {
162
+ options.ner = "quantized";
163
+ }
164
+ return proxyCommand(filePath, options);
165
+ }
133
166
  case "setup-ner":
134
167
  return setupNerCommand(options);
135
168
  default: