cloudwright-ai-cli 0.2.5__tar.gz → 0.2.7__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 (36) hide show
  1. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/PKG-INFO +1 -1
  2. cloudwright_ai_cli-0.2.7/cloudwright_cli/__init__.py +1 -0
  3. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/cloudwright_cli/commands/chat.py +25 -4
  4. cloudwright_ai_cli-0.2.5/cloudwright_cli/__init__.py +0 -1
  5. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/.gitignore +0 -0
  6. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/CLAUDE.md +0 -0
  7. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/README.md +0 -0
  8. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/cloudwright_cli/__main__.py +0 -0
  9. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/cloudwright_cli/commands/__init__.py +0 -0
  10. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/cloudwright_cli/commands/analyze_cmd.py +0 -0
  11. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/cloudwright_cli/commands/catalog_cmd.py +0 -0
  12. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/cloudwright_cli/commands/compare.py +0 -0
  13. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/cloudwright_cli/commands/cost.py +0 -0
  14. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/cloudwright_cli/commands/design.py +0 -0
  15. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/cloudwright_cli/commands/diff.py +0 -0
  16. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/cloudwright_cli/commands/drift_cmd.py +0 -0
  17. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/cloudwright_cli/commands/export.py +0 -0
  18. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/cloudwright_cli/commands/import_cmd.py +0 -0
  19. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/cloudwright_cli/commands/init_cmd.py +0 -0
  20. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/cloudwright_cli/commands/lint_cmd.py +0 -0
  21. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/cloudwright_cli/commands/modify_cmd.py +0 -0
  22. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/cloudwright_cli/commands/policy.py +0 -0
  23. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/cloudwright_cli/commands/refresh_cmd.py +0 -0
  24. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/cloudwright_cli/commands/score_cmd.py +0 -0
  25. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/cloudwright_cli/commands/validate.py +0 -0
  26. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/cloudwright_cli/main.py +0 -0
  27. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/cloudwright_cli/project.py +0 -0
  28. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/cloudwright_cli/py.typed +0 -0
  29. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/cloudwright_cli/utils.py +0 -0
  30. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/pyproject.toml +0 -0
  31. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/tests/__init__.py +0 -0
  32. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/tests/test_cli.py +0 -0
  33. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/tests/test_drift_cmd.py +0 -0
  34. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/tests/test_init.py +0 -0
  35. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/tests/test_modify_cmd.py +0 -0
  36. {cloudwright_ai_cli-0.2.5 → cloudwright_ai_cli-0.2.7}/tests/test_project.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cloudwright-ai-cli
3
- Version: 0.2.5
3
+ Version: 0.2.7
4
4
  Summary: CLI for Cloudwright architecture intelligence
5
5
  Project-URL: Homepage, https://github.com/xmpuspus/cloudwright
6
6
  Project-URL: Repository, https://github.com/xmpuspus/cloudwright
@@ -0,0 +1 @@
1
+ __version__ = "0.2.7"
@@ -41,15 +41,36 @@ def _launch_web() -> None:
41
41
  try:
42
42
  import cloudwright_web # type: ignore
43
43
  import uvicorn
44
-
45
- console.print("[cyan]Launching Cloudwright web UI...[/cyan]")
46
- uvicorn.run(cloudwright_web.app, host="127.0.0.1", port=8000)
47
44
  except ImportError:
48
45
  console.print(
49
- "[red]Error:[/red] cloudwright-web is not installed.\nInstall it with: pip install cloudwright-web"
46
+ "[red]Error:[/red] cloudwright-web is not installed.\n"
47
+ "Install it with: pip install 'cloudwright-ai[web]'"
50
48
  )
51
49
  raise typer.Exit(1)
52
50
 
51
+ import socket
52
+
53
+ port = 8000
54
+ for candidate in range(8000, 8100):
55
+ with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
56
+ if s.connect_ex(("127.0.0.1", candidate)) != 0:
57
+ port = candidate
58
+ break
59
+
60
+ import threading
61
+ import time
62
+ import webbrowser
63
+
64
+ url = f"http://127.0.0.1:{port}"
65
+ console.print(f"[cyan]Launching Cloudwright web UI on {url}[/cyan]")
66
+
67
+ def _open_browser():
68
+ time.sleep(1.5)
69
+ webbrowser.open(url)
70
+
71
+ threading.Thread(target=_open_browser, daemon=True).start()
72
+ uvicorn.run(cloudwright_web.app, host="127.0.0.1", port=port)
73
+
53
74
 
54
75
  def _run_terminal_chat() -> None:
55
76
  console.print(
@@ -1 +0,0 @@
1
- __version__ = "0.2.5"