codevira 1.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.
Files changed (58) hide show
  1. codevira-1.6.0.dist-info/LICENSE +21 -0
  2. codevira-1.6.0.dist-info/METADATA +477 -0
  3. codevira-1.6.0.dist-info/RECORD +58 -0
  4. codevira-1.6.0.dist-info/WHEEL +5 -0
  5. codevira-1.6.0.dist-info/entry_points.txt +2 -0
  6. codevira-1.6.0.dist-info/top_level.txt +2 -0
  7. indexer/__init__.py +1 -0
  8. indexer/chunker.py +428 -0
  9. indexer/global_db.py +197 -0
  10. indexer/graph_generator.py +380 -0
  11. indexer/index_codebase.py +588 -0
  12. indexer/outcome_tracker.py +172 -0
  13. indexer/rule_learner.py +186 -0
  14. indexer/sqlite_graph.py +640 -0
  15. indexer/treesitter_parser.py +423 -0
  16. mcp_server/__init__.py +1 -0
  17. mcp_server/__main__.py +20 -0
  18. mcp_server/auto_init.py +257 -0
  19. mcp_server/cli.py +622 -0
  20. mcp_server/crash_logger.py +236 -0
  21. mcp_server/data/__init__.py +1 -0
  22. mcp_server/data/agents/builder.md +84 -0
  23. mcp_server/data/agents/developer.md +111 -0
  24. mcp_server/data/agents/documenter.md +138 -0
  25. mcp_server/data/agents/orchestrator.md +96 -0
  26. mcp_server/data/agents/planner.md +106 -0
  27. mcp_server/data/agents/reviewer.md +82 -0
  28. mcp_server/data/agents/tester.md +83 -0
  29. mcp_server/data/config.example.yaml +33 -0
  30. mcp_server/data/rules/coding-standards.md +48 -0
  31. mcp_server/data/rules/engineering-excellence.md +28 -0
  32. mcp_server/data/rules/git-cicd-governance.md +32 -0
  33. mcp_server/data/rules/git_commits.md +130 -0
  34. mcp_server/data/rules/incremental-updates.md +5 -0
  35. mcp_server/data/rules/master_rule.md +187 -0
  36. mcp_server/data/rules/multi-language.md +19 -0
  37. mcp_server/data/rules/persistence.md +21 -0
  38. mcp_server/data/rules/resilience-observability.md +17 -0
  39. mcp_server/data/rules/smoke-testing.md +48 -0
  40. mcp_server/data/rules/testing-standards.md +23 -0
  41. mcp_server/detect.py +284 -0
  42. mcp_server/gitignore.py +284 -0
  43. mcp_server/global_sync.py +187 -0
  44. mcp_server/http_server.py +341 -0
  45. mcp_server/ide_inject.py +444 -0
  46. mcp_server/launchd.py +156 -0
  47. mcp_server/migrate.py +215 -0
  48. mcp_server/paths.py +256 -0
  49. mcp_server/prompts.py +136 -0
  50. mcp_server/server.py +1049 -0
  51. mcp_server/tools/__init__.py +0 -0
  52. mcp_server/tools/changesets.py +223 -0
  53. mcp_server/tools/code_reader.py +335 -0
  54. mcp_server/tools/graph.py +637 -0
  55. mcp_server/tools/learning.py +238 -0
  56. mcp_server/tools/playbook.py +89 -0
  57. mcp_server/tools/roadmap.py +599 -0
  58. mcp_server/tools/search.py +145 -0
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Sachin Shelke <sachin.worldnet@gmail.com>
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.
@@ -0,0 +1,477 @@
1
+ Metadata-Version: 2.2
2
+ Name: codevira
3
+ Version: 1.6.0
4
+ Summary: Persistent adaptive memory for AI coding agents — MCP server with context graph, semantic search, adaptive learning, roadmap tracking, and cross-tool continuity.
5
+ Author-email: Sachin Shelke <sachin.worldnet@gmail.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/sachinshelke/codevira
8
+ Project-URL: Repository, https://github.com/sachinshelke/codevira
9
+ Project-URL: Issues, https://github.com/sachinshelke/codevira/issues
10
+ Project-URL: Changelog, https://github.com/sachinshelke/codevira/blob/main/CHANGELOG.md
11
+ Keywords: mcp,model-context-protocol,ai-agents,llm,developer-tools,claude,cursor,windsurf,code-intelligence,semantic-search,context-graph,chromadb,agentic,coding-assistant,knowledge-graph
12
+ Classifier: Development Status :: 4 - Beta
13
+ Classifier: Intended Audience :: Developers
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
21
+ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
22
+ Classifier: Topic :: Software Development :: Build Tools
23
+ Requires-Python: >=3.10
24
+ Description-Content-Type: text/markdown
25
+ License-File: LICENSE
26
+ Requires-Dist: pyyaml>=6.0
27
+ Requires-Dist: mcp>=1.0.0
28
+ Requires-Dist: watchdog>=3.0.0
29
+ Requires-Dist: tree-sitter>=0.23.0
30
+ Requires-Dist: tree-sitter-language-pack<1.0.0,>=0.13.0
31
+ Requires-Dist: rich>=13.0.0
32
+ Requires-Dist: uvicorn>=0.27.0
33
+ Requires-Dist: starlette>=0.36.0
34
+ Requires-Dist: pathspec>=0.12.0
35
+ Provides-Extra: search
36
+ Requires-Dist: chromadb>=0.5.0; extra == "search"
37
+ Requires-Dist: sentence-transformers>=2.7.0; extra == "search"
38
+ Provides-Extra: all
39
+ Requires-Dist: chromadb>=0.5.0; extra == "all"
40
+ Requires-Dist: sentence-transformers>=2.7.0; extra == "all"
41
+
42
+ # Codevira MCP
43
+
44
+ > Persistent adaptive memory for AI coding agents — learns from every session, works with every tool, remembers across every project.
45
+
46
+ [![Python](https://img.shields.io/badge/python-3.10%2B-blue)](https://www.python.org/)
47
+ [![License: MIT](https://img.shields.io/badge/license-MIT-green)](LICENSE)
48
+ [![MCP](https://img.shields.io/badge/protocol-MCP-purple)](https://modelcontextprotocol.io)
49
+ [![Version](https://img.shields.io/badge/version-1.6.0-orange)](CHANGELOG.md)
50
+ [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen)](CONTRIBUTING.md)
51
+
52
+ **Works with:** Claude Code · Claude Desktop · Cursor · Windsurf · Google Antigravity · any MCP-compatible AI tool
53
+
54
+ ---
55
+
56
+ ## The Problem
57
+
58
+ Every time you start a new AI coding session, your agent starts from zero.
59
+
60
+ It re-reads files it has seen before. It re-discovers patterns already established. It makes decisions that contradict last week's decisions. It has no idea what phase the project is in, what's already been tried, or why certain files are off-limits.
61
+
62
+ You end up spending thousands of tokens on re-discovery — every single session.
63
+
64
+ **Codevira fixes this.**
65
+
66
+ ---
67
+
68
+ ## What It Does
69
+
70
+ Codevira is a [Model Context Protocol](https://modelcontextprotocol.io) server that gives every AI agent working on your codebase a shared, persistent memory:
71
+
72
+ | Capability | What It Means |
73
+ |---|---|
74
+ | **Zero-config setup** | Auto-detects language, source dirs, and file extensions; auto-injects IDE config — no prompts, no manual JSON editing |
75
+ | **Live auto-watch** | Background file watcher auto-reindexes on every save — no manual trigger needed |
76
+ | **Context graph** | Every source file has a node: role, rules, dependencies, stability, `do_not_revert` flags |
77
+ | **Function-level call graph** | Knows which function calls which — callers, callees, test coverage, risk scoring |
78
+ | **Semantic code search** | Natural language search across your codebase (optional — requires `[search]` extras) |
79
+ | **Roadmap** | Phase-based tracker so agents always know what phase you're in and what comes next |
80
+ | **Changeset tracking** | Multi-file changes tracked atomically; sessions resume cleanly after interruption |
81
+ | **Decision log** | Every session writes a structured log; past decisions are searchable by any future agent |
82
+ | **Adaptive learning** | Outcome tracking, confidence scoring, developer preference learning, and automatic rule inference |
83
+ | **Cross-project memory** | Learned preferences and rules sync across all your projects via `~/.codevira/global.db` |
84
+ | **Cross-tool continuity** | Single "catch me up" call for seamless switching between Cursor, Claude Code, Windsurf, and Antigravity |
85
+
86
+ **The result:** ~1,400 tokens of overhead per session instead of 15,000+ tokens of re-discovery.
87
+
88
+ ---
89
+
90
+ ## Quick Start
91
+
92
+ ### 1. Install
93
+
94
+ ```bash
95
+ # Recommended: global install via pipx (isolated, works everywhere)
96
+ pipx install codevira
97
+
98
+ # Alternative: pip install
99
+ pip install codevira
100
+
101
+ # With semantic search support (adds ChromaDB + sentence-transformers)
102
+ pip install 'codevira[search]'
103
+ ```
104
+
105
+ ### 2. Register with your AI tools
106
+
107
+ ```bash
108
+ cd your-project
109
+ codevira register
110
+ ```
111
+
112
+ This single command — with zero prompts:
113
+ - Auto-detects language, source directories, and file extensions from project markers
114
+ - **Auto-injects MCP config** into Claude Code, Cursor, Windsurf, and Google Antigravity
115
+ - Installs a `post-commit` git hook for automatic reindexing
116
+
117
+ No explicit `codevira init` needed — the project is automatically initialized on the first MCP tool call (auto-init creates config, graph database, index, and roadmap on demand).
118
+
119
+ > **Note:** `codevira init` is still available if you prefer to initialize upfront, but it is no longer a required step.
120
+
121
+ ### 3. Verify
122
+
123
+ Ask your AI agent to call `get_roadmap()` — it should return your current phase and next action.
124
+
125
+ > **Note:** After `codevira init`, restart your AI tool to pick up the new MCP server config.
126
+
127
+ ### Manual config (only if auto-inject didn't detect your tool)
128
+
129
+ Codevira supports two transports. Use the right one for your client:
130
+
131
+ | Client | Transport | Config file |
132
+ |--------|-----------|-------------|
133
+ | Claude Desktop (app) | stdio | `~/Library/Application Support/Claude/claude_desktop_config.json` |
134
+ | Claude Code (CLI) | stdio or HTTP | `.claude/settings.json` |
135
+ | Cursor | stdio | `.cursor/mcp.json` |
136
+ | Windsurf | stdio | `.windsurf/mcp.json` |
137
+ | Google Antigravity | stdio | `~/.gemini/settings/mcp_config.json` |
138
+
139
+ **Stdio transport** — Claude Desktop, Cursor, Windsurf (`.claude/settings.json` / `.cursor/mcp.json` / `.windsurf/mcp.json`):
140
+ ```json
141
+ {
142
+ "mcpServers": {
143
+ "codevira": {
144
+ "command": "codevira",
145
+ "args": [],
146
+ "cwd": "/path/to/your-project"
147
+ }
148
+ }
149
+ }
150
+ ```
151
+
152
+ **Claude Desktop** (`~/Library/Application Support/Claude/claude_desktop_config.json`):
153
+ ```json
154
+ {
155
+ "mcpServers": {
156
+ "codevira": {
157
+ "command": "/path/to/codevira",
158
+ "args": ["--project-dir", "/path/to/your-project"]
159
+ }
160
+ }
161
+ }
162
+ ```
163
+
164
+ > Tip: find the full binary path with `which codevira`
165
+
166
+ **HTTP transport** — Claude Code CLI via `codevira serve` (`.claude/settings.json`):
167
+
168
+ First start the HTTP server in a terminal:
169
+ ```bash
170
+ codevira serve --port 7007 --project-dir /path/to/your-project
171
+ # For HTTPS (required by some clients):
172
+ codevira serve --https --port 7443 --project-dir /path/to/your-project
173
+ ```
174
+
175
+ Then register the URL:
176
+ ```json
177
+ {
178
+ "mcpServers": {
179
+ "codevira": {
180
+ "url": "https://localhost:7443/mcp"
181
+ }
182
+ }
183
+ }
184
+ ```
185
+
186
+ > **HTTPS note:** Claude Code uses Node.js, which requires a trusted CA for HTTPS.
187
+ > Run once to trust the mkcert CA:
188
+ > ```bash
189
+ > brew install mkcert && mkcert -install
190
+ > launchctl setenv NODE_EXTRA_CA_CERTS "$(mkcert -CAROOT)/rootCA.pem"
191
+ > echo 'export NODE_EXTRA_CA_CERTS="$(mkcert -CAROOT)/rootCA.pem"' >> ~/.zshrc
192
+ > ```
193
+ > Then restart Claude Code.
194
+
195
+ **Auto-start on login (macOS):**
196
+ ```bash
197
+ codevira serve --install-service # start server automatically on login
198
+ codevira serve --uninstall-service # remove auto-start
199
+ ```
200
+
201
+ **Google Antigravity** (`~/.gemini/settings/mcp_config.json`):
202
+ ```json
203
+ {
204
+ "mcpServers": {
205
+ "codevira-yourproject": {
206
+ "$typeName": "exa.cascade_plugins_pb.CascadePluginCommandTemplate",
207
+ "command": "codevira",
208
+ "args": ["--project-dir", "/path/to/your-project"]
209
+ }
210
+ }
211
+ }
212
+ ```
213
+
214
+ ### Codevira data layout (v1.6)
215
+
216
+ ```
217
+ ~/.codevira/ <- global Codevira home
218
+ ├── global.db <- cross-project intelligence
219
+ ├── projects/
220
+ │ └── <project-key>/ <- per-project data (keyed by path)
221
+ │ ├── config.yaml
222
+ │ ├── metadata.json
223
+ │ ├── graph/
224
+ │ │ ├── graph.db
225
+ │ │ └── changesets/
226
+ │ ├── codeindex/ <- semantic search (optional)
227
+ │ └── logs/
228
+ └── certs/ <- HTTPS certs (if using --https)
229
+ ```
230
+
231
+ > Legacy `.codevira/` directories inside project repos are auto-migrated to centralized storage on first server start.
232
+
233
+ ---
234
+
235
+ ## How It Works
236
+
237
+ ### Agent Session Lifecycle
238
+
239
+ ```mermaid
240
+ flowchart TB
241
+
242
+ Start([Start Session])
243
+
244
+ subgraph Orientation
245
+ A[Check Open Changesets]
246
+ B[Get Project Roadmap]
247
+ C[Search Past Decisions]
248
+ D[Load Graph Context\nget_node - get_impact]
249
+ end
250
+
251
+ subgraph Execution
252
+ E[Plan Task]
253
+ F[Implement Code]
254
+ G[Run Tests / Validation]
255
+ end
256
+
257
+ subgraph Completion
258
+ H[Update Graph Metadata]
259
+ I[Write Session Log]
260
+ J[Complete Changeset]
261
+ end
262
+
263
+ Start --> A
264
+ A --> B
265
+ B --> C
266
+ C --> D
267
+ D --> E
268
+ E --> F
269
+ F --> G
270
+ G --> H
271
+ H --> I
272
+ I --> J
273
+ ```
274
+
275
+ ### Code Intelligence Model
276
+
277
+ ```mermaid
278
+ flowchart TB
279
+
280
+ A[Source Code]
281
+
282
+ subgraph Structural Analysis
283
+ B[Tree-sitter AST Parser]
284
+ C[Function / Class Extraction]
285
+ D[Dependency + Call Graph Analysis]
286
+ end
287
+
288
+ subgraph Knowledge Stores
289
+ E[(Semantic Index\nChromaDB — optional)]
290
+ F[(Context Graph + Call Graph\nSQLite DB)]
291
+ G[(Global Memory\n~/.codevira/global.db)]
292
+ end
293
+
294
+ subgraph Runtime Access
295
+ H[MCP Query Layer\n36 tools + 5 prompts]
296
+ end
297
+
298
+ I[AI Coding Agent\nClaude Code - Cursor - Windsurf - Antigravity]
299
+
300
+ A --> B
301
+ B --> C
302
+ C --> E
303
+
304
+ B --> D
305
+ D --> F
306
+
307
+ F --> H
308
+ E --> H
309
+ G --> H
310
+
311
+ H --> I
312
+ ```
313
+
314
+ ---
315
+
316
+ ## Session Protocol
317
+
318
+ Every agent session follows a simple protocol. Set it up once in your agent's system prompt — then your agents handle the rest.
319
+
320
+ **Session start (mandatory):**
321
+ ```
322
+ list_open_changesets() -> resume any unfinished work first
323
+ get_roadmap() -> current phase, next action
324
+ search_decisions("topic") -> check what's already been decided
325
+ get_node("src/service.py") -> read rules before touching a file
326
+ get_impact("src/service.py") -> check blast radius
327
+ ```
328
+
329
+ **Session end (mandatory):**
330
+ ```
331
+ complete_changeset(id, decisions=[...])
332
+ update_node(file_path, changes)
333
+ update_next_action("what the next agent should do")
334
+ write_session_log(...)
335
+ ```
336
+
337
+ This loop keeps every session fast, focused, and resumable.
338
+
339
+ ---
340
+
341
+ ## 36 MCP Tools + 5 Prompts
342
+
343
+ ### Graph Tools
344
+ | Tool | Description |
345
+ |---|---|
346
+ | `get_node(file_path)` | Metadata, rules, connections, staleness for any file |
347
+ | `get_impact(file_path)` | BFS blast-radius — which files depend on this one |
348
+ | `list_nodes(layer?, stability?, do_not_revert?)` | Query nodes by attribute |
349
+ | `add_node(file_path, role, type, ...)` | Register a new file in the graph |
350
+ | `update_node(file_path, changes)` | Append rules, connections, key_functions |
351
+ | `refresh_graph(file_paths?)` | Auto-generate stubs for unregistered files |
352
+ | `refresh_index(file_paths?)` | Re-embed specific files in the search index |
353
+ | `export_graph(format, scope?)` | Export dependency graph as Mermaid or DOT diagram |
354
+ | `get_graph_diff(base_ref?, head_ref?)` | Show changed nodes, stability flags, and blast radius between git refs |
355
+
356
+ ### Deep Graph Tools (v1.5)
357
+ | Tool | Description |
358
+ |---|---|
359
+ | `query_graph(file_path, symbol?, query_type)` | Function-level: callers, callees, tests, dependents, symbols |
360
+ | `analyze_changes(base_ref?, head_ref?)` | Function-level risk scoring with test coverage gaps |
361
+ | `find_hotspots(threshold?)` | Large functions, high fan-in, high fan-out — complexity heatmap |
362
+
363
+ ### Roadmap Tools
364
+ | Tool | Description |
365
+ |---|---|
366
+ | `get_roadmap()` | Current phase, next action, open changesets |
367
+ | `get_full_roadmap()` | Complete history: all phases, decisions, deferred |
368
+ | `get_phase(number)` | Full details of any phase by number |
369
+ | `update_next_action(text)` | Set what the next agent should do |
370
+ | `update_phase_status(status)` | Mark phase in_progress / blocked |
371
+ | `add_phase(phase, name, description, ...)` | Queue new upcoming work |
372
+ | `complete_phase(number, key_decisions)` | Mark done, auto-advance to next |
373
+ | `defer_phase(number, reason)` | Move a phase to the deferred list |
374
+
375
+ ### Changeset Tools
376
+ | Tool | Description |
377
+ |---|---|
378
+ | `list_open_changesets()` | All in-progress changesets |
379
+ | `start_changeset(id, description, files)` | Open a multi-file changeset |
380
+ | `complete_changeset(id, decisions)` | Close and record decisions |
381
+ | `update_changeset_progress(id, last_file, blocker?)` | Mid-session checkpoint |
382
+
383
+ ### Search Tools
384
+ | Tool | Description |
385
+ |---|---|
386
+ | `search_codebase(query, limit?)` | Semantic search over source code (requires `[search]` extras) |
387
+ | `search_decisions(query, limit?, session_id?)` | Search all past session decisions |
388
+ | `get_history(file_path)` | All sessions that touched a file |
389
+ | `write_session_log(...)` | Write structured session record |
390
+
391
+ ### Adaptive Learning Tools
392
+ | Tool | Description |
393
+ |---|---|
394
+ | `get_decision_confidence(file_path?, pattern?)` | Outcome-based reliability scores |
395
+ | `get_preferences(category?)` | Learned developer style preferences |
396
+ | `get_learned_rules(file_path?, category?)` | Auto-generated rules from observed patterns |
397
+ | `get_project_maturity()` | 0-100 intelligence score |
398
+ | `get_session_context()` | Single "catch me up" call for cross-tool continuity |
399
+
400
+ ### Code Reader Tools
401
+ | Tool | Description |
402
+ |---|---|
403
+ | `get_signature(file_path)` | All public symbols, signatures, line numbers (Python, TypeScript, Go, Rust) |
404
+ | `get_code(file_path, symbol)` | Full source of one function or class |
405
+
406
+ ### Playbook Tool
407
+ | Tool | Description |
408
+ |---|---|
409
+ | `get_playbook(task_type)` | Curated rules for: `add_route`, `add_service`, `add_schema`, `debug_pipeline`, `commit`, `write_test` |
410
+
411
+ ### MCP Workflow Prompts (v1.5)
412
+ | Prompt | Description |
413
+ |---|---|
414
+ | `review_changes` | Staged diff + blast radius + risk score |
415
+ | `debug_issue` | Symptom -> affected files -> call chain -> hypothesis |
416
+ | `onboard_session` | Full project context catch-up for new sessions |
417
+ | `pre_commit_check` | Test coverage gaps + high-risk functions before commit |
418
+ | `architecture_overview` | Module map + hotspots + dependency summary |
419
+
420
+ ---
421
+
422
+ ## Language Support
423
+
424
+ | Feature | Python | TypeScript | Go | Rust | 12+ Others |
425
+ |---|---|---|---|---|---|
426
+ | Context graph + blast radius | Y | Y | Y | Y | Y |
427
+ | Semantic code search | Y | Y | Y | Y | Y |
428
+ | Function-level call graph | Y | Y | Y | Y | |
429
+ | `get_signature` / `get_code` | Y | Y | Y | Y | |
430
+ | AST-based chunking | Y | Y | Y | Y | |
431
+ | Auto-generated graph stubs | Y | Y | Y | Y | |
432
+ | Roadmap + changesets | Y | Y | Y | Y | Y |
433
+ | Session logs + decision search | Y | Y | Y | Y | Y |
434
+
435
+ Supported languages: Python, TypeScript, JavaScript, Go, Rust, Java, Kotlin, C#, Ruby, PHP, C, C++, Swift, Solidity, Vue.
436
+
437
+ ---
438
+
439
+ ## Requirements
440
+
441
+ - **Python 3.10+**
442
+
443
+ Base install (`pip install codevira`): includes everything except semantic search. All 36 MCP tools work — graph, roadmap, changesets, code reader, learning, call graph.
444
+
445
+ With semantic search (`pip install 'codevira[search]'`): adds ChromaDB + sentence-transformers for `search_codebase()`. Downloads a ~90MB embedding model on first use.
446
+
447
+ ---
448
+
449
+ ## Background
450
+
451
+ Want to understand the full story behind why this was built, the design decisions, what didn't work, and how it compares to other tools in the ecosystem?
452
+
453
+ Read the full write-up: [How We Cut AI Coding Agent Token Usage by 92%](docs/how-i-built-persistent-memory-for-ai-agents.md)
454
+
455
+ ---
456
+
457
+ ## Contributing
458
+
459
+ Contributions are welcome. Read [CONTRIBUTING.md](CONTRIBUTING.md) for the full guide.
460
+
461
+ **Reporting a bug?** [Open a bug report](https://github.com/sachinshelke/codevira/issues/new?template=bug_report.md)
462
+ **Requesting a feature?** [Open a feature request](https://github.com/sachinshelke/codevira/issues/new?template=feature_request.md)
463
+ **Found a security issue?** Read [SECURITY.md](SECURITY.md) — please don't use public issues for vulnerabilities.
464
+
465
+ ---
466
+
467
+ ## FAQ
468
+
469
+ Common questions about setup, usage, architecture, and troubleshooting — see [FAQ.md](FAQ.md).
470
+
471
+ ## Roadmap
472
+
473
+ See what's built, what's next, and the long-term vision — see [ROADMAP.md](ROADMAP.md).
474
+
475
+ ## License
476
+
477
+ MIT — free to use, modify, and distribute.
@@ -0,0 +1,58 @@
1
+ indexer/__init__.py,sha256=PZzTE_XpSwyFzh7l682jqK2_5JZfuzMYnMg_5CkC7qA,27
2
+ indexer/chunker.py,sha256=rcrHfU_27t-s5u_ye-m_yrfamZzixUbnnyV3TIGq33w,15062
3
+ indexer/global_db.py,sha256=gAg_zr9u0nBowPK6YcSwe1FXPyt8kFLgPXknLma7hqw,8452
4
+ indexer/graph_generator.py,sha256=bRaeEKjFW6Qm5CP6FLMjRQJblq__u4AaCslzkbwmud0,13522
5
+ indexer/index_codebase.py,sha256=Nkjx6_blNLPZRQ-j6_rMFYThb4k5M41-LKpMOykIfiY,21799
6
+ indexer/outcome_tracker.py,sha256=YmMG9MGjPecJxQ2tmswXaa3xV2Pu8XKf6Wj9Yj5-ekk,6118
7
+ indexer/rule_learner.py,sha256=ay6fDWNKZvLAz8qyorV8aljHIX4wUbtUALSRVZ8JjUw,7256
8
+ indexer/sqlite_graph.py,sha256=RXRazFSRkbp7G00ejVsaEwKFUwuBMekcmRVPOOynuYY,28936
9
+ indexer/treesitter_parser.py,sha256=hU5NZD-7HJXBODD2h_TVJkKh8bagzO9TPi6pb63TqlA,16224
10
+ mcp_server/__init__.py,sha256=jSQ5bH-0VCCifqOOEvAiYFc_GK0ad2vENq8YnuzVQ90,30
11
+ mcp_server/__main__.py,sha256=P0lMnAyDBIyRXh6mb8cuOqTjzTlizJKW22_uP9ErLtw,492
12
+ mcp_server/auto_init.py,sha256=Rk4c7fmRjLDv6RjZMEZwDIbOlfimwFduIFbr0IfeqPg,9953
13
+ mcp_server/cli.py,sha256=GoxXTR2gJG16qjJBtSU2-Tg9Ve8mb9ac9sZEFrKWvUA,23669
14
+ mcp_server/crash_logger.py,sha256=pWDjWIZXVV0MqTsJiKsfwECaMBXm6JrrQhiLTNnq9lA,8473
15
+ mcp_server/detect.py,sha256=alyyPLRQ66lM_OVqcgjzss5yU3DVNlpzJpaekL_v07Y,9373
16
+ mcp_server/gitignore.py,sha256=4V8zbehheFtdzFbT-ckMxi0wP5xP0MMNEMDI5U9wzhY,9483
17
+ mcp_server/global_sync.py,sha256=sw5wHvDNIE8unrg9lk5BPcqwB19Kbfmp7tAizrBAiKA,6590
18
+ mcp_server/http_server.py,sha256=f6FKhkyBlKItQHgnSXInbvkdJMprZfJPfNx_eiVAfig,12053
19
+ mcp_server/ide_inject.py,sha256=EvkWd0rRGRvaBEFJj95nvyTBd_m0cXPHYxzbLvk70hE,17827
20
+ mcp_server/launchd.py,sha256=eb0dh62WTCOdSuV_qQweGs08NXAsiiDvTWUW7LnWYkY,4686
21
+ mcp_server/migrate.py,sha256=ibRR2GgLMT8vOOLoe8jTkjoRRGni4KayWrKD4eNcjyg,7531
22
+ mcp_server/paths.py,sha256=K0cLBIDhZkOSbxAZ0MylKclPlW6dx7mtRWAn7sUMdAI,9806
23
+ mcp_server/prompts.py,sha256=rBn7PWUfRDx7PcCC1JrAC9Xk7dLbXM0Vn8NhoPl7Hyk,6070
24
+ mcp_server/server.py,sha256=sesLt8N93TPedg0IQvdgeDJOjvaotftNAr1RtGNekMU,44168
25
+ mcp_server/data/__init__.py,sha256=gt9uNK2dKtw4v_qI95ywq0ovzZbyrPKwWyeYBtMJ_xY,78
26
+ mcp_server/data/config.example.yaml,sha256=RHz2CqyLMhx83iNGAWLiqcWg8HFd9yVJ4MAMcD5wN2Y,1194
27
+ mcp_server/data/agents/builder.md,sha256=7HDQ4m3jxvwKxAnO7k8HAiT7q5bm4IbviKG5yt4ZdUc,2300
28
+ mcp_server/data/agents/developer.md,sha256=d8zFBo5DyYm6zVXdpy-Ba_czQ2S7xHybVRJ9pjSB-jk,3381
29
+ mcp_server/data/agents/documenter.md,sha256=Bv6SI77hW8Czqnp0dZi81rFp-WeifEv-loMB0k1dvE0,3357
30
+ mcp_server/data/agents/orchestrator.md,sha256=cqdx2RA-qGMNktc4Ci4FZ6Uo3dadvxA1CKj-I2Pa9Yk,3291
31
+ mcp_server/data/agents/planner.md,sha256=o3-64uhR5QVqVA47VSJ3xrSoEEprwUFFEFAFSzxh9js,3027
32
+ mcp_server/data/agents/reviewer.md,sha256=9vKQ2N0_ePg44DYBYl_6kmUcYa3vw3DU5Si2vvl-fXg,2605
33
+ mcp_server/data/agents/tester.md,sha256=FJFKe6mR09iscjVUzuLoWl7tdyyWfPgYXTzaVffNaJ0,2127
34
+ mcp_server/data/rules/coding-standards.md,sha256=BuBaNdWfnAjrzawxtw8yi9kRJ7n8RBssXe7T4SGGCkw,2050
35
+ mcp_server/data/rules/engineering-excellence.md,sha256=SxCzxt8GpAH2LIFkrO0jzn-qHY6DOuLzc59mmyuhDQM,1683
36
+ mcp_server/data/rules/git-cicd-governance.md,sha256=_V7MQNIMjHZBF1wPXhKSNMSeMEklHTiyNj9lI_O33QI,1603
37
+ mcp_server/data/rules/git_commits.md,sha256=Fn8mxrPsxZrpJI6ZCd8RcYTOYXSU0u-nMrd1Y9LWLDs,4268
38
+ mcp_server/data/rules/incremental-updates.md,sha256=2jF2a9yR4dVBKBqyyoAJ0k9oGsj_b9KmYKZWl-5sfdQ,174
39
+ mcp_server/data/rules/master_rule.md,sha256=hFfuV8EM1pBYS1d1dlwJxkP3Y9KPqFen4X6FlmxYYFM,6446
40
+ mcp_server/data/rules/multi-language.md,sha256=vlIiOOJkP5XJkgkji_NVXGCmEqY997JQYdxZR5AZazY,1036
41
+ mcp_server/data/rules/persistence.md,sha256=EHmE-FH1Pc_lhcf9hZRTCk3rctyehqUmaRo0ocDCNsA,1246
42
+ mcp_server/data/rules/resilience-observability.md,sha256=Rur1XG_OozlWMVG9bUJL0AnIujQOPTX1-Cgrrkfla0E,1058
43
+ mcp_server/data/rules/smoke-testing.md,sha256=TpHgxEo29HhVlZfcBF-ku5KxlG4a5GV9cMm8TEFQQlc,2765
44
+ mcp_server/data/rules/testing-standards.md,sha256=IKjvmAZsf2VcNfm5mb1iNdmP14KrgAijQr05MLt_ClY,833
45
+ mcp_server/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
46
+ mcp_server/tools/changesets.py,sha256=Jh97R1oG3VBjf5-9EDVn5aqVpgegRhg_K85YkB-MDOU,7048
47
+ mcp_server/tools/code_reader.py,sha256=h_wmPAQOMiq6xQT8ENUTIt9IwzxkUPls3IJVZqtKkH4,10367
48
+ mcp_server/tools/graph.py,sha256=C2eaf0TGEv0kOZ1jS5WYDEL2knODekFDErUVUxX0dz4,22831
49
+ mcp_server/tools/learning.py,sha256=JuWiwqx8os7fMZNirvfVkCoCIAXGFlRKvQTIa2gcDco,8551
50
+ mcp_server/tools/playbook.py,sha256=SzaV5TXSYhlglRn4fBtzQ6FIPZbAzZJuWnPBNL8TT0M,2432
51
+ mcp_server/tools/roadmap.py,sha256=reRt-8gdyqIMIoKKO8BtzOf3OhvMFT1X0-O9YOpYn6c,20599
52
+ mcp_server/tools/search.py,sha256=ycVm6mVFawYQnYSXvzu4BYef42tU9V90JUL4Rkfb_pM,5075
53
+ codevira-1.6.0.dist-info/LICENSE,sha256=RT8w5eFsZVXuOet_7BMCoT5V91xaSkPxIjpAgAy2Gpw,1098
54
+ codevira-1.6.0.dist-info/METADATA,sha256=dv_5FzFe8reXTmAbKjDfFywDNR07rx1CyQGTDHUxxBs,16803
55
+ codevira-1.6.0.dist-info/WHEEL,sha256=beeZ86-EfXScwlR_HKu4SllMC9wUEj_8Z_4FJ3egI2w,91
56
+ codevira-1.6.0.dist-info/entry_points.txt,sha256=VRAnR4NxB73l7GIGSjfYmSOsrvYL4sGPhpi3Xx69gJA,49
57
+ codevira-1.6.0.dist-info/top_level.txt,sha256=8emn9mD-fhXZj48WspJe_R-RWoNBejJbqZcbHlQ12RY,19
58
+ codevira-1.6.0.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (76.1.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,2 @@
1
+ [console_scripts]
2
+ codevira = mcp_server.cli:main
@@ -0,0 +1,2 @@
1
+ indexer
2
+ mcp_server
indexer/__init__.py ADDED
@@ -0,0 +1 @@
1
+ # Codevira Indexer package