{"nodes": [{"id": "var_www_html_project_workflow_api_codebase_understanding_md", "label": "codebase-understanding.md", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L1"}, {"id": "workflow_api_codebase_understanding_codebase_understanding_workflow_ui_workflow_api", "label": "Codebase Understanding: workflow-ui & workflow-api", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L1"}, {"id": "workflow_api_codebase_understanding_1_system_overview", "label": "1. System Overview", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L5"}, {"id": "workflow_api_codebase_understanding_2_workflow_api_php_slim_backend", "label": "2. workflow-api (PHP/Slim Backend)", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L16"}, {"id": "workflow_api_codebase_understanding_2_1_directory_structure", "label": "2.1 Directory Structure", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L18"}, {"id": "workflow_api_codebase_understanding_codeblock_1", "label": "code:block1 (workflow-api/)", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L20"}, {"id": "workflow_api_codebase_understanding_2_2_database_schema_key_tables", "label": "2.2 Database Schema (Key Tables)", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L50"}, {"id": "workflow_api_codebase_understanding_codeblock_2", "label": "code:sql (wm_workflow)", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L52"}, {"id": "workflow_api_codebase_understanding_codeblock_3", "label": "code:block3 (wm_workflow (1))", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L92"}, {"id": "workflow_api_codebase_understanding_2_3_key_dtos", "label": "2.3 Key DTOs", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L102"}, {"id": "workflow_api_codebase_understanding_2_4_service_layer", "label": "2.4 Service Layer", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L113"}, {"id": "workflow_api_codebase_understanding_2_5_api_routes_summary", "label": "2.5 API Routes Summary", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L125"}, {"id": "workflow_api_codebase_understanding_codeblock_4", "label": "code:block4 (GET/POST/PUT   /wm/api/v1/workflow              Workflow CRU)", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L127"}, {"id": "workflow_api_codebase_understanding_2_6_permission_system", "label": "2.6 Permission System", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L145"}, {"id": "workflow_api_codebase_understanding_2_7_export_print_server_side", "label": "2.7 Export / Print (Server-Side)", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L152"}, {"id": "workflow_api_codebase_understanding_3_workflow_ui_vue_js_frontend", "label": "3. workflow-ui (Vue.js Frontend)", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L166"}, {"id": "workflow_api_codebase_understanding_3_1_directory_structure", "label": "3.1 Directory Structure", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L168"}, {"id": "workflow_api_codebase_understanding_codeblock_5", "label": "code:block5 (workflow-ui/)", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L170"}, {"id": "workflow_api_codebase_understanding_3_2_dynamic_component_system_app_vue", "label": "3.2 Dynamic Component System (App.vue)", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L221"}, {"id": "workflow_api_codebase_understanding_codeblock_6", "label": "code:vue (<component :is=\"layout\">               <!-- DefaultLayout, P)", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L225"}, {"id": "workflow_api_codebase_understanding_3_3_vuex_store_modules", "label": "3.3 Vuex Store Modules", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L235"}, {"id": "workflow_api_codebase_understanding_3_4_print_feature_client_side_applicant", "label": "3.4 Print Feature (Client-Side \u2014 Applicant)", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L244"}, {"id": "workflow_api_codebase_understanding_codeblock_7", "label": "code:block7 (workFlowRequest.vue (Print button))", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L248"}, {"id": "workflow_api_codebase_understanding_3_5_api_url_registries", "label": "3.5 API URL Registries", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L286"}, {"id": "workflow_api_codebase_understanding_codeblock_8", "label": "code:block8 (GET_WORKFLOWS:           /wm/api/v1/workflow)", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L289"}, {"id": "workflow_api_codebase_understanding_codeblock_9", "label": "code:block9 (GET_WORKFLOWS:           /wm/api/v1/workflow)", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L298"}, {"id": "workflow_api_codebase_understanding_3_6_workflow_configuration_admin", "label": "3.6 Workflow Configuration (Admin)", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L307"}, {"id": "workflow_api_codebase_understanding_codeblock_10", "label": "code:js (rule: {)", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L311"}, {"id": "workflow_api_codebase_understanding_4_key_patterns_conventions", "label": "4. Key Patterns & Conventions", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L330"}, {"id": "workflow_api_codebase_understanding_5_applicant_vs_admin_ui_separation", "label": "5. Applicant vs Admin UI Separation", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L347"}, {"id": "workflow_api_codebase_understanding_6_existing_extension_points_relevant_to_print_templates", "label": "6. Existing Extension Points Relevant to Print Templates", "file_type": "document", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L362"}], "edges": [{"source": "var_www_html_project_workflow_api_codebase_understanding_md", "target": "workflow_api_codebase_understanding_codebase_understanding_workflow_ui_workflow_api", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L1", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_codebase_understanding_workflow_ui_workflow_api", "target": "workflow_api_codebase_understanding_1_system_overview", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L5", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_codebase_understanding_workflow_ui_workflow_api", "target": "workflow_api_codebase_understanding_2_workflow_api_php_slim_backend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L16", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_2_workflow_api_php_slim_backend", "target": "workflow_api_codebase_understanding_2_1_directory_structure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L18", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_2_1_directory_structure", "target": "workflow_api_codebase_understanding_codeblock_1", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L20", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_2_workflow_api_php_slim_backend", "target": "workflow_api_codebase_understanding_2_2_database_schema_key_tables", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L50", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_2_2_database_schema_key_tables", "target": "workflow_api_codebase_understanding_codeblock_2", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L52", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_2_2_database_schema_key_tables", "target": "workflow_api_codebase_understanding_codeblock_3", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L92", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_2_workflow_api_php_slim_backend", "target": "workflow_api_codebase_understanding_2_3_key_dtos", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L102", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_2_workflow_api_php_slim_backend", "target": "workflow_api_codebase_understanding_2_4_service_layer", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L113", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_2_workflow_api_php_slim_backend", "target": "workflow_api_codebase_understanding_2_5_api_routes_summary", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L125", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_2_5_api_routes_summary", "target": "workflow_api_codebase_understanding_codeblock_4", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L127", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_2_workflow_api_php_slim_backend", "target": "workflow_api_codebase_understanding_2_6_permission_system", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L145", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_2_workflow_api_php_slim_backend", "target": "workflow_api_codebase_understanding_2_7_export_print_server_side", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L152", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_codebase_understanding_workflow_ui_workflow_api", "target": "workflow_api_codebase_understanding_3_workflow_ui_vue_js_frontend", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L166", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_3_workflow_ui_vue_js_frontend", "target": "workflow_api_codebase_understanding_3_1_directory_structure", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L168", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_3_1_directory_structure", "target": "workflow_api_codebase_understanding_codeblock_5", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L170", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_3_workflow_ui_vue_js_frontend", "target": "workflow_api_codebase_understanding_3_2_dynamic_component_system_app_vue", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L221", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_3_2_dynamic_component_system_app_vue", "target": "workflow_api_codebase_understanding_codeblock_6", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L225", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_3_workflow_ui_vue_js_frontend", "target": "workflow_api_codebase_understanding_3_3_vuex_store_modules", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L235", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_3_workflow_ui_vue_js_frontend", "target": "workflow_api_codebase_understanding_3_4_print_feature_client_side_applicant", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L244", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_3_4_print_feature_client_side_applicant", "target": "workflow_api_codebase_understanding_codeblock_7", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L248", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_3_workflow_ui_vue_js_frontend", "target": "workflow_api_codebase_understanding_3_5_api_url_registries", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L286", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_3_5_api_url_registries", "target": "workflow_api_codebase_understanding_codeblock_8", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L289", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_3_5_api_url_registries", "target": "workflow_api_codebase_understanding_codeblock_9", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L298", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_3_workflow_ui_vue_js_frontend", "target": "workflow_api_codebase_understanding_3_6_workflow_configuration_admin", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L307", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_3_6_workflow_configuration_admin", "target": "workflow_api_codebase_understanding_codeblock_10", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L311", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_codebase_understanding_workflow_ui_workflow_api", "target": "workflow_api_codebase_understanding_4_key_patterns_conventions", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L330", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_codebase_understanding_workflow_ui_workflow_api", "target": "workflow_api_codebase_understanding_5_applicant_vs_admin_ui_separation", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L347", "weight": 1.0}, {"source": "workflow_api_codebase_understanding_codebase_understanding_workflow_ui_workflow_api", "target": "workflow_api_codebase_understanding_6_existing_extension_points_relevant_to_print_templates", "relation": "contains", "confidence": "EXTRACTED", "source_file": "/var/www/html/project/workflow-api/codebase-understanding.md", "source_location": "L362", "weight": 1.0}], "input_tokens": 0, "output_tokens": 0}