dug-cli 0.1.2__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.2 → dug_cli-0.1.4}/.github/workflows/release.yml +2 -2
- {dug_cli-0.1.2 → dug_cli-0.1.4}/PKG-INFO +2 -6
- {dug_cli-0.1.2 → dug_cli-0.1.4}/pyproject.toml +2 -3
- {dug_cli-0.1.2 → dug_cli-0.1.4}/src/dug/embeddings.py +10 -7
- {dug_cli-0.1.2 → dug_cli-0.1.4}/.github/homebrew/dug-cli.rb +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/.github/scoop/dug-cli.json +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/.github/workflows/update-homebrew.yml +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/.gitignore +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/.python-version +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/LICENSE +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/README.md +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/RELEASING.md +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/TODO.md +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/install.sh +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/main.py +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/plan.md +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/src/dug/__init__.py +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/src/dug/__main__.py +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/src/dug/chunker.py +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/src/dug/config.py +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/src/dug/git_context.py +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/src/dug/graph.py +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/src/dug/history.py +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/src/dug/hooks.py +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/src/dug/indexer.py +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/src/dug/prompt_builder.py +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/src/dug/retriever.py +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/src/dug/vector_store.py +0 -0
- {dug_cli-0.1.2 → dug_cli-0.1.4}/src/dug/verifier.py +0 -0
- {dug_cli-0.1.2 → 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,6 +39,11 @@ def _ensure_installed(packages: list[str], label: str) -> None:
|
|
|
40
39
|
if not missing:
|
|
41
40
|
return
|
|
42
41
|
|
|
42
|
+
if getattr(sys, "frozen", False):
|
|
43
|
+
print(f"\n[dug] Running as a standalone binary — cannot auto-install {label} packages.")
|
|
44
|
+
print(f"[dug] Install via pipx instead: pipx install dug-cli")
|
|
45
|
+
sys.exit(1)
|
|
46
|
+
|
|
43
47
|
print(f"\n[dug] {label} dependencies not found: {', '.join(missing)}")
|
|
44
48
|
print(f"[dug] Installing (one-time download)...\n")
|
|
45
49
|
|
|
@@ -62,12 +66,11 @@ def _ensure_installed(packages: list[str], label: str) -> None:
|
|
|
62
66
|
|
|
63
67
|
class LocalEmbedder:
|
|
64
68
|
def __init__(self):
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
self.model = SentenceTransformer("all-MiniLM-L6-v2")
|
|
69
|
+
from fastembed import TextEmbedding
|
|
70
|
+
self.model = TextEmbedding("sentence-transformers/all-MiniLM-L6-v2")
|
|
68
71
|
|
|
69
72
|
def embed(self, text: str) -> list[float]:
|
|
70
|
-
return self.model.
|
|
73
|
+
return list(self.model.embed([text]))[0].tolist()
|
|
71
74
|
|
|
72
75
|
|
|
73
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
|