You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add a TypeSafe Jev decision extension with choice, score, and noul support, cancellation, and stable error responses.
Add an opt-in voice assistant graph that routes DeepSeek Flash between non-thinking and high-effort thinking modes without tools; leave the default graph unchanged.
Show the Jev route and completed DeepSeek reasoning separately in chat, while keeping reasoning out of TTS output.
Add placeholder environment settings and regression tests.
Verification
40 related Python tests passed.
Python formatting and diff checks passed.
Frontend TypeScript type check passed in the development container.
Optional graph startup smoke check passed.
Voice end-to-end audio playback remains unverified because the configured TTS account had previously exhausted its quota.
[P1] Do not send DeepSeek thinking parameters to the existing OpenAI graphs (ai_agents/agents/examples/voice-assistant/tenapp/ten_packages/extension/main_python/agent/llm_exec.py:195)
_send_to_llm() adds parameters.extra_body.thinking on every request, including when model_routing.enabled is false. The default voice_assistant graph (and the other non-Jev graphs) still targets the OpenAI Chat Completions endpoint. openai_llm2_python/openai.py forwards extra_body to chat.completions.create(), so the API receives a vendor-specific thinking field even for ordinary OpenAI requests. That field is not part of the OpenAI Chat Completions create schema, and these previously working requests can fail instead of producing speech. Only set extra_body.thinking and reasoning_effort for the Jev/DeepSeek route; retain the prior temperature-only parameters when routing is disabled. The new test currently asserts the incompatible disabled-routing payload, so please update it as well.
ASR checklist
Lifecycle: N/A (Deepgram extension unchanged).
Connection state: N/A.
Buffering: N/A for audio; controller segment accumulation is bounded by speech_final under normal endpointing.
Finalize: N/A (asr_finalize path unchanged).
Reconnect: N/A.
Result shape: pass (reads metadata.asr_info.speech_final and does not submit an empty turn).
Metrics: N/A.
Tests: pass for mocked speech_final sequences; live ASR-to-reply behavior remains unverified in the PR.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Verification
Voice end-to-end audio playback remains unverified because the configured TTS account had previously exhausted its quota.