АРЧ АП11 - Оркестрация: дожать агентный прогон по выбору компании и возрасту активности в 1С
This commit is contained in:
@@ -14,7 +14,7 @@ The goal is to turn it from a god-service into a thinner coordinator.
|
||||
|
||||
Approximate size:
|
||||
|
||||
- `5770` lines
|
||||
- `5198` lines
|
||||
|
||||
It currently mixes concerns from:
|
||||
|
||||
@@ -48,7 +48,7 @@ Current owner:
|
||||
|
||||
Current location:
|
||||
|
||||
- [assistantService.ts:4248](/x:/1C/NDC_1C/llm_normalizer/backend/src/services/assistantService.ts:4248)
|
||||
- [assistantService.ts:3999](/x:/1C/NDC_1C/llm_normalizer/backend/src/services/assistantService.ts:3999)
|
||||
|
||||
Target owner:
|
||||
|
||||
@@ -72,8 +72,8 @@ Current owner:
|
||||
|
||||
Current location:
|
||||
|
||||
- [assistantService.ts:2828](/x:/1C/NDC_1C/llm_normalizer/backend/src/services/assistantService.ts:2828)
|
||||
- [assistantService.ts:3111](/x:/1C/NDC_1C/llm_normalizer/backend/src/services/assistantService.ts:3111)
|
||||
- [assistantService.ts:2927](/x:/1C/NDC_1C/llm_normalizer/backend/src/services/assistantService.ts:2927)
|
||||
- [assistantService.ts:2930](/x:/1C/NDC_1C/llm_normalizer/backend/src/services/assistantService.ts:2930)
|
||||
|
||||
Target owner:
|
||||
|
||||
@@ -201,13 +201,13 @@ This order is chosen because route and transition pressure are currently the mai
|
||||
|
||||
This extraction is materially underway and no longer just a proposal.
|
||||
|
||||
Current active owner creation and wiring in [assistantService.ts](/x:/1C/NDC_1C/llm_normalizer/backend/src/services/assistantService.ts:4725):
|
||||
Current active owner creation and wiring in [assistantService.ts](/x:/1C/NDC_1C/llm_normalizer/backend/src/services/assistantService.ts:4283):
|
||||
|
||||
- provider owner near `4725`
|
||||
- meta and memory owners near `4738-4743`
|
||||
- route owner near `4748`
|
||||
- transition owner near `4785`
|
||||
- boundary owner near `5439`
|
||||
- provider owner near `4283`
|
||||
- meta and memory owners near `4296-4301`
|
||||
- route owner near `4306`
|
||||
- transition owner near `4343`
|
||||
- boundary owner near `4997`
|
||||
|
||||
What is already true:
|
||||
|
||||
@@ -216,7 +216,7 @@ What is already true:
|
||||
|
||||
What is still not fully true:
|
||||
|
||||
- legacy helper bodies still physically remain inside `assistantService.ts`
|
||||
- some legacy helper bodies still physically remain inside `assistantService.ts`
|
||||
- the coordinator is still too large to be called thin
|
||||
- some reviews still require reading both extracted owners and the coordinator to understand final behavior
|
||||
|
||||
|
||||
@@ -199,7 +199,7 @@ Reason:
|
||||
|
||||
Remaining debt:
|
||||
|
||||
- `assistantService.ts` is still about `5770` lines;
|
||||
- `assistantService.ts` is still about `5198` lines;
|
||||
- runtime uses extracted owners, but legacy bodies and fallback branches still live in the coordinator file;
|
||||
- code review still sometimes requires reading `assistantService` together with extracted owners.
|
||||
|
||||
|
||||
+103
@@ -0,0 +1,103 @@
|
||||
{
|
||||
"schema_version": "domain_truth_harness_spec_v1",
|
||||
"scenario_id": "address_truth_harness_phase5_assistantservice_boundary_transition_mix",
|
||||
"domain": "address_phase5_assistantservice_boundary_transition_mix",
|
||||
"title": "AssistantService boundary and transition delegation replay over mixed contextual chains",
|
||||
"description": "Targeted AGENT replay for the assistantService extraction slice: deterministic data-scope boundary, inventory root continuity, selected-object follow-ups, same-date restore, organization fact boundary, meta recap, and a cross-domain root-only carryover pivot.",
|
||||
"bindings": {},
|
||||
"steps": [
|
||||
{
|
||||
"step_id": "step_01_smalltalk",
|
||||
"title": "Casual opening stays human",
|
||||
"question": "привет, как дела?",
|
||||
"semantic_tags": [
|
||||
"meta_smalltalk"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_02_data_scope_meta",
|
||||
"title": "Data-scope question remains deterministic",
|
||||
"question": "по какой компании мы сейчас работаем?",
|
||||
"semantic_tags": [
|
||||
"meta_scope"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_03_inventory_root_march_2021",
|
||||
"title": "Inventory root establishes the March 2021 context",
|
||||
"question": "какие остатки на складе на март 2021",
|
||||
"semantic_tags": [
|
||||
"inventory_root"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_04_selected_item_supplier",
|
||||
"title": "Selected-object supplier follow-up survives the root hop",
|
||||
"question": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?",
|
||||
"semantic_tags": [
|
||||
"selected_object",
|
||||
"selected_object_supplier"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_05_selected_item_documents",
|
||||
"title": "Selected-object documents stay in the same contour",
|
||||
"question": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": покажи документы по этой позиции",
|
||||
"semantic_tags": [
|
||||
"selected_object",
|
||||
"selected_object_documents"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_06_inventory_same_date_restore",
|
||||
"title": "Same-date restore returns to the inventory root",
|
||||
"question": "покажи еще раз остатки на эту же дату",
|
||||
"semantic_tags": [
|
||||
"inventory_root",
|
||||
"same_date_restore"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_07_organization_fact_boundary",
|
||||
"title": "Organization fact lookup stays bounded and non-hallucinatory",
|
||||
"question": "а какой возраст у Альтернативы Плюс?",
|
||||
"semantic_tags": [
|
||||
"meta_scope",
|
||||
"organization_fact_boundary"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_08_capability_meta_interrupt",
|
||||
"title": "Capability meta interrupt does not destroy prior context",
|
||||
"question": "что ты умеешь?",
|
||||
"semantic_tags": [
|
||||
"meta_capability"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_09_memory_recap_after_interrupts",
|
||||
"title": "Memory recap still remembers the selected object after boundary and meta interruptions",
|
||||
"question": "а ты помнишь, что мы по этой позиции уже выяснили?",
|
||||
"semantic_tags": [
|
||||
"meta_memory"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_10_receivables_march_2020",
|
||||
"title": "Cross-domain root pivot starts from receivables",
|
||||
"question": "кто нам должен на март 2020",
|
||||
"semantic_tags": [
|
||||
"settlements_receivables"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_11_inventory_same_date_cross_domain",
|
||||
"title": "Inventory same-date pivot should reuse only root date context",
|
||||
"question": "остатки по складу на эту же дату",
|
||||
"semantic_tags": [
|
||||
"inventory_root",
|
||||
"same_date_pivot"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
+122
@@ -0,0 +1,122 @@
|
||||
{
|
||||
"schema_version": "domain_truth_harness_spec_v1",
|
||||
"scenario_id": "address_truth_harness_phase5_company_selection_and_activity_age",
|
||||
"domain": "address_phase5_company_selection_and_activity_age",
|
||||
"title": "AGENT replay for company selection continuity and organization activity age",
|
||||
"description": "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.",
|
||||
"bindings": {},
|
||||
"steps": [
|
||||
{
|
||||
"step_id": "step_01_smalltalk",
|
||||
"title": "Casual opening stays human",
|
||||
"question": "привет, как дела?",
|
||||
"semantic_tags": [
|
||||
"meta_smalltalk"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_02_data_scope_meta",
|
||||
"title": "Data-scope question shows available companies",
|
||||
"question": "по какой компании мы сейчас работаем?",
|
||||
"semantic_tags": [
|
||||
"meta_scope"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_03_inventory_root_requires_company",
|
||||
"title": "Inventory root correctly asks to choose a company",
|
||||
"question": "какие остатки на складе на март 2021",
|
||||
"semantic_tags": [
|
||||
"inventory_root",
|
||||
"company_clarification"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_04_choose_company",
|
||||
"title": "User selects the company inside the same session",
|
||||
"question": "давай по Альтернативе Плюс",
|
||||
"semantic_tags": [
|
||||
"meta_scope",
|
||||
"company_selection"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_05_inventory_root_after_company",
|
||||
"title": "Inventory root continues after the company choice",
|
||||
"question": "тогда покажи остатки на март 2021",
|
||||
"semantic_tags": [
|
||||
"inventory_root",
|
||||
"company_selected"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_06_selected_item_supplier",
|
||||
"title": "Selected-object supplier follow-up survives after company selection",
|
||||
"question": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": кто нам это поставил?",
|
||||
"semantic_tags": [
|
||||
"selected_object",
|
||||
"selected_object_supplier"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_07_selected_item_documents",
|
||||
"title": "Selected-object documents stay in the same contour",
|
||||
"question": "По выбранному объекту \"Столешница 600*3050*26 альмандин\": покажи документы по этой позиции",
|
||||
"semantic_tags": [
|
||||
"selected_object",
|
||||
"selected_object_documents"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_08_inventory_same_date_restore",
|
||||
"title": "Same-date restore returns to the inventory root within the chosen company",
|
||||
"question": "покажи еще раз остатки на эту же дату",
|
||||
"semantic_tags": [
|
||||
"inventory_root",
|
||||
"same_date_restore"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_09_company_activity_age",
|
||||
"title": "Organization age should be answered through reachable activity evidence or honest boundedness",
|
||||
"question": "а по Альтернативе Плюс сколько лет активности в базе 1С?",
|
||||
"semantic_tags": [
|
||||
"organization_activity_age",
|
||||
"company_selected"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_10_capability_meta_interrupt",
|
||||
"title": "Capability meta interrupt does not destroy prior context",
|
||||
"question": "что ты умеешь?",
|
||||
"semantic_tags": [
|
||||
"meta_capability"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_11_memory_recap_after_interrupts",
|
||||
"title": "Memory recap still remembers the selected object after capability interrupt",
|
||||
"question": "а ты помнишь, что мы по этой позиции уже выяснили?",
|
||||
"semantic_tags": [
|
||||
"meta_memory"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_12_receivables_march_2020",
|
||||
"title": "Cross-domain pivot keeps the active company",
|
||||
"question": "кто нам должен на март 2020",
|
||||
"semantic_tags": [
|
||||
"settlements_receivables"
|
||||
]
|
||||
},
|
||||
{
|
||||
"step_id": "step_13_inventory_same_date_cross_domain",
|
||||
"title": "Inventory same-date pivot should reuse the root date inside the active company",
|
||||
"question": "остатки по складу на эту же дату",
|
||||
"semantic_tags": [
|
||||
"inventory_root",
|
||||
"same_date_pivot"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user