@roarkanalytics/sdk-mcp 2.34.0 → 3.0.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.
@@ -130,8 +130,8 @@ const EMBEDDED_METHODS: MethodEntry[] = [
130
130
  "interfaceType: 'PHONE' | 'WEB';",
131
131
  'recordingUrl: string;',
132
132
  'startedAt: string;',
133
- 'agent?: { roarkId: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; } | { name: string; customId?: string; description?: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; } | { customId: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; };',
134
- 'agents?: { roarkId: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; } | { name: string; customId?: string; description?: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; } | { customId: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; }[];',
133
+ 'agent?: { roarkId: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; };',
134
+ 'agents?: { roarkId: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; }[];',
135
135
  'customer?: { phoneNumberE164: string; label?: string; };',
136
136
  'customers?: { phoneNumberE164: string; label?: string; }[];',
137
137
  'endedStatus?: string;',
@@ -146,7 +146,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
146
146
  response:
147
147
  "{ data: { id: string; agents: { id: string; endpoint?: object; }[]; callDirection: 'INBOUND' | 'OUTBOUND'; createdAt: string; customers: { label?: string; phoneNumberE164?: string; }[]; externalId: string; projectId: string; startedAt: string; status: 'RINGING' | 'IN_PROGRESS' | 'ENDED'; }; }",
148
148
  markdown:
149
- "## create\n\n`client.call.create(callDirection: 'INBOUND' | 'OUTBOUND', interfaceType: 'PHONE' | 'WEB', recordingUrl: string, startedAt: string, agent?: { roarkId: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; } | { name: string; customId?: string; description?: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; } | { customId: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; }, agents?: { roarkId: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; } | { name: string; customId?: string; description?: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; } | { customId: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; }[], customer?: { phoneNumberE164: string; label?: string; }, customers?: { phoneNumberE164: string; label?: string; }[], endedStatus?: string, externalId?: string, livekitRoomId?: string, properties?: object, stereoRecordingUrl?: string, toolInvocations?: { name: string; parameters: object; result: string | object; startOffsetMs: number; agent?: { customId?: string; roarkId?: string; }; description?: string; endOffsetMs?: number; }[], transcript?: { endOffsetMs: number; role: 'AGENT'; startOffsetMs: number; text: string; agent?: { customId?: string; roarkId?: string; }; languageCode?: string; payload?: object; } | { endOffsetMs: number; role: 'CUSTOMER'; startOffsetMs: number; text: string; customer?: { label?: string; phoneNumberE164?: string; }; languageCode?: string; payload?: object; }[], vapiCallId?: string): { data: object; }`\n\n**post** `/v1/call`\n\nCreate a new call with recording, transcript, agents, and customers\n\n### Parameters\n\n- `callDirection: 'INBOUND' | 'OUTBOUND'`\n Direction of the call (INBOUND or OUTBOUND)\n\n- `interfaceType: 'PHONE' | 'WEB'`\n Interface type of the call (PHONE or WEB)\n\n- `recordingUrl: string`\n URL of source recording (must be an accessible WAV, MP3, MP4, or OGG file). Can be a signed URL.\n\n- `startedAt: string`\n When the call started (ISO 8601 format)\n\n- `agent?: { roarkId: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; } | { name: string; customId?: string; description?: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; } | { customId: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; }`\n Single agent participating in the call. Use this for simpler API when you have only one agent.\n\n- `agents?: { roarkId: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; } | { name: string; customId?: string; description?: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; } | { customId: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; }[]`\n Agents participating in the call. Each agent requires identification and prompt information.\n\n- `customer?: { phoneNumberE164: string; label?: string; }`\n Single customer participating in the call. Use this for simpler API when you have only one customer.\n - `phoneNumberE164: string`\n Customer phone number in E.164 format (e.g., +14155551234)\n - `label?: string`\n Label to identify this customer in the transcript (e.g., \"speaker-01\", \"speaker-02\")\n\n- `customers?: { phoneNumberE164: string; label?: string; }[]`\n Customers participating in the call.\n\n- `endedStatus?: string`\n High-level call end status, indicating how the call terminated\n\n- `externalId?: string`\n A stable identifier from your own system (e.g. session ID, conversation ID) used to correlate this call with OpenTelemetry traces. Set the same value as a `roark.external_id` span or resource attribute on your traces and the matching trace will be linked automatically. Must be unique within a project.\n\n- `livekitRoomId?: string`\n The LiveKit Cloud room ID to link this call with OpenTelemetry trace data from LiveKit. Used for matching calls with OTEL traces.\n\n- `properties?: object`\n Custom properties to include with the call. These can be used for filtering and will show in the call details page\n\n- `stereoRecordingUrl?: string`\n URL of source stereo recording. Must be accessible. Can be a signed URL. Supported formats: WAV, MP3, MP4, OGG.\n\n- `toolInvocations?: { name: string; parameters: object; result: string | object; startOffsetMs: number; agent?: { customId?: string; roarkId?: string; }; description?: string; endOffsetMs?: number; }[]`\n List of tool invocations made during the call\n\n- `transcript?: { endOffsetMs: number; role: 'AGENT'; startOffsetMs: number; text: string; agent?: { customId?: string; roarkId?: string; }; languageCode?: string; payload?: object; } | { endOffsetMs: number; role: 'CUSTOMER'; startOffsetMs: number; text: string; customer?: { label?: string; phoneNumberE164?: string; }; languageCode?: string; payload?: object; }[]`\n List of transcript entries made during the call\n\n- `vapiCallId?: string`\n The Vapi call ID (UUID) to link this call with OpenTelemetry trace data from Vapi. Used for matching calls with OTEL traces.\n\n### Returns\n\n- `{ data: { id: string; agents: { id: string; endpoint?: object; }[]; callDirection: 'INBOUND' | 'OUTBOUND'; createdAt: string; customers: { label?: string; phoneNumberE164?: string; }[]; externalId: string; projectId: string; startedAt: string; status: 'RINGING' | 'IN_PROGRESS' | 'ENDED'; }; }`\n\n - `data: { id: string; agents: { id: string; endpoint?: { id: string; environment: string; phoneNumberE164?: string; }; }[]; callDirection: 'INBOUND' | 'OUTBOUND'; createdAt: string; customers: { label?: string; phoneNumberE164?: string; }[]; externalId: string; projectId: string; startedAt: string; status: 'RINGING' | 'IN_PROGRESS' | 'ENDED'; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst call = await client.call.create({\n callDirection: 'INBOUND',\n interfaceType: 'PHONE',\n recordingUrl: 'https://example.com',\n startedAt: 'startedAt',\n});\n\nconsole.log(call);\n```",
149
+ "## create\n\n`client.call.create(callDirection: 'INBOUND' | 'OUTBOUND', interfaceType: 'PHONE' | 'WEB', recordingUrl: string, startedAt: string, agent?: { roarkId: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; }, agents?: { roarkId: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; }[], customer?: { phoneNumberE164: string; label?: string; }, customers?: { phoneNumberE164: string; label?: string; }[], endedStatus?: string, externalId?: string, livekitRoomId?: string, properties?: object, stereoRecordingUrl?: string, toolInvocations?: { name: string; parameters: object; result: string | object; startOffsetMs: number; agent?: { customId?: string; roarkId?: string; }; description?: string; endOffsetMs?: number; }[], transcript?: { endOffsetMs: number; role: 'AGENT'; startOffsetMs: number; text: string; agent?: { customId?: string; roarkId?: string; }; languageCode?: string; payload?: object; } | { endOffsetMs: number; role: 'CUSTOMER'; startOffsetMs: number; text: string; customer?: { label?: string; phoneNumberE164?: string; }; languageCode?: string; payload?: object; }[], vapiCallId?: string): { data: object; }`\n\n**post** `/v1/call`\n\nCreate a new call with recording, transcript, agents, and customers\n\n### Parameters\n\n- `callDirection: 'INBOUND' | 'OUTBOUND'`\n Direction of the call (INBOUND or OUTBOUND)\n\n- `interfaceType: 'PHONE' | 'WEB'`\n Interface type of the call (PHONE or WEB)\n\n- `recordingUrl: string`\n URL of source recording (must be an accessible WAV, MP3, MP4, or OGG file). Can be a signed URL.\n\n- `startedAt: string`\n When the call started (ISO 8601 format)\n\n- `agent?: { roarkId: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; }`\n Single agent participating in the call. Use this for simpler API when you have only one agent.\n\n- `agents?: { roarkId: string; endpoint?: { id: string; } | { type: string; value: string; direction?: string; }; prompt?: { resolvedPrompt: string; }; }[]`\n Agents participating in the call. Each agent requires identification and prompt information.\n\n- `customer?: { phoneNumberE164: string; label?: string; }`\n Single customer participating in the call. Use this for simpler API when you have only one customer.\n\n- `customers?: { phoneNumberE164: string; label?: string; }[]`\n Customers participating in the call.\n\n- `endedStatus?: string`\n High-level call end status, indicating how the call terminated\n\n- `externalId?: string`\n A stable identifier from your own system (e.g. session ID, conversation ID) used to correlate this call with OpenTelemetry traces. Set the same value as a `roark.external_id` span or resource attribute on your traces and the matching trace will be linked automatically. Must be unique within a project.\n\n- `livekitRoomId?: string`\n The LiveKit Cloud room ID to link this call with OpenTelemetry trace data from LiveKit. Used for matching calls with OTEL traces.\n\n- `properties?: object`\n Custom properties to include with the call. These can be used for filtering and will show in the call details page\n\n- `stereoRecordingUrl?: string`\n URL of source stereo recording. Must be accessible. Can be a signed URL. Supported formats: WAV, MP3, MP4, OGG.\n\n- `toolInvocations?: { name: string; parameters: object; result: string | object; startOffsetMs: number; agent?: { customId?: string; roarkId?: string; }; description?: string; endOffsetMs?: number; }[]`\n List of tool invocations made during the call\n\n- `transcript?: { endOffsetMs: number; role: 'AGENT'; startOffsetMs: number; text: string; agent?: { customId?: string; roarkId?: string; }; languageCode?: string; payload?: object; } | { endOffsetMs: number; role: 'CUSTOMER'; startOffsetMs: number; text: string; customer?: { label?: string; phoneNumberE164?: string; }; languageCode?: string; payload?: object; }[]`\n List of transcript entries made during the call\n\n- `vapiCallId?: string`\n The Vapi call ID (UUID) to link this call with OpenTelemetry trace data from Vapi. Used for matching calls with OTEL traces.\n\n### Returns\n\n- `{ data: { id: string; agents: { id: string; endpoint?: object; }[]; callDirection: 'INBOUND' | 'OUTBOUND'; createdAt: string; customers: { label?: string; phoneNumberE164?: string; }[]; externalId: string; projectId: string; startedAt: string; status: 'RINGING' | 'IN_PROGRESS' | 'ENDED'; }; }`\n\n - `data: { id: string; agents: { id: string; endpoint?: { id: string; environment: string; phoneNumberE164?: string; }; }[]; callDirection: 'INBOUND' | 'OUTBOUND'; createdAt: string; customers: { label?: string; phoneNumberE164?: string; }[]; externalId: string; projectId: string; startedAt: string; status: 'RINGING' | 'IN_PROGRESS' | 'ENDED'; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst call = await client.call.create({\n callDirection: 'INBOUND',\n interfaceType: 'PHONE',\n recordingUrl: 'https://example.com',\n startedAt: 'startedAt',\n});\n\nconsole.log(call);\n```",
150
150
  perLanguage: {
151
151
  typescript: {
152
152
  method: 'client.call.create',
@@ -207,7 +207,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
207
207
  response:
208
208
  '{ data: { status: string; averageCategoricalSentiment?: string; averageSentiment?: number; commonEmotion?: string; }; }',
209
209
  markdown:
210
- "## listSentimentRuns\n\n`client.call.listSentimentRuns(callId: string): { data: object; }`\n\n**get** `/v1/call/{callId}/sentiment-run`\n\nFetch detailed sentiment analysis results for a specific call, including emotional tone, key phrases, and sentiment scores.\n\n### Parameters\n\n- `callId: string`\n ID of the call to fetch sentiment run for\n\n### Returns\n\n- `{ data: { status: string; averageCategoricalSentiment?: string; averageSentiment?: number; commonEmotion?: string; }; }`\n\n - `data: { status: string; averageCategoricalSentiment?: string; averageSentiment?: number; commonEmotion?: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.call.listSentimentRuns('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
210
+ "## listSentimentRuns\n\n`client.call.listSentimentRuns(callId: string): { data: object; }`\n\n**get** `/v1/call/{callId}/sentiment-run`\n\nFetch detailed sentiment analysis results for a specific call, including emotional tone, key phrases, and sentiment scores.\n\n### Parameters\n\n- `callId: string`\n\n### Returns\n\n- `{ data: { status: string; averageCategoricalSentiment?: string; averageSentiment?: number; commonEmotion?: string; }; }`\n\n - `data: { status: string; averageCategoricalSentiment?: string; averageSentiment?: number; commonEmotion?: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.call.listSentimentRuns('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
211
211
  perLanguage: {
212
212
  typescript: {
213
213
  method: 'client.call.listSentimentRuns',
@@ -238,7 +238,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
238
238
  response:
239
239
  "{ data: { description: string; metricDefinitionId: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; values: { captureStatus: 'SUCCESS' | 'NOT_APPLICABLE' | 'DATA_MISSING' | 'ERROR'; computedAt: string; context: 'CALL' | 'SEGMENT' | 'SEGMENT_RANGE'; callId?: string; chatId?: string; confidence?: number; errorMessage?: string; fromSegment?: object; participantRole?: 'agent' | 'customer'; policyIds?: string[]; segment?: object; toSegment?: object; value?: number | boolean | string; valueReasoning?: string; } | { captureStatus: 'SUCCESS' | 'NOT_APPLICABLE' | 'DATA_MISSING' | 'ERROR'; computedAt: string; context: 'CALL' | 'SEGMENT' | 'SEGMENT_RANGE'; callId?: string; chatId?: string; confidence?: number; errorMessage?: string; fromSegment?: object; participantRole?: 'agent' | 'customer'; policyIds?: string[]; propertyVerdicts?: object[]; segment?: object; toSegment?: object; value?: number | boolean | string; valueReasoning?: string; }[]; unit?: { name: string; symbol: string; }; }[]; }",
240
240
  markdown:
241
- "## listMetrics\n\n`client.call.listMetrics(callId: string, flatten?: string, status?: 'success' | 'all'): { data: object[]; }`\n\n**get** `/v1/call/{callId}/metrics`\n\nFetch all call-level metrics for a specific call, including both system-generated and custom metrics. Only returns rows from the **latest** metric-collection job per metric — if the same metric has been recomputed, prior runs are excluded and remain in the metric history. By default returns only successfully computed metrics; pass `?status=all` to also include rows that resolved as NOT_APPLICABLE / DATA_MISSING / ERROR (the `value` field is omitted on those entries — check `captureStatus`).\n\n### Parameters\n\n- `callId: string`\n\n- `flatten?: string`\n Whether to return a flat list instead of grouped by metric definition (default: false)\n\n- `status?: 'success' | 'all'`\n Filter metrics by capture status. `success` (default) returns only successfully computed metrics — backwards-compatible with the historical behavior. `all` also returns NOT_APPLICABLE / DATA_MISSING / ERROR rows (with `value` omitted), so clients can distinguish \"still computing\" from \"computed but no value\" and exit retry loops correctly.\n\n### Returns\n\n- `{ data: { description: string; metricDefinitionId: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; values: { captureStatus: 'SUCCESS' | 'NOT_APPLICABLE' | 'DATA_MISSING' | 'ERROR'; computedAt: string; context: 'CALL' | 'SEGMENT' | 'SEGMENT_RANGE'; callId?: string; chatId?: string; confidence?: number; errorMessage?: string; fromSegment?: object; participantRole?: 'agent' | 'customer'; policyIds?: string[]; segment?: object; toSegment?: object; value?: number | boolean | string; valueReasoning?: string; } | { captureStatus: 'SUCCESS' | 'NOT_APPLICABLE' | 'DATA_MISSING' | 'ERROR'; computedAt: string; context: 'CALL' | 'SEGMENT' | 'SEGMENT_RANGE'; callId?: string; chatId?: string; confidence?: number; errorMessage?: string; fromSegment?: object; participantRole?: 'agent' | 'customer'; policyIds?: string[]; propertyVerdicts?: object[]; segment?: object; toSegment?: object; value?: number | boolean | string; valueReasoning?: string; }[]; unit?: { name: string; symbol: string; }; }[]; }`\n\n - `data: { description: string; metricDefinitionId: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; values: { captureStatus: 'SUCCESS' | 'NOT_APPLICABLE' | 'DATA_MISSING' | 'ERROR'; computedAt: string; context: 'CALL' | 'SEGMENT' | 'SEGMENT_RANGE'; callId?: string; chatId?: string; confidence?: number; errorMessage?: string; fromSegment?: { id: string; endOffsetMs: number; startOffsetMs: number; text: string; }; participantRole?: 'agent' | 'customer'; policyIds?: string[]; segment?: { id: string; endOffsetMs: number; startOffsetMs: number; text: string; }; toSegment?: { id: string; endOffsetMs: number; startOffsetMs: number; text: string; }; value?: number | boolean | string; valueReasoning?: string; } | { captureStatus: 'SUCCESS' | 'NOT_APPLICABLE' | 'DATA_MISSING' | 'ERROR'; computedAt: string; context: 'CALL' | 'SEGMENT' | 'SEGMENT_RANGE'; callId?: string; chatId?: string; confidence?: number; errorMessage?: string; fromSegment?: { id: string; endOffsetMs: number; startOffsetMs: number; text: string; }; participantRole?: 'agent' | 'customer'; policyIds?: string[]; propertyVerdicts?: { expectedValue: string; propertyName: string; verdict: 'MATCH' | 'MISMATCH' | 'NOT_MENTIONED'; observedValue?: string; reasoning?: string; segment?: { id: string; endOffsetMs: number; startOffsetMs: number; text: string; }; }[]; segment?: { id: string; endOffsetMs: number; startOffsetMs: number; text: string; }; toSegment?: { id: string; endOffsetMs: number; startOffsetMs: number; text: string; }; value?: number | boolean | string; valueReasoning?: string; }[]; unit?: { name: string; symbol: string; }; }[]`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.call.listMetrics('callId');\n\nconsole.log(response);\n```",
241
+ "## listMetrics\n\n`client.call.listMetrics(callId: string, flatten?: string, status?: 'success' | 'all'): { data: object[]; }`\n\n**get** `/v1/call/{callId}/metrics`\n\nFetch all call-level metrics for a specific call, including both system-generated and custom metrics. Only returns rows from the **latest** metric-collection job per metric — if the same metric has been recomputed, prior runs are excluded and remain in the metric history. By default returns only successfully computed metrics; pass `?status=all` to also include rows that resolved as NOT_APPLICABLE / DATA_MISSING / ERROR (the `value` field is omitted on those entries — check `captureStatus`).\n\n### Parameters\n\n- `callId: string`\n\n- `flatten?: string`\n Whether to return a flat list instead of grouped by metric definition (default: false)\n\n- `status?: 'success' | 'all'`\n Filter metrics by capture status. `success` (default) returns only successfully computed metrics — backwards-compatible with the historical behavior. `all` also returns NOT_APPLICABLE / DATA_MISSING / ERROR rows (with `value` omitted), so clients can distinguish \"still computing\" from \"computed but no value\" and exit retry loops correctly.\n\n### Returns\n\n- `{ data: { description: string; metricDefinitionId: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; values: { captureStatus: 'SUCCESS' | 'NOT_APPLICABLE' | 'DATA_MISSING' | 'ERROR'; computedAt: string; context: 'CALL' | 'SEGMENT' | 'SEGMENT_RANGE'; callId?: string; chatId?: string; confidence?: number; errorMessage?: string; fromSegment?: object; participantRole?: 'agent' | 'customer'; policyIds?: string[]; segment?: object; toSegment?: object; value?: number | boolean | string; valueReasoning?: string; } | { captureStatus: 'SUCCESS' | 'NOT_APPLICABLE' | 'DATA_MISSING' | 'ERROR'; computedAt: string; context: 'CALL' | 'SEGMENT' | 'SEGMENT_RANGE'; callId?: string; chatId?: string; confidence?: number; errorMessage?: string; fromSegment?: object; participantRole?: 'agent' | 'customer'; policyIds?: string[]; propertyVerdicts?: object[]; segment?: object; toSegment?: object; value?: number | boolean | string; valueReasoning?: string; }[]; unit?: { name: string; symbol: string; }; }[]; }`\n\n - `data: { description: string; metricDefinitionId: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; values: { captureStatus: 'SUCCESS' | 'NOT_APPLICABLE' | 'DATA_MISSING' | 'ERROR'; computedAt: string; context: 'CALL' | 'SEGMENT' | 'SEGMENT_RANGE'; callId?: string; chatId?: string; confidence?: number; errorMessage?: string; fromSegment?: { id: string; endOffsetMs: number; startOffsetMs: number; text: string; }; participantRole?: 'agent' | 'customer'; policyIds?: string[]; segment?: { id: string; endOffsetMs: number; startOffsetMs: number; text: string; }; toSegment?: { id: string; endOffsetMs: number; startOffsetMs: number; text: string; }; value?: number | boolean | string; valueReasoning?: string; } | { captureStatus: 'SUCCESS' | 'NOT_APPLICABLE' | 'DATA_MISSING' | 'ERROR'; computedAt: string; context: 'CALL' | 'SEGMENT' | 'SEGMENT_RANGE'; callId?: string; chatId?: string; confidence?: number; errorMessage?: string; fromSegment?: { id: string; endOffsetMs: number; startOffsetMs: number; text: string; }; participantRole?: 'agent' | 'customer'; policyIds?: string[]; propertyVerdicts?: { expectedValue: string; propertyName: string; verdict: 'MATCH' | 'MISMATCH' | 'NOT_MENTIONED'; observedValue?: string; reasoning?: string; segment?: object; }[]; segment?: { id: string; endOffsetMs: number; startOffsetMs: number; text: string; }; toSegment?: { id: string; endOffsetMs: number; startOffsetMs: number; text: string; }; value?: number | boolean | string; valueReasoning?: string; }[]; unit?: { name: string; symbol: string; }; }[]`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.call.listMetrics('callId');\n\nconsole.log(response);\n```",
242
242
  perLanguage: {
243
243
  typescript: {
244
244
  method: 'client.call.listMetrics',
@@ -299,9 +299,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
299
299
  'Fetch all metric definitions available in the project, including both system-generated and custom metrics.',
300
300
  stainlessPath: '(resource) metric > (method) listDefinitions',
301
301
  qualified: 'client.metric.listDefinitions',
302
- response: '{ data: object | object | object | object | object[]; }',
302
+ response:
303
+ "{ data: { id: string; calculationType: 'LLM_JUDGE'; description: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'PROVIDER'; description: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'THRESHOLD'; description: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; threshold?: { aggregationMode: string; countThreshold: number; operator: 'GREATER_THAN' | 'GREATER_THAN_OR_EQUALS' | 'LESS_THAN' | 'LESS_THAN_OR_EQUALS' | 'EQUALS' | 'NOT_EQUALS'; sourceMetricDefinitionId: string; sourceParticipantRole: 'AGENT' | 'CUSTOMER' | 'SIMULATED_CUSTOMER' | 'BACKGROUND_SPEAKER'; sourceVariantId: string; thresholdValue: string; }; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'FORMULA'; description: string; formula: { expression: string; sources: object[]; }; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'PATTERN'; description: string; metricId: string; name: string; pattern: { operation: 'PATTERN_EXISTS' | 'PATTERN_COUNT' | 'OUTCOME_AGGREGATE'; outcome: object; triggerCombinator: 'AND' | 'OR'; triggers: object[]; windowMode: string; }; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; }[]; }",
303
304
  markdown:
304
- "## listDefinitions\n\n`client.metric.listDefinitions(): { data: object | object | object | object | object[]; }`\n\n**get** `/v1/metric/definitions`\n\nFetch all metric definitions available in the project, including both system-generated and custom metrics.\n\n### Returns\n\n- `{ data: { id: string; calculationType: 'LLM_JUDGE'; description: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'PROVIDER'; description: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'THRESHOLD'; description: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; threshold?: { aggregationMode: 'EACH' | 'COUNT' | 'AVERAGE' | 'MIN' | 'MAX' | 'MEDIAN' | 'P95' | 'P99' | 'SUM'; countThreshold: number; operator: string; sourceMetricDefinitionId: string; sourceParticipantRole: 'AGENT' | 'CUSTOMER' | 'SIMULATED_CUSTOMER' | 'BACKGROUND_SPEAKER'; sourceVariantId: string; thresholdValue: string; }; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'FORMULA'; description: string; formula: { expression: string; sources: object[]; }; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'PATTERN'; description: string; metricId: string; name: string; pattern: { operation: 'PATTERN_EXISTS' | 'PATTERN_COUNT' | 'OUTCOME_AGGREGATE'; outcome: object; triggerCombinator: 'AND' | 'OR'; triggers: object[]; windowMode: string; }; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; }[]; }`\n\n - `data: { id: string; calculationType: 'LLM_JUDGE'; description: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'PROVIDER'; description: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'THRESHOLD'; description: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; threshold?: { aggregationMode: 'EACH' | 'COUNT' | 'AVERAGE' | 'MIN' | 'MAX' | 'MEDIAN' | 'P95' | 'P99' | 'SUM'; countThreshold: number; operator: string; sourceMetricDefinitionId: string; sourceParticipantRole: 'AGENT' | 'CUSTOMER' | 'SIMULATED_CUSTOMER' | 'BACKGROUND_SPEAKER'; sourceVariantId: string; thresholdValue: string; }; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'FORMULA'; description: string; formula: { expression: string; sources: { sourceMetricDefinitionId: string; sourceVariantId: string; }[]; }; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'PATTERN'; description: string; metricId: string; name: string; pattern: { operation: 'PATTERN_EXISTS' | 'PATTERN_COUNT' | 'OUTCOME_AGGREGATE'; outcome: { operator: string; sourceMetricDefinitionId: string; sourceParticipantRole: 'AGENT' | 'CUSTOMER' | 'SIMULATED_CUSTOMER' | 'BACKGROUND_SPEAKER'; sourceVariantId: string; thresholdValue: string; windowAfter: number; windowBefore: number; }; triggerCombinator: 'AND' | 'OR'; triggers: { operator: string; sourceMetricDefinitionId: string; sourceParticipantRole: 'AGENT' | 'CUSTOMER' | 'SIMULATED_CUSTOMER' | 'BACKGROUND_SPEAKER'; sourceVariantId: string; thresholdValue: string; }[]; windowMode: string; }; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; }[]`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.metric.listDefinitions();\n\nconsole.log(response);\n```",
305
+ "## listDefinitions\n\n`client.metric.listDefinitions(): { data: object[]; }`\n\n**get** `/v1/metric/definitions`\n\nFetch all metric definitions available in the project, including both system-generated and custom metrics.\n\n### Returns\n\n- `{ data: { id: string; calculationType: 'LLM_JUDGE'; description: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'PROVIDER'; description: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'THRESHOLD'; description: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; threshold?: { aggregationMode: string; countThreshold: number; operator: 'GREATER_THAN' | 'GREATER_THAN_OR_EQUALS' | 'LESS_THAN' | 'LESS_THAN_OR_EQUALS' | 'EQUALS' | 'NOT_EQUALS'; sourceMetricDefinitionId: string; sourceParticipantRole: 'AGENT' | 'CUSTOMER' | 'SIMULATED_CUSTOMER' | 'BACKGROUND_SPEAKER'; sourceVariantId: string; thresholdValue: string; }; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'FORMULA'; description: string; formula: { expression: string; sources: object[]; }; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'PATTERN'; description: string; metricId: string; name: string; pattern: { operation: 'PATTERN_EXISTS' | 'PATTERN_COUNT' | 'OUTCOME_AGGREGATE'; outcome: object; triggerCombinator: 'AND' | 'OR'; triggers: object[]; windowMode: string; }; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; }[]; }`\n\n - `data: { id: string; calculationType: 'LLM_JUDGE'; description: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'PROVIDER'; description: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'THRESHOLD'; description: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; threshold?: { aggregationMode: string; countThreshold: number; operator: 'GREATER_THAN' | 'GREATER_THAN_OR_EQUALS' | 'LESS_THAN' | 'LESS_THAN_OR_EQUALS' | 'EQUALS' | 'NOT_EQUALS'; sourceMetricDefinitionId: string; sourceParticipantRole: 'AGENT' | 'CUSTOMER' | 'SIMULATED_CUSTOMER' | 'BACKGROUND_SPEAKER'; sourceVariantId: string; thresholdValue: string; }; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'FORMULA'; description: string; formula: { expression: string; sources: { sourceMetricDefinitionId: string; sourceVariantId: string; }[]; }; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'PATTERN'; description: string; metricId: string; name: string; pattern: { operation: 'PATTERN_EXISTS' | 'PATTERN_COUNT' | 'OUTCOME_AGGREGATE'; outcome: { operator: 'GREATER_THAN' | 'GREATER_THAN_OR_EQUALS' | 'LESS_THAN' | 'LESS_THAN_OR_EQUALS' | 'EQUALS' | 'NOT_EQUALS'; sourceMetricDefinitionId: string; sourceParticipantRole: 'AGENT' | 'CUSTOMER' | 'SIMULATED_CUSTOMER' | 'BACKGROUND_SPEAKER'; sourceVariantId: string; thresholdValue: string; windowAfter: number; windowBefore: number; }; triggerCombinator: 'AND' | 'OR'; triggers: { operator: 'GREATER_THAN' | 'GREATER_THAN_OR_EQUALS' | 'LESS_THAN' | 'LESS_THAN_OR_EQUALS' | 'EQUALS' | 'NOT_EQUALS'; sourceMetricDefinitionId: string; sourceParticipantRole: 'AGENT' | 'CUSTOMER' | 'SIMULATED_CUSTOMER' | 'BACKGROUND_SPEAKER'; sourceVariantId: string; thresholdValue: string; }[]; windowMode: string; }; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; }[]`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.metric.listDefinitions();\n\nconsole.log(response);\n```",
305
306
  perLanguage: {
306
307
  typescript: {
307
308
  method: 'client.metric.listDefinitions',
@@ -328,11 +329,10 @@ const EMBEDDED_METHODS: MethodEntry[] = [
328
329
  'Create a new metric definition. The `calculationType` field selects the variant: LLM_JUDGE (LLM-evaluated), FORMULA (computed from a math expression over other metrics), or PATTERN (detects a trigger→outcome pattern within a window). To create a threshold on top of an existing metric, use `POST /metric/definitions/{idOrSlug}/thresholds` instead.',
329
330
  stainlessPath: '(resource) metric > (method) createDefinition',
330
331
  qualified: 'client.metric.createDefinition',
331
- params: [
332
- "{ analysisPackageId: string; calculationType: 'LLM_JUDGE'; name: string; outputType: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; booleanFalseLabel?: string; booleanTrueLabel?: string; classificationOptions?: { description: string; displayOrder: number; label: string; }[]; llmPrompt?: string; maxClassifications?: number; metricId?: string; participantRole?: 'AGENT' | 'CUSTOMER' | 'SIMULATED_CUSTOMER' | 'BACKGROUND_SPEAKER'; scaleLabels?: { displayOrder: number; label: string; rangeMax: number; rangeMin: number; colorHex?: string; description?: string; }[]; scaleMax?: number; scaleMin?: number; scope?: 'GLOBAL' | 'PER_PARTICIPANT'; slug?: string; supportedContexts?: 'CALL' | 'SEGMENT' | 'TURN'[]; } | { analysisPackageId: string; calculationType: 'FORMULA'; formula: string; name: string; outputType: 'NUMERIC' | 'BOOLEAN'; sources: { sourceMetricDefinitionId: string; sourceVariantId?: string; }[]; metricId?: string; slug?: string; } | { analysisPackageId: string; calculationType: 'PATTERN'; name: string; operation: 'PATTERN_EXISTS' | 'PATTERN_COUNT' | 'OUTCOME_AGGREGATE'; outcome: { operator: string; sourceMetricDefinitionId: string; thresholdValue: string; windowAfter: number; sourceParticipantRole?: 'AGENT' | 'CUSTOMER' | 'SIMULATED_CUSTOMER' | 'BACKGROUND_SPEAKER'; sourceVariantId?: string; windowBefore?: number; }; metricId?: string; slug?: string; trigger?: { operator: string; sourceMetricDefinitionId: string; thresholdValue: string; sourceParticipantRole?: 'AGENT' | 'CUSTOMER' | 'SIMULATED_CUSTOMER' | 'BACKGROUND_SPEAKER'; sourceVariantId?: string; }; triggerCombinator?: 'AND' | 'OR'; triggers?: { operator: string; sourceMetricDefinitionId: string; thresholdValue: string; sourceParticipantRole?: 'AGENT' | 'CUSTOMER' | 'SIMULATED_CUSTOMER' | 'BACKGROUND_SPEAKER'; sourceVariantId?: string; }[]; windowMode?: 'seconds' | 'segments'; };",
333
- ],
334
332
  response:
335
- "{ data: { id: string; calculationType: 'LLM_JUDGE'; description: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: object; } | { id: string; calculationType: 'FORMULA'; description: string; formula: object; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: object; } | { id: string; calculationType: 'PATTERN'; description: string; metricId: string; name: string; pattern: object; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: object; }; }",
333
+ "{ data: { id: string; calculationType: 'LLM_JUDGE'; description: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'FORMULA'; description: string; formula: { expression: string; sources: object[]; }; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'PATTERN'; description: string; metricId: string; name: string; pattern: { operation: 'PATTERN_EXISTS' | 'PATTERN_COUNT' | 'OUTCOME_AGGREGATE'; outcome: object; triggerCombinator: 'AND' | 'OR'; triggers: object[]; windowMode: string; }; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; }; }",
334
+ markdown:
335
+ "## createDefinition\n\n`client.metric.createDefinition(): { data: object; }`\n\n**post** `/v1/metric/definitions`\n\nCreate a new metric definition. The `calculationType` field selects the variant: LLM_JUDGE (LLM-evaluated), FORMULA (computed from a math expression over other metrics), or PATTERN (detects a trigger→outcome pattern within a window). To create a threshold on top of an existing metric, use `POST /metric/definitions/{idOrSlug}/thresholds` instead.\n\n### Returns\n\n- `{ data: { id: string; calculationType: 'LLM_JUDGE'; description: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'FORMULA'; description: string; formula: { expression: string; sources: object[]; }; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'PATTERN'; description: string; metricId: string; name: string; pattern: { operation: 'PATTERN_EXISTS' | 'PATTERN_COUNT' | 'OUTCOME_AGGREGATE'; outcome: object; triggerCombinator: 'AND' | 'OR'; triggers: object[]; windowMode: string; }; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; }; }`\n\n - `data: { id: string; calculationType: 'LLM_JUDGE'; description: string; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'FORMULA'; description: string; formula: { expression: string; sources: { sourceMetricDefinitionId: string; sourceVariantId: string; }[]; }; metricId: string; name: string; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; } | { id: string; calculationType: 'PATTERN'; description: string; metricId: string; name: string; pattern: { operation: 'PATTERN_EXISTS' | 'PATTERN_COUNT' | 'OUTCOME_AGGREGATE'; outcome: { operator: 'GREATER_THAN' | 'GREATER_THAN_OR_EQUALS' | 'LESS_THAN' | 'LESS_THAN_OR_EQUALS' | 'EQUALS' | 'NOT_EQUALS'; sourceMetricDefinitionId: string; sourceParticipantRole: 'AGENT' | 'CUSTOMER' | 'SIMULATED_CUSTOMER' | 'BACKGROUND_SPEAKER'; sourceVariantId: string; thresholdValue: string; windowAfter: number; windowBefore: number; }; triggerCombinator: 'AND' | 'OR'; triggers: { operator: 'GREATER_THAN' | 'GREATER_THAN_OR_EQUALS' | 'LESS_THAN' | 'LESS_THAN_OR_EQUALS' | 'EQUALS' | 'NOT_EQUALS'; sourceMetricDefinitionId: string; sourceParticipantRole: 'AGENT' | 'CUSTOMER' | 'SIMULATED_CUSTOMER' | 'BACKGROUND_SPEAKER'; sourceVariantId: string; thresholdValue: string; }[]; windowMode: string; }; scope: 'GLOBAL' | 'PER_PARTICIPANT'; slug: string; supportedContexts: 'CALL' | 'SEGMENT' | 'TURN'[]; type: 'COUNT' | 'NUMERIC' | 'BOOLEAN' | 'SCALE' | 'TEXT' | 'CLASSIFICATION' | 'OFFSET'; variantId: string; versionId: string; unit?: { name: string; symbol: string; }; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.metric.createDefinition({\n analysisPackageId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n calculationType: 'LLM_JUDGE',\n name: 'Customer Satisfaction',\n outputType: 'BOOLEAN',\n});\n\nconsole.log(response);\n```",
336
336
  perLanguage: {
337
337
  typescript: {
338
338
  method: 'client.metric.createDefinition',
@@ -589,7 +589,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
589
589
  response:
590
590
  "{ data: { id: string; completedAt: string; completedItems: number; createdAt: string; errorMessage: string; failedItems: number; policyIds: string[]; startedAt: string; status: 'PENDING' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'CANCELED'; totalItems: number; triggeredBy: 'USER_MANUAL' | 'USER_API' | 'METRIC_POLICY' | 'SIMULATION'; updatedAt: string; }; }",
591
591
  markdown:
592
- "## create\n\n`client.metricCollectionJob.create(metrics: { id: string; }[], callIds?: string[], chatIds?: string[]): { data: object; }`\n\n**post** `/v1/metric/collection-jobs`\n\nCreates a metric collection job for the specified calls or chats and metrics, then triggers processing. Provide exactly one of callIds or chatIds.\n\n### Parameters\n\n- `metrics: { id: string; }[]`\n Metric definitions to collect. Max 20 per request.\n\n- `callIds?: string[]`\n Call IDs to collect metrics for. Mutually exclusive with chatIds. Max 500 per request.\n\n- `chatIds?: string[]`\n Chat IDs to collect metrics for. Mutually exclusive with callIds. Max 500 per request.\n\n### Returns\n\n- `{ data: { id: string; completedAt: string; completedItems: number; createdAt: string; errorMessage: string; failedItems: number; policyIds: string[]; startedAt: string; status: 'PENDING' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'CANCELED'; totalItems: number; triggeredBy: 'USER_MANUAL' | 'USER_API' | 'METRIC_POLICY' | 'SIMULATION'; updatedAt: string; }; }`\n\n - `data: { id: string; completedAt: string; completedItems: number; createdAt: string; errorMessage: string; failedItems: number; policyIds: string[]; startedAt: string; status: 'PENDING' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'CANCELED'; totalItems: number; triggeredBy: 'USER_MANUAL' | 'USER_API' | 'METRIC_POLICY' | 'SIMULATION'; updatedAt: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst metricCollectionJob = await client.metricCollectionJob.create({ metrics: [{ id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' }] });\n\nconsole.log(metricCollectionJob);\n```",
592
+ "## create\n\n`client.metricCollectionJob.create(metrics: { id: string; }[], callIds?: string[], chatIds?: string[]): { data: object; }`\n\n**post** `/v1/metric/collection-jobs`\n\nCreates a metric collection job for the specified calls or chats and metrics, then triggers processing. Provide exactly one of callIds or chatIds.\n\n### Parameters\n\n- `metrics: { id: string; }[]`\n Metric definitions to collect. Max 20 per request.\n\n- `callIds?: string[]`\n Call IDs to collect metrics for. Mutually exclusive with chatIds. Max 500 per request.\n\n- `chatIds?: string[]`\n Chat IDs to collect metrics for. Mutually exclusive with callIds. Max 500 per request.\n\n### Returns\n\n- `{ data: { id: string; completedAt: string; completedItems: number; createdAt: string; errorMessage: string; failedItems: number; policyIds: string[]; startedAt: string; status: 'PENDING' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'CANCELED'; totalItems: number; triggeredBy: 'USER_MANUAL' | 'USER_API' | 'METRIC_POLICY' | 'SIMULATION'; updatedAt: string; }; }`\n\n - `data: { id: string; completedAt: string; completedItems: number; createdAt: string; errorMessage: string; failedItems: number; policyIds: string[]; startedAt: string; status: 'PENDING' | 'PROCESSING' | 'COMPLETED' | 'FAILED' | 'CANCELED'; totalItems: number; triggeredBy: 'USER_MANUAL' | 'USER_API' | 'METRIC_POLICY' | 'SIMULATION'; updatedAt: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst metricCollectionJob = await client.metricCollectionJob.create({\n metrics: [{ id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' }],\n});\n\nconsole.log(metricCollectionJob);\n```",
593
593
  perLanguage: {
594
594
  typescript: {
595
595
  method: 'client.metricCollectionJob.create',
@@ -616,27 +616,24 @@ const EMBEDDED_METHODS: MethodEntry[] = [
616
616
  'Starts a simulation and returns the run.\n\nSend `plan` to describe a simulation and run it once. Add `saveAsPlan` to keep that\nconfiguration as a reusable run plan. Send `planId` instead to run a plan you already have.',
617
617
  stainlessPath: '(resource) simulation > (method) run',
618
618
  qualified: 'client.simulation.run',
619
- params: [
620
- "{ plan: { agentEndpoints: { id: string; }[]; direction: 'INBOUND' | 'OUTBOUND'; maxSimulationDurationSeconds: number; metrics: { id?: string; metricId?: string; slug?: string; }[]; description?: string; endCallPhrases?: string[]; endCallReasons?: string[]; executionMode?: 'PARALLEL' | 'SEQUENTIAL_SAME_RUN_PLAN' | 'SEQUENTIAL_PROJECT'; flows?: { id: string; edgeCases?: 'ALL' | { id: string; personaOverrideId?: string; variables?: object; }[]; happyPath?: boolean; personaOverrideId?: string; variables?: object; }[]; iterationCount?: number; maxConcurrentJobs?: number; name?: string; personas?: { id: string; }[]; scenarios?: { id: string; variables?: object; }[]; silenceTimeoutSeconds?: number; }; saveAsPlan?: boolean; variables?: object | { flowId: string; variables: object; edgeCaseId?: string; happyPath?: true; }[] | { scenarioId: string; variables: object; }[]; } | { planId: string; variables?: object | { flowId: string; variables: object; edgeCaseId?: string; happyPath?: true; }[] | { scenarioId: string; variables: object; }[]; };",
621
- ],
622
619
  response:
623
620
  '{ data: { createdAt: string; savedAsPlan: boolean; simulationJobCount: number; simulationRunPlanId: string; simulationRunPlanJobId: string; status: string; }; }',
624
621
  markdown:
625
- "## run\n\n`client.simulation.run(body?: { plan: { agentEndpoints: object[]; direction: 'INBOUND' | 'OUTBOUND'; maxSimulationDurationSeconds: number; metrics: object[]; description?: string; endCallPhrases?: string[]; endCallReasons?: string[]; executionMode?: 'PARALLEL' | 'SEQUENTIAL_SAME_RUN_PLAN' | 'SEQUENTIAL_PROJECT'; flows?: object[]; iterationCount?: number; maxConcurrentJobs?: number; name?: string; personas?: object[]; scenarios?: object[]; silenceTimeoutSeconds?: number; }; saveAsPlan?: boolean; variables?: object | { flowId: string; variables: object; edgeCaseId?: string; happyPath?: true; }[] | { scenarioId: string; variables: object; }[]; } | { planId: string; variables?: object | { flowId: string; variables: object; edgeCaseId?: string; happyPath?: true; }[] | { scenarioId: string; variables: object; }[]; }): { data: object; }`\n\n**post** `/v1/simulation/run`\n\nStarts a simulation and returns the run.\n\nSend `plan` to describe a simulation and run it once. Add `saveAsPlan` to keep that\nconfiguration as a reusable run plan. Send `planId` instead to run a plan you already have.\n\n### Parameters\n\n- `body?: { plan: { agentEndpoints: { id: string; }[]; direction: 'INBOUND' | 'OUTBOUND'; maxSimulationDurationSeconds: number; metrics: { id?: string; metricId?: string; slug?: string; }[]; description?: string; endCallPhrases?: string[]; endCallReasons?: string[]; executionMode?: 'PARALLEL' | 'SEQUENTIAL_SAME_RUN_PLAN' | 'SEQUENTIAL_PROJECT'; flows?: { id: string; edgeCases?: 'ALL' | { id: string; personaOverrideId?: string; variables?: object; }[]; happyPath?: boolean; personaOverrideId?: string; variables?: object; }[]; iterationCount?: number; maxConcurrentJobs?: number; name?: string; personas?: { id: string; }[]; scenarios?: { id: string; variables?: object; }[]; silenceTimeoutSeconds?: number; }; saveAsPlan?: boolean; variables?: object | { flowId: string; variables: object; edgeCaseId?: string; happyPath?: true; }[] | { scenarioId: string; variables: object; }[]; } | { planId: string; variables?: object | { flowId: string; variables: object; edgeCaseId?: string; happyPath?: true; }[] | { scenarioId: string; variables: object; }[]; }`\n Either a simulation to configure and run, or the id of a plan to run.\n\n### Returns\n\n- `{ data: { createdAt: string; savedAsPlan: boolean; simulationJobCount: number; simulationRunPlanId: string; simulationRunPlanJobId: string; status: string; }; }`\n\n - `data: { createdAt: string; savedAsPlan: boolean; simulationJobCount: number; simulationRunPlanId: string; simulationRunPlanJobId: string; status: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.simulation.run();\n\nconsole.log(response);\n```",
622
+ "## run\n\n`client.simulation.run(): { data: object; }`\n\n**post** `/v1/simulation/run`\n\nStarts a simulation and returns the run.\n\nSend `plan` to describe a simulation and run it once. Add `saveAsPlan` to keep that\nconfiguration as a reusable run plan. Send `planId` instead to run a plan you already have.\n\n### Returns\n\n- `{ data: { createdAt: string; savedAsPlan: boolean; simulationJobCount: number; simulationRunPlanId: string; simulationRunPlanJobId: string; status: string; }; }`\n\n - `data: { createdAt: string; savedAsPlan: boolean; simulationJobCount: number; simulationRunPlanId: string; simulationRunPlanJobId: string; status: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.simulation.run({\n plan: {\n agentEndpoints: [{ id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' }],\n direction: 'INBOUND',\n maxSimulationDurationSeconds: 300,\n metrics: [{}],\n },\n});\n\nconsole.log(response);\n```",
626
623
  perLanguage: {
627
624
  typescript: {
628
625
  method: 'client.simulation.run',
629
626
  example:
630
- "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.simulation.run({\n plan: {\n agentEndpoints: [{ id: '7c9e6679-7425-40de-944b-e07fc1f90ae7' }],\n direction: 'OUTBOUND',\n maxSimulationDurationSeconds: 300,\n metrics: [{}],\n },\n});\n\nconsole.log(response.data);",
627
+ "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.simulation.run({\n plan: {\n agentEndpoints: [{ id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' }],\n direction: 'INBOUND',\n maxSimulationDurationSeconds: 300,\n metrics: [{}],\n },\n});\n\nconsole.log(response.data);",
631
628
  },
632
629
  python: {
633
630
  method: 'simulation.run',
634
631
  example:
635
- '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.simulation.run(\n plan={\n "agent_endpoints": [{\n "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7"\n }],\n "direction": "OUTBOUND",\n "max_simulation_duration_seconds": 300,\n "metrics": [{}],\n },\n)\nprint(response.data)',
632
+ '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.simulation.run(\n plan={\n "agent_endpoints": [{\n "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n }],\n "direction": "INBOUND",\n "max_simulation_duration_seconds": 300,\n "metrics": [{}],\n },\n)\nprint(response.data)',
636
633
  },
637
634
  http: {
638
635
  example:
639
- 'curl https://api.roark.ai/v1/simulation/run \\\n -X POST \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN"',
636
+ 'curl https://api.roark.ai/v1/simulation/run \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN" \\\n -d \'{\n "plan": {\n "agentEndpoints": [\n {\n "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n }\n ],\n "direction": "INBOUND",\n "maxSimulationDurationSeconds": 300,\n "metrics": [\n {}\n ],\n "description": "A run plan for testing inbound calls",\n "endCallPhrases": [\n "endCallPhrases"\n ],\n "endCallReasons": [\n "endCallReasons"\n ],\n "executionMode": "PARALLEL",\n "iterationCount": 1,\n "maxConcurrentJobs": 5,\n "name": "Billing regression",\n "silenceTimeoutSeconds": 30\n }\n }\'',
640
637
  },
641
638
  },
642
639
  },
@@ -648,21 +645,21 @@ const EMBEDDED_METHODS: MethodEntry[] = [
648
645
  description: 'Find the matching simulation using the number used by the Roark simulation agent.',
649
646
  stainlessPath: '(resource) simulationJob > (method) lookup',
650
647
  qualified: 'client.simulationJob.lookup',
651
- params: ['roarkPhoneNumber: object;', 'callReceivedAt?: object;'],
648
+ params: ['roarkPhoneNumber: string;', 'callReceivedAt?: string;'],
652
649
  response:
653
- '{ data: { agentEndpoint: object; createdAt: string; persona: object; processingStatus: string; runPlan: object; scenario: object; simulationJobId: string; status: string; callId?: string; completedAt?: string; roarkPhoneNumber?: string; startedAt?: string; }; }',
650
+ "{ data: { agentEndpoint: { id: string; name: string; phoneNumber: string; type: string; }; createdAt: string; persona: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; processingStatus: string; runPlan: { id: string; name: string; variables: object; }; scenario: { id: string; description?: string; }; simulationJobId: string; status: string; callId?: string; completedAt?: string; roarkPhoneNumber?: string; startedAt?: string; }; }",
654
651
  markdown:
655
- "## lookup\n\n`client.simulationJob.lookup(roarkPhoneNumber: object, callReceivedAt?: object): { data: object; }`\n\n**get** `/v1/simulation/job/lookup`\n\nFind the matching simulation using the number used by the Roark simulation agent.\n\n### Parameters\n\n- `roarkPhoneNumber: object`\n Phone number provisioned by Roark for the simulation job in E.164 format. In the case of an inbound simulation, this is the number that calls your agent; in the case of an outbound simulation, this is the number you call from your agent.\n\n- `callReceivedAt?: object`\n ISO 8601 timestamp of when the call was received. Alternatively, any time between the start and end of the call is valid. Defaults to the current time, which fetches any jobs that are currently ongoing.\n\n### Returns\n\n- `{ data: { agentEndpoint: { id: string; name: string; phoneNumber: string; type: string; }; createdAt: string; persona: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; processingStatus: string; runPlan: { id: string; name: string; variables: object; }; scenario: { id: string; description?: string; }; simulationJobId: string; status: string; callId?: string; completedAt?: string; roarkPhoneNumber?: string; startedAt?: string; }; }`\n\n - `data: { agentEndpoint: { id: string; name: string; phoneNumber: string; type: string; }; createdAt: string; persona: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; processingStatus: string; runPlan: { id: string; name: string; variables: object; }; scenario: { id: string; description?: string; }; simulationJobId: string; status: string; callId?: string; completedAt?: string; roarkPhoneNumber?: string; startedAt?: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.simulationJob.lookup({ roarkPhoneNumber: {} });\n\nconsole.log(response);\n```",
652
+ "## lookup\n\n`client.simulationJob.lookup(roarkPhoneNumber: string, callReceivedAt?: string): { data: object; }`\n\n**get** `/v1/simulation/job/lookup`\n\nFind the matching simulation using the number used by the Roark simulation agent.\n\n### Parameters\n\n- `roarkPhoneNumber: string`\n Phone number provisioned by Roark for the simulation job in E.164 format. In the case of an inbound simulation, this is the number that calls your agent; in the case of an outbound simulation, this is the number you call from your agent.\n\n- `callReceivedAt?: string`\n ISO 8601 timestamp of when the call was received. Alternatively, any time between the start and end of the call is valid. Defaults to the current time, which fetches any jobs that are currently ongoing.\n\n### Returns\n\n- `{ data: { agentEndpoint: { id: string; name: string; phoneNumber: string; type: string; }; createdAt: string; persona: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; processingStatus: string; runPlan: { id: string; name: string; variables: object; }; scenario: { id: string; description?: string; }; simulationJobId: string; status: string; callId?: string; completedAt?: string; roarkPhoneNumber?: string; startedAt?: string; }; }`\n\n - `data: { agentEndpoint: { id: string; name: string; phoneNumber: string; type: string; }; createdAt: string; persona: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; processingStatus: string; runPlan: { id: string; name: string; variables: object; }; scenario: { id: string; description?: string; }; simulationJobId: string; status: string; callId?: string; completedAt?: string; roarkPhoneNumber?: string; startedAt?: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.simulationJob.lookup({ roarkPhoneNumber: 'roarkPhoneNumber' });\n\nconsole.log(response);\n```",
656
653
  perLanguage: {
657
654
  typescript: {
658
655
  method: 'client.simulationJob.lookup',
659
656
  example:
660
- "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.simulationJob.lookup({ roarkPhoneNumber: {} });\n\nconsole.log(response.data);",
657
+ "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.simulationJob.lookup({ roarkPhoneNumber: 'roarkPhoneNumber' });\n\nconsole.log(response.data);",
661
658
  },
662
659
  python: {
663
660
  method: 'simulation_job.lookup',
664
661
  example:
665
- '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.simulation_job.lookup(\n roark_phone_number={},\n)\nprint(response.data)',
662
+ '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.simulation_job.lookup(\n roark_phone_number="roarkPhoneNumber",\n)\nprint(response.data)',
666
663
  },
667
664
  http: {
668
665
  example:
@@ -679,11 +676,11 @@ const EMBEDDED_METHODS: MethodEntry[] = [
679
676
  'Get a individual simulation run directly by its ID. This is generally part of a larger simulation run plan job.',
680
677
  stainlessPath: '(resource) simulationJob > (method) getById',
681
678
  qualified: 'client.simulationJob.getByID',
682
- params: ['jobId: object;'],
679
+ params: ['jobId: string;'],
683
680
  response:
684
- '{ data: { agentEndpoint: object; createdAt: string; persona: object; processingStatus: string; runPlan: object; scenario: object; simulationJobId: string; status: string; callId?: string; completedAt?: string; roarkPhoneNumber?: string; startedAt?: string; }; }',
681
+ "{ data: { agentEndpoint: { id: string; name: string; phoneNumber: string; type: string; }; createdAt: string; persona: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; processingStatus: string; runPlan: { id: string; name: string; variables: object; }; scenario: { id: string; description?: string; }; simulationJobId: string; status: string; callId?: string; completedAt?: string; roarkPhoneNumber?: string; startedAt?: string; }; }",
685
682
  markdown:
686
- "## getById\n\n`client.simulationJob.getByID(jobId: object): { data: object; }`\n\n**get** `/v1/simulation/job/{jobId}`\n\nGet a individual simulation run directly by its ID. This is generally part of a larger simulation run plan job.\n\n### Parameters\n\n- `jobId: object`\n\n### Returns\n\n- `{ data: { agentEndpoint: { id: string; name: string; phoneNumber: string; type: string; }; createdAt: string; persona: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; processingStatus: string; runPlan: { id: string; name: string; variables: object; }; scenario: { id: string; description?: string; }; simulationJobId: string; status: string; callId?: string; completedAt?: string; roarkPhoneNumber?: string; startedAt?: string; }; }`\n\n - `data: { agentEndpoint: { id: string; name: string; phoneNumber: string; type: string; }; createdAt: string; persona: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; processingStatus: string; runPlan: { id: string; name: string; variables: object; }; scenario: { id: string; description?: string; }; simulationJobId: string; status: string; callId?: string; completedAt?: string; roarkPhoneNumber?: string; startedAt?: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.simulationJob.getByID('7f3e4d2c-8a91-4b5c-9e6f-1a2b3c4d5e6f');\n\nconsole.log(response);\n```",
683
+ "## getById\n\n`client.simulationJob.getByID(jobId: string): { data: object; }`\n\n**get** `/v1/simulation/job/{jobId}`\n\nGet a individual simulation run directly by its ID. This is generally part of a larger simulation run plan job.\n\n### Parameters\n\n- `jobId: string`\n\n### Returns\n\n- `{ data: { agentEndpoint: { id: string; name: string; phoneNumber: string; type: string; }; createdAt: string; persona: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; processingStatus: string; runPlan: { id: string; name: string; variables: object; }; scenario: { id: string; description?: string; }; simulationJobId: string; status: string; callId?: string; completedAt?: string; roarkPhoneNumber?: string; startedAt?: string; }; }`\n\n - `data: { agentEndpoint: { id: string; name: string; phoneNumber: string; type: string; }; createdAt: string; persona: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; processingStatus: string; runPlan: { id: string; name: string; variables: object; }; scenario: { id: string; description?: string; }; simulationJobId: string; status: string; callId?: string; completedAt?: string; roarkPhoneNumber?: string; startedAt?: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.simulationJob.getByID('7f3e4d2c-8a91-4b5c-9e6f-1a2b3c4d5e6f');\n\nconsole.log(response);\n```",
687
684
  perLanguage: {
688
685
  typescript: {
689
686
  method: 'client.simulationJob.getByID',
@@ -792,7 +789,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
792
789
  response:
793
790
  "{ data: { runPlan: { id: string; agentEndpoints: object[]; createdAt: string; direction: 'INBOUND' | 'OUTBOUND'; endCallPhrases: string[]; endCallReasons: string[]; evaluators: object[]; executionMode: 'PARALLEL' | 'SEQUENTIAL_SAME_RUN_PLAN' | 'SEQUENTIAL_PROJECT'; flows: object[]; iterationCount: number; maxConcurrentJobs: number; maxSimulationDurationSeconds: number; metrics: object[]; name: string; personas: object[]; scenarios: object[]; silenceTimeoutSeconds: number; testCaseCount: number; updatedAt: string; description?: string; }; runPlanJob?: { createdAt: string; simulationRunPlanId: string; simulationRunPlanJobId: string; status: string; }; }; }",
794
791
  markdown:
795
- "## create\n\n`client.simulationRunPlan.create(agentEndpoints: { id: string; }[], direction: 'INBOUND' | 'OUTBOUND', maxSimulationDurationSeconds: number, metrics: { id?: string; metricId?: string; slug?: string; }[], name: string, autoRun?: boolean, description?: string, endCallPhrases?: string[], endCallReasons?: string[], executionMode?: 'PARALLEL' | 'SEQUENTIAL_SAME_RUN_PLAN' | 'SEQUENTIAL_PROJECT', flows?: { id: string; edgeCases?: 'ALL' | { id: string; personaOverrideId?: string; variables?: object; }[]; happyPath?: boolean; personaOverrideId?: string; variables?: object; }[], iterationCount?: number, maxConcurrentJobs?: number, personas?: { id: string; }[], scenarios?: { id: string; variables?: object; }[], silenceTimeoutSeconds?: number): { data: object; }`\n\n**post** `/v1/simulation/plan`\n\nCreates a new simulation run plan.\n\nTo run a simulation, use POST /v1/simulation/run instead: it starts a run from a plan or\nfrom an inline configuration, and takes runtime variables. Create a plan here when you want\na reusable, named one to run later.\n\n### Parameters\n\n- `agentEndpoints: { id: string; }[]`\n Agent endpoints to include in this run plan\n\n- `direction: 'INBOUND' | 'OUTBOUND'`\n Direction of the simulation (INBOUND or OUTBOUND)\n\n- `maxSimulationDurationSeconds: number`\n Maximum duration in seconds for each simulation\n\n- `metrics: { id?: string; metricId?: string; slug?: string; }[]`\n Metric definitions to include in this run plan. Reference each by `id` (UUID) or `slug`.\n\n- `name: string`\n Name of the run plan\n\n- `autoRun?: boolean`\n Deprecated: use POST /v1/simulation/run, which starts a run and accepts runtime `variables` as well. This flag runs the plan with only the values pinned on it.\n\n- `description?: string`\n Description of the run plan\n\n- `endCallPhrases?: string[]`\n Phrases that trigger end of call. Empty array disables the feature.\n\n- `endCallReasons?: string[]`\n Semantic conditions that trigger end of call. The LLM evaluates the conversation against these conditions. Empty array disables the feature.\n\n- `executionMode?: 'PARALLEL' | 'SEQUENTIAL_SAME_RUN_PLAN' | 'SEQUENTIAL_PROJECT'`\n Execution mode (PARALLEL or SEQUENTIAL)\n\n- `flows?: { id: string; edgeCases?: 'ALL' | { id: string; personaOverrideId?: string; variables?: object; }[]; happyPath?: boolean; personaOverrideId?: string; variables?: object; }[]`\n Customer flows to include in this run plan. The same flow can appear more than once with a different persona override or different variables.\n\n- `iterationCount?: number`\n Number of iterations to run for each test case (1-10000)\n\n- `maxConcurrentJobs?: number`\n Maximum number of concurrent simulation jobs\n\n- `personas?: { id: string; }[]`\n Personas to include in this run plan. Required with `scenarios`; ignored with `flows`, where each variant carries its own persona.\n\n- `scenarios?: { id: string; variables?: object; }[]`\n Deprecated: use `flows` instead. Scenarios to include in this run plan. The same scenario ID can appear multiple times with different variables.\n\n- `silenceTimeoutSeconds?: number`\n Timeout in seconds for silence detection\n\n### Returns\n\n- `{ data: { runPlan: { id: string; agentEndpoints: object[]; createdAt: string; direction: 'INBOUND' | 'OUTBOUND'; endCallPhrases: string[]; endCallReasons: string[]; evaluators: object[]; executionMode: 'PARALLEL' | 'SEQUENTIAL_SAME_RUN_PLAN' | 'SEQUENTIAL_PROJECT'; flows: object[]; iterationCount: number; maxConcurrentJobs: number; maxSimulationDurationSeconds: number; metrics: object[]; name: string; personas: object[]; scenarios: object[]; silenceTimeoutSeconds: number; testCaseCount: number; updatedAt: string; description?: string; }; runPlanJob?: { createdAt: string; simulationRunPlanId: string; simulationRunPlanJobId: string; status: string; }; }; }`\n\n - `data: { runPlan: { id: string; agentEndpoints: { id: string; }[]; createdAt: string; direction: 'INBOUND' | 'OUTBOUND'; endCallPhrases: string[]; endCallReasons: string[]; evaluators: { id: string; }[]; executionMode: 'PARALLEL' | 'SEQUENTIAL_SAME_RUN_PLAN' | 'SEQUENTIAL_PROJECT'; flows: { id: string; edgeCases?: 'ALL' | { id: string; personaOverrideId?: string; variables?: object; }[]; happyPath?: boolean; personaOverrideId?: string; variables?: object; }[]; iterationCount: number; maxConcurrentJobs: number; maxSimulationDurationSeconds: number; metrics: { id: string; }[]; name: string; personas: { id: string; }[]; scenarios: { id: string; variables?: object; }[]; silenceTimeoutSeconds: number; testCaseCount: number; updatedAt: string; description?: string; }; runPlanJob?: { createdAt: string; simulationRunPlanId: string; simulationRunPlanJobId: string; status: string; }; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst simulationRunPlan = await client.simulationRunPlan.create({\n agentEndpoints: [{ id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' }],\n direction: 'INBOUND',\n maxSimulationDurationSeconds: 300,\n metrics: [{}],\n name: 'My Run Plan',\n});\n\nconsole.log(simulationRunPlan);\n```",
792
+ "## create\n\n`client.simulationRunPlan.create(agentEndpoints: { id: string; }[], direction: 'INBOUND' | 'OUTBOUND', maxSimulationDurationSeconds: number, metrics: { id?: string; metricId?: string; slug?: string; }[], name: string, autoRun?: boolean, description?: string, endCallPhrases?: string[], endCallReasons?: string[], executionMode?: 'PARALLEL' | 'SEQUENTIAL_SAME_RUN_PLAN' | 'SEQUENTIAL_PROJECT', flows?: { id: string; edgeCases?: 'ALL' | { id: string; personaOverrideId?: string; variables?: object; }[]; happyPath?: boolean; personaOverrideId?: string; variables?: object; }[], iterationCount?: number, maxConcurrentJobs?: number, personas?: { id: string; }[], scenarios?: { id: string; variables?: object; }[], silenceTimeoutSeconds?: number): { data: object; }`\n\n**post** `/v1/simulation/plan`\n\nCreates a new simulation run plan.\n\nTo run a simulation, use POST /v1/simulation/run instead: it starts a run from a plan or\nfrom an inline configuration, and takes runtime variables. Create a plan here when you want\na reusable, named one to run later.\n\n### Parameters\n\n- `agentEndpoints: { id: string; }[]`\n Agent endpoints to include in this run plan\n\n- `direction: 'INBOUND' | 'OUTBOUND'`\n Direction of the simulation (INBOUND or OUTBOUND)\n\n- `maxSimulationDurationSeconds: number`\n Maximum duration in seconds for each simulation\n\n- `metrics: { id?: string; metricId?: string; slug?: string; }[]`\n Metric definitions to include in this run plan. Reference each by `id` (UUID) or `slug`.\n\n- `name: string`\n Name of the run plan\n\n- `autoRun?: boolean`\n Deprecated: use POST /v1/simulation/run, which starts a run and accepts runtime `variables` as well. This flag runs the plan with only the values pinned on it.\n\n- `description?: string`\n Description of the run plan\n\n- `endCallPhrases?: string[]`\n Phrases that trigger end of call. Empty array disables the feature.\n\n- `endCallReasons?: string[]`\n Semantic conditions that trigger end of call. The LLM evaluates the conversation against these conditions. Empty array disables the feature.\n\n- `executionMode?: 'PARALLEL' | 'SEQUENTIAL_SAME_RUN_PLAN' | 'SEQUENTIAL_PROJECT'`\n Execution mode (PARALLEL or SEQUENTIAL)\n\n- `flows?: { id: string; edgeCases?: 'ALL' | { id: string; personaOverrideId?: string; variables?: object; }[]; happyPath?: boolean; personaOverrideId?: string; variables?: object; }[]`\n Customer flows to include in this run plan. The same flow can appear more than once with a different persona override or different variables.\n\n- `iterationCount?: number`\n Number of iterations to run for each test case (1-10000)\n\n- `maxConcurrentJobs?: number`\n Maximum number of concurrent simulation jobs\n\n- `personas?: { id: string; }[]`\n Personas to include in this run plan. Required with `scenarios`; ignored with `flows`, where each variant carries its own persona.\n\n- `scenarios?: { id: string; variables?: object; }[]`\n Deprecated: use `flows` instead. Scenarios to include in this run plan. The same scenario ID can appear multiple times with different variables.\n\n- `silenceTimeoutSeconds?: number`\n Timeout in seconds for silence detection\n\n### Returns\n\n- `{ data: { runPlan: { id: string; agentEndpoints: object[]; createdAt: string; direction: 'INBOUND' | 'OUTBOUND'; endCallPhrases: string[]; endCallReasons: string[]; evaluators: object[]; executionMode: 'PARALLEL' | 'SEQUENTIAL_SAME_RUN_PLAN' | 'SEQUENTIAL_PROJECT'; flows: object[]; iterationCount: number; maxConcurrentJobs: number; maxSimulationDurationSeconds: number; metrics: object[]; name: string; personas: object[]; scenarios: object[]; silenceTimeoutSeconds: number; testCaseCount: number; updatedAt: string; description?: string; }; runPlanJob?: { createdAt: string; simulationRunPlanId: string; simulationRunPlanJobId: string; status: string; }; }; }`\n\n - `data: { runPlan: { id: string; agentEndpoints: { id: string; }[]; createdAt: string; direction: 'INBOUND' | 'OUTBOUND'; endCallPhrases: string[]; endCallReasons: string[]; evaluators: { id: string; }[]; executionMode: 'PARALLEL' | 'SEQUENTIAL_SAME_RUN_PLAN' | 'SEQUENTIAL_PROJECT'; flows: { id: string; edgeCases?: 'ALL' | object[]; happyPath?: boolean; personaOverrideId?: string; variables?: object; }[]; iterationCount: number; maxConcurrentJobs: number; maxSimulationDurationSeconds: number; metrics: { id: string; }[]; name: string; personas: { id: string; }[]; scenarios: { id: string; variables?: object; }[]; silenceTimeoutSeconds: number; testCaseCount: number; updatedAt: string; description?: string; }; runPlanJob?: { createdAt: string; simulationRunPlanId: string; simulationRunPlanJobId: string; status: string; }; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst simulationRunPlan = await client.simulationRunPlan.create({\n agentEndpoints: [{ id: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' }],\n direction: 'INBOUND',\n maxSimulationDurationSeconds: 300,\n metrics: [{}],\n name: 'My Run Plan',\n});\n\nconsole.log(simulationRunPlan);\n```",
796
793
  perLanguage: {
797
794
  typescript: {
798
795
  method: 'client.simulationRunPlan.create',
@@ -806,7 +803,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
806
803
  },
807
804
  http: {
808
805
  example:
809
- 'curl https://api.roark.ai/v1/simulation/plan \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN" \\\n -d \'{\n "agentEndpoints": [\n {\n "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n }\n ],\n "direction": "INBOUND",\n "maxSimulationDurationSeconds": 300,\n "metrics": [\n {}\n ],\n "name": "My Run Plan",\n "autoRun": false,\n "description": "A run plan for testing inbound calls",\n "endCallPhrases": [\n "goodbye"\n ],\n "endCallReasons": [\n "Order has been confirmed by the agent"\n ],\n "executionMode": "PARALLEL",\n "iterationCount": 1,\n "maxConcurrentJobs": 5,\n "silenceTimeoutSeconds": 30\n }\'',
806
+ 'curl https://api.roark.ai/v1/simulation/plan \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN" \\\n -d \'{\n "agentEndpoints": [\n {\n "id": "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e"\n }\n ],\n "direction": "INBOUND",\n "maxSimulationDurationSeconds": 300,\n "metrics": [\n {}\n ],\n "name": "My Run Plan",\n "autoRun": false,\n "description": "A run plan for testing inbound calls",\n "endCallPhrases": [\n "endCallPhrases"\n ],\n "endCallReasons": [\n "endCallReasons"\n ],\n "executionMode": "PARALLEL",\n "iterationCount": 1,\n "maxConcurrentJobs": 5,\n "silenceTimeoutSeconds": 30\n }\'',
810
807
  },
811
808
  },
812
809
  },
@@ -840,7 +837,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
840
837
  response:
841
838
  "{ data: { id: string; agentEndpoints: { id: string; }[]; createdAt: string; direction: 'INBOUND' | 'OUTBOUND'; endCallPhrases: string[]; endCallReasons: string[]; evaluators: { id: string; }[]; executionMode: 'PARALLEL' | 'SEQUENTIAL_SAME_RUN_PLAN' | 'SEQUENTIAL_PROJECT'; flows: { id: string; edgeCases?: 'ALL' | object[]; happyPath?: boolean; personaOverrideId?: string; variables?: object; }[]; iterationCount: number; maxConcurrentJobs: number; maxSimulationDurationSeconds: number; metrics: { id: string; }[]; name: string; personas: { id: string; }[]; scenarios: { id: string; variables?: object; }[]; silenceTimeoutSeconds: number; testCaseCount: number; updatedAt: string; description?: string; }; }",
842
839
  markdown:
843
- "## update\n\n`client.simulationRunPlan.update(planId: string, agentEndpoints?: { id: string; }[], description?: string, direction?: 'INBOUND' | 'OUTBOUND', endCallPhrases?: string[], endCallReasons?: string[], executionMode?: 'PARALLEL' | 'SEQUENTIAL_SAME_RUN_PLAN' | 'SEQUENTIAL_PROJECT', flows?: { id: string; edgeCases?: 'ALL' | { id: string; personaOverrideId?: string; variables?: object; }[]; happyPath?: boolean; personaOverrideId?: string; variables?: object; }[], isHidden?: boolean, iterationCount?: number, maxConcurrentJobs?: number, maxSimulationDurationSeconds?: number, metrics?: { id?: string; metricId?: string; slug?: string; }[], name?: string, personas?: { id: string; }[], scenarios?: { id: string; variables?: object; }[], silenceTimeoutSeconds?: number): { data: object; }`\n\n**put** `/v1/simulation/plan/{planId}`\n\nUpdates an existing simulation run plan by its ID.\n\n### Parameters\n\n- `planId: string`\n\n- `agentEndpoints?: { id: string; }[]`\n Agent endpoints to include in this run plan\n\n- `description?: string`\n Description of the run plan\n\n- `direction?: 'INBOUND' | 'OUTBOUND'`\n Direction of the simulation (INBOUND or OUTBOUND)\n\n- `endCallPhrases?: string[]`\n Phrases that trigger end of call. Empty array disables the feature.\n\n- `endCallReasons?: string[]`\n Semantic conditions that trigger end of call. The LLM evaluates the conversation against these conditions. Empty array disables the feature.\n\n- `executionMode?: 'PARALLEL' | 'SEQUENTIAL_SAME_RUN_PLAN' | 'SEQUENTIAL_PROJECT'`\n Execution mode (PARALLEL or SEQUENTIAL)\n\n- `flows?: { id: string; edgeCases?: 'ALL' | { id: string; personaOverrideId?: string; variables?: object; }[]; happyPath?: boolean; personaOverrideId?: string; variables?: object; }[]`\n Replaces the customer flows attached to this run plan. Omit to leave them unchanged; send an empty array to detach them all.\n\n- `isHidden?: boolean`\n Whether this plan is hidden from GET /v1/simulation/plan.\n\nA run started without `saveAsPlan` creates a hidden plan to carry it. Send\n`{ \"name\": \"...\", \"isHidden\": false }` to keep that configuration as a reusable plan,\nwhich is what the app does when you save a one-off run.\n\n- `iterationCount?: number`\n Number of iterations to run for each test case (1-10000)\n\n- `maxConcurrentJobs?: number`\n Maximum number of concurrent simulation jobs\n\n- `maxSimulationDurationSeconds?: number`\n Maximum duration in seconds for each simulation\n\n- `metrics?: { id?: string; metricId?: string; slug?: string; }[]`\n Metric definitions to include in this run plan. Reference each by `id` (UUID) or `slug`.\n\n- `name?: string`\n Name of the run plan\n\n- `personas?: { id: string; }[]`\n Personas to include in this run plan\n\n- `scenarios?: { id: string; variables?: object; }[]`\n Deprecated: use `flows` instead. Replaces the scenarios on this run plan. Omit to leave them unchanged; send an empty array to detach them all, which is how a scenario-based plan is moved over to flows.\n\n- `silenceTimeoutSeconds?: number`\n Timeout in seconds for silence detection\n\n### Returns\n\n- `{ data: { id: string; agentEndpoints: { id: string; }[]; createdAt: string; direction: 'INBOUND' | 'OUTBOUND'; endCallPhrases: string[]; endCallReasons: string[]; evaluators: { id: string; }[]; executionMode: 'PARALLEL' | 'SEQUENTIAL_SAME_RUN_PLAN' | 'SEQUENTIAL_PROJECT'; flows: { id: string; edgeCases?: 'ALL' | object[]; happyPath?: boolean; personaOverrideId?: string; variables?: object; }[]; iterationCount: number; maxConcurrentJobs: number; maxSimulationDurationSeconds: number; metrics: { id: string; }[]; name: string; personas: { id: string; }[]; scenarios: { id: string; variables?: object; }[]; silenceTimeoutSeconds: number; testCaseCount: number; updatedAt: string; description?: string; }; }`\n\n - `data: { id: string; agentEndpoints: { id: string; }[]; createdAt: string; direction: 'INBOUND' | 'OUTBOUND'; endCallPhrases: string[]; endCallReasons: string[]; evaluators: { id: string; }[]; executionMode: 'PARALLEL' | 'SEQUENTIAL_SAME_RUN_PLAN' | 'SEQUENTIAL_PROJECT'; flows: { id: string; edgeCases?: 'ALL' | { id: string; personaOverrideId?: string; variables?: object; }[]; happyPath?: boolean; personaOverrideId?: string; variables?: object; }[]; iterationCount: number; maxConcurrentJobs: number; maxSimulationDurationSeconds: number; metrics: { id: string; }[]; name: string; personas: { id: string; }[]; scenarios: { id: string; variables?: object; }[]; silenceTimeoutSeconds: number; testCaseCount: number; updatedAt: string; description?: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst simulationRunPlan = await client.simulationRunPlan.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(simulationRunPlan);\n```",
840
+ "## update\n\n`client.simulationRunPlan.update(planId: string, agentEndpoints?: { id: string; }[], description?: string, direction?: 'INBOUND' | 'OUTBOUND', endCallPhrases?: string[], endCallReasons?: string[], executionMode?: 'PARALLEL' | 'SEQUENTIAL_SAME_RUN_PLAN' | 'SEQUENTIAL_PROJECT', flows?: { id: string; edgeCases?: 'ALL' | { id: string; personaOverrideId?: string; variables?: object; }[]; happyPath?: boolean; personaOverrideId?: string; variables?: object; }[], isHidden?: boolean, iterationCount?: number, maxConcurrentJobs?: number, maxSimulationDurationSeconds?: number, metrics?: { id?: string; metricId?: string; slug?: string; }[], name?: string, personas?: { id: string; }[], scenarios?: { id: string; variables?: object; }[], silenceTimeoutSeconds?: number): { data: object; }`\n\n**put** `/v1/simulation/plan/{planId}`\n\nUpdates an existing simulation run plan by its ID.\n\n### Parameters\n\n- `planId: string`\n\n- `agentEndpoints?: { id: string; }[]`\n Agent endpoints to include in this run plan\n\n- `description?: string`\n Description of the run plan\n\n- `direction?: 'INBOUND' | 'OUTBOUND'`\n Direction of the simulation (INBOUND or OUTBOUND)\n\n- `endCallPhrases?: string[]`\n Phrases that trigger end of call. Empty array disables the feature.\n\n- `endCallReasons?: string[]`\n Semantic conditions that trigger end of call. The LLM evaluates the conversation against these conditions. Empty array disables the feature.\n\n- `executionMode?: 'PARALLEL' | 'SEQUENTIAL_SAME_RUN_PLAN' | 'SEQUENTIAL_PROJECT'`\n Execution mode (PARALLEL or SEQUENTIAL)\n\n- `flows?: { id: string; edgeCases?: 'ALL' | { id: string; personaOverrideId?: string; variables?: object; }[]; happyPath?: boolean; personaOverrideId?: string; variables?: object; }[]`\n Replaces the customer flows attached to this run plan. Omit to leave them unchanged; send an empty array to detach them all.\n\n- `isHidden?: boolean`\n Whether this plan is hidden from GET /v1/simulation/plan.\n\nA run started without `saveAsPlan` creates a hidden plan to carry it. Send\n`{ \"name\": \"...\", \"isHidden\": false }` to keep that configuration as a reusable plan,\nwhich is what the app does when you save a one-off run.\n\n- `iterationCount?: number`\n Number of iterations to run for each test case (1-10000)\n\n- `maxConcurrentJobs?: number`\n Maximum number of concurrent simulation jobs\n\n- `maxSimulationDurationSeconds?: number`\n Maximum duration in seconds for each simulation\n\n- `metrics?: { id?: string; metricId?: string; slug?: string; }[]`\n Metric definitions to include in this run plan. Reference each by `id` (UUID) or `slug`.\n\n- `name?: string`\n Name of the run plan\n\n- `personas?: { id: string; }[]`\n Personas to include in this run plan\n\n- `scenarios?: { id: string; variables?: object; }[]`\n Deprecated: use `flows` instead. Replaces the scenarios on this run plan. Omit to leave them unchanged; send an empty array to detach them all, which is how a scenario-based plan is moved over to flows.\n\n- `silenceTimeoutSeconds?: number`\n Timeout in seconds for silence detection\n\n### Returns\n\n- `{ data: { id: string; agentEndpoints: { id: string; }[]; createdAt: string; direction: 'INBOUND' | 'OUTBOUND'; endCallPhrases: string[]; endCallReasons: string[]; evaluators: { id: string; }[]; executionMode: 'PARALLEL' | 'SEQUENTIAL_SAME_RUN_PLAN' | 'SEQUENTIAL_PROJECT'; flows: { id: string; edgeCases?: 'ALL' | object[]; happyPath?: boolean; personaOverrideId?: string; variables?: object; }[]; iterationCount: number; maxConcurrentJobs: number; maxSimulationDurationSeconds: number; metrics: { id: string; }[]; name: string; personas: { id: string; }[]; scenarios: { id: string; variables?: object; }[]; silenceTimeoutSeconds: number; testCaseCount: number; updatedAt: string; description?: string; }; }`\n\n - `data: { id: string; agentEndpoints: { id: string; }[]; createdAt: string; direction: 'INBOUND' | 'OUTBOUND'; endCallPhrases: string[]; endCallReasons: string[]; evaluators: { id: string; }[]; executionMode: 'PARALLEL' | 'SEQUENTIAL_SAME_RUN_PLAN' | 'SEQUENTIAL_PROJECT'; flows: { id: string; edgeCases?: 'ALL' | { id: string; personaOverrideId?: string; variables?: object; }[]; happyPath?: boolean; personaOverrideId?: string; variables?: object; }[]; iterationCount: number; maxConcurrentJobs: number; maxSimulationDurationSeconds: number; metrics: { id: string; }[]; name: string; personas: { id: string; }[]; scenarios: { id: string; variables?: object; }[]; silenceTimeoutSeconds: number; testCaseCount: number; updatedAt: string; description?: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst simulationRunPlan = await client.simulationRunPlan.update(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(simulationRunPlan);\n```",
844
841
  perLanguage: {
845
842
  typescript: {
846
843
  method: 'client.simulationRunPlan.update',
@@ -869,7 +866,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
869
866
  params: ['planId: string;'],
870
867
  response: '{ data: { deleted: boolean; }; }',
871
868
  markdown:
872
- "## delete\n\n`client.simulationRunPlan.delete(planId: string): { data: object; }`\n\n**delete** `/v1/simulation/plan/{planId}`\n\nSoft-deletes a simulation run plan by its ID.\n\n### Parameters\n\n- `planId: string`\n\n### Returns\n\n- `{ data: { deleted: boolean; }; }`\n\n - `data: { deleted: boolean; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst simulationRunPlan = await client.simulationRunPlan.delete('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(simulationRunPlan);\n```",
869
+ "## delete\n\n`client.simulationRunPlan.delete(planId: string): { data: object; }`\n\n**delete** `/v1/simulation/plan/{planId}`\n\nSoft-deletes a simulation run plan by its ID.\n\n### Parameters\n\n- `planId: string`\n\n### Returns\n\n- `{ data: { deleted: boolean; }; }`\n\n - `data: { deleted: boolean; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst simulationRunPlan = await client.simulationRunPlan.delete(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n);\n\nconsole.log(simulationRunPlan);\n```",
873
870
  perLanguage: {
874
871
  typescript: {
875
872
  method: 'client.simulationRunPlan.delete',
@@ -933,11 +930,11 @@ const EMBEDDED_METHODS: MethodEntry[] = [
933
930
  description: 'Retrieve details of a simulation plan job including all associated simulation jobs (calls)',
934
931
  stainlessPath: '(resource) simulationRunPlanJob > (method) getById',
935
932
  qualified: 'client.simulationRunPlanJob.getByID',
936
- params: ['jobId: object;'],
933
+ params: ['jobId: string;'],
937
934
  response:
938
935
  '{ data: { createdAt: string; simulationJobs: { agentEndpoint: object; createdAt: string; persona: object; processingStatus: string; scenario: object; simulationJobId: string; status: string; callId?: string; completedAt?: string; roarkPhoneNumber?: string; startedAt?: string; }[]; simulationRunPlanId: string; simulationRunPlanJobId: string; status: string; endedAt?: string; startedAt?: string; }; }',
939
936
  markdown:
940
- "## getById\n\n`client.simulationRunPlanJob.getByID(jobId: object): { data: object; }`\n\n**get** `/v1/simulation/plan/job/{jobId}`\n\nRetrieve details of a simulation plan job including all associated simulation jobs (calls)\n\n### Parameters\n\n- `jobId: object`\n\n### Returns\n\n- `{ data: { createdAt: string; simulationJobs: { agentEndpoint: object; createdAt: string; persona: object; processingStatus: string; scenario: object; simulationJobId: string; status: string; callId?: string; completedAt?: string; roarkPhoneNumber?: string; startedAt?: string; }[]; simulationRunPlanId: string; simulationRunPlanJobId: string; status: string; endedAt?: string; startedAt?: string; }; }`\n\n - `data: { createdAt: string; simulationJobs: { agentEndpoint: { id: string; name: string; phoneNumber: string; type: string; }; createdAt: string; persona: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; processingStatus: string; scenario: { id: string; description?: string; }; simulationJobId: string; status: string; callId?: string; completedAt?: string; roarkPhoneNumber?: string; startedAt?: string; }[]; simulationRunPlanId: string; simulationRunPlanJobId: string; status: string; endedAt?: string; startedAt?: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.simulationRunPlanJob.getByID('7f3e4d2c-8a91-4b5c-9e6f-1a2b3c4d5e6f');\n\nconsole.log(response);\n```",
937
+ "## getById\n\n`client.simulationRunPlanJob.getByID(jobId: string): { data: object; }`\n\n**get** `/v1/simulation/plan/job/{jobId}`\n\nRetrieve details of a simulation plan job including all associated simulation jobs (calls)\n\n### Parameters\n\n- `jobId: string`\n\n### Returns\n\n- `{ data: { createdAt: string; simulationJobs: { agentEndpoint: object; createdAt: string; persona: object; processingStatus: string; scenario: object; simulationJobId: string; status: string; callId?: string; completedAt?: string; roarkPhoneNumber?: string; startedAt?: string; }[]; simulationRunPlanId: string; simulationRunPlanJobId: string; status: string; endedAt?: string; startedAt?: string; }; }`\n\n - `data: { createdAt: string; simulationJobs: { agentEndpoint: { id: string; name: string; phoneNumber: string; type: string; }; createdAt: string; persona: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; processingStatus: string; scenario: { id: string; description?: string; }; simulationJobId: string; status: string; callId?: string; completedAt?: string; roarkPhoneNumber?: string; startedAt?: string; }[]; simulationRunPlanId: string; simulationRunPlanJobId: string; status: string; endedAt?: string; startedAt?: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.simulationRunPlanJob.getByID('7f3e4d2c-8a91-4b5c-9e6f-1a2b3c4d5e6f');\n\nconsole.log(response);\n```",
941
938
  perLanguage: {
942
939
  typescript: {
943
940
  method: 'client.simulationRunPlanJob.getByID',
@@ -965,13 +962,13 @@ const EMBEDDED_METHODS: MethodEntry[] = [
965
962
  stainlessPath: '(resource) simulationRunPlanJob > (method) start',
966
963
  qualified: 'client.simulationRunPlanJob.start',
967
964
  params: [
968
- 'planId: object;',
965
+ 'planId: string;',
969
966
  'variables?: object | { flowId: string; variables: object; edgeCaseId?: string; happyPath?: true; }[] | { scenarioId: string; variables: object; }[];',
970
967
  ],
971
968
  response:
972
969
  '{ data: { createdAt: string; simulationRunPlanId: string; simulationRunPlanJobId: string; status: string; }; }',
973
970
  markdown:
974
- '## start\n\n`client.simulationRunPlanJob.start(planId: object, variables?: object | { flowId: string; variables: object; edgeCaseId?: string; happyPath?: true; }[] | { scenarioId: string; variables: object; }[]): { data: object; }`\n\n**post** `/v1/simulation/plan/{planId}/job`\n\nDeprecated: use POST /v1/simulation/run, which does the same thing and can also take the\nplan configuration inline, so a one-off run does not have to create a plan first.\n\nCreates and executes a job for an existing simulation run plan. Optionally provide runtime\nvariables to override plan-defined variables.\n\n### Parameters\n\n- `planId: object`\n\n- `variables?: object | { flowId: string; variables: object; edgeCaseId?: string; happyPath?: true; }[] | { scenarioId: string; variables: object; }[]`\n Values for the {{variables}} the run resolves, overriding whatever the plan has pinned.\n\nAn object applies them to the whole run:\n\n { "orderNumber": "12345", "tier": "gold" }\n\nAn array applies them per flow, or to just its happy path or one of its edge cases, when a single\nset will not do. Each entry carries what it applies to:\n\n [\n { "flowId": "550e8400-...", "variables": { "orderNumber": "12345" } },\n { "flowId": "550e8400-...", "happyPath": true, "variables": { "orderNumber": "55555" } },\n { "flowId": "550e8400-...", "edgeCaseId": "7a3d2e1f-...", "variables": { "orderNumber": "67890" } }\n ]\n\nAn entry that narrows to neither covers everything that flow resolves. A flow this plan does not\nattach, or an edge case that does not belong to the flow, is rejected rather than ignored.\n\nA plan built on scenarios rather than customer flows targets them the same way, with `scenarioId` in\nplace of `flowId`. That form is deprecated alongside scenarios themselves, and still accepted so runs\nagainst those plans keep working.\n\n### Returns\n\n- `{ data: { createdAt: string; simulationRunPlanId: string; simulationRunPlanJobId: string; status: string; }; }`\n\n - `data: { createdAt: string; simulationRunPlanId: string; simulationRunPlanJobId: string; status: string; }`\n\n### Example\n\n```typescript\nimport Roark from \'@roarkanalytics/sdk\';\n\nconst client = new Roark();\n\nconst response = await client.simulationRunPlanJob.start(\'7f3e4d2c-8a91-4b5c-9e6f-1a2b3c4d5e6f\');\n\nconsole.log(response);\n```',
971
+ '## start\n\n`client.simulationRunPlanJob.start(planId: string, variables?: object | { flowId: string; variables: object; edgeCaseId?: string; happyPath?: true; }[] | { scenarioId: string; variables: object; }[]): { data: object; }`\n\n**post** `/v1/simulation/plan/{planId}/job`\n\nDeprecated: use POST /v1/simulation/run, which does the same thing and can also take the\nplan configuration inline, so a one-off run does not have to create a plan first.\n\nCreates and executes a job for an existing simulation run plan. Optionally provide runtime\nvariables to override plan-defined variables.\n\n### Parameters\n\n- `planId: string`\n\n- `variables?: object | { flowId: string; variables: object; edgeCaseId?: string; happyPath?: true; }[] | { scenarioId: string; variables: object; }[]`\n Values for the {{variables}} the run resolves, overriding whatever the plan has pinned.\n\nAn object applies them to the whole run:\n\n { "orderNumber": "12345", "tier": "gold" }\n\nAn array applies them per flow, or to just its happy path or one of its edge cases, when a single\nset will not do. Each entry carries what it applies to:\n\n [\n { "flowId": "550e8400-...", "variables": { "orderNumber": "12345" } },\n { "flowId": "550e8400-...", "happyPath": true, "variables": { "orderNumber": "55555" } },\n { "flowId": "550e8400-...", "edgeCaseId": "7a3d2e1f-...", "variables": { "orderNumber": "67890" } }\n ]\n\nAn entry that narrows to neither covers everything that flow resolves. A flow this plan does not\nattach, or an edge case that does not belong to the flow, is rejected rather than ignored.\n\nA plan built on scenarios rather than customer flows targets them the same way, with `scenarioId` in\nplace of `flowId`. That form is deprecated alongside scenarios themselves, and still accepted so runs\nagainst those plans keep working.\n\n### Returns\n\n- `{ data: { createdAt: string; simulationRunPlanId: string; simulationRunPlanJobId: string; status: string; }; }`\n\n - `data: { createdAt: string; simulationRunPlanId: string; simulationRunPlanJobId: string; status: string; }`\n\n### Example\n\n```typescript\nimport Roark from \'@roarkanalytics/sdk\';\n\nconst client = new Roark();\n\nconst response = await client.simulationRunPlanJob.start(\'7f3e4d2c-8a91-4b5c-9e6f-1a2b3c4d5e6f\');\n\nconsole.log(response);\n```',
975
972
  perLanguage: {
976
973
  typescript: {
977
974
  method: 'client.simulationRunPlanJob.start',
@@ -985,7 +982,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
985
982
  },
986
983
  http: {
987
984
  example:
988
- 'curl https://api.roark.ai/v1/simulation/plan/$PLAN_ID/job \\\n -X POST \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN"',
985
+ 'curl https://api.roark.ai/v1/simulation/plan/$PLAN_ID/job \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN"',
989
986
  },
990
987
  },
991
988
  },
@@ -999,9 +996,9 @@ const EMBEDDED_METHODS: MethodEntry[] = [
999
996
  qualified: 'client.simulationPersona.list',
1000
997
  params: ['after?: string;', 'limit?: number;', 'searchText?: string;'],
1001
998
  response:
1002
- "{ data: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }[]; pagination: { hasMore: boolean; nextCursor: string; total: number; }; }",
999
+ "{ data: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }[]; pagination: { hasMore: boolean; nextCursor: string; total: number; }; }",
1003
1000
  markdown:
1004
- "## list\n\n`client.simulationPersona.list(after?: string, limit?: number, searchText?: string): { data: object[]; pagination: object; }`\n\n**get** `/v1/persona`\n\nReturns a paginated list of personas for the authenticated project.\n\n### Parameters\n\n- `after?: string`\n\n- `limit?: number`\n\n- `searchText?: string`\n\n### Returns\n\n- `{ data: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }[]; pagination: { hasMore: boolean; nextCursor: string; total: number; }; }`\n\n - `data: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }[]`\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 simulationPersonas = await client.simulationPersona.list();\n\nconsole.log(simulationPersonas);\n```",
1001
+ "## list\n\n`client.simulationPersona.list(after?: string, limit?: number, searchText?: string): { data: object[]; pagination: object; }`\n\n**get** `/v1/persona`\n\nReturns a paginated list of personas for the authenticated project.\n\n### Parameters\n\n- `after?: string`\n\n- `limit?: number`\n\n- `searchText?: string`\n\n### Returns\n\n- `{ data: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }[]; pagination: { hasMore: boolean; nextCursor: string; total: number; }; }`\n\n - `data: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }[]`\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 simulationPersonas = await client.simulationPersona.list();\n\nconsole.log(simulationPersonas);\n```",
1005
1002
  perLanguage: {
1006
1003
  typescript: {
1007
1004
  method: 'client.simulationPersona.list',
@@ -1029,9 +1026,9 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1029
1026
  qualified: 'client.simulationPersona.getByID',
1030
1027
  params: ['personaId: string;'],
1031
1028
  response:
1032
- "{ data: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; }",
1029
+ "{ data: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; }",
1033
1030
  markdown:
1034
- "## getById\n\n`client.simulationPersona.getByID(personaId: string): { data: object; }`\n\n**get** `/v1/persona/{personaId}`\n\nReturns a specific persona by its ID.\n\n### Parameters\n\n- `personaId: string`\n\n### Returns\n\n- `{ data: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; }`\n\n - `data: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.simulationPersona.getByID('personaId');\n\nconsole.log(response);\n```",
1031
+ "## getById\n\n`client.simulationPersona.getByID(personaId: string): { data: object; }`\n\n**get** `/v1/persona/{personaId}`\n\nReturns a specific persona by its ID.\n\n### Parameters\n\n- `personaId: string`\n\n### Returns\n\n- `{ data: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; }`\n\n - `data: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.simulationPersona.getByID('personaId');\n\nconsole.log(response);\n```",
1035
1032
  perLanguage: {
1036
1033
  typescript: {
1037
1034
  method: 'client.simulationPersona.getByID',
@@ -1062,6 +1059,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1062
1059
  "gender: 'MALE' | 'FEMALE';",
1063
1060
  'language: string;',
1064
1061
  'name: string;',
1062
+ "age?: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY';",
1065
1063
  'backgroundNoise?: string;',
1066
1064
  'backstoryPrompt?: string;',
1067
1065
  "baseEmotion?: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';",
@@ -1082,9 +1080,9 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1082
1080
  'understoodLanguages?: string[];',
1083
1081
  ],
1084
1082
  response:
1085
- "{ data: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; }",
1083
+ "{ data: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; }",
1086
1084
  markdown:
1087
- "## create\n\n`client.simulationPersona.create(accent: string, gender: 'MALE' | 'FEMALE', language: string, name: string, backgroundNoise?: string, backstoryPrompt?: string, baseEmotion?: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED', confirmationStyle?: 'EXPLICIT' | 'VAGUE', description?: string, hasDisfluencies?: boolean, idleMessageMaxSpokenCount?: number, idleMessageResetCountOnUserSpeechEnabled?: boolean, idleMessages?: string[], idleTimeoutSeconds?: number, intentClarity?: 'CLEAR' | 'INDIRECT' | 'VAGUE', memoryReliability?: 'HIGH' | 'LOW', properties?: object, responseTiming?: 'RELAXED' | 'NORMAL' | 'QUICK', secondaryLanguage?: 'EN', speechClarity?: 'CLEAR' | 'VAGUE' | 'RAMBLING', speechPace?: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST', understoodLanguages?: string[]): { data: object; }`\n\n**post** `/v1/persona`\n\nCreates a new persona for the authenticated project.\n\n### Parameters\n\n- `accent: string`\n Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with optional variants\n\n- `gender: 'MALE' | 'FEMALE'`\n Gender of the persona\n\n- `language: string`\n Primary language ISO 639-1 code for the persona\n\n- `name: string`\n The name the agent will identify as during conversations\n\n- `backgroundNoise?: string`\n Background noise setting\n\n- `backstoryPrompt?: string`\n Background story and behavioral patterns for the persona\n\n- `baseEmotion?: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'`\n Base emotional state of the persona\n\n- `confirmationStyle?: 'EXPLICIT' | 'VAGUE'`\n How the persona confirms information\n\n- `description?: string`\n Human-readable description of the persona\n\n- `hasDisfluencies?: boolean`\n Whether the persona uses filler words like \"um\" and \"uh\"\n\n- `idleMessageMaxSpokenCount?: number`\n Maximum number of idle messages the persona will send before giving up\n\n- `idleMessageResetCountOnUserSpeechEnabled?: boolean`\n Whether the idle message counter resets when the agent speaks\n\n- `idleMessages?: string[]`\n Messages the persona will say when the agent goes silent during a call. Defaults to language-appropriate phrases when omitted or sent as null.\n\n- `idleTimeoutSeconds?: number`\n Seconds of silence before the persona sends an idle message\n\n- `intentClarity?: 'CLEAR' | 'INDIRECT' | 'VAGUE'`\n How clearly the persona expresses their intentions\n\n- `memoryReliability?: 'HIGH' | 'LOW'`\n How reliable the persona's memory is\n\n- `properties?: object`\n Additional custom properties about the persona\n\n- `responseTiming?: 'RELAXED' | 'NORMAL' | 'QUICK'`\n Controls how quickly the persona responds to pauses in conversation (QUICK, NORMAL, RELAXED)\n\n- `secondaryLanguage?: 'EN'`\n Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)\n\n- `speechClarity?: 'CLEAR' | 'VAGUE' | 'RAMBLING'`\n Speech clarity of the persona\n\n- `speechPace?: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'`\n Speech pace of the persona\n\n- `understoodLanguages?: string[]`\n Languages the persona can understand. Defaults to the languages the persona speaks.\n\n### Returns\n\n- `{ data: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; }`\n\n - `data: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst simulationPersona = await client.simulationPersona.create({\n accent: 'US',\n gender: 'MALE',\n language: 'EN',\n name: 'name',\n});\n\nconsole.log(simulationPersona);\n```",
1085
+ "## create\n\n`client.simulationPersona.create(accent: string, gender: 'MALE' | 'FEMALE', language: string, name: string, age?: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY', backgroundNoise?: string, backstoryPrompt?: string, baseEmotion?: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED', confirmationStyle?: 'EXPLICIT' | 'VAGUE', description?: string, hasDisfluencies?: boolean, idleMessageMaxSpokenCount?: number, idleMessageResetCountOnUserSpeechEnabled?: boolean, idleMessages?: string[], idleTimeoutSeconds?: number, intentClarity?: 'CLEAR' | 'INDIRECT' | 'VAGUE', memoryReliability?: 'HIGH' | 'LOW', properties?: object, responseTiming?: 'RELAXED' | 'NORMAL' | 'QUICK', secondaryLanguage?: 'EN', speechClarity?: 'CLEAR' | 'VAGUE' | 'RAMBLING', speechPace?: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST', understoodLanguages?: string[]): { data: object; }`\n\n**post** `/v1/persona`\n\nCreates a new persona for the authenticated project.\n\n### Parameters\n\n- `accent: string`\n Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with optional variants\n\n- `gender: 'MALE' | 'FEMALE'`\n Gender of the persona\n\n- `language: string`\n Primary language ISO 639-1 code for the persona\n\n- `name: string`\n The name the agent will identify as during conversations\n\n- `age?: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'`\n How old the caller sounds and behaves. Only ages the persona's accent has a voice for are accepted; defaults to ADULT, which every accent supports.\n\n- `backgroundNoise?: string`\n Background noise setting\n\n- `backstoryPrompt?: string`\n Background story and behavioral patterns for the persona\n\n- `baseEmotion?: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'`\n Base emotional state of the persona\n\n- `confirmationStyle?: 'EXPLICIT' | 'VAGUE'`\n How the persona confirms information\n\n- `description?: string`\n Human-readable description of the persona\n\n- `hasDisfluencies?: boolean`\n Whether the persona uses filler words like \"um\" and \"uh\"\n\n- `idleMessageMaxSpokenCount?: number`\n Maximum number of idle messages the persona will send before giving up\n\n- `idleMessageResetCountOnUserSpeechEnabled?: boolean`\n Whether the idle message counter resets when the agent speaks\n\n- `idleMessages?: string[]`\n Messages the persona will say when the agent goes silent during a call. Defaults to language-appropriate phrases when omitted or sent as null.\n\n- `idleTimeoutSeconds?: number`\n Seconds of silence before the persona sends an idle message\n\n- `intentClarity?: 'CLEAR' | 'INDIRECT' | 'VAGUE'`\n How clearly the persona expresses their intentions\n\n- `memoryReliability?: 'HIGH' | 'LOW'`\n How reliable the persona's memory is\n\n- `properties?: object`\n Additional custom properties about the persona\n\n- `responseTiming?: 'RELAXED' | 'NORMAL' | 'QUICK'`\n Controls how quickly the persona responds to pauses in conversation (QUICK, NORMAL, RELAXED)\n\n- `secondaryLanguage?: 'EN'`\n Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)\n\n- `speechClarity?: 'CLEAR' | 'VAGUE' | 'RAMBLING'`\n Speech clarity of the persona\n\n- `speechPace?: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'`\n Speech pace of the persona\n\n- `understoodLanguages?: string[]`\n Languages the persona can understand. Defaults to the languages the persona speaks.\n\n### Returns\n\n- `{ data: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; }`\n\n - `data: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst simulationPersona = await client.simulationPersona.create({\n accent: 'US',\n gender: 'MALE',\n language: 'EN',\n name: 'name',\n});\n\nconsole.log(simulationPersona);\n```",
1088
1086
  perLanguage: {
1089
1087
  typescript: {
1090
1088
  method: 'client.simulationPersona.create',
@@ -1098,7 +1096,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1098
1096
  },
1099
1097
  http: {
1100
1098
  example:
1101
- 'curl https://api.roark.ai/v1/persona \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN" \\\n -d \'{\n "accent": "US",\n "gender": "MALE",\n "language": "EN",\n "name": "name",\n "backstoryPrompt": "A busy professional calling during lunch break",\n "properties": {\n "age": "bar",\n "zipCode": "bar",\n "occupation": "bar"\n }\n }\'',
1099
+ 'curl https://api.roark.ai/v1/persona \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN" \\\n -d \'{\n "accent": "US",\n "gender": "MALE",\n "language": "EN",\n "name": "name",\n "backstoryPrompt": "A busy professional calling during lunch break",\n "properties": {\n "foo": "string"\n }\n }\'',
1102
1100
  },
1103
1101
  },
1104
1102
  },
@@ -1113,6 +1111,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1113
1111
  params: [
1114
1112
  'personaId: string;',
1115
1113
  'accent?: string;',
1114
+ "age?: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY';",
1116
1115
  'backgroundNoise?: string;',
1117
1116
  'backstoryPrompt?: string;',
1118
1117
  "baseEmotion?: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED';",
@@ -1136,9 +1135,9 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1136
1135
  'understoodLanguages?: string[];',
1137
1136
  ],
1138
1137
  response:
1139
- "{ data: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; }",
1138
+ "{ data: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; }",
1140
1139
  markdown:
1141
- "## update\n\n`client.simulationPersona.update(personaId: string, accent?: string, backgroundNoise?: string, backstoryPrompt?: string, baseEmotion?: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED', confirmationStyle?: 'EXPLICIT' | 'VAGUE', description?: string, gender?: 'MALE' | 'FEMALE', hasDisfluencies?: boolean, idleMessageMaxSpokenCount?: number, idleMessageResetCountOnUserSpeechEnabled?: boolean, idleMessages?: string[], idleTimeoutSeconds?: number, intentClarity?: 'CLEAR' | 'INDIRECT' | 'VAGUE', language?: string, memoryReliability?: 'HIGH' | 'LOW', name?: string, properties?: object, responseTiming?: 'RELAXED' | 'NORMAL' | 'QUICK', secondaryLanguage?: 'EN', speechClarity?: 'CLEAR' | 'VAGUE' | 'RAMBLING', speechPace?: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST', understoodLanguages?: string[]): { data: object; }`\n\n**put** `/v1/persona/{personaId}`\n\nUpdates an existing persona by its ID.\n\n### Parameters\n\n- `personaId: string`\n\n- `accent?: string`\n Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with optional variants\n\n- `backgroundNoise?: string`\n Background noise setting\n\n- `backstoryPrompt?: string`\n Background story and behavioral patterns for the persona\n\n- `baseEmotion?: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'`\n Base emotional state of the persona\n\n- `confirmationStyle?: 'EXPLICIT' | 'VAGUE'`\n How the persona confirms information\n\n- `description?: string`\n Human-readable description of the persona\n\n- `gender?: 'MALE' | 'FEMALE'`\n Gender of the persona\n\n- `hasDisfluencies?: boolean`\n Whether the persona uses filler words like \"um\" and \"uh\"\n\n- `idleMessageMaxSpokenCount?: number`\n Maximum number of idle messages the persona will send before giving up\n\n- `idleMessageResetCountOnUserSpeechEnabled?: boolean`\n Whether the idle message counter resets when the agent speaks\n\n- `idleMessages?: string[]`\n Messages the persona will say when the agent goes silent during a call. null = \"Automatic\": language-appropriate defaults are used at call time.\n\n- `idleTimeoutSeconds?: number`\n Seconds of silence before the persona sends an idle message\n\n- `intentClarity?: 'CLEAR' | 'INDIRECT' | 'VAGUE'`\n How clearly the persona expresses their intentions\n\n- `language?: string`\n Primary language ISO 639-1 code for the persona\n\n- `memoryReliability?: 'HIGH' | 'LOW'`\n How reliable the persona's memory is\n\n- `name?: string`\n The name the agent will identify as during conversations\n\n- `properties?: object`\n Additional custom properties about the persona\n\n- `responseTiming?: 'RELAXED' | 'NORMAL' | 'QUICK'`\n Controls how quickly the persona responds to pauses in conversation (QUICK, NORMAL, RELAXED)\n\n- `secondaryLanguage?: 'EN'`\n Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)\n\n- `speechClarity?: 'CLEAR' | 'VAGUE' | 'RAMBLING'`\n Speech clarity of the persona\n\n- `speechPace?: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'`\n Speech pace of the persona\n\n- `understoodLanguages?: string[]`\n Languages the persona can understand. Multilingual combinations are limited by multilingual speech recognition support.\n\n### Returns\n\n- `{ data: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; }`\n\n - `data: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst simulationPersona = await client.simulationPersona.update('personaId');\n\nconsole.log(simulationPersona);\n```",
1140
+ "## update\n\n`client.simulationPersona.update(personaId: string, accent?: string, age?: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY', backgroundNoise?: string, backstoryPrompt?: string, baseEmotion?: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED', confirmationStyle?: 'EXPLICIT' | 'VAGUE', description?: string, gender?: 'MALE' | 'FEMALE', hasDisfluencies?: boolean, idleMessageMaxSpokenCount?: number, idleMessageResetCountOnUserSpeechEnabled?: boolean, idleMessages?: string[], idleTimeoutSeconds?: number, intentClarity?: 'CLEAR' | 'INDIRECT' | 'VAGUE', language?: string, memoryReliability?: 'HIGH' | 'LOW', name?: string, properties?: object, responseTiming?: 'RELAXED' | 'NORMAL' | 'QUICK', secondaryLanguage?: 'EN', speechClarity?: 'CLEAR' | 'VAGUE' | 'RAMBLING', speechPace?: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST', understoodLanguages?: string[]): { data: object; }`\n\n**put** `/v1/persona/{personaId}`\n\nUpdates an existing persona by its ID.\n\n### Parameters\n\n- `personaId: string`\n\n- `accent?: string`\n Accent of the persona, defined using ISO 3166-1 alpha-2 country codes with optional variants\n\n- `age?: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'`\n How old the caller sounds and behaves. Only ages the persona's accent has a voice for are accepted; defaults to ADULT, which every accent supports.\n\n- `backgroundNoise?: string`\n Background noise setting\n\n- `backstoryPrompt?: string`\n Background story and behavioral patterns for the persona\n\n- `baseEmotion?: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'`\n Base emotional state of the persona\n\n- `confirmationStyle?: 'EXPLICIT' | 'VAGUE'`\n How the persona confirms information\n\n- `description?: string`\n Human-readable description of the persona\n\n- `gender?: 'MALE' | 'FEMALE'`\n Gender of the persona\n\n- `hasDisfluencies?: boolean`\n Whether the persona uses filler words like \"um\" and \"uh\"\n\n- `idleMessageMaxSpokenCount?: number`\n Maximum number of idle messages the persona will send before giving up\n\n- `idleMessageResetCountOnUserSpeechEnabled?: boolean`\n Whether the idle message counter resets when the agent speaks\n\n- `idleMessages?: string[]`\n Messages the persona will say when the agent goes silent during a call. null = \"Automatic\": language-appropriate defaults are used at call time.\n\n- `idleTimeoutSeconds?: number`\n Seconds of silence before the persona sends an idle message\n\n- `intentClarity?: 'CLEAR' | 'INDIRECT' | 'VAGUE'`\n How clearly the persona expresses their intentions\n\n- `language?: string`\n Primary language ISO 639-1 code for the persona\n\n- `memoryReliability?: 'HIGH' | 'LOW'`\n How reliable the persona's memory is\n\n- `name?: string`\n The name the agent will identify as during conversations\n\n- `properties?: object`\n Additional custom properties about the persona\n\n- `responseTiming?: 'RELAXED' | 'NORMAL' | 'QUICK'`\n Controls how quickly the persona responds to pauses in conversation (QUICK, NORMAL, RELAXED)\n\n- `secondaryLanguage?: 'EN'`\n Secondary language ISO 639-1 code for code-switching (e.g., Hinglish, Spanglish)\n\n- `speechClarity?: 'CLEAR' | 'VAGUE' | 'RAMBLING'`\n Speech clarity of the persona\n\n- `speechPace?: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'`\n Speech pace of the persona\n\n- `understoodLanguages?: string[]`\n Languages the persona can understand. Multilingual combinations are limited by multilingual speech recognition support.\n\n### Returns\n\n- `{ data: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; }`\n\n - `data: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst simulationPersona = await client.simulationPersona.update('personaId');\n\nconsole.log(simulationPersona);\n```",
1142
1141
  perLanguage: {
1143
1142
  typescript: {
1144
1143
  method: 'client.simulationPersona.update',
@@ -1234,9 +1233,9 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1234
1233
  "type?: 'SCRIPTED' | 'IMPROV' | 'VOICEMAIL';",
1235
1234
  ],
1236
1235
  response:
1237
- "{ data: { id: string; agentExpectations: object[]; agents: object[]; branchingMode: 'DETERMINISTIC' | 'ADAPTIVE'; createdAt: string; edgeCases: object[]; happyPath: object; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'SCRIPTED'; updatedAt: string; description?: string; graph?: flow_step[]; } | { id: string; agentExpectations: object[]; agents: object[]; createdAt: string; edgeCases: object[]; happyPath: object; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'IMPROV'; updatedAt: string; description?: string; } | { id: string; agentExpectations: object[]; agents: object[]; createdAt: string; edgeCases: object[]; happyPath: object; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'VOICEMAIL'; updatedAt: string; description?: string; }[]; pagination: { hasMore: boolean; nextCursor: string; total: number; }; }",
1236
+ "{ data: { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; branchingMode: 'DETERMINISTIC' | 'ADAPTIVE'; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object[]; title: string; type: 'SCRIPTED'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object[]; title: string; type: 'SCRIPTED'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'SCRIPTED'; updatedAt: string; description?: string; graph?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'IMPROV'; updatedAt: string; description?: string; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'VOICEMAIL'; updatedAt: string; description?: string; }[]; pagination: { hasMore: boolean; nextCursor: string; total: number; }; }",
1238
1237
  markdown:
1239
- "## list\n\n`client.customerFlow.list(after?: string, includeSystem?: 'true' | 'false', limit?: number, searchText?: string, type?: 'SCRIPTED' | 'IMPROV' | 'VOICEMAIL'): { data: object | object | object[]; pagination: object; }`\n\n**get** `/v1/customer-flow`\n\nReturns a paginated list of customer flows with their agents, expectations, happy path and edge cases. The step graph is the one field omitted: reading it walks the project's whole step graph, so it comes back from the single-flow endpoint instead. Customer flows are how a project describes what to test; they replace the older simulation scenarios.\n\n### Parameters\n\n- `after?: string`\n\n- `includeSystem?: 'true' | 'false'`\n\n- `limit?: number`\n\n- `searchText?: string`\n\n- `type?: 'SCRIPTED' | 'IMPROV' | 'VOICEMAIL'`\n\n### Returns\n\n- `{ data: { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; branchingMode: 'DETERMINISTIC' | 'ADAPTIVE'; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: flow_step[]; title: string; type: 'SCRIPTED'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: flow_step[]; title: string; type: 'SCRIPTED'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'SCRIPTED'; updatedAt: string; description?: string; graph?: object | object | object | object | object | object | object[]; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'IMPROV'; updatedAt: string; description?: string; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'VOICEMAIL'; updatedAt: string; description?: string; }[]; pagination: { hasMore: boolean; nextCursor: string; total: number; }; }`\n Paginated list of customer flows\n\n - `data: { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; branchingMode: 'DETERMINISTIC' | 'ADAPTIVE'; createdAt: string; edgeCases: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: flow_step[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: flow_step[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'SCRIPTED'; updatedAt: string; description?: string; graph?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; }[]; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }[]; happyPath: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'IMPROV'; updatedAt: string; description?: string; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'VOICEMAIL'; updatedAt: string; description?: 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 customerFlows = await client.customerFlow.list();\n\nconsole.log(customerFlows);\n```",
1238
+ "## list\n\n`client.customerFlow.list(after?: string, includeSystem?: 'true' | 'false', limit?: number, searchText?: string, type?: 'SCRIPTED' | 'IMPROV' | 'VOICEMAIL'): { data: object[]; pagination: object; }`\n\n**get** `/v1/customer-flow`\n\nReturns a paginated list of customer flows with their agents, expectations, happy path and edge cases. The step graph is the one field omitted: reading it walks the project's whole step graph, so it comes back from the single-flow endpoint instead. Customer flows are how a project describes what to test; they replace the older simulation scenarios.\n\n### Parameters\n\n- `after?: string`\n\n- `includeSystem?: 'true' | 'false'`\n\n- `limit?: number`\n\n- `searchText?: string`\n\n- `type?: 'SCRIPTED' | 'IMPROV' | 'VOICEMAIL'`\n\n### Returns\n\n- `{ data: { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; branchingMode: 'DETERMINISTIC' | 'ADAPTIVE'; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object[]; title: string; type: 'SCRIPTED'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object[]; title: string; type: 'SCRIPTED'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'SCRIPTED'; updatedAt: string; description?: string; graph?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'IMPROV'; updatedAt: string; description?: string; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'VOICEMAIL'; updatedAt: string; description?: string; }[]; pagination: { hasMore: boolean; nextCursor: string; total: number; }; }`\n Paginated list of customer flows\n\n - `data: { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; branchingMode: 'DETERMINISTIC' | 'ADAPTIVE'; createdAt: string; edgeCases: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'SCRIPTED'; updatedAt: string; description?: string; graph?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; }[]; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }[]; happyPath: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'IMPROV'; updatedAt: string; description?: string; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'VOICEMAIL'; updatedAt: string; description?: 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 customerFlows = await client.customerFlow.list();\n\nconsole.log(customerFlows);\n```",
1240
1239
  perLanguage: {
1241
1240
  typescript: {
1242
1241
  method: 'client.customerFlow.list',
@@ -1265,9 +1264,9 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1265
1264
  qualified: 'client.customerFlow.getByID',
1266
1265
  params: ['flowId: string;'],
1267
1266
  response:
1268
- "{ data: { id: string; agentExpectations: object[]; agents: object[]; branchingMode: 'DETERMINISTIC' | 'ADAPTIVE'; createdAt: string; edgeCases: object[]; happyPath: object; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'SCRIPTED'; updatedAt: string; description?: string; graph?: flow_step[]; } | { id: string; agentExpectations: object[]; agents: object[]; createdAt: string; edgeCases: object[]; happyPath: object; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'IMPROV'; updatedAt: string; description?: string; } | { id: string; agentExpectations: object[]; agents: object[]; createdAt: string; edgeCases: object[]; happyPath: object; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'VOICEMAIL'; updatedAt: string; description?: string; }; }",
1267
+ "{ data: { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; branchingMode: 'DETERMINISTIC' | 'ADAPTIVE'; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object[]; title: string; type: 'SCRIPTED'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object[]; title: string; type: 'SCRIPTED'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'SCRIPTED'; updatedAt: string; description?: string; graph?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'IMPROV'; updatedAt: string; description?: string; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'VOICEMAIL'; updatedAt: string; description?: string; }; }",
1269
1268
  markdown:
1270
- "## getById\n\n`client.customerFlow.getByID(flowId: string): { data: object | object | object; }`\n\n**get** `/v1/customer-flow/{flowId}`\n\nReturns a customer flow with its happy path, edge cases, expectations and linked agents. Scripted flows also carry their step graph.\n\n### Parameters\n\n- `flowId: string`\n\n### Returns\n\n- `{ data: { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; branchingMode: 'DETERMINISTIC' | 'ADAPTIVE'; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: flow_step[]; title: string; type: 'SCRIPTED'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: flow_step[]; title: string; type: 'SCRIPTED'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'SCRIPTED'; updatedAt: string; description?: string; graph?: object | object | object | object | object | object | object[]; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'IMPROV'; updatedAt: string; description?: string; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'VOICEMAIL'; updatedAt: string; description?: string; }; }`\n\n - `data: { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; branchingMode: 'DETERMINISTIC' | 'ADAPTIVE'; createdAt: string; edgeCases: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: flow_step[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: flow_step[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'SCRIPTED'; updatedAt: string; description?: string; graph?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; }[]; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }[]; happyPath: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'IMPROV'; updatedAt: string; description?: string; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'VOICEMAIL'; updatedAt: string; description?: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.customerFlow.getByID('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
1269
+ "## getById\n\n`client.customerFlow.getByID(flowId: string): { data: object; }`\n\n**get** `/v1/customer-flow/{flowId}`\n\nReturns a customer flow with its happy path, edge cases, expectations and linked agents. Scripted flows also carry their step graph.\n\n### Parameters\n\n- `flowId: string`\n\n### Returns\n\n- `{ data: { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; branchingMode: 'DETERMINISTIC' | 'ADAPTIVE'; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object[]; title: string; type: 'SCRIPTED'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object[]; title: string; type: 'SCRIPTED'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'SCRIPTED'; updatedAt: string; description?: string; graph?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'IMPROV'; updatedAt: string; description?: string; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'VOICEMAIL'; updatedAt: string; description?: string; }; }`\n\n - `data: { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; branchingMode: 'DETERMINISTIC' | 'ADAPTIVE'; createdAt: string; edgeCases: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'SCRIPTED'; updatedAt: string; description?: string; graph?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; }[]; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }[]; happyPath: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'IMPROV'; updatedAt: string; description?: string; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'VOICEMAIL'; updatedAt: string; description?: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.customerFlow.getByID('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
1271
1270
  perLanguage: {
1272
1271
  typescript: {
1273
1272
  method: 'client.customerFlow.getByID',
@@ -1294,25 +1293,24 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1294
1293
  'Creates a customer flow. A SCRIPTED flow carries a step graph and gets one way of running it per path through the graph; an IMPROV flow carries the briefs you send. Customer flows replace the older simulation scenarios, so build a flow for anything new.',
1295
1294
  stainlessPath: '(resource) customerFlow > (method) create',
1296
1295
  qualified: 'client.customerFlow.create',
1297
- params: [
1298
- "{ graph: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; }[]; title: string; type: 'SCRIPTED'; agentExpectations?: { prompt: string; }[]; agentIds?: string[]; branchingMode?: 'DETERMINISTIC' | 'ADAPTIVE'; description?: string; } | { agentIds: string[]; happyPath: { environmentId: string; personaOverrideId: string; title: string; precededByCustomerFlowId?: string; precededByCustomerFlowVariantId?: string; prompt?: string; }; title: string; type: 'IMPROV'; agentExpectations?: { prompt: string; }[]; description?: string; edgeCases?: { title: string; environmentId?: string; personaOverrideId?: string; precededByCustomerFlowId?: string; precededByCustomerFlowVariantId?: string; prompt?: string; }[]; };",
1299
- ],
1300
1296
  response:
1301
- "{ data: { id: string; agentExpectations: object[]; agents: object[]; branchingMode: 'DETERMINISTIC' | 'ADAPTIVE'; createdAt: string; edgeCases: object[]; happyPath: object; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'SCRIPTED'; updatedAt: string; description?: string; graph?: flow_step[]; } | { id: string; agentExpectations: object[]; agents: object[]; createdAt: string; edgeCases: object[]; happyPath: object; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'IMPROV'; updatedAt: string; description?: string; } | { id: string; agentExpectations: object[]; agents: object[]; createdAt: string; edgeCases: object[]; happyPath: object; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'VOICEMAIL'; updatedAt: string; description?: string; }; }",
1297
+ "{ data: { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; branchingMode: 'DETERMINISTIC' | 'ADAPTIVE'; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object[]; title: string; type: 'SCRIPTED'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object[]; title: string; type: 'SCRIPTED'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'SCRIPTED'; updatedAt: string; description?: string; graph?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'IMPROV'; updatedAt: string; description?: string; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'VOICEMAIL'; updatedAt: string; description?: string; }; }",
1298
+ markdown:
1299
+ "## create\n\n`client.customerFlow.create(): { data: object; }`\n\n**post** `/v1/customer-flow`\n\nCreates a customer flow. A SCRIPTED flow carries a step graph and gets one way of running it per path through the graph; an IMPROV flow carries the briefs you send. Customer flows replace the older simulation scenarios, so build a flow for anything new.\n\n### Returns\n\n- `{ data: { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; branchingMode: 'DETERMINISTIC' | 'ADAPTIVE'; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object[]; title: string; type: 'SCRIPTED'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object[]; title: string; type: 'SCRIPTED'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'SCRIPTED'; updatedAt: string; description?: string; graph?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'IMPROV'; updatedAt: string; description?: string; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'VOICEMAIL'; updatedAt: string; description?: string; }; }`\n\n - `data: { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; branchingMode: 'DETERMINISTIC' | 'ADAPTIVE'; createdAt: string; edgeCases: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'SCRIPTED'; updatedAt: string; description?: string; graph?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; }[]; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }[]; happyPath: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'IMPROV'; updatedAt: string; description?: string; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'VOICEMAIL'; updatedAt: string; description?: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst customerFlow = await client.customerFlow.create({\n graph: [{ type: 'AGENT_TURN' }],\n title: 'Reschedule an appointment',\n type: 'SCRIPTED',\n});\n\nconsole.log(customerFlow);\n```",
1302
1300
  perLanguage: {
1303
1301
  typescript: {
1304
1302
  method: 'client.customerFlow.create',
1305
1303
  example:
1306
- "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 customerFlow = await client.customerFlow.create({\n graph: [{ type: 'CUSTOMER_FIRST_MESSAGE' }],\n title: 'Reschedule an appointment',\n type: 'SCRIPTED',\n});\n\nconsole.log(customerFlow.data);",
1304
+ "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 customerFlow = await client.customerFlow.create({\n graph: [{ type: 'AGENT_TURN' }],\n title: 'Reschedule an appointment',\n type: 'SCRIPTED',\n});\n\nconsole.log(customerFlow.data);",
1307
1305
  },
1308
1306
  python: {
1309
1307
  method: 'customer_flow.create',
1310
1308
  example:
1311
- '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)\ncustomer_flow = client.customer_flow.create(\n graph=[{\n "type": "CUSTOMER_FIRST_MESSAGE"\n }],\n title="Reschedule an appointment",\n type="SCRIPTED",\n)\nprint(customer_flow.data)',
1309
+ '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)\ncustomer_flow = client.customer_flow.create(\n graph=[{\n "type": "AGENT_TURN"\n }],\n title="Reschedule an appointment",\n type="SCRIPTED",\n)\nprint(customer_flow.data)',
1312
1310
  },
1313
1311
  http: {
1314
1312
  example:
1315
- 'curl https://api.roark.ai/v1/customer-flow \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN" \\\n -d \'{\n "graph": [\n {\n "type": "CUSTOMER_FIRST_MESSAGE",\n "content": "Hi, I need to move my appointment.",\n "steps": []\n }\n ],\n "title": "Reschedule an appointment",\n "type": "SCRIPTED",\n "agentIds": [\n "7c9e6679-7425-40de-944b-e07fc1f90ae7"\n ]\n }\'',
1313
+ 'curl https://api.roark.ai/v1/customer-flow \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN" \\\n -d \'{\n "graph": [\n {\n "type": "AGENT_TURN"\n }\n ],\n "title": "Reschedule an appointment",\n "type": "SCRIPTED"\n }\'',
1316
1314
  },
1317
1315
  },
1318
1316
  },
@@ -1334,9 +1332,9 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1334
1332
  'title?: string;',
1335
1333
  ],
1336
1334
  response:
1337
- "{ data: { id: string; agentExpectations: object[]; agents: object[]; branchingMode: 'DETERMINISTIC' | 'ADAPTIVE'; createdAt: string; edgeCases: object[]; happyPath: object; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'SCRIPTED'; updatedAt: string; description?: string; graph?: flow_step[]; } | { id: string; agentExpectations: object[]; agents: object[]; createdAt: string; edgeCases: object[]; happyPath: object; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'IMPROV'; updatedAt: string; description?: string; } | { id: string; agentExpectations: object[]; agents: object[]; createdAt: string; edgeCases: object[]; happyPath: object; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'VOICEMAIL'; updatedAt: string; description?: string; }; }",
1335
+ "{ data: { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; branchingMode: 'DETERMINISTIC' | 'ADAPTIVE'; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object[]; title: string; type: 'SCRIPTED'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object[]; title: string; type: 'SCRIPTED'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'SCRIPTED'; updatedAt: string; description?: string; graph?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'IMPROV'; updatedAt: string; description?: string; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'VOICEMAIL'; updatedAt: string; description?: string; }; }",
1338
1336
  markdown:
1339
- "## update\n\n`client.customerFlow.update(flowId: string, agentExpectations?: { prompt: string; }[], agentIds?: string[], branchingMode?: 'DETERMINISTIC' | 'ADAPTIVE', description?: string, title?: string): { data: object | object | object; }`\n\n**put** `/v1/customer-flow/{flowId}`\n\nUpdates a flow's title, description, branching mode, linked agents or flow-level expectations. The step graph is replaced through PUT /graph.\n\n### Parameters\n\n- `flowId: string`\n\n- `agentExpectations?: { prompt: string; }[]`\n Replaces the flow-level expectations. Omit to leave them unchanged.\n\n- `agentIds?: string[]`\n Replaces the linked agents. Omit to leave them unchanged. An improv flow must keep at least one; a scripted flow can be left with none.\n\n- `branchingMode?: 'DETERMINISTIC' | 'ADAPTIVE'`\n Scripted flows only.\n\n- `description?: string`\n\n- `title?: string`\n\n### Returns\n\n- `{ data: { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; branchingMode: 'DETERMINISTIC' | 'ADAPTIVE'; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: flow_step[]; title: string; type: 'SCRIPTED'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: flow_step[]; title: string; type: 'SCRIPTED'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'SCRIPTED'; updatedAt: string; description?: string; graph?: object | object | object | object | object | object | object[]; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'IMPROV'; updatedAt: string; description?: string; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'VOICEMAIL'; updatedAt: string; description?: string; }; }`\n\n - `data: { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; branchingMode: 'DETERMINISTIC' | 'ADAPTIVE'; createdAt: string; edgeCases: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: flow_step[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: flow_step[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'SCRIPTED'; updatedAt: string; description?: string; graph?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; }[]; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }[]; happyPath: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'IMPROV'; updatedAt: string; description?: string; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'VOICEMAIL'; updatedAt: string; description?: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst customerFlow = await client.customerFlow.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(customerFlow);\n```",
1337
+ "## update\n\n`client.customerFlow.update(flowId: string, agentExpectations?: { prompt: string; }[], agentIds?: string[], branchingMode?: 'DETERMINISTIC' | 'ADAPTIVE', description?: string, title?: string): { data: object; }`\n\n**put** `/v1/customer-flow/{flowId}`\n\nUpdates a flow's title, description, branching mode, linked agents or flow-level expectations. The step graph is replaced through PUT /graph.\n\n### Parameters\n\n- `flowId: string`\n\n- `agentExpectations?: { prompt: string; }[]`\n Replaces the flow-level expectations. Omit to leave them unchanged.\n\n- `agentIds?: string[]`\n Replaces the linked agents. Omit to leave them unchanged. An improv flow must keep at least one; a scripted flow can be left with none.\n\n- `branchingMode?: 'DETERMINISTIC' | 'ADAPTIVE'`\n Scripted flows only.\n\n- `description?: string`\n\n- `title?: string`\n\n### Returns\n\n- `{ data: { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; branchingMode: 'DETERMINISTIC' | 'ADAPTIVE'; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object[]; title: string; type: 'SCRIPTED'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object[]; title: string; type: 'SCRIPTED'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'SCRIPTED'; updatedAt: string; description?: string; graph?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'IMPROV'; updatedAt: string; description?: string; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'VOICEMAIL'; updatedAt: string; description?: string; }; }`\n\n - `data: { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; branchingMode: 'DETERMINISTIC' | 'ADAPTIVE'; createdAt: string; edgeCases: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'SCRIPTED'; updatedAt: string; description?: string; graph?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; }[]; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }[]; happyPath: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'IMPROV'; updatedAt: string; description?: string; } | { id: string; agentExpectations: { id: string; prompt: string; }[]; agents: { id: string; createdAt: string; customId: string; description: string; name: string; updatedAt: string; }[]; createdAt: string; edgeCases: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }[]; happyPath: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; source: 'SYSTEM' | 'CUSTOM'; title: string; type: 'VOICEMAIL'; updatedAt: string; description?: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst customerFlow = await client.customerFlow.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(customerFlow);\n```",
1340
1338
  perLanguage: {
1341
1339
  typescript: {
1342
1340
  method: 'client.customerFlow.update',
@@ -1395,13 +1393,13 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1395
1393
  qualified: 'client.customerFlow.replaceGraph',
1396
1394
  params: [
1397
1395
  'flowId: string;',
1398
- "graph: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: flow_step[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; }[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: flow_step[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; }[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: flow_step[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; }[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: flow_step[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; }[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: flow_step[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; }[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: flow_step[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; }[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: flow_step[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; }[]; }[];",
1396
+ "graph: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; }[];",
1399
1397
  'allowUnmerge?: boolean;',
1400
1398
  ],
1401
1399
  response:
1402
- '{ data: { edgeCases: object | object | object[]; graph: flow_step[]; happyPath: object | object | object; variantsReshaped: boolean; warnings: string[]; }; }',
1400
+ "{ data: { edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }[]; graph: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; variantsReshaped: boolean; warnings: string[]; }; }",
1403
1401
  markdown:
1404
- "## replaceGraph\n\n`client.customerFlow.replaceGraph(flowId: string, graph: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: flow_step[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; }[], allowUnmerge?: boolean): { data: object; }`\n\n**put** `/v1/customer-flow/{flowId}/graph`\n\nReplaces a scripted flow's conversation graph with the tree you send. This is a full replace, not a merge:\na step you omit is removed.\n\nInclude `nodeId` on a step to update the existing one, omit it to create a new step. Where two branches\nrejoin, keep the `mergeIntoNodeIds` references a read gave you. Dropping them un-merges those branches\nand is refused unless `allowUnmerge` is set.\n\nA change to the set of paths re-seeds how the flow runs, which the response reports as\n`variantsReshaped` along with the resulting happy path and edge cases.\n\n### Parameters\n\n- `flowId: string`\n\n- `graph: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: flow_step[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; }[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: flow_step[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; }[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: flow_step[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; }[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: flow_step[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; }[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: flow_step[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; }[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: flow_step[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; }[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: flow_step[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; }[]; }[]`\n The complete graph. This replaces the flow's existing steps rather than merging into them.\n\n- `allowUnmerge?: boolean`\n Confirms a write that drops branches which currently rejoin. Only needed when the request omits mergeIntoNodeIds references the flow already had; a faithful round trip never needs it.\n\n### Returns\n\n- `{ data: { edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: flow_step[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }[]; graph: object | object | object | object | object | object | object[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: flow_step[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; variantsReshaped: boolean; warnings: string[]; }; }`\n\n - `data: { edgeCases: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: flow_step[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }[]; graph: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; }[]; happyPath: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: flow_step[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: flow_step[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; variantsReshaped: boolean; warnings: string[]; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.customerFlow.replaceGraph('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { graph: [{ type: 'AGENT_TURN' }] });\n\nconsole.log(response);\n```",
1402
+ "## replaceGraph\n\n`client.customerFlow.replaceGraph(flowId: string, graph: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; }[], allowUnmerge?: boolean): { data: object; }`\n\n**put** `/v1/customer-flow/{flowId}/graph`\n\nReplaces a scripted flow's conversation graph with the tree you send. This is a full replace, not a merge:\na step you omit is removed.\n\nInclude `nodeId` on a step to update the existing one, omit it to create a new step. Where two branches\nrejoin, keep the `mergeIntoNodeIds` references a read gave you. Dropping them un-merges those branches\nand is refused unless `allowUnmerge` is set.\n\nA change to the set of paths re-seeds how the flow runs, which the response reports as\n`variantsReshaped` along with the resulting happy path and edge cases.\n\n### Parameters\n\n- `flowId: string`\n\n- `graph: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; }[]`\n The complete graph. This replaces the flow's existing steps rather than merging into them.\n\n- `allowUnmerge?: boolean`\n Confirms a write that drops branches which currently rejoin. Only needed when the request omits mergeIntoNodeIds references the flow already had; a faithful round trip never needs it.\n\n### Returns\n\n- `{ data: { edgeCases: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }[]; graph: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; happyPath: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; variantsReshaped: boolean; warnings: string[]; }; }`\n\n - `data: { edgeCases: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }[]; graph: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; }[]; happyPath: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; variantsReshaped: boolean; warnings: string[]; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.customerFlow.replaceGraph('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n graph: [{ type: 'AGENT_TURN' }],\n});\n\nconsole.log(response);\n```",
1405
1403
  perLanguage: {
1406
1404
  typescript: {
1407
1405
  method: 'client.customerFlow.replaceGraph',
@@ -1439,9 +1437,9 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1439
1437
  'title?: string;',
1440
1438
  ],
1441
1439
  response:
1442
- "{ data: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: flow_step[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; }",
1440
+ "{ data: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; }",
1443
1441
  markdown:
1444
- "## updateHappyPath\n\n`client.customerFlow.updateHappyPath(flowId: string, additionalExpectations?: { prompt: string; }[], environmentId?: string, personaOverrideId?: string, precededByCustomerFlowId?: string, precededByCustomerFlowVariantId?: string, prompt?: string, title?: string): { data: object | object | object; }`\n\n**put** `/v1/customer-flow/{flowId}/happy-path`\n\nUpdates the happy path's title, persona, environment, brief or expectations. Omitted fields are left\nalone; `additionalExpectations` replaces the set wholesale rather than appending.\n\nIts persona and environment are what the edge cases inherit, so changing them here changes every edge\ncase that does not name its own.\n\n### Parameters\n\n- `flowId: string`\n\n- `additionalExpectations?: { prompt: string; }[]`\n Replaces the expectations that apply to this variant on top of the flow's. Omit to leave them alone, send [] to clear. Improv flows only: a scripted variant's expectations come from the agent turns on its path and are rewritten on the next graph edit.\n\n- `environmentId?: string`\n\n- `personaOverrideId?: string`\n The persona this runs as. Null on an edge case inherits the happy path's.\n\n- `precededByCustomerFlowId?: string`\n\n- `precededByCustomerFlowVariantId?: string`\n\n- `prompt?: string`\n\n- `title?: string`\n\n### Returns\n\n- `{ data: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object | object | object | object | object | object | object[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; }`\n\n - `data: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.customerFlow.updateHappyPath('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
1442
+ "## updateHappyPath\n\n`client.customerFlow.updateHappyPath(flowId: string, additionalExpectations?: { prompt: string; }[], environmentId?: string, personaOverrideId?: string, precededByCustomerFlowId?: string, precededByCustomerFlowVariantId?: string, prompt?: string, title?: string): { data: object; }`\n\n**put** `/v1/customer-flow/{flowId}/happy-path`\n\nUpdates the happy path's title, persona, environment, brief or expectations. Omitted fields are left\nalone; `additionalExpectations` replaces the set wholesale rather than appending.\n\nIts persona and environment are what the edge cases inherit, so changing them here changes every edge\ncase that does not name its own.\n\n### Parameters\n\n- `flowId: string`\n\n- `additionalExpectations?: { prompt: string; }[]`\n Replaces the expectations that apply to this variant on top of the flow's. Omit to leave them alone, send [] to clear. Improv flows only: a scripted variant's expectations come from the agent turns on its path and are rewritten on the next graph edit.\n\n- `environmentId?: string`\n\n- `personaOverrideId?: string`\n The persona this runs as. Null on an edge case inherits the happy path's.\n\n- `precededByCustomerFlowId?: string`\n\n- `precededByCustomerFlowVariantId?: string`\n\n- `prompt?: string`\n\n- `title?: string`\n\n### Returns\n\n- `{ data: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; }`\n\n - `data: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.customerFlow.updateHappyPath('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e');\n\nconsole.log(response);\n```",
1445
1443
  perLanguage: {
1446
1444
  typescript: {
1447
1445
  method: 'client.customerFlow.updateHappyPath',
@@ -1478,9 +1476,9 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1478
1476
  'prompt?: string;',
1479
1477
  ],
1480
1478
  response:
1481
- "{ data: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: flow_step[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; }",
1479
+ "{ data: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; }",
1482
1480
  markdown:
1483
- "## add\n\n`client.customerFlowEdgeCase.add(flowId: string, title: string, environmentId?: string, personaOverrideId?: string, precededByCustomerFlowId?: string, precededByCustomerFlowVariantId?: string, prompt?: string): { data: object | object | object; }`\n\n**post** `/v1/customer-flow/{flowId}/edge-case`\n\nAdds a variant to an IMPROV flow.\n\nA scripted flow's variants are owned by the path engine, one per path through the graph, so they are\ncreated by editing the graph through PUT /v1/customer-flow/{flowId}/graph rather than here.\n\nLeave personaOverrideId or environmentId unset to inherit the happy path's.\n\n### Parameters\n\n- `flowId: string`\n\n- `title: string`\n\n- `environmentId?: string`\n\n- `personaOverrideId?: string`\n The persona this runs as. Omit to inherit the happy path's.\n\n- `precededByCustomerFlowId?: string`\n\n- `precededByCustomerFlowVariantId?: string`\n\n- `prompt?: string`\n\n### Returns\n\n- `{ data: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object | object | object | object | object | object | object[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; }`\n\n - `data: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.customerFlowEdgeCase.add('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { title: 'x' });\n\nconsole.log(response);\n```",
1481
+ "## add\n\n`client.customerFlowEdgeCase.add(flowId: string, title: string, environmentId?: string, personaOverrideId?: string, precededByCustomerFlowId?: string, precededByCustomerFlowVariantId?: string, prompt?: string): { data: object; }`\n\n**post** `/v1/customer-flow/{flowId}/edge-case`\n\nAdds a variant to an IMPROV flow.\n\nA scripted flow's variants are owned by the path engine, one per path through the graph, so they are\ncreated by editing the graph through PUT /v1/customer-flow/{flowId}/graph rather than here.\n\nLeave personaOverrideId or environmentId unset to inherit the happy path's.\n\n### Parameters\n\n- `flowId: string`\n\n- `title: string`\n\n- `environmentId?: string`\n\n- `personaOverrideId?: string`\n The persona this runs as. Omit to inherit the happy path's.\n\n- `precededByCustomerFlowId?: string`\n\n- `precededByCustomerFlowVariantId?: string`\n\n- `prompt?: string`\n\n### Returns\n\n- `{ data: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; }`\n\n - `data: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.customerFlowEdgeCase.add('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n title: 'x',\n});\n\nconsole.log(response);\n```",
1484
1482
  perLanguage: {
1485
1483
  typescript: {
1486
1484
  method: 'client.customerFlowEdgeCase.add',
@@ -1519,9 +1517,9 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1519
1517
  'title?: string;',
1520
1518
  ],
1521
1519
  response:
1522
- "{ data: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: flow_step[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; }",
1520
+ "{ data: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; }",
1523
1521
  markdown:
1524
- "## update\n\n`client.customerFlowEdgeCase.update(flowId: string, edgeCaseId: string, additionalExpectations?: { prompt: string; }[], environmentId?: string, personaOverrideId?: string, precededByCustomerFlowId?: string, precededByCustomerFlowVariantId?: string, prompt?: string, title?: string): { data: object | object | object; }`\n\n**put** `/v1/customer-flow/{flowId}/edge-case/{edgeCaseId}`\n\nUpdates an edge case's title, persona, environment, brief, preceded-by link or expectations. Omitted fields are left alone; `additionalExpectations` replaces the set wholesale rather than appending. Promoting it to the happy path is a separate call, since that also demotes the incumbent.\n\n### Parameters\n\n- `flowId: string`\n\n- `edgeCaseId: string`\n\n- `additionalExpectations?: { prompt: string; }[]`\n Replaces the expectations that apply to this variant on top of the flow's. Omit to leave them alone, send [] to clear. Improv flows only: a scripted variant's expectations come from the agent turns on its path and are rewritten on the next graph edit.\n\n- `environmentId?: string`\n\n- `personaOverrideId?: string`\n The persona this runs as. Null on an edge case inherits the happy path's.\n\n- `precededByCustomerFlowId?: string`\n\n- `precededByCustomerFlowVariantId?: string`\n\n- `prompt?: string`\n\n- `title?: string`\n\n### Returns\n\n- `{ data: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object | object | object | object | object | object | object[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; }`\n\n - `data: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst customerFlowEdgeCase = await client.customerFlowEdgeCase.update('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { flowId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(customerFlowEdgeCase);\n```",
1522
+ "## update\n\n`client.customerFlowEdgeCase.update(flowId: string, edgeCaseId: string, additionalExpectations?: { prompt: string; }[], environmentId?: string, personaOverrideId?: string, precededByCustomerFlowId?: string, precededByCustomerFlowVariantId?: string, prompt?: string, title?: string): { data: object; }`\n\n**put** `/v1/customer-flow/{flowId}/edge-case/{edgeCaseId}`\n\nUpdates an edge case's title, persona, environment, brief, preceded-by link or expectations. Omitted fields are left alone; `additionalExpectations` replaces the set wholesale rather than appending. Promoting it to the happy path is a separate call, since that also demotes the incumbent.\n\n### Parameters\n\n- `flowId: string`\n\n- `edgeCaseId: string`\n\n- `additionalExpectations?: { prompt: string; }[]`\n Replaces the expectations that apply to this variant on top of the flow's. Omit to leave them alone, send [] to clear. Improv flows only: a scripted variant's expectations come from the agent turns on its path and are rewritten on the next graph edit.\n\n- `environmentId?: string`\n\n- `personaOverrideId?: string`\n The persona this runs as. Null on an edge case inherits the happy path's.\n\n- `precededByCustomerFlowId?: string`\n\n- `precededByCustomerFlowVariantId?: string`\n\n- `prompt?: string`\n\n- `title?: string`\n\n### Returns\n\n- `{ data: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; }`\n\n - `data: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst customerFlowEdgeCase = await client.customerFlowEdgeCase.update(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { flowId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(customerFlowEdgeCase);\n```",
1525
1523
  perLanguage: {
1526
1524
  typescript: {
1527
1525
  method: 'client.customerFlowEdgeCase.update',
@@ -1551,7 +1549,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1551
1549
  params: ['flowId: string;', 'edgeCaseId: string;'],
1552
1550
  response: '{ data: { deleted: boolean; }; }',
1553
1551
  markdown:
1554
- "## remove\n\n`client.customerFlowEdgeCase.remove(flowId: string, edgeCaseId: string): { data: object; }`\n\n**delete** `/v1/customer-flow/{flowId}/edge-case/{edgeCaseId}`\n\nSoft-deletes a variant. On a scripted flow the path engine re-creates a variant for any path still in the graph, so remove the path through PUT /graph instead if that is what you meant.\n\n### Parameters\n\n- `flowId: string`\n\n- `edgeCaseId: string`\n\n### Returns\n\n- `{ data: { deleted: boolean; }; }`\n\n - `data: { deleted: boolean; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst customerFlowEdgeCase = await client.customerFlowEdgeCase.remove('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { flowId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(customerFlowEdgeCase);\n```",
1552
+ "## remove\n\n`client.customerFlowEdgeCase.remove(flowId: string, edgeCaseId: string): { data: object; }`\n\n**delete** `/v1/customer-flow/{flowId}/edge-case/{edgeCaseId}`\n\nSoft-deletes a variant. On a scripted flow the path engine re-creates a variant for any path still in the graph, so remove the path through PUT /graph instead if that is what you meant.\n\n### Parameters\n\n- `flowId: string`\n\n- `edgeCaseId: string`\n\n### Returns\n\n- `{ data: { deleted: boolean; }; }`\n\n - `data: { deleted: boolean; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst customerFlowEdgeCase = await client.customerFlowEdgeCase.remove(\n '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n { flowId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' },\n);\n\nconsole.log(customerFlowEdgeCase);\n```",
1555
1553
  perLanguage: {
1556
1554
  typescript: {
1557
1555
  method: 'client.customerFlowEdgeCase.remove',
@@ -1561,7 +1559,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1561
1559
  python: {
1562
1560
  method: 'customer_flow_edge_case.remove',
1563
1561
  example:
1564
- '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)\ncustomer_flow_edge_case = client.customer_flow_edge_case.remove(\n edge_case_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n flow_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(customer_flow_edge_case.data)',
1562
+ '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)\ncustomer_flow_edge_case = client.customer_flow_edge_case.remove(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n flow_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(customer_flow_edge_case.data)',
1565
1563
  },
1566
1564
  http: {
1567
1565
  example:
@@ -1580,9 +1578,9 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1580
1578
  qualified: 'client.customerFlowEdgeCase.promote',
1581
1579
  params: ['flowId: string;', 'edgeCaseId: string;'],
1582
1580
  response:
1583
- "{ data: { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: flow_step[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: object[]; createdAt: string; environment: object; isGenerated: boolean; personaOverride: object; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; }",
1581
+ "{ data: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; }",
1584
1582
  markdown:
1585
- "## promote\n\n`client.customerFlowEdgeCase.promote(flowId: string, edgeCaseId: string): { data: object | object | object; }`\n\n**post** `/v1/customer-flow/{flowId}/edge-case/{edgeCaseId}/promote`\n\nMakes this edge case the flow's happy path, and the outgoing happy path an edge case. Its persona and environment are baked into it first, so edge cases that were inheriting keep the configuration they had.\n\n### Parameters\n\n- `flowId: string`\n\n- `edgeCaseId: string`\n\n### Returns\n\n- `{ data: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: object | object | object | object | object | object | object[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; }`\n\n - `data: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object | object | object | object | object | object | object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object | object | object | object | object | object | object[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.customerFlowEdgeCase.promote('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', { flowId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e' });\n\nconsole.log(response);\n```",
1583
+ "## promote\n\n`client.customerFlowEdgeCase.promote(flowId: string, edgeCaseId: string): { data: object; }`\n\n**post** `/v1/customer-flow/{flowId}/edge-case/{edgeCaseId}/promote`\n\nMakes this edge case the flow's happy path, and the outgoing happy path an edge case. Its persona and environment are baked into it first, so edge cases that were inheriting keep the configuration they had.\n\n### Parameters\n\n- `flowId: string`\n\n- `edgeCaseId: string`\n\n### Returns\n\n- `{ data: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }; }`\n\n - `data: { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; steps: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: { type: 'AGENT_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_TURN'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_FIRST_MESSAGE'; content?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'CUSTOMER_SILENCE'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; silenceDurationSeconds?: number; steps?: object[]; } | { type: 'CUSTOMER_DTMF'; dtmfDigits?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'VOICEMAIL'; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; } | { type: 'SCENARIO_LINK'; linkedCustomerFlowId?: string; linkedCustomerFlowVariantId?: string; mergeIntoNodeIds?: string[]; nodeId?: string; ref?: string; steps?: object[]; }[]; }[]; title: string; type: 'SCRIPTED'; updatedAt: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'IMPROV'; updatedAt: string; prompt?: string; } | { id: string; additionalExpectations: { id: string; prompt: string; }[]; createdAt: string; environment: { id: string; backgroundNoise: string; createdAt: string; name: string; updatedAt: string; description?: string; }; isGenerated: boolean; personaOverride: { id: string; accent: string; age: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise: string; baseEmotion: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle: 'EXPLICIT' | 'VAGUE'; createdAt: string; gender: 'MALE' | 'FEMALE'; hasDisfluencies: boolean; idleMessageMaxSpokenCount: number; idleMessageResetCountOnUserSpeechEnabled: boolean; idleMessages: string[]; idleTimeoutSeconds: number; intentClarity: 'CLEAR' | 'INDIRECT' | 'VAGUE'; language: string; memoryReliability: 'HIGH' | 'LOW'; name: string; properties: object; responseTiming: 'RELAXED' | 'NORMAL' | 'QUICK'; speechClarity: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages: string[]; updatedAt: string; backstoryPrompt?: string; description?: string; secondaryLanguage?: 'EN'; }; precededByCustomerFlowId: string; precededByCustomerFlowVariantId: string; title: string; type: 'VOICEMAIL'; updatedAt: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.customerFlowEdgeCase.promote('182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e', {\n flowId: '182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e',\n});\n\nconsole.log(response);\n```",
1586
1584
  perLanguage: {
1587
1585
  typescript: {
1588
1586
  method: 'client.customerFlowEdgeCase.promote',
@@ -1592,11 +1590,11 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1592
1590
  python: {
1593
1591
  method: 'customer_flow_edge_case.promote',
1594
1592
  example:
1595
- '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.customer_flow_edge_case.promote(\n edge_case_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n flow_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.data)',
1593
+ '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.customer_flow_edge_case.promote(\n "182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n flow_id="182bd5e5-6e1a-4fe4-a799-aa6d9a6ab26e",\n)\nprint(response.data)',
1596
1594
  },
1597
1595
  http: {
1598
1596
  example:
1599
- 'curl https://api.roark.ai/v1/customer-flow/$FLOW_ID/edge-case/$EDGE_CASE_ID/promote \\\n -X POST \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN"',
1597
+ 'curl https://api.roark.ai/v1/customer-flow/$FLOW_ID/edge-case/$EDGE_CASE_ID/promote \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN"',
1600
1598
  },
1601
1599
  },
1602
1600
  },
@@ -1933,7 +1931,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
1933
1931
  response:
1934
1932
  "{ data: { id: string; body: string; createdAt: string; description: string; headers: object; method: 'POST' | 'PUT' | 'PATCH' | 'GET'; parsedBody: object | string; scope: 'AGENT_OUTBOUND_DIAL'; signingSecret: string; updatedAt: string; url: string; }; }",
1935
1933
  markdown:
1936
- "## create\n\n`client.httpRequestDefinition.create(scope: 'AGENT_OUTBOUND_DIAL', url: string, body?: string | object, description?: string, headers?: object, method?: 'POST' | 'PUT' | 'PATCH' | 'GET'): { data: object; }`\n\n**post** `/v1/http-request-definition`\n\nCreates a new HTTP request definition. The signing secret is only returned in this response and cannot be retrieved later.\n\n### Parameters\n\n- `scope: 'AGENT_OUTBOUND_DIAL'`\n Scope: AGENT_OUTBOUND_DIAL\n\n- `url: string`\n URL for the HTTP request\n\n- `body?: string | object`\n Request body template. Accepts a JSON object or a string with placeholders like {{phoneNumberToDial}}. Objects are serialized to JSON for storage.\n\n- `description?: string`\n Description of the HTTP request definition\n\n- `headers?: object`\n Request headers as key-value pairs\n\n- `method?: 'POST' | 'PUT' | 'PATCH' | 'GET'`\n HTTP method (default: POST)\n\n### Returns\n\n- `{ data: { id: string; body: string; createdAt: string; description: string; headers: object; method: 'POST' | 'PUT' | 'PATCH' | 'GET'; parsedBody: object | string; scope: 'AGENT_OUTBOUND_DIAL'; signingSecret: string; updatedAt: string; url: string; }; }`\n\n - `data: { id: string; body: string; createdAt: string; description: string; headers: object; method: 'POST' | 'PUT' | 'PATCH' | 'GET'; parsedBody: object | string; scope: 'AGENT_OUTBOUND_DIAL'; signingSecret: string; updatedAt: string; url: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst httpRequestDefinition = await client.httpRequestDefinition.create({ scope: 'AGENT_OUTBOUND_DIAL', url: 'https://example.com' });\n\nconsole.log(httpRequestDefinition);\n```",
1934
+ "## create\n\n`client.httpRequestDefinition.create(scope: 'AGENT_OUTBOUND_DIAL', url: string, body?: string | object, description?: string, headers?: object, method?: 'POST' | 'PUT' | 'PATCH' | 'GET'): { data: object; }`\n\n**post** `/v1/http-request-definition`\n\nCreates a new HTTP request definition. The signing secret is only returned in this response and cannot be retrieved later.\n\n### Parameters\n\n- `scope: 'AGENT_OUTBOUND_DIAL'`\n Scope: AGENT_OUTBOUND_DIAL\n\n- `url: string`\n URL for the HTTP request\n\n- `body?: string | object`\n Request body template. Accepts a JSON object or a string with placeholders like {{phoneNumberToDial}}. Objects are serialized to JSON for storage.\n\n- `description?: string`\n Description of the HTTP request definition\n\n- `headers?: object`\n Request headers as key-value pairs\n\n- `method?: 'POST' | 'PUT' | 'PATCH' | 'GET'`\n HTTP method (default: POST)\n\n### Returns\n\n- `{ data: { id: string; body: string; createdAt: string; description: string; headers: object; method: 'POST' | 'PUT' | 'PATCH' | 'GET'; parsedBody: object | string; scope: 'AGENT_OUTBOUND_DIAL'; signingSecret: string; updatedAt: string; url: string; }; }`\n\n - `data: { id: string; body: string; createdAt: string; description: string; headers: object; method: 'POST' | 'PUT' | 'PATCH' | 'GET'; parsedBody: object | string; scope: 'AGENT_OUTBOUND_DIAL'; signingSecret: string; updatedAt: string; url: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst httpRequestDefinition = await client.httpRequestDefinition.create({\n scope: 'AGENT_OUTBOUND_DIAL',\n url: 'https://example.com',\n});\n\nconsole.log(httpRequestDefinition);\n```",
1937
1935
  perLanguage: {
1938
1936
  typescript: {
1939
1937
  method: 'client.httpRequestDefinition.create',
@@ -2061,7 +2059,7 @@ const EMBEDDED_METHODS: MethodEntry[] = [
2061
2059
  response:
2062
2060
  '{ data: { id: string; createdAt: string; description: string; events: string[]; headers: object; signingSecret: string; updatedAt: string; url: string; }; }',
2063
2061
  markdown:
2064
- "## create\n\n`client.webhook.create(events: string[], url: string, description?: string, headers?: object): { data: object; }`\n\n**post** `/v1/webhook`\n\nCreates a new webhook with event subscriptions. The signing secret is only returned in this response.\n\n### Parameters\n\n- `events: string[]`\n Event types to subscribe to (at least one required)\n\n- `url: string`\n Webhook URL\n\n- `description?: string`\n Webhook description\n\n- `headers?: object`\n Request headers (e.g. authorization tokens)\n\n### Returns\n\n- `{ data: { id: string; createdAt: string; description: string; events: string[]; headers: object; signingSecret: string; updatedAt: string; url: string; }; }`\n\n - `data: { id: string; createdAt: string; description: string; events: string[]; headers: object; signingSecret: string; updatedAt: string; url: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst webhook = await client.webhook.create({ events: ['CALL_ANALYSIS_COMPLETED'], url: 'https://example.com' });\n\nconsole.log(webhook);\n```",
2062
+ "## create\n\n`client.webhook.create(events: string[], url: string, description?: string, headers?: object): { data: object; }`\n\n**post** `/v1/webhook`\n\nCreates a new webhook with event subscriptions. The signing secret is only returned in this response.\n\n### Parameters\n\n- `events: string[]`\n Event types to subscribe to (at least one required)\n\n- `url: string`\n Webhook URL\n\n- `description?: string`\n Webhook description\n\n- `headers?: object`\n Request headers (e.g. authorization tokens)\n\n### Returns\n\n- `{ data: { id: string; createdAt: string; description: string; events: string[]; headers: object; signingSecret: string; updatedAt: string; url: string; }; }`\n\n - `data: { id: string; createdAt: string; description: string; events: string[]; headers: object; signingSecret: string; updatedAt: string; url: string; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst webhook = await client.webhook.create({\n events: ['CALL_ANALYSIS_COMPLETED'],\n url: 'https://example.com',\n});\n\nconsole.log(webhook);\n```",
2065
2063
  perLanguage: {
2066
2064
  typescript: {
2067
2065
  method: 'client.webhook.create',
@@ -2114,31 +2112,31 @@ const EMBEDDED_METHODS: MethodEntry[] = [
2114
2112
  httpMethod: 'post',
2115
2113
  summary: 'Diff a config bundle',
2116
2114
  description:
2117
- 'Dry run: returns the changes reconcile a config-as-code bundle into the project. Submit the full desired set of resources; resources already managed by config are updated, new ones created, and (unless prune is false) config-managed resources absent from the bundle are deleted. Identity is by name — no ids in the bundle. No writes are performed.',
2115
+ 'Dry run for a config-as-code apply: returns the projected changes (create / update / delete) for the submitted bundle without writing anything. Submit the full desired set of resources; identity is by name — no ids in the bundle. Run this before apply to preview what would change.',
2118
2116
  stainlessPath: '(resource) config > (method) diff',
2119
2117
  qualified: 'client.config.diff',
2120
2118
  params: [
2121
- "resources: { kind: 'agent'; name: string; customId?: string; description?: string; endpoints?: { direction: 'INCOMING' | 'OUTGOING' | 'INCOMING_AND_OUTGOING'; name: string; value: string; environment?: string; }[]; } | { accent: string; gender: 'MALE' | 'FEMALE'; kind: 'persona'; language: string; name: string; backgroundNoise?: string; backstoryPrompt?: string; baseEmotion?: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle?: 'EXPLICIT' | 'VAGUE'; description?: string; displayName?: string; hasDisfluencies?: boolean; idleMessageMaxSpokenCount?: number; idleMessageResetCountOnUserSpeechEnabled?: boolean; idleMessages?: string[]; idleTimeoutSeconds?: number; intentClarity?: 'CLEAR' | 'INDIRECT' | 'VAGUE'; memoryReliability?: 'HIGH' | 'LOW'; properties?: object; responseTiming?: 'RELAXED' | 'NORMAL' | 'QUICK'; secondaryLanguage?: 'EN'; speechClarity?: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace?: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages?: string[]; } | { agents: string[]; happyPath: { environment: string; persona: string; expectations?: string[]; prompt?: string; title?: string; }; kind: 'flow'; name: string; type: 'improv'; description?: string; edgeCases?: { name: string; environment?: string; expectations?: string[]; persona?: string; prompt?: string; title?: string; }[]; expectations?: string[]; title?: string; } | { graph: { type: string; content?: string; dtmfDigits?: string; flow?: string; mergeInto?: string[]; ref?: string; silenceDurationSeconds?: number; steps?: object[]; }[]; kind: 'flow'; name: string; type: 'scripted'; agents?: string[]; branchingMode?: 'DETERMINISTIC' | 'ADAPTIVE'; description?: string; expectations?: string[]; title?: string; } | { kind: 'collector'; metrics: string[]; modality: 'call' | 'chat'; name: string; filters?: { conditions: { key: string; type: 'AGENT' | 'CALL_SOURCE' | 'CALL_PROPERTY' | 'INTEGRATION'; operator?: string; value?: string; }[]; }[]; status?: 'ACTIVE' | 'INACTIVE'; } | { kind: 'metric'; name: string; prompt: string; type: 'BOOLEAN' | 'SCALE' | 'NUMERIC' | 'TEXT' | 'CLASSIFICATION'; contexts?: 'CALL' | 'SEGMENT' | 'TURN'[]; displayName?: string; falseLabel?: string; maxSelections?: number; options?: { displayOrder: number; label: string; description?: string; }[]; participantRole?: 'AGENT' | 'CUSTOMER'; scaleLabels?: { displayOrder: number; label: string; rangeMax: number; rangeMin: number; colorHex?: string; description?: string; }[]; scaleMax?: number; scaleMin?: number; scope?: 'GLOBAL' | 'PER_PARTICIPANT'; trueLabel?: string; }[];",
2119
+ "resources: { kind: 'agent'; name: string; customId?: string; description?: string; endpoints?: { direction: 'INCOMING' | 'OUTGOING' | 'INCOMING_AND_OUTGOING'; name: string; value: string; environment?: string; }[]; } | { accent: string; gender: 'MALE' | 'FEMALE'; kind: 'persona'; language: string; name: string; age?: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise?: string; backstoryPrompt?: string; baseEmotion?: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle?: 'EXPLICIT' | 'VAGUE'; description?: string; displayName?: string; hasDisfluencies?: boolean; idleMessageMaxSpokenCount?: number; idleMessageResetCountOnUserSpeechEnabled?: boolean; idleMessages?: string[]; idleTimeoutSeconds?: number; intentClarity?: 'CLEAR' | 'INDIRECT' | 'VAGUE'; memoryReliability?: 'HIGH' | 'LOW'; properties?: object; responseTiming?: 'RELAXED' | 'NORMAL' | 'QUICK'; secondaryLanguage?: 'EN'; speechClarity?: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace?: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages?: string[]; } | { agents: string[]; happyPath: { environment: string; persona: string; expectations?: string[]; prompt?: string; title?: string; }; kind: 'flow'; name: string; type: 'improv'; description?: string; edgeCases?: { name: string; environment?: string; expectations?: string[]; persona?: string; prompt?: string; title?: string; }[]; expectations?: string[]; title?: string; } | { graph: { type: 'AGENT_TURN' | 'CUSTOMER_TURN' | 'CUSTOMER_FIRST_MESSAGE' | 'CUSTOMER_SILENCE' | 'CUSTOMER_DTMF' | 'VOICEMAIL' | 'SCENARIO_LINK'; content?: string; dtmfDigits?: string; flow?: string; mergeInto?: string[]; ref?: string; silenceDurationSeconds?: number; steps?: object[]; }[]; kind: 'flow'; name: string; type: 'scripted'; agents?: string[]; branchingMode?: 'DETERMINISTIC' | 'ADAPTIVE'; description?: string; expectations?: string[]; title?: string; } | { kind: 'collector'; metrics: string[]; modality: 'call' | 'chat'; name: string; filters?: { conditions: object[]; }[]; status?: 'ACTIVE' | 'INACTIVE'; } | { kind: 'metric'; name: string; prompt: string; type: 'BOOLEAN' | 'SCALE' | 'NUMERIC' | 'TEXT' | 'CLASSIFICATION'; contexts?: 'CALL' | 'SEGMENT' | 'TURN'[]; displayName?: string; falseLabel?: string; maxSelections?: number; options?: { displayOrder: number; label: string; description?: string; }[]; participantRole?: 'AGENT' | 'CUSTOMER'; scaleLabels?: { displayOrder: number; label: string; rangeMax: number; rangeMin: number; colorHex?: string; description?: string; }[]; scaleMax?: number; scaleMin?: number; scope?: 'GLOBAL' | 'PER_PARTICIPANT'; trueLabel?: string; }[];",
2122
2120
  'prune?: boolean;',
2123
2121
  ],
2124
2122
  response:
2125
2123
  "{ data: { changes: { configKey: string; kind: 'agent' | 'persona' | 'flow' | 'collector' | 'metric'; name: string; op: 'create' | 'update' | 'delete' | 'noop'; detail?: string; }[]; summary: { create: number; delete: number; noop: number; update: number; }; }; }",
2126
2124
  markdown:
2127
- "## diff\n\n`client.config.diff(resources: { kind: 'agent'; name: string; customId?: string; description?: string; endpoints?: { direction: 'INCOMING' | 'OUTGOING' | 'INCOMING_AND_OUTGOING'; name: string; value: string; environment?: string; }[]; } | { accent: string; gender: 'MALE' | 'FEMALE'; kind: 'persona'; language: string; name: string; backgroundNoise?: string; backstoryPrompt?: string; baseEmotion?: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle?: 'EXPLICIT' | 'VAGUE'; description?: string; displayName?: string; hasDisfluencies?: boolean; idleMessageMaxSpokenCount?: number; idleMessageResetCountOnUserSpeechEnabled?: boolean; idleMessages?: string[]; idleTimeoutSeconds?: number; intentClarity?: 'CLEAR' | 'INDIRECT' | 'VAGUE'; memoryReliability?: 'HIGH' | 'LOW'; properties?: object; responseTiming?: 'RELAXED' | 'NORMAL' | 'QUICK'; secondaryLanguage?: 'EN'; speechClarity?: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace?: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages?: string[]; } | { agents: string[]; happyPath: { environment: string; persona: string; expectations?: string[]; prompt?: string; title?: string; }; kind: 'flow'; name: string; type: 'improv'; description?: string; edgeCases?: { name: string; environment?: string; expectations?: string[]; persona?: string; prompt?: string; title?: string; }[]; expectations?: string[]; title?: string; } | { graph: { type: string; content?: string; dtmfDigits?: string; flow?: string; mergeInto?: string[]; ref?: string; silenceDurationSeconds?: number; steps?: object[]; }[]; kind: 'flow'; name: string; type: 'scripted'; agents?: string[]; branchingMode?: 'DETERMINISTIC' | 'ADAPTIVE'; description?: string; expectations?: string[]; title?: string; } | { kind: 'collector'; metrics: string[]; modality: 'call' | 'chat'; name: string; filters?: { conditions: object[]; }[]; status?: 'ACTIVE' | 'INACTIVE'; } | { kind: 'metric'; name: string; prompt: string; type: 'BOOLEAN' | 'SCALE' | 'NUMERIC' | 'TEXT' | 'CLASSIFICATION'; contexts?: 'CALL' | 'SEGMENT' | 'TURN'[]; displayName?: string; falseLabel?: string; maxSelections?: number; options?: { displayOrder: number; label: string; description?: string; }[]; participantRole?: 'AGENT' | 'CUSTOMER'; scaleLabels?: { displayOrder: number; label: string; rangeMax: number; rangeMin: number; colorHex?: string; description?: string; }[]; scaleMax?: number; scaleMin?: number; scope?: 'GLOBAL' | 'PER_PARTICIPANT'; trueLabel?: string; }[], prune?: boolean): { data: object; }`\n\n**post** `/v1/config/diff`\n\nDry run: returns the changes reconcile a config-as-code bundle into the project. Submit the full desired set of resources; resources already managed by config are updated, new ones created, and (unless prune is false) config-managed resources absent from the bundle are deleted. Identity is by name — no ids in the bundle. No writes are performed.\n\n### Parameters\n\n- `resources: { kind: 'agent'; name: string; customId?: string; description?: string; endpoints?: { direction: 'INCOMING' | 'OUTGOING' | 'INCOMING_AND_OUTGOING'; name: string; value: string; environment?: string; }[]; } | { accent: string; gender: 'MALE' | 'FEMALE'; kind: 'persona'; language: string; name: string; backgroundNoise?: string; backstoryPrompt?: string; baseEmotion?: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle?: 'EXPLICIT' | 'VAGUE'; description?: string; displayName?: string; hasDisfluencies?: boolean; idleMessageMaxSpokenCount?: number; idleMessageResetCountOnUserSpeechEnabled?: boolean; idleMessages?: string[]; idleTimeoutSeconds?: number; intentClarity?: 'CLEAR' | 'INDIRECT' | 'VAGUE'; memoryReliability?: 'HIGH' | 'LOW'; properties?: object; responseTiming?: 'RELAXED' | 'NORMAL' | 'QUICK'; secondaryLanguage?: 'EN'; speechClarity?: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace?: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages?: string[]; } | { agents: string[]; happyPath: { environment: string; persona: string; expectations?: string[]; prompt?: string; title?: string; }; kind: 'flow'; name: string; type: 'improv'; description?: string; edgeCases?: { name: string; environment?: string; expectations?: string[]; persona?: string; prompt?: string; title?: string; }[]; expectations?: string[]; title?: string; } | { graph: { type: string; content?: string; dtmfDigits?: string; flow?: string; mergeInto?: string[]; ref?: string; silenceDurationSeconds?: number; steps?: object[]; }[]; kind: 'flow'; name: string; type: 'scripted'; agents?: string[]; branchingMode?: 'DETERMINISTIC' | 'ADAPTIVE'; description?: string; expectations?: string[]; title?: string; } | { kind: 'collector'; metrics: string[]; modality: 'call' | 'chat'; name: string; filters?: { conditions: { key: string; type: 'AGENT' | 'CALL_SOURCE' | 'CALL_PROPERTY' | 'INTEGRATION'; operator?: string; value?: string; }[]; }[]; status?: 'ACTIVE' | 'INACTIVE'; } | { kind: 'metric'; name: string; prompt: string; type: 'BOOLEAN' | 'SCALE' | 'NUMERIC' | 'TEXT' | 'CLASSIFICATION'; contexts?: 'CALL' | 'SEGMENT' | 'TURN'[]; displayName?: string; falseLabel?: string; maxSelections?: number; options?: { displayOrder: number; label: string; description?: string; }[]; participantRole?: 'AGENT' | 'CUSTOMER'; scaleLabels?: { displayOrder: number; label: string; rangeMax: number; rangeMin: number; colorHex?: string; description?: string; }[]; scaleMax?: number; scaleMin?: number; scope?: 'GLOBAL' | 'PER_PARTICIPANT'; trueLabel?: string; }[]`\n\n- `prune?: boolean`\n\n### Returns\n\n- `{ data: { changes: { configKey: string; kind: 'agent' | 'persona' | 'flow' | 'collector' | 'metric'; name: string; op: 'create' | 'update' | 'delete' | 'noop'; detail?: string; }[]; summary: { create: number; delete: number; noop: number; update: number; }; }; }`\n\n - `data: { changes: { configKey: string; kind: 'agent' | 'persona' | 'flow' | 'collector' | 'metric'; name: string; op: 'create' | 'update' | 'delete' | 'noop'; detail?: string; }[]; summary: { create: number; delete: number; noop: number; update: number; }; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.config.diff({ resources: [{ kind: 'agent', name: 'name' }] });\n\nconsole.log(response);\n```",
2125
+ "## diff\n\n`client.config.diff(resources: { kind: 'agent'; name: string; customId?: string; description?: string; endpoints?: { direction: 'INCOMING' | 'OUTGOING' | 'INCOMING_AND_OUTGOING'; name: string; value: string; environment?: string; }[]; } | { accent: string; gender: 'MALE' | 'FEMALE'; kind: 'persona'; language: string; name: string; age?: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise?: string; backstoryPrompt?: string; baseEmotion?: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle?: 'EXPLICIT' | 'VAGUE'; description?: string; displayName?: string; hasDisfluencies?: boolean; idleMessageMaxSpokenCount?: number; idleMessageResetCountOnUserSpeechEnabled?: boolean; idleMessages?: string[]; idleTimeoutSeconds?: number; intentClarity?: 'CLEAR' | 'INDIRECT' | 'VAGUE'; memoryReliability?: 'HIGH' | 'LOW'; properties?: object; responseTiming?: 'RELAXED' | 'NORMAL' | 'QUICK'; secondaryLanguage?: 'EN'; speechClarity?: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace?: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages?: string[]; } | { agents: string[]; happyPath: { environment: string; persona: string; expectations?: string[]; prompt?: string; title?: string; }; kind: 'flow'; name: string; type: 'improv'; description?: string; edgeCases?: { name: string; environment?: string; expectations?: string[]; persona?: string; prompt?: string; title?: string; }[]; expectations?: string[]; title?: string; } | { graph: { type: 'AGENT_TURN' | 'CUSTOMER_TURN' | 'CUSTOMER_FIRST_MESSAGE' | 'CUSTOMER_SILENCE' | 'CUSTOMER_DTMF' | 'VOICEMAIL' | 'SCENARIO_LINK'; content?: string; dtmfDigits?: string; flow?: string; mergeInto?: string[]; ref?: string; silenceDurationSeconds?: number; steps?: object[]; }[]; kind: 'flow'; name: string; type: 'scripted'; agents?: string[]; branchingMode?: 'DETERMINISTIC' | 'ADAPTIVE'; description?: string; expectations?: string[]; title?: string; } | { kind: 'collector'; metrics: string[]; modality: 'call' | 'chat'; name: string; filters?: { conditions: object[]; }[]; status?: 'ACTIVE' | 'INACTIVE'; } | { kind: 'metric'; name: string; prompt: string; type: 'BOOLEAN' | 'SCALE' | 'NUMERIC' | 'TEXT' | 'CLASSIFICATION'; contexts?: 'CALL' | 'SEGMENT' | 'TURN'[]; displayName?: string; falseLabel?: string; maxSelections?: number; options?: { displayOrder: number; label: string; description?: string; }[]; participantRole?: 'AGENT' | 'CUSTOMER'; scaleLabels?: { displayOrder: number; label: string; rangeMax: number; rangeMin: number; colorHex?: string; description?: string; }[]; scaleMax?: number; scaleMin?: number; scope?: 'GLOBAL' | 'PER_PARTICIPANT'; trueLabel?: string; }[], prune?: boolean): { data: object; }`\n\n**post** `/v1/config/diff`\n\nDry run for a config-as-code apply: returns the projected changes (create / update / delete) for the submitted bundle without writing anything. Submit the full desired set of resources; identity is by name — no ids in the bundle. Run this before apply to preview what would change.\n\n### Parameters\n\n- `resources: { kind: 'agent'; name: string; customId?: string; description?: string; endpoints?: { direction: 'INCOMING' | 'OUTGOING' | 'INCOMING_AND_OUTGOING'; name: string; value: string; environment?: string; }[]; } | { accent: string; gender: 'MALE' | 'FEMALE'; kind: 'persona'; language: string; name: string; age?: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise?: string; backstoryPrompt?: string; baseEmotion?: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle?: 'EXPLICIT' | 'VAGUE'; description?: string; displayName?: string; hasDisfluencies?: boolean; idleMessageMaxSpokenCount?: number; idleMessageResetCountOnUserSpeechEnabled?: boolean; idleMessages?: string[]; idleTimeoutSeconds?: number; intentClarity?: 'CLEAR' | 'INDIRECT' | 'VAGUE'; memoryReliability?: 'HIGH' | 'LOW'; properties?: object; responseTiming?: 'RELAXED' | 'NORMAL' | 'QUICK'; secondaryLanguage?: 'EN'; speechClarity?: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace?: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages?: string[]; } | { agents: string[]; happyPath: { environment: string; persona: string; expectations?: string[]; prompt?: string; title?: string; }; kind: 'flow'; name: string; type: 'improv'; description?: string; edgeCases?: { name: string; environment?: string; expectations?: string[]; persona?: string; prompt?: string; title?: string; }[]; expectations?: string[]; title?: string; } | { graph: { type: 'AGENT_TURN' | 'CUSTOMER_TURN' | 'CUSTOMER_FIRST_MESSAGE' | 'CUSTOMER_SILENCE' | 'CUSTOMER_DTMF' | 'VOICEMAIL' | 'SCENARIO_LINK'; content?: string; dtmfDigits?: string; flow?: string; mergeInto?: string[]; ref?: string; silenceDurationSeconds?: number; steps?: object[]; }[]; kind: 'flow'; name: string; type: 'scripted'; agents?: string[]; branchingMode?: 'DETERMINISTIC' | 'ADAPTIVE'; description?: string; expectations?: string[]; title?: string; } | { kind: 'collector'; metrics: string[]; modality: 'call' | 'chat'; name: string; filters?: { conditions: object[]; }[]; status?: 'ACTIVE' | 'INACTIVE'; } | { kind: 'metric'; name: string; prompt: string; type: 'BOOLEAN' | 'SCALE' | 'NUMERIC' | 'TEXT' | 'CLASSIFICATION'; contexts?: 'CALL' | 'SEGMENT' | 'TURN'[]; displayName?: string; falseLabel?: string; maxSelections?: number; options?: { displayOrder: number; label: string; description?: string; }[]; participantRole?: 'AGENT' | 'CUSTOMER'; scaleLabels?: { displayOrder: number; label: string; rangeMax: number; rangeMin: number; colorHex?: string; description?: string; }[]; scaleMax?: number; scaleMin?: number; scope?: 'GLOBAL' | 'PER_PARTICIPANT'; trueLabel?: string; }[]`\n\n- `prune?: boolean`\n\n### Returns\n\n- `{ data: { changes: { configKey: string; kind: 'agent' | 'persona' | 'flow' | 'collector' | 'metric'; name: string; op: 'create' | 'update' | 'delete' | 'noop'; detail?: string; }[]; summary: { create: number; delete: number; noop: number; update: number; }; }; }`\n\n - `data: { changes: { configKey: string; kind: 'agent' | 'persona' | 'flow' | 'collector' | 'metric'; name: string; op: 'create' | 'update' | 'delete' | 'noop'; detail?: string; }[]; summary: { create: number; delete: number; noop: number; update: number; }; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.config.diff({ resources: [{ kind: 'agent', name: 'x' }] });\n\nconsole.log(response);\n```",
2128
2126
  perLanguage: {
2129
2127
  typescript: {
2130
2128
  method: 'client.config.diff',
2131
2129
  example:
2132
- "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.config.diff({ resources: [{ kind: 'agent', name: 'name' }] });\n\nconsole.log(response.data);",
2130
+ "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.config.diff({ resources: [{ kind: 'agent', name: 'x' }] });\n\nconsole.log(response.data);",
2133
2131
  },
2134
2132
  python: {
2135
2133
  method: 'config.diff',
2136
2134
  example:
2137
- '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.config.diff(\n resources=[{\n "kind": "agent",\n "name": "name",\n }],\n)\nprint(response.data)',
2135
+ '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.config.diff(\n resources=[{\n "kind": "agent",\n "name": "x",\n }],\n)\nprint(response.data)',
2138
2136
  },
2139
2137
  http: {
2140
2138
  example:
2141
- 'curl https://api.roark.ai/v1/config/diff \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN" \\\n -d \'{\n "resources": [\n {\n "kind": "agent",\n "name": "name"\n }\n ]\n }\'',
2139
+ 'curl https://api.roark.ai/v1/config/diff \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN" \\\n -d \'{\n "resources": [\n {\n "kind": "agent",\n "name": "x"\n }\n ]\n }\'',
2142
2140
  },
2143
2141
  },
2144
2142
  },
@@ -2152,27 +2150,27 @@ const EMBEDDED_METHODS: MethodEntry[] = [
2152
2150
  stainlessPath: '(resource) config > (method) apply',
2153
2151
  qualified: 'client.config.apply',
2154
2152
  params: [
2155
- "resources: { kind: 'agent'; name: string; customId?: string; description?: string; endpoints?: { direction: 'INCOMING' | 'OUTGOING' | 'INCOMING_AND_OUTGOING'; name: string; value: string; environment?: string; }[]; } | { accent: string; gender: 'MALE' | 'FEMALE'; kind: 'persona'; language: string; name: string; backgroundNoise?: string; backstoryPrompt?: string; baseEmotion?: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle?: 'EXPLICIT' | 'VAGUE'; description?: string; displayName?: string; hasDisfluencies?: boolean; idleMessageMaxSpokenCount?: number; idleMessageResetCountOnUserSpeechEnabled?: boolean; idleMessages?: string[]; idleTimeoutSeconds?: number; intentClarity?: 'CLEAR' | 'INDIRECT' | 'VAGUE'; memoryReliability?: 'HIGH' | 'LOW'; properties?: object; responseTiming?: 'RELAXED' | 'NORMAL' | 'QUICK'; secondaryLanguage?: 'EN'; speechClarity?: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace?: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages?: string[]; } | { agents: string[]; happyPath: { environment: string; persona: string; expectations?: string[]; prompt?: string; title?: string; }; kind: 'flow'; name: string; type: 'improv'; description?: string; edgeCases?: { name: string; environment?: string; expectations?: string[]; persona?: string; prompt?: string; title?: string; }[]; expectations?: string[]; title?: string; } | { graph: { type: string; content?: string; dtmfDigits?: string; flow?: string; mergeInto?: string[]; ref?: string; silenceDurationSeconds?: number; steps?: object[]; }[]; kind: 'flow'; name: string; type: 'scripted'; agents?: string[]; branchingMode?: 'DETERMINISTIC' | 'ADAPTIVE'; description?: string; expectations?: string[]; title?: string; } | { kind: 'collector'; metrics: string[]; modality: 'call' | 'chat'; name: string; filters?: { conditions: { key: string; type: 'AGENT' | 'CALL_SOURCE' | 'CALL_PROPERTY' | 'INTEGRATION'; operator?: string; value?: string; }[]; }[]; status?: 'ACTIVE' | 'INACTIVE'; } | { kind: 'metric'; name: string; prompt: string; type: 'BOOLEAN' | 'SCALE' | 'NUMERIC' | 'TEXT' | 'CLASSIFICATION'; contexts?: 'CALL' | 'SEGMENT' | 'TURN'[]; displayName?: string; falseLabel?: string; maxSelections?: number; options?: { displayOrder: number; label: string; description?: string; }[]; participantRole?: 'AGENT' | 'CUSTOMER'; scaleLabels?: { displayOrder: number; label: string; rangeMax: number; rangeMin: number; colorHex?: string; description?: string; }[]; scaleMax?: number; scaleMin?: number; scope?: 'GLOBAL' | 'PER_PARTICIPANT'; trueLabel?: string; }[];",
2153
+ "resources: { kind: 'agent'; name: string; customId?: string; description?: string; endpoints?: { direction: 'INCOMING' | 'OUTGOING' | 'INCOMING_AND_OUTGOING'; name: string; value: string; environment?: string; }[]; } | { accent: string; gender: 'MALE' | 'FEMALE'; kind: 'persona'; language: string; name: string; age?: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise?: string; backstoryPrompt?: string; baseEmotion?: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle?: 'EXPLICIT' | 'VAGUE'; description?: string; displayName?: string; hasDisfluencies?: boolean; idleMessageMaxSpokenCount?: number; idleMessageResetCountOnUserSpeechEnabled?: boolean; idleMessages?: string[]; idleTimeoutSeconds?: number; intentClarity?: 'CLEAR' | 'INDIRECT' | 'VAGUE'; memoryReliability?: 'HIGH' | 'LOW'; properties?: object; responseTiming?: 'RELAXED' | 'NORMAL' | 'QUICK'; secondaryLanguage?: 'EN'; speechClarity?: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace?: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages?: string[]; } | { agents: string[]; happyPath: { environment: string; persona: string; expectations?: string[]; prompt?: string; title?: string; }; kind: 'flow'; name: string; type: 'improv'; description?: string; edgeCases?: { name: string; environment?: string; expectations?: string[]; persona?: string; prompt?: string; title?: string; }[]; expectations?: string[]; title?: string; } | { graph: { type: 'AGENT_TURN' | 'CUSTOMER_TURN' | 'CUSTOMER_FIRST_MESSAGE' | 'CUSTOMER_SILENCE' | 'CUSTOMER_DTMF' | 'VOICEMAIL' | 'SCENARIO_LINK'; content?: string; dtmfDigits?: string; flow?: string; mergeInto?: string[]; ref?: string; silenceDurationSeconds?: number; steps?: object[]; }[]; kind: 'flow'; name: string; type: 'scripted'; agents?: string[]; branchingMode?: 'DETERMINISTIC' | 'ADAPTIVE'; description?: string; expectations?: string[]; title?: string; } | { kind: 'collector'; metrics: string[]; modality: 'call' | 'chat'; name: string; filters?: { conditions: object[]; }[]; status?: 'ACTIVE' | 'INACTIVE'; } | { kind: 'metric'; name: string; prompt: string; type: 'BOOLEAN' | 'SCALE' | 'NUMERIC' | 'TEXT' | 'CLASSIFICATION'; contexts?: 'CALL' | 'SEGMENT' | 'TURN'[]; displayName?: string; falseLabel?: string; maxSelections?: number; options?: { displayOrder: number; label: string; description?: string; }[]; participantRole?: 'AGENT' | 'CUSTOMER'; scaleLabels?: { displayOrder: number; label: string; rangeMax: number; rangeMin: number; colorHex?: string; description?: string; }[]; scaleMax?: number; scaleMin?: number; scope?: 'GLOBAL' | 'PER_PARTICIPANT'; trueLabel?: string; }[];",
2156
2154
  'prune?: boolean;',
2157
2155
  ],
2158
2156
  response:
2159
2157
  "{ data: { changes: { configKey: string; kind: 'agent' | 'persona' | 'flow' | 'collector' | 'metric'; name: string; op: 'create' | 'update' | 'delete' | 'noop'; status: 'applied' | 'skipped' | 'failed'; id?: string; detail?: string; error?: string; }[]; summary: { create: number; delete: number; failed: number; noop: number; update: number; }; }; }",
2160
2158
  markdown:
2161
- "## apply\n\n`client.config.apply(resources: { kind: 'agent'; name: string; customId?: string; description?: string; endpoints?: { direction: 'INCOMING' | 'OUTGOING' | 'INCOMING_AND_OUTGOING'; name: string; value: string; environment?: string; }[]; } | { accent: string; gender: 'MALE' | 'FEMALE'; kind: 'persona'; language: string; name: string; backgroundNoise?: string; backstoryPrompt?: string; baseEmotion?: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle?: 'EXPLICIT' | 'VAGUE'; description?: string; displayName?: string; hasDisfluencies?: boolean; idleMessageMaxSpokenCount?: number; idleMessageResetCountOnUserSpeechEnabled?: boolean; idleMessages?: string[]; idleTimeoutSeconds?: number; intentClarity?: 'CLEAR' | 'INDIRECT' | 'VAGUE'; memoryReliability?: 'HIGH' | 'LOW'; properties?: object; responseTiming?: 'RELAXED' | 'NORMAL' | 'QUICK'; secondaryLanguage?: 'EN'; speechClarity?: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace?: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages?: string[]; } | { agents: string[]; happyPath: { environment: string; persona: string; expectations?: string[]; prompt?: string; title?: string; }; kind: 'flow'; name: string; type: 'improv'; description?: string; edgeCases?: { name: string; environment?: string; expectations?: string[]; persona?: string; prompt?: string; title?: string; }[]; expectations?: string[]; title?: string; } | { graph: { type: string; content?: string; dtmfDigits?: string; flow?: string; mergeInto?: string[]; ref?: string; silenceDurationSeconds?: number; steps?: object[]; }[]; kind: 'flow'; name: string; type: 'scripted'; agents?: string[]; branchingMode?: 'DETERMINISTIC' | 'ADAPTIVE'; description?: string; expectations?: string[]; title?: string; } | { kind: 'collector'; metrics: string[]; modality: 'call' | 'chat'; name: string; filters?: { conditions: object[]; }[]; status?: 'ACTIVE' | 'INACTIVE'; } | { kind: 'metric'; name: string; prompt: string; type: 'BOOLEAN' | 'SCALE' | 'NUMERIC' | 'TEXT' | 'CLASSIFICATION'; contexts?: 'CALL' | 'SEGMENT' | 'TURN'[]; displayName?: string; falseLabel?: string; maxSelections?: number; options?: { displayOrder: number; label: string; description?: string; }[]; participantRole?: 'AGENT' | 'CUSTOMER'; scaleLabels?: { displayOrder: number; label: string; rangeMax: number; rangeMin: number; colorHex?: string; description?: string; }[]; scaleMax?: number; scaleMin?: number; scope?: 'GLOBAL' | 'PER_PARTICIPANT'; trueLabel?: string; }[], prune?: boolean): { data: object; }`\n\n**post** `/v1/config/apply`\n\nReconcile a config-as-code bundle into the project. Submit the full desired set of resources; resources already managed by config are updated, new ones created, and (unless prune is false) config-managed resources absent from the bundle are deleted. Identity is by name — no ids in the bundle.\n\n### Parameters\n\n- `resources: { kind: 'agent'; name: string; customId?: string; description?: string; endpoints?: { direction: 'INCOMING' | 'OUTGOING' | 'INCOMING_AND_OUTGOING'; name: string; value: string; environment?: string; }[]; } | { accent: string; gender: 'MALE' | 'FEMALE'; kind: 'persona'; language: string; name: string; backgroundNoise?: string; backstoryPrompt?: string; baseEmotion?: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle?: 'EXPLICIT' | 'VAGUE'; description?: string; displayName?: string; hasDisfluencies?: boolean; idleMessageMaxSpokenCount?: number; idleMessageResetCountOnUserSpeechEnabled?: boolean; idleMessages?: string[]; idleTimeoutSeconds?: number; intentClarity?: 'CLEAR' | 'INDIRECT' | 'VAGUE'; memoryReliability?: 'HIGH' | 'LOW'; properties?: object; responseTiming?: 'RELAXED' | 'NORMAL' | 'QUICK'; secondaryLanguage?: 'EN'; speechClarity?: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace?: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages?: string[]; } | { agents: string[]; happyPath: { environment: string; persona: string; expectations?: string[]; prompt?: string; title?: string; }; kind: 'flow'; name: string; type: 'improv'; description?: string; edgeCases?: { name: string; environment?: string; expectations?: string[]; persona?: string; prompt?: string; title?: string; }[]; expectations?: string[]; title?: string; } | { graph: { type: string; content?: string; dtmfDigits?: string; flow?: string; mergeInto?: string[]; ref?: string; silenceDurationSeconds?: number; steps?: object[]; }[]; kind: 'flow'; name: string; type: 'scripted'; agents?: string[]; branchingMode?: 'DETERMINISTIC' | 'ADAPTIVE'; description?: string; expectations?: string[]; title?: string; } | { kind: 'collector'; metrics: string[]; modality: 'call' | 'chat'; name: string; filters?: { conditions: { key: string; type: 'AGENT' | 'CALL_SOURCE' | 'CALL_PROPERTY' | 'INTEGRATION'; operator?: string; value?: string; }[]; }[]; status?: 'ACTIVE' | 'INACTIVE'; } | { kind: 'metric'; name: string; prompt: string; type: 'BOOLEAN' | 'SCALE' | 'NUMERIC' | 'TEXT' | 'CLASSIFICATION'; contexts?: 'CALL' | 'SEGMENT' | 'TURN'[]; displayName?: string; falseLabel?: string; maxSelections?: number; options?: { displayOrder: number; label: string; description?: string; }[]; participantRole?: 'AGENT' | 'CUSTOMER'; scaleLabels?: { displayOrder: number; label: string; rangeMax: number; rangeMin: number; colorHex?: string; description?: string; }[]; scaleMax?: number; scaleMin?: number; scope?: 'GLOBAL' | 'PER_PARTICIPANT'; trueLabel?: string; }[]`\n\n- `prune?: boolean`\n\n### Returns\n\n- `{ data: { changes: { configKey: string; kind: 'agent' | 'persona' | 'flow' | 'collector' | 'metric'; name: string; op: 'create' | 'update' | 'delete' | 'noop'; status: 'applied' | 'skipped' | 'failed'; id?: string; detail?: string; error?: string; }[]; summary: { create: number; delete: number; failed: number; noop: number; update: number; }; }; }`\n\n - `data: { changes: { configKey: string; kind: 'agent' | 'persona' | 'flow' | 'collector' | 'metric'; name: string; op: 'create' | 'update' | 'delete' | 'noop'; status: 'applied' | 'skipped' | 'failed'; id?: string; detail?: string; error?: string; }[]; summary: { create: number; delete: number; failed: number; noop: number; update: number; }; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.config.apply({ resources: [{ kind: 'agent', name: 'name' }] });\n\nconsole.log(response);\n```",
2159
+ "## apply\n\n`client.config.apply(resources: { kind: 'agent'; name: string; customId?: string; description?: string; endpoints?: { direction: 'INCOMING' | 'OUTGOING' | 'INCOMING_AND_OUTGOING'; name: string; value: string; environment?: string; }[]; } | { accent: string; gender: 'MALE' | 'FEMALE'; kind: 'persona'; language: string; name: string; age?: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise?: string; backstoryPrompt?: string; baseEmotion?: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle?: 'EXPLICIT' | 'VAGUE'; description?: string; displayName?: string; hasDisfluencies?: boolean; idleMessageMaxSpokenCount?: number; idleMessageResetCountOnUserSpeechEnabled?: boolean; idleMessages?: string[]; idleTimeoutSeconds?: number; intentClarity?: 'CLEAR' | 'INDIRECT' | 'VAGUE'; memoryReliability?: 'HIGH' | 'LOW'; properties?: object; responseTiming?: 'RELAXED' | 'NORMAL' | 'QUICK'; secondaryLanguage?: 'EN'; speechClarity?: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace?: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages?: string[]; } | { agents: string[]; happyPath: { environment: string; persona: string; expectations?: string[]; prompt?: string; title?: string; }; kind: 'flow'; name: string; type: 'improv'; description?: string; edgeCases?: { name: string; environment?: string; expectations?: string[]; persona?: string; prompt?: string; title?: string; }[]; expectations?: string[]; title?: string; } | { graph: { type: 'AGENT_TURN' | 'CUSTOMER_TURN' | 'CUSTOMER_FIRST_MESSAGE' | 'CUSTOMER_SILENCE' | 'CUSTOMER_DTMF' | 'VOICEMAIL' | 'SCENARIO_LINK'; content?: string; dtmfDigits?: string; flow?: string; mergeInto?: string[]; ref?: string; silenceDurationSeconds?: number; steps?: object[]; }[]; kind: 'flow'; name: string; type: 'scripted'; agents?: string[]; branchingMode?: 'DETERMINISTIC' | 'ADAPTIVE'; description?: string; expectations?: string[]; title?: string; } | { kind: 'collector'; metrics: string[]; modality: 'call' | 'chat'; name: string; filters?: { conditions: object[]; }[]; status?: 'ACTIVE' | 'INACTIVE'; } | { kind: 'metric'; name: string; prompt: string; type: 'BOOLEAN' | 'SCALE' | 'NUMERIC' | 'TEXT' | 'CLASSIFICATION'; contexts?: 'CALL' | 'SEGMENT' | 'TURN'[]; displayName?: string; falseLabel?: string; maxSelections?: number; options?: { displayOrder: number; label: string; description?: string; }[]; participantRole?: 'AGENT' | 'CUSTOMER'; scaleLabels?: { displayOrder: number; label: string; rangeMax: number; rangeMin: number; colorHex?: string; description?: string; }[]; scaleMax?: number; scaleMin?: number; scope?: 'GLOBAL' | 'PER_PARTICIPANT'; trueLabel?: string; }[], prune?: boolean): { data: object; }`\n\n**post** `/v1/config/apply`\n\nReconcile a config-as-code bundle into the project. Submit the full desired set of resources; resources already managed by config are updated, new ones created, and (unless prune is false) config-managed resources absent from the bundle are deleted. Identity is by name — no ids in the bundle.\n\n### Parameters\n\n- `resources: { kind: 'agent'; name: string; customId?: string; description?: string; endpoints?: { direction: 'INCOMING' | 'OUTGOING' | 'INCOMING_AND_OUTGOING'; name: string; value: string; environment?: string; }[]; } | { accent: string; gender: 'MALE' | 'FEMALE'; kind: 'persona'; language: string; name: string; age?: 'CHILD' | 'TEENAGER' | 'ADULT' | 'ELDERLY'; backgroundNoise?: string; backstoryPrompt?: string; baseEmotion?: 'NEUTRAL' | 'CHEERFUL' | 'CONFUSED' | 'FRUSTRATED' | 'SKEPTICAL' | 'RUSHED' | 'DISTRACTED'; confirmationStyle?: 'EXPLICIT' | 'VAGUE'; description?: string; displayName?: string; hasDisfluencies?: boolean; idleMessageMaxSpokenCount?: number; idleMessageResetCountOnUserSpeechEnabled?: boolean; idleMessages?: string[]; idleTimeoutSeconds?: number; intentClarity?: 'CLEAR' | 'INDIRECT' | 'VAGUE'; memoryReliability?: 'HIGH' | 'LOW'; properties?: object; responseTiming?: 'RELAXED' | 'NORMAL' | 'QUICK'; secondaryLanguage?: 'EN'; speechClarity?: 'CLEAR' | 'VAGUE' | 'RAMBLING'; speechPace?: 'SUPER_SLOW' | 'SLOW' | 'NORMAL' | 'FAST' | 'SUPER_FAST'; understoodLanguages?: string[]; } | { agents: string[]; happyPath: { environment: string; persona: string; expectations?: string[]; prompt?: string; title?: string; }; kind: 'flow'; name: string; type: 'improv'; description?: string; edgeCases?: { name: string; environment?: string; expectations?: string[]; persona?: string; prompt?: string; title?: string; }[]; expectations?: string[]; title?: string; } | { graph: { type: 'AGENT_TURN' | 'CUSTOMER_TURN' | 'CUSTOMER_FIRST_MESSAGE' | 'CUSTOMER_SILENCE' | 'CUSTOMER_DTMF' | 'VOICEMAIL' | 'SCENARIO_LINK'; content?: string; dtmfDigits?: string; flow?: string; mergeInto?: string[]; ref?: string; silenceDurationSeconds?: number; steps?: object[]; }[]; kind: 'flow'; name: string; type: 'scripted'; agents?: string[]; branchingMode?: 'DETERMINISTIC' | 'ADAPTIVE'; description?: string; expectations?: string[]; title?: string; } | { kind: 'collector'; metrics: string[]; modality: 'call' | 'chat'; name: string; filters?: { conditions: object[]; }[]; status?: 'ACTIVE' | 'INACTIVE'; } | { kind: 'metric'; name: string; prompt: string; type: 'BOOLEAN' | 'SCALE' | 'NUMERIC' | 'TEXT' | 'CLASSIFICATION'; contexts?: 'CALL' | 'SEGMENT' | 'TURN'[]; displayName?: string; falseLabel?: string; maxSelections?: number; options?: { displayOrder: number; label: string; description?: string; }[]; participantRole?: 'AGENT' | 'CUSTOMER'; scaleLabels?: { displayOrder: number; label: string; rangeMax: number; rangeMin: number; colorHex?: string; description?: string; }[]; scaleMax?: number; scaleMin?: number; scope?: 'GLOBAL' | 'PER_PARTICIPANT'; trueLabel?: string; }[]`\n\n- `prune?: boolean`\n\n### Returns\n\n- `{ data: { changes: { configKey: string; kind: 'agent' | 'persona' | 'flow' | 'collector' | 'metric'; name: string; op: 'create' | 'update' | 'delete' | 'noop'; status: 'applied' | 'skipped' | 'failed'; id?: string; detail?: string; error?: string; }[]; summary: { create: number; delete: number; failed: number; noop: number; update: number; }; }; }`\n\n - `data: { changes: { configKey: string; kind: 'agent' | 'persona' | 'flow' | 'collector' | 'metric'; name: string; op: 'create' | 'update' | 'delete' | 'noop'; status: 'applied' | 'skipped' | 'failed'; id?: string; detail?: string; error?: string; }[]; summary: { create: number; delete: number; failed: number; noop: number; update: number; }; }`\n\n### Example\n\n```typescript\nimport Roark from '@roarkanalytics/sdk';\n\nconst client = new Roark();\n\nconst response = await client.config.apply({ resources: [{ kind: 'agent', name: 'x' }] });\n\nconsole.log(response);\n```",
2162
2160
  perLanguage: {
2163
2161
  typescript: {
2164
2162
  method: 'client.config.apply',
2165
2163
  example:
2166
- "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.config.apply({ resources: [{ kind: 'agent', name: 'name' }] });\n\nconsole.log(response.data);",
2164
+ "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.config.apply({ resources: [{ kind: 'agent', name: 'x' }] });\n\nconsole.log(response.data);",
2167
2165
  },
2168
2166
  python: {
2169
2167
  method: 'config.apply',
2170
2168
  example:
2171
- '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.config.apply(\n resources=[{\n "kind": "agent",\n "name": "name",\n }],\n)\nprint(response.data)',
2169
+ '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.config.apply(\n resources=[{\n "kind": "agent",\n "name": "x",\n }],\n)\nprint(response.data)',
2172
2170
  },
2173
2171
  http: {
2174
2172
  example:
2175
- 'curl https://api.roark.ai/v1/config/apply \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN" \\\n -d \'{\n "resources": [\n {\n "kind": "agent",\n "name": "name"\n }\n ]\n }\'',
2173
+ 'curl https://api.roark.ai/v1/config/apply \\\n -H \'Content-Type: application/json\' \\\n -H "Authorization: Bearer $ROARK_API_BEARER_TOKEN" \\\n -d \'{\n "resources": [\n {\n "kind": "agent",\n "name": "x"\n }\n ]\n }\'',
2176
2174
  },
2177
2175
  },
2178
2176
  },