# intent_router_v2

## Назначение
Маршрутизация пользовательского запроса в retrieval-профиль и граф выполнения.

## Структура пакета
- `router.py` — фасад `IntentRouterV2`.
- `intent/` — классификация intent и политика диалога.
- `analysis/` — нормализация запроса, anchors, sub-intent, план запроса.
- `retrieval/` — выбор слоев RAG и фильтров retrieval.
- `factory.py` — сборка роутера с GigaChat-классификатором.

## Публичный API
- `IntentRouterV2.route(user_query, conversation_state, repo_context) -> IntentRouterResult`
- `GigaChatIntentRouterFactory.build() -> IntentRouterV2`
- `IntentRouterScenarioRunner.run(queries, repo_context) -> list[IntentRouterResult]`
- `models`:
  - `ConversationState`
  - `RepoContext`
  - `IntentRouterResult`
  - `QueryPlan`
  - `QueryAnchor`

## Контракт результата `IntentRouterResult`
- `intent`: `CODE_QA | DOCS_QA | GENERATE_DOCS_FROM_CODE | PROJECT_MISC`
- `retrieval_profile`: `code | docs`
- `graph_id`: целевой graph в agent runtime
- `query_plan`: нормализованный запрос, anchors, sub-intent, keyword/path/doc hints
- `retrieval_spec`: слои + фильтры для RAG
- `retrieval_constraints`: include/exclude ограничения
- `symbol_resolution`: начальный статус резолва символа
- `evidence_policy`: политика набора источников

## Правила расширения
- Новая логика анализа запроса добавляется в `analysis/`.
- Новая политика retrieval добавляется в `retrieval/`.
- `router.py` остается orchestration-слоем и не содержит доменной логики парсинга.
