From 86668740edaf4b4bb7bc96b361d01db720e4983a Mon Sep 17 00:00:00 2001 From: mavneox Date: Fri, 24 Jul 2026 09:16:36 +0000 Subject: [PATCH 1/7] =?UTF-8?q?docs:=20sync=20API=20surface=20to=20142=20M?= =?UTF-8?q?CP=20tools=20=E2=80=94=20add=20billing,=20social,=20schedule,?= =?UTF-8?q?=20asset=20OpenAPI=20paths?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Update llms.txt + llms-full.txt: tool count 150→142 (precise audit) - Add python.gen.pro to OpenAPI servers list - Add Billing and Voices tags - Add OpenAPI paths: credit_balance, credit_plans, credit_transactions, payment, subscription_upgrade, user_jobs/estimate, user_voice_resources, hume_ai_sample/status, content_resources/from_url, schedule/posts, schedule/with-post, schedule/post/{id} (GET+PATCH+DELETE), platform/get_oauth_account, platform/get_authorization_url, platform/disconnect/{platform}, agents/{id}/recurring-jobs/{id}/test-run Co-Authored-By: Claude Sonnet 4.6 --- public/llms-full.txt | 2 +- public/llms.txt | 2 +- public/openapi.yaml | 463 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 465 insertions(+), 2 deletions(-) diff --git a/public/llms-full.txt b/public/llms-full.txt index 3d2cd8a..1afba8c 100644 --- a/public/llms-full.txt +++ b/public/llms-full.txt @@ -1332,7 +1332,7 @@ next cadence tick. # Integrations -- MCP Server: remote endpoint `https://mcp.gen.pro/mcp` with `Authorization: Bearer `, or local stdio package `uvx gen-mcp-server` (Python, PyPI; env `GEN_API_KEY`). Exposes 100 gen_* tools, 9 prompts, and 3 guidance resources. +- MCP Server: remote endpoint `https://mcp.gen.pro/mcp` with `Authorization: Bearer `, or local stdio package `uvx gen-mcp-server` (Python, PyPI; env `GEN_API_KEY`). Exposes 142 gen_* tools, 9 prompts, and 3 guidance resources. - TypeScript SDK: `npm install @poweredbygen/gen-sdk` - n8n: HTTP Request node with `X-API-Key` header - OpenAPI 3.1: https://api.gen.pro/openapi.yaml (every operation carries `x-phase`) diff --git a/public/llms.txt b/public/llms.txt index 334e6d1..ab4c44f 100644 --- a/public/llms.txt +++ b/public/llms.txt @@ -795,7 +795,7 @@ Local install example: GEN_API_KEY=your-pat uvx gen-mcp-server ``` -The current MCP exposes 150 `gen_*` tools, 9 prompts, and 3 guidance resources. Key tools by category: +The current MCP exposes 142 `gen_*` tools, 9 prompts, and 3 guidance resources. Key tools by category: **Natural-language delegation (start here for fuzzy goals):** `gen_ask` (questions about social data — links, accounts, hashtags, trends), `gen_chat` (open-ended build goals), `gen_research` (topic research across social + web), `gen_make_video` (finished multi-scene video from a brief), `gen_generate_content_ideas`. diff --git a/public/openapi.yaml b/public/openapi.yaml index ac4757f..41126a1 100644 --- a/public/openapi.yaml +++ b/public/openapi.yaml @@ -59,6 +59,8 @@ servers: description: Agent Chat API - url: https://agent-core.gen.pro/v1 description: Agent Core API (watchlists) + - url: https://python.gen.pro + description: Social publishing + OAuth integration service (schedule, social connect) security: - apiKey: [] @@ -125,6 +127,13 @@ tags: agent. Base URL `https://agent-core.gen.pro/v1`. Scraped data feeds back into agent chat and content idea generation. CRUD operations are free; downstream scrapes bill normally. + - name: Billing + description: | + Credit balance, usage history, plan discovery, and purchase flows. All on `https://api.gen.pro/v1`. + All endpoints that consume credits are marked `x-phase: export` and documented with a credit note. + - name: Voices + description: | + Voice library, custom voice CRUD, and voice-design status polling. Base URL `https://api.gen.pro/v1`. - name: Recurring Jobs description: | Scheduled agent runs ("daily tasks"). Base URL @@ -4152,6 +4161,460 @@ paths: application/json: schema: { $ref: '#/components/schemas/RecurringJob' } + /agents/{agent_id}/recurring-jobs/{job_id}/test-run: + post: + operationId: runRecurringJobNow + x-phase: monitoring + summary: Trigger a recurring job immediately (test run) + tags: [Recurring Jobs] + servers: + - url: https://agent.gen.pro/v1 + parameters: + - { name: agent_id, in: path, required: true, schema: { type: string } } + - { name: job_id, in: path, required: true, schema: { type: string } } + responses: + '202': + description: Run accepted + content: + application/json: + schema: + type: object + properties: + run_id: { type: string } + + /credit_balance: + get: + operationId: getCreditBalance + x-phase: export + summary: Get workspace credit balance + tags: [Billing] + parameters: + - { name: agent_id, in: query, required: true, schema: { type: string } } + responses: + '200': + description: Credit balance + content: + application/json: + schema: + type: object + properties: + available_credit: { type: number } + generic: { type: number } + aura: { type: number } + + /credit_plans: + get: + operationId: listCreditPlans + x-phase: export + summary: List available credit and subscription plans + tags: [Billing] + parameters: + - { name: cycle, in: query, schema: { type: string, enum: [monthly, annual] } } + responses: + '200': + description: Credit plans + content: + application/json: + schema: + type: array + items: + type: object + properties: + id: { type: string } + name: { type: string } + price: { type: number } + credits: { type: number } + cycle: { type: string } + + /credit_transactions: + get: + operationId: getCreditUsage + x-phase: export + summary: List credit usage history + tags: [Billing] + parameters: + - { name: agent_id, in: query, required: true, schema: { type: string } } + - { name: page, in: query, schema: { type: integer } } + responses: + '200': + description: Credit transactions + content: + application/json: + schema: + type: array + items: + type: object + properties: + id: { type: string } + amount: { type: number } + description: { type: string } + created_at: { type: string, format: date-time } + + /payment: + post: + operationId: buyCredits + x-phase: export + summary: Start a Stripe credit purchase checkout session + tags: [Billing] + requestBody: + required: true + content: + application/json: + schema: + type: object + required: [credit_plan_id, organization_id] + properties: + credit_plan_id: { type: string } + organization_id: { type: string } + success_url: { type: string } + cancel_url: { type: string } + responses: + '200': + description: Checkout session with payment URL + content: + application/json: + schema: + type: object + properties: + url: { type: string } + + /subscription_upgrade: + post: + operationId: upgradeWorkspace + x-phase: export + summary: Upgrade workspace subscription tier + tags: [Billing] + requestBody: + required: true + content: + application/json: + schema: + type: object + required: [creditPlanId, organizationId, returnUrl] + properties: + creditPlanId: { type: string } + organizationId: { type: string } + returnUrl: { type: string } + responses: + '200': + description: Checkout session + content: + application/json: + schema: + type: object + properties: + url: { type: string } + + /user_jobs/estimate: + post: + operationId: estimateJob + x-phase: edit + summary: Estimate credit cost for one or more generation jobs + tags: [Billing] + requestBody: + required: true + content: + application/json: + schema: + type: object + required: [agent_id, user_jobs] + properties: + agent_id: { type: string } + user_jobs: + type: array + items: { type: object } + responses: + '200': + description: Cost estimate + content: + application/json: + schema: + type: object + properties: + total_credits: { type: number } + breakdown: { type: array, items: { type: object } } + + /user_voice_resources: + get: + operationId: listMyVoices + x-phase: setup + summary: List the agent's custom voices + tags: [Voices] + parameters: + - { name: agent_id, in: query, required: true, schema: { type: string } } + responses: + '200': + description: Custom voices + content: + application/json: + schema: + type: array + items: + type: object + properties: + id: { type: string } + name: { type: string } + source: { type: string } + + /hume_ai_sample/status: + get: + operationId: getVoiceSampleStatus + x-phase: setup + summary: Poll voice design sample status + tags: [Voices] + parameters: + - { name: agent_id, in: query, required: true, schema: { type: string } } + - { name: generation_id, in: query, required: true, schema: { type: string } } + responses: + '200': + description: Sample status and audio + content: + application/json: + schema: + type: object + properties: + status: { type: string, enum: [pending, completed, failed] } + base64_audio: { type: string } + speaker_embedding_url: { type: string } + + /content_resources/from_url: + post: + operationId: importAssetFromUrl + x-phase: edit + summary: Import media from a public URL into the asset library + tags: [Content Resources] + requestBody: + required: true + content: + application/json: + schema: + type: object + required: [agent_id, url] + properties: + agent_id: { type: string } + url: { type: string, description: "Public URL (YouTube, TikTok, Instagram, or direct file)" } + folder_id: { type: string } + responses: + '200': + description: Import job started + content: + application/json: + schema: + type: object + properties: + id: { type: string } + status: { type: string } + + /schedule/posts: + get: + operationId: listScheduledPosts + x-phase: export + summary: List the content calendar (scheduled posts) + tags: [Publishing] + servers: + - url: https://python.gen.pro + parameters: + - { name: agent_id, in: query, required: true, schema: { type: string } } + - { name: start_date, in: query, schema: { type: string, format: date } } + - { name: end_date, in: query, schema: { type: string, format: date } } + responses: + '200': + description: Scheduled posts + content: + application/json: + schema: + type: object + properties: + scheduled_posts: + type: array + items: + type: object + + /schedule/with-post: + post: + operationId: schedulePost + x-phase: export + summary: Create or schedule a social media post + tags: [Publishing] + servers: + - url: https://python.gen.pro + requestBody: + required: true + content: + application/json: + schema: + type: object + required: [agent_id, platform, schedule_type] + properties: + agent_id: { type: string } + platform: + type: array + items: { type: string, enum: [tiktok, instagram, facebook, youtube, x] } + description: { type: string } + media_url: { type: string } + media_urls: { type: array, items: { type: string } } + schedule_type: { type: string, enum: [now, specific_time] } + scheduled_time: { type: string, format: date-time } + title: { type: string } + media_type: { type: string, enum: [VIDEO, IMAGE, TWEET_VIDEO] } + thumbnail_url: { type: string } + thread: + type: array + items: + type: object + properties: + text: { type: string } + media_urls: { type: array, items: { type: string } } + reply_to_tweet_id: { type: string } + responses: + '200': + description: Scheduled post created + content: + application/json: + schema: + type: object + properties: + id: { type: string } + status: { type: string } + + /schedule/post/{post_id}: + get: + operationId: getPostStatus + x-phase: export + summary: Get platform-confirmed publish status of a post + tags: [Publishing] + servers: + - url: https://python.gen.pro + parameters: + - { name: post_id, in: path, required: true, schema: { type: string } } + responses: + '200': + description: Post status + content: + application/json: + schema: + type: object + properties: + status: { type: string, enum: [accepted, publishing, published, failed] } + platforms: + type: array + items: + type: object + properties: + platform: { type: string } + status: { type: string } + platform_post_id: { type: string } + post_url: { type: string } + published_at: { type: string, format: date-time } + error: { type: string } + patch: + operationId: updateScheduledPost + x-phase: export + summary: Update a scheduled post before it publishes + tags: [Publishing] + servers: + - url: https://python.gen.pro + parameters: + - { name: post_id, in: path, required: true, schema: { type: string } } + requestBody: + required: true + content: + application/json: + schema: { type: object, additionalProperties: true } + responses: + '200': + description: Updated post + delete: + operationId: deleteScheduledPost + x-phase: export + summary: Delete a scheduled post from the calendar + tags: [Publishing] + servers: + - url: https://python.gen.pro + parameters: + - { name: post_id, in: path, required: true, schema: { type: string } } + responses: + '204': + description: Deleted + + /platform/get_oauth_account: + post: + operationId: listConnectedSocials + x-phase: export + summary: List connected social accounts for publishing + tags: [Publishing] + servers: + - url: https://python.gen.pro + requestBody: + required: true + content: + application/json: + schema: + type: object + required: [agent_id] + properties: + agent_id: { type: string } + responses: + '200': + description: Connected platforms + content: + application/json: + schema: + type: object + additionalProperties: true + + /platform/get_authorization_url: + post: + operationId: getSocialConnectUrl + x-phase: export + summary: Get OAuth URL to connect a social account + tags: [Publishing] + servers: + - url: https://python.gen.pro + parameters: + - { name: platform, in: query, required: true, schema: { type: string, enum: [tiktok, instagram, facebook, youtube, x] } } + requestBody: + required: true + content: + application/json: + schema: + type: object + required: [agent_id] + properties: + agent_id: { type: string } + responses: + '200': + description: OAuth URL + content: + application/json: + schema: + type: object + properties: + url: { type: string } + + /platform/disconnect/{platform}: + put: + operationId: disconnectSocial + x-phase: export + summary: Disconnect a connected social account + tags: [Publishing] + servers: + - url: https://python.gen.pro + parameters: + - { name: platform, in: path, required: true, schema: { type: string, enum: [tiktok, instagram, facebook, youtube, x] } } + requestBody: + required: true + content: + application/json: + schema: + type: object + required: [agent_id] + properties: + agent_id: { type: string } + responses: + '200': + description: Disconnected + components: securitySchemes: apiKey: From cff23f15b66f2d597ab3d26f46997284059b65e6 Mon Sep 17 00:00:00 2001 From: mavneox Date: Sat, 25 Jul 2026 09:19:35 +0000 Subject: [PATCH 2/7] docs(llms.txt): sync MCP tool list to 142 live tools The MCP has grown from 100 to 142 tools since the last sync. This update fixes the tools section of llms.txt: - Remove stale names: gen_research, gen_make_video, gen_list_voices, gen_create_voice (removed from live server) - Add new tools: gen_run_research, gen_refine_content_ideas, gen_list_content_ideas, gen_update_idea_status, gen_expand_idea, gen_set_content_preference, gen_decide_agent_run, gen_list_conversations, gen_get_conversation, gen_get_session_preferences, gen_update_session_preferences, gen_generate_content, gen_generate_layer, gen_continue_generation, gen_publish_content, gen_list_agent_voices, gen_preview_voice, gen_get_voice_preview_status, gen_generate_voice_description, gen_create_content_resource, gen_get_content_resource, gen_list_content_resources, gen_delete_content_resource, gen_update_column, gen_duplicate_row, gen_create_layer, gen_get_layer, gen_update_layer, gen_delete_layer, gen_pause_watchlist, gen_resume_watchlist, gen_get_watchlist, gen_update_watchlist, gen_delete_watchlist, gen_create_monitoring_job, gen_update_monitoring_job, gen_list_proof_of_genesis_backups, gen_create_proof_of_genesis_backup, gen_remove_proof_of_genesis_backup, gen_get_recurring_job, gen_ensure_default_recurring_job, gen_get_credit_usage, gen_list_credit_plans, gen_update_agent, gen_get_agent, gen_delete_agent, gen_get_agent_profile, gen_create_agent_profile, gen_update_agent_profile, gen_reset_agent_profile, gen_add_agent_account, gen_add_agent_inspiration, gen_connect_agent_elevenlabs, gen_update_organization, gen_delete_organization, gen_list_api_keys, gen_update_api_key, gen_revoke_api_key, gen_revoke_all_api_keys Co-Authored-By: Claude Sonnet 4.6 --- public/llms.txt | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/public/llms.txt b/public/llms.txt index ab4c44f..030e323 100644 --- a/public/llms.txt +++ b/public/llms.txt @@ -797,27 +797,39 @@ GEN_API_KEY=your-pat uvx gen-mcp-server The current MCP exposes 142 `gen_*` tools, 9 prompts, and 3 guidance resources. Key tools by category: -**Natural-language delegation (start here for fuzzy goals):** `gen_ask` (questions about social data — links, accounts, hashtags, trends), `gen_chat` (open-ended build goals), `gen_research` (topic research across social + web), `gen_make_video` (finished multi-scene video from a brief), `gen_generate_content_ideas`. +**Natural-language delegation (start here for fuzzy goals):** `gen_ask` (questions about social data — links, accounts, hashtags, trends), `gen_chat` (open-ended build goals), `gen_run_research` (deep topic research across 10+ platforms), `gen_generate_content_ideas` (data-driven ideas/scripts), `gen_refine_content_ideas` (iterate with feedback). -**Creation:** `gen_create_video` (single clip; models: seedance-2.0, veo_3, kling_2_1, sora_2, grok, pika), `gen_create_image` (nano-banana-pro/nano-banana/nano-banana-2), `gen_create_song` (suno-v5-beta/suno-v4.5plus-beta), `gen_create_song_mix`, `gen_render_video`. +**Content ideas lifecycle:** `gen_list_content_ideas` (see all ideas), `gen_expand_idea` (expand one idea to a full scene plan), `gen_update_idea_status` (approve/reject/archive), `gen_set_content_preference` (persistent rules for future generations), `gen_get_session_preferences` / `gen_update_session_preferences` (per-conversation creative rules), `gen_decide_agent_run` (approve/reject a pending agent action gate). -**Assets:** `gen_list_assets`, `gen_get_asset`, `gen_import_asset_from_url`, `gen_upload_asset`, `gen_complete_asset_upload`, `gen_delete_asset`. +**Conversations:** `gen_list_conversations`, `gen_get_conversation`. -**Voices:** `gen_list_voices`, `gen_list_my_voices`, `gen_design_voice`, `gen_clone_voice`, `gen_create_voice`. +**Creation:** `gen_create_video` (single clip; models: seedance-2.0, veo_3, kling_2_1, sora_2, grok, pika), `gen_create_image` (nano-banana-pro/nano-banana/nano-banana-2), `gen_create_song` (suno-v5-beta/suno-v4.5plus-beta), `gen_create_song_mix`, `gen_render_video`, `gen_generate_content` (trigger generation for a vidsheet cell), `gen_generate_layer` (trigger generation for a specific layer), `gen_continue_generation` (resume a stopped generation). -**Social publishing:** `gen_get_social_connect_url` (OAuth connect flow), `gen_list_connected_socials`, `gen_schedule_post` (platforms: tiktok|instagram|facebook|youtube|x), `gen_list_scheduled_posts`, `gen_get_post_status`, `gen_update_scheduled_post`, `gen_delete_scheduled_post`, `gen_disconnect_social`. On **X**, `gen_schedule_post` also supports up to 4 images per tweet (`media_urls`), **threads** (`thread`: an ordered list of `{text, media_urls?}` segments), and **replies** (`reply_to_tweet_id`). `thread` and `reply_to_tweet_id` are X-only. +**Assets / Content Resources:** `gen_list_assets` / `gen_list_content_resources`, `gen_get_asset` / `gen_get_content_resource`, `gen_import_asset_from_url`, `gen_upload_asset`, `gen_complete_asset_upload`, `gen_create_content_resource`, `gen_update_content_resource`, `gen_delete_asset` / `gen_delete_content_resource`. -**Vidsheets:** `gen_list_templates`, `gen_clone_template`, `gen_create_engine`, `gen_get_engine`, `gen_clone_engine`, `gen_list_columns`, `gen_create_column`, `gen_list_rows`, `gen_create_row`, `gen_get_cell`, `gen_update_cell`, `gen_create_variable`, `gen_update_variable`, `gen_delete_variable`. +**Voices:** `gen_list_agent_voices`, `gen_list_my_voices`, `gen_design_voice`, `gen_clone_voice`, `gen_preview_voice` (TTS audition), `gen_get_voice_preview_status`, `gen_generate_voice_description`, `gen_generate_voice_samples`, `gen_get_voice_sample_status`, `gen_delete_voice`. -**Watchlists:** `gen_create_watchlist`, `gen_list_watchlists`, `gen_query_watchlist`, `gen_add_watchlist_source`, `gen_remove_watchlist_source`. +**Social publishing:** `gen_get_social_connect_url` (OAuth connect flow), `gen_list_connected_socials`, `gen_schedule_post` (platforms: tiktok|instagram|facebook|youtube|x), `gen_list_scheduled_posts`, `gen_get_post_status`, `gen_update_scheduled_post`, `gen_delete_scheduled_post`, `gen_disconnect_social`, `gen_publish_content` (direct publish/schedule to TikTok). On **X**, `gen_schedule_post` also supports up to 4 images per tweet (`media_urls`), **threads** (`thread`: an ordered list of `{text, media_urls?}` segments), and **replies** (`reply_to_tweet_id`). `thread` and `reply_to_tweet_id` are X-only. -**Recurring automation:** `gen_create_recurring_job`, `gen_list_recurring_jobs`, `gen_run_recurring_job_now`, `gen_pause_recurring_job`, `gen_resume_recurring_job`. +**Vidsheets:** `gen_list_templates`, `gen_clone_template`, `gen_create_engine`, `gen_get_engine`, `gen_clone_engine`, `gen_list_columns`, `gen_create_column`, `gen_update_column`, `gen_delete_column`, `gen_list_rows`, `gen_create_row`, `gen_duplicate_row`, `gen_get_cell`, `gen_update_cell`, `gen_create_layer`, `gen_get_layer`, `gen_update_layer`, `gen_delete_layer`, `gen_list_variables`, `gen_create_variable`, `gen_update_variable`, `gen_delete_variable`. -**Credits/billing:** `gen_get_credit_balance`, `gen_estimate_job`, `gen_buy_credits`, `gen_upgrade_workspace`. +**Watchlists:** `gen_create_watchlist`, `gen_list_watchlists`, `gen_get_watchlist`, `gen_update_watchlist`, `gen_delete_watchlist`, `gen_query_watchlist`, `gen_add_watchlist_source`, `gen_remove_watchlist_source`, `gen_pause_watchlist`, `gen_resume_watchlist`. -**Agent setup:** `gen_get_me`, `gen_list_agents`, `gen_get_agent_core`, `gen_update_agent_core`, `gen_set_agent_primary_photo`, `gen_add_agent_look`. +**Content monitoring:** `gen_create_monitoring_job` (scrape TikTok/Instagram/YouTube into agent knowledge), `gen_update_monitoring_job`. -**Job control:** `gen_get_generation` (poll), `gen_stop_generation` (refunds credits), `gen_get_run_status`. +**Proof of Genesis backups:** `gen_list_proof_of_genesis_backups`, `gen_create_proof_of_genesis_backup`, `gen_remove_proof_of_genesis_backup`. + +**Recurring automation:** `gen_create_recurring_job`, `gen_list_recurring_jobs`, `gen_get_recurring_job`, `gen_update_recurring_job`, `gen_run_recurring_job_now`, `gen_pause_recurring_job`, `gen_resume_recurring_job`, `gen_delete_recurring_job`, `gen_ensure_default_recurring_job` (idempotent daily-ideas setup). + +**Credits/billing:** `gen_get_credit_balance`, `gen_estimate_job`, `gen_get_credit_usage`, `gen_list_credit_plans`, `gen_buy_credits`, `gen_upgrade_workspace`. + +**Agent setup:** `gen_get_me`, `gen_list_agents`, `gen_get_agent`, `gen_create_agent`, `gen_update_agent`, `gen_delete_agent`, `gen_get_agent_core`, `gen_update_agent_core`, `gen_get_agent_profile`, `gen_create_agent_profile`, `gen_update_agent_profile`, `gen_reset_agent_profile`, `gen_set_agent_primary_photo`, `gen_add_agent_look`, `gen_add_agent_account`, `gen_add_agent_inspiration`, `gen_connect_agent_elevenlabs`, `gen_list_agent_avatars`, `gen_create_agent_avatar`, `gen_delete_agent_avatar`. + +**Organizations:** `gen_list_organizations`, `gen_create_organization`, `gen_get_organization`, `gen_update_organization`, `gen_delete_organization`. + +**API keys:** `gen_list_api_keys`, `gen_create_api_key`, `gen_update_api_key`, `gen_revoke_api_key`, `gen_revoke_all_api_keys`. + +**Job control:** `gen_get_generation` (poll), `gen_stop_generation` (refunds credits), `gen_continue_generation` (resume), `gen_get_run_status`. Full install guide: https://api.gen.pro/guides/mcp/ From b4ed36dee7a958bef34394d8515e59a08b859901 Mon Sep 17 00:00:00 2001 From: mavneox Date: Mon, 27 Jul 2026 09:14:50 +0000 Subject: [PATCH 3/7] api-sync 2026-07-27: surface sync + security fixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Security fixes: - Remove pricing table ($0.015/video, $0.002/comment) from content-monitoring.mdx and llms-full.txt - Replace "S3" with "cloud storage"/"from your client" in content-resources.mdx Surface sync (MCP → docs/OpenAPI/llms): - OpenAPI: add PATCH /vidsheet/{sheet_id}/columns/{column_id} for gen_update_column - OpenAPI: add POST /agents/{agent_id}/core/inspiration for gen_add_agent_inspiration - columns.mdx: add Update column section with params, errors, and curl example - llms-full.txt: add PATCH/DELETE to columns section; add Agent Profile section Co-Authored-By: Claude Sonnet 4.6 --- public/llms-full.txt | 26 ++++++- public/openapi.yaml | 72 +++++++++++++++++++ src/content/docs/reference/columns.mdx | 40 +++++++++++ .../docs/reference/content-monitoring.mdx | 11 +-- .../docs/reference/content-resources.mdx | 4 +- 5 files changed, 141 insertions(+), 12 deletions(-) diff --git a/public/llms-full.txt b/public/llms-full.txt index 1afba8c..cd16a19 100644 --- a/public/llms-full.txt +++ b/public/llms-full.txt @@ -294,6 +294,26 @@ DELETE /v1/persisted_tokens/{id}/revoke DELETE /v1/persisted_tokens/revoke_all ``` +## Agent Profile (agentic service mirror, `https://agent.gen.pro/v1`) + +The agent profile is a lightweight mirror of agent setup as seen by the ideas/research service. Use `gen_get_agent_core` / `gen_update_agent_core` (Rails) for the authoritative read/write. These endpoints are useful when you need to check or reset how the agentic service sees the agent, or to set `content_idea_preferences` (persistent rules for future idea runs). + +``` +GET /v1/agent/profile?agent_id={id} +→ { identity: { name, description, persona }, voice: { api_keys, default_voice }, brand: { brand_name, description, goal, keywords, target_platforms, shortform, longform, linked_accounts, content_idea_preferences } } + +POST /v1/agent/profile?agent_id={id} +Body: { identity?, voice?, brand? } +→ updated profile + +PUT /v1/agent/profile?agent_id={id} +Body: { identity?, voice?, brand? } (replaces; same shape as POST) + +DELETE /v1/agent/profile?agent_id={id} — resets brand section only (does NOT delete the agent) +``` + +`content_idea_preferences` (inside `brand`) holds persistent plain-text rules applied to every future idea generation, e.g. `"- always use statement hooks\n- never mention competitors"`. + --- # Phase 2 — Ideas @@ -480,9 +500,9 @@ Only pending/processing jobs can be updated. | Instagram | Yes | Yes | No | | YouTube | Yes | Yes | Yes | -### Pricing +### Credit usage -Per video/post: $0.015. Per comment (when enabled): $0.002. +Content monitoring uses credits per post and comment scraped. Check your balance with `GET /v1/credit_balance?agent_id={id}` before starting large jobs. ### Reading scraped data @@ -563,6 +583,8 @@ Types: `text`, `image`, `video`, `audio`. ``` GET /v1/vidsheet/{id}/columns?agent_id={id} POST /v1/vidsheet/{id}/columns?agent_id={id} Body: { spreadsheet_column: { title, type, position? } } +PATCH /v1/vidsheet/{id}/columns/{col_id}?agent_id={id} Body: { spreadsheet_column: { title?, type?, position? } } +DELETE /v1/vidsheet/{id}/columns/{col_id}?agent_id={id} POST /v1/vidsheet/{id}/columns/{col_id}/duplicate?agent_id={id} PATCH /v1/vidsheet/{id}/columns/update_positions?agent_id={id} PUT /v1/vidsheet/{id}/columns/mass_update?agent_id={id} diff --git a/public/openapi.yaml b/public/openapi.yaml index 41126a1..4c804cd 100644 --- a/public/openapi.yaml +++ b/public/openapi.yaml @@ -974,6 +974,49 @@ paths: schema: $ref: '#/components/schemas/Column' + /vidsheet/{sheet_id}/columns/{column_id}: + patch: + operationId: updateColumn + x-phase: edit + summary: Update a column + description: Update a column's title, type, or position. Only ingredient-role columns can be modified. + tags: [Columns] + parameters: + - $ref: '#/components/parameters/AgentId' + - $ref: '#/components/parameters/SheetId' + - name: column_id + in: path + required: true + schema: + type: string + requestBody: + content: + application/json: + schema: + type: object + properties: + spreadsheet_column: + type: object + properties: + title: + type: string + type: + type: string + enum: [text, image, video, audio] + position: + type: integer + responses: + '200': + description: Column updated + content: + application/json: + schema: + $ref: '#/components/schemas/Column' + '403': + description: Forbidden — cannot modify system-role columns + '422': + description: Validation error + /vidsheet/{sheet_id}/columns/{column_id}/duplicate: post: operationId: duplicateColumn @@ -3410,6 +3453,35 @@ paths: application/json: schema: { $ref: '#/components/schemas/Error' } + /agents/{agent_id}/core/inspiration: + post: + operationId: addAgentInspiration + x-phase: setup + summary: Add one inspiration source to the agent + description: Adds a single inspiration source URL to the agent's existing inspiration list. Does not replace the full list. Use PATCH /agents/{agent_id}/core with the full `inspiration` array to replace. + tags: [Agent Core] + parameters: + - { name: agent_id, in: path, required: true, schema: { type: string } } + requestBody: + required: true + content: + application/json: + schema: + type: object + required: [url] + properties: + url: + type: string + description: Full URL of the inspiration source + platform: + type: string + description: Platform hint (e.g. tiktok, instagram, youtube) + responses: + '200': + description: Inspiration source added + '422': + description: Validation error + # ── Agent Voice ─────────────────────────────────────────── /agents/{agent_id}/proof-of-genesis/backups: get: diff --git a/src/content/docs/reference/columns.mdx b/src/content/docs/reference/columns.mdx index 61ab981..e0c5875 100644 --- a/src/content/docs/reference/columns.mdx +++ b/src/content/docs/reference/columns.mdx @@ -123,6 +123,46 @@ curl -X POST "https://api.gen.pro/v1/vidsheet/101/columns?agent_id=42" \ --- +## Update column + +Update a column's title, type, or position. Only `ingredient`-role columns can be updated. + +``` +PATCH /v1/vidsheet/{id}/columns/{col_id}?agent_id={agent_id} +``` + +### Request body + +| Field | Type | Required | Description | +|-------|------|----------|-------------| +| `spreadsheet_column.title` | string | No | New column name. | +| `spreadsheet_column.type` | string | No | New content type: `text`, `image`, `video`, or `audio`. | +| `spreadsheet_column.position` | integer | No | New zero-indexed position. | + +Send only the fields you want to change. + +### Response (200) + +Returns the updated column. + +### Errors + +| Status | Code | Description | +|--------|------|-------------| +| `403` | `forbidden` | Column is a system role and cannot be modified. | +| `422` | `validation_error` | Invalid type or missing required field. | + +### Example + +```bash +curl -X PATCH "https://api.gen.pro/v1/vidsheet/101/columns/200?agent_id=42" \ + -H "X-API-Key: your-api-key" \ + -H "Content-Type: application/json" \ + -d '{"spreadsheet_column": {"title": "Voiceover Script", "position": 0}}' +``` + +--- + ## Duplicate column Creates a copy of a column and all its cell values. diff --git a/src/content/docs/reference/content-monitoring.mdx b/src/content/docs/reference/content-monitoring.mdx index 06d75e0..430b589 100644 --- a/src/content/docs/reference/content-monitoring.mdx +++ b/src/content/docs/reference/content-monitoring.mdx @@ -30,14 +30,9 @@ Not all platforms support all search types: | Instagram | Yes | Yes | No | | YouTube | Yes | Yes | Yes | -## Pricing - -| Item | Cost | -|------|------| -| Per video/post scraped | $0.015 | -| Per comment (when comment monitoring is enabled) | $0.002 | - -Costs are converted to credits using the standard credit formula. + --- diff --git a/src/content/docs/reference/content-resources.mdx b/src/content/docs/reference/content-resources.mdx index d6cf794..5e7ee56 100644 --- a/src/content/docs/reference/content-resources.mdx +++ b/src/content/docs/reference/content-resources.mdx @@ -5,7 +5,7 @@ description: Upload, organize, and manage files — images, videos, audio, and f import { Aside } from '@astrojs/starlight/components'; -Content resources represent files in your agent's workspace — generated outputs (images, videos, audio) and manually uploaded assets. The asset library provides a unified view with folder organization, and direct upload lets you send files straight to S3 for maximum performance. +Content resources represent files in your agent's workspace — generated outputs (images, videos, audio) and manually uploaded assets. The asset library provides a unified view with folder organization, and direct upload lets you send files straight from your client for maximum performance.