pseudonym-mcp 0.1.0 → 0.2.1
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.md +113 -58
- package/dist/cli.js.map +1 -1
- package/dist/config/manager.d.ts.map +1 -1
- package/dist/config/manager.js.map +1 -1
- package/dist/core/engine.d.ts.map +1 -1
- package/dist/core/engine.js +1 -2
- package/dist/core/engine.js.map +1 -1
- package/dist/languages/pl/rules.d.ts.map +1 -1
- package/dist/languages/pl/rules.js.map +1 -1
- package/dist/setup/check-ollama.d.ts.map +1 -1
- package/dist/setup/check-ollama.js.map +1 -1
- package/package.json +23 -2
package/README.md
CHANGED
|
@@ -37,7 +37,7 @@ Sits between your application and any cloud LLM (Claude, GPT-4, Gemini…). Repl
|
|
|
37
37
|
- The same prompt becomes `"[PERSON:1], SSN [SSN:1], card [CREDIT_CARD:1]"` before it leaves your machine
|
|
38
38
|
- The LLM reasons about the structure and content without ever seeing the real values
|
|
39
39
|
- The response is automatically de-tokenized locally before reaching the user
|
|
40
|
-
- Your GDPR DPA can truthfully state:
|
|
40
|
+
- Your GDPR DPA can truthfully state: _personal data never left the local environment_
|
|
41
41
|
|
|
42
42
|
## GDPR & AI Compliance
|
|
43
43
|
|
|
@@ -47,13 +47,13 @@ pseudonym-mcp directly addresses the regulatory challenges of using cloud AI in
|
|
|
47
47
|
|
|
48
48
|
The EU **General Data Protection Regulation (GDPR)** classifies names, national ID numbers (like SSN or PESEL), bank account numbers (IBAN), email addresses, credit card numbers, and phone numbers as **personal data** under Article 4(1). Sending this data to a cloud LLM provider constitutes **processing** under Article 4(2) and triggers a range of obligations:
|
|
49
49
|
|
|
50
|
-
| GDPR Article | Obligation
|
|
51
|
-
|
|
52
|
-
| Art. 5(1)(c) | **Data minimisation** — only necessary data should be processed
|
|
53
|
-
| Art. 25
|
|
54
|
-
| Art. 32
|
|
55
|
-
| Art. 44
|
|
56
|
-
| Art. 4(5)
|
|
50
|
+
| GDPR Article | Obligation | How pseudonym-mcp helps |
|
|
51
|
+
| ------------ | -------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
|
|
52
|
+
| Art. 5(1)(c) | **Data minimisation** — only necessary data should be processed | Strips PII before transmission; the LLM receives only what it needs to reason |
|
|
53
|
+
| Art. 25 | **Privacy by design and by default** | Pseudonymization layer is built into the MCP transport, not bolted on |
|
|
54
|
+
| Art. 32 | **Security of processing** — appropriate technical measures | Local token substitution is a recognized technical measure under Recital 83 |
|
|
55
|
+
| Art. 44 | **Transfers to third countries** — requires safeguards | If no personal data is transferred, Art. 44 restrictions do not apply |
|
|
56
|
+
| Art. 4(5) | **Pseudonymisation** — explicitly recognized as a protective measure | Tokens are opaque; re-identification requires access to the local mapping store |
|
|
57
57
|
|
|
58
58
|
> **Note:** Pseudonymisation under GDPR (Art. 4(5)) does not equal anonymisation — the data is still personal data in your system. However, it substantially reduces risk and demonstrates compliance with the accountability principle (Art. 5(2)).
|
|
59
59
|
|
|
@@ -77,15 +77,15 @@ While GDPR originates in the EU, pseudonym-mcp is equally relevant for:
|
|
|
77
77
|
|
|
78
78
|
### Sector-specific applicability
|
|
79
79
|
|
|
80
|
-
| Sector
|
|
81
|
-
|
|
82
|
-
| Healthcare
|
|
83
|
-
| Banking & Finance
|
|
84
|
-
| HR & Recruitment
|
|
85
|
-
| Legal
|
|
86
|
-
| Insurance
|
|
87
|
-
| Public Sector (US) | CCPA + state privacy laws
|
|
88
|
-
| Public Sector (PL) | GDPR + UODO + KRI
|
|
80
|
+
| Sector | Relevant regulation | PII types commonly handled |
|
|
81
|
+
| ------------------ | ---------------------------------------- | ------------------------------------- |
|
|
82
|
+
| Healthcare | GDPR + HIPAA + national health data laws | Patient names, SSN, diagnoses |
|
|
83
|
+
| Banking & Finance | GDPR + PCI DSS + PSD2 + DORA | Credit cards, IBAN, SSN, PESEL |
|
|
84
|
+
| HR & Recruitment | GDPR Art. 9 (special categories) | Names, national IDs, contact details |
|
|
85
|
+
| Legal | GDPR + attorney-client privilege | Names, case numbers, personal details |
|
|
86
|
+
| Insurance | GDPR + Solvency II | Personal identifiers, health data |
|
|
87
|
+
| Public Sector (US) | CCPA + state privacy laws | SSN, driver's license numbers |
|
|
88
|
+
| Public Sector (PL) | GDPR + UODO + KRI | PESEL, NIP, REGON |
|
|
89
89
|
|
|
90
90
|
## How it works
|
|
91
91
|
|
|
@@ -140,6 +140,61 @@ Polish (--lang pl):
|
|
|
140
140
|
|
|
141
141
|
The mapping is stored in a session-scoped in-memory store. Each `mask_text` call returns a `session_id`; pass it back to `unmask_text` to restore originals.
|
|
142
142
|
|
|
143
|
+
## Real-world example
|
|
144
|
+
|
|
145
|
+
### Meeting note in Claude Code / Obsidian
|
|
146
|
+
|
|
147
|
+
You have a note:
|
|
148
|
+
|
|
149
|
+
```
|
|
150
|
+
Meeting with Jan Kowalski (PESEL: 90010112318) from Acme sp. z o.o.
|
|
151
|
+
We discussed a contract for 45 000 zł. Contact: jan.kowalski@acme.pl
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
In Claude Code you type:
|
|
155
|
+
|
|
156
|
+
```
|
|
157
|
+
Use mask_text on this note, then summarize the key points of the meeting.
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**pseudonym-mcp replaces PII locally before sending to Claude:**
|
|
161
|
+
|
|
162
|
+
```
|
|
163
|
+
Meeting with [PERSON:1] ([PESEL:1]) from [ORG:1].
|
|
164
|
+
We discussed a contract for 45 000 zł. Contact: [EMAIL:1]
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
**Claude responds (sees tokens only):**
|
|
168
|
+
|
|
169
|
+
```
|
|
170
|
+
Meeting with [PERSON:1] from [ORG:1] covered a contract
|
|
171
|
+
for 45 000 zł. Follow up via [EMAIL:1].
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
**pseudonym-mcp restores originals locally:**
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
Meeting with Jan Kowalski from Acme sp. z o.o. covered
|
|
178
|
+
a contract for 45 000 zł. Follow up via jan.kowalski@acme.pl
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Anthropic / OpenAI never saw any real data. The entire swap happens on your machine.
|
|
182
|
+
|
|
183
|
+
### Obsidian vault with `session_id`
|
|
184
|
+
|
|
185
|
+
```
|
|
186
|
+
# mask the entire vault once — save the session_id
|
|
187
|
+
Use mask_text on my notes — remember the session_id
|
|
188
|
+
|
|
189
|
+
# ask Claude anything across multiple prompts
|
|
190
|
+
Summarize all meetings from Q1
|
|
191
|
+
|
|
192
|
+
# Claude replies with tokens; restore originals
|
|
193
|
+
Use unmask_text with session_id abc123 on the response
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
The `session_id` keeps the token map alive for the entire session — the same `[PERSON:1]` always refers to the same person, no matter how many times they appear across different notes.
|
|
197
|
+
|
|
143
198
|
## Quick Start
|
|
144
199
|
|
|
145
200
|
**Step 1** — Install the package:
|
|
@@ -166,10 +221,10 @@ Restart your client. The `mask_text` and `unmask_text` tools appear automaticall
|
|
|
166
221
|
|
|
167
222
|
## Available Tools
|
|
168
223
|
|
|
169
|
-
| Tool
|
|
170
|
-
|
|
171
|
-
| `mask_text`
|
|
172
|
-
| `unmask_text` | Restore original values from a session. Pass the `session_id` returned by `mask_text`. |
|
|
224
|
+
| Tool | What it does | Example prompt |
|
|
225
|
+
| ------------- | -------------------------------------------------------------------------------------- | --------------------------------------------------------------- |
|
|
226
|
+
| `mask_text` | Pseudonymize PII in text. Returns `masked_text` + `session_id`. | _"Use mask_text on this customer letter before summarizing it"_ |
|
|
227
|
+
| `unmask_text` | Restore original values from a session. Pass the `session_id` returned by `mask_text`. | _"Use unmask_text with session_id X to restore the response"_ |
|
|
173
228
|
|
|
174
229
|
### `mask_text` input
|
|
175
230
|
|
|
@@ -214,14 +269,14 @@ Restart your client. The `mask_text` and `unmask_text` tools appear automaticall
|
|
|
214
269
|
}
|
|
215
270
|
```
|
|
216
271
|
|
|
217
|
-
| Key
|
|
218
|
-
|
|
219
|
-
| `lang`
|
|
220
|
-
| `engines`
|
|
221
|
-
| `ollamaModel`
|
|
222
|
-
| `ollamaBaseUrl`
|
|
223
|
-
| `autoUnmask`
|
|
224
|
-
| `strictValidation` | `true` \| `false`
|
|
272
|
+
| Key | Values | Default | Description |
|
|
273
|
+
| ------------------ | ---------------------------- | ------------------------ | ------------------------------------------------------------------------------------ |
|
|
274
|
+
| `lang` | `en`, `pl` | `en` | Language pack for regex rules |
|
|
275
|
+
| `engines` | `regex` \| `llm` \| `hybrid` | `hybrid` | Which NER engines to run |
|
|
276
|
+
| `ollamaModel` | any Ollama model name | `llama3` | Local LLM for entity detection |
|
|
277
|
+
| `ollamaBaseUrl` | URL | `http://localhost:11434` | Ollama API endpoint |
|
|
278
|
+
| `autoUnmask` | `true` \| `false` | `false` | Auto-restore tokens in LLM responses |
|
|
279
|
+
| `strictValidation` | `true` \| `false` | `true` | Enable checksum / format validation (SSN area check, Luhn for cards, PESEL checksum) |
|
|
225
280
|
|
|
226
281
|
### CLI flags
|
|
227
282
|
|
|
@@ -231,14 +286,14 @@ All config keys can be overridden at startup (highest priority):
|
|
|
231
286
|
pseudonym-mcp --lang en --engines regex --ollama-model llama3 --auto-unmask
|
|
232
287
|
```
|
|
233
288
|
|
|
234
|
-
| Flag
|
|
235
|
-
|
|
236
|
-
| `--lang`
|
|
237
|
-
| `--engines`
|
|
238
|
-
| `--ollama-model`
|
|
239
|
-
| `--ollama-base-url` | Ollama base URL
|
|
240
|
-
| `--config`
|
|
241
|
-
| `--auto-unmask`
|
|
289
|
+
| Flag | Description |
|
|
290
|
+
| ------------------- | ------------------------------------------------------ |
|
|
291
|
+
| `--lang` | Language for regex rules: `en` or `pl` (default: `en`) |
|
|
292
|
+
| `--engines` | `regex`, `llm`, or `hybrid` (default: `hybrid`) |
|
|
293
|
+
| `--ollama-model` | Ollama model to use for NER |
|
|
294
|
+
| `--ollama-base-url` | Ollama base URL |
|
|
295
|
+
| `--config` | Path to a custom JSON config file |
|
|
296
|
+
| `--auto-unmask` | Enable automatic response de-tokenization |
|
|
242
297
|
|
|
243
298
|
### Claude Code
|
|
244
299
|
|
|
@@ -280,33 +335,33 @@ Add to `~/.cursor/mcp.json`:
|
|
|
280
335
|
|
|
281
336
|
### English (`--lang en`, default)
|
|
282
337
|
|
|
283
|
-
| Tag
|
|
284
|
-
|
|
285
|
-
| `SSN`
|
|
286
|
-
| `CREDIT_CARD` | 13–19 digits (Visa, Mastercard, Amex, Discover)
|
|
287
|
-
| `EMAIL`
|
|
288
|
-
| `PHONE`
|
|
289
|
-
| `PERSON`
|
|
290
|
-
| `ORG`
|
|
338
|
+
| Tag | Pattern | Validation |
|
|
339
|
+
| ------------- | --------------------------------------------------- | ------------------------------------------ |
|
|
340
|
+
| `SSN` | `XXX-XX-XXXX` (US Social Security Number) | Area number check (rejects 000, 666, 900+) |
|
|
341
|
+
| `CREDIT_CARD` | 13–19 digits (Visa, Mastercard, Amex, Discover) | Luhn checksum |
|
|
342
|
+
| `EMAIL` | RFC 5321-compatible | Format match |
|
|
343
|
+
| `PHONE` | `+1 (XXX) XXX-XXXX`, `XXX-XXX-XXXX`, `XXX.XXX.XXXX` | Format match |
|
|
344
|
+
| `PERSON` | Full names | Ollama NER (hybrid / llm engines) |
|
|
345
|
+
| `ORG` | Company / organization names | Ollama NER (hybrid / llm engines) |
|
|
291
346
|
|
|
292
347
|
### Polish (`--lang pl`)
|
|
293
348
|
|
|
294
|
-
| Tag
|
|
295
|
-
|
|
296
|
-
| `PESEL`
|
|
297
|
-
| `IBAN`
|
|
298
|
-
| `EMAIL`
|
|
299
|
-
| `PHONE`
|
|
300
|
-
| `PERSON` | Full names
|
|
301
|
-
| `ORG`
|
|
349
|
+
| Tag | Pattern | Validation |
|
|
350
|
+
| -------- | ---------------------------------------------------------------- | ----------------------------------------------- |
|
|
351
|
+
| `PESEL` | 11-digit national ID | Full checksum (weights `[1,3,7,9,1,3,7,9,1,3]`) |
|
|
352
|
+
| `IBAN` | `PL` + 26 digits, compact or spaced | Format match |
|
|
353
|
+
| `EMAIL` | RFC 5321-compatible | Format match |
|
|
354
|
+
| `PHONE` | `+48` / `0048` prefix, 9-digit mobile, landline `(XX) XXX-XX-XX` | Format match |
|
|
355
|
+
| `PERSON` | Full names | Ollama NER (hybrid / llm engines) |
|
|
356
|
+
| `ORG` | Company / organization names | Ollama NER (hybrid / llm engines) |
|
|
302
357
|
|
|
303
358
|
## Engine modes
|
|
304
359
|
|
|
305
|
-
| Mode
|
|
306
|
-
|
|
307
|
-
| `regex`
|
|
308
|
-
| `llm`
|
|
309
|
-
| `hybrid` (default) | Yes (graceful fallback) | Yes
|
|
360
|
+
| Mode | Requires Ollama | Detects structured PII | Detects names / orgs |
|
|
361
|
+
| ------------------ | ----------------------- | ---------------------- | -------------------- |
|
|
362
|
+
| `regex` | No | Yes | No |
|
|
363
|
+
| `llm` | Yes | No | Yes |
|
|
364
|
+
| `hybrid` (default) | Yes (graceful fallback) | Yes | Yes |
|
|
310
365
|
|
|
311
366
|
In `hybrid` mode, Ollama runs after the regex pass so the LLM never sees already-tokenized values. If Ollama is unreachable, the server logs a warning to stderr and returns the regex-only masked text — no crash, no hang.
|
|
312
367
|
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,aAAa,EAAmB,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE7C,MAAM,aAAa,GAAiB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;AAE9D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,eAAe,CAAC;KACrB,WAAW,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,aAAa,EAAmB,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAE7C,MAAM,aAAa,GAAiB,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;AAE9D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAA;AAE7B,OAAO;KACJ,IAAI,CAAC,eAAe,CAAC;KACrB,WAAW,CAAC,oFAAoF,CAAC;KACjG,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,eAAe,EAAE,mCAAmC,EAAE,IAAI,CAAC;KAClE,MAAM,CAAC,kBAAkB,EAAE,0CAA0C,EAAE,QAAQ,CAAC;KAChF,MAAM,CAAC,wBAAwB,EAAE,0BAA0B,EAAE,QAAQ,CAAC;KACtE,MAAM,CAAC,yBAAyB,EAAE,iBAAiB,EAAE,wBAAwB,CAAC;KAC9E,MAAM,CAAC,iBAAiB,EAAE,yDAAyD,CAAC;KACpF,MAAM,CAAC,eAAe,EAAE,8CAA8C,EAAE,KAAK,CAAC;KAC9E,MAAM,CACL,KAAK,EAAE,IAON,EAAE,EAAE;IACH,MAAM,OAAO,GAAe,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAqB,CAAC;QAC5E,CAAC,CAAE,IAAI,CAAC,OAAsB;QAC9B,CAAC,CAAC,QAAQ,CAAA;IAEZ,aAAa,CAAC,IAAI,CAAC;QACjB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO;QACP,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,aAAa,EAAE,IAAI,CAAC,aAAa;QACjC,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,IAAI,CAAC,UAAU;KAC5B,CAAC,CAAA;IAEF,MAAM,GAAG,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,CAAA;IAE7C,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;QACtD,MAAM,iBAAiB,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,CAAC,WAAW,CAAC,CAAA;IAC7D,CAAC;IAED,MAAM,WAAW,EAAE,CAAA;AACrB,CAAC,CACF,CAAA;AAEH,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAY,EAAE,EAAE;IACtD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AACjB,CAAC,CAAC,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/config/manager.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAA;AAEnD,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,UAAU,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,OAAO,CAAA;IACnB,gBAAgB,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAWD;;;;;;;;;GASG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA6B;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAE/B,OAAO;
|
|
1
|
+
{"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/config/manager.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAA;AAEnD,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,UAAU,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,OAAO,CAAA;IACnB,gBAAgB,EAAE,OAAO,CAAA;CAC1B;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,CAAC,EAAE,UAAU,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAC3B;AAWD;;;;;;;;;GASG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA6B;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAQ;IAE/B,OAAO;IA8BP,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,OAAO,GAAG,aAAa;IAK7C,MAAM,CAAC,WAAW,IAAI,aAAa;IAOnC,kDAAkD;IAClD,MAAM,CAAC,KAAK,IAAI,IAAI;IAIpB,uEAAuE;IACvE,GAAG,IAAI,MAAM;CAGd"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/config/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAuBnC,MAAM,QAAQ,GAAW;IACvB,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,QAAQ;IACjB,WAAW,EAAE,QAAQ;IACrB,aAAa,EAAE,wBAAwB;IACvC,UAAU,EAAE,KAAK;IACjB,gBAAgB,EAAE,IAAI;CACvB,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,aAAa;IAChB,MAAM,CAAC,QAAQ,GAAyB,IAAI,CAAA;IACnC,MAAM,CAAQ;IAE/B,YAAoB,UAAmB,EAAE;QACvC,oBAAoB;QACpB,IAAI,GAAG,GAAW,EAAE,GAAG,QAAQ,EAAE,CAAA;QAEjC,4BAA4B;QAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM;YAC/B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;YACzB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,CAAA;QAE7C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;gBAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,CAAA;gBAC/C,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,CAAA;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,oDAAoD;YACtD,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACvD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAChE,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;QAC5E,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS;YAAE,GAAG,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;QAClF,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;YAAE,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;QACzE,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS;
|
|
1
|
+
{"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/config/manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAuBnC,MAAM,QAAQ,GAAW;IACvB,IAAI,EAAE,IAAI;IACV,OAAO,EAAE,QAAQ;IACjB,WAAW,EAAE,QAAQ;IACrB,aAAa,EAAE,wBAAwB;IACvC,UAAU,EAAE,KAAK;IACjB,gBAAgB,EAAE,IAAI;CACvB,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,OAAO,aAAa;IAChB,MAAM,CAAC,QAAQ,GAAyB,IAAI,CAAA;IACnC,MAAM,CAAQ;IAE/B,YAAoB,UAAmB,EAAE;QACvC,oBAAoB;QACpB,IAAI,GAAG,GAAW,EAAE,GAAG,QAAQ,EAAE,CAAA;QAEjC,4BAA4B;QAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM;YAC/B,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;YACzB,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,CAAA;QAE7C,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YAC3B,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;gBAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAoB,CAAA;gBAC/C,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,CAAA;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,oDAAoD;YACtD,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS;YAAE,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAA;QACvD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAAE,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAA;QAChE,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS;YAAE,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAA;QAC5E,IAAI,OAAO,CAAC,aAAa,KAAK,SAAS;YAAE,GAAG,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAA;QAClF,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS;YAAE,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAA;QACzE,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS;YAAE,GAAG,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAA;QAE3F,IAAI,CAAC,MAAM,GAAG,GAAG,CAAA;IACnB,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,OAAiB;QAC3B,aAAa,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,OAAO,CAAC,CAAA;QACnD,OAAO,aAAa,CAAC,QAAQ,CAAA;IAC/B,CAAC;IAED,MAAM,CAAC,WAAW;QAChB,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC5B,aAAa,CAAC,QAAQ,GAAG,IAAI,aAAa,EAAE,CAAA;QAC9C,CAAC;QACD,OAAO,aAAa,CAAC,QAAQ,CAAA;IAC/B,CAAC;IAED,kDAAkD;IAClD,MAAM,CAAC,KAAK;QACV,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAA;IAC/B,CAAC;IAED,uEAAuE;IACvE,GAAG;QACD,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAA;IAC3B,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAA;AAWpE;;;;;;GAMG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAA;AAWpE;;;;;;GAMG;AACH,qBAAa,MAAM;IACjB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAc;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqB;gBAEtC,KAAK,CAAC,EAAE,YAAY,EAAE,oBAAoB,CAAC,EAAE,YAAY,GAAG,IAAI;IAe5E,QAAQ,IAAI,YAAY;IAIxB;;;;;;;OAOG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAiB5C,OAAO,CAAC,eAAe;YAmBT,WAAW;IA+BzB;;;OAGG;IACH,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAK7B"}
|
package/dist/core/engine.js
CHANGED
|
@@ -49,8 +49,7 @@ export class Engine {
|
|
|
49
49
|
if (cfg.engines === 'regex' || cfg.engines === 'hybrid') {
|
|
50
50
|
result = this.applyRegexRules(result, rules, cfg.strictValidation);
|
|
51
51
|
}
|
|
52
|
-
if ((cfg.engines === 'llm' || cfg.engines === 'hybrid') &&
|
|
53
|
-
this.ollamaClient !== null) {
|
|
52
|
+
if ((cfg.engines === 'llm' || cfg.engines === 'hybrid') && this.ollamaClient !== null) {
|
|
54
53
|
result = await this.applyLlmNer(result);
|
|
55
54
|
}
|
|
56
55
|
return result;
|
package/dist/core/engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAA;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD,MAAM,YAAY,GAAkC;IAClD,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,WAAW;CAChB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,OAAO,MAAM;IACA,KAAK,CAAc;IACnB,YAAY,CAAqB;IAElD,
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/core/engine.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAqB,MAAM,oBAAoB,CAAA;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEpD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AAEtD,MAAM,YAAY,GAAkC;IAClD,EAAE,EAAE,YAAY;IAChB,EAAE,EAAE,WAAW;CAChB,CAAA;AAED;;;;;;GAMG;AACH,MAAM,OAAO,MAAM;IACA,KAAK,CAAc;IACnB,YAAY,CAAqB;IAElD,YAAY,KAAoB,EAAE,oBAA0C;QAC1E,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,IAAI,YAAY,EAAE,CAAA;QAExC,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;YACvC,oDAAoD;YACpD,IAAI,CAAC,YAAY,GAAG,oBAAoB,CAAA;QAC1C,CAAC;aAAM,CAAC;YACN,MAAM,GAAG,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,CAAA;YAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,KAAK,QAAQ,IAAI,GAAG,CAAC,OAAO,KAAK,KAAK,CAAA;YAClE,IAAI,CAAC,YAAY,GAAG,QAAQ;gBAC1B,CAAC,CAAC,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,aAAa,EAAE,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,CAAC;gBAC1E,CAAC,CAAC,IAAI,CAAA;QACV,CAAC;IACH,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,OAAO,CAAC,IAAY;QACxB,MAAM,GAAG,GAAG,aAAa,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,CAAA;QAC7C,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,YAAY,CAAA;QAEpD,IAAI,MAAM,GAAG,IAAI,CAAA;QAEjB,IAAI,GAAG,CAAC,OAAO,KAAK,OAAO,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;YACxD,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,gBAAgB,CAAC,CAAA;QACpE,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,OAAO,KAAK,KAAK,IAAI,GAAG,CAAC,OAAO,KAAK,QAAQ,CAAC,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YACtF,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAA;QACzC,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,eAAe,CAAC,IAAY,EAAE,KAAoB,EAAE,gBAAyB;QACnF,IAAI,MAAM,GAAG,IAAI,CAAA;QAEjB,KAAK,MAAM,UAAU,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YACxC,+DAA+D;YAC/D,MAAM,KAAK,GAAG,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAEzE,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,EAAE;gBACvC,IAAI,UAAU,CAAC,QAAQ,IAAI,gBAAgB,EAAE,CAAC;oBAC5C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;oBACtC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC;wBAAE,OAAO,KAAK,CAAA;gBAC/C,CAAC;gBACD,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YAC9C,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,IAAY;QACpC,IAAI,QAAwB,CAAA;QAC5B,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,IAAI,CAAC,YAAa,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;QAC3D,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,2DAA2D,MAAM,CAAC,GAAG,CAAC,IAAI,CAC3E,CAAA;YACD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAA;QAEtC,IAAI,MAAM,GAAG,IAAI,CAAA;QAEjB,gDAAgD;QAChD,mEAAmE;QACnE,MAAM,MAAM,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAE5E,KAAK,MAAM,MAAM,IAAI,MAAM,EAAE,CAAC;YAC5B,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE,CAAA;YAC/B,IAAI,CAAC,GAAG;gBAAE,SAAQ;YAClB,sDAAsD;YACtD,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAA;YAC1D,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;YACnC,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAA;QACrE,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,IAAY;QACjB,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC,KAAK,EAAE,EAAE;YAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,KAAK,CAAA;QACvC,CAAC,CAAC,CAAA;IACJ,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../../src/languages/pl/rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAgBhD,eAAO,MAAM,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../../src/languages/pl/rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAgBhD,eAAO,MAAM,WAAW,EAAE,aA6BzB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/languages/pl/rules.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,SAAS,aAAa,CAAC,KAAa;IAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACzC,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACjE,MAAM,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;IACpC,OAAO,KAAK,KAAK,MAAM,CAAC,EAAE,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAkB;IACxC,QAAQ,EAAE;QACR;YACE,GAAG,EAAE,OAAO;YACZ,sEAAsE;YACtE,KAAK,EAAE,sBAAsB;YAC7B,QAAQ,EAAE,aAAa;SACxB;QACD;YACE,GAAG,EAAE,MAAM;YACX,uFAAuF;YACvF,2EAA2E;YAC3E,yEAAyE;YACzE,KAAK,EAAE,oCAAoC;SAC5C;QACD;YACE,GAAG,EAAE,OAAO;YACZ,KAAK,EAAE,uDAAuD;SAC/D;QACD;YACE,GAAG,EAAE,OAAO;YACZ,sBAAsB;YACtB,oFAAoF;YACpF,8DAA8D;YAC9D,uDAAuD;YACvD,KAAK,
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/languages/pl/rules.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,SAAS,aAAa,CAAC,KAAa;IAClC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IACzC,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC9C,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;IAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;IACjE,MAAM,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAA;IACpC,OAAO,KAAK,KAAK,MAAM,CAAC,EAAE,CAAC,CAAA;AAC7B,CAAC;AAED,MAAM,CAAC,MAAM,WAAW,GAAkB;IACxC,QAAQ,EAAE;QACR;YACE,GAAG,EAAE,OAAO;YACZ,sEAAsE;YACtE,KAAK,EAAE,sBAAsB;YAC7B,QAAQ,EAAE,aAAa;SACxB;QACD;YACE,GAAG,EAAE,MAAM;YACX,uFAAuF;YACvF,2EAA2E;YAC3E,yEAAyE;YACzE,KAAK,EAAE,oCAAoC;SAC5C;QACD;YACE,GAAG,EAAE,OAAO;YACZ,KAAK,EAAE,uDAAuD;SAC/D;QACD;YACE,GAAG,EAAE,OAAO;YACZ,sBAAsB;YACtB,oFAAoF;YACpF,8DAA8D;YAC9D,uDAAuD;YACvD,KAAK,EACH,yIAAyI;SAC5I;KACF;CACF,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-ollama.d.ts","sourceRoot":"","sources":["../../src/setup/check-ollama.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,OAAO,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,SAAS,SAAQ,GAChB,OAAO,CAAC,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"check-ollama.d.ts","sourceRoot":"","sources":["../../src/setup/check-ollama.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,cAAc,EAAE,OAAO,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;GAEG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,SAAS,SAAQ,GAChB,OAAO,CAAC,iBAAiB,CAAC,CAiC5B;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBrF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"check-ollama.js","sourceRoot":"","sources":["../../src/setup/check-ollama.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAe,EACf,KAAa,EACb,SAAS,GAAG,KAAK;IAEjB,6BAA6B;IAC7B,IAAI,OAAiB,CAAA;IACrB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;QACxC,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAA;QACzD,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,WAAW,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;QAC3E,YAAY,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,cAAc,EAAE,KAAK;YACrB,KAAK,EAAE,8BAA8B,OAAO,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE;SAC/D,CAAA;IACH,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,cAAc,EAAE,KAAK;YACrB,KAAK,EAAE,wBAAwB,OAAO,CAAC,MAAM,OAAO,OAAO,EAAE;SAC9D,CAAA;IACH,CAAC;IAED,mCAAmC;IACnC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAyC,CAAA;QAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAA;QAChC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"check-ollama.js","sourceRoot":"","sources":["../../src/setup/check-ollama.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAe,EACf,KAAa,EACb,SAAS,GAAG,KAAK;IAEjB,6BAA6B;IAC7B,IAAI,OAAiB,CAAA;IACrB,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAA;QACxC,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAA;QACzD,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,WAAW,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC,CAAA;QAC3E,YAAY,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,OAAO,EAAE,KAAK;YACd,cAAc,EAAE,KAAK;YACrB,KAAK,EAAE,8BAA8B,OAAO,KAAK,MAAM,CAAC,GAAG,CAAC,EAAE;SAC/D,CAAA;IACH,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;QAChB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,cAAc,EAAE,KAAK;YACrB,KAAK,EAAE,wBAAwB,OAAO,CAAC,MAAM,OAAO,OAAO,EAAE;SAC9D,CAAA;IACH,CAAC;IAED,mCAAmC;IACnC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE,CAAyC,CAAA;QAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAA;QAChC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAA;QAC7F,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,CAAA;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,CAAA;IACjD,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAe,EAAE,KAAa;IACpE,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;IAEhD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qDAAqD,OAAO,IAAI;YAC9D,iDAAiD;YACjD,iCAAiC;YACjC,kEAAkE;YAClE,qDAAqD,CACxD,CAAA;QACD,OAAM;IACR,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;QAC3B,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,qCAAqC,KAAK,0BAA0B;YAClE,+BAA+B,KAAK,IAAI;YACxC,4EAA4E,CAC/E,CAAA;IACH,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pseudonym-mcp",
|
|
3
|
-
"version": "0.1
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "MCP server for privacy-preserving pseudonymization of sensitive data before cloud LLM processing",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -22,8 +22,21 @@
|
|
|
22
22
|
"test": "vitest",
|
|
23
23
|
"test:ui": "vitest --ui",
|
|
24
24
|
"test:coverage": "vitest --coverage",
|
|
25
|
+
"lint": "eslint src tests",
|
|
26
|
+
"lint:fix": "eslint src tests --fix",
|
|
27
|
+
"format": "prettier --write .",
|
|
28
|
+
"format:check": "prettier --check .",
|
|
25
29
|
"start": "node dist/cli.js",
|
|
26
|
-
"prepare": "
|
|
30
|
+
"prepare": "husky"
|
|
31
|
+
},
|
|
32
|
+
"lint-staged": {
|
|
33
|
+
"*.ts": [
|
|
34
|
+
"eslint --fix",
|
|
35
|
+
"prettier --write"
|
|
36
|
+
],
|
|
37
|
+
"*.{json,md}": [
|
|
38
|
+
"prettier --write"
|
|
39
|
+
]
|
|
27
40
|
},
|
|
28
41
|
"keywords": [
|
|
29
42
|
"mcp",
|
|
@@ -72,12 +85,20 @@
|
|
|
72
85
|
"zod": "^3.25.0"
|
|
73
86
|
},
|
|
74
87
|
"devDependencies": {
|
|
88
|
+
"@commitlint/cli": "^20.5.0",
|
|
89
|
+
"@commitlint/config-conventional": "^20.5.0",
|
|
75
90
|
"@release-it/conventional-changelog": "^10.0.0",
|
|
76
91
|
"@types/node": "^22.0.0",
|
|
77
92
|
"@vitest/coverage-v8": "^3.0.0",
|
|
78
93
|
"@vitest/ui": "^3.0.0",
|
|
94
|
+
"eslint": "^9.39.4",
|
|
95
|
+
"eslint-config-prettier": "^10.1.8",
|
|
96
|
+
"husky": "^9.1.7",
|
|
97
|
+
"lint-staged": "^16.4.0",
|
|
98
|
+
"prettier": "^3.8.2",
|
|
79
99
|
"release-it": "^19.0.0",
|
|
80
100
|
"typescript": "^5.8.0",
|
|
101
|
+
"typescript-eslint": "^8.58.1",
|
|
81
102
|
"vitest": "^3.0.0"
|
|
82
103
|
},
|
|
83
104
|
"release-it": {
|