{"nodes": [{"id": "root_socialdesk_docs_03_architecture_md", "label": "03-architecture.md", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L1"}, {"id": "docs_03_architecture_socialdesk_ai_architecture", "label": "SocialDesk AI - Architecture", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L1"}, {"id": "docs_03_architecture_1_architecture_goal", "label": "1. Architecture goal", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L3"}, {"id": "docs_03_architecture_2_architecture_principles", "label": "2. Architecture principles", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L9"}, {"id": "docs_03_architecture_3_recommended_stack", "label": "3. Recommended stack", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L22"}, {"id": "docs_03_architecture_3_1_frontend", "label": "3.1 Frontend", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L24"}, {"id": "docs_03_architecture_3_2_backend", "label": "3.2 Backend", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L36"}, {"id": "docs_03_architecture_3_3_ai", "label": "3.3 AI", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L46"}, {"id": "docs_03_architecture_3_4_storage", "label": "3.4 Storage", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L56"}, {"id": "docs_03_architecture_3_5_search", "label": "3.5 Search", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L60"}, {"id": "docs_03_architecture_3_6_deployment", "label": "3.6 Deployment", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L65"}, {"id": "docs_03_architecture_4_high_level_architecture", "label": "4. High-level architecture", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L74"}, {"id": "docs_03_architecture_codeblock_1", "label": "code:text (Users)", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L76"}, {"id": "docs_03_architecture_5_module_architecture", "label": "5. Module architecture", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L131"}, {"id": "docs_03_architecture_5_1_auth_module", "label": "5.1 Auth module", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L133"}, {"id": "docs_03_architecture_5_2_tenant_module", "label": "5.2 Tenant module", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L147"}, {"id": "docs_03_architecture_5_3_rbac_module", "label": "5.3 RBAC module", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L163"}, {"id": "docs_03_architecture_5_4_social_oauth_module", "label": "5.4 Social OAuth module", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L175"}, {"id": "docs_03_architecture_5_5_social_provider_adapter_layer", "label": "5.5 Social provider adapter layer", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L188"}, {"id": "docs_03_architecture_codeblock_2", "label": "code:ts (interface SocialProviderAdapter {)", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L192"}, {"id": "docs_03_architecture_5_6_publishing_module", "label": "5.6 Publishing module", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L218"}, {"id": "docs_03_architecture_codeblock_3", "label": "code:text (User creates post)", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L236"}, {"id": "docs_03_architecture_5_7_unified_inbox_module", "label": "5.7 Unified inbox module", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L262"}, {"id": "docs_03_architecture_codeblock_4", "label": "code:text (Customer sends message/comment)", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L281"}, {"id": "docs_03_architecture_5_8_routing_module", "label": "5.8 Routing module", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L301"}, {"id": "docs_03_architecture_5_9_workflow_engine_module", "label": "5.9 Workflow engine module", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L331"}, {"id": "docs_03_architecture_codeblock_5", "label": "code:text (Trigger event)", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L353"}, {"id": "docs_03_architecture_5_10_ai_module", "label": "5.10 AI module", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L381"}, {"id": "docs_03_architecture_codeblock_6", "label": "code:ts (interface AiProviderAdapter {)", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L400"}, {"id": "docs_03_architecture_5_11_knowledge_base_module", "label": "5.11 Knowledge base module", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L410"}, {"id": "docs_03_architecture_codeblock_7", "label": "code:text (Customer message)", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L429"}, {"id": "docs_03_architecture_5_12_ticketing_module", "label": "5.12 Ticketing module", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L447"}, {"id": "docs_03_architecture_5_13_analytics_module", "label": "5.13 Analytics module", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L462"}, {"id": "docs_03_architecture_5_14_billing_module", "label": "5.14 Billing module", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L477"}, {"id": "docs_03_architecture_5_15_notification_module", "label": "5.15 Notification module", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L489"}, {"id": "docs_03_architecture_6_workflow_builder_architecture", "label": "6. Workflow builder architecture", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L503"}, {"id": "docs_03_architecture_6_1_frontend", "label": "6.1 Frontend", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L505"}, {"id": "docs_03_architecture_6_2_backend", "label": "6.2 Backend", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L522"}, {"id": "docs_03_architecture_6_3_node_executor_registry", "label": "6.3 Node executor registry", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L535"}, {"id": "docs_03_architecture_codeblock_8", "label": "code:ts (interface WorkflowNodeExecutor {)", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L541"}, {"id": "docs_03_architecture_7_real_time_architecture", "label": "7. Real-time architecture", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L562"}, {"id": "docs_03_architecture_codeblock_9", "label": "code:text (Backend event)", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L576"}, {"id": "docs_03_architecture_8_queue_architecture", "label": "8. Queue architecture", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L590"}, {"id": "docs_03_architecture_9_data_isolation", "label": "9. Data isolation", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L623"}, {"id": "docs_03_architecture_10_security_architecture", "label": "10. Security architecture", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L643"}, {"id": "docs_03_architecture_11_api_structure", "label": "11. API structure", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L662"}, {"id": "docs_03_architecture_11_1_auth", "label": "11.1 Auth", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L664"}, {"id": "docs_03_architecture_codeblock_10", "label": "code:text (POST /api/auth/login)", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L666"}, {"id": "docs_03_architecture_11_2_tenant", "label": "11.2 Tenant", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L673"}, {"id": "docs_03_architecture_codeblock_11", "label": "code:text (GET /api/tenants/current)", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L675"}, {"id": "docs_03_architecture_11_3_users_and_roles", "label": "11.3 Users and roles", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L681"}, {"id": "docs_03_architecture_codeblock_12", "label": "code:text (GET /api/users)", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L683"}, {"id": "docs_03_architecture_11_4_social_accounts", "label": "11.4 Social accounts", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L693"}, {"id": "docs_03_architecture_codeblock_13", "label": "code:text (GET /api/social/accounts)", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L695"}, {"id": "docs_03_architecture_11_5_publishing", "label": "11.5 Publishing", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L703"}, {"id": "docs_03_architecture_codeblock_14", "label": "code:text (POST /api/posts)", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L705"}, {"id": "docs_03_architecture_11_6_inbox", "label": "11.6 Inbox", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L717"}, {"id": "docs_03_architecture_codeblock_15", "label": "code:text (GET /api/inbox/conversations)", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L719"}, {"id": "docs_03_architecture_11_7_workflow", "label": "11.7 Workflow", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L729"}, {"id": "docs_03_architecture_codeblock_16", "label": "code:text (GET /api/workflows)", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L731"}, {"id": "docs_03_architecture_11_8_ai", "label": "11.8 AI", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L742"}, {"id": "docs_03_architecture_codeblock_17", "label": "code:text (POST /api/ai/suggest-reply)", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L744"}, {"id": "docs_03_architecture_11_9_knowledge_base", "label": "11.9 Knowledge base", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L752"}, {"id": "docs_03_architecture_codeblock_18", "label": "code:text (GET /api/knowledge/articles)", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L754"}, {"id": "docs_03_architecture_11_10_ticketing", "label": "11.10 Ticketing", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L762"}, {"id": "docs_03_architecture_codeblock_19", "label": "code:text (GET /api/tickets)", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L764"}, {"id": "docs_03_architecture_11_11_analytics", "label": "11.11 Analytics", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L772"}, {"id": "docs_03_architecture_codeblock_20", "label": "code:text (GET /api/analytics/overview)", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L774"}, {"id": "docs_03_architecture_11_12_super_admin", "label": "11.12 Super admin", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L783"}, {"id": "docs_03_architecture_codeblock_21", "label": "code:text (GET /api/admin/tenants)", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L785"}, {"id": "docs_03_architecture_12_deployment_architecture", "label": "12. Deployment architecture", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L795"}, {"id": "docs_03_architecture_12_1_mvp_docker_compose", "label": "12.1 MVP Docker Compose", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L797"}, {"id": "docs_03_architecture_12_2_production_architecture", "label": "12.2 Production architecture", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L809"}, {"id": "docs_03_architecture_13_recommended_monorepo_structure", "label": "13. Recommended monorepo structure", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L824"}, {"id": "docs_03_architecture_codeblock_22", "label": "code:text (socialdesk-ai/)", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L826"}, {"id": "docs_03_architecture_14_final_architecture_recommendation", "label": "14. Final architecture recommendation", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L846"}, {"id": "docs_03_architecture_codeblock_23", "label": "code:text (One app)", "file_type": "document", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L854"}], "edges": [{"source": "root_socialdesk_docs_03_architecture_md", "target": "docs_03_architecture_socialdesk_ai_architecture", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L1", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_1_architecture_goal", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L3", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_2_architecture_principles", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L9", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_3_recommended_stack", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L22", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_3_1_frontend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L24", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_3_2_backend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L36", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_3_3_ai", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L46", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_3_4_storage", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L56", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_3_5_search", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L60", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_3_6_deployment", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L65", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_4_high_level_architecture", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L74", "weight": 1.0}, {"source": "docs_03_architecture_4_high_level_architecture", "target": "docs_03_architecture_codeblock_1", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L76", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_5_module_architecture", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L131", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_5_1_auth_module", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L133", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_5_2_tenant_module", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L147", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_5_3_rbac_module", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L163", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_5_4_social_oauth_module", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L175", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_5_5_social_provider_adapter_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L188", "weight": 1.0}, {"source": "docs_03_architecture_5_5_social_provider_adapter_layer", "target": "docs_03_architecture_codeblock_2", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L192", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_5_6_publishing_module", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L218", "weight": 1.0}, {"source": "docs_03_architecture_5_6_publishing_module", "target": "docs_03_architecture_codeblock_3", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L236", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_5_7_unified_inbox_module", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L262", "weight": 1.0}, {"source": "docs_03_architecture_5_7_unified_inbox_module", "target": "docs_03_architecture_codeblock_4", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L281", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_5_8_routing_module", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L301", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_5_9_workflow_engine_module", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L331", "weight": 1.0}, {"source": "docs_03_architecture_5_9_workflow_engine_module", "target": "docs_03_architecture_codeblock_5", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L353", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_5_10_ai_module", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L381", "weight": 1.0}, {"source": "docs_03_architecture_5_10_ai_module", "target": "docs_03_architecture_codeblock_6", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L400", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_5_11_knowledge_base_module", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L410", "weight": 1.0}, {"source": "docs_03_architecture_5_11_knowledge_base_module", "target": "docs_03_architecture_codeblock_7", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L429", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_5_12_ticketing_module", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L447", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_5_13_analytics_module", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L462", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_5_14_billing_module", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L477", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_5_15_notification_module", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L489", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_6_workflow_builder_architecture", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L503", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_6_1_frontend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L505", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_6_2_backend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L522", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_6_3_node_executor_registry", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L535", "weight": 1.0}, {"source": "docs_03_architecture_6_3_node_executor_registry", "target": "docs_03_architecture_codeblock_8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L541", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_7_real_time_architecture", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L562", "weight": 1.0}, {"source": "docs_03_architecture_7_real_time_architecture", "target": "docs_03_architecture_codeblock_9", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L576", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_8_queue_architecture", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L590", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_9_data_isolation", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L623", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_10_security_architecture", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L643", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_11_api_structure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L662", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_11_1_auth", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L664", "weight": 1.0}, {"source": "docs_03_architecture_11_1_auth", "target": "docs_03_architecture_codeblock_10", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L666", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_11_2_tenant", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L673", "weight": 1.0}, {"source": "docs_03_architecture_11_2_tenant", "target": "docs_03_architecture_codeblock_11", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L675", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_11_3_users_and_roles", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L681", "weight": 1.0}, {"source": "docs_03_architecture_11_3_users_and_roles", "target": "docs_03_architecture_codeblock_12", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L683", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_11_4_social_accounts", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L693", "weight": 1.0}, {"source": "docs_03_architecture_11_4_social_accounts", "target": "docs_03_architecture_codeblock_13", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L695", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_11_5_publishing", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L703", "weight": 1.0}, {"source": "docs_03_architecture_11_5_publishing", "target": "docs_03_architecture_codeblock_14", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L705", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_11_6_inbox", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L717", "weight": 1.0}, {"source": "docs_03_architecture_11_6_inbox", "target": "docs_03_architecture_codeblock_15", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L719", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_11_7_workflow", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L729", "weight": 1.0}, {"source": "docs_03_architecture_11_7_workflow", "target": "docs_03_architecture_codeblock_16", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L731", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_11_8_ai", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L742", "weight": 1.0}, {"source": "docs_03_architecture_11_8_ai", "target": "docs_03_architecture_codeblock_17", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L744", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_11_9_knowledge_base", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L752", "weight": 1.0}, {"source": "docs_03_architecture_11_9_knowledge_base", "target": "docs_03_architecture_codeblock_18", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L754", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_11_10_ticketing", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L762", "weight": 1.0}, {"source": "docs_03_architecture_11_10_ticketing", "target": "docs_03_architecture_codeblock_19", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L764", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_11_11_analytics", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L772", "weight": 1.0}, {"source": "docs_03_architecture_11_11_analytics", "target": "docs_03_architecture_codeblock_20", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L774", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_11_12_super_admin", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L783", "weight": 1.0}, {"source": "docs_03_architecture_11_12_super_admin", "target": "docs_03_architecture_codeblock_21", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L785", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_12_deployment_architecture", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L795", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_12_1_mvp_docker_compose", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L797", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_12_2_production_architecture", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L809", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_13_recommended_monorepo_structure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L824", "weight": 1.0}, {"source": "docs_03_architecture_13_recommended_monorepo_structure", "target": "docs_03_architecture_codeblock_22", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L826", "weight": 1.0}, {"source": "docs_03_architecture_socialdesk_ai_architecture", "target": "docs_03_architecture_14_final_architecture_recommendation", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L846", "weight": 1.0}, {"source": "docs_03_architecture_14_final_architecture_recommendation", "target": "docs_03_architecture_codeblock_23", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/root/socialdesk/docs/03-architecture.md", "source_location": "L854", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0}