hanzo 0.3.17__tar.gz → 0.3.19__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.

Potentially problematic release.


This version of hanzo might be problematic. Click here for more details.

Files changed (30) hide show
  1. {hanzo-0.3.17 → hanzo-0.3.19}/PKG-INFO +1 -1
  2. {hanzo-0.3.17 → hanzo-0.3.19}/pyproject.toml +1 -1
  3. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/cli.py +1 -1
  4. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/dev.py +18 -18
  5. {hanzo-0.3.17 → hanzo-0.3.19}/.gitignore +0 -0
  6. {hanzo-0.3.17 → hanzo-0.3.19}/README.md +0 -0
  7. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/__init__.py +0 -0
  8. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/__main__.py +0 -0
  9. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/commands/__init__.py +0 -0
  10. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/commands/agent.py +0 -0
  11. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/commands/auth.py +0 -0
  12. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/commands/chat.py +0 -0
  13. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/commands/cluster.py +0 -0
  14. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/commands/config.py +0 -0
  15. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/commands/mcp.py +0 -0
  16. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/commands/miner.py +0 -0
  17. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/commands/network.py +0 -0
  18. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/commands/repl.py +0 -0
  19. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/commands/tools.py +0 -0
  20. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/interactive/__init__.py +0 -0
  21. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/interactive/dashboard.py +0 -0
  22. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/interactive/repl.py +0 -0
  23. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/mcp_server.py +0 -0
  24. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/orchestrator_config.py +0 -0
  25. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/repl.py +0 -0
  26. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/router/__init__.py +0 -0
  27. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/utils/__init__.py +0 -0
  28. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/utils/config.py +0 -0
  29. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/utils/net_check.py +0 -0
  30. {hanzo-0.3.17 → hanzo-0.3.19}/src/hanzo/utils/output.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: hanzo
3
- Version: 0.3.17
3
+ Version: 0.3.19
4
4
  Summary: Hanzo AI - Complete AI Infrastructure Platform with CLI, Router, MCP, and Agent Runtime
5
5
  Project-URL: Homepage, https://hanzo.ai
6
6
  Project-URL: Repository, https://github.com/hanzoai/python-sdk
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "hanzo"
3
- version = "0.3.17"
3
+ version = "0.3.19"
4
4
  description = "Hanzo AI - Complete AI Infrastructure Platform with CLI, Router, MCP, and Agent Runtime"
5
5
  authors = [
6
6
  {name = "Hanzo AI", email = "dev@hanzo.ai"},
@@ -26,7 +26,7 @@ from .utils.output import console
26
26
  from .interactive.repl import HanzoREPL
27
27
 
28
28
  # Version
29
- __version__ = "0.3.17"
29
+ __version__ = "0.3.19"
30
30
 
31
31
 
32
32
  @click.group(invoke_without_command=True)
@@ -664,11 +664,11 @@ class HanzoDevREPL:
664
664
 
665
665
  async def run(self):
666
666
  """Run the REPL."""
667
- from rich.panel import Panel
668
667
  from rich.box import Box
669
668
  from rich.text import Text
670
- from rich.console import Group
671
669
  from rich.align import Align
670
+ from rich.panel import Panel
671
+ from rich.console import Group
672
672
  from prompt_toolkit import prompt
673
673
  from prompt_toolkit.styles import Style
674
674
 
@@ -678,12 +678,9 @@ class HanzoDevREPL:
678
678
  'prompt': '#666666', # Gray prompt arrow
679
679
  })
680
680
 
681
- # Custom light gray box for Rich panels
682
- LIGHT_GRAY_BOX = Box(
683
- "╭─╮\n"
684
- "│ │\n"
685
- "╰─╯\n"
686
- )
681
+ # Use a predefined box style that's similar to Claude
682
+ from rich.box import ROUNDED
683
+ LIGHT_GRAY_BOX = ROUNDED
687
684
 
688
685
  # Header
689
686
  console.print()
@@ -705,14 +702,12 @@ class HanzoDevREPL:
705
702
  console.print("[dim white]│[/dim white] ", end="")
706
703
 
707
704
  try:
708
- # Use prompt_toolkit for input with Claude-like styling
705
+ # Get input - using simple input() wrapped in executor for async
706
+ # The visual box is drawn by console.print statements
709
707
  user_input = await asyncio.get_event_loop().run_in_executor(
710
708
  None,
711
- lambda: prompt(
712
- '› ', # Using › instead of > for a more modern look
713
- style=claude_style,
714
- message=''
715
- )
709
+ input,
710
+ '› ' # Using › instead of > for a more modern look
716
711
  )
717
712
 
718
713
  # Draw input box border (bottom)
@@ -1173,8 +1168,8 @@ Examples:
1173
1168
  async def _use_openai_cli(self, message: str):
1174
1169
  """Use OpenAI CLI (Codex) - the official OpenAI CLI tool."""
1175
1170
  try:
1176
- import subprocess
1177
1171
  import json
1172
+ import subprocess
1178
1173
 
1179
1174
  console.print("[dim]Using OpenAI CLI (Codex)...[/dim]")
1180
1175
 
@@ -1213,8 +1208,8 @@ Examples:
1213
1208
  async def _use_claude_cli(self, message: str):
1214
1209
  """Use Claude Desktop/Code CLI."""
1215
1210
  try:
1216
- import subprocess
1217
1211
  import os
1212
+ import subprocess
1218
1213
 
1219
1214
  console.print("[dim]Using Claude Desktop...[/dim]")
1220
1215
 
@@ -1316,8 +1311,8 @@ Examples:
1316
1311
  async def _use_hanzo_ide(self, message: str):
1317
1312
  """Use Hanzo Dev IDE from ~/work/hanzo/ide."""
1318
1313
  try:
1319
- import subprocess
1320
1314
  import os
1315
+ import subprocess
1321
1316
 
1322
1317
  console.print("[dim]Using Hanzo Dev IDE...[/dim]")
1323
1318
 
@@ -2344,6 +2339,11 @@ class MultiClaudeOrchestrator(HanzoDevOrchestrator):
2344
2339
  """
2345
2340
  self.console.print(f"[cyan]Executing with System 2 thinking: {task}[/cyan]")
2346
2341
 
2342
+ # Check if instances are initialized
2343
+ if not self.claude_instances:
2344
+ # No instances started, use direct API
2345
+ return await self._call_api_model(task)
2346
+
2347
2347
  # Step 1: Primary execution
2348
2348
  primary = self.claude_instances[0]
2349
2349
  result = await self._send_to_instance(primary, task)
@@ -2438,8 +2438,8 @@ class MultiClaudeOrchestrator(HanzoDevOrchestrator):
2438
2438
  async def _call_claude_cli(self, prompt: str) -> Dict:
2439
2439
  """Call Claude Desktop and return structured response."""
2440
2440
  try:
2441
- import subprocess
2442
2441
  import sys
2442
+ import subprocess
2443
2443
  if sys.platform == "darwin":
2444
2444
  # macOS - use AppleScript
2445
2445
  script = f'tell application "Claude" to activate'
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