|
1
|
[build-system] |
|
2
|
requires = ["setuptools>=69.0", "wheel"] |
|
3
|
build-backend = "setuptools.build_meta" |
|
4
|
|
|
5
|
[project] |
|
6
|
name = "navegador" |
|
7
|
version = "0.8.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", "terraform", "hcl", "puppet", "ansible", "chef", "bash", "iac"] |
|
16
|
classifiers = [ |
|
17
|
"Development Status :: 3 - Alpha", |
|
18
|
"Intended Audience :: Developers", |
|
19
|
"Operating System :: OS Independent", |
|
20
|
"Programming Language :: Python :: 3", |
|
21
|
"Programming Language :: Python :: 3.12", |
|
22
|
"Programming Language :: Python :: 3.13", |
|
23
|
"Programming Language :: Python :: 3.14", |
|
24
|
"Topic :: Software Development :: Libraries :: Python Modules", |
|
25
|
"Topic :: Scientific/Engineering :: Artificial Intelligence", |
|
26
|
] |
|
27
|
|
|
28
|
dependencies = [ |
|
29
|
# Graph database |
|
30
|
"FalkorDB>=1.5.0", # graph query client |
|
31
|
"falkordblite>=0.8.0", # embedded SQLite-backed storage (zero-infra local) |
|
32
|
"redis>=7.4.0", # redislite needs >=7.4 for Python 3.14 compatibility |
|
33
|
# AST parsing — multi-language via tree-sitter grammars |
|
34
|
"tree-sitter>=0.24.0", |
|
35
|
"tree-sitter-python>=0.23.0", |
|
36
|
"tree-sitter-typescript>=0.23.0", |
|
37
|
"tree-sitter-javascript>=0.23.0", |
|
38
|
"tree-sitter-go>=0.23.0", |
|
39
|
"tree-sitter-rust>=0.23.0", |
|
40
|
"tree-sitter-java>=0.23.0", |
|
41
|
# CLI |
|
42
|
"click>=8.1.0", |
|
43
|
"rich>=13.0.0", |
|
44
|
# MCP server |
|
45
|
"mcp>=1.0.0", |
|
46
|
# Utilities |
|
47
|
"pydantic>=2.0.0", |
|
48
|
"python-dotenv>=1.0.0", |
|
49
|
] |
|
50
|
|
|
51
|
[project.optional-dependencies] |
|
52
|
redis = [ |
|
53
|
# Use Redis-backed FalkorDB in production |
|
54
|
"redis>=5.0.0", |
|
55
|
] |
|
56
|
languages = [ |
|
57
|
# Additional tree-sitter grammars (core 6 are in dependencies) |
|
58
|
"tree-sitter-kotlin>=0.23.0", |
|
59
|
"tree-sitter-c-sharp>=0.23.0", |
|
60
|
"tree-sitter-php>=0.23.0", |
|
61
|
"tree-sitter-ruby>=0.23.0", |
|
62
|
"tree-sitter-swift>=0.23.0", |
|
63
|
"tree-sitter-c>=0.23.0", |
|
64
|
"tree-sitter-cpp>=0.23.0", |
|
65
|
] |
|
66
|
iac = [ |
|
67
|
# Infrastructure-as-Code tree-sitter grammars |
|
68
|
"tree-sitter-hcl>=1.2.0", |
|
69
|
"tree-sitter-puppet>=1.3.0", |
|
70
|
"tree-sitter-bash>=0.25.0", |
|
71
|
"pyyaml>=6.0", # Ansible parser uses yaml.safe_load |
|
72
|
] |
|
73
|
llm = [ |
|
74
|
# LLM provider SDKs (install the ones you use) |
|
75
|
"anthropic>=0.39.0", |
|
76
|
"openai>=1.0.0", |
|
77
|
] |
|
78
|
dev = [ |
|
79
|
"pytest>=7.3.0", |
|
80
|
"pytest-cov>=4.1.0", |
|
81
|
"pytest-asyncio>=0.23.0", |
|
82
|
"ruff>=0.1.0", |
|
83
|
"mypy>=1.3.0", |
|
84
|
] |
|
85
|
docs = [ |
|
86
|
"mkdocs-material>=9.0.0", |
|
87
|
"mkdocstrings[python]>=0.24.0", |
|
88
|
"pymdown-extensions>=10.0", |
|
89
|
] |
|
90
|
all = [ |
|
91
|
"navegador[redis]", |
|
92
|
"navegador[languages]", |
|
93
|
"navegador[iac]", |
|
94
|
"navegador[llm]", |
|
95
|
"navegador[dev]", |
|
96
|
"navegador[docs]", |
|
97
|
] |
|
98
|
|
|
99
|
[project.urls] |
|
100
|
Homepage = "https://navegador.dev" |
|
101
|
Documentation = "https://navegador.dev" |
|
102
|
Repository = "https://github.com/ConflictHQ/navegador" |
|
103
|
Issues = "https://github.com/ConflictHQ/navegador/issues" |
|
104
|
|
|
105
|
[project.scripts] |
|
106
|
navegador = "navegador.cli.commands:main" |
|
107
|
|
|
108
|
[tool.setuptools.packages.find] |
|
109
|
include = ["navegador*"] |
|
110
|
|
|
111
|
[tool.ruff] |
|
112
|
line-length = 100 |
|
113
|
target-version = "py312" |
|
114
|
|
|
115
|
[tool.ruff.lint] |
|
116
|
select = ["E", "F", "W", "I"] |
|
117
|
|
|
118
|
[tool.ruff.lint.per-file-ignores] |
|
119
|
# HTML/JS template strings inevitably contain long lines |
|
120
|
"navegador/explorer/templates.py" = ["E501"] |
|
121
|
|
|
122
|
[tool.mypy] |
|
123
|
python_version = "3.12" |
|
124
|
warn_return_any = true |
|
125
|
warn_unused_configs = true |
|
126
|
|
|
127
|
[tool.pytest.ini_options] |
|
128
|
testpaths = ["tests"] |
|
129
|
python_files = "test_*.py" |
|
130
|
addopts = "--cov=navegador" |
|
131
|
filterwarnings = [ |
|
132
|
"ignore::ResourceWarning", |
|
133
|
] |
|
134
|
|