capture_session_build_episode
Build editable episode from footage
Revision-guarded projection of a settled footage-session chronology into its ordinary editable episode. Collapses real idle gaps, chooses a deterministic continuity-first program source, retains capture/source/episode mapping receipts, then enqueues one bounded whole-session speaker-reconciliation and semantic-synthesis pass. Chronology is always derived from the best available evidence, and the build is available when next_action is build_episode or update_episode; the returned chronology_evidence and the manifest's inferences.chronology record how each recording was placed. It refuses unresolved footage, any covered interval with only audio and no renderable video, unsupported clock drift, and any automatic rewrite after the episode has been edited. Episode structure may finish before every Program or alternate-angle preview is playable or before whole-session understanding is complete: workspace_url is omitted until the complete media graph plus title, description, chapters, and visual understanding are ready for the working editor.
Surface: Default model and app
Product release 185ad8f4adfa21ae055b5bd6f97968d9044480d1
Public contract commit d2ab41fab4088c07c0f6b924fa4f3c63481b936a
Public contract SHA-256 2365c73c2aef7b9f85e8434d8e29ea29f40824bc3a46a72a356155ea328757fc
Captured 2026-10-29T03:35:56.855Z. Review or improve this contract on GitHub.
These blocks show the complete MCP descriptors captured from serving Rails. Security schemes and resource URIs can differ by connected host.
Default model descriptor
{
"name": "capture_session_build_episode",
"title": "Build editable episode from footage",
"description": "Revision-guarded projection of a settled footage-session chronology into its ordinary editable episode. Collapses real idle gaps, chooses a deterministic continuity-first program source, retains capture/source/episode mapping receipts, then enqueues one bounded whole-session speaker-reconciliation and semantic-synthesis pass. Chronology is always derived from the best available evidence, and the build is available when next_action is build_episode or update_episode; the returned chronology_evidence and the manifest's inferences.chronology record how each recording was placed. It refuses unresolved footage, any covered interval with only audio and no renderable video, unsupported clock drift, and any automatic rewrite after the episode has been edited. Episode structure may finish before every Program or alternate-angle preview is playable or before whole-session understanding is complete: workspace_url is omitted until the complete media graph plus title, description, chapters, and visual understanding are ready for the working editor.",
"inputSchema": {
"type": "object",
"properties": {
"capture_session_id": {
"type": "string",
"description": "Footage-session public ID."
},
"expected_revision": {
"type": "integer",
"description": "Current session revision from its manifest. A stale revision is rejected."
},
"idempotency_key": {
"type": "string",
"description": "Caller-stable key for safe retry of this exact projection request."
},
"acknowledge_chronology_review": {
"type": "boolean",
"description": "Deprecated; accepted and ignored. Chronology review is no longer a gate — placement provenance is always recorded in chronology_evidence."
}
},
"required": [
"capture_session_id",
"expected_revision",
"idempotency_key"
],
"additionalProperties": false
},
"annotations": {
"title": "Build editable episode from footage",
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
},
"securitySchemes": [
{
"type": "noauth"
}
],
"_meta": {
"securitySchemes": [
{
"type": "noauth"
}
],
"ui": {
"visibility": [
"model",
"app"
]
},
"openai/widgetAccessible": true
}
}App descriptor
{
"name": "capture_session_build_episode",
"title": "Build editable episode from footage",
"description": "Revision-guarded projection of a settled footage-session chronology into its ordinary editable episode. Collapses real idle gaps, chooses a deterministic continuity-first program source, retains capture/source/episode mapping receipts, then enqueues one bounded whole-session speaker-reconciliation and semantic-synthesis pass. Chronology is always derived from the best available evidence, and the build is available when next_action is build_episode or update_episode; the returned chronology_evidence and the manifest's inferences.chronology record how each recording was placed. It refuses unresolved footage, any covered interval with only audio and no renderable video, unsupported clock drift, and any automatic rewrite after the episode has been edited. Episode structure may finish before every Program or alternate-angle preview is playable or before whole-session understanding is complete: workspace_url is omitted until the complete media graph plus title, description, chapters, and visual understanding are ready for the working editor.",
"inputSchema": {
"type": "object",
"properties": {
"capture_session_id": {
"type": "string",
"description": "Footage-session public ID."
},
"expected_revision": {
"type": "integer",
"description": "Current session revision from its manifest. A stale revision is rejected."
},
"idempotency_key": {
"type": "string",
"description": "Caller-stable key for safe retry of this exact projection request."
},
"acknowledge_chronology_review": {
"type": "boolean",
"description": "Deprecated; accepted and ignored. Chronology review is no longer a gate — placement provenance is always recorded in chronology_evidence."
}
},
"required": [
"capture_session_id",
"expected_revision",
"idempotency_key"
],
"additionalProperties": false
},
"annotations": {
"title": "Build editable episode from footage",
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
},
"securitySchemes": [
{
"type": "noauth"
}
],
"_meta": {
"securitySchemes": [
{
"type": "noauth"
}
],
"ui": {
"visibility": [
"model",
"app"
]
},
"openai/widgetAccessible": true
},
"outputSchema": {
"type": "object",
"properties": {
"capture_session_id": {
"type": "string"
},
"session_revision": {
"type": "integer"
},
"episode_id": {
"type": "string"
},
"episode_revision": {
"type": "integer"
},
"segment_count": {
"type": "integer"
},
"angle_count": {
"type": "integer"
},
"duration_seconds": {
"type": "number"
},
"collapsed_gap_seconds": {
"type": "number"
},
"chronology_evidence": {
"type": "object",
"description": "How the accepted chronology placed each recording: placement-basis histogram, audio-linked recording count, and the accepted-run review receipt when one exists."
},
"already_applied": {
"type": "boolean"
},
"understanding_enqueued": {
"type": "boolean",
"description": "true when this projection queued a new bounded whole-session reconciliation/synthesis generation; false when the same generation was already underway or complete."
},
"workspace_url": {
"type": "string",
"description": "Present only when every Program and alternate-angle recording has playable preview media and whole-session understanding is terminal, so the working editor is ready to open."
},
"manifest": {
"type": "object"
},
"next_action": {
"type": "object",
"description": "edit_episode only when the working editor is ready; wait_for_episode_media while previews are pending; wait_for_understanding while title, description, chapters, and visual understanding finish; retry_understanding after a terminal preparation failure; repair_episode_media with recording_ids when preview repair is required."
}
},
"required": [],
"additionalProperties": false
}
}Live Workspace descriptor
{
"name": "capture_session_build_episode",
"title": "Build editable episode from footage",
"description": "Revision-guarded projection of a settled footage-session chronology into its ordinary editable episode. Collapses real idle gaps, chooses a deterministic continuity-first program source, retains capture/source/episode mapping receipts, then enqueues one bounded whole-session speaker-reconciliation and semantic-synthesis pass. Chronology is always derived from the best available evidence, and the build is available when next_action is build_episode or update_episode; the returned chronology_evidence and the manifest's inferences.chronology record how each recording was placed. It refuses unresolved footage, any covered interval with only audio and no renderable video, unsupported clock drift, and any automatic rewrite after the episode has been edited. Episode structure may finish before every Program or alternate-angle preview is playable or before whole-session understanding is complete: workspace_url is omitted until the complete media graph plus title, description, chapters, and visual understanding are ready for the working editor.",
"inputSchema": {
"type": "object",
"properties": {
"capture_session_id": {
"type": "string",
"description": "Footage-session public ID."
},
"expected_revision": {
"type": "integer",
"description": "Current session revision from its manifest. A stale revision is rejected."
},
"idempotency_key": {
"type": "string",
"description": "Caller-stable key for safe retry of this exact projection request."
},
"acknowledge_chronology_review": {
"type": "boolean",
"description": "Deprecated; accepted and ignored. Chronology review is no longer a gate — placement provenance is always recorded in chronology_evidence."
}
},
"required": [
"capture_session_id",
"expected_revision",
"idempotency_key"
],
"additionalProperties": false
},
"annotations": {
"title": "Build editable episode from footage",
"readOnlyHint": false,
"destructiveHint": false,
"idempotentHint": true,
"openWorldHint": false
},
"securitySchemes": [
{
"type": "noauth"
}
],
"_meta": {
"securitySchemes": [
{
"type": "noauth"
}
]
},
"outputSchema": {
"type": "object",
"properties": {
"capture_session_id": {
"type": "string"
},
"session_revision": {
"type": "integer"
},
"episode_id": {
"type": "string"
},
"episode_revision": {
"type": "integer"
},
"segment_count": {
"type": "integer"
},
"angle_count": {
"type": "integer"
},
"duration_seconds": {
"type": "number"
},
"collapsed_gap_seconds": {
"type": "number"
},
"chronology_evidence": {
"type": "object",
"description": "How the accepted chronology placed each recording: placement-basis histogram, audio-linked recording count, and the accepted-run review receipt when one exists."
},
"already_applied": {
"type": "boolean"
},
"understanding_enqueued": {
"type": "boolean",
"description": "true when this projection queued a new bounded whole-session reconciliation/synthesis generation; false when the same generation was already underway or complete."
},
"workspace_url": {
"type": "string",
"description": "Present only when every Program and alternate-angle recording has playable preview media and whole-session understanding is terminal, so the working editor is ready to open."
},
"manifest": {
"type": "object"
},
"next_action": {
"type": "object",
"description": "edit_episode only when the working editor is ready; wait_for_episode_media while previews are pending; wait_for_understanding while title, description, chapters, and visual understanding finish; retry_understanding after a terminal preparation failure; repair_episode_media with recording_ids when preview repair is required."
}
},
"required": [],
"additionalProperties": false
}
}Errors
[
"capture_session_not_found",
"stale_capture_session_revision",
"capture_session_not_ready",
"capture_session_audio_only_gap",
"capture_session_rate_mismatch",
"capture_episode_has_edits",
"idempotency_conflict",
"invalid_input"
]Examples
[]