tavus-cli 0.3.4__tar.gz → 0.4.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.
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/.github/workflows/pypi-cli.yml +52 -3
- tavus_cli-0.4.0/.release-please-manifest.json +3 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/CHANGELOG.md +8 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/PKG-INFO +5 -1
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/README.md +4 -0
- tavus_cli-0.4.0/packages/tavus/README.md +14 -0
- tavus_cli-0.4.0/packages/tavus/pyproject.toml +20 -0
- tavus_cli-0.4.0/packages/tavus-mcp/README.md +17 -0
- tavus_cli-0.4.0/packages/tavus-mcp/pyproject.toml +20 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/pyproject.toml +1 -1
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/release-please-config.json +8 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/scripts/check_release_versions.py +12 -1
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/__init__.py +1 -1
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_release_versions.py +30 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/uv.lock +1 -1
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/workers/tavus-mcp/package-lock.json +2 -2
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/workers/tavus-mcp/package.json +1 -1
- tavus_cli-0.4.0/workers/tavus-mcp/src/version.ts +1 -0
- tavus_cli-0.3.4/.release-please-manifest.json +0 -3
- tavus_cli-0.3.4/workers/tavus-mcp/src/version.ts +0 -1
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/.env.example +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/.github/workflows/ci.yml +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/.github/workflows/deploy-cloudflare-worker.yml +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/.github/workflows/pr-reviews.yml +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/.github/workflows/tail-cloudflare-worker.yml +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/.github/workflows/validate-staging-deployment.yml +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/.gitignore +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/AGENTS.md +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/docs/gemini-enterprise/README.md +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/docs/gemini-enterprise/listing.md +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/docs/gemini-enterprise/test-queries.md +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/docs/usage-observability.md +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/scripts/__init__.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/skills/tavus-agentic-pals/SKILL.md +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/skills/tavus-agentic-pals/agents/openai.yaml +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/skills/tavus-agentic-pals/references/build-and-verify.md +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/skills/tavus-agentic-pals/references/builder-workflow.md +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/skills/tavus-agentic-pals/references/chat-mode.md +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/skills/tavus-agentic-pals/references/examples.md +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/cli/__init__.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/cli/main.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/__init__.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/auth/__init__.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/auth/keyring_store.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/auth/oauth.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/auth/session.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/client/__init__.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/client/http.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/daily_transport.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/env.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/errors.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/pal_urls.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/patch.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/recipes/__init__.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/recipes/build_and_verify.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/recipes/capabilities.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/recipes/carrier_builder.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/recipes/knowledge.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/recipes/options.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/recipes/quickstart.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/recipes/scaffold_embed.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/recipes/templates.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/recipes/tool_reuse.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/schemas/__init__.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/schemas/file_manifest.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/schemas/guardrail.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/schemas/objective.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/schemas/pal.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/schemas/pronunciation.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/schemas/tool.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/server.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/conftest.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/integration/test_cli.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/integration/test_client.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/integration/test_mcp_server.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/integration/test_oauth.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_auth.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_build_and_verify.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_builder.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_capabilities.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_daily_transport.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_env.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_guardrail_schema.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_objective_schema.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_pal_schema.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_patch.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_pronunciation_schema.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_scaffold_embed.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_tool_reuse.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_tool_schema.py +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/workers/tavus-mcp/.dev.vars.example +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/workers/tavus-mcp/src/index.ts +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/workers/tavus-mcp/src/oauth-grant.ts +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/workers/tavus-mcp/src/oauth.ts +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/workers/tavus-mcp/src/tavus.ts +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/workers/tavus-mcp/test/parity.test.ts +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/workers/tavus-mcp/test/tavus.test.ts +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/workers/tavus-mcp/tsconfig.json +0 -0
- {tavus_cli-0.3.4 → tavus_cli-0.4.0}/workers/tavus-mcp/wrangler.jsonc +0 -0
|
@@ -149,7 +149,7 @@ jobs:
|
|
|
149
149
|
|
|
150
150
|
PARENT_SHA=$(git rev-parse "$RELEASE_SHA^")
|
|
151
151
|
UNEXPECTED=$(git diff --name-only "$PARENT_SHA" "$RELEASE_SHA" | grep -Ev \
|
|
152
|
-
'^(\.release-please-manifest\.json|CHANGELOG\.md|pyproject\.toml|uv\.lock|src/tavus_mcp/__init__\.py|workers/tavus-mcp/package\.json|workers/tavus-mcp/package-lock\.json|workers/tavus-mcp/src/version\.ts)$' || true)
|
|
152
|
+
'^(\.release-please-manifest\.json|CHANGELOG\.md|pyproject\.toml|uv\.lock|src/tavus_mcp/__init__\.py|workers/tavus-mcp/package\.json|workers/tavus-mcp/package-lock\.json|workers/tavus-mcp/src/version\.ts|packages/tavus/pyproject\.toml|packages/tavus-mcp/pyproject\.toml)$' || true)
|
|
153
153
|
if [ -n "$UNEXPECTED" ]; then
|
|
154
154
|
echo "::error::The release commit contains files that were not staged:"
|
|
155
155
|
echo "$UNEXPECTED"
|
|
@@ -195,7 +195,10 @@ jobs:
|
|
|
195
195
|
run: uv run pytest -q
|
|
196
196
|
|
|
197
197
|
- name: Build Python distributions
|
|
198
|
-
run:
|
|
198
|
+
run: |
|
|
199
|
+
uv build
|
|
200
|
+
uv build packages/tavus --out-dir dist
|
|
201
|
+
uv build packages/tavus-mcp --out-dir dist
|
|
199
202
|
|
|
200
203
|
- name: Set up Node.js
|
|
201
204
|
uses: actions/setup-node@v4
|
|
@@ -316,9 +319,55 @@ jobs:
|
|
|
316
319
|
name: tavus-cli-${{ needs.preflight.outputs.release_version }}
|
|
317
320
|
path: dist
|
|
318
321
|
|
|
319
|
-
- name: Publish Tavus CLI to PyPI
|
|
322
|
+
- name: Publish Tavus CLI and its alias packages to PyPI
|
|
320
323
|
run: uv publish --trusted-publishing always --check-url https://pypi.org/simple/ dist/*
|
|
321
324
|
|
|
325
|
+
notify-cvi-automations:
|
|
326
|
+
name: 'Notify #cvi-automations (prod deploy)'
|
|
327
|
+
needs: [preflight, production]
|
|
328
|
+
if: ${{ always() && !cancelled() && needs.preflight.result == 'success' }}
|
|
329
|
+
runs-on: ubuntu-latest
|
|
330
|
+
# A Slack or mention-resolution failure must not change the deploy result.
|
|
331
|
+
continue-on-error: true
|
|
332
|
+
timeout-minutes: 5
|
|
333
|
+
steps:
|
|
334
|
+
- name: Resolve release author mentions
|
|
335
|
+
id: mentions
|
|
336
|
+
continue-on-error: true
|
|
337
|
+
timeout-minutes: 2
|
|
338
|
+
uses: Tavus-Engineering/pr-changelog-action/release-mentions@main
|
|
339
|
+
with:
|
|
340
|
+
github-token: ${{ secrets.GITHUB_TOKEN }}
|
|
341
|
+
deploy-tag: ${{ needs.preflight.outputs.release_tag }}
|
|
342
|
+
environment: prod
|
|
343
|
+
|
|
344
|
+
- name: 'Post outcome to #cvi-automations'
|
|
345
|
+
env:
|
|
346
|
+
SLACK_BOT_TOKEN: ${{ secrets.CVI_BOT_SLACK_TOKEN }}
|
|
347
|
+
MENTIONS: ${{ steps.mentions.outputs.mentions }}
|
|
348
|
+
DEPLOY_RESULT: ${{ needs.production.result }}
|
|
349
|
+
RELEASE_TAG: ${{ needs.preflight.outputs.release_tag }}
|
|
350
|
+
RUN_URL: ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
|
|
351
|
+
run: |
|
|
352
|
+
set -euo pipefail
|
|
353
|
+
AUTHOR_TAGS="${MENTIONS:+${MENTIONS} }"
|
|
354
|
+
CVI_TEAM="<!subteam^S08HUM36HMZ>"
|
|
355
|
+
if [ "$DEPLOY_RESULT" = "success" ]; then
|
|
356
|
+
TEXT=":white_check_mark: ${AUTHOR_TAGS}Tavus MCP <${RUN_URL}|${RELEASE_TAG}> is live in production."
|
|
357
|
+
else
|
|
358
|
+
TEXT=":x: ${CVI_TEAM} Tavus MCP production deploy failed — <${RUN_URL}|run>."
|
|
359
|
+
fi
|
|
360
|
+
|
|
361
|
+
RESPONSE=$(curl --fail-with-body --silent --show-error \
|
|
362
|
+
--connect-timeout 5 --max-time 30 \
|
|
363
|
+
-X POST https://slack.com/api/chat.postMessage \
|
|
364
|
+
-H "Authorization: Bearer ${SLACK_BOT_TOKEN}" \
|
|
365
|
+
-H "Content-Type: application/json; charset=utf-8" \
|
|
366
|
+
--data "$(jq -n --arg channel "C0B9S5Y556V" --arg text "$TEXT" \
|
|
367
|
+
'{channel:$channel, text:$text, unfurl_links:false}')")
|
|
368
|
+
echo "$RESPONSE" | jq .
|
|
369
|
+
echo "$RESPONSE" | jq -e '.ok == true' >/dev/null
|
|
370
|
+
|
|
322
371
|
update-final-board:
|
|
323
372
|
name: Refresh Slack after production
|
|
324
373
|
needs: [preflight, update-pending-board, production]
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.4.0](https://github.com/Tavus-Engineering/tavus-mcp/compare/v0.3.4...v0.4.0) (2026-08-26)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* notify cvi-automations after MCP deploys ([#41](https://github.com/Tavus-Engineering/tavus-mcp/issues/41)) ([169d092](https://github.com/Tavus-Engineering/tavus-mcp/commit/169d092b6b9241256316e3d8f6a0a633319b70ef))
|
|
9
|
+
* publish tavus and tavus-mcp alias packages ([2c781a0](https://github.com/Tavus-Engineering/tavus-mcp/commit/2c781a059b1ef06acd2d4293239e41d568c4f0ce))
|
|
10
|
+
|
|
3
11
|
## [0.3.4](https://github.com/Tavus-Engineering/tavus-mcp/compare/v0.3.3...v0.3.4) (2026-08-25)
|
|
4
12
|
|
|
5
13
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: tavus-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.4.0
|
|
4
4
|
Summary: Tavus CLI and MCP server for agentic PAL creation and editing.
|
|
5
5
|
Requires-Python: >=3.11
|
|
6
6
|
Requires-Dist: fastmcp>=2.0.0
|
|
@@ -112,6 +112,10 @@ uv tool install tavus-cli
|
|
|
112
112
|
uvx --from tavus-cli tavus doctor
|
|
113
113
|
```
|
|
114
114
|
|
|
115
|
+
The `tavus` and `tavus-mcp` names on PyPI are official alias packages
|
|
116
|
+
(`packages/`) that only depend on `tavus-cli`; every release publishes all
|
|
117
|
+
three at the same version.
|
|
118
|
+
|
|
115
119
|
Sign in with `tavus auth login`. It opens the developer portal at
|
|
116
120
|
`/dev/cli-authorize` with a loopback callback; the portal mints an API key for
|
|
117
121
|
your signed-in user and the CLI stores it in the OS keychain, per environment.
|
|
@@ -90,6 +90,10 @@ uv tool install tavus-cli
|
|
|
90
90
|
uvx --from tavus-cli tavus doctor
|
|
91
91
|
```
|
|
92
92
|
|
|
93
|
+
The `tavus` and `tavus-mcp` names on PyPI are official alias packages
|
|
94
|
+
(`packages/`) that only depend on `tavus-cli`; every release publishes all
|
|
95
|
+
three at the same version.
|
|
96
|
+
|
|
93
97
|
Sign in with `tavus auth login`. It opens the developer portal at
|
|
94
98
|
`/dev/cli-authorize` with a loopback callback; the portal mints an API key for
|
|
95
99
|
your signed-in user and the CLI stores it in the OS keychain, per environment.
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# tavus
|
|
2
|
+
|
|
3
|
+
Official alias for [`tavus-cli`](https://pypi.org/project/tavus-cli/), the
|
|
4
|
+
Tavus CLI and MCP server. Installing this package installs `tavus-cli`, which
|
|
5
|
+
provides the `tavus` command and the `tavus-mcp` MCP server.
|
|
6
|
+
|
|
7
|
+
Prefer installing the real package directly:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
uv tool install tavus-cli
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Source and documentation:
|
|
14
|
+
<https://github.com/Tavus-Engineering/tavus-mcp>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "tavus"
|
|
3
|
+
version = "0.4.0" # x-release-please-version
|
|
4
|
+
description = "Official alias for tavus-cli, the Tavus CLI and MCP server."
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.11"
|
|
7
|
+
dependencies = [
|
|
8
|
+
"tavus-cli==0.4.0", # x-release-please-version
|
|
9
|
+
]
|
|
10
|
+
|
|
11
|
+
[project.urls]
|
|
12
|
+
Homepage = "https://github.com/Tavus-Engineering/tavus-mcp"
|
|
13
|
+
|
|
14
|
+
[build-system]
|
|
15
|
+
requires = ["hatchling"]
|
|
16
|
+
build-backend = "hatchling.build"
|
|
17
|
+
|
|
18
|
+
# Metadata-only alias package: it ships no code of its own.
|
|
19
|
+
[tool.hatch.build.targets.wheel]
|
|
20
|
+
bypass-selection = true
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# tavus-mcp
|
|
2
|
+
|
|
3
|
+
Official alias for [`tavus-cli`](https://pypi.org/project/tavus-cli/).
|
|
4
|
+
Installing this package installs `tavus-cli`, which provides the `tavus-mcp`
|
|
5
|
+
stdio MCP server and the `tavus` command.
|
|
6
|
+
|
|
7
|
+
Prefer installing the real package directly:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
uvx --from 'tavus-cli[daily]' tavus-mcp
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
The hosted MCP server needs no install at all: point your MCP client at
|
|
14
|
+
`https://mcp.tavus.io/mcp`.
|
|
15
|
+
|
|
16
|
+
Source and documentation:
|
|
17
|
+
<https://github.com/Tavus-Engineering/tavus-mcp>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
[project]
|
|
2
|
+
name = "tavus-mcp"
|
|
3
|
+
version = "0.4.0" # x-release-please-version
|
|
4
|
+
description = "Official alias for tavus-cli, which provides the tavus-mcp MCP server."
|
|
5
|
+
readme = "README.md"
|
|
6
|
+
requires-python = ">=3.11"
|
|
7
|
+
dependencies = [
|
|
8
|
+
"tavus-cli==0.4.0", # x-release-please-version
|
|
9
|
+
]
|
|
10
|
+
|
|
11
|
+
[project.urls]
|
|
12
|
+
Homepage = "https://github.com/Tavus-Engineering/tavus-mcp"
|
|
13
|
+
|
|
14
|
+
[build-system]
|
|
15
|
+
requires = ["hatchling"]
|
|
16
|
+
build-backend = "hatchling.build"
|
|
17
|
+
|
|
18
|
+
# Metadata-only alias package: it ships no code of its own.
|
|
19
|
+
[tool.hatch.build.targets.wheel]
|
|
20
|
+
bypass-selection = true
|
|
@@ -42,7 +42,7 @@ def collect_versions() -> dict[str, str]:
|
|
|
42
42
|
if not python_init or not worker_source or not lock_package:
|
|
43
43
|
raise ValueError("Could not read one or more release version fields")
|
|
44
44
|
|
|
45
|
-
|
|
45
|
+
versions = {
|
|
46
46
|
"release-please manifest": str(manifest["."]),
|
|
47
47
|
"pyproject.toml": str(pyproject["project"]["version"]),
|
|
48
48
|
"Python package": python_init.group(1),
|
|
@@ -52,6 +52,17 @@ def collect_versions() -> dict[str, str]:
|
|
|
52
52
|
"Worker package-lock root package": str(worker_lock["packages"][""]["version"]),
|
|
53
53
|
"Worker runtime": worker_source.group(1),
|
|
54
54
|
}
|
|
55
|
+
for alias in ("tavus", "tavus-mcp"):
|
|
56
|
+
alias_project = tomllib.loads(_read(f"packages/{alias}/pyproject.toml"))["project"]
|
|
57
|
+
pin = next(
|
|
58
|
+
(dep for dep in alias_project["dependencies"] if dep.startswith("tavus-cli==")),
|
|
59
|
+
None,
|
|
60
|
+
)
|
|
61
|
+
if pin is None:
|
|
62
|
+
raise ValueError(f"Alias package {alias} does not pin tavus-cli")
|
|
63
|
+
versions[f"{alias} alias package"] = str(alias_project["version"])
|
|
64
|
+
versions[f"{alias} alias tavus-cli pin"] = pin.removeprefix("tavus-cli==")
|
|
65
|
+
return versions
|
|
55
66
|
|
|
56
67
|
|
|
57
68
|
def check_versions(expected: str | None = None) -> str:
|
|
@@ -4,6 +4,8 @@ import importlib.util
|
|
|
4
4
|
import json
|
|
5
5
|
from pathlib import Path
|
|
6
6
|
|
|
7
|
+
import yaml
|
|
8
|
+
|
|
7
9
|
ROOT = Path(__file__).resolve().parents[2]
|
|
8
10
|
SCRIPT = ROOT / "scripts" / "check_release_versions.py"
|
|
9
11
|
SPEC = importlib.util.spec_from_file_location("check_release_versions", SCRIPT)
|
|
@@ -38,3 +40,31 @@ def test_release_please_updates_python_runtime_version() -> None:
|
|
|
38
40
|
assert ci_workflow.index("python scripts/check_release_versions.py") < (
|
|
39
41
|
ci_workflow.index("uv sync --extra dev")
|
|
40
42
|
)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def test_production_deploy_notifies_cvi_automations() -> None:
|
|
46
|
+
workflow = yaml.safe_load(
|
|
47
|
+
(ROOT / ".github" / "workflows" / "pypi-cli.yml").read_text()
|
|
48
|
+
)
|
|
49
|
+
notify = workflow["jobs"]["notify-cvi-automations"]
|
|
50
|
+
|
|
51
|
+
assert notify["needs"] == ["preflight", "production"]
|
|
52
|
+
assert notify["continue-on-error"] is True
|
|
53
|
+
assert "needs.preflight.result == 'success'" in notify["if"]
|
|
54
|
+
|
|
55
|
+
mention_step, post_step = notify["steps"]
|
|
56
|
+
assert (
|
|
57
|
+
mention_step["uses"]
|
|
58
|
+
== "Tavus-Engineering/pr-changelog-action/release-mentions@main"
|
|
59
|
+
)
|
|
60
|
+
assert mention_step["with"]["deploy-tag"] == (
|
|
61
|
+
"${{ needs.preflight.outputs.release_tag }}"
|
|
62
|
+
)
|
|
63
|
+
assert mention_step["with"]["environment"] == "prod"
|
|
64
|
+
|
|
65
|
+
script = post_step["run"]
|
|
66
|
+
assert "https://slack.com/api/chat.postMessage" in script
|
|
67
|
+
assert 'channel "C0B9S5Y556V"' in script
|
|
68
|
+
assert "Tavus MCP <${RUN_URL}|${RELEASE_TAG}> is live in production." in script
|
|
69
|
+
assert "Tavus MCP production deploy failed" in script
|
|
70
|
+
assert "jq -e '.ok == true'" in script
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tavus/tavus-mcp-worker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@tavus/tavus-mcp-worker",
|
|
9
|
-
"version": "0.
|
|
9
|
+
"version": "0.4.0",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
12
12
|
"agents": "^0.12.2",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const VERSION = "0.4.0"; // x-release-please-version
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const VERSION = "0.3.4"; // x-release-please-version
|
|
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
|
{tavus_cli-0.3.4 → tavus_cli-0.4.0}/skills/tavus-agentic-pals/references/build-and-verify.md
RENAMED
|
File without changes
|
{tavus_cli-0.3.4 → tavus_cli-0.4.0}/skills/tavus-agentic-pals/references/builder-workflow.md
RENAMED
|
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
|