dug-cli 0.1.3__tar.gz → 0.1.4__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.
- {dug_cli-0.1.3 → dug_cli-0.1.4}/.github/workflows/release.yml +2 -2
- {dug_cli-0.1.3 → dug_cli-0.1.4}/PKG-INFO +2 -6
- {dug_cli-0.1.3 → dug_cli-0.1.4}/pyproject.toml +2 -3
- {dug_cli-0.1.3 → dug_cli-0.1.4}/src/dug/embeddings.py +6 -13
- {dug_cli-0.1.3 → dug_cli-0.1.4}/.github/homebrew/dug-cli.rb +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/.github/scoop/dug-cli.json +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/.github/workflows/update-homebrew.yml +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/.gitignore +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/.python-version +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/LICENSE +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/README.md +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/RELEASING.md +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/TODO.md +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/install.sh +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/main.py +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/plan.md +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/src/dug/__init__.py +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/src/dug/__main__.py +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/src/dug/chunker.py +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/src/dug/config.py +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/src/dug/git_context.py +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/src/dug/graph.py +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/src/dug/history.py +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/src/dug/hooks.py +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/src/dug/indexer.py +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/src/dug/prompt_builder.py +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/src/dug/retriever.py +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/src/dug/vector_store.py +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/src/dug/verifier.py +0 -0
- {dug_cli-0.1.3 → dug_cli-0.1.4}/src/dug/watcher.py +0 -0
|
@@ -73,13 +73,13 @@ jobs:
|
|
|
73
73
|
--onefile
|
|
74
74
|
--name dug
|
|
75
75
|
--collect-submodules dug
|
|
76
|
+
--collect-all fastembed
|
|
77
|
+
--collect-all onnxruntime
|
|
76
78
|
--hidden-import=dug.__main__
|
|
77
79
|
--exclude-module torch
|
|
78
80
|
--exclude-module transformers
|
|
79
81
|
--exclude-module sentence_transformers
|
|
80
82
|
--exclude-module tokenizers
|
|
81
|
-
--exclude-module scipy
|
|
82
|
-
--exclude-module sklearn
|
|
83
83
|
--exclude-module openai
|
|
84
84
|
main.py
|
|
85
85
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: dug-cli
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.4
|
|
4
4
|
Summary: Dig into any bug with full codebase context — zero LLM calls
|
|
5
5
|
Project-URL: Homepage, https://github.com/ratishjain12/dug
|
|
6
6
|
Project-URL: Repository, https://github.com/ratishjain12/dug
|
|
@@ -20,6 +20,7 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
20
20
|
Classifier: Topic :: Software Development :: Debuggers
|
|
21
21
|
Requires-Python: >=3.10
|
|
22
22
|
Requires-Dist: click
|
|
23
|
+
Requires-Dist: fastembed
|
|
23
24
|
Requires-Dist: lancedb
|
|
24
25
|
Requires-Dist: networkx
|
|
25
26
|
Requires-Dist: tree-sitter-java
|
|
@@ -28,11 +29,6 @@ Requires-Dist: tree-sitter-python
|
|
|
28
29
|
Requires-Dist: tree-sitter-typescript>=0.23.2
|
|
29
30
|
Requires-Dist: tree-sitter>=0.22
|
|
30
31
|
Requires-Dist: watchdog
|
|
31
|
-
Provides-Extra: all
|
|
32
|
-
Requires-Dist: openai; extra == 'all'
|
|
33
|
-
Requires-Dist: sentence-transformers; extra == 'all'
|
|
34
|
-
Provides-Extra: local
|
|
35
|
-
Requires-Dist: sentence-transformers; extra == 'local'
|
|
36
32
|
Provides-Extra: openai
|
|
37
33
|
Requires-Dist: openai; extra == 'openai'
|
|
38
34
|
Description-Content-Type: text/markdown
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "dug-cli"
|
|
3
|
-
version = "0.1.
|
|
3
|
+
version = "0.1.4"
|
|
4
4
|
description = "Dig into any bug with full codebase context — zero LLM calls"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = { text = "MIT" }
|
|
@@ -28,6 +28,7 @@ dependencies = [
|
|
|
28
28
|
"tree-sitter-typescript>=0.23.2",
|
|
29
29
|
"lancedb",
|
|
30
30
|
"watchdog",
|
|
31
|
+
"fastembed",
|
|
31
32
|
]
|
|
32
33
|
|
|
33
34
|
[project.urls]
|
|
@@ -36,9 +37,7 @@ Repository = "https://github.com/ratishjain12/dug"
|
|
|
36
37
|
"Bug Tracker" = "https://github.com/ratishjain12/dug/issues"
|
|
37
38
|
|
|
38
39
|
[project.optional-dependencies]
|
|
39
|
-
local = ["sentence-transformers"]
|
|
40
40
|
openai = ["openai"]
|
|
41
|
-
all = ["sentence-transformers", "openai"]
|
|
42
41
|
|
|
43
42
|
[project.scripts]
|
|
44
43
|
dug = "dug.__main__:cli"
|
|
@@ -15,14 +15,13 @@ warnings.filterwarnings("ignore", category=UserWarning, module="huggingface_hub"
|
|
|
15
15
|
warnings.filterwarnings("ignore", category=FutureWarning, module="transformers")
|
|
16
16
|
|
|
17
17
|
for _noisy in ("sentence_transformers", "huggingface_hub", "transformers",
|
|
18
|
-
"torch", "tokenizers"):
|
|
18
|
+
"torch", "tokenizers", "fastembed"):
|
|
19
19
|
logging.getLogger(_noisy).setLevel(logging.ERROR)
|
|
20
20
|
|
|
21
21
|
# ---------------------------------------------------------------------------
|
|
22
|
-
# Dependency installer
|
|
22
|
+
# Dependency installer (OpenAI only — fastembed is a base dep)
|
|
23
23
|
# ---------------------------------------------------------------------------
|
|
24
24
|
|
|
25
|
-
_LOCAL_DEPS = ["sentence-transformers"]
|
|
26
25
|
_OPENAI_DEPS = ["openai"]
|
|
27
26
|
|
|
28
27
|
|
|
@@ -40,14 +39,9 @@ def _ensure_installed(packages: list[str], label: str) -> None:
|
|
|
40
39
|
if not missing:
|
|
41
40
|
return
|
|
42
41
|
|
|
43
|
-
# PyInstaller binary: sys.executable is the frozen binary, not Python
|
|
44
42
|
if getattr(sys, "frozen", False):
|
|
45
43
|
print(f"\n[dug] Running as a standalone binary — cannot auto-install {label} packages.")
|
|
46
|
-
print(f"[dug]
|
|
47
|
-
print(f" dug config set embedding_mode openai")
|
|
48
|
-
print(f" dug config set api_key <your-openai-key>")
|
|
49
|
-
print(f"[dug] Or reinstall dug via pipx for local embeddings:")
|
|
50
|
-
print(f" pipx install dug-cli")
|
|
44
|
+
print(f"[dug] Install via pipx instead: pipx install dug-cli")
|
|
51
45
|
sys.exit(1)
|
|
52
46
|
|
|
53
47
|
print(f"\n[dug] {label} dependencies not found: {', '.join(missing)}")
|
|
@@ -72,12 +66,11 @@ def _ensure_installed(packages: list[str], label: str) -> None:
|
|
|
72
66
|
|
|
73
67
|
class LocalEmbedder:
|
|
74
68
|
def __init__(self):
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
self.model = SentenceTransformer("all-MiniLM-L6-v2")
|
|
69
|
+
from fastembed import TextEmbedding
|
|
70
|
+
self.model = TextEmbedding("sentence-transformers/all-MiniLM-L6-v2")
|
|
78
71
|
|
|
79
72
|
def embed(self, text: str) -> list[float]:
|
|
80
|
-
return self.model.
|
|
73
|
+
return list(self.model.embed([text]))[0].tolist()
|
|
81
74
|
|
|
82
75
|
|
|
83
76
|
class OpenAIEmbedder:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|