Planner Autonomy: добавить reason-коды catalog-alignment

This commit is contained in:
2026-05-01 15:28:29 +03:00
parent 67f5e908c9
commit 755e2521e8
6 changed files with 59 additions and 3 deletions
@@ -61,6 +61,8 @@ describe("assistant MCP discovery planner", () => {
expect(result.reason_codes).toContain("planner_selected_catalog_primitives_from_decomposition_candidates");
expect(result.reason_codes).toContain("planner_scored_catalog_chain_templates_from_fact_axis");
expect(result.reason_codes).toContain("planner_catalog_chain_template_search_top_value_flow");
expect(result.reason_codes).toContain("planner_catalog_chain_template_alignment_evaluated");
expect(result.reason_codes).toContain("planner_selected_chain_matches_catalog_top");
});
it("keeps representative graph-selected chains aligned with top catalog template matches", () => {
@@ -201,6 +203,7 @@ describe("assistant MCP discovery planner", () => {
expect(result.catalog_chain_template_alignment.top_chain_template_match, item.name).toBe(item.expected);
expect(result.catalog_chain_template_alignment.selected_chain_template_rank, item.name).toBe(1);
expect(result.catalog_chain_template_alignment.selected_chain_matches_top, item.name).toBe(true);
expect(result.reason_codes, item.name).toContain("planner_selected_chain_matches_catalog_top");
}
});
@@ -217,6 +220,7 @@ describe("assistant MCP discovery planner", () => {
expect(result.catalog_review.review_status).toBe("needs_more_axes");
expect(result.catalog_review.missing_axes_by_primitive.query_movements).toContainEqual(["period", "counterparty"]);
expect(result.reason_codes).toContain("planner_needs_more_user_or_scope_context");
expect(result.reason_codes).toContain("planner_catalog_chain_template_alignment_unscored");
});
it("keeps requested monthly aggregation as an explicit planning axis for value-flow discovery", () => {
@@ -149,6 +149,7 @@ describe("assistant MCP discovery runtime bridge", () => {
expect(result.loop_state.provided_axes).toContain("aggregate_axis");
expect(result.loop_state.catalog_chain_template_matches[0]).toBe("value_flow_ranking");
expect(result.loop_state.catalog_chain_template_alignment.selected_chain_matches_top).toBe(true);
expect(result.reason_codes).toContain("planner_selected_chain_matches_catalog_top");
expect(result.reason_codes).toContain("runtime_bridge_loop_state_awaiting_clarification");
});