gitarsenal-cli 1.9.85 → 1.9.86

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.
package/.venv_status.json CHANGED
@@ -1 +1 @@
1
- {"created":"2025-08-20T12:21:13.646Z","packages":["modal","gitingest","requests","anthropic"],"uv_version":"uv 0.8.4 (Homebrew 2025-07-30)"}
1
+ {"created":"2025-08-20T12:56:37.874Z","packages":["modal","gitingest","requests","anthropic"],"uv_version":"uv 0.8.4 (Homebrew 2025-07-30)"}
@@ -109,7 +109,7 @@ When you run `query "read main.py"`, you now see:
109
109
 
110
110
  ### Enhanced Todo Management
111
111
  Todo lists are now displayed as professional tables with:
112
- - Status indicators (⏳ Pending, 🔄 In Progress, Completed)
112
+ - Status indicators (⏳ Pending, 🔄 In Progress, Completed)
113
113
  - Organized columns
114
114
  - Clean borders and styling
115
115
 
@@ -444,7 +444,7 @@ The following {len(TOOL_SCHEMAS)} tools are loaded and available:
444
444
  todo_table.add_column("Task", style="cyan")
445
445
 
446
446
  for i, todo in enumerate(todos, 1):
447
- status_emoji = {"pending": "⏳ Pending", "in_progress": "🔄 In Progress", "completed": " Completed"}.get(todo.get("status", "pending"), "❓ Unknown")
447
+ status_emoji = {"pending": "⏳ Pending", "in_progress": "🔄 In Progress", "completed": " Completed"}.get(todo.get("status", "pending"), "❓ Unknown")
448
448
  content = todo.get("content", "No description")
449
449
  if len(content) > 80:
450
450
  content = content[:80] + "..."
@@ -557,7 +557,7 @@ The following {len(TOOL_SCHEMAS)} tools are loaded and available:
557
557
 
558
558
  # Success panel
559
559
  success_panel = Panel(
560
- f" [bold green]Tool {tool_name} completed successfully[/bold green]",
560
+ f" [bold green]Tool {tool_name} completed successfully[/bold green]",
561
561
  border_style="green",
562
562
  padding=(0, 1)
563
563
  )
@@ -566,7 +566,7 @@ The following {len(TOOL_SCHEMAS)} tools are loaded and available:
566
566
  console.print(result_panel)
567
567
  else:
568
568
  console.print(Panel(
569
- " [bold green]Tool completed successfully[/bold green]\n[dim](no output)[/dim]",
569
+ " [bold green]Tool completed successfully[/bold green]\n[dim](no output)[/dim]",
570
570
  title=f"Tool {tool_name}",
571
571
  border_style="green",
572
572
  padding=(0, 1)
@@ -577,7 +577,7 @@ The following {len(TOOL_SCHEMAS)} tools are loaded and available:
577
577
 
578
578
  except Exception as e:
579
579
  console.print(Panel(
580
- f" [bold red]Tool {tool_name} failed:[/bold red]\n{str(e)}",
580
+ f" [bold red]Tool {tool_name} failed:[/bold red]\n{str(e)}",
581
581
  border_style="red",
582
582
  padding=(0, 1)
583
583
  ))
@@ -929,7 +929,7 @@ The following {len(TOOL_SCHEMAS)} tools are loaded and available:
929
929
  break
930
930
  except Exception as e:
931
931
  console.print(Panel(
932
- f"[bold red] Error:[/bold red] {str(e)}",
932
+ f"[bold red] Error:[/bold red] {str(e)}",
933
933
  border_style="red"
934
934
  ))
935
935
 
@@ -1007,7 +1007,7 @@ The following {len(TOOL_SCHEMAS)} tools are loaded and available:
1007
1007
  config_table = Table(show_header=False, box=None)
1008
1008
  config_table.add_column("Setting", style="yellow")
1009
1009
  config_table.add_column("Value", style="green")
1010
- config_table.add_row("API Key", " Set" if self.api_key else " Missing")
1010
+ config_table.add_row("API Key", " Set" if self.api_key else " Missing")
1011
1011
  config_table.add_row("Model", "claude-sonnet-4-20250514")
1012
1012
  config_table.add_row("Working Directory", self.working_dir)
1013
1013
  config_table.add_row("Git Repository", "Yes" if self.is_git_repo else "No")
@@ -1061,7 +1061,7 @@ def interactive(
1061
1061
  agent.interactive_mode()
1062
1062
  except ValueError as e:
1063
1063
  console.print(Panel(
1064
- f"[bold red] Configuration Error:[/bold red]\n{str(e)}\n\n" +
1064
+ f"[bold red] Configuration Error:[/bold red]\n{str(e)}\n\n" +
1065
1065
  "[yellow]To fix this:[/yellow]\n" +
1066
1066
  "1. Get your Anthropic API key from: https://console.anthropic.com/\n" +
1067
1067
  "2. Set environment variable: [cyan]export ANTHROPIC_API_KEY=your_key_here[/cyan]\n" +
@@ -1072,7 +1072,7 @@ def interactive(
1072
1072
  raise typer.Exit(1)
1073
1073
  except Exception as e:
1074
1074
  console.print(Panel(
1075
- f"[bold red] Error:[/bold red] {str(e)}",
1075
+ f"[bold red] Error:[/bold red] {str(e)}",
1076
1076
  border_style="red"
1077
1077
  ))
1078
1078
  raise typer.Exit(1)
@@ -1109,7 +1109,7 @@ def query(
1109
1109
 
1110
1110
  except ValueError as e:
1111
1111
  console.print(Panel(
1112
- f"[bold red] Configuration Error:[/bold red]\n{str(e)}\n\n" +
1112
+ f"[bold red] Configuration Error:[/bold red]\n{str(e)}\n\n" +
1113
1113
  "[yellow]To fix this:[/yellow]\n" +
1114
1114
  "1. Get your Anthropic API key from: https://console.anthropic.com/\n" +
1115
1115
  "2. Set environment variable: [cyan]export ANTHROPIC_API_KEY=your_key_here[/cyan]\n" +
@@ -1120,7 +1120,7 @@ def query(
1120
1120
  raise typer.Exit(1)
1121
1121
  except Exception as e:
1122
1122
  console.print(Panel(
1123
- f"[bold red] Error:[/bold red] {str(e)}",
1123
+ f"[bold red] Error:[/bold red] {str(e)}",
1124
1124
  border_style="red"
1125
1125
  ))
1126
1126
  raise typer.Exit(1)
@@ -1137,7 +1137,7 @@ def setup():
1137
1137
  system_info.add_row("Platform", os.uname().sysname if hasattr(os, 'uname') else 'unknown')
1138
1138
  system_info.add_row("Working Directory", os.getcwd())
1139
1139
  system_info.add_row("Git Repository", "Yes" if os.path.exists('.git') else "No")
1140
- system_info.add_row("API Key Status", " Set" if os.getenv('ANTHROPIC_API_KEY') else " Missing")
1140
+ system_info.add_row("API Key Status", " Set" if os.getenv('ANTHROPIC_API_KEY') else " Missing")
1141
1141
 
1142
1142
  # Setup instructions
1143
1143
  setup_instructions = """[bold yellow]1. Get your API key:[/bold yellow]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gitarsenal-cli",
3
- "version": "1.9.85",
3
+ "version": "1.9.86",
4
4
  "description": "CLI tool for creating Modal sandboxes with GitHub repositories",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -322,7 +322,8 @@ def ssh_container_function(ssh_password=None, repo_url=None, repo_name=None, set
322
322
  # Process complete lines immediately
323
323
  while '\n' in stdout_buffer:
324
324
  line, stdout_buffer = stdout_buffer.split('\n', 1)
325
- print(line, flush=True) # Force immediate flush
325
+ # Add subtle color to agent output for better readability
326
+ print(line, flush=True) # Use default terminal colors
326
327
  elif stream == process.stderr:
327
328
  chunk = stream.read(1024)
328
329
  if chunk is not None and chunk:
@@ -816,32 +817,32 @@ def show_usage_examples():
816
817
 
817
818
  print("Basic Container Creation with Agent")
818
819
  print("┌────────────────────────────────────────────────────────────────────────┐")
819
- print("│ gitarsenal --gpu A10G --repo-url https://github.com/username/repo.git │")
820
+ print("│ gitarsenal --gpu A10G --repo https://github.com/username/repo.git │")
820
821
  print("│ # Agent will intelligently clone and setup the repository │")
821
822
  print("└────────────────────────────────────────────────────────────────────────┘\n")
822
823
 
823
824
  print("With Persistent Storage")
824
825
  print("┌────────────────────────────────────────────────────────────────────────────────────┐")
825
- print("│ gitarsenal --gpu A10G --repo-url https://github.com/username/repo.git \\ │")
826
+ print("│ gitarsenal --gpu A10G --repo https://github.com/username/repo.git \\ │")
826
827
  print("│ --volume-name my-persistent-volume │")
827
828
  print("└────────────────────────────────────────────────────────────────────────────────────┘\n")
828
829
 
829
830
  print("With Multiple GPUs")
830
831
  print("┌────────────────────────────────────────────────────────────────────────────────────┐")
831
832
  print("│ gitarsenal --gpu A100-80GB --gpu-count 4 \\ │")
832
- print("│ --repo-url https://github.com/username/repo.git │")
833
+ print("│ --repo https://github.com/username/repo.git │")
833
834
  print("└────────────────────────────────────────────────────────────────────────────────────┘\n")
834
835
 
835
836
  print("Intelligent Repository Setup (default)")
836
837
  print("┌────────────────────────────────────────────────────────────────────────────────────┐")
837
- print("│ gitarsenal --gpu A10G --repo-url https://github.com/username/repo.git │")
838
+ print("│ gitarsenal --gpu A10G --repo https://github.com/username/repo.git │")
838
839
  print("│ # Agent analyzes repo and sets up environment automatically │")
839
840
  print("└────────────────────────────────────────────────────────────────────────────────────┘\n")
840
841
 
841
842
  print("With Manual Setup Commands (Advanced)")
842
843
  print("┌────────────────────────────────────────────────────────────────────────────────────┐")
843
844
  print("│ gitarsenal --gpu A10G --setup-commands \"pip install torch\" \"python train.py\" │")
844
- print("│ # Only use when not providing --repo-url (bypasses Agent) │")
845
+ print("│ # Only use when not providing --repo (bypasses Agent) │")
845
846
  print("└────────────────────────────────────────────────────────────────────────────────────┘\n")
846
847
 
847
848
  print("Development Mode (Skip Authentication)")
@@ -863,16 +864,16 @@ def show_usage_examples():
863
864
  print(" • Without --gpu: Shows interactive GPU selection menu")
864
865
  print()
865
866
  print("Repository Setup Behavior:")
866
- print(" • With --repo-url Agent intelligently clones and sets up repository")
867
- print(" • Without --repo-url: Manual container setup (no automatic repository setup)")
868
- print(" • Legacy --setup-commands: Only used when --repo-url not provided")
867
+ print(" • With --repo Agent intelligently clones and sets up repository")
868
+ print(" • Without --repo: Manual container setup (no automatic repository setup)")
869
+ print(" • Legacy --setup-commands: Only used when --repo not provided")
869
870
  print()
870
871
  print("Examples:")
871
872
  print(" # Intelligent repository setup (recommended):")
872
- print(" gitarsenal --gpu A10G --repo-url https://github.com/username/repo.git")
873
+ print(" gitarsenal --gpu A10G --repo https://github.com/username/repo.git")
873
874
  print()
874
875
  print(" # Development mode (skip authentication):")
875
- print(" gitarsenal --skip-auth --gpu A10G --repo-url https://github.com/username/repo.git")
876
+ print(" gitarsenal --skip-auth --gpu A10G --repo https://github.com/username/repo.git")
876
877
  print()
877
878
  print(" # Manual setup (advanced users):")
878
879
  print(" gitarsenal --gpu A10G --setup-commands \"pip install torch\" \"python train.py\"")