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.
- {qbraid_cli-0.16.5/qbraid_cli.egg-info → qbraid_cli-0.16.6}/PKG-INFO +4 -4
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/pyproject.toml +4 -4
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/agents/app.py +36 -7
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6/qbraid_cli.egg-info}/PKG-INFO +4 -4
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli.egg-info/requires.txt +3 -3
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/LICENSE +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/README.md +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/__init__.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/_build_info.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/_version.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/account/__init__.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/account/app.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/admin/__init__.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/admin/app.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/admin/headers.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/admin/validation.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/agents/__init__.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/agents/permission_response.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/ai/__init__.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/ai/app.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/ai/token.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/comms/__init__.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/comms/app.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/compute/__init__.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/compute/app.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/compute/instances.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/compute/profiles.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/compute/server.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/compute/ssh.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/configure/__init__.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/configure/actions.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/configure/app.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/devices/__init__.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/devices/app.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/devices/validation.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/envs/__init__.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/envs/activate.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/envs/app.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/envs/create.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/envs/data_handling.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/envs/groups.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/envs/publish.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/envs/registry.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/envs/share.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/exceptions.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/handlers.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/jobs/__init__.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/jobs/app.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/jobs/groups.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/kernels/__init__.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/kernels/app.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/lab/__init__.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/lab/app.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/main.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/pip/__init__.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/pip/app.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/pip/hooks.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/projects/__init__.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/projects/app.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/py.typed +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/skills/__init__.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/skills/app.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/troubleshoot/__init__.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli/troubleshoot/app.py +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli.egg-info/SOURCES.txt +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli.egg-info/dependency_links.txt +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli.egg-info/entry_points.txt +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/qbraid_cli.egg-info/top_level.txt +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/setup.cfg +0 -0
- {qbraid_cli-0.16.5 → qbraid_cli-0.16.6}/tests/test_cli_e2e.py +0 -0
- {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.
|
|
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.
|
|
33
|
+
Requires-Dist: qbraid-core>=0.6.15
|
|
34
34
|
Provides-Extra: compute
|
|
35
|
-
Requires-Dist: qbraid-core[compute]>=0.6.
|
|
35
|
+
Requires-Dist: qbraid-core[compute]>=0.6.15; extra == "compute"
|
|
36
36
|
Provides-Extra: envs
|
|
37
|
-
Requires-Dist: qbraid-core[environments]>=0.6.
|
|
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.
|
|
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.
|
|
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.
|
|
47
|
-
envs = ["qbraid-core[environments]>=0.6.
|
|
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
|
-
"""
|
|
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=
|
|
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(
|
|
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.
|
|
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.
|
|
33
|
+
Requires-Dist: qbraid-core>=0.6.15
|
|
34
34
|
Provides-Extra: compute
|
|
35
|
-
Requires-Dist: qbraid-core[compute]>=0.6.
|
|
35
|
+
Requires-Dist: qbraid-core[compute]>=0.6.15; extra == "compute"
|
|
36
36
|
Provides-Extra: envs
|
|
37
|
-
Requires-Dist: qbraid-core[environments]>=0.6.
|
|
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.
|
|
5
|
+
qbraid-core>=0.6.15
|
|
6
6
|
|
|
7
7
|
[compute]
|
|
8
|
-
qbraid-core[compute]>=0.6.
|
|
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.
|
|
18
|
+
qbraid-core[environments]>=0.6.15
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|