ввв
This commit is contained in:
@@ -1,265 +0,0 @@
|
||||
# Runtime Trace: 20260406-153629-250147960243
|
||||
|
||||
- active_rag_session_id: fdf3ff03-81f0-4772-b68e-250147960243
|
||||
|
||||
## request
|
||||
```json
|
||||
{
|
||||
"request_id": "req_64906a91cdb6487ca2737a091cdaddab",
|
||||
"session_id": "as_d60e71ff542642649c81221db325cbcc",
|
||||
"active_rag_session_id": "fdf3ff03-81f0-4772-b68e-250147960243",
|
||||
"process_version": "v2",
|
||||
"created_at": "2026-04-06T15:36:29.264730+00:00",
|
||||
"message": "Объясни по документации, как работает /health"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2
|
||||
```json
|
||||
{
|
||||
"event": "intent_routed",
|
||||
"routing_domain": "DOCS",
|
||||
"intent": "DOC_EXPLAIN",
|
||||
"subintent": "SUMMARY",
|
||||
"normalized_query": "Объясни по документации, как работает /health",
|
||||
"target_terms": [
|
||||
"/health",
|
||||
"как",
|
||||
"работает"
|
||||
],
|
||||
"anchors": {
|
||||
"terms": [
|
||||
"/health",
|
||||
"как",
|
||||
"работает"
|
||||
],
|
||||
"entity_names": [],
|
||||
"file_names": [
|
||||
"/health"
|
||||
],
|
||||
"process_domain": null,
|
||||
"process_subdomain": null
|
||||
},
|
||||
"confidence": 1.0,
|
||||
"routing_mode": "deterministic",
|
||||
"llm_router_used": false,
|
||||
"reason_short": "deterministic signal",
|
||||
"rag_session_id": "fdf3ff03-81f0-4772-b68e-250147960243"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.retrieval_policy
|
||||
```json
|
||||
{
|
||||
"event": "retrieval_plan_resolved",
|
||||
"profile": "docs_explain_summary",
|
||||
"layers": [
|
||||
"D1_DOCUMENT_CATALOG",
|
||||
"D3_ENTITY_CATALOG",
|
||||
"D0_DOC_CHUNKS"
|
||||
],
|
||||
"limit": 12
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.rag_retrieval
|
||||
```json
|
||||
{
|
||||
"event": "rag_rows_fetched",
|
||||
"profile": "docs_explain_summary",
|
||||
"row_count": 12,
|
||||
"rows": [
|
||||
{
|
||||
"layer": "D1_DOCUMENT_CATALOG",
|
||||
"path": "docs/README.md",
|
||||
"title": "Индекс технической документации test_echo_app",
|
||||
"document_id": "index.test_echo_app_docs",
|
||||
"entity_name": "",
|
||||
"summary_text": "- Purpose: точка входа в техническую документацию сервиса `test_echo_app`.\n- Scope: архитектура, HTTP API control plane, цикл отправки уведомлений, health-модель и каталог ошибок.\n- Canonical structure: `docs/architecture`, `docs/api`, `docs/logic`, `docs/domains`, `docs/errors`.\n- Primary parent doc: [Архитектура Telegram Notify App](./architecture/telegram-notify-app-overview.md).\n- Navigation: ",
|
||||
"section_path": "",
|
||||
"content_preview": "- Purpose: точка входа в техническую документацию сервиса `test_echo_app`.\n- Scope: архитектура, HTTP API control plane, цикл отправки уведомлений, health-модель и каталог ошибок.\n- Canonical structure: `docs/architecture`, `docs/api`, `docs/logic`, `docs/domains`, `docs/errors`.\n- Primary parent doc: [Архитектура Telegram Notify App](./architecture/telegram-notify-app-overview.md).\n- Navigation: "
|
||||
},
|
||||
{
|
||||
"layer": "D1_DOCUMENT_CATALOG",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "Архитектура Telegram Notify App",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "",
|
||||
"summary_text": "- Purpose: сервис поднимает HTTP control plane и фоновый worker для отправки уведомлений в Telegram.\n- Entry point: `src/telegram_notify_app/main.py`.\n- Main components: `RuntimeManager`, `TelegramControlChannel`, `TelegramNotifyModule`, `TelegramNotifyWorker`, `TelegramSendService`.\n- Configuration: `config/config.yaml` или путь из `CONFIG_PATH`.\n- Related API: [`/health`](../api/health-endpoint.",
|
||||
"section_path": "",
|
||||
"content_preview": "- Purpose: сервис поднимает HTTP control plane и фоновый worker для отправки уведомлений в Telegram.\n- Entry point: `src/telegram_notify_app/main.py`.\n- Main components: `RuntimeManager`, `TelegramControlChannel`, `TelegramNotifyModule`, `TelegramNotifyWorker`, `TelegramSendService`.\n- Configuration: `config/config.yaml` или путь из `CONFIG_PATH`.\n- Related API: [`/health`](../api/health-endpoint."
|
||||
},
|
||||
{
|
||||
"layer": "D3_ENTITY_CATALOG",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "TelegramNotifyWorker",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "TelegramNotifyWorker",
|
||||
"summary_text": "",
|
||||
"section_path": "",
|
||||
"content_preview": "TelegramNotifyWorker"
|
||||
},
|
||||
{
|
||||
"layer": "D3_ENTITY_CATALOG",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "TelegramNotifyModule",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "TelegramNotifyModule",
|
||||
"summary_text": "",
|
||||
"section_path": "",
|
||||
"content_preview": "TelegramNotifyModule"
|
||||
},
|
||||
{
|
||||
"layer": "D3_ENTITY_CATALOG",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "TelegramSendService",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "TelegramSendService",
|
||||
"summary_text": "",
|
||||
"section_path": "",
|
||||
"content_preview": "TelegramSendService"
|
||||
},
|
||||
{
|
||||
"layer": "D3_ENTITY_CATALOG",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "TelegramControlChannel",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "TelegramControlChannel",
|
||||
"summary_text": "",
|
||||
"section_path": "",
|
||||
"content_preview": "TelegramControlChannel"
|
||||
},
|
||||
{
|
||||
"layer": "D3_ENTITY_CATALOG",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "RuntimeManager",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "RuntimeManager",
|
||||
"summary_text": "",
|
||||
"section_path": "",
|
||||
"content_preview": "RuntimeManager"
|
||||
},
|
||||
{
|
||||
"layer": "D0_DOC_CHUNKS",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "architecture.telegram_notify_app:Связанные документы",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "",
|
||||
"summary_text": "",
|
||||
"section_path": "Архитектура Telegram Notify App > Details > Связанные документы",
|
||||
"content_preview": "- [API /health](../api/health-endpoint.md)\n- [API /actions/{action}](../api/control-actions-endpoint.md)\n- [API /send](../api/send-message-endpoint.md)\n- [Логика цикла отправки уведомлений](../logic/telegram-notification-loop.md)\n- [Доменная модель runtime health](../domains/runtime-health-entity.md)"
|
||||
},
|
||||
{
|
||||
"layer": "D0_DOC_CHUNKS",
|
||||
"path": "docs/README.md",
|
||||
"title": "index.test_echo_app_docs:Навигация",
|
||||
"document_id": "index.test_echo_app_docs",
|
||||
"entity_name": "",
|
||||
"summary_text": "",
|
||||
"section_path": "Индекс технической документации test_echo_app > Details > Навигация",
|
||||
"content_preview": "- [Архитектура Telegram Notify App](./architecture/telegram-notify-app-overview.md)\n- [API /health](./api/health-endpoint.md)\n- [API /actions/{action}](./api/control-actions-endpoint.md)\n- [API /send](./api/send-message-endpoint.md)\n- [Логика цикла отправки уведомлений](./logic/telegram-notification-loop.md)\n- [Доменная модель runtime health](./domains/runtime-health-entity.md)\n- [Каталог ошибок]("
|
||||
},
|
||||
{
|
||||
"layer": "D0_DOC_CHUNKS",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "architecture.telegram_notify_app:Операторские и мониторинговые клиенты",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "",
|
||||
"summary_text": "",
|
||||
"section_path": "Архитектура Telegram Notify App > Details > Интеграции > Операторские и мониторинговые клиенты",
|
||||
"content_preview": "- target: ext.operator_and_probes\n- target_type: external_system\n- direction: inbound\n- interaction: calls\n- via: HTTP `/health`, `/actions/{action}`, `/send`\n- purpose: диагностика, lifecycle-управление и ручная отправка сообщений\n- details:\n - transport: FastAPI + UvicornThreadRunner\n - status_mapping: non-ok health -> HTTP 503"
|
||||
},
|
||||
{
|
||||
"layer": "D0_DOC_CHUNKS",
|
||||
"path": "docs/README.md",
|
||||
"title": "index.test_echo_app_docs:Summary",
|
||||
"document_id": "index.test_echo_app_docs",
|
||||
"entity_name": "",
|
||||
"summary_text": "",
|
||||
"section_path": "Индекс технической документации test_echo_app > Summary",
|
||||
"content_preview": "- Purpose: точка входа в техническую документацию сервиса `test_echo_app`.\n- Scope: архитектура, HTTP API control plane, цикл отправки уведомлений, health-модель и каталог ошибок.\n- Canonical structure: `docs/architecture`, `docs/api`, `docs/logic`, `docs/domains`, `docs/errors`.\n- Primary parent doc: [Архитектура Telegram Notify App](./architecture/telegram-notify-app-overview.md).\n- Navigation: "
|
||||
},
|
||||
{
|
||||
"layer": "D0_DOC_CHUNKS",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "architecture.telegram_notify_app:Контекст",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "",
|
||||
"summary_text": "",
|
||||
"section_path": "Архитектура Telegram Notify App > Details > Контекст",
|
||||
"content_preview": "Архитектурный документ описывает состав runtime и связи между контейнероподобными компонентами приложения. Детали контрактов HTTP API вынесены в документы endpoint'ов, а сценарий фоновой отправки и health-модель описаны на отдельных страницах."
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.evidence
|
||||
```json
|
||||
{
|
||||
"event": "evidence_assembled",
|
||||
"mode": "summary",
|
||||
"document_count": 1
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.summary
|
||||
```json
|
||||
{
|
||||
"event": "workflow_started",
|
||||
"workflow_id": "v2.docs_explain.summary"
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.summary.llm
|
||||
```json
|
||||
{
|
||||
"event": "request",
|
||||
"prompt_name": "v2_docs_explain.summary_answer",
|
||||
"system_prompt": "Ты объясняешь документацию только на основе найденных SUMMARY-блоков.\nИспользуй только факты из входного контекста.\nЕсли информации мало, прямо скажи об этом.\nВ конце перечисли файлы, на которые ты опирался.",
|
||||
"user_prompt": "Запрос пользователя:\nОбъясни по документации, как работает /health\n\nНайденные SUMMARY-блоки:\n\n1. path: docs/architecture/telegram-notify-app-overview.md\ntitle: Архитектура Telegram Notify App\nsummary: - Purpose: сервис поднимает HTTP control plane и фоновый worker для отправки уведомлений в Telegram.\n- Entry point: `src/telegram_notify_app/main.py`.\n- Main components: `RuntimeManager`, `TelegramControlChannel`, `TelegramNotifyModule`, `TelegramNotifyWorker`, `TelegramSendService`.\n- Configuration: `config/config.yaml` или путь из `CONFIG_PATH`.\n- Related API: [`/health`](../api/health-endpoint.md), [`/actions/{action}`](../api/control-actions-endpoint.md), [`/send`](../api/send-message-endpoint.md).\n- Related logic: [цикл отправки уведомлений](../logic/telegram-notification-loop.md).\n- Related domain: [runtime health](../domains/runtime-health-entity.md).",
|
||||
"log_context": "agent:req_64906a91cdb6487ca2737a091cdaddab"
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.summary.llm
|
||||
```json
|
||||
{
|
||||
"event": "response",
|
||||
"text": "На основе представленной информации, можно сказать следующее:\n\nСервис \"Telegram Notify App\" предоставляет HTTP-интерфейс, включая endpoint `/health`. Эта информация содержится в блоке, где упомянуты связанные API (Related API). Однако подробностей о том, как именно работает данный endpoint, его функциональность или формат ответа, в предоставленных данных нет.\n\nФайлы, на которые я опирался:\n- docs/architecture/telegram-notify-app-overview.md"
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.summary
|
||||
```json
|
||||
{
|
||||
"event": "workflow_trace_flushed",
|
||||
"workflow_id": "v2.docs_explain.summary",
|
||||
"steps": [
|
||||
{
|
||||
"step_id": "generate_summary_answer",
|
||||
"title": "Сборка ответа по summary",
|
||||
"input": {},
|
||||
"output": {
|
||||
"answer_length": 444
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.summary
|
||||
```json
|
||||
{
|
||||
"event": "workflow_completed",
|
||||
"workflow_id": "v2.docs_explain.summary"
|
||||
}
|
||||
```
|
||||
|
||||
## result
|
||||
```json
|
||||
{
|
||||
"status": "done",
|
||||
"answer": "На основе представленной информации, можно сказать следующее:\n\nСервис \"Telegram Notify App\" предоставляет HTTP-интерфейс, включая endpoint `/health`. Эта информация содержится в блоке, где упомянуты связанные API (Related API). Однако подробностей о том, как именно работает данный endpoint, его функциональность или формат ответа, в предоставленных данных нет.\n\nФайлы, на которые я опирался:\n- docs/architecture/telegram-notify-app-overview.md",
|
||||
"completed_at": "2026-04-06T15:36:31.411613+00:00"
|
||||
}
|
||||
```
|
||||
@@ -1,130 +0,0 @@
|
||||
# Runtime Trace: 20260407-175918-b17b76678614
|
||||
|
||||
- active_rag_session_id: 94851e51-1514-4a77-9570-b17b76678614
|
||||
|
||||
## request
|
||||
```json
|
||||
{
|
||||
"request_id": "req_d9dae665c88b476db700a3f7bd210370",
|
||||
"session_id": "as_da5ddd4aacd94ec5b7078dd69e06c9c6",
|
||||
"active_rag_session_id": "94851e51-1514-4a77-9570-b17b76678614",
|
||||
"process_version": "v1",
|
||||
"created_at": "2026-04-07T17:59:18.592170+00:00",
|
||||
"message": "Ты тут?"
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v1
|
||||
```json
|
||||
{
|
||||
"event": "workflow_started",
|
||||
"workflow_id": "v1.flow_main"
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v1
|
||||
```json
|
||||
{
|
||||
"event": "step_started",
|
||||
"workflow_id": "v1.flow_main",
|
||||
"step_id": "prepare_user_message",
|
||||
"input": {}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v1
|
||||
```json
|
||||
{
|
||||
"event": "step_completed",
|
||||
"workflow_id": "v1.flow_main",
|
||||
"step_id": "prepare_user_message",
|
||||
"output": {
|
||||
"prepared_message_length": 7
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v1
|
||||
```json
|
||||
{
|
||||
"event": "step_started",
|
||||
"workflow_id": "v1.flow_main",
|
||||
"step_id": "generate_answer",
|
||||
"input": {
|
||||
"prompt_name": "v1_flow_main.answer",
|
||||
"prepared_message_length": 7
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v1.llm
|
||||
```json
|
||||
{
|
||||
"event": "request",
|
||||
"prompt_name": "v1_flow_main.answer",
|
||||
"system_prompt": "Ты полезный ассистент.\nОтветь на сообщение пользователя по существу.\nНе придумывай факты, если данных недостаточно.\nЕсли пользователь пишет по-русски, отвечай по-русски.",
|
||||
"user_prompt": "Ты тут?",
|
||||
"log_context": "agent:req_d9dae665c88b476db700a3f7bd210370"
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v1.llm
|
||||
```json
|
||||
{
|
||||
"event": "response",
|
||||
"text": "Да, я здесь! Чем могу помочь?"
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v1
|
||||
```json
|
||||
{
|
||||
"event": "step_completed",
|
||||
"workflow_id": "v1.flow_main",
|
||||
"step_id": "generate_answer",
|
||||
"output": {
|
||||
"answer_length": 29
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v1
|
||||
```json
|
||||
{
|
||||
"event": "step_started",
|
||||
"workflow_id": "v1.flow_main",
|
||||
"step_id": "finalize_answer",
|
||||
"input": {
|
||||
"answer_length_before_strip": 29
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v1
|
||||
```json
|
||||
{
|
||||
"event": "step_completed",
|
||||
"workflow_id": "v1.flow_main",
|
||||
"step_id": "finalize_answer",
|
||||
"output": {
|
||||
"answer_length": 29
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v1
|
||||
```json
|
||||
{
|
||||
"event": "workflow_completed",
|
||||
"workflow_id": "v1.flow_main"
|
||||
}
|
||||
```
|
||||
|
||||
## result
|
||||
```json
|
||||
{
|
||||
"status": "done",
|
||||
"answer": "Да, я здесь! Чем могу помочь?",
|
||||
"completed_at": "2026-04-07T17:59:19.326182+00:00"
|
||||
}
|
||||
```
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,622 +0,0 @@
|
||||
# Runtime Trace: 20260407-182058-3f56c69c7290
|
||||
|
||||
- active_rag_session_id: c8b893cc-cb13-4493-a6d1-3f56c69c7290
|
||||
|
||||
## request
|
||||
```json
|
||||
{
|
||||
"request_id": "req_bab9c8812ac94847bb102cba68516f10",
|
||||
"session_id": "as_4fdccc9c55c549faad8f3ef379371129",
|
||||
"active_rag_session_id": "c8b893cc-cb13-4493-a6d1-3f56c69c7290",
|
||||
"process_version": "v2",
|
||||
"created_at": "2026-04-07T18:20:58.679614+00:00",
|
||||
"message": "Как работает метод health?"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2
|
||||
```json
|
||||
{
|
||||
"event": "intent_routed",
|
||||
"routing_domain": "DOCS",
|
||||
"intent": "DOC_EXPLAIN",
|
||||
"subintent": "SUMMARY",
|
||||
"normalized_query": "Как работает метод health?",
|
||||
"target_terms": [
|
||||
"метод",
|
||||
"health"
|
||||
],
|
||||
"anchors": {
|
||||
"entity_names": [],
|
||||
"file_names": [],
|
||||
"endpoint_paths": [],
|
||||
"target_doc_hints": [],
|
||||
"matched_aliases": [],
|
||||
"process_domain": null,
|
||||
"process_subdomain": null,
|
||||
"signal_types": []
|
||||
},
|
||||
"confidence": 0.75,
|
||||
"routing_mode": "llm_default",
|
||||
"llm_router_used": true,
|
||||
"reason_short": "Запрос на понимание работы конкретного метода \"health\".",
|
||||
"rag_session_id": "c8b893cc-cb13-4493-a6d1-3f56c69c7290"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "router_resolved",
|
||||
"domain": "DOCS",
|
||||
"intent": "DOC_EXPLAIN",
|
||||
"subintent": "SUMMARY",
|
||||
"confidence": 0.75
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "anchors_extracted",
|
||||
"signal_types": [],
|
||||
"endpoint_paths": [],
|
||||
"target_doc_hints": [],
|
||||
"matched_aliases": [],
|
||||
"target_terms": [
|
||||
"метод",
|
||||
"health"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "alias_resolution",
|
||||
"resolved_aliases": [],
|
||||
"target_doc_hints": []
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.retrieval_policy
|
||||
```json
|
||||
{
|
||||
"event": "retrieval_plan_resolved",
|
||||
"profile": "docs_summary_generic",
|
||||
"layers": [
|
||||
"D1_DOCUMENT_CATALOG",
|
||||
"D0_DOC_CHUNKS"
|
||||
],
|
||||
"limit": 8,
|
||||
"filters": {
|
||||
"target_doc_hints": [],
|
||||
"prefer_path_prefixes": [
|
||||
"docs/"
|
||||
],
|
||||
"prefer_like_patterns": []
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "retrieval_profile_selected",
|
||||
"profile": "docs_summary_generic",
|
||||
"layers": [
|
||||
"D1_DOCUMENT_CATALOG",
|
||||
"D0_DOC_CHUNKS"
|
||||
],
|
||||
"filters": {
|
||||
"target_doc_hints": [],
|
||||
"prefer_path_prefixes": [
|
||||
"docs/"
|
||||
],
|
||||
"prefer_like_patterns": []
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.rag_retrieval
|
||||
```json
|
||||
{
|
||||
"event": "rag_rows_fetched",
|
||||
"profile": "docs_summary_generic",
|
||||
"row_count": 8,
|
||||
"rows": [
|
||||
{
|
||||
"layer": "D1_DOCUMENT_CATALOG",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "Архитектура Telegram Notify App",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "",
|
||||
"summary_text": "- Purpose: сервис поднимает HTTP control plane и фоновый worker для отправки уведомлений в Telegram.\n- Entry point: `src/telegram_notify_app/main.py`.\n- Main components: `RuntimeManager`, `TelegramControlChannel`, `TelegramNotifyModule`, `TelegramNotifyWorker`, `TelegramSendService`.\n- Configuration: `config/config.yaml` или путь из `CONFIG_PATH`.\n- Related API: [`/health`](../api/health-endpoint.",
|
||||
"section_path": "",
|
||||
"content_preview": "- Purpose: сервис поднимает HTTP control plane и фоновый worker для отправки уведомлений в Telegram.\n- Entry point: `src/telegram_notify_app/main.py`.\n- Main components: `RuntimeManager`, `TelegramControlChannel`, `TelegramNotifyModule`, `TelegramNotifyWorker`, `TelegramSendService`.\n- Configuration: `config/config.yaml` или путь из `CONFIG_PATH`.\n- Related API: [`/health`](../api/health-endpoint."
|
||||
},
|
||||
{
|
||||
"layer": "D1_DOCUMENT_CATALOG",
|
||||
"path": "docs/README.md",
|
||||
"title": "Индекс технической документации test_echo_app",
|
||||
"document_id": "index.test_echo_app_docs",
|
||||
"entity_name": "",
|
||||
"summary_text": "- Purpose: точка входа в техническую документацию сервиса `test_echo_app`.\n- Scope: архитектура, HTTP API control plane, цикл отправки уведомлений, health-модель и каталог ошибок.\n- Canonical structure: `docs/architecture`, `docs/api`, `docs/logic`, `docs/domains`, `docs/errors`.\n- Primary parent doc: [Архитектура Telegram Notify App](./architecture/telegram-notify-app-overview.md).\n- Navigation: ",
|
||||
"section_path": "",
|
||||
"content_preview": "- Purpose: точка входа в техническую документацию сервиса `test_echo_app`.\n- Scope: архитектура, HTTP API control plane, цикл отправки уведомлений, health-модель и каталог ошибок.\n- Canonical structure: `docs/architecture`, `docs/api`, `docs/logic`, `docs/domains`, `docs/errors`.\n- Primary parent doc: [Архитектура Telegram Notify App](./architecture/telegram-notify-app-overview.md).\n- Navigation: "
|
||||
},
|
||||
{
|
||||
"layer": "D0_DOC_CHUNKS",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "architecture.telegram_notify_app:Операторские и мониторинговые клиенты",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "",
|
||||
"summary_text": "",
|
||||
"section_path": "Архитектура Telegram Notify App > Details > Интеграции > Операторские и мониторинговые клиенты",
|
||||
"content_preview": "- target: ext.operator_and_probes\n- target_type: external_system\n- direction: inbound\n- interaction: calls\n- via: HTTP `/health`, `/actions/{action}`, `/send`\n- purpose: диагностика, lifecycle-управление и ручная отправка сообщений\n- details:\n - transport: FastAPI + UvicornThreadRunner\n - status_mapping: non-ok health -> HTTP 503"
|
||||
},
|
||||
{
|
||||
"layer": "D0_DOC_CHUNKS",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "architecture.telegram_notify_app:Связанные документы",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "",
|
||||
"summary_text": "",
|
||||
"section_path": "Архитектура Telegram Notify App > Details > Связанные документы",
|
||||
"content_preview": "- [API /health](../api/health-endpoint.md)\n- [API /actions/{action}](../api/control-actions-endpoint.md)\n- [API /send](../api/send-message-endpoint.md)\n- [Логика цикла отправки уведомлений](../logic/telegram-notification-loop.md)\n- [Доменная модель runtime health](../domains/runtime-health-entity.md)"
|
||||
},
|
||||
{
|
||||
"layer": "D0_DOC_CHUNKS",
|
||||
"path": "docs/README.md",
|
||||
"title": "index.test_echo_app_docs:Навигация",
|
||||
"document_id": "index.test_echo_app_docs",
|
||||
"entity_name": "",
|
||||
"summary_text": "",
|
||||
"section_path": "Индекс технической документации test_echo_app > Details > Навигация",
|
||||
"content_preview": "- [Архитектура Telegram Notify App](./architecture/telegram-notify-app-overview.md)\n- [API /health](./api/health-endpoint.md)\n- [API /actions/{action}](./api/control-actions-endpoint.md)\n- [API /send](./api/send-message-endpoint.md)\n- [Логика цикла отправки уведомлений](./logic/telegram-notification-loop.md)\n- [Доменная модель runtime health](./domains/runtime-health-entity.md)\n- [Каталог ошибок]("
|
||||
},
|
||||
{
|
||||
"layer": "D0_DOC_CHUNKS",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "architecture.telegram_notify_app:Summary",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "",
|
||||
"summary_text": "",
|
||||
"section_path": "Архитектура Telegram Notify App > Summary",
|
||||
"content_preview": "- Purpose: сервис поднимает HTTP control plane и фоновый worker для отправки уведомлений в Telegram.\n- Entry point: `src/telegram_notify_app/main.py`.\n- Main components: `RuntimeManager`, `TelegramControlChannel`, `TelegramNotifyModule`, `TelegramNotifyWorker`, `TelegramSendService`.\n- Configuration: `config/config.yaml` или путь из `CONFIG_PATH`.\n- Related API: [`/health`](../api/health-endpoint."
|
||||
},
|
||||
{
|
||||
"layer": "D0_DOC_CHUNKS",
|
||||
"path": "docs/README.md",
|
||||
"title": "index.test_echo_app_docs:Summary",
|
||||
"document_id": "index.test_echo_app_docs",
|
||||
"entity_name": "",
|
||||
"summary_text": "",
|
||||
"section_path": "Индекс технической документации test_echo_app > Summary",
|
||||
"content_preview": "- Purpose: точка входа в техническую документацию сервиса `test_echo_app`.\n- Scope: архитектура, HTTP API control plane, цикл отправки уведомлений, health-модель и каталог ошибок.\n- Canonical structure: `docs/architecture`, `docs/api`, `docs/logic`, `docs/domains`, `docs/errors`.\n- Primary parent doc: [Архитектура Telegram Notify App](./architecture/telegram-notify-app-overview.md).\n- Navigation: "
|
||||
},
|
||||
{
|
||||
"layer": "D0_DOC_CHUNKS",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "architecture.telegram_notify_app:Интеграционные сценарии",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "",
|
||||
"summary_text": "",
|
||||
"section_path": "Архитектура Telegram Notify App > Details > Интеграционные сценарии",
|
||||
"content_preview": "1. При старте `main()` загружает YAML-конфиг, извлекает host, port и интервал отправки, затем собирает runtime.\n2. `RuntimeManager` регистрирует `TelegramControlChannel` для HTTP control plane.\n3. `TelegramNotifyModule` добавляет `TelegramNotifyWorker` и `TelegramSendService` в runtime.\n4. Внешний клиент вызывает endpoint'ы control plane для health-check, lifecycle-операций или ручной отправки.\n5."
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "candidate_generation",
|
||||
"query": "Как работает метод health?",
|
||||
"profile": "docs_summary_generic",
|
||||
"details": {
|
||||
"target_doc_hints": [],
|
||||
"candidates_before_ranking": [
|
||||
"docs/architecture/telegram-notify-app-overview.md",
|
||||
"docs/README.md",
|
||||
"docs/architecture/telegram-notify-app-overview.md",
|
||||
"docs/architecture/telegram-notify-app-overview.md",
|
||||
"docs/README.md",
|
||||
"docs/architecture/telegram-notify-app-overview.md",
|
||||
"docs/README.md",
|
||||
"docs/architecture/telegram-notify-app-overview.md"
|
||||
]
|
||||
},
|
||||
"resolved_aliases": [],
|
||||
"target_doc_hints": [],
|
||||
"candidate_docs_before_ranking": [
|
||||
{
|
||||
"layer": "D1_DOCUMENT_CATALOG",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "Архитектура Telegram Notify App",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "",
|
||||
"summary_text": "- Purpose: сервис поднимает HTTP control plane и фоновый worker для отправки уведомлений в Telegram.\n- Entry point: `src/telegram_notify_app/main.py`.\n- Main components: `RuntimeManager`, `TelegramControlChannel`, `TelegramNotifyModule`, `TelegramNotifyWorker`, `TelegramSendService`.\n- Configuration: `config/config.yaml` или путь из `CONFIG_PATH`.\n- Related API: [`/health`](../api/health-endpoint.",
|
||||
"section_path": "",
|
||||
"content_preview": "- Purpose: сервис поднимает HTTP control plane и фоновый worker для отправки уведомлений в Telegram.\n- Entry point: `src/telegram_notify_app/main.py`.\n- Main components: `RuntimeManager`, `TelegramControlChannel`, `TelegramNotifyModule`, `TelegramNotifyWorker`, `TelegramSendService`.\n- Configuration: `config/config.yaml` или путь из `CONFIG_PATH`.\n- Related API: [`/health`](../api/health-endpoint."
|
||||
},
|
||||
{
|
||||
"layer": "D1_DOCUMENT_CATALOG",
|
||||
"path": "docs/README.md",
|
||||
"title": "Индекс технической документации test_echo_app",
|
||||
"document_id": "index.test_echo_app_docs",
|
||||
"entity_name": "",
|
||||
"summary_text": "- Purpose: точка входа в техническую документацию сервиса `test_echo_app`.\n- Scope: архитектура, HTTP API control plane, цикл отправки уведомлений, health-модель и каталог ошибок.\n- Canonical structure: `docs/architecture`, `docs/api`, `docs/logic`, `docs/domains`, `docs/errors`.\n- Primary parent doc: [Архитектура Telegram Notify App](./architecture/telegram-notify-app-overview.md).\n- Navigation: ",
|
||||
"section_path": "",
|
||||
"content_preview": "- Purpose: точка входа в техническую документацию сервиса `test_echo_app`.\n- Scope: архитектура, HTTP API control plane, цикл отправки уведомлений, health-модель и каталог ошибок.\n- Canonical structure: `docs/architecture`, `docs/api`, `docs/logic`, `docs/domains`, `docs/errors`.\n- Primary parent doc: [Архитектура Telegram Notify App](./architecture/telegram-notify-app-overview.md).\n- Navigation: "
|
||||
},
|
||||
{
|
||||
"layer": "D0_DOC_CHUNKS",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "architecture.telegram_notify_app:Операторские и мониторинговые клиенты",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "",
|
||||
"summary_text": "",
|
||||
"section_path": "Архитектура Telegram Notify App > Details > Интеграции > Операторские и мониторинговые клиенты",
|
||||
"content_preview": "- target: ext.operator_and_probes\n- target_type: external_system\n- direction: inbound\n- interaction: calls\n- via: HTTP `/health`, `/actions/{action}`, `/send`\n- purpose: диагностика, lifecycle-управление и ручная отправка сообщений\n- details:\n - transport: FastAPI + UvicornThreadRunner\n - status_mapping: non-ok health -> HTTP 503"
|
||||
},
|
||||
{
|
||||
"layer": "D0_DOC_CHUNKS",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "architecture.telegram_notify_app:Связанные документы",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "",
|
||||
"summary_text": "",
|
||||
"section_path": "Архитектура Telegram Notify App > Details > Связанные документы",
|
||||
"content_preview": "- [API /health](../api/health-endpoint.md)\n- [API /actions/{action}](../api/control-actions-endpoint.md)\n- [API /send](../api/send-message-endpoint.md)\n- [Логика цикла отправки уведомлений](../logic/telegram-notification-loop.md)\n- [Доменная модель runtime health](../domains/runtime-health-entity.md)"
|
||||
},
|
||||
{
|
||||
"layer": "D0_DOC_CHUNKS",
|
||||
"path": "docs/README.md",
|
||||
"title": "index.test_echo_app_docs:Навигация",
|
||||
"document_id": "index.test_echo_app_docs",
|
||||
"entity_name": "",
|
||||
"summary_text": "",
|
||||
"section_path": "Индекс технической документации test_echo_app > Details > Навигация",
|
||||
"content_preview": "- [Архитектура Telegram Notify App](./architecture/telegram-notify-app-overview.md)\n- [API /health](./api/health-endpoint.md)\n- [API /actions/{action}](./api/control-actions-endpoint.md)\n- [API /send](./api/send-message-endpoint.md)\n- [Логика цикла отправки уведомлений](./logic/telegram-notification-loop.md)\n- [Доменная модель runtime health](./domains/runtime-health-entity.md)\n- [Каталог ошибок]("
|
||||
},
|
||||
{
|
||||
"layer": "D0_DOC_CHUNKS",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "architecture.telegram_notify_app:Summary",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "",
|
||||
"summary_text": "",
|
||||
"section_path": "Архитектура Telegram Notify App > Summary",
|
||||
"content_preview": "- Purpose: сервис поднимает HTTP control plane и фоновый worker для отправки уведомлений в Telegram.\n- Entry point: `src/telegram_notify_app/main.py`.\n- Main components: `RuntimeManager`, `TelegramControlChannel`, `TelegramNotifyModule`, `TelegramNotifyWorker`, `TelegramSendService`.\n- Configuration: `config/config.yaml` или путь из `CONFIG_PATH`.\n- Related API: [`/health`](../api/health-endpoint."
|
||||
},
|
||||
{
|
||||
"layer": "D0_DOC_CHUNKS",
|
||||
"path": "docs/README.md",
|
||||
"title": "index.test_echo_app_docs:Summary",
|
||||
"document_id": "index.test_echo_app_docs",
|
||||
"entity_name": "",
|
||||
"summary_text": "",
|
||||
"section_path": "Индекс технической документации test_echo_app > Summary",
|
||||
"content_preview": "- Purpose: точка входа в техническую документацию сервиса `test_echo_app`.\n- Scope: архитектура, HTTP API control plane, цикл отправки уведомлений, health-модель и каталог ошибок.\n- Canonical structure: `docs/architecture`, `docs/api`, `docs/logic`, `docs/domains`, `docs/errors`.\n- Primary parent doc: [Архитектура Telegram Notify App](./architecture/telegram-notify-app-overview.md).\n- Navigation: "
|
||||
},
|
||||
{
|
||||
"layer": "D0_DOC_CHUNKS",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "architecture.telegram_notify_app:Интеграционные сценарии",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "",
|
||||
"summary_text": "",
|
||||
"section_path": "Архитектура Telegram Notify App > Details > Интеграционные сценарии",
|
||||
"content_preview": "1. При старте `main()` загружает YAML-конфиг, извлекает host, port и интервал отправки, затем собирает runtime.\n2. `RuntimeManager` регистрирует `TelegramControlChannel` для HTTP control plane.\n3. `TelegramNotifyModule` добавляет `TelegramNotifyWorker` и `TelegramSendService` в runtime.\n4. Внешний клиент вызывает endpoint'ы control plane для health-check, lifecycle-операций или ручной отправки.\n5."
|
||||
}
|
||||
],
|
||||
"sources": {
|
||||
"seeded": [],
|
||||
"metadata_lookup": [],
|
||||
"semantic": [
|
||||
{
|
||||
"layer": "D1_DOCUMENT_CATALOG",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "Архитектура Telegram Notify App",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "",
|
||||
"summary_text": "- Purpose: сервис поднимает HTTP control plane и фоновый worker для отправки уведомлений в Telegram.\n- Entry point: `src/telegram_notify_app/main.py`.\n- Main components: `RuntimeManager`, `TelegramControlChannel`, `TelegramNotifyModule`, `TelegramNotifyWorker`, `TelegramSendService`.\n- Configuration: `config/config.yaml` или путь из `CONFIG_PATH`.\n- Related API: [`/health`](../api/health-endpoint.",
|
||||
"section_path": "",
|
||||
"content_preview": "- Purpose: сервис поднимает HTTP control plane и фоновый worker для отправки уведомлений в Telegram.\n- Entry point: `src/telegram_notify_app/main.py`.\n- Main components: `RuntimeManager`, `TelegramControlChannel`, `TelegramNotifyModule`, `TelegramNotifyWorker`, `TelegramSendService`.\n- Configuration: `config/config.yaml` или путь из `CONFIG_PATH`.\n- Related API: [`/health`](../api/health-endpoint."
|
||||
},
|
||||
{
|
||||
"layer": "D1_DOCUMENT_CATALOG",
|
||||
"path": "docs/README.md",
|
||||
"title": "Индекс технической документации test_echo_app",
|
||||
"document_id": "index.test_echo_app_docs",
|
||||
"entity_name": "",
|
||||
"summary_text": "- Purpose: точка входа в техническую документацию сервиса `test_echo_app`.\n- Scope: архитектура, HTTP API control plane, цикл отправки уведомлений, health-модель и каталог ошибок.\n- Canonical structure: `docs/architecture`, `docs/api`, `docs/logic`, `docs/domains`, `docs/errors`.\n- Primary parent doc: [Архитектура Telegram Notify App](./architecture/telegram-notify-app-overview.md).\n- Navigation: ",
|
||||
"section_path": "",
|
||||
"content_preview": "- Purpose: точка входа в техническую документацию сервиса `test_echo_app`.\n- Scope: архитектура, HTTP API control plane, цикл отправки уведомлений, health-модель и каталог ошибок.\n- Canonical structure: `docs/architecture`, `docs/api`, `docs/logic`, `docs/domains`, `docs/errors`.\n- Primary parent doc: [Архитектура Telegram Notify App](./architecture/telegram-notify-app-overview.md).\n- Navigation: "
|
||||
},
|
||||
{
|
||||
"layer": "D0_DOC_CHUNKS",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "architecture.telegram_notify_app:Операторские и мониторинговые клиенты",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "",
|
||||
"summary_text": "",
|
||||
"section_path": "Архитектура Telegram Notify App > Details > Интеграции > Операторские и мониторинговые клиенты",
|
||||
"content_preview": "- target: ext.operator_and_probes\n- target_type: external_system\n- direction: inbound\n- interaction: calls\n- via: HTTP `/health`, `/actions/{action}`, `/send`\n- purpose: диагностика, lifecycle-управление и ручная отправка сообщений\n- details:\n - transport: FastAPI + UvicornThreadRunner\n - status_mapping: non-ok health -> HTTP 503"
|
||||
},
|
||||
{
|
||||
"layer": "D0_DOC_CHUNKS",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "architecture.telegram_notify_app:Связанные документы",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "",
|
||||
"summary_text": "",
|
||||
"section_path": "Архитектура Telegram Notify App > Details > Связанные документы",
|
||||
"content_preview": "- [API /health](../api/health-endpoint.md)\n- [API /actions/{action}](../api/control-actions-endpoint.md)\n- [API /send](../api/send-message-endpoint.md)\n- [Логика цикла отправки уведомлений](../logic/telegram-notification-loop.md)\n- [Доменная модель runtime health](../domains/runtime-health-entity.md)"
|
||||
},
|
||||
{
|
||||
"layer": "D0_DOC_CHUNKS",
|
||||
"path": "docs/README.md",
|
||||
"title": "index.test_echo_app_docs:Навигация",
|
||||
"document_id": "index.test_echo_app_docs",
|
||||
"entity_name": "",
|
||||
"summary_text": "",
|
||||
"section_path": "Индекс технической документации test_echo_app > Details > Навигация",
|
||||
"content_preview": "- [Архитектура Telegram Notify App](./architecture/telegram-notify-app-overview.md)\n- [API /health](./api/health-endpoint.md)\n- [API /actions/{action}](./api/control-actions-endpoint.md)\n- [API /send](./api/send-message-endpoint.md)\n- [Логика цикла отправки уведомлений](./logic/telegram-notification-loop.md)\n- [Доменная модель runtime health](./domains/runtime-health-entity.md)\n- [Каталог ошибок]("
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "retrieval_executed",
|
||||
"query": "Как работает метод health?",
|
||||
"profile": "docs_summary_generic",
|
||||
"row_count": 8,
|
||||
"target_doc_hints": [],
|
||||
"top_results": [
|
||||
{
|
||||
"layer": "D1_DOCUMENT_CATALOG",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "Архитектура Telegram Notify App",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "",
|
||||
"summary_text": "- Purpose: сервис поднимает HTTP control plane и фоновый worker для отправки уведомлений в Telegram.\n- Entry point: `src/telegram_notify_app/main.py`.\n- Main components: `RuntimeManager`, `TelegramControlChannel`, `TelegramNotifyModule`, `TelegramNotifyWorker`, `TelegramSendService`.\n- Configuration: `config/config.yaml` или путь из `CONFIG_PATH`.\n- Related API: [`/health`](../api/health-endpoint.",
|
||||
"section_path": "",
|
||||
"content_preview": "- Purpose: сервис поднимает HTTP control plane и фоновый worker для отправки уведомлений в Telegram.\n- Entry point: `src/telegram_notify_app/main.py`.\n- Main components: `RuntimeManager`, `TelegramControlChannel`, `TelegramNotifyModule`, `TelegramNotifyWorker`, `TelegramSendService`.\n- Configuration: `config/config.yaml` или путь из `CONFIG_PATH`.\n- Related API: [`/health`](../api/health-endpoint."
|
||||
},
|
||||
{
|
||||
"layer": "D1_DOCUMENT_CATALOG",
|
||||
"path": "docs/README.md",
|
||||
"title": "Индекс технической документации test_echo_app",
|
||||
"document_id": "index.test_echo_app_docs",
|
||||
"entity_name": "",
|
||||
"summary_text": "- Purpose: точка входа в техническую документацию сервиса `test_echo_app`.\n- Scope: архитектура, HTTP API control plane, цикл отправки уведомлений, health-модель и каталог ошибок.\n- Canonical structure: `docs/architecture`, `docs/api`, `docs/logic`, `docs/domains`, `docs/errors`.\n- Primary parent doc: [Архитектура Telegram Notify App](./architecture/telegram-notify-app-overview.md).\n- Navigation: ",
|
||||
"section_path": "",
|
||||
"content_preview": "- Purpose: точка входа в техническую документацию сервиса `test_echo_app`.\n- Scope: архитектура, HTTP API control plane, цикл отправки уведомлений, health-модель и каталог ошибок.\n- Canonical structure: `docs/architecture`, `docs/api`, `docs/logic`, `docs/domains`, `docs/errors`.\n- Primary parent doc: [Архитектура Telegram Notify App](./architecture/telegram-notify-app-overview.md).\n- Navigation: "
|
||||
},
|
||||
{
|
||||
"layer": "D0_DOC_CHUNKS",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "architecture.telegram_notify_app:Операторские и мониторинговые клиенты",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "",
|
||||
"summary_text": "",
|
||||
"section_path": "Архитектура Telegram Notify App > Details > Интеграции > Операторские и мониторинговые клиенты",
|
||||
"content_preview": "- target: ext.operator_and_probes\n- target_type: external_system\n- direction: inbound\n- interaction: calls\n- via: HTTP `/health`, `/actions/{action}`, `/send`\n- purpose: диагностика, lifecycle-управление и ручная отправка сообщений\n- details:\n - transport: FastAPI + UvicornThreadRunner\n - status_mapping: non-ok health -> HTTP 503"
|
||||
},
|
||||
{
|
||||
"layer": "D0_DOC_CHUNKS",
|
||||
"path": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"title": "architecture.telegram_notify_app:Связанные документы",
|
||||
"document_id": "architecture.telegram_notify_app",
|
||||
"entity_name": "",
|
||||
"summary_text": "",
|
||||
"section_path": "Архитектура Telegram Notify App > Details > Связанные документы",
|
||||
"content_preview": "- [API /health](../api/health-endpoint.md)\n- [API /actions/{action}](../api/control-actions-endpoint.md)\n- [API /send](../api/send-message-endpoint.md)\n- [Логика цикла отправки уведомлений](../logic/telegram-notification-loop.md)\n- [Доменная модель runtime health](../domains/runtime-health-entity.md)"
|
||||
},
|
||||
{
|
||||
"layer": "D0_DOC_CHUNKS",
|
||||
"path": "docs/README.md",
|
||||
"title": "index.test_echo_app_docs:Навигация",
|
||||
"document_id": "index.test_echo_app_docs",
|
||||
"entity_name": "",
|
||||
"summary_text": "",
|
||||
"section_path": "Индекс технической документации test_echo_app > Details > Навигация",
|
||||
"content_preview": "- [Архитектура Telegram Notify App](./architecture/telegram-notify-app-overview.md)\n- [API /health](./api/health-endpoint.md)\n- [API /actions/{action}](./api/control-actions-endpoint.md)\n- [API /send](./api/send-message-endpoint.md)\n- [Логика цикла отправки уведомлений](./logic/telegram-notification-loop.md)\n- [Доменная модель runtime health](./domains/runtime-health-entity.md)\n- [Каталог ошибок]("
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.evidence
|
||||
```json
|
||||
{
|
||||
"event": "evidence_assembled",
|
||||
"mode": "summary",
|
||||
"document_count": 2,
|
||||
"documents": [
|
||||
"docs/README.md",
|
||||
"docs/architecture/telegram-notify-app-overview.md"
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "evidence_assembled",
|
||||
"mode": "summary",
|
||||
"primary_doc": "docs/README.md",
|
||||
"document_count": 2
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "ranking_explained",
|
||||
"doc": "docs/README.md",
|
||||
"score_breakdown": {
|
||||
"semantic": 20,
|
||||
"path_match": 0,
|
||||
"filename_match": 0,
|
||||
"alias_match": 0,
|
||||
"anchor_boost": 0,
|
||||
"target_doc_boost": 0,
|
||||
"generic_penalty": 0
|
||||
},
|
||||
"score": 20,
|
||||
"match_reason": "semantic_match"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "ranking_explained",
|
||||
"doc": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"score_breakdown": {
|
||||
"semantic": 20,
|
||||
"path_match": 0,
|
||||
"filename_match": 0,
|
||||
"alias_match": 0,
|
||||
"anchor_boost": 0,
|
||||
"target_doc_boost": 0,
|
||||
"generic_penalty": 0
|
||||
},
|
||||
"score": 20,
|
||||
"match_reason": "semantic_match"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "ranking_explained",
|
||||
"top_docs_after_ranking": [
|
||||
{
|
||||
"doc": "docs/README.md",
|
||||
"score": 20,
|
||||
"match_reason": "semantic_match"
|
||||
},
|
||||
{
|
||||
"doc": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"score": 20,
|
||||
"match_reason": "semantic_match"
|
||||
}
|
||||
],
|
||||
"ranking_score_breakdown": [
|
||||
{
|
||||
"doc": "docs/README.md",
|
||||
"score_breakdown": {
|
||||
"semantic": 20,
|
||||
"path_match": 0,
|
||||
"filename_match": 0,
|
||||
"alias_match": 0,
|
||||
"anchor_boost": 0,
|
||||
"target_doc_boost": 0,
|
||||
"generic_penalty": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"doc": "docs/architecture/telegram-notify-app-overview.md",
|
||||
"score_breakdown": {
|
||||
"semantic": 20,
|
||||
"path_match": 0,
|
||||
"filename_match": 0,
|
||||
"alias_match": 0,
|
||||
"anchor_boost": 0,
|
||||
"target_doc_boost": 0,
|
||||
"generic_penalty": 0
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "evidence_gate_checked",
|
||||
"passed": true,
|
||||
"reason": "target_doc_found",
|
||||
"answer_mode": "grounded_summary"
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.summary
|
||||
```json
|
||||
{
|
||||
"event": "workflow_started",
|
||||
"workflow_id": "v2.docs_explain.summary"
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.summary.llm
|
||||
```json
|
||||
{
|
||||
"event": "request",
|
||||
"prompt_name": "v2_docs_explain.summary_answer",
|
||||
"system_prompt": "Ты объясняешь документацию только на основе найденных SUMMARY-блоков.\nИспользуй только факты из входного контекста.\nЕсли информации мало, прямо скажи об этом и не додумывай детали.\nВ конце перечисли файлы, на которые ты опирался.",
|
||||
"user_prompt": "Запрос пользователя:\nКак работает метод health?\n\nСигналы запроса:\n{\n \"entity_names\": [],\n \"file_names\": [],\n \"endpoint_paths\": [],\n \"target_doc_hints\": [],\n \"matched_aliases\": [],\n \"process_domain\": null,\n \"process_subdomain\": null,\n \"signal_types\": []\n}\n\nНайденные SUMMARY-блоки:\n\n1. path: docs/README.md\ntitle: Индекс технической документации test_echo_app\nmatch_reason: semantic_match\nsummary: - Purpose: точка входа в техническую документацию сервиса `test_echo_app`.\n- Scope: архитектура, HTTP API control plane, цикл отправки уведомлений, health-модель и каталог ошибок.\n- Canonical structure: `docs/architecture`, `docs/api`, `docs/logic`, `docs/domains`, `docs/errors`.\n- Primary parent doc: [Архитектура Telegram Notify App](./architecture/telegram-notify-app-overview.md).\n- Navigation: документы связаны через `related_docs`, `parent`/`children` и markdown-ссылки без дублирования деталей.\n\n2. path: docs/architecture/telegram-notify-app-overview.md\ntitle: Архитектура Telegram Notify App\nmatch_reason: semantic_match\nsummary: - Purpose: сервис поднимает HTTP control plane и фоновый worker для отправки уведомлений в Telegram.\n- Entry point: `src/telegram_notify_app/main.py`.\n- Main components: `RuntimeManager`, `TelegramControlChannel`, `TelegramNotifyModule`, `TelegramNotifyWorker`, `TelegramSendService`.\n- Configuration: `config/config.yaml` или путь из `CONFIG_PATH`.\n- Related API: [`/health`](../api/health-endpoint.md), [`/actions/{action}`](../api/control-actions-endpoint.md), [`/send`](../api/send-message-endpoint.md).\n- Related logic: [цикл отправки уведомлений](../logic/telegram-notification-loop.md).\n- Related domain: [runtime health](../domains/runtime-health-entity.md).",
|
||||
"log_context": "agent:req_bab9c8812ac94847bb102cba68516f10"
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.summary.llm
|
||||
```json
|
||||
{
|
||||
"event": "response",
|
||||
"text": "На основе представленного контекста невозможно предоставить подробное объяснение работы метода health. \n\nФайлы, на которые я опирался:\n1. docs/README.md\n2. docs/architecture/telegram-notify-app-overview.md"
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.summary
|
||||
```json
|
||||
{
|
||||
"event": "workflow_trace_flushed",
|
||||
"workflow_id": "v2.docs_explain.summary",
|
||||
"steps": [
|
||||
{
|
||||
"step_id": "generate_summary_answer",
|
||||
"title": "Сборка ответа по summary",
|
||||
"input": {},
|
||||
"output": {
|
||||
"answer_length": 205
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.summary
|
||||
```json
|
||||
{
|
||||
"event": "workflow_completed",
|
||||
"workflow_id": "v2.docs_explain.summary"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "answer_generated",
|
||||
"answer_mode": "grounded_summary",
|
||||
"answer_length": 205
|
||||
}
|
||||
```
|
||||
|
||||
## result
|
||||
```json
|
||||
{
|
||||
"status": "done",
|
||||
"answer": "На основе представленного контекста невозможно предоставить подробное объяснение работы метода health. \n\nФайлы, на которые я опирался:\n1. docs/README.md\n2. docs/architecture/telegram-notify-app-overview.md",
|
||||
"completed_at": "2026-04-07T18:21:01.793612+00:00"
|
||||
}
|
||||
```
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,103 @@
|
||||
# Runtime Trace: 20260408-130754-c008300db553
|
||||
|
||||
- active_rag_session_id: 273bb6f2-0921-412a-9c73-c008300db553
|
||||
|
||||
## request
|
||||
```json
|
||||
{
|
||||
"request_id": "req_e2b3901d8fcd4b2f88ba2fd5e09e4073",
|
||||
"session_id": "as_da9ab26d0dbe4ee2b6a2b392ff1ebdc9",
|
||||
"active_rag_session_id": "273bb6f2-0921-412a-9c73-c008300db553",
|
||||
"process_version": "v2",
|
||||
"created_at": "2026-04-08T13:07:54.329187+00:00",
|
||||
"message": "Напиши документацию по системной аналитике \n/Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2
|
||||
```json
|
||||
{
|
||||
"event": "intent_routed",
|
||||
"routing_domain": "DOCS",
|
||||
"intent": "DOC_UPDATE",
|
||||
"subintent": "FIND_FILES",
|
||||
"normalized_query": "Напиши документацию по системной аналитике /Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md",
|
||||
"target_terms": [],
|
||||
"anchors": {
|
||||
"entity_names": [
|
||||
"Users",
|
||||
"Dev_projects_v2"
|
||||
],
|
||||
"file_names": [
|
||||
"/users/alex/dev_projects_v2/apps/test_echo_app/_incoming/feature1.md"
|
||||
],
|
||||
"endpoint_paths": [],
|
||||
"target_doc_hints": [],
|
||||
"matched_aliases": [],
|
||||
"process_domain": null,
|
||||
"process_subdomain": null,
|
||||
"scope_type": "unknown",
|
||||
"candidate_domains": [],
|
||||
"candidate_subdomains": [],
|
||||
"candidate_entities": [],
|
||||
"candidate_apis": [],
|
||||
"signal_types": [
|
||||
"DOMAIN_ENTITY",
|
||||
"FIND_FILES"
|
||||
]
|
||||
},
|
||||
"confidence": 0.8,
|
||||
"routing_mode": "llm_default",
|
||||
"llm_router_used": true,
|
||||
"reason_short": "Запрос явно указывает на обновление документации по системной аналитике из конкретного файла feature1.md.",
|
||||
"rag_session_id": "273bb6f2-0921-412a-9c73-c008300db553"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "router_resolved",
|
||||
"domain": "DOCS",
|
||||
"intent": "DOC_UPDATE",
|
||||
"subintent": "FIND_FILES",
|
||||
"confidence": 0.8
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "anchors_extracted",
|
||||
"signal_types": [
|
||||
"DOMAIN_ENTITY",
|
||||
"FIND_FILES"
|
||||
],
|
||||
"endpoint_paths": [],
|
||||
"target_doc_hints": [],
|
||||
"matched_aliases": [],
|
||||
"target_terms": []
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "alias_resolution",
|
||||
"resolved_aliases": [],
|
||||
"target_doc_hints": []
|
||||
}
|
||||
```
|
||||
|
||||
## result
|
||||
```json
|
||||
{
|
||||
"status": "error",
|
||||
"error": {
|
||||
"code": "api_runtime_error",
|
||||
"desc": "Agent request failed unexpectedly.",
|
||||
"module": "agent"
|
||||
},
|
||||
"completed_at": "2026-04-08T13:07:57.414809+00:00"
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,103 @@
|
||||
# Runtime Trace: 20260408-130830-d398ef674b67
|
||||
|
||||
- active_rag_session_id: b0fed7d3-965b-4103-91b5-d398ef674b67
|
||||
|
||||
## request
|
||||
```json
|
||||
{
|
||||
"request_id": "req_9ee1b7dae1cb4f8dbc81537e678734b8",
|
||||
"session_id": "as_c1e2c54c04c4483da7f956fb94fedd3e",
|
||||
"active_rag_session_id": "b0fed7d3-965b-4103-91b5-d398ef674b67",
|
||||
"process_version": "v2",
|
||||
"created_at": "2026-04-08T13:08:30.296355+00:00",
|
||||
"message": "Напиши документацию по системной аналитике \n/Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2
|
||||
```json
|
||||
{
|
||||
"event": "intent_routed",
|
||||
"routing_domain": "DOCS",
|
||||
"intent": "DOC_UPDATE",
|
||||
"subintent": "FIND_FILES",
|
||||
"normalized_query": "Напиши документацию по системной аналитике /Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md",
|
||||
"target_terms": [],
|
||||
"anchors": {
|
||||
"entity_names": [
|
||||
"Users",
|
||||
"Dev_projects_v2"
|
||||
],
|
||||
"file_names": [
|
||||
"/users/alex/dev_projects_v2/apps/test_echo_app/_incoming/feature1.md"
|
||||
],
|
||||
"endpoint_paths": [],
|
||||
"target_doc_hints": [],
|
||||
"matched_aliases": [],
|
||||
"process_domain": null,
|
||||
"process_subdomain": null,
|
||||
"scope_type": "unknown",
|
||||
"candidate_domains": [],
|
||||
"candidate_subdomains": [],
|
||||
"candidate_entities": [],
|
||||
"candidate_apis": [],
|
||||
"signal_types": [
|
||||
"DOMAIN_ENTITY",
|
||||
"FIND_FILES"
|
||||
]
|
||||
},
|
||||
"confidence": 0.8,
|
||||
"routing_mode": "llm_default",
|
||||
"llm_router_used": true,
|
||||
"reason_short": "Запрос явно указывает на обновление документации по системной аналитике из указанного файла feature1.md.",
|
||||
"rag_session_id": "b0fed7d3-965b-4103-91b5-d398ef674b67"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "router_resolved",
|
||||
"domain": "DOCS",
|
||||
"intent": "DOC_UPDATE",
|
||||
"subintent": "FIND_FILES",
|
||||
"confidence": 0.8
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "anchors_extracted",
|
||||
"signal_types": [
|
||||
"DOMAIN_ENTITY",
|
||||
"FIND_FILES"
|
||||
],
|
||||
"endpoint_paths": [],
|
||||
"target_doc_hints": [],
|
||||
"matched_aliases": [],
|
||||
"target_terms": []
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "alias_resolution",
|
||||
"resolved_aliases": [],
|
||||
"target_doc_hints": []
|
||||
}
|
||||
```
|
||||
|
||||
## result
|
||||
```json
|
||||
{
|
||||
"status": "error",
|
||||
"error": {
|
||||
"code": "api_runtime_error",
|
||||
"desc": "Agent request failed unexpectedly.",
|
||||
"module": "agent"
|
||||
},
|
||||
"completed_at": "2026-04-08T13:08:32.914987+00:00"
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,303 @@
|
||||
# Runtime Trace: 20260408-131217-d6aef7712b50
|
||||
|
||||
- active_rag_session_id: 09fb3332-3623-4164-9bb4-d6aef7712b50
|
||||
|
||||
## request
|
||||
```json
|
||||
{
|
||||
"request_id": "req_44b293c2d2d34247a4ad4ffbf6e529f9",
|
||||
"session_id": "as_c3998b60e2814f7090ead25d83aa990e",
|
||||
"active_rag_session_id": "09fb3332-3623-4164-9bb4-d6aef7712b50",
|
||||
"process_version": "v2",
|
||||
"created_at": "2026-04-08T13:12:17.468690+00:00",
|
||||
"message": "Напиши документацию по системной аналитике \n/Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2
|
||||
```json
|
||||
{
|
||||
"event": "intent_routed",
|
||||
"routing_domain": "DOCS",
|
||||
"intent": "DOC_UPDATE",
|
||||
"subintent": "FROM_FEATURE",
|
||||
"normalized_query": "Напиши документацию по системной аналитике /Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md",
|
||||
"target_terms": [],
|
||||
"anchors": {
|
||||
"entity_names": [
|
||||
"Users",
|
||||
"Dev_projects_v2"
|
||||
],
|
||||
"file_names": [
|
||||
"/users/alex/dev_projects_v2/apps/test_echo_app/_incoming/feature1.md"
|
||||
],
|
||||
"endpoint_paths": [],
|
||||
"target_doc_hints": [],
|
||||
"matched_aliases": [],
|
||||
"process_domain": null,
|
||||
"process_subdomain": null,
|
||||
"scope_type": "unknown",
|
||||
"candidate_domains": [],
|
||||
"candidate_subdomains": [],
|
||||
"candidate_entities": [],
|
||||
"candidate_apis": [],
|
||||
"signal_types": [
|
||||
"DOMAIN_ENTITY"
|
||||
]
|
||||
},
|
||||
"confidence": 0.8,
|
||||
"routing_mode": "llm_default",
|
||||
"llm_router_used": true,
|
||||
"reason_short": "Запрос явно указывает на обновление документации по указанному файлу feature1.md.",
|
||||
"rag_session_id": "09fb3332-3623-4164-9bb4-d6aef7712b50"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "router_resolved",
|
||||
"domain": "DOCS",
|
||||
"intent": "DOC_UPDATE",
|
||||
"subintent": "FROM_FEATURE",
|
||||
"confidence": 0.8
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "anchors_extracted",
|
||||
"signal_types": [
|
||||
"DOMAIN_ENTITY"
|
||||
],
|
||||
"endpoint_paths": [],
|
||||
"target_doc_hints": [],
|
||||
"matched_aliases": [],
|
||||
"target_terms": []
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "alias_resolution",
|
||||
"resolved_aliases": [],
|
||||
"target_doc_hints": []
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_started",
|
||||
"workflow_id": "v2.docs_update.from_feature"
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "resolve_source",
|
||||
"title": "Определение источника аналитики"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"source_kind": "markdown_file",
|
||||
"source_ref": "/Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md",
|
||||
"issues": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "load_source",
|
||||
"title": "Загрузка системной аналитики"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"source_kind": "markdown_file",
|
||||
"content_loaded": true,
|
||||
"issues": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "parse_feature",
|
||||
"title": "Парсинг функциональных требований"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"analysis_id": "",
|
||||
"domains": [],
|
||||
"subdomains": [],
|
||||
"units": 1,
|
||||
"issues": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "build_change_plan",
|
||||
"title": "Построение плана изменений"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"docs_rows": 26,
|
||||
"planned_changes": 1,
|
||||
"issues": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "build_changeset",
|
||||
"title": "Формирование changeset"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"changeset_items": 1,
|
||||
"issues": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "finalize",
|
||||
"title": "Подготовка ответа"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"answer_length": 801,
|
||||
"issues": 0,
|
||||
"changeset_items": 1
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_trace_flushed",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"steps": [
|
||||
{
|
||||
"step_id": "resolve_source",
|
||||
"title": "Определение источника аналитики",
|
||||
"input": {},
|
||||
"output": {
|
||||
"source_kind": "markdown_file",
|
||||
"source_ref": "/Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md",
|
||||
"issues": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "load_source",
|
||||
"title": "Загрузка системной аналитики",
|
||||
"input": {},
|
||||
"output": {
|
||||
"source_kind": "markdown_file",
|
||||
"content_loaded": true,
|
||||
"issues": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "parse_feature",
|
||||
"title": "Парсинг функциональных требований",
|
||||
"input": {},
|
||||
"output": {
|
||||
"analysis_id": "",
|
||||
"domains": [],
|
||||
"subdomains": [],
|
||||
"units": 1,
|
||||
"issues": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "build_change_plan",
|
||||
"title": "Построение плана изменений",
|
||||
"input": {},
|
||||
"output": {
|
||||
"docs_rows": 26,
|
||||
"planned_changes": 1,
|
||||
"issues": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "build_changeset",
|
||||
"title": "Формирование changeset",
|
||||
"input": {},
|
||||
"output": {
|
||||
"changeset_items": 1,
|
||||
"issues": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "finalize",
|
||||
"title": "Подготовка ответа",
|
||||
"input": {},
|
||||
"output": {
|
||||
"answer_length": 801,
|
||||
"issues": 0,
|
||||
"changeset_items": 1
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_completed",
|
||||
"workflow_id": "v2.docs_update.from_feature"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "answer_generated",
|
||||
"answer_mode": "docs_update_changeset",
|
||||
"answer_length": 801,
|
||||
"changeset_items": 1
|
||||
}
|
||||
```
|
||||
|
||||
## result
|
||||
```json
|
||||
{
|
||||
"status": "done",
|
||||
"answer": "DOC_UPDATE/FROM_FEATURE: результат построения changeset.\n\nПлан изменений:\n- create: docs/api/api-telegram-messages-get.md (api_method)\n\nChangeset (для плагина):\n```json\n[\n {\n \"op\": \"create\",\n \"path\": \"docs/api/api-telegram-messages-get.md\",\n \"base_hash\": null,\n \"proposed_content\": \"---\\nid: api.telegram.messages.get\\ntitle: Реализация эндпоинта `GET /telegram/messages`\\ndoc_type: api_method\\ndomain: unknown\\nsub_domain: unknown\\nstatus: generated\\nrelated_docs:\\n - TBD\\nsource_of_truth: system_analysis\\nsystem_analytics_refs:\\n - section: 5. Функциональные требования\\n---\\n\\n## Summary\\n\\nЧерновик сгенерирован workflow DOC_UPDATE/FROM_FEATURE.\\n\",\n \"reason\": \"Из unit 'Реализация эндпоинта `GET /telegram/messages`' системной аналитики (analysis).\",\n \"hunks\": []\n }\n]\n```",
|
||||
"completed_at": "2026-04-08T13:12:20.251846+00:00"
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,303 @@
|
||||
# Runtime Trace: 20260408-133710-3fcdfdcab8be
|
||||
|
||||
- active_rag_session_id: a603ea81-9785-4846-8c05-3fcdfdcab8be
|
||||
|
||||
## request
|
||||
```json
|
||||
{
|
||||
"request_id": "req_c5a90cbf219046cc91239e4fae39ac3e",
|
||||
"session_id": "as_5bad25c4dd394e33884ff7471bbcbf4a",
|
||||
"active_rag_session_id": "a603ea81-9785-4846-8c05-3fcdfdcab8be",
|
||||
"process_version": "v2",
|
||||
"created_at": "2026-04-08T13:37:10.869126+00:00",
|
||||
"message": "Напиши документацию по системной аналитике \n/Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2
|
||||
```json
|
||||
{
|
||||
"event": "intent_routed",
|
||||
"routing_domain": "DOCS",
|
||||
"intent": "DOC_UPDATE",
|
||||
"subintent": "FROM_FEATURE",
|
||||
"normalized_query": "Напиши документацию по системной аналитике /Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md",
|
||||
"target_terms": [],
|
||||
"anchors": {
|
||||
"entity_names": [
|
||||
"Users",
|
||||
"Dev_projects_v2"
|
||||
],
|
||||
"file_names": [
|
||||
"/users/alex/dev_projects_v2/apps/test_echo_app/_incoming/feature1.md"
|
||||
],
|
||||
"endpoint_paths": [],
|
||||
"target_doc_hints": [],
|
||||
"matched_aliases": [],
|
||||
"process_domain": null,
|
||||
"process_subdomain": null,
|
||||
"scope_type": "unknown",
|
||||
"candidate_domains": [],
|
||||
"candidate_subdomains": [],
|
||||
"candidate_entities": [],
|
||||
"candidate_apis": [],
|
||||
"signal_types": [
|
||||
"DOMAIN_ENTITY"
|
||||
]
|
||||
},
|
||||
"confidence": 0.8,
|
||||
"routing_mode": "llm_default",
|
||||
"llm_router_used": true,
|
||||
"reason_short": "Запрос явно указывает на обновление документации по указанному файлу feature1.md.",
|
||||
"rag_session_id": "a603ea81-9785-4846-8c05-3fcdfdcab8be"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "router_resolved",
|
||||
"domain": "DOCS",
|
||||
"intent": "DOC_UPDATE",
|
||||
"subintent": "FROM_FEATURE",
|
||||
"confidence": 0.8
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "anchors_extracted",
|
||||
"signal_types": [
|
||||
"DOMAIN_ENTITY"
|
||||
],
|
||||
"endpoint_paths": [],
|
||||
"target_doc_hints": [],
|
||||
"matched_aliases": [],
|
||||
"target_terms": []
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "alias_resolution",
|
||||
"resolved_aliases": [],
|
||||
"target_doc_hints": []
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_started",
|
||||
"workflow_id": "v2.docs_update.from_feature"
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "resolve_source",
|
||||
"title": "Определение источника аналитики"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"source_kind": "markdown_file",
|
||||
"source_ref": "/Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md",
|
||||
"issues": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "load_source",
|
||||
"title": "Загрузка системной аналитики"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"source_kind": "markdown_file",
|
||||
"content_loaded": true,
|
||||
"issues": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "parse_feature",
|
||||
"title": "Парсинг функциональных требований"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"analysis_id": "",
|
||||
"domains": [],
|
||||
"subdomains": [],
|
||||
"units": 1,
|
||||
"issues": 3
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "build_change_plan",
|
||||
"title": "Построение плана изменений"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"docs_rows": 26,
|
||||
"planned_changes": 1,
|
||||
"issues": 3
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "build_changeset",
|
||||
"title": "Формирование changeset"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"changeset_items": 1,
|
||||
"issues": 3
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "finalize",
|
||||
"title": "Подготовка ответа"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"answer_length": 2340,
|
||||
"issues": 3,
|
||||
"changeset_items": 1
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_trace_flushed",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"steps": [
|
||||
{
|
||||
"step_id": "resolve_source",
|
||||
"title": "Определение источника аналитики",
|
||||
"input": {},
|
||||
"output": {
|
||||
"source_kind": "markdown_file",
|
||||
"source_ref": "/Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md",
|
||||
"issues": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "load_source",
|
||||
"title": "Загрузка системной аналитики",
|
||||
"input": {},
|
||||
"output": {
|
||||
"source_kind": "markdown_file",
|
||||
"content_loaded": true,
|
||||
"issues": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "parse_feature",
|
||||
"title": "Парсинг функциональных требований",
|
||||
"input": {},
|
||||
"output": {
|
||||
"analysis_id": "",
|
||||
"domains": [],
|
||||
"subdomains": [],
|
||||
"units": 1,
|
||||
"issues": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "build_change_plan",
|
||||
"title": "Построение плана изменений",
|
||||
"input": {},
|
||||
"output": {
|
||||
"docs_rows": 26,
|
||||
"planned_changes": 1,
|
||||
"issues": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "build_changeset",
|
||||
"title": "Формирование changeset",
|
||||
"input": {},
|
||||
"output": {
|
||||
"changeset_items": 1,
|
||||
"issues": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "finalize",
|
||||
"title": "Подготовка ответа",
|
||||
"input": {},
|
||||
"output": {
|
||||
"answer_length": 2340,
|
||||
"issues": 3,
|
||||
"changeset_items": 1
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_completed",
|
||||
"workflow_id": "v2.docs_update.from_feature"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "answer_generated",
|
||||
"answer_mode": "docs_update_changeset",
|
||||
"answer_length": 2340,
|
||||
"changeset_items": 1
|
||||
}
|
||||
```
|
||||
|
||||
## result
|
||||
```json
|
||||
{
|
||||
"status": "done",
|
||||
"answer": "DOC_UPDATE/FROM_FEATURE: результат построения changeset.\n\nОбнаружены несоответствия/нехватка данных:\n- Отсутствует analysis_id в metadata аналитики.\n- Отсутствует domains в metadata аналитики.\n- Отсутствует subdomains в metadata аналитики.\n\nПлан изменений:\n- create: docs/api/api-telegram-messages-get.md (api_method)\n\nChangeset (для плагина):\n```json\n[\n {\n \"op\": \"create\",\n \"path\": \"docs/api/api-telegram-messages-get.md\",\n \"base_hash\": null,\n \"proposed_content\": \"---\\nid: api.telegram.messages.get\\ntitle: Реализация эндпоинта `GET /telegram/messages`\\ndoc_type: api_method\\ndomain: unknown\\nsub_domain: unknown\\nstatus: generated\\nrelated_docs:\\n - TBD\\nsource_of_truth: system_analysis\\nsystem_analytics_refs:\\n - section: 5. Функциональные требования\\n---\\n\\n## Context\\n\\nЧерновик сгенерирован workflow DOC_UPDATE/FROM_FEATURE на основе системной аналитики.\\n\\n## Functional Requirements\\n\\nСценарий описывает поведение endpoint и включает все обязательные функциональные требования.\\n\\n1. Потребитель вызывает endpoint `GET /telegram/messages` и передает параметр `secret`.\\n2. Сервис сравнивает переданный `secret` со значением `APP_ENDPOINT_SECRET` из защищенной конфигурации.\\n3. Если `secret` не совпадает:\\n\\n- сервис возвращает отказ в доступе (`403 Forbidden`);\\n- обработка завершается;\\n- вызов в Telegram API не выполняется.\\n\\n1. Если `secret` совпадает, сервис выполняет вызов Telegram Bot API:\\n\\n- Метод: `getUpdates`;\\n- HTTP: `POST https://api.telegram.org/bot<TELEGRAM_BOT_TOKEN>/getUpdates`;\\n- Допустимые параметры запроса (по необходимости): `offset`, `limit`, `timeout`, `allowed_updates`.\\n\\n1. Сервис получает список update, выделяет непрочитанные (необработанные) сообщения и формирует доменный результат.\\n2. Сервис возвращает клиенту ответ в формате `AppResponseDto` (статус выполнения + полезная нагрузка).\\n3. Если Telegram API возвращает ошибку/некорректный ответ, сервис возвращает контролируемую ошибку без утечки внутренних данных интеграции.\\n\\nНеобходимые секреты для реализации сценария:\\n\\n- `APP_ENDPOINT_SECRET` - секрет для авторизации входящего запроса к endpoint;\\n- `TELEGRAM_BOT_TOKEN` - токен Telegram-бота для вызова метода `getUpdates`.\\n\",\n \"reason\": \"Из unit 'Реализация эндпоинта `GET /telegram/messages`' системной аналитики (analysis).\",\n \"hunks\": []\n }\n]\n```",
|
||||
"completed_at": "2026-04-08T13:37:13.627111+00:00"
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,305 @@
|
||||
# Runtime Trace: 20260408-134243-ae814cadec74
|
||||
|
||||
- active_rag_session_id: 07b0a164-32cd-47cc-ba4d-ae814cadec74
|
||||
|
||||
## request
|
||||
```json
|
||||
{
|
||||
"request_id": "req_a1f51efe7fe540a393f2840f830f0710",
|
||||
"session_id": "as_968bcb99e71d454eb0b38cbe5021ac32",
|
||||
"active_rag_session_id": "07b0a164-32cd-47cc-ba4d-ae814cadec74",
|
||||
"process_version": "v2",
|
||||
"created_at": "2026-04-08T13:42:43.644632+00:00",
|
||||
"message": "Напиши документацию по системной аналитике\n/Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2
|
||||
```json
|
||||
{
|
||||
"event": "intent_routed",
|
||||
"routing_domain": "DOCS",
|
||||
"intent": "DOC_UPDATE",
|
||||
"subintent": "FROM_FEATURE",
|
||||
"normalized_query": "Напиши документацию по системной аналитике /Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md",
|
||||
"target_terms": [],
|
||||
"anchors": {
|
||||
"entity_names": [
|
||||
"Users",
|
||||
"Dev_projects_v2"
|
||||
],
|
||||
"file_names": [
|
||||
"/users/alex/dev_projects_v2/apps/test_echo_app/_incoming/feature1.md"
|
||||
],
|
||||
"endpoint_paths": [],
|
||||
"target_doc_hints": [],
|
||||
"matched_aliases": [],
|
||||
"process_domain": null,
|
||||
"process_subdomain": null,
|
||||
"scope_type": "unknown",
|
||||
"candidate_domains": [],
|
||||
"candidate_subdomains": [],
|
||||
"candidate_entities": [],
|
||||
"candidate_apis": [],
|
||||
"signal_types": [
|
||||
"DOMAIN_ENTITY"
|
||||
]
|
||||
},
|
||||
"confidence": 0.8,
|
||||
"routing_mode": "llm_default",
|
||||
"llm_router_used": true,
|
||||
"reason_short": "Запрос явно указывает на обновление документации по системной аналитике из указанного файла feature1.md.",
|
||||
"rag_session_id": "07b0a164-32cd-47cc-ba4d-ae814cadec74"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "router_resolved",
|
||||
"domain": "DOCS",
|
||||
"intent": "DOC_UPDATE",
|
||||
"subintent": "FROM_FEATURE",
|
||||
"confidence": 0.8
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "anchors_extracted",
|
||||
"signal_types": [
|
||||
"DOMAIN_ENTITY"
|
||||
],
|
||||
"endpoint_paths": [],
|
||||
"target_doc_hints": [],
|
||||
"matched_aliases": [],
|
||||
"target_terms": []
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "alias_resolution",
|
||||
"resolved_aliases": [],
|
||||
"target_doc_hints": []
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_started",
|
||||
"workflow_id": "v2.docs_update.from_feature"
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "resolve_source",
|
||||
"title": "Определение источника аналитики"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"source_kind": "markdown_file",
|
||||
"source_ref": "/Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md",
|
||||
"issues": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "load_source",
|
||||
"title": "Загрузка системной аналитики"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"source_kind": "markdown_file",
|
||||
"content_loaded": true,
|
||||
"project_root": "/Users/alex/Dev_projects_v2/apps/test_echo_app",
|
||||
"issues": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "parse_feature",
|
||||
"title": "Парсинг функциональных требований"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"analysis_id": "",
|
||||
"domains": [],
|
||||
"subdomains": [],
|
||||
"units": 1,
|
||||
"issues": 3
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "build_change_plan",
|
||||
"title": "Построение плана изменений"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"docs_rows": 26,
|
||||
"planned_changes": 1,
|
||||
"issues": 3
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "build_changeset",
|
||||
"title": "Формирование changeset"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"changeset_items": 1,
|
||||
"issues": 3
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "finalize",
|
||||
"title": "Подготовка ответа"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"answer_length": 2340,
|
||||
"issues": 3,
|
||||
"changeset_items": 1
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_trace_flushed",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"steps": [
|
||||
{
|
||||
"step_id": "resolve_source",
|
||||
"title": "Определение источника аналитики",
|
||||
"input": {},
|
||||
"output": {
|
||||
"source_kind": "markdown_file",
|
||||
"source_ref": "/Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md",
|
||||
"issues": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "load_source",
|
||||
"title": "Загрузка системной аналитики",
|
||||
"input": {},
|
||||
"output": {
|
||||
"source_kind": "markdown_file",
|
||||
"content_loaded": true,
|
||||
"project_root": "/Users/alex/Dev_projects_v2/apps/test_echo_app",
|
||||
"issues": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "parse_feature",
|
||||
"title": "Парсинг функциональных требований",
|
||||
"input": {},
|
||||
"output": {
|
||||
"analysis_id": "",
|
||||
"domains": [],
|
||||
"subdomains": [],
|
||||
"units": 1,
|
||||
"issues": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "build_change_plan",
|
||||
"title": "Построение плана изменений",
|
||||
"input": {},
|
||||
"output": {
|
||||
"docs_rows": 26,
|
||||
"planned_changes": 1,
|
||||
"issues": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "build_changeset",
|
||||
"title": "Формирование changeset",
|
||||
"input": {},
|
||||
"output": {
|
||||
"changeset_items": 1,
|
||||
"issues": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "finalize",
|
||||
"title": "Подготовка ответа",
|
||||
"input": {},
|
||||
"output": {
|
||||
"answer_length": 2340,
|
||||
"issues": 3,
|
||||
"changeset_items": 1
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_completed",
|
||||
"workflow_id": "v2.docs_update.from_feature"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "answer_generated",
|
||||
"answer_mode": "docs_update_changeset",
|
||||
"answer_length": 2340,
|
||||
"changeset_items": 1
|
||||
}
|
||||
```
|
||||
|
||||
## result
|
||||
```json
|
||||
{
|
||||
"status": "done",
|
||||
"answer": "DOC_UPDATE/FROM_FEATURE: результат построения changeset.\n\nОбнаружены несоответствия/нехватка данных:\n- Отсутствует analysis_id в metadata аналитики.\n- Отсутствует domains в metadata аналитики.\n- Отсутствует subdomains в metadata аналитики.\n\nПлан изменений:\n- create: docs/api/api-telegram-messages-get.md (api_method)\n\nChangeset (для плагина):\n```json\n[\n {\n \"op\": \"create\",\n \"path\": \"docs/api/api-telegram-messages-get.md\",\n \"base_hash\": null,\n \"proposed_content\": \"---\\nid: api.telegram.messages.get\\ntitle: Реализация эндпоинта `GET /telegram/messages`\\ndoc_type: api_method\\ndomain: unknown\\nsub_domain: unknown\\nstatus: generated\\nrelated_docs:\\n - TBD\\nsource_of_truth: system_analysis\\nsystem_analytics_refs:\\n - section: 5. Функциональные требования\\n---\\n\\n## Context\\n\\nЧерновик сгенерирован workflow DOC_UPDATE/FROM_FEATURE на основе системной аналитики.\\n\\n## Functional Requirements\\n\\nСценарий описывает поведение endpoint и включает все обязательные функциональные требования.\\n\\n1. Потребитель вызывает endpoint `GET /telegram/messages` и передает параметр `secret`.\\n2. Сервис сравнивает переданный `secret` со значением `APP_ENDPOINT_SECRET` из защищенной конфигурации.\\n3. Если `secret` не совпадает:\\n\\n- сервис возвращает отказ в доступе (`403 Forbidden`);\\n- обработка завершается;\\n- вызов в Telegram API не выполняется.\\n\\n1. Если `secret` совпадает, сервис выполняет вызов Telegram Bot API:\\n\\n- Метод: `getUpdates`;\\n- HTTP: `POST https://api.telegram.org/bot<TELEGRAM_BOT_TOKEN>/getUpdates`;\\n- Допустимые параметры запроса (по необходимости): `offset`, `limit`, `timeout`, `allowed_updates`.\\n\\n1. Сервис получает список update, выделяет непрочитанные (необработанные) сообщения и формирует доменный результат.\\n2. Сервис возвращает клиенту ответ в формате `AppResponseDto` (статус выполнения + полезная нагрузка).\\n3. Если Telegram API возвращает ошибку/некорректный ответ, сервис возвращает контролируемую ошибку без утечки внутренних данных интеграции.\\n\\nНеобходимые секреты для реализации сценария:\\n\\n- `APP_ENDPOINT_SECRET` - секрет для авторизации входящего запроса к endpoint;\\n- `TELEGRAM_BOT_TOKEN` - токен Telegram-бота для вызова метода `getUpdates`.\\n\",\n \"reason\": \"Из unit 'Реализация эндпоинта `GET /telegram/messages`' системной аналитики (analysis).\",\n \"hunks\": []\n }\n]\n```",
|
||||
"completed_at": "2026-04-08T13:42:47.600078+00:00"
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,306 @@
|
||||
# Runtime Trace: 20260408-135621-3d42c447c174
|
||||
|
||||
- active_rag_session_id: 7bc8440f-382f-4df3-9a82-3d42c447c174
|
||||
|
||||
## request
|
||||
```json
|
||||
{
|
||||
"request_id": "req_5bd727fe052841efbbd9f69651e57bca",
|
||||
"session_id": "as_8d0e3b766f3a49b495e3074a3bcfe777",
|
||||
"active_rag_session_id": "7bc8440f-382f-4df3-9a82-3d42c447c174",
|
||||
"process_version": "v2",
|
||||
"created_at": "2026-04-08T13:56:21.477390+00:00",
|
||||
"message": "Напиши документацию по системной аналитике /Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2
|
||||
```json
|
||||
{
|
||||
"event": "intent_routed",
|
||||
"routing_domain": "DOCS",
|
||||
"intent": "DOC_UPDATE",
|
||||
"subintent": "FROM_FEATURE",
|
||||
"normalized_query": "Напиши документацию по системной аналитике /Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md",
|
||||
"target_terms": [],
|
||||
"anchors": {
|
||||
"entity_names": [
|
||||
"Users",
|
||||
"Dev_projects_v2"
|
||||
],
|
||||
"file_names": [
|
||||
"/users/alex/dev_projects_v2/apps/test_echo_app/_incoming/feature1.md"
|
||||
],
|
||||
"endpoint_paths": [],
|
||||
"target_doc_hints": [],
|
||||
"matched_aliases": [],
|
||||
"process_domain": null,
|
||||
"process_subdomain": null,
|
||||
"scope_type": "unknown",
|
||||
"candidate_domains": [],
|
||||
"candidate_subdomains": [],
|
||||
"candidate_entities": [],
|
||||
"candidate_apis": [],
|
||||
"signal_types": [
|
||||
"DOMAIN_ENTITY"
|
||||
]
|
||||
},
|
||||
"confidence": 0.8,
|
||||
"routing_mode": "llm_default",
|
||||
"llm_router_used": true,
|
||||
"reason_short": "Запрос явно указывает на обновление документации по системной аналитике из указанного файла feature1.md.",
|
||||
"rag_session_id": "7bc8440f-382f-4df3-9a82-3d42c447c174"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "router_resolved",
|
||||
"domain": "DOCS",
|
||||
"intent": "DOC_UPDATE",
|
||||
"subintent": "FROM_FEATURE",
|
||||
"confidence": 0.8
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "anchors_extracted",
|
||||
"signal_types": [
|
||||
"DOMAIN_ENTITY"
|
||||
],
|
||||
"endpoint_paths": [],
|
||||
"target_doc_hints": [],
|
||||
"matched_aliases": [],
|
||||
"target_terms": []
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "alias_resolution",
|
||||
"resolved_aliases": [],
|
||||
"target_doc_hints": []
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_started",
|
||||
"workflow_id": "v2.docs_update.from_feature"
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "resolve_source",
|
||||
"title": "Определение источника аналитики"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"source_kind": "markdown_file",
|
||||
"source_ref": "/Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md",
|
||||
"issues": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "load_source",
|
||||
"title": "Загрузка системной аналитики"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"source_kind": "markdown_file",
|
||||
"content_loaded": true,
|
||||
"project_root": "/Users/alex/Dev_projects_v2/apps/test_echo_app",
|
||||
"issues": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "parse_feature",
|
||||
"title": "Парсинг функциональных требований"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"analysis_id": "",
|
||||
"domains": [],
|
||||
"subdomains": [],
|
||||
"units": 1,
|
||||
"issues": 3
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "build_change_plan",
|
||||
"title": "Построение плана изменений"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"docs_rows": 26,
|
||||
"planned_changes": 1,
|
||||
"issues": 3
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "build_changeset",
|
||||
"title": "Формирование changeset"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"changeset_items": 1,
|
||||
"issues": 3
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "finalize",
|
||||
"title": "Подготовка ответа"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"answer_length": 2364,
|
||||
"issues": 3,
|
||||
"changeset_items": 1
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_trace_flushed",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"steps": [
|
||||
{
|
||||
"step_id": "resolve_source",
|
||||
"title": "Определение источника аналитики",
|
||||
"input": {},
|
||||
"output": {
|
||||
"source_kind": "markdown_file",
|
||||
"source_ref": "/Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md",
|
||||
"issues": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "load_source",
|
||||
"title": "Загрузка системной аналитики",
|
||||
"input": {},
|
||||
"output": {
|
||||
"source_kind": "markdown_file",
|
||||
"content_loaded": true,
|
||||
"project_root": "/Users/alex/Dev_projects_v2/apps/test_echo_app",
|
||||
"issues": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "parse_feature",
|
||||
"title": "Парсинг функциональных требований",
|
||||
"input": {},
|
||||
"output": {
|
||||
"analysis_id": "",
|
||||
"domains": [],
|
||||
"subdomains": [],
|
||||
"units": 1,
|
||||
"issues": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "build_change_plan",
|
||||
"title": "Построение плана изменений",
|
||||
"input": {},
|
||||
"output": {
|
||||
"docs_rows": 26,
|
||||
"planned_changes": 1,
|
||||
"issues": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "build_changeset",
|
||||
"title": "Формирование changeset",
|
||||
"input": {},
|
||||
"output": {
|
||||
"changeset_items": 1,
|
||||
"issues": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "finalize",
|
||||
"title": "Подготовка ответа",
|
||||
"input": {},
|
||||
"output": {
|
||||
"answer_length": 2364,
|
||||
"issues": 3,
|
||||
"changeset_items": 1
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_completed",
|
||||
"workflow_id": "v2.docs_update.from_feature"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "answer_generated",
|
||||
"answer_mode": "docs_update_changeset",
|
||||
"answer_length": 2364,
|
||||
"changeset_items": 1,
|
||||
"apply_changeset": false
|
||||
}
|
||||
```
|
||||
|
||||
## result
|
||||
```json
|
||||
{
|
||||
"status": "done",
|
||||
"answer": "DOC_UPDATE/FROM_FEATURE: результат построения changeset.\n\nОбнаружены несоответствия/нехватка данных:\n- Отсутствует analysis_id в metadata аналитики.\n- Отсутствует domains в metadata аналитики.\n- Отсутствует subdomains в metadata аналитики.\n\nПлан изменений:\n- create: docs/api/api-telegram-messages-get.md (api_method)\n\nChangeset (для плагина):\n```json\n[\n {\n \"op\": \"create\",\n \"path\": \"docs/api/api-telegram-messages-get.md\",\n \"base_hash\": null,\n \"proposed_content\": \"---\\nid: api.telegram.messages.get\\ntitle: Реализация эндпоинта `GET /telegram/messages`\\ndoc_type: api_method\\ndomain: unknown\\nsub_domain: unknown\\nstatus: generated\\nrelated_docs:\\n - TBD\\nsource_of_truth: system_analysis\\nsystem_analytics_refs:\\n - section: 5. Функциональные требования\\n---\\n\\n## Context\\n\\nЧерновик сгенерирован workflow DOC_UPDATE/FROM_FEATURE на основе системной аналитики.\\n\\n## Functional Requirements\\n\\nСценарий описывает поведение endpoint и включает все обязательные функциональные требования.\\n\\n1. Потребитель вызывает endpoint `GET /telegram/messages` и передает параметр `secret`.\\n2. Сервис сравнивает переданный `secret` со значением `APP_ENDPOINT_SECRET` из защищенной конфигурации.\\n3. Если `secret` не совпадает:\\n\\n- сервис возвращает отказ в доступе (`403 Forbidden`);\\n- обработка завершается;\\n- вызов в Telegram API не выполняется.\\n\\n1. Если `secret` совпадает, сервис выполняет вызов Telegram Bot API:\\n\\n- Метод: `getUpdates`;\\n- HTTP: `POST https://api.telegram.org/bot<TELEGRAM_BOT_TOKEN>/getUpdates`;\\n- Допустимые параметры запроса (по необходимости): `offset`, `limit`, `timeout`, `allowed_updates`.\\n\\n1. Сервис получает список update, выделяет непрочитанные (необработанные) сообщения и формирует доменный результат.\\n2. Сервис возвращает клиенту ответ в формате `AppResponseDto` (статус выполнения + полезная нагрузка).\\n3. Если Telegram API возвращает ошибку/некорректный ответ, сервис возвращает контролируемую ошибку без утечки внутренних данных интеграции.\\n\\nНеобходимые секреты для реализации сценария:\\n\\n- `APP_ENDPOINT_SECRET` - секрет для авторизации входящего запроса к endpoint;\\n- `TELEGRAM_BOT_TOKEN` - токен Telegram-бота для вызова метода `getUpdates`.\\n\",\n \"reason\": \"Из unit 'Реализация эндпоинта `GET /telegram/messages`' системной аналитики (analysis).\",\n \"hunks\": []\n }\n]\n```\n\napply_changeset: false",
|
||||
"completed_at": "2026-04-08T13:56:24.354339+00:00"
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,306 @@
|
||||
# Runtime Trace: 20260408-135847-14bbe60d0cc3
|
||||
|
||||
- active_rag_session_id: 3be9766d-2a4d-4fa6-9d86-14bbe60d0cc3
|
||||
|
||||
## request
|
||||
```json
|
||||
{
|
||||
"request_id": "req_6662d31380114d628963f48516560a7e",
|
||||
"session_id": "as_6df21081790f4954b93cc47f6f418554",
|
||||
"active_rag_session_id": "3be9766d-2a4d-4fa6-9d86-14bbe60d0cc3",
|
||||
"process_version": "v2",
|
||||
"created_at": "2026-04-08T13:58:47.981631+00:00",
|
||||
"message": "Напиши документацию по системной аналитике /Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2
|
||||
```json
|
||||
{
|
||||
"event": "intent_routed",
|
||||
"routing_domain": "DOCS",
|
||||
"intent": "DOC_UPDATE",
|
||||
"subintent": "FROM_FEATURE",
|
||||
"normalized_query": "Напиши документацию по системной аналитике /Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md",
|
||||
"target_terms": [],
|
||||
"anchors": {
|
||||
"entity_names": [
|
||||
"Users",
|
||||
"Dev_projects_v2"
|
||||
],
|
||||
"file_names": [
|
||||
"/users/alex/dev_projects_v2/apps/test_echo_app/_incoming/feature1.md"
|
||||
],
|
||||
"endpoint_paths": [],
|
||||
"target_doc_hints": [],
|
||||
"matched_aliases": [],
|
||||
"process_domain": null,
|
||||
"process_subdomain": null,
|
||||
"scope_type": "unknown",
|
||||
"candidate_domains": [],
|
||||
"candidate_subdomains": [],
|
||||
"candidate_entities": [],
|
||||
"candidate_apis": [],
|
||||
"signal_types": [
|
||||
"DOMAIN_ENTITY"
|
||||
]
|
||||
},
|
||||
"confidence": 0.8,
|
||||
"routing_mode": "llm_default",
|
||||
"llm_router_used": true,
|
||||
"reason_short": "Запрос явно указывает на обновление документации по указанному файлу feature1.md.",
|
||||
"rag_session_id": "3be9766d-2a4d-4fa6-9d86-14bbe60d0cc3"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "router_resolved",
|
||||
"domain": "DOCS",
|
||||
"intent": "DOC_UPDATE",
|
||||
"subintent": "FROM_FEATURE",
|
||||
"confidence": 0.8
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "anchors_extracted",
|
||||
"signal_types": [
|
||||
"DOMAIN_ENTITY"
|
||||
],
|
||||
"endpoint_paths": [],
|
||||
"target_doc_hints": [],
|
||||
"matched_aliases": [],
|
||||
"target_terms": []
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "alias_resolution",
|
||||
"resolved_aliases": [],
|
||||
"target_doc_hints": []
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_started",
|
||||
"workflow_id": "v2.docs_update.from_feature"
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "resolve_source",
|
||||
"title": "Определение источника аналитики"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"source_kind": "markdown_file",
|
||||
"source_ref": "/Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md",
|
||||
"issues": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "load_source",
|
||||
"title": "Загрузка системной аналитики"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"source_kind": "markdown_file",
|
||||
"content_loaded": true,
|
||||
"project_root": "/Users/alex/Dev_projects_v2/apps/test_echo_app",
|
||||
"issues": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "parse_feature",
|
||||
"title": "Парсинг функциональных требований"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"analysis_id": "",
|
||||
"domains": [],
|
||||
"subdomains": [],
|
||||
"units": 1,
|
||||
"issues": 3
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "build_change_plan",
|
||||
"title": "Построение плана изменений"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"docs_rows": 26,
|
||||
"planned_changes": 1,
|
||||
"issues": 3
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "build_changeset",
|
||||
"title": "Формирование changeset"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"changeset_items": 1,
|
||||
"issues": 3
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_step_traced",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"step": {
|
||||
"id": "finalize",
|
||||
"title": "Подготовка ответа"
|
||||
},
|
||||
"input": {},
|
||||
"output": {
|
||||
"answer_length": 2363,
|
||||
"issues": 3,
|
||||
"changeset_items": 1
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_trace_flushed",
|
||||
"workflow_id": "v2.docs_update.from_feature",
|
||||
"steps": [
|
||||
{
|
||||
"step_id": "resolve_source",
|
||||
"title": "Определение источника аналитики",
|
||||
"input": {},
|
||||
"output": {
|
||||
"source_kind": "markdown_file",
|
||||
"source_ref": "/Users/alex/Dev_projects_v2/apps/test_echo_app/_incoming/feature1.md",
|
||||
"issues": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "load_source",
|
||||
"title": "Загрузка системной аналитики",
|
||||
"input": {},
|
||||
"output": {
|
||||
"source_kind": "markdown_file",
|
||||
"content_loaded": true,
|
||||
"project_root": "/Users/alex/Dev_projects_v2/apps/test_echo_app",
|
||||
"issues": 0
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "parse_feature",
|
||||
"title": "Парсинг функциональных требований",
|
||||
"input": {},
|
||||
"output": {
|
||||
"analysis_id": "",
|
||||
"domains": [],
|
||||
"subdomains": [],
|
||||
"units": 1,
|
||||
"issues": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "build_change_plan",
|
||||
"title": "Построение плана изменений",
|
||||
"input": {},
|
||||
"output": {
|
||||
"docs_rows": 26,
|
||||
"planned_changes": 1,
|
||||
"issues": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "build_changeset",
|
||||
"title": "Формирование changeset",
|
||||
"input": {},
|
||||
"output": {
|
||||
"changeset_items": 1,
|
||||
"issues": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"step_id": "finalize",
|
||||
"title": "Подготовка ответа",
|
||||
"input": {},
|
||||
"output": {
|
||||
"answer_length": 2363,
|
||||
"issues": 3,
|
||||
"changeset_items": 1
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## workflow.v2.docs_update.from_feature
|
||||
```json
|
||||
{
|
||||
"event": "workflow_completed",
|
||||
"workflow_id": "v2.docs_update.from_feature"
|
||||
}
|
||||
```
|
||||
|
||||
## process.v2.pipeline
|
||||
```json
|
||||
{
|
||||
"event": "answer_generated",
|
||||
"answer_mode": "docs_update_changeset",
|
||||
"answer_length": 2363,
|
||||
"changeset_items": 1,
|
||||
"apply_changeset": true
|
||||
}
|
||||
```
|
||||
|
||||
## result
|
||||
```json
|
||||
{
|
||||
"status": "done",
|
||||
"answer": "DOC_UPDATE/FROM_FEATURE: результат построения changeset.\n\nОбнаружены несоответствия/нехватка данных:\n- Отсутствует analysis_id в metadata аналитики.\n- Отсутствует domains в metadata аналитики.\n- Отсутствует subdomains в metadata аналитики.\n\nПлан изменений:\n- create: docs/api/api-telegram-messages-get.md (api_method)\n\nChangeset (для плагина):\n```json\n[\n {\n \"op\": \"create\",\n \"path\": \"docs/api/api-telegram-messages-get.md\",\n \"base_hash\": null,\n \"proposed_content\": \"---\\nid: api.telegram.messages.get\\ntitle: Реализация эндпоинта `GET /telegram/messages`\\ndoc_type: api_method\\ndomain: unknown\\nsub_domain: unknown\\nstatus: generated\\nrelated_docs:\\n - TBD\\nsource_of_truth: system_analysis\\nsystem_analytics_refs:\\n - section: 5. Функциональные требования\\n---\\n\\n## Context\\n\\nЧерновик сгенерирован workflow DOC_UPDATE/FROM_FEATURE на основе системной аналитики.\\n\\n## Functional Requirements\\n\\nСценарий описывает поведение endpoint и включает все обязательные функциональные требования.\\n\\n1. Потребитель вызывает endpoint `GET /telegram/messages` и передает параметр `secret`.\\n2. Сервис сравнивает переданный `secret` со значением `APP_ENDPOINT_SECRET` из защищенной конфигурации.\\n3. Если `secret` не совпадает:\\n\\n- сервис возвращает отказ в доступе (`403 Forbidden`);\\n- обработка завершается;\\n- вызов в Telegram API не выполняется.\\n\\n1. Если `secret` совпадает, сервис выполняет вызов Telegram Bot API:\\n\\n- Метод: `getUpdates`;\\n- HTTP: `POST https://api.telegram.org/bot<TELEGRAM_BOT_TOKEN>/getUpdates`;\\n- Допустимые параметры запроса (по необходимости): `offset`, `limit`, `timeout`, `allowed_updates`.\\n\\n1. Сервис получает список update, выделяет непрочитанные (необработанные) сообщения и формирует доменный результат.\\n2. Сервис возвращает клиенту ответ в формате `AppResponseDto` (статус выполнения + полезная нагрузка).\\n3. Если Telegram API возвращает ошибку/некорректный ответ, сервис возвращает контролируемую ошибку без утечки внутренних данных интеграции.\\n\\nНеобходимые секреты для реализации сценария:\\n\\n- `APP_ENDPOINT_SECRET` - секрет для авторизации входящего запроса к endpoint;\\n- `TELEGRAM_BOT_TOKEN` - токен Telegram-бота для вызова метода `getUpdates`.\\n\",\n \"reason\": \"Из unit 'Реализация эндпоинта `GET /telegram/messages`' системной аналитики (analysis).\",\n \"hunks\": []\n }\n]\n```\n\napply_changeset: true",
|
||||
"completed_at": "2026-04-08T13:58:52.631789+00:00"
|
||||
}
|
||||
```
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user