ima2-gen 1.1.14 → 1.1.17

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.
Files changed (789) hide show
  1. package/README.md +21 -6
  2. package/bin/commands/capabilities.js +5 -0
  3. package/bin/commands/capabilities.ts +5 -0
  4. package/bin/commands/doctor.js +2 -2
  5. package/bin/commands/doctor.ts +2 -2
  6. package/bin/commands/edit.js +6 -6
  7. package/bin/commands/edit.ts +6 -6
  8. package/bin/commands/gen.js +6 -6
  9. package/bin/commands/gen.ts +6 -6
  10. package/bin/commands/grok.js +81 -0
  11. package/bin/commands/grok.ts +86 -0
  12. package/bin/commands/multimode.js +3 -3
  13. package/bin/commands/multimode.ts +3 -3
  14. package/bin/commands/node.js +4 -4
  15. package/bin/commands/node.ts +4 -4
  16. package/bin/ima2.js +3 -1
  17. package/bin/ima2.ts +3 -1
  18. package/config.js +16 -0
  19. package/config.ts +16 -0
  20. package/docs/API.md +77 -8
  21. package/docs/CLI.md +29 -3
  22. package/docs/README.ko.md +19 -6
  23. package/docs/grok-video-i2v-plan.md +419 -0
  24. package/docs/grok-video-i2v-research.md +204 -0
  25. package/docs/migration/runtime-test-inventory.md +7 -1
  26. package/lib/agentRuntime.js +79 -17
  27. package/lib/agentRuntime.ts +89 -27
  28. package/lib/agentSettings.js +1 -1
  29. package/lib/agentSettings.ts +1 -1
  30. package/lib/agentTypes.ts +1 -1
  31. package/lib/capabilities.js +10 -2
  32. package/lib/capabilities.ts +10 -2
  33. package/lib/configKeys.js +6 -0
  34. package/lib/configKeys.ts +6 -1
  35. package/lib/grokImageAdapter.js +394 -0
  36. package/lib/grokImageAdapter.ts +513 -0
  37. package/lib/grokMultimodeAdapter.js +54 -0
  38. package/lib/grokMultimodeAdapter.ts +84 -0
  39. package/lib/grokProxyLauncher.js +106 -0
  40. package/lib/grokProxyLauncher.ts +129 -0
  41. package/lib/grokRuntime.js +18 -0
  42. package/lib/grokRuntime.ts +23 -0
  43. package/lib/grokSizeMapper.js +63 -0
  44. package/lib/grokSizeMapper.ts +71 -0
  45. package/lib/grokVideoAdapter.js +407 -0
  46. package/lib/grokVideoAdapter.ts +471 -0
  47. package/lib/historyList.js +5 -1
  48. package/lib/historyList.ts +5 -1
  49. package/lib/imageMetadata.js +2 -0
  50. package/lib/imageMetadata.ts +2 -0
  51. package/lib/imageModels.js +101 -0
  52. package/lib/imageModels.ts +111 -0
  53. package/lib/oauthLauncher.js +11 -0
  54. package/lib/oauthLauncher.ts +11 -0
  55. package/lib/providerOptions.js +15 -1
  56. package/lib/providerOptions.ts +15 -1
  57. package/lib/runtimeContext.js +12 -0
  58. package/lib/runtimeContext.ts +15 -0
  59. package/node_modules/array-flatten/LICENSE +21 -0
  60. package/node_modules/array-flatten/README.md +43 -0
  61. package/node_modules/array-flatten/array-flatten.js +64 -0
  62. package/node_modules/array-flatten/package.json +39 -0
  63. package/node_modules/bundle-name/index.js +5 -0
  64. package/node_modules/bundle-name/license +9 -0
  65. package/node_modules/bundle-name/package.json +45 -0
  66. package/node_modules/bundle-name/readme.md +23 -0
  67. package/node_modules/bytes/History.md +97 -0
  68. package/node_modules/bytes/LICENSE +23 -0
  69. package/node_modules/bytes/Readme.md +152 -0
  70. package/node_modules/bytes/index.js +170 -0
  71. package/node_modules/bytes/package.json +42 -0
  72. package/node_modules/call-bind-apply-helpers/.eslintrc +17 -0
  73. package/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
  74. package/node_modules/call-bind-apply-helpers/.nycrc +9 -0
  75. package/node_modules/call-bind-apply-helpers/CHANGELOG.md +30 -0
  76. package/node_modules/call-bind-apply-helpers/LICENSE +21 -0
  77. package/node_modules/call-bind-apply-helpers/README.md +62 -0
  78. package/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
  79. package/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
  80. package/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
  81. package/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
  82. package/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
  83. package/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
  84. package/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
  85. package/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
  86. package/node_modules/call-bind-apply-helpers/index.d.ts +64 -0
  87. package/node_modules/call-bind-apply-helpers/index.js +15 -0
  88. package/node_modules/call-bind-apply-helpers/package.json +85 -0
  89. package/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
  90. package/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
  91. package/node_modules/call-bind-apply-helpers/test/index.js +63 -0
  92. package/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
  93. package/node_modules/call-bound/.eslintrc +13 -0
  94. package/node_modules/call-bound/.github/FUNDING.yml +12 -0
  95. package/node_modules/call-bound/.nycrc +9 -0
  96. package/node_modules/call-bound/CHANGELOG.md +42 -0
  97. package/node_modules/call-bound/LICENSE +21 -0
  98. package/node_modules/call-bound/README.md +53 -0
  99. package/node_modules/call-bound/index.d.ts +94 -0
  100. package/node_modules/call-bound/index.js +19 -0
  101. package/node_modules/call-bound/package.json +99 -0
  102. package/node_modules/call-bound/test/index.js +61 -0
  103. package/node_modules/call-bound/tsconfig.json +10 -0
  104. package/node_modules/commander/LICENSE +22 -0
  105. package/node_modules/commander/Readme.md +1149 -0
  106. package/node_modules/commander/esm.mjs +16 -0
  107. package/node_modules/commander/index.js +24 -0
  108. package/node_modules/commander/lib/argument.js +149 -0
  109. package/node_modules/commander/lib/command.js +2662 -0
  110. package/node_modules/commander/lib/error.js +39 -0
  111. package/node_modules/commander/lib/help.js +709 -0
  112. package/node_modules/commander/lib/option.js +367 -0
  113. package/node_modules/commander/lib/suggestSimilar.js +101 -0
  114. package/node_modules/commander/package-support.json +16 -0
  115. package/node_modules/commander/package.json +82 -0
  116. package/node_modules/commander/typings/esm.d.mts +3 -0
  117. package/node_modules/commander/typings/index.d.ts +1045 -0
  118. package/node_modules/content-type/HISTORY.md +29 -0
  119. package/node_modules/content-type/LICENSE +22 -0
  120. package/node_modules/content-type/README.md +94 -0
  121. package/node_modules/content-type/index.js +225 -0
  122. package/node_modules/content-type/package.json +42 -0
  123. package/node_modules/cookie/LICENSE +24 -0
  124. package/node_modules/cookie/README.md +317 -0
  125. package/node_modules/cookie/SECURITY.md +25 -0
  126. package/node_modules/cookie/index.js +335 -0
  127. package/node_modules/cookie/package.json +44 -0
  128. package/node_modules/default-browser/index.d.ts +29 -0
  129. package/node_modules/default-browser/index.js +34 -0
  130. package/node_modules/default-browser/license +9 -0
  131. package/node_modules/default-browser/package.json +54 -0
  132. package/node_modules/default-browser/readme.md +24 -0
  133. package/node_modules/default-browser/windows.js +57 -0
  134. package/node_modules/default-browser-id/index.js +25 -0
  135. package/node_modules/default-browser-id/license +9 -0
  136. package/node_modules/default-browser-id/package.json +41 -0
  137. package/node_modules/default-browser-id/readme.md +19 -0
  138. package/node_modules/define-lazy-prop/index.d.ts +31 -0
  139. package/node_modules/define-lazy-prop/index.js +18 -0
  140. package/node_modules/define-lazy-prop/license +9 -0
  141. package/node_modules/define-lazy-prop/package.json +51 -0
  142. package/node_modules/define-lazy-prop/readme.md +55 -0
  143. package/node_modules/depd/History.md +103 -0
  144. package/node_modules/depd/LICENSE +22 -0
  145. package/node_modules/depd/Readme.md +280 -0
  146. package/node_modules/depd/index.js +538 -0
  147. package/node_modules/depd/lib/browser/index.js +77 -0
  148. package/node_modules/depd/package.json +45 -0
  149. package/node_modules/destroy/LICENSE +23 -0
  150. package/node_modules/destroy/README.md +63 -0
  151. package/node_modules/destroy/index.js +209 -0
  152. package/node_modules/destroy/package.json +48 -0
  153. package/node_modules/dunder-proto/.eslintrc +5 -0
  154. package/node_modules/dunder-proto/.github/FUNDING.yml +12 -0
  155. package/node_modules/dunder-proto/.nycrc +13 -0
  156. package/node_modules/dunder-proto/CHANGELOG.md +24 -0
  157. package/node_modules/dunder-proto/LICENSE +21 -0
  158. package/node_modules/dunder-proto/README.md +54 -0
  159. package/node_modules/dunder-proto/get.d.ts +5 -0
  160. package/node_modules/dunder-proto/get.js +30 -0
  161. package/node_modules/dunder-proto/package.json +76 -0
  162. package/node_modules/dunder-proto/set.d.ts +5 -0
  163. package/node_modules/dunder-proto/set.js +35 -0
  164. package/node_modules/dunder-proto/test/get.js +34 -0
  165. package/node_modules/dunder-proto/test/index.js +4 -0
  166. package/node_modules/dunder-proto/test/set.js +50 -0
  167. package/node_modules/dunder-proto/tsconfig.json +9 -0
  168. package/node_modules/ee-first/LICENSE +22 -0
  169. package/node_modules/ee-first/README.md +80 -0
  170. package/node_modules/ee-first/index.js +95 -0
  171. package/node_modules/ee-first/package.json +29 -0
  172. package/node_modules/encodeurl/LICENSE +22 -0
  173. package/node_modules/encodeurl/README.md +109 -0
  174. package/node_modules/encodeurl/index.js +60 -0
  175. package/node_modules/encodeurl/package.json +40 -0
  176. package/node_modules/es-define-property/.eslintrc +13 -0
  177. package/node_modules/es-define-property/.github/FUNDING.yml +12 -0
  178. package/node_modules/es-define-property/.nycrc +9 -0
  179. package/node_modules/es-define-property/CHANGELOG.md +29 -0
  180. package/node_modules/es-define-property/LICENSE +21 -0
  181. package/node_modules/es-define-property/README.md +49 -0
  182. package/node_modules/es-define-property/index.d.ts +3 -0
  183. package/node_modules/es-define-property/index.js +14 -0
  184. package/node_modules/es-define-property/package.json +81 -0
  185. package/node_modules/es-define-property/test/index.js +56 -0
  186. package/node_modules/es-define-property/tsconfig.json +10 -0
  187. package/node_modules/es-errors/.eslintrc +5 -0
  188. package/node_modules/es-errors/.github/FUNDING.yml +12 -0
  189. package/node_modules/es-errors/CHANGELOG.md +40 -0
  190. package/node_modules/es-errors/LICENSE +21 -0
  191. package/node_modules/es-errors/README.md +55 -0
  192. package/node_modules/es-errors/eval.d.ts +3 -0
  193. package/node_modules/es-errors/eval.js +4 -0
  194. package/node_modules/es-errors/index.d.ts +3 -0
  195. package/node_modules/es-errors/index.js +4 -0
  196. package/node_modules/es-errors/package.json +80 -0
  197. package/node_modules/es-errors/range.d.ts +3 -0
  198. package/node_modules/es-errors/range.js +4 -0
  199. package/node_modules/es-errors/ref.d.ts +3 -0
  200. package/node_modules/es-errors/ref.js +4 -0
  201. package/node_modules/es-errors/syntax.d.ts +3 -0
  202. package/node_modules/es-errors/syntax.js +4 -0
  203. package/node_modules/es-errors/test/index.js +19 -0
  204. package/node_modules/es-errors/tsconfig.json +49 -0
  205. package/node_modules/es-errors/type.d.ts +3 -0
  206. package/node_modules/es-errors/type.js +4 -0
  207. package/node_modules/es-errors/uri.d.ts +3 -0
  208. package/node_modules/es-errors/uri.js +4 -0
  209. package/node_modules/es-object-atoms/.eslintrc +16 -0
  210. package/node_modules/es-object-atoms/.github/FUNDING.yml +12 -0
  211. package/node_modules/es-object-atoms/CHANGELOG.md +37 -0
  212. package/node_modules/es-object-atoms/LICENSE +21 -0
  213. package/node_modules/es-object-atoms/README.md +63 -0
  214. package/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +3 -0
  215. package/node_modules/es-object-atoms/RequireObjectCoercible.js +11 -0
  216. package/node_modules/es-object-atoms/ToObject.d.ts +7 -0
  217. package/node_modules/es-object-atoms/ToObject.js +10 -0
  218. package/node_modules/es-object-atoms/index.d.ts +3 -0
  219. package/node_modules/es-object-atoms/index.js +4 -0
  220. package/node_modules/es-object-atoms/isObject.d.ts +3 -0
  221. package/node_modules/es-object-atoms/isObject.js +6 -0
  222. package/node_modules/es-object-atoms/package.json +80 -0
  223. package/node_modules/es-object-atoms/test/index.js +38 -0
  224. package/node_modules/es-object-atoms/tsconfig.json +6 -0
  225. package/node_modules/escape-html/LICENSE +24 -0
  226. package/node_modules/escape-html/Readme.md +43 -0
  227. package/node_modules/escape-html/index.js +78 -0
  228. package/node_modules/escape-html/package.json +24 -0
  229. package/node_modules/etag/HISTORY.md +83 -0
  230. package/node_modules/etag/LICENSE +22 -0
  231. package/node_modules/etag/README.md +159 -0
  232. package/node_modules/etag/index.js +131 -0
  233. package/node_modules/etag/package.json +47 -0
  234. package/node_modules/forwarded/HISTORY.md +21 -0
  235. package/node_modules/forwarded/LICENSE +22 -0
  236. package/node_modules/forwarded/README.md +57 -0
  237. package/node_modules/forwarded/index.js +90 -0
  238. package/node_modules/forwarded/package.json +45 -0
  239. package/node_modules/function-bind/.eslintrc +21 -0
  240. package/node_modules/function-bind/.github/FUNDING.yml +12 -0
  241. package/node_modules/function-bind/.github/SECURITY.md +3 -0
  242. package/node_modules/function-bind/.nycrc +13 -0
  243. package/node_modules/function-bind/CHANGELOG.md +136 -0
  244. package/node_modules/function-bind/LICENSE +20 -0
  245. package/node_modules/function-bind/README.md +46 -0
  246. package/node_modules/function-bind/implementation.js +84 -0
  247. package/node_modules/function-bind/index.js +5 -0
  248. package/node_modules/function-bind/package.json +87 -0
  249. package/node_modules/function-bind/test/.eslintrc +9 -0
  250. package/node_modules/function-bind/test/index.js +252 -0
  251. package/node_modules/get-intrinsic/.eslintrc +42 -0
  252. package/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
  253. package/node_modules/get-intrinsic/.nycrc +9 -0
  254. package/node_modules/get-intrinsic/CHANGELOG.md +186 -0
  255. package/node_modules/get-intrinsic/LICENSE +21 -0
  256. package/node_modules/get-intrinsic/README.md +71 -0
  257. package/node_modules/get-intrinsic/index.js +378 -0
  258. package/node_modules/get-intrinsic/package.json +97 -0
  259. package/node_modules/get-intrinsic/test/GetIntrinsic.js +274 -0
  260. package/node_modules/get-proto/.eslintrc +10 -0
  261. package/node_modules/get-proto/.github/FUNDING.yml +12 -0
  262. package/node_modules/get-proto/.nycrc +9 -0
  263. package/node_modules/get-proto/CHANGELOG.md +21 -0
  264. package/node_modules/get-proto/LICENSE +21 -0
  265. package/node_modules/get-proto/Object.getPrototypeOf.d.ts +5 -0
  266. package/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
  267. package/node_modules/get-proto/README.md +50 -0
  268. package/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +3 -0
  269. package/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
  270. package/node_modules/get-proto/index.d.ts +5 -0
  271. package/node_modules/get-proto/index.js +27 -0
  272. package/node_modules/get-proto/package.json +81 -0
  273. package/node_modules/get-proto/test/index.js +68 -0
  274. package/node_modules/get-proto/tsconfig.json +9 -0
  275. package/node_modules/gopd/.eslintrc +16 -0
  276. package/node_modules/gopd/.github/FUNDING.yml +12 -0
  277. package/node_modules/gopd/CHANGELOG.md +45 -0
  278. package/node_modules/gopd/LICENSE +21 -0
  279. package/node_modules/gopd/README.md +40 -0
  280. package/node_modules/gopd/gOPD.d.ts +1 -0
  281. package/node_modules/gopd/gOPD.js +4 -0
  282. package/node_modules/gopd/index.d.ts +5 -0
  283. package/node_modules/gopd/index.js +15 -0
  284. package/node_modules/gopd/package.json +77 -0
  285. package/node_modules/gopd/test/index.js +36 -0
  286. package/node_modules/gopd/tsconfig.json +9 -0
  287. package/node_modules/has-symbols/.eslintrc +11 -0
  288. package/node_modules/has-symbols/.github/FUNDING.yml +12 -0
  289. package/node_modules/has-symbols/.nycrc +9 -0
  290. package/node_modules/has-symbols/CHANGELOG.md +91 -0
  291. package/node_modules/has-symbols/LICENSE +21 -0
  292. package/node_modules/has-symbols/README.md +46 -0
  293. package/node_modules/has-symbols/index.d.ts +3 -0
  294. package/node_modules/has-symbols/index.js +14 -0
  295. package/node_modules/has-symbols/package.json +111 -0
  296. package/node_modules/has-symbols/shams.d.ts +3 -0
  297. package/node_modules/has-symbols/shams.js +45 -0
  298. package/node_modules/has-symbols/test/index.js +22 -0
  299. package/node_modules/has-symbols/test/shams/core-js.js +29 -0
  300. package/node_modules/has-symbols/test/shams/get-own-property-symbols.js +29 -0
  301. package/node_modules/has-symbols/test/tests.js +58 -0
  302. package/node_modules/has-symbols/tsconfig.json +10 -0
  303. package/node_modules/hasown/.github/FUNDING.yml +12 -0
  304. package/node_modules/hasown/.nycrc +13 -0
  305. package/node_modules/hasown/CHANGELOG.md +51 -0
  306. package/node_modules/hasown/LICENSE +21 -0
  307. package/node_modules/hasown/README.md +40 -0
  308. package/node_modules/hasown/eslint.config.mjs +6 -0
  309. package/node_modules/hasown/index.d.ts +4 -0
  310. package/node_modules/hasown/index.js +8 -0
  311. package/node_modules/hasown/package.json +92 -0
  312. package/node_modules/hasown/tsconfig.json +6 -0
  313. package/node_modules/http-errors/HISTORY.md +186 -0
  314. package/node_modules/http-errors/LICENSE +23 -0
  315. package/node_modules/http-errors/README.md +169 -0
  316. package/node_modules/http-errors/index.js +290 -0
  317. package/node_modules/http-errors/package.json +54 -0
  318. package/node_modules/inherits/LICENSE +16 -0
  319. package/node_modules/inherits/README.md +42 -0
  320. package/node_modules/inherits/inherits.js +9 -0
  321. package/node_modules/inherits/inherits_browser.js +27 -0
  322. package/node_modules/inherits/package.json +29 -0
  323. package/node_modules/ipaddr.js/LICENSE +19 -0
  324. package/node_modules/ipaddr.js/README.md +233 -0
  325. package/node_modules/ipaddr.js/ipaddr.min.js +1 -0
  326. package/node_modules/ipaddr.js/lib/ipaddr.js +673 -0
  327. package/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +68 -0
  328. package/node_modules/ipaddr.js/package.json +35 -0
  329. package/node_modules/is-docker/cli.js +5 -0
  330. package/node_modules/is-docker/index.d.ts +13 -0
  331. package/node_modules/is-docker/index.js +29 -0
  332. package/node_modules/is-docker/license +9 -0
  333. package/node_modules/is-docker/package.json +44 -0
  334. package/node_modules/is-docker/readme.md +27 -0
  335. package/node_modules/is-inside-container/cli.js +5 -0
  336. package/node_modules/is-inside-container/index.d.ts +13 -0
  337. package/node_modules/is-inside-container/index.js +23 -0
  338. package/node_modules/is-inside-container/license +9 -0
  339. package/node_modules/is-inside-container/package.json +51 -0
  340. package/node_modules/is-inside-container/readme.md +36 -0
  341. package/node_modules/is-wsl/index.d.ts +15 -0
  342. package/node_modules/is-wsl/index.js +36 -0
  343. package/node_modules/is-wsl/license +9 -0
  344. package/node_modules/is-wsl/package.json +58 -0
  345. package/node_modules/is-wsl/readme.md +21 -0
  346. package/node_modules/math-intrinsics/.eslintrc +16 -0
  347. package/node_modules/math-intrinsics/.github/FUNDING.yml +12 -0
  348. package/node_modules/math-intrinsics/CHANGELOG.md +24 -0
  349. package/node_modules/math-intrinsics/LICENSE +21 -0
  350. package/node_modules/math-intrinsics/README.md +50 -0
  351. package/node_modules/math-intrinsics/abs.d.ts +1 -0
  352. package/node_modules/math-intrinsics/abs.js +4 -0
  353. package/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +3 -0
  354. package/node_modules/math-intrinsics/constants/maxArrayLength.js +4 -0
  355. package/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +3 -0
  356. package/node_modules/math-intrinsics/constants/maxSafeInteger.js +5 -0
  357. package/node_modules/math-intrinsics/constants/maxValue.d.ts +3 -0
  358. package/node_modules/math-intrinsics/constants/maxValue.js +5 -0
  359. package/node_modules/math-intrinsics/floor.d.ts +1 -0
  360. package/node_modules/math-intrinsics/floor.js +4 -0
  361. package/node_modules/math-intrinsics/isFinite.d.ts +3 -0
  362. package/node_modules/math-intrinsics/isFinite.js +12 -0
  363. package/node_modules/math-intrinsics/isInteger.d.ts +3 -0
  364. package/node_modules/math-intrinsics/isInteger.js +16 -0
  365. package/node_modules/math-intrinsics/isNaN.d.ts +1 -0
  366. package/node_modules/math-intrinsics/isNaN.js +6 -0
  367. package/node_modules/math-intrinsics/isNegativeZero.d.ts +3 -0
  368. package/node_modules/math-intrinsics/isNegativeZero.js +6 -0
  369. package/node_modules/math-intrinsics/max.d.ts +1 -0
  370. package/node_modules/math-intrinsics/max.js +4 -0
  371. package/node_modules/math-intrinsics/min.d.ts +1 -0
  372. package/node_modules/math-intrinsics/min.js +4 -0
  373. package/node_modules/math-intrinsics/mod.d.ts +3 -0
  374. package/node_modules/math-intrinsics/mod.js +9 -0
  375. package/node_modules/math-intrinsics/package.json +86 -0
  376. package/node_modules/math-intrinsics/pow.d.ts +1 -0
  377. package/node_modules/math-intrinsics/pow.js +4 -0
  378. package/node_modules/math-intrinsics/round.d.ts +1 -0
  379. package/node_modules/math-intrinsics/round.js +4 -0
  380. package/node_modules/math-intrinsics/sign.d.ts +3 -0
  381. package/node_modules/math-intrinsics/sign.js +11 -0
  382. package/node_modules/math-intrinsics/test/index.js +192 -0
  383. package/node_modules/math-intrinsics/tsconfig.json +3 -0
  384. package/node_modules/methods/HISTORY.md +29 -0
  385. package/node_modules/methods/LICENSE +24 -0
  386. package/node_modules/methods/README.md +51 -0
  387. package/node_modules/methods/index.js +69 -0
  388. package/node_modules/methods/package.json +36 -0
  389. package/node_modules/mime/.npmignore +0 -0
  390. package/node_modules/mime/CHANGELOG.md +164 -0
  391. package/node_modules/mime/LICENSE +21 -0
  392. package/node_modules/mime/README.md +90 -0
  393. package/node_modules/mime/cli.js +8 -0
  394. package/node_modules/mime/mime.js +108 -0
  395. package/node_modules/mime/package.json +44 -0
  396. package/node_modules/mime/src/build.js +53 -0
  397. package/node_modules/mime/src/test.js +60 -0
  398. package/node_modules/mime/types.json +1 -0
  399. package/node_modules/ms/index.js +162 -0
  400. package/node_modules/ms/license.md +21 -0
  401. package/node_modules/ms/package.json +38 -0
  402. package/node_modules/ms/readme.md +59 -0
  403. package/node_modules/object-inspect/.eslintrc +53 -0
  404. package/node_modules/object-inspect/.github/FUNDING.yml +12 -0
  405. package/node_modules/object-inspect/.nycrc +13 -0
  406. package/node_modules/object-inspect/CHANGELOG.md +424 -0
  407. package/node_modules/object-inspect/LICENSE +21 -0
  408. package/node_modules/object-inspect/example/all.js +23 -0
  409. package/node_modules/object-inspect/example/circular.js +6 -0
  410. package/node_modules/object-inspect/example/fn.js +5 -0
  411. package/node_modules/object-inspect/example/inspect.js +10 -0
  412. package/node_modules/object-inspect/index.js +544 -0
  413. package/node_modules/object-inspect/package-support.json +20 -0
  414. package/node_modules/object-inspect/package.json +105 -0
  415. package/node_modules/object-inspect/readme.markdown +84 -0
  416. package/node_modules/object-inspect/test/bigint.js +58 -0
  417. package/node_modules/object-inspect/test/browser/dom.js +15 -0
  418. package/node_modules/object-inspect/test/circular.js +16 -0
  419. package/node_modules/object-inspect/test/deep.js +12 -0
  420. package/node_modules/object-inspect/test/element.js +53 -0
  421. package/node_modules/object-inspect/test/err.js +48 -0
  422. package/node_modules/object-inspect/test/fakes.js +29 -0
  423. package/node_modules/object-inspect/test/fn.js +76 -0
  424. package/node_modules/object-inspect/test/global.js +17 -0
  425. package/node_modules/object-inspect/test/has.js +15 -0
  426. package/node_modules/object-inspect/test/holes.js +15 -0
  427. package/node_modules/object-inspect/test/indent-option.js +271 -0
  428. package/node_modules/object-inspect/test/inspect.js +139 -0
  429. package/node_modules/object-inspect/test/lowbyte.js +12 -0
  430. package/node_modules/object-inspect/test/number.js +58 -0
  431. package/node_modules/object-inspect/test/quoteStyle.js +26 -0
  432. package/node_modules/object-inspect/test/toStringTag.js +40 -0
  433. package/node_modules/object-inspect/test/undef.js +12 -0
  434. package/node_modules/object-inspect/test/values.js +261 -0
  435. package/node_modules/object-inspect/test-core-js.js +26 -0
  436. package/node_modules/object-inspect/util.inspect.js +1 -0
  437. package/node_modules/on-finished/HISTORY.md +98 -0
  438. package/node_modules/on-finished/LICENSE +23 -0
  439. package/node_modules/on-finished/README.md +162 -0
  440. package/node_modules/on-finished/index.js +234 -0
  441. package/node_modules/on-finished/package.json +39 -0
  442. package/node_modules/open/index.d.ts +158 -0
  443. package/node_modules/open/index.js +366 -0
  444. package/node_modules/open/license +9 -0
  445. package/node_modules/open/node_modules/wsl-utils/index.d.ts +21 -0
  446. package/node_modules/open/node_modules/wsl-utils/index.js +57 -0
  447. package/node_modules/open/node_modules/wsl-utils/license +9 -0
  448. package/node_modules/open/node_modules/wsl-utils/package.json +46 -0
  449. package/node_modules/open/node_modules/wsl-utils/readme.md +50 -0
  450. package/node_modules/open/package.json +68 -0
  451. package/node_modules/open/readme.md +183 -0
  452. package/node_modules/open/xdg-open +1267 -0
  453. package/node_modules/parseurl/HISTORY.md +58 -0
  454. package/node_modules/parseurl/LICENSE +24 -0
  455. package/node_modules/parseurl/README.md +133 -0
  456. package/node_modules/parseurl/index.js +158 -0
  457. package/node_modules/parseurl/package.json +40 -0
  458. package/node_modules/progrok/LICENSE +21 -0
  459. package/node_modules/progrok/README.md +53 -0
  460. package/node_modules/progrok/THIRD_PARTY_NOTICES.md +13 -0
  461. package/node_modules/progrok/dist/index.js +1142 -0
  462. package/node_modules/progrok/dist/index.js.map +1 -0
  463. package/node_modules/progrok/dist/public/app.js +529 -0
  464. package/node_modules/progrok/dist/public/index.html +47 -0
  465. package/node_modules/progrok/dist/public/style.css +392 -0
  466. package/node_modules/progrok/node_modules/accepts/HISTORY.md +243 -0
  467. package/node_modules/progrok/node_modules/accepts/LICENSE +23 -0
  468. package/node_modules/progrok/node_modules/accepts/README.md +140 -0
  469. package/node_modules/progrok/node_modules/accepts/index.js +238 -0
  470. package/node_modules/progrok/node_modules/accepts/package.json +47 -0
  471. package/node_modules/progrok/node_modules/body-parser/HISTORY.md +686 -0
  472. package/node_modules/progrok/node_modules/body-parser/LICENSE +23 -0
  473. package/node_modules/progrok/node_modules/body-parser/README.md +476 -0
  474. package/node_modules/progrok/node_modules/body-parser/index.js +156 -0
  475. package/node_modules/progrok/node_modules/body-parser/lib/read.js +205 -0
  476. package/node_modules/progrok/node_modules/body-parser/lib/types/json.js +243 -0
  477. package/node_modules/progrok/node_modules/body-parser/lib/types/raw.js +101 -0
  478. package/node_modules/progrok/node_modules/body-parser/lib/types/text.js +121 -0
  479. package/node_modules/progrok/node_modules/body-parser/lib/types/urlencoded.js +299 -0
  480. package/node_modules/progrok/node_modules/body-parser/package.json +55 -0
  481. package/node_modules/progrok/node_modules/content-disposition/HISTORY.md +60 -0
  482. package/node_modules/progrok/node_modules/content-disposition/LICENSE +22 -0
  483. package/node_modules/progrok/node_modules/content-disposition/README.md +142 -0
  484. package/node_modules/progrok/node_modules/content-disposition/index.js +458 -0
  485. package/node_modules/progrok/node_modules/content-disposition/package.json +44 -0
  486. package/node_modules/progrok/node_modules/cookie-signature/History.md +42 -0
  487. package/node_modules/progrok/node_modules/cookie-signature/Readme.md +42 -0
  488. package/node_modules/progrok/node_modules/cookie-signature/index.js +51 -0
  489. package/node_modules/progrok/node_modules/cookie-signature/package.json +18 -0
  490. package/node_modules/progrok/node_modules/debug/.coveralls.yml +1 -0
  491. package/node_modules/progrok/node_modules/debug/.eslintrc +11 -0
  492. package/node_modules/progrok/node_modules/debug/.npmignore +9 -0
  493. package/node_modules/progrok/node_modules/debug/.travis.yml +14 -0
  494. package/node_modules/progrok/node_modules/debug/CHANGELOG.md +362 -0
  495. package/node_modules/progrok/node_modules/debug/LICENSE +19 -0
  496. package/node_modules/progrok/node_modules/debug/Makefile +50 -0
  497. package/node_modules/progrok/node_modules/debug/README.md +312 -0
  498. package/node_modules/progrok/node_modules/debug/component.json +19 -0
  499. package/node_modules/progrok/node_modules/debug/karma.conf.js +70 -0
  500. package/node_modules/progrok/node_modules/debug/node.js +1 -0
  501. package/node_modules/progrok/node_modules/debug/node_modules/ms/index.js +152 -0
  502. package/node_modules/progrok/node_modules/debug/node_modules/ms/license.md +21 -0
  503. package/node_modules/progrok/node_modules/debug/node_modules/ms/package.json +37 -0
  504. package/node_modules/progrok/node_modules/debug/node_modules/ms/readme.md +51 -0
  505. package/node_modules/progrok/node_modules/debug/package.json +49 -0
  506. package/node_modules/progrok/node_modules/debug/src/browser.js +185 -0
  507. package/node_modules/progrok/node_modules/debug/src/debug.js +202 -0
  508. package/node_modules/progrok/node_modules/debug/src/index.js +10 -0
  509. package/node_modules/progrok/node_modules/debug/src/inspector-log.js +15 -0
  510. package/node_modules/progrok/node_modules/debug/src/node.js +248 -0
  511. package/node_modules/progrok/node_modules/express/History.md +3676 -0
  512. package/node_modules/progrok/node_modules/express/LICENSE +24 -0
  513. package/node_modules/progrok/node_modules/express/Readme.md +260 -0
  514. package/node_modules/progrok/node_modules/express/index.js +11 -0
  515. package/node_modules/progrok/node_modules/express/lib/application.js +661 -0
  516. package/node_modules/progrok/node_modules/express/lib/express.js +116 -0
  517. package/node_modules/progrok/node_modules/express/lib/middleware/init.js +43 -0
  518. package/node_modules/progrok/node_modules/express/lib/middleware/query.js +47 -0
  519. package/node_modules/progrok/node_modules/express/lib/request.js +525 -0
  520. package/node_modules/progrok/node_modules/express/lib/response.js +1179 -0
  521. package/node_modules/progrok/node_modules/express/lib/router/index.js +673 -0
  522. package/node_modules/progrok/node_modules/express/lib/router/layer.js +181 -0
  523. package/node_modules/progrok/node_modules/express/lib/router/route.js +230 -0
  524. package/node_modules/progrok/node_modules/express/lib/utils.js +304 -0
  525. package/node_modules/progrok/node_modules/express/lib/view.js +182 -0
  526. package/node_modules/progrok/node_modules/express/package.json +102 -0
  527. package/node_modules/progrok/node_modules/finalhandler/HISTORY.md +216 -0
  528. package/node_modules/progrok/node_modules/finalhandler/LICENSE +22 -0
  529. package/node_modules/progrok/node_modules/finalhandler/README.md +147 -0
  530. package/node_modules/progrok/node_modules/finalhandler/SECURITY.md +25 -0
  531. package/node_modules/progrok/node_modules/finalhandler/index.js +341 -0
  532. package/node_modules/progrok/node_modules/finalhandler/package.json +47 -0
  533. package/node_modules/progrok/node_modules/fresh/HISTORY.md +70 -0
  534. package/node_modules/progrok/node_modules/fresh/LICENSE +23 -0
  535. package/node_modules/progrok/node_modules/fresh/README.md +119 -0
  536. package/node_modules/progrok/node_modules/fresh/index.js +137 -0
  537. package/node_modules/progrok/node_modules/fresh/package.json +46 -0
  538. package/node_modules/progrok/node_modules/iconv-lite/Changelog.md +162 -0
  539. package/node_modules/progrok/node_modules/iconv-lite/LICENSE +21 -0
  540. package/node_modules/progrok/node_modules/iconv-lite/README.md +156 -0
  541. package/node_modules/progrok/node_modules/iconv-lite/encodings/dbcs-codec.js +555 -0
  542. package/node_modules/progrok/node_modules/iconv-lite/encodings/dbcs-data.js +176 -0
  543. package/node_modules/progrok/node_modules/iconv-lite/encodings/index.js +22 -0
  544. package/node_modules/progrok/node_modules/iconv-lite/encodings/internal.js +188 -0
  545. package/node_modules/progrok/node_modules/iconv-lite/encodings/sbcs-codec.js +72 -0
  546. package/node_modules/progrok/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
  547. package/node_modules/progrok/node_modules/iconv-lite/encodings/sbcs-data.js +174 -0
  548. package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
  549. package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
  550. package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
  551. package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
  552. package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
  553. package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
  554. package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/gbk-added.json +55 -0
  555. package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
  556. package/node_modules/progrok/node_modules/iconv-lite/encodings/utf16.js +177 -0
  557. package/node_modules/progrok/node_modules/iconv-lite/encodings/utf7.js +290 -0
  558. package/node_modules/progrok/node_modules/iconv-lite/lib/bom-handling.js +52 -0
  559. package/node_modules/progrok/node_modules/iconv-lite/lib/extend-node.js +217 -0
  560. package/node_modules/progrok/node_modules/iconv-lite/lib/index.d.ts +24 -0
  561. package/node_modules/progrok/node_modules/iconv-lite/lib/index.js +153 -0
  562. package/node_modules/progrok/node_modules/iconv-lite/lib/streams.js +121 -0
  563. package/node_modules/progrok/node_modules/iconv-lite/package.json +46 -0
  564. package/node_modules/progrok/node_modules/media-typer/HISTORY.md +22 -0
  565. package/node_modules/progrok/node_modules/media-typer/LICENSE +22 -0
  566. package/node_modules/progrok/node_modules/media-typer/README.md +81 -0
  567. package/node_modules/progrok/node_modules/media-typer/index.js +270 -0
  568. package/node_modules/progrok/node_modules/media-typer/package.json +26 -0
  569. package/node_modules/progrok/node_modules/merge-descriptors/HISTORY.md +21 -0
  570. package/node_modules/progrok/node_modules/merge-descriptors/LICENSE +23 -0
  571. package/node_modules/progrok/node_modules/merge-descriptors/README.md +49 -0
  572. package/node_modules/progrok/node_modules/merge-descriptors/index.js +60 -0
  573. package/node_modules/progrok/node_modules/merge-descriptors/package.json +39 -0
  574. package/node_modules/progrok/node_modules/mime-db/HISTORY.md +507 -0
  575. package/node_modules/progrok/node_modules/mime-db/LICENSE +23 -0
  576. package/node_modules/progrok/node_modules/mime-db/README.md +100 -0
  577. package/node_modules/progrok/node_modules/mime-db/db.json +8519 -0
  578. package/node_modules/progrok/node_modules/mime-db/index.js +12 -0
  579. package/node_modules/progrok/node_modules/mime-db/package.json +60 -0
  580. package/node_modules/progrok/node_modules/mime-types/HISTORY.md +397 -0
  581. package/node_modules/progrok/node_modules/mime-types/LICENSE +23 -0
  582. package/node_modules/progrok/node_modules/mime-types/README.md +113 -0
  583. package/node_modules/progrok/node_modules/mime-types/index.js +188 -0
  584. package/node_modules/progrok/node_modules/mime-types/package.json +44 -0
  585. package/node_modules/progrok/node_modules/negotiator/HISTORY.md +108 -0
  586. package/node_modules/progrok/node_modules/negotiator/LICENSE +24 -0
  587. package/node_modules/progrok/node_modules/negotiator/README.md +203 -0
  588. package/node_modules/progrok/node_modules/negotiator/index.js +82 -0
  589. package/node_modules/progrok/node_modules/negotiator/lib/charset.js +169 -0
  590. package/node_modules/progrok/node_modules/negotiator/lib/encoding.js +184 -0
  591. package/node_modules/progrok/node_modules/negotiator/lib/language.js +179 -0
  592. package/node_modules/progrok/node_modules/negotiator/lib/mediaType.js +294 -0
  593. package/node_modules/progrok/node_modules/negotiator/package.json +42 -0
  594. package/node_modules/progrok/node_modules/path-to-regexp/LICENSE +21 -0
  595. package/node_modules/progrok/node_modules/path-to-regexp/Readme.md +35 -0
  596. package/node_modules/progrok/node_modules/path-to-regexp/index.js +158 -0
  597. package/node_modules/progrok/node_modules/path-to-regexp/package.json +30 -0
  598. package/node_modules/progrok/node_modules/raw-body/LICENSE +22 -0
  599. package/node_modules/progrok/node_modules/raw-body/README.md +223 -0
  600. package/node_modules/progrok/node_modules/raw-body/index.d.ts +87 -0
  601. package/node_modules/progrok/node_modules/raw-body/index.js +336 -0
  602. package/node_modules/progrok/node_modules/raw-body/package.json +47 -0
  603. package/node_modules/progrok/node_modules/send/HISTORY.md +538 -0
  604. package/node_modules/progrok/node_modules/send/LICENSE +23 -0
  605. package/node_modules/progrok/node_modules/send/README.md +327 -0
  606. package/node_modules/progrok/node_modules/send/SECURITY.md +24 -0
  607. package/node_modules/progrok/node_modules/send/index.js +1142 -0
  608. package/node_modules/progrok/node_modules/send/package.json +62 -0
  609. package/node_modules/progrok/node_modules/serve-static/HISTORY.md +493 -0
  610. package/node_modules/progrok/node_modules/serve-static/LICENSE +25 -0
  611. package/node_modules/progrok/node_modules/serve-static/README.md +257 -0
  612. package/node_modules/progrok/node_modules/serve-static/index.js +209 -0
  613. package/node_modules/progrok/node_modules/serve-static/package.json +42 -0
  614. package/node_modules/progrok/node_modules/type-is/HISTORY.md +259 -0
  615. package/node_modules/progrok/node_modules/type-is/LICENSE +23 -0
  616. package/node_modules/progrok/node_modules/type-is/README.md +170 -0
  617. package/node_modules/progrok/node_modules/type-is/index.js +266 -0
  618. package/node_modules/progrok/node_modules/type-is/package.json +45 -0
  619. package/node_modules/progrok/package.json +52 -0
  620. package/node_modules/progrok/skills/progrok/SKILL.md +228 -0
  621. package/node_modules/proxy-addr/HISTORY.md +161 -0
  622. package/node_modules/proxy-addr/LICENSE +22 -0
  623. package/node_modules/proxy-addr/README.md +139 -0
  624. package/node_modules/proxy-addr/index.js +327 -0
  625. package/node_modules/proxy-addr/package.json +47 -0
  626. package/node_modules/qs/.editorconfig +46 -0
  627. package/node_modules/qs/.github/FUNDING.yml +12 -0
  628. package/node_modules/qs/.github/SECURITY.md +11 -0
  629. package/node_modules/qs/.github/THREAT_MODEL.md +78 -0
  630. package/node_modules/qs/.nycrc +13 -0
  631. package/node_modules/qs/CHANGELOG.md +812 -0
  632. package/node_modules/qs/LICENSE.md +29 -0
  633. package/node_modules/qs/README.md +758 -0
  634. package/node_modules/qs/dist/qs.js +141 -0
  635. package/node_modules/qs/eslint.config.mjs +56 -0
  636. package/node_modules/qs/lib/formats.js +23 -0
  637. package/node_modules/qs/lib/index.js +11 -0
  638. package/node_modules/qs/lib/parse.js +373 -0
  639. package/node_modules/qs/lib/stringify.js +356 -0
  640. package/node_modules/qs/lib/utils.js +342 -0
  641. package/node_modules/qs/package.json +94 -0
  642. package/node_modules/qs/test/empty-keys-cases.js +267 -0
  643. package/node_modules/qs/test/parse.js +1654 -0
  644. package/node_modules/qs/test/stringify.js +1319 -0
  645. package/node_modules/qs/test/utils.js +432 -0
  646. package/node_modules/range-parser/HISTORY.md +56 -0
  647. package/node_modules/range-parser/LICENSE +23 -0
  648. package/node_modules/range-parser/README.md +84 -0
  649. package/node_modules/range-parser/index.js +162 -0
  650. package/node_modules/range-parser/package.json +44 -0
  651. package/node_modules/run-applescript/index.d.ts +66 -0
  652. package/node_modules/run-applescript/index.js +37 -0
  653. package/node_modules/run-applescript/license +9 -0
  654. package/node_modules/run-applescript/package.json +42 -0
  655. package/node_modules/run-applescript/readme.md +78 -0
  656. package/node_modules/safe-buffer/LICENSE +21 -0
  657. package/node_modules/safe-buffer/README.md +584 -0
  658. package/node_modules/safe-buffer/index.d.ts +187 -0
  659. package/node_modules/safe-buffer/index.js +65 -0
  660. package/node_modules/safe-buffer/package.json +51 -0
  661. package/node_modules/safer-buffer/LICENSE +21 -0
  662. package/node_modules/safer-buffer/Porting-Buffer.md +268 -0
  663. package/node_modules/safer-buffer/Readme.md +156 -0
  664. package/node_modules/safer-buffer/dangerous.js +58 -0
  665. package/node_modules/safer-buffer/package.json +34 -0
  666. package/node_modules/safer-buffer/safer.js +77 -0
  667. package/node_modules/safer-buffer/tests.js +406 -0
  668. package/node_modules/setprototypeof/LICENSE +13 -0
  669. package/node_modules/setprototypeof/README.md +31 -0
  670. package/node_modules/setprototypeof/index.d.ts +2 -0
  671. package/node_modules/setprototypeof/index.js +17 -0
  672. package/node_modules/setprototypeof/package.json +38 -0
  673. package/node_modules/setprototypeof/test/index.js +24 -0
  674. package/node_modules/side-channel/.editorconfig +9 -0
  675. package/node_modules/side-channel/.eslintrc +12 -0
  676. package/node_modules/side-channel/.github/FUNDING.yml +12 -0
  677. package/node_modules/side-channel/.nycrc +13 -0
  678. package/node_modules/side-channel/CHANGELOG.md +110 -0
  679. package/node_modules/side-channel/LICENSE +21 -0
  680. package/node_modules/side-channel/README.md +61 -0
  681. package/node_modules/side-channel/index.d.ts +14 -0
  682. package/node_modules/side-channel/index.js +43 -0
  683. package/node_modules/side-channel/package.json +85 -0
  684. package/node_modules/side-channel/test/index.js +104 -0
  685. package/node_modules/side-channel/tsconfig.json +9 -0
  686. package/node_modules/side-channel-list/.editorconfig +9 -0
  687. package/node_modules/side-channel-list/.eslintrc +11 -0
  688. package/node_modules/side-channel-list/.github/FUNDING.yml +12 -0
  689. package/node_modules/side-channel-list/.nycrc +13 -0
  690. package/node_modules/side-channel-list/CHANGELOG.md +36 -0
  691. package/node_modules/side-channel-list/LICENSE +21 -0
  692. package/node_modules/side-channel-list/README.md +62 -0
  693. package/node_modules/side-channel-list/index.d.ts +13 -0
  694. package/node_modules/side-channel-list/index.js +111 -0
  695. package/node_modules/side-channel-list/list.d.ts +14 -0
  696. package/node_modules/side-channel-list/package.json +77 -0
  697. package/node_modules/side-channel-list/test/index.js +154 -0
  698. package/node_modules/side-channel-list/tsconfig.json +9 -0
  699. package/node_modules/side-channel-map/.editorconfig +9 -0
  700. package/node_modules/side-channel-map/.eslintrc +11 -0
  701. package/node_modules/side-channel-map/.github/FUNDING.yml +12 -0
  702. package/node_modules/side-channel-map/.nycrc +13 -0
  703. package/node_modules/side-channel-map/CHANGELOG.md +22 -0
  704. package/node_modules/side-channel-map/LICENSE +21 -0
  705. package/node_modules/side-channel-map/README.md +62 -0
  706. package/node_modules/side-channel-map/index.d.ts +15 -0
  707. package/node_modules/side-channel-map/index.js +68 -0
  708. package/node_modules/side-channel-map/package.json +80 -0
  709. package/node_modules/side-channel-map/test/index.js +114 -0
  710. package/node_modules/side-channel-map/tsconfig.json +9 -0
  711. package/node_modules/side-channel-weakmap/.editorconfig +9 -0
  712. package/node_modules/side-channel-weakmap/.eslintrc +12 -0
  713. package/node_modules/side-channel-weakmap/.github/FUNDING.yml +12 -0
  714. package/node_modules/side-channel-weakmap/.nycrc +13 -0
  715. package/node_modules/side-channel-weakmap/CHANGELOG.md +28 -0
  716. package/node_modules/side-channel-weakmap/LICENSE +21 -0
  717. package/node_modules/side-channel-weakmap/README.md +62 -0
  718. package/node_modules/side-channel-weakmap/index.d.ts +15 -0
  719. package/node_modules/side-channel-weakmap/index.js +84 -0
  720. package/node_modules/side-channel-weakmap/package.json +87 -0
  721. package/node_modules/side-channel-weakmap/test/index.js +114 -0
  722. package/node_modules/side-channel-weakmap/tsconfig.json +9 -0
  723. package/node_modules/statuses/HISTORY.md +87 -0
  724. package/node_modules/statuses/LICENSE +23 -0
  725. package/node_modules/statuses/README.md +139 -0
  726. package/node_modules/statuses/codes.json +65 -0
  727. package/node_modules/statuses/index.js +146 -0
  728. package/node_modules/statuses/package.json +49 -0
  729. package/node_modules/toidentifier/HISTORY.md +9 -0
  730. package/node_modules/toidentifier/LICENSE +21 -0
  731. package/node_modules/toidentifier/README.md +61 -0
  732. package/node_modules/toidentifier/index.js +32 -0
  733. package/node_modules/toidentifier/package.json +38 -0
  734. package/node_modules/unpipe/HISTORY.md +4 -0
  735. package/node_modules/unpipe/LICENSE +22 -0
  736. package/node_modules/unpipe/README.md +43 -0
  737. package/node_modules/unpipe/index.js +69 -0
  738. package/node_modules/unpipe/package.json +27 -0
  739. package/node_modules/utils-merge/.npmignore +9 -0
  740. package/node_modules/utils-merge/LICENSE +20 -0
  741. package/node_modules/utils-merge/README.md +34 -0
  742. package/node_modules/utils-merge/index.js +23 -0
  743. package/node_modules/utils-merge/package.json +40 -0
  744. package/node_modules/vary/HISTORY.md +39 -0
  745. package/node_modules/vary/LICENSE +22 -0
  746. package/node_modules/vary/README.md +101 -0
  747. package/node_modules/vary/index.js +149 -0
  748. package/node_modules/vary/package.json +43 -0
  749. package/package.json +7 -2
  750. package/routes/edit.js +59 -12
  751. package/routes/edit.ts +68 -22
  752. package/routes/generate.js +78 -11
  753. package/routes/generate.ts +80 -10
  754. package/routes/grok.js +22 -0
  755. package/routes/grok.ts +24 -0
  756. package/routes/health.js +5 -0
  757. package/routes/health.ts +5 -0
  758. package/routes/index.js +4 -0
  759. package/routes/index.ts +4 -0
  760. package/routes/multimode.js +71 -26
  761. package/routes/multimode.ts +80 -39
  762. package/routes/nodes.js +88 -33
  763. package/routes/nodes.ts +97 -42
  764. package/routes/video.js +202 -0
  765. package/routes/video.ts +222 -0
  766. package/server.js +42 -1
  767. package/server.ts +34 -1
  768. package/skills/ima2/SKILL.md +27 -0
  769. package/ui/dist/.vite/manifest.json +12 -12
  770. package/ui/dist/assets/AgentWorkspace-CLHwx6u4.js +3 -0
  771. package/ui/dist/assets/{CardNewsWorkspace-EFVeg4l_.js → CardNewsWorkspace-6y_HNp3I.js} +2 -2
  772. package/ui/dist/assets/NodeCanvas-DR2N5Dib.js +7 -0
  773. package/ui/dist/assets/{PromptBuilderPanel-C3GdLDCl.js → PromptBuilderPanel-BQlPtGGm.js} +2 -2
  774. package/ui/dist/assets/{PromptImportDialog-DS9vrc_w.js → PromptImportDialog-aNk40wLt.js} +2 -2
  775. package/ui/dist/assets/{PromptImportDiscoverySection-DHFEt_FA.js → PromptImportDiscoverySection-B6NKkVBz.js} +1 -1
  776. package/ui/dist/assets/{PromptImportFolderSection-BQxb1zs5.js → PromptImportFolderSection-9-xbe-FM.js} +1 -1
  777. package/ui/dist/assets/{PromptLibraryPanel-NhMKVGfU.js → PromptLibraryPanel-CbEY0AM6.js} +2 -2
  778. package/ui/dist/assets/SettingsWorkspace-ao9ymIWt.js +1 -0
  779. package/ui/dist/assets/index-B0re600T.js +32 -0
  780. package/ui/dist/assets/index-CXJEgTOQ.css +1 -0
  781. package/ui/dist/assets/index-DP88bEQf.js +1 -0
  782. package/ui/dist/index.html +2 -2
  783. package/vendor/progrok-0.1.0.tgz +0 -0
  784. package/ui/dist/assets/AgentWorkspace-B6YNOZHi.js +0 -3
  785. package/ui/dist/assets/NodeCanvas-iM6yjHvO.js +0 -7
  786. package/ui/dist/assets/SettingsWorkspace-FjKjaDqj.js +0 -1
  787. package/ui/dist/assets/index-BAN6lKgf.js +0 -28
  788. package/ui/dist/assets/index-BbFZyM92.js +0 -1
  789. package/ui/dist/assets/index-DK1faG9Z.css +0 -1
package/README.md CHANGED
@@ -10,11 +10,13 @@
10
10
 
11
11
  > 🌐 **Live site**: [lidge-jun.github.io/ima2-gen](https://lidge-jun.github.io/ima2-gen/) · [한국어](https://lidge-jun.github.io/ima2-gen/ko/)
12
12
  >
13
+ > 📖 **Developer docs**: [Documentation site](https://lidge-jun.github.io/ima2-gen/docs) · [한국어](https://lidge-jun.github.io/ima2-gen/ko/docs)
14
+ >
13
15
  > **Read in other languages**: [한국어](docs/README.ko.md) · [日本語](docs/README.ja.md) · [简体中文](docs/README.zh-CN.md)
14
16
 
15
17
  `ima2-gen` is a local image generation studio for people who want the ChatGPT/Codex image workflow in a small desktop-like web app.
16
18
 
17
- Run it with `npx`, sign in with Codex OAuth, type a prompt, and keep iterating with history, references, node branches, multimode batches, and Canvas Mode cleanup. No OpenAI API key is required for the default path, but API-key generation is also supported when configured.
19
+ Run it with `npx`, sign in with Codex OAuth, type a prompt, and keep iterating with history, references, node branches, multimode batches, and Canvas Mode cleanup. No OpenAI API key is required for the default path, but API-key generation and bundled Grok generation are also supported when configured.
18
20
 
19
21
  ![ima2-gen classic generation screen with prompt composer, generated image, compact model label, and result metadata.](assets/screenshots/classic-generate-light.png)
20
22
 
@@ -53,7 +55,7 @@ persists, reboot and run the update before starting ima2 again.
53
55
  - **Node mode**: branch a good image into multiple directions without losing the original.
54
56
  - **Multimode batches**: launch several Classic outputs from one prompt, watch slot-by-slot progress, and continue from the best result.
55
57
  - **Canvas Mode**: zoom, pan, annotate, erase, clean backgrounds, keep transparent previews, and export either alpha or matte-backed versions.
56
- - **Local gallery**: keep generated assets on your machine with session-aware history. By default the gallery shows the current session and an All Images toggle reveals the full history; the default scope is sticky across sessions.
58
+ - **Local gallery**: keep generated assets on your machine with session-aware history. By default the gallery shows the current session and an All Images toggle reveals the full history; the default scope is sticky across sessions. Each image records its generation time and reasoning effort in the result metadata, so they persist across reloads.
57
59
  - **Reference images**: drag, drop, paste, and attach up to 5 references; large images are compressed before upload.
58
60
  - **Prompt library imports**: import local prompt packs, GitHub folders, and curated GPT-image prompt hints into the built-in prompt library.
59
61
  - **Mobile shell**: use the app bar, compose sheet, and compact settings toggle on smaller screens.
@@ -61,13 +63,17 @@ persists, reboot and run the update before starting ima2 again.
61
63
 
62
64
  ## Provider Paths
63
65
 
64
- Image generation can run through either the local Codex/ChatGPT OAuth path or a configured OpenAI API key.
66
+ Image generation can run through the local Codex/ChatGPT OAuth path, a configured OpenAI API key, or the bundled Grok provider.
65
67
 
66
68
  - `provider: "oauth"` uses the local Codex OAuth proxy.
67
69
  - `provider: "api"` calls the OpenAI Responses API with the hosted `image_generation` tool.
70
+ - `provider: "grok"` starts bundled `progrok` on `127.0.0.1:18645`, runs mandatory xAI Web Search plus a `grok-4.3` planner pass, then calls xAI Images API through the local proxy.
68
71
  - API-key generation supports classic generate, edit, mask-guided edit, multimode, and node generation.
72
+ - Grok generation supports Classic, Node, and Agent flows. If a Classic reference, Node parent image, or Agent current image is present, ima2 switches the final Grok call to xAI image edit so image-to-image context is preserved.
73
+
74
+ If no provider is specified, the app keeps the current OAuth/default behavior. API-key generation defaults to `gpt-5.4-mini`, `low` reasoning, and `1024x1024` unless the request passes validated model, reasoning, size, or web-search options. Grok defaults to `grok-imagine-image`; `quality: "high"` promotes the final image call to `grok-imagine-image-quality`.
69
75
 
70
- If no provider is specified, the app keeps the current OAuth/default behavior. API-key generation defaults to `gpt-5.4-mini`, `low` reasoning, and `1024x1024` unless the request passes validated model, reasoning, size, or web-search options.
76
+ Grok video generation (T2V/I2V) is not shipped in `1.1.15`. The video files in `docs/grok-video-i2v-plan.md` and `docs/grok-video-i2v-research.md` are implementation planning and research notes only; the published runtime remains image-only.
71
77
 
72
78
  ![Settings workspace showing OAuth active and API key provider available.](assets/screenshots/settings-oauth-generation.png)
73
79
 
@@ -197,14 +203,22 @@ environment variables > ~/.ima2/config.json > built-in defaults
197
203
  | `IMA2_ADVERTISE_FILE` | `~/.ima2/server.json` | Runtime discovery file |
198
204
  | `IMA2_GENERATED_DIR` | `~/.ima2/generated` | Generated image directory |
199
205
  | `IMA2_IMAGE_MODEL_DEFAULT` | `gpt-5.4-mini` | Server fallback image model |
206
+ | `IMA2_REASONING_EFFORT` | `medium` | Default reasoning effort for the default (OAuth) path; one of `none`, `low`, `medium`, `high`, `xhigh` |
200
207
  | `IMA2_NO_OAUTH_PROXY` | — | Set `1` to disable the auto-started OAuth proxy |
201
- | `IMA2_LOG_LEVEL` | `warn` | Normal serve defaults to `warn`; dev mode defaults to `debug`; supports `debug`, `info`, `warn`, `error`, or `silent` |
202
- | `IMA2_INFLIGHT_TERMINAL_TTL_MS` | `30000` | Recent terminal job retention for debug views |
208
+ | `IMA2_LOG_LEVEL` | `info` | Normal serve defaults to `info`; dev mode defaults to `debug`; supports `debug`, `info`, `warn`, `error`, or `silent` |
209
+ | `IMA2_INFLIGHT_TERMINAL_TTL_MS` | `300000` | Recent terminal job retention for debug views |
203
210
  | `OPENAI_API_KEY` | — | API key for the `provider: "api"` Responses API image path and auxiliary API-key features |
204
211
  | `IMA2_API_IMAGE_MODEL_DEFAULT` | `gpt-5.4-mini` | Default image model for `provider: "api"` |
205
212
  | `IMA2_API_REASONING_EFFORT` | `low` | Default reasoning effort for `provider: "api"` |
206
213
  | `IMA2_API_IMAGE_SIZE` | `1024x1024` | Default size for `provider: "api"` |
207
214
  | `IMA2_API_ALLOW_WEB_SEARCH` | `true` | Toggle web search for `provider: "api"` |
215
+ | `IMA2_GROK_PROXY_HOST` | `127.0.0.1` | Host for the bundled progrok proxy |
216
+ | `IMA2_GROK_PROXY_PORT` | `18645` | Port for the bundled progrok proxy |
217
+ | `IMA2_NO_GROK_PROXY` | — | Set `1` to disable automatic progrok startup |
218
+ | `IMA2_GROK_PLANNER_MODEL` | `grok-4.3` | Grok search/planner model before the final Images API call |
219
+ | `IMA2_GROK_PLANNER_TIMEOUT_MS` | `60000` | Timeout for Grok search and planner calls |
220
+ | `IMA2_GROK_IMAGE_MODEL_DEFAULT` | `grok-imagine-image` | Default final Grok image model |
221
+ | `IMA2_GROK_GENERATION_TIMEOUT_MS` | `120000` | Timeout for the final Grok Images API call |
208
222
  | `IMA2_OAUTH_MASKED_EDIT_ENABLED` | `false` | Opt-in feature flag for masked-edit requests on the OAuth path (#31, groundwork only) |
209
223
 
210
224
  ### Logging modes
@@ -219,6 +233,7 @@ The endpoint list moved to [docs/API.md](docs/API.md) so this README can stay fo
219
233
 
220
234
  Useful references:
221
235
 
236
+ - [Developer documentation site](https://lidge-jun.github.io/ima2-gen/docs) — Overview, Quickstart, Architecture, Modes, Providers, CLI, Config, and Server API
222
237
  - [CLI Reference](docs/CLI.md)
223
238
  - [API Reference](docs/API.md)
224
239
  - [Prompt Studio manual](docs/PROMPT_STUDIO.md)
@@ -62,9 +62,14 @@ function printText(capabilities) {
62
62
  out(` oauth reasoning: ${capabilities.defaults?.oauth?.reasoningEffort}`);
63
63
  out(` api model: ${capabilities.defaults?.api?.model}`);
64
64
  out(` api reasoning: ${capabilities.defaults?.api?.reasoningEffort}`);
65
+ out(` grok model: ${capabilities.defaults?.grok?.model}`);
66
+ out(` grok planner: ${capabilities.defaults?.grok?.plannerModel}`);
65
67
  out("");
66
68
  out("valid:");
67
69
  out(` models: ${capabilities.valid?.imageModels?.supported?.join(", ")}`);
70
+ if (capabilities.valid?.imageModels?.grokSupported?.length) {
71
+ out(` grok models: ${capabilities.valid.imageModels.grokSupported.join(", ")}`);
72
+ }
68
73
  out(` reasoning: ${capabilities.valid?.reasoningEfforts?.join(", ")}`);
69
74
  out(` quality: ${capabilities.valid?.quality?.join(", ")}`);
70
75
  out(` modes: ${capabilities.valid?.modes?.join(", ")}`);
@@ -66,9 +66,14 @@ function printText(capabilities: any): void {
66
66
  out(` oauth reasoning: ${capabilities.defaults?.oauth?.reasoningEffort}`);
67
67
  out(` api model: ${capabilities.defaults?.api?.model}`);
68
68
  out(` api reasoning: ${capabilities.defaults?.api?.reasoningEffort}`);
69
+ out(` grok model: ${capabilities.defaults?.grok?.model}`);
70
+ out(` grok planner: ${capabilities.defaults?.grok?.plannerModel}`);
69
71
  out("");
70
72
  out("valid:");
71
73
  out(` models: ${capabilities.valid?.imageModels?.supported?.join(", ")}`);
74
+ if (capabilities.valid?.imageModels?.grokSupported?.length) {
75
+ out(` grok models: ${capabilities.valid.imageModels.grokSupported.join(", ")}`);
76
+ }
72
77
  out(` reasoning: ${capabilities.valid?.reasoningEfforts?.join(", ")}`);
73
78
  out(` quality: ${capabilities.valid?.quality?.join(", ")}`);
74
79
  out(` modes: ${capabilities.valid?.modes?.join(", ")}`);
@@ -30,7 +30,7 @@ function loadConfig() {
30
30
  return {};
31
31
  }
32
32
  function missingRuntimeDeps() {
33
- const deps = ["express", "better-sqlite3", "openai", "openai-oauth"];
33
+ const deps = ["express", "better-sqlite3", "openai", "openai-oauth", "progrok/package.json"];
34
34
  return deps.filter((dep) => {
35
35
  try {
36
36
  requireFromRoot.resolve(dep);
@@ -39,7 +39,7 @@ function missingRuntimeDeps() {
39
39
  catch {
40
40
  return true;
41
41
  }
42
- });
42
+ }).map((dep) => dep === "progrok/package.json" ? "progrok" : dep);
43
43
  }
44
44
  function valueAfter(args, name) {
45
45
  const index = args.indexOf(name);
@@ -30,7 +30,7 @@ function loadConfig() {
30
30
  }
31
31
 
32
32
  function missingRuntimeDeps() {
33
- const deps = ["express", "better-sqlite3", "openai", "openai-oauth"];
33
+ const deps = ["express", "better-sqlite3", "openai", "openai-oauth", "progrok/package.json"];
34
34
  return deps.filter((dep) => {
35
35
  try {
36
36
  requireFromRoot.resolve(dep);
@@ -38,7 +38,7 @@ function missingRuntimeDeps() {
38
38
  } catch {
39
39
  return true;
40
40
  }
41
- });
41
+ }).map((dep) => dep === "progrok/package.json" ? "progrok" : dep);
42
42
  }
43
43
 
44
44
  function valueAfter(args: string[], name: string) {
@@ -7,8 +7,8 @@ import { createCliRequestId, recoverGeneratedOutputs, formatRecoveryHint } from
7
7
  import { errInfo } from "../../lib/errInfo.js";
8
8
  const VALID_MODES = new Set(["auto", "direct"]);
9
9
  const VALID_MODERATION = new Set(["auto", "low"]);
10
- const VALID_PROVIDERS = new Set(["auto", "oauth", "api"]);
11
- const KNOWN_IMAGE_MODELS = new Set(["gpt-5.5", "gpt-5.4", "gpt-5.4-mini", "gpt-5.3-codex-spark"]);
10
+ const VALID_PROVIDERS = new Set(["auto", "oauth", "api", "grok"]);
11
+ const KNOWN_IMAGE_MODELS = new Set(["gpt-5.5", "gpt-5.4", "gpt-5.4-mini", "gpt-5.3-codex-spark", "grok-imagine-image", "grok-imagine-image-quality"]);
12
12
  const SPEC = {
13
13
  flags: {
14
14
  prompt: { short: "p", type: "string" },
@@ -40,8 +40,8 @@ const HELP = `
40
40
  -s, --size <WxH>
41
41
  -o, --out <file>
42
42
  --json
43
- --model <gpt-5.5|gpt-5.4|gpt-5.4-mini>
44
- --provider <auto|oauth|api> Provider for this request; api requires a configured API key
43
+ --model <gpt-5.5|gpt-5.4|gpt-5.4-mini|grok-imagine-image|grok-imagine-image-quality>
44
+ --provider <auto|oauth|api|grok> Provider for this request; grok uses progrok proxy
45
45
  --mode <auto|direct> Prompt handling mode. Default: auto
46
46
  --moderation <auto|low> Default: low
47
47
  --session <id> Apply session style sheet if enabled
@@ -64,10 +64,10 @@ export default async function editCmd(argv) {
64
64
  if (!VALID_MODERATION.has(String(args.moderation)))
65
65
  die(2, "--moderation must be one of: auto, low");
66
66
  if (args.provider && !VALID_PROVIDERS.has(String(args.provider))) {
67
- die(2, "--provider must be one of: auto, oauth, api");
67
+ die(2, "--provider must be one of: auto, oauth, api, grok");
68
68
  }
69
69
  if (args.model && !KNOWN_IMAGE_MODELS.has(String(args.model))) {
70
- die(2, "--model must be one of: gpt-5.5, gpt-5.4, gpt-5.4-mini, gpt-5.3-codex-spark");
70
+ die(2, "--model must be one of: gpt-5.5, gpt-5.4, gpt-5.4-mini, gpt-5.3-codex-spark, grok-imagine-image, grok-imagine-image-quality");
71
71
  }
72
72
  const VALID_REASONING = new Set(["none", "low", "medium", "high", "xhigh"]);
73
73
  if (args["reasoning-effort"] && !VALID_REASONING.has(String(args["reasoning-effort"]))) {
@@ -8,8 +8,8 @@ import { createCliRequestId, recoverGeneratedOutputs, formatRecoveryHint } from
8
8
  import { errInfo } from "../../lib/errInfo.js";
9
9
  const VALID_MODES = new Set(["auto", "direct"]);
10
10
  const VALID_MODERATION = new Set(["auto", "low"]);
11
- const VALID_PROVIDERS = new Set(["auto", "oauth", "api"]);
12
- const KNOWN_IMAGE_MODELS = new Set(["gpt-5.5", "gpt-5.4", "gpt-5.4-mini", "gpt-5.3-codex-spark"]);
11
+ const VALID_PROVIDERS = new Set(["auto", "oauth", "api", "grok"]);
12
+ const KNOWN_IMAGE_MODELS = new Set(["gpt-5.5", "gpt-5.4", "gpt-5.4-mini", "gpt-5.3-codex-spark", "grok-imagine-image", "grok-imagine-image-quality"]);
13
13
 
14
14
  const SPEC = {
15
15
  flags: {
@@ -43,8 +43,8 @@ const HELP = `
43
43
  -s, --size <WxH>
44
44
  -o, --out <file>
45
45
  --json
46
- --model <gpt-5.5|gpt-5.4|gpt-5.4-mini>
47
- --provider <auto|oauth|api> Provider for this request; api requires a configured API key
46
+ --model <gpt-5.5|gpt-5.4|gpt-5.4-mini|grok-imagine-image|grok-imagine-image-quality>
47
+ --provider <auto|oauth|api|grok> Provider for this request; grok uses progrok proxy
48
48
  --mode <auto|direct> Prompt handling mode. Default: auto
49
49
  --moderation <auto|low> Default: low
50
50
  --session <id> Apply session style sheet if enabled
@@ -61,10 +61,10 @@ export default async function editCmd(argv: string[]) {
61
61
  if (!VALID_MODES.has(String(args.mode))) die(2, "--mode must be one of: auto, direct");
62
62
  if (!VALID_MODERATION.has(String(args.moderation))) die(2, "--moderation must be one of: auto, low");
63
63
  if (args.provider && !VALID_PROVIDERS.has(String(args.provider))) {
64
- die(2, "--provider must be one of: auto, oauth, api");
64
+ die(2, "--provider must be one of: auto, oauth, api, grok");
65
65
  }
66
66
  if (args.model && !KNOWN_IMAGE_MODELS.has(String(args.model))) {
67
- die(2, "--model must be one of: gpt-5.5, gpt-5.4, gpt-5.4-mini, gpt-5.3-codex-spark");
67
+ die(2, "--model must be one of: gpt-5.5, gpt-5.4, gpt-5.4-mini, gpt-5.3-codex-spark, grok-imagine-image, grok-imagine-image-quality");
68
68
  }
69
69
  const VALID_REASONING = new Set(["none", "low", "medium", "high", "xhigh"]);
70
70
  if (args["reasoning-effort"] && !VALID_REASONING.has(String(args["reasoning-effort"]))) {
@@ -7,8 +7,8 @@ import { createCliRequestId, recoverGeneratedOutputs, formatRecoveryHint } from
7
7
  import { errInfo } from "../../lib/errInfo.js";
8
8
  const VALID_MODES = new Set(["auto", "direct"]);
9
9
  const VALID_MODERATION = new Set(["auto", "low"]);
10
- const VALID_PROVIDERS = new Set(["auto", "oauth", "api"]);
11
- const KNOWN_IMAGE_MODELS = new Set(["gpt-5.5", "gpt-5.4", "gpt-5.4-mini", "gpt-5.3-codex-spark"]);
10
+ const VALID_PROVIDERS = new Set(["auto", "oauth", "api", "grok"]);
11
+ const KNOWN_IMAGE_MODELS = new Set(["gpt-5.5", "gpt-5.4", "gpt-5.4-mini", "gpt-5.3-codex-spark", "grok-imagine-image", "grok-imagine-image-quality"]);
12
12
  const SPEC = {
13
13
  flags: {
14
14
  quality: { short: "q", type: "string", default: "low" },
@@ -51,8 +51,8 @@ const HELP = `
51
51
  --stdin Read prompt from stdin
52
52
  --timeout <sec> Default: 180
53
53
  --server <url> Override server URL
54
- --model <gpt-5.5|gpt-5.4|gpt-5.4-mini>
55
- --provider <auto|oauth|api> Provider for this request; api requires a configured API key
54
+ --model <gpt-5.5|gpt-5.4|gpt-5.4-mini|grok-imagine-image|grok-imagine-image-quality>
55
+ --provider <auto|oauth|api|grok> Provider for this request; grok uses progrok proxy
56
56
  --mode <auto|direct> Prompt handling mode. Default: auto
57
57
  --moderation <auto|low> Default: low
58
58
  --session <id> Apply session style sheet if enabled
@@ -88,10 +88,10 @@ export default async function genCmd(argv) {
88
88
  if (!VALID_MODERATION.has(String(args.moderation)))
89
89
  die(2, "--moderation must be one of: auto, low");
90
90
  if (args.provider && !VALID_PROVIDERS.has(String(args.provider))) {
91
- die(2, "--provider must be one of: auto, oauth, api");
91
+ die(2, "--provider must be one of: auto, oauth, api, grok");
92
92
  }
93
93
  if (args.model && !KNOWN_IMAGE_MODELS.has(String(args.model))) {
94
- die(2, "--model must be one of: gpt-5.5, gpt-5.4, gpt-5.4-mini, gpt-5.3-codex-spark");
94
+ die(2, "--model must be one of: gpt-5.5, gpt-5.4, gpt-5.4-mini, gpt-5.3-codex-spark, grok-imagine-image, grok-imagine-image-quality");
95
95
  }
96
96
  const VALID_REASONING = new Set(["none", "low", "medium", "high", "xhigh"]);
97
97
  if (args["reasoning-effort"] && !VALID_REASONING.has(String(args["reasoning-effort"]))) {
@@ -8,8 +8,8 @@ import { createCliRequestId, recoverGeneratedOutputs, formatRecoveryHint } from
8
8
  import { errInfo } from "../../lib/errInfo.js";
9
9
  const VALID_MODES = new Set(["auto", "direct"]);
10
10
  const VALID_MODERATION = new Set(["auto", "low"]);
11
- const VALID_PROVIDERS = new Set(["auto", "oauth", "api"]);
12
- const KNOWN_IMAGE_MODELS = new Set(["gpt-5.5", "gpt-5.4", "gpt-5.4-mini", "gpt-5.3-codex-spark"]);
11
+ const VALID_PROVIDERS = new Set(["auto", "oauth", "api", "grok"]);
12
+ const KNOWN_IMAGE_MODELS = new Set(["gpt-5.5", "gpt-5.4", "gpt-5.4-mini", "gpt-5.3-codex-spark", "grok-imagine-image", "grok-imagine-image-quality"]);
13
13
 
14
14
  const SPEC = {
15
15
  flags: {
@@ -54,8 +54,8 @@ const HELP = `
54
54
  --stdin Read prompt from stdin
55
55
  --timeout <sec> Default: 180
56
56
  --server <url> Override server URL
57
- --model <gpt-5.5|gpt-5.4|gpt-5.4-mini>
58
- --provider <auto|oauth|api> Provider for this request; api requires a configured API key
57
+ --model <gpt-5.5|gpt-5.4|gpt-5.4-mini|grok-imagine-image|grok-imagine-image-quality>
58
+ --provider <auto|oauth|api|grok> Provider for this request; grok uses progrok proxy
59
59
  --mode <auto|direct> Prompt handling mode. Default: auto
60
60
  --moderation <auto|low> Default: low
61
61
  --session <id> Apply session style sheet if enabled
@@ -86,10 +86,10 @@ export default async function genCmd(argv: string[]) {
86
86
  if (!VALID_MODES.has(String(args.mode))) die(2, "--mode must be one of: auto, direct");
87
87
  if (!VALID_MODERATION.has(String(args.moderation))) die(2, "--moderation must be one of: auto, low");
88
88
  if (args.provider && !VALID_PROVIDERS.has(String(args.provider))) {
89
- die(2, "--provider must be one of: auto, oauth, api");
89
+ die(2, "--provider must be one of: auto, oauth, api, grok");
90
90
  }
91
91
  if (args.model && !KNOWN_IMAGE_MODELS.has(String(args.model))) {
92
- die(2, "--model must be one of: gpt-5.5, gpt-5.4, gpt-5.4-mini, gpt-5.3-codex-spark");
92
+ die(2, "--model must be one of: gpt-5.5, gpt-5.4, gpt-5.4-mini, gpt-5.3-codex-spark, grok-imagine-image, grok-imagine-image-quality");
93
93
  }
94
94
  const VALID_REASONING = new Set(["none", "low", "medium", "high", "xhigh"]);
95
95
  if (args["reasoning-effort"] && !VALID_REASONING.has(String(args["reasoning-effort"]))) {
@@ -0,0 +1,81 @@
1
+ import { spawn } from "node:child_process";
2
+ import { dirname, join, delimiter } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { color, die, out } from "../lib/output.js";
5
+ import { isWin } from "../lib/platform.js";
6
+ const __dirname = dirname(fileURLToPath(import.meta.url));
7
+ const ROOT = join(__dirname, "..", "..");
8
+ const HELP = `
9
+ ima2 grok <subcommand> [options]
10
+
11
+ Manage the bundled progrok runtime used by the Grok image provider.
12
+ No separate progrok install is required.
13
+
14
+ Subcommands:
15
+ login [--device-code] Log in to xAI OAuth for the bundled proxy
16
+ logout Remove stored xAI credentials
17
+ status Show bundled progrok authentication status
18
+ models List available Grok models
19
+ proxy [options] Start the bundled proxy directly
20
+
21
+ Notes:
22
+ ima2 serve auto-starts the bundled proxy on 127.0.0.1:18645 by default.
23
+ Use IMA2_NO_GROK_PROXY=1 to disable automatic proxy startup.
24
+ `;
25
+ function localBinPath() {
26
+ return join(ROOT, "node_modules", ".bin");
27
+ }
28
+ function spawnProgrok(argv, env) {
29
+ return new Promise((resolve, reject) => {
30
+ const progrokBin = join(localBinPath(), isWin ? "progrok.cmd" : "progrok");
31
+ const child = isWin
32
+ ? spawn(progrokBin, argv, {
33
+ cwd: ROOT,
34
+ env,
35
+ stdio: "inherit",
36
+ shell: true,
37
+ windowsHide: true,
38
+ })
39
+ : spawn(progrokBin, argv, {
40
+ cwd: ROOT,
41
+ env,
42
+ stdio: "inherit",
43
+ windowsHide: true,
44
+ });
45
+ child.on("error", (err) => reject(err));
46
+ child.on("close", resolve);
47
+ });
48
+ }
49
+ export default async function grokCmd(argv) {
50
+ const sub = argv[0];
51
+ if (!sub || sub === "--help" || sub === "-h") {
52
+ out(HELP);
53
+ return;
54
+ }
55
+ const env = {
56
+ ...process.env,
57
+ PATH: `${localBinPath()}${delimiter}${process.env.PATH || ""}`,
58
+ };
59
+ try {
60
+ const code = await spawnProgrok(argv, env);
61
+ if (code && code !== 0) {
62
+ // Auto-fallback: if login (without --device-code) failed, retry with device-code
63
+ if (sub === "login" && !argv.includes("--device-code")) {
64
+ out(color.yellow("⚠ ") + "Browser login failed. Retrying with device-code flow...\n");
65
+ const fallbackCode = await spawnProgrok(["login", "--device-code"], env);
66
+ if (fallbackCode && fallbackCode !== 0) {
67
+ die(fallbackCode, "bundled progrok device-code login also failed");
68
+ }
69
+ }
70
+ else {
71
+ die(code, `bundled progrok exited with code ${code}`);
72
+ }
73
+ }
74
+ }
75
+ catch (err) {
76
+ die(1, `bundled progrok failed to start: ${err.message}`);
77
+ }
78
+ if (sub === "login") {
79
+ out(color.green("✓ ") + "Grok OAuth is ready for ima2 serve");
80
+ }
81
+ }
@@ -0,0 +1,86 @@
1
+ import { spawn } from "node:child_process";
2
+ import { dirname, join, delimiter } from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ import { color, die, out } from "../lib/output.js";
5
+ import { isWin } from "../lib/platform.js";
6
+
7
+ const __dirname = dirname(fileURLToPath(import.meta.url));
8
+ const ROOT = join(__dirname, "..", "..");
9
+ const HELP = `
10
+ ima2 grok <subcommand> [options]
11
+
12
+ Manage the bundled progrok runtime used by the Grok image provider.
13
+ No separate progrok install is required.
14
+
15
+ Subcommands:
16
+ login [--device-code] Log in to xAI OAuth for the bundled proxy
17
+ logout Remove stored xAI credentials
18
+ status Show bundled progrok authentication status
19
+ models List available Grok models
20
+ proxy [options] Start the bundled proxy directly
21
+
22
+ Notes:
23
+ ima2 serve auto-starts the bundled proxy on 127.0.0.1:18645 by default.
24
+ Use IMA2_NO_GROK_PROXY=1 to disable automatic proxy startup.
25
+ `;
26
+
27
+ function localBinPath() {
28
+ return join(ROOT, "node_modules", ".bin");
29
+ }
30
+
31
+ function spawnProgrok(argv: string[], env: NodeJS.ProcessEnv): Promise<number | null> {
32
+ return new Promise((resolve, reject) => {
33
+ const progrokBin = join(localBinPath(), isWin ? "progrok.cmd" : "progrok");
34
+ const child = isWin
35
+ ? spawn(progrokBin, argv, {
36
+ cwd: ROOT,
37
+ env,
38
+ stdio: "inherit",
39
+ shell: true,
40
+ windowsHide: true,
41
+ })
42
+ : spawn(progrokBin, argv, {
43
+ cwd: ROOT,
44
+ env,
45
+ stdio: "inherit",
46
+ windowsHide: true,
47
+ });
48
+ child.on("error", (err) => reject(err));
49
+ child.on("close", resolve);
50
+ });
51
+ }
52
+
53
+ export default async function grokCmd(argv: string[]) {
54
+ const sub = argv[0];
55
+ if (!sub || sub === "--help" || sub === "-h") {
56
+ out(HELP);
57
+ return;
58
+ }
59
+
60
+ const env = {
61
+ ...process.env,
62
+ PATH: `${localBinPath()}${delimiter}${process.env.PATH || ""}`,
63
+ };
64
+
65
+ try {
66
+ const code = await spawnProgrok(argv, env);
67
+ if (code && code !== 0) {
68
+ // Auto-fallback: if login (without --device-code) failed, retry with device-code
69
+ if (sub === "login" && !argv.includes("--device-code")) {
70
+ out(color.yellow("⚠ ") + "Browser login failed. Retrying with device-code flow...\n");
71
+ const fallbackCode = await spawnProgrok(["login", "--device-code"], env);
72
+ if (fallbackCode && fallbackCode !== 0) {
73
+ die(fallbackCode, "bundled progrok device-code login also failed");
74
+ }
75
+ } else {
76
+ die(code, `bundled progrok exited with code ${code}`);
77
+ }
78
+ }
79
+ } catch (err: any) {
80
+ die(1, `bundled progrok failed to start: ${err.message}`);
81
+ }
82
+
83
+ if (sub === "login") {
84
+ out(color.green("✓ ") + "Grok OAuth is ready for ima2 serve");
85
+ }
86
+ }
@@ -41,7 +41,7 @@ const HELP = `
41
41
  -d, --out-dir <dir> Output dir for multiple images
42
42
  --json
43
43
  --model <gpt-5.5|gpt-5.4|gpt-5.4-mini>
44
- --provider <auto|oauth|api> Provider for this request; api requires a configured API key
44
+ --provider <auto|oauth|api|grok> Provider for this request; grok uses progrok proxy
45
45
  --mode <auto|direct> Prompt handling mode. Default: auto
46
46
  --ref <file> Attach reference image (repeatable, max 5)
47
47
  --reasoning-effort <none|low|medium|high|xhigh>
@@ -60,11 +60,11 @@ export default async function multimodeCmd(argv) {
60
60
  const prompt = args.positional.join(" ");
61
61
  if (!prompt)
62
62
  die(2, "prompt required");
63
- const VALID_PROVIDERS = new Set(["auto", "oauth", "api"]);
63
+ const VALID_PROVIDERS = new Set(["auto", "oauth", "api", "grok"]);
64
64
  const VALID_MODES = new Set(["auto", "direct"]);
65
65
  const VALID_REASONING = new Set(["none", "low", "medium", "high", "xhigh"]);
66
66
  if (args.provider && !VALID_PROVIDERS.has(String(args.provider))) {
67
- die(2, "--provider must be one of: auto, oauth, api");
67
+ die(2, "--provider must be one of: auto, oauth, api, grok");
68
68
  }
69
69
  if (!VALID_MODES.has(String(args.mode)))
70
70
  die(2, "--mode must be one of: auto, direct");
@@ -43,7 +43,7 @@ const HELP = `
43
43
  -d, --out-dir <dir> Output dir for multiple images
44
44
  --json
45
45
  --model <gpt-5.5|gpt-5.4|gpt-5.4-mini>
46
- --provider <auto|oauth|api> Provider for this request; api requires a configured API key
46
+ --provider <auto|oauth|api|grok> Provider for this request; grok uses progrok proxy
47
47
  --mode <auto|direct> Prompt handling mode. Default: auto
48
48
  --ref <file> Attach reference image (repeatable, max 5)
49
49
  --reasoning-effort <none|low|medium|high|xhigh>
@@ -60,11 +60,11 @@ export default async function multimodeCmd(argv: string[]) {
60
60
  const prompt = args.positional.join(" ");
61
61
  if (!prompt) die(2, "prompt required");
62
62
 
63
- const VALID_PROVIDERS = new Set(["auto", "oauth", "api"]);
63
+ const VALID_PROVIDERS = new Set(["auto", "oauth", "api", "grok"]);
64
64
  const VALID_MODES = new Set(["auto", "direct"]);
65
65
  const VALID_REASONING = new Set(["none", "low", "medium", "high", "xhigh"]);
66
66
  if (args.provider && !VALID_PROVIDERS.has(String(args.provider))) {
67
- die(2, "--provider must be one of: auto, oauth, api");
67
+ die(2, "--provider must be one of: auto, oauth, api, grok");
68
68
  }
69
69
  if (!VALID_MODES.has(String(args.mode))) die(2, "--mode must be one of: auto, direct");
70
70
  if (args["reasoning-effort"] && !VALID_REASONING.has(String(args["reasoning-effort"]))) {
@@ -8,11 +8,11 @@ const HELP = `
8
8
  ima2 node <subcommand> [options]
9
9
 
10
10
  Subcommands:
11
- generate <prompt...> [--parent <nodeId>] [--ref <file>...] [--provider <auto|oauth|api>] [--no-stream] [...gen-style flags]
11
+ generate <prompt...> [--parent <nodeId>] [--ref <file>...] [--provider <auto|oauth|api|grok>] [--no-stream] [...gen-style flags]
12
12
  show <nodeId> [--json]
13
13
 
14
14
  Generate options:
15
- --provider <auto|oauth|api> Provider for this request; api requires a configured API key
15
+ --provider <auto|oauth|api|grok> Provider for this request; grok uses progrok proxy
16
16
  `;
17
17
  const GEN_FLAGS = {
18
18
  quality: { short: "q", type: "string", default: "low" },
@@ -58,10 +58,10 @@ async function generateSub(argv) {
58
58
  if (!prompt)
59
59
  die(2, "prompt required");
60
60
  const refs = (Array.isArray(args.ref) ? args.ref : []);
61
- const VALID_PROVIDERS = new Set(["auto", "oauth", "api"]);
61
+ const VALID_PROVIDERS = new Set(["auto", "oauth", "api", "grok"]);
62
62
  const VALID_REASONING = new Set(["none", "low", "medium", "high", "xhigh"]);
63
63
  if (args.provider && !VALID_PROVIDERS.has(String(args.provider))) {
64
- die(2, "--provider must be one of: auto, oauth, api");
64
+ die(2, "--provider must be one of: auto, oauth, api, grok");
65
65
  }
66
66
  if (args["reasoning-effort"] && !VALID_REASONING.has(String(args["reasoning-effort"]))) {
67
67
  die(2, "--reasoning-effort must be one of: none, low, medium, high, xhigh");
@@ -9,11 +9,11 @@ const HELP = `
9
9
  ima2 node <subcommand> [options]
10
10
 
11
11
  Subcommands:
12
- generate <prompt...> [--parent <nodeId>] [--ref <file>...] [--provider <auto|oauth|api>] [--no-stream] [...gen-style flags]
12
+ generate <prompt...> [--parent <nodeId>] [--ref <file>...] [--provider <auto|oauth|api|grok>] [--no-stream] [...gen-style flags]
13
13
  show <nodeId> [--json]
14
14
 
15
15
  Generate options:
16
- --provider <auto|oauth|api> Provider for this request; api requires a configured API key
16
+ --provider <auto|oauth|api|grok> Provider for this request; grok uses progrok proxy
17
17
  `;
18
18
 
19
19
  const GEN_FLAGS = {
@@ -54,10 +54,10 @@ async function generateSub(argv: string[]) {
54
54
  const prompt = args.positional.join(" ");
55
55
  if (!prompt) die(2, "prompt required");
56
56
  const refs = (Array.isArray(args.ref) ? args.ref : []) as string[];
57
- const VALID_PROVIDERS = new Set(["auto", "oauth", "api"]);
57
+ const VALID_PROVIDERS = new Set(["auto", "oauth", "api", "grok"]);
58
58
  const VALID_REASONING = new Set(["none", "low", "medium", "high", "xhigh"]);
59
59
  if (args.provider && !VALID_PROVIDERS.has(String(args.provider))) {
60
- die(2, "--provider must be one of: auto, oauth, api");
60
+ die(2, "--provider must be one of: auto, oauth, api, grok");
61
61
  }
62
62
  if (args["reasoning-effort"] && !VALID_REASONING.has(String(args["reasoning-effort"]))) {
63
63
  die(2, "--reasoning-effort must be one of: none, low, medium, high, xhigh");
package/bin/ima2.js CHANGED
@@ -231,6 +231,7 @@ function showHelp() {
231
231
  billing API usage / quota
232
232
  providers Configured providers
233
233
  oauth <sub> OAuth proxy status (ima2 oauth --help)
234
+ grok <sub> Bundled progrok login/status (ima2 grok --help)
234
235
  config <sub> Config get/set/ls/path/rm (ima2 config --help)
235
236
  defaults <sub> Inspect/change model defaults (ima2 defaults --help)
236
237
  capabilities Agent capability metadata (ima2 capabilities --help)
@@ -270,7 +271,7 @@ if (args.includes("-v") || args.includes("--version")) {
270
271
  process.exit(0);
271
272
  }
272
273
  if ((!command || args.includes("-h") || args.includes("--help"))
273
- && !["doctor", "gen", "edit", "ls", "show", "ps", "cancel", "session", "history", "prompt", "multimode", "node", "annotate", "canvas-versions", "metadata", "comfy", "cardnews", "inflight", "storage", "billing", "providers", "oauth", "config", "defaults", "capabilities", "skill", "ping"].includes(command)) {
274
+ && !["doctor", "gen", "edit", "ls", "show", "ps", "cancel", "session", "history", "prompt", "multimode", "node", "annotate", "canvas-versions", "metadata", "comfy", "cardnews", "inflight", "storage", "billing", "providers", "oauth", "grok", "config", "defaults", "capabilities", "skill", "ping"].includes(command)) {
274
275
  showHelp();
275
276
  process.exit(command ? 0 : 1);
276
277
  }
@@ -332,6 +333,7 @@ switch (command) {
332
333
  case "defaults":
333
334
  case "capabilities":
334
335
  case "skill":
336
+ case "grok":
335
337
  case "ping": {
336
338
  const { setCliVersion } = await import("./lib/client.js");
337
339
  setCliVersion(pkg.version);
package/bin/ima2.ts CHANGED
@@ -252,6 +252,7 @@ function showHelp() {
252
252
  billing API usage / quota
253
253
  providers Configured providers
254
254
  oauth <sub> OAuth proxy status (ima2 oauth --help)
255
+ grok <sub> Bundled progrok login/status (ima2 grok --help)
255
256
  config <sub> Config get/set/ls/path/rm (ima2 config --help)
256
257
  defaults <sub> Inspect/change model defaults (ima2 defaults --help)
257
258
  capabilities Agent capability metadata (ima2 capabilities --help)
@@ -294,7 +295,7 @@ if (args.includes("-v") || args.includes("--version")) {
294
295
  }
295
296
 
296
297
  if ((!command || args.includes("-h") || args.includes("--help"))
297
- && !["doctor", "gen", "edit", "ls", "show", "ps", "cancel", "session", "history", "prompt", "multimode", "node", "annotate", "canvas-versions", "metadata", "comfy", "cardnews", "inflight", "storage", "billing", "providers", "oauth", "config", "defaults", "capabilities", "skill", "ping"].includes(command)) {
298
+ && !["doctor", "gen", "edit", "ls", "show", "ps", "cancel", "session", "history", "prompt", "multimode", "node", "annotate", "canvas-versions", "metadata", "comfy", "cardnews", "inflight", "storage", "billing", "providers", "oauth", "grok", "config", "defaults", "capabilities", "skill", "ping"].includes(command)) {
298
299
  showHelp();
299
300
  process.exit(command ? 0 : 1);
300
301
  }
@@ -355,6 +356,7 @@ switch (command) {
355
356
  case "defaults":
356
357
  case "capabilities":
357
358
  case "skill":
359
+ case "grok":
358
360
  case "ping": {
359
361
  const { setCliVersion } = await import("./lib/client.js");
360
362
  setCliVersion(pkg.version);