@postalsys/email-content 0.1.8 → 0.1.9
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 +17 -8
- package/dist/.tsbuildinfo +1 -1
- package/dist/analyze.d.ts +3 -0
- package/dist/analyze.d.ts.map +1 -1
- package/dist/analyze.js +10 -4
- package/dist/analyze.js.map +1 -1
- package/dist/annotate/agreement.d.ts +99 -0
- package/dist/annotate/agreement.d.ts.map +1 -0
- package/dist/annotate/agreement.js +126 -0
- package/dist/annotate/agreement.js.map +1 -0
- package/dist/annotate/client.d.ts +7 -19
- package/dist/annotate/client.d.ts.map +1 -1
- package/dist/annotate/client.js +28 -82
- package/dist/annotate/client.js.map +1 -1
- package/dist/annotate/http.d.ts +57 -0
- package/dist/annotate/http.d.ts.map +1 -0
- package/dist/annotate/http.js +99 -0
- package/dist/annotate/http.js.map +1 -0
- package/dist/annotate/llm.d.ts +17 -0
- package/dist/annotate/llm.d.ts.map +1 -1
- package/dist/annotate/llm.js +68 -36
- package/dist/annotate/llm.js.map +1 -1
- package/dist/annotate/probabilities.d.ts +48 -0
- package/dist/annotate/probabilities.d.ts.map +1 -0
- package/dist/annotate/probabilities.js +119 -0
- package/dist/annotate/probabilities.js.map +1 -0
- package/dist/annotate/providers.d.ts +26 -0
- package/dist/annotate/providers.d.ts.map +1 -0
- package/dist/annotate/providers.js +43 -0
- package/dist/annotate/providers.js.map +1 -0
- package/dist/annotate/store.d.ts +3 -0
- package/dist/annotate/store.d.ts.map +1 -1
- package/dist/annotate/store.js +3 -2
- package/dist/annotate/store.js.map +1 -1
- package/dist/annotate/typesafe-client.d.ts +64 -0
- package/dist/annotate/typesafe-client.d.ts.map +1 -0
- package/dist/annotate/typesafe-client.js +76 -0
- package/dist/annotate/typesafe-client.js.map +1 -0
- package/dist/annotate/typesafe-prompt.d.ts +64 -0
- package/dist/annotate/typesafe-prompt.d.ts.map +1 -0
- package/dist/annotate/typesafe-prompt.js +170 -0
- package/dist/annotate/typesafe-prompt.js.map +1 -0
- package/dist/classify/rules.d.ts +7 -0
- package/dist/classify/rules.d.ts.map +1 -1
- package/dist/classify/rules.js +67 -14
- package/dist/classify/rules.js.map +1 -1
- package/dist/cli/agreement.d.ts +27 -0
- package/dist/cli/agreement.d.ts.map +1 -0
- package/dist/cli/agreement.js +153 -0
- package/dist/cli/agreement.js.map +1 -0
- package/dist/cli/annotate.d.ts.map +1 -1
- package/dist/cli/annotate.js +28 -16
- package/dist/cli/annotate.js.map +1 -1
- package/dist/cli/audit.d.ts +12 -0
- package/dist/cli/audit.d.ts.map +1 -0
- package/dist/cli/audit.js +134 -0
- package/dist/cli/audit.js.map +1 -0
- package/dist/cli/disagreements.d.ts.map +1 -1
- package/dist/cli/disagreements.js +20 -3
- package/dist/cli/disagreements.js.map +1 -1
- package/dist/cli/evaluate.d.ts.map +1 -1
- package/dist/cli/evaluate.js +5 -70
- package/dist/cli/evaluate.js.map +1 -1
- package/dist/cli/main.js +28 -2
- package/dist/cli/main.js.map +1 -1
- package/dist/corpus/analyze.d.ts.map +1 -1
- package/dist/corpus/analyze.js +4 -5
- package/dist/corpus/analyze.js.map +1 -1
- package/dist/corpus/migrations/index.d.ts.map +1 -1
- package/dist/corpus/migrations/index.js +14 -0
- package/dist/corpus/migrations/index.js.map +1 -1
- package/dist/corpus/stats.d.ts +1 -0
- package/dist/corpus/stats.d.ts.map +1 -1
- package/dist/corpus/stats.js +1 -0
- package/dist/corpus/stats.js.map +1 -1
- package/dist/detect/patterns/forward-headers.json +24 -0
- package/dist/detect/patterns/html-clients.json +27 -0
- package/dist/detect/patterns/reply-headers.json +368 -0
- package/dist/detect/reply-header.d.ts.map +1 -1
- package/dist/detect/reply-header.js +12 -1
- package/dist/detect/reply-header.js.map +1 -1
- package/dist/detect/subject.d.ts +16 -0
- package/dist/detect/subject.d.ts.map +1 -0
- package/dist/detect/subject.js +22 -0
- package/dist/detect/subject.js.map +1 -0
- package/dist/eval/pattern-audit.d.ts +56 -0
- package/dist/eval/pattern-audit.d.ts.map +1 -0
- package/dist/eval/pattern-audit.js +111 -0
- package/dist/eval/pattern-audit.js.map +1 -0
- package/dist/eval/reference.d.ts +44 -0
- package/dist/eval/reference.d.ts.map +1 -0
- package/dist/eval/reference.js +87 -0
- package/dist/eval/reference.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mime/flowed.d.ts +14 -0
- package/dist/mime/flowed.d.ts.map +1 -0
- package/dist/mime/flowed.js +71 -0
- package/dist/mime/flowed.js.map +1 -0
- package/dist/mime/parse.js +2 -5
- package/dist/mime/parse.js.map +1 -1
- package/dist/segment/html-blocks.d.ts.map +1 -1
- package/dist/segment/html-blocks.js +11 -7
- package/dist/segment/html-blocks.js.map +1 -1
- package/dist/segment/text-blocks.d.ts.map +1 -1
- package/dist/segment/text-blocks.js +14 -3
- package/dist/segment/text-blocks.js.map +1 -1
- package/dist/types.d.ts +3 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -2
- package/package.json +2 -2
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `email-content agreement` subcommand.
|
|
4
|
+
*
|
|
5
|
+
* Measures one annotator against others on the blocks they both labelled. This is the decision
|
|
6
|
+
* gate for adopting a new annotator: its agreement with the strong-model reference, and above all
|
|
7
|
+
* the count of blocks it would hide that every reference calls authored.
|
|
8
|
+
*
|
|
9
|
+
* Reads labels and counts only. Prints no message content.
|
|
10
|
+
*/
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.parseSpec = parseSpec;
|
|
16
|
+
exports.renderAgreementReport = renderAgreementReport;
|
|
17
|
+
exports.agreementCommand = agreementCommand;
|
|
18
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
19
|
+
const agreement_1 = require("../annotate/agreement");
|
|
20
|
+
const probabilities_1 = require("../annotate/probabilities");
|
|
21
|
+
const stats_1 = require("../corpus/stats");
|
|
22
|
+
const store_1 = require("../corpus/store");
|
|
23
|
+
const args_1 = require("./args");
|
|
24
|
+
/** `model@prompt-version`, or a bare model to take every prompt version's latest label. */
|
|
25
|
+
function parseSpec(spec) {
|
|
26
|
+
const at = spec.lastIndexOf('@');
|
|
27
|
+
const model = at === -1 ? spec : spec.slice(0, at);
|
|
28
|
+
const promptVersion = at === -1 ? null : spec.slice(at + 1) || null;
|
|
29
|
+
return { name: spec, model, promptVersion };
|
|
30
|
+
}
|
|
31
|
+
/** Runs belonging to an annotator, as a WHERE fragment over annotation_runs aliased `r`. */
|
|
32
|
+
function specWhere(spec) {
|
|
33
|
+
return spec.promptVersion
|
|
34
|
+
? { sql: "r.source = 'llm' AND r.model = ? AND r.prompt_version = ?", params: [spec.model, spec.promptVersion] }
|
|
35
|
+
: { sql: "r.source = 'llm' AND r.model = ?", params: [spec.model] };
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Labels for one annotator. Only the candidate needs distributions, and only when a cost ratio is
|
|
39
|
+
* re-applied; only references need a language, since per language figures are keyed on them.
|
|
40
|
+
*/
|
|
41
|
+
function loadBlocks(store, spec, need) {
|
|
42
|
+
const where = specWhere(spec);
|
|
43
|
+
// Run order, so that later runs overwrite earlier ones per block in compareAnnotators.
|
|
44
|
+
const rows = store.query(`SELECT a.path, a.representation, a.block_index, a.mime_part, a.block_start, a.block_end, a.char_count, a.label,
|
|
45
|
+
${need.probabilities ? 'a.probabilities' : 'NULL'} AS probabilities, ${need.lang ? 'm.lang' : 'NULL'} AS lang
|
|
46
|
+
FROM annotations a
|
|
47
|
+
JOIN annotation_runs r ON r.id = a.run_id
|
|
48
|
+
${need.lang ? 'LEFT JOIN messages m ON m.path = a.path' : ''}
|
|
49
|
+
WHERE a.source = 'llm' AND ${where.sql}
|
|
50
|
+
ORDER BY a.run_id, a.id`, ...where.params);
|
|
51
|
+
return rows.map(row => ({
|
|
52
|
+
path: row.path,
|
|
53
|
+
representation: row.representation,
|
|
54
|
+
blockIndex: row.block_index,
|
|
55
|
+
mimePart: row.mime_part,
|
|
56
|
+
blockStart: row.block_start,
|
|
57
|
+
blockEnd: row.block_end,
|
|
58
|
+
charCount: row.char_count,
|
|
59
|
+
label: row.label,
|
|
60
|
+
probabilities: (0, probabilities_1.parseStoredProbabilities)(row.probabilities),
|
|
61
|
+
lang: row.lang
|
|
62
|
+
}));
|
|
63
|
+
}
|
|
64
|
+
function runCost(store, spec) {
|
|
65
|
+
const where = specWhere(spec);
|
|
66
|
+
const row = store.queryOne(`SELECT SUM(messages) AS messages, SUM(prompt_tokens) AS tokens, SUM(finished_at - started_at) AS wall
|
|
67
|
+
FROM annotation_runs r
|
|
68
|
+
WHERE r.finished_at IS NOT NULL AND ${where.sql}`, ...where.params);
|
|
69
|
+
return { messages: row?.messages ?? 0, promptTokens: row?.tokens ?? 0, wallMs: row?.wall ?? 0 };
|
|
70
|
+
}
|
|
71
|
+
function renderAgreementReport(candidate, report, cost) {
|
|
72
|
+
const out = [];
|
|
73
|
+
out.push(`AGREEMENT: ${candidate}`);
|
|
74
|
+
out.push(` candidate blocks ${report.candidateBlocks}, without any reference label ${report.unmatched}`);
|
|
75
|
+
if (report.costRatio !== null) {
|
|
76
|
+
out.push(` cost rule re-applied at ratio ${report.costRatio} to ${report.rescored} block(s) with a stored distribution`);
|
|
77
|
+
}
|
|
78
|
+
if (cost.messages) {
|
|
79
|
+
out.push(` cost: ${Math.round(cost.promptTokens / cost.messages)} prompt tokens and ${(cost.wallMs / cost.messages).toFixed(0)} ms wall time per message, over ${cost.messages} messages`);
|
|
80
|
+
}
|
|
81
|
+
out.push('');
|
|
82
|
+
for (const ref of report.references) {
|
|
83
|
+
out.push(`vs ${ref.name}`);
|
|
84
|
+
out.push(` shared blocks ${ref.shared}`);
|
|
85
|
+
out.push(` exact label match ${ref.agreed} (${(0, stats_1.pct)(ref.agreed, ref.shared)})`);
|
|
86
|
+
out.push(` by characters ${(0, stats_1.pct)(ref.agreedChars, ref.sharedChars)}`);
|
|
87
|
+
out.push(` candidate hides what reference calls authored ${ref.expensive.blocks} blocks, ${ref.expensive.chars} chars <- expensive`);
|
|
88
|
+
out.push(` candidate shows what reference calls history ${ref.cheap.blocks} blocks, ${ref.cheap.chars} chars <- cheap`);
|
|
89
|
+
if (ref.pairs.length) {
|
|
90
|
+
out.push(' top disagreements (reference -> candidate)');
|
|
91
|
+
for (const pair of ref.pairs.slice(0, 8)) {
|
|
92
|
+
out.push(` ${pair.reference.padEnd(18)} -> ${pair.candidate.padEnd(18)} ${String(pair.blocks).padStart(6)}`);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
out.push(' per reference label');
|
|
96
|
+
for (const item of ref.perLabel) {
|
|
97
|
+
out.push(` ${item.label.padEnd(18)} ${String(item.support).padStart(6)} ${(0, stats_1.pct)(item.agreed, item.support).padStart(6)}`);
|
|
98
|
+
}
|
|
99
|
+
out.push(' per language');
|
|
100
|
+
for (const item of ref.perLang) {
|
|
101
|
+
out.push(` ${item.lang.padEnd(18)} ${String(item.shared).padStart(6)} ${(0, stats_1.pct)(item.agreed, item.shared).padStart(6)}`);
|
|
102
|
+
}
|
|
103
|
+
out.push('');
|
|
104
|
+
}
|
|
105
|
+
if (report.references.length) {
|
|
106
|
+
const c = report.consensusExpensive;
|
|
107
|
+
out.push(`GATE: blocks every reference calls authored and the candidate would hide`);
|
|
108
|
+
out.push(` ${c.blocks} blocks, ${c.chars} chars, of ${c.shared} blocks labelled by all references`);
|
|
109
|
+
out.push('');
|
|
110
|
+
}
|
|
111
|
+
out.push('For scale: two strong models agree on 97.6% of blocks, a weak one on 80.5% (docs/annotation.md).');
|
|
112
|
+
return out.join('\n');
|
|
113
|
+
}
|
|
114
|
+
async function agreementCommand(args) {
|
|
115
|
+
const dbPath = (0, args_1.flagString)(args, 'db', 'data/corpus.sqlite');
|
|
116
|
+
if (!node_fs_1.default.existsSync(dbPath)) {
|
|
117
|
+
process.stderr.write(`no corpus database at ${dbPath}\n`);
|
|
118
|
+
return 2;
|
|
119
|
+
}
|
|
120
|
+
const candidateFlag = (0, args_1.flagString)(args, 'candidate', '');
|
|
121
|
+
const references = (0, args_1.flagString)(args, 'reference', '')
|
|
122
|
+
.split(',')
|
|
123
|
+
.map(item => item.trim())
|
|
124
|
+
.filter(Boolean)
|
|
125
|
+
.map(parseSpec);
|
|
126
|
+
if (!candidateFlag || !references.length) {
|
|
127
|
+
process.stderr.write('usage: agreement --candidate <model@version> --reference <model@version>[,<model@version>...]\n');
|
|
128
|
+
return 2;
|
|
129
|
+
}
|
|
130
|
+
const candidate = parseSpec(candidateFlag);
|
|
131
|
+
const costRatio = args.flags.has('cost-ratio') ? (0, args_1.flagNumberInRange)(args, 'cost-ratio', 10, 1, 1000) : null;
|
|
132
|
+
const store = new store_1.CorpusStore(dbPath);
|
|
133
|
+
try {
|
|
134
|
+
const candidateBlocks = loadBlocks(store, candidate, { probabilities: costRatio !== null, lang: false });
|
|
135
|
+
if (!candidateBlocks.length) {
|
|
136
|
+
process.stderr.write(`no annotations found for ${candidate.name}\n`);
|
|
137
|
+
return 1;
|
|
138
|
+
}
|
|
139
|
+
const report = (0, agreement_1.compareAnnotators)(candidateBlocks, references.map(reference => ({ name: reference.name, blocks: loadBlocks(store, reference, { probabilities: false, lang: true }) })), costRatio);
|
|
140
|
+
const cost = runCost(store, candidate);
|
|
141
|
+
if ((0, args_1.flagBool)(args, 'json', false)) {
|
|
142
|
+
process.stdout.write(`${JSON.stringify({ candidate: candidate.name, ...report, cost }, null, 2)}\n`);
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
process.stdout.write(`${renderAgreementReport(candidate.name, report, cost)}\n`);
|
|
146
|
+
}
|
|
147
|
+
return 0;
|
|
148
|
+
}
|
|
149
|
+
finally {
|
|
150
|
+
store.close();
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
//# sourceMappingURL=agreement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agreement.js","sourceRoot":"","sources":["../../src/cli/agreement.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotate.d.ts","sourceRoot":"","sources":["../../src/cli/annotate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAM9C,OAAO,EAAyC,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AA0DhF,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"annotate.d.ts","sourceRoot":"","sources":["../../src/cli/annotate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAM9C,OAAO,EAAyC,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AA0DhF,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CA6NvE;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CA2DzE"}
|
package/dist/cli/annotate.js
CHANGED
|
@@ -52,8 +52,8 @@ exports.renderAgreement = renderAgreement;
|
|
|
52
52
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
53
53
|
const node_path_1 = __importDefault(require("node:path"));
|
|
54
54
|
const llm_1 = require("../annotate/llm");
|
|
55
|
-
const
|
|
56
|
-
const
|
|
55
|
+
const probabilities_1 = require("../annotate/probabilities");
|
|
56
|
+
const providers_1 = require("../annotate/providers");
|
|
57
57
|
const store_1 = require("../annotate/store");
|
|
58
58
|
const rules_1 = require("../classify/rules");
|
|
59
59
|
const store_2 = require("../corpus/store");
|
|
@@ -117,16 +117,23 @@ async function annotateCommand(args) {
|
|
|
117
117
|
process.stderr.write(`no corpus database at ${dbPath}. Run "corpus scan" first.\n`);
|
|
118
118
|
return 2;
|
|
119
119
|
}
|
|
120
|
-
const
|
|
120
|
+
const providerName = (0, args_1.flagString)(args, 'provider', 'openai');
|
|
121
|
+
const provider = (0, providers_1.provider)(providerName);
|
|
122
|
+
if (!provider) {
|
|
123
|
+
process.stderr.write(`unknown provider: ${providerName}. Use one of ${Object.keys(providers_1.PROVIDERS).join(', ')}\n`);
|
|
124
|
+
return 2;
|
|
125
|
+
}
|
|
126
|
+
const { promptVersion } = provider;
|
|
127
|
+
const model = (0, args_1.flagString)(args, 'model', provider.defaultModel);
|
|
121
128
|
const limit = (0, args_1.flagPositiveInt)(args, 'sample', 25);
|
|
122
129
|
const concurrency = (0, args_1.flagPositiveInt)(args, 'concurrency', 4);
|
|
123
130
|
const traffic = (0, args_1.flagString)(args, 'traffic', 'human');
|
|
124
131
|
const seed = (0, args_1.flagString)(args, 'seed', 'annotate');
|
|
125
132
|
const dryRun = (0, args_1.flagBool)(args, 'dry-run', false);
|
|
126
|
-
let
|
|
133
|
+
let annotator = null;
|
|
127
134
|
if (!dryRun) {
|
|
128
135
|
try {
|
|
129
|
-
|
|
136
|
+
annotator = provider.create(model);
|
|
130
137
|
}
|
|
131
138
|
catch (err) {
|
|
132
139
|
process.stderr.write(`${err instanceof Error ? err.message : String(err)}\n`);
|
|
@@ -145,7 +152,7 @@ async function annotateCommand(args) {
|
|
|
145
152
|
}
|
|
146
153
|
// Resume is scoped to the current prompt version: labels made under an older prompt are
|
|
147
154
|
// different data, and treating them as already-done made a version bump silently no-op.
|
|
148
|
-
const already = (0, args_1.flagBool)(args, 'resume', true) ? (0, store_1.annotatedPaths)(store, 'llm', model,
|
|
155
|
+
const already = (0, args_1.flagBool)(args, 'resume', true) ? (0, store_1.annotatedPaths)(store, 'llm', model, promptVersion) : new Set();
|
|
149
156
|
// Deterministic selection: hash the path with the seed and take the lowest values, so the same
|
|
150
157
|
// seed always picks the same messages regardless of database order.
|
|
151
158
|
const where = ["f.status = 'ok'", 'm.is_reply = 1'];
|
|
@@ -206,13 +213,13 @@ async function annotateCommand(args) {
|
|
|
206
213
|
store.close();
|
|
207
214
|
return 1;
|
|
208
215
|
}
|
|
209
|
-
process.stderr.write(`annotating ${selected.length} message(s) with ${model}, concurrency ${concurrency}\n`);
|
|
216
|
+
process.stderr.write(`annotating ${selected.length} message(s) with ${model} (${providerName}, ${promptVersion}), concurrency ${concurrency}\n`);
|
|
210
217
|
if (already.size) {
|
|
211
218
|
process.stderr.write(`skipping ${already.size} already annotated by this model\n`);
|
|
212
219
|
}
|
|
213
220
|
// A dry run must leave no trace in the database: an empty annotation_runs row looks like an
|
|
214
221
|
// interrupted run to anything auditing the run history.
|
|
215
|
-
const runId = dryRun ? -1 : (0, store_1.startAnnotationRun)(store, { source: 'llm', model, promptVersion
|
|
222
|
+
const runId = dryRun ? -1 : (0, store_1.startAnnotationRun)(store, { source: 'llm', model, promptVersion });
|
|
216
223
|
let failures = 0;
|
|
217
224
|
let blockCount = 0;
|
|
218
225
|
let messageCount = 0;
|
|
@@ -239,7 +246,7 @@ async function annotateCommand(args) {
|
|
|
239
246
|
}
|
|
240
247
|
let result;
|
|
241
248
|
try {
|
|
242
|
-
result = await
|
|
249
|
+
result = await annotator.annotate(prepared.blocks, prepared.isReply);
|
|
243
250
|
}
|
|
244
251
|
catch (err) {
|
|
245
252
|
failures++;
|
|
@@ -267,27 +274,32 @@ async function annotateCommand(args) {
|
|
|
267
274
|
confidence: label.confidence,
|
|
268
275
|
baselineLabel: decision?.label ?? null,
|
|
269
276
|
baselineConfidence: decision?.confidence ?? null,
|
|
270
|
-
baselineReasons: decision?.reasons ?? []
|
|
277
|
+
baselineReasons: decision?.reasons ?? [],
|
|
278
|
+
probabilities: label.probabilities ?? null
|
|
271
279
|
});
|
|
272
280
|
}
|
|
273
281
|
if (messageCount % 10 === 0) {
|
|
274
282
|
process.stderr.write(` ${messageCount}/${selected.length}\n`);
|
|
275
283
|
}
|
|
276
284
|
});
|
|
285
|
+
const usage = annotator?.usage;
|
|
277
286
|
if (!dryRun) {
|
|
278
287
|
(0, store_1.writeAnnotations)(store, runId, rows);
|
|
279
288
|
(0, store_1.finishAnnotationRun)(store, runId, {
|
|
280
289
|
messages: messageCount,
|
|
281
290
|
blocks: blockCount,
|
|
282
291
|
failures,
|
|
283
|
-
promptTokens:
|
|
284
|
-
completionTokens:
|
|
292
|
+
promptTokens: usage?.promptTokens ?? 0,
|
|
293
|
+
completionTokens: usage?.completionTokens ?? 0
|
|
285
294
|
});
|
|
286
295
|
}
|
|
287
296
|
const elapsed = (Date.now() - started) / 1000;
|
|
288
297
|
process.stderr.write(`done in ${elapsed.toFixed(1)}s, ${messageCount} messages, ${blockCount} blocks, ${failures} failures\n`);
|
|
289
|
-
if (
|
|
290
|
-
process.stderr.write(`tokens: ${
|
|
298
|
+
if (usage) {
|
|
299
|
+
process.stderr.write(`tokens: ${usage.promptTokens} prompt + ${usage.completionTokens} completion over ${usage.requests} requests\n`);
|
|
300
|
+
if (messageCount) {
|
|
301
|
+
process.stderr.write(`per message: ${Math.round(usage.promptTokens / messageCount)} prompt tokens, ${((1000 * elapsed) / messageCount).toFixed(0)} ms wall time\n`);
|
|
302
|
+
}
|
|
291
303
|
}
|
|
292
304
|
if (dryRun) {
|
|
293
305
|
process.stdout.write(`dry run: would annotate ${messageCount} messages, ${blockCount} blocks\n`);
|
|
@@ -340,8 +352,8 @@ function renderAgreement(store, runId) {
|
|
|
340
352
|
}
|
|
341
353
|
out.push('');
|
|
342
354
|
// The asymmetric cost cell: the baseline hid or collapsed something the model calls authored.
|
|
343
|
-
const hidden = rows.filter(row => row.baseline_label === 'REPLY_HISTORY' && (row.label
|
|
344
|
-
const shown = rows.filter(row => row.label === 'REPLY_HISTORY' &&
|
|
355
|
+
const hidden = rows.filter(row => row.baseline_label === 'REPLY_HISTORY' && probabilities_1.AUTHORED_LABELS.has(row.label));
|
|
356
|
+
const shown = rows.filter(row => row.label === 'REPLY_HISTORY' && row.baseline_label !== null && probabilities_1.AUTHORED_LABELS.has(row.baseline_label));
|
|
345
357
|
out.push('ASYMMETRIC COST VIEW');
|
|
346
358
|
out.push(` baseline said history, llm said authored ${hidden.length} blocks, ${hidden.reduce((sum, row) => sum + row.char_count, 0)} chars <- the expensive direction`);
|
|
347
359
|
out.push(` baseline said authored, llm said history ${shown.length} blocks, ${shown.reduce((sum, row) => sum + row.char_count, 0)} chars <- the cheap direction`);
|
package/dist/cli/annotate.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"annotate.js","sourceRoot":"","sources":["../../src/cli/annotate.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"annotate.js","sourceRoot":"","sources":["../../src/cli/annotate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `email-content audit` subcommand.
|
|
3
|
+
*
|
|
4
|
+
* Per pattern and per rule precision against the stored reference labels, so a pattern that fires
|
|
5
|
+
* on authored text can be found and fixed by name. See src/eval/pattern-audit.ts for what the two
|
|
6
|
+
* views measure.
|
|
7
|
+
*
|
|
8
|
+
* Prints pattern ids, reason codes and counts only, never message content.
|
|
9
|
+
*/
|
|
10
|
+
import { type ParsedArgs } from './args';
|
|
11
|
+
export declare function auditCommand(args: ParsedArgs): Promise<number>;
|
|
12
|
+
//# sourceMappingURL=audit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/cli/audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAWH,OAAO,EAA4C,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAwBnF,wBAAsB,YAAY,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAuGpE"}
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* `email-content audit` subcommand.
|
|
4
|
+
*
|
|
5
|
+
* Per pattern and per rule precision against the stored reference labels, so a pattern that fires
|
|
6
|
+
* on authored text can be found and fixed by name. See src/eval/pattern-audit.ts for what the two
|
|
7
|
+
* views measure.
|
|
8
|
+
*
|
|
9
|
+
* Prints pattern ids, reason codes and counts only, never message content.
|
|
10
|
+
*/
|
|
11
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
+
};
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.auditCommand = auditCommand;
|
|
16
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
17
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
18
|
+
const index_1 = require("../index");
|
|
19
|
+
const store_1 = require("../corpus/store");
|
|
20
|
+
const thread_index_1 = require("../corpus/thread-index");
|
|
21
|
+
const pattern_audit_1 = require("../eval/pattern-audit");
|
|
22
|
+
const reference_1 = require("../eval/reference");
|
|
23
|
+
const parse_1 = require("../mime/parse");
|
|
24
|
+
const types_1 = require("../types");
|
|
25
|
+
const args_1 = require("./args");
|
|
26
|
+
function pct(value, total) {
|
|
27
|
+
return total ? `${((100 * value) / total).toFixed(1)}%` : '-';
|
|
28
|
+
}
|
|
29
|
+
function renderRows(title, rows, minBlocks) {
|
|
30
|
+
const out = [title, ` ${'key'.padEnd(52)} blocks precision authored lost lost chars reference labels`];
|
|
31
|
+
for (const row of rows) {
|
|
32
|
+
if (row.blocks < minBlocks && !row.authoredHidden) {
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
const labels = types_1.LABELS.filter(label => row.byReference[label])
|
|
36
|
+
.map(label => `${label.slice(0, 5)}:${row.byReference[label]}`)
|
|
37
|
+
.join(' ');
|
|
38
|
+
out.push(` ${row.key.slice(0, 52).padEnd(52)} ${String(row.blocks).padStart(6)} ${(row.expected ? pct(row.matching, row.scored) : '-').padStart(10)} ` +
|
|
39
|
+
`${String(row.authored).padStart(9)} ${String(row.authoredHidden).padStart(5)} ${String(row.authoredHiddenChars).padStart(11)} ${labels}`);
|
|
40
|
+
}
|
|
41
|
+
out.push('');
|
|
42
|
+
return out;
|
|
43
|
+
}
|
|
44
|
+
async function auditCommand(args) {
|
|
45
|
+
const dbPath = (0, args_1.flagString)(args, 'db', 'data/corpus.sqlite');
|
|
46
|
+
if (!node_fs_1.default.existsSync(dbPath)) {
|
|
47
|
+
process.stderr.write(`no corpus database at ${dbPath}\n`);
|
|
48
|
+
return 2;
|
|
49
|
+
}
|
|
50
|
+
const model = (0, args_1.flagString)(args, 'model', 'gpt-5.6-sol');
|
|
51
|
+
const promptVersion = (0, args_1.flagString)(args, 'prompt-version', '');
|
|
52
|
+
const useHistory = (0, args_1.flagBool)(args, 'history', false);
|
|
53
|
+
const minBlocks = (0, args_1.flagNonNegativeInt)(args, 'min', 5);
|
|
54
|
+
const store = new store_1.CorpusStore(dbPath);
|
|
55
|
+
const root = store.latestCompletedRun()?.root;
|
|
56
|
+
if (!root) {
|
|
57
|
+
process.stderr.write('no completed scan run found\n');
|
|
58
|
+
store.close();
|
|
59
|
+
return 2;
|
|
60
|
+
}
|
|
61
|
+
const byPath = (0, reference_1.loadReference)(store, model, promptVersion);
|
|
62
|
+
if (!byPath.size) {
|
|
63
|
+
process.stderr.write(`no annotations found for model ${model}. Run "annotate" first.\n`);
|
|
64
|
+
store.close();
|
|
65
|
+
return 2;
|
|
66
|
+
}
|
|
67
|
+
const resolver = useHistory ? (0, thread_index_1.corpusThreadResolver)(store, root) : null;
|
|
68
|
+
process.stderr.write(`auditing ${byPath.size} messages against ${model}${useHistory ? ', with thread history' : ''}\n`);
|
|
69
|
+
const blocks = [];
|
|
70
|
+
let failures = 0;
|
|
71
|
+
let unaligned = 0;
|
|
72
|
+
for (const [relPath, references] of byPath) {
|
|
73
|
+
let result;
|
|
74
|
+
try {
|
|
75
|
+
const raw = node_fs_1.default.readFileSync(node_path_1.default.join(root, relPath));
|
|
76
|
+
let historyDocuments;
|
|
77
|
+
if (resolver) {
|
|
78
|
+
try {
|
|
79
|
+
historyDocuments = await resolver.resolve((await (0, parse_1.parseMessage)(raw)).headers);
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
historyDocuments = undefined;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
result = await (0, index_1.extract)(raw, { explain: true, ...(historyDocuments?.length ? { historyDocuments } : {}) });
|
|
86
|
+
}
|
|
87
|
+
catch {
|
|
88
|
+
failures++;
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
const diagnostics = result.diagnostics?.blocks ?? [];
|
|
92
|
+
const primary = result.diagnostics?.primaryPart ?? '';
|
|
93
|
+
const byCoordinates = new Map(diagnostics.map(block => [`${block.mimePart}|${block.sourceIndex}`, block]));
|
|
94
|
+
const lookup = (0, reference_1.segmentLookup)(result.segments, result.hiddenSegments);
|
|
95
|
+
for (const reference of references) {
|
|
96
|
+
// Same fallback as the segment lookup: an annotation without a part belongs to the
|
|
97
|
+
// only part a single section message has.
|
|
98
|
+
const block = byCoordinates.get(`${reference.mime_part ?? primary}|${reference.block_index}`);
|
|
99
|
+
if (!block) {
|
|
100
|
+
unaligned++;
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
const covering = lookup(reference.mime_part, reference.block_index);
|
|
104
|
+
blocks.push({
|
|
105
|
+
reference: reference.label,
|
|
106
|
+
predicted: covering?.label ?? 'UNKNOWN',
|
|
107
|
+
hidden: covering?.hidden ?? false,
|
|
108
|
+
chars: reference.char_count,
|
|
109
|
+
evidence: block.evidence,
|
|
110
|
+
reasons: block.reasons
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
store.close();
|
|
115
|
+
if (failures) {
|
|
116
|
+
process.stderr.write(`${failures} message(s) could not be audited\n`);
|
|
117
|
+
}
|
|
118
|
+
if (unaligned) {
|
|
119
|
+
// Annotations made before a segmentation change can point at blocks that no longer exist.
|
|
120
|
+
process.stderr.write(`${unaligned} annotated block(s) no longer align with the current segmentation and were skipped\n`);
|
|
121
|
+
}
|
|
122
|
+
const audit = (0, pattern_audit_1.auditPatterns)(blocks);
|
|
123
|
+
if ((0, args_1.flagBool)(args, 'json', false)) {
|
|
124
|
+
process.stdout.write(`${JSON.stringify(audit, null, 2)}\n`);
|
|
125
|
+
return 0;
|
|
126
|
+
}
|
|
127
|
+
const out = [`PATTERN AUDIT vs ${model}${useHistory ? ' (with history)' : ' (no history)'}`, ` blocks ${audit.blocks}`, ''];
|
|
128
|
+
out.push(' precision: share of hits whose reference label is one the evidence kind implies', ' authored: hits the reference says the sender wrote (NEW_CONTENT or INLINE_QUOTE)', ' lost: authored hits the extractor hid', '');
|
|
129
|
+
out.push(...renderRows('EVIDENCE (pattern precision, worst first)', audit.evidence, minBlocks));
|
|
130
|
+
out.push(...renderRows('REASONS (rule precision against the label the rule assigned)', audit.reasons, minBlocks));
|
|
131
|
+
process.stdout.write(`${out.join('\n')}\n`);
|
|
132
|
+
return 0;
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.js","sourceRoot":"","sources":["../../src/cli/audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disagreements.d.ts","sourceRoot":"","sources":["../../src/cli/disagreements.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;
|
|
1
|
+
{"version":3,"file":"disagreements.d.ts","sourceRoot":"","sources":["../../src/cli/disagreements.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAWH,OAAO,EAAmD,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AA6C1F,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CA8H5E"}
|
|
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
exports.disagreementsCommand = disagreementsCommand;
|
|
18
18
|
const node_fs_1 = __importDefault(require("node:fs"));
|
|
19
19
|
const node_path_1 = __importDefault(require("node:path"));
|
|
20
|
+
const probabilities_1 = require("../annotate/probabilities");
|
|
20
21
|
const rules_1 = require("../classify/rules");
|
|
21
22
|
const store_1 = require("../corpus/store");
|
|
22
23
|
const parse_1 = require("../mime/parse");
|
|
@@ -64,6 +65,11 @@ async function disagreementsCommand(args) {
|
|
|
64
65
|
return 2;
|
|
65
66
|
}
|
|
66
67
|
const limit = (0, args_1.flagPositiveInt)(args, 'limit', 20);
|
|
68
|
+
const sort = (0, args_1.flagString)(args, 'sort', 'size');
|
|
69
|
+
if (sort !== 'size' && sort !== 'margin') {
|
|
70
|
+
process.stderr.write(`unknown sort: ${sort}. Use size or margin\n`);
|
|
71
|
+
return 2;
|
|
72
|
+
}
|
|
67
73
|
const context = (0, args_1.flagNonNegativeInt)(args, 'context', 2);
|
|
68
74
|
const store = new store_1.CorpusStore(dbPath);
|
|
69
75
|
// Only a run that finished cleanly. An interrupted or failed run holds partial output that
|
|
@@ -92,10 +98,13 @@ async function disagreementsCommand(args) {
|
|
|
92
98
|
params.push(versionFilter);
|
|
93
99
|
}
|
|
94
100
|
const runJoin = joins.length ? `AND run_id IN (SELECT r.id FROM annotation_runs r WHERE ${joins.join(' AND ')})` : '';
|
|
95
|
-
|
|
101
|
+
// Smallest margin first: the blocks the annotator itself found ambiguous, which is where a human
|
|
102
|
+
// adjudicator adds the most. Rows without a distribution have no margin and sort last, by size.
|
|
103
|
+
const order = sort === 'margin' ? 'margin IS NULL, margin, char_count DESC' : 'char_count DESC';
|
|
104
|
+
const rows = store.query(`SELECT path, block_index, representation, label, confidence, baseline_label, baseline_conf, baseline_reasons, char_count, probabilities, margin
|
|
96
105
|
FROM annotations
|
|
97
106
|
WHERE ${clause} ${runFilter ? 'AND run_id = ' + runFilter : ''} ${runJoin}
|
|
98
|
-
ORDER BY
|
|
107
|
+
ORDER BY ${order}
|
|
99
108
|
LIMIT ?`, ...params, limit);
|
|
100
109
|
if (!rows.length) {
|
|
101
110
|
process.stdout.write(`no ${direction} disagreements recorded\n`);
|
|
@@ -103,7 +112,7 @@ async function disagreementsCommand(args) {
|
|
|
103
112
|
return 0;
|
|
104
113
|
}
|
|
105
114
|
const out = [];
|
|
106
|
-
out.push(`${rows.length} ${direction} disagreement(s), largest first`);
|
|
115
|
+
out.push(`${rows.length} ${direction} disagreement(s), ${sort === 'margin' ? 'most ambiguous' : 'largest'} first`);
|
|
107
116
|
if (direction === 'expensive') {
|
|
108
117
|
out.push('The baseline treated these as reply history. The annotator thought the sender wrote them.');
|
|
109
118
|
out.push('Each one is a candidate content loss bug and should be judged by a human.');
|
|
@@ -126,6 +135,14 @@ async function disagreementsCommand(args) {
|
|
|
126
135
|
out.push(`${row.path} block #${row.block_index} (${row.representation})`);
|
|
127
136
|
out.push(` baseline: ${row.baseline_label} ${row.baseline_conf?.toFixed(2) ?? '?'} annotator: ${row.label} ${row.confidence.toFixed(2)}`);
|
|
128
137
|
out.push(` reasons: ${row.baseline_reasons || 'none'}`);
|
|
138
|
+
const probabilities = (0, probabilities_1.parseStoredProbabilities)(row.probabilities);
|
|
139
|
+
if (probabilities) {
|
|
140
|
+
const ranked = Object.entries(probabilities)
|
|
141
|
+
.filter(([, value]) => value >= 0.01)
|
|
142
|
+
.sort((a, b) => b[1] - a[1])
|
|
143
|
+
.map(([label, value]) => `${label} ${value.toFixed(2)}`);
|
|
144
|
+
out.push(` p: ${ranked.join(' ')} (margin ${(row.margin ?? (0, probabilities_1.probabilityMargin)(probabilities)).toFixed(2)})`);
|
|
145
|
+
}
|
|
129
146
|
if (block) {
|
|
130
147
|
out.push(` depth: quote=${block.features.quoteDepth} blockquote=${block.features.blockquoteDepth} kind=${block.kind}`);
|
|
131
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"disagreements.js","sourceRoot":"","sources":["../../src/cli/disagreements.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;
|
|
1
|
+
{"version":3,"file":"disagreements.js","sourceRoot":"","sources":["../../src/cli/disagreements.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/cli/evaluate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;
|
|
1
|
+
{"version":3,"file":"evaluate.d.ts","sourceRoot":"","sources":["../../src/cli/evaluate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAWH,OAAO,EAA4C,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAC;AAsEnF,wBAAsB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAyHvE"}
|