Skip to content

MCP catalog collapse — migration guide

Date: 2026-09-22. Applies to: the hosted GEN MCP at https://mcp.gen.pro (Authorization: Bearer <your-PAT>).

The MCP catalog collapses from ~70 one-tool-per-endpoint names to a small fixed set: one universal read tool, gen_discover (a domain plus a short view noun), and one gen_<noun>_action write tool per domain that takes an actions[] list of typed entries. The target catalog is gen_discover, gen_vidsheet_action, gen_agent_action, gen_voice_action, gen_watchlist_action, gen_publish_action, gen_task_action, gen_content_action, gen_media_action, gen_asset_action, gen_billing_action, gen_platform_action, gen_avatars and gen_ask. The retire of the legacy names lands with the release/GEN-6890-final deploy; the exact served count and revision hash are published by tools/list once that release is live, so re-list tools rather than trusting a baked-in catalog.

  • Until 2026-10-22 every retired name below stays callable as a hidden compatibility alias. It runs the same implementation, returns the same result, and adds a machine-readable pointer: structuredContent.deprecation and _meta.deprecation carry {"deprecated": true, "tool": "<old name>", "replacement": {"tool": ..., "op" | "view": ...}, "next_action": "..."}. A name whose implementation no longer exists returns that pointer as a structured error instead of a result.
  • Calling a name that never existed returns unknown_tool with up to three suggestions drawn from the served catalog and the alias map.
  • After 2026-10-22 the aliases are removed; retired names return unknown_tool.
  1. Call tools/list and read instructions from initialize: they describe the new catalog.
  2. Call gen_discover with domain="platform", view="me"; a 200 there proves your PAT and transport are fine.
  3. Grep your client for any gen_ name that is not in the target catalog above and replace it using the table. Watch for the deprecation key in responses; when it stops appearing you are migrated.
  4. gen_discover domain=vidsheet view=card_types (creation cards) and view=card_schema (one card) replace all card-catalog reads; gen_vidsheet_action op generate with a required card pick replaces every direct create-job path.

Generated from tests/fixtures/vidsheet-alias-replacements.json on release/GEN-6890-final (aliases, compat, discover_views and pending_retirement) plus the six extra discover views and the gen_vidsheet_discover rename served by the compat layer. One row per legacy name.

Legacy toolKindCall insteadNotes
gen_add_agent_accountWrite → family actiongen_agent_action actions[] {action: "add_agent_account"}Write via gen_agent_action branch(es) add_agent_account; duplex-proven identical to the legacy tool.
gen_add_agent_inspirationWrite → family actiongen_agent_action actions[] {action: "add_agent_inspiration"}Write via gen_agent_action branch(es) add_agent_inspiration; duplex-proven identical to the legacy tool.
gen_add_agent_lookWrite → family actiongen_agent_action actions[] {action: "add_agent_look"}Write via gen_agent_action branch(es) add_agent_look; duplex-proven identical to the legacy tool.
gen_add_watchlist_sourceWrite → family actiongen_watchlist_action actions[] {action: "add_watchlist_source"}Write via gen_watchlist_action branch(es) add_watchlist_source; duplex-proven identical to the legacy tool.
gen_analyze_source_videoVidsheet compatgen_vidsheet_action {op: "generate", target.kind: "creation_card"}Job card source_video_analysis on the generate op (engine_id as project_id + content_resource_id + idempotency_key, mode recreate|reimagine); paid async job, not a read view.
gen_bind_avatarVidsheet aliasgen_vidsheet_action {op: "generate", target.kind: "creation_card"}Job card on the generate op (creation_card_type video_from_avatar + avatar_id/video_url/audio_url); avatars come from gen_avatars list.
gen_bind_sound_as_songVidsheet aliasgen_vidsheet_action {op: "update", target.kind: "cell"}set_cell media bind (media_key audio + media_url/media_name) binds an existing song without generating; generate creation_card_type recommend_song runs the paid recommend job.
gen_buy_creditsWrite → family actiongen_billing_action actions[] {action: "buy_credits"}Write via gen_billing_action branch(es) buy_credits; duplex-proven identical to the legacy tool.
gen_card_catalogVidsheet aliasgen_discover view=card_typesCreation-card listing via gen_discover card_types view (produces/container/model filters).
gen_card_schemaVidsheet aliasgen_discover view=card_schemaSingle-card lookup via gen_discover card_schema view.
gen_clone_engineVidsheet aliasgen_vidsheet_action {op: "duplicate", target.kind: "vidsheet"}Exact source sheet; preserve optional target_agent_id.
gen_clone_templateVidsheet aliasgen_vidsheet_action {op: "create", target.kind: "vidsheet"}values.template_slug identifies the selected template; optional values.name. Return the created sheet identity; never call a separate template mutation.
gen_clone_voiceWrite → family actiongen_voice_action actions[] {action: "clone_voice"}Write via gen_voice_action branch(es) clone_voice; duplex-proven identical to the legacy tool.
gen_complete_asset_uploadWrite → family actiongen_asset_action actions[] {action: "complete_asset_upload"}Write via gen_asset_action branch(es) complete_asset_upload; duplex-proven identical to the legacy tool.
gen_connect_agent_elevenlabsWrite → family actiongen_agent_action actions[] {action: "connect_agent_elevenlabs"}Write via gen_agent_action branch(es) connect_agent_elevenlabs; duplex-proven identical to the legacy tool.
gen_continue_generationVidsheet compatgen_vidsheet_action op continue_generationgen_vidsheet_action op continue_generation (generation_id + idempotency_key); resumes the same stopped job, never a new card.
gen_create_agentWrite → family actiongen_agent_action actions[] {action: "create_agent"}Write via gen_agent_action branch(es) create_agent; duplex-proven identical to the legacy tool.
gen_create_agent_avatarWrite → family actiongen_agent_action actions[] {action: "create_agent_avatar"}Write via gen_agent_action branch(es) create_agent_avatar; duplex-proven identical to the legacy tool.
gen_create_agent_profileWrite → family actiongen_agent_action actions[] {action: "create_agent_profile"}Write via gen_agent_action branch(es) create_agent_profile; duplex-proven identical to the legacy tool.
gen_create_api_keyWrite → family actiongen_platform_action actions[] {action: "create_api_key"}Write via gen_platform_action branch(es) create_api_key; duplex-proven identical to the legacy tool.
gen_create_columnVidsheet aliasgen_vidsheet_action {op: "create", target.kind: "column"}values.title/type/description plus top-level position; stable idempotency key.
gen_create_content_resourceWrite → family actiongen_content_action actions[] {action: "create_content_resource"}Write via gen_content_action branch(es) create_content_resource; duplex-proven identical to the legacy tool.
gen_create_direct_uploadWrite → family actiongen_asset_action actions[] {action: "create_direct_upload"}Write via gen_asset_action branch(es) create_direct_upload; duplex-proven identical to the legacy tool.
gen_create_engineVidsheet aliasgen_vidsheet_action {op: "create", target.kind: "vidsheet"}values.name; template and idea fields are discovered, never inferred.
gen_create_engine_from_ideaVidsheet aliasgen_vidsheet_action {op: "create", target.kind: "vidsheet"}values.idea_id and template_slug; backend preserves the established identity for exact upstream idea ownership.
gen_create_imageWrite → family actiongen_media_action actions[] {action: "create_image"}Write via gen_media_action branch(es) create_image; duplex-proven identical to the legacy tool.
gen_create_layerVidsheet aliasgen_vidsheet_action {op: "create", target.kind: "layer"}Exact parent cell; top-level position; typed name/type/settings/card/media. Source totals/runtime remain server-owned.
gen_create_lookWrite → family actiongen_agent_action actions[] {action: "create_look"}Write via gen_agent_action branch(es) create_look; duplex-proven identical to the legacy tool.
gen_create_monitoring_jobWrite → family actiongen_task_action actions[] {action: "create_monitoring_job"}Write via gen_task_action branch(es) create_monitoring_job; duplex-proven identical to the legacy tool.
gen_create_organizationWrite → family actiongen_platform_action actions[] {action: "create_organization"}Write via gen_platform_action branch(es) create_organization; duplex-proven identical to the legacy tool.
gen_create_proof_of_genesis_backupWrite → family actiongen_platform_action actions[] {action: "create_proof_of_genesis_backup"}Write via gen_platform_action branch(es) create_proof_of_genesis_backup; duplex-proven identical to the legacy tool.
gen_create_recurring_jobWrite → family actiongen_task_action actions[] {action: "create_recurring_job"}Write via gen_task_action branch(es) create_recurring_job; duplex-proven identical to the legacy tool.
gen_create_rowVidsheet aliasgen_vidsheet_action {op: "create", target.kind: "row"}Optional top-level position; stable idempotency key and returned row/cell identities.
gen_create_songWrite → family actiongen_media_action actions[] {action: "create_song"}Write via gen_media_action branch(es) create_song; duplex-proven identical to the legacy tool.
gen_create_song_mixWrite → family actiongen_media_action actions[] {action: "create_song_mix"}Write via gen_media_action branch(es) create_song_mix; duplex-proven identical to the legacy tool.
gen_create_variableVidsheet aliasgen_vidsheet_action {op: "create", target.kind: "variable"}values.name and typed value/media; preserve child-project undo ownership.
gen_create_videoWrite → family actiongen_media_action actions[] {action: "create_video"}Write via gen_media_action branch(es) create_video; duplex-proven identical to the legacy tool.
gen_create_watchlistWrite → family actiongen_watchlist_action actions[] {action: "create_watchlist"}Write via gen_watchlist_action branch(es) create_watchlist; duplex-proven identical to the legacy tool.
gen_create_x402_credit_purchaseWrite → family actiongen_billing_action actions[] {action: "create_x402_credit_purchase"}Write via gen_billing_action branch(es) create_x402_credit_purchase; duplex-proven identical to the legacy tool.
gen_decide_agent_runWrite → family actiongen_task_action actions[] {action: "decide_agent_run"}Write via gen_task_action branch(es) decide_agent_run; duplex-proven identical to the legacy tool.
gen_delete_agentWrite → family actiongen_agent_action actions[] {action: "delete_agent"}Write via gen_agent_action branch(es) delete_agent; duplex-proven identical to the legacy tool.
gen_delete_agent_avatarWrite → family actiongen_agent_action actions[] {action: "delete_agent_avatar"}Write via gen_agent_action branch(es) delete_agent_avatar; duplex-proven identical to the legacy tool.
gen_delete_assetWrite → family actiongen_asset_action actions[] {action: "delete_asset"}Write via gen_asset_action branch(es) delete_asset; duplex-proven identical to the legacy tool.
gen_delete_columnVidsheet aliasgen_vidsheet_action {op: "delete", target.kind: "column"}Exact column; Rails singleton content-bound consent.
gen_delete_content_resourceWrite → family actiongen_content_action actions[] {action: "delete_content_resource"}Write via gen_content_action branch(es) delete_content_resource; duplex-proven identical to the legacy tool.
gen_delete_engineVidsheet aliasgen_vidsheet_action {op: "delete", target.kind: "vidsheet"}Exact sheet; Rails content-bound 428 preview and confirm_token, never a boolean approval.
gen_delete_layerVidsheet aliasgen_vidsheet_action {op: "delete", target.kind: "layer"}Exact layer; Rails singleton content-bound consent.
gen_delete_organizationWrite → family actiongen_platform_action actions[] {action: "delete_organization"}Write via gen_platform_action branch(es) delete_organization; duplex-proven identical to the legacy tool.
gen_delete_recurring_jobWrite → family actiongen_task_action actions[] {action: "delete_recurring_job"}Write via gen_task_action branch(es) delete_recurring_job; duplex-proven identical to the legacy tool.
gen_delete_rowVidsheet aliasgen_vidsheet_action {op: "delete", target.kind: "row"}Exact row; Rails singleton content-bound consent.
gen_delete_scheduled_postWrite → family actiongen_publish_action actions[] {action: "delete_scheduled_post"}Publish-plane op via the gen_publish_action delete_scheduled_post branch; fans out to the same legacy function in-process.
gen_delete_variableVidsheet aliasgen_vidsheet_action {op: "delete", target.kind: "variable"}Exact global row; Rails content-bound consent and child-project history ownership.
gen_delete_voiceWrite → family actiongen_voice_action actions[] {action: "delete_voice"}Write via gen_voice_action branch(es) delete_voice; duplex-proven identical to the legacy tool.
gen_delete_watchlistWrite → family actiongen_watchlist_action actions[] {action: "delete_watchlist"}Write via gen_watchlist_action branch(es) delete_watchlist; duplex-proven identical to the legacy tool.
gen_design_voiceWrite → family actiongen_voice_action actions[] {action: "design_voice"}Write via gen_voice_action branch(es) design_voice; duplex-proven identical to the legacy tool.
gen_disconnect_socialWrite → family actiongen_publish_action actions[] {action: "disconnect_social"}Publish-plane op via the gen_publish_action disconnect_social branch; fans out to the same legacy function in-process.
gen_duplicate_columnVidsheet aliasgen_vidsheet_action {op: "duplicate", target.kind: "column"}Exact source column, returned identity and history receipt.
gen_duplicate_last_rowVidsheet aliasgen_vidsheet_action {op: "duplicate", target.kind: "row"}Resolve the final visible row, then duplicate its exact ID; empty sheet is a refusal.
gen_duplicate_layerVidsheet aliasgen_vidsheet_action {op: "duplicate", target.kind: "layer"}Exact source layer; optional values.name, returned identity and history receipt.
gen_duplicate_recurring_jobWrite → family actiongen_task_action actions[] {action: "duplicate_recurring_job"}Write via gen_task_action branch(es) duplicate_recurring_job; duplex-proven identical to the legacy tool.
gen_duplicate_rowVidsheet aliasgen_vidsheet_action {op: "duplicate", target.kind: "row"}Exact source row; preserve returned row and child-cell identities.
gen_ensure_default_recurring_jobWrite → family actiongen_task_action actions[] {action: "ensure_default_recurring_job"}Write via gen_task_action branch(es) ensure_default_recurring_job; duplex-proven identical to the legacy tool.
gen_estimate_jobVidsheet compatgen_discover view=generation_estimateFree credit-cost estimate for jobs[] via the gen_discover generation_estimate view.
gen_generate_contentVidsheet aliasgen_vidsheet_action {op: "generate", target.kind: "cell"}Exact cell plus explicit discovered card type/inputs, stable idempotency key; pending retries preserve full payload/key. No raw provider-job bags. Poll the receipt’s user_job_id with the gen_discover generation view.
gen_generate_layerVidsheet aliasgen_vidsheet_action {op: "generate", target.kind: "layer"}Read exact persisted draft card, submit explicit card and exact owner; stable key. Continue/stop are separate existing-job lifecycles. Poll the receipt’s user_job_id with the gen_discover generation view.
gen_generate_voice_descriptionWrite → family actiongen_voice_action actions[] {action: "generate_voice_description"}Write via gen_voice_action branch(es) generate_voice_description; duplex-proven identical to the legacy tool.
gen_generate_voice_samplesWrite → family actiongen_voice_action actions[] {action: "generate_voice_samples"}Write via gen_voice_action branch(es) generate_voice_samples; duplex-proven identical to the legacy tool.
gen_generate_voice_scriptWrite → family actiongen_voice_action actions[] {action: "generate_voice_script"}Write via gen_voice_action branch(es) generate_voice_script; duplex-proven identical to the legacy tool.
gen_get_agentRead → discover viewgen_discover domain=agent view=detailRead via gen_discover domain=agent view=detail; duplex-proven identical to the legacy tool.
gen_get_agent_capabilitiesRead → discover viewgen_discover domain=agent view=capabilitiesRead via gen_discover domain=agent view=capabilities; duplex-proven identical to the legacy tool.
gen_get_agent_coreRead → discover viewgen_discover domain=agent view=coreRead via gen_discover domain=agent view=core; duplex-proven identical to the legacy tool.
gen_get_agent_profileRead → discover viewgen_discover domain=agent view=profileRead via gen_discover domain=agent view=profile; duplex-proven identical to the legacy tool.
gen_get_assetRead → discover viewgen_discover domain=asset view=detailRead via gen_discover domain=asset view=detail; duplex-proven identical to the legacy tool.
gen_get_audio_match_statusVidsheet compatgen_discover view=audio_matchesRead a sound_matching job’s matches by job_id via the gen_discover audio_matches view.
gen_get_cellVidsheet aliasgen_discover view=cellExact cell read via gen_discover cell view.
gen_get_content_resourceRead → discover viewgen_discover domain=content view=resourceRead via gen_discover domain=content view=resource; duplex-proven identical to the legacy tool.
gen_get_conversationRead → discover viewgen_discover domain=platform view=conversationRead via gen_discover domain=platform view=conversation; duplex-proven identical to the legacy tool.
gen_get_credit_balanceRead → discover viewgen_discover domain=billing view=balanceRead via gen_discover domain=billing view=balance; duplex-proven identical to the legacy tool.
gen_get_credit_usageRead → discover viewgen_discover domain=billing view=usageRead via gen_discover domain=billing view=usage; duplex-proven identical to the legacy tool.
gen_get_engineVidsheet aliasgen_discover view=engineEngine metadata via gen_discover engine view.
gen_get_generationVidsheet compatgen_discover view=generationPoll one generation by generation_id via the gen_discover generation view.
gen_get_last_operationRead → discover viewgen_discover domain=vidsheet view=last_operation
gen_get_layerVidsheet aliasgen_discover view=layerExact layer read via gen_discover layer view.
gen_get_meRead → discover viewgen_discover domain=platform view=meRead via gen_discover domain=platform view=me; duplex-proven identical to the legacy tool.
gen_get_organizationRead → discover viewgen_discover domain=platform view=organizationRead via gen_discover domain=platform view=organization; duplex-proven identical to the legacy tool.
gen_get_post_statusRead → discover viewgen_discover domain=publish view=post_statusRead via gen_discover domain=publish view=post_status; duplex-proven identical to the legacy tool.
gen_get_publish_rulesRead → discover viewgen_discover domain=publish view=rulesRead via gen_discover domain=publish view=rules; duplex-proven identical to the legacy tool.
gen_get_recurring_jobRead → discover viewgen_discover domain=task view=jobRead via gen_discover domain=task view=job; duplex-proven identical to the legacy tool.
gen_get_rowRead → discover viewgen_discover domain=vidsheet view=row
gen_get_run_statusRead → discover viewgen_discover domain=task view=run_statusRead via gen_discover domain=task view=run_status; duplex-proven identical to the legacy tool.
gen_get_session_preferencesRead → discover viewgen_discover domain=platform view=preferencesRead via gen_discover domain=platform view=preferences; duplex-proven identical to the legacy tool.
gen_get_social_connect_urlRead → discover viewgen_discover domain=publish view=connect_urlRead via gen_discover domain=publish view=connect_url; duplex-proven identical to the legacy tool.
gen_get_templateVidsheet aliasgen_discover view=templateTemplate inspect via gen_discover template view.
gen_get_vidsheet_fullRead → discover viewgen_discover domain=vidsheet view=sheet with include=["full"]Whole-sheet dump is the sheet view with include=[“full”].
gen_get_voice_preview_statusRead → discover viewgen_discover domain=voice view=preview_statusRead via gen_discover domain=voice view=preview_status; duplex-proven identical to the legacy tool.
gen_get_voice_resourceRead → discover viewgen_discover domain=voice view=resourceRead via gen_discover domain=voice view=resource; duplex-proven identical to the legacy tool.
gen_get_voice_sample_statusRead → discover viewgen_discover domain=voice view=sample_statusRead via gen_discover domain=voice view=sample_status; duplex-proven identical to the legacy tool.
gen_get_watchlistRead → discover viewgen_discover domain=watchlist view=detailRead via gen_discover domain=watchlist view=detail; duplex-proven identical to the legacy tool.
gen_import_asset_from_urlWrite → family actiongen_asset_action actions[] {action: "import_asset_from_url"}Write via gen_asset_action branch(es) import_asset_from_url; duplex-proven identical to the legacy tool.
gen_import_variablesVidsheet aliasgen_vidsheet_action {op: "update", target.kind: "vidsheet"}Existing binary direct-upload and asset registration first; values.global_variables_workbook_asset_id references an owned XLSX. No base64 JSON.
gen_list_agent_avatarsRead → discover viewgen_discover domain=agent view=avatarsRead via gen_discover domain=agent view=avatars; duplex-proven identical to the legacy tool.
gen_list_agent_voicesRead → discover viewgen_discover domain=voice view=listRead via gen_discover domain=voice view=list; duplex-proven identical to the legacy tool.
gen_list_agentsRead → discover viewgen_discover domain=agent view=listRead via gen_discover domain=agent view=list; duplex-proven identical to the legacy tool.
gen_list_api_keysRead → discover viewgen_discover domain=platform view=api_keysRead via gen_discover domain=platform view=api_keys; duplex-proven identical to the legacy tool.
gen_list_asset_librariesRead → discover viewgen_discover domain=asset view=librariesRead via gen_discover domain=asset view=libraries; duplex-proven identical to the legacy tool.
gen_list_assetsRead → discover viewgen_discover domain=asset view=listRead via gen_discover domain=asset view=list; duplex-proven identical to the legacy tool.
gen_list_available_variablesRead → discover viewgen_discover domain=vidsheet view=available_variables
gen_list_columnsVidsheet aliasgen_discover view=columnsColumn listing via gen_discover columns view.
gen_list_connected_socialsRead → discover viewgen_discover domain=publish view=connectionsRead via gen_discover domain=publish view=connections; duplex-proven identical to the legacy tool.
gen_list_content_resourcesRead → discover viewgen_discover domain=content view=listRead via gen_discover domain=content view=list; duplex-proven identical to the legacy tool.
gen_list_conversationsRead → discover viewgen_discover domain=platform view=conversationsRead via gen_discover domain=platform view=conversations; duplex-proven identical to the legacy tool.
gen_list_credit_plansRead → discover viewgen_discover domain=billing view=plansRead via gen_discover domain=billing view=plans; duplex-proven identical to the legacy tool.
gen_list_layersVidsheet aliasgen_discover view=layersLayer listing via gen_discover layers view.
gen_list_my_voicesRead → discover viewgen_discover domain=voice view=mineRead via gen_discover domain=voice view=mine; duplex-proven identical to the legacy tool.
gen_list_operationsRead → discover viewgen_discover domain=vidsheet view=operations
gen_list_organizationsRead → discover viewgen_discover domain=platform view=organizationsRead via gen_discover domain=platform view=organizations; duplex-proven identical to the legacy tool.
gen_list_proof_of_genesis_backupsRead → discover viewgen_discover domain=platform view=backupsRead via gen_discover domain=platform view=backups; duplex-proven identical to the legacy tool.
gen_list_recommended_soundsRead → discover viewgen_discover domain=media view=recommended_soundsRead via gen_discover domain=media view=recommended_sounds; duplex-proven identical to the legacy tool.
gen_list_recurring_jobsRead → discover viewgen_discover domain=task view=listRead via gen_discover domain=task view=list; duplex-proven identical to the legacy tool.
gen_list_rowsVidsheet aliasgen_discover view=rowsRow listing via gen_discover rows view.
gen_list_scheduled_postsRead → discover viewgen_discover domain=publish view=scheduledRead via gen_discover domain=publish view=scheduled; duplex-proven identical to the legacy tool.
gen_list_sound_libraryRead → discover viewgen_discover domain=media view=sound_libraryRead via gen_discover domain=media view=sound_library (query/commercial/page/per_page).
gen_list_talking_avatarsVidsheet aliasgen_avatarsAvatar listing via gen_avatars op list (source library|my).
gen_list_templatesVidsheet aliasgen_discover view=templatesTemplate browse via gen_discover templates view.
gen_list_toolsPending retirementhost tool-search / gen_discoverTool discovery belongs to the host’s tool-search; record, id, and option discovery is gen_discover. Still served until the GEN-6923 alias layer hides it (Migration fate: FOLD).
gen_list_variablesVidsheet aliasgen_discover view=variablesVariable listing via gen_discover variables view.
gen_list_watchlistsRead → discover viewgen_discover domain=watchlist view=listRead via gen_discover domain=watchlist view=list; duplex-proven identical to the legacy tool.
gen_mass_update_cellsVidsheet aliasgen_vidsheet_action {op: "update", target.kind: "cell"}One actions array with exact cells and sparse values; atomic receipt and change_set, no silent skipped foreign IDs.
gen_mass_update_columnsVidsheet aliasgen_vidsheet_action {op: "update", target.kind: "column"}One actions array with sparse typed column values and exact receipt count.
gen_mass_update_rowsVidsheet aliasgen_vidsheet_action {op: "update", target.kind: "row"}One actions array; typed row_height and admitted row values, exact receipt count.
gen_match_row_soundsVidsheet compatgen_vidsheet_action {op: "generate", target.kind: "creation_card"}Job card sound_matching on the generate op with row_id (instead of overlays); same spreadsheet_audio_matching user job.
gen_match_soundsVidsheet aliasgen_vidsheet_action {op: "generate", target.kind: "creation_card"}Job card on the generate op (creation_card_type sound_matching + overlays); never a standalone tool.
gen_pause_recurring_jobWrite → family actiongen_task_action actions[] {action: "pause_recurring_job"}Write via gen_task_action branch(es) pause_recurring_job; duplex-proven identical to the legacy tool.
gen_pause_watchlistWrite → family actiongen_watchlist_action actions[] {action: "pause_watchlist"}Write via gen_watchlist_action branch(es) pause_watchlist; duplex-proven identical to the legacy tool.
gen_preview_voiceWrite → family actiongen_voice_action actions[] {action: "preview_voice"}Write via gen_voice_action branch(es) preview_voice; duplex-proven identical to the legacy tool.
gen_publish_contentWrite → family actiongen_publish_action actions[] {action: "publish_content"}Publish-plane op via the gen_publish_action publish_content branch; fans out to the same legacy function in-process.
gen_query_watchlistWrite → family actiongen_watchlist_action actions[] {action: "query_watchlist"}Write via gen_watchlist_action branch(es) query_watchlist; duplex-proven identical to the legacy tool.
gen_redo_operationVidsheet aliasgen_vidsheet_action {op: "redo", target.kind: "vidsheet"}Exact sheet/history owner and action.change_set_id.
gen_remove_proof_of_genesis_backupWrite → family actiongen_platform_action actions[] {action: "remove_proof_of_genesis_backup"}Write via gen_platform_action branch(es) remove_proof_of_genesis_backup; duplex-proven identical to the legacy tool.
gen_remove_watchlist_sourceWrite → family actiongen_watchlist_action actions[] {action: "remove_watchlist_source"}Write via gen_watchlist_action branch(es) remove_watchlist_source; duplex-proven identical to the legacy tool.
gen_reorder_columnsVidsheet aliasgen_vidsheet_action {op: "reorder", target.kind: "column"}Ordered exact IDs in ids, not user-authored integer position bags.
gen_reorder_layersVidsheet aliasgen_vidsheet_action {op: "reorder", target.kind: "layer"}Ordered exact child-layer IDs scoped to one video cell.
gen_reorder_rowsVidsheet aliasgen_vidsheet_action {op: "reorder", target.kind: "row"}Ordered exact row IDs in ids.
gen_reset_agent_profileWrite → family actiongen_agent_action actions[] {action: "reset_agent_profile"}Write via gen_agent_action branch(es) reset_agent_profile; duplex-proven identical to the legacy tool.
gen_resume_recurring_jobWrite → family actiongen_task_action actions[] {action: "resume_recurring_job"}Write via gen_task_action branch(es) resume_recurring_job; duplex-proven identical to the legacy tool.
gen_resume_watchlistWrite → family actiongen_watchlist_action actions[] {action: "resume_watchlist"}Write via gen_watchlist_action branch(es) resume_watchlist; duplex-proven identical to the legacy tool.
gen_revoke_all_api_keysWrite → family actiongen_platform_action actions[] {action: "revoke_all_api_keys"}Write via gen_platform_action branch(es) revoke_all_api_keys; duplex-proven identical to the legacy tool.
gen_revoke_api_keyWrite → family actiongen_platform_action actions[] {action: "revoke_api_key"}Write via gen_platform_action branch(es) revoke_api_key; duplex-proven identical to the legacy tool.
gen_run_recurring_job_nowWrite → family actiongen_task_action actions[] {action: "run_recurring_job_now"}Write via gen_task_action branch(es) run_recurring_job_now; duplex-proven identical to the legacy tool.
gen_set_agent_primary_photoWrite → family actiongen_agent_action actions[] {action: "set_agent_primary_photo"}Write via gen_agent_action branch(es) set_agent_primary_photo; duplex-proven identical to the legacy tool.
gen_set_cardVidsheet aliasgen_vidsheet_action {op: "update", target.kind: "creation_card"}set_cell with creation_card_type (+ creation_card_inputs) persists the cell’s draftForm draft without generating; generate runs it.
gen_set_default_user_jobVidsheet aliasgen_vidsheet_action {op: "update", target.kind: "cell"}values.take carries exact id and type; validate against this owner’s history, never generate.
gen_set_variable_mediaVidsheet aliasgen_vidsheet_action {op: "update", target.kind: "variable"}Exact variable ID and values.media; owned source prerequisite and same-payload/key source_not_ready replay.
gen_settle_x402_credit_purchaseWrite → family actiongen_billing_action actions[] {action: "settle_x402_credit_purchase"}Write via gen_billing_action branch(es) settle_x402_credit_purchase; duplex-proven identical to the legacy tool.
gen_stop_generationVidsheet compatgen_vidsheet_action op stop_generationgen_vidsheet_action op stop_generation (generation_id); refund is requested, not confirmed.
gen_transcribeWrite → family actiongen_media_action actions[] {action: "transcribe"}Write via gen_media_action branch(es) transcribe; duplex-proven identical to the legacy tool.
gen_undo_operationVidsheet aliasgen_vidsheet_action {op: "undo", target.kind: "vidsheet"}Exact sheet/history owner and action.change_set_id; do not confuse action selector with envelope grouping ID.
gen_update_agentWrite → family actiongen_agent_action actions[] {action: "update_agent"}Write via gen_agent_action branch(es) update_agent; duplex-proven identical to the legacy tool.
gen_update_agent_coreWrite → family actiongen_agent_action actions[] {action: "update_agent_core"}Write via gen_agent_action branch(es) update_agent_core; duplex-proven identical to the legacy tool.
gen_update_agent_profileWrite → family actiongen_agent_action actions[] {action: "update_agent_profile"}Write via gen_agent_action branch(es) update_agent_profile; duplex-proven identical to the legacy tool.
gen_update_api_keyWrite → family actiongen_platform_action actions[] {action: "update_api_key"}Write via gen_platform_action branch(es) update_api_key; duplex-proven identical to the legacy tool.
gen_update_cellVidsheet aliasgen_vidsheet_action {op: "update", target.kind: "cell"} or {op: "update", target.kind: "creation_card"}Typed value/media/clear_content or explicit draftForm card; static projection is Rails-owned.
gen_update_cell_layersVidsheet aliasgen_vidsheet_action {op: "update", target.kind: "cell"} or {op: "create", target.kind: "layer"} or {op: "update", target.kind: "layer"}Flat same-cell atomic scene batch; no nested values.layers, implicit delete, generate, or reorder. New layers omit IDs; existing layers use exact IDs.
gen_update_columnVidsheet aliasgen_vidsheet_action {op: "update", target.kind: "column"}Exact column ID and sparse admitted values.
gen_update_content_resourceWrite → family actiongen_content_action actions[] {action: "update_content_resource"}Write via gen_content_action branch(es) update_content_resource; duplex-proven identical to the legacy tool.
gen_update_engineVidsheet aliasgen_vidsheet_action {op: "update", target.kind: "vidsheet"}Sparse values.name; omitted values remain omitted.
gen_update_layerVidsheet aliasgen_vidsheet_action {op: "update", target.kind: "layer"} or {op: "update", target.kind: "creation_card"}Exact layer; sparse admitted settings/card/media/name. Discover layer_type settings; static reset follows FE projection.
gen_update_monitoring_jobWrite → family actiongen_task_action actions[] {action: "update_monitoring_job"}Write via gen_task_action branch(es) update_monitoring_job; duplex-proven identical to the legacy tool.
gen_update_organizationWrite → family actiongen_platform_action actions[] {action: "update_organization"}Write via gen_platform_action branch(es) update_organization; duplex-proven identical to the legacy tool.
gen_update_published_postWrite → family actiongen_publish_action actions[] {action: "update_published_post"}Publish-plane op via the gen_publish_action update_published_post branch; fans out to the same legacy function in-process.
gen_update_recurring_jobWrite → family actiongen_task_action actions[] {action: "update_recurring_job"}Write via gen_task_action branch(es) update_recurring_job; duplex-proven identical to the legacy tool.
gen_update_rowVidsheet aliasgen_vidsheet_action {op: "update", target.kind: "row"}Typed row values, including numeric row_height; no raw additional_attributes.
gen_update_scheduled_postWrite → family actiongen_publish_action actions[] {action: "update_scheduled_post"}Publish-plane op via the gen_publish_action update_scheduled_post branch; fans out to the same legacy function in-process.
gen_update_session_preferencesWrite → family actiongen_platform_action actions[] {action: "update_session_preferences"}Write via gen_platform_action branch(es) update_session_preferences; duplex-proven identical to the legacy tool.
gen_update_variableVidsheet aliasgen_vidsheet_action {op: "update", target.kind: "variable"}Exact global-variable row ID; sparse name/value/media, not a guessed child value-cell ID.
gen_update_watchlistWrite → family actiongen_watchlist_action actions[] {action: "update_watchlist"}Write via gen_watchlist_action branch(es) update_watchlist; duplex-proven identical to the legacy tool.
gen_upgrade_workspaceWrite → family actiongen_platform_action actions[] {action: "upgrade_workspace"}Write via gen_platform_action branch(es) upgrade_workspace; duplex-proven identical to the legacy tool.
gen_validate_video_layoutRead → discover viewgen_discover domain=vidsheet view=layout_validation
gen_vidsheet_discoverRenamedgen_discover (same views; domain defaults to vidsheet)Renamed in GEN-6919; every former view is served unchanged under gen_discover.
gen_vidsheet_recommend_songVidsheet aliasgen_vidsheet_action {op: "generate", target.kind: "creation_card"}Job card on the generate op (card_type recommend_song + audio_url); never a standalone tool.
gen_vidsheet_sound_matchingVidsheet aliasgen_vidsheet_action {op: "generate", target.kind: "creation_card"}Job card on the generate op (card_type sound_matching + overlays); never a standalone tool.
gen_vidsheet_video_from_talking_avatarVidsheet aliasgen_vidsheet_action {op: "generate", target.kind: "creation_card"}Job card on the generate op (card_type video_from_talking_avatar + avatar ids/urls); never a standalone tool.