fix: fix speech to speech model transitions (#545)

* fix: fix transition logic for realtime providers

* chore: run formatter

* chore: generate SDK and fix other realtime providers

* fix: fix ultravox node transitions
This commit is contained in:
Abhishek 2026-07-15 18:36:36 +05:30 committed by GitHub
parent 348cd8427b
commit 01acf6ac30
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
34 changed files with 1282 additions and 617 deletions

View file

@ -1,6 +1,6 @@
# generated by datamodel-codegen:
# filename: dograh-openapi-XXXXXX.json.73JcjTo19T
# timestamp: 2026-07-11T10:21:09+00:00
# filename: dograh-openapi-XXXXXX.json.uTKtHKJw6v
# timestamp: 2026-07-15T11:25:06+00:00
from __future__ import annotations

View file

@ -7,6 +7,7 @@ Re-exports every typed node class so users can write
from dograh_sdk.typed.agent_node import AgentNode
from dograh_sdk.typed.end_call import EndCall
from dograh_sdk.typed.global_node import GlobalNode
from dograh_sdk.typed.paygent import Paygent
from dograh_sdk.typed.qa import Qa
from dograh_sdk.typed.start_call import StartCall
from dograh_sdk.typed.trigger import Trigger
@ -18,6 +19,7 @@ __all__ = [
"AgentNode",
"EndCall",
"GlobalNode",
"Paygent",
"Qa",
"StartCall",
"Trigger",

View file

@ -0,0 +1,56 @@
"""GENERATED — do not edit by hand.
Regenerate with `python -m dograh_sdk.codegen` against the target
Dograh backend. Source of truth: the backend's model-backed node-spec
catalog served from `/api/v1/node-types`.
"""
from __future__ import annotations
from dataclasses import dataclass, field
from typing import Any, ClassVar, Literal, Optional
from dograh_sdk.typed._base import TypedNode
@dataclass(kw_only=True)
class Paygent(TypedNode):
"""
Cost Tracking and Billing LLM hint: Paygent is a post-call usage-
tracking and billing integration. It does not participate in the
conversation graph and should not be connected to other nodes.
"""
type: ClassVar[str] = 'paygent'
paygent_api_key: str
"""
API key used to authenticate requests to the Paygent REST API.
"""
paygent_agent_id: str
"""
The agent identifier registered in your Paygent account.
"""
paygent_customer_id: str
"""
Your Paygent customer / organisation ID.
"""
name: str = 'Paygent'
"""
Short identifier for this Paygent configuration.
"""
paygent_enabled: bool = True
"""
When false, Dograh skips all Paygent tracking for this call.
"""
paygent_indicator: str = 'per-minute-call'
"""
The indicator event name sent at the end of the call (e.g. per-minute-
call).
"""

View file

@ -6,6 +6,7 @@
export { type AgentNode, agentNode } from "./agent-node.js";
export { type EndCall, endCall } from "./end-call.js";
export { type GlobalNode, globalNode } from "./global-node.js";
export { type Paygent, paygent } from "./paygent.js";
export { type Qa, qa } from "./qa.js";
export { type StartCall, startCall } from "./start-call.js";
export { type Trigger, trigger } from "./trigger.js";
@ -16,6 +17,7 @@ import type {
AgentNode,
EndCall,
GlobalNode,
Paygent,
Qa,
StartCall,
Trigger,
@ -24,4 +26,4 @@ import type {
} from "./index.js";
/** Discriminated union of every generated typed node. */
export type TypedNode = AgentNode | EndCall | GlobalNode | Qa | StartCall | Trigger | Tuner | Webhook;
export type TypedNode = AgentNode | EndCall | GlobalNode | Paygent | Qa | StartCall | Trigger | Tuner | Webhook;

View file

@ -0,0 +1,44 @@
// GENERATED — do not edit by hand.
//
// Regenerate with `npm run codegen` against the target Dograh backend.
// Source of truth: the backend's model-backed node-spec catalog served
// from `/api/v1/node-types`.
/**
* Cost Tracking and Billing
*
* LLM hint: Paygent is a post-call usage-tracking and billing integration. It does not participate in the conversation graph and should not be connected to other nodes.
*/
export interface Paygent {
type: "paygent";
/**
* Short identifier for this Paygent configuration.
*/
name?: string;
/**
* When false, Dograh skips all Paygent tracking for this call.
*/
paygent_enabled?: boolean;
/**
* API key used to authenticate requests to the Paygent REST API.
*/
paygent_api_key: string;
/**
* The agent identifier registered in your Paygent account.
*/
paygent_agent_id: string;
/**
* Your Paygent customer / organisation ID.
*/
paygent_customer_id: string;
/**
* The indicator event name sent at the end of the call (e.g. per-minute-call).
*/
paygent_indicator?: string;
}
/** Factory — sets `type` for you so you don't repeat the discriminator. */
export function paygent(input: Omit<Paygent, "type">): Paygent {
return { type: "paygent", ...input };
}