Уточнить оси доказательств Autonomy Core 1С

This commit is contained in:
2026-05-23 18:14:47 +03:00
parent f7314b0212
commit 4d1b25cca7
3 changed files with 92 additions and 6 deletions
@@ -95,6 +95,68 @@ describe("assistant MCP discovery planner", () => {
expect(result.reason_codes).toContain("planner_selected_chain_matches_catalog_top");
});
it("treats an explicit date as a provided as-of-date evidence axis", () => {
const result = planAssistantMcpDiscovery({
dataNeedGraph: {
schema_version: "assistant_data_need_graph_v1",
policy_owner: "assistantMcpDiscoveryDataNeedGraph",
subject_candidates: [],
business_fact_family: "inventory_stock_snapshot",
action_family: "stock_snapshot",
aggregation_need: null,
time_scope_need: "as_of_date_required",
comparison_need: null,
ranking_need: null,
proof_expectation: "coverage_checked_fact",
clarification_gaps: [],
decomposition_candidates: [],
forbidden_overclaim_flags: ["no_raw_model_claims"],
reason_codes: ["data_need_graph_built"]
},
turnMeaning: {
asked_action_family: "stock_snapshot",
explicit_organization_scope: "Org",
explicit_date_scope: "2020-05-31"
}
});
expect(result.selected_chain_id).toBe("inventory_stock_snapshot");
expect(result.evidence_plan.evidence_axes.required_axes).toContain("as_of_date");
expect(result.evidence_plan.evidence_axes.provided_axes).toContain("period");
expect(result.evidence_plan.evidence_axes.provided_axes).toContain("as_of_date");
expect(result.evidence_plan.evidence_axes.missing_axes).not.toContain("as_of_date");
});
it("treats graph all-time scope as a provided evidence axis", () => {
const result = planAssistantMcpDiscovery({
dataNeedGraph: {
schema_version: "assistant_data_need_graph_v1",
policy_owner: "assistantMcpDiscoveryDataNeedGraph",
subject_candidates: ["SVK"],
business_fact_family: "value_flow",
action_family: "net_value_flow",
aggregation_need: null,
time_scope_need: "all_time_scope",
comparison_need: "incoming_vs_outgoing",
ranking_need: null,
proof_expectation: "coverage_checked_fact",
clarification_gaps: [],
decomposition_candidates: [],
forbidden_overclaim_flags: ["no_raw_model_claims"],
reason_codes: ["data_need_graph_built"]
},
turnMeaning: {
asked_action_family: "net_value_flow",
explicit_entity_candidates: ["SVK"]
}
});
expect(result.selected_chain_id).toBe("value_flow_comparison");
expect(result.evidence_plan.evidence_axes.required_axes).toContain("all_time_scope");
expect(result.evidence_plan.evidence_axes.provided_axes).toContain("all_time_scope");
expect(result.evidence_plan.evidence_axes.missing_axes).not.toContain("all_time_scope");
});
it("keeps representative graph-selected chains aligned with top catalog template matches", () => {
const graph = (
businessFactFamily: string,