Skip to content

add 30 presets from issue #312 - Double Exposure Overlay Blend Transitions (Batch 3/8)#336

Open
github-actions[bot] wants to merge 5 commits intomainfrom
presets/batch-312-1764359494169
Open

add 30 presets from issue #312 - Double Exposure Overlay Blend Transitions (Batch 3/8)#336
github-actions[bot] wants to merge 5 commits intomainfrom
presets/batch-312-1764359494169

Conversation

@github-actions
Copy link
Contributor

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

This PR was automatically generated from issue #312

✅ Generation Complete

Final Status: 4/30 presets successfully generated

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

🔴 Validation Failed

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

  • Double Exposure Screen Blend Transition - ⚠️ Requires manual fixes
    • Error: Forbidden external asset URL found - Assets must be uploaded through the platform
  • Multiply Burn-Through Transition - ⚠️ Requires manual fixes
    • Error: Forbidden external asset URL found - Assets must be uploaded through the platform

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

🔄 Retry Information

2 preset(s) required retries:

  • Double Exposure Screen Blend Transition - Succeeded after 1 retry
  • Multiply Burn-Through Transition - Succeeded after 1 retry

📦 Generated Presets (4)

1. Double Exposure Screen Blend Transition

ID: double-exposure-screen-blend-transition
Description: A cinematic double exposure transition preset that layers two images with screen and multiply blend modes. Features 1.5-second overlap with outgoing image using screen blend + brightness boost, incoming image using multiply blend fading in underneath. Smooth ease-in-out opacity transitions create a film-inspired mashup effect.
File: components/editor/presets/registry/generated/double-exposure-screen-blend-transition.ts
Status: 🔴 Validation Failed - Requires Manual Fixes

❌ Validation Errors:

  • Forbidden external asset URL found - Assets must be uploaded through the platform
  • TypeScript type errors:
    components/editor/presets/registry/generated/temp-double-exposure-screen-blend-transition-1764359749745.ts(50,6): error TS2339: Property 'min' does not exist on type 'ZodDefault'.

Original Prompt: Create a DOUBLE EXPOSURE SCREEN BLEND transition preset that layers two images with cinematic blend mode mixing. The transition uses a 1.5-second overlap where the outgoing image maintains full opacit...


2. Texture Overlay Crossfade Transition

ID: texture-overlay-crossfade
Description: Creates a gritty, textured mashup effect between YouTube images using a film grain/noise texture overlay, dynamic vignette, and grayscale effects at transition midpoint for an analog film aesthetic
File: components/editor/presets/registry/generated/texture-overlay-crossfade.ts
Status: ✅ Validated

Original Prompt: Build a TEXTURE OVERLAY CROSSFADE transition that creates a gritty, textured mashup effect between YouTube images. Use a film grain or noise texture as a third layer that persists throughout the trans...


3. Multiply Burn-Through Transition

ID: multiply-burn-through-transition
Description: Dramatic film burn effect transition between images. Outgoing image uses 'multiply' blend mode and 'burns away' with increasing brightness (1→2.5) and decreasing opacity over 1.8s. Incoming image emerges from beneath with 'screen' blend mode, starting overexposed (brightness: 1.8) and normalizing to 1.0. Includes warm orange/amber color overlay (15% opacity, 'color' blend mode) peaking at transition midpoint. Creates hot, energetic YouTube intro/outro aesthetic.
File: components/editor/presets/registry/generated/multiply-burn-through-transition.ts
Status: 🔴 Validation Failed - Requires Manual Fixes

❌ Validation Errors:

  • Forbidden external asset URL found - Assets must be uploaded through the platform

Original Prompt: Create a MULTIPLY BURN-THROUGH transition that simulates a dramatic film burn effect between images. The outgoing image uses 'multiply' blend mode and gradually 'burns away' with increasing brightness...


4. Screen Glow Dissolve Transition

ID: screen-glow-dissolve-transition
Description: Ethereal dreamy transition with screen blend mode, creating overexposed glowing intersection. Features dual-blur dissolve, gentle scale emergence, and white overlay pulse for heavenly aesthetics. Perfect for lifestyle/beauty YouTube content.
File: components/editor/presets/registry/generated/screen-glow-dissolve-transition.ts
Status: ✅ Validated

Original Prompt: Build a SCREEN GLOW DISSOLVE transition with ethereal, dreamy aesthetics for lifestyle/beauty YouTube content. Both images use 'screen' blend mode during the 2.2-second overlap, creating an overexpose...


❌ Failed Presets (26)

  1. Preset 5 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Create a DARKEN SHADOW MERGE transition for dramatic, moody YouTube content (gaming, thriller, dark aesthetics). The outgoing image uses 'darken' blend mode and transitions to near-black via decreasing brightness (1 to 0.3) over a 1.6-second overlap. The incoming image uses 'lighten' blend mode and emerges from the darkness, with brightness animating from 0.2 to 1.0. Add a color grading layer (dark blue/teal ImageAtom at z-index:25 with 'color' blend mode at 20% opacity) for cinematic color treatment. Include a subtle contrast boost (filter: contrast(1.1)) on both images during the overlap. The overall effect simulates shadows consuming one image as light reveals the next.

Technical Specifications:
BaseLayout: { containerProps: { className: 'absolute inset-0 bg-black' } }. ImageAtom outgoing: { id: 'shadow-out', style: { zIndex: 20, mixBlendMode: 'darken' } }. ImageAtom incoming: { id: 'shadow-in', style: { zIndex: 10, mixBlendMode: 'lighten' } }. ImageAtom color-grade: { id: 'teal-grade', src: 'solid-teal', style: { zIndex: 25, mixBlendMode: 'color', opacity: 0.2 } }. Effects outgoing: opacity [1,0.6,0] + brightness [1,0.5,0.3] + contrast [1,1.1,1.1]. Effects incoming: opacity [0,0.5,1] + brightness [0.2,0.6,1] + contrast [1.1,1.1,1]. Overlap: 1.6s. Container bg-black ensures true blacks."

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

  • Failed after 1 retry
  1. Preset 6 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Build an OVERLAY KALEIDOSCOPE MASHUP transition that creates a psychedelic, artistic blend between images. Use three layers during the 2.5-second overlap: outgoing image with 'overlay' blend mode, incoming image with 'hard-light' blend mode, and a mirrored/flipped copy of the incoming image with 'difference' blend mode at 30% opacity. The outgoing image rotates slightly (0 to 5deg) while scaling down (1 to 0.95) and fading out. The incoming image starts rotated (-5deg) and scales up (0.95 to 1) while fading in. The difference layer creates abstract color inversions during the transition peak. Perfect for music videos, art channels, or creative YouTube content.

Technical Specifications:
BaseLayout: { containerProps: { className: 'absolute inset-0 overflow-hidden' } }. ImageAtom outgoing: { id: 'kaleid-out', style: { zIndex: 20, mixBlendMode: 'overlay' } }. ImageAtom incoming: { id: 'kaleid-in', style: { zIndex: 10, mixBlendMode: 'hard-light' } }. ImageAtom difference: { id: 'kaleid-diff', style: { zIndex: 15, mixBlendMode: 'difference', transform: 'scaleX(-1)' } }. Effects outgoing: opacity [1,0.5,0] + rotate [0,2.5,5]deg + scale [1,0.97,0.95]. Effects incoming: opacity [0,0.6,1] + rotate [-5,-2.5,0]deg + scale [0.95,0.97,1]. Difference layer opacity: [0,0.3,0]. Overlap: 2.5s."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c6f6ae8ca7f9a-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:57:35 GMT',
'request-id': 'req_011CVasspML55Z3mTDVPmxNj',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '17',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVasspML55Z3mTDVPmxNj"}',
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 LUMINOSITY REVEAL transition that uses brightness and luminosity blend modes for clean, professional YouTube transitions. The outgoing image applies 'luminosity' blend mode and gradually desaturates (saturate 1 to 0) while fading out over 1.4-second overlap. The incoming image uses 'saturation' blend mode initially, transitioning to normal as it reaches full opacity, creating a color-revealing effect. Add a subtle white vignette that pulses once during the transition (opacity 0 to 0.1 to 0). The effect creates a sophisticated, broadcast-quality transition suitable for corporate or educational YouTube content. Use linear easing for the desaturation and ease-out for the color reveal.

Technical Specifications:
BaseLayout: { containerProps: { className: 'absolute inset-0' } }. ImageAtom outgoing: { id: 'lum-out', style: { zIndex: 20, mixBlendMode: 'luminosity' } }. ImageAtom incoming: { id: 'lum-in', style: { zIndex: 10 } }. ShapeAtom vignette: { type: 'ellipse', fill: 'radial-gradient(white, transparent)', style: { zIndex: 25 } }. Effects outgoing: opacity [1,0.7,0] + saturate [1,0.3,0]. Effects incoming: opacity [0,0.5,1] + saturate [0.5,0.8,1]. Vignette opacity: [0,0.1,0]. Overlap: 1.4s. Outgoing easing: linear, incoming easing: ease-out."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c6f6c38edd64d-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:57:36 GMT',
'request-id': 'req_011CVassqM7DgLwVTpkW71DC',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '95',
'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_011CVassqM7DgLwVTpkW71DC"}',
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 COLOR DODGE FLASH transition that creates an explosive, high-energy effect for action/sports YouTube content. The 1.2-second overlap is fast and impactful. The outgoing image uses 'color-dodge' blend mode with rapidly increasing brightness (1 to 3) creating a flash/overexposure effect. The incoming image uses 'color-burn' blend mode initially (creating deep contrast) then normalizes. Add a pure white flash frame at the exact midpoint (0.1s duration, 80% opacity) at z-index:30. Include a subtle shake effect on the incoming image (translateX oscillation: 0, 3px, -3px, 2px, 0) during the first 0.3s of its appearance. The overall effect simulates an action cut or impact moment.

Technical Specifications:
BaseLayout: { containerProps: { className: 'absolute inset-0 overflow-hidden' } }. ImageAtom outgoing: { id: 'dodge-out', style: { zIndex: 20, mixBlendMode: 'color-dodge' } }. ImageAtom incoming: { id: 'burn-in', style: { zIndex: 10 } }. ShapeAtom flash: { type: 'rect', fill: 'white', style: { zIndex: 30 } }. Effects outgoing: opacity [1,0.8,0] + brightness [1,2,3] over 1.2s. Effects incoming: opacity [0,0.7,1] + translateX [0,3,-3,2,0]px shake over first 0.3s. Flash opacity: [0,0,0.8,0,0] spike at 50% mark (0.1s duration). Overlap: 1.2s. Easing: ease-in for flash buildup."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c6f6b2d088251-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:57:35 GMT',
'request-id': 'req_011CVasspcD6jmKBhCgfwqj6',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '40',
'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_011CVasspcD6jmKBhCgfwqj6"}',
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" "Create a SOFT LIGHT CROSSFADE with vintage film aesthetics for nostalgic YouTube content (travel, memories, vlogs). Both images use 'soft-light' blend mode during the extended 3-second overlap for maximum exposure blending time. Apply a sepia-toned color overlay (ImageAtom with warm beige, 'color' blend mode, 15% opacity) that persists throughout. The outgoing image slowly desaturates (1 to 0.6) and slightly warm-shifts while fading. The incoming image starts cooler (hue-rotate: -10deg) and normalizes during reveal. Add subtle film grain texture overlay at 8% opacity with 'overlay' blend mode. Include a gentle vignette darkening at edges. The long overlap creates a dreamy, nostalgic memory-like transition.

Technical Specifications:
BaseLayout: { containerProps: { className: 'absolute inset-0' }, duration: 'media1 + media2 - 3s' }. ImageAtom outgoing: { id: 'vintage-out', style: { zIndex: 20, mixBlendMode: 'soft-light' } }. ImageAtom incoming: { id: 'vintage-in', style: { zIndex: 10, mixBlendMode: 'soft-light' } }. ImageAtom sepia: { id: 'sepia-tone', src: 'solid-beige', style: { zIndex: 25, mixBlendMode: 'color', opacity: 0.15 } }. ImageAtom grain: { id: 'film-grain', src: 'noise-texture', style: { zIndex: 26, mixBlendMode: 'overlay', opacity: 0.08 } }. Effects outgoing: opacity [1,0.6,0] + saturate [1,0.8,0.6] + sepia [0,0.1,0.2]. Effects incoming: opacity [0,0.5,1] + hue-rotate [-10,-5,0]deg. Overlap: 3s. Easing: ease-in-out."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c6f6d3a177f1b-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:57:36 GMT',
'request-id': 'req_011CVassqv6BhKU2YT2NQ7Bi',
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_011CVassqv6BhKU2YT2NQ7Bi"}',
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" "Build an EXCLUSION GLITCH MASHUP transition for edgy, modern YouTube content (tech, gaming, urban). The 1-second rapid overlap uses 'exclusion' blend mode on both images simultaneously, creating inverted color artifacts where they intersect. Add RGB split effect: three copies of each image offset by 2-4px in R, G, B channels using mix-blend-mode 'screen' at reduced opacity. During transition, apply rapid opacity flickers (1, 0.7, 1, 0.8, 1 pattern over 0.2s intervals) on the outgoing image simulating digital glitching. The incoming image has a brief horizontal slice displacement (clipPath animation revealing in bands). Include scanline overlay (repeating horizontal lines at 5% opacity). Creates a cyberpunk, digital corruption aesthetic.

Technical Specifications:
BaseLayout: { containerProps: { className: 'absolute inset-0 bg-black overflow-hidden' } }. ImageAtom outgoing: { id: 'glitch-out', style: { zIndex: 20, mixBlendMode: 'exclusion' } }. ImageAtom incoming: { id: 'glitch-in', style: { zIndex: 10, mixBlendMode: 'exclusion' } }. ImageAtom rgb-r: { id: 'rgb-red', style: { zIndex: 21, mixBlendMode: 'screen', opacity: 0.5, transform: 'translateX(3px)' } }. ImageAtom rgb-b: { id: 'rgb-blue', style: { zIndex: 21, mixBlendMode: 'screen', opacity: 0.5, transform: 'translateX(-3px)' } }. ShapeAtom scanlines: { type: 'rect', fill: 'repeating-linear-gradient', style: { zIndex: 30, opacity: 0.05 } }. Effects outgoing: opacity flicker [1,0.7,1,0.8,1,0] rapid pattern. Effects incoming: clipPath band reveal [inset(100% 0 0 0), inset(0)]. Overlap: 1s. Easing: steps(8) for glitch 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': '9a5c6f69fcced6e3-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:57:35 GMT',
'request-id': 'req_011CVassoi93KKWDJXgWGaFk',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '17',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVassoi93KKWDJXgWGaFk"}',
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 FILM REEL SPROCKET SLIP transition preset that simulates the classic look of a film projector changing frames. The transition should feature vertical scrolling movement where the outgoing media slides upward with subtle horizontal jitter while the incoming media enters from below. During the 800ms overlap period, apply a sprocket hole effect using dark rectangular shapes on the edges that scroll with the media. Add film grain texture overlay throughout the transition using a noise filter. The outgoing media should have translateY animation from 0% to -100% with slight random translateX jitter (±2-5px). The incoming media starts at translateY 100% and animates to 0%. Include opacity fade: outgoing fades from 1 to 0.3, incoming fades from 0.3 to 1. Apply a subtle sepia tone shift during transition for authentic analog warmth.

Technical Specifications:
BaseLayout container with 'relative w-full h-full overflow-hidden bg-black'. Duration = media1.duration + media2.duration - 0.8s overlap. Outgoing VideoAtom/ImageAtom with 'absolute inset-0' and z-index-10, effects: translateY [0%, -100%] over 0.8s with ease-in-out, translateX keyframes at [0%, 2%, -2%, 1%, 0%] for jitter, opacity [1, 0.3]. Incoming media with z-index-20, starts at relativeStart matching overlap, effects: translateY [100%, 0%], opacity [0.3, 1]. ShapeAtom rectangles positioned at left/right edges for sprocket holes with synchronized vertical scroll. Generic effects using provider mode with targetIds for each media atom. Film grain via CSS backdrop-filter or overlay ImageAtom with blend-mode multiply."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c70210f34d64d-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:58:05 GMT',
'request-id': 'req_011CVasuxvpiESs6q9P2HrB6',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '25',
'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_011CVasuxvpiESs6q9P2HrB6"}',
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" "Create a PROJECTOR FLUTTER transition preset that mimics the unstable frame presentation of an old film projector. The effect should show rapid vertical micro-movements simulating gate weave, combined with intermittent brightness flicker. During the 600ms transition overlap, both media items experience synchronized flutter - the outgoing media has increasing flutter amplitude while fading out, the incoming media starts with maximum flutter that settles as it fades in. Include 2-3 brief 'flash frames' (50ms white opacity spikes) during the transition to simulate projector lamp flicker. Add horizontal frame slip where the image occasionally shifts 5-10px left or right before snapping back.

Technical Specifications:
BaseLayout duration = media1.duration + media2.duration - 0.6s. Container: 'relative w-full h-full bg-neutral-900'. Outgoing media effects: translateY oscillation using keyframes [0, -3px, 2px, -4px, 3px, 0] looped at 50ms intervals, opacity [1, 0] over overlap. Incoming media: translateY [0, 4px, -3px, 5px, -2px, 0] settling pattern, opacity [0, 1]. Flash frames via ShapeAtom with 'absolute inset-0 bg-white' and opacity keyframes [0, 0.9, 0] at specific points during overlap. TranslateX jitter effect [0, 8px, -5px, 0] applied to both. Provider mode effects targeting individual media atom IDs. Easing: steps(1) for flutter, linear for opacity."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c701f991c7f9a-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:58:04 GMT',
'request-id': 'req_011CVasux1m7797gNKTFLvuS',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '26',
'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_011CVasux1m7797gNKTFLvuS"}',
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 an ANALOG GRAIN DISSOLVE transition preset that uses heavy film grain texture as the primary transition medium. Instead of a simple crossfade, the grain intensity increases dramatically during the transition, effectively 'consuming' the outgoing image before revealing the incoming one. During the 1000ms overlap, apply animated noise/grain filter that peaks at 50% through the transition. The outgoing media should have grain intensity ramping from 10% to 80% while fading to 0.2 opacity. The incoming media grain starts at 80% and reduces to 10% as opacity increases to 1. Include subtle color channel separation (chromatic aberration) that intensifies with the grain.

Technical Specifications:
BaseLayout with 'relative w-full h-full' and duration = sum - 1.0s overlap. Grain effect via CSS filter with contrast and brightness manipulation, or grain overlay ImageAtom with animated opacity. Outgoing media: filter keyframes for grayscale [0%, 20%], contrast [1, 1.2], brightness [1, 0.9], opacity [1, 0.2]. Incoming media inverse pattern. Chromatic aberration simulated via slight translateX offset on color-filtered duplicates or CSS filter hue-rotate variations. Provider mode targeting both media atoms. Optional: pseudo-element overlay with noise SVG filter animated via opacity. Use mix-blend-mode: overlay for grain texture blending."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c701f5a0ed6e3-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:58:04 GMT',
'request-id': 'req_011CVasuwnsDW6YXgArVRieG',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '229',
'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_011CVasuwnsDW6YXgArVRieG"}',
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" "Create a VERTICAL FRAME SCROLL transition preset inspired by manually advancing a film reel. The transition shows a deliberate vertical scroll where the outgoing frame slides up and out while the incoming frame enters from below, with visible 'frame lines' (horizontal black bars) passing through during the scroll. The 700ms transition should have a mechanical, non-smooth quality using stepped easing. Include slight horizontal instability during the scroll movement. Add brief black frames between content to simulate inter-frame gaps on physical film.

Technical Specifications:
BaseLayout duration = media1.duration + media2.duration - 0.7s, container: 'relative w-full h-full overflow-hidden bg-black'. Outgoing media: translateY animation [0%, -110%] with steps(8) easing for mechanical feel, plus translateX [0, 3px, -2px, 0] jitter. Incoming media: translateY [110%, 0%] synchronized. Frame line ShapeAtoms: 3-4 horizontal bars (h-2 bg-black) positioned at regular intervals, scrolling with media. Inter-frame gap: 80ms pure black achieved via opacity [1, 0, 0, 1] keyframe pattern with holds. Both media atoms use absolute positioning with z-index layering. Effects use provider mode with sequential targetIds."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c70210ea17f1b-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:58:05 GMT',
'request-id': 'req_011CVasuxxop8KxqhoXN3nUS',
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_011CVasuxxop8KxqhoXN3nUS"}',
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 GATE WEAVE JITTER transition preset that emphasizes the horizontal and vertical instability of old film projection. Throughout the 900ms transition, both media items experience continuous random positional jitter that represents film not sitting properly in the projector gate. The outgoing media has increasing jitter amplitude as it fades out, while incoming media jitter decreases as it stabilizes. Combine with subtle rotation wobble (±0.5 degrees) and intermittent focus blur pulses. The effect should feel organic and mechanical rather than digital.

Technical Specifications:
BaseLayout container 'relative w-full h-full' with overflow-hidden. Duration calculation: sum minus 0.9s overlap. Outgoing media effects: translateX keyframes [0, 4px, -6px, 3px, -5px, 7px, -4px, 0] over 900ms, translateY similar pattern, rotate [0deg, 0.3deg, -0.5deg, 0.2deg, 0deg], blur keyframes [0px, 2px, 0px, 3px, 1px] for focus pulse, opacity [1, 0]. Incoming media: inverse jitter pattern starting large and settling, opacity [0, 1]. Use cubic-bezier easing for organic movement. Provider mode effects. Consider using CSS will-change: transform for performance. Randomize keyframe values slightly between X and Y for natural 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': '9a5c70204f018251-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:58:04 GMT',
'request-id': 'req_011CVasuxVXq5V7YHNzzfNnJ',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '72',
'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_011CVasuxVXq5V7YHNzzfNnJ"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 16 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Create a SPROCKET TEAR transition preset that simulates film catching and tearing at sprocket holes during a reel change. The transition features the outgoing media appearing to catch at one edge, creating a diagonal tear/slip effect before the incoming media takes over. During the 750ms overlap, the outgoing media skews and tears diagonally while becoming distorted. The incoming media slides in from the opposite corner. Include visual artifacts like vertical scratch lines and brief white flash frames representing damaged film sections.

Technical Specifications:
BaseLayout with 'relative w-full h-full overflow-hidden bg-black', duration = sum - 0.75s. Outgoing media effects: skewY [0deg, 8deg], skewX [0deg, -5deg], translateY [0%, -60%], translateX [0%, 30%], opacity [1, 0]. Clip-path animation to create tear edge: polygon transitioning from full frame to diagonal slice. Incoming media: enters from bottom-right with translateY [80%, 0%], translateX [40%, 0%], opacity [0, 1]. Scratch overlay: thin vertical ShapeAtoms (w-px bg-white/50) with rapid vertical translate animation. Flash frame: 40ms white overlay at tear moment. Provider mode targeting all elements with synchronized 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': '9a5c70d60e947f9a-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:58:33 GMT',
'request-id': 'req_011CVasx6mfcnauWEBnBAWTy',
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_011CVasx6mfcnauWEBnBAWTy"}',
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 REEL CHANGEOVER transition preset that mimics the classic 'cigarette burn' cue mark transition used in film projection. The transition begins with a small circular mark appearing in the upper right corner 500ms before the actual transition, signaling the upcoming change. The main 600ms transition features a quick flash, brief horizontal instability, then a hard cut with subtle settling jitter on the incoming media. This creates an authentic theatrical film changeover experience.

Technical Specifications:
BaseLayout duration = media1.duration + media2.duration - 0.6s overlap. Cue mark: ShapeAtom circle (w-4 h-4 rounded-full bg-white) positioned 'absolute top-4 right-4', opacity animation [0, 1, 1, 0] appearing 500ms before transition end of first media. Transition flash: ShapeAtom 'absolute inset-0 bg-white' with opacity [0, 0.8, 0] over 100ms at transition midpoint. Outgoing media: opacity [1, 0] over 150ms, translateX jitter [0, 10px, -8px, 0]. Incoming media: opacity [0, 1] quick fade, then settling translateY [0, -3px, 2px, -1px, 0] over 400ms post-transition. Provider mode with precise timing offsets for each element."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c70d74cb1d64d-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:58:34 GMT',
'request-id': 'req_011CVasx7eFVEM1P5uBZLDye',
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_011CVasx7eFVEM1P5uBZLDye"}',
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" "Create a FILM BURN transition preset that simulates celluloid film overheating and burning during projection. The transition shows the outgoing media developing a growing bright spot that expands and consumes the frame with warm orange/white coloring, before revealing the incoming media beneath. During the 1200ms overlap, apply radial gradient mask that expands from center, combined with color temperature shift toward warm tones and increasing brightness/contrast on the burn area. The incoming media is revealed as the burn 'hole' expands.

Technical Specifications:
BaseLayout 'relative w-full h-full bg-black' with duration = sum - 1.2s. Outgoing media: brightness filter [1, 2, 3] ramping up, saturate [1, 1.5], hue-rotate toward warm [0deg, 30deg]. Radial mask using clip-path: circle() animating from circle(0% at 50% 50%) to circle(100%). Burn edge glow: ShapeAtom with radial-gradient from transparent to orange to white, scale animation [0.1, 2]. Incoming media positioned below (z-index lower), revealed as mask expands, with subtle contrast boost [1, 1.1] for punch. Provider mode targeting outgoing for burn effects, incoming for reveal timing. Optional: particle-like ShapeAtoms for ember/ash debris floating upward."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c70d6cb768251-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:58:34 GMT',
'request-id': 'req_011CVasx7KQZXRjbgy3g7BGy',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '69',
'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_011CVasx7KQZXRjbgy3g7BGy"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 19 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Create a DOUBLE EXPOSURE FLUTTER transition preset that combines the dreamy overlap of double exposure photography with projector instability. During the extended 1500ms transition, both media items are fully visible simultaneously with varying opacity levels that pulse and flutter. Apply different blend modes to create ethereal combination effects. Include vertical drift where both images slowly move in opposite directions, combined with subtle focus breathing (blur oscillation). The effect should feel like a vintage optical effect rather than digital compositing.

Technical Specifications:
BaseLayout duration = sum - 1.5s overlap, container 'relative w-full h-full'. Outgoing media: opacity oscillation [0.8, 0.5, 0.7, 0.4, 0.2] with organic timing, translateY [0%, -15%] slow drift, blur [0px, 1px, 0px, 2px, 1px] breathing, mix-blend-mode: screen. Incoming media: opacity [0.3, 0.6, 0.4, 0.7, 1] inverse pattern, translateY [15%, 0%] opposite drift, blur breathing offset, mix-blend-mode: multiply or overlay. Both use absolute positioning with equal z-index for true blend. Provider mode with interleaved keyframe timing. Color grade shift: sepia [0%, 15%] during peak overlap. Easing: sine curves for breathing 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': '9a5c70d938b97f1b-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:58:34 GMT',
'request-id': 'req_011CVasx8w9GbffUoKgQTBaB',
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_011CVasx8w9GbffUoKgQTBaB"}',
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" "Create a COUNTDOWN LEADER transition preset that mimics classic film countdown leaders before a movie starts. The transition replaces the standard overlap with a brief countdown sequence (numbers 3, 2, 1) followed by alignment marks and then the incoming media. The outgoing media fades to black, then the countdown appears with characteristic circular sweep animation around each number, followed by quick flash frames and film grain before the incoming media appears. Total transition time 2000ms including countdown.

Technical Specifications:
BaseLayout duration = media1.duration + media2.duration - 2.0s (extended transition). Outgoing media: opacity [1, 0] over 300ms. Countdown numbers: TextAtom or ShapeAtom styled numbers '3', '2', '1' appearing sequentially, each for 400ms, with circular progress ring ShapeAtom animating around them (border animation or conic-gradient rotation). Alignment cross: ShapeAtom '+' shape flashing at 100ms intervals. Flash frames: white ShapeAtom opacity pulses. Film grain overlay during countdown. Incoming media: opacity [0, 1] quick snap after countdown, with subtle scale [1.02, 1] settle. All elements use absolute centering. Provider mode with precise sequential timing. Font: monospace bold for authentic look."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c70d57c52d6e3-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:58:33 GMT',
'request-id': 'req_011CVasx6Ms75xwPpzub9ae9',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '35',
'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_011CVasx6Ms75xwPpzub9ae9"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 21 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Create a Vintage Film Strip Vertical Scroll Transition preset that simulates a classic movie reel scrolling vertically between YouTube images. The transition features sprocket holes (black rectangles) on both sides of the frame that scroll upward during the transition. Structure: Single BaseLayout container with duration = media1.duration + media2.duration - overlapDuration (recommend 0.8s overlap). Layer the outgoing image at z-index 10, incoming image at z-index 20, and a film strip overlay (using ShapeAtoms for sprocket holes) at z-index 30. During the overlap period: outgoing image translates from 0% to -100% on Y-axis while fading from opacity 1 to 0.3; incoming image translates from 100% to 0% on Y-axis while fading from opacity 0.5 to 1. Add a subtle vertical motion blur effect using filter blur that peaks at 2px mid-transition. Include analog film grain overlay using a semi-transparent noise texture ImageAtom at z-index 25 with blend-mode multiply. Apply a slight sepia filter (sepia: 0.2) throughout the transition for that analog warmth. Use 'absolute inset-0' positioning for all media atoms with object-fit cover.

Technical Specifications:
BaseLayout: containerProps={{ className: 'absolute inset-0 overflow-hidden bg-black' }}, fitDurationTo: 'scenes'. Outgoing ImageAtom: className='absolute inset-0 object-cover', startAt=0, endAt=media1.duration. Incoming ImageAtom: className='absolute inset-0 object-cover', startAt=media1.duration - overlapDuration, endAt=totalDuration. Sprocket overlay: 8 ShapeAtoms (rectangles 20x30px) positioned at left:5% and right:5%, animated translateY from 0 to -200px during transition. Generic effects with provider mode targeting outgoing: [{prop: 'translateY', from: '0%', to: '-100%'}, {prop: 'opacity', from: 1, to: 0.3}]. Incoming effects: [{prop: 'translateY', from: '100%', to: '0%'}, {prop: 'opacity', from: 0.5, to: 1}]. Grain overlay: blend-mode: 'overlay', opacity: 0.15."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c718d6b0e7f9a-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:59:03 GMT',
'request-id': 'req_011CVaszGD1BzS83eWmZpReD',
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_011CVaszGD1BzS83eWmZpReD"}',
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" "Create a Rapid Film Reel Whip Transition preset with aggressive vertical sliding that mimics a film projector rapidly advancing frames. This is a fast, punchy transition (0.4s overlap) designed for high-energy YouTube content. The outgoing image snaps upward with an aggressive ease-out curve while the incoming image whips in from below with ease-in-out. Add horizontal sprocket perforation marks as thin black bars that streak across the frame during the transition. Include a brief flash of white (0.05s) at the transition midpoint to simulate the projector light between frames. Apply heavy analog grain that intensifies during the transition (opacity 0.1 to 0.4 to 0.1). The entire transition should feel like flipping through physical film frames at high speed. Use a slight chromatic aberration effect (offset red/blue channels) during peak motion. BaseLayout contains both images absolutely positioned with the incoming image layered above.

Technical Specifications:
BaseLayout: duration = media1.duration + media2.duration - 0.4s, containerProps={{ className: 'absolute inset-0 bg-black overflow-hidden' }}. Outgoing ImageAtom: z-index: 10, effects: [{prop: 'translateY', from: '0%', to: '-120%', easing: 'easeOut'}] during overlap. Incoming ImageAtom: z-index: 20, startAt relative to overlap start, effects: [{prop: 'translateY', from: '120%', to: '0%', easing: 'easeInOut'}]. White flash: ShapeAtom rectangle fill='white' at z-index: 50, opacity animation [0, 1, 0] over 0.05s at midpoint. Sprocket bars: 4 ShapeAtoms, height: 4px, width: 100%, translateY animation with staggered starts. Chromatic aberration: Apply filter with hue-rotate shifts on duplicate layers. Grain ImageAtom: blend-mode: 'overlay', opacity keyframes [0.1, 0.4, 0.1]."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c718dab227f1b-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:59:03 GMT',
'request-id': 'req_011CVaszGMgUpDRAus3iUdpQ',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '8',
'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_011CVaszGMgUpDRAus3iUdpQ"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 23 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Create a Cinematic Film Gate Slide Transition preset that emulates the mechanical movement of a film gate sliding vertically between frames. This transition (0.6s overlap) features visible film frame borders - black bars at top and bottom that briefly expand during the transition like the unexposed area between frames. The outgoing image slides up smoothly while the incoming image follows from below with a slight 0.1s delay for a staggered mechanical feel. Include authentic sprocket holes as rounded rectangles on the left edge that scroll with the film motion. Apply a warm color grade (slight orange tint, increased contrast) and heavy film grain throughout. Add subtle horizontal scratches that animate vertically during transition to simulate aged film stock. The motion should use a custom cubic-bezier curve that mimics mechanical movement with slight acceleration.

Technical Specifications:
BaseLayout: containerProps={{ className: 'absolute inset-0 bg-neutral-900' }}, duration calculation: media1.duration + media2.duration - 0.6s. Film borders: Two ShapeAtoms (top/bottom), height animates from 0 to 40px to 0 during transition. Outgoing ImageAtom: className='absolute inset-x-0 inset-y-[40px] object-cover', translateY: ['0%', '-100%'] with easing: 'cubic-bezier(0.4, 0, 0.6, 1)'. Incoming ImageAtom: startAt delayed by 0.1s from overlap start, translateY: ['100%', '0%']. Sprocket holes: 6 ShapeAtoms with borderRadius: 4px, size 16x24px, positioned left: 8px, translateY synced with image motion. Grain overlay: ImageAtom with noise texture, blend-mode: 'multiply', opacity: 0.2. Scratch overlay: Thin vertical lines with translateY animation. Color grade: filter: 'sepia(0.15) contrast(1.1) saturate(1.05)'."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c718bca8cd6e3-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:59:03 GMT',
'request-id': 'req_011CVaszF634LYzxYAB5B76c',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '71',
'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_011CVaszF634LYzxYAB5B76c"}',
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 Analog Projector Stutter Transition preset that simulates an old film projector with slight stuttering motion as it advances between frames. The transition (0.7s overlap) features a jerky, stepped animation rather than smooth interpolation - mimicking the mechanical imperfection of vintage projectors. The outgoing image moves up in 3-4 discrete steps while shaking slightly, and the incoming image enters from below with matching stutter. Add visible light flicker (rapid opacity oscillation between 0.9 and 1.0) throughout the transition. Include a dark vignette overlay that pulses subtly. Heavy analog grain with visible noise particles, slight image blur during movement phases, and warm tungsten color temperature. The sprocket holes should be clearly visible on both sides, moving in sync with the stepped animation.

Technical Specifications:
BaseLayout: duration = media1.duration + media2.duration - 0.7s, containerProps={{ className: 'absolute inset-0 bg-black' }}. Stepped animation using keyframes at 0%, 25%, 50%, 75%, 100% with discrete values rather than interpolated. Outgoing ImageAtom effects: [{prop: 'translateY', keyframes: [{offset: 0, value: '0%'}, {offset: 0.33, value: '-33%'}, {offset: 0.66, value: '-66%'}, {offset: 1, value: '-100%'}]}]. Add shake effect: translateX oscillating ±3px during each step. Light flicker: ShapeAtom white overlay at z-index: 40, opacity: [0.9, 1, 0.85, 1, 0.9] rapid cycle. Vignette: Radial gradient ShapeAtom, opacity pulsing 0.4-0.6. Grain: High-frequency noise overlay, blend-mode: 'soft-light', opacity: 0.25. Color temperature: filter: 'sepia(0.1) brightness(0.95) saturate(0.9)'."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c718dac0dd64d-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:59:03 GMT',
'request-id': 'req_011CVaszGNB7zCBSWKnuieVK',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '35',
'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_011CVaszGNB7zCBSWKnuieVK"}',
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" "Create a Film Strip Frame Skip Transition preset that simulates skipping through multiple film frames rapidly, showing brief glimpses of 'in-between' frames. The transition (0.5s overlap) shows the outgoing image, then 2-3 flash frames (solid colors or abstract shapes representing blank film), then the incoming image - all scrolling vertically at high speed. This creates an energetic, MTV-style jump cut feel perfect for dynamic YouTube content. Each frame is separated by thin black horizontal lines representing frame boundaries. Add aggressive motion blur in the direction of travel, intense film grain, and slight image degradation (reduced saturation, slight noise) during the transition. The timing should be punchy with strong easing.

Technical Specifications:
BaseLayout: containerProps={{ className: 'absolute inset-0 bg-black overflow-hidden' }}, duration = media1.duration + media2.duration - 0.5s. Outgoing ImageAtom: translateY animation to -100% over first 0.15s of overlap. Flash frames: 2-3 ShapeAtoms with solid fills (#1a1a1a, #0d0d0d), each visible for 0.05s, staggered. Incoming ImageAtom: translateY from 100% to 0%, starting at 0.25s into overlap. Frame boundaries: ShapeAtoms, height: 3px, fill: black, animated with content. Motion blur: filter blur-y increasing to 4px during movement, returning to 0 at rest. All effects use provider mode with targetIds. Grain overlay: blend-mode: 'overlay', opacity peaks at 0.35 during transition. Image degradation: filter: 'saturate(0.7) contrast(1.1)' during movement phase only."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c718d6d168251-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:59:03 GMT',
'request-id': 'req_011CVaszGDW1WSkeocjvkb5B',
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_011CVaszGDW1WSkeocjvkb5B"}',
isRetryable: false,
data: {
type: 'error',
error: {
type: 'invalid_request_error',
message: 'Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits.'
}
},
[Symbol(vercel.ai.error)]: true,
[Symbol(vercel.ai.error.AI_APICallError)]: true
}

  • Failed after 1 retry
  1. Preset 26 - Command failed: npx tsx "/home/runner/work/mediamake/mediamake/apps/mediamake/scripts/generate-preset.ts" "Create a Vintage Newsreel Vertical Wipe Transition preset inspired by old newsreel footage with characteristic imperfections. The transition (0.9s overlap) features a slower, more deliberate vertical scroll that evokes documentary film from the mid-20th century. The outgoing image slides up while a visible 'film leader' element (countdown-style graphics or abstract patterns) briefly appears between images before the incoming image arrives. Include heavy scratches, dust particles (small animated dots), and uneven exposure flickering. The sprocket holes are prominently visible and slightly damaged/irregular. Add a black-and-white or sepia color treatment with crushed blacks and blown-out highlights. The motion uses gentle easing for a more nostalgic, less frenetic feel.

Technical Specifications:
BaseLayout: duration = media1.duration + media2.duration - 0.9s, containerProps={{ className: 'absolute inset-0 bg-neutral-950' }}. Outgoing ImageAtom: translateY to -100% with easing: 'easeInOut' over 0.45s. Film leader: ShapeAtom sequence with circular countdown graphic or abstract lines, visible 0.2s-0.7s into overlap, z-index: 25. Incoming ImageAtom: startAt 0.45s into overlap, translateY from 100% to 0%. Scratches: 3-5 thin vertical line ShapeAtoms with random horizontal positions, full height, opacity flickering. Dust particles: 8-12 small circle ShapeAtoms (2-4px), random positions, random motion paths. Exposure flicker: Global opacity oscillation 0.85-1.0 at irregular intervals. Sprocket holes: Irregular shapes with slight position variation. Color treatment: filter: 'grayscale(0.8) sepia(0.3) contrast(1.15) brightness(0.95)'."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c72408bcc8251-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:59:31 GMT',
'request-id': 'req_011CVat2NjTx949eDjpwy6fo',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '29',
'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_011CVat2NjTx949eDjpwy6fo"}',
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 Super 8 Film Reel Burn Transition preset that combines vertical scrolling with film burn effects at the transition edges. The transition (0.65s overlap) simulates damaged Super 8 footage where the film briefly catches in the projector gate, causing edge burning and color distortion. The outgoing image slides up normally but develops orange/red burn marks along its bottom edge as it exits. The incoming image enters from below with similar burn effects on its top edge that heal as it settles into position. Heavy grain, color bleeding (chromatic fringing), and flickering light leaks enhance the vintage aesthetic. Sprocket holes are visible but partially obscured by the burn effects.

Technical Specifications:
BaseLayout: containerProps={{ className: 'absolute inset-0 bg-black' }}, duration = media1.duration + media2.duration - 0.65s. Outgoing ImageAtom: translateY to -100%, z-index: 10. Film burn overlay: Gradient ShapeAtom positioned at bottom of outgoing image, orange-to-transparent gradient, opacity animating from 0 to 0.8 during exit. Incoming ImageAtom: translateY from 100% to 0%, z-index: 20. Top burn effect: Similar gradient at top of incoming image, opacity 0.6 to 0 as image settles. Color bleeding: Duplicate image layers with slight offset and hue-rotate for RGB separation. Light leaks: 2-3 ShapeAtoms with radial gradients (warm colors), opacity pulsing, z-index: 35. Grain: Very heavy, blend-mode: 'overlay', opacity: 0.3. Master filter: 'saturate(1.2) contrast(0.95) brightness(1.05)'."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c724288b27f1b-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:59:32 GMT',
'request-id': 'req_011CVat2Q5pvw6DCp1Xv8KMM',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '20',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVat2Q5pvw6DCp1Xv8KMM"}',
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" "Create a 35mm Film Perforation Scroll Transition preset with authentic 35mm film aesthetics including precise sprocket hole dimensions and positioning. The transition (0.75s overlap) features both images contained within a visible film strip frame, complete with the characteristic 4 perforations per frame on each side. The entire film strip assembly scrolls vertically, revealing the incoming frame as the outgoing frame exits. The background shows the sprocket area in matte black. Add subtle gate weave (slight horizontal wobble), authentic grain matching 35mm stock, and accurate color reproduction with slight color timing variations between frames. This creates a premium, cinematic feel for high-end YouTube content.

Technical Specifications:
BaseLayout: containerProps={{ className: 'absolute inset-0 bg-black' }}, duration = media1.duration + media2.duration - 0.75s. Film strip container: Nested BaseLayout with padding for sprocket areas (left/right: 48px). Images sized to fill frame area between perforations. Perforation ShapeAtoms: 4 per frame side, size: 2.8mm x 1.98mm (scaled proportionally), borderRadius: 1px, positioned at standard 4.75mm pitch. Gate weave: Global translateX oscillation ±1px with irregular timing. Both images: translateY synchronized scroll, outgoing from 0 to -100%, incoming from 100% to 0%. Inter-frame gap: 2px black bar between frames visible during transition. Grain: 35mm-appropriate fine grain, blend-mode: 'multiply', opacity: 0.12. Color timing: Slight per-frame filter variations (brightness ±2%, saturation ±3%)."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c723e5978d6e3-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:59:31 GMT',
'request-id': 'req_011CVat2MFfmQAiAuH268pvp',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '26',
'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_011CVat2MFfmQAiAuH268pvp"}',
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 VHS Tracking Glitch Vertical Transition preset that combines film reel scrolling with VHS-era tracking errors. The transition (0.55s overlap) features vertical scrolling motion interrupted by horizontal tracking distortion lines that tear across the image during the transition peak. The outgoing image scrolls up with increasing RGB separation and horizontal wobble, while the incoming image enters with similar distortion that cleans up as it settles. Add scan lines, color bleeding, static noise bursts, and the characteristic warm/muddy VHS color palette. Sprocket holes are replaced with tracking bar artifacts at the top and bottom of the frame. This hybrid analog aesthetic appeals to nostalgia-driven YouTube audiences.

Technical Specifications:
BaseLayout: containerProps={{ className: 'absolute inset-0 bg-black' }}, duration = media1.duration + media2.duration - 0.55s. Outgoing ImageAtom: translateY to -100%, with increasing RGB offset (3 layers with translateX offset ±3px, blend-modes for color channels). Tracking glitches: 4-6 horizontal slice ShapeAtoms that momentarily offset horizontally during transition, random widths 50-200px, height 8-20px. Horizontal wobble: translateX oscillation ±8px at peak transition. Scan lines: Repeating horizontal line pattern overlay, opacity: 0.15. Static bursts: White noise ShapeAtom, opacity spikes to 0.4 at random intervals. Tracking bars: ShapeAtoms at top/bottom, height: 30px, horizontal noise pattern. Color palette: filter: 'saturate(0.85) contrast(0.9) brightness(1.05) hue-rotate(-5deg)'. Blur: 1px during movement phases."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c7241aea3d64d-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:59:32 GMT',
'request-id': 'req_011CVat2PVrQiRys9zAJ7agX',
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_011CVat2PVrQiRys9zAJ7agX"}',
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" "Create a IMAX Film Reel Dramatic Scroll Transition preset with large-format film aesthetics and dramatic timing. The transition (1.0s overlap) features slow, deliberate vertical scrolling that emphasizes the grand scale of IMAX footage. The images fill the entire frame edge-to-edge with no visible sprocket areas (simulating IMAX's full-frame exposure). Add subtle film weave, ultra-fine grain appropriate for large-format stock, and rich color reproduction with enhanced dynamic range. The transition includes a brief moment of 'blackout' between frames (0.15s of near-black) to simulate the shutter timing of IMAX projectors. Motion is smooth and controlled with gentle easing, creating a premium, theatrical feel for cinematic YouTube content.

Technical Specifications:
BaseLayout: containerProps={{ className: 'absolute inset-0 bg-neutral-950' }}, duration = media1.duration + media2.duration - 1.0s. Outgoing ImageAtom: translateY to -100% with easing: 'easeInOut', filter brightness drops to 0.3 in final 0.15s. Incoming ImageAtom: starts at 0.15s into overlap (after blackout begins), translateY from 100% to 0%, brightness animates from 0.3 to 1.0 in first 0.15s. Blackout overlay: ShapeAtom at z-index: 30, opacity keyframes [0, 0.85, 0.85, 0] over 0.15s-0.35s of overlap. Film weave: Subtle translateX ±0.5px oscillation throughout. Ultra-fine grain: Low-intensity noise, blend-mode: 'overlay', opacity: 0.06. Color reproduction: filter: 'contrast(1.08) saturate(1.05)'. Smooth 60fps-ready animation curves."

═══════════════════════════════════════════════════════════════
❌ 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': '9a5c723e9b297f9a-IAD',
connection: 'keep-alive',
'content-length': '234',
'content-type': 'application/json',
date: 'Fri, 28 Nov 2025 19:59:31 GMT',
'request-id': 'req_011CVat2MRqfUikq4geVkNQz',
server: 'cloudflare',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'x-envoy-upstream-service-time': '82',
'x-robots-tag': 'none',
'x-should-retry': 'false'
},
responseBody: '{"type":"error","error":{"type":"invalid_request_error","message":"Your credit balance is too low to access the Anthropic API. Please go to Plans & Billing to upgrade or purchase credits."},"request_id":"req_011CVat2MRqfUikq4geVkNQz"}',
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 #312

@vercel
Copy link

vercel bot commented Nov 28, 2025

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

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

@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 - Double Exposure Overlay Blend Transitions (Batch 3/8)

0 participants