omitly-mcp 5.4.0 → 5.5.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.md CHANGED
@@ -11,7 +11,7 @@ is unchanged since it was sealed. It does not show that nothing else sensitive
11
11
  remains in the document — the opposite of pasting a confidential file into a
12
12
  chat model.
13
13
 
14
- **Five of the eleven tools (`find_sensitive_regions`, `locate_text`,
14
+ **Five of the eighteen tools (`find_sensitive_regions`, `locate_text`,
15
15
  `check_redaction`, `verify_redaction`, `extract_pdf_text`) work out of the
16
16
  box — `npm install`, no Rust toolchain, no native binary, no desktop app.**
17
17
  They run on a wasm-bindgen build of the same detector that powers the web
@@ -103,6 +103,26 @@ prompt is read from the shipped `skill/SKILL.md`, so the two never differ.
103
103
  | `check_license` | Reports the current licence or trial state — tier, trial days left, the vendor-signed licensee name, which resolution step supplied the licence, and whether it is bound to this machine. Free, takes no arguments, reads no document, and is re-resolved on every call so buy → save licence → call again works without a restart. **Never returns the device fingerprint or the licence file's contents** — device binding is a yes/no. Requires a native engine: the wasm free tier has no licence concept. |
104
104
  | `propose_redactions` | omitly#1643, bring your own AI: proposes regions for a PERSON to accept in the Omitly desktop app. Writes nothing. Requires the desktop app to be running on this computer; on acceptance the desktop removes, verifies and seals, and the record shows a person decided (`human-desktop`). |
105
105
  | `get_proposal_status` | Follows a queued proposal: pending, accepted, rejected, applied (with output path and verdict), failed or expired. Free; reads no document. |
106
+ | `pdf_info` | omitly#1841, free page tool: page count, each page's size and rotation (first 500), and flags for encryption, forms, signatures, comments, XFA and layers. Counts and flags only, never text. Works on encrypted files. Page numbers start at 1. |
107
+ | `merge_pdfs` | omitly#1841, free page tool: joins 2 to 50 PDFs, in order, into one NEW PDF. Keeps every page and the forms; bookmarks, metadata, page labels and layers are not carried over (listed in `lost`). Digital signatures are removed. |
108
+ | `extract_pages` | omitly#1841, free page tool: copies chosen pages (numbers and ranges, 1-based, in the order listed) into one NEW PDF. |
109
+ | `split_pdf` | omitly#1841, free page tool: splits a PDF into one NEW PDF per range, named `<prefix>-p<first>-<last>.pdf`, all or none. |
110
+ | `edit_pages` | omitly#1841, free page tool: reorders, deletes, rotates and inserts blank pages in one step from the FINAL page list. Writes a NEW PDF. |
111
+
112
+ ### Page tools (omitly#1841)
113
+
114
+ `pdf_info`, `merge_pdfs`, `extract_pages`, `split_pdf` and `edit_pages` are free and uncapped. They run inside this
115
+ package with no desktop app and no licence, never go through the accept-in-app queue, and are not counted toward the
116
+ 10-a-month check cap. Each writes a NEW `.pdf` inside the allowed folder (never overwriting, never into a hidden
117
+ folder or `.git`) and reports what it could not carry over in `lost` and `warnings`. Page numbers start at 1; the
118
+ check tools return 0-based `page` values, so add 1.
119
+
120
+ All PDF parsing for these five tools happens in a child process (killed after 120 seconds, started with an empty
121
+ environment; on Windows the system adds a few variables such as `PATH` and `SystemRoot`, and none of them reaches the agent), so a damaged or hostile PDF cannot hang or crash the server. They are **not redaction** and do not
122
+ sanitise a document: pages you leave out are not copied, but document metadata, bookmark titles and anything a kept
123
+ page shares with a left-out page can remain. Digital signatures are removed from the output (it is a new, unsigned
124
+ document). The four tools that write refuse encrypted PDFs and dynamic XFA forms; `pdf_info` answers for an encrypted PDF (`encrypted: true`). When `OMITLY_ALLOWED_DIR` is not set and the working
125
+ directory is your home folder or the filesystem root, these tools refuse and ask you to set it.
106
126
 
107
127
  ### Accept-in-app (omitly#1643)
108
128
 
@@ -150,7 +170,7 @@ See [DEMO.md](./DEMO.md) for a full Claude Code walkthrough.
150
170
 
151
171
  ## Status
152
172
 
153
- The MCP surface (eleven tools, schemas, transport), the native engine binary
173
+ The MCP surface (eighteen tools, schemas, transport), the native engine binary
154
174
  (`crates/omitly-cli`, built as `omitly-redact`), and the bundled wasm engine
155
175
  (`crates/leakcheck-wasm`, covering the five free tools without a native
156
176
  binary) are all implemented and pass end-to-end tests. `find_sensitive_regions`
@@ -308,6 +328,13 @@ reads and writes to one allowed directory:
308
328
  outside it is refused.
309
329
  - Outputs **never overwrite an existing file** (or its `.audit.json` sidecar);
310
330
  the agent is asked to pick a fresh name instead.
331
+ - The five page tools re-check, immediately before and after each write, that the output
332
+ folder still resolves to the folder that was confined, and remove what they placed if it
333
+ does not. A hostile local user who swaps that folder for a symlink in the instant between a
334
+ check and the system call that creates the file can still redirect one write: that window
335
+ is not closed, and hostile local users are outside this server's threat model (below). Likewise,
336
+ if another process renames the output folder mid-call, the call fails but files already placed,
337
+ and a temp file, can remain under the renamed folder.
311
338
  - **`OMITLY_ENGINE_TIMEOUT_MS`** (default 120000) — a wedged engine process is
312
339
  killed at the deadline instead of hanging the agent's tool call.
313
340
 
@@ -546,7 +546,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
546
546
 
547
547
  The following npm packages may be included in this product:
548
548
 
549
- - body-parser@2.3.0
549
+ - body-parser@2.4.0
550
550
  - type-is@2.1.0
551
551
 
552
552
  These packages each contain the following license:
@@ -645,7 +645,7 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
645
645
  The following npm packages may be included in this product:
646
646
 
647
647
  - etag@1.8.1
648
- - proxy-addr@2.0.7
648
+ - proxy-addr@2.0.8
649
649
 
650
650
  These packages each contain the following license:
651
651
 
@@ -802,6 +802,7 @@ The following npm packages may be included in this product:
802
802
 
803
803
  - content-type@1.0.5
804
804
  - content-type@2.0.0
805
+ - content-type@2.1.0
805
806
 
806
807
  These packages each contain the following license:
807
808
 
@@ -989,7 +990,7 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
989
990
 
990
991
  The following npm package may be included in this product:
991
992
 
992
- - qs@6.15.3
993
+ - qs@6.16.1
993
994
 
994
995
  This package contains the following license:
995
996
 
@@ -1027,7 +1028,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1027
1028
 
1028
1029
  The following npm package may be included in this product:
1029
1030
 
1030
- - iconv-lite@0.7.2
1031
+ - iconv-lite@0.7.3
1031
1032
 
1032
1033
  This package contains the following license:
1033
1034
 
@@ -1056,7 +1057,7 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
1056
1057
 
1057
1058
  The following npm package may be included in this product:
1058
1059
 
1059
- - ip-address@10.2.0
1060
+ - ip-address@10.7.3
1060
1061
 
1061
1062
  This package contains the following license:
1062
1063
 
@@ -1112,7 +1113,7 @@ THE SOFTWARE.
1112
1113
 
1113
1114
  The following npm package may be included in this product:
1114
1115
 
1115
- - fast-uri@3.1.2
1116
+ - fast-uri@3.1.8
1116
1117
 
1117
1118
  This package contains the following license:
1118
1119
 
@@ -1227,6 +1228,27 @@ CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1227
1228
 
1228
1229
  -----------
1229
1230
 
1231
+ The following npm package may be included in this product:
1232
+
1233
+ - tslib@1.14.1
1234
+
1235
+ This package contains the following license:
1236
+
1237
+ Copyright (c) Microsoft Corporation.
1238
+
1239
+ Permission to use, copy, modify, and/or distribute this software for any
1240
+ purpose with or without fee is hereby granted.
1241
+
1242
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
1243
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
1244
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
1245
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
1246
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
1247
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
1248
+ PERFORMANCE OF THIS SOFTWARE.
1249
+
1250
+ -----------
1251
+
1230
1252
  The following npm package may be included in this product:
1231
1253
 
1232
1254
  - zod-to-json-schema@3.25.2
@@ -1372,6 +1394,66 @@ SOFTWARE.
1372
1394
 
1373
1395
  -----------
1374
1396
 
1397
+ The following npm package may be included in this product:
1398
+
1399
+ - @pdf-lib/upng@1.0.1
1400
+
1401
+ This package contains the following license:
1402
+
1403
+ MIT License
1404
+
1405
+ Copyright (c) 2017 Photopea
1406
+
1407
+ Permission is hereby granted, free of charge, to any person obtaining a copy
1408
+ of this software and associated documentation files (the "Software"), to deal
1409
+ in the Software without restriction, including without limitation the rights
1410
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1411
+ copies of the Software, and to permit persons to whom the Software is
1412
+ furnished to do so, subject to the following conditions:
1413
+
1414
+ The above copyright notice and this permission notice shall be included in all
1415
+ copies or substantial portions of the Software.
1416
+
1417
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1418
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1419
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1420
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1421
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1422
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1423
+ SOFTWARE.
1424
+
1425
+ -----------
1426
+
1427
+ The following npm package may be included in this product:
1428
+
1429
+ - @pdf-lib/standard-fonts@1.0.0
1430
+
1431
+ This package contains the following license:
1432
+
1433
+ MIT License
1434
+
1435
+ Copyright (c) 2018 Andrew Dillon
1436
+
1437
+ Permission is hereby granted, free of charge, to any person obtaining a copy
1438
+ of this software and associated documentation files (the "Software"), to deal
1439
+ in the Software without restriction, including without limitation the rights
1440
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1441
+ copies of the Software, and to permit persons to whom the Software is
1442
+ furnished to do so, subject to the following conditions:
1443
+
1444
+ The above copyright notice and this permission notice shall be included in all
1445
+ copies or substantial portions of the Software.
1446
+
1447
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1448
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1449
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1450
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1451
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1452
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1453
+ SOFTWARE.
1454
+
1455
+ -----------
1456
+
1375
1457
  The following npm package may be included in this product:
1376
1458
 
1377
1459
  - safer-buffer@2.1.2
@@ -1432,6 +1514,36 @@ SOFTWARE.
1432
1514
 
1433
1515
  -----------
1434
1516
 
1517
+ The following npm package may be included in this product:
1518
+
1519
+ - pdf-lib@1.17.1
1520
+
1521
+ This package contains the following license:
1522
+
1523
+ MIT License
1524
+
1525
+ Copyright (c) 2019 Andrew Dillon
1526
+
1527
+ Permission is hereby granted, free of charge, to any person obtaining a copy
1528
+ of this software and associated documentation files (the "Software"), to deal
1529
+ in the Software without restriction, including without limitation the rights
1530
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
1531
+ copies of the Software, and to permit persons to whom the Software is
1532
+ furnished to do so, subject to the following conditions:
1533
+
1534
+ The above copyright notice and this permission notice shall be included in all
1535
+ copies or substantial portions of the Software.
1536
+
1537
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
1538
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
1539
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
1540
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
1541
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1542
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1543
+ SOFTWARE.
1544
+
1545
+ -----------
1546
+
1435
1547
  The following npm packages may be included in this product:
1436
1548
 
1437
1549
  - side-channel-weakmap@1.0.2
@@ -1525,7 +1637,7 @@ SOFTWARE.
1525
1637
 
1526
1638
  The following npm package may be included in this product:
1527
1639
 
1528
- - hono@4.12.27
1640
+ - hono@4.13.13
1529
1641
 
1530
1642
  This package contains the following license:
1531
1643
 
@@ -1555,7 +1667,7 @@ SOFTWARE.
1555
1667
 
1556
1668
  The following npm package may be included in this product:
1557
1669
 
1558
- - @hono/node-server@1.19.14
1670
+ - @hono/node-server@2.0.12
1559
1671
 
1560
1672
  This package contains the following license:
1561
1673
 
@@ -1615,7 +1727,7 @@ SOFTWARE.
1615
1727
 
1616
1728
  The following npm package may be included in this product:
1617
1729
 
1618
- - @modelcontextprotocol/sdk@1.29.0
1730
+ - @modelcontextprotocol/sdk@1.32.1
1619
1731
 
1620
1732
  This package contains the following license:
1621
1733
 
@@ -1712,7 +1824,7 @@ SOFTWARE.
1712
1824
 
1713
1825
  The following npm package may be included in this product:
1714
1826
 
1715
- - zod@3.25.76
1827
+ - zod@4.6.7
1716
1828
 
1717
1829
  This package contains the following license:
1718
1830
 
@@ -1887,6 +1999,59 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
1887
1999
 
1888
2000
  -----------
1889
2001
 
2002
+ The following npm package may be included in this product:
2003
+
2004
+ - pako@1.0.11
2005
+
2006
+ This package contains the following license:
2007
+
2008
+ pako 1.0.11 is declared (MIT AND Zlib). Its own MIT licence is reproduced first (node_modules/pako/LICENSE, identical to github.com/nodeca/pako@1.0.11 LICENSE), then the zlib notice carried in the headers of pako's ported zlib sources (github.com/nodeca/pako@1.0.11 lib/zlib/*.js, fetched 2026-11-09).
2009
+
2010
+ (The MIT License)
2011
+
2012
+ Copyright (C) 2014-2017 by Vitaly Puzrin and Andrei Tuputcyn
2013
+
2014
+ Permission is hereby granted, free of charge, to any person obtaining a copy
2015
+ of this software and associated documentation files (the "Software"), to deal
2016
+ in the Software without restriction, including without limitation the rights
2017
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
2018
+ copies of the Software, and to permit persons to whom the Software is
2019
+ furnished to do so, subject to the following conditions:
2020
+
2021
+ The above copyright notice and this permission notice shall be included in
2022
+ all copies or substantial portions of the Software.
2023
+
2024
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
2025
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2026
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
2027
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
2028
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2029
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2030
+ THE SOFTWARE.
2031
+
2032
+ -----
2033
+
2034
+ (C) 1995-2013 Jean-loup Gailly and Mark Adler
2035
+ (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin
2036
+
2037
+ This software is provided 'as-is', without any express or implied
2038
+ warranty. In no event will the authors be held liable for any damages
2039
+ arising from the use of this software.
2040
+
2041
+ Permission is granted to anyone to use this software for any purpose,
2042
+ including commercial applications, and to alter it and redistribute it
2043
+ freely, subject to the following restrictions:
2044
+
2045
+ 1. The origin of this software must not be misrepresented; you must not
2046
+ claim that you wrote the original software. If you use this software
2047
+ in a product, an acknowledgment in the product documentation would be
2048
+ appreciated but is not required.
2049
+ 2. Altered source versions must be plainly marked as such, and must not be
2050
+ misrepresented as being the original software.
2051
+ 3. This notice may not be removed or altered from any source distribution.
2052
+
2053
+ -----------
2054
+
1890
2055
  The following npm package may be included in this product:
1891
2056
 
1892
2057
  - inherits@2.0.4
@@ -0,0 +1,8 @@
1
+ export const annotations = (title, readOnly, idempotent = false) => ({
2
+ title,
3
+ readOnlyHint: readOnly,
4
+ destructiveHint: false,
5
+ idempotentHint: idempotent,
6
+ openWorldHint: false,
7
+ });
8
+ //# sourceMappingURL=annotations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"annotations.js","sourceRoot":"","sources":["../src/annotations.ts"],"names":[],"mappings":"AAkBA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAE,QAAiB,EAAE,UAAU,GAAG,KAAK,EAAmB,EAAE,CAAC,CAAC;IACrG,KAAK;IACL,YAAY,EAAE,QAAQ;IACtB,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,UAAU;IAC1B,aAAa,EAAE,KAAK;CACrB,CAAC,CAAC"}