Skip to content

add 30 presets from issue #314 - D3.js Chord Diagram: Animated Ribbons (Batch 4/8)#339

Open
github-actions[bot] wants to merge 3 commits intomainfrom
presets/batch-314-1764359503132
Open

add 30 presets from issue #314 - D3.js Chord Diagram: Animated Ribbons (Batch 4/8)#339
github-actions[bot] wants to merge 3 commits intomainfrom
presets/batch-314-1764359503132

Conversation

@github-actions
Copy link
Contributor

@github-actions github-actions bot commented Nov 28, 2025

This PR was automatically generated from issue #314

✅ Generation Complete

Final Status: 2/30 presets successfully generated

⚠️ 28 preset(s) failed - see details below

🔴 Validation Failed

⚠️ 1 preset(s) failed validation after 3 attempts but were saved for review:

  • Chord Diagram Typography - ⚠️ Requires manual fixes
    • Error: TypeScript type errors:
      components/editor/presets/registry/generated/temp-chord-diagram-typography-1764359731729.ts(161,7): error TS18048: 'minRibbonOpacity' is possibly 'undefined'.
      components/editor/presets/registry/generated/temp-chord-diagram-typography-1764359731729.ts(161,38): error TS18048: 'maxRibbonOpacity' is possibly 'undefined'.
      components/editor/presets/registry/generated/temp-chord-diagram-typography-1764359731729.ts(161,57): error TS18048: 'minRibbonOpacity' is possibly 'undefined'.
      components/editor/presets/registry/generated/temp-chord-diagram-typography-1764359731729.ts(231,18): error TS18048: 'containerSize' is possibly 'undefined'.

❗ These presets have validation errors and should be reviewed and fixed before merging.

🔄 Retry Information

1 preset(s) required retries:

  • Chord Diagram Typography - Succeeded after 1 retry

📦 Generated Presets (2)

1. Typokinetic Chord Diagram

ID: typokinetic-chord-diagram
Description: D3.js-inspired chord diagram that visualizes text as interconnected arcs around a circular perimeter with ribbon-like connections between temporally adjacent words
File: components/editor/presets/registry/generated/typokinetic-chord-diagram.ts
Status: ✅ Validated

Original Prompt: Create a typokinetic preset that visualizes text as a D3.js-inspired chord diagram where words form interconnected arcs around a circular perimeter. Each word from the caption data appears as an arc s...


2. Chord Diagram Typography

ID: chord-diagram-typography
Description: Minimalist chord diagram visualization with words arranged as arc labels around a thin circular outline, connected by delicate hairline ribbons with varying opacity based on connection strength. Features synchronized fade-in animations for words and ribbons, creating a sophisticated data visualization aesthetic with monochromatic palette suitable for professional and technical content.
File: components/editor/presets/registry/generated/chord-diagram-typography.ts
Status: 🔴 Validation Failed - Requires Manual Fixes

❌ Validation Errors:

  • TypeScript type errors:
    components/editor/presets/registry/generated/temp-chord-diagram-typography-1764359731729.ts(161,7): error TS18048: 'minRibbonOpacity' is possibly 'undefined'.
    components/editor/presets/registry/generated/temp-chord-diagram-typography-1764359731729.ts(161,38): error TS18048: 'maxRibbonOpacity' is possibly 'undefined'.
    components/editor/presets/registry/generated/temp-chord-diagram-typography-1764359731729.ts(161,57): error TS18048: 'minRibbonOpacity' is possibly 'undefined'.
    components/editor/presets/registry/generated/temp-chord-diagram-typography-1764359731729.ts(231,18): error TS18048: 'containerSize' is possibly 'undefined'.

Original Prompt: Design a minimalist chord diagram typography preset focusing on elegant simplicity - words arranged as subtle arc labels around a thin circular outline, with delicate hairline ribbons connecting relat...


❌ Failed Presets (28)

  1. Preset 2 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Design a flowing chord diagram typography preset where caption words are arranged as nodes around an invisible circle, with animated ribbon paths connecting words that share the same sentence context. The visual metaphor is of ideas flowing between concepts - ribbons should appear to 'pour' from one word to another using a progressive opacity reveal along the ribbon's length. Each word pulses subtly when its connected ribbon activates, creating a cause-and-effect visual rhythm. Words use the impact metadata from caption data to determine their visual weight - high-impact words appear larger and with stronger glow effects. The ribbons use gradient opacity (fully visible at source, fading toward destination) achieved through CSS linear-gradient masks. This creates a sense of information flowing outward from key concepts, perfect for educational or explanatory video content.

Technical Specifications:
Structure: BaseLayout container ('relative w-full h-full overflow-hidden') with nested BaseLayout for each word node positioned in circular pattern using absolute positioning and CSS custom properties for angle calculations. TextAtom for words with dynamic fontSize based on caption word.metadata.impact (scale 1.5rem to 3rem). Use effects array for entry: opacity 0->1, scale 0.9->1.0 with spring easing. Pulse effect on connection activation: scale 1.0->1.05->1.0 over 300ms. Ribbon elements as absolutely positioned divs with height: 2px, transform-origin: left center, rotated to point toward destination word. Use mask-image: linear-gradient(to right, black, transparent) for flowing opacity effect. Glow via textShadow effect: '0 0 20px currentColor' with opacity animation. containerProps.style for dynamic positioning based on word index. Word timing from caption data with sentence-level context for grouping connections. Relative timing throughout - ribbons appear at 50% of word duration. Use will-change: transform, opacity on animated elements."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
RetryError [AI_RetryError]: Failed after 2 attempts with non-retryable error: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
at _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:148:11)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12)
at async step4_codingAndValidation (/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts:638:20)
at async generatePreset (/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts:843:7) {
cause: undefined,
reason: 'errorNotRetryable',
errors: [
APICallError [AI_APICallError]: This request would exceed the rate limit for your organization (da777878-4d25-4f8d-bdf4-13c228122e17) of 2,000,000 input tokens per minute. For details, refer to: https://docs.claude.com/en/api/rate-limits. You can see the response headers for current usage. Please reduce the prompt length or the maximum tokens requested, or try again later. You may also contact sales at https://www.anthropic.com/contact-sales to discuss your options for a rate limit increase.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: [Object],
statusCode: 429,
responseHeaders: [Object],
responseBody: '{"type":"error","error":{"type":"rate_limit_error","message":"This request would exceed the rate limit for your organization (da777878-4d25-4f8d-bdf4-13c228122e17) of 2,000,000 input tokens per minute. For details, refer to: https://docs.claude.com/en/api/rate-limits. You can see the response headers for current usage. Please reduce the prompt length or the maximum tokens requested, or try again later. You may also contact sales at https://www.anthropic.com/contact-sales to discuss your options for a rate limit increase."},"request_id":"req_011CVasoDkrVTst8kCFyYJrC"}',
isRetryable: true,
data: [Object],
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
},
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: [Object],
statusCode: 400,
responseHeaders: [Object],
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVasqJWuUrxp3SxiSWxNN"}',
isRetryable: false,
data: [Object],
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}
],
lastError: APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [Array],
tools: [Array],
tool_choice: [Object]
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c6e958b8f501e-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:57:01 GMT',
'request-id': 'req_011CVasqJWuUrxp3SxiSWxNN',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '42',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVasqJWuUrxp3SxiSWxNN"}',
isRetryable: false,
data: { type: 'error', error: [Object] },
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_RetryError)]: true
}

  • Failed after 1 retry
  1. Preset 3 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Build a kinetic typography chord visualization where words explode outward from center to form arc positions around a circle, then ribbon connections draw themselves between words using animated stroke-dashoffset simulation via CSS. The animation unfolds in three distinct phases: Phase 1 - words burst from center with staggered timing and bounce easing, settling into their arc positions. Phase 2 - ribbon paths fade in as connecting lines between semantically related words (words from same sentence). Phase 3 - the entire diagram gently rotates as a unit while individual words subtly scale based on audio waveform data if available. This creates a dynamic, living diagram that feels like watching a mind-map construct itself in real-time.

Technical Specifications:
Structure: Outer BaseLayout ('relative w-full h-full bg-gradient-to-br from-gray-900 to-black') containing rotating inner BaseLayout for the diagram group. Use effects on inner container for continuous rotation (rotate 0->360 over full duration with linear easing). Each word as TextAtom within absolutely positioned BaseLayout, initial position at center (top-50% left-50%), animating to final arc position using translateX/translateY effects with spring easing (overshoot 1.2). Phase timing: words animate 0-30%, ribbons 25-50%, rotation 40-100% of total duration. Ribbon connections use BaseLayout divs with scaleX effect 0->1 (transform-origin: left) to simulate drawing effect. Font 'Space Grotesk:500'. If audio available, use waveform effect on words with property: 'scale', audioProperty: 'intensity', sensitivity: 0.3 for subtle reactive scaling. Word positioning calculated from caption data word count. Use fitDurationTo: 'scene' for proper timing inheritance. containerProps.className: 'absolute' with calculated top/left percentages."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
RetryError [AI_RetryError]: Failed after 3 attempts. Last error: This request would exceed the rate limit for your organization (da777878-4d25-4f8d-bdf4-13c228122e17) of 2,000,000 input tokens per minute. For details, refer to: https://docs.claude.com/en/api/rate-limits. You can see the response headers for current usage. Please reduce the prompt length or the maximum tokens requested, or try again later. You may also contact sales at https://www.anthropic.com/contact-sales to discuss your options for a rate limit increase.
at _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:111:13)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12)
at async step4_codingAndValidation (/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts:638:20)
at async generatePreset (/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts:843:7) {
cause: undefined,
reason: 'maxRetriesExceeded',
errors: [
APICallError [AI_APICallError]: This request would exceed the rate limit for your organization (da777878-4d25-4f8d-bdf4-13c228122e17) of 2,000,000 input tokens per minute. For details, refer to: https://docs.claude.com/en/api/rate-limits. You can see the response headers for current usage. Please reduce the prompt length or the maximum tokens requested, or try again later. You may also contact sales at https://www.anthropic.com/contact-sales to discuss your options for a rate limit increase.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: [Object],
statusCode: 429,
responseHeaders: [Object],
responseBody: '{"type":"error","error":{"type":"rate_limit_error","message":"This request would exceed the rate limit for your organization (da777878-4d25-4f8d-bdf4-13c228122e17) of 2,000,000 input tokens per minute. For details, refer to: https://docs.claude.com/en/api/rate-limits. You can see the response headers for current usage. Please reduce the prompt length or the maximum tokens requested, or try again later. You may also contact sales at https://www.anthropic.com/contact-sales to discuss your options for a rate limit increase."},"request_id":"req_011CVaseW8Md8iaKNSojhb9L"}',
isRetryable: true,
data: [Object],
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
},
APICallError [AI_APICallError]: This request would exceed the rate limit for your organization (da777878-4d25-4f8d-bdf4-13c228122e17) of 2,000,000 input tokens per minute. For details, refer to: https://docs.claude.com/en/api/rate-limits. You can see the response headers for current usage. Please reduce the prompt length or the maximum tokens requested, or try again later. You may also contact sales at https://www.anthropic.com/contact-sales to discuss your options for a rate limit increase.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: [Object],
statusCode: 429,
responseHeaders: [Object],
responseBody: '{"type":"error","error":{"type":"rate_limit_error","message":"This request would exceed the rate limit for your organization (da777878-4d25-4f8d-bdf4-13c228122e17) of 2,000,000 input tokens per minute. For details, refer to: https://docs.claude.com/en/api/rate-limits. You can see the response headers for current usage. Please reduce the prompt length or the maximum tokens requested, or try again later. You may also contact sales at https://www.anthropic.com/contact-sales to discuss your options for a rate limit increase."},"request_id":"req_011CVasgSUtNiwNFccch9JXV"}',
isRetryable: true,
data: [Object],
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
},
APICallError [AI_APICallError]: This request would exceed the rate limit for your organization (da777878-4d25-4f8d-bdf4-13c228122e17) of 2,000,000 input tokens per minute. For details, refer to: https://docs.claude.com/en/api/rate-limits. You can see the response headers for current usage. Please reduce the prompt length or the maximum tokens requested, or try again later. You may also contact sales at https://www.anthropic.com/contact-sales to discuss your options for a rate limit increase.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: [Object],
statusCode: 429,
responseHeaders: [Object],
responseBody: '{"type":"error","error":{"type":"rate_limit_error","message":"This request would exceed the rate limit for your organization (da777878-4d25-4f8d-bdf4-13c228122e17) of 2,000,000 input tokens per minute. For details, refer to: https://docs.claude.com/en/api/rate-limits. You can see the response headers for current usage. Please reduce the prompt length or the maximum tokens requested, or try again later. You may also contact sales at https://www.anthropic.com/contact-sales to discuss your options for a rate limit increase."},"request_id":"req_011CVasgk7Y4A6MgNc5WEcuv"}',
isRetryable: true,
data: [Object],
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}
],
lastError: APICallError [AI_APICallError]: This request would exceed the rate limit for your organization (da777878-4d25-4f8d-bdf4-13c228122e17) of 2,000,000 input tokens per minute. For details, refer to: https://docs.claude.com/en/api/rate-limits. You can see the response headers for current usage. Please reduce the prompt length or the maximum tokens requested, or try again later. You may also contact sales at https://www.anthropic.com/contact-sales to discuss your options for a rate limit increase.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [Array],
tools: [Array],
tool_choice: [Object]
},
statusCode: 429,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'anthropic-ratelimit-input-tokens-limit': '2000000',
'anthropic-ratelimit-input-tokens-remaining': '0',
'anthropic-ratelimit-input-tokens-reset': '2025-11-28T19:56:06Z',
'anthropic-ratelimit-output-tokens-limit': '400000',
'anthropic-ratelimit-output-tokens-remaining': '400000',
'anthropic-ratelimit-output-tokens-reset': '2025-11-28T19:55:05Z',
'anthropic-ratelimit-requests-limit': '4000',
'anthropic-ratelimit-requests-remaining': '4000',
'anthropic-ratelimit-requests-reset': '2025-11-28T19:55:05Z',
'anthropic-ratelimit-tokens-limit': '2400000',
'anthropic-ratelimit-tokens-remaining': '400000',
'anthropic-ratelimit-tokens-reset': '2025-11-28T19:55:05Z',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c6bbfeab83493-SJC',
connection: 'keep-alive',
'content-length': '573',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:55:05 GMT',
'request-id': 'req_011CVasgk7Y4A6MgNc5WEcuv',
'retry-after': '55',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '49',
'x-robots-tag': 'none',
'x-should-retry': 'true'
},
responseBody: '{"type":"error","error":{"type":"rate_limit_error","message":"This request would exceed the rate limit for your organization (da777878-4d25-4f8d-bdf4-13c228122e17) of 2,000,000 input tokens per minute. For details, refer to: https://docs.claude.com/en/api/rate-limits. You can see the response headers for current usage. Please reduce the prompt length or the maximum tokens requested, or try again later. You may also contact sales at https://www.anthropic.com/contact-sales to discuss your options for a rate limit increase."},"request_id":"req_011CVasgk7Y4A6MgNc5WEcuv"}',
isRetryable: true,
data: { type: 'error', error: [Object] },
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_RetryError)]: true
}

  • Failed after 1 retry
  1. Preset 4 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Create an abstract chord diagram preset where typography forms the relationship mapping itself - words literally become the ribbons connecting conceptual nodes. Position invisible anchor points around a circle, and animate each word along a curved path between two anchors, with the word stretching and curving using CSS transforms to follow the ribbon trajectory. The words use opacity blending where they overlap (screen blend mode), creating luminous intersection points. Words appear in sequence based on caption timing, each tracing its path from source to destination node with a fluid, ribbon-like motion. High-impact words from metadata travel longer distances (cross-diagram connections) while low-impact words make shorter local connections.

Technical Specifications:
Structure: BaseLayout container ('relative w-full h-full') with absolute-positioned TextAtom elements for each word. Words animate along curved paths using keyframed translateX, translateY, and rotate effects synchronized to create arc motion. Calculate path endpoints based on word.metadata.impact - high impact words span larger arc distances. Entry effect: opacity 0->1 over first 15%, path animation over full word duration. Use effects array with multiple keyframes: [{key: 0, value: {translateX: startX, translateY: startY, rotate: startAngle}}, {key: 0.5, value: {translateX: midX, translateY: midY, rotate: midAngle}}, {key: 1, value: {translateX: endX, translateY: endY, rotate: endAngle}}] with ease-in-out. Apply mix-blend-mode: screen via containerProps.style for overlap luminosity. Font 'Outfit:400' with letterSpacing effect that expands during motion (0->0.05em->0). TextAtom color based on word.metadata.sentiment if available. Relative timing from caption word data. Use transform: translateZ(0) for GPU layer promotion."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
RetryError [AI_RetryError]: Failed after 3 attempts. Last error: This request would exceed the rate limit for your organization (da777878-4d25-4f8d-bdf4-13c228122e17) of 2,000,000 input tokens per minute. For details, refer to: https://docs.claude.com/en/api/rate-limits. You can see the response headers for current usage. Please reduce the prompt length or the maximum tokens requested, or try again later. You may also contact sales at https://www.anthropic.com/contact-sales to discuss your options for a rate limit increase.
at _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:111:13)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12)
at async step2_architect (/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts:317:18)
at async step3_techLeadReview (/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts:477:14)
at async generatePreset (/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts:839:12) {
cause: undefined,
reason: 'maxRetriesExceeded',
errors: [
APICallError [AI_APICallError]: This request would exceed the rate limit for your organization (da777878-4d25-4f8d-bdf4-13c228122e17) of 2,000,000 input tokens per minute. For details, refer to: https://docs.claude.com/en/api/rate-limits. You can see the response headers for current usage. Please reduce the prompt length or the maximum tokens requested, or try again later. You may also contact sales at https://www.anthropic.com/contact-sales to discuss your options for a rate limit increase.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: [Object],
statusCode: 429,
responseHeaders: [Object],
responseBody: '{"type":"error","error":{"type":"rate_limit_error","message":"This request would exceed the rate limit for your organization (da777878-4d25-4f8d-bdf4-13c228122e17) of 2,000,000 input tokens per minute. For details, refer to: https://docs.claude.com/en/api/rate-limits. You can see the response headers for current usage. Please reduce the prompt length or the maximum tokens requested, or try again later. You may also contact sales at https://www.anthropic.com/contact-sales to discuss your options for a rate limit increase."},"request_id":"req_011CVascBpDz3ezXFT5ekqhC"}',
isRetryable: true,
data: [Object],
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
},
APICallError [AI_APICallError]: This request would exceed the rate limit for your organization (da777878-4d25-4f8d-bdf4-13c228122e17) of 2,000,000 input tokens per minute. For details, refer to: https://docs.claude.com/en/api/rate-limits. You can see the response headers for current usage. Please reduce the prompt length or the maximum tokens requested, or try again later. You may also contact sales at https://www.anthropic.com/contact-sales to discuss your options for a rate limit increase.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: [Object],
statusCode: 429,
responseHeaders: [Object],
responseBody: '{"type":"error","error":{"type":"rate_limit_error","message":"This request would exceed the rate limit for your organization (da777878-4d25-4f8d-bdf4-13c228122e17) of 2,000,000 input tokens per minute. For details, refer to: https://docs.claude.com/en/api/rate-limits. You can see the response headers for current usage. Please reduce the prompt length or the maximum tokens requested, or try again later. You may also contact sales at https://www.anthropic.com/contact-sales to discuss your options for a rate limit increase."},"request_id":"req_011CVasgR7nPJxyZsyoohosg"}',
isRetryable: true,
data: [Object],
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
},
APICallError [AI_APICallError]: This request would exceed the rate limit for your organization (da777878-4d25-4f8d-bdf4-13c228122e17) of 2,000,000 input tokens per minute. For details, refer to: https://docs.claude.com/en/api/rate-limits. You can see the response headers for current usage. Please reduce the prompt length or the maximum tokens requested, or try again later. You may also contact sales at https://www.anthropic.com/contact-sales to discuss your options for a rate limit increase.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: [Object],
statusCode: 429,
responseHeaders: [Object],
responseBody: '{"type":"error","error":{"type":"rate_limit_error","message":"This request would exceed the rate limit for your organization (da777878-4d25-4f8d-bdf4-13c228122e17) of 2,000,000 input tokens per minute. For details, refer to: https://docs.claude.com/en/api/rate-limits. You can see the response headers for current usage. Please reduce the prompt length or the maximum tokens requested, or try again later. You may also contact sales at https://www.anthropic.com/contact-sales to discuss your options for a rate limit increase."},"request_id":"req_011CVasgizout9fzxtFVZqd1"}',
isRetryable: true,
data: [Object],
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}
],
lastError: APICallError [AI_APICallError]: This request would exceed the rate limit for your organization (da777878-4d25-4f8d-bdf4-13c228122e17) of 2,000,000 input tokens per minute. For details, refer to: https://docs.claude.com/en/api/rate-limits. You can see the response headers for current usage. Please reduce the prompt length or the maximum tokens requested, or try again later. You may also contact sales at https://www.anthropic.com/contact-sales to discuss your options for a rate limit increase.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [Array],
tools: [Array],
tool_choice: [Object]
},
statusCode: 429,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'anthropic-ratelimit-input-tokens-limit': '2000000',
'anthropic-ratelimit-input-tokens-remaining': '0',
'anthropic-ratelimit-input-tokens-reset': '2025-11-28T19:56:06Z',
'anthropic-ratelimit-output-tokens-limit': '400000',
'anthropic-ratelimit-output-tokens-remaining': '400000',
'anthropic-ratelimit-output-tokens-reset': '2025-11-28T19:55:05Z',
'anthropic-ratelimit-requests-limit': '4000',
'anthropic-ratelimit-requests-remaining': '4000',
'anthropic-ratelimit-requests-reset': '2025-11-28T19:55:05Z',
'anthropic-ratelimit-tokens-limit': '2400000',
'anthropic-ratelimit-tokens-remaining': '400000',
'anthropic-ratelimit-tokens-reset': '2025-11-28T19:55:05Z',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c6bbe4a1167fe-SJC',
connection: 'keep-alive',
'content-length': '573',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:55:05 GMT',
'request-id': 'req_011CVasgizout9fzxtFVZqd1',
'retry-after': '56',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '51',
'x-robots-tag': 'none',
'x-should-retry': 'true'
},
responseBody: '{"type":"error","error":{"type":"rate_limit_error","message":"This request would exceed the rate limit for your organization (da777878-4d25-4f8d-bdf4-13c228122e17) of 2,000,000 input tokens per minute. For details, refer to: https://docs.claude.com/en/api/rate-limits. You can see the response headers for current usage. Please reduce the prompt length or the maximum tokens requested, or try again later. You may also contact sales at https://www.anthropic.com/contact-sales to discuss your options for a rate limit increase."},"request_id":"req_011CVasgizout9fzxtFVZqd1"}',
isRetryable: true,
data: { type: 'error', error: [Object] },
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_RetryError)]: true
}

  • Failed after 1 retry
  1. Preset 6 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Build an explosive chord diagram preset where words and their connections burst onto screen in a particle-like explosion, then settle into their final chord diagram positions. Initial state has all elements compressed at center with scale 0, then they explode outward with physics-like motion (fast initial velocity, deceleration to rest). Ribbons stretch and snap into place like elastic bands connecting the words. After settling, the diagram breathes - subtle scale oscillation on the entire composition synchronized to audio beats if available. Words use bold, impactful typography with drop shadows for depth. The ribbons have gradient fills from source word color to destination word color, creating a vibrant, energetic visualization.

Technical Specifications:
Structure: BaseLayout container with nested composition group for unified breathing animation. Apply waveform effect to container: property 'scale', audioProperty 'bass', sensitivity 0.1, range 0.98-1.02 for subtle pulse. Words as TextAtom with bold font 'Montserrat:800', effects: scale 0->1.2->1.0 with spring easing (tension: 180, friction: 12 equivalent via custom bezier), translateX and translateY from center (0,0) to final arc position. Explosion timing: stagger 50ms between words, total explosion phase 0-40% of duration. Ribbons as colored BaseLayout divs with scaleX 0->1.2->1.0 (elastic snap effect) starting at 30% of duration. Gradient ribbons via background: linear-gradient() in containerProps.style. Drop shadow on words via textShadow in effects. Color derived from word index for variety, or word.metadata.sentiment. Calculate final positions from caption word count for even distribution. Use relative timing - word effects relative to word appearance time. GPU acceleration via transform-style: preserve-3d on container."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c6f553cb4ced7-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:57:32 GMT',
'request-id': 'req_011CVassZcZs6bKu7dgXg7rK',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '42',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVassZcZs6bKu7dgXg7rK"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 7 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Create an organic, flowing chord diagram where words and ribbons animate like living organisms. Words drift into their arc positions with gentle, wave-like motion (sinusoidal easing), while ribbons flow between words like liquid, using opacity that pulses subtly. The composition feels like watching cells communicate or neural networks fire. Words have subtle rotation oscillation when at rest, and ribbons have continuous flowing animation (animated gradient or moving opacity pattern). Use soft, organic colors - muted greens, blues, purples with low saturation. The overall effect should be meditative and hypnotic, suitable for ambient or artistic video content.

Technical Specifications:
Structure: BaseLayout ('relative w-full h-full bg-slate-800') with overflow-hidden. Words as TextAtom with organic entry: translateY with sinusoidal motion simulated via keyframes [{key:0, value:-100}, {key:0.3, value:10}, {key:0.5, value:-5}, {key:0.7, value:2}, {key:1, value:0}] and opacity 0->1. At-rest oscillation via continuous rotate effect: -2deg to 2deg over 3 seconds, looping (use internal effect preset if available for reuse). Font 'Cormorant Garamond:400:italic' for organic feel. Ribbons as BaseLayout with animated background-position for flowing gradient effect - background: linear-gradient(90deg, transparent, color, transparent), background-size: 200% 100%, animate background-position via effects. Ribbon opacity pulses 0.2->0.4->0.2 continuously. Color palette via CSS custom properties: --organic-1: hsl(150, 30%, 50%), etc. Caption timing for word entry, effects continue after entry completes. Use fitDurationTo for proper timing. Low-intensity animations for accessibility. Prefer transform and opacity for performance."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c6f536b8f67fe-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:57:32 GMT',
'request-id': 'req_011CVassYLfpHo1zw8DjkAvW',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '19',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVassYLfpHo1zw8DjkAvW"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 8 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Design a dramatic reveal chord diagram where the visualization builds tension before revealing connections. Words appear first as blurred, indistinct shapes around the circle, then sharpen into focus one by one based on caption timing. Once all words are visible, ribbons dramatically sweep in from outside the frame, connecting to their anchor words with impact (brief scale pulse on connection). The sequence creates a narrative arc: mystery (blur), revelation (focus), connection (ribbons). Use cinematic timing with longer holds between phases. Dark atmospheric background with words in high contrast, ribbons in accent color with motion blur effect during sweep.

Technical Specifications:
Structure: BaseLayout ('relative w-full h-full bg-black overflow-hidden') for cinematic framing. Words as TextAtom with three-phase effects: Phase 1 (0-30%): opacity 0.3, blur 8px; Phase 2 (30-60%): blur 8px->0, opacity 0.3->1.0; Phase 3 (60-100%): static visible. Stagger word reveals within phase 2 using word-level timing from captions. Font 'Bebas Neue:400' for dramatic impact. Ribbons enter from outside viewport: initial translateX: 150vw (or equivalent via calculated pixels), animate to final position with ease-out timing during phase 60-85%. On ribbon connection, target word pulses: scale 1->1.15->1 over 200ms using synchronized effects. Motion blur on ribbons via filter: blur(4px) during motion, blur(0) at rest. Effects array structure: opacity, blur (filter), translateX with coordinated keyframes. Use bright accent color (--accent: #ff6b6b) for ribbons against dark background. Relative timing critical - each word's phases relative to its appearance time. Consider reduced motion: skip blur phase, fade in directly."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c6f548ceb1354-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:57:32 GMT',
'request-id': 'req_011CVassZ83dfSdBRL7cuNXq',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '23',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVassZ83dfSdBRL7cuNXq"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 9 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Build a data-driven chord diagram preset that emphasizes the quantitative relationships between words. Words are sized proportionally to their frequency or impact score from caption metadata, positioned as arcs with thickness matching word importance. Ribbons between words have varying widths representing connection strength (words in same sentence have thicker connections). Numbers or labels could appear on ribbons showing relationship values. The animation is precise and technical: words slide into position with linear easing, ribbons draw with consistent speed. Color coding by category or sentiment metadata. This creates an analytical, dashboard-style visualization suitable for data storytelling.

Technical Specifications:
Structure: BaseLayout ('relative w-full h-full bg-white') for clean dashboard aesthetic - or dark theme variant. Words as TextAtom with dynamic fontSize calculated from word.metadata.impact or frequency count (normalize to 1rem-2.5rem range). Font 'Roboto Mono:500' for data aesthetic. Position as arcs: BaseLayout wrappers with calculated width based on word importance, positioned absolutely with rotation. Effects: translateX from -100% to 0 with linear easing, opacity 0->1, duration based on word length for consistent speed feel. Ribbons as BaseLayout with variable height (2px-8px) based on connection strength, scaleX 0->1 with linear easing to simulate drawing. Optional: small TextAtom labels on ribbons showing connection value. Color coding via containerProps.style background-color based on word.metadata.sentiment or category. Use CSS custom properties for theme colors. Grid overlay BaseLayout for dashboard context (optional). Caption data provides all metrics. Precise timing: 100ms per word, ribbons follow 200ms after last word. Monospace fonts and grid alignment reinforce data visualization aesthetic."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c6f530f0c501e-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:57:32 GMT',
'request-id': 'req_011CVassY6nBDtwCPv9DinK1',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '20',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVassY6nBDtwCPv9DinK1"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 10 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Create an immersive 3D-perspective chord diagram where the circular arrangement appears to exist in 3D space, tilted toward the viewer. Words around the perimeter have perspective-correct sizing (larger at bottom/front, smaller at top/back), and ribbons appear to arc through 3D space with depth-based opacity (more transparent when 'further away'). As words appear based on caption timing, they seem to materialize from the depth of the screen. The entire diagram slowly rotates in 3D space throughout the video, creating an orbiting effect. This creates a spatial, immersive feel that adds production value to the typography.

Technical Specifications:
Structure: Outer BaseLayout with perspective: 1000px via containerProps.style. Inner BaseLayout with transform-style: preserve-3d, rotateX: -20deg for initial tilt. Apply continuous rotateY effect 0->360 over full duration for orbit. Words as TextAtom in absolutely positioned containers, each with transform: rotateY(Xdeg) translateZ(radius) rotateY(-Xdeg) for 3D circular positioning. Scale words based on their Z-position (calculate from rotateY value) for perspective sizing - words at 'front' scale 1.2, 'back' scale 0.8. Opacity also depth-based: front 1.0, back 0.6. Entry effects: scale 0.5->1.0, opacity 0->1 with ease-out from word timing. Ribbons as flat elements with varying opacity based on average Z of connected words. Font 'Archivo:600'. Use will-change: transform on rotating container. Calculate word positions using trigonometry from caption word count. Relative timing for word appearances. backface-visibility: hidden on words to prevent flicker during rotation. This preset may need helper function for 3D position calculations - consider sub-preset for complex math."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c6f5438403493-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:57:32 GMT',
'request-id': 'req_011CVassYteuFp8zxjKLXvAi',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '32',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVassYteuFp8zxjKLXvAi"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 11 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Create a typokinetic bar chart race preset where data labels (TextAtoms) race horizontally across the screen like competing entities. The visualization shows ranking text labels with dynamic bar widths represented by colored rectangles (ShapeAtoms) that smoothly interpolate positions as rankings change. Think of this as a sports leaderboard animation where names swap positions with satisfying easing. Structure: A BaseLayout container with 'flex flex-col gap-2 p-8' houses rows, each row being a nested BaseLayout with 'flex items-center gap-4 relative h-12'. Each row contains a rank number TextAtom, a colored bar ShapeAtom, and a label TextAtom. Use generic keyframe effects for translateY animations as items swap positions with spring easing over 800ms. The bar widths animate via scale transforms. Caption data drives the label text, with word timing controlling when each competitor 'enters' the race. Apply subtle glow effects to the leading item using textShadow keyframes.

Technical Specifications:
Structure: Parent BaseLayout (flex flex-col gap-2 p-8 bg-slate-900 w-full h-full), child rows as BaseLayout (flex items-center gap-4 relative h-12 w-full). Atoms: TextAtom for rank numbers (font: 'Inter:700', className: 'text-2xl text-white/60'), ShapeAtom rectangles for bars (rounded-lg), TextAtom for labels (font: 'Inter:600', className: 'text-xl text-white'). Effects: Generic keyframe effects on translateY for position swaps with spring easing, scaleX effects on bars for value interpolation. Use caption metadata to identify 'impact' words as category leaders. Timing: 800ms per ranking update, stagger delays of 50ms between rows. Apply textShadow glow effect to leading item (0 0 20px currentColor). Performance: Use transform-based animations only, apply will-change: transform to moving elements."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c700daa92501e-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:58:01 GMT',
'request-id': 'req_011CVasujn4BSmdcmsfVRAm4',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '34',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVasujn4BSmdcmsfVRAm4"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 12 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Design an audio-reactive bar chart race where horizontal bars pulse and grow in sync with music beats. This typokinetic preset treats each data category as a 'track' in a mixing console visualization. Labels (TextAtoms) sit at the left edge while bars extend rightward, their lengths driven by audio intensity data. When beats hit, the currently leading bar gets a brightness flash. Use waveform effects tied to bass frequencies for the bar scale animations, creating an organic, music-driven feel. The BaseLayout uses 'grid grid-rows-8 gap-3' for consistent spacing. Caption words appear as category labels, with their 'impact' metadata determining base bar lengths.

Technical Specifications:
Structure: BaseLayout container (grid grid-rows-8 gap-3 p-6 bg-black w-full h-full). Each row: BaseLayout (flex items-center gap-4). TextAtom for labels (font: 'Montserrat:600', className: 'text-lg text-white w-32 truncate'). ShapeAtom for bars with dynamic width. Use AudioAtom for background track. Waveform effects: Apply to ShapeAtoms with audioProp: 'bass', effectType: 'scale', sensitivity: 0.8, threshold: 0.3. Generic effects: brightness keyframes on beat detection (1 -> 1.5 -> 1 over 200ms). Caption data: Use word.metadata.impact to set initial bar widths. Audio analysis: Fetch beat data to trigger ranking updates at detected beats. Timing: fitDurationTo: 'media' to match audio length. Performance: GPU-accelerated transforms, avoid animating width directly - use scaleX instead."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c700f9a6bced7-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:58:02 GMT',
'request-id': 'req_011CVasum6gRW5jZabn8N7nT',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '28',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVasum6gRW5jZabn8N7nT"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 13 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Create a minimalist Swiss-design inspired bar chart race with precise typography and clean geometric bars. This preset emphasizes clarity and readability with Helvetica-style fonts and monochromatic color scheme. Bars are thin horizontal lines that extend with linear easing, while ranking numbers update with a typewriter-style reveal effect. The layout uses absolute positioning within a grid structure for pixel-perfect alignment. TextAtoms display both the label and numeric value, with the value updating via a counting animation effect. Use internal effect presets for consistent fade-in-slide-left entrance animations on new entries.

Technical Specifications:
Structure: BaseLayout (relative w-full h-full bg-white p-12), nested grid BaseLayout (grid grid-cols-[60px_1fr_80px] gap-y-4 items-center). TextAtom for rank (font: 'Helvetica:400', className: 'text-sm text-gray-400 tabular-nums'), ShapeAtom bars (h-1 bg-black), TextAtom for labels (font: 'Helvetica:500', className: 'text-base text-black'). Effects: Generic keyframe effects with linear easing for bar scaleX (0 -> target over 1200ms), translateY for position swaps. Internal effect preset: 'fade-in-slide-left' for entrances. Caption integration: Use word array for label text, timing controls sequential reveals. Timing: Staggered delays based on word.relativeStartMs. Performance: Minimal repaints with transform-only animations. Accessibility: Include aria-labels for data values, respect prefers-reduced-motion."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c700e398467fe-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:58:02 GMT',
'request-id': 'req_011CVasuk9sfR1vQjZL9Soos',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '17',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVasuk9sfR1vQjZL9Soos"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 14 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Build a neon-glow cyberpunk bar chart race with dramatic color gradients and pulsing effects. Bars are vibrant horizontal gradients (pink to cyan) that leave trailing afterimages as they move positions. Text labels have a glowing edge effect that intensifies when an item takes the lead. The overall aesthetic is a futuristic data visualization from a sci-fi movie. Use layered ShapeAtoms for the glow effect (a blurred version behind the main bar). Caption words become the competitor names, with 'keyword' metadata entries getting extra visual emphasis through brighter glow intensity.

Technical Specifications:
Structure: BaseLayout (relative w-full h-full bg-slate-950 overflow-hidden), row containers (flex items-center gap-6 absolute) with dynamic top positioning. Double ShapeAtom per bar: background blur layer (filter: blur(20px), opacity: 0.6) and foreground bar (bg-gradient-to-r from-pink-500 to-cyan-400 rounded-full h-4). TextAtom labels (font: 'Orbitron:600', className: 'text-lg'). Effects: Generic keyframes for textShadow glow (0 0 10px -> 0 0 30px -> 0 0 10px), translateY for position swaps with ease-out over 600ms. Trail effect: Create ghost ShapeAtoms with delayed opacity fade-out (1 -> 0 over 400ms, 100ms delay). Caption: word.metadata.keyword items get enhanced glow multiplier. Timing: 500ms ranking intervals with 300ms swap animations. Performance: Use will-change: transform, filter on animated elements."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c700e6b253493-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:58:02 GMT',
'request-id': 'req_011CVasukTUoS85aBxiiVv28',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '33',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVasukTUoS85aBxiiVv28"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 15 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Design a sports scoreboard style bar chart race with bold typography and high-contrast colors. Each competitor row resembles a stadium jumbotron display with chunky block letters and sharp-edged bars. Rankings update with a satisfying 'slot machine' vertical scroll effect when positions change. The leading position gets a pulsing highlight border. Use a dark theme with bright accent colors per competitor. Caption data provides team/player names, with sentence timing controlling when ranking updates occur (each sentence = one time period).

Technical Specifications:
Structure: BaseLayout (flex flex-col gap-1 bg-gray-900 p-4 w-full h-full). Row BaseLayout (flex items-center bg-gray-800 px-4 py-2 border-l-4) with dynamic border-color. TextAtom rank (font: 'Impact:400', className: 'text-3xl text-white w-16 text-center tabular-nums'), ShapeAtom bar (h-8 rounded-r), TextAtom label (font: 'Bebas Neue:400', className: 'text-2xl text-white uppercase tracking-wider'). Effects: translateY scroll effect with overflow: hidden on parent, items translate by row height. Leading item: border pulse via generic effect on borderColor opacity. Caption: Map sentences to time periods, word array to competitor names. Timing: Sentence timing drives update frequency, 400ms swap animations with ease-in-out. Sub-preset potential: Create reusable 'scoreboard-row' sub-preset for consistent row styling."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c700f4ca61354-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:58:02 GMT',
'request-id': 'req_011CVasukuGb2vufVgYkkHyZ',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '32',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVasukuGb2vufVgYkkHyZ"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 16 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Create a liquid/morphing bar chart race where bars appear to flow like water or mercury. Instead of rigid rectangles, bars have soft rounded ends and seem to 'pour' into new lengths. Position swaps happen with a fluid wave motion rather than simple translation. Use SVG-like curves achieved through creative border-radius manipulation and scale transforms. Labels smoothly follow their bars with a slight physics-based delay. The overall effect should feel organic and satisfying, like a lava lamp visualization.

Technical Specifications:
Structure: BaseLayout (relative w-full h-full bg-gradient-to-br from-indigo-900 to-purple-900 p-8). Row containers with flex layout. ShapeAtom bars with extreme border-radius (rounded-full h-6) and gradient backgrounds. TextAtom labels (font: 'Quicksand:500', className: 'text-lg text-white'). Effects: Multi-stage scaleX animation with custom bezier easing (ease-in-out-back feel via keyframe overshoot: 0 -> 1.1 -> 1.0). Position swaps: translateY with 150ms delay on label relative to bar. Morphing effect: Animate border-radius during transitions (pill -> squished -> pill). Use repeatChildrenProps to apply consistent styling across all bar items. Timing: 1000ms for length changes, 600ms for position swaps with stagger. Performance: Transform-only animations, composite layers with will-change."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c70c89b1167fe-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:58:31 GMT',
'request-id': 'req_011CVaswwfEaN8JWPBxhJVZR',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '28',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVaswwfEaN8JWPBxhJVZR"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 17 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Build a retro 8-bit/pixel art style bar chart race with chunky pixelated bars and bitmap-style fonts. Bars grow in discrete 'block' increments rather than smooth interpolation, creating a nostalgic video game aesthetic. Position changes happen with a quick 2-frame 'teleport' effect. Add subtle CRT scanline overlay and chromatic aberration on the leading item. Sound effects could sync with ranking changes. Caption words rendered in pixel font become the competitor names.

Technical Specifications:
Structure: BaseLayout (relative w-full h-full bg-black p-8) with CRT overlay ShapeAtom (absolute inset-0 pointer-events-none). Row BaseLayouts (flex items-center gap-4 h-10). ShapeAtom bars with hard edges (no border-radius), step-based width using CSS steps() timing. TextAtom (font: 'Press Start 2P:400', className: 'text-xs text-green-400 uppercase'). Effects: Generic keyframes with 'linear' easing but discrete steps (scaleX: 0 -> 0.25 -> 0.5 -> 0.75 -> 1.0 at 0%, 25%, 50%, 75%, 100%). Position swap: 2-frame opacity blink (1 -> 0 -> 1) with instant translateY. Leading item: filter effect for chromatic aberration simulation. CRT overlay: repeating linear-gradient for scanlines. AudioAtom for 8-bit sound effects. Caption: Direct word-to-label mapping. Timing: 100ms per 'block' increment, instant position swaps."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c70c9fc071354-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:58:32 GMT',
'request-id': 'req_011CVaswxYp3dWfL3zdjKDB4',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '27',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVaswxYp3dWfL3zdjKDB4"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 18 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Design an elegant financial/stock ticker style bar chart race with sophisticated animations and professional typography. Bars represent market cap or stock values with smooth easing that mimics real market data visualizations. Include micro-animations like subtle gradient shifts and value counters that tick up/down. The color scheme uses muted greens and reds for gains/losses. Position changes are accompanied by small indicator arrows. Caption data provides company/stock names with metadata indicating positive or negative sentiment for color coding.

Technical Specifications:
Structure: BaseLayout (flex flex-col gap-2 bg-slate-100 p-6 w-full h-full font-sans). Row BaseLayout (flex items-center justify-between bg-white shadow-sm rounded px-4 py-3). TextAtom rank (font: 'SF Pro:500', className: 'text-sm text-gray-500 w-8'), TextAtom label (font: 'SF Pro:600', className: 'text-base text-gray-800'), ShapeAtom bar (h-2 rounded-full), TextAtom value (font: 'SF Mono:500', className: 'text-sm tabular-nums'). Effects: Generic keyframes for scaleX with ease-out (600ms), counter animation via fontSize pulse on value change. Color logic: Use caption word.metadata.sentiment to set bar color (green-500 vs red-500). Arrow indicators: Small TextAtom ('↑'/'↓') with translateY micro-animation. Position swaps: Gentle translateY with 800ms ease-in-out. Internal effect: Create 'value-counter-pulse' for reuse. Performance: Minimal DOM updates, transform-based positioning."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c70c9edfc3493-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:58:32 GMT',
'request-id': 'req_011CVaswxZZ9rRwTYKYXnTvr',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '82',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVaswxZZ9rRwTYKYXnTvr"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 19 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Create a dynamic typography-focused bar chart race where the labels themselves ARE the bars. Text stretches horizontally using letterSpacing and transforms to represent values - longer names literally become longer. This pure typokinetic approach uses no shape elements, just text manipulation. Words compress and expand, overlap and separate as rankings change. Use variable fonts for smooth weight transitions on leading items. Caption words directly become the competing labels with their timing controlling reveal order.

Technical Specifications:
Structure: BaseLayout (flex flex-col justify-center gap-4 bg-white p-12 w-full h-full). Each row: single TextAtom with dynamic styling. TextAtom (font: 'Inter Variable:400-800', className: 'text-4xl uppercase tracking-widest'). Effects: Generic keyframes on letterSpacing (0 -> 0.5em -> 1em as 'bar length'), fontWeight for leaders (400 -> 700), translateY for position swaps. Color gradient: Apply background clip text technique via inline style for gradient text effect. Caption integration: Direct mapping of word array to competing labels, word.relativeStartMs for staggered entrance. Special: Use scaleX as backup for extreme 'bar' lengths while maintaining text readability. Timing: 500ms letterSpacing transitions with spring-like overshoot easing, 400ms position swaps. Performance: Text rendering optimized with font-display: swap, minimal layout thrashing by batching changes."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c70c71fe8501e-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:58:31 GMT',
'request-id': 'req_011CVaswvdUMNSizbxADmRXf',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '36',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVaswvdUMNSizbxADmRXf"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 20 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Build a news broadcast / election results style bar chart race with an authoritative presentation. Bars fill from left with a revealing animation like a progress bar on election night. Lower thirds style labels with consistent branding. Include a 'LIVE' indicator pulsing in the corner and timestamp updates. The leading item gets a subtle spotlight/highlight treatment. Use caption sentences as time period labels ('2020 Results', '2021 Results') while words within become the competing candidates/parties.

Technical Specifications:
Structure: BaseLayout (relative w-full h-full bg-gradient-to-r from-blue-900 to-blue-800). Header BaseLayout (absolute top-0 w-full flex justify-between p-4) with TextAtom timestamp and 'LIVE' badge. Main content BaseLayout (flex flex-col gap-3 p-8 pt-20). Row BaseLayout (relative bg-blue-950/50 overflow-hidden) with ShapeAtom bar (absolute left-0 h-full) and TextAtom label overlay (relative z-10 p-3). Effects: Bar reveal via scaleX from 0 with transform-origin: left, clip-path alternative for crisp edge. LIVE badge: opacity pulse (1 -> 0.5 -> 1) with 1s loop. Leading highlight: Brighter background color and subtle scale(1.02). Caption: Sentence text for period headers, words for competitor names. Timing: 1500ms bar fill with ease-out, 600ms position transitions. Sub-preset: 'news-lower-third' for reusable label styling. Performance: GPU layers for animated elements, avoid paint on static elements."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c70ca5836ced7-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:58:32 GMT',
'request-id': 'req_011CVaswxqfx4YFBTiGGu1U1',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '23',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVaswxqfx4YFBTiGGu1U1"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 21 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Create a typokinetic ranking leaderboard preset where text labels representing ranked items smoothly shuffle positions like a live scoreboard. Each rank entry is a horizontal bar with a TextAtom displaying the item name and score. When rankings change, bars interpolate to their new Y positions using spring easing over 800ms, creating satisfying 'slot' movements. The bars should have subtle scale pulses (1.0 to 1.05) when they settle into new positions. Use caption data where each word represents a ranked item - the word's impact metadata determines initial ranking, and over time items reshuffle based on changing scores. Bars that move up should have a green glow effect, bars moving down get a red tint. The overall composition should feel like a sports broadcast ranking graphic with smooth, professional transitions.

Technical Specifications:
Structure: Single BaseLayout container with 'flex flex-col gap-2 p-8 bg-slate-900' as containerProps.className. Each ranked item is a child BaseLayout with 'flex items-center justify-between px-6 py-3 bg-gradient-to-r from-slate-800 to-slate-700 rounded-lg' containing TextAtom for name and TextAtom for score. Use generic effects with translateY keyframes for position changes - calculate Y offset based on rank index × item height. Animation timing: 800ms duration with spring easing for position interpolation, stagger delays of 50ms between items. Apply scale effect (1.0→1.05→1.0) over 200ms at end of position change for 'landing' feel. Use backgroundColor effect to flash green (#22c55e) or red (#ef4444) based on direction of movement. Caption data: Use words array where each word is an item name, leverage impact metadata (0-1) to determine initial sort order. GPU optimization: Use transform: translateY() and scale() exclusively, add 'will-change-transform' via containerProps.style."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c71810ed9501e-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:59:01 GMT',
'request-id': 'req_011CVasz7oUyTza4H4L8Fxtp',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '191',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVasz7oUyTza4H4L8Fxtp"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 22 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Design a cinematic bar chart race animation preset where horizontal bars compete and overtake each other with dramatic motion blur and momentum. Each bar represents a data point visualized as a TextAtom label inside a colored rectangle that extends from left edge. Bars smoothly slide to new lengths while simultaneously shuffling vertical positions. Apply motion blur effect (via CSS filter blur in direction of movement) during fast transitions. Include a subtle 'whoosh' feeling by having bars slightly overshoot their target position then ease back. The typography should use bold condensed fonts with the value number animating as a counting ticker. Frame the composition like a documentary infographic with clean grid lines in the background.

Technical Specifications:
Structure: Outer BaseLayout with 'relative w-full h-full bg-black' containing a grid overlay BaseLayout ('absolute inset-0 grid grid-cols-12 opacity-10') and main content area. Each bar is a BaseLayout with 'absolute left-0 h-12 flex items-center' positioned via translateY for vertical rank. Bar width animated via scaleX transform (more performant than width). TextAtom inside bar with 'font-bold text-2xl text-white px-4 whitespace-nowrap' for label. Effects: Use generic effects with translateY for vertical position (ease-out, 600ms), scaleX for bar length (ease-in-out, 500ms with 100ms delay), and blur filter (0→3→0px) during movement for motion blur effect. Overshoot: Set translateY keyframes to go 10% past target then return (at 0.7 progress: target-10%, at 1.0: target). Number ticker: Separate TextAtom with opacity keyframes to crossfade between values. Timing: fitDurationTo 'scene', relative timing with 1500ms per ranking update cycle. Use repeatChildrenProps to apply consistent styling across all bars."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c71874eb2ced7-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:59:02 GMT',
'request-id': 'req_011CVaszC4UA9Hez568rMoDD',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '76',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVaszC4UA9Hez568rMoDD"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 23 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Create an elegant typography-focused ranking preset inspired by award show reveals. Each ranked item appears as stylized text that gracefully floats to its position in a vertical stack. When reordering occurs, text elements perform a ballet-like choreography - rising items arc upward with a slight rotation, falling items descend with dignified ease. Use caption data for the ranked terms, with keyword metadata highlighting champion/winner items with golden styling. Typography should feature elegant serif fonts with letter-spacing animations that expand slightly during movement. Background should have subtle particle effects or light streaks following the moving text.

Technical Specifications:
Structure: BaseLayout with 'relative flex flex-col items-center justify-center min-h-screen bg-gradient-to-b from-slate-950 to-slate-900 overflow-hidden'. Each text item wrapped in BaseLayout with 'relative' for individual positioning. TextAtom with font 'Playfair Display:700' or similar serif, className 'text-4xl text-white tracking-wide'. Effects system: Generic effects combining translateY (for vertical position), rotate (±5deg arc during movement using bezier curve), and letterSpacing ('0em'→'0.1em'→'0em' during transition). For rising items: translateY with values that create upward arc, rotate from 0→-3→0deg. For falling: opposite rotation. Golden highlight: Use caption keyword metadata to apply color effect transitioning to '#fbbf24' (amber-400) and textShadow '0 0 20px rgba(251,191,36,0.5)'. Light streaks: Additional BaseLayout children with 'absolute h-px bg-gradient-to-r from-transparent via-amber-400 to-transparent' animated along movement path. Timing: 1200ms per transition with ease-in-out, stagger of 100ms between items."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c71828cb767fe-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:59:01 GMT',
'request-id': 'req_011CVasz8rjLpxN759YZA5nt',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '23',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVasz8rjLpxN759YZA5nt"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 24 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Build a sports-style live ranking ticker preset with high-energy motion reminiscent of ESPN graphics. Bars slide in from the right side, stack vertically, then shuffle positions with punchy, snappy animations. Each bar has a bold rank number, team/item name via TextAtom, and score value. Use aggressive ease-out curves for quick initial movement that decelerates sharply. Include camera shake effect on the entire composition when major ranking changes occur (top 3 positions). Color-code position changes with animated chevron indicators (▲▼) next to moved items. The overall feel should be dynamic and broadcast-ready.

Technical Specifications:
Structure: Outer BaseLayout with 'relative w-full h-full bg-slate-950 overflow-hidden' containing header bar and rankings container. Rankings container: BaseLayout with 'flex flex-col gap-1 p-4'. Each rank item: BaseLayout with 'flex items-center gap-4 px-4 py-2 bg-gradient-to-r from-blue-900 to-slate-800 rounded' containing rank number TextAtom ('font-black text-3xl text-blue-400 w-12'), name TextAtom ('font-bold text-xl text-white flex-1'), change indicator TextAtom ('text-green-400' or 'text-red-400'), score TextAtom ('font-mono text-2xl text-white'). Effects: Initial entrance via translateX (100%→0) with ease-out over 400ms, staggered 50ms. Position changes via translateY with aggressive ease-out (cubic-bezier(0.16, 1, 0.3, 1)) over 300ms. Camera shake: Apply to parent container when top 3 changes - use waveform-style effect or generic effect with rapid translateX/Y oscillation (±5px) over 200ms. Change indicators: opacity and scale effects (0→1, 0.5→1) when position changes. Use internal effect preset for reusable 'punchy-entrance' animation."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c71848e141354-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:59:01 GMT',
'request-id': 'req_011CVaszACr5TuE9WkoP5DZB',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '20',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVaszACr5TuE9WkoP5DZB"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 25 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Design a minimalist data visualization ranking preset with Swiss design aesthetics. Clean horizontal bars with monospace typography slide to new positions with mathematical precision. No decorative elements - just pure functional beauty. Bars are simple rectangles with sharp edges, subtle drop shadows, and high contrast colors. Movement should be perfectly linear with consistent velocity, creating a mechanical, systematic feel. Include subtle grid alignment guides that flash briefly when items snap to their new positions. The typography should use a technical monospace font with tabular figures for score alignment.

Technical Specifications:
Structure: BaseLayout with 'grid grid-rows-10 gap-px p-8 bg-white' (or dark variant 'bg-slate-950'). Grid lines: Absolute positioned BaseLayout children with 'absolute left-0 right-0 h-px bg-slate-200' at each row position. Each bar: BaseLayout with 'relative flex items-center h-10' containing colored bar div ('absolute left-0 top-0 bottom-0 bg-blue-600') and text overlay. TextAtom with font 'JetBrains Mono:500' or 'SF Mono:500', className 'relative z-10 text-sm text-white px-3 tabular-nums'. Effects: Pure linear easing for all movements - translateY for position (500ms linear), scaleX for bar width (500ms linear). Grid flash effect: opacity keyframes (0→0.5→0) on grid lines when item arrives, 100ms duration. No bounce, no overshoot - mathematical precision. Shadow: Apply via containerProps.style with 'boxShadow: 0 1px 3px rgba(0,0,0,0.1)'. Color system: Use input params for primary color, derive shades programmatically. Timing: Synchronized movement - all bars start and end transitions at same time for mechanical feel."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c71844d943493-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:59:01 GMT',
'request-id': 'req_011CVaszA3B7Zh5B4fg4L8jF',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '28',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVaszA3B7Zh5B4fg4L8jF"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 26 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Create an audio-reactive ranking bars preset where position changes are synchronized to beat drops in the audio track. When a beat hits, rankings shuffle with explosive energy - bars burst to their new positions with scale overshoot and rotation wobble. Between beats, bars have subtle idle breathing animations. Use waveform effects to make bar colors pulse with bass frequencies. The typography should feel like concert visuals - bold, high contrast, with glow effects that intensify on beats. Include a subtle background that reacts to audio intensity with color shifts.

Technical Specifications:
Structure: BaseLayout with 'relative w-full h-full bg-black overflow-hidden'. Background layer: BaseLayout with 'absolute inset-0' using waveform effect for backgroundColor reacting to bass (dark purple to deep blue range). Ranking container: BaseLayout with 'relative flex flex-col gap-3 p-6'. Each bar: BaseLayout with 'flex items-center px-6 py-4 rounded-xl' with gradient background. TextAtom with font 'Inter:800', className 'text-2xl text-white'. Use audio analysis API (fetcher) to detect beats and trigger ranking changes at beat timestamps. Waveform effects on bars: scale reacting to bass (sensitivity 0.3, range 1.0-1.1), backgroundColor reacting to mid frequencies. Beat-triggered position change: Generic effects with translateY using spring easing, scale overshoot (1.0→1.15→1.0), rotate wobble (0→5→-3→0deg). Glow effect via textShadow waveform effect reacting to treble ('0 0 10px'→'0 0 30px currentColor'). Idle breathing: Continuous subtle scale oscillation (0.98-1.02) over 2s loop. Audio analysis: Use getAudioAnalysis from fetcher to get beat data, filter for high-intensity beats for major shuffles."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c723dff93f457-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:59:31 GMT',
'request-id': 'req_011CVat2M3XB8W5frZA4rxie',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '46',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVat2M3XB8W5frZA4rxie"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 27 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Build a narrative storytelling ranking preset where bars represent characters or concepts that rise and fall like a story arc. Movement should feel emotional - rising items accelerate with hope and momentum, falling items have a melancholic deceleration. Use caption data where each word represents a character, with sentiment metadata influencing color temperature (warm for positive sentiment, cool for negative). Include subtle particle trails behind moving items - upward sparkles for rising, falling leaves or rain for descending. Typography should be story-book inspired with varying weights based on importance.

Technical Specifications:
Structure: BaseLayout with 'relative w-full min-h-screen bg-gradient-to-b from-amber-50 to-slate-100 dark:from-slate-900 dark:to-slate-950 p-12'. Each character bar: BaseLayout with 'relative flex items-center gap-4 py-4'. TextAtom with font 'Crimson Text:600' or 'Lora:500', className 'text-3xl'. Use caption data - each word is a character name, sentiment metadata (-1 to 1) determines color via HSL (warm: hsl(30-60, 70%, 50%), cool: hsl(200-240, 60%, 40%)). Effects: Rising items - translateY with ease-out (accelerating hope), scale 1.0→1.08→1.02, subtle rotate -2→0deg. Falling items - translateY with ease-in-out (melancholic), scale 1.0→0.95→0.98, muted opacity 1→0.8. Particle system: Child BaseLayout elements with 'absolute w-1 h-1 rounded-full' positioned along movement path, staggered opacity/translateY animations. Rising particles: bg-amber-400, upward float. Falling particles: bg-slate-400, downward drift. Use repeatChildrenProps for consistent particle styling. Timing: 1500ms for emotional weight, custom bezier curves per direction."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c723f7c7f1354-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:59:31 GMT',
'request-id': 'req_011CVat2N62JPrZGbTrScfce',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '60',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVat2N62JPrZGbTrScfce"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 28 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Design a competitive esports-style ranking preset with neon aesthetics and aggressive animations. Bars have cyberpunk styling with glitch effects during transitions. When rankings change, items briefly display scan-line distortion, RGB split effects, and sharp teleport-like movements. Include holographic shimmer on bar surfaces and pulsing neon outlines. Typography should be futuristic with digital artifacts - occasional letter glitches and flicker effects. The overall composition should feel like a high-tech tournament bracket display.

Technical Specifications:
Structure: BaseLayout with 'relative w-full h-full bg-black' containing CRT scanline overlay ('absolute inset-0 pointer-events-none' with repeating linear gradient for scanlines) and content area. Each rank bar: BaseLayout with 'relative flex items-center px-6 py-3 border border-cyan-500/50 bg-gradient-to-r from-cyan-950/80 to-purple-950/80 backdrop-blur'. Neon border: Use boxShadow in containerProps.style '0 0 10px rgba(6,182,212,0.5), inset 0 0 10px rgba(6,182,212,0.1)'. TextAtom with font 'Orbitron:700' or 'Rajdhani:600', className 'text-xl text-cyan-400 tracking-wider uppercase'. Glitch effect during transition: Rapid keyframe sequence with translateX jitter (±3px), RGB split via textShadow ('-2px 0 #ff0000, 2px 0 #00ff00'), opacity flicker (1→0.8→1→0.6→1) over 150ms. Main position change: translateY with steps easing or very fast ease-out (200ms) for teleport feel. Holographic shimmer: Animated linear-gradient background-position via generic effects. Letter glitch: Occasional opacity drops on individual characters using sub-preset for glitch-text effect."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c7240ea41ced7-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:59:32 GMT',
'request-id': 'req_011CVat2P54DE4y8xRGMaHKV',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '36',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVat2P54DE4y8xRGMaHKV"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 29 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Create a nature-inspired organic ranking preset where bars flow like water or grow like vines when changing positions. Movement should have fluid, bezier-curved paths rather than straight lines - items arc gracefully around each other. Use soft, earthy color palettes with gradient transitions. Include subtle organic textures and shapes - rounded corners that feel hand-drawn, slight imperfections in alignment. Typography should be warm and approachable with gentle weight transitions. Add ambient floating elements (leaves, bubbles, or particles) that drift independently of the rankings.

Technical Specifications:
Structure: BaseLayout with 'relative w-full min-h-screen bg-gradient-to-br from-emerald-50 via-teal-50 to-cyan-50 dark:from-emerald-950 dark:via-teal-950 dark:to-cyan-950 overflow-hidden'. Ambient particles: Multiple ShapeAtom or small BaseLayout elements with 'absolute rounded-full bg-emerald-300/30' at various sizes, continuous translateY and translateX drift animations with different durations (10-20s loops). Rankings container: BaseLayout with 'relative flex flex-col gap-4 p-8'. Each bar: BaseLayout with 'flex items-center px-8 py-5 rounded-3xl bg-gradient-to-r from-emerald-100 to-teal-100 dark:from-emerald-900/50 dark:to-teal-900/50'. Imperfect edges via slight rotate (±0.5deg random per item). TextAtom with font 'Nunito:600' or 'Quicksand:500', className 'text-2xl text-emerald-800 dark:text-emerald-200'. Fluid movement: Generic effects with both translateX and translateY keyframes creating curved paths - at 0.5 progress, add horizontal offset (±30px) creating arc. Use ease-in-out with custom bezier for organic feel. Scale breathing: Continuous subtle 0.99-1.01 oscillation. Color transitions: backgroundColor gradient shift during movement using color effect."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c723e0ac93493-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:59:31 GMT',
'request-id': 'req_011CVat2M6VimnhGjsMEXWee',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '47',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVat2M6VimnhGjsMEXWee"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 30 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Build a retro arcade game-style ranking preset with pixel-perfect animations and 8-bit aesthetics. Bars snap between positions in discrete steps like old video game sprites. Include CRT screen curvature effect, phosphor glow, and occasional screen flicker. Typography should use pixel fonts with chunky, blocky characters. Add classic arcade sound visualization - bars could pulse to an 8-bit soundtrack feel. Include score counters that tick up digit by digit. Color palette should be limited to classic arcade colors (cyan, magenta, yellow, green on black).

Technical Specifications:
Structure: BaseLayout with 'relative w-full h-full bg-black p-4' containing CRT effect overlay. CRT curvature: Apply via containerProps.style with subtle border-radius on inner content and vignette gradient overlay. Scanlines: Pseudo-element via additional BaseLayout with repeating 2px linear gradient. Each rank bar: BaseLayout with 'flex items-center gap-4 px-4 py-2 bg-cyan-500' with hard pixel edges (no border-radius). TextAtom with font 'Press Start 2P:400' or 'VT323:400', className 'text-lg text-black uppercase'. Pixel-perfect animation: Use steps() easing equivalent - create keyframes at discrete positions (0, 0.25, 0.5, 0.75, 1) with instant jumps between. Position via translateY with stepped values matching grid. Score ticker: Separate TextAtom animated digit by digit using opacity crossfades at 50ms intervals. Phosphor glow: textShadow '0 0 5px currentColor, 0 0 10px currentColor' with slight persistence (opacity decay over 100ms on movement). Screen flicker: Occasional full-container opacity dip (1→0.9→1) over 50ms at random intervals. Color palette: Use CSS custom properties for arcade-yellow (#ffff00), arcade-cyan (#00ffff), arcade-magenta (#ff00ff), arcade-green (#00ff00). Audio sync optional: Waveform effect for subtle bar scale pulse to bass."

═══════════════════════════════════════════════════════════════
❌ PRESET GENERATION FAILED
═══════════════════════════════════════════════════════════════
APICallError [AI_APICallError]: Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.
at (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/response-handler.ts:57:16)
at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
at async postToApi (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/node_modules/@ai-sdk/provider-utils/src/post-to-api.ts:118:28)
at async AnthropicMessagesLanguageModel.doGenerate (/home/runner/work/mediamake/mediamake/node_modules/@ai-sdk/anthropic/src/anthropic-messages-language-model.ts:470:9)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:357:30)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async _retryWithExponentialBackoff (/home/runner/work/mediamake/mediamake/node_modules/ai/src/util/retry-with-exponential-backoff.ts:96:12)
at async fn (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:328:32)
at async (/home/runner/work/mediamake/mediamake/node_modules/ai/src/telemetry/record-span.ts:18:22)
at async generateObject (/home/runner/work/mediamake/mediamake/node_modules/ai/src/generate-object/generate-object.ts:282:12) {
cause: undefined,
url: 'https://api.anthropic.com/v1/messages',
requestBodyValues: {
model: 'claude-sonnet-4-5',
max_tokens: 64000,
temperature: undefined,
top_k: undefined,
top_p: undefined,
stop_sequences: undefined,
system: undefined,
messages: [ [Object] ],
tools: [ [Object] ],
tool_choice: { type: 'tool', name: 'json', disable_parallel_tool_use: true }
},
statusCode: 400,
responseHeaders: {
'anthropic-organization-id': 'da777878-4d25-4f8d-bdf4-13c228122e17',
'cf-cache-status': 'DYNAMIC',
'cf-ray': '9a5c723d7b10501e-SJC',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:59:31 GMT',
'request-id': 'req_011CVat2LhgZvyPcTXVEY2rM',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '67',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVat2LhgZvyPcTXVEY2rM"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry

Closes #314

@vercel
Copy link

vercel bot commented Nov 28, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Preview Comments Updated (UTC)
mediamake-mediamake Ready Ready Preview Comment Nov 28, 2025 8:10pm

@vercel
Copy link

vercel bot commented Nov 28, 2025

Deployment failed with the following error:

Resource is limited - try again in 4 hours (more than 100, code: "api-deployments-free-per-day").

Learn More: https://vercel.com/karcreativeworks-projects?upgradeToPro=build-rate-limit

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

New Presets - D3.js Chord Diagram: Animated Ribbons (Batch 4/8)

0 participants