АРЧ АП11 - Оркестрация: дожать агентный прогон по selected-object continuity и сохранить accepted
This commit is contained in:
@@ -4120,6 +4120,27 @@ describe("address decompose stage follow-up carryover", () => {
|
||||
).toBe(true);
|
||||
});
|
||||
|
||||
it("promotes selected-item purchase-date wording 'а по этой позиции когда была закупка' into inventory provenance", () => {
|
||||
const result = runAddressDecomposeStage("а по этой позиции когда была закупка?", {
|
||||
previous_intent: "inventory_purchase_provenance_for_item",
|
||||
previous_filters: {
|
||||
as_of_date: "2021-03-31",
|
||||
period_from: "2021-03-01",
|
||||
period_to: "2021-03-31",
|
||||
item: "Столешница 600*3050*26 альмандин"
|
||||
},
|
||||
previous_anchor_type: "unknown",
|
||||
previous_anchor_value: null
|
||||
});
|
||||
expect(result).not.toBeNull();
|
||||
expect(result?.intent.intent).toBe("inventory_purchase_provenance_for_item");
|
||||
expect(result?.filters.extracted_filters.item).toBe("Столешница 600*3050*26 альмандин");
|
||||
expect(
|
||||
result?.baseReasons?.includes("intent_adjusted_to_inventory_followup_context") ||
|
||||
result?.intent.reasons.includes("inventory_purchase_date_signal_detected")
|
||||
).toBe(true);
|
||||
});
|
||||
|
||||
it("promotes conversational buyer follow-up into inventory sale trace with inherited date context", () => {
|
||||
const result = runAddressDecomposeStage("кому в итоге мы продали этот товар?", {
|
||||
previous_intent: "inventory_purchase_provenance_for_item",
|
||||
@@ -5141,6 +5162,11 @@ it("routes old purchase residue questions to aging-by-purchase-date", () => {
|
||||
expect(result.intent).toBe("inventory_purchase_provenance_for_item");
|
||||
});
|
||||
|
||||
it("keeps selected-object purchase-date pronoun wording out of generic counterparty docs intent", () => {
|
||||
const result = resolveAddressIntent("а по этой позиции когда была закупка?");
|
||||
expect(result.intent).toBe("inventory_purchase_provenance_for_item");
|
||||
});
|
||||
|
||||
it("keeps direct item supplier questions in provenance intent even with current-stock tail", () => {
|
||||
const result = resolveAddressIntent(
|
||||
"От какого поставщика куплен товар Диван трехместный из текущего остатка на складе Основной склад?"
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
import { describe, expect, it } from "vitest";
|
||||
|
||||
import {
|
||||
buildConfirmedBalanceSemantics,
|
||||
buildFactualListReply,
|
||||
buildFactualSummaryReply,
|
||||
buildHeuristicCandidatesSemantics
|
||||
} from "../src/services/address_runtime/replyContracts";
|
||||
|
||||
describe("replyContracts", () => {
|
||||
it("builds factual replies from line arrays", () => {
|
||||
const result = buildFactualListReply(["Первая строка", "Вторая строка"], buildConfirmedBalanceSemantics("strong"));
|
||||
|
||||
expect(result).toEqual({
|
||||
responseType: "FACTUAL_LIST",
|
||||
text: "Первая строка\nВторая строка",
|
||||
semantics: {
|
||||
result_mode: "confirmed_balance",
|
||||
evidence_strength: "strong",
|
||||
balance_confirmed: true
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
it("supports downgraded confirmed-balance semantics", () => {
|
||||
expect(buildFactualSummaryReply("Нет подтвержденных строк", buildConfirmedBalanceSemantics("medium", false)).semantics).toEqual({
|
||||
result_mode: "confirmed_balance",
|
||||
evidence_strength: "medium",
|
||||
balance_confirmed: false
|
||||
});
|
||||
});
|
||||
|
||||
it("builds heuristic candidate semantics from candidate presence", () => {
|
||||
expect(buildHeuristicCandidatesSemantics(true)).toEqual({
|
||||
result_mode: "heuristic_candidates",
|
||||
evidence_strength: "medium",
|
||||
balance_confirmed: false
|
||||
});
|
||||
expect(buildHeuristicCandidatesSemantics(false)).toEqual({
|
||||
result_mode: "heuristic_candidates",
|
||||
evidence_strength: "weak",
|
||||
balance_confirmed: false
|
||||
});
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user