dimagx 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.
- dimagx-0.2.0/CHANGELOG.md +44 -0
- dimagx-0.2.0/LICENSE +21 -0
- dimagx-0.2.0/MANIFEST.in +5 -0
- dimagx-0.2.0/PKG-INFO +401 -0
- dimagx-0.2.0/README.md +373 -0
- dimagx-0.2.0/dimagx/__init__.py +2 -0
- dimagx-0.2.0/dimagx/cli.py +1349 -0
- dimagx-0.2.0/dimagx/commit_log.py +27 -0
- dimagx-0.2.0/dimagx/config.py +50 -0
- dimagx-0.2.0/dimagx/db.py +276 -0
- dimagx-0.2.0/dimagx/embeddings.py +31 -0
- dimagx-0.2.0/dimagx/githook.py +106 -0
- dimagx-0.2.0/dimagx/graph.py +176 -0
- dimagx-0.2.0/dimagx/mcp_server.py +561 -0
- dimagx-0.2.0/dimagx/prd.py +185 -0
- dimagx-0.2.0/dimagx/scanner.py +112 -0
- dimagx-0.2.0/dimagx/splash.py +76 -0
- dimagx-0.2.0/dimagx/static/app.js +284 -0
- dimagx-0.2.0/dimagx/static/index.html +71 -0
- dimagx-0.2.0/dimagx/static/style.css +316 -0
- dimagx-0.2.0/dimagx/symbols.py +208 -0
- dimagx-0.2.0/dimagx/ui.py +115 -0
- dimagx-0.2.0/dimagx/watcher.py +185 -0
- dimagx-0.2.0/dimagx/watcher_daemon.py +24 -0
- dimagx-0.2.0/dimagx.egg-info/PKG-INFO +401 -0
- dimagx-0.2.0/dimagx.egg-info/SOURCES.txt +33 -0
- dimagx-0.2.0/dimagx.egg-info/dependency_links.txt +1 -0
- dimagx-0.2.0/dimagx.egg-info/entry_points.txt +4 -0
- dimagx-0.2.0/dimagx.egg-info/requires.txt +19 -0
- dimagx-0.2.0/dimagx.egg-info/top_level.txt +1 -0
- dimagx-0.2.0/pyproject.toml +40 -0
- dimagx-0.2.0/requirements.txt +19 -0
- dimagx-0.2.0/setup.cfg +4 -0
- dimagx-0.2.0/setup.py +2 -0
- dimagx-0.2.0/tests/test_symbols.py +53 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
## [0.2.0] - 2026-05-16
|
|
9
|
+
|
|
10
|
+
### Added
|
|
11
|
+
- **Symbol-Level Indexing**: Integrated **Tree-sitter** for deep code parsing. Extracted functions, classes, and methods are now indexed as nodes in the project brain.
|
|
12
|
+
- **Semantic Search**: Implemented local vector embeddings using `sentence-transformers`. The `query_memory` tool now supports natural language semantic search over the entire memory graph.
|
|
13
|
+
- **Framework-Specific Entities**: Auto-detection and indexing of architectural patterns:
|
|
14
|
+
- **Flutter**: Cubits, Blocs, Providers, and Pages.
|
|
15
|
+
- **React**: Components and Hooks.
|
|
16
|
+
- **FastAPI**: API Routes and endpoints.
|
|
17
|
+
- **Bug Tracking Layer**: Added dedicated `dimagx bug` commands (`report`, `fix`, `list`) to track project issues and link them to files and commits.
|
|
18
|
+
- **Agentic Memory Automation**: MCP server now automatically detects if a prompt relates to a Bug Fix or Feature implementation and logs it accordingly.
|
|
19
|
+
- **Hierarchical Graph View**: New `dimagx graph` command provides a structural ASCII visualization of PRDs, Features, Files, and Architecture.
|
|
20
|
+
- **Git Branch Integration**: Automatic feature name detection from git branch names when starting a new feature.
|
|
21
|
+
- **Interactive CLI Splash**: A modern, futuristic terminal entry screen powered by `rich` and `pyfiglet`.
|
|
22
|
+
- **Background File Watcher**: Support for background daemonization with `dimagx watch --background`.
|
|
23
|
+
|
|
24
|
+
### Changed
|
|
25
|
+
- Improved `get_context` MCP tool to provide a more concise and structured overview of project status, active features, and recent agentic history.
|
|
26
|
+
- Enhanced `dimagx init` to perform deep symbol and entity scanning during the initial project setup.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
## [0.1.0] - 2026-05-15
|
|
31
|
+
|
|
32
|
+
### Added
|
|
33
|
+
- Initial project release.
|
|
34
|
+
- Core graph memory system using **Kuzu DB**.
|
|
35
|
+
- Basic CLI for project initialization (`init`) and status tracking (`status`).
|
|
36
|
+
- Feature management (`dimagx feature start/done/list`).
|
|
37
|
+
- PRD ingestion and AI-powered summarization using Anthropic Claude.
|
|
38
|
+
- File indexing and stack detection.
|
|
39
|
+
- Git history scanning and automated post-commit hook.
|
|
40
|
+
- MCP (Model Context Protocol) server for coding agent integration.
|
|
41
|
+
- Real-time file system watcher.
|
|
42
|
+
|
|
43
|
+
[0.2.0]: https://github.com/shmehdi01/dimagx/compare/v0.1.0...v0.2.0
|
|
44
|
+
[0.1.0]: https://github.com/shmehdi01/dimagx/releases/tag/v0.1.0
|
dimagx-0.2.0/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Syed Hussain Mehdi
|
|
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.
|
dimagx-0.2.0/MANIFEST.in
ADDED
dimagx-0.2.0/PKG-INFO
ADDED
|
@@ -0,0 +1,401 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: dimagx
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: Project brain for coding agents — memory graph for code, prompts, features and PRDs
|
|
5
|
+
Requires-Python: >=3.10
|
|
6
|
+
Description-Content-Type: text/markdown
|
|
7
|
+
License-File: LICENSE
|
|
8
|
+
Requires-Dist: typer>=0.12.0
|
|
9
|
+
Requires-Dist: rich>=13.0.0
|
|
10
|
+
Requires-Dist: kuzu>=0.7.0
|
|
11
|
+
Requires-Dist: gitpython>=3.1.0
|
|
12
|
+
Requires-Dist: mcp>=1.0.0
|
|
13
|
+
Requires-Dist: pyyaml>=6.0
|
|
14
|
+
Requires-Dist: anthropic>=0.25.0
|
|
15
|
+
Requires-Dist: pypdf2>=3.0.0
|
|
16
|
+
Requires-Dist: python-docx>=1.0.0
|
|
17
|
+
Requires-Dist: watchdog>=4.0.0
|
|
18
|
+
Requires-Dist: fastapi>=0.110.0
|
|
19
|
+
Requires-Dist: uvicorn>=0.27.0
|
|
20
|
+
Requires-Dist: jinja2>=3.1.0
|
|
21
|
+
Requires-Dist: tree-sitter>=0.20.0
|
|
22
|
+
Requires-Dist: tree-sitter-languages>=1.7.0
|
|
23
|
+
Requires-Dist: sentence-transformers>=2.2.0
|
|
24
|
+
Requires-Dist: numpy>=1.24.0
|
|
25
|
+
Requires-Dist: pyfiglet>=1.0.2
|
|
26
|
+
Requires-Dist: colorama>=0.4.6
|
|
27
|
+
Dynamic: license-file
|
|
28
|
+
|
|
29
|
+
# DimagX 🧠
|
|
30
|
+
|
|
31
|
+
> **Project brain for coding agents.**
|
|
32
|
+
> One command. Persistent memory. Switch models freely — your agent always knows where you left off.
|
|
33
|
+
>
|
|
34
|
+
> [View Changelog](./CHANGELOG.md) | [Documentation](./docs/architecture.md)
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## The Problem
|
|
39
|
+
|
|
40
|
+
Every time you start a new coding session, your agent reads your entire codebase from scratch. Switch from Claude to Cursor to GPT-4 — you re-explain everything. Your PRDs, decisions, and context live nowhere.
|
|
41
|
+
|
|
42
|
+
## The Solution
|
|
43
|
+
|
|
44
|
+
DimagX builds a **persistent memory graph** for your project — code, features, prompts, PRDs, git history, and architectural decisions — and exposes it to any coding agent via MCP.
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
Without DimagX With DimagX
|
|
48
|
+
───────────────────── ─────────────────────
|
|
49
|
+
New session → agent reads New session → agent calls
|
|
50
|
+
50 files, asks you to get_context() → instantly
|
|
51
|
+
re-explain everything oriented, no re-explaining
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## How It Works
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
your-project/
|
|
60
|
+
└── .dimagx/ ← created by dimagx init
|
|
61
|
+
├── config.yaml ← project identity
|
|
62
|
+
├── graph.db ← Kuzu embedded graph (gitignored)
|
|
63
|
+
└── prd/ ← drop PRDs here
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
DimagX indexes your codebase into a graph with 8 node types:
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
Project → File → Symbol → Feature → Prompt → PRD → Decision → Commit
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
Your coding agent queries this graph via MCP instead of re-reading everything.
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## v0.2.0: Semantic Memory & Code Symbols 🚀
|
|
77
|
+
|
|
78
|
+
DimagX now goes deeper than just file names. It understands **what's inside** your code and can search your memory **semantically**.
|
|
79
|
+
|
|
80
|
+
### 1. Symbol-Level Indexing
|
|
81
|
+
Using **Tree-sitter**, DimagX extracts classes and functions from your code.
|
|
82
|
+
- Filter by `Symbol` nodes in your memory.
|
|
83
|
+
- Instant access to function definitions and class structures.
|
|
84
|
+
- Supported languages: Python, JavaScript, TypeScript, Go, Rust, Java, and more.
|
|
85
|
+
|
|
86
|
+
### 2. Semantic Search (Embeddings)
|
|
87
|
+
The `query_memory(question)` tool now uses **Vector Embeddings** (`sentence-transformers`).
|
|
88
|
+
- Doesn't rely on keyword matching.
|
|
89
|
+
- Asks "How do I handle auth?" and finds the relevant PRD, File, and Feature even if they don't contain the word "auth".
|
|
90
|
+
- Local execution — no tokens sent to external embedding providers.
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## Install
|
|
95
|
+
|
|
96
|
+
### Requirements
|
|
97
|
+
- Python 3.10+
|
|
98
|
+
- pip
|
|
99
|
+
|
|
100
|
+
### From source
|
|
101
|
+
|
|
102
|
+
```bash
|
|
103
|
+
git clone https://github.com/yourname/dimagx
|
|
104
|
+
cd dimagx
|
|
105
|
+
pip install -e .
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
### Verify
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
dimagx --help
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Quick Start
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
# Go to any project — new or existing
|
|
120
|
+
cd my-project
|
|
121
|
+
|
|
122
|
+
# Initialize DimagX (scans files, git history, builds graph)
|
|
123
|
+
dimagx init
|
|
124
|
+
|
|
125
|
+
# See what's in memory
|
|
126
|
+
dimagx status
|
|
127
|
+
|
|
128
|
+
# See where you left off
|
|
129
|
+
dimagx context
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## All Commands
|
|
135
|
+
|
|
136
|
+
### Project
|
|
137
|
+
```bash
|
|
138
|
+
dimagx init # Scan project, build memory graph
|
|
139
|
+
dimagx status # Memory dashboard — node counts per layer
|
|
140
|
+
dimagx context # Human summary: features, commits, prompts, PRDs
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Features
|
|
144
|
+
```bash
|
|
145
|
+
dimagx feature start "Pricing Engine" # Tag what you're working on
|
|
146
|
+
dimagx feature done "Pricing Engine" # Mark it complete
|
|
147
|
+
dimagx feature list # Show all features + status
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### PRDs
|
|
151
|
+
```bash
|
|
152
|
+
# Single file (MD, PDF, DOCX, TXT supported)
|
|
153
|
+
dimagx prd ingest ./docs/pricing.md
|
|
154
|
+
|
|
155
|
+
# Bulk — ingest entire folder
|
|
156
|
+
dimagx prd ingest --dir ./docs/prd/
|
|
157
|
+
|
|
158
|
+
# List and inspect
|
|
159
|
+
dimagx prd list
|
|
160
|
+
dimagx prd show "Pricing Engine"
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
> PRD ingestion requires an Anthropic API key for AI summarization.
|
|
164
|
+
> Set `ANTHROPIC_API_KEY` in your environment.
|
|
165
|
+
|
|
166
|
+
### Decisions (Architectural Decision Records)
|
|
167
|
+
```bash
|
|
168
|
+
dimagx decision add # Interactive — prompts for title, context, choice, reason
|
|
169
|
+
dimagx decision list # Show all decisions
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
### File Watcher
|
|
173
|
+
```bash
|
|
174
|
+
dimagx watch # Foreground — auto re-index on file save
|
|
175
|
+
dimagx watch --background # Background daemon
|
|
176
|
+
dimagx watch --stop # Stop background watcher
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### Git Hook
|
|
180
|
+
```bash
|
|
181
|
+
# Auto-installed on dimagx init if .git exists
|
|
182
|
+
# Manual control:
|
|
183
|
+
dimagx hook install # Install post-commit hook
|
|
184
|
+
dimagx hook uninstall # Remove hook
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
### MCP Server
|
|
188
|
+
```bash
|
|
189
|
+
dimagx mcp # Start MCP server + show agent config
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## Connect to Your Coding Agent
|
|
195
|
+
|
|
196
|
+
Add to your agent config and it automatically calls `get_context()` at the start of every session.
|
|
197
|
+
|
|
198
|
+
**Claude Code** — `.claude/mcp.json`
|
|
199
|
+
```json
|
|
200
|
+
{
|
|
201
|
+
"mcpServers": {
|
|
202
|
+
"dimagx": {
|
|
203
|
+
"command": "dimagx-mcp"
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
**Cursor / Windsurf** — `.cursor/mcp.json`
|
|
210
|
+
```json
|
|
211
|
+
{
|
|
212
|
+
"mcpServers": {
|
|
213
|
+
"dimagx": {
|
|
214
|
+
"command": "dimagx-mcp"
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
### MCP Tools Available to Your Agent
|
|
221
|
+
|
|
222
|
+
| Tool | When to call | What it returns |
|
|
223
|
+
|---|---|---|
|
|
224
|
+
| `get_context()` | Start of every session | Full project orientation |
|
|
225
|
+
| `query_memory(question)` | Before asking the user anything | Relevant memory nodes |
|
|
226
|
+
| `log_prompt(text, summary, outcome)` | After completing a task | Stores in graph |
|
|
227
|
+
| `add_decision(title, context, choice, reason)` | After an architectural decision | Stored as ADR |
|
|
228
|
+
| `get_features(status?)` | When planning work | Feature list |
|
|
229
|
+
| `get_files(feature?, language?)` | When navigating codebase | Filtered file list |
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## PRD Ingestion
|
|
234
|
+
|
|
235
|
+
DimagX reads your PRD, summarizes it with AI, extracts features, and links everything in the graph.
|
|
236
|
+
|
|
237
|
+
```bash
|
|
238
|
+
export ANTHROPIC_API_KEY=sk-ant-...
|
|
239
|
+
|
|
240
|
+
# Single file
|
|
241
|
+
dimagx prd ingest ./docs/auth_prd.md
|
|
242
|
+
|
|
243
|
+
# Bulk folder
|
|
244
|
+
dimagx prd ingest --dir ./docs/prd/
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
Supported formats: `.md` `.pdf` `.docx` `.txt`
|
|
248
|
+
|
|
249
|
+
Multi-PRD projects are fully supported — each PRD is a separate node linked to its features:
|
|
250
|
+
|
|
251
|
+
```
|
|
252
|
+
prd_auth → covers → [OTP Login, Session Mgmt, RBAC]
|
|
253
|
+
prd_pricing → covers → [GST Calc, Discount Engine, Charges]
|
|
254
|
+
prd_store → covers → [QR Menu, Cart, Online Payment]
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## Daily Workflow
|
|
260
|
+
|
|
261
|
+
```bash
|
|
262
|
+
cd my-project
|
|
263
|
+
|
|
264
|
+
# Morning — see where you left off
|
|
265
|
+
dimagx context
|
|
266
|
+
|
|
267
|
+
# Start a feature
|
|
268
|
+
dimagx feature start "Online Store"
|
|
269
|
+
|
|
270
|
+
# Start background watcher
|
|
271
|
+
dimagx watch --background
|
|
272
|
+
|
|
273
|
+
# Work normally — files auto-indexed, commits auto-logged
|
|
274
|
+
|
|
275
|
+
# Log a decision
|
|
276
|
+
dimagx decision add
|
|
277
|
+
|
|
278
|
+
# End of day — check memory
|
|
279
|
+
dimagx status
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
---
|
|
283
|
+
|
|
284
|
+
## What Gets Stored Automatically
|
|
285
|
+
|
|
286
|
+
| Layer | Source | How |
|
|
287
|
+
|---|---|---|
|
|
288
|
+
| Files | Codebase | Auto on `init` + `watch` |
|
|
289
|
+
| Git commits | Git history | Auto on `init` + post-commit hook |
|
|
290
|
+
| Features | You | `dimagx feature start` |
|
|
291
|
+
| PRDs | You drop files | `dimagx prd ingest` or auto via `watch` |
|
|
292
|
+
| Prompts | Agent sessions | MCP `log_prompt()` |
|
|
293
|
+
| Decisions | You / agent | `dimagx decision add` / MCP |
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## Architecture
|
|
298
|
+
|
|
299
|
+
```
|
|
300
|
+
┌─────────────────────────────────────────┐
|
|
301
|
+
│ Your Codebase │
|
|
302
|
+
└──────────────┬──────────────────────────┘
|
|
303
|
+
│ dimagx init / watch
|
|
304
|
+
▼
|
|
305
|
+
┌─────────────────────────────────────────┐
|
|
306
|
+
│ DimagX Memory Graph │
|
|
307
|
+
│ (Kuzu embedded graph DB — .dimagx/) │
|
|
308
|
+
│ │
|
|
309
|
+
│ Project ── File ── Feature │
|
|
310
|
+
│ │ │ │ │
|
|
311
|
+
│ Commit Symbol PRD │
|
|
312
|
+
│ │ │ │
|
|
313
|
+
│ Prompt ── Decision │
|
|
314
|
+
└──────────────┬──────────────────────────┘
|
|
315
|
+
│ MCP (stdio)
|
|
316
|
+
▼
|
|
317
|
+
┌─────────────────────────────────────────┐
|
|
318
|
+
│ Any Coding Agent │
|
|
319
|
+
│ Claude Code / Cursor / Windsurf / etc │
|
|
320
|
+
└─────────────────────────────────────────┘
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
## Stack
|
|
326
|
+
|
|
327
|
+
| Component | Library |
|
|
328
|
+
|---|---|
|
|
329
|
+
| Graph DB | [Kuzu](https://kuzudb.com/) — embedded, no server needed |
|
|
330
|
+
| CLI | [Typer](https://typer.tiangolo.com/) + [Rich](https://rich.readthedocs.io/) |
|
|
331
|
+
| Agent protocol | [MCP Python SDK](https://github.com/modelcontextprotocol/python-sdk) |
|
|
332
|
+
| File watcher | [Watchdog](https://python-watchdog.readthedocs.io/) |
|
|
333
|
+
| PRD summarization | [Anthropic SDK](https://github.com/anthropics/anthropic-sdk-python) |
|
|
334
|
+
| Code parsing | [Tree-sitter](https://tree-sitter.github.io/tree-sitter/) |
|
|
335
|
+
| Embeddings | [Sentence-Transformers](https://sbert.net/) |
|
|
336
|
+
|
|
337
|
+
---
|
|
338
|
+
|
|
339
|
+
## Project Structure
|
|
340
|
+
|
|
341
|
+
```
|
|
342
|
+
dimagx/
|
|
343
|
+
├── dimagx/
|
|
344
|
+
│ ├── __init__.py # Package entry
|
|
345
|
+
│ ├── cli.py # All CLI commands
|
|
346
|
+
│ ├── mcp_server.py # MCP server + tools
|
|
347
|
+
│ ├── graph.py # Kuzu schema (7 nodes, 10 relationships)
|
|
348
|
+
│ ├── db.py # DB upsert helpers
|
|
349
|
+
│ ├── scanner.py # Stack detection, file scan, git history
|
|
350
|
+
│ ├── config.py # .dimagx/config.yaml read/write
|
|
351
|
+
│ ├── prd.py # PRD extraction + AI summarization
|
|
352
|
+
│ ├── watcher.py # File system watcher
|
|
353
|
+
│ ├── watcher_daemon.py # Background daemon entry point
|
|
354
|
+
│ ├── githook.py # Git hook installer + commit logger
|
|
355
|
+
│ ├── commit_log.py # Called by post-commit hook
|
|
356
|
+
│ ├── symbols.py # Tree-sitter symbol extraction
|
|
357
|
+
│ └── embeddings.py # Local vector embedding generation
|
|
358
|
+
├── pyproject.toml
|
|
359
|
+
├── setup.py
|
|
360
|
+
└── README.md
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
---
|
|
364
|
+
|
|
365
|
+
## Roadmap
|
|
366
|
+
|
|
367
|
+
- [x] Semantic search (embeddings) in `query_memory`
|
|
368
|
+
- [x] Tree-sitter code parsing — function/class level indexing
|
|
369
|
+
- [x] Framework-specific entity extraction (Flutter, React, FastAPI)
|
|
370
|
+
- [x] Bug tracking commands & auto-detection
|
|
371
|
+
- [x] Hierarchical Graph View (`dimagx graph`)
|
|
372
|
+
- [x] `dimagx feature update` — add description post-creation
|
|
373
|
+
- [x] Web UI — browser-based memory explorer
|
|
374
|
+
- [ ] PyPI publish — `pip install dimagx`
|
|
375
|
+
- [ ] VS Code extension
|
|
376
|
+
|
|
377
|
+
---
|
|
378
|
+
|
|
379
|
+
## Contributing
|
|
380
|
+
|
|
381
|
+
PRs welcome. Please open an issue first for major changes.
|
|
382
|
+
|
|
383
|
+
```bash
|
|
384
|
+
git clone https://github.com/yourname/dimagx
|
|
385
|
+
cd dimagx
|
|
386
|
+
pip install -e .
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
---
|
|
390
|
+
|
|
391
|
+
## License
|
|
392
|
+
|
|
393
|
+
MIT — use it, fork it, build on it.
|
|
394
|
+
|
|
395
|
+
---
|
|
396
|
+
|
|
397
|
+
## Built by
|
|
398
|
+
|
|
399
|
+
[@syedhussainmehdi](https://github.com/shmehdi01) - SYED HUSSAIN MEHDI.
|
|
400
|
+
|
|
401
|
+
> *"Dimaag" (دماغ) means brain in Urdu/Hindi. DimagX is the brain your coding agent never had.*
|