ai-model-verifier 3.5.0 → 3.6.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.
Files changed (38) hide show
  1. package/README.md +4 -0
  2. package/dist/engine/survey-runner.d.ts +2 -0
  3. package/dist/engine/survey-runner.d.ts.map +1 -1
  4. package/dist/engine/survey-runner.js +3 -0
  5. package/dist/engine/survey-runner.js.map +1 -1
  6. package/dist/identity/patterns.d.ts +10 -0
  7. package/dist/identity/patterns.d.ts.map +1 -1
  8. package/dist/identity/patterns.js +10 -0
  9. package/dist/identity/patterns.js.map +1 -1
  10. package/dist/registry.d.ts +1 -1
  11. package/dist/rules/masked-identity.d.ts +8 -0
  12. package/dist/rules/masked-identity.d.ts.map +1 -0
  13. package/dist/rules/masked-identity.js +50 -0
  14. package/dist/rules/masked-identity.js.map +1 -0
  15. package/dist/rules/table.d.ts +1 -1
  16. package/dist/rules/table.d.ts.map +1 -1
  17. package/dist/rules/table.js +2 -0
  18. package/dist/rules/table.js.map +1 -1
  19. package/dist/vendors/anthropic.d.ts +2 -0
  20. package/dist/vendors/anthropic.d.ts.map +1 -1
  21. package/dist/vendors/anthropic.js +7 -1
  22. package/dist/vendors/anthropic.js.map +1 -1
  23. package/dist/vendors/gemini.d.ts +2 -0
  24. package/dist/vendors/gemini.d.ts.map +1 -1
  25. package/dist/vendors/gemini.js +8 -1
  26. package/dist/vendors/gemini.js.map +1 -1
  27. package/dist/vendors/openai.d.ts +2 -0
  28. package/dist/vendors/openai.d.ts.map +1 -1
  29. package/dist/vendors/openai.js +18 -1
  30. package/dist/vendors/openai.js.map +1 -1
  31. package/dist/vendors/table.d.ts +3 -0
  32. package/dist/vendors/table.d.ts.map +1 -1
  33. package/dist/vendors/types.d.ts +3 -0
  34. package/dist/vendors/types.d.ts.map +1 -1
  35. package/dist/vendors/types.js.map +1 -1
  36. package/dist/verify.d.ts +2 -2
  37. package/dist/verify.d.ts.map +1 -1
  38. package/package.json +1 -1
package/README.md CHANGED
@@ -99,6 +99,10 @@ response-mixing proxies (`mux`); another maker named as the maker, judged by the
99
99
  requested model's own maker rather than the wire; the reply's own `model` field naming another tier
100
100
  (`served-model-mismatch`) or another model (`substituted`); and a probe quorum
101
101
  that only fails on non-transient evidence.
102
+ A disguised model (`masked-identity`) is caught from its own reasoning: the
103
+ wrapper that makes it answer under another name tells it to never mention its
104
+ real maker or the provider behind it, and the reasoning restates that
105
+ instruction even when every identity answer is coached.
102
106
 
103
107
  A model whose id names no maker is judged by the wire's default maker, and a
104
108
  model that only says "I am an AI assistant" fails the identity probe, which the
@@ -18,6 +18,8 @@ export type SurveyOutcome = {
18
18
  usage: ProbeUsage | null;
19
19
  /** Hidden and visible output counts when the wire reports them. */
20
20
  reasoning: ReasoningUsage | null;
21
+ /** Visible reasoning text, lowercased and capped; null when none came. */
22
+ thought: string | null;
21
23
  detectedModel: string | null;
22
24
  error: string | null;
23
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"survey-runner.d.ts","sourceRoot":"","sources":["../../src/engine/survey-runner.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAuB,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAI7D,mEAAmE;AACnE,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,kEAAkE;IAClE,MAAM,EAAE,OAAO,CAAC;IAChB,6EAA6E;IAC7E,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,mEAAmE;IACnE,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;IACjC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAsEF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAEnE"}
1
+ {"version":3,"file":"survey-runner.d.ts","sourceRoot":"","sources":["../../src/engine/survey-runner.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,WAAW,EACjB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAuB,KAAK,MAAM,EAAE,MAAM,WAAW,CAAC;AAO7D,mEAAmE;AACnE,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE,WAAW,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,4EAA4E;IAC5E,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,0DAA0D;IAC1D,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,kEAAkE;IAClE,MAAM,EAAE,OAAO,CAAC;IAChB,6EAA6E;IAC7E,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,UAAU,GAAG,IAAI,CAAC;IACzB,mEAAmE;IACnE,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;IACjC,0EAA0E;IAC1E,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAC;AAwEF,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAEnE"}
@@ -2,6 +2,7 @@ import { echoesNonce } from "../probes/prompts";
2
2
  import { SURVEY, stripNonce, } from "../probes/survey";
3
3
  import { buildChat, callWire } from "./context";
4
4
  const ANSWER_CAP = 2000;
5
+ const capThought = (t) => t === null ? null : t.length > ANSWER_CAP ? `${t.slice(0, ANSWER_CAP)}...` : t;
5
6
  async function ask(ctx, q) {
6
7
  const started = performance.now();
7
8
  const nonce = ctx.nonce();
@@ -23,6 +24,7 @@ async function ask(ctx, q) {
23
24
  latencyMs,
24
25
  usage: null,
25
26
  reasoning: null,
27
+ thought: null,
26
28
  detectedModel: null,
27
29
  };
28
30
  const log = (pass, responseText, error) => ctx.onProbe?.({
@@ -61,6 +63,7 @@ async function ask(ctx, q) {
61
63
  correct,
62
64
  usage: meta.usage,
63
65
  reasoning: ctx.wire.read.reasoningUsage?.(res.data) ?? null,
66
+ thought: capThought(ctx.wire.read.reasoningText?.(res.data) ?? null),
64
67
  detectedModel: meta.detectedModel,
65
68
  error: null,
66
69
  };
@@ -1 +1 @@
1
- {"version":3,"file":"survey-runner.js","sourceRoot":"","sources":["../../src/engine/survey-runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"survey-runner.js","sourceRoot":"","sources":["../../src/engine/survey-runner.ts"],"names":[],"mappings":"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"}
@@ -18,4 +18,14 @@ export declare const WRAPPER_SIGNATURES: string[];
18
18
  export declare const CJK_CHAR: RegExp;
19
19
  /** A couple of incidental glyphs (a quoted loanword) are tolerated. */
20
20
  export declare const CJK_LEAK_MIN_CHARS = 4;
21
+ /**
22
+ * A disguised model is coached to keep the backend quiet, and its own
23
+ * reasoning repeats the coaching ("per gateway policy: answer only with the
24
+ * declared public profile identity and never mention openai"). A hiding verb
25
+ * aimed at a competitor or at the provider, plus a sign it was instructed.
26
+ */
27
+ export declare const MASKING_VERB: RegExp;
28
+ export declare const MASKING_HIDDEN_BACKEND: RegExp;
29
+ export declare const MASKING_DECLARED_IDENTITY: RegExp;
30
+ export declare const MASKING_INSTRUCTED: RegExp;
21
31
  //# sourceMappingURL=patterns.d.ts.map
@@ -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;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,UAU9B,CAAC;AAEF,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;AAEpC;;;;;GAKG;AACH,eAAO,MAAM,YAAY,QACgI,CAAC;AAE1J,eAAO,MAAM,sBAAsB,QACoG,CAAC;AAExI,eAAO,MAAM,yBAAyB,QAC6D,CAAC;AAEpG,eAAO,MAAM,kBAAkB,QACoG,CAAC"}
@@ -62,4 +62,14 @@ export const WRAPPER_SIGNATURES = [
62
62
  export const CJK_CHAR = /[぀-ヿ㐀-䶿一-鿿豈-﫿가-힯]/g;
63
63
  /** A couple of incidental glyphs (a quoted loanword) are tolerated. */
64
64
  export const CJK_LEAK_MIN_CHARS = 4;
65
+ /**
66
+ * A disguised model is coached to keep the backend quiet, and its own
67
+ * reasoning repeats the coaching ("per gateway policy: answer only with the
68
+ * declared public profile identity and never mention openai"). A hiding verb
69
+ * aimed at a competitor or at the provider, plus a sign it was instructed.
70
+ */
71
+ export const MASKING_VERB = /\b(?:never|don'?t|do not|must not|mustn'?t|should not|shouldn'?t|not to)\s+(?:mention|reveal|disclose|admit|acknowledge|discuss|bring up|refer to)\b/g;
72
+ export const MASKING_HIDDEN_BACKEND = /\b(?:hidden|underlying|real|actual|true|original|upstream)\s+(?:instructions?\s*\/\s*)?(?:model|provider|vendor|backend|origin)s?\b/;
73
+ export const MASKING_DECLARED_IDENTITY = /\b(?:declared|assigned|configured|public)\s+(?:public\s+)?(?:profile|persona)(?:\s+identity)?\b/;
74
+ export const MASKING_INSTRUCTED = /\b(?:policy|instructions?|system prompt|guidelines?|gateway|profile|persona|operator|configured|told to|i was told|i'?m told)\b/;
65
75
  //# sourceMappingURL=patterns.js.map
@@ -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;;;;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"}
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;AAEpC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GACvB,uJAAuJ,CAAC;AAE1J,MAAM,CAAC,MAAM,sBAAsB,GACjC,qIAAqI,CAAC;AAExI,MAAM,CAAC,MAAM,yBAAyB,GACpC,iGAAiG,CAAC;AAEpG,MAAM,CAAC,MAAM,kBAAkB,GAC7B,iIAAiI,CAAC"}
@@ -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" | "foreign" | "mux" | "quorum" | "scam" | "served-model-mismatch" | "signature" | "substituted" | "survey" | "think-leak" | "thinking-floor" | "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" | "foreign" | "masked-identity" | "mux" | "quorum" | "scam" | "served-model-mismatch" | "signature" | "substituted" | "survey" | "think-leak" | "thinking-floor" | "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>;
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)[];
@@ -0,0 +1,8 @@
1
+ /**
2
+ * A lane serving one model under another's name injects a prompt telling it
3
+ * to deny the backend. Coached replies pass every identity probe, but the
4
+ * model's own reasoning restates the coaching, so the probes' reasoning (and
5
+ * any reasoning leaked into the content) is searched for that instruction.
6
+ */
7
+ export declare const maskedIdentityRule: import("./types").Rule<"masked-identity", "probes", "evidence">;
8
+ //# sourceMappingURL=masked-identity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"masked-identity.d.ts","sourceRoot":"","sources":["../../src/rules/masked-identity.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6BH,eAAO,MAAM,kBAAkB,iEAyB7B,CAAC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * A lane serving one model under another's name injects a prompt telling it
3
+ * to deny the backend. Coached replies pass every identity probe, but the
4
+ * model's own reasoning restates the coaching, so the probes' reasoning (and
5
+ * any reasoning leaked into the content) is searched for that instruction.
6
+ */
7
+ import { MASKING_DECLARED_IDENTITY, MASKING_HIDDEN_BACKEND, MASKING_INSTRUCTED, MASKING_VERB, } from "../identity/patterns";
8
+ import { includesAnyWord } from "../identity/signals";
9
+ import { defineRule } from "./types";
10
+ const WINDOW = 80;
11
+ function maskingHit(text, ctx) {
12
+ if (!MASKING_INSTRUCTED.test(text))
13
+ return null;
14
+ if (MASKING_DECLARED_IDENTITY.test(text))
15
+ return text.match(MASKING_DECLARED_IDENTITY)?.[0] ?? null;
16
+ for (const m of text.matchAll(MASKING_VERB)) {
17
+ const after = text.slice(m.index, m.index + m[0].length + WINDOW);
18
+ if (MASKING_HIDDEN_BACKEND.test(after) ||
19
+ includesAnyWord(after, ctx.maker.foreign))
20
+ return after.trim();
21
+ }
22
+ return null;
23
+ }
24
+ export const maskedIdentityRule = defineRule({
25
+ id: "masked-identity",
26
+ layer: "evidence",
27
+ needs: ["probes"],
28
+ applies: () => true,
29
+ judge: async (ctx) => {
30
+ const hits = [];
31
+ for (const p of await ctx.evidence("probes")) {
32
+ const thought = ctx.wire.read.reasoningText?.(p.raw) ?? "";
33
+ for (const source of [thought, p.text ?? ""]) {
34
+ const quote = source ? maskingHit(source, ctx) : null;
35
+ if (quote) {
36
+ hits.push({ label: p.label, quote });
37
+ break;
38
+ }
39
+ }
40
+ }
41
+ return hits.length > 0
42
+ ? {
43
+ severity: "suspect",
44
+ reason: `masked-identity: told to hide its backend (${hits[0].label}: "${hits[0].quote}")`,
45
+ data: { hits },
46
+ }
47
+ : null;
48
+ },
49
+ });
50
+ //# sourceMappingURL=masked-identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"masked-identity.js","sourceRoot":"","sources":["../../src/rules/masked-identity.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,yBAAyB,EACzB,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,GACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEtD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,MAAM,GAAG,EAAE,CAAC;AAElB,SAAS,UAAU,CAAC,IAAY,EAAE,GAAW;IAC3C,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAChD,IAAI,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC;QACtC,OAAO,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IAC5D,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,CAAC;QAClE,IACE,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC;YAClC,eAAe,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC;YAEzC,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,CAAC,MAAM,kBAAkB,GAAG,UAAU,CAAC;IAC3C,EAAE,EAAE,iBAAiB;IACrB,KAAK,EAAE,UAAU;IACjB,KAAK,EAAE,CAAC,QAAQ,CAAC;IACjB,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;IACnB,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACnB,MAAM,IAAI,GAAuC,EAAE,CAAC;QACpD,KAAK,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7C,MAAM,OAAO,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YAC3D,KAAK,MAAM,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACtD,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;oBACrC,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC;YACpB,CAAC,CAAC;gBACE,QAAQ,EAAE,SAAS;gBACnB,MAAM,EAAE,8CAA8C,IAAI,CAAC,CAAC,CAAE,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,CAAE,CAAC,KAAK,IAAI;gBAC5F,IAAI,EAAE,EAAE,IAAI,EAAE;aACf;YACH,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;CACF,CAAC,CAAC"}
@@ -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<"tokenizer-fingerprint", "fixedText", "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<"survey", "survey", "note">, Rule<"answer-fingerprint", "answerFingerprint", "note">];
7
+ export declare const RULES: readonly [Rule<"thinking-floor", "floorReply", "evidence">, Rule<"tokenizer-fingerprint", "fixedText", "evidence">, Rule<"masked-identity", "probes", "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<"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":"AAsBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAEpC;;;;GAIG;AACH,eAAO,MAAM,KAAK,yyBAoBkB,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"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/rules/table.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAEpC;;;;GAIG;AACH,eAAO,MAAM,KAAK,w1BAqBkB,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"}
@@ -4,6 +4,7 @@ import { signatureRule } from "./thinking-signature";
4
4
  import { surveyRule } from "./survey";
5
5
  import { answerFingerprintRule } from "./answer-fingerprint";
6
6
  import { thinkLeakRule } from "./think-leak";
7
+ import { maskedIdentityRule } from "./masked-identity";
7
8
  import { wrapperLeakRule } from "./wrapper-leak";
8
9
  import { thinkingFloorRule } from "./thinking-floor";
9
10
  import { throughputRule } from "./throughput";
@@ -17,6 +18,7 @@ import { tokenizerFingerprintRule } from "./tokenizer-fingerprint";
17
18
  export const RULES = [
18
19
  thinkingFloorRule,
19
20
  tokenizerFingerprintRule,
21
+ maskedIdentityRule,
20
22
  codingToolRule,
21
23
  scamRule,
22
24
  cjkLeakRule,
@@ -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,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAGnE;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,iBAAiB;IACjB,wBAAwB;IACxB,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,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"}
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,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AAGnE;;;;GAIG;AACH,MAAM,CAAC,MAAM,KAAK,GAAG;IACnB,iBAAiB;IACjB,wBAAwB;IACxB,kBAAkB;IAClB,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,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"}
@@ -13,6 +13,7 @@ declare function countTokens(req: CountRequest, ctx: WireCtx): {
13
13
  };
14
14
  };
15
15
  declare function text(data: unknown): string | null;
16
+ declare function reasoningText(data: unknown): string | null;
16
17
  declare function meta(data: unknown): ProbeMeta;
17
18
  declare function thinkingBlock(data: unknown): ThinkingBlockRead | null;
18
19
  declare function countedTokens(data: unknown): number | null;
@@ -30,6 +31,7 @@ export declare const anthropicVendor: {
30
31
  readonly meta: typeof meta;
31
32
  readonly thinkingBlock: typeof thinkingBlock;
32
33
  readonly countedTokens: typeof countedTokens;
34
+ readonly reasoningText: typeof reasoningText;
33
35
  };
34
36
  readonly defaultMaker: "anthropic";
35
37
  };
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/vendors/anthropic.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACb,MAAM,SAAS,CAAC;AAwCjB,iBAAS,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO;;;;EAwB3C;AAED,iBAAS,WAAW,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO;IAEhD,GAAG;IACH,OAAO;IACP,IAAI;QAAI,KAAK;QAAa,QAAQ;;EAErC;AAED,iBAAS,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAQ1C;AAED,iBAAS,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,CAgBtC;AAED,iBAAS,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,iBAAiB,GAAG,IAAI,CAU9D;AAED,iBAAS,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAGnD;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;CAQ1B,CAAC"}
1
+ {"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../src/vendors/anthropic.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,OAAO,EACb,MAAM,SAAS,CAAC;AAwCjB,iBAAS,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO;;;;EAwB3C;AAED,iBAAS,WAAW,CAAC,GAAG,EAAE,YAAY,EAAE,GAAG,EAAE,OAAO;IAEhD,GAAG;IACH,OAAO;IACP,IAAI;QAAI,KAAK;QAAa,QAAQ;;EAErC;AAED,iBAAS,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAQ1C;AAED,iBAAS,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAKnD;AAED,iBAAS,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,CAgBtC;AAED,iBAAS,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,iBAAiB,GAAG,IAAI,CAU9D;AAED,iBAAS,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAGnD;AAED,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;CAQ1B,CAAC"}
@@ -65,6 +65,12 @@ function text(data) {
65
65
  .join(" ")
66
66
  .toLowerCase();
67
67
  }
68
+ function reasoningText(data) {
69
+ const thoughts = blocksOf(data)
70
+ .filter((b) => b.type === "thinking" && typeof b.thinking === "string")
71
+ .map((b) => b.thinking ?? "");
72
+ return thoughts.length > 0 ? thoughts.join(" ").toLowerCase() : null;
73
+ }
68
74
  function meta(data) {
69
75
  const d = rec(data) ?? {};
70
76
  const u = d.usage;
@@ -103,7 +109,7 @@ export const anthropicVendor = defineVendor({
103
109
  envelope: "anthropic",
104
110
  fallbackWires: ["openai"],
105
111
  ops: { chat, countTokens },
106
- read: { text, meta, thinkingBlock, countedTokens },
112
+ read: { text, meta, thinkingBlock, countedTokens, reasoningText },
107
113
  defaultMaker: "anthropic",
108
114
  });
109
115
  //# sourceMappingURL=anthropic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/vendors/anthropic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/vendors/anthropic.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ declare function chat(req: ChatRequest, ctx: WireCtx): {
19
19
  };
20
20
  };
21
21
  declare function text(data: unknown): string | null;
22
+ declare function reasoningText(data: unknown): string | null;
22
23
  declare function meta(data: unknown): ProbeMeta;
23
24
  declare function reasoningUsage(data: unknown): ReasoningUsage | null;
24
25
  export declare const geminiVendor: {
@@ -33,6 +34,7 @@ export declare const geminiVendor: {
33
34
  readonly text: typeof text;
34
35
  readonly meta: typeof meta;
35
36
  readonly reasoningUsage: typeof reasoningUsage;
37
+ readonly reasoningText: typeof reasoningText;
36
38
  };
37
39
  readonly defaultMaker: "google";
38
40
  };
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/vendors/gemini.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,OAAO,EACb,MAAM,SAAS,CAAC;AAiBjB,iBAAS,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO;;;QAItC,cAAc;QACd,gBAAgB;;;;;;;;;;;;;;EAkBrB;AAED,iBAAS,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAS1C;AAED,iBAAS,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,CAatC;AAED,iBAAS,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAQ5D;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;CAQvB,CAAC"}
1
+ {"version":3,"file":"gemini.d.ts","sourceRoot":"","sources":["../../src/vendors/gemini.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,OAAO,EACb,MAAM,SAAS,CAAC;AAmBjB,iBAAS,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO;;;QAItC,cAAc;QACd,gBAAgB;;;;;;;;;;;;;;EAkBrB;AAED,iBAAS,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAS1C;AAED,iBAAS,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAMnD;AAED,iBAAS,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,CAatC;AAED,iBAAS,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAQ5D;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;CAQvB,CAAC"}
@@ -38,6 +38,13 @@ function text(data) {
38
38
  .join(" ")
39
39
  .toLowerCase();
40
40
  }
41
+ function reasoningText(data) {
42
+ const d = rec(data) ?? {};
43
+ const thoughts = (d.candidates?.[0]?.content?.parts ?? [])
44
+ .filter((p) => p.thought === true && typeof p.text === "string")
45
+ .map((p) => p.text ?? "");
46
+ return thoughts.length > 0 ? thoughts.join(" ").toLowerCase() : null;
47
+ }
41
48
  function meta(data) {
42
49
  const d = rec(data) ?? {};
43
50
  const u = d.usageMetadata;
@@ -68,7 +75,7 @@ export const geminiVendor = defineVendor({
68
75
  envelope: "gemini",
69
76
  fallbackWires: ["openai"],
70
77
  ops: { chat },
71
- read: { text, meta, reasoningUsage },
78
+ read: { text, meta, reasoningUsage, reasoningText },
72
79
  defaultMaker: "google",
73
80
  });
74
81
  //# sourceMappingURL=gemini.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/vendors/gemini.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/vendors/gemini.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ declare function chat(req: ChatRequest, ctx: WireCtx): {
24
24
  };
25
25
  };
26
26
  declare function text(data: unknown): string | null;
27
+ declare function reasoningText(data: unknown): string | null;
27
28
  declare function meta(data: unknown): ProbeMeta;
28
29
  declare function reasoningUsage(data: unknown): ReasoningUsage | null;
29
30
  export declare const openaiVendor: {
@@ -38,6 +39,7 @@ export declare const openaiVendor: {
38
39
  readonly text: typeof text;
39
40
  readonly meta: typeof meta;
40
41
  readonly reasoningUsage: typeof reasoningUsage;
42
+ readonly reasoningText: typeof reasoningText;
41
43
  };
42
44
  readonly defaultMaker: "openai";
43
45
  };
@@ -1 +1 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/vendors/openai.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,OAAO,EACb,MAAM,SAAS,CAAC;AAkBjB,iBAAS,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO;IAaxC,GAAG;IACH,OAAO;QACL,cAAc;QACd,aAAa;;IAEf,IAAI;;;;;;;;;;;;;;;;;EASP;AAED,iBAAS,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAY1C;AAED,iBAAS,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,CAatC;AAED,iBAAS,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAW5D;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;CAQvB,CAAC"}
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/vendors/openai.ts"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,OAAO,EACb,MAAM,SAAS,CAAC;AAqBjB,iBAAS,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,OAAO;IAaxC,GAAG;IACH,OAAO;QACL,cAAc;QACd,aAAa;;IAEf,IAAI;;;;;;;;;;;;;;;;;EASP;AAED,iBAAS,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAY1C;AAID,iBAAS,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAWnD;AAED,iBAAS,IAAI,CAAC,IAAI,EAAE,OAAO,GAAG,SAAS,CAatC;AAED,iBAAS,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,cAAc,GAAG,IAAI,CAW5D;AAED,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;CAQvB,CAAC"}
@@ -43,6 +43,23 @@ function text(data) {
43
43
  .toLowerCase();
44
44
  return null;
45
45
  }
46
+ // Relays spell visible reasoning three ways: DeepSeek's reasoning_content,
47
+ // OpenRouter's reasoning string, and its reasoning_details array.
48
+ function reasoningText(data) {
49
+ const d = rec(data) ?? {};
50
+ const m = d.choices?.[0]?.message;
51
+ if (!m)
52
+ return null;
53
+ const parts = [];
54
+ for (const v of [m.reasoning_content, m.reasoning])
55
+ if (typeof v === "string" && v.trim())
56
+ parts.push(v);
57
+ for (const r of m.reasoning_details ?? [])
58
+ for (const v of [r?.text, r?.summary])
59
+ if (typeof v === "string" && v.trim())
60
+ parts.push(v);
61
+ return parts.length > 0 ? parts.join(" ").toLowerCase() : null;
62
+ }
46
63
  function meta(data) {
47
64
  const d = rec(data) ?? {};
48
65
  const u = d.usage;
@@ -74,7 +91,7 @@ export const openaiVendor = defineVendor({
74
91
  envelope: "openai",
75
92
  fallbackWires: [],
76
93
  ops: { chat },
77
- read: { text, meta, reasoningUsage },
94
+ read: { text, meta, reasoningUsage, reasoningText },
78
95
  defaultMaker: "openai",
79
96
  });
80
97
  //# sourceMappingURL=openai.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/vendors/openai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/vendors/openai.ts"],"names":[],"mappings":"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"}
@@ -24,6 +24,7 @@ export declare const VENDORS: readonly [{
24
24
  readonly meta: (data: unknown) => import("./types").ProbeMeta;
25
25
  readonly thinkingBlock: (data: unknown) => import("./types").ThinkingBlockRead | null;
26
26
  readonly countedTokens: (data: unknown) => number | null;
27
+ readonly reasoningText: (data: unknown) => string | null;
27
28
  };
28
29
  readonly defaultMaker: "anthropic";
29
30
  }, {
@@ -61,6 +62,7 @@ export declare const VENDORS: readonly [{
61
62
  readonly text: (data: unknown) => string | null;
62
63
  readonly meta: (data: unknown) => import("./types").ProbeMeta;
63
64
  readonly reasoningUsage: (data: unknown) => import("./types").ReasoningUsage | null;
65
+ readonly reasoningText: (data: unknown) => string | null;
64
66
  };
65
67
  readonly defaultMaker: "openai";
66
68
  }, {
@@ -93,6 +95,7 @@ export declare const VENDORS: readonly [{
93
95
  readonly text: (data: unknown) => string | null;
94
96
  readonly meta: (data: unknown) => import("./types").ProbeMeta;
95
97
  readonly reasoningUsage: (data: unknown) => import("./types").ReasoningUsage | null;
98
+ readonly reasoningText: (data: unknown) => string | null;
96
99
  };
97
100
  readonly defaultMaker: "google";
98
101
  }];
@@ -1 +1 @@
1
- {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/vendors/table.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIyB,CAAC;AAE9C,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAMtD,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EACxC,OAAO,EAAE,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,EACpC,EAAE,EAAE,MAAM,GACT,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAE9B"}
1
+ {"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../src/vendors/table.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAIyB,CAAC;AAE9C,MAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC;AAMtD,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EACxC,OAAO,EAAE,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,EACpC,EAAE,EAAE,MAAM,GACT,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,CAE9B"}
@@ -76,6 +76,9 @@ export type VendorAdapter<Id extends string = string> = {
76
76
  meta(data: unknown): ProbeMeta;
77
77
  thinkingBlock?(data: unknown): ThinkingBlockRead | null;
78
78
  reasoningUsage?(data: unknown): ReasoningUsage | null;
79
+ /** Lowercased visible reasoning (reasoning_content, thinking blocks,
80
+ * thought parts); null when the reply carries none. */
81
+ reasoningText?(data: unknown): string | null;
79
82
  countedTokens?(data: unknown): number | null;
80
83
  };
81
84
  /** Maker whose vocabulary judges a model the facts table does not know. */
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/vendors/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/vendors/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/vendors/types.ts"],"names":[],"mappings":"AAgGA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAgC,MAAS,EAAK,EAAE,CAC1E,MAAM,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/vendors/types.ts"],"names":[],"mappings":"AAmGA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAgC,MAAS,EAAK,EAAE,CAC1E,MAAM,CAAC"}
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" | "foreign" | "mux" | "quorum" | "scam" | "served-model-mismatch" | "signature" | "substituted" | "survey" | "think-leak" | "thinking-floor" | "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" | "foreign" | "masked-identity" | "mux" | "quorum" | "scam" | "served-model-mismatch" | "signature" | "substituted" | "survey" | "think-leak" | "thinking-floor" | "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">>;
28
28
  export declare const runRules: (opts: VerifyOptions & {
29
29
  only: readonly RuleId[];
30
- }) => Promise<RuleRun<"answer-fingerprint" | "cjk-leak" | "coding-tool" | "envelope" | "foreign" | "mux" | "quorum" | "scam" | "served-model-mismatch" | "signature" | "substituted" | "survey" | "think-leak" | "thinking-floor" | "throughput" | "tier-self-report" | "token-truth" | "tokenizer-fingerprint" | "wrapper-leak">>;
30
+ }) => Promise<RuleRun<"answer-fingerprint" | "cjk-leak" | "coding-tool" | "envelope" | "foreign" | "masked-identity" | "mux" | "quorum" | "scam" | "served-model-mismatch" | "signature" | "substituted" | "survey" | "think-leak" | "thinking-floor" | "throughput" | "tier-self-report" | "token-truth" | "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
@@ -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;AA4JF,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,82BACN,CAAC;AAErC,eAAO,MAAM,QAAQ,SAAU,aAAa,GAAG;IAAE,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,iUACpC,CAAC;AAEvC,sGAAsG;AACtG,OAAO,EAAE,QAAQ,EAAE,CAAC"}
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;AA4JF,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,k4BACN,CAAC;AAErC,eAAO,MAAM,QAAQ,SAAU,aAAa,GAAG;IAAE,IAAI,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE,qVACpC,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.5.0",
3
+ "version": "3.6.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",