ta
TanStack
GitHub
ai
Workspace
GitHub
CI Pipeline Executions
Filtered
Runs
Demo
Insights
Compare tasks
Analytics
Sign in
Toggle sidebar
Overview
⌘K
ai
Loading workspace stats
Loading workspace insights...
Statistics interval
7 days
30 days
Latest CI Pipeline Executions
Status
Fix filter
Filter
Fuzzy
Filter range
Sort by
Sort by
Start time
Sort ascending
Sort descending
Succeeded
707-featai-openrouter-video-generation-adapter-apiv1videos-+-image-activity-follow-ups
8ad6eeb0 docs(ai-openrouter): correct stale SDK version in getVideoContent bypass comment Live-verified against @openrouter/sdk 0.12.79: getVideoContent still rejects the real 'video/mp4' response ('Unexpected Status or Content-Type') even though the body is a valid MP4, so the manual authenticated download (and its injectable fetch seam) stays. Only the comment's stale 0.12.35 reference was wrong. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
by Tom Beckenham
T
Succeeded
707-featai-openrouter-video-generation-adapter-apiv1videos-+-image-activity-follow-ups
8ad6eeb0 Merge e813487345fdd01294a2b5d903477da09dab92d4 into c9175ed97f68fdaa604ff29a8b12c200804057ad
by Tom Beckenham
T
Succeeded
707-featai-openrouter-video-generation-adapter-apiv1videos-+-image-activity-follow-ups
4118772e fix(docs): make OpenRouter duration snippet self-contained for kiira doc type-check The new kiira doc-typecheck (#805) type-checks fenced TS samples. The OpenRouter snapDuration snippet referenced generateVideo/openRouterVideo/sliderSeconds without imports or a declaration; add them so the snippet type-checks standalone. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
by Tom Beckenham
T
Succeeded
707-featai-openrouter-video-generation-adapter-apiv1videos-+-image-activity-follow-ups
4118772e Merge fc9f720af9ab34bbc5a2dfe94480dedcf22639ee into c9175ed97f68fdaa604ff29a8b12c200804057ad
by Tom Beckenham
T
Succeeded
707-featai-openrouter-video-generation-adapter-apiv1videos-+-image-activity-follow-ups
8f3f371f Merge e55fac2458e54d181db5f29e7b32002a7ac34778 into 614576cb605ebeb1107ee8da409e27dd2e6b256a
by Tom Beckenham
T
Succeeded
707-featai-openrouter-video-generation-adapter-apiv1videos-+-image-activity-follow-ups
8f3f371f feat(examples): OpenRouter video in ts-react-media + fix generateVideo typed-duration constraint ts-react-media now demos openRouterVideo alongside fal: - add @tanstack/ai-openrouter dep - Seedance 2.0 (text-to-video) and Veo 3.1 (image-to-video) model entries - switch cases showcasing adapter.snapDuration() to coerce raw UI seconds to the model's nearest supported duration (Seedance 7→7, Veo 3.1 7→6) - videoAdapterForModel() resolver routes the poll/status path to the right adapter (the helpers were hardcoded to falVideo) Building the example surfaced a pre-existing bug in the #624 typed-duration contract: generateVideo()'s `TAdapter extends VideoAdapter<string, any, any, any>` bound let the sixth (duration) generic fall back to its `Record<string, number>` default. Because VideoAdapter.createVideoJob is a contravariant function-valued property, no adapter whose `duration` is a per-model literal union (Veo `4|6|8`, Seedance `4..15`) satisfied the bound — so even the documented `generateVideo({ adapter: geminiVideo('veo-3.1-...') })` failed to type-check. Widen the bound to leave size/duration unpinned at all 10 activity sites; per-model types are still recovered via inference (VideoSizeForAdapter / VideoDurationForAdapter). Adds a compile-only regression test and an @tanstack/ai changeset. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
by Tom Beckenham
T
Succeeded
707-featai-openrouter-video-generation-adapter-apiv1videos-+-image-activity-follow-ups
b6ea120b feat(ai-openrouter): typed per-model durations for video adapter Wire openRouterVideo onto the shared typed-duration contract (the same one geminiVideo uses): add the sixth BaseVideoAdapter generic (OpenRouterVideoModelDurationByName), narrow `duration` per model from the published `/api/v1/videos/models` metadata, and override availableDurations() / snapDuration() (backed by snapToDurationOption). `duration` is now a compile-time per-model union; the runtime validateVideoDuration backstop stays for JS callers and unknown-meta models. - video-provider-options.ts: OpenRouterVideoModelDurationByName + getVideoDurationOptions (discrete from meta, none when unknown/empty) - adapter: 6th generic, createVideoJob narrowed to per-model size/duration, availableDurations()/snapDuration() overrides - export OpenRouterVideoModelDurationByName from index - tests: 4 introspection cases; existing negative size/duration tests now use @ts-expect-error (proves the union rejects them) while still asserting the runtime throw - docs/media/video-generation.md, docs/adapters/openrouter.md, media-generation SKILL.md: document snapDuration/availableDurations for OpenRouter; bump updatedAt; changeset Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
by Tom Beckenham
T
Succeeded
707-featai-openrouter-video-generation-adapter-apiv1videos-+-image-activity-follow-ups
b6ea120b Merge 23976187eae3da207ec13338691b7eea4757a34c into df40512bda853f714b2913bee630ec599e664207
by Tom Beckenham
T
Succeeded
707-featai-openrouter-video-generation-adapter-apiv1videos-+-image-activity-follow-ups
aa6d4a7f chore(ai-openrouter): bump @openrouter/sdk to 0.12.79 The getVideoContent response-matcher bug is still present in 0.12.79 (the stream matcher only accepts application/octet-stream while the endpoint serves video/mp4), so the direct unsigned-URL download stays. Link the aimock feature request (CopilotKit/aimock#261) from the e2e matrix exclusion. Submit/poll/download lifecycle re-verified live on the new SDK. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
by Tom Beckenham
T
Succeeded
707-featai-openrouter-video-generation-adapter-apiv1videos-+-image-activity-follow-ups
aa6d4a7f Merge c27d0b02143a3a86b02b517e6cc4c8dec70b4735 into eddfbbdfd979cad7874f0fb33695c5c41331631e
by Tom Beckenham
T
Succeeded
707-featai-openrouter-video-generation-adapter-apiv1videos-+-image-activity-follow-ups
dd58cb90 chore(ai-openrouter): bump @openrouter/sdk to 0.12.79 The getVideoContent response-matcher bug is still present in 0.12.79 (the stream matcher only accepts application/octet-stream while the endpoint serves video/mp4), so the direct unsigned-URL download stays. Link the aimock feature request (CopilotKit/aimock#261) from the e2e matrix exclusion. Submit/poll/download lifecycle re-verified live on the new SDK. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
by Tom Beckenham
T
Succeeded
707-featai-openrouter-video-generation-adapter-apiv1videos-+-image-activity-follow-ups
dd58cb90 Merge 7bb90663ea88de5e32c85b2c3cd1edf4f0188f1b into acd73197fc99d04fecda0cae39133f465a4ce75e
by Tom Beckenham
T
Succeeded
707-featai-openrouter-video-generation-adapter-apiv1videos-+-image-activity-follow-ups
60216893 chore(ai-openrouter): bump @openrouter/sdk to 0.12.79 The getVideoContent response-matcher bug is still present in 0.12.79 (the stream matcher only accepts application/octet-stream while the endpoint serves video/mp4), so the direct unsigned-URL download stays. Link the aimock feature request (CopilotKit/aimock#261) from the e2e matrix exclusion. Submit/poll/download lifecycle re-verified live on the new SDK. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
by Tom Beckenham
T
Succeeded
707-featai-openrouter-video-generation-adapter-apiv1videos-+-image-activity-follow-ups
60216893 Merge 413f0a7716d39779b7cbc1f610dae74fa0fb7ef2 into 0c65cc7aea08c882518a67becaa41b5579e4f1b0
by Tom Beckenham
T
Succeeded
707-featai-openrouter-video-generation-adapter-apiv1videos-+-image-activity-follow-ups
8f4999e1 ci: apply automated fixes
by autofix-ci...
a
Succeeded
707-featai-openrouter-video-generation-adapter-apiv1videos-+-image-activity-follow-ups
8f4999e1 Merge aa2a56c202ab1a864b8f461ae07be665867676cb into 349eb0d15f235e37d4f4aa6c2144ea772d099291
by Tom Beckenham
T
Succeeded
707-featai-openrouter-video-generation-adapter-apiv1videos-+-image-activity-follow-ups
a5716d08 feat(ai-openrouter): video generation adapter (/api/v1/videos) + image activity follow-ups Closes #707. - Add openRouterVideo: async jobs adapter for OpenRouter's dedicated video API (submit -> poll -> download). Per-model size/duration/option types are generated from GET /api/v1/videos/models; frame roles map onto frame_images[] / input_references[] per the MediaInputRole taxonomy. - Teach the model-meta sync scripts the videos/models endpoint (openrouter.video-models.json + OPENROUTER_VIDEO_MODEL_META). - Image adapter follow-ups from the #624 review: throw on unmapped sizes (the size union used a Unicode multiplication sign so every non-square size silently dropped its aspect ratio), throw on numberOfImages > 1 (live-verified: the gateway ignores all count keys), expose image_config.strength. - Completed videos are returned as data: URLs (unsigned_urls 401 without the API key header) with gateway-reported cost on usage.cost. The SDK's getVideoContent is bypassed: its matcher only accepts application/octet-stream while the endpoint serves video/mp4. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
by Tom Beckenham
T
Succeeded
707-featai-openrouter-video-generation-adapter-apiv1videos-+-image-activity-follow-ups
a5716d08 Merge 3fb38ef34b9149bc0dd124262c02fe689ee6e129 into 349eb0d15f235e37d4f4aa6c2144ea772d099291
by Tom Beckenham
T
Previous
Next