diff --git a/package-lock.json b/package-lock.json index ef54bd8e..78882785 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "@xterm/addon-fit": "^0.11.0", "@xterm/addon-web-links": "^0.12.0", "@xterm/xterm": "^6.0.0", - "ai-ration": "github:maonakamoto/ai-ration#v0.2.0", + "ai-ration": "github:maonakamoto/ai-ration#v0.2.1", "bip-kit": "^0.1.0", "bs58check": "^4.0.0", "class-variance-authority": "^0.7.1", @@ -6006,9 +6006,8 @@ } }, "node_modules/ai-ration": { - "version": "0.2.0", - "resolved": "git+ssh://git@github.com/maonakamoto/ai-ration.git#14a41b0c3418d53a8163d4837b7df964cc26f6d3", - "integrity": "sha512-rLgkxX952XU6EjTWj8RCd04uTy3zuDYUx0H/fT8r11HuisDJfPVXWfAqh5zjdnf8MqQIqd3UqggAiRbktuRW3g==", + "version": "0.2.1", + "resolved": "git+ssh://git@github.com/maonakamoto/ai-ration.git#07c492ce27785d66d9623acf7b30874fb908da13", "license": "MIT", "engines": { "node": ">=18" diff --git a/package.json b/package.json index dbc6c3a6..72945913 100644 --- a/package.json +++ b/package.json @@ -111,7 +111,7 @@ "@xterm/addon-fit": "^0.11.0", "@xterm/addon-web-links": "^0.12.0", "@xterm/xterm": "^6.0.0", - "ai-ration": "github:maonakamoto/ai-ration#v0.2.0", + "ai-ration": "github:maonakamoto/ai-ration#v0.2.1", "bip-kit": "^0.1.0", "bs58check": "^4.0.0", "class-variance-authority": "^0.7.1", diff --git a/scripts/test/agent-name-lookup.ts b/scripts/test/agent-name-lookup.ts index b93a46ef..f8a881ce 100644 --- a/scripts/test/agent-name-lookup.ts +++ b/scripts/test/agent-name-lookup.ts @@ -107,9 +107,19 @@ function candidates(message: string): string[] { // moment the chain moved into `ai-ration` — the property held perfectly and // the test failed anyway, because it was reading a source file rather than // the thing the source file produces. + // …and asserted as a SET rather than one id. The previous anchor was + // `llama-3.1-8b-instant` alone, which the vendor retired on 2026-08-18 — + // so the guard failed not because the property broke but because its single + // example rotted. Anchoring a rot-detector to one pinned id reproduces the + // exact failure it is watching for. Any probed model satisfies it. + // + // Membership here means: called with a real tool definition and observed to + // emit a parseable tool call. gpt-oss-120b / gpt-oss-20b probed 2026-08-25 + // (native tool_call, correct arguments). Do not add a model you have not run. + const LOOP_VERIFIED = ["openai/gpt-oss-120b", "openai/gpt-oss-20b"]; const models = CHAT_CHAIN.flatMap((p) => p.models); assert.ok( - models.includes("llama-3.1-8b-instant"), + models.some((m) => LOOP_VERIFIED.includes(m)), `the chain must keep a model verified to drive the loop, got: ${models.join(", ")}`, ); }