blitzcoder 1.0.0__tar.gz → 1.0.2__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.
- {blitzcoder-1.0.0/src/blitzcoder.egg-info → blitzcoder-1.0.2}/PKG-INFO +1 -1
- {blitzcoder-1.0.0 → blitzcoder-1.0.2}/pyproject.toml +1 -1
- {blitzcoder-1.0.0 → blitzcoder-1.0.2}/setup.py +1 -1
- {blitzcoder-1.0.0 → blitzcoder-1.0.2}/src/blitzcoder/__init__.py +1 -1
- {blitzcoder-1.0.0 → blitzcoder-1.0.2}/src/blitzcoder/cli/__init__.py +1 -1
- {blitzcoder-1.0.0 → blitzcoder-1.0.2}/src/blitzcoder/cli/cli_coder.py +11 -2
- {blitzcoder-1.0.0 → blitzcoder-1.0.2/src/blitzcoder.egg-info}/PKG-INFO +1 -1
- {blitzcoder-1.0.0 → blitzcoder-1.0.2}/src/blitzcoder.egg-info/SOURCES.txt +0 -1
- {blitzcoder-1.0.0 → blitzcoder-1.0.2}/src/main/graphapi.py +8 -9
- blitzcoder-1.0.0/build_and_publish.py +0 -107
- {blitzcoder-1.0.0 → blitzcoder-1.0.2}/LICENSE +0 -0
- {blitzcoder-1.0.0 → blitzcoder-1.0.2}/MANIFEST.in +0 -0
- {blitzcoder-1.0.0 → blitzcoder-1.0.2}/README.md +0 -0
- {blitzcoder-1.0.0 → blitzcoder-1.0.2}/requirements.txt +0 -0
- {blitzcoder-1.0.0 → blitzcoder-1.0.2}/setup.cfg +0 -0
- {blitzcoder-1.0.0 → blitzcoder-1.0.2}/src/blitzcoder.egg-info/dependency_links.txt +0 -0
- {blitzcoder-1.0.0 → blitzcoder-1.0.2}/src/blitzcoder.egg-info/entry_points.txt +0 -0
- {blitzcoder-1.0.0 → blitzcoder-1.0.2}/src/blitzcoder.egg-info/requires.txt +0 -0
- {blitzcoder-1.0.0 → blitzcoder-1.0.2}/src/blitzcoder.egg-info/top_level.txt +0 -0
- {blitzcoder-1.0.0 → blitzcoder-1.0.2}/src/main/__init__.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "blitzcoder"
|
|
7
|
-
version = "1.0.
|
|
7
|
+
version = "1.0.2"
|
|
8
8
|
description = "AI-powered development assistant for code generation, refactoring, and project management"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = {text = "MIT"}
|
|
@@ -12,7 +12,7 @@ except Exception:
|
|
|
12
12
|
|
|
13
13
|
setup(
|
|
14
14
|
name="blitzcoder",
|
|
15
|
-
version="1.0.
|
|
15
|
+
version="1.0.2",
|
|
16
16
|
description="AI-powered development assistant for code generation, refactoring, and project management",
|
|
17
17
|
long_description=long_description,
|
|
18
18
|
long_description_content_type="text/markdown",
|
|
@@ -5,7 +5,7 @@ A comprehensive AI-powered development assistant that helps with code generation
|
|
|
5
5
|
refactoring, project scaffolding, and development tasks.
|
|
6
6
|
"""
|
|
7
7
|
|
|
8
|
-
__version__ = "1.0.
|
|
8
|
+
__version__ = "1.0.2"
|
|
9
9
|
__author__ = "BlitzCoder Team"
|
|
10
10
|
__author_email__ = "raghunandanerukulla@gmail.com"
|
|
11
11
|
__description__ = "AI-Powered Development Assistant"
|
|
@@ -6,7 +6,7 @@ A command-line interface for AI-powered code generation, refactoring, and projec
|
|
|
6
6
|
|
|
7
7
|
from .cli_coder import cli, run_agent_with_memory, search_memories_cli
|
|
8
8
|
|
|
9
|
-
__version__ = "1.0.
|
|
9
|
+
__version__ = "1.0.2"
|
|
10
10
|
__author__ = "BlitzCoder Team"
|
|
11
11
|
__description__ = "AI-Powered Development Assistant CLI"
|
|
12
12
|
|
|
@@ -13,7 +13,7 @@ from langgraph.checkpoint.memory import InMemorySaver
|
|
|
13
13
|
from langgraph.prebuilt import ToolNode, tools_condition
|
|
14
14
|
from langgraph.store.base import BaseStore
|
|
15
15
|
|
|
16
|
-
from langchain_google_genai import ChatGoogleGenerativeAI
|
|
16
|
+
from langchain_google_genai import ChatGoogleGenerativeAI,GoogleGenerativeAIEmbeddings
|
|
17
17
|
from langchain_core.runnables import RunnableConfig
|
|
18
18
|
from langchain_core.messages import AIMessage, HumanMessage, SystemMessage
|
|
19
19
|
|
|
@@ -104,7 +104,16 @@ def update_memory(state: AgentState, config: RunnableConfig, *, store: BaseStore
|
|
|
104
104
|
return state
|
|
105
105
|
|
|
106
106
|
|
|
107
|
-
|
|
107
|
+
semantic_memory_store = InMemoryStore(
|
|
108
|
+
index={
|
|
109
|
+
"embed": GoogleGenerativeAIEmbeddings(
|
|
110
|
+
model="models/embedding-001",
|
|
111
|
+
google_api_key=os.getenv("GOOGLE_API_KEY"),
|
|
112
|
+
),
|
|
113
|
+
"dims": 768, # Google embedding dimension
|
|
114
|
+
"fields": ["memory", "$"], # Fields to embed
|
|
115
|
+
}
|
|
116
|
+
)
|
|
108
117
|
|
|
109
118
|
def retrieve_and_enhance_context(state: AgentState, config: RunnableConfig, *, store: BaseStore):
|
|
110
119
|
user_id = config["configurable"].get("user_id", "default")
|
|
@@ -21,7 +21,7 @@ from rich.progress import Progress, SpinnerColumn, BarColumn, TimeElapsedColumn
|
|
|
21
21
|
from rich.text import Text
|
|
22
22
|
from rich.table import Table
|
|
23
23
|
from rich.live import Live
|
|
24
|
-
|
|
24
|
+
|
|
25
25
|
|
|
26
26
|
|
|
27
27
|
from langgraph.graph import StateGraph, START, END, MessagesState
|
|
@@ -39,10 +39,10 @@ from langchain_core.runnables import RunnableConfig
|
|
|
39
39
|
from langchain_core.tools import tool
|
|
40
40
|
from dotenv import load_dotenv
|
|
41
41
|
from loguru import logger
|
|
42
|
-
|
|
42
|
+
|
|
43
43
|
|
|
44
44
|
from langchain_groq import ChatGroq
|
|
45
|
-
from langchain_google_genai import ChatGoogleGenerativeAI
|
|
45
|
+
from langchain_google_genai import ChatGoogleGenerativeAI,GoogleGenerativeAIEmbeddings
|
|
46
46
|
|
|
47
47
|
from config.settings import AgentSettings
|
|
48
48
|
|
|
@@ -200,15 +200,14 @@ class AgentState(MessagesState):
|
|
|
200
200
|
documents: list[str]
|
|
201
201
|
|
|
202
202
|
|
|
203
|
-
# Semantic memory store for user memories, using
|
|
203
|
+
# Semantic memory store for user memories, using Google Gemini embeddings
|
|
204
204
|
semantic_memory_store = InMemoryStore(
|
|
205
205
|
index={
|
|
206
|
-
"embed":
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
model="qwen/qwen3-embedding-8b",
|
|
206
|
+
"embed": GoogleGenerativeAIEmbeddings(
|
|
207
|
+
model="models/embedding-001",
|
|
208
|
+
google_api_key=os.getenv("GOOGLE_API_KEY"),
|
|
210
209
|
),
|
|
211
|
-
"dims":
|
|
210
|
+
"dims": 768, # Google embedding dimension
|
|
212
211
|
"fields": ["memory", "$"], # Fields to embed
|
|
213
212
|
}
|
|
214
213
|
)
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
"""
|
|
3
|
-
Build and Publish Script for BlitzCoder
|
|
4
|
-
|
|
5
|
-
This script helps build and publish the BlitzCoder package to PyPI.
|
|
6
|
-
"""
|
|
7
|
-
|
|
8
|
-
import subprocess
|
|
9
|
-
import sys
|
|
10
|
-
import os
|
|
11
|
-
import shutil
|
|
12
|
-
|
|
13
|
-
def run_command(command, description):
|
|
14
|
-
"""Run a command and handle errors"""
|
|
15
|
-
print(f"🔄 {description}...")
|
|
16
|
-
try:
|
|
17
|
-
result = subprocess.run(command, shell=True, check=True, capture_output=True, text=True)
|
|
18
|
-
print(f"✅ {description} completed successfully")
|
|
19
|
-
return result.stdout
|
|
20
|
-
except subprocess.CalledProcessError as e:
|
|
21
|
-
print(f"❌ {description} failed: {e}")
|
|
22
|
-
print(f"Error output: {e.stderr}")
|
|
23
|
-
return None
|
|
24
|
-
|
|
25
|
-
def clean_build():
|
|
26
|
-
"""Clean previous build artifacts"""
|
|
27
|
-
print("🧹 Cleaning previous build artifacts...")
|
|
28
|
-
dirs_to_clean = ["build", "dist", "*.egg-info"]
|
|
29
|
-
for dir_name in dirs_to_clean:
|
|
30
|
-
if os.path.exists(dir_name):
|
|
31
|
-
shutil.rmtree(dir_name)
|
|
32
|
-
print(f" Removed {dir_name}")
|
|
33
|
-
|
|
34
|
-
def build_package():
|
|
35
|
-
"""Build the package"""
|
|
36
|
-
return run_command("python -m build", "Building package")
|
|
37
|
-
|
|
38
|
-
def check_package():
|
|
39
|
-
"""Check the package for issues"""
|
|
40
|
-
return run_command("python -m twine check dist/*", "Checking package")
|
|
41
|
-
|
|
42
|
-
def upload_to_testpypi():
|
|
43
|
-
"""Upload to TestPyPI"""
|
|
44
|
-
return run_command("python -m twine upload --repository testpypi dist/*", "Uploading to TestPyPI")
|
|
45
|
-
|
|
46
|
-
def upload_to_pypi():
|
|
47
|
-
"""Upload to PyPI"""
|
|
48
|
-
return run_command("python -m twine upload dist/*", "Uploading to PyPI")
|
|
49
|
-
|
|
50
|
-
def main():
|
|
51
|
-
print("🚀 BlitzCoder PyPI Publishing Script")
|
|
52
|
-
print("=" * 50)
|
|
53
|
-
|
|
54
|
-
# Check if required tools are installed
|
|
55
|
-
try:
|
|
56
|
-
import build
|
|
57
|
-
import twine
|
|
58
|
-
except ImportError:
|
|
59
|
-
print("❌ Required packages not found. Installing...")
|
|
60
|
-
run_command("pip install build twine", "Installing build tools")
|
|
61
|
-
|
|
62
|
-
# Clean previous builds
|
|
63
|
-
clean_build()
|
|
64
|
-
|
|
65
|
-
# Build the package
|
|
66
|
-
if not build_package():
|
|
67
|
-
print("❌ Build failed. Exiting.")
|
|
68
|
-
sys.exit(1)
|
|
69
|
-
|
|
70
|
-
# Check the package
|
|
71
|
-
if not check_package():
|
|
72
|
-
print("❌ Package check failed. Exiting.")
|
|
73
|
-
sys.exit(1)
|
|
74
|
-
|
|
75
|
-
print("\n📦 Package built successfully!")
|
|
76
|
-
print("\nChoose an option:")
|
|
77
|
-
print("1. Upload to TestPyPI (recommended for testing)")
|
|
78
|
-
print("2. Upload to PyPI (production)")
|
|
79
|
-
print("3. Exit")
|
|
80
|
-
|
|
81
|
-
choice = input("\nEnter your choice (1-3): ").strip()
|
|
82
|
-
|
|
83
|
-
if choice == "1":
|
|
84
|
-
print("\n🔬 Uploading to TestPyPI...")
|
|
85
|
-
if upload_to_testpypi():
|
|
86
|
-
print("\n✅ Package uploaded to TestPyPI successfully!")
|
|
87
|
-
print("🔗 You can test it with: pip install --index-url https://test.pypi.org/simple/ blitzcoder")
|
|
88
|
-
else:
|
|
89
|
-
print("❌ Upload to TestPyPI failed.")
|
|
90
|
-
|
|
91
|
-
elif choice == "2":
|
|
92
|
-
print("\n⚠️ WARNING: This will upload to the main PyPI repository!")
|
|
93
|
-
confirm = input("Are you sure you want to continue? (yes/no): ").strip().lower()
|
|
94
|
-
if confirm == "yes":
|
|
95
|
-
if upload_to_pypi():
|
|
96
|
-
print("\n✅ Package uploaded to PyPI successfully!")
|
|
97
|
-
print("🔗 You can install it with: pip install blitzcoder")
|
|
98
|
-
else:
|
|
99
|
-
print("❌ Upload to PyPI failed.")
|
|
100
|
-
else:
|
|
101
|
-
print("❌ Upload cancelled.")
|
|
102
|
-
|
|
103
|
-
else:
|
|
104
|
-
print("👋 Exiting without upload.")
|
|
105
|
-
|
|
106
|
-
if __name__ == "__main__":
|
|
107
|
-
main()
|
|
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
|