diff --git a/src/fable5/fableflow-manifest.test.ts b/src/fable5/fableflow-manifest.test.ts index 29b50ef..d82359d 100644 --- a/src/fable5/fableflow-manifest.test.ts +++ b/src/fable5/fableflow-manifest.test.ts @@ -24,7 +24,6 @@ describe("fableflow manifest", () => { "zte-gate", "factory-reconcile", "model-access", - "fugu-ultra", "fable-moa", "rsi-canary", ])); @@ -50,13 +49,20 @@ describe("fableflow manifest", () => { expect(edges).toContain("governance-contract>agent-chain-workers"); expect(edges).toContain("agent-chain-workers>zte-gate"); expect(edges).toContain("factory-reconcile>git-proxy-8099"); - expect(edges).toContain("model-access>fugu-ultra"); expect(edges).toContain("model-access>fable-moa"); - expect(edges).toContain("fugu-ultra>agent-chain-workers"); expect(edges).toContain("fable-moa>agent-chain-workers"); expect(edges).toContain("deploy-webhook-8098>git-proxy-8099"); }); + it("does not expose provider-specific moa nodes", () => { + const manifest = createFableFlowManifest(); + const ids = manifest.nodes.map((node) => node.id); + + expect(ids).not.toContain("fugu-ultra"); + expect(ids).not.toContain("hermes-moa"); + expect(ids).toContain("fable-moa"); + }); + it("writes JSON manifest", () => { const dir = fs.mkdtempSync(path.join(os.tmpdir(), "fableflow-")); const file = path.join(dir, "manifest.json"); diff --git a/src/fable5/fableflow-manifest.ts b/src/fable5/fableflow-manifest.ts index 34ef003..8b0a82a 100644 --- a/src/fable5/fableflow-manifest.ts +++ b/src/fable5/fableflow-manifest.ts @@ -68,9 +68,8 @@ export function createFableFlowManifest(): FableFlowManifest { node("zte-gate", "ZTE Gate", "receipt", "verify", "gate", "plan/gate", "Verifier gate before deploy decisions", "src/fable5/zte-protocol.ts", ".fable/zte-receipts.jsonl", "ZT", 720, 360), node("factory-reconcile", "Factory Reconcile", "receipt", "verify", "factory", "live receipt", "Live reconciliation overrides memory", "src/fable5/factory-reconciliation.ts", ".fable/factory/reconciliation-live.json", "RC", 960, 360), node("model-access", "Model Access", "receipt", "verify", "models", "access check", "Model access claims require fresh receipt", "src/fable5/model-access-receipt.ts", "fable.model_access.receipt.v1", "MA", 0, 540), - node("fugu-ultra", "Fugu Ultra", "model", "verify", "models", "orchestration model", "Sakana Fugu Ultra candidate; unknown until model-access receipt verifies official access", "sakana/fugu-ultra access probe", "fable.model_access.receipt.v1", "FU", 240, 540), - node("fable-moa", "Fable MoA", "model", "verify", "models", "mixture worker slot", "Fable MoA worker slot; provider access must be verified by model-access receipts", "hermes-moa / sakana-fugu provider receipts", "fable.model_access.receipt.v1", "MO", 480, 540), - node("rsi-canary", "RSI Canary", "receipt", "verify", "rsi", "canary only", "Canary repair proven; broad autopatch remains unproven without fresh receipt", "fable rsi receipts", ".fable/rsi/canary-live-*.json", "RS", 720, 540), + node("fable-moa", "Fable MoA", "model", "verify", "models", "mixture worker slot", "Fable MoA worker slot; provider access must be verified by model-access receipts", "hermes-moa / sakana-fugu provider receipts", "fable.model_access.receipt.v1", "MO", 240, 540), + node("rsi-canary", "RSI Canary", "receipt", "verify", "rsi", "canary only", "Canary repair proven; broad autopatch remains unproven without fresh receipt", "fable rsi receipts", ".fable/rsi/canary-live-*.json", "RS", 480, 540), ], edges: [ edge("feedbackpilot-intake", "forgejo-intake", "intake", "opens issue"), @@ -83,9 +82,7 @@ export function createFableFlowManifest(): FableFlowManifest { edge("factory-reconcile", "git-proxy-8099", "deploy", "canonical gated path"), edge("deploy-webhook-8098", "git-proxy-8099", "legacy", "superseded by"), edge("forgejo-writeback", "forgejo", "intake", "comments/labels"), - edge("model-access", "fugu-ultra", "verify", "tracks access"), edge("model-access", "fable-moa", "verify", "tracks provider access"), - edge("fugu-ultra", "agent-chain-workers", "verify", "candidate worker after verified access"), edge("fable-moa", "agent-chain-workers", "verify", "candidate worker after verified provider"), edge("model-access", "agent-chain-workers", "verify", "provider evidence"), edge("rsi-canary", "zte-gate", "verify", "canary proof only"),