Navegador
docs: update README, CHANGELOG, CLAUDE.md, and version for 0.7.0 Bumps version to 0.7.0. Updates README with new language table (13 langs), 11 MCP tools, framework enrichment, structural analysis, intelligence layer, Python SDK, cluster mode, and additional integrations. Full CHANGELOG covering all 63 issues across v0.2-v0.7. Updated CLAUDE.md package layout.
Commit
4966011eed927bad0fc913ffa8ef01eeab5e28623474689b8d1527212bfa0de5
Parent
c054b6b37525dad…
5 files changed
+79
+26
-8
+93
-1
+1
-1
+19
-2
+79
| --- CHANGELOG.md | ||
| +++ CHANGELOG.md | ||
| @@ -1,6 +1,85 @@ | ||
| 1 | 1 | # Changelog |
| 2 | + | |
| 3 | +## 0.7.0 — 2026-03-23 | |
| 4 | + | |
| 5 | +### v0.2 — Foundation | |
| 6 | + | |
| 7 | +- **Knowledge MCP tools** — `get_rationale`, `find_owners`, `search_knowledge` | |
| 8 | +- **Incremental ingestion** — content-hash-based change detection, `--incremental` flag, `--watch` mode | |
| 9 | +- **Schema versioning and migrations** — `:Meta` node versioning, `navegador migrate` CLI | |
| 10 | +- **Enhanced init** — `config.toml` with storage, LLM, and cluster settings | |
| 11 | +- **Text-based graph export** — deterministic JSONL format for git-friendly diffs | |
| 12 | +- **Editor integrations** — MCP config generation for Claude Code, Cursor, Codex, Windsurf | |
| 13 | +- **CI/CD mode** — `navegador ci ingest/stats/check` with JSON output, exit codes, GitHub Actions annotations | |
| 14 | +- **Python SDK** — `Navegador` class wrapping all internal modules | |
| 15 | +- **Sensitive content detection** — API key, password, token redaction before graph storage | |
| 16 | +- **VCS abstraction** — `GitAdapter` and `FossilAdapter` with auto-detection | |
| 17 | +- **MCP security hardening** — query validation, complexity limits, `--read-only` mode | |
| 18 | +- **Shell completions** — bash, zsh, fish tab completion | |
| 19 | +- **LLM backend abstraction** — unified provider interface for Anthropic, OpenAI, Ollama | |
| 20 | +- **AST optimizations** — LRU tree cache, incremental re-parsing, graph node diffing, parallel ingestion | |
| 21 | + | |
| 22 | +### v0.3 — Framework Intelligence | |
| 23 | + | |
| 24 | +- **Language expansion** — Kotlin, C#, PHP, Ruby, Swift, C, C++ | |
| 25 | +- **FrameworkEnricher base class** — auto-discovery, node promotion, semantic edges | |
| 26 | +- **Framework enrichers** — Django, FastAPI, React/Next.js, Express.js, React Native, Rails, Spring Boot, Laravel | |
| 27 | +- **Monorepo support** — Turborepo, Nx, Yarn, pnpm, Cargo, Go workspace detection | |
| 28 | +- **Git diff integration** — map uncommitted changes to affected symbols and knowledge | |
| 29 | +- **Code churn correlation** — git history analysis for behavioural coupling | |
| 30 | + | |
| 31 | +### v0.4 — Structural + Knowledge | |
| 32 | + | |
| 33 | +- **Impact analysis** — blast-radius traversal with MCP tool and CLI | |
| 34 | +- **Execution flow tracing** — call chain precomputation from entry points | |
| 35 | +- **Dead code detection** — unreachable functions, classes, and files | |
| 36 | +- **Test coverage mapping** — link test functions to production code via TESTS edges | |
| 37 | +- **Circular dependency detection** — DFS-based cycle detection in import and call graphs | |
| 38 | +- **Multi-repo support** — register, ingest, and search across repositories | |
| 39 | +- **Coordinated rename** — graph-assisted multi-file symbol refactoring with preview | |
| 40 | +- **CODEOWNERS integration** — parse ownership files to Person and Domain nodes | |
| 41 | +- **ADR ingestion** — MADR-format Architecture Decision Records | |
| 42 | +- **OpenAPI / GraphQL ingestion** — API contract schemas as graph nodes | |
| 43 | +- **PlanOpticon pipeline** — end-to-end meeting-to-knowledge with auto-linking | |
| 44 | +- **PM tool integration** — GitHub issues ingestion (Linear/Jira stubs) | |
| 45 | +- **External dependency nodes** — npm/pip/cargo package tracking | |
| 46 | +- **Fossil SCM support** — full VCS implementation | |
| 47 | +- **Submodule traversal** — parent + submodule linked ingestion | |
| 48 | +- **Multi-repo workspace** — unified and federated knowledge graph modes | |
| 49 | + | |
| 50 | +### v0.5 — Intelligence Layer | |
| 51 | + | |
| 52 | +- **Semantic search** — embedding-based similarity search with LLM providers | |
| 53 | +- **Community detection** — label propagation over heterogeneous graph | |
| 54 | +- **LLM integration** — natural language queries, community naming, documentation generation | |
| 55 | +- **Documentation generation** — template and LLM-powered docs from graph context | |
| 56 | + | |
| 57 | +### v0.6 — Cluster + Swarm | |
| 58 | + | |
| 59 | +- **Cluster core** — Redis↔SQLite snapshot sync for agent swarms | |
| 60 | +- **Pub/sub notifications** — real-time graph change events | |
| 61 | +- **Task queue** — FIFO work assignment for agent swarms | |
| 62 | +- **Work partitioning** — community-based splitting across agents | |
| 63 | +- **Session namespacing** — branch-isolated graph namespaces | |
| 64 | +- **Distributed locking** — Redis SETNX-based mutual exclusion | |
| 65 | +- **Checkpoint/rollback** — JSONL-based state snapshots | |
| 66 | +- **Agent messaging** — async agent-to-agent communication | |
| 67 | +- **Swarm observability** — dashboard metrics | |
| 68 | +- **Fossil live integration** — ATTACH DATABASE for zero-copy queries | |
| 69 | + | |
| 70 | +### v0.7 — Human Interface | |
| 71 | + | |
| 72 | +- **Graph explorer** — HTTP server with browser-based force-directed visualization | |
| 73 | +- **Test coverage** — 96% coverage across 1902 tests | |
| 74 | + | |
| 75 | +### Quality | |
| 76 | + | |
| 77 | +- 96% test coverage (1902 tests) | |
| 78 | +- CI matrix: Ubuntu + macOS, Python 3.12 / 3.13 / 3.14 | |
| 79 | + | |
| 80 | +--- | |
| 2 | 81 | |
| 3 | 82 | ## 0.1.0 — 2026-03-22 |
| 4 | 83 | |
| 5 | 84 | First public release. |
| 6 | 85 | |
| 7 | 86 |
| --- CHANGELOG.md | |
| +++ CHANGELOG.md | |
| @@ -1,6 +1,85 @@ | |
| 1 | # Changelog |
| 2 | |
| 3 | ## 0.1.0 — 2026-03-22 |
| 4 | |
| 5 | First public release. |
| 6 | |
| 7 |
| --- CHANGELOG.md | |
| +++ CHANGELOG.md | |
| @@ -1,6 +1,85 @@ | |
| 1 | # Changelog |
| 2 | |
| 3 | ## 0.7.0 — 2026-03-23 |
| 4 | |
| 5 | ### v0.2 — Foundation |
| 6 | |
| 7 | - **Knowledge MCP tools** — `get_rationale`, `find_owners`, `search_knowledge` |
| 8 | - **Incremental ingestion** — content-hash-based change detection, `--incremental` flag, `--watch` mode |
| 9 | - **Schema versioning and migrations** — `:Meta` node versioning, `navegador migrate` CLI |
| 10 | - **Enhanced init** — `config.toml` with storage, LLM, and cluster settings |
| 11 | - **Text-based graph export** — deterministic JSONL format for git-friendly diffs |
| 12 | - **Editor integrations** — MCP config generation for Claude Code, Cursor, Codex, Windsurf |
| 13 | - **CI/CD mode** — `navegador ci ingest/stats/check` with JSON output, exit codes, GitHub Actions annotations |
| 14 | - **Python SDK** — `Navegador` class wrapping all internal modules |
| 15 | - **Sensitive content detection** — API key, password, token redaction before graph storage |
| 16 | - **VCS abstraction** — `GitAdapter` and `FossilAdapter` with auto-detection |
| 17 | - **MCP security hardening** — query validation, complexity limits, `--read-only` mode |
| 18 | - **Shell completions** — bash, zsh, fish tab completion |
| 19 | - **LLM backend abstraction** — unified provider interface for Anthropic, OpenAI, Ollama |
| 20 | - **AST optimizations** — LRU tree cache, incremental re-parsing, graph node diffing, parallel ingestion |
| 21 | |
| 22 | ### v0.3 — Framework Intelligence |
| 23 | |
| 24 | - **Language expansion** — Kotlin, C#, PHP, Ruby, Swift, C, C++ |
| 25 | - **FrameworkEnricher base class** — auto-discovery, node promotion, semantic edges |
| 26 | - **Framework enrichers** — Django, FastAPI, React/Next.js, Express.js, React Native, Rails, Spring Boot, Laravel |
| 27 | - **Monorepo support** — Turborepo, Nx, Yarn, pnpm, Cargo, Go workspace detection |
| 28 | - **Git diff integration** — map uncommitted changes to affected symbols and knowledge |
| 29 | - **Code churn correlation** — git history analysis for behavioural coupling |
| 30 | |
| 31 | ### v0.4 — Structural + Knowledge |
| 32 | |
| 33 | - **Impact analysis** — blast-radius traversal with MCP tool and CLI |
| 34 | - **Execution flow tracing** — call chain precomputation from entry points |
| 35 | - **Dead code detection** — unreachable functions, classes, and files |
| 36 | - **Test coverage mapping** — link test functions to production code via TESTS edges |
| 37 | - **Circular dependency detection** — DFS-based cycle detection in import and call graphs |
| 38 | - **Multi-repo support** — register, ingest, and search across repositories |
| 39 | - **Coordinated rename** — graph-assisted multi-file symbol refactoring with preview |
| 40 | - **CODEOWNERS integration** — parse ownership files to Person and Domain nodes |
| 41 | - **ADR ingestion** — MADR-format Architecture Decision Records |
| 42 | - **OpenAPI / GraphQL ingestion** — API contract schemas as graph nodes |
| 43 | - **PlanOpticon pipeline** — end-to-end meeting-to-knowledge with auto-linking |
| 44 | - **PM tool integration** — GitHub issues ingestion (Linear/Jira stubs) |
| 45 | - **External dependency nodes** — npm/pip/cargo package tracking |
| 46 | - **Fossil SCM support** — full VCS implementation |
| 47 | - **Submodule traversal** — parent + submodule linked ingestion |
| 48 | - **Multi-repo workspace** — unified and federated knowledge graph modes |
| 49 | |
| 50 | ### v0.5 — Intelligence Layer |
| 51 | |
| 52 | - **Semantic search** — embedding-based similarity search with LLM providers |
| 53 | - **Community detection** — label propagation over heterogeneous graph |
| 54 | - **LLM integration** — natural language queries, community naming, documentation generation |
| 55 | - **Documentation generation** — template and LLM-powered docs from graph context |
| 56 | |
| 57 | ### v0.6 — Cluster + Swarm |
| 58 | |
| 59 | - **Cluster core** — Redis↔SQLite snapshot sync for agent swarms |
| 60 | - **Pub/sub notifications** — real-time graph change events |
| 61 | - **Task queue** — FIFO work assignment for agent swarms |
| 62 | - **Work partitioning** — community-based splitting across agents |
| 63 | - **Session namespacing** — branch-isolated graph namespaces |
| 64 | - **Distributed locking** — Redis SETNX-based mutual exclusion |
| 65 | - **Checkpoint/rollback** — JSONL-based state snapshots |
| 66 | - **Agent messaging** — async agent-to-agent communication |
| 67 | - **Swarm observability** — dashboard metrics |
| 68 | - **Fossil live integration** — ATTACH DATABASE for zero-copy queries |
| 69 | |
| 70 | ### v0.7 — Human Interface |
| 71 | |
| 72 | - **Graph explorer** — HTTP server with browser-based force-directed visualization |
| 73 | - **Test coverage** — 96% coverage across 1902 tests |
| 74 | |
| 75 | ### Quality |
| 76 | |
| 77 | - 96% test coverage (1902 tests) |
| 78 | - CI matrix: Ubuntu + macOS, Python 3.12 / 3.13 / 3.14 |
| 79 | |
| 80 | --- |
| 81 | |
| 82 | ## 0.1.0 — 2026-03-22 |
| 83 | |
| 84 | First public release. |
| 85 | |
| 86 |
+26
-8
| --- CLAUDE.md | ||
| +++ CLAUDE.md | ||
| @@ -4,27 +4,39 @@ | ||
| 4 | 4 | |
| 5 | 5 | AST + knowledge graph context engine for AI coding agents. Parses codebases into a FalkorDB property graph. Agents query via MCP or Python API. |
| 6 | 6 | |
| 7 | 7 | ## Stack |
| 8 | 8 | |
| 9 | -- **Python 3.10+**, standalone (no Django dependency) | |
| 10 | -- **tree-sitter** for multi-language AST parsing (`tree-sitter-python`, `tree-sitter-typescript`) | |
| 9 | +- **Python 3.12+**, standalone (no Django dependency) | |
| 10 | +- **tree-sitter** for multi-language AST parsing (13 languages) | |
| 11 | 11 | - **FalkorDB** graph DB with **falkordblite** (SQLite via redislite) for local use |
| 12 | -- **MCP** (`mcp` Python SDK) for AI agent integration | |
| 12 | +- **MCP** (`mcp` Python SDK) for AI agent integration (11 tools) | |
| 13 | 13 | - **Click + Rich** for CLI |
| 14 | 14 | - **Pydantic** for data models |
| 15 | 15 | - **Ruff** for linting/formatting |
| 16 | 16 | |
| 17 | 17 | ## Package layout |
| 18 | 18 | |
| 19 | 19 | ``` |
| 20 | 20 | navegador/ |
| 21 | - cli/ — Click commands (ingest, context, search, stats, mcp) | |
| 22 | - graph/ — GraphStore + schema + Cypher query templates | |
| 23 | - ingestion/ — RepoIngester + language parsers (python.py, typescript.py) | |
| 24 | - context/ — ContextLoader + ContextBundle (JSON/markdown output) | |
| 25 | - mcp/ — MCP server with 7 tools | |
| 21 | + cli/ — Click commands (50+ subcommands) | |
| 22 | + graph/ — GraphStore + schema + queries + migrations + export | |
| 23 | + ingestion/ — RepoIngester + 13 language parsers + optimization | |
| 24 | + context/ — ContextLoader + ContextBundle (JSON/markdown) | |
| 25 | + mcp/ — MCP server with 11 tools + security hardening | |
| 26 | + enrichment/ — FrameworkEnricher base + 8 framework enrichers | |
| 27 | + analysis/ — impact, flow tracing, dead code, cycles, test mapping | |
| 28 | + intelligence/ — semantic search, community detection, NLP, doc generation | |
| 29 | + cluster/ — Redis pub/sub, task queue, locking, sessions, messaging | |
| 30 | + sdk.py — Python SDK (Navegador class) | |
| 31 | + llm.py — LLM provider abstraction (Anthropic, OpenAI, Ollama) | |
| 32 | + vcs.py — VCS abstraction (Git, Fossil) | |
| 33 | + diff.py — Git diff → graph impact mapping | |
| 34 | + churn.py — Behavioural coupling from git history | |
| 35 | + monorepo.py — Workspace detection + ingestion | |
| 36 | + security.py — Sensitive content detection + redaction | |
| 37 | + explorer/ — HTTP server + browser-based graph visualization | |
| 26 | 38 | ``` |
| 27 | 39 | |
| 28 | 40 | ## FalkorDB connection |
| 29 | 41 | |
| 30 | 42 | ```python |
| @@ -43,10 +55,16 @@ | ||
| 43 | 55 | 1. Create `navegador/ingestion/<lang>.py` subclassing `LanguageParser` |
| 44 | 56 | 2. Implement `parse_file(path, repo_root, store) -> dict[str, int]` |
| 45 | 57 | 3. Add the extension + language key to `LANGUAGE_MAP` in `parser.py` |
| 46 | 58 | 4. Register in `RepoIngester._get_parser()` |
| 47 | 59 | |
| 60 | +## Adding a new framework enricher | |
| 61 | + | |
| 62 | +1. Create `navegador/enrichment/<framework>.py` subclassing `FrameworkEnricher` | |
| 63 | +2. Implement `framework_name`, `detection_patterns`, `enrich()` | |
| 64 | +3. The CLI auto-discovers enrichers via `pkgutil` — no registration needed | |
| 65 | + | |
| 48 | 66 | ## Adding a new MCP tool |
| 49 | 67 | |
| 50 | 68 | 1. Add a `Tool(...)` entry in `list_tools()` in `mcp/server.py` |
| 51 | 69 | 2. Add a handler branch in `call_tool()` |
| 52 | 70 | |
| 53 | 71 |
| --- CLAUDE.md | |
| +++ CLAUDE.md | |
| @@ -4,27 +4,39 @@ | |
| 4 | |
| 5 | AST + knowledge graph context engine for AI coding agents. Parses codebases into a FalkorDB property graph. Agents query via MCP or Python API. |
| 6 | |
| 7 | ## Stack |
| 8 | |
| 9 | - **Python 3.10+**, standalone (no Django dependency) |
| 10 | - **tree-sitter** for multi-language AST parsing (`tree-sitter-python`, `tree-sitter-typescript`) |
| 11 | - **FalkorDB** graph DB with **falkordblite** (SQLite via redislite) for local use |
| 12 | - **MCP** (`mcp` Python SDK) for AI agent integration |
| 13 | - **Click + Rich** for CLI |
| 14 | - **Pydantic** for data models |
| 15 | - **Ruff** for linting/formatting |
| 16 | |
| 17 | ## Package layout |
| 18 | |
| 19 | ``` |
| 20 | navegador/ |
| 21 | cli/ — Click commands (ingest, context, search, stats, mcp) |
| 22 | graph/ — GraphStore + schema + Cypher query templates |
| 23 | ingestion/ — RepoIngester + language parsers (python.py, typescript.py) |
| 24 | context/ — ContextLoader + ContextBundle (JSON/markdown output) |
| 25 | mcp/ — MCP server with 7 tools |
| 26 | ``` |
| 27 | |
| 28 | ## FalkorDB connection |
| 29 | |
| 30 | ```python |
| @@ -43,10 +55,16 @@ | |
| 43 | 1. Create `navegador/ingestion/<lang>.py` subclassing `LanguageParser` |
| 44 | 2. Implement `parse_file(path, repo_root, store) -> dict[str, int]` |
| 45 | 3. Add the extension + language key to `LANGUAGE_MAP` in `parser.py` |
| 46 | 4. Register in `RepoIngester._get_parser()` |
| 47 | |
| 48 | ## Adding a new MCP tool |
| 49 | |
| 50 | 1. Add a `Tool(...)` entry in `list_tools()` in `mcp/server.py` |
| 51 | 2. Add a handler branch in `call_tool()` |
| 52 | |
| 53 |
| --- CLAUDE.md | |
| +++ CLAUDE.md | |
| @@ -4,27 +4,39 @@ | |
| 4 | |
| 5 | AST + knowledge graph context engine for AI coding agents. Parses codebases into a FalkorDB property graph. Agents query via MCP or Python API. |
| 6 | |
| 7 | ## Stack |
| 8 | |
| 9 | - **Python 3.12+**, standalone (no Django dependency) |
| 10 | - **tree-sitter** for multi-language AST parsing (13 languages) |
| 11 | - **FalkorDB** graph DB with **falkordblite** (SQLite via redislite) for local use |
| 12 | - **MCP** (`mcp` Python SDK) for AI agent integration (11 tools) |
| 13 | - **Click + Rich** for CLI |
| 14 | - **Pydantic** for data models |
| 15 | - **Ruff** for linting/formatting |
| 16 | |
| 17 | ## Package layout |
| 18 | |
| 19 | ``` |
| 20 | navegador/ |
| 21 | cli/ — Click commands (50+ subcommands) |
| 22 | graph/ — GraphStore + schema + queries + migrations + export |
| 23 | ingestion/ — RepoIngester + 13 language parsers + optimization |
| 24 | context/ — ContextLoader + ContextBundle (JSON/markdown) |
| 25 | mcp/ — MCP server with 11 tools + security hardening |
| 26 | enrichment/ — FrameworkEnricher base + 8 framework enrichers |
| 27 | analysis/ — impact, flow tracing, dead code, cycles, test mapping |
| 28 | intelligence/ — semantic search, community detection, NLP, doc generation |
| 29 | cluster/ — Redis pub/sub, task queue, locking, sessions, messaging |
| 30 | sdk.py — Python SDK (Navegador class) |
| 31 | llm.py — LLM provider abstraction (Anthropic, OpenAI, Ollama) |
| 32 | vcs.py — VCS abstraction (Git, Fossil) |
| 33 | diff.py — Git diff → graph impact mapping |
| 34 | churn.py — Behavioural coupling from git history |
| 35 | monorepo.py — Workspace detection + ingestion |
| 36 | security.py — Sensitive content detection + redaction |
| 37 | explorer/ — HTTP server + browser-based graph visualization |
| 38 | ``` |
| 39 | |
| 40 | ## FalkorDB connection |
| 41 | |
| 42 | ```python |
| @@ -43,10 +55,16 @@ | |
| 55 | 1. Create `navegador/ingestion/<lang>.py` subclassing `LanguageParser` |
| 56 | 2. Implement `parse_file(path, repo_root, store) -> dict[str, int]` |
| 57 | 3. Add the extension + language key to `LANGUAGE_MAP` in `parser.py` |
| 58 | 4. Register in `RepoIngester._get_parser()` |
| 59 | |
| 60 | ## Adding a new framework enricher |
| 61 | |
| 62 | 1. Create `navegador/enrichment/<framework>.py` subclassing `FrameworkEnricher` |
| 63 | 2. Implement `framework_name`, `detection_patterns`, `enrich()` |
| 64 | 3. The CLI auto-discovers enrichers via `pkgutil` — no registration needed |
| 65 | |
| 66 | ## Adding a new MCP tool |
| 67 | |
| 68 | 1. Add a `Tool(...)` entry in `list_tools()` in `mcp/server.py` |
| 69 | 2. Add a handler branch in `call_tool()` |
| 70 | |
| 71 |
+93
-1
| --- README.md | ||
| +++ README.md | ||
| @@ -79,12 +79,16 @@ | ||
| 79 | 79 | | `ingest_repo` | Parse and load a repo into the graph | |
| 80 | 80 | | `load_file_context` | All symbols in a file + their relationships | |
| 81 | 81 | | `load_function_context` | What a function calls and what calls it | |
| 82 | 82 | | `load_class_context` | Class methods, inheritance, subclasses | |
| 83 | 83 | | `search_symbols` | Fuzzy search for functions/classes by name | |
| 84 | -| `query_graph` | Raw Cypher passthrough | | |
| 84 | +| `query_graph` | Raw Cypher passthrough (with security hardening) | | |
| 85 | 85 | | `graph_stats` | Node and edge counts | |
| 86 | +| `get_rationale` | Decision rationale, alternatives, and status | | |
| 87 | +| `find_owners` | People assigned to any node | | |
| 88 | +| `search_knowledge` | Search concepts, rules, decisions, wiki | | |
| 89 | +| `blast_radius` | Impact analysis — what's affected by a change | | |
| 86 | 90 | |
| 87 | 91 | --- |
| 88 | 92 | |
| 89 | 93 | ## Knowledge layer |
| 90 | 94 | |
| @@ -144,10 +148,98 @@ | ||
| 144 | 148 | | Python | ✅ | |
| 145 | 149 | | TypeScript / JavaScript | ✅ | |
| 146 | 150 | | Go | ✅ | |
| 147 | 151 | | Rust | ✅ | |
| 148 | 152 | | Java | ✅ | |
| 153 | +| Kotlin | ✅ | | |
| 154 | +| C# | ✅ | | |
| 155 | +| PHP | ✅ | | |
| 156 | +| Ruby | ✅ | | |
| 157 | +| Swift | ✅ | | |
| 158 | +| C / C++ | ✅ | | |
| 159 | + | |
| 160 | +--- | |
| 161 | + | |
| 162 | +## Framework enrichment | |
| 163 | + | |
| 164 | +After ingesting code, navegador can promote generic AST nodes to framework-specific semantic types: | |
| 165 | + | |
| 166 | +```bash | |
| 167 | +navegador enrich # auto-detect frameworks | |
| 168 | +navegador enrich --framework django # target a specific framework | |
| 169 | +``` | |
| 170 | + | |
| 171 | +Supported frameworks: **Django**, **FastAPI**, **React / Next.js**, **Express.js**, **React Native**, **Rails**, **Spring Boot**, **Laravel** | |
| 172 | + | |
| 173 | +--- | |
| 174 | + | |
| 175 | +## Structural analysis | |
| 176 | + | |
| 177 | +```bash | |
| 178 | +navegador impact AuthService --depth 3 # blast radius | |
| 179 | +navegador trace handle_request # execution flow from entry point | |
| 180 | +navegador deadcode # unreachable functions/classes | |
| 181 | +navegador cycles # circular dependencies | |
| 182 | +navegador testmap # link tests to production code | |
| 183 | +navegador diff # map uncommitted changes to graph | |
| 184 | +navegador churn . # behavioural coupling from git history | |
| 185 | +``` | |
| 186 | + | |
| 187 | +--- | |
| 188 | + | |
| 189 | +## Intelligence layer | |
| 190 | + | |
| 191 | +```bash | |
| 192 | +navegador semantic-search "authentication flow" # embedding-based search | |
| 193 | +navegador communities # detect code communities | |
| 194 | +navegador ask "what calls the payment service?" # natural language queries | |
| 195 | +navegador docs src/auth.py # generate documentation | |
| 196 | +``` | |
| 197 | + | |
| 198 | +Requires an LLM provider: `pip install navegador[llm]` | |
| 199 | + | |
| 200 | +--- | |
| 201 | + | |
| 202 | +## Python SDK | |
| 203 | + | |
| 204 | +```python | |
| 205 | +from navegador import Navegador | |
| 206 | + | |
| 207 | +nav = Navegador.sqlite(".navegador/graph.db") | |
| 208 | +nav.ingest("./myrepo") | |
| 209 | +nav.add_concept("Payment", description="Payment processing", domain="billing") | |
| 210 | + | |
| 211 | +results = nav.search("auth") | |
| 212 | +bundle = nav.explain("AuthService") | |
| 213 | +owners = nav.find_owners("AuthService") | |
| 214 | +``` | |
| 215 | + | |
| 216 | +--- | |
| 217 | + | |
| 218 | +## Cluster mode (agent swarms) | |
| 219 | + | |
| 220 | +For multi-agent setups sharing a Redis-backed graph: | |
| 221 | + | |
| 222 | +```bash | |
| 223 | +navegador init --redis redis://host:6379 --cluster | |
| 224 | +``` | |
| 225 | + | |
| 226 | +Features: shared graph with local snapshots, pub/sub notifications, task queues, distributed locking, session namespacing, checkpoints, agent messaging, observability dashboard. | |
| 227 | + | |
| 228 | +--- | |
| 229 | + | |
| 230 | +## Additional integrations | |
| 231 | + | |
| 232 | +```bash | |
| 233 | +navegador codeowners ./myrepo # parse CODEOWNERS → ownership graph | |
| 234 | +navegador adr ingest docs/decisions/ # Architecture Decision Records | |
| 235 | +navegador api ingest openapi.yaml # OpenAPI / GraphQL schemas | |
| 236 | +navegador deps ingest package.json # external dependency tracking | |
| 237 | +navegador pm ingest --github org/repo # GitHub issues → knowledge graph | |
| 238 | +navegador editor setup claude-code # generate MCP config for editors | |
| 239 | +navegador explore # browser-based graph visualization | |
| 240 | +``` | |
| 149 | 241 | |
| 150 | 242 | --- |
| 151 | 243 | |
| 152 | 244 | ## Installation |
| 153 | 245 | |
| 154 | 246 |
| --- README.md | |
| +++ README.md | |
| @@ -79,12 +79,16 @@ | |
| 79 | | `ingest_repo` | Parse and load a repo into the graph | |
| 80 | | `load_file_context` | All symbols in a file + their relationships | |
| 81 | | `load_function_context` | What a function calls and what calls it | |
| 82 | | `load_class_context` | Class methods, inheritance, subclasses | |
| 83 | | `search_symbols` | Fuzzy search for functions/classes by name | |
| 84 | | `query_graph` | Raw Cypher passthrough | |
| 85 | | `graph_stats` | Node and edge counts | |
| 86 | |
| 87 | --- |
| 88 | |
| 89 | ## Knowledge layer |
| 90 | |
| @@ -144,10 +148,98 @@ | |
| 144 | | Python | ✅ | |
| 145 | | TypeScript / JavaScript | ✅ | |
| 146 | | Go | ✅ | |
| 147 | | Rust | ✅ | |
| 148 | | Java | ✅ | |
| 149 | |
| 150 | --- |
| 151 | |
| 152 | ## Installation |
| 153 | |
| 154 |
| --- README.md | |
| +++ README.md | |
| @@ -79,12 +79,16 @@ | |
| 79 | | `ingest_repo` | Parse and load a repo into the graph | |
| 80 | | `load_file_context` | All symbols in a file + their relationships | |
| 81 | | `load_function_context` | What a function calls and what calls it | |
| 82 | | `load_class_context` | Class methods, inheritance, subclasses | |
| 83 | | `search_symbols` | Fuzzy search for functions/classes by name | |
| 84 | | `query_graph` | Raw Cypher passthrough (with security hardening) | |
| 85 | | `graph_stats` | Node and edge counts | |
| 86 | | `get_rationale` | Decision rationale, alternatives, and status | |
| 87 | | `find_owners` | People assigned to any node | |
| 88 | | `search_knowledge` | Search concepts, rules, decisions, wiki | |
| 89 | | `blast_radius` | Impact analysis — what's affected by a change | |
| 90 | |
| 91 | --- |
| 92 | |
| 93 | ## Knowledge layer |
| 94 | |
| @@ -144,10 +148,98 @@ | |
| 148 | | Python | ✅ | |
| 149 | | TypeScript / JavaScript | ✅ | |
| 150 | | Go | ✅ | |
| 151 | | Rust | ✅ | |
| 152 | | Java | ✅ | |
| 153 | | Kotlin | ✅ | |
| 154 | | C# | ✅ | |
| 155 | | PHP | ✅ | |
| 156 | | Ruby | ✅ | |
| 157 | | Swift | ✅ | |
| 158 | | C / C++ | ✅ | |
| 159 | |
| 160 | --- |
| 161 | |
| 162 | ## Framework enrichment |
| 163 | |
| 164 | After ingesting code, navegador can promote generic AST nodes to framework-specific semantic types: |
| 165 | |
| 166 | ```bash |
| 167 | navegador enrich # auto-detect frameworks |
| 168 | navegador enrich --framework django # target a specific framework |
| 169 | ``` |
| 170 | |
| 171 | Supported frameworks: **Django**, **FastAPI**, **React / Next.js**, **Express.js**, **React Native**, **Rails**, **Spring Boot**, **Laravel** |
| 172 | |
| 173 | --- |
| 174 | |
| 175 | ## Structural analysis |
| 176 | |
| 177 | ```bash |
| 178 | navegador impact AuthService --depth 3 # blast radius |
| 179 | navegador trace handle_request # execution flow from entry point |
| 180 | navegador deadcode # unreachable functions/classes |
| 181 | navegador cycles # circular dependencies |
| 182 | navegador testmap # link tests to production code |
| 183 | navegador diff # map uncommitted changes to graph |
| 184 | navegador churn . # behavioural coupling from git history |
| 185 | ``` |
| 186 | |
| 187 | --- |
| 188 | |
| 189 | ## Intelligence layer |
| 190 | |
| 191 | ```bash |
| 192 | navegador semantic-search "authentication flow" # embedding-based search |
| 193 | navegador communities # detect code communities |
| 194 | navegador ask "what calls the payment service?" # natural language queries |
| 195 | navegador docs src/auth.py # generate documentation |
| 196 | ``` |
| 197 | |
| 198 | Requires an LLM provider: `pip install navegador[llm]` |
| 199 | |
| 200 | --- |
| 201 | |
| 202 | ## Python SDK |
| 203 | |
| 204 | ```python |
| 205 | from navegador import Navegador |
| 206 | |
| 207 | nav = Navegador.sqlite(".navegador/graph.db") |
| 208 | nav.ingest("./myrepo") |
| 209 | nav.add_concept("Payment", description="Payment processing", domain="billing") |
| 210 | |
| 211 | results = nav.search("auth") |
| 212 | bundle = nav.explain("AuthService") |
| 213 | owners = nav.find_owners("AuthService") |
| 214 | ``` |
| 215 | |
| 216 | --- |
| 217 | |
| 218 | ## Cluster mode (agent swarms) |
| 219 | |
| 220 | For multi-agent setups sharing a Redis-backed graph: |
| 221 | |
| 222 | ```bash |
| 223 | navegador init --redis redis://host:6379 --cluster |
| 224 | ``` |
| 225 | |
| 226 | Features: shared graph with local snapshots, pub/sub notifications, task queues, distributed locking, session namespacing, checkpoints, agent messaging, observability dashboard. |
| 227 | |
| 228 | --- |
| 229 | |
| 230 | ## Additional integrations |
| 231 | |
| 232 | ```bash |
| 233 | navegador codeowners ./myrepo # parse CODEOWNERS → ownership graph |
| 234 | navegador adr ingest docs/decisions/ # Architecture Decision Records |
| 235 | navegador api ingest openapi.yaml # OpenAPI / GraphQL schemas |
| 236 | navegador deps ingest package.json # external dependency tracking |
| 237 | navegador pm ingest --github org/repo # GitHub issues → knowledge graph |
| 238 | navegador editor setup claude-code # generate MCP config for editors |
| 239 | navegador explore # browser-based graph visualization |
| 240 | ``` |
| 241 | |
| 242 | --- |
| 243 | |
| 244 | ## Installation |
| 245 | |
| 246 |
+1
-1
| --- navegador/__init__.py | ||
| +++ navegador/__init__.py | ||
| @@ -1,10 +1,10 @@ | ||
| 1 | 1 | """ |
| 2 | 2 | Navegador — AST + knowledge graph context engine for AI coding agents. |
| 3 | 3 | """ |
| 4 | 4 | |
| 5 | -__version__ = "0.1.0" | |
| 5 | +__version__ = "0.7.0" | |
| 6 | 6 | __author__ = "CONFLICT LLC" |
| 7 | 7 | |
| 8 | 8 | from navegador.sdk import Navegador |
| 9 | 9 | |
| 10 | 10 | __all__ = ["Navegador"] |
| 11 | 11 |
| --- navegador/__init__.py | |
| +++ navegador/__init__.py | |
| @@ -1,10 +1,10 @@ | |
| 1 | """ |
| 2 | Navegador — AST + knowledge graph context engine for AI coding agents. |
| 3 | """ |
| 4 | |
| 5 | __version__ = "0.1.0" |
| 6 | __author__ = "CONFLICT LLC" |
| 7 | |
| 8 | from navegador.sdk import Navegador |
| 9 | |
| 10 | __all__ = ["Navegador"] |
| 11 |
| --- navegador/__init__.py | |
| +++ navegador/__init__.py | |
| @@ -1,10 +1,10 @@ | |
| 1 | """ |
| 2 | Navegador — AST + knowledge graph context engine for AI coding agents. |
| 3 | """ |
| 4 | |
| 5 | __version__ = "0.7.0" |
| 6 | __author__ = "CONFLICT LLC" |
| 7 | |
| 8 | from navegador.sdk import Navegador |
| 9 | |
| 10 | __all__ = ["Navegador"] |
| 11 |
+19
-2
| --- pyproject.toml | ||
| +++ pyproject.toml | ||
| @@ -2,19 +2,19 @@ | ||
| 2 | 2 | requires = ["setuptools>=69.0", "wheel"] |
| 3 | 3 | build-backend = "setuptools.build_meta" |
| 4 | 4 | |
| 5 | 5 | [project] |
| 6 | 6 | name = "navegador" |
| 7 | -version = "0.1.0" | |
| 7 | +version = "0.7.0" | |
| 8 | 8 | description = "AST + knowledge graph context engine for AI coding agents" |
| 9 | 9 | readme = "README.md" |
| 10 | 10 | license = "MIT" |
| 11 | 11 | requires-python = ">=3.12" |
| 12 | 12 | authors = [ |
| 13 | 13 | { name = "CONFLICT LLC" }, |
| 14 | 14 | ] |
| 15 | -keywords = ["ast", "knowledge-graph", "code-analysis", "ai-agents", "mcp", "context-management", "falkordb", "go", "rust", "java", "typescript"] | |
| 15 | +keywords = ["ast", "knowledge-graph", "code-analysis", "ai-agents", "mcp", "context-management", "falkordb", "go", "rust", "java", "typescript", "kotlin", "csharp", "php", "ruby", "swift", "c", "cpp"] | |
| 16 | 16 | classifiers = [ |
| 17 | 17 | "Development Status :: 3 - Alpha", |
| 18 | 18 | "Intended Audience :: Developers", |
| 19 | 19 | "Operating System :: OS Independent", |
| 20 | 20 | "Programming Language :: Python :: 3", |
| @@ -50,10 +50,25 @@ | ||
| 50 | 50 | [project.optional-dependencies] |
| 51 | 51 | redis = [ |
| 52 | 52 | # Use Redis-backed FalkorDB in production |
| 53 | 53 | "redis>=5.0.0", |
| 54 | 54 | ] |
| 55 | +languages = [ | |
| 56 | + # Additional tree-sitter grammars (core 6 are in dependencies) | |
| 57 | + "tree-sitter-kotlin>=0.23.0", | |
| 58 | + "tree-sitter-c-sharp>=0.23.0", | |
| 59 | + "tree-sitter-php>=0.23.0", | |
| 60 | + "tree-sitter-ruby>=0.23.0", | |
| 61 | + "tree-sitter-swift>=0.23.0", | |
| 62 | + "tree-sitter-c>=0.23.0", | |
| 63 | + "tree-sitter-cpp>=0.23.0", | |
| 64 | +] | |
| 65 | +llm = [ | |
| 66 | + # LLM provider SDKs (install the ones you use) | |
| 67 | + "anthropic>=0.39.0", | |
| 68 | + "openai>=1.0.0", | |
| 69 | +] | |
| 55 | 70 | dev = [ |
| 56 | 71 | "pytest>=7.3.0", |
| 57 | 72 | "pytest-cov>=4.1.0", |
| 58 | 73 | "pytest-asyncio>=0.23.0", |
| 59 | 74 | "ruff>=0.1.0", |
| @@ -64,10 +79,12 @@ | ||
| 64 | 79 | "mkdocstrings[python]>=0.24.0", |
| 65 | 80 | "pymdown-extensions>=10.0", |
| 66 | 81 | ] |
| 67 | 82 | all = [ |
| 68 | 83 | "navegador[redis]", |
| 84 | + "navegador[languages]", | |
| 85 | + "navegador[llm]", | |
| 69 | 86 | "navegador[dev]", |
| 70 | 87 | "navegador[docs]", |
| 71 | 88 | ] |
| 72 | 89 | |
| 73 | 90 | [project.urls] |
| 74 | 91 |
| --- pyproject.toml | |
| +++ pyproject.toml | |
| @@ -2,19 +2,19 @@ | |
| 2 | requires = ["setuptools>=69.0", "wheel"] |
| 3 | build-backend = "setuptools.build_meta" |
| 4 | |
| 5 | [project] |
| 6 | name = "navegador" |
| 7 | version = "0.1.0" |
| 8 | description = "AST + knowledge graph context engine for AI coding agents" |
| 9 | readme = "README.md" |
| 10 | license = "MIT" |
| 11 | requires-python = ">=3.12" |
| 12 | authors = [ |
| 13 | { name = "CONFLICT LLC" }, |
| 14 | ] |
| 15 | keywords = ["ast", "knowledge-graph", "code-analysis", "ai-agents", "mcp", "context-management", "falkordb", "go", "rust", "java", "typescript"] |
| 16 | classifiers = [ |
| 17 | "Development Status :: 3 - Alpha", |
| 18 | "Intended Audience :: Developers", |
| 19 | "Operating System :: OS Independent", |
| 20 | "Programming Language :: Python :: 3", |
| @@ -50,10 +50,25 @@ | |
| 50 | [project.optional-dependencies] |
| 51 | redis = [ |
| 52 | # Use Redis-backed FalkorDB in production |
| 53 | "redis>=5.0.0", |
| 54 | ] |
| 55 | dev = [ |
| 56 | "pytest>=7.3.0", |
| 57 | "pytest-cov>=4.1.0", |
| 58 | "pytest-asyncio>=0.23.0", |
| 59 | "ruff>=0.1.0", |
| @@ -64,10 +79,12 @@ | |
| 64 | "mkdocstrings[python]>=0.24.0", |
| 65 | "pymdown-extensions>=10.0", |
| 66 | ] |
| 67 | all = [ |
| 68 | "navegador[redis]", |
| 69 | "navegador[dev]", |
| 70 | "navegador[docs]", |
| 71 | ] |
| 72 | |
| 73 | [project.urls] |
| 74 |
| --- pyproject.toml | |
| +++ pyproject.toml | |
| @@ -2,19 +2,19 @@ | |
| 2 | requires = ["setuptools>=69.0", "wheel"] |
| 3 | build-backend = "setuptools.build_meta" |
| 4 | |
| 5 | [project] |
| 6 | name = "navegador" |
| 7 | version = "0.7.0" |
| 8 | description = "AST + knowledge graph context engine for AI coding agents" |
| 9 | readme = "README.md" |
| 10 | license = "MIT" |
| 11 | requires-python = ">=3.12" |
| 12 | authors = [ |
| 13 | { name = "CONFLICT LLC" }, |
| 14 | ] |
| 15 | keywords = ["ast", "knowledge-graph", "code-analysis", "ai-agents", "mcp", "context-management", "falkordb", "go", "rust", "java", "typescript", "kotlin", "csharp", "php", "ruby", "swift", "c", "cpp"] |
| 16 | classifiers = [ |
| 17 | "Development Status :: 3 - Alpha", |
| 18 | "Intended Audience :: Developers", |
| 19 | "Operating System :: OS Independent", |
| 20 | "Programming Language :: Python :: 3", |
| @@ -50,10 +50,25 @@ | |
| 50 | [project.optional-dependencies] |
| 51 | redis = [ |
| 52 | # Use Redis-backed FalkorDB in production |
| 53 | "redis>=5.0.0", |
| 54 | ] |
| 55 | languages = [ |
| 56 | # Additional tree-sitter grammars (core 6 are in dependencies) |
| 57 | "tree-sitter-kotlin>=0.23.0", |
| 58 | "tree-sitter-c-sharp>=0.23.0", |
| 59 | "tree-sitter-php>=0.23.0", |
| 60 | "tree-sitter-ruby>=0.23.0", |
| 61 | "tree-sitter-swift>=0.23.0", |
| 62 | "tree-sitter-c>=0.23.0", |
| 63 | "tree-sitter-cpp>=0.23.0", |
| 64 | ] |
| 65 | llm = [ |
| 66 | # LLM provider SDKs (install the ones you use) |
| 67 | "anthropic>=0.39.0", |
| 68 | "openai>=1.0.0", |
| 69 | ] |
| 70 | dev = [ |
| 71 | "pytest>=7.3.0", |
| 72 | "pytest-cov>=4.1.0", |
| 73 | "pytest-asyncio>=0.23.0", |
| 74 | "ruff>=0.1.0", |
| @@ -64,10 +79,12 @@ | |
| 79 | "mkdocstrings[python]>=0.24.0", |
| 80 | "pymdown-extensions>=10.0", |
| 81 | ] |
| 82 | all = [ |
| 83 | "navegador[redis]", |
| 84 | "navegador[languages]", |
| 85 | "navegador[llm]", |
| 86 | "navegador[dev]", |
| 87 | "navegador[docs]", |
| 88 | ] |
| 89 | |
| 90 | [project.urls] |
| 91 |