addedInput schema / properties / caller_confirmed_constraints
Added value: +{
+ "anyOf": [
+ {
+ "items": {
+ "maxLength": 300,
+ "minLength": 1,
+ "type": "string"
+ },
+ "maxItems": 10,
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Up to 10 caller-confirmed request constraints from a prior clarification round, each up to 300 characters. Runtime-generated questions and model assumptions are execution receipts, not copied here or treated as approved automatically. Recorded in commission identity and retained async-job snapshots. It does not change retrieval, prompts, scoring, pricing, or generated text yet.",
+ "items": {
+ "maxLength": 300,
+ "minLength": 1,
+ "type": "string"
+ },
+ "maxItems": 10,
+ "title": "Caller Confirmed Constraints"
+}
changedInput schema / properties / clarify / description
Previous value: -"Request-sufficiency behaviour: 'ask' returns ONLY clarifying questions (uncharged, nothing generated) - relay them to your human, then re-submit enriched; 'auto' (default) proceeds but the research envelope carries the questions and assumptions used; 'off' skips the check. Batch and jobs accept only 'auto'/'off'."New value: +"Request-sufficiency behaviour: 'ask' returns ONLY clarifying questions (uncharged, nothing generated) - relay them to your human, then re-submit enriched; 'auto' (default) proceeds and the research envelope carries the questions and proposed assumptions as observations; they do not currently change retrieval or writer prompts. 'off' skips the check. Batch and jobs accept only 'auto'/'off'."
addedInput schema / properties / delivery_constraints
Added value: +{
+ "anyOf": [
+ {
+ "maxLength": 300,
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Desired spoken performance or cadence, up to 300 characters, distinct from the broader style/voice field. Recorded in commission identity and retained async-job snapshots. It does not change retrieval, prompts, scoring, pricing, or generated text yet.",
+ "maxLength": 300,
+ "title": "Delivery Constraints"
+}
addedInput schema / properties / desired_audience_feeling
Added value: +{
+ "anyOf": [
+ {
+ "maxLength": 300,
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "How the audience should feel immediately after the hook, such as understood, curious, or challenged, up to 300 characters. Recorded in commission identity and retained async-job snapshots. It does not change retrieval, prompts, scoring, pricing, or generated text yet.",
+ "maxLength": 300,
+ "title": "Desired Audience Feeling"
+}
addedInput schema / properties / desired_viewer_action
Added value: +{
+ "anyOf": [
+ {
+ "maxLength": 300,
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "What the viewer should do after hearing the hook, such as keep watching, comment, or reconsider a belief, up to 300 characters. Recorded in commission identity and retained async-job snapshots. It does not change retrieval, prompts, scoring, pricing, or generated text yet.",
+ "maxLength": 300,
+ "title": "Desired Viewer Action"
+}
addedInput schema / properties / footage_constraints
Added value: +{
+ "anyOf": [
+ {
+ "items": {
+ "maxLength": 200,
+ "minLength": 1,
+ "type": "string"
+ },
+ "maxItems": 10,
+ "type": "array"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Up to 10 caller-declared filming or edit constraints, each up to 200 characters. Recorded in commission identity and retained async-job snapshots. It does not change retrieval, prompts, scoring, pricing, or generated text yet.",
+ "items": {
+ "maxLength": 200,
+ "minLength": 1,
+ "type": "string"
+ },
+ "maxItems": 10,
+ "title": "Footage Constraints"
+}
addedInput schema / properties / hook_length_constraints
Added value: +{
+ "anyOf": [
+ {
+ "maxLength": 200,
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Desired spoken-hook length, up to 200 characters, for example '8-12 words' or 'under 6 seconds'. Recorded in commission identity and retained async-job snapshots. It does not change retrieval, prompts, scoring, pricing, or generated text yet.",
+ "maxLength": 200,
+ "title": "Hook Length Constraints"
+}
addedInput schema / properties / requested_content_format
Added value: +{
+ "anyOf": [
+ {
+ "enum": [
+ "solo_talking_head",
+ "podcast",
+ "interview",
+ "yapping_monologue",
+ "voiceover",
+ "skit",
+ "montage",
+ "other"
+ ],
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Desired production format: solo_talking_head, podcast, interview, yapping_monologue, voiceover, skit, montage, or other. This is a request, not a claim about any retrieved source. Recorded in commission identity and retained async-job snapshots. It does not change retrieval, prompts, scoring, pricing, or generated text yet.",
+ "enum": [
+ "solo_talking_head",
+ "podcast",
+ "interview",
+ "yapping_monologue",
+ "voiceover",
+ "skit",
+ "montage",
+ "other",
+ null
+ ],
+ "title": "Requested Content Format"
+}
addedInput schema / properties / requested_dialect
Added value: +{
+ "anyOf": [
+ {
+ "maxLength": 100,
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Caller-declared desired dialect or register, up to 100 characters. This is not an observed-language or classifier result. Recorded in commission identity and retained async-job snapshots. It does not change retrieval, prompts, scoring, pricing, or generated text yet.",
+ "maxLength": 100,
+ "title": "Requested Dialect"
+}
addedInput schema / properties / requested_market
Added value: +{
+ "anyOf": [
+ {
+ "maxLength": 100,
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "default": null,
+ "description": "Caller-declared target market or locality, up to 100 characters. This is not inferred or verified and does not override today's language-derived evidence region. Recorded in commission identity and retained async-job snapshots. It does not change retrieval, prompts, scoring, pricing, or generated text yet.",
+ "maxLength": 100,
+ "title": "Requested Market"
+}
changedInput schema / properties / verbosity / description
Previous value: -"How much of the response envelope to return: minimal (ids/text/totals only), standard (the default), full (adds per-dimension score attribution and timings). Shapes the RESPONSE only, never what is generated, persisted, hashed for idempotency, or charged."New value: +"How much of the response envelope to return: minimal (identity, text, score total/source, money, honesty warnings, and any persona/shape), standard (the default, including hook receipts), full (adds per-dimension score numbers, notes, and attribution). A failing phone_test survives minimal; passing phone_test, say_it, and pattern_source are standard/full detail. Shapes the RESPONSE only, never what is generated, persisted, hashed for idempotency, or charged."
addedOutput schema / properties / auto_job
Added value: +{
+ "description": "Present and true when this key already owns the exact async multi-topic job. On this path `results` is absent; poll job_id/status_url instead.",
+ "type": [
+ "boolean",
+ "null"
+ ]
+}
addedOutput schema / properties / estimated_seconds
Added value: +{
+ "description": "auto_job path only: queue-aware estimate of total time to a result.",
+ "type": [
+ "number",
+ "null"
+ ]
+}
addedOutput schema / properties / expires_at
Added value: +{
+ "description": "auto_job path only: earliest terminal-row prune cutoff, ISO-8601 UTC.",
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / properties / hint
Added value: +{
+ "description": "auto_job path only: poll instruction.",
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / properties / job_id
Added value: +{
+ "description": "auto_job path only: poll it with get_job or wait_for_job.",
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / properties / poll_after_seconds
Added value: +{
+ "description": "auto_job path only: wait at least this long before the first poll.",
+ "type": [
+ "number",
+ "null"
+ ]
+}
addedOutput schema / properties / requeued
Added value: +{
+ "description": "auto_job path only: whether the existing job was requeued.",
+ "type": [
+ "boolean",
+ "null"
+ ]
+}
changedOutput schema / properties / results / description
Previous value: -"One entry per item, in request order: {topic, hooks, pricing_mode, price_per_hook, base_price, credits, grounding_refund, timing, judge_fallback_reason, count_requested, shortfall, reason, research}. Every per-item key means exactly what the same key means on a single generate. Hook ids live at results[i].hooks[j].id."New value: +"One entry per item, in request order: {topic, hooks, pricing_mode, price_per_hook, base_price, credits, grounding_refund, timing, judge_fallback_reason, count_requested, shortfall, reason, research}. Every per-item key means exactly what the same key means on a single generate. Hook ids live at results[i].hooks[j].id. At standard/full, a judge-ranked smart hook may also carry {shape, phone_test, say_it}; a judge-ranked research hook carries receipts {persona, shape, phone_test, say_it, pattern_source}. pattern_source is null when no measured opener was attributed, otherwise its nested provenance is the authoritative actual platform, language, route, media, and origin-time record. Minimal keeps persona and shape, plus phone_test only when it is the warning value 'fail'."
addedOutput schema / properties / status
Added value: +{
+ "description": "auto_job path only: the job lifecycle state.",
+ "type": [
+ "string",
+ "null"
+ ]
+}
addedOutput schema / properties / status_url
Added value: +{
+ "description": "auto_job path only: REST URL for the same job.",
+ "type": [
+ "string",
+ "null"
+ ]
+}