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
package/config.ts
CHANGED
|
@@ -195,6 +195,11 @@ export const config = {
|
|
|
195
195
|
fileCfg.oauth?.maskedEditEnabled,
|
|
196
196
|
false,
|
|
197
197
|
),
|
|
198
|
+
forceImageToolChoice: pickBool(
|
|
199
|
+
env.IMA2_OAUTH_FORCE_IMAGE_TOOL_CHOICE,
|
|
200
|
+
fileCfg.oauth?.forceImageToolChoice,
|
|
201
|
+
true,
|
|
202
|
+
),
|
|
198
203
|
researchSuffix: pickStr(
|
|
199
204
|
env.IMA2_RESEARCH_SUFFIX,
|
|
200
205
|
fileCfg.oauth?.researchSuffix,
|
|
@@ -272,6 +277,22 @@ export const config = {
|
|
|
272
277
|
defaultSize: pickStr(env.IMA2_API_IMAGE_SIZE, fileCfg.apiProvider?.defaultSize, "1024x1024"),
|
|
273
278
|
allowWebSearch: pickBool(env.IMA2_API_ALLOW_WEB_SEARCH, fileCfg.apiProvider?.allowWebSearch, true),
|
|
274
279
|
},
|
|
280
|
+
grokProvider: {
|
|
281
|
+
proxyPort: pickInt(env.IMA2_GROK_PROXY_PORT, fileCfg.grokProvider?.proxyPort, 18645),
|
|
282
|
+
proxyHost: pickStr(env.IMA2_GROK_PROXY_HOST, fileCfg.grokProvider?.proxyHost, "127.0.0.1"),
|
|
283
|
+
autoStart: !pickBool(env.IMA2_NO_GROK_PROXY, fileCfg.grokProvider?.disableAutoStart, false),
|
|
284
|
+
restartDelayMs: pickInt(env.IMA2_GROK_RESTART_DELAY_MS, fileCfg.grokProvider?.restartDelayMs, 2000),
|
|
285
|
+
plannerModel: pickStr(env.IMA2_GROK_PLANNER_MODEL, fileCfg.grokProvider?.plannerModel, "grok-4.3"),
|
|
286
|
+
plannerTimeoutMs: pickInt(env.IMA2_GROK_PLANNER_TIMEOUT_MS, fileCfg.grokProvider?.plannerTimeoutMs, 60_000),
|
|
287
|
+
defaultImageModel: pickStr(env.IMA2_GROK_IMAGE_MODEL_DEFAULT, fileCfg.grokProvider?.defaultImageModel, "grok-imagine-image"),
|
|
288
|
+
generationTimeoutMs: pickInt(env.IMA2_GROK_GENERATION_TIMEOUT_MS, fileCfg.grokProvider?.generationTimeoutMs, 120_000),
|
|
289
|
+
statusTimeoutMs: pickInt(env.IMA2_GROK_STATUS_TIMEOUT_MS, fileCfg.grokProvider?.statusTimeoutMs, 3000),
|
|
290
|
+
defaultVideoModel: pickStr(env.IMA2_GROK_VIDEO_MODEL_DEFAULT, fileCfg.grokProvider?.defaultVideoModel, "grok-imagine-video"),
|
|
291
|
+
videoStartTimeoutMs: pickInt(env.IMA2_GROK_VIDEO_START_TIMEOUT_MS, fileCfg.grokProvider?.videoStartTimeoutMs, 60_000),
|
|
292
|
+
videoPollIntervalMs: pickInt(env.IMA2_GROK_VIDEO_POLL_INTERVAL_MS, fileCfg.grokProvider?.videoPollIntervalMs, 5_000),
|
|
293
|
+
videoTimeoutMs: pickInt(env.IMA2_GROK_VIDEO_TIMEOUT_MS, fileCfg.grokProvider?.videoTimeoutMs, 900_000),
|
|
294
|
+
videoDownloadTimeoutMs: pickInt(env.IMA2_GROK_VIDEO_DOWNLOAD_TIMEOUT_MS, fileCfg.grokProvider?.videoDownloadTimeoutMs, 120_000),
|
|
295
|
+
},
|
|
275
296
|
log: {
|
|
276
297
|
level: pickStr(env.IMA2_LOG_LEVEL, fileCfg.log?.level, defaultLogLevelForEnv(env)),
|
|
277
298
|
pretty: env.NODE_ENV !== "production",
|
package/docs/API.md
CHANGED
|
@@ -10,14 +10,21 @@ http://localhost:3333
|
|
|
10
10
|
|
|
11
11
|
## Provider Policy
|
|
12
12
|
|
|
13
|
-
Image generation supports
|
|
13
|
+
Image generation supports OAuth, API-key, and Grok providers.
|
|
14
14
|
|
|
15
15
|
- `provider: "oauth"` uses the local Codex OAuth proxy.
|
|
16
16
|
- `provider: "api"` uses the OpenAI Responses API with the hosted `image_generation` tool.
|
|
17
|
+
- `provider: "grok"` uses the bundled progrok xAI proxy. Classic, Node, and Agent generation run mandatory xAI Web Search through `/v1/responses`, then run a `grok-4.3` planner call with a forced local `generate_image` function, then ima2 executes xAI `/v1/images/generations`. If reference images, a Node parent image, or an Agent current image are attached, the final step switches to xAI `/v1/images/edits` so image-to-image context is preserved.
|
|
17
18
|
- API-key generation covers classic generate, edit, mask-guided edit, multimode, and node generation.
|
|
18
19
|
- If `provider: "api"` is requested without an API key, routes fail before upstream with `401` and `API_KEY_REQUIRED`.
|
|
20
|
+
- Grok generation maps `size` to xAI `aspect_ratio` and `resolution`; it does not send an OpenAI-style `size` field upstream. Grok edit uses xAI `/v1/images/edits`; Grok mask edit remains unsupported and returns `GROK_MASK_UNSUPPORTED`.
|
|
19
21
|
- Mask edits are mask/selection guided edits, not pixel-perfect inpaint guarantees.
|
|
20
22
|
|
|
23
|
+
Grok video generation (T2V/I2V) is not part of the `1.1.15` runtime API. The
|
|
24
|
+
`docs/grok-video-i2v-plan.md` and `docs/grok-video-i2v-research.md` files are
|
|
25
|
+
planning and research notes only; no `/api/video` route or Grok video endpoint
|
|
26
|
+
wrapper is shipped in this release.
|
|
27
|
+
|
|
21
28
|
## Health And Status
|
|
22
29
|
|
|
23
30
|
| Method | Path | Notes |
|
|
@@ -25,6 +32,7 @@ Image generation supports both OAuth and API-key providers.
|
|
|
25
32
|
| `GET` | `/api/health` | Server health, version, paths, provider policy |
|
|
26
33
|
| `GET` | `/api/providers` | Provider availability and runtime ports |
|
|
27
34
|
| `GET` | `/api/oauth/status` | OAuth proxy status and visible models |
|
|
35
|
+
| `GET` | `/api/grok/status` | Bundled progrok status and visible xAI image models |
|
|
28
36
|
| `GET` | `/api/billing` | Billing/status probe, including API key source when configured |
|
|
29
37
|
|
|
30
38
|
## Storage
|
|
@@ -104,12 +112,60 @@ Supported moderation values: `auto`, `low`.
|
|
|
104
112
|
|
|
105
113
|
Recommended model: `gpt-5.4`. Current app default: `gpt-5.4-mini`. `gpt-5.5` is the strongest quality option when supported, but callers should expect higher quota pressure and possible Codex CLI/backend capability requirements.
|
|
106
114
|
|
|
115
|
+
When `provider` is `"grok"`, supported models are `grok-imagine-image` and
|
|
116
|
+
`grok-imagine-image-quality`. The server uses `grok-4.3` as the search/planner
|
|
117
|
+
model by default (`IMA2_GROK_PLANNER_MODEL`) and times the mandatory search and
|
|
118
|
+
planner steps separately from the image call (`IMA2_GROK_PLANNER_TIMEOUT_MS`).
|
|
119
|
+
For `n > 1`, search and planning run once and the planned prompt is reused for
|
|
120
|
+
the image requests. Successful Grok classic generations report one mandatory
|
|
121
|
+
web-search call in metadata.
|
|
122
|
+
|
|
123
|
+
If `references` are present on a Grok classic request, ima2 still performs the
|
|
124
|
+
mandatory search and `grok-4.3` planning phases. The planner receives the
|
|
125
|
+
reference images as multimodal `image_url` inputs, and its forced
|
|
126
|
+
`generate_image.prompt` argument is instructed to be English-only except for
|
|
127
|
+
exact visible text requested by the user. The final image call then uses xAI
|
|
128
|
+
`/v1/images/edits` with the same reference images instead of
|
|
129
|
+
`/v1/images/generations`. This keeps image-to-image/reference context alive
|
|
130
|
+
through the three-phase pipeline. xAI currently documents up to three source
|
|
131
|
+
images for image editing, so Grok classic requests with more than three
|
|
132
|
+
references return `GROK_REF_TOO_MANY`.
|
|
133
|
+
|
|
134
|
+
Grok size mapping:
|
|
135
|
+
|
|
136
|
+
| Requested size | xAI `aspect_ratio` | xAI `resolution` |
|
|
137
|
+
|---|---|---|
|
|
138
|
+
| `1024x1024` | `1:1` | `1k` |
|
|
139
|
+
| `1536x1024` | `3:2` | `1k` |
|
|
140
|
+
| `1024x1536` | `2:3` | `1k` |
|
|
141
|
+
| `1360x1024` | `4:3` | `1k` |
|
|
142
|
+
| `1024x1360` | `3:4` | `1k` |
|
|
143
|
+
| `1824x1024` | `16:9` | `1k` |
|
|
144
|
+
| `1024x1824` | `9:16` | `1k` |
|
|
145
|
+
| `2048x2048` | `1:1` | `2k` |
|
|
146
|
+
| `2048x1152` | `16:9` | `2k` |
|
|
147
|
+
| `1152x2048` | `9:16` | `2k` |
|
|
148
|
+
| `3840x2160` | `16:9` | `2k` |
|
|
149
|
+
| `2160x3840` | `9:16` | `2k` |
|
|
150
|
+
| `auto` | `auto` | omitted |
|
|
151
|
+
|
|
152
|
+
Custom sizes are reduced to the closest xAI-supported aspect ratio and use
|
|
153
|
+
`2k` when the requested longest edge or pixel budget is closer to a 2K image.
|
|
154
|
+
|
|
107
155
|
### `POST /api/edit`
|
|
108
156
|
|
|
109
157
|
Image edit / image-to-image generation.
|
|
110
158
|
|
|
111
159
|
The request includes a prompt and image payload. `provider: "api"` sends the prompt and image through the shared Responses image adapter. Optional masks are forwarded as mask guidance, not a pixel-perfect edit guarantee.
|
|
112
160
|
|
|
161
|
+
With `provider: "grok"`, edit requests are sent to xAI `/v1/images/edits`
|
|
162
|
+
through the bundled progrok proxy. Masked Grok edits are rejected before
|
|
163
|
+
upstream with `GROK_MASK_UNSUPPORTED`.
|
|
164
|
+
|
|
165
|
+
Grok multimode currently sends each image request directly to xAI Images API
|
|
166
|
+
with the mapped `aspect_ratio`/`resolution`; the mandatory search + planner
|
|
167
|
+
pipeline is limited to classic `/api/generate`.
|
|
168
|
+
|
|
113
169
|
### `POST /api/node/generate`
|
|
114
170
|
|
|
115
171
|
Node-mode generation and child edits.
|
|
@@ -124,20 +180,24 @@ Body fields:
|
|
|
124
180
|
"size": "1024x1024",
|
|
125
181
|
"format": "png",
|
|
126
182
|
"moderation": "low",
|
|
127
|
-
"model": "
|
|
183
|
+
"model": "grok-imagine-image",
|
|
128
184
|
"references": [],
|
|
129
185
|
"externalSrc": "optional-history-url",
|
|
130
186
|
"sessionId": "session-id",
|
|
131
187
|
"clientNodeId": "client-node-id",
|
|
132
188
|
"requestId": "request-id",
|
|
133
|
-
"provider": "
|
|
189
|
+
"provider": "grok"
|
|
134
190
|
}
|
|
135
191
|
```
|
|
136
192
|
|
|
137
193
|
When `parentNodeId` is present, the server loads the stored parent node image and uses the edit path. Extra node references are currently supported only for root nodes.
|
|
138
194
|
|
|
195
|
+
With `provider: "grok"`, Node Mode uses the same xAI search + `grok-4.3` planner + Images API pipeline as classic generation. A parent node image, `externalSrc`, or extra references are passed to the planner and then to xAI `/v1/images/edits`; otherwise the final call uses `/v1/images/generations`. Grok Node requests are capped at three total input images, counting the parent/current image plus references, and return `GROK_REF_TOO_MANY` before upstream when that limit is exceeded. `quality: "high"` promotes the final image model to `grok-imagine-image-quality`.
|
|
196
|
+
|
|
139
197
|
The route can stream Server-Sent Events when the client sends `Accept: text/event-stream`. Possible events include `phase`, `partial`, `done`, and `error`.
|
|
140
198
|
|
|
199
|
+
Grok Node SSE responses do not include Responses API `partial` image events because the xAI Images API call is synchronous JSON. They still emit `phase` and `done`/`error` events so the Node UI can use the same in-flight lifecycle.
|
|
200
|
+
|
|
141
201
|
### `GET /api/node/:nodeId`
|
|
142
202
|
|
|
143
203
|
Fetch stored node metadata and asset URL.
|
|
@@ -156,6 +216,8 @@ Server-side validation may return these reference codes:
|
|
|
156
216
|
| `REF_EMPTY` | A reference item was empty |
|
|
157
217
|
| `REF_TOO_LARGE` | A reference exceeded the configured base64 size |
|
|
158
218
|
| `REF_NOT_BASE64` | A reference was not valid base64 |
|
|
219
|
+
| `GROK_REF_TOO_MANY` | Grok classic generation received more than three reference images |
|
|
220
|
+
| `GROK_MASK_UNSUPPORTED` | Grok edit was requested with a mask; xAI mask edit is not wired in this release |
|
|
159
221
|
|
|
160
222
|
## History
|
|
161
223
|
|
|
@@ -223,16 +285,20 @@ Style-sheet extraction can require an API key/openai client. Image generation al
|
|
|
223
285
|
| `GRAPH_VERSION_CONFLICT` | Stale graph version |
|
|
224
286
|
| `GRAPH_TOO_LARGE` | Graph exceeds node/edge limits |
|
|
225
287
|
| `NODE_NOT_FOUND` | Node metadata was not found |
|
|
288
|
+
| `INVALID_GROK_IMAGE_MODEL` | A Grok request used a model outside `grok-imagine-image` or `grok-imagine-image-quality` |
|
|
289
|
+
| `GROK_RATE_LIMITED` | xAI returned a rate-limit response through progrok |
|
|
290
|
+
| `GROK_AUTH_FAILED` | progrok could not authenticate the xAI request |
|
|
291
|
+
| `GROK_SEARCH_TIMEOUT` / `GROK_PLANNER_TIMEOUT` / `GROK_IMAGE_TIMEOUT` | The Grok search, planner, or image API step exceeded its timeout budget |
|
|
226
292
|
|
|
227
293
|
## Endpoint → CLI Mapping
|
|
228
294
|
|
|
229
|
-
|
|
295
|
+
Most server routes under `/api/*` have a CLI wrapper. The exception is **Agent Mode** (`/api/agent/*`), which is server + web-UI-only and has no `ima2` subcommand. The prompt builder HTTP route (`POST /api/prompt-builder/chat`) is wrapped by `ima2 prompt build`. Use this table to find the command that calls a given endpoint. (See README.md "Client" section for full flag lists.)
|
|
230
296
|
|
|
231
297
|
| Endpoint | CLI |
|
|
232
298
|
|---|---|
|
|
233
299
|
| `POST /api/generate` | `ima2 gen` |
|
|
234
300
|
| `POST /api/edit` | `ima2 edit` |
|
|
235
|
-
| `POST /api/generate/
|
|
301
|
+
| `POST /api/generate/multimode` (SSE) | `ima2 multimode` |
|
|
236
302
|
| `POST /api/node/generate` (SSE) / `GET /api/node/:id` | `ima2 node generate` / `ima2 node show` |
|
|
237
303
|
| `GET /api/history` | `ima2 ls` |
|
|
238
304
|
| `DELETE /api/history/:name` / `…/permanent` | `ima2 history rm [--permanent]` |
|
|
@@ -246,14 +312,17 @@ As of 0.09.x, every server route under `/api/*` has a CLI wrapper. Use this tabl
|
|
|
246
312
|
| `GET/PUT/DELETE /api/annotations/:name` | `ima2 annotate get/set/rm` |
|
|
247
313
|
| `POST /api/canvas-versions` / `PUT /api/canvas-versions/:name` | `ima2 canvas-versions save/update` |
|
|
248
314
|
| `GET/POST/PUT/DELETE /api/prompts[/…]` | `ima2 prompt …` |
|
|
249
|
-
| `GET/POST/
|
|
250
|
-
| `…/api/
|
|
315
|
+
| `GET/POST/PATCH/DELETE /api/prompts/folders[/…]` | `ima2 prompt folder …` |
|
|
316
|
+
| `…/api/prompts/import/…` | `ima2 prompt import sources/refresh/curated/discovery/folder` |
|
|
251
317
|
| `…/api/cardnews/…` (gated on `features.cardNews`) | `ima2 cardnews …` |
|
|
252
318
|
| `POST /api/comfy/export-image` | `ima2 comfy export` |
|
|
253
319
|
| `GET /api/inflight` / `DELETE /api/inflight/:id` | `ima2 inflight ls` (alias `ps`) / `ima2 inflight rm` (alias `cancel`) |
|
|
254
320
|
| `GET /api/storage/status` / `POST /api/storage/open-generated-dir` | `ima2 storage status` / `ima2 storage open` |
|
|
255
|
-
| `GET /api/billing` / `GET /api/providers` / `GET /api/oauth/status` | `ima2 billing` / `ima2 providers` / `ima2 oauth status` |
|
|
321
|
+
| `GET /api/billing` / `GET /api/providers` / `GET /api/oauth/status` / `GET /api/grok/status` | `ima2 billing` / `ima2 providers` / `ima2 oauth status` / `ima2 grok status` |
|
|
256
322
|
| `GET /api/health` | `ima2 ping` |
|
|
323
|
+
| `GET /api/capabilities` | `ima2 capabilities` |
|
|
324
|
+
| `GET/POST/PATCH/DELETE /api/agent/*` (sessions, turns, queue) | — (Agent Mode; web UI only, no CLI) |
|
|
325
|
+
| `POST /api/prompt-builder/chat` | `ima2 prompt build` |
|
|
257
326
|
|
|
258
327
|
Notes:
|
|
259
328
|
- `ima2 history favorite` and `ima2 annotate …` send `X-Ima2-Browser-Id: cli-<sha1prefix>` derived from the config dir, so CLI activity does not collide with browser sessions.
|
package/docs/CLI.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# CLI Reference
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Most server routes under `/api/*` have a CLI wrapper; Agent Mode (`/api/agent/*`) is web-UI-only and has no `ima2` subcommand. The prompt builder HTTP route (`POST /api/prompt-builder/chat`) is available through `ima2 prompt build`. The CLI is a thin shell over the local server, so most commands require a running `ima2 serve` (the few exceptions — `serve`, `setup`, `doctor`, `status`, `open`, `reset`, `config`, `grok`, `skill`, `capabilities`, and local `defaults` inspection — work without a live server).
|
|
4
4
|
|
|
5
5
|
For a quick start, see the [main README](../README.md). For endpoint mapping, see [API.md](API.md).
|
|
6
6
|
|
|
@@ -12,7 +12,9 @@ For a quick start, see the [main README](../README.md). For endpoint mapping, se
|
|
|
12
12
|
| `ima2 setup` / `ima2 login` | Reconfigure saved auth (interactive) |
|
|
13
13
|
| `ima2 status` | Show config and OAuth status |
|
|
14
14
|
| `ima2 doctor` | Diagnose Node, package, config, and auth |
|
|
15
|
+
| `ima2 doctor image-probe [--json]` | Run live sanitized Responses image probes for `EMPTY_RESPONSE` support |
|
|
15
16
|
| `ima2 open` | Open the web UI in a browser |
|
|
17
|
+
| `ima2 grok login/status/models/proxy` | Manage the bundled progrok runtime used by the Grok provider |
|
|
16
18
|
| `ima2 reset` | Remove saved config |
|
|
17
19
|
|
|
18
20
|
## Common flags
|
|
@@ -50,16 +52,36 @@ Agents should start from the packaged skill and capability commands instead of g
|
|
|
50
52
|
| `ima2 node generate` | Node-mode generate (SSE; supports `--no-stream`) |
|
|
51
53
|
| `ima2 node show <nodeId>` | Read node metadata |
|
|
52
54
|
|
|
53
|
-
Generation flags include `--provider <auto|oauth|api>`, `--reasoning-effort {none\|low\|medium\|high\|xhigh}`, `--web-search` / `--no-web-search`, `--model`, `--mode`, `--moderation`, `--ref <file>` (repeatable, up to 5 where supported), `-q low|medium|high`, `-n <count>`, `-o <file>`.
|
|
55
|
+
Generation flags include `--provider <auto|oauth|api|grok>`, `--reasoning-effort {none\|low\|medium\|high\|xhigh}`, `--web-search` / `--no-web-search`, `--model`, `--mode`, `--moderation`, `--ref <file>` (repeatable, up to 5 where supported), `-q low|medium|high`, `-n <count>`, `-o <file>`.
|
|
54
56
|
|
|
55
57
|
Provider override semantics:
|
|
56
58
|
|
|
57
59
|
- `api` forces the API-key Responses path and requires a configured API key.
|
|
58
60
|
- `oauth` forces the local OAuth proxy path.
|
|
61
|
+
- `grok` uses the bundled progrok xAI proxy (`127.0.0.1:18645`). Classic generation first runs mandatory xAI Web Search through Responses API, then asks `grok-4.3` to call ima2's local `generate_image` tool, then ima2 executes xAI `/v1/images/generations`. If `--ref` images are attached, the final step uses xAI `/v1/images/edits` instead so image-to-image/reference context is preserved. Models: `grok-imagine-image`, `grok-imagine-image-quality`. Size is mapped to xAI `aspect_ratio` and `resolution`; the UI web-search toggle is OpenAI-provider-only because Grok search is always on in this path.
|
|
59
62
|
- `auto` preserves route default behavior and currently resolves to OAuth unless server routing changes.
|
|
60
63
|
|
|
64
|
+
`ima2 serve` starts the bundled Grok proxy automatically. No separate `progrok`
|
|
65
|
+
install is required. Use `ima2 grok login` once to authorize xAI OAuth, or
|
|
66
|
+
`ima2 grok login --device-code` on a remote shell. Set `IMA2_NO_GROK_PROXY=1`
|
|
67
|
+
only if you want to manage the proxy yourself.
|
|
68
|
+
|
|
69
|
+
Grok size mapping follows xAI's image API, not OpenAI's `size` field. ima2
|
|
70
|
+
keeps the requested size in local metadata, but sends `aspect_ratio` such as
|
|
71
|
+
`1:1`, `16:9`, `9:16`, `4:3`, `3:4`, `3:2`, or `2:3`, plus `resolution:
|
|
72
|
+
"1k"` or `"2k"` where applicable. The 3840 presets map to `resolution: "2k"`
|
|
73
|
+
because xAI currently exposes `1k` and `2k` resolution controls.
|
|
74
|
+
|
|
75
|
+
For Grok classic generation with `--ref`, ima2 sends up to three references into
|
|
76
|
+
the `grok-4.3` planner as image inputs, asks the planner for an English final
|
|
77
|
+
image prompt, then sends the same references to xAI image editing. More than
|
|
78
|
+
three Grok references are rejected with `GROK_REF_TOO_MANY`, matching xAI's
|
|
79
|
+
documented multi-image editing limit.
|
|
80
|
+
|
|
61
81
|
```bash
|
|
62
82
|
ima2 gen "a poster of a samurai cat" --model gpt-5.4 --provider api --reasoning-effort high
|
|
83
|
+
ima2 grok login
|
|
84
|
+
ima2 gen "a cinematic neon city" --provider grok --model grok-imagine-image-quality
|
|
63
85
|
ima2 edit input.png --prompt "make it rainy" --provider oauth --web-search
|
|
64
86
|
ima2 multimode "two cats playing" --max-images 2 --ref cat.png --mode direct
|
|
65
87
|
ima2 node generate --node n_abc --prompt "add neon lights" --no-stream
|
|
@@ -81,7 +103,42 @@ mockup`.
|
|
|
81
103
|
For dense or critical text, keep the text large and explicit. Exact placement,
|
|
82
104
|
small text, and pixel-perfect typography can still need iteration or post-editing.
|
|
83
105
|
|
|
84
|
-
Multimode-specific flags include `--max-images <1..8>`, `--ref <file>` (repeatable, max 5), `--mode <auto|direct>`, `--provider <auto|oauth|api>`, and `--show-partial`. `ima2 edit --mask` remains intentionally deferred to #31 because current mask plumbing is guided edit rather than guaranteed true masked/inpaint semantics.
|
|
106
|
+
Multimode-specific flags include `--max-images <1..8>`, `--ref <file>` (repeatable, max 5), `--mode <auto|direct>`, `--provider <auto|oauth|api|grok>`, and `--show-partial`. `ima2 edit --mask` remains intentionally deferred to #31 because current mask plumbing is guided edit rather than guaranteed true masked/inpaint semantics.
|
|
107
|
+
|
|
108
|
+
## Diagnostics
|
|
109
|
+
|
|
110
|
+
`ima2 doctor image-probe` runs live Responses probes that help classify image
|
|
111
|
+
generation failures such as `EMPTY_RESPONSE`. It is intended for support
|
|
112
|
+
bundles, especially when OAuth is green but a simple prompt produces no image.
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
ima2 doctor image-probe --json > ima2-image-probe.json
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Use `--matrix` when a maintainer asks for current-payload comparison probes:
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
ima2 doctor image-probe --matrix --json > ima2-image-probe.json
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
The JSON output is sanitized for issue attachments. It includes diagnostic
|
|
125
|
+
codes, event counts, tool-call summaries, byte counts, provider/model labels,
|
|
126
|
+
and probe statuses. It does not include prompt text, auth tokens, URLs with
|
|
127
|
+
credentials, raw upstream responses, or base64 image data.
|
|
128
|
+
|
|
129
|
+
For OAuth no-image reports, a useful support bundle is:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
ima2 doctor
|
|
133
|
+
ima2 doctor image-probe --json > ima2-image-probe.json
|
|
134
|
+
ima2 gen "고양이" --no-web-search --json > ima2-cat-no-search.json
|
|
135
|
+
ima2 gen "고양이" --json > ima2-cat-current.json
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
Do not share ChatGPT cookies, OAuth token files, API keys, prompt history, raw
|
|
139
|
+
upstream responses, or generated base64. Share `ima2-gen` version, OS version,
|
|
140
|
+
and whether VPN, corporate proxy, antivirus TLS inspection, a custom CA, or a
|
|
141
|
+
Windows DNS/fragmentation bypass tool such as SecretDNS is in use.
|
|
85
142
|
|
|
86
143
|
## History and metadata
|
|
87
144
|
|
|
@@ -133,6 +190,8 @@ Multimode-specific flags include `--max-images <1..8>`, `--ref <file>` (repeatab
|
|
|
133
190
|
| `ima2 prompt import folder <localpath>` | Import a local folder of prompts |
|
|
134
191
|
| `ima2 prompt import json <file\|@file\|-> [--folder <id>]` | Import a JSON export body through `/api/prompts/import` |
|
|
135
192
|
| `ima2 prompt import preview <file\|@file\|-> [--filename <name>]` | Preview local markdown/text candidates without committing |
|
|
193
|
+
| `ima2 prompt build --message <text> [--ref <file>] [--model <id>] [--json]` | Build a structured image prompt through `/api/prompt-builder/chat` |
|
|
194
|
+
| `ima2 prompt build --messages <file\|@file\|-> [--json]` | Build from a message transcript file or stdin |
|
|
136
195
|
|
|
137
196
|
## Card News (gated)
|
|
138
197
|
|
|
@@ -163,6 +222,7 @@ Card News requires the server to be started with `IMA2_CARD_NEWS=1` (or `feature
|
|
|
163
222
|
| `ima2 billing` | API usage / quota |
|
|
164
223
|
| `ima2 providers` | Configured providers |
|
|
165
224
|
| `ima2 oauth status` | OAuth proxy state |
|
|
225
|
+
| `ima2 grok status` | Bundled progrok / xAI image-model probe state |
|
|
166
226
|
| `ima2 ping` | Health-check the running server |
|
|
167
227
|
|
|
168
228
|
## Config
|
|
@@ -195,6 +255,8 @@ Allowed keys (whitelist):
|
|
|
195
255
|
```
|
|
196
256
|
imageModels.default imageModels.reasoningEffort
|
|
197
257
|
apiProvider.defaultImageModel apiProvider.defaultReasoningEffort
|
|
258
|
+
grokProvider.plannerModel grokProvider.plannerTimeoutMs
|
|
259
|
+
grokProvider.defaultImageModel
|
|
198
260
|
log.level features.cardNews
|
|
199
261
|
cardNewsPlanner.{enabled,model,timeoutMs,deterministicFallback}
|
|
200
262
|
comfy.{defaultUrl,uploadTimeoutMs,maxUploadBytes}
|
package/docs/FAQ.ko.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ima2-gen 자주 묻는 질문
|
|
2
2
|
|
|
3
|
-
마지막 확인: 2026-
|
|
3
|
+
마지막 확인: 2026-05-26
|
|
4
4
|
|
|
5
5
|
이 문서는 설치, 업데이트, OAuth, 갤러리, 레퍼런스 이미지 관련 질문을 모아둔 FAQ입니다. README는 짧게 유지하고, 자세한 설명은 이곳에 둡니다.
|
|
6
6
|
|
|
@@ -16,6 +16,8 @@ English version: [FAQ.md](FAQ.md)
|
|
|
16
16
|
| 업데이트 후 예전 이미지가 안 보임 | `ima2 doctor`를 실행한 뒤 [예전 이미지 복구 안내](RECOVER_OLD_IMAGES.md)를 확인합니다. |
|
|
17
17
|
| `gpt-5.5`만 실패함 | Codex CLI를 업데이트하고, 안정 대안으로 `gpt-5.4`를 사용합니다. |
|
|
18
18
|
| 레퍼런스 업로드 실패 | JPEG/PNG로 변환하고 해상도를 낮춰 보세요. 레퍼런스는 최대 5장입니다. |
|
|
19
|
+
| Prompt Studio 기능이 헷갈림 | [Prompt Studio 사용 설명서](PROMPT_STUDIO.ko.md)에서 멀티모드, Direct, 추론 강도, 갤러리 동작을 확인하세요. |
|
|
20
|
+
| 이미지 생성이 `EMPTY_RESPONSE` 또는 no image data로 끝남 | `ima2 doctor image-probe --json`을 실행한 뒤 아래의 안전한 지원 번들을 모아 주세요. |
|
|
19
21
|
| Windows에서 `10531` 포트 관련 OAuth/proxy 오류가 남 | `ima2 doctor`를 실행하고, 필요하면 `IMA2_OAUTH_PROXY_PORT=11531 ima2 serve`로 시작하세요. |
|
|
20
22
|
| 프록시/VPN 환경에서 `fetch failed`가 반복됨 | 프록시 클라이언트의 TUN/TURN류 모드를 켜거나, 같은 터미널에 `HTTP_PROXY` / `HTTPS_PROXY`를 설정하세요. |
|
|
21
23
|
|
|
@@ -118,6 +120,36 @@ ima2 serve
|
|
|
118
120
|
|
|
119
121
|
커뮤니티에서 말하는 숫자를 보장으로 받아들이면 안 됩니다. OAuth 생성은 계정, 백엔드 capability, 트래픽, 정책 변경의 영향을 받을 수 있습니다. `ima2-gen` 문서에서는 고정된 Plus/Pro 생성 횟수를 약속하지 않습니다.
|
|
120
122
|
|
|
123
|
+
## Prompt Studio와 멀티모드
|
|
124
|
+
|
|
125
|
+
### Prompt Studio 상세 설명서가 있나요?
|
|
126
|
+
|
|
127
|
+
네. [Prompt Studio 사용 설명서](PROMPT_STUDIO.ko.md)를 확인하세요. 작성창,
|
|
128
|
+
멀티모드 슬롯, 1:1 Direct, 모델/추론 빠른 설정, 최근 생성, 갤러리 즐겨찾기,
|
|
129
|
+
어떤 액션이 프롬프트를 의도적으로 가져오는지 정리했습니다.
|
|
130
|
+
|
|
131
|
+
### 멀티모드 이미지가 서로 관계없게 나오는 이유는 뭔가요?
|
|
132
|
+
|
|
133
|
+
멀티모드는 같은 프롬프트로 여러 개의 독립 이미지 요청을 시작합니다. 각 슬롯은
|
|
134
|
+
후보 이미지이지, 한 캔버스 안의 패널이나 보장된 연속 장면이 아닙니다. 서로
|
|
135
|
+
관련 있는 대안을 원하면 공통 대상을 먼저 쓰고 바뀌어도 되는 요소를 따로
|
|
136
|
+
적어 주세요. 한 장 안의 2패널, 콜라주, contact sheet가 필요하면 일반 한 장
|
|
137
|
+
생성에서 그렇게 요청하는 편이 맞습니다.
|
|
138
|
+
|
|
139
|
+
### 갤러리 이미지를 선택하면 현재 프롬프트가 바뀌어야 하나요?
|
|
140
|
+
|
|
141
|
+
단순 이미지 선택은 보기 전용입니다. 선택 이미지를 보여줄 뿐 작성창을 바꾸지
|
|
142
|
+
않아야 합니다. 프롬프트 라이브러리 삽입, "이 이미지에서 이어가기", 명시적인
|
|
143
|
+
재사용 액션만 프롬프트를 의도적으로 바꾸는 동작입니다.
|
|
144
|
+
|
|
145
|
+
### Issue #75에서 무엇이 정리됐나요?
|
|
146
|
+
|
|
147
|
+
Prompt Studio의 navigation/state coupling 회귀를 정리했습니다. 키보드 이동은
|
|
148
|
+
보이는 최근 생성 범위를 따르고, 갤러리 진입 버튼은 계속 접근 가능하며, 긴
|
|
149
|
+
프롬프트가 이미지 뷰어를 과하게 줄이지 않고, Direct와 멀티모드 상태가 동시에
|
|
150
|
+
보이며, 갤러리 즐겨찾기와 탭 전환은 보던 위치를 유지하고, 단순 이미지 선택은
|
|
151
|
+
작성창을 자동으로 채우지 않습니다.
|
|
152
|
+
|
|
121
153
|
## 갤러리와 생성 파일
|
|
122
154
|
|
|
123
155
|
### 생성 이미지는 어디에 저장되나요?
|
|
@@ -214,6 +246,7 @@ VITE_IMA2_API_TARGET=http://localhost:3334 npm run ui:dev
|
|
|
214
246
|
- 로컬 OAuth 프록시가 아직 준비되지 않았습니다.
|
|
215
247
|
- 서버가 재시작되었습니다.
|
|
216
248
|
- VPN, 프록시, 방화벽이 요청을 막았습니다.
|
|
249
|
+
- Windows에서 자동 실행되는 DNS/파편화 우회 프로그램(예: SecretDNS)이 OAuth 또는 스트리밍 이미지 응답을 깨뜨렸습니다.
|
|
217
250
|
- Codex/ChatGPT OAuth 사용 중 네트워크가 끊겼습니다.
|
|
218
251
|
|
|
219
252
|
먼저 확인하세요.
|
|
@@ -225,6 +258,53 @@ ima2 ping
|
|
|
225
258
|
|
|
226
259
|
필요하면 `ima2 serve`를 다시 시작합니다.
|
|
227
260
|
|
|
261
|
+
### OAuth 이미지 생성이 이미지 없이 끝나면 무엇을 공유해야 하나요?
|
|
262
|
+
|
|
263
|
+
먼저 moderation으로 단정하지 말고 image probe를 실행하세요. `EMPTY_RESPONSE`는
|
|
264
|
+
Responses 경로에서 `ima2-gen`이 사용할 수 있는 이미지 데이터가 나오지 않았다는
|
|
265
|
+
뜻입니다. 원인은 OAuth capability, stream parsing, web-search/tool-choice
|
|
266
|
+
상호작용, 로컬 프록시/네트워크 transport, 지원되지 않는 옵션, 실제 refusal 등으로
|
|
267
|
+
나뉠 수 있습니다.
|
|
268
|
+
|
|
269
|
+
먼저 실행하세요.
|
|
270
|
+
|
|
271
|
+
```bash
|
|
272
|
+
ima2 doctor
|
|
273
|
+
ima2 doctor image-probe --json > ima2-image-probe.json
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
`ima2 serve`가 실행 중이면 검색을 끈 생성과 일반 생성 결과도 하나씩 저장하세요.
|
|
277
|
+
|
|
278
|
+
```bash
|
|
279
|
+
ima2 gen "고양이" --no-web-search --json > ima2-cat-no-search.json
|
|
280
|
+
ima2 gen "고양이" --json > ima2-cat-current.json
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
probe JSON은 공개 이슈에 첨부할 수 있도록 설계되어 있습니다. 진단 코드,
|
|
284
|
+
event count, tool-call 요약, byte count는 담지만 prompt text, auth token,
|
|
285
|
+
credential URL, base64 image data는 담지 않습니다.
|
|
286
|
+
|
|
287
|
+
이슈를 열 때 포함해 주세요.
|
|
288
|
+
|
|
289
|
+
- `ima2 doctor` 출력
|
|
290
|
+
- `ima2-image-probe.json`
|
|
291
|
+
- 저장했다면 `ima2-cat-no-search.json`, `ima2-cat-current.json`
|
|
292
|
+
- `ima2-gen` 버전과 Windows 버전
|
|
293
|
+
- VPN, 회사 프록시, 백신 TLS 검사, custom CA 사용 여부
|
|
294
|
+
- Windows에서 SecretDNS 같은 DNS/파편화 우회 프로그램이 자동 실행 중인지 여부
|
|
295
|
+
- API 키가 이미 설정되어 있다면 같은 PC에서 `provider: "api"`가 동작하는지
|
|
296
|
+
|
|
297
|
+
ChatGPT 쿠키, OAuth token 파일, API key, raw upstream response, prompt history,
|
|
298
|
+
generated base64는 공유하지 마세요.
|
|
299
|
+
|
|
300
|
+
결과는 이렇게 분류합니다.
|
|
301
|
+
|
|
302
|
+
- text probe도 실패: OAuth 재로그인, 프록시, 모델 접근성을 먼저 봅니다.
|
|
303
|
+
- text는 되지만 minimal non-stream image가 실패: 계정, OAuth backend, model, image-tool capability 가능성이 큽니다.
|
|
304
|
+
- non-stream image는 되지만 stream image가 실패: stream parsing 또는 transport 가능성이 큽니다.
|
|
305
|
+
- 검색 끈 생성은 되지만 일반 생성이 실패: web-search/tool-choice 상호작용 가능성이 큽니다.
|
|
306
|
+
- bytes는 읽었지만 event가 없음: SSE delimiter 또는 `data:` parsing 가능성이 큽니다.
|
|
307
|
+
|
|
228
308
|
### 프록시나 VPN 뒤에서 `fetch failed`가 계속 나면 어떻게 하나요?
|
|
229
309
|
|
|
230
310
|
대부분 로컬 OAuth 프록시가 현재 네트워크 경로로 upstream 서비스에 닿지 못하는 상황입니다. `openai-oauth`는 보통 `10531` 포트의 localhost 프록시로 실행됩니다.
|
|
@@ -235,7 +315,7 @@ ima2 ping
|
|
|
235
315
|
npx openai-oauth --port 10531
|
|
236
316
|
```
|
|
237
317
|
|
|
238
|
-
프록시가 필요한 네트워크라면 터미널 프로세스도 프록시를 타도록 프록시 클라이언트의 TUN/TURN류 모드를 켜세요. 그래도 안 되면 `openai-oauth` 또는 `ima2 serve`를 실행하는 같은 터미널에 프록시 환경 변수를 설정합니다.
|
|
318
|
+
프록시가 필요한 네트워크라면 터미널 프로세스도 프록시를 타도록 프록시 클라이언트의 TUN/TURN류 모드를 켜세요. Windows에서는 SecretDNS처럼 부팅 때 자동 실행되는 DNS/파편화 우회 프로그램도 잠시 끄고 재시도해 보세요. 그래도 안 되면 `openai-oauth` 또는 `ima2 serve`를 실행하는 같은 터미널에 프록시 환경 변수를 설정합니다.
|
|
239
319
|
|
|
240
320
|
```bash
|
|
241
321
|
export HTTP_PROXY=http://127.0.0.1:7890
|
package/docs/FAQ.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# ima2-gen FAQ
|
|
2
2
|
|
|
3
|
-
Last reviewed: 2026-
|
|
3
|
+
Last reviewed: 2026-05-26
|
|
4
4
|
|
|
5
5
|
This FAQ collects the questions that tend to come up after installing or updating `ima2-gen`. The README stays short; this page is the place for practical details and recovery steps.
|
|
6
6
|
|
|
@@ -16,6 +16,8 @@ For Korean, see [FAQ.ko.md](FAQ.ko.md).
|
|
|
16
16
|
| Old gallery images look missing | Run `ima2 doctor`, then see [Recover Old Generated Images](RECOVER_OLD_IMAGES.md). |
|
|
17
17
|
| `gpt-5.5` fails | Update Codex CLI first, then try `gpt-5.4` as the stable fallback. |
|
|
18
18
|
| Reference upload fails | Use JPEG/PNG, lower the resolution, and keep references to 5 images or fewer. |
|
|
19
|
+
| Prompt Studio controls are unclear | Read the [Prompt Studio manual](PROMPT_STUDIO.md) for multimode, Direct, reasoning, and gallery behavior. |
|
|
20
|
+
| Image generation returns `EMPTY_RESPONSE` or no image data | Run `ima2 doctor image-probe --json`, then collect the safe support bundle below. |
|
|
19
21
|
| Windows reports OAuth/proxy failures around port `10531` | Run `ima2 doctor`; if needed start with `IMA2_OAUTH_PROXY_PORT=11531 ima2 serve`. |
|
|
20
22
|
| `fetch failed` repeats on a proxy/VPN network | Enable proxy TUN/TURN-style mode, or set `HTTP_PROXY` / `HTTPS_PROXY` in the same terminal. |
|
|
21
23
|
|
|
@@ -124,6 +126,37 @@ Start with `gpt-5.4` for the safest balanced workflow.
|
|
|
124
126
|
|
|
125
127
|
Do not treat any community number as a guarantee. OAuth generation can be limited by account, backend capability, traffic, and policy changes. `ima2-gen` does not publish a fixed Plus/Pro image count because that number is not stable enough to document as a promise.
|
|
126
128
|
|
|
129
|
+
## Prompt Studio and multimode
|
|
130
|
+
|
|
131
|
+
### Is there a detailed Prompt Studio manual?
|
|
132
|
+
|
|
133
|
+
Yes. See the [Prompt Studio manual](PROMPT_STUDIO.md). It explains the composer,
|
|
134
|
+
multimode slots, 1:1 Direct, model/reasoning quick settings, recent history,
|
|
135
|
+
gallery favorites, and which actions intentionally import prompt text.
|
|
136
|
+
|
|
137
|
+
### Why did multimode images look unrelated?
|
|
138
|
+
|
|
139
|
+
Multimode starts several separate image requests from the same prompt. The slots
|
|
140
|
+
are candidate outputs, not panels inside one shared canvas and not a guaranteed
|
|
141
|
+
story sequence. To get related alternatives, write the common subject first and
|
|
142
|
+
then name the allowed variations. To get one multi-panel image, use a normal
|
|
143
|
+
single-image request and ask for a two-panel, collage, or contact-sheet layout.
|
|
144
|
+
|
|
145
|
+
### Should selecting a gallery image change my current prompt?
|
|
146
|
+
|
|
147
|
+
Passive image selection is view-only. It should focus the selected image without
|
|
148
|
+
rewriting the composer. Prompt Library insert, "continue from this image", and
|
|
149
|
+
other explicit reuse actions are the actions that intentionally change prompt
|
|
150
|
+
text.
|
|
151
|
+
|
|
152
|
+
### What changed for issue #75?
|
|
153
|
+
|
|
154
|
+
The Prompt Studio closeout fixed navigation and state-coupling regressions:
|
|
155
|
+
keyboard movement now follows the visible recent history domain, the gallery
|
|
156
|
+
entry remains reachable, long prompts no longer starve the image viewer,
|
|
157
|
+
Direct and Multimode states are visible together, gallery favorites preserve the
|
|
158
|
+
browsing viewport, and passive image selection does not refill the composer.
|
|
159
|
+
|
|
127
160
|
## Gallery and generated files
|
|
128
161
|
|
|
129
162
|
### Where are generated images stored?
|
|
@@ -222,6 +255,8 @@ Usually one of these:
|
|
|
222
255
|
- the local OAuth proxy is not ready,
|
|
223
256
|
- the server was restarted,
|
|
224
257
|
- a VPN/proxy/firewall blocked the request,
|
|
258
|
+
- an auto-start Windows network interception tool, including a DNS/fragmentation
|
|
259
|
+
bypass tool such as SecretDNS, broke OAuth or streaming image transport,
|
|
225
260
|
- the network dropped while Codex/ChatGPT OAuth was being used.
|
|
226
261
|
|
|
227
262
|
Try:
|
|
@@ -233,6 +268,54 @@ ima2 ping
|
|
|
233
268
|
|
|
234
269
|
Then restart `ima2 serve` if needed.
|
|
235
270
|
|
|
271
|
+
### What should I share when OAuth image generation returns no image?
|
|
272
|
+
|
|
273
|
+
Use the image probe before assuming moderation. `EMPTY_RESPONSE` means the
|
|
274
|
+
Responses path did not produce image data that `ima2-gen` could use; it can be
|
|
275
|
+
caused by OAuth capability, stream parsing, web-search/tool-choice behavior,
|
|
276
|
+
local proxy/network transport, unsupported options, or a real refusal.
|
|
277
|
+
|
|
278
|
+
Run this first:
|
|
279
|
+
|
|
280
|
+
```bash
|
|
281
|
+
ima2 doctor
|
|
282
|
+
ima2 doctor image-probe --json > ima2-image-probe.json
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
If `ima2 serve` is running, also capture one search-off and one normal cat
|
|
286
|
+
generation result:
|
|
287
|
+
|
|
288
|
+
```bash
|
|
289
|
+
ima2 gen "고양이" --no-web-search --json > ima2-cat-no-search.json
|
|
290
|
+
ima2 gen "고양이" --json > ima2-cat-current.json
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
The probe JSON is designed to be safe to attach to a public issue. It reports
|
|
294
|
+
diagnostic codes, event counts, tool-call summaries, and byte counts, but not
|
|
295
|
+
prompt text, auth tokens, credential URLs, or base64 image data.
|
|
296
|
+
|
|
297
|
+
When opening an issue, include:
|
|
298
|
+
|
|
299
|
+
- `ima2 doctor` output.
|
|
300
|
+
- `ima2-image-probe.json`.
|
|
301
|
+
- `ima2-cat-no-search.json` and `ima2-cat-current.json`, if you captured them.
|
|
302
|
+
- `ima2-gen` version and Windows version.
|
|
303
|
+
- Whether you use VPN, corporate proxy, antivirus TLS inspection, or a custom CA.
|
|
304
|
+
- Whether a Windows DNS/fragmentation bypass tool such as SecretDNS is running
|
|
305
|
+
automatically.
|
|
306
|
+
- Whether `provider: "api"` works on the same machine, if you already have an API key configured.
|
|
307
|
+
|
|
308
|
+
Do not share ChatGPT cookies, OAuth token files, API keys, raw upstream
|
|
309
|
+
responses, prompt history, or generated base64.
|
|
310
|
+
|
|
311
|
+
How to read the result:
|
|
312
|
+
|
|
313
|
+
- Text probe fails: refresh OAuth and inspect proxy/model availability first.
|
|
314
|
+
- Text works but minimal non-stream image fails: likely account, OAuth backend, model, or image-tool capability.
|
|
315
|
+
- Non-stream image works but stream image fails: likely stream parsing or transport.
|
|
316
|
+
- Search-off generation works but normal generation fails: likely web-search/tool-choice interaction.
|
|
317
|
+
- Bytes were read but no events were parsed: likely SSE delimiter or `data:` parsing.
|
|
318
|
+
|
|
236
319
|
### What if `fetch failed` keeps happening behind a proxy or VPN?
|
|
237
320
|
|
|
238
321
|
This usually means the local OAuth proxy cannot reach the upstream service through your network path. `openai-oauth` runs as a local localhost proxy, commonly on port `10531`.
|
|
@@ -243,7 +326,7 @@ Try:
|
|
|
243
326
|
npx openai-oauth --port 10531
|
|
244
327
|
```
|
|
245
328
|
|
|
246
|
-
If your network requires a proxy, enable your proxy client's TUN/TURN-style mode so terminal processes can use it. If that is not enough, set the proxy variables in the same terminal that runs `openai-oauth` or `ima2 serve`:
|
|
329
|
+
If your network requires a proxy, enable your proxy client's TUN/TURN-style mode so terminal processes can use it. On Windows, also temporarily disable auto-start DNS or fragmentation bypass tools such as SecretDNS and retry. If that is not enough, set the proxy variables in the same terminal that runs `openai-oauth` or `ima2 serve`:
|
|
247
330
|
|
|
248
331
|
```bash
|
|
249
332
|
export HTTP_PROXY=http://127.0.0.1:7890
|