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.
Files changed (73) hide show
  1. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/PKG-INFO +6 -2
  2. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/README.md +4 -0
  3. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/pyproject.toml +2 -2
  4. teardrop_cli-0.4.1/tests/test_lazy.py +39 -0
  5. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/.github/workflows/publish.yml +0 -0
  6. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/.github/workflows/test.yml +0 -0
  7. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/.gitignore +0 -0
  8. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/.vscode/settings.json +0 -0
  9. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/LICENSE +0 -0
  10. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/docs/cli-json-schema.md +0 -0
  11. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/docs/cli-reference.md +0 -0
  12. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/_fixtures.py +0 -0
  13. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/_lazy.py +0 -0
  14. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/_templates.py +0 -0
  15. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/cli.py +0 -0
  16. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/__init__.py +0 -0
  17. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/agent_registration.py +0 -0
  18. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/agent_tools.py +0 -0
  19. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/auth.py +0 -0
  20. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/balance.py +0 -0
  21. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/chat.py +0 -0
  22. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/config_cmd.py +0 -0
  23. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/earnings.py +0 -0
  24. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/event_triggers.py +0 -0
  25. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/llm_config.py +0 -0
  26. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/marketplace.py +0 -0
  27. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/mcp.py +0 -0
  28. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/models.py +0 -0
  29. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/quickstart.py +0 -0
  30. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/run.py +0 -0
  31. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/schedules.py +0 -0
  32. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/scorecards.py +0 -0
  33. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/tools.py +0 -0
  34. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/commands/usage.py +0 -0
  35. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/config.py +0 -0
  36. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/formatting.py +0 -0
  37. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/src/teardrop_cli/pricing.py +0 -0
  38. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/conftest.py +0 -0
  39. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/e2e/README.md +0 -0
  40. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/e2e/__init__.py +0 -0
  41. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/e2e/conftest.py +0 -0
  42. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/e2e/test_auth_e2e.py +0 -0
  43. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/e2e/test_billing_e2e.py +0 -0
  44. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/e2e/test_marketplace_e2e.py +0 -0
  45. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/e2e/test_run_e2e.py +0 -0
  46. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/e2e/test_signup_e2e.py +0 -0
  47. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/e2e/test_siwe_login_e2e.py +0 -0
  48. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/smoke/__init__.py +0 -0
  49. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/smoke/conftest.py +0 -0
  50. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/smoke/test_config_persistence.py +0 -0
  51. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/smoke/test_keyring_integration.py +0 -0
  52. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/smoke/test_perf_lazygroup.py +0 -0
  53. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/smoke/test_siwe_signing.py +0 -0
  54. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_agent_registration.py +0 -0
  55. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_auth.py +0 -0
  56. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_billing.py +0 -0
  57. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_chat.py +0 -0
  58. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_config_cmd.py +0 -0
  59. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_credential_priority.py +0 -0
  60. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_earnings.py +0 -0
  61. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_event_triggers.py +0 -0
  62. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_init_and_byok.py +0 -0
  63. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_llm_config.py +0 -0
  64. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_marketplace.py +0 -0
  65. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_mcp.py +0 -0
  66. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_models.py +0 -0
  67. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_quickstart.py +0 -0
  68. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_run.py +0 -0
  69. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_schedules.py +0 -0
  70. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_scorecards.py +0 -0
  71. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_signup.py +0 -0
  72. {teardrop_cli-0.4.0 → teardrop_cli-0.4.1}/tests/test_token_expiry_fallback.py +0 -0
  73. {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.0
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>=0.12
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.0"
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