pipecatcloud 0.0.6__tar.gz → 0.0.9__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 (63) hide show
  1. pipecatcloud-0.0.9/.github/workflows/publish-pypi.yml +59 -0
  2. pipecatcloud-0.0.9/.github/workflows/publish-test.yml +59 -0
  3. {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/.github/workflows/python-publish.yml +2 -23
  4. {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/.gitignore +2 -0
  5. pipecatcloud-0.0.9/CHANGELOG.md +88 -0
  6. pipecatcloud-0.0.9/LICENSE +24 -0
  7. pipecatcloud-0.0.9/PKG-INFO +85 -0
  8. pipecatcloud-0.0.9/README.md +65 -0
  9. pipecatcloud-0.0.9/publish-pypi.yml +59 -0
  10. pipecatcloud-0.0.9/publish-test.yml +59 -0
  11. {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/pyproject.toml +13 -6
  12. {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud/__init__.py +0 -5
  13. pipecatcloud-0.0.9/src/pipecatcloud/_utils/auth_utils.py +19 -0
  14. pipecatcloud-0.0.9/src/pipecatcloud/_utils/console_utils.py +78 -0
  15. pipecatcloud-0.0.9/src/pipecatcloud/_utils/deploy_utils.py +101 -0
  16. pipecatcloud-0.0.9/src/pipecatcloud/_utils/local_runner.py +34 -0
  17. pipecatcloud-0.0.9/src/pipecatcloud/api.py +364 -0
  18. {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud/cli/__init__.py +4 -0
  19. pipecatcloud-0.0.9/src/pipecatcloud/cli/api.py +4 -0
  20. pipecatcloud-0.0.9/src/pipecatcloud/cli/commands/agent.py +494 -0
  21. pipecatcloud-0.0.9/src/pipecatcloud/cli/commands/auth.py +239 -0
  22. pipecatcloud-0.0.9/src/pipecatcloud/cli/commands/deploy.py +341 -0
  23. pipecatcloud-0.0.9/src/pipecatcloud/cli/commands/init.py +16 -0
  24. pipecatcloud-0.0.9/src/pipecatcloud/cli/commands/organizations.py +357 -0
  25. pipecatcloud-0.0.9/src/pipecatcloud/cli/commands/run.py +29 -0
  26. pipecatcloud-0.0.9/src/pipecatcloud/cli/commands/secrets.py +505 -0
  27. pipecatcloud-0.0.9/src/pipecatcloud/cli/config.py +124 -0
  28. {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud/cli/entry_point.py +29 -32
  29. pipecatcloud-0.0.9/src/pipecatcloud/config.py +60 -0
  30. pipecatcloud-0.0.9/src/pipecatcloud/errors.py +11 -0
  31. {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud/exception.py +6 -2
  32. pipecatcloud-0.0.6/src/pipecatcloud/agent.py → pipecatcloud-0.0.9/src/pipecatcloud/session.py +8 -32
  33. pipecatcloud-0.0.9/src/pipecatcloud.egg-info/PKG-INFO +85 -0
  34. {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud.egg-info/SOURCES.txt +18 -9
  35. {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud.egg-info/entry_points.txt +1 -1
  36. {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud.egg-info/requires.txt +3 -3
  37. pipecatcloud-0.0.6/CHANGELOG.md +0 -28
  38. pipecatcloud-0.0.6/PKG-INFO +0 -13
  39. pipecatcloud-0.0.6/README.md +0 -51
  40. pipecatcloud-0.0.6/src/pipecatcloud/_utils/auth_utils.py +0 -26
  41. pipecatcloud-0.0.6/src/pipecatcloud/_utils/console_utils.py +0 -25
  42. pipecatcloud-0.0.6/src/pipecatcloud/_utils/deploy_utils.py +0 -18
  43. pipecatcloud-0.0.6/src/pipecatcloud/_utils/http_utils.py +0 -43
  44. pipecatcloud-0.0.6/src/pipecatcloud/cli/agent.py +0 -405
  45. pipecatcloud-0.0.6/src/pipecatcloud/cli/auth.py +0 -274
  46. pipecatcloud-0.0.6/src/pipecatcloud/cli/deploy.py +0 -230
  47. pipecatcloud-0.0.6/src/pipecatcloud/cli/organizations.py +0 -351
  48. pipecatcloud-0.0.6/src/pipecatcloud/cli/run.py +0 -28
  49. pipecatcloud-0.0.6/src/pipecatcloud/cli/secrets.py +0 -426
  50. pipecatcloud-0.0.6/src/pipecatcloud/config.py +0 -158
  51. pipecatcloud-0.0.6/src/pipecatcloud/errors.py +0 -11
  52. pipecatcloud-0.0.6/src/pipecatcloud.egg-info/PKG-INFO +0 -13
  53. {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/dev-requirements.txt +0 -0
  54. {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/pipecat-cloud.png +0 -0
  55. {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/setup.cfg +0 -0
  56. {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud/__main__.py +0 -0
  57. {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud/__version__.py +0 -0
  58. {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud/_utils/__init__.py +0 -0
  59. {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud/_utils/agent_utils.py +0 -0
  60. {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud/_utils/async_utils.py +0 -0
  61. /pipecatcloud-0.0.6/src/pipecatcloud/cli/init.py → /pipecatcloud-0.0.9/src/pipecatcloud/cli/commands/__init__.py +0 -0
  62. {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud.egg-info/dependency_links.txt +0 -0
  63. {pipecatcloud-0.0.6 → pipecatcloud-0.0.9}/src/pipecatcloud.egg-info/top_level.txt +0 -0
@@ -0,0 +1,59 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ version:
7
+ description: 'Version to publish (must match pyproject.toml, e.g. 0.0.4)'
8
+ required: true
9
+ type: string
10
+
11
+ jobs:
12
+ build-and-publish:
13
+ runs-on: ubuntu-latest
14
+ environment:
15
+ name: pypi
16
+ url: https://pypi.org/p/pipecat-cloud
17
+ permissions:
18
+ id-token: write # IMPORTANT: this permission is needed for trusted publishing
19
+ contents: write # Needed for tagging
20
+
21
+ steps:
22
+ - name: Checkout code
23
+ uses: actions/checkout@v4
24
+
25
+ - name: Set up Python
26
+ uses: actions/setup-python@v4
27
+ with:
28
+ python-version: '3.10'
29
+
30
+ - name: Verify version matches
31
+ run: |
32
+ pip install tomli
33
+ PROJECT_VERSION=$(python -c "import tomli; print(tomli.load(open('pyproject.toml', 'rb'))['project']['version'])")
34
+ if [ "$PROJECT_VERSION" != "${{ github.event.inputs.version }}" ]; then
35
+ echo "Error: Input version (${{ github.event.inputs.version }}) does not match pyproject.toml version ($PROJECT_VERSION)"
36
+ exit 1
37
+ fi
38
+
39
+ - name: Install dependencies
40
+ run: |
41
+ python -m pip install --upgrade pip
42
+ pip install -r requirements.txt
43
+ pip install build twine
44
+
45
+ - name: Build package
46
+ run: python -m build
47
+
48
+ - name: Create release tag
49
+ run: |
50
+ git config --local user.email "action@github.com"
51
+ git config --local user.name "GitHub Action"
52
+ git tag -a "v${{ github.event.inputs.version }}" -m "Version ${{ github.event.inputs.version }}"
53
+ git push origin "v${{ github.event.inputs.version }}"
54
+
55
+ - name: Publish to PyPI
56
+ uses: pypa/gh-action-pypi-publish@release/v1
57
+ with:
58
+ verbose: true
59
+ print-hash: true
@@ -0,0 +1,59 @@
1
+ name: Publish to TEST PyPI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ version:
7
+ description: 'Version to publish (must match pyproject.toml, e.g. 0.0.4)'
8
+ required: true
9
+ type: string
10
+
11
+ jobs:
12
+ build-and-publish:
13
+ runs-on: ubuntu-latest
14
+ environment:
15
+ name: pypi
16
+ url: https://test.pypi.org/project/pipecat-cloud
17
+ permissions:
18
+ id-token: write # IMPORTANT: this permission is needed for trusted publishing
19
+ contents: write # Needed for tagging
20
+
21
+ steps:
22
+ - name: Checkout code
23
+ uses: actions/checkout@v4
24
+
25
+ - name: Set up Python
26
+ uses: actions/setup-python@v4
27
+ with:
28
+ python-version: '3.10'
29
+
30
+ - name: Verify version matches
31
+ run: |
32
+ pip install tomli
33
+ PROJECT_VERSION=$(python -c "import tomli; print(tomli.load(open('pyproject.toml', 'rb'))['project']['version'])")
34
+ if [ "$PROJECT_VERSION" != "${{ github.event.inputs.version }}" ]; then
35
+ echo "Error: Input version (${{ github.event.inputs.version }}) does not match pyproject.toml version ($PROJECT_VERSION)"
36
+ exit 1
37
+ fi
38
+
39
+ - name: Install dependencies
40
+ run: |
41
+ python -m pip install --upgrade pip
42
+ pip install -r requirements.txt
43
+ pip install build twine
44
+
45
+ - name: Build package
46
+ run: python -m build
47
+
48
+ - name: Create release tag
49
+ run: |
50
+ git config --local user.email "action@github.com"
51
+ git config --local user.name "GitHub Action"
52
+ git tag -a "v${{ github.event.inputs.version }}" -m "Version ${{ github.event.inputs.version }}"
53
+ git push origin "v${{ github.event.inputs.version }}"
54
+
55
+ - name: Publish to PyPI
56
+ uses: pypa/gh-action-pypi-publish@release/v1
57
+ with:
58
+ verbose: true
59
+ print-hash: true
@@ -1,12 +1,4 @@
1
- # This workflow will upload a Python Package to PyPI when a release is created
2
- # For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries
3
-
4
- # This workflow uses actions that are not certified by GitHub.
5
- # They are provided by a third-party and are governed by
6
- # separate terms of service, privacy policy, and support
7
- # documentation.
8
-
9
- name: Upload Python Package
1
+ name: Build and publish Python package
10
2
 
11
3
  on:
12
4
  release:
@@ -57,7 +49,7 @@ jobs:
57
49
 
58
50
  environment:
59
51
  name: pypi
60
- url: https://pypi.org/p/pipecatcloud
52
+ url: https://pypi.org/p/pipecat-cloud
61
53
 
62
54
  steps:
63
55
  - uses: actions/checkout@v4
@@ -73,24 +65,11 @@ jobs:
73
65
  with:
74
66
  packages-dir: dist/
75
67
 
76
- - name: Read CHANGELOG
77
- id: changelog
78
- run: |
79
- if [ -f "CHANGELOG.md" ]; then
80
- echo "CHANGELOG_CONTENT<<EOF" >> $GITHUB_ENV
81
- cat CHANGELOG.md >> $GITHUB_ENV
82
- echo "EOF" >> $GITHUB_ENV
83
- else
84
- echo "CHANGELOG_CONTENT=No changelog available." >> $GITHUB_ENV
85
- fi
86
-
87
68
  - name: Create GitHub Release
88
69
  uses: softprops/action-gh-release@v2
89
70
  with:
90
71
  tag_name: ${{ github.ref }}
91
72
  name: Release ${{ github.ref_name }}
92
- body: |
93
- ${{ env.CHANGELOG_CONTENT }}
94
73
  draft: false
95
74
  prerelease: false
96
75
  files: |
@@ -1,3 +1,5 @@
1
+ pcc-deploy.toml
2
+
1
3
  # Python
2
4
  __pycache__/
3
5
  *.py[cod]
@@ -0,0 +1,88 @@
1
+ # Pipecat Cloud Changelog
2
+
3
+ All notable changes to **Pipecat Cloud** will be documented in this file.
4
+
5
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
+
8
+ ## [0.0.9] - 2025-02-27
9
+
10
+ ### Added
11
+ - `agent status [agent-name]` now shows deployment info and scaling configuration
12
+ - `agent sessions [agent-name]` lists active session count for an agent (will list session details in future)
13
+ - `agent start [agent-name] -D` now shows the Daily room URL (and token) to join in the terminal output
14
+
15
+ ### Changed
16
+ - Changed CLI command from `pipecat` to `pipecatcloud` or `pcc`
17
+ - `agent delete` prompts the user for confirmation first
18
+ - `agent start` now checks the target deployment first to ensure it exists and is in a healthy state
19
+ - Changed the information order of `agent status` so the health badge is clearly visible in terminal
20
+ - `agent deploy` now defaults to "Y" for the confirmation prompts
21
+
22
+ ### Fixed
23
+ - Fixed lint error with payload data in `agent start`
24
+ - Fixed a bug where `pcc-deploy.toml` files were required to be present
25
+ - `deploy` command now correctly passes the secret set to the deployment from the `pcc-deploy.toml` file
26
+
27
+ ## [0.0.8] - 2025-02-03
28
+
29
+ ### Added
30
+ - `secrets set [set-name] --file` allowing you to create a secret set from .env file
31
+ - `agent scale` to modify agent configuration without pushing a new image
32
+ - `run` command for running bot.py files locally via FastAPI. This initial implementation is very basic and will be expanded in the future.
33
+ - `organizations select` allows passing an `--org / -o` option to bypass prompt
34
+
35
+ ### Fixed
36
+ - All commands use the correct shorthand flag syntax (`-` vs. `--`)
37
+ - CLI config extends from module config to avoid loading config TOML with package imports
38
+ - `secrets list` now correctly lists all secrets vs. just a single entry
39
+ - `deploy` command displays live status to prevent skewed terminal output
40
+ - `deploy` command no longer allows pushing images without a tag
41
+ - `agent logs` paginate / filter / sort and tidy up display for logs
42
+ - `start` command correctly clears the live terminal text
43
+ - `pcc-deploy.toml` files now work as intended with `deploy` command
44
+ - `deploy` method now passes configuration parameters correctly
45
+ - Switching organizations will fully remove any default API tokens from the previously selected organization
46
+
47
+ ### Changed
48
+ - Local config now retains default keys when switching between organizations
49
+ - Local config now retains defaukt keys when logging in again
50
+ - `deploy` will check passed secret set exists before deployment
51
+ - `secrets list` now takes an optional `--sets / -s` parameter that filters by secret sets or image pull secrets
52
+ - `organizations keys create` now prompts you to set the newly created key as the default after creation (if active org matches)
53
+ - `organizations keys delete` not prompts to confirm if selected key is currently your local config default
54
+ - `Agent` module import has been renamed to `Session` to better reflect API
55
+
56
+
57
+ ## [0.0.7] - 2025-02-01
58
+
59
+ ### Added
60
+
61
+ - `run` command for running an agent locally. This initial implementation is very basic and will be expanded in the future.
62
+
63
+ ### Changed
64
+
65
+ - `start_agent` method no longer requires an organization. If not provided, it will assume the namespace of the API token owner.
66
+ - `start` command no longer looks up the agent before starting (health check is handled by the proxy route.)
67
+
68
+ ## [0.0.6] - 2025-02-01
69
+
70
+ ### Added
71
+
72
+ - `pipecatcloud.agent` module for working with agents via Python scripts
73
+ - `start_agent` method for starting an agent
74
+
75
+ ### Backlog
76
+
77
+ - `deploy` make image pull secrets non-optional, but allow for bypassing
78
+ - Fix: update docs to assert that the bot method must be async
79
+ - Fix: Secrets are not upserting (overriding each time, which may be preferrable?)
80
+ - Fix: deployment process needs better output
81
+ - `organizations keys create` should ask if you'd like to set the created key as default after creation (if org matches)
82
+ - Sense check image parameter of the deploy command (does it have a tag, etc)
83
+ - `agent logs` paginate / filter / sort and tidy up display for logs
84
+ - Fix: start command should clear the live text
85
+ - Secrets from .env method
86
+ - Fix: .pcc-deploy.toml should read correctly
87
+ - New conveience method to add account associated Daily API Key to a secret set
88
+ - Add: concurrency support for agent deployments
@@ -0,0 +1,24 @@
1
+ BSD 2-Clause License
2
+
3
+ Copyright (c) 2024, Daily
4
+
5
+ Redistribution and use in source and binary forms, with or without
6
+ modification, are permitted provided that the following conditions are met:
7
+
8
+ 1. Redistributions of source code must retain the above copyright notice, this
9
+ list of conditions and the following disclaimer.
10
+
11
+ 2. Redistributions in binary form must reproduce the above copyright notice,
12
+ this list of conditions and the following disclaimer in the documentation
13
+ and/or other materials provided with the distribution.
14
+
15
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
16
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
18
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
19
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
21
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
22
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
23
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
24
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,85 @@
1
+ Metadata-Version: 2.2
2
+ Name: pipecatcloud
3
+ Version: 0.0.9
4
+ Summary: Cloud hosting for Pipecat AI applications
5
+ License: BSD 2-Clause License
6
+ Project-URL: Website, https://docs.pipecat.daily.co/
7
+ Keywords: pipecat,pipecat-ai,voice,ai,llm
8
+ Requires-Python: >=3.10
9
+ Description-Content-Type: text/markdown
10
+ License-File: LICENSE
11
+ Requires-Dist: aiohttp<4.0.0,~=3.11.13
12
+ Requires-Dist: fastapi~=0.115.6
13
+ Requires-Dist: loguru~=0.7.3
14
+ Requires-Dist: python-dotenv~=1.0.1
15
+ Requires-Dist: uvicorn~=0.32.0
16
+ Requires-Dist: typer~=0.13.0
17
+ Requires-Dist: synchronicity~=0.7.6
18
+ Requires-Dist: toml~=0.10.2
19
+ Requires-Dist: questionary~=2.1.0
20
+
21
+ <h1><div align="center">
22
+ <img alt="pipecat cloud" width="500px" height="auto" src="./pipecat-cloud.png">
23
+ </div></h1>
24
+
25
+ [![Docs](https://img.shields.io/badge/documentation-blue)](https://docs.pipecat.daily.co)
26
+ [![PyPI](https://img.shields.io/pypi/v/pipecatcloud)](https://pypi.org/project/pipecatcloud)
27
+
28
+ # Pipecat Cloud
29
+
30
+ Python module and CLI for interacting with [Pipecat Cloud](https://pipecat.daily.co).
31
+
32
+ ### Requirements
33
+
34
+ - Python 3.10+
35
+ - Docker and a Docker repository (e.g. Docker Hub)
36
+ - Active [Pipecat Cloud](https://pipecat.daily.co)
37
+ account
38
+
39
+ ### Documentation
40
+
41
+ Documentation for Pipecat Cloud is available [here](https://docs.pipecat.daily.co).
42
+
43
+ ### Installation
44
+
45
+ ```shell
46
+ pip install pipecatcloud
47
+
48
+ pcc --version
49
+ pcc --help
50
+
51
+ # Note: you can use `pcc` or `pipecatcloud` interchangeably
52
+ pcc auth login
53
+ ```
54
+
55
+ ! All CLI commands have a `--help` flag that will display the command usage and options.
56
+
57
+ ## Usage
58
+
59
+ 1. Create an account at [Pipecat Cloud](https://pipecat.daily.co)
60
+
61
+ 2. Login to your account `pcc auth login`
62
+
63
+ 3. (Optional): Clone the starter agent [here](https://github.com/daily-co/pipecat-cloud-starter)
64
+
65
+ 4. Build your agent `docker build --platform linux/arm64 -t your-agent-name .`
66
+
67
+ 5. Push your Docker image to your repository `docker push your-repository/your-agent-name:0.1`
68
+
69
+ 6. Deploy your agent `pcc deploy starter-agent your-repository/your-agent-name:0.1`
70
+
71
+ ### Usage in Python scripts
72
+
73
+ If want to programmatically start an agent within a Python script, you can use the `pipecatcloud.agent` module.
74
+
75
+ ```python
76
+ from pipecatcloud.agent import Agent
77
+
78
+ agent = Agent(
79
+ agent_name="your-agent-name",
80
+ organization="your-organization",
81
+ api_key="your-api-key",
82
+ )
83
+
84
+ await agent.start()
85
+ ```
@@ -0,0 +1,65 @@
1
+ <h1><div align="center">
2
+ <img alt="pipecat cloud" width="500px" height="auto" src="./pipecat-cloud.png">
3
+ </div></h1>
4
+
5
+ [![Docs](https://img.shields.io/badge/documentation-blue)](https://docs.pipecat.daily.co)
6
+ [![PyPI](https://img.shields.io/pypi/v/pipecatcloud)](https://pypi.org/project/pipecatcloud)
7
+
8
+ # Pipecat Cloud
9
+
10
+ Python module and CLI for interacting with [Pipecat Cloud](https://pipecat.daily.co).
11
+
12
+ ### Requirements
13
+
14
+ - Python 3.10+
15
+ - Docker and a Docker repository (e.g. Docker Hub)
16
+ - Active [Pipecat Cloud](https://pipecat.daily.co)
17
+ account
18
+
19
+ ### Documentation
20
+
21
+ Documentation for Pipecat Cloud is available [here](https://docs.pipecat.daily.co).
22
+
23
+ ### Installation
24
+
25
+ ```shell
26
+ pip install pipecatcloud
27
+
28
+ pcc --version
29
+ pcc --help
30
+
31
+ # Note: you can use `pcc` or `pipecatcloud` interchangeably
32
+ pcc auth login
33
+ ```
34
+
35
+ ! All CLI commands have a `--help` flag that will display the command usage and options.
36
+
37
+ ## Usage
38
+
39
+ 1. Create an account at [Pipecat Cloud](https://pipecat.daily.co)
40
+
41
+ 2. Login to your account `pcc auth login`
42
+
43
+ 3. (Optional): Clone the starter agent [here](https://github.com/daily-co/pipecat-cloud-starter)
44
+
45
+ 4. Build your agent `docker build --platform linux/arm64 -t your-agent-name .`
46
+
47
+ 5. Push your Docker image to your repository `docker push your-repository/your-agent-name:0.1`
48
+
49
+ 6. Deploy your agent `pcc deploy starter-agent your-repository/your-agent-name:0.1`
50
+
51
+ ### Usage in Python scripts
52
+
53
+ If want to programmatically start an agent within a Python script, you can use the `pipecatcloud.agent` module.
54
+
55
+ ```python
56
+ from pipecatcloud.agent import Agent
57
+
58
+ agent = Agent(
59
+ agent_name="your-agent-name",
60
+ organization="your-organization",
61
+ api_key="your-api-key",
62
+ )
63
+
64
+ await agent.start()
65
+ ```
@@ -0,0 +1,59 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ version:
7
+ description: 'Version to publish (must match pyproject.toml, e.g. 0.0.4)'
8
+ required: true
9
+ type: string
10
+
11
+ jobs:
12
+ build-and-publish:
13
+ runs-on: ubuntu-latest
14
+ environment:
15
+ name: pypi
16
+ url: https://pypi.org/p/pipecat-cloud
17
+ permissions:
18
+ id-token: write # IMPORTANT: this permission is needed for trusted publishing
19
+ contents: write # Needed for tagging
20
+
21
+ steps:
22
+ - name: Checkout code
23
+ uses: actions/checkout@v4
24
+
25
+ - name: Set up Python
26
+ uses: actions/setup-python@v4
27
+ with:
28
+ python-version: '3.10'
29
+
30
+ - name: Verify version matches
31
+ run: |
32
+ pip install tomli
33
+ PROJECT_VERSION=$(python -c "import tomli; print(tomli.load(open('pyproject.toml', 'rb'))['project']['version'])")
34
+ if [ "$PROJECT_VERSION" != "${{ github.event.inputs.version }}" ]; then
35
+ echo "Error: Input version (${{ github.event.inputs.version }}) does not match pyproject.toml version ($PROJECT_VERSION)"
36
+ exit 1
37
+ fi
38
+
39
+ - name: Install dependencies
40
+ run: |
41
+ python -m pip install --upgrade pip
42
+ pip install -r requirements.txt
43
+ pip install build twine
44
+
45
+ - name: Build package
46
+ run: python -m build
47
+
48
+ - name: Create release tag
49
+ run: |
50
+ git config --local user.email "action@github.com"
51
+ git config --local user.name "GitHub Action"
52
+ git tag -a "v${{ github.event.inputs.version }}" -m "Version ${{ github.event.inputs.version }}"
53
+ git push origin "v${{ github.event.inputs.version }}"
54
+
55
+ - name: Publish to PyPI
56
+ uses: pypa/gh-action-pypi-publish@release/v1
57
+ with:
58
+ verbose: true
59
+ print-hash: true
@@ -0,0 +1,59 @@
1
+ name: Publish to TEST PyPI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ inputs:
6
+ version:
7
+ description: 'Version to publish (must match pyproject.toml, e.g. 0.0.4)'
8
+ required: true
9
+ type: string
10
+
11
+ jobs:
12
+ build-and-publish:
13
+ runs-on: ubuntu-latest
14
+ environment:
15
+ name: pypi
16
+ url: https://test.pypi.org/project/pipecat-cloud
17
+ permissions:
18
+ id-token: write # IMPORTANT: this permission is needed for trusted publishing
19
+ contents: write # Needed for tagging
20
+
21
+ steps:
22
+ - name: Checkout code
23
+ uses: actions/checkout@v4
24
+
25
+ - name: Set up Python
26
+ uses: actions/setup-python@v4
27
+ with:
28
+ python-version: '3.10'
29
+
30
+ - name: Verify version matches
31
+ run: |
32
+ pip install tomli
33
+ PROJECT_VERSION=$(python -c "import tomli; print(tomli.load(open('pyproject.toml', 'rb'))['project']['version'])")
34
+ if [ "$PROJECT_VERSION" != "${{ github.event.inputs.version }}" ]; then
35
+ echo "Error: Input version (${{ github.event.inputs.version }}) does not match pyproject.toml version ($PROJECT_VERSION)"
36
+ exit 1
37
+ fi
38
+
39
+ - name: Install dependencies
40
+ run: |
41
+ python -m pip install --upgrade pip
42
+ pip install -r requirements.txt
43
+ pip install build twine
44
+
45
+ - name: Build package
46
+ run: python -m build
47
+
48
+ - name: Create release tag
49
+ run: |
50
+ git config --local user.email "action@github.com"
51
+ git config --local user.name "GitHub Action"
52
+ git tag -a "v${{ github.event.inputs.version }}" -m "Version ${{ github.event.inputs.version }}"
53
+ git push origin "v${{ github.event.inputs.version }}"
54
+
55
+ - name: Publish to PyPI
56
+ uses: pypa/gh-action-pypi-publish@release/v1
57
+ with:
58
+ verbose: true
59
+ print-hash: true
@@ -4,23 +4,27 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "pipecatcloud"
7
- version = "0.0.6"
7
+ version = "0.0.9"
8
8
  requires-python = ">=3.10"
9
+ description = "Cloud hosting for Pipecat AI applications"
10
+ license = { text = "BSD 2-Clause License" }
11
+ readme = "README.md"
12
+ keywords = ["pipecat", "pipecat-ai", "voice", "ai", "llm"]
9
13
  dependencies = [
10
- "aiohttp~=3.10.10",
11
- "fastapi~=0.115.5",
12
- "loguru~=0.7.2",
14
+ "aiohttp~=3.11.13,<4.0.0",
15
+ "fastapi~=0.115.6",
16
+ "loguru~=0.7.3",
13
17
  "python-dotenv~=1.0.1",
14
18
  "uvicorn~=0.32.0",
15
19
  "typer~=0.13.0",
16
20
  "synchronicity~=0.7.6",
17
21
  "toml~=0.10.2",
18
- "questionary~=2.1.0",
22
+ "questionary~=2.1.0"
19
23
  ]
20
24
 
21
25
  [project.scripts]
22
26
  pcc = "pipecatcloud.__main__:main"
23
- pipecat = "pipecatcloud.__main__:main"
27
+ pipecatcloud = "pipecatcloud.__main__:main"
24
28
 
25
29
  [tool.setuptools]
26
30
  package-dir = {"" = "src"}
@@ -32,3 +36,6 @@ include = ["pipecatcloud*"]
32
36
  [tool.ruff]
33
37
  exclude = ["*_pb2.py"]
34
38
  line-length = 100
39
+
40
+ [project.urls]
41
+ Website = "https://docs.pipecat.daily.co/"
@@ -3,10 +3,5 @@ import sys
3
3
 
4
4
  from loguru import logger
5
5
 
6
- PIPECAT_CLI_NAME = "pcc"
7
- PIPECAT_CREDENTIALS_PATH = "~/.pipecatcloud.toml"
8
- PIPECAT_DEPLOY_CONFIG_PATH = ".pcc-deploy.toml"
9
-
10
-
11
6
  logger.remove()
12
7
  logger.add(sys.stderr, level=str(os.getenv("PCC_LOG_LEVEL", "INFO")))
@@ -0,0 +1,19 @@
1
+ import functools
2
+
3
+ from pipecatcloud._utils.console_utils import console
4
+ from pipecatcloud.cli import PIPECAT_CLI_NAME
5
+ from pipecatcloud.cli.config import config
6
+
7
+
8
+ def requires_login(func):
9
+ @functools.wraps(func)
10
+ def wrapper(*args, **kwargs):
11
+ org = config.get("org")
12
+ token = config.get("token")
13
+ if org is None or token is None:
14
+ console.error(
15
+ f"You are not logged in. Please run `{PIPECAT_CLI_NAME} auth login` first.",
16
+ )
17
+ return
18
+ return func(*args, **kwargs)
19
+ return wrapper