tavus-cli 0.4.2__tar.gz → 0.4.4__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.4.2 → tavus_cli-0.4.4}/.github/workflows/pypi-cli.yml +46 -0
- tavus_cli-0.4.4/.release-please-manifest.json +3 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/CHANGELOG.md +14 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/PKG-INFO +1 -1
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/packages/tavus/pyproject.toml +2 -2
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/packages/tavus-mcp/pyproject.toml +2 -2
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/pyproject.toml +1 -1
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/__init__.py +1 -1
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/tests/unit/test_release_versions.py +30 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/uv.lock +1 -1
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/workers/tavus-mcp/package-lock.json +2 -2
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/workers/tavus-mcp/package.json +1 -1
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/workers/tavus-mcp/src/index.ts +9 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/workers/tavus-mcp/src/tavus.ts +61 -56
- tavus_cli-0.4.4/workers/tavus-mcp/src/version.ts +1 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/workers/tavus-mcp/wrangler.jsonc +2 -1
- tavus_cli-0.4.2/.release-please-manifest.json +0 -3
- tavus_cli-0.4.2/workers/tavus-mcp/src/version.ts +0 -1
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/.env.example +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/.github/workflows/ci.yml +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/.github/workflows/deploy-cloudflare-worker.yml +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/.github/workflows/pr-reviews.yml +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/.github/workflows/tail-cloudflare-worker.yml +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/.github/workflows/validate-staging-deployment.yml +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/.gitignore +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/AGENTS.md +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/README.md +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/docs/gemini-enterprise/README.md +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/docs/gemini-enterprise/listing.md +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/docs/gemini-enterprise/test-queries.md +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/docs/usage-observability.md +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/packages/tavus/README.md +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/packages/tavus-mcp/README.md +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/release-please-config.json +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/scripts/__init__.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/scripts/check_release_versions.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/skills/tavus-agentic-pals/SKILL.md +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/skills/tavus-agentic-pals/agents/openai.yaml +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/skills/tavus-agentic-pals/references/build-and-verify.md +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/skills/tavus-agentic-pals/references/builder-workflow.md +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/skills/tavus-agentic-pals/references/chat-mode.md +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/skills/tavus-agentic-pals/references/examples.md +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/cli/__init__.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/cli/main.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/__init__.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/auth/__init__.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/auth/keyring_store.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/auth/oauth.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/auth/session.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/client/__init__.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/client/http.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/daily_transport.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/env.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/errors.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/pal_urls.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/patch.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/recipes/__init__.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/recipes/build_and_verify.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/recipes/capabilities.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/recipes/carrier_builder.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/recipes/knowledge.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/recipes/options.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/recipes/quickstart.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/recipes/scaffold_embed.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/recipes/templates.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/recipes/tool_reuse.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/schemas/__init__.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/schemas/file_manifest.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/schemas/guardrail.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/schemas/objective.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/schemas/pal.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/schemas/pronunciation.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/sdk/schemas/tool.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/src/tavus_mcp/server.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/tests/conftest.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/tests/integration/test_cli.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/tests/integration/test_client.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/tests/integration/test_mcp_server.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/tests/integration/test_oauth.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/tests/unit/test_auth.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/tests/unit/test_build_and_verify.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/tests/unit/test_builder.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/tests/unit/test_capabilities.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/tests/unit/test_daily_transport.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/tests/unit/test_env.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/tests/unit/test_guardrail_schema.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/tests/unit/test_objective_schema.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/tests/unit/test_pal_schema.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/tests/unit/test_patch.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/tests/unit/test_pronunciation_schema.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/tests/unit/test_scaffold_embed.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/tests/unit/test_tool_reuse.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/tests/unit/test_tool_schema.py +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/workers/tavus-mcp/.dev.vars.example +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/workers/tavus-mcp/src/oauth-grant.ts +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/workers/tavus-mcp/src/oauth.ts +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/workers/tavus-mcp/test/parity.test.ts +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/workers/tavus-mcp/test/tavus.test.ts +0 -0
- {tavus_cli-0.4.2 → tavus_cli-0.4.4}/workers/tavus-mcp/tsconfig.json +0 -0
|
@@ -322,6 +322,52 @@ jobs:
|
|
|
322
322
|
- name: Publish Tavus CLI and its alias packages to PyPI
|
|
323
323
|
run: uv publish --trusted-publishing always --check-url https://pypi.org/simple/ dist/*
|
|
324
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
|
+
|
|
325
371
|
update-final-board:
|
|
326
372
|
name: Refresh Slack after production
|
|
327
373
|
needs: [preflight, update-pending-board, production]
|
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.4.4](https://github.com/Tavus-Engineering/tavus-mcp/compare/v0.4.3...v0.4.4) (2026-09-10)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Bug Fixes
|
|
7
|
+
|
|
8
|
+
* prepare hosted MCP metadata for directory review ([#47](https://github.com/Tavus-Engineering/tavus-mcp/issues/47)) ([728bd51](https://github.com/Tavus-Engineering/tavus-mcp/commit/728bd519ef48a0b8d4203926d124f4c6d2500cff))
|
|
9
|
+
|
|
10
|
+
## [0.4.3](https://github.com/Tavus-Engineering/tavus-mcp/compare/v0.4.2...v0.4.3) (2026-08-28)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Reverts
|
|
14
|
+
|
|
15
|
+
* "revert: "feat: notify cvi-automations after MCP deploys"" ([c75fdc8](https://github.com/Tavus-Engineering/tavus-mcp/commit/c75fdc850fef1873b83cb356028cb0539193c5aa))
|
|
16
|
+
|
|
3
17
|
## [0.4.2](https://github.com/Tavus-Engineering/tavus-mcp/compare/v0.4.1...v0.4.2) (2026-08-28)
|
|
4
18
|
|
|
5
19
|
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "tavus"
|
|
3
|
-
version = "0.4.
|
|
3
|
+
version = "0.4.4" # x-release-please-version
|
|
4
4
|
description = "Official alias for tavus-cli, the Tavus CLI and MCP server."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.11"
|
|
7
7
|
dependencies = [
|
|
8
|
-
"tavus-cli==0.4.
|
|
8
|
+
"tavus-cli==0.4.4", # x-release-please-version
|
|
9
9
|
]
|
|
10
10
|
|
|
11
11
|
[project.urls]
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "tavus-mcp"
|
|
3
|
-
version = "0.4.
|
|
3
|
+
version = "0.4.4" # x-release-please-version
|
|
4
4
|
description = "Official alias for tavus-cli, which provides the tavus-mcp MCP server."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
requires-python = ">=3.11"
|
|
7
7
|
dependencies = [
|
|
8
|
-
"tavus-cli==0.4.
|
|
8
|
+
"tavus-cli==0.4.4", # x-release-please-version
|
|
9
9
|
]
|
|
10
10
|
|
|
11
11
|
[project.urls]
|
|
@@ -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.4.
|
|
3
|
+
"version": "0.4.4",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@tavus/tavus-mcp-worker",
|
|
9
|
-
"version": "0.4.
|
|
9
|
+
"version": "0.4.4",
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
12
12
|
"agents": "^0.12.2",
|
|
@@ -17,6 +17,15 @@ const MCP_ROUTE = "/mcp";
|
|
|
17
17
|
export default {
|
|
18
18
|
async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> {
|
|
19
19
|
const url = new URL(request.url);
|
|
20
|
+
if (
|
|
21
|
+
url.pathname === "/.well-known/openai-apps-challenge" &&
|
|
22
|
+
(request.method === "GET" || request.method === "HEAD") &&
|
|
23
|
+
env.OPENAI_APPS_CHALLENGE
|
|
24
|
+
) {
|
|
25
|
+
return new Response(request.method === "HEAD" ? null : env.OPENAI_APPS_CHALLENGE, {
|
|
26
|
+
headers: { "Content-Type": "text/plain; charset=utf-8" },
|
|
27
|
+
});
|
|
28
|
+
}
|
|
20
29
|
const oauthResponse = await handleOAuthRequest(request, env, MCP_ROUTE);
|
|
21
30
|
if (oauthResponse) {
|
|
22
31
|
return oauthResponse;
|
|
@@ -20,6 +20,7 @@ interface OAuthGrantStoreBinding {
|
|
|
20
20
|
export type TavusEnvironment = "TEST" | "STG" | "PROD";
|
|
21
21
|
|
|
22
22
|
export interface Env {
|
|
23
|
+
OPENAI_APPS_CHALLENGE?: string;
|
|
23
24
|
TAVUS_ENV?: string;
|
|
24
25
|
TAVUS_PUBLIC_API_BASE_URL?: string;
|
|
25
26
|
TAVUS_DEV_PORTAL_URL?: string;
|
|
@@ -138,17 +139,21 @@ function readOnlyAnnotations(title: string) {
|
|
|
138
139
|
readOnlyHint: true,
|
|
139
140
|
destructiveHint: false,
|
|
140
141
|
idempotentHint: true,
|
|
141
|
-
openWorldHint:
|
|
142
|
+
openWorldHint: false,
|
|
142
143
|
};
|
|
143
144
|
}
|
|
144
145
|
|
|
145
|
-
function writeAnnotations(
|
|
146
|
+
function writeAnnotations(
|
|
147
|
+
title: string,
|
|
148
|
+
options: { destructiveHint?: boolean; openWorldHint?: boolean } = {},
|
|
149
|
+
) {
|
|
146
150
|
return {
|
|
147
151
|
title,
|
|
148
152
|
readOnlyHint: false,
|
|
149
153
|
destructiveHint: false,
|
|
150
154
|
idempotentHint: false,
|
|
151
|
-
openWorldHint:
|
|
155
|
+
openWorldHint: false,
|
|
156
|
+
...options,
|
|
152
157
|
};
|
|
153
158
|
}
|
|
154
159
|
|
|
@@ -158,7 +163,7 @@ function destructiveAnnotations(title: string) {
|
|
|
158
163
|
readOnlyHint: false,
|
|
159
164
|
destructiveHint: true,
|
|
160
165
|
idempotentHint: true,
|
|
161
|
-
openWorldHint:
|
|
166
|
+
openWorldHint: false,
|
|
162
167
|
};
|
|
163
168
|
}
|
|
164
169
|
|
|
@@ -456,7 +461,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
456
461
|
readOnlyHint: true,
|
|
457
462
|
destructiveHint: false,
|
|
458
463
|
idempotentHint: true,
|
|
459
|
-
openWorldHint:
|
|
464
|
+
openWorldHint: false,
|
|
460
465
|
},
|
|
461
466
|
async ({ deep }) =>
|
|
462
467
|
toolResult(
|
|
@@ -481,7 +486,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
481
486
|
readOnlyHint: true,
|
|
482
487
|
destructiveHint: false,
|
|
483
488
|
idempotentHint: true,
|
|
484
|
-
openWorldHint:
|
|
489
|
+
openWorldHint: false,
|
|
485
490
|
},
|
|
486
491
|
async ({ limit, page, pal_type }) =>
|
|
487
492
|
toolResult(
|
|
@@ -501,7 +506,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
501
506
|
readOnlyHint: true,
|
|
502
507
|
destructiveHint: false,
|
|
503
508
|
idempotentHint: true,
|
|
504
|
-
openWorldHint:
|
|
509
|
+
openWorldHint: false,
|
|
505
510
|
},
|
|
506
511
|
async ({ pal_id, include_settings }) =>
|
|
507
512
|
toolResult(
|
|
@@ -515,7 +520,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
515
520
|
|
|
516
521
|
server.tool(
|
|
517
522
|
"tavus_pal_create",
|
|
518
|
-
"
|
|
523
|
+
"Create a PAL directly from supplied configuration and return its PAL Maker editor URL. This low-level operation does not draft or verify the PAL through the guided PAL Maker pipeline. Full-pipeline PALs default to tavus-gemma-4 unless layers.llm.model is supplied. Tools are first-class records referenced by top-level tool_ids; inline layers.llm.tools configuration is unsupported.",
|
|
519
524
|
{
|
|
520
525
|
system_prompt: z.string().min(1).optional(),
|
|
521
526
|
pal_name: z.string().default("Agentic Tavus PAL"),
|
|
@@ -539,7 +544,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
539
544
|
readOnlyHint: false,
|
|
540
545
|
destructiveHint: false,
|
|
541
546
|
idempotentHint: false,
|
|
542
|
-
openWorldHint:
|
|
547
|
+
openWorldHint: false,
|
|
543
548
|
},
|
|
544
549
|
async ({ system_prompt, pal_name, default_face_id, layers, ...settings }) =>
|
|
545
550
|
toolResult(
|
|
@@ -567,7 +572,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
567
572
|
readOnlyHint: false,
|
|
568
573
|
destructiveHint: true,
|
|
569
574
|
idempotentHint: true,
|
|
570
|
-
openWorldHint:
|
|
575
|
+
openWorldHint: false,
|
|
571
576
|
},
|
|
572
577
|
async ({ pal_id }) => toolResult(await client.delete("pals", pal_id)),
|
|
573
578
|
);
|
|
@@ -584,7 +589,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
584
589
|
readOnlyHint: false,
|
|
585
590
|
destructiveHint: true,
|
|
586
591
|
idempotentHint: false,
|
|
587
|
-
openWorldHint:
|
|
592
|
+
openWorldHint: false,
|
|
588
593
|
},
|
|
589
594
|
async ({ pal_id, ops }) =>
|
|
590
595
|
toolResult(await client.patch("pals", pal_id, validatePatchOperations(ops))),
|
|
@@ -601,7 +606,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
601
606
|
readOnlyHint: true,
|
|
602
607
|
destructiveHint: false,
|
|
603
608
|
idempotentHint: true,
|
|
604
|
-
openWorldHint:
|
|
609
|
+
openWorldHint: false,
|
|
605
610
|
},
|
|
606
611
|
async ({ pal_id }) => {
|
|
607
612
|
const [pal, faces, voices, guardrails, objectives, documents, tools, skills, capabilities] =
|
|
@@ -648,7 +653,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
648
653
|
readOnlyHint: true,
|
|
649
654
|
destructiveHint: false,
|
|
650
655
|
idempotentHint: true,
|
|
651
|
-
openWorldHint:
|
|
656
|
+
openWorldHint: false,
|
|
652
657
|
},
|
|
653
658
|
async ({ limit }) => toolResult(await client.list("skills", { limit })),
|
|
654
659
|
);
|
|
@@ -664,7 +669,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
664
669
|
readOnlyHint: true,
|
|
665
670
|
destructiveHint: false,
|
|
666
671
|
idempotentHint: true,
|
|
667
|
-
openWorldHint:
|
|
672
|
+
openWorldHint: false,
|
|
668
673
|
},
|
|
669
674
|
async ({ skill_id }) => toolResult(await client.get("skills", skill_id)),
|
|
670
675
|
);
|
|
@@ -680,7 +685,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
680
685
|
readOnlyHint: true,
|
|
681
686
|
destructiveHint: false,
|
|
682
687
|
idempotentHint: true,
|
|
683
|
-
openWorldHint:
|
|
688
|
+
openWorldHint: false,
|
|
684
689
|
},
|
|
685
690
|
async ({ pal_id }) => toolResult(await client.getPath(`pals/${pal_id}/skills/`)),
|
|
686
691
|
);
|
|
@@ -696,9 +701,9 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
696
701
|
{
|
|
697
702
|
title: "Attach PAL skill",
|
|
698
703
|
readOnlyHint: false,
|
|
699
|
-
destructiveHint:
|
|
704
|
+
destructiveHint: true,
|
|
700
705
|
idempotentHint: true,
|
|
701
|
-
openWorldHint:
|
|
706
|
+
openWorldHint: false,
|
|
702
707
|
},
|
|
703
708
|
async ({ pal_id, skill_id, config }) =>
|
|
704
709
|
toolResult(await client.put(`pals/${pal_id}/skills/${skill_id}`, { config: config ?? {} })),
|
|
@@ -715,9 +720,9 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
715
720
|
{
|
|
716
721
|
title: "Patch PAL skill",
|
|
717
722
|
readOnlyHint: false,
|
|
718
|
-
destructiveHint:
|
|
723
|
+
destructiveHint: true,
|
|
719
724
|
idempotentHint: false,
|
|
720
|
-
openWorldHint:
|
|
725
|
+
openWorldHint: false,
|
|
721
726
|
},
|
|
722
727
|
async ({ pal_id, skill_id, config }) =>
|
|
723
728
|
toolResult(await client.patchPath(`pals/${pal_id}/skills/${skill_id}`, { config })),
|
|
@@ -735,7 +740,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
735
740
|
readOnlyHint: false,
|
|
736
741
|
destructiveHint: true,
|
|
737
742
|
idempotentHint: true,
|
|
738
|
-
openWorldHint:
|
|
743
|
+
openWorldHint: false,
|
|
739
744
|
},
|
|
740
745
|
async ({ pal_id, skill_id }) =>
|
|
741
746
|
toolResult(await client.deletePath(`pals/${pal_id}/skills/${skill_id}`)),
|
|
@@ -756,7 +761,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
756
761
|
readOnlyHint: true,
|
|
757
762
|
destructiveHint: false,
|
|
758
763
|
idempotentHint: true,
|
|
759
|
-
openWorldHint:
|
|
764
|
+
openWorldHint: false,
|
|
760
765
|
},
|
|
761
766
|
async ({ limit, page, search, sort, tags }) =>
|
|
762
767
|
toolResult(await client.list("voices", clean({ limit, page, search, sort, tags: csv(tags) }))),
|
|
@@ -834,7 +839,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
834
839
|
app_message: z.boolean().optional(),
|
|
835
840
|
tags: z.array(z.string()).optional(),
|
|
836
841
|
},
|
|
837
|
-
writeAnnotations("Update guardrail"),
|
|
842
|
+
writeAnnotations("Update guardrail", { destructiveHint: true }),
|
|
838
843
|
async ({ guardrail_id, ...body }) =>
|
|
839
844
|
toolResult(await client.patchPath(`guardrails/${guardrail_id}`, clean(body))),
|
|
840
845
|
);
|
|
@@ -904,7 +909,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
904
909
|
objectives_id: z.string().min(1),
|
|
905
910
|
ops: z.array(JsonPatchOperationSchema).min(1),
|
|
906
911
|
},
|
|
907
|
-
writeAnnotations("Update objective set"),
|
|
912
|
+
writeAnnotations("Update objective set", { destructiveHint: true }),
|
|
908
913
|
async ({ objectives_id, ops }) =>
|
|
909
914
|
toolResult(await client.patchPath(`objectives/${objectives_id}`, ops)),
|
|
910
915
|
);
|
|
@@ -921,7 +926,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
921
926
|
"tavus_objective_validate",
|
|
922
927
|
"Validate an objective set without persisting it.",
|
|
923
928
|
objectiveCreateFields,
|
|
924
|
-
|
|
929
|
+
readOnlyAnnotations("Validate objective set"),
|
|
925
930
|
async (body) => toolResult(await client.post("objectives/validate", body)),
|
|
926
931
|
);
|
|
927
932
|
|
|
@@ -993,7 +998,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
993
998
|
static_filler: z.string().optional(),
|
|
994
999
|
tags: z.array(z.string()).optional(),
|
|
995
1000
|
},
|
|
996
|
-
writeAnnotations("Update tool"),
|
|
1001
|
+
writeAnnotations("Update tool", { destructiveHint: true }),
|
|
997
1002
|
async ({ tool_id, ...body }) =>
|
|
998
1003
|
toolResult(await client.patchPath(`tools/${tool_id}`, clean(body))),
|
|
999
1004
|
);
|
|
@@ -1021,7 +1026,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1021
1026
|
pal_id: z.string().min(1),
|
|
1022
1027
|
tool_ids: z.array(z.string().min(1)).min(1).max(50),
|
|
1023
1028
|
},
|
|
1024
|
-
writeAnnotations("Attach PAL tools"),
|
|
1029
|
+
writeAnnotations("Attach PAL tools", { destructiveHint: true }),
|
|
1025
1030
|
async ({ pal_id, tool_ids }) => toolResult(await attachPalTools(client, pal_id, tool_ids)),
|
|
1026
1031
|
);
|
|
1027
1032
|
|
|
@@ -1075,7 +1080,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1075
1080
|
name: z.string().min(1).max(255).optional(),
|
|
1076
1081
|
rules: z.array(z.record(z.string(), z.unknown())).max(10000).optional(),
|
|
1077
1082
|
},
|
|
1078
|
-
writeAnnotations("Update pronunciation dictionary"),
|
|
1083
|
+
writeAnnotations("Update pronunciation dictionary", { destructiveHint: true }),
|
|
1079
1084
|
async ({ dictionary_id, ...body }) =>
|
|
1080
1085
|
toolResult(await client.patchPath(`pronunciation-dictionaries/${dictionary_id}`, clean(body))),
|
|
1081
1086
|
);
|
|
@@ -1114,7 +1119,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1114
1119
|
readOnlyHint: true,
|
|
1115
1120
|
destructiveHint: false,
|
|
1116
1121
|
idempotentHint: true,
|
|
1117
|
-
openWorldHint:
|
|
1122
|
+
openWorldHint: false,
|
|
1118
1123
|
},
|
|
1119
1124
|
async ({ pal_id }) => toolResult(await listPalCapabilities(client, pal_id)),
|
|
1120
1125
|
);
|
|
@@ -1144,9 +1149,9 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1144
1149
|
{
|
|
1145
1150
|
title: "Attach PAL capability",
|
|
1146
1151
|
readOnlyHint: false,
|
|
1147
|
-
destructiveHint:
|
|
1152
|
+
destructiveHint: true,
|
|
1148
1153
|
idempotentHint: true,
|
|
1149
|
-
openWorldHint:
|
|
1154
|
+
openWorldHint: false,
|
|
1150
1155
|
},
|
|
1151
1156
|
async (input) => toolResult(await attachPalCapability(client, input)),
|
|
1152
1157
|
);
|
|
@@ -1158,9 +1163,9 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1158
1163
|
{
|
|
1159
1164
|
title: "Patch PAL capability",
|
|
1160
1165
|
readOnlyHint: false,
|
|
1161
|
-
destructiveHint:
|
|
1166
|
+
destructiveHint: true,
|
|
1162
1167
|
idempotentHint: false,
|
|
1163
|
-
openWorldHint:
|
|
1168
|
+
openWorldHint: false,
|
|
1164
1169
|
},
|
|
1165
1170
|
async (input) => toolResult(await attachPalCapability(client, input, true)),
|
|
1166
1171
|
);
|
|
@@ -1177,7 +1182,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1177
1182
|
readOnlyHint: false,
|
|
1178
1183
|
destructiveHint: true,
|
|
1179
1184
|
idempotentHint: true,
|
|
1180
|
-
openWorldHint:
|
|
1185
|
+
openWorldHint: false,
|
|
1181
1186
|
},
|
|
1182
1187
|
async ({ pal_id, capability }) =>
|
|
1183
1188
|
toolResult(await detachPalCapability(client, pal_id, capability)),
|
|
@@ -1202,7 +1207,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1202
1207
|
readOnlyHint: true,
|
|
1203
1208
|
destructiveHint: false,
|
|
1204
1209
|
idempotentHint: true,
|
|
1205
|
-
openWorldHint:
|
|
1210
|
+
openWorldHint: false,
|
|
1206
1211
|
},
|
|
1207
1212
|
async ({ limit, page, sort, status, tags, participant_tags, name_or_uuid, verbose, scope }) =>
|
|
1208
1213
|
toolResult(
|
|
@@ -1235,7 +1240,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1235
1240
|
readOnlyHint: true,
|
|
1236
1241
|
destructiveHint: false,
|
|
1237
1242
|
idempotentHint: true,
|
|
1238
|
-
openWorldHint:
|
|
1243
|
+
openWorldHint: false,
|
|
1239
1244
|
},
|
|
1240
1245
|
async ({ document_id, verbose }) =>
|
|
1241
1246
|
toolResult(await client.get("documents", document_id, { verbose: String(verbose) })),
|
|
@@ -1301,7 +1306,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1301
1306
|
readOnlyHint: true,
|
|
1302
1307
|
destructiveHint: false,
|
|
1303
1308
|
idempotentHint: true,
|
|
1304
|
-
openWorldHint:
|
|
1309
|
+
openWorldHint: false,
|
|
1305
1310
|
},
|
|
1306
1311
|
async ({ search, page, limit }) =>
|
|
1307
1312
|
toolResult(await client.getPath("documents/tags", clean({ search, page, limit }))),
|
|
@@ -1321,7 +1326,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1321
1326
|
readOnlyHint: true,
|
|
1322
1327
|
destructiveHint: false,
|
|
1323
1328
|
idempotentHint: true,
|
|
1324
|
-
openWorldHint:
|
|
1329
|
+
openWorldHint: false,
|
|
1325
1330
|
},
|
|
1326
1331
|
async ({ document_id, collection, limit, offset }) =>
|
|
1327
1332
|
toolResult(
|
|
@@ -1342,7 +1347,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1342
1347
|
{
|
|
1343
1348
|
title: "Recrawl document",
|
|
1344
1349
|
readOnlyHint: false,
|
|
1345
|
-
destructiveHint:
|
|
1350
|
+
destructiveHint: true,
|
|
1346
1351
|
idempotentHint: false,
|
|
1347
1352
|
openWorldHint: true,
|
|
1348
1353
|
},
|
|
@@ -1361,7 +1366,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1361
1366
|
readOnlyHint: true,
|
|
1362
1367
|
destructiveHint: false,
|
|
1363
1368
|
idempotentHint: true,
|
|
1364
|
-
openWorldHint:
|
|
1369
|
+
openWorldHint: false,
|
|
1365
1370
|
},
|
|
1366
1371
|
async ({ pal_id }) => toolResult(await listPalKnowledge(client, pal_id)),
|
|
1367
1372
|
);
|
|
@@ -1381,7 +1386,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1381
1386
|
readOnlyHint: false,
|
|
1382
1387
|
destructiveHint: false,
|
|
1383
1388
|
idempotentHint: true,
|
|
1384
|
-
openWorldHint:
|
|
1389
|
+
openWorldHint: false,
|
|
1385
1390
|
},
|
|
1386
1391
|
async ({ pal_id, document_ids, document_tags }) =>
|
|
1387
1392
|
toolResult(
|
|
@@ -1401,7 +1406,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1401
1406
|
readOnlyHint: false,
|
|
1402
1407
|
destructiveHint: true,
|
|
1403
1408
|
idempotentHint: true,
|
|
1404
|
-
openWorldHint:
|
|
1409
|
+
openWorldHint: false,
|
|
1405
1410
|
},
|
|
1406
1411
|
async ({ pal_id, document_ids, document_tags }) =>
|
|
1407
1412
|
toolResult(
|
|
@@ -1421,7 +1426,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1421
1426
|
readOnlyHint: false,
|
|
1422
1427
|
destructiveHint: true,
|
|
1423
1428
|
idempotentHint: true,
|
|
1424
|
-
openWorldHint:
|
|
1429
|
+
openWorldHint: false,
|
|
1425
1430
|
},
|
|
1426
1431
|
async ({ pal_id, document_ids, document_tags }) =>
|
|
1427
1432
|
toolResult(
|
|
@@ -1446,9 +1451,9 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1446
1451
|
{
|
|
1447
1452
|
title: "Patch PAL Knowledge settings",
|
|
1448
1453
|
readOnlyHint: false,
|
|
1449
|
-
destructiveHint:
|
|
1454
|
+
destructiveHint: true,
|
|
1450
1455
|
idempotentHint: false,
|
|
1451
|
-
openWorldHint:
|
|
1456
|
+
openWorldHint: false,
|
|
1452
1457
|
},
|
|
1453
1458
|
async ({ pal_id, ...settings }) =>
|
|
1454
1459
|
toolResult(await patchPalKnowledgeSettings(client, pal_id, settings)),
|
|
@@ -1466,7 +1471,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1466
1471
|
readOnlyHint: true,
|
|
1467
1472
|
destructiveHint: false,
|
|
1468
1473
|
idempotentHint: true,
|
|
1469
|
-
openWorldHint:
|
|
1474
|
+
openWorldHint: false,
|
|
1470
1475
|
},
|
|
1471
1476
|
async ({ limit, stock }) =>
|
|
1472
1477
|
toolResult(
|
|
@@ -1485,7 +1490,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1485
1490
|
{
|
|
1486
1491
|
title: "Create conversation",
|
|
1487
1492
|
readOnlyHint: false,
|
|
1488
|
-
destructiveHint:
|
|
1493
|
+
destructiveHint: true,
|
|
1489
1494
|
idempotentHint: false,
|
|
1490
1495
|
openWorldHint: true,
|
|
1491
1496
|
},
|
|
@@ -1515,7 +1520,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1515
1520
|
readOnlyHint: false,
|
|
1516
1521
|
destructiveHint: true,
|
|
1517
1522
|
idempotentHint: true,
|
|
1518
|
-
openWorldHint:
|
|
1523
|
+
openWorldHint: false,
|
|
1519
1524
|
},
|
|
1520
1525
|
async ({ conversation_id }) =>
|
|
1521
1526
|
toolResult(await client.post(`conversations/${conversation_id}/end`, {})),
|
|
@@ -1529,7 +1534,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1529
1534
|
custom_greeting: z.string().optional(),
|
|
1530
1535
|
conversation_name: z.string().optional(),
|
|
1531
1536
|
},
|
|
1532
|
-
writeAnnotations("Start PAL text test"),
|
|
1537
|
+
writeAnnotations("Start PAL text test", { destructiveHint: true, openWorldHint: true }),
|
|
1533
1538
|
async ({ pal_id, custom_greeting, conversation_name }) =>
|
|
1534
1539
|
toolResult(
|
|
1535
1540
|
await client.create(
|
|
@@ -1552,7 +1557,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1552
1557
|
text: z.string().min(1),
|
|
1553
1558
|
timeout_s: z.number().int().min(5).max(120).default(45),
|
|
1554
1559
|
},
|
|
1555
|
-
writeAnnotations("Test PAL response"),
|
|
1560
|
+
writeAnnotations("Test PAL response", { destructiveHint: true, openWorldHint: true }),
|
|
1556
1561
|
async ({ conversation_id, text, timeout_s }) =>
|
|
1557
1562
|
toolResult({ text: await respondTurn(client, conversation_id, text, timeout_s * 1000) }),
|
|
1558
1563
|
);
|
|
@@ -1574,7 +1579,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1574
1579
|
face_id: z.string().optional(),
|
|
1575
1580
|
conversation_name: z.string().optional(),
|
|
1576
1581
|
},
|
|
1577
|
-
writeAnnotations("Preview PAL"),
|
|
1582
|
+
writeAnnotations("Preview PAL", { destructiveHint: true, openWorldHint: true }),
|
|
1578
1583
|
async ({ pal_id, face_id, conversation_name }) => {
|
|
1579
1584
|
let selectedFaceId = face_id;
|
|
1580
1585
|
if (!selectedFaceId) {
|
|
@@ -1596,7 +1601,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1596
1601
|
|
|
1597
1602
|
server.tool(
|
|
1598
1603
|
"tavus_quickstart",
|
|
1599
|
-
"
|
|
1604
|
+
"Create a PAL from a complete system prompt, select a stock face when none is supplied, and start a conversation. Returns the PAL, conversation, and selected face. This quick setup does not gather an interview or run the guided PAL Maker build and verification pipeline.",
|
|
1600
1605
|
{
|
|
1601
1606
|
system_prompt: z.string().min(1),
|
|
1602
1607
|
pal_name: z.string().default("Agentic Tavus PAL"),
|
|
@@ -1608,7 +1613,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1608
1613
|
readOnlyHint: false,
|
|
1609
1614
|
destructiveHint: false,
|
|
1610
1615
|
idempotentHint: false,
|
|
1611
|
-
openWorldHint:
|
|
1616
|
+
openWorldHint: false,
|
|
1612
1617
|
},
|
|
1613
1618
|
async ({ system_prompt, pal_name, face_id, conversation_name }) => {
|
|
1614
1619
|
const selectedFaceId = face_id ?? (await firstStockFaceId(client));
|
|
@@ -1653,7 +1658,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1653
1658
|
readOnlyHint: false,
|
|
1654
1659
|
destructiveHint: false,
|
|
1655
1660
|
idempotentHint: false,
|
|
1656
|
-
openWorldHint:
|
|
1661
|
+
openWorldHint: false,
|
|
1657
1662
|
},
|
|
1658
1663
|
async ({ template, pal_name, business_context, default_face_id, layers }) =>
|
|
1659
1664
|
toolResult(
|
|
@@ -1672,7 +1677,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1672
1677
|
|
|
1673
1678
|
server.tool(
|
|
1674
1679
|
"tavus_pal_build_and_verify",
|
|
1675
|
-
"
|
|
1680
|
+
"Build and publish a PAL through the guided PAL Maker pipeline from a completed brief and optional interview Q&A. Drafts the personality, objectives, guardrails, and greeting, selects a face, publishes the PAL, runs conversation probes, and returns the PAL ID, editor URL, and judged verification result. The briefs fields describe each artifact, including knowledge, tools, skills, perception, and face preferences. Connected tools or knowledge sources may access external services during building or testing. Usually takes one to three minutes.",
|
|
1676
1681
|
{
|
|
1677
1682
|
prompt: z.string().min(1),
|
|
1678
1683
|
interview: z
|
|
@@ -1696,7 +1701,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1696
1701
|
pal_name: z.string().optional(),
|
|
1697
1702
|
probes: z.array(z.string()).max(5).optional(),
|
|
1698
1703
|
},
|
|
1699
|
-
writeAnnotations("Build and verify PAL with PAL Maker"),
|
|
1704
|
+
writeAnnotations("Build and verify PAL with PAL Maker", { destructiveHint: true, openWorldHint: true }),
|
|
1700
1705
|
async ({ prompt, interview, briefs, face_id, pal_name, probes }) =>
|
|
1701
1706
|
toolResult(
|
|
1702
1707
|
await runGuidedBuild(client, config.palMakerUrl, {
|
|
@@ -1741,7 +1746,7 @@ export function createTavusMcpServer(env: Env, apiKey?: string): McpServer {
|
|
|
1741
1746
|
readOnlyHint: true,
|
|
1742
1747
|
destructiveHint: false,
|
|
1743
1748
|
idempotentHint: true,
|
|
1744
|
-
openWorldHint:
|
|
1749
|
+
openWorldHint: false,
|
|
1745
1750
|
},
|
|
1746
1751
|
async ({ resource, limit }) => toolResult(await client.list(resourceName(resource), { limit })),
|
|
1747
1752
|
);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const VERSION = "0.4.4"; // x-release-please-version
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export const VERSION = "0.4.2"; // 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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tavus_cli-0.4.2 → tavus_cli-0.4.4}/skills/tavus-agentic-pals/references/build-and-verify.md
RENAMED
|
File without changes
|
{tavus_cli-0.4.2 → tavus_cli-0.4.4}/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
|