Repository navigation
feat: remove legacy lucy-clip model ID (and lucy-clip-latest, lucy-pro-v2v) - #223
Merged
Merged
Conversation
…o-v2v) - Remove `lucy-clip`, the server-resolved `lucy-clip-latest` alias and the deprecated `lucy-pro-v2v` alias (-> lucy-clip) from the canonical enums, zod unions, `modelAliases`, `modelInputSchemas`, the video registry and `ModelSpecificInputs`. The clip-only `videoEditSchema` / `VideoEditInputs` (internal, not exported) go with them. - `lucy-latest` now maps to `VideoEdit2Inputs` in `ModelSpecificInputs` (it is server-resolved to lucy-2.5) instead of the generic video docs. - Examples, README and JSDoc samples use `lucy-latest`; queue/token/proxy tests that used lucy-pro-v2v as a generic video model use `lucy-latest`; deprecated-alias tests use `lucy-restyle-v2v`. - `listModels()` now returns 20 entries.
This was referenced Oct 13, 2026
commit: |
…l's input docs
`ModelSpecificInputs` only listed the canonical and deprecated names, so the
two `-latest` aliases fell through to the generic fallbacks. For
`lucy-restyle-latest` that fallback declares `prompt: string`, which made
`prompt` required and rejected a reference-image-only restyle
(`queue.submit({ model: models.video("lucy-restyle-latest"), reference_image, data })`)
that `lucy-restyle-2` accepts. `lucy-image-latest` showed the
text-to-image docs instead of the image-editing ones.
Also drops the "limited to 5 seconds" note from the generic
`VideoModelInputs` docs; that limit belonged to lucy-clip.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Removes the legacy Lucy Clip model from the SDK: the canonical
lucy-clip, the server-resolvedlucy-clip-latestalias, and the deprecatedlucy-pro-v2valias (which resolved tolucy-clip). New video-to-video work should uselucy-latest(currently Lucy 2.5) orlucy-2.5.Same shape as #205 (retired
lucy-vton-2/lucy-vton-3).Changes
src/shared/model.tsCANONICAL_MODEL_NAMES,CANONICAL_VIDEO_MODEL_NAMES, thevideoModelsunion,modelAliases,modelInputSchemasand the video registry; deletes the clip-onlyvideoEditSchema(internal, unused now)src/process/types.tslucy-pro-v2v/lucy-clipbranch ofModelSpecificInputsand the internalVideoEditInputs;lucy-latestnow getsVideoEdit2Inputsdocs instead of the generic video docs, which described the 5-second clip limitsrc/queue/client.ts,src/create-client.ts,src/tokens/client.ts,README.mdlucy-latestAGENTS.md-latestalias note no longer mention lucy-clipexamples/express-api,hono-edge,sdk-corevideo examples uselucy-latesttests/unit.test.tslucy-pro-v2vas a generic video model uselucy-latest; alias and deprecation tests uselucy-restyle-v2v;listModels()count 23 → 20; drops the lucy-clip and lucy-clip-latest assertionstests/e2e.test.tslucy-clip-latestjob (lucy-latestis already covered)packages/proxytests/v1/jobs/lucy-latestVerification
pnpm --filter @decartai/sdk typecheckpnpm --filter @decartai/sdk testpnpm --filter @decartai/sdk buildpnpm --filter @decartai/sdk test:packagepnpm --filter @decartai/sdk format:checkpnpm --filter @decartai/proxy testtsc --noEmitinexamples/{express-api,hono-edge,sdk-core}models.video("lucy-clip")calls fail to type-check, as intendedgrep -rniE 'lucy-clip|lucy_clip|pro-v2v'overpackages/andexamples/The live e2e was not run locally because no
DECART_API_KEYwas available.Compatibility
models.video("lucy-clip" | "lucy-clip-latest" | "lucy-pro-v2v")no longer type-checks or resolves, and the three names drop out of theVideoModelsandCanonicalModelunions. Uselucy-latestorlucy-2.5; their input shape (prompt, data, optional reference_image) covers what lucy-clip accepted. No other model's ids, geometry or types change.Also in this PR
fix(types):ModelSpecificInputsonly listed the canonical and deprecated names, solucy-restyle-latestandlucy-image-latestfell through to the generic fallbacks.lucy-restyle-latestinheritedprompt: stringfrom the generic video docs, which madepromptrequired. A reference-image-only restyle (queue.submit({ model: models.video("lucy-restyle-latest"), reference_image, data })) failed to type-check, although the same call onlucy-restyle-2compiles. It now maps toVideoRestyleInputs.lucy-image-latestnow maps toImageEditingInputsinstead of the text-to-image docs.VideoModelInputsdocs no longer say output is limited to 5 seconds; that limit was lucy-clip's.Checked by compiling that
queue.submitcall againstsrc/before (TS2345, missingprompt) and after (clean). The repo has no type-level test harness (tsccoverssrc/only), so no test was added.typecheck, 384 unit tests,build,test:packageandformat:checkpass.Note
Medium Risk
This is a breaking SDK API change for anyone still targeting the removed model IDs; runtime behavior for other models is unchanged aside from docs and example defaults.
Overview
Removes the legacy Lucy Clip video model from
@decartai/sdk: canonicallucy-clip, aliaslucy-clip-latest, and deprecatedlucy-pro-v2v(which mapped to clip). The model registry, Zod unions,modelInputSchemas, and the clip-specificvideoEditSchemaare deleted;listModels()drops from 23 to 20 entries.lucy-latestis now the documented default for short video-to-video / queue examples (README, JSDoc, express/hono examples, sdk-core samples). Its inputs are typed withVideoEdit2Inputs(same as Lucy 2.x) instead of the old clip docs that mentioned a 5-second output cap.Breaking for callers still using
models.video("lucy-clip" | "lucy-clip-latest" | "lucy-pro-v2v")— those IDs no longer type-check or resolve. Migration path:lucy-latestorlucy-2.5. Tests and proxy fixtures were updated to hit/v1/jobs/lucy-latest; e2e drops thelucy-clip-latestcase.Reviewed by Cursor Bugbot for commit bd87ec8. Bugbot is set up for automated code reviews on this repo. Configure here.