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.
Files changed (99) hide show
  1. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/.github/workflows/pypi-cli.yml +52 -3
  2. tavus_cli-0.4.0/.release-please-manifest.json +3 -0
  3. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/CHANGELOG.md +8 -0
  4. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/PKG-INFO +5 -1
  5. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/README.md +4 -0
  6. tavus_cli-0.4.0/packages/tavus/README.md +14 -0
  7. tavus_cli-0.4.0/packages/tavus/pyproject.toml +20 -0
  8. tavus_cli-0.4.0/packages/tavus-mcp/README.md +17 -0
  9. tavus_cli-0.4.0/packages/tavus-mcp/pyproject.toml +20 -0
  10. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/pyproject.toml +1 -1
  11. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/release-please-config.json +8 -0
  12. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/scripts/check_release_versions.py +12 -1
  13. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/__init__.py +1 -1
  14. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_release_versions.py +30 -0
  15. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/uv.lock +1 -1
  16. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/workers/tavus-mcp/package-lock.json +2 -2
  17. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/workers/tavus-mcp/package.json +1 -1
  18. tavus_cli-0.4.0/workers/tavus-mcp/src/version.ts +1 -0
  19. tavus_cli-0.3.4/.release-please-manifest.json +0 -3
  20. tavus_cli-0.3.4/workers/tavus-mcp/src/version.ts +0 -1
  21. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/.env.example +0 -0
  22. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/.github/workflows/ci.yml +0 -0
  23. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/.github/workflows/deploy-cloudflare-worker.yml +0 -0
  24. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/.github/workflows/pr-reviews.yml +0 -0
  25. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/.github/workflows/tail-cloudflare-worker.yml +0 -0
  26. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/.github/workflows/validate-staging-deployment.yml +0 -0
  27. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/.gitignore +0 -0
  28. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/AGENTS.md +0 -0
  29. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/docs/gemini-enterprise/README.md +0 -0
  30. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/docs/gemini-enterprise/listing.md +0 -0
  31. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/docs/gemini-enterprise/test-queries.md +0 -0
  32. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/docs/usage-observability.md +0 -0
  33. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/scripts/__init__.py +0 -0
  34. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/skills/tavus-agentic-pals/SKILL.md +0 -0
  35. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/skills/tavus-agentic-pals/agents/openai.yaml +0 -0
  36. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/skills/tavus-agentic-pals/references/build-and-verify.md +0 -0
  37. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/skills/tavus-agentic-pals/references/builder-workflow.md +0 -0
  38. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/skills/tavus-agentic-pals/references/chat-mode.md +0 -0
  39. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/skills/tavus-agentic-pals/references/examples.md +0 -0
  40. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/cli/__init__.py +0 -0
  41. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/cli/main.py +0 -0
  42. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/__init__.py +0 -0
  43. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/auth/__init__.py +0 -0
  44. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/auth/keyring_store.py +0 -0
  45. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/auth/oauth.py +0 -0
  46. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/auth/session.py +0 -0
  47. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/client/__init__.py +0 -0
  48. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/client/http.py +0 -0
  49. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/daily_transport.py +0 -0
  50. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/env.py +0 -0
  51. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/errors.py +0 -0
  52. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/pal_urls.py +0 -0
  53. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/patch.py +0 -0
  54. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/recipes/__init__.py +0 -0
  55. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/recipes/build_and_verify.py +0 -0
  56. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/recipes/capabilities.py +0 -0
  57. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/recipes/carrier_builder.py +0 -0
  58. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/recipes/knowledge.py +0 -0
  59. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/recipes/options.py +0 -0
  60. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/recipes/quickstart.py +0 -0
  61. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/recipes/scaffold_embed.py +0 -0
  62. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/recipes/templates.py +0 -0
  63. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/recipes/tool_reuse.py +0 -0
  64. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/schemas/__init__.py +0 -0
  65. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/schemas/file_manifest.py +0 -0
  66. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/schemas/guardrail.py +0 -0
  67. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/schemas/objective.py +0 -0
  68. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/schemas/pal.py +0 -0
  69. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/schemas/pronunciation.py +0 -0
  70. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/sdk/schemas/tool.py +0 -0
  71. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/src/tavus_mcp/server.py +0 -0
  72. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/conftest.py +0 -0
  73. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/integration/test_cli.py +0 -0
  74. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/integration/test_client.py +0 -0
  75. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/integration/test_mcp_server.py +0 -0
  76. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/integration/test_oauth.py +0 -0
  77. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_auth.py +0 -0
  78. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_build_and_verify.py +0 -0
  79. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_builder.py +0 -0
  80. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_capabilities.py +0 -0
  81. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_daily_transport.py +0 -0
  82. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_env.py +0 -0
  83. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_guardrail_schema.py +0 -0
  84. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_objective_schema.py +0 -0
  85. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_pal_schema.py +0 -0
  86. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_patch.py +0 -0
  87. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_pronunciation_schema.py +0 -0
  88. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_scaffold_embed.py +0 -0
  89. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_tool_reuse.py +0 -0
  90. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/tests/unit/test_tool_schema.py +0 -0
  91. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/workers/tavus-mcp/.dev.vars.example +0 -0
  92. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/workers/tavus-mcp/src/index.ts +0 -0
  93. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/workers/tavus-mcp/src/oauth-grant.ts +0 -0
  94. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/workers/tavus-mcp/src/oauth.ts +0 -0
  95. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/workers/tavus-mcp/src/tavus.ts +0 -0
  96. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/workers/tavus-mcp/test/parity.test.ts +0 -0
  97. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/workers/tavus-mcp/test/tavus.test.ts +0 -0
  98. {tavus_cli-0.3.4 → tavus_cli-0.4.0}/workers/tavus-mcp/tsconfig.json +0 -0
  99. {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: uv build
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]
@@ -0,0 +1,3 @@
1
+ {
2
+ ".": "0.4.0"
3
+ }
@@ -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.4
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
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "tavus-cli"
3
- version = "0.3.4"
3
+ version = "0.4.0"
4
4
  description = "Tavus CLI and MCP server for agentic PAL creation and editing."
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.11"
@@ -29,6 +29,14 @@
29
29
  {
30
30
  "type": "generic",
31
31
  "path": "workers/tavus-mcp/src/version.ts"
32
+ },
33
+ {
34
+ "type": "generic",
35
+ "path": "packages/tavus/pyproject.toml"
36
+ },
37
+ {
38
+ "type": "generic",
39
+ "path": "packages/tavus-mcp/pyproject.toml"
32
40
  }
33
41
  ]
34
42
  }
@@ -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
- return {
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:
@@ -1,4 +1,4 @@
1
1
  """Tavus CLI and MCP server package."""
2
2
 
3
3
  __all__ = ["__version__"]
4
- __version__ = "0.3.4" # x-release-please-version
4
+ __version__ = "0.4.0" # x-release-please-version
@@ -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
@@ -1303,7 +1303,7 @@ wheels = [
1303
1303
 
1304
1304
  [[package]]
1305
1305
  name = "tavus-cli"
1306
- version = "0.3.4"
1306
+ version = "0.4.0"
1307
1307
  source = { editable = "." }
1308
1308
  dependencies = [
1309
1309
  { name = "fastmcp" },
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@tavus/tavus-mcp-worker",
3
- "version": "0.3.4",
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.3.4",
9
+ "version": "0.4.0",
10
10
  "dependencies": {
11
11
  "@modelcontextprotocol/sdk": "^1.29.0",
12
12
  "agents": "^0.12.2",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tavus/tavus-mcp-worker",
3
- "version": "0.3.4",
3
+ "version": "0.4.0",
4
4
  "private": true,
5
5
  "type": "module",
6
6
  "scripts": {
@@ -0,0 +1 @@
1
+ export const VERSION = "0.4.0"; // x-release-please-version
@@ -1,3 +0,0 @@
1
- {
2
- ".": "0.3.4"
3
- }
@@ -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