@roarkanalytics/sdk-mcp 4.39.0 → 4.40.0

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.
@@ -3303,11 +3303,11 @@ const EMBEDDED_METHODS = [
3303
3303
  params: [
3304
3304
  'jobDescription: string;',
3305
3305
  'name: string;',
3306
- 'tts?: { provider: string; voiceId: string; };',
3306
+ "tts?: { provider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; voiceId: string; };",
3307
3307
  'voice?: string;',
3308
3308
  ],
3309
3309
  response: '{ data: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }; }',
3310
- markdown: "## build\n\n`client.agent.build(jobDescription: string, name: string, tts?: { provider: string; voiceId: string; }, voice?: string): { data: object; }`\n\n**post** `/v1/agent/build`\n\nCreates a new Roark-hosted agent from a one-line job description. Roark authors the system prompt and hosts the config, so the agent is live and self-improvable from creation.\n\n### Parameters\n\n- `jobDescription: string`\n One-line description of what the agent should do. Roark authors the system prompt from this.\n\n- `name: string`\n Name of the agent\n\n- `tts?: { provider: string; voiceId: string; }`\n Optional provider voice the hosted agent speaks with\n\n- `voice?: string`\n Optional display name of the agent's voice. The authored prompt matches its delivery to it.\n\n### Returns\n\n- `{ data: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }; }`\n\n - `data: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.agent.build({ jobDescription: 'x', name: 'x' });\n\nconsole.log(response);\n```",
3310
+ markdown: "## build\n\n`client.agent.build(jobDescription: string, name: string, tts?: { provider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; voiceId: string; }, voice?: string): { data: object; }`\n\n**post** `/v1/agent/build`\n\nCreates a new Roark-hosted agent from a one-line job description. Roark authors the system prompt and hosts the config, so the agent is live and self-improvable from creation.\n\n### Parameters\n\n- `jobDescription: string`\n One-line description of what the agent should do. Roark authors the system prompt from this.\n\n- `name: string`\n Name of the agent\n\n- `tts?: { provider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; voiceId: string; }`\n Optional provider voice the hosted agent speaks with\n\n- `voice?: string`\n Optional display name of the agent's voice. The authored prompt matches its delivery to it.\n\n### Returns\n\n- `{ data: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }; }`\n\n - `data: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.agent.build({ jobDescription: 'x', name: 'x' });\n\nconsole.log(response);\n```",
3311
3311
  perLanguage: {
3312
3312
  typescript: {
3313
3313
  method: 'client.agent.build',
@@ -3697,6 +3697,215 @@ const EMBEDDED_METHODS = [
3697
3697
  },
3698
3698
  },
3699
3699
  },
3700
+ {
3701
+ name: 'list',
3702
+ endpoint: '/v1/agent/{agentId}/versions',
3703
+ httpMethod: 'get',
3704
+ summary: "List an agent's versions",
3705
+ description: 'The open draft first, if there is one, then published versions newest first. Paginated: pass `pagination.nextCursor` as `after` for the next page.',
3706
+ stainlessPath: '(resource) agentVersion > (method) list',
3707
+ qualified: 'client.agentVersion.list',
3708
+ params: ['agentId: string;', 'after?: string;', 'limit?: number;'],
3709
+ response: "{ data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: object[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: object[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }[]; pagination: { hasMore: boolean; nextCursor: string; total: number; }; }",
3710
+ markdown: "## list\n\n`client.agentVersion.list(agentId: string, after?: string, limit?: number): { data: object[]; pagination: object; }`\n\n**get** `/v1/agent/{agentId}/versions`\n\nThe open draft first, if there is one, then published versions newest first. Paginated: pass `pagination.nextCursor` as `after` for the next page.\n\n### Parameters\n\n- `agentId: string`\n\n- `after?: string`\n\n- `limit?: number`\n\n### Returns\n\n- `{ data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: object[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: object[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }[]; pagination: { hasMore: boolean; nextCursor: string; total: number; }; }`\n\n - `data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: { description: string; history: 'SHARED' | 'NONE'; note: string; once: boolean; to: string; }[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: { pinnedVersion: number; toolDefinitionId: string; }[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }[]`\n - `pagination: { hasMore: boolean; nextCursor: string; total: number; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst agentVersions = await client.agentVersion.list('agentId');\n\nconsole.log(agentVersions);\n```",
3711
+ perLanguage: {
3712
+ typescript: {
3713
+ method: 'client.agentVersion.list',
3714
+ example: "import Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark({\n bearerToken: process.env['ROARK_API_BEARER_TOKEN'], // This is the default and can be omitted\n});\n\nconst agentVersions = await client.agentVersion.list('agentId');\n\nconsole.log(agentVersions.data);",
3715
+ },
3716
+ python: {
3717
+ method: 'agent_version.list',
3718
+ example: 'import os\nfrom roark_analytics import Roark\n\nclient = Roark(\n bearer_token=os.environ.get("ROARK_API_BEARER_TOKEN"), # This is the default and can be omitted\n)\nagent_versions = client.agent_version.list(\n agent_id="agentId",\n)\nprint(agent_versions.data)',
3719
+ },
3720
+ http: {
3721
+ example: 'curl https://api.roark.ai/v1/agent/$AGENT_ID/versions \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN"',
3722
+ },
3723
+ },
3724
+ },
3725
+ {
3726
+ name: 'getById',
3727
+ endpoint: '/v1/agent/{agentId}/versions/{versionId}',
3728
+ httpMethod: 'get',
3729
+ summary: 'Get an agent version',
3730
+ description: 'One version with every setting, plus the issues that stop it from running, if any.',
3731
+ stainlessPath: '(resource) agentVersion > (method) getById',
3732
+ qualified: 'client.agentVersion.getByID',
3733
+ params: ['agentId: string;', 'versionId: string;'],
3734
+ response: "{ data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: object[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: object[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }; }",
3735
+ markdown: "## getById\n\n`client.agentVersion.getByID(agentId: string, versionId: string): { data: object; }`\n\n**get** `/v1/agent/{agentId}/versions/{versionId}`\n\nOne version with every setting, plus the issues that stop it from running, if any.\n\n### Parameters\n\n- `agentId: string`\n\n- `versionId: string`\n\n### Returns\n\n- `{ data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: object[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: object[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }; }`\n\n - `data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: { description: string; history: 'SHARED' | 'NONE'; note: string; once: boolean; to: string; }[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: { pinnedVersion: number; toolDefinitionId: string; }[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.agentVersion.getByID('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n agentId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(response);\n```",
3736
+ perLanguage: {
3737
+ typescript: {
3738
+ method: 'client.agentVersion.getByID',
3739
+ example: "import Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark({\n bearerToken: process.env['ROARK_API_BEARER_TOKEN'], // This is the default and can be omitted\n});\n\nconst response = await client.agentVersion.getByID('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n agentId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(response.data);",
3740
+ },
3741
+ python: {
3742
+ method: 'agent_version.get_by_id',
3743
+ example: 'import os\nfrom roark_analytics import Roark\n\nclient = Roark(\n bearer_token=os.environ.get("ROARK_API_BEARER_TOKEN"), # This is the default and can be omitted\n)\nresponse = client.agent_version.get_by_id(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n agent_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.data)',
3744
+ },
3745
+ http: {
3746
+ example: 'curl https://api.roark.ai/v1/agent/$AGENT_ID/versions/$VERSION_ID \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN"',
3747
+ },
3748
+ },
3749
+ },
3750
+ {
3751
+ name: 'restore',
3752
+ endpoint: '/v1/agent/{agentId}/versions/{versionId}/restore',
3753
+ httpMethod: 'post',
3754
+ summary: 'Restore an agent version',
3755
+ description: "Roll back: publishes a new version, numbered after the latest, with this version's settings and makes it live. History stays append-only. An open draft started before this is kept but can no longer be published (409 `agent_draft_base_changed`); discard it or start a new one. Pass `expectedLiveVersionId` to be refused (409 `agent_live_version_changed`) if another version went live since you read it.",
3756
+ stainlessPath: '(resource) agentVersion > (method) restore',
3757
+ qualified: 'client.agentVersion.restore',
3758
+ params: [
3759
+ 'agentId: string;',
3760
+ 'versionId: string;',
3761
+ 'expectedLiveVersionId?: string;',
3762
+ 'summary?: string;',
3763
+ ],
3764
+ response: "{ data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: object[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: object[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }; }",
3765
+ markdown: "## restore\n\n`client.agentVersion.restore(agentId: string, versionId: string, expectedLiveVersionId?: string, summary?: string): { data: object; }`\n\n**post** `/v1/agent/{agentId}/versions/{versionId}/restore`\n\nRoll back: publishes a new version, numbered after the latest, with this version's settings and makes it live. History stays append-only. An open draft started before this is kept but can no longer be published (409 `agent_draft_base_changed`); discard it or start a new one. Pass `expectedLiveVersionId` to be refused (409 `agent_live_version_changed`) if another version went live since you read it.\n\n### Parameters\n\n- `agentId: string`\n\n- `versionId: string`\n\n- `expectedLiveVersionId?: string`\n The live version when you decided to restore. When sent, the restore is refused with 409 if another version went live since.\n\n- `summary?: string`\n\n### Returns\n\n- `{ data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: object[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: object[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }; }`\n\n - `data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: { description: string; history: 'SHARED' | 'NONE'; note: string; once: boolean; to: string; }[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: { pinnedVersion: number; toolDefinitionId: string; }[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.agentVersion.restore('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n agentId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(response);\n```",
3766
+ perLanguage: {
3767
+ typescript: {
3768
+ method: 'client.agentVersion.restore',
3769
+ example: "import Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark({\n bearerToken: process.env['ROARK_API_BEARER_TOKEN'], // This is the default and can be omitted\n});\n\nconst response = await client.agentVersion.restore('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n agentId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(response.data);",
3770
+ },
3771
+ python: {
3772
+ method: 'agent_version.restore',
3773
+ example: 'import os\nfrom roark_analytics import Roark\n\nclient = Roark(\n bearer_token=os.environ.get("ROARK_API_BEARER_TOKEN"), # This is the default and can be omitted\n)\nresponse = client.agent_version.restore(\n version_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n agent_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.data)',
3774
+ },
3775
+ http: {
3776
+ example: 'curl https://api.roark.ai/v1/agent/$AGENT_ID/versions/$VERSION_ID/restore \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN"',
3777
+ },
3778
+ },
3779
+ },
3780
+ {
3781
+ name: 'get',
3782
+ endpoint: '/v1/agent/{agentId}/draft',
3783
+ httpMethod: 'get',
3784
+ summary: "Get an agent's draft",
3785
+ description: "The agent's open draft, with the issues that would stop it from being published.",
3786
+ stainlessPath: '(resource) agentDraft > (method) get',
3787
+ qualified: 'client.agentDraft.get',
3788
+ params: ['agentId: string;'],
3789
+ response: "{ data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: object[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: object[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }; }",
3790
+ markdown: "## get\n\n`client.agentDraft.get(agentId: string): { data: object; }`\n\n**get** `/v1/agent/{agentId}/draft`\n\nThe agent's open draft, with the issues that would stop it from being published.\n\n### Parameters\n\n- `agentId: string`\n\n### Returns\n\n- `{ data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: object[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: object[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }; }`\n\n - `data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: { description: string; history: 'SHARED' | 'NONE'; note: string; once: boolean; to: string; }[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: { pinnedVersion: number; toolDefinitionId: string; }[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst agentDraft = await client.agentDraft.get('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(agentDraft);\n```",
3791
+ perLanguage: {
3792
+ typescript: {
3793
+ method: 'client.agentDraft.get',
3794
+ example: "import Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark({\n bearerToken: process.env['ROARK_API_BEARER_TOKEN'], // This is the default and can be omitted\n});\n\nconst agentDraft = await client.agentDraft.get('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(agentDraft.data);",
3795
+ },
3796
+ python: {
3797
+ method: 'agent_draft.get',
3798
+ example: 'import os\nfrom roark_analytics import Roark\n\nclient = Roark(\n bearer_token=os.environ.get("ROARK_API_BEARER_TOKEN"), # This is the default and can be omitted\n)\nagent_draft = client.agent_draft.get(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(agent_draft.data)',
3799
+ },
3800
+ http: {
3801
+ example: 'curl https://api.roark.ai/v1/agent/$AGENT_ID/draft \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN"',
3802
+ },
3803
+ },
3804
+ },
3805
+ {
3806
+ name: 'create',
3807
+ endpoint: '/v1/agent/{agentId}/draft',
3808
+ httpMethod: 'post',
3809
+ summary: 'Start a draft',
3810
+ description: "Opens the agent's one shared draft, a copy of the live version or of an older published version. Fails with 409 when a draft is already open.",
3811
+ stainlessPath: '(resource) agentDraft > (method) create',
3812
+ qualified: 'client.agentDraft.create',
3813
+ params: ['agentId: string;', 'fromVersionId?: string;'],
3814
+ response: "{ data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: object[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: object[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }; }",
3815
+ markdown: "## create\n\n`client.agentDraft.create(agentId: string, fromVersionId?: string): { data: object; }`\n\n**post** `/v1/agent/{agentId}/draft`\n\nOpens the agent's one shared draft, a copy of the live version or of an older published version. Fails with 409 when a draft is already open.\n\n### Parameters\n\n- `agentId: string`\n\n- `fromVersionId?: string`\n Start from this published version instead of the live one.\n\n### Returns\n\n- `{ data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: object[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: object[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }; }`\n\n - `data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: { description: string; history: 'SHARED' | 'NONE'; note: string; once: boolean; to: string; }[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: { pinnedVersion: number; toolDefinitionId: string; }[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst agentDraft = await client.agentDraft.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(agentDraft);\n```",
3816
+ perLanguage: {
3817
+ typescript: {
3818
+ method: 'client.agentDraft.create',
3819
+ example: "import Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark({\n bearerToken: process.env['ROARK_API_BEARER_TOKEN'], // This is the default and can be omitted\n});\n\nconst agentDraft = await client.agentDraft.create('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(agentDraft.data);",
3820
+ },
3821
+ python: {
3822
+ method: 'agent_draft.create',
3823
+ example: 'import os\nfrom roark_analytics import Roark\n\nclient = Roark(\n bearer_token=os.environ.get("ROARK_API_BEARER_TOKEN"), # This is the default and can be omitted\n)\nagent_draft = client.agent_draft.create(\n agent_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(agent_draft.data)',
3824
+ },
3825
+ http: {
3826
+ example: 'curl https://api.roark.ai/v1/agent/$AGENT_ID/draft \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN"',
3827
+ },
3828
+ },
3829
+ },
3830
+ {
3831
+ name: 'update',
3832
+ endpoint: '/v1/agent/{agentId}/draft',
3833
+ httpMethod: 'patch',
3834
+ summary: 'Edit the draft',
3835
+ description: 'Changes settings on the draft. Omitted settings stay as they are. Pass the revision you read as expectedRevision to fail with 409 if anyone edited the draft since, instead of applying on top of their edit.',
3836
+ stainlessPath: '(resource) agentDraft > (method) update',
3837
+ qualified: 'client.agentDraft.update',
3838
+ params: [
3839
+ 'agentId: string;',
3840
+ "settings: { backgroundNoise?: string; backgroundNoiseUrl?: string; backgroundNoiseVolume?: number; callMaxDurationSeconds?: number; callSilenceTimeoutSeconds?: number; chatInactivityTimeoutSeconds?: number; chatMaxDurationSeconds?: number; endCallGoodbyeMessage?: string; endDetectionPhrases?: string[]; endDetectionReasons?: string[]; firstMessage?: string; firstMessageAudioUrl?: string; firstMessageMode?: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount?: number; idleMessages?: string[]; idleTimeoutSeconds?: number; interruptionMode?: 'ALLOW' | 'BLOCK'; language?: string; llmBackendModel?: string; llmMaxTokens?: number; llmModel?: string; llmProvider?: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature?: number; llmVoice?: string; modalities?: 'call' | 'chat'[]; sttEndpointingMs?: number; sttKeyterms?: string[]; sttModel?: string; sttProvider?: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat?: boolean; sttTurnDetection?: 'pipeline' | 'provider'; subAgents?: { handoffs: object[]; isInitial: boolean; key: 'main' | string; name: string; systemPrompt: string; tools: object[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; vadStartSecs?: number; vadStopSecs?: number; };",
3841
+ 'expectedRevision?: number;',
3842
+ ],
3843
+ response: "{ data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: object[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: object[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }; }",
3844
+ markdown: "## update\n\n`client.agentDraft.update(agentId: string, settings: { backgroundNoise?: string; backgroundNoiseUrl?: string; backgroundNoiseVolume?: number; callMaxDurationSeconds?: number; callSilenceTimeoutSeconds?: number; chatInactivityTimeoutSeconds?: number; chatMaxDurationSeconds?: number; endCallGoodbyeMessage?: string; endDetectionPhrases?: string[]; endDetectionReasons?: string[]; firstMessage?: string; firstMessageAudioUrl?: string; firstMessageMode?: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount?: number; idleMessages?: string[]; idleTimeoutSeconds?: number; interruptionMode?: 'ALLOW' | 'BLOCK'; language?: string; llmBackendModel?: string; llmMaxTokens?: number; llmModel?: string; llmProvider?: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature?: number; llmVoice?: string; modalities?: 'call' | 'chat'[]; sttEndpointingMs?: number; sttKeyterms?: string[]; sttModel?: string; sttProvider?: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat?: boolean; sttTurnDetection?: 'pipeline' | 'provider'; subAgents?: { handoffs: object[]; isInitial: boolean; key: 'main' | string; name: string; systemPrompt: string; tools: object[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; vadStartSecs?: number; vadStopSecs?: number; }, expectedRevision?: number): { data: object; }`\n\n**patch** `/v1/agent/{agentId}/draft`\n\nChanges settings on the draft. Omitted settings stay as they are. Pass the revision you read as expectedRevision to fail with 409 if anyone edited the draft since, instead of applying on top of their edit.\n\n### Parameters\n\n- `agentId: string`\n\n- `settings: { backgroundNoise?: string; backgroundNoiseUrl?: string; backgroundNoiseVolume?: number; callMaxDurationSeconds?: number; callSilenceTimeoutSeconds?: number; chatInactivityTimeoutSeconds?: number; chatMaxDurationSeconds?: number; endCallGoodbyeMessage?: string; endDetectionPhrases?: string[]; endDetectionReasons?: string[]; firstMessage?: string; firstMessageAudioUrl?: string; firstMessageMode?: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount?: number; idleMessages?: string[]; idleTimeoutSeconds?: number; interruptionMode?: 'ALLOW' | 'BLOCK'; language?: string; llmBackendModel?: string; llmMaxTokens?: number; llmModel?: string; llmProvider?: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature?: number; llmVoice?: string; modalities?: 'call' | 'chat'[]; sttEndpointingMs?: number; sttKeyterms?: string[]; sttModel?: string; sttProvider?: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat?: boolean; sttTurnDetection?: 'pipeline' | 'provider'; subAgents?: { handoffs: object[]; isInitial: boolean; key: 'main' | string; name: string; systemPrompt: string; tools: object[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; vadStartSecs?: number; vadStopSecs?: number; }`\n The settings to change. Omitted settings stay as they are; null clears one to the runtime default. subAgents replaces every speaker and must include `main`.\n\n- `expectedRevision?: number`\n The draft's revision when you read it. When sent, the edit is refused if the draft changed since; when omitted, it applies on top of the latest edit.\n\n### Returns\n\n- `{ data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: object[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: object[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }; }`\n\n - `data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: { description: string; history: 'SHARED' | 'NONE'; note: string; once: boolean; to: string; }[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: { pinnedVersion: number; toolDefinitionId: string; }[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst agentDraft = await client.agentDraft.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n settings: {},\n});\n\nconsole.log(agentDraft);\n```",
3845
+ perLanguage: {
3846
+ typescript: {
3847
+ method: 'client.agentDraft.update',
3848
+ example: "import Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark({\n bearerToken: process.env['ROARK_API_BEARER_TOKEN'], // This is the default and can be omitted\n});\n\nconst agentDraft = await client.agentDraft.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n settings: {},\n});\n\nconsole.log(agentDraft.data);",
3849
+ },
3850
+ python: {
3851
+ method: 'agent_draft.update',
3852
+ example: 'import os\nfrom roark_analytics import Roark\n\nclient = Roark(\n bearer_token=os.environ.get("ROARK_API_BEARER_TOKEN"), # This is the default and can be omitted\n)\nagent_draft = client.agent_draft.update(\n agent_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n settings={},\n)\nprint(agent_draft.data)',
3853
+ },
3854
+ http: {
3855
+ example: 'curl https://api.roark.ai/v1/agent/$AGENT_ID/draft \\\n -X PATCH \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN" \\\n -d \'{\n "settings": {}\n }\'',
3856
+ },
3857
+ },
3858
+ },
3859
+ {
3860
+ name: 'delete',
3861
+ endpoint: '/v1/agent/{agentId}/draft',
3862
+ httpMethod: 'delete',
3863
+ summary: 'Discard the draft',
3864
+ description: 'Throws the open draft away and returns it. The live version is unchanged.',
3865
+ stainlessPath: '(resource) agentDraft > (method) delete',
3866
+ qualified: 'client.agentDraft.delete',
3867
+ params: ['agentId: string;'],
3868
+ response: "{ data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: object[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: object[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }; }",
3869
+ markdown: "## delete\n\n`client.agentDraft.delete(agentId: string): { data: object; }`\n\n**delete** `/v1/agent/{agentId}/draft`\n\nThrows the open draft away and returns it. The live version is unchanged.\n\n### Parameters\n\n- `agentId: string`\n\n### Returns\n\n- `{ data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: object[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: object[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }; }`\n\n - `data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: { description: string; history: 'SHARED' | 'NONE'; note: string; once: boolean; to: string; }[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: { pinnedVersion: number; toolDefinitionId: string; }[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst agentDraft = await client.agentDraft.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(agentDraft);\n```",
3870
+ perLanguage: {
3871
+ typescript: {
3872
+ method: 'client.agentDraft.delete',
3873
+ example: "import Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark({\n bearerToken: process.env['ROARK_API_BEARER_TOKEN'], // This is the default and can be omitted\n});\n\nconst agentDraft = await client.agentDraft.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(agentDraft.data);",
3874
+ },
3875
+ python: {
3876
+ method: 'agent_draft.delete',
3877
+ example: 'import os\nfrom roark_analytics import Roark\n\nclient = Roark(\n bearer_token=os.environ.get("ROARK_API_BEARER_TOKEN"), # This is the default and can be omitted\n)\nagent_draft = client.agent_draft.delete(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(agent_draft.data)',
3878
+ },
3879
+ http: {
3880
+ example: 'curl https://api.roark.ai/v1/agent/$AGENT_ID/draft \\\n -X DELETE \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN"',
3881
+ },
3882
+ },
3883
+ },
3884
+ {
3885
+ name: 'publish',
3886
+ endpoint: '/v1/agent/{agentId}/draft/publish',
3887
+ httpMethod: 'post',
3888
+ summary: 'Publish the draft',
3889
+ description: 'Makes the draft the live version, numbered v1, v2, ... Fails with 409 if the draft was edited after expectedRevision, if another version was published since the draft started, or if it changes nothing; with 400 and the issues if the version cannot run.',
3890
+ stainlessPath: '(resource) agentDraft > (method) publish',
3891
+ qualified: 'client.agentDraft.publish',
3892
+ params: ['agentId: string;', 'expectedRevision: number;', 'summary?: string;'],
3893
+ response: "{ data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: object[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: object[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }; }",
3894
+ markdown: "## publish\n\n`client.agentDraft.publish(agentId: string, expectedRevision: number, summary?: string): { data: object; }`\n\n**post** `/v1/agent/{agentId}/draft/publish`\n\nMakes the draft the live version, numbered v1, v2, ... Fails with 409 if the draft was edited after expectedRevision, if another version was published since the draft started, or if it changes nothing; with 400 and the issues if the version cannot run.\n\n### Parameters\n\n- `agentId: string`\n\n- `expectedRevision: number`\n The draft revision you reviewed.\n\n- `summary?: string`\n What changed.\n\n### Returns\n\n- `{ data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: object[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: object[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }; }`\n\n - `data: { id: string; agentId: string; backgroundNoise: string; backgroundNoiseUrl: string; backgroundNoiseVolume: number; baseVersionId: string; callMaxDurationSeconds: number; callSilenceTimeoutSeconds: number; chatInactivityTimeoutSeconds: number; chatMaxDurationSeconds: number; createdAt: string; createdById: string; createdByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; endCallGoodbyeMessage: string; endDetectionPhrases: string[]; endDetectionReasons: string[]; firstMessage: string; firstMessageAudioUrl: string; firstMessageMode: 'SPEAK_TEXT' | 'PLAY_AUDIO' | 'WAIT_FOR_CALLER'; idleMaxCount: number; idleMessages: string[]; idleTimeoutSeconds: number; interruptionMode: 'ALLOW' | 'BLOCK'; language: string; llmBackendModel: string; llmMaxTokens: number; llmModel: string; llmProvider: 'OPENAI' | 'ANTHROPIC' | 'GOOGLE' | 'XAI' | 'ULTRAVOX' | 'AWS' | 'ELEVENLABS'; llmTemperature: number; llmVoice: string; modalities: 'call' | 'chat'[]; publishedAt: string; publishedById: string; publishedByType: 'USER' | 'API' | 'CONFIG' | 'AUTOIMPROVE' | 'INTEGRATION' | 'SYSTEM'; restoredFromVersionId: string; revision: number; status: 'DRAFT' | 'PUBLISHED' | 'DISCARDED'; sttEndpointingMs: number; sttKeyterms: string[]; sttModel: string; sttProvider: 'DEEPGRAM' | 'OPENAI_WHISPER' | 'SPEECHMATICS' | 'ASSEMBLYAI' | 'ELEVENLABS'; sttSmartFormat: boolean; sttTurnDetection: 'pipeline' | 'provider'; subAgents: { handoffs: { description: string; history: 'SHARED' | 'NONE'; note: string; once: boolean; to: string; }[]; isInitial: boolean; key: string; name: string; systemPrompt: string; tools: { pinnedVersion: number; toolDefinitionId: string; }[]; ttsModel: string; ttsProvider: 'CARTESIA' | 'ELEVENLABS' | 'OPENAI' | 'RIME'; ttsSimilarityBoost: number; ttsSpeed: number; ttsStability: number; ttsVoiceId: string; }[]; summary: string; updatedAt: string; vadStartSecs: number; vadStopSecs: number; versionNumber: number; issues?: { field: string; message: string; }[]; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.agentDraft.publish('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n expectedRevision: 1,\n});\n\nconsole.log(response);\n```",
3895
+ perLanguage: {
3896
+ typescript: {
3897
+ method: 'client.agentDraft.publish',
3898
+ example: "import Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark({\n bearerToken: process.env['ROARK_API_BEARER_TOKEN'], // This is the default and can be omitted\n});\n\nconst response = await client.agentDraft.publish('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n expectedRevision: 1,\n});\n\nconsole.log(response.data);",
3899
+ },
3900
+ python: {
3901
+ method: 'agent_draft.publish',
3902
+ example: 'import os\nfrom roark_analytics import Roark\n\nclient = Roark(\n bearer_token=os.environ.get("ROARK_API_BEARER_TOKEN"), # This is the default and can be omitted\n)\nresponse = client.agent_draft.publish(\n agent_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n expected_revision=1,\n)\nprint(response.data)',
3903
+ },
3904
+ http: {
3905
+ example: 'curl https://api.roark.ai/v1/agent/$AGENT_ID/draft/publish \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN" \\\n -d \'{\n "expectedRevision": 1\n }\'',
3906
+ },
3907
+ },
3908
+ },
3700
3909
  {
3701
3910
  name: 'list',
3702
3911
  endpoint: '/v1/http-request-definition',