ГЛОБАЛЬНЫЙ РЕФАКТОРИНГ АРХИТЕКТУРЫ - Архитектура маршрутов v2: baseline ожиданий intentrecipe/result_mode с runtime-аудитом

This commit is contained in:
2026-04-12 14:54:52 +03:00
parent bd1fbbdb67
commit 278eb4abeb
14 changed files with 624 additions and 6 deletions
@@ -2503,6 +2503,8 @@ describe("address query limited taxonomy and stage diagnostics", { timeout: 1500
expect(result?.debug.result_mode).toBe("confirmed_balance");
expect(result?.debug.as_of_date_basis).toBe("explicit_as_of_date");
expect(result?.debug.selected_recipe).toBe("address_payables_confirmed_as_of_date_v1");
expect(result?.debug.route_expectation_status).toBe("matched");
expect(result?.debug.route_expectation_reason).toBe("route_expectation_matched");
expect(Array.isArray(result?.debug.reasons)).toBe(true);
expect(result?.debug.reasons).not.toContain("confirmed_balance_unavailable_fallback_to_heuristic_candidates");
expect(["FACTUAL_LIST", "FACTUAL_SUMMARY", "LIMITED_WITH_REASON"]).toContain(result?.response_type);
@@ -0,0 +1,37 @@
import { describe, expect, it } from "vitest";
import {
evaluateAddressRouteExpectation,
loadAddressRouteExpectationsContract
} from "../src/services/addressRouteExpectations";
describe("address route expectations contract", () => {
it("loads expectations contract with entries", () => {
const contract = loadAddressRouteExpectationsContract();
expect(contract.schema_version).toBe("address_route_expectations_v1");
expect(Array.isArray(contract.entries)).toBe(true);
expect(contract.entries.length).toBeGreaterThan(0);
});
it("matches expected recipe and result mode for exact payables route", () => {
const audit = evaluateAddressRouteExpectation({
intent: "payables_confirmed_as_of_date",
selectedRecipe: "address_payables_confirmed_as_of_date_v1",
requestedResultMode: "confirmed_balance",
resultMode: "confirmed_balance"
});
expect(audit.status).toBe("matched");
expect(audit.reason).toBe("route_expectation_matched");
});
it("detects selected recipe mismatch", () => {
const audit = evaluateAddressRouteExpectation({
intent: "payables_confirmed_as_of_date",
selectedRecipe: "address_movements_payables_v1",
requestedResultMode: "confirmed_balance",
resultMode: "confirmed_balance"
});
expect(audit.status).toBe("mismatch");
expect(audit.reason).toBe("selected_recipe_mismatch");
expect(audit.expected_selected_recipes).toContain("address_payables_confirmed_as_of_date_v1");
});
});