ima2-gen 1.1.13 → 1.1.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -7
- package/bin/commands/capabilities.js +5 -0
- package/bin/commands/capabilities.ts +5 -0
- package/bin/commands/doctor.js +195 -0
- package/bin/commands/doctor.ts +202 -0
- package/bin/commands/edit.js +6 -6
- package/bin/commands/edit.ts +6 -6
- package/bin/commands/gen.js +6 -6
- package/bin/commands/gen.ts +6 -6
- package/bin/commands/grok.js +61 -0
- package/bin/commands/grok.ts +67 -0
- package/bin/commands/multimode.js +3 -3
- package/bin/commands/multimode.ts +3 -3
- package/bin/commands/node.js +4 -4
- package/bin/commands/node.ts +4 -4
- package/bin/ima2.js +5 -105
- package/bin/ima2.ts +5 -109
- package/config.js +17 -0
- package/config.ts +21 -0
- package/docs/API.md +77 -8
- package/docs/CLI.md +65 -3
- package/docs/FAQ.ko.md +82 -2
- package/docs/FAQ.md +85 -2
- package/docs/PROMPT_STUDIO.ko.md +111 -0
- package/docs/PROMPT_STUDIO.md +115 -0
- package/docs/README.ko.md +27 -7
- package/docs/grok-video-i2v-plan.md +419 -0
- package/docs/grok-video-i2v-research.md +204 -0
- package/docs/migration/runtime-test-inventory.md +12 -1
- package/lib/agentRuntime.js +88 -19
- package/lib/agentRuntime.ts +97 -29
- package/lib/agentSettings.js +1 -1
- package/lib/agentSettings.ts +1 -1
- package/lib/agentTypes.ts +1 -1
- package/lib/capabilities.js +10 -2
- package/lib/capabilities.ts +10 -2
- package/lib/configKeys.js +6 -0
- package/lib/configKeys.ts +6 -1
- package/lib/errorClassify.js +1 -1
- package/lib/errorClassify.ts +1 -1
- package/lib/generationErrors.js +121 -23
- package/lib/generationErrors.ts +100 -13
- package/lib/grokImageAdapter.js +364 -0
- package/lib/grokImageAdapter.ts +483 -0
- package/lib/grokMultimodeAdapter.js +54 -0
- package/lib/grokMultimodeAdapter.ts +84 -0
- package/lib/grokProxyLauncher.js +105 -0
- package/lib/grokProxyLauncher.ts +129 -0
- package/lib/grokRuntime.js +18 -0
- package/lib/grokRuntime.ts +23 -0
- package/lib/grokSizeMapper.js +63 -0
- package/lib/grokSizeMapper.ts +71 -0
- package/lib/grokVideoAdapter.js +374 -0
- package/lib/grokVideoAdapter.ts +438 -0
- package/lib/historyList.js +5 -1
- package/lib/historyList.ts +5 -1
- package/lib/imageMetadata.js +2 -0
- package/lib/imageMetadata.ts +2 -0
- package/lib/imageModels.js +101 -0
- package/lib/imageModels.ts +111 -0
- package/lib/providerOptions.js +15 -1
- package/lib/providerOptions.ts +15 -1
- package/lib/responsesDoctor.js +386 -0
- package/lib/responsesDoctor.ts +456 -0
- package/lib/responsesErrors.js +57 -0
- package/lib/responsesErrors.ts +83 -0
- package/lib/responsesFallback.js +72 -0
- package/lib/responsesFallback.ts +114 -0
- package/lib/responsesImageAdapter.js +121 -174
- package/lib/responsesImageAdapter.ts +136 -211
- package/lib/responsesParse.js +324 -0
- package/lib/responsesParse.ts +452 -0
- package/lib/responsesTools.js +15 -0
- package/lib/responsesTools.ts +28 -0
- package/lib/runtimeContext.js +12 -0
- package/lib/runtimeContext.ts +15 -0
- package/node_modules/array-flatten/LICENSE +21 -0
- package/node_modules/array-flatten/README.md +43 -0
- package/node_modules/array-flatten/array-flatten.js +64 -0
- package/node_modules/array-flatten/package.json +39 -0
- package/node_modules/bundle-name/index.js +5 -0
- package/node_modules/bundle-name/license +9 -0
- package/node_modules/bundle-name/package.json +45 -0
- package/node_modules/bundle-name/readme.md +23 -0
- package/node_modules/bytes/History.md +97 -0
- package/node_modules/bytes/LICENSE +23 -0
- package/node_modules/bytes/Readme.md +152 -0
- package/node_modules/bytes/index.js +170 -0
- package/node_modules/bytes/package.json +42 -0
- package/node_modules/call-bind-apply-helpers/.eslintrc +17 -0
- package/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
- package/node_modules/call-bind-apply-helpers/.nycrc +9 -0
- package/node_modules/call-bind-apply-helpers/CHANGELOG.md +30 -0
- package/node_modules/call-bind-apply-helpers/LICENSE +21 -0
- package/node_modules/call-bind-apply-helpers/README.md +62 -0
- package/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
- package/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
- package/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
- package/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
- package/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
- package/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
- package/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
- package/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
- package/node_modules/call-bind-apply-helpers/index.d.ts +64 -0
- package/node_modules/call-bind-apply-helpers/index.js +15 -0
- package/node_modules/call-bind-apply-helpers/package.json +85 -0
- package/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
- package/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
- package/node_modules/call-bind-apply-helpers/test/index.js +63 -0
- package/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
- package/node_modules/call-bound/.eslintrc +13 -0
- package/node_modules/call-bound/.github/FUNDING.yml +12 -0
- package/node_modules/call-bound/.nycrc +9 -0
- package/node_modules/call-bound/CHANGELOG.md +42 -0
- package/node_modules/call-bound/LICENSE +21 -0
- package/node_modules/call-bound/README.md +53 -0
- package/node_modules/call-bound/index.d.ts +94 -0
- package/node_modules/call-bound/index.js +19 -0
- package/node_modules/call-bound/package.json +99 -0
- package/node_modules/call-bound/test/index.js +61 -0
- package/node_modules/call-bound/tsconfig.json +10 -0
- package/node_modules/commander/LICENSE +22 -0
- package/node_modules/commander/Readme.md +1149 -0
- package/node_modules/commander/esm.mjs +16 -0
- package/node_modules/commander/index.js +24 -0
- package/node_modules/commander/lib/argument.js +149 -0
- package/node_modules/commander/lib/command.js +2662 -0
- package/node_modules/commander/lib/error.js +39 -0
- package/node_modules/commander/lib/help.js +709 -0
- package/node_modules/commander/lib/option.js +367 -0
- package/node_modules/commander/lib/suggestSimilar.js +101 -0
- package/node_modules/commander/package-support.json +16 -0
- package/node_modules/commander/package.json +82 -0
- package/node_modules/commander/typings/esm.d.mts +3 -0
- package/node_modules/commander/typings/index.d.ts +1045 -0
- package/node_modules/content-type/HISTORY.md +29 -0
- package/node_modules/content-type/LICENSE +22 -0
- package/node_modules/content-type/README.md +94 -0
- package/node_modules/content-type/index.js +225 -0
- package/node_modules/content-type/package.json +42 -0
- package/node_modules/cookie/LICENSE +24 -0
- package/node_modules/cookie/README.md +317 -0
- package/node_modules/cookie/SECURITY.md +25 -0
- package/node_modules/cookie/index.js +335 -0
- package/node_modules/cookie/package.json +44 -0
- package/node_modules/default-browser/index.d.ts +29 -0
- package/node_modules/default-browser/index.js +34 -0
- package/node_modules/default-browser/license +9 -0
- package/node_modules/default-browser/package.json +54 -0
- package/node_modules/default-browser/readme.md +24 -0
- package/node_modules/default-browser/windows.js +57 -0
- package/node_modules/default-browser-id/index.js +25 -0
- package/node_modules/default-browser-id/license +9 -0
- package/node_modules/default-browser-id/package.json +41 -0
- package/node_modules/default-browser-id/readme.md +19 -0
- package/node_modules/define-lazy-prop/index.d.ts +31 -0
- package/node_modules/define-lazy-prop/index.js +18 -0
- package/node_modules/define-lazy-prop/license +9 -0
- package/node_modules/define-lazy-prop/package.json +51 -0
- package/node_modules/define-lazy-prop/readme.md +55 -0
- package/node_modules/depd/History.md +103 -0
- package/node_modules/depd/LICENSE +22 -0
- package/node_modules/depd/Readme.md +280 -0
- package/node_modules/depd/index.js +538 -0
- package/node_modules/depd/lib/browser/index.js +77 -0
- package/node_modules/depd/package.json +45 -0
- package/node_modules/destroy/LICENSE +23 -0
- package/node_modules/destroy/README.md +63 -0
- package/node_modules/destroy/index.js +209 -0
- package/node_modules/destroy/package.json +48 -0
- package/node_modules/dunder-proto/.eslintrc +5 -0
- package/node_modules/dunder-proto/.github/FUNDING.yml +12 -0
- package/node_modules/dunder-proto/.nycrc +13 -0
- package/node_modules/dunder-proto/CHANGELOG.md +24 -0
- package/node_modules/dunder-proto/LICENSE +21 -0
- package/node_modules/dunder-proto/README.md +54 -0
- package/node_modules/dunder-proto/get.d.ts +5 -0
- package/node_modules/dunder-proto/get.js +30 -0
- package/node_modules/dunder-proto/package.json +76 -0
- package/node_modules/dunder-proto/set.d.ts +5 -0
- package/node_modules/dunder-proto/set.js +35 -0
- package/node_modules/dunder-proto/test/get.js +34 -0
- package/node_modules/dunder-proto/test/index.js +4 -0
- package/node_modules/dunder-proto/test/set.js +50 -0
- package/node_modules/dunder-proto/tsconfig.json +9 -0
- package/node_modules/ee-first/LICENSE +22 -0
- package/node_modules/ee-first/README.md +80 -0
- package/node_modules/ee-first/index.js +95 -0
- package/node_modules/ee-first/package.json +29 -0
- package/node_modules/encodeurl/LICENSE +22 -0
- package/node_modules/encodeurl/README.md +109 -0
- package/node_modules/encodeurl/index.js +60 -0
- package/node_modules/encodeurl/package.json +40 -0
- package/node_modules/es-define-property/.eslintrc +13 -0
- package/node_modules/es-define-property/.github/FUNDING.yml +12 -0
- package/node_modules/es-define-property/.nycrc +9 -0
- package/node_modules/es-define-property/CHANGELOG.md +29 -0
- package/node_modules/es-define-property/LICENSE +21 -0
- package/node_modules/es-define-property/README.md +49 -0
- package/node_modules/es-define-property/index.d.ts +3 -0
- package/node_modules/es-define-property/index.js +14 -0
- package/node_modules/es-define-property/package.json +81 -0
- package/node_modules/es-define-property/test/index.js +56 -0
- package/node_modules/es-define-property/tsconfig.json +10 -0
- package/node_modules/es-errors/.eslintrc +5 -0
- package/node_modules/es-errors/.github/FUNDING.yml +12 -0
- package/node_modules/es-errors/CHANGELOG.md +40 -0
- package/node_modules/es-errors/LICENSE +21 -0
- package/node_modules/es-errors/README.md +55 -0
- package/node_modules/es-errors/eval.d.ts +3 -0
- package/node_modules/es-errors/eval.js +4 -0
- package/node_modules/es-errors/index.d.ts +3 -0
- package/node_modules/es-errors/index.js +4 -0
- package/node_modules/es-errors/package.json +80 -0
- package/node_modules/es-errors/range.d.ts +3 -0
- package/node_modules/es-errors/range.js +4 -0
- package/node_modules/es-errors/ref.d.ts +3 -0
- package/node_modules/es-errors/ref.js +4 -0
- package/node_modules/es-errors/syntax.d.ts +3 -0
- package/node_modules/es-errors/syntax.js +4 -0
- package/node_modules/es-errors/test/index.js +19 -0
- package/node_modules/es-errors/tsconfig.json +49 -0
- package/node_modules/es-errors/type.d.ts +3 -0
- package/node_modules/es-errors/type.js +4 -0
- package/node_modules/es-errors/uri.d.ts +3 -0
- package/node_modules/es-errors/uri.js +4 -0
- package/node_modules/es-object-atoms/.eslintrc +16 -0
- package/node_modules/es-object-atoms/.github/FUNDING.yml +12 -0
- package/node_modules/es-object-atoms/CHANGELOG.md +37 -0
- package/node_modules/es-object-atoms/LICENSE +21 -0
- package/node_modules/es-object-atoms/README.md +63 -0
- package/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +3 -0
- package/node_modules/es-object-atoms/RequireObjectCoercible.js +11 -0
- package/node_modules/es-object-atoms/ToObject.d.ts +7 -0
- package/node_modules/es-object-atoms/ToObject.js +10 -0
- package/node_modules/es-object-atoms/index.d.ts +3 -0
- package/node_modules/es-object-atoms/index.js +4 -0
- package/node_modules/es-object-atoms/isObject.d.ts +3 -0
- package/node_modules/es-object-atoms/isObject.js +6 -0
- package/node_modules/es-object-atoms/package.json +80 -0
- package/node_modules/es-object-atoms/test/index.js +38 -0
- package/node_modules/es-object-atoms/tsconfig.json +6 -0
- package/node_modules/escape-html/LICENSE +24 -0
- package/node_modules/escape-html/Readme.md +43 -0
- package/node_modules/escape-html/index.js +78 -0
- package/node_modules/escape-html/package.json +24 -0
- package/node_modules/etag/HISTORY.md +83 -0
- package/node_modules/etag/LICENSE +22 -0
- package/node_modules/etag/README.md +159 -0
- package/node_modules/etag/index.js +131 -0
- package/node_modules/etag/package.json +47 -0
- package/node_modules/forwarded/HISTORY.md +21 -0
- package/node_modules/forwarded/LICENSE +22 -0
- package/node_modules/forwarded/README.md +57 -0
- package/node_modules/forwarded/index.js +90 -0
- package/node_modules/forwarded/package.json +45 -0
- package/node_modules/function-bind/.eslintrc +21 -0
- package/node_modules/function-bind/.github/FUNDING.yml +12 -0
- package/node_modules/function-bind/.github/SECURITY.md +3 -0
- package/node_modules/function-bind/.nycrc +13 -0
- package/node_modules/function-bind/CHANGELOG.md +136 -0
- package/node_modules/function-bind/LICENSE +20 -0
- package/node_modules/function-bind/README.md +46 -0
- package/node_modules/function-bind/implementation.js +84 -0
- package/node_modules/function-bind/index.js +5 -0
- package/node_modules/function-bind/package.json +87 -0
- package/node_modules/function-bind/test/.eslintrc +9 -0
- package/node_modules/function-bind/test/index.js +252 -0
- package/node_modules/get-intrinsic/.eslintrc +42 -0
- package/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
- package/node_modules/get-intrinsic/.nycrc +9 -0
- package/node_modules/get-intrinsic/CHANGELOG.md +186 -0
- package/node_modules/get-intrinsic/LICENSE +21 -0
- package/node_modules/get-intrinsic/README.md +71 -0
- package/node_modules/get-intrinsic/index.js +378 -0
- package/node_modules/get-intrinsic/package.json +97 -0
- package/node_modules/get-intrinsic/test/GetIntrinsic.js +274 -0
- package/node_modules/get-proto/.eslintrc +10 -0
- package/node_modules/get-proto/.github/FUNDING.yml +12 -0
- package/node_modules/get-proto/.nycrc +9 -0
- package/node_modules/get-proto/CHANGELOG.md +21 -0
- package/node_modules/get-proto/LICENSE +21 -0
- package/node_modules/get-proto/Object.getPrototypeOf.d.ts +5 -0
- package/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
- package/node_modules/get-proto/README.md +50 -0
- package/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +3 -0
- package/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
- package/node_modules/get-proto/index.d.ts +5 -0
- package/node_modules/get-proto/index.js +27 -0
- package/node_modules/get-proto/package.json +81 -0
- package/node_modules/get-proto/test/index.js +68 -0
- package/node_modules/get-proto/tsconfig.json +9 -0
- package/node_modules/gopd/.eslintrc +16 -0
- package/node_modules/gopd/.github/FUNDING.yml +12 -0
- package/node_modules/gopd/CHANGELOG.md +45 -0
- package/node_modules/gopd/LICENSE +21 -0
- package/node_modules/gopd/README.md +40 -0
- package/node_modules/gopd/gOPD.d.ts +1 -0
- package/node_modules/gopd/gOPD.js +4 -0
- package/node_modules/gopd/index.d.ts +5 -0
- package/node_modules/gopd/index.js +15 -0
- package/node_modules/gopd/package.json +77 -0
- package/node_modules/gopd/test/index.js +36 -0
- package/node_modules/gopd/tsconfig.json +9 -0
- package/node_modules/has-symbols/.eslintrc +11 -0
- package/node_modules/has-symbols/.github/FUNDING.yml +12 -0
- package/node_modules/has-symbols/.nycrc +9 -0
- package/node_modules/has-symbols/CHANGELOG.md +91 -0
- package/node_modules/has-symbols/LICENSE +21 -0
- package/node_modules/has-symbols/README.md +46 -0
- package/node_modules/has-symbols/index.d.ts +3 -0
- package/node_modules/has-symbols/index.js +14 -0
- package/node_modules/has-symbols/package.json +111 -0
- package/node_modules/has-symbols/shams.d.ts +3 -0
- package/node_modules/has-symbols/shams.js +45 -0
- package/node_modules/has-symbols/test/index.js +22 -0
- package/node_modules/has-symbols/test/shams/core-js.js +29 -0
- package/node_modules/has-symbols/test/shams/get-own-property-symbols.js +29 -0
- package/node_modules/has-symbols/test/tests.js +58 -0
- package/node_modules/has-symbols/tsconfig.json +10 -0
- package/node_modules/hasown/.github/FUNDING.yml +12 -0
- package/node_modules/hasown/.nycrc +13 -0
- package/node_modules/hasown/CHANGELOG.md +51 -0
- package/node_modules/hasown/LICENSE +21 -0
- package/node_modules/hasown/README.md +40 -0
- package/node_modules/hasown/eslint.config.mjs +6 -0
- package/node_modules/hasown/index.d.ts +4 -0
- package/node_modules/hasown/index.js +8 -0
- package/node_modules/hasown/package.json +92 -0
- package/node_modules/hasown/tsconfig.json +6 -0
- package/node_modules/http-errors/HISTORY.md +186 -0
- package/node_modules/http-errors/LICENSE +23 -0
- package/node_modules/http-errors/README.md +169 -0
- package/node_modules/http-errors/index.js +290 -0
- package/node_modules/http-errors/package.json +54 -0
- package/node_modules/inherits/LICENSE +16 -0
- package/node_modules/inherits/README.md +42 -0
- package/node_modules/inherits/inherits.js +9 -0
- package/node_modules/inherits/inherits_browser.js +27 -0
- package/node_modules/inherits/package.json +29 -0
- package/node_modules/ipaddr.js/LICENSE +19 -0
- package/node_modules/ipaddr.js/README.md +233 -0
- package/node_modules/ipaddr.js/ipaddr.min.js +1 -0
- package/node_modules/ipaddr.js/lib/ipaddr.js +673 -0
- package/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +68 -0
- package/node_modules/ipaddr.js/package.json +35 -0
- package/node_modules/is-docker/cli.js +5 -0
- package/node_modules/is-docker/index.d.ts +13 -0
- package/node_modules/is-docker/index.js +29 -0
- package/node_modules/is-docker/license +9 -0
- package/node_modules/is-docker/package.json +44 -0
- package/node_modules/is-docker/readme.md +27 -0
- package/node_modules/is-inside-container/cli.js +5 -0
- package/node_modules/is-inside-container/index.d.ts +13 -0
- package/node_modules/is-inside-container/index.js +23 -0
- package/node_modules/is-inside-container/license +9 -0
- package/node_modules/is-inside-container/package.json +51 -0
- package/node_modules/is-inside-container/readme.md +36 -0
- package/node_modules/is-wsl/index.d.ts +15 -0
- package/node_modules/is-wsl/index.js +36 -0
- package/node_modules/is-wsl/license +9 -0
- package/node_modules/is-wsl/package.json +58 -0
- package/node_modules/is-wsl/readme.md +21 -0
- package/node_modules/math-intrinsics/.eslintrc +16 -0
- package/node_modules/math-intrinsics/.github/FUNDING.yml +12 -0
- package/node_modules/math-intrinsics/CHANGELOG.md +24 -0
- package/node_modules/math-intrinsics/LICENSE +21 -0
- package/node_modules/math-intrinsics/README.md +50 -0
- package/node_modules/math-intrinsics/abs.d.ts +1 -0
- package/node_modules/math-intrinsics/abs.js +4 -0
- package/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +3 -0
- package/node_modules/math-intrinsics/constants/maxArrayLength.js +4 -0
- package/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +3 -0
- package/node_modules/math-intrinsics/constants/maxSafeInteger.js +5 -0
- package/node_modules/math-intrinsics/constants/maxValue.d.ts +3 -0
- package/node_modules/math-intrinsics/constants/maxValue.js +5 -0
- package/node_modules/math-intrinsics/floor.d.ts +1 -0
- package/node_modules/math-intrinsics/floor.js +4 -0
- package/node_modules/math-intrinsics/isFinite.d.ts +3 -0
- package/node_modules/math-intrinsics/isFinite.js +12 -0
- package/node_modules/math-intrinsics/isInteger.d.ts +3 -0
- package/node_modules/math-intrinsics/isInteger.js +16 -0
- package/node_modules/math-intrinsics/isNaN.d.ts +1 -0
- package/node_modules/math-intrinsics/isNaN.js +6 -0
- package/node_modules/math-intrinsics/isNegativeZero.d.ts +3 -0
- package/node_modules/math-intrinsics/isNegativeZero.js +6 -0
- package/node_modules/math-intrinsics/max.d.ts +1 -0
- package/node_modules/math-intrinsics/max.js +4 -0
- package/node_modules/math-intrinsics/min.d.ts +1 -0
- package/node_modules/math-intrinsics/min.js +4 -0
- package/node_modules/math-intrinsics/mod.d.ts +3 -0
- package/node_modules/math-intrinsics/mod.js +9 -0
- package/node_modules/math-intrinsics/package.json +86 -0
- package/node_modules/math-intrinsics/pow.d.ts +1 -0
- package/node_modules/math-intrinsics/pow.js +4 -0
- package/node_modules/math-intrinsics/round.d.ts +1 -0
- package/node_modules/math-intrinsics/round.js +4 -0
- package/node_modules/math-intrinsics/sign.d.ts +3 -0
- package/node_modules/math-intrinsics/sign.js +11 -0
- package/node_modules/math-intrinsics/test/index.js +192 -0
- package/node_modules/math-intrinsics/tsconfig.json +3 -0
- package/node_modules/methods/HISTORY.md +29 -0
- package/node_modules/methods/LICENSE +24 -0
- package/node_modules/methods/README.md +51 -0
- package/node_modules/methods/index.js +69 -0
- package/node_modules/methods/package.json +36 -0
- package/node_modules/mime/.npmignore +0 -0
- package/node_modules/mime/CHANGELOG.md +164 -0
- package/node_modules/mime/LICENSE +21 -0
- package/node_modules/mime/README.md +90 -0
- package/node_modules/mime/cli.js +8 -0
- package/node_modules/mime/mime.js +108 -0
- package/node_modules/mime/package.json +44 -0
- package/node_modules/mime/src/build.js +53 -0
- package/node_modules/mime/src/test.js +60 -0
- package/node_modules/mime/types.json +1 -0
- package/node_modules/ms/index.js +162 -0
- package/node_modules/ms/license.md +21 -0
- package/node_modules/ms/package.json +38 -0
- package/node_modules/ms/readme.md +59 -0
- package/node_modules/object-inspect/.eslintrc +53 -0
- package/node_modules/object-inspect/.github/FUNDING.yml +12 -0
- package/node_modules/object-inspect/.nycrc +13 -0
- package/node_modules/object-inspect/CHANGELOG.md +424 -0
- package/node_modules/object-inspect/LICENSE +21 -0
- package/node_modules/object-inspect/example/all.js +23 -0
- package/node_modules/object-inspect/example/circular.js +6 -0
- package/node_modules/object-inspect/example/fn.js +5 -0
- package/node_modules/object-inspect/example/inspect.js +10 -0
- package/node_modules/object-inspect/index.js +544 -0
- package/node_modules/object-inspect/package-support.json +20 -0
- package/node_modules/object-inspect/package.json +105 -0
- package/node_modules/object-inspect/readme.markdown +84 -0
- package/node_modules/object-inspect/test/bigint.js +58 -0
- package/node_modules/object-inspect/test/browser/dom.js +15 -0
- package/node_modules/object-inspect/test/circular.js +16 -0
- package/node_modules/object-inspect/test/deep.js +12 -0
- package/node_modules/object-inspect/test/element.js +53 -0
- package/node_modules/object-inspect/test/err.js +48 -0
- package/node_modules/object-inspect/test/fakes.js +29 -0
- package/node_modules/object-inspect/test/fn.js +76 -0
- package/node_modules/object-inspect/test/global.js +17 -0
- package/node_modules/object-inspect/test/has.js +15 -0
- package/node_modules/object-inspect/test/holes.js +15 -0
- package/node_modules/object-inspect/test/indent-option.js +271 -0
- package/node_modules/object-inspect/test/inspect.js +139 -0
- package/node_modules/object-inspect/test/lowbyte.js +12 -0
- package/node_modules/object-inspect/test/number.js +58 -0
- package/node_modules/object-inspect/test/quoteStyle.js +26 -0
- package/node_modules/object-inspect/test/toStringTag.js +40 -0
- package/node_modules/object-inspect/test/undef.js +12 -0
- package/node_modules/object-inspect/test/values.js +261 -0
- package/node_modules/object-inspect/test-core-js.js +26 -0
- package/node_modules/object-inspect/util.inspect.js +1 -0
- package/node_modules/on-finished/HISTORY.md +98 -0
- package/node_modules/on-finished/LICENSE +23 -0
- package/node_modules/on-finished/README.md +162 -0
- package/node_modules/on-finished/index.js +234 -0
- package/node_modules/on-finished/package.json +39 -0
- package/node_modules/open/index.d.ts +158 -0
- package/node_modules/open/index.js +366 -0
- package/node_modules/open/license +9 -0
- package/node_modules/open/node_modules/wsl-utils/index.d.ts +21 -0
- package/node_modules/open/node_modules/wsl-utils/index.js +57 -0
- package/node_modules/open/node_modules/wsl-utils/license +9 -0
- package/node_modules/open/node_modules/wsl-utils/package.json +46 -0
- package/node_modules/open/node_modules/wsl-utils/readme.md +50 -0
- package/node_modules/open/package.json +68 -0
- package/node_modules/open/readme.md +183 -0
- package/node_modules/open/xdg-open +1267 -0
- package/node_modules/parseurl/HISTORY.md +58 -0
- package/node_modules/parseurl/LICENSE +24 -0
- package/node_modules/parseurl/README.md +133 -0
- package/node_modules/parseurl/index.js +158 -0
- package/node_modules/parseurl/package.json +40 -0
- package/node_modules/progrok/LICENSE +21 -0
- package/node_modules/progrok/README.md +53 -0
- package/node_modules/progrok/THIRD_PARTY_NOTICES.md +13 -0
- package/node_modules/progrok/dist/index.js +1142 -0
- package/node_modules/progrok/dist/index.js.map +1 -0
- package/node_modules/progrok/dist/public/app.js +529 -0
- package/node_modules/progrok/dist/public/index.html +47 -0
- package/node_modules/progrok/dist/public/style.css +392 -0
- package/node_modules/progrok/node_modules/accepts/HISTORY.md +243 -0
- package/node_modules/progrok/node_modules/accepts/LICENSE +23 -0
- package/node_modules/progrok/node_modules/accepts/README.md +140 -0
- package/node_modules/progrok/node_modules/accepts/index.js +238 -0
- package/node_modules/progrok/node_modules/accepts/package.json +47 -0
- package/node_modules/progrok/node_modules/body-parser/HISTORY.md +686 -0
- package/node_modules/progrok/node_modules/body-parser/LICENSE +23 -0
- package/node_modules/progrok/node_modules/body-parser/README.md +476 -0
- package/node_modules/progrok/node_modules/body-parser/index.js +156 -0
- package/node_modules/progrok/node_modules/body-parser/lib/read.js +205 -0
- package/node_modules/progrok/node_modules/body-parser/lib/types/json.js +243 -0
- package/node_modules/progrok/node_modules/body-parser/lib/types/raw.js +101 -0
- package/node_modules/progrok/node_modules/body-parser/lib/types/text.js +121 -0
- package/node_modules/progrok/node_modules/body-parser/lib/types/urlencoded.js +299 -0
- package/node_modules/progrok/node_modules/body-parser/package.json +55 -0
- package/node_modules/progrok/node_modules/content-disposition/HISTORY.md +60 -0
- package/node_modules/progrok/node_modules/content-disposition/LICENSE +22 -0
- package/node_modules/progrok/node_modules/content-disposition/README.md +142 -0
- package/node_modules/progrok/node_modules/content-disposition/index.js +458 -0
- package/node_modules/progrok/node_modules/content-disposition/package.json +44 -0
- package/node_modules/progrok/node_modules/cookie-signature/History.md +42 -0
- package/node_modules/progrok/node_modules/cookie-signature/Readme.md +42 -0
- package/node_modules/progrok/node_modules/cookie-signature/index.js +51 -0
- package/node_modules/progrok/node_modules/cookie-signature/package.json +18 -0
- package/node_modules/progrok/node_modules/debug/.coveralls.yml +1 -0
- package/node_modules/progrok/node_modules/debug/.eslintrc +11 -0
- package/node_modules/progrok/node_modules/debug/.npmignore +9 -0
- package/node_modules/progrok/node_modules/debug/.travis.yml +14 -0
- package/node_modules/progrok/node_modules/debug/CHANGELOG.md +362 -0
- package/node_modules/progrok/node_modules/debug/LICENSE +19 -0
- package/node_modules/progrok/node_modules/debug/Makefile +50 -0
- package/node_modules/progrok/node_modules/debug/README.md +312 -0
- package/node_modules/progrok/node_modules/debug/component.json +19 -0
- package/node_modules/progrok/node_modules/debug/karma.conf.js +70 -0
- package/node_modules/progrok/node_modules/debug/node.js +1 -0
- package/node_modules/progrok/node_modules/debug/node_modules/ms/index.js +152 -0
- package/node_modules/progrok/node_modules/debug/node_modules/ms/license.md +21 -0
- package/node_modules/progrok/node_modules/debug/node_modules/ms/package.json +37 -0
- package/node_modules/progrok/node_modules/debug/node_modules/ms/readme.md +51 -0
- package/node_modules/progrok/node_modules/debug/package.json +49 -0
- package/node_modules/progrok/node_modules/debug/src/browser.js +185 -0
- package/node_modules/progrok/node_modules/debug/src/debug.js +202 -0
- package/node_modules/progrok/node_modules/debug/src/index.js +10 -0
- package/node_modules/progrok/node_modules/debug/src/inspector-log.js +15 -0
- package/node_modules/progrok/node_modules/debug/src/node.js +248 -0
- package/node_modules/progrok/node_modules/express/History.md +3676 -0
- package/node_modules/progrok/node_modules/express/LICENSE +24 -0
- package/node_modules/progrok/node_modules/express/Readme.md +260 -0
- package/node_modules/progrok/node_modules/express/index.js +11 -0
- package/node_modules/progrok/node_modules/express/lib/application.js +661 -0
- package/node_modules/progrok/node_modules/express/lib/express.js +116 -0
- package/node_modules/progrok/node_modules/express/lib/middleware/init.js +43 -0
- package/node_modules/progrok/node_modules/express/lib/middleware/query.js +47 -0
- package/node_modules/progrok/node_modules/express/lib/request.js +525 -0
- package/node_modules/progrok/node_modules/express/lib/response.js +1179 -0
- package/node_modules/progrok/node_modules/express/lib/router/index.js +673 -0
- package/node_modules/progrok/node_modules/express/lib/router/layer.js +181 -0
- package/node_modules/progrok/node_modules/express/lib/router/route.js +230 -0
- package/node_modules/progrok/node_modules/express/lib/utils.js +304 -0
- package/node_modules/progrok/node_modules/express/lib/view.js +182 -0
- package/node_modules/progrok/node_modules/express/package.json +102 -0
- package/node_modules/progrok/node_modules/finalhandler/HISTORY.md +216 -0
- package/node_modules/progrok/node_modules/finalhandler/LICENSE +22 -0
- package/node_modules/progrok/node_modules/finalhandler/README.md +147 -0
- package/node_modules/progrok/node_modules/finalhandler/SECURITY.md +25 -0
- package/node_modules/progrok/node_modules/finalhandler/index.js +341 -0
- package/node_modules/progrok/node_modules/finalhandler/package.json +47 -0
- package/node_modules/progrok/node_modules/fresh/HISTORY.md +70 -0
- package/node_modules/progrok/node_modules/fresh/LICENSE +23 -0
- package/node_modules/progrok/node_modules/fresh/README.md +119 -0
- package/node_modules/progrok/node_modules/fresh/index.js +137 -0
- package/node_modules/progrok/node_modules/fresh/package.json +46 -0
- package/node_modules/progrok/node_modules/iconv-lite/Changelog.md +162 -0
- package/node_modules/progrok/node_modules/iconv-lite/LICENSE +21 -0
- package/node_modules/progrok/node_modules/iconv-lite/README.md +156 -0
- package/node_modules/progrok/node_modules/iconv-lite/encodings/dbcs-codec.js +555 -0
- package/node_modules/progrok/node_modules/iconv-lite/encodings/dbcs-data.js +176 -0
- package/node_modules/progrok/node_modules/iconv-lite/encodings/index.js +22 -0
- package/node_modules/progrok/node_modules/iconv-lite/encodings/internal.js +188 -0
- package/node_modules/progrok/node_modules/iconv-lite/encodings/sbcs-codec.js +72 -0
- package/node_modules/progrok/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
- package/node_modules/progrok/node_modules/iconv-lite/encodings/sbcs-data.js +174 -0
- package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
- package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
- package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
- package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
- package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
- package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
- package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/gbk-added.json +55 -0
- package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
- package/node_modules/progrok/node_modules/iconv-lite/encodings/utf16.js +177 -0
- package/node_modules/progrok/node_modules/iconv-lite/encodings/utf7.js +290 -0
- package/node_modules/progrok/node_modules/iconv-lite/lib/bom-handling.js +52 -0
- package/node_modules/progrok/node_modules/iconv-lite/lib/extend-node.js +217 -0
- package/node_modules/progrok/node_modules/iconv-lite/lib/index.d.ts +24 -0
- package/node_modules/progrok/node_modules/iconv-lite/lib/index.js +153 -0
- package/node_modules/progrok/node_modules/iconv-lite/lib/streams.js +121 -0
- package/node_modules/progrok/node_modules/iconv-lite/package.json +46 -0
- package/node_modules/progrok/node_modules/media-typer/HISTORY.md +22 -0
- package/node_modules/progrok/node_modules/media-typer/LICENSE +22 -0
- package/node_modules/progrok/node_modules/media-typer/README.md +81 -0
- package/node_modules/progrok/node_modules/media-typer/index.js +270 -0
- package/node_modules/progrok/node_modules/media-typer/package.json +26 -0
- package/node_modules/progrok/node_modules/merge-descriptors/HISTORY.md +21 -0
- package/node_modules/progrok/node_modules/merge-descriptors/LICENSE +23 -0
- package/node_modules/progrok/node_modules/merge-descriptors/README.md +49 -0
- package/node_modules/progrok/node_modules/merge-descriptors/index.js +60 -0
- package/node_modules/progrok/node_modules/merge-descriptors/package.json +39 -0
- package/node_modules/progrok/node_modules/mime-db/HISTORY.md +507 -0
- package/node_modules/progrok/node_modules/mime-db/LICENSE +23 -0
- package/node_modules/progrok/node_modules/mime-db/README.md +100 -0
- package/node_modules/progrok/node_modules/mime-db/db.json +8519 -0
- package/node_modules/progrok/node_modules/mime-db/index.js +12 -0
- package/node_modules/progrok/node_modules/mime-db/package.json +60 -0
- package/node_modules/progrok/node_modules/mime-types/HISTORY.md +397 -0
- package/node_modules/progrok/node_modules/mime-types/LICENSE +23 -0
- package/node_modules/progrok/node_modules/mime-types/README.md +113 -0
- package/node_modules/progrok/node_modules/mime-types/index.js +188 -0
- package/node_modules/progrok/node_modules/mime-types/package.json +44 -0
- package/node_modules/progrok/node_modules/negotiator/HISTORY.md +108 -0
- package/node_modules/progrok/node_modules/negotiator/LICENSE +24 -0
- package/node_modules/progrok/node_modules/negotiator/README.md +203 -0
- package/node_modules/progrok/node_modules/negotiator/index.js +82 -0
- package/node_modules/progrok/node_modules/negotiator/lib/charset.js +169 -0
- package/node_modules/progrok/node_modules/negotiator/lib/encoding.js +184 -0
- package/node_modules/progrok/node_modules/negotiator/lib/language.js +179 -0
- package/node_modules/progrok/node_modules/negotiator/lib/mediaType.js +294 -0
- package/node_modules/progrok/node_modules/negotiator/package.json +42 -0
- package/node_modules/progrok/node_modules/path-to-regexp/LICENSE +21 -0
- package/node_modules/progrok/node_modules/path-to-regexp/Readme.md +35 -0
- package/node_modules/progrok/node_modules/path-to-regexp/index.js +158 -0
- package/node_modules/progrok/node_modules/path-to-regexp/package.json +30 -0
- package/node_modules/progrok/node_modules/raw-body/LICENSE +22 -0
- package/node_modules/progrok/node_modules/raw-body/README.md +223 -0
- package/node_modules/progrok/node_modules/raw-body/index.d.ts +87 -0
- package/node_modules/progrok/node_modules/raw-body/index.js +336 -0
- package/node_modules/progrok/node_modules/raw-body/package.json +47 -0
- package/node_modules/progrok/node_modules/send/HISTORY.md +538 -0
- package/node_modules/progrok/node_modules/send/LICENSE +23 -0
- package/node_modules/progrok/node_modules/send/README.md +327 -0
- package/node_modules/progrok/node_modules/send/SECURITY.md +24 -0
- package/node_modules/progrok/node_modules/send/index.js +1142 -0
- package/node_modules/progrok/node_modules/send/package.json +62 -0
- package/node_modules/progrok/node_modules/serve-static/HISTORY.md +493 -0
- package/node_modules/progrok/node_modules/serve-static/LICENSE +25 -0
- package/node_modules/progrok/node_modules/serve-static/README.md +257 -0
- package/node_modules/progrok/node_modules/serve-static/index.js +209 -0
- package/node_modules/progrok/node_modules/serve-static/package.json +42 -0
- package/node_modules/progrok/node_modules/type-is/HISTORY.md +259 -0
- package/node_modules/progrok/node_modules/type-is/LICENSE +23 -0
- package/node_modules/progrok/node_modules/type-is/README.md +170 -0
- package/node_modules/progrok/node_modules/type-is/index.js +266 -0
- package/node_modules/progrok/node_modules/type-is/package.json +45 -0
- package/node_modules/progrok/package.json +52 -0
- package/node_modules/progrok/skills/progrok/SKILL.md +228 -0
- package/node_modules/proxy-addr/HISTORY.md +161 -0
- package/node_modules/proxy-addr/LICENSE +22 -0
- package/node_modules/proxy-addr/README.md +139 -0
- package/node_modules/proxy-addr/index.js +327 -0
- package/node_modules/proxy-addr/package.json +47 -0
- package/node_modules/qs/.editorconfig +46 -0
- package/node_modules/qs/.github/FUNDING.yml +12 -0
- package/node_modules/qs/.github/SECURITY.md +11 -0
- package/node_modules/qs/.github/THREAT_MODEL.md +78 -0
- package/node_modules/qs/.nycrc +13 -0
- package/node_modules/qs/CHANGELOG.md +812 -0
- package/node_modules/qs/LICENSE.md +29 -0
- package/node_modules/qs/README.md +758 -0
- package/node_modules/qs/dist/qs.js +141 -0
- package/node_modules/qs/eslint.config.mjs +56 -0
- package/node_modules/qs/lib/formats.js +23 -0
- package/node_modules/qs/lib/index.js +11 -0
- package/node_modules/qs/lib/parse.js +373 -0
- package/node_modules/qs/lib/stringify.js +356 -0
- package/node_modules/qs/lib/utils.js +342 -0
- package/node_modules/qs/package.json +94 -0
- package/node_modules/qs/test/empty-keys-cases.js +267 -0
- package/node_modules/qs/test/parse.js +1654 -0
- package/node_modules/qs/test/stringify.js +1319 -0
- package/node_modules/qs/test/utils.js +432 -0
- package/node_modules/range-parser/HISTORY.md +56 -0
- package/node_modules/range-parser/LICENSE +23 -0
- package/node_modules/range-parser/README.md +84 -0
- package/node_modules/range-parser/index.js +162 -0
- package/node_modules/range-parser/package.json +44 -0
- package/node_modules/run-applescript/index.d.ts +66 -0
- package/node_modules/run-applescript/index.js +37 -0
- package/node_modules/run-applescript/license +9 -0
- package/node_modules/run-applescript/package.json +42 -0
- package/node_modules/run-applescript/readme.md +78 -0
- package/node_modules/safe-buffer/LICENSE +21 -0
- package/node_modules/safe-buffer/README.md +584 -0
- package/node_modules/safe-buffer/index.d.ts +187 -0
- package/node_modules/safe-buffer/index.js +65 -0
- package/node_modules/safe-buffer/package.json +51 -0
- package/node_modules/safer-buffer/LICENSE +21 -0
- package/node_modules/safer-buffer/Porting-Buffer.md +268 -0
- package/node_modules/safer-buffer/Readme.md +156 -0
- package/node_modules/safer-buffer/dangerous.js +58 -0
- package/node_modules/safer-buffer/package.json +34 -0
- package/node_modules/safer-buffer/safer.js +77 -0
- package/node_modules/safer-buffer/tests.js +406 -0
- package/node_modules/setprototypeof/LICENSE +13 -0
- package/node_modules/setprototypeof/README.md +31 -0
- package/node_modules/setprototypeof/index.d.ts +2 -0
- package/node_modules/setprototypeof/index.js +17 -0
- package/node_modules/setprototypeof/package.json +38 -0
- package/node_modules/setprototypeof/test/index.js +24 -0
- package/node_modules/side-channel/.editorconfig +9 -0
- package/node_modules/side-channel/.eslintrc +12 -0
- package/node_modules/side-channel/.github/FUNDING.yml +12 -0
- package/node_modules/side-channel/.nycrc +13 -0
- package/node_modules/side-channel/CHANGELOG.md +110 -0
- package/node_modules/side-channel/LICENSE +21 -0
- package/node_modules/side-channel/README.md +61 -0
- package/node_modules/side-channel/index.d.ts +14 -0
- package/node_modules/side-channel/index.js +43 -0
- package/node_modules/side-channel/package.json +85 -0
- package/node_modules/side-channel/test/index.js +104 -0
- package/node_modules/side-channel/tsconfig.json +9 -0
- package/node_modules/side-channel-list/.editorconfig +9 -0
- package/node_modules/side-channel-list/.eslintrc +11 -0
- package/node_modules/side-channel-list/.github/FUNDING.yml +12 -0
- package/node_modules/side-channel-list/.nycrc +13 -0
- package/node_modules/side-channel-list/CHANGELOG.md +36 -0
- package/node_modules/side-channel-list/LICENSE +21 -0
- package/node_modules/side-channel-list/README.md +62 -0
- package/node_modules/side-channel-list/index.d.ts +13 -0
- package/node_modules/side-channel-list/index.js +111 -0
- package/node_modules/side-channel-list/list.d.ts +14 -0
- package/node_modules/side-channel-list/package.json +77 -0
- package/node_modules/side-channel-list/test/index.js +154 -0
- package/node_modules/side-channel-list/tsconfig.json +9 -0
- package/node_modules/side-channel-map/.editorconfig +9 -0
- package/node_modules/side-channel-map/.eslintrc +11 -0
- package/node_modules/side-channel-map/.github/FUNDING.yml +12 -0
- package/node_modules/side-channel-map/.nycrc +13 -0
- package/node_modules/side-channel-map/CHANGELOG.md +22 -0
- package/node_modules/side-channel-map/LICENSE +21 -0
- package/node_modules/side-channel-map/README.md +62 -0
- package/node_modules/side-channel-map/index.d.ts +15 -0
- package/node_modules/side-channel-map/index.js +68 -0
- package/node_modules/side-channel-map/package.json +80 -0
- package/node_modules/side-channel-map/test/index.js +114 -0
- package/node_modules/side-channel-map/tsconfig.json +9 -0
- package/node_modules/side-channel-weakmap/.editorconfig +9 -0
- package/node_modules/side-channel-weakmap/.eslintrc +12 -0
- package/node_modules/side-channel-weakmap/.github/FUNDING.yml +12 -0
- package/node_modules/side-channel-weakmap/.nycrc +13 -0
- package/node_modules/side-channel-weakmap/CHANGELOG.md +28 -0
- package/node_modules/side-channel-weakmap/LICENSE +21 -0
- package/node_modules/side-channel-weakmap/README.md +62 -0
- package/node_modules/side-channel-weakmap/index.d.ts +15 -0
- package/node_modules/side-channel-weakmap/index.js +84 -0
- package/node_modules/side-channel-weakmap/package.json +87 -0
- package/node_modules/side-channel-weakmap/test/index.js +114 -0
- package/node_modules/side-channel-weakmap/tsconfig.json +9 -0
- package/node_modules/statuses/HISTORY.md +87 -0
- package/node_modules/statuses/LICENSE +23 -0
- package/node_modules/statuses/README.md +139 -0
- package/node_modules/statuses/codes.json +65 -0
- package/node_modules/statuses/index.js +146 -0
- package/node_modules/statuses/package.json +49 -0
- package/node_modules/toidentifier/HISTORY.md +9 -0
- package/node_modules/toidentifier/LICENSE +21 -0
- package/node_modules/toidentifier/README.md +61 -0
- package/node_modules/toidentifier/index.js +32 -0
- package/node_modules/toidentifier/package.json +38 -0
- package/node_modules/unpipe/HISTORY.md +4 -0
- package/node_modules/unpipe/LICENSE +22 -0
- package/node_modules/unpipe/README.md +43 -0
- package/node_modules/unpipe/index.js +69 -0
- package/node_modules/unpipe/package.json +27 -0
- package/node_modules/utils-merge/.npmignore +9 -0
- package/node_modules/utils-merge/LICENSE +20 -0
- package/node_modules/utils-merge/README.md +34 -0
- package/node_modules/utils-merge/index.js +23 -0
- package/node_modules/utils-merge/package.json +40 -0
- package/node_modules/vary/HISTORY.md +39 -0
- package/node_modules/vary/LICENSE +22 -0
- package/node_modules/vary/README.md +101 -0
- package/node_modules/vary/index.js +149 -0
- package/node_modules/vary/package.json +43 -0
- package/package.json +7 -2
- package/routes/edit.js +85 -13
- package/routes/edit.ts +94 -23
- package/routes/generate.js +118 -11
- package/routes/generate.ts +127 -10
- package/routes/grok.js +22 -0
- package/routes/grok.ts +24 -0
- package/routes/health.js +5 -0
- package/routes/health.ts +5 -0
- package/routes/index.js +4 -0
- package/routes/index.ts +4 -0
- package/routes/multimode.js +71 -26
- package/routes/multimode.ts +80 -39
- package/routes/nodes.js +88 -33
- package/routes/nodes.ts +97 -42
- package/routes/video.js +197 -0
- package/routes/video.ts +216 -0
- package/server.js +42 -1
- package/server.ts +34 -1
- package/skills/ima2/SKILL.md +27 -0
- package/ui/dist/.vite/manifest.json +12 -12
- package/ui/dist/assets/AgentWorkspace-c1_kEfFN.js +3 -0
- package/ui/dist/assets/{CardNewsWorkspace-BBLdwzYU.js → CardNewsWorkspace-CTBT3MbP.js} +2 -2
- package/ui/dist/assets/NodeCanvas-D3ecSAEi.js +7 -0
- package/ui/dist/assets/{PromptBuilderPanel-Y2VygFc0.js → PromptBuilderPanel-CqepukCN.js} +2 -2
- package/ui/dist/assets/{PromptImportDialog-C6lFV-LL.js → PromptImportDialog-Bvr8Q8P2.js} +2 -2
- package/ui/dist/assets/{PromptImportDiscoverySection-D8YJFhND.js → PromptImportDiscoverySection-CyZEXyWP.js} +1 -1
- package/ui/dist/assets/{PromptImportFolderSection-ywfcQolW.js → PromptImportFolderSection-CIl-_pyV.js} +1 -1
- package/ui/dist/assets/{PromptLibraryPanel-fk4KmrGy.js → PromptLibraryPanel-Bj23Q6l9.js} +2 -2
- package/ui/dist/assets/SettingsWorkspace-D_GqtEsP.js +1 -0
- package/ui/dist/assets/index-DMjgFXdO.css +1 -0
- package/ui/dist/assets/index-DQ6jg4Ui.js +32 -0
- package/ui/dist/assets/index-DtSBvfgp.js +1 -0
- package/ui/dist/index.html +2 -2
- package/vendor/progrok-0.1.0.tgz +0 -0
- package/ui/dist/assets/AgentWorkspace-BJe9yxPA.js +0 -3
- package/ui/dist/assets/NodeCanvas-BSZ527J4.js +0 -7
- package/ui/dist/assets/SettingsWorkspace-DL5vhAHQ.js +0 -1
- package/ui/dist/assets/index-BLx55BOg.js +0 -1
- package/ui/dist/assets/index-ByViUJfx.css +0 -1
- package/ui/dist/assets/index-Ci36vcFD.js +0 -28
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
# Grok Video T2V/I2V Implementation Plan
|
|
2
|
+
|
|
3
|
+
Date: 2026-05-30
|
|
4
|
+
Branch: `feat/grok-video-i2v`
|
|
5
|
+
|
|
6
|
+
## Goal
|
|
7
|
+
|
|
8
|
+
Add Grok video generation to ima2-gen as a first-class generation surface beside
|
|
9
|
+
`grok` and `grok+`.
|
|
10
|
+
|
|
11
|
+
Supported modes:
|
|
12
|
+
|
|
13
|
+
- **T2V**: text prompt -> video
|
|
14
|
+
- **I2V**: current image / selected asset / node image + prompt -> video
|
|
15
|
+
|
|
16
|
+
The video prompt must go through the same Grok planning layer as current Grok
|
|
17
|
+
image generation:
|
|
18
|
+
|
|
19
|
+
1. xAI Web Search through `/v1/responses`
|
|
20
|
+
2. `grok-4.3` planner call with a forced local tool
|
|
21
|
+
3. server executes xAI `/v1/videos/generations`
|
|
22
|
+
4. server polls `/v1/videos/{request_id}`
|
|
23
|
+
5. server downloads and persists the completed `.mp4`
|
|
24
|
+
|
|
25
|
+
Do not send raw user prompts directly to the video endpoint from product flows.
|
|
26
|
+
|
|
27
|
+
## Screenshot Analysis
|
|
28
|
+
|
|
29
|
+
User-provided screenshot:
|
|
30
|
+
|
|
31
|
+
- The visible layer is a generated image result action row.
|
|
32
|
+
- Current actions: download, copy image, copy prompt, continue here, first node,
|
|
33
|
+
expand/open, delete, more.
|
|
34
|
+
- The natural placement for video is the same artifact action layer:
|
|
35
|
+
**Video / Animate** should live beside `Continue Here` and `First Node`, not in
|
|
36
|
+
a detached settings-only surface.
|
|
37
|
+
|
|
38
|
+
## Research Summary
|
|
39
|
+
|
|
40
|
+
Full official-spec notes and live progrok request/response logs are in:
|
|
41
|
+
|
|
42
|
+
`docs/grok-video-i2v-research.md`
|
|
43
|
+
|
|
44
|
+
Implementation facts from the research:
|
|
45
|
+
|
|
46
|
+
- model: `grok-imagine-video`
|
|
47
|
+
- endpoint: `POST /v1/videos/generations`
|
|
48
|
+
- poll endpoint: `GET /v1/videos/{request_id}`
|
|
49
|
+
- T2V and I2V both work through progrok at `127.0.0.1:18645`
|
|
50
|
+
- I2V accepts `image.url` and follows source image ratio when `aspect_ratio`
|
|
51
|
+
is omitted
|
|
52
|
+
- resolution v1 scope: `480p` and `720p`
|
|
53
|
+
- duration v1 scope: 1-15 seconds for T2V/I2V
|
|
54
|
+
- poll statuses to handle: `pending`, `done`, `failed`, `expired`
|
|
55
|
+
- completed video URLs are temporary and must be downloaded into local history
|
|
56
|
+
|
|
57
|
+
## Product Integration
|
|
58
|
+
|
|
59
|
+
### UI Placement
|
|
60
|
+
|
|
61
|
+
Add video actions at the artifact action layer shown in the screenshot:
|
|
62
|
+
|
|
63
|
+
- `Video` / `Animate` button beside `Continue Here`
|
|
64
|
+
- For image result cards: default mode is I2V using that image as source
|
|
65
|
+
- For prompt-only composer: allow T2V from a video mode dropdown or segmented
|
|
66
|
+
control in the same provider/model layer as `grok` and `grok+`
|
|
67
|
+
- For Node Mode: node result action -> Animate node
|
|
68
|
+
- For Agent Mode: current image action -> Animate, plus Agent tool
|
|
69
|
+
`ima2.generate_video`
|
|
70
|
+
|
|
71
|
+
### Provider / Model Layer
|
|
72
|
+
|
|
73
|
+
Keep the model layer parallel to current image models:
|
|
74
|
+
|
|
75
|
+
| UI label | model | mode |
|
|
76
|
+
|---|---|---|
|
|
77
|
+
| `grok` | `grok-imagine-image` | image |
|
|
78
|
+
| `grok+` | `grok-imagine-image-quality` | image |
|
|
79
|
+
| `video` | `grok-imagine-video` | video |
|
|
80
|
+
|
|
81
|
+
Video generation still uses `provider: "grok"` because progrok is the runtime.
|
|
82
|
+
Do not create a separate provider named `video`.
|
|
83
|
+
|
|
84
|
+
Do not add `grok-imagine-video` to image model unions or image model helpers.
|
|
85
|
+
The current image helpers classify `grok-` prefixed strings as image models, so
|
|
86
|
+
video needs a separate generation kind:
|
|
87
|
+
|
|
88
|
+
- `provider: "grok"`
|
|
89
|
+
- `generationKind: "image" | "video"`
|
|
90
|
+
- `GrokImageModel = "grok-imagine-image" | "grok-imagine-image-quality"`
|
|
91
|
+
- `GrokVideoModel = "grok-imagine-video"`
|
|
92
|
+
|
|
93
|
+
### Prompt Pipeline
|
|
94
|
+
|
|
95
|
+
Use a new planner tool rather than direct video endpoint prompts:
|
|
96
|
+
|
|
97
|
+
Tool name: `generate_video`
|
|
98
|
+
|
|
99
|
+
Planner args:
|
|
100
|
+
|
|
101
|
+
```json
|
|
102
|
+
{
|
|
103
|
+
"prompt": "English final video prompt",
|
|
104
|
+
"model": "grok-imagine-video",
|
|
105
|
+
"mode": "text-to-video",
|
|
106
|
+
"duration": 5,
|
|
107
|
+
"aspect_ratio": "16:9",
|
|
108
|
+
"resolution": "480p"
|
|
109
|
+
}
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
For I2V:
|
|
113
|
+
|
|
114
|
+
```json
|
|
115
|
+
{
|
|
116
|
+
"prompt": "English final video prompt",
|
|
117
|
+
"model": "grok-imagine-video",
|
|
118
|
+
"mode": "image-to-video",
|
|
119
|
+
"duration": 5,
|
|
120
|
+
"resolution": "480p"
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Prompt requirements:
|
|
125
|
+
|
|
126
|
+
- final video prompt must be English
|
|
127
|
+
- preserve explicitly requested visible text verbatim
|
|
128
|
+
- include motion/camera/action guidance
|
|
129
|
+
- include continuity constraints for I2V:
|
|
130
|
+
- preserve subject identity
|
|
131
|
+
- preserve composition unless asked otherwise
|
|
132
|
+
- use source image as first frame / starting point
|
|
133
|
+
|
|
134
|
+
Product policy:
|
|
135
|
+
|
|
136
|
+
- Always run the Grok planner for product flows, even though upstream I2V can
|
|
137
|
+
technically omit `prompt`.
|
|
138
|
+
- The planner may refine `prompt` and infer `mode`, but UI/request settings win
|
|
139
|
+
for `duration`, `resolution`, and `aspect_ratio`.
|
|
140
|
+
- Always send explicit `duration`; do not rely on upstream defaults.
|
|
141
|
+
- In I2V, include the source image in the planner vision payload so the planner
|
|
142
|
+
can write continuity constraints from the actual image.
|
|
143
|
+
- Keep web search mandatory for v1 parity with existing Grok image behavior.
|
|
144
|
+
A future optimization can skip search for pure local I2V animation.
|
|
145
|
+
|
|
146
|
+
## Backend Implementation Plan
|
|
147
|
+
|
|
148
|
+
### Phase 1: Types / Config / Capabilities
|
|
149
|
+
|
|
150
|
+
Files:
|
|
151
|
+
|
|
152
|
+
- `config.ts`
|
|
153
|
+
- `lib/imageModels.ts`
|
|
154
|
+
- `ui/src/lib/imageModels.ts`
|
|
155
|
+
- `ui/src/types.ts`
|
|
156
|
+
- `routes/capabilities.ts`
|
|
157
|
+
|
|
158
|
+
Add:
|
|
159
|
+
|
|
160
|
+
- `grokProvider.defaultVideoModel = "grok-imagine-video"`
|
|
161
|
+
- `grokProvider.videoPollIntervalMs = 5_000`
|
|
162
|
+
- `grokProvider.videoTimeoutMs = 900_000`
|
|
163
|
+
- `grokProvider.videoDownloadTimeoutMs = 120_000`
|
|
164
|
+
- `VideoModel = "grok-imagine-video"`
|
|
165
|
+
- `VideoDuration = 1..15`
|
|
166
|
+
- `VideoResolution = "480p" | "720p"`
|
|
167
|
+
- `VideoAspectRatio = "1:1" | "16:9" | "9:16" | "4:3" | "3:4" | "3:2" | "2:3" | "auto"`
|
|
168
|
+
- separate `GrokVideoModel` / `isGrokVideoModel()` helpers
|
|
169
|
+
- do not extend `VALID_GROK_IMAGE_MODELS` with video
|
|
170
|
+
|
|
171
|
+
### Phase 2: Grok Video Adapter
|
|
172
|
+
|
|
173
|
+
New file:
|
|
174
|
+
|
|
175
|
+
- `lib/grokVideoAdapter.ts`
|
|
176
|
+
|
|
177
|
+
Responsibilities:
|
|
178
|
+
|
|
179
|
+
- run search + `grok-4.3` planner with forced `generate_video`
|
|
180
|
+
- build `/v1/videos/generations` payload
|
|
181
|
+
- validate T2V/I2V/reference-to-video mutually exclusive modes
|
|
182
|
+
- start async request and receive `request_id`
|
|
183
|
+
- poll `/v1/videos/{request_id}`
|
|
184
|
+
- download final mp4
|
|
185
|
+
- return `{ videoB64? | videoBuffer, url, duration, usage, revisedPrompt, requestId }`
|
|
186
|
+
|
|
187
|
+
Polling contract:
|
|
188
|
+
|
|
189
|
+
- use a short start-request timeout separately from the total poll budget
|
|
190
|
+
- total poll budget defaults to 15 minutes
|
|
191
|
+
- polling interval defaults to 5 seconds
|
|
192
|
+
- unchanged progress for several minutes should emit a warning/progress event,
|
|
193
|
+
not an error
|
|
194
|
+
- client cancellation stops local polling and marks the inflight job canceled;
|
|
195
|
+
xAI may continue processing the upstream job
|
|
196
|
+
- normalize names as `clientRequestId` and `xaiVideoRequestId`
|
|
197
|
+
|
|
198
|
+
Error codes:
|
|
199
|
+
|
|
200
|
+
| Code | Meaning |
|
|
201
|
+
|---|---|
|
|
202
|
+
| `GROK_VIDEO_REQUEST_FAILED` | non-2xx start response |
|
|
203
|
+
| `GROK_VIDEO_POLL_FAILED` | non-2xx poll response |
|
|
204
|
+
| `GROK_VIDEO_FAILED` | status `failed` |
|
|
205
|
+
| `GROK_VIDEO_EXPIRED` | status `expired` |
|
|
206
|
+
| `GROK_VIDEO_TIMEOUT` | poll budget exceeded |
|
|
207
|
+
| `GROK_VIDEO_EMPTY_RESPONSE` | done without video URL |
|
|
208
|
+
| `GROK_VIDEO_MODERATION_BLOCKED` | done but `respect_moderation` is false or URL is suppressed |
|
|
209
|
+
| `GROK_VIDEO_DOWNLOAD_FAILED` | mp4 download failed |
|
|
210
|
+
| `GROK_VIDEO_INVALID_MODE` | mixed image/reference/video modes |
|
|
211
|
+
| `GROK_VIDEO_REF_TOO_MANY` | reference-to-video over 7 refs |
|
|
212
|
+
|
|
213
|
+
xAI `failed.error.code` mapping:
|
|
214
|
+
|
|
215
|
+
| xAI code | ima2 code / response |
|
|
216
|
+
|---|---|
|
|
217
|
+
| `invalid_argument` | `GROK_VIDEO_REQUEST_FAILED`, HTTP 400 |
|
|
218
|
+
| `permission_denied` | `GROK_VIDEO_REQUEST_FAILED`, HTTP 403 |
|
|
219
|
+
| `failed_precondition` | `GROK_VIDEO_REQUEST_FAILED`, HTTP 412 |
|
|
220
|
+
| `service_unavailable` | `GROK_VIDEO_POLL_FAILED`, HTTP 502 with retry hint |
|
|
221
|
+
| `internal_error` | `GROK_VIDEO_FAILED`, HTTP 502 |
|
|
222
|
+
|
|
223
|
+
### Phase 3: Storage / History
|
|
224
|
+
|
|
225
|
+
Add video artifact storage:
|
|
226
|
+
|
|
227
|
+
- write `.mp4` to generated dir
|
|
228
|
+
- write `.mp4.json` sidecar
|
|
229
|
+
- add `mediaType: "image" | "video"` metadata
|
|
230
|
+
- add `video.duration`, `video.resolution`, `video.aspectRatio`, `sourceImageId`
|
|
231
|
+
- gallery/history payload should include enough data to render video cards
|
|
232
|
+
- update history scanning to include `.mp4`
|
|
233
|
+
- use sidecar metadata for video; do not attempt image XMP embedding
|
|
234
|
+
- optionally add a poster thumbnail later, but v1 can render `<video controls>`
|
|
235
|
+
|
|
236
|
+
Do not rely on xAI temporary URLs for app history.
|
|
237
|
+
|
|
238
|
+
History row additions:
|
|
239
|
+
|
|
240
|
+
```ts
|
|
241
|
+
type GeneratedMediaItem = {
|
|
242
|
+
mediaType: "image" | "video";
|
|
243
|
+
url: string;
|
|
244
|
+
video?: {
|
|
245
|
+
duration: number | null;
|
|
246
|
+
resolution: "480p" | "720p";
|
|
247
|
+
aspectRatio: VideoAspectRatio;
|
|
248
|
+
sourceImageFilename?: string;
|
|
249
|
+
xaiVideoRequestId?: string;
|
|
250
|
+
};
|
|
251
|
+
};
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
### Phase 4: API Routes
|
|
255
|
+
|
|
256
|
+
New route:
|
|
257
|
+
|
|
258
|
+
- `POST /api/video/generate`
|
|
259
|
+
|
|
260
|
+
Body:
|
|
261
|
+
|
|
262
|
+
```json
|
|
263
|
+
{
|
|
264
|
+
"prompt": "animate this image",
|
|
265
|
+
"provider": "grok",
|
|
266
|
+
"model": "grok-imagine-video",
|
|
267
|
+
"mode": "image-to-video",
|
|
268
|
+
"sourceImage": "data:image/png;base64,...",
|
|
269
|
+
"sourceFilename": "optional existing generated file",
|
|
270
|
+
"duration": 5,
|
|
271
|
+
"aspectRatio": "auto",
|
|
272
|
+
"resolution": "480p",
|
|
273
|
+
"clientRequestId": "client-id"
|
|
274
|
+
}
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
Response should use SSE for long-running progress:
|
|
278
|
+
|
|
279
|
+
- `phase: planning`
|
|
280
|
+
- `phase: submitted` with `xaiVideoRequestId`
|
|
281
|
+
- `progress` with poll progress
|
|
282
|
+
- `done` with local mp4 artifact
|
|
283
|
+
- `error` with normalized error code
|
|
284
|
+
|
|
285
|
+
Inflight mapping:
|
|
286
|
+
|
|
287
|
+
| SSE phase | inflight phase | Meaning |
|
|
288
|
+
|---|---|---|
|
|
289
|
+
| `planning` | `planning` | web search + `grok-4.3` planner |
|
|
290
|
+
| `submitted` | `submitted` | xAI accepted job and returned request id |
|
|
291
|
+
| `progress` | `polling` | async video rendering progress |
|
|
292
|
+
| `done` | `decoding` -> terminal | download/write local mp4 |
|
|
293
|
+
| `error` | terminal | normalized error |
|
|
294
|
+
|
|
295
|
+
### Phase 5: Node Mode
|
|
296
|
+
|
|
297
|
+
Use cases:
|
|
298
|
+
|
|
299
|
+
- Animate selected node
|
|
300
|
+
- Animate current/generated image result into video
|
|
301
|
+
- Save resulting video as an artifact linked to the node/session
|
|
302
|
+
|
|
303
|
+
Contract:
|
|
304
|
+
|
|
305
|
+
- v1 does not mutate node graph schema into video nodes
|
|
306
|
+
- parent/current node image becomes `image` for I2V
|
|
307
|
+
- prompt goes through `grok-4.3` video planner
|
|
308
|
+
- result becomes a video artifact linked to the session/history
|
|
309
|
+
- node toolbar shows an `Animate` icon/action when `d.imageUrl` exists
|
|
310
|
+
- a later v2 can add `videoUrl` / `mediaKind` to node data if video nodes are needed
|
|
311
|
+
|
|
312
|
+
### Phase 6: Agent Mode
|
|
313
|
+
|
|
314
|
+
Add tool:
|
|
315
|
+
|
|
316
|
+
- `ima2.generate_video`
|
|
317
|
+
|
|
318
|
+
Agent behavior:
|
|
319
|
+
|
|
320
|
+
- if current image exists: default I2V
|
|
321
|
+
- if no current image: T2V
|
|
322
|
+
- tool turn should display video generation progress
|
|
323
|
+
- completed video appears in chat artifact list and right image/video pane
|
|
324
|
+
|
|
325
|
+
Agent contract:
|
|
326
|
+
|
|
327
|
+
- extend allowed tools with `ima2.generate_video`
|
|
328
|
+
- tool args: `{ prompt, mode?, duration?, resolution?, aspectRatio? }`
|
|
329
|
+
- runtime auto-selects I2V when a current image artifact exists
|
|
330
|
+
- add video artifact ids or generic media artifact ids to queue/tool summaries
|
|
331
|
+
- capabilities should report final artifacts as mixed image/video, not image-only
|
|
332
|
+
- Agent UI should show the same progress phases as `/api/video/generate`
|
|
333
|
+
|
|
334
|
+
### Phase 7: UI
|
|
335
|
+
|
|
336
|
+
Components to touch:
|
|
337
|
+
|
|
338
|
+
- result action row
|
|
339
|
+
- `ResultActions`
|
|
340
|
+
- history/gallery cards
|
|
341
|
+
- Node canvas selected node toolbar
|
|
342
|
+
- Agent tool folding and artifact pane
|
|
343
|
+
- right panel model/provider controls
|
|
344
|
+
|
|
345
|
+
UX:
|
|
346
|
+
|
|
347
|
+
- `grok`, `grok+`, `video` live in the same model/provider layer
|
|
348
|
+
- internally, video is a generation kind, not an image model
|
|
349
|
+
- video settings are compact:
|
|
350
|
+
- duration stepper/select
|
|
351
|
+
- resolution segmented control
|
|
352
|
+
- aspect ratio dropdown
|
|
353
|
+
- source mode badge: T2V / I2V / Reference
|
|
354
|
+
- video generation shows real async progress
|
|
355
|
+
- generated video card has play/download/copy prompt/continue actions
|
|
356
|
+
- image result cards get an `Animate` action beside `Continue Here`
|
|
357
|
+
- Node Mode gets an icon-only `Animate` action in the selected node toolbar
|
|
358
|
+
- Agent image pane gets a header `Animate` action for the current image
|
|
359
|
+
|
|
360
|
+
### Phase 8: Tests
|
|
361
|
+
|
|
362
|
+
Add contract tests before implementation:
|
|
363
|
+
|
|
364
|
+
- adapter builds T2V payload
|
|
365
|
+
- adapter builds I2V payload with `image`
|
|
366
|
+
- adapter rejects mixed `image` + `reference_images`
|
|
367
|
+
- adapter polls pending -> done
|
|
368
|
+
- adapter handles failed/expired/timeout
|
|
369
|
+
- route streams progress and done
|
|
370
|
+
- route saves `.mp4` + sidecar
|
|
371
|
+
- history scanner includes `.mp4` video rows
|
|
372
|
+
- moderation-suppressed done responses map to `GROK_VIDEO_MODERATION_BLOCKED`
|
|
373
|
+
- failed poll `error.code` maps to normalized error codes
|
|
374
|
+
- UI/request settings override planner duration/resolution/aspect fields
|
|
375
|
+
- inflight `kind=video` phase transitions are recorded
|
|
376
|
+
- Node action sends parent image as I2V source
|
|
377
|
+
- Agent tool turn includes `ima2.generate_video`
|
|
378
|
+
- UI exposes `video` alongside `grok` / `grok+`
|
|
379
|
+
- no `partial` image event assumptions leak into video path
|
|
380
|
+
|
|
381
|
+
### Phase 9: E2E
|
|
382
|
+
|
|
383
|
+
Use progrok live smoke only after contract tests pass:
|
|
384
|
+
|
|
385
|
+
- T2V 1 second, 480p
|
|
386
|
+
- I2V 1 second, 480p, generated image source
|
|
387
|
+
- UI action from result card
|
|
388
|
+
- Node action from node result
|
|
389
|
+
- Agent action from current image
|
|
390
|
+
|
|
391
|
+
## Open Decisions
|
|
392
|
+
|
|
393
|
+
1. Label: `video`, `grok video`, or `animate`
|
|
394
|
+
- Recommended: `Video` in model/provider layer, `Animate` on image cards.
|
|
395
|
+
|
|
396
|
+
2. Default duration
|
|
397
|
+
- Recommended: 5 seconds in UI, 1 second in tests/smokes.
|
|
398
|
+
|
|
399
|
+
3. Default resolution
|
|
400
|
+
- Recommended: 480p to control cost and speed; allow 720p.
|
|
401
|
+
|
|
402
|
+
4. I2V aspect ratio
|
|
403
|
+
- Recommended: `auto` by default so source image ratio is preserved.
|
|
404
|
+
|
|
405
|
+
5. Reference-to-video v1
|
|
406
|
+
- Recommended: defer from first implementation unless references already
|
|
407
|
+
exist in the selected context. T2V/I2V are required; reference-to-video can
|
|
408
|
+
share adapter primitives.
|
|
409
|
+
|
|
410
|
+
## Verification Already Completed
|
|
411
|
+
|
|
412
|
+
- Branch created: `feat/grok-video-i2v`
|
|
413
|
+
- xAI docs reviewed
|
|
414
|
+
- progrok model list includes `grok-imagine-video`
|
|
415
|
+
- I2V live request succeeded
|
|
416
|
+
- T2V live request succeeded
|
|
417
|
+
- Both mp4 files downloaded and inspected with `ffprobe`
|
|
418
|
+
- Ryo backend review: NEEDS_FIX before implementation; fixes incorporated above
|
|
419
|
+
- Nijika frontend review: NEEDS_FIX before implementation; fixes incorporated above
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# Grok Video T2V/I2V Research
|
|
2
|
+
|
|
3
|
+
Date: 2026-05-30
|
|
4
|
+
Branch: `feat/grok-video-i2v`
|
|
5
|
+
|
|
6
|
+
## Official xAI Video Spec
|
|
7
|
+
|
|
8
|
+
Sources checked:
|
|
9
|
+
|
|
10
|
+
- https://docs.x.ai/developers/model-capabilities/video/generation
|
|
11
|
+
- https://docs.x.ai/developers/model-capabilities/video/image-to-video
|
|
12
|
+
- https://docs.x.ai/developers/model-capabilities/video/reference-to-video
|
|
13
|
+
- https://docs.x.ai/developers/rest-api-reference/inference/videos
|
|
14
|
+
- https://docs.x.ai/developers/models/grok-imagine-video
|
|
15
|
+
|
|
16
|
+
### Model
|
|
17
|
+
|
|
18
|
+
| Field | Value |
|
|
19
|
+
|---|---|
|
|
20
|
+
| Video model | `grok-imagine-video` |
|
|
21
|
+
| Regions | `us-east-1`, `eu-west-1` |
|
|
22
|
+
| API endpoint | `POST /v1/videos/generations` |
|
|
23
|
+
| Poll endpoint | `GET /v1/videos/{request_id}` |
|
|
24
|
+
| Result | temporary `.mp4` URL |
|
|
25
|
+
|
|
26
|
+
### Generation Request
|
|
27
|
+
|
|
28
|
+
```json
|
|
29
|
+
{
|
|
30
|
+
"model": "grok-imagine-video",
|
|
31
|
+
"prompt": "A concise video prompt",
|
|
32
|
+
"duration": 5,
|
|
33
|
+
"aspect_ratio": "16:9",
|
|
34
|
+
"resolution": "720p"
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Image-to-Video Request
|
|
39
|
+
|
|
40
|
+
```json
|
|
41
|
+
{
|
|
42
|
+
"model": "grok-imagine-video",
|
|
43
|
+
"prompt": "Animate the still image with a slow camera push-in",
|
|
44
|
+
"image": { "url": "https://example.com/source.png" },
|
|
45
|
+
"duration": 5,
|
|
46
|
+
"resolution": "480p"
|
|
47
|
+
}
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
The `image` value can be a public image URL or a base64 data URI. For I2V, xAI
|
|
51
|
+
defaults the output to the input image's aspect ratio. Supplying `aspect_ratio`
|
|
52
|
+
overrides that and can stretch the image.
|
|
53
|
+
|
|
54
|
+
### Reference-to-Video Request
|
|
55
|
+
|
|
56
|
+
```json
|
|
57
|
+
{
|
|
58
|
+
"model": "grok-imagine-video",
|
|
59
|
+
"prompt": "Use <IMAGE_1> as the subject and <IMAGE_2> as wardrobe guidance",
|
|
60
|
+
"reference_images": [
|
|
61
|
+
{ "url": "https://example.com/ref-1.png" },
|
|
62
|
+
{ "url": "https://example.com/ref-2.png" }
|
|
63
|
+
],
|
|
64
|
+
"duration": 10,
|
|
65
|
+
"aspect_ratio": "16:9",
|
|
66
|
+
"resolution": "720p"
|
|
67
|
+
}
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Reference-to-video constraints:
|
|
71
|
+
|
|
72
|
+
- non-empty `prompt` required
|
|
73
|
+
- maximum 7 reference images
|
|
74
|
+
- maximum duration 10 seconds
|
|
75
|
+
- cannot be combined with I2V `image` or video edit in the same request
|
|
76
|
+
|
|
77
|
+
### Poll Response
|
|
78
|
+
|
|
79
|
+
Pending:
|
|
80
|
+
|
|
81
|
+
```json
|
|
82
|
+
{
|
|
83
|
+
"status": "pending",
|
|
84
|
+
"progress": 88
|
|
85
|
+
}
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Done:
|
|
89
|
+
|
|
90
|
+
```json
|
|
91
|
+
{
|
|
92
|
+
"status": "done",
|
|
93
|
+
"video": {
|
|
94
|
+
"url": "https://vidgen.x.ai/.../video.mp4",
|
|
95
|
+
"duration": 1,
|
|
96
|
+
"respect_moderation": true
|
|
97
|
+
},
|
|
98
|
+
"model": "grok-imagine-video",
|
|
99
|
+
"usage": {
|
|
100
|
+
"cost_in_usd_ticks": 500000000
|
|
101
|
+
},
|
|
102
|
+
"progress": 100
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
Status values to handle:
|
|
107
|
+
|
|
108
|
+
- `pending`
|
|
109
|
+
- `done`
|
|
110
|
+
- `failed`
|
|
111
|
+
- `expired`
|
|
112
|
+
|
|
113
|
+
### Constraints
|
|
114
|
+
|
|
115
|
+
| Parameter | Allowed / behavior |
|
|
116
|
+
|---|---|
|
|
117
|
+
| `duration` | 1-15 seconds for T2V/I2V |
|
|
118
|
+
| `duration` with reference images | 1-10 seconds |
|
|
119
|
+
| `aspect_ratio` | `1:1`, `16:9`, `9:16`, `4:3`, `3:4`, `3:2`, `2:3` |
|
|
120
|
+
| default aspect ratio | `16:9` for T2V, source image ratio for I2V |
|
|
121
|
+
| `resolution` | `480p`, `720p` |
|
|
122
|
+
| default resolution | `480p` |
|
|
123
|
+
| video edit input max | 8.7 seconds |
|
|
124
|
+
| video extension input | 2-15 seconds |
|
|
125
|
+
| extension duration | 2-10 seconds |
|
|
126
|
+
| generated URL | temporary; download promptly |
|
|
127
|
+
|
|
128
|
+
### Pricing Observed / Documented
|
|
129
|
+
|
|
130
|
+
Model page documents:
|
|
131
|
+
|
|
132
|
+
- image input: `$0.002`
|
|
133
|
+
- video input/extension input: `$0.01` per second
|
|
134
|
+
- generation output:
|
|
135
|
+
- `480p`: `$0.05` per second
|
|
136
|
+
- `720p`: `$0.07` per second
|
|
137
|
+
|
|
138
|
+
Live experiment usage:
|
|
139
|
+
|
|
140
|
+
- I2V 1s 480p with image input: `cost_in_usd_ticks = 520000000`
|
|
141
|
+
- T2V 1s 480p: `cost_in_usd_ticks = 500000000`
|
|
142
|
+
|
|
143
|
+
## Live Progrok Experiments
|
|
144
|
+
|
|
145
|
+
Environment:
|
|
146
|
+
|
|
147
|
+
- progrok listening: `127.0.0.1:18645`
|
|
148
|
+
- model list includes `grok-imagine-video`
|
|
149
|
+
|
|
150
|
+
### I2V
|
|
151
|
+
|
|
152
|
+
Request:
|
|
153
|
+
|
|
154
|
+
```json
|
|
155
|
+
{
|
|
156
|
+
"model": "grok-imagine-video",
|
|
157
|
+
"prompt": "Animate this still image into a calm 1-second cinematic shot with a slow camera push-in and subtle star shimmer. Keep the composition stable.",
|
|
158
|
+
"image": {
|
|
159
|
+
"url": "https://docs.x.ai/assets/api-examples/video/milkyway-still.png"
|
|
160
|
+
},
|
|
161
|
+
"duration": 1,
|
|
162
|
+
"resolution": "480p"
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
Result:
|
|
167
|
+
|
|
168
|
+
- request id: `5c5a7702-afbd-91e0-9535-3396f995cf5f`
|
|
169
|
+
- status: `done`
|
|
170
|
+
- duration: `1`
|
|
171
|
+
- downloaded file: `/tmp/ima2-grok-video-e2e/i2v.mp4`
|
|
172
|
+
- ffprobe: H.264, `768x384`, `1.041667s`, `795537` bytes
|
|
173
|
+
|
|
174
|
+
Observation:
|
|
175
|
+
|
|
176
|
+
- I2V output followed the source image ratio rather than a square or default
|
|
177
|
+
16:9 ratio because `aspect_ratio` was omitted.
|
|
178
|
+
|
|
179
|
+
### T2V
|
|
180
|
+
|
|
181
|
+
Request:
|
|
182
|
+
|
|
183
|
+
```json
|
|
184
|
+
{
|
|
185
|
+
"model": "grok-imagine-video",
|
|
186
|
+
"prompt": "A 1-second clean product-style shot of a small glass cube rotating slowly on a white studio background.",
|
|
187
|
+
"duration": 1,
|
|
188
|
+
"aspect_ratio": "1:1",
|
|
189
|
+
"resolution": "480p"
|
|
190
|
+
}
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Result:
|
|
194
|
+
|
|
195
|
+
- request id: `33200de3-7bc0-98b4-b66f-1d5510d17a57`
|
|
196
|
+
- status: `done`
|
|
197
|
+
- duration: `1`
|
|
198
|
+
- downloaded file: `/tmp/ima2-grok-video-e2e/t2v.mp4`
|
|
199
|
+
- ffprobe: H.264, `480x480`, `1.041667s`, `93795` bytes
|
|
200
|
+
|
|
201
|
+
Observation:
|
|
202
|
+
|
|
203
|
+
- T2V can remain `pending` at the same progress value for several minutes.
|
|
204
|
+
Implement polling as a long-running in-flight job, not a short route timeout.
|
|
@@ -4,7 +4,7 @@ Generated by `npm run test:inventory` (script: `scripts/classify-tests.mjs`).
|
|
|
4
4
|
|
|
5
5
|
_Tests considered "runtime-importing" if they import from `../lib/`, `../routes/`, `../bin/`, `../server`, or `../config`._
|
|
6
6
|
|
|
7
|
-
Total:
|
|
7
|
+
Total: 167 (runtime: 54, contract: 113)
|
|
8
8
|
|
|
9
9
|
## Runtime-importing tests
|
|
10
10
|
- `tests/agent-mode-auto-planner-contract.test.ts`
|
|
@@ -23,8 +23,12 @@ Total: 156 (runtime: 46, contract: 110)
|
|
|
23
23
|
- `tests/error-classify.test.ts`
|
|
24
24
|
- `tests/generate-route-validation-error.test.ts`
|
|
25
25
|
- `tests/generation-errors.test.ts`
|
|
26
|
+
- `tests/grok-planner-adapter.test.ts`
|
|
27
|
+
- `tests/grok-size-mapper.test.ts`
|
|
28
|
+
- `tests/grokVideoAdapter.test.ts`
|
|
26
29
|
- `tests/history-metadata-fallback.test.ts`
|
|
27
30
|
- `tests/history-tombstone.test.ts`
|
|
31
|
+
- `tests/history-video-row.test.ts`
|
|
28
32
|
- `tests/image-metadata-route.test.ts`
|
|
29
33
|
- `tests/image-metadata-xmp.test.ts`
|
|
30
34
|
- `tests/image-model.test.ts`
|
|
@@ -47,12 +51,16 @@ Total: 156 (runtime: 46, contract: 110)
|
|
|
47
51
|
- `tests/reference-image-compress.test.ts`
|
|
48
52
|
- `tests/refs-size.test.ts`
|
|
49
53
|
- `tests/request-logging.test.ts`
|
|
54
|
+
- `tests/responses-adapter-safety.test.ts`
|
|
55
|
+
- `tests/responses-empty-taxonomy.test.ts`
|
|
56
|
+
- `tests/responses-parse-diagnostics.test.ts`
|
|
50
57
|
- `tests/runtime-context-normalize.test.ts`
|
|
51
58
|
- `tests/runtime-ports.test.ts`
|
|
52
59
|
- `tests/serve-ui-build-contract.test.ts`
|
|
53
60
|
- `tests/star-prompt.test.ts`
|
|
54
61
|
- `tests/storage-migration.test.ts`
|
|
55
62
|
- `tests/style-sheet.test.ts`
|
|
63
|
+
- `tests/videoRoute.test.ts`
|
|
56
64
|
|
|
57
65
|
## Contract-only tests
|
|
58
66
|
- `tests/agent-mode-frontend-contract.test.js`
|
|
@@ -123,6 +131,8 @@ Total: 156 (runtime: 46, contract: 110)
|
|
|
123
131
|
- `tests/inflight-list-tooltip-contract.test.js`
|
|
124
132
|
- `tests/inflight-reload-race.test.js`
|
|
125
133
|
- `tests/inflight-reload-reconcile-contract.test.js`
|
|
134
|
+
- `tests/issue75-prompt-studio-state-contract.test.js`
|
|
135
|
+
- `tests/issue77-long-prompt-preview-contract.test.js`
|
|
126
136
|
- `tests/mobile-generate-entry-contract.test.js`
|
|
127
137
|
- `tests/multimode-backend-contract.test.js`
|
|
128
138
|
- `tests/multimode-concurrent-store-contract.test.js`
|
|
@@ -150,6 +160,7 @@ Total: 156 (runtime: 46, contract: 110)
|
|
|
150
160
|
- `tests/prompt-import-folder-ui-contract.test.js`
|
|
151
161
|
- `tests/prompt-import-search-ux-contract.test.js`
|
|
152
162
|
- `tests/prompt-library-ui-contract.test.js`
|
|
163
|
+
- `tests/prompt-studio-docs-contract.test.js`
|
|
153
164
|
- `tests/prompt-studio-ui-contract.test.js`
|
|
154
165
|
- `tests/server-fallback-contract.test.js`
|
|
155
166
|
- `tests/server.test.js`
|