omitly-mcp 0.1.6 → 0.1.8
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 +35 -11
- package/dist/index.js +884 -335
- package/dist/index.js.map +1 -1
- package/dist/seal.js +66 -0
- package/dist/seal.js.map +1 -0
- package/package.json +5 -4
- package/skill/SKILL.md +12 -0
- package/wasm/leakcheck_wasm_bg.wasm +0 -0
package/README.md
CHANGED
|
@@ -9,13 +9,15 @@ anywhere**. Redaction runs on-device through the Omitly engine and returns a
|
|
|
9
9
|
signed audit log proving the data was removed — the opposite of pasting a
|
|
10
10
|
confidential file into a chat model.
|
|
11
11
|
|
|
12
|
-
**Four of the
|
|
12
|
+
**Four of the eight tools (`find_sensitive_regions`, `locate_text`,
|
|
13
13
|
`check_redaction`, `verify_redaction`) work out of the box — `npm install`,
|
|
14
14
|
no Rust toolchain, no native binary, no desktop app.** They run on a
|
|
15
15
|
wasm-bindgen build of the same detector that powers the web leak-checker at
|
|
16
|
-
omitly.app, bundled directly in this package. `create_pdf
|
|
17
|
-
write tools (`redact_pdf`, `redact_by_entity`) still need
|
|
18
|
-
native engine — see "Build & run" below.
|
|
16
|
+
omitly.app, bundled directly in this package. `create_pdf`, the two
|
|
17
|
+
write tools (`redact_pdf`, `redact_by_entity`), and `verify_seal` still need
|
|
18
|
+
a configured native engine — see "Build & run" below. `verify_seal` has no
|
|
19
|
+
wasm fallback at all: there is no wasm seal-verification path, so it always
|
|
20
|
+
requires the native engine.
|
|
19
21
|
|
|
20
22
|
## Tools
|
|
21
23
|
|
|
@@ -25,7 +27,8 @@ native engine — see "Build & run" below.
|
|
|
25
27
|
| `locate_text` | Resolves literal strings the model supplies (names, addresses — anything regex can't catch) to their page + coordinates. The model does the recognition; the engine does the geometry. |
|
|
26
28
|
| `redact_by_entity` | One-shot: find + filter by kind (`email`/`ssn`/`phone`/`card`/`tfn`/`abn`/`acn`/`medicare`/`crn`/`ihi`/`bsb`) and/or `regions` + redact + verify. The "just scrub the obvious PII" shortcut. |
|
|
27
29
|
| `redact_pdf` | Removes the underlying data from given regions of a PDF, verifies nothing survives, writes the redacted file, and returns the audit log. |
|
|
28
|
-
| `verify_redaction` | Re-scans an already-redacted PDF and returns the verification verdict. |
|
|
30
|
+
| `verify_redaction` | Re-scans an already-redacted PDF and returns the verification verdict — the redaction-completeness check. |
|
|
31
|
+
| `verify_seal` | Cryptographically checks a PDF's embedded Omitly audit report and trailing Ed25519 tamper-evidence seal — the tamper-evidence check, distinct from `verify_redaction`. **Integrity, not identity:** the signing key is per-install and rides inside the file, so a valid seal means "unchanged since sealed by the holder of this key", never "produced by Omitly" — compare `sealFingerprint` out-of-band for origin. Requires a native engine; no wasm fallback exists. |
|
|
29
32
|
| `create_pdf` | Generates a clean PDF from Markdown/HTML on-device, rendered through a real browser engine so it looks printed — instead of writing a throwaway reportlab/LaTeX script. |
|
|
30
33
|
|
|
31
34
|
## PDF generation (`create_pdf`)
|
|
@@ -59,7 +62,7 @@ See [DEMO.md](./DEMO.md) for a full Claude Code walkthrough.
|
|
|
59
62
|
|
|
60
63
|
## Status
|
|
61
64
|
|
|
62
|
-
The MCP surface (
|
|
65
|
+
The MCP surface (eight tools, schemas, transport), the native engine binary
|
|
63
66
|
(`crates/omitly-cli`, built as `omitly-redact`), and the bundled wasm engine
|
|
64
67
|
(`crates/leakcheck-wasm`, covering the four free tools without a native
|
|
65
68
|
binary) are all implemented and pass end-to-end tests. `find_sensitive_regions`
|
|
@@ -104,6 +107,22 @@ a JSON response from stdout. Any failure returns `{ "ok": false, "error": "..."
|
|
|
104
107
|
"hiddenContent": [ { "class": "thumbnails", "verification": { "result": "pass" } }, ... ] }
|
|
105
108
|
```
|
|
106
109
|
|
|
110
|
+
```jsonc
|
|
111
|
+
// stdin — checks the embedded audit report + trailing Ed25519 seal, not
|
|
112
|
+
// redaction completeness (that's "verify" above)
|
|
113
|
+
{ "command": "verify_seal", "pdfPath": "..." }
|
|
114
|
+
// stdout — verdict is one of: no_report | seal_invalid |
|
|
115
|
+
// seal_unsupported_version | incomplete | verified. seal_unsupported_version
|
|
116
|
+
// means this verifier is too old to check the seal at all — sealValid is
|
|
117
|
+
// `null` (checked nothing), never true or false; carriesAuditReport flags
|
|
118
|
+
// whether the file also carries an Omitly audit report (escalation signal).
|
|
119
|
+
{ "ok": true, "verdict": "verified", "sealValid": true, "sealFingerprint": "...",
|
|
120
|
+
"allPassed": true, "metadataScrubbed": true, "regionCount": 2, "pageCount": 4,
|
|
121
|
+
"warnings": [], "licenseProvenance": null,
|
|
122
|
+
"inputSha256": "...", "outputSha256": "...",
|
|
123
|
+
"sourceFilename": "...", "outputFilename": "..." }
|
|
124
|
+
```
|
|
125
|
+
|
|
107
126
|
## Build & run
|
|
108
127
|
|
|
109
128
|
**Free tools only (find_sensitive_regions, locate_text, check_redaction,
|
|
@@ -122,8 +141,11 @@ source** (this repo) does need `wasm-pack` (`cargo install wasm-pack`) and
|
|
|
122
141
|
the `wasm32-unknown-unknown` target, since `npm run build` regenerates the
|
|
123
142
|
wasm bundle from `../crates/leakcheck-wasm` via `npm run build:wasm`.
|
|
124
143
|
|
|
125
|
-
**Everything, including `create_pdf` and the two write tools
|
|
126
|
-
(`redact_pdf`, `redact_by_entity`):**
|
|
144
|
+
**Everything, including `create_pdf`, `verify_seal`, and the two write tools
|
|
145
|
+
(`redact_pdf`, `redact_by_entity`):** `verify_seal` has no wasm fallback —
|
|
146
|
+
unlike the four free tools above, it always needs the native engine
|
|
147
|
+
configured, even though it carries no licence requirement (see "Licensing"
|
|
148
|
+
below).
|
|
127
149
|
|
|
128
150
|
```bash
|
|
129
151
|
# 1. Build the local engine binaries (from the repo root)
|
|
@@ -176,9 +198,11 @@ fallback — wasm never touches these two tools): a Pro or Personal licence
|
|
|
176
198
|
same machine) runs unmarked; otherwise the shared 14-day trial applies and
|
|
177
199
|
the audit output is permanently marked as evaluation output. The redaction
|
|
178
200
|
itself is never degraded, and licence checks never touch the network.
|
|
179
|
-
`find_sensitive_regions`, `locate_text`, `check_redaction`,
|
|
180
|
-
`
|
|
181
|
-
licence logic at all
|
|
201
|
+
`find_sensitive_regions`, `locate_text`, `check_redaction`, `verify_redaction`,
|
|
202
|
+
and `verify_seal` are free forever — the four wasm-backed tools have no
|
|
203
|
+
licence logic at all because there's nothing to gate, and `verify_seal`
|
|
204
|
+
(native-only) is free by the same design in `crates/omitly-cli` (no Pro/
|
|
205
|
+
Personal licence check on that command path either).
|
|
182
206
|
|
|
183
207
|
## Register with Claude Code
|
|
184
208
|
|