ai-model-verifier 3.8.0 → 3.9.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 +4 -1
- package/dist/engine/context.d.ts +1 -0
- package/dist/engine/context.d.ts.map +1 -1
- package/dist/engine/context.js +1 -0
- package/dist/engine/context.js.map +1 -1
- package/dist/engine/evidence.d.ts +9 -1
- package/dist/engine/evidence.d.ts.map +1 -1
- package/dist/engine/evidence.js +22 -1
- package/dist/engine/evidence.js.map +1 -1
- package/dist/models/index.d.ts +2 -0
- package/dist/models/index.d.ts.map +1 -1
- package/dist/models/index.js +1 -0
- package/dist/models/index.js.map +1 -1
- package/dist/models/tokenizers.d.ts +36 -0
- package/dist/models/tokenizers.d.ts.map +1 -0
- package/dist/models/tokenizers.js +60 -0
- package/dist/models/tokenizers.js.map +1 -0
- package/dist/probes/prompts.d.ts +16 -0
- package/dist/probes/prompts.d.ts.map +1 -1
- package/dist/probes/prompts.js +20 -0
- package/dist/probes/prompts.js.map +1 -1
- package/dist/registry.d.ts +1 -1
- package/dist/rules/index.d.ts +2 -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 +2 -0
- package/dist/rules/table.js.map +1 -1
- package/dist/rules/tokenizer-family.d.ts +33 -0
- package/dist/rules/tokenizer-family.d.ts.map +1 -0
- package/dist/rules/tokenizer-family.js +89 -0
- package/dist/rules/tokenizer-family.js.map +1 -0
- 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/types.d.ts +2 -0
- package/dist/types.d.ts.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
|
@@ -94,7 +94,10 @@ reasoning tokens (`thinking-floor`, opt-in); a model that thinks only when asked
|
|
|
94
94
|
answering a high-effort request with too little thought (`thinking-honored`,
|
|
95
95
|
opt-in with `thinkingFloor`); a tokenizer fingerprint matching a
|
|
96
96
|
cheaper tier under a caller-supplied calibration (`tokenizer-fingerprint`,
|
|
97
|
-
opt-in; ships no table, see the rule's note);
|
|
97
|
+
opt-in; ships no table, see the rule's note); input-token deltas on four script
|
|
98
|
+
runs naming another maker's vocabulary (`tokenizer-family`, opt-in with
|
|
99
|
+
`tokenizerFamily`; a persona prompt cannot change how the backend splits text);
|
|
100
|
+
`coding-tool` refusals (Kiro or
|
|
98
101
|
Amazon Q wearing a Claude badge); scam pages; CJK language leaks from a
|
|
99
102
|
substituted Chinese model (skipped for makers that train on Chinese);
|
|
100
103
|
response-mixing proxies (`mux`); another maker named as the maker, judged by the
|
package/dist/engine/context.d.ts
CHANGED
|
@@ -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;IAChB,iBAAiB,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACpE,CAAC;AAEF,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAC7C,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAEjD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,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,eAAe,EAAE,OAAO,CAAC;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,iBAAiB,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACpE,CAAC;AAEF,eAAO,MAAM,2BAA2B,IAAI,CAAC;AAC7C,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAEjD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,cAAc,CA0CxE;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 +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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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type ScriptVariant } from "../probes/prompts";
|
|
1
2
|
import type { TransportResult } from "../transport";
|
|
2
3
|
import { type RunCtx } from "./context";
|
|
3
4
|
import { type ProbeEval } from "./probe-runner";
|
|
@@ -9,6 +10,10 @@ export type FixedTextEvidence = {
|
|
|
9
10
|
/** The script-mixed text every vocabulary splits differently. */
|
|
10
11
|
diverse: TransportResult;
|
|
11
12
|
};
|
|
13
|
+
export type ScriptTokensEvidence = {
|
|
14
|
+
base: TransportResult;
|
|
15
|
+
variants: Record<ScriptVariant, TransportResult>;
|
|
16
|
+
};
|
|
12
17
|
export type ThinkingReplyEvidence = {
|
|
13
18
|
res: TransportResult;
|
|
14
19
|
/** Only when the strict replay ran: the endpoint accepted the block back. */
|
|
@@ -26,6 +31,8 @@ export type EvidenceBag = {
|
|
|
26
31
|
/** One-word answer counts at temperature 1, for a caller to accumulate. */
|
|
27
32
|
answerFingerprint: FingerprintSample;
|
|
28
33
|
fixedText: FixedTextEvidence;
|
|
34
|
+
/** The anchor and the four script runs the tokenizer family is read from. */
|
|
35
|
+
scriptTokens: ScriptTokensEvidence;
|
|
29
36
|
/** null when the wire has no count endpoint or the short reply had no usage. */
|
|
30
37
|
countTokens: TransportResult | null;
|
|
31
38
|
/** null when the model has no thinking mode to ask for. */
|
|
@@ -37,12 +44,13 @@ export type EvidenceBag = {
|
|
|
37
44
|
};
|
|
38
45
|
export type EvidenceKey = keyof EvidenceBag;
|
|
39
46
|
/** Collection order when several keys are needed: probes first, then the extras. */
|
|
40
|
-
export declare const EVIDENCE_ORDER: readonly ["probes", "survey", "answerFingerprint", "thinkingReply", "fixedText", "countTokens", "floorReply", "askedThinkingReply"];
|
|
47
|
+
export declare const EVIDENCE_ORDER: readonly ["probes", "survey", "answerFingerprint", "thinkingReply", "fixedText", "scriptTokens", "countTokens", "floorReply", "askedThinkingReply"];
|
|
41
48
|
export declare class EvidenceStore {
|
|
42
49
|
private readonly probes;
|
|
43
50
|
private readonly survey;
|
|
44
51
|
private readonly answerFingerprint;
|
|
45
52
|
private readonly fixedText;
|
|
53
|
+
private readonly scriptTokens;
|
|
46
54
|
private readonly countTokens;
|
|
47
55
|
private readonly thinkingReply;
|
|
48
56
|
private readonly floorReply;
|
|
@@ -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":"AAAA,OAAO,EAUL,KAAK,aAAa,EACnB,MAAM,mBAAmB,CAAC;AAC3B,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,oBAAoB,GAAG;IACjC,IAAI,EAAE,eAAe,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;CAClD,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,6EAA6E;IAC7E,YAAY,EAAE,oBAAoB,CAAC;IACnC,gFAAgF;IAChF,WAAW,EAAE,eAAe,GAAG,IAAI,CAAC;IACpC,2DAA2D;IAC3D,aAAa,EAAE,qBAAqB,CAAC;IACrC,oEAAoE;IACpE,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,wFAAwF;IACxF,kBAAkB,EAAE,eAAe,GAAG,IAAI,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC;AAE5C,oFAAoF;AACpF,eAAO,MAAM,cAAc,qJAUgB,CAAC;AA6G5C,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,YAAY,CAAsC;IACnE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwC;IACpE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuC;IACrE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwC;IACnE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAwC;IAE3E,YAAY,GAAG,EAAE,MAAM,EAUtB;IAED,GAAG,CAAC,CAAC,SAAS,WAAW,EAAE,GAAG,EAAE,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;CAuB7D"}
|
package/dist/engine/evidence.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { COUNT_PROBE_MAX_TOKENS, DIVERSE_PROMPT, ASKED_THINKING_PROMPT, FLOOR_PROMPT, LONG_PROMPT, SHORT_PROMPT, SIGNATURE_PROMPT, } from "../probes/prompts";
|
|
1
|
+
import { COUNT_PROBE_MAX_TOKENS, DIVERSE_PROMPT, ASKED_THINKING_PROMPT, FLOOR_PROMPT, LONG_PROMPT, SHORT_PROMPT, SIGNATURE_PROMPT, SCRIPT_BASE_PROMPT, SCRIPT_VARIANTS, } 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";
|
|
@@ -15,6 +15,7 @@ export const EVIDENCE_ORDER = [
|
|
|
15
15
|
"answerFingerprint",
|
|
16
16
|
"thinkingReply",
|
|
17
17
|
"fixedText",
|
|
18
|
+
"scriptTokens",
|
|
18
19
|
"countTokens",
|
|
19
20
|
"floorReply",
|
|
20
21
|
"askedThinkingReply",
|
|
@@ -32,6 +33,22 @@ async function collectFixedText(ctx) {
|
|
|
32
33
|
]);
|
|
33
34
|
return { short, long, diverse };
|
|
34
35
|
}
|
|
36
|
+
async function collectScriptTokens(ctx) {
|
|
37
|
+
const ask = (prompt) => chat(ctx, {
|
|
38
|
+
maxTokens: COUNT_PROBE_MAX_TOKENS,
|
|
39
|
+
messages: [{ role: "user", content: prompt }],
|
|
40
|
+
});
|
|
41
|
+
// The anchor first: a relay that caches prefixes then bills every run the same way.
|
|
42
|
+
const base = await ask(SCRIPT_BASE_PROMPT);
|
|
43
|
+
const run = (k) => ask(SCRIPT_BASE_PROMPT + SCRIPT_VARIANTS[k]);
|
|
44
|
+
const [digits, cjk, spaces, code] = await Promise.all([
|
|
45
|
+
run("digits"),
|
|
46
|
+
run("cjk"),
|
|
47
|
+
run("spaces"),
|
|
48
|
+
run("code"),
|
|
49
|
+
]);
|
|
50
|
+
return { base, variants: { digits, cjk, spaces, code } };
|
|
51
|
+
}
|
|
35
52
|
async function collectCountTokens(ctx, store) {
|
|
36
53
|
const count = ctx.wire.ops.countTokens;
|
|
37
54
|
if (!count)
|
|
@@ -97,6 +114,7 @@ export class EvidenceStore {
|
|
|
97
114
|
survey;
|
|
98
115
|
answerFingerprint;
|
|
99
116
|
fixedText;
|
|
117
|
+
scriptTokens;
|
|
100
118
|
countTokens;
|
|
101
119
|
thinkingReply;
|
|
102
120
|
floorReply;
|
|
@@ -106,6 +124,7 @@ export class EvidenceStore {
|
|
|
106
124
|
this.survey = memo(() => collectSurvey(ctx));
|
|
107
125
|
this.answerFingerprint = memo(() => collectAnswerFingerprint(ctx));
|
|
108
126
|
this.fixedText = memo(() => collectFixedText(ctx));
|
|
127
|
+
this.scriptTokens = memo(() => collectScriptTokens(ctx));
|
|
109
128
|
this.countTokens = memo(() => collectCountTokens(ctx, this));
|
|
110
129
|
this.thinkingReply = memo(() => collectThinkingReply(ctx));
|
|
111
130
|
this.floorReply = memo(() => collectFloorReply(ctx));
|
|
@@ -121,6 +140,8 @@ export class EvidenceStore {
|
|
|
121
140
|
return this.answerFingerprint();
|
|
122
141
|
case "fixedText":
|
|
123
142
|
return this.fixedText();
|
|
143
|
+
case "scriptTokens":
|
|
144
|
+
return this.scriptTokens();
|
|
124
145
|
case "countTokens":
|
|
125
146
|
return this.countTokens();
|
|
126
147
|
case "thinkingReply":
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/engine/evidence.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,gBAAgB,
|
|
1
|
+
{"version":3,"file":"evidence.js","sourceRoot":"","sources":["../../src/engine/evidence.ts"],"names":[],"mappings":"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"}
|
package/dist/models/index.d.ts
CHANGED
|
@@ -3,4 +3,6 @@ export type { FactsEntry, ModelFacts, ThinkingMode, TokenizerGeneration, } from
|
|
|
3
3
|
export { CURATED_MODELS, makerForModel, vendorForRow, wireForModel, } from "./catalog";
|
|
4
4
|
export { detectSubstitution, modelsMatch } from "./substitution";
|
|
5
5
|
export { detectServedModelMismatch, detectTierMismatch, tierOf } from "./tiers";
|
|
6
|
+
export { TOKENIZER_FAMILIES, SCRIPT_TOLERANCE, matchTokenizerFamilies, knowsMaker, } from "./tokenizers";
|
|
7
|
+
export type { TokenizerFamily, ScriptVector } from "./tokenizers";
|
|
6
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,mBAAmB,GACpB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,cAAc,EACd,aAAa,EACb,YAAY,EACZ,YAAY,GACb,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,UAAU,EACV,UAAU,EACV,YAAY,EACZ,mBAAmB,GACpB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,cAAc,EACd,aAAa,EACb,YAAY,EACZ,YAAY,GACb,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,UAAU,GACX,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/models/index.js
CHANGED
|
@@ -2,4 +2,5 @@ export { MODEL_FACTS, defineModelFacts, globMatches, normalizeModelId, resolveMo
|
|
|
2
2
|
export { CURATED_MODELS, makerForModel, vendorForRow, wireForModel, } from "./catalog";
|
|
3
3
|
export { detectSubstitution, modelsMatch } from "./substitution";
|
|
4
4
|
export { detectServedModelMismatch, detectTierMismatch, tierOf } from "./tiers";
|
|
5
|
+
export { TOKENIZER_FAMILIES, SCRIPT_TOLERANCE, matchTokenizerFamilies, knowsMaker, } from "./tokenizers";
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
package/dist/models/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAOjB,OAAO,EACL,cAAc,EACd,aAAa,EACb,YAAY,EACZ,YAAY,GACb,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/models/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,SAAS,CAAC;AAOjB,OAAO,EACL,cAAc,EACd,aAAa,EACb,YAAY,EACZ,YAAY,GACb,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,sBAAsB,EACtB,UAAU,GACX,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tokenizer families by the input-token deltas they bill for the four
|
|
3
|
+
* SCRIPT_VARIANTS runs (digits, cjk, spaces, code), in that order.
|
|
4
|
+
*
|
|
5
|
+
* Open families were computed from each maker's published tokenizer and agree
|
|
6
|
+
* with the counts their own lanes bill (glm-5.3 and gpt-5.5 to the token).
|
|
7
|
+
* Closed families were measured on lanes that pass every other rule: Gemini on
|
|
8
|
+
* three relays, Claude on five relay paths, which bill five different vectors
|
|
9
|
+
* between them and so get one entry each.
|
|
10
|
+
*
|
|
11
|
+
* Kimi is left out: one relay billed two different vectors for kimi-k3 a day
|
|
12
|
+
* apart, so a moonshot lane is never judged.
|
|
13
|
+
*
|
|
14
|
+
* Families share a vector where the tokenizers agree on these runs: Llama 4,
|
|
15
|
+
* Muse Spark and Grok 4.3 all bill 101/80/101/120, so that entry names both
|
|
16
|
+
* makers and only says "neither of these is Claude".
|
|
17
|
+
*/
|
|
18
|
+
import type { MakerId } from "../makers/table";
|
|
19
|
+
import { type ScriptVariant } from "../probes/prompts";
|
|
20
|
+
export type ScriptVector = Readonly<Record<ScriptVariant, number>>;
|
|
21
|
+
export type TokenizerFamily = {
|
|
22
|
+
id: string;
|
|
23
|
+
makers: readonly MakerId[];
|
|
24
|
+
vector: ScriptVector;
|
|
25
|
+
/**
|
|
26
|
+
* Relays estimate usage with OpenAI's tokenizers when the upstream reports
|
|
27
|
+
* none, so a match here may be the relay counting, not the model.
|
|
28
|
+
*/
|
|
29
|
+
estimator?: boolean;
|
|
30
|
+
};
|
|
31
|
+
export declare const TOKENIZER_FAMILIES: readonly TokenizerFamily[];
|
|
32
|
+
/** One token either way: Vertex bills Gemini one less on every run. */
|
|
33
|
+
export declare const SCRIPT_TOLERANCE = 1;
|
|
34
|
+
export declare function matchTokenizerFamilies(measured: ScriptVector, families?: readonly TokenizerFamily[]): TokenizerFamily[];
|
|
35
|
+
export declare const knowsMaker: (maker: string, families?: readonly TokenizerFamily[]) => boolean;
|
|
36
|
+
//# sourceMappingURL=tokenizers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenizers.d.ts","sourceRoot":"","sources":["../../src/models/tokenizers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE5E,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC,CAAC;AAEnE,MAAM,MAAM,eAAe,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,SAAS,OAAO,EAAE,CAAC;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB,CAAC;AASF,eAAO,MAAM,kBAAkB,EAAE,SAAS,eAAe,EAiCxD,CAAC;AAEF,uEAAuE;AACvE,eAAO,MAAM,gBAAgB,IAAI,CAAC;AAElC,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,YAAY,EACtB,QAAQ,GAAE,SAAS,eAAe,EAAuB,GACxD,eAAe,EAAE,CAMnB;AAED,eAAO,MAAM,UAAU,UACd,MAAM,aACH,SAAS,eAAe,EAAE,KACnC,OAAkE,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tokenizer families by the input-token deltas they bill for the four
|
|
3
|
+
* SCRIPT_VARIANTS runs (digits, cjk, spaces, code), in that order.
|
|
4
|
+
*
|
|
5
|
+
* Open families were computed from each maker's published tokenizer and agree
|
|
6
|
+
* with the counts their own lanes bill (glm-5.3 and gpt-5.5 to the token).
|
|
7
|
+
* Closed families were measured on lanes that pass every other rule: Gemini on
|
|
8
|
+
* three relays, Claude on five relay paths, which bill five different vectors
|
|
9
|
+
* between them and so get one entry each.
|
|
10
|
+
*
|
|
11
|
+
* Kimi is left out: one relay billed two different vectors for kimi-k3 a day
|
|
12
|
+
* apart, so a moonshot lane is never judged.
|
|
13
|
+
*
|
|
14
|
+
* Families share a vector where the tokenizers agree on these runs: Llama 4,
|
|
15
|
+
* Muse Spark and Grok 4.3 all bill 101/80/101/120, so that entry names both
|
|
16
|
+
* makers and only says "neither of these is Claude".
|
|
17
|
+
*/
|
|
18
|
+
import { SCRIPT_VARIANT_KEYS } from "../probes/prompts";
|
|
19
|
+
const v = (digits, cjk, spaces, code) => ({ digits, cjk, spaces, code });
|
|
20
|
+
export const TOKENIZER_FAMILIES = [
|
|
21
|
+
{
|
|
22
|
+
id: "o200k",
|
|
23
|
+
makers: ["openai"],
|
|
24
|
+
vector: v(101, 101, 101, 120),
|
|
25
|
+
estimator: true,
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
id: "cl100k",
|
|
29
|
+
makers: ["openai"],
|
|
30
|
+
vector: v(101, 172, 101, 120),
|
|
31
|
+
estimator: true,
|
|
32
|
+
},
|
|
33
|
+
{ id: "llama4", makers: ["meta", "xai"], vector: v(101, 80, 101, 120) },
|
|
34
|
+
{ id: "gemini", makers: ["google"], vector: v(301, 80, 101, 150) },
|
|
35
|
+
{ id: "glm", makers: ["zhipu"], vector: v(191, 70, 101, 120) },
|
|
36
|
+
{
|
|
37
|
+
id: "deepseek",
|
|
38
|
+
makers: ["deepseek", "stepfun"],
|
|
39
|
+
vector: v(101, 61, 101, 120),
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
id: "qwen",
|
|
43
|
+
makers: ["alibaba", "xiaomi", "tencent"],
|
|
44
|
+
vector: v(301, 72, 101, 120),
|
|
45
|
+
},
|
|
46
|
+
{ id: "minimax", makers: ["minimax"], vector: v(101, 70, 101, 120) },
|
|
47
|
+
{ id: "ernie", makers: ["baidu"], vector: v(301, 70, 101, 150) },
|
|
48
|
+
{ id: "claude-direct", makers: ["anthropic"], vector: v(101, 151, 100, 149) },
|
|
49
|
+
{ id: "claude-cloud", makers: ["anthropic"], vector: v(34, 158, 106, 127) },
|
|
50
|
+
{ id: "claude-relay-a", makers: ["anthropic"], vector: v(144, 135, 78, 156) },
|
|
51
|
+
{ id: "claude-relay-b", makers: ["anthropic"], vector: v(107, 168, 75, 155) },
|
|
52
|
+
{ id: "claude-relay-c", makers: ["anthropic"], vector: v(103, 147, 51, 126) },
|
|
53
|
+
];
|
|
54
|
+
/** One token either way: Vertex bills Gemini one less on every run. */
|
|
55
|
+
export const SCRIPT_TOLERANCE = 1;
|
|
56
|
+
export function matchTokenizerFamilies(measured, families = TOKENIZER_FAMILIES) {
|
|
57
|
+
return families.filter((f) => SCRIPT_VARIANT_KEYS.every((k) => Math.abs(f.vector[k] - measured[k]) <= SCRIPT_TOLERANCE));
|
|
58
|
+
}
|
|
59
|
+
export const knowsMaker = (maker, families = TOKENIZER_FAMILIES) => families.some((f) => f.makers.some((m) => m === maker));
|
|
60
|
+
//# sourceMappingURL=tokenizers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenizers.js","sourceRoot":"","sources":["../../src/models/tokenizers.ts"],"names":[],"mappings":"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"}
|
package/dist/probes/prompts.d.ts
CHANGED
|
@@ -32,4 +32,20 @@ export declare const FLOOR_PROMPT = "Reply with only the word ok.";
|
|
|
32
32
|
* effort thinks first: genuine Gemini 4 spent 300 or more thought tokens on it.
|
|
33
33
|
*/
|
|
34
34
|
export declare const ASKED_THINKING_PROMPT = "A bat and a ball cost 1.10 in total. The bat costs 1.00 more than the ball. How much does the ball cost? Reply with only the number.";
|
|
35
|
+
/**
|
|
36
|
+
* The tokenizer family probe: one anchor and four runs appended to it, each
|
|
37
|
+
* chosen because vocabularies split it differently (digits in ones or threes,
|
|
38
|
+
* Chinese by word or by character, whitespace runs). The four deltas together
|
|
39
|
+
* name a tokenizer family where one English run cannot. Fixed bytes, like the
|
|
40
|
+
* prompts above: the family table in models/tokenizers.ts was measured on these.
|
|
41
|
+
*/
|
|
42
|
+
export declare const SCRIPT_BASE_PROMPT = "Reply with only the word ok.";
|
|
43
|
+
export declare const SCRIPT_VARIANTS: {
|
|
44
|
+
readonly digits: ` ${string}`;
|
|
45
|
+
readonly cjk: ` ${string}`;
|
|
46
|
+
readonly spaces: ` ${string}`;
|
|
47
|
+
readonly code: ` ${string}`;
|
|
48
|
+
};
|
|
49
|
+
export type ScriptVariant = keyof typeof SCRIPT_VARIANTS;
|
|
50
|
+
export declare const SCRIPT_VARIANT_KEYS: readonly ["digits", "cjk", "spaces", "code"];
|
|
35
51
|
//# sourceMappingURL=prompts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/probes/prompts.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,IAAI,MAAM,CAIlC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,2BAA2B,CAAC;AACrD,eAAO,MAAM,WAAW,QAA6D,CAAC;AACtF,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,4xBAAgb,CAAC;AAE5c;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,qFACuD,CAAC;AAErF,eAAO,MAAM,YAAY,iCAAiC,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,qBAAqB,yIACsG,CAAC"}
|
|
1
|
+
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/probes/prompts.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,IAAI,MAAM,CAIlC;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAEhE;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,YAAY,2BAA2B,CAAC;AACrD,eAAO,MAAM,WAAW,QAA6D,CAAC;AACtF,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC;;;;;GAKG;AACH,eAAO,MAAM,cAAc,4xBAAgb,CAAC;AAE5c;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,qFACuD,CAAC;AAErF,eAAO,MAAM,YAAY,iCAAiC,CAAC;AAE3D;;;GAGG;AACH,eAAO,MAAM,qBAAqB,yIACsG,CAAC;AAEzI;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,iCAAiC,CAAC;AACjE,eAAO,MAAM,eAAe;aAC1B,MAAM;aACN,GAAG;aACH,MAAM;aACN,IAAI;CACI,CAAC;AACX,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,eAAe,CAAC;AACzD,eAAO,MAAM,mBAAmB,8CAKa,CAAC"}
|
package/dist/probes/prompts.js
CHANGED
|
@@ -40,4 +40,24 @@ export const FLOOR_PROMPT = "Reply with only the word ok.";
|
|
|
40
40
|
* effort thinks first: genuine Gemini 4 spent 300 or more thought tokens on it.
|
|
41
41
|
*/
|
|
42
42
|
export const ASKED_THINKING_PROMPT = "A bat and a ball cost 1.10 in total. The bat costs 1.00 more than the ball. How much does the ball cost? Reply with only the number.";
|
|
43
|
+
/**
|
|
44
|
+
* The tokenizer family probe: one anchor and four runs appended to it, each
|
|
45
|
+
* chosen because vocabularies split it differently (digits in ones or threes,
|
|
46
|
+
* Chinese by word or by character, whitespace runs). The four deltas together
|
|
47
|
+
* name a tokenizer family where one English run cannot. Fixed bytes, like the
|
|
48
|
+
* prompts above: the family table in models/tokenizers.ts was measured on these.
|
|
49
|
+
*/
|
|
50
|
+
export const SCRIPT_BASE_PROMPT = "Reply with only the word ok.";
|
|
51
|
+
export const SCRIPT_VARIANTS = {
|
|
52
|
+
digits: ` ${"1234567890".repeat(30)}`,
|
|
53
|
+
cjk: ` ${"我们今天去公园散步然后吃饭".repeat(10)}`,
|
|
54
|
+
spaces: ` ${"a ".repeat(100)}`,
|
|
55
|
+
code: ` ${" if (x) {\n return y;\n }\n".repeat(10)}`,
|
|
56
|
+
};
|
|
57
|
+
export const SCRIPT_VARIANT_KEYS = [
|
|
58
|
+
"digits",
|
|
59
|
+
"cjk",
|
|
60
|
+
"spaces",
|
|
61
|
+
"code",
|
|
62
|
+
];
|
|
43
63
|
//# sourceMappingURL=prompts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/probes/prompts.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS;IACvB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,OAAO,kCAAkC,KAAK,mCAAmC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,KAAa;IACrD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,wBAAwB,CAAC;AACrD,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,YAAY,sBAAsB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;AACtF,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,YAAY,8ZAA8Z,CAAC;AAE5c;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAC3B,kFAAkF,CAAC;AAErF,MAAM,CAAC,MAAM,YAAY,GAAG,8BAA8B,CAAC;AAE3D;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAChC,sIAAsI,CAAC"}
|
|
1
|
+
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/probes/prompts.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS;IACvB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IAChC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5E,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,OAAO,kCAAkC,KAAK,mCAAmC,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,KAAa;IACrD,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,wBAAwB,CAAC;AACrD,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,YAAY,sBAAsB,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC;AACtF,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,YAAY,8ZAA8Z,CAAC;AAE5c;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAC3B,kFAAkF,CAAC;AAErF,MAAM,CAAC,MAAM,YAAY,GAAG,8BAA8B,CAAC;AAE3D;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAChC,sIAAsI,CAAC;AAEzI;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,8BAA8B,CAAC;AACjE,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,MAAM,EAAE,IAAI,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;IACrC,GAAG,EAAE,IAAI,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;IACrC,MAAM,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;IAC9B,IAAI,EAAE,IAAI,0CAA0C,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;CACzD,CAAC;AAEX,MAAM,CAAC,MAAM,mBAAmB,GAAG;IACjC,QAAQ;IACR,KAAK;IACL,QAAQ;IACR,MAAM;CACqC,CAAC"}
|
package/dist/registry.d.ts
CHANGED
|
@@ -20,7 +20,7 @@ export declare function createVerifier<V extends string = never, R extends strin
|
|
|
20
20
|
omit?: readonly RuleId[];
|
|
21
21
|
modelFacts?: readonly FactsEntry<MakerId | M>[];
|
|
22
22
|
}): {
|
|
23
|
-
registry: Registry<"anthropic" | "gemini" | "openai" | V, "answer-fingerprint" | "cjk-leak" | "coding-tool" | "envelope" | "fake-200" | "foreign" | "mask-contradiction" | "masked-identity" | "mux" | "quorum" | "scam" | "served-model-mismatch" | "signature" | "substituted" | "survey" | "think-leak" | "thinking-floor" | "thinking-honored" | "throughput" | "tier-self-report" | "token-truth" | "tokenizer-fingerprint" | "wrapper-leak" | R, "ai21" | "aion" | "alibaba" | "amazon" | "anthropic" | "arcee" | "baidu" | "bytedance" | "cohere" | "deepseek" | "google" | "ibm" | "inception" | "inclusionai" | "internlm" | "jetbrains" | "kwaipilot" | "liquid" | "meituan" | "meta" | "microsoft" | "minimax" | "mistral" | "moondream" | "moonshot" | "nexagi" | "nous" | "nvidia" | "openai" | "openbmb" | "perplexity" | "poolside" | "rednote" | "sarvam" | "sensetime" | "stepfun" | "swissai" | "tencent" | "typhoon" | "venice" | "writer" | "xai" | "xiaomi" | "zhipu" | M>;
|
|
23
|
+
registry: Registry<"anthropic" | "gemini" | "openai" | V, "answer-fingerprint" | "cjk-leak" | "coding-tool" | "envelope" | "fake-200" | "foreign" | "mask-contradiction" | "masked-identity" | "mux" | "quorum" | "scam" | "served-model-mismatch" | "signature" | "substituted" | "survey" | "think-leak" | "thinking-floor" | "thinking-honored" | "throughput" | "tier-self-report" | "token-truth" | "tokenizer-family" | "tokenizer-fingerprint" | "wrapper-leak" | R, "ai21" | "aion" | "alibaba" | "amazon" | "anthropic" | "arcee" | "baidu" | "bytedance" | "cohere" | "deepseek" | "google" | "ibm" | "inception" | "inclusionai" | "internlm" | "jetbrains" | "kwaipilot" | "liquid" | "meituan" | "meta" | "microsoft" | "minimax" | "mistral" | "moondream" | "moonshot" | "nexagi" | "nous" | "nvidia" | "openai" | "openbmb" | "perplexity" | "poolside" | "rednote" | "sarvam" | "sensetime" | "stepfun" | "swissai" | "tencent" | "typhoon" | "venice" | "writer" | "xai" | "xiaomi" | "zhipu" | M>;
|
|
24
24
|
verify: (opts: VerifyOptions<VendorId | V>) => Promise<VerifyResult<VendorId | V, RuleId | R, MakerId | M>>;
|
|
25
25
|
runRules: (opts: VerifyOptions<VendorId | V> & {
|
|
26
26
|
only: readonly (RuleId | R)[];
|
package/dist/rules/index.d.ts
CHANGED
|
@@ -18,4 +18,6 @@ export type { FingerprintSample, FingerprintCellSample, } from "../engine/answer
|
|
|
18
18
|
export { compareFingerprints, compareToProfiles, fingerprintClusters, jensenShannon, mergeFingerprints, DEFAULT_MATCH_BITS, DEFAULT_MISMATCH_BITS, DEFAULT_MIN_CELL_SAMPLES, } from "./answer-fingerprint";
|
|
19
19
|
export type { CompareOptions, CompareResult, CompareVerdict, ProfileVerdict, } from "./answer-fingerprint";
|
|
20
20
|
export type { ThroughputComparison, ThroughputSample } from "./throughput";
|
|
21
|
+
export { judgeTokenizerFamily } from "./tokenizer-family";
|
|
22
|
+
export type { TokenizerFamilyResult, TokenizerFamilyState, } from "./tokenizer-family";
|
|
21
23
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,mBAAmB,SAAS,CAAC;AAC7B,OAAO,EACL,6BAA6B,EAC7B,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,YAAY,GACb,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,cAAc,EACd,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnE,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EACV,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,cAAc,EACd,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,mBAAmB,SAAS,CAAC;AAC7B,OAAO,EACL,6BAA6B,EAC7B,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,YAAY,GACb,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,cAAc,EACd,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,yBAAyB,CAAC;AACjC,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,YAAY,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnE,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,YAAY,EACV,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,cAAc,EACd,aAAa,EACb,cAAc,EACd,cAAc,GACf,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,YAAY,EACV,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC"}
|
package/dist/rules/index.js
CHANGED
|
@@ -7,4 +7,5 @@ export { expectedInputDelta } from "./token-truth";
|
|
|
7
7
|
export { readResponseMetadata } from "./response-metadata";
|
|
8
8
|
export { compareThroughput, sampleThroughput } from "./throughput";
|
|
9
9
|
export { compareFingerprints, compareToProfiles, fingerprintClusters, jensenShannon, mergeFingerprints, DEFAULT_MATCH_BITS, DEFAULT_MISMATCH_BITS, DEFAULT_MIN_CELL_SAMPLES, } from "./answer-fingerprint";
|
|
10
|
+
export { judgeTokenizerFamily } from "./tokenizer-family";
|
|
10
11
|
//# sourceMappingURL=index.js.map
|
package/dist/rules/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EACL,6BAA6B,EAC7B,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,YAAY,GACb,MAAM,yBAAyB,CAAC;AAOjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAMnE,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rules/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,OAAO,EACL,6BAA6B,EAC7B,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,iBAAiB,GAClB,MAAM,kBAAkB,CAAC;AAM1B,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAK5B,OAAO,EACL,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,YAAY,GACb,MAAM,yBAAyB,CAAC;AAOjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3D,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAMnE,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,sBAAsB,CAAC;AAQ9B,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist/rules/table.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import type { Rule } from "./types";
|
|
|
4
4
|
* verdict. Evidence rules sit above the probe ladder because they read facts a
|
|
5
5
|
* coached reply cannot fake; note rules only report.
|
|
6
6
|
*/
|
|
7
|
-
export declare const RULES: readonly [Rule<"thinking-floor", "floorReply", "evidence">, Rule<"thinking-honored", "askedThinkingReply", "evidence">, Rule<"tokenizer-fingerprint", "fixedText", "evidence">, Rule<"masked-identity", "probes", "evidence">, Rule<"fake-200", "probes" | "survey", "evidence">, Rule<"coding-tool", "probes", "probe">, Rule<"scam", "probes", "probe">, Rule<"cjk-leak", "probes", "probe">, Rule<"mux", "probes", "probe">, Rule<"foreign", "probes", "probe">, Rule<"served-model-mismatch", "probes", "probe">, Rule<"substituted", "probes", "probe">, Rule<"quorum", "probes", "probe">, Rule<"tier-self-report", "probes", "note">, Rule<"signature", "thinkingReply", "note">, Rule<"token-truth", "countTokens" | "fixedText", "note">, Rule<"envelope", "probes", "note">, Rule<"throughput", "probes", "note">, Rule<"think-leak", "probes", "note">, Rule<"wrapper-leak", "survey", "note">, Rule<"mask-contradiction", "survey", "note">, Rule<"survey", "survey", "note">, Rule<"answer-fingerprint", "answerFingerprint", "note">];
|
|
7
|
+
export declare const RULES: readonly [Rule<"thinking-floor", "floorReply", "evidence">, Rule<"thinking-honored", "askedThinkingReply", "evidence">, Rule<"tokenizer-fingerprint", "fixedText", "evidence">, Rule<"tokenizer-family", "scriptTokens", "evidence">, Rule<"masked-identity", "probes", "evidence">, Rule<"fake-200", "probes" | "survey", "evidence">, Rule<"coding-tool", "probes", "probe">, Rule<"scam", "probes", "probe">, Rule<"cjk-leak", "probes", "probe">, Rule<"mux", "probes", "probe">, Rule<"foreign", "probes", "probe">, Rule<"served-model-mismatch", "probes", "probe">, Rule<"substituted", "probes", "probe">, Rule<"quorum", "probes", "probe">, Rule<"tier-self-report", "probes", "note">, Rule<"signature", "thinkingReply", "note">, Rule<"token-truth", "countTokens" | "fixedText", "note">, Rule<"envelope", "probes", "note">, Rule<"throughput", "probes", "note">, Rule<"think-leak", "probes", "note">, Rule<"wrapper-leak", "survey", "note">, Rule<"mask-contradiction", "survey", "note">, Rule<"survey", "survey", "note">, Rule<"answer-fingerprint", "answerFingerprint", "note">];
|
|
8
8
|
type RuleEntry = (typeof RULES)[number];
|
|
9
9
|
export type RuleId = RuleEntry["id"];
|
|
10
10
|
/** Rules that can decide a verdict; a UI naming every rule keys off this. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/rules/table.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/rules/table.ts"],"names":[],"mappings":"AA2BA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAEpC;;;;GAIG;AACH,eAAO,MAAM,KAAK,2iCAyBkB,CAAC;AAErC,KAAK,SAAS,GAAG,CAAC,OAAO,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC;AACxC,MAAM,MAAM,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AACrC,6EAA6E;AAC7E,MAAM,MAAM,aAAa,GAAG,OAAO,CACjC,SAAS,EACT;IAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAA;CAAE,CAChC,CAAC,IAAI,CAAC,CAAC;AAER,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAGlC,CAAC;AAEnB,eAAO,MAAM,oBAAoB,YAC/B,SAAS,EACT,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,CACH,CAAC;AACX,MAAM,MAAM,oBAAoB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzE,0EAA0E;AAC1E,eAAO,MAAM,eAAe;4BACX,aAAa;mBACtB,MAAM;yBACA,UAAU;sBACb,SAAS;;oBAEX,QAAQ;CAC0D,CAAC"}
|
package/dist/rules/table.js
CHANGED
|
@@ -13,6 +13,7 @@ import { thinkingHonoredRule } from "./thinking-honored";
|
|
|
13
13
|
import { throughputRule } from "./throughput";
|
|
14
14
|
import { tokenTruthRule } from "./token-truth";
|
|
15
15
|
import { tokenizerFingerprintRule } from "./tokenizer-fingerprint";
|
|
16
|
+
import { tokenizerFamilyRule } from "./tokenizer-family";
|
|
16
17
|
/**
|
|
17
18
|
* Precedence is this order: the first finding that is not a note decides the
|
|
18
19
|
* verdict. Evidence rules sit above the probe ladder because they read facts a
|
|
@@ -22,6 +23,7 @@ export const RULES = [
|
|
|
22
23
|
thinkingFloorRule,
|
|
23
24
|
thinkingHonoredRule,
|
|
24
25
|
tokenizerFingerprintRule,
|
|
26
|
+
tokenizerFamilyRule,
|
|
25
27
|
maskedIdentityRule,
|
|
26
28
|
fake200Rule,
|
|
27
29
|
codingToolRule,
|
package/dist/rules/table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/rules/table.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,cAAc,EACd,WAAW,EACX,OAAO,EACP,UAAU,EACV,QAAQ,EACR,uBAAuB,EACvB,eAAe,EACf,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../src/rules/table.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,cAAc,EACd,WAAW,EACX,OAAO,EACP,UAAU,EACV,QAAQ,EACR,uBAAuB,EACvB,eAAe,EACf,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAGzD;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,iBAAiB;IACjB,mBAAmB;IACnB,wBAAwB;IACxB,mBAAmB;IACnB,kBAAkB;IAClB,WAAW;IACX,cAAc;IACd,QAAQ;IACR,WAAW;IACX,OAAO;IACP,WAAW;IACX,uBAAuB;IACvB,eAAe;IACf,UAAU;IACV,kBAAkB;IAClB,aAAa;IACb,cAAc;IACd,YAAY;IACZ,cAAc;IACd,aAAa;IACb,eAAe;IACf,qBAAqB;IACrB,UAAU;IACV,qBAAqB;CACa,CAAC;AAUrC,MAAM,CAAC,MAAM,eAAe,GAA6B,KAAK,CAAC,MAAM,CACnE,CAAC,CAAC,EAA4D,EAAE,CAC9D,CAAC,CAAC,KAAK,KAAK,MAAM,CACrB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAEnB,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,SAAS;IACT,WAAW;IACX,YAAY;IACZ,WAAW;IACX,WAAW;CACH,CAAC;AAGX,0EAA0E;AAC1E,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,aAAa,EAAE,aAAa;IAC5B,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,UAAU;IACtB,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,IAAI;IAClB,KAAK,EAAE,QAAQ;CAC0D,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tokenizer family: which vocabulary billed the four script runs.
|
|
3
|
+
*
|
|
4
|
+
* A system prompt can make any model call itself Claude, but it cannot change
|
|
5
|
+
* how the backend splits text. Radox sold "claude-fable-5.1" that passed the
|
|
6
|
+
* identity probes on most keys under a hidden persona prompt, yet billed
|
|
7
|
+
* 101/80/101/120, the Llama 4 vocabulary Meta's Muse Spark uses, where every
|
|
8
|
+
* Claude path measured bills 135 or more on the Chinese run.
|
|
9
|
+
*
|
|
10
|
+
* Fails only when all of these hold, so a quirky relay cannot trip it:
|
|
11
|
+
* the claimed maker has known vectors, the measured vector matches none of
|
|
12
|
+
* them, it does match another family, and that family is not one relays
|
|
13
|
+
* estimate usage with (OpenAI's).
|
|
14
|
+
*/
|
|
15
|
+
import { type ScriptVector } from "../models/tokenizers";
|
|
16
|
+
export type TokenizerFamilyState = "own"
|
|
17
|
+
/** Matches another maker's family and none of the claimed maker's. */
|
|
18
|
+
| "foreign"
|
|
19
|
+
/** Matches only an estimator family: the relay may be counting. */
|
|
20
|
+
| "estimated"
|
|
21
|
+
/** Measured but matches no known family. */
|
|
22
|
+
| "unknown" | "unmeasured";
|
|
23
|
+
export type TokenizerFamilyResult = {
|
|
24
|
+
state: TokenizerFamilyState;
|
|
25
|
+
vector: ScriptVector | null;
|
|
26
|
+
families: string[];
|
|
27
|
+
makers: string[];
|
|
28
|
+
reason?: string;
|
|
29
|
+
};
|
|
30
|
+
/** Judge one measured vector against the claimed maker. Pure. */
|
|
31
|
+
export declare function judgeTokenizerFamily(maker: string, vector: ScriptVector): TokenizerFamilyResult;
|
|
32
|
+
export declare const tokenizerFamilyRule: import("./types").Rule<"tokenizer-family", "scriptTokens", "evidence">;
|
|
33
|
+
//# sourceMappingURL=tokenizer-family.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenizer-family.d.ts","sourceRoot":"","sources":["../../src/rules/tokenizer-family.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAGL,KAAK,YAAY,EAClB,MAAM,sBAAsB,CAAC;AAG9B,MAAM,MAAM,oBAAoB,GAC5B,KAAK;AACP,sEAAsE;GACpE,SAAS;AACX,mEAAmE;GACjE,WAAW;AACb,4CAA4C;GAC1C,SAAS,GACT,YAAY,CAAC;AAEjB,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAC5B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,iEAAiE;AACjE,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,YAAY,GACnB,qBAAqB,CAkBvB;AAoCD,eAAO,MAAM,mBAAmB,wEAkB9B,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tokenizer family: which vocabulary billed the four script runs.
|
|
3
|
+
*
|
|
4
|
+
* A system prompt can make any model call itself Claude, but it cannot change
|
|
5
|
+
* how the backend splits text. Radox sold "claude-fable-5.1" that passed the
|
|
6
|
+
* identity probes on most keys under a hidden persona prompt, yet billed
|
|
7
|
+
* 101/80/101/120, the Llama 4 vocabulary Meta's Muse Spark uses, where every
|
|
8
|
+
* Claude path measured bills 135 or more on the Chinese run.
|
|
9
|
+
*
|
|
10
|
+
* Fails only when all of these hold, so a quirky relay cannot trip it:
|
|
11
|
+
* the claimed maker has known vectors, the measured vector matches none of
|
|
12
|
+
* them, it does match another family, and that family is not one relays
|
|
13
|
+
* estimate usage with (OpenAI's).
|
|
14
|
+
*/
|
|
15
|
+
import { knowsMaker, matchTokenizerFamilies, } from "../models/tokenizers";
|
|
16
|
+
import { defineRule } from "./types";
|
|
17
|
+
/** Judge one measured vector against the claimed maker. Pure. */
|
|
18
|
+
export function judgeTokenizerFamily(maker, vector) {
|
|
19
|
+
const matched = matchTokenizerFamilies(vector);
|
|
20
|
+
const base = {
|
|
21
|
+
vector,
|
|
22
|
+
families: matched.map((f) => f.id),
|
|
23
|
+
makers: [...new Set(matched.flatMap((f) => f.makers))],
|
|
24
|
+
};
|
|
25
|
+
if (matched.length === 0)
|
|
26
|
+
return { state: "unknown", ...base };
|
|
27
|
+
if (matched.some((f) => f.makers.some((m) => m === maker)))
|
|
28
|
+
return { state: "own", ...base };
|
|
29
|
+
if (matched.every((f) => f.estimator))
|
|
30
|
+
return { state: "estimated", ...base };
|
|
31
|
+
if (!knowsMaker(maker))
|
|
32
|
+
return {
|
|
33
|
+
state: "unknown",
|
|
34
|
+
...base,
|
|
35
|
+
reason: `no vectors known for ${maker}`,
|
|
36
|
+
};
|
|
37
|
+
return { state: "foreign", ...base };
|
|
38
|
+
}
|
|
39
|
+
async function familyResult(ctx) {
|
|
40
|
+
const ev = await ctx.evidence("scriptTokens");
|
|
41
|
+
const empty = { vector: null, families: [], makers: [] };
|
|
42
|
+
const prompt = (r) => r.status !== null && r.status < 400
|
|
43
|
+
? (ctx.wire.read.meta(r.data).usage?.prompt ?? null)
|
|
44
|
+
: null;
|
|
45
|
+
const base = prompt(ev.base);
|
|
46
|
+
if (base === null)
|
|
47
|
+
return {
|
|
48
|
+
state: "unmeasured",
|
|
49
|
+
...empty,
|
|
50
|
+
reason: `anchor ${ev.base.status ?? "network"}: ${ev.base.error ?? "no usage"}`,
|
|
51
|
+
};
|
|
52
|
+
// A cache split between anchor and run shows as a negative or absurd delta.
|
|
53
|
+
const delta = (k) => {
|
|
54
|
+
const n = prompt(ev.variants[k]);
|
|
55
|
+
return n === null || n - base <= 0 || n - base > 2000 ? null : n - base;
|
|
56
|
+
};
|
|
57
|
+
const digits = delta("digits");
|
|
58
|
+
const cjk = delta("cjk");
|
|
59
|
+
const spaces = delta("spaces");
|
|
60
|
+
const code = delta("code");
|
|
61
|
+
if (digits === null || cjk === null || spaces === null || code === null)
|
|
62
|
+
return {
|
|
63
|
+
state: "unmeasured",
|
|
64
|
+
...empty,
|
|
65
|
+
reason: "a run had no usable count",
|
|
66
|
+
};
|
|
67
|
+
return judgeTokenizerFamily(ctx.maker.id, { digits, cjk, spaces, code });
|
|
68
|
+
}
|
|
69
|
+
export const tokenizerFamilyRule = defineRule({
|
|
70
|
+
id: "tokenizer-family",
|
|
71
|
+
layer: "evidence",
|
|
72
|
+
needs: ["scriptTokens"],
|
|
73
|
+
check: "tokenizerFamily",
|
|
74
|
+
// Gemini's native wire reports usage its own way; the OpenAI and Anthropic wires carry it as billed.
|
|
75
|
+
applies: (ctx) => ctx.wire.id !== "gemini",
|
|
76
|
+
judge: async (ctx) => {
|
|
77
|
+
const r = await familyResult(ctx);
|
|
78
|
+
if (r.state !== "foreign" || !r.vector)
|
|
79
|
+
return null;
|
|
80
|
+
const v = r.vector;
|
|
81
|
+
return {
|
|
82
|
+
severity: "fail",
|
|
83
|
+
reason: `tokenizer-family: billed ${v.digits}/${v.cjk}/${v.spaces}/${v.code}, the ${r.families.join("/")} vocabulary (${r.makers.join(", ")}), not ${ctx.maker.id}`,
|
|
84
|
+
data: r,
|
|
85
|
+
};
|
|
86
|
+
},
|
|
87
|
+
report: async (ctx) => ({ tokenizerFamily: await familyResult(ctx) }),
|
|
88
|
+
});
|
|
89
|
+
//# sourceMappingURL=tokenizer-family.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenizer-family.js","sourceRoot":"","sources":["../../src/rules/tokenizer-family.ts"],"names":[],"mappings":"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"}
|
package/dist/rules/types.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ import type { ThinkingHonoredResult } from "./thinking-honored";
|
|
|
9
9
|
import type { ThroughputSample } from "./throughput";
|
|
10
10
|
import type { TokenTruthResult } from "./token-truth";
|
|
11
11
|
import type { TokenizerFingerprintResult } from "./tokenizer-fingerprint";
|
|
12
|
+
import type { TokenizerFamilyResult } from "./tokenizer-family";
|
|
12
13
|
/**
|
|
13
14
|
* How a finding weighs on the verdict. `fail` and `suspect` both make the
|
|
14
15
|
* endpoint suspicious (kept apart so a consumer policy can demote one),
|
|
@@ -38,6 +39,7 @@ export type Reports = {
|
|
|
38
39
|
thinkingFloor?: ThinkingFloorResult;
|
|
39
40
|
thinkingHonored?: ThinkingHonoredResult;
|
|
40
41
|
tokenizerFingerprint?: TokenizerFingerprintResult;
|
|
42
|
+
tokenizerFamily?: TokenizerFamilyResult;
|
|
41
43
|
responseMetadata?: ResponseMetadata;
|
|
42
44
|
throughput?: ThroughputSample | null;
|
|
43
45
|
survey?: SurveyOutcome[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/rules/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/rules/types.ts"],"names":[],"mappings":"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"}
|
package/dist/rules/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/rules/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/rules/types.ts"],"names":[],"mappings":"AA4EA,MAAM,CAAC,MAAM,UAAU,GAAG,CAKxB,IAAoB,EACJ,EAAE,CAAC,IAAI,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -59,6 +59,8 @@ export type Checks = {
|
|
|
59
59
|
tokenizerFingerprint?: boolean | {
|
|
60
60
|
signatures?: TierSignatures;
|
|
61
61
|
};
|
|
62
|
+
/** Which vocabulary billed four script runs; fails a foreign family (see the rule). */
|
|
63
|
+
tokenizerFamily?: boolean;
|
|
62
64
|
/** Ask the survey questions and report the answers; never a verdict. */
|
|
63
65
|
survey?: boolean;
|
|
64
66
|
/** The one-word answer battery at temperature 1, `repeats` per cell (default 3), `concurrency` calls in flight (default 4); never a verdict. */
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAEpE,YAAY,EACV,UAAU,EACV,UAAU,EACV,WAAW,EACX,WAAW,EACX,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,MAAM,GACP,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,YAAY,GAAG,YAAY,CAAC;AAEpE,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,UAAU,CAAC;IAClB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,0EAA0E;IAC1E,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,mEAAmE;IACnE,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;IACjC,0EAA0E;IAC1E,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEF,wHAAwH;AACxH,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,UAAU,GAAG,WAAW,GAAG,sBAAsB,gBAAgB,EAAE,CAAC;IAC3E,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,YAAY,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,MAAM,GAAG;IACnB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,OAAO,GAAG;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC;IAC3C,gFAAgF;IAChF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,aAAa,CAAC,EACZ,OAAO,GAAG;QAAE,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;QAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,sFAAsF;IACtF,oBAAoB,CAAC,EAAE,OAAO,GAAG;QAAE,UAAU,CAAC,EAAE,cAAc,CAAA;KAAE,CAAC;IACjE,wEAAwE;IACxE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,gJAAgJ;IAChJ,iBAAiB,CAAC,EAAE,OAAO,GAAG;QAAE,OAAO,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC1E,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,QAAQ,IAAI;IACvD,2CAA2C;IAC3C,MAAM,EAAE,CAAC,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,aAAa,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kFAAkF;IAClF,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,+FAA+F;IAC/F,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,yFAAyF;IACzF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GACzB,oBAAoB,GACpB,aAAa,GACb,aAAa,GACb,gBAAgB,GAChB,eAAe,GACf,WAAW,CAAC;AAEhB,MAAM,MAAM,YAAY,CACtB,CAAC,SAAS,MAAM,GAAG,QAAQ,EAC3B,CAAC,SAAS,MAAM,GAAG,MAAM,EACzB,CAAC,SAAS,MAAM,GAAG,OAAO,IACxB,OAAO,GAAG;IACZ,MAAM,EAAE,CAAC,CAAC;IACV,8GAA8G;IAC9G,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,aAAa,CAAC;IACvB,mBAAmB,EAAE,OAAO,CAAC;IAC7B,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,aAAa,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,EAAE,UAAU,GAAG,IAAI,CAAC;IAC9B,gFAAgF;IAChF,cAAc,EAAE,CAAC,CAAC;IAClB,iBAAiB,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAC7C,CAAC;AAEF,iFAAiF;AACjF,MAAM,MAAM,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IAC/C,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB,CAAC"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/verify.d.ts
CHANGED
|
@@ -24,10 +24,10 @@ export declare function verifyWith<V extends string, R extends string, M extends
|
|
|
24
24
|
export declare function runRulesWith<V extends string, R extends string, M extends string = MakerId>(registry: Registry<V, R, M>, opts: VerifyOptions<V> & {
|
|
25
25
|
only: readonly R[];
|
|
26
26
|
}): Promise<RuleRun<R>>;
|
|
27
|
-
export declare const verify: (opts: VerifyOptions) => Promise<VerifyResult<"anthropic" | "gemini" | "openai", "answer-fingerprint" | "cjk-leak" | "coding-tool" | "envelope" | "fake-200" | "foreign" | "mask-contradiction" | "masked-identity" | "mux" | "quorum" | "scam" | "served-model-mismatch" | "signature" | "substituted" | "survey" | "think-leak" | "thinking-floor" | "thinking-honored" | "throughput" | "tier-self-report" | "token-truth" | "tokenizer-fingerprint" | "wrapper-leak", "ai21" | "aion" | "alibaba" | "amazon" | "anthropic" | "arcee" | "baidu" | "bytedance" | "cohere" | "deepseek" | "google" | "ibm" | "inception" | "inclusionai" | "internlm" | "jetbrains" | "kwaipilot" | "liquid" | "meituan" | "meta" | "microsoft" | "minimax" | "mistral" | "moondream" | "moonshot" | "nexagi" | "nous" | "nvidia" | "openai" | "openbmb" | "perplexity" | "poolside" | "rednote" | "sarvam" | "sensetime" | "stepfun" | "swissai" | "tencent" | "typhoon" | "venice" | "writer" | "xai" | "xiaomi" | "zhipu">>;
|
|
27
|
+
export declare const verify: (opts: VerifyOptions) => Promise<VerifyResult<"anthropic" | "gemini" | "openai", "answer-fingerprint" | "cjk-leak" | "coding-tool" | "envelope" | "fake-200" | "foreign" | "mask-contradiction" | "masked-identity" | "mux" | "quorum" | "scam" | "served-model-mismatch" | "signature" | "substituted" | "survey" | "think-leak" | "thinking-floor" | "thinking-honored" | "throughput" | "tier-self-report" | "token-truth" | "tokenizer-family" | "tokenizer-fingerprint" | "wrapper-leak", "ai21" | "aion" | "alibaba" | "amazon" | "anthropic" | "arcee" | "baidu" | "bytedance" | "cohere" | "deepseek" | "google" | "ibm" | "inception" | "inclusionai" | "internlm" | "jetbrains" | "kwaipilot" | "liquid" | "meituan" | "meta" | "microsoft" | "minimax" | "mistral" | "moondream" | "moonshot" | "nexagi" | "nous" | "nvidia" | "openai" | "openbmb" | "perplexity" | "poolside" | "rednote" | "sarvam" | "sensetime" | "stepfun" | "swissai" | "tencent" | "typhoon" | "venice" | "writer" | "xai" | "xiaomi" | "zhipu">>;
|
|
28
28
|
export declare const runRules: (opts: VerifyOptions & {
|
|
29
29
|
only: readonly RuleId[];
|
|
30
|
-
}) => Promise<RuleRun<"answer-fingerprint" | "cjk-leak" | "coding-tool" | "envelope" | "fake-200" | "foreign" | "mask-contradiction" | "masked-identity" | "mux" | "quorum" | "scam" | "served-model-mismatch" | "signature" | "substituted" | "survey" | "think-leak" | "thinking-floor" | "thinking-honored" | "throughput" | "tier-self-report" | "token-truth" | "tokenizer-fingerprint" | "wrapper-leak">>;
|
|
30
|
+
}) => Promise<RuleRun<"answer-fingerprint" | "cjk-leak" | "coding-tool" | "envelope" | "fake-200" | "foreign" | "mask-contradiction" | "masked-identity" | "mux" | "quorum" | "scam" | "served-model-mismatch" | "signature" | "substituted" | "survey" | "think-leak" | "thinking-floor" | "thinking-honored" | "throughput" | "tier-self-report" | "token-truth" | "tokenizer-family" | "tokenizer-fingerprint" | "wrapper-leak">>;
|
|
31
31
|
/** One raw request through the run's transport and body extras, for callers with their own probes. */
|
|
32
32
|
export { callWire };
|
|
33
33
|
//# sourceMappingURL=verify.d.ts.map
|
package/dist/verify.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA8B,MAAM,kBAAkB,CAAC;AAMxE,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAU,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAS,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAoB,IAAI,EAAW,MAAM,eAAe,CAAC;AAErE,OAAO,KAAK,EAGV,OAAO,EACP,aAAa,EACb,YAAY,EACb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAsB,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIjE,MAAM,MAAM,QAAQ,CAClB,CAAC,SAAS,MAAM,GAAG,QAAQ,EAC3B,CAAC,SAAS,MAAM,GAAG,MAAM,EACzB,CAAC,SAAS,MAAM,GAAG,OAAO,IACxB;IACF,OAAO,EAAE,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IACrC,KAAK,EAAE,SAAS,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1B,KAAK,EAAE,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAChC,MAAM,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,QAK9B,CAAC;AA+JF,sDAAsD;AACtD,wBAAsB,UAAU,CAC9B,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,GAAG,OAAO,EAE1B,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC3B,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CA4ChC;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,GAAG,OAAO,EAE1B,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC3B,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC,EAAE,CAAA;CAAE,GAC9C,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAYrB;AAED,eAAO,MAAM,MAAM,SAAU,aAAa,
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../src/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA8B,MAAM,kBAAkB,CAAC;AAMxE,OAAO,EAGL,KAAK,UAAU,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAU,KAAK,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAE5C,OAAO,EAAS,KAAK,MAAM,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,KAAK,EAAoB,IAAI,EAAW,MAAM,eAAe,CAAC;AAErE,OAAO,KAAK,EAGV,OAAO,EACP,aAAa,EACb,YAAY,EACb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAsB,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIjE,MAAM,MAAM,QAAQ,CAClB,CAAC,SAAS,MAAM,GAAG,QAAQ,EAC3B,CAAC,SAAS,MAAM,GAAG,MAAM,EACzB,CAAC,SAAS,MAAM,GAAG,OAAO,IACxB;IACF,OAAO,EAAE,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IACrC,KAAK,EAAE,SAAS,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1B,KAAK,EAAE,SAAS,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;IAChC,MAAM,EAAE,SAAS,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,QAK9B,CAAC;AA+JF,sDAAsD;AACtD,wBAAsB,UAAU,CAC9B,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,GAAG,OAAO,EAE1B,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC3B,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CA4ChC;AAED;;;;GAIG;AACH,wBAAsB,YAAY,CAChC,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,GAAG,OAAO,EAE1B,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAC3B,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC,EAAE,CAAA;CAAE,GAC9C,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAYrB;AAED,eAAO,MAAM,MAAM,SAAU,aAAa,g9BACN,CAAC;AAErC,eAAO,MAAM,QAAQ,SAAU,aAAa,GAAG;IAAE,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,maACpC,CAAC;AAEvC,sGAAsG;AACtG,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ai-model-verifier",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.9.0",
|
|
4
4
|
"description": "Verify an AI API endpoint really serves the model it claims: a vendor adapter per wire, a maker table for who trained what, a rule table over shared evidence, and per model facts. Model substitution, Claude thinking signatures, token billing accuracy, envelope and throughput evidence.",
|
|
5
5
|
"license": "AGPL-3.0-only",
|
|
6
6
|
"type": "module",
|