ai-model-verifier 3.2.0 → 3.4.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 +32 -5
- package/dist/engine/answer-fingerprint-runner.d.ts +33 -0
- package/dist/engine/answer-fingerprint-runner.d.ts.map +1 -0
- package/dist/engine/answer-fingerprint-runner.js +87 -0
- package/dist/engine/answer-fingerprint-runner.js.map +1 -0
- package/dist/engine/context.d.ts +4 -0
- package/dist/engine/context.d.ts.map +1 -1
- package/dist/engine/context.js +8 -0
- package/dist/engine/context.js.map +1 -1
- package/dist/engine/evidence.d.ts +7 -1
- package/dist/engine/evidence.d.ts.map +1 -1
- package/dist/engine/evidence.js +10 -3
- package/dist/engine/evidence.js.map +1 -1
- package/dist/identity/patterns.d.ts +6 -0
- package/dist/identity/patterns.d.ts.map +1 -1
- package/dist/identity/patterns.js +16 -0
- package/dist/identity/patterns.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/makers/resolve.d.ts.map +1 -1
- package/dist/makers/resolve.js +2 -0
- package/dist/makers/resolve.js.map +1 -1
- package/dist/makers/table.d.ts +318 -17
- package/dist/makers/table.d.ts.map +1 -1
- package/dist/makers/table.js +387 -24
- package/dist/makers/table.js.map +1 -1
- package/dist/makers/types.d.ts +8 -0
- package/dist/makers/types.d.ts.map +1 -1
- package/dist/makers/types.js.map +1 -1
- package/dist/probes/answer-fingerprint.d.ts +58 -0
- package/dist/probes/answer-fingerprint.d.ts.map +1 -0
- package/dist/probes/answer-fingerprint.js +135 -0
- package/dist/probes/answer-fingerprint.js.map +1 -0
- package/dist/probes/prompts.d.ts +7 -0
- package/dist/probes/prompts.d.ts.map +1 -1
- package/dist/probes/prompts.js +7 -0
- package/dist/probes/prompts.js.map +1 -1
- package/dist/probes/survey.d.ts +0 -8
- package/dist/probes/survey.d.ts.map +1 -1
- package/dist/probes/survey.js +2 -10
- package/dist/probes/survey.js.map +1 -1
- package/dist/probes/table.d.ts.map +1 -1
- package/dist/probes/table.js +4 -1
- package/dist/probes/table.js.map +1 -1
- package/dist/registry.d.ts +1 -1
- package/dist/rules/answer-fingerprint.d.ts +50 -0
- package/dist/rules/answer-fingerprint.d.ts.map +1 -0
- package/dist/rules/answer-fingerprint.js +136 -0
- package/dist/rules/answer-fingerprint.js.map +1 -0
- package/dist/rules/index.d.ts +3 -0
- package/dist/rules/index.d.ts.map +1 -1
- package/dist/rules/index.js +1 -0
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/table.d.ts +1 -1
- package/dist/rules/table.d.ts.map +1 -1
- package/dist/rules/table.js +6 -0
- package/dist/rules/table.js.map +1 -1
- package/dist/rules/think-leak.d.ts +7 -0
- package/dist/rules/think-leak.d.ts.map +1 -0
- package/dist/rules/think-leak.js +26 -0
- package/dist/rules/think-leak.js.map +1 -0
- package/dist/rules/tokenizer-fingerprint.d.ts +2 -0
- package/dist/rules/tokenizer-fingerprint.d.ts.map +1 -1
- package/dist/rules/tokenizer-fingerprint.js +10 -3
- package/dist/rules/tokenizer-fingerprint.js.map +1 -1
- package/dist/rules/types.d.ts +2 -0
- package/dist/rules/types.d.ts.map +1 -1
- package/dist/rules/types.js.map +1 -1
- package/dist/rules/wrapper-leak.d.ts +8 -0
- package/dist/rules/wrapper-leak.d.ts.map +1 -0
- package/dist/rules/wrapper-leak.js +28 -0
- package/dist/rules/wrapper-leak.js.map +1 -0
- package/dist/types.d.ts +8 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/vendors/anthropic.d.ts.map +1 -1
- package/dist/vendors/anthropic.js +5 -0
- package/dist/vendors/anthropic.js.map +1 -1
- package/dist/vendors/gemini.d.ts +3 -0
- package/dist/vendors/gemini.d.ts.map +1 -1
- package/dist/vendors/gemini.js +5 -0
- package/dist/vendors/gemini.js.map +1 -1
- package/dist/vendors/openai.d.ts +6 -0
- package/dist/vendors/openai.d.ts.map +1 -1
- package/dist/vendors/openai.js +8 -1
- package/dist/vendors/openai.js.map +1 -1
- package/dist/vendors/table.d.ts +9 -0
- package/dist/vendors/table.d.ts.map +1 -1
- package/dist/vendors/types.d.ts +4 -0
- package/dist/vendors/types.d.ts.map +1 -1
- package/dist/vendors/types.js.map +1 -1
- package/dist/verify.d.ts +2 -2
- package/dist/verify.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -109,12 +109,39 @@ accounting against the billed usage, a self-reported tier, the response
|
|
|
109
109
|
envelope (which vendor's shape and id minted the reply), throughput and the
|
|
110
110
|
survey.
|
|
111
111
|
|
|
112
|
-
The
|
|
112
|
+
The answer fingerprint (`answer-fingerprint`, opt-in via `checks.answerFingerprint` or `only`)
|
|
113
|
+
asks eight one-word questions at temperature 1 (a random number, a colour, a letter, a city, a
|
|
114
|
+
coin flip, an animal, a favourite number, a fruit), `repeats` times each (default 3, 24 calls of
|
|
115
|
+
32 output tokens), and reports the answer counts per cell. One run says nothing; the answer
|
|
116
|
+
distribution of a model is specific to it once a cell holds 10 or more valid answers (the
|
|
117
|
+
method of arXiv 2607.10252), so a caller merges runs over days with `mergeFingerprints` and
|
|
118
|
+
compares a lane against the profiles it trusts with `compareFingerprints` (Jensen-Shannon
|
|
119
|
+
divergence in bits: match at or under 0.25, mismatch above 0.35) or `compareToProfiles` (a set of
|
|
120
|
+
accepted profiles: the maker's own route, each known host). The prompts carry no nonce on
|
|
121
|
+
purpose: the bytes must be identical across lanes. It separates families and mixed pools; it
|
|
122
|
+
does not name a version or a quantisation level, and nothing in the literature does black-box.
|
|
123
|
+
|
|
124
|
+
Two more note rules read what the lane leaks about itself: `think-leak` (reasoning returned
|
|
125
|
+
inside the content, which also poisons the identity probes) and `wrapper-leak` (the survey's
|
|
126
|
+
replay of prior instructions matches a known IDE or agent wrapper).
|
|
127
|
+
|
|
128
|
+
A maker may carry `selfConfusions`, names the model habitually gives for itself that are not
|
|
129
|
+
evidence of a swap: DeepSeek answers "openai" or "chatgpt" about half the time on the routes
|
|
130
|
+
DeepSeek operates. Those words are never foreign for that maker and pass its identity probes,
|
|
131
|
+
while a competitor's name (a DeepSeek saying "kimi") stays foreign. A self confusion is added
|
|
132
|
+
only after it has been measured on a route the maker operates.
|
|
133
|
+
|
|
134
|
+
The tokenizer fingerprint now measures every maker (its verdict stays Claude-only) and adds
|
|
135
|
+
`diverseDelta`, the billed input tokens of a script-mixed text that every vocabulary splits
|
|
136
|
+
differently, so two lanes of one model on different tokenizers show it in one number.
|
|
137
|
+
|
|
138
|
+
The survey (`survey`, opt-in via `checks.survey` or `only`) asks four questions
|
|
113
139
|
for the record and reports every answer with its usage, hidden token count and
|
|
114
|
-
latency:
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
140
|
+
latency: a verbatim replay of any prior instructions (a relay's injected system
|
|
141
|
+
prompt shows here), a sum (with a fact check, and the thinking it cost), a JSON
|
|
142
|
+
object naming maker and model (with a parse check) and a one sentence self
|
|
143
|
+
description. Training cutoff and context window were asked until 3.4.0 and
|
|
144
|
+
dropped: one backend known to be real gave twelve different cutoffs in 34 runs. Nothing in it decides a
|
|
118
145
|
verdict; over many lanes and weeks it is the record to read a model's usual
|
|
119
146
|
answers from before any rule gets authority over that maker.
|
|
120
147
|
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { type FingerprintLabel } from "../probes/answer-fingerprint";
|
|
2
|
+
import { type RunCtx } from "./context";
|
|
3
|
+
export type FingerprintCellSample = {
|
|
4
|
+
/** Canonical answer to how often it came. */
|
|
5
|
+
answers: Record<string, number>;
|
|
6
|
+
valid: number;
|
|
7
|
+
refusal: number;
|
|
8
|
+
invalid: number;
|
|
9
|
+
empty: number;
|
|
10
|
+
/** Transport or envelope errors, not answers. */
|
|
11
|
+
errors: number;
|
|
12
|
+
};
|
|
13
|
+
/** Per cell counts from one run; merge runs with `mergeFingerprints`. */
|
|
14
|
+
export type FingerprintSample = {
|
|
15
|
+
cells: Record<string, FingerprintCellSample>;
|
|
16
|
+
calls: number;
|
|
17
|
+
temperature: number;
|
|
18
|
+
/** Raw replies of this run, capped, for the record. */
|
|
19
|
+
raw?: {
|
|
20
|
+
cell: FingerprintLabel;
|
|
21
|
+
text: string | null;
|
|
22
|
+
error?: string;
|
|
23
|
+
}[];
|
|
24
|
+
detectedModel: string | null;
|
|
25
|
+
latencyMs: number;
|
|
26
|
+
};
|
|
27
|
+
export declare const emptyCell: () => FingerprintCellSample;
|
|
28
|
+
/**
|
|
29
|
+
* Every call sequential: the marketplaces throttle per account and the
|
|
30
|
+
* caller's pacing may not know this host. Lanes run in parallel elsewhere.
|
|
31
|
+
*/
|
|
32
|
+
export declare function collectAnswerFingerprint(ctx: RunCtx): Promise<FingerprintSample>;
|
|
33
|
+
//# sourceMappingURL=answer-fingerprint-runner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"answer-fingerprint-runner.d.ts","sourceRoot":"","sources":["../../src/engine/answer-fingerprint-runner.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,gBAAgB,EACtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAuB,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAO7D,MAAM,MAAM,qBAAqB,GAAG;IAClC,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,yEAAyE;AACzE,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAC7C,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,uDAAuD;IACvD,GAAG,CAAC,EAAE;QAAE,IAAI,EAAE,gBAAgB,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACxE,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,eAAO,MAAM,SAAS,QAAO,qBAO3B,CAAC;AAqCH;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,iBAAiB,CAAC,CAoC5B"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { classifyAnswer, FINGERPRINT_CELLS, } from "../probes/answer-fingerprint";
|
|
2
|
+
import { buildChat, callWire } from "./context";
|
|
3
|
+
/** Room for a "Sure, " prefix; thinkers get the facts' floor on top. */
|
|
4
|
+
const CELL_MAX_TOKENS = 32;
|
|
5
|
+
const TEMPERATURE = 1;
|
|
6
|
+
const RAW_CAP = 200;
|
|
7
|
+
export const emptyCell = () => ({
|
|
8
|
+
answers: {},
|
|
9
|
+
valid: 0,
|
|
10
|
+
refusal: 0,
|
|
11
|
+
invalid: 0,
|
|
12
|
+
empty: 0,
|
|
13
|
+
errors: 0,
|
|
14
|
+
});
|
|
15
|
+
async function askOnce(ctx, cell) {
|
|
16
|
+
const built = buildChat(ctx, {
|
|
17
|
+
maxTokens: CELL_MAX_TOKENS,
|
|
18
|
+
temperature: TEMPERATURE,
|
|
19
|
+
messages: [{ role: "user", content: cell.prompt }],
|
|
20
|
+
});
|
|
21
|
+
const res = await callWire(ctx, built);
|
|
22
|
+
const log = (pass, responseText, error) => ctx.onProbe?.({
|
|
23
|
+
label: `answer-fingerprint:${cell.label}`,
|
|
24
|
+
attempt: 0,
|
|
25
|
+
pass,
|
|
26
|
+
signal: null,
|
|
27
|
+
request: built,
|
|
28
|
+
responseText,
|
|
29
|
+
...(error !== undefined ? { error } : {}),
|
|
30
|
+
});
|
|
31
|
+
if (res.error !== null || res.status === null || res.status >= 400) {
|
|
32
|
+
const error = res.error ?? `HTTP ${res.status}`;
|
|
33
|
+
log(false, null, error);
|
|
34
|
+
return { text: null, error, detectedModel: null };
|
|
35
|
+
}
|
|
36
|
+
const text = ctx.wire.read.text(res.data);
|
|
37
|
+
const detectedModel = ctx.wire.read.meta(res.data).detectedModel;
|
|
38
|
+
if (text === null) {
|
|
39
|
+
log(false, null, "upstream error envelope");
|
|
40
|
+
return { text: null, error: "upstream error envelope", detectedModel };
|
|
41
|
+
}
|
|
42
|
+
log(true, text);
|
|
43
|
+
return { text, detectedModel };
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Every call sequential: the marketplaces throttle per account and the
|
|
47
|
+
* caller's pacing may not know this host. Lanes run in parallel elsewhere.
|
|
48
|
+
*/
|
|
49
|
+
export async function collectAnswerFingerprint(ctx) {
|
|
50
|
+
const started = performance.now();
|
|
51
|
+
const repeats = ctx.checks.answerFingerprint?.repeats ?? 0;
|
|
52
|
+
const cells = {};
|
|
53
|
+
const raw = [];
|
|
54
|
+
let detectedModel = null;
|
|
55
|
+
let calls = 0;
|
|
56
|
+
for (const cell of FINGERPRINT_CELLS) {
|
|
57
|
+
const c = emptyCell();
|
|
58
|
+
for (let i = 0; i < repeats; i++) {
|
|
59
|
+
const r = await askOnce(ctx, cell);
|
|
60
|
+
calls++;
|
|
61
|
+
detectedModel ??= r.detectedModel;
|
|
62
|
+
raw.push({
|
|
63
|
+
cell: cell.label,
|
|
64
|
+
text: r.text === null ? null : r.text.slice(0, RAW_CAP),
|
|
65
|
+
...(r.error !== undefined ? { error: r.error } : {}),
|
|
66
|
+
});
|
|
67
|
+
if (r.error !== undefined) {
|
|
68
|
+
c.errors++;
|
|
69
|
+
continue;
|
|
70
|
+
}
|
|
71
|
+
const { answer, cls } = classifyAnswer(r.text, cell);
|
|
72
|
+
c[cls]++;
|
|
73
|
+
if (answer !== null)
|
|
74
|
+
c.answers[answer] = (c.answers[answer] ?? 0) + 1;
|
|
75
|
+
}
|
|
76
|
+
cells[cell.label] = c;
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
cells,
|
|
80
|
+
calls,
|
|
81
|
+
temperature: TEMPERATURE,
|
|
82
|
+
raw,
|
|
83
|
+
detectedModel,
|
|
84
|
+
latencyMs: Math.round(performance.now() - started),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
//# sourceMappingURL=answer-fingerprint-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"answer-fingerprint-runner.js","sourceRoot":"","sources":["../../src/engine/answer-fingerprint-runner.ts"],"names":[],"mappings":"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"}
|
package/dist/engine/context.d.ts
CHANGED
|
@@ -16,7 +16,11 @@ export type ResolvedChecks = {
|
|
|
16
16
|
signatures: TierSignatures | undefined;
|
|
17
17
|
} | null;
|
|
18
18
|
survey: boolean;
|
|
19
|
+
answerFingerprint: {
|
|
20
|
+
repeats: number;
|
|
21
|
+
} | null;
|
|
19
22
|
};
|
|
23
|
+
export declare const DEFAULT_FINGERPRINT_REPEATS = 3;
|
|
20
24
|
export declare function resolveChecks(checks: Checks | undefined): ResolvedChecks;
|
|
21
25
|
/** Everything a rule may read about the run. */
|
|
22
26
|
export type RunCtx<V extends string = string, M extends string = string> = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/engine/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,OAAO,EACR,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACtC,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE;QAAE,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7D,oBAAoB,EAAE;QAAE,UAAU,EAAE,cAAc,GAAG,SAAS,CAAA;KAAE,GAAG,IAAI,CAAC;IACxE,MAAM,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/engine/context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,aAAa,EACb,OAAO,EACR,MAAM,kBAAkB,CAAC;AAE1B,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,EAAE;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI,CAAC;IACtC,UAAU,EAAE,OAAO,CAAC;IACpB,aAAa,EAAE;QAAE,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IAC7D,oBAAoB,EAAE;QAAE,UAAU,EAAE,cAAc,GAAG,SAAS,CAAA;KAAE,GAAG,IAAI,CAAC;IACxE,MAAM,EAAE,OAAO,CAAC;IAChB,iBAAiB,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CAC/C,CAAC;AAEF,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAE7C,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,CAoCxE;AAED,gDAAgD;AAChD,MAAM,MAAM,MAAM,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IACzE,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;IACrB,eAAe,EAAE,CAAC,CAAC;IACnB,qFAAqF;IACrF,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACvB;;;;OAIG;IACH,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IACxB,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,WAAW,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,KAAK,EAAE,MAAM,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1C,MAAM,EAAE,cAAc,CAAC;CACxB,CAAC;AAEF,eAAO,MAAM,OAAO,QAAS,MAAM,KAAG,OAKpC,CAAC;AAEH,0DAA0D;AAC1D,wBAAgB,eAAe,CAC7B,IAAI,EAAE,OAAO,EACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC/B,OAAO,CAGT;AAED,wBAAgB,QAAQ,CACtB,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,YAAY,GAClB,OAAO,CAAC,eAAe,CAAC,CAQ1B;AAED,eAAO,MAAM,SAAS,QACf,MAAM,OACN,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,KAC9B,YAC4D,CAAC;AAEhE,eAAO,MAAM,IAAI,QAAS,MAAM,OAAO,IAAI,CAAC,WAAW,EAAE,OAAO,CAAC,6BAC7B,CAAC"}
|
package/dist/engine/context.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { isRecord } from "../internal/utils";
|
|
2
|
+
export const DEFAULT_FINGERPRINT_REPEATS = 3;
|
|
2
3
|
export function resolveChecks(checks) {
|
|
3
4
|
const c = checks ?? {};
|
|
4
5
|
return {
|
|
@@ -23,6 +24,13 @@ export function resolveChecks(checks) {
|
|
|
23
24
|
}
|
|
24
25
|
: null,
|
|
25
26
|
survey: c.survey === true,
|
|
27
|
+
answerFingerprint: c.answerFingerprint
|
|
28
|
+
? {
|
|
29
|
+
repeats: typeof c.answerFingerprint === "object"
|
|
30
|
+
? (c.answerFingerprint.repeats ?? DEFAULT_FINGERPRINT_REPEATS)
|
|
31
|
+
: DEFAULT_FINGERPRINT_REPEATS,
|
|
32
|
+
}
|
|
33
|
+
: null,
|
|
26
34
|
};
|
|
27
35
|
}
|
|
28
36
|
export const wireCtx = (ctx) => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/engine/context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../src/engine/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,9 +2,12 @@ import type { TransportResult } from "../transport";
|
|
|
2
2
|
import { type RunCtx } from "./context";
|
|
3
3
|
import { type ProbeEval } from "./probe-runner";
|
|
4
4
|
import { type SurveyOutcome } from "./survey-runner";
|
|
5
|
+
import { type FingerprintSample } from "./answer-fingerprint-runner";
|
|
5
6
|
export type FixedTextEvidence = {
|
|
6
7
|
short: TransportResult;
|
|
7
8
|
long: TransportResult;
|
|
9
|
+
/** The script-mixed text every vocabulary splits differently. */
|
|
10
|
+
diverse: TransportResult;
|
|
8
11
|
};
|
|
9
12
|
export type ThinkingReplyEvidence = {
|
|
10
13
|
res: TransportResult;
|
|
@@ -20,6 +23,8 @@ export type EvidenceBag = {
|
|
|
20
23
|
probes: ProbeEval[];
|
|
21
24
|
/** The survey answers, recorded as they came. */
|
|
22
25
|
survey: SurveyOutcome[];
|
|
26
|
+
/** One-word answer counts at temperature 1, for a caller to accumulate. */
|
|
27
|
+
answerFingerprint: FingerprintSample;
|
|
23
28
|
fixedText: FixedTextEvidence;
|
|
24
29
|
/** null when the wire has no count endpoint or the short reply had no usage. */
|
|
25
30
|
countTokens: TransportResult | null;
|
|
@@ -30,10 +35,11 @@ export type EvidenceBag = {
|
|
|
30
35
|
};
|
|
31
36
|
export type EvidenceKey = keyof EvidenceBag;
|
|
32
37
|
/** Collection order when several keys are needed: probes first, then the extras. */
|
|
33
|
-
export declare const EVIDENCE_ORDER: readonly ["probes", "survey", "thinkingReply", "fixedText", "countTokens", "floorReply"];
|
|
38
|
+
export declare const EVIDENCE_ORDER: readonly ["probes", "survey", "answerFingerprint", "thinkingReply", "fixedText", "countTokens", "floorReply"];
|
|
34
39
|
export declare class EvidenceStore {
|
|
35
40
|
private readonly probes;
|
|
36
41
|
private readonly survey;
|
|
42
|
+
private readonly answerFingerprint;
|
|
37
43
|
private readonly fixedText;
|
|
38
44
|
private readonly countTokens;
|
|
39
45
|
private readonly thinkingReply;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../src/engine/evidence.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"evidence.d.ts","sourceRoot":"","sources":["../../src/engine/evidence.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAA2B,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AACjE,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAiB,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,6BAA6B,CAAC;AAQrC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,KAAK,EAAE,eAAe,CAAC;IACvB,IAAI,EAAE,eAAe,CAAC;IACtB,iEAAiE;IACjE,OAAO,EAAE,eAAe,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,GAAG,EAAE,eAAe,CAAC;IACrB,6EAA6E;IAC7E,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,GAAG,IAAI,CAAC;AAET;;;;GAIG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,iDAAiD;IACjD,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,2EAA2E;IAC3E,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,gFAAgF;IAChF,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;IACpC,2DAA2D;IAC3D,aAAa,EAAE,qBAAqB,CAAC;IACrC,oEAAoE;IACpE,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC;AAE5C,oFAAoF;AACpF,eAAO,MAAM,cAAc,+GAQgB,CAAC;AA+E5C,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA6B;IACpD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmC;IACrE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAmC;IAC7D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwC;IACpE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuC;IACrE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwC;IAEnE,YAAY,GAAG,EAAE,MAAM,EAQtB;IAED,GAAG,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;CAmB7D"}
|
package/dist/engine/evidence.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { COUNT_PROBE_MAX_TOKENS, FLOOR_PROMPT, LONG_PROMPT, SHORT_PROMPT, SIGNATURE_PROMPT, } from "../probes/prompts";
|
|
1
|
+
import { COUNT_PROBE_MAX_TOKENS, DIVERSE_PROMPT, FLOOR_PROMPT, LONG_PROMPT, SHORT_PROMPT, SIGNATURE_PROMPT, } from "../probes/prompts";
|
|
2
2
|
import { callWire, chat, wireCtx } from "./context";
|
|
3
3
|
import { collectProbes } from "./probe-runner";
|
|
4
4
|
import { collectSurvey } from "./survey-runner";
|
|
5
|
+
import { collectAnswerFingerprint, } from "./answer-fingerprint-runner";
|
|
5
6
|
const THINKING_BUDGET_TOKENS = 2000;
|
|
6
7
|
/** Thinking plus answer; too small and an adaptive model skips thinking to fit. */
|
|
7
8
|
const SIGNATURE_MAX_TOKENS = 16000;
|
|
@@ -11,6 +12,7 @@ const FLOOR_MAX_TOKENS = 2048;
|
|
|
11
12
|
export const EVIDENCE_ORDER = [
|
|
12
13
|
"probes",
|
|
13
14
|
"survey",
|
|
15
|
+
"answerFingerprint",
|
|
14
16
|
"thinkingReply",
|
|
15
17
|
"fixedText",
|
|
16
18
|
"countTokens",
|
|
@@ -22,11 +24,12 @@ async function collectFixedText(ctx) {
|
|
|
22
24
|
maxTokens: COUNT_PROBE_MAX_TOKENS,
|
|
23
25
|
messages: [{ role: "user", content: prompt }],
|
|
24
26
|
});
|
|
25
|
-
const [short, long] = await Promise.all([
|
|
27
|
+
const [short, long, diverse] = await Promise.all([
|
|
26
28
|
ask(SHORT_PROMPT),
|
|
27
29
|
ask(LONG_PROMPT),
|
|
30
|
+
ask(DIVERSE_PROMPT),
|
|
28
31
|
]);
|
|
29
|
-
return { short, long };
|
|
32
|
+
return { short, long, diverse };
|
|
30
33
|
}
|
|
31
34
|
async function collectCountTokens(ctx, store) {
|
|
32
35
|
const count = ctx.wire.ops.countTokens;
|
|
@@ -82,6 +85,7 @@ const memo = (fn) => {
|
|
|
82
85
|
export class EvidenceStore {
|
|
83
86
|
probes;
|
|
84
87
|
survey;
|
|
88
|
+
answerFingerprint;
|
|
85
89
|
fixedText;
|
|
86
90
|
countTokens;
|
|
87
91
|
thinkingReply;
|
|
@@ -89,6 +93,7 @@ export class EvidenceStore {
|
|
|
89
93
|
constructor(ctx) {
|
|
90
94
|
this.probes = memo(() => collectProbes(ctx));
|
|
91
95
|
this.survey = memo(() => collectSurvey(ctx));
|
|
96
|
+
this.answerFingerprint = memo(() => collectAnswerFingerprint(ctx));
|
|
92
97
|
this.fixedText = memo(() => collectFixedText(ctx));
|
|
93
98
|
this.countTokens = memo(() => collectCountTokens(ctx, this));
|
|
94
99
|
this.thinkingReply = memo(() => collectThinkingReply(ctx));
|
|
@@ -100,6 +105,8 @@ export class EvidenceStore {
|
|
|
100
105
|
return this.probes();
|
|
101
106
|
case "survey":
|
|
102
107
|
return this.survey();
|
|
108
|
+
case "answerFingerprint":
|
|
109
|
+
return this.answerFingerprint();
|
|
103
110
|
case "fixedText":
|
|
104
111
|
return this.fixedText();
|
|
105
112
|
case "countTokens":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/engine/evidence.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,gBAAgB,GACjB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAe,MAAM,WAAW,CAAC;AACjE,OAAO,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAsB,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/engine/evidence.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,12 @@ export declare const CODING_TOOL_NAMES: string[];
|
|
|
9
9
|
export declare const SCAM_PAGE_PATTERNS: string[];
|
|
10
10
|
export declare const CLOUD_HOST_PATTERNS: string[];
|
|
11
11
|
export declare const FAKE_RESPONSE_SIGNATURES: string[];
|
|
12
|
+
/**
|
|
13
|
+
* Fragments of an injected system prompt a lane replays when asked to repeat
|
|
14
|
+
* its instructions: the reseller wraps an IDE or agent session around the
|
|
15
|
+
* model. A fact about the lane, never about the model.
|
|
16
|
+
*/
|
|
17
|
+
export declare const WRAPPER_SIGNATURES: string[];
|
|
12
18
|
export declare const CJK_CHAR: RegExp;
|
|
13
19
|
/** A couple of incidental glyphs (a quoted loanword) are tolerated. */
|
|
14
20
|
export declare const CJK_LEAK_MIN_CHARS = 4;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../src/identity/patterns.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B,UA2BxC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,UAAiC,CAAC;AAEhE,eAAO,MAAM,kBAAkB,UAM9B,CAAC;AAGF,eAAO,MAAM,mBAAmB,UAA6E,CAAC;AAE9G,eAAO,MAAM,wBAAwB,UAA0B,CAAC;AAEhE,eAAO,MAAM,QAAQ,QAAuB,CAAC;AAE7C,uEAAuE;AACvE,eAAO,MAAM,kBAAkB,IAAI,CAAC"}
|
|
1
|
+
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../../src/identity/patterns.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,4BAA4B,UA2BxC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,UAAiC,CAAC;AAEhE,eAAO,MAAM,kBAAkB,UAM9B,CAAC;AAGF,eAAO,MAAM,mBAAmB,UAA6E,CAAC;AAE9G,eAAO,MAAM,wBAAwB,UAA0B,CAAC;AAEhE;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,UAU9B,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAuB,CAAC;AAE7C,uEAAuE;AACvE,eAAO,MAAM,kBAAkB,IAAI,CAAC"}
|
|
@@ -43,6 +43,22 @@ export const SCAM_PAGE_PATTERNS = [
|
|
|
43
43
|
// prettier-ignore
|
|
44
44
|
export const CLOUD_HOST_PATTERNS = ["amazon", "aws", "bedrock", "google", "vertex", "microsoft", "azure", "foundry"];
|
|
45
45
|
export const FAKE_RESPONSE_SIGNATURES = ["claude sonnet (4.0)"];
|
|
46
|
+
/**
|
|
47
|
+
* Fragments of an injected system prompt a lane replays when asked to repeat
|
|
48
|
+
* its instructions: the reseller wraps an IDE or agent session around the
|
|
49
|
+
* model. A fact about the lane, never about the model.
|
|
50
|
+
*/
|
|
51
|
+
export const WRAPPER_SIGNATURES = [
|
|
52
|
+
"antigravity",
|
|
53
|
+
"accessed via an api",
|
|
54
|
+
"mcp tools",
|
|
55
|
+
"qoder",
|
|
56
|
+
"cnb",
|
|
57
|
+
"kiro",
|
|
58
|
+
"windsurf",
|
|
59
|
+
"cursor",
|
|
60
|
+
"formatting notes for this conversation",
|
|
61
|
+
];
|
|
46
62
|
export const CJK_CHAR = /[-ヿ㐀-䶿一-鿿豈-가-]/g;
|
|
47
63
|
/** A couple of incidental glyphs (a quoted loanword) are tolerated. */
|
|
48
64
|
export const CJK_LEAK_MIN_CHARS = 4;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../src/identity/patterns.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,yBAAyB;IACzB,uCAAuC;IACvC,mCAAmC;IACnC,8BAA8B;IAC9B,mCAAmC;IACnC,uCAAuC;IACvC,gCAAgC;IAChC,wBAAwB;IACxB,sCAAsC;IACtC,kCAAkC;IAClC,oCAAoC;IACpC,qCAAqC;IACrC,4CAA4C;IAC5C,sCAAsC;IACtC,6CAA6C;IAC7C,+BAA+B;IAC/B,wCAAwC;IACxC,2BAA2B;IAC3B,kBAAkB;IAClB,wBAAwB;IACxB,yBAAyB;IACzB,gCAAgC;IAChC,qBAAqB;IACrB,WAAW;IACX,qCAAqC;IACrC,iDAAiD;CAClD,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAEhE,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,SAAS;IACT,WAAW;IACX,SAAS;IACT,SAAS;IACT,SAAS;CACV,CAAC;AAEF,kBAAkB;AAClB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAQ,EAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAC,WAAW,EAAC,OAAO,EAAC,SAAS,CAAC,CAAC;AAE9G,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAEhE,MAAM,CAAC,MAAM,QAAQ,GAAG,oBAAoB,CAAC;AAE7C,uEAAuE;AACvE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../src/identity/patterns.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,4BAA4B,GAAG;IAC1C,yBAAyB;IACzB,uCAAuC;IACvC,mCAAmC;IACnC,8BAA8B;IAC9B,mCAAmC;IACnC,uCAAuC;IACvC,gCAAgC;IAChC,wBAAwB;IACxB,sCAAsC;IACtC,kCAAkC;IAClC,oCAAoC;IACpC,qCAAqC;IACrC,4CAA4C;IAC5C,sCAAsC;IACtC,6CAA6C;IAC7C,+BAA+B;IAC/B,wCAAwC;IACxC,2BAA2B;IAC3B,kBAAkB;IAClB,wBAAwB;IACxB,yBAAyB;IACzB,gCAAgC;IAChC,qBAAqB;IACrB,WAAW;IACX,qCAAqC;IACrC,iDAAiD;CAClD,CAAC;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAEhE,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,SAAS;IACT,WAAW;IACX,SAAS;IACT,SAAS;IACT,SAAS;CACV,CAAC;AAEF,kBAAkB;AAClB,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,QAAQ,EAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,EAAC,QAAQ,EAAC,WAAW,EAAC,OAAO,EAAC,SAAS,CAAC,CAAC;AAE9G,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,qBAAqB,CAAC,CAAC;AAEhE;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,aAAa;IACb,qBAAqB;IACrB,WAAW;IACX,OAAO;IACP,KAAK;IACL,MAAM;IACN,UAAU;IACV,QAAQ;IACR,wCAAwC;CACzC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,oBAAoB,CAAC;AAE7C,uEAAuE;AACvE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -21,6 +21,11 @@ export { PROBES, PROBE_SIGNALS } from "./probes/table";
|
|
|
21
21
|
export { SURVEY } from "./probes/survey";
|
|
22
22
|
export type { SurveyDef } from "./probes/survey";
|
|
23
23
|
export type { SurveyOutcome } from "./engine/survey-runner";
|
|
24
|
+
export { FINGERPRINT_CELLS, classifyAnswer, stripThink, } from "./probes/answer-fingerprint";
|
|
25
|
+
export type { FingerprintCell, FingerprintLabel, AnswerClass, } from "./probes/answer-fingerprint";
|
|
26
|
+
export type { FingerprintSample, FingerprintCellSample, } from "./engine/answer-fingerprint-runner";
|
|
27
|
+
export { compareFingerprints, compareToProfiles, fingerprintClusters, jensenShannon, mergeFingerprints, } from "./rules/answer-fingerprint";
|
|
28
|
+
export type { CompareOptions, CompareResult, CompareVerdict, ProfileVerdict, } from "./rules/answer-fingerprint";
|
|
24
29
|
export type { TransportFn, TransportArgs, TransportResult } from "./transport";
|
|
25
30
|
export { directTransport, browserTransport } from "./transport";
|
|
26
31
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAChF,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EACV,aAAa,EACb,OAAO,EACP,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAClD,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EACV,IAAI,EACJ,OAAO,EACP,SAAS,EACT,WAAW,EACX,OAAO,EACP,QAAQ,EACR,OAAO,GACR,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,KAAK,EACL,eAAe,EACf,oBAAoB,EACpB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACzE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACrE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAChF,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,YAAY,EACV,aAAa,EACb,OAAO,EACP,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,aAAa,GACd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAClD,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,YAAY,EACV,IAAI,EACJ,OAAO,EACP,SAAS,EACT,WAAW,EACX,OAAO,EACP,QAAQ,EACR,OAAO,GACR,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,KAAK,EACL,eAAe,EACf,oBAAoB,EACpB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AACzE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACrE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,UAAU,GACX,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,WAAW,GACZ,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EACV,cAAc,EACd,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -14,5 +14,7 @@ export { RULES, DETECTION_RULES, DETECTION_EXCEPTIONS, RULE_FOR_SIGNAL, } from "
|
|
|
14
14
|
export { defineModelFacts, resolveModelFacts } from "./models/facts";
|
|
15
15
|
export { PROBES, PROBE_SIGNALS } from "./probes/table";
|
|
16
16
|
export { SURVEY } from "./probes/survey";
|
|
17
|
+
export { FINGERPRINT_CELLS, classifyAnswer, stripThink, } from "./probes/answer-fingerprint";
|
|
18
|
+
export { compareFingerprints, compareToProfiles, fingerprintClusters, jensenShannon, mergeFingerprints, } from "./rules/answer-fingerprint";
|
|
17
19
|
export { directTransport, browserTransport } from "./transport";
|
|
18
20
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8EAA8E;AAC9E,gBAAgB;AAChB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEhF,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAW/C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAU3C,OAAO,EACL,KAAK,EACL,eAAe,EACf,oBAAoB,EACpB,eAAe,GAChB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAErE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,8EAA8E;AAC9E,gBAAgB;AAChB,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEhF,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAW/C,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAU3C,OAAO,EACL,KAAK,EACL,eAAe,EACf,oBAAoB,EACpB,eAAe,GAChB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAErE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,UAAU,GACX,MAAM,6BAA6B,CAAC;AAUrC,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAQpC,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/makers/resolve.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEpD,uGAAuG;AACvG,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAC3C,MAAM,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,EAAE,EAC3B,EAAE,EAAE,CAAC,GACJ,aAAa,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../src/makers/resolve.ts"],"names":[],"mappings":"AAEA,OAAO,EAAoB,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEpD,uGAAuG;AACvG,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAC3C,MAAM,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,EAAE,EAC3B,EAAE,EAAE,CAAC,GACJ,aAAa,CAAC,CAAC,CAAC,CAqBlB;AAED,8FAA8F;AAC9F,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAAC;AAC7D,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,EAC5C,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,EAAE,GAC1B,CAAC,GAAG,IAAI,CAAC"}
|
package/dist/makers/resolve.js
CHANGED
|
@@ -10,6 +10,7 @@ export function resolveMaker(makers, id) {
|
|
|
10
10
|
...maker.home,
|
|
11
11
|
...maker.modelNames,
|
|
12
12
|
...(maker.cloudModelNames ?? []),
|
|
13
|
+
...(maker.selfConfusions ?? []),
|
|
13
14
|
]);
|
|
14
15
|
const foreign = new Set();
|
|
15
16
|
for (const other of makers) {
|
|
@@ -22,6 +23,7 @@ export function resolveMaker(makers, id) {
|
|
|
22
23
|
return {
|
|
23
24
|
...maker,
|
|
24
25
|
cloudModelNames: maker.cloudModelNames ?? [],
|
|
26
|
+
selfConfusions: maker.selfConfusions ?? [],
|
|
25
27
|
foreign: [...foreign],
|
|
26
28
|
};
|
|
27
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/makers/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAgB,MAAM,SAAS,CAAC;AAGzD,uGAAuG;AACvG,MAAM,UAAU,YAAY,CAC1B,MAA2B,EAC3B,EAAK;IAEL,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,SAAS,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;IACzD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;QAClB,GAAG,KAAK,CAAC,IAAI;QACb,GAAG,KAAK,CAAC,UAAU;QACnB,GAAG,CAAC,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"resolve.js","sourceRoot":"","sources":["../../src/makers/resolve.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAgB,MAAM,SAAS,CAAC;AAGzD,uGAAuG;AACvG,MAAM,UAAU,YAAY,CAC1B,MAA2B,EAC3B,EAAK;IAEL,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACnC,IAAI,CAAC,KAAK;QAAE,MAAM,IAAI,SAAS,CAAC,kBAAkB,EAAE,GAAG,CAAC,CAAC;IACzD,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;QAClB,GAAG,KAAK,CAAC,IAAI;QACb,GAAG,KAAK,CAAC,UAAU;QACnB,GAAG,CAAC,KAAK,CAAC,eAAe,IAAI,EAAE,CAAC;QAChC,GAAG,CAAC,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC;KAChC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE;YAAE,SAAS;QACpC,KAAK,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC;YAClD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACxE,CAAC;IACD,OAAO;QACL,GAAG,KAAK;QACR,eAAe,EAAE,KAAK,CAAC,eAAe,IAAI,EAAE;QAC5C,cAAc,EAAE,KAAK,CAAC,cAAc,IAAI,EAAE;QAC1C,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC;KACtB,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,aAAa,CAC3B,KAAa,EACb,MAAM,GAA6B,MAAM;IAEzC,MAAM,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;IACnC,KAAK,MAAM,CAAC,IAAI,MAAM;QACpB,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC,EAAE,CAAC;IAC5D,OAAO,IAAI,CAAC;AACd,CAAC"}
|