jambonz-python-sdk 0.3.1__tar.gz → 0.3.2__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 (120) hide show
  1. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/PKG-INFO +1 -1
  2. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/pyproject.toml +1 -1
  3. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/llm-base.schema.json +1 -1
  4. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/recognizer-googleOptions.schema.json +4 -0
  5. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/agent.schema.json +46 -0
  6. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/.gitignore +0 -0
  7. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/README.md +0 -0
  8. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/__init__.py +0 -0
  9. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/_signature.py +0 -0
  10. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/client/__init__.py +0 -0
  11. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/client/api.py +0 -0
  12. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/agent-turn.schema.json +0 -0
  13. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/amd.schema.json +0 -0
  14. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/base.schema.json +0 -0
  15. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/call-status.schema.json +0 -0
  16. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/conference-status.schema.json +0 -0
  17. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/conference-wait.schema.json +0 -0
  18. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/conference.schema.json +0 -0
  19. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/dequeue.schema.json +0 -0
  20. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/dial-dtmf.schema.json +0 -0
  21. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/dial-hold.schema.json +0 -0
  22. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/dial-refer.schema.json +0 -0
  23. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/dial.schema.json +0 -0
  24. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/enqueue-wait.schema.json +0 -0
  25. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/enqueue.schema.json +0 -0
  26. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/gather-partial.schema.json +0 -0
  27. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/gather.schema.json +0 -0
  28. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/listen.schema.json +0 -0
  29. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/llm.schema.json +0 -0
  30. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/message.schema.json +0 -0
  31. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/play.schema.json +0 -0
  32. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/session-new.schema.json +0 -0
  33. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/session-reconnect.schema.json +0 -0
  34. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/session-redirect.schema.json +0 -0
  35. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/sip-refer-event.schema.json +0 -0
  36. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/sip-refer.schema.json +0 -0
  37. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/sip-request.schema.json +0 -0
  38. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/transcribe-translation.schema.json +0 -0
  39. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/transcribe.schema.json +0 -0
  40. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/tts-streaming-event.schema.json +0 -0
  41. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/callbacks/verb-status.schema.json +0 -0
  42. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/actionHook.schema.json +0 -0
  43. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/actionHookDelayAction.schema.json +0 -0
  44. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/amd.schema.json +0 -0
  45. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/auth.schema.json +0 -0
  46. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/bidirectionalAudio.schema.json +0 -0
  47. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/fillerNoise.schema.json +0 -0
  48. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/recognizer-assemblyAiOptions.schema.json +0 -0
  49. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/recognizer-awsOptions.schema.json +0 -0
  50. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/recognizer-azureOptions.schema.json +0 -0
  51. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/recognizer-cobaltOptions.schema.json +0 -0
  52. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/recognizer-customOptions.schema.json +0 -0
  53. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/recognizer-deepgramOptions.schema.json +0 -0
  54. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/recognizer-elevenlabsOptions.schema.json +0 -0
  55. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/recognizer-gladiaOptions.schema.json +0 -0
  56. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/recognizer-houndifyOptions.schema.json +0 -0
  57. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/recognizer-ibmOptions.schema.json +0 -0
  58. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/recognizer-nuanceOptions.schema.json +0 -0
  59. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/recognizer-nvidiaOptions.schema.json +0 -0
  60. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/recognizer-openaiOptions.schema.json +0 -0
  61. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/recognizer-sonioxOptions.schema.json +0 -0
  62. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/recognizer-speechmaticsOptions.schema.json +0 -0
  63. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/recognizer-verbioOptions.schema.json +0 -0
  64. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/recognizer.schema.json +0 -0
  65. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/synthesizer.schema.json +0 -0
  66. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/target.schema.json +0 -0
  67. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/components/vad.schema.json +0 -0
  68. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/jambonz-app.schema.json +0 -0
  69. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/alert.schema.json +0 -0
  70. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/answer.schema.json +0 -0
  71. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/conference.schema.json +0 -0
  72. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/config.schema.json +0 -0
  73. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/deepgram_s2s.schema.json +0 -0
  74. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/dequeue.schema.json +0 -0
  75. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/dial.schema.json +0 -0
  76. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/dialogflow.schema.json +0 -0
  77. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/dtmf.schema.json +0 -0
  78. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/dub.schema.json +0 -0
  79. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/elevenlabs_s2s.schema.json +0 -0
  80. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/enqueue.schema.json +0 -0
  81. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/gather.schema.json +0 -0
  82. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/google_s2s.schema.json +0 -0
  83. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/hangup.schema.json +0 -0
  84. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/leave.schema.json +0 -0
  85. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/listen.schema.json +0 -0
  86. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/llm.schema.json +0 -0
  87. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/message.schema.json +0 -0
  88. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/openai_s2s.schema.json +0 -0
  89. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/pause.schema.json +0 -0
  90. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/play.schema.json +0 -0
  91. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/redirect.schema.json +0 -0
  92. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/rest_dial.schema.json +0 -0
  93. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/s2s.schema.json +0 -0
  94. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/say.schema.json +0 -0
  95. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/sip-decline.schema.json +0 -0
  96. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/sip-refer.schema.json +0 -0
  97. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/sip-request.schema.json +0 -0
  98. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/stream.schema.json +0 -0
  99. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/tag.schema.json +0 -0
  100. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/transcribe.schema.json +0 -0
  101. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/schema/verbs/ultravox_s2s.schema.json +0 -0
  102. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/types/__init__.py +0 -0
  103. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/types/components.py +0 -0
  104. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/types/rest.py +0 -0
  105. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/types/session.py +0 -0
  106. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/types/verbs.py +0 -0
  107. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/validator.py +0 -0
  108. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/verb_builder.py +0 -0
  109. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/verb_builder.pyi +0 -0
  110. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/verb_registry.py +0 -0
  111. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/webhook/__init__.py +0 -0
  112. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/webhook/middleware.py +0 -0
  113. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/webhook/response.py +0 -0
  114. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/websocket/__init__.py +0 -0
  115. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/websocket/audio_client.py +0 -0
  116. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/websocket/audio_stream.py +0 -0
  117. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/websocket/client.py +0 -0
  118. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/websocket/endpoint.py +0 -0
  119. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/websocket/router.py +0 -0
  120. {jambonz_python_sdk-0.3.1 → jambonz_python_sdk-0.3.2}/src/jambonz_sdk/websocket/session.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jambonz-python-sdk
3
- Version: 0.3.1
3
+ Version: 0.3.2
4
4
  Summary: Python SDK for jambonz CPaaS platform
5
5
  Project-URL: Homepage, https://github.com/jambonz/jambonz-python-sdk
6
6
  Project-URL: Repository, https://github.com/jambonz/jambonz-python-sdk
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "jambonz-python-sdk"
7
- version = "0.3.1"
7
+ version = "0.3.2"
8
8
  description = "Python SDK for jambonz CPaaS platform"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -12,7 +12,7 @@
12
12
  "vendor": {
13
13
  "type": "string",
14
14
  "description": "The LLM vendor to use.",
15
- "examples": ["openai", "anthropic", "google", "groq", "deepseek", "deepgram", "ultravox", "custom"]
15
+ "examples": ["openai", "anthropic", "google", "groq", "deepseek", "baseten", "deepgram", "ultravox", "custom"]
16
16
  },
17
17
  "model": {
18
18
  "type": "string",
@@ -14,6 +14,10 @@
14
14
  "type": "string",
15
15
  "description": "ID of a Google Speech recognizer resource (v2 only)."
16
16
  },
17
+ "parentPath": {
18
+ "type": "string",
19
+ "description": "Parent resource path for the Google Speech recognizer (v2 only), e.g. 'projects/{project}/locations/{location}'."
20
+ },
17
21
  "speechStartTimeoutMs": {
18
22
  "type": "number",
19
23
  "description": "Timeout in milliseconds to wait for speech to start."
@@ -121,6 +121,7 @@
121
121
  "vertex-openai",
122
122
  "bedrock",
123
123
  "deepseek",
124
+ "baseten",
124
125
  "azure-openai",
125
126
  "groq",
126
127
  "huggingface"
@@ -278,6 +279,13 @@
278
279
  "required": ["url"]
279
280
  },
280
281
  "description": "External MCP servers that provide tools to the LLM. The agent connects at startup via SSE, discovers available tools, and makes them callable by the LLM."
282
+ },
283
+ "toolFiller": {
284
+ "oneOf": [
285
+ { "type": "boolean", "const": false },
286
+ { "$ref": "#/$defs/toolFillerConfig" }
287
+ ],
288
+ "description": "Configuration for playing filler audio while tool calls are in progress. Prevents silence during long-running tool executions."
281
289
  }
282
290
  },
283
291
  "required": [
@@ -296,6 +304,44 @@
296
304
  "content": {}
297
305
  },
298
306
  "additionalProperties": true
307
+ },
308
+ "toolFillerConfig": {
309
+ "type": "object",
310
+ "required": ["type"],
311
+ "properties": {
312
+ "type": {
313
+ "type": "string",
314
+ "enum": ["audio", "backchannel"],
315
+ "description": "Filler mode. 'audio' plays a looping audio file (killed immediately when tool returns). 'backchannel' uses TTS to speak short phrases like 'one moment...' or 'checking that...' (allowed to complete before next action)."
316
+ },
317
+ "startDelaySecs": {
318
+ "type": "number",
319
+ "minimum": 0,
320
+ "description": "Seconds to wait after tool invocation before playing filler. Prevents filler on fast tools. Default: 2",
321
+ "default": 2
322
+ },
323
+ "url": {
324
+ "type": "string",
325
+ "format": "uri",
326
+ "description": "Audio file URL (for type='audio'). Should be loopable. Playback stops immediately when tool returns."
327
+ },
328
+ "style": {
329
+ "type": "string",
330
+ "description": "Free-form style hint for LLM-generated phrases (for type='backchannel'). Examples: 'casual', 'professional', 'friendly and patient'. The LLM interprets this when generating filler phrases at call start."
331
+ },
332
+ "escalationSecs": {
333
+ "type": "number",
334
+ "minimum": 0,
335
+ "description": "Seconds from tool invocation before generating a longer explanatory response (for type='backchannel'). Useful for tools that may take 10+ seconds. Default: 10",
336
+ "default": 10
337
+ }
338
+ },
339
+ "allOf": [
340
+ {
341
+ "if": { "properties": { "type": { "const": "audio" } } },
342
+ "then": { "required": ["url"] }
343
+ }
344
+ ]
299
345
  }
300
346
  },
301
347
  "examples": [