qbraid-cli 0.16.5__tar.gz → 0.16.6__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 (71) hide show
  1. {qbraid_cli-0.16.5/qbraid_cli.egg-info → qbraid_cli-0.16.6}/PKG-INFO +4 -4
  2. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/pyproject.toml +4 -4
  3. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/agents/app.py +36 -7
  4. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6/qbraid_cli.egg-info}/PKG-INFO +4 -4
  5. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli.egg-info/requires.txt +3 -3
  6. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/LICENSE +0 -0
  7. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/README.md +0 -0
  8. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/__init__.py +0 -0
  9. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/_build_info.py +0 -0
  10. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/_version.py +0 -0
  11. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/account/__init__.py +0 -0
  12. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/account/app.py +0 -0
  13. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/admin/__init__.py +0 -0
  14. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/admin/app.py +0 -0
  15. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/admin/headers.py +0 -0
  16. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/admin/validation.py +0 -0
  17. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/agents/__init__.py +0 -0
  18. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/agents/permission_response.py +0 -0
  19. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/ai/__init__.py +0 -0
  20. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/ai/app.py +0 -0
  21. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/ai/token.py +0 -0
  22. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/comms/__init__.py +0 -0
  23. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/comms/app.py +0 -0
  24. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/compute/__init__.py +0 -0
  25. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/compute/app.py +0 -0
  26. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/compute/instances.py +0 -0
  27. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/compute/profiles.py +0 -0
  28. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/compute/server.py +0 -0
  29. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/compute/ssh.py +0 -0
  30. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/configure/__init__.py +0 -0
  31. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/configure/actions.py +0 -0
  32. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/configure/app.py +0 -0
  33. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/devices/__init__.py +0 -0
  34. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/devices/app.py +0 -0
  35. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/devices/validation.py +0 -0
  36. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/envs/__init__.py +0 -0
  37. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/envs/activate.py +0 -0
  38. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/envs/app.py +0 -0
  39. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/envs/create.py +0 -0
  40. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/envs/data_handling.py +0 -0
  41. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/envs/groups.py +0 -0
  42. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/envs/publish.py +0 -0
  43. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/envs/registry.py +0 -0
  44. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/envs/share.py +0 -0
  45. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/exceptions.py +0 -0
  46. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/handlers.py +0 -0
  47. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/jobs/__init__.py +0 -0
  48. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/jobs/app.py +0 -0
  49. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/jobs/groups.py +0 -0
  50. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/kernels/__init__.py +0 -0
  51. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/kernels/app.py +0 -0
  52. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/lab/__init__.py +0 -0
  53. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/lab/app.py +0 -0
  54. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/main.py +0 -0
  55. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/pip/__init__.py +0 -0
  56. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/pip/app.py +0 -0
  57. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/pip/hooks.py +0 -0
  58. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/projects/__init__.py +0 -0
  59. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/projects/app.py +0 -0
  60. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/py.typed +0 -0
  61. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/skills/__init__.py +0 -0
  62. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/skills/app.py +0 -0
  63. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/troubleshoot/__init__.py +0 -0
  64. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/troubleshoot/app.py +0 -0
  65. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli.egg-info/SOURCES.txt +0 -0
  66. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli.egg-info/dependency_links.txt +0 -0
  67. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli.egg-info/entry_points.txt +0 -0
  68. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli.egg-info/top_level.txt +0 -0
  69. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/setup.cfg +0 -0
  70. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/tests/test_cli_e2e.py +0 -0
  71. {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/tests/test_version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qbraid-cli
3
- Version: 0.16.5
3
+ Version: 0.16.6
4
4
  Summary: Command Line Interface for interacting with all parts of the qBraid platform.
5
5
  Author-email: qBraid Development Team <contact@qbraid.com>
6
6
  License-Expression: LicenseRef-Proprietary
@@ -30,11 +30,11 @@ Requires-Dist: typer>=0.12.1
30
30
  Requires-Dist: rich>=10.11.0
31
31
  Requires-Dist: click<=8.5.0
32
32
  Requires-Dist: questionary>=2.0.0
33
- Requires-Dist: qbraid-core>=0.6.12
33
+ Requires-Dist: qbraid-core>=0.6.15
34
34
  Provides-Extra: compute
35
- Requires-Dist: qbraid-core[compute]>=0.6.12; extra == "compute"
35
+ Requires-Dist: qbraid-core[compute]>=0.6.15; extra == "compute"
36
36
  Provides-Extra: envs
37
- Requires-Dist: qbraid-core[environments]>=0.6.12; extra == "envs"
37
+ Requires-Dist: qbraid-core[environments]>=0.6.15; extra == "envs"
38
38
  Provides-Extra: dev
39
39
  Requires-Dist: isort; extra == "dev"
40
40
  Requires-Dist: black; extra == "dev"
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "qbraid-cli"
7
- version = "0.16.5"
7
+ version = "0.16.6"
8
8
  description = "Command Line Interface for interacting with all parts of the qBraid platform."
9
9
  readme = "README.md"
10
10
  authors = [{ name = "qBraid Development Team", email = "contact@qbraid.com" }]
@@ -32,7 +32,7 @@ dependencies = [
32
32
  "rich>=10.11.0",
33
33
  "click<=8.5.0",
34
34
  "questionary>=2.0.0",
35
- "qbraid-core>=0.6.12",
35
+ "qbraid-core>=0.6.15",
36
36
  ]
37
37
  requires-python = ">= 3.10"
38
38
 
@@ -43,8 +43,8 @@ Documentation = "https://docs.qbraid.com/v2/cli/api-reference/qbraid"
43
43
  Discord = "https://discord.gg/KugF6Cnncm"
44
44
 
45
45
  [project.optional-dependencies]
46
- compute = ["qbraid-core[compute]>=0.6.12"]
47
- envs = ["qbraid-core[environments]>=0.6.12"]
46
+ compute = ["qbraid-core[compute]>=0.6.15"]
47
+ envs = ["qbraid-core[environments]>=0.6.15"]
48
48
  dev = ["isort", "black", "pytest", "pytest-cov", "pytest-asyncio"]
49
49
 
50
50
  [project.scripts]
@@ -1200,14 +1200,13 @@ def _interactive_attach(console_: Console) -> str:
1200
1200
 
1201
1201
 
1202
1202
  class ApprovalMode(str, Enum):
1203
- """How much the agent asks before acting.
1204
-
1205
- A launched agent is detached, so a confirmation prompt has nobody to
1206
- answer it — ``auto`` is the mode for anything you intend to leave running.
1207
- """
1203
+ """Explicit native presets and backwards-compatible ask/auto policies."""
1208
1204
 
1209
1205
  ASK = "ask"
1210
1206
  AUTO = "auto"
1207
+ MANUAL = "manual"
1208
+ AUTO_REVIEW = "auto-review"
1209
+ YOLO = "yolo"
1211
1210
 
1212
1211
 
1213
1212
  class TerminalBackend(str, Enum):
@@ -1466,7 +1465,13 @@ def agents_launch(
1466
1465
  approval: Optional[ApprovalMode] = typer.Option(
1467
1466
  None,
1468
1467
  "--approval",
1469
- help="ask: the agent confirms before acting. auto: it acts without asking.",
1468
+ help=(
1469
+ "manual: the agent asks you. auto-review: the tool's own automatic reviewer "
1470
+ "decides. yolo: no permission checks. ask/auto: legacy modes, unchanged."
1471
+ ),
1472
+ ),
1473
+ yolo: bool = typer.Option(
1474
+ False, "--yolo", help="Claude: skip permissions. Codex: bypass approvals and its sandbox."
1470
1475
  ),
1471
1476
  ):
1472
1477
  """Launch an AI coding agent.
@@ -1493,6 +1498,20 @@ def agents_launch(
1493
1498
  tag = tag or result.get("tags")
1494
1499
  repo = repo or result.get("repo")
1495
1500
 
1501
+ if yolo:
1502
+ if tool not in ("claude", "claude-auto", "codex"):
1503
+ raise AgentLauncherError("--yolo is supported only for Claude and Codex.")
1504
+ # Only an explicit --approval yolo agrees with --yolo. "auto" used to
1505
+ # be accepted and silently upgraded, which for Codex drops the
1506
+ # workspace sandbox the user may have meant to keep.
1507
+ if approval not in (None, ApprovalMode.YOLO) or (
1508
+ execution_mode and execution_mode != ExecutionMode.CONTAINER
1509
+ ):
1510
+ raise AgentLauncherError("--yolo conflicts with the selected approval or execution mode.")
1511
+ approval = ApprovalMode.YOLO
1512
+ if tool == "codex":
1513
+ execution_mode = ExecutionMode.CONTAINER
1514
+
1496
1515
  if request_id is not None:
1497
1516
  import uuid
1498
1517
 
@@ -1664,6 +1683,9 @@ def agents_resume(
1664
1683
  execution_mode: Optional[ExecutionMode] = typer.Option(
1665
1684
  None, "--execution-mode", help="Override the recorded Codex execution mode for this resume."
1666
1685
  ),
1686
+ approval: Optional[ApprovalMode] = typer.Option(
1687
+ None, "--approval", help="Override recorded permissions for this resume. Omit to preserve them."
1688
+ ),
1667
1689
  compute: Optional[str] = typer.Option(None, "--compute", "-c", help="SSH alias for remote compute"),
1668
1690
  ):
1669
1691
  """Resume a previous agent session.
@@ -1692,6 +1714,8 @@ def agents_resume(
1692
1714
  flags += f" --name {shlex.quote(name)}"
1693
1715
  if execution_mode:
1694
1716
  flags += f" --execution-mode {shlex.quote(execution_mode.value)}"
1717
+ if approval:
1718
+ flags += f" --approval {shlex.quote(approval.value)}"
1695
1719
  # markup=False -- see agents_status.
1696
1720
  console.print(
1697
1721
  _ssh_cmd(compute, f"qbraid agents resume {shlex.quote(session_id)}{flags}"),
@@ -1710,6 +1734,7 @@ def agents_resume(
1710
1734
  session = launcher.resume(
1711
1735
  session_id=session_id,
1712
1736
  name=name,
1737
+ **(_approval_kwargs(launcher.resume, approval.value) if approval else {}),
1713
1738
  **_execution_kwargs(launcher.resume, execution_mode.value if execution_mode else None),
1714
1739
  )
1715
1740
  except AgentLauncherError as e:
@@ -1756,7 +1781,10 @@ def agents_resume(
1756
1781
  instructions=None,
1757
1782
  # A fork of a detached agent must not quietly
1758
1783
  # become one that waits for a human.
1759
- **_approval_kwargs(launcher.launch, getattr(original, "approval", None)),
1784
+ **_approval_kwargs(
1785
+ launcher.launch,
1786
+ approval.value if approval else getattr(original, "approval", None),
1787
+ ),
1760
1788
  **_execution_kwargs(
1761
1789
  launcher.launch,
1762
1790
  (
@@ -1827,6 +1855,7 @@ def agents_resume(
1827
1855
  session = launcher.resume(
1828
1856
  session_id=selected,
1829
1857
  name=name,
1858
+ **(_approval_kwargs(launcher.resume, approval.value) if approval else {}),
1830
1859
  **_execution_kwargs(launcher.resume, execution_mode.value if execution_mode else None),
1831
1860
  )
1832
1861
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qbraid-cli
3
- Version: 0.16.5
3
+ Version: 0.16.6
4
4
  Summary: Command Line Interface for interacting with all parts of the qBraid platform.
5
5
  Author-email: qBraid Development Team <contact@qbraid.com>
6
6
  License-Expression: LicenseRef-Proprietary
@@ -30,11 +30,11 @@ Requires-Dist: typer>=0.12.1
30
30
  Requires-Dist: rich>=10.11.0
31
31
  Requires-Dist: click<=8.5.0
32
32
  Requires-Dist: questionary>=2.0.0
33
- Requires-Dist: qbraid-core>=0.6.12
33
+ Requires-Dist: qbraid-core>=0.6.15
34
34
  Provides-Extra: compute
35
- Requires-Dist: qbraid-core[compute]>=0.6.12; extra == "compute"
35
+ Requires-Dist: qbraid-core[compute]>=0.6.15; extra == "compute"
36
36
  Provides-Extra: envs
37
- Requires-Dist: qbraid-core[environments]>=0.6.12; extra == "envs"
37
+ Requires-Dist: qbraid-core[environments]>=0.6.15; extra == "envs"
38
38
  Provides-Extra: dev
39
39
  Requires-Dist: isort; extra == "dev"
40
40
  Requires-Dist: black; extra == "dev"
@@ -2,10 +2,10 @@ typer>=0.12.1
2
2
  rich>=10.11.0
3
3
  click<=8.5.0
4
4
  questionary>=2.0.0
5
- qbraid-core>=0.6.12
5
+ qbraid-core>=0.6.15
6
6
 
7
7
  [compute]
8
- qbraid-core[compute]>=0.6.12
8
+ qbraid-core[compute]>=0.6.15
9
9
 
10
10
  [dev]
11
11
  isort
@@ -15,4 +15,4 @@ pytest-cov
15
15
  pytest-asyncio
16
16
 
17
17
  [envs]
18
- qbraid-core[environments]>=0.6.12
18
+ qbraid-core[environments]>=0.6.15
File without changes
File without changes
File without changes