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.
Files changed (807) hide show
  1. package/README.md +31 -7
  2. package/bin/commands/capabilities.js +5 -0
  3. package/bin/commands/capabilities.ts +5 -0
  4. package/bin/commands/doctor.js +195 -0
  5. package/bin/commands/doctor.ts +202 -0
  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 +61 -0
  11. package/bin/commands/grok.ts +67 -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 +5 -105
  17. package/bin/ima2.ts +5 -109
  18. package/config.js +17 -0
  19. package/config.ts +21 -0
  20. package/docs/API.md +77 -8
  21. package/docs/CLI.md +65 -3
  22. package/docs/FAQ.ko.md +82 -2
  23. package/docs/FAQ.md +85 -2
  24. package/docs/PROMPT_STUDIO.ko.md +111 -0
  25. package/docs/PROMPT_STUDIO.md +115 -0
  26. package/docs/README.ko.md +27 -7
  27. package/docs/grok-video-i2v-plan.md +419 -0
  28. package/docs/grok-video-i2v-research.md +204 -0
  29. package/docs/migration/runtime-test-inventory.md +12 -1
  30. package/lib/agentRuntime.js +88 -19
  31. package/lib/agentRuntime.ts +97 -29
  32. package/lib/agentSettings.js +1 -1
  33. package/lib/agentSettings.ts +1 -1
  34. package/lib/agentTypes.ts +1 -1
  35. package/lib/capabilities.js +10 -2
  36. package/lib/capabilities.ts +10 -2
  37. package/lib/configKeys.js +6 -0
  38. package/lib/configKeys.ts +6 -1
  39. package/lib/errorClassify.js +1 -1
  40. package/lib/errorClassify.ts +1 -1
  41. package/lib/generationErrors.js +121 -23
  42. package/lib/generationErrors.ts +100 -13
  43. package/lib/grokImageAdapter.js +364 -0
  44. package/lib/grokImageAdapter.ts +483 -0
  45. package/lib/grokMultimodeAdapter.js +54 -0
  46. package/lib/grokMultimodeAdapter.ts +84 -0
  47. package/lib/grokProxyLauncher.js +105 -0
  48. package/lib/grokProxyLauncher.ts +129 -0
  49. package/lib/grokRuntime.js +18 -0
  50. package/lib/grokRuntime.ts +23 -0
  51. package/lib/grokSizeMapper.js +63 -0
  52. package/lib/grokSizeMapper.ts +71 -0
  53. package/lib/grokVideoAdapter.js +374 -0
  54. package/lib/grokVideoAdapter.ts +438 -0
  55. package/lib/historyList.js +5 -1
  56. package/lib/historyList.ts +5 -1
  57. package/lib/imageMetadata.js +2 -0
  58. package/lib/imageMetadata.ts +2 -0
  59. package/lib/imageModels.js +101 -0
  60. package/lib/imageModels.ts +111 -0
  61. package/lib/providerOptions.js +15 -1
  62. package/lib/providerOptions.ts +15 -1
  63. package/lib/responsesDoctor.js +386 -0
  64. package/lib/responsesDoctor.ts +456 -0
  65. package/lib/responsesErrors.js +57 -0
  66. package/lib/responsesErrors.ts +83 -0
  67. package/lib/responsesFallback.js +72 -0
  68. package/lib/responsesFallback.ts +114 -0
  69. package/lib/responsesImageAdapter.js +121 -174
  70. package/lib/responsesImageAdapter.ts +136 -211
  71. package/lib/responsesParse.js +324 -0
  72. package/lib/responsesParse.ts +452 -0
  73. package/lib/responsesTools.js +15 -0
  74. package/lib/responsesTools.ts +28 -0
  75. package/lib/runtimeContext.js +12 -0
  76. package/lib/runtimeContext.ts +15 -0
  77. package/node_modules/array-flatten/LICENSE +21 -0
  78. package/node_modules/array-flatten/README.md +43 -0
  79. package/node_modules/array-flatten/array-flatten.js +64 -0
  80. package/node_modules/array-flatten/package.json +39 -0
  81. package/node_modules/bundle-name/index.js +5 -0
  82. package/node_modules/bundle-name/license +9 -0
  83. package/node_modules/bundle-name/package.json +45 -0
  84. package/node_modules/bundle-name/readme.md +23 -0
  85. package/node_modules/bytes/History.md +97 -0
  86. package/node_modules/bytes/LICENSE +23 -0
  87. package/node_modules/bytes/Readme.md +152 -0
  88. package/node_modules/bytes/index.js +170 -0
  89. package/node_modules/bytes/package.json +42 -0
  90. package/node_modules/call-bind-apply-helpers/.eslintrc +17 -0
  91. package/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +12 -0
  92. package/node_modules/call-bind-apply-helpers/.nycrc +9 -0
  93. package/node_modules/call-bind-apply-helpers/CHANGELOG.md +30 -0
  94. package/node_modules/call-bind-apply-helpers/LICENSE +21 -0
  95. package/node_modules/call-bind-apply-helpers/README.md +62 -0
  96. package/node_modules/call-bind-apply-helpers/actualApply.d.ts +1 -0
  97. package/node_modules/call-bind-apply-helpers/actualApply.js +10 -0
  98. package/node_modules/call-bind-apply-helpers/applyBind.d.ts +19 -0
  99. package/node_modules/call-bind-apply-helpers/applyBind.js +10 -0
  100. package/node_modules/call-bind-apply-helpers/functionApply.d.ts +1 -0
  101. package/node_modules/call-bind-apply-helpers/functionApply.js +4 -0
  102. package/node_modules/call-bind-apply-helpers/functionCall.d.ts +1 -0
  103. package/node_modules/call-bind-apply-helpers/functionCall.js +4 -0
  104. package/node_modules/call-bind-apply-helpers/index.d.ts +64 -0
  105. package/node_modules/call-bind-apply-helpers/index.js +15 -0
  106. package/node_modules/call-bind-apply-helpers/package.json +85 -0
  107. package/node_modules/call-bind-apply-helpers/reflectApply.d.ts +3 -0
  108. package/node_modules/call-bind-apply-helpers/reflectApply.js +4 -0
  109. package/node_modules/call-bind-apply-helpers/test/index.js +63 -0
  110. package/node_modules/call-bind-apply-helpers/tsconfig.json +9 -0
  111. package/node_modules/call-bound/.eslintrc +13 -0
  112. package/node_modules/call-bound/.github/FUNDING.yml +12 -0
  113. package/node_modules/call-bound/.nycrc +9 -0
  114. package/node_modules/call-bound/CHANGELOG.md +42 -0
  115. package/node_modules/call-bound/LICENSE +21 -0
  116. package/node_modules/call-bound/README.md +53 -0
  117. package/node_modules/call-bound/index.d.ts +94 -0
  118. package/node_modules/call-bound/index.js +19 -0
  119. package/node_modules/call-bound/package.json +99 -0
  120. package/node_modules/call-bound/test/index.js +61 -0
  121. package/node_modules/call-bound/tsconfig.json +10 -0
  122. package/node_modules/commander/LICENSE +22 -0
  123. package/node_modules/commander/Readme.md +1149 -0
  124. package/node_modules/commander/esm.mjs +16 -0
  125. package/node_modules/commander/index.js +24 -0
  126. package/node_modules/commander/lib/argument.js +149 -0
  127. package/node_modules/commander/lib/command.js +2662 -0
  128. package/node_modules/commander/lib/error.js +39 -0
  129. package/node_modules/commander/lib/help.js +709 -0
  130. package/node_modules/commander/lib/option.js +367 -0
  131. package/node_modules/commander/lib/suggestSimilar.js +101 -0
  132. package/node_modules/commander/package-support.json +16 -0
  133. package/node_modules/commander/package.json +82 -0
  134. package/node_modules/commander/typings/esm.d.mts +3 -0
  135. package/node_modules/commander/typings/index.d.ts +1045 -0
  136. package/node_modules/content-type/HISTORY.md +29 -0
  137. package/node_modules/content-type/LICENSE +22 -0
  138. package/node_modules/content-type/README.md +94 -0
  139. package/node_modules/content-type/index.js +225 -0
  140. package/node_modules/content-type/package.json +42 -0
  141. package/node_modules/cookie/LICENSE +24 -0
  142. package/node_modules/cookie/README.md +317 -0
  143. package/node_modules/cookie/SECURITY.md +25 -0
  144. package/node_modules/cookie/index.js +335 -0
  145. package/node_modules/cookie/package.json +44 -0
  146. package/node_modules/default-browser/index.d.ts +29 -0
  147. package/node_modules/default-browser/index.js +34 -0
  148. package/node_modules/default-browser/license +9 -0
  149. package/node_modules/default-browser/package.json +54 -0
  150. package/node_modules/default-browser/readme.md +24 -0
  151. package/node_modules/default-browser/windows.js +57 -0
  152. package/node_modules/default-browser-id/index.js +25 -0
  153. package/node_modules/default-browser-id/license +9 -0
  154. package/node_modules/default-browser-id/package.json +41 -0
  155. package/node_modules/default-browser-id/readme.md +19 -0
  156. package/node_modules/define-lazy-prop/index.d.ts +31 -0
  157. package/node_modules/define-lazy-prop/index.js +18 -0
  158. package/node_modules/define-lazy-prop/license +9 -0
  159. package/node_modules/define-lazy-prop/package.json +51 -0
  160. package/node_modules/define-lazy-prop/readme.md +55 -0
  161. package/node_modules/depd/History.md +103 -0
  162. package/node_modules/depd/LICENSE +22 -0
  163. package/node_modules/depd/Readme.md +280 -0
  164. package/node_modules/depd/index.js +538 -0
  165. package/node_modules/depd/lib/browser/index.js +77 -0
  166. package/node_modules/depd/package.json +45 -0
  167. package/node_modules/destroy/LICENSE +23 -0
  168. package/node_modules/destroy/README.md +63 -0
  169. package/node_modules/destroy/index.js +209 -0
  170. package/node_modules/destroy/package.json +48 -0
  171. package/node_modules/dunder-proto/.eslintrc +5 -0
  172. package/node_modules/dunder-proto/.github/FUNDING.yml +12 -0
  173. package/node_modules/dunder-proto/.nycrc +13 -0
  174. package/node_modules/dunder-proto/CHANGELOG.md +24 -0
  175. package/node_modules/dunder-proto/LICENSE +21 -0
  176. package/node_modules/dunder-proto/README.md +54 -0
  177. package/node_modules/dunder-proto/get.d.ts +5 -0
  178. package/node_modules/dunder-proto/get.js +30 -0
  179. package/node_modules/dunder-proto/package.json +76 -0
  180. package/node_modules/dunder-proto/set.d.ts +5 -0
  181. package/node_modules/dunder-proto/set.js +35 -0
  182. package/node_modules/dunder-proto/test/get.js +34 -0
  183. package/node_modules/dunder-proto/test/index.js +4 -0
  184. package/node_modules/dunder-proto/test/set.js +50 -0
  185. package/node_modules/dunder-proto/tsconfig.json +9 -0
  186. package/node_modules/ee-first/LICENSE +22 -0
  187. package/node_modules/ee-first/README.md +80 -0
  188. package/node_modules/ee-first/index.js +95 -0
  189. package/node_modules/ee-first/package.json +29 -0
  190. package/node_modules/encodeurl/LICENSE +22 -0
  191. package/node_modules/encodeurl/README.md +109 -0
  192. package/node_modules/encodeurl/index.js +60 -0
  193. package/node_modules/encodeurl/package.json +40 -0
  194. package/node_modules/es-define-property/.eslintrc +13 -0
  195. package/node_modules/es-define-property/.github/FUNDING.yml +12 -0
  196. package/node_modules/es-define-property/.nycrc +9 -0
  197. package/node_modules/es-define-property/CHANGELOG.md +29 -0
  198. package/node_modules/es-define-property/LICENSE +21 -0
  199. package/node_modules/es-define-property/README.md +49 -0
  200. package/node_modules/es-define-property/index.d.ts +3 -0
  201. package/node_modules/es-define-property/index.js +14 -0
  202. package/node_modules/es-define-property/package.json +81 -0
  203. package/node_modules/es-define-property/test/index.js +56 -0
  204. package/node_modules/es-define-property/tsconfig.json +10 -0
  205. package/node_modules/es-errors/.eslintrc +5 -0
  206. package/node_modules/es-errors/.github/FUNDING.yml +12 -0
  207. package/node_modules/es-errors/CHANGELOG.md +40 -0
  208. package/node_modules/es-errors/LICENSE +21 -0
  209. package/node_modules/es-errors/README.md +55 -0
  210. package/node_modules/es-errors/eval.d.ts +3 -0
  211. package/node_modules/es-errors/eval.js +4 -0
  212. package/node_modules/es-errors/index.d.ts +3 -0
  213. package/node_modules/es-errors/index.js +4 -0
  214. package/node_modules/es-errors/package.json +80 -0
  215. package/node_modules/es-errors/range.d.ts +3 -0
  216. package/node_modules/es-errors/range.js +4 -0
  217. package/node_modules/es-errors/ref.d.ts +3 -0
  218. package/node_modules/es-errors/ref.js +4 -0
  219. package/node_modules/es-errors/syntax.d.ts +3 -0
  220. package/node_modules/es-errors/syntax.js +4 -0
  221. package/node_modules/es-errors/test/index.js +19 -0
  222. package/node_modules/es-errors/tsconfig.json +49 -0
  223. package/node_modules/es-errors/type.d.ts +3 -0
  224. package/node_modules/es-errors/type.js +4 -0
  225. package/node_modules/es-errors/uri.d.ts +3 -0
  226. package/node_modules/es-errors/uri.js +4 -0
  227. package/node_modules/es-object-atoms/.eslintrc +16 -0
  228. package/node_modules/es-object-atoms/.github/FUNDING.yml +12 -0
  229. package/node_modules/es-object-atoms/CHANGELOG.md +37 -0
  230. package/node_modules/es-object-atoms/LICENSE +21 -0
  231. package/node_modules/es-object-atoms/README.md +63 -0
  232. package/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +3 -0
  233. package/node_modules/es-object-atoms/RequireObjectCoercible.js +11 -0
  234. package/node_modules/es-object-atoms/ToObject.d.ts +7 -0
  235. package/node_modules/es-object-atoms/ToObject.js +10 -0
  236. package/node_modules/es-object-atoms/index.d.ts +3 -0
  237. package/node_modules/es-object-atoms/index.js +4 -0
  238. package/node_modules/es-object-atoms/isObject.d.ts +3 -0
  239. package/node_modules/es-object-atoms/isObject.js +6 -0
  240. package/node_modules/es-object-atoms/package.json +80 -0
  241. package/node_modules/es-object-atoms/test/index.js +38 -0
  242. package/node_modules/es-object-atoms/tsconfig.json +6 -0
  243. package/node_modules/escape-html/LICENSE +24 -0
  244. package/node_modules/escape-html/Readme.md +43 -0
  245. package/node_modules/escape-html/index.js +78 -0
  246. package/node_modules/escape-html/package.json +24 -0
  247. package/node_modules/etag/HISTORY.md +83 -0
  248. package/node_modules/etag/LICENSE +22 -0
  249. package/node_modules/etag/README.md +159 -0
  250. package/node_modules/etag/index.js +131 -0
  251. package/node_modules/etag/package.json +47 -0
  252. package/node_modules/forwarded/HISTORY.md +21 -0
  253. package/node_modules/forwarded/LICENSE +22 -0
  254. package/node_modules/forwarded/README.md +57 -0
  255. package/node_modules/forwarded/index.js +90 -0
  256. package/node_modules/forwarded/package.json +45 -0
  257. package/node_modules/function-bind/.eslintrc +21 -0
  258. package/node_modules/function-bind/.github/FUNDING.yml +12 -0
  259. package/node_modules/function-bind/.github/SECURITY.md +3 -0
  260. package/node_modules/function-bind/.nycrc +13 -0
  261. package/node_modules/function-bind/CHANGELOG.md +136 -0
  262. package/node_modules/function-bind/LICENSE +20 -0
  263. package/node_modules/function-bind/README.md +46 -0
  264. package/node_modules/function-bind/implementation.js +84 -0
  265. package/node_modules/function-bind/index.js +5 -0
  266. package/node_modules/function-bind/package.json +87 -0
  267. package/node_modules/function-bind/test/.eslintrc +9 -0
  268. package/node_modules/function-bind/test/index.js +252 -0
  269. package/node_modules/get-intrinsic/.eslintrc +42 -0
  270. package/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
  271. package/node_modules/get-intrinsic/.nycrc +9 -0
  272. package/node_modules/get-intrinsic/CHANGELOG.md +186 -0
  273. package/node_modules/get-intrinsic/LICENSE +21 -0
  274. package/node_modules/get-intrinsic/README.md +71 -0
  275. package/node_modules/get-intrinsic/index.js +378 -0
  276. package/node_modules/get-intrinsic/package.json +97 -0
  277. package/node_modules/get-intrinsic/test/GetIntrinsic.js +274 -0
  278. package/node_modules/get-proto/.eslintrc +10 -0
  279. package/node_modules/get-proto/.github/FUNDING.yml +12 -0
  280. package/node_modules/get-proto/.nycrc +9 -0
  281. package/node_modules/get-proto/CHANGELOG.md +21 -0
  282. package/node_modules/get-proto/LICENSE +21 -0
  283. package/node_modules/get-proto/Object.getPrototypeOf.d.ts +5 -0
  284. package/node_modules/get-proto/Object.getPrototypeOf.js +6 -0
  285. package/node_modules/get-proto/README.md +50 -0
  286. package/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +3 -0
  287. package/node_modules/get-proto/Reflect.getPrototypeOf.js +4 -0
  288. package/node_modules/get-proto/index.d.ts +5 -0
  289. package/node_modules/get-proto/index.js +27 -0
  290. package/node_modules/get-proto/package.json +81 -0
  291. package/node_modules/get-proto/test/index.js +68 -0
  292. package/node_modules/get-proto/tsconfig.json +9 -0
  293. package/node_modules/gopd/.eslintrc +16 -0
  294. package/node_modules/gopd/.github/FUNDING.yml +12 -0
  295. package/node_modules/gopd/CHANGELOG.md +45 -0
  296. package/node_modules/gopd/LICENSE +21 -0
  297. package/node_modules/gopd/README.md +40 -0
  298. package/node_modules/gopd/gOPD.d.ts +1 -0
  299. package/node_modules/gopd/gOPD.js +4 -0
  300. package/node_modules/gopd/index.d.ts +5 -0
  301. package/node_modules/gopd/index.js +15 -0
  302. package/node_modules/gopd/package.json +77 -0
  303. package/node_modules/gopd/test/index.js +36 -0
  304. package/node_modules/gopd/tsconfig.json +9 -0
  305. package/node_modules/has-symbols/.eslintrc +11 -0
  306. package/node_modules/has-symbols/.github/FUNDING.yml +12 -0
  307. package/node_modules/has-symbols/.nycrc +9 -0
  308. package/node_modules/has-symbols/CHANGELOG.md +91 -0
  309. package/node_modules/has-symbols/LICENSE +21 -0
  310. package/node_modules/has-symbols/README.md +46 -0
  311. package/node_modules/has-symbols/index.d.ts +3 -0
  312. package/node_modules/has-symbols/index.js +14 -0
  313. package/node_modules/has-symbols/package.json +111 -0
  314. package/node_modules/has-symbols/shams.d.ts +3 -0
  315. package/node_modules/has-symbols/shams.js +45 -0
  316. package/node_modules/has-symbols/test/index.js +22 -0
  317. package/node_modules/has-symbols/test/shams/core-js.js +29 -0
  318. package/node_modules/has-symbols/test/shams/get-own-property-symbols.js +29 -0
  319. package/node_modules/has-symbols/test/tests.js +58 -0
  320. package/node_modules/has-symbols/tsconfig.json +10 -0
  321. package/node_modules/hasown/.github/FUNDING.yml +12 -0
  322. package/node_modules/hasown/.nycrc +13 -0
  323. package/node_modules/hasown/CHANGELOG.md +51 -0
  324. package/node_modules/hasown/LICENSE +21 -0
  325. package/node_modules/hasown/README.md +40 -0
  326. package/node_modules/hasown/eslint.config.mjs +6 -0
  327. package/node_modules/hasown/index.d.ts +4 -0
  328. package/node_modules/hasown/index.js +8 -0
  329. package/node_modules/hasown/package.json +92 -0
  330. package/node_modules/hasown/tsconfig.json +6 -0
  331. package/node_modules/http-errors/HISTORY.md +186 -0
  332. package/node_modules/http-errors/LICENSE +23 -0
  333. package/node_modules/http-errors/README.md +169 -0
  334. package/node_modules/http-errors/index.js +290 -0
  335. package/node_modules/http-errors/package.json +54 -0
  336. package/node_modules/inherits/LICENSE +16 -0
  337. package/node_modules/inherits/README.md +42 -0
  338. package/node_modules/inherits/inherits.js +9 -0
  339. package/node_modules/inherits/inherits_browser.js +27 -0
  340. package/node_modules/inherits/package.json +29 -0
  341. package/node_modules/ipaddr.js/LICENSE +19 -0
  342. package/node_modules/ipaddr.js/README.md +233 -0
  343. package/node_modules/ipaddr.js/ipaddr.min.js +1 -0
  344. package/node_modules/ipaddr.js/lib/ipaddr.js +673 -0
  345. package/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +68 -0
  346. package/node_modules/ipaddr.js/package.json +35 -0
  347. package/node_modules/is-docker/cli.js +5 -0
  348. package/node_modules/is-docker/index.d.ts +13 -0
  349. package/node_modules/is-docker/index.js +29 -0
  350. package/node_modules/is-docker/license +9 -0
  351. package/node_modules/is-docker/package.json +44 -0
  352. package/node_modules/is-docker/readme.md +27 -0
  353. package/node_modules/is-inside-container/cli.js +5 -0
  354. package/node_modules/is-inside-container/index.d.ts +13 -0
  355. package/node_modules/is-inside-container/index.js +23 -0
  356. package/node_modules/is-inside-container/license +9 -0
  357. package/node_modules/is-inside-container/package.json +51 -0
  358. package/node_modules/is-inside-container/readme.md +36 -0
  359. package/node_modules/is-wsl/index.d.ts +15 -0
  360. package/node_modules/is-wsl/index.js +36 -0
  361. package/node_modules/is-wsl/license +9 -0
  362. package/node_modules/is-wsl/package.json +58 -0
  363. package/node_modules/is-wsl/readme.md +21 -0
  364. package/node_modules/math-intrinsics/.eslintrc +16 -0
  365. package/node_modules/math-intrinsics/.github/FUNDING.yml +12 -0
  366. package/node_modules/math-intrinsics/CHANGELOG.md +24 -0
  367. package/node_modules/math-intrinsics/LICENSE +21 -0
  368. package/node_modules/math-intrinsics/README.md +50 -0
  369. package/node_modules/math-intrinsics/abs.d.ts +1 -0
  370. package/node_modules/math-intrinsics/abs.js +4 -0
  371. package/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +3 -0
  372. package/node_modules/math-intrinsics/constants/maxArrayLength.js +4 -0
  373. package/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +3 -0
  374. package/node_modules/math-intrinsics/constants/maxSafeInteger.js +5 -0
  375. package/node_modules/math-intrinsics/constants/maxValue.d.ts +3 -0
  376. package/node_modules/math-intrinsics/constants/maxValue.js +5 -0
  377. package/node_modules/math-intrinsics/floor.d.ts +1 -0
  378. package/node_modules/math-intrinsics/floor.js +4 -0
  379. package/node_modules/math-intrinsics/isFinite.d.ts +3 -0
  380. package/node_modules/math-intrinsics/isFinite.js +12 -0
  381. package/node_modules/math-intrinsics/isInteger.d.ts +3 -0
  382. package/node_modules/math-intrinsics/isInteger.js +16 -0
  383. package/node_modules/math-intrinsics/isNaN.d.ts +1 -0
  384. package/node_modules/math-intrinsics/isNaN.js +6 -0
  385. package/node_modules/math-intrinsics/isNegativeZero.d.ts +3 -0
  386. package/node_modules/math-intrinsics/isNegativeZero.js +6 -0
  387. package/node_modules/math-intrinsics/max.d.ts +1 -0
  388. package/node_modules/math-intrinsics/max.js +4 -0
  389. package/node_modules/math-intrinsics/min.d.ts +1 -0
  390. package/node_modules/math-intrinsics/min.js +4 -0
  391. package/node_modules/math-intrinsics/mod.d.ts +3 -0
  392. package/node_modules/math-intrinsics/mod.js +9 -0
  393. package/node_modules/math-intrinsics/package.json +86 -0
  394. package/node_modules/math-intrinsics/pow.d.ts +1 -0
  395. package/node_modules/math-intrinsics/pow.js +4 -0
  396. package/node_modules/math-intrinsics/round.d.ts +1 -0
  397. package/node_modules/math-intrinsics/round.js +4 -0
  398. package/node_modules/math-intrinsics/sign.d.ts +3 -0
  399. package/node_modules/math-intrinsics/sign.js +11 -0
  400. package/node_modules/math-intrinsics/test/index.js +192 -0
  401. package/node_modules/math-intrinsics/tsconfig.json +3 -0
  402. package/node_modules/methods/HISTORY.md +29 -0
  403. package/node_modules/methods/LICENSE +24 -0
  404. package/node_modules/methods/README.md +51 -0
  405. package/node_modules/methods/index.js +69 -0
  406. package/node_modules/methods/package.json +36 -0
  407. package/node_modules/mime/.npmignore +0 -0
  408. package/node_modules/mime/CHANGELOG.md +164 -0
  409. package/node_modules/mime/LICENSE +21 -0
  410. package/node_modules/mime/README.md +90 -0
  411. package/node_modules/mime/cli.js +8 -0
  412. package/node_modules/mime/mime.js +108 -0
  413. package/node_modules/mime/package.json +44 -0
  414. package/node_modules/mime/src/build.js +53 -0
  415. package/node_modules/mime/src/test.js +60 -0
  416. package/node_modules/mime/types.json +1 -0
  417. package/node_modules/ms/index.js +162 -0
  418. package/node_modules/ms/license.md +21 -0
  419. package/node_modules/ms/package.json +38 -0
  420. package/node_modules/ms/readme.md +59 -0
  421. package/node_modules/object-inspect/.eslintrc +53 -0
  422. package/node_modules/object-inspect/.github/FUNDING.yml +12 -0
  423. package/node_modules/object-inspect/.nycrc +13 -0
  424. package/node_modules/object-inspect/CHANGELOG.md +424 -0
  425. package/node_modules/object-inspect/LICENSE +21 -0
  426. package/node_modules/object-inspect/example/all.js +23 -0
  427. package/node_modules/object-inspect/example/circular.js +6 -0
  428. package/node_modules/object-inspect/example/fn.js +5 -0
  429. package/node_modules/object-inspect/example/inspect.js +10 -0
  430. package/node_modules/object-inspect/index.js +544 -0
  431. package/node_modules/object-inspect/package-support.json +20 -0
  432. package/node_modules/object-inspect/package.json +105 -0
  433. package/node_modules/object-inspect/readme.markdown +84 -0
  434. package/node_modules/object-inspect/test/bigint.js +58 -0
  435. package/node_modules/object-inspect/test/browser/dom.js +15 -0
  436. package/node_modules/object-inspect/test/circular.js +16 -0
  437. package/node_modules/object-inspect/test/deep.js +12 -0
  438. package/node_modules/object-inspect/test/element.js +53 -0
  439. package/node_modules/object-inspect/test/err.js +48 -0
  440. package/node_modules/object-inspect/test/fakes.js +29 -0
  441. package/node_modules/object-inspect/test/fn.js +76 -0
  442. package/node_modules/object-inspect/test/global.js +17 -0
  443. package/node_modules/object-inspect/test/has.js +15 -0
  444. package/node_modules/object-inspect/test/holes.js +15 -0
  445. package/node_modules/object-inspect/test/indent-option.js +271 -0
  446. package/node_modules/object-inspect/test/inspect.js +139 -0
  447. package/node_modules/object-inspect/test/lowbyte.js +12 -0
  448. package/node_modules/object-inspect/test/number.js +58 -0
  449. package/node_modules/object-inspect/test/quoteStyle.js +26 -0
  450. package/node_modules/object-inspect/test/toStringTag.js +40 -0
  451. package/node_modules/object-inspect/test/undef.js +12 -0
  452. package/node_modules/object-inspect/test/values.js +261 -0
  453. package/node_modules/object-inspect/test-core-js.js +26 -0
  454. package/node_modules/object-inspect/util.inspect.js +1 -0
  455. package/node_modules/on-finished/HISTORY.md +98 -0
  456. package/node_modules/on-finished/LICENSE +23 -0
  457. package/node_modules/on-finished/README.md +162 -0
  458. package/node_modules/on-finished/index.js +234 -0
  459. package/node_modules/on-finished/package.json +39 -0
  460. package/node_modules/open/index.d.ts +158 -0
  461. package/node_modules/open/index.js +366 -0
  462. package/node_modules/open/license +9 -0
  463. package/node_modules/open/node_modules/wsl-utils/index.d.ts +21 -0
  464. package/node_modules/open/node_modules/wsl-utils/index.js +57 -0
  465. package/node_modules/open/node_modules/wsl-utils/license +9 -0
  466. package/node_modules/open/node_modules/wsl-utils/package.json +46 -0
  467. package/node_modules/open/node_modules/wsl-utils/readme.md +50 -0
  468. package/node_modules/open/package.json +68 -0
  469. package/node_modules/open/readme.md +183 -0
  470. package/node_modules/open/xdg-open +1267 -0
  471. package/node_modules/parseurl/HISTORY.md +58 -0
  472. package/node_modules/parseurl/LICENSE +24 -0
  473. package/node_modules/parseurl/README.md +133 -0
  474. package/node_modules/parseurl/index.js +158 -0
  475. package/node_modules/parseurl/package.json +40 -0
  476. package/node_modules/progrok/LICENSE +21 -0
  477. package/node_modules/progrok/README.md +53 -0
  478. package/node_modules/progrok/THIRD_PARTY_NOTICES.md +13 -0
  479. package/node_modules/progrok/dist/index.js +1142 -0
  480. package/node_modules/progrok/dist/index.js.map +1 -0
  481. package/node_modules/progrok/dist/public/app.js +529 -0
  482. package/node_modules/progrok/dist/public/index.html +47 -0
  483. package/node_modules/progrok/dist/public/style.css +392 -0
  484. package/node_modules/progrok/node_modules/accepts/HISTORY.md +243 -0
  485. package/node_modules/progrok/node_modules/accepts/LICENSE +23 -0
  486. package/node_modules/progrok/node_modules/accepts/README.md +140 -0
  487. package/node_modules/progrok/node_modules/accepts/index.js +238 -0
  488. package/node_modules/progrok/node_modules/accepts/package.json +47 -0
  489. package/node_modules/progrok/node_modules/body-parser/HISTORY.md +686 -0
  490. package/node_modules/progrok/node_modules/body-parser/LICENSE +23 -0
  491. package/node_modules/progrok/node_modules/body-parser/README.md +476 -0
  492. package/node_modules/progrok/node_modules/body-parser/index.js +156 -0
  493. package/node_modules/progrok/node_modules/body-parser/lib/read.js +205 -0
  494. package/node_modules/progrok/node_modules/body-parser/lib/types/json.js +243 -0
  495. package/node_modules/progrok/node_modules/body-parser/lib/types/raw.js +101 -0
  496. package/node_modules/progrok/node_modules/body-parser/lib/types/text.js +121 -0
  497. package/node_modules/progrok/node_modules/body-parser/lib/types/urlencoded.js +299 -0
  498. package/node_modules/progrok/node_modules/body-parser/package.json +55 -0
  499. package/node_modules/progrok/node_modules/content-disposition/HISTORY.md +60 -0
  500. package/node_modules/progrok/node_modules/content-disposition/LICENSE +22 -0
  501. package/node_modules/progrok/node_modules/content-disposition/README.md +142 -0
  502. package/node_modules/progrok/node_modules/content-disposition/index.js +458 -0
  503. package/node_modules/progrok/node_modules/content-disposition/package.json +44 -0
  504. package/node_modules/progrok/node_modules/cookie-signature/History.md +42 -0
  505. package/node_modules/progrok/node_modules/cookie-signature/Readme.md +42 -0
  506. package/node_modules/progrok/node_modules/cookie-signature/index.js +51 -0
  507. package/node_modules/progrok/node_modules/cookie-signature/package.json +18 -0
  508. package/node_modules/progrok/node_modules/debug/.coveralls.yml +1 -0
  509. package/node_modules/progrok/node_modules/debug/.eslintrc +11 -0
  510. package/node_modules/progrok/node_modules/debug/.npmignore +9 -0
  511. package/node_modules/progrok/node_modules/debug/.travis.yml +14 -0
  512. package/node_modules/progrok/node_modules/debug/CHANGELOG.md +362 -0
  513. package/node_modules/progrok/node_modules/debug/LICENSE +19 -0
  514. package/node_modules/progrok/node_modules/debug/Makefile +50 -0
  515. package/node_modules/progrok/node_modules/debug/README.md +312 -0
  516. package/node_modules/progrok/node_modules/debug/component.json +19 -0
  517. package/node_modules/progrok/node_modules/debug/karma.conf.js +70 -0
  518. package/node_modules/progrok/node_modules/debug/node.js +1 -0
  519. package/node_modules/progrok/node_modules/debug/node_modules/ms/index.js +152 -0
  520. package/node_modules/progrok/node_modules/debug/node_modules/ms/license.md +21 -0
  521. package/node_modules/progrok/node_modules/debug/node_modules/ms/package.json +37 -0
  522. package/node_modules/progrok/node_modules/debug/node_modules/ms/readme.md +51 -0
  523. package/node_modules/progrok/node_modules/debug/package.json +49 -0
  524. package/node_modules/progrok/node_modules/debug/src/browser.js +185 -0
  525. package/node_modules/progrok/node_modules/debug/src/debug.js +202 -0
  526. package/node_modules/progrok/node_modules/debug/src/index.js +10 -0
  527. package/node_modules/progrok/node_modules/debug/src/inspector-log.js +15 -0
  528. package/node_modules/progrok/node_modules/debug/src/node.js +248 -0
  529. package/node_modules/progrok/node_modules/express/History.md +3676 -0
  530. package/node_modules/progrok/node_modules/express/LICENSE +24 -0
  531. package/node_modules/progrok/node_modules/express/Readme.md +260 -0
  532. package/node_modules/progrok/node_modules/express/index.js +11 -0
  533. package/node_modules/progrok/node_modules/express/lib/application.js +661 -0
  534. package/node_modules/progrok/node_modules/express/lib/express.js +116 -0
  535. package/node_modules/progrok/node_modules/express/lib/middleware/init.js +43 -0
  536. package/node_modules/progrok/node_modules/express/lib/middleware/query.js +47 -0
  537. package/node_modules/progrok/node_modules/express/lib/request.js +525 -0
  538. package/node_modules/progrok/node_modules/express/lib/response.js +1179 -0
  539. package/node_modules/progrok/node_modules/express/lib/router/index.js +673 -0
  540. package/node_modules/progrok/node_modules/express/lib/router/layer.js +181 -0
  541. package/node_modules/progrok/node_modules/express/lib/router/route.js +230 -0
  542. package/node_modules/progrok/node_modules/express/lib/utils.js +304 -0
  543. package/node_modules/progrok/node_modules/express/lib/view.js +182 -0
  544. package/node_modules/progrok/node_modules/express/package.json +102 -0
  545. package/node_modules/progrok/node_modules/finalhandler/HISTORY.md +216 -0
  546. package/node_modules/progrok/node_modules/finalhandler/LICENSE +22 -0
  547. package/node_modules/progrok/node_modules/finalhandler/README.md +147 -0
  548. package/node_modules/progrok/node_modules/finalhandler/SECURITY.md +25 -0
  549. package/node_modules/progrok/node_modules/finalhandler/index.js +341 -0
  550. package/node_modules/progrok/node_modules/finalhandler/package.json +47 -0
  551. package/node_modules/progrok/node_modules/fresh/HISTORY.md +70 -0
  552. package/node_modules/progrok/node_modules/fresh/LICENSE +23 -0
  553. package/node_modules/progrok/node_modules/fresh/README.md +119 -0
  554. package/node_modules/progrok/node_modules/fresh/index.js +137 -0
  555. package/node_modules/progrok/node_modules/fresh/package.json +46 -0
  556. package/node_modules/progrok/node_modules/iconv-lite/Changelog.md +162 -0
  557. package/node_modules/progrok/node_modules/iconv-lite/LICENSE +21 -0
  558. package/node_modules/progrok/node_modules/iconv-lite/README.md +156 -0
  559. package/node_modules/progrok/node_modules/iconv-lite/encodings/dbcs-codec.js +555 -0
  560. package/node_modules/progrok/node_modules/iconv-lite/encodings/dbcs-data.js +176 -0
  561. package/node_modules/progrok/node_modules/iconv-lite/encodings/index.js +22 -0
  562. package/node_modules/progrok/node_modules/iconv-lite/encodings/internal.js +188 -0
  563. package/node_modules/progrok/node_modules/iconv-lite/encodings/sbcs-codec.js +72 -0
  564. package/node_modules/progrok/node_modules/iconv-lite/encodings/sbcs-data-generated.js +451 -0
  565. package/node_modules/progrok/node_modules/iconv-lite/encodings/sbcs-data.js +174 -0
  566. package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/big5-added.json +122 -0
  567. package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/cp936.json +264 -0
  568. package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/cp949.json +273 -0
  569. package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/cp950.json +177 -0
  570. package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/eucjp.json +182 -0
  571. package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json +1 -0
  572. package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/gbk-added.json +55 -0
  573. package/node_modules/progrok/node_modules/iconv-lite/encodings/tables/shiftjis.json +125 -0
  574. package/node_modules/progrok/node_modules/iconv-lite/encodings/utf16.js +177 -0
  575. package/node_modules/progrok/node_modules/iconv-lite/encodings/utf7.js +290 -0
  576. package/node_modules/progrok/node_modules/iconv-lite/lib/bom-handling.js +52 -0
  577. package/node_modules/progrok/node_modules/iconv-lite/lib/extend-node.js +217 -0
  578. package/node_modules/progrok/node_modules/iconv-lite/lib/index.d.ts +24 -0
  579. package/node_modules/progrok/node_modules/iconv-lite/lib/index.js +153 -0
  580. package/node_modules/progrok/node_modules/iconv-lite/lib/streams.js +121 -0
  581. package/node_modules/progrok/node_modules/iconv-lite/package.json +46 -0
  582. package/node_modules/progrok/node_modules/media-typer/HISTORY.md +22 -0
  583. package/node_modules/progrok/node_modules/media-typer/LICENSE +22 -0
  584. package/node_modules/progrok/node_modules/media-typer/README.md +81 -0
  585. package/node_modules/progrok/node_modules/media-typer/index.js +270 -0
  586. package/node_modules/progrok/node_modules/media-typer/package.json +26 -0
  587. package/node_modules/progrok/node_modules/merge-descriptors/HISTORY.md +21 -0
  588. package/node_modules/progrok/node_modules/merge-descriptors/LICENSE +23 -0
  589. package/node_modules/progrok/node_modules/merge-descriptors/README.md +49 -0
  590. package/node_modules/progrok/node_modules/merge-descriptors/index.js +60 -0
  591. package/node_modules/progrok/node_modules/merge-descriptors/package.json +39 -0
  592. package/node_modules/progrok/node_modules/mime-db/HISTORY.md +507 -0
  593. package/node_modules/progrok/node_modules/mime-db/LICENSE +23 -0
  594. package/node_modules/progrok/node_modules/mime-db/README.md +100 -0
  595. package/node_modules/progrok/node_modules/mime-db/db.json +8519 -0
  596. package/node_modules/progrok/node_modules/mime-db/index.js +12 -0
  597. package/node_modules/progrok/node_modules/mime-db/package.json +60 -0
  598. package/node_modules/progrok/node_modules/mime-types/HISTORY.md +397 -0
  599. package/node_modules/progrok/node_modules/mime-types/LICENSE +23 -0
  600. package/node_modules/progrok/node_modules/mime-types/README.md +113 -0
  601. package/node_modules/progrok/node_modules/mime-types/index.js +188 -0
  602. package/node_modules/progrok/node_modules/mime-types/package.json +44 -0
  603. package/node_modules/progrok/node_modules/negotiator/HISTORY.md +108 -0
  604. package/node_modules/progrok/node_modules/negotiator/LICENSE +24 -0
  605. package/node_modules/progrok/node_modules/negotiator/README.md +203 -0
  606. package/node_modules/progrok/node_modules/negotiator/index.js +82 -0
  607. package/node_modules/progrok/node_modules/negotiator/lib/charset.js +169 -0
  608. package/node_modules/progrok/node_modules/negotiator/lib/encoding.js +184 -0
  609. package/node_modules/progrok/node_modules/negotiator/lib/language.js +179 -0
  610. package/node_modules/progrok/node_modules/negotiator/lib/mediaType.js +294 -0
  611. package/node_modules/progrok/node_modules/negotiator/package.json +42 -0
  612. package/node_modules/progrok/node_modules/path-to-regexp/LICENSE +21 -0
  613. package/node_modules/progrok/node_modules/path-to-regexp/Readme.md +35 -0
  614. package/node_modules/progrok/node_modules/path-to-regexp/index.js +158 -0
  615. package/node_modules/progrok/node_modules/path-to-regexp/package.json +30 -0
  616. package/node_modules/progrok/node_modules/raw-body/LICENSE +22 -0
  617. package/node_modules/progrok/node_modules/raw-body/README.md +223 -0
  618. package/node_modules/progrok/node_modules/raw-body/index.d.ts +87 -0
  619. package/node_modules/progrok/node_modules/raw-body/index.js +336 -0
  620. package/node_modules/progrok/node_modules/raw-body/package.json +47 -0
  621. package/node_modules/progrok/node_modules/send/HISTORY.md +538 -0
  622. package/node_modules/progrok/node_modules/send/LICENSE +23 -0
  623. package/node_modules/progrok/node_modules/send/README.md +327 -0
  624. package/node_modules/progrok/node_modules/send/SECURITY.md +24 -0
  625. package/node_modules/progrok/node_modules/send/index.js +1142 -0
  626. package/node_modules/progrok/node_modules/send/package.json +62 -0
  627. package/node_modules/progrok/node_modules/serve-static/HISTORY.md +493 -0
  628. package/node_modules/progrok/node_modules/serve-static/LICENSE +25 -0
  629. package/node_modules/progrok/node_modules/serve-static/README.md +257 -0
  630. package/node_modules/progrok/node_modules/serve-static/index.js +209 -0
  631. package/node_modules/progrok/node_modules/serve-static/package.json +42 -0
  632. package/node_modules/progrok/node_modules/type-is/HISTORY.md +259 -0
  633. package/node_modules/progrok/node_modules/type-is/LICENSE +23 -0
  634. package/node_modules/progrok/node_modules/type-is/README.md +170 -0
  635. package/node_modules/progrok/node_modules/type-is/index.js +266 -0
  636. package/node_modules/progrok/node_modules/type-is/package.json +45 -0
  637. package/node_modules/progrok/package.json +52 -0
  638. package/node_modules/progrok/skills/progrok/SKILL.md +228 -0
  639. package/node_modules/proxy-addr/HISTORY.md +161 -0
  640. package/node_modules/proxy-addr/LICENSE +22 -0
  641. package/node_modules/proxy-addr/README.md +139 -0
  642. package/node_modules/proxy-addr/index.js +327 -0
  643. package/node_modules/proxy-addr/package.json +47 -0
  644. package/node_modules/qs/.editorconfig +46 -0
  645. package/node_modules/qs/.github/FUNDING.yml +12 -0
  646. package/node_modules/qs/.github/SECURITY.md +11 -0
  647. package/node_modules/qs/.github/THREAT_MODEL.md +78 -0
  648. package/node_modules/qs/.nycrc +13 -0
  649. package/node_modules/qs/CHANGELOG.md +812 -0
  650. package/node_modules/qs/LICENSE.md +29 -0
  651. package/node_modules/qs/README.md +758 -0
  652. package/node_modules/qs/dist/qs.js +141 -0
  653. package/node_modules/qs/eslint.config.mjs +56 -0
  654. package/node_modules/qs/lib/formats.js +23 -0
  655. package/node_modules/qs/lib/index.js +11 -0
  656. package/node_modules/qs/lib/parse.js +373 -0
  657. package/node_modules/qs/lib/stringify.js +356 -0
  658. package/node_modules/qs/lib/utils.js +342 -0
  659. package/node_modules/qs/package.json +94 -0
  660. package/node_modules/qs/test/empty-keys-cases.js +267 -0
  661. package/node_modules/qs/test/parse.js +1654 -0
  662. package/node_modules/qs/test/stringify.js +1319 -0
  663. package/node_modules/qs/test/utils.js +432 -0
  664. package/node_modules/range-parser/HISTORY.md +56 -0
  665. package/node_modules/range-parser/LICENSE +23 -0
  666. package/node_modules/range-parser/README.md +84 -0
  667. package/node_modules/range-parser/index.js +162 -0
  668. package/node_modules/range-parser/package.json +44 -0
  669. package/node_modules/run-applescript/index.d.ts +66 -0
  670. package/node_modules/run-applescript/index.js +37 -0
  671. package/node_modules/run-applescript/license +9 -0
  672. package/node_modules/run-applescript/package.json +42 -0
  673. package/node_modules/run-applescript/readme.md +78 -0
  674. package/node_modules/safe-buffer/LICENSE +21 -0
  675. package/node_modules/safe-buffer/README.md +584 -0
  676. package/node_modules/safe-buffer/index.d.ts +187 -0
  677. package/node_modules/safe-buffer/index.js +65 -0
  678. package/node_modules/safe-buffer/package.json +51 -0
  679. package/node_modules/safer-buffer/LICENSE +21 -0
  680. package/node_modules/safer-buffer/Porting-Buffer.md +268 -0
  681. package/node_modules/safer-buffer/Readme.md +156 -0
  682. package/node_modules/safer-buffer/dangerous.js +58 -0
  683. package/node_modules/safer-buffer/package.json +34 -0
  684. package/node_modules/safer-buffer/safer.js +77 -0
  685. package/node_modules/safer-buffer/tests.js +406 -0
  686. package/node_modules/setprototypeof/LICENSE +13 -0
  687. package/node_modules/setprototypeof/README.md +31 -0
  688. package/node_modules/setprototypeof/index.d.ts +2 -0
  689. package/node_modules/setprototypeof/index.js +17 -0
  690. package/node_modules/setprototypeof/package.json +38 -0
  691. package/node_modules/setprototypeof/test/index.js +24 -0
  692. package/node_modules/side-channel/.editorconfig +9 -0
  693. package/node_modules/side-channel/.eslintrc +12 -0
  694. package/node_modules/side-channel/.github/FUNDING.yml +12 -0
  695. package/node_modules/side-channel/.nycrc +13 -0
  696. package/node_modules/side-channel/CHANGELOG.md +110 -0
  697. package/node_modules/side-channel/LICENSE +21 -0
  698. package/node_modules/side-channel/README.md +61 -0
  699. package/node_modules/side-channel/index.d.ts +14 -0
  700. package/node_modules/side-channel/index.js +43 -0
  701. package/node_modules/side-channel/package.json +85 -0
  702. package/node_modules/side-channel/test/index.js +104 -0
  703. package/node_modules/side-channel/tsconfig.json +9 -0
  704. package/node_modules/side-channel-list/.editorconfig +9 -0
  705. package/node_modules/side-channel-list/.eslintrc +11 -0
  706. package/node_modules/side-channel-list/.github/FUNDING.yml +12 -0
  707. package/node_modules/side-channel-list/.nycrc +13 -0
  708. package/node_modules/side-channel-list/CHANGELOG.md +36 -0
  709. package/node_modules/side-channel-list/LICENSE +21 -0
  710. package/node_modules/side-channel-list/README.md +62 -0
  711. package/node_modules/side-channel-list/index.d.ts +13 -0
  712. package/node_modules/side-channel-list/index.js +111 -0
  713. package/node_modules/side-channel-list/list.d.ts +14 -0
  714. package/node_modules/side-channel-list/package.json +77 -0
  715. package/node_modules/side-channel-list/test/index.js +154 -0
  716. package/node_modules/side-channel-list/tsconfig.json +9 -0
  717. package/node_modules/side-channel-map/.editorconfig +9 -0
  718. package/node_modules/side-channel-map/.eslintrc +11 -0
  719. package/node_modules/side-channel-map/.github/FUNDING.yml +12 -0
  720. package/node_modules/side-channel-map/.nycrc +13 -0
  721. package/node_modules/side-channel-map/CHANGELOG.md +22 -0
  722. package/node_modules/side-channel-map/LICENSE +21 -0
  723. package/node_modules/side-channel-map/README.md +62 -0
  724. package/node_modules/side-channel-map/index.d.ts +15 -0
  725. package/node_modules/side-channel-map/index.js +68 -0
  726. package/node_modules/side-channel-map/package.json +80 -0
  727. package/node_modules/side-channel-map/test/index.js +114 -0
  728. package/node_modules/side-channel-map/tsconfig.json +9 -0
  729. package/node_modules/side-channel-weakmap/.editorconfig +9 -0
  730. package/node_modules/side-channel-weakmap/.eslintrc +12 -0
  731. package/node_modules/side-channel-weakmap/.github/FUNDING.yml +12 -0
  732. package/node_modules/side-channel-weakmap/.nycrc +13 -0
  733. package/node_modules/side-channel-weakmap/CHANGELOG.md +28 -0
  734. package/node_modules/side-channel-weakmap/LICENSE +21 -0
  735. package/node_modules/side-channel-weakmap/README.md +62 -0
  736. package/node_modules/side-channel-weakmap/index.d.ts +15 -0
  737. package/node_modules/side-channel-weakmap/index.js +84 -0
  738. package/node_modules/side-channel-weakmap/package.json +87 -0
  739. package/node_modules/side-channel-weakmap/test/index.js +114 -0
  740. package/node_modules/side-channel-weakmap/tsconfig.json +9 -0
  741. package/node_modules/statuses/HISTORY.md +87 -0
  742. package/node_modules/statuses/LICENSE +23 -0
  743. package/node_modules/statuses/README.md +139 -0
  744. package/node_modules/statuses/codes.json +65 -0
  745. package/node_modules/statuses/index.js +146 -0
  746. package/node_modules/statuses/package.json +49 -0
  747. package/node_modules/toidentifier/HISTORY.md +9 -0
  748. package/node_modules/toidentifier/LICENSE +21 -0
  749. package/node_modules/toidentifier/README.md +61 -0
  750. package/node_modules/toidentifier/index.js +32 -0
  751. package/node_modules/toidentifier/package.json +38 -0
  752. package/node_modules/unpipe/HISTORY.md +4 -0
  753. package/node_modules/unpipe/LICENSE +22 -0
  754. package/node_modules/unpipe/README.md +43 -0
  755. package/node_modules/unpipe/index.js +69 -0
  756. package/node_modules/unpipe/package.json +27 -0
  757. package/node_modules/utils-merge/.npmignore +9 -0
  758. package/node_modules/utils-merge/LICENSE +20 -0
  759. package/node_modules/utils-merge/README.md +34 -0
  760. package/node_modules/utils-merge/index.js +23 -0
  761. package/node_modules/utils-merge/package.json +40 -0
  762. package/node_modules/vary/HISTORY.md +39 -0
  763. package/node_modules/vary/LICENSE +22 -0
  764. package/node_modules/vary/README.md +101 -0
  765. package/node_modules/vary/index.js +149 -0
  766. package/node_modules/vary/package.json +43 -0
  767. package/package.json +7 -2
  768. package/routes/edit.js +85 -13
  769. package/routes/edit.ts +94 -23
  770. package/routes/generate.js +118 -11
  771. package/routes/generate.ts +127 -10
  772. package/routes/grok.js +22 -0
  773. package/routes/grok.ts +24 -0
  774. package/routes/health.js +5 -0
  775. package/routes/health.ts +5 -0
  776. package/routes/index.js +4 -0
  777. package/routes/index.ts +4 -0
  778. package/routes/multimode.js +71 -26
  779. package/routes/multimode.ts +80 -39
  780. package/routes/nodes.js +88 -33
  781. package/routes/nodes.ts +97 -42
  782. package/routes/video.js +197 -0
  783. package/routes/video.ts +216 -0
  784. package/server.js +42 -1
  785. package/server.ts +34 -1
  786. package/skills/ima2/SKILL.md +27 -0
  787. package/ui/dist/.vite/manifest.json +12 -12
  788. package/ui/dist/assets/AgentWorkspace-c1_kEfFN.js +3 -0
  789. package/ui/dist/assets/{CardNewsWorkspace-BBLdwzYU.js → CardNewsWorkspace-CTBT3MbP.js} +2 -2
  790. package/ui/dist/assets/NodeCanvas-D3ecSAEi.js +7 -0
  791. package/ui/dist/assets/{PromptBuilderPanel-Y2VygFc0.js → PromptBuilderPanel-CqepukCN.js} +2 -2
  792. package/ui/dist/assets/{PromptImportDialog-C6lFV-LL.js → PromptImportDialog-Bvr8Q8P2.js} +2 -2
  793. package/ui/dist/assets/{PromptImportDiscoverySection-D8YJFhND.js → PromptImportDiscoverySection-CyZEXyWP.js} +1 -1
  794. package/ui/dist/assets/{PromptImportFolderSection-ywfcQolW.js → PromptImportFolderSection-CIl-_pyV.js} +1 -1
  795. package/ui/dist/assets/{PromptLibraryPanel-fk4KmrGy.js → PromptLibraryPanel-Bj23Q6l9.js} +2 -2
  796. package/ui/dist/assets/SettingsWorkspace-D_GqtEsP.js +1 -0
  797. package/ui/dist/assets/index-DMjgFXdO.css +1 -0
  798. package/ui/dist/assets/index-DQ6jg4Ui.js +32 -0
  799. package/ui/dist/assets/index-DtSBvfgp.js +1 -0
  800. package/ui/dist/index.html +2 -2
  801. package/vendor/progrok-0.1.0.tgz +0 -0
  802. package/ui/dist/assets/AgentWorkspace-BJe9yxPA.js +0 -3
  803. package/ui/dist/assets/NodeCanvas-BSZ527J4.js +0 -7
  804. package/ui/dist/assets/SettingsWorkspace-DL5vhAHQ.js +0 -1
  805. package/ui/dist/assets/index-BLx55BOg.js +0 -1
  806. package/ui/dist/assets/index-ByViUJfx.css +0 -1
  807. package/ui/dist/assets/index-Ci36vcFD.js +0 -28
@@ -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,61 @@
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 { resolveBin, 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
+ export default async function grokCmd(argv) {
29
+ const sub = argv[0];
30
+ if (!sub || sub === "--help" || sub === "-h") {
31
+ out(HELP);
32
+ return;
33
+ }
34
+ const env = {
35
+ ...process.env,
36
+ PATH: `${localBinPath()}${delimiter}${process.env.PATH || ""}`,
37
+ };
38
+ const child = isWin
39
+ ? spawn("cmd.exe", ["/d", "/s", "/c", `progrok ${argv.map((arg) => JSON.stringify(arg)).join(" ")}`], {
40
+ cwd: ROOT,
41
+ env,
42
+ stdio: "inherit",
43
+ windowsHide: true,
44
+ })
45
+ : spawn(resolveBin("progrok"), argv, {
46
+ cwd: ROOT,
47
+ env,
48
+ stdio: "inherit",
49
+ windowsHide: true,
50
+ });
51
+ child.on("error", (err) => {
52
+ die(1, `bundled progrok failed to start: ${err.message}`);
53
+ });
54
+ const code = await new Promise((resolve) => child.on("close", resolve));
55
+ if (code && code !== 0) {
56
+ die(code, `bundled progrok exited with code ${code}`);
57
+ }
58
+ if (sub === "login") {
59
+ out(color.green("✓ ") + "Grok OAuth is ready for ima2 serve");
60
+ }
61
+ }
@@ -0,0 +1,67 @@
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 { resolveBin, 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
+ export default async function grokCmd(argv: string[]) {
32
+ const sub = argv[0];
33
+ if (!sub || sub === "--help" || sub === "-h") {
34
+ out(HELP);
35
+ return;
36
+ }
37
+
38
+ const env = {
39
+ ...process.env,
40
+ PATH: `${localBinPath()}${delimiter}${process.env.PATH || ""}`,
41
+ };
42
+ const child = isWin
43
+ ? spawn("cmd.exe", ["/d", "/s", "/c", `progrok ${argv.map((arg) => JSON.stringify(arg)).join(" ")}`], {
44
+ cwd: ROOT,
45
+ env,
46
+ stdio: "inherit",
47
+ windowsHide: true,
48
+ })
49
+ : spawn(resolveBin("progrok"), argv, {
50
+ cwd: ROOT,
51
+ env,
52
+ stdio: "inherit",
53
+ windowsHide: true,
54
+ });
55
+
56
+ child.on("error", (err) => {
57
+ die(1, `bundled progrok failed to start: ${err.message}`);
58
+ });
59
+
60
+ const code = await new Promise<number | null>((resolve) => child.on("close", resolve));
61
+ if (code && code !== 0) {
62
+ die(code, `bundled progrok exited with code ${code}`);
63
+ }
64
+ if (sub === "login") {
65
+ out(color.green("✓ ") + "Grok OAuth is ready for ima2 serve");
66
+ }
67
+ }
@@ -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
@@ -3,20 +3,17 @@ import { createInterface } from "readline/promises";
3
3
  import { existsSync, readFileSync, writeFileSync, mkdirSync } from "fs";
4
4
  import { join, dirname } from "path";
5
5
  import { fileURLToPath } from "url";
6
- import { createRequire } from "module";
7
6
  import { spawn, execSync } from "child_process";
8
7
  import { confirmDestructiveAction } from "./lib/destructive-confirm.js";
9
- import { buildHardeningDoctorLines } from "./lib/doctor-checks.js";
8
+ import { doctor } from "./commands/doctor.js";
10
9
  import { openUrl, resolveBin } from "./lib/platform.js";
11
10
  import { maybePromptGithubStar } from "./lib/star-prompt.js";
12
- import { buildStorageDoctorLines } from "./lib/storage-doctor.js";
13
11
  import { ensureFreshUiDist } from "./lib/ui-build.js";
14
12
  import { detectCodexAuth } from "../lib/codexDetect.js";
15
13
  import { config as runtimeConfig } from "../config.js";
16
14
  import { errInfo } from "../lib/errInfo.js";
17
15
  const __dirname = dirname(fileURLToPath(import.meta.url));
18
16
  const ROOT = join(__dirname, "..");
19
- const requireFromRoot = createRequire(join(ROOT, "package.json"));
20
17
  // Config lives under runtimeConfig.storage.configDir (honors IMA2_CONFIG_DIR).
21
18
  // Legacy installs that stored config at <packageRoot>/.ima2/config.json will be
22
19
  // migrated on first write.
@@ -61,18 +58,6 @@ function advertisedServerUrl() {
61
58
  const adv = loadAdvertisement();
62
59
  return adv?.backend?.url || adv?.url || (adv?.port ? `http://localhost:${adv.port}` : null);
63
60
  }
64
- function missingRuntimeDeps() {
65
- const deps = ["express", "better-sqlite3", "openai", "openai-oauth"];
66
- return deps.filter((dep) => {
67
- try {
68
- requireFromRoot.resolve(dep);
69
- return false;
70
- }
71
- catch {
72
- return true;
73
- }
74
- });
75
- }
76
61
  async function setup() {
77
62
  const rl = createInterface({ input: process.stdin, output: process.stdout });
78
63
  console.log("\n ima2-gen — GPT Image 2 Generator\n");
@@ -200,93 +185,6 @@ async function showStatus() {
200
185
  }
201
186
  console.log("");
202
187
  }
203
- async function doctor() {
204
- console.log(`\n ${pkg.name} v${pkg.version} — Doctor\n`);
205
- let ok = 0;
206
- let fail = 0;
207
- // Node version
208
- const nodeVersion = process.version;
209
- const nodeMajor = parseInt(nodeVersion.slice(1).split(".")[0]);
210
- if (nodeMajor >= 20) {
211
- console.log(` ✓ Node.js ${nodeVersion} (>= 20)`);
212
- ok++;
213
- }
214
- else {
215
- console.log(` ✗ Node.js ${nodeVersion} (requires >= 20)`);
216
- fail++;
217
- }
218
- // package.json exists
219
- if (existsSync(join(ROOT, "package.json"))) {
220
- console.log(" ✓ package.json found");
221
- ok++;
222
- }
223
- else {
224
- console.log(" ✗ package.json missing");
225
- fail++;
226
- }
227
- // Runtime dependencies may be hoisted by npm, pnpm, or Yarn. Resolve the
228
- // packages instead of requiring a package-local node_modules folder.
229
- const missingDeps = missingRuntimeDeps();
230
- if (missingDeps.length === 0) {
231
- console.log(" ✓ runtime dependencies resolvable");
232
- ok++;
233
- }
234
- else {
235
- console.log(` ✗ missing runtime dependencies: ${missingDeps.join(", ")}`);
236
- fail++;
237
- }
238
- // .env
239
- if (existsSync(join(ROOT, ".env"))) {
240
- console.log(" ✓ .env file exists");
241
- ok++;
242
- }
243
- else {
244
- console.log(" ⚠ .env file not found (optional — copy from .env.example)");
245
- }
246
- // Config
247
- const config = loadConfig();
248
- if (config.provider) {
249
- console.log(` ✓ Configured: ${config.provider}`);
250
- ok++;
251
- }
252
- else {
253
- console.log(" ⚠ Not configured — run 'ima2 setup'");
254
- }
255
- // Port availability (simple check)
256
- const adv = loadAdvertisement();
257
- console.log(` ℹ Preferred backend port: ${runtimeConfig.server.port}`);
258
- if (adv?.backend || adv?.port) {
259
- console.log(` ℹ Backend actual URL: ${adv?.backend?.url || adv?.url || `http://localhost:${adv.port}`}`);
260
- if (adv?.oauth) {
261
- console.log(` ℹ OAuth actual URL: ${adv.oauth.url} (${adv.oauth.status || "unknown"})`);
262
- }
263
- }
264
- const hardeningLines = await buildHardeningDoctorLines({
265
- root: ROOT,
266
- configFile: CONFIG_FILE,
267
- fileConfig: config,
268
- });
269
- for (const line of hardeningLines) {
270
- const prefix = line.kind === "pass" ? "✓"
271
- : line.kind === "fail" ? "✗"
272
- : line.kind === "warn" ? "⚠"
273
- : "ℹ";
274
- console.log(` ${prefix} ${line.text}`);
275
- if (line.kind === "pass")
276
- ok++;
277
- if (line.kind === "fail")
278
- fail++;
279
- }
280
- const storageLines = await buildStorageDoctorLines({
281
- rootDir: ROOT,
282
- config: runtimeConfig,
283
- });
284
- console.log("");
285
- for (const line of storageLines)
286
- console.log(line);
287
- console.log(`\n ${ok} passed, ${fail} failed\n`);
288
- process.exit(fail > 0 ? 1 : 0);
289
- }
290
188
  function openBrowser() {
291
189
  const url = advertisedServerUrl() || `http://localhost:${runtimeConfig.server.port}`;
292
190
  const res = openUrl(url);
@@ -333,6 +231,7 @@ function showHelp() {
333
231
  billing API usage / quota
334
232
  providers Configured providers
335
233
  oauth <sub> OAuth proxy status (ima2 oauth --help)
234
+ grok <sub> Bundled progrok login/status (ima2 grok --help)
336
235
  config <sub> Config get/set/ls/path/rm (ima2 config --help)
337
236
  defaults <sub> Inspect/change model defaults (ima2 defaults --help)
338
237
  capabilities Agent capability metadata (ima2 capabilities --help)
@@ -372,7 +271,7 @@ if (args.includes("-v") || args.includes("--version")) {
372
271
  process.exit(0);
373
272
  }
374
273
  if ((!command || args.includes("-h") || args.includes("--help"))
375
- && !["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)) {
376
275
  showHelp();
377
276
  process.exit(command ? 0 : 1);
378
277
  }
@@ -388,7 +287,7 @@ switch (command) {
388
287
  showStatus();
389
288
  break;
390
289
  case "doctor":
391
- await doctor();
290
+ await doctor(args.slice(1));
392
291
  break;
393
292
  case "open":
394
293
  openBrowser();
@@ -434,6 +333,7 @@ switch (command) {
434
333
  case "defaults":
435
334
  case "capabilities":
436
335
  case "skill":
336
+ case "grok":
437
337
  case "ping": {
438
338
  const { setCliVersion } = await import("./lib/client.js");
439
339
  setCliVersion(pkg.version);
package/bin/ima2.ts CHANGED
@@ -3,13 +3,11 @@ import { createInterface } from "readline/promises";
3
3
  import { existsSync, readFileSync, writeFileSync, mkdirSync } from "fs";
4
4
  import { join, dirname } from "path";
5
5
  import { fileURLToPath } from "url";
6
- import { createRequire } from "module";
7
6
  import { spawn, execSync } from "child_process";
8
7
  import { confirmDestructiveAction } from "./lib/destructive-confirm.js";
9
- import { buildHardeningDoctorLines } from "./lib/doctor-checks.js";
8
+ import { doctor } from "./commands/doctor.js";
10
9
  import { openUrl, resolveBin } from "./lib/platform.js";
11
10
  import { maybePromptGithubStar } from "./lib/star-prompt.js";
12
- import { buildStorageDoctorLines } from "./lib/storage-doctor.js";
13
11
  import { ensureFreshUiDist } from "./lib/ui-build.js";
14
12
  import { detectCodexAuth } from "../lib/codexDetect.js";
15
13
  import { config as runtimeConfig } from "../config.js";
@@ -17,7 +15,6 @@ import { config as runtimeConfig } from "../config.js";
17
15
  import { errInfo } from "../lib/errInfo.js";
18
16
  const __dirname = dirname(fileURLToPath(import.meta.url));
19
17
  const ROOT = join(__dirname, "..");
20
- const requireFromRoot = createRequire(join(ROOT, "package.json"));
21
18
  // Config lives under runtimeConfig.storage.configDir (honors IMA2_CONFIG_DIR).
22
19
  // Legacy installs that stored config at <packageRoot>/.ima2/config.json will be
23
20
  // migrated on first write.
@@ -62,18 +59,6 @@ function advertisedServerUrl() {
62
59
  return adv?.backend?.url || adv?.url || (adv?.port ? `http://localhost:${adv.port}` : null);
63
60
  }
64
61
 
65
- function missingRuntimeDeps() {
66
- const deps = ["express", "better-sqlite3", "openai", "openai-oauth"];
67
- return deps.filter((dep) => {
68
- try {
69
- requireFromRoot.resolve(dep);
70
- return false;
71
- } catch {
72
- return true;
73
- }
74
- });
75
- }
76
-
77
62
  async function setup() {
78
63
  const rl = createInterface({ input: process.stdin, output: process.stdout });
79
64
 
@@ -221,97 +206,6 @@ async function showStatus() {
221
206
  console.log("");
222
207
  }
223
208
 
224
- async function doctor() {
225
- console.log(`\n ${pkg.name} v${pkg.version} — Doctor\n`);
226
-
227
- let ok = 0;
228
- let fail = 0;
229
-
230
- // Node version
231
- const nodeVersion = process.version;
232
- const nodeMajor = parseInt(nodeVersion.slice(1).split(".")[0]);
233
- if (nodeMajor >= 20) {
234
- console.log(` ✓ Node.js ${nodeVersion} (>= 20)`);
235
- ok++;
236
- } else {
237
- console.log(` ✗ Node.js ${nodeVersion} (requires >= 20)`);
238
- fail++;
239
- }
240
-
241
- // package.json exists
242
- if (existsSync(join(ROOT, "package.json"))) {
243
- console.log(" ✓ package.json found");
244
- ok++;
245
- } else {
246
- console.log(" ✗ package.json missing");
247
- fail++;
248
- }
249
-
250
- // Runtime dependencies may be hoisted by npm, pnpm, or Yarn. Resolve the
251
- // packages instead of requiring a package-local node_modules folder.
252
- const missingDeps = missingRuntimeDeps();
253
- if (missingDeps.length === 0) {
254
- console.log(" ✓ runtime dependencies resolvable");
255
- ok++;
256
- } else {
257
- console.log(` ✗ missing runtime dependencies: ${missingDeps.join(", ")}`);
258
- fail++;
259
- }
260
-
261
- // .env
262
- if (existsSync(join(ROOT, ".env"))) {
263
- console.log(" ✓ .env file exists");
264
- ok++;
265
- } else {
266
- console.log(" ⚠ .env file not found (optional — copy from .env.example)");
267
- }
268
-
269
- // Config
270
- const config = loadConfig();
271
- if (config.provider) {
272
- console.log(` ✓ Configured: ${config.provider}`);
273
- ok++;
274
- } else {
275
- console.log(" ⚠ Not configured — run 'ima2 setup'");
276
- }
277
-
278
- // Port availability (simple check)
279
- const adv = loadAdvertisement();
280
- console.log(` ℹ Preferred backend port: ${runtimeConfig.server.port}`);
281
- if (adv?.backend || adv?.port) {
282
- console.log(` ℹ Backend actual URL: ${adv?.backend?.url || adv?.url || `http://localhost:${adv.port}`}`);
283
- if (adv?.oauth) {
284
- console.log(` ℹ OAuth actual URL: ${adv.oauth.url} (${adv.oauth.status || "unknown"})`);
285
- }
286
- }
287
-
288
- const hardeningLines = await buildHardeningDoctorLines({
289
- root: ROOT,
290
- configFile: CONFIG_FILE,
291
- fileConfig: config,
292
- });
293
- for (const line of hardeningLines) {
294
- const prefix =
295
- line.kind === "pass" ? "✓"
296
- : line.kind === "fail" ? "✗"
297
- : line.kind === "warn" ? "⚠"
298
- : "ℹ";
299
- console.log(` ${prefix} ${line.text}`);
300
- if (line.kind === "pass") ok++;
301
- if (line.kind === "fail") fail++;
302
- }
303
-
304
- const storageLines = await buildStorageDoctorLines({
305
- rootDir: ROOT,
306
- config: runtimeConfig,
307
- });
308
- console.log("");
309
- for (const line of storageLines) console.log(line);
310
-
311
- console.log(`\n ${ok} passed, ${fail} failed\n`);
312
- process.exit(fail > 0 ? 1 : 0);
313
- }
314
-
315
209
  function openBrowser() {
316
210
  const url = advertisedServerUrl() || `http://localhost:${runtimeConfig.server.port}`;
317
211
  const res = openUrl(url);
@@ -358,6 +252,7 @@ function showHelp() {
358
252
  billing API usage / quota
359
253
  providers Configured providers
360
254
  oauth <sub> OAuth proxy status (ima2 oauth --help)
255
+ grok <sub> Bundled progrok login/status (ima2 grok --help)
361
256
  config <sub> Config get/set/ls/path/rm (ima2 config --help)
362
257
  defaults <sub> Inspect/change model defaults (ima2 defaults --help)
363
258
  capabilities Agent capability metadata (ima2 capabilities --help)
@@ -400,7 +295,7 @@ if (args.includes("-v") || args.includes("--version")) {
400
295
  }
401
296
 
402
297
  if ((!command || args.includes("-h") || args.includes("--help"))
403
- && !["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)) {
404
299
  showHelp();
405
300
  process.exit(command ? 0 : 1);
406
301
  }
@@ -417,7 +312,7 @@ switch (command) {
417
312
  showStatus();
418
313
  break;
419
314
  case "doctor":
420
- await doctor();
315
+ await doctor(args.slice(1));
421
316
  break;
422
317
  case "open":
423
318
  openBrowser();
@@ -461,6 +356,7 @@ switch (command) {
461
356
  case "defaults":
462
357
  case "capabilities":
463
358
  case "skill":
359
+ case "grok":
464
360
  case "ping": {
465
361
  const { setCliVersion } = await import("./lib/client.js");
466
362
  setCliVersion(pkg.version);
package/config.js CHANGED
@@ -112,6 +112,7 @@ export const config = {
112
112
  restartDelayMs: pickInt(env.IMA2_OAUTH_RESTART_DELAY_MS, fileCfg.oauth?.restartDelayMs, 5000),
113
113
  // Provider-backed masked edit is off until upstream STEP-0 verification is recorded.
114
114
  maskedEditEnabled: pickBool(env.IMA2_OAUTH_MASKED_EDIT_ENABLED, fileCfg.oauth?.maskedEditEnabled, false),
115
+ forceImageToolChoice: pickBool(env.IMA2_OAUTH_FORCE_IMAGE_TOOL_CHOICE, fileCfg.oauth?.forceImageToolChoice, true),
115
116
  researchSuffix: pickStr(env.IMA2_RESEARCH_SUFFIX, fileCfg.oauth?.researchSuffix, "\n\nIf factual visual accuracy is required and the user's prompt or attached visual context is not already sufficient, use at least one concise web_search call for references before generating. If the user's prompt is already visually sufficient, do not search, rewrite, translate, summarize, or add clarifiers; pass the user's prompt through as the image_generation prompt argument."),
116
117
  validModeration: new Set(Array.isArray(fileCfg.oauth?.validModeration) && fileCfg.oauth.validModeration.length
117
118
  ? fileCfg.oauth.validModeration
@@ -163,6 +164,22 @@ export const config = {
163
164
  defaultSize: pickStr(env.IMA2_API_IMAGE_SIZE, fileCfg.apiProvider?.defaultSize, "1024x1024"),
164
165
  allowWebSearch: pickBool(env.IMA2_API_ALLOW_WEB_SEARCH, fileCfg.apiProvider?.allowWebSearch, true),
165
166
  },
167
+ grokProvider: {
168
+ proxyPort: pickInt(env.IMA2_GROK_PROXY_PORT, fileCfg.grokProvider?.proxyPort, 18645),
169
+ proxyHost: pickStr(env.IMA2_GROK_PROXY_HOST, fileCfg.grokProvider?.proxyHost, "127.0.0.1"),
170
+ autoStart: !pickBool(env.IMA2_NO_GROK_PROXY, fileCfg.grokProvider?.disableAutoStart, false),
171
+ restartDelayMs: pickInt(env.IMA2_GROK_RESTART_DELAY_MS, fileCfg.grokProvider?.restartDelayMs, 2000),
172
+ plannerModel: pickStr(env.IMA2_GROK_PLANNER_MODEL, fileCfg.grokProvider?.plannerModel, "grok-4.3"),
173
+ plannerTimeoutMs: pickInt(env.IMA2_GROK_PLANNER_TIMEOUT_MS, fileCfg.grokProvider?.plannerTimeoutMs, 60_000),
174
+ defaultImageModel: pickStr(env.IMA2_GROK_IMAGE_MODEL_DEFAULT, fileCfg.grokProvider?.defaultImageModel, "grok-imagine-image"),
175
+ generationTimeoutMs: pickInt(env.IMA2_GROK_GENERATION_TIMEOUT_MS, fileCfg.grokProvider?.generationTimeoutMs, 120_000),
176
+ statusTimeoutMs: pickInt(env.IMA2_GROK_STATUS_TIMEOUT_MS, fileCfg.grokProvider?.statusTimeoutMs, 3000),
177
+ defaultVideoModel: pickStr(env.IMA2_GROK_VIDEO_MODEL_DEFAULT, fileCfg.grokProvider?.defaultVideoModel, "grok-imagine-video"),
178
+ videoStartTimeoutMs: pickInt(env.IMA2_GROK_VIDEO_START_TIMEOUT_MS, fileCfg.grokProvider?.videoStartTimeoutMs, 60_000),
179
+ videoPollIntervalMs: pickInt(env.IMA2_GROK_VIDEO_POLL_INTERVAL_MS, fileCfg.grokProvider?.videoPollIntervalMs, 5_000),
180
+ videoTimeoutMs: pickInt(env.IMA2_GROK_VIDEO_TIMEOUT_MS, fileCfg.grokProvider?.videoTimeoutMs, 900_000),
181
+ videoDownloadTimeoutMs: pickInt(env.IMA2_GROK_VIDEO_DOWNLOAD_TIMEOUT_MS, fileCfg.grokProvider?.videoDownloadTimeoutMs, 120_000),
182
+ },
166
183
  log: {
167
184
  level: pickStr(env.IMA2_LOG_LEVEL, fileCfg.log?.level, defaultLogLevelForEnv(env)),
168
185
  pretty: env.NODE_ENV !== "production",