pipecatcloud 0.1.7__tar.gz → 0.2.0__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 (45) hide show
  1. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/CHANGELOG.md +28 -11
  2. {pipecatcloud-0.1.7/src/pipecatcloud.egg-info → pipecatcloud-0.2.0}/PKG-INFO +1 -1
  3. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/pyproject.toml +4 -1
  4. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/_utils/console_utils.py +33 -2
  5. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/cli/commands/deploy.py +27 -7
  6. pipecatcloud-0.2.0/src/pipecatcloud/py.typed +0 -0
  7. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0/src/pipecatcloud.egg-info}/PKG-INFO +1 -1
  8. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud.egg-info/SOURCES.txt +1 -0
  9. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/.github/workflows/publish-pypi.yml +0 -0
  10. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/.github/workflows/publish-test.yml +0 -0
  11. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/.github/workflows/python-publish.yml +0 -0
  12. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/.gitignore +0 -0
  13. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/LICENSE +0 -0
  14. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/README.md +0 -0
  15. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/dev-requirements.txt +0 -0
  16. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/pipecat-cloud.png +0 -0
  17. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/setup.cfg +0 -0
  18. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/__init__.py +0 -0
  19. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/__main__.py +0 -0
  20. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/__version__.py +0 -0
  21. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/_utils/__init__.py +0 -0
  22. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/_utils/async_utils.py +0 -0
  23. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/_utils/auth_utils.py +0 -0
  24. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/_utils/deploy_utils.py +0 -0
  25. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/_utils/local_runner.py +0 -0
  26. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/agent.py +0 -0
  27. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/api.py +0 -0
  28. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/cli/__init__.py +0 -0
  29. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/cli/api.py +0 -0
  30. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/cli/commands/__init__.py +0 -0
  31. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/cli/commands/agent.py +0 -0
  32. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/cli/commands/auth.py +0 -0
  33. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/cli/commands/init.py +0 -0
  34. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/cli/commands/organizations.py +0 -0
  35. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/cli/commands/run.py +0 -0
  36. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/cli/commands/secrets.py +0 -0
  37. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/cli/config.py +0 -0
  38. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/cli/entry_point.py +0 -0
  39. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/config.py +0 -0
  40. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/exception.py +0 -0
  41. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud/session.py +0 -0
  42. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud.egg-info/dependency_links.txt +0 -0
  43. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud.egg-info/entry_points.txt +0 -0
  44. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud.egg-info/requires.txt +0 -0
  45. {pipecatcloud-0.1.7 → pipecatcloud-0.2.0}/src/pipecatcloud.egg-info/top_level.txt +0 -0
@@ -7,38 +7,55 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.2.0] - 2025-07-09
11
+
12
+ ### Changed
13
+
14
+ - `deploy` command now requires valid image pull credentials (`--credentials`). Most repositories and use-cases require authorized image pulls, so this change aims to guide correct usage.
15
+ - Deploying without credentials can be achieved with the `--no-credentials` / `-nc` or `--force` flags.
16
+ - It is always recommend to provide a an image pull secret as part of your deployment.
17
+
18
+ ## [0.1.8] - 2025-07-09
19
+
20
+ ### Changed
21
+
22
+ - `deploy` command now shows a warning when image pull credentials are not provided.
23
+
24
+ ### Added
25
+
26
+ - Add py.typed marker for static type checking support.
27
+
10
28
  ## [0.1.7] - 2025-06-12
11
29
 
12
- # Added
30
+ ### Added
13
31
 
14
32
  - `agent sessions` command lists session history and various statistics (avg. start times, cold starts etc.)
15
33
 
16
- # Fixed
34
+ ### Fixed
17
35
 
18
- - `typer` bumped to `0.15` which was causing errors on some setups
36
+ - Bumped `typer` dependency to `0.15` to fix errors when using `--help` flag.
19
37
 
20
38
  ## [0.1.6] - 2025-04-25
21
39
 
22
- # Changed
40
+ ### Changed
23
41
 
24
42
  - `min-instances` and `max-instances` has been changed to reflect API terminology changes.
25
43
 
26
44
  ## [0.1.5] - 2025-04-09
27
45
 
28
- # Added
46
+ ### Added
29
47
 
30
48
  - `deploy` command now accepts a `--enable-krisp / -krisp` which enables Krisp integration for your pipeline.
31
49
 
32
- # Changed
50
+ ### Changed
33
51
 
34
- - `start` command now takes agent name from `pcc-deploy.toml` where applicable
52
+ - `start` command now takes agent name from `pcc-deploy.toml` where applicable
35
53
  - API error handling now checks `response.ok` and properly checks for error codes for all non-ok responses
36
54
 
37
- # Fixed
55
+ ### Fixed
38
56
 
39
57
  - REST and cURL requests now render errors correctly
40
58
 
41
-
42
59
  ## [0.1.4] - 2025-03-28
43
60
 
44
61
  ### Changed
@@ -63,8 +80,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
63
80
 
64
81
  ### Added
65
82
 
66
- - `agent logs` now accepts a `--deployment_id` / `-d` argument for filtering
67
- by specific deployment ID
83
+ - `agent logs` now accepts a `--deployment_id` / `-d` argument for filtering
84
+ by specific deployment ID
68
85
 
69
86
  - `agent start` now accepts `--daily-properties` / `-p` for customizing Daily
70
87
  room settings when used with `--use-daily`.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pipecatcloud
3
- Version: 0.1.7
3
+ Version: 0.2.0
4
4
  Summary: Cloud hosting for Pipecat AI applications
5
5
  License: BSD 2-Clause License
6
6
  Project-URL: Website, https://docs.pipecat.daily.co/
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "pipecatcloud"
7
- version = "0.1.7"
7
+ version = "0.2.0"
8
8
  requires-python = ">=3.10"
9
9
  description = "Cloud hosting for Pipecat AI applications"
10
10
  license = { text = "BSD 2-Clause License" }
@@ -33,6 +33,9 @@ package-dir = {"" = "src"}
33
33
  where = ["src"]
34
34
  include = ["pipecatcloud*"]
35
35
 
36
+ [tool.setuptools.package-data]
37
+ pipecatcloud = ["py.typed"]
38
+
36
39
  [tool.ruff]
37
40
  exclude = ["*_pb2.py"]
38
41
  line-length = 100
@@ -4,9 +4,9 @@
4
4
  # SPDX-License-Identifier: BSD 2-Clause License
5
5
  #
6
6
 
7
- from typing import Optional, Union
8
- from datetime import datetime
9
7
  import statistics
8
+ from datetime import datetime
9
+ from typing import Optional, Union
10
10
 
11
11
  from rich.console import Console
12
12
  from rich.panel import Panel
@@ -203,3 +203,34 @@ def calculate_percentiles(data: list[float]) -> tuple[float, float, float] | Non
203
203
  p95 = percentile(sorted_data, 95)
204
204
 
205
205
  return avg, p5, p95
206
+
207
+
208
+ async def cli_updates_available() -> str | None:
209
+ """
210
+ Check if there are updates available for the CLI from PyPI.
211
+ """
212
+ import aiohttp
213
+
214
+ try:
215
+ from importlib.metadata import version as get_version
216
+ current_version = get_version("pipecatcloud")
217
+ except ImportError:
218
+ return None
219
+
220
+ pypi_url = "https://pypi.org/pypi/pipecatcloud/json"
221
+
222
+ try:
223
+ async with aiohttp.ClientSession() as session:
224
+ response = await session.get(pypi_url)
225
+ if not response.ok:
226
+ return None
227
+
228
+ data = await response.json()
229
+ latest_version = data["info"]["version"]
230
+
231
+ if latest_version > current_version:
232
+ return latest_version
233
+ return None
234
+
235
+ except Exception:
236
+ return None
@@ -232,6 +232,14 @@ def create_deploy_command(app: typer.Typer):
232
232
  image: str = typer.Argument(
233
233
  None, help="Docker image location e.g. 'my-image:latest'", show_default=False
234
234
  ),
235
+ credentials: str = typer.Option(
236
+ None,
237
+ "--credentials",
238
+ "-c",
239
+ help="Image pull secret to use for deployment",
240
+ rich_help_panel="Deployment Configuration",
241
+ show_default=False,
242
+ ),
235
243
  min_agents: int = typer.Option(
236
244
  None,
237
245
  "--min-agents",
@@ -263,13 +271,7 @@ def create_deploy_command(app: typer.Typer):
263
271
  help="Organization to deploy to",
264
272
  rich_help_panel="Deployment Configuration",
265
273
  ),
266
- credentials: str = typer.Option(
267
- None,
268
- "--credentials",
269
- "-c",
270
- help="Image pull secret to use for deployment",
271
- rich_help_panel="Deployment Configuration",
272
- ),
274
+
273
275
  krisp: bool = typer.Option(
274
276
  False,
275
277
  "--enable-krisp",
@@ -282,6 +284,14 @@ def create_deploy_command(app: typer.Typer):
282
284
  "--force",
283
285
  "-f",
284
286
  help="Force deployment / skip confirmation",
287
+ rich_help_panel="Additional Options",
288
+ ),
289
+ no_credentials: bool = typer.Option(
290
+ False,
291
+ "--no-credentials",
292
+ "-nc",
293
+ help="Deployment will not require an image pull secret",
294
+ rich_help_panel="Additional Options",
285
295
  ),
286
296
  # @deprecated
287
297
  min_instances: int = typer.Option(
@@ -345,6 +355,16 @@ def create_deploy_command(app: typer.Typer):
345
355
  console.error("Image / repository URL is required")
346
356
  return typer.Exit()
347
357
 
358
+ # Assert credentials are provided if not using --no-credentials / force flag
359
+ if not no_credentials and not partial_config.image_credentials and not skip_confirm:
360
+ console.error(
361
+ "Deployments require an image pull secret [bold](--credentials)[/bold] to securely pull images from private repositories."
362
+ "\nPlease provide an image pull secret name or use [bold][--no-credentials][/bold] to deploy without one.",
363
+ subtitle="Learn more:https://docs.pipecat.daily.co/agents/secrets#image-pull-secrets",
364
+ title_extra="Attempt to deploy without repository credentials",
365
+ )
366
+ return typer.Exit()
367
+
348
368
  # Create and display table
349
369
  table = Table(show_header=False, border_style="dim", show_edge=True, show_lines=True)
350
370
  table.add_column("Property", style="cyan")
File without changes
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pipecatcloud
3
- Version: 0.1.7
3
+ Version: 0.2.0
4
4
  Summary: Cloud hosting for Pipecat AI applications
5
5
  License: BSD 2-Clause License
6
6
  Project-URL: Website, https://docs.pipecat.daily.co/
@@ -15,6 +15,7 @@ src/pipecatcloud/agent.py
15
15
  src/pipecatcloud/api.py
16
16
  src/pipecatcloud/config.py
17
17
  src/pipecatcloud/exception.py
18
+ src/pipecatcloud/py.typed
18
19
  src/pipecatcloud/session.py
19
20
  src/pipecatcloud.egg-info/PKG-INFO
20
21
  src/pipecatcloud.egg-info/SOURCES.txt
File without changes
File without changes
File without changes
File without changes