АРЧ АП11 - Архитектура после регресса: Архитектура: протянуть continuity snapshot в route arbitration и убрать non-domain drift при выборе организации
This commit is contained in:
@@ -364,4 +364,46 @@ describe("assistantRoutePolicy", () => {
|
||||
expect(decision.toolGateReason).toBe("address_signal_detected");
|
||||
expect(decision.livingMode).toBe("address_data");
|
||||
});
|
||||
|
||||
it("does not mark organization selection after grounded continuity as non-domain noise", () => {
|
||||
const policy = buildPolicy({
|
||||
findLastGroundedAddressAnswerDebug: () => null,
|
||||
findLastOrganizationClarificationAddressDebug: () => ({
|
||||
organization_candidates: ["Org A", "Org B"]
|
||||
}),
|
||||
resolveOrganizationSelectionFromMessage: (userMessage: unknown, knownOrganizations: unknown) => {
|
||||
const normalized = String(userMessage ?? "").trim().toLowerCase();
|
||||
const candidates = Array.isArray(knownOrganizations) ? knownOrganizations.map((item) => String(item)) : [];
|
||||
return candidates.find((candidate) => candidate.toLowerCase() === normalized) ?? null;
|
||||
}
|
||||
});
|
||||
|
||||
const decision = policy.resolveAssistantOrchestrationDecision({
|
||||
rawUserMessage: "Org A",
|
||||
effectiveAddressUserMessage: "Org A",
|
||||
followupContext: null,
|
||||
llmPreDecomposeMeta: null,
|
||||
sessionItems: [
|
||||
{
|
||||
role: "assistant",
|
||||
debug: {
|
||||
execution_lane: "address_query",
|
||||
answer_grounding_check: { status: "grounded" },
|
||||
extracted_filters: {
|
||||
organization: "Org A",
|
||||
as_of_date: "2021-03-31"
|
||||
},
|
||||
detected_intent: "receivables_confirmed_as_of_date"
|
||||
}
|
||||
}
|
||||
],
|
||||
useMock: false
|
||||
});
|
||||
|
||||
expect(decision.runAddressLane).toBe(false);
|
||||
expect(decision.toolGateReason).toBe("no_address_signal_after_l0");
|
||||
expect(decision.livingMode).toBe("chat");
|
||||
expect(decision.orchestrationContract?.hard_meta_mode).toBeNull();
|
||||
expect(decision.orchestrationContract?.followup_context_detected).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user