zwarm 2.0.1__tar.gz → 2.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.
Files changed (37) hide show
  1. {zwarm-2.0.1 → zwarm-2.0.2}/PKG-INFO +1 -1
  2. {zwarm-2.0.1 → zwarm-2.0.2}/pyproject.toml +1 -1
  3. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/cli/main.py +15 -8
  4. {zwarm-2.0.1 → zwarm-2.0.2}/.gitignore +0 -0
  5. {zwarm-2.0.1 → zwarm-2.0.2}/README.md +0 -0
  6. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/__init__.py +0 -0
  7. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/adapters/__init__.py +0 -0
  8. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/adapters/base.py +0 -0
  9. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/adapters/claude_code.py +0 -0
  10. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/adapters/codex_mcp.py +0 -0
  11. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/adapters/registry.py +0 -0
  12. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/adapters/test_codex_mcp.py +0 -0
  13. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/adapters/test_registry.py +0 -0
  14. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/cli/__init__.py +0 -0
  15. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/core/__init__.py +0 -0
  16. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/core/compact.py +0 -0
  17. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/core/config.py +0 -0
  18. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/core/environment.py +0 -0
  19. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/core/models.py +0 -0
  20. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/core/state.py +0 -0
  21. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/core/test_compact.py +0 -0
  22. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/core/test_config.py +0 -0
  23. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/core/test_models.py +0 -0
  24. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/orchestrator.py +0 -0
  25. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/prompts/__init__.py +0 -0
  26. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/prompts/orchestrator.py +0 -0
  27. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/sessions/__init__.py +0 -0
  28. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/sessions/manager.py +0 -0
  29. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/test_orchestrator_watchers.py +0 -0
  30. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/tools/__init__.py +0 -0
  31. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/tools/delegation.py +0 -0
  32. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/watchers/__init__.py +0 -0
  33. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/watchers/base.py +0 -0
  34. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/watchers/builtin.py +0 -0
  35. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/watchers/manager.py +0 -0
  36. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/watchers/registry.py +0 -0
  37. {zwarm-2.0.1 → zwarm-2.0.2}/src/zwarm/watchers/test_watchers.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: zwarm
3
- Version: 2.0.1
3
+ Version: 2.0.2
4
4
  Summary: Multi-Agent CLI Orchestration Research Platform
5
5
  Requires-Python: <3.14,>=3.13
6
6
  Requires-Dist: python-dotenv>=1.0.0
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "zwarm"
3
- version = "2.0.1"
3
+ version = "2.0.2"
4
4
  description = "Multi-Agent CLI Orchestration Research Platform"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.13,<3.14"
@@ -1375,7 +1375,7 @@ def interactive(
1375
1375
 
1376
1376
  def do_spawn(args: list[str]):
1377
1377
  """Spawn a new coding agent session using CodexSessionManager (same as orchestrator)."""
1378
- from zwarm.sessions import CodexSessionManager
1378
+ from zwarm.sessions import CodexSessionManager, SessionStatus as SessStatus
1379
1379
  import time
1380
1380
 
1381
1381
  parsed = parse_spawn_args(args)
@@ -1431,15 +1431,18 @@ def interactive(
1431
1431
  break
1432
1432
  time.sleep(1.0)
1433
1433
 
1434
- # Get the response
1434
+ # Get all assistant responses
1435
1435
  messages = manager.get_messages(session.id)
1436
- for msg in messages:
1437
- if msg.role == "assistant":
1438
- response_preview = msg.content[:300]
1436
+ assistant_msgs = [m for m in messages if m.role == "assistant"]
1437
+ if assistant_msgs:
1438
+ console.print(f"\n[bold]Response ({len(assistant_msgs)} message{'s' if len(assistant_msgs) > 1 else ''}):[/]")
1439
+ for msg in assistant_msgs:
1440
+ preview = msg.content[:300]
1439
1441
  if len(msg.content) > 300:
1440
- response_preview += "..."
1441
- console.print(f"\n[bold]Response:[/]\n{response_preview}")
1442
- break
1442
+ preview += "..."
1443
+ console.print(preview)
1444
+ if len(assistant_msgs) > 1:
1445
+ console.print() # Blank line between multiple messages
1443
1446
 
1444
1447
  console.print(f"\n[dim]Use 'show {session.short_id}' to see full details[/]")
1445
1448
  console.print(f"[dim]Use 'c {session.short_id} \"message\"' to continue[/]")
@@ -1580,6 +1583,10 @@ def interactive(
1580
1583
  console.print(f"[dim]Source:[/] {session.source_display} [dim]│[/] [dim]Runtime:[/] {session.runtime}")
1581
1584
  if session.pid:
1582
1585
  console.print(f"[dim]PID:[/] {session.pid}")
1586
+
1587
+ # Show log file path
1588
+ log_path = default_dir / ".zwarm" / "sessions" / session.id / "turns" / f"turn_{session.turn}.jsonl"
1589
+ console.print(f"[dim]Log:[/] {log_path}")
1583
1590
  console.print()
1584
1591
 
1585
1592
  # Get messages from manager
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