teardrop-cli 0.4.0__tar.gz → 0.4.1__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.
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/PKG-INFO +6 -2
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/README.md +4 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/pyproject.toml +2 -2
- teardrop_cli-0.4.1/tests/test_lazy.py +39 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/.github/workflows/publish.yml +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/.github/workflows/test.yml +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/.gitignore +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/.vscode/settings.json +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/LICENSE +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/docs/cli-json-schema.md +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/docs/cli-reference.md +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/_fixtures.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/_lazy.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/_templates.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/cli.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/__init__.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/agent_registration.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/agent_tools.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/auth.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/balance.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/chat.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/config_cmd.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/earnings.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/event_triggers.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/llm_config.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/marketplace.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/mcp.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/models.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/quickstart.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/run.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/schedules.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/scorecards.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/tools.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/usage.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/config.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/formatting.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/pricing.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/conftest.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/e2e/README.md +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/e2e/__init__.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/e2e/conftest.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/e2e/test_auth_e2e.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/e2e/test_billing_e2e.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/e2e/test_marketplace_e2e.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/e2e/test_run_e2e.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/e2e/test_signup_e2e.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/e2e/test_siwe_login_e2e.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/smoke/__init__.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/smoke/conftest.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/smoke/test_config_persistence.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/smoke/test_keyring_integration.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/smoke/test_perf_lazygroup.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/smoke/test_siwe_signing.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_agent_registration.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_auth.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_billing.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_chat.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_config_cmd.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_credential_priority.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_earnings.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_event_triggers.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_init_and_byok.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_llm_config.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_marketplace.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_mcp.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_models.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_quickstart.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_run.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_schedules.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_scorecards.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_signup.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_token_expiry_fallback.py +0 -0
- {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_tools.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: teardrop-cli
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.1
|
|
4
4
|
Summary: Command-line interface for the Teardrop AI agent platform
|
|
5
5
|
Project-URL: Homepage, https://github.com/teardrop-ai/teardrop-cli
|
|
6
6
|
Project-URL: Repository, https://github.com/teardrop-ai/teardrop-cli
|
|
@@ -47,7 +47,7 @@ Requires-Dist: platformdirs>=4.0
|
|
|
47
47
|
Requires-Dist: rich>=13.0
|
|
48
48
|
Requires-Dist: teardrop-sdk>=0.6.0
|
|
49
49
|
Requires-Dist: tomli-w>=1.0
|
|
50
|
-
Requires-Dist: typer
|
|
50
|
+
Requires-Dist: typer<0.26,>=0.12
|
|
51
51
|
Provides-Extra: dev
|
|
52
52
|
Requires-Dist: hatch>=1.12; extra == 'dev'
|
|
53
53
|
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
|
|
@@ -82,6 +82,10 @@ teardrop --version
|
|
|
82
82
|
|
|
83
83
|
Requires Python ≥ 3.11.
|
|
84
84
|
|
|
85
|
+
Typer is constrained to versions below 0.26 because the CLI's lazy Click root
|
|
86
|
+
loads Typer subcommands. Typer 0.26+ vendors Click and no longer supports this
|
|
87
|
+
integration; mixing the two breaks error handling and exit codes.
|
|
88
|
+
|
|
85
89
|
---
|
|
86
90
|
|
|
87
91
|
## 60-Second Quickstart
|
|
@@ -22,6 +22,10 @@ teardrop --version
|
|
|
22
22
|
|
|
23
23
|
Requires Python ≥ 3.11.
|
|
24
24
|
|
|
25
|
+
Typer is constrained to versions below 0.26 because the CLI's lazy Click root
|
|
26
|
+
loads Typer subcommands. Typer 0.26+ vendors Click and no longer supports this
|
|
27
|
+
integration; mixing the two breaks error handling and exit codes.
|
|
28
|
+
|
|
25
29
|
---
|
|
26
30
|
|
|
27
31
|
## 60-Second Quickstart
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "teardrop-cli"
|
|
7
|
-
version = "0.4.
|
|
7
|
+
version = "0.4.1"
|
|
8
8
|
description = "Command-line interface for the Teardrop AI agent platform"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { file = "LICENSE" }
|
|
@@ -25,7 +25,7 @@ classifiers = [
|
|
|
25
25
|
]
|
|
26
26
|
dependencies = [
|
|
27
27
|
"teardrop-sdk>=0.6.0",
|
|
28
|
-
"typer>=0.12",
|
|
28
|
+
"typer>=0.12,<0.26",
|
|
29
29
|
"rich>=13.0",
|
|
30
30
|
"platformdirs>=4.0",
|
|
31
31
|
"keyring>=25.0",
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"""Regression tests for the Click root's lazy Typer integration."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
import sys
|
|
6
|
+
from types import ModuleType
|
|
7
|
+
|
|
8
|
+
import click
|
|
9
|
+
import pytest
|
|
10
|
+
import typer
|
|
11
|
+
|
|
12
|
+
from teardrop_cli._lazy import LazyGroup
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
@pytest.mark.parametrize("exit_code", [1, 2])
|
|
16
|
+
def test_lazy_typer_command_preserves_exit_code(runner, monkeypatch, exit_code):
|
|
17
|
+
subcommands = typer.Typer()
|
|
18
|
+
|
|
19
|
+
@subcommands.command()
|
|
20
|
+
def fail() -> None:
|
|
21
|
+
typer.echo("Command failed.", err=True)
|
|
22
|
+
raise typer.Exit(exit_code)
|
|
23
|
+
|
|
24
|
+
module = ModuleType("_test_lazy_command")
|
|
25
|
+
module.app = subcommands
|
|
26
|
+
monkeypatch.setitem(sys.modules, module.__name__, module)
|
|
27
|
+
root = LazyGroup(
|
|
28
|
+
name="test",
|
|
29
|
+
lazy_subcommands={"fail": f"{module.__name__}:app"},
|
|
30
|
+
)
|
|
31
|
+
|
|
32
|
+
result = runner.invoke(root, ["fail"])
|
|
33
|
+
|
|
34
|
+
assert result.exit_code == exit_code
|
|
35
|
+
assert isinstance(result.exception, SystemExit)
|
|
36
|
+
assert result.exception.code == exit_code
|
|
37
|
+
assert result.stdout == ""
|
|
38
|
+
assert result.stderr == "Command failed.\n"
|
|
39
|
+
assert isinstance(root.get_command(click.Context(root), "fail"), click.Command)
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|