codegraph-brain 0.6.0__py3-none-any.whl
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.
- cgis/__init__.py +10 -0
- cgis/__main__.py +16 -0
- cgis/api/.gitkeep +0 -0
- cgis/api/__init__.py +1 -0
- cgis/api/mcp_server.py +550 -0
- cgis/cli.py +1516 -0
- cgis/core/.gitkeep +0 -0
- cgis/core/models.py +140 -0
- cgis/extractors/.gitkeep +0 -0
- cgis/extractors/_python_ast.py +194 -0
- cgis/extractors/_python_classes.py +126 -0
- cgis/extractors/_python_functions.py +312 -0
- cgis/extractors/_python_imports.py +188 -0
- cgis/extractors/_python_types.py +84 -0
- cgis/extractors/base.py +42 -0
- cgis/extractors/python_extractor.py +235 -0
- cgis/extractors/typescript_extractor.py +310 -0
- cgis/guardian/__init__.py +1 -0
- cgis/guardian/bench.py +199 -0
- cgis/guardian/chunked.py +240 -0
- cgis/guardian/chunker.py +148 -0
- cgis/guardian/collector.py +309 -0
- cgis/guardian/core.py +120 -0
- cgis/guardian/diff_index.py +151 -0
- cgis/guardian/findings.py +70 -0
- cgis/guardian/github_poster.py +133 -0
- cgis/guardian/metrics.py +108 -0
- cgis/guardian/prompts.py +217 -0
- cgis/guardian/providers/__init__.py +1 -0
- cgis/guardian/providers/base.py +112 -0
- cgis/guardian/providers/gemini.py +83 -0
- cgis/guardian/providers/mistral.py +83 -0
- cgis/guardian/providers/ollama.py +99 -0
- cgis/guardian/recording.py +82 -0
- cgis/guardian/render.py +107 -0
- cgis/guardian/runner.py +295 -0
- cgis/guardian/skeptic.py +208 -0
- cgis/pipeline.py +252 -0
- cgis/py.typed +0 -0
- cgis/query/analysis/__init__.py +0 -0
- cgis/query/analysis/analyzer.py +241 -0
- cgis/query/analysis/anomaly.py +34 -0
- cgis/query/analysis/cohesion.py +277 -0
- cgis/query/analysis/health.py +128 -0
- cgis/query/analysis/suggest_service.py +221 -0
- cgis/query/context/__init__.py +0 -0
- cgis/query/context/audit.py +134 -0
- cgis/query/context/context_service.py +129 -0
- cgis/query/context/prompt.py +184 -0
- cgis/query/context/snippet.py +96 -0
- cgis/query/drift/__init__.py +0 -0
- cgis/query/drift/_scc.py +90 -0
- cgis/query/drift/drift.py +867 -0
- cgis/query/drift/drift_service.py +217 -0
- cgis/query/drift/fingerprint.py +255 -0
- cgis/query/drift/fractal.py +292 -0
- cgis/query/drift/ontology_init.py +470 -0
- cgis/query/drift/quotient.py +75 -0
- cgis/query/drift/triads.py +234 -0
- cgis/query/engine.py +170 -0
- cgis/query/fqn.py +65 -0
- cgis/query/render/__init__.py +0 -0
- cgis/query/render/graph_json.py +42 -0
- cgis/query/render/mermaid.py +235 -0
- cgis/query/render/metrics.py +346 -0
- cgis/resolver/.gitkeep +0 -0
- cgis/resolver/__init__.py +1 -0
- cgis/resolver/engine.py +145 -0
- cgis/resolver/indices.py +184 -0
- cgis/resolver/symbols.py +179 -0
- cgis/resolver/uplift.py +263 -0
- cgis/storage/.gitkeep +0 -0
- cgis/storage/sqlite_store.py +589 -0
- codegraph_brain-0.6.0.dist-info/METADATA +240 -0
- codegraph_brain-0.6.0.dist-info/RECORD +78 -0
- codegraph_brain-0.6.0.dist-info/WHEEL +4 -0
- codegraph_brain-0.6.0.dist-info/entry_points.txt +3 -0
- codegraph_brain-0.6.0.dist-info/licenses/LICENSE +21 -0
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: codegraph-brain
|
|
3
|
+
Version: 0.6.0
|
|
4
|
+
Summary: Semantic code graph for AI agents — deterministic FQN resolution, impact analysis and architectural drift gates, exposed over MCP.
|
|
5
|
+
Project-URL: Homepage, https://github.com/zaebee/codegraph-brain
|
|
6
|
+
Project-URL: Repository, https://github.com/zaebee/codegraph-brain
|
|
7
|
+
Project-URL: Documentation, https://github.com/zaebee/codegraph-brain#readme
|
|
8
|
+
Project-URL: Changelog, https://github.com/zaebee/codegraph-brain/blob/main/CHANGELOG.md
|
|
9
|
+
Project-URL: Issues, https://github.com/zaebee/codegraph-brain/issues
|
|
10
|
+
Author-email: Andrey G <zaebuntu@gmail.com>
|
|
11
|
+
License-Expression: MIT
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Keywords: ai-agents,architecture,call-graph,code-graph,code-review,llm,mcp,model-context-protocol,static-analysis,tree-sitter
|
|
14
|
+
Classifier: Development Status :: 4 - Beta
|
|
15
|
+
Classifier: Environment :: Console
|
|
16
|
+
Classifier: Intended Audience :: Developers
|
|
17
|
+
Classifier: Operating System :: OS Independent
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
21
|
+
Classifier: Topic :: Software Development :: Documentation
|
|
22
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
23
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
24
|
+
Classifier: Typing :: Typed
|
|
25
|
+
Requires-Python: >=3.12
|
|
26
|
+
Requires-Dist: httpx>=0.27
|
|
27
|
+
Requires-Dist: mcp[cli]>=2
|
|
28
|
+
Requires-Dist: pydantic>=2.13.4
|
|
29
|
+
Requires-Dist: pyyaml>=6.0.2
|
|
30
|
+
Requires-Dist: rich>=15.0.0
|
|
31
|
+
Requires-Dist: structlog>=25.5.0
|
|
32
|
+
Requires-Dist: tree-sitter-python>=0.25.0
|
|
33
|
+
Requires-Dist: tree-sitter-typescript>=0.23.2
|
|
34
|
+
Requires-Dist: tree-sitter>=0.25.2
|
|
35
|
+
Requires-Dist: typer>=0.26.7
|
|
36
|
+
Provides-Extra: all
|
|
37
|
+
Requires-Dist: cohere>=5.0.0; extra == 'all'
|
|
38
|
+
Requires-Dist: duckdb>=1.1.0; extra == 'all'
|
|
39
|
+
Requires-Dist: google-genai>=0.8.0; extra == 'all'
|
|
40
|
+
Requires-Dist: mistralai>=1.0.0; extra == 'all'
|
|
41
|
+
Requires-Dist: ollama>=0.3.0; extra == 'all'
|
|
42
|
+
Provides-Extra: analytics
|
|
43
|
+
Requires-Dist: duckdb>=1.1.0; extra == 'analytics'
|
|
44
|
+
Provides-Extra: guardian
|
|
45
|
+
Requires-Dist: cohere>=5.0.0; extra == 'guardian'
|
|
46
|
+
Requires-Dist: google-genai>=0.8.0; extra == 'guardian'
|
|
47
|
+
Requires-Dist: mistralai>=1.0.0; extra == 'guardian'
|
|
48
|
+
Requires-Dist: ollama>=0.3.0; extra == 'guardian'
|
|
49
|
+
Description-Content-Type: text/markdown
|
|
50
|
+
|
|
51
|
+
# 🧠 CGIS: Code Graph Intelligence System
|
|
52
|
+
### *The Semantic Ground Truth for AI Agents*
|
|
53
|
+
|
|
54
|
+
[](https://github.com/zaebee/codegraph-brain/actions/workflows/ci.yml)
|
|
55
|
+
[](https://github.com/zaebee/codegraph-brain/actions/workflows/autodoc.yml)
|
|
56
|
+
|
|
57
|
+
**LLM coding agents (Claude, Cursor, GPT) are currently "guessing" your architecture based on flat text snippets. CGIS stops the guessing.**
|
|
58
|
+
|
|
59
|
+
CGIS transforms raw source code into a deterministic, multi-layered semantic graph. It provides AI agents with a high-fidelity architectural model, enabling them to understand not just what the code *says*, but how it *behaves* and *connects*.
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## ⚡ The Problem: The "Context Gap"
|
|
64
|
+
Traditional RAG (Retrieval-Augmented Generation) feeds agents chunks of text. This leads to:
|
|
65
|
+
* **Hallucinations:** Agents assume connections that don't exist.
|
|
66
|
+
* **Context Bloat:** Passing entire files to explain a single function.
|
|
67
|
+
* **Structural Blindness:** Agents cannot "see" transitive impacts (e.g., *"If I change this, what breaks 5 layers up?"*).
|
|
68
|
+
|
|
69
|
+
## ✨ The Solution: Semantic Intelligence
|
|
70
|
+
CGIS replaces "textual guessing" with **"structural calculation"**:
|
|
71
|
+
* **Deterministic Resolution:** Full FQN (Fully Qualified Name) resolution via AST-based extraction.
|
|
72
|
+
* **Multi-Layer Ontology:** Goes beyond calls. It understands `CONTAINS`, `DECLARES`, `IMPORTS`, and semantic domains.
|
|
73
|
+
* **Agent-Native (MCP):** Exposes the entire graph as a set of high-performance tools for Claude, Cursor, and custom agents.
|
|
74
|
+
* **Architectural Drift Gates:** Measures how far a change pushes each domain from its *declared* ideal pattern (a motif-basis fingerprint) — a soft, quantitative CI gate for architectural hygiene.
|
|
75
|
+
* **Graph-Aware Code Review:** A built-in LLM reviewer (**Guardian**) that reads the graph as context and reviews pull requests — runs on **local (Ollama) or cloud** models, no vendor lock-in.
|
|
76
|
+
* **Self-Documenting:** The documentation is a living artifact, automatically updated with live architecture diagrams.
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## 🏗️ Architecture: The Pipeline
|
|
81
|
+
|
|
82
|
+
CGIS operates via a high-speed, three-stage pipeline:
|
|
83
|
+
|
|
84
|
+
1. **EXTRACT:** Language-specific AST parsers (Tree-sitter) convert source code into raw nodes and edges.
|
|
85
|
+
2. **RESOLVE:** The `ResolverEngine` disambiguates raw calls into absolute, deterministic FQNs.
|
|
86
|
+
3. **STORE:** A high-performance SQLite backend enables complex graph traversals (BFS/DFS) in milliseconds.
|
|
87
|
+
|
|
88
|
+
```mermaid
|
|
89
|
+
graph LR
|
|
90
|
+
A[Source Code] --> B[Extractors]
|
|
91
|
+
B --> C[Resolver Engine]
|
|
92
|
+
C --> D[(SQLite Graph DB)]
|
|
93
|
+
D --> E[MCP Server]
|
|
94
|
+
D --> F[Prompt Compiler]
|
|
95
|
+
E --> G[AI Agents]
|
|
96
|
+
F --> G
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
---
|
|
100
|
+
|
|
101
|
+
## 🚀 Quickstart
|
|
102
|
+
|
|
103
|
+
### 1. Installation
|
|
104
|
+
Using `uv` (recommended):
|
|
105
|
+
```bash
|
|
106
|
+
uv pip install -e .
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
### 2. Ingest a Repository
|
|
110
|
+
Turn any codebase into a semantic knowledge graph:
|
|
111
|
+
```bash
|
|
112
|
+
cgis ingest ./my-awesome-project --output graph.db
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
### 3. Query the Graph
|
|
116
|
+
Analyze impact or trace execution flow directly from your terminal:
|
|
117
|
+
```bash
|
|
118
|
+
# Trace the execution path of a function
|
|
119
|
+
cgis trace "my_module.MyClass.my_method" --depth 3 --format mermaid
|
|
120
|
+
|
|
121
|
+
# Analyze the blast radius of a change
|
|
122
|
+
cgis impact "my_module.core_function" --depth 5
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
## 🤖 Agent Integration (MCP)
|
|
128
|
+
|
|
129
|
+
CGIS is designed to be plugged into your AI workflow via the **Model Context Protocol (MCP)**. Once running, your agent gains "Superpowers":
|
|
130
|
+
|
|
131
|
+
* `cgis_ingest`: Build the knowledge base.
|
|
132
|
+
* `cgis_trace_flow`: Visualize execution paths.
|
|
133
|
+
* `cgis_analyze_impact`: Predict regressions before they happen.
|
|
134
|
+
* `cgis_get_structure`: Understand class/module hierarchy.
|
|
135
|
+
* `cgis_context`: Compile a GraphRAG context package for a symbol.
|
|
136
|
+
* `cgis_drift`: Measure architectural drift vs each domain's ideal pattern.
|
|
137
|
+
* `cgis_metrics`: Coupling, god-classes, PageRank, package cohesion.
|
|
138
|
+
* `cgis_audit_reachability`: Authz/IDOR coverage — does every handler reach its guard?
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## 🛡️ Guardian: Graph-Aware Code Review
|
|
143
|
+
|
|
144
|
+
**Guardian** is CGIS's built-in LLM reviewer — it reviews pull requests using the *graph* as context, not just the diff text. It runs in CI and posts inline comments anchored to the exact line.
|
|
145
|
+
|
|
146
|
+
* **Two-stage, recall-first:** a **finder** surfaces every plausible defect (optimised for recall), then a separate **skeptic** pass filters false positives — closer to how human reviewers work, and far more reliable than a single precision-gated prompt.
|
|
147
|
+
* **Local *or* cloud, no lock-in:** point it at **Ollama** (`qwen2.5-coder`, `llama3.1`, `granite-code`, …) for free local inference, or at **Mistral / Gemini** in the cloud. You can even mix them — a strong cloud finder with a free local *cross-model* skeptic.
|
|
148
|
+
* **Graph-aware context:** the reviewer sees impact graphs, architectural drift, and project ontology — so it catches structural and convention defects a flat-diff reviewer can't.
|
|
149
|
+
* **Deterministic anchoring:** every inline comment is positioned by a verbatim quote from the diff, not the model's (often wrong) line guess.
|
|
150
|
+
* **Dogfooded & measured:** Guardian reviews CGIS's *own* pull requests, and a benchmark harness scores it against curated ground truth — so prompt changes are validated, not guessed.
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
# Build the graph, then review a PR with a local model (no API key)
|
|
154
|
+
cgis ingest ./src --output graph.db
|
|
155
|
+
GUARDIAN_PROVIDER=ollama GUARDIAN_MODEL=qwen2.5-coder:14b \
|
|
156
|
+
uv run python scripts/guardian_review.py --pr 123 --db graph.db --inline
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
|
|
161
|
+
## 📈 Proof at Real Scale
|
|
162
|
+
|
|
163
|
+
CGIS runs on a working twelve-repository estate — four languages, 8,146 commits, shipping daily. On its 512-file FastAPI backend it classifies **88.4% of 40,493 edges** definitively, and prints the remaining 11.6% instead of inventing targets for them.
|
|
164
|
+
|
|
165
|
+
**[Read the case study →](docs/CASE_STUDY.md)** — every figure measured and reproducible, including what CGIS *doesn't* cover.
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## 📊 Live System Architecture
|
|
170
|
+
*Kept in sync with the codebase — update this diagram when the core pipeline changes.*
|
|
171
|
+
|
|
172
|
+
<!-- START_CGIS_GRAPH -->
|
|
173
|
+
> *Auto-generated by CGIS parsing its own source — the tool documents itself.*
|
|
174
|
+
|
|
175
|
+
```mermaid
|
|
176
|
+
graph TD
|
|
177
|
+
classDef classNode fill:#e8f5e9,stroke:#2e7d32,stroke-width:1.5px,color:#1b5e20;
|
|
178
|
+
classDef funcNode fill:#e3f2fd,stroke:#1565c0,stroke-width:1.5px,color:#0d47a1;
|
|
179
|
+
classDef methodNode fill:#f3e5f5,stroke:#7b1fa2,stroke-width:1.5px,color:#4a148c;
|
|
180
|
+
classDef unresolvedNode fill:#fffde7,stroke:#fbc02d,stroke-width:1.5px,stroke-dasharray: 4 4,color:#f57f17;
|
|
181
|
+
classDef defaultNode fill:#fafafa,stroke:#9e9e9e,stroke-width:1.5px,color:#212121;
|
|
182
|
+
classDef stdlibNode fill:#eceff1,stroke:#607d8b,stroke-width:1px,color:#455a64;
|
|
183
|
+
classDef externalNode fill:#fff3e0,stroke:#e65100,stroke-width:1px,stroke-dasharray: 3 3,color:#bf360c;
|
|
184
|
+
|
|
185
|
+
subgraph sg_pipeline["pipeline.py"]
|
|
186
|
+
pipeline_IngestionPipeline_get_extractor["_get_extractor (pipeline.py:245)"]:::methodNode
|
|
187
|
+
pipeline_IngestionPipeline_is_noop_incremental["_is_noop_incremental (pipeline.py:185)"]:::methodNode
|
|
188
|
+
pipeline_IngestionPipeline_persist_incremental["_persist_incremental (pipeline.py:204)"]:::methodNode
|
|
189
|
+
pipeline_IngestionPipeline_process_file["_process_file (pipeline.py:155)"]:::methodNode
|
|
190
|
+
pipeline_IngestionPipeline_run["run (pipeline.py:51)"]:::methodNode
|
|
191
|
+
end
|
|
192
|
+
subgraph sg_engine["engine.py"]
|
|
193
|
+
engine_ResolverEngine["ResolverEngine (engine.py:18)"]:::classNode
|
|
194
|
+
engine_ResolverEngine_resolve["resolve (engine.py:35)"]:::methodNode
|
|
195
|
+
end
|
|
196
|
+
subgraph sg_uplift["uplift.py"]
|
|
197
|
+
uplift_SemanticUpliftEngine["SemanticUpliftEngine (uplift.py:66)"]:::classNode
|
|
198
|
+
uplift_SemanticUpliftEngine_execute_uplift["execute_uplift (uplift.py:91)"]:::methodNode
|
|
199
|
+
end
|
|
200
|
+
pipeline_IngestionPipeline_run -->|CALLS| pipeline_IngestionPipeline_get_extractor
|
|
201
|
+
pipeline_IngestionPipeline_run -->|CALLS| pipeline_IngestionPipeline_process_file
|
|
202
|
+
pipeline_IngestionPipeline_run -->|CALLS| pipeline_IngestionPipeline_is_noop_incremental
|
|
203
|
+
pipeline_IngestionPipeline_run -->|CALLS| engine_ResolverEngine
|
|
204
|
+
pipeline_IngestionPipeline_run -->|CALLS| engine_ResolverEngine_resolve
|
|
205
|
+
pipeline_IngestionPipeline_run -->|CALLS| pipeline_IngestionPipeline_persist_incremental
|
|
206
|
+
pipeline_IngestionPipeline_run -->|CALLS| uplift_SemanticUpliftEngine_execute_uplift
|
|
207
|
+
pipeline_IngestionPipeline_run -->|CALLS| uplift_SemanticUpliftEngine
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
| Symbol | Type | File |
|
|
211
|
+
|--------|------|------|
|
|
212
|
+
| `run` | METHOD | [`pipeline.py:51`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L51) |
|
|
213
|
+
| `_process_file` | METHOD | [`pipeline.py:155`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L155) |
|
|
214
|
+
| `_is_noop_incremental` | METHOD | [`pipeline.py:185`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L185) |
|
|
215
|
+
| `_persist_incremental` | METHOD | [`pipeline.py:204`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L204) |
|
|
216
|
+
| `_get_extractor` | METHOD | [`pipeline.py:245`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/pipeline.py#L245) |
|
|
217
|
+
| `ResolverEngine` | CLASS | [`engine.py:18`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/resolver/engine.py#L18) |
|
|
218
|
+
| `resolve` | METHOD | [`engine.py:35`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/resolver/engine.py#L35) |
|
|
219
|
+
| `SemanticUpliftEngine` | CLASS | [`uplift.py:66`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/resolver/uplift.py#L66) |
|
|
220
|
+
| `execute_uplift` | METHOD | [`uplift.py:91`](https://github.com/zaebee/codegraph-brain/blob/main/src/cgis/resolver/uplift.py#L91) |
|
|
221
|
+
<!-- END_CGIS_GRAPH -->
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## 🛠️ Development
|
|
226
|
+
|
|
227
|
+
### Requirements
|
|
228
|
+
* Python 3.12+
|
|
229
|
+
* `uv` (for dependency management)
|
|
230
|
+
|
|
231
|
+
### Running Tests
|
|
232
|
+
```bash
|
|
233
|
+
make pytest
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Contributing
|
|
237
|
+
We are building the future of agentic engineering. Please see `CONTRIBUTING.md` for our standards on type safety (strict MyPy), linting, and ontology compliance.
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
*Built with ❤️ for the future of autonomous software engineering.*
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
cgis/__init__.py,sha256=3QdRGRHRQHrjQYXrPCo1uCZKcx5C-f098rpT21gq3RU,271
|
|
2
|
+
cgis/__main__.py,sha256=w9qXbHyKaCVxkdm7i_NDSc-Mz07ivIoaAAVFGvs3Plo,326
|
|
3
|
+
cgis/cli.py,sha256=7Nv1feCj-Fb-glckdvN5xR7Prx_rdc-eJrrxYRIUU9A,57495
|
|
4
|
+
cgis/pipeline.py,sha256=AJfBhlH5ZD4wkDX6QMScuDPbl_Wwr_ZFplNzfoorsqg,10529
|
|
5
|
+
cgis/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
+
cgis/api/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
7
|
+
cgis/api/__init__.py,sha256=wvFZK6oZspFGmonBz2rDg1aXxK7DHuE87or_w_cwY28,91
|
|
8
|
+
cgis/api/mcp_server.py,sha256=n2RgUwzqfAZ-cZXzYSvC5CI8rJu8JyfX3v_Ax3NGCYA,22693
|
|
9
|
+
cgis/core/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
+
cgis/core/models.py,sha256=VVnldYVFBDLa3cqMCH2GZAUHt3jelIV--lgsGFK103w,3694
|
|
11
|
+
cgis/extractors/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
|
+
cgis/extractors/_python_ast.py,sha256=BzaMMkNE6nQlYKbG9_xW3Ij0fFuQnodRe2pMtqd3gsY,7749
|
|
13
|
+
cgis/extractors/_python_classes.py,sha256=F0Vc7yfPNRiqwsJeAcOjOCVQBWT3KpistwpJHyIYtgY,4658
|
|
14
|
+
cgis/extractors/_python_functions.py,sha256=-glBzqRb8SrErVwSJHJgkp1nGXJxn71yaklp24bXvaU,11706
|
|
15
|
+
cgis/extractors/_python_imports.py,sha256=uR0PE4xkhSimEEVh0xRbjMAeqO451cBjkF99n1xuS_Q,7781
|
|
16
|
+
cgis/extractors/_python_types.py,sha256=N6xIOxVikpwkwrPfv1s_MwX6rw8QwzW2VeBXi7-g328,3462
|
|
17
|
+
cgis/extractors/base.py,sha256=4lhdFRqsj-3vBpeHZjnE3f9IWZ_WhbKQBxVAMuhzTho,1502
|
|
18
|
+
cgis/extractors/python_extractor.py,sha256=WhFg8a_Uc1H9OIfkYRJdacFqotsghH1EFVcu-n5TABc,8965
|
|
19
|
+
cgis/extractors/typescript_extractor.py,sha256=FFXJ11Zkli_dQgE160uVvG7toiwn37uCCAlIOx8sIHA,11358
|
|
20
|
+
cgis/guardian/__init__.py,sha256=H6BlKTayCLP34uGRC1zVt9NhN7RGo3tN9oep9Ja5SK0,48
|
|
21
|
+
cgis/guardian/bench.py,sha256=G9EG73fOOYBWFvw1NvxIMLGXgczSUOutSM5FD_PQJjk,7740
|
|
22
|
+
cgis/guardian/chunked.py,sha256=QioDG9Iwis2mVH-UeuNUMtL4HqgIzP2cJ9dfKHz5tUw,9474
|
|
23
|
+
cgis/guardian/chunker.py,sha256=zm6EF7S8lKNNfeMu1W6z7a6FiBU2qBqRz2UcelnuYac,5705
|
|
24
|
+
cgis/guardian/collector.py,sha256=E4g9eW_qOYSw5rr25c_wWFt4xa9luJzAW84_DCo97HM,13505
|
|
25
|
+
cgis/guardian/core.py,sha256=nY8eTcaknfxLUa6u9YwLOdyM4ztb19-A49BfW_eh7uY,4981
|
|
26
|
+
cgis/guardian/diff_index.py,sha256=513WDsnvmcYecqVgoPeeK0ZBLziZIYb0ibRXYEYusv0,6212
|
|
27
|
+
cgis/guardian/findings.py,sha256=igJg99ZH0J13wLZtDSiA2GBejsqYetCA3cqADohbZIc,2691
|
|
28
|
+
cgis/guardian/github_poster.py,sha256=Rh1FKUC7ZC6IYWzKd-d7ewHq1L21Y1uUImTsn9J96x0,5658
|
|
29
|
+
cgis/guardian/metrics.py,sha256=ITF2QrHLvNLYlLYYS1qU3baGi7oYETzHXMo7pKfYc70,3641
|
|
30
|
+
cgis/guardian/prompts.py,sha256=xCjlTPx3U8_IX14n31mmYti68BcJkeQTcmU0e2nnv04,11012
|
|
31
|
+
cgis/guardian/recording.py,sha256=LXopddHdnv-042-P5nQrPE4JIx6jQVmGjjWzftgdr40,3375
|
|
32
|
+
cgis/guardian/render.py,sha256=w-F5MHyEsIxMHLe6zP05VtSdpzfBsRD9bpLJyUwoVHg,4701
|
|
33
|
+
cgis/guardian/runner.py,sha256=bhgtjp1-qlyc232c2LqycJEODDU68sQ2GwEYSzdCdQs,12148
|
|
34
|
+
cgis/guardian/skeptic.py,sha256=ey_6pzoC297mHXGIqvZlB9fSdTvTwgLI1h2yVJ7VeYY,8848
|
|
35
|
+
cgis/guardian/providers/__init__.py,sha256=wFOW1w9NtI-LBDB9w5ICNPFcuT4Hi5soxzDwpdmgxSc,49
|
|
36
|
+
cgis/guardian/providers/base.py,sha256=Frmymu-AVOOs5ZrC8khw2ZLzCzDlaGwhwNupv2bdvlI,4424
|
|
37
|
+
cgis/guardian/providers/gemini.py,sha256=hbFmwMHKkVEy4hDM-e3nMKrIpwzG6wO-QLsDe3_tL-o,3751
|
|
38
|
+
cgis/guardian/providers/mistral.py,sha256=JEfdcD1BgPKq_78xMKdTf7DwK8c6_sfJMfg-q9bvI40,3361
|
|
39
|
+
cgis/guardian/providers/ollama.py,sha256=K9UZoxF0Sx0PZYaLLfhXEz6Kl_jXojrPXRSiY0tHBhk,4157
|
|
40
|
+
cgis/query/engine.py,sha256=D8OzyeBMhJ_shqjdi36AYiLhW52wNCj_N4Q8tD4AU1o,6225
|
|
41
|
+
cgis/query/fqn.py,sha256=FRiZjs0V4or8yMWSH158qdys5_NUYmKBOdx6-ePPQMY,2739
|
|
42
|
+
cgis/query/analysis/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
43
|
+
cgis/query/analysis/analyzer.py,sha256=m5d0-FsxIDH2tLJX3A_k7jvs7duWcfBNtlxKjkcqlHk,10358
|
|
44
|
+
cgis/query/analysis/anomaly.py,sha256=NJhomVw7byN6kfeT4Zegik6JRtHqtRq1UZbC9lJScUg,1221
|
|
45
|
+
cgis/query/analysis/cohesion.py,sha256=o_xXGbFqD0RgRSHxbsIBD-B3Spmtxv-RCy1MbB_IG2k,10504
|
|
46
|
+
cgis/query/analysis/health.py,sha256=3eZokxeH_be7l7MNuLoLpRIZZ5B3N0DoA1TKMDAkjBs,4989
|
|
47
|
+
cgis/query/analysis/suggest_service.py,sha256=46SVAYvqieW4XkI7NONbaOQZdFQdxxEnfj7vsnMjba0,8127
|
|
48
|
+
cgis/query/context/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
49
|
+
cgis/query/context/audit.py,sha256=yKFc0EgzH4OFm_ZUZ1yeMAB93jCcGZmqfXrCuGup6ec,6157
|
|
50
|
+
cgis/query/context/context_service.py,sha256=V0YtJaImgs7cwihejaBzKaOWa8Iax1T2OGrC-W6HbWs,5849
|
|
51
|
+
cgis/query/context/prompt.py,sha256=H38K0MN_PBaBdK-1nmN1873rOwADVvVYmcxKECLQkLU,8222
|
|
52
|
+
cgis/query/context/snippet.py,sha256=jBzWdQohg-LROqX6dkXHC_6pQ4M0H_SHk6bJcFDV_ZI,4207
|
|
53
|
+
cgis/query/drift/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
|
+
cgis/query/drift/_scc.py,sha256=aTFeJATlhi7vL1nsPKn98YmwqPOKnTWS6uys57mH8IU,2730
|
|
55
|
+
cgis/query/drift/drift.py,sha256=7ku8cOp8i59J-KvBWQedNxBc0bu9P-CGXM12CuxpQF0,36433
|
|
56
|
+
cgis/query/drift/drift_service.py,sha256=-TKtU1Tml5vg2zUy9rnP2QuP7kTyg9hTLYDx7N4rLlM,9536
|
|
57
|
+
cgis/query/drift/fingerprint.py,sha256=UmN3viPZceU2JH-zIf5CvIpbV4kBiaL5m7jObxZDPBc,10658
|
|
58
|
+
cgis/query/drift/fractal.py,sha256=1KkXGTmkYgOVum67M-BG_YUsTdorGTzP4kAJmrkNwKM,10205
|
|
59
|
+
cgis/query/drift/ontology_init.py,sha256=mdCBV3guHs72aTMzjyXf1JLcD9qHDJEZwpzmZzIRYxY,18302
|
|
60
|
+
cgis/query/drift/quotient.py,sha256=4tV29yk07VYfbrAo7PIrWQ4BagZ0T6nItWP_8Macx_4,2711
|
|
61
|
+
cgis/query/drift/triads.py,sha256=OoGxSAsU9QzHP2MboYkXJ3Jg7PyoE9tO6BfX65fwyYQ,6150
|
|
62
|
+
cgis/query/render/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
63
|
+
cgis/query/render/graph_json.py,sha256=SYIg4AyjdvXvj8C6Vu8vCYV2GdkW7Aep2MZ9dVdfbsY,1453
|
|
64
|
+
cgis/query/render/mermaid.py,sha256=60n26BB7hBhZSTfZq62yq38aeXi3p0gOI0ON2-5N6vM,10075
|
|
65
|
+
cgis/query/render/metrics.py,sha256=tTHIJ5mWh--JchNvGCU7n7_S0pEXBCELzvKiseEiEvo,13929
|
|
66
|
+
cgis/resolver/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
67
|
+
cgis/resolver/__init__.py,sha256=AYEjjKXi__LvceOV9mEjXXzQS6O03D4RQjuBjpJtGhA,75
|
|
68
|
+
cgis/resolver/engine.py,sha256=zNErmZRpOdAHMux3YWCWz0YbXhorm8BcD7DSKGYJLgQ,6424
|
|
69
|
+
cgis/resolver/indices.py,sha256=hof9PyDrOdbFCyE1urDOH3j5uKFHPutvpgetsLvxq8s,7994
|
|
70
|
+
cgis/resolver/symbols.py,sha256=6PNDIgoJ2Mj2xZ4XHpEXwjHe76fi9zvOwF7tAON1GBw,8513
|
|
71
|
+
cgis/resolver/uplift.py,sha256=Hkye1q-kI-gKO6GIBYv3gUZj1AC0-_mkpoIpmwVsG4g,9591
|
|
72
|
+
cgis/storage/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
73
|
+
cgis/storage/sqlite_store.py,sha256=Dkxkl0WDyTakZFfxWuVpYLNHA_H7CMvRkSUvev3MHew,24778
|
|
74
|
+
codegraph_brain-0.6.0.dist-info/METADATA,sha256=_DQHxztYEXMRqxqhwPGusmO2CRLGAdE_9IcuTQIVMXo,12572
|
|
75
|
+
codegraph_brain-0.6.0.dist-info/WHEEL,sha256=lCkmxWfQsSc9CfIClYeavTdQeEX2toPqufh9gI35EQA,87
|
|
76
|
+
codegraph_brain-0.6.0.dist-info/entry_points.txt,sha256=G_ekY569jca0ubm-I3gA9Id9xRj8fc42CDgLgTC-5L4,77
|
|
77
|
+
codegraph_brain-0.6.0.dist-info/licenses/LICENSE,sha256=1X36nOG5VocDaEGzAZqIv7uawy_7sWlFoiwECwx5aBI,1065
|
|
78
|
+
codegraph_brain-0.6.0.dist-info/RECORD,,
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Andrey G
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|