Skip to content

Conversation

@github-actions
Copy link
Contributor

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

This PR was automatically generated from issue #331

✅ Generation Complete

Final Status: 0/30 presets successfully generated

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

❌ Failed Presets (30)

  1. Preset 1 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Create a VHS tracking distortion transition preset that simulates the classic horizontal tracking lines and noise when a VCR loses signal between clips. The transition should feature an overlap period where the outgoing media becomes corrupted with horizontal RGB separation lines that drift vertically, while static noise particles emerge and intensify. During the 0.8-1.2 second overlap, apply a staggered horizontal slice effect using translateX transforms with random offsets on virtual 'scanlines' created through clip-path or gradient overlays. The incoming media should appear through the static as if the tracking is being adjusted, with the noise clearing from center outward. Use a single BaseLayout container with both media atoms positioned absolutely. The outgoing media gets progressive blur (0 to 4px), chromatic aberration simulation through RGB channel offset overlays, and opacity fade (1 to 0.3 to 0). Incoming media starts at opacity 0, becomes visible through the noise pattern, then clears to full opacity. Include a subtle vertical jitter effect (translateY oscillating ±2-5px at high frequency) during the distortion peak.

Technical Specifications:
BaseLayout duration = media1.duration + media2.duration - 1.0s overlap. Container: 'absolute inset-0 overflow-hidden bg-black'. Media atoms: absolute inset-0 with z-index layering (outgoing z-10, incoming z-20). Outgoing effects: opacity [1, 0.4, 0] at [0%, 60%, 100%] of overlap, blur [0, 3px, 4px], translateY oscillation. Incoming effects: opacity [0, 0.2, 1] at [0%, 40%, 100%] of overlap, blur [6px, 2px, 0]. Static noise overlay using ShapeAtom or pseudo-element with animated noise texture. Tracking lines via horizontal gradient bands with animated translateY. Provider mode with targetIds for each media atom."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c74b638e8e633-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:01:12 GMT',
'request-id': 'req_011CVat9oXfaG1ymoQ1pif8K',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '90',
'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_011CVat9oXfaG1ymoQ1pif8K"}',
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 2 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Build a VHS rewind stutter transition that mimics the jerky, frame-skipping motion when rewinding a videotape. The outgoing media should appear to rewind with a characteristic stutter effect - rapid back-and-forth motion created through quick translateX oscillations and brief pauses. During the 0.6-0.9 second transition overlap, implement a 'rewind blur' using motion blur simulation (slight horizontal stretch via scaleX and directional blur). The stuttering should create 4-6 visible 'jumps' with the playback rate concept visualized through transform keyframes. Add the iconic blue-tinted rewind screen color overlay that fades in during the effect. The incoming media emerges as if hitting 'play' - snapping into focus from a slightly compressed state. Include audio consideration notes for the rewind sound effect timing. The transition should feel mechanical and nostalgic, like old VCR technology.

Technical Specifications:
BaseLayout duration = media1.duration + media2.duration - 0.75s overlap. Stutter keyframes on outgoing: translateX sequence [0, -15px, -5px, -25px, -10px, -30px, 0] over overlap duration with easeInOut curves between positions. Blue overlay: ShapeAtom with backgroundColor 'rgba(0, 50, 150, 0.4)' fading opacity [0, 0.5, 0.3, 0]. Outgoing scaleX: [1, 1.03, 1, 1.05, 1] for motion blur feel. Incoming effects: scale [0.95, 1], opacity [0, 0.3, 1] with 'snap' at 70% through overlap. Container className 'absolute inset-0 bg-black'. Both media atoms use 'object-fit: cover'. Provider mode effects targeting 'outgoing-media' and 'incoming-media' ids."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c74b52dc02036-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:01:12 GMT',
'request-id': 'req_011CVat9oCpmoDVSfWKyrDuA',
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_011CVat9oCpmoDVSfWKyrDuA"}',
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 3 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Design a VHS pause/play glitch transition that recreates the distinctive visual artifacts when pausing and resuming a VHS tape. When the outgoing media 'pauses', it should freeze with the characteristic horizontal noise bar that appears at pause - a thick band of static that rolls through the frame. This pause bar effect can be created with a gradient overlay that animates vertically. During the 1.0-1.5 second overlap, the paused frame develops increased noise, slight vertical roll, and color bleeding at edges. The 'play' action brings in the new media with a brief moment of instability - a quick vertical sync issue (translateY jump) followed by the image stabilizing. Add the subtle brightness fluctuation that occurs when VHS playback resumes. The aesthetic should capture that moment of uncertainty when you unpause a tape and wait for the picture to settle.

Technical Specifications:
BaseLayout duration = media1.duration + media2.duration - 1.2s overlap. Pause bar: ShapeAtom 'absolute left-0 right-0 h-8 bg-gradient-to-b from-transparent via-white/60 to-transparent' with translateY animation from -100% to 200% over 0.4s, looped 2-3 times. Outgoing effects: opacity holds at 1 then drops [1, 0.7, 0], brightness [1, 1.1, 0.9, 1], vertical jitter translateY [0, 3px, -2px, 0]. Incoming effects: initial translateY [-20px, 8px, -3px, 0] for sync adjustment, opacity [0, 0.4, 0.9, 1], brightness [0.8, 1.1, 1]. Container overflow-hidden to clip pause bar. Static overlay fades up during pause then clears. Z-index: outgoing z-10, pause-bar z-15, incoming z-20."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c74b3df333886-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:01:12 GMT',
'request-id': 'req_011CVat9msTTyju9ffZ74Kfs',
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_011CVat9msTTyju9ffZ74Kfs"}',
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 4 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Create a magnetic tape strip interference transition inspired by the visual corruption that occurs when VHS tape passes over a dirty or magnetized head. The transition features characteristic horizontal banding with RGB color separation - red, green, and blue channels visually separating and recombining. During the 0.7-1.0 second overlap, the outgoing media should develop progressive horizontal line artifacts created through repeating gradient patterns. Implement chromatic aberration by showing the same content with slight positional offsets tinted in primary colors (achieved through overlay elements or filter effects). The magnetic interference should 'sweep' across the frame from one edge, corrupting as it goes, then the incoming media emerges clean from the other side. Add subtle wave distortion using a CSS transform that creates a slight horizontal wobble.

Technical Specifications:
BaseLayout duration = media1.duration + media2.duration - 0.85s overlap. RGB separation overlay: three ShapeAtom layers with mix-blend-mode: screen, colored red/green/blue at 20% opacity, each with different translateX offsets [-3px, 0, 3px] that animate during transition. Horizontal banding: gradient overlay 'repeating-linear-gradient(0deg, transparent, transparent 4px, rgba(0,0,0,0.3) 4px, rgba(0,0,0,0.3) 6px)' with animated opacity. Sweep effect: clip-path or gradient mask animating from left to right. Outgoing: opacity [1, 0.6, 0], filter hue-rotate subtle oscillation. Incoming: opacity [0, 0.5, 1], enters from right side of sweep. Container 'absolute inset-0 bg-black'. Wave distortion via transform: skewX oscillation ±1-2deg."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c74b52e7fd6f3-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:01:12 GMT',
'request-id': 'req_011CVat9njYcEcnjgKrkiHw1',
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_011CVat9njYcEcnjgKrkiHw1"}',
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 5 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Build a VHS static noise burst transition that simulates the aggressive snow and static when there's no signal or during channel switching on old TVs. The transition should explode into full static noise at its peak, completely obscuring both media momentarily. During the 0.5-0.8 second overlap (intentionally short and punchy), the outgoing media rapidly degrades with increasing noise overlay, contrast boost, and slight zoom. At the transition midpoint (around 0.3s), the screen should be nearly 100% static snow. The incoming media then emerges from the noise like a TV finding a new channel - with brief color bars flash or blue screen hint before the picture clears. This aggressive, punchy transition works well for high-energy YouTube content with quick cuts. The noise should feel authentic to CRT static patterns.

Technical Specifications:
BaseLayout duration = media1.duration + media2.duration - 0.6s overlap. Static noise: ShapeAtom or overlay with animated noise texture (CSS noise pattern or referenced noise image), opacity [0, 0.4, 1, 0.5, 0] peaking at 50% of overlap. Outgoing: opacity [1, 0.6, 0.1, 0], scale [1, 1.05, 1.1], contrast filter [1, 1.3, 1.5], fast timing front-loaded. Incoming: opacity [0, 0.05, 0.4, 1], scale [1.08, 1.02, 1], delayed start (begins at 30% of overlap). Brief color bars flash: ShapeAtom with SMPTE color bar gradient, opacity spike [0, 0.8, 0] at 45-55% of overlap for 0.1s. Container bg-black. Both media object-fit: cover. Aggressive easing: easeInExpo for out, easeOutExpo for in."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c74b0ae9bef61-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:01:12 GMT',
'request-id': 'req_011CVat9jjDTzbshYCW3BG4R',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '368',
'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_011CVat9jjDTzbshYCW3BG4R"}',
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 6 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Design a VHS head drum stutter transition that recreates the distinctive repeating-frame glitch when a VCR's head drum malfunctions. This creates a 'broken record' visual effect where a frame appears to get stuck and repeat with slight variations. During the 0.8-1.1 second overlap, the outgoing media should appear to 'stutter' in place - achieved through rapid opacity flickers and subtle position micro-movements that simulate frame repetition. Add horizontal tearing effects where the top and bottom of the frame appear misaligned (achieved through clip-path with different translateX values for top/bottom halves). The transition includes brief moments of complete black as the head loses contact, then the incoming media 'catches' and plays normally. Include the visual of interlaced line artifacts common to this type of VHS failure.

Technical Specifications:
BaseLayout duration = media1.duration + media2.duration - 0.95s overlap. Stutter effect on outgoing: opacity rapid flicker [1, 0.7, 1, 0.5, 1, 0.3, 0] with irregular timing, translateX micro-jitter [0, 2px, -1px, 3px, -2px, 0]. Horizontal tear: duplicate outgoing media with clip-path: inset(50% 0 0 0) and clip-path: inset(0 0 50% 0), different translateX offsets [0, 5px] and [0, -5px] creating misalignment. Black flash frames: opacity drops to 0 for 0.05s at 40% and 60% of overlap. Interlace lines overlay: ShapeAtom with 'repeating-linear-gradient(transparent, transparent 1px, rgba(0,0,0,0.4) 1px, rgba(0,0,0,0.4) 2px)'. Incoming: opacity [0, 0.2, 1] with clean ease-out, no stutter effects. Container overflow-hidden."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c756a5906e633-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:01:41 GMT',
'request-id': 'req_011CVatBvs18ajEuLYmurZFM',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '21',
'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_011CVatBvs18ajEuLYmurZFM"}',
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 a VHS tape damage wave transition that simulates the wavy, warped distortion when videotape has been physically stretched or damaged. The visual appears as horizontal waves rippling through the picture, causing the image to bend and distort. During the 1.0-1.4 second overlap, implement this wave effect using CSS transforms - a combination of scaleY oscillation and skewX that creates the undulating appearance. The wave should propagate from the bottom of the frame upward, 'washing' the outgoing media away. Color saturation should shift during the wave (colors bleeding and becoming oversaturated at wave peaks). The incoming media appears stable beneath the waves, revealed as the distortion passes. Add subtle horizontal position drift and the characteristic brightness fluctuation of damaged tape playback.

Technical Specifications:
BaseLayout duration = media1.duration + media2.duration - 1.2s overlap. Wave distortion on outgoing: combine scaleY [1, 0.97, 1.03, 0.98, 1.02, 1] oscillation with skewX [0, 2deg, -1deg, 1.5deg, 0] at different rates. Vertical reveal: clip-path on outgoing animating from 'inset(0)' to 'inset(100% 0 0 0)' - wave travels up revealing incoming. Saturation effect: filter saturate [1, 1.3, 0.8, 1.4, 0.9] synced with wave peaks. Brightness flicker: filter brightness [1, 1.1, 0.95, 1.05, 1]. Horizontal drift: translateX slow drift [0, -5px, -10px, -8px]. Incoming: stable at opacity 1 throughout, z-index below outgoing (z-10 vs z-20). Container 'absolute inset-0 bg-black overflow-hidden'. Wave timing uses custom bezier for organic 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': '9a5c7568fda22036-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:01:41 GMT',
'request-id': 'req_011CVatBurEHXjvfCSB3zjeU',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '53',
'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_011CVatBurEHXjvfCSB3zjeU"}',
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" "Build a VHS fast-forward scan lines transition that captures the look of scrubbing forward through a VHS tape at high speed. The characteristic diagonal scan lines and washed-out, high-contrast image should dominate the transition. During the 0.6-0.9 second overlap, the outgoing media should appear to 'speed up' with heavy diagonal line artifacts (created through repeating diagonal gradients), reduced color saturation (nearly black and white), and increased contrast. The motion should feel like watching a tape fast-forward - add a slight rightward motion blur effect. Brief flashes of clearer frames peek through (like the key frames during FF). The incoming media 'catches' when we hit play, with a brief moment of speed adjustment before normal playback resumes.

Technical Specifications:
BaseLayout duration = media1.duration + media2.duration - 0.75s overlap. Diagonal scan lines: ShapeAtom overlay with 'repeating-linear-gradient(45deg, transparent, transparent 2px, rgba(0,0,0,0.5) 2px, rgba(0,0,0,0.5) 4px)' at 60% opacity. Fast-forward look on outgoing: filter grayscale [0, 0.7, 0.8], contrast [1, 1.4, 1.5], brightness [1, 1.2, 1.1]. Motion blur simulation: scaleX [1, 1.02], translateX drift [0, 10px, 20px]. Key frame flashes: opacity [1, 0.3, 0.9, 0.2, 0.8, 0.1, 0] irregular pattern. Incoming: starts at 40% of overlap, opacity [0, 0.5, 1], brief scaleX [1.03, 1] for 'catching' effect, filter grayscale [0.5, 0] quick desaturate-to-color. Container bg-black. Aggressive timing, front-loaded for out, back-loaded for in."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c75672f803886-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:01:41 GMT',
'request-id': 'req_011CVatBtXbxYgmaNCMa8j2E',
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_011CVatBtXbxYgmaNCMa8j2E"}',
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" "Design a VHS eject/insert mechanical transition that visualizes the physical act of removing one tape and inserting another. During the 1.2-1.8 second overlap, the outgoing media should appear to physically eject - rising up with a translateY animation while developing the characteristic 'losing signal' artifacts (noise, horizontal lines, color fade to blue screen). At the transition midpoint, show a brief 'no tape' state - solid blue or black with potential 'NO SIGNAL' text overlay hint. The incoming media then 'loads' from below, descending into frame with initial noise and interference that clears as the tape 'catches'. Include the subtle mechanical feel - slight pause before motion, smooth acceleration, deceleration at end positions. This longer transition works for deliberate scene changes in documentary or essay-style content.

Technical Specifications:
BaseLayout duration = media1.duration + media2.duration - 1.5s overlap. Eject motion on outgoing: translateY [0, -5%, -100%] with easeInQuad, timed to complete at 45% of overlap. Signal loss during eject: noise overlay opacity [0, 0.4, 0.8], blue tint overlay opacity [0, 0.3, 0.6], horizontal bands intensity increasing. No-tape state: ShapeAtom 'absolute inset-0 bg-blue-900' visible from 40-60% of overlap. Insert motion on incoming: translateY [100%, 5%, 0] starting at 50% of overlap with easeOutQuad. Signal acquisition: noise overlay on incoming [0.7, 0.3, 0], color desaturated to normal [0.6, 1]. Both media use 'object-fit: cover'. Mechanical timing: include 0.1s hold at start/end of motion curves. Container overflow-hidden essential for off-screen 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': '9a5c7566eceaef61-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:01:40 GMT',
'request-id': 'req_011CVatBtLCcnX1JPtndmNSg',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '21',
'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_011CVatBtLCcnX1JPtndmNSg"}',
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 a VHS tracking adjustment transition that simulates manually adjusting the tracking dial to tune between two signals. The transition should feel like you're slowly dialing from one channel/tape to another, with the characteristic rolling, unstable picture during adjustment. During the 0.9-1.3 second overlap, both media should be partially visible but corrupted - the outgoing media rolls upward (translateY loop) while developing heavy horizontal banding, and the incoming media is visible but unstable with vertical sync issues. At the transition midpoint, maximum instability with both signals fighting for dominance. The tracking 'locks' onto the new signal as the transition completes - incoming media stabilizes while outgoing finally rolls off screen. Include the horizontal black bar that rolls through during tracking adjustment.

Technical Specifications:
BaseLayout duration = media1.duration + media2.duration - 1.1s overlap. Vertical roll on outgoing: translateY animates [0, 30%, 60%, 100%] (rolls off top), looping 1.5 times during overlap. Rolling black bar: ShapeAtom 'absolute left-0 right-0 h-16 bg-black' with translateY from -100% to 200%, multiple passes. Horizontal banding: gradient overlay with animated opacity [0, 0.6, 0.4]. Outgoing opacity: [1, 0.8, 0.5, 0] coordinated with roll-off. Incoming sync instability: translateY oscillation [10px, -5px, 8px, -3px, 0] dampening over time, slight skewY [1deg, -0.5deg, 0]. Incoming opacity: [0.2, 0.5, 0.8, 1] - partially visible throughout. Instability peak at 50%: maximum oscillation amplitude. Container bg-black, both media absolute inset-0. Z-index: incoming above (z-20) for 'fighting through' 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': '9a5c75674e24d6f3-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:01:41 GMT',
'request-id': 'req_011CVatBteYkpFihf8iXhH2h',
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_011CVatBteYkpFihf8iXhH2h"}',
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 'Network Node Emergence' typokinetic preset that simulates thousands of graph nodes emerging from a central point and forming interconnected text. Words from captions appear as glowing network nodes that pulse and connect with animated edge lines. Start with a single central node that expands outward—each word materializes as a node position, with thin luminous connection lines drawing between semantically related words (use keyword metadata to determine connections). The visual should feel like zooming into a complex neural network where text IS the data structure. Nodes should have a subtle breathing pulse effect, and edge connections should animate with a data-flow shimmer traveling along their paths. Background should be deep space black with subtle grid lines suggesting infinite scale. Words marked as 'impact' in metadata become larger hub nodes with more connections radiating outward.

Technical Specifications:
Use BaseLayout with 'relative w-full h-full bg-black overflow-hidden' as container. Create a grid-based positioning system using absolute positioning for each word node. TextAtom for each word with 'absolute' positioning, calculated x/y coordinates spreading from center. Use generic effects for node emergence: scale from 0 to 1 with spring easing over 0.3s staggered delays. For edge connections, use ShapeAtom with SVG line elements or pseudo-elements with 'absolute' positioning. Apply glow effect via textShadow in effects: '0 0 20px cyan, 0 0 40px cyan'. Use waveform effects tied to audio for subtle pulse on nodes (scale 0.95-1.05, sensitivity 0.3). Caption word timing drives stagger—each word appears at its relative timing. Impact words get larger fontSize (2rem vs 1rem) and brighter glow. Use repeatChildrenProps for consistent node styling. Performance: use transform and opacity only for animations, suggest will-change 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': '9a5c761d2a2a2036-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:02:10 GMT',
'request-id': 'req_011CVatE3DJAuLixVohjVo7z',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '138',
'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_011CVatE3DJAuLixVohjVo7z"}',
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 a 'Deep Zoom Data Cascade' typography preset that mimics the experience of zooming infinitely deep into a network visualization. Text appears in layered depth planes—words closer to camera are large and blurred (shallow depth of field), middle words are sharp and readable, distant words are small and numerous. As the timeline progresses, the camera 'zooms' deeper, causing words to flow from small/distant to large/past-camera in a continuous stream. Use z-index and scale transforms to create parallax depth. Words should be arranged in a loose grid pattern that suggests network topology. The overall effect should feel like flying through a data universe where information streams past at different speeds based on depth layer.

Technical Specifications:
Structure with 3+ nested BaseLayout containers representing depth planes: 'absolute inset-0' for each layer. Far layer: 'scale-50 opacity-40 blur-sm', mid layer: 'scale-100 opacity-100', near layer: 'scale-150 opacity-60 blur-md'. Use generic effects for continuous translateZ simulation via scale progression: far words scale 0.3→2.0 over duration, mid words 0.6→2.5, near words 1.0→3.0 with 'linear' easing for constant motion feel. TextAtom per word with 'absolute' positioning using percentage-based coordinates. Apply blur effect keyframes: blur 4px→0px→4px as words pass through focus plane. Use caption timing to stagger word entry—words enter at their wordStart time. Implement with fitDurationTo: 'scene' to match overall duration. Container: 'perspective-1000' via containerProps.style for true 3D feel. Use repeatChildrenProps with index-based transform offsets for natural distribution."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c761d3d9ae633-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:02:10 GMT',
'request-id': 'req_011CVatE39aLWeDTMerCQNFi',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '54',
'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_011CVatE39aLWeDTMerCQNFi"}',
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 'WebGL Graph Typography' preset that renders text as if it were nodes in a force-directed graph simulation. Words repel and attract each other based on their semantic relationships—keywords cluster together while forming readable sentences. The animation begins with words scattered chaotically (high entropy state) and gradually settles into organized readable text formations. Use spring physics simulation feel through easing curves. Edge connections pulse with data visualization aesthetics—thin lines with gradient colors indicating connection strength. The overall composition should feel like watching a complex system find equilibrium, with occasional perturbations causing ripple effects through the network.

Technical Specifications:
BaseLayout container with 'relative w-full h-full bg-slate-950 flex items-center justify-center'. Calculate pseudo-random starting positions for each word using index-based offsets. Generic effects for position animation: each TextAtom starts at scattered position (translateX: random -500 to 500, translateY: random -300 to 300) and animates to final grid position using 'spring' easing over 2-3 seconds. For edge connections, create separate BaseLayout layer with ShapeAtom SVG lines positioned between word pairs. Line opacity animates 0→0.6→0.3 to simulate connection forming. Use caption word metadata—'keyword' words become anchor points that settle first, other words animate toward them. Apply subtle waveform effect on settled state: translate jitter with 0.1 sensitivity for organic feel. TextAtom styling: 'font-mono text-cyan-400' for data aesthetic. Use childrenProps for consistent text styling across all word nodes."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c761c09023886-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:02:09 GMT',
'request-id': 'req_011CVatE2F1JVeYZezGXWSuf',
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_011CVatE2F1JVeYZezGXWSuf"}',
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" "Design an 'Edge Trace Typography' preset where words are revealed by animated connection lines tracing paths between them. Imagine a network graph where edges light up in sequence, and wherever an edge terminates, a word node illuminates. The visual narrative is of data flowing through a network, with text being the payload revealed at each destination. Start with a dark canvas showing faint node positions (dim text), then animate bright trace lines that travel between nodes—when a trace reaches a node, that word fully illuminates with a brief flash. Multiple traces can be active simultaneously, creating a living network feel. The trace lines should have a head glow and fade trail effect.

Technical Specifications:
Two-layer BaseLayout structure: bottom layer for dim placeholder text ('opacity-20'), top layer for illuminated text and traces. TextAtom for each word positioned absolutely using grid-calculated coordinates. For trace lines, use ShapeAtom with animated SVG path or create with pseudo-elements. Generic effects on trace elements: translateX/Y animation following bezier path between word positions, with trail effect via multiple shadow copies. Word illumination effect: opacity 0.2→1.0 triggered at word timing, plus scale 1.0→1.1→1.0 and textShadow '0 0 30px white' flash. Use caption wordStart timing to sequence illuminations. Trace timing: start 0.5s before word timing, duration 0.5s with 'ease-out'. Container: 'bg-gray-950' with subtle grid background pattern via containerProps.style. Performance: limit simultaneous traces to 3-4, use transform-only animations."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c761c0b11d6f3-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:02:10 GMT',
'request-id': 'req_011CVatE3FnG3EdmGwv7Fiak',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '475',
'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_011CVatE3FnG3EdmGwv7Fiak"}',
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" "Create a 'Fractal Zoom Text Matrix' preset inspired by infinite zoom into complex systems. Text is arranged in a self-similar pattern—words visible at current zoom level, with smaller versions of the same text pattern visible at edges suggesting infinite depth. As timeline progresses, the view zooms deeper, revealing new text detail while previous text scales beyond frame. The effect should feel like zooming into a Mandelbrot set made of typography. Use recursive visual patterns where sentence fragments repeat at different scales. Color coding indicates depth level—closer text in warm colors, distant in cool blues and cyans.

Technical Specifications:
Multiple nested BaseLayout containers (4-5 levels) each with 'absolute inset-0' and progressive scale transforms. Outer container: scale(4), middle: scale(1), inner: scale(0.25). Generic effects animate all containers with continuous scale increase: outer 4→16, middle 1→4, inner 0.25→1 with 'linear' easing for smooth zoom. TextAtom instances duplicated at each scale level with appropriate fontSize adjustments. Use color effects: outer text color '#ff6b6b', middle '#4ecdc4', inner '#45b7d1'. As text scales beyond threshold (>3x), fade opacity to 0. New text fades in as scale approaches 1x from below. Caption timing determines which words are 'in focus' at current zoom level—focused words get full opacity, others reduced. Container: 'perspective-2000 bg-black'. Use fitDurationTo: 'scene' for continuous zoom duration."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c761a6ef3ef61-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:02:09 GMT',
'request-id': 'req_011CVatE183G7RLgMFtV9ybk',
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_011CVatE183G7RLgMFtV9ybk"}',
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" "Design a 'Synaptic Fire Typography' preset that mimics neural network activation patterns. Words appear as neuron nodes that 'fire' in sequence based on caption timing—when a word fires, it pulses brightly and sends activation signals (animated lines) to connected words, which may then fire themselves. The visual creates a cascade effect like thoughts forming in a brain. Use warm pulse colors (orange, yellow, white) for firing events against a deep blue/purple neural background. Connections between words have varying 'weights' visualized as line thickness—high-impact words have thicker, more numerous connections.

Technical Specifications:
BaseLayout with 'relative w-full h-full bg-gradient-to-br from-indigo-950 to-purple-950'. TextAtom per word with 'absolute' positioning in organic cluster arrangement. Fire effect via generic effects: scale 1→1.3→1, opacity 0.4→1→0.7, textShadow transitions from none to '0 0 20px orange, 0 0 40px yellow' to subtle glow. Timing: fire starts at word's wordStart, duration 0.4s with 'ease-out'. Connection pulses: ShapeAtom lines with traveling gradient effect—use background-position animation or SVG stroke-dashoffset. Impact metadata determines connection count (high impact = 5+ connections, normal = 2-3). Use waveform effect on background with very low sensitivity (0.05) for subtle ambient pulse. Caption sentence timing groups words into firing clusters—words in same sentence fire in rapid sequence (0.1s apart). Child BaseLayout for connection layer beneath text layer."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c76d1fa32d6f3-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:02:39 GMT',
'request-id': 'req_011CVatGAgKa8rrM8tgbqHw1',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '18',
'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_011CVatGAgKa8rrM8tgbqHw1"}',
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" "Create a 'Data Stream Convergence' typokinetic preset where words flow in from multiple directions as data streams, converging at center to form readable sentences. Imagine network traffic visualization where packets (words) travel along defined paths (edges) from source nodes at screen edges toward a central processing hub. Each stream has distinct color coding. Words arrive at their destination positions in sync with caption timing, with a brief 'processing' animation (rotation + scale pulse) before settling. The converging streams create a sense of complex system orchestration.

Technical Specifications:
BaseLayout container 'relative w-full h-full bg-slate-900 overflow-hidden'. Define 4-6 stream origins at screen edges using absolute positioning. Each word assigned to a stream based on word index modulo stream count. Generic effects for stream motion: translateX/Y from origin point (e.g., '-100vw, 0' for left stream) to final centered position. Use bezier-like path simulation with intermediate keyframes: 0%: origin, 40%: curved midpoint, 100%: destination. Easing: 'ease-in' for acceleration feel. Arrival timing synced to caption wordEnd. Processing animation: immediate 0.2s sequence of rotate 0→360 and scale 1→1.2→1. Stream colors via TextAtom color prop: stream1 '#06b6d4', stream2 '#8b5cf6', stream3 '#f59e0b', stream4 '#10b981'. Final settled position uses flex layout 'flex flex-wrap justify-center items-center gap-2' for natural text flow. Use childrenProps for consistent arrival animation parameters."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c76d15f713886-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:02:38 GMT',
'request-id': 'req_011CVatGAH1ejuzU9Hef1j4E',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '24',
'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_011CVatGAH1ejuzU9Hef1j4E"}',
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 a 'Network Topology Reveal' preset that progressively reveals a complex graph structure with text as labels. Start with complete darkness, then edge lines begin appearing as faint traces, followed by node positions becoming visible as dim circles, finally text labels fade in at each node. The reveal sequence suggests mapping an unknown network structure. Use technical/blueprint aesthetic with cyan lines on dark background, subtle grid overlay, and monospace typography. Words positioned at node locations should have small connector lines linking them to their node circles. The overall effect is of a complex system being analyzed and labeled.

Technical Specifications:
Three-phase reveal using generic effects with sequential timing. Phase 1 (0-30%): ShapeAtom edges fade in, opacity 0→0.5 with 'ease-in'. Phase 2 (20-60%): ShapeAtom node circles scale 0→1 and opacity 0→0.8. Phase 3 (40-100%): TextAtom labels fade in synced to caption timing. BaseLayout structure: bottom layer for grid background (CSS grid pattern via containerProps.style), middle for edges/nodes, top for text. Node circles: ShapeAtom with 'w-3 h-3 rounded-full bg-cyan-500/50 absolute'. Text: TextAtom 'font-mono text-xs text-cyan-400' positioned 10px offset from node center. Connector lines: small ShapeAtom lines linking text to node. Use absolute positioning calculated to form interesting graph topology. Container: 'bg-slate-950' with subtle scanline overlay effect via CSS gradient. Total duration fitDurationTo: 'scene', with phase timings as percentages of total."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c76d3c8bbe633-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:02:39 GMT',
'request-id': 'req_011CVatGBvUY2qRQh3ymamLh',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '22',
'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_011CVatGBvUY2qRQh3ymamLh"}',
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 an 'Exponential Graph Growth' typography preset that visualizes explosive network growth. Start with a single word (the seed node), then spawn connected words that each spawn more connections, creating exponential visual complexity. Early words are large and central, later words are progressively smaller and positioned toward edges. The growth pattern should feel organic like a viral spread or tree branching. Connection lines multiply rapidly, creating increasingly dense network visualization. Use color gradient from warm center (first words) to cool edges (later words) to show temporal progression.

Technical Specifications:
Recursive positioning algorithm: first word at center (50%, 50%), subsequent words positioned at increasing radius with angular distribution. Generic effects for spawn animation: scale 0→1 with 'spring' easing (0.3s), plus fade opacity 0→1. Each word's spawn triggers 0.1s after previous based on caption timing. TextAtom fontSize decreases with word index: first words 3rem, middle 1.5rem, late words 0.75rem. Color gradient: use HSL with hue shifting from 30 (orange) for early words to 200 (cyan) for late words. Connection lines: ShapeAtom positioned between parent-child word pairs, animate in with 0.2s delay after child word spawn. BaseLayout container 'relative w-full h-full bg-black' with 'overflow-hidden' to manage edge density. Use repeatChildrenProps with index-based transforms for scalable word positioning. Limit visible connections to prevent performance issues—only show connections for words within certain radius of center."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c76d2ce342036-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:02:39 GMT',
'request-id': 'req_011CVatGBGnc4j5Bs8MnqdDC',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '56',
'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_011CVatGBGnc4j5Bs8MnqdDC"}',
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" "Design a 'Complex System Pulse' typokinetic preset where text forms a static network visualization that reacts dynamically to audio beats. Words are pre-positioned in network graph layout, with connection edges visible throughout. On each beat, the entire network pulses—nodes briefly scale up, edges brighten, and a ripple effect propagates from center outward. High-intensity beats cause larger reactions. Between beats, the network returns to ambient state with subtle organic movement. Text should feel like a living data visualization dashboard responding to real-time signals.

Technical Specifications:
BaseLayout 'relative w-full h-full bg-gray-950 flex items-center justify-center'. Pre-calculate network layout positions for all caption words—use force-directed approximation with words as node positions. TextAtom per word with 'absolute' positioning. Static base state: text 'opacity-70', connection lines 'opacity-30'. Waveform effects for beat response: scale waveform with target 1.15, sensitivity 0.6, threshold 0.4 for punchy response. Apply to both TextAtom nodes and ShapeAtom edges. Add secondary waveform effect for color: brightness 1→1.3 on beats. Ripple effect: use staggered waveform effects with increasing delay based on distance from center (center nodes react immediately, edge nodes 0.1-0.3s delay). Ambient movement: subtle translateX/Y waveform effect with very low sensitivity (0.1) and 'mid' audio property for organic sway. Use internal effect preset for reusable beat-pulse effect across all nodes."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c76cfa9a9ef61-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:02:38 GMT',
'request-id': 'req_011CVatG98JXpvB7U9CB6PE4',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '18',
'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_011CVatG98JXpvB7U9CB6PE4"}',
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 an 'ID Card Scanner Frame' typography preset that reveals text character-by-character with a blinking cursor, framed by animated geometric corner brackets. The visual metaphor is a government document scanner authenticating an identity card. Structure: Use a BaseLayout container with 'relative w-full h-full bg-black' as the main frame. Position four corner bracket elements using absolute positioning ('absolute top-0 left-0', 'absolute top-0 right-0', etc.) - each bracket is a ShapeAtom or nested BaseLayouts forming L-shaped corners with 2px white borders. The corner brackets should animate in from outside the frame with a 'scan initialization' feel - sliding inward with slight overshoot (spring easing). Center the text area using 'flex items-center justify-center'. For the typing effect: use caption data to access individual characters, revealing them one-by-one with a TextAtom. Add a cursor element (a thin white rectangle with 'w-0.5 h-6 bg-white') that blinks using opacity keyframe effects (1→0→1 at 530ms intervals for authentic cursor timing). The cursor should advance position as each character appears. Include a subtle green scanline that sweeps vertically across the frame periodically. Color palette: white text on black, with subtle cyan/green accents on the brackets suggesting tech/security aesthetic.

Technical Specifications:
Structure: BaseLayout (main container) → [4x BaseLayout corner brackets with absolute positioning, BaseLayout text container with flex centering, BaseLayout cursor element, BaseLayout scanline]. Corner brackets: Use border-l-2 border-t-2 for top-left, border-r-2 border-t-2 for top-right, etc. with 'border-white w-8 h-8'. Text: TextAtom with monospace font 'Roboto Mono:400:normal'. Effects: Corner bracket entrance - generic effects with translateX/Y from ±20px to 0 with spring easing over first 15% of duration. Character reveal - iterate through caption words, then characters, each with staggered opacity 0→1 effect with 50-80ms per character. Cursor blink - looping opacity effect 1→0→1 with step easing for sharp on/off. Scanline - translateY from -100% to 100% with linear easing, low opacity (0.3). Timing: fitDurationTo 'children', character reveal should consume 70% of total duration, cursor persists throughout. Performance: Use transform and opacity only for animations, 'will-change: transform, opacity' 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': '9a5c778309feef61-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:03:07 GMT',
'request-id': 'req_011CVatJFtf6pdghZUiqknRS',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '105',
'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_011CVatJFtf6pdghZUiqknRS"}',
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 'Focus Bracket Lock-On' preset with kinetic typography where corner focus brackets converge on text as words type out sequentially. Inspired by camera autofocus UI and targeting systems in sci-fi films. The brackets start wide and 'hunt' for focus before locking onto each word. Main container: BaseLayout with 'relative overflow-hidden' and dark background. Four corner bracket groups positioned around text area - each bracket is two perpendicular lines (ShapeAtoms or border-styled BaseLayouts). Animation sequence: Brackets start at wide spacing, jitter/oscillate slightly (hunting for focus), then snap to tight position around text (lock-on). Simultaneously, text types in word-by-word using caption timing data. Each word appears with a micro-shake on bracket lock. Add small 'LOCKED' or coordinate text indicators that fade in near brackets after lock-on. The cursor should be a vertical line that pulses with higher intensity when actively typing vs idle blinking when paused between words. Include subtle lens flare or light leak effect on lock-on moments. Typography should be clean sans-serif, all caps, with tight letter-spacing for that technical readout feel.

Technical Specifications:
Structure: BaseLayout container → [BaseLayout bracket-group with 4 corner elements, BaseLayout text-container centered, TextAtom for coordinate readouts, BaseLayout cursor]. Brackets: Each corner has horizontal and vertical bar (BaseLayout with 'bg-white h-0.5 w-6' and 'bg-white w-0.5 h-6'). Use CSS custom properties or style props for dynamic positioning. Text: TextAtom with 'Oswald:500:normal' or 'Bebas Neue:400:normal', 'tracking-wider uppercase'. Effects: Bracket hunting - generic effects with translateX/Y oscillating ±5px with ease-in-out over 0-30% duration, then snap to final position at 35%. Word reveal - use caption data word timing, each word fades in (opacity 0→1) with concurrent bracket micro-shake (translateX -2→0→2→0 over 100ms). Cursor pulse - opacity effect ramping 0.5→1→0.5 at 200ms when typing, slower 800ms when idle. Lock-on flash - brief brightness filter spike 1→1.5→1 on bracket parent. Timing: Relative timing critical - bracket hunt happens during first word reveal, subsequent words trigger mini lock-on sequences. Use 80-120ms per character equivalent timing."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c7784bb52d6f3-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:03:07 GMT',
'request-id': 'req_011CVatJH2N9kQVKZCwDhwvw',
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_011CVatJH2N9kQVKZCwDhwvw"}',
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" "Build a 'Terminal Boot Sequence' typography preset that simulates a computer terminal initializing and displaying text with authentic retro computing aesthetics. Corner frame elements represent the terminal window chrome. Text appears character-by-character with variable speed (faster on common letters, brief pauses on punctuation). The cursor is a solid block that inverts colors where it sits. Frame design: Rounded corner brackets suggesting CRT monitor edges, with subtle scan lines overlay. Add a boot sequence before main text: brief 'INITIALIZING...' text, progress indicators, then main content. Use caption data for the primary text content, but prepend synthetic boot messages. Color scheme: Classic green-on-black (#00ff00 on #0a0a0a) or amber-on-black (#ffb000). Include subtle CRT effects: slight barrel distortion feel via border-radius on container, scan line overlay (repeating horizontal lines), and occasional 'glitch' moments where text briefly scrambles. The typing sound could be suggested through visual micro-movements - each character lands with a tiny vertical bounce.

Technical Specifications:
Structure: BaseLayout (CRT frame with 'rounded-lg border-4 border-gray-700 bg-black overflow-hidden relative') → [BaseLayout scanline-overlay absolute, BaseLayout text-content with padding, TextAtom boot messages, TextAtom main content, BaseLayout block-cursor]. Scanlines: Use repeating-linear-gradient in style prop or pseudo-element simulation with striped ShapeAtom overlay at 0.1 opacity. Text: TextAtom with 'IBM Plex Mono:400:normal' or 'Source Code Pro:400:normal', color '#00ff00'. Block cursor: BaseLayout 'w-3 h-5 bg-current' positioned inline with text using flex. Effects: Character reveal - iterate caption characters with staggered timing (40ms base, +60ms on punctuation, +30ms on capitals). Each character has translateY effect -2→0 with ease-out for 'landing' feel. Glitch effect - at random 2-3 points, apply brief filter: hue-rotate(180deg) for 50ms. Boot sequence - separate TextAtom with pre-defined strings, completes in first 20% of duration. Cursor: Moves with text position, opacity stays 1 (block cursor doesn't blink traditionally). Timing: Boot sequence 0-20%, main text 20-95%, cursor remains until end. Consider sub-preset for reusable terminal-text-reveal 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': '9a5c778408b13886-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:03:07 GMT',
'request-id': 'req_011CVatJGW7c2YKkxS5nTzCY',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '50',
'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_011CVatJGW7c2YKkxS5nTzCY"}',
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" "Create a 'Surveillance Camera HUD' preset with aggressive geometric framing and typewriter text reveal. The aesthetic is security footage with data overlay - timestamp, location codes, and the main caption text typing out. Corner brackets are thick, industrial, with additional crosshair or registration mark elements. Text appears in multiple zones: main central text (caption-driven), corner data readouts (synthetic metadata like timestamps, frame numbers). Typing effect should feel mechanical and urgent - consistent rhythm with no variation, like a teletype machine. Include a 'REC' indicator that pulses red. Frame elements should have subtle continuous movement - very slow drift or micro-oscillation suggesting handheld camera or signal interference. Add noise/grain overlay for authenticity. The overall composition suggests we're viewing intercepted footage with text annotations being added in real-time by an analyst.

Technical Specifications:
Structure: BaseLayout (full container 'relative w-full h-full bg-gray-900') → [ImageAtom or ShapeAtom for noise overlay at low opacity, BaseLayout corner-brackets group, BaseLayout crosshair-center, BaseLayout REC-indicator absolute top-right, BaseLayout timestamp absolute bottom-left, BaseLayout main-text-container centered, TextAtom main caption]. Corner brackets: Thick (4px) white borders, 'border-l-4 border-t-4 w-12 h-12' style, positioned with 8px inset from edges. Crosshair: Thin centered lines spanning container width/height at 0.3 opacity. REC indicator: 'flex items-center gap-2' with red circle ShapeAtom and 'REC' TextAtom, circle pulses opacity 0.5→1→0.5. Text: 'Roboto Mono:700:normal' or 'Share Tech Mono:400:normal', slightly condensed if available. Effects: Typewriter - strict 60ms per character timing from caption data, no easing variation. Frame drift - parent container has subtle translateX/Y oscillation ±1px over 10s loop. Noise - if using ImageAtom, low opacity animated noise gif or static grain. Timestamp - updates every second or uses caption timing to increment. Timing: All data readouts start immediately, main text types throughout middle 80% of duration. Use waveform effects on noise intensity if audio available."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c77860eca2036-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:03:07 GMT',
'request-id': 'req_011CVatJHrUdcy8exSDD1zPH',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '39',
'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_011CVatJHrUdcy8exSDD1zPH"}',
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 'Minimal Focus Frame' preset with ultra-clean geometric corner brackets and elegant character-by-character text reveal. This is the refined, design-forward interpretation - think Apple keynote or high-end product reveal. Corner brackets are thin, precise, with generous whitespace. Text appears smoothly with each character fading and scaling up slightly from 90% to 100% size. The cursor is a thin, elegant vertical line with smooth fade blink (not harsh on/off). Animation timing uses sophisticated easing - custom cubic-bezier curves for organic feel. The overall rhythm should feel calm and confident, not frantic. Include subtle drop shadow on text for depth. Frame brackets could animate with a satisfying 'snap' into position at the start, then remain static while text animates. Color palette should be configurable but defaults to near-black text on white or white text on deep navy.

Technical Specifications:
Structure: BaseLayout (container 'relative flex items-center justify-center min-h-full p-12') → [4x BaseLayout corner-brackets absolute positioned, BaseLayout text-wrapper, TextAtom main-text, BaseLayout cursor]. Brackets: Minimal 1px lines, 'border-gray-300' or configurable, 'w-6 h-6', positioned with comfortable margins (5-8% from edges). Elegant L-shapes using two borders per corner. Text: Premium sans-serif 'Inter:300:normal' or 'SF Pro Display:300:normal', generous letter-spacing 'tracking-wide', text-shadow for subtle depth. Cursor: 'w-px h-6 bg-current opacity-70', blink uses sine-wave opacity 0.3→1→0.3 over 1200ms. Effects: Bracket entrance - translateX/Y from ±10px to 0 with cubic-bezier(0.34, 1.56, 0.64, 1) for subtle overshoot, completes by 10% duration. Character reveal - each character scales 0.9→1 and opacity 0→1 with ease-out over 150ms, staggered at 70ms intervals using caption character data. Text shadow animates 0→subtle simultaneously. Timing: Bracket snap 0-10%, text reveal 15-90%, cursor persists with smooth fade-out at end. Input params for color scheme (light/dark modes). Consider internal effect preset for 'elegant-character-reveal'."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c77870a6ce633-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:03:08 GMT',
'request-id': 'req_011CVatJJc7pnWxfWY2voJzz',
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_011CVatJJc7pnWxfWY2voJzz"}',
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" "Build a 'Glitch Scanner' preset combining the ID scan frame concept with intentional digital glitch aesthetics. Corner brackets are clean but periodically affected by horizontal displacement glitches. Text types out normally but experiences corruption moments - characters briefly show wrong glyphs, RGB split, or position jitter before correcting. This creates tension between the clinical scanner frame and unstable digital signal. The cursor should also glitch - occasionally duplicating, shifting color, or freezing. Frame includes additional decorative elements: thin horizontal scan lines, small data fragments in corners, interference patterns. The glitch timing should feel organic, not perfectly rhythmic - cluster glitches then periods of stability. Color palette: high contrast with chromatic aberration accents (cyan/magenta edge splits). Text content from captions but occasionally a character renders as a different symbol before correcting.

Technical Specifications:
Structure: BaseLayout (container 'relative overflow-hidden bg-black') → [BaseLayout bracket-frame, BaseLayout scanlines-overlay, BaseLayout text-container, TextAtom with character-level control, BaseLayout glitch-duplicate-layer for RGB split]. RGB split technique: Three text layers - normal, one offset -2px in cyan, one offset +2px in magenta, offset layers at low opacity normally, spike to higher during glitches. Brackets: Clean 2px white borders, but each has occasional translateX glitch effect (jump 5-15px horizontally for 50-100ms). Text: 'Space Mono:400:normal' or 'Fira Code:400:normal'. Effects: Character typing - standard staggered reveal. Glitch events - define 3-5 glitch moments randomly distributed, each triggers: translateX spike on random elements, brief opacity flicker, RGB layer opacity spike. Use generic effects with very short duration spikes. Cursor glitches - occasionally splits into 2-3 cursors briefly, uses scale and translateX effects. Scanlines: Horizontal lines via repeating gradient, animate translateY slowly. Timing: Typing occupies 60% of duration, glitch events clustered in 2-3 bursts lasting 200-400ms each. Create helper function to generate random glitch timing arrays. Performance: Limit simultaneous animated elements during glitch to maintain framerate."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c783aa920e633-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:03:36 GMT',
'request-id': 'req_011CVatLRSwChdeJckRGNzCy',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '211',
'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_011CVatLRSwChdeJckRGNzCy"}',
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" "Create a 'Document Redaction Reveal' preset where text appears as if being typed onto an official document, with corner brackets suggesting document scanning/framing. The unique twist: some words appear pre-redacted (black bars) then dramatically un-redact to reveal the actual word with a satisfying animation. Use caption metadata - words marked as 'impact' or 'keyword' get the redaction treatment. Non-redacted text types normally with cursor. Redacted words: black rectangle covers word space initially, then either slides away, dissolves with noise, or splits apart to reveal text beneath. Frame brackets could have official document styling - perhaps double-line borders suggesting certificate or legal document edges. Add subtle paper texture background. Include small 'CLASSIFIED' or 'CONFIDENTIAL' watermark that fades. The overall feel is declassified document being revealed, combining bureaucratic typography with dramatic reveal moments.

Technical Specifications:
Structure: BaseLayout (container 'relative bg-amber-50/10 p-8') with paper texture via subtle noise ImageAtom or gradient → [BaseLayout frame-brackets double-line style, BaseLayout watermark absolute centered low-opacity, BaseLayout text-content, dynamic word components]. Frame: Double-line border effect using two nested BaseLayouts with borders, 'border-2 border-gray-800' outer, 'border border-gray-600' inner with 4px gap. Text: Serif font 'Playfair Display:400:normal' or 'Libre Baskerville:400:normal' for official document feel, or monospace 'Courier Prime:400:normal' for typewritten. Word handling: Parse caption data, check metadata for impact/keyword flags. Normal words: TextAtom with staggered character reveal. Redacted words: BaseLayout 'bg-black' overlay positioned over TextAtom, reveal animation choices - (a) scaleX 1→0 from center, (b) opacity 1→0 with blur 0→4→0, (c) translateX to slide off. Effects: Normal typing at 60ms/char. Redaction reveal - longer duration 300-500ms with dramatic easing ease-in-out. Watermark: TextAtom 'DECLASSIFIED' at 0.1 opacity, rotated -15deg, fades out as content reveals. Timing: Use caption word timing, redacted words get extended duration for reveal animation. Create sub-preset for 'redaction-reveal-word' component."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c783998442036-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:03:36 GMT',
'request-id': 'req_011CVatLQi34xdc9jRLALMPE',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '18',
'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_011CVatLQi34xdc9jRLALMPE"}',
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 'Biometric Scan Interface' preset with corner focus brackets that pulse with a scanning animation while text populates field-by-field. Inspired by fingerprint scanners and facial recognition UIs. The frame includes not just corner brackets but also animated scan lines that sweep across the text area. Text appears in labeled fields: 'SUBJECT:', 'STATUS:', 'ID:', with values typing in after labels. The cursor has a more technical appearance - perhaps a blinking underscore or block. Include a circular or rectangular 'scan zone' indicator that animates (rotating dashed border, pulsing glow). The corner brackets should feel active - subtle glow or pulse effect suggesting the system is live and processing. Add small iconography or data visualizations in corners (mini graphs, status dots). Green/cyan color scheme for 'approved' feel, or amber for 'processing'.

Technical Specifications:
Structure: BaseLayout (container 'relative bg-gray-950 p-6') → [BaseLayout corner-brackets with glow effect, BaseLayout scan-zone-indicator centered, BaseLayout scanning-line animated, BaseLayout field-rows using flex-col gap-2, multiple TextAtom pairs for label:value]. Scan zone: Rounded rectangle 'border-2 border-dashed border-cyan-500/50 rounded-lg' with CSS animation rotating or pulsing. Can use rotating conic-gradient for animated dashed effect via style prop. Scanning line: Thin horizontal BaseLayout 'h-px bg-gradient-to-r from-transparent via-cyan-400 to-transparent', animates translateY top to bottom repeatedly. Corner brackets: 'border-cyan-400' with box-shadow glow '0 0 10px currentColor', subtle opacity pulse 0.7→1→0.7. Field structure: Each field is BaseLayout 'flex gap-2', TextAtom label 'text-cyan-600 uppercase text-sm', TextAtom value 'text-white font-mono'. Effects: Labels appear instantly or fade in, values type character-by-character with 50ms timing. Bracket glow pulses throughout using generic effect on opacity/filter:brightness. Scan line loops 3-4 times during typing phase. Status indicators (small circles) use 'bg-green-500 rounded-full w-2 h-2' with pulse animation. Timing: Scan zone animation starts immediately, field population staggers - each field starts after previous completes. fitDurationTo 'children' for overall timing. Consider input params for status color (cyan=processing, green=approved, red=denied)."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c7838ea87d6f3-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:03:36 GMT',
'request-id': 'req_011CVatLQEFyGkemhs52gGDz',
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_011CVatLQEFyGkemhs52gGDz"}',
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 'Kinetic Title Card' preset optimized for bold, impactful title reveals with geometric framing. Corner brackets are substantial and animated - they construct themselves on screen (lines drawing in from corners). Text doesn't just type, it builds with kinetic energy - each word or phrase explodes in with scale, rotation, or directional momentum, then settles. The cursor concept transforms into a moving highlight or underline that sweeps across revealed text. Frame elements respond to text impacts - subtle shake or pulse when words land. This is for titles/headers that need to grab attention. Multiple text elements can stack vertically with staggered timing. Include ability to emphasize specific words differently (larger, different color, extra animation) based on caption metadata. Background could include subtle geometric shapes that move in parallax or respond to the kinetic moments.

Technical Specifications:
Structure: BaseLayout (container 'relative overflow-hidden bg-black') → [BaseLayout background-shapes for geometric decoration, BaseLayout bracket-frame constructing corners, BaseLayout text-stack for multiple lines, BaseLayout highlight-underline]. Bracket construction: Each corner bracket draws in - horizontal line scales from 0 to full width (scaleX 0→1, transform-origin: corner), then vertical line draws (scaleY 0→1). Use 4 separate animated elements per corner or SVG path animation simulation. Text: Bold sans 'Oswald:700:normal' or 'Anton:400:normal', large scale 'text-4xl md:text-6xl', 'tracking-tight'. Word animation: Each word BaseLayout wrapper with effects - translateY 30→0, scale 1.1→1, rotation slight -3→0, opacity 0→1, with spring easing for energy. Different entry directions for variety. Impact emphasis: Words with 'impact' metadata get extra scale 1.2→1 and brief color flash or glow. Underline: BaseLayout 'h-1 bg-white' that scaleX animates 0→1 under each line after words settle, or follows last word. Frame shake: When impactful words land, parent container gets micro translateX/Y shake ±3px for 100ms. Background shapes: 2-3 geometric ShapeAtoms (triangles, lines) at low opacity with slow parallax translateX/Y throughout. Timing: Bracket draw 0-15%, words stagger with 150ms overlap, emphasis words get +100ms duration. Highly kinetic feel with overlapping animations. Create internal effect preset 'word-kinetic-entrance' for reuse."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c78367a8f3886-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:03:36 GMT',
'request-id': 'req_011CVatLNaYdAHhbubGvFgfC',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '24',
'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_011CVatLNaYdAHhbubGvFgfC"}',
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 'Secure Terminal Input' preset simulating password or secure data entry with masked characters initially, then reveal. Corner brackets represent a secure input field boundary. Text types in as dots or asterisks (masked), then after completion, characters unmask one-by-one to reveal actual text - similar to 'show password' functionality. Include a 'security level' indicator (progress bar or icon set) that fills as characters are entered. The cursor should indicate input mode - perhaps different appearance during masked vs unmasked states. Frame could include lock icon that animates to unlocked when reveal begins. Add subtle 'encryption' visual effect during typing - tiny random characters flickering near the main text suggesting background processing. Color transitions: amber during masked input (warning/secure), green when unmasked (verified/clear). The overall metaphor is entering a secure passphrase and then seeing it verified/decoded.

Technical Specifications:
Structure: BaseLayout (container 'relative flex flex-col items-center justify-center gap-4 bg-gray-900 p-8') → [BaseLayout header with lock-icon, BaseLayout input-frame with brackets, BaseLayout masked-text-container, BaseLayout reveal-text-container, BaseLayout security-indicator, BaseLayout encryption-particles]. Input frame: BaseLayout 'border-2 border-amber-500 rounded-md p-4' containing text, color transitions to green via effect on borderColor. Lock icon: SVG or emoji with rotation animation when unlocking. Text layers: Two TextAtom layers - masked (shows dots '●' or asterisks) and actual text. Masked types in first, then fades out as real text fades in character-by-character. Font: 'JetBrains Mono:400:normal' or 'Fira Code:400:normal'. Security indicator: BaseLayout 'h-2 bg-gray-700 rounded-full overflow-hidden' with inner 'bg-amber-500→bg-green-500' that scaleX grows with each character. Encryption particles: Several small TextAtom with random characters positioned near text, rapid opacity flicker and position jitter during typing phase. Effects: Masked char appears opacity 0→1, 50ms per char. Reveal: masked char fades while real char fades in, 100ms stagger. Border color transition amber→green at reveal start. Lock rotates -15deg and icon swap. Timing: Masked typing 0-50%, pause 50-55%, reveal 55-90%, celebration/complete state 90-100%. Input params for masked character choice (dot, asterisk, custom). Caption data drives the actual text content to reveal."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c783448c2ef61-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 20:03:35 GMT',
'request-id': 'req_011CVatLM5kNtgi9u8eWy54m',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '22',
'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_011CVatLM5kNtgi9u8eWy54m"}',
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 #331

@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 - Distortion Glitch Transitions Sigma.js Network (Batch 6/8)

1 participant