From 5f0c4f5ead73248c0670a30b0c33aebdf6ea03a9 Mon Sep 17 00:00:00 2001 From: dctouch Date: Tue, 12 May 2026 16:03:18 +0300 Subject: [PATCH] =?UTF-8?q?=D0=A1=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D1=82=D1=8C=20route-candidate=20AGENT=20loop=20=D0=B8=20=D0=B2?= =?UTF-8?q?=D0=B0=D0=BB=D0=B8=D0=B4=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=BD=D1=8B=D0=B5=20=D0=B0=D0=B2=D1=82=D0=BE=D0=BF=D1=80=D0=BE?= =?UTF-8?q?=D0=B3=D0=BE=D0=BD=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...90_route_candidate_handoff_open_world.json | 190 + ...oute_candidate_driven_enablement_loop.json | 190 + ...92_proof_family_enablement_candidates.json | 227 + ...counting_profit_margin_reviewed_route.json | 221 + ...94_debt_due_date_aging_reviewed_route.json | 254 + .../data/autorun_generators/history.json | 1550 +- ..._20260417080808_gen-ag04170808-1907fa.json | 83 - ..._20260417083044_gen-ag04170830-5f771d.json | 93 - ..._20260417085550_gen-ag04170855-d13dd3.json | 83 - ..._20260417091127_gen-ag04170911-ff51e1.json | 93 - ..._20260417093144_gen-ag04170931-6bb7e5.json | 173 - ..._20260417094132_gen-ag04170941-87680e.json | 173 - ..._20260417132600_gen-ag04171326-15a132.json | 199 - ..._20260417150806_gen-ag04171508-760111.json | 129 - ...n_20260419164457_gen-mo5zy5vo-z9klj34.json | 5165 ------- ...n_20260422125154_gen-moa1y0lw-m30gdsz.json | 12296 ---------------- ..._20260423133622_gen-ag04231336-3d4cc9.json | 125 - ..._20260423133622_gen-ag04231336-4fa660.json | 123 - ..._20260423133622_gen-ag04231336-db78b3.json | 129 - ..._20260423184425_gen-ag04231844-8e552a.json | 281 - ..._20260510094921_gen-ag05100949-2a5ed8.json | 153 + ..._20260510121326_gen-ag05101213-596d99.json | 157 + ..._20260510131922_gen-ag05101319-c04f79.json | 173 + ..._20260417080808_gen-ag04170808-1907fa.json | 40 - ..._20260417083044_gen-ag04170830-5f771d.json | 43 - ..._20260417085550_gen-ag04170855-d13dd3.json | 40 - ..._20260417091127_gen-ag04170911-ff51e1.json | 43 - ..._20260417093144_gen-ag04170931-6bb7e5.json | 67 - ..._20260417094132_gen-ag04170941-87680e.json | 67 - ..._20260417132600_gen-ag04171326-15a132.json | 64 - ..._20260417150806_gen-ag04171508-760111.json | 48 - ...s_20260419164457_gen-mo5zy5vo-z9klj34.json | 51 - ...s_20260422125154_gen-moa1y0lw-m30gdsz.json | 45 - ..._20260423133622_gen-ag04231336-3d4cc9.json | 46 - ..._20260423133622_gen-ag04231336-4fa660.json | 43 - ..._20260423133622_gen-ag04231336-db78b3.json | 46 - ..._20260423184425_gen-ag04231844-8e552a.json | 82 - ..._20260510094921_gen-ag05100949-2a5ed8.json | 40 + ..._20260510121326_gen-ag05101213-596d99.json | 43 + ..._20260510131922_gen-ag05101319-c04f79.json | 46 + scripts/agent_semantic_pack_builder.py | 26 +- scripts/domain_case_loop.py | 252 +- scripts/domain_truth_harness.py | 76 + scripts/review_assistant_stage1_run.py | 97 +- scripts/scenario_acceptance_policy.py | 28 + scripts/stage_agent_loop.py | 1 + scripts/test_agent_semantic_pack_builder.py | 19 + scripts/test_domain_case_loop_step_state.py | 141 + scripts/test_review_assistant_stage1_run.py | 38 + scripts/test_scenario_acceptance_policy.py | 55 + 50 files changed, 2960 insertions(+), 20887 deletions(-) create mode 100644 docs/orchestration/address_truth_harness_phase90_route_candidate_handoff_open_world.json create mode 100644 docs/orchestration/address_truth_harness_phase91_route_candidate_driven_enablement_loop.json create mode 100644 docs/orchestration/address_truth_harness_phase92_proof_family_enablement_candidates.json create mode 100644 docs/orchestration/address_truth_harness_phase93_accounting_profit_margin_reviewed_route.json create mode 100644 docs/orchestration/address_truth_harness_phase94_debt_due_date_aging_reviewed_route.json delete mode 100644 llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417080808_gen-ag04170808-1907fa.json delete mode 100644 llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417083044_gen-ag04170830-5f771d.json delete mode 100644 llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417085550_gen-ag04170855-d13dd3.json delete mode 100644 llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417091127_gen-ag04170911-ff51e1.json delete mode 100644 llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417093144_gen-ag04170931-6bb7e5.json delete mode 100644 llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417094132_gen-ag04170941-87680e.json delete mode 100644 llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417132600_gen-ag04171326-15a132.json delete mode 100644 llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417150806_gen-ag04171508-760111.json delete mode 100644 llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260419164457_gen-mo5zy5vo-z9klj34.json delete mode 100644 llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260422125154_gen-moa1y0lw-m30gdsz.json delete mode 100644 llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260423133622_gen-ag04231336-3d4cc9.json delete mode 100644 llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260423133622_gen-ag04231336-4fa660.json delete mode 100644 llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260423133622_gen-ag04231336-db78b3.json delete mode 100644 llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260423184425_gen-ag04231844-8e552a.json create mode 100644 llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260510094921_gen-ag05100949-2a5ed8.json create mode 100644 llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260510121326_gen-ag05101213-596d99.json create mode 100644 llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260510131922_gen-ag05101319-c04f79.json delete mode 100644 llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417080808_gen-ag04170808-1907fa.json delete mode 100644 llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417083044_gen-ag04170830-5f771d.json delete mode 100644 llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417085550_gen-ag04170855-d13dd3.json delete mode 100644 llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417091127_gen-ag04170911-ff51e1.json delete mode 100644 llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417093144_gen-ag04170931-6bb7e5.json delete mode 100644 llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417094132_gen-ag04170941-87680e.json delete mode 100644 llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417132600_gen-ag04171326-15a132.json delete mode 100644 llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417150806_gen-ag04171508-760111.json delete mode 100644 llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260419164457_gen-mo5zy5vo-z9klj34.json delete mode 100644 llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260422125154_gen-moa1y0lw-m30gdsz.json delete mode 100644 llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260423133622_gen-ag04231336-3d4cc9.json delete mode 100644 llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260423133622_gen-ag04231336-4fa660.json delete mode 100644 llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260423133622_gen-ag04231336-db78b3.json delete mode 100644 llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260423184425_gen-ag04231844-8e552a.json create mode 100644 llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260510094921_gen-ag05100949-2a5ed8.json create mode 100644 llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260510121326_gen-ag05101213-596d99.json create mode 100644 llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260510131922_gen-ag05101319-c04f79.json diff --git a/docs/orchestration/address_truth_harness_phase90_route_candidate_handoff_open_world.json b/docs/orchestration/address_truth_harness_phase90_route_candidate_handoff_open_world.json new file mode 100644 index 0000000..cc08a3c --- /dev/null +++ b/docs/orchestration/address_truth_harness_phase90_route_candidate_handoff_open_world.json @@ -0,0 +1,190 @@ +{ + "schema_version": "domain_truth_harness_spec_v1", + "scenario_id": "address_truth_harness_phase90_route_candidate_handoff_open_world", + "domain": "address_phase90_route_candidate_handoff", + "title": "Phase 90 open-world route candidate handoff replay", + "description": "Focused semantic replay for Open-World Route Candidate Promotion. The scenario checks that unfamiliar-but-meaningful 1C asks produce a structured internal route candidate, distinguish missing user scope from executable reviewed routes, preserve catalog alignment, and keep unreviewed proof families honest without leaking route/debug mechanics to the user.", + "bindings": {}, + "steps": [ + { + "step_id": "step_01_open_ranking_needs_organization", + "title": "Open ranked money-flow ask needs organization scope before execution", + "question": "какой контрагент принес больше всего денег за 2020 год?", + "allowed_reply_types": [ + "clarification_required", + "partial_coverage" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "value_flow_ranking", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "needs_user_scope", + "expected_route_candidate_executable_now": false, + "expected_route_candidate_missing_axes": [ + "organization" + ], + "required_answer_patterns_any": [ + "(?i)организац|компан|контур" + ], + "forbidden_answer_patterns": [ + "(?i)runtime_", + "(?i)route_candidate", + "(?i)query_movements", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "route_candidate_handoff", + "needs_user_scope", + "value_flow_ranking", + "open_organization_scope" + ] + }, + { + "step_id": "step_02_company_scope_promotes_ranking_execution", + "title": "Natural company clarification promotes the ranking candidate to reviewed execution", + "question": "ООО Альтернатива Плюс", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "value_flow_ranking", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "ready_for_reviewed_execution", + "expected_route_candidate_executable_now": true, + "required_answer_patterns_all": [ + "(?i)2020", + "(?i)контрагент|клиент|покупател", + "(?i)деньг|поступ|выруч|руб", + "(?i)подтвержд|проверен|найден" + ], + "forbidden_answer_patterns": [ + "(?i)runtime_", + "(?i)route_candidate", + "(?i)query_movements", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_", + "(?i)прибыль.*точно" + ], + "criticality": "critical", + "semantic_tags": [ + "route_candidate_handoff", + "ready_for_reviewed_execution", + "value_flow_ranking", + "clarification_recovery" + ] + }, + { + "step_id": "step_03_counterparty_lifecycle_not_polluted_by_company_scope", + "title": "Counterparty lifecycle pivot has its own executable route candidate", + "question": "а теперь сколько лет мы работаем с Группа СВК?", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "lifecycle", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "ready_for_reviewed_execution", + "expected_route_candidate_executable_now": true, + "required_answer_patterns_all": [ + "(?i)СВК|Группа СВК", + "(?i)активност|1С|подтвержд|проверен", + "(?i)лет|год|месяц", + "(?i)юридическ|регистрац|не подтвержд|не доказ" + ], + "forbidden_answer_patterns": [ + "(?i)Альтернатива Плюс.*контрагент", + "(?i)runtime_", + "(?i)route_candidate", + "(?i)query_documents", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "route_candidate_handoff", + "counterparty_lifecycle", + "stale_scope_guard" + ] + }, + { + "step_id": "step_04_vat_movements_are_metadata_scoped_not_stale_counterparty", + "title": "VAT movement ask uses metadata-scoped movement candidate instead of stale counterparty focus", + "question": "покажи движения по НДС за 2020 по ООО Альтернатива Плюс", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage", + "checked_sources_only" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "movement_evidence", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "ready_for_reviewed_execution", + "expected_route_candidate_executable_now": true, + "required_answer_patterns_all": [ + "(?i)НДС", + "(?i)2020", + "(?i)Альтернатива Плюс|организац", + "(?i)движен|строк|проверен|подтвержд|источник" + ], + "forbidden_answer_patterns": [ + "(?i)Группа СВК.*как контрагент", + "(?i)runtime_", + "(?i)route_candidate", + "(?i)query_movements", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "route_candidate_handoff", + "movement_evidence", + "metadata_scope", + "vat", + "stale_scope_guard" + ] + }, + { + "step_id": "step_05_inventory_reserve_boundary_stays_honest", + "title": "Unreviewed inventory reserve proof family remains bounded and does not overclaim", + "question": "можно ли по этим данным точно подтвердить резерв под неликвиды на складе?", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage", + "no_grounded_answer", + "out_of_scope" + ], + "required_answer_patterns_all": [ + "(?i)резерв|неликвид|склад|товар", + "(?i)не подтвержд|не доказ|нельзя точно|нет точн", + "(?i)провер|нужн|треб" + ], + "forbidden_answer_patterns": [ + "(?i)точно подтверждаю", + "(?i)резерв.*подтвержден", + "(?i)runtime_", + "(?i)route_candidate", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "route_candidate_handoff", + "no_overclaim", + "inventory_reserve_boundary", + "unreviewed_proof_family" + ] + } + ] +} diff --git a/docs/orchestration/address_truth_harness_phase91_route_candidate_driven_enablement_loop.json b/docs/orchestration/address_truth_harness_phase91_route_candidate_driven_enablement_loop.json new file mode 100644 index 0000000..885d9b1 --- /dev/null +++ b/docs/orchestration/address_truth_harness_phase91_route_candidate_driven_enablement_loop.json @@ -0,0 +1,190 @@ +{ + "schema_version": "domain_truth_harness_spec_v1", + "scenario_id": "address_truth_harness_phase91_route_candidate_driven_enablement_loop", + "domain": "address_phase91_route_candidate_driven_enablement_loop", + "title": "Phase 91 route-candidate-driven enablement loop canary", + "description": "Focused semantic replay for the route-candidate-driven enablement loop. The scenario keeps the phase90 user-facing route-candidate handoff behavior as a canary while the development tooling starts grouping route candidates into repair targets and lead-coder handoff artifacts.", + "bindings": {}, + "steps": [ + { + "step_id": "step_01_open_ranking_needs_organization", + "title": "Open ranked money-flow ask needs organization scope before execution", + "question": "какой контрагент принес больше всего денег за 2020 год?", + "allowed_reply_types": [ + "clarification_required", + "partial_coverage" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "value_flow_ranking", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "needs_user_scope", + "expected_route_candidate_executable_now": false, + "expected_route_candidate_missing_axes": [ + "organization" + ], + "required_answer_patterns_any": [ + "(?i)организац|компан|контур" + ], + "forbidden_answer_patterns": [ + "(?i)runtime_", + "(?i)route_candidate", + "(?i)query_movements", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "route_candidate_handoff", + "needs_user_scope", + "value_flow_ranking", + "open_organization_scope" + ] + }, + { + "step_id": "step_02_company_scope_promotes_ranking_execution", + "title": "Natural company clarification promotes the ranking candidate to reviewed execution", + "question": "ООО Альтернатива Плюс", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "value_flow_ranking", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "ready_for_reviewed_execution", + "expected_route_candidate_executable_now": true, + "required_answer_patterns_all": [ + "(?i)2020", + "(?i)контрагент|клиент|покупател", + "(?i)деньг|поступ|выруч|руб", + "(?i)подтвержд|проверен|найден" + ], + "forbidden_answer_patterns": [ + "(?i)runtime_", + "(?i)route_candidate", + "(?i)query_movements", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_", + "(?i)прибыль.*точно" + ], + "criticality": "critical", + "semantic_tags": [ + "route_candidate_handoff", + "ready_for_reviewed_execution", + "value_flow_ranking", + "clarification_recovery" + ] + }, + { + "step_id": "step_03_counterparty_lifecycle_stale_scope_reset", + "title": "Counterparty lifecycle pivot does not inherit the previous company scope", + "question": "а теперь сколько лет мы работаем с Группа СВК?", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "lifecycle", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "ready_for_reviewed_execution", + "expected_route_candidate_executable_now": true, + "required_answer_patterns_all": [ + "(?i)СВК|Группа СВК", + "(?i)активност|1С|подтвержд|проверен", + "(?i)лет|год|месяц", + "(?i)юридическ|регистрац|не подтвержд|не доказ" + ], + "forbidden_answer_patterns": [ + "(?i)Альтернатива Плюс.*контрагент", + "(?i)runtime_", + "(?i)route_candidate", + "(?i)query_documents", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "route_candidate_handoff", + "counterparty_lifecycle", + "stale_scope_guard" + ] + }, + { + "step_id": "step_04_vat_movement_candidate_keeps_company_scope", + "title": "VAT movement ask keeps metadata scope and company scope together", + "question": "покажи движения по НДС за 2020 по ООО Альтернатива Плюс", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage", + "checked_sources_only" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "movement_evidence", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "ready_for_reviewed_execution", + "expected_route_candidate_executable_now": true, + "required_answer_patterns_all": [ + "(?i)НДС", + "(?i)2020", + "(?i)Альтернатива Плюс|организац", + "(?i)движен|строк|проверен|подтвержд|источник" + ], + "forbidden_answer_patterns": [ + "(?i)Группа СВК.*как контрагент", + "(?i)runtime_", + "(?i)route_candidate", + "(?i)query_movements", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "route_candidate_handoff", + "movement_evidence", + "metadata_scope", + "vat", + "stale_scope_guard" + ] + }, + { + "step_id": "step_05_inventory_reserve_boundary_no_overclaim", + "title": "Reserve proof request stays bounded instead of pretending enablement is proof", + "question": "можно ли по этим данным точно подтвердить резерв под неликвиды на складе?", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage", + "no_grounded_answer", + "out_of_scope" + ], + "required_answer_patterns_all": [ + "(?i)резерв|неликвид|склад|товар", + "(?i)не подтвержд|не доказ|нельзя точно|нет точн", + "(?i)провер|нужн|треб" + ], + "forbidden_answer_patterns": [ + "(?i)точно подтверждаю", + "(?i)резерв.*подтвержден", + "(?i)runtime_", + "(?i)route_candidate", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "route_candidate_handoff", + "no_overclaim", + "inventory_reserve_boundary", + "unreviewed_proof_family" + ] + } + ] +} diff --git a/docs/orchestration/address_truth_harness_phase92_proof_family_enablement_candidates.json b/docs/orchestration/address_truth_harness_phase92_proof_family_enablement_candidates.json new file mode 100644 index 0000000..b759382 --- /dev/null +++ b/docs/orchestration/address_truth_harness_phase92_proof_family_enablement_candidates.json @@ -0,0 +1,227 @@ +{ + "schema_version": "domain_truth_harness_spec_v1", + "scenario_id": "address_truth_harness_phase92_proof_family_enablement_candidates", + "domain": "address_phase92_proof_family_enablement_candidates", + "title": "Phase 92 proof-family enablement candidates", + "description": "Focused semantic replay for route-candidate autonomy: exact proof-family asks must stay user-safe while route_candidate marks missing reviewed proof routes as needs_route_enablement.", + "bindings": {}, + "steps": [ + { + "step_id": "step_01_open_ranking_still_needs_company", + "title": "Open ranked money-flow ask still needs organization scope", + "question": "какой контрагент принес больше всего денег за 2020 год?", + "allowed_reply_types": [ + "clarification_required", + "partial_coverage" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "value_flow_ranking", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "needs_user_scope", + "expected_route_candidate_executable_now": false, + "expected_route_candidate_missing_axes": [ + "organization" + ], + "required_answer_patterns_any": [ + "(?i)организац|компан|контур" + ], + "forbidden_answer_patterns": [ + "(?i)runtime_", + "(?i)route_candidate", + "(?i)query_movements", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "route_candidate_handoff", + "needs_user_scope", + "value_flow_ranking" + ] + }, + { + "step_id": "step_02_company_clarification_keeps_reviewed_execution", + "title": "Company clarification keeps the reviewed value-flow route executable", + "question": "ООО Альтернатива Плюс", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "value_flow_ranking", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "ready_for_reviewed_execution", + "expected_route_candidate_executable_now": true, + "required_answer_patterns_all": [ + "(?i)2020", + "(?i)контрагент|клиент|покупател", + "(?i)деньг|поступ|выруч|руб", + "(?i)подтвержд|проверен|найден" + ], + "forbidden_answer_patterns": [ + "(?i)runtime_", + "(?i)route_candidate", + "(?i)query_movements", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "route_candidate_handoff", + "ready_for_reviewed_execution", + "value_flow_ranking" + ] + }, + { + "step_id": "step_03_profit_margin_needs_reviewed_pnl_route", + "title": "Exact profit/margin ask becomes a proof-family enablement candidate", + "question": "по ООО Альтернатива Плюс за 2020 можно точно сказать чистую прибыль и маржу?", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage", + "no_grounded_answer" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "business_overview", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "needs_route_enablement", + "expected_route_candidate_executable_now": false, + "required_answer_patterns_all": [ + "(?i)прибыл|марж|рентаб", + "(?i)не прибыль|не точн|нельзя точно|не подтвержд|не доказ", + "(?i)финансов|p&l|расход|себестоим|закрыт" + ], + "forbidden_answer_patterns": [ + "(?i)точно подтверждаю", + "(?i)чистая прибыль.*подтвержден", + "(?i)runtime_", + "(?i)route_candidate", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "business_overview", + "profit_margin_boundary", + "missing_proof_families", + "needs_route_enablement" + ] + }, + { + "step_id": "step_04_debt_due_date_needs_payment_terms_route", + "title": "Exact overdue/debt-aging ask becomes a proof-family enablement candidate", + "question": "по ООО Альтернатива Плюс на конец 2020 можно точно понять, какая дебиторка просрочена?", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage", + "no_grounded_answer" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "business_overview", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "needs_route_enablement", + "expected_route_candidate_executable_now": false, + "required_answer_patterns_all": [ + "(?i)дебитор|долг|просроч|срок", + "(?i)не due-date|не точн|нельзя точно|не подтвержд|не доказ|нет срок", + "(?i)договор|срок оплат|расчет|провер" + ], + "forbidden_answer_patterns": [ + "(?i)точно подтверждаю", + "(?i)просроч.*подтвержден", + "(?i)runtime_", + "(?i)route_candidate", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "business_overview", + "debt_due_date_boundary", + "missing_proof_families", + "needs_route_enablement" + ] + }, + { + "step_id": "step_05_vendor_risk_needs_procurement_quality_route", + "title": "Exact vendor-risk ask becomes a proof-family enablement candidate", + "question": "по ООО Альтернатива Плюс за 2020 есть ли риск, что мы зависим от одного поставщика?", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage", + "no_grounded_answer" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "business_overview", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "needs_route_enablement", + "expected_route_candidate_executable_now": false, + "required_answer_patterns_all": [ + "(?i)поставщик|закуп|исходящ", + "(?i)риск|зависим|концентрац", + "(?i)proxy|не полный|не точн|нельзя точно|не подтвержд|не доказ" + ], + "forbidden_answer_patterns": [ + "(?i)точно подтверждаю", + "(?i)vendor.*risk.*подтвержден", + "(?i)runtime_", + "(?i)route_candidate", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "business_overview", + "vendor_risk_procurement_boundary", + "missing_proof_families", + "needs_route_enablement" + ] + }, + { + "step_id": "step_06_inventory_reserve_needs_quality_route", + "title": "Exact reserve/liquidation ask becomes a proof-family enablement candidate", + "question": "можно ли по ООО Альтернатива Плюс точно подтвердить резерв под неликвиды на складе?", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage", + "no_grounded_answer" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "business_overview", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "needs_route_enablement", + "expected_route_candidate_executable_now": false, + "required_answer_patterns_all": [ + "(?i)резерв|неликвид|склад|товар", + "(?i)не подтвержд|не доказ|нельзя точно|нет точн", + "(?i)списан|ликвидац|учетн|провер" + ], + "forbidden_answer_patterns": [ + "(?i)точно подтверждаю", + "(?i)резерв.*подтвержден", + "(?i)runtime_", + "(?i)route_candidate", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "business_overview", + "inventory_reserve_boundary", + "missing_proof_families", + "needs_route_enablement" + ] + } + ] +} diff --git a/docs/orchestration/address_truth_harness_phase93_accounting_profit_margin_reviewed_route.json b/docs/orchestration/address_truth_harness_phase93_accounting_profit_margin_reviewed_route.json new file mode 100644 index 0000000..e5d1b75 --- /dev/null +++ b/docs/orchestration/address_truth_harness_phase93_accounting_profit_margin_reviewed_route.json @@ -0,0 +1,221 @@ +{ + "schema_version": "domain_truth_harness_spec_v1", + "scenario_id": "address_truth_harness_phase93_accounting_profit_margin_reviewed_route", + "domain": "address_phase93_accounting_profit_margin_reviewed_route", + "title": "Phase 93 accounting profit-margin reviewed route", + "description": "Focused semantic replay for promoting accounting_profit_margin from needs_route_enablement to a reviewed 90/91/99 accounting financial-result route while preserving neighbouring proof-family boundaries.", + "bindings": {}, + "steps": [ + { + "step_id": "step_01_profit_margin_uses_accounting_result", + "title": "Exact profit and margin ask uses reviewed 90/91/99 evidence", + "question": "по ООО Альтернатива Плюс за 2020 можно точно сказать чистую прибыль и маржу?", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "business_overview", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "ready_for_reviewed_execution", + "expected_route_candidate_executable_now": true, + "required_answer_patterns_all": [ + "(?i)90/91/99|90\\.01|99", + "(?i)учетн|финрезульт|прибыл|убыт", + "(?i)марж|рентаб", + "(?i)2020", + "(?i)1С|проверенн|найденн|подтвержд" + ], + "required_answer_patterns_any": [ + "7[\\s\\u00a0]*136[\\s\\u00a0]*815", + "(?i)минус|убыт" + ], + "forbidden_answer_patterns": [ + "(?i)только bounded operating-flow/trading-margin proxy", + "(?i)route_candidate", + "(?i)query_movements", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "business_overview", + "profit_margin_boundary", + "accounting_profit_margin", + "ready_for_reviewed_execution" + ] + }, + { + "step_id": "step_02_short_followup_keeps_accounting_context", + "title": "Short follow-up keeps company, year, and accounting result context", + "question": "а это прибыль или убыток, коротко?", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "business_overview", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "ready_for_reviewed_execution", + "expected_route_candidate_executable_now": true, + "required_answer_patterns_all": [ + "(?i)убыт|минус", + "(?i)2020", + "(?i)90/91/99|90\\.01|99|учетн" + ], + "forbidden_answer_patterns": [ + "(?i)уточните организац", + "(?i)какую компанию", + "(?i)route_candidate", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "business_overview", + "context_carryover", + "profit_margin_boundary", + "accounting_profit_margin" + ] + }, + { + "step_id": "step_03_debt_due_date_boundary_still_needs_route", + "title": "Debt due-date boundary stays an enablement candidate", + "question": "по этой же компании на конец 2020 можно точно понять, какая дебиторка просрочена?", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage", + "no_grounded_answer" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "business_overview", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "needs_route_enablement", + "expected_route_candidate_executable_now": false, + "required_answer_patterns_all": [ + "(?i)дебитор|долг|просроч|срок", + "(?i)не due-date|не точн|нельзя точно|не подтвержд|не доказ|нет срок", + "(?i)договор|срок оплат|расчет|провер" + ], + "forbidden_answer_patterns": [ + "(?i)точно подтверждаю", + "(?i)просроч.*подтвержден", + "(?i)route_candidate", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "business_overview", + "debt_due_date_boundary", + "missing_proof_families", + "needs_route_enablement" + ] + }, + { + "step_id": "step_04_vat_continuity_still_answers", + "title": "VAT continuity still answers from the reviewed tax route", + "question": "тогда НДС за 2020 по ООО Альтернатива Плюс какой?", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage" + ], + "required_answer_patterns_all": [ + "(?i)НДС|VAT|налог", + "(?i)2020", + "(?i)продаж|покуп|к уплат|к возмещ|зачет", + "(?i)подтвержд|проверенн|1С" + ], + "forbidden_answer_patterns": [ + "(?i)route_candidate", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "business_overview", + "vat_continuity", + "ready_for_reviewed_execution" + ] + }, + { + "step_id": "step_05_value_flow_ranking_context_still_works", + "title": "Value-flow ranking still uses carried organization context", + "question": "а какой контрагент принес больше всего денег за 2020?", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "value_flow_ranking", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "ready_for_reviewed_execution", + "expected_route_candidate_executable_now": true, + "required_answer_patterns_all": [ + "(?i)2020", + "(?i)контрагент|клиент|покупател", + "(?i)деньг|поступ|выруч|руб", + "(?i)подтвержд|проверенн|найден" + ], + "forbidden_answer_patterns": [ + "(?i)уточните организац", + "(?i)какую компанию", + "(?i)route_candidate", + "(?i)query_movements", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "value_flow_ranking", + "context_carryover", + "ready_for_reviewed_execution" + ] + }, + { + "step_id": "step_06_inventory_reserve_boundary_still_needs_route", + "title": "Inventory reserve boundary remains honest and bounded", + "question": "по ООО Альтернатива Плюс на конец 2020 можно точно подтвердить резерв под неликвиды на складе?", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage", + "no_grounded_answer" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "business_overview", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "needs_route_enablement", + "expected_route_candidate_executable_now": false, + "required_answer_patterns_all": [ + "(?i)резерв|неликвид|склад|товар", + "(?i)не подтвержд|не доказ|нельзя точно|нет точн", + "(?i)списан|ликвидац|учетн|провер" + ], + "forbidden_answer_patterns": [ + "(?i)точно подтверждаю", + "(?i)route_candidate", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "business_overview", + "inventory_reserve_boundary", + "missing_proof_families", + "needs_route_enablement" + ] + } + ] +} diff --git a/docs/orchestration/address_truth_harness_phase94_debt_due_date_aging_reviewed_route.json b/docs/orchestration/address_truth_harness_phase94_debt_due_date_aging_reviewed_route.json new file mode 100644 index 0000000..0b447fa --- /dev/null +++ b/docs/orchestration/address_truth_harness_phase94_debt_due_date_aging_reviewed_route.json @@ -0,0 +1,254 @@ +{ + "schema_version": "domain_truth_harness_spec_v1", + "scenario_id": "address_truth_harness_phase94_debt_due_date_aging_reviewed_route", + "domain": "address_phase94_debt_due_date_aging_reviewed_route", + "title": "Phase 94 debt due-date aging reviewed route", + "description": "Focused semantic replay for promoting debt_due_date_aging_quality from proxy-only enablement to a reviewed payment-term/open-balance route while preserving profit, VAT, inventory, and vendor-risk boundaries.", + "bindings": {}, + "steps": [ + { + "step_id": "step_01_debt_due_date_checked_negative", + "title": "Debt due-date ask uses reviewed payment-term evidence", + "question": "по ООО Альтернатива Плюс на конец 2020 можно точно понять, какая дебиторка просрочена?", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "business_overview", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "ready_for_reviewed_execution", + "expected_route_candidate_executable_now": true, + "required_answer_patterns_all": [ + "(?i)дебитор|долг|открыт.*расчет|остат", + "(?i)2020|2020-12-31|конец 2020", + "(?i)срок.*оплат|due[- ]?date|просроч", + "(?i)не установлен|не подтвержд|не доказ|нет подтвержденной просроч", + "(?i)1С|проверенн|найденн|подтвержд" + ], + "forbidden_answer_patterns": [ + "(?i)точно подтверждаю.*просроч", + "(?i)просроч.*подтвержден.*без.*срок", + "(?i)route_candidate", + "(?i)query_movements", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "business_overview", + "debt_due_date_boundary", + "debt_due_date_aging_quality", + "ready_for_reviewed_execution", + "checked_negative" + ] + }, + { + "step_id": "step_02_short_followup_preserves_due_date_boundary", + "title": "Short follow-up keeps debt due-date context", + "question": "то есть просрочку доказать нельзя, коротко почему?", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "business_overview", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "ready_for_reviewed_execution", + "expected_route_candidate_executable_now": true, + "required_answer_patterns_all": [ + "(?i)срок.*оплат|due[- ]?date|договор", + "(?i)не установлен|не хватает|не подтвержд|не доказ", + "(?i)просроч", + "(?i)2020|2020-12-31|конец 2020" + ], + "forbidden_answer_patterns": [ + "(?i)уточните организац", + "(?i)какую компанию", + "(?i)route_candidate", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "business_overview", + "context_carryover", + "debt_due_date_boundary", + "checked_negative" + ] + }, + { + "step_id": "step_03_profit_margin_canary_still_reviewed", + "title": "Profit/margin canary still uses accounting result route", + "question": "а чистая прибыль и маржа за 2020 по этой же компании какие?", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "business_overview", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "ready_for_reviewed_execution", + "expected_route_candidate_executable_now": true, + "required_answer_patterns_all": [ + "(?i)90/91/99|90\\.01|99", + "(?i)учетн|финрезульт|прибыл|убыт", + "(?i)марж|рентаб", + "(?i)2020" + ], + "forbidden_answer_patterns": [ + "(?i)только bounded operating-flow/trading-margin proxy", + "(?i)route_candidate", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "business_overview", + "profit_margin_boundary", + "accounting_profit_margin", + "canary" + ] + }, + { + "step_id": "step_04_vat_canary_still_answers", + "title": "VAT continuity canary still answers from reviewed tax route", + "question": "НДС за 2020 по ООО Альтернатива Плюс какой?", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage" + ], + "required_answer_patterns_all": [ + "(?i)НДС|VAT|налог", + "(?i)2020", + "(?i)продаж|покуп|к уплат|к возмещ|зачет", + "(?i)подтвержд|проверенн|1С" + ], + "forbidden_answer_patterns": [ + "(?i)route_candidate", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "business_overview", + "vat_continuity", + "canary" + ] + }, + { + "step_id": "step_05_value_flow_ranking_context_still_works", + "title": "Value-flow ranking still uses carried organization context", + "question": "а кто принес больше всего денег за 2020?", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "value_flow_ranking", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "ready_for_reviewed_execution", + "expected_route_candidate_executable_now": true, + "required_answer_patterns_all": [ + "(?i)2020", + "(?i)контрагент|клиент|покупател", + "(?i)деньг|поступ|выруч|руб", + "(?i)подтвержд|проверенн|найден" + ], + "forbidden_answer_patterns": [ + "(?i)уточните организац", + "(?i)какую компанию", + "(?i)route_candidate", + "(?i)query_movements", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "value_flow_ranking", + "context_carryover", + "canary" + ] + }, + { + "step_id": "step_06_inventory_reserve_boundary_still_needs_route", + "title": "Inventory reserve boundary remains honest and bounded", + "question": "по ООО Альтернатива Плюс на конец 2020 можно точно подтвердить резерв под неликвиды на складе?", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage", + "no_grounded_answer" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "business_overview", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "needs_route_enablement", + "expected_route_candidate_executable_now": false, + "required_answer_patterns_all": [ + "(?i)резерв|неликвид|склад|товар", + "(?i)не подтвержд|не доказ|нельзя точно|нет точн", + "(?i)списан|ликвидац|учетн|провер" + ], + "forbidden_answer_patterns": [ + "(?i)точно подтверждаю", + "(?i)route_candidate", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "business_overview", + "inventory_reserve_boundary", + "missing_proof_families", + "canary" + ] + }, + { + "step_id": "step_07_vendor_risk_boundary_still_needs_route", + "title": "Vendor-risk boundary stays bounded", + "question": "а зависимость от одного поставщика за 2020 можно точно оценить?", + "allowed_reply_types": [ + "factual", + "factual_with_explanation", + "partial_coverage", + "no_grounded_answer" + ], + "expected_catalog_alignment_status": "selected_matches_top", + "expected_catalog_chain_top_match": "business_overview", + "expected_catalog_selected_matches_top": true, + "expected_route_candidate_status": "needs_route_enablement", + "expected_route_candidate_executable_now": false, + "required_answer_patterns_all": [ + "(?i)поставщик|vendor|supplier|закуп", + "(?i)не подтвержд|не доказ|нельзя точно|proxy|сигнал", + "(?i)концентрац|зависим" + ], + "forbidden_answer_patterns": [ + "(?i)точно подтверждаю", + "(?i)route_candidate", + "(?i)primitive", + "(?i)planner_", + "(?i)catalog_" + ], + "criticality": "critical", + "semantic_tags": [ + "business_overview", + "vendor_risk_procurement_boundary", + "missing_proof_families", + "canary" + ] + } + ] +} diff --git a/llm_normalizer/data/autorun_generators/history.json b/llm_normalizer/data/autorun_generators/history.json index 08717f6..62d956f 100644 --- a/llm_normalizer/data/autorun_generators/history.json +++ b/llm_normalizer/data/autorun_generators/history.json @@ -1,4 +1,157 @@ [ + { + "generation_id": "gen-ag05101319-c04f79", + "created_at": "2026-05-10T13:19:22+00:00", + "mode": "saved_user_sessions", + "title": "AGENT | Phase 94 debt due-date aging reviewed route", + "count": 7, + "domain": "address_phase94_debt_due_date_aging_reviewed_route", + "questions": [ + "по ООО Альтернатива Плюс на конец 2020 можно точно понять, какая дебиторка просрочена?", + "то есть просрочку доказать нельзя, коротко почему?", + "а чистая прибыль и маржа за 2020 по этой же компании какие?", + "НДС за 2020 по ООО Альтернатива Плюс какой?", + "а кто принес больше всего денег за 2020?", + "по ООО Альтернатива Плюс на конец 2020 можно точно подтвердить резерв под неликвиды на складе?", + "а зависимость от одного поставщика за 2020 можно точно оценить?" + ], + "generated_by": "codex_agent", + "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260510131922_gen-ag05101319-c04f79.json", + "context": { + "llm_provider": null, + "model": null, + "assistant_prompt_version": null, + "decomposition_prompt_version": null, + "prompt_fingerprint": null, + "autogen_personality_id": null, + "autogen_personality_prompt": null, + "source_session_id": null, + "saved_session_file": "assistant_saved_session_20260510131922_gen-ag05101319-c04f79.json", + "saved_case_set_kind": "agent_semantic_scenario", + "agent_run": true, + "agent_focus": "Focused semantic replay for promoting debt_due_date_aging_quality from proxy-only enablement to a reviewed payment-term/open-balance route while preserving profit, VAT, inventory, and vendor-risk boundaries.", + "architecture_phase": "turnaround_11", + "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase94_debt_due_date_aging_reviewed_route.json", + "scenario_id": "address_truth_harness_phase94_debt_due_date_aging_reviewed_route", + "semantic_tags": [ + "accounting_profit_margin", + "business_overview", + "canary", + "checked_negative", + "context_carryover", + "debt_due_date_aging_quality", + "debt_due_date_boundary", + "inventory_reserve_boundary", + "missing_proof_families", + "profit_margin_boundary", + "ready_for_reviewed_execution", + "value_flow_ranking", + "vat_continuity", + "vendor_risk_procurement_boundary" + ], + "latest_acceptance": null + } + }, + { + "generation_id": "gen-ag05101213-596d99", + "created_at": "2026-05-10T12:13:26+00:00", + "mode": "saved_user_sessions", + "title": "AGENT | Phase 93 accounting profit-margin reviewed route", + "count": 6, + "domain": "address_phase93_accounting_profit_margin_reviewed_route", + "questions": [ + "по ООО Альтернатива Плюс за 2020 можно точно сказать чистую прибыль и маржу?", + "а это прибыль или убыток, коротко?", + "по этой же компании на конец 2020 можно точно понять, какая дебиторка просрочена?", + "тогда НДС за 2020 по ООО Альтернатива Плюс какой?", + "а какой контрагент принес больше всего денег за 2020?", + "по ООО Альтернатива Плюс на конец 2020 можно точно подтвердить резерв под неликвиды на складе?" + ], + "generated_by": "codex_agent", + "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260510121326_gen-ag05101213-596d99.json", + "context": { + "llm_provider": null, + "model": null, + "assistant_prompt_version": null, + "decomposition_prompt_version": null, + "prompt_fingerprint": null, + "autogen_personality_id": null, + "autogen_personality_prompt": null, + "source_session_id": null, + "saved_session_file": "assistant_saved_session_20260510121326_gen-ag05101213-596d99.json", + "saved_case_set_kind": "agent_semantic_scenario", + "agent_run": true, + "agent_focus": "accounting profit-margin reviewed route", + "architecture_phase": "Route-Candidate-Driven Enablement Loop", + "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase93_accounting_profit_margin_reviewed_route.json", + "scenario_id": "address_truth_harness_phase93_accounting_profit_margin_reviewed_route", + "semantic_tags": [ + "accounting_profit_margin", + "business_overview", + "context_carryover", + "debt_due_date_boundary", + "inventory_reserve_boundary", + "missing_proof_families", + "needs_route_enablement", + "profit_margin_boundary", + "ready_for_reviewed_execution", + "value_flow_ranking", + "vat_continuity" + ], + "latest_acceptance": null + } + }, + { + "generation_id": "gen-ag05100949-2a5ed8", + "created_at": "2026-05-10T09:49:21+00:00", + "mode": "saved_user_sessions", + "title": "AGENT | Phase 91 route-candidate-driven enablement loop canary", + "count": 5, + "domain": "address_phase91_route_candidate_driven_enablement_loop", + "questions": [ + "какой контрагент принес больше всего денег за 2020 год?", + "ООО Альтернатива Плюс", + "а теперь сколько лет мы работаем с Группа СВК?", + "покажи движения по НДС за 2020 по ООО Альтернатива Плюс", + "можно ли по этим данным точно подтвердить резерв под неликвиды на складе?" + ], + "generated_by": "codex_agent", + "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260510094921_gen-ag05100949-2a5ed8.json", + "context": { + "llm_provider": null, + "model": null, + "assistant_prompt_version": null, + "decomposition_prompt_version": null, + "prompt_fingerprint": null, + "autogen_personality_id": null, + "autogen_personality_prompt": null, + "source_session_id": null, + "saved_session_file": "assistant_saved_session_20260510094921_gen-ag05100949-2a5ed8.json", + "saved_case_set_kind": "agent_semantic_scenario", + "agent_run": true, + "agent_focus": "route candidate repair-target grouping + handoff canary", + "architecture_phase": "Route-Candidate-Driven Enablement Loop", + "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase91_route_candidate_driven_enablement_loop.json", + "scenario_id": "address_truth_harness_phase91_route_candidate_driven_enablement_loop", + "semantic_tags": [ + "clarification_recovery", + "counterparty_lifecycle", + "inventory_reserve_boundary", + "metadata_scope", + "movement_evidence", + "needs_user_scope", + "no_overclaim", + "open_organization_scope", + "ready_for_reviewed_execution", + "route_candidate_handoff", + "stale_scope_guard", + "unreviewed_proof_family", + "value_flow_ranking", + "vat" + ], + "latest_acceptance": null + } + }, { "generation_id": "gen-ag05091830-062fc9", "created_at": "2026-05-09T18:30:50+00:00", @@ -49,80 +202,78 @@ "scope_guard", "vat" ], - "validation_status": "accepted_domain_pack_loop", - "validated_run_dir": "artifacts\\domain_runs\\stage_agent_loops\\agentic_semantic_development_loop\\domain_loops\\asl", - "saved_after_validated_replay": true + "latest_acceptance": null } }, { "generation_id": "gen-mq05051418-fat99", "created_at": "2026-05-05T14:18:16+03:00", "mode": "saved_user_sessions", - "title": "MANUAL QA | Open-World 99 жирный РїСЂРѕРіРѕРЅ: бизнес-РѕР±Р·РѕСЂ, pivots, legacy canaries", + "title": "MANUAL QA | Open-World 99 жирный прогон: бизнес-обзор, pivots, legacy canaries", "count": 61, "domain": "open_world_bounded_autonomy_breadth_manual_qa", "questions": [ - "привет, ты РЅР° СЃРІСЏР·Рё? перед большим РїСЂРѕРіРѕРЅРѕРј отвечай Р¶РёРІРѕ, РЅРѕ РЅРµ теряй потом бизнес-контекст", - "Дай взрослый бизнес-РѕР±Р·РѕСЂ РћРћРћ Альтернатива Плюс Р·Р° 2020 РіРѕРґ РїРѕ данным 1РЎ: обороты, входящие Рё исходящие деньги, нетто, НДС, дебиторка, кредиторка, склад, клиенты, поставщики, РґРѕРіРѕРІРѕСЂС‹, документы, что подтверждено Рё что РїРѕРєР° нельзя утверждать.", - "Раскрой деньги подробнее: сколько всего получили, сколько заплатили, какой чистый денежный поток, кто главный клиент Рё кто главный поставщик РІ 2020.", - "Рђ если смотреть Р·Р° РІСЃРµ доступное время, какой самый доходный РіРѕРґ РїРѕ подтвержденным оборотам Рё почему? Только РЅРµ называй это бухгалтерской прибылью, если ее нет.", - "РњРѕР¶РЅРѕ ли РїРѕ этим данным посчитать нормальную прибыль Рё маржу компании? Если нет, дай proxy-анализ Рё РѕР±СЉСЏСЃРЅРё, каких учетных доказательств РЅРµ хватает.", - "Кто крупнейшие клиенты Альтернативы Плюс Рё насколько бизнес зависит РѕС‚ РѕРґРЅРѕРіРѕ покупателя?", - "Рђ РїРѕ поставщикам: кто самый крупный получатель исходящих денег Рё есть ли СЂРёСЃРє зависимости РѕС‚ поставщика?", - "Что СЃ НДС Р·Р° 2020 РіРѕРґ РїРѕ Альтернативе Плюс: какая позиция РІРёРґРЅР°, РЅР° чем РѕРЅР° основана Рё чего РЅРµ хватает для налогового вывода?", - "Теперь Р·Р° РІСЃРµ доступное время дай РѕР±Р·РѕСЂ компании РІ целом, РЅРѕ РЅРµ тащи НДС Р·Р° 2020 как подтвержденную общую налоговую позицию.", - "Какая дебиторка Рё кредиторка Сѓ Альтернативы Плюс РЅР° 2020-12-31, Рё РіРґРµ самые крупные открытые расчеты?", - "Это РјРѕР¶РЅРѕ считать просрочкой Рё плохим качеством долга или РїРѕРєР° только открытыми расчетами? РћР±СЉСЏСЃРЅРё аккуратно.", - "Теперь СЃРЅРѕРІР° Р·Р° РІСЃРµ время РїРѕ компании: дай общий бизнес-РѕР±Р·РѕСЂ, РЅРѕ РЅРµ тащи долговой срез РЅР° 2020-12-31 как текущую или общую долговую позицию.", - "Покажи складской срез Альтернативы Плюс РЅР° 2026-04-16: что есть РІ остатках, какие самые заметные позиции, Рё что это РіРѕРІРѕСЂРёС‚ Рѕ бизнесе.", - "РњРѕР¶РЅРѕ ли РёР· этого сказать, что склад ликвидный или что надо создавать резервы/списывать неликвид? Если нет, что именно подтверждено Рё чего РЅРµ хватает?", - "Теперь общий РѕР±Р·РѕСЂ Альтернативы Плюс Р·Р° РІСЃРµ время, РЅРѕ РЅРµ тащи складской остаток РЅР° 2026-04-16 как общий all-time склад.", - "Сколько реально активных контрагентов Рё РґРѕРіРѕРІРѕСЂРѕРІ РІРёРґРЅРѕ РїРѕ Альтернативе Плюс, какие роли Сѓ контрагентов, Рё какие РґРѕРіРѕРІРѕСЂС‹ используются чаще всего?", - "Какой профиль документов Рё разделов учета виден РїРѕ компании: продажи, закупки, банк, склад, НДС? Где активность плотнее всего?", - "Собери это как нормальный бизнес-аудит: сильные стороны, СЂРёСЃРєРё, что СѓР¶Рµ РјРѕР¶РЅРѕ сказать уверенно, что только proxy, Рё что директору проверить руками.", - "Теперь резко переключаемся: найди РІ 1РЎ контрагента РЎР’Рљ.", - "Сколько получили РїРѕ нему Р·Р° 2020 РіРѕРґ?", - "Рђ теперь сколько заплатили?", - "Рђ какое нетто РїРѕ РЎР’Рљ: сколько получили РјРёРЅСѓСЃ сколько заплатили?", - "Рђ РїРѕ документам РЎР’Рљ что РІРёРґРЅРѕ?", - "Рђ РїРѕ движениям?", - "Теперь РїРѕ РЎР’Рљ Р·Р° РІСЃРµ доступное время: деньги, документы, движения, Рё короткий вывод.", - "Проверь себя: ты сейчас РЅРµ смешал Группа РЎР’Рљ как контрагента СЃ РћРћРћ Альтернатива Плюс как организацией? РћР±СЉСЏСЃРЅРё контур человечески.", - "РЎР’Рљ закончили. Новая тема: покажи документы РїРѕ Р–СѓРєРѕРІРєРµ 51.", - "Хорошо, Р° теперь платежи РїРѕ нему тоже покажи.", - "Рђ РїРѕ нему РґРѕРіРѕРІРѕСЂС‹?", - "Рђ РїРѕ нему документы?", - "Рђ Р·Р° 2021?", - "РЎ Р–СѓРєРѕРІРєРѕР№ закончили. Теперь РЅСѓР¶РЅР° другая задача: быстрый денежный срез РїРѕ РѕРґРЅРѕР№ организации. Сколько вообще входящих денег было Р·Р° 2020 РіРѕРґ?", - "РџРѕ РћРћРћ Альтернатива Плюс.", - "РџРѕРЅСЏР», тогда Р·Р° РІСЃРµ время.", - "Хорошо. Рђ что РїРѕ РћРћРћ Альтернатива Плюс больше РІ 2020 РіРѕРґСѓ: входящие или исходящие деньги?", - "Рђ что РїРѕ РћРћРћ Альтернатива Плюс больше СѓР¶Рµ Р·Р° 2021 РіРѕРґ: входящие или исходящие деньги?", - "И кто больше всего принес денег этой организации РІ 2020 РіРѕРґСѓ?", - "Рђ РІ 2021 РіРѕРґСѓ?", - "Какие справочники 1РЎ есть РїРѕ контрагентам?", - "давай дальше", - "Какие поля Рё СЃРІСЏР·Рё стоит смотреть Сѓ документов реализации Рё поступления, если СЏ хочу потом идти РІ продажи, закупки, оплату Рё движения?", - "Если СЏ спрашиваю прибыль компании, какой маршрут ты должен выбрать Рё что обязан честно ограничить РІ ответе?", - "Рђ чем капибара отличается РѕС‚ утки?", - "Возвращаемся Рє 1РЎ: РїСЂРёРєРёРЅСЊ, какой НДС нам надо заплатить Р·Р° февраль 2017.", - "Рђ сколько НДС РІ налоговую Р·Р° декабрь 2020?", - "РњРЅРµ РЅСѓР¶РЅРѕ понять, РіРґРµ РІ 1РЎ РїРѕ НДС вообще лежат данные. Какие объекты стоит смотреть РїРѕ НДС?", - "Хорошо, тогда покажи движения РїРѕ РћРћРћ Альтернатива Плюс Р·Р° 2020 РіРѕРґ.", - "Рђ теперь РїРѕ документам?", - "Рђ теперь Р·Р° 2021 РіРѕРґ?", - "Рђ теперь Р·Р° РІСЃРµ время?", - "кайф, что там РЅР° складе РїРѕ остаткам?", - "АЛЬТЕРНАТИВА", - "март 2016", - "РџРѕ выбранному объекту \"Рабочая станция универсального специалиста (индивидуальное изготовление)\": РіРґРµ взяли это?", - "НДС можешь прикинуть РЅР° дату РїРѕРєСѓРїРєРё рабочей станции?", - "РџРѕ выбранному объекту \"Четки РџРѕСЃС‚ (84*117)\": сколько заработали РЅР° продаже, какие закупочные Рё продажные документы это подтверждают?", - "Кто Сѓ нас самый доходный клиент Р·Р° РІСЃРµ время?", - "РџРѕ Чепурнову покажи РІСЃРµ РґРѕРєРё.", - "Что нам отгружал Чепурнов: какой товар или услугу?", - "Рђ сейчас Сѓ нас есть что РЅР° складе?", - "Финально собери executive summary РїРѕ всему диалогу: РіРґРµ ответы были подтвержденными, РіРґРµ proxy, РіРґРµ РЅРµ хватило доказательств, Рё какие места РјРЅРµ руками смотреть особенно внимательно." + "привет, ты на связи? перед большим прогоном отвечай живо, но не теряй потом бизнес-контекст", + "Дай взрослый бизнес-обзор ООО Альтернатива Плюс за 2020 год по данным 1С: обороты, входящие и исходящие деньги, нетто, НДС, дебиторка, кредиторка, склад, клиенты, поставщики, договоры, документы, что подтверждено и что пока нельзя утверждать.", + "Раскрой деньги подробнее: сколько всего получили, сколько заплатили, какой чистый денежный поток, кто главный клиент и кто главный поставщик в 2020.", + "А если смотреть за все доступное время, какой самый доходный год по подтвержденным оборотам и почему? Только не называй это бухгалтерской прибылью, если ее нет.", + "Можно ли по этим данным посчитать нормальную прибыль и маржу компании? Если нет, дай proxy-анализ и объясни, каких учетных доказательств не хватает.", + "Кто крупнейшие клиенты Альтернативы Плюс и насколько бизнес зависит от одного покупателя?", + "А по поставщикам: кто самый крупный получатель исходящих денег и есть ли риск зависимости от поставщика?", + "Что с НДС за 2020 год по Альтернативе Плюс: какая позиция видна, на чем она основана и чего не хватает для налогового вывода?", + "Теперь за все доступное время дай обзор компании в целом, но не тащи НДС за 2020 как подтвержденную общую налоговую позицию.", + "Какая дебиторка и кредиторка у Альтернативы Плюс на 2020-12-31, и где самые крупные открытые расчеты?", + "Это можно считать просрочкой и плохим качеством долга или пока только открытыми расчетами? Объясни аккуратно.", + "Теперь снова за все время по компании: дай общий бизнес-обзор, но не тащи долговой срез на 2020-12-31 как текущую или общую долговую позицию.", + "Покажи складской срез Альтернативы Плюс на 2026-04-16: что есть в остатках, какие самые заметные позиции, и что это говорит о бизнесе.", + "Можно ли из этого сказать, что склад ликвидный или что надо создавать резервы/списывать неликвид? Если нет, что именно подтверждено и чего не хватает?", + "Теперь общий обзор Альтернативы Плюс за все время, но не тащи складской остаток на 2026-04-16 как общий all-time склад.", + "Сколько реально активных контрагентов и договоров видно по Альтернативе Плюс, какие роли у контрагентов, и какие договоры используются чаще всего?", + "Какой профиль документов и разделов учета виден по компании: продажи, закупки, банк, склад, НДС? Где активность плотнее всего?", + "Собери это как нормальный бизнес-аудит: сильные стороны, риски, что уже можно сказать уверенно, что только proxy, и что директору проверить руками.", + "Теперь резко переключаемся: найди в 1С контрагента СВК.", + "Сколько получили по нему за 2020 год?", + "А теперь сколько заплатили?", + "А какое нетто по СВК: сколько получили минус сколько заплатили?", + "А по документам СВК что видно?", + "А по движениям?", + "Теперь по СВК за все доступное время: деньги, документы, движения, и короткий вывод.", + "Проверь себя: ты сейчас не смешал Группа СВК как контрагента с ООО Альтернатива Плюс как организацией? Объясни контур человечески.", + "СВК закончили. Новая тема: покажи документы по Жуковке 51.", + "Хорошо, а теперь платежи по нему тоже покажи.", + "А по нему договоры?", + "А по нему документы?", + "А за 2021?", + "С Жуковкой закончили. Теперь нужна другая задача: быстрый денежный срез по одной организации. Сколько вообще входящих денег было за 2020 год?", + "По ООО Альтернатива Плюс.", + "Понял, тогда за все время.", + "Хорошо. А что по ООО Альтернатива Плюс больше в 2020 году: входящие или исходящие деньги?", + "А что по ООО Альтернатива Плюс больше уже за 2021 год: входящие или исходящие деньги?", + "И кто больше всего принес денег этой организации в 2020 году?", + "А в 2021 году?", + "Какие справочники 1С есть по контрагентам?", + "давай дальше", + "Какие поля и связи стоит смотреть у документов реализации и поступления, если я хочу потом идти в продажи, закупки, оплату и движения?", + "Если я спрашиваю прибыль компании, какой маршрут ты должен выбрать и что обязан честно ограничить в ответе?", + "А чем капибара отличается от утки?", + "Возвращаемся к 1С: прикинь, какой НДС нам надо заплатить за февраль 2017.", + "А сколько НДС в налоговую за декабрь 2020?", + "Мне нужно понять, где в 1С по НДС вообще лежат данные. Какие объекты стоит смотреть по НДС?", + "Хорошо, тогда покажи движения по ООО Альтернатива Плюс за 2020 год.", + "А теперь по документам?", + "А теперь за 2021 год?", + "А теперь за все время?", + "кайф, что там на складе по остаткам?", + "АЛЬТЕРНАТИВА", + "март 2016", + "По выбранному объекту \"Рабочая станция универсального специалиста (индивидуальное изготовление)\": где взяли это?", + "НДС можешь прикинуть на дату покупки рабочей станции?", + "По выбранному объекту \"Четки Пост (84*117)\": сколько заработали на продаже, какие закупочные и продажные документы это подтверждают?", + "Кто у нас самый доходный клиент за все время?", + "По Чепурнову покажи все доки.", + "Что нам отгружал Чепурнов: какой товар или услугу?", + "А сейчас у нас есть что на складе?", + "Финально собери executive summary по всему диалогу: где ответы были подтвержденными, где proxy, где не хватило доказательств, и какие места мне руками смотреть особенно внимательно." ], "generated_by": "codex_manual_qa_pack", "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260505141816_gen-mq05051418-fat99.json", @@ -245,30 +396,30 @@ "generation_id": "gen-ag05011759-6f85fc", "created_at": "2026-05-01T17:59:04+00:00", "mode": "saved_user_sessions", - "title": "AGENT | Planner Autonomy phase83: РјРѕР·Рі маршрутов, pivots Рё legacy continuity", + "title": "AGENT | Planner Autonomy phase83: мозг маршрутов, pivots и legacy continuity", "count": 20, "domain": "planner_autonomy_consolidation", "questions": [ - "привет, ты РЅР° СЃРІСЏР·Рё?", - "найди РІ 1РЎ контрагента РЎР’Рљ", - "сколько получили РїРѕ нему Р·Р° 2020 РіРѕРґ", - "Р° теперь сколько заплатили?", - "Р° какое нетто?", - "Р° РїРѕ документам?", - "Р° РїРѕ движениям?", - "Хочу быстрый денежный срез РїРѕ РѕРґРЅРѕР№ организации без РїСЂРёРІСЏР·РєРё Рє контрагенту. Сколько вообще входящих денег было Р·Р° 2020 РіРѕРґ?", - "РџРѕ РћРћРћ Альтернатива Плюс.", - "РџРѕРЅСЏР», тогда Р·Р° РІСЃРµ время.", - "Хорошо. Рђ что РїРѕ РћРћРћ Альтернатива Плюс больше РІ 2020 РіРѕРґСѓ: входящие или исходящие деньги?", - "Рђ что РїРѕ РћРћРћ Альтернатива Плюс больше СѓР¶Рµ Р·Р° 2021 РіРѕРґ: входящие или исходящие деньги?", - "И кто больше всего принес денег этой организации РІ 2020 РіРѕРґСѓ?", - "Рђ РІ 2021 РіРѕРґСѓ?", - "Р° РїРѕ Альтернативе Плюс сколько лет активности РІ базе 1РЎ?", - "Как ты оценишь деятельность компании?", - "какое нетто РїРѕ деньгам СЃ Группа РЎР’Рљ Р·Р° 2020 РіРѕРґ: сколько получили Рё сколько заплатили?", - "какие справочники 1РЎ есть РїРѕ контрагентам?", - "давай дальше", - "Р° чем капибара отличается РѕС‚ утки?" + "привет, ты на связи?", + "найди в 1С контрагента СВК", + "сколько получили по нему за 2020 год", + "а теперь сколько заплатили?", + "а какое нетто?", + "а по документам?", + "а по движениям?", + "Хочу быстрый денежный срез по одной организации без привязки к контрагенту. Сколько вообще входящих денег было за 2020 год?", + "По ООО Альтернатива Плюс.", + "Понял, тогда за все время.", + "Хорошо. А что по ООО Альтернатива Плюс больше в 2020 году: входящие или исходящие деньги?", + "А что по ООО Альтернатива Плюс больше уже за 2021 год: входящие или исходящие деньги?", + "И кто больше всего принес денег этой организации в 2020 году?", + "А в 2021 году?", + "а по Альтернативе Плюс сколько лет активности в базе 1С?", + "Как ты оценишь деятельность компании?", + "какое нетто по деньгам с Группа СВК за 2020 год: сколько получили и сколько заплатили?", + "какие справочники 1С есть по контрагентам?", + "давай дальше", + "а чем капибара отличается от утки?" ], "generated_by": "codex_agent", "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260501175904_gen-ag05011759-6f85fc.json", @@ -325,28 +476,29 @@ "value_flow_pivot", "value_flow_ranking", "year_switch" - ] + ], + "latest_acceptance": null } }, { "generation_id": "gen-ag04241710-bdb248", "created_at": "2026-04-24T17:10:31+00:00", "mode": "saved_user_sessions", - "title": "AGENT | Post-F ручные провалы VAT revenue item-flow live3", + "title": "AGENT | Post-F ручные провалы VAT revenue item-flow live3", "count": 11, "domain": "address_post_f_manual_failures", "questions": [ - "кайф - что там РЅР° складе РїРѕ остаткам?", - "АЛЬТЕРНАТИВА", - "март 2016", - "РџРѕ выбранному объекту \"Рабочая станция универсального специалиста (индивидуальное изготовление)\": РіРґРµ взяли это?", - "РЅРґСЃ можешь прикинуть РЅР° дату РїРѕРєСѓРїРєРё рабочей станции?", - "РїСЂРёРєРёРЅСЊ какой РЅРґСЃ нам надо заплатить РЅР° февраль 2017", - "кто Сѓ нас самый доходный клиент Р·Р° РІСЃРµ время", - "РїРѕ чепурнову покажи РІСЃРµ РґРѕРєРё", - "Р° РїРѕ СЃРІРє", - "Р° сейчас Сѓ нас есть что РЅР° складе?", - "что нам отгружал чепурнов? какой товар или услугу?" + "кайф - что там на складе по остаткам?", + "АЛЬТЕРНАТИВА", + "март 2016", + "По выбранному объекту \"Рабочая станция универсального специалиста (индивидуальное изготовление)\": где взяли это?", + "ндс можешь прикинуть на дату покупки рабочей станции?", + "прикинь какой ндс нам надо заплатить на февраль 2017", + "кто у нас самый доходный клиент за все время", + "по чепурнову покажи все доки", + "а по свк", + "а сейчас у нас есть что на складе?", + "что нам отгружал чепурнов? какой товар или услугу?" ], "generated_by": "codex_agent", "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260424171031_gen-ag04241710-bdb248.json", @@ -381,7 +533,8 @@ "stale_scope_guard", "vat_failure_11", "vat_failure_13" - ] + ], + "latest_acceptance": null } }, { @@ -392,30 +545,30 @@ "count": 24, "domain": "address_post_f_cross_stage_canary_agent", "questions": [ - "РњРЅРµ РЅСѓР¶РЅРѕ понять, РіРґРµ РІ 1РЎ РїРѕ НДС вообще лежат данные. Какие объекты стоит смотреть РїРѕ НДС?", - "Хорошо, тогда покажи движения РїРѕ РћРћРћ Альтернатива Плюс.", - "Р—Р° 2020 РіРѕРґ.", - "Рђ теперь РїРѕ документам?", - "Рђ теперь Р·Р° 2021 РіРѕРґ?", - "Рђ теперь Р·Р° РІСЃРµ время?", - "РЎ НДС закончили. Новая тема: покажи документы РїРѕ Р–СѓРєРѕРІРєРµ 51.", - "Хорошо, Р° теперь платежи РїРѕ нему тоже покажи.", - "Рђ РїРѕ нему РґРѕРіРѕРІРѕСЂС‹?", - "Рђ РїРѕ нему документы?", - "Рђ Р·Р° 2021?", - "РЎ Р–СѓРєРѕРІРєРѕР№ закончили. Теперь другая задача: быстрый денежный срез РїРѕ РѕРґРЅРѕР№ организации. Если для ответа РЅСѓР¶РЅР° организация, просто уточни ее. Сколько вообще входящих денег было Р·Р° 2020 РіРѕРґ?", - "РџРѕ РћРћРћ Альтернатива Плюс.", - "РџРѕРЅСЏР», тогда Р·Р° РІСЃРµ время.", - "Хорошо. Рђ что РїРѕ РћРћРћ Альтернатива Плюс больше РІ 2020 РіРѕРґСѓ: входящие или исходящие деньги?", - "И кто больше всего принес денег этой организации РІ 2020 РіРѕРґСѓ?", - "Рђ РІ 2021 РіРѕРґСѓ?", - "Теперь отдельная тема РїРѕ конкретному контрагенту. Найди РІ 1РЎ Группу РЎР’Рљ.", - "Сколько получили РїРѕ нему Р·Р° 2020 РіРѕРґ?", - "Рђ теперь сколько заплатили?", - "Рђ какое нетто?", - "Рђ РїРѕ документам?", - "Рђ РїРѕ движениям?", - "Рђ теперь тот Р¶Рµ смысл Р·Р° 2021 РіРѕРґ." + "Мне нужно понять, где в 1С по НДС вообще лежат данные. Какие объекты стоит смотреть по НДС?", + "Хорошо, тогда покажи движения по ООО Альтернатива Плюс.", + "За 2020 год.", + "А теперь по документам?", + "А теперь за 2021 год?", + "А теперь за все время?", + "С НДС закончили. Новая тема: покажи документы по Жуковке 51.", + "Хорошо, а теперь платежи по нему тоже покажи.", + "А по нему договоры?", + "А по нему документы?", + "А за 2021?", + "С Жуковкой закончили. Теперь другая задача: быстрый денежный срез по одной организации. Если для ответа нужна организация, просто уточни ее. Сколько вообще входящих денег было за 2020 год?", + "По ООО Альтернатива Плюс.", + "Понял, тогда за все время.", + "Хорошо. А что по ООО Альтернатива Плюс больше в 2020 году: входящие или исходящие деньги?", + "И кто больше всего принес денег этой организации в 2020 году?", + "А в 2021 году?", + "Теперь отдельная тема по конкретному контрагенту. Найди в 1С Группу СВК.", + "Сколько получили по нему за 2020 год?", + "А теперь сколько заплатили?", + "А какое нетто?", + "А по документам?", + "А по движениям?", + "А теперь тот же смысл за 2021 год." ], "generated_by": "codex_agent", "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260424161022_gen-ag04241610-84c8bb.json", @@ -473,7 +626,8 @@ "year_switch", "year_switch_after_document_pivot", "year_switch_after_repeated_pivot" - ] + ], + "latest_acceptance": null } }, { @@ -484,30 +638,30 @@ "count": 24, "domain": "address_post_f_cross_stage_canary_agent", "questions": [ - "РњРЅРµ РЅСѓР¶РЅРѕ понять, РіРґРµ РІ 1РЎ РїРѕ НДС вообще лежат данные. Какие объекты стоит смотреть РїРѕ НДС?", - "Хорошо, тогда покажи движения РїРѕ РћРћРћ Альтернатива Плюс.", - "Р—Р° 2020 РіРѕРґ.", - "Рђ теперь РїРѕ документам?", - "Рђ теперь Р·Р° 2021 РіРѕРґ?", - "Рђ теперь Р·Р° РІСЃРµ время?", - "РЎ НДС закончили. Новая тема: покажи документы РїРѕ Р–СѓРєРѕРІРєРµ 51.", - "Хорошо, Р° теперь платежи РїРѕ нему тоже покажи.", - "Рђ РїРѕ нему РґРѕРіРѕРІРѕСЂС‹?", - "Рђ РїРѕ нему документы?", - "Рђ Р·Р° 2021?", - "РЎ Р–СѓРєРѕРІРєРѕР№ закончили. Теперь другая задача: быстрый денежный срез РїРѕ РѕРґРЅРѕР№ организации. Если для ответа РЅСѓР¶РЅР° организация, просто уточни ее. Сколько вообще входящих денег было Р·Р° 2020 РіРѕРґ?", - "РџРѕ РћРћРћ Альтернатива Плюс.", - "РџРѕРЅСЏР», тогда Р·Р° РІСЃРµ время.", - "Хорошо. Рђ что РїРѕ РћРћРћ Альтернатива Плюс больше РІ 2020 РіРѕРґСѓ: входящие или исходящие деньги?", - "И кто больше всего принес денег этой организации РІ 2020 РіРѕРґСѓ?", - "Рђ РІ 2021 РіРѕРґСѓ?", - "Теперь отдельная тема РїРѕ конкретному контрагенту. Найди РІ 1РЎ Группу РЎР’Рљ.", - "Сколько получили РїРѕ нему Р·Р° 2020 РіРѕРґ?", - "Рђ теперь сколько заплатили?", - "Рђ какое нетто?", - "Рђ РїРѕ документам?", - "Рђ РїРѕ движениям?", - "Рђ теперь тот Р¶Рµ смысл Р·Р° 2021 РіРѕРґ." + "Мне нужно понять, где в 1С по НДС вообще лежат данные. Какие объекты стоит смотреть по НДС?", + "Хорошо, тогда покажи движения по ООО Альтернатива Плюс.", + "За 2020 год.", + "А теперь по документам?", + "А теперь за 2021 год?", + "А теперь за все время?", + "С НДС закончили. Новая тема: покажи документы по Жуковке 51.", + "Хорошо, а теперь платежи по нему тоже покажи.", + "А по нему договоры?", + "А по нему документы?", + "А за 2021?", + "С Жуковкой закончили. Теперь другая задача: быстрый денежный срез по одной организации. Если для ответа нужна организация, просто уточни ее. Сколько вообще входящих денег было за 2020 год?", + "По ООО Альтернатива Плюс.", + "Понял, тогда за все время.", + "Хорошо. А что по ООО Альтернатива Плюс больше в 2020 году: входящие или исходящие деньги?", + "И кто больше всего принес денег этой организации в 2020 году?", + "А в 2021 году?", + "Теперь отдельная тема по конкретному контрагенту. Найди в 1С Группу СВК.", + "Сколько получили по нему за 2020 год?", + "А теперь сколько заплатили?", + "А какое нетто?", + "А по документам?", + "А по движениям?", + "А теперь тот же смысл за 2021 год." ], "generated_by": "codex_agent", "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260424140630_gen-ag04241406-abe4d8.json", @@ -565,257 +719,8 @@ "year_switch", "year_switch_after_document_pivot", "year_switch_after_repeated_pivot" - ] - } - }, - { - "generation_id": "gen-ag04231844-8e552a", - "created_at": "2026-04-23T18:44:25+00:00", - "mode": "saved_user_sessions", - "title": "AGENT | ARCH: Post-F Semantic Integrity Hardening | Смешанный Р¶РёРІРѕР№ диалог: repeated pivots, РѕСЂРі-срез Рё РЎР’Рљ", - "count": 19, - "domain": "address_phase82_human_mixed_integrity_status_dialog", - "questions": [ - "Покажи документы РїРѕ Р–СѓРєРѕРІРєРµ 51.", - "Хорошо, Р° теперь платежи РїРѕ нему тоже покажи.", - "Рђ РїРѕ нему РґРѕРіРѕРІРѕСЂС‹?", - "Рђ РїРѕ нему документы?", - "Рђ РїРѕ нему платежи?", - "Рђ Р·Р° 2021?", - "РЎ Р–СѓРєРѕРІРєРѕР№ закончили. Теперь РЅСѓР¶РЅР° другая задача: быстрый денежный срез РїРѕ РѕРґРЅРѕР№ организации. Если для ответа РЅСѓР¶РЅР° организация, просто уточни ее. Сколько вообще входящих денег было Р·Р° 2020 РіРѕРґ?", - "РџРѕ РћРћРћ Альтернатива Плюс.", - "РџРѕРЅСЏР», тогда Р·Р° РІСЃРµ время.", - "Хорошо. Рђ что РїРѕ РћРћРћ Альтернатива Плюс больше РІ 2020 РіРѕРґСѓ: входящие или исходящие деньги?", - "Рђ что РїРѕ РћРћРћ Альтернатива Плюс больше СѓР¶Рµ Р·Р° 2021 РіРѕРґ: входящие или исходящие деньги?", - "И кто больше всего принес денег этой организации РІ 2020 РіРѕРґСѓ?", - "Рђ РІ 2021 РіРѕРґСѓ?", - "Теперь отдельная тема РїРѕ конкретному контрагенту. Найди РІ 1РЎ Группу РЎР’Рљ.", - "Сколько получили РїРѕ нему Р·Р° 2020 РіРѕРґ?", - "Рђ теперь сколько заплатили?", - "Рђ какое нетто?", - "Рђ РїРѕ документам?", - "Рђ РїРѕ движениям?" - ], - "generated_by": "codex_agent", - "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260423184425_gen-ag04231844-8e552a.json", - "context": { - "llm_provider": null, - "model": null, - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "autogen_personality_id": null, - "autogen_personality_prompt": null, - "source_session_id": null, - "saved_session_file": "assistant_saved_session_20260423184425_gen-ag04231844-8e552a.json", - "saved_case_set_kind": "agent_semantic_scenario", - "agent_run": true, - "agent_focus": "Post-F repeated pivots + open-scope organization money + grounded SVK counterparty chain", - "architecture_phase": "turnaround_11", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase82_human_mixed_integrity_status_dialog.json", - "scenario_id": "address_truth_harness_phase82_human_mixed_integrity_status_dialog", - "semantic_tags": [ - "all_time_followup", - "contracts_followup", - "counterparty_pronoun_resolution", - "documents_by_counterparty", - "documents_followup", - "documents_pivot", - "fourth_pivot", - "grounded_counterparty", - "human_dialog", - "incoming_value_flow", - "movements_pivot", - "net_value_flow", - "open_scope_total", - "organization_clarification", - "organization_scope", - "payments_followup", - "payout_value_flow", - "pivot_seed", - "post_f_integrity_hardening", - "second_pivot", - "third_pivot", - "topic_reset", - "value_flow_comparison", - "value_flow_ranking", - "year_switch", - "year_switch_after_fourth_pivot" - ] - } - }, - { - "generation_id": "gen-ag04231336-3d4cc9", - "created_at": "2026-04-23T13:36:22+00:00", - "mode": "saved_user_sessions", - "title": "AGENT | Р–РёРІРѕР№ диалог РїРѕ организации: денежный срез, сравнение Рё рейтинг", - "count": 7, - "domain": "address_phase66_human_org_open_scope_dialog", - "questions": [ - "Хочу быстрый денежный срез РїРѕ РѕРґРЅРѕР№ организации без РїСЂРёРІСЏР·РєРё Рє контрагенту. Сколько вообще входящих денег было Р·Р° 2020 РіРѕРґ?", - "РџРѕ РћРћРћ Альтернатива Плюс.", - "РџРѕРЅСЏР», тогда Р·Р° РІСЃРµ время.", - "Хорошо. Рђ что РїРѕ РћРћРћ Альтернатива Плюс больше РІ 2020 РіРѕРґСѓ: входящие или исходящие деньги?", - "Рђ что РїРѕ РћРћРћ Альтернатива Плюс больше СѓР¶Рµ Р·Р° 2021 РіРѕРґ: входящие или исходящие деньги?", - "И кто больше всего принес денег этой организации РІ 2020 РіРѕРґСѓ?", - "Рђ РІ 2021 РіРѕРґСѓ?" - ], - "generated_by": "codex_agent", - "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260423133622_gen-ag04231336-3d4cc9.json", - "context": { - "llm_provider": null, - "model": null, - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "autogen_personality_id": null, - "autogen_personality_prompt": null, - "source_session_id": null, - "saved_session_file": "assistant_saved_session_20260423133622_gen-ag04231336-3d4cc9.json", - "saved_case_set_kind": "agent_semantic_scenario", - "agent_run": true, - "agent_focus": "Human organization open-scope dialog: org clarification, all-time incoming total, comparison, ranking", - "architecture_phase": "turnaround_11", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase66_human_org_open_scope_dialog.json", - "scenario_id": "address_truth_harness_phase66_human_org_open_scope_dialog", - "semantic_tags": [ - "all_time_followup", - "human_dialog", - "open_scope_total", - "organization_clarification", - "organization_scope", - "value_flow_comparison", - "value_flow_ranking", - "year_switch" - ] - } - }, - { - "generation_id": "gen-ag04231336-db78b3", - "created_at": "2026-04-23T13:36:22+00:00", - "mode": "saved_user_sessions", - "title": "AGENT | Р–РёРІРѕР№ диалог РїРѕ РЎР’Рљ: деньги, нетто, документы Рё движения", - "count": 7, - "domain": "address_phase65_human_svk_money_dialog", - "questions": [ - "Хочу проверить РѕРґРЅРѕРіРѕ контрагента. Найди РІ 1РЎ Группу РЎР’Рљ.", - "Посмотри, сколько денег РјС‹ получили РѕС‚ него Р·Р° 2020 РіРѕРґ.", - "Рђ теперь сколько РјС‹ ему заплатили?", - "Рђ какое получилось нетто?", - "Рђ РїРѕ документам?", - "Рђ РїРѕ движениям?", - "Рђ теперь Р·Р° 2021 РіРѕРґ?" - ], - "generated_by": "codex_agent", - "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260423133622_gen-ag04231336-db78b3.json", - "context": { - "llm_provider": null, - "model": null, - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "autogen_personality_id": null, - "autogen_personality_prompt": null, - "source_session_id": null, - "saved_session_file": "assistant_saved_session_20260423133622_gen-ag04231336-db78b3.json", - "saved_case_set_kind": "agent_semantic_scenario", - "agent_run": true, - "agent_focus": "Human SVK counterparty dialog: grounding, incoming, outgoing, net, documents, movements", - "architecture_phase": "turnaround_11", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase65_human_svk_money_dialog.json", - "scenario_id": "address_truth_harness_phase65_human_svk_money_dialog", - "semantic_tags": [ - "counterparty_resolution", - "document_pivot_after_value_flow", - "entity_grounding", - "grounded_counterparty_followup", - "human_dialog", - "incoming_value_flow", - "movement_pivot_after_value_flow", - "net_value_flow", - "outgoing_value_flow", - "year_switch" - ] - } - }, - { - "generation_id": "gen-ag04231336-4fa660", - "created_at": "2026-04-23T13:36:22+00:00", - "mode": "saved_user_sessions", - "title": "AGENT | Р–РёРІРѕР№ диалог РїРѕ НДС: РѕС‚ ориентации РґРѕ документов", - "count": 6, - "domain": "address_phase64_human_vat_investigation_dialog", - "questions": [ - "РњРЅРµ РЅСѓР¶РЅРѕ понять, РіРґРµ РІ 1РЎ РїРѕ НДС вообще лежат данные. Какие объекты стоит смотреть РїРѕ НДС?", - "Хорошо, тогда покажи движения РїРѕ РћРћРћ Альтернатива Плюс.", - "Р—Р° 2020 РіРѕРґ.", - "Рђ теперь РїРѕ документам?", - "Рђ теперь Р·Р° 2021 РіРѕРґ?", - "Рђ теперь Р·Р° РІСЃРµ время?" - ], - "generated_by": "codex_agent", - "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260423133622_gen-ag04231336-4fa660.json", - "context": { - "llm_provider": null, - "model": null, - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "autogen_personality_id": null, - "autogen_personality_prompt": null, - "source_session_id": null, - "saved_session_file": "assistant_saved_session_20260423133622_gen-ag04231336-4fa660.json", - "saved_case_set_kind": "agent_semantic_scenario", - "agent_run": true, - "agent_focus": "Human VAT dialog: metadata orientation, movement lane, document pivot, year switch, all-time continuity", - "architecture_phase": "turnaround_11", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase64_human_vat_investigation_dialog.json", - "scenario_id": "address_truth_harness_phase64_human_vat_investigation_dialog", - "semantic_tags": [ - "all_time_followup", - "bounded_retrieval", - "document_lane_continuity", - "document_pivot_after_movement_retrieval", - "human_dialog", - "inline_organization_clarification", - "metadata_surface", - "movement_lane_after_metadata", - "movement_lane_execution", - "scope_reuse", - "vat_orientation", - "year_switch_after_pivot" - ] - } - }, - { - "generation_id": "gen-moa1y0lw-m30gdsz", - "created_at": "2026-04-22T12:51:54.657Z", - "mode": "saved_user_sessions", - "title": "РЎР’Рљ - Ручная сессия 22.04.2026, 15:50:39", - "count": 7, - "domain": null, - "questions": [ - "найди РІ 1РЎ контрагента РЎР’Рљ", - "сколько получили РїРѕ нему Р·Р° 2020 РіРѕРґ", - "Р° теперь сколько заплатили?", - "Р° Р·Р° 2021?", - "Р° какое нетто?", - "Р° РїРѕ документам?", - "Р° РїРѕ движениям?" - ], - "generated_by": "manual_reviewer", - "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260422125154_gen-moa1y0lw-m30gdsz.json", - "context": { - "llm_provider": "local", - "model": "unsloth/qwen3-30b-a3b-instruct-2507", - "assistant_prompt_version": "address_query_runtime_v1", - "decomposition_prompt_version": "normalizer_v2_0_2", - "prompt_fingerprint": "РўС‹ semantic-normalizer для бухгалтерского ассистента NDC.\nРўРІРѕСЏ роль: только нормализация запроса пользователя РІ строгий JSON-контракт.\n\nЖесткие правила:\n1) РќРµ давай бухгалтерский ответ РїРѕ сути РІРѕРїСЂРѕСЃР°.\n2) Возвращай только JSON без markdown Рё пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период РЅРµ указан, РЅРµ выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/РїСЂРѕРІРѕРґРѕРє/оплат поднимай causal Рё cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.||You are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and candidate labels.\n4. For each fragment set execution state fields:\n - execution_readiness\n - clarification_reason\n - soft_assumption_used\n - route_status\n - no_route_reason\n5. Clarification must be rare and justified.\n\nExecution-state policy:\n- Every in-scope fragment must produce a consistent execution state.\n- If a fragment is routable, mark it as executable or executable_with_soft_assumptions.\n- Do not leave routable fragments in unresolved state.\n- If a fragment cannot be routed, set route_status=no_route and provide explicit no_route_reason.\n\nReadiness values:\n- executable\n- executable_with_soft_assumptions\n- needs_clarification\n- no_route\n\nRoute status values:\n- routed\n- no_route\n\nNo-route reason values:\n- out_of_scope\n- insufficient_specificity\n- missing_mapping\n- unsupported_fragment_type\n\nDo not over-require formality:\n- Do not require document IDs, exact periods, or exact object references for scan/review/anomaly/rule-check requests.\n- Colloquial accounting phrases like \"что РІРёСЃРёС‚\", \"что подозрительно\", \"что РЅРµ сходится\", \"что РєСЂРёРІРѕ\", \"что аукнется\" are executable if accounting area is understandable.\n\nFragment required fields:\n- fragment_id\n- raw_fragment_text\n- normalized_fragment_text\n- domain_relevance\n- business_scope\n- entity_hints\n- account_hints\n- document_hints\n- register_hints\n- time_scope\n- flags\n- candidate_labels\n- confidence\n- execution_readiness\n- clarification_reason\n- soft_assumption_used\n- route_status\n- no_route_reason\n\nSoft assumptions (`soft_assumption_used`) allowed values:\n- period_from_session_context\n- company_scope_defaulted\n- problem_scan_mode_enabled\n\nGlobal notes:\n- global_notes.needs_clarification should be true only when execution is truly blocked for all in-scope fragments.\n- global_notes.clarification_reason must explain the blocker.\n\nSchema version must be:\n- \"schema_version\": \"normalized_query_v2_0_2\"||Контекст домена: бухгалтерия 1РЎ/NDC.\n\nКлючевые счета:\n- 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97.\n\nТиповые сущности:\n- контрагент, РґРѕРіРѕРІРѕСЂ, документ реализации, документ поступления, оплата, РїСЂРѕРІРѕРґРєР°, регистр, закрывающий документ.\n\nЛексика causal Рё сверки (сильные сигналы для cross_entity):\n- \"РЅРµ бьется\", \"РЅРµ сходится\", \"РЅРµ РІРёРґРЅРѕ\", \"РЅРµ собралось\", \"повисло\", \"С…РІРѕСЃС‚\";\n- \"разложи РїРѕ документам/оплатам/закрывающим\";\n- \"чем подтверждается\", \"РіРґРµ ошибка РІ цепочке\", \"что пошло РєСЂРёРІРѕ\".\n\nЛексика точечного drilldown:\n- \"документ в„–...\", \"ref\", \"строка РїСЂРѕРІРѕРґРєРё\", \"покажи конкретную операцию\", \"точный source-of-record\".\n\nЛексика rule-based контроля:\n- \"проверь настройки\", \"ошибка СЃСЂРѕРєР°/даты\", \"контроль 97/10/РћРЎ\", \"нарушение правила учета\".\n\nЛексика РѕР±Р·РѕСЂРЅРѕР№ аналитики:\n- \"рейтинг\", \"топ СЂРёСЃРєРѕРІ\", \"РІ целом РїРѕ компании\", \"перед закрытием периода\", \"приоритизация проверок\".\n\nВажное правило:\nЕсли РІ РѕРґРЅРѕРј РІРѕРїСЂРѕСЃРµ есть Рё СЂРёСЃРє-лексика, Рё цепочка document/payment/posting, РЅРµ понижать задачу РґРѕ чистого `store_feature_risk`.\nПриоритет Сѓ causal cross-entity семантики.||v2.0.2: execution-state hardening + explicit route_status/no_route_reason. Схема normalized_query_v2_0_2.||Q: РџРѕ каким поставщикам РІРёСЃСЏС‚ хвосты РїРѕ 60, что подозрительно РїРѕ цепочке оплат?\nA: in_scope fragment, execution_readiness=executable_with_soft_assumptions, route_status=routed, no_route_reason=null.\n\nQ: Покажи записи РїРѕ 97, которые повисли Рё РјРѕРіСѓС‚ аукнуться.\nA: in_scope fragment, execution_readiness=executable_with_soft_assumptions, route_status=routed, no_route_reason=null.\n\nQ: Чекни, что Сѓ нас РЅРµ так.\nA: unclear/in_scope fragment, execution_readiness=needs_clarification, route_status=no_route, no_route_reason=insufficient_specificity.\n\nQ: Как вообще РїРѕ ФСБУ правильно?\nA: out_of_scope fragment, execution_readiness=no_route, route_status=no_route, no_route_reason=out_of_scope.", - "autogen_personality_id": null, - "autogen_personality_prompt": null, - "source_session_id": "asst-A0MzXXn0RG", - "saved_session_file": "assistant_saved_session_20260422125154_gen-moa1y0lw-m30gdsz.json", - "saved_case_set_kind": "assistant_session_scenario" + ], + "latest_acceptance": null } }, { @@ -826,21 +731,21 @@ "count": 15, "domain": null, "questions": [ - "РџРѕ каким контрагентам Сѓ нас РІРёСЃРёС‚ сальдо, которое СѓР¶Рµ больше месяца РЅРµ менялось Рё выглядит как застывший долг?", - "Где Сѓ нас поставщики, которые давно отгружали, РЅРѕ оплаты так Рё нет — РјРѕР¶РЅРѕ ли РёС… считать просроченными или это просто задержка РІ документах?", - "Покажи всех клиентов, РїРѕ которым есть отгрузки, РЅРѕ денег СЃ РЅРёС… РЅРµ поступало СѓР¶Рµ больше 60 дней — какие РёР· РЅРёС… вообще активны?", - "РџРѕ каким контрагентам Сѓ нас есть оплаты, РЅРѕ нет закрытия счетов, Рё это выглядит как архивный РєСЌС€?", - "Кто РёР· заказчиков давно РЅРµ платил, РЅРѕ РїСЂРё этом РїРѕ РЅРёРј РІРёСЃСЏС‚ открытые РґРѕРіРѕРІРѕСЂР° — РјРѕР¶РЅРѕ ли считать РёС… активными или СѓР¶Рµ РЅСѓР¶РЅРѕ смотреть РЅР° отключение?", - "Где Сѓ нас авансы, которые СѓР¶Рµ прошли 3 месяца после получения, РЅРѕ РЅРµ закрыты РЅРё документами, РЅРё сверками?", - "Покажи РІСЃРµ контрагенты, РїРѕ которым РІ 1РЎ указано «договор активен», Р° оплаты Рё отгрузки — ноль Р·Р° последние полгода", - "РџРѕ каким поставщикам Сѓ нас есть счета-фактуры, РЅРѕ документы РѕР± оплате РЅРµ приходили?", - "Рђ может быть, РѕРЅРё вообще РІРёСЃСЏС‚?", - "Какие клиенты СѓР¶Рµ давно получали товары, РЅРѕ РїРѕ РЅРёРј нет актов сверки Рё счёт-фактур — РІРѕР·РјРѕР¶РЅРѕ, это ошибка или просто пропущенные действия?", - "Где Сѓ нас есть документы РїРѕ отгрузке, РЅРѕ оплаты РЅРµ РІРёРґРЅРѕ — может, деньги пришли, РЅРѕ РЅРµ привязались?", - "Покажи всех контрагентов СЃ незакрытыми договорами Рё остатками РІ долгах свыше 100 тыс. — кто РёР· РЅРёС… реально проблемный?", - "Какие поставщики Сѓ нас РЅР° текущий момент имеют несогласованные остатки, Рё РіРґРµ это может повлиять РЅР° отчётность?", - "Где Сѓ нас зависшие взаиморасчёты, РєРѕРіРґР° документы есть, РЅРѕ оплаты нет — РјРѕР¶РЅРѕ ли считать это технической ошибкой или СѓР¶Рµ ручная проверка РЅСѓР¶РЅР°?", - "РџРѕ каким контрагентам РІ 1РЎ отображается активность, РЅРѕ РїСЂРё этом Сѓ РЅРёС… ноль поставок Рё оплат Р·Р° РіРѕРґ?" + "По каким контрагентам у нас висит сальдо, которое уже больше месяца не менялось и выглядит как застывший долг?", + "Где у нас поставщики, которые давно отгружали, но оплаты так и нет — можно ли их считать просроченными или это просто задержка в документах?", + "Покажи всех клиентов, по которым есть отгрузки, но денег с них не поступало уже больше 60 дней — какие из них вообще активны?", + "По каким контрагентам у нас есть оплаты, но нет закрытия счетов, и это выглядит как архивный кэш?", + "Кто из заказчиков давно не платил, но при этом по ним висят открытые договора — можно ли считать их активными или уже нужно смотреть на отключение?", + "Где у нас авансы, которые уже прошли 3 месяца после получения, но не закрыты ни документами, ни сверками?", + "Покажи все контрагенты, по которым в 1С указано «договор активен», а оплаты и отгрузки — ноль за последние полгода", + "По каким поставщикам у нас есть счета-фактуры, но документы об оплате не приходили?", + "А может быть, они вообще висят?", + "Какие клиенты уже давно получали товары, но по ним нет актов сверки и счёт-фактур — возможно, это ошибка или просто пропущенные действия?", + "Где у нас есть документы по отгрузке, но оплаты не видно — может, деньги пришли, но не привязались?", + "Покажи всех контрагентов с незакрытыми договорами и остатками в долгах свыше 100 тыс. — кто из них реально проблемный?", + "Какие поставщики у нас на текущий момент имеют несогласованные остатки, и где это может повлиять на отчётность?", + "Где у нас зависшие взаиморасчёты, когда документы есть, но оплаты нет — можно ли считать это технической ошибкой или уже ручная проверка нужна?", + "По каким контрагентам в 1С отображается активность, но при этом у них ноль поставок и оплат за год?" ], "generated_by": "manual_reviewer", "saved_case_set_file": "assistant_autogen_qwen_seed_20260420054242_gen-mo6rqcw8-kuswg6b.json", @@ -849,9 +754,9 @@ "model": "unsloth/qwen3-30b-a3b-instruct-2507", "assistant_prompt_version": "address_query_runtime_v1", "decomposition_prompt_version": "normalizer_v2_0_2", - "prompt_fingerprint": "РўС‹ semantic-normalizer для бухгалтерского ассистента NDC.\nРўРІРѕСЏ роль: только нормализация запроса пользователя РІ строгий JSON-контракт.\n\nЖесткие правила:\n1) РќРµ давай бухгалтерский ответ РїРѕ сути РІРѕРїСЂРѕСЃР°.\n2) Возвращай только JSON без markdown Рё пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период РЅРµ указан, РЅРµ выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/РїСЂРѕРІРѕРґРѕРє/оплат поднимай causal Рё cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and ", + "prompt_fingerprint": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and ", "autogen_personality_id": "general", - "autogen_personality_prompt": "Генерируй реалистичные живые РІРѕРїСЂРѕСЃС‹ бухгалтера РїРѕ 1РЎ. Добавляй разговорные формулировки Рё опечатки, РЅРѕ сохраняй бизнес-смысл. акцент РЅР° контрагентов, долги РЅСЃРґ, счета, общий вывод РїРѕ компании - контрагенты, заказчикам, СЃРєРѕРєР° денег кто принес Рё какие остатки РїРѕ счетам, РїРѕРёСЃРє документов, сальдо, банковские операции, незакрытые РґРѕРіРѕРІРѕСЂР°, документы РїРѕ договорам, долги, Активность заказчиков РїРѕ периодам, Поставщики Рё выплаты", + "autogen_personality_prompt": "Генерируй реалистичные живые вопросы бухгалтера по 1С. Добавляй разговорные формулировки и опечатки, но сохраняй бизнес-смысл. акцент на контрагентов, долги нсд, счета, общий вывод по компании - контрагенты, заказчикам, скока денег кто принес и какие остатки по счетам, поиск документов, сальдо, банковские операции, незакрытые договора, документы по договорам, долги, Активность заказчиков по периодам, Поставщики и выплаты", "source_session_id": null, "saved_session_file": null, "saved_case_set_kind": "single_turn_list", @@ -864,408 +769,27 @@ "latest_acceptance": null } }, - { - "generation_id": "gen-mo5zy5vo-z9klj34", - "created_at": "2026-04-19T16:44:57.543Z", - "mode": "saved_user_sessions", - "title": "Ручная сессия 19.04.2026, 18:58:20", - "count": 9, - "domain": null, - "questions": [ - "привет как дела", - "кто намс должен денег РЅР° сегодня", - "что ты можешь", - "кто нам должен денег РЅР° сегодня", - "Р° РјС‹ РєРѕРјСѓ", - "какиек остатки РЅР° складе РЅР° сегодня", - "альтернатива", - "покажи документы РїРѕ чепурнову", - "какой РѕР±РѕСЂРѕС‚ был СЃРІРє" - ], - "generated_by": "manual_reviewer", - "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260419164457_gen-mo5zy5vo-z9klj34.json", - "context": { - "llm_provider": "local", - "model": "unsloth/qwen3-30b-a3b-instruct-2507", - "assistant_prompt_version": "address_query_runtime_v1", - "decomposition_prompt_version": "normalizer_v2_0_2", - "prompt_fingerprint": "РўС‹ semantic-normalizer для бухгалтерского ассистента NDC.\nРўРІРѕСЏ роль: только нормализация запроса пользователя РІ строгий JSON-контракт.\n\nЖесткие правила:\n1) РќРµ давай бухгалтерский ответ РїРѕ сути РІРѕРїСЂРѕСЃР°.\n2) Возвращай только JSON без markdown Рё пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период РЅРµ указан, РЅРµ выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/РїСЂРѕРІРѕРґРѕРє/оплат поднимай causal Рё cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.||You are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and candidate labels.\n4. For each fragment set execution state fields:\n - execution_readiness\n - clarification_reason\n - soft_assumption_used\n - route_status\n - no_route_reason\n5. Clarification must be rare and justified.\n\nExecution-state policy:\n- Every in-scope fragment must produce a consistent execution state.\n- If a fragment is routable, mark it as executable or executable_with_soft_assumptions.\n- Do not leave routable fragments in unresolved state.\n- If a fragment cannot be routed, set route_status=no_route and provide explicit no_route_reason.\n\nReadiness values:\n- executable\n- executable_with_soft_assumptions\n- needs_clarification\n- no_route\n\nRoute status values:\n- routed\n- no_route\n\nNo-route reason values:\n- out_of_scope\n- insufficient_specificity\n- missing_mapping\n- unsupported_fragment_type\n\nDo not over-require formality:\n- Do not require document IDs, exact periods, or exact object references for scan/review/anomaly/rule-check requests.\n- Colloquial accounting phrases like \"что РІРёСЃРёС‚\", \"что подозрительно\", \"что РЅРµ сходится\", \"что РєСЂРёРІРѕ\", \"что аукнется\" are executable if accounting area is understandable.\n\nFragment required fields:\n- fragment_id\n- raw_fragment_text\n- normalized_fragment_text\n- domain_relevance\n- business_scope\n- entity_hints\n- account_hints\n- document_hints\n- register_hints\n- time_scope\n- flags\n- candidate_labels\n- confidence\n- execution_readiness\n- clarification_reason\n- soft_assumption_used\n- route_status\n- no_route_reason\n\nSoft assumptions (`soft_assumption_used`) allowed values:\n- period_from_session_context\n- company_scope_defaulted\n- problem_scan_mode_enabled\n\nGlobal notes:\n- global_notes.needs_clarification should be true only when execution is truly blocked for all in-scope fragments.\n- global_notes.clarification_reason must explain the blocker.\n\nSchema version must be:\n- \"schema_version\": \"normalized_query_v2_0_2\"||Контекст домена: бухгалтерия 1РЎ/NDC.\n\nКлючевые счета:\n- 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97.\n\nТиповые сущности:\n- контрагент, РґРѕРіРѕРІРѕСЂ, документ реализации, документ поступления, оплата, РїСЂРѕРІРѕРґРєР°, регистр, закрывающий документ.\n\nЛексика causal Рё сверки (сильные сигналы для cross_entity):\n- \"РЅРµ бьется\", \"РЅРµ сходится\", \"РЅРµ РІРёРґРЅРѕ\", \"РЅРµ собралось\", \"повисло\", \"С…РІРѕСЃС‚\";\n- \"разложи РїРѕ документам/оплатам/закрывающим\";\n- \"чем подтверждается\", \"РіРґРµ ошибка РІ цепочке\", \"что пошло РєСЂРёРІРѕ\".\n\nЛексика точечного drilldown:\n- \"документ в„–...\", \"ref\", \"строка РїСЂРѕРІРѕРґРєРё\", \"покажи конкретную операцию\", \"точный source-of-record\".\n\nЛексика rule-based контроля:\n- \"проверь настройки\", \"ошибка СЃСЂРѕРєР°/даты\", \"контроль 97/10/РћРЎ\", \"нарушение правила учета\".\n\nЛексика РѕР±Р·РѕСЂРЅРѕР№ аналитики:\n- \"рейтинг\", \"топ СЂРёСЃРєРѕРІ\", \"РІ целом РїРѕ компании\", \"перед закрытием периода\", \"приоритизация проверок\".\n\nВажное правило:\nЕсли РІ РѕРґРЅРѕРј РІРѕРїСЂРѕСЃРµ есть Рё СЂРёСЃРє-лексика, Рё цепочка document/payment/posting, РЅРµ понижать задачу РґРѕ чистого `store_feature_risk`.\nПриоритет Сѓ causal cross-entity семантики.||v2.0.2: execution-state hardening + explicit route_status/no_route_reason. Схема normalized_query_v2_0_2.||Q: РџРѕ каким поставщикам РІРёСЃСЏС‚ хвосты РїРѕ 60, что подозрительно РїРѕ цепочке оплат?\nA: in_scope fragment, execution_readiness=executable_with_soft_assumptions, route_status=routed, no_route_reason=null.\n\nQ: Покажи записи РїРѕ 97, которые повисли Рё РјРѕРіСѓС‚ аукнуться.\nA: in_scope fragment, execution_readiness=executable_with_soft_assumptions, route_status=routed, no_route_reason=null.\n\nQ: Чекни, что Сѓ нас РЅРµ так.\nA: unclear/in_scope fragment, execution_readiness=needs_clarification, route_status=no_route, no_route_reason=insufficient_specificity.\n\nQ: Как вообще РїРѕ ФСБУ правильно?\nA: out_of_scope fragment, execution_readiness=no_route, route_status=no_route, no_route_reason=out_of_scope.", - "autogen_personality_id": null, - "autogen_personality_prompt": null, - "source_session_id": "asst-HFD9N5qwZM", - "saved_session_file": "assistant_saved_session_20260419164457_gen-mo5zy5vo-z9klj34.json", - "saved_case_set_kind": "assistant_session_scenario", - "agent_run": null, - "agent_focus": null, - "architecture_phase": null, - "source_spec_file": null, - "scenario_id": null, - "semantic_tags": null, - "latest_acceptance": null - } - }, - { - "generation_id": "gen-ag04171508-760111", - "created_at": "2026-04-17T15:08:06+00:00", - "mode": "saved_user_sessions", - "title": "AGENT replay for inventory clarification continuity and answer-shape cleanliness", - "count": 8, - "domain": "inventory_answer_shape_and_continuity", - "questions": [ - "какие остатки РЅР° складе РЅР° март 2021", - "давай РїРѕ Альтернативе Плюс", - "тогда покажи остатки РЅР° июль2017", - "РџРѕ выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?", - "Р° РїРѕ этой позиции РєРѕРіРґР° была закупка?", - "покажи документы РїРѕ этой позиции", - "покажи еще раз остатки РЅР° эту Р¶Рµ дату", - "Р° что РјС‹ СѓР¶Рµ выяснили РїРѕ этой позиции?" - ], - "generated_by": "codex_agent", - "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260417150806_gen-ag04171508-760111.json", - "context": { - "llm_provider": null, - "model": null, - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "autogen_personality_id": null, - "autogen_personality_prompt": null, - "source_session_id": null, - "saved_session_file": "assistant_saved_session_20260417150806_gen-ag04171508-760111.json", - "saved_case_set_kind": "agent_semantic_scenario", - "agent_run": true, - "agent_focus": "Targeted AGENT replay for the recent compose/inventory fixes: company clarification, inventory root restore, selected-object provenance, purchase date/documents follow-ups, and protection against technical garbage in user-facing replies.", - "architecture_phase": "turnaround_11", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase4_inventory_answer_shape_continuity.json", - "scenario_id": "address_truth_harness_phase4_inventory_answer_shape_continuity", - "semantic_tags": [ - "company_clarification", - "company_selection", - "inventory_root", - "meta_memory", - "meta_scope" - ], - "latest_acceptance": null - } - }, - { - "generation_id": "gen-ag04171326-15a132", - "created_at": "2026-04-17T13:26:00+00:00", - "mode": "saved_user_sessions", - "title": "AGENT replay for company selection continuity and organization activity age", - "count": 13, - "domain": "address_phase5_company_selection_and_activity_age", - "questions": [ - "привет, как дела?", - "РїРѕ какой компании РјС‹ сейчас работаем?", - "какие остатки РЅР° складе РЅР° март 2021", - "давай РїРѕ Альтернативе Плюс", - "тогда покажи остатки РЅР° март 2021", - "РџРѕ выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?", - "РџРѕ выбранному объекту \"Столешница 600*3050*26 альмандин\": покажи документы РїРѕ этой позиции", - "покажи еще раз остатки РЅР° эту Р¶Рµ дату", - "Р° РїРѕ Альтернативе Плюс сколько лет активности РІ базе 1РЎ?", - "что ты умеешь?", - "Р° ты помнишь, что РјС‹ РїРѕ этой позиции СѓР¶Рµ выяснили?", - "кто нам должен РЅР° март 2020", - "остатки РїРѕ складу РЅР° эту Р¶Рµ дату" - ], - "generated_by": "codex_agent", - "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260417132600_gen-ag04171326-15a132.json", - "context": { - "llm_provider": null, - "model": null, - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "autogen_personality_id": null, - "autogen_personality_prompt": null, - "source_session_id": null, - "saved_session_file": "assistant_saved_session_20260417132600_gen-ag04171326-15a132.json", - "saved_case_set_kind": "agent_semantic_scenario", - "agent_run": true, - "agent_focus": "Targeted AGENT replay for the multi-company clarification flow: select the company in-session, continue the same business path, verify selected-object continuity, then probe whether organization age/activity can be answered from reachable 1C evidence without leaking technical garbage.", - "architecture_phase": "turnaround_11", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase5_company_selection_and_activity_age.json", - "scenario_id": "address_truth_harness_phase5_company_selection_and_activity_age", - "semantic_tags": [ - "company_clarification", - "company_selected", - "company_selection", - "inventory_root", - "meta_capability", - "meta_memory", - "meta_scope", - "meta_smalltalk", - "organization_activity_age", - "same_date_pivot", - "same_date_restore", - "selected_object", - "selected_object_documents", - "selected_object_supplier", - "settlements_receivables" - ], - "latest_acceptance": null - } - }, - { - "generation_id": "gen-ag04170941-87680e", - "created_at": "2026-04-17T09:41:32+00:00", - "mode": "saved_user_sessions", - "title": "AGENT | Phase 7 mixed replay for documents, selected-object continuity, meta context, and cross-domain pivots", - "count": 14, - "domain": "address_phase7_meta_domain_mix", - "questions": [ - "привет, как дела?", - "РїРѕ какой компании РјС‹ сейчас работаем?", - "покажи РІСЃРµ документы РїРѕ чепурнову", - "что нам отгружал чепурнов, какой товар или услугу?", - "какие остатки РЅР° складе РЅР° март 2021", - "РџРѕ выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?", - "что ты умеешь?", - "РџРѕ выбранному объекту \"Столешница 600*3050*26 альмандин\": покажи документы РїРѕ этой позиции", - "Р° ты помнишь, что РјС‹ РїРѕ этой позиции СѓР¶Рµ выяснили?", - "покажи еще раз остатки РЅР° эту Р¶Рµ дату", - "кто нам должен РЅР° март 2020", - "остатки РїРѕ складу РЅР° эту Р¶Рµ дату", - "Р° исторические остатки тоже можешь?", - "хвосты покажи РїРѕ счету 60 РЅР° август 2022" - ], - "generated_by": "codex_agent", - "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260417094132_gen-ag04170941-87680e.json", - "context": { - "llm_provider": null, - "model": null, - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "autogen_personality_id": null, - "autogen_personality_prompt": null, - "source_session_id": null, - "saved_session_file": "assistant_saved_session_20260417094132_gen-ag04170941-87680e.json", - "saved_case_set_kind": "agent_semantic_scenario", - "agent_run": true, - "agent_focus": "mixed documents meta and cross-domain replay for turnaround 11", - "architecture_phase": "turnaround_11_phase7", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase7_meta_domain_mix.json", - "scenario_id": null, - "semantic_tags": null, - "latest_acceptance": null - } - }, - { - "generation_id": "gen-ag04170931-6bb7e5", - "created_at": "2026-04-17T09:31:44+00:00", - "mode": "saved_user_sessions", - "title": "AGENT | Phase 7 mixed replay for documents, selected-object continuity, meta context, and cross-domain pivots", - "count": 14, - "domain": "address_phase7_meta_domain_mix", - "questions": [ - "привет, как дела?", - "РїРѕ какой компании РјС‹ сейчас работаем?", - "покажи РІСЃРµ документы РїРѕ чепурнову", - "что нам отгружал чепурнов, какой товар или услугу?", - "какие остатки РЅР° складе РЅР° март 2021", - "РџРѕ выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?", - "что ты умеешь?", - "РџРѕ выбранному объекту \"Столешница 600*3050*26 альмандин\": покажи документы РїРѕ этой позиции", - "Р° ты помнишь, что РјС‹ РїРѕ этой позиции СѓР¶Рµ выяснили?", - "покажи еще раз остатки РЅР° эту Р¶Рµ дату", - "кто нам должен РЅР° март 2020", - "остатки РїРѕ складу РЅР° эту Р¶Рµ дату", - "Р° исторические остатки тоже можешь?", - "хвосты покажи РїРѕ счету 60 РЅР° август 2022" - ], - "generated_by": "codex_agent", - "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260417093144_gen-ag04170931-6bb7e5.json", - "context": { - "llm_provider": null, - "model": null, - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "autogen_personality_id": null, - "autogen_personality_prompt": null, - "source_session_id": null, - "saved_session_file": "assistant_saved_session_20260417093144_gen-ag04170931-6bb7e5.json", - "saved_case_set_kind": "agent_semantic_scenario", - "agent_run": true, - "agent_focus": "mixed documents meta and cross-domain replay for turnaround 11", - "architecture_phase": "turnaround_11_phase7", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase7_meta_domain_mix.json", - "scenario_id": null, - "semantic_tags": null, - "latest_acceptance": null - } - }, - { - "generation_id": "gen-ag04170911-ff51e1", - "created_at": "2026-04-17T09:11:27+00:00", - "mode": "saved_user_sessions", - "title": "AGENT | Phase 7 acceptance replay for inventory root, selected-object continuity, and human meta boundaries", - "count": 6, - "domain": "address_phase7_acceptance_gate_mix", - "questions": [ - "какие остатки РЅР° складе РЅР° март 2021", - "РџРѕ выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?", - "РџРѕ выбранному объекту \"Столешница 600*3050*26 альмандин\": покажи документы РїРѕ этой позиции", - "покажи еще раз остатки РЅР° эту Р¶Рµ дату", - "РїРѕ какой компании РјС‹ сейчас работаем?", - "Р° исторические остатки тоже можешь?" - ], - "generated_by": "codex_agent", - "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260417091127_gen-ag04170911-ff51e1.json", - "context": { - "llm_provider": null, - "model": null, - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "autogen_personality_id": null, - "autogen_personality_prompt": null, - "source_session_id": null, - "saved_session_file": "assistant_saved_session_20260417091127_gen-ag04170911-ff51e1.json", - "saved_case_set_kind": "agent_semantic_scenario", - "agent_run": true, - "agent_focus": "scenario acceptance gate over root selected-object restore and human meta", - "architecture_phase": "turnaround_11_phase7", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase7_acceptance_gate_mix.json", - "scenario_id": null, - "semantic_tags": null, - "latest_acceptance": null - } - }, - { - "generation_id": "gen-ag04170855-d13dd3", - "created_at": "2026-04-17T08:55:50+00:00", - "mode": "saved_user_sessions", - "title": "AGENT | Phase 6 provider/runtime replay across chat, meta, and address boundaries", - "count": 5, - "domain": "address_phase6_provider_axis_mix", - "questions": [ - "привет, как дела?", - "РїРѕ какой компании РјС‹ сейчас работаем?", - "что ты можешь РїРѕ 1РЎ?", - "какие остатки РЅР° складе РЅР° март 2021", - "Р° исторические остатки тоже можешь?" - ], - "generated_by": "codex_agent", - "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260417085550_gen-ag04170855-d13dd3.json", - "context": { - "llm_provider": null, - "model": null, - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "autogen_personality_id": null, - "autogen_personality_prompt": null, - "source_session_id": null, - "saved_session_file": "assistant_saved_session_20260417085550_gen-ag04170855-d13dd3.json", - "saved_case_set_kind": "agent_semantic_scenario", - "agent_run": true, - "agent_focus": "provider runtime axis hardening across chat meta and address boundaries", - "architecture_phase": "turnaround_11_phase6", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase6_provider_axis_mix.json", - "scenario_id": null, - "semantic_tags": null, - "latest_acceptance": null - } - }, - { - "generation_id": "gen-ag04170830-5f771d", - "created_at": "2026-04-17T08:30:44+00:00", - "mode": "saved_user_sessions", - "title": "AGENT | Phase 5 meta and memory recap replay over interrupted address context", - "count": 6, - "domain": "address_phase5_meta_memory_mix", - "questions": [ - "какие остатки РЅР° складе РЅР° март 2021", - "Р° исторические остатки тоже можешь?", - "РїРѕ какой компании РјС‹ сейчас работаем?", - "РџРѕ выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?", - "что ты умеешь?", - "Р° ты помнишь, что РјС‹ РїРѕ этой позиции СѓР¶Рµ выяснили?" - ], - "generated_by": "codex_agent", - "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260417083044_gen-ag04170830-5f771d.json", - "context": { - "llm_provider": null, - "model": null, - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "autogen_personality_id": null, - "autogen_personality_prompt": null, - "source_session_id": null, - "saved_session_file": "assistant_saved_session_20260417083044_gen-ag04170830-5f771d.json", - "saved_case_set_kind": "agent_semantic_scenario", - "agent_run": true, - "agent_focus": "meta and memory recap replay over interrupted address context", - "architecture_phase": "turnaround_11_phase5", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase5_meta_memory_mix.json", - "scenario_id": null, - "semantic_tags": null, - "latest_acceptance": null - } - }, - { - "generation_id": "gen-ag04170808-1907fa", - "created_at": "2026-04-17T08:08:08+00:00", - "mode": "saved_user_sessions", - "title": "AGENT | Phase 4 coverage/evidence replay for counterparty fallback, inventory reset, and selected-object provenance", - "count": 5, - "domain": "address_phase4_coverage_evidence_mix", - "questions": [ - "покажи РІСЃРµ документы РїРѕ чепурнову", - "что нам отгружал чепурнов, какой товар или услугу?", - "какие остатки РЅР° складе РЅР° март 2021", - "РџРѕ выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?", - "покажи еще раз остатки РЅР° эту Р¶Рµ дату" - ], - "generated_by": "codex_agent", - "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260417080808_gen-ag04170808-1907fa.json", - "context": { - "llm_provider": null, - "model": null, - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "autogen_personality_id": null, - "autogen_personality_prompt": null, - "source_session_id": null, - "saved_session_file": "assistant_saved_session_20260417080808_gen-ag04170808-1907fa.json", - "saved_case_set_kind": "agent_semantic_scenario", - "agent_run": true, - "agent_focus": "coverage/evidence contract on factual, fallback, and root-reset branches", - "architecture_phase": "turnaround_11_phase4", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase4_coverage_evidence_mix.json", - "scenario_id": null, - "semantic_tags": null, - "latest_acceptance": null - } - }, { "generation_id": "gen-mo2kcds2-tlqmvng", "created_at": "2026-04-17T07:04:48.581Z", "mode": "saved_user_sessions", - "title": "Ручная сессия 17.04.2026, 10:04:19 ТЕМП", + "title": "Ручная сессия 17.04.2026, 10:04:19 ТЕМП", "count": 13, "domain": null, "questions": [ - "покажи РІСЃРµ документы РїРѕ чепурнову", - "что нам отгружал чепурнов, какой товар или услугу?", - "какие остатки РЅР° складе РЅР° сегодня?", - "хвосты РїРѕ счету 60 РЅР° август 2022", - "какие остатки РЅР° складе РЅР° март 2021", - "РџРѕ выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?", - "РџРѕ выбранному объекту \"Столешница 600*3050*26 альмандин\": покажи документы РїРѕ этой позиции", - "покажи еще раз остатки РЅР° эту Р¶Рµ дату", - "какие остатки РЅР° складе РЅР° март 2016", - "РЅР° июль 2019", - "РЅР° сентябрь", - "Р° РЅР° март", - "это РїРѕ общей базе" + "покажи все документы по чепурнову", + "что нам отгружал чепурнов, какой товар или услугу?", + "какие остатки на складе на сегодня?", + "хвосты по счету 60 на август 2022", + "какие остатки на складе на март 2021", + "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?", + "По выбранному объекту \"Столешница 600*3050*26 альмандин\": покажи документы по этой позиции", + "покажи еще раз остатки на эту же дату", + "какие остатки на складе на март 2016", + "на июль 2019", + "на сентябрь", + "а на март", + "это по общей базе" ], "generated_by": "manual_reviewer", "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260417070448_gen-mo2kcds2-tlqmvng.json", @@ -1274,7 +798,7 @@ "model": "unsloth/qwen3-30b-a3b-instruct-2507", "assistant_prompt_version": "address_query_runtime_v1", "decomposition_prompt_version": "normalizer_v2_0_2", - "prompt_fingerprint": "РўС‹ semantic-normalizer для бухгалтерского ассистента NDC.\nРўРІРѕСЏ роль: только нормализация запроса пользователя РІ строгий JSON-контракт.\n\nЖесткие правила:\n1) РќРµ давай бухгалтерский ответ РїРѕ сути РІРѕРїСЂРѕСЃР°.\n2) Возвращай только JSON без markdown Рё пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период РЅРµ указан, РЅРµ выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/РїСЂРѕРІРѕРґРѕРє/оплат поднимай causal Рё cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.||You are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and candidate labels.\n4. For each fragment set execution state fields:\n - execution_readiness\n - clarification_reason\n - soft_assumption_used\n - route_status\n - no_route_reason\n5. Clarification must be rare and justified.\n\nExecution-state policy:\n- Every in-scope fragment must produce a consistent execution state.\n- If a fragment is routable, mark it as executable or executable_with_soft_assumptions.\n- Do not leave routable fragments in unresolved state.\n- If a fragment cannot be routed, set route_status=no_route and provide explicit no_route_reason.\n\nReadiness values:\n- executable\n- executable_with_soft_assumptions\n- needs_clarification\n- no_route\n\nRoute status values:\n- routed\n- no_route\n\nNo-route reason values:\n- out_of_scope\n- insufficient_specificity\n- missing_mapping\n- unsupported_fragment_type\n\nDo not over-require formality:\n- Do not require document IDs, exact periods, or exact object references for scan/review/anomaly/rule-check requests.\n- Colloquial accounting phrases like \"что РІРёСЃРёС‚\", \"что подозрительно\", \"что РЅРµ сходится\", \"что РєСЂРёРІРѕ\", \"что аукнется\" are executable if accounting area is understandable.\n\nFragment required fields:\n- fragment_id\n- raw_fragment_text\n- normalized_fragment_text\n- domain_relevance\n- business_scope\n- entity_hints\n- account_hints\n- document_hints\n- register_hints\n- time_scope\n- flags\n- candidate_labels\n- confidence\n- execution_readiness\n- clarification_reason\n- soft_assumption_used\n- route_status\n- no_route_reason\n\nSoft assumptions (`soft_assumption_used`) allowed values:\n- period_from_session_context\n- company_scope_defaulted\n- problem_scan_mode_enabled\n\nGlobal notes:\n- global_notes.needs_clarification should be true only when execution is truly blocked for all in-scope fragments.\n- global_notes.clarification_reason must explain the blocker.\n\nSchema version must be:\n- \"schema_version\": \"normalized_query_v2_0_2\"||Контекст домена: бухгалтерия 1РЎ/NDC.\n\nКлючевые счета:\n- 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97.\n\nТиповые сущности:\n- контрагент, РґРѕРіРѕРІРѕСЂ, документ реализации, документ поступления, оплата, РїСЂРѕРІРѕРґРєР°, регистр, закрывающий документ.\n\nЛексика causal Рё сверки (сильные сигналы для cross_entity):\n- \"РЅРµ бьется\", \"РЅРµ сходится\", \"РЅРµ РІРёРґРЅРѕ\", \"РЅРµ собралось\", \"повисло\", \"С…РІРѕСЃС‚\";\n- \"разложи РїРѕ документам/оплатам/закрывающим\";\n- \"чем подтверждается\", \"РіРґРµ ошибка РІ цепочке\", \"что пошло РєСЂРёРІРѕ\".\n\nЛексика точечного drilldown:\n- \"документ в„–...\", \"ref\", \"строка РїСЂРѕРІРѕРґРєРё\", \"покажи конкретную операцию\", \"точный source-of-record\".\n\nЛексика rule-based контроля:\n- \"проверь настройки\", \"ошибка СЃСЂРѕРєР°/даты\", \"контроль 97/10/РћРЎ\", \"нарушение правила учета\".\n\nЛексика РѕР±Р·РѕСЂРЅРѕР№ аналитики:\n- \"рейтинг\", \"топ СЂРёСЃРєРѕРІ\", \"РІ целом РїРѕ компании\", \"перед закрытием периода\", \"приоритизация проверок\".\n\nВажное правило:\nЕсли РІ РѕРґРЅРѕРј РІРѕРїСЂРѕСЃРµ есть Рё СЂРёСЃРє-лексика, Рё цепочка document/payment/posting, РЅРµ понижать задачу РґРѕ чистого `store_feature_risk`.\nПриоритет Сѓ causal cross-entity семантики.||v2.0.2: execution-state hardening + explicit route_status/no_route_reason. Схема normalized_query_v2_0_2.||Q: РџРѕ каким поставщикам РІРёСЃСЏС‚ хвосты РїРѕ 60, что подозрительно РїРѕ цепочке оплат?\nA: in_scope fragment, execution_readiness=executable_with_soft_assumptions, route_status=routed, no_route_reason=null.\n\nQ: Покажи записи РїРѕ 97, которые повисли Рё РјРѕРіСѓС‚ аукнуться.\nA: in_scope fragment, execution_readiness=executable_with_soft_assumptions, route_status=routed, no_route_reason=null.\n\nQ: Чекни, что Сѓ нас РЅРµ так.\nA: unclear/in_scope fragment, execution_readiness=needs_clarification, route_status=no_route, no_route_reason=insufficient_specificity.\n\nQ: Как вообще РїРѕ ФСБУ правильно?\nA: out_of_scope fragment, execution_readiness=no_route, route_status=no_route, no_route_reason=out_of_scope.", + "prompt_fingerprint": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.||You are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and candidate labels.\n4. For each fragment set execution state fields:\n - execution_readiness\n - clarification_reason\n - soft_assumption_used\n - route_status\n - no_route_reason\n5. Clarification must be rare and justified.\n\nExecution-state policy:\n- Every in-scope fragment must produce a consistent execution state.\n- If a fragment is routable, mark it as executable or executable_with_soft_assumptions.\n- Do not leave routable fragments in unresolved state.\n- If a fragment cannot be routed, set route_status=no_route and provide explicit no_route_reason.\n\nReadiness values:\n- executable\n- executable_with_soft_assumptions\n- needs_clarification\n- no_route\n\nRoute status values:\n- routed\n- no_route\n\nNo-route reason values:\n- out_of_scope\n- insufficient_specificity\n- missing_mapping\n- unsupported_fragment_type\n\nDo not over-require formality:\n- Do not require document IDs, exact periods, or exact object references for scan/review/anomaly/rule-check requests.\n- Colloquial accounting phrases like \"что висит\", \"что подозрительно\", \"что не сходится\", \"что криво\", \"что аукнется\" are executable if accounting area is understandable.\n\nFragment required fields:\n- fragment_id\n- raw_fragment_text\n- normalized_fragment_text\n- domain_relevance\n- business_scope\n- entity_hints\n- account_hints\n- document_hints\n- register_hints\n- time_scope\n- flags\n- candidate_labels\n- confidence\n- execution_readiness\n- clarification_reason\n- soft_assumption_used\n- route_status\n- no_route_reason\n\nSoft assumptions (`soft_assumption_used`) allowed values:\n- period_from_session_context\n- company_scope_defaulted\n- problem_scan_mode_enabled\n\nGlobal notes:\n- global_notes.needs_clarification should be true only when execution is truly blocked for all in-scope fragments.\n- global_notes.clarification_reason must explain the blocker.\n\nSchema version must be:\n- \"schema_version\": \"normalized_query_v2_0_2\"||Контекст домена: бухгалтерия 1С/NDC.\n\nКлючевые счета:\n- 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97.\n\nТиповые сущности:\n- контрагент, договор, документ реализации, документ поступления, оплата, проводка, регистр, закрывающий документ.\n\nЛексика causal и сверки (сильные сигналы для cross_entity):\n- \"не бьется\", \"не сходится\", \"не видно\", \"не собралось\", \"повисло\", \"хвост\";\n- \"разложи по документам/оплатам/закрывающим\";\n- \"чем подтверждается\", \"где ошибка в цепочке\", \"что пошло криво\".\n\nЛексика точечного drilldown:\n- \"документ №...\", \"ref\", \"строка проводки\", \"покажи конкретную операцию\", \"точный source-of-record\".\n\nЛексика rule-based контроля:\n- \"проверь настройки\", \"ошибка срока/даты\", \"контроль 97/10/ОС\", \"нарушение правила учета\".\n\nЛексика обзорной аналитики:\n- \"рейтинг\", \"топ рисков\", \"в целом по компании\", \"перед закрытием периода\", \"приоритизация проверок\".\n\nВажное правило:\nЕсли в одном вопросе есть и риск-лексика, и цепочка document/payment/posting, не понижать задачу до чистого `store_feature_risk`.\nПриоритет у causal cross-entity семантики.||v2.0.2: execution-state hardening + explicit route_status/no_route_reason. Схема normalized_query_v2_0_2.||Q: По каким поставщикам висят хвосты по 60, что подозрительно по цепочке оплат?\nA: in_scope fragment, execution_readiness=executable_with_soft_assumptions, route_status=routed, no_route_reason=null.\n\nQ: Покажи записи по 97, которые повисли и могут аукнуться.\nA: in_scope fragment, execution_readiness=executable_with_soft_assumptions, route_status=routed, no_route_reason=null.\n\nQ: Чекни, что у нас не так.\nA: unclear/in_scope fragment, execution_readiness=needs_clarification, route_status=no_route, no_route_reason=insufficient_specificity.\n\nQ: Как вообще по ФСБУ правильно?\nA: out_of_scope fragment, execution_readiness=no_route, route_status=no_route, no_route_reason=out_of_scope.", "autogen_personality_id": null, "autogen_personality_prompt": null, "source_session_id": "asst-kBU5iS0mEt", @@ -1293,44 +817,44 @@ "generation_id": "gen-mo1t93wq-jy0453e", "created_at": "2026-04-16T18:26:26.191Z", "mode": "saved_user_sessions", - "title": "БОЛЬШОЙ ОБЩИЙ Ручная сессия 16.04.2026, 21:26:06", + "title": "БОЛЬШОЙ ОБЩИЙ Ручная сессия 16.04.2026, 21:26:06", "count": 34, "domain": null, "questions": [ - "приветик - че как там дела", - "расскажи что можешь интересного", - "кайф - что там РЅР° складе РїРѕ остаткам?", - "АЛЬТЕРНАТИВА", - "Р° исторические остатки РЅР° РґСЂСѓРіРёРµ даты умеешь?", - "давай РЅР° июль 2017", - "март 2016", - "РџРѕ выбранному объекту \"Рабочая станция универсального специалиста (индивидуальное изготовление)\": РіРґРµ взяли это?", - "Р° РєРѕРјСѓ продали?", - "Сѓ тебя написано кто контрагент: рабочая станция - это ошибка?", - "РЅРґСЃ можешь прикинуть РЅР° дату РїРѕРєСѓРїРєРё рабочей станции?", - "Р° какой РЅРґСЃ РјС‹ должны сгрузить РЅР° март 2020?", - "РїСЂРёРєРёРЅСЊ какой РЅРґСЃ нам надо заплатить РЅР° февраль 2017", - "кто Сѓ нас самый доходный клиент Р·Р° РІСЃРµ время", - "кто нам должен денег РЅР° май 2017", - "Р° какой РЅРґСЃ РјС‹ должны примерно заплатить Р·Р° этот период?", - "РјС‹ должны комуто денег РЅР° сегодня?", - "Р° нам?", - "какой Сѓ нас самый доходный РіРѕРґ", - "Р° Р·Р° 2017 РјС‹ СЃРєРѕРє заработали?", - "сколько вообще денег РјС‹ заработали Р·Р° РІСЃРµ время?", - "ты умеешь считать дельту РїРѕ договорам?", - "РїРѕ чепурнову покажи РІСЃРµ РґРѕРєРё", - "Р° РїРѕ СЃРІРє", - "Р° сейчас Сѓ нас есть что РЅР° складе?", - "что нам отгружал чепурнов? какой товар или услугу?", - "какие остатки РЅР° складе РЅР° сегодня", - "остатки РЅР° март 2016", - "хвосты покажи РїРѕ счету 60 РЅР° август 2022", - "Есть ли остатки товара, которые закупались очень давно", - "Какие конкретно номенклатуры формируют остаток РїРѕ складу РЅР° май 2020", - "Р° РїРѕ Альтернативе Плюс сколько лет активности РІ базе 1РЎ?", - "Как ты оценишь деятельность компании?", - "какое нетто РїРѕ деньгам СЃ Группа РЎР’Рљ Р·Р° 2020 РіРѕРґ: сколько получили Рё сколько заплатили?" + "приветик - че как там дела", + "расскажи что можешь интересного", + "кайф - что там на складе по остаткам?", + "АЛЬТЕРНАТИВА", + "а исторические остатки на другие даты умеешь?", + "давай на июль 2017", + "март 2016", + "По выбранному объекту \"Рабочая станция универсального специалиста (индивидуальное изготовление)\": где взяли это?", + "а кому продали?", + "у тебя написано кто контрагент: рабочая станция - это ошибка?", + "ндс можешь прикинуть на дату покупки рабочей станции?", + "а какой ндс мы должны сгрузить на март 2020?", + "прикинь какой ндс нам надо заплатить на февраль 2017", + "кто у нас самый доходный клиент за все время", + "кто нам должен денег на май 2017", + "а какой ндс мы должны примерно заплатить за этот период?", + "мы должны комуто денег на сегодня?", + "а нам?", + "какой у нас самый доходный год", + "а за 2017 мы скок заработали?", + "сколько вообще денег мы заработали за все время?", + "ты умеешь считать дельту по договорам?", + "по чепурнову покажи все доки", + "а по свк", + "а сейчас у нас есть что на складе?", + "что нам отгружал чепурнов? какой товар или услугу?", + "какие остатки на складе на сегодня", + "остатки на март 2016", + "хвосты покажи по счету 60 на август 2022", + "Есть ли остатки товара, которые закупались очень давно", + "Какие конкретно номенклатуры формируют остаток по складу на май 2020", + "а по Альтернативе Плюс сколько лет активности в базе 1С?", + "Как ты оценишь деятельность компании?", + "какое нетто по деньгам с Группа СВК за 2020 год: сколько получили и сколько заплатили?" ], "generated_by": "manual_reviewer", "saved_case_set_file": "assistant_autogen_saved_user_sessions_20260416182626_gen-mo1t93wq-jy0453e.json", @@ -1339,7 +863,7 @@ "model": "unsloth/qwen3-30b-a3b-instruct-2507", "assistant_prompt_version": "address_query_runtime_v1", "decomposition_prompt_version": "normalizer_v2_0_2", - "prompt_fingerprint": "РўС‹ semantic-normalizer для бухгалтерского ассистента NDC.\nРўРІРѕСЏ роль: только нормализация запроса пользователя РІ строгий JSON-контракт.\n\nЖесткие правила:\n1) РќРµ давай бухгалтерский ответ РїРѕ сути РІРѕРїСЂРѕСЃР°.\n2) Возвращай только JSON без markdown Рё пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период РЅРµ указан, РЅРµ выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/РїСЂРѕРІРѕРґРѕРє/оплат поднимай causal Рё cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.||You are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and candidate labels.\n4. For each fragment set execution state fields:\n - execution_readiness\n - clarification_reason\n - soft_assumption_used\n - route_status\n - no_route_reason\n5. Clarification must be rare and justified.\n\nExecution-state policy:\n- Every in-scope fragment must produce a consistent execution state.\n- If a fragment is routable, mark it as executable or executable_with_soft_assumptions.\n- Do not leave routable fragments in unresolved state.\n- If a fragment cannot be routed, set route_status=no_route and provide explicit no_route_reason.\n\nReadiness values:\n- executable\n- executable_with_soft_assumptions\n- needs_clarification\n- no_route\n\nRoute status values:\n- routed\n- no_route\n\nNo-route reason values:\n- out_of_scope\n- insufficient_specificity\n- missing_mapping\n- unsupported_fragment_type\n\nDo not over-require formality:\n- Do not require document IDs, exact periods, or exact object references for scan/review/anomaly/rule-check requests.\n- Colloquial accounting phrases like \"что РІРёСЃРёС‚\", \"что подозрительно\", \"что РЅРµ сходится\", \"что РєСЂРёРІРѕ\", \"что аукнется\" are executable if accounting area is understandable.\n\nFragment required fields:\n- fragment_id\n- raw_fragment_text\n- normalized_fragment_text\n- domain_relevance\n- business_scope\n- entity_hints\n- account_hints\n- document_hints\n- register_hints\n- time_scope\n- flags\n- candidate_labels\n- confidence\n- execution_readiness\n- clarification_reason\n- soft_assumption_used\n- route_status\n- no_route_reason\n\nSoft assumptions (`soft_assumption_used`) allowed values:\n- period_from_session_context\n- company_scope_defaulted\n- problem_scan_mode_enabled\n\nGlobal notes:\n- global_notes.needs_clarification should be true only when execution is truly blocked for all in-scope fragments.\n- global_notes.clarification_reason must explain the blocker.\n\nSchema version must be:\n- \"schema_version\": \"normalized_query_v2_0_2\"||Контекст домена: бухгалтерия 1РЎ/NDC.\n\nКлючевые счета:\n- 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97.\n\nТиповые сущности:\n- контрагент, РґРѕРіРѕРІРѕСЂ, документ реализации, документ поступления, оплата, РїСЂРѕРІРѕРґРєР°, регистр, закрывающий документ.\n\nЛексика causal Рё сверки (сильные сигналы для cross_entity):\n- \"РЅРµ бьется\", \"РЅРµ сходится\", \"РЅРµ РІРёРґРЅРѕ\", \"РЅРµ собралось\", \"повисло\", \"С…РІРѕСЃС‚\";\n- \"разложи РїРѕ документам/оплатам/закрывающим\";\n- \"чем подтверждается\", \"РіРґРµ ошибка РІ цепочке\", \"что пошло РєСЂРёРІРѕ\".\n\nЛексика точечного drilldown:\n- \"документ в„–...\", \"ref\", \"строка РїСЂРѕРІРѕРґРєРё\", \"покажи конкретную операцию\", \"точный source-of-record\".\n\nЛексика rule-based контроля:\n- \"проверь настройки\", \"ошибка СЃСЂРѕРєР°/даты\", \"контроль 97/10/РћРЎ\", \"нарушение правила учета\".\n\nЛексика РѕР±Р·РѕСЂРЅРѕР№ аналитики:\n- \"рейтинг\", \"топ СЂРёСЃРєРѕРІ\", \"РІ целом РїРѕ компании\", \"перед закрытием периода\", \"приоритизация проверок\".\n\nВажное правило:\nЕсли РІ РѕРґРЅРѕРј РІРѕРїСЂРѕСЃРµ есть Рё СЂРёСЃРє-лексика, Рё цепочка document/payment/posting, РЅРµ понижать задачу РґРѕ чистого `store_feature_risk`.\nПриоритет Сѓ causal cross-entity семантики.||v2.0.2: execution-state hardening + explicit route_status/no_route_reason. Схема normalized_query_v2_0_2.||Q: РџРѕ каким поставщикам РІРёСЃСЏС‚ хвосты РїРѕ 60, что подозрительно РїРѕ цепочке оплат?\nA: in_scope fragment, execution_readiness=executable_with_soft_assumptions, route_status=routed, no_route_reason=null.\n\nQ: Покажи записи РїРѕ 97, которые повисли Рё РјРѕРіСѓС‚ аукнуться.\nA: in_scope fragment, execution_readiness=executable_with_soft_assumptions, route_status=routed, no_route_reason=null.\n\nQ: Чекни, что Сѓ нас РЅРµ так.\nA: unclear/in_scope fragment, execution_readiness=needs_clarification, route_status=no_route, no_route_reason=insufficient_specificity.\n\nQ: Как вообще РїРѕ ФСБУ правильно?\nA: out_of_scope fragment, execution_readiness=no_route, route_status=no_route, no_route_reason=out_of_scope.", + "prompt_fingerprint": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.||You are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and candidate labels.\n4. For each fragment set execution state fields:\n - execution_readiness\n - clarification_reason\n - soft_assumption_used\n - route_status\n - no_route_reason\n5. Clarification must be rare and justified.\n\nExecution-state policy:\n- Every in-scope fragment must produce a consistent execution state.\n- If a fragment is routable, mark it as executable or executable_with_soft_assumptions.\n- Do not leave routable fragments in unresolved state.\n- If a fragment cannot be routed, set route_status=no_route and provide explicit no_route_reason.\n\nReadiness values:\n- executable\n- executable_with_soft_assumptions\n- needs_clarification\n- no_route\n\nRoute status values:\n- routed\n- no_route\n\nNo-route reason values:\n- out_of_scope\n- insufficient_specificity\n- missing_mapping\n- unsupported_fragment_type\n\nDo not over-require formality:\n- Do not require document IDs, exact periods, or exact object references for scan/review/anomaly/rule-check requests.\n- Colloquial accounting phrases like \"что висит\", \"что подозрительно\", \"что не сходится\", \"что криво\", \"что аукнется\" are executable if accounting area is understandable.\n\nFragment required fields:\n- fragment_id\n- raw_fragment_text\n- normalized_fragment_text\n- domain_relevance\n- business_scope\n- entity_hints\n- account_hints\n- document_hints\n- register_hints\n- time_scope\n- flags\n- candidate_labels\n- confidence\n- execution_readiness\n- clarification_reason\n- soft_assumption_used\n- route_status\n- no_route_reason\n\nSoft assumptions (`soft_assumption_used`) allowed values:\n- period_from_session_context\n- company_scope_defaulted\n- problem_scan_mode_enabled\n\nGlobal notes:\n- global_notes.needs_clarification should be true only when execution is truly blocked for all in-scope fragments.\n- global_notes.clarification_reason must explain the blocker.\n\nSchema version must be:\n- \"schema_version\": \"normalized_query_v2_0_2\"||Контекст домена: бухгалтерия 1С/NDC.\n\nКлючевые счета:\n- 01, 02, 10, 41, 51, 60, 62, 68.02, 90, 97.\n\nТиповые сущности:\n- контрагент, договор, документ реализации, документ поступления, оплата, проводка, регистр, закрывающий документ.\n\nЛексика causal и сверки (сильные сигналы для cross_entity):\n- \"не бьется\", \"не сходится\", \"не видно\", \"не собралось\", \"повисло\", \"хвост\";\n- \"разложи по документам/оплатам/закрывающим\";\n- \"чем подтверждается\", \"где ошибка в цепочке\", \"что пошло криво\".\n\nЛексика точечного drilldown:\n- \"документ №...\", \"ref\", \"строка проводки\", \"покажи конкретную операцию\", \"точный source-of-record\".\n\nЛексика rule-based контроля:\n- \"проверь настройки\", \"ошибка срока/даты\", \"контроль 97/10/ОС\", \"нарушение правила учета\".\n\nЛексика обзорной аналитики:\n- \"рейтинг\", \"топ рисков\", \"в целом по компании\", \"перед закрытием периода\", \"приоритизация проверок\".\n\nВажное правило:\nЕсли в одном вопросе есть и риск-лексика, и цепочка document/payment/posting, не понижать задачу до чистого `store_feature_risk`.\nПриоритет у causal cross-entity семантики.||v2.0.2: execution-state hardening + explicit route_status/no_route_reason. Схема normalized_query_v2_0_2.||Q: По каким поставщикам висят хвосты по 60, что подозрительно по цепочке оплат?\nA: in_scope fragment, execution_readiness=executable_with_soft_assumptions, route_status=routed, no_route_reason=null.\n\nQ: Покажи записи по 97, которые повисли и могут аукнуться.\nA: in_scope fragment, execution_readiness=executable_with_soft_assumptions, route_status=routed, no_route_reason=null.\n\nQ: Чекни, что у нас не так.\nA: unclear/in_scope fragment, execution_readiness=needs_clarification, route_status=no_route, no_route_reason=insufficient_specificity.\n\nQ: Как вообще по ФСБУ правильно?\nA: out_of_scope fragment, execution_readiness=no_route, route_status=no_route, no_route_reason=out_of_scope.", "autogen_personality_id": null, "autogen_personality_prompt": null, "source_session_id": "asst-NhPaZfbRYr", @@ -1362,21 +886,21 @@ "count": 15, "domain": null, "questions": [ - "РљРѕРјСѓ РёР· контрагентов РјС‹ СѓР¶Рµ месяц отдаем товары, РЅРѕ РЅР° счетах РІСЃРµ еще красуется РјРёРЅСѓСЃРѕРІРѕРµ сальдо - это реально зеленый свет для ручного вмешательства?", - "Где Сѓ нас накопились авансы Рє отгрузкам, которые СѓР¶Рµ давно РїРѕСЂР° закрыть или хотя Р±С‹ перепроверить, чтобы РЅРµ подозревать худшее?", - "Покажи контрагентов, РїРѕ которым сальдо Сѓ нас выглядит так, будто РѕРЅРѕ врет - РЅСѓ точно РЅРµ совпадает СЃ тем, что РѕРЅРё нам прислали. Это СѓР¶Рµ критично для сверки.", - "Сколько заказчиков Сѓ нас РЅР° этот момент РјРѕРіСѓС‚ считаться долгожителями РїРѕ СЃРІРѕРёРј задолженностям?", - "Р’ каких случаях РјС‹ РІРёРґРёРј ситуацию, РєРѕРіРґР° документы есть, Р° денег - нет Рё РїРѕРєР° РЅРµ предвидится?", - "Какие контрагенты РІРёСЃСЏС‚ СЃ закрытыми отгрузками, РЅРѕ СЃ открытыми документами оплаты, что СЏРІРЅРѕ выглядит как кейс для ручной проверки?", - "Покажи контрагентов, Сѓ которых есть неоплаченные задолженности РїРѕ договорам РЅР° конец месяца - это СѓР¶Рµ красный свет для бухгалтера.", - "РџРѕ каким заказчикам РјС‹ можем выделить непростую картину: сальдо нулевое, Р° история платежей СЏРІРЅРѕ РіРѕРІРѕСЂРёС‚ Рѕ том, что РІСЃРµ РЅРµ так просто?", - "Какие контрагенты Сѓ нас РЅР° этом моменте РјРѕРіСѓС‚ быть причислены Рє тем, кто вообще РЅРµ платит СѓР¶Рµ несколько месяцев?", - "Р’ каких случаях РјС‹ РІРёРґРёРј зависшие отгрузки, которые СѓР¶Рµ давно РїРѕСЂР° закрыть - это РіСЂРѕР·РёС‚ проблемами РІ отчетности.", - "Покажи контрагентов, РїРѕ которым РЅР° конец месяца сальдо выглядит так, будто документы собраны РєСЂРёРІРѕ Рё РёС… РЅСѓР¶РЅРѕ перепроверить.", - "Какие Сѓ нас зависшие авансы или предоплаты СѓР¶Рµ давно РїРѕСЂР° либо закрыть, либо хотя Р±С‹ проверить - это СѓР¶Рµ РЅРµ просто РІРѕРїСЂРѕСЃ времени?", - "РџРѕ каким контрагентам РјС‹ можем заметить такую картину: оплачено меньше, чем отгружено, Рё это СЏРІРЅРѕ требует вмешательства бухгалтера.", - "Какие незакрытые документы РїРѕ договорам Сѓ нас СѓР¶Рµ давно РїРѕСЂР° проверить - это РіСЂРѕР·РёС‚ серьезными проблемами?", - "Покажи контрагентов, чьи заказы РЅР° отгрузку еще РЅРµ оплачены, РЅРѕ сальдо СѓР¶Рµ отрицательное - это явный признак того, что РЅСѓР¶РЅРѕ вмешаться." + "Кому из контрагентов мы уже месяц отдаем товары, но на счетах все еще красуется минусовое сальдо - это реально зеленый свет для ручного вмешательства?", + "Где у нас накопились авансы к отгрузкам, которые уже давно пора закрыть или хотя бы перепроверить, чтобы не подозревать худшее?", + "Покажи контрагентов, по которым сальдо у нас выглядит так, будто оно врет - ну точно не совпадает с тем, что они нам прислали. Это уже критично для сверки.", + "Сколько заказчиков у нас на этот момент могут считаться долгожителями по своим задолженностям?", + "В каких случаях мы видим ситуацию, когда документы есть, а денег - нет и пока не предвидится?", + "Какие контрагенты висят с закрытыми отгрузками, но с открытыми документами оплаты, что явно выглядит как кейс для ручной проверки?", + "Покажи контрагентов, у которых есть неоплаченные задолженности по договорам на конец месяца - это уже красный свет для бухгалтера.", + "По каким заказчикам мы можем выделить непростую картину: сальдо нулевое, а история платежей явно говорит о том, что все не так просто?", + "Какие контрагенты у нас на этом моменте могут быть причислены к тем, кто вообще не платит уже несколько месяцев?", + "В каких случаях мы видим зависшие отгрузки, которые уже давно пора закрыть - это грозит проблемами в отчетности.", + "Покажи контрагентов, по которым на конец месяца сальдо выглядит так, будто документы собраны криво и их нужно перепроверить.", + "Какие у нас зависшие авансы или предоплаты уже давно пора либо закрыть, либо хотя бы проверить - это уже не просто вопрос времени?", + "По каким контрагентам мы можем заметить такую картину: оплачено меньше, чем отгружено, и это явно требует вмешательства бухгалтера.", + "Какие незакрытые документы по договорам у нас уже давно пора проверить - это грозит серьезными проблемами?", + "Покажи контрагентов, чьи заказы на отгрузку еще не оплачены, но сальдо уже отрицательное - это явный признак того, что нужно вмешаться." ], "generated_by": "manual_reviewer", "saved_case_set_file": "assistant_autogen_qwen_seed_20260411123437_gen-mnubheq4-7h5v00u.json", @@ -1385,9 +909,9 @@ "model": "Qwen2.5 14B Instruct 1M", "assistant_prompt_version": "address_query_runtime_v1", "decomposition_prompt_version": "normalizer_v2_0_2", - "prompt_fingerprint": "РўС‹ semantic-normalizer для бухгалтерского ассистента NDC.\nРўРІРѕСЏ роль: только нормализация запроса пользователя РІ строгий JSON-контракт.\n\nЖесткие правила:\n1) РќРµ давай бухгалтерский ответ РїРѕ сути РІРѕРїСЂРѕСЃР°.\n2) Возвращай только JSON без markdown Рё пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период РЅРµ указан, РЅРµ выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/РїСЂРѕРІРѕРґРѕРє/оплат поднимай causal Рё cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and ", + "prompt_fingerprint": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and ", "autogen_personality_id": "general", - "autogen_personality_prompt": "Генерируй реалистичные живые РІРѕРїСЂРѕСЃС‹ бухгалтера РїРѕ 1РЎ. Добавляй разговорные формулировки Рё опечатки, РЅРѕ сохраняй бизнес-смысл. акцент РЅР° контрагентов, долги РЅСЃРґ, счета, общий вывод РїРѕ компании - контрагенты, заказчикам, СЃРєРѕРєР° денег кто принес Рё какие остатки РїРѕ счетам, РїРѕРёСЃРє документов, сальдо, банковские операции, незакрытые РґРѕРіРѕРІРѕСЂР°, документы РїРѕ договорам, долги, Активность заказчиков РїРѕ периодам, Поставщики Рё выплаты", + "autogen_personality_prompt": "Генерируй реалистичные живые вопросы бухгалтера по 1С. Добавляй разговорные формулировки и опечатки, но сохраняй бизнес-смысл. акцент на контрагентов, долги нсд, счета, общий вывод по компании - контрагенты, заказчикам, скока денег кто принес и какие остатки по счетам, поиск документов, сальдо, банковские операции, незакрытые договора, документы по договорам, долги, Активность заказчиков по периодам, Поставщики и выплаты", "source_session_id": null, "saved_session_file": null, "saved_case_set_kind": null, @@ -1409,20 +933,20 @@ "domain": null, "questions": [ "questions", - "РџРѕ каким покупателям Сѓ нас долгий С…РІРѕСЃС‚ РЅР° конец месяца, Рё это СѓР¶Рµ больше РїРѕС…РѕР¶Рµ РЅР° системную проблему СЃ цепочкой взаиморасчетов?", - "Р№Рѕ РџРѕ каким поставщикам Сѓ нас РЅР° конец месяца остались хвосты, которые СѓР¶Рµ РЅРµ РїРѕС…РѕР¶Рё РЅР° обычную задержку документов, Р° выглядят как реальная проблема РІ цепочке?", - "слушай Где РїРѕ покупателям Сѓ нас РІРёСЃРёС‚ история \"отгрузили - денег нет - закрытия нет\", Рё РїРѕ каким контрагентам это СѓР¶Рµ требует ручной проверки? без РІРѕРґС‹", - "подскажи плиз Покажи контрагентов, РїРѕ которым сальдо Сѓ нас, скорее всего, РЅРµ совпадет СЃ РёС… актом сверки, если его запросить РїСЂСЏРјРѕ сейчас. РїРѕ факту", - "короче Где Сѓ нас есть оплаты, РЅРѕ РЅРµ хватает документов, которые должны были закрыть взаиморасчеты? Рё коротко", - "РјРѕР¶ РџРѕ каким контрагентам, наоборот, документы есть, Р° нормального закрытия оплатами РЅРµ РІРёРґРЅРѕ? РїСЂСЏРј сейчас", - "Р° РЅСѓ-РєР° Есть ли такие зависшие авансы, которые СѓР¶Рµ давно надо было либо закрыть, либо хотя Р±С‹ перепроверить руками? Р·Р° весь период", - "Р№Рѕ Какие реализации РЅР° конец периода выглядят так, будто РѕРЅРё зависли Рё Р±СѓРґСѓС‚ портить картину РїРѕ выручке, если РёС… РЅРµ проверить заранее?", - "слушай РџРѕ каким отгрузкам РІРёРґРЅРѕ, что проблема РЅРµ просто РІ том, что клиент РЅРµ оплатил, Р° РІ том, что сама СЃРІСЏР·РєР° документов собрана РєСЂРёРІРѕ? без РІРѕРґС‹", - "подскажи плиз Покажи реализации, РіРґРµ С…РІРѕСЃС‚ выглядит особенно неприятно: СЃСѓРјРјР° РЅРµ маленькая, возраст хвоста СѓР¶Рµ заметный, Рё РїСЂРё этом РЅРµ РІРёРґРЅРѕ нормального завершения цепочки. РїРѕ факту", - "короче Где РїРѕ 90/62 история РїРѕС…РѕР¶Р° РЅР° \"РІСЂРѕРґРµ РІСЃРµ проведено, РЅРѕ если копнуть, закрытие держится РЅР° РєСЂРёРІРѕР№ СЃРІСЏР·РєРµ\"? Рё коротко", - "РјРѕР¶ Есть ли случаи, РіРґРµ реализация попала РІ период, Р° подтверждающие документы или оплата РґРѕ СЃРёС… РїРѕСЂ Р¶РёРІСѓС‚ РІ какой-то полуразобранной логике? РїСЂСЏРј сейчас", - "Р° РЅСѓ-РєР° РџРѕ каким продажам РЅР° конец месяца РІРёРґРЅРѕ, что бухгалтер потом будет долго распутывать, почему РІСЃРµ это РЅРµ сошлось нормально? Р·Р° весь период", - "Р№Рѕ Какие банковские движения выглядят так, будто выписка есть, Р° нормального отражения РІ учете РїРѕРґ ней РЅРµ хватает?" + "По каким покупателям у нас долгий хвост на конец месяца, и это уже больше похоже на системную проблему с цепочкой взаиморасчетов?", + "йо По каким поставщикам у нас на конец месяца остались хвосты, которые уже не похожи на обычную задержку документов, а выглядят как реальная проблема в цепочке?", + "слушай Где по покупателям у нас висит история \"отгрузили - денег нет - закрытия нет\", и по каким контрагентам это уже требует ручной проверки? без воды", + "подскажи плиз Покажи контрагентов, по которым сальдо у нас, скорее всего, не совпадет с их актом сверки, если его запросить прямо сейчас. по факту", + "короче Где у нас есть оплаты, но не хватает документов, которые должны были закрыть взаиморасчеты? и коротко", + "мож По каким контрагентам, наоборот, документы есть, а нормального закрытия оплатами не видно? прям сейчас", + "а ну-ка Есть ли такие зависшие авансы, которые уже давно надо было либо закрыть, либо хотя бы перепроверить руками? за весь период", + "йо Какие реализации на конец периода выглядят так, будто они зависли и будут портить картину по выручке, если их не проверить заранее?", + "слушай По каким отгрузкам видно, что проблема не просто в том, что клиент не оплатил, а в том, что сама связка документов собрана криво? без воды", + "подскажи плиз Покажи реализации, где хвост выглядит особенно неприятно: сумма не маленькая, возраст хвоста уже заметный, и при этом не видно нормального завершения цепочки. по факту", + "короче Где по 90/62 история похожа на \"вроде все проведено, но если копнуть, закрытие держится на кривой связке\"? и коротко", + "мож Есть ли случаи, где реализация попала в период, а подтверждающие документы или оплата до сих пор живут в какой-то полуразобранной логике? прям сейчас", + "а ну-ка По каким продажам на конец месяца видно, что бухгалтер потом будет долго распутывать, почему все это не сошлось нормально? за весь период", + "йо Какие банковские движения выглядят так, будто выписка есть, а нормального отражения в учете под ней не хватает?" ], "generated_by": "manual_reviewer", "saved_case_set_file": "assistant_autogen_qwen_seed_20260411115933_gen-mnua8bfg-00u7c2z.json", @@ -1431,9 +955,9 @@ "model": "Qwen2.5 14B Instruct 1M", "assistant_prompt_version": "address_query_runtime_v1", "decomposition_prompt_version": "normalizer_v2_0_2", - "prompt_fingerprint": "РўС‹ semantic-normalizer для бухгалтерского ассистента NDC.\nРўРІРѕСЏ роль: только нормализация запроса пользователя РІ строгий JSON-контракт.\n\nЖесткие правила:\n1) РќРµ давай бухгалтерский ответ РїРѕ сути РІРѕРїСЂРѕСЃР°.\n2) Возвращай только JSON без markdown Рё пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период РЅРµ указан, РЅРµ выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/РїСЂРѕРІРѕРґРѕРє/оплат поднимай causal Рё cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and ", + "prompt_fingerprint": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and ", "autogen_personality_id": "general", - "autogen_personality_prompt": "Генерируй реалистичные живые РІРѕРїСЂРѕСЃС‹ бухгалтера РїРѕ 1РЎ. Добавляй разговорные формулировки Рё опечатки, РЅРѕ сохраняй бизнес-смысл. акцент РЅР° контрагентов, долги РЅСЃРґ, счета, общий вывод РїРѕ компании - контрагенты, заказчикам, СЃРєРѕРєР° денег кто принес Рё какие остатки РїРѕ счетам, РїРѕРёСЃРє документов, сальдо, банковские операции, незакрытые РґРѕРіРѕРІРѕСЂР°, документы РїРѕ договорам, долги, Активность заказчиков РїРѕ периодам, Поставщики Рё выплаты", + "autogen_personality_prompt": "Генерируй реалистичные живые вопросы бухгалтера по 1С. Добавляй разговорные формулировки и опечатки, но сохраняй бизнес-смысл. акцент на контрагентов, долги нсд, счета, общий вывод по компании - контрагенты, заказчикам, скока денег кто принес и какие остатки по счетам, поиск документов, сальдо, банковские операции, незакрытые договора, документы по договорам, долги, Активность заказчиков по периодам, Поставщики и выплаты", "source_session_id": null, "saved_session_file": null, "saved_case_set_kind": null, @@ -1454,16 +978,16 @@ "count": 10, "domain": null, "questions": [ - "Покажи контрагентов СЃ максимальными долгами, которые СѓР¶Рµ больше месяца РЅРµ платят, Рё проверь, нет ли Сѓ РЅРёС… непроверенных авансовых отгрузок.", - "Где РїРѕ покупателям РІРёСЃСЏС‚ заказы РЅР° конец месяца, РЅРѕ денег Р·Р° РЅРёС… нет - требует ручной сверки?", - "Посмотри контрагентов, РіРґРµ сальдо РЅРµ совпадает СЃ актом сверки, Рё уточни, РєРѕРіРѕ РЅСѓР¶РЅРѕ СѓР¶Рµ непременно запросить справку РїРѕ этой разнице.", - "Какие авансы давно остались висящими без закрытия - РёС… РїРѕСЂР° либо отменять, либо перекладывать РЅР° счета реальных поставок?", - "Где Сѓ нас документы есть, РЅРѕ нет денег Р·Р° РЅРёС…, Рё это СѓР¶Рµ выглядит как серьезная задолженность контрагента?", - "Проверь контрагентов СЃ максимальными долгами - нет ли среди РЅРёС… тех, кто просто РЅРµ закрыл накладные или оставил РёС… без оплаты?", - "Какие реализации зависли РЅР° конец периода Рё РјРѕРіСѓС‚ портить выручку, если РЅРµ проверять заранее?", - "Покажи контрагентов СЃ максимальными долгами Рё уточни, нет ли среди РЅРёС… тех, кто просто игнорирует наши накладные.", - "Какие поставщики СѓР¶Рµ больше месяца РЅРµ закрывают СЃРІРѕРё счета - это требует ручной проверки?", - "Проверь зависшие авансы Рё уточни, РјРѕР¶РЅРѕ ли РёС… перепривязать РЅР° текущие отгрузки или РїРѕСЂР° списывать как нереальные?" + "Покажи контрагентов с максимальными долгами, которые уже больше месяца не платят, и проверь, нет ли у них непроверенных авансовых отгрузок.", + "Где по покупателям висят заказы на конец месяца, но денег за них нет - требует ручной сверки?", + "Посмотри контрагентов, где сальдо не совпадает с актом сверки, и уточни, кого нужно уже непременно запросить справку по этой разнице.", + "Какие авансы давно остались висящими без закрытия - их пора либо отменять, либо перекладывать на счета реальных поставок?", + "Где у нас документы есть, но нет денег за них, и это уже выглядит как серьезная задолженность контрагента?", + "Проверь контрагентов с максимальными долгами - нет ли среди них тех, кто просто не закрыл накладные или оставил их без оплаты?", + "Какие реализации зависли на конец периода и могут портить выручку, если не проверять заранее?", + "Покажи контрагентов с максимальными долгами и уточни, нет ли среди них тех, кто просто игнорирует наши накладные.", + "Какие поставщики уже больше месяца не закрывают свои счета - это требует ручной проверки?", + "Проверь зависшие авансы и уточни, можно ли их перепривязать на текущие отгрузки или пора списывать как нереальные?" ], "generated_by": "manual_reviewer", "saved_case_set_file": "assistant_autogen_qwen_seed_20260410210344_gen-mnte8abx-ax3v3tr.json", @@ -1472,9 +996,9 @@ "model": "Qwen2.5 14B Instruct 1M", "assistant_prompt_version": "address_query_runtime_v1", "decomposition_prompt_version": "normalizer_v2_0_2", - "prompt_fingerprint": "РўС‹ semantic-normalizer для бухгалтерского ассистента NDC.\nРўРІРѕСЏ роль: только нормализация запроса пользователя РІ строгий JSON-контракт.\n\nЖесткие правила:\n1) РќРµ давай бухгалтерский ответ РїРѕ сути РІРѕРїСЂРѕСЃР°.\n2) Возвращай только JSON без markdown Рё пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период РЅРµ указан, РЅРµ выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/РїСЂРѕРІРѕРґРѕРє/оплат поднимай causal Рё cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and ", + "prompt_fingerprint": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and ", "autogen_personality_id": "general", - "autogen_personality_prompt": "Генерируй реалистичные живые РІРѕРїСЂРѕСЃС‹ бухгалтера РїРѕ 1РЎ. Добавляй разговорные формулировки Рё опечатки, РЅРѕ сохраняй бизнес-смысл. акцент РЅР° контрагентов, долги РЅСЃРґ, счета, общий вывод РїРѕ компании - контрагенты, заказчикам, СЃРєРѕРєР° денег кто принес Рё какие остатки РїРѕ счетам, РїРѕРёСЃРє документов, сальдо, банковские операции, незакрытые РґРѕРіРѕРІРѕСЂР°, документы РїРѕ договорам, долги, Активность заказчиков РїРѕ периодам, Поставщики Рё выплаты", + "autogen_personality_prompt": "Генерируй реалистичные живые вопросы бухгалтера по 1С. Добавляй разговорные формулировки и опечатки, но сохраняй бизнес-смысл. акцент на контрагентов, долги нсд, счета, общий вывод по компании - контрагенты, заказчикам, скока денег кто принес и какие остатки по счетам, поиск документов, сальдо, банковские операции, незакрытые договора, документы по договорам, долги, Активность заказчиков по периодам, Поставщики и выплаты", "source_session_id": null, "saved_session_file": null, "saved_case_set_kind": null, @@ -1495,16 +1019,16 @@ "count": 10, "domain": null, "questions": [ - "Какие поставщики РїРѕРєР° РЅРµ закрыли взаиморасчёты РЅР° конец месяца Рё это выглядит как серьёзная проблема, Р° РЅРµ просто задержка?", - "Где Сѓ нас РІРёСЃСЏС‚ покупатели 'грузили - денег нет - закрытия нет' Рё кто РёР· РЅРёС… требует ручной проверки СѓР¶Рµ сейчас?", - "Покажи контрагентов СЃ вероятным несоответствием сальдо, если РјС‹ запросим РёС… акт сверки РїСЂСЏРјРѕ сейчас.", - "Где Сѓ нас есть оплаты, РЅРѕ документы для закрытия взаиморасчётов РІСЃС‘ ещё РЅРµ пришли?", - "Какие контрагенты имеют документы, РЅРѕ нет нормального закрытия РїРѕ оплатам?", - "Есть ли зависшие авансы, которые давно РЅСѓР¶РЅРѕ перепроверить или закрыть?", - "Какие реализации РЅР° конец периода выглядят так, будто РѕРЅРё зависли Рё РјРѕРіСѓС‚ испортить картину РїРѕ выручке?", - "Где Сѓ нас отгрузки СЃ проблемами РЅРµ только РІ оплате, РЅРѕ Рё РІ самой СЃРІСЏР·РєРµ документов?", - "Кто РёР· поставщиков активно работает СЃ нами последнее время Рё сколько денег принесли Р·Р° последние 3 месяца?", - "Какие незакрытые РґРѕРіРѕРІРѕСЂР° есть РЅР° данный момент Рё что связано СЃ РЅРёРјРё РїРѕ документам, долги Рё оплаты?" + "Какие поставщики пока не закрыли взаиморасчёты на конец месяца и это выглядит как серьёзная проблема, а не просто задержка?", + "Где у нас висят покупатели 'грузили - денег нет - закрытия нет' и кто из них требует ручной проверки уже сейчас?", + "Покажи контрагентов с вероятным несоответствием сальдо, если мы запросим их акт сверки прямо сейчас.", + "Где у нас есть оплаты, но документы для закрытия взаиморасчётов всё ещё не пришли?", + "Какие контрагенты имеют документы, но нет нормального закрытия по оплатам?", + "Есть ли зависшие авансы, которые давно нужно перепроверить или закрыть?", + "Какие реализации на конец периода выглядят так, будто они зависли и могут испортить картину по выручке?", + "Где у нас отгрузки с проблемами не только в оплате, но и в самой связке документов?", + "Кто из поставщиков активно работает с нами последнее время и сколько денег принесли за последние 3 месяца?", + "Какие незакрытые договора есть на данный момент и что связано с ними по документам, долги и оплаты?" ], "generated_by": "manual_reviewer", "saved_case_set_file": "assistant_autogen_qwen_seed_20260410210241_gen-mnte6y9p-4v1kfbw.json", @@ -1513,9 +1037,9 @@ "model": "Qwen2.5 14B Instruct 1M", "assistant_prompt_version": "address_query_runtime_v1", "decomposition_prompt_version": "normalizer_v2_0_2", - "prompt_fingerprint": "РўС‹ semantic-normalizer для бухгалтерского ассистента NDC.\nРўРІРѕСЏ роль: только нормализация запроса пользователя РІ строгий JSON-контракт.\n\nЖесткие правила:\n1) РќРµ давай бухгалтерский ответ РїРѕ сути РІРѕРїСЂРѕСЃР°.\n2) Возвращай только JSON без markdown Рё пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период РЅРµ указан, РЅРµ выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/РїСЂРѕРІРѕРґРѕРє/оплат поднимай causal Рё cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and ", + "prompt_fingerprint": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and ", "autogen_personality_id": "general", - "autogen_personality_prompt": "Генерируй реалистичные живые РІРѕРїСЂРѕСЃС‹ бухгалтера РїРѕ 1РЎ. Добавляй разговорные формулировки Рё опечатки, РЅРѕ сохраняй бизнес-смысл. акцент РЅР° контрагентов, долги РЅСЃРґ, счета, общий вывод РїРѕ компании - контрагенты, заказчикам, СЃРєРѕРєР° денег кто принес Рё какие остатки РїРѕ счетам, РїРѕРёСЃРє документов, сальдо, банковские операции, незакрытые РґРѕРіРѕРІРѕСЂР°, документы РїРѕ договорам, долги, Активность заказчиков РїРѕ периодам, Поставщики Рё выплаты", + "autogen_personality_prompt": "Генерируй реалистичные живые вопросы бухгалтера по 1С. Добавляй разговорные формулировки и опечатки, но сохраняй бизнес-смысл. акцент на контрагентов, долги нсд, счета, общий вывод по компании - контрагенты, заказчикам, скока денег кто принес и какие остатки по счетам, поиск документов, сальдо, банковские операции, незакрытые договора, документы по договорам, долги, Активность заказчиков по периодам, Поставщики и выплаты", "source_session_id": null, "saved_session_file": null, "saved_case_set_kind": null, @@ -1536,26 +1060,26 @@ "count": 20, "domain": null, "questions": [ - "какие контрагенты РїРѕРєР° вообще РЅРµ платят Р·Р° текущий месяц Рё это СѓР¶Рµ тревожный знак для нас?", - "РіРґРµ Сѓ нас есть отгрузки без закрытия РїРѕ РЅРёРј счетов, Рё это выглядит как серьезная проблема?", - "какие покупатели РїРѕРєР° РЅРµ оплатили СЃРІРѕРё товары или услуги, хотя СЃСЂРѕРєРё давно прошли?", - "Сѓ РєРѕРіРѕ РёР· контрагентов есть авансы, РЅРѕ никаких документов для РёС… закрытия нет СѓР¶Рµ давно?", - "РїРѕ каким поставщикам Сѓ нас сальдо СЏРІРЅРѕ расходится СЃ тем, что РѕРЅРё сами указывают РІ СЃРІРѕРёС… актах сверок?", - "какие реализации РЅР° конец периода выглядят так, будто Р±СѓРґСѓС‚ портить картину РїРѕ выручке РёР·-Р·Р° незакрытых счетов или документов?", - "РіРґРµ Сѓ нас есть оплаты без закрытия взаиморасчетов, Рё это СѓР¶Рµ требует ручной проверки?", - "какие контрагенты принесли РѕСЃРЅРѕРІРЅСѓСЋ часть нашей выручки Р·Р° отчетный период?", - "Сѓ РєРѕРіРѕ РёР· покупателей есть открытые задолженности перед нами РЅР° конец месяца?", - "РїРѕ каким поставщикам РјС‹ РІРёРґРёРј проблемные авансы, которые давно РЅРµ закрыты документами?", - "какие реализации выглядят так, что РёС… РЅСѓР¶РЅРѕ проверить заранее, чтобы РѕРЅРё РЅРµ портили отчетность Р·Р° месяц?", - "РіРґРµ Сѓ нас есть отгрузки без документов для РёС… закрытия Рё это СѓР¶Рµ требует внимания?", - "кто РёР· контрагентов РїРѕРєР° РЅРµ оплатил СЃРІРѕРё товары или услуги хотя СЃСЂРѕРєРё давно прошли?", - "Сѓ РєРѕРіРѕ РёР· поставщиков сальдо СЏРІРЅРѕ расходится СЃ тем, что РѕРЅРё сами указывают РІ СЃРІРѕРёС… актах сверок?", - "РіРґРµ Сѓ нас есть закрытие счетов без подтверждающих документов Рё это СѓР¶Рµ требует ручной проверки?", - "какие контрагенты принесли РѕСЃРЅРѕРІРЅСѓСЋ часть наших РґРѕС…РѕРґРѕРІ Р·Р° отчетный период?", - "РїРѕ каким покупателям Сѓ нас есть открытые задолженности РЅР° конец месяца?", - "Сѓ РєРѕРіРѕ РёР· поставщиков есть авансы, РЅРѕ никаких документов для РёС… закрытия нет СѓР¶Рµ давно?", - "РіРґРµ Сѓ нас есть реализации, которые выглядят так, будто РѕРЅРё зависли Рё Р±СѓРґСѓС‚ портить картину РїРѕ выручке, если РёС… РЅРµ проверить заранее?", - "какие контрагенты РїРѕРєР° вообще РЅРµ платят Р·Р° текущий месяц Рё это тревожный знак для нас?" + "какие контрагенты пока вообще не платят за текущий месяц и это уже тревожный знак для нас?", + "где у нас есть отгрузки без закрытия по ним счетов, и это выглядит как серьезная проблема?", + "какие покупатели пока не оплатили свои товары или услуги, хотя сроки давно прошли?", + "у кого из контрагентов есть авансы, но никаких документов для их закрытия нет уже давно?", + "по каким поставщикам у нас сальдо явно расходится с тем, что они сами указывают в своих актах сверок?", + "какие реализации на конец периода выглядят так, будто будут портить картину по выручке из-за незакрытых счетов или документов?", + "где у нас есть оплаты без закрытия взаиморасчетов, и это уже требует ручной проверки?", + "какие контрагенты принесли основную часть нашей выручки за отчетный период?", + "у кого из покупателей есть открытые задолженности перед нами на конец месяца?", + "по каким поставщикам мы видим проблемные авансы, которые давно не закрыты документами?", + "какие реализации выглядят так, что их нужно проверить заранее, чтобы они не портили отчетность за месяц?", + "где у нас есть отгрузки без документов для их закрытия и это уже требует внимания?", + "кто из контрагентов пока не оплатил свои товары или услуги хотя сроки давно прошли?", + "у кого из поставщиков сальдо явно расходится с тем, что они сами указывают в своих актах сверок?", + "где у нас есть закрытие счетов без подтверждающих документов и это уже требует ручной проверки?", + "какие контрагенты принесли основную часть наших доходов за отчетный период?", + "по каким покупателям у нас есть открытые задолженности на конец месяца?", + "у кого из поставщиков есть авансы, но никаких документов для их закрытия нет уже давно?", + "где у нас есть реализации, которые выглядят так, будто они зависли и будут портить картину по выручке, если их не проверить заранее?", + "какие контрагенты пока вообще не платят за текущий месяц и это тревожный знак для нас?" ], "generated_by": "manual_reviewer", "saved_case_set_file": "assistant_autogen_qwen_seed_20260410090601_gen-mnsolawk-vugqyoc.json", @@ -1564,9 +1088,9 @@ "model": "Qwen2.5 14B Instruct 1M", "assistant_prompt_version": "address_query_runtime_v1", "decomposition_prompt_version": "normalizer_v2_0_2", - "prompt_fingerprint": "РўС‹ semantic-normalizer для бухгалтерского ассистента NDC.\nРўРІРѕСЏ роль: только нормализация запроса пользователя РІ строгий JSON-контракт.\n\nЖесткие правила:\n1) РќРµ давай бухгалтерский ответ РїРѕ сути РІРѕРїСЂРѕСЃР°.\n2) Возвращай только JSON без markdown Рё пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период РЅРµ указан, РЅРµ выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/РїСЂРѕРІРѕРґРѕРє/оплат поднимай causal Рё cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and ", + "prompt_fingerprint": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and ", "autogen_personality_id": "general", - "autogen_personality_prompt": "Генерируй реалистичные живые РІРѕРїСЂРѕСЃС‹ бухгалтера РїРѕ 1РЎ. Добавляй разговорные формулировки Рё опечатки, РЅРѕ сохраняй бизнес-смысл. акцент РЅР° контрагентов \\ РЅСЃРґ \\ счета \\ общий ваывод РїРѕ компании - контрагенты заказчиким СЃРєРѕРєР° денег кто принес Рё тп", + "autogen_personality_prompt": "Генерируй реалистичные живые вопросы бухгалтера по 1С. Добавляй разговорные формулировки и опечатки, но сохраняй бизнес-смысл. акцент на контрагентов \\ нсд \\ счета \\ общий ваывод по компании - контрагенты заказчиким скока денег кто принес и тп", "source_session_id": null, "saved_session_file": null, "saved_case_set_kind": null, @@ -1587,26 +1111,26 @@ "count": 20, "domain": null, "questions": [ - "какие контрагенты больше всего задерживают платежи Р·Р° последний месяц Рё это СѓР¶Рµ выходит Р·Р° рамки обычной просрочки?", - "есть ли поставщики Сѓ которых РЅР° конец периода есть непроведенные документы, которые мешают закрыть взаиморасчеты?", - "какие покупатели долгое время РЅРµ отвечают РЅР° наши претензии РїСЂРѕ несоответствие сальдо РІ сверке?", - "покажи контрагентов РіРґРµ есть оплаты, РЅРѕ документов для РёС… закрытия нет Рё это СѓР¶Рµ требует ручного вмешательства?", - "Сѓ РєРѕРіРѕ РёР· поставщиков долгое время РІРёСЃСЏС‚ авансы без каких либо движений РїРѕ РЅРёРј?", - "какие реализации РЅР° конец месяца выглядят так, будто РѕРЅРё зависли Рё РјРѕРіСѓС‚ повлиять РЅР° финальные показатели отчетности?", - "какие покупатели больше всего задерживают оплату Р·Р° товары/услуги?", - "покажи контрагентов РіРґРµ документы есть РЅРѕ платежей для закрытия взаиморасчётов РЅРµ РІРёРґРЅРѕ Рё это СѓР¶Рµ требует проверки руками?", - "какие поставщики РЅР° конец месяца ещё РЅРµ закрыли РІСЃРµ накладные Р·Р° текущий период?", - "какие контрагенты имеют большое сальдо, которое скорее всего РЅРµ будет совпадать РІ акте сверки если его запросить РїСЂСЏРјРѕ сейчас?", - "есть ли зависшие авансы, которые СѓР¶Рµ давно надо было либо закрыть, либо хотя Р±С‹ перепроверить руками?", - "какие отгрузки выглядят так будто проблема РЅРµ только РІ том что клиент РЅРµ оплатил РЅРѕ Рё РІ том что сама СЃРІСЏР·РєР° документов собрана РєСЂРёРІРѕ?", - "Сѓ РєРѕРіРѕ РёР· контрагентов есть накладные которые долго РЅРµ закрываются РїРѕ причине того что нет соответствующих платежей?", - "какие покупатели РЅР° конец периода СѓР¶Рµ давно РЅРµ отвечают РЅР° наши претензии РїСЂРѕ несоответствие сальдо РІ сверке?", - "какие контрагенты имеют большое сальдо которое скорее всего РЅРµ будет совпадать РІ акте сверки если его запросить РїСЂСЏРјРѕ сейчас?", - "Сѓ РєРѕРіРѕ РёР· поставщиков долгое время РІРёСЃСЏС‚ авансы без каких либо движений РїРѕ РЅРёРј Рё это СѓР¶Рµ требует проверки руками?", - "есть ли зависшие накладные которые РјРѕРіСѓС‚ повлиять РЅР° финальные показатели отчетности если РёС… РЅРµ закрыть заранее?", - "какие поставщики РЅР° конец месяца ещё РЅРµ закрыли РІСЃРµ накладные Р·Р° текущий период Рё это СѓР¶Рµ требует проверки руками?", - "какие покупатели долгое время РЅРµ отвечают РЅР° наши претензии РїСЂРѕ несоответствие сальдо РІ сверке Рё это СѓР¶Рµ требует ручного вмешательства?", - "Р№Рѕ РџРѕ каким поставщикам Сѓ нас РЅР° конец месяца остались хвосты, которые СѓР¶Рµ РЅРµ РїРѕС…РѕР¶Рё РЅР° обычную задержку документов, Р° выглядят как реальная проблема РІ цепочке?" + "какие контрагенты больше всего задерживают платежи за последний месяц и это уже выходит за рамки обычной просрочки?", + "есть ли поставщики у которых на конец периода есть непроведенные документы, которые мешают закрыть взаиморасчеты?", + "какие покупатели долгое время не отвечают на наши претензии про несоответствие сальдо в сверке?", + "покажи контрагентов где есть оплаты, но документов для их закрытия нет и это уже требует ручного вмешательства?", + "у кого из поставщиков долгое время висят авансы без каких либо движений по ним?", + "какие реализации на конец месяца выглядят так, будто они зависли и могут повлиять на финальные показатели отчетности?", + "какие покупатели больше всего задерживают оплату за товары/услуги?", + "покажи контрагентов где документы есть но платежей для закрытия взаиморасчётов не видно и это уже требует проверки руками?", + "какие поставщики на конец месяца ещё не закрыли все накладные за текущий период?", + "какие контрагенты имеют большое сальдо, которое скорее всего не будет совпадать в акте сверки если его запросить прямо сейчас?", + "есть ли зависшие авансы, которые уже давно надо было либо закрыть, либо хотя бы перепроверить руками?", + "какие отгрузки выглядят так будто проблема не только в том что клиент не оплатил но и в том что сама связка документов собрана криво?", + "у кого из контрагентов есть накладные которые долго не закрываются по причине того что нет соответствующих платежей?", + "какие покупатели на конец периода уже давно не отвечают на наши претензии про несоответствие сальдо в сверке?", + "какие контрагенты имеют большое сальдо которое скорее всего не будет совпадать в акте сверки если его запросить прямо сейчас?", + "у кого из поставщиков долгое время висят авансы без каких либо движений по ним и это уже требует проверки руками?", + "есть ли зависшие накладные которые могут повлиять на финальные показатели отчетности если их не закрыть заранее?", + "какие поставщики на конец месяца ещё не закрыли все накладные за текущий период и это уже требует проверки руками?", + "какие покупатели долгое время не отвечают на наши претензии про несоответствие сальдо в сверке и это уже требует ручного вмешательства?", + "йо По каким поставщикам у нас на конец месяца остались хвосты, которые уже не похожи на обычную задержку документов, а выглядят как реальная проблема в цепочке?" ], "generated_by": "manual_reviewer", "saved_case_set_file": "assistant_autogen_qwen_seed_20260410082127_gen-mnsmzzcr-ffcz48q.json", @@ -1615,9 +1139,9 @@ "model": "Qwen2.5 14B Instruct 1M", "assistant_prompt_version": "address_query_runtime_v1", "decomposition_prompt_version": "normalizer_v2_0_2", - "prompt_fingerprint": "РўС‹ semantic-normalizer для бухгалтерского ассистента NDC.\nРўРІРѕСЏ роль: только нормализация запроса пользователя РІ строгий JSON-контракт.\n\nЖесткие правила:\n1) РќРµ давай бухгалтерский ответ РїРѕ сути РІРѕРїСЂРѕСЃР°.\n2) Возвращай только JSON без markdown Рё пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период РЅРµ указан, РЅРµ выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/РїСЂРѕРІРѕРґРѕРє/оплат поднимай causal Рё cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and ", + "prompt_fingerprint": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and ", "autogen_personality_id": "general", - "autogen_personality_prompt": "Генерируй реалистичные живые РІРѕРїСЂРѕСЃС‹ бухгалтера РїРѕ 1РЎ. Добавляй разговорные формулировки Рё опечатки, РЅРѕ сохраняй бизнес-смысл. акцент РЅР° контрагентов \\ РЅСЃРґ \\ счета \\ общий ваывод РїРѕ компании - контрагенты заказчиким СЃРєРѕРєР° денег кто принес Рё тп", + "autogen_personality_prompt": "Генерируй реалистичные живые вопросы бухгалтера по 1С. Добавляй разговорные формулировки и опечатки, но сохраняй бизнес-смысл. акцент на контрагентов \\ нсд \\ счета \\ общий ваывод по компании - контрагенты заказчиким скока денег кто принес и тп", "source_session_id": null, "saved_session_file": null, "saved_case_set_kind": null, @@ -1638,11 +1162,11 @@ "count": 5, "domain": null, "questions": [ - "Какие покупатели оставили хвосты РїРѕ отгрузкам РЅР° конец месяца, которые скорее РіРѕРІРѕСЂСЏС‚ РїСЂРѕ проблемы СЃ документами, чем просто задержку платежей?", - "Где Сѓ нас РІРёСЃСЏС‚ неоплаченные реализации, что РјРѕРіСѓС‚ испортить баланс выручки, если РёС… РЅРµ проверять заранее?", - "Покажи контрагентов, РїРѕ которым сальдо СЏРІРЅРѕ расходится СЃ тем, что РѕРЅРё напишут РІ сверке, если её запросить сейчас.", - "Есть ли авансы, которые СѓР¶Рµ давно РЅРµ закрыты Рё требуют ручной перепроверки?", - "Какие поставщики оставили хвосты РїРѕ документам РЅР° конец месяца, что указывают скорее РЅР° проблемы СЃ оформлением, чем РЅР° задержку?" + "Какие покупатели оставили хвосты по отгрузкам на конец месяца, которые скорее говорят про проблемы с документами, чем просто задержку платежей?", + "Где у нас висят неоплаченные реализации, что могут испортить баланс выручки, если их не проверять заранее?", + "Покажи контрагентов, по которым сальдо явно расходится с тем, что они напишут в сверке, если её запросить сейчас.", + "Есть ли авансы, которые уже давно не закрыты и требуют ручной перепроверки?", + "Какие поставщики оставили хвосты по документам на конец месяца, что указывают скорее на проблемы с оформлением, чем на задержку?" ], "generated_by": "manual_reviewer", "saved_case_set_file": "assistant_autogen_qwen_seed_20260409193926_gen-mnrvs132-1dewq5r.json", @@ -1651,9 +1175,9 @@ "model": "Qwen2.5 14B Instruct 1M", "assistant_prompt_version": "address_query_runtime_v1", "decomposition_prompt_version": "normalizer_v2_0_2", - "prompt_fingerprint": "РўС‹ semantic-normalizer для бухгалтерского ассистента NDC.\nРўРІРѕСЏ роль: только нормализация запроса пользователя РІ строгий JSON-контракт.\n\nЖесткие правила:\n1) РќРµ давай бухгалтерский ответ РїРѕ сути РІРѕРїСЂРѕСЃР°.\n2) Возвращай только JSON без markdown Рё пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период РЅРµ указан, РЅРµ выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/РїСЂРѕРІРѕРґРѕРє/оплат поднимай causal Рё cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and ", + "prompt_fingerprint": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and ", "autogen_personality_id": "general", - "autogen_personality_prompt": "Генерируй реалистичные живые РІРѕРїСЂРѕСЃС‹ бухгалтера РїРѕ 1РЎ. Добавляй разговорные формулировки Рё опечатки, РЅРѕ сохраняй бизнес-смысл.", + "autogen_personality_prompt": "Генерируй реалистичные живые вопросы бухгалтера по 1С. Добавляй разговорные формулировки и опечатки, но сохраняй бизнес-смысл.", "source_session_id": null, "saved_session_file": null, "saved_case_set_kind": null, @@ -1674,11 +1198,11 @@ "count": 5, "domain": null, "questions": [ - "Какие Сѓ нас поставщики РїРѕРєР° вообще никак РЅРµ проявились РІ текущем месяце Рё это СѓР¶Рµ начинает выглядеть подозрительно?", - "Где Сѓ нас есть реализации, которые СЃРёРґСЏС‚ без закрытий РЅР° конец отчетного периода, Рё РѕРЅРё реально РјРѕРіСѓС‚ испортить финансовую картину?", - "Покажи контрагентов, РїРѕ которым сальдо РІ 1РЎ СЏРІРЅРѕ расходится СЃ тем, что должно быть РїРѕ данным РёС… последнего акта сверки.", - "Есть ли такие авансы, которые СѓР¶Рµ давно РЅРµ используются Рё РёС… РїРѕСЂР° или списать, или перепроверить?", - "Где Сѓ нас есть оплаты Р·Р° товары/услуги, РЅРѕ самих документов РЅР° эти платежи РґРѕ СЃРёС… РїРѕСЂ нет РІ системе?" + "Какие у нас поставщики пока вообще никак не проявились в текущем месяце и это уже начинает выглядеть подозрительно?", + "Где у нас есть реализации, которые сидят без закрытий на конец отчетного периода, и они реально могут испортить финансовую картину?", + "Покажи контрагентов, по которым сальдо в 1С явно расходится с тем, что должно быть по данным их последнего акта сверки.", + "Есть ли такие авансы, которые уже давно не используются и их пора или списать, или перепроверить?", + "Где у нас есть оплаты за товары/услуги, но самих документов на эти платежи до сих пор нет в системе?" ], "generated_by": "manual_reviewer", "saved_case_set_file": "assistant_autogen_qwen_seed_20260409193834_gen-mnrvqxcg-wa3jsro.json", @@ -1687,9 +1211,9 @@ "model": "Qwen2.5 14B Instruct 1M", "assistant_prompt_version": "address_query_runtime_v1", "decomposition_prompt_version": "normalizer_v2_0_2", - "prompt_fingerprint": "РўС‹ semantic-normalizer для бухгалтерского ассистента NDC.\nРўРІРѕСЏ роль: только нормализация запроса пользователя РІ строгий JSON-контракт.\n\nЖесткие правила:\n1) РќРµ давай бухгалтерский ответ РїРѕ сути РІРѕРїСЂРѕСЃР°.\n2) Возвращай только JSON без markdown Рё пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период РЅРµ указан, РЅРµ выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/РїСЂРѕРІРѕРґРѕРє/оплат поднимай causal Рё cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and ", + "prompt_fingerprint": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and ", "autogen_personality_id": "general", - "autogen_personality_prompt": "Генерируй реалистичные живые РІРѕРїСЂРѕСЃС‹ бухгалтера РїРѕ 1РЎ. Добавляй разговорные формулировки Рё опечатки, РЅРѕ сохраняй бизнес-смысл.", + "autogen_personality_prompt": "Генерируй реалистичные живые вопросы бухгалтера по 1С. Добавляй разговорные формулировки и опечатки, но сохраняй бизнес-смысл.", "source_session_id": null, "saved_session_file": null, "saved_case_set_kind": null, @@ -1710,16 +1234,16 @@ "count": 10, "domain": null, "questions": [ - "Какие поставщики Сѓ нас СѓР¶Рµ пару месяцев сдают акты без РїСЂРёС…РѕРґРѕРє. Может, РёС… надо проконтролировать отдельно чтоб РЅРµ засорять бухгалтерию дальше?", - "Где Сѓ нас РІРёСЃСЏС‚ покупатели СЃРѕ слишком длинным периодом между отправкой товара Рё его оплатой, Рё это СѓР¶Рµ вызывает тревогу?", - "Покажи контрагентов, РїРѕ которым сальдо скорее всего РЅРµ совпадет СЃ РёС… актом сверки. Может, стоит поторопиться Рё запросить сверку?", - "Где Сѓ нас есть платежи, РЅРѕ нет документов для закрытия взаиморасчетов? Это СѓР¶Рµ требует ручной проверки.", - "РџРѕ каким контрагентам документы есть, Р° оплат нет. Может, стоит взять РЅР° карандаш такие ситуации чтоб РЅРµ тянуть дальше?", - "Есть ли зависшие авансы, которые РЅСѓР¶РЅРѕ либо закрыть, либо перепроверить СѓР¶Рµ давно?", - "Какие реализации РЅР° конец периода выглядят так, будто РѕРЅРё зависли Рё РјРѕРіСѓС‚ портить картину РїРѕ выручке?", - "Где Сѓ нас отгрузки СЃ кривыми документами. Это СѓР¶Рµ требует ручного анализа.", - "Кто РёР· контрагентов давно РЅРµ подтверждал СЃРІРѕРё расчеты. Может, стоит напомнить Рѕ сверках?", - "Какие покупатели долго задерживают оплату без явных причин. Это тоже требует внимания." + "Какие поставщики у нас уже пару месяцев сдают акты без приходок. Может, их надо проконтролировать отдельно чтоб не засорять бухгалтерию дальше?", + "Где у нас висят покупатели со слишком длинным периодом между отправкой товара и его оплатой, и это уже вызывает тревогу?", + "Покажи контрагентов, по которым сальдо скорее всего не совпадет с их актом сверки. Может, стоит поторопиться и запросить сверку?", + "Где у нас есть платежи, но нет документов для закрытия взаиморасчетов? Это уже требует ручной проверки.", + "По каким контрагентам документы есть, а оплат нет. Может, стоит взять на карандаш такие ситуации чтоб не тянуть дальше?", + "Есть ли зависшие авансы, которые нужно либо закрыть, либо перепроверить уже давно?", + "Какие реализации на конец периода выглядят так, будто они зависли и могут портить картину по выручке?", + "Где у нас отгрузки с кривыми документами. Это уже требует ручного анализа.", + "Кто из контрагентов давно не подтверждал свои расчеты. Может, стоит напомнить о сверках?", + "Какие покупатели долго задерживают оплату без явных причин. Это тоже требует внимания." ], "generated_by": "manual_reviewer", "saved_case_set_file": "assistant_autogen_qwen_seed_20260409180738_gen-mnrshzcm-xyiv4gs.json", @@ -1728,9 +1252,9 @@ "model": "Qwen2.5 14B Instruct 1M", "assistant_prompt_version": "address_query_runtime_v1", "decomposition_prompt_version": "normalizer_v2_0_2", - "prompt_fingerprint": "РўС‹ semantic-normalizer для бухгалтерского ассистента NDC.\nРўРІРѕСЏ роль: только нормализация запроса пользователя РІ строгий JSON-контракт.\n\nЖесткие правила:\n1) РќРµ давай бухгалтерский ответ РїРѕ сути РІРѕРїСЂРѕСЃР°.\n2) Возвращай только JSON без markdown Рё пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период РЅРµ указан, РЅРµ выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/РїСЂРѕРІРѕРґРѕРє/оплат поднимай causal Рё cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and ", + "prompt_fingerprint": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and ", "autogen_personality_id": "general", - "autogen_personality_prompt": "Генерируй реалистичные живые РІРѕРїСЂРѕСЃС‹ бухгалтера РїРѕ 1РЎ. Добавляй разговорные формулировки Рё опечатки, РЅРѕ сохраняй бизнес-смысл.", + "autogen_personality_prompt": "Генерируй реалистичные живые вопросы бухгалтера по 1С. Добавляй разговорные формулировки и опечатки, но сохраняй бизнес-смысл.", "source_session_id": null, "saved_session_file": null, "saved_case_set_kind": null, @@ -1751,16 +1275,16 @@ "count": 10, "domain": null, "questions": [ - "Какие покупатели РЅР° конец месяца держат нас РІ незакрытых взаиморасчетах СѓР¶Рµ больше чем обычно, Рё это начинает напоминать реальные проблемы Р° РЅРµ просто задержку?", - "Где Сѓ нас СЃ поставщиками РІРёРґРЅС‹ хвосты РїРѕ документам, которые СЏРІРЅРѕ вышли Р·Р° рамки обычной задержки?", - "Какие реализации РЅР° конец периода еще РЅРµ закрыты Рё РјРѕРіСѓС‚ испортить картину РїСЂРё ревизии?", - "Покажи контрагентов Сѓ которых сальдо скорее всего РЅРµ совпадет СЃ РёС… актом сверки, если его запросить РїСЂСЏРјРѕ сейчас.", - "Где РїРѕ покупателям есть история отгрузили - денег нет - закрытия нет Рё это СѓР¶Рµ требует ручной проверки?", - "Есть ли зависшие авансы которые СѓР¶Рµ давно надо было либо закрыть, либо хотя Р±С‹ перепроверить руками?", - "Какие реализации РЅР° конец периода выглядят так будто РѕРЅРё зависли Рё Р±СѓРґСѓС‚ портить картину РїРѕ выручке если РёС… РЅРµ проверить заранее?", - "Где Сѓ нас есть оплаты РЅРѕ РЅРµ хватает документов чтобы закрыть взаиморасчеты?", - "Какие контрагенты показывают документы, РЅРѕ нормального закрытия оплатами нет - это требует ручной проверки?", - "Кто РёР· контрагентов держит нас РІ незакрытых взаиморасчетах РЅР° конец месяца Рё это начинает напоминать реальные проблемы Р° РЅРµ просто задержку?" + "Какие покупатели на конец месяца держат нас в незакрытых взаиморасчетах уже больше чем обычно, и это начинает напоминать реальные проблемы а не просто задержку?", + "Где у нас с поставщиками видны хвосты по документам, которые явно вышли за рамки обычной задержки?", + "Какие реализации на конец периода еще не закрыты и могут испортить картину при ревизии?", + "Покажи контрагентов у которых сальдо скорее всего не совпадет с их актом сверки, если его запросить прямо сейчас.", + "Где по покупателям есть история отгрузили - денег нет - закрытия нет и это уже требует ручной проверки?", + "Есть ли зависшие авансы которые уже давно надо было либо закрыть, либо хотя бы перепроверить руками?", + "Какие реализации на конец периода выглядят так будто они зависли и будут портить картину по выручке если их не проверить заранее?", + "Где у нас есть оплаты но не хватает документов чтобы закрыть взаиморасчеты?", + "Какие контрагенты показывают документы, но нормального закрытия оплатами нет - это требует ручной проверки?", + "Кто из контрагентов держит нас в незакрытых взаиморасчетах на конец месяца и это начинает напоминать реальные проблемы а не просто задержку?" ], "generated_by": "manual_reviewer", "saved_case_set_file": "assistant_autogen_qwen_seed_20260409173606_gen-mnrrdfbj-mrcxcjg.json", @@ -1769,9 +1293,9 @@ "model": "Qwen2.5 14B Instruct 1M", "assistant_prompt_version": "address_query_runtime_v1", "decomposition_prompt_version": "normalizer_v2_0_2", - "prompt_fingerprint": "РўС‹ semantic-normalizer для бухгалтерского ассистента NDC.\nРўРІРѕСЏ роль: только нормализация запроса пользователя РІ строгий JSON-контракт.\n\nЖесткие правила:\n1) РќРµ давай бухгалтерский ответ РїРѕ сути РІРѕРїСЂРѕСЃР°.\n2) Возвращай только JSON без markdown Рё пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период РЅРµ указан, РЅРµ выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/РїСЂРѕРІРѕРґРѕРє/оплат поднимай causal Рё cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and", + "prompt_fingerprint": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and", "autogen_personality_id": "general", - "autogen_personality_prompt": "Генерируй реалистичные живые РІРѕРїСЂРѕСЃС‹ бухгалтера РїРѕ 1РЎ. Добавляй разговорные формулировки Рё опечатки, РЅРѕ сохраняй бизнес-смысл.", + "autogen_personality_prompt": "Генерируй реалистичные живые вопросы бухгалтера по 1С. Добавляй разговорные формулировки и опечатки, но сохраняй бизнес-смысл.", "source_session_id": null, "saved_session_file": null, "saved_case_set_kind": null, @@ -1792,26 +1316,26 @@ "count": 20, "domain": null, "questions": [ - "Какие поставщики СѓР¶Рµ пару месяцев держат хвосты, которые выглядят как системная проблема, Р° РЅРµ просто задержка СЃ документами?", - "Где Сѓ нас покупатели 'отгрузили - денег нет - закрытия нет' Рё РЅСѓР¶РЅР° ручная проверка этих контрагентов?", - "Покажи контрагентов, чьё сальдо скорее всего РЅРµ совпадет СЃ РёС… актом сверки, если его запросить РїСЂСЏРјРѕ сейчас.", - "Где Сѓ нас есть оплаты, РЅРѕ документов для закрытия взаиморасчетов нет совсем?", - "Какие контрагенты имеют документы, РЅРѕ нормального закрытия оплатами РЅРµ РІРёРґРЅРѕ?", - "Есть ли зависшие авансы, которые давно требуют перепроверки или окончательного закрытия?", - "Какие реализации РЅР° конец периода выглядят так, будто РѕРЅРё зависли Рё портят картину РїРѕ выручке?", - "РџРѕ каким отгрузкам РІРёРґРЅРѕ, что проблема РЅРµ просто РІ том, что клиент РЅРµ оплатил, Р° РІ том, что СЃРІСЏР·РєР° документов собрана РєСЂРёРІРѕ?", - "Какие накладные РЅР° складе СѓР¶Рµ давно РЅРµ сопровождаются поступлениями или отправками - это может быть подозрительно?", - "Есть ли контрагенты, Сѓ которых есть отгрузки без связанных оплат Рё РёС… РЅСѓР¶РЅРѕ проверить РЅР° наличие долгов?", - "Какие документы РїРѕРєСѓРїРѕРє были созданы давно, РЅРѕ РЅРµ закрыты РІРІРѕРґРѕРј накладных или актов - это может быть РїСЂСЏРјРѕР№ СЂРёСЃРє?", - "Где Сѓ нас зависли авансовые отгрузки СЃ датами старше полугода Рё РёС… РЅСѓР¶РЅРѕ либо списать, либо проверить детали?", - "Какие поставщики СѓР¶Рµ давно РЅРµ подтверждали СЃРІРѕРё счета - это может указывать РЅР° проблемы РІ цепочке взаиморасчетов?", - "Есть ли контрагенты СЃ отгрузками или покупками, РіРґРµ документы есть, Р° реальных транзакций нет - это может быть фиктивным?", - "Какие реализации СѓР¶Рµ подтверждены, РЅРѕ РёС… сальдо РЅРµ соотносится СЃ фактической выручкой Р·Р° период?", - "Где Сѓ нас зависли авансы поставщикам Рё РѕРЅРё требуют ручной проверки РЅР° предмет реальных платежей?", - "Есть ли контрагенты, Сѓ которых есть отгрузки без связанных документов или платежей - это может быть проблемой для баланса?", - "Какие документы РїРѕРєСѓРїРѕРє РЅРµ завершены РІРІРѕРґРѕРј актов Рё РёС… сальдо выглядит подозрительно?", - "Где Сѓ нас зависли авансовые поступления РѕС‚ клиентов, которые давно требуют проверки или списания?", - "Есть ли контрагенты, Сѓ которых есть реализации без связанных оплат - это может быть фиктивным?" + "Какие поставщики уже пару месяцев держат хвосты, которые выглядят как системная проблема, а не просто задержка с документами?", + "Где у нас покупатели 'отгрузили - денег нет - закрытия нет' и нужна ручная проверка этих контрагентов?", + "Покажи контрагентов, чьё сальдо скорее всего не совпадет с их актом сверки, если его запросить прямо сейчас.", + "Где у нас есть оплаты, но документов для закрытия взаиморасчетов нет совсем?", + "Какие контрагенты имеют документы, но нормального закрытия оплатами не видно?", + "Есть ли зависшие авансы, которые давно требуют перепроверки или окончательного закрытия?", + "Какие реализации на конец периода выглядят так, будто они зависли и портят картину по выручке?", + "По каким отгрузкам видно, что проблема не просто в том, что клиент не оплатил, а в том, что связка документов собрана криво?", + "Какие накладные на складе уже давно не сопровождаются поступлениями или отправками - это может быть подозрительно?", + "Есть ли контрагенты, у которых есть отгрузки без связанных оплат и их нужно проверить на наличие долгов?", + "Какие документы покупок были созданы давно, но не закрыты вводом накладных или актов - это может быть прямой риск?", + "Где у нас зависли авансовые отгрузки с датами старше полугода и их нужно либо списать, либо проверить детали?", + "Какие поставщики уже давно не подтверждали свои счета - это может указывать на проблемы в цепочке взаиморасчетов?", + "Есть ли контрагенты с отгрузками или покупками, где документы есть, а реальных транзакций нет - это может быть фиктивным?", + "Какие реализации уже подтверждены, но их сальдо не соотносится с фактической выручкой за период?", + "Где у нас зависли авансы поставщикам и они требуют ручной проверки на предмет реальных платежей?", + "Есть ли контрагенты, у которых есть отгрузки без связанных документов или платежей - это может быть проблемой для баланса?", + "Какие документы покупок не завершены вводом актов и их сальдо выглядит подозрительно?", + "Где у нас зависли авансовые поступления от клиентов, которые давно требуют проверки или списания?", + "Есть ли контрагенты, у которых есть реализации без связанных оплат - это может быть фиктивным?" ], "generated_by": "manual_reviewer", "saved_case_set_file": "assistant_autogen_qwen_seed_20260409155524_gen-mnrnrwtc-za8a8o0.json", @@ -1820,9 +1344,9 @@ "model": "Qwen2.5 14B Instruct 1M", "assistant_prompt_version": "address_query_runtime_v1", "decomposition_prompt_version": "normalizer_v2_0_2", - "prompt_fingerprint": "РўС‹ semantic-normalizer для бухгалтерского ассистента NDC.\nРўРІРѕСЏ роль: только нормализация запроса пользователя РІ строгий JSON-контракт.\n\nЖесткие правила:\n1) РќРµ давай бухгалтерский ответ РїРѕ сути РІРѕРїСЂРѕСЃР°.\n2) Возвращай только JSON без markdown Рё пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период РЅРµ указан, РЅРµ выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/РїСЂРѕРІРѕРґРѕРє/оплат поднимай causal Рё cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and", + "prompt_fingerprint": "Ты semantic-normalizer для бухгалтерского ассистента NDC.\nТвоя роль: только нормализация запроса пользователя в строгий JSON-контракт.\n\nЖесткие правила:\n1) Не давай бухгалтерский ответ по сути вопроса.\n2) Возвращай только JSON без markdown и пояснений.\n3) JSON обязан соответствовать переданной schema normalized_query_v1.\n4) Если период не указан, не выдумывай его; отмечай ambiguity.\n5) Для цепочек документов/проводок/оплат поднимай causal и cross-entity признаки.\n6) Для точечного object trace (номер/строка/ref) поднимай needs_exact_object_trace=true.\n7) Используй терминологию NDC.\nYou are semantic-normalizer for accounting assistant NDC.\nReturn strict JSON only, no markdown, no comments.\n\nTarget schema: normalized_query_v2_0_2.\n\nCore behavior (v2.0.2):\n1. Decompose message into semantic fragments.\n2. Classify fragment domain relevance and business scope.\n3. Fill route-critical flags and", "autogen_personality_id": "general", - "autogen_personality_prompt": "Генерируй реалистичные живые РІРѕРїСЂРѕСЃС‹ бухгалтера РїРѕ 1РЎ. Добавляй разговорные формулировки Рё опечатки, РЅРѕ сохраняй бизнес-смысл.", + "autogen_personality_prompt": "Генерируй реалистичные живые вопросы бухгалтера по 1С. Добавляй разговорные формулировки и опечатки, но сохраняй бизнес-смысл.", "source_session_id": null, "saved_session_file": null, "saved_case_set_kind": null, @@ -1843,8 +1367,8 @@ "count": 2, "domain": "settlements", "questions": [ - "Кто РёР· поставщиков имеет хвосты СЃ документами РЅР° конец месяца, которые СѓР¶Рµ больше РїРѕС…РѕР¶Рё РЅР° систематическую проблему, Р° РЅРµ РЅР° обычную задержку?", - "Где Сѓ нас есть реализации, которые РјРѕРіСѓС‚ портить отчетность РїРѕ выручке, если РёС… РЅРµ проверить РґРѕ конца периода?" + "Кто из поставщиков имеет хвосты с документами на конец месяца, которые уже больше похожи на систематическую проблему, а не на обычную задержку?", + "Где у нас есть реализации, которые могут портить отчетность по выручке, если их не проверить до конца периода?" ], "generated_by": "diag", "saved_case_set_file": "assistant_autogen_qwen_seed_20260409152445_gen-mnrmoiey-j9akyvu.json", @@ -1868,4 +1392,4 @@ "latest_acceptance": null } } -] +] \ No newline at end of file diff --git a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417080808_gen-ag04170808-1907fa.json b/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417080808_gen-ag04170808-1907fa.json deleted file mode 100644 index bfa7b27..0000000 --- a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417080808_gen-ag04170808-1907fa.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "saved_at": "2026-04-17T08:08:08+00:00", - "generation_id": "gen-ag04170808-1907fa", - "mode": "saved_user_sessions", - "title": "AGENT | Phase 4 coverage/evidence replay for counterparty fallback, inventory reset, and selected-object provenance", - "agent_run": true, - "questions": [ - "покажи все документы по чепурнову", - "что нам отгружал чепурнов, какой товар или услугу?", - "какие остатки на складе на март 2021", - "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?", - "покажи еще раз остатки на эту же дату" - ], - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "coverage/evidence contract on factual, fallback, and root-reset branches", - "architecture_phase": "turnaround_11_phase4", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase4_coverage_evidence_mix.json" - }, - "source_session_id": null, - "session": { - "session_id": null, - "mode": "agent_semantic_run", - "items": [ - { - "message_id": "agent-user-001", - "role": "user", - "text": "покажи все документы по чепурнову", - "created_at": "2026-04-17T08:08:08+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-002", - "role": "user", - "text": "что нам отгружал чепурнов, какой товар или услугу?", - "created_at": "2026-04-17T08:08:08+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-003", - "role": "user", - "text": "какие остатки на складе на март 2021", - "created_at": "2026-04-17T08:08:08+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-004", - "role": "user", - "text": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?", - "created_at": "2026-04-17T08:08:08+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-005", - "role": "user", - "text": "покажи еще раз остатки на эту же дату", - "created_at": "2026-04-17T08:08:08+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - } - ], - "agent_run": true, - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "coverage/evidence contract on factual, fallback, and root-reset branches", - "architecture_phase": "turnaround_11_phase4", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase4_coverage_evidence_mix.json" - } - } -} diff --git a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417083044_gen-ag04170830-5f771d.json b/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417083044_gen-ag04170830-5f771d.json deleted file mode 100644 index 5585d0b..0000000 --- a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417083044_gen-ag04170830-5f771d.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "saved_at": "2026-04-17T08:30:44+00:00", - "generation_id": "gen-ag04170830-5f771d", - "mode": "saved_user_sessions", - "title": "AGENT | Phase 5 meta and memory recap replay over interrupted address context", - "agent_run": true, - "questions": [ - "какие остатки на складе на март 2021", - "а исторические остатки тоже можешь?", - "по какой компании мы сейчас работаем?", - "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?", - "что ты умеешь?", - "а ты помнишь, что мы по этой позиции уже выяснили?" - ], - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "meta and memory recap replay over interrupted address context", - "architecture_phase": "turnaround_11_phase5", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase5_meta_memory_mix.json" - }, - "source_session_id": null, - "session": { - "session_id": null, - "mode": "agent_semantic_run", - "items": [ - { - "message_id": "agent-user-001", - "role": "user", - "text": "какие остатки на складе на март 2021", - "created_at": "2026-04-17T08:30:44+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-002", - "role": "user", - "text": "а исторические остатки тоже можешь?", - "created_at": "2026-04-17T08:30:44+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-003", - "role": "user", - "text": "по какой компании мы сейчас работаем?", - "created_at": "2026-04-17T08:30:44+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-004", - "role": "user", - "text": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?", - "created_at": "2026-04-17T08:30:44+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-005", - "role": "user", - "text": "что ты умеешь?", - "created_at": "2026-04-17T08:30:44+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-006", - "role": "user", - "text": "а ты помнишь, что мы по этой позиции уже выяснили?", - "created_at": "2026-04-17T08:30:44+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - } - ], - "agent_run": true, - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "meta and memory recap replay over interrupted address context", - "architecture_phase": "turnaround_11_phase5", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase5_meta_memory_mix.json" - } - } -} diff --git a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417085550_gen-ag04170855-d13dd3.json b/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417085550_gen-ag04170855-d13dd3.json deleted file mode 100644 index 6d4b5db..0000000 --- a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417085550_gen-ag04170855-d13dd3.json +++ /dev/null @@ -1,83 +0,0 @@ -{ - "saved_at": "2026-04-17T08:55:50+00:00", - "generation_id": "gen-ag04170855-d13dd3", - "mode": "saved_user_sessions", - "title": "AGENT | Phase 6 provider/runtime replay across chat, meta, and address boundaries", - "agent_run": true, - "questions": [ - "привет, как дела?", - "по какой компании мы сейчас работаем?", - "что ты можешь по 1С?", - "какие остатки на складе на март 2021", - "а исторические остатки тоже можешь?" - ], - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "provider runtime axis hardening across chat meta and address boundaries", - "architecture_phase": "turnaround_11_phase6", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase6_provider_axis_mix.json" - }, - "source_session_id": null, - "session": { - "session_id": null, - "mode": "agent_semantic_run", - "items": [ - { - "message_id": "agent-user-001", - "role": "user", - "text": "привет, как дела?", - "created_at": "2026-04-17T08:55:50+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-002", - "role": "user", - "text": "по какой компании мы сейчас работаем?", - "created_at": "2026-04-17T08:55:50+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-003", - "role": "user", - "text": "что ты можешь по 1С?", - "created_at": "2026-04-17T08:55:50+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-004", - "role": "user", - "text": "какие остатки на складе на март 2021", - "created_at": "2026-04-17T08:55:50+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-005", - "role": "user", - "text": "а исторические остатки тоже можешь?", - "created_at": "2026-04-17T08:55:50+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - } - ], - "agent_run": true, - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "provider runtime axis hardening across chat meta and address boundaries", - "architecture_phase": "turnaround_11_phase6", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase6_provider_axis_mix.json" - } - } -} diff --git a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417091127_gen-ag04170911-ff51e1.json b/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417091127_gen-ag04170911-ff51e1.json deleted file mode 100644 index c9b6897..0000000 --- a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417091127_gen-ag04170911-ff51e1.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "saved_at": "2026-04-17T09:11:27+00:00", - "generation_id": "gen-ag04170911-ff51e1", - "mode": "saved_user_sessions", - "title": "AGENT | Phase 7 acceptance replay for inventory root, selected-object continuity, and human meta boundaries", - "agent_run": true, - "questions": [ - "какие остатки на складе на март 2021", - "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?", - "По выбранному объекту \"Столешница 600*3050*26 альмандин\": покажи документы по этой позиции", - "покажи еще раз остатки на эту же дату", - "по какой компании мы сейчас работаем?", - "а исторические остатки тоже можешь?" - ], - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "scenario acceptance gate over root selected-object restore and human meta", - "architecture_phase": "turnaround_11_phase7", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase7_acceptance_gate_mix.json" - }, - "source_session_id": null, - "session": { - "session_id": null, - "mode": "agent_semantic_run", - "items": [ - { - "message_id": "agent-user-001", - "role": "user", - "text": "какие остатки на складе на март 2021", - "created_at": "2026-04-17T09:11:27+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-002", - "role": "user", - "text": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?", - "created_at": "2026-04-17T09:11:27+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-003", - "role": "user", - "text": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": покажи документы по этой позиции", - "created_at": "2026-04-17T09:11:27+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-004", - "role": "user", - "text": "покажи еще раз остатки на эту же дату", - "created_at": "2026-04-17T09:11:27+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-005", - "role": "user", - "text": "по какой компании мы сейчас работаем?", - "created_at": "2026-04-17T09:11:27+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-006", - "role": "user", - "text": "а исторические остатки тоже можешь?", - "created_at": "2026-04-17T09:11:27+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - } - ], - "agent_run": true, - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "scenario acceptance gate over root selected-object restore and human meta", - "architecture_phase": "turnaround_11_phase7", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase7_acceptance_gate_mix.json" - } - } -} diff --git a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417093144_gen-ag04170931-6bb7e5.json b/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417093144_gen-ag04170931-6bb7e5.json deleted file mode 100644 index 0c71868..0000000 --- a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417093144_gen-ag04170931-6bb7e5.json +++ /dev/null @@ -1,173 +0,0 @@ -{ - "saved_at": "2026-04-17T09:31:44+00:00", - "generation_id": "gen-ag04170931-6bb7e5", - "mode": "saved_user_sessions", - "title": "AGENT | Phase 7 mixed replay for documents, selected-object continuity, meta context, and cross-domain pivots", - "agent_run": true, - "questions": [ - "привет, как дела?", - "по какой компании мы сейчас работаем?", - "покажи все документы по чепурнову", - "что нам отгружал чепурнов, какой товар или услугу?", - "какие остатки на складе на март 2021", - "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?", - "что ты умеешь?", - "По выбранному объекту \"Столешница 600*3050*26 альмандин\": покажи документы по этой позиции", - "а ты помнишь, что мы по этой позиции уже выяснили?", - "покажи еще раз остатки на эту же дату", - "кто нам должен на март 2020", - "остатки по складу на эту же дату", - "а исторические остатки тоже можешь?", - "хвосты покажи по счету 60 на август 2022" - ], - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "mixed documents meta and cross-domain replay for turnaround 11", - "architecture_phase": "turnaround_11_phase7", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase7_meta_domain_mix.json" - }, - "source_session_id": null, - "session": { - "session_id": null, - "mode": "agent_semantic_run", - "items": [ - { - "message_id": "agent-user-001", - "role": "user", - "text": "привет, как дела?", - "created_at": "2026-04-17T09:31:44+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-002", - "role": "user", - "text": "по какой компании мы сейчас работаем?", - "created_at": "2026-04-17T09:31:44+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-003", - "role": "user", - "text": "покажи все документы по чепурнову", - "created_at": "2026-04-17T09:31:44+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-004", - "role": "user", - "text": "что нам отгружал чепурнов, какой товар или услугу?", - "created_at": "2026-04-17T09:31:44+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-005", - "role": "user", - "text": "какие остатки на складе на март 2021", - "created_at": "2026-04-17T09:31:44+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-006", - "role": "user", - "text": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?", - "created_at": "2026-04-17T09:31:44+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-007", - "role": "user", - "text": "что ты умеешь?", - "created_at": "2026-04-17T09:31:44+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-008", - "role": "user", - "text": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": покажи документы по этой позиции", - "created_at": "2026-04-17T09:31:44+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-009", - "role": "user", - "text": "а ты помнишь, что мы по этой позиции уже выяснили?", - "created_at": "2026-04-17T09:31:44+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-010", - "role": "user", - "text": "покажи еще раз остатки на эту же дату", - "created_at": "2026-04-17T09:31:44+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-011", - "role": "user", - "text": "кто нам должен на март 2020", - "created_at": "2026-04-17T09:31:44+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-012", - "role": "user", - "text": "остатки по складу на эту же дату", - "created_at": "2026-04-17T09:31:44+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-013", - "role": "user", - "text": "а исторические остатки тоже можешь?", - "created_at": "2026-04-17T09:31:44+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-014", - "role": "user", - "text": "хвосты покажи по счету 60 на август 2022", - "created_at": "2026-04-17T09:31:44+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - } - ], - "agent_run": true, - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "mixed documents meta and cross-domain replay for turnaround 11", - "architecture_phase": "turnaround_11_phase7", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase7_meta_domain_mix.json" - } - } -} diff --git a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417094132_gen-ag04170941-87680e.json b/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417094132_gen-ag04170941-87680e.json deleted file mode 100644 index a69bca0..0000000 --- a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417094132_gen-ag04170941-87680e.json +++ /dev/null @@ -1,173 +0,0 @@ -{ - "saved_at": "2026-04-17T09:41:32+00:00", - "generation_id": "gen-ag04170941-87680e", - "mode": "saved_user_sessions", - "title": "AGENT | Phase 7 mixed replay for documents, selected-object continuity, meta context, and cross-domain pivots", - "agent_run": true, - "questions": [ - "привет, как дела?", - "по какой компании мы сейчас работаем?", - "покажи все документы по чепурнову", - "что нам отгружал чепурнов, какой товар или услугу?", - "какие остатки на складе на март 2021", - "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?", - "что ты умеешь?", - "По выбранному объекту \"Столешница 600*3050*26 альмандин\": покажи документы по этой позиции", - "а ты помнишь, что мы по этой позиции уже выяснили?", - "покажи еще раз остатки на эту же дату", - "кто нам должен на март 2020", - "остатки по складу на эту же дату", - "а исторические остатки тоже можешь?", - "хвосты покажи по счету 60 на август 2022" - ], - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "mixed documents meta and cross-domain replay for turnaround 11", - "architecture_phase": "turnaround_11_phase7", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase7_meta_domain_mix.json" - }, - "source_session_id": null, - "session": { - "session_id": null, - "mode": "agent_semantic_run", - "items": [ - { - "message_id": "agent-user-001", - "role": "user", - "text": "привет, как дела?", - "created_at": "2026-04-17T09:41:32+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-002", - "role": "user", - "text": "по какой компании мы сейчас работаем?", - "created_at": "2026-04-17T09:41:32+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-003", - "role": "user", - "text": "покажи все документы по чепурнову", - "created_at": "2026-04-17T09:41:32+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-004", - "role": "user", - "text": "что нам отгружал чепурнов, какой товар или услугу?", - "created_at": "2026-04-17T09:41:32+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-005", - "role": "user", - "text": "какие остатки на складе на март 2021", - "created_at": "2026-04-17T09:41:32+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-006", - "role": "user", - "text": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?", - "created_at": "2026-04-17T09:41:32+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-007", - "role": "user", - "text": "что ты умеешь?", - "created_at": "2026-04-17T09:41:32+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-008", - "role": "user", - "text": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": покажи документы по этой позиции", - "created_at": "2026-04-17T09:41:32+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-009", - "role": "user", - "text": "а ты помнишь, что мы по этой позиции уже выяснили?", - "created_at": "2026-04-17T09:41:32+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-010", - "role": "user", - "text": "покажи еще раз остатки на эту же дату", - "created_at": "2026-04-17T09:41:32+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-011", - "role": "user", - "text": "кто нам должен на март 2020", - "created_at": "2026-04-17T09:41:32+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-012", - "role": "user", - "text": "остатки по складу на эту же дату", - "created_at": "2026-04-17T09:41:32+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-013", - "role": "user", - "text": "а исторические остатки тоже можешь?", - "created_at": "2026-04-17T09:41:32+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-014", - "role": "user", - "text": "хвосты покажи по счету 60 на август 2022", - "created_at": "2026-04-17T09:41:32+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - } - ], - "agent_run": true, - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "mixed documents meta and cross-domain replay for turnaround 11", - "architecture_phase": "turnaround_11_phase7", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase7_meta_domain_mix.json" - } - } -} diff --git a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417132600_gen-ag04171326-15a132.json b/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417132600_gen-ag04171326-15a132.json deleted file mode 100644 index cce58df..0000000 --- a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417132600_gen-ag04171326-15a132.json +++ /dev/null @@ -1,199 +0,0 @@ -{ - "saved_at": "2026-04-17T13:26:00+00:00", - "generation_id": "gen-ag04171326-15a132", - "mode": "saved_user_sessions", - "title": "AGENT replay for company selection continuity and organization activity age", - "agent_run": true, - "questions": [ - "привет, как дела?", - "по какой компании мы сейчас работаем?", - "какие остатки на складе на март 2021", - "давай по Альтернативе Плюс", - "тогда покажи остатки на март 2021", - "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?", - "По выбранному объекту \"Столешница 600*3050*26 альмандин\": покажи документы по этой позиции", - "покажи еще раз остатки на эту же дату", - "а по Альтернативе Плюс сколько лет активности в базе 1С?", - "что ты умеешь?", - "а ты помнишь, что мы по этой позиции уже выяснили?", - "кто нам должен на март 2020", - "остатки по складу на эту же дату" - ], - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "Targeted AGENT replay for the multi-company clarification flow: select the company in-session, continue the same business path, verify selected-object continuity, then probe whether organization age/activity can be answered from reachable 1C evidence without leaking technical garbage.", - "architecture_phase": "turnaround_11", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase5_company_selection_and_activity_age.json", - "scenario_id": "address_truth_harness_phase5_company_selection_and_activity_age", - "semantic_tags": [ - "company_clarification", - "company_selected", - "company_selection", - "inventory_root", - "meta_capability", - "meta_memory", - "meta_scope", - "meta_smalltalk", - "organization_activity_age", - "same_date_pivot", - "same_date_restore", - "selected_object", - "selected_object_documents", - "selected_object_supplier", - "settlements_receivables" - ] - }, - "source_session_id": null, - "session": { - "session_id": null, - "mode": "agent_semantic_run", - "items": [ - { - "message_id": "agent-user-001", - "role": "user", - "text": "привет, как дела?", - "created_at": "2026-04-17T13:26:00+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-002", - "role": "user", - "text": "по какой компании мы сейчас работаем?", - "created_at": "2026-04-17T13:26:00+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-003", - "role": "user", - "text": "какие остатки на складе на март 2021", - "created_at": "2026-04-17T13:26:00+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-004", - "role": "user", - "text": "давай по Альтернативе Плюс", - "created_at": "2026-04-17T13:26:00+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-005", - "role": "user", - "text": "тогда покажи остатки на март 2021", - "created_at": "2026-04-17T13:26:00+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-006", - "role": "user", - "text": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?", - "created_at": "2026-04-17T13:26:00+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-007", - "role": "user", - "text": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": покажи документы по этой позиции", - "created_at": "2026-04-17T13:26:00+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-008", - "role": "user", - "text": "покажи еще раз остатки на эту же дату", - "created_at": "2026-04-17T13:26:00+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-009", - "role": "user", - "text": "а по Альтернативе Плюс сколько лет активности в базе 1С?", - "created_at": "2026-04-17T13:26:00+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-010", - "role": "user", - "text": "что ты умеешь?", - "created_at": "2026-04-17T13:26:00+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-011", - "role": "user", - "text": "а ты помнишь, что мы по этой позиции уже выяснили?", - "created_at": "2026-04-17T13:26:00+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-012", - "role": "user", - "text": "кто нам должен на март 2020", - "created_at": "2026-04-17T13:26:00+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-013", - "role": "user", - "text": "остатки по складу на эту же дату", - "created_at": "2026-04-17T13:26:00+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - } - ], - "agent_run": true, - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "Targeted AGENT replay for the multi-company clarification flow: select the company in-session, continue the same business path, verify selected-object continuity, then probe whether organization age/activity can be answered from reachable 1C evidence without leaking technical garbage.", - "architecture_phase": "turnaround_11", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase5_company_selection_and_activity_age.json", - "scenario_id": "address_truth_harness_phase5_company_selection_and_activity_age", - "semantic_tags": [ - "company_clarification", - "company_selected", - "company_selection", - "inventory_root", - "meta_capability", - "meta_memory", - "meta_scope", - "meta_smalltalk", - "organization_activity_age", - "same_date_pivot", - "same_date_restore", - "selected_object", - "selected_object_documents", - "selected_object_supplier", - "settlements_receivables" - ] - } - } -} diff --git a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417150806_gen-ag04171508-760111.json b/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417150806_gen-ag04171508-760111.json deleted file mode 100644 index d297756..0000000 --- a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260417150806_gen-ag04171508-760111.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "saved_at": "2026-04-17T15:08:06+00:00", - "generation_id": "gen-ag04171508-760111", - "mode": "saved_user_sessions", - "title": "AGENT replay for inventory clarification continuity and answer-shape cleanliness", - "agent_run": true, - "questions": [ - "какие остатки на складе на март 2021", - "давай по Альтернативе Плюс", - "тогда покажи остатки на март 2021", - "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?", - "а по этой позиции когда была закупка?", - "покажи документы по этой позиции", - "покажи еще раз остатки на эту же дату", - "а что мы уже выяснили по этой позиции?" - ], - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "Targeted AGENT replay for the recent compose/inventory fixes: company clarification, inventory root restore, selected-object provenance, purchase date/documents follow-ups, and protection against technical garbage in user-facing replies.", - "architecture_phase": "turnaround_11", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase4_inventory_answer_shape_continuity.json", - "scenario_id": "address_truth_harness_phase4_inventory_answer_shape_continuity", - "semantic_tags": [ - "company_clarification", - "company_selection", - "inventory_root", - "meta_memory", - "meta_scope" - ] - }, - "source_session_id": null, - "session": { - "session_id": null, - "mode": "agent_semantic_run", - "items": [ - { - "message_id": "agent-user-001", - "role": "user", - "text": "какие остатки на складе на март 2021", - "created_at": "2026-04-17T15:08:06+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-002", - "role": "user", - "text": "давай по Альтернативе Плюс", - "created_at": "2026-04-17T15:08:06+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-003", - "role": "user", - "text": "тогда покажи остатки на март 2021", - "created_at": "2026-04-17T15:08:06+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-004", - "role": "user", - "text": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?", - "created_at": "2026-04-17T15:08:06+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-005", - "role": "user", - "text": "а по этой позиции когда была закупка?", - "created_at": "2026-04-17T15:08:06+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-006", - "role": "user", - "text": "покажи документы по этой позиции", - "created_at": "2026-04-17T15:08:06+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-007", - "role": "user", - "text": "покажи еще раз остатки на эту же дату", - "created_at": "2026-04-17T15:08:06+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-008", - "role": "user", - "text": "а что мы уже выяснили по этой позиции?", - "created_at": "2026-04-17T15:08:06+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - } - ], - "agent_run": true, - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "Targeted AGENT replay for the recent compose/inventory fixes: company clarification, inventory root restore, selected-object provenance, purchase date/documents follow-ups, and protection against technical garbage in user-facing replies.", - "architecture_phase": "turnaround_11", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase4_inventory_answer_shape_continuity.json", - "scenario_id": "address_truth_harness_phase4_inventory_answer_shape_continuity", - "semantic_tags": [ - "company_clarification", - "company_selection", - "inventory_root", - "meta_memory", - "meta_scope" - ] - } - } -} diff --git a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260419164457_gen-mo5zy5vo-z9klj34.json b/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260419164457_gen-mo5zy5vo-z9klj34.json deleted file mode 100644 index 2b9befe..0000000 --- a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260419164457_gen-mo5zy5vo-z9klj34.json +++ /dev/null @@ -1,5165 +0,0 @@ -{ - "saved_at": "2026-04-19T16:44:57.542Z", - "generation_id": "gen-mo5zy5vo-z9klj34", - "mode": "saved_user_sessions", - "title": "Ручная сессия 19.04.2026, 18:58:20", - "source_session_id": "asst-HFD9N5qwZM", - "questions": [ - "привет как дела", - "кто намс должен денег на сегодня", - "что ты можешь", - "кто нам должен денег на сегодня", - "а мы кому", - "какиек остатки на складе на сегодня", - "альтернатива", - "покажи документы по чепурнову", - "какой оборот был свк" - ], - "session": { - "session_id": "asst-HFD9N5qwZM", - "updated_at": "2026-04-19T15:58:20.316Z", - "items": [ - { - "message_id": "msg-wB07pLW2K3", - "session_id": "asst-HFD9N5qwZM", - "role": "user", - "text": "привет как дела", - "reply_type": null, - "created_at": "2026-04-19T15:42:13.731Z", - "trace_id": null, - "debug": null - }, - { - "message_id": "msg-bhwn575Pnc", - "session_id": "asst-HFD9N5qwZM", - "role": "assistant", - "text": "Привет! Всё нормально. Если дальше пойдём в данные 1С, могу сразу зафиксировать организацию: ООО Альтернатива Плюс, ООО Лайсвуд, РАЙМ. Просто напишите название компании, и дальше буду держать её активной в этой сессии.", - "reply_type": "factual_with_explanation", - "created_at": "2026-04-19T15:42:25.974Z", - "trace_id": "chat-P6TSNKGo6f", - "debug": { - "trace_id": "chat-P6TSNKGo6f", - "prompt_version": "living_chat_router_v1", - "schema_version": "living_chat_router_v1", - "fallback_type": "none", - "detected_mode": "chat", - "detected_mode_confidence": "high", - "execution_lane": "living_chat", - "living_router_mode": "chat", - "living_router_reason": "non_domain_query_indexed", - "living_chat_response_source": "deterministic_smalltalk_with_proactive_scope_offer", - "living_chat_script_guard_applied": false, - "living_chat_script_guard_reason": null, - "living_chat_grounding_guard_applied": false, - "living_chat_grounding_guard_reason": null, - "living_chat_proactive_scope_offer_applied": true, - "living_chat_data_scope_probe_status": "resolved", - "living_chat_data_scope_probe_channel": "default", - "living_chat_data_scope_probe_org_count": 3, - "living_chat_data_scope_probe_organizations": [ - "ООО Альтернатива Плюс", - "ООО Лайсвуд", - "РАЙМ" - ], - "living_chat_data_scope_probe_error": null, - "living_chat_continuity_grounded_context_detected": false, - "living_chat_continuity_active_organization": null, - "living_chat_selected_organization": null, - "assistant_known_organizations": [ - "ООО Альтернатива Плюс", - "ООО Лайсвуд", - "РАЙМ" - ], - "assistant_active_organization": null, - "address_llm_predecompose_attempted": true, - "address_llm_predecompose_applied": false, - "address_llm_predecompose_reason": "no_usable_fragment", - "address_llm_predecompose_contract": { - "schema_version": "address_llm_predecompose_contract_v1", - "source_message": "привет как дела", - "canonical_message": "привет как дела", - "mode": "unsupported", - "mode_confidence": "low", - "query_shape": "UNKNOWN", - "query_shape_confidence": "low", - "intent": "unknown", - "intent_confidence": "low", - "entities": { - "account": null, - "counterparty": null, - "contract": null, - "document_type": null, - "document_ref": null, - "organization": null - }, - "period": { - "scope": "unspecified", - "period_from": null, - "period_to": null, - "as_of_date": null, - "has_explicit_period": false - }, - "semantics": { - "scope_kind": "none", - "anchor_kind": "none", - "anchor_value": null, - "date_scope_kind": "none", - "date_basis_hint": null, - "self_scope_detected": false, - "selected_object_scope_detected": false - }, - "aggregation_profile": "unknown" - }, - "address_semantic_extraction_contract": { - "schema_version": "address_semantic_extraction_contract_v1", - "source_message": "привет как дела", - "canonical_message": "привет как дела", - "canonical_rewrite_applied": false, - "extraction": { - "mode": "unsupported", - "mode_confidence": "low", - "query_shape": "UNKNOWN", - "query_shape_confidence": "low", - "intent": "unknown", - "intent_confidence": "low", - "aggregation_profile": "unknown" - }, - "entities": { - "account": null, - "counterparty": null, - "contract": null, - "document_type": null, - "document_ref": null, - "organization": null - }, - "period": { - "scope": "unspecified", - "period_from": null, - "period_to": null, - "as_of_date": null, - "has_explicit_period": false - }, - "semantics": { - "scope_kind": "none", - "anchor_kind": "none", - "anchor_value": null, - "date_scope_kind": "none", - "date_basis_hint": null, - "self_scope_detected": false, - "selected_object_scope_detected": false - }, - "guard_hints": { - "source_data_signal_detected": false, - "canonical_data_signal_detected": false, - "data_scope_meta_query_detected": false, - "deep_investigation_signal_detected": false, - "required_anchor_missing": false, - "unsupported_low_confidence": true, - "semantic_drift_suspected": false - }, - "quality": "low", - "valid": false, - "apply_canonical_recommended": false, - "reason_codes": [ - "unsupported_low_confidence_contract" - ] - }, - "orchestration_contract_v1": { - "schema_version": "assistant_orchestration_contract_v1", - "hard_meta_mode": "non_domain", - "provider_execution": { - "schema_version": "assistant_provider_execution_contract_v1", - "policy_owner": "assistantProviderExecutionPolicy", - "provider_mode": "unknown", - "normalized_provider": null, - "use_mock": false, - "base_url_configured": false, - "llm_runtime_unavailable_detected": false, - "living_mode_forced_deep": false, - "living_mode_forced_reason": null, - "reason_codes": [ - "provider_unknown" - ] - }, - "address_mode": "unsupported", - "address_mode_confidence": "low", - "address_intent": "unknown", - "address_intent_confidence": "low", - "strong_data_signal_detected": false, - "data_retrieval_signal_detected": false, - "followup_context_detected": false, - "unsupported_address_intent_fallback_to_deep": false, - "final_decision": { - "run_address_lane": false, - "tool_gate_decision": "skip_address_lane", - "tool_gate_reason": "non_domain_query_indexed", - "living_mode": "chat", - "living_reason": "non_domain_query_indexed" - } - }, - "tool_gate_decision": "skip_address_lane", - "tool_gate_reason": "non_domain_query_indexed", - "normalized": null, - "normalizer_output": null - } - }, - { - "message_id": "msg-zGoYrBHFNn", - "session_id": "asst-HFD9N5qwZM", - "role": "user", - "text": "кто намс должен денег на сегодня", - "reply_type": null, - "created_at": "2026-04-19T15:42:50.135Z", - "trace_id": null, - "debug": null - }, - { - "message_id": "msg-dZvpQ9I04_", - "session_id": "asst-HFD9N5qwZM", - "role": "assistant", - "text": "На текущий момент не удается точно определить, кто из контрагентов должен деньги компании на сегодняшнюю дату — такой запрос пока не поддерживается в рамках доступных сценариев.\n\nПроверено: данные по конкретным контрагентам, договорам и остаткам по счетам за последние периоды. Однако прямой расчёт задолженности «на текущую дату» по всем контрагентам недоступен.\n\nРекомендую уточнить запрос: можно проверить остатки по конкретному контрагенту или просмотреть документы и платежи по выбранному договору.", - "reply_type": "partial_coverage", - "created_at": "2026-04-19T15:43:09.425Z", - "trace_id": "address-w4mBasVNl3", - "debug": { - "trace_id": "address-w4mBasVNl3", - "prompt_version": "address_query_runtime_v1", - "schema_version": "address_query_runtime_v1", - "fallback_type": "partial", - "route_summary": null, - "fragments": [], - "requirements_extracted": [], - "coverage_report": { - "requirements_total": 0, - "requirements_covered": 0, - "requirements_uncovered": [], - "requirements_partially_covered": [], - "clarification_needed_for": [], - "out_of_scope_requirements": [] - }, - "routes": [], - "retrieval_status": [], - "retrieval_results": [], - "answer_grounding_check": { - "status": "partial", - "route_subject_match": true, - "missing_requirements": [], - "reasons": [ - "address_action_detected", - "address_entity_detected", - "compound_signal_detected", - "intent_not_supported_in_v1" - ], - "why_included_summary": [], - "selection_reason_summary": [] - }, - "dropped_intent_segments": [], - "detected_mode": "address_query", - "detected_mode_confidence": "high", - "query_shape": "COMPOUND_FACTUAL_QUERY", - "query_shape_confidence": "medium", - "detected_intent": "unknown", - "detected_intent_confidence": "low", - "extracted_filters": { - "sort": "period_desc", - "limit": 20, - "counterparty": "на текущую дату" - }, - "missing_required_filters": [], - "selected_recipe": null, - "mcp_call_status_legacy": "skipped", - "account_scope_mode": "strict", - "account_scope_fallback_applied": false, - "anchor_type": "counterparty", - "anchor_value_raw": "на текущую дату", - "anchor_value_resolved": "на текущую дату", - "resolver_confidence": "medium", - "ambiguity_count": 0, - "match_failure_stage": "none", - "match_failure_reason": null, - "mcp_call_status": "skipped", - "rows_fetched": 0, - "raw_rows_received": 0, - "rows_after_account_scope": 0, - "rows_after_recipe_filter": 0, - "rows_materialized": 0, - "rows_matched": 0, - "raw_row_keys_sample": [], - "materialization_drop_reason": "none", - "account_token_raw": null, - "account_token_normalized": null, - "account_scope_fields_checked": [ - "account_dt", - "account_kt", - "registrator", - "analytics" - ], - "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", - "account_scope_drop_reason": "not_applicable", - "runtime_readiness": "DEEP_ONLY", - "limited_reason_category": "unsupported", - "response_type": "LIMITED_WITH_REASON", - "capability_id": "address_unknown", - "capability_layer": "conversational", - "capability_route_mode": "exact", - "capability_route_enabled": true, - "capability_route_reason": "generic_address_route_enabled", - "shadow_route_status": "skipped", - "route_expectation_status": "not_found", - "route_expectation_reason": "route_expectation_not_defined_for_intent", - "route_expectation_expected_selected_recipes": [], - "route_expectation_expected_requested_result_modes": [], - "route_expectation_expected_result_modes": [], - "execution_lane": "address_query", - "llm_decomposition_applied": true, - "llm_decomposition_attempted": true, - "llm_provider_used": "local", - "llm_decomposition_trace_id": "foaff6rjGSl52d", - "llm_decomposition_effective_message": "определить, кто из контрагентов должен деньги компании на текущую дату", - "llm_decomposition_reason": "normalized_fragment_applied", - "llm_canonical_candidate_detected": true, - "llm_predecompose_contract": { - "schema_version": "address_llm_predecompose_contract_v1", - "source_message": "кто намс должен денег на сегодня", - "canonical_message": "определить, кто из контрагентов должен деньги компании на текущую дату", - "mode": "address_query", - "mode_confidence": "high", - "query_shape": "COMPOUND_FACTUAL_QUERY", - "query_shape_confidence": "medium", - "intent": "unknown", - "intent_confidence": "low", - "entities": { - "account": null, - "counterparty": "на текущую дату", - "contract": null, - "document_type": null, - "document_ref": null, - "organization": null - }, - "period": { - "scope": "unspecified", - "period_from": null, - "period_to": null, - "as_of_date": null, - "has_explicit_period": true - }, - "semantics": { - "scope_kind": "implicit_self_scope", - "anchor_kind": "self_scope", - "anchor_value": null, - "date_scope_kind": "explicit", - "date_basis_hint": null, - "self_scope_detected": true, - "selected_object_scope_detected": false - }, - "aggregation_profile": "unknown" - }, - "fallback_rule_hit": null, - "sanitized_user_message": "кто намс должен денег на сегодня", - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "address_mode_classifier_detected", - "orchestration_contract_v1": { - "schema_version": "assistant_orchestration_contract_v1", - "hard_meta_mode": null, - "provider_execution": { - "schema_version": "assistant_provider_execution_contract_v1", - "policy_owner": "assistantProviderExecutionPolicy", - "provider_mode": "unknown", - "normalized_provider": null, - "use_mock": false, - "base_url_configured": false, - "llm_runtime_unavailable_detected": false, - "living_mode_forced_deep": false, - "living_mode_forced_reason": null, - "reason_codes": [ - "provider_unknown" - ] - }, - "address_mode": "address_query", - "address_mode_confidence": "high", - "address_intent": "unknown", - "address_intent_confidence": "low", - "strong_data_signal_detected": true, - "data_retrieval_signal_detected": true, - "semantic_contract_valid": true, - "semantic_apply_canonical_recommended": true, - "semantic_reason_codes": [], - "semantic_route_arbitration": { - "supported_address_intent_detected": true, - "strict_deep_investigation_bypass_allowed": false, - "semantic_deep_investigation_hint_detected": false, - "semantic_aggregate_shape_detected": false, - "exact_address_intent_protected_from_semantic_deep_hint": false, - "followup_semantic_override_to_deep_allowed": false - }, - "followup_context_detected": false, - "unsupported_address_intent_fallback_to_deep": false, - "deep_analysis_signal_fallback_to_deep": false, - "aggregate_analytics_signal_fallback_to_deep": false, - "deep_session_continuation_fallback_to_deep": false, - "answer_inspection_followup_over_grounded_answer": false, - "final_decision": { - "run_address_lane": true, - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "address_mode_classifier_detected", - "living_mode": "address_data", - "living_reason": "address_lane_triggered" - } - }, - "dialog_continuation_contract_v2": { - "schema_version": "address_dialog_continuation_contract_v2", - "source_message": "кто намс должен денег на сегодня", - "effective_message": "определить, кто из контрагентов должен деньги компании на текущую дату", - "decision": "new_topic", - "decision_reasons": [ - "effective_message_rewritten_by_predecompose" - ], - "followup_context_applied": false, - "previous_intent": null, - "target_intent": null, - "intent_selection_mode": null, - "anchor_type": null, - "anchor_value": null, - "implicit_continuation_signal": false - }, - "address_retry_audit": { - "attempted": true, - "reason": "limited_result_retry_with_raw_message", - "initial_limited_category": "unsupported", - "retry_message": "кто намс должен денег на сегодня", - "retry_used_followup_context": false, - "retry_result_category": "unsupported" - }, - "answer_structure_v11": null, - "investigation_state_snapshot": null, - "normalized": null, - "normalizer_output": { - "trace_id": "foaff6rjGSl52d", - "prompt_version": "normalizer_v2_0_2", - "applied": true, - "effective_message": "определить, кто из контрагентов должен деньги компании на текущую дату" - }, - "assistant_known_organizations": [ - "ООО Альтернатива Плюс", - "ООО Лайсвуд", - "РАЙМ" - ], - "assistant_runtime_contract_v1": { - "schema_version": "assistant_runtime_contracts_v1", - "transition_contract_id": null, - "transition_contract_title": null, - "transition_contract_reason": [ - "transition_contract_not_resolved" - ], - "capability_contract_id": null, - "capability_contract_reason": [ - "debug_capability_id_has_no_contract" - ], - "truth_gate_contract_status": "partial_supported", - "carryover_eligibility": "none" - }, - "transition_contract_id": null, - "capability_contract_id": null, - "truth_gate_contract_status": "partial_supported", - "assistant_truth_answer_policy_v1": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "truth_gate": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "partial", - "evidence_grade": "weak", - "grounding_status": "partial", - "truth_mode": "limited", - "carryover_eligibility": "none", - "reason_codes": [ - "truth_gate_partial_supported", - "truth_mode_limited", - "transition_contract_not_resolved", - "debug_capability_id_has_no_contract", - "route_expectation_not_defined_for_intent", - "address_action_detected", - "address_entity_detected", - "compound_signal_detected", - "intent_not_supported_in_v1" - ], - "source_truth_gate_status": "partial_supported", - "blocked_or_limited_explanation": "evidence_or_coverage_is_partial" - }, - "answer_shape": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "limited_with_reason", - "reply_type": "partial_coverage", - "capability_contract_id": null, - "transition_contract_id": null, - "may_state_confirmed_facts": true, - "must_include_limitation": true, - "may_power_followup": false, - "required_sections": [ - "direct_answer", - "evidence_window", - "limitations" - ], - "downgrade_only": true - } - }, - "coverage_gate_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "partial", - "evidence_grade": "weak", - "grounding_status": "partial", - "truth_mode": "limited", - "carryover_eligibility": "none", - "reason_codes": [ - "truth_gate_partial_supported", - "truth_mode_limited", - "transition_contract_not_resolved", - "debug_capability_id_has_no_contract", - "route_expectation_not_defined_for_intent", - "address_action_detected", - "address_entity_detected", - "compound_signal_detected", - "intent_not_supported_in_v1" - ], - "source_truth_gate_status": "partial_supported", - "blocked_or_limited_explanation": "evidence_or_coverage_is_partial" - }, - "answer_shape_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "limited_with_reason", - "reply_type": "partial_coverage", - "capability_contract_id": null, - "transition_contract_id": null, - "may_state_confirmed_facts": true, - "must_include_limitation": true, - "may_power_followup": false, - "required_sections": [ - "direct_answer", - "evidence_window", - "limitations" - ], - "downgrade_only": true - }, - "truth_mode": "limited", - "carryover_eligibility": "none", - "answer_shape": "limited_with_reason", - "assistant_state_transition_v1": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": null, - "transition_title": null, - "application_status": "unresolved", - "declared_carryover_depth": null, - "truth_gate_carryover_depth": "none", - "effective_carryover_depth": "none", - "required_prior_state": [], - "expected_answer_mode": null, - "state_mutations": [], - "forbidden_carryover": [ - "implicit_followup_reuse" - ], - "state_actions": { - "living_mode_state": "none", - "root_frame_state": "none", - "selected_object_frame_state": "none", - "meta_frame_state": "none", - "clarification_state": "none", - "coverage_gate_state": "none", - "answer_context_state": "none" - }, - "coverage_gate_state": { - "coverage_status": "partial", - "evidence_grade": "weak", - "grounding_status": "partial", - "truth_mode": "limited", - "carryover_eligibility": "none", - "reason_codes": [ - "truth_gate_partial_supported", - "truth_mode_limited", - "transition_contract_not_resolved", - "debug_capability_id_has_no_contract", - "route_expectation_not_defined_for_intent", - "address_action_detected", - "address_entity_detected", - "compound_signal_detected", - "intent_not_supported_in_v1" - ] - }, - "reason_codes": [ - "transition_status_unresolved", - "transition_unresolved", - "transition_contract_not_resolved", - "debug_capability_id_has_no_contract", - "truth_gate_partial_supported", - "truth_mode_limited", - "route_expectation_not_defined_for_intent", - "address_action_detected", - "address_entity_detected", - "compound_signal_detected", - "intent_not_supported_in_v1" - ] - }, - "state_transition_contract": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": null, - "transition_title": null, - "application_status": "unresolved", - "declared_carryover_depth": null, - "truth_gate_carryover_depth": "none", - "effective_carryover_depth": "none", - "required_prior_state": [], - "expected_answer_mode": null, - "state_mutations": [], - "forbidden_carryover": [ - "implicit_followup_reuse" - ], - "state_actions": { - "living_mode_state": "none", - "root_frame_state": "none", - "selected_object_frame_state": "none", - "meta_frame_state": "none", - "clarification_state": "none", - "coverage_gate_state": "none", - "answer_context_state": "none" - }, - "coverage_gate_state": { - "coverage_status": "partial", - "evidence_grade": "weak", - "grounding_status": "partial", - "truth_mode": "limited", - "carryover_eligibility": "none", - "reason_codes": [ - "truth_gate_partial_supported", - "truth_mode_limited", - "transition_contract_not_resolved", - "debug_capability_id_has_no_contract", - "route_expectation_not_defined_for_intent", - "address_action_detected", - "address_entity_detected", - "compound_signal_detected", - "intent_not_supported_in_v1" - ] - }, - "reason_codes": [ - "transition_status_unresolved", - "transition_unresolved", - "transition_contract_not_resolved", - "debug_capability_id_has_no_contract", - "truth_gate_partial_supported", - "truth_mode_limited", - "route_expectation_not_defined_for_intent", - "address_action_detected", - "address_entity_detected", - "compound_signal_detected", - "intent_not_supported_in_v1" - ] - }, - "state_transition_id": null, - "state_transition_status": "unresolved", - "effective_carryover_depth": "none", - "assistant_capability_binding_v1": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "address_unknown", - "capability_contract_id": null, - "binding_status": "contract_missing", - "binding_action": "observe_only", - "runtime_lane_expected": null, - "runtime_lane_observed": "address_exact", - "execution_adapter": null, - "transition_id": null, - "transition_allowed": false, - "required_anchors": [], - "provided_anchors": [ - "sort", - "limit", - "counterparty" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": null, - "answer_object_shape": null, - "truth_gate_behavior": null, - "truth_fallback_allowed": null, - "answer_shape_compatible": false, - "violations": [ - "capability_contract_missing" - ], - "reason_codes": [ - "binding_status_contract_missing", - "binding_action_observe_only", - "capability_contract_missing", - "transition_status_unresolved", - "transition_unresolved", - "transition_contract_not_resolved", - "debug_capability_id_has_no_contract", - "truth_gate_partial_supported", - "truth_mode_limited", - "route_expectation_not_defined_for_intent", - "address_action_detected", - "address_entity_detected", - "compound_signal_detected", - "intent_not_supported_in_v1" - ] - }, - "capability_binding_contract": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "address_unknown", - "capability_contract_id": null, - "binding_status": "contract_missing", - "binding_action": "observe_only", - "runtime_lane_expected": null, - "runtime_lane_observed": "address_exact", - "execution_adapter": null, - "transition_id": null, - "transition_allowed": false, - "required_anchors": [], - "provided_anchors": [ - "sort", - "limit", - "counterparty" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": null, - "answer_object_shape": null, - "truth_gate_behavior": null, - "truth_fallback_allowed": null, - "answer_shape_compatible": false, - "violations": [ - "capability_contract_missing" - ], - "reason_codes": [ - "binding_status_contract_missing", - "binding_action_observe_only", - "capability_contract_missing", - "transition_status_unresolved", - "transition_unresolved", - "transition_contract_not_resolved", - "debug_capability_id_has_no_contract", - "truth_gate_partial_supported", - "truth_mode_limited", - "route_expectation_not_defined_for_intent", - "address_action_detected", - "address_entity_detected", - "compound_signal_detected", - "intent_not_supported_in_v1" - ] - }, - "capability_binding_status": "contract_missing", - "capability_binding_action": "observe_only", - "capability_binding_violations": [ - "capability_contract_missing" - ], - "capability_binding_response_guard": { - "schema_version": "assistant_capability_binding_response_guard_v1", - "guard_owner": "assistantCapabilityBindingResponseGuard", - "applied": false, - "action": "observe_only", - "original_reply_type": "partial_coverage", - "guarded_reply_type": "partial_coverage", - "reason_codes": [ - "binding_status_contract_missing", - "binding_action_observe_only", - "capability_contract_missing", - "transition_status_unresolved", - "transition_unresolved", - "transition_contract_not_resolved", - "debug_capability_id_has_no_contract", - "truth_gate_partial_supported", - "truth_mode_limited", - "route_expectation_not_defined_for_intent", - "address_action_detected", - "address_entity_detected", - "compound_signal_detected", - "intent_not_supported_in_v1" - ] - } - } - }, - { - "message_id": "msg-KYjsq8REFi", - "session_id": "asst-HFD9N5qwZM", - "role": "user", - "text": "что ты можешь", - "reply_type": null, - "created_at": "2026-04-19T15:43:20.723Z", - "trace_id": null, - "debug": null - }, - { - "message_id": "msg-H9r93w6toV", - "session_id": "asst-HFD9N5qwZM", - "role": "assistant", - "text": "Могу помочь с вопросами по данным 1С : НДС, контрагенты, долги, деньги и склад.\nОсновные направления:\n1. НДС: Расчеты и аналитика по НДС на основании данных 1С.. Например: Сколько НДС к уплате за период?; Покажи срез НДС на дату.\n2. Контрагенты: Срезы активности, платежей и документов по контрагентам.. Например: Покажи документы по контрагенту.; Какие операции по банку были с контрагентом?\n3. Задолженности и расчеты: Аналитика закрытия расчетов, сальдо и признаков незакрытых цепочек.. Например: Закрылись ли расчеты по счету 60/62?; Есть ли незакрытые авансы?\n4. Деньги и остатки: Остатки и динамика по денежным счетам и кассе.. Например: Какой остаток по счету 51 на дату?; Покажи движение денег за месяц.\n5. Товары и складские остатки: Подтвержденные срезы товарных остатков по складам и организациям на дату.. Например: Какие товары сейчас лежат на складе?; Покажи остатки товаров на дату.\n6. Ограничения: Операции, которые ассистент не выполняет в этом рантайме.. Например: Можешь настроить 1С?; Можешь удалить базу?\nЕсли хотите, можно сразу задать конкретный вопрос по документам, остаткам, НДС, контрагенту или договору.\nНе делаю только административные действия: не настраиваю 1С, не меняю конфигурацию, не создаю и не провожу документы, не выполняю админ-действия на сервере.", - "reply_type": "factual_with_explanation", - "created_at": "2026-04-19T15:43:32.905Z", - "trace_id": "chat-NKvtuiR3nf", - "debug": { - "trace_id": "chat-NKvtuiR3nf", - "prompt_version": "living_chat_router_v1", - "schema_version": "living_chat_router_v1", - "fallback_type": "none", - "detected_mode": "chat", - "detected_mode_confidence": "high", - "execution_lane": "living_chat", - "living_router_mode": "chat", - "living_router_reason": "assistant_capability_query_detected", - "living_chat_response_source": "deterministic_capability_contract", - "living_chat_script_guard_applied": false, - "living_chat_script_guard_reason": null, - "living_chat_grounding_guard_applied": false, - "living_chat_grounding_guard_reason": null, - "living_chat_proactive_scope_offer_applied": false, - "living_chat_data_scope_probe_status": null, - "living_chat_data_scope_probe_channel": null, - "living_chat_data_scope_probe_org_count": 0, - "living_chat_data_scope_probe_organizations": [], - "living_chat_data_scope_probe_error": null, - "living_chat_continuity_grounded_context_detected": false, - "living_chat_continuity_active_organization": null, - "living_chat_selected_organization": null, - "assistant_known_organizations": [ - "ООО Альтернатива Плюс", - "ООО Лайсвуд", - "РАЙМ" - ], - "assistant_active_organization": null, - "address_llm_predecompose_attempted": true, - "address_llm_predecompose_applied": false, - "address_llm_predecompose_reason": "normalized_fragment_rejected_semantic_guard", - "address_llm_predecompose_contract": { - "schema_version": "address_llm_predecompose_contract_v1", - "source_message": "что ты можешь", - "canonical_message": "что ты можешь", - "mode": "unsupported", - "mode_confidence": "low", - "query_shape": "UNKNOWN", - "query_shape_confidence": "low", - "intent": "unknown", - "intent_confidence": "low", - "entities": { - "account": null, - "counterparty": null, - "contract": null, - "document_type": null, - "document_ref": null, - "organization": null - }, - "period": { - "scope": "unspecified", - "period_from": null, - "period_to": null, - "as_of_date": null, - "has_explicit_period": false - }, - "semantics": { - "scope_kind": "implicit_self_scope", - "anchor_kind": "self_scope", - "anchor_value": null, - "date_scope_kind": "none", - "date_basis_hint": null, - "self_scope_detected": true, - "selected_object_scope_detected": false - }, - "aggregation_profile": "unknown" - }, - "address_semantic_extraction_contract": { - "schema_version": "address_semantic_extraction_contract_v1", - "source_message": "что ты можешь", - "canonical_message": "что ты можешь", - "canonical_rewrite_applied": false, - "extraction": { - "mode": "unsupported", - "mode_confidence": "low", - "query_shape": "UNKNOWN", - "query_shape_confidence": "low", - "intent": "unknown", - "intent_confidence": "low", - "aggregation_profile": "unknown" - }, - "entities": { - "account": null, - "counterparty": null, - "contract": null, - "document_type": null, - "document_ref": null, - "organization": null - }, - "period": { - "scope": "unspecified", - "period_from": null, - "period_to": null, - "as_of_date": null, - "has_explicit_period": false - }, - "semantics": { - "scope_kind": "implicit_self_scope", - "anchor_kind": "self_scope", - "anchor_value": null, - "date_scope_kind": "none", - "date_basis_hint": null, - "self_scope_detected": true, - "selected_object_scope_detected": false - }, - "guard_hints": { - "source_data_signal_detected": false, - "canonical_data_signal_detected": false, - "data_scope_meta_query_detected": false, - "deep_investigation_signal_detected": false, - "required_anchor_missing": false, - "unsupported_low_confidence": true, - "semantic_drift_suspected": false - }, - "quality": "low", - "valid": false, - "apply_canonical_recommended": false, - "reason_codes": [ - "unsupported_low_confidence_contract" - ] - }, - "orchestration_contract_v1": { - "schema_version": "assistant_orchestration_contract_v1", - "hard_meta_mode": "capability", - "provider_execution": { - "schema_version": "assistant_provider_execution_contract_v1", - "policy_owner": "assistantProviderExecutionPolicy", - "provider_mode": "unknown", - "normalized_provider": null, - "use_mock": false, - "base_url_configured": false, - "llm_runtime_unavailable_detected": false, - "living_mode_forced_deep": false, - "living_mode_forced_reason": null, - "reason_codes": [ - "provider_unknown" - ] - }, - "address_mode": "unsupported", - "address_mode_confidence": "low", - "address_intent": "unknown", - "address_intent_confidence": "low", - "strong_data_signal_detected": false, - "data_retrieval_signal_detected": false, - "followup_context_detected": false, - "unsupported_address_intent_fallback_to_deep": false, - "final_decision": { - "run_address_lane": false, - "tool_gate_decision": "skip_address_lane", - "tool_gate_reason": "assistant_capability_query_detected", - "living_mode": "chat", - "living_reason": "assistant_capability_query_detected" - } - }, - "tool_gate_decision": "skip_address_lane", - "tool_gate_reason": "assistant_capability_query_detected", - "normalized": null, - "normalizer_output": null - } - }, - { - "message_id": "msg-0MIdb1G1MI", - "session_id": "asst-HFD9N5qwZM", - "role": "user", - "text": "кто нам должен денег на сегодня", - "reply_type": null, - "created_at": "2026-04-19T15:45:02.766Z", - "trace_id": null, - "debug": null - }, - { - "message_id": "msg-65k6tTD6OM", - "session_id": "asst-HFD9N5qwZM", - "role": "assistant", - "text": "Коротко: подтвержденная дебиторская задолженность на 19.04.2026 — **14.204.897,08** ₽.\nЭто подтвержденный срез дебиторской задолженности, а не эвристический shortlist.\n\nЧто учтено\n- Дата среза: 19.04.2026.\n- Контур: дебиторская задолженность по счетам 62/76.\n- В срез могут входить задолженности, возникшие до периода, если они оставались открытыми на дату среза.\n\nСводка\n- Строк в выборке: **22**.\n- Контрагентов с подтвержденным остатком к получению: **6**.\n\nКатегории дебиторской задолженности\n- покупатели/заказчики: **3**.\n- банки/финансовые: **0**.\n- бюджет/госорганы: **3**.\n- прочие: **0**.\n\nПодтвержденные позиции к получению\n1. Департамент капитального ремонта города Москвы. | категория: бюджет/госорганы | остаток к получению: **9.612.904,90** ₽ | операций: **1** | последнее движение: 2026-04-19T23:59:59Z | основание: налог/госорган в аналитике | договор: ГК № 20ГК-ДКР/**19** от 13.05.2019 | документ: Остатки на дату | source refs: Списание с расчетного счета **00000000102** от 20.03.2020 12:00:00\n\n2. Комитет государственных услуг г. Москвы | категория: бюджет/госорганы | остаток к получению: **3.677.454,14** ₽ | операций: **14** | последнее движение: 2026-04-19T23:59:59Z | основание: участие счета **76** (прочие расчеты), налог/госорган в аналитике | договор: ООО \\Альтернатива Плюс\\ | документ: Остатки на дату | source refs: Финансовое обеспечение заявки; Списание с расчетного счета **00000000015** от 27.01.2015 12:00:03\n\n3. ГКУ | категория: покупатели/заказчики | остаток к получению: **773.953,04** ₽ | операций: **4** | последнее движение: 2026-04-19T23:59:59Z | основание: участие счета **76** (прочие расчеты), коммерческий контрагент в аналитике | договор: ГКУ | документ: Остатки на дату | source refs: Финансовое обеспечение заявки; Списание с расчетного счета **00000000099** от 26.06.2017 12:00:02\n\n4. Финансовое обеспечение заявки | категория: бюджет/госорганы | остаток к получению: **115.185,00** ₽ | операций: **1** | последнее движение: 2026-04-19T23:59:59Z | основание: участие счета **76** (прочие расчеты), налог/госорган в аналитике | договор: ООО \\Альтернатива Плюс\\ | документ: Остатки на дату | source refs: Списание с расчетного счета **00000000253** от 29.10.2015 12:00:00\n\n5. Савва Офис Сервис | категория: покупатели/заказчики | остаток к получению: **19.200,00** ₽ | операций: **1** | последнее движение: 2026-04-19T23:59:59Z | основание: участие счета **76** (прочие расчеты), коммерческий контрагент в аналитике | договор: договор **1** от 18.12.2018 | документ: Остатки на дату\n\n6. Держава АКБ, ПАО | категория: покупатели/заказчики | остаток к получению: **6.200,00** ₽ | операций: **1** | последнее движение: 2026-04-19T23:59:59Z | основание: участие счета **76** (прочие расчеты), коммерческий контрагент в аналитике | договор: Договор № БГ 155822/2017 от 08.11.17 заявка **145822** | документ: Остатки на дату", - "reply_type": "factual", - "created_at": "2026-04-19T15:45:14.679Z", - "trace_id": "address-xIAvQkuYw1", - "debug": { - "trace_id": "address-xIAvQkuYw1", - "prompt_version": "address_query_runtime_v1", - "schema_version": "address_query_runtime_v1", - "fallback_type": "none", - "route_summary": null, - "fragments": [], - "requirements_extracted": [], - "coverage_report": { - "requirements_total": 0, - "requirements_covered": 0, - "requirements_uncovered": [], - "requirements_partially_covered": [], - "clarification_needed_for": [], - "out_of_scope_requirements": [] - }, - "routes": [], - "retrieval_status": [], - "retrieval_results": [], - "answer_grounding_check": { - "status": "grounded", - "route_subject_match": true, - "missing_requirements": [], - "reasons": [ - "address_action_detected", - "address_entity_detected", - "shape_not_detected", - "receivables_snapshot_bridge_signal_detected", - "confirmed_balance_exact_receivables_intent" - ], - "why_included_summary": [], - "selection_reason_summary": [] - }, - "dropped_intent_segments": [], - "detected_mode": "address_query", - "detected_mode_confidence": "high", - "query_shape": "UNKNOWN", - "query_shape_confidence": "low", - "detected_intent": "receivables_confirmed_as_of_date", - "detected_intent_confidence": "high", - "extracted_filters": { - "sort": "period_desc", - "limit": 20, - "as_of_date": "2026-04-19" - }, - "missing_required_filters": [], - "selected_recipe": "address_receivables_confirmed_as_of_date_v1", - "mcp_call_status_legacy": "matched_non_empty", - "account_scope_mode": "strict", - "account_scope_fallback_applied": false, - "anchor_type": "unknown", - "anchor_value_raw": null, - "anchor_value_resolved": null, - "resolver_confidence": "low", - "ambiguity_count": 0, - "match_failure_stage": "none", - "match_failure_reason": null, - "mcp_call_status": "matched_non_empty", - "rows_fetched": 22, - "raw_rows_received": 22, - "rows_after_account_scope": 22, - "rows_after_recipe_filter": 22, - "rows_materialized": 22, - "rows_matched": 22, - "raw_row_keys_sample": [ - "Период", - "Регистратор", - "СчетДт", - "СчетКт", - "Сумма", - "СубконтоДт1", - "СубконтоДт2", - "СубконтоДт3", - "СубконтоКт1", - "СубконтоКт2", - "СубконтоКт3", - "Организация", - "Period", - "Registrator", - "AccountDt", - "Amount" - ], - "materialization_drop_reason": "none", - "account_token_raw": null, - "account_token_normalized": null, - "account_scope_fields_checked": [ - "account_dt", - "account_kt", - "registrator", - "analytics" - ], - "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", - "account_scope_drop_reason": "not_applicable", - "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", - "limited_reason_category": null, - "response_type": "FACTUAL_LIST", - "requested_result_mode": "confirmed_balance", - "result_mode": "confirmed_balance", - "evidence_strength": "strong", - "balance_confirmed": true, - "as_of_date_basis": "implicit_current_snapshot", - "capability_id": "confirmed_receivables_as_of_date", - "capability_layer": "compute", - "capability_route_mode": "exact", - "capability_route_enabled": true, - "capability_route_reason": "receivables_confirmed_route_enabled", - "shadow_route_status": "skipped", - "route_expectation_status": "matched", - "route_expectation_reason": "route_expectation_matched", - "route_expectation_expected_selected_recipes": [ - "address_receivables_confirmed_as_of_date_v1" - ], - "route_expectation_expected_requested_result_modes": [ - "confirmed_balance" - ], - "route_expectation_expected_result_modes": [ - "confirmed_balance" - ], - "execution_lane": "address_query", - "llm_decomposition_applied": false, - "llm_decomposition_attempted": true, - "llm_provider_used": "local", - "llm_decomposition_trace_id": "M3vXwbr5ssJQls", - "llm_decomposition_effective_message": "кто нам должен денег на сегодня", - "llm_decomposition_reason": "normalized_fragment_rejected_intent_drop", - "llm_canonical_candidate_detected": true, - "llm_predecompose_contract": { - "schema_version": "address_llm_predecompose_contract_v1", - "source_message": "кто нам должен денег на сегодня", - "canonical_message": "кто нам должен денег на сегодня", - "mode": "address_query", - "mode_confidence": "high", - "query_shape": "UNKNOWN", - "query_shape_confidence": "low", - "intent": "receivables_confirmed_as_of_date", - "intent_confidence": "high", - "entities": { - "account": null, - "counterparty": null, - "contract": null, - "document_type": null, - "document_ref": null, - "organization": null - }, - "period": { - "scope": "as_of", - "period_from": null, - "period_to": null, - "as_of_date": "2026-04-19", - "has_explicit_period": true - }, - "semantics": { - "scope_kind": "implicit_self_scope", - "anchor_kind": "self_scope", - "anchor_value": null, - "date_scope_kind": "explicit", - "date_basis_hint": "implicit_current_snapshot", - "self_scope_detected": true, - "selected_object_scope_detected": false - }, - "aggregation_profile": "balance_snapshot" - }, - "fallback_rule_hit": null, - "sanitized_user_message": "кто нам должен денег на сегодня", - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "address_mode_classifier_detected", - "orchestration_contract_v1": { - "schema_version": "assistant_orchestration_contract_v1", - "hard_meta_mode": null, - "provider_execution": { - "schema_version": "assistant_provider_execution_contract_v1", - "policy_owner": "assistantProviderExecutionPolicy", - "provider_mode": "unknown", - "normalized_provider": null, - "use_mock": false, - "base_url_configured": false, - "llm_runtime_unavailable_detected": false, - "living_mode_forced_deep": false, - "living_mode_forced_reason": null, - "reason_codes": [ - "provider_unknown" - ] - }, - "address_mode": "address_query", - "address_mode_confidence": "high", - "address_intent": "receivables_confirmed_as_of_date", - "address_intent_confidence": "high", - "strong_data_signal_detected": true, - "data_retrieval_signal_detected": true, - "semantic_contract_valid": true, - "semantic_apply_canonical_recommended": true, - "semantic_reason_codes": [], - "semantic_route_arbitration": { - "supported_address_intent_detected": true, - "strict_deep_investigation_bypass_allowed": false, - "semantic_deep_investigation_hint_detected": false, - "semantic_aggregate_shape_detected": false, - "exact_address_intent_protected_from_semantic_deep_hint": true, - "followup_semantic_override_to_deep_allowed": false - }, - "followup_context_detected": false, - "unsupported_address_intent_fallback_to_deep": false, - "deep_analysis_signal_fallback_to_deep": false, - "aggregate_analytics_signal_fallback_to_deep": false, - "deep_session_continuation_fallback_to_deep": false, - "answer_inspection_followup_over_grounded_answer": false, - "final_decision": { - "run_address_lane": true, - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "address_mode_classifier_detected", - "living_mode": "address_data", - "living_reason": "address_lane_triggered" - } - }, - "dialog_continuation_contract_v2": { - "schema_version": "address_dialog_continuation_contract_v2", - "source_message": "кто нам должен денег на сегодня", - "effective_message": "кто нам должен денег на сегодня", - "decision": "new_topic", - "decision_reasons": [ - "llm_contract_intent_available" - ], - "followup_context_applied": false, - "previous_intent": null, - "target_intent": "receivables_confirmed_as_of_date", - "intent_selection_mode": null, - "anchor_type": null, - "anchor_value": null, - "implicit_continuation_signal": false - }, - "address_retry_audit": { - "attempted": false, - "reason": null, - "initial_limited_category": null, - "retry_message": null, - "retry_used_followup_context": false, - "retry_result_category": null - }, - "answer_structure_v11": null, - "investigation_state_snapshot": null, - "normalized": null, - "normalizer_output": { - "trace_id": "M3vXwbr5ssJQls", - "prompt_version": "normalizer_v2_0_2", - "applied": false, - "effective_message": "кто нам должен денег на сегодня" - }, - "assistant_known_organizations": [ - "ООО Альтернатива Плюс", - "ООО Лайсвуд", - "РАЙМ" - ], - "assistant_runtime_contract_v1": { - "schema_version": "assistant_runtime_contracts_v1", - "transition_contract_id": "T1", - "transition_contract_title": "Root Query Entry", - "transition_contract_reason": [ - "capability_contract_root_or_new_entry" - ], - "capability_contract_id": "confirmed_receivables_as_of_date", - "capability_contract_reason": [ - "debug_capability_id_matched_contract" - ], - "truth_gate_contract_status": "full_confirmed", - "carryover_eligibility": "root_only" - }, - "transition_contract_id": "T1", - "capability_contract_id": "confirmed_receivables_as_of_date", - "truth_gate_contract_status": "full_confirmed", - "assistant_truth_answer_policy_v1": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "truth_gate": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "capability_contract_root_or_new_entry", - "debug_capability_id_matched_contract", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "shape_not_detected", - "receivables_snapshot_bridge_signal_detected", - "confirmed_balance_exact_receivables_intent" - ], - "source_truth_gate_status": "full_confirmed", - "blocked_or_limited_explanation": null - }, - "answer_shape": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "confirmed_factual", - "reply_type": "factual", - "capability_contract_id": "confirmed_receivables_as_of_date", - "transition_contract_id": "T1", - "may_state_confirmed_facts": true, - "must_include_limitation": false, - "may_power_followup": true, - "required_sections": [ - "direct_answer", - "evidence_basis" - ], - "downgrade_only": true - } - }, - "coverage_gate_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "capability_contract_root_or_new_entry", - "debug_capability_id_matched_contract", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "shape_not_detected", - "receivables_snapshot_bridge_signal_detected", - "confirmed_balance_exact_receivables_intent" - ], - "source_truth_gate_status": "full_confirmed", - "blocked_or_limited_explanation": null - }, - "answer_shape_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "confirmed_factual", - "reply_type": "factual", - "capability_contract_id": "confirmed_receivables_as_of_date", - "transition_contract_id": "T1", - "may_state_confirmed_facts": true, - "must_include_limitation": false, - "may_power_followup": true, - "required_sections": [ - "direct_answer", - "evidence_basis" - ], - "downgrade_only": true - }, - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "answer_shape": "confirmed_factual", - "assistant_state_transition_v1": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": "T1", - "transition_title": "Root Query Entry", - "application_status": "applied", - "declared_carryover_depth": "none", - "truth_gate_carryover_depth": "root_only", - "effective_carryover_depth": "none", - "required_prior_state": [ - "living_mode_state" - ], - "expected_answer_mode": "confirmed", - "state_mutations": [ - "create_root_frame_state", - "clear_selected_object_frame_state", - "create_coverage_gate_state" - ], - "forbidden_carryover": [ - "stale_focus_object", - "stale_object_intent", - "implicit_followup_reuse" - ], - "state_actions": { - "living_mode_state": "update", - "root_frame_state": "create", - "selected_object_frame_state": "clear", - "meta_frame_state": "clear", - "clarification_state": "clear", - "coverage_gate_state": "create", - "answer_context_state": "create" - }, - "coverage_gate_state": { - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "capability_contract_root_or_new_entry", - "debug_capability_id_matched_contract", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "shape_not_detected", - "receivables_snapshot_bridge_signal_detected", - "confirmed_balance_exact_receivables_intent" - ] - }, - "reason_codes": [ - "transition_status_applied", - "transition_T1", - "capability_contract_root_or_new_entry", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "shape_not_detected", - "receivables_snapshot_bridge_signal_detected", - "confirmed_balance_exact_receivables_intent" - ] - }, - "state_transition_contract": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": "T1", - "transition_title": "Root Query Entry", - "application_status": "applied", - "declared_carryover_depth": "none", - "truth_gate_carryover_depth": "root_only", - "effective_carryover_depth": "none", - "required_prior_state": [ - "living_mode_state" - ], - "expected_answer_mode": "confirmed", - "state_mutations": [ - "create_root_frame_state", - "clear_selected_object_frame_state", - "create_coverage_gate_state" - ], - "forbidden_carryover": [ - "stale_focus_object", - "stale_object_intent", - "implicit_followup_reuse" - ], - "state_actions": { - "living_mode_state": "update", - "root_frame_state": "create", - "selected_object_frame_state": "clear", - "meta_frame_state": "clear", - "clarification_state": "clear", - "coverage_gate_state": "create", - "answer_context_state": "create" - }, - "coverage_gate_state": { - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "capability_contract_root_or_new_entry", - "debug_capability_id_matched_contract", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "shape_not_detected", - "receivables_snapshot_bridge_signal_detected", - "confirmed_balance_exact_receivables_intent" - ] - }, - "reason_codes": [ - "transition_status_applied", - "transition_T1", - "capability_contract_root_or_new_entry", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "shape_not_detected", - "receivables_snapshot_bridge_signal_detected", - "confirmed_balance_exact_receivables_intent" - ] - }, - "state_transition_id": "T1", - "state_transition_status": "applied", - "effective_carryover_depth": "none", - "assistant_capability_binding_v1": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "confirmed_receivables_as_of_date", - "capability_contract_id": "confirmed_receivables_as_of_date", - "binding_status": "bound", - "binding_action": "allow", - "runtime_lane_expected": "address_exact", - "runtime_lane_observed": "address_exact", - "execution_adapter": "AddressQueryService", - "transition_id": "T1", - "transition_allowed": true, - "required_anchors": [], - "provided_anchors": [ - "sort", - "limit", - "as_of_date" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": "counterparty_receivables_snapshot", - "answer_object_shape": "receivables_snapshot", - "truth_gate_behavior": "partial_or_blocked_if_evidence_insufficient", - "truth_fallback_allowed": true, - "answer_shape_compatible": true, - "violations": [], - "reason_codes": [ - "binding_status_bound", - "binding_action_allow", - "transition_status_applied", - "transition_T1", - "capability_contract_root_or_new_entry", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "shape_not_detected", - "receivables_snapshot_bridge_signal_detected", - "confirmed_balance_exact_receivables_intent" - ] - }, - "capability_binding_contract": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "confirmed_receivables_as_of_date", - "capability_contract_id": "confirmed_receivables_as_of_date", - "binding_status": "bound", - "binding_action": "allow", - "runtime_lane_expected": "address_exact", - "runtime_lane_observed": "address_exact", - "execution_adapter": "AddressQueryService", - "transition_id": "T1", - "transition_allowed": true, - "required_anchors": [], - "provided_anchors": [ - "sort", - "limit", - "as_of_date" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": "counterparty_receivables_snapshot", - "answer_object_shape": "receivables_snapshot", - "truth_gate_behavior": "partial_or_blocked_if_evidence_insufficient", - "truth_fallback_allowed": true, - "answer_shape_compatible": true, - "violations": [], - "reason_codes": [ - "binding_status_bound", - "binding_action_allow", - "transition_status_applied", - "transition_T1", - "capability_contract_root_or_new_entry", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "shape_not_detected", - "receivables_snapshot_bridge_signal_detected", - "confirmed_balance_exact_receivables_intent" - ] - }, - "capability_binding_status": "bound", - "capability_binding_action": "allow", - "capability_binding_violations": [], - "capability_binding_response_guard": { - "schema_version": "assistant_capability_binding_response_guard_v1", - "guard_owner": "assistantCapabilityBindingResponseGuard", - "applied": false, - "action": "allow", - "original_reply_type": "factual", - "guarded_reply_type": "factual", - "reason_codes": [ - "binding_status_bound", - "binding_action_allow", - "transition_status_applied", - "transition_T1", - "capability_contract_root_or_new_entry", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "shape_not_detected", - "receivables_snapshot_bridge_signal_detected", - "confirmed_balance_exact_receivables_intent" - ] - } - } - }, - { - "message_id": "msg-mNrmV5Gd9r", - "session_id": "asst-HFD9N5qwZM", - "role": "user", - "text": "а мы кому", - "reply_type": null, - "created_at": "2026-04-19T15:46:30.060Z", - "trace_id": null, - "debug": null - }, - { - "message_id": "msg-LuqE-5rdpY", - "session_id": "asst-HFD9N5qwZM", - "role": "assistant", - "text": "Коротко: подтвержденный долг к оплате на 19.04.2026 — **4.584.066,11** ₽.\nЭто подтвержденный срез обязательств к оплате, а не эвристический shortlist.\n\nЧто учтено\n- Дата среза: 19.04.2026.\n- Контур: обязательства по счетам 60/76.\n- В срез могут входить обязательства, возникшие до периода, если они оставались открытыми на дату среза.\n\nСводка\n- Строк в выборке: **10**.\n- Контрагентов с подтвержденным остатком к оплате: **7**.\n\nКатегории обязательств\n- поставщики/подрядчики: **5**.\n- банки/кредиты: **0**.\n- налоги/госорганы: **2**.\n- прочие: **0**.\n\nПодтвержденные позиции к оплате\n1. Комитет государственных услуг г. Москвы | категория: налоги/госорганы | остаток: **3.677.454,14** ₽ | операций: **1** | последнее движение: 2026-04-19T23:59:59Z | основание: участие счета **76** (прочие расчеты), налог/госорган в аналитике | договор: ООО \\Альтернатива Плюс\\ | документ: Остатки на дату | source refs: Финансовое обеспечение заявки\n\n2. ГКУ | категория: поставщики/подрядчики | остаток: **773.953,04** ₽ | операций: **2** | последнее движение: 2026-04-19T23:59:59Z | основание: участие счета **76** (прочие расчеты), коммерческий контрагент в аналитике | договор: ГКУ | документ: Остатки на дату | source refs: Финансовое обеспечение заявки; Финансовое обеспечение контракта\n\n3. Финансовое обеспечение заявки | категория: налоги/госорганы | остаток: **115.185,00** ₽ | операций: **1** | последнее движение: 2026-04-19T23:59:59Z | основание: участие счета **76** (прочие расчеты), налог/госорган в аналитике | договор: ООО \\Альтернатива Плюс\\ | документ: Остатки на дату\n\n4. Авант мебель, ООО | категория: поставщики/подрядчики | остаток: **7.271,20** ₽ | операций: **1** | последнее движение: 2026-04-19T23:59:59Z | основание: участие счета **60**, коммерческий контрагент в аналитике | договор: Договор АМ-2/15 от 22.01.15 | документ: Остатки на дату | source refs: Поступление товаров и услуг **00000000047** от 24.02.2015 12:03:34\n\n5. Держава АКБ, ПАО | категория: поставщики/подрядчики | остаток: **6.200,00** ₽ | операций: **1** | последнее движение: 2026-04-19T23:59:59Z | основание: участие счета **76** (прочие расчеты), коммерческий контрагент в аналитике | договор: Договор № БГ 155822/2017 от 08.11.17 заявка **145822** | документ: Остатки на дату | source refs: Поступление товаров и услуг **00000000036** от 14.11.2017 0:00:00\n\n6. Скартел, ООО | категория: поставщики/подрядчики | остаток: **3.173,23** ₽ | операций: **3** | последнее движение: 2026-04-19T23:59:59Z | основание: участие счета **76** (прочие расчеты), коммерческий контрагент в аналитике | договор: ООО \\Альтернатива Плюс\\ | документ: Остатки на дату | source refs: Лицевой счет абонента № **1025043208**; Поступление товаров и услуг **00000000009** от 31.08.2022 12:00:00\n\n7. КОМПАНИЯ СИМПЛ, ООО | категория: поставщики/подрядчики | остаток: **829,50** ₽ | операций: **1** | последнее движение: 2026-04-19T23:59:59Z | основание: участие счета **60**, коммерческий контрагент в аналитике | договор: ООО \\Альтернатива Плюс\\ | документ: Остатки на дату | source refs: счет № SL11119332716 от 06.11.2019; Поступление товаров и услуг **00000000116** от 08.11.2019 12:00:02", - "reply_type": "factual", - "created_at": "2026-04-19T15:46:45.097Z", - "trace_id": "address-_sp2YxeAOd", - "debug": { - "trace_id": "address-_sp2YxeAOd", - "prompt_version": "address_query_runtime_v1", - "schema_version": "address_query_runtime_v1", - "fallback_type": "none", - "route_summary": null, - "fragments": [], - "requirements_extracted": [], - "coverage_report": { - "requirements_total": 0, - "requirements_covered": 0, - "requirements_uncovered": [], - "requirements_partially_covered": [], - "clarification_needed_for": [], - "out_of_scope_requirements": [] - }, - "routes": [], - "retrieval_status": [], - "retrieval_results": [], - "answer_grounding_check": { - "status": "grounded", - "route_subject_match": true, - "missing_requirements": [], - "reasons": [ - "address_action_detected", - "address_entity_detected", - "object_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "address_followup_context_applied", - "confirmed_balance_exact_payables_intent" - ], - "why_included_summary": [], - "selection_reason_summary": [] - }, - "dropped_intent_segments": [], - "detected_mode": "address_query", - "detected_mode_confidence": "high", - "query_shape": "OBJECT_LOOKUP", - "query_shape_confidence": "medium", - "detected_intent": "payables_confirmed_as_of_date", - "detected_intent_confidence": "low", - "extracted_filters": { - "sort": "period_desc", - "limit": 20, - "as_of_date": "2026-04-19" - }, - "missing_required_filters": [], - "selected_recipe": "address_payables_confirmed_as_of_date_v1", - "mcp_call_status_legacy": "matched_non_empty", - "account_scope_mode": "strict", - "account_scope_fallback_applied": false, - "anchor_type": "unknown", - "anchor_value_raw": null, - "anchor_value_resolved": null, - "resolver_confidence": "low", - "ambiguity_count": 0, - "match_failure_stage": "none", - "match_failure_reason": null, - "mcp_call_status": "matched_non_empty", - "rows_fetched": 10, - "raw_rows_received": 10, - "rows_after_account_scope": 10, - "rows_after_recipe_filter": 10, - "rows_materialized": 10, - "rows_matched": 10, - "raw_row_keys_sample": [ - "Период", - "Регистратор", - "СчетДт", - "СчетКт", - "Сумма", - "СубконтоДт1", - "СубконтоДт2", - "СубконтоДт3", - "СубконтоКт1", - "СубконтоКт2", - "СубконтоКт3", - "Организация", - "Period", - "Registrator", - "AccountKt", - "Amount" - ], - "materialization_drop_reason": "none", - "account_token_raw": null, - "account_token_normalized": null, - "account_scope_fields_checked": [ - "account_dt", - "account_kt", - "registrator", - "analytics" - ], - "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", - "account_scope_drop_reason": "not_applicable", - "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", - "limited_reason_category": null, - "response_type": "FACTUAL_LIST", - "requested_result_mode": "confirmed_balance", - "result_mode": "confirmed_balance", - "evidence_strength": "strong", - "balance_confirmed": true, - "as_of_date_basis": "implicit_current_snapshot", - "capability_id": "confirmed_payables_as_of_date", - "capability_layer": "compute", - "capability_route_mode": "exact", - "capability_route_enabled": true, - "capability_route_reason": "payables_confirmed_route_enabled", - "shadow_route_status": "skipped", - "route_expectation_status": "matched", - "route_expectation_reason": "route_expectation_matched", - "route_expectation_expected_selected_recipes": [ - "address_payables_confirmed_as_of_date_v1" - ], - "route_expectation_expected_requested_result_modes": [ - "confirmed_balance" - ], - "route_expectation_expected_result_modes": [ - "confirmed_balance" - ], - "execution_lane": "address_query", - "llm_decomposition_applied": true, - "llm_decomposition_attempted": true, - "llm_provider_used": "local", - "llm_decomposition_trace_id": "Z0h8KCBnKgP6sy", - "llm_decomposition_effective_message": "кто является контрагентом для текущей компании?", - "llm_decomposition_reason": "normalized_fragment_applied", - "llm_canonical_candidate_detected": true, - "llm_predecompose_contract": { - "schema_version": "address_llm_predecompose_contract_v1", - "source_message": "а мы кому", - "canonical_message": "кто является контрагентом для текущей компании?", - "mode": "address_query", - "mode_confidence": "high", - "query_shape": "OBJECT_LOOKUP", - "query_shape_confidence": "medium", - "intent": "unknown", - "intent_confidence": "low", - "entities": { - "account": null, - "counterparty": null, - "contract": null, - "document_type": null, - "document_ref": null, - "organization": null - }, - "period": { - "scope": "unspecified", - "period_from": null, - "period_to": null, - "as_of_date": null, - "has_explicit_period": false - }, - "semantics": { - "scope_kind": "implicit_self_scope", - "anchor_kind": "self_scope", - "anchor_value": null, - "date_scope_kind": "implicit_current", - "date_basis_hint": "implicit_current_snapshot", - "self_scope_detected": true, - "selected_object_scope_detected": false - }, - "aggregation_profile": "list_lookup" - }, - "fallback_rule_hit": null, - "sanitized_user_message": "а мы кому", - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "address_mode_classifier_detected", - "orchestration_contract_v1": { - "schema_version": "assistant_orchestration_contract_v1", - "hard_meta_mode": null, - "provider_execution": { - "schema_version": "assistant_provider_execution_contract_v1", - "policy_owner": "assistantProviderExecutionPolicy", - "provider_mode": "unknown", - "normalized_provider": null, - "use_mock": false, - "base_url_configured": false, - "llm_runtime_unavailable_detected": false, - "living_mode_forced_deep": false, - "living_mode_forced_reason": null, - "reason_codes": [ - "provider_unknown" - ] - }, - "address_mode": "address_query", - "address_mode_confidence": "high", - "address_intent": "unknown", - "address_intent_confidence": "low", - "strong_data_signal_detected": true, - "data_retrieval_signal_detected": true, - "semantic_contract_valid": true, - "semantic_apply_canonical_recommended": true, - "semantic_reason_codes": [], - "semantic_route_arbitration": { - "supported_address_intent_detected": true, - "strict_deep_investigation_bypass_allowed": false, - "semantic_deep_investigation_hint_detected": false, - "semantic_aggregate_shape_detected": false, - "exact_address_intent_protected_from_semantic_deep_hint": false, - "followup_semantic_override_to_deep_allowed": false - }, - "followup_context_detected": true, - "unsupported_address_intent_fallback_to_deep": false, - "deep_analysis_signal_fallback_to_deep": false, - "aggregate_analytics_signal_fallback_to_deep": false, - "deep_session_continuation_fallback_to_deep": false, - "answer_inspection_followup_over_grounded_answer": false, - "final_decision": { - "run_address_lane": true, - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "address_mode_classifier_detected", - "living_mode": "address_data", - "living_reason": "address_lane_triggered" - } - }, - "dialog_continuation_contract_v2": { - "schema_version": "address_dialog_continuation_contract_v2", - "source_message": "а мы кому", - "effective_message": "кто является контрагентом для текущей компании?", - "decision": "continue_previous", - "decision_reasons": [ - "followup_context_detected", - "effective_message_rewritten_by_predecompose" - ], - "followup_context_applied": true, - "previous_intent": "receivables_confirmed_as_of_date", - "target_intent": "payables_confirmed_as_of_date", - "intent_selection_mode": "carry_previous_intent", - "anchor_type": "unknown", - "anchor_value": null, - "implicit_continuation_signal": false - }, - "address_retry_audit": { - "attempted": false, - "reason": null, - "initial_limited_category": null, - "retry_message": null, - "retry_used_followup_context": false, - "retry_result_category": null - }, - "answer_structure_v11": null, - "investigation_state_snapshot": null, - "normalized": null, - "normalizer_output": { - "trace_id": "Z0h8KCBnKgP6sy", - "prompt_version": "normalizer_v2_0_2", - "applied": true, - "effective_message": "кто является контрагентом для текущей компании?" - }, - "assistant_known_organizations": [ - "ООО Альтернатива Плюс", - "ООО Лайсвуд", - "РАЙМ" - ], - "assistant_runtime_contract_v1": { - "schema_version": "assistant_runtime_contracts_v1", - "transition_contract_id": "T2", - "transition_contract_title": "Root Follow-Up With Date Or Scope Change", - "transition_contract_reason": [ - "root_followup_continue_previous" - ], - "capability_contract_id": "confirmed_payables_as_of_date", - "capability_contract_reason": [ - "debug_capability_id_matched_contract" - ], - "truth_gate_contract_status": "full_confirmed", - "carryover_eligibility": "root_only" - }, - "transition_contract_id": "T2", - "capability_contract_id": "confirmed_payables_as_of_date", - "truth_gate_contract_status": "full_confirmed", - "assistant_truth_answer_policy_v1": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "truth_gate": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "object_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "address_followup_context_applied", - "confirmed_balance_exact_payables_intent" - ], - "source_truth_gate_status": "full_confirmed", - "blocked_or_limited_explanation": null - }, - "answer_shape": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "confirmed_factual", - "reply_type": "factual", - "capability_contract_id": "confirmed_payables_as_of_date", - "transition_contract_id": "T2", - "may_state_confirmed_facts": true, - "must_include_limitation": false, - "may_power_followup": true, - "required_sections": [ - "direct_answer", - "evidence_basis" - ], - "downgrade_only": true - } - }, - "coverage_gate_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "object_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "address_followup_context_applied", - "confirmed_balance_exact_payables_intent" - ], - "source_truth_gate_status": "full_confirmed", - "blocked_or_limited_explanation": null - }, - "answer_shape_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "confirmed_factual", - "reply_type": "factual", - "capability_contract_id": "confirmed_payables_as_of_date", - "transition_contract_id": "T2", - "may_state_confirmed_facts": true, - "must_include_limitation": false, - "may_power_followup": true, - "required_sections": [ - "direct_answer", - "evidence_basis" - ], - "downgrade_only": true - }, - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "answer_shape": "confirmed_factual", - "assistant_state_transition_v1": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": "T2", - "transition_title": "Root Follow-Up With Date Or Scope Change", - "application_status": "applied", - "declared_carryover_depth": "root_only", - "truth_gate_carryover_depth": "root_only", - "effective_carryover_depth": "root_only", - "required_prior_state": [ - "root_frame_state" - ], - "expected_answer_mode": "confirmed", - "state_mutations": [ - "update_root_frame_state", - "run_exact_route", - "refresh_coverage_gate_state" - ], - "forbidden_carryover": [ - "incompatible_selected_object_route" - ], - "state_actions": { - "living_mode_state": "update", - "root_frame_state": "update", - "selected_object_frame_state": "clear", - "meta_frame_state": "clear", - "clarification_state": "clear", - "coverage_gate_state": "create", - "answer_context_state": "create" - }, - "coverage_gate_state": { - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "object_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "address_followup_context_applied", - "confirmed_balance_exact_payables_intent" - ] - }, - "reason_codes": [ - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "object_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "address_followup_context_applied", - "confirmed_balance_exact_payables_intent" - ] - }, - "state_transition_contract": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": "T2", - "transition_title": "Root Follow-Up With Date Or Scope Change", - "application_status": "applied", - "declared_carryover_depth": "root_only", - "truth_gate_carryover_depth": "root_only", - "effective_carryover_depth": "root_only", - "required_prior_state": [ - "root_frame_state" - ], - "expected_answer_mode": "confirmed", - "state_mutations": [ - "update_root_frame_state", - "run_exact_route", - "refresh_coverage_gate_state" - ], - "forbidden_carryover": [ - "incompatible_selected_object_route" - ], - "state_actions": { - "living_mode_state": "update", - "root_frame_state": "update", - "selected_object_frame_state": "clear", - "meta_frame_state": "clear", - "clarification_state": "clear", - "coverage_gate_state": "create", - "answer_context_state": "create" - }, - "coverage_gate_state": { - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "object_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "address_followup_context_applied", - "confirmed_balance_exact_payables_intent" - ] - }, - "reason_codes": [ - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "object_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "address_followup_context_applied", - "confirmed_balance_exact_payables_intent" - ] - }, - "state_transition_id": "T2", - "state_transition_status": "applied", - "effective_carryover_depth": "root_only", - "assistant_capability_binding_v1": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "confirmed_payables_as_of_date", - "capability_contract_id": "confirmed_payables_as_of_date", - "binding_status": "bound", - "binding_action": "allow", - "runtime_lane_expected": "address_exact", - "runtime_lane_observed": "address_exact", - "execution_adapter": "AddressQueryService", - "transition_id": "T2", - "transition_allowed": true, - "required_anchors": [], - "provided_anchors": [ - "sort", - "limit", - "as_of_date" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": "counterparty_payables_snapshot", - "answer_object_shape": "payables_snapshot", - "truth_gate_behavior": "partial_or_blocked_if_evidence_insufficient", - "truth_fallback_allowed": true, - "answer_shape_compatible": true, - "violations": [], - "reason_codes": [ - "binding_status_bound", - "binding_action_allow", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "object_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "address_followup_context_applied", - "confirmed_balance_exact_payables_intent" - ] - }, - "capability_binding_contract": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "confirmed_payables_as_of_date", - "capability_contract_id": "confirmed_payables_as_of_date", - "binding_status": "bound", - "binding_action": "allow", - "runtime_lane_expected": "address_exact", - "runtime_lane_observed": "address_exact", - "execution_adapter": "AddressQueryService", - "transition_id": "T2", - "transition_allowed": true, - "required_anchors": [], - "provided_anchors": [ - "sort", - "limit", - "as_of_date" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": "counterparty_payables_snapshot", - "answer_object_shape": "payables_snapshot", - "truth_gate_behavior": "partial_or_blocked_if_evidence_insufficient", - "truth_fallback_allowed": true, - "answer_shape_compatible": true, - "violations": [], - "reason_codes": [ - "binding_status_bound", - "binding_action_allow", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "object_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "address_followup_context_applied", - "confirmed_balance_exact_payables_intent" - ] - }, - "capability_binding_status": "bound", - "capability_binding_action": "allow", - "capability_binding_violations": [], - "capability_binding_response_guard": { - "schema_version": "assistant_capability_binding_response_guard_v1", - "guard_owner": "assistantCapabilityBindingResponseGuard", - "applied": false, - "action": "allow", - "original_reply_type": "factual", - "guarded_reply_type": "factual", - "reason_codes": [ - "binding_status_bound", - "binding_action_allow", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "object_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "address_followup_context_applied", - "confirmed_balance_exact_payables_intent" - ] - } - } - }, - { - "message_id": "msg-AQQ2mLZrBk", - "session_id": "asst-HFD9N5qwZM", - "role": "user", - "text": "какиек остатки на складе на сегодня", - "reply_type": null, - "created_at": "2026-04-19T15:47:57.713Z", - "trace_id": null, - "debug": null - }, - { - "message_id": "msg-_4UcKjZLGt", - "session_id": "asst-HFD9N5qwZM", - "role": "assistant", - "text": "Нужно уточнить организацию, чтобы не смешивать компании в одном ответе.\nСейчас в доступном контуре вижу такие организации:\n- ООО Альтернатива Плюс\n- ООО Лайсвуд\n- РАЙМ\nМожешь ответить просто названием компании, и я продолжу этот же запрос.", - "reply_type": "partial_coverage", - "created_at": "2026-04-19T15:48:08.327Z", - "trace_id": "address-Nm7gQ3Pf4d", - "debug": { - "trace_id": "address-Nm7gQ3Pf4d", - "prompt_version": "address_query_runtime_v1", - "schema_version": "address_query_runtime_v1", - "fallback_type": "partial", - "route_summary": null, - "fragments": [], - "requirements_extracted": [], - "coverage_report": { - "requirements_total": 0, - "requirements_covered": 0, - "requirements_uncovered": [], - "requirements_partially_covered": [], - "clarification_needed_for": [], - "out_of_scope_requirements": [] - }, - "routes": [], - "retrieval_status": [], - "retrieval_results": [], - "answer_grounding_check": { - "status": "partial", - "route_subject_match": true, - "missing_requirements": [], - "reasons": [ - "address_action_detected", - "address_entity_detected", - "shape_not_detected", - "inventory_on_hand_colloquial_bridge_signal_detected", - "organization_candidates_from_scope_context", - "organization_clarification_required", - "multiple_known_organizations_detected", - "exact_inventory_mode_limited_response" - ], - "why_included_summary": [], - "selection_reason_summary": [] - }, - "dropped_intent_segments": [], - "detected_mode": "address_query", - "detected_mode_confidence": "high", - "query_shape": "UNKNOWN", - "query_shape_confidence": "low", - "detected_intent": "inventory_on_hand_as_of_date", - "detected_intent_confidence": "medium", - "extracted_filters": { - "sort": "period_desc", - "as_of_date": "2026-04-19" - }, - "missing_required_filters": [ - "organization" - ], - "selected_recipe": null, - "mcp_call_status_legacy": "skipped", - "account_scope_mode": "strict", - "account_scope_fallback_applied": false, - "anchor_type": null, - "anchor_value_raw": null, - "anchor_value_resolved": null, - "resolver_confidence": null, - "ambiguity_count": 0, - "match_failure_stage": "none", - "match_failure_reason": null, - "mcp_call_status": "skipped", - "rows_fetched": 0, - "raw_rows_received": 0, - "rows_after_account_scope": 0, - "rows_after_recipe_filter": 0, - "rows_materialized": 0, - "rows_matched": 0, - "raw_row_keys_sample": [], - "materialization_drop_reason": "none", - "account_token_raw": null, - "account_token_normalized": null, - "account_scope_fields_checked": [ - "account_dt", - "account_kt", - "registrator", - "analytics" - ], - "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", - "account_scope_drop_reason": "not_applicable", - "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", - "limited_reason_category": "missing_anchor", - "organization_candidates": [ - "ООО Альтернатива Плюс", - "ООО Лайсвуд", - "РАЙМ" - ], - "response_type": "LIMITED_WITH_REASON", - "requested_result_mode": "confirmed_balance", - "result_mode": "confirmed_balance", - "evidence_strength": "weak", - "balance_confirmed": false, - "as_of_date_basis": "implicit_current_snapshot", - "capability_id": "confirmed_inventory_on_hand_as_of_date", - "capability_layer": "compute", - "capability_route_mode": "exact", - "capability_route_enabled": true, - "capability_route_reason": "inventory_on_hand_route_enabled", - "shadow_route_status": "skipped", - "route_expectation_status": "matched", - "route_expectation_reason": "route_expectation_matched", - "route_expectation_expected_selected_recipes": [ - "address_inventory_on_hand_as_of_date_v1" - ], - "route_expectation_expected_requested_result_modes": [ - "confirmed_balance" - ], - "route_expectation_expected_result_modes": [ - "confirmed_balance" - ], - "execution_lane": "address_query", - "llm_decomposition_applied": true, - "llm_decomposition_attempted": true, - "llm_provider_used": "local", - "llm_decomposition_trace_id": "PDDPGykeGec8Zw", - "llm_decomposition_effective_message": "покажи остатки на складе на текущую дату", - "llm_decomposition_reason": "normalized_fragment_applied", - "llm_canonical_candidate_detected": true, - "llm_predecompose_contract": { - "schema_version": "address_llm_predecompose_contract_v1", - "source_message": "какиек остатки на складе на сегодня", - "canonical_message": "покажи остатки на складе на текущую дату", - "mode": "address_query", - "mode_confidence": "high", - "query_shape": "UNKNOWN", - "query_shape_confidence": "low", - "intent": "inventory_on_hand_as_of_date", - "intent_confidence": "medium", - "entities": { - "account": null, - "counterparty": null, - "contract": null, - "document_type": null, - "document_ref": null, - "organization": null - }, - "period": { - "scope": "as_of", - "period_from": null, - "period_to": null, - "as_of_date": "2026-04-19", - "has_explicit_period": false - }, - "semantics": { - "scope_kind": "implicit_self_scope", - "anchor_kind": "self_scope", - "anchor_value": null, - "date_scope_kind": "implicit_current", - "date_basis_hint": "implicit_current_snapshot", - "self_scope_detected": true, - "selected_object_scope_detected": false - }, - "aggregation_profile": "unknown" - }, - "fallback_rule_hit": null, - "sanitized_user_message": "какиек остатки на складе на сегодня", - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "address_mode_classifier_detected", - "orchestration_contract_v1": { - "schema_version": "assistant_orchestration_contract_v1", - "hard_meta_mode": null, - "provider_execution": { - "schema_version": "assistant_provider_execution_contract_v1", - "policy_owner": "assistantProviderExecutionPolicy", - "provider_mode": "unknown", - "normalized_provider": null, - "use_mock": false, - "base_url_configured": false, - "llm_runtime_unavailable_detected": false, - "living_mode_forced_deep": false, - "living_mode_forced_reason": null, - "reason_codes": [ - "provider_unknown" - ] - }, - "address_mode": "address_query", - "address_mode_confidence": "high", - "address_intent": "inventory_on_hand_as_of_date", - "address_intent_confidence": "medium", - "strong_data_signal_detected": true, - "data_retrieval_signal_detected": true, - "semantic_contract_valid": true, - "semantic_apply_canonical_recommended": true, - "semantic_reason_codes": [], - "semantic_route_arbitration": { - "supported_address_intent_detected": true, - "strict_deep_investigation_bypass_allowed": false, - "semantic_deep_investigation_hint_detected": false, - "semantic_aggregate_shape_detected": false, - "exact_address_intent_protected_from_semantic_deep_hint": true, - "followup_semantic_override_to_deep_allowed": false - }, - "followup_context_detected": false, - "unsupported_address_intent_fallback_to_deep": false, - "deep_analysis_signal_fallback_to_deep": false, - "aggregate_analytics_signal_fallback_to_deep": false, - "deep_session_continuation_fallback_to_deep": false, - "answer_inspection_followup_over_grounded_answer": false, - "final_decision": { - "run_address_lane": true, - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "address_mode_classifier_detected", - "living_mode": "address_data", - "living_reason": "address_lane_triggered" - } - }, - "dialog_continuation_contract_v2": { - "schema_version": "address_dialog_continuation_contract_v2", - "source_message": "какиек остатки на складе на сегодня", - "effective_message": "покажи остатки на складе на текущую дату", - "decision": "new_topic", - "decision_reasons": [ - "effective_message_rewritten_by_predecompose", - "llm_contract_intent_available" - ], - "followup_context_applied": false, - "previous_intent": null, - "target_intent": "inventory_on_hand_as_of_date", - "intent_selection_mode": null, - "anchor_type": null, - "anchor_value": null, - "implicit_continuation_signal": false - }, - "address_retry_audit": { - "attempted": true, - "reason": "limited_result_retry_with_raw_message", - "initial_limited_category": "missing_anchor", - "retry_message": "какиек остатки на складе на сегодня", - "retry_used_followup_context": false, - "retry_result_category": "missing_anchor" - }, - "answer_structure_v11": null, - "investigation_state_snapshot": null, - "normalized": null, - "normalizer_output": { - "trace_id": "PDDPGykeGec8Zw", - "prompt_version": "normalizer_v2_0_2", - "applied": true, - "effective_message": "покажи остатки на складе на текущую дату" - }, - "assistant_known_organizations": [ - "ООО Альтернатива Плюс", - "ООО Лайсвуд", - "РАЙМ" - ], - "assistant_runtime_contract_v1": { - "schema_version": "assistant_runtime_contracts_v1", - "transition_contract_id": "T7", - "transition_contract_title": "Clarification Continuation", - "transition_contract_reason": [ - "missing_anchor_or_filter_requires_clarification" - ], - "capability_contract_id": "confirmed_inventory_on_hand_as_of_date", - "capability_contract_reason": [ - "debug_capability_id_matched_contract" - ], - "truth_gate_contract_status": "blocked_missing_anchor", - "carryover_eligibility": "none" - }, - "transition_contract_id": "T7", - "capability_contract_id": "confirmed_inventory_on_hand_as_of_date", - "truth_gate_contract_status": "blocked_missing_anchor", - "assistant_truth_answer_policy_v1": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "truth_gate": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "blocked", - "evidence_grade": "weak", - "grounding_status": "partial", - "truth_mode": "clarification_required", - "carryover_eligibility": "none", - "reason_codes": [ - "truth_gate_blocked_missing_anchor", - "truth_mode_clarification_required", - "missing_anchor_or_filter_requires_clarification", - "debug_capability_id_matched_contract", - "missing_filter_organization", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "shape_not_detected", - "inventory_on_hand_colloquial_bridge_signal_detected", - "organization_candidates_from_scope_context", - "organization_clarification_required", - "multiple_known_organizations_detected", - "exact_inventory_mode_limited_response" - ], - "source_truth_gate_status": "blocked_missing_anchor", - "blocked_or_limited_explanation": "required_anchor_missing" - }, - "answer_shape": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "clarification_required", - "reply_type": "partial_coverage", - "capability_contract_id": "confirmed_inventory_on_hand_as_of_date", - "transition_contract_id": "T7", - "may_state_confirmed_facts": false, - "must_include_limitation": true, - "may_power_followup": false, - "required_sections": [ - "clarifying_question", - "missing_anchors" - ], - "downgrade_only": true - } - }, - "coverage_gate_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "blocked", - "evidence_grade": "weak", - "grounding_status": "partial", - "truth_mode": "clarification_required", - "carryover_eligibility": "none", - "reason_codes": [ - "truth_gate_blocked_missing_anchor", - "truth_mode_clarification_required", - "missing_anchor_or_filter_requires_clarification", - "debug_capability_id_matched_contract", - "missing_filter_organization", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "shape_not_detected", - "inventory_on_hand_colloquial_bridge_signal_detected", - "organization_candidates_from_scope_context", - "organization_clarification_required", - "multiple_known_organizations_detected", - "exact_inventory_mode_limited_response" - ], - "source_truth_gate_status": "blocked_missing_anchor", - "blocked_or_limited_explanation": "required_anchor_missing" - }, - "answer_shape_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "clarification_required", - "reply_type": "partial_coverage", - "capability_contract_id": "confirmed_inventory_on_hand_as_of_date", - "transition_contract_id": "T7", - "may_state_confirmed_facts": false, - "must_include_limitation": true, - "may_power_followup": false, - "required_sections": [ - "clarifying_question", - "missing_anchors" - ], - "downgrade_only": true - }, - "truth_mode": "clarification_required", - "carryover_eligibility": "none", - "answer_shape": "clarification_required", - "assistant_state_transition_v1": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": "T7", - "transition_title": "Clarification Continuation", - "application_status": "clarification_required", - "declared_carryover_depth": "full", - "truth_gate_carryover_depth": "none", - "effective_carryover_depth": "full", - "required_prior_state": [ - "clarification_state" - ], - "expected_answer_mode": "confirmed", - "state_mutations": [ - "resume_target_route", - "update_or_clear_clarification_state" - ], - "forbidden_carryover": [ - "forget_suspended_route" - ], - "state_actions": { - "living_mode_state": "update", - "root_frame_state": "preserve", - "selected_object_frame_state": "preserve", - "meta_frame_state": "none", - "clarification_state": "update", - "coverage_gate_state": "create", - "answer_context_state": "none" - }, - "coverage_gate_state": { - "coverage_status": "blocked", - "evidence_grade": "weak", - "grounding_status": "partial", - "truth_mode": "clarification_required", - "carryover_eligibility": "none", - "reason_codes": [ - "truth_gate_blocked_missing_anchor", - "truth_mode_clarification_required", - "missing_anchor_or_filter_requires_clarification", - "debug_capability_id_matched_contract", - "missing_filter_organization", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "shape_not_detected", - "inventory_on_hand_colloquial_bridge_signal_detected", - "organization_candidates_from_scope_context", - "organization_clarification_required", - "multiple_known_organizations_detected", - "exact_inventory_mode_limited_response" - ] - }, - "reason_codes": [ - "transition_status_clarification_required", - "transition_T7", - "missing_anchor_or_filter_requires_clarification", - "debug_capability_id_matched_contract", - "truth_gate_blocked_missing_anchor", - "truth_mode_clarification_required", - "missing_filter_organization", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "shape_not_detected", - "inventory_on_hand_colloquial_bridge_signal_detected", - "organization_candidates_from_scope_context", - "organization_clarification_required", - "multiple_known_organizations_detected", - "exact_inventory_mode_limited_response" - ] - }, - "state_transition_contract": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": "T7", - "transition_title": "Clarification Continuation", - "application_status": "clarification_required", - "declared_carryover_depth": "full", - "truth_gate_carryover_depth": "none", - "effective_carryover_depth": "full", - "required_prior_state": [ - "clarification_state" - ], - "expected_answer_mode": "confirmed", - "state_mutations": [ - "resume_target_route", - "update_or_clear_clarification_state" - ], - "forbidden_carryover": [ - "forget_suspended_route" - ], - "state_actions": { - "living_mode_state": "update", - "root_frame_state": "preserve", - "selected_object_frame_state": "preserve", - "meta_frame_state": "none", - "clarification_state": "update", - "coverage_gate_state": "create", - "answer_context_state": "none" - }, - "coverage_gate_state": { - "coverage_status": "blocked", - "evidence_grade": "weak", - "grounding_status": "partial", - "truth_mode": "clarification_required", - "carryover_eligibility": "none", - "reason_codes": [ - "truth_gate_blocked_missing_anchor", - "truth_mode_clarification_required", - "missing_anchor_or_filter_requires_clarification", - "debug_capability_id_matched_contract", - "missing_filter_organization", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "shape_not_detected", - "inventory_on_hand_colloquial_bridge_signal_detected", - "organization_candidates_from_scope_context", - "organization_clarification_required", - "multiple_known_organizations_detected", - "exact_inventory_mode_limited_response" - ] - }, - "reason_codes": [ - "transition_status_clarification_required", - "transition_T7", - "missing_anchor_or_filter_requires_clarification", - "debug_capability_id_matched_contract", - "truth_gate_blocked_missing_anchor", - "truth_mode_clarification_required", - "missing_filter_organization", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "shape_not_detected", - "inventory_on_hand_colloquial_bridge_signal_detected", - "organization_candidates_from_scope_context", - "organization_clarification_required", - "multiple_known_organizations_detected", - "exact_inventory_mode_limited_response" - ] - }, - "state_transition_id": "T7", - "state_transition_status": "clarification_required", - "effective_carryover_depth": "full", - "assistant_capability_binding_v1": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "confirmed_inventory_on_hand_as_of_date", - "capability_contract_id": "confirmed_inventory_on_hand_as_of_date", - "binding_status": "bound_with_limits", - "binding_action": "limit", - "runtime_lane_expected": "address_exact", - "runtime_lane_observed": "address_exact", - "execution_adapter": "AddressQueryService", - "transition_id": "T7", - "transition_allowed": true, - "required_anchors": [], - "provided_anchors": [ - "sort", - "as_of_date" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": "item_list_with_quantity_cost_warehouse_organization", - "answer_object_shape": "inventory_stock_snapshot", - "truth_gate_behavior": "partial_or_blocked_if_evidence_insufficient", - "truth_fallback_allowed": true, - "answer_shape_compatible": true, - "violations": [], - "reason_codes": [ - "binding_status_bound_with_limits", - "binding_action_limit", - "transition_status_clarification_required", - "transition_T7", - "missing_anchor_or_filter_requires_clarification", - "debug_capability_id_matched_contract", - "truth_gate_blocked_missing_anchor", - "truth_mode_clarification_required", - "missing_filter_organization", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "shape_not_detected", - "inventory_on_hand_colloquial_bridge_signal_detected", - "organization_candidates_from_scope_context", - "organization_clarification_required", - "multiple_known_organizations_detected", - "exact_inventory_mode_limited_response" - ] - }, - "capability_binding_contract": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "confirmed_inventory_on_hand_as_of_date", - "capability_contract_id": "confirmed_inventory_on_hand_as_of_date", - "binding_status": "bound_with_limits", - "binding_action": "limit", - "runtime_lane_expected": "address_exact", - "runtime_lane_observed": "address_exact", - "execution_adapter": "AddressQueryService", - "transition_id": "T7", - "transition_allowed": true, - "required_anchors": [], - "provided_anchors": [ - "sort", - "as_of_date" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": "item_list_with_quantity_cost_warehouse_organization", - "answer_object_shape": "inventory_stock_snapshot", - "truth_gate_behavior": "partial_or_blocked_if_evidence_insufficient", - "truth_fallback_allowed": true, - "answer_shape_compatible": true, - "violations": [], - "reason_codes": [ - "binding_status_bound_with_limits", - "binding_action_limit", - "transition_status_clarification_required", - "transition_T7", - "missing_anchor_or_filter_requires_clarification", - "debug_capability_id_matched_contract", - "truth_gate_blocked_missing_anchor", - "truth_mode_clarification_required", - "missing_filter_organization", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "shape_not_detected", - "inventory_on_hand_colloquial_bridge_signal_detected", - "organization_candidates_from_scope_context", - "organization_clarification_required", - "multiple_known_organizations_detected", - "exact_inventory_mode_limited_response" - ] - }, - "capability_binding_status": "bound_with_limits", - "capability_binding_action": "limit", - "capability_binding_violations": [], - "capability_binding_response_guard": { - "schema_version": "assistant_capability_binding_response_guard_v1", - "guard_owner": "assistantCapabilityBindingResponseGuard", - "applied": false, - "action": "limit", - "original_reply_type": "partial_coverage", - "guarded_reply_type": "partial_coverage", - "reason_codes": [ - "binding_status_bound_with_limits", - "binding_action_limit", - "transition_status_clarification_required", - "transition_T7", - "missing_anchor_or_filter_requires_clarification", - "debug_capability_id_matched_contract", - "truth_gate_blocked_missing_anchor", - "truth_mode_clarification_required", - "missing_filter_organization", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "shape_not_detected", - "inventory_on_hand_colloquial_bridge_signal_detected", - "organization_candidates_from_scope_context", - "organization_clarification_required", - "multiple_known_organizations_detected", - "exact_inventory_mode_limited_response", - "capability_binding_guard_limited_reply_type" - ] - } - } - }, - { - "message_id": "msg-oUccNUjkHI", - "session_id": "asst-HFD9N5qwZM", - "role": "user", - "text": "альтернатива", - "reply_type": null, - "created_at": "2026-04-19T15:48:17.564Z", - "trace_id": null, - "debug": null - }, - { - "message_id": "msg-8j-yLKFQxv", - "session_id": "asst-HFD9N5qwZM", - "role": "assistant", - "text": "На 19.04.2026 на складе подтверждено 11 позиций с остатком на 716.418,33 ₽.\n\nПозиции:\n1. Модуль прямоугольый 1400*110*750 | склад: Основной склад | количество: 22,000 | сумма: 148.261,67 ₽ | организация: ООО \\Альтернатива Плюс\\ | последняя дата: 19.04.2026\n2. Конструкция трансформер рабочей станции 1300*900*2000 | склад: Основной склад | количество: 3,000 | сумма: 498.472,50 ₽ | организация: ООО \\Альтернатива Плюс\\ | последняя дата: 19.04.2026\n3. Диван трехместный | склад: Основной склад | количество: 1,000 | сумма: 34.490,00 ₽ | организация: ООО \\Альтернатива Плюс\\ | последняя дата: 19.04.2026\n4. Кресло орион | склад: Основной склад | количество: 1,000 | сумма: 13.490,00 ₽ | организация: ООО \\Альтернатива Плюс\\ | последняя дата: 19.04.2026\n5. Зеркало для инвалидов поворотное травмобезопасное | склад: Основной склад | количество: 1,000 | сумма: 7.250,00 ₽ | организация: ООО \\Альтернатива Плюс\\ | последняя дата: 19.04.2026\n6. Пуф арий | склад: Основной склад | количество: 1,000 | сумма: 6.490,00 ₽ | организация: ООО \\Альтернатива Плюс\\ | последняя дата: 19.04.2026\n7. Столешница 600*3050*26 дуб ниагара | склад: Основной склад | количество: 1,000 | сумма: 3.724,17 ₽ | организация: ООО \\Альтернатива Плюс\\ | последняя дата: 19.04.2026\n8. Столешница 600*3050*26 альмандин | склад: Основной склад | количество: 1,000 | сумма: 3.075,00 ₽ | организация: ООО \\Альтернатива Плюс\\ | последняя дата: 19.04.2026\n9. Четки Пост (84*117) | склад: Основной склад | количество: 1,000 | сумма: 833,33 ₽ | организация: ООО \\Альтернатива Плюс\\ | последняя дата: 19.04.2026\n10. Кромка с клеем 33 альмандин 137 м | склад: Основной склад | количество: 1,000 | сумма: 165,83 ₽ | организация: ООО \\Альтернатива Плюс\\ | последняя дата: 19.04.2026\n11. Кромка с клеем 33 дуб ниагара 137 м | склад: Основной склад | количество: 1,000 | сумма: 165,83 ₽ | организация: ООО \\Альтернатива Плюс\\ | последняя дата: 19.04.2026\n\nСводка:\n- Дата среза: 19.04.2026.\n- Позиции с остатком: 11.\n- Уникальных товаров: 11.\n- Уникальных складов: 1.\n- Суммарное количество: 34,000.", - "reply_type": "factual", - "created_at": "2026-04-19T15:48:30.785Z", - "trace_id": "address-wla5M3VuP8", - "debug": { - "trace_id": "address-wla5M3VuP8", - "prompt_version": "address_query_runtime_v1", - "schema_version": "address_query_runtime_v1", - "fallback_type": "none", - "route_summary": null, - "fragments": [], - "requirements_extracted": [], - "coverage_report": { - "requirements_total": 0, - "requirements_covered": 0, - "requirements_uncovered": [], - "requirements_partially_covered": [], - "clarification_needed_for": [], - "out_of_scope_requirements": [] - }, - "routes": [], - "retrieval_status": [], - "retrieval_results": [], - "answer_grounding_check": { - "status": "grounded", - "route_subject_match": true, - "missing_requirements": [], - "reasons": [ - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "organization_from_followup_context", - "counterparty_cleared_as_organization_scope_alias", - "address_followup_context_applied", - "confirmed_balance_exact_inventory_intent" - ], - "why_included_summary": [], - "selection_reason_summary": [] - }, - "dropped_intent_segments": [], - "detected_mode": "address_query", - "detected_mode_confidence": "medium", - "query_shape": "UNKNOWN", - "query_shape_confidence": "low", - "detected_intent": "inventory_on_hand_as_of_date", - "detected_intent_confidence": "low", - "extracted_filters": { - "sort": "period_desc", - "as_of_date": "2026-04-19", - "organization": "ООО Альтернатива Плюс" - }, - "missing_required_filters": [], - "selected_recipe": "address_inventory_on_hand_as_of_date_v1", - "mcp_call_status_legacy": "matched_non_empty", - "account_scope_mode": "strict", - "account_scope_fallback_applied": false, - "anchor_type": "organization", - "anchor_value_raw": "ООО Альтернатива Плюс", - "anchor_value_resolved": "ООО \\Альтернатива Плюс\\", - "resolver_confidence": "medium", - "ambiguity_count": 0, - "match_failure_stage": "none", - "match_failure_reason": null, - "mcp_call_status": "matched_non_empty", - "rows_fetched": 11, - "raw_rows_received": 11, - "rows_after_account_scope": 11, - "rows_after_recipe_filter": 11, - "rows_materialized": 11, - "rows_matched": 11, - "raw_row_keys_sample": [ - "Период", - "Регистратор", - "СчетДт", - "СчетКт", - "Сумма", - "Номенклатура", - "Склад", - "Организация", - "Количество", - "Period", - "Registrator", - "AccountDt", - "Amount" - ], - "materialization_drop_reason": "none", - "account_token_raw": null, - "account_token_normalized": null, - "account_scope_fields_checked": [ - "account_dt", - "account_kt", - "registrator", - "analytics" - ], - "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", - "account_scope_drop_reason": "not_applicable", - "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", - "limited_reason_category": null, - "response_type": "FACTUAL_LIST", - "requested_result_mode": "confirmed_balance", - "result_mode": "confirmed_balance", - "evidence_strength": "strong", - "balance_confirmed": true, - "as_of_date_basis": "implicit_current_snapshot", - "capability_id": "confirmed_inventory_on_hand_as_of_date", - "capability_layer": "compute", - "capability_route_mode": "exact", - "capability_route_enabled": true, - "capability_route_reason": "inventory_on_hand_route_enabled", - "shadow_route_status": "skipped", - "route_expectation_status": "matched", - "route_expectation_reason": "route_expectation_matched", - "route_expectation_expected_selected_recipes": [ - "address_inventory_on_hand_as_of_date_v1" - ], - "route_expectation_expected_requested_result_modes": [ - "confirmed_balance" - ], - "route_expectation_expected_result_modes": [ - "confirmed_balance" - ], - "execution_lane": "address_query", - "llm_decomposition_applied": false, - "llm_decomposition_attempted": true, - "llm_provider_used": "local", - "llm_decomposition_trace_id": "0tFeYexpYk4DoU", - "llm_decomposition_effective_message": "альтернатива", - "llm_decomposition_reason": "followup_raw_message_preferred_over_llm_rewrite", - "llm_canonical_candidate_detected": true, - "llm_predecompose_contract": { - "schema_version": "address_llm_predecompose_contract_v1", - "source_message": "альтернатива", - "canonical_message": "альтернатива", - "mode": "unsupported", - "mode_confidence": "low", - "query_shape": "UNKNOWN", - "query_shape_confidence": "low", - "intent": "unknown", - "intent_confidence": "low", - "entities": { - "account": null, - "counterparty": null, - "contract": null, - "document_type": null, - "document_ref": null, - "organization": null - }, - "period": { - "scope": "unspecified", - "period_from": null, - "period_to": null, - "as_of_date": null, - "has_explicit_period": false - }, - "semantics": { - "scope_kind": "none", - "anchor_kind": "none", - "anchor_value": null, - "date_scope_kind": "none", - "date_basis_hint": null, - "self_scope_detected": false, - "selected_object_scope_detected": false - }, - "aggregation_profile": "unknown" - }, - "fallback_rule_hit": null, - "sanitized_user_message": "альтернатива", - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "followup_context_detected", - "orchestration_contract_v1": { - "schema_version": "assistant_orchestration_contract_v1", - "hard_meta_mode": null, - "provider_execution": { - "schema_version": "assistant_provider_execution_contract_v1", - "policy_owner": "assistantProviderExecutionPolicy", - "provider_mode": "unknown", - "normalized_provider": null, - "use_mock": false, - "base_url_configured": false, - "llm_runtime_unavailable_detected": false, - "living_mode_forced_deep": false, - "living_mode_forced_reason": null, - "reason_codes": [ - "provider_unknown" - ] - }, - "address_mode": "unsupported", - "address_mode_confidence": "low", - "address_intent": "unknown", - "address_intent_confidence": "low", - "strong_data_signal_detected": false, - "data_retrieval_signal_detected": false, - "semantic_contract_valid": true, - "semantic_apply_canonical_recommended": true, - "semantic_reason_codes": [ - "unsupported_low_confidence_contract", - "rewrite_without_structured_gain" - ], - "semantic_route_arbitration": { - "supported_address_intent_detected": false, - "strict_deep_investigation_bypass_allowed": false, - "semantic_deep_investigation_hint_detected": false, - "semantic_aggregate_shape_detected": false, - "exact_address_intent_protected_from_semantic_deep_hint": false, - "followup_semantic_override_to_deep_allowed": true - }, - "followup_context_detected": true, - "unsupported_address_intent_fallback_to_deep": false, - "deep_analysis_signal_fallback_to_deep": false, - "aggregate_analytics_signal_fallback_to_deep": false, - "deep_session_continuation_fallback_to_deep": false, - "answer_inspection_followup_over_grounded_answer": false, - "final_decision": { - "run_address_lane": true, - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "followup_context_detected", - "living_mode": "address_data", - "living_reason": "address_lane_triggered" - } - }, - "dialog_continuation_contract_v2": { - "schema_version": "address_dialog_continuation_contract_v2", - "source_message": "альтернатива", - "effective_message": "альтернатива", - "decision": "continue_previous", - "decision_reasons": [ - "followup_context_detected" - ], - "followup_context_applied": true, - "previous_intent": "inventory_on_hand_as_of_date", - "target_intent": "inventory_on_hand_as_of_date", - "intent_selection_mode": "carry_previous_intent", - "anchor_type": "organization", - "anchor_value": "ООО Альтернатива Плюс", - "implicit_continuation_signal": false - }, - "address_retry_audit": { - "attempted": false, - "reason": null, - "initial_limited_category": null, - "retry_message": null, - "retry_used_followup_context": false, - "retry_result_category": null - }, - "answer_structure_v11": null, - "investigation_state_snapshot": null, - "normalized": null, - "normalizer_output": { - "trace_id": "0tFeYexpYk4DoU", - "prompt_version": "normalizer_v2_0_2", - "applied": false, - "effective_message": "альтернатива" - }, - "assistant_known_organizations": [ - "ООО Альтернатива Плюс", - "ООО Лайсвуд", - "РАЙМ" - ], - "assistant_active_organization": "ООО Альтернатива Плюс", - "address_root_frame_context": { - "root_intent": "inventory_on_hand_as_of_date", - "current_frame_kind": "inventory_root", - "organization": "ООО Альтернатива Плюс", - "as_of_date": "2026-04-19", - "period_from": null, - "period_to": null - }, - "assistant_runtime_contract_v1": { - "schema_version": "assistant_runtime_contracts_v1", - "transition_contract_id": "T2", - "transition_contract_title": "Root Follow-Up With Date Or Scope Change", - "transition_contract_reason": [ - "root_followup_continue_previous" - ], - "capability_contract_id": "confirmed_inventory_on_hand_as_of_date", - "capability_contract_reason": [ - "debug_capability_id_matched_contract" - ], - "truth_gate_contract_status": "full_confirmed", - "carryover_eligibility": "root_only" - }, - "transition_contract_id": "T2", - "capability_contract_id": "confirmed_inventory_on_hand_as_of_date", - "truth_gate_contract_status": "full_confirmed", - "assistant_truth_answer_policy_v1": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "truth_gate": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "organization_from_followup_context", - "counterparty_cleared_as_organization_scope_alias", - "address_followup_context_applied", - "confirmed_balance_exact_inventory_intent" - ], - "source_truth_gate_status": "full_confirmed", - "blocked_or_limited_explanation": null - }, - "answer_shape": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "confirmed_factual", - "reply_type": "factual", - "capability_contract_id": "confirmed_inventory_on_hand_as_of_date", - "transition_contract_id": "T2", - "may_state_confirmed_facts": true, - "must_include_limitation": false, - "may_power_followup": true, - "required_sections": [ - "direct_answer", - "evidence_basis" - ], - "downgrade_only": true - } - }, - "coverage_gate_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "organization_from_followup_context", - "counterparty_cleared_as_organization_scope_alias", - "address_followup_context_applied", - "confirmed_balance_exact_inventory_intent" - ], - "source_truth_gate_status": "full_confirmed", - "blocked_or_limited_explanation": null - }, - "answer_shape_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "confirmed_factual", - "reply_type": "factual", - "capability_contract_id": "confirmed_inventory_on_hand_as_of_date", - "transition_contract_id": "T2", - "may_state_confirmed_facts": true, - "must_include_limitation": false, - "may_power_followup": true, - "required_sections": [ - "direct_answer", - "evidence_basis" - ], - "downgrade_only": true - }, - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "answer_shape": "confirmed_factual", - "assistant_state_transition_v1": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": "T2", - "transition_title": "Root Follow-Up With Date Or Scope Change", - "application_status": "applied", - "declared_carryover_depth": "root_only", - "truth_gate_carryover_depth": "root_only", - "effective_carryover_depth": "root_only", - "required_prior_state": [ - "root_frame_state" - ], - "expected_answer_mode": "confirmed", - "state_mutations": [ - "update_root_frame_state", - "run_exact_route", - "refresh_coverage_gate_state" - ], - "forbidden_carryover": [ - "incompatible_selected_object_route" - ], - "state_actions": { - "living_mode_state": "update", - "root_frame_state": "update", - "selected_object_frame_state": "clear", - "meta_frame_state": "clear", - "clarification_state": "clear", - "coverage_gate_state": "create", - "answer_context_state": "create" - }, - "coverage_gate_state": { - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "organization_from_followup_context", - "counterparty_cleared_as_organization_scope_alias", - "address_followup_context_applied", - "confirmed_balance_exact_inventory_intent" - ] - }, - "reason_codes": [ - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "organization_from_followup_context", - "counterparty_cleared_as_organization_scope_alias", - "address_followup_context_applied", - "confirmed_balance_exact_inventory_intent" - ] - }, - "state_transition_contract": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": "T2", - "transition_title": "Root Follow-Up With Date Or Scope Change", - "application_status": "applied", - "declared_carryover_depth": "root_only", - "truth_gate_carryover_depth": "root_only", - "effective_carryover_depth": "root_only", - "required_prior_state": [ - "root_frame_state" - ], - "expected_answer_mode": "confirmed", - "state_mutations": [ - "update_root_frame_state", - "run_exact_route", - "refresh_coverage_gate_state" - ], - "forbidden_carryover": [ - "incompatible_selected_object_route" - ], - "state_actions": { - "living_mode_state": "update", - "root_frame_state": "update", - "selected_object_frame_state": "clear", - "meta_frame_state": "clear", - "clarification_state": "clear", - "coverage_gate_state": "create", - "answer_context_state": "create" - }, - "coverage_gate_state": { - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "organization_from_followup_context", - "counterparty_cleared_as_organization_scope_alias", - "address_followup_context_applied", - "confirmed_balance_exact_inventory_intent" - ] - }, - "reason_codes": [ - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "organization_from_followup_context", - "counterparty_cleared_as_organization_scope_alias", - "address_followup_context_applied", - "confirmed_balance_exact_inventory_intent" - ] - }, - "state_transition_id": "T2", - "state_transition_status": "applied", - "effective_carryover_depth": "root_only", - "assistant_capability_binding_v1": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "confirmed_inventory_on_hand_as_of_date", - "capability_contract_id": "confirmed_inventory_on_hand_as_of_date", - "binding_status": "bound", - "binding_action": "allow", - "runtime_lane_expected": "address_exact", - "runtime_lane_observed": "address_exact", - "execution_adapter": "AddressQueryService", - "transition_id": "T2", - "transition_allowed": true, - "required_anchors": [], - "provided_anchors": [ - "sort", - "as_of_date", - "organization" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": "item_list_with_quantity_cost_warehouse_organization", - "answer_object_shape": "inventory_stock_snapshot", - "truth_gate_behavior": "partial_or_blocked_if_evidence_insufficient", - "truth_fallback_allowed": true, - "answer_shape_compatible": true, - "violations": [], - "reason_codes": [ - "binding_status_bound", - "binding_action_allow", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "organization_from_followup_context", - "counterparty_cleared_as_organization_scope_alias", - "address_followup_context_applied", - "confirmed_balance_exact_inventory_intent" - ] - }, - "capability_binding_contract": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "confirmed_inventory_on_hand_as_of_date", - "capability_contract_id": "confirmed_inventory_on_hand_as_of_date", - "binding_status": "bound", - "binding_action": "allow", - "runtime_lane_expected": "address_exact", - "runtime_lane_observed": "address_exact", - "execution_adapter": "AddressQueryService", - "transition_id": "T2", - "transition_allowed": true, - "required_anchors": [], - "provided_anchors": [ - "sort", - "as_of_date", - "organization" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": "item_list_with_quantity_cost_warehouse_organization", - "answer_object_shape": "inventory_stock_snapshot", - "truth_gate_behavior": "partial_or_blocked_if_evidence_insufficient", - "truth_fallback_allowed": true, - "answer_shape_compatible": true, - "violations": [], - "reason_codes": [ - "binding_status_bound", - "binding_action_allow", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "organization_from_followup_context", - "counterparty_cleared_as_organization_scope_alias", - "address_followup_context_applied", - "confirmed_balance_exact_inventory_intent" - ] - }, - "capability_binding_status": "bound", - "capability_binding_action": "allow", - "capability_binding_violations": [], - "capability_binding_response_guard": { - "schema_version": "assistant_capability_binding_response_guard_v1", - "guard_owner": "assistantCapabilityBindingResponseGuard", - "applied": false, - "action": "allow", - "original_reply_type": "factual", - "guarded_reply_type": "factual", - "reason_codes": [ - "binding_status_bound", - "binding_action_allow", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "organization_from_followup_context", - "counterparty_cleared_as_organization_scope_alias", - "address_followup_context_applied", - "confirmed_balance_exact_inventory_intent" - ] - } - } - }, - { - "message_id": "msg-affnHOoC0I", - "session_id": "asst-HFD9N5qwZM", - "role": "user", - "text": "покажи документы по чепурнову", - "reply_type": null, - "created_at": "2026-04-19T15:50:06.644Z", - "trace_id": null, - "debug": null - }, - { - "message_id": "msg-db4ft8FU6c", - "session_id": "asst-HFD9N5qwZM", - "role": "assistant", - "text": "Контрагент: Чепурнов П.Д. Д. Найдено документов: 1.\nКонтрагент: Чепурнов П.Д. Д.\n1. 2022-01-20T12:00:03Z | Поступление на расчетный счет 00000000001 от 20.01.2022 12:00:03 | 0 / 0 | 890660 | аналитика: Чепурнов П.Д.; Договор № 11/1 от 25.11.2020 г.", - "reply_type": "factual", - "created_at": "2026-04-19T15:50:19.730Z", - "trace_id": "address-GUrN4cdH9l", - "debug": { - "trace_id": "address-GUrN4cdH9l", - "prompt_version": "address_query_runtime_v1", - "schema_version": "address_query_runtime_v1", - "fallback_type": "none", - "route_summary": null, - "fragments": [], - "requirements_extracted": [], - "coverage_report": { - "requirements_total": 0, - "requirements_covered": 0, - "requirements_uncovered": [], - "requirements_partially_covered": [], - "clarification_needed_for": [], - "out_of_scope_requirements": [] - }, - "routes": [], - "retrieval_status": [], - "retrieval_results": [], - "answer_grounding_check": { - "status": "grounded", - "route_subject_match": true, - "missing_requirements": [], - "reasons": [ - "address_action_detected", - "address_entity_detected", - "document_list_signal_detected", - "documents_by_counterparty_signal_detected", - "organization_from_followup_context", - "address_followup_context_applied" - ], - "why_included_summary": [], - "selection_reason_summary": [] - }, - "dropped_intent_segments": [], - "detected_mode": "address_query", - "detected_mode_confidence": "high", - "query_shape": "DOCUMENT_LIST", - "query_shape_confidence": "medium", - "detected_intent": "list_documents_by_counterparty", - "detected_intent_confidence": "medium", - "extracted_filters": { - "sort": "period_desc", - "limit": 20, - "counterparty": "Чепурнов П.Д.", - "organization": "ООО Альтернатива Плюс" - }, - "missing_required_filters": [], - "selected_recipe": "address_documents_by_counterparty_v1", - "mcp_call_status_legacy": "matched_non_empty", - "account_scope_mode": "preferred", - "account_scope_fallback_applied": false, - "anchor_type": "counterparty", - "anchor_value_raw": "чепурнов", - "anchor_value_resolved": "Чепурнов П.Д.", - "resolver_confidence": "medium", - "ambiguity_count": 0, - "match_failure_stage": "none", - "match_failure_reason": null, - "mcp_call_status": "matched_non_empty", - "rows_fetched": 1000, - "raw_rows_received": 1000, - "rows_after_account_scope": 124, - "rows_after_recipe_filter": 1, - "rows_materialized": 124, - "rows_matched": 1, - "raw_row_keys_sample": [ - "Период", - "Регистратор", - "СчетДт", - "СчетКт", - "Сумма", - "Контрагент", - "Договор", - "Period", - "Registrator", - "Amount" - ], - "materialization_drop_reason": "none", - "account_token_raw": null, - "account_token_normalized": null, - "account_scope_fields_checked": [ - "account_dt", - "account_kt", - "registrator", - "analytics" - ], - "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", - "account_scope_drop_reason": "not_applicable", - "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", - "limited_reason_category": null, - "response_type": "FACTUAL_LIST", - "as_of_date_basis": "implicit_current_snapshot", - "capability_id": "documents_drilldown", - "capability_layer": "navigation", - "capability_route_mode": "exact", - "capability_route_enabled": true, - "capability_route_reason": "drilldown_route_enabled", - "shadow_route_status": "skipped", - "route_expectation_status": "matched", - "route_expectation_reason": "route_expectation_matched", - "route_expectation_expected_selected_recipes": [ - "address_documents_by_counterparty_v1" - ], - "route_expectation_expected_requested_result_modes": [], - "route_expectation_expected_result_modes": [ - "heuristic_candidates", - "confirmed_balance" - ], - "execution_lane": "address_query", - "llm_decomposition_applied": false, - "llm_decomposition_attempted": true, - "llm_provider_used": "local", - "llm_decomposition_trace_id": "UlXZTHISmL56Ec", - "llm_decomposition_effective_message": "покажи документы по чепурнову", - "llm_decomposition_reason": "normalized_fragment_rejected_intent_drop", - "llm_canonical_candidate_detected": true, - "llm_predecompose_contract": { - "schema_version": "address_llm_predecompose_contract_v1", - "source_message": "покажи документы по чепурнову", - "canonical_message": "покажи документы по чепурнову", - "mode": "address_query", - "mode_confidence": "high", - "query_shape": "DOCUMENT_LIST", - "query_shape_confidence": "medium", - "intent": "list_documents_by_counterparty", - "intent_confidence": "medium", - "entities": { - "account": null, - "counterparty": "чепурнов", - "contract": null, - "document_type": null, - "document_ref": null, - "organization": null - }, - "period": { - "scope": "unspecified", - "period_from": null, - "period_to": null, - "as_of_date": null, - "has_explicit_period": false - }, - "semantics": { - "scope_kind": "explicit_anchor", - "anchor_kind": "counterparty", - "anchor_value": "чепурнов", - "date_scope_kind": "implicit_current", - "date_basis_hint": "implicit_current_snapshot", - "self_scope_detected": false, - "selected_object_scope_detected": false - }, - "aggregation_profile": "list_lookup" - }, - "fallback_rule_hit": null, - "sanitized_user_message": "покажи документы по чепурнову", - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "address_mode_classifier_detected", - "orchestration_contract_v1": { - "schema_version": "assistant_orchestration_contract_v1", - "hard_meta_mode": null, - "provider_execution": { - "schema_version": "assistant_provider_execution_contract_v1", - "policy_owner": "assistantProviderExecutionPolicy", - "provider_mode": "unknown", - "normalized_provider": null, - "use_mock": false, - "base_url_configured": false, - "llm_runtime_unavailable_detected": false, - "living_mode_forced_deep": false, - "living_mode_forced_reason": null, - "reason_codes": [ - "provider_unknown" - ] - }, - "address_mode": "address_query", - "address_mode_confidence": "high", - "address_intent": "list_documents_by_counterparty", - "address_intent_confidence": "medium", - "strong_data_signal_detected": true, - "data_retrieval_signal_detected": true, - "semantic_contract_valid": true, - "semantic_apply_canonical_recommended": true, - "semantic_reason_codes": [], - "semantic_route_arbitration": { - "supported_address_intent_detected": true, - "strict_deep_investigation_bypass_allowed": false, - "semantic_deep_investigation_hint_detected": false, - "semantic_aggregate_shape_detected": false, - "exact_address_intent_protected_from_semantic_deep_hint": true, - "followup_semantic_override_to_deep_allowed": false - }, - "followup_context_detected": true, - "unsupported_address_intent_fallback_to_deep": false, - "deep_analysis_signal_fallback_to_deep": false, - "aggregate_analytics_signal_fallback_to_deep": false, - "deep_session_continuation_fallback_to_deep": false, - "answer_inspection_followup_over_grounded_answer": false, - "final_decision": { - "run_address_lane": true, - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "address_mode_classifier_detected", - "living_mode": "address_data", - "living_reason": "address_lane_triggered" - } - }, - "dialog_continuation_contract_v2": { - "schema_version": "address_dialog_continuation_contract_v2", - "source_message": "покажи документы по чепурнову", - "effective_message": "покажи документы по чепурнову", - "decision": "continue_previous", - "decision_reasons": [ - "followup_context_detected", - "llm_contract_intent_available" - ], - "followup_context_applied": true, - "previous_intent": "inventory_on_hand_as_of_date", - "target_intent": "list_documents_by_counterparty", - "intent_selection_mode": "carry_previous_intent", - "anchor_type": "organization", - "anchor_value": "ООО \\Альтернатива Плюс\\", - "implicit_continuation_signal": false - }, - "address_retry_audit": { - "attempted": false, - "reason": null, - "initial_limited_category": null, - "retry_message": null, - "retry_used_followup_context": false, - "retry_result_category": null - }, - "answer_structure_v11": null, - "investigation_state_snapshot": null, - "normalized": null, - "normalizer_output": { - "trace_id": "UlXZTHISmL56Ec", - "prompt_version": "normalizer_v2_0_2", - "applied": false, - "effective_message": "покажи документы по чепурнову" - }, - "address_followup_offer": { - "enabled": true, - "source_intent": "list_documents_by_counterparty", - "anchor_type": "counterparty", - "anchor_value": "Чепурнов П.Д.", - "suggested_intents": [ - "bank_operations_by_counterparty", - "list_contracts_by_counterparty" - ] - }, - "assistant_known_organizations": [ - "ООО Альтернатива Плюс", - "ООО Лайсвуд", - "РАЙМ" - ], - "assistant_active_organization": "ООО Альтернатива Плюс", - "address_root_frame_context": { - "root_intent": "inventory_on_hand_as_of_date", - "current_frame_kind": "inventory_root", - "organization": "ООО Альтернатива Плюс", - "as_of_date": "2026-04-19", - "period_from": null, - "period_to": null - }, - "assistant_runtime_contract_v1": { - "schema_version": "assistant_runtime_contracts_v1", - "transition_contract_id": "T2", - "transition_contract_title": "Root Follow-Up With Date Or Scope Change", - "transition_contract_reason": [ - "root_followup_continue_previous" - ], - "capability_contract_id": null, - "capability_contract_reason": [ - "debug_capability_id_has_no_contract" - ], - "truth_gate_contract_status": "full_confirmed", - "carryover_eligibility": "root_only" - }, - "transition_contract_id": "T2", - "capability_contract_id": null, - "truth_gate_contract_status": "full_confirmed", - "assistant_truth_answer_policy_v1": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "truth_gate": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "document_list_signal_detected", - "documents_by_counterparty_signal_detected", - "organization_from_followup_context", - "address_followup_context_applied" - ], - "source_truth_gate_status": "full_confirmed", - "blocked_or_limited_explanation": null - }, - "answer_shape": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "confirmed_factual", - "reply_type": "factual", - "capability_contract_id": null, - "transition_contract_id": "T2", - "may_state_confirmed_facts": true, - "must_include_limitation": false, - "may_power_followup": true, - "required_sections": [ - "direct_answer", - "evidence_basis" - ], - "downgrade_only": true - } - }, - "coverage_gate_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "document_list_signal_detected", - "documents_by_counterparty_signal_detected", - "organization_from_followup_context", - "address_followup_context_applied" - ], - "source_truth_gate_status": "full_confirmed", - "blocked_or_limited_explanation": null - }, - "answer_shape_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "confirmed_factual", - "reply_type": "factual", - "capability_contract_id": null, - "transition_contract_id": "T2", - "may_state_confirmed_facts": true, - "must_include_limitation": false, - "may_power_followup": true, - "required_sections": [ - "direct_answer", - "evidence_basis" - ], - "downgrade_only": true - }, - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "answer_shape": "confirmed_factual", - "assistant_state_transition_v1": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": "T2", - "transition_title": "Root Follow-Up With Date Or Scope Change", - "application_status": "applied", - "declared_carryover_depth": "root_only", - "truth_gate_carryover_depth": "root_only", - "effective_carryover_depth": "root_only", - "required_prior_state": [ - "root_frame_state" - ], - "expected_answer_mode": "confirmed", - "state_mutations": [ - "update_root_frame_state", - "run_exact_route", - "refresh_coverage_gate_state" - ], - "forbidden_carryover": [ - "incompatible_selected_object_route" - ], - "state_actions": { - "living_mode_state": "update", - "root_frame_state": "update", - "selected_object_frame_state": "clear", - "meta_frame_state": "clear", - "clarification_state": "clear", - "coverage_gate_state": "create", - "answer_context_state": "create" - }, - "coverage_gate_state": { - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "document_list_signal_detected", - "documents_by_counterparty_signal_detected", - "organization_from_followup_context", - "address_followup_context_applied" - ] - }, - "reason_codes": [ - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "document_list_signal_detected", - "documents_by_counterparty_signal_detected", - "organization_from_followup_context", - "address_followup_context_applied" - ] - }, - "state_transition_contract": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": "T2", - "transition_title": "Root Follow-Up With Date Or Scope Change", - "application_status": "applied", - "declared_carryover_depth": "root_only", - "truth_gate_carryover_depth": "root_only", - "effective_carryover_depth": "root_only", - "required_prior_state": [ - "root_frame_state" - ], - "expected_answer_mode": "confirmed", - "state_mutations": [ - "update_root_frame_state", - "run_exact_route", - "refresh_coverage_gate_state" - ], - "forbidden_carryover": [ - "incompatible_selected_object_route" - ], - "state_actions": { - "living_mode_state": "update", - "root_frame_state": "update", - "selected_object_frame_state": "clear", - "meta_frame_state": "clear", - "clarification_state": "clear", - "coverage_gate_state": "create", - "answer_context_state": "create" - }, - "coverage_gate_state": { - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "document_list_signal_detected", - "documents_by_counterparty_signal_detected", - "organization_from_followup_context", - "address_followup_context_applied" - ] - }, - "reason_codes": [ - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "document_list_signal_detected", - "documents_by_counterparty_signal_detected", - "organization_from_followup_context", - "address_followup_context_applied" - ] - }, - "state_transition_id": "T2", - "state_transition_status": "applied", - "effective_carryover_depth": "root_only", - "assistant_capability_binding_v1": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "documents_drilldown", - "capability_contract_id": null, - "binding_status": "contract_missing", - "binding_action": "observe_only", - "runtime_lane_expected": null, - "runtime_lane_observed": "address_exact", - "execution_adapter": null, - "transition_id": "T2", - "transition_allowed": false, - "required_anchors": [], - "provided_anchors": [ - "sort", - "limit", - "counterparty", - "organization" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": null, - "answer_object_shape": null, - "truth_gate_behavior": null, - "truth_fallback_allowed": null, - "answer_shape_compatible": false, - "violations": [ - "capability_contract_missing" - ], - "reason_codes": [ - "binding_status_contract_missing", - "binding_action_observe_only", - "capability_contract_missing", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "document_list_signal_detected", - "documents_by_counterparty_signal_detected", - "organization_from_followup_context", - "address_followup_context_applied" - ] - }, - "capability_binding_contract": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "documents_drilldown", - "capability_contract_id": null, - "binding_status": "contract_missing", - "binding_action": "observe_only", - "runtime_lane_expected": null, - "runtime_lane_observed": "address_exact", - "execution_adapter": null, - "transition_id": "T2", - "transition_allowed": false, - "required_anchors": [], - "provided_anchors": [ - "sort", - "limit", - "counterparty", - "organization" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": null, - "answer_object_shape": null, - "truth_gate_behavior": null, - "truth_fallback_allowed": null, - "answer_shape_compatible": false, - "violations": [ - "capability_contract_missing" - ], - "reason_codes": [ - "binding_status_contract_missing", - "binding_action_observe_only", - "capability_contract_missing", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "document_list_signal_detected", - "documents_by_counterparty_signal_detected", - "organization_from_followup_context", - "address_followup_context_applied" - ] - }, - "capability_binding_status": "contract_missing", - "capability_binding_action": "observe_only", - "capability_binding_violations": [ - "capability_contract_missing" - ], - "capability_binding_response_guard": { - "schema_version": "assistant_capability_binding_response_guard_v1", - "guard_owner": "assistantCapabilityBindingResponseGuard", - "applied": false, - "action": "observe_only", - "original_reply_type": "factual", - "guarded_reply_type": "factual", - "reason_codes": [ - "binding_status_contract_missing", - "binding_action_observe_only", - "capability_contract_missing", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "address_action_detected", - "address_entity_detected", - "document_list_signal_detected", - "documents_by_counterparty_signal_detected", - "organization_from_followup_context", - "address_followup_context_applied" - ] - } - } - }, - { - "message_id": "msg-0eCFUR-qPh", - "session_id": "asst-HFD9N5qwZM", - "role": "user", - "text": "какой оборот был свк", - "reply_type": null, - "created_at": "2026-04-19T15:58:04.532Z", - "trace_id": null, - "debug": null - }, - { - "message_id": "msg-9Y0cF1OIYd", - "session_id": "asst-HFD9N5qwZM", - "role": "assistant", - "text": "Контрагент: Чепурнов П.Д. Д. Найдено документов: 1.\nКонтрагент: Чепурнов П.Д. Д.\n1. 2022-01-20T12:00:03Z | Поступление на расчетный счет 00000000001 от 20.01.2022 12:00:03 | 0 / 0 | 890660 | аналитика: Чепурнов П.Д.; Договор № 11/1 от 25.11.2020 г.", - "reply_type": "factual", - "created_at": "2026-04-19T15:58:20.316Z", - "trace_id": "address-Fq1cRhIMFu", - "debug": { - "trace_id": "address-Fq1cRhIMFu", - "prompt_version": "address_query_runtime_v1", - "schema_version": "address_query_runtime_v1", - "fallback_type": "none", - "route_summary": null, - "fragments": [], - "requirements_extracted": [], - "coverage_report": { - "requirements_total": 0, - "requirements_covered": 0, - "requirements_uncovered": [], - "requirements_partially_covered": [], - "clarification_needed_for": [], - "out_of_scope_requirements": [] - }, - "routes": [], - "retrieval_status": [], - "retrieval_results": [], - "answer_grounding_check": { - "status": "grounded", - "route_subject_match": true, - "missing_requirements": [], - "reasons": [ - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "aggregate_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "organization_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ], - "why_included_summary": [], - "selection_reason_summary": [] - }, - "dropped_intent_segments": [], - "detected_mode": "address_query", - "detected_mode_confidence": "medium", - "query_shape": "AGGREGATE_LOOKUP", - "query_shape_confidence": "high", - "detected_intent": "list_documents_by_counterparty", - "detected_intent_confidence": "low", - "extracted_filters": { - "sort": "period_desc", - "limit": 20, - "organization": "ООО Альтернатива Плюс", - "counterparty": "Чепурнов П.Д." - }, - "missing_required_filters": [], - "selected_recipe": "address_documents_by_counterparty_v1", - "mcp_call_status_legacy": "matched_non_empty", - "account_scope_mode": "preferred", - "account_scope_fallback_applied": false, - "anchor_type": "counterparty", - "anchor_value_raw": "Чепурнов П.Д.", - "anchor_value_resolved": "Чепурнов П.Д.", - "resolver_confidence": "high", - "ambiguity_count": 0, - "match_failure_stage": "none", - "match_failure_reason": null, - "mcp_call_status": "matched_non_empty", - "rows_fetched": 1000, - "raw_rows_received": 1000, - "rows_after_account_scope": 124, - "rows_after_recipe_filter": 1, - "rows_materialized": 124, - "rows_matched": 1, - "raw_row_keys_sample": [ - "Период", - "Регистратор", - "СчетДт", - "СчетКт", - "Сумма", - "Контрагент", - "Договор", - "Period", - "Registrator", - "Amount" - ], - "materialization_drop_reason": "none", - "account_token_raw": null, - "account_token_normalized": null, - "account_scope_fields_checked": [ - "account_dt", - "account_kt", - "registrator", - "analytics" - ], - "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", - "account_scope_drop_reason": "not_applicable", - "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", - "limited_reason_category": null, - "response_type": "FACTUAL_LIST", - "capability_id": "documents_drilldown", - "capability_layer": "navigation", - "capability_route_mode": "exact", - "capability_route_enabled": true, - "capability_route_reason": "drilldown_route_enabled", - "shadow_route_status": "skipped", - "route_expectation_status": "matched", - "route_expectation_reason": "route_expectation_matched", - "route_expectation_expected_selected_recipes": [ - "address_documents_by_counterparty_v1" - ], - "route_expectation_expected_requested_result_modes": [], - "route_expectation_expected_result_modes": [ - "heuristic_candidates", - "confirmed_balance" - ], - "execution_lane": "address_query", - "llm_decomposition_applied": false, - "llm_decomposition_attempted": true, - "llm_provider_used": "local", - "llm_decomposition_trace_id": "8TNaiB-JfhqB5s", - "llm_decomposition_effective_message": "какой оборот был свк", - "llm_decomposition_reason": "followup_raw_message_preferred_over_llm_rewrite", - "llm_canonical_candidate_detected": true, - "llm_predecompose_contract": { - "schema_version": "address_llm_predecompose_contract_v1", - "source_message": "какой оборот был свк", - "canonical_message": "какой оборот был свк", - "mode": "unsupported", - "mode_confidence": "low", - "query_shape": "AGGREGATE_LOOKUP", - "query_shape_confidence": "high", - "intent": "unknown", - "intent_confidence": "low", - "entities": { - "account": null, - "counterparty": null, - "contract": null, - "document_type": null, - "document_ref": null, - "organization": null - }, - "period": { - "scope": "unspecified", - "period_from": null, - "period_to": null, - "as_of_date": null, - "has_explicit_period": false - }, - "semantics": { - "scope_kind": "none", - "anchor_kind": "none", - "anchor_value": null, - "date_scope_kind": "none", - "date_basis_hint": null, - "self_scope_detected": false, - "selected_object_scope_detected": false - }, - "aggregation_profile": "management_profile" - }, - "fallback_rule_hit": null, - "sanitized_user_message": "какой оборот был свк", - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "address_signal_detected", - "orchestration_contract_v1": { - "schema_version": "assistant_orchestration_contract_v1", - "hard_meta_mode": null, - "provider_execution": { - "schema_version": "assistant_provider_execution_contract_v1", - "policy_owner": "assistantProviderExecutionPolicy", - "provider_mode": "unknown", - "normalized_provider": null, - "use_mock": false, - "base_url_configured": false, - "llm_runtime_unavailable_detected": false, - "living_mode_forced_deep": false, - "living_mode_forced_reason": null, - "reason_codes": [ - "provider_unknown" - ] - }, - "address_mode": "unsupported", - "address_mode_confidence": "low", - "address_intent": "unknown", - "address_intent_confidence": "low", - "strong_data_signal_detected": true, - "data_retrieval_signal_detected": true, - "semantic_contract_valid": true, - "semantic_apply_canonical_recommended": false, - "semantic_reason_codes": [ - "unsupported_low_confidence_contract" - ], - "semantic_route_arbitration": { - "supported_address_intent_detected": true, - "strict_deep_investigation_bypass_allowed": false, - "semantic_deep_investigation_hint_detected": false, - "semantic_aggregate_shape_detected": true, - "exact_address_intent_protected_from_semantic_deep_hint": false, - "followup_semantic_override_to_deep_allowed": true - }, - "followup_context_detected": true, - "unsupported_address_intent_fallback_to_deep": false, - "deep_analysis_signal_fallback_to_deep": false, - "aggregate_analytics_signal_fallback_to_deep": false, - "deep_session_continuation_fallback_to_deep": false, - "answer_inspection_followup_over_grounded_answer": false, - "final_decision": { - "run_address_lane": true, - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "address_signal_detected", - "living_mode": "address_data", - "living_reason": "address_lane_triggered" - } - }, - "dialog_continuation_contract_v2": { - "schema_version": "address_dialog_continuation_contract_v2", - "source_message": "какой оборот был свк", - "effective_message": "какой оборот был свк", - "decision": "continue_previous", - "decision_reasons": [ - "followup_context_detected" - ], - "followup_context_applied": true, - "previous_intent": "list_documents_by_counterparty", - "target_intent": "list_documents_by_counterparty", - "intent_selection_mode": "carry_previous_intent", - "anchor_type": "counterparty", - "anchor_value": "Чепурнов П.Д.", - "implicit_continuation_signal": false - }, - "address_retry_audit": { - "attempted": false, - "reason": null, - "initial_limited_category": null, - "retry_message": null, - "retry_used_followup_context": false, - "retry_result_category": null - }, - "answer_structure_v11": null, - "investigation_state_snapshot": null, - "normalized": null, - "normalizer_output": { - "trace_id": "8TNaiB-JfhqB5s", - "prompt_version": "normalizer_v2_0_2", - "applied": false, - "effective_message": "какой оборот был свк" - }, - "address_followup_offer": { - "enabled": true, - "source_intent": "list_documents_by_counterparty", - "anchor_type": "counterparty", - "anchor_value": "Чепурнов П.Д.", - "suggested_intents": [ - "bank_operations_by_counterparty", - "list_contracts_by_counterparty" - ] - }, - "assistant_known_organizations": [ - "ООО Альтернатива Плюс", - "ООО Лайсвуд", - "РАЙМ" - ], - "assistant_active_organization": "ООО Альтернатива Плюс", - "assistant_runtime_contract_v1": { - "schema_version": "assistant_runtime_contracts_v1", - "transition_contract_id": "T2", - "transition_contract_title": "Root Follow-Up With Date Or Scope Change", - "transition_contract_reason": [ - "root_followup_continue_previous" - ], - "capability_contract_id": null, - "capability_contract_reason": [ - "debug_capability_id_has_no_contract" - ], - "truth_gate_contract_status": "full_confirmed", - "carryover_eligibility": "root_only" - }, - "transition_contract_id": "T2", - "capability_contract_id": null, - "truth_gate_contract_status": "full_confirmed", - "assistant_truth_answer_policy_v1": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "truth_gate": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "aggregate_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "organization_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ], - "source_truth_gate_status": "full_confirmed", - "blocked_or_limited_explanation": null - }, - "answer_shape": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "confirmed_factual", - "reply_type": "factual", - "capability_contract_id": null, - "transition_contract_id": "T2", - "may_state_confirmed_facts": true, - "must_include_limitation": false, - "may_power_followup": true, - "required_sections": [ - "direct_answer", - "evidence_basis" - ], - "downgrade_only": true - } - }, - "coverage_gate_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "aggregate_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "organization_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ], - "source_truth_gate_status": "full_confirmed", - "blocked_or_limited_explanation": null - }, - "answer_shape_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "confirmed_factual", - "reply_type": "factual", - "capability_contract_id": null, - "transition_contract_id": "T2", - "may_state_confirmed_facts": true, - "must_include_limitation": false, - "may_power_followup": true, - "required_sections": [ - "direct_answer", - "evidence_basis" - ], - "downgrade_only": true - }, - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "answer_shape": "confirmed_factual", - "assistant_state_transition_v1": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": "T2", - "transition_title": "Root Follow-Up With Date Or Scope Change", - "application_status": "applied", - "declared_carryover_depth": "root_only", - "truth_gate_carryover_depth": "root_only", - "effective_carryover_depth": "root_only", - "required_prior_state": [ - "root_frame_state" - ], - "expected_answer_mode": "confirmed", - "state_mutations": [ - "update_root_frame_state", - "run_exact_route", - "refresh_coverage_gate_state" - ], - "forbidden_carryover": [ - "incompatible_selected_object_route" - ], - "state_actions": { - "living_mode_state": "update", - "root_frame_state": "update", - "selected_object_frame_state": "clear", - "meta_frame_state": "clear", - "clarification_state": "clear", - "coverage_gate_state": "create", - "answer_context_state": "create" - }, - "coverage_gate_state": { - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "aggregate_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "organization_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ] - }, - "reason_codes": [ - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "aggregate_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "organization_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ] - }, - "state_transition_contract": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": "T2", - "transition_title": "Root Follow-Up With Date Or Scope Change", - "application_status": "applied", - "declared_carryover_depth": "root_only", - "truth_gate_carryover_depth": "root_only", - "effective_carryover_depth": "root_only", - "required_prior_state": [ - "root_frame_state" - ], - "expected_answer_mode": "confirmed", - "state_mutations": [ - "update_root_frame_state", - "run_exact_route", - "refresh_coverage_gate_state" - ], - "forbidden_carryover": [ - "incompatible_selected_object_route" - ], - "state_actions": { - "living_mode_state": "update", - "root_frame_state": "update", - "selected_object_frame_state": "clear", - "meta_frame_state": "clear", - "clarification_state": "clear", - "coverage_gate_state": "create", - "answer_context_state": "create" - }, - "coverage_gate_state": { - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "aggregate_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "organization_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ] - }, - "reason_codes": [ - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "aggregate_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "organization_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ] - }, - "state_transition_id": "T2", - "state_transition_status": "applied", - "effective_carryover_depth": "root_only", - "assistant_capability_binding_v1": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "documents_drilldown", - "capability_contract_id": null, - "binding_status": "contract_missing", - "binding_action": "observe_only", - "runtime_lane_expected": null, - "runtime_lane_observed": "address_exact", - "execution_adapter": null, - "transition_id": "T2", - "transition_allowed": false, - "required_anchors": [], - "provided_anchors": [ - "sort", - "limit", - "organization", - "counterparty" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": null, - "answer_object_shape": null, - "truth_gate_behavior": null, - "truth_fallback_allowed": null, - "answer_shape_compatible": false, - "violations": [ - "capability_contract_missing" - ], - "reason_codes": [ - "binding_status_contract_missing", - "binding_action_observe_only", - "capability_contract_missing", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "aggregate_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "organization_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ] - }, - "capability_binding_contract": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "documents_drilldown", - "capability_contract_id": null, - "binding_status": "contract_missing", - "binding_action": "observe_only", - "runtime_lane_expected": null, - "runtime_lane_observed": "address_exact", - "execution_adapter": null, - "transition_id": "T2", - "transition_allowed": false, - "required_anchors": [], - "provided_anchors": [ - "sort", - "limit", - "organization", - "counterparty" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": null, - "answer_object_shape": null, - "truth_gate_behavior": null, - "truth_fallback_allowed": null, - "answer_shape_compatible": false, - "violations": [ - "capability_contract_missing" - ], - "reason_codes": [ - "binding_status_contract_missing", - "binding_action_observe_only", - "capability_contract_missing", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "aggregate_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "organization_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ] - }, - "capability_binding_status": "contract_missing", - "capability_binding_action": "observe_only", - "capability_binding_violations": [ - "capability_contract_missing" - ], - "capability_binding_response_guard": { - "schema_version": "assistant_capability_binding_response_guard_v1", - "guard_owner": "assistantCapabilityBindingResponseGuard", - "applied": false, - "action": "observe_only", - "original_reply_type": "factual", - "guarded_reply_type": "factual", - "reason_codes": [ - "binding_status_contract_missing", - "binding_action_observe_only", - "capability_contract_missing", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "aggregate_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "organization_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ] - } - } - } - ], - "investigation_state": { - "schema_version": "investigation_state_v1", - "session_id": "asst-HFD9N5qwZM", - "status": "idle", - "turn_index": 0, - "updated_at": "2026-04-19T15:42:13.731Z", - "question_id": null, - "question_scope_id": null, - "scope_origin": null, - "focus": { - "domain": null, - "period": null, - "primary_accounts": [], - "active_query_subject": null - }, - "narrowing_status": "unknown", - "evidence_refs": [], - "open_uncertainties": [], - "last_answer_mode": null, - "followup_context": null, - "query_mode_hint": "direct_answer" - }, - "address_navigation_state": { - "schema_version": "address_navigation_state_v1", - "session_id": "asst-HFD9N5qwZM", - "updated_at": "2026-04-19T15:58:20.316Z", - "session_context": { - "active_result_set_id": "rs-msg-9Y0cF1OIYd", - "active_focus_object": { - "object_type": "counterparty", - "object_id": "counterparty:чепурнов п.д.", - "label": "Чепурнов П.Д.", - "provenance_result_set_id": "rs-msg-9Y0cF1OIYd", - "selected_at": "2026-04-19T15:58:20.316Z" - }, - "last_confirmed_route": "address_documents_by_counterparty_v1", - "date_scope": { - "as_of_date": "2026-04-19", - "period_from": null, - "period_to": null - }, - "organization_scope": "ООО Альтернатива Плюс" - }, - "result_sets": [ - { - "result_set_id": "rs-msg-65k6tTD6OM", - "type": "balance_snapshot", - "intent": "receivables_confirmed_as_of_date", - "route_id": "address_receivables_confirmed_as_of_date_v1", - "filters": { - "sort": "period_desc", - "limit": 20, - "as_of_date": "2026-04-19" - }, - "source_refs": [ - "address_receivables_confirmed_as_of_date_v1" - ], - "entity_refs": [ - { - "index": 1, - "entity_type": "counterparty", - "value": "Департамент капитального ремонта города Москвы." - }, - { - "index": 2, - "entity_type": "counterparty", - "value": "Комитет государственных услуг г. Москвы" - }, - { - "index": 3, - "entity_type": "counterparty", - "value": "ГКУ" - }, - { - "index": 4, - "entity_type": "counterparty", - "value": "Финансовое обеспечение заявки" - }, - { - "index": 5, - "entity_type": "counterparty", - "value": "Савва Офис Сервис" - }, - { - "index": 6, - "entity_type": "counterparty", - "value": "Держава АКБ, ПАО" - } - ], - "created_from_turn": 7, - "created_at": "2026-04-19T15:45:14.679Z" - }, - { - "result_set_id": "rs-msg-LuqE-5rdpY", - "type": "balance_snapshot", - "intent": "payables_confirmed_as_of_date", - "route_id": "address_payables_confirmed_as_of_date_v1", - "filters": { - "sort": "period_desc", - "limit": 20, - "as_of_date": "2026-04-19" - }, - "source_refs": [ - "address_payables_confirmed_as_of_date_v1" - ], - "entity_refs": [], - "created_from_turn": 9, - "created_at": "2026-04-19T15:46:45.097Z" - }, - { - "result_set_id": "rs-msg-_4UcKjZLGt", - "type": "inventory_snapshot", - "intent": "inventory_on_hand_as_of_date", - "route_id": null, - "filters": { - "sort": "period_desc", - "as_of_date": "2026-04-19" - }, - "source_refs": [], - "entity_refs": [], - "created_from_turn": 11, - "created_at": "2026-04-19T15:48:08.327Z" - }, - { - "result_set_id": "rs-msg-8j-yLKFQxv", - "type": "inventory_snapshot", - "intent": "inventory_on_hand_as_of_date", - "route_id": "address_inventory_on_hand_as_of_date_v1", - "filters": { - "sort": "period_desc", - "as_of_date": "2026-04-19", - "organization": "ООО Альтернатива Плюс" - }, - "source_refs": [ - "address_inventory_on_hand_as_of_date_v1" - ], - "entity_refs": [ - { - "index": 1, - "entity_type": "item", - "value": "Модуль прямоугольый 1400*110*750" - }, - { - "index": 2, - "entity_type": "item", - "value": "Конструкция трансформер рабочей станции 1300*900*2000" - }, - { - "index": 3, - "entity_type": "item", - "value": "Диван трехместный" - }, - { - "index": 4, - "entity_type": "item", - "value": "Кресло орион" - }, - { - "index": 5, - "entity_type": "item", - "value": "Зеркало для инвалидов поворотное травмобезопасное" - }, - { - "index": 6, - "entity_type": "item", - "value": "Пуф арий" - }, - { - "index": 7, - "entity_type": "item", - "value": "Столешница 600*3050*26 дуб ниагара" - }, - { - "index": 8, - "entity_type": "item", - "value": "Столешница 600*3050*26 альмандин" - }, - { - "index": 9, - "entity_type": "item", - "value": "Четки Пост (84*117)" - }, - { - "index": 10, - "entity_type": "item", - "value": "Кромка с клеем 33 альмандин 137 м" - }, - { - "index": 11, - "entity_type": "item", - "value": "Кромка с клеем 33 дуб ниагара 137 м" - } - ], - "created_from_turn": 13, - "created_at": "2026-04-19T15:48:30.785Z" - }, - { - "result_set_id": "rs-msg-db4ft8FU6c", - "type": "document_list", - "intent": "list_documents_by_counterparty", - "route_id": "address_documents_by_counterparty_v1", - "filters": { - "sort": "period_desc", - "limit": 20, - "counterparty": "Чепурнов П.Д.", - "organization": "ООО Альтернатива Плюс" - }, - "source_refs": [ - "address_documents_by_counterparty_v1" - ], - "entity_refs": [ - { - "index": 1, - "entity_type": "document_ref", - "value": "2022-01-20T12:00:03Z" - } - ], - "created_from_turn": 15, - "created_at": "2026-04-19T15:50:19.730Z" - }, - { - "result_set_id": "rs-msg-9Y0cF1OIYd", - "type": "document_list", - "intent": "list_documents_by_counterparty", - "route_id": "address_documents_by_counterparty_v1", - "filters": { - "sort": "period_desc", - "limit": 20, - "organization": "ООО Альтернатива Плюс", - "counterparty": "Чепурнов П.Д." - }, - "source_refs": [ - "address_documents_by_counterparty_v1" - ], - "entity_refs": [ - { - "index": 1, - "entity_type": "document_ref", - "value": "2022-01-20T12:00:03Z" - } - ], - "created_from_turn": 17, - "created_at": "2026-04-19T15:58:20.316Z" - } - ], - "navigation_history": [ - { - "event_id": "nav-VtSvUcEvqs", - "action": "open", - "source_result_set_id": null, - "target_object_id": null, - "derived_result_set_id": "rs-msg-65k6tTD6OM", - "turn_index": 7, - "created_at": "2026-04-19T15:45:14.679Z" - }, - { - "event_id": "nav-spp_0H2s-I", - "action": "refine", - "source_result_set_id": "rs-msg-65k6tTD6OM", - "target_object_id": null, - "derived_result_set_id": "rs-msg-LuqE-5rdpY", - "turn_index": 9, - "created_at": "2026-04-19T15:46:45.097Z" - }, - { - "event_id": "nav-tgTq3aUzYK", - "action": "open", - "source_result_set_id": "rs-msg-LuqE-5rdpY", - "target_object_id": null, - "derived_result_set_id": "rs-msg-_4UcKjZLGt", - "turn_index": 11, - "created_at": "2026-04-19T15:48:08.327Z" - }, - { - "event_id": "nav-yO-yZqUrgk", - "action": "drilldown", - "source_result_set_id": "rs-msg-_4UcKjZLGt", - "target_object_id": "organization:ооо \\альтернатива плюс\\", - "derived_result_set_id": "rs-msg-8j-yLKFQxv", - "turn_index": 13, - "created_at": "2026-04-19T15:48:30.785Z" - }, - { - "event_id": "nav-WygbRXXepc", - "action": "drilldown", - "source_result_set_id": "rs-msg-8j-yLKFQxv", - "target_object_id": "counterparty:чепурнов п.д.", - "derived_result_set_id": "rs-msg-db4ft8FU6c", - "turn_index": 15, - "created_at": "2026-04-19T15:50:19.730Z" - }, - { - "event_id": "nav-2hAjDVvN-q", - "action": "drilldown", - "source_result_set_id": "rs-msg-db4ft8FU6c", - "target_object_id": "counterparty:чепурнов п.д.", - "derived_result_set_id": "rs-msg-9Y0cF1OIYd", - "turn_index": 17, - "created_at": "2026-04-19T15:58:20.316Z" - } - ] - } - } -} \ No newline at end of file diff --git a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260422125154_gen-moa1y0lw-m30gdsz.json b/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260422125154_gen-moa1y0lw-m30gdsz.json deleted file mode 100644 index 6fdce4d..0000000 --- a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260422125154_gen-moa1y0lw-m30gdsz.json +++ /dev/null @@ -1,12296 +0,0 @@ -{ - "saved_at": "2026-04-22T12:51:54.647Z", - "generation_id": "gen-moa1y0lw-m30gdsz", - "mode": "saved_user_sessions", - "title": "СВК - Ручная сессия 22.04.2026, 15:50:39", - "source_session_id": "asst-A0MzXXn0RG", - "questions": [ - "найди в 1С контрагента СВК", - "сколько получили по нему за 2020 год", - "а теперь сколько заплатили?", - "а за 2021?", - "а какое нетто?", - "а по документам?", - "а по движениям?" - ], - "session": { - "session_id": "asst-A0MzXXn0RG", - "updated_at": "2026-04-22T12:50:39.680Z", - "items": [ - { - "message_id": "msg-3imrrOzInl", - "session_id": "asst-A0MzXXn0RG", - "role": "user", - "text": "найди в 1С контрагента СВК", - "reply_type": null, - "created_at": "2026-04-22T12:46:49.652Z", - "trace_id": null, - "debug": null - }, - { - "message_id": "msg-x-4uXi0ScJ", - "session_id": "asst-A0MzXXn0RG", - "role": "assistant", - "text": "Коротко: По каталогу 1С найден вероятный контрагент; это заземление сущности для следующего шага, а не еще бизнес-ответ по данным.\n\nЧто подтверждено:\n- В проверенном каталожном срезе 1С найден наиболее вероятный контрагент: Группа СВК\n- В текущем каталожном срезе 1С по запросу \"СВК\" найден контрагент \"Группа СВК\". Совпадение выглядит вероятным, но его лучше считать рабочим заземлением сущности.\n\nЧто можно сказать только как вывод:\n- Сейчас подтверждено только заземление сущности по каталогу 1С; документы, движения и денежные показатели по ней еще не проверялись.\n\nЧто не подтверждено:\n- Документы, движения и денежные показатели по этому контрагенту еще не проверялись; пока был только каталожный поиск\n\nСледующий шаг: Теперь могу продолжить уже по найденному контрагенту и искать документы, движения или денежный поток.", - "reply_type": "partial_coverage", - "created_at": "2026-04-22T12:47:10.293Z", - "trace_id": "eW2SwOjvExbPsG", - "debug": { - "trace_id": "eW2SwOjvExbPsG", - "prompt_version": "normalizer_v2_0_2", - "schema_version": "v2_0_2", - "fallback_type": "partial", - "route_summary": { - "mode": "deterministic_v2", - "message_in_scope": true, - "scope_confidence": "high", - "planner": { - "total_fragments": 1, - "in_scope_fragments": 1, - "out_of_scope_fragments": 0, - "discarded_fragments": 0, - "contains_multiple_tasks": false - }, - "decisions": [ - { - "fragment_id": "1", - "domain_relevance": "in_scope", - "business_scope": "company_specific_accounting", - "candidate_labels": [ - "simple_factual" - ], - "decision_flags": { - "has_multi_entity_scope": false, - "asks_for_chain_explanation": false, - "asks_for_ranking_or_top": false, - "asks_for_period_summary": false, - "asks_for_rule_check": false, - "asks_for_anomaly_scan": false, - "asks_for_exact_object_trace": false, - "asks_for_evidence": false, - "mentions_period_close_context": false - }, - "execution_readiness": "executable", - "clarification_reason": null, - "soft_assumption_used": [], - "route_status": "routed", - "no_route_reason": null, - "route": "store_canonical", - "reason": "Only plain factual lookups are allowed to stay on canonical path. Query class: canonical_fact_lookup. Allowed fallback: no_route. Forbidden fallback: hybrid_store_plus_live." - } - ], - "fallback": { - "type": "none", - "message": null - } - }, - "fragments": [ - { - "fragment_id": "1", - "raw_fragment_text": "найди в 1С контрагента СВК", - "normalized_fragment_text": "Поиск контрагента с наименованием 'СВК' в системе 1С", - "domain_relevance": "in_scope", - "business_scope": "company_specific_accounting", - "entity_hints": [ - "контрагент" - ], - "account_hints": [], - "document_hints": [], - "register_hints": [], - "time_scope": { - "type": "missing", - "value": null, - "confidence": "low" - }, - "flags": { - "has_multi_entity_scope": false, - "asks_for_chain_explanation": false, - "asks_for_ranking_or_top": false, - "asks_for_period_summary": false, - "asks_for_rule_check": false, - "asks_for_anomaly_scan": false, - "asks_for_exact_object_trace": false, - "asks_for_evidence": false, - "mentions_period_close_context": false - }, - "semantic_hints": { - "scope_target_kind": "none", - "scope_target_text": null, - "date_scope_kind": "missing", - "self_scope_detected": false, - "selected_object_scope_detected": false - }, - "candidate_labels": [ - "simple_factual" - ], - "confidence": "high", - "execution_readiness": "executable", - "clarification_reason": null, - "soft_assumption_used": [], - "route_status": "routed", - "no_route_reason": null - } - ], - "requirements_extracted": [ - { - "requirement_id": "R1", - "source_fragment_id": "1", - "requirement_text": "найди в 1С контрагента СВК", - "subject_tokens": [ - "counterparty" - ], - "status": "covered", - "route": "store_canonical" - } - ], - "coverage_report": { - "requirements_total": 1, - "requirements_covered": 1, - "requirements_uncovered": [], - "requirements_partially_covered": [], - "clarification_needed_for": [], - "out_of_scope_requirements": [] - }, - "routes": [ - { - "fragment_id": "1", - "route": "store_canonical", - "reason": "Only plain factual lookups are allowed to stay on canonical path. Query class: canonical_fact_lookup. Allowed fallback: no_route. Forbidden fallback: hybrid_store_plus_live.", - "route_status": "routed", - "no_route_reason": null, - "clarification_reason": null, - "execution_readiness": "executable" - } - ], - "retrieval_status": [ - { - "fragment_id": "1", - "requirement_ids": [ - "R1" - ], - "route": "store_canonical", - "status": "ok", - "result_type": "list" - } - ], - "retrieval_results": [ - { - "fragment_id": "1", - "requirement_ids": [ - "R1" - ], - "route": "store_canonical", - "status": "ok", - "result_type": "list", - "items": [ - { - "source_entity": "Document_СписаниеСРасчетногоСчета", - "source_id": "c921c08a-c117-11ea-a2e2-00155d012600", - "display_name": "00000000180", - "period": "2020-06-30T12:00:07", - "counterparty_id": "9a4c4530-b5ae-11e8-93de-50465da00436", - "recorder": null, - "claim_target_checks": [ - "payment_document_found" - ], - "context_expansion_allowed": true, - "context_expansion_reason": null - }, - { - "source_entity": "Document_СписаниеСРасчетногоСчета", - "source_id": "5dfabe1f-c117-11ea-a2e2-00155d012600", - "display_name": "00000000178", - "period": "2020-06-30T12:00:05", - "counterparty_id": "4a6289f6-6808-11e8-8e6c-50465da00436", - "recorder": null, - "claim_target_checks": [ - "payment_document_found" - ], - "context_expansion_allowed": true, - "context_expansion_reason": null - }, - { - "source_entity": "Document_СписаниеСРасчетногоСчета", - "source_id": "2fdf7d2b-c117-11ea-a2e2-00155d012600", - "display_name": "00000000177", - "period": "2020-06-30T12:00:04", - "counterparty_id": "84a55286-970d-11e8-94ba-50465da00436", - "recorder": null, - "claim_target_checks": [ - "payment_document_found" - ], - "context_expansion_allowed": true, - "context_expansion_reason": null - }, - { - "source_entity": "Document_СписаниеСРасчетногоСчета", - "source_id": "24f17575-c117-11ea-a2e2-00155d012600", - "display_name": "00000000176", - "period": "2020-06-30T12:00:03", - "counterparty_id": "6be7395c-0231-11e6-8b48-5404a6c12c2c", - "recorder": null, - "claim_target_checks": [ - "payment_document_found" - ], - "context_expansion_allowed": true, - "context_expansion_reason": null - }, - { - "source_entity": "Document_СписаниеСРасчетногоСчета", - "source_id": "6f0947d8-bf77-11ea-a2e1-00155d012600", - "display_name": "00000000175", - "period": "2020-06-30T12:00:02", - "counterparty_id": "69879ad0-76de-11e4-9a6c-5404a6c12c2c", - "recorder": null, - "claim_target_checks": [ - "payment_document_found" - ], - "context_expansion_allowed": true, - "context_expansion_reason": null - }, - { - "source_entity": "Document_СписаниеСРасчетногоСчета", - "source_id": "04f191a0-b46b-11ea-a2db-00155d012600", - "display_name": "00000000174", - "period": "2020-06-19T12:00:00", - "counterparty_id": "c1e65898-7bd0-11e9-a2bc-00155d012600", - "recorder": null, - "claim_target_checks": [ - "payment_document_found" - ], - "context_expansion_allowed": true, - "context_expansion_reason": null - } - ], - "summary": { - "checked_records": 42, - "returned_records": 12, - "query_subject": "cross_entity_breakage", - "semantic_profile": { - "query_subject": "cross_entity_breakage", - "account_scope": [], - "subaccount_scope": [], - "domain_scope": [ - "settlements" - ], - "document_types": [ - "settlement_document" - ], - "entity_types": [ - "counterparty", - "document", - "posting" - ], - "period_scope": { - "from": null, - "to": null, - "granularity": "unknown" - }, - "relation_patterns": [ - "document_to_posting", - "contract_to_documents" - ], - "lifecycle_stage_filters": [ - "created", - "posted", - "closed", - "reconciled" - ], - "anomaly_patterns": [ - "missing_link", - "broken_lifecycle" - ], - "ranking_basis": [ - "closure_risk", - "repeatability", - "financial_impact" - ], - "excluded_interpretations": [], - "explanation_focus": [ - "why_selected", - "where_chain_breaks", - "what_business_risk" - ], - "graph_traversal": { - "runtime_enabled": true, - "eligible": true, - "planner_mode": "typed_domain_path", - "target_domains": [ - "bank_settlement" - ], - "target_relations": [ - "document_to_posting", - "contract_to_documents", - "payment_to_settlement", - "statement_to_document" - ], - "target_signals": [ - "missing_link", - "broken_lifecycle", - "posting_mismatch", - "wrong_document_type", - "closure_risk" - ], - "target_lifecycle_markers": [ - "closed", - "reconciled", - "partially_linked", - "period_boundary", - "no_continuation" - ] - } - }, - "ranking_basis": [ - "closure_risk", - "repeatability", - "financial_impact" - ], - "domain_purity_guard": { - "enabled": false, - "domain_card_id": null, - "domain_card_title": null, - "source_scope": [ - "docs" - ], - "source_pool_records": 42, - "source_selection_allowed": 42, - "source_selection_rejected": 0, - "source_selection_rejected_forbidden": 0, - "ranking_checked": 42, - "ranking_allowed": 42, - "ranking_rejected": 0, - "promotion_checked": 12, - "promotion_allowed": 12, - "promotion_rejected": 0, - "top1_pure": true, - "top3_pure": true, - "strict_forbidden_mode": false, - "strict_forbidden_fallback_source": false, - "strict_forbidden_fallback_ranking": false, - "strict_forbidden_fallback_promotion": false - }, - "broad_query_detected": false, - "broadness_level": "low", - "scope_confidence_hint": "high", - "narrowing_strength": "weak", - "broad_guard_applied": false, - "minimum_evidence_failed": false, - "anti_generic_guard_applied": false, - "broad_result_flag": false, - "problem_units_enabled": true, - "candidate_evidence_count": 6, - "problem_units_count": 6, - "problem_unit_types": [ - "unresolved_settlement_cluster" - ], - "problem_unit_duplicate_collapses": 0, - "problem_unit_severity_distribution": { - "low": 0, - "medium": 6, - "high": 0 - }, - "problem_unit_confidence_distribution": { - "low": 6, - "medium": 0, - "high": 0 - }, - "lifecycle_enriched_units": 6, - "problem_unit_lifecycle_domain_distribution": { - "bank_settlement": 6 - }, - "problem_unit_lifecycle_defect_distribution": { - "stale_active_state": 6 - }, - "graph_runtime_enabled": true, - "graph_total_units": 6, - "graph_bound_units": 6, - "graph_nodes_count": 30, - "graph_edges_count": 18, - "graph_missing_links_count": 6, - "graph_conflicting_links_count": 0, - "graph_coverage_grade": "high", - "graph_domain_distribution": { - "bank_settlement": 6 - }, - "graph_relation_distribution": { - "affects_account": 5, - "affects_document": 5, - "belongs_to_domain": 1, - "current_state": 1, - "expected_state": 1, - "has_defect": 1, - "missing_transition": 1, - "supported_by_evidence": 1, - "supports_path": 2 - }, - "claim_bound_targeting": { - "claim_type": "prove_settlement_closure_state", - "required_checks": [ - "payment_document_found", - "contract_matched", - "settlement_object_matched", - "closing_document_found", - "register_closure_entry_found", - "posting_link_found" - ], - "targeted_items": 6, - "targeted_evidence": 11, - "derived_evidence_added": 6 - }, - "evidence_admissibility_gate": { - "candidate_evidence": 11, - "admissible_evidence": 6, - "rejected_evidence": 5, - "rejected_items": 0 - } - }, - "evidence": [ - { - "evidence_id": "claim-ev-jGuVsEk8Ys", - "claim_ref": "claim:prove_settlement_closure_state", - "source_type": "derived", - "source_ref": { - "schema_version": "evidence_source_ref_v1", - "namespace": "assistant_derived", - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "c921c08a-c117-11ea-a2e2-00155d012600", - "period": "2020-06-30T12:00:07", - "canonical_ref": "evidence_source_ref_v1|assistant_derived|document_списаниесрасчетногосчета|c921c08a-c117-11ea-a2e2-00155d012600|2020-06-30t12:00:07" - }, - "pointer": { - "fragment_id": "1", - "route": "store_canonical", - "source": { - "namespace": "assistant_derived", - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "c921c08a-c117-11ea-a2e2-00155d012600", - "period": "2020-06-30T12:00:07" - }, - "locator": { - "field_path": null, - "item_index": null - } - }, - "evidence_kind": "mechanism_link", - "mechanism_note": "payment_document_found", - "confidence": "medium", - "limitation": null, - "payload": { - "from_targeted_item": true, - "claim_type": "prove_settlement_closure_state", - "claim_target_checks": [ - "payment_document_found" - ], - "context_expansion_allowed": true, - "context_expansion_reason": null, - "period": "2020-06-30T12:00:07", - "source_entity": "Document_СписаниеСРасчетногоСчета", - "source_id": "c921c08a-c117-11ea-a2e2-00155d012600", - "account_context": [], - "account_debit": null, - "account_credit": null, - "relation_pattern_hits": [], - "fa_object_hint": null, - "fa_expected_set_candidate": false, - "fa_actual_set_candidate": false, - "fa_coverage_status": null - } - }, - { - "evidence_id": "claim-ev-2GMHlE3lTO", - "claim_ref": "claim:prove_settlement_closure_state", - "source_type": "derived", - "source_ref": { - "schema_version": "evidence_source_ref_v1", - "namespace": "assistant_derived", - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "5dfabe1f-c117-11ea-a2e2-00155d012600", - "period": "2020-06-30T12:00:05", - "canonical_ref": "evidence_source_ref_v1|assistant_derived|document_списаниесрасчетногосчета|5dfabe1f-c117-11ea-a2e2-00155d012600|2020-06-30t12:00:05" - }, - "pointer": { - "fragment_id": "1", - "route": "store_canonical", - "source": { - "namespace": "assistant_derived", - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "5dfabe1f-c117-11ea-a2e2-00155d012600", - "period": "2020-06-30T12:00:05" - }, - "locator": { - "field_path": null, - "item_index": null - } - }, - "evidence_kind": "mechanism_link", - "mechanism_note": "payment_document_found", - "confidence": "medium", - "limitation": null, - "payload": { - "from_targeted_item": true, - "claim_type": "prove_settlement_closure_state", - "claim_target_checks": [ - "payment_document_found" - ], - "context_expansion_allowed": true, - "context_expansion_reason": null, - "period": "2020-06-30T12:00:05", - "source_entity": "Document_СписаниеСРасчетногоСчета", - "source_id": "5dfabe1f-c117-11ea-a2e2-00155d012600", - "account_context": [], - "account_debit": null, - "account_credit": null, - "relation_pattern_hits": [], - "fa_object_hint": null, - "fa_expected_set_candidate": false, - "fa_actual_set_candidate": false, - "fa_coverage_status": null - } - }, - { - "evidence_id": "claim-ev-h_rDF_6woq", - "claim_ref": "claim:prove_settlement_closure_state", - "source_type": "derived", - "source_ref": { - "schema_version": "evidence_source_ref_v1", - "namespace": "assistant_derived", - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "2fdf7d2b-c117-11ea-a2e2-00155d012600", - "period": "2020-06-30T12:00:04", - "canonical_ref": "evidence_source_ref_v1|assistant_derived|document_списаниесрасчетногосчета|2fdf7d2b-c117-11ea-a2e2-00155d012600|2020-06-30t12:00:04" - }, - "pointer": { - "fragment_id": "1", - "route": "store_canonical", - "source": { - "namespace": "assistant_derived", - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "2fdf7d2b-c117-11ea-a2e2-00155d012600", - "period": "2020-06-30T12:00:04" - }, - "locator": { - "field_path": null, - "item_index": null - } - }, - "evidence_kind": "mechanism_link", - "mechanism_note": "payment_document_found", - "confidence": "medium", - "limitation": null, - "payload": { - "from_targeted_item": true, - "claim_type": "prove_settlement_closure_state", - "claim_target_checks": [ - "payment_document_found" - ], - "context_expansion_allowed": true, - "context_expansion_reason": null, - "period": "2020-06-30T12:00:04", - "source_entity": "Document_СписаниеСРасчетногоСчета", - "source_id": "2fdf7d2b-c117-11ea-a2e2-00155d012600", - "account_context": [], - "account_debit": null, - "account_credit": null, - "relation_pattern_hits": [], - "fa_object_hint": null, - "fa_expected_set_candidate": false, - "fa_actual_set_candidate": false, - "fa_coverage_status": null - } - }, - { - "evidence_id": "claim-ev-89OYZKE83-", - "claim_ref": "claim:prove_settlement_closure_state", - "source_type": "derived", - "source_ref": { - "schema_version": "evidence_source_ref_v1", - "namespace": "assistant_derived", - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "24f17575-c117-11ea-a2e2-00155d012600", - "period": "2020-06-30T12:00:03", - "canonical_ref": "evidence_source_ref_v1|assistant_derived|document_списаниесрасчетногосчета|24f17575-c117-11ea-a2e2-00155d012600|2020-06-30t12:00:03" - }, - "pointer": { - "fragment_id": "1", - "route": "store_canonical", - "source": { - "namespace": "assistant_derived", - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "24f17575-c117-11ea-a2e2-00155d012600", - "period": "2020-06-30T12:00:03" - }, - "locator": { - "field_path": null, - "item_index": null - } - }, - "evidence_kind": "mechanism_link", - "mechanism_note": "payment_document_found", - "confidence": "medium", - "limitation": null, - "payload": { - "from_targeted_item": true, - "claim_type": "prove_settlement_closure_state", - "claim_target_checks": [ - "payment_document_found" - ], - "context_expansion_allowed": true, - "context_expansion_reason": null, - "period": "2020-06-30T12:00:03", - "source_entity": "Document_СписаниеСРасчетногоСчета", - "source_id": "24f17575-c117-11ea-a2e2-00155d012600", - "account_context": [], - "account_debit": null, - "account_credit": null, - "relation_pattern_hits": [], - "fa_object_hint": null, - "fa_expected_set_candidate": false, - "fa_actual_set_candidate": false, - "fa_coverage_status": null - } - }, - { - "evidence_id": "claim-ev-ijBOnpMIHN", - "claim_ref": "claim:prove_settlement_closure_state", - "source_type": "derived", - "source_ref": { - "schema_version": "evidence_source_ref_v1", - "namespace": "assistant_derived", - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "6f0947d8-bf77-11ea-a2e1-00155d012600", - "period": "2020-06-30T12:00:02", - "canonical_ref": "evidence_source_ref_v1|assistant_derived|document_списаниесрасчетногосчета|6f0947d8-bf77-11ea-a2e1-00155d012600|2020-06-30t12:00:02" - }, - "pointer": { - "fragment_id": "1", - "route": "store_canonical", - "source": { - "namespace": "assistant_derived", - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "6f0947d8-bf77-11ea-a2e1-00155d012600", - "period": "2020-06-30T12:00:02" - }, - "locator": { - "field_path": null, - "item_index": null - } - }, - "evidence_kind": "mechanism_link", - "mechanism_note": "payment_document_found", - "confidence": "medium", - "limitation": null, - "payload": { - "from_targeted_item": true, - "claim_type": "prove_settlement_closure_state", - "claim_target_checks": [ - "payment_document_found" - ], - "context_expansion_allowed": true, - "context_expansion_reason": null, - "period": "2020-06-30T12:00:02", - "source_entity": "Document_СписаниеСРасчетногоСчета", - "source_id": "6f0947d8-bf77-11ea-a2e1-00155d012600", - "account_context": [], - "account_debit": null, - "account_credit": null, - "relation_pattern_hits": [], - "fa_object_hint": null, - "fa_expected_set_candidate": false, - "fa_actual_set_candidate": false, - "fa_coverage_status": null - } - }, - { - "evidence_id": "claim-ev-g8JcnDfT8D", - "claim_ref": "claim:prove_settlement_closure_state", - "source_type": "derived", - "source_ref": { - "schema_version": "evidence_source_ref_v1", - "namespace": "assistant_derived", - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "04f191a0-b46b-11ea-a2db-00155d012600", - "period": "2020-06-19T12:00:00", - "canonical_ref": "evidence_source_ref_v1|assistant_derived|document_списаниесрасчетногосчета|04f191a0-b46b-11ea-a2db-00155d012600|2020-06-19t12:00:00" - }, - "pointer": { - "fragment_id": "1", - "route": "store_canonical", - "source": { - "namespace": "assistant_derived", - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "04f191a0-b46b-11ea-a2db-00155d012600", - "period": "2020-06-19T12:00:00" - }, - "locator": { - "field_path": null, - "item_index": null - } - }, - "evidence_kind": "mechanism_link", - "mechanism_note": "payment_document_found", - "confidence": "medium", - "limitation": null, - "payload": { - "from_targeted_item": true, - "claim_type": "prove_settlement_closure_state", - "claim_target_checks": [ - "payment_document_found" - ], - "context_expansion_allowed": true, - "context_expansion_reason": null, - "period": "2020-06-19T12:00:00", - "source_entity": "Document_СписаниеСРасчетногоСчета", - "source_id": "04f191a0-b46b-11ea-a2db-00155d012600", - "account_context": [], - "account_debit": null, - "account_credit": null, - "relation_pattern_hits": [], - "fa_object_hint": null, - "fa_expected_set_candidate": false, - "fa_actual_set_candidate": false, - "fa_coverage_status": null - } - } - ], - "why_included": [ - "Показаны последние по дате записи канонического документного слоя.", - "P0 domain purity was not enforced." - ], - "selection_reason": [ - "Отбор по максимальной дате документа в пределах snapshot.", - "Semantic profile subject: cross_entity_breakage.", - "Domain gate source scope not applied." - ], - "risk_factors": [ - "missing_link", - "broken_lifecycle" - ], - "business_interpretation": [ - "Слой отражает базовый factual-срез документов для оперативной сверки." - ], - "confidence": "high", - "limitations": [ - "Это read-only snapshot, а не онлайн-состояние 1С.", - "Domain purity guardrail не применялся." - ], - "errors": [], - "raw_entities": [ - { - "source_entity": "Document_СписаниеСРасчетногоСчета", - "source_id": "c921c08a-c117-11ea-a2e2-00155d012600", - "display_name": "00000000180", - "period": "2020-06-30T12:00:07", - "counterparty_id": "9a4c4530-b5ae-11e8-93de-50465da00436", - "recorder": null - }, - { - "source_entity": "Document_СписаниеСРасчетногоСчета", - "source_id": "5dfabe1f-c117-11ea-a2e2-00155d012600", - "display_name": "00000000178", - "period": "2020-06-30T12:00:05", - "counterparty_id": "4a6289f6-6808-11e8-8e6c-50465da00436", - "recorder": null - }, - { - "source_entity": "Document_СписаниеСРасчетногоСчета", - "source_id": "2fdf7d2b-c117-11ea-a2e2-00155d012600", - "display_name": "00000000177", - "period": "2020-06-30T12:00:04", - "counterparty_id": "84a55286-970d-11e8-94ba-50465da00436", - "recorder": null - }, - { - "source_entity": "Document_СписаниеСРасчетногоСчета", - "source_id": "24f17575-c117-11ea-a2e2-00155d012600", - "display_name": "00000000176", - "period": "2020-06-30T12:00:03", - "counterparty_id": "6be7395c-0231-11e6-8b48-5404a6c12c2c", - "recorder": null - }, - { - "source_entity": "Document_СписаниеСРасчетногоСчета", - "source_id": "6f0947d8-bf77-11ea-a2e1-00155d012600", - "display_name": "00000000175", - "period": "2020-06-30T12:00:02", - "counterparty_id": "69879ad0-76de-11e4-9a6c-5404a6c12c2c", - "recorder": null - }, - { - "source_entity": "Document_ПоступлениеТоваровУслуг", - "source_id": "d57e16a8-b090-11ea-a2db-00155d012600", - "display_name": "00000000015", - "period": "2020-06-30T12:00:00", - "counterparty_id": "c1e65898-7bd0-11e9-a2bc-00155d012600", - "recorder": null - }, - { - "source_entity": "Document_РеализацияТоваровУслуг", - "source_id": "e17f08ca-c51a-11ea-a2e2-00155d012600", - "display_name": "00000000007", - "period": "2020-06-23T13:54:25", - "counterparty_id": "5c528e36-c519-11ea-a2e2-00155d012600", - "recorder": null - }, - { - "source_entity": "Document_ПоступлениеТоваровУслуг", - "source_id": "0b4f2456-c5b6-11ea-a2e2-00155d012600", - "display_name": "00000000020", - "period": "2020-06-22T00:00:00", - "counterparty_id": "426ce148-ca81-11ea-a2e2-00155d012600", - "recorder": null - }, - { - "source_entity": "Document_СписаниеСРасчетногоСчета", - "source_id": "04f191a0-b46b-11ea-a2db-00155d012600", - "display_name": "00000000174", - "period": "2020-06-19T12:00:00", - "counterparty_id": "c1e65898-7bd0-11e9-a2bc-00155d012600", - "recorder": null - }, - { - "source_entity": "Document_РеализацияТоваровУслуг", - "source_id": "3f3fca52-a644-11ea-a2d7-00155d012600", - "display_name": "00000000006", - "period": "2020-06-19T00:00:00", - "counterparty_id": "cb5193b1-9a7e-11ea-a2d5-00155d012600", - "recorder": null - }, - { - "source_entity": "Document_ПоступлениеТоваровУслуг", - "source_id": "f751dbe5-ca80-11ea-a2e2-00155d012600", - "display_name": "00000000022", - "period": "2020-06-19T00:00:00", - "counterparty_id": "a3fe2e97-ca7d-11ea-a2e2-00155d012600", - "recorder": null - }, - { - "source_entity": "Document_ПоступлениеТоваровУслуг", - "source_id": "9d202b38-b090-11ea-a2db-00155d012600", - "display_name": "00000000013", - "period": "2020-06-17T14:49:44", - "counterparty_id": "b07bb8ce-a010-11e6-91da-50465da00436", - "recorder": null - } - ], - "candidate_evidence": [ - { - "schema_version": "candidate_evidence_v0_1", - "candidate_id": "cand-ev-1-1", - "route": "store_canonical", - "source_ref": { - "schema_version": "evidence_source_ref_v1", - "namespace": "unknown", - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "c921c08a-c117-11ea-a2e2-00155d012600", - "period": "2020-06-30T12:00:07", - "canonical_ref": "evidence_source_ref_v1|unknown|document_%D1%81%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5%D1%81%D1%80%D0%B0%D1%81%D1%87%D0%B5%D1%82%D0%BD%D0%BE%D0%B3%D0%BE%D1%81%D1%87%D0%B5%D1%82%D0%B0|c921c08a-c117-11ea-a2e2-00155d012600|2020-06-30t12%3A00%3A07" - }, - "relation_pattern_hits": [ - "document_to_posting", - "contract_to_documents", - "domain_hint:bank_settlement" - ], - "anomaly_patterns": [ - "missing_link", - "broken_lifecycle", - "domain_hint:bank_settlement" - ], - "entity_backlinks": [ - { - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "c921c08a-c117-11ea-a2e2-00155d012600" - } - ], - "confidence_hint": "low" - }, - { - "schema_version": "candidate_evidence_v0_1", - "candidate_id": "cand-ev-1-2", - "route": "store_canonical", - "source_ref": { - "schema_version": "evidence_source_ref_v1", - "namespace": "unknown", - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "5dfabe1f-c117-11ea-a2e2-00155d012600", - "period": "2020-06-30T12:00:05", - "canonical_ref": "evidence_source_ref_v1|unknown|document_%D1%81%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5%D1%81%D1%80%D0%B0%D1%81%D1%87%D0%B5%D1%82%D0%BD%D0%BE%D0%B3%D0%BE%D1%81%D1%87%D0%B5%D1%82%D0%B0|5dfabe1f-c117-11ea-a2e2-00155d012600|2020-06-30t12%3A00%3A05" - }, - "relation_pattern_hits": [ - "document_to_posting", - "contract_to_documents", - "domain_hint:bank_settlement" - ], - "anomaly_patterns": [ - "missing_link", - "broken_lifecycle", - "domain_hint:bank_settlement" - ], - "entity_backlinks": [ - { - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "5dfabe1f-c117-11ea-a2e2-00155d012600" - } - ], - "confidence_hint": "low" - }, - { - "schema_version": "candidate_evidence_v0_1", - "candidate_id": "cand-ev-1-3", - "route": "store_canonical", - "source_ref": { - "schema_version": "evidence_source_ref_v1", - "namespace": "unknown", - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "2fdf7d2b-c117-11ea-a2e2-00155d012600", - "period": "2020-06-30T12:00:04", - "canonical_ref": "evidence_source_ref_v1|unknown|document_%D1%81%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5%D1%81%D1%80%D0%B0%D1%81%D1%87%D0%B5%D1%82%D0%BD%D0%BE%D0%B3%D0%BE%D1%81%D1%87%D0%B5%D1%82%D0%B0|2fdf7d2b-c117-11ea-a2e2-00155d012600|2020-06-30t12%3A00%3A04" - }, - "relation_pattern_hits": [ - "document_to_posting", - "contract_to_documents", - "domain_hint:bank_settlement" - ], - "anomaly_patterns": [ - "missing_link", - "broken_lifecycle", - "domain_hint:bank_settlement" - ], - "entity_backlinks": [ - { - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "2fdf7d2b-c117-11ea-a2e2-00155d012600" - } - ], - "confidence_hint": "low" - }, - { - "schema_version": "candidate_evidence_v0_1", - "candidate_id": "cand-ev-1-4", - "route": "store_canonical", - "source_ref": { - "schema_version": "evidence_source_ref_v1", - "namespace": "unknown", - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "24f17575-c117-11ea-a2e2-00155d012600", - "period": "2020-06-30T12:00:03", - "canonical_ref": "evidence_source_ref_v1|unknown|document_%D1%81%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5%D1%81%D1%80%D0%B0%D1%81%D1%87%D0%B5%D1%82%D0%BD%D0%BE%D0%B3%D0%BE%D1%81%D1%87%D0%B5%D1%82%D0%B0|24f17575-c117-11ea-a2e2-00155d012600|2020-06-30t12%3A00%3A03" - }, - "relation_pattern_hits": [ - "document_to_posting", - "contract_to_documents", - "domain_hint:bank_settlement" - ], - "anomaly_patterns": [ - "missing_link", - "broken_lifecycle", - "domain_hint:bank_settlement" - ], - "entity_backlinks": [ - { - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "24f17575-c117-11ea-a2e2-00155d012600" - } - ], - "confidence_hint": "low" - }, - { - "schema_version": "candidate_evidence_v0_1", - "candidate_id": "cand-ev-1-5", - "route": "store_canonical", - "source_ref": { - "schema_version": "evidence_source_ref_v1", - "namespace": "unknown", - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "6f0947d8-bf77-11ea-a2e1-00155d012600", - "period": "2020-06-30T12:00:02", - "canonical_ref": "evidence_source_ref_v1|unknown|document_%D1%81%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5%D1%81%D1%80%D0%B0%D1%81%D1%87%D0%B5%D1%82%D0%BD%D0%BE%D0%B3%D0%BE%D1%81%D1%87%D0%B5%D1%82%D0%B0|6f0947d8-bf77-11ea-a2e1-00155d012600|2020-06-30t12%3A00%3A02" - }, - "relation_pattern_hits": [ - "document_to_posting", - "contract_to_documents", - "domain_hint:bank_settlement" - ], - "anomaly_patterns": [ - "missing_link", - "broken_lifecycle", - "domain_hint:bank_settlement" - ], - "entity_backlinks": [ - { - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "6f0947d8-bf77-11ea-a2e1-00155d012600" - } - ], - "confidence_hint": "low" - }, - { - "schema_version": "candidate_evidence_v0_1", - "candidate_id": "cand-ev-1-6", - "route": "store_canonical", - "source_ref": { - "schema_version": "evidence_source_ref_v1", - "namespace": "unknown", - "entity": "Document_ПоступлениеТоваровУслуг", - "id": "d57e16a8-b090-11ea-a2db-00155d012600", - "period": "2020-06-30T12:00:00", - "canonical_ref": "evidence_source_ref_v1|unknown|document_%D0%BF%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5%D1%82%D0%BE%D0%B2%D0%B0%D1%80%D0%BE%D0%B2%D1%83%D1%81%D0%BB%D1%83%D0%B3|d57e16a8-b090-11ea-a2db-00155d012600|2020-06-30t12%3A00%3A00" - }, - "relation_pattern_hits": [ - "document_to_posting", - "contract_to_documents", - "domain_hint:bank_settlement" - ], - "anomaly_patterns": [ - "missing_link", - "broken_lifecycle", - "domain_hint:bank_settlement" - ], - "entity_backlinks": [ - { - "entity": "Document_ПоступлениеТоваровУслуг", - "id": "d57e16a8-b090-11ea-a2db-00155d012600" - } - ], - "confidence_hint": "low" - } - ], - "problem_units": [ - { - "schema_version": "problem_unit_v0_1", - "problem_unit_id": "pu-unresolved_settlement_cluster-1", - "problem_unit_type": "unresolved_settlement_cluster", - "title": "Unresolved settlement cluster detected", - "mechanism_summary": "Mechanism candidate: document_to_posting.", - "business_defect_class": "document_to_posting", - "severity": { - "score": 0.48, - "grade": "medium" - }, - "confidence": { - "score": 0.3, - "grade": "low" - }, - "affected_entities": [ - "Document_СписаниеСРасчетногоСчета:c921c08a-c117-11ea-a2e2-00155d012600" - ], - "affected_documents": [ - "Document_СписаниеСРасчетногоСчета:c921c08a-c117-11ea-a2e2-00155d012600" - ], - "affected_postings": [], - "affected_accounts": [ - "Document_СписаниеСРасчетногоСчета:c921c08a-c117-11ea-a2e2-00155d012600" - ], - "affected_counterparties": [], - "affected_contracts": [], - "evidence_pack": [ - "cand-ev-1-1" - ], - "entity_backlinks": [ - { - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "c921c08a-c117-11ea-a2e2-00155d012600" - } - ], - "snapshot_limitations": [ - "low_confidence_candidates_present" - ], - "lifecycle_domain": "bank_settlement", - "lifecycle_object_id": "lcobj-pu-unresolved_settlement_cluster-1", - "current_lifecycle_state": "stale_unlinked_payment", - "expected_lifecycle_state": "settlement_closed", - "missing_transition": "expected_transition_not_observed", - "lifecycle_defect_type": "stale_active_state", - "stale_duration": "unknown_snapshot_window", - "lifecycle_confidence": { - "score": 0.26, - "grade": "low" - }, - "business_lifecycle_interpretation": "Текущая стадия: stale_unlinked_payment; ожидаемая стадия: settlement_closed. Объект завис во времени и не дошел до ожидаемого перехода.", - "lifecycle_resolution": { - "lifecycle_object_id": "lcobj-pu-unresolved_settlement_cluster-1", - "lifecycle_domain": "bank_settlement", - "resolved_current_state": "stale_unlinked_payment", - "resolved_expected_state": "settlement_closed", - "resolved_previous_states": [], - "missing_transitions": [ - "expected_transition_not_observed" - ], - "invalid_transitions": [], - "detected_defects": [ - "stale_active_state" - ], - "state_confidence": { - "score": 0.26, - "grade": "low" - }, - "resolution_evidence": [ - "cand-ev-1-1" - ], - "snapshot_limitations": [ - "low_confidence_candidates_present", - "actual_state_inferred", - "expected_state_inferred" - ] - }, - "lifecycle_ranking_score": 0.98, - "lifecycle_ranking_basis": [ - "base_problem_severity", - "stale_duration_weight", - "stale_duration_present" - ], - "graph_binding": { - "problem_unit_id": "pu-unresolved_settlement_cluster-1", - "graph_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-1", - "relation_path": [ - "domain:bank_settlement", - "state:stale_unlinked_payment->settlement_closed", - "payment_to_settlement", - "wrong_closing_document_type", - "missing:expected_transition_not_observed" - ], - "missing_links": [ - "expected_transition_not_observed" - ], - "conflicting_links": [], - "provenance_evidence_ids": [ - "cand-ev-1-1" - ], - "graph_confidence": "low" - } - }, - { - "schema_version": "problem_unit_v0_1", - "problem_unit_id": "pu-unresolved_settlement_cluster-2", - "problem_unit_type": "unresolved_settlement_cluster", - "title": "Unresolved settlement cluster detected", - "mechanism_summary": "Mechanism candidate: document_to_posting.", - "business_defect_class": "document_to_posting", - "severity": { - "score": 0.48, - "grade": "medium" - }, - "confidence": { - "score": 0.3, - "grade": "low" - }, - "affected_entities": [ - "Document_СписаниеСРасчетногоСчета:5dfabe1f-c117-11ea-a2e2-00155d012600" - ], - "affected_documents": [ - "Document_СписаниеСРасчетногоСчета:5dfabe1f-c117-11ea-a2e2-00155d012600" - ], - "affected_postings": [], - "affected_accounts": [ - "Document_СписаниеСРасчетногоСчета:5dfabe1f-c117-11ea-a2e2-00155d012600" - ], - "affected_counterparties": [], - "affected_contracts": [], - "evidence_pack": [ - "cand-ev-1-2" - ], - "entity_backlinks": [ - { - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "5dfabe1f-c117-11ea-a2e2-00155d012600" - } - ], - "snapshot_limitations": [ - "low_confidence_candidates_present" - ], - "lifecycle_domain": "bank_settlement", - "lifecycle_object_id": "lcobj-pu-unresolved_settlement_cluster-2", - "current_lifecycle_state": "stale_unlinked_payment", - "expected_lifecycle_state": "settlement_closed", - "missing_transition": "expected_transition_not_observed", - "lifecycle_defect_type": "stale_active_state", - "stale_duration": "unknown_snapshot_window", - "lifecycle_confidence": { - "score": 0.26, - "grade": "low" - }, - "business_lifecycle_interpretation": "Текущая стадия: stale_unlinked_payment; ожидаемая стадия: settlement_closed. Объект завис во времени и не дошел до ожидаемого перехода.", - "lifecycle_resolution": { - "lifecycle_object_id": "lcobj-pu-unresolved_settlement_cluster-2", - "lifecycle_domain": "bank_settlement", - "resolved_current_state": "stale_unlinked_payment", - "resolved_expected_state": "settlement_closed", - "resolved_previous_states": [], - "missing_transitions": [ - "expected_transition_not_observed" - ], - "invalid_transitions": [], - "detected_defects": [ - "stale_active_state" - ], - "state_confidence": { - "score": 0.26, - "grade": "low" - }, - "resolution_evidence": [ - "cand-ev-1-2" - ], - "snapshot_limitations": [ - "low_confidence_candidates_present", - "actual_state_inferred", - "expected_state_inferred" - ] - }, - "lifecycle_ranking_score": 0.98, - "lifecycle_ranking_basis": [ - "base_problem_severity", - "stale_duration_weight", - "stale_duration_present" - ], - "graph_binding": { - "problem_unit_id": "pu-unresolved_settlement_cluster-2", - "graph_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-2", - "relation_path": [ - "domain:bank_settlement", - "state:stale_unlinked_payment->settlement_closed", - "payment_to_settlement", - "wrong_closing_document_type", - "missing:expected_transition_not_observed" - ], - "missing_links": [ - "expected_transition_not_observed" - ], - "conflicting_links": [], - "provenance_evidence_ids": [ - "cand-ev-1-2" - ], - "graph_confidence": "low" - } - }, - { - "schema_version": "problem_unit_v0_1", - "problem_unit_id": "pu-unresolved_settlement_cluster-3", - "problem_unit_type": "unresolved_settlement_cluster", - "title": "Unresolved settlement cluster detected", - "mechanism_summary": "Mechanism candidate: document_to_posting.", - "business_defect_class": "document_to_posting", - "severity": { - "score": 0.48, - "grade": "medium" - }, - "confidence": { - "score": 0.3, - "grade": "low" - }, - "affected_entities": [ - "Document_СписаниеСРасчетногоСчета:2fdf7d2b-c117-11ea-a2e2-00155d012600" - ], - "affected_documents": [ - "Document_СписаниеСРасчетногоСчета:2fdf7d2b-c117-11ea-a2e2-00155d012600" - ], - "affected_postings": [], - "affected_accounts": [ - "Document_СписаниеСРасчетногоСчета:2fdf7d2b-c117-11ea-a2e2-00155d012600" - ], - "affected_counterparties": [], - "affected_contracts": [], - "evidence_pack": [ - "cand-ev-1-3" - ], - "entity_backlinks": [ - { - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "2fdf7d2b-c117-11ea-a2e2-00155d012600" - } - ], - "snapshot_limitations": [ - "low_confidence_candidates_present" - ], - "lifecycle_domain": "bank_settlement", - "lifecycle_object_id": "lcobj-pu-unresolved_settlement_cluster-3", - "current_lifecycle_state": "stale_unlinked_payment", - "expected_lifecycle_state": "settlement_closed", - "missing_transition": "expected_transition_not_observed", - "lifecycle_defect_type": "stale_active_state", - "stale_duration": "unknown_snapshot_window", - "lifecycle_confidence": { - "score": 0.26, - "grade": "low" - }, - "business_lifecycle_interpretation": "Текущая стадия: stale_unlinked_payment; ожидаемая стадия: settlement_closed. Объект завис во времени и не дошел до ожидаемого перехода.", - "lifecycle_resolution": { - "lifecycle_object_id": "lcobj-pu-unresolved_settlement_cluster-3", - "lifecycle_domain": "bank_settlement", - "resolved_current_state": "stale_unlinked_payment", - "resolved_expected_state": "settlement_closed", - "resolved_previous_states": [], - "missing_transitions": [ - "expected_transition_not_observed" - ], - "invalid_transitions": [], - "detected_defects": [ - "stale_active_state" - ], - "state_confidence": { - "score": 0.26, - "grade": "low" - }, - "resolution_evidence": [ - "cand-ev-1-3" - ], - "snapshot_limitations": [ - "low_confidence_candidates_present", - "actual_state_inferred", - "expected_state_inferred" - ] - }, - "lifecycle_ranking_score": 0.98, - "lifecycle_ranking_basis": [ - "base_problem_severity", - "stale_duration_weight", - "stale_duration_present" - ], - "graph_binding": { - "problem_unit_id": "pu-unresolved_settlement_cluster-3", - "graph_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-3", - "relation_path": [ - "domain:bank_settlement", - "state:stale_unlinked_payment->settlement_closed", - "payment_to_settlement", - "wrong_closing_document_type", - "missing:expected_transition_not_observed" - ], - "missing_links": [ - "expected_transition_not_observed" - ], - "conflicting_links": [], - "provenance_evidence_ids": [ - "cand-ev-1-3" - ], - "graph_confidence": "low" - } - }, - { - "schema_version": "problem_unit_v0_1", - "problem_unit_id": "pu-unresolved_settlement_cluster-4", - "problem_unit_type": "unresolved_settlement_cluster", - "title": "Unresolved settlement cluster detected", - "mechanism_summary": "Mechanism candidate: document_to_posting.", - "business_defect_class": "document_to_posting", - "severity": { - "score": 0.48, - "grade": "medium" - }, - "confidence": { - "score": 0.3, - "grade": "low" - }, - "affected_entities": [ - "Document_СписаниеСРасчетногоСчета:24f17575-c117-11ea-a2e2-00155d012600" - ], - "affected_documents": [ - "Document_СписаниеСРасчетногоСчета:24f17575-c117-11ea-a2e2-00155d012600" - ], - "affected_postings": [], - "affected_accounts": [ - "Document_СписаниеСРасчетногоСчета:24f17575-c117-11ea-a2e2-00155d012600" - ], - "affected_counterparties": [], - "affected_contracts": [], - "evidence_pack": [ - "cand-ev-1-4" - ], - "entity_backlinks": [ - { - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "24f17575-c117-11ea-a2e2-00155d012600" - } - ], - "snapshot_limitations": [ - "low_confidence_candidates_present" - ], - "lifecycle_domain": "bank_settlement", - "lifecycle_object_id": "lcobj-pu-unresolved_settlement_cluster-4", - "current_lifecycle_state": "stale_unlinked_payment", - "expected_lifecycle_state": "settlement_closed", - "missing_transition": "expected_transition_not_observed", - "lifecycle_defect_type": "stale_active_state", - "stale_duration": "unknown_snapshot_window", - "lifecycle_confidence": { - "score": 0.26, - "grade": "low" - }, - "business_lifecycle_interpretation": "Текущая стадия: stale_unlinked_payment; ожидаемая стадия: settlement_closed. Объект завис во времени и не дошел до ожидаемого перехода.", - "lifecycle_resolution": { - "lifecycle_object_id": "lcobj-pu-unresolved_settlement_cluster-4", - "lifecycle_domain": "bank_settlement", - "resolved_current_state": "stale_unlinked_payment", - "resolved_expected_state": "settlement_closed", - "resolved_previous_states": [], - "missing_transitions": [ - "expected_transition_not_observed" - ], - "invalid_transitions": [], - "detected_defects": [ - "stale_active_state" - ], - "state_confidence": { - "score": 0.26, - "grade": "low" - }, - "resolution_evidence": [ - "cand-ev-1-4" - ], - "snapshot_limitations": [ - "low_confidence_candidates_present", - "actual_state_inferred", - "expected_state_inferred" - ] - }, - "lifecycle_ranking_score": 0.98, - "lifecycle_ranking_basis": [ - "base_problem_severity", - "stale_duration_weight", - "stale_duration_present" - ], - "graph_binding": { - "problem_unit_id": "pu-unresolved_settlement_cluster-4", - "graph_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-4", - "relation_path": [ - "domain:bank_settlement", - "state:stale_unlinked_payment->settlement_closed", - "payment_to_settlement", - "wrong_closing_document_type", - "missing:expected_transition_not_observed" - ], - "missing_links": [ - "expected_transition_not_observed" - ], - "conflicting_links": [], - "provenance_evidence_ids": [ - "cand-ev-1-4" - ], - "graph_confidence": "low" - } - }, - { - "schema_version": "problem_unit_v0_1", - "problem_unit_id": "pu-unresolved_settlement_cluster-5", - "problem_unit_type": "unresolved_settlement_cluster", - "title": "Unresolved settlement cluster detected", - "mechanism_summary": "Mechanism candidate: document_to_posting.", - "business_defect_class": "document_to_posting", - "severity": { - "score": 0.48, - "grade": "medium" - }, - "confidence": { - "score": 0.3, - "grade": "low" - }, - "affected_entities": [ - "Document_СписаниеСРасчетногоСчета:6f0947d8-bf77-11ea-a2e1-00155d012600" - ], - "affected_documents": [ - "Document_СписаниеСРасчетногоСчета:6f0947d8-bf77-11ea-a2e1-00155d012600" - ], - "affected_postings": [], - "affected_accounts": [ - "Document_СписаниеСРасчетногоСчета:6f0947d8-bf77-11ea-a2e1-00155d012600" - ], - "affected_counterparties": [], - "affected_contracts": [], - "evidence_pack": [ - "cand-ev-1-5" - ], - "entity_backlinks": [ - { - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "6f0947d8-bf77-11ea-a2e1-00155d012600" - } - ], - "snapshot_limitations": [ - "low_confidence_candidates_present" - ], - "lifecycle_domain": "bank_settlement", - "lifecycle_object_id": "lcobj-pu-unresolved_settlement_cluster-5", - "current_lifecycle_state": "stale_unlinked_payment", - "expected_lifecycle_state": "settlement_closed", - "missing_transition": "expected_transition_not_observed", - "lifecycle_defect_type": "stale_active_state", - "stale_duration": "unknown_snapshot_window", - "lifecycle_confidence": { - "score": 0.26, - "grade": "low" - }, - "business_lifecycle_interpretation": "Текущая стадия: stale_unlinked_payment; ожидаемая стадия: settlement_closed. Объект завис во времени и не дошел до ожидаемого перехода.", - "lifecycle_resolution": { - "lifecycle_object_id": "lcobj-pu-unresolved_settlement_cluster-5", - "lifecycle_domain": "bank_settlement", - "resolved_current_state": "stale_unlinked_payment", - "resolved_expected_state": "settlement_closed", - "resolved_previous_states": [], - "missing_transitions": [ - "expected_transition_not_observed" - ], - "invalid_transitions": [], - "detected_defects": [ - "stale_active_state" - ], - "state_confidence": { - "score": 0.26, - "grade": "low" - }, - "resolution_evidence": [ - "cand-ev-1-5" - ], - "snapshot_limitations": [ - "low_confidence_candidates_present", - "actual_state_inferred", - "expected_state_inferred" - ] - }, - "lifecycle_ranking_score": 0.98, - "lifecycle_ranking_basis": [ - "base_problem_severity", - "stale_duration_weight", - "stale_duration_present" - ], - "graph_binding": { - "problem_unit_id": "pu-unresolved_settlement_cluster-5", - "graph_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-5", - "relation_path": [ - "domain:bank_settlement", - "state:stale_unlinked_payment->settlement_closed", - "payment_to_settlement", - "wrong_closing_document_type", - "missing:expected_transition_not_observed" - ], - "missing_links": [ - "expected_transition_not_observed" - ], - "conflicting_links": [], - "provenance_evidence_ids": [ - "cand-ev-1-5" - ], - "graph_confidence": "low" - } - }, - { - "schema_version": "problem_unit_v0_1", - "problem_unit_id": "pu-unresolved_settlement_cluster-6", - "problem_unit_type": "unresolved_settlement_cluster", - "title": "Unresolved settlement cluster detected", - "mechanism_summary": "Mechanism candidate: document_to_posting.", - "business_defect_class": "document_to_posting", - "severity": { - "score": 0.48, - "grade": "medium" - }, - "confidence": { - "score": 0.3, - "grade": "low" - }, - "affected_entities": [ - "Document_ПоступлениеТоваровУслуг:d57e16a8-b090-11ea-a2db-00155d012600" - ], - "affected_documents": [ - "Document_ПоступлениеТоваровУслуг:d57e16a8-b090-11ea-a2db-00155d012600" - ], - "affected_postings": [], - "affected_accounts": [], - "affected_counterparties": [], - "affected_contracts": [], - "evidence_pack": [ - "cand-ev-1-6" - ], - "entity_backlinks": [ - { - "entity": "Document_ПоступлениеТоваровУслуг", - "id": "d57e16a8-b090-11ea-a2db-00155d012600" - } - ], - "snapshot_limitations": [ - "low_confidence_candidates_present" - ], - "lifecycle_domain": "bank_settlement", - "lifecycle_object_id": "lcobj-pu-unresolved_settlement_cluster-6", - "current_lifecycle_state": "stale_unlinked_payment", - "expected_lifecycle_state": "settlement_closed", - "missing_transition": "expected_transition_not_observed", - "lifecycle_defect_type": "stale_active_state", - "stale_duration": "unknown_snapshot_window", - "lifecycle_confidence": { - "score": 0.26, - "grade": "low" - }, - "business_lifecycle_interpretation": "Текущая стадия: stale_unlinked_payment; ожидаемая стадия: settlement_closed. Объект завис во времени и не дошел до ожидаемого перехода.", - "lifecycle_resolution": { - "lifecycle_object_id": "lcobj-pu-unresolved_settlement_cluster-6", - "lifecycle_domain": "bank_settlement", - "resolved_current_state": "stale_unlinked_payment", - "resolved_expected_state": "settlement_closed", - "resolved_previous_states": [], - "missing_transitions": [ - "expected_transition_not_observed" - ], - "invalid_transitions": [], - "detected_defects": [ - "stale_active_state" - ], - "state_confidence": { - "score": 0.26, - "grade": "low" - }, - "resolution_evidence": [ - "cand-ev-1-6" - ], - "snapshot_limitations": [ - "low_confidence_candidates_present", - "actual_state_inferred", - "expected_state_inferred" - ] - }, - "lifecycle_ranking_score": 0.98, - "lifecycle_ranking_basis": [ - "base_problem_severity", - "stale_duration_weight", - "stale_duration_present" - ], - "graph_binding": { - "problem_unit_id": "pu-unresolved_settlement_cluster-6", - "graph_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-6", - "relation_path": [ - "domain:bank_settlement", - "state:stale_unlinked_payment->settlement_closed", - "payment_to_settlement", - "wrong_closing_document_type", - "missing:expected_transition_not_observed" - ], - "missing_links": [ - "expected_transition_not_observed" - ], - "conflicting_links": [], - "provenance_evidence_ids": [ - "cand-ev-1-6" - ], - "graph_confidence": "low" - } - } - ], - "problem_unit_summary": { - "schema_version": "problem_unit_summary_v0_1", - "units_total": 6, - "duplicate_collapses": 0, - "unit_types": [ - "unresolved_settlement_cluster" - ], - "type_distribution": { - "unresolved_settlement_cluster": 6 - }, - "severity_distribution": { - "low": 0, - "medium": 6, - "high": 0 - }, - "confidence_distribution": { - "low": 6, - "medium": 0, - "high": 0 - }, - "primary_unit_type": "unresolved_settlement_cluster", - "lifecycle_enriched_units": 6, - "lifecycle_domain_distribution": { - "bank_settlement": 6 - }, - "lifecycle_defect_distribution": { - "stale_active_state": 6 - }, - "graph_summary": { - "total_units": 6, - "bound_units": 6, - "node_count": 30, - "edge_count": 18, - "missing_links_count": 6, - "conflicting_links_count": 0, - "graph_coverage_grade": "high", - "domain_distribution": { - "bank_settlement": 6 - }, - "relation_distribution": { - "affects_account": 5, - "affects_document": 5, - "belongs_to_domain": 1, - "current_state": 1, - "expected_state": 1, - "has_defect": 1, - "missing_transition": 1, - "supported_by_evidence": 1, - "supports_path": 2 - } - } - }, - "accounting_graph": { - "schema_version": "accounting_graph_v0_1", - "nodes": [ - { - "node_id": "gnd-account-bank-settlement-account-document-24f17575-c117-11ea-a2e2-00155d0", - "node_type": "account", - "domain": "bank_settlement", - "label": "Document_СписаниеСРасчетногоСчета:24f17575-c117-11ea-a2e2-00155d012600", - "confidence": "low", - "attributes": { - "account": "Document_СписаниеСРасчетногоСчета:24f17575-c117-11ea-a2e2-00155d012600" - }, - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-4" - ] - } - }, - { - "node_id": "gnd-account-bank-settlement-account-document-2fdf7d2b-c117-11ea-a2e2-00155d0", - "node_type": "account", - "domain": "bank_settlement", - "label": "Document_СписаниеСРасчетногоСчета:2fdf7d2b-c117-11ea-a2e2-00155d012600", - "confidence": "low", - "attributes": { - "account": "Document_СписаниеСРасчетногоСчета:2fdf7d2b-c117-11ea-a2e2-00155d012600" - }, - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-3" - ] - } - }, - { - "node_id": "gnd-account-bank-settlement-account-document-5dfabe1f-c117-11ea-a2e2-00155d0", - "node_type": "account", - "domain": "bank_settlement", - "label": "Document_СписаниеСРасчетногоСчета:5dfabe1f-c117-11ea-a2e2-00155d012600", - "confidence": "low", - "attributes": { - "account": "Document_СписаниеСРасчетногоСчета:5dfabe1f-c117-11ea-a2e2-00155d012600" - }, - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-2" - ] - } - }, - { - "node_id": "gnd-account-bank-settlement-account-document-6f0947d8-bf77-11ea-a2e1-00155d0", - "node_type": "account", - "domain": "bank_settlement", - "label": "Document_СписаниеСРасчетногоСчета:6f0947d8-bf77-11ea-a2e1-00155d012600", - "confidence": "low", - "attributes": { - "account": "Document_СписаниеСРасчетногоСчета:6f0947d8-bf77-11ea-a2e1-00155d012600" - }, - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-5" - ] - } - }, - { - "node_id": "gnd-account-bank-settlement-account-document-c921c08a-c117-11ea-a2e2-00155d0", - "node_type": "account", - "domain": "bank_settlement", - "label": "Document_СписаниеСРасчетногоСчета:c921c08a-c117-11ea-a2e2-00155d012600", - "confidence": "low", - "attributes": { - "account": "Document_СписаниеСРасчетногоСчета:c921c08a-c117-11ea-a2e2-00155d012600" - }, - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-1" - ] - } - }, - { - "node_id": "gnd-defect-bank-settlement-defect-stale-active-state", - "node_type": "defect", - "domain": "bank_settlement", - "label": "stale_active_state", - "confidence": "low", - "attributes": {}, - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-1", - "cand-ev-1-2", - "cand-ev-1-3", - "cand-ev-1-4", - "cand-ev-1-5", - "cand-ev-1-6" - ] - } - }, - { - "node_id": "gnd-document-bank-settlement-document-document-24f17575-c117-11ea-a2e2-00155d", - "node_type": "document", - "domain": "bank_settlement", - "label": "Document_СписаниеСРасчетногоСчета:24f17575-c117-11ea-a2e2-00155d012600", - "confidence": "low", - "attributes": {}, - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-4" - ] - } - }, - { - "node_id": "gnd-document-bank-settlement-document-document-2fdf7d2b-c117-11ea-a2e2-00155d", - "node_type": "document", - "domain": "bank_settlement", - "label": "Document_СписаниеСРасчетногоСчета:2fdf7d2b-c117-11ea-a2e2-00155d012600", - "confidence": "low", - "attributes": {}, - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-3" - ] - } - }, - { - "node_id": "gnd-document-bank-settlement-document-document-5dfabe1f-c117-11ea-a2e2-00155d", - "node_type": "document", - "domain": "bank_settlement", - "label": "Document_СписаниеСРасчетногоСчета:5dfabe1f-c117-11ea-a2e2-00155d012600", - "confidence": "low", - "attributes": {}, - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-2" - ] - } - }, - { - "node_id": "gnd-document-bank-settlement-document-document-6f0947d8-bf77-11ea-a2e1-00155d", - "node_type": "document", - "domain": "bank_settlement", - "label": "Document_СписаниеСРасчетногоСчета:6f0947d8-bf77-11ea-a2e1-00155d012600", - "confidence": "low", - "attributes": {}, - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-5" - ] - } - }, - { - "node_id": "gnd-document-bank-settlement-document-document-c921c08a-c117-11ea-a2e2-00155d", - "node_type": "document", - "domain": "bank_settlement", - "label": "Document_СписаниеСРасчетногоСчета:c921c08a-c117-11ea-a2e2-00155d012600", - "confidence": "low", - "attributes": {}, - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-1" - ] - } - }, - { - "node_id": "gnd-document-bank-settlement-document-document-d57e16a8-b090-11ea-a2db-00155d", - "node_type": "document", - "domain": "bank_settlement", - "label": "Document_ПоступлениеТоваровУслуг:d57e16a8-b090-11ea-a2db-00155d012600", - "confidence": "low", - "attributes": {}, - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-6" - ] - } - }, - { - "node_id": "gnd-domain-bank-settlement-domain-bank-settlement", - "node_type": "domain", - "domain": "bank_settlement", - "label": "bank_settlement", - "confidence": "low", - "attributes": { - "domain": "bank_settlement" - }, - "provenance": { - "route": "store_canonical", - "candidate_ids": [ - "cand-ev-1-1", - "cand-ev-1-2", - "cand-ev-1-3", - "cand-ev-1-4", - "cand-ev-1-5", - "cand-ev-1-6" - ], - "evidence_ids": [ - "cand-ev-1-1", - "cand-ev-1-2", - "cand-ev-1-3", - "cand-ev-1-4", - "cand-ev-1-5", - "cand-ev-1-6" - ] - } - }, - { - "node_id": "gnd-evidence-bank-settlement-evidence-cand-ev-1-1", - "node_type": "evidence", - "domain": "bank_settlement", - "label": "Document_СписаниеСРасчетногоСчета:c921c08a-c117-11ea-a2e2-00155d012600", - "confidence": "low", - "attributes": { - "candidate_id": "cand-ev-1-1" - }, - "provenance": { - "route": "store_canonical", - "candidate_ids": [ - "cand-ev-1-1" - ], - "evidence_ids": [ - "cand-ev-1-1" - ] - } - }, - { - "node_id": "gnd-evidence-bank-settlement-evidence-cand-ev-1-2", - "node_type": "evidence", - "domain": "bank_settlement", - "label": "Document_СписаниеСРасчетногоСчета:5dfabe1f-c117-11ea-a2e2-00155d012600", - "confidence": "low", - "attributes": { - "candidate_id": "cand-ev-1-2" - }, - "provenance": { - "route": "store_canonical", - "candidate_ids": [ - "cand-ev-1-2" - ], - "evidence_ids": [ - "cand-ev-1-2" - ] - } - }, - { - "node_id": "gnd-evidence-bank-settlement-evidence-cand-ev-1-3", - "node_type": "evidence", - "domain": "bank_settlement", - "label": "Document_СписаниеСРасчетногоСчета:2fdf7d2b-c117-11ea-a2e2-00155d012600", - "confidence": "low", - "attributes": { - "candidate_id": "cand-ev-1-3" - }, - "provenance": { - "route": "store_canonical", - "candidate_ids": [ - "cand-ev-1-3" - ], - "evidence_ids": [ - "cand-ev-1-3" - ] - } - }, - { - "node_id": "gnd-evidence-bank-settlement-evidence-cand-ev-1-4", - "node_type": "evidence", - "domain": "bank_settlement", - "label": "Document_СписаниеСРасчетногоСчета:24f17575-c117-11ea-a2e2-00155d012600", - "confidence": "low", - "attributes": { - "candidate_id": "cand-ev-1-4" - }, - "provenance": { - "route": "store_canonical", - "candidate_ids": [ - "cand-ev-1-4" - ], - "evidence_ids": [ - "cand-ev-1-4" - ] - } - }, - { - "node_id": "gnd-evidence-bank-settlement-evidence-cand-ev-1-5", - "node_type": "evidence", - "domain": "bank_settlement", - "label": "Document_СписаниеСРасчетногоСчета:6f0947d8-bf77-11ea-a2e1-00155d012600", - "confidence": "low", - "attributes": { - "candidate_id": "cand-ev-1-5" - }, - "provenance": { - "route": "store_canonical", - "candidate_ids": [ - "cand-ev-1-5" - ], - "evidence_ids": [ - "cand-ev-1-5" - ] - } - }, - { - "node_id": "gnd-evidence-bank-settlement-evidence-cand-ev-1-6", - "node_type": "evidence", - "domain": "bank_settlement", - "label": "Document_ПоступлениеТоваровУслуг:d57e16a8-b090-11ea-a2db-00155d012600", - "confidence": "low", - "attributes": { - "candidate_id": "cand-ev-1-6" - }, - "provenance": { - "route": "store_canonical", - "candidate_ids": [ - "cand-ev-1-6" - ], - "evidence_ids": [ - "cand-ev-1-6" - ] - } - }, - { - "node_id": "gnd-lifecycle-state-bank-settlement-current-state-stale-unlinked-payment", - "node_type": "lifecycle_state", - "domain": "bank_settlement", - "label": "stale_unlinked_payment", - "confidence": "low", - "attributes": { - "state_role": "current" - }, - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-1", - "cand-ev-1-2", - "cand-ev-1-3", - "cand-ev-1-4", - "cand-ev-1-5", - "cand-ev-1-6" - ] - } - }, - { - "node_id": "gnd-lifecycle-state-bank-settlement-expected-state-settlement-closed", - "node_type": "lifecycle_state", - "domain": "bank_settlement", - "label": "settlement_closed", - "confidence": "low", - "attributes": { - "state_role": "expected" - }, - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-1", - "cand-ev-1-2", - "cand-ev-1-3", - "cand-ev-1-4", - "cand-ev-1-5", - "cand-ev-1-6" - ] - } - }, - { - "node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-1", - "node_type": "problem_unit", - "domain": "bank_settlement", - "label": "Unresolved settlement cluster detected", - "confidence": "low", - "attributes": { - "problem_unit_id": "pu-unresolved_settlement_cluster-1", - "problem_unit_type": "unresolved_settlement_cluster", - "business_defect_class": "document_to_posting", - "lifecycle_defect_type": "stale_active_state" - }, - "provenance": { - "route": "store_canonical", - "candidate_ids": [ - "cand-ev-1-1" - ], - "evidence_ids": [ - "cand-ev-1-1" - ] - } - }, - { - "node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-2", - "node_type": "problem_unit", - "domain": "bank_settlement", - "label": "Unresolved settlement cluster detected", - "confidence": "low", - "attributes": { - "problem_unit_id": "pu-unresolved_settlement_cluster-2", - "problem_unit_type": "unresolved_settlement_cluster", - "business_defect_class": "document_to_posting", - "lifecycle_defect_type": "stale_active_state" - }, - "provenance": { - "route": "store_canonical", - "candidate_ids": [ - "cand-ev-1-2" - ], - "evidence_ids": [ - "cand-ev-1-2" - ] - } - }, - { - "node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-3", - "node_type": "problem_unit", - "domain": "bank_settlement", - "label": "Unresolved settlement cluster detected", - "confidence": "low", - "attributes": { - "problem_unit_id": "pu-unresolved_settlement_cluster-3", - "problem_unit_type": "unresolved_settlement_cluster", - "business_defect_class": "document_to_posting", - "lifecycle_defect_type": "stale_active_state" - }, - "provenance": { - "route": "store_canonical", - "candidate_ids": [ - "cand-ev-1-3" - ], - "evidence_ids": [ - "cand-ev-1-3" - ] - } - }, - { - "node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-4", - "node_type": "problem_unit", - "domain": "bank_settlement", - "label": "Unresolved settlement cluster detected", - "confidence": "low", - "attributes": { - "problem_unit_id": "pu-unresolved_settlement_cluster-4", - "problem_unit_type": "unresolved_settlement_cluster", - "business_defect_class": "document_to_posting", - "lifecycle_defect_type": "stale_active_state" - }, - "provenance": { - "route": "store_canonical", - "candidate_ids": [ - "cand-ev-1-4" - ], - "evidence_ids": [ - "cand-ev-1-4" - ] - } - }, - { - "node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-5", - "node_type": "problem_unit", - "domain": "bank_settlement", - "label": "Unresolved settlement cluster detected", - "confidence": "low", - "attributes": { - "problem_unit_id": "pu-unresolved_settlement_cluster-5", - "problem_unit_type": "unresolved_settlement_cluster", - "business_defect_class": "document_to_posting", - "lifecycle_defect_type": "stale_active_state" - }, - "provenance": { - "route": "store_canonical", - "candidate_ids": [ - "cand-ev-1-5" - ], - "evidence_ids": [ - "cand-ev-1-5" - ] - } - }, - { - "node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-6", - "node_type": "problem_unit", - "domain": "bank_settlement", - "label": "Unresolved settlement cluster detected", - "confidence": "low", - "attributes": { - "problem_unit_id": "pu-unresolved_settlement_cluster-6", - "problem_unit_type": "unresolved_settlement_cluster", - "business_defect_class": "document_to_posting", - "lifecycle_defect_type": "stale_active_state" - }, - "provenance": { - "route": "store_canonical", - "candidate_ids": [ - "cand-ev-1-6" - ], - "evidence_ids": [ - "cand-ev-1-6" - ] - } - }, - { - "node_id": "gnd-transition-bank-settlement-hint-contract-to-documents", - "node_type": "transition", - "domain": "bank_settlement", - "label": "contract_to_documents", - "confidence": "low", - "attributes": { - "transition_role": "hint" - }, - "provenance": { - "route": "store_canonical", - "candidate_ids": [ - "cand-ev-1-1", - "cand-ev-1-2", - "cand-ev-1-3", - "cand-ev-1-4", - "cand-ev-1-5", - "cand-ev-1-6" - ], - "evidence_ids": [ - "cand-ev-1-1", - "cand-ev-1-2", - "cand-ev-1-3", - "cand-ev-1-4", - "cand-ev-1-5", - "cand-ev-1-6" - ] - } - }, - { - "node_id": "gnd-transition-bank-settlement-hint-document-to-posting", - "node_type": "transition", - "domain": "bank_settlement", - "label": "document_to_posting", - "confidence": "low", - "attributes": { - "transition_role": "hint" - }, - "provenance": { - "route": "store_canonical", - "candidate_ids": [ - "cand-ev-1-1", - "cand-ev-1-2", - "cand-ev-1-3", - "cand-ev-1-4", - "cand-ev-1-5", - "cand-ev-1-6" - ], - "evidence_ids": [ - "cand-ev-1-1", - "cand-ev-1-2", - "cand-ev-1-3", - "cand-ev-1-4", - "cand-ev-1-5", - "cand-ev-1-6" - ] - } - }, - { - "node_id": "gnd-transition-bank-settlement-missing-transition-expected-transition-not-obser", - "node_type": "transition", - "domain": "bank_settlement", - "label": "expected_transition_not_observed", - "confidence": "low", - "attributes": { - "transition_role": "missing" - }, - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-1", - "cand-ev-1-2", - "cand-ev-1-3", - "cand-ev-1-4", - "cand-ev-1-5", - "cand-ev-1-6" - ] - } - } - ], - "edges": [ - { - "edge_id": "ged-affects-account-gnd-problem-unit-bank-settlement-problem-pu-unre-gnd-account-bank-settlement-account-document-24f", - "relation_type": "affects_account", - "from_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-4", - "to_node_id": "gnd-account-bank-settlement-account-document-24f17575-c117-11ea-a2e2-00155d0", - "domain": "bank_settlement", - "confidence": "low", - "flags": [ - "actual_link" - ], - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-4" - ] - } - }, - { - "edge_id": "ged-affects-account-gnd-problem-unit-bank-settlement-problem-pu-unre-gnd-account-bank-settlement-account-document-2fd", - "relation_type": "affects_account", - "from_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-3", - "to_node_id": "gnd-account-bank-settlement-account-document-2fdf7d2b-c117-11ea-a2e2-00155d0", - "domain": "bank_settlement", - "confidence": "low", - "flags": [ - "actual_link" - ], - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-3" - ] - } - }, - { - "edge_id": "ged-affects-account-gnd-problem-unit-bank-settlement-problem-pu-unre-gnd-account-bank-settlement-account-document-5df", - "relation_type": "affects_account", - "from_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-2", - "to_node_id": "gnd-account-bank-settlement-account-document-5dfabe1f-c117-11ea-a2e2-00155d0", - "domain": "bank_settlement", - "confidence": "low", - "flags": [ - "actual_link" - ], - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-2" - ] - } - }, - { - "edge_id": "ged-affects-account-gnd-problem-unit-bank-settlement-problem-pu-unre-gnd-account-bank-settlement-account-document-6f0", - "relation_type": "affects_account", - "from_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-5", - "to_node_id": "gnd-account-bank-settlement-account-document-6f0947d8-bf77-11ea-a2e1-00155d0", - "domain": "bank_settlement", - "confidence": "low", - "flags": [ - "actual_link" - ], - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-5" - ] - } - }, - { - "edge_id": "ged-affects-account-gnd-problem-unit-bank-settlement-problem-pu-unre-gnd-account-bank-settlement-account-document-c92", - "relation_type": "affects_account", - "from_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-1", - "to_node_id": "gnd-account-bank-settlement-account-document-c921c08a-c117-11ea-a2e2-00155d0", - "domain": "bank_settlement", - "confidence": "low", - "flags": [ - "actual_link" - ], - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-1" - ] - } - }, - { - "edge_id": "ged-affects-document-gnd-problem-unit-bank-settlement-problem-pu-unre-gnd-document-bank-settlement-document-document-2", - "relation_type": "affects_document", - "from_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-3", - "to_node_id": "gnd-document-bank-settlement-document-document-2fdf7d2b-c117-11ea-a2e2-00155d", - "domain": "bank_settlement", - "confidence": "low", - "flags": [ - "actual_link" - ], - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-3", - "cand-ev-1-4" - ] - } - }, - { - "edge_id": "ged-affects-document-gnd-problem-unit-bank-settlement-problem-pu-unre-gnd-document-bank-settlement-document-document-5", - "relation_type": "affects_document", - "from_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-2", - "to_node_id": "gnd-document-bank-settlement-document-document-5dfabe1f-c117-11ea-a2e2-00155d", - "domain": "bank_settlement", - "confidence": "low", - "flags": [ - "actual_link" - ], - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-2" - ] - } - }, - { - "edge_id": "ged-affects-document-gnd-problem-unit-bank-settlement-problem-pu-unre-gnd-document-bank-settlement-document-document-6", - "relation_type": "affects_document", - "from_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-5", - "to_node_id": "gnd-document-bank-settlement-document-document-6f0947d8-bf77-11ea-a2e1-00155d", - "domain": "bank_settlement", - "confidence": "low", - "flags": [ - "actual_link" - ], - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-5" - ] - } - }, - { - "edge_id": "ged-affects-document-gnd-problem-unit-bank-settlement-problem-pu-unre-gnd-document-bank-settlement-document-document-c", - "relation_type": "affects_document", - "from_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-1", - "to_node_id": "gnd-document-bank-settlement-document-document-c921c08a-c117-11ea-a2e2-00155d", - "domain": "bank_settlement", - "confidence": "low", - "flags": [ - "actual_link" - ], - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-1" - ] - } - }, - { - "edge_id": "ged-affects-document-gnd-problem-unit-bank-settlement-problem-pu-unre-gnd-document-bank-settlement-document-document-d", - "relation_type": "affects_document", - "from_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-6", - "to_node_id": "gnd-document-bank-settlement-document-document-d57e16a8-b090-11ea-a2db-00155d", - "domain": "bank_settlement", - "confidence": "low", - "flags": [ - "actual_link" - ], - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-6" - ] - } - }, - { - "edge_id": "ged-belongs-to-domain-gnd-problem-unit-bank-settlement-problem-pu-unre-gnd-domain-bank-settlement-domain-bank-settlemen", - "relation_type": "belongs_to_domain", - "from_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-1", - "to_node_id": "gnd-domain-bank-settlement-domain-bank-settlement", - "domain": "bank_settlement", - "confidence": "low", - "flags": [ - "actual_link" - ], - "provenance": { - "route": "store_canonical", - "candidate_ids": [ - "cand-ev-1-1", - "cand-ev-1-2", - "cand-ev-1-3", - "cand-ev-1-4", - "cand-ev-1-5", - "cand-ev-1-6" - ], - "evidence_ids": [ - "cand-ev-1-1", - "cand-ev-1-2", - "cand-ev-1-3", - "cand-ev-1-4", - "cand-ev-1-5", - "cand-ev-1-6" - ] - } - }, - { - "edge_id": "ged-current-state-gnd-problem-unit-bank-settlement-problem-pu-unre-gnd-lifecycle-state-bank-settlement-current-stat", - "relation_type": "current_state", - "from_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-1", - "to_node_id": "gnd-lifecycle-state-bank-settlement-current-state-stale-unlinked-payment", - "domain": "bank_settlement", - "confidence": "low", - "flags": [ - "actual_link" - ], - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-1", - "cand-ev-1-2", - "cand-ev-1-3", - "cand-ev-1-4", - "cand-ev-1-5", - "cand-ev-1-6" - ] - } - }, - { - "edge_id": "ged-expected-state-gnd-problem-unit-bank-settlement-problem-pu-unre-gnd-lifecycle-state-bank-settlement-expected-sta", - "relation_type": "expected_state", - "from_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-1", - "to_node_id": "gnd-lifecycle-state-bank-settlement-expected-state-settlement-closed", - "domain": "bank_settlement", - "confidence": "low", - "flags": [ - "expected_link" - ], - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-1", - "cand-ev-1-2", - "cand-ev-1-3", - "cand-ev-1-4", - "cand-ev-1-5", - "cand-ev-1-6" - ] - } - }, - { - "edge_id": "ged-has-defect-gnd-problem-unit-bank-settlement-problem-pu-unre-gnd-defect-bank-settlement-defect-stale-active-s", - "relation_type": "has_defect", - "from_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-1", - "to_node_id": "gnd-defect-bank-settlement-defect-stale-active-state", - "domain": "bank_settlement", - "confidence": "low", - "flags": [ - "actual_link" - ], - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-1", - "cand-ev-1-2", - "cand-ev-1-3", - "cand-ev-1-4", - "cand-ev-1-5", - "cand-ev-1-6" - ] - } - }, - { - "edge_id": "ged-missing-transition-gnd-problem-unit-bank-settlement-problem-pu-unre-gnd-transition-bank-settlement-missing-transitio", - "relation_type": "missing_transition", - "from_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-1", - "to_node_id": "gnd-transition-bank-settlement-missing-transition-expected-transition-not-obser", - "domain": "bank_settlement", - "confidence": "low", - "flags": [ - "missing_link" - ], - "provenance": { - "route": "store_canonical", - "candidate_ids": [], - "evidence_ids": [ - "cand-ev-1-1", - "cand-ev-1-2", - "cand-ev-1-3", - "cand-ev-1-4", - "cand-ev-1-5", - "cand-ev-1-6" - ] - } - }, - { - "edge_id": "ged-supported-by-evidence-gnd-problem-unit-bank-settlement-problem-pu-unre-gnd-evidence-bank-settlement-evidence-cand-ev-1-", - "relation_type": "supported_by_evidence", - "from_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-1", - "to_node_id": "gnd-evidence-bank-settlement-evidence-cand-ev-1-1", - "domain": "bank_settlement", - "confidence": "low", - "flags": [ - "actual_link" - ], - "provenance": { - "route": "store_canonical", - "candidate_ids": [ - "cand-ev-1-1", - "cand-ev-1-2", - "cand-ev-1-3", - "cand-ev-1-4", - "cand-ev-1-5", - "cand-ev-1-6" - ], - "evidence_ids": [ - "cand-ev-1-1", - "cand-ev-1-2", - "cand-ev-1-3", - "cand-ev-1-4", - "cand-ev-1-5", - "cand-ev-1-6" - ] - } - }, - { - "edge_id": "ged-supports-path-gnd-evidence-bank-settlement-evidence-cand-ev-1--gnd-transition-bank-settlement-hint-contract-to-", - "relation_type": "supports_path", - "from_node_id": "gnd-evidence-bank-settlement-evidence-cand-ev-1-1", - "to_node_id": "gnd-transition-bank-settlement-hint-contract-to-documents", - "domain": "bank_settlement", - "confidence": "low", - "flags": [ - "actual_link" - ], - "provenance": { - "route": "store_canonical", - "candidate_ids": [ - "cand-ev-1-1", - "cand-ev-1-2", - "cand-ev-1-3", - "cand-ev-1-4", - "cand-ev-1-5", - "cand-ev-1-6" - ], - "evidence_ids": [ - "cand-ev-1-1", - "cand-ev-1-2", - "cand-ev-1-3", - "cand-ev-1-4", - "cand-ev-1-5", - "cand-ev-1-6" - ] - } - }, - { - "edge_id": "ged-supports-path-gnd-evidence-bank-settlement-evidence-cand-ev-1--gnd-transition-bank-settlement-hint-document-to-", - "relation_type": "supports_path", - "from_node_id": "gnd-evidence-bank-settlement-evidence-cand-ev-1-1", - "to_node_id": "gnd-transition-bank-settlement-hint-document-to-posting", - "domain": "bank_settlement", - "confidence": "low", - "flags": [ - "actual_link" - ], - "provenance": { - "route": "store_canonical", - "candidate_ids": [ - "cand-ev-1-1", - "cand-ev-1-2", - "cand-ev-1-3", - "cand-ev-1-4", - "cand-ev-1-5", - "cand-ev-1-6" - ], - "evidence_ids": [ - "cand-ev-1-1", - "cand-ev-1-2", - "cand-ev-1-3", - "cand-ev-1-4", - "cand-ev-1-5", - "cand-ev-1-6" - ] - } - } - ], - "unit_bindings": [ - { - "problem_unit_id": "pu-unresolved_settlement_cluster-1", - "graph_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-1", - "relation_path": [ - "domain:bank_settlement", - "state:stale_unlinked_payment->settlement_closed", - "payment_to_settlement", - "wrong_closing_document_type", - "missing:expected_transition_not_observed" - ], - "missing_links": [ - "expected_transition_not_observed" - ], - "conflicting_links": [], - "provenance_evidence_ids": [ - "cand-ev-1-1" - ], - "graph_confidence": "low" - }, - { - "problem_unit_id": "pu-unresolved_settlement_cluster-2", - "graph_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-2", - "relation_path": [ - "domain:bank_settlement", - "state:stale_unlinked_payment->settlement_closed", - "payment_to_settlement", - "wrong_closing_document_type", - "missing:expected_transition_not_observed" - ], - "missing_links": [ - "expected_transition_not_observed" - ], - "conflicting_links": [], - "provenance_evidence_ids": [ - "cand-ev-1-2" - ], - "graph_confidence": "low" - }, - { - "problem_unit_id": "pu-unresolved_settlement_cluster-3", - "graph_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-3", - "relation_path": [ - "domain:bank_settlement", - "state:stale_unlinked_payment->settlement_closed", - "payment_to_settlement", - "wrong_closing_document_type", - "missing:expected_transition_not_observed" - ], - "missing_links": [ - "expected_transition_not_observed" - ], - "conflicting_links": [], - "provenance_evidence_ids": [ - "cand-ev-1-3" - ], - "graph_confidence": "low" - }, - { - "problem_unit_id": "pu-unresolved_settlement_cluster-4", - "graph_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-4", - "relation_path": [ - "domain:bank_settlement", - "state:stale_unlinked_payment->settlement_closed", - "payment_to_settlement", - "wrong_closing_document_type", - "missing:expected_transition_not_observed" - ], - "missing_links": [ - "expected_transition_not_observed" - ], - "conflicting_links": [], - "provenance_evidence_ids": [ - "cand-ev-1-4" - ], - "graph_confidence": "low" - }, - { - "problem_unit_id": "pu-unresolved_settlement_cluster-5", - "graph_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-5", - "relation_path": [ - "domain:bank_settlement", - "state:stale_unlinked_payment->settlement_closed", - "payment_to_settlement", - "wrong_closing_document_type", - "missing:expected_transition_not_observed" - ], - "missing_links": [ - "expected_transition_not_observed" - ], - "conflicting_links": [], - "provenance_evidence_ids": [ - "cand-ev-1-5" - ], - "graph_confidence": "low" - }, - { - "problem_unit_id": "pu-unresolved_settlement_cluster-6", - "graph_node_id": "gnd-problem-unit-bank-settlement-problem-pu-unresolved-settlement-cluster-6", - "relation_path": [ - "domain:bank_settlement", - "state:stale_unlinked_payment->settlement_closed", - "payment_to_settlement", - "wrong_closing_document_type", - "missing:expected_transition_not_observed" - ], - "missing_links": [ - "expected_transition_not_observed" - ], - "conflicting_links": [], - "provenance_evidence_ids": [ - "cand-ev-1-6" - ], - "graph_confidence": "low" - } - ], - "summary": { - "total_units": 6, - "bound_units": 6, - "node_count": 30, - "edge_count": 18, - "missing_links_count": 6, - "conflicting_links_count": 0, - "graph_coverage_grade": "high", - "domain_distribution": { - "bank_settlement": 6 - }, - "relation_distribution": { - "affects_account": 5, - "affects_document": 5, - "belongs_to_domain": 1, - "current_state": 1, - "expected_state": 1, - "has_defect": 1, - "missing_transition": 1, - "supported_by_evidence": 1, - "supports_path": 2 - } - }, - "issues": [] - } - } - ], - "answer_grounding_check": { - "status": "no_grounded_answer", - "route_subject_match": true, - "missing_requirements": [], - "reasons": [ - "Не хватает ключевых ориентиров в вопросе (период, объект или контрагент)." - ], - "why_included_summary": [ - "Показаны последние по дате записи канонического документного слоя.", - "P0 domain purity was not enforced." - ], - "selection_reason_summary": [ - "Отбор по максимальной дате документа в пределах snapshot.", - "Semantic profile subject: cross_entity_breakage.", - "Domain gate source scope not applied." - ] - }, - "dropped_intent_segments": [], - "question_type_class": "unknown", - "company_anchors": { - "contract_numbers": [], - "document_numbers": [], - "dates": [], - "amounts": [], - "accounts": [], - "periods": [], - "document_types": [], - "all": [] - }, - "analysis_context_applied": false, - "analysis_context": null, - "business_scope_raw": [ - "company_specific_accounting" - ], - "business_scope_resolved": [ - "company_specific_accounting" - ], - "company_grounding_applied": false, - "scope_resolution_reason": [ - "settlement_claim_company_scope_recovery" - ], - "company_scope_resolution_reason": [ - "settlement_claim_company_scope_recovery" - ], - "raw_time_anchor": null, - "raw_time_scope": null, - "resolved_time_anchor": null, - "resolved_primary_period": null, - "effective_primary_period": null, - "temporal_guard_input": null, - "temporal_alignment_status": "conflicting", - "temporal_resolution_source": "normalized_time_scope:missing", - "temporal_guard_basis": "none", - "temporal_guard_applied": false, - "temporal_guard_outcome": "passed", - "temporal_guard": { - "raw_time_anchor": null, - "raw_time_scope": null, - "resolved_time_anchor": null, - "resolved_primary_period": null, - "effective_primary_period": null, - "temporal_guard_input": null, - "temporal_alignment_status": "conflicting", - "temporal_resolution_source": "normalized_time_scope:missing", - "temporal_guard_basis": "none", - "temporal_guard_applied": false, - "temporal_guard_outcome": "passed", - "primary_period_window": null, - "allowed_context_window": null, - "controlled_temporal_expansion_enabled": false, - "context_expansion_reasons_allowed": [ - "prehistory", - "carryover", - "post_period_closure", - "long_running_contract_context" - ], - "normalized_anchor_drift_detected": false, - "reason_codes": [ - "missing_resolved_primary_period" - ] - }, - "raw_numeric_tokens": [ - "1" - ], - "classified_numeric_tokens": [], - "rejected_as_non_accounts": [], - "resolved_account_anchors": [], - "domain_polarity_guard": { - "applied": false, - "polarity": "not_applicable", - "outcome": "not_applicable", - "supplier_score": 0, - "customer_score": 0, - "account_scope": [], - "raw_numeric_tokens": [ - "1" - ], - "classified_numeric_tokens": [], - "rejected_as_non_accounts": [], - "resolved_account_anchors": [], - "rejected_problem_units": 0, - "rejected_evidence": 0, - "critical_contradiction": false, - "reason_codes": [] - }, - "claim_anchor_audit": { - "claim_type": "prove_settlement_closure_state", - "settlement_role": "unknown", - "settlement_role_resolution_reason": [ - "settlement_role_resolved_unknown" - ], - "polarity_resolution_status": "unknown", - "required_anchors": [ - "period", - "account_scope", - "counterparty_scope_or_contract", - "closure_signal" - ], - "resolved_anchors": { - "period": [], - "account_scope": [], - "amounts": [], - "contract": [], - "document_numbers": [], - "document_types": [], - "counterparty_scope": [], - "advance_signal": [], - "closure_signal": [], - "vat_signal": [], - "chain_signal": [], - "close_signal": [], - "cost_scope": [], - "rbp_signal": [], - "writeoff_signal": [], - "fixed_asset_signal": [], - "amortization_signal": [], - "expected_fa_set": [], - "actual_fa_set": [] - }, - "missing_anchors": [ - "period", - "account_scope", - "counterparty_scope_or_contract", - "closure_signal" - ], - "claim_anchor_resolution_rate": 0, - "primary_period": null, - "allowed_context_window": null, - "context_expansion_reasons_allowed": [ - "prehistory", - "carryover", - "post_period_closure", - "long_running_contract_context" - ], - "reason_codes": [ - "claim_missing_required_anchors", - "claim_anchor_resolution_low", - "unresolved_supplier_customer_polarity" - ] - }, - "settlement_role": "unknown", - "settlement_role_resolution_reason": [ - "settlement_role_resolved_unknown" - ], - "polarity_resolution_status": "unknown", - "targeted_evidence_acquisition": { - "claim_type": "prove_settlement_closure_state", - "required_checks": [ - "payment_document_found", - "contract_matched", - "settlement_object_matched", - "closing_document_found", - "register_closure_entry_found", - "posting_link_found" - ], - "check_status": { - "payment_document_found": "found", - "contract_matched": "not_found", - "settlement_object_matched": "not_found", - "closing_document_found": "not_found", - "register_closure_entry_found": "not_found", - "posting_link_found": "not_found" - }, - "targeted_item_hits": 6, - "targeted_evidence_hits": 11, - "targeted_evidence_hit_rate": 0.1667, - "targeted_evidence_source_refs": [ - "evidence_source_ref_v1|assistant_derived|document_списаниесрасчетногосчета|c921c08a-c117-11ea-a2e2-00155d012600|2020-06-30t12:00:07", - "evidence_source_ref_v1|assistant_derived|document_списаниесрасчетногосчета|5dfabe1f-c117-11ea-a2e2-00155d012600|2020-06-30t12:00:05", - "evidence_source_ref_v1|assistant_derived|document_списаниесрасчетногосчета|2fdf7d2b-c117-11ea-a2e2-00155d012600|2020-06-30t12:00:04", - "evidence_source_ref_v1|assistant_derived|document_списаниесрасчетногосчета|24f17575-c117-11ea-a2e2-00155d012600|2020-06-30t12:00:03", - "evidence_source_ref_v1|assistant_derived|document_списаниесрасчетногосчета|6f0947d8-bf77-11ea-a2e1-00155d012600|2020-06-30t12:00:02", - "evidence_source_ref_v1|assistant_derived|document_списаниесрасчетногосчета|04f191a0-b46b-11ea-a2db-00155d012600|2020-06-19t12:00:00", - "evidence_source_ref_v1|unknown|document_%D1%81%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5%D1%81%D1%80%D0%B0%D1%81%D1%87%D0%B5%D1%82%D0%BD%D0%BE%D0%B3%D0%BE%D1%81%D1%87%D0%B5%D1%82%D0%B0|c921c08a-c117-11ea-a2e2-00155d012600|2020-06-30t12%3A00%3A07", - "evidence_source_ref_v1|unknown|document_%D1%81%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5%D1%81%D1%80%D0%B0%D1%81%D1%87%D0%B5%D1%82%D0%BD%D0%BE%D0%B3%D0%BE%D1%81%D1%87%D0%B5%D1%82%D0%B0|5dfabe1f-c117-11ea-a2e2-00155d012600|2020-06-30t12%3A00%3A05", - "evidence_source_ref_v1|unknown|document_%D1%81%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5%D1%81%D1%80%D0%B0%D1%81%D1%87%D0%B5%D1%82%D0%BD%D0%BE%D0%B3%D0%BE%D1%81%D1%87%D0%B5%D1%82%D0%B0|2fdf7d2b-c117-11ea-a2e2-00155d012600|2020-06-30t12%3A00%3A04", - "evidence_source_ref_v1|unknown|document_%D1%81%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5%D1%81%D1%80%D0%B0%D1%81%D1%87%D0%B5%D1%82%D0%BD%D0%BE%D0%B3%D0%BE%D1%81%D1%87%D0%B5%D1%82%D0%B0|24f17575-c117-11ea-a2e2-00155d012600|2020-06-30t12%3A00%3A03", - "evidence_source_ref_v1|unknown|document_%D1%81%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B8%D0%B5%D1%81%D1%80%D0%B0%D1%81%D1%87%D0%B5%D1%82%D0%BD%D0%BE%D0%B3%D0%BE%D1%81%D1%87%D0%B5%D1%82%D0%B0|6f0947d8-bf77-11ea-a2e1-00155d012600|2020-06-30t12%3A00%3A02" - ], - "reason_codes": [ - "targeted_evidence_hit_rate_low" - ] - }, - "evidence_admissibility_gate": { - "candidate_evidence_total": 11, - "admissible_evidence_count": 6, - "rejected_evidence_count": 5, - "rejected_item_count": 0, - "reject_breakdown": { - "wrong_period": 0, - "wrong_domain": 0, - "wrong_account_scope": 0, - "weak_source_mapping": 5, - "zero_live_match": 0, - "future_dated_or_out_of_window": 0 - }, - "category_breakdown": { - "hard_evidence": 6, - "supporting_signal": 0, - "inadmissible_noise": 5 - }, - "reason_codes": [ - "inadmissible_evidence_filtered" - ] - }, - "eligibility_time_basis": "none", - "grounded_answer_eligibility_guard": { - "eligible": false, - "temporal_passed": true, - "eligibility_time_basis": "none", - "business_scope_passed": true, - "polarity_passed": true, - "claim_anchors_passed": false, - "claim_anchor_resolution_rate": 0, - "missing_required_anchors": 4, - "admissible_evidence_count": 6, - "critical_contradiction": false, - "outcome": "limited_or_insufficient_evidence", - "grounding_mode": "limited_or_insufficient_evidence", - "reason_codes": [ - "claim_anchor_coverage_insufficient" - ] - }, - "problem_centric_answer_applied": true, - "problem_units_used_count": 4, - "problem_answer_mode": "stage3_lifecycle_aware_v1", - "problem_unit_ids_used": [ - "pu-unresolved_settlement_cluster-1", - "pu-unresolved_settlement_cluster-2", - "pu-unresolved_settlement_cluster-3", - "pu-unresolved_settlement_cluster-4" - ], - "address_llm_predecompose_attempted": true, - "address_llm_predecompose_applied": true, - "address_llm_predecompose_reason": "normalized_fragment_semantic_guard_raw_fragment_preferred", - "address_llm_predecompose_provider": "local", - "address_fallback_rule_hit": null, - "address_tool_gate_decision": "run_address_lane", - "address_tool_gate_reason": "address_signal_detected", - "address_llm_predecompose_contract": { - "schema_version": "address_llm_predecompose_contract_v1", - "source_message": "найди в 1С контрагента СВК", - "canonical_message": "найти контрагента с кодом или названием 'СВК' в системе 1С", - "mode": "unsupported", - "mode_confidence": "low", - "query_shape": "OBJECT_LOOKUP", - "query_shape_confidence": "medium", - "intent": "unknown", - "intent_confidence": "low", - "entities": { - "account": null, - "counterparty": "с кодом или названием 'СВК' в системе 1С", - "contract": null, - "document_type": null, - "document_ref": null, - "organization": null - }, - "period": { - "scope": "unspecified", - "period_from": null, - "period_to": null, - "as_of_date": null, - "has_explicit_period": false - }, - "semantics": { - "scope_kind": "implicit_self_scope", - "anchor_kind": "self_scope", - "anchor_value": null, - "date_scope_kind": "none", - "date_basis_hint": null, - "self_scope_detected": true, - "selected_object_scope_detected": false - }, - "aggregation_profile": "list_lookup" - }, - "address_semantic_extraction_contract": { - "schema_version": "address_semantic_extraction_contract_v1", - "source_message": "найди в 1С контрагента СВК", - "canonical_message": "найти контрагента с кодом или названием 'СВК' в системе 1С", - "canonical_rewrite_applied": true, - "extraction": { - "mode": "unsupported", - "mode_confidence": "low", - "query_shape": "OBJECT_LOOKUP", - "query_shape_confidence": "medium", - "intent": "unknown", - "intent_confidence": "low", - "aggregation_profile": "list_lookup" - }, - "entities": { - "account": null, - "counterparty": "с кодом или названием 'СВК' в системе 1С", - "contract": null, - "document_type": null, - "document_ref": null, - "organization": null - }, - "period": { - "scope": "unspecified", - "period_from": null, - "period_to": null, - "as_of_date": null, - "has_explicit_period": false - }, - "semantics": { - "scope_kind": "implicit_self_scope", - "anchor_kind": "self_scope", - "anchor_value": null, - "date_scope_kind": "none", - "date_basis_hint": null, - "self_scope_detected": true, - "selected_object_scope_detected": false - }, - "guard_hints": { - "source_data_signal_detected": true, - "canonical_data_signal_detected": true, - "data_scope_meta_query_detected": false, - "deep_investigation_signal_detected": false, - "required_anchor_missing": false, - "unsupported_low_confidence": true, - "semantic_drift_suspected": false - }, - "quality": "medium", - "valid": true, - "apply_canonical_recommended": false, - "reason_codes": [ - "unsupported_low_confidence_contract" - ] - }, - "orchestration_contract_v1": { - "schema_version": "assistant_orchestration_contract_v1", - "hard_meta_mode": null, - "provider_execution": { - "schema_version": "assistant_provider_execution_contract_v1", - "policy_owner": "assistantProviderExecutionPolicy", - "provider_mode": "unknown", - "normalized_provider": null, - "use_mock": false, - "base_url_configured": false, - "llm_runtime_unavailable_detected": false, - "living_mode_forced_deep": false, - "living_mode_forced_reason": null, - "reason_codes": [ - "provider_unknown" - ] - }, - "assistant_turn_meaning": { - "schema_version": "assistant_turn_meaning_v1", - "raw_message": "найди в 1С контрагента СВК", - "effective_message": "найти контрагента с кодом или названием 'СВК' в системе 1С", - "normalized_raw_message": "найди в 1с контрагента свк", - "normalized_effective_message": "найти контрагента с кодом или названием 'свк' в системе 1с", - "asked_domain_family": null, - "asked_action_family": null, - "explicit_intent_candidate": null, - "explicit_entity_candidates": [], - "meaning_confidence": "low", - "intent_override_strength": "none", - "carryover_budget": "normal", - "unsupported_but_understood_family": null, - "stale_replay_forbidden": false, - "reason_codes": [] - }, - "address_mode": "address_query", - "address_mode_confidence": "high", - "address_intent": "unknown", - "address_intent_confidence": "low", - "strong_data_signal_detected": true, - "data_retrieval_signal_detected": true, - "semantic_contract_valid": true, - "semantic_apply_canonical_recommended": false, - "semantic_reason_codes": [ - "unsupported_low_confidence_contract" - ], - "semantic_route_arbitration": { - "supported_address_intent_detected": true, - "strict_deep_investigation_bypass_allowed": false, - "semantic_deep_investigation_hint_detected": false, - "semantic_aggregate_shape_detected": false, - "exact_address_intent_protected_from_semantic_deep_hint": false, - "followup_semantic_override_to_deep_allowed": false - }, - "followup_context_detected": false, - "unsupported_address_intent_fallback_to_deep": false, - "deep_analysis_signal_fallback_to_deep": false, - "aggregate_analytics_signal_fallback_to_deep": false, - "deep_session_continuation_fallback_to_deep": false, - "answer_inspection_followup_over_grounded_answer": false, - "final_decision": { - "run_address_lane": true, - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "address_signal_detected", - "living_mode": "address_data", - "living_reason": "address_lane_triggered" - } - }, - "assistant_mcp_discovery_entry_point_v1": { - "schema_version": "assistant_mcp_discovery_runtime_entry_point_v1", - "policy_owner": "assistantMcpDiscoveryRuntimeEntryPoint", - "entry_status": "bridge_executed", - "hot_runtime_wired": false, - "discovery_attempted": true, - "turn_input": { - "schema_version": "assistant_mcp_discovery_turn_input_v1", - "policy_owner": "assistantMcpDiscoveryTurnInputAdapter", - "adapter_status": "ready", - "should_run_discovery": true, - "semantic_data_need": "entity discovery evidence", - "turn_meaning_ref": { - "asked_domain_family": "entity_resolution", - "asked_action_family": "search_business_entity", - "explicit_entity_candidates": [ - "СВК", - "с кодом или названием 'СВК'" - ], - "unsupported_but_understood_family": "entity_resolution", - "stale_replay_forbidden": true - }, - "source_signal": "assistant_turn_meaning", - "reason_codes": [ - "mcp_discovery_entity_resolution_signal_detected", - "mcp_discovery_entity_scope_from_raw_entity_search", - "mcp_discovery_counterparty_from_predecompose", - "mcp_discovery_entity_scope_available" - ] - }, - "bridge": { - "schema_version": "assistant_mcp_discovery_runtime_bridge_v1", - "policy_owner": "assistantMcpDiscoveryRuntimeBridge", - "bridge_status": "answer_draft_ready", - "hot_runtime_wired": false, - "planner": { - "schema_version": "assistant_mcp_discovery_planner_v1", - "policy_owner": "assistantMcpDiscoveryPlanner", - "planner_status": "ready_for_execution", - "semantic_data_need": "entity discovery evidence", - "selected_chain_id": "entity_resolution", - "selected_chain_summary": "Search candidate business entities, resolve the most relevant 1C reference, and prove whether the entity grounding is stable enough for the next probe.", - "proposed_primitives": [ - "search_business_entity", - "resolve_entity_reference", - "probe_coverage" - ], - "required_axes": [ - "counterparty", - "business_entity", - "coverage_target" - ], - "discovery_plan": { - "schema_version": "assistant_mcp_discovery_plan_v1", - "policy_owner": "assistantMcpDiscoveryPolicy", - "plan_status": "allowed", - "semantic_data_need": "entity discovery evidence", - "turn_meaning_ref": { - "asked_domain_family": "entity_resolution", - "asked_action_family": "search_business_entity", - "explicit_entity_candidates": [ - "СВК", - "с кодом или названием 'СВК'" - ], - "unsupported_but_understood_family": "entity_resolution", - "stale_replay_forbidden": true - }, - "allowed_primitives": [ - "search_business_entity", - "resolve_entity_reference", - "probe_coverage" - ], - "rejected_primitives": [], - "required_axes": [ - "counterparty", - "business_entity", - "coverage_target" - ], - "execution_budget": { - "max_probe_count": 3, - "max_rows_per_probe": 100 - }, - "requires_evidence_gate": true, - "answer_may_use_raw_model_claims": false, - "reason_codes": [ - "guarded_mcp_discovery_plan_allowed" - ] - }, - "catalog_review": { - "schema_version": "assistant_mcp_catalog_plan_review_v1", - "policy_owner": "assistantMcpCatalogIndex", - "review_status": "catalog_compatible", - "reviewed_primitives": [ - "search_business_entity", - "resolve_entity_reference", - "probe_coverage" - ], - "missing_axes_by_primitive": {}, - "unknown_primitives": [], - "evidence_floors": { - "search_business_entity": "rows_received", - "resolve_entity_reference": "rows_matched", - "probe_coverage": "source_summary" - }, - "reason_codes": [ - "catalog_plan_compatible" - ] - }, - "reason_codes": [ - "planner_selected_entity_resolution_recipe", - "planner_ready_for_guarded_mcp_execution" - ] - }, - "pilot": { - "schema_version": "assistant_mcp_discovery_pilot_executor_v1", - "policy_owner": "assistantMcpDiscoveryPilotExecutor", - "pilot_status": "executed", - "pilot_scope": "entity_resolution_search_v1", - "dry_run": { - "schema_version": "assistant_mcp_discovery_runtime_dry_run_v1", - "policy_owner": "assistantMcpDiscoveryRuntimeAdapter", - "adapter_status": "dry_run_ready", - "planner_status": "ready_for_execution", - "mcp_execution_performed": false, - "execution_steps": [ - { - "sequence": 1, - "primitive_id": "search_business_entity", - "step_status": "ready", - "purpose": "Find candidate 1C business entities by user wording before a fact query is executed.", - "provided_axes": [ - "counterparty", - "business_entity", - "coverage_target" - ], - "required_axis_options": [ - [ - "business_entity" - ], - [ - "counterparty" - ], - [ - "organization" - ], - [ - "contract" - ], - [ - "item" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "period", - "document", - "account" - ], - "expected_fact_kinds": [ - "entity_candidates", - "entity_ambiguity" - ], - "evidence_floor": "rows_received", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_rows_or_reports_empty_source" - }, - { - "sequence": 2, - "primitive_id": "resolve_entity_reference", - "step_status": "ready", - "purpose": "Resolve a user-visible entity name to a concrete 1C reference candidate.", - "provided_axes": [ - "counterparty", - "business_entity", - "coverage_target" - ], - "required_axis_options": [ - [ - "business_entity" - ], - [ - "counterparty" - ], - [ - "organization" - ], - [ - "contract" - ], - [ - "item" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "period", - "inn", - "document" - ], - "expected_fact_kinds": [ - "resolved_entity_ref", - "entity_conflict" - ], - "evidence_floor": "rows_matched", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_matched_rows_or_reports_no_match" - }, - { - "sequence": 3, - "primitive_id": "probe_coverage", - "step_status": "ready", - "purpose": "Check whether the selected MCP/schema route can prove the requested fact or only support a bounded inference.", - "provided_axes": [ - "counterparty", - "business_entity", - "coverage_target" - ], - "required_axis_options": [ - [ - "coverage_target" - ], - [ - "domain_family" - ], - [ - "primitive_id" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "period", - "organization", - "counterparty", - "document", - "account" - ], - "expected_fact_kinds": [ - "coverage_status", - "known_gaps" - ], - "evidence_floor": "source_summary", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_source_summary_or_limitation" - } - ], - "execution_budget": { - "max_probe_count": 3, - "max_rows_per_probe": 100 - }, - "evidence_gate": { - "required": true, - "expected_inputs": [ - "probe_results", - "confirmed_facts", - "inferred_facts", - "unknown_facts", - "source_rows_summary", - "query_limitations" - ], - "answer_may_use_raw_model_claims": false - }, - "user_facing_fallback": null, - "reason_codes": [ - "planner_selected_entity_resolution_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution" - ] - }, - "mcp_execution_performed": true, - "executed_primitives": [ - "search_business_entity" - ], - "skipped_primitives": [ - "resolve_entity_reference", - "probe_coverage" - ], - "probe_results": [ - { - "primitive_id": "search_business_entity", - "status": "ok", - "rows_received": 139, - "rows_matched": 139, - "limitation": null - }, - { - "primitive_id": "resolve_entity_reference", - "status": "skipped", - "rows_received": 0, - "rows_matched": 0, - "limitation": "pilot_only_executes_search_business_entity" - }, - { - "primitive_id": "probe_coverage", - "status": "skipped", - "rows_received": 0, - "rows_matched": 0, - "limitation": "pilot_only_executes_search_business_entity" - } - ], - "evidence": { - "schema_version": "assistant_mcp_discovery_evidence_v1", - "policy_owner": "assistantMcpDiscoveryPolicy", - "evidence_status": "confirmed", - "coverage_status": "full", - "answer_permission": "confirmed_answer", - "confirmed_facts": [ - "В проверенном каталожном срезе 1С найден наиболее вероятный контрагент: Группа СВК" - ], - "inferred_facts": [ - "Пока проверено только заземление сущности по каталогу 1С; документы, движения и денежные показатели еще не проверялись", - "Контрагент выбран как ближайшее подтвержденное совпадение имени в проверенном каталоге 1С" - ], - "unknown_facts": [ - "Документы, движения и денежные показатели по этому контрагенту еще не проверялись; пока был только каталожный поиск" - ], - "source_rows_summary": "139 MCP catalog rows fetched for entity search", - "query_plan": { - "schema_version": "assistant_mcp_discovery_plan_v1", - "policy_owner": "assistantMcpDiscoveryPolicy", - "plan_status": "allowed", - "semantic_data_need": "entity discovery evidence", - "turn_meaning_ref": { - "asked_domain_family": "entity_resolution", - "asked_action_family": "search_business_entity", - "explicit_entity_candidates": [ - "СВК", - "с кодом или названием 'СВК'" - ], - "unsupported_but_understood_family": "entity_resolution", - "stale_replay_forbidden": true - }, - "allowed_primitives": [ - "search_business_entity", - "resolve_entity_reference", - "probe_coverage" - ], - "rejected_primitives": [], - "required_axes": [ - "counterparty", - "business_entity", - "coverage_target" - ], - "execution_budget": { - "max_probe_count": 3, - "max_rows_per_probe": 100 - }, - "requires_evidence_gate": true, - "answer_may_use_raw_model_claims": false, - "reason_codes": [ - "guarded_mcp_discovery_plan_allowed" - ] - }, - "query_limitations": [ - "pilot_only_executes_search_business_entity" - ], - "confidence_reason": "confirmed_facts_backed_by_allowed_mcp_probe_rows", - "recommended_next_probe": "resolve_entity_reference", - "reason_codes": [ - "guarded_mcp_discovery_plan_allowed", - "confirmed_facts_with_allowed_mcp_evidence" - ] - }, - "source_rows_summary": "139 MCP catalog rows fetched for entity search", - "derived_metadata_surface": null, - "derived_entity_resolution": { - "requested_entity": "СВК", - "resolution_status": "resolved", - "resolved_entity": "Группа СВК", - "resolved_reference": "{_objectRef: true", - "matched_rows": 139, - "checked_candidates": [ - "Правовой Консультант, ООО", - "Мебельная ф-ка №1", - "Электронная торговая площадка ГПБ, ООО", - "Жек В.Д.", - "Комус", - "ИП НЕСТЕРЕНКО", - "ИП Оганесян Н.В.", - "РАСХОДНИК,", - "ГБУ МФЦ города Москвы", - "Банк ГПБ (АО) г. Москва", - "Альфа, ООО", - "КП Сервис, ООО" - ], - "ambiguity_candidates": [], - "confidence": "low", - "inference_basis": "catalog_counterparty_search_rows" - }, - "derived_activity_period": null, - "derived_value_flow": null, - "derived_bidirectional_value_flow": null, - "query_limitations": [], - "reason_codes": [ - "planner_selected_entity_resolution_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_search_business_entity_mcp_executed", - "pilot_derived_entity_resolution_from_catalog_rows" - ] - }, - "answer_draft": { - "schema_version": "assistant_mcp_discovery_answer_draft_v1", - "policy_owner": "assistantMcpDiscoveryAnswerAdapter", - "answer_mode": "confirmed_with_bounded_inference", - "headline": "По каталогу 1С найден вероятный контрагент; это заземление сущности для следующего шага, а не еще бизнес-ответ по данным.", - "confirmed_lines": [ - "В проверенном каталожном срезе 1С найден наиболее вероятный контрагент: Группа СВК", - "В текущем каталожном срезе 1С по запросу \"СВК\" найден контрагент \"Группа СВК\". Совпадение выглядит вероятным, но его лучше считать рабочим заземлением сущности." - ], - "inference_lines": [ - "Сейчас подтверждено только заземление сущности по каталогу 1С; документы, движения и денежные показатели по ней еще не проверялись." - ], - "unknown_lines": [ - "Документы, движения и денежные показатели по этому контрагенту еще не проверялись; пока был только каталожный поиск" - ], - "limitation_lines": [], - "next_step_line": "Теперь могу продолжить уже по найденному контрагенту и искать документы, движения или денежный поток.", - "internal_mechanics_allowed": false, - "must_not_claim": [ - "Do not expose MCP primitive names, query text, debug ids, or internal execution mechanics in the user answer.", - "Do not claim rows were checked when mcp_execution_performed=false.", - "Do not present catalog grounding as confirmed business activity, turnover, or document evidence.", - "Do not claim legal identity uniqueness when several catalog candidates are still plausible.", - "Do not imply that the resolved entity has already been used in a downstream data probe." - ], - "reason_codes": [ - "planner_selected_entity_resolution_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_search_business_entity_mcp_executed", - "pilot_derived_entity_resolution_from_catalog_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference" - ] - }, - "user_facing_response_allowed": true, - "business_fact_answer_allowed": true, - "requires_user_clarification": false, - "reason_codes": [ - "planner_selected_entity_resolution_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_search_business_entity_mcp_executed", - "pilot_derived_entity_resolution_from_catalog_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer" - ] - }, - "reason_codes": [ - "mcp_discovery_entity_resolution_signal_detected", - "mcp_discovery_entity_scope_from_raw_entity_search", - "mcp_discovery_counterparty_from_predecompose", - "mcp_discovery_entity_scope_available", - "planner_selected_entity_resolution_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_search_business_entity_mcp_executed", - "pilot_derived_entity_resolution_from_catalog_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer" - ] - }, - "assistant_outcome_class_v1": "PARTIALLY_ANSWERED", - "assistant_orchestration_contracts_v1": { - "query_frame": { - "schema_version": "assistant_query_frame_v1", - "original_user_question": "найди в 1С контрагента СВК", - "normalized_question": "найди в 1С контрагента СВК", - "route_summary_mode": "deterministic_v2", - "fragments_total": 1, - "dropped_intent_segments": [], - "analysis_context": null - }, - "execution_plan": { - "schema_version": "assistant_execution_plan_v1", - "steps": [ - { - "fragment_id": "1", - "route": "store_canonical", - "should_execute": true, - "requirement_ids": [ - "R1" - ], - "no_route_reason": null, - "clarification_reason": null - } - ], - "requirements_total": 1 - }, - "evidence_bundle": { - "schema_version": "assistant_evidence_bundle_v1", - "retrieval_calls_total": 1, - "retrieval_results_total": 1, - "retrieval_status_breakdown": { - "ok": 1, - "partial": 0, - "empty": 0, - "error": 0 - }, - "evidence_total": 6, - "source_refs_total": 6, - "limitation_total": 2, - "error_total": 0 - }, - "coverage": { - "schema_version": "assistant_coverage_contract_v1", - "coverage_report": { - "requirements_total": 1, - "requirements_covered": 1, - "requirements_uncovered": [], - "requirements_partially_covered": [], - "clarification_needed_for": [], - "out_of_scope_requirements": [] - }, - "grounding": { - "status": "no_grounded_answer", - "route_subject_match": true, - "missing_requirements": [], - "reasons": [ - "Не хватает ключевых ориентиров в вопросе (период, объект или контрагент)." - ], - "why_included_summary": [ - "Показаны последние по дате записи канонического документного слоя.", - "P0 domain purity was not enforced." - ], - "selection_reason_summary": [ - "Отбор по максимальной дате документа в пределах snapshot.", - "Semantic profile subject: cross_entity_breakage.", - "Domain gate source scope not applied." - ] - }, - "outcome_class": "PARTIALLY_ANSWERED" - } - }, - "answer_contract_stage4_v1": { - "schema_version": "stage4_answer_contract_audit_v1", - "stage4_blocks_expected": [ - "Коротко", - "Что именно проверено", - "Что найдено", - "Что пока не доказано", - "Что проверить первым/Что могу сделать сейчас" - ], - "stage4_blocks_present": [ - "Коротко", - "Что именно проверено", - "Что найдено", - "Что пока не доказано", - "Что проверить первым/Что могу сделать сейчас" - ], - "stage4_blocks_missing": [], - "legacy_blocks_present": [], - "is_stage4_shape": true - }, - "answer_structure_v11": { - "schema_version": "answer_structure_v1_1", - "answer_summary": "Выявлены связанные проблемные контуры: подтверждены разрывы и конфликты между участками цепочки (6 из 6 узлов).", - "direct_answer": "Текущая стадия: stale_unlinked_payment; ожидаемая стадия: settlement_closed. Объект завис во времени и не дошел до ожидаемого перехода; подтверждение пока частичное, вывод ограничен.", - "mechanism_block": { - "status": "limited", - "mechanism_notes": [ - "Mechanism candidate: document_to_posting." - ], - "limitation_reason_codes": [] - }, - "evidence_block": { - "evidence_ids": [ - "claim-ev-jGuVsEk8Ys", - "claim-ev-2GMHlE3lTO", - "claim-ev-h_rDF_6woq", - "claim-ev-89OYZKE83-", - "claim-ev-ijBOnpMIHN", - "claim-ev-g8JcnDfT8D" - ], - "source_refs": [ - "evidence_source_ref_v1|assistant_derived|document_списаниесрасчетногосчета|c921c08a-c117-11ea-a2e2-00155d012600|2020-06-30t12:00:07", - "evidence_source_ref_v1|assistant_derived|document_списаниесрасчетногосчета|5dfabe1f-c117-11ea-a2e2-00155d012600|2020-06-30t12:00:05", - "evidence_source_ref_v1|assistant_derived|document_списаниесрасчетногосчета|2fdf7d2b-c117-11ea-a2e2-00155d012600|2020-06-30t12:00:04", - "evidence_source_ref_v1|assistant_derived|document_списаниесрасчетногосчета|24f17575-c117-11ea-a2e2-00155d012600|2020-06-30t12:00:03", - "evidence_source_ref_v1|assistant_derived|document_списаниесрасчетногосчета|6f0947d8-bf77-11ea-a2e1-00155d012600|2020-06-30t12:00:02", - "evidence_source_ref_v1|assistant_derived|document_списаниесрасчетногосчета|04f191a0-b46b-11ea-a2db-00155d012600|2020-06-19t12:00:00" - ], - "mechanism_notes": [ - "Mechanism candidate: document_to_posting." - ], - "coverage_note": "coverage_full_or_near_full", - "claim_evidence_links": [ - { - "claim_ref": "claim:prove_settlement_closure_state", - "evidence_ids": [ - "claim-ev-jGuVsEk8Ys", - "claim-ev-2GMHlE3lTO", - "claim-ev-h_rDF_6woq", - "claim-ev-89OYZKE83-", - "claim-ev-ijBOnpMIHN", - "claim-ev-g8JcnDfT8D" - ] - } - ] - }, - "uncertainty_block": { - "open_uncertainties": [ - "missing_anchor:period" - ], - "limitations": [ - "Problem units remain weak-confidence; conclusions are intentionally limited.", - "Период в запросе не указан; вывод ограничен и требует проверки в конкретном периоде.", - "Это read-only snapshot, а не онлайн-состояние 1С.", - "Не хватает ключевых ориентиров в вопросе (период, объект или контрагент)." - ] - }, - "next_step_block": { - "recommended_actions": [ - "Сверьте хвосты по расчетам: закрылся ли документ оплаты корректным закрывающим документом.", - "Проверьте, почему объект завис: ожидаемый переход не должен оставаться в активной стадии.", - "Уточните период проверки (например, июль 2020), чтобы подтвердить незавершенное списание без лишнего шума." - ], - "clarification_questions": [] - } - }, - "investigation_state_snapshot": { - "schema_version": "investigation_state_v1", - "session_id": "asst-A0MzXXn0RG", - "status": "active", - "turn_index": 1, - "updated_at": "2026-04-22T12:47:10.289Z", - "question_id": "msg-3imrrOzInl", - "question_scope_id": "d:store_canonical|s:найди в 1с контрагента свк", - "scope_origin": "route_derived", - "focus": { - "domain": "store_canonical", - "period": null, - "primary_accounts": [], - "active_query_subject": "найди в 1С контрагента СВК" - }, - "narrowing_status": "not_needed", - "evidence_refs": [ - "claim-ev-jGuVsEk8Ys", - "claim-ev-2GMHlE3lTO", - "claim-ev-h_rDF_6woq", - "claim-ev-89OYZKE83-", - "claim-ev-ijBOnpMIHN", - "claim-ev-g8JcnDfT8D" - ], - "open_uncertainties": [ - "Это read-only snapshot, а не онлайн-состояние 1С.", - "Domain purity guardrail не применялся." - ], - "last_answer_mode": "partial_coverage", - "followup_context": { - "previous_question_id": null, - "last_user_message": "найди в 1С контрагента СВК", - "referenced_requirement_ids": [ - "R1" - ], - "active_domain": "store_canonical", - "active_requirement_ids": [ - "R1" - ], - "uncovered_requirement_ids": [], - "last_problem_unit_id": "pu-unresolved_settlement_cluster-1", - "settlement_next_actions": [], - "evidence_summary": [ - "R1:ok:store_canonical" - ], - "question_scope_id": "d:store_canonical|s:найди в 1с контрагента свк", - "scope_origin": "route_derived" - }, - "query_mode_hint": "direct_answer", - "problem_unit_state": { - "active_problem_units": [ - "pu-unresolved_settlement_cluster-1", - "pu-unresolved_settlement_cluster-2", - "pu-unresolved_settlement_cluster-3", - "pu-unresolved_settlement_cluster-4", - "pu-unresolved_settlement_cluster-5", - "pu-unresolved_settlement_cluster-6" - ], - "resolved_problem_units": [], - "problem_unit_backlinks": [ - { - "problem_unit_id": "pu-unresolved_settlement_cluster-1", - "entity_backlinks": [ - { - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "c921c08a-c117-11ea-a2e2-00155d012600" - } - ] - }, - { - "problem_unit_id": "pu-unresolved_settlement_cluster-2", - "entity_backlinks": [ - { - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "5dfabe1f-c117-11ea-a2e2-00155d012600" - } - ] - }, - { - "problem_unit_id": "pu-unresolved_settlement_cluster-3", - "entity_backlinks": [ - { - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "2fdf7d2b-c117-11ea-a2e2-00155d012600" - } - ] - }, - { - "problem_unit_id": "pu-unresolved_settlement_cluster-4", - "entity_backlinks": [ - { - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "24f17575-c117-11ea-a2e2-00155d012600" - } - ] - }, - { - "problem_unit_id": "pu-unresolved_settlement_cluster-5", - "entity_backlinks": [ - { - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "6f0947d8-bf77-11ea-a2e1-00155d012600" - } - ] - }, - { - "problem_unit_id": "pu-unresolved_settlement_cluster-6", - "entity_backlinks": [ - { - "entity": "Document_ПоступлениеТоваровУслуг", - "id": "d57e16a8-b090-11ea-a2db-00155d012600" - } - ] - } - ], - "focus_problem_types": [ - "unresolved_settlement_cluster" - ] - } - }, - "normalized": { - "schema_version": "normalized_query_v2_0_2", - "user_message_raw": "найди в 1С контрагента СВК", - "message_in_scope": true, - "scope_confidence": "high", - "contains_multiple_tasks": false, - "fragments": [ - { - "fragment_id": "1", - "raw_fragment_text": "найди в 1С контрагента СВК", - "normalized_fragment_text": "Поиск контрагента с наименованием 'СВК' в системе 1С", - "domain_relevance": "in_scope", - "business_scope": "company_specific_accounting", - "entity_hints": [ - "контрагент" - ], - "account_hints": [], - "document_hints": [], - "register_hints": [], - "time_scope": { - "type": "missing", - "value": null, - "confidence": "low" - }, - "flags": { - "has_multi_entity_scope": false, - "asks_for_chain_explanation": false, - "asks_for_ranking_or_top": false, - "asks_for_period_summary": false, - "asks_for_rule_check": false, - "asks_for_anomaly_scan": false, - "asks_for_exact_object_trace": false, - "asks_for_evidence": false, - "mentions_period_close_context": false - }, - "semantic_hints": { - "scope_target_kind": "none", - "scope_target_text": null, - "date_scope_kind": "missing", - "self_scope_detected": false, - "selected_object_scope_detected": false - }, - "candidate_labels": [ - "simple_factual" - ], - "confidence": "high", - "execution_readiness": "executable", - "clarification_reason": null, - "soft_assumption_used": [], - "route_status": "routed", - "no_route_reason": null - } - ], - "discarded_fragments": [], - "global_notes": { - "needs_clarification": false, - "clarification_reason": null - } - }, - "assistant_runtime_contract_v1": { - "schema_version": "assistant_runtime_contracts_v1", - "transition_contract_id": null, - "transition_contract_title": null, - "transition_contract_reason": [ - "transition_contract_not_resolved" - ], - "capability_contract_id": null, - "capability_contract_reason": [ - "capability_contract_not_resolved" - ], - "truth_gate_contract_status": "limited_temporal_or_contextual", - "carryover_eligibility": "none" - }, - "transition_contract_id": null, - "capability_contract_id": null, - "truth_gate_contract_status": "limited_temporal_or_contextual", - "assistant_truth_answer_policy_v1": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "truth_gate": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "partial", - "evidence_grade": "weak", - "grounding_status": "no_grounded_answer", - "truth_mode": "limited", - "carryover_eligibility": "none", - "reason_codes": [ - "truth_gate_limited_temporal_or_contextual", - "truth_mode_limited", - "transition_contract_not_resolved", - "capability_contract_not_resolved", - "не_хватает_ключевых_ориентиров_в_вопросе_период_объект_или_контрагент_." - ], - "source_truth_gate_status": "limited_temporal_or_contextual", - "blocked_or_limited_explanation": "temporal_or_contextual_limit" - }, - "answer_shape": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "limited_with_reason", - "reply_type": "deep_analysis", - "capability_contract_id": null, - "transition_contract_id": null, - "may_state_confirmed_facts": true, - "must_include_limitation": true, - "may_power_followup": false, - "required_sections": [ - "direct_answer", - "evidence_window", - "limitations" - ], - "downgrade_only": true - } - }, - "coverage_gate_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "partial", - "evidence_grade": "weak", - "grounding_status": "no_grounded_answer", - "truth_mode": "limited", - "carryover_eligibility": "none", - "reason_codes": [ - "truth_gate_limited_temporal_or_contextual", - "truth_mode_limited", - "transition_contract_not_resolved", - "capability_contract_not_resolved", - "не_хватает_ключевых_ориентиров_в_вопросе_период_объект_или_контрагент_." - ], - "source_truth_gate_status": "limited_temporal_or_contextual", - "blocked_or_limited_explanation": "temporal_or_contextual_limit" - }, - "answer_shape_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "limited_with_reason", - "reply_type": "deep_analysis", - "capability_contract_id": null, - "transition_contract_id": null, - "may_state_confirmed_facts": true, - "must_include_limitation": true, - "may_power_followup": false, - "required_sections": [ - "direct_answer", - "evidence_window", - "limitations" - ], - "downgrade_only": true - }, - "truth_mode": "limited", - "carryover_eligibility": "none", - "answer_shape": "limited_with_reason", - "assistant_state_transition_v1": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": null, - "transition_title": null, - "application_status": "unresolved", - "declared_carryover_depth": null, - "truth_gate_carryover_depth": "none", - "effective_carryover_depth": "none", - "required_prior_state": [], - "expected_answer_mode": null, - "state_mutations": [], - "forbidden_carryover": [ - "implicit_followup_reuse" - ], - "state_actions": { - "living_mode_state": "none", - "root_frame_state": "none", - "selected_object_frame_state": "none", - "meta_frame_state": "none", - "clarification_state": "none", - "coverage_gate_state": "none", - "answer_context_state": "none" - }, - "coverage_gate_state": { - "coverage_status": "partial", - "evidence_grade": "weak", - "grounding_status": "no_grounded_answer", - "truth_mode": "limited", - "carryover_eligibility": "none", - "reason_codes": [ - "truth_gate_limited_temporal_or_contextual", - "truth_mode_limited", - "transition_contract_not_resolved", - "capability_contract_not_resolved", - "не_хватает_ключевых_ориентиров_в_вопросе_период_объект_или_контрагент_." - ] - }, - "reason_codes": [ - "transition_status_unresolved", - "transition_unresolved", - "transition_contract_not_resolved", - "capability_contract_not_resolved", - "truth_gate_limited_temporal_or_contextual", - "truth_mode_limited", - "не_хватает_ключевых_ориентиров_в_вопросе_период_объект_или_контрагент_." - ] - }, - "state_transition_contract": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": null, - "transition_title": null, - "application_status": "unresolved", - "declared_carryover_depth": null, - "truth_gate_carryover_depth": "none", - "effective_carryover_depth": "none", - "required_prior_state": [], - "expected_answer_mode": null, - "state_mutations": [], - "forbidden_carryover": [ - "implicit_followup_reuse" - ], - "state_actions": { - "living_mode_state": "none", - "root_frame_state": "none", - "selected_object_frame_state": "none", - "meta_frame_state": "none", - "clarification_state": "none", - "coverage_gate_state": "none", - "answer_context_state": "none" - }, - "coverage_gate_state": { - "coverage_status": "partial", - "evidence_grade": "weak", - "grounding_status": "no_grounded_answer", - "truth_mode": "limited", - "carryover_eligibility": "none", - "reason_codes": [ - "truth_gate_limited_temporal_or_contextual", - "truth_mode_limited", - "transition_contract_not_resolved", - "capability_contract_not_resolved", - "не_хватает_ключевых_ориентиров_в_вопросе_период_объект_или_контрагент_." - ] - }, - "reason_codes": [ - "transition_status_unresolved", - "transition_unresolved", - "transition_contract_not_resolved", - "capability_contract_not_resolved", - "truth_gate_limited_temporal_or_contextual", - "truth_mode_limited", - "не_хватает_ключевых_ориентиров_в_вопросе_период_объект_или_контрагент_." - ] - }, - "state_transition_id": null, - "state_transition_status": "unresolved", - "effective_carryover_depth": "none", - "assistant_capability_binding_v1": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": null, - "capability_contract_id": null, - "binding_status": "not_applicable", - "binding_action": "observe_only", - "runtime_lane_expected": null, - "runtime_lane_observed": "unknown", - "execution_adapter": null, - "transition_id": null, - "transition_allowed": false, - "required_anchors": [], - "provided_anchors": [], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": null, - "answer_object_shape": null, - "truth_gate_behavior": null, - "truth_fallback_allowed": null, - "answer_shape_compatible": false, - "violations": [], - "reason_codes": [ - "binding_status_not_applicable", - "binding_action_observe_only", - "transition_status_unresolved", - "transition_unresolved", - "transition_contract_not_resolved", - "capability_contract_not_resolved", - "truth_gate_limited_temporal_or_contextual", - "truth_mode_limited", - "не_хватает_ключевых_ориентиров_в_вопросе_период_объект_или_контрагент_." - ] - }, - "capability_binding_contract": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": null, - "capability_contract_id": null, - "binding_status": "not_applicable", - "binding_action": "observe_only", - "runtime_lane_expected": null, - "runtime_lane_observed": "unknown", - "execution_adapter": null, - "transition_id": null, - "transition_allowed": false, - "required_anchors": [], - "provided_anchors": [], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": null, - "answer_object_shape": null, - "truth_gate_behavior": null, - "truth_fallback_allowed": null, - "answer_shape_compatible": false, - "violations": [], - "reason_codes": [ - "binding_status_not_applicable", - "binding_action_observe_only", - "transition_status_unresolved", - "transition_unresolved", - "transition_contract_not_resolved", - "capability_contract_not_resolved", - "truth_gate_limited_temporal_or_contextual", - "truth_mode_limited", - "не_хватает_ключевых_ориентиров_в_вопросе_период_объект_или_контрагент_." - ] - }, - "capability_binding_status": "not_applicable", - "capability_binding_action": "observe_only", - "capability_binding_violations": [], - "mcp_discovery_entry_status": "bridge_executed", - "mcp_discovery_attempted": true, - "mcp_discovery_hot_runtime_wired": false, - "mcp_discovery_bridge_status": "answer_draft_ready", - "mcp_discovery_answer_mode": "confirmed_with_bounded_inference", - "mcp_discovery_business_fact_answer_allowed": true, - "mcp_discovery_user_facing_response_allowed": true, - "mcp_discovery_requires_clarification": false, - "mcp_discovery_response_policy_v1": { - "schema_version": "assistant_mcp_discovery_response_policy_v1", - "policy_owner": "assistantMcpDiscoveryResponsePolicy", - "decision": "apply_candidate", - "applied": true, - "reply_text": "Коротко: По каталогу 1С найден вероятный контрагент; это заземление сущности для следующего шага, а не еще бизнес-ответ по данным.\n\nЧто подтверждено:\n- В проверенном каталожном срезе 1С найден наиболее вероятный контрагент: Группа СВК\n- В текущем каталожном срезе 1С по запросу \"СВК\" найден контрагент \"Группа СВК\". Совпадение выглядит вероятным, но его лучше считать рабочим заземлением сущности.\n\nЧто можно сказать только как вывод:\n- Сейчас подтверждено только заземление сущности по каталогу 1С; документы, движения и денежные показатели по ней еще не проверялись.\n\nЧто не подтверждено:\n- Документы, движения и денежные показатели по этому контрагенту еще не проверялись; пока был только каталожный поиск\n\nСледующий шаг: Теперь могу продолжить уже по найденному контрагенту и искать документы, движения или денежный поток.", - "reply_source": "mcp_discovery_response_candidate_guarded", - "candidate": { - "schema_version": "assistant_mcp_discovery_response_candidate_v1", - "policy_owner": "assistantMcpDiscoveryResponseCandidate", - "candidate_status": "ready_for_guarded_use", - "hot_runtime_wired": false, - "reply_type": "partial_coverage", - "reply_text": "Коротко: По каталогу 1С найден вероятный контрагент; это заземление сущности для следующего шага, а не еще бизнес-ответ по данным.\n\nЧто подтверждено:\n- В проверенном каталожном срезе 1С найден наиболее вероятный контрагент: Группа СВК\n- В текущем каталожном срезе 1С по запросу \"СВК\" найден контрагент \"Группа СВК\". Совпадение выглядит вероятным, но его лучше считать рабочим заземлением сущности.\n\nЧто можно сказать только как вывод:\n- Сейчас подтверждено только заземление сущности по каталогу 1С; документы, движения и денежные показатели по ней еще не проверялись.\n\nЧто не подтверждено:\n- Документы, движения и денежные показатели по этому контрагенту еще не проверялись; пока был только каталожный поиск\n\nСледующий шаг: Теперь могу продолжить уже по найденному контрагенту и искать документы, движения или денежный поток.", - "eligible_for_future_hot_runtime": true, - "must_keep_internal_mechanics_hidden": true, - "reason_codes": [ - "mcp_discovery_entity_resolution_signal_detected", - "mcp_discovery_entity_scope_from_raw_entity_search", - "mcp_discovery_counterparty_from_predecompose", - "mcp_discovery_entity_scope_available", - "planner_selected_entity_resolution_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_search_business_entity_mcp_executed", - "pilot_derived_entity_resolution_from_catalog_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer", - "mcp_discovery_response_candidate_ready_for_guarded_use", - "mcp_discovery_response_candidate_not_hot_wired" - ] - }, - "reason_codes": [ - "mcp_discovery_entity_resolution_signal_detected", - "mcp_discovery_entity_scope_from_raw_entity_search", - "mcp_discovery_counterparty_from_predecompose", - "mcp_discovery_entity_scope_available", - "planner_selected_entity_resolution_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_search_business_entity_mcp_executed", - "pilot_derived_entity_resolution_from_catalog_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer", - "mcp_discovery_response_candidate_ready_for_guarded_use", - "mcp_discovery_response_candidate_not_hot_wired", - "mcp_discovery_response_policy_not_unsupported_boundary", - "mcp_discovery_response_policy_not_discovery_ready_chat_candidate", - "mcp_discovery_response_policy_not_discovery_ready_address_candidate", - "mcp_discovery_response_policy_candidate_applied" - ] - }, - "mcp_discovery_response_candidate_v1": { - "schema_version": "assistant_mcp_discovery_response_candidate_v1", - "policy_owner": "assistantMcpDiscoveryResponseCandidate", - "candidate_status": "ready_for_guarded_use", - "hot_runtime_wired": false, - "reply_type": "partial_coverage", - "reply_text": "Коротко: По каталогу 1С найден вероятный контрагент; это заземление сущности для следующего шага, а не еще бизнес-ответ по данным.\n\nЧто подтверждено:\n- В проверенном каталожном срезе 1С найден наиболее вероятный контрагент: Группа СВК\n- В текущем каталожном срезе 1С по запросу \"СВК\" найден контрагент \"Группа СВК\". Совпадение выглядит вероятным, но его лучше считать рабочим заземлением сущности.\n\nЧто можно сказать только как вывод:\n- Сейчас подтверждено только заземление сущности по каталогу 1С; документы, движения и денежные показатели по ней еще не проверялись.\n\nЧто не подтверждено:\n- Документы, движения и денежные показатели по этому контрагенту еще не проверялись; пока был только каталожный поиск\n\nСледующий шаг: Теперь могу продолжить уже по найденному контрагенту и искать документы, движения или денежный поток.", - "eligible_for_future_hot_runtime": true, - "must_keep_internal_mechanics_hidden": true, - "reason_codes": [ - "mcp_discovery_entity_resolution_signal_detected", - "mcp_discovery_entity_scope_from_raw_entity_search", - "mcp_discovery_counterparty_from_predecompose", - "mcp_discovery_entity_scope_available", - "planner_selected_entity_resolution_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_search_business_entity_mcp_executed", - "pilot_derived_entity_resolution_from_catalog_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer", - "mcp_discovery_response_candidate_ready_for_guarded_use", - "mcp_discovery_response_candidate_not_hot_wired" - ] - }, - "mcp_discovery_response_applied": true - } - }, - { - "message_id": "msg-zntCtVk9IQ", - "session_id": "asst-A0MzXXn0RG", - "role": "user", - "text": "сколько получили по нему за 2020 год", - "reply_type": null, - "created_at": "2026-04-22T12:47:11.529Z", - "trace_id": null, - "debug": null - }, - { - "message_id": "msg-4oeG-KXe1P", - "session_id": "asst-A0MzXXn0RG", - "role": "assistant", - "text": "Коротко: По данным 1С найдены строки входящих денежных поступлений; сумму можно называть только в рамках проверенного периода и найденных строк.\n\nЧто подтверждено:\n- В 1С найдены строки входящих денежных поступлений по контрагенту Группа СВК.\n- По найденным строкам входящих денежных поступлений в 1С по контрагенту Группа СВК за период 2020 сумма входящих денежных поступлений составляет 47 628 853,03 руб. Учтено строк с суммой: 44 из 44. Первая найденная дата движения: 2020-01-09; последняя: 2020-12-30. Это расчет по найденным строкам 1С, а не подтверждение полного объема поступлений вне проверенного окна.\n\nЧто можно сказать только как вывод:\n- Сумма входящих поступлений рассчитана только по подтвержденным строкам поступлений в 1С.\n\nЧто не подтверждено:\n- Полный объем входящих поступлений вне проверенного периода этим поиском не подтвержден.", - "reply_type": "partial_coverage", - "created_at": "2026-04-22T12:47:30.163Z", - "trace_id": "address-vX9qYovMPn", - "debug": { - "trace_id": "address-vX9qYovMPn", - "prompt_version": "address_query_runtime_v1", - "schema_version": "address_query_runtime_v1", - "fallback_type": "partial", - "route_summary": null, - "fragments": [], - "requirements_extracted": [], - "coverage_report": { - "requirements_total": 0, - "requirements_covered": 0, - "requirements_uncovered": [], - "requirements_partially_covered": [], - "clarification_needed_for": [], - "out_of_scope_requirements": [] - }, - "routes": [], - "retrieval_status": [], - "retrieval_results": [], - "answer_grounding_check": { - "status": "partial", - "route_subject_match": true, - "missing_requirements": [], - "reasons": [ - "loose_by_anchor_detected", - "shape_not_detected", - "intent_not_supported_in_v1" - ], - "why_included_summary": [], - "selection_reason_summary": [] - }, - "dropped_intent_segments": [], - "detected_mode": "address_query", - "detected_mode_confidence": "medium", - "query_shape": "UNKNOWN", - "query_shape_confidence": "low", - "detected_intent": "unknown", - "detected_intent_confidence": "low", - "extracted_filters": { - "sort": "period_desc", - "limit": 20, - "period_from": "2020-01-01", - "period_to": "2020-12-31" - }, - "missing_required_filters": [], - "selected_recipe": null, - "mcp_call_status_legacy": "skipped", - "account_scope_mode": "strict", - "account_scope_fallback_applied": false, - "anchor_type": "unknown", - "anchor_value_raw": null, - "anchor_value_resolved": null, - "resolver_confidence": "low", - "ambiguity_count": 0, - "match_failure_stage": "none", - "match_failure_reason": null, - "mcp_call_status": "skipped", - "rows_fetched": 0, - "raw_rows_received": 0, - "rows_after_account_scope": 0, - "rows_after_recipe_filter": 0, - "rows_materialized": 0, - "rows_matched": 0, - "raw_row_keys_sample": [], - "materialization_drop_reason": "none", - "account_token_raw": null, - "account_token_normalized": null, - "account_scope_fields_checked": [ - "account_dt", - "account_kt", - "registrator", - "analytics" - ], - "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", - "account_scope_drop_reason": "not_applicable", - "runtime_readiness": "DEEP_ONLY", - "limited_reason_category": "unsupported", - "response_type": "LIMITED_WITH_REASON", - "as_of_date_basis": "period_range", - "capability_id": "address_unknown", - "capability_layer": "conversational", - "capability_route_mode": "exact", - "capability_route_enabled": true, - "capability_route_reason": "generic_address_route_enabled", - "shadow_route_status": "skipped", - "route_expectation_status": "not_found", - "route_expectation_reason": "route_expectation_not_defined_for_intent", - "route_expectation_expected_selected_recipes": [], - "route_expectation_expected_requested_result_modes": [], - "route_expectation_expected_result_modes": [], - "execution_lane": "address_query", - "llm_decomposition_applied": false, - "llm_decomposition_attempted": true, - "llm_provider_used": "local", - "llm_decomposition_trace_id": "RLpuEsS1bOCFVG", - "llm_decomposition_effective_message": "сколько получили по нему за 2020 год", - "llm_decomposition_reason": "followup_raw_message_preferred_over_llm_rewrite", - "llm_canonical_candidate_detected": true, - "llm_predecompose_contract": { - "schema_version": "address_llm_predecompose_contract_v1", - "source_message": "сколько получили по нему за 2020 год", - "canonical_message": "сколько получили по нему за 2020 год", - "mode": "address_query", - "mode_confidence": "medium", - "query_shape": "UNKNOWN", - "query_shape_confidence": "low", - "intent": "unknown", - "intent_confidence": "low", - "entities": { - "account": null, - "counterparty": null, - "contract": null, - "document_type": null, - "document_ref": null, - "organization": null - }, - "period": { - "scope": "year", - "period_from": "2020-01-01", - "period_to": "2020-12-31", - "as_of_date": null, - "has_explicit_period": true - }, - "semantics": { - "scope_kind": "none", - "anchor_kind": "none", - "anchor_value": null, - "date_scope_kind": "explicit", - "date_basis_hint": "period_range", - "self_scope_detected": false, - "selected_object_scope_detected": false - }, - "aggregation_profile": "unknown" - }, - "fallback_rule_hit": null, - "sanitized_user_message": "сколько получили по нему за 2020 год", - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "address_mode_classifier_detected", - "orchestration_contract_v1": { - "schema_version": "assistant_orchestration_contract_v1", - "hard_meta_mode": null, - "provider_execution": { - "schema_version": "assistant_provider_execution_contract_v1", - "policy_owner": "assistantProviderExecutionPolicy", - "provider_mode": "unknown", - "normalized_provider": null, - "use_mock": false, - "base_url_configured": false, - "llm_runtime_unavailable_detected": false, - "living_mode_forced_deep": false, - "living_mode_forced_reason": null, - "reason_codes": [ - "provider_unknown" - ] - }, - "assistant_turn_meaning": { - "schema_version": "assistant_turn_meaning_v1", - "raw_message": "сколько получили по нему за 2020 год", - "effective_message": "сколько получили по нему за 2020 год", - "normalized_raw_message": "сколько получили по нему за 2020 год", - "normalized_effective_message": "сколько получили по нему за 2020 год", - "asked_domain_family": null, - "asked_action_family": null, - "explicit_intent_candidate": null, - "explicit_entity_candidates": [], - "meaning_confidence": "low", - "intent_override_strength": "none", - "carryover_budget": "normal", - "unsupported_but_understood_family": null, - "stale_replay_forbidden": false, - "reason_codes": [] - }, - "address_mode": "address_query", - "address_mode_confidence": "medium", - "address_intent": "unknown", - "address_intent_confidence": "low", - "strong_data_signal_detected": true, - "data_retrieval_signal_detected": true, - "semantic_contract_valid": true, - "semantic_apply_canonical_recommended": false, - "semantic_reason_codes": [ - "unsupported_low_confidence_contract", - "rewrite_without_structured_gain" - ], - "semantic_route_arbitration": { - "supported_address_intent_detected": true, - "strict_deep_investigation_bypass_allowed": false, - "semantic_deep_investigation_hint_detected": false, - "semantic_aggregate_shape_detected": false, - "exact_address_intent_protected_from_semantic_deep_hint": false, - "followup_semantic_override_to_deep_allowed": true - }, - "followup_context_detected": true, - "unsupported_address_intent_fallback_to_deep": false, - "deep_analysis_signal_fallback_to_deep": false, - "aggregate_analytics_signal_fallback_to_deep": false, - "deep_session_continuation_fallback_to_deep": false, - "answer_inspection_followup_over_grounded_answer": false, - "final_decision": { - "run_address_lane": true, - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "address_mode_classifier_detected", - "living_mode": "address_data", - "living_reason": "address_lane_triggered" - } - }, - "dialog_continuation_contract_v2": { - "schema_version": "address_dialog_continuation_contract_v2", - "source_message": "сколько получили по нему за 2020 год", - "effective_message": "сколько получили по нему за 2020 год", - "decision": "continue_previous", - "decision_reasons": [ - "followup_context_detected" - ], - "followup_context_applied": true, - "previous_intent": null, - "target_intent": null, - "intent_selection_mode": "carry_previous_intent", - "anchor_type": "counterparty", - "anchor_value": "Группа СВК", - "implicit_continuation_signal": false - }, - "address_retry_audit": { - "attempted": false, - "reason": null, - "initial_limited_category": null, - "retry_message": null, - "retry_used_followup_context": false, - "retry_result_category": null - }, - "answer_structure_v11": null, - "investigation_state_snapshot": null, - "normalized": null, - "normalizer_output": { - "trace_id": "RLpuEsS1bOCFVG", - "prompt_version": "normalizer_v2_0_2", - "applied": false, - "effective_message": "сколько получили по нему за 2020 год" - }, - "assistant_runtime_contract_v1": { - "schema_version": "assistant_runtime_contracts_v1", - "transition_contract_id": "T2", - "transition_contract_title": "Root Follow-Up With Date Or Scope Change", - "transition_contract_reason": [ - "root_followup_continue_previous" - ], - "capability_contract_id": null, - "capability_contract_reason": [ - "debug_capability_id_has_no_contract" - ], - "truth_gate_contract_status": "partial_supported", - "carryover_eligibility": "root_only" - }, - "transition_contract_id": "T2", - "capability_contract_id": null, - "truth_gate_contract_status": "partial_supported", - "assistant_truth_answer_policy_v1": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "truth_gate": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "partial", - "evidence_grade": "weak", - "grounding_status": "partial", - "truth_mode": "limited", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_partial_supported", - "truth_mode_limited", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "route_expectation_not_defined_for_intent", - "loose_by_anchor_detected", - "shape_not_detected", - "intent_not_supported_in_v1" - ], - "source_truth_gate_status": "partial_supported", - "blocked_or_limited_explanation": "evidence_or_coverage_is_partial" - }, - "answer_shape": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "limited_with_reason", - "reply_type": "partial_coverage", - "capability_contract_id": null, - "transition_contract_id": "T2", - "may_state_confirmed_facts": true, - "must_include_limitation": true, - "may_power_followup": true, - "required_sections": [ - "direct_answer", - "evidence_window", - "limitations" - ], - "downgrade_only": true - } - }, - "coverage_gate_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "partial", - "evidence_grade": "weak", - "grounding_status": "partial", - "truth_mode": "limited", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_partial_supported", - "truth_mode_limited", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "route_expectation_not_defined_for_intent", - "loose_by_anchor_detected", - "shape_not_detected", - "intent_not_supported_in_v1" - ], - "source_truth_gate_status": "partial_supported", - "blocked_or_limited_explanation": "evidence_or_coverage_is_partial" - }, - "answer_shape_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "limited_with_reason", - "reply_type": "partial_coverage", - "capability_contract_id": null, - "transition_contract_id": "T2", - "may_state_confirmed_facts": true, - "must_include_limitation": true, - "may_power_followup": true, - "required_sections": [ - "direct_answer", - "evidence_window", - "limitations" - ], - "downgrade_only": true - }, - "truth_mode": "limited", - "carryover_eligibility": "root_only", - "answer_shape": "limited_with_reason", - "assistant_state_transition_v1": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": "T2", - "transition_title": "Root Follow-Up With Date Or Scope Change", - "application_status": "applied", - "declared_carryover_depth": "root_only", - "truth_gate_carryover_depth": "root_only", - "effective_carryover_depth": "root_only", - "required_prior_state": [ - "root_frame_state" - ], - "expected_answer_mode": "confirmed", - "state_mutations": [ - "update_root_frame_state", - "run_exact_route", - "refresh_coverage_gate_state" - ], - "forbidden_carryover": [ - "incompatible_selected_object_route" - ], - "state_actions": { - "living_mode_state": "update", - "root_frame_state": "update", - "selected_object_frame_state": "clear", - "meta_frame_state": "clear", - "clarification_state": "clear", - "coverage_gate_state": "create", - "answer_context_state": "create" - }, - "coverage_gate_state": { - "coverage_status": "partial", - "evidence_grade": "weak", - "grounding_status": "partial", - "truth_mode": "limited", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_partial_supported", - "truth_mode_limited", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "route_expectation_not_defined_for_intent", - "loose_by_anchor_detected", - "shape_not_detected", - "intent_not_supported_in_v1" - ] - }, - "reason_codes": [ - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "truth_gate_partial_supported", - "truth_mode_limited", - "route_expectation_not_defined_for_intent", - "loose_by_anchor_detected", - "shape_not_detected", - "intent_not_supported_in_v1" - ] - }, - "state_transition_contract": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": "T2", - "transition_title": "Root Follow-Up With Date Or Scope Change", - "application_status": "applied", - "declared_carryover_depth": "root_only", - "truth_gate_carryover_depth": "root_only", - "effective_carryover_depth": "root_only", - "required_prior_state": [ - "root_frame_state" - ], - "expected_answer_mode": "confirmed", - "state_mutations": [ - "update_root_frame_state", - "run_exact_route", - "refresh_coverage_gate_state" - ], - "forbidden_carryover": [ - "incompatible_selected_object_route" - ], - "state_actions": { - "living_mode_state": "update", - "root_frame_state": "update", - "selected_object_frame_state": "clear", - "meta_frame_state": "clear", - "clarification_state": "clear", - "coverage_gate_state": "create", - "answer_context_state": "create" - }, - "coverage_gate_state": { - "coverage_status": "partial", - "evidence_grade": "weak", - "grounding_status": "partial", - "truth_mode": "limited", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_partial_supported", - "truth_mode_limited", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "route_expectation_not_defined_for_intent", - "loose_by_anchor_detected", - "shape_not_detected", - "intent_not_supported_in_v1" - ] - }, - "reason_codes": [ - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "truth_gate_partial_supported", - "truth_mode_limited", - "route_expectation_not_defined_for_intent", - "loose_by_anchor_detected", - "shape_not_detected", - "intent_not_supported_in_v1" - ] - }, - "state_transition_id": "T2", - "state_transition_status": "applied", - "effective_carryover_depth": "root_only", - "assistant_capability_binding_v1": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "address_unknown", - "capability_contract_id": null, - "binding_status": "contract_missing", - "binding_action": "observe_only", - "runtime_lane_expected": null, - "runtime_lane_observed": "address_exact", - "execution_adapter": null, - "transition_id": "T2", - "transition_allowed": false, - "required_anchors": [], - "provided_anchors": [ - "sort", - "limit", - "period_from", - "period_to" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": null, - "answer_object_shape": null, - "truth_gate_behavior": null, - "truth_fallback_allowed": null, - "answer_shape_compatible": false, - "violations": [ - "capability_contract_missing" - ], - "reason_codes": [ - "binding_status_contract_missing", - "binding_action_observe_only", - "capability_contract_missing", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "truth_gate_partial_supported", - "truth_mode_limited", - "route_expectation_not_defined_for_intent", - "loose_by_anchor_detected", - "shape_not_detected", - "intent_not_supported_in_v1" - ] - }, - "capability_binding_contract": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "address_unknown", - "capability_contract_id": null, - "binding_status": "contract_missing", - "binding_action": "observe_only", - "runtime_lane_expected": null, - "runtime_lane_observed": "address_exact", - "execution_adapter": null, - "transition_id": "T2", - "transition_allowed": false, - "required_anchors": [], - "provided_anchors": [ - "sort", - "limit", - "period_from", - "period_to" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": null, - "answer_object_shape": null, - "truth_gate_behavior": null, - "truth_fallback_allowed": null, - "answer_shape_compatible": false, - "violations": [ - "capability_contract_missing" - ], - "reason_codes": [ - "binding_status_contract_missing", - "binding_action_observe_only", - "capability_contract_missing", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "truth_gate_partial_supported", - "truth_mode_limited", - "route_expectation_not_defined_for_intent", - "loose_by_anchor_detected", - "shape_not_detected", - "intent_not_supported_in_v1" - ] - }, - "capability_binding_status": "contract_missing", - "capability_binding_action": "observe_only", - "capability_binding_violations": [ - "capability_contract_missing" - ], - "assistant_mcp_discovery_entry_point_v1": { - "schema_version": "assistant_mcp_discovery_runtime_entry_point_v1", - "policy_owner": "assistantMcpDiscoveryRuntimeEntryPoint", - "entry_status": "bridge_executed", - "hot_runtime_wired": false, - "discovery_attempted": true, - "turn_input": { - "schema_version": "assistant_mcp_discovery_turn_input_v1", - "policy_owner": "assistantMcpDiscoveryTurnInputAdapter", - "adapter_status": "ready", - "should_run_discovery": true, - "semantic_data_need": "counterparty value-flow evidence", - "turn_meaning_ref": { - "asked_domain_family": "counterparty_value", - "asked_action_family": "turnover", - "explicit_entity_candidates": [ - "Группа СВК" - ], - "explicit_date_scope": "2020", - "unsupported_but_understood_family": "counterparty_value_or_turnover", - "stale_replay_forbidden": true - }, - "source_signal": "assistant_turn_meaning", - "reason_codes": [ - "mcp_discovery_value_flow_signal_detected", - "mcp_discovery_grounded_value_flow_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_entity_scope_available" - ] - }, - "bridge": { - "schema_version": "assistant_mcp_discovery_runtime_bridge_v1", - "policy_owner": "assistantMcpDiscoveryRuntimeBridge", - "bridge_status": "answer_draft_ready", - "hot_runtime_wired": false, - "planner": { - "schema_version": "assistant_mcp_discovery_planner_v1", - "policy_owner": "assistantMcpDiscoveryPlanner", - "planner_status": "ready_for_execution", - "semantic_data_need": "counterparty value-flow evidence", - "selected_chain_id": "value_flow", - "selected_chain_summary": "Resolve the business entity, query scoped movements, aggregate checked amounts, then probe coverage before answering.", - "proposed_primitives": [ - "resolve_entity_reference", - "query_movements", - "aggregate_by_axis", - "probe_coverage" - ], - "required_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "discovery_plan": { - "schema_version": "assistant_mcp_discovery_plan_v1", - "policy_owner": "assistantMcpDiscoveryPolicy", - "plan_status": "allowed", - "semantic_data_need": "counterparty value-flow evidence", - "turn_meaning_ref": { - "asked_domain_family": "counterparty_value", - "asked_action_family": "turnover", - "explicit_entity_candidates": [ - "Группа СВК" - ], - "explicit_date_scope": "2020", - "unsupported_but_understood_family": "counterparty_value_or_turnover", - "stale_replay_forbidden": true - }, - "allowed_primitives": [ - "resolve_entity_reference", - "query_movements", - "aggregate_by_axis", - "probe_coverage" - ], - "rejected_primitives": [], - "required_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "execution_budget": { - "max_probe_count": 30, - "max_rows_per_probe": 100 - }, - "requires_evidence_gate": true, - "answer_may_use_raw_model_claims": false, - "reason_codes": [ - "guarded_mcp_discovery_plan_allowed" - ] - }, - "catalog_review": { - "schema_version": "assistant_mcp_catalog_plan_review_v1", - "policy_owner": "assistantMcpCatalogIndex", - "review_status": "catalog_compatible", - "reviewed_primitives": [ - "resolve_entity_reference", - "query_movements", - "aggregate_by_axis", - "probe_coverage" - ], - "missing_axes_by_primitive": {}, - "unknown_primitives": [], - "evidence_floors": { - "resolve_entity_reference": "rows_matched", - "query_movements": "rows_matched", - "aggregate_by_axis": "rows_matched", - "probe_coverage": "source_summary" - }, - "reason_codes": [ - "catalog_plan_compatible" - ] - }, - "reason_codes": [ - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution" - ] - }, - "pilot": { - "schema_version": "assistant_mcp_discovery_pilot_executor_v1", - "policy_owner": "assistantMcpDiscoveryPilotExecutor", - "pilot_status": "executed", - "pilot_scope": "counterparty_value_flow_query_movements_v1", - "dry_run": { - "schema_version": "assistant_mcp_discovery_runtime_dry_run_v1", - "policy_owner": "assistantMcpDiscoveryRuntimeAdapter", - "adapter_status": "dry_run_ready", - "planner_status": "ready_for_execution", - "mcp_execution_performed": false, - "execution_steps": [ - { - "sequence": 1, - "primitive_id": "resolve_entity_reference", - "step_status": "ready", - "purpose": "Resolve a user-visible entity name to a concrete 1C reference candidate.", - "provided_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "required_axis_options": [ - [ - "business_entity" - ], - [ - "counterparty" - ], - [ - "organization" - ], - [ - "contract" - ], - [ - "item" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "period", - "inn", - "document" - ], - "expected_fact_kinds": [ - "resolved_entity_ref", - "entity_conflict" - ], - "evidence_floor": "rows_matched", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_matched_rows_or_reports_no_match" - }, - { - "sequence": 2, - "primitive_id": "query_movements", - "step_status": "ready", - "purpose": "Fetch or aggregate accounting/register movements for a scoped business question.", - "provided_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "required_axis_options": [ - [ - "period", - "account" - ], - [ - "period", - "counterparty" - ], - [ - "period", - "organization" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "contract", - "document", - "amount", - "item", - "warehouse" - ], - "expected_fact_kinds": [ - "movement_rows", - "turnover", - "balance_delta" - ], - "evidence_floor": "rows_matched", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_matched_rows_or_reports_no_match" - }, - { - "sequence": 3, - "primitive_id": "aggregate_by_axis", - "step_status": "ready", - "purpose": "Aggregate already-scoped 1C evidence by a business axis such as counterparty, contract, or period.", - "provided_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "required_axis_options": [ - [ - "aggregate_axis", - "period" - ], - [ - "aggregate_axis", - "counterparty" - ], - [ - "aggregate_axis", - "account" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "organization", - "contract", - "document", - "amount" - ], - "expected_fact_kinds": [ - "aggregate_totals", - "ranked_axis_values" - ], - "evidence_floor": "rows_matched", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_matched_rows_or_reports_no_match" - }, - { - "sequence": 4, - "primitive_id": "probe_coverage", - "step_status": "ready", - "purpose": "Check whether the selected MCP/schema route can prove the requested fact or only support a bounded inference.", - "provided_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "required_axis_options": [ - [ - "coverage_target" - ], - [ - "domain_family" - ], - [ - "primitive_id" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "period", - "organization", - "counterparty", - "document", - "account" - ], - "expected_fact_kinds": [ - "coverage_status", - "known_gaps" - ], - "evidence_floor": "source_summary", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_source_summary_or_limitation" - } - ], - "execution_budget": { - "max_probe_count": 30, - "max_rows_per_probe": 100 - }, - "evidence_gate": { - "required": true, - "expected_inputs": [ - "probe_results", - "confirmed_facts", - "inferred_facts", - "unknown_facts", - "source_rows_summary", - "query_limitations" - ], - "answer_may_use_raw_model_claims": false - }, - "user_facing_fallback": null, - "reason_codes": [ - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution" - ] - }, - "mcp_execution_performed": true, - "executed_primitives": [ - "query_movements" - ], - "skipped_primitives": [ - "resolve_entity_reference", - "aggregate_by_axis", - "probe_coverage" - ], - "probe_results": [ - { - "primitive_id": "resolve_entity_reference", - "status": "skipped", - "rows_received": 0, - "rows_matched": 0, - "limitation": "pilot_value_flow_uses_query_movements_and_derives_aggregate" - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 44, - "rows_matched": 44, - "limitation": null - }, - { - "primitive_id": "aggregate_by_axis", - "status": "skipped", - "rows_received": 0, - "rows_matched": 0, - "limitation": "pilot_value_flow_uses_query_movements_and_derives_aggregate" - }, - { - "primitive_id": "probe_coverage", - "status": "skipped", - "rows_received": 0, - "rows_matched": 0, - "limitation": "pilot_value_flow_uses_query_movements_and_derives_aggregate" - } - ], - "evidence": { - "schema_version": "assistant_mcp_discovery_evidence_v1", - "policy_owner": "assistantMcpDiscoveryPolicy", - "evidence_status": "confirmed", - "coverage_status": "full", - "answer_permission": "confirmed_answer", - "confirmed_facts": [ - "1C value-flow rows were found for counterparty Группа СВК" - ], - "inferred_facts": [ - "Counterparty value-flow total was calculated from confirmed 1C movement rows" - ], - "unknown_facts": [ - "Full turnover outside the checked period is not proven by this MCP discovery pilot" - ], - "source_rows_summary": "44 MCP value-flow rows fetched, 44 matched value-flow scope", - "query_plan": { - "schema_version": "assistant_mcp_discovery_plan_v1", - "policy_owner": "assistantMcpDiscoveryPolicy", - "plan_status": "allowed", - "semantic_data_need": "counterparty value-flow evidence", - "turn_meaning_ref": { - "asked_domain_family": "counterparty_value", - "asked_action_family": "turnover", - "explicit_entity_candidates": [ - "Группа СВК" - ], - "explicit_date_scope": "2020", - "unsupported_but_understood_family": "counterparty_value_or_turnover", - "stale_replay_forbidden": true - }, - "allowed_primitives": [ - "resolve_entity_reference", - "query_movements", - "aggregate_by_axis", - "probe_coverage" - ], - "rejected_primitives": [], - "required_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "execution_budget": { - "max_probe_count": 30, - "max_rows_per_probe": 100 - }, - "requires_evidence_gate": true, - "answer_may_use_raw_model_claims": false, - "reason_codes": [ - "guarded_mcp_discovery_plan_allowed" - ] - }, - "query_limitations": [ - "pilot_value_flow_uses_query_movements_and_derives_aggregate" - ], - "confidence_reason": "confirmed_facts_backed_by_allowed_mcp_probe_rows", - "recommended_next_probe": "explain_evidence_basis", - "reason_codes": [ - "guarded_mcp_discovery_plan_allowed", - "confirmed_facts_with_allowed_mcp_evidence" - ] - }, - "source_rows_summary": "44 MCP value-flow rows fetched, 44 matched value-flow scope", - "derived_metadata_surface": null, - "derived_entity_resolution": null, - "derived_activity_period": null, - "derived_value_flow": { - "value_flow_direction": "incoming_customer_revenue", - "counterparty": "Группа СВК", - "period_scope": "2020", - "aggregation_axis": null, - "rows_matched": 44, - "rows_with_amount": 44, - "total_amount": 47628853.029999994, - "total_amount_human_ru": "47 628 853,03 руб.", - "first_movement_date": "2020-01-09", - "latest_movement_date": "2020-12-30", - "coverage_limited_by_probe_limit": false, - "coverage_recovered_by_period_chunking": false, - "period_chunking_granularity": null, - "monthly_breakdown": [], - "inference_basis": "sum_of_confirmed_1c_value_flow_rows" - }, - "derived_bidirectional_value_flow": null, - "query_limitations": [], - "reason_codes": [ - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_customer_revenue_recipe_selected", - "pilot_query_movements_mcp_executed", - "pilot_derived_value_flow_from_confirmed_rows" - ] - }, - "answer_draft": { - "schema_version": "assistant_mcp_discovery_answer_draft_v1", - "policy_owner": "assistantMcpDiscoveryAnswerAdapter", - "answer_mode": "confirmed_with_bounded_inference", - "headline": "По данным 1С найдены строки входящих денежных поступлений; сумму можно называть только в рамках проверенного периода и найденных строк.", - "confirmed_lines": [ - "1C value-flow rows were found for counterparty Группа СВК", - "По найденным строкам входящих денежных поступлений в 1С по контрагенту Группа СВК за период 2020 сумма входящих денежных поступлений составляет 47 628 853,03 руб. Учтено строк с суммой: 44 из 44. Первая найденная дата движения: 2020-01-09; последняя: 2020-12-30. Это расчет по найденным строкам 1С, а не подтверждение полного объема поступлений вне проверенного окна." - ], - "inference_lines": [ - "Counterparty value-flow total was calculated from confirmed 1C movement rows" - ], - "unknown_lines": [ - "Full turnover outside the checked period is not proven by this MCP discovery pilot" - ], - "limitation_lines": [], - "next_step_line": null, - "internal_mechanics_allowed": false, - "must_not_claim": [ - "Do not expose MCP primitive names, query text, debug ids, or internal execution mechanics in the user answer.", - "Do not claim rows were checked when mcp_execution_performed=false.", - "Do not claim full all-time turnover unless the checked period and coverage prove it.", - "Do not present a derived sum as a legal/accounting final total outside the checked 1C rows." - ], - "reason_codes": [ - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_customer_revenue_recipe_selected", - "pilot_query_movements_mcp_executed", - "pilot_derived_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference" - ] - }, - "user_facing_response_allowed": true, - "business_fact_answer_allowed": true, - "requires_user_clarification": false, - "reason_codes": [ - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_customer_revenue_recipe_selected", - "pilot_query_movements_mcp_executed", - "pilot_derived_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer" - ] - }, - "reason_codes": [ - "mcp_discovery_value_flow_signal_detected", - "mcp_discovery_grounded_value_flow_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_customer_revenue_recipe_selected", - "pilot_query_movements_mcp_executed", - "pilot_derived_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer" - ] - }, - "mcp_discovery_entry_status": "bridge_executed", - "mcp_discovery_attempted": true, - "mcp_discovery_hot_runtime_wired": false, - "mcp_discovery_bridge_status": "answer_draft_ready", - "mcp_discovery_answer_mode": "confirmed_with_bounded_inference", - "mcp_discovery_business_fact_answer_allowed": true, - "mcp_discovery_user_facing_response_allowed": true, - "mcp_discovery_requires_clarification": false, - "capability_binding_response_guard": { - "schema_version": "assistant_capability_binding_response_guard_v1", - "guard_owner": "assistantCapabilityBindingResponseGuard", - "applied": false, - "action": "observe_only", - "original_reply_type": "partial_coverage", - "guarded_reply_type": "partial_coverage", - "reason_codes": [ - "binding_status_contract_missing", - "binding_action_observe_only", - "capability_contract_missing", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_has_no_contract", - "truth_gate_partial_supported", - "truth_mode_limited", - "route_expectation_not_defined_for_intent", - "loose_by_anchor_detected", - "shape_not_detected", - "intent_not_supported_in_v1" - ] - }, - "mcp_discovery_response_policy_v1": { - "schema_version": "assistant_mcp_discovery_response_policy_v1", - "policy_owner": "assistantMcpDiscoveryResponsePolicy", - "decision": "apply_candidate", - "applied": true, - "reply_text": "Коротко: По данным 1С найдены строки входящих денежных поступлений; сумму можно называть только в рамках проверенного периода и найденных строк.\n\nЧто подтверждено:\n- В 1С найдены строки входящих денежных поступлений по контрагенту Группа СВК.\n- По найденным строкам входящих денежных поступлений в 1С по контрагенту Группа СВК за период 2020 сумма входящих денежных поступлений составляет 47 628 853,03 руб. Учтено строк с суммой: 44 из 44. Первая найденная дата движения: 2020-01-09; последняя: 2020-12-30. Это расчет по найденным строкам 1С, а не подтверждение полного объема поступлений вне проверенного окна.\n\nЧто можно сказать только как вывод:\n- Сумма входящих поступлений рассчитана только по подтвержденным строкам поступлений в 1С.\n\nЧто не подтверждено:\n- Полный объем входящих поступлений вне проверенного периода этим поиском не подтвержден.", - "reply_source": "mcp_discovery_response_candidate_guarded", - "candidate": { - "schema_version": "assistant_mcp_discovery_response_candidate_v1", - "policy_owner": "assistantMcpDiscoveryResponseCandidate", - "candidate_status": "ready_for_guarded_use", - "hot_runtime_wired": false, - "reply_type": "partial_coverage", - "reply_text": "Коротко: По данным 1С найдены строки входящих денежных поступлений; сумму можно называть только в рамках проверенного периода и найденных строк.\n\nЧто подтверждено:\n- В 1С найдены строки входящих денежных поступлений по контрагенту Группа СВК.\n- По найденным строкам входящих денежных поступлений в 1С по контрагенту Группа СВК за период 2020 сумма входящих денежных поступлений составляет 47 628 853,03 руб. Учтено строк с суммой: 44 из 44. Первая найденная дата движения: 2020-01-09; последняя: 2020-12-30. Это расчет по найденным строкам 1С, а не подтверждение полного объема поступлений вне проверенного окна.\n\nЧто можно сказать только как вывод:\n- Сумма входящих поступлений рассчитана только по подтвержденным строкам поступлений в 1С.\n\nЧто не подтверждено:\n- Полный объем входящих поступлений вне проверенного периода этим поиском не подтвержден.", - "eligible_for_future_hot_runtime": true, - "must_keep_internal_mechanics_hidden": true, - "reason_codes": [ - "mcp_discovery_value_flow_signal_detected", - "mcp_discovery_grounded_value_flow_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_customer_revenue_recipe_selected", - "pilot_query_movements_mcp_executed", - "pilot_derived_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer", - "mcp_discovery_response_candidate_ready_for_guarded_use", - "mcp_discovery_response_candidate_not_hot_wired" - ] - }, - "reason_codes": [ - "mcp_discovery_value_flow_signal_detected", - "mcp_discovery_grounded_value_flow_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_customer_revenue_recipe_selected", - "pilot_query_movements_mcp_executed", - "pilot_derived_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer", - "mcp_discovery_response_candidate_ready_for_guarded_use", - "mcp_discovery_response_candidate_not_hot_wired", - "mcp_discovery_response_policy_not_unsupported_boundary", - "mcp_discovery_response_policy_not_discovery_ready_chat_candidate", - "mcp_discovery_response_policy_not_discovery_ready_deep_candidate", - "mcp_discovery_response_policy_candidate_applied" - ] - }, - "mcp_discovery_response_candidate_v1": { - "schema_version": "assistant_mcp_discovery_response_candidate_v1", - "policy_owner": "assistantMcpDiscoveryResponseCandidate", - "candidate_status": "ready_for_guarded_use", - "hot_runtime_wired": false, - "reply_type": "partial_coverage", - "reply_text": "Коротко: По данным 1С найдены строки входящих денежных поступлений; сумму можно называть только в рамках проверенного периода и найденных строк.\n\nЧто подтверждено:\n- В 1С найдены строки входящих денежных поступлений по контрагенту Группа СВК.\n- По найденным строкам входящих денежных поступлений в 1С по контрагенту Группа СВК за период 2020 сумма входящих денежных поступлений составляет 47 628 853,03 руб. Учтено строк с суммой: 44 из 44. Первая найденная дата движения: 2020-01-09; последняя: 2020-12-30. Это расчет по найденным строкам 1С, а не подтверждение полного объема поступлений вне проверенного окна.\n\nЧто можно сказать только как вывод:\n- Сумма входящих поступлений рассчитана только по подтвержденным строкам поступлений в 1С.\n\nЧто не подтверждено:\n- Полный объем входящих поступлений вне проверенного периода этим поиском не подтвержден.", - "eligible_for_future_hot_runtime": true, - "must_keep_internal_mechanics_hidden": true, - "reason_codes": [ - "mcp_discovery_value_flow_signal_detected", - "mcp_discovery_grounded_value_flow_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_customer_revenue_recipe_selected", - "pilot_query_movements_mcp_executed", - "pilot_derived_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer", - "mcp_discovery_response_candidate_ready_for_guarded_use", - "mcp_discovery_response_candidate_not_hot_wired" - ] - }, - "mcp_discovery_response_applied": true - } - }, - { - "message_id": "msg-7nk-BrwwXQ", - "session_id": "asst-A0MzXXn0RG", - "role": "user", - "text": "а теперь сколько заплатили?", - "reply_type": null, - "created_at": "2026-04-22T12:47:35.570Z", - "trace_id": null, - "debug": null - }, - { - "message_id": "msg-M6G719WuQf", - "session_id": "asst-A0MzXXn0RG", - "role": "assistant", - "text": "Коротко: По данным 1С найдены строки исходящих платежей/списаний; сумму можно называть только в рамках проверенного периода и найденных строк.\n\nЧто подтверждено:\n- В 1С найдены строки исходящих платежей/списаний по контрагенту Группа СВК.\n- По найденным строкам исходящих платежей/списаний в 1С по контрагенту Группа СВК за период 2020 сумма исходящих платежей/списаний составляет 43 763 351,53 руб. Учтено строк с суммой: 299 из 299. Первая найденная дата движения: 2020-01-09; последняя: 2020-12-25. Это расчет по найденным строкам 1С, а не подтверждение полного объема платежей вне проверенного окна.\n\nЧто можно сказать только как вывод:\n- Сумма исходящих платежей рассчитана только по подтвержденным строкам списаний в 1С.\n- Покрытие запрошенного периода восстановлено помесячными проверками 1С после того, как общая выборка уперлась в лимит строк.\n\nЧто не подтверждено:\n- Полный объем исходящих платежей вне проверенного периода этим поиском не подтвержден.", - "reply_type": "partial_coverage", - "created_at": "2026-04-22T12:48:07.373Z", - "trace_id": "address-hQqgmgYR-A", - "debug": { - "trace_id": "address-hQqgmgYR-A", - "prompt_version": "address_query_runtime_v1", - "schema_version": "address_query_runtime_v1", - "fallback_type": "none", - "route_summary": null, - "fragments": [], - "requirements_extracted": [], - "coverage_report": { - "requirements_total": 0, - "requirements_covered": 0, - "requirements_uncovered": [], - "requirements_partially_covered": [], - "clarification_needed_for": [], - "out_of_scope_requirements": [] - }, - "routes": [], - "retrieval_status": [], - "retrieval_results": [], - "answer_grounding_check": { - "status": "grounded", - "route_subject_match": true, - "missing_requirements": [], - "reasons": [ - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ], - "why_included_summary": [], - "selection_reason_summary": [] - }, - "dropped_intent_segments": [], - "detected_mode": "address_query", - "detected_mode_confidence": "medium", - "query_shape": "UNKNOWN", - "query_shape_confidence": "low", - "detected_intent": "customer_revenue_and_payments", - "detected_intent_confidence": "low", - "extracted_filters": { - "sort": "period_desc", - "period_to": "2026-04-22", - "counterparty": "Группа СВК" - }, - "missing_required_filters": [], - "selected_recipe": "address_customer_revenue_and_payments_v1", - "mcp_call_status_legacy": "matched_non_empty", - "account_scope_mode": "preferred", - "account_scope_fallback_applied": false, - "anchor_type": "counterparty", - "anchor_value_raw": "Группа СВК", - "anchor_value_resolved": "Группа СВК", - "resolver_confidence": "high", - "ambiguity_count": 0, - "match_failure_stage": "none", - "match_failure_reason": null, - "mcp_call_status": "matched_non_empty", - "rows_fetched": 20, - "raw_rows_received": 20, - "rows_after_account_scope": 20, - "rows_after_recipe_filter": 16, - "rows_materialized": 20, - "rows_matched": 16, - "raw_row_keys_sample": [ - "Период", - "Регистратор", - "СчетДт", - "СчетКт", - "Сумма", - "Контрагент", - "Договор", - "Period", - "Registrator", - "Amount" - ], - "materialization_drop_reason": "none", - "account_token_raw": null, - "account_token_normalized": null, - "account_scope_fields_checked": [ - "account_dt", - "account_kt", - "registrator", - "analytics" - ], - "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", - "account_scope_drop_reason": "not_applicable", - "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", - "limited_reason_category": null, - "response_type": "FACTUAL_SUMMARY", - "as_of_date_basis": "period_end", - "capability_id": "address_customer_revenue_and_payments", - "capability_layer": "compute", - "capability_route_mode": "exact", - "capability_route_enabled": true, - "capability_route_reason": "counterparty_value_flow_route_enabled", - "shadow_route_status": "skipped", - "route_expectation_status": "not_found", - "route_expectation_reason": "route_expectation_not_defined_for_intent", - "route_expectation_expected_selected_recipes": [], - "route_expectation_expected_requested_result_modes": [], - "route_expectation_expected_result_modes": [], - "execution_lane": "address_query", - "llm_decomposition_applied": true, - "llm_decomposition_attempted": true, - "llm_provider_used": "local", - "llm_decomposition_trace_id": "RZ8FR3Lo7keejb", - "llm_decomposition_effective_message": "сколько оплат было произведено в текущем периоде", - "llm_decomposition_reason": "normalized_fragment_applied", - "llm_canonical_candidate_detected": true, - "llm_predecompose_contract": { - "schema_version": "address_llm_predecompose_contract_v1", - "source_message": "а теперь сколько заплатили?", - "canonical_message": "сколько оплат было произведено в текущем периоде", - "mode": "address_query", - "mode_confidence": "high", - "query_shape": "UNKNOWN", - "query_shape_confidence": "low", - "intent": "unknown", - "intent_confidence": "low", - "entities": { - "account": null, - "counterparty": null, - "contract": null, - "document_type": null, - "document_ref": null, - "organization": null - }, - "period": { - "scope": "unspecified", - "period_from": null, - "period_to": null, - "as_of_date": null, - "has_explicit_period": false - }, - "semantics": { - "scope_kind": "implicit_self_scope", - "anchor_kind": "self_scope", - "anchor_value": null, - "date_scope_kind": "implicit_current", - "date_basis_hint": "implicit_current_snapshot", - "self_scope_detected": true, - "selected_object_scope_detected": false - }, - "aggregation_profile": "unknown" - }, - "fallback_rule_hit": null, - "sanitized_user_message": "а теперь сколько заплатили?", - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "address_mode_classifier_detected", - "orchestration_contract_v1": { - "schema_version": "assistant_orchestration_contract_v1", - "hard_meta_mode": null, - "provider_execution": { - "schema_version": "assistant_provider_execution_contract_v1", - "policy_owner": "assistantProviderExecutionPolicy", - "provider_mode": "unknown", - "normalized_provider": null, - "use_mock": false, - "base_url_configured": false, - "llm_runtime_unavailable_detected": false, - "living_mode_forced_deep": false, - "living_mode_forced_reason": null, - "reason_codes": [ - "provider_unknown" - ] - }, - "assistant_turn_meaning": { - "schema_version": "assistant_turn_meaning_v1", - "raw_message": "а теперь сколько заплатили?", - "effective_message": "сколько оплат было произведено в текущем периоде", - "normalized_raw_message": "а теперь сколько заплатили?", - "normalized_effective_message": "сколько оплат было произведено в текущем периоде", - "asked_domain_family": null, - "asked_action_family": null, - "explicit_intent_candidate": null, - "explicit_entity_candidates": [], - "meaning_confidence": "low", - "intent_override_strength": "none", - "carryover_budget": "normal", - "unsupported_but_understood_family": null, - "stale_replay_forbidden": false, - "reason_codes": [] - }, - "address_mode": "address_query", - "address_mode_confidence": "high", - "address_intent": "unknown", - "address_intent_confidence": "low", - "strong_data_signal_detected": true, - "data_retrieval_signal_detected": true, - "semantic_contract_valid": true, - "semantic_apply_canonical_recommended": true, - "semantic_reason_codes": [ - "rewrite_without_structured_gain" - ], - "semantic_route_arbitration": { - "supported_address_intent_detected": true, - "strict_deep_investigation_bypass_allowed": false, - "semantic_deep_investigation_hint_detected": false, - "semantic_aggregate_shape_detected": false, - "exact_address_intent_protected_from_semantic_deep_hint": false, - "followup_semantic_override_to_deep_allowed": false - }, - "followup_context_detected": true, - "unsupported_address_intent_fallback_to_deep": false, - "deep_analysis_signal_fallback_to_deep": false, - "aggregate_analytics_signal_fallback_to_deep": false, - "deep_session_continuation_fallback_to_deep": false, - "answer_inspection_followup_over_grounded_answer": false, - "final_decision": { - "run_address_lane": true, - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "address_mode_classifier_detected", - "living_mode": "address_data", - "living_reason": "address_lane_triggered" - } - }, - "dialog_continuation_contract_v2": { - "schema_version": "address_dialog_continuation_contract_v2", - "source_message": "а теперь сколько заплатили?", - "effective_message": "сколько оплат было произведено в текущем периоде", - "decision": "continue_previous", - "decision_reasons": [ - "followup_context_detected", - "effective_message_rewritten_by_predecompose" - ], - "followup_context_applied": true, - "previous_intent": "customer_revenue_and_payments", - "target_intent": "customer_revenue_and_payments", - "intent_selection_mode": "carry_previous_intent", - "anchor_type": "unknown", - "anchor_value": null, - "implicit_continuation_signal": false - }, - "address_retry_audit": { - "attempted": true, - "reason": "limited_result_retry_with_raw_message", - "initial_limited_category": "unsupported", - "retry_message": "а теперь сколько заплатили?", - "retry_used_followup_context": true, - "retry_result_category": null - }, - "answer_structure_v11": null, - "investigation_state_snapshot": null, - "normalized": null, - "normalizer_output": { - "trace_id": "RZ8FR3Lo7keejb", - "prompt_version": "normalizer_v2_0_2", - "applied": true, - "effective_message": "сколько оплат было произведено в текущем периоде" - }, - "assistant_runtime_contract_v1": { - "schema_version": "assistant_runtime_contracts_v1", - "transition_contract_id": "T2", - "transition_contract_title": "Root Follow-Up With Date Or Scope Change", - "transition_contract_reason": [ - "root_followup_continue_previous" - ], - "capability_contract_id": "address_customer_revenue_and_payments", - "capability_contract_reason": [ - "debug_capability_id_matched_contract" - ], - "truth_gate_contract_status": "unknown", - "carryover_eligibility": "root_only" - }, - "transition_contract_id": "T2", - "capability_contract_id": "address_customer_revenue_and_payments", - "truth_gate_contract_status": "unknown", - "assistant_truth_answer_policy_v1": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "truth_gate": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_unknown", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_not_defined_for_intent", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ], - "source_truth_gate_status": "unknown", - "blocked_or_limited_explanation": "truth_gate_not_confirmed" - }, - "answer_shape": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "confirmed_factual", - "reply_type": "factual", - "capability_contract_id": "address_customer_revenue_and_payments", - "transition_contract_id": "T2", - "may_state_confirmed_facts": true, - "must_include_limitation": false, - "may_power_followup": true, - "required_sections": [ - "direct_answer", - "evidence_basis" - ], - "downgrade_only": true - } - }, - "coverage_gate_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_unknown", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_not_defined_for_intent", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ], - "source_truth_gate_status": "unknown", - "blocked_or_limited_explanation": "truth_gate_not_confirmed" - }, - "answer_shape_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "confirmed_factual", - "reply_type": "factual", - "capability_contract_id": "address_customer_revenue_and_payments", - "transition_contract_id": "T2", - "may_state_confirmed_facts": true, - "must_include_limitation": false, - "may_power_followup": true, - "required_sections": [ - "direct_answer", - "evidence_basis" - ], - "downgrade_only": true - }, - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "answer_shape": "confirmed_factual", - "assistant_state_transition_v1": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": "T2", - "transition_title": "Root Follow-Up With Date Or Scope Change", - "application_status": "applied", - "declared_carryover_depth": "root_only", - "truth_gate_carryover_depth": "root_only", - "effective_carryover_depth": "root_only", - "required_prior_state": [ - "root_frame_state" - ], - "expected_answer_mode": "confirmed", - "state_mutations": [ - "update_root_frame_state", - "run_exact_route", - "refresh_coverage_gate_state" - ], - "forbidden_carryover": [ - "incompatible_selected_object_route" - ], - "state_actions": { - "living_mode_state": "update", - "root_frame_state": "update", - "selected_object_frame_state": "clear", - "meta_frame_state": "clear", - "clarification_state": "clear", - "coverage_gate_state": "create", - "answer_context_state": "create" - }, - "coverage_gate_state": { - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_unknown", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_not_defined_for_intent", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ] - }, - "reason_codes": [ - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_unknown", - "truth_mode_confirmed", - "route_expectation_not_defined_for_intent", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ] - }, - "state_transition_contract": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": "T2", - "transition_title": "Root Follow-Up With Date Or Scope Change", - "application_status": "applied", - "declared_carryover_depth": "root_only", - "truth_gate_carryover_depth": "root_only", - "effective_carryover_depth": "root_only", - "required_prior_state": [ - "root_frame_state" - ], - "expected_answer_mode": "confirmed", - "state_mutations": [ - "update_root_frame_state", - "run_exact_route", - "refresh_coverage_gate_state" - ], - "forbidden_carryover": [ - "incompatible_selected_object_route" - ], - "state_actions": { - "living_mode_state": "update", - "root_frame_state": "update", - "selected_object_frame_state": "clear", - "meta_frame_state": "clear", - "clarification_state": "clear", - "coverage_gate_state": "create", - "answer_context_state": "create" - }, - "coverage_gate_state": { - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_unknown", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_not_defined_for_intent", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ] - }, - "reason_codes": [ - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_unknown", - "truth_mode_confirmed", - "route_expectation_not_defined_for_intent", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ] - }, - "state_transition_id": "T2", - "state_transition_status": "applied", - "effective_carryover_depth": "root_only", - "assistant_capability_binding_v1": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "address_customer_revenue_and_payments", - "capability_contract_id": "address_customer_revenue_and_payments", - "binding_status": "bound", - "binding_action": "allow", - "runtime_lane_expected": "address_exact", - "runtime_lane_observed": "address_exact", - "execution_adapter": "AddressQueryService", - "transition_id": "T2", - "transition_allowed": true, - "required_anchors": [], - "provided_anchors": [ - "sort", - "period_to", - "counterparty" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": "counterparty_revenue_payment_flow", - "answer_object_shape": "counterparty_revenue_summary", - "truth_gate_behavior": "partial_or_blocked_if_evidence_insufficient", - "truth_fallback_allowed": true, - "answer_shape_compatible": true, - "violations": [], - "reason_codes": [ - "binding_status_bound", - "binding_action_allow", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_unknown", - "truth_mode_confirmed", - "route_expectation_not_defined_for_intent", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ] - }, - "capability_binding_contract": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "address_customer_revenue_and_payments", - "capability_contract_id": "address_customer_revenue_and_payments", - "binding_status": "bound", - "binding_action": "allow", - "runtime_lane_expected": "address_exact", - "runtime_lane_observed": "address_exact", - "execution_adapter": "AddressQueryService", - "transition_id": "T2", - "transition_allowed": true, - "required_anchors": [], - "provided_anchors": [ - "sort", - "period_to", - "counterparty" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": "counterparty_revenue_payment_flow", - "answer_object_shape": "counterparty_revenue_summary", - "truth_gate_behavior": "partial_or_blocked_if_evidence_insufficient", - "truth_fallback_allowed": true, - "answer_shape_compatible": true, - "violations": [], - "reason_codes": [ - "binding_status_bound", - "binding_action_allow", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_unknown", - "truth_mode_confirmed", - "route_expectation_not_defined_for_intent", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ] - }, - "capability_binding_status": "bound", - "capability_binding_action": "allow", - "capability_binding_violations": [], - "assistant_mcp_discovery_entry_point_v1": { - "schema_version": "assistant_mcp_discovery_runtime_entry_point_v1", - "policy_owner": "assistantMcpDiscoveryRuntimeEntryPoint", - "entry_status": "bridge_executed", - "hot_runtime_wired": false, - "discovery_attempted": true, - "turn_input": { - "schema_version": "assistant_mcp_discovery_turn_input_v1", - "policy_owner": "assistantMcpDiscoveryTurnInputAdapter", - "adapter_status": "ready", - "should_run_discovery": true, - "semantic_data_need": "counterparty value-flow evidence", - "turn_meaning_ref": { - "asked_domain_family": "counterparty_value", - "asked_action_family": "payout", - "explicit_entity_candidates": [ - "Группа СВК" - ], - "explicit_date_scope": "2020", - "unsupported_but_understood_family": "counterparty_payouts_or_outflow", - "stale_replay_forbidden": true - }, - "source_signal": "assistant_turn_meaning", - "reason_codes": [ - "mcp_discovery_value_flow_signal_detected", - "mcp_discovery_payout_signal_detected", - "mcp_discovery_grounded_value_flow_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available" - ] - }, - "bridge": { - "schema_version": "assistant_mcp_discovery_runtime_bridge_v1", - "policy_owner": "assistantMcpDiscoveryRuntimeBridge", - "bridge_status": "answer_draft_ready", - "hot_runtime_wired": false, - "planner": { - "schema_version": "assistant_mcp_discovery_planner_v1", - "policy_owner": "assistantMcpDiscoveryPlanner", - "planner_status": "ready_for_execution", - "semantic_data_need": "counterparty value-flow evidence", - "selected_chain_id": "value_flow", - "selected_chain_summary": "Resolve the business entity, query scoped movements, aggregate checked amounts, then probe coverage before answering.", - "proposed_primitives": [ - "resolve_entity_reference", - "query_movements", - "aggregate_by_axis", - "probe_coverage" - ], - "required_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "discovery_plan": { - "schema_version": "assistant_mcp_discovery_plan_v1", - "policy_owner": "assistantMcpDiscoveryPolicy", - "plan_status": "allowed", - "semantic_data_need": "counterparty value-flow evidence", - "turn_meaning_ref": { - "asked_domain_family": "counterparty_value", - "asked_action_family": "payout", - "explicit_entity_candidates": [ - "Группа СВК" - ], - "explicit_date_scope": "2020", - "unsupported_but_understood_family": "counterparty_payouts_or_outflow", - "stale_replay_forbidden": true - }, - "allowed_primitives": [ - "resolve_entity_reference", - "query_movements", - "aggregate_by_axis", - "probe_coverage" - ], - "rejected_primitives": [], - "required_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "execution_budget": { - "max_probe_count": 30, - "max_rows_per_probe": 100 - }, - "requires_evidence_gate": true, - "answer_may_use_raw_model_claims": false, - "reason_codes": [ - "guarded_mcp_discovery_plan_allowed" - ] - }, - "catalog_review": { - "schema_version": "assistant_mcp_catalog_plan_review_v1", - "policy_owner": "assistantMcpCatalogIndex", - "review_status": "catalog_compatible", - "reviewed_primitives": [ - "resolve_entity_reference", - "query_movements", - "aggregate_by_axis", - "probe_coverage" - ], - "missing_axes_by_primitive": {}, - "unknown_primitives": [], - "evidence_floors": { - "resolve_entity_reference": "rows_matched", - "query_movements": "rows_matched", - "aggregate_by_axis": "rows_matched", - "probe_coverage": "source_summary" - }, - "reason_codes": [ - "catalog_plan_compatible" - ] - }, - "reason_codes": [ - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution" - ] - }, - "pilot": { - "schema_version": "assistant_mcp_discovery_pilot_executor_v1", - "policy_owner": "assistantMcpDiscoveryPilotExecutor", - "pilot_status": "executed", - "pilot_scope": "counterparty_supplier_payout_query_movements_v1", - "dry_run": { - "schema_version": "assistant_mcp_discovery_runtime_dry_run_v1", - "policy_owner": "assistantMcpDiscoveryRuntimeAdapter", - "adapter_status": "dry_run_ready", - "planner_status": "ready_for_execution", - "mcp_execution_performed": false, - "execution_steps": [ - { - "sequence": 1, - "primitive_id": "resolve_entity_reference", - "step_status": "ready", - "purpose": "Resolve a user-visible entity name to a concrete 1C reference candidate.", - "provided_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "required_axis_options": [ - [ - "business_entity" - ], - [ - "counterparty" - ], - [ - "organization" - ], - [ - "contract" - ], - [ - "item" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "period", - "inn", - "document" - ], - "expected_fact_kinds": [ - "resolved_entity_ref", - "entity_conflict" - ], - "evidence_floor": "rows_matched", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_matched_rows_or_reports_no_match" - }, - { - "sequence": 2, - "primitive_id": "query_movements", - "step_status": "ready", - "purpose": "Fetch or aggregate accounting/register movements for a scoped business question.", - "provided_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "required_axis_options": [ - [ - "period", - "account" - ], - [ - "period", - "counterparty" - ], - [ - "period", - "organization" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "contract", - "document", - "amount", - "item", - "warehouse" - ], - "expected_fact_kinds": [ - "movement_rows", - "turnover", - "balance_delta" - ], - "evidence_floor": "rows_matched", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_matched_rows_or_reports_no_match" - }, - { - "sequence": 3, - "primitive_id": "aggregate_by_axis", - "step_status": "ready", - "purpose": "Aggregate already-scoped 1C evidence by a business axis such as counterparty, contract, or period.", - "provided_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "required_axis_options": [ - [ - "aggregate_axis", - "period" - ], - [ - "aggregate_axis", - "counterparty" - ], - [ - "aggregate_axis", - "account" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "organization", - "contract", - "document", - "amount" - ], - "expected_fact_kinds": [ - "aggregate_totals", - "ranked_axis_values" - ], - "evidence_floor": "rows_matched", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_matched_rows_or_reports_no_match" - }, - { - "sequence": 4, - "primitive_id": "probe_coverage", - "step_status": "ready", - "purpose": "Check whether the selected MCP/schema route can prove the requested fact or only support a bounded inference.", - "provided_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "required_axis_options": [ - [ - "coverage_target" - ], - [ - "domain_family" - ], - [ - "primitive_id" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "period", - "organization", - "counterparty", - "document", - "account" - ], - "expected_fact_kinds": [ - "coverage_status", - "known_gaps" - ], - "evidence_floor": "source_summary", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_source_summary_or_limitation" - } - ], - "execution_budget": { - "max_probe_count": 30, - "max_rows_per_probe": 100 - }, - "evidence_gate": { - "required": true, - "expected_inputs": [ - "probe_results", - "confirmed_facts", - "inferred_facts", - "unknown_facts", - "source_rows_summary", - "query_limitations" - ], - "answer_may_use_raw_model_claims": false - }, - "user_facing_fallback": null, - "reason_codes": [ - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution" - ] - }, - "mcp_execution_performed": true, - "executed_primitives": [ - "query_movements" - ], - "skipped_primitives": [ - "resolve_entity_reference", - "aggregate_by_axis", - "probe_coverage" - ], - "probe_results": [ - { - "primitive_id": "resolve_entity_reference", - "status": "skipped", - "rows_received": 0, - "rows_matched": 0, - "limitation": "pilot_value_flow_uses_query_movements_and_derives_aggregate" - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 100, - "rows_matched": 100, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 39, - "rows_matched": 39, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 42, - "rows_matched": 42, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 29, - "rows_matched": 29, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 23, - "rows_matched": 23, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 20, - "rows_matched": 20, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 27, - "rows_matched": 27, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 16, - "rows_matched": 16, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 29, - "rows_matched": 29, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 18, - "rows_matched": 18, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 9, - "rows_matched": 9, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 30, - "rows_matched": 30, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 17, - "rows_matched": 17, - "limitation": null - }, - { - "primitive_id": "aggregate_by_axis", - "status": "skipped", - "rows_received": 0, - "rows_matched": 0, - "limitation": "pilot_value_flow_uses_query_movements_and_derives_aggregate" - }, - { - "primitive_id": "probe_coverage", - "status": "skipped", - "rows_received": 0, - "rows_matched": 0, - "limitation": "pilot_value_flow_uses_query_movements_and_derives_aggregate" - } - ], - "evidence": { - "schema_version": "assistant_mcp_discovery_evidence_v1", - "policy_owner": "assistantMcpDiscoveryPolicy", - "evidence_status": "confirmed", - "coverage_status": "full", - "answer_permission": "confirmed_answer", - "confirmed_facts": [ - "1C supplier-payout rows were found for counterparty Группа СВК" - ], - "inferred_facts": [ - "Counterparty supplier-payout total was calculated from confirmed 1C outgoing payment rows", - "Requested period coverage was recovered through monthly 1C value-flow probes after the broad probe hit the row limit" - ], - "unknown_facts": [ - "Full supplier-payout amount outside the checked period is not proven by this MCP discovery pilot" - ], - "source_rows_summary": "12 monthly MCP value-flow probes fetched 299 rows total, 299 matched value-flow scope after the broad probe hit the row limit", - "query_plan": { - "schema_version": "assistant_mcp_discovery_plan_v1", - "policy_owner": "assistantMcpDiscoveryPolicy", - "plan_status": "allowed", - "semantic_data_need": "counterparty value-flow evidence", - "turn_meaning_ref": { - "asked_domain_family": "counterparty_value", - "asked_action_family": "payout", - "explicit_entity_candidates": [ - "Группа СВК" - ], - "explicit_date_scope": "2020", - "unsupported_but_understood_family": "counterparty_payouts_or_outflow", - "stale_replay_forbidden": true - }, - "allowed_primitives": [ - "resolve_entity_reference", - "query_movements", - "aggregate_by_axis", - "probe_coverage" - ], - "rejected_primitives": [], - "required_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "execution_budget": { - "max_probe_count": 30, - "max_rows_per_probe": 100 - }, - "requires_evidence_gate": true, - "answer_may_use_raw_model_claims": false, - "reason_codes": [ - "guarded_mcp_discovery_plan_allowed" - ] - }, - "query_limitations": [ - "pilot_value_flow_uses_query_movements_and_derives_aggregate" - ], - "confidence_reason": "confirmed_facts_backed_by_allowed_mcp_probe_rows", - "recommended_next_probe": "explain_evidence_basis", - "reason_codes": [ - "guarded_mcp_discovery_plan_allowed", - "confirmed_facts_with_allowed_mcp_evidence" - ] - }, - "source_rows_summary": "12 monthly MCP value-flow probes fetched 299 rows total, 299 matched value-flow scope after the broad probe hit the row limit", - "derived_metadata_surface": null, - "derived_entity_resolution": null, - "derived_activity_period": null, - "derived_value_flow": { - "value_flow_direction": "outgoing_supplier_payout", - "counterparty": "Группа СВК", - "period_scope": "2020", - "aggregation_axis": null, - "rows_matched": 299, - "rows_with_amount": 299, - "total_amount": 43763351.53000001, - "total_amount_human_ru": "43 763 351,53 руб.", - "first_movement_date": "2020-01-09", - "latest_movement_date": "2020-12-25", - "coverage_limited_by_probe_limit": false, - "coverage_recovered_by_period_chunking": true, - "period_chunking_granularity": "month", - "monthly_breakdown": [], - "inference_basis": "sum_of_confirmed_1c_value_flow_rows" - }, - "derived_bidirectional_value_flow": null, - "query_limitations": [], - "reason_codes": [ - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_supplier_payout_recipe_selected", - "pilot_query_movements_mcp_executed", - "pilot_monthly_period_chunking_recovered_coverage", - "pilot_derived_value_flow_from_confirmed_rows" - ] - }, - "answer_draft": { - "schema_version": "assistant_mcp_discovery_answer_draft_v1", - "policy_owner": "assistantMcpDiscoveryAnswerAdapter", - "answer_mode": "confirmed_with_bounded_inference", - "headline": "По данным 1С найдены строки исходящих платежей/списаний; сумму можно называть только в рамках проверенного периода и найденных строк.", - "confirmed_lines": [ - "1C supplier-payout rows were found for counterparty Группа СВК", - "По найденным строкам исходящих платежей/списаний в 1С по контрагенту Группа СВК за период 2020 сумма исходящих платежей/списаний составляет 43 763 351,53 руб. Учтено строк с суммой: 299 из 299. Первая найденная дата движения: 2020-01-09; последняя: 2020-12-25. Это расчет по найденным строкам 1С, а не подтверждение полного объема платежей вне проверенного окна." - ], - "inference_lines": [ - "Counterparty supplier-payout total was calculated from confirmed 1C outgoing payment rows", - "Requested period coverage was recovered through monthly 1C value-flow probes after the broad probe hit the row limit" - ], - "unknown_lines": [ - "Full supplier-payout amount outside the checked period is not proven by this MCP discovery pilot" - ], - "limitation_lines": [], - "next_step_line": null, - "internal_mechanics_allowed": false, - "must_not_claim": [ - "Do not expose MCP primitive names, query text, debug ids, or internal execution mechanics in the user answer.", - "Do not claim rows were checked when mcp_execution_performed=false.", - "Do not claim full all-time turnover unless the checked period and coverage prove it.", - "Do not present a derived sum as a legal/accounting final total outside the checked 1C rows." - ], - "reason_codes": [ - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_supplier_payout_recipe_selected", - "pilot_query_movements_mcp_executed", - "pilot_monthly_period_chunking_recovered_coverage", - "pilot_derived_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference" - ] - }, - "user_facing_response_allowed": true, - "business_fact_answer_allowed": true, - "requires_user_clarification": false, - "reason_codes": [ - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_supplier_payout_recipe_selected", - "pilot_query_movements_mcp_executed", - "pilot_monthly_period_chunking_recovered_coverage", - "pilot_derived_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer" - ] - }, - "reason_codes": [ - "mcp_discovery_value_flow_signal_detected", - "mcp_discovery_payout_signal_detected", - "mcp_discovery_grounded_value_flow_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_supplier_payout_recipe_selected", - "pilot_query_movements_mcp_executed", - "pilot_monthly_period_chunking_recovered_coverage", - "pilot_derived_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer" - ] - }, - "mcp_discovery_entry_status": "bridge_executed", - "mcp_discovery_attempted": true, - "mcp_discovery_hot_runtime_wired": false, - "mcp_discovery_bridge_status": "answer_draft_ready", - "mcp_discovery_answer_mode": "confirmed_with_bounded_inference", - "mcp_discovery_business_fact_answer_allowed": true, - "mcp_discovery_user_facing_response_allowed": true, - "mcp_discovery_requires_clarification": false, - "capability_binding_response_guard": { - "schema_version": "assistant_capability_binding_response_guard_v1", - "guard_owner": "assistantCapabilityBindingResponseGuard", - "applied": false, - "action": "allow", - "original_reply_type": "factual", - "guarded_reply_type": "factual", - "reason_codes": [ - "binding_status_bound", - "binding_action_allow", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_unknown", - "truth_mode_confirmed", - "route_expectation_not_defined_for_intent", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ] - }, - "mcp_discovery_response_policy_v1": { - "schema_version": "assistant_mcp_discovery_response_policy_v1", - "policy_owner": "assistantMcpDiscoveryResponsePolicy", - "decision": "apply_candidate", - "applied": true, - "reply_text": "Коротко: По данным 1С найдены строки исходящих платежей/списаний; сумму можно называть только в рамках проверенного периода и найденных строк.\n\nЧто подтверждено:\n- В 1С найдены строки исходящих платежей/списаний по контрагенту Группа СВК.\n- По найденным строкам исходящих платежей/списаний в 1С по контрагенту Группа СВК за период 2020 сумма исходящих платежей/списаний составляет 43 763 351,53 руб. Учтено строк с суммой: 299 из 299. Первая найденная дата движения: 2020-01-09; последняя: 2020-12-25. Это расчет по найденным строкам 1С, а не подтверждение полного объема платежей вне проверенного окна.\n\nЧто можно сказать только как вывод:\n- Сумма исходящих платежей рассчитана только по подтвержденным строкам списаний в 1С.\n- Покрытие запрошенного периода восстановлено помесячными проверками 1С после того, как общая выборка уперлась в лимит строк.\n\nЧто не подтверждено:\n- Полный объем исходящих платежей вне проверенного периода этим поиском не подтвержден.", - "reply_source": "mcp_discovery_response_candidate_guarded", - "candidate": { - "schema_version": "assistant_mcp_discovery_response_candidate_v1", - "policy_owner": "assistantMcpDiscoveryResponseCandidate", - "candidate_status": "ready_for_guarded_use", - "hot_runtime_wired": false, - "reply_type": "partial_coverage", - "reply_text": "Коротко: По данным 1С найдены строки исходящих платежей/списаний; сумму можно называть только в рамках проверенного периода и найденных строк.\n\nЧто подтверждено:\n- В 1С найдены строки исходящих платежей/списаний по контрагенту Группа СВК.\n- По найденным строкам исходящих платежей/списаний в 1С по контрагенту Группа СВК за период 2020 сумма исходящих платежей/списаний составляет 43 763 351,53 руб. Учтено строк с суммой: 299 из 299. Первая найденная дата движения: 2020-01-09; последняя: 2020-12-25. Это расчет по найденным строкам 1С, а не подтверждение полного объема платежей вне проверенного окна.\n\nЧто можно сказать только как вывод:\n- Сумма исходящих платежей рассчитана только по подтвержденным строкам списаний в 1С.\n- Покрытие запрошенного периода восстановлено помесячными проверками 1С после того, как общая выборка уперлась в лимит строк.\n\nЧто не подтверждено:\n- Полный объем исходящих платежей вне проверенного периода этим поиском не подтвержден.", - "eligible_for_future_hot_runtime": true, - "must_keep_internal_mechanics_hidden": true, - "reason_codes": [ - "mcp_discovery_value_flow_signal_detected", - "mcp_discovery_payout_signal_detected", - "mcp_discovery_grounded_value_flow_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_supplier_payout_recipe_selected", - "pilot_query_movements_mcp_executed", - "pilot_monthly_period_chunking_recovered_coverage", - "pilot_derived_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer", - "mcp_discovery_response_candidate_ready_for_guarded_use", - "mcp_discovery_response_candidate_not_hot_wired" - ] - }, - "reason_codes": [ - "mcp_discovery_value_flow_signal_detected", - "mcp_discovery_payout_signal_detected", - "mcp_discovery_grounded_value_flow_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_supplier_payout_recipe_selected", - "pilot_query_movements_mcp_executed", - "pilot_monthly_period_chunking_recovered_coverage", - "pilot_derived_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer", - "mcp_discovery_response_candidate_ready_for_guarded_use", - "mcp_discovery_response_candidate_not_hot_wired", - "mcp_discovery_response_policy_not_unsupported_boundary", - "mcp_discovery_response_policy_not_discovery_ready_chat_candidate", - "mcp_discovery_response_policy_not_discovery_ready_deep_candidate", - "mcp_discovery_response_policy_semantic_conflict_allows_candidate_override", - "mcp_discovery_response_policy_candidate_applied" - ] - }, - "mcp_discovery_response_candidate_v1": { - "schema_version": "assistant_mcp_discovery_response_candidate_v1", - "policy_owner": "assistantMcpDiscoveryResponseCandidate", - "candidate_status": "ready_for_guarded_use", - "hot_runtime_wired": false, - "reply_type": "partial_coverage", - "reply_text": "Коротко: По данным 1С найдены строки исходящих платежей/списаний; сумму можно называть только в рамках проверенного периода и найденных строк.\n\nЧто подтверждено:\n- В 1С найдены строки исходящих платежей/списаний по контрагенту Группа СВК.\n- По найденным строкам исходящих платежей/списаний в 1С по контрагенту Группа СВК за период 2020 сумма исходящих платежей/списаний составляет 43 763 351,53 руб. Учтено строк с суммой: 299 из 299. Первая найденная дата движения: 2020-01-09; последняя: 2020-12-25. Это расчет по найденным строкам 1С, а не подтверждение полного объема платежей вне проверенного окна.\n\nЧто можно сказать только как вывод:\n- Сумма исходящих платежей рассчитана только по подтвержденным строкам списаний в 1С.\n- Покрытие запрошенного периода восстановлено помесячными проверками 1С после того, как общая выборка уперлась в лимит строк.\n\nЧто не подтверждено:\n- Полный объем исходящих платежей вне проверенного периода этим поиском не подтвержден.", - "eligible_for_future_hot_runtime": true, - "must_keep_internal_mechanics_hidden": true, - "reason_codes": [ - "mcp_discovery_value_flow_signal_detected", - "mcp_discovery_payout_signal_detected", - "mcp_discovery_grounded_value_flow_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_supplier_payout_recipe_selected", - "pilot_query_movements_mcp_executed", - "pilot_monthly_period_chunking_recovered_coverage", - "pilot_derived_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer", - "mcp_discovery_response_candidate_ready_for_guarded_use", - "mcp_discovery_response_candidate_not_hot_wired" - ] - }, - "mcp_discovery_response_applied": true - } - }, - { - "message_id": "msg-D0ITOTMBGh", - "session_id": "asst-A0MzXXn0RG", - "role": "user", - "text": "а за 2021?", - "reply_type": null, - "created_at": "2026-04-22T12:48:08.793Z", - "trace_id": null, - "debug": null - }, - { - "message_id": "msg-E59dy0CiJo", - "session_id": "asst-A0MzXXn0RG", - "role": "assistant", - "text": "Коротко: По данным 1С найдены строки исходящих платежей/списаний; сумму можно называть только в рамках проверенного периода и найденных строк.\n\nЧто подтверждено:\n- В 1С найдены строки исходящих платежей/списаний по контрагенту Группа СВК.\n- По найденным строкам исходящих платежей/списаний в 1С по контрагенту Группа СВК за период 2021 сумма исходящих платежей/списаний составляет 11 972 771,05 руб. Учтено строк с суммой: 197 из 197. Первая найденная дата движения: 2021-01-09; последняя: 2021-12-01. Это расчет по найденным строкам 1С, а не подтверждение полного объема платежей вне проверенного окна.\n\nЧто можно сказать только как вывод:\n- Сумма исходящих платежей рассчитана только по подтвержденным строкам списаний в 1С.\n- Покрытие запрошенного периода восстановлено помесячными проверками 1С после того, как общая выборка уперлась в лимит строк.\n\nЧто не подтверждено:\n- Полный объем исходящих платежей вне проверенного периода этим поиском не подтвержден.", - "reply_type": "partial_coverage", - "created_at": "2026-04-22T12:48:36.820Z", - "trace_id": "address-6wLncX0w78", - "debug": { - "trace_id": "address-6wLncX0w78", - "prompt_version": "address_query_runtime_v1", - "schema_version": "address_query_runtime_v1", - "fallback_type": "none", - "route_summary": null, - "fragments": [], - "requirements_extracted": [], - "coverage_report": { - "requirements_total": 0, - "requirements_covered": 0, - "requirements_uncovered": [], - "requirements_partially_covered": [], - "clarification_needed_for": [], - "out_of_scope_requirements": [] - }, - "routes": [], - "retrieval_status": [], - "retrieval_results": [], - "answer_grounding_check": { - "status": "grounded", - "route_subject_match": true, - "missing_requirements": [], - "reasons": [ - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ], - "why_included_summary": [], - "selection_reason_summary": [] - }, - "dropped_intent_segments": [], - "detected_mode": "address_query", - "detected_mode_confidence": "medium", - "query_shape": "UNKNOWN", - "query_shape_confidence": "low", - "detected_intent": "customer_revenue_and_payments", - "detected_intent_confidence": "low", - "extracted_filters": { - "sort": "period_desc", - "period_from": "2021-01-01", - "period_to": "2021-12-31", - "counterparty": "Группа СВК" - }, - "missing_required_filters": [], - "selected_recipe": "address_customer_revenue_and_payments_v1", - "mcp_call_status_legacy": "matched_non_empty", - "account_scope_mode": "preferred", - "account_scope_fallback_applied": false, - "anchor_type": "counterparty", - "anchor_value_raw": "Группа СВК", - "anchor_value_resolved": "Группа СВК", - "resolver_confidence": "high", - "ambiguity_count": 0, - "match_failure_stage": "none", - "match_failure_reason": null, - "mcp_call_status": "matched_non_empty", - "rows_fetched": 13, - "raw_rows_received": 13, - "rows_after_account_scope": 13, - "rows_after_recipe_filter": 13, - "rows_materialized": 13, - "rows_matched": 13, - "raw_row_keys_sample": [ - "Период", - "Регистратор", - "СчетДт", - "СчетКт", - "Сумма", - "Контрагент", - "Договор", - "Period", - "Registrator", - "Amount" - ], - "materialization_drop_reason": "none", - "account_token_raw": null, - "account_token_normalized": null, - "account_scope_fields_checked": [ - "account_dt", - "account_kt", - "registrator", - "analytics" - ], - "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", - "account_scope_drop_reason": "not_applicable", - "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", - "limited_reason_category": null, - "response_type": "FACTUAL_SUMMARY", - "as_of_date_basis": "period_range", - "capability_id": "address_customer_revenue_and_payments", - "capability_layer": "compute", - "capability_route_mode": "exact", - "capability_route_enabled": true, - "capability_route_reason": "counterparty_value_flow_route_enabled", - "shadow_route_status": "skipped", - "route_expectation_status": "not_found", - "route_expectation_reason": "route_expectation_not_defined_for_intent", - "route_expectation_expected_selected_recipes": [], - "route_expectation_expected_requested_result_modes": [], - "route_expectation_expected_result_modes": [], - "execution_lane": "address_query", - "llm_decomposition_applied": false, - "llm_decomposition_attempted": true, - "llm_provider_used": "local", - "llm_decomposition_trace_id": "c-OTQGwNgqwdzq", - "llm_decomposition_effective_message": "а за 2021?", - "llm_decomposition_reason": "followup_raw_message_preferred_over_llm_rewrite", - "llm_canonical_candidate_detected": true, - "llm_predecompose_contract": { - "schema_version": "address_llm_predecompose_contract_v1", - "source_message": "а за 2021?", - "canonical_message": "а за 2021?", - "mode": "unsupported", - "mode_confidence": "low", - "query_shape": "UNKNOWN", - "query_shape_confidence": "low", - "intent": "unknown", - "intent_confidence": "low", - "entities": { - "account": null, - "counterparty": null, - "contract": null, - "document_type": null, - "document_ref": null, - "organization": null - }, - "period": { - "scope": "year", - "period_from": "2021-01-01", - "period_to": "2021-12-31", - "as_of_date": null, - "has_explicit_period": true - }, - "semantics": { - "scope_kind": "none", - "anchor_kind": "none", - "anchor_value": null, - "date_scope_kind": "explicit", - "date_basis_hint": "period_range", - "self_scope_detected": false, - "selected_object_scope_detected": false - }, - "aggregation_profile": "unknown" - }, - "fallback_rule_hit": null, - "sanitized_user_message": "а за 2021?", - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "followup_context_detected", - "orchestration_contract_v1": { - "schema_version": "assistant_orchestration_contract_v1", - "hard_meta_mode": null, - "provider_execution": { - "schema_version": "assistant_provider_execution_contract_v1", - "policy_owner": "assistantProviderExecutionPolicy", - "provider_mode": "unknown", - "normalized_provider": null, - "use_mock": false, - "base_url_configured": false, - "llm_runtime_unavailable_detected": false, - "living_mode_forced_deep": false, - "living_mode_forced_reason": null, - "reason_codes": [ - "provider_unknown" - ] - }, - "assistant_turn_meaning": { - "schema_version": "assistant_turn_meaning_v1", - "raw_message": "а за 2021?", - "effective_message": "а за 2021?", - "normalized_raw_message": "а за 2021?", - "normalized_effective_message": "а за 2021?", - "asked_domain_family": null, - "asked_action_family": null, - "explicit_intent_candidate": null, - "explicit_entity_candidates": [], - "meaning_confidence": "low", - "intent_override_strength": "none", - "carryover_budget": "normal", - "unsupported_but_understood_family": null, - "stale_replay_forbidden": false, - "reason_codes": [] - }, - "address_mode": "unsupported", - "address_mode_confidence": "low", - "address_intent": "unknown", - "address_intent_confidence": "low", - "strong_data_signal_detected": false, - "data_retrieval_signal_detected": false, - "semantic_contract_valid": true, - "semantic_apply_canonical_recommended": true, - "semantic_reason_codes": [ - "unsupported_low_confidence_contract", - "rewrite_without_structured_gain" - ], - "semantic_route_arbitration": { - "supported_address_intent_detected": false, - "strict_deep_investigation_bypass_allowed": false, - "semantic_deep_investigation_hint_detected": false, - "semantic_aggregate_shape_detected": false, - "exact_address_intent_protected_from_semantic_deep_hint": false, - "followup_semantic_override_to_deep_allowed": true - }, - "followup_context_detected": true, - "unsupported_address_intent_fallback_to_deep": false, - "deep_analysis_signal_fallback_to_deep": false, - "aggregate_analytics_signal_fallback_to_deep": false, - "deep_session_continuation_fallback_to_deep": false, - "answer_inspection_followup_over_grounded_answer": false, - "final_decision": { - "run_address_lane": true, - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "followup_context_detected", - "living_mode": "address_data", - "living_reason": "address_lane_triggered" - } - }, - "dialog_continuation_contract_v2": { - "schema_version": "address_dialog_continuation_contract_v2", - "source_message": "а за 2021?", - "effective_message": "а за 2021?", - "decision": "continue_previous", - "decision_reasons": [ - "followup_context_detected" - ], - "followup_context_applied": true, - "previous_intent": "customer_revenue_and_payments", - "target_intent": "customer_revenue_and_payments", - "intent_selection_mode": "carry_previous_intent", - "anchor_type": "counterparty", - "anchor_value": "Группа СВК", - "implicit_continuation_signal": false - }, - "address_retry_audit": { - "attempted": false, - "reason": null, - "initial_limited_category": null, - "retry_message": null, - "retry_used_followup_context": false, - "retry_result_category": null - }, - "answer_structure_v11": null, - "investigation_state_snapshot": null, - "normalized": null, - "normalizer_output": { - "trace_id": "c-OTQGwNgqwdzq", - "prompt_version": "normalizer_v2_0_2", - "applied": false, - "effective_message": "а за 2021?" - }, - "assistant_runtime_contract_v1": { - "schema_version": "assistant_runtime_contracts_v1", - "transition_contract_id": "T2", - "transition_contract_title": "Root Follow-Up With Date Or Scope Change", - "transition_contract_reason": [ - "root_followup_continue_previous" - ], - "capability_contract_id": "address_customer_revenue_and_payments", - "capability_contract_reason": [ - "debug_capability_id_matched_contract" - ], - "truth_gate_contract_status": "unknown", - "carryover_eligibility": "root_only" - }, - "transition_contract_id": "T2", - "capability_contract_id": "address_customer_revenue_and_payments", - "truth_gate_contract_status": "unknown", - "assistant_truth_answer_policy_v1": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "truth_gate": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_unknown", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_not_defined_for_intent", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ], - "source_truth_gate_status": "unknown", - "blocked_or_limited_explanation": "truth_gate_not_confirmed" - }, - "answer_shape": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "confirmed_factual", - "reply_type": "factual", - "capability_contract_id": "address_customer_revenue_and_payments", - "transition_contract_id": "T2", - "may_state_confirmed_facts": true, - "must_include_limitation": false, - "may_power_followup": true, - "required_sections": [ - "direct_answer", - "evidence_basis" - ], - "downgrade_only": true - } - }, - "coverage_gate_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_unknown", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_not_defined_for_intent", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ], - "source_truth_gate_status": "unknown", - "blocked_or_limited_explanation": "truth_gate_not_confirmed" - }, - "answer_shape_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "confirmed_factual", - "reply_type": "factual", - "capability_contract_id": "address_customer_revenue_and_payments", - "transition_contract_id": "T2", - "may_state_confirmed_facts": true, - "must_include_limitation": false, - "may_power_followup": true, - "required_sections": [ - "direct_answer", - "evidence_basis" - ], - "downgrade_only": true - }, - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "answer_shape": "confirmed_factual", - "assistant_state_transition_v1": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": "T2", - "transition_title": "Root Follow-Up With Date Or Scope Change", - "application_status": "applied", - "declared_carryover_depth": "root_only", - "truth_gate_carryover_depth": "root_only", - "effective_carryover_depth": "root_only", - "required_prior_state": [ - "root_frame_state" - ], - "expected_answer_mode": "confirmed", - "state_mutations": [ - "update_root_frame_state", - "run_exact_route", - "refresh_coverage_gate_state" - ], - "forbidden_carryover": [ - "incompatible_selected_object_route" - ], - "state_actions": { - "living_mode_state": "update", - "root_frame_state": "update", - "selected_object_frame_state": "clear", - "meta_frame_state": "clear", - "clarification_state": "clear", - "coverage_gate_state": "create", - "answer_context_state": "create" - }, - "coverage_gate_state": { - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_unknown", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_not_defined_for_intent", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ] - }, - "reason_codes": [ - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_unknown", - "truth_mode_confirmed", - "route_expectation_not_defined_for_intent", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ] - }, - "state_transition_contract": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": "T2", - "transition_title": "Root Follow-Up With Date Or Scope Change", - "application_status": "applied", - "declared_carryover_depth": "root_only", - "truth_gate_carryover_depth": "root_only", - "effective_carryover_depth": "root_only", - "required_prior_state": [ - "root_frame_state" - ], - "expected_answer_mode": "confirmed", - "state_mutations": [ - "update_root_frame_state", - "run_exact_route", - "refresh_coverage_gate_state" - ], - "forbidden_carryover": [ - "incompatible_selected_object_route" - ], - "state_actions": { - "living_mode_state": "update", - "root_frame_state": "update", - "selected_object_frame_state": "clear", - "meta_frame_state": "clear", - "clarification_state": "clear", - "coverage_gate_state": "create", - "answer_context_state": "create" - }, - "coverage_gate_state": { - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_unknown", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_not_defined_for_intent", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ] - }, - "reason_codes": [ - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_unknown", - "truth_mode_confirmed", - "route_expectation_not_defined_for_intent", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ] - }, - "state_transition_id": "T2", - "state_transition_status": "applied", - "effective_carryover_depth": "root_only", - "assistant_capability_binding_v1": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "address_customer_revenue_and_payments", - "capability_contract_id": "address_customer_revenue_and_payments", - "binding_status": "bound", - "binding_action": "allow", - "runtime_lane_expected": "address_exact", - "runtime_lane_observed": "address_exact", - "execution_adapter": "AddressQueryService", - "transition_id": "T2", - "transition_allowed": true, - "required_anchors": [], - "provided_anchors": [ - "sort", - "period_from", - "period_to", - "counterparty" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": "counterparty_revenue_payment_flow", - "answer_object_shape": "counterparty_revenue_summary", - "truth_gate_behavior": "partial_or_blocked_if_evidence_insufficient", - "truth_fallback_allowed": true, - "answer_shape_compatible": true, - "violations": [], - "reason_codes": [ - "binding_status_bound", - "binding_action_allow", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_unknown", - "truth_mode_confirmed", - "route_expectation_not_defined_for_intent", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ] - }, - "capability_binding_contract": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "address_customer_revenue_and_payments", - "capability_contract_id": "address_customer_revenue_and_payments", - "binding_status": "bound", - "binding_action": "allow", - "runtime_lane_expected": "address_exact", - "runtime_lane_observed": "address_exact", - "execution_adapter": "AddressQueryService", - "transition_id": "T2", - "transition_allowed": true, - "required_anchors": [], - "provided_anchors": [ - "sort", - "period_from", - "period_to", - "counterparty" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": "counterparty_revenue_payment_flow", - "answer_object_shape": "counterparty_revenue_summary", - "truth_gate_behavior": "partial_or_blocked_if_evidence_insufficient", - "truth_fallback_allowed": true, - "answer_shape_compatible": true, - "violations": [], - "reason_codes": [ - "binding_status_bound", - "binding_action_allow", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_unknown", - "truth_mode_confirmed", - "route_expectation_not_defined_for_intent", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ] - }, - "capability_binding_status": "bound", - "capability_binding_action": "allow", - "capability_binding_violations": [], - "assistant_mcp_discovery_entry_point_v1": { - "schema_version": "assistant_mcp_discovery_runtime_entry_point_v1", - "policy_owner": "assistantMcpDiscoveryRuntimeEntryPoint", - "entry_status": "bridge_executed", - "hot_runtime_wired": false, - "discovery_attempted": true, - "turn_input": { - "schema_version": "assistant_mcp_discovery_turn_input_v1", - "policy_owner": "assistantMcpDiscoveryTurnInputAdapter", - "adapter_status": "ready", - "should_run_discovery": true, - "semantic_data_need": "counterparty value-flow evidence", - "turn_meaning_ref": { - "asked_domain_family": "counterparty_value", - "asked_action_family": "payout", - "explicit_entity_candidates": [ - "Группа СВК" - ], - "explicit_date_scope": "2021", - "unsupported_but_understood_family": "counterparty_payouts_or_outflow", - "stale_replay_forbidden": true - }, - "source_signal": "assistant_turn_meaning", - "reason_codes": [ - "mcp_discovery_value_flow_signal_detected", - "mcp_discovery_payout_signal_detected", - "mcp_discovery_seeded_from_followup_context", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available" - ] - }, - "bridge": { - "schema_version": "assistant_mcp_discovery_runtime_bridge_v1", - "policy_owner": "assistantMcpDiscoveryRuntimeBridge", - "bridge_status": "answer_draft_ready", - "hot_runtime_wired": false, - "planner": { - "schema_version": "assistant_mcp_discovery_planner_v1", - "policy_owner": "assistantMcpDiscoveryPlanner", - "planner_status": "ready_for_execution", - "semantic_data_need": "counterparty value-flow evidence", - "selected_chain_id": "value_flow", - "selected_chain_summary": "Resolve the business entity, query scoped movements, aggregate checked amounts, then probe coverage before answering.", - "proposed_primitives": [ - "resolve_entity_reference", - "query_movements", - "aggregate_by_axis", - "probe_coverage" - ], - "required_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "discovery_plan": { - "schema_version": "assistant_mcp_discovery_plan_v1", - "policy_owner": "assistantMcpDiscoveryPolicy", - "plan_status": "allowed", - "semantic_data_need": "counterparty value-flow evidence", - "turn_meaning_ref": { - "asked_domain_family": "counterparty_value", - "asked_action_family": "payout", - "explicit_entity_candidates": [ - "Группа СВК" - ], - "explicit_date_scope": "2021", - "unsupported_but_understood_family": "counterparty_payouts_or_outflow", - "stale_replay_forbidden": true - }, - "allowed_primitives": [ - "resolve_entity_reference", - "query_movements", - "aggregate_by_axis", - "probe_coverage" - ], - "rejected_primitives": [], - "required_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "execution_budget": { - "max_probe_count": 30, - "max_rows_per_probe": 100 - }, - "requires_evidence_gate": true, - "answer_may_use_raw_model_claims": false, - "reason_codes": [ - "guarded_mcp_discovery_plan_allowed" - ] - }, - "catalog_review": { - "schema_version": "assistant_mcp_catalog_plan_review_v1", - "policy_owner": "assistantMcpCatalogIndex", - "review_status": "catalog_compatible", - "reviewed_primitives": [ - "resolve_entity_reference", - "query_movements", - "aggregate_by_axis", - "probe_coverage" - ], - "missing_axes_by_primitive": {}, - "unknown_primitives": [], - "evidence_floors": { - "resolve_entity_reference": "rows_matched", - "query_movements": "rows_matched", - "aggregate_by_axis": "rows_matched", - "probe_coverage": "source_summary" - }, - "reason_codes": [ - "catalog_plan_compatible" - ] - }, - "reason_codes": [ - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution" - ] - }, - "pilot": { - "schema_version": "assistant_mcp_discovery_pilot_executor_v1", - "policy_owner": "assistantMcpDiscoveryPilotExecutor", - "pilot_status": "executed", - "pilot_scope": "counterparty_supplier_payout_query_movements_v1", - "dry_run": { - "schema_version": "assistant_mcp_discovery_runtime_dry_run_v1", - "policy_owner": "assistantMcpDiscoveryRuntimeAdapter", - "adapter_status": "dry_run_ready", - "planner_status": "ready_for_execution", - "mcp_execution_performed": false, - "execution_steps": [ - { - "sequence": 1, - "primitive_id": "resolve_entity_reference", - "step_status": "ready", - "purpose": "Resolve a user-visible entity name to a concrete 1C reference candidate.", - "provided_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "required_axis_options": [ - [ - "business_entity" - ], - [ - "counterparty" - ], - [ - "organization" - ], - [ - "contract" - ], - [ - "item" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "period", - "inn", - "document" - ], - "expected_fact_kinds": [ - "resolved_entity_ref", - "entity_conflict" - ], - "evidence_floor": "rows_matched", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_matched_rows_or_reports_no_match" - }, - { - "sequence": 2, - "primitive_id": "query_movements", - "step_status": "ready", - "purpose": "Fetch or aggregate accounting/register movements for a scoped business question.", - "provided_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "required_axis_options": [ - [ - "period", - "account" - ], - [ - "period", - "counterparty" - ], - [ - "period", - "organization" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "contract", - "document", - "amount", - "item", - "warehouse" - ], - "expected_fact_kinds": [ - "movement_rows", - "turnover", - "balance_delta" - ], - "evidence_floor": "rows_matched", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_matched_rows_or_reports_no_match" - }, - { - "sequence": 3, - "primitive_id": "aggregate_by_axis", - "step_status": "ready", - "purpose": "Aggregate already-scoped 1C evidence by a business axis such as counterparty, contract, or period.", - "provided_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "required_axis_options": [ - [ - "aggregate_axis", - "period" - ], - [ - "aggregate_axis", - "counterparty" - ], - [ - "aggregate_axis", - "account" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "organization", - "contract", - "document", - "amount" - ], - "expected_fact_kinds": [ - "aggregate_totals", - "ranked_axis_values" - ], - "evidence_floor": "rows_matched", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_matched_rows_or_reports_no_match" - }, - { - "sequence": 4, - "primitive_id": "probe_coverage", - "step_status": "ready", - "purpose": "Check whether the selected MCP/schema route can prove the requested fact or only support a bounded inference.", - "provided_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "required_axis_options": [ - [ - "coverage_target" - ], - [ - "domain_family" - ], - [ - "primitive_id" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "period", - "organization", - "counterparty", - "document", - "account" - ], - "expected_fact_kinds": [ - "coverage_status", - "known_gaps" - ], - "evidence_floor": "source_summary", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_source_summary_or_limitation" - } - ], - "execution_budget": { - "max_probe_count": 30, - "max_rows_per_probe": 100 - }, - "evidence_gate": { - "required": true, - "expected_inputs": [ - "probe_results", - "confirmed_facts", - "inferred_facts", - "unknown_facts", - "source_rows_summary", - "query_limitations" - ], - "answer_may_use_raw_model_claims": false - }, - "user_facing_fallback": null, - "reason_codes": [ - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution" - ] - }, - "mcp_execution_performed": true, - "executed_primitives": [ - "query_movements" - ], - "skipped_primitives": [ - "resolve_entity_reference", - "aggregate_by_axis", - "probe_coverage" - ], - "probe_results": [ - { - "primitive_id": "resolve_entity_reference", - "status": "skipped", - "rows_received": 0, - "rows_matched": 0, - "limitation": "pilot_value_flow_uses_query_movements_and_derives_aggregate" - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 100, - "rows_matched": 100, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 24, - "rows_matched": 24, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 19, - "rows_matched": 19, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 29, - "rows_matched": 29, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 32, - "rows_matched": 32, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 14, - "rows_matched": 14, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 16, - "rows_matched": 16, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 16, - "rows_matched": 16, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 20, - "rows_matched": 20, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 12, - "rows_matched": 12, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 7, - "rows_matched": 7, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 7, - "rows_matched": 7, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 1, - "rows_matched": 1, - "limitation": null - }, - { - "primitive_id": "aggregate_by_axis", - "status": "skipped", - "rows_received": 0, - "rows_matched": 0, - "limitation": "pilot_value_flow_uses_query_movements_and_derives_aggregate" - }, - { - "primitive_id": "probe_coverage", - "status": "skipped", - "rows_received": 0, - "rows_matched": 0, - "limitation": "pilot_value_flow_uses_query_movements_and_derives_aggregate" - } - ], - "evidence": { - "schema_version": "assistant_mcp_discovery_evidence_v1", - "policy_owner": "assistantMcpDiscoveryPolicy", - "evidence_status": "confirmed", - "coverage_status": "full", - "answer_permission": "confirmed_answer", - "confirmed_facts": [ - "1C supplier-payout rows were found for counterparty Группа СВК" - ], - "inferred_facts": [ - "Counterparty supplier-payout total was calculated from confirmed 1C outgoing payment rows", - "Requested period coverage was recovered through monthly 1C value-flow probes after the broad probe hit the row limit" - ], - "unknown_facts": [ - "Full supplier-payout amount outside the checked period is not proven by this MCP discovery pilot" - ], - "source_rows_summary": "12 monthly MCP value-flow probes fetched 197 rows total, 197 matched value-flow scope after the broad probe hit the row limit", - "query_plan": { - "schema_version": "assistant_mcp_discovery_plan_v1", - "policy_owner": "assistantMcpDiscoveryPolicy", - "plan_status": "allowed", - "semantic_data_need": "counterparty value-flow evidence", - "turn_meaning_ref": { - "asked_domain_family": "counterparty_value", - "asked_action_family": "payout", - "explicit_entity_candidates": [ - "Группа СВК" - ], - "explicit_date_scope": "2021", - "unsupported_but_understood_family": "counterparty_payouts_or_outflow", - "stale_replay_forbidden": true - }, - "allowed_primitives": [ - "resolve_entity_reference", - "query_movements", - "aggregate_by_axis", - "probe_coverage" - ], - "rejected_primitives": [], - "required_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "execution_budget": { - "max_probe_count": 30, - "max_rows_per_probe": 100 - }, - "requires_evidence_gate": true, - "answer_may_use_raw_model_claims": false, - "reason_codes": [ - "guarded_mcp_discovery_plan_allowed" - ] - }, - "query_limitations": [ - "pilot_value_flow_uses_query_movements_and_derives_aggregate" - ], - "confidence_reason": "confirmed_facts_backed_by_allowed_mcp_probe_rows", - "recommended_next_probe": "explain_evidence_basis", - "reason_codes": [ - "guarded_mcp_discovery_plan_allowed", - "confirmed_facts_with_allowed_mcp_evidence" - ] - }, - "source_rows_summary": "12 monthly MCP value-flow probes fetched 197 rows total, 197 matched value-flow scope after the broad probe hit the row limit", - "derived_metadata_surface": null, - "derived_entity_resolution": null, - "derived_activity_period": null, - "derived_value_flow": { - "value_flow_direction": "outgoing_supplier_payout", - "counterparty": "Группа СВК", - "period_scope": "2021", - "aggregation_axis": null, - "rows_matched": 197, - "rows_with_amount": 197, - "total_amount": 11972771.050000003, - "total_amount_human_ru": "11 972 771,05 руб.", - "first_movement_date": "2021-01-09", - "latest_movement_date": "2021-12-01", - "coverage_limited_by_probe_limit": false, - "coverage_recovered_by_period_chunking": true, - "period_chunking_granularity": "month", - "monthly_breakdown": [], - "inference_basis": "sum_of_confirmed_1c_value_flow_rows" - }, - "derived_bidirectional_value_flow": null, - "query_limitations": [], - "reason_codes": [ - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_supplier_payout_recipe_selected", - "pilot_query_movements_mcp_executed", - "pilot_monthly_period_chunking_recovered_coverage", - "pilot_derived_value_flow_from_confirmed_rows" - ] - }, - "answer_draft": { - "schema_version": "assistant_mcp_discovery_answer_draft_v1", - "policy_owner": "assistantMcpDiscoveryAnswerAdapter", - "answer_mode": "confirmed_with_bounded_inference", - "headline": "По данным 1С найдены строки исходящих платежей/списаний; сумму можно называть только в рамках проверенного периода и найденных строк.", - "confirmed_lines": [ - "1C supplier-payout rows were found for counterparty Группа СВК", - "По найденным строкам исходящих платежей/списаний в 1С по контрагенту Группа СВК за период 2021 сумма исходящих платежей/списаний составляет 11 972 771,05 руб. Учтено строк с суммой: 197 из 197. Первая найденная дата движения: 2021-01-09; последняя: 2021-12-01. Это расчет по найденным строкам 1С, а не подтверждение полного объема платежей вне проверенного окна." - ], - "inference_lines": [ - "Counterparty supplier-payout total was calculated from confirmed 1C outgoing payment rows", - "Requested period coverage was recovered through monthly 1C value-flow probes after the broad probe hit the row limit" - ], - "unknown_lines": [ - "Full supplier-payout amount outside the checked period is not proven by this MCP discovery pilot" - ], - "limitation_lines": [], - "next_step_line": null, - "internal_mechanics_allowed": false, - "must_not_claim": [ - "Do not expose MCP primitive names, query text, debug ids, or internal execution mechanics in the user answer.", - "Do not claim rows were checked when mcp_execution_performed=false.", - "Do not claim full all-time turnover unless the checked period and coverage prove it.", - "Do not present a derived sum as a legal/accounting final total outside the checked 1C rows." - ], - "reason_codes": [ - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_supplier_payout_recipe_selected", - "pilot_query_movements_mcp_executed", - "pilot_monthly_period_chunking_recovered_coverage", - "pilot_derived_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference" - ] - }, - "user_facing_response_allowed": true, - "business_fact_answer_allowed": true, - "requires_user_clarification": false, - "reason_codes": [ - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_supplier_payout_recipe_selected", - "pilot_query_movements_mcp_executed", - "pilot_monthly_period_chunking_recovered_coverage", - "pilot_derived_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer" - ] - }, - "reason_codes": [ - "mcp_discovery_value_flow_signal_detected", - "mcp_discovery_payout_signal_detected", - "mcp_discovery_seeded_from_followup_context", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_supplier_payout_recipe_selected", - "pilot_query_movements_mcp_executed", - "pilot_monthly_period_chunking_recovered_coverage", - "pilot_derived_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer" - ] - }, - "mcp_discovery_entry_status": "bridge_executed", - "mcp_discovery_attempted": true, - "mcp_discovery_hot_runtime_wired": false, - "mcp_discovery_bridge_status": "answer_draft_ready", - "mcp_discovery_answer_mode": "confirmed_with_bounded_inference", - "mcp_discovery_business_fact_answer_allowed": true, - "mcp_discovery_user_facing_response_allowed": true, - "mcp_discovery_requires_clarification": false, - "capability_binding_response_guard": { - "schema_version": "assistant_capability_binding_response_guard_v1", - "guard_owner": "assistantCapabilityBindingResponseGuard", - "applied": false, - "action": "allow", - "original_reply_type": "factual", - "guarded_reply_type": "factual", - "reason_codes": [ - "binding_status_bound", - "binding_action_allow", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_unknown", - "truth_mode_confirmed", - "route_expectation_not_defined_for_intent", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "address_followup_context_applied" - ] - }, - "mcp_discovery_response_policy_v1": { - "schema_version": "assistant_mcp_discovery_response_policy_v1", - "policy_owner": "assistantMcpDiscoveryResponsePolicy", - "decision": "apply_candidate", - "applied": true, - "reply_text": "Коротко: По данным 1С найдены строки исходящих платежей/списаний; сумму можно называть только в рамках проверенного периода и найденных строк.\n\nЧто подтверждено:\n- В 1С найдены строки исходящих платежей/списаний по контрагенту Группа СВК.\n- По найденным строкам исходящих платежей/списаний в 1С по контрагенту Группа СВК за период 2021 сумма исходящих платежей/списаний составляет 11 972 771,05 руб. Учтено строк с суммой: 197 из 197. Первая найденная дата движения: 2021-01-09; последняя: 2021-12-01. Это расчет по найденным строкам 1С, а не подтверждение полного объема платежей вне проверенного окна.\n\nЧто можно сказать только как вывод:\n- Сумма исходящих платежей рассчитана только по подтвержденным строкам списаний в 1С.\n- Покрытие запрошенного периода восстановлено помесячными проверками 1С после того, как общая выборка уперлась в лимит строк.\n\nЧто не подтверждено:\n- Полный объем исходящих платежей вне проверенного периода этим поиском не подтвержден.", - "reply_source": "mcp_discovery_response_candidate_guarded", - "candidate": { - "schema_version": "assistant_mcp_discovery_response_candidate_v1", - "policy_owner": "assistantMcpDiscoveryResponseCandidate", - "candidate_status": "ready_for_guarded_use", - "hot_runtime_wired": false, - "reply_type": "partial_coverage", - "reply_text": "Коротко: По данным 1С найдены строки исходящих платежей/списаний; сумму можно называть только в рамках проверенного периода и найденных строк.\n\nЧто подтверждено:\n- В 1С найдены строки исходящих платежей/списаний по контрагенту Группа СВК.\n- По найденным строкам исходящих платежей/списаний в 1С по контрагенту Группа СВК за период 2021 сумма исходящих платежей/списаний составляет 11 972 771,05 руб. Учтено строк с суммой: 197 из 197. Первая найденная дата движения: 2021-01-09; последняя: 2021-12-01. Это расчет по найденным строкам 1С, а не подтверждение полного объема платежей вне проверенного окна.\n\nЧто можно сказать только как вывод:\n- Сумма исходящих платежей рассчитана только по подтвержденным строкам списаний в 1С.\n- Покрытие запрошенного периода восстановлено помесячными проверками 1С после того, как общая выборка уперлась в лимит строк.\n\nЧто не подтверждено:\n- Полный объем исходящих платежей вне проверенного периода этим поиском не подтвержден.", - "eligible_for_future_hot_runtime": true, - "must_keep_internal_mechanics_hidden": true, - "reason_codes": [ - "mcp_discovery_value_flow_signal_detected", - "mcp_discovery_payout_signal_detected", - "mcp_discovery_seeded_from_followup_context", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_supplier_payout_recipe_selected", - "pilot_query_movements_mcp_executed", - "pilot_monthly_period_chunking_recovered_coverage", - "pilot_derived_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer", - "mcp_discovery_response_candidate_ready_for_guarded_use", - "mcp_discovery_response_candidate_not_hot_wired" - ] - }, - "reason_codes": [ - "mcp_discovery_value_flow_signal_detected", - "mcp_discovery_payout_signal_detected", - "mcp_discovery_seeded_from_followup_context", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_supplier_payout_recipe_selected", - "pilot_query_movements_mcp_executed", - "pilot_monthly_period_chunking_recovered_coverage", - "pilot_derived_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer", - "mcp_discovery_response_candidate_ready_for_guarded_use", - "mcp_discovery_response_candidate_not_hot_wired", - "mcp_discovery_response_policy_not_unsupported_boundary", - "mcp_discovery_response_policy_not_discovery_ready_chat_candidate", - "mcp_discovery_response_policy_not_discovery_ready_deep_candidate", - "mcp_discovery_response_policy_semantic_conflict_allows_candidate_override", - "mcp_discovery_response_policy_candidate_applied" - ] - }, - "mcp_discovery_response_candidate_v1": { - "schema_version": "assistant_mcp_discovery_response_candidate_v1", - "policy_owner": "assistantMcpDiscoveryResponseCandidate", - "candidate_status": "ready_for_guarded_use", - "hot_runtime_wired": false, - "reply_type": "partial_coverage", - "reply_text": "Коротко: По данным 1С найдены строки исходящих платежей/списаний; сумму можно называть только в рамках проверенного периода и найденных строк.\n\nЧто подтверждено:\n- В 1С найдены строки исходящих платежей/списаний по контрагенту Группа СВК.\n- По найденным строкам исходящих платежей/списаний в 1С по контрагенту Группа СВК за период 2021 сумма исходящих платежей/списаний составляет 11 972 771,05 руб. Учтено строк с суммой: 197 из 197. Первая найденная дата движения: 2021-01-09; последняя: 2021-12-01. Это расчет по найденным строкам 1С, а не подтверждение полного объема платежей вне проверенного окна.\n\nЧто можно сказать только как вывод:\n- Сумма исходящих платежей рассчитана только по подтвержденным строкам списаний в 1С.\n- Покрытие запрошенного периода восстановлено помесячными проверками 1С после того, как общая выборка уперлась в лимит строк.\n\nЧто не подтверждено:\n- Полный объем исходящих платежей вне проверенного периода этим поиском не подтвержден.", - "eligible_for_future_hot_runtime": true, - "must_keep_internal_mechanics_hidden": true, - "reason_codes": [ - "mcp_discovery_value_flow_signal_detected", - "mcp_discovery_payout_signal_detected", - "mcp_discovery_seeded_from_followup_context", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_supplier_payout_recipe_selected", - "pilot_query_movements_mcp_executed", - "pilot_monthly_period_chunking_recovered_coverage", - "pilot_derived_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer", - "mcp_discovery_response_candidate_ready_for_guarded_use", - "mcp_discovery_response_candidate_not_hot_wired" - ] - }, - "mcp_discovery_response_applied": true - } - }, - { - "message_id": "msg-bXlKKC6RtB", - "session_id": "asst-A0MzXXn0RG", - "role": "user", - "text": "а какое нетто?", - "reply_type": null, - "created_at": "2026-04-22T12:48:39.682Z", - "trace_id": null, - "debug": null - }, - { - "message_id": "msg-nj1J_c40kJ", - "session_id": "asst-A0MzXXn0RG", - "role": "assistant", - "text": "Коротко: По данным 1С найдены строки входящих и исходящих денежных движений; нетто можно называть только как расчет по найденным строкам и проверенному периоду.\n\nЧто подтверждено:\n- В 1С проверены входящие и исходящие денежные строки по контрагенту Группа СВК: входящие строки найдены, исходящие строки найдены.\n- По найденным строкам 1С по контрагенту Группа СВК за период 2021: получили 8 560 025 руб. по входящим движениям, заплатили 11 972 771,05 руб. по исходящим платежам/списаниям. Расчетное нетто исходящий: 3 412 746,05 руб. Входящие строки с суммой: 13 из 13; первая дата 2021-02-19, последняя 2021-11-10. Исходящие строки с суммой: 197 из 197; первая дата 2021-01-09, последняя 2021-12-01. Это расчет по найденным строкам 1С, а не подтверждение полного сальдо вне проверенного окна.\n\nЧто можно сказать только как вывод:\n- Нетто денежного потока рассчитано только как входящие подтвержденные строки 1С минус исходящие подтвержденные строки 1С.\n- Покрытие запрошенного периода по двустороннему денежному потоку восстановлено помесячными проверками 1С после того, как общая выборка уперлась в лимит строк хотя бы по одной стороне.\n\nЧто не подтверждено:\n- Полный двусторонний денежный поток вне проверенного периода этим поиском не подтвержден.", - "reply_type": "factual_with_explanation", - "created_at": "2026-04-22T12:49:15.479Z", - "trace_id": "chat--e5OJYuPEC", - "debug": { - "trace_id": "chat--e5OJYuPEC", - "prompt_version": "living_chat_router_v1", - "schema_version": "living_chat_router_v1", - "fallback_type": "none", - "detected_mode": "chat", - "detected_mode_confidence": "high", - "execution_lane": "living_chat", - "living_router_mode": "chat", - "living_router_reason": "non_domain_query_indexed", - "living_chat_response_source": "mcp_discovery_response_candidate_guarded", - "mcp_discovery_response_policy_v1": { - "schema_version": "assistant_mcp_discovery_response_policy_v1", - "policy_owner": "assistantMcpDiscoveryResponsePolicy", - "decision": "apply_candidate", - "applied": true, - "reply_text": "Коротко: По данным 1С найдены строки входящих и исходящих денежных движений; нетто можно называть только как расчет по найденным строкам и проверенному периоду.\n\nЧто подтверждено:\n- В 1С проверены входящие и исходящие денежные строки по контрагенту Группа СВК: входящие строки найдены, исходящие строки найдены.\n- По найденным строкам 1С по контрагенту Группа СВК за период 2021: получили 8 560 025 руб. по входящим движениям, заплатили 11 972 771,05 руб. по исходящим платежам/списаниям. Расчетное нетто исходящий: 3 412 746,05 руб. Входящие строки с суммой: 13 из 13; первая дата 2021-02-19, последняя 2021-11-10. Исходящие строки с суммой: 197 из 197; первая дата 2021-01-09, последняя 2021-12-01. Это расчет по найденным строкам 1С, а не подтверждение полного сальдо вне проверенного окна.\n\nЧто можно сказать только как вывод:\n- Нетто денежного потока рассчитано только как входящие подтвержденные строки 1С минус исходящие подтвержденные строки 1С.\n- Покрытие запрошенного периода по двустороннему денежному потоку восстановлено помесячными проверками 1С после того, как общая выборка уперлась в лимит строк хотя бы по одной стороне.\n\nЧто не подтверждено:\n- Полный двусторонний денежный поток вне проверенного периода этим поиском не подтвержден.", - "reply_source": "mcp_discovery_response_candidate_guarded", - "candidate": { - "schema_version": "assistant_mcp_discovery_response_candidate_v1", - "policy_owner": "assistantMcpDiscoveryResponseCandidate", - "candidate_status": "ready_for_guarded_use", - "hot_runtime_wired": false, - "reply_type": "partial_coverage", - "reply_text": "Коротко: По данным 1С найдены строки входящих и исходящих денежных движений; нетто можно называть только как расчет по найденным строкам и проверенному периоду.\n\nЧто подтверждено:\n- В 1С проверены входящие и исходящие денежные строки по контрагенту Группа СВК: входящие строки найдены, исходящие строки найдены.\n- По найденным строкам 1С по контрагенту Группа СВК за период 2021: получили 8 560 025 руб. по входящим движениям, заплатили 11 972 771,05 руб. по исходящим платежам/списаниям. Расчетное нетто исходящий: 3 412 746,05 руб. Входящие строки с суммой: 13 из 13; первая дата 2021-02-19, последняя 2021-11-10. Исходящие строки с суммой: 197 из 197; первая дата 2021-01-09, последняя 2021-12-01. Это расчет по найденным строкам 1С, а не подтверждение полного сальдо вне проверенного окна.\n\nЧто можно сказать только как вывод:\n- Нетто денежного потока рассчитано только как входящие подтвержденные строки 1С минус исходящие подтвержденные строки 1С.\n- Покрытие запрошенного периода по двустороннему денежному потоку восстановлено помесячными проверками 1С после того, как общая выборка уперлась в лимит строк хотя бы по одной стороне.\n\nЧто не подтверждено:\n- Полный двусторонний денежный поток вне проверенного периода этим поиском не подтвержден.", - "eligible_for_future_hot_runtime": true, - "must_keep_internal_mechanics_hidden": true, - "reason_codes": [ - "mcp_discovery_value_flow_signal_detected", - "mcp_discovery_bidirectional_value_flow_signal_detected", - "mcp_discovery_grounded_value_flow_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_bidirectional_value_flow_recipes_selected", - "pilot_bidirectional_outgoing_monthly_period_chunking_recovered_coverage", - "pilot_bidirectional_query_movements_mcp_executed", - "pilot_derived_bidirectional_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer", - "mcp_discovery_response_candidate_ready_for_guarded_use", - "mcp_discovery_response_candidate_not_hot_wired" - ] - }, - "reason_codes": [ - "mcp_discovery_value_flow_signal_detected", - "mcp_discovery_bidirectional_value_flow_signal_detected", - "mcp_discovery_grounded_value_flow_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_bidirectional_value_flow_recipes_selected", - "pilot_bidirectional_outgoing_monthly_period_chunking_recovered_coverage", - "pilot_bidirectional_query_movements_mcp_executed", - "pilot_derived_bidirectional_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer", - "mcp_discovery_response_candidate_ready_for_guarded_use", - "mcp_discovery_response_candidate_not_hot_wired", - "mcp_discovery_response_policy_not_unsupported_boundary", - "mcp_discovery_response_policy_not_discovery_ready_deep_candidate", - "mcp_discovery_response_policy_not_discovery_ready_address_candidate", - "mcp_discovery_response_policy_candidate_applied" - ] - }, - "mcp_discovery_response_candidate_v1": { - "schema_version": "assistant_mcp_discovery_response_candidate_v1", - "policy_owner": "assistantMcpDiscoveryResponseCandidate", - "candidate_status": "ready_for_guarded_use", - "hot_runtime_wired": false, - "reply_type": "partial_coverage", - "reply_text": "Коротко: По данным 1С найдены строки входящих и исходящих денежных движений; нетто можно называть только как расчет по найденным строкам и проверенному периоду.\n\nЧто подтверждено:\n- В 1С проверены входящие и исходящие денежные строки по контрагенту Группа СВК: входящие строки найдены, исходящие строки найдены.\n- По найденным строкам 1С по контрагенту Группа СВК за период 2021: получили 8 560 025 руб. по входящим движениям, заплатили 11 972 771,05 руб. по исходящим платежам/списаниям. Расчетное нетто исходящий: 3 412 746,05 руб. Входящие строки с суммой: 13 из 13; первая дата 2021-02-19, последняя 2021-11-10. Исходящие строки с суммой: 197 из 197; первая дата 2021-01-09, последняя 2021-12-01. Это расчет по найденным строкам 1С, а не подтверждение полного сальдо вне проверенного окна.\n\nЧто можно сказать только как вывод:\n- Нетто денежного потока рассчитано только как входящие подтвержденные строки 1С минус исходящие подтвержденные строки 1С.\n- Покрытие запрошенного периода по двустороннему денежному потоку восстановлено помесячными проверками 1С после того, как общая выборка уперлась в лимит строк хотя бы по одной стороне.\n\nЧто не подтверждено:\n- Полный двусторонний денежный поток вне проверенного периода этим поиском не подтвержден.", - "eligible_for_future_hot_runtime": true, - "must_keep_internal_mechanics_hidden": true, - "reason_codes": [ - "mcp_discovery_value_flow_signal_detected", - "mcp_discovery_bidirectional_value_flow_signal_detected", - "mcp_discovery_grounded_value_flow_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_bidirectional_value_flow_recipes_selected", - "pilot_bidirectional_outgoing_monthly_period_chunking_recovered_coverage", - "pilot_bidirectional_query_movements_mcp_executed", - "pilot_derived_bidirectional_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer", - "mcp_discovery_response_candidate_ready_for_guarded_use", - "mcp_discovery_response_candidate_not_hot_wired" - ] - }, - "mcp_discovery_response_applied": true, - "living_chat_script_guard_applied": false, - "living_chat_script_guard_reason": null, - "living_chat_grounding_guard_applied": false, - "living_chat_grounding_guard_reason": null, - "living_chat_proactive_scope_offer_applied": false, - "living_chat_data_scope_probe_status": null, - "living_chat_data_scope_probe_channel": null, - "living_chat_data_scope_probe_org_count": 0, - "living_chat_data_scope_probe_organizations": [], - "living_chat_data_scope_probe_error": null, - "living_chat_continuity_grounded_context_detected": true, - "living_chat_continuity_active_organization": null, - "living_chat_selected_organization": null, - "assistant_known_organizations": [], - "assistant_active_organization": null, - "address_llm_predecompose_attempted": true, - "address_llm_predecompose_applied": false, - "address_llm_predecompose_reason": "normalized_fragment_rejected_semantic_guard", - "address_llm_predecompose_contract": { - "schema_version": "address_llm_predecompose_contract_v1", - "source_message": "а какое нетто?", - "canonical_message": "а какое нетто?", - "mode": "unsupported", - "mode_confidence": "low", - "query_shape": "UNKNOWN", - "query_shape_confidence": "low", - "intent": "unknown", - "intent_confidence": "low", - "entities": { - "account": null, - "counterparty": null, - "contract": null, - "document_type": null, - "document_ref": null, - "organization": null - }, - "period": { - "scope": "unspecified", - "period_from": null, - "period_to": null, - "as_of_date": null, - "has_explicit_period": false - }, - "semantics": { - "scope_kind": "implicit_self_scope", - "anchor_kind": "self_scope", - "anchor_value": null, - "date_scope_kind": "none", - "date_basis_hint": null, - "self_scope_detected": true, - "selected_object_scope_detected": false - }, - "aggregation_profile": "unknown" - }, - "address_semantic_extraction_contract": { - "schema_version": "address_semantic_extraction_contract_v1", - "source_message": "а какое нетто?", - "canonical_message": "а какое нетто?", - "canonical_rewrite_applied": false, - "extraction": { - "mode": "unsupported", - "mode_confidence": "low", - "query_shape": "UNKNOWN", - "query_shape_confidence": "low", - "intent": "unknown", - "intent_confidence": "low", - "aggregation_profile": "unknown" - }, - "entities": { - "account": null, - "counterparty": null, - "contract": null, - "document_type": null, - "document_ref": null, - "organization": null - }, - "period": { - "scope": "unspecified", - "period_from": null, - "period_to": null, - "as_of_date": null, - "has_explicit_period": false - }, - "semantics": { - "scope_kind": "implicit_self_scope", - "anchor_kind": "self_scope", - "anchor_value": null, - "date_scope_kind": "none", - "date_basis_hint": null, - "self_scope_detected": true, - "selected_object_scope_detected": false - }, - "guard_hints": { - "source_data_signal_detected": false, - "canonical_data_signal_detected": false, - "data_scope_meta_query_detected": false, - "deep_investigation_signal_detected": false, - "required_anchor_missing": false, - "unsupported_low_confidence": true, - "semantic_drift_suspected": false - }, - "quality": "low", - "valid": false, - "apply_canonical_recommended": false, - "reason_codes": [ - "unsupported_low_confidence_contract" - ] - }, - "orchestration_contract_v1": { - "schema_version": "assistant_orchestration_contract_v1", - "hard_meta_mode": "non_domain", - "provider_execution": { - "schema_version": "assistant_provider_execution_contract_v1", - "policy_owner": "assistantProviderExecutionPolicy", - "provider_mode": "unknown", - "normalized_provider": null, - "use_mock": false, - "base_url_configured": false, - "llm_runtime_unavailable_detected": false, - "living_mode_forced_deep": false, - "living_mode_forced_reason": null, - "reason_codes": [ - "provider_unknown" - ] - }, - "address_mode": "unsupported", - "address_mode_confidence": "low", - "address_intent": "unknown", - "address_intent_confidence": "low", - "strong_data_signal_detected": false, - "data_retrieval_signal_detected": false, - "followup_context_detected": true, - "unsupported_address_intent_fallback_to_deep": false, - "final_decision": { - "run_address_lane": false, - "tool_gate_decision": "skip_address_lane", - "tool_gate_reason": "non_domain_query_indexed", - "living_mode": "chat", - "living_reason": "non_domain_query_indexed" - } - }, - "tool_gate_decision": "skip_address_lane", - "tool_gate_reason": "non_domain_query_indexed", - "normalized": null, - "normalizer_output": null, - "assistant_mcp_discovery_entry_point_v1": { - "schema_version": "assistant_mcp_discovery_runtime_entry_point_v1", - "policy_owner": "assistantMcpDiscoveryRuntimeEntryPoint", - "entry_status": "bridge_executed", - "hot_runtime_wired": false, - "discovery_attempted": true, - "turn_input": { - "schema_version": "assistant_mcp_discovery_turn_input_v1", - "policy_owner": "assistantMcpDiscoveryTurnInputAdapter", - "adapter_status": "ready", - "should_run_discovery": true, - "semantic_data_need": "counterparty value-flow evidence", - "turn_meaning_ref": { - "asked_domain_family": "counterparty_value", - "asked_action_family": "net_value_flow", - "explicit_entity_candidates": [ - "Группа СВК" - ], - "explicit_date_scope": "2021", - "unsupported_but_understood_family": "counterparty_bidirectional_value_flow_or_netting", - "stale_replay_forbidden": true - }, - "source_signal": "predecompose_contract", - "reason_codes": [ - "mcp_discovery_value_flow_signal_detected", - "mcp_discovery_bidirectional_value_flow_signal_detected", - "mcp_discovery_grounded_value_flow_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available" - ] - }, - "bridge": { - "schema_version": "assistant_mcp_discovery_runtime_bridge_v1", - "policy_owner": "assistantMcpDiscoveryRuntimeBridge", - "bridge_status": "answer_draft_ready", - "hot_runtime_wired": false, - "planner": { - "schema_version": "assistant_mcp_discovery_planner_v1", - "policy_owner": "assistantMcpDiscoveryPlanner", - "planner_status": "ready_for_execution", - "semantic_data_need": "counterparty value-flow evidence", - "selected_chain_id": "value_flow", - "selected_chain_summary": "Resolve the business entity, query scoped movements, aggregate checked amounts, then probe coverage before answering.", - "proposed_primitives": [ - "resolve_entity_reference", - "query_movements", - "aggregate_by_axis", - "probe_coverage" - ], - "required_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "discovery_plan": { - "schema_version": "assistant_mcp_discovery_plan_v1", - "policy_owner": "assistantMcpDiscoveryPolicy", - "plan_status": "allowed", - "semantic_data_need": "counterparty value-flow evidence", - "turn_meaning_ref": { - "asked_domain_family": "counterparty_value", - "asked_action_family": "net_value_flow", - "explicit_entity_candidates": [ - "Группа СВК" - ], - "explicit_date_scope": "2021", - "unsupported_but_understood_family": "counterparty_bidirectional_value_flow_or_netting", - "stale_replay_forbidden": true - }, - "allowed_primitives": [ - "resolve_entity_reference", - "query_movements", - "aggregate_by_axis", - "probe_coverage" - ], - "rejected_primitives": [], - "required_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "execution_budget": { - "max_probe_count": 30, - "max_rows_per_probe": 100 - }, - "requires_evidence_gate": true, - "answer_may_use_raw_model_claims": false, - "reason_codes": [ - "guarded_mcp_discovery_plan_allowed" - ] - }, - "catalog_review": { - "schema_version": "assistant_mcp_catalog_plan_review_v1", - "policy_owner": "assistantMcpCatalogIndex", - "review_status": "catalog_compatible", - "reviewed_primitives": [ - "resolve_entity_reference", - "query_movements", - "aggregate_by_axis", - "probe_coverage" - ], - "missing_axes_by_primitive": {}, - "unknown_primitives": [], - "evidence_floors": { - "resolve_entity_reference": "rows_matched", - "query_movements": "rows_matched", - "aggregate_by_axis": "rows_matched", - "probe_coverage": "source_summary" - }, - "reason_codes": [ - "catalog_plan_compatible" - ] - }, - "reason_codes": [ - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution" - ] - }, - "pilot": { - "schema_version": "assistant_mcp_discovery_pilot_executor_v1", - "policy_owner": "assistantMcpDiscoveryPilotExecutor", - "pilot_status": "executed", - "pilot_scope": "counterparty_bidirectional_value_flow_query_movements_v1", - "dry_run": { - "schema_version": "assistant_mcp_discovery_runtime_dry_run_v1", - "policy_owner": "assistantMcpDiscoveryRuntimeAdapter", - "adapter_status": "dry_run_ready", - "planner_status": "ready_for_execution", - "mcp_execution_performed": false, - "execution_steps": [ - { - "sequence": 1, - "primitive_id": "resolve_entity_reference", - "step_status": "ready", - "purpose": "Resolve a user-visible entity name to a concrete 1C reference candidate.", - "provided_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "required_axis_options": [ - [ - "business_entity" - ], - [ - "counterparty" - ], - [ - "organization" - ], - [ - "contract" - ], - [ - "item" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "period", - "inn", - "document" - ], - "expected_fact_kinds": [ - "resolved_entity_ref", - "entity_conflict" - ], - "evidence_floor": "rows_matched", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_matched_rows_or_reports_no_match" - }, - { - "sequence": 2, - "primitive_id": "query_movements", - "step_status": "ready", - "purpose": "Fetch or aggregate accounting/register movements for a scoped business question.", - "provided_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "required_axis_options": [ - [ - "period", - "account" - ], - [ - "period", - "counterparty" - ], - [ - "period", - "organization" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "contract", - "document", - "amount", - "item", - "warehouse" - ], - "expected_fact_kinds": [ - "movement_rows", - "turnover", - "balance_delta" - ], - "evidence_floor": "rows_matched", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_matched_rows_or_reports_no_match" - }, - { - "sequence": 3, - "primitive_id": "aggregate_by_axis", - "step_status": "ready", - "purpose": "Aggregate already-scoped 1C evidence by a business axis such as counterparty, contract, or period.", - "provided_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "required_axis_options": [ - [ - "aggregate_axis", - "period" - ], - [ - "aggregate_axis", - "counterparty" - ], - [ - "aggregate_axis", - "account" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "organization", - "contract", - "document", - "amount" - ], - "expected_fact_kinds": [ - "aggregate_totals", - "ranked_axis_values" - ], - "evidence_floor": "rows_matched", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_matched_rows_or_reports_no_match" - }, - { - "sequence": 4, - "primitive_id": "probe_coverage", - "step_status": "ready", - "purpose": "Check whether the selected MCP/schema route can prove the requested fact or only support a bounded inference.", - "provided_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "required_axis_options": [ - [ - "coverage_target" - ], - [ - "domain_family" - ], - [ - "primitive_id" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "period", - "organization", - "counterparty", - "document", - "account" - ], - "expected_fact_kinds": [ - "coverage_status", - "known_gaps" - ], - "evidence_floor": "source_summary", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_source_summary_or_limitation" - } - ], - "execution_budget": { - "max_probe_count": 30, - "max_rows_per_probe": 100 - }, - "evidence_gate": { - "required": true, - "expected_inputs": [ - "probe_results", - "confirmed_facts", - "inferred_facts", - "unknown_facts", - "source_rows_summary", - "query_limitations" - ], - "answer_may_use_raw_model_claims": false - }, - "user_facing_fallback": null, - "reason_codes": [ - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution" - ] - }, - "mcp_execution_performed": true, - "executed_primitives": [ - "query_movements" - ], - "skipped_primitives": [ - "resolve_entity_reference", - "aggregate_by_axis", - "probe_coverage" - ], - "probe_results": [ - { - "primitive_id": "resolve_entity_reference", - "status": "skipped", - "rows_received": 0, - "rows_matched": 0, - "limitation": "pilot_bidirectional_value_flow_uses_two_query_movements_and_derives_net" - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 13, - "rows_matched": 13, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 100, - "rows_matched": 100, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 24, - "rows_matched": 24, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 19, - "rows_matched": 19, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 29, - "rows_matched": 29, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 32, - "rows_matched": 32, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 14, - "rows_matched": 14, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 16, - "rows_matched": 16, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 16, - "rows_matched": 16, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 20, - "rows_matched": 20, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 12, - "rows_matched": 12, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 7, - "rows_matched": 7, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 7, - "rows_matched": 7, - "limitation": null - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 1, - "rows_matched": 1, - "limitation": null - }, - { - "primitive_id": "aggregate_by_axis", - "status": "skipped", - "rows_received": 0, - "rows_matched": 0, - "limitation": "pilot_bidirectional_value_flow_uses_two_query_movements_and_derives_net" - }, - { - "primitive_id": "probe_coverage", - "status": "skipped", - "rows_received": 0, - "rows_matched": 0, - "limitation": "pilot_bidirectional_value_flow_uses_two_query_movements_and_derives_net" - } - ], - "evidence": { - "schema_version": "assistant_mcp_discovery_evidence_v1", - "policy_owner": "assistantMcpDiscoveryPolicy", - "evidence_status": "confirmed", - "coverage_status": "full", - "answer_permission": "confirmed_answer", - "confirmed_facts": [ - "1C bidirectional value-flow rows were checked for counterparty Группа СВК: incoming=found, outgoing=found" - ], - "inferred_facts": [ - "Counterparty net value-flow was calculated as incoming confirmed 1C rows minus outgoing confirmed 1C rows", - "Requested period coverage for bidirectional value-flow was recovered through monthly 1C side probes after a broad probe hit the row limit" - ], - "unknown_facts": [ - "Full bidirectional value-flow outside the checked period is not proven by this MCP discovery pilot" - ], - "source_rows_summary": "13 incoming value-flow rows fetched, 13 matched; 12 monthly outgoing supplier-payout probes fetched 197 rows total, 197 matched", - "query_plan": { - "schema_version": "assistant_mcp_discovery_plan_v1", - "policy_owner": "assistantMcpDiscoveryPolicy", - "plan_status": "allowed", - "semantic_data_need": "counterparty value-flow evidence", - "turn_meaning_ref": { - "asked_domain_family": "counterparty_value", - "asked_action_family": "net_value_flow", - "explicit_entity_candidates": [ - "Группа СВК" - ], - "explicit_date_scope": "2021", - "unsupported_but_understood_family": "counterparty_bidirectional_value_flow_or_netting", - "stale_replay_forbidden": true - }, - "allowed_primitives": [ - "resolve_entity_reference", - "query_movements", - "aggregate_by_axis", - "probe_coverage" - ], - "rejected_primitives": [], - "required_axes": [ - "counterparty", - "period", - "aggregate_axis", - "amount", - "coverage_target" - ], - "execution_budget": { - "max_probe_count": 30, - "max_rows_per_probe": 100 - }, - "requires_evidence_gate": true, - "answer_may_use_raw_model_claims": false, - "reason_codes": [ - "guarded_mcp_discovery_plan_allowed" - ] - }, - "query_limitations": [ - "pilot_bidirectional_value_flow_uses_two_query_movements_and_derives_net" - ], - "confidence_reason": "confirmed_facts_backed_by_allowed_mcp_probe_rows", - "recommended_next_probe": "explain_evidence_basis", - "reason_codes": [ - "guarded_mcp_discovery_plan_allowed", - "confirmed_facts_with_allowed_mcp_evidence" - ] - }, - "source_rows_summary": "13 incoming value-flow rows fetched, 13 matched; 12 monthly outgoing supplier-payout probes fetched 197 rows total, 197 matched", - "derived_metadata_surface": null, - "derived_entity_resolution": null, - "derived_activity_period": null, - "derived_value_flow": null, - "derived_bidirectional_value_flow": { - "counterparty": "Группа СВК", - "period_scope": "2021", - "aggregation_axis": null, - "incoming_customer_revenue": { - "rows_matched": 13, - "rows_with_amount": 13, - "total_amount": 8560025, - "total_amount_human_ru": "8 560 025 руб.", - "first_movement_date": "2021-02-19", - "latest_movement_date": "2021-11-10", - "coverage_limited_by_probe_limit": false, - "coverage_recovered_by_period_chunking": false, - "period_chunking_granularity": null - }, - "outgoing_supplier_payout": { - "rows_matched": 197, - "rows_with_amount": 197, - "total_amount": 11972771.050000003, - "total_amount_human_ru": "11 972 771,05 руб.", - "first_movement_date": "2021-01-09", - "latest_movement_date": "2021-12-01", - "coverage_limited_by_probe_limit": false, - "coverage_recovered_by_period_chunking": true, - "period_chunking_granularity": "month" - }, - "net_amount": -3412746.0500000026, - "net_amount_human_ru": "3 412 746,05 руб.", - "net_direction": "net_outgoing", - "coverage_limited_by_probe_limit": false, - "coverage_recovered_by_period_chunking": true, - "period_chunking_granularity": "month", - "monthly_breakdown": [], - "inference_basis": "incoming_minus_outgoing_confirmed_1c_value_flow_rows" - }, - "query_limitations": [], - "reason_codes": [ - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_bidirectional_value_flow_recipes_selected", - "pilot_bidirectional_outgoing_monthly_period_chunking_recovered_coverage", - "pilot_bidirectional_query_movements_mcp_executed", - "pilot_derived_bidirectional_value_flow_from_confirmed_rows" - ] - }, - "answer_draft": { - "schema_version": "assistant_mcp_discovery_answer_draft_v1", - "policy_owner": "assistantMcpDiscoveryAnswerAdapter", - "answer_mode": "confirmed_with_bounded_inference", - "headline": "По данным 1С найдены строки входящих и исходящих денежных движений; нетто можно называть только как расчет по найденным строкам и проверенному периоду.", - "confirmed_lines": [ - "1C bidirectional value-flow rows were checked for counterparty Группа СВК: incoming=found, outgoing=found", - "По найденным строкам 1С по контрагенту Группа СВК за период 2021: получили 8 560 025 руб. по входящим движениям, заплатили 11 972 771,05 руб. по исходящим платежам/списаниям. Расчетное нетто исходящий: 3 412 746,05 руб. Входящие строки с суммой: 13 из 13; первая дата 2021-02-19, последняя 2021-11-10. Исходящие строки с суммой: 197 из 197; первая дата 2021-01-09, последняя 2021-12-01. Это расчет по найденным строкам 1С, а не подтверждение полного сальдо вне проверенного окна." - ], - "inference_lines": [ - "Counterparty net value-flow was calculated as incoming confirmed 1C rows minus outgoing confirmed 1C rows", - "Requested period coverage for bidirectional value-flow was recovered through monthly 1C side probes after a broad probe hit the row limit" - ], - "unknown_lines": [ - "Full bidirectional value-flow outside the checked period is not proven by this MCP discovery pilot" - ], - "limitation_lines": [], - "next_step_line": null, - "internal_mechanics_allowed": false, - "must_not_claim": [ - "Do not expose MCP primitive names, query text, debug ids, or internal execution mechanics in the user answer.", - "Do not claim rows were checked when mcp_execution_performed=false.", - "Do not claim full all-time turnover unless the checked period and coverage prove it.", - "Do not present a derived sum as a legal/accounting final total outside the checked 1C rows." - ], - "reason_codes": [ - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_bidirectional_value_flow_recipes_selected", - "pilot_bidirectional_outgoing_monthly_period_chunking_recovered_coverage", - "pilot_bidirectional_query_movements_mcp_executed", - "pilot_derived_bidirectional_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference" - ] - }, - "user_facing_response_allowed": true, - "business_fact_answer_allowed": true, - "requires_user_clarification": false, - "reason_codes": [ - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_bidirectional_value_flow_recipes_selected", - "pilot_bidirectional_outgoing_monthly_period_chunking_recovered_coverage", - "pilot_bidirectional_query_movements_mcp_executed", - "pilot_derived_bidirectional_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer" - ] - }, - "reason_codes": [ - "mcp_discovery_value_flow_signal_detected", - "mcp_discovery_bidirectional_value_flow_signal_detected", - "mcp_discovery_grounded_value_flow_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_value_flow_recipe", - "planner_enabled_chunked_coverage_probe_budget", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_bidirectional_value_flow_recipes_selected", - "pilot_bidirectional_outgoing_monthly_period_chunking_recovered_coverage", - "pilot_bidirectional_query_movements_mcp_executed", - "pilot_derived_bidirectional_value_flow_from_confirmed_rows", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer" - ] - }, - "mcp_discovery_entry_status": "bridge_executed", - "mcp_discovery_attempted": true, - "mcp_discovery_hot_runtime_wired": false, - "mcp_discovery_bridge_status": "answer_draft_ready", - "mcp_discovery_answer_mode": "confirmed_with_bounded_inference", - "mcp_discovery_business_fact_answer_allowed": true, - "mcp_discovery_user_facing_response_allowed": true, - "mcp_discovery_requires_clarification": false - } - }, - { - "message_id": "msg-CK11ks7W9L", - "session_id": "asst-A0MzXXn0RG", - "role": "user", - "text": "а по документам?", - "reply_type": null, - "created_at": "2026-04-22T12:49:16.760Z", - "trace_id": null, - "debug": null - }, - { - "message_id": "msg-JlfsfpTofs", - "session_id": "asst-A0MzXXn0RG", - "role": "assistant", - "text": "Контрагент: Группа СВК. Найдено документов: 2.\nКонтрагент: Группа СВК.\n1. 2021-11-10T12:00:07Z | Поступление на расчетный счет 00000000013 от 10.11.2021 12:00:07 | 0 / 0 | 20000 | аналитика: Группа СВК; Договор № 1-ПМ/2020 от 05.06.2020\n2. 2021-09-29T12:00:03Z | Поступление на расчетный счет 00000000012 от 29.09.2021 12:00:03 | 0 / 0 | 50000 | аналитика: Группа СВК; Договор № 1-ПМ/2020 от 05.06.2020", - "reply_type": "factual", - "created_at": "2026-04-22T12:49:30.608Z", - "trace_id": "address-Nhz_luefYj", - "debug": { - "trace_id": "address-Nhz_luefYj", - "prompt_version": "address_query_runtime_v1", - "schema_version": "address_query_runtime_v1", - "fallback_type": "none", - "route_summary": null, - "fragments": [], - "requirements_extracted": [], - "coverage_report": { - "requirements_total": 0, - "requirements_covered": 0, - "requirements_uncovered": [], - "requirements_partially_covered": [], - "clarification_needed_for": [], - "out_of_scope_requirements": [] - }, - "routes": [], - "retrieval_status": [], - "retrieval_results": [], - "answer_grounding_check": { - "status": "grounded", - "route_subject_match": true, - "missing_requirements": [], - "reasons": [ - "docs_or_bank_signal_detected", - "anchor_like_token_detected", - "document_list_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "period_from_followup_context", - "address_followup_context_applied" - ], - "why_included_summary": [], - "selection_reason_summary": [] - }, - "dropped_intent_segments": [], - "detected_mode": "address_query", - "detected_mode_confidence": "medium", - "query_shape": "DOCUMENT_LIST", - "query_shape_confidence": "medium", - "detected_intent": "list_documents_by_counterparty", - "detected_intent_confidence": "low", - "extracted_filters": { - "sort": "period_desc", - "limit": 20, - "counterparty": "Группа СВК", - "period_from": "2021-01-01", - "period_to": "2021-12-31" - }, - "missing_required_filters": [], - "selected_recipe": "address_documents_by_counterparty_v1", - "mcp_call_status_legacy": "matched_non_empty", - "account_scope_mode": "preferred", - "account_scope_fallback_applied": false, - "anchor_type": "counterparty", - "anchor_value_raw": "Группа СВК", - "anchor_value_resolved": "Группа СВК", - "resolver_confidence": "high", - "ambiguity_count": 0, - "match_failure_stage": "none", - "match_failure_reason": null, - "mcp_call_status": "matched_non_empty", - "rows_fetched": 20, - "raw_rows_received": 20, - "rows_after_account_scope": 2, - "rows_after_recipe_filter": 2, - "rows_materialized": 2, - "rows_matched": 2, - "raw_row_keys_sample": [ - "Период", - "Регистратор", - "СчетДт", - "СчетКт", - "Сумма", - "Контрагент", - "Договор", - "Period", - "Registrator", - "Amount" - ], - "materialization_drop_reason": "none", - "account_token_raw": null, - "account_token_normalized": null, - "account_scope_fields_checked": [ - "account_dt", - "account_kt", - "registrator", - "analytics" - ], - "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", - "account_scope_drop_reason": "not_applicable", - "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", - "limited_reason_category": null, - "response_type": "FACTUAL_LIST", - "as_of_date_basis": "implicit_current_snapshot", - "capability_id": "documents_drilldown", - "capability_layer": "navigation", - "capability_route_mode": "exact", - "capability_route_enabled": true, - "capability_route_reason": "drilldown_route_enabled", - "shadow_route_status": "skipped", - "route_expectation_status": "matched", - "route_expectation_reason": "route_expectation_matched", - "route_expectation_expected_selected_recipes": [ - "address_documents_by_counterparty_v1" - ], - "route_expectation_expected_requested_result_modes": [], - "route_expectation_expected_result_modes": [ - "heuristic_candidates", - "confirmed_balance" - ], - "execution_lane": "address_query", - "llm_decomposition_applied": true, - "llm_decomposition_attempted": true, - "llm_provider_used": "local", - "llm_decomposition_trace_id": "9r3dTJm0UiyMev", - "llm_decomposition_effective_message": "анализ документов", - "llm_decomposition_reason": "normalized_fragment_applied", - "llm_canonical_candidate_detected": true, - "llm_predecompose_contract": { - "schema_version": "address_llm_predecompose_contract_v1", - "source_message": "а по документам?", - "canonical_message": "анализ документов", - "mode": "address_query", - "mode_confidence": "medium", - "query_shape": "DOCUMENT_LIST", - "query_shape_confidence": "medium", - "intent": "unknown", - "intent_confidence": "low", - "entities": { - "account": null, - "counterparty": null, - "contract": null, - "document_type": null, - "document_ref": null, - "organization": null - }, - "period": { - "scope": "unspecified", - "period_from": null, - "period_to": null, - "as_of_date": null, - "has_explicit_period": false - }, - "semantics": { - "scope_kind": "implicit_self_scope", - "anchor_kind": "self_scope", - "anchor_value": null, - "date_scope_kind": "implicit_current", - "date_basis_hint": "implicit_current_snapshot", - "self_scope_detected": true, - "selected_object_scope_detected": false - }, - "aggregation_profile": "list_lookup" - }, - "fallback_rule_hit": null, - "sanitized_user_message": "а по документам?", - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "address_mode_classifier_detected", - "orchestration_contract_v1": { - "schema_version": "assistant_orchestration_contract_v1", - "hard_meta_mode": null, - "provider_execution": { - "schema_version": "assistant_provider_execution_contract_v1", - "policy_owner": "assistantProviderExecutionPolicy", - "provider_mode": "unknown", - "normalized_provider": null, - "use_mock": false, - "base_url_configured": false, - "llm_runtime_unavailable_detected": false, - "living_mode_forced_deep": false, - "living_mode_forced_reason": null, - "reason_codes": [ - "provider_unknown" - ] - }, - "assistant_turn_meaning": { - "schema_version": "assistant_turn_meaning_v1", - "raw_message": "а по документам?", - "effective_message": "анализ документов", - "normalized_raw_message": "а по документам?", - "normalized_effective_message": "анализ документов", - "asked_domain_family": "counterparty", - "asked_action_family": "list_documents", - "explicit_intent_candidate": "list_documents_by_counterparty", - "explicit_entity_candidates": [], - "meaning_confidence": "medium", - "intent_override_strength": "explicit_current_turn_intent", - "carryover_budget": "matching_family_only", - "unsupported_but_understood_family": null, - "stale_replay_forbidden": false, - "reason_codes": [ - "counterparty_documents_current_turn_signal" - ] - }, - "address_mode": "address_query", - "address_mode_confidence": "medium", - "address_intent": "list_documents_by_counterparty", - "address_intent_confidence": "medium", - "strong_data_signal_detected": true, - "data_retrieval_signal_detected": false, - "semantic_contract_valid": true, - "semantic_apply_canonical_recommended": true, - "semantic_reason_codes": [], - "semantic_route_arbitration": { - "supported_address_intent_detected": true, - "strict_deep_investigation_bypass_allowed": false, - "semantic_deep_investigation_hint_detected": false, - "semantic_aggregate_shape_detected": false, - "exact_address_intent_protected_from_semantic_deep_hint": false, - "followup_semantic_override_to_deep_allowed": false - }, - "followup_context_detected": true, - "unsupported_address_intent_fallback_to_deep": false, - "deep_analysis_signal_fallback_to_deep": false, - "aggregate_analytics_signal_fallback_to_deep": false, - "deep_session_continuation_fallback_to_deep": false, - "answer_inspection_followup_over_grounded_answer": false, - "final_decision": { - "run_address_lane": true, - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "address_mode_classifier_detected", - "living_mode": "address_data", - "living_reason": "address_lane_triggered" - } - }, - "dialog_continuation_contract_v2": { - "schema_version": "address_dialog_continuation_contract_v2", - "source_message": "а по документам?", - "effective_message": "анализ документов", - "decision": "continue_previous", - "decision_reasons": [ - "followup_context_detected", - "effective_message_rewritten_by_predecompose" - ], - "followup_context_applied": true, - "previous_intent": "customer_revenue_and_payments", - "target_intent": "list_documents_by_counterparty", - "intent_selection_mode": "carry_previous_intent", - "anchor_type": "counterparty", - "anchor_value": "Группа СВК", - "implicit_continuation_signal": false - }, - "address_retry_audit": { - "attempted": false, - "reason": null, - "initial_limited_category": null, - "retry_message": null, - "retry_used_followup_context": false, - "retry_result_category": null - }, - "answer_structure_v11": null, - "investigation_state_snapshot": null, - "normalized": null, - "normalizer_output": { - "trace_id": "9r3dTJm0UiyMev", - "prompt_version": "normalizer_v2_0_2", - "applied": true, - "effective_message": "анализ документов" - }, - "address_followup_offer": { - "enabled": true, - "source_intent": "list_documents_by_counterparty", - "anchor_type": "counterparty", - "anchor_value": "Группа СВК", - "suggested_intents": [ - "bank_operations_by_counterparty", - "list_contracts_by_counterparty" - ] - }, - "assistant_runtime_contract_v1": { - "schema_version": "assistant_runtime_contracts_v1", - "transition_contract_id": "T2", - "transition_contract_title": "Root Follow-Up With Date Or Scope Change", - "transition_contract_reason": [ - "root_followup_continue_previous" - ], - "capability_contract_id": "documents_drilldown", - "capability_contract_reason": [ - "debug_capability_id_matched_contract" - ], - "truth_gate_contract_status": "full_confirmed", - "carryover_eligibility": "root_only" - }, - "transition_contract_id": "T2", - "capability_contract_id": "documents_drilldown", - "truth_gate_contract_status": "full_confirmed", - "assistant_truth_answer_policy_v1": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "truth_gate": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_matched", - "docs_or_bank_signal_detected", - "anchor_like_token_detected", - "document_list_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "period_from_followup_context", - "address_followup_context_applied" - ], - "source_truth_gate_status": "full_confirmed", - "blocked_or_limited_explanation": null - }, - "answer_shape": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "confirmed_factual", - "reply_type": "factual", - "capability_contract_id": "documents_drilldown", - "transition_contract_id": "T2", - "may_state_confirmed_facts": true, - "must_include_limitation": false, - "may_power_followup": true, - "required_sections": [ - "direct_answer", - "evidence_basis" - ], - "downgrade_only": true - } - }, - "coverage_gate_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_matched", - "docs_or_bank_signal_detected", - "anchor_like_token_detected", - "document_list_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "period_from_followup_context", - "address_followup_context_applied" - ], - "source_truth_gate_status": "full_confirmed", - "blocked_or_limited_explanation": null - }, - "answer_shape_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "confirmed_factual", - "reply_type": "factual", - "capability_contract_id": "documents_drilldown", - "transition_contract_id": "T2", - "may_state_confirmed_facts": true, - "must_include_limitation": false, - "may_power_followup": true, - "required_sections": [ - "direct_answer", - "evidence_basis" - ], - "downgrade_only": true - }, - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "answer_shape": "confirmed_factual", - "assistant_state_transition_v1": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": "T2", - "transition_title": "Root Follow-Up With Date Or Scope Change", - "application_status": "applied", - "declared_carryover_depth": "root_only", - "truth_gate_carryover_depth": "root_only", - "effective_carryover_depth": "root_only", - "required_prior_state": [ - "root_frame_state" - ], - "expected_answer_mode": "confirmed", - "state_mutations": [ - "update_root_frame_state", - "run_exact_route", - "refresh_coverage_gate_state" - ], - "forbidden_carryover": [ - "incompatible_selected_object_route" - ], - "state_actions": { - "living_mode_state": "update", - "root_frame_state": "update", - "selected_object_frame_state": "clear", - "meta_frame_state": "clear", - "clarification_state": "clear", - "coverage_gate_state": "create", - "answer_context_state": "create" - }, - "coverage_gate_state": { - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_matched", - "docs_or_bank_signal_detected", - "anchor_like_token_detected", - "document_list_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "period_from_followup_context", - "address_followup_context_applied" - ] - }, - "reason_codes": [ - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "docs_or_bank_signal_detected", - "anchor_like_token_detected", - "document_list_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "period_from_followup_context", - "address_followup_context_applied" - ] - }, - "state_transition_contract": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": "T2", - "transition_title": "Root Follow-Up With Date Or Scope Change", - "application_status": "applied", - "declared_carryover_depth": "root_only", - "truth_gate_carryover_depth": "root_only", - "effective_carryover_depth": "root_only", - "required_prior_state": [ - "root_frame_state" - ], - "expected_answer_mode": "confirmed", - "state_mutations": [ - "update_root_frame_state", - "run_exact_route", - "refresh_coverage_gate_state" - ], - "forbidden_carryover": [ - "incompatible_selected_object_route" - ], - "state_actions": { - "living_mode_state": "update", - "root_frame_state": "update", - "selected_object_frame_state": "clear", - "meta_frame_state": "clear", - "clarification_state": "clear", - "coverage_gate_state": "create", - "answer_context_state": "create" - }, - "coverage_gate_state": { - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_matched", - "docs_or_bank_signal_detected", - "anchor_like_token_detected", - "document_list_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "period_from_followup_context", - "address_followup_context_applied" - ] - }, - "reason_codes": [ - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "docs_or_bank_signal_detected", - "anchor_like_token_detected", - "document_list_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "period_from_followup_context", - "address_followup_context_applied" - ] - }, - "state_transition_id": "T2", - "state_transition_status": "applied", - "effective_carryover_depth": "root_only", - "assistant_capability_binding_v1": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "documents_drilldown", - "capability_contract_id": "documents_drilldown", - "binding_status": "bound", - "binding_action": "allow", - "runtime_lane_expected": "address_exact", - "runtime_lane_observed": "address_exact", - "execution_adapter": "AddressQueryService", - "transition_id": "T2", - "transition_allowed": true, - "required_anchors": [], - "provided_anchors": [ - "sort", - "limit", - "counterparty", - "period_from", - "period_to" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": "counterparty_or_contract_document_list", - "answer_object_shape": "documents_drilldown_list", - "truth_gate_behavior": "partial_or_blocked_if_evidence_insufficient", - "truth_fallback_allowed": true, - "answer_shape_compatible": true, - "violations": [], - "reason_codes": [ - "binding_status_bound", - "binding_action_allow", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "docs_or_bank_signal_detected", - "anchor_like_token_detected", - "document_list_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "period_from_followup_context", - "address_followup_context_applied" - ] - }, - "capability_binding_contract": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "documents_drilldown", - "capability_contract_id": "documents_drilldown", - "binding_status": "bound", - "binding_action": "allow", - "runtime_lane_expected": "address_exact", - "runtime_lane_observed": "address_exact", - "execution_adapter": "AddressQueryService", - "transition_id": "T2", - "transition_allowed": true, - "required_anchors": [], - "provided_anchors": [ - "sort", - "limit", - "counterparty", - "period_from", - "period_to" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": "counterparty_or_contract_document_list", - "answer_object_shape": "documents_drilldown_list", - "truth_gate_behavior": "partial_or_blocked_if_evidence_insufficient", - "truth_fallback_allowed": true, - "answer_shape_compatible": true, - "violations": [], - "reason_codes": [ - "binding_status_bound", - "binding_action_allow", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "docs_or_bank_signal_detected", - "anchor_like_token_detected", - "document_list_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "period_from_followup_context", - "address_followup_context_applied" - ] - }, - "capability_binding_status": "bound", - "capability_binding_action": "allow", - "capability_binding_violations": [], - "assistant_mcp_discovery_entry_point_v1": { - "schema_version": "assistant_mcp_discovery_runtime_entry_point_v1", - "policy_owner": "assistantMcpDiscoveryRuntimeEntryPoint", - "entry_status": "bridge_executed", - "hot_runtime_wired": false, - "discovery_attempted": true, - "turn_input": { - "schema_version": "assistant_mcp_discovery_turn_input_v1", - "policy_owner": "assistantMcpDiscoveryTurnInputAdapter", - "adapter_status": "ready", - "should_run_discovery": true, - "semantic_data_need": "document evidence", - "turn_meaning_ref": { - "asked_domain_family": "documents", - "asked_action_family": "list_documents", - "explicit_entity_candidates": [ - "Группа СВК" - ], - "explicit_date_scope": "2021", - "unsupported_but_understood_family": "document_evidence", - "stale_replay_forbidden": true - }, - "source_signal": "assistant_turn_meaning", - "reason_codes": [ - "mcp_discovery_value_flow_grounded_document_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available" - ] - }, - "bridge": { - "schema_version": "assistant_mcp_discovery_runtime_bridge_v1", - "policy_owner": "assistantMcpDiscoveryRuntimeBridge", - "bridge_status": "answer_draft_ready", - "hot_runtime_wired": false, - "planner": { - "schema_version": "assistant_mcp_discovery_planner_v1", - "policy_owner": "assistantMcpDiscoveryPlanner", - "planner_status": "ready_for_execution", - "semantic_data_need": "document evidence", - "selected_chain_id": "document_evidence", - "selected_chain_summary": "Resolve the business entity, fetch scoped document rows, and probe coverage before stating the checked document evidence.", - "proposed_primitives": [ - "resolve_entity_reference", - "query_documents", - "probe_coverage" - ], - "required_axes": [ - "counterparty", - "period", - "coverage_target" - ], - "discovery_plan": { - "schema_version": "assistant_mcp_discovery_plan_v1", - "policy_owner": "assistantMcpDiscoveryPolicy", - "plan_status": "allowed", - "semantic_data_need": "document evidence", - "turn_meaning_ref": { - "asked_domain_family": "documents", - "asked_action_family": "list_documents", - "explicit_entity_candidates": [ - "Группа СВК" - ], - "explicit_date_scope": "2021", - "unsupported_but_understood_family": "document_evidence", - "stale_replay_forbidden": true - }, - "allowed_primitives": [ - "resolve_entity_reference", - "query_documents", - "probe_coverage" - ], - "rejected_primitives": [], - "required_axes": [ - "counterparty", - "period", - "coverage_target" - ], - "execution_budget": { - "max_probe_count": 3, - "max_rows_per_probe": 100 - }, - "requires_evidence_gate": true, - "answer_may_use_raw_model_claims": false, - "reason_codes": [ - "guarded_mcp_discovery_plan_allowed" - ] - }, - "catalog_review": { - "schema_version": "assistant_mcp_catalog_plan_review_v1", - "policy_owner": "assistantMcpCatalogIndex", - "review_status": "catalog_compatible", - "reviewed_primitives": [ - "resolve_entity_reference", - "query_documents", - "probe_coverage" - ], - "missing_axes_by_primitive": {}, - "unknown_primitives": [], - "evidence_floors": { - "resolve_entity_reference": "rows_matched", - "query_documents": "rows_matched", - "probe_coverage": "source_summary" - }, - "reason_codes": [ - "catalog_plan_compatible" - ] - }, - "reason_codes": [ - "planner_selected_document_recipe", - "planner_ready_for_guarded_mcp_execution" - ] - }, - "pilot": { - "schema_version": "assistant_mcp_discovery_pilot_executor_v1", - "policy_owner": "assistantMcpDiscoveryPilotExecutor", - "pilot_status": "executed", - "pilot_scope": "counterparty_document_evidence_query_documents_v1", - "dry_run": { - "schema_version": "assistant_mcp_discovery_runtime_dry_run_v1", - "policy_owner": "assistantMcpDiscoveryRuntimeAdapter", - "adapter_status": "dry_run_ready", - "planner_status": "ready_for_execution", - "mcp_execution_performed": false, - "execution_steps": [ - { - "sequence": 1, - "primitive_id": "resolve_entity_reference", - "step_status": "ready", - "purpose": "Resolve a user-visible entity name to a concrete 1C reference candidate.", - "provided_axes": [ - "counterparty", - "period", - "coverage_target" - ], - "required_axis_options": [ - [ - "business_entity" - ], - [ - "counterparty" - ], - [ - "organization" - ], - [ - "contract" - ], - [ - "item" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "period", - "inn", - "document" - ], - "expected_fact_kinds": [ - "resolved_entity_ref", - "entity_conflict" - ], - "evidence_floor": "rows_matched", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_matched_rows_or_reports_no_match" - }, - { - "sequence": 2, - "primitive_id": "query_documents", - "step_status": "ready", - "purpose": "Fetch documents related to a scoped entity, period, contract, or movement explanation.", - "provided_axes": [ - "counterparty", - "period", - "coverage_target" - ], - "required_axis_options": [ - [ - "document" - ], - [ - "counterparty" - ], - [ - "contract" - ], - [ - "period", - "organization" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "account", - "amount", - "item", - "warehouse" - ], - "expected_fact_kinds": [ - "document_rows", - "document_dates", - "document_amounts" - ], - "evidence_floor": "rows_matched", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_matched_rows_or_reports_no_match" - }, - { - "sequence": 3, - "primitive_id": "probe_coverage", - "step_status": "ready", - "purpose": "Check whether the selected MCP/schema route can prove the requested fact or only support a bounded inference.", - "provided_axes": [ - "counterparty", - "period", - "coverage_target" - ], - "required_axis_options": [ - [ - "coverage_target" - ], - [ - "domain_family" - ], - [ - "primitive_id" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "period", - "organization", - "counterparty", - "document", - "account" - ], - "expected_fact_kinds": [ - "coverage_status", - "known_gaps" - ], - "evidence_floor": "source_summary", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_source_summary_or_limitation" - } - ], - "execution_budget": { - "max_probe_count": 3, - "max_rows_per_probe": 100 - }, - "evidence_gate": { - "required": true, - "expected_inputs": [ - "probe_results", - "confirmed_facts", - "inferred_facts", - "unknown_facts", - "source_rows_summary", - "query_limitations" - ], - "answer_may_use_raw_model_claims": false - }, - "user_facing_fallback": null, - "reason_codes": [ - "planner_selected_document_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution" - ] - }, - "mcp_execution_performed": true, - "executed_primitives": [ - "query_documents" - ], - "skipped_primitives": [ - "resolve_entity_reference", - "probe_coverage" - ], - "probe_results": [ - { - "primitive_id": "resolve_entity_reference", - "status": "skipped", - "rows_received": 0, - "rows_matched": 0, - "limitation": "pilot_only_executes_query_documents" - }, - { - "primitive_id": "query_documents", - "status": "ok", - "rows_received": 100, - "rows_matched": 3, - "limitation": null - }, - { - "primitive_id": "probe_coverage", - "status": "skipped", - "rows_received": 0, - "rows_matched": 0, - "limitation": "pilot_only_executes_query_documents" - } - ], - "evidence": { - "schema_version": "assistant_mcp_discovery_evidence_v1", - "policy_owner": "assistantMcpDiscoveryPolicy", - "evidence_status": "confirmed", - "coverage_status": "full", - "answer_permission": "confirmed_answer", - "confirmed_facts": [ - "В 1С найдены строки документов по контрагенту Группа СВК за 2021." - ], - "inferred_facts": [ - "Срез документов по контрагенту Группа СВК за 2021 ограничен только подтвержденными строками документов, найденными этим поиском." - ], - "unknown_facts": [ - "Полный исторический срез документов по контрагенту Группа СВК вне периода 2021 этим поиском не подтвержден." - ], - "source_rows_summary": "100 MCP document rows fetched, 3 matched document scope", - "query_plan": { - "schema_version": "assistant_mcp_discovery_plan_v1", - "policy_owner": "assistantMcpDiscoveryPolicy", - "plan_status": "allowed", - "semantic_data_need": "document evidence", - "turn_meaning_ref": { - "asked_domain_family": "documents", - "asked_action_family": "list_documents", - "explicit_entity_candidates": [ - "Группа СВК" - ], - "explicit_date_scope": "2021", - "unsupported_but_understood_family": "document_evidence", - "stale_replay_forbidden": true - }, - "allowed_primitives": [ - "resolve_entity_reference", - "query_documents", - "probe_coverage" - ], - "rejected_primitives": [], - "required_axes": [ - "counterparty", - "period", - "coverage_target" - ], - "execution_budget": { - "max_probe_count": 3, - "max_rows_per_probe": 100 - }, - "requires_evidence_gate": true, - "answer_may_use_raw_model_claims": false, - "reason_codes": [ - "guarded_mcp_discovery_plan_allowed" - ] - }, - "query_limitations": [ - "pilot_only_executes_query_documents" - ], - "confidence_reason": "confirmed_facts_backed_by_allowed_mcp_probe_rows", - "recommended_next_probe": "explain_evidence_basis", - "reason_codes": [ - "guarded_mcp_discovery_plan_allowed", - "confirmed_facts_with_allowed_mcp_evidence" - ] - }, - "source_rows_summary": "100 MCP document rows fetched, 3 matched document scope", - "derived_metadata_surface": null, - "derived_entity_resolution": null, - "derived_activity_period": null, - "derived_value_flow": null, - "derived_bidirectional_value_flow": null, - "query_limitations": [], - "reason_codes": [ - "planner_selected_document_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_query_documents_mcp_executed" - ] - }, - "answer_draft": { - "schema_version": "assistant_mcp_discovery_answer_draft_v1", - "policy_owner": "assistantMcpDiscoveryAnswerAdapter", - "answer_mode": "confirmed_with_bounded_inference", - "headline": "По документам по контрагенту Группа СВК за 2021 в 1С найдены подтвержденные строки; ответ ограничен проверенным окном и найденными строками.", - "confirmed_lines": [ - "В 1С найдены строки документов по контрагенту Группа СВК за 2021." - ], - "inference_lines": [ - "Срез документов по контрагенту Группа СВК за 2021 ограничен только подтвержденными строками документов, найденными этим поиском." - ], - "unknown_lines": [ - "Полный исторический срез документов по контрагенту Группа СВК вне периода 2021 этим поиском не подтвержден." - ], - "limitation_lines": [], - "next_step_line": null, - "internal_mechanics_allowed": false, - "must_not_claim": [ - "Do not expose MCP primitive names, query text, debug ids, or internal execution mechanics in the user answer.", - "Do not claim rows were checked when mcp_execution_performed=false.", - "Do not claim full document history outside the checked period.", - "Do not present the confirmed document rows as a complete document universe." - ], - "reason_codes": [ - "planner_selected_document_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_query_documents_mcp_executed", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference" - ] - }, - "user_facing_response_allowed": true, - "business_fact_answer_allowed": true, - "requires_user_clarification": false, - "reason_codes": [ - "planner_selected_document_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_query_documents_mcp_executed", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer" - ] - }, - "reason_codes": [ - "mcp_discovery_value_flow_grounded_document_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_document_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_query_documents_mcp_executed", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer" - ] - }, - "mcp_discovery_entry_status": "bridge_executed", - "mcp_discovery_attempted": true, - "mcp_discovery_hot_runtime_wired": false, - "mcp_discovery_bridge_status": "answer_draft_ready", - "mcp_discovery_answer_mode": "confirmed_with_bounded_inference", - "mcp_discovery_business_fact_answer_allowed": true, - "mcp_discovery_user_facing_response_allowed": true, - "mcp_discovery_requires_clarification": false, - "capability_binding_response_guard": { - "schema_version": "assistant_capability_binding_response_guard_v1", - "guard_owner": "assistantCapabilityBindingResponseGuard", - "applied": false, - "action": "allow", - "original_reply_type": "factual", - "guarded_reply_type": "factual", - "reason_codes": [ - "binding_status_bound", - "binding_action_allow", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "docs_or_bank_signal_detected", - "anchor_like_token_detected", - "document_list_signal_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "period_from_followup_context", - "address_followup_context_applied" - ] - }, - "mcp_discovery_response_policy_v1": { - "schema_version": "assistant_mcp_discovery_response_policy_v1", - "policy_owner": "assistantMcpDiscoveryResponsePolicy", - "decision": "keep_current_reply", - "applied": false, - "reply_text": "Контрагент: Группа СВК. Найдено документов: 2.\nКонтрагент: Группа СВК.\n1. 2021-11-10T12:00:07Z | Поступление на расчетный счет 00000000013 от 10.11.2021 12:00:07 | 0 / 0 | 20000 | аналитика: Группа СВК; Договор № 1-ПМ/2020 от 05.06.2020\n2. 2021-09-29T12:00:03Z | Поступление на расчетный счет 00000000012 от 29.09.2021 12:00:03 | 0 / 0 | 50000 | аналитика: Группа СВК; Договор № 1-ПМ/2020 от 05.06.2020", - "reply_source": "address_query_runtime_v1", - "candidate": { - "schema_version": "assistant_mcp_discovery_response_candidate_v1", - "policy_owner": "assistantMcpDiscoveryResponseCandidate", - "candidate_status": "ready_for_guarded_use", - "hot_runtime_wired": false, - "reply_type": "partial_coverage", - "reply_text": "Коротко: По документам по контрагенту Группа СВК за 2021 в 1С найдены подтвержденные строки; ответ ограничен проверенным окном и найденными строками.\n\nЧто подтверждено:\n- В 1С найдены строки документов по контрагенту Группа СВК за 2021.\n\nЧто можно сказать только как вывод:\n- Срез документов по контрагенту Группа СВК за 2021 ограничен только подтвержденными строками документов, найденными этим поиском.\n\nЧто не подтверждено:\n- Полный исторический срез документов по контрагенту Группа СВК вне периода 2021 этим поиском не подтвержден.", - "eligible_for_future_hot_runtime": true, - "must_keep_internal_mechanics_hidden": true, - "reason_codes": [ - "mcp_discovery_value_flow_grounded_document_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_document_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_query_documents_mcp_executed", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer", - "mcp_discovery_response_candidate_ready_for_guarded_use", - "mcp_discovery_response_candidate_not_hot_wired" - ] - }, - "reason_codes": [ - "mcp_discovery_value_flow_grounded_document_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_document_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_query_documents_mcp_executed", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer", - "mcp_discovery_response_candidate_ready_for_guarded_use", - "mcp_discovery_response_candidate_not_hot_wired", - "mcp_discovery_response_policy_not_unsupported_boundary", - "mcp_discovery_response_policy_not_discovery_ready_chat_candidate", - "mcp_discovery_response_policy_not_discovery_ready_deep_candidate", - "mcp_discovery_response_policy_keep_aligned_factual_address_reply", - "mcp_discovery_response_policy_keep_factual_address_continuation_target", - "mcp_discovery_response_policy_keep_full_confirmed_factual_address_reply", - "mcp_discovery_response_policy_kept_current_reply" - ] - }, - "mcp_discovery_response_candidate_v1": { - "schema_version": "assistant_mcp_discovery_response_candidate_v1", - "policy_owner": "assistantMcpDiscoveryResponseCandidate", - "candidate_status": "ready_for_guarded_use", - "hot_runtime_wired": false, - "reply_type": "partial_coverage", - "reply_text": "Коротко: По документам по контрагенту Группа СВК за 2021 в 1С найдены подтвержденные строки; ответ ограничен проверенным окном и найденными строками.\n\nЧто подтверждено:\n- В 1С найдены строки документов по контрагенту Группа СВК за 2021.\n\nЧто можно сказать только как вывод:\n- Срез документов по контрагенту Группа СВК за 2021 ограничен только подтвержденными строками документов, найденными этим поиском.\n\nЧто не подтверждено:\n- Полный исторический срез документов по контрагенту Группа СВК вне периода 2021 этим поиском не подтвержден.", - "eligible_for_future_hot_runtime": true, - "must_keep_internal_mechanics_hidden": true, - "reason_codes": [ - "mcp_discovery_value_flow_grounded_document_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_document_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_query_documents_mcp_executed", - "confirmed_facts_with_allowed_mcp_evidence", - "answer_mode_confirmed_with_bounded_inference", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer", - "mcp_discovery_response_candidate_ready_for_guarded_use", - "mcp_discovery_response_candidate_not_hot_wired" - ] - }, - "mcp_discovery_response_applied": false - } - }, - { - "message_id": "msg-gHEt382zue", - "session_id": "asst-A0MzXXn0RG", - "role": "user", - "text": "а по движениям?", - "reply_type": null, - "created_at": "2026-04-22T12:50:25.062Z", - "trace_id": null, - "debug": null - }, - { - "message_id": "msg-hjywu9AloN", - "session_id": "asst-A0MzXXn0RG", - "role": "assistant", - "text": "Коротко: По движениям по контрагенту Группа СВК за 2021 полный срез не подтвержден; пока есть только ограниченная граница проверенного окна 1С.\n\nЧто можно сказать только как вывод:\n- По движениям по контрагенту Группа СВК за 2021 удалось проверить только ограниченный срез 1С; подтвержденных строк движений этим поиском не найдено.\n\nЧто не подтверждено:\n- Полный исторический срез движений по контрагенту Группа СВК вне периода 2021 этим поиском не подтвержден.", - "reply_type": "partial_coverage", - "created_at": "2026-04-22T12:50:39.680Z", - "trace_id": "address-IAuenZXzjU", - "debug": { - "trace_id": "address-IAuenZXzjU", - "prompt_version": "address_query_runtime_v1", - "schema_version": "address_query_runtime_v1", - "fallback_type": "none", - "route_summary": null, - "fragments": [], - "requirements_extracted": [], - "coverage_report": { - "requirements_total": 0, - "requirements_covered": 0, - "requirements_uncovered": [], - "requirements_partially_covered": [], - "clarification_needed_for": [], - "out_of_scope_requirements": [] - }, - "routes": [], - "retrieval_status": [], - "retrieval_results": [], - "answer_grounding_check": { - "status": "grounded", - "route_subject_match": true, - "missing_requirements": [], - "reasons": [ - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "period_from_followup_context", - "address_followup_context_applied" - ], - "why_included_summary": [], - "selection_reason_summary": [] - }, - "dropped_intent_segments": [], - "detected_mode": "address_query", - "detected_mode_confidence": "medium", - "query_shape": "UNKNOWN", - "query_shape_confidence": "low", - "detected_intent": "list_documents_by_counterparty", - "detected_intent_confidence": "low", - "extracted_filters": { - "sort": "period_desc", - "limit": 20, - "counterparty": "Группа СВК", - "period_from": "2021-01-01", - "period_to": "2021-12-31" - }, - "missing_required_filters": [], - "selected_recipe": "address_documents_by_counterparty_v1", - "mcp_call_status_legacy": "matched_non_empty", - "account_scope_mode": "preferred", - "account_scope_fallback_applied": false, - "anchor_type": "counterparty", - "anchor_value_raw": "Группа СВК", - "anchor_value_resolved": "Группа СВК", - "resolver_confidence": "high", - "ambiguity_count": 0, - "match_failure_stage": "none", - "match_failure_reason": null, - "mcp_call_status": "matched_non_empty", - "rows_fetched": 20, - "raw_rows_received": 20, - "rows_after_account_scope": 2, - "rows_after_recipe_filter": 2, - "rows_materialized": 2, - "rows_matched": 2, - "raw_row_keys_sample": [ - "Период", - "Регистратор", - "СчетДт", - "СчетКт", - "Сумма", - "Контрагент", - "Договор", - "Period", - "Registrator", - "Amount" - ], - "materialization_drop_reason": "none", - "account_token_raw": null, - "account_token_normalized": null, - "account_scope_fields_checked": [ - "account_dt", - "account_kt", - "registrator", - "analytics" - ], - "account_scope_match_strategy": "account_code_regex_plus_alias_map_v1", - "account_scope_drop_reason": "not_applicable", - "runtime_readiness": "LIVE_QUERYABLE_WITH_LIMITS", - "limited_reason_category": null, - "response_type": "FACTUAL_LIST", - "as_of_date_basis": "implicit_current_snapshot", - "capability_id": "documents_drilldown", - "capability_layer": "navigation", - "capability_route_mode": "exact", - "capability_route_enabled": true, - "capability_route_reason": "drilldown_route_enabled", - "shadow_route_status": "skipped", - "route_expectation_status": "matched", - "route_expectation_reason": "route_expectation_matched", - "route_expectation_expected_selected_recipes": [ - "address_documents_by_counterparty_v1" - ], - "route_expectation_expected_requested_result_modes": [], - "route_expectation_expected_result_modes": [ - "heuristic_candidates", - "confirmed_balance" - ], - "execution_lane": "address_query", - "llm_decomposition_applied": false, - "llm_decomposition_attempted": true, - "llm_provider_used": "local", - "llm_decomposition_trace_id": "lRkG5QVEhqO-rD", - "llm_decomposition_effective_message": "а по движениям?", - "llm_decomposition_reason": "normalized_fragment_rejected_semantic_guard", - "llm_canonical_candidate_detected": true, - "llm_predecompose_contract": { - "schema_version": "address_llm_predecompose_contract_v1", - "source_message": "а по движениям?", - "canonical_message": "а по движениям?", - "mode": "unsupported", - "mode_confidence": "low", - "query_shape": "UNKNOWN", - "query_shape_confidence": "low", - "intent": "unknown", - "intent_confidence": "low", - "entities": { - "account": null, - "counterparty": null, - "contract": null, - "document_type": null, - "document_ref": null, - "organization": null - }, - "period": { - "scope": "unspecified", - "period_from": null, - "period_to": null, - "as_of_date": null, - "has_explicit_period": false - }, - "semantics": { - "scope_kind": "implicit_self_scope", - "anchor_kind": "self_scope", - "anchor_value": null, - "date_scope_kind": "implicit_current", - "date_basis_hint": "implicit_current_snapshot", - "self_scope_detected": true, - "selected_object_scope_detected": false - }, - "aggregation_profile": "unknown" - }, - "fallback_rule_hit": null, - "sanitized_user_message": "а по движениям?", - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "followup_context_detected", - "orchestration_contract_v1": { - "schema_version": "assistant_orchestration_contract_v1", - "hard_meta_mode": null, - "provider_execution": { - "schema_version": "assistant_provider_execution_contract_v1", - "policy_owner": "assistantProviderExecutionPolicy", - "provider_mode": "unknown", - "normalized_provider": null, - "use_mock": false, - "base_url_configured": false, - "llm_runtime_unavailable_detected": false, - "living_mode_forced_deep": false, - "living_mode_forced_reason": null, - "reason_codes": [ - "provider_unknown" - ] - }, - "assistant_turn_meaning": { - "schema_version": "assistant_turn_meaning_v1", - "raw_message": "а по движениям?", - "effective_message": "а по движениям?", - "normalized_raw_message": "а по движениям?", - "normalized_effective_message": "а по движениям?", - "asked_domain_family": null, - "asked_action_family": null, - "explicit_intent_candidate": null, - "explicit_entity_candidates": [], - "meaning_confidence": "low", - "intent_override_strength": "none", - "carryover_budget": "normal", - "unsupported_but_understood_family": null, - "stale_replay_forbidden": false, - "reason_codes": [] - }, - "address_mode": "unsupported", - "address_mode_confidence": "low", - "address_intent": "unknown", - "address_intent_confidence": "low", - "strong_data_signal_detected": false, - "data_retrieval_signal_detected": false, - "semantic_contract_valid": false, - "semantic_apply_canonical_recommended": false, - "semantic_reason_codes": [ - "unsupported_low_confidence_contract" - ], - "semantic_route_arbitration": { - "supported_address_intent_detected": false, - "strict_deep_investigation_bypass_allowed": false, - "semantic_deep_investigation_hint_detected": false, - "semantic_aggregate_shape_detected": false, - "exact_address_intent_protected_from_semantic_deep_hint": false, - "followup_semantic_override_to_deep_allowed": true - }, - "followup_context_detected": true, - "unsupported_address_intent_fallback_to_deep": false, - "deep_analysis_signal_fallback_to_deep": false, - "aggregate_analytics_signal_fallback_to_deep": false, - "deep_session_continuation_fallback_to_deep": false, - "answer_inspection_followup_over_grounded_answer": false, - "final_decision": { - "run_address_lane": true, - "tool_gate_decision": "run_address_lane", - "tool_gate_reason": "followup_context_detected", - "living_mode": "address_data", - "living_reason": "address_lane_triggered" - } - }, - "dialog_continuation_contract_v2": { - "schema_version": "address_dialog_continuation_contract_v2", - "source_message": "а по движениям?", - "effective_message": "а по движениям?", - "decision": "continue_previous", - "decision_reasons": [ - "followup_context_detected" - ], - "followup_context_applied": true, - "previous_intent": "list_documents_by_counterparty", - "target_intent": "list_documents_by_counterparty", - "intent_selection_mode": "carry_previous_intent", - "anchor_type": "counterparty", - "anchor_value": "Группа СВК", - "implicit_continuation_signal": false - }, - "address_retry_audit": { - "attempted": false, - "reason": null, - "initial_limited_category": null, - "retry_message": null, - "retry_used_followup_context": false, - "retry_result_category": null - }, - "answer_structure_v11": null, - "investigation_state_snapshot": null, - "normalized": null, - "normalizer_output": { - "trace_id": "lRkG5QVEhqO-rD", - "prompt_version": "normalizer_v2_0_2", - "applied": false, - "effective_message": "а по движениям?" - }, - "address_followup_offer": { - "enabled": true, - "source_intent": "list_documents_by_counterparty", - "anchor_type": "counterparty", - "anchor_value": "Группа СВК", - "suggested_intents": [ - "bank_operations_by_counterparty", - "list_contracts_by_counterparty" - ] - }, - "assistant_runtime_contract_v1": { - "schema_version": "assistant_runtime_contracts_v1", - "transition_contract_id": "T2", - "transition_contract_title": "Root Follow-Up With Date Or Scope Change", - "transition_contract_reason": [ - "root_followup_continue_previous" - ], - "capability_contract_id": "documents_drilldown", - "capability_contract_reason": [ - "debug_capability_id_matched_contract" - ], - "truth_gate_contract_status": "full_confirmed", - "carryover_eligibility": "root_only" - }, - "transition_contract_id": "T2", - "capability_contract_id": "documents_drilldown", - "truth_gate_contract_status": "full_confirmed", - "assistant_truth_answer_policy_v1": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "truth_gate": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "period_from_followup_context", - "address_followup_context_applied" - ], - "source_truth_gate_status": "full_confirmed", - "blocked_or_limited_explanation": null - }, - "answer_shape": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "confirmed_factual", - "reply_type": "factual", - "capability_contract_id": "documents_drilldown", - "transition_contract_id": "T2", - "may_state_confirmed_facts": true, - "must_include_limitation": false, - "may_power_followup": true, - "required_sections": [ - "direct_answer", - "evidence_basis" - ], - "downgrade_only": true - } - }, - "coverage_gate_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "period_from_followup_context", - "address_followup_context_applied" - ], - "source_truth_gate_status": "full_confirmed", - "blocked_or_limited_explanation": null - }, - "answer_shape_contract": { - "schema_version": "assistant_truth_answer_policy_runtime_v1", - "policy_owner": "assistantTruthAnswerPolicyRuntimeAdapter", - "answer_shape": "confirmed_factual", - "reply_type": "factual", - "capability_contract_id": "documents_drilldown", - "transition_contract_id": "T2", - "may_state_confirmed_facts": true, - "must_include_limitation": false, - "may_power_followup": true, - "required_sections": [ - "direct_answer", - "evidence_basis" - ], - "downgrade_only": true - }, - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "answer_shape": "confirmed_factual", - "assistant_state_transition_v1": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": "T2", - "transition_title": "Root Follow-Up With Date Or Scope Change", - "application_status": "applied", - "declared_carryover_depth": "root_only", - "truth_gate_carryover_depth": "root_only", - "effective_carryover_depth": "root_only", - "required_prior_state": [ - "root_frame_state" - ], - "expected_answer_mode": "confirmed", - "state_mutations": [ - "update_root_frame_state", - "run_exact_route", - "refresh_coverage_gate_state" - ], - "forbidden_carryover": [ - "incompatible_selected_object_route" - ], - "state_actions": { - "living_mode_state": "update", - "root_frame_state": "update", - "selected_object_frame_state": "clear", - "meta_frame_state": "clear", - "clarification_state": "clear", - "coverage_gate_state": "create", - "answer_context_state": "create" - }, - "coverage_gate_state": { - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "period_from_followup_context", - "address_followup_context_applied" - ] - }, - "reason_codes": [ - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "period_from_followup_context", - "address_followup_context_applied" - ] - }, - "state_transition_contract": { - "schema_version": "assistant_state_transition_runtime_v1", - "state_owner": "assistantStateTransitionRuntimeAdapter", - "transition_id": "T2", - "transition_title": "Root Follow-Up With Date Or Scope Change", - "application_status": "applied", - "declared_carryover_depth": "root_only", - "truth_gate_carryover_depth": "root_only", - "effective_carryover_depth": "root_only", - "required_prior_state": [ - "root_frame_state" - ], - "expected_answer_mode": "confirmed", - "state_mutations": [ - "update_root_frame_state", - "run_exact_route", - "refresh_coverage_gate_state" - ], - "forbidden_carryover": [ - "incompatible_selected_object_route" - ], - "state_actions": { - "living_mode_state": "update", - "root_frame_state": "update", - "selected_object_frame_state": "clear", - "meta_frame_state": "clear", - "clarification_state": "clear", - "coverage_gate_state": "create", - "answer_context_state": "create" - }, - "coverage_gate_state": { - "coverage_status": "full", - "evidence_grade": "strong", - "grounding_status": "grounded", - "truth_mode": "confirmed", - "carryover_eligibility": "root_only", - "reason_codes": [ - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "period_from_followup_context", - "address_followup_context_applied" - ] - }, - "reason_codes": [ - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "period_from_followup_context", - "address_followup_context_applied" - ] - }, - "state_transition_id": "T2", - "state_transition_status": "applied", - "effective_carryover_depth": "root_only", - "assistant_capability_binding_v1": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "documents_drilldown", - "capability_contract_id": "documents_drilldown", - "binding_status": "bound", - "binding_action": "allow", - "runtime_lane_expected": "address_exact", - "runtime_lane_observed": "address_exact", - "execution_adapter": "AddressQueryService", - "transition_id": "T2", - "transition_allowed": true, - "required_anchors": [], - "provided_anchors": [ - "sort", - "limit", - "counterparty", - "period_from", - "period_to" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": "counterparty_or_contract_document_list", - "answer_object_shape": "documents_drilldown_list", - "truth_gate_behavior": "partial_or_blocked_if_evidence_insufficient", - "truth_fallback_allowed": true, - "answer_shape_compatible": true, - "violations": [], - "reason_codes": [ - "binding_status_bound", - "binding_action_allow", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "period_from_followup_context", - "address_followup_context_applied" - ] - }, - "capability_binding_contract": { - "schema_version": "assistant_capability_runtime_binding_v1", - "binding_owner": "assistantCapabilityRuntimeBindingAdapter", - "capability_id": "documents_drilldown", - "capability_contract_id": "documents_drilldown", - "binding_status": "bound", - "binding_action": "allow", - "runtime_lane_expected": "address_exact", - "runtime_lane_observed": "address_exact", - "execution_adapter": "AddressQueryService", - "transition_id": "T2", - "transition_allowed": true, - "required_anchors": [], - "provided_anchors": [ - "sort", - "limit", - "counterparty", - "period_from", - "period_to" - ], - "missing_anchors": [], - "requires_focus_object": false, - "focus_object_binding_status": "not_required", - "result_shape": "counterparty_or_contract_document_list", - "answer_object_shape": "documents_drilldown_list", - "truth_gate_behavior": "partial_or_blocked_if_evidence_insufficient", - "truth_fallback_allowed": true, - "answer_shape_compatible": true, - "violations": [], - "reason_codes": [ - "binding_status_bound", - "binding_action_allow", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "period_from_followup_context", - "address_followup_context_applied" - ] - }, - "capability_binding_status": "bound", - "capability_binding_action": "allow", - "capability_binding_violations": [], - "assistant_mcp_discovery_entry_point_v1": { - "schema_version": "assistant_mcp_discovery_runtime_entry_point_v1", - "policy_owner": "assistantMcpDiscoveryRuntimeEntryPoint", - "entry_status": "bridge_executed", - "hot_runtime_wired": false, - "discovery_attempted": true, - "turn_input": { - "schema_version": "assistant_mcp_discovery_turn_input_v1", - "policy_owner": "assistantMcpDiscoveryTurnInputAdapter", - "adapter_status": "ready", - "should_run_discovery": true, - "semantic_data_need": "movement evidence", - "turn_meaning_ref": { - "asked_domain_family": "movements", - "asked_action_family": "list_movements", - "explicit_entity_candidates": [ - "Группа СВК" - ], - "explicit_date_scope": "2021", - "unsupported_but_understood_family": "movement_evidence", - "stale_replay_forbidden": true - }, - "source_signal": "assistant_turn_meaning", - "reason_codes": [ - "mcp_discovery_document_evidence_grounded_movement_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available" - ] - }, - "bridge": { - "schema_version": "assistant_mcp_discovery_runtime_bridge_v1", - "policy_owner": "assistantMcpDiscoveryRuntimeBridge", - "bridge_status": "answer_draft_ready", - "hot_runtime_wired": false, - "planner": { - "schema_version": "assistant_mcp_discovery_planner_v1", - "policy_owner": "assistantMcpDiscoveryPlanner", - "planner_status": "ready_for_execution", - "semantic_data_need": "movement evidence", - "selected_chain_id": "movement_evidence", - "selected_chain_summary": "Resolve the business entity, fetch scoped movement rows, and probe coverage without pretending to have a full movement universe.", - "proposed_primitives": [ - "resolve_entity_reference", - "query_movements", - "probe_coverage" - ], - "required_axes": [ - "counterparty", - "period", - "coverage_target" - ], - "discovery_plan": { - "schema_version": "assistant_mcp_discovery_plan_v1", - "policy_owner": "assistantMcpDiscoveryPolicy", - "plan_status": "allowed", - "semantic_data_need": "movement evidence", - "turn_meaning_ref": { - "asked_domain_family": "movements", - "asked_action_family": "list_movements", - "explicit_entity_candidates": [ - "Группа СВК" - ], - "explicit_date_scope": "2021", - "unsupported_but_understood_family": "movement_evidence", - "stale_replay_forbidden": true - }, - "allowed_primitives": [ - "resolve_entity_reference", - "query_movements", - "probe_coverage" - ], - "rejected_primitives": [], - "required_axes": [ - "counterparty", - "period", - "coverage_target" - ], - "execution_budget": { - "max_probe_count": 3, - "max_rows_per_probe": 100 - }, - "requires_evidence_gate": true, - "answer_may_use_raw_model_claims": false, - "reason_codes": [ - "guarded_mcp_discovery_plan_allowed" - ] - }, - "catalog_review": { - "schema_version": "assistant_mcp_catalog_plan_review_v1", - "policy_owner": "assistantMcpCatalogIndex", - "review_status": "catalog_compatible", - "reviewed_primitives": [ - "resolve_entity_reference", - "query_movements", - "probe_coverage" - ], - "missing_axes_by_primitive": {}, - "unknown_primitives": [], - "evidence_floors": { - "resolve_entity_reference": "rows_matched", - "query_movements": "rows_matched", - "probe_coverage": "source_summary" - }, - "reason_codes": [ - "catalog_plan_compatible" - ] - }, - "reason_codes": [ - "planner_selected_movement_recipe", - "planner_ready_for_guarded_mcp_execution" - ] - }, - "pilot": { - "schema_version": "assistant_mcp_discovery_pilot_executor_v1", - "policy_owner": "assistantMcpDiscoveryPilotExecutor", - "pilot_status": "executed", - "pilot_scope": "counterparty_movement_evidence_query_movements_v1", - "dry_run": { - "schema_version": "assistant_mcp_discovery_runtime_dry_run_v1", - "policy_owner": "assistantMcpDiscoveryRuntimeAdapter", - "adapter_status": "dry_run_ready", - "planner_status": "ready_for_execution", - "mcp_execution_performed": false, - "execution_steps": [ - { - "sequence": 1, - "primitive_id": "resolve_entity_reference", - "step_status": "ready", - "purpose": "Resolve a user-visible entity name to a concrete 1C reference candidate.", - "provided_axes": [ - "counterparty", - "period", - "coverage_target" - ], - "required_axis_options": [ - [ - "business_entity" - ], - [ - "counterparty" - ], - [ - "organization" - ], - [ - "contract" - ], - [ - "item" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "period", - "inn", - "document" - ], - "expected_fact_kinds": [ - "resolved_entity_ref", - "entity_conflict" - ], - "evidence_floor": "rows_matched", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_matched_rows_or_reports_no_match" - }, - { - "sequence": 2, - "primitive_id": "query_movements", - "step_status": "ready", - "purpose": "Fetch or aggregate accounting/register movements for a scoped business question.", - "provided_axes": [ - "counterparty", - "period", - "coverage_target" - ], - "required_axis_options": [ - [ - "period", - "account" - ], - [ - "period", - "counterparty" - ], - [ - "period", - "organization" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "contract", - "document", - "amount", - "item", - "warehouse" - ], - "expected_fact_kinds": [ - "movement_rows", - "turnover", - "balance_delta" - ], - "evidence_floor": "rows_matched", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_matched_rows_or_reports_no_match" - }, - { - "sequence": 3, - "primitive_id": "probe_coverage", - "step_status": "ready", - "purpose": "Check whether the selected MCP/schema route can prove the requested fact or only support a bounded inference.", - "provided_axes": [ - "counterparty", - "period", - "coverage_target" - ], - "required_axis_options": [ - [ - "coverage_target" - ], - [ - "domain_family" - ], - [ - "primitive_id" - ] - ], - "missing_axis_options": [], - "optional_axes": [ - "period", - "organization", - "counterparty", - "document", - "account" - ], - "expected_fact_kinds": [ - "coverage_status", - "known_gaps" - ], - "evidence_floor": "source_summary", - "runtime_must_execute": true, - "dry_run_only": true, - "stop_condition": "stop_after_allowed_probe_returns_source_summary_or_limitation" - } - ], - "execution_budget": { - "max_probe_count": 3, - "max_rows_per_probe": 100 - }, - "evidence_gate": { - "required": true, - "expected_inputs": [ - "probe_results", - "confirmed_facts", - "inferred_facts", - "unknown_facts", - "source_rows_summary", - "query_limitations" - ], - "answer_may_use_raw_model_claims": false - }, - "user_facing_fallback": null, - "reason_codes": [ - "planner_selected_movement_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution" - ] - }, - "mcp_execution_performed": true, - "executed_primitives": [ - "query_movements" - ], - "skipped_primitives": [ - "resolve_entity_reference", - "probe_coverage" - ], - "probe_results": [ - { - "primitive_id": "resolve_entity_reference", - "status": "skipped", - "rows_received": 0, - "rows_matched": 0, - "limitation": "pilot_only_executes_query_movements" - }, - { - "primitive_id": "query_movements", - "status": "ok", - "rows_received": 100, - "rows_matched": 0, - "limitation": null - }, - { - "primitive_id": "probe_coverage", - "status": "skipped", - "rows_received": 0, - "rows_matched": 0, - "limitation": "pilot_only_executes_query_movements" - } - ], - "evidence": { - "schema_version": "assistant_mcp_discovery_evidence_v1", - "policy_owner": "assistantMcpDiscoveryPolicy", - "evidence_status": "inferred_only", - "coverage_status": "partial", - "answer_permission": "bounded_inference", - "confirmed_facts": [], - "inferred_facts": [ - "По движениям по контрагенту Группа СВК за 2021 удалось проверить только ограниченный срез 1С; подтвержденных строк движений этим поиском не найдено." - ], - "unknown_facts": [ - "Полный исторический срез движений по контрагенту Группа СВК вне периода 2021 этим поиском не подтвержден." - ], - "source_rows_summary": "100 MCP movement rows fetched, 0 matched movement scope", - "query_plan": { - "schema_version": "assistant_mcp_discovery_plan_v1", - "policy_owner": "assistantMcpDiscoveryPolicy", - "plan_status": "allowed", - "semantic_data_need": "movement evidence", - "turn_meaning_ref": { - "asked_domain_family": "movements", - "asked_action_family": "list_movements", - "explicit_entity_candidates": [ - "Группа СВК" - ], - "explicit_date_scope": "2021", - "unsupported_but_understood_family": "movement_evidence", - "stale_replay_forbidden": true - }, - "allowed_primitives": [ - "resolve_entity_reference", - "query_movements", - "probe_coverage" - ], - "rejected_primitives": [], - "required_axes": [ - "counterparty", - "period", - "coverage_target" - ], - "execution_budget": { - "max_probe_count": 3, - "max_rows_per_probe": 100 - }, - "requires_evidence_gate": true, - "answer_may_use_raw_model_claims": false, - "reason_codes": [ - "guarded_mcp_discovery_plan_allowed" - ] - }, - "query_limitations": [ - "pilot_only_executes_query_movements" - ], - "confidence_reason": "only_inferred_facts_available_from_allowed_mcp_probe_rows", - "recommended_next_probe": "explain_evidence_basis", - "reason_codes": [ - "guarded_mcp_discovery_plan_allowed", - "inferred_facts_require_bounded_answer" - ] - }, - "source_rows_summary": "100 MCP movement rows fetched, 0 matched movement scope", - "derived_metadata_surface": null, - "derived_entity_resolution": null, - "derived_activity_period": null, - "derived_value_flow": null, - "derived_bidirectional_value_flow": null, - "query_limitations": [], - "reason_codes": [ - "planner_selected_movement_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_query_movements_mcp_executed" - ] - }, - "answer_draft": { - "schema_version": "assistant_mcp_discovery_answer_draft_v1", - "policy_owner": "assistantMcpDiscoveryAnswerAdapter", - "answer_mode": "bounded_inference_only", - "headline": "По движениям по контрагенту Группа СВК за 2021 полный срез не подтвержден; пока есть только ограниченная граница проверенного окна 1С.", - "confirmed_lines": [], - "inference_lines": [ - "По движениям по контрагенту Группа СВК за 2021 удалось проверить только ограниченный срез 1С; подтвержденных строк движений этим поиском не найдено." - ], - "unknown_lines": [ - "Полный исторический срез движений по контрагенту Группа СВК вне периода 2021 этим поиском не подтвержден." - ], - "limitation_lines": [], - "next_step_line": null, - "internal_mechanics_allowed": false, - "must_not_claim": [ - "Do not expose MCP primitive names, query text, debug ids, or internal execution mechanics in the user answer.", - "Do not claim rows were checked when mcp_execution_performed=false.", - "Do not claim full movement history outside the checked period.", - "Do not present the confirmed movement rows as a complete movement universe.", - "Do not claim a confirmed business fact when confirmed_facts is empty." - ], - "reason_codes": [ - "planner_selected_movement_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_query_movements_mcp_executed", - "inferred_facts_require_bounded_answer", - "answer_mode_bounded_inference_only", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference" - ] - }, - "user_facing_response_allowed": true, - "business_fact_answer_allowed": true, - "requires_user_clarification": false, - "reason_codes": [ - "planner_selected_movement_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_query_movements_mcp_executed", - "inferred_facts_require_bounded_answer", - "answer_mode_bounded_inference_only", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer" - ] - }, - "reason_codes": [ - "mcp_discovery_document_evidence_grounded_movement_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_movement_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_query_movements_mcp_executed", - "inferred_facts_require_bounded_answer", - "answer_mode_bounded_inference_only", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer" - ] - }, - "mcp_discovery_entry_status": "bridge_executed", - "mcp_discovery_attempted": true, - "mcp_discovery_hot_runtime_wired": false, - "mcp_discovery_bridge_status": "answer_draft_ready", - "mcp_discovery_answer_mode": "bounded_inference_only", - "mcp_discovery_business_fact_answer_allowed": true, - "mcp_discovery_user_facing_response_allowed": true, - "mcp_discovery_requires_clarification": false, - "capability_binding_response_guard": { - "schema_version": "assistant_capability_binding_response_guard_v1", - "guard_owner": "assistantCapabilityBindingResponseGuard", - "applied": false, - "action": "allow", - "original_reply_type": "factual", - "guarded_reply_type": "factual", - "reason_codes": [ - "binding_status_bound", - "binding_action_allow", - "transition_status_applied", - "transition_T2", - "root_followup_continue_previous", - "debug_capability_id_matched_contract", - "truth_gate_full_confirmed", - "truth_mode_confirmed", - "route_expectation_matched", - "no_address_or_deep_signal", - "address_mode_from_followup_context", - "shape_not_detected", - "intent_not_supported_in_v1", - "intent_from_followup_context", - "counterparty_from_followup_context", - "period_from_followup_context", - "address_followup_context_applied" - ] - }, - "mcp_discovery_response_policy_v1": { - "schema_version": "assistant_mcp_discovery_response_policy_v1", - "policy_owner": "assistantMcpDiscoveryResponsePolicy", - "decision": "apply_candidate", - "applied": true, - "reply_text": "Коротко: По движениям по контрагенту Группа СВК за 2021 полный срез не подтвержден; пока есть только ограниченная граница проверенного окна 1С.\n\nЧто можно сказать только как вывод:\n- По движениям по контрагенту Группа СВК за 2021 удалось проверить только ограниченный срез 1С; подтвержденных строк движений этим поиском не найдено.\n\nЧто не подтверждено:\n- Полный исторический срез движений по контрагенту Группа СВК вне периода 2021 этим поиском не подтвержден.", - "reply_source": "mcp_discovery_response_candidate_guarded", - "candidate": { - "schema_version": "assistant_mcp_discovery_response_candidate_v1", - "policy_owner": "assistantMcpDiscoveryResponseCandidate", - "candidate_status": "ready_for_guarded_use", - "hot_runtime_wired": false, - "reply_type": "partial_coverage", - "reply_text": "Коротко: По движениям по контрагенту Группа СВК за 2021 полный срез не подтвержден; пока есть только ограниченная граница проверенного окна 1С.\n\nЧто можно сказать только как вывод:\n- По движениям по контрагенту Группа СВК за 2021 удалось проверить только ограниченный срез 1С; подтвержденных строк движений этим поиском не найдено.\n\nЧто не подтверждено:\n- Полный исторический срез движений по контрагенту Группа СВК вне периода 2021 этим поиском не подтвержден.", - "eligible_for_future_hot_runtime": true, - "must_keep_internal_mechanics_hidden": true, - "reason_codes": [ - "mcp_discovery_document_evidence_grounded_movement_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_movement_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_query_movements_mcp_executed", - "inferred_facts_require_bounded_answer", - "answer_mode_bounded_inference_only", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer", - "mcp_discovery_response_candidate_ready_for_guarded_use", - "mcp_discovery_response_candidate_not_hot_wired" - ] - }, - "reason_codes": [ - "mcp_discovery_document_evidence_grounded_movement_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_movement_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_query_movements_mcp_executed", - "inferred_facts_require_bounded_answer", - "answer_mode_bounded_inference_only", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer", - "mcp_discovery_response_candidate_ready_for_guarded_use", - "mcp_discovery_response_candidate_not_hot_wired", - "mcp_discovery_response_policy_not_unsupported_boundary", - "mcp_discovery_response_policy_not_discovery_ready_chat_candidate", - "mcp_discovery_response_policy_not_discovery_ready_deep_candidate", - "mcp_discovery_response_policy_semantic_conflict_allows_candidate_override", - "mcp_discovery_response_policy_candidate_applied" - ] - }, - "mcp_discovery_response_candidate_v1": { - "schema_version": "assistant_mcp_discovery_response_candidate_v1", - "policy_owner": "assistantMcpDiscoveryResponseCandidate", - "candidate_status": "ready_for_guarded_use", - "hot_runtime_wired": false, - "reply_type": "partial_coverage", - "reply_text": "Коротко: По движениям по контрагенту Группа СВК за 2021 полный срез не подтвержден; пока есть только ограниченная граница проверенного окна 1С.\n\nЧто можно сказать только как вывод:\n- По движениям по контрагенту Группа СВК за 2021 удалось проверить только ограниченный срез 1С; подтвержденных строк движений этим поиском не найдено.\n\nЧто не подтверждено:\n- Полный исторический срез движений по контрагенту Группа СВК вне периода 2021 этим поиском не подтвержден.", - "eligible_for_future_hot_runtime": true, - "must_keep_internal_mechanics_hidden": true, - "reason_codes": [ - "mcp_discovery_document_evidence_grounded_movement_followup", - "mcp_discovery_counterparty_from_followup_context", - "mcp_discovery_date_scope_from_followup_context", - "mcp_discovery_entity_scope_available", - "planner_selected_movement_recipe", - "planner_ready_for_guarded_mcp_execution", - "guarded_mcp_discovery_plan_allowed", - "catalog_plan_compatible", - "runtime_dry_run_ready_without_mcp_execution", - "pilot_query_movements_mcp_executed", - "inferred_facts_require_bounded_answer", - "answer_mode_bounded_inference_only", - "answer_contains_unknown_fact_boundary", - "answer_contains_bounded_inference", - "runtime_bridge_status_answer_draft_ready", - "runtime_bridge_not_wired_to_hot_assistant_answer", - "runtime_entry_point_bridge_executed", - "runtime_entry_point_not_wired_to_hot_assistant_answer", - "mcp_discovery_response_candidate_ready_for_guarded_use", - "mcp_discovery_response_candidate_not_hot_wired" - ] - }, - "mcp_discovery_response_applied": true - } - } - ], - "investigation_state": { - "schema_version": "investigation_state_v1", - "session_id": "asst-A0MzXXn0RG", - "status": "active", - "turn_index": 1, - "updated_at": "2026-04-22T12:47:10.289Z", - "question_id": "msg-3imrrOzInl", - "question_scope_id": "d:store_canonical|s:найди в 1с контрагента свк", - "scope_origin": "route_derived", - "focus": { - "domain": "store_canonical", - "period": null, - "primary_accounts": [], - "active_query_subject": "найди в 1С контрагента СВК" - }, - "narrowing_status": "not_needed", - "evidence_refs": [ - "claim-ev-jGuVsEk8Ys", - "claim-ev-2GMHlE3lTO", - "claim-ev-h_rDF_6woq", - "claim-ev-89OYZKE83-", - "claim-ev-ijBOnpMIHN", - "claim-ev-g8JcnDfT8D" - ], - "open_uncertainties": [ - "Это read-only snapshot, а не онлайн-состояние 1С.", - "Domain purity guardrail не применялся." - ], - "last_answer_mode": "partial_coverage", - "followup_context": { - "previous_question_id": null, - "last_user_message": "найди в 1С контрагента СВК", - "referenced_requirement_ids": [ - "R1" - ], - "active_domain": "store_canonical", - "active_requirement_ids": [ - "R1" - ], - "uncovered_requirement_ids": [], - "last_problem_unit_id": "pu-unresolved_settlement_cluster-1", - "settlement_next_actions": [], - "evidence_summary": [ - "R1:ok:store_canonical" - ], - "question_scope_id": "d:store_canonical|s:найди в 1с контрагента свк", - "scope_origin": "route_derived" - }, - "query_mode_hint": "direct_answer", - "problem_unit_state": { - "active_problem_units": [ - "pu-unresolved_settlement_cluster-1", - "pu-unresolved_settlement_cluster-2", - "pu-unresolved_settlement_cluster-3", - "pu-unresolved_settlement_cluster-4", - "pu-unresolved_settlement_cluster-5", - "pu-unresolved_settlement_cluster-6" - ], - "resolved_problem_units": [], - "problem_unit_backlinks": [ - { - "problem_unit_id": "pu-unresolved_settlement_cluster-1", - "entity_backlinks": [ - { - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "c921c08a-c117-11ea-a2e2-00155d012600" - } - ] - }, - { - "problem_unit_id": "pu-unresolved_settlement_cluster-2", - "entity_backlinks": [ - { - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "5dfabe1f-c117-11ea-a2e2-00155d012600" - } - ] - }, - { - "problem_unit_id": "pu-unresolved_settlement_cluster-3", - "entity_backlinks": [ - { - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "2fdf7d2b-c117-11ea-a2e2-00155d012600" - } - ] - }, - { - "problem_unit_id": "pu-unresolved_settlement_cluster-4", - "entity_backlinks": [ - { - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "24f17575-c117-11ea-a2e2-00155d012600" - } - ] - }, - { - "problem_unit_id": "pu-unresolved_settlement_cluster-5", - "entity_backlinks": [ - { - "entity": "Document_СписаниеСРасчетногоСчета", - "id": "6f0947d8-bf77-11ea-a2e1-00155d012600" - } - ] - }, - { - "problem_unit_id": "pu-unresolved_settlement_cluster-6", - "entity_backlinks": [ - { - "entity": "Document_ПоступлениеТоваровУслуг", - "id": "d57e16a8-b090-11ea-a2db-00155d012600" - } - ] - } - ], - "focus_problem_types": [ - "unresolved_settlement_cluster" - ] - } - }, - "address_navigation_state": { - "schema_version": "address_navigation_state_v1", - "session_id": "asst-A0MzXXn0RG", - "updated_at": "2026-04-22T12:50:39.680Z", - "session_context": { - "active_result_set_id": "rs-msg-hjywu9AloN", - "active_focus_object": { - "object_type": "counterparty", - "object_id": "counterparty:группа свк", - "label": "Группа СВК", - "provenance_result_set_id": "rs-msg-hjywu9AloN", - "selected_at": "2026-04-22T12:50:39.680Z" - }, - "last_confirmed_route": "address_documents_by_counterparty_v1", - "date_scope": { - "as_of_date": null, - "period_from": "2021-01-01", - "period_to": "2021-12-31" - }, - "organization_scope": null - }, - "result_sets": [ - { - "result_set_id": "rs-msg-M6G719WuQf", - "type": "counterparty_list", - "intent": "customer_revenue_and_payments", - "route_id": "address_customer_revenue_and_payments_v1", - "filters": { - "sort": "period_desc", - "period_to": "2026-04-22", - "counterparty": "Группа СВК" - }, - "source_refs": [ - "address_customer_revenue_and_payments_v1" - ], - "entity_refs": [], - "created_from_turn": 5, - "created_at": "2026-04-22T12:48:07.373Z" - }, - { - "result_set_id": "rs-msg-E59dy0CiJo", - "type": "counterparty_list", - "intent": "customer_revenue_and_payments", - "route_id": "address_customer_revenue_and_payments_v1", - "filters": { - "sort": "period_desc", - "period_from": "2021-01-01", - "period_to": "2021-12-31", - "counterparty": "Группа СВК" - }, - "source_refs": [ - "address_customer_revenue_and_payments_v1" - ], - "entity_refs": [], - "created_from_turn": 7, - "created_at": "2026-04-22T12:48:36.820Z" - }, - { - "result_set_id": "rs-msg-JlfsfpTofs", - "type": "document_list", - "intent": "list_documents_by_counterparty", - "route_id": "address_documents_by_counterparty_v1", - "filters": { - "sort": "period_desc", - "limit": 20, - "counterparty": "Группа СВК", - "period_from": "2021-01-01", - "period_to": "2021-12-31" - }, - "source_refs": [ - "address_documents_by_counterparty_v1" - ], - "entity_refs": [ - { - "index": 1, - "entity_type": "document_ref", - "value": "2021-11-10T12:00:07Z" - }, - { - "index": 2, - "entity_type": "document_ref", - "value": "2021-09-29T12:00:03Z" - } - ], - "created_from_turn": 11, - "created_at": "2026-04-22T12:49:30.608Z" - }, - { - "result_set_id": "rs-msg-hjywu9AloN", - "type": "document_list", - "intent": "list_documents_by_counterparty", - "route_id": "address_documents_by_counterparty_v1", - "filters": { - "sort": "period_desc", - "limit": 20, - "counterparty": "Группа СВК", - "period_from": "2021-01-01", - "period_to": "2021-12-31" - }, - "source_refs": [ - "address_documents_by_counterparty_v1" - ], - "entity_refs": [], - "created_from_turn": 13, - "created_at": "2026-04-22T12:50:39.680Z" - } - ], - "navigation_history": [ - { - "event_id": "nav-7JgYp6SXzX", - "action": "drilldown", - "source_result_set_id": null, - "target_object_id": "counterparty:группа свк", - "derived_result_set_id": "rs-msg-M6G719WuQf", - "turn_index": 5, - "created_at": "2026-04-22T12:48:07.373Z" - }, - { - "event_id": "nav-8ea9_hmmSV", - "action": "drilldown", - "source_result_set_id": "rs-msg-M6G719WuQf", - "target_object_id": "counterparty:группа свк", - "derived_result_set_id": "rs-msg-E59dy0CiJo", - "turn_index": 7, - "created_at": "2026-04-22T12:48:36.820Z" - }, - { - "event_id": "nav-deCMypZl3R", - "action": "drilldown", - "source_result_set_id": "rs-msg-E59dy0CiJo", - "target_object_id": "counterparty:группа свк", - "derived_result_set_id": "rs-msg-JlfsfpTofs", - "turn_index": 11, - "created_at": "2026-04-22T12:49:30.608Z" - }, - { - "event_id": "nav-XVD5gZ1qbA", - "action": "drilldown", - "source_result_set_id": "rs-msg-JlfsfpTofs", - "target_object_id": "counterparty:группа свк", - "derived_result_set_id": "rs-msg-hjywu9AloN", - "turn_index": 13, - "created_at": "2026-04-22T12:50:39.680Z" - } - ] - } - } -} \ No newline at end of file diff --git a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260423133622_gen-ag04231336-3d4cc9.json b/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260423133622_gen-ag04231336-3d4cc9.json deleted file mode 100644 index f704e52..0000000 --- a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260423133622_gen-ag04231336-3d4cc9.json +++ /dev/null @@ -1,125 +0,0 @@ -{ - "saved_at": "2026-04-23T13:36:22+00:00", - "generation_id": "gen-ag04231336-3d4cc9", - "mode": "saved_user_sessions", - "title": "AGENT | Живой диалог по организации: денежный срез, сравнение и рейтинг", - "agent_run": true, - "questions": [ - "Хочу быстрый денежный срез по одной организации без привязки к контрагенту. Сколько вообще входящих денег было за 2020 год?", - "По ООО Альтернатива Плюс.", - "Понял, тогда за все время.", - "Хорошо. А что по ООО Альтернатива Плюс больше в 2020 году: входящие или исходящие деньги?", - "А что по ООО Альтернатива Плюс больше уже за 2021 год: входящие или исходящие деньги?", - "И кто больше всего принес денег этой организации в 2020 году?", - "А в 2021 году?" - ], - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "Human organization open-scope dialog: org clarification, all-time incoming total, comparison, ranking", - "architecture_phase": "turnaround_11", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase66_human_org_open_scope_dialog.json", - "scenario_id": "address_truth_harness_phase66_human_org_open_scope_dialog", - "semantic_tags": [ - "all_time_followup", - "human_dialog", - "open_scope_total", - "organization_clarification", - "organization_scope", - "value_flow_comparison", - "value_flow_ranking", - "year_switch" - ] - }, - "source_session_id": null, - "session": { - "session_id": null, - "mode": "agent_semantic_run", - "items": [ - { - "message_id": "agent-user-001", - "role": "user", - "text": "Хочу быстрый денежный срез по одной организации без привязки к контрагенту. Сколько вообще входящих денег было за 2020 год?", - "created_at": "2026-04-23T13:36:22+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-002", - "role": "user", - "text": "По ООО Альтернатива Плюс.", - "created_at": "2026-04-23T13:36:22+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-003", - "role": "user", - "text": "Понял, тогда за все время.", - "created_at": "2026-04-23T13:36:22+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-004", - "role": "user", - "text": "Хорошо. А что по ООО Альтернатива Плюс больше в 2020 году: входящие или исходящие деньги?", - "created_at": "2026-04-23T13:36:22+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-005", - "role": "user", - "text": "А что по ООО Альтернатива Плюс больше уже за 2021 год: входящие или исходящие деньги?", - "created_at": "2026-04-23T13:36:22+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-006", - "role": "user", - "text": "И кто больше всего принес денег этой организации в 2020 году?", - "created_at": "2026-04-23T13:36:22+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-007", - "role": "user", - "text": "А в 2021 году?", - "created_at": "2026-04-23T13:36:22+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - } - ], - "agent_run": true, - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "Human organization open-scope dialog: org clarification, all-time incoming total, comparison, ranking", - "architecture_phase": "turnaround_11", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase66_human_org_open_scope_dialog.json", - "scenario_id": "address_truth_harness_phase66_human_org_open_scope_dialog", - "semantic_tags": [ - "all_time_followup", - "human_dialog", - "open_scope_total", - "organization_clarification", - "organization_scope", - "value_flow_comparison", - "value_flow_ranking", - "year_switch" - ] - } - } -} diff --git a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260423133622_gen-ag04231336-4fa660.json b/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260423133622_gen-ag04231336-4fa660.json deleted file mode 100644 index 5aa2fe9..0000000 --- a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260423133622_gen-ag04231336-4fa660.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "saved_at": "2026-04-23T13:36:22+00:00", - "generation_id": "gen-ag04231336-4fa660", - "mode": "saved_user_sessions", - "title": "AGENT | Живой диалог по НДС: от ориентации до документов", - "agent_run": true, - "questions": [ - "Мне нужно понять, где в 1С по НДС вообще лежат данные. Какие объекты стоит смотреть по НДС?", - "Хорошо, тогда покажи движения по ООО Альтернатива Плюс.", - "За 2020 год.", - "А теперь по документам?", - "А теперь за 2021 год?", - "А теперь за все время?" - ], - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "Human VAT dialog: metadata orientation, movement lane, document pivot, year switch, all-time continuity", - "architecture_phase": "turnaround_11", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase64_human_vat_investigation_dialog.json", - "scenario_id": "address_truth_harness_phase64_human_vat_investigation_dialog", - "semantic_tags": [ - "all_time_followup", - "bounded_retrieval", - "document_lane_continuity", - "document_pivot_after_movement_retrieval", - "human_dialog", - "inline_organization_clarification", - "metadata_surface", - "movement_lane_after_metadata", - "movement_lane_execution", - "scope_reuse", - "vat_orientation", - "year_switch_after_pivot" - ] - }, - "source_session_id": null, - "session": { - "session_id": null, - "mode": "agent_semantic_run", - "items": [ - { - "message_id": "agent-user-001", - "role": "user", - "text": "Мне нужно понять, где в 1С по НДС вообще лежат данные. Какие объекты стоит смотреть по НДС?", - "created_at": "2026-04-23T13:36:22+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-002", - "role": "user", - "text": "Хорошо, тогда покажи движения по ООО Альтернатива Плюс.", - "created_at": "2026-04-23T13:36:22+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-003", - "role": "user", - "text": "За 2020 год.", - "created_at": "2026-04-23T13:36:22+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-004", - "role": "user", - "text": "А теперь по документам?", - "created_at": "2026-04-23T13:36:22+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-005", - "role": "user", - "text": "А теперь за 2021 год?", - "created_at": "2026-04-23T13:36:22+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-006", - "role": "user", - "text": "А теперь за все время?", - "created_at": "2026-04-23T13:36:22+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - } - ], - "agent_run": true, - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "Human VAT dialog: metadata orientation, movement lane, document pivot, year switch, all-time continuity", - "architecture_phase": "turnaround_11", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase64_human_vat_investigation_dialog.json", - "scenario_id": "address_truth_harness_phase64_human_vat_investigation_dialog", - "semantic_tags": [ - "all_time_followup", - "bounded_retrieval", - "document_lane_continuity", - "document_pivot_after_movement_retrieval", - "human_dialog", - "inline_organization_clarification", - "metadata_surface", - "movement_lane_after_metadata", - "movement_lane_execution", - "scope_reuse", - "vat_orientation", - "year_switch_after_pivot" - ] - } - } -} diff --git a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260423133622_gen-ag04231336-db78b3.json b/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260423133622_gen-ag04231336-db78b3.json deleted file mode 100644 index 7c804b0..0000000 --- a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260423133622_gen-ag04231336-db78b3.json +++ /dev/null @@ -1,129 +0,0 @@ -{ - "saved_at": "2026-04-23T13:36:22+00:00", - "generation_id": "gen-ag04231336-db78b3", - "mode": "saved_user_sessions", - "title": "AGENT | Живой диалог по СВК: деньги, нетто, документы и движения", - "agent_run": true, - "questions": [ - "Хочу проверить одного контрагента. Найди в 1С Группу СВК.", - "Посмотри, сколько денег мы получили от него за 2020 год.", - "А теперь сколько мы ему заплатили?", - "А какое получилось нетто?", - "А по документам?", - "А по движениям?", - "А теперь за 2021 год?" - ], - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "Human SVK counterparty dialog: grounding, incoming, outgoing, net, documents, movements", - "architecture_phase": "turnaround_11", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase65_human_svk_money_dialog.json", - "scenario_id": "address_truth_harness_phase65_human_svk_money_dialog", - "semantic_tags": [ - "counterparty_resolution", - "document_pivot_after_value_flow", - "entity_grounding", - "grounded_counterparty_followup", - "human_dialog", - "incoming_value_flow", - "movement_pivot_after_value_flow", - "net_value_flow", - "outgoing_value_flow", - "year_switch" - ] - }, - "source_session_id": null, - "session": { - "session_id": null, - "mode": "agent_semantic_run", - "items": [ - { - "message_id": "agent-user-001", - "role": "user", - "text": "Хочу проверить одного контрагента. Найди в 1С Группу СВК.", - "created_at": "2026-04-23T13:36:22+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-002", - "role": "user", - "text": "Посмотри, сколько денег мы получили от него за 2020 год.", - "created_at": "2026-04-23T13:36:22+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-003", - "role": "user", - "text": "А теперь сколько мы ему заплатили?", - "created_at": "2026-04-23T13:36:22+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-004", - "role": "user", - "text": "А какое получилось нетто?", - "created_at": "2026-04-23T13:36:22+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-005", - "role": "user", - "text": "А по документам?", - "created_at": "2026-04-23T13:36:22+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-006", - "role": "user", - "text": "А по движениям?", - "created_at": "2026-04-23T13:36:22+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-007", - "role": "user", - "text": "А теперь за 2021 год?", - "created_at": "2026-04-23T13:36:22+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - } - ], - "agent_run": true, - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "Human SVK counterparty dialog: grounding, incoming, outgoing, net, documents, movements", - "architecture_phase": "turnaround_11", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase65_human_svk_money_dialog.json", - "scenario_id": "address_truth_harness_phase65_human_svk_money_dialog", - "semantic_tags": [ - "counterparty_resolution", - "document_pivot_after_value_flow", - "entity_grounding", - "grounded_counterparty_followup", - "human_dialog", - "incoming_value_flow", - "movement_pivot_after_value_flow", - "net_value_flow", - "outgoing_value_flow", - "year_switch" - ] - } - } -} diff --git a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260423184425_gen-ag04231844-8e552a.json b/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260423184425_gen-ag04231844-8e552a.json deleted file mode 100644 index 3d348a2..0000000 --- a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260423184425_gen-ag04231844-8e552a.json +++ /dev/null @@ -1,281 +0,0 @@ -{ - "saved_at": "2026-04-23T18:44:25+00:00", - "generation_id": "gen-ag04231844-8e552a", - "mode": "saved_user_sessions", - "title": "AGENT | ARCH: Post-F Semantic Integrity Hardening | Смешанный живой диалог: repeated pivots, орг-срез и СВК", - "agent_run": true, - "questions": [ - "Покажи документы по Жуковке 51.", - "Хорошо, а теперь платежи по нему тоже покажи.", - "А по нему договоры?", - "А по нему документы?", - "А по нему платежи?", - "А за 2021?", - "С Жуковкой закончили. Теперь нужна другая задача: быстрый денежный срез по одной организации. Если для ответа нужна организация, просто уточни ее. Сколько вообще входящих денег было за 2020 год?", - "По ООО Альтернатива Плюс.", - "Понял, тогда за все время.", - "Хорошо. А что по ООО Альтернатива Плюс больше в 2020 году: входящие или исходящие деньги?", - "А что по ООО Альтернатива Плюс больше уже за 2021 год: входящие или исходящие деньги?", - "И кто больше всего принес денег этой организации в 2020 году?", - "А в 2021 году?", - "Теперь отдельная тема по конкретному контрагенту. Найди в 1С Группу СВК.", - "Сколько получили по нему за 2020 год?", - "А теперь сколько заплатили?", - "А какое нетто?", - "А по документам?", - "А по движениям?" - ], - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "Post-F repeated pivots + open-scope organization money + grounded SVK counterparty chain", - "architecture_phase": "turnaround_11", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase82_human_mixed_integrity_status_dialog.json", - "scenario_id": "address_truth_harness_phase82_human_mixed_integrity_status_dialog", - "semantic_tags": [ - "all_time_followup", - "contracts_followup", - "counterparty_pronoun_resolution", - "documents_by_counterparty", - "documents_followup", - "documents_pivot", - "fourth_pivot", - "grounded_counterparty", - "human_dialog", - "incoming_value_flow", - "movements_pivot", - "net_value_flow", - "open_scope_total", - "organization_clarification", - "organization_scope", - "payments_followup", - "payout_value_flow", - "pivot_seed", - "post_f_integrity_hardening", - "second_pivot", - "third_pivot", - "topic_reset", - "value_flow_comparison", - "value_flow_ranking", - "year_switch", - "year_switch_after_fourth_pivot" - ] - }, - "source_session_id": null, - "session": { - "session_id": null, - "mode": "agent_semantic_run", - "items": [ - { - "message_id": "agent-user-001", - "role": "user", - "text": "Покажи документы по Жуковке 51.", - "created_at": "2026-04-23T18:44:25+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-002", - "role": "user", - "text": "Хорошо, а теперь платежи по нему тоже покажи.", - "created_at": "2026-04-23T18:44:25+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-003", - "role": "user", - "text": "А по нему договоры?", - "created_at": "2026-04-23T18:44:25+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-004", - "role": "user", - "text": "А по нему документы?", - "created_at": "2026-04-23T18:44:25+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-005", - "role": "user", - "text": "А по нему платежи?", - "created_at": "2026-04-23T18:44:25+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-006", - "role": "user", - "text": "А за 2021?", - "created_at": "2026-04-23T18:44:25+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-007", - "role": "user", - "text": "С Жуковкой закончили. Теперь нужна другая задача: быстрый денежный срез по одной организации. Если для ответа нужна организация, просто уточни ее. Сколько вообще входящих денег было за 2020 год?", - "created_at": "2026-04-23T18:44:25+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-008", - "role": "user", - "text": "По ООО Альтернатива Плюс.", - "created_at": "2026-04-23T18:44:25+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-009", - "role": "user", - "text": "Понял, тогда за все время.", - "created_at": "2026-04-23T18:44:25+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-010", - "role": "user", - "text": "Хорошо. А что по ООО Альтернатива Плюс больше в 2020 году: входящие или исходящие деньги?", - "created_at": "2026-04-23T18:44:25+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-011", - "role": "user", - "text": "А что по ООО Альтернатива Плюс больше уже за 2021 год: входящие или исходящие деньги?", - "created_at": "2026-04-23T18:44:25+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-012", - "role": "user", - "text": "И кто больше всего принес денег этой организации в 2020 году?", - "created_at": "2026-04-23T18:44:25+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-013", - "role": "user", - "text": "А в 2021 году?", - "created_at": "2026-04-23T18:44:25+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-014", - "role": "user", - "text": "Теперь отдельная тема по конкретному контрагенту. Найди в 1С Группу СВК.", - "created_at": "2026-04-23T18:44:25+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-015", - "role": "user", - "text": "Сколько получили по нему за 2020 год?", - "created_at": "2026-04-23T18:44:25+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-016", - "role": "user", - "text": "А теперь сколько заплатили?", - "created_at": "2026-04-23T18:44:25+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-017", - "role": "user", - "text": "А какое нетто?", - "created_at": "2026-04-23T18:44:25+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-018", - "role": "user", - "text": "А по документам?", - "created_at": "2026-04-23T18:44:25+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - }, - { - "message_id": "agent-user-019", - "role": "user", - "text": "А по движениям?", - "created_at": "2026-04-23T18:44:25+00:00", - "reply_type": null, - "trace_id": null, - "debug": null - } - ], - "agent_run": true, - "metadata": { - "assistant_prompt_version": null, - "decomposition_prompt_version": null, - "prompt_fingerprint": null, - "agent_focus": "Post-F repeated pivots + open-scope organization money + grounded SVK counterparty chain", - "architecture_phase": "turnaround_11", - "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase82_human_mixed_integrity_status_dialog.json", - "scenario_id": "address_truth_harness_phase82_human_mixed_integrity_status_dialog", - "semantic_tags": [ - "all_time_followup", - "contracts_followup", - "counterparty_pronoun_resolution", - "documents_by_counterparty", - "documents_followup", - "documents_pivot", - "fourth_pivot", - "grounded_counterparty", - "human_dialog", - "incoming_value_flow", - "movements_pivot", - "net_value_flow", - "open_scope_total", - "organization_clarification", - "organization_scope", - "payments_followup", - "payout_value_flow", - "pivot_seed", - "post_f_integrity_hardening", - "second_pivot", - "third_pivot", - "topic_reset", - "value_flow_comparison", - "value_flow_ranking", - "year_switch", - "year_switch_after_fourth_pivot" - ] - } - } -} diff --git a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260510094921_gen-ag05100949-2a5ed8.json b/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260510094921_gen-ag05100949-2a5ed8.json new file mode 100644 index 0000000..958b987 --- /dev/null +++ b/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260510094921_gen-ag05100949-2a5ed8.json @@ -0,0 +1,153 @@ +{ + "saved_at": "2026-05-10T09:49:21+00:00", + "generation_id": "gen-ag05100949-2a5ed8", + "mode": "saved_user_sessions", + "title": "AGENT | Phase 91 route-candidate-driven enablement loop canary", + "agent_run": true, + "questions": [ + "какой контрагент принес больше всего денег за 2020 год?", + "ООО Альтернатива Плюс", + "а теперь сколько лет мы работаем с Группа СВК?", + "покажи движения по НДС за 2020 по ООО Альтернатива Плюс", + "можно ли по этим данным точно подтвердить резерв под неликвиды на складе?" + ], + "metadata": { + "assistant_prompt_version": null, + "decomposition_prompt_version": null, + "prompt_fingerprint": null, + "agent_focus": "route candidate repair-target grouping + handoff canary", + "architecture_phase": "Route-Candidate-Driven Enablement Loop", + "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase91_route_candidate_driven_enablement_loop.json", + "scenario_id": "address_truth_harness_phase91_route_candidate_driven_enablement_loop", + "semantic_tags": [ + "clarification_recovery", + "counterparty_lifecycle", + "inventory_reserve_boundary", + "metadata_scope", + "movement_evidence", + "needs_user_scope", + "no_overclaim", + "open_organization_scope", + "ready_for_reviewed_execution", + "route_candidate_handoff", + "stale_scope_guard", + "unreviewed_proof_family", + "value_flow_ranking", + "vat" + ], + "validation_status": "accepted_live_replay", + "validated_run_dir": "artifacts\\domain_runs\\address_truth_harness_phase91_route_candidate_driven_enablement_loop_live1_20260510", + "saved_after_validated_replay": true, + "save_gate": { + "schema_version": "agent_semantic_save_gate_v1", + "validation_status": "accepted_live_replay", + "validated_run_dir": "artifacts\\domain_runs\\address_truth_harness_phase91_route_candidate_driven_enablement_loop_live1_20260510", + "final_status": "accepted", + "review_overall_status": "pass", + "business_overall_status": "pass", + "steps_total": 5, + "steps_passed": 5, + "steps_failed": 0, + "steps_with_business_failures": 0, + "steps_with_business_warnings": 0, + "acceptance_gate_passed": true, + "saved_after_validated_replay": true + } + }, + "source_session_id": null, + "session": { + "session_id": null, + "mode": "agent_semantic_run", + "items": [ + { + "message_id": "agent-user-001", + "role": "user", + "text": "какой контрагент принес больше всего денег за 2020 год?", + "created_at": "2026-05-10T09:49:21+00:00", + "reply_type": null, + "trace_id": null, + "debug": null + }, + { + "message_id": "agent-user-002", + "role": "user", + "text": "ООО Альтернатива Плюс", + "created_at": "2026-05-10T09:49:21+00:00", + "reply_type": null, + "trace_id": null, + "debug": null + }, + { + "message_id": "agent-user-003", + "role": "user", + "text": "а теперь сколько лет мы работаем с Группа СВК?", + "created_at": "2026-05-10T09:49:21+00:00", + "reply_type": null, + "trace_id": null, + "debug": null + }, + { + "message_id": "agent-user-004", + "role": "user", + "text": "покажи движения по НДС за 2020 по ООО Альтернатива Плюс", + "created_at": "2026-05-10T09:49:21+00:00", + "reply_type": null, + "trace_id": null, + "debug": null + }, + { + "message_id": "agent-user-005", + "role": "user", + "text": "можно ли по этим данным точно подтвердить резерв под неликвиды на складе?", + "created_at": "2026-05-10T09:49:21+00:00", + "reply_type": null, + "trace_id": null, + "debug": null + } + ], + "agent_run": true, + "metadata": { + "assistant_prompt_version": null, + "decomposition_prompt_version": null, + "prompt_fingerprint": null, + "agent_focus": "route candidate repair-target grouping + handoff canary", + "architecture_phase": "Route-Candidate-Driven Enablement Loop", + "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase91_route_candidate_driven_enablement_loop.json", + "scenario_id": "address_truth_harness_phase91_route_candidate_driven_enablement_loop", + "semantic_tags": [ + "clarification_recovery", + "counterparty_lifecycle", + "inventory_reserve_boundary", + "metadata_scope", + "movement_evidence", + "needs_user_scope", + "no_overclaim", + "open_organization_scope", + "ready_for_reviewed_execution", + "route_candidate_handoff", + "stale_scope_guard", + "unreviewed_proof_family", + "value_flow_ranking", + "vat" + ], + "validation_status": "accepted_live_replay", + "validated_run_dir": "artifacts\\domain_runs\\address_truth_harness_phase91_route_candidate_driven_enablement_loop_live1_20260510", + "saved_after_validated_replay": true, + "save_gate": { + "schema_version": "agent_semantic_save_gate_v1", + "validation_status": "accepted_live_replay", + "validated_run_dir": "artifacts\\domain_runs\\address_truth_harness_phase91_route_candidate_driven_enablement_loop_live1_20260510", + "final_status": "accepted", + "review_overall_status": "pass", + "business_overall_status": "pass", + "steps_total": 5, + "steps_passed": 5, + "steps_failed": 0, + "steps_with_business_failures": 0, + "steps_with_business_warnings": 0, + "acceptance_gate_passed": true, + "saved_after_validated_replay": true + } + } + } +} diff --git a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260510121326_gen-ag05101213-596d99.json b/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260510121326_gen-ag05101213-596d99.json new file mode 100644 index 0000000..457ba33 --- /dev/null +++ b/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260510121326_gen-ag05101213-596d99.json @@ -0,0 +1,157 @@ +{ + "saved_at": "2026-05-10T12:13:26+00:00", + "generation_id": "gen-ag05101213-596d99", + "mode": "saved_user_sessions", + "title": "AGENT | Phase 93 accounting profit-margin reviewed route", + "agent_run": true, + "questions": [ + "по ООО Альтернатива Плюс за 2020 можно точно сказать чистую прибыль и маржу?", + "а это прибыль или убыток, коротко?", + "по этой же компании на конец 2020 можно точно понять, какая дебиторка просрочена?", + "тогда НДС за 2020 по ООО Альтернатива Плюс какой?", + "а какой контрагент принес больше всего денег за 2020?", + "по ООО Альтернатива Плюс на конец 2020 можно точно подтвердить резерв под неликвиды на складе?" + ], + "metadata": { + "assistant_prompt_version": null, + "decomposition_prompt_version": null, + "prompt_fingerprint": null, + "agent_focus": "accounting profit-margin reviewed route", + "architecture_phase": "Route-Candidate-Driven Enablement Loop", + "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase93_accounting_profit_margin_reviewed_route.json", + "scenario_id": "address_truth_harness_phase93_accounting_profit_margin_reviewed_route", + "semantic_tags": [ + "accounting_profit_margin", + "business_overview", + "context_carryover", + "debt_due_date_boundary", + "inventory_reserve_boundary", + "missing_proof_families", + "needs_route_enablement", + "profit_margin_boundary", + "ready_for_reviewed_execution", + "value_flow_ranking", + "vat_continuity" + ], + "validation_status": "accepted_live_replay", + "validated_run_dir": "artifacts\\domain_runs\\address_truth_harness_phase93_accounting_profit_margin_reviewed_route_live3_20260510", + "saved_after_validated_replay": true, + "save_gate": { + "schema_version": "agent_semantic_save_gate_v1", + "validation_status": "accepted_live_replay", + "validated_run_dir": "artifacts\\domain_runs\\address_truth_harness_phase93_accounting_profit_margin_reviewed_route_live3_20260510", + "final_status": "accepted", + "review_overall_status": "pass", + "business_overall_status": "pass", + "steps_total": 6, + "steps_passed": 6, + "steps_failed": 0, + "steps_with_business_failures": 0, + "steps_with_business_warnings": 0, + "acceptance_gate_passed": true, + "saved_after_validated_replay": true + } + }, + "source_session_id": null, + "session": { + "session_id": null, + "mode": "agent_semantic_run", + "items": [ + { + "message_id": "agent-user-001", + "role": "user", + "text": "по ООО Альтернатива Плюс за 2020 можно точно сказать чистую прибыль и маржу?", + "created_at": "2026-05-10T12:13:26+00:00", + "reply_type": null, + "trace_id": null, + "debug": null + }, + { + "message_id": "agent-user-002", + "role": "user", + "text": "а это прибыль или убыток, коротко?", + "created_at": "2026-05-10T12:13:26+00:00", + "reply_type": null, + "trace_id": null, + "debug": null + }, + { + "message_id": "agent-user-003", + "role": "user", + "text": "по этой же компании на конец 2020 можно точно понять, какая дебиторка просрочена?", + "created_at": "2026-05-10T12:13:26+00:00", + "reply_type": null, + "trace_id": null, + "debug": null + }, + { + "message_id": "agent-user-004", + "role": "user", + "text": "тогда НДС за 2020 по ООО Альтернатива Плюс какой?", + "created_at": "2026-05-10T12:13:26+00:00", + "reply_type": null, + "trace_id": null, + "debug": null + }, + { + "message_id": "agent-user-005", + "role": "user", + "text": "а какой контрагент принес больше всего денег за 2020?", + "created_at": "2026-05-10T12:13:26+00:00", + "reply_type": null, + "trace_id": null, + "debug": null + }, + { + "message_id": "agent-user-006", + "role": "user", + "text": "по ООО Альтернатива Плюс на конец 2020 можно точно подтвердить резерв под неликвиды на складе?", + "created_at": "2026-05-10T12:13:26+00:00", + "reply_type": null, + "trace_id": null, + "debug": null + } + ], + "agent_run": true, + "metadata": { + "assistant_prompt_version": null, + "decomposition_prompt_version": null, + "prompt_fingerprint": null, + "agent_focus": "accounting profit-margin reviewed route", + "architecture_phase": "Route-Candidate-Driven Enablement Loop", + "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase93_accounting_profit_margin_reviewed_route.json", + "scenario_id": "address_truth_harness_phase93_accounting_profit_margin_reviewed_route", + "semantic_tags": [ + "accounting_profit_margin", + "business_overview", + "context_carryover", + "debt_due_date_boundary", + "inventory_reserve_boundary", + "missing_proof_families", + "needs_route_enablement", + "profit_margin_boundary", + "ready_for_reviewed_execution", + "value_flow_ranking", + "vat_continuity" + ], + "validation_status": "accepted_live_replay", + "validated_run_dir": "artifacts\\domain_runs\\address_truth_harness_phase93_accounting_profit_margin_reviewed_route_live3_20260510", + "saved_after_validated_replay": true, + "save_gate": { + "schema_version": "agent_semantic_save_gate_v1", + "validation_status": "accepted_live_replay", + "validated_run_dir": "artifacts\\domain_runs\\address_truth_harness_phase93_accounting_profit_margin_reviewed_route_live3_20260510", + "final_status": "accepted", + "review_overall_status": "pass", + "business_overall_status": "pass", + "steps_total": 6, + "steps_passed": 6, + "steps_failed": 0, + "steps_with_business_failures": 0, + "steps_with_business_warnings": 0, + "acceptance_gate_passed": true, + "saved_after_validated_replay": true + } + } + } +} diff --git a/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260510131922_gen-ag05101319-c04f79.json b/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260510131922_gen-ag05101319-c04f79.json new file mode 100644 index 0000000..adef4ef --- /dev/null +++ b/llm_normalizer/data/autorun_generators/saved_sessions/assistant_saved_session_20260510131922_gen-ag05101319-c04f79.json @@ -0,0 +1,173 @@ +{ + "saved_at": "2026-05-10T13:19:22+00:00", + "generation_id": "gen-ag05101319-c04f79", + "mode": "saved_user_sessions", + "title": "AGENT | Phase 94 debt due-date aging reviewed route", + "agent_run": true, + "questions": [ + "по ООО Альтернатива Плюс на конец 2020 можно точно понять, какая дебиторка просрочена?", + "то есть просрочку доказать нельзя, коротко почему?", + "а чистая прибыль и маржа за 2020 по этой же компании какие?", + "НДС за 2020 по ООО Альтернатива Плюс какой?", + "а кто принес больше всего денег за 2020?", + "по ООО Альтернатива Плюс на конец 2020 можно точно подтвердить резерв под неликвиды на складе?", + "а зависимость от одного поставщика за 2020 можно точно оценить?" + ], + "metadata": { + "assistant_prompt_version": null, + "decomposition_prompt_version": null, + "prompt_fingerprint": null, + "agent_focus": "Focused semantic replay for promoting debt_due_date_aging_quality from proxy-only enablement to a reviewed payment-term/open-balance route while preserving profit, VAT, inventory, and vendor-risk boundaries.", + "architecture_phase": "turnaround_11", + "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase94_debt_due_date_aging_reviewed_route.json", + "scenario_id": "address_truth_harness_phase94_debt_due_date_aging_reviewed_route", + "semantic_tags": [ + "accounting_profit_margin", + "business_overview", + "canary", + "checked_negative", + "context_carryover", + "debt_due_date_aging_quality", + "debt_due_date_boundary", + "inventory_reserve_boundary", + "missing_proof_families", + "profit_margin_boundary", + "ready_for_reviewed_execution", + "value_flow_ranking", + "vat_continuity", + "vendor_risk_procurement_boundary" + ], + "validation_status": "accepted_live_replay", + "validated_run_dir": "artifacts\\domain_runs\\phase94_debt_due_date_aging_reviewed_route_live4", + "saved_after_validated_replay": true, + "save_gate": { + "schema_version": "agent_semantic_save_gate_v1", + "validation_status": "accepted_live_replay", + "validated_run_dir": "artifacts\\domain_runs\\phase94_debt_due_date_aging_reviewed_route_live4", + "final_status": "accepted", + "review_overall_status": "pass", + "business_overall_status": "pass", + "steps_total": 7, + "steps_passed": 7, + "steps_failed": 0, + "steps_with_business_failures": 0, + "steps_with_business_warnings": 0, + "acceptance_gate_passed": true, + "saved_after_validated_replay": true + } + }, + "source_session_id": null, + "session": { + "session_id": null, + "mode": "agent_semantic_run", + "items": [ + { + "message_id": "agent-user-001", + "role": "user", + "text": "по ООО Альтернатива Плюс на конец 2020 можно точно понять, какая дебиторка просрочена?", + "created_at": "2026-05-10T13:19:22+00:00", + "reply_type": null, + "trace_id": null, + "debug": null + }, + { + "message_id": "agent-user-002", + "role": "user", + "text": "то есть просрочку доказать нельзя, коротко почему?", + "created_at": "2026-05-10T13:19:22+00:00", + "reply_type": null, + "trace_id": null, + "debug": null + }, + { + "message_id": "agent-user-003", + "role": "user", + "text": "а чистая прибыль и маржа за 2020 по этой же компании какие?", + "created_at": "2026-05-10T13:19:22+00:00", + "reply_type": null, + "trace_id": null, + "debug": null + }, + { + "message_id": "agent-user-004", + "role": "user", + "text": "НДС за 2020 по ООО Альтернатива Плюс какой?", + "created_at": "2026-05-10T13:19:22+00:00", + "reply_type": null, + "trace_id": null, + "debug": null + }, + { + "message_id": "agent-user-005", + "role": "user", + "text": "а кто принес больше всего денег за 2020?", + "created_at": "2026-05-10T13:19:22+00:00", + "reply_type": null, + "trace_id": null, + "debug": null + }, + { + "message_id": "agent-user-006", + "role": "user", + "text": "по ООО Альтернатива Плюс на конец 2020 можно точно подтвердить резерв под неликвиды на складе?", + "created_at": "2026-05-10T13:19:22+00:00", + "reply_type": null, + "trace_id": null, + "debug": null + }, + { + "message_id": "agent-user-007", + "role": "user", + "text": "а зависимость от одного поставщика за 2020 можно точно оценить?", + "created_at": "2026-05-10T13:19:22+00:00", + "reply_type": null, + "trace_id": null, + "debug": null + } + ], + "agent_run": true, + "metadata": { + "assistant_prompt_version": null, + "decomposition_prompt_version": null, + "prompt_fingerprint": null, + "agent_focus": "Focused semantic replay for promoting debt_due_date_aging_quality from proxy-only enablement to a reviewed payment-term/open-balance route while preserving profit, VAT, inventory, and vendor-risk boundaries.", + "architecture_phase": "turnaround_11", + "source_spec_file": "X:\\1C\\NDC_1C\\docs\\orchestration\\address_truth_harness_phase94_debt_due_date_aging_reviewed_route.json", + "scenario_id": "address_truth_harness_phase94_debt_due_date_aging_reviewed_route", + "semantic_tags": [ + "accounting_profit_margin", + "business_overview", + "canary", + "checked_negative", + "context_carryover", + "debt_due_date_aging_quality", + "debt_due_date_boundary", + "inventory_reserve_boundary", + "missing_proof_families", + "profit_margin_boundary", + "ready_for_reviewed_execution", + "value_flow_ranking", + "vat_continuity", + "vendor_risk_procurement_boundary" + ], + "validation_status": "accepted_live_replay", + "validated_run_dir": "artifacts\\domain_runs\\phase94_debt_due_date_aging_reviewed_route_live4", + "saved_after_validated_replay": true, + "save_gate": { + "schema_version": "agent_semantic_save_gate_v1", + "validation_status": "accepted_live_replay", + "validated_run_dir": "artifacts\\domain_runs\\phase94_debt_due_date_aging_reviewed_route_live4", + "final_status": "accepted", + "review_overall_status": "pass", + "business_overall_status": "pass", + "steps_total": 7, + "steps_passed": 7, + "steps_failed": 0, + "steps_with_business_failures": 0, + "steps_with_business_warnings": 0, + "acceptance_gate_passed": true, + "saved_after_validated_replay": true + } + } + } +} diff --git a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417080808_gen-ag04170808-1907fa.json b/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417080808_gen-ag04170808-1907fa.json deleted file mode 100644 index 4ebc53a..0000000 --- a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417080808_gen-ag04170808-1907fa.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "suite_id": "assistant_saved_session_gen-ag04170808-1907fa", - "suite_version": "0.1.0", - "schema_version": "assistant_saved_session_suite_v0_1", - "generated_at": "2026-04-17T08:08:08+00:00", - "generation_id": "gen-ag04170808-1907fa", - "mode": "saved_user_sessions", - "title": "AGENT | Phase 4 coverage/evidence replay for counterparty fallback, inventory reset, and selected-object provenance", - "domain": "address_phase4_coverage_evidence_mix", - "scenario_count": 1, - "case_ids": [ - "SAVED-001" - ], - "cases": [ - { - "case_id": "SAVED-001", - "scenario_tag": "agent_saved_user_sessions", - "title": "AGENT | Phase 4 coverage/evidence replay for counterparty fallback, inventory reset, and selected-object provenance", - "question_type": "followup", - "broadness_level": "medium", - "turns": [ - { - "user_message": "покажи все документы по чепурнову" - }, - { - "user_message": "что нам отгружал чепурнов, какой товар или услугу?" - }, - { - "user_message": "какие остатки на складе на март 2021" - }, - { - "user_message": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?" - }, - { - "user_message": "покажи еще раз остатки на эту же дату" - } - ] - } - ] -} diff --git a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417083044_gen-ag04170830-5f771d.json b/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417083044_gen-ag04170830-5f771d.json deleted file mode 100644 index 44e51d9..0000000 --- a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417083044_gen-ag04170830-5f771d.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "suite_id": "assistant_saved_session_gen-ag04170830-5f771d", - "suite_version": "0.1.0", - "schema_version": "assistant_saved_session_suite_v0_1", - "generated_at": "2026-04-17T08:30:44+00:00", - "generation_id": "gen-ag04170830-5f771d", - "mode": "saved_user_sessions", - "title": "AGENT | Phase 5 meta and memory recap replay over interrupted address context", - "domain": "address_phase5_meta_memory_mix", - "scenario_count": 1, - "case_ids": [ - "SAVED-001" - ], - "cases": [ - { - "case_id": "SAVED-001", - "scenario_tag": "agent_saved_user_sessions", - "title": "AGENT | Phase 5 meta and memory recap replay over interrupted address context", - "question_type": "followup", - "broadness_level": "medium", - "turns": [ - { - "user_message": "какие остатки на складе на март 2021" - }, - { - "user_message": "а исторические остатки тоже можешь?" - }, - { - "user_message": "по какой компании мы сейчас работаем?" - }, - { - "user_message": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?" - }, - { - "user_message": "что ты умеешь?" - }, - { - "user_message": "а ты помнишь, что мы по этой позиции уже выяснили?" - } - ] - } - ] -} diff --git a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417085550_gen-ag04170855-d13dd3.json b/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417085550_gen-ag04170855-d13dd3.json deleted file mode 100644 index 721676e..0000000 --- a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417085550_gen-ag04170855-d13dd3.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "suite_id": "assistant_saved_session_gen-ag04170855-d13dd3", - "suite_version": "0.1.0", - "schema_version": "assistant_saved_session_suite_v0_1", - "generated_at": "2026-04-17T08:55:50+00:00", - "generation_id": "gen-ag04170855-d13dd3", - "mode": "saved_user_sessions", - "title": "AGENT | Phase 6 provider/runtime replay across chat, meta, and address boundaries", - "domain": "address_phase6_provider_axis_mix", - "scenario_count": 1, - "case_ids": [ - "SAVED-001" - ], - "cases": [ - { - "case_id": "SAVED-001", - "scenario_tag": "agent_saved_user_sessions", - "title": "AGENT | Phase 6 provider/runtime replay across chat, meta, and address boundaries", - "question_type": "followup", - "broadness_level": "medium", - "turns": [ - { - "user_message": "привет, как дела?" - }, - { - "user_message": "по какой компании мы сейчас работаем?" - }, - { - "user_message": "что ты можешь по 1С?" - }, - { - "user_message": "какие остатки на складе на март 2021" - }, - { - "user_message": "а исторические остатки тоже можешь?" - } - ] - } - ] -} diff --git a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417091127_gen-ag04170911-ff51e1.json b/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417091127_gen-ag04170911-ff51e1.json deleted file mode 100644 index 92f8418..0000000 --- a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417091127_gen-ag04170911-ff51e1.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "suite_id": "assistant_saved_session_gen-ag04170911-ff51e1", - "suite_version": "0.1.0", - "schema_version": "assistant_saved_session_suite_v0_1", - "generated_at": "2026-04-17T09:11:27+00:00", - "generation_id": "gen-ag04170911-ff51e1", - "mode": "saved_user_sessions", - "title": "AGENT | Phase 7 acceptance replay for inventory root, selected-object continuity, and human meta boundaries", - "domain": "address_phase7_acceptance_gate_mix", - "scenario_count": 1, - "case_ids": [ - "SAVED-001" - ], - "cases": [ - { - "case_id": "SAVED-001", - "scenario_tag": "agent_saved_user_sessions", - "title": "AGENT | Phase 7 acceptance replay for inventory root, selected-object continuity, and human meta boundaries", - "question_type": "followup", - "broadness_level": "medium", - "turns": [ - { - "user_message": "какие остатки на складе на март 2021" - }, - { - "user_message": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?" - }, - { - "user_message": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": покажи документы по этой позиции" - }, - { - "user_message": "покажи еще раз остатки на эту же дату" - }, - { - "user_message": "по какой компании мы сейчас работаем?" - }, - { - "user_message": "а исторические остатки тоже можешь?" - } - ] - } - ] -} diff --git a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417093144_gen-ag04170931-6bb7e5.json b/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417093144_gen-ag04170931-6bb7e5.json deleted file mode 100644 index 067174d..0000000 --- a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417093144_gen-ag04170931-6bb7e5.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "suite_id": "assistant_saved_session_gen-ag04170931-6bb7e5", - "suite_version": "0.1.0", - "schema_version": "assistant_saved_session_suite_v0_1", - "generated_at": "2026-04-17T09:31:44+00:00", - "generation_id": "gen-ag04170931-6bb7e5", - "mode": "saved_user_sessions", - "title": "AGENT | Phase 7 mixed replay for documents, selected-object continuity, meta context, and cross-domain pivots", - "domain": "address_phase7_meta_domain_mix", - "scenario_count": 1, - "case_ids": [ - "SAVED-001" - ], - "cases": [ - { - "case_id": "SAVED-001", - "scenario_tag": "agent_saved_user_sessions", - "title": "AGENT | Phase 7 mixed replay for documents, selected-object continuity, meta context, and cross-domain pivots", - "question_type": "followup", - "broadness_level": "medium", - "turns": [ - { - "user_message": "привет, как дела?" - }, - { - "user_message": "по какой компании мы сейчас работаем?" - }, - { - "user_message": "покажи все документы по чепурнову" - }, - { - "user_message": "что нам отгружал чепурнов, какой товар или услугу?" - }, - { - "user_message": "какие остатки на складе на март 2021" - }, - { - "user_message": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?" - }, - { - "user_message": "что ты умеешь?" - }, - { - "user_message": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": покажи документы по этой позиции" - }, - { - "user_message": "а ты помнишь, что мы по этой позиции уже выяснили?" - }, - { - "user_message": "покажи еще раз остатки на эту же дату" - }, - { - "user_message": "кто нам должен на март 2020" - }, - { - "user_message": "остатки по складу на эту же дату" - }, - { - "user_message": "а исторические остатки тоже можешь?" - }, - { - "user_message": "хвосты покажи по счету 60 на август 2022" - } - ] - } - ] -} diff --git a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417094132_gen-ag04170941-87680e.json b/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417094132_gen-ag04170941-87680e.json deleted file mode 100644 index 3074686..0000000 --- a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417094132_gen-ag04170941-87680e.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "suite_id": "assistant_saved_session_gen-ag04170941-87680e", - "suite_version": "0.1.0", - "schema_version": "assistant_saved_session_suite_v0_1", - "generated_at": "2026-04-17T09:41:32+00:00", - "generation_id": "gen-ag04170941-87680e", - "mode": "saved_user_sessions", - "title": "AGENT | Phase 7 mixed replay for documents, selected-object continuity, meta context, and cross-domain pivots", - "domain": "address_phase7_meta_domain_mix", - "scenario_count": 1, - "case_ids": [ - "SAVED-001" - ], - "cases": [ - { - "case_id": "SAVED-001", - "scenario_tag": "agent_saved_user_sessions", - "title": "AGENT | Phase 7 mixed replay for documents, selected-object continuity, meta context, and cross-domain pivots", - "question_type": "followup", - "broadness_level": "medium", - "turns": [ - { - "user_message": "привет, как дела?" - }, - { - "user_message": "по какой компании мы сейчас работаем?" - }, - { - "user_message": "покажи все документы по чепурнову" - }, - { - "user_message": "что нам отгружал чепурнов, какой товар или услугу?" - }, - { - "user_message": "какие остатки на складе на март 2021" - }, - { - "user_message": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?" - }, - { - "user_message": "что ты умеешь?" - }, - { - "user_message": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": покажи документы по этой позиции" - }, - { - "user_message": "а ты помнишь, что мы по этой позиции уже выяснили?" - }, - { - "user_message": "покажи еще раз остатки на эту же дату" - }, - { - "user_message": "кто нам должен на март 2020" - }, - { - "user_message": "остатки по складу на эту же дату" - }, - { - "user_message": "а исторические остатки тоже можешь?" - }, - { - "user_message": "хвосты покажи по счету 60 на август 2022" - } - ] - } - ] -} diff --git a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417132600_gen-ag04171326-15a132.json b/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417132600_gen-ag04171326-15a132.json deleted file mode 100644 index 2957e02..0000000 --- a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417132600_gen-ag04171326-15a132.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "suite_id": "assistant_saved_session_gen-ag04171326-15a132", - "suite_version": "0.1.0", - "schema_version": "assistant_saved_session_suite_v0_1", - "generated_at": "2026-04-17T13:26:00+00:00", - "generation_id": "gen-ag04171326-15a132", - "mode": "saved_user_sessions", - "title": "AGENT replay for company selection continuity and organization activity age", - "domain": "address_phase5_company_selection_and_activity_age", - "scenario_count": 1, - "case_ids": [ - "SAVED-001" - ], - "cases": [ - { - "case_id": "SAVED-001", - "scenario_tag": "agent_saved_user_sessions", - "title": "AGENT replay for company selection continuity and organization activity age", - "question_type": "followup", - "broadness_level": "medium", - "turns": [ - { - "user_message": "привет, как дела?" - }, - { - "user_message": "по какой компании мы сейчас работаем?" - }, - { - "user_message": "какие остатки на складе на март 2021" - }, - { - "user_message": "давай по Альтернативе Плюс" - }, - { - "user_message": "тогда покажи остатки на март 2021" - }, - { - "user_message": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?" - }, - { - "user_message": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": покажи документы по этой позиции" - }, - { - "user_message": "покажи еще раз остатки на эту же дату" - }, - { - "user_message": "а по Альтернативе Плюс сколько лет активности в базе 1С?" - }, - { - "user_message": "что ты умеешь?" - }, - { - "user_message": "а ты помнишь, что мы по этой позиции уже выяснили?" - }, - { - "user_message": "кто нам должен на март 2020" - }, - { - "user_message": "остатки по складу на эту же дату" - } - ] - } - ] -} diff --git a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417150806_gen-ag04171508-760111.json b/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417150806_gen-ag04171508-760111.json deleted file mode 100644 index 4cca394..0000000 --- a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260417150806_gen-ag04171508-760111.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "suite_id": "assistant_saved_session_gen-ag04171508-760111", - "suite_version": "0.1.0", - "schema_version": "assistant_saved_session_suite_v0_1", - "generated_at": "2026-04-18T07:12:37.854Z", - "generation_id": "gen-ag04171508-760111", - "mode": "saved_user_sessions", - "title": "AGENT replay for inventory clarification continuity and answer-shape cleanliness", - "scenario_count": 1, - "case_ids": [ - "SAVED-001" - ], - "cases": [ - { - "case_id": "SAVED-001", - "scenario_tag": "agent_saved_user_sessions", - "title": "AGENT replay for inventory clarification continuity and answer-shape cleanliness", - "question_type": "followup", - "broadness_level": "medium", - "turns": [ - { - "user_message": "какие остатки на складе на март 2021" - }, - { - "user_message": "давай по Альтернативе Плюс" - }, - { - "user_message": "тогда покажи остатки на июль2017" - }, - { - "user_message": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?" - }, - { - "user_message": "а по этой позиции когда была закупка?" - }, - { - "user_message": "покажи документы по этой позиции" - }, - { - "user_message": "покажи еще раз остатки на эту же дату" - }, - { - "user_message": "а что мы уже выяснили по этой позиции?" - } - ] - } - ] -} \ No newline at end of file diff --git a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260419164457_gen-mo5zy5vo-z9klj34.json b/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260419164457_gen-mo5zy5vo-z9klj34.json deleted file mode 100644 index cf1b32f..0000000 --- a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260419164457_gen-mo5zy5vo-z9klj34.json +++ /dev/null @@ -1,51 +0,0 @@ -{ - "suite_id": "assistant_saved_session_gen-mo5zy5vo-z9klj34", - "suite_version": "0.1.0", - "schema_version": "assistant_saved_session_suite_v0_1", - "generated_at": "2026-04-19T16:44:57.540Z", - "generation_id": "gen-mo5zy5vo-z9klj34", - "mode": "saved_user_sessions", - "title": "Ручная сессия 19.04.2026, 18:58:20", - "scenario_count": 1, - "case_ids": [ - "SAVED-001" - ], - "cases": [ - { - "case_id": "SAVED-001", - "scenario_tag": "saved_user_sessions", - "title": "Ручная сессия 19.04.2026, 18:58:20", - "question_type": "followup", - "broadness_level": "medium", - "turns": [ - { - "user_message": "привет как дела" - }, - { - "user_message": "кто намс должен денег на сегодня" - }, - { - "user_message": "что ты можешь" - }, - { - "user_message": "кто нам должен денег на сегодня" - }, - { - "user_message": "а мы кому" - }, - { - "user_message": "какиек остатки на складе на сегодня" - }, - { - "user_message": "альтернатива" - }, - { - "user_message": "покажи документы по чепурнову" - }, - { - "user_message": "какой оборот был свк" - } - ] - } - ] -} \ No newline at end of file diff --git a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260422125154_gen-moa1y0lw-m30gdsz.json b/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260422125154_gen-moa1y0lw-m30gdsz.json deleted file mode 100644 index 4167469..0000000 --- a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260422125154_gen-moa1y0lw-m30gdsz.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "suite_id": "assistant_saved_session_gen-moa1y0lw-m30gdsz", - "suite_version": "0.1.0", - "schema_version": "assistant_saved_session_suite_v0_1", - "generated_at": "2026-04-22T12:51:54.645Z", - "generation_id": "gen-moa1y0lw-m30gdsz", - "mode": "saved_user_sessions", - "title": "СВК - Ручная сессия 22.04.2026, 15:50:39", - "scenario_count": 1, - "case_ids": [ - "SAVED-001" - ], - "cases": [ - { - "case_id": "SAVED-001", - "scenario_tag": "saved_user_sessions", - "title": "СВК - Ручная сессия 22.04.2026, 15:50:39", - "question_type": "followup", - "broadness_level": "medium", - "turns": [ - { - "user_message": "найди в 1С контрагента СВК" - }, - { - "user_message": "сколько получили по нему за 2020 год" - }, - { - "user_message": "а теперь сколько заплатили?" - }, - { - "user_message": "а за 2021?" - }, - { - "user_message": "а какое нетто?" - }, - { - "user_message": "а по документам?" - }, - { - "user_message": "а по движениям?" - } - ] - } - ] -} \ No newline at end of file diff --git a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260423133622_gen-ag04231336-3d4cc9.json b/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260423133622_gen-ag04231336-3d4cc9.json deleted file mode 100644 index 309344c..0000000 --- a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260423133622_gen-ag04231336-3d4cc9.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "suite_id": "assistant_saved_session_gen-ag04231336-3d4cc9", - "suite_version": "0.1.0", - "schema_version": "assistant_saved_session_suite_v0_1", - "generated_at": "2026-04-23T13:36:22+00:00", - "generation_id": "gen-ag04231336-3d4cc9", - "mode": "saved_user_sessions", - "title": "AGENT | Живой диалог по организации: денежный срез, сравнение и рейтинг", - "domain": "address_phase66_human_org_open_scope_dialog", - "scenario_count": 1, - "case_ids": [ - "SAVED-001" - ], - "cases": [ - { - "case_id": "SAVED-001", - "scenario_tag": "agent_saved_user_sessions", - "title": "AGENT | Живой диалог по организации: денежный срез, сравнение и рейтинг", - "question_type": "followup", - "broadness_level": "medium", - "turns": [ - { - "user_message": "Хочу быстрый денежный срез по одной организации без привязки к контрагенту. Сколько вообще входящих денег было за 2020 год?" - }, - { - "user_message": "По ООО Альтернатива Плюс." - }, - { - "user_message": "Понял, тогда за все время." - }, - { - "user_message": "Хорошо. А что по ООО Альтернатива Плюс больше в 2020 году: входящие или исходящие деньги?" - }, - { - "user_message": "А что по ООО Альтернатива Плюс больше уже за 2021 год: входящие или исходящие деньги?" - }, - { - "user_message": "И кто больше всего принес денег этой организации в 2020 году?" - }, - { - "user_message": "А в 2021 году?" - } - ] - } - ] -} diff --git a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260423133622_gen-ag04231336-4fa660.json b/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260423133622_gen-ag04231336-4fa660.json deleted file mode 100644 index d0e8a7b..0000000 --- a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260423133622_gen-ag04231336-4fa660.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "suite_id": "assistant_saved_session_gen-ag04231336-4fa660", - "suite_version": "0.1.0", - "schema_version": "assistant_saved_session_suite_v0_1", - "generated_at": "2026-04-23T13:36:22+00:00", - "generation_id": "gen-ag04231336-4fa660", - "mode": "saved_user_sessions", - "title": "AGENT | Живой диалог по НДС: от ориентации до документов", - "domain": "address_phase64_human_vat_investigation_dialog", - "scenario_count": 1, - "case_ids": [ - "SAVED-001" - ], - "cases": [ - { - "case_id": "SAVED-001", - "scenario_tag": "agent_saved_user_sessions", - "title": "AGENT | Живой диалог по НДС: от ориентации до документов", - "question_type": "followup", - "broadness_level": "medium", - "turns": [ - { - "user_message": "Мне нужно понять, где в 1С по НДС вообще лежат данные. Какие объекты стоит смотреть по НДС?" - }, - { - "user_message": "Хорошо, тогда покажи движения по ООО Альтернатива Плюс." - }, - { - "user_message": "За 2020 год." - }, - { - "user_message": "А теперь по документам?" - }, - { - "user_message": "А теперь за 2021 год?" - }, - { - "user_message": "А теперь за все время?" - } - ] - } - ] -} diff --git a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260423133622_gen-ag04231336-db78b3.json b/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260423133622_gen-ag04231336-db78b3.json deleted file mode 100644 index 78d9a53..0000000 --- a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260423133622_gen-ag04231336-db78b3.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "suite_id": "assistant_saved_session_gen-ag04231336-db78b3", - "suite_version": "0.1.0", - "schema_version": "assistant_saved_session_suite_v0_1", - "generated_at": "2026-04-23T13:36:22+00:00", - "generation_id": "gen-ag04231336-db78b3", - "mode": "saved_user_sessions", - "title": "AGENT | Живой диалог по СВК: деньги, нетто, документы и движения", - "domain": "address_phase65_human_svk_money_dialog", - "scenario_count": 1, - "case_ids": [ - "SAVED-001" - ], - "cases": [ - { - "case_id": "SAVED-001", - "scenario_tag": "agent_saved_user_sessions", - "title": "AGENT | Живой диалог по СВК: деньги, нетто, документы и движения", - "question_type": "followup", - "broadness_level": "medium", - "turns": [ - { - "user_message": "Хочу проверить одного контрагента. Найди в 1С Группу СВК." - }, - { - "user_message": "Посмотри, сколько денег мы получили от него за 2020 год." - }, - { - "user_message": "А теперь сколько мы ему заплатили?" - }, - { - "user_message": "А какое получилось нетто?" - }, - { - "user_message": "А по документам?" - }, - { - "user_message": "А по движениям?" - }, - { - "user_message": "А теперь за 2021 год?" - } - ] - } - ] -} diff --git a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260423184425_gen-ag04231844-8e552a.json b/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260423184425_gen-ag04231844-8e552a.json deleted file mode 100644 index 9c561de..0000000 --- a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260423184425_gen-ag04231844-8e552a.json +++ /dev/null @@ -1,82 +0,0 @@ -{ - "suite_id": "assistant_saved_session_gen-ag04231844-8e552a", - "suite_version": "0.1.0", - "schema_version": "assistant_saved_session_suite_v0_1", - "generated_at": "2026-04-23T18:44:25+00:00", - "generation_id": "gen-ag04231844-8e552a", - "mode": "saved_user_sessions", - "title": "AGENT | ARCH: Post-F Semantic Integrity Hardening | Смешанный живой диалог: repeated pivots, орг-срез и СВК", - "domain": "address_phase82_human_mixed_integrity_status_dialog", - "scenario_count": 1, - "case_ids": [ - "SAVED-001" - ], - "cases": [ - { - "case_id": "SAVED-001", - "scenario_tag": "agent_saved_user_sessions", - "title": "AGENT | ARCH: Post-F Semantic Integrity Hardening | Смешанный живой диалог: repeated pivots, орг-срез и СВК", - "question_type": "followup", - "broadness_level": "medium", - "turns": [ - { - "user_message": "Покажи документы по Жуковке 51." - }, - { - "user_message": "Хорошо, а теперь платежи по нему тоже покажи." - }, - { - "user_message": "А по нему договоры?" - }, - { - "user_message": "А по нему документы?" - }, - { - "user_message": "А по нему платежи?" - }, - { - "user_message": "А за 2021?" - }, - { - "user_message": "С Жуковкой закончили. Теперь нужна другая задача: быстрый денежный срез по одной организации. Если для ответа нужна организация, просто уточни ее. Сколько вообще входящих денег было за 2020 год?" - }, - { - "user_message": "По ООО Альтернатива Плюс." - }, - { - "user_message": "Понял, тогда за все время." - }, - { - "user_message": "Хорошо. А что по ООО Альтернатива Плюс больше в 2020 году: входящие или исходящие деньги?" - }, - { - "user_message": "А что по ООО Альтернатива Плюс больше уже за 2021 год: входящие или исходящие деньги?" - }, - { - "user_message": "И кто больше всего принес денег этой организации в 2020 году?" - }, - { - "user_message": "А в 2021 году?" - }, - { - "user_message": "Теперь отдельная тема по конкретному контрагенту. Найди в 1С Группу СВК." - }, - { - "user_message": "Сколько получили по нему за 2020 год?" - }, - { - "user_message": "А теперь сколько заплатили?" - }, - { - "user_message": "А какое нетто?" - }, - { - "user_message": "А по документам?" - }, - { - "user_message": "А по движениям?" - } - ] - } - ] -} diff --git a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260510094921_gen-ag05100949-2a5ed8.json b/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260510094921_gen-ag05100949-2a5ed8.json new file mode 100644 index 0000000..f4cec04 --- /dev/null +++ b/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260510094921_gen-ag05100949-2a5ed8.json @@ -0,0 +1,40 @@ +{ + "suite_id": "assistant_saved_session_gen-ag05100949-2a5ed8", + "suite_version": "0.1.0", + "schema_version": "assistant_saved_session_suite_v0_1", + "generated_at": "2026-05-10T09:49:21+00:00", + "generation_id": "gen-ag05100949-2a5ed8", + "mode": "saved_user_sessions", + "title": "AGENT | Phase 91 route-candidate-driven enablement loop canary", + "domain": "address_phase91_route_candidate_driven_enablement_loop", + "scenario_count": 1, + "case_ids": [ + "SAVED-001" + ], + "cases": [ + { + "case_id": "SAVED-001", + "scenario_tag": "agent_saved_user_sessions", + "title": "AGENT | Phase 91 route-candidate-driven enablement loop canary", + "question_type": "followup", + "broadness_level": "medium", + "turns": [ + { + "user_message": "какой контрагент принес больше всего денег за 2020 год?" + }, + { + "user_message": "ООО Альтернатива Плюс" + }, + { + "user_message": "а теперь сколько лет мы работаем с Группа СВК?" + }, + { + "user_message": "покажи движения по НДС за 2020 по ООО Альтернатива Плюс" + }, + { + "user_message": "можно ли по этим данным точно подтвердить резерв под неликвиды на складе?" + } + ] + } + ] +} diff --git a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260510121326_gen-ag05101213-596d99.json b/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260510121326_gen-ag05101213-596d99.json new file mode 100644 index 0000000..1c00126 --- /dev/null +++ b/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260510121326_gen-ag05101213-596d99.json @@ -0,0 +1,43 @@ +{ + "suite_id": "assistant_saved_session_gen-ag05101213-596d99", + "suite_version": "0.1.0", + "schema_version": "assistant_saved_session_suite_v0_1", + "generated_at": "2026-05-10T12:13:26+00:00", + "generation_id": "gen-ag05101213-596d99", + "mode": "saved_user_sessions", + "title": "AGENT | Phase 93 accounting profit-margin reviewed route", + "domain": "address_phase93_accounting_profit_margin_reviewed_route", + "scenario_count": 1, + "case_ids": [ + "SAVED-001" + ], + "cases": [ + { + "case_id": "SAVED-001", + "scenario_tag": "agent_saved_user_sessions", + "title": "AGENT | Phase 93 accounting profit-margin reviewed route", + "question_type": "followup", + "broadness_level": "medium", + "turns": [ + { + "user_message": "по ООО Альтернатива Плюс за 2020 можно точно сказать чистую прибыль и маржу?" + }, + { + "user_message": "а это прибыль или убыток, коротко?" + }, + { + "user_message": "по этой же компании на конец 2020 можно точно понять, какая дебиторка просрочена?" + }, + { + "user_message": "тогда НДС за 2020 по ООО Альтернатива Плюс какой?" + }, + { + "user_message": "а какой контрагент принес больше всего денег за 2020?" + }, + { + "user_message": "по ООО Альтернатива Плюс на конец 2020 можно точно подтвердить резерв под неликвиды на складе?" + } + ] + } + ] +} diff --git a/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260510131922_gen-ag05101319-c04f79.json b/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260510131922_gen-ag05101319-c04f79.json new file mode 100644 index 0000000..3b7bb2d --- /dev/null +++ b/llm_normalizer/data/eval_cases/assistant_autogen_saved_user_sessions_20260510131922_gen-ag05101319-c04f79.json @@ -0,0 +1,46 @@ +{ + "suite_id": "assistant_saved_session_gen-ag05101319-c04f79", + "suite_version": "0.1.0", + "schema_version": "assistant_saved_session_suite_v0_1", + "generated_at": "2026-05-10T13:19:22+00:00", + "generation_id": "gen-ag05101319-c04f79", + "mode": "saved_user_sessions", + "title": "AGENT | Phase 94 debt due-date aging reviewed route", + "domain": "address_phase94_debt_due_date_aging_reviewed_route", + "scenario_count": 1, + "case_ids": [ + "SAVED-001" + ], + "cases": [ + { + "case_id": "SAVED-001", + "scenario_tag": "agent_saved_user_sessions", + "title": "AGENT | Phase 94 debt due-date aging reviewed route", + "question_type": "followup", + "broadness_level": "medium", + "turns": [ + { + "user_message": "по ООО Альтернатива Плюс на конец 2020 можно точно понять, какая дебиторка просрочена?" + }, + { + "user_message": "то есть просрочку доказать нельзя, коротко почему?" + }, + { + "user_message": "а чистая прибыль и маржа за 2020 по этой же компании какие?" + }, + { + "user_message": "НДС за 2020 по ООО Альтернатива Плюс какой?" + }, + { + "user_message": "а кто принес больше всего денег за 2020?" + }, + { + "user_message": "по ООО Альтернатива Плюс на конец 2020 можно точно подтвердить резерв под неликвиды на складе?" + }, + { + "user_message": "а зависимость от одного поставщика за 2020 можно точно оценить?" + } + ] + } + ] +} diff --git a/scripts/agent_semantic_pack_builder.py b/scripts/agent_semantic_pack_builder.py index fd94dfb..66bd52a 100644 --- a/scripts/agent_semantic_pack_builder.py +++ b/scripts/agent_semantic_pack_builder.py @@ -427,6 +427,13 @@ def classify_truth_harness_step(spec_path: Path, spec: dict[str, Any], step: dic expected_catalog_alignment_status = str(step.get("expected_catalog_alignment_status") or "").strip() expected_catalog_chain_top_match = str(step.get("expected_catalog_chain_top_match") or "").strip() expected_catalog_selected_matches_top = step.get("expected_catalog_selected_matches_top") + expected_route_candidate_status = str(step.get("expected_route_candidate_status") or "").strip() + expected_route_candidate_executable_now = step.get("expected_route_candidate_executable_now") + expected_route_candidate_missing_axes = [ + str(item).strip() + for item in (step.get("expected_route_candidate_missing_axes") or []) + if str(item).strip() + ] semantic_tag_inputs = [*step.get("semantic_tags", []), *_base_step_tags(question, step_id, title, expected_intents)] if ( expected_catalog_alignment_status @@ -434,6 +441,12 @@ def classify_truth_harness_step(spec_path: Path, spec: dict[str, Any], step: dic or expected_catalog_selected_matches_top is not None ): semantic_tag_inputs.append("planner_catalog_alignment") + if ( + expected_route_candidate_status + or expected_route_candidate_executable_now is not None + or expected_route_candidate_missing_axes + ): + semantic_tag_inputs.append("route_candidate_handoff") semantic_tags = _normalize_tags(semantic_tag_inputs) return { "entry_id": f"{spec_path.stem}:{step_id}", @@ -451,6 +464,9 @@ def classify_truth_harness_step(spec_path: Path, spec: dict[str, Any], step: dic "expected_catalog_alignment_status": expected_catalog_alignment_status or None, "expected_catalog_chain_top_match": expected_catalog_chain_top_match or None, "expected_catalog_selected_matches_top": expected_catalog_selected_matches_top, + "expected_route_candidate_status": expected_route_candidate_status or None, + "expected_route_candidate_executable_now": expected_route_candidate_executable_now, + "expected_route_candidate_missing_axes": expected_route_candidate_missing_axes, "semantic_tags": semantic_tags, "step_payload": step, } @@ -543,8 +559,16 @@ def _catalog_markdown(catalog: dict[str, Any]) -> str: if entry.get("expected_catalog_selected_matches_top") is not None: catalog_bits.append(f"selected_matches_top={entry.get('expected_catalog_selected_matches_top')}") catalog_suffix = f" | catalog_alignment: {', '.join(catalog_bits)}" if catalog_bits else "" + route_bits = [] + if entry.get("expected_route_candidate_status"): + route_bits.append(f"status={entry.get('expected_route_candidate_status')}") + if entry.get("expected_route_candidate_executable_now") is not None: + route_bits.append(f"executable={entry.get('expected_route_candidate_executable_now')}") + if entry.get("expected_route_candidate_missing_axes"): + route_bits.append(f"missing={','.join(entry.get('expected_route_candidate_missing_axes') or [])}") + route_suffix = f" | route_candidate: {', '.join(route_bits)}" if route_bits else "" lines.append( - f"- `{entry.get('entry_id')}` | tags: {tags}{catalog_suffix} | question: {entry.get('question')}" + f"- `{entry.get('entry_id')}` | tags: {tags}{catalog_suffix}{route_suffix} | question: {entry.get('question')}" ) lines.extend(["", "## Saved session questions"]) for entry in catalog.get("saved_session_entries") or []: diff --git a/scripts/domain_case_loop.py b/scripts/domain_case_loop.py index 7b09863..a73ea39 100644 --- a/scripts/domain_case_loop.py +++ b/scripts/domain_case_loop.py @@ -122,11 +122,16 @@ BUSINESS_TOP_LINE_SCAFFOLD_MARKERS = ( "\u0441\u0442\u0430\u0442\u0443\u0441", ) BUSINESS_TECHNICAL_GARBAGE_MARKERS = ( + "mcp-срез", + "лимит выборки mcp", + "через mcp", + "mcp-провер", "mcp_discovery", "runtime_", "capability_id", "selected_chain_id", "business_overview_route_template_v1", + "probe ", "query_movements", "query_documents", ) @@ -191,6 +196,7 @@ REPAIR_TARGET_PROBLEM_ORDER = { "followup_action_resolution_gap": 2, "object_memory_gap": 3, "route_gap": 4, + "route_candidate_enablement_gap": 4, "answer_shape_mismatch": 5, "field_mapping_gap": 5, "business_utility_gap": 6, @@ -229,6 +235,13 @@ REPAIR_TARGET_FILE_HINTS: dict[str, list[str]] = { "llm_normalizer/backend/src/services/address_runtime/decomposeStage.ts", "llm_normalizer/backend/src/services/assistantService.ts", ], + "route_candidate_enablement_gap": [ + "llm_normalizer/backend/src/services/assistantMcpDiscoveryRuntimeBridge.ts", + "llm_normalizer/backend/src/services/assistantMcpDiscoveryPlanner.ts", + "llm_normalizer/backend/src/services/assistantMcpDiscoveryPilotExecutor.ts", + "llm_normalizer/backend/src/services/assistantMcpDiscoveryTurnInputAdapter.ts", + "llm_normalizer/backend/src/services/addressRecipeCatalog.ts", + ], "capability_gap": [ "llm_normalizer/backend/src/services/addressCapabilityPolicy.ts", "llm_normalizer/backend/src/services/addressRecipeCatalog.ts", @@ -2313,6 +2326,21 @@ def build_scenario_step_state( "mcp_discovery_catalog_chain_alignment_status": debug.get("mcp_discovery_catalog_chain_alignment_status"), "mcp_discovery_catalog_chain_top_match": debug.get("mcp_discovery_catalog_chain_top_match"), "mcp_discovery_catalog_chain_selected_matches_top": debug.get("mcp_discovery_catalog_chain_selected_matches_top"), + "mcp_discovery_route_candidate_status": debug.get("mcp_discovery_route_candidate_status"), + "mcp_discovery_route_candidate_fact_family": debug.get("mcp_discovery_route_candidate_fact_family"), + "mcp_discovery_route_candidate_action_family": debug.get("mcp_discovery_route_candidate_action_family"), + "mcp_discovery_route_candidate_proof_expectation": debug.get("mcp_discovery_route_candidate_proof_expectation"), + "mcp_discovery_route_candidate_missing_axes": normalize_string_list( + debug.get("mcp_discovery_route_candidate_missing_axes") + ), + "mcp_discovery_route_candidate_provided_axes": normalize_string_list( + debug.get("mcp_discovery_route_candidate_provided_axes") + ), + "mcp_discovery_route_candidate_executable_now": debug.get("mcp_discovery_route_candidate_executable_now"), + "mcp_discovery_route_candidate_enablement_reason": debug.get( + "mcp_discovery_route_candidate_enablement_reason" + ), + "mcp_discovery_route_candidate_next_action": debug.get("mcp_discovery_route_candidate_next_action"), "mcp_discovery_response_applied": debug.get("mcp_discovery_response_applied"), "mcp_discovery_selected_chain_id": debug.get("mcp_discovery_selected_chain_id"), "mcp_discovery_response_candidate_status": ( @@ -3338,6 +3366,17 @@ def compact_step_output_for_review(step_output: Any) -> dict[str, Any]: "mcp_discovery_response_applied": step_output.get("mcp_discovery_response_applied"), "mcp_discovery_selected_chain_id": step_output.get("mcp_discovery_selected_chain_id"), "mcp_discovery_response_candidate_status": step_output.get("mcp_discovery_response_candidate_status"), + "mcp_discovery_route_candidate_status": step_output.get("mcp_discovery_route_candidate_status"), + "mcp_discovery_route_candidate_fact_family": step_output.get("mcp_discovery_route_candidate_fact_family"), + "mcp_discovery_route_candidate_action_family": step_output.get("mcp_discovery_route_candidate_action_family"), + "mcp_discovery_route_candidate_missing_axes": step_output.get("mcp_discovery_route_candidate_missing_axes"), + "mcp_discovery_route_candidate_executable_now": step_output.get( + "mcp_discovery_route_candidate_executable_now" + ), + "mcp_discovery_route_candidate_enablement_reason": step_output.get( + "mcp_discovery_route_candidate_enablement_reason" + ), + "mcp_discovery_route_candidate_next_action": step_output.get("mcp_discovery_route_candidate_next_action"), "mcp_discovery_effective_intents": step_output.get("mcp_discovery_effective_intents"), "failure_type": step_output.get("failure_type"), "error_message": step_output.get("error_message"), @@ -3368,6 +3407,7 @@ def collect_pack_scenario_artifacts(pack_dir: Path) -> list[dict[str, Any]]: def derive_repair_target_severity(step_output: dict[str, Any]) -> str: if bool(step_output.get("hard_fail")): return "P0" + route_candidate_status = str(step_output.get("mcp_discovery_route_candidate_status") or "").strip() violated_invariants = normalize_string_list(step_output.get("violated_invariants")) if any(derive_invariant_severity(step_output, code) == "P0" for code in violated_invariants): return "P0" @@ -3376,6 +3416,8 @@ def derive_repair_target_severity(step_output: dict[str, Any]) -> str: reply_type = str(step_output.get("reply_type") or "").strip() if execution_status == "blocked": return "P0" + if route_candidate_status == "needs_route_enablement": + return "P1" if acceptance_status in {"rejected", "needs_exact_capability"}: return "P1" if execution_status in {"partial", "needs_exact_capability"} or reply_type == "partial_coverage": @@ -3395,6 +3437,7 @@ def derive_repair_problem_type(step_output: dict[str, Any]) -> str: reply_type = str(step_output.get("reply_type") or "").strip() fallback_type = str(step_output.get("fallback_type") or "").strip() mcp_call_status = str(step_output.get("mcp_call_status") or "").strip() + route_candidate_status = str(step_output.get("mcp_discovery_route_candidate_status") or "").strip() if "wrong_followup_action" in violated: return "followup_action_resolution_gap" @@ -3421,6 +3464,8 @@ def derive_repair_problem_type(step_output: dict[str, Any]) -> str: return "presentation_gap" if mcp_call_status == "materialized_but_not_anchor_matched": return "domain_anchor_gap" + if route_candidate_status == "needs_route_enablement": + return "route_candidate_enablement_gap" if acceptance_status == "needs_exact_capability" or execution_status == "needs_exact_capability": return "capability_gap" if reply_type in {"partial_coverage", "clarification_required", "route_mismatch_blocked"} or fallback_type == "partial": @@ -3447,6 +3492,9 @@ def derive_repair_root_cause_layers(step_output: dict[str, Any], problem_type: s layers.append("edge_carryover_gap") elif problem_type == "route_gap": layers.append("semantic_understanding_gap") + elif problem_type == "route_candidate_enablement_gap": + layers.append("runtime_capability_gap") + layers.append("route_candidate_enablement_gap") elif problem_type == "capability_gap": layers.append("runtime_capability_gap") elif problem_type == "presentation_gap": @@ -3481,6 +3529,8 @@ def build_repair_fix_goal(step_output: dict[str, Any], problem_type: str) -> str return f"Keep `{question}` on the requested historical date/period and separate exact-window evidence from nearest available out-of-window evidence." if problem_type == "route_gap": return f"Keep `{question}` on the expected exact route/capability instead of letting wording drift into a different semantic lane." + if problem_type == "route_candidate_enablement_gap": + return f"Review and enable the route candidate for `{question}` instead of leaving the understood business ask as a non-executable handoff." if problem_type == "capability_gap": return f"Enable an exact route for `{question}` so the loop no longer falls back to partial or unsupported behavior." if problem_type == "presentation_gap": @@ -3496,6 +3546,96 @@ def build_repair_fix_goal(step_output: dict[str, Any], problem_type: str) -> str return f"Improve `{question}` with the smallest patch that removes the current acceptance failure without architecture drift." +def route_candidate_requires_enablement(step_output: dict[str, Any]) -> bool: + return str(step_output.get("mcp_discovery_route_candidate_status") or "").strip() == "needs_route_enablement" + + +def compact_route_candidate_handoff( + *, + scenario_id: str, + step_id: str, + step_output: dict[str, Any], +) -> dict[str, Any] | None: + status = str(step_output.get("mcp_discovery_route_candidate_status") or "").strip() + if not status: + return None + return { + "scenario_id": scenario_id, + "step_id": step_id, + "target_id": f"{scenario_id}:{step_id}", + "question_resolved": str(step_output.get("question_resolved") or "").strip() or None, + "candidate_status": status, + "selected_chain_id": str(step_output.get("mcp_discovery_selected_chain_id") or "").strip() or None, + "fact_family": str(step_output.get("mcp_discovery_route_candidate_fact_family") or "").strip() or None, + "action_family": str(step_output.get("mcp_discovery_route_candidate_action_family") or "").strip() or None, + "missing_axes": normalize_string_list(step_output.get("mcp_discovery_route_candidate_missing_axes")), + "executable_now": step_output.get("mcp_discovery_route_candidate_executable_now") is True, + "enablement_reason": str(step_output.get("mcp_discovery_route_candidate_enablement_reason") or "").strip() + or None, + "next_action": str(step_output.get("mcp_discovery_route_candidate_next_action") or "").strip() or None, + } + + +def build_route_candidate_focus_signature(candidate: dict[str, Any]) -> str: + status = str(candidate.get("candidate_status") or "unknown").strip() or "unknown" + selected_chain_id = str(candidate.get("selected_chain_id") or "no_chain").strip() or "no_chain" + missing_axes = ",".join(normalize_string_list(candidate.get("missing_axes"))) or "no_missing_axes" + return f"{status}|{selected_chain_id}|{missing_axes}" + + +def build_route_candidate_handoff_groups(candidates: list[dict[str, Any]]) -> list[dict[str, Any]]: + grouped: dict[str, dict[str, Any]] = {} + for candidate in candidates: + signature = build_route_candidate_focus_signature(candidate) + group = grouped.setdefault( + signature, + { + "group_id": signature, + "candidate_status": candidate.get("candidate_status"), + "selected_chain_id": candidate.get("selected_chain_id"), + "fact_family": candidate.get("fact_family"), + "action_family": candidate.get("action_family"), + "missing_axes": normalize_string_list(candidate.get("missing_axes")), + "executable_now": candidate.get("executable_now") is True, + "target_ids": [], + "scenario_ids": set(), + "sample_questions": [], + "next_actions": [], + "enablement_reasons": [], + }, + ) + target_id = str(candidate.get("target_id") or "").strip() + if target_id: + group["target_ids"].append(target_id) + scenario_id = str(candidate.get("scenario_id") or "").strip() + if scenario_id: + group["scenario_ids"].add(scenario_id) + question = str(candidate.get("question_resolved") or "").strip() + if question and len(group["sample_questions"]) < 3: + group["sample_questions"].append(question) + next_action = str(candidate.get("next_action") or "").strip() + if next_action and next_action not in group["next_actions"]: + group["next_actions"].append(next_action) + enablement_reason = str(candidate.get("enablement_reason") or "").strip() + if enablement_reason and enablement_reason not in group["enablement_reasons"]: + group["enablement_reasons"].append(enablement_reason) + + result: list[dict[str, Any]] = [] + for group in grouped.values(): + scenario_ids = sorted(group.pop("scenario_ids")) + group["scenario_ids"] = scenario_ids + group["candidate_count"] = len(group.get("target_ids") or []) + result.append(group) + result.sort( + key=lambda item: ( + 0 if str(item.get("candidate_status") or "") == "needs_route_enablement" else 1, + -int(item.get("candidate_count") or 0), + str(item.get("group_id") or ""), + ) + ) + return result + + def build_step_repair_target( *, scenario_id: str, @@ -3508,7 +3648,12 @@ def build_step_repair_target( execution_status = str(step_output.get("execution_status") or "").strip() or "unknown" violated_invariants = normalize_string_list(step_output.get("violated_invariants")) warnings = normalize_string_list(step_output.get("warnings")) - if acceptance_status in {"validated", "accepted"} and not violated_invariants and not warnings: + if ( + acceptance_status in {"validated", "accepted"} + and not violated_invariants + and not warnings + and not route_candidate_requires_enablement(step_output) + ): return None problem_type = derive_repair_problem_type(step_output) @@ -3524,8 +3669,17 @@ def build_step_repair_target( signals.append(f"violation={violation}") for warning in warnings[:3]: signals.append(f"warning={warning}") + route_candidate_status = str(step_output.get("mcp_discovery_route_candidate_status") or "").strip() + if route_candidate_status: + signals.append(f"route_candidate_status={route_candidate_status}") + selected_chain_id = str(step_output.get("mcp_discovery_selected_chain_id") or "").strip() + if selected_chain_id: + signals.append(f"selected_chain_id={selected_chain_id}") + missing_axes = normalize_string_list(step_output.get("mcp_discovery_route_candidate_missing_axes")) + if missing_axes: + signals.append(f"route_candidate_missing_axes={','.join(missing_axes)}") - return { + target = { "target_id": f"{scenario_id}:{step_id}", "scenario_id": scenario_id, "scenario_title": scenario_title, @@ -3546,6 +3700,12 @@ def build_step_repair_target( "step_state_json": str(step_state_path), }, } + route_candidate = compact_route_candidate_handoff(scenario_id=scenario_id, step_id=step_id, step_output=step_output) + if route_candidate: + target["route_candidate"] = route_candidate + if route_candidate_status == "needs_route_enablement": + target["target_source"] = "route_candidate_enablement" + return target def build_repair_focus_signature(target: dict[str, Any]) -> str: @@ -3610,6 +3770,7 @@ def build_deterministic_repair_targets( scenario_artifacts: list[dict[str, Any]], ) -> dict[str, Any]: targets: list[dict[str, Any]] = [] + route_candidates: list[dict[str, Any]] = [] step_validation_index: dict[str, dict[str, Any]] = {} for scenario_artifact in scenario_artifacts: scenario_id = str(scenario_artifact.get("scenario_id") or "").strip() @@ -3626,6 +3787,13 @@ def build_deterministic_repair_targets( continue step_key = f"{scenario_id}:{step_id}" step_validation_index[step_key] = compact_step_output_for_review(raw_step_output) + route_candidate = compact_route_candidate_handoff( + scenario_id=scenario_id, + step_id=str(step_id), + step_output=raw_step_output, + ) + if route_candidate: + route_candidates.append(route_candidate) target = build_step_repair_target( scenario_id=scenario_id, scenario_title=scenario_title, @@ -3675,6 +3843,11 @@ def build_deterministic_repair_targets( severity = str(target.get("severity") or "P2") if severity in severity_counts: severity_counts[severity] += 1 + route_candidate_groups = build_route_candidate_handoff_groups(route_candidates) + route_candidate_status_counts: dict[str, int] = {} + for candidate in route_candidates: + status = str(candidate.get("candidate_status") or "unknown").strip() or "unknown" + route_candidate_status_counts[status] = route_candidate_status_counts.get(status, 0) + 1 return { "schema_version": "domain_pack_repair_targets_v1", "pack_id": pack_state.get("pack_id"), @@ -3685,6 +3858,9 @@ def build_deterministic_repair_targets( "priority_foci": priority_foci, "targets": targets, "step_validation_index": step_validation_index, + "route_candidate_handoff_count": len(route_candidates), + "route_candidate_status_counts": route_candidate_status_counts, + "route_candidate_groups": route_candidate_groups, } @@ -3959,7 +4135,26 @@ def build_repair_targets_summary(repair_targets: dict[str, Any]) -> str: f"- analyst_priority_target_count: `{repair_targets.get('analyst_priority_target_count') if 'analyst_priority_target_count' in repair_targets else 'n/a'}`", f"- suppressed_analyst_priority_target_count: `{repair_targets.get('suppressed_analyst_priority_target_count') if 'suppressed_analyst_priority_target_count' in repair_targets else 0}`", f"- severity_counts: `{dump_json(repair_targets.get('severity_counts') or {})}`", + f"- route_candidate_handoff_count: `{repair_targets.get('route_candidate_handoff_count') if 'route_candidate_handoff_count' in repair_targets else 0}`", + f"- route_candidate_status_counts: `{dump_json(repair_targets.get('route_candidate_status_counts') or {})}`", ] + route_candidate_groups = repair_targets.get("route_candidate_groups") or [] + if isinstance(route_candidate_groups, list) and route_candidate_groups: + lines.extend(["", "## Route Candidate Groups"]) + for group in route_candidate_groups: + if not isinstance(group, dict): + continue + lines.extend( + [ + f"- group_id: `{group.get('group_id') or 'n/a'}`", + f" candidate_count: `{group.get('candidate_count') or 0}`", + f" status: `{group.get('candidate_status') or 'n/a'}`", + f" selected_chain_id: `{group.get('selected_chain_id') or 'n/a'}`", + f" missing_axes: `{', '.join(normalize_string_list(group.get('missing_axes'))) or 'n/a'}`", + f" executable_now: `{group.get('executable_now')}`", + f" target_ids: `{', '.join(normalize_string_list(group.get('target_ids'))) or 'n/a'}`", + ] + ) priority_foci = repair_targets.get("priority_foci") or [] if isinstance(priority_foci, list) and priority_foci: lines.extend( @@ -4155,6 +4350,7 @@ def build_analyst_loop_prompt( - `accepted` is forbidden if the evidence bundle shows `pack_state.final_status != accepted` or the deterministic repair targets still contain any `P0` or `P1` items; - `accepted` also requires `direct_answer_ok = true`, `business_usefulness_ok = true`, `temporal_honesty_ok = true`, and `field_truth_ok = true`; - Treat validated bounded MCP discovery as the semantic route when `bounded_mcp_answer_validated = true`, `mcp_discovery_response_applied = true`, `mcp_discovery_response_candidate_status = ready_for_guarded_use`, and `mcp_discovery_effective_intents` matches the business question. The legacy address route may be only a seed lane; do not call that silent heuristic masking unless the selected discovery chain is wrong, not ready, not applied, or the user-facing answer/state is semantically wrong. + - Use `mcp_discovery_route_candidate_status`, `mcp_discovery_route_candidate_missing_axes`, and `mcp_discovery_route_candidate_enablement_reason` to distinguish a valid user-scope clarification from a real missing reviewed route. Do not ask the coder to overfit the visible answer when the correct next action is route enablement or missing-axis clarification. - Treat `guarded_insufficiency_validated = true` as an acceptable limited answer only when the user-facing text explicitly says the exact fact is not confirmed and separates movement/candidate evidence from confirmed balances. - Before creating a priority target about missing validation, inspect the compact step state flags `bounded_mcp_answer_validated`, `memory_checkpoint_validated`, `runtime_factual_answer_validated`, and `guarded_insufficiency_validated`; do not repeat a stale target that contradicts those machine-readable flags. - Conversely, if a step is accepted only by first-line shape while `bounded_mcp_answer_validated`, `memory_checkpoint_validated`, `runtime_factual_answer_validated`, and `guarded_insufficiency_validated` are all false, treat that as potential silent heuristic or partial masking. @@ -4414,6 +4610,15 @@ def build_lead_coder_handoff( assigned_focus = select_primary_repair_focus(repair_targets) priority_foci = _limited_dict_items(repair_targets.get("priority_foci") if isinstance(repair_targets, dict) else []) repair_items = _limited_dict_items(repair_targets.get("targets") if isinstance(repair_targets, dict) else [], limit=8) + route_candidate_groups = _limited_dict_items( + repair_targets.get("route_candidate_groups") if isinstance(repair_targets, dict) else [], + limit=8, + ) + route_candidate_enablement_targets = [ + item + for item in repair_items + if isinstance(item, dict) and str(item.get("target_source") or "") == "route_candidate_enablement" + ] candidate_files = [repo_relative(path) for path in build_coder_snapshot_paths(repair_targets)] return { "schema_version": "domain_loop_lead_coder_handoff_v1", @@ -4453,10 +4658,13 @@ def build_lead_coder_handoff( "assigned_primary_focus": assigned_focus or None, "priority_foci": priority_foci, "top_repair_targets": repair_items, + "route_candidate_groups": route_candidate_groups, + "route_candidate_enablement_targets": route_candidate_enablement_targets, "candidate_files": candidate_files, "lead_instructions": [ "Read business_audit.md first and judge the user-facing answer before debug metadata.", "Inspect analyst_verdict.json and repair_targets.json only after the semantic defect is clear.", + "Use route_candidate_groups to distinguish missing user scope from a reviewed-route enablement gap before patching.", "Patch code manually in the main Codex context; do not launch a weak autonomous coder by default.", "Keep the patch narrow, preserve UTF-8 without BOM, run targeted tests/build, rebuild graphify after code edits, then rerun the same semantic pack.", ], @@ -4523,6 +4731,46 @@ def build_lead_coder_handoff_markdown(handoff: dict[str, Any]) -> str: f" candidate_files: `{', '.join(candidate_files) if candidate_files else 'n/a'}`", ] ) + route_candidate_groups = _limited_dict_items(handoff.get("route_candidate_groups"), limit=8) + lines.extend(["", "## Route Candidate Handoff Groups"]) + if not route_candidate_groups: + lines.append("- no route candidates") + for group in route_candidate_groups: + target_ids = normalize_string_list(group.get("target_ids")) + missing_axes = normalize_string_list(group.get("missing_axes")) + sample_questions = normalize_string_list(group.get("sample_questions")) + next_actions = normalize_string_list(group.get("next_actions")) + lines.extend( + [ + f"- group_id: `{group.get('group_id') or 'n/a'}`", + f" status: `{group.get('candidate_status') or 'n/a'}`", + f" selected_chain_id: `{group.get('selected_chain_id') or 'n/a'}`", + f" fact/action: `{group.get('fact_family') or 'n/a'}` / `{group.get('action_family') or 'n/a'}`", + f" missing_axes: `{', '.join(missing_axes) if missing_axes else 'n/a'}`", + f" executable_now: `{group.get('executable_now')}`", + f" target_ids: `{', '.join(target_ids) if target_ids else 'n/a'}`", + f" sample_questions: `{'; '.join(sample_questions) if sample_questions else 'n/a'}`", + f" next_actions: `{'; '.join(next_actions) if next_actions else 'n/a'}`", + ] + ) + route_candidate_enablement_targets = _limited_dict_items( + handoff.get("route_candidate_enablement_targets"), + limit=8, + ) + lines.extend(["", "## Route Candidate Enablement Targets"]) + if not route_candidate_enablement_targets: + lines.append("- no route-candidate enablement targets") + for target in route_candidate_enablement_targets: + route_candidate = target.get("route_candidate") if isinstance(target.get("route_candidate"), dict) else {} + lines.extend( + [ + f"- `{target.get('target_id') or 'n/a'}`", + f" severity: `{target.get('severity') or 'n/a'}`", + f" selected_chain_id: `{route_candidate.get('selected_chain_id') or 'n/a'}`", + f" missing_axes: `{', '.join(normalize_string_list(route_candidate.get('missing_axes'))) or 'n/a'}`", + f" fix_goal: {target.get('fix_goal') or 'n/a'}", + ] + ) lines.extend(["", "## Candidate Files"]) candidate_files = normalize_string_list(handoff.get("candidate_files")) lines.extend([f"- `{item}`" for item in candidate_files] or ["- no candidate files"]) diff --git a/scripts/domain_truth_harness.py b/scripts/domain_truth_harness.py index f66eb6c..06d0810 100644 --- a/scripts/domain_truth_harness.py +++ b/scripts/domain_truth_harness.py @@ -28,6 +28,9 @@ TECHNICAL_QUESTION_FIELDS = ( "expected_catalog_alignment_status", "expected_catalog_chain_top_match", "expected_catalog_selected_matches_top", + "expected_route_candidate_status", + "expected_route_candidate_executable_now", + "expected_route_candidate_missing_axes", "required_filters", "forbidden_capabilities", "forbidden_recipes", @@ -100,6 +103,13 @@ def normalize_step_spec(index: int, raw_step: Any) -> dict[str, Any]: str(step.get("expected_catalog_chain_top_match") or "").strip() or None ) normalized_step["expected_catalog_selected_matches_top"] = step.get("expected_catalog_selected_matches_top") + normalized_step["expected_route_candidate_status"] = ( + str(step.get("expected_route_candidate_status") or "").strip() or None + ) + normalized_step["expected_route_candidate_executable_now"] = step.get("expected_route_candidate_executable_now") + normalized_step["expected_route_candidate_missing_axes"] = normalize_pattern_list( + step.get("expected_route_candidate_missing_axes") + ) normalized_step["required_answer_patterns_any"] = normalize_pattern_list(step.get("required_answer_patterns_any")) normalized_step["required_answer_patterns_all"] = normalize_pattern_list(step.get("required_answer_patterns_all")) normalized_step["required_direct_answer_patterns_any"] = normalize_pattern_list( @@ -395,6 +405,7 @@ def evaluate_truth_step( capability_id = str(step_state.get("capability_id") or "").strip() catalog_alignment_status = str(step_state.get("mcp_discovery_catalog_chain_alignment_status") or "").strip() catalog_chain_top_match = str(step_state.get("mcp_discovery_catalog_chain_top_match") or "").strip() + route_candidate_status = str(step_state.get("mcp_discovery_route_candidate_status") or "").strip() limited_reason_category = str(step_state.get("limited_reason_category") or "").strip() extracted_filters = ( step_state.get("extracted_filters") if isinstance(step_state.get("extracted_filters"), dict) else {} @@ -477,6 +488,68 @@ def evaluate_truth_step( expected=expected_catalog_selected_matches_top, ) + expected_route_candidate_status = str( + resolve_nested_placeholders( + step.get("expected_route_candidate_status"), + step_results, + bindings, + runtime_bindings, + ) + or "" + ).strip() + if expected_route_candidate_status and route_candidate_status != expected_route_candidate_status: + append_finding( + findings, + step, + "wrong_route_candidate_status", + "Runtime route candidate status does not match the expected autonomy handoff verdict for this step.", + actual=route_candidate_status or None, + expected=expected_route_candidate_status, + ) + + expected_route_candidate_executable_now = normalize_optional_bool( + resolve_nested_placeholders( + step.get("expected_route_candidate_executable_now"), + step_results, + bindings, + runtime_bindings, + ) + ) + if expected_route_candidate_executable_now is not None: + actual_route_candidate_executable_now = step_state.get("mcp_discovery_route_candidate_executable_now") is True + if actual_route_candidate_executable_now != expected_route_candidate_executable_now: + append_finding( + findings, + step, + "wrong_route_candidate_executable_now", + "Runtime route candidate executability does not match the expected autonomy handoff verdict.", + actual=actual_route_candidate_executable_now, + expected=expected_route_candidate_executable_now, + ) + + expected_route_candidate_missing_axes = dcl.normalize_string_list( + resolve_nested_placeholders( + step.get("expected_route_candidate_missing_axes"), + step_results, + bindings, + runtime_bindings, + ) + ) + if expected_route_candidate_missing_axes: + actual_missing_axes = dcl.normalize_string_list(step_state.get("mcp_discovery_route_candidate_missing_axes")) + missing_expected_axes = [ + axis for axis in expected_route_candidate_missing_axes if axis not in actual_missing_axes + ] + if missing_expected_axes: + append_finding( + findings, + step, + "missing_route_candidate_axes", + "Runtime route candidate does not expose expected missing axes for the handoff.", + actual=actual_missing_axes, + expected=expected_route_candidate_missing_axes, + ) + if step_state.get("question_resolved") != step["question_template"]: append_finding( findings, @@ -928,6 +1001,9 @@ def build_truth_review_markdown(spec: dict[str, Any], scenario_state: dict[str, f"catalog_alignment_status: `{step_state.get('mcp_discovery_catalog_chain_alignment_status') or 'n/a'}`", f"catalog_top_match: `{step_state.get('mcp_discovery_catalog_chain_top_match') or 'n/a'}`", f"catalog_selected_matches_top: `{step_state.get('mcp_discovery_catalog_chain_selected_matches_top')}`", + f"route_candidate_status: `{step_state.get('mcp_discovery_route_candidate_status') or 'n/a'}`", + f"route_candidate_missing_axes: `{', '.join(step_state.get('mcp_discovery_route_candidate_missing_axes') or []) or 'n/a'}`", + f"route_candidate_executable_now: `{step_state.get('mcp_discovery_route_candidate_executable_now')}`", f"limited_reason_category: `{step_state.get('limited_reason_category') or 'n/a'}`", f"filters: `{dump_json(step_state.get('extracted_filters') or {})}`", f"direct_answer: {step_state.get('actual_direct_answer') or 'n/a'}", diff --git a/scripts/review_assistant_stage1_run.py b/scripts/review_assistant_stage1_run.py index 7fdefc9..238d676 100644 --- a/scripts/review_assistant_stage1_run.py +++ b/scripts/review_assistant_stage1_run.py @@ -66,6 +66,51 @@ FALSE_CATASTROPHE_MARKERS = ( "неправильно", ) BUSINESS_NOUN_MARKERS = tuple(sorted({item for values in DOMAIN_MARKERS.values() for item in values})) +GUI_TECHNICAL_LEAK_MARKERS = ( + "mcp-срез", + "лимит выборки mcp", + "через mcp", + "mcp-провер", + "probe ", + " probe", +) +FINANCIAL_INSTITUTION_MARKERS = ( + "сбербанк", + "втб", + "альфа-банк", + "альфа банк", + "тинькофф", + "т-банк", + "газпромбанк", + "росбанк", + "райффайзен", + "совкомбанк", + "промсвязьбанк", + "мкб", + "ак барс", + "уралсиб", + "банк ", +) +ORDINARY_COUNTERPARTY_ROLE_MARKERS = ( + "принёс", + "принес", + "клиент", + "поставщик", + "покупател", + "выручк", + "доход", + "закуп", + "procurement concentration proxy", + "крупнейший подтвержденный поставщик", +) +SAFE_FINANCIAL_BOUNDARY_MARKERS = ( + "банк/финансовая", + "финансовая организация", + "не считаю", + "не обычн", + "без назначения платеж", + "без договора", +) def now_iso() -> str: @@ -289,10 +334,59 @@ def build_step_for_pair(pair: dict[str, Any]) -> dict[str, Any]: "invariant_severity": { "answer_layering_noise": "P1", "business_answer_too_verbose": "P1", + "bank_counterparty_misclassified_as_business_partner": "P1", }, } +def has_any_marker(text: str, markers: tuple[str, ...]) -> bool: + lowered = str(text or "").casefold() + return any(marker.casefold() in lowered for marker in markers if marker) + + +def marker_hits(text: str, markers: tuple[str, ...]) -> list[str]: + lowered = str(text or "").casefold() + return [marker for marker in markers if marker and marker.casefold() in lowered] + + +def augment_gui_business_review(step_state: dict[str, Any]) -> dict[str, Any]: + review = ( + dict(step_state.get("business_first_review")) + if isinstance(step_state.get("business_first_review"), dict) + else {} + ) + assistant_text = str(step_state.get("assistant_text") or "") + issue_codes = [str(item) for item in review.get("issue_codes", []) if str(item).strip()] + root_layers = [str(item) for item in review.get("suggested_root_cause_layers", []) if str(item).strip()] + + technical_hits = [str(item) for item in review.get("technical_garbage_hits", []) if str(item).strip()] + for hit in marker_hits(assistant_text, GUI_TECHNICAL_LEAK_MARKERS): + if hit not in technical_hits: + technical_hits.append(hit) + if technical_hits and "technical_garbage_in_answer" not in issue_codes: + issue_codes.append("technical_garbage_in_answer") + if technical_hits and "business_utility_gap" not in root_layers: + root_layers.append("business_utility_gap") + + has_financial_counterparty = has_any_marker(assistant_text, FINANCIAL_INSTITUTION_MARKERS) + has_ordinary_role_claim = has_any_marker(assistant_text, ORDINARY_COUNTERPARTY_ROLE_MARKERS) + has_safe_boundary = has_any_marker(assistant_text, SAFE_FINANCIAL_BOUNDARY_MARKERS) + if has_financial_counterparty and has_ordinary_role_claim and not has_safe_boundary: + issue_code = "bank_counterparty_misclassified_as_business_partner" + if issue_code not in issue_codes: + issue_codes.append(issue_code) + if "business_semantic_role_gap" not in root_layers: + root_layers.append("business_semantic_role_gap") + + review["technical_garbage_present"] = bool(technical_hits) + review["technical_garbage_hits"] = technical_hits + review["issue_codes"] = issue_codes + review["suggested_root_cause_layers"] = list(dict.fromkeys(root_layers)) + review["business_usefulness_ok"] = not issue_codes + step_state["business_first_review"] = review + return step_state + + def build_step_state_for_pair( *, run_id: str, @@ -323,7 +417,7 @@ def build_step_state_for_pair( }, } entries = dcl.extract_structured_entries(assistant_text) - return dcl.build_scenario_step_state( + step_state = dcl.build_scenario_step_state( scenario_id=run_id, domain="assistant_stage1_gui_run", step=build_step_for_pair(pair), @@ -333,6 +427,7 @@ def build_step_state_for_pair( turn_artifact=turn_artifact, entries=entries, ) + return augment_gui_business_review(step_state) def severity_rank(severity: str) -> int: diff --git a/scripts/scenario_acceptance_policy.py b/scripts/scenario_acceptance_policy.py index 3eb4f5d..dfc0776 100644 --- a/scripts/scenario_acceptance_policy.py +++ b/scripts/scenario_acceptance_policy.py @@ -153,6 +153,14 @@ def _is_catalog_alignment_code(code: str) -> bool: } +def _is_route_candidate_code(code: str) -> bool: + return code in { + "wrong_route_candidate_status", + "wrong_route_candidate_executable_now", + "missing_route_candidate_axes", + } + + def _derive_step_invariant_failures(step: dict[str, Any], findings: list[dict[str, Any]]) -> dict[str, bool]: codes = [str(item.get("code") or "").strip() for item in findings] selected_object_step = _has_selected_object_signal(step) @@ -165,6 +173,7 @@ def _derive_step_invariant_failures(step: dict[str, Any], findings: list[dict[st "human_answer_quality": any(_is_human_answer_quality_code(code) for code in codes), "meta_context_integrity": meta_context_step and any(_is_meta_context_code(code) for code in codes), "catalog_alignment": any(_is_catalog_alignment_code(code) for code in codes), + "route_candidate_handoff": any(_is_route_candidate_code(code) for code in codes), } @@ -182,6 +191,7 @@ def build_scenario_acceptance_matrix( "human_answer_quality": 0, "meta_context_integrity": 0, "catalog_alignment": 0, + "route_candidate_handoff": 0, } for index, step in enumerate(spec.get("steps") or [], start=1): @@ -215,6 +225,19 @@ def build_scenario_acceptance_matrix( "mcp_discovery_response_applied": step_state.get("mcp_discovery_response_applied"), "mcp_discovery_selected_chain_id": step_state.get("mcp_discovery_selected_chain_id"), "mcp_discovery_response_candidate_status": step_state.get("mcp_discovery_response_candidate_status"), + "mcp_discovery_route_candidate_status": step_state.get("mcp_discovery_route_candidate_status"), + "mcp_discovery_route_candidate_fact_family": step_state.get( + "mcp_discovery_route_candidate_fact_family" + ), + "mcp_discovery_route_candidate_action_family": step_state.get( + "mcp_discovery_route_candidate_action_family" + ), + "mcp_discovery_route_candidate_missing_axes": step_state.get( + "mcp_discovery_route_candidate_missing_axes" + ), + "mcp_discovery_route_candidate_executable_now": step_state.get( + "mcp_discovery_route_candidate_executable_now" + ), "mcp_discovery_effective_intents": step_state.get("mcp_discovery_effective_intents"), "selected_object_step": _has_selected_object_signal(step), "meta_context_step": _has_meta_context_signal(step), @@ -233,6 +256,7 @@ def build_scenario_acceptance_matrix( "human_answer_quality_ok": invariant_failure_counts["human_answer_quality"] == 0, "meta_context_integrity_ok": invariant_failure_counts["meta_context_integrity"] == 0, "catalog_alignment_ok": invariant_failure_counts["catalog_alignment"] == 0, + "route_candidate_handoff_ok": invariant_failure_counts["route_candidate_handoff"] == 0, } critical_rows = [row for row in rows if row["criticality"] == "critical"] critical_path_green = bool(critical_rows) and all(row["review_status"] == "pass" for row in critical_rows) @@ -340,6 +364,7 @@ def build_scenario_acceptance_matrix_markdown(acceptance_matrix: dict[str, Any]) f"- human_answer_quality_ok: `{invariants.get('human_answer_quality_ok')}`", f"- meta_context_integrity_ok: `{invariants.get('meta_context_integrity_ok')}`", f"- catalog_alignment_ok: `{invariants.get('catalog_alignment_ok')}`", + f"- route_candidate_handoff_ok: `{invariants.get('route_candidate_handoff_ok')}`", "", "## Steps", ] @@ -353,6 +378,9 @@ def build_scenario_acceptance_matrix_markdown(acceptance_matrix: dict[str, Any]) f" catalog_alignment_status: `{row.get('mcp_discovery_catalog_chain_alignment_status') or 'n/a'}`", f" catalog_top_match: `{row.get('mcp_discovery_catalog_chain_top_match') or 'n/a'}`", f" catalog_selected_matches_top: `{row.get('mcp_discovery_catalog_chain_selected_matches_top')}`", + f" route_candidate_status: `{row.get('mcp_discovery_route_candidate_status') or 'n/a'}`", + f" route_candidate_missing_axes: `{', '.join(row.get('mcp_discovery_route_candidate_missing_axes') or []) or 'n/a'}`", + f" route_candidate_executable_now: `{row.get('mcp_discovery_route_candidate_executable_now')}`", f" highest_unresolved_priority: `{row.get('highest_unresolved_priority')}`", f" selected_object_step: `{row.get('selected_object_step')}`", f" meta_context_step: `{row.get('meta_context_step')}`", diff --git a/scripts/stage_agent_loop.py b/scripts/stage_agent_loop.py index 67bcdb1..bdbb491 100644 --- a/scripts/stage_agent_loop.py +++ b/scripts/stage_agent_loop.py @@ -573,6 +573,7 @@ def build_stage_context_capsule( "quality_rules": [ "Review the human question and visible answer before internal route ids.", "Treat direct-answer-first, business usefulness, temporal honesty, field truth, and answer layering as acceptance gates.", + "Use route-candidate status and missing axes to separate clarification, route enablement, and executable reviewed routes.", "Treat deterministic P0/P1 repair targets as blockers even if the analyst wording sounds optimistic.", "After code edits, run targeted tests/build and rebuild graphify before replay evidence is trusted.", ], diff --git a/scripts/test_agent_semantic_pack_builder.py b/scripts/test_agent_semantic_pack_builder.py index 7e564af..32bf3ff 100644 --- a/scripts/test_agent_semantic_pack_builder.py +++ b/scripts/test_agent_semantic_pack_builder.py @@ -68,6 +68,25 @@ class AgentSemanticPackBuilderTests(unittest.TestCase): ] self.assertEqual(len(catalog_checked_steps), 15) + def test_classify_truth_harness_step_preserves_route_candidate_expectations(self) -> None: + entry = builder.classify_truth_harness_step( + builder.ORCHESTRATION_DIR / "demo_route_candidate.json", + {"title": "Route candidate demo", "scenario_id": "demo", "domain": "demo"}, + { + "step_id": "step_01", + "title": "Needs organization", + "question": "show open-world route candidate", + "expected_route_candidate_status": "needs_user_scope", + "expected_route_candidate_executable_now": False, + "expected_route_candidate_missing_axes": ["organization"], + }, + ) + + self.assertEqual(entry["expected_route_candidate_status"], "needs_user_scope") + self.assertIs(entry["expected_route_candidate_executable_now"], False) + self.assertEqual(entry["expected_route_candidate_missing_axes"], ["organization"]) + self.assertIn("route_candidate_handoff", entry["semantic_tags"]) + if __name__ == "__main__": unittest.main() diff --git a/scripts/test_domain_case_loop_step_state.py b/scripts/test_domain_case_loop_step_state.py index c44b118..724942d 100644 --- a/scripts/test_domain_case_loop_step_state.py +++ b/scripts/test_domain_case_loop_step_state.py @@ -40,6 +40,14 @@ class DomainCaseLoopStepStateTests(unittest.TestCase): "mcp_discovery_catalog_chain_alignment_status": "selected_matches_top", "mcp_discovery_catalog_chain_top_match": "value_flow", "mcp_discovery_catalog_chain_selected_matches_top": True, + "mcp_discovery_route_candidate_status": "needs_user_scope", + "mcp_discovery_route_candidate_fact_family": "value_flow", + "mcp_discovery_route_candidate_action_family": "turnover", + "mcp_discovery_route_candidate_missing_axes": ["organization"], + "mcp_discovery_route_candidate_provided_axes": ["period"], + "mcp_discovery_route_candidate_executable_now": False, + "mcp_discovery_route_candidate_enablement_reason": "Missing scope axes: organization", + "mcp_discovery_route_candidate_next_action": "Ask the user for the missing scope axes before MCP execution.", }, "session_summary": {}, }, @@ -49,6 +57,106 @@ class DomainCaseLoopStepStateTests(unittest.TestCase): self.assertEqual(step_state["mcp_discovery_catalog_chain_alignment_status"], "selected_matches_top") self.assertEqual(step_state["mcp_discovery_catalog_chain_top_match"], "value_flow") self.assertTrue(step_state["mcp_discovery_catalog_chain_selected_matches_top"]) + self.assertEqual(step_state["mcp_discovery_route_candidate_status"], "needs_user_scope") + self.assertEqual(step_state["mcp_discovery_route_candidate_missing_axes"], ["organization"]) + self.assertEqual(step_state["mcp_discovery_route_candidate_provided_axes"], ["period"]) + self.assertFalse(step_state["mcp_discovery_route_candidate_executable_now"]) + + def test_repair_targets_promote_route_candidate_enablement_gaps(self) -> None: + repair_targets = dcl.build_deterministic_repair_targets( + {"pack_id": "route_candidate_pack", "domain": "open_world", "final_status": "accepted"}, + [ + { + "scenario_id": "route_candidate_demo", + "title": "Route candidate demo", + "artifact_dir": "artifacts/domain_runs/route_candidate_demo", + "scenario_state": { + "step_outputs": { + "step_01": { + "status": "accepted", + "acceptance_status": "accepted", + "execution_status": "validated", + "question_resolved": "можно ли построить анализ качества поставщиков за 2020?", + "reply_type": "partial_coverage", + "mcp_discovery_selected_chain_id": "business_overview", + "mcp_discovery_route_candidate_status": "needs_route_enablement", + "mcp_discovery_route_candidate_fact_family": "supplier_quality", + "mcp_discovery_route_candidate_action_family": "risk_or_quality_analysis", + "mcp_discovery_route_candidate_missing_axes": [], + "mcp_discovery_route_candidate_executable_now": False, + "mcp_discovery_route_candidate_enablement_reason": "Reviewed supplier-quality route is not wired yet.", + "mcp_discovery_route_candidate_next_action": "Enable a reviewed supplier-quality route before claiming this fact.", + } + } + }, + } + ], + ) + + self.assertEqual(repair_targets["target_count"], 1) + self.assertEqual(repair_targets["severity_counts"]["P1"], 1) + target = repair_targets["targets"][0] + self.assertEqual(target["problem_type"], "route_candidate_enablement_gap") + self.assertEqual(target["target_source"], "route_candidate_enablement") + self.assertEqual(target["route_candidate"]["candidate_status"], "needs_route_enablement") + self.assertEqual(repair_targets["route_candidate_status_counts"], {"needs_route_enablement": 1}) + self.assertEqual(repair_targets["route_candidate_groups"][0]["selected_chain_id"], "business_overview") + + def test_lead_handoff_surfaces_route_candidate_groups(self) -> None: + repair_targets = dcl.build_deterministic_repair_targets( + {"pack_id": "route_candidate_pack", "domain": "open_world", "final_status": "accepted"}, + [ + { + "scenario_id": "route_candidate_demo", + "title": "Route candidate demo", + "artifact_dir": "artifacts/domain_runs/route_candidate_demo", + "scenario_state": { + "step_outputs": { + "step_01": { + "status": "accepted", + "acceptance_status": "accepted", + "execution_status": "validated", + "question_resolved": "можно ли построить анализ качества поставщиков за 2020?", + "reply_type": "partial_coverage", + "mcp_discovery_selected_chain_id": "business_overview", + "mcp_discovery_route_candidate_status": "needs_route_enablement", + "mcp_discovery_route_candidate_fact_family": "supplier_quality", + "mcp_discovery_route_candidate_action_family": "risk_or_quality_analysis", + "mcp_discovery_route_candidate_missing_axes": [], + "mcp_discovery_route_candidate_executable_now": False, + "mcp_discovery_route_candidate_enablement_reason": "Reviewed supplier-quality route is not wired yet.", + "mcp_discovery_route_candidate_next_action": "Enable a reviewed supplier-quality route before claiming this fact.", + } + } + }, + } + ], + ) + handoff = dcl.build_lead_coder_handoff( + loop_state={"loop_id": "route_candidate_loop"}, + iteration_id="iteration_00", + pack_dir=Path("artifacts/domain_runs/route_candidate_pack"), + analyst_verdict_path=Path("artifacts/domain_runs/route_candidate_pack/analyst_verdict.json"), + repair_targets_path=Path("artifacts/domain_runs/route_candidate_pack/repair_targets.json"), + business_audit_path=Path("artifacts/domain_runs/route_candidate_pack/business_audit.md"), + analyst_verdict={"quality_score": 75}, + repair_targets=repair_targets, + target_score=88, + loop_decision="needs_exact_capability", + analyst_accepted_gate=False, + accepted_gate=False, + deterministic_gate_ok=False, + deterministic_gate_reason="repair_targets_remaining=P0:0,P1:1", + requires_user_decision=False, + user_decision_type="none", + user_decision_prompt=None, + ) + markdown = dcl.build_lead_coder_handoff_markdown(handoff) + + self.assertEqual(handoff["route_candidate_groups"][0]["candidate_status"], "needs_route_enablement") + self.assertEqual(handoff["route_candidate_enablement_targets"][0]["problem_type"], "route_candidate_enablement_gap") + self.assertIn("## Route Candidate Handoff Groups", markdown) + self.assertIn("route_candidate_demo:step_01", markdown) def test_analysis_context_date_is_not_implicit_business_filter(self) -> None: step_state = dcl.build_scenario_step_state( @@ -688,6 +796,39 @@ class DomainCaseLoopStepStateTests(unittest.TestCase): self.assertEqual(reviewed["critical_findings_count"], 1) self.assertEqual(reviewed["review_findings"][0]["code"], "wrong_catalog_chain_top_match") + def test_truth_harness_checks_expected_route_candidate_fields(self) -> None: + reviewed = dth.evaluate_truth_step( + step={ + "step_id": "step_01", + "question_template": "show route candidate", + "criticality": "critical", + "allowed_reply_types": [], + "expected_route_candidate_status": "needs_user_scope", + "expected_route_candidate_executable_now": False, + "expected_route_candidate_missing_axes": ["organization", "period"], + }, + step_state={ + "question_resolved": "show route candidate", + "reply_type": "clarification_required", + "assistant_text": "Please choose organization.", + "actual_direct_answer": "Please choose organization.", + "detected_intent": "counterparty_turnover", + "selected_recipe": None, + "capability_id": None, + "mcp_discovery_route_candidate_status": "needs_user_scope", + "mcp_discovery_route_candidate_missing_axes": ["organization"], + "mcp_discovery_route_candidate_executable_now": False, + "extracted_filters": {}, + }, + step_results={}, + bindings={}, + runtime_bindings={}, + ) + + self.assertEqual(reviewed["review_status"], "fail") + self.assertEqual(reviewed["critical_findings_count"], 1) + self.assertEqual(reviewed["review_findings"][0]["code"], "missing_route_candidate_axes") + def test_business_first_review_flags_dirty_direct_answer_surface(self) -> None: step_state = dcl.build_scenario_step_state( scenario_id="business_surface_demo", diff --git a/scripts/test_review_assistant_stage1_run.py b/scripts/test_review_assistant_stage1_run.py index 7e51dfd..3898005 100644 --- a/scripts/test_review_assistant_stage1_run.py +++ b/scripts/test_review_assistant_stage1_run.py @@ -132,6 +132,44 @@ class AssistantStage1RunReviewTests(unittest.TestCase): self.assertIn("overall_business_status", markdown) self.assertIn("Question Quality", markdown) + def test_review_flags_mcp_leak_and_bank_role_misclassification(self) -> None: + with tempfile.TemporaryDirectory() as tmp: + root = Path(tmp) + sessions_dir = root / "sessions" + reports_dir = root / "reports" + run_id = "assistant-stage1-bank-leak" + session_file = sessions_dir / f"{run_id}-SAVED-001.json" + report_file = reports_dir / f"{run_id}.md" + write_json( + session_file, + session_payload( + [ + {"role": "user", "text": "кто принес больше всего денег за 2020"}, + { + "role": "assistant", + "text": "Коротко: больше всего денег принёс контрагент СБЕРБАНК, ПАО. " + "Важно: исходящие уперлись в лимит выборки MCP.", + "reply_type": "partial_coverage", + "message_id": "a-bank", + "trace_id": "trace-bank", + "debug": {}, + }, + ] + ), + ) + report_file.parent.mkdir(parents=True, exist_ok=True) + report_file.write_text(f"# Assistant Stage 1 Eval Run\n\n- run_id: {run_id}\n", encoding="utf-8") + + review = reviewer.build_run_review( + run_id=run_id, + session_files=[session_file], + report_path=report_file, + ) + + self.assertEqual(review["summary"]["overall_business_status"], "fail") + self.assertIn("technical_garbage_in_answer", review["summary"]["issue_counts"]) + self.assertIn("bank_counterparty_misclassified_as_business_partner", review["summary"]["issue_counts"]) + def test_question_quality_treats_short_natural_followups_as_contextual(self) -> None: pairs = [ {"pair_index": 1, "user": {"text": "приветик - че как там дела"}}, diff --git a/scripts/test_scenario_acceptance_policy.py b/scripts/test_scenario_acceptance_policy.py index 005edd7..d60c5a8 100644 --- a/scripts/test_scenario_acceptance_policy.py +++ b/scripts/test_scenario_acceptance_policy.py @@ -87,6 +87,11 @@ class ScenarioAcceptancePolicyTests(unittest.TestCase): "mcp_discovery_catalog_chain_alignment_status": "selected_matches_top", "mcp_discovery_catalog_chain_top_match": "inventory_stock_snapshot", "mcp_discovery_catalog_chain_selected_matches_top": True, + "mcp_discovery_route_candidate_status": "ready_for_reviewed_execution", + "mcp_discovery_route_candidate_fact_family": "inventory_stock_snapshot", + "mcp_discovery_route_candidate_action_family": "stock_snapshot", + "mcp_discovery_route_candidate_missing_axes": [], + "mcp_discovery_route_candidate_executable_now": True, "review_findings": [], } }, @@ -116,6 +121,11 @@ class ScenarioAcceptancePolicyTests(unittest.TestCase): "inventory_stock_snapshot", ) self.assertTrue(acceptance_matrix["rows"][0]["mcp_discovery_catalog_chain_selected_matches_top"]) + self.assertEqual( + acceptance_matrix["rows"][0]["mcp_discovery_route_candidate_status"], + "ready_for_reviewed_execution", + ) + self.assertTrue(acceptance_matrix["rows"][0]["mcp_discovery_route_candidate_executable_now"]) def test_flags_meta_context_integrity_when_meta_step_leaks_technical_answer_shape(self) -> None: spec = { @@ -212,6 +222,51 @@ class ScenarioAcceptancePolicyTests(unittest.TestCase): self.assertEqual(pack_state["unresolved_p1_count"], 1) self.assertIn("catalog_alignment", acceptance_matrix["rows"][0]["invariant_failures"]) + def test_flags_route_candidate_handoff_invariant_when_expected_candidate_is_wrong(self) -> None: + spec = { + "scenario_id": "demo_route_candidate", + "domain": "open_world_autonomy", + "title": "Route candidate", + "steps": [ + { + "step_id": "step_01", + "title": "Candidate needs scope", + "question_template": "show unfamiliar 1c route candidate", + "criticality": "critical", + "semantic_tags": ["route_candidate_handoff"], + } + ], + } + scenario_state = { + "session_id": "asst-route", + "step_outputs": { + "step_01": { + "review_status": "fail", + "reply_type": "clarification_required", + "mcp_discovery_route_candidate_status": "ready_for_reviewed_execution", + "mcp_discovery_route_candidate_missing_axes": [], + "mcp_discovery_route_candidate_executable_now": True, + "review_findings": [ + {"code": "wrong_route_candidate_status", "severity": "critical"}, + ], + } + }, + } + review_summary = { + "review_source": "live_strict_replay", + "overall_status": "fail", + "steps_total": 1, + "steps_passed": 0, + "steps_with_warning": 0, + "steps_failed": 1, + } + + acceptance_matrix = sap.build_scenario_acceptance_matrix(spec, scenario_state, review_summary) + pack_state = sap.derive_truth_harness_pack_state(spec, scenario_state, review_summary, acceptance_matrix) + + self.assertFalse(pack_state["invariants"]["route_candidate_handoff_ok"]) + self.assertIn("route_candidate_handoff", acceptance_matrix["rows"][0]["invariant_failures"]) + if __name__ == "__main__": unittest.main()