proton-mail-bridge-client 2.16.2 → 2.16.3
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 +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -3
- package/dist/index.js.map +1 -1
- package/dist/services/brief-service.d.ts +7 -1
- package/dist/services/brief-service.d.ts.map +1 -1
- package/dist/services/brief-service.js +16 -3
- package/dist/services/brief-service.js.map +1 -1
- package/dist/services/commitment-service.d.ts.map +1 -1
- package/dist/services/commitment-service.js +6 -1
- package/dist/services/commitment-service.js.map +1 -1
- package/dist/services/simple-imap-service.d.ts.map +1 -1
- package/dist/services/simple-imap-service.js +2 -1
- package/dist/services/simple-imap-service.js.map +1 -1
- package/dist/services/smtp-service.d.ts +1 -0
- package/dist/services/smtp-service.d.ts.map +1 -1
- package/dist/services/smtp-service.js +20 -0
- package/dist/services/smtp-service.js.map +1 -1
- package/dist/services/triage-plan-service.d.ts +8 -1
- package/dist/services/triage-plan-service.d.ts.map +1 -1
- package/dist/services/triage-plan-service.js +20 -1
- package/dist/services/triage-plan-service.js.map +1 -1
- package/dist/tools/brief.d.ts.map +1 -1
- package/dist/tools/brief.js +14 -4
- package/dist/tools/brief.js.map +1 -1
- package/dist/tools/commitments.d.ts.map +1 -1
- package/dist/tools/commitments.js +6 -2
- package/dist/tools/commitments.js.map +1 -1
- package/dist/tools/drafts-support.js +4 -4
- package/dist/tools/drafts-support.js.map +1 -1
- package/dist/tools/drafts.d.ts.map +1 -1
- package/dist/tools/drafts.js +14 -1
- package/dist/tools/drafts.js.map +1 -1
- package/dist/tools/reading.d.ts.map +1 -1
- package/dist/tools/reading.js +2 -1
- package/dist/tools/reading.js.map +1 -1
- package/dist/tools/style.js +2 -2
- package/dist/tools/style.js.map +1 -1
- package/dist/tools/triage.d.ts.map +1 -1
- package/dist/tools/triage.js +28 -10
- package/dist/tools/triage.js.map +1 -1
- package/dist/utils/commitment-phrases.d.ts.map +1 -1
- package/dist/utils/commitment-phrases.js +31 -18
- package/dist/utils/commitment-phrases.js.map +1 -1
- package/dist/utils/mail-security.d.ts +6 -0
- package/dist/utils/mail-security.d.ts.map +1 -1
- package/dist/utils/mail-security.js +95 -19
- package/dist/utils/mail-security.js.map +1 -1
- package/dist/utils/safe-write.d.ts +2 -0
- package/dist/utils/safe-write.d.ts.map +1 -0
- package/dist/utils/safe-write.js +26 -0
- package/dist/utils/safe-write.js.map +1 -0
- package/dist/utils/style-profile.d.ts +2 -0
- package/dist/utils/style-profile.d.ts.map +1 -1
- package/dist/utils/style-profile.js +26 -13
- package/dist/utils/style-profile.js.map +1 -1
- package/package.json +3 -3
package/dist/tools/triage.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triage.js","sourceRoot":"","sources":["../../src/tools/triage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"triage.js","sourceRoot":"","sources":["../../src/tools/triage.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commitment-phrases.d.ts","sourceRoot":"","sources":["../../src/utils/commitment-phrases.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;
|
|
1
|
+
{"version":3,"file":"commitment-phrases.d.ts","sourceRoot":"","sources":["../../src/utils/commitment-phrases.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAyED,mHAAmH;AACnH,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,GAAG,MAAM,GAAG,SAAS,CAkCxE;AAED,+FAA+F;AAC/F,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,SAAI,GAAG,mBAAmB,EAAE,CAe1F"}
|
|
@@ -10,15 +10,21 @@ const PROMISE = [
|
|
|
10
10
|
// German
|
|
11
11
|
promise("ich schicke|ich sende|ich melde mich|ich werde|ich kümmere mich|wir schicken|wir senden|wir melden uns|ich gebe bescheid"),
|
|
12
12
|
];
|
|
13
|
+
// Exact word forms: a stem with \p{L}* also matched "środowisko" (environment) as Wednesday.
|
|
13
14
|
const WEEKDAYS = [
|
|
14
|
-
[/(?<!\p{L})(sunday|niedziel
|
|
15
|
-
[/(?<!\p{L})(monday|
|
|
16
|
-
[/(?<!\p{L})(tuesday|wtorek|
|
|
17
|
-
[/(?<!\p{L})(wednesday|środ
|
|
18
|
-
[/(?<!\p{L})(thursday|
|
|
19
|
-
[/(?<!\p{L})(friday|
|
|
20
|
-
[/(?<!\p{L})(saturday|sobot
|
|
15
|
+
[/(?<!\p{L})(sunday|niedziela|niedzielę|niedzieli|niedzielą|sonntag)(?!\p{L})/iu, 0],
|
|
16
|
+
[/(?<!\p{L})(monday|poniedziałek|poniedziałku|poniedziałkiem|montag)(?!\p{L})/iu, 1],
|
|
17
|
+
[/(?<!\p{L})(tuesday|wtorek|wtorku|wtorkiem|dienstag)(?!\p{L})/iu, 2],
|
|
18
|
+
[/(?<!\p{L})(wednesday|środa|środę|środy|środzie|środą|mittwoch)(?!\p{L})/iu, 3],
|
|
19
|
+
[/(?<!\p{L})(thursday|czwartek|czwartku|czwartkiem|donnerstag)(?!\p{L})/iu, 4],
|
|
20
|
+
[/(?<!\p{L})(friday|piątek|piątku|piątkiem|freitag)(?!\p{L})/iu, 5],
|
|
21
|
+
[/(?<!\p{L})(saturday|sobota|sobotę|soboty|sobocie|sobotą|samstag)(?!\p{L})/iu, 6],
|
|
21
22
|
];
|
|
23
|
+
// A date only counts when it exists: 31.02 and 2026-13-45 are not dates.
|
|
24
|
+
function validDate(year, month, day) {
|
|
25
|
+
const candidate = new Date(Date.UTC(year, month - 1, day));
|
|
26
|
+
return candidate.getUTCFullYear() === year && candidate.getUTCMonth() === month - 1 && candidate.getUTCDate() === day ? iso(candidate) : undefined;
|
|
27
|
+
}
|
|
22
28
|
function iso(date) {
|
|
23
29
|
return date.toISOString().slice(0, 10);
|
|
24
30
|
}
|
|
@@ -63,24 +69,31 @@ function namedMonthDate(sentence, day) {
|
|
|
63
69
|
/** The date a sentence names, counted from `now` (a UTC day). Weekday names mean the next such day after today. */
|
|
64
70
|
export function parseDue(sentence, now) {
|
|
65
71
|
const day = new Date(Date.UTC(now.getUTCFullYear(), now.getUTCMonth(), now.getUTCDate()));
|
|
66
|
-
const full = sentence.match(
|
|
67
|
-
if (full)
|
|
68
|
-
|
|
72
|
+
const full = sentence.match(/(?<![\d-])(\d{4})-(\d{2})-(\d{2})(?![\d-])/);
|
|
73
|
+
if (full) {
|
|
74
|
+
const exact = validDate(Number(full[1]), Number(full[2]), Number(full[3]));
|
|
75
|
+
if (exact)
|
|
76
|
+
return exact;
|
|
77
|
+
}
|
|
69
78
|
const named = namedMonthDate(sentence, day);
|
|
70
79
|
if (named)
|
|
71
80
|
return named;
|
|
72
|
-
|
|
81
|
+
// 5.11. / 05.11.2026 / 5/11: not a version number or a decimal ("version 2.3", "1.5 hours"), so without a year it must
|
|
82
|
+
// follow a word that introduces a date ("by", "do", "bis").
|
|
83
|
+
const dotted = sentence.match(/(?<![\d.,])(\d{1,2})[./](\d{1,2})(?:[./](\d{2,4}))?(?![\d]|[./]\d)/);
|
|
73
84
|
if (dotted) {
|
|
74
|
-
const
|
|
75
|
-
const
|
|
76
|
-
if (
|
|
85
|
+
const before = sentence.slice(0, dotted.index ?? 0);
|
|
86
|
+
const introduced = /(?<!\p{L})(by|until|before|on|due|do|na|przed|bis|am|vor|dnia)\s+$/iu.test(before);
|
|
87
|
+
if (dotted[3] || introduced) {
|
|
77
88
|
let year = dotted[3] ? Number(dotted[3]) : day.getUTCFullYear();
|
|
78
89
|
if (year < 100)
|
|
79
90
|
year += 2000;
|
|
80
|
-
const
|
|
81
|
-
if (
|
|
82
|
-
|
|
83
|
-
|
|
91
|
+
const exact = validDate(year, Number(dotted[2]), Number(dotted[1]));
|
|
92
|
+
if (exact) {
|
|
93
|
+
if (dotted[3] || exact >= iso(day))
|
|
94
|
+
return exact;
|
|
95
|
+
return validDate(year + 1, Number(dotted[2]), Number(dotted[1]));
|
|
96
|
+
}
|
|
84
97
|
}
|
|
85
98
|
}
|
|
86
99
|
if (/(?<!\p{L})(today|dzisiaj|dziś|heute|eod|end of (?:the )?day)(?!\p{L})/iu.test(sentence))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commitment-phrases.js","sourceRoot":"","sources":["../../src/utils/commitment-phrases.ts"],"names":[],"mappings":"AAAA,sHAAsH;AACtH,sHAAsH;AAQtH,uFAAuF;AACvF,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,MAAM,CAAC,iBAAiB,KAAK,aAAa,EAAE,IAAI,CAAC,CAAC;AACzF,MAAM,OAAO,GAAG;IACd,UAAU;IACV,OAAO,CAAC,mIAAmI,CAAC;IAC5I,SAAS;IACT,OAAO,CAAC,+KAA+K,CAAC;IACxL,SAAS;IACT,OAAO,CAAC,0HAA0H,CAAC;CACpI,CAAC;AAEF,MAAM,QAAQ,GAA4B;IACxC,CAAC,
|
|
1
|
+
{"version":3,"file":"commitment-phrases.js","sourceRoot":"","sources":["../../src/utils/commitment-phrases.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,12 @@ export declare class MailTaint {
|
|
|
24
24
|
} | undefined;
|
|
25
25
|
}
|
|
26
26
|
export declare const TAINT_GATED_TOOLS: Set<string>;
|
|
27
|
+
/**
|
|
28
|
+
* Whether this call is one the confirmation gate applies to after a high-risk message was read. A preview or a switch-off
|
|
29
|
+
* passes, but only through an argument the tool really declares: an undeclared `dryRun` is ignored by the tool, and honouring
|
|
30
|
+
* it here would let a call skip the gate and still act.
|
|
31
|
+
*/
|
|
32
|
+
export declare function isGatedAction(name: string, args: Record<string, unknown>, declared: ReadonlySet<string>): boolean;
|
|
27
33
|
export declare function annotateHighRisk(value: unknown, taint: MailTaint, depth?: number): boolean;
|
|
28
34
|
/** A tool handler whose results are scanned for mail that tries to steer an AI, wherever that text came from. */
|
|
29
35
|
export declare function withRiskScan<R, T extends {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mail-security.d.ts","sourceRoot":"","sources":["../../src/utils/mail-security.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMtD,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,uGAAuG;IACvG,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"mail-security.d.ts","sourceRoot":"","sources":["../../src/utils/mail-security.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAMtD,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,aAAa,CAAC;IACrB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,YAAY,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,uGAAuG;IACvG,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAkGD,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,kBAAkB,CA4CjE;AAID,qBAAa,SAAS;IACpB,OAAO,CAAC,IAAI,CAAqD;IAEjE,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,kBAAkB,GAAG,IAAI,CAE1D;IAED,OAAO,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,SAAS,CAE5D;CACF;AAGD,eAAO,MAAM,iBAAiB,aAG5B,CAAC;AAMH;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAUjH;AAUD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,SAAI,GAAG,OAAO,CAsBrF;AAED,iHAAiH;AACjH,wBAAgB,YAAY,CAAC,CAAC,EAAE,CAAC,SAAS;IAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,EAC9G,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GAClC,CAAC,OAAO,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAsB5B"}
|
|
@@ -10,7 +10,63 @@ const INSTRUCTION_PATTERNS = [
|
|
|
10
10
|
[/\b(delete|remove|trash)\b[^.\n]{0,30}\b(all|every)\b[^.\n]{0,30}\b(emails?|messages?)\b/i, "asks an AI to delete mail"],
|
|
11
11
|
];
|
|
12
12
|
const ZERO_WIDTH = /[-]/g;
|
|
13
|
-
|
|
13
|
+
// HTML is scanned tag by tag, with every step bounded, never with a pattern that can backtrack over the whole
|
|
14
|
+
// document: one crafted message must not be able to stall the server (a pattern over unclosed <a tags took seconds).
|
|
15
|
+
const MAX_HTML_SCANNED = 200_000;
|
|
16
|
+
const MAX_TAG_LENGTH = 1_500;
|
|
17
|
+
const MAX_BLOCK_LENGTH = 5_000;
|
|
18
|
+
const MAX_HIDDEN_BLOCKS = 50;
|
|
19
|
+
const MAX_ANCHORS = 300;
|
|
20
|
+
const HIDING_STYLE = /display\s*:\s*none|visibility\s*:\s*hidden|font-size\s*:\s*0(?:px|pt|em|rem|%)?(?![\d.])|opacity\s*:\s*0(?:\.0+)?(?![\d.])|(?:left|top|text-indent|margin-left)\s*:\s*-\d{3,}|max-height\s*:\s*0(?:px)?(?![\d.])/i;
|
|
21
|
+
const WHITE_ON_WHITE = /(?:^|[;\s])color\s*:\s*(?:#fff(?:fff)?|white)\b[\s\S]{0,300}?background(?:-color)?\s*:\s*(?:#fff(?:fff)?|white)\b/i;
|
|
22
|
+
const VOID_TAGS = new Set(["img", "br", "hr", "input", "meta", "link", "area", "base", "col", "embed", "source", "track", "wbr"]);
|
|
23
|
+
function styleOf(attributes) {
|
|
24
|
+
const match = /style\s*=\s*(?:"([^"]*)"|'([^']*)')/i.exec(attributes);
|
|
25
|
+
return match?.[1] ?? match?.[2] ?? "";
|
|
26
|
+
}
|
|
27
|
+
/** The text inside elements a reader cannot see (hidden by style or the hidden attribute). */
|
|
28
|
+
function hiddenTexts(html) {
|
|
29
|
+
const lower = html.toLowerCase();
|
|
30
|
+
const found = [];
|
|
31
|
+
for (const tag of html.matchAll(new RegExp(`<([a-z][a-z0-9]*)(\\s[^<>]{0,${MAX_TAG_LENGTH}})?>`, "gi"))) {
|
|
32
|
+
if (found.length >= MAX_HIDDEN_BLOCKS)
|
|
33
|
+
break;
|
|
34
|
+
const name = tag[1].toLowerCase();
|
|
35
|
+
const attributes = tag[2] ?? "";
|
|
36
|
+
if (VOID_TAGS.has(name) || !attributes)
|
|
37
|
+
continue;
|
|
38
|
+
const style = styleOf(attributes);
|
|
39
|
+
const hides = HIDING_STYLE.test(style) || WHITE_ON_WHITE.test(style) || /(?:^|\s)hidden(?:\s|=|$)/i.test(attributes);
|
|
40
|
+
if (!hides)
|
|
41
|
+
continue;
|
|
42
|
+
const start = (tag.index ?? 0) + tag[0].length;
|
|
43
|
+
const close = lower.indexOf(`</${name}`, start);
|
|
44
|
+
const end = close === -1 ? Math.min(html.length, start + MAX_BLOCK_LENGTH) : Math.min(close, start + MAX_BLOCK_LENGTH);
|
|
45
|
+
found.push(html.slice(start, end).replace(/<[^>]*>/g, " ").replace(/\s+/g, " ").trim());
|
|
46
|
+
}
|
|
47
|
+
return found;
|
|
48
|
+
}
|
|
49
|
+
/** The first link whose visible text names another host than the one it goes to. */
|
|
50
|
+
function mismatchedLink(html) {
|
|
51
|
+
const lower = html.toLowerCase();
|
|
52
|
+
let seen = 0;
|
|
53
|
+
for (const tag of html.matchAll(new RegExp(`<a\\s([^<>]{0,${MAX_TAG_LENGTH}})>`, "gi"))) {
|
|
54
|
+
if (++seen > MAX_ANCHORS)
|
|
55
|
+
break;
|
|
56
|
+
const href = /href\s*=\s*(?:"([^"]*)"|'([^']*)')/i.exec(tag[1]);
|
|
57
|
+
const target = href?.[1] ?? href?.[2];
|
|
58
|
+
if (!target)
|
|
59
|
+
continue;
|
|
60
|
+
const start = (tag.index ?? 0) + tag[0].length;
|
|
61
|
+
const close = lower.indexOf("</a", start);
|
|
62
|
+
const text = html.slice(start, close === -1 ? start + 500 : Math.min(close, start + 500)).replace(/<[^>]*>/g, "").trim();
|
|
63
|
+
const shownHost = text.match(/^(?:https?:\/\/)?([\w.-]+\.[a-z]{2,})(?:[/\s]|$)/i)?.[1]?.toLowerCase();
|
|
64
|
+
const realHost = hostOf(target);
|
|
65
|
+
if (shownHost && realHost && baseDomain(shownHost) !== baseDomain(realHost))
|
|
66
|
+
return { shown: shownHost, real: realHost };
|
|
67
|
+
}
|
|
68
|
+
return undefined;
|
|
69
|
+
}
|
|
14
70
|
function domainOf(address) {
|
|
15
71
|
return (address?.split("@")[1] ?? "").trim().toLowerCase();
|
|
16
72
|
}
|
|
@@ -45,18 +101,20 @@ export function assessMail(input) {
|
|
|
45
101
|
const instruction = matchesInstruction(visible);
|
|
46
102
|
if (instruction)
|
|
47
103
|
high.push(`The message ${instruction}.`);
|
|
48
|
-
const html = typeof input.html === "string" ? input.html : "";
|
|
49
|
-
|
|
50
|
-
|
|
104
|
+
const html = typeof input.html === "string" ? input.html.slice(0, MAX_HTML_SCANNED) : "";
|
|
105
|
+
let hiddenSeen = false;
|
|
106
|
+
for (const hidden of hiddenTexts(html)) {
|
|
51
107
|
if (hidden.length < 20)
|
|
52
108
|
continue;
|
|
53
109
|
const hiddenInstruction = matchesInstruction(hidden);
|
|
54
|
-
if (hiddenInstruction)
|
|
110
|
+
if (hiddenInstruction) {
|
|
55
111
|
high.push(`Hidden text in the message ${hiddenInstruction}.`);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
hiddenSeen = true;
|
|
59
115
|
}
|
|
116
|
+
if (hiddenSeen && high.length === 0)
|
|
117
|
+
caution.push("The message has text the reader cannot see (hidden by its markup).");
|
|
60
118
|
const zeroWidth = (visible.match(ZERO_WIDTH) ?? []).length;
|
|
61
119
|
if (zeroWidth >= 5 && input.automated !== true)
|
|
62
120
|
caution.push("The text has invisible characters (zero-width), which can hide wording from the reader.");
|
|
@@ -76,15 +134,9 @@ export function assessMail(input) {
|
|
|
76
134
|
const auth = headerText(input.headers, "authentication-results").toLowerCase();
|
|
77
135
|
if (/\b(dkim|spf|dmarc)=fail\b/.test(auth))
|
|
78
136
|
caution.push("The sender failed an authentication check (SPF, DKIM or DMARC).");
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
const realHost = hostOf(link[1]);
|
|
83
|
-
if (shownHost && realHost && baseDomain(shownHost) !== baseDomain(realHost)) {
|
|
84
|
-
caution.push(`A link reads ${shownHost} but goes to ${realHost}.`);
|
|
85
|
-
break;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
137
|
+
const link = mismatchedLink(html);
|
|
138
|
+
if (link)
|
|
139
|
+
caution.push(`A link reads ${link.shown} but goes to ${link.real}.`);
|
|
88
140
|
const reasons = [...high, ...caution];
|
|
89
141
|
return { level: high.length ? "high" : caution.length ? "caution" : "ok", reasons };
|
|
90
142
|
}
|
|
@@ -103,8 +155,32 @@ export class MailTaint {
|
|
|
103
155
|
// Tools that send mail or change what happens to it without a person looking at each case.
|
|
104
156
|
export const TAINT_GATED_TOOLS = new Set([
|
|
105
157
|
"send_email", "reply_to_email", "reply_all_email", "forward_email", "send_draft", "schedule_draft", "respond_to_invite",
|
|
106
|
-
"unsubscribe_sender", "delete_email", "delete_thread", "bulk_delete", "empty_folder", "set_rule", "set_autoresponder",
|
|
158
|
+
"unsubscribe_sender", "delete_email", "delete_thread", "bulk_delete", "empty_folder", "delete_folder", "set_rule", "set_autoresponder",
|
|
107
159
|
]);
|
|
160
|
+
// Tools that only act for some arguments: apply_rules runs its rules when dryRun is false (it previews otherwise), and the
|
|
161
|
+
// batch tools are gated for the actions that destroy.
|
|
162
|
+
const DESTRUCTIVE_ACTIONS = new Set(["delete", "trash"]);
|
|
163
|
+
/**
|
|
164
|
+
* Whether this call is one the confirmation gate applies to after a high-risk message was read. A preview or a switch-off
|
|
165
|
+
* passes, but only through an argument the tool really declares: an undeclared `dryRun` is ignored by the tool, and honouring
|
|
166
|
+
* it here would let a call skip the gate and still act.
|
|
167
|
+
*/
|
|
168
|
+
export function isGatedAction(name, args, declared) {
|
|
169
|
+
if (name === "apply_rules")
|
|
170
|
+
return args.dryRun === false;
|
|
171
|
+
if (name === "batch_email_action" || name === "apply_thread_action") {
|
|
172
|
+
return typeof args.action === "string" && DESTRUCTIVE_ACTIONS.has(args.action) && !(declared.has("dryRun") && args.dryRun === true);
|
|
173
|
+
}
|
|
174
|
+
if (!TAINT_GATED_TOOLS.has(name))
|
|
175
|
+
return false;
|
|
176
|
+
if (declared.has("dryRun") && args.dryRun === true)
|
|
177
|
+
return false;
|
|
178
|
+
if (declared.has("enabled") && args.enabled === false)
|
|
179
|
+
return false;
|
|
180
|
+
if (declared.has("active") && args.active === false)
|
|
181
|
+
return false;
|
|
182
|
+
return true;
|
|
183
|
+
}
|
|
108
184
|
const ID_KEYS = ["id", "emailId", "primaryEmailId", "latestEmailId"];
|
|
109
185
|
const MAX_SCAN_DEPTH = 7;
|
|
110
186
|
const MAX_SCAN_CHARS = 2_000_000;
|
|
@@ -124,7 +200,7 @@ export function annotateHighRisk(value, taint, depth = 0) {
|
|
|
124
200
|
}
|
|
125
201
|
const node = value;
|
|
126
202
|
if (node.risk === undefined) {
|
|
127
|
-
const text = [node.text, node.preview, node.snippet, node.subject].filter((part) => typeof part === "string").join("\n");
|
|
203
|
+
const text = [node.text, node.preview, node.snippet, node.sentence, node.body, node.subject].filter((part) => typeof part === "string").join("\n");
|
|
128
204
|
const id = ID_KEYS.map((key) => node[key]).find((candidate) => typeof candidate === "string");
|
|
129
205
|
if (id && text) {
|
|
130
206
|
const assessment = assessMail({ subject: typeof node.subject === "string" ? node.subject : undefined, text });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mail-security.js","sourceRoot":"","sources":["../../src/utils/mail-security.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mail-security.js","sourceRoot":"","sources":["../../src/utils/mail-security.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-write.d.ts","sourceRoot":"","sources":["../../src/utils/safe-write.ts"],"names":[],"mappings":"AAMA,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBjF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { randomBytes } from "node:crypto";
|
|
2
|
+
import { open, rename, rm } from "node:fs/promises";
|
|
3
|
+
// Writes decrypted mail content to `path` without ever following a symbolic link at the final component: the bytes
|
|
4
|
+
// go to a new, exclusively created, owner-only file next to it, which is then renamed over `path`. A rename replaces a
|
|
5
|
+
// link instead of writing through it, so a link planted at `path` (dangling or not) cannot send the write elsewhere.
|
|
6
|
+
export async function writeFileNoFollow(path, data) {
|
|
7
|
+
const tempPath = `${path}.${randomBytes(6).toString("hex")}.tmp`;
|
|
8
|
+
const handle = await open(tempPath, "wx", 0o600);
|
|
9
|
+
try {
|
|
10
|
+
await handle.writeFile(data);
|
|
11
|
+
}
|
|
12
|
+
catch (error) {
|
|
13
|
+
await handle.close();
|
|
14
|
+
await rm(tempPath, { force: true });
|
|
15
|
+
throw error;
|
|
16
|
+
}
|
|
17
|
+
await handle.close();
|
|
18
|
+
try {
|
|
19
|
+
await rename(tempPath, path);
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
await rm(tempPath, { force: true });
|
|
23
|
+
throw error;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=safe-write.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-write.js","sourceRoot":"","sources":["../../src/utils/safe-write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAEpD,mHAAmH;AACnH,uHAAuH;AACvH,qHAAqH;AACrH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,IAAY,EAAE,IAAY;IAChE,MAAM,QAAQ,GAAG,GAAG,IAAI,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC;IACjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;IACjD,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpC,MAAM,KAAK,CAAC;IACd,CAAC;IACD,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;IACrB,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACpC,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -23,6 +23,8 @@ export interface StyleProfile {
|
|
|
23
23
|
byDomain: Record<string, StyleSummary>;
|
|
24
24
|
}
|
|
25
25
|
export declare function summarise(samples: SentSample[]): StyleSummary;
|
|
26
|
+
/** Recipients are kept under a short hash, not their address: the profile does not list whom you write to. */
|
|
27
|
+
export declare function recipientKey(address: string): string;
|
|
26
28
|
export declare function buildProfile(samples: SentSample[], now?: Date): StyleProfile;
|
|
27
29
|
/** A few plain lines a model can follow when drafting for `recipient`. */
|
|
28
30
|
export declare function styleHints(profile: StyleProfile, recipient?: string): string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style-profile.d.ts","sourceRoot":"","sources":["../../src/utils/style-profile.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"style-profile.d.ts","sourceRoot":"","sources":["../../src/utils/style-profile.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,OAAO,EAAE,CAAC;IACrB,SAAS,EAAE,OAAO,EAAE,CAAC;IACrB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,SAAS,EAAE,QAAQ,GAAG,UAAU,GAAG,OAAO,GAAG,SAAS,CAAC;IACvD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;IAC1C,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;CACxC;AAsDD,wBAAgB,SAAS,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,YAAY,CAwC7D;AAED,8GAA8G;AAC9G,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEpD;AAMD,wBAAgB,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE,GAAG,OAAa,GAAG,YAAY,CAelF;AAED,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAY9E"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
// Everything is counted on this machine; the profile keeps short normalised patterns ("Hi {name},"), never whole
|
|
3
|
-
// sentences or names, so it can be shown to a model as a hint for drafting.
|
|
1
|
+
import { createHash } from "node:crypto";
|
|
4
2
|
const GREETING = /^(hi|hello|hey|dear|good (?:morning|afternoon|evening)|cześć|dzień dobry|dobry wieczór|witam|szanown\p{L}*|hallo|guten (?:tag|morgen)|sehr geehrte\p{L}*|liebe\p{L}*|moin)(?![\p{L}])[^\n]{0,40}$/iu;
|
|
5
|
-
const CLOSING = /^(best(?: regards| wishes)?|kind regards|warm regards|regards|thanks|thank you|cheers|sincerely|pozdrawiam|z poważaniem|serdecznie|pozdrowienia|dzięki|dziękuję|z pozdrowieniami|mit freundlichen grüßen|viele grüße|beste grüße|freundliche grüße|grüße|lg)(?![\p{L}])[^\n]{0,30}$/iu;
|
|
6
3
|
const FORMAL_GREETING = /^(dear|szanown|sehr geehrte|dzień dobry|witam|guten tag|good (?:morning|afternoon|evening))/iu;
|
|
7
4
|
const INFORMAL_GREETING = /^(hi|hey|hello|cześć|hallo|moin)(?![\p{L}])/iu;
|
|
8
5
|
const FREEMAIL = new Set(["gmail.com", "outlook.com", "hotmail.com", "yahoo.com", "icloud.com", "proton.me", "protonmail.com", "pm.me", "wp.pl", "o2.pl", "onet.pl", "interia.pl", "gmx.de", "web.de", "gmx.net"]);
|
|
9
6
|
const STOPWORDS = {
|
|
10
7
|
en: ["the", "and", "is", "to", "of", "you", "for", "with", "that", "this", "have", "please"],
|
|
11
|
-
pl: ["
|
|
8
|
+
pl: ["w", "nie", "się", "na", "że", "do", "jest", "dla", "proszę", "dziękuję", "jak", "ale", "też", "oraz", "który"],
|
|
12
9
|
de: ["und", "der", "die", "das", "nicht", "ich", "ist", "mit", "bitte", "danke", "für", "wir"],
|
|
13
10
|
};
|
|
14
11
|
function ownLines(text) {
|
|
@@ -27,14 +24,24 @@ function detectLanguage(text) {
|
|
|
27
24
|
}
|
|
28
25
|
return best;
|
|
29
26
|
}
|
|
30
|
-
const GREETING_HEAD = /^(dear|hi|hello|hey|cześć|hallo|moin|witam|liebe\p{L}*|szanown\p{L}*|sehr geehrte\p{L}*|dzień dobry|guten (?:tag|morgen)|good (?:morning|afternoon|evening))(?![\p{L}])(\s+[\p{Lu}][\p{L}'’-]*(?:\s+[\p{Lu}][\p{L}'’-]*)*)?\s*([,!:]?)/iu;
|
|
27
|
+
const GREETING_HEAD = /^(dear|hi|hello|hey|cześć|hallo|moin|witam|liebe\p{L}*|szanown\p{L}*|sehr geehrte\p{L}*|dzień dobry|dobry wieczór|guten (?:tag|morgen|abend)|good (?:morning|afternoon|evening))(?![\p{L}])(\s+[\p{Lu}][\p{L}'’-]*(?:\s+[\p{Lu}][\p{L}'’-]*)*)?\s*([,!:]?)/iu;
|
|
31
28
|
// "Hi Pat," -> "Hi {name},": the capitalised words after the greeting are a name, and a name is not kept.
|
|
32
29
|
function normaliseGreeting(line) {
|
|
33
30
|
const match = GREETING_HEAD.exec(line);
|
|
34
31
|
if (!match)
|
|
35
|
-
return
|
|
32
|
+
return undefined;
|
|
36
33
|
return `${match[1]}${match[2] ? " {name}" : ""}${match[3]}`;
|
|
37
34
|
}
|
|
35
|
+
const CLOSING_WORDS = /^(best(?: regards| wishes)?|kind regards|warm regards|regards|thanks|thank you|cheers|sincerely|pozdrawiam|z poważaniem|serdecznie|pozdrowienia|dzięki|dziękuję|z pozdrowieniami|mit freundlichen grüßen|viele grüße|beste grüße|freundliche grüße|grüße|lg)(?![\p{L}])/iu;
|
|
36
|
+
// The closing word(s) of a line like "Best regards," or "Cheers, Dawid": only the word is kept, and only when the line is
|
|
37
|
+
// nothing more than that (plus at most a name). "Thanks Pat for the update" is a sentence, not a closing.
|
|
38
|
+
function closingHead(line) {
|
|
39
|
+
const match = CLOSING_WORDS.exec(line.trim());
|
|
40
|
+
if (!match)
|
|
41
|
+
return undefined;
|
|
42
|
+
const rest = line.trim().slice(match[0].length);
|
|
43
|
+
return /^[\s,.!]*(?:[\p{Lu}][\p{L}'’-]*)?[\s,.!]*$/u.test(rest) ? match[0] : undefined;
|
|
44
|
+
}
|
|
38
45
|
function top(counter, n) {
|
|
39
46
|
return [...counter.entries()].sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0])).slice(0, n).map(([text, count]) => ({ text, count }));
|
|
40
47
|
}
|
|
@@ -56,16 +63,17 @@ export function summarise(samples) {
|
|
|
56
63
|
const first = lines.find((line) => line.length > 0);
|
|
57
64
|
if (first && GREETING.test(first)) {
|
|
58
65
|
const greeting = normaliseGreeting(first);
|
|
59
|
-
|
|
66
|
+
if (greeting)
|
|
67
|
+
greetings.set(greeting, (greetings.get(greeting) ?? 0) + 1);
|
|
60
68
|
if (FORMAL_GREETING.test(first))
|
|
61
69
|
formal += 1;
|
|
62
70
|
else if (INFORMAL_GREETING.test(first))
|
|
63
71
|
informal += 1;
|
|
64
72
|
}
|
|
65
73
|
const tail = lines.filter((line) => line.length > 0).slice(-8);
|
|
66
|
-
const closing = tail.find((
|
|
74
|
+
const closing = tail.map(closingHead).find((head) => head !== undefined);
|
|
67
75
|
if (closing)
|
|
68
|
-
closings.set(closing
|
|
76
|
+
closings.set(closing, (closings.get(closing) ?? 0) + 1);
|
|
69
77
|
lengths.push((body.match(/\p{L}+/gu) ?? []).length);
|
|
70
78
|
if (/\p{Extended_Pictographic}/u.test(body))
|
|
71
79
|
emoji += 1;
|
|
@@ -85,6 +93,10 @@ export function summarise(samples) {
|
|
|
85
93
|
exclamationRate: Math.round((exclamations / n) * 100) / 100,
|
|
86
94
|
};
|
|
87
95
|
}
|
|
96
|
+
/** Recipients are kept under a short hash, not their address: the profile does not list whom you write to. */
|
|
97
|
+
export function recipientKey(address) {
|
|
98
|
+
return createHash("sha256").update(address.trim().toLowerCase()).digest("hex").slice(0, 16);
|
|
99
|
+
}
|
|
88
100
|
function domainOf(address) {
|
|
89
101
|
return address.split("@")[1]?.toLowerCase() ?? "";
|
|
90
102
|
}
|
|
@@ -94,7 +106,8 @@ export function buildProfile(samples, now = new Date()) {
|
|
|
94
106
|
for (const sample of samples) {
|
|
95
107
|
for (const address of sample.to) {
|
|
96
108
|
const lower = address.toLowerCase();
|
|
97
|
-
|
|
109
|
+
const key = recipientKey(lower);
|
|
110
|
+
byRecipient.set(key, [...(byRecipient.get(key) ?? []), sample]);
|
|
98
111
|
const domain = domainOf(lower);
|
|
99
112
|
if (domain && !FREEMAIL.has(domain))
|
|
100
113
|
byDomain.set(domain, [...(byDomain.get(domain) ?? []), sample]);
|
|
@@ -106,8 +119,8 @@ export function buildProfile(samples, now = new Date()) {
|
|
|
106
119
|
/** A few plain lines a model can follow when drafting for `recipient`. */
|
|
107
120
|
export function styleHints(profile, recipient) {
|
|
108
121
|
const address = recipient?.toLowerCase();
|
|
109
|
-
const summary = (address && profile.byRecipient[address]) || (address && profile.byDomain[domainOf(address)]) || profile.overall;
|
|
110
|
-
const scope = summary === profile.overall ? "in general" : address && profile.byRecipient[address] ? `to ${address}` : `to ${domainOf(address ?? "")}`;
|
|
122
|
+
const summary = (address && profile.byRecipient[recipientKey(address)]) || (address && profile.byDomain[domainOf(address)]) || profile.overall;
|
|
123
|
+
const scope = summary === profile.overall ? "in general" : address && profile.byRecipient[recipientKey(address)] ? `to ${address}` : `to ${domainOf(address ?? "")}`;
|
|
111
124
|
const lines = [];
|
|
112
125
|
const language = summary.languages[0] ? ({ en: "English", pl: "Polish", de: "German" }[summary.languages[0].text] ?? summary.languages[0].text) : undefined;
|
|
113
126
|
if (language)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style-profile.js","sourceRoot":"","sources":["../../src/utils/style-profile.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"style-profile.js","sourceRoot":"","sources":["../../src/utils/style-profile.ts"],"names":[],"mappings":"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"}
|