gitarsenal-cli 1.9.66 → 1.9.67

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-14T20:40:04.217Z","packages":["modal","gitingest","requests","anthropic"],"uv_version":"uv 0.8.4 (Homebrew 2025-07-30)"}
1
+ {"created":"2025-08-14T20:59:50.666Z","packages":["modal","gitingest","requests","anthropic"],"uv_version":"uv 0.8.4 (Homebrew 2025-07-30)"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gitarsenal-cli",
3
- "version": "1.9.66",
3
+ "version": "1.9.67",
4
4
  "description": "CLI tool for creating Modal sandboxes with GitHub repositories",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -551,36 +551,51 @@ def create_modal_ssh_container(gpu_type, repo_url=None, repo_name=None, setup_co
551
551
  print(f"Available Credentials: {len(stored_credentials)} items")
552
552
  print("="*80 + "\n")
553
553
 
554
- # Call Claude Code Agent directly as subprocess
554
+ # Call Claude Code Agent directly as subprocess with real-time output
555
555
  claude_prompt = f"clone and setup {repo_url}"
556
556
  print(f"šŸš€ Executing: python /python/kill_claude/claude_code_agent.py \"{claude_prompt}\"")
557
+ print("\n" + "="*60)
558
+ print("šŸŽ‰ CLAUDE CODE AGENT OUTPUT (LIVE)")
559
+ print("="*60)
557
560
 
558
- result = subprocess.run(
561
+ # Use Popen for real-time output streaming
562
+ process = subprocess.Popen(
559
563
  ["python", "/python/kill_claude/claude_code_agent.py", claude_prompt],
560
564
  cwd="/root",
561
- capture_output=True,
565
+ stdout=subprocess.PIPE,
566
+ stderr=subprocess.STDOUT, # Merge stderr into stdout
562
567
  text=True,
563
- timeout=600 # 10 minute timeout
568
+ bufsize=1, # Line buffered
569
+ universal_newlines=True
564
570
  )
565
571
 
566
- print("\n" + "="*60)
567
- print("šŸŽ‰ CLAUDE CODE AGENT OUTPUT")
568
- print("="*60)
569
-
570
- if result.stdout:
571
- print("šŸ“‹ STDOUT:")
572
- print(result.stdout)
572
+ # Stream output in real-time
573
+ try:
574
+ while True:
575
+ output = process.stdout.readline()
576
+ if output == '' and process.poll() is not None:
577
+ break
578
+ if output:
579
+ print(output.rstrip())
573
580
 
574
- if result.stderr:
575
- print("āš ļø STDERR:")
576
- print(result.stderr)
581
+ # Wait for process to complete and get return code
582
+ return_code = process.wait(timeout=600) # 10 minute timeout
577
583
 
578
- if result.returncode == 0:
579
- print("āœ… Claude Code Agent completed successfully!")
580
- else:
581
- print(f"āš ļø Claude Code Agent exited with code: {result.returncode}")
582
-
583
- print("="*60)
584
+ print("\n" + "="*60)
585
+ if return_code == 0:
586
+ print("āœ… Claude Code Agent completed successfully!")
587
+ else:
588
+ print(f"āš ļø Claude Code Agent exited with code: {return_code}")
589
+ print("="*60)
590
+
591
+ except subprocess.TimeoutExpired:
592
+ print("\nāš ļø Claude Code Agent timed out after 10 minutes")
593
+ process.kill()
594
+ process.wait()
595
+ except Exception as stream_error:
596
+ print(f"\nāš ļø Error streaming output: {stream_error}")
597
+ process.kill()
598
+ process.wait()
584
599
 
585
600
  except Exception as e:
586
601
  print(f"āŒ Error during repository setup: {e}")
@@ -626,11 +641,11 @@ def create_modal_ssh_container(gpu_type, repo_url=None, repo_name=None, setup_co
626
641
  with app.run():
627
642
  # Get the API key from environment
628
643
  api_key = os.environ.get("OPENAI_API_KEY")
629
- print(f"šŸ” API key: {api_key}")
644
+ # print(f"šŸ” API key: {api_key}")
630
645
 
631
646
  # Get stored credentials from local file
632
647
  stored_credentials = get_stored_credentials()
633
- print(f"šŸ” Stored credentials: {stored_credentials}")
648
+ # print(f"šŸ” Stored credentials: {stored_credentials}")
634
649
  if stored_credentials:
635
650
  print(f"šŸ” Found {len(stored_credentials)} stored credentials to send to container")
636
651
  else: