feat: track fable mythos access safely

This commit is contained in:
artale 2026-07-01 11:21:15 +02:00
parent 7054758d0d
commit 451267d8bc
3 changed files with 16 additions and 1 deletions

View File

@ -33,6 +33,19 @@ describe("model access receipt", () => {
expect(receipt.reasons).toContain("ChatGPT Cyber access not verified"); expect(receipt.reasons).toContain("ChatGPT Cyber access not verified");
}); });
it("tracks Fable and Mythos redeploy announcements without claiming access", () => {
const receipt = createModelAccessReceipt({
probes: [
{ surface: "anthropic-fable", command: "Anthropic redeploying Fable 5 announcement", status: "unknown", model: "claude-fable-5", evidence: "announced globally July 1; local access not probed" },
{ surface: "anthropic-mythos", command: "Anthropic redeploying Fable 5 announcement", status: "unknown", model: "claude-mythos-5", evidence: "restored only for some US orgs; local access not probed" },
],
});
expect(receipt.decision).toBe("blocked");
expect(receipt.claims).toEqual([]);
expect(receipt.reasons).toContain("one or more model surfaces are unknown");
});
it("tracks Fugu Ultra without claiming access", () => { it("tracks Fugu Ultra without claiming access", () => {
const receipt = createModelAccessReceipt({ const receipt = createModelAccessReceipt({
probes: [{ surface: "sakana-fugu", command: "sakana/fugu-ultra access probe", status: "unknown", model: "fugu-ultra", evidence: "not probed; do not buy or bypass with VPN" }], probes: [{ surface: "sakana-fugu", command: "sakana/fugu-ultra access probe", status: "unknown", model: "fugu-ultra", evidence: "not probed; do not buy or bypass with VPN" }],

View File

@ -1,7 +1,7 @@
import * as fs from "node:fs"; import * as fs from "node:fs";
import * as path from "node:path"; import * as path from "node:path";
export type ModelAccessSurface = "pi" | "openrouter" | "openai" | "chatgpt-cyber" | "sakana-fugu" | "hermes-moa" | "other"; export type ModelAccessSurface = "pi" | "openrouter" | "openai" | "chatgpt-cyber" | "anthropic-fable" | "anthropic-mythos" | "sakana-fugu" | "hermes-moa" | "other";
export type ModelAccessStatus = "available" | "blocked" | "missing" | "unknown"; export type ModelAccessStatus = "available" | "blocked" | "missing" | "unknown";
export interface ModelAccessProbe { export interface ModelAccessProbe {

View File

@ -1968,6 +1968,8 @@ fable
{ surface: "openai" as const, command: "env OPENAI_API_KEY", status: process.env.OPENAI_API_KEY ? "unknown" as const : "missing" as const, evidence: process.env.OPENAI_API_KEY ? "key present; API not probed" : "OPENAI_API_KEY missing" }, { surface: "openai" as const, command: "env OPENAI_API_KEY", status: process.env.OPENAI_API_KEY ? "unknown" as const : "missing" as const, evidence: process.env.OPENAI_API_KEY ? "key present; API not probed" : "OPENAI_API_KEY missing" },
{ surface: "pi" as const, command: "pi --list-models cyber", status: "unknown" as const, evidence: "not probed by this fail-closed receipt command" }, { surface: "pi" as const, command: "pi --list-models cyber", status: "unknown" as const, evidence: "not probed by this fail-closed receipt command" },
{ surface: "chatgpt-cyber" as const, command: "https://chatgpt.com/cyber", status: "unknown" as const, evidence: "browser/login-gated surface not probed by this command" }, { surface: "chatgpt-cyber" as const, command: "https://chatgpt.com/cyber", status: "unknown" as const, evidence: "browser/login-gated surface not probed by this command" },
{ surface: "anthropic-fable" as const, command: "Anthropic redeploying Fable 5 announcement", status: "unknown" as const, model: "claude-fable-5", evidence: "announced globally July 1; local access not probed" },
{ surface: "anthropic-mythos" as const, command: "Anthropic redeploying Fable 5 announcement", status: "unknown" as const, model: "claude-mythos-5", evidence: "restored only for some US orgs; local access not probed" },
{ surface: "sakana-fugu" as const, command: "sakana/fugu-ultra access probe", status: "unknown" as const, model: "fugu-ultra", evidence: "not probed; do not buy or bypass with VPN" }, { surface: "sakana-fugu" as const, command: "sakana/fugu-ultra access probe", status: "unknown" as const, model: "fugu-ultra", evidence: "not probed; do not buy or bypass with VPN" },
{ surface: "hermes-moa" as const, command: "hermes model --provider moa", status: "unknown" as const, model: "moa", evidence: "Hermes MoA preset required; not probed" }, { surface: "hermes-moa" as const, command: "hermes model --provider moa", status: "unknown" as const, model: "moa", evidence: "Hermes MoA preset required; not probed" },
]; ];