graph-dependency-analyzer 0.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (108) hide show
  1. graph_dependency_analyzer-0.2.0/PKG-INFO +158 -0
  2. graph_dependency_analyzer-0.2.0/README.md +112 -0
  3. graph_dependency_analyzer-0.2.0/graph_dependency_analyzer.egg-info/PKG-INFO +158 -0
  4. graph_dependency_analyzer-0.2.0/graph_dependency_analyzer.egg-info/SOURCES.txt +106 -0
  5. graph_dependency_analyzer-0.2.0/graph_dependency_analyzer.egg-info/dependency_links.txt +1 -0
  6. graph_dependency_analyzer-0.2.0/graph_dependency_analyzer.egg-info/entry_points.txt +2 -0
  7. graph_dependency_analyzer-0.2.0/graph_dependency_analyzer.egg-info/requires.txt +24 -0
  8. graph_dependency_analyzer-0.2.0/graph_dependency_analyzer.egg-info/top_level.txt +1 -0
  9. graph_dependency_analyzer-0.2.0/pyproject.toml +199 -0
  10. graph_dependency_analyzer-0.2.0/setup.cfg +4 -0
  11. graph_dependency_analyzer-0.2.0/src/__init__.py +0 -0
  12. graph_dependency_analyzer-0.2.0/src/application/__init__.py +0 -0
  13. graph_dependency_analyzer-0.2.0/src/application/dtos/__init__.py +0 -0
  14. graph_dependency_analyzer-0.2.0/src/application/dtos/affected_component.py +59 -0
  15. graph_dependency_analyzer-0.2.0/src/application/dtos/batch_processing_result.py +17 -0
  16. graph_dependency_analyzer-0.2.0/src/application/dtos/impact_analysis_response.py +56 -0
  17. graph_dependency_analyzer-0.2.0/src/application/dtos/impact_query_request.py +38 -0
  18. graph_dependency_analyzer-0.2.0/src/application/dtos/index_batch_request.py +53 -0
  19. graph_dependency_analyzer-0.2.0/src/application/dtos/index_batch_response.py +72 -0
  20. graph_dependency_analyzer-0.2.0/src/application/dtos/index_result.py +20 -0
  21. graph_dependency_analyzer-0.2.0/src/application/dtos/repository_index_result.py +79 -0
  22. graph_dependency_analyzer-0.2.0/src/application/exceptions.py +41 -0
  23. graph_dependency_analyzer-0.2.0/src/application/services/__init__.py +0 -0
  24. graph_dependency_analyzer-0.2.0/src/application/services/file_scanner_service.py +258 -0
  25. graph_dependency_analyzer-0.2.0/src/application/services/progress_tracker.py +132 -0
  26. graph_dependency_analyzer-0.2.0/src/application/use_cases/__init__.py +0 -0
  27. graph_dependency_analyzer-0.2.0/src/application/use_cases/clear_all_data_use_case.py +180 -0
  28. graph_dependency_analyzer-0.2.0/src/application/use_cases/index_batch_use_case.py +153 -0
  29. graph_dependency_analyzer-0.2.0/src/application/use_cases/index_repository_use_case.py +683 -0
  30. graph_dependency_analyzer-0.2.0/src/application/use_cases/indexing_orchestrator.py +181 -0
  31. graph_dependency_analyzer-0.2.0/src/application/use_cases/list_repositories_use_case.py +84 -0
  32. graph_dependency_analyzer-0.2.0/src/cli.py +512 -0
  33. graph_dependency_analyzer-0.2.0/src/config/__init__.py +5 -0
  34. graph_dependency_analyzer-0.2.0/src/config/container.py +211 -0
  35. graph_dependency_analyzer-0.2.0/src/config/logging_config.py +123 -0
  36. graph_dependency_analyzer-0.2.0/src/config/settings.py +165 -0
  37. graph_dependency_analyzer-0.2.0/src/domain/__init__.py +0 -0
  38. graph_dependency_analyzer-0.2.0/src/domain/entities/__init__.py +20 -0
  39. graph_dependency_analyzer-0.2.0/src/domain/entities/ast_node.py +32 -0
  40. graph_dependency_analyzer-0.2.0/src/domain/entities/code_chunk.py +45 -0
  41. graph_dependency_analyzer-0.2.0/src/domain/entities/code_file.py +44 -0
  42. graph_dependency_analyzer-0.2.0/src/domain/entities/dependency_graph.py +110 -0
  43. graph_dependency_analyzer-0.2.0/src/domain/entities/repository.py +46 -0
  44. graph_dependency_analyzer-0.2.0/src/domain/exceptions.py +36 -0
  45. graph_dependency_analyzer-0.2.0/src/domain/repositories/__init__.py +22 -0
  46. graph_dependency_analyzer-0.2.0/src/domain/repositories/i_code_parser.py +50 -0
  47. graph_dependency_analyzer-0.2.0/src/domain/repositories/i_dependency_extractor.py +35 -0
  48. graph_dependency_analyzer-0.2.0/src/domain/repositories/i_embedding_provider.py +31 -0
  49. graph_dependency_analyzer-0.2.0/src/domain/repositories/i_graph_repository.py +78 -0
  50. graph_dependency_analyzer-0.2.0/src/domain/repositories/i_vector_repository.py +55 -0
  51. graph_dependency_analyzer-0.2.0/src/domain/services/__init__.py +8 -0
  52. graph_dependency_analyzer-0.2.0/src/domain/services/dependency_extractor.py +962 -0
  53. graph_dependency_analyzer-0.2.0/src/domain/services/semantic_chunk_builder.py +719 -0
  54. graph_dependency_analyzer-0.2.0/src/domain/value_objects/__init__.py +12 -0
  55. graph_dependency_analyzer-0.2.0/src/domain/value_objects/chunk_type.py +24 -0
  56. graph_dependency_analyzer-0.2.0/src/domain/value_objects/dependency_type.py +22 -0
  57. graph_dependency_analyzer-0.2.0/src/domain/value_objects/node_type.py +22 -0
  58. graph_dependency_analyzer-0.2.0/src/domain/value_objects/qualified_name.py +78 -0
  59. graph_dependency_analyzer-0.2.0/src/infrastructure/__init__.py +0 -0
  60. graph_dependency_analyzer-0.2.0/src/infrastructure/exceptions.py +41 -0
  61. graph_dependency_analyzer-0.2.0/src/infrastructure/external_apis/__init__.py +0 -0
  62. graph_dependency_analyzer-0.2.0/src/infrastructure/external_apis/ollama_embedding_provider.py +134 -0
  63. graph_dependency_analyzer-0.2.0/src/infrastructure/external_apis/openai_embedding_provider.py +231 -0
  64. graph_dependency_analyzer-0.2.0/src/infrastructure/parsing/__init__.py +20 -0
  65. graph_dependency_analyzer-0.2.0/src/infrastructure/parsing/config_file_parser.py +347 -0
  66. graph_dependency_analyzer-0.2.0/src/infrastructure/parsing/gradle_dependency_parser.py +159 -0
  67. graph_dependency_analyzer-0.2.0/src/infrastructure/parsing/groovy_parser.py +198 -0
  68. graph_dependency_analyzer-0.2.0/src/infrastructure/parsing/maven_dependency_parser.py +147 -0
  69. graph_dependency_analyzer-0.2.0/src/infrastructure/parsing/microfrontend_config_parser.py +242 -0
  70. graph_dependency_analyzer-0.2.0/src/infrastructure/parsing/npm_package_dependency_parser.py +255 -0
  71. graph_dependency_analyzer-0.2.0/src/infrastructure/parsing/python_parser.py +211 -0
  72. graph_dependency_analyzer-0.2.0/src/infrastructure/parsing/sql_schema_parser.py +658 -0
  73. graph_dependency_analyzer-0.2.0/src/infrastructure/parsing/tree_sitter_java_parser.py +434 -0
  74. graph_dependency_analyzer-0.2.0/src/infrastructure/parsing/tree_sitter_typescript_parser.py +600 -0
  75. graph_dependency_analyzer-0.2.0/src/infrastructure/persistence/__init__.py +0 -0
  76. graph_dependency_analyzer-0.2.0/src/infrastructure/persistence/graph_export_repository.py +443 -0
  77. graph_dependency_analyzer-0.2.0/src/infrastructure/persistence/neo4j_dependency_repository.py +657 -0
  78. graph_dependency_analyzer-0.2.0/src/infrastructure/persistence/qdrant_vector_repository.py +357 -0
  79. graph_dependency_analyzer-0.2.0/src/infrastructure/persistence/repository_relationship_repository.py +1312 -0
  80. graph_dependency_analyzer-0.2.0/src/presentation/__init__.py +0 -0
  81. graph_dependency_analyzer-0.2.0/src/presentation/api/__init__.py +0 -0
  82. graph_dependency_analyzer-0.2.0/src/presentation/api/rest/__init__.py +0 -0
  83. graph_dependency_analyzer-0.2.0/src/presentation/api/rest/exception_handlers.py +174 -0
  84. graph_dependency_analyzer-0.2.0/src/presentation/api/rest/main.py +80 -0
  85. graph_dependency_analyzer-0.2.0/src/presentation/api/rest/routers/__init__.py +5 -0
  86. graph_dependency_analyzer-0.2.0/src/presentation/api/rest/routers/admin.py +103 -0
  87. graph_dependency_analyzer-0.2.0/src/presentation/api/rest/routers/analysis.py +980 -0
  88. graph_dependency_analyzer-0.2.0/src/presentation/api/rest/routers/export.py +442 -0
  89. graph_dependency_analyzer-0.2.0/src/presentation/api/rest/routers/health.py +117 -0
  90. graph_dependency_analyzer-0.2.0/src/presentation/api/rest/routers/indexing.py +148 -0
  91. graph_dependency_analyzer-0.2.0/src/presentation/api/rest/routers/relationships.py +1089 -0
  92. graph_dependency_analyzer-0.2.0/tests/test_api_routers.py +122 -0
  93. graph_dependency_analyzer-0.2.0/tests/test_config.py +208 -0
  94. graph_dependency_analyzer-0.2.0/tests/test_config_file_parser.py +249 -0
  95. graph_dependency_analyzer-0.2.0/tests/test_dependencies.py +98 -0
  96. graph_dependency_analyzer-0.2.0/tests/test_dependency_extractor.py +378 -0
  97. graph_dependency_analyzer-0.2.0/tests/test_dependency_extractor_integration.py +298 -0
  98. graph_dependency_analyzer-0.2.0/tests/test_dependency_injection.py +171 -0
  99. graph_dependency_analyzer-0.2.0/tests/test_domain_entities.py +403 -0
  100. graph_dependency_analyzer-0.2.0/tests/test_e2e_batch_indexing.py +371 -0
  101. graph_dependency_analyzer-0.2.0/tests/test_gradle_dependency_parser.py +245 -0
  102. graph_dependency_analyzer-0.2.0/tests/test_logging.py +235 -0
  103. graph_dependency_analyzer-0.2.0/tests/test_maven_dependency_parser.py +249 -0
  104. graph_dependency_analyzer-0.2.0/tests/test_project_structure.py +128 -0
  105. graph_dependency_analyzer-0.2.0/tests/test_repository_interfaces.py +245 -0
  106. graph_dependency_analyzer-0.2.0/tests/test_semantic_chunk_builder.py +416 -0
  107. graph_dependency_analyzer-0.2.0/tests/test_tree_sitter_parser.py +294 -0
  108. graph_dependency_analyzer-0.2.0/tests/test_value_objects.py +218 -0
@@ -0,0 +1,158 @@
1
+ Metadata-Version: 2.4
2
+ Name: graph-dependency-analyzer
3
+ Version: 0.2.0
4
+ Summary: Knowledge Graph for multi-language repository dependency analysis — Java, TypeScript, Python, Groovy, SQL/Oracle
5
+ Author: Graph Project Team
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/ciandt/new-arch-explorer-service
8
+ Project-URL: Repository, https://github.com/ciandt/new-arch-explorer-service
9
+ Project-URL: Issues, https://github.com/ciandt/new-arch-explorer-service/issues
10
+ Keywords: dependency-analysis,knowledge-graph,tree-sitter,neo4j,qdrant,architecture,impact-analysis,java,typescript,python,groovy,oracle
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
14
+ Classifier: Topic :: Software Development :: Quality Assurance
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: License :: OSI Approved :: MIT License
20
+ Classifier: Operating System :: OS Independent
21
+ Requires-Python: >=3.11
22
+ Description-Content-Type: text/markdown
23
+ Requires-Dist: fastapi>=0.115.0
24
+ Requires-Dist: uvicorn>=0.32.0
25
+ Requires-Dist: qdrant-client>=1.13.0
26
+ Requires-Dist: neo4j>=5.15.0
27
+ Requires-Dist: httpx>=0.28.0
28
+ Requires-Dist: structlog>=24.1.0
29
+ Requires-Dist: python-dotenv>=1.0.0
30
+ Requires-Dist: pydantic>=2.0.0
31
+ Requires-Dist: pydantic-settings>=2.0.0
32
+ Requires-Dist: dependency-injector>=4.41.0
33
+ Requires-Dist: tenacity>=8.2.0
34
+ Requires-Dist: tree-sitter>=0.25.2
35
+ Requires-Dist: tree-sitter-java>=0.23.5
36
+ Requires-Dist: tree-sitter-typescript>=0.23.2
37
+ Requires-Dist: lxml>=5.0.0
38
+ Requires-Dist: pyyaml>=6.0.0
39
+ Requires-Dist: click>=8.1.0
40
+ Provides-Extra: dev
41
+ Requires-Dist: pytest>=8.0.0; extra == "dev"
42
+ Requires-Dist: pytest-asyncio>=0.24.0; extra == "dev"
43
+ Requires-Dist: pytest-cov>=7.0.0; extra == "dev"
44
+ Requires-Dist: mypy>=1.8.0; extra == "dev"
45
+ Requires-Dist: ruff>=0.9.0; extra == "dev"
46
+
47
+ # Graph Project - Dependency Analysis System
48
+
49
+ ## 📍 Project Location
50
+
51
+ **Path**: `C:\DevWorkspace\Graph Project\`
52
+
53
+ ## 🎯 Purpose
54
+
55
+ Sistema de análise de dependências de código com Clean Architecture para repositórios Java.
56
+
57
+ Este é um **novo projeto independente** que implementa:
58
+ - 🔍 Análise AST com Tree-sitter para extração de estruturas de código
59
+ - 🔗 Detecção de dependências internas (código-para-código) e externas (APIs, DBs, bibliotecas)
60
+ - 📊 Armazenamento de grafo de dependências no Neo4j para análise de impacto
61
+ - 🧠 Geração de embeddings (OpenAI) e armazenamento no Qdrant para busca semântica
62
+ - 🚀 Processamento paralelo de múltiplos repositórios
63
+
64
+ ## 🏗️ Architecture
65
+
66
+ Clean Architecture com 4 camadas:
67
+
68
+ ```
69
+ src/
70
+ ├── domain/ # 💎 Entities, Value Objects, Interfaces
71
+ │ ├── entities/
72
+ │ ├── value_objects/
73
+ │ ├── repositories/
74
+ │ └── services/
75
+ ├── application/ # ⚙️ Use Cases, DTOs, Services
76
+ │ ├── use_cases/
77
+ │ ├── dtos/
78
+ │ └── services/
79
+ ├── infrastructure/ # 🔧 Adaptadores (Qdrant, Neo4j, OpenAI, Tree-sitter)
80
+ │ ├── parsing/
81
+ │ ├── persistence/
82
+ │ └── external_apis/
83
+ └── presentation/ # 🌐 Controllers, Routers FastAPI
84
+ └── api/
85
+ └── rest/
86
+ ```
87
+
88
+ ## 🛠️ Technology Stack
89
+
90
+ - **Language**: Python 3.11+
91
+ - **Framework**: FastAPI
92
+ - **AST Parsing**: Tree-sitter + tree-sitter-java
93
+ - **Graph DB**: Neo4j 5.15+
94
+ - **Vector DB**: Qdrant 1.13+
95
+ - **Embeddings**: OpenAI text-embedding-3-small (1536 dims)
96
+ - **Build Tools**: Maven/Gradle parsing
97
+
98
+ ## 🎓 Phase 1 Scope
99
+
100
+ - ✅ **Language Support**: Java only
101
+ - ✅ **Analysis**: Static (deterministic) - NO AI/LLM
102
+ - ✅ **Dependencies**: Internal + External (APIs, DBs, libraries)
103
+ - ✅ **Storage**: Dual (Neo4j graph + Qdrant vectors)
104
+
105
+ ## 🚀 Future Phases
106
+
107
+ - 🔮 Phase 2: Multi-language (Python, JS/TS, Go, C#)
108
+ - 🔮 Phase 3: Advanced features (code quality, architectural patterns, complexity metrics)
109
+
110
+ ## 📚 Documentation
111
+
112
+ - **Specifications**: `.sdd/specs/clean-architecture-batch-indexing/`
113
+ - `requirements.md` - Functional requirements
114
+ - `design.md` - Technical design
115
+ - `tasks.md` - Implementation tasks
116
+ - `research.md` - Research findings
117
+
118
+ ## 🚀 Quick Start
119
+
120
+ **Ver guia completo:** [QUICKSTART.md](./QUICKSTART.md)
121
+
122
+ ```bash
123
+ # 1. Configurar .env
124
+ copy .env.example .env
125
+ # Editar .env com OPENAI_API_KEY
126
+
127
+ # 2. Subir Docker
128
+ docker-compose up -d
129
+
130
+ # 3. Instalar dependências
131
+ pip install -e .
132
+
133
+ # 4. Iniciar API
134
+ uvicorn src.presentation.api.rest.main:app --reload --port 8000
135
+
136
+ # 5. Testar
137
+ # Abrir http://localhost:8000/docs
138
+ ```
139
+
140
+ ## 🧪 Testing
141
+
142
+ ```bash
143
+ # Run all tests
144
+ pytest tests/ -v
145
+
146
+ # Run with coverage
147
+ pytest tests/ --cov=src --cov-report=html
148
+ ```
149
+
150
+ ## 📋 Status
151
+
152
+ **Current Phase**: Setup & Implementation
153
+ **Task Progress**: See `tasks.md` for detailed progress
154
+
155
+ ---
156
+
157
+ **Created**: 2026-06-30
158
+ **Specification**: clean-architecture-batch-indexing
@@ -0,0 +1,112 @@
1
+ # Graph Project - Dependency Analysis System
2
+
3
+ ## 📍 Project Location
4
+
5
+ **Path**: `C:\DevWorkspace\Graph Project\`
6
+
7
+ ## 🎯 Purpose
8
+
9
+ Sistema de análise de dependências de código com Clean Architecture para repositórios Java.
10
+
11
+ Este é um **novo projeto independente** que implementa:
12
+ - 🔍 Análise AST com Tree-sitter para extração de estruturas de código
13
+ - 🔗 Detecção de dependências internas (código-para-código) e externas (APIs, DBs, bibliotecas)
14
+ - 📊 Armazenamento de grafo de dependências no Neo4j para análise de impacto
15
+ - 🧠 Geração de embeddings (OpenAI) e armazenamento no Qdrant para busca semântica
16
+ - 🚀 Processamento paralelo de múltiplos repositórios
17
+
18
+ ## 🏗️ Architecture
19
+
20
+ Clean Architecture com 4 camadas:
21
+
22
+ ```
23
+ src/
24
+ ├── domain/ # 💎 Entities, Value Objects, Interfaces
25
+ │ ├── entities/
26
+ │ ├── value_objects/
27
+ │ ├── repositories/
28
+ │ └── services/
29
+ ├── application/ # ⚙️ Use Cases, DTOs, Services
30
+ │ ├── use_cases/
31
+ │ ├── dtos/
32
+ │ └── services/
33
+ ├── infrastructure/ # 🔧 Adaptadores (Qdrant, Neo4j, OpenAI, Tree-sitter)
34
+ │ ├── parsing/
35
+ │ ├── persistence/
36
+ │ └── external_apis/
37
+ └── presentation/ # 🌐 Controllers, Routers FastAPI
38
+ └── api/
39
+ └── rest/
40
+ ```
41
+
42
+ ## 🛠️ Technology Stack
43
+
44
+ - **Language**: Python 3.11+
45
+ - **Framework**: FastAPI
46
+ - **AST Parsing**: Tree-sitter + tree-sitter-java
47
+ - **Graph DB**: Neo4j 5.15+
48
+ - **Vector DB**: Qdrant 1.13+
49
+ - **Embeddings**: OpenAI text-embedding-3-small (1536 dims)
50
+ - **Build Tools**: Maven/Gradle parsing
51
+
52
+ ## 🎓 Phase 1 Scope
53
+
54
+ - ✅ **Language Support**: Java only
55
+ - ✅ **Analysis**: Static (deterministic) - NO AI/LLM
56
+ - ✅ **Dependencies**: Internal + External (APIs, DBs, libraries)
57
+ - ✅ **Storage**: Dual (Neo4j graph + Qdrant vectors)
58
+
59
+ ## 🚀 Future Phases
60
+
61
+ - 🔮 Phase 2: Multi-language (Python, JS/TS, Go, C#)
62
+ - 🔮 Phase 3: Advanced features (code quality, architectural patterns, complexity metrics)
63
+
64
+ ## 📚 Documentation
65
+
66
+ - **Specifications**: `.sdd/specs/clean-architecture-batch-indexing/`
67
+ - `requirements.md` - Functional requirements
68
+ - `design.md` - Technical design
69
+ - `tasks.md` - Implementation tasks
70
+ - `research.md` - Research findings
71
+
72
+ ## 🚀 Quick Start
73
+
74
+ **Ver guia completo:** [QUICKSTART.md](./QUICKSTART.md)
75
+
76
+ ```bash
77
+ # 1. Configurar .env
78
+ copy .env.example .env
79
+ # Editar .env com OPENAI_API_KEY
80
+
81
+ # 2. Subir Docker
82
+ docker-compose up -d
83
+
84
+ # 3. Instalar dependências
85
+ pip install -e .
86
+
87
+ # 4. Iniciar API
88
+ uvicorn src.presentation.api.rest.main:app --reload --port 8000
89
+
90
+ # 5. Testar
91
+ # Abrir http://localhost:8000/docs
92
+ ```
93
+
94
+ ## 🧪 Testing
95
+
96
+ ```bash
97
+ # Run all tests
98
+ pytest tests/ -v
99
+
100
+ # Run with coverage
101
+ pytest tests/ --cov=src --cov-report=html
102
+ ```
103
+
104
+ ## 📋 Status
105
+
106
+ **Current Phase**: Setup & Implementation
107
+ **Task Progress**: See `tasks.md` for detailed progress
108
+
109
+ ---
110
+
111
+ **Created**: 2026-06-30
112
+ **Specification**: clean-architecture-batch-indexing
@@ -0,0 +1,158 @@
1
+ Metadata-Version: 2.4
2
+ Name: graph-dependency-analyzer
3
+ Version: 0.2.0
4
+ Summary: Knowledge Graph for multi-language repository dependency analysis — Java, TypeScript, Python, Groovy, SQL/Oracle
5
+ Author: Graph Project Team
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/ciandt/new-arch-explorer-service
8
+ Project-URL: Repository, https://github.com/ciandt/new-arch-explorer-service
9
+ Project-URL: Issues, https://github.com/ciandt/new-arch-explorer-service/issues
10
+ Keywords: dependency-analysis,knowledge-graph,tree-sitter,neo4j,qdrant,architecture,impact-analysis,java,typescript,python,groovy,oracle
11
+ Classifier: Development Status :: 4 - Beta
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
14
+ Classifier: Topic :: Software Development :: Quality Assurance
15
+ Classifier: Programming Language :: Python :: 3
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: License :: OSI Approved :: MIT License
20
+ Classifier: Operating System :: OS Independent
21
+ Requires-Python: >=3.11
22
+ Description-Content-Type: text/markdown
23
+ Requires-Dist: fastapi>=0.115.0
24
+ Requires-Dist: uvicorn>=0.32.0
25
+ Requires-Dist: qdrant-client>=1.13.0
26
+ Requires-Dist: neo4j>=5.15.0
27
+ Requires-Dist: httpx>=0.28.0
28
+ Requires-Dist: structlog>=24.1.0
29
+ Requires-Dist: python-dotenv>=1.0.0
30
+ Requires-Dist: pydantic>=2.0.0
31
+ Requires-Dist: pydantic-settings>=2.0.0
32
+ Requires-Dist: dependency-injector>=4.41.0
33
+ Requires-Dist: tenacity>=8.2.0
34
+ Requires-Dist: tree-sitter>=0.25.2
35
+ Requires-Dist: tree-sitter-java>=0.23.5
36
+ Requires-Dist: tree-sitter-typescript>=0.23.2
37
+ Requires-Dist: lxml>=5.0.0
38
+ Requires-Dist: pyyaml>=6.0.0
39
+ Requires-Dist: click>=8.1.0
40
+ Provides-Extra: dev
41
+ Requires-Dist: pytest>=8.0.0; extra == "dev"
42
+ Requires-Dist: pytest-asyncio>=0.24.0; extra == "dev"
43
+ Requires-Dist: pytest-cov>=7.0.0; extra == "dev"
44
+ Requires-Dist: mypy>=1.8.0; extra == "dev"
45
+ Requires-Dist: ruff>=0.9.0; extra == "dev"
46
+
47
+ # Graph Project - Dependency Analysis System
48
+
49
+ ## 📍 Project Location
50
+
51
+ **Path**: `C:\DevWorkspace\Graph Project\`
52
+
53
+ ## 🎯 Purpose
54
+
55
+ Sistema de análise de dependências de código com Clean Architecture para repositórios Java.
56
+
57
+ Este é um **novo projeto independente** que implementa:
58
+ - 🔍 Análise AST com Tree-sitter para extração de estruturas de código
59
+ - 🔗 Detecção de dependências internas (código-para-código) e externas (APIs, DBs, bibliotecas)
60
+ - 📊 Armazenamento de grafo de dependências no Neo4j para análise de impacto
61
+ - 🧠 Geração de embeddings (OpenAI) e armazenamento no Qdrant para busca semântica
62
+ - 🚀 Processamento paralelo de múltiplos repositórios
63
+
64
+ ## 🏗️ Architecture
65
+
66
+ Clean Architecture com 4 camadas:
67
+
68
+ ```
69
+ src/
70
+ ├── domain/ # 💎 Entities, Value Objects, Interfaces
71
+ │ ├── entities/
72
+ │ ├── value_objects/
73
+ │ ├── repositories/
74
+ │ └── services/
75
+ ├── application/ # ⚙️ Use Cases, DTOs, Services
76
+ │ ├── use_cases/
77
+ │ ├── dtos/
78
+ │ └── services/
79
+ ├── infrastructure/ # 🔧 Adaptadores (Qdrant, Neo4j, OpenAI, Tree-sitter)
80
+ │ ├── parsing/
81
+ │ ├── persistence/
82
+ │ └── external_apis/
83
+ └── presentation/ # 🌐 Controllers, Routers FastAPI
84
+ └── api/
85
+ └── rest/
86
+ ```
87
+
88
+ ## 🛠️ Technology Stack
89
+
90
+ - **Language**: Python 3.11+
91
+ - **Framework**: FastAPI
92
+ - **AST Parsing**: Tree-sitter + tree-sitter-java
93
+ - **Graph DB**: Neo4j 5.15+
94
+ - **Vector DB**: Qdrant 1.13+
95
+ - **Embeddings**: OpenAI text-embedding-3-small (1536 dims)
96
+ - **Build Tools**: Maven/Gradle parsing
97
+
98
+ ## 🎓 Phase 1 Scope
99
+
100
+ - ✅ **Language Support**: Java only
101
+ - ✅ **Analysis**: Static (deterministic) - NO AI/LLM
102
+ - ✅ **Dependencies**: Internal + External (APIs, DBs, libraries)
103
+ - ✅ **Storage**: Dual (Neo4j graph + Qdrant vectors)
104
+
105
+ ## 🚀 Future Phases
106
+
107
+ - 🔮 Phase 2: Multi-language (Python, JS/TS, Go, C#)
108
+ - 🔮 Phase 3: Advanced features (code quality, architectural patterns, complexity metrics)
109
+
110
+ ## 📚 Documentation
111
+
112
+ - **Specifications**: `.sdd/specs/clean-architecture-batch-indexing/`
113
+ - `requirements.md` - Functional requirements
114
+ - `design.md` - Technical design
115
+ - `tasks.md` - Implementation tasks
116
+ - `research.md` - Research findings
117
+
118
+ ## 🚀 Quick Start
119
+
120
+ **Ver guia completo:** [QUICKSTART.md](./QUICKSTART.md)
121
+
122
+ ```bash
123
+ # 1. Configurar .env
124
+ copy .env.example .env
125
+ # Editar .env com OPENAI_API_KEY
126
+
127
+ # 2. Subir Docker
128
+ docker-compose up -d
129
+
130
+ # 3. Instalar dependências
131
+ pip install -e .
132
+
133
+ # 4. Iniciar API
134
+ uvicorn src.presentation.api.rest.main:app --reload --port 8000
135
+
136
+ # 5. Testar
137
+ # Abrir http://localhost:8000/docs
138
+ ```
139
+
140
+ ## 🧪 Testing
141
+
142
+ ```bash
143
+ # Run all tests
144
+ pytest tests/ -v
145
+
146
+ # Run with coverage
147
+ pytest tests/ --cov=src --cov-report=html
148
+ ```
149
+
150
+ ## 📋 Status
151
+
152
+ **Current Phase**: Setup & Implementation
153
+ **Task Progress**: See `tasks.md` for detailed progress
154
+
155
+ ---
156
+
157
+ **Created**: 2026-06-30
158
+ **Specification**: clean-architecture-batch-indexing
@@ -0,0 +1,106 @@
1
+ README.md
2
+ pyproject.toml
3
+ graph_dependency_analyzer.egg-info/PKG-INFO
4
+ graph_dependency_analyzer.egg-info/SOURCES.txt
5
+ graph_dependency_analyzer.egg-info/dependency_links.txt
6
+ graph_dependency_analyzer.egg-info/entry_points.txt
7
+ graph_dependency_analyzer.egg-info/requires.txt
8
+ graph_dependency_analyzer.egg-info/top_level.txt
9
+ src/__init__.py
10
+ src/cli.py
11
+ src/application/__init__.py
12
+ src/application/exceptions.py
13
+ src/application/dtos/__init__.py
14
+ src/application/dtos/affected_component.py
15
+ src/application/dtos/batch_processing_result.py
16
+ src/application/dtos/impact_analysis_response.py
17
+ src/application/dtos/impact_query_request.py
18
+ src/application/dtos/index_batch_request.py
19
+ src/application/dtos/index_batch_response.py
20
+ src/application/dtos/index_result.py
21
+ src/application/dtos/repository_index_result.py
22
+ src/application/services/__init__.py
23
+ src/application/services/file_scanner_service.py
24
+ src/application/services/progress_tracker.py
25
+ src/application/use_cases/__init__.py
26
+ src/application/use_cases/clear_all_data_use_case.py
27
+ src/application/use_cases/index_batch_use_case.py
28
+ src/application/use_cases/index_repository_use_case.py
29
+ src/application/use_cases/indexing_orchestrator.py
30
+ src/application/use_cases/list_repositories_use_case.py
31
+ src/config/__init__.py
32
+ src/config/container.py
33
+ src/config/logging_config.py
34
+ src/config/settings.py
35
+ src/domain/__init__.py
36
+ src/domain/exceptions.py
37
+ src/domain/entities/__init__.py
38
+ src/domain/entities/ast_node.py
39
+ src/domain/entities/code_chunk.py
40
+ src/domain/entities/code_file.py
41
+ src/domain/entities/dependency_graph.py
42
+ src/domain/entities/repository.py
43
+ src/domain/repositories/__init__.py
44
+ src/domain/repositories/i_code_parser.py
45
+ src/domain/repositories/i_dependency_extractor.py
46
+ src/domain/repositories/i_embedding_provider.py
47
+ src/domain/repositories/i_graph_repository.py
48
+ src/domain/repositories/i_vector_repository.py
49
+ src/domain/services/__init__.py
50
+ src/domain/services/dependency_extractor.py
51
+ src/domain/services/semantic_chunk_builder.py
52
+ src/domain/value_objects/__init__.py
53
+ src/domain/value_objects/chunk_type.py
54
+ src/domain/value_objects/dependency_type.py
55
+ src/domain/value_objects/node_type.py
56
+ src/domain/value_objects/qualified_name.py
57
+ src/infrastructure/__init__.py
58
+ src/infrastructure/exceptions.py
59
+ src/infrastructure/external_apis/__init__.py
60
+ src/infrastructure/external_apis/ollama_embedding_provider.py
61
+ src/infrastructure/external_apis/openai_embedding_provider.py
62
+ src/infrastructure/parsing/__init__.py
63
+ src/infrastructure/parsing/config_file_parser.py
64
+ src/infrastructure/parsing/gradle_dependency_parser.py
65
+ src/infrastructure/parsing/groovy_parser.py
66
+ src/infrastructure/parsing/maven_dependency_parser.py
67
+ src/infrastructure/parsing/microfrontend_config_parser.py
68
+ src/infrastructure/parsing/npm_package_dependency_parser.py
69
+ src/infrastructure/parsing/python_parser.py
70
+ src/infrastructure/parsing/sql_schema_parser.py
71
+ src/infrastructure/parsing/tree_sitter_java_parser.py
72
+ src/infrastructure/parsing/tree_sitter_typescript_parser.py
73
+ src/infrastructure/persistence/__init__.py
74
+ src/infrastructure/persistence/graph_export_repository.py
75
+ src/infrastructure/persistence/neo4j_dependency_repository.py
76
+ src/infrastructure/persistence/qdrant_vector_repository.py
77
+ src/infrastructure/persistence/repository_relationship_repository.py
78
+ src/presentation/__init__.py
79
+ src/presentation/api/__init__.py
80
+ src/presentation/api/rest/__init__.py
81
+ src/presentation/api/rest/exception_handlers.py
82
+ src/presentation/api/rest/main.py
83
+ src/presentation/api/rest/routers/__init__.py
84
+ src/presentation/api/rest/routers/admin.py
85
+ src/presentation/api/rest/routers/analysis.py
86
+ src/presentation/api/rest/routers/export.py
87
+ src/presentation/api/rest/routers/health.py
88
+ src/presentation/api/rest/routers/indexing.py
89
+ src/presentation/api/rest/routers/relationships.py
90
+ tests/test_api_routers.py
91
+ tests/test_config.py
92
+ tests/test_config_file_parser.py
93
+ tests/test_dependencies.py
94
+ tests/test_dependency_extractor.py
95
+ tests/test_dependency_extractor_integration.py
96
+ tests/test_dependency_injection.py
97
+ tests/test_domain_entities.py
98
+ tests/test_e2e_batch_indexing.py
99
+ tests/test_gradle_dependency_parser.py
100
+ tests/test_logging.py
101
+ tests/test_maven_dependency_parser.py
102
+ tests/test_project_structure.py
103
+ tests/test_repository_interfaces.py
104
+ tests/test_semantic_chunk_builder.py
105
+ tests/test_tree_sitter_parser.py
106
+ tests/test_value_objects.py
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ graph-explorer = src.cli:main
@@ -0,0 +1,24 @@
1
+ fastapi>=0.115.0
2
+ uvicorn>=0.32.0
3
+ qdrant-client>=1.13.0
4
+ neo4j>=5.15.0
5
+ httpx>=0.28.0
6
+ structlog>=24.1.0
7
+ python-dotenv>=1.0.0
8
+ pydantic>=2.0.0
9
+ pydantic-settings>=2.0.0
10
+ dependency-injector>=4.41.0
11
+ tenacity>=8.2.0
12
+ tree-sitter>=0.25.2
13
+ tree-sitter-java>=0.23.5
14
+ tree-sitter-typescript>=0.23.2
15
+ lxml>=5.0.0
16
+ pyyaml>=6.0.0
17
+ click>=8.1.0
18
+
19
+ [dev]
20
+ pytest>=8.0.0
21
+ pytest-asyncio>=0.24.0
22
+ pytest-cov>=7.0.0
23
+ mypy>=1.8.0
24
+ ruff>=0.9.0