@mochi.js/consistency
Advanced tools
+1
-1
| { | ||
| "name": "@mochi.js/consistency", | ||
| "version": "0.1.3", | ||
| "version": "0.1.4", | ||
| "description": "The Matrix engine — relational fingerprint locking for mochi. Imported by @mochi.js/core.", | ||
@@ -5,0 +5,0 @@ "license": "MIT", |
+1
-1
@@ -11,3 +11,3 @@ # @mochi.js/consistency | ||
| **Status:** shipping in v0.2. The 40-rule DAG covers UA / UA-CH, navigator, plugins, screen, timing, fonts, MediaDevices, Permissions, WebGL, WebGPU, audio fingerprint (R-047), and canvas fingerprint (R-048 — both fed by precomputed per-profile blobs). | ||
| **Status:** shipping in v0.2. The 48-rule DAG covers UA / UA-CH, navigator, plugins, screen, timing, fonts, MediaDevices, Permissions, WebGL, WebGPU, audio fingerprint (R-047), and canvas fingerprint (R-048 — both fed by precomputed per-profile blobs). | ||
@@ -14,0 +14,0 @@ See [PLAN.md §9](https://github.com/0xchasercat/mochi/blob/main/PLAN.md) for the full ruleset. |
@@ -288,3 +288,3 @@ /** | ||
| // ---- task 0261 rules (R-042..R-046) — UA-CH metadata struct ------------ | ||
| // ---- R-042..R-046 — UA-CH metadata struct ------------ | ||
@@ -328,3 +328,3 @@ it("R-042: sec-ch-ua-arch is quoted arm on apple-silicon, x86 on win-x64", () => { | ||
| // ---- task 0267 rules (R-047 / R-048) — audio + canvas fingerprint ------ | ||
| // ---- R-047 / R-048 — audio + canvas fingerprint ------ | ||
@@ -331,0 +331,0 @@ it("R-047: audio-fingerprint slot carries sampleRate + audioHash + 10-sample window", () => { |
| // AUTO-GENERATED — do not edit. Run `bun run codegen` to regenerate. | ||
| // Source schema lives in schemas/. See scripts/codegen.ts and tasks/0003-schemas-and-codegen.md. | ||
| // Source schema lives in schemas/. See scripts/codegen.ts. | ||
| /** | ||
| * A ProfileV1 instantiated for a specific seed. Same shape as ProfileV1 (every property re-declared via $ref to profile.schema.json), with three additional required fields: seed, derivedAt, consistencyEngineVersion. Consumed by @mochi.js/inject. JSON-serializable; round-trips losslessly. See PLAN.md §6.2. | ||
| * A ProfileV1 instantiated for a specific seed. Same shape as ProfileV1 (every property re-declared via $ref to profile.schema.json), with three additional required fields: seed, derivedAt, consistencyEngineVersion. Consumed by @mochi.js/inject. JSON-serializable; round-trips losslessly. NOTE: `wreqPreset` is DEPRECATED in 0.7 (runtime no longer reads it; `Session.fetch` routes through Chromium directly) and removed in 0.8. See PLAN.md §6.2. | ||
| */ | ||
@@ -159,3 +159,4 @@ export type MatrixV1 = ProfileV1 & { | ||
| /** | ||
| * Preset name accepted by the wreq Rust crate, e.g. 'chrome_131_macos'. Maps profile -> TLS/H2 fingerprint. | ||
| * @deprecated | ||
| * DEPRECATED in 0.7 — removed entirely in 0.8. The runtime no longer reads this field; `Session.fetch` routes through Chromium's network stack via CDP, so JA4 is real Chrome by definition. Kept in the schema for one release for migration. Historical: preset name accepted by the wreq Rust crate (e.g. 'chrome_131_macos'). | ||
| */ | ||
@@ -162,0 +163,0 @@ wreqPreset: string; |
| // AUTO-GENERATED — do not edit. Run `bun run codegen` to regenerate. | ||
| // Source schema lives in schemas/. See scripts/codegen.ts and tasks/0003-schemas-and-codegen.md. | ||
| // Source schema lives in schemas/. See scripts/codegen.ts. | ||
@@ -141,3 +141,4 @@ /** | ||
| /** | ||
| * Preset name accepted by the wreq Rust crate, e.g. 'chrome_131_macos'. Maps profile -> TLS/H2 fingerprint. | ||
| * @deprecated | ||
| * DEPRECATED in 0.7 — removed entirely in 0.8. The runtime no longer reads this field; `Session.fetch` routes through Chromium's network stack via CDP, so JA4 is real Chrome by definition. Kept in the schema for one release for migration. Historical: preset name accepted by the wreq Rust crate (e.g. 'chrome_131_macos'). | ||
| */ | ||
@@ -144,0 +145,0 @@ wreqPreset: string; |
+1
-1
@@ -35,3 +35,3 @@ /** | ||
| // Canonical types are generated from schemas/*.schema.json by `bun run codegen`. | ||
| // @mochi.js/consistency *owns* both ProfileV1 and MatrixV1 — see AGENTS.md §5. | ||
| // @mochi.js/consistency *owns* both ProfileV1 and MatrixV1 — see PLAN.md §5.6. | ||
| export type { ProfileV1 } from "./generated/profile"; | ||
@@ -38,0 +38,0 @@ // Public PRNG surface — promoted from internal at v0.2.1 so downstream packages |
@@ -22,3 +22,2 @@ /** | ||
| * @see PLAN.md §9.3 (audio), §9.4 (canvas) | ||
| * @see tasks/0267-audio-canvas-fingerprint-blobs.md | ||
| */ | ||
@@ -25,0 +24,0 @@ |
@@ -12,3 +12,2 @@ /** | ||
| * @see PLAN.md §9.2, §13.6 | ||
| * @see tasks/0070-consistency-rules-full.md | ||
| */ | ||
@@ -15,0 +14,0 @@ |
@@ -37,3 +37,3 @@ /** | ||
| * - USER_AGENT_RULES R-004..R-007, R-023, R-026, R-031, | ||
| * R-042..R-046 (UA-CH metadata struct; task 0261 — | ||
| * R-042..R-046 (UA-CH metadata struct; | ||
| * sec-ch-ua-arch / -bitness / -mobile / -model and | ||
@@ -49,5 +49,5 @@ * single-string ua-full-version derived from R-031) | ||
| * - MOUSE_EVENT_RULES R-041 (MouseEvent.screenX/screenY relational lock — | ||
| * PLAN.md I-5 / CDP-dispatch leak; task 0250) | ||
| * PLAN.md I-5 / CDP-dispatch leak) | ||
| * - AUDIO_CANVAS_RULES R-047 + R-048 (audio + canvas fingerprint blobs; | ||
| * PLAN.md §9.3 / §9.4; task 0267) | ||
| * PLAN.md §9.3 / §9.4) | ||
| */ | ||
@@ -54,0 +54,0 @@ export const RULES: readonly Rule[] = [ |
@@ -32,3 +32,2 @@ /** | ||
| * @see PLAN.md §9.3 / §9.4 | ||
| * @see tasks/0267-audio-canvas-fingerprint-blobs.md | ||
| */ | ||
@@ -35,0 +34,0 @@ |
@@ -164,2 +164,3 @@ /** | ||
| chrome: { | ||
| "148": "148.0.7778.97", | ||
| "147": "147.0.7727.138", | ||
@@ -178,2 +179,3 @@ "146": "146.0.7390.122", | ||
| edge: { | ||
| "148": "148.0.7778.97", | ||
| "147": "147.0.3477.94", | ||
@@ -184,2 +186,3 @@ "133": "133.0.3065.92", | ||
| brave: { | ||
| "148": "148.0.7778.97", | ||
| "147": "147.0.7727.138", | ||
@@ -189,2 +192,3 @@ "131": "131.0.6778.110", | ||
| arc: { | ||
| "148": "148.0.7778.97", | ||
| "131": "131.0.6778.110", | ||
@@ -191,0 +195,0 @@ }, |
@@ -9,3 +9,3 @@ /** | ||
| * | ||
| * @see PLAN.md §9.5 / tasks/0020 R-001..R-003, R-024, R-025 | ||
| * @see PLAN.md §9.5 (R-001..R-003, R-024, R-025) | ||
| */ | ||
@@ -12,0 +12,0 @@ |
@@ -15,3 +15,3 @@ /** | ||
| * | ||
| * @see PLAN.md §9.5 / tasks/0070-consistency-rules-full.md (media-devices) | ||
| * @see PLAN.md §9.5 (media-devices) | ||
| */ | ||
@@ -18,0 +18,0 @@ |
@@ -12,3 +12,2 @@ /** | ||
| * | ||
| * @see tasks/0070-consistency-rules-full.md (permissions) | ||
| */ | ||
@@ -15,0 +14,0 @@ |
@@ -26,3 +26,2 @@ /** | ||
| * | ||
| * @see tasks/0070-consistency-rules-full.md (screen-orientation) | ||
| */ | ||
@@ -29,0 +28,0 @@ |
@@ -14,3 +14,2 @@ /** | ||
| * @see PLAN.md §9.5 (WebGPU adapter info — phase 0.7) | ||
| * @see tasks/0070-consistency-rules-full.md (webgpu) | ||
| */ | ||
@@ -17,0 +16,0 @@ |
@@ -18,3 +18,2 @@ /** | ||
| * | ||
| * @see tasks/0250-mouseevent-screen-coords.md | ||
| * @see PLAN.md §5.2, §9.2 (R-041) | ||
@@ -21,0 +20,0 @@ */ |
@@ -33,3 +33,3 @@ /** | ||
| * Pro/Max parts (e.g. M4 Max ships 14 cores; the table emitted 10 and | ||
| * clobbered the profile). See tasks/0051-consistency-stack-fixes.md | ||
| * clobbered the profile). See PLAN.md | ||
| * (Group A). | ||
@@ -36,0 +36,0 @@ */ |
@@ -8,3 +8,3 @@ /** | ||
| * | ||
| * R-042..R-046 (task 0261) close the UA-CH cross-layer gap exposed by 0255: | ||
| * R-042..R-046 close the UA-CH cross-layer gap exposed by 0255: | ||
| * `Network.setUserAgentOverride` accepts a structured `userAgentMetadata` | ||
@@ -18,3 +18,2 @@ * shape from which Chromium derives every `Sec-CH-UA*` request header. Core | ||
| * @see PLAN.md §9.2 | ||
| * @see tasks/0261-uach-network-metadata.md | ||
| */ | ||
@@ -159,3 +158,2 @@ | ||
| * @see PLAN.md §9.2 / §13.6 | ||
| * @see tasks/0070-consistency-rules-full.md (full-version-list) | ||
| */ | ||
@@ -162,0 +160,0 @@ export const R031: Rule = defineRule<readonly [BrowserName, string], string>({ |
@@ -10,3 +10,2 @@ /** | ||
| * @see PLAN.md §9.5 (WebGPU adapter info) | ||
| * @see tasks/0070-consistency-rules-full.md | ||
| */ | ||
@@ -13,0 +12,0 @@ |
158798
-0.03%4098
-0.05%