victor-coding 0.7.2__tar.gz → 0.13.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.
- {victor_coding-0.7.2 → victor_coding-0.13.0}/LICENSE +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/PKG-INFO +9 -10
- {victor_coding-0.7.2 → victor_coding-0.13.0}/pyproject.toml +14 -17
- {victor_coding-0.7.2 → victor_coding-0.13.0}/tests/test_coding_capabilities.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/tests/test_coding_vertical_rl.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/tests/test_coding_vertical_teams.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/tests/test_coding_vertical_workflows.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/tests/test_enhanced_integration.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/tests/test_extension_cache.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/tests/test_framework_lsp_adapter.py +1 -1
- victor_coding-0.13.0/tests/test_graph_backend_marker.py +70 -0
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/assistant.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/capabilities.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/__init__.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/ccg_builder.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/chunker.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/embeddings/__init__.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/embeddings/base.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/embeddings/chunker.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/embeddings/lancedb_provider.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/embeddings/models.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/embeddings/proximadb_provider.py +5 -14
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/embeddings/registry.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/graph/__init__.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/graph/registry.py +6 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/ignore_patterns.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/indexer.py +90 -74
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/query_expander.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/symbol_store.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/tree_sitter_analysis.py +72 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/tree_sitter_extractor.py +5 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/tree_sitter_manager.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/tree_sitter_service.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/unified_extractor.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase_analyzer.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/completion/__init__.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/completion/manager.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/completion/protocol.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/completion/provider.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/completion/providers/__init__.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/completion/providers/ai.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/completion/providers/lsp.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/completion/providers/snippet.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/completion/registry.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/composed_chains.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/conversation_enhanced.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/coverage/__init__.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/coverage/manager.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/coverage/parser.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/coverage/parsers/__init__.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/coverage/protocol.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/coverage/visualizer.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/docgen/__init__.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/docgen/formatter.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/docgen/manager.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/docgen/parser.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/docgen/protocol.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/editing/__init__.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/editing/editor.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/enrichment.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/escape_hatches.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/handlers.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/languages/__init__.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/languages/base.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/languages/manager.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/languages/plugins/__init__.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/languages/plugins/additional.py +39 -8
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/languages/plugins/config.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/languages/plugins/cpp.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/languages/plugins/go.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/languages/plugins/java.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/languages/plugins/javascript.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/languages/plugins/python.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/languages/plugins/rust.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/languages/plugins/typescript.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/languages/registry.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/languages/tiers.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/lsp/__init__.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/lsp/client.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/lsp/config.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/lsp/framework_adapter.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/lsp/manager.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/middleware.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/mode_config.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/native/__init__.py +5 -5
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/performance/__init__.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/performance/factory.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/performance/protocols.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/performance/registry.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/performance/service_provider.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/performance/settings.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/performance/wrappers.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/prompts.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/protocols.py +5 -17
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/refactor/__init__.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/refactor/analyzer.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/refactor/manager.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/refactor/protocol.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/refactor/transforms/__init__.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/refactor/transforms/base.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/refactor/transforms/extract.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/refactor/transforms/rename.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/review/__init__.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/review/analyzers.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/review/manager.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/review/protocol.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/review/rules.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/rl/__init__.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/rl/config.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/rl/hooks.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/safety.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/safety_enhanced.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/service_provider.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/teams/__init__.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/teams/personas.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/teams/specs.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/testgen/__init__.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/testgen/analyzer.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/testgen/generator.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/testgen/manager.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/testgen/protocol.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/tool_dependencies.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/tools/code_executor_tool.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/tools/code_intelligence_tool.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/tools/code_search_tool.py +76 -244
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/tools/graph_tool.py +48 -23
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/workflows/__init__.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/workflows/bugfix.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/workflows/feature.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/workflows/provider.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/workflows/review.py +1 -1
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding.egg-info/PKG-INFO +9 -10
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding.egg-info/SOURCES.txt +1 -0
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding.egg-info/requires.txt +5 -5
- {victor_coding-0.7.2 → victor_coding-0.13.0}/README.md +0 -0
- {victor_coding-0.7.2 → victor_coding-0.13.0}/setup.cfg +0 -0
- {victor_coding-0.7.2 → victor_coding-0.13.0}/tests/test_api_router_provider.py +0 -0
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/__init__.py +0 -0
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/api/__init__.py +0 -0
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/api/router_provider.py +0 -0
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/architecture_analyzer.py +0 -0
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/graph/protocol.py +0 -0
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/symbol_extractor.py +0 -0
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/symbol_resolver.py +0 -0
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/compat/__init__.py +0 -0
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/compat/settings.py +0 -0
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/plugin.py +0 -0
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/skills.py +0 -0
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/tools/__init__.py +0 -0
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding.egg-info/dependency_links.txt +0 -0
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding.egg-info/entry_points.txt +0 -0
- {victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding.egg-info/top_level.txt +0 -0
|
@@ -175,7 +175,7 @@
|
|
|
175
175
|
|
|
176
176
|
END OF TERMS AND CONDITIONS
|
|
177
177
|
|
|
178
|
-
Copyright 2025 Vijaykumar Singh <
|
|
178
|
+
Copyright 2025 Vijaykumar Singh <vijay@anvaiops.com>
|
|
179
179
|
|
|
180
180
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
181
181
|
you may not use this file except in compliance with the License.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: victor-coding
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.13.0
|
|
4
4
|
Summary: Coding vertical for Victor AI - Software development, debugging, and code generation
|
|
5
|
-
Author-email: Vijaykumar Singh <
|
|
6
|
-
Maintainer-email: Vijaykumar Singh <
|
|
5
|
+
Author-email: Vijaykumar Singh <vijay@anvaiops.com>
|
|
6
|
+
Maintainer-email: Vijaykumar Singh <vijay@anvaiops.com>
|
|
7
7
|
License: Apache-2.0
|
|
8
8
|
Project-URL: Homepage, https://github.com/vjsingh1984/victor-coding
|
|
9
9
|
Project-URL: Repository, https://github.com/vjsingh1984/victor-coding
|
|
@@ -13,34 +13,33 @@ Keywords: victor,vertical,coding,development,debugging,refactoring
|
|
|
13
13
|
Classifier: Development Status :: 4 - Beta
|
|
14
14
|
Classifier: Intended Audience :: Developers
|
|
15
15
|
Classifier: Programming Language :: Python :: 3
|
|
16
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
17
16
|
Classifier: Programming Language :: Python :: 3.12
|
|
18
17
|
Classifier: Topic :: Software Development
|
|
19
|
-
Requires-Python: >=3.
|
|
18
|
+
Requires-Python: >=3.12
|
|
20
19
|
Description-Content-Type: text/markdown
|
|
21
20
|
License-File: LICENSE
|
|
22
21
|
Requires-Dist: victor-contracts[yaml]<1.0,>=0.6.0
|
|
23
|
-
Requires-Dist: numpy<2.3,>=1.24
|
|
24
22
|
Requires-Dist: victor-codegraph[treesitter]>=0.1.0
|
|
25
23
|
Requires-Dist: defusedxml<1.0,>=0.7
|
|
26
24
|
Provides-Extra: runtime
|
|
27
25
|
Requires-Dist: victor-ai<1.0,>=0.7.6; extra == "runtime"
|
|
28
26
|
Provides-Extra: native
|
|
29
27
|
Provides-Extra: proximadb
|
|
30
|
-
Requires-Dist: proximadb<0.
|
|
28
|
+
Requires-Dist: proximadb<0.5,>=0.4.1; extra == "proximadb"
|
|
31
29
|
Provides-Extra: codegraph
|
|
32
30
|
Requires-Dist: victor-codegraph<1.0,>=0.1.0; extra == "codegraph"
|
|
33
31
|
Provides-Extra: dev
|
|
32
|
+
Requires-Dist: numpy<2.6,>=1.24; extra == "dev"
|
|
34
33
|
Requires-Dist: pytest>=8.0; extra == "dev"
|
|
35
34
|
Requires-Dist: pytest-asyncio>=0.23; extra == "dev"
|
|
36
35
|
Requires-Dist: pytest-cov>=4.1; extra == "dev"
|
|
37
36
|
Requires-Dist: pytest-xdist>=3.0; extra == "dev"
|
|
38
37
|
Requires-Dist: pytest-benchmark>=5.0; extra == "dev"
|
|
39
|
-
Requires-Dist: black==26.
|
|
38
|
+
Requires-Dist: black==26.10.0; extra == "dev"
|
|
40
39
|
Requires-Dist: ruff>=0.5; extra == "dev"
|
|
41
|
-
Requires-Dist: mypy
|
|
40
|
+
Requires-Dist: mypy==2.4.0; extra == "dev"
|
|
42
41
|
Provides-Extra: native-dev
|
|
43
|
-
Requires-Dist: maturin<2.0,>=1.
|
|
42
|
+
Requires-Dist: maturin<2.0,>=1.10; extra == "native-dev"
|
|
44
43
|
Dynamic: license-file
|
|
45
44
|
|
|
46
45
|
# victor-coding
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
[build-system]
|
|
2
2
|
requires = [
|
|
3
|
-
"setuptools>=
|
|
3
|
+
"setuptools>=83.0.0",
|
|
4
4
|
"wheel",
|
|
5
5
|
]
|
|
6
6
|
build-backend = "setuptools.build_meta"
|
|
7
7
|
|
|
8
8
|
[project]
|
|
9
9
|
name = "victor-coding"
|
|
10
|
-
version = "0.
|
|
10
|
+
version = "0.13.0"
|
|
11
11
|
description = "Coding vertical for Victor AI - Software development, debugging, and code generation"
|
|
12
12
|
readme = "README.md"
|
|
13
|
-
requires-python = ">=3.
|
|
13
|
+
requires-python = ">=3.12"
|
|
14
14
|
license = {text = "Apache-2.0"}
|
|
15
15
|
authors = [
|
|
16
|
-
{ name = "Vijaykumar Singh", email = "
|
|
16
|
+
{ name = "Vijaykumar Singh", email = "vijay@anvaiops.com" },
|
|
17
17
|
]
|
|
18
18
|
maintainers = [
|
|
19
|
-
{ name = "Vijaykumar Singh", email = "
|
|
19
|
+
{ name = "Vijaykumar Singh", email = "vijay@anvaiops.com" },
|
|
20
20
|
]
|
|
21
21
|
keywords = [
|
|
22
22
|
"victor",
|
|
@@ -30,13 +30,11 @@ classifiers = [
|
|
|
30
30
|
"Development Status :: 4 - Beta",
|
|
31
31
|
"Intended Audience :: Developers",
|
|
32
32
|
"Programming Language :: Python :: 3",
|
|
33
|
-
"Programming Language :: Python :: 3.11",
|
|
34
33
|
"Programming Language :: Python :: 3.12",
|
|
35
34
|
"Topic :: Software Development",
|
|
36
35
|
]
|
|
37
36
|
dependencies = [
|
|
38
37
|
"victor-contracts[yaml]>=0.6.0,<1.0", # Definition-layer contract for external verticals
|
|
39
|
-
"numpy>=1.24,<2.3", # Required by victor.storage.embeddings; numba-compatible
|
|
40
38
|
"victor-codegraph[treesitter]>=0.1.0", # Shared code->CPG chunker (ADR-014); [treesitter] supplies the grammars the delegation parses JS/Go/TS/Rust with
|
|
41
39
|
"defusedxml>=0.7,<1.0", # XXE-hardened XML parsing for coverage reports
|
|
42
40
|
]
|
|
@@ -46,16 +44,15 @@ runtime = [
|
|
|
46
44
|
"victor-ai>=0.7.6,<1.0", # Runtime support - optional, contract-first architecture
|
|
47
45
|
]
|
|
48
46
|
native = [
|
|
49
|
-
#
|
|
50
|
-
#
|
|
51
|
-
# or build with: maturin develop --release
|
|
47
|
+
# Compatibility extra. Build the separate distribution from ./native;
|
|
48
|
+
# see native/README.md. Installing this empty extra does not build Rust.
|
|
52
49
|
]
|
|
53
50
|
# ProximaDB embedding provider (optional backend).
|
|
54
51
|
# Imported lazily with graceful ImportError fallback in
|
|
55
52
|
# victor_coding/codebase/embeddings/proximadb_provider.py. Pin kept identical
|
|
56
53
|
# to victor-ai's proximadb extra so the backend version stays aligned.
|
|
57
54
|
proximadb = [
|
|
58
|
-
"proximadb>=0.
|
|
55
|
+
"proximadb>=0.4.1,<0.5",
|
|
59
56
|
]
|
|
60
57
|
# Shared code->CPG chunker (ADR-014). Opt-in: when installed AND
|
|
61
58
|
# VICTOR_CODING_USE_CODEGRAPH=1, CodeChunker delegates to it. Published on PyPI
|
|
@@ -64,17 +61,18 @@ codegraph = [
|
|
|
64
61
|
"victor-codegraph>=0.1.0,<1.0",
|
|
65
62
|
]
|
|
66
63
|
dev = [
|
|
64
|
+
"numpy>=1.24,<2.6", # Synthetic embeddings in indexer tests
|
|
67
65
|
"pytest>=8.0",
|
|
68
66
|
"pytest-asyncio>=0.23",
|
|
69
67
|
"pytest-cov>=4.1",
|
|
70
68
|
"pytest-xdist>=3.0",
|
|
71
69
|
"pytest-benchmark>=5.0",
|
|
72
|
-
"black==26.
|
|
70
|
+
"black==26.10.0",
|
|
73
71
|
"ruff>=0.5",
|
|
74
|
-
"mypy
|
|
72
|
+
"mypy==2.4.0",
|
|
75
73
|
]
|
|
76
74
|
native-dev = [
|
|
77
|
-
"maturin>=1.
|
|
75
|
+
"maturin>=1.10,<2.0", # Build Rust extensions
|
|
78
76
|
]
|
|
79
77
|
|
|
80
78
|
[project.urls]
|
|
@@ -156,13 +154,12 @@ exclude = ["tests*", "docs*", "native*"]
|
|
|
156
154
|
[tool.black]
|
|
157
155
|
line-length = 100
|
|
158
156
|
target-version = [
|
|
159
|
-
"py311",
|
|
160
157
|
"py312",
|
|
161
158
|
]
|
|
162
159
|
|
|
163
160
|
[tool.ruff]
|
|
164
161
|
line-length = 100
|
|
165
|
-
target-version = "
|
|
162
|
+
target-version = "py312"
|
|
166
163
|
|
|
167
164
|
[tool.ruff.lint]
|
|
168
165
|
select = ["E", "W", "F", "B", "C4"]
|
|
@@ -187,5 +184,5 @@ ignore = [
|
|
|
187
184
|
"__init__.py" = ["F401"]
|
|
188
185
|
"tests/**/*.py" = ["B017", "B018", "E741", "F841"]
|
|
189
186
|
[tool.mypy]
|
|
190
|
-
python_version = "3.
|
|
187
|
+
python_version = "3.12"
|
|
191
188
|
warn_return_any = true
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# Copyright 2026 Vijaykumar Singh <vijay@anvaiops.com>
|
|
2
|
+
#
|
|
3
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
# you may not use this file except in compliance with the License.
|
|
5
|
+
# You may obtain a copy of the License at
|
|
6
|
+
#
|
|
7
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
#
|
|
9
|
+
# Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
# See the License for the specific language governing permissions and
|
|
13
|
+
# limitations under the License.
|
|
14
|
+
|
|
15
|
+
"""The graph tool and index shim must honor `.victor/graph_backend`.
|
|
16
|
+
|
|
17
|
+
Previously: the `graph` tool probed project.db's sqlite tables (dropping the
|
|
18
|
+
tool from the LLM schema on marker'd repos whose graph lives elsewhere) and
|
|
19
|
+
hardcoded SqliteGraphStore; the indexer accepted `graph_store_name` and
|
|
20
|
+
silently dropped it; the shim defaulted to sqlite. A repo flipped to another
|
|
21
|
+
backend got sqlite everywhere.
|
|
22
|
+
"""
|
|
23
|
+
|
|
24
|
+
from pathlib import Path
|
|
25
|
+
|
|
26
|
+
from victor_coding.tools.graph_tool import (
|
|
27
|
+
_project_graph_has_data,
|
|
28
|
+
_resolved_graph_backend,
|
|
29
|
+
)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def _mark(tmp_path: Path, backend: str) -> Path:
|
|
33
|
+
marker_dir = tmp_path / ".victor"
|
|
34
|
+
marker_dir.mkdir(exist_ok=True)
|
|
35
|
+
(marker_dir / "graph_backend").write_text(backend)
|
|
36
|
+
return tmp_path
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def test_resolved_backend_reads_marker(tmp_path: Path):
|
|
40
|
+
assert _resolved_graph_backend(tmp_path) == "sqlite"
|
|
41
|
+
_mark(tmp_path, "proxima")
|
|
42
|
+
assert _resolved_graph_backend(tmp_path) == "proxima"
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def test_has_data_advertises_tool_on_marked_repos(tmp_path: Path):
|
|
46
|
+
# A proxima-marked repo must not be probed via project.db's sqlite
|
|
47
|
+
# tables (which are legitimately empty there) — the tool stays
|
|
48
|
+
# advertised and the load path constructs the real store.
|
|
49
|
+
_mark(tmp_path, "proxima")
|
|
50
|
+
assert _project_graph_has_data(tmp_path) is True
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def test_shim_default_is_auto():
|
|
54
|
+
import inspect
|
|
55
|
+
|
|
56
|
+
from victor_coding.codebase.graph.registry import create_graph_store
|
|
57
|
+
|
|
58
|
+
sig = inspect.signature(create_graph_store)
|
|
59
|
+
assert sig.parameters["name"].default == "auto"
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
def test_indexer_threads_graph_store_name():
|
|
63
|
+
import inspect
|
|
64
|
+
|
|
65
|
+
from victor_coding.codebase.indexer import CodebaseIndex
|
|
66
|
+
|
|
67
|
+
src = inspect.getsource(CodebaseIndex.__init__)
|
|
68
|
+
assert (
|
|
69
|
+
'name=graph_store_name or "auto"' in src
|
|
70
|
+
), "graph_store_name must reach create_graph_store, not be dropped"
|
{victor_coding-0.7.2 → victor_coding-0.13.0}/victor_coding/codebase/embeddings/proximadb_provider.py
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Copyright 2025 Vijaykumar Singh <
|
|
1
|
+
# Copyright 2025 Vijaykumar Singh <vijay@anvaiops.com>
|
|
2
2
|
#
|
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
4
|
# you may not use this file except in compliance with the License.
|
|
@@ -154,9 +154,7 @@ class ProximaDBProvider(BaseEmbeddingProvider):
|
|
|
154
154
|
)
|
|
155
155
|
|
|
156
156
|
# Create or get collection
|
|
157
|
-
collection_name = self.config.extra_config.get(
|
|
158
|
-
"collection_name", "code_embeddings"
|
|
159
|
-
)
|
|
157
|
+
collection_name = self.config.extra_config.get("collection_name", "code_embeddings")
|
|
160
158
|
await self._ensure_collection(collection_name, dimension)
|
|
161
159
|
|
|
162
160
|
self._initialized = True
|
|
@@ -271,10 +269,7 @@ class ProximaDBProvider(BaseEmbeddingProvider):
|
|
|
271
269
|
elif "null_value" in sql_value:
|
|
272
270
|
return None
|
|
273
271
|
elif "array_value" in sql_value:
|
|
274
|
-
return [
|
|
275
|
-
self._extract_sql_value(v)
|
|
276
|
-
for v in sql_value["array_value"].get("values", [])
|
|
277
|
-
]
|
|
272
|
+
return [self._extract_sql_value(v) for v in sql_value["array_value"].get("values", [])]
|
|
278
273
|
return sql_value
|
|
279
274
|
|
|
280
275
|
def _extract_metadata(self, metadata: Dict[str, Any]) -> Dict[str, Any]:
|
|
@@ -462,9 +457,7 @@ class ProximaDBProvider(BaseEmbeddingProvider):
|
|
|
462
457
|
content=metadata.get("content", ""),
|
|
463
458
|
score=score,
|
|
464
459
|
line_number=metadata.get("line_number"),
|
|
465
|
-
metadata={
|
|
466
|
-
k: v for k, v in metadata.items() if k not in ["content"]
|
|
467
|
-
},
|
|
460
|
+
metadata={k: v for k, v in metadata.items() if k not in ["content"]},
|
|
468
461
|
)
|
|
469
462
|
)
|
|
470
463
|
|
|
@@ -551,9 +544,7 @@ class ProximaDBProvider(BaseEmbeddingProvider):
|
|
|
551
544
|
"total_documents": count,
|
|
552
545
|
"embedding_model_type": self.config.embedding_model_type,
|
|
553
546
|
"embedding_model_name": self.config.embedding_model_name,
|
|
554
|
-
"dimension": (
|
|
555
|
-
self.embedding_model.get_dimension() if self.embedding_model else 384
|
|
556
|
-
),
|
|
547
|
+
"dimension": (self.embedding_model.get_dimension() if self.embedding_model else 384),
|
|
557
548
|
"distance_metric": self.config.distance_metric,
|
|
558
549
|
"collection_name": self._collection_name,
|
|
559
550
|
"persist_directory": str(self._data_dir),
|
|
@@ -27,7 +27,7 @@ except ImportError:
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
def create_graph_store(
|
|
30
|
-
name: str = "
|
|
30
|
+
name: str = "auto",
|
|
31
31
|
project_path: Optional[str] = None,
|
|
32
32
|
*,
|
|
33
33
|
backend: Optional[str] = None,
|
|
@@ -35,6 +35,11 @@ def create_graph_store(
|
|
|
35
35
|
) -> Optional[Any]:
|
|
36
36
|
"""Create a graph store via victor's registry.
|
|
37
37
|
|
|
38
|
+
Default is ``"auto"``: victor resolves the per-repo
|
|
39
|
+
``.victor/graph_backend`` marker (sqlite when absent), so a repo flipped
|
|
40
|
+
to another backend is honored by every default construction instead of
|
|
41
|
+
silently landing on sqlite.
|
|
42
|
+
|
|
38
43
|
Returns None if victor-ai is not installed.
|
|
39
44
|
"""
|
|
40
45
|
if not _VICTOR_AVAILABLE:
|