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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.ts","../src/commands/login.ts","../src/auth/pkce.ts","../src/auth/constants.ts","../src/auth/discovery.ts","../src/auth/callback-server.ts","../src/auth/token-store.ts","../src/utils/logger.ts","../src/utils/open-url.ts","../src/auth/device-code.ts","../src/commands/logout.ts","../src/commands/proxy.ts","../src/proxy/server.ts","../src/commands/chat.ts","../src/chat/server.ts","../src/commands/models.ts","../src/commands/status.ts","../src/commands/skill.ts","../src/commands/capabilities.ts","../src/utils/config.ts","../src/utils/star-prompt.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport { loginCommand } from \"./commands/login.js\";\nimport { logoutCommand } from \"./commands/logout.js\";\nimport { proxyCommand } from \"./commands/proxy.js\";\nimport { chatCommand } from \"./commands/chat.js\";\nimport { modelsCommand } from \"./commands/models.js\";\nimport { statusCommand } from \"./commands/status.js\";\nimport { skillCommand } from \"./commands/skill.js\";\nimport { capabilitiesCommand } from \"./commands/capabilities.js\";\nimport { showStarPrompt } from \"./utils/star-prompt.js\";\nimport { readFileSync } from \"node:fs\";\nimport { fileURLToPath } from \"node:url\";\nimport { dirname, join } from \"node:path\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nfunction getVersion(): string {\n try {\n const pkg = JSON.parse(\n readFileSync(join(__dirname, \"..\", \"package.json\"), \"utf8\"),\n ) as { version: string };\n return pkg.version;\n } catch {\n return \"0.0.0\";\n }\n}\n\nconst program = new Command();\n\nprogram\n .name(\"progrok\")\n .description(\n `Use Grok models for free via OAuth proxy. No API key needed.\n\n SuperGrok OAuth → local proxy → OpenAI-compatible API for any client.\n All xAI endpoints forwarded: responses, chat, images, video, tts, stt.\n\n Quick start:\n $ progrok login # OAuth via browser (or --device-code for SSH)\n $ progrok proxy # Start proxy on 127.0.0.1:18645\n $ curl localhost:18645/v1/chat/completions -d '{\"model\":\"grok-4.3\",...}'\n\n Proxy forwards ALL /v1/* paths to api.x.ai — no whitelist.\n Supported xAI surfaces:\n /v1/responses Responses API (streaming, tools, reasoning)\n /v1/chat/completions OpenAI-compatible chat\n /v1/models Model list\n /v1/language-models Detailed models (pricing, aliases, modalities)\n /v1/images/generations Image generation (grok-imagine-image)\n /v1/videos/generations Video generation (async, poll /v1/videos/{id})\n /v1/tts Text-to-speech\n /v1/stt Speech-to-text\n /v1/batch/completions Batch processing\n /v1/embeddings Embeddings`,\n )\n .version(getVersion());\n\nprogram.addCommand(loginCommand());\nprogram.addCommand(logoutCommand());\nprogram.addCommand(proxyCommand());\nprogram.addCommand(chatCommand());\nprogram.addCommand(modelsCommand());\nprogram.addCommand(statusCommand());\nprogram.addCommand(skillCommand());\nprogram.addCommand(capabilitiesCommand());\n\nconst REAL_COMMANDS = new Set([\"login\", \"logout\", \"proxy\", \"chat\", \"models\", \"status\", \"skill\", \"capabilities\"]);\nconst subcommand = process.argv[2];\nif (subcommand && REAL_COMMANDS.has(subcommand)) {\n await showStarPrompt();\n}\n\nprogram.parse();\n","import { Command } from \"commander\";\nimport { loginWithPKCE } from \"../auth/pkce.js\";\nimport { loginWithDeviceCode } from \"../auth/device-code.js\";\nimport { log } from \"../utils/logger.js\";\n\nexport function loginCommand(): Command {\n const cmd = new Command(\"login\")\n .description(\n `Log in to xAI via OAuth (SuperGrok subscription required).\n Default: PKCE flow — opens browser, callback on 127.0.0.1:56121.\n Remote: --device-code — displays URL + code for manual entry.\n Tokens saved to ~/.progrok/auth.json, auto-refreshed before expiry.`,\n )\n .option(\n \"--device-code\",\n \"Use device code flow (for SSH/remote environments)\",\n )\n .action(async (opts: { deviceCode?: boolean }) => {\n try {\n if (opts.deviceCode) {\n await loginWithDeviceCode();\n } else {\n await loginWithPKCE();\n }\n } catch (err) {\n log.error((err as Error).message);\n process.exit(1);\n }\n });\n return cmd;\n}\n","import { randomBytes, createHash } from \"node:crypto\";\nimport {\n XAI_OAUTH_CLIENT_ID,\n XAI_OAUTH_SCOPE,\n XAI_OAUTH_REDIRECT_URI,\n XAI_OAUTH_FETCH_TIMEOUT_MS,\n} from \"./constants.js\";\nimport { fetchOIDCDiscovery } from \"./discovery.js\";\nimport { startCallbackServer } from \"./callback-server.js\";\nimport { saveTokens } from \"./token-store.js\";\nimport { openUrl } from \"../utils/open-url.js\";\nimport { log } from \"../utils/logger.js\";\n\nfunction generatePKCE(): { verifier: string; challenge: string } {\n const verifier = randomBytes(32).toString(\"hex\");\n const challenge = createHash(\"sha256\")\n .update(verifier)\n .digest(\"base64url\");\n return { verifier, challenge };\n}\n\nexport async function loginWithPKCE(): Promise<void> {\n const discovery = await fetchOIDCDiscovery();\n const pkce = generatePKCE();\n const state = randomBytes(16).toString(\"hex\");\n\n const authorizeUrl = new URL(discovery.authorizationEndpoint);\n authorizeUrl.searchParams.set(\"client_id\", XAI_OAUTH_CLIENT_ID);\n authorizeUrl.searchParams.set(\"redirect_uri\", XAI_OAUTH_REDIRECT_URI);\n authorizeUrl.searchParams.set(\"response_type\", \"code\");\n authorizeUrl.searchParams.set(\"scope\", XAI_OAUTH_SCOPE);\n authorizeUrl.searchParams.set(\"state\", state);\n authorizeUrl.searchParams.set(\"code_challenge\", pkce.challenge);\n authorizeUrl.searchParams.set(\"code_challenge_method\", \"S256\");\n\n log.info(\"Opening browser for xAI login...\");\n log.dim(\n `If the browser doesn't open, visit:\\n${authorizeUrl.toString()}`,\n );\n\n const callbackPromise = startCallbackServer(state);\n await openUrl(authorizeUrl.toString());\n\n const { code } = await callbackPromise;\n\n log.info(\"Exchanging authorization code...\");\n\n const tokenRes = await fetch(discovery.tokenEndpoint, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" },\n body: new URLSearchParams({\n grant_type: \"authorization_code\",\n client_id: XAI_OAUTH_CLIENT_ID,\n code,\n redirect_uri: XAI_OAUTH_REDIRECT_URI,\n code_verifier: pkce.verifier,\n }),\n signal: AbortSignal.timeout(XAI_OAUTH_FETCH_TIMEOUT_MS),\n });\n\n if (!tokenRes.ok) {\n const err = await tokenRes.text();\n throw new Error(`Token exchange failed: ${err}`);\n }\n\n const tokens = (await tokenRes.json()) as Record<string, unknown>;\n\n await saveTokens({\n accessToken: tokens.access_token as string,\n refreshToken: tokens.refresh_token as string | undefined,\n expiresIn: tokens.expires_in as number | undefined,\n idToken: tokens.id_token as string | undefined,\n tokenEndpoint: discovery.tokenEndpoint,\n });\n\n log.success(\"Logged in to xAI successfully!\");\n}\n","import { homedir } from \"node:os\";\nimport { join } from \"node:path\";\n\n// xAI shared OAuth Client (same as hermes-agent & openclaw — MIT licensed)\nexport const XAI_OAUTH_CLIENT_ID = \"b1a00492-073a-47ea-816f-4c329264a828\";\nexport const XAI_OAUTH_SCOPE =\n \"openid profile email offline_access grok-cli:access api:access\";\nexport const XAI_OAUTH_ISSUER = \"https://auth.x.ai\";\nexport const XAI_OAUTH_DISCOVERY_URL = `${XAI_OAUTH_ISSUER}/.well-known/openid-configuration`;\n\n// OAuth callback (MUST match registered redirect URI)\nexport const XAI_OAUTH_CALLBACK_HOST = \"127.0.0.1\";\nexport const XAI_OAUTH_CALLBACK_PORT = 56121;\nexport const XAI_OAUTH_CALLBACK_PATH = \"/callback\";\nexport const XAI_OAUTH_REDIRECT_URI = `http://${XAI_OAUTH_CALLBACK_HOST}:${XAI_OAUTH_CALLBACK_PORT}${XAI_OAUTH_CALLBACK_PATH}`;\n\n// CORS origins for xAI auth\nexport const XAI_OAUTH_CORS_ORIGINS = [\"auth.x.ai\", \"accounts.x.ai\"];\n\n// Timeouts\nexport const XAI_OAUTH_TIMEOUT_MS = 5 * 60 * 1000;\nexport const XAI_OAUTH_FETCH_TIMEOUT_MS = 30 * 1000;\nexport const XAI_DEVICE_CODE_POLL_INTERVAL_MS = 5 * 1000;\n\n// Token refresh\nexport const TOKEN_REFRESH_SKEW_MS = 2 * 60 * 1000;\n\n// API\nexport const XAI_API_BASE_URL = \"https://api.x.ai/v1\";\nexport const DEFAULT_MODEL = \"grok-4.3\";\n\n// Proxy\nexport const PROXY_DEFAULT_PORT = 18645;\nexport const PROXY_DEFAULT_HOST = \"127.0.0.1\";\nexport const CHAT_DEFAULT_PORT = 18646;\n\n// Paths\nexport const CONFIG_DIR = join(homedir(), \".progrok\");\nexport const AUTH_FILE = join(CONFIG_DIR, \"auth.json\");\nexport const CONFIG_FILE = join(CONFIG_DIR, \"config.json\");\n\n// Proxy allowed paths\nexport const ALLOWED_PROXY_PATHS = new Set([\n \"/responses\",\n \"/chat/completions\",\n \"/completions\",\n \"/embeddings\",\n \"/models\",\n]);\n\n// GitHub\nexport const GITHUB_REPO = \"lidge-jun/progrok\";\nexport const GITHUB_URL = `https://github.com/${GITHUB_REPO}`;\n","import {\n XAI_OAUTH_DISCOVERY_URL,\n XAI_OAUTH_FETCH_TIMEOUT_MS,\n} from \"./constants.js\";\n\nexport interface OIDCDiscovery {\n authorizationEndpoint: string;\n tokenEndpoint: string;\n deviceAuthorizationEndpoint?: string;\n}\n\nfunction requireTrustedEndpoint(url: string, label: string): string {\n try {\n const parsed = new URL(url);\n if (parsed.protocol !== \"https:\") {\n throw new Error(\"not HTTPS\");\n }\n if (parsed.hostname !== \"x.ai\" && !parsed.hostname.endsWith(\".x.ai\")) {\n throw new Error(\"not *.x.ai\");\n }\n return url;\n } catch {\n throw new Error(`OIDC discovery returned untrusted ${label}: ${url}`);\n }\n}\n\nexport async function fetchOIDCDiscovery(): Promise<OIDCDiscovery> {\n const res = await fetch(XAI_OAUTH_DISCOVERY_URL, {\n signal: AbortSignal.timeout(XAI_OAUTH_FETCH_TIMEOUT_MS),\n });\n\n if (!res.ok) {\n throw new Error(`OIDC discovery failed: HTTP ${res.status}`);\n }\n\n const data = (await res.json()) as Record<string, unknown>;\n\n const authorizationEndpoint = requireTrustedEndpoint(\n data.authorization_endpoint as string,\n \"authorization_endpoint\",\n );\n const tokenEndpoint = requireTrustedEndpoint(\n data.token_endpoint as string,\n \"token_endpoint\",\n );\n const deviceAuthorizationEndpoint = data.device_authorization_endpoint\n ? requireTrustedEndpoint(\n data.device_authorization_endpoint as string,\n \"device_authorization_endpoint\",\n )\n : undefined;\n\n return { authorizationEndpoint, tokenEndpoint, deviceAuthorizationEndpoint };\n}\n","import { createServer, type Server } from \"node:http\";\nimport {\n XAI_OAUTH_CALLBACK_HOST,\n XAI_OAUTH_CALLBACK_PORT,\n XAI_OAUTH_CALLBACK_PATH,\n XAI_OAUTH_CORS_ORIGINS,\n XAI_OAUTH_TIMEOUT_MS,\n} from \"./constants.js\";\n\ninterface CallbackResult {\n code: string;\n state: string;\n}\n\nexport function startCallbackServer(\n expectedState: string,\n): Promise<CallbackResult> {\n return new Promise((resolve, reject) => {\n let server: Server | undefined;\n\n const timeout = setTimeout(() => {\n server?.close();\n reject(new Error(\"OAuth callback timed out (5 minutes)\"));\n }, XAI_OAUTH_TIMEOUT_MS);\n\n server = createServer((req, res) => {\n const url = new URL(\n req.url || \"/\",\n `http://${XAI_OAUTH_CALLBACK_HOST}`,\n );\n\n if (req.method === \"OPTIONS\") {\n const origin = req.headers.origin || \"\";\n try {\n const originHost = new URL(origin).hostname;\n if (XAI_OAUTH_CORS_ORIGINS.includes(originHost)) {\n res.writeHead(204, {\n \"Access-Control-Allow-Origin\": origin,\n \"Access-Control-Allow-Methods\": \"GET\",\n \"Access-Control-Allow-Headers\": \"Content-Type\",\n });\n } else {\n res.writeHead(204);\n }\n } catch {\n res.writeHead(204);\n }\n res.end();\n return;\n }\n\n if (url.pathname !== XAI_OAUTH_CALLBACK_PATH) {\n res.writeHead(404);\n res.end(\"Not found\");\n return;\n }\n\n const code = url.searchParams.get(\"code\");\n const state = url.searchParams.get(\"state\");\n const error = url.searchParams.get(\"error\");\n\n if (error) {\n const desc = url.searchParams.get(\"error_description\") || error;\n res.writeHead(200, { \"Content-Type\": \"text/html\" });\n res.end(\n `<html><body><h2>Login failed</h2><p>${desc}</p><p>You can close this tab.</p></body></html>`,\n );\n clearTimeout(timeout);\n server?.close();\n reject(new Error(`OAuth error: ${desc}`));\n return;\n }\n\n if (!code || state !== expectedState) {\n res.writeHead(400, { \"Content-Type\": \"text/html\" });\n res.end(\"<html><body><h2>Invalid callback</h2></body></html>\");\n return;\n }\n\n res.writeHead(200, { \"Content-Type\": \"text/html\" });\n res.end(\n `<html><body style=\"font-family:system-ui;text-align:center;padding:60px\">` +\n `<h2>Logged in to progrok</h2>` +\n `<p>You can close this tab and return to the terminal.</p>` +\n `</body></html>`,\n );\n\n clearTimeout(timeout);\n server?.close();\n resolve({ code, state });\n });\n\n server.listen(XAI_OAUTH_CALLBACK_PORT, XAI_OAUTH_CALLBACK_HOST, () => {});\n\n server.on(\"error\", (err: NodeJS.ErrnoException) => {\n clearTimeout(timeout);\n reject(new Error(`Callback server failed: ${err.message}`));\n });\n });\n}\n","import {\n readFileSync,\n writeFileSync,\n mkdirSync,\n existsSync,\n unlinkSync,\n} from \"node:fs\";\nimport {\n CONFIG_DIR,\n AUTH_FILE,\n TOKEN_REFRESH_SKEW_MS,\n XAI_OAUTH_CLIENT_ID,\n XAI_OAUTH_FETCH_TIMEOUT_MS,\n} from \"./constants.js\";\nimport { log } from \"../utils/logger.js\";\n\nexport interface TokenData {\n accessToken: string;\n refreshToken?: string;\n expiresAt?: number;\n tokenEndpoint?: string;\n email?: string;\n idToken?: string;\n}\n\nexport interface SaveTokenInput {\n accessToken: string;\n refreshToken?: string;\n expiresIn?: number;\n idToken?: string;\n tokenEndpoint?: string;\n}\n\nfunction ensureConfigDir(): void {\n if (!existsSync(CONFIG_DIR)) {\n mkdirSync(CONFIG_DIR, { recursive: true, mode: 0o700 });\n }\n}\n\nexport async function saveTokens(input: SaveTokenInput): Promise<void> {\n ensureConfigDir();\n\n const data: TokenData = {\n accessToken: input.accessToken,\n refreshToken: input.refreshToken,\n expiresAt: input.expiresIn\n ? Date.now() + input.expiresIn * 1000\n : undefined,\n tokenEndpoint: input.tokenEndpoint,\n idToken: input.idToken,\n };\n\n if (input.idToken) {\n try {\n const parts = input.idToken.split(\".\");\n if (parts[1]) {\n const payload = JSON.parse(\n Buffer.from(parts[1], \"base64url\").toString(),\n ) as Record<string, unknown>;\n if (typeof payload.email === \"string\") {\n data.email = payload.email;\n }\n }\n } catch {\n /* ignore malformed JWT */\n }\n }\n\n writeFileSync(AUTH_FILE, JSON.stringify(data, null, 2), { mode: 0o600 });\n}\n\nexport function loadTokens(): TokenData | null {\n try {\n const raw = readFileSync(AUTH_FILE, \"utf8\");\n return JSON.parse(raw) as TokenData;\n } catch {\n return null;\n }\n}\n\nexport function deleteTokens(): void {\n try {\n unlinkSync(AUTH_FILE);\n } catch {\n /* ignore if not exists */\n }\n}\n\nexport async function getValidBearer(): Promise<string> {\n const tokens = loadTokens();\n if (!tokens?.accessToken) {\n throw new Error(\"Not logged in. Run `progrok login` first.\");\n }\n\n if (\n tokens.expiresAt &&\n Date.now() + TOKEN_REFRESH_SKEW_MS >= tokens.expiresAt\n ) {\n if (!tokens.refreshToken || !tokens.tokenEndpoint) {\n throw new Error(\n \"Token expired and no refresh token available. Run `progrok login` again.\",\n );\n }\n\n log.dim(\"Refreshing access token...\");\n\n const res = await fetch(tokens.tokenEndpoint, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" },\n body: new URLSearchParams({\n grant_type: \"refresh_token\",\n client_id: XAI_OAUTH_CLIENT_ID,\n refresh_token: tokens.refreshToken,\n }),\n signal: AbortSignal.timeout(XAI_OAUTH_FETCH_TIMEOUT_MS),\n });\n\n if (!res.ok) {\n throw new Error(\"Token refresh failed. Run `progrok login` again.\");\n }\n\n const refreshed = (await res.json()) as Record<string, unknown>;\n\n if (\n typeof refreshed.access_token !== \"string\" ||\n !refreshed.access_token\n ) {\n throw new Error(\n \"Token refresh returned invalid access_token. Run `progrok login` again.\",\n );\n }\n\n await saveTokens({\n accessToken: refreshed.access_token,\n refreshToken:\n (typeof refreshed.refresh_token === \"string\"\n ? refreshed.refresh_token\n : undefined) || tokens.refreshToken,\n expiresIn:\n typeof refreshed.expires_in === \"number\"\n ? refreshed.expires_in\n : undefined,\n tokenEndpoint: tokens.tokenEndpoint,\n });\n\n return refreshed.access_token;\n }\n\n return tokens.accessToken;\n}\n","const RESET = \"\\x1b[0m\";\nconst GREEN = \"\\x1b[32m\";\nconst RED = \"\\x1b[31m\";\nconst DIM = \"\\x1b[2m\";\nconst BOLD = \"\\x1b[1m\";\n\nexport const log = {\n info: (msg: string): void => {\n console.log(msg);\n },\n success: (msg: string): void => {\n console.log(`${GREEN}${msg}${RESET}`);\n },\n error: (msg: string): void => {\n console.error(`${RED}${msg}${RESET}`);\n },\n dim: (msg: string): void => {\n console.log(`${DIM}${msg}${RESET}`);\n },\n bold: (msg: string): void => {\n console.log(`${BOLD}${msg}${RESET}`);\n },\n};\n","import open from \"open\";\n\nexport async function openUrl(url: string): Promise<void> {\n try {\n await open(url);\n } catch {\n // Silently fail — URL is already printed to terminal\n }\n}\n","import {\n XAI_OAUTH_CLIENT_ID,\n XAI_OAUTH_SCOPE,\n XAI_OAUTH_FETCH_TIMEOUT_MS,\n XAI_DEVICE_CODE_POLL_INTERVAL_MS,\n} from \"./constants.js\";\nimport { fetchOIDCDiscovery } from \"./discovery.js\";\nimport { saveTokens } from \"./token-store.js\";\nimport { log } from \"../utils/logger.js\";\n\ninterface DeviceCodeResponse {\n device_code: string;\n user_code: string;\n verification_uri: string;\n verification_uri_complete?: string;\n expires_in: number;\n interval?: number;\n}\n\nexport async function loginWithDeviceCode(): Promise<void> {\n const discovery = await fetchOIDCDiscovery();\n\n if (!discovery.deviceAuthorizationEndpoint) {\n throw new Error(\n \"xAI does not support device code flow via OIDC discovery\",\n );\n }\n\n log.info(\"Requesting device code...\");\n\n const dcRes = await fetch(discovery.deviceAuthorizationEndpoint, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" },\n body: new URLSearchParams({\n client_id: XAI_OAUTH_CLIENT_ID,\n scope: XAI_OAUTH_SCOPE,\n }),\n signal: AbortSignal.timeout(XAI_OAUTH_FETCH_TIMEOUT_MS),\n });\n\n if (!dcRes.ok) {\n throw new Error(`Device code request failed: ${await dcRes.text()}`);\n }\n\n const dc = (await dcRes.json()) as DeviceCodeResponse;\n\n const url = dc.verification_uri_complete || dc.verification_uri;\n log.info(`\\nOpen this URL in your browser:\\n ${url}\\n`);\n log.info(`Enter code: ${dc.user_code}\\n`);\n\n const intervalMs = Math.max(\n (dc.interval || 5) * 1000,\n XAI_DEVICE_CODE_POLL_INTERVAL_MS,\n );\n const deadline = Date.now() + dc.expires_in * 1000;\n\n while (Date.now() < deadline) {\n await new Promise((r) => setTimeout(r, intervalMs));\n\n const pollRes = await fetch(discovery.tokenEndpoint, {\n method: \"POST\",\n headers: { \"Content-Type\": \"application/x-www-form-urlencoded\" },\n body: new URLSearchParams({\n grant_type: \"urn:ietf:params:oauth:grant-type:device_code\",\n client_id: XAI_OAUTH_CLIENT_ID,\n device_code: dc.device_code,\n }),\n signal: AbortSignal.timeout(XAI_OAUTH_FETCH_TIMEOUT_MS),\n });\n\n if (pollRes.ok) {\n const tokens = (await pollRes.json()) as Record<string, unknown>;\n await saveTokens({\n accessToken: tokens.access_token as string,\n refreshToken: tokens.refresh_token as string | undefined,\n expiresIn: tokens.expires_in as number | undefined,\n idToken: tokens.id_token as string | undefined,\n tokenEndpoint: discovery.tokenEndpoint,\n });\n log.success(\"Logged in to xAI successfully!\");\n return;\n }\n\n const err = (await pollRes.json()) as Record<string, string>;\n if (err.error === \"authorization_pending\") continue;\n if (err.error === \"slow_down\") {\n await new Promise((r) => setTimeout(r, 5000));\n continue;\n }\n throw new Error(\n `Device code poll failed: ${err.error_description || err.error}`,\n );\n }\n\n throw new Error(\"Device code expired. Please try again.\");\n}\n","import { Command } from \"commander\";\nimport { deleteTokens } from \"../auth/token-store.js\";\nimport { log } from \"../utils/logger.js\";\n\nexport function logoutCommand(): Command {\n return new Command(\"logout\")\n .description(\"Remove stored xAI credentials\")\n .action(() => {\n deleteTokens();\n log.success(\"Logged out. Credentials removed.\");\n });\n}\n","import { Command } from \"commander\";\nimport { startProxy } from \"../proxy/server.js\";\nimport { loadTokens } from \"../auth/token-store.js\";\nimport {\n PROXY_DEFAULT_PORT,\n PROXY_DEFAULT_HOST,\n} from \"../auth/constants.js\";\nimport { log } from \"../utils/logger.js\";\n\nexport function proxyCommand(): Command {\n return new Command(\"proxy\")\n .description(\n `Start OpenAI-compatible proxy server for Grok.\n Forwards ALL /v1/* requests to api.x.ai with your OAuth token injected.\n Any client (curl, OpenAI SDK, LangChain, etc.) can connect — no API key needed.\n Supports streaming (SSE), multipart (stt), and binary responses (tts).`,\n )\n .option(\"-p, --port <port>\", \"Port number\", String(PROXY_DEFAULT_PORT))\n .option(\"--host <host>\", \"Host to bind\", PROXY_DEFAULT_HOST)\n .action(async (opts: { port: string; host: string }) => {\n const tokens = loadTokens();\n if (!tokens?.accessToken) {\n log.error(\"Not logged in. Run `progrok login` first.\");\n process.exit(1);\n }\n\n try {\n await startProxy(parseInt(opts.port, 10), opts.host);\n await new Promise(() => {});\n } catch (err) {\n log.error((err as Error).message);\n process.exit(1);\n }\n });\n}\n","import express, { type Request, type Response } from \"express\";\nimport {\n XAI_API_BASE_URL,\n PROXY_DEFAULT_PORT,\n PROXY_DEFAULT_HOST,\n} from \"../auth/constants.js\";\nimport { getValidBearer } from \"../auth/token-store.js\";\nimport { log } from \"../utils/logger.js\";\n\nconst HOP_BY_HOP = new Set([\n \"host\",\n \"content-length\",\n \"connection\",\n \"keep-alive\",\n \"proxy-authenticate\",\n \"proxy-authorization\",\n \"te\",\n \"trailers\",\n \"transfer-encoding\",\n \"upgrade\",\n \"authorization\",\n]);\n\nfunction filterHeaders(\n headers: Record<string, string | string[] | undefined>,\n): Record<string, string> {\n const out: Record<string, string> = {};\n for (const [key, value] of Object.entries(headers)) {\n if (!HOP_BY_HOP.has(key.toLowerCase()) && value) {\n out[key] = Array.isArray(value) ? value[0] : value;\n }\n }\n return out;\n}\n\nexport function createProxyApp(): express.Application {\n const app = express();\n\n app.get(\"/health\", (_req: Request, res: Response) => {\n res.json({ status: \"ok\", upstream: \"xAI Grok\", proxy: \"progrok\" });\n });\n\n app.all(\"/v1/*\", (req: Request, res: Response) => {\n void handleProxy(req, res);\n });\n\n return app;\n}\n\nasync function handleProxy(req: Request, res: Response): Promise<void> {\n const relPath = req.path.replace(/^\\/v1/, \"\");\n\n let bearer: string;\n try {\n bearer = await getValidBearer();\n } catch (err) {\n res.status(401).json({\n error: { message: (err as Error).message, type: \"auth_error\" },\n });\n return;\n }\n\n const chunks: Buffer[] = [];\n for await (const chunk of req) {\n chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk as string));\n }\n const body = Buffer.concat(chunks);\n\n const qs = req.url.includes(\"?\") ? \"?\" + req.url.split(\"?\")[1] : \"\";\n const upstreamUrl = `${XAI_API_BASE_URL}${relPath}${qs}`;\n const fwdHeaders = filterHeaders(\n req.headers as Record<string, string>,\n );\n fwdHeaders[\"Authorization\"] = `Bearer ${bearer}`;\n\n try {\n const upstream = await fetch(upstreamUrl, {\n method: req.method,\n headers: fwdHeaders,\n body: body.length > 0 ? body : undefined,\n });\n\n res.status(upstream.status);\n\n for (const [key, value] of upstream.headers) {\n const lower = key.toLowerCase();\n if (\n !HOP_BY_HOP.has(lower) &&\n lower !== \"content-encoding\" &&\n lower !== \"content-length\"\n ) {\n res.setHeader(key, value);\n }\n }\n\n if (upstream.body) {\n const reader = (\n upstream.body as ReadableStream<Uint8Array>\n ).getReader();\n try {\n for (;;) {\n const { done, value } = await reader.read();\n if (done) break;\n res.write(value);\n }\n } catch {\n /* stream interrupted */\n }\n }\n res.end();\n } catch (err) {\n if (!res.headersSent) {\n res.status(502).json({\n error: {\n message: `Upstream error: ${(err as Error).message}`,\n type: \"upstream_error\",\n },\n });\n }\n }\n}\n\nexport async function startProxy(\n port = PROXY_DEFAULT_PORT,\n host = PROXY_DEFAULT_HOST,\n): Promise<void> {\n const app = createProxyApp();\n\n return new Promise((resolve, reject) => {\n const server = app.listen(port, host, () => {\n log.success(\"progrok proxy running\");\n log.info(` Listening: http://${host}:${port}/v1`);\n log.info(` Forwarding: ${XAI_API_BASE_URL}`);\n log.dim(\n \" Client auth: any bearer token (proxy injects your OAuth credential)\",\n );\n log.info(\"\\nPress Ctrl+C to stop.\\n\");\n resolve();\n });\n\n server.on(\"error\", (err: NodeJS.ErrnoException) => {\n reject(new Error(`Proxy failed to start: ${err.message}`));\n });\n\n process.on(\"SIGINT\", () => {\n log.info(\"\\nprogrok proxy stopped.\");\n server.close();\n process.exit(0);\n });\n });\n}\n","import { Command } from \"commander\";\nimport { startChat } from \"../chat/server.js\";\nimport { loadTokens } from \"../auth/token-store.js\";\nimport {\n CHAT_DEFAULT_PORT,\n PROXY_DEFAULT_HOST,\n} from \"../auth/constants.js\";\nimport { log } from \"../utils/logger.js\";\n\nexport function chatCommand(): Command {\n return new Command(\"chat\")\n .description(\n `Open Grok chat in your browser.\n Starts a web UI + proxy server on the same port.\n Features: sessions, markdown, code highlighting, tool results, model switching.\n Proxy is also available at the same port under /v1/*.`,\n )\n .option(\"-p, --port <port>\", \"Port number\", String(CHAT_DEFAULT_PORT))\n .option(\"--host <host>\", \"Host to bind\", PROXY_DEFAULT_HOST)\n .action(async (opts: { port: string; host: string }) => {\n const tokens = loadTokens();\n if (!tokens?.accessToken) {\n log.error(\"Not logged in. Run `progrok login` first.\");\n process.exit(1);\n }\n\n try {\n await startChat(parseInt(opts.port, 10), opts.host);\n await new Promise(() => {});\n } catch (err) {\n log.error((err as Error).message);\n process.exit(1);\n }\n });\n}\n","import express from \"express\";\nimport { join, dirname } from \"node:path\";\nimport { fileURLToPath } from \"node:url\";\nimport { createProxyApp } from \"../proxy/server.js\";\nimport { CHAT_DEFAULT_PORT, PROXY_DEFAULT_HOST } from \"../auth/constants.js\";\nimport { openUrl } from \"../utils/open-url.js\";\nimport { log } from \"../utils/logger.js\";\n\nconst __dirname = dirname(fileURLToPath(import.meta.url));\n\nexport async function startChat(\n port = CHAT_DEFAULT_PORT,\n host = PROXY_DEFAULT_HOST,\n): Promise<void> {\n const app = createProxyApp();\n\n const publicDir = join(__dirname, \"public\");\n app.use(express.static(publicDir));\n\n app.get(\"/\", (_req, res) => {\n res.sendFile(join(publicDir, \"index.html\"));\n });\n\n return new Promise((resolve, reject) => {\n const server = app.listen(port, host, () => {\n const url = `http://${host}:${port}`;\n log.success(`progrok chat running at ${url}`);\n log.dim(`Proxy also available at ${url}/v1`);\n log.info(\"Press Ctrl+C to stop.\\n\");\n void openUrl(url);\n resolve();\n });\n\n server.on(\"error\", (err: NodeJS.ErrnoException) => {\n reject(new Error(`Chat server failed: ${err.message}`));\n });\n\n process.on(\"SIGINT\", () => {\n log.info(\"\\nprogrok chat stopped.\");\n server.close();\n process.exit(0);\n });\n });\n}\n","import { Command } from \"commander\";\nimport { getValidBearer } from \"../auth/token-store.js\";\nimport { XAI_API_BASE_URL } from \"../auth/constants.js\";\nimport { log } from \"../utils/logger.js\";\n\ninterface LanguageModel {\n id: string;\n input_modalities?: string[];\n output_modalities?: string[];\n prompt_text_token_price?: number;\n completion_text_token_price?: number;\n aliases?: string[];\n}\n\ninterface SimpleModel {\n id: string;\n}\n\nfunction formatPrice(ticks: number | undefined): string {\n if (!ticks) return \"-\";\n // ticks = per-token price in 1e-10 USD; show per 1M tokens\n return `$${(ticks / 1e4).toFixed(2)}`;\n}\n\nexport function modelsCommand(): Command {\n return new Command(\"models\")\n .description(\"List available Grok models\")\n .option(\"--detail\", \"Show pricing and aliases from /v1/language-models\")\n .action(async (opts: { detail?: boolean }) => {\n try {\n const bearer = await getValidBearer();\n\n if (opts.detail) {\n const res = await fetch(`${XAI_API_BASE_URL}/language-models`, {\n headers: { Authorization: `Bearer ${bearer}` },\n });\n if (!res.ok) throw new Error(`HTTP ${res.status}`);\n\n const data = (await res.json()) as { models: LanguageModel[] };\n\n log.info(\"Grok Models (detailed)\\n\");\n for (const m of data.models) {\n const input = (m.input_modalities || []).join(\", \");\n const inPrice = formatPrice(m.prompt_text_token_price);\n const outPrice = formatPrice(m.completion_text_token_price);\n console.log(` ${m.id}`);\n console.log(` Input: ${input} | Price: ${inPrice}/1M in, ${outPrice}/1M out`);\n if (m.aliases && m.aliases.length > 0) {\n console.log(` Aliases: ${m.aliases.slice(0, 5).join(\", \")}${m.aliases.length > 5 ? ` (+${m.aliases.length - 5} more)` : \"\"}`);\n }\n console.log();\n }\n return;\n }\n\n const res = await fetch(`${XAI_API_BASE_URL}/models`, {\n headers: { Authorization: `Bearer ${bearer}` },\n });\n if (!res.ok) throw new Error(`HTTP ${res.status}`);\n\n const data = (await res.json()) as { data: SimpleModel[] };\n\n log.info(\"Available Grok models:\\n\");\n for (const m of data.data) {\n const tag = m.id.includes(\"reasoning\")\n ? \" [reasoning]\"\n : m.id.includes(\"non-reasoning\")\n ? \" [fast]\"\n : m.id.includes(\"build\") || m.id.includes(\"code\")\n ? \" [code]\"\n : m.id.includes(\"imagine-video\")\n ? \" [video]\"\n : m.id.includes(\"imagine\")\n ? \" [image]\"\n : \"\";\n console.log(` ${m.id}${tag}`);\n }\n log.dim(\"\\n Use --detail for pricing and aliases\");\n } catch (err) {\n log.error((err as Error).message);\n process.exit(1);\n }\n });\n}\n","import { Command } from \"commander\";\nimport { loadTokens } from \"../auth/token-store.js\";\nimport { log } from \"../utils/logger.js\";\n\nexport function statusCommand(): Command {\n return new Command(\"status\")\n .description(\"Show authentication status\")\n .action(() => {\n const tokens = loadTokens();\n if (!tokens?.accessToken) {\n log.info(\"Status: Not logged in\");\n log.dim(\"Run `progrok login` to authenticate.\");\n return;\n }\n\n const expired =\n tokens.expiresAt !== undefined && Date.now() >= tokens.expiresAt;\n const hasRefresh = !!tokens.refreshToken;\n\n log.info(\"Status: Logged in\");\n if (tokens.email) log.info(` Account: ${tokens.email}`);\n if (tokens.expiresAt) {\n const remaining = Math.max(\n 0,\n Math.floor((tokens.expiresAt - Date.now()) / 60000),\n );\n log.info(\n ` Token: ${expired ? \"expired\" : `valid (${remaining} min remaining)`}`,\n );\n }\n log.info(` Refresh: ${hasRefresh ? \"available\" : \"none\"}`);\n });\n}\n","import { Command } from \"commander\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { fileURLToPath } from \"node:url\";\nimport { dirname, join, relative } from \"node:path\";\n\n// tsup bundles to dist/index.js → one level up is the project root\nconst ROOT = join(dirname(fileURLToPath(import.meta.url)), \"..\");\nconst SKILL_PATH = join(ROOT, \"skills\", \"progrok\", \"SKILL.md\");\nconst PACKAGE_PATH = join(ROOT, \"package.json\");\n\nfunction readPackageVersion(): string {\n try {\n const pkg = JSON.parse(readFileSync(PACKAGE_PATH, \"utf-8\")) as {\n version?: string;\n };\n return pkg.version || \"?\";\n } catch {\n return \"?\";\n }\n}\n\nfunction readSkill(): string {\n if (!existsSync(SKILL_PATH)) {\n console.error(`packaged skill not found: ${SKILL_PATH}`);\n process.exit(5);\n }\n return readFileSync(SKILL_PATH, \"utf-8\");\n}\n\nexport function skillCommand(): Command {\n return new Command(\"skill\")\n .description(\n `Print the packaged progrok Markdown skill for agents.\n Designed to be piped into agent context or read programmatically.`,\n )\n .argument(\"[subcommand]\", '\"path\" to print the resolved skill file path')\n .option(\"--json\", \"Output as JSON wrapper around the Markdown skill\")\n .action((subcommand: string | undefined, opts: { json?: boolean }) => {\n if (subcommand === \"path\") {\n console.log(SKILL_PATH);\n return;\n }\n\n const content = readSkill();\n\n if (opts.json) {\n console.log(\n JSON.stringify(\n {\n name: \"progrok\",\n format: \"markdown-skill\",\n formatVersion: \"1\",\n packageVersion: readPackageVersion(),\n path: relative(ROOT, SKILL_PATH),\n source: \"package\",\n content,\n },\n null,\n 2,\n ),\n );\n return;\n }\n\n console.log(content.replace(/\\n$/, \"\"));\n });\n}\n","import { Command } from \"commander\";\nimport { readFileSync } from \"node:fs\";\nimport { fileURLToPath } from \"node:url\";\nimport { dirname, join } from \"node:path\";\nimport {\n XAI_API_BASE_URL,\n DEFAULT_MODEL,\n PROXY_DEFAULT_PORT,\n PROXY_DEFAULT_HOST,\n CHAT_DEFAULT_PORT,\n} from \"../auth/constants.js\";\n\nconst ROOT = join(dirname(fileURLToPath(import.meta.url)), \"..\");\n\nfunction readPackageVersion(): string {\n try {\n const pkg = JSON.parse(\n readFileSync(join(ROOT, \"package.json\"), \"utf-8\"),\n ) as { version?: string };\n return pkg.version || \"?\";\n } catch {\n return \"?\";\n }\n}\n\nexport function buildCapabilities() {\n return {\n ok: true,\n name: \"progrok\",\n version: readPackageVersion(),\n source: \"local\",\n upstream: XAI_API_BASE_URL,\n commands: [\n \"login\",\n \"logout\",\n \"proxy\",\n \"chat\",\n \"models\",\n \"status\",\n \"skill\",\n \"capabilities\",\n ],\n proxy: {\n host: PROXY_DEFAULT_HOST,\n port: PROXY_DEFAULT_PORT,\n baseUrl: `http://${PROXY_DEFAULT_HOST}:${PROXY_DEFAULT_PORT}/v1`,\n forwarding: \"all /v1/* paths — no whitelist\",\n },\n chat: {\n port: CHAT_DEFAULT_PORT,\n url: `http://${PROXY_DEFAULT_HOST}:${CHAT_DEFAULT_PORT}`,\n },\n defaults: {\n model: DEFAULT_MODEL,\n },\n endpoints: [\n {\n path: \"/v1/responses\",\n method: \"POST\",\n type: \"streaming\",\n description: \"Responses API — tools, reasoning, citations\",\n },\n {\n path: \"/v1/chat/completions\",\n method: \"POST\",\n type: \"streaming\",\n description: \"OpenAI-compatible chat\",\n },\n {\n path: \"/v1/models\",\n method: \"GET\",\n type: \"sync\",\n description: \"List models\",\n },\n {\n path: \"/v1/language-models\",\n method: \"GET\",\n type: \"sync\",\n description: \"Detailed models: pricing, aliases, modalities\",\n },\n {\n path: \"/v1/images/generations\",\n method: \"POST\",\n type: \"sync\",\n description: \"Image generation (returns URL)\",\n },\n {\n path: \"/v1/videos/generations\",\n method: \"POST\",\n type: \"async\",\n description: \"Video generation (returns request_id)\",\n },\n {\n path: \"/v1/videos/{id}\",\n method: \"GET\",\n type: \"poll\",\n description: \"Video status: pending → done\",\n },\n {\n path: \"/v1/tts\",\n method: \"POST\",\n type: \"binary\",\n description: \"Text-to-speech (MP3)\",\n },\n {\n path: \"/v1/stt\",\n method: \"POST\",\n type: \"multipart\",\n description: \"Speech-to-text\",\n },\n {\n path: \"/v1/embeddings\",\n method: \"POST\",\n type: \"sync\",\n description: \"Text embeddings\",\n },\n {\n path: \"/v1/*\",\n method: \"*\",\n type: \"passthrough\",\n description: \"All paths forwarded to api.x.ai\",\n },\n ],\n models: [\n {\n id: \"grok-4.3\",\n type: \"reasoning\",\n use: \"General chat, analysis, search\",\n input: [\"text\", \"image\"],\n context: \"1M tokens\",\n reasoning: {\n effort: [\"none\", \"low\", \"medium\", \"high\"],\n default: \"low\",\n note: \"none disables reasoning entirely for instant responses\",\n },\n structuredOutput: true,\n functionCalling: true,\n tools: [\"web_search\", \"x_search\", \"code_interpreter\", \"file_search\"],\n },\n {\n id: \"grok-4.20-0309-reasoning\",\n type: \"deep-reasoning\",\n use: \"Complex coding, planning\",\n input: [\"text\", \"image\"],\n context: \"128K standard, long-context above\",\n reasoning: {\n effort: [\"low\", \"medium\", \"high\"],\n default: \"low\",\n },\n structuredOutput: true,\n functionCalling: true,\n tools: [\"web_search\", \"x_search\"],\n },\n {\n id: \"grok-4.20-0309-non-reasoning\",\n type: \"fast\",\n use: \"Quick tasks, no thinking overhead\",\n input: [\"text\", \"image\"],\n context: \"128K standard, long-context above\",\n reasoning: false,\n structuredOutput: true,\n functionCalling: true,\n tools: [\"web_search\", \"x_search\"],\n },\n {\n id: \"grok-4.20-multi-agent-0309\",\n type: \"multi-agent\",\n use: \"Deep research (4 or 16 parallel agents)\",\n input: [\"text\", \"image\"],\n context: \"128K standard\",\n reasoning: {\n effort: [\"low\", \"medium\", \"high\", \"xhigh\"],\n default: \"medium\",\n note: \"Controls agent count, not reasoning depth. low/medium=4 agents, high/xhigh=16 agents.\",\n },\n structuredOutput: true,\n functionCalling: true,\n tools: [\"web_search\", \"x_search\"],\n multiAgent: {\n agentCount: [4, 16],\n effortToAgents: { low: 4, medium: 4, high: 16, xhigh: 16 },\n perAgentConfig: false,\n },\n },\n {\n id: \"grok-build-0.1\",\n type: \"code\",\n use: \"Code generation, agentic coding\",\n input: [\"text\", \"image\"],\n context: \"256K tokens\",\n reasoning: {\n effort: [\"low\", \"medium\", \"high\"],\n default: \"low\",\n },\n structuredOutput: false,\n functionCalling: false,\n tools: [],\n },\n {\n id: \"grok-imagine-image\",\n type: \"image\",\n use: \"Fast image gen\",\n input: [\"text\"],\n reasoning: false,\n structuredOutput: false,\n functionCalling: false,\n tools: [],\n },\n {\n id: \"grok-imagine-image-quality\",\n type: \"image-hq\",\n use: \"High-quality image gen\",\n input: [\"text\"],\n reasoning: false,\n structuredOutput: false,\n functionCalling: false,\n tools: [],\n },\n {\n id: \"grok-imagine-video\",\n type: \"video\",\n use: \"Video gen (async)\",\n input: [\"text\"],\n reasoning: false,\n structuredOutput: false,\n functionCalling: false,\n tools: [],\n },\n ],\n tools: [\n { type: \"web_search\", description: \"Web search with citations\" },\n { type: \"x_search\", description: \"X (Twitter) search with citations\" },\n {\n type: \"code_interpreter\",\n description: \"Server-side code execution\",\n },\n {\n type: \"file_search\",\n description: \"Vector store search (needs vector_store_ids)\",\n },\n { type: \"function\", description: \"Custom function calling\" },\n ],\n guidance: {\n auth: \"Run progrok login once. No API key needed — OAuth only.\",\n proxy:\n \"progrok proxy forwards all /v1/* paths. Set OPENAI_BASE_URL=http://127.0.0.1:18645/v1 and OPENAI_API_KEY=anything.\",\n streaming:\n \"Use stream:true for responses/chat. Proxy passes through SSE events verbatim.\",\n video:\n \"Video gen is async: POST /v1/videos/generations → poll GET /v1/videos/{id} until done.\",\n },\n };\n}\n\nfunction printText(cap: ReturnType<typeof buildCapabilities>): void {\n console.log(`progrok capabilities (${cap.source})`);\n console.log(`version: ${cap.version}`);\n console.log(`upstream: ${cap.upstream}`);\n console.log(\"\");\n console.log(`proxy: ${cap.proxy.baseUrl}`);\n console.log(`chat: ${cap.chat.url}`);\n console.log(`model: ${cap.defaults.model}`);\n console.log(\"\");\n console.log(\"endpoints:\");\n for (const ep of cap.endpoints) {\n const label = ` ${ep.method.padEnd(5)} ${ep.path.padEnd(28)}`;\n console.log(`${label} ${ep.description}`);\n }\n console.log(\"\");\n console.log(\"models:\");\n for (const m of cap.models) {\n console.log(` ${m.id.padEnd(38)} ${m.use}`);\n }\n console.log(\"\");\n console.log(\"tools:\");\n for (const t of cap.tools) {\n console.log(` ${t.type.padEnd(20)} ${t.description}`);\n }\n console.log(\"\");\n console.log(`commands: ${cap.commands.join(\", \")}`);\n}\n\nexport function capabilitiesCommand(): Command {\n return new Command(\"capabilities\")\n .description(\"Print agent-friendly capability metadata.\")\n .option(\"--json\", \"Output as JSON\")\n .action((opts: { json?: boolean }) => {\n const cap = buildCapabilities();\n if (opts.json) {\n console.log(JSON.stringify(cap, null, 2));\n } else {\n printText(cap);\n }\n });\n}\n","import {\n readFileSync,\n writeFileSync,\n existsSync,\n mkdirSync,\n} from \"node:fs\";\nimport { CONFIG_DIR, CONFIG_FILE } from \"../auth/constants.js\";\n\ninterface AppConfig {\n onboarding?: {\n starPrompted?: boolean;\n };\n}\n\nfunction ensureConfigDir(): void {\n if (!existsSync(CONFIG_DIR)) {\n mkdirSync(CONFIG_DIR, { recursive: true, mode: 0o700 });\n }\n}\n\nexport function readConfig(): AppConfig {\n try {\n return JSON.parse(readFileSync(CONFIG_FILE, \"utf8\")) as AppConfig;\n } catch {\n return {};\n }\n}\n\nexport function writeConfig(config: AppConfig): void {\n ensureConfigDir();\n writeFileSync(CONFIG_FILE, JSON.stringify(config, null, 2), { mode: 0o600 });\n}\n","import { GITHUB_URL } from \"../auth/constants.js\";\nimport { readConfig, writeConfig } from \"./config.js\";\nimport { log } from \"./logger.js\";\n\nexport async function showStarPrompt(): Promise<void> {\n const config = readConfig();\n if (config.onboarding?.starPrompted) return;\n\n log.dim(\"─\".repeat(50));\n log.info(\"⭐ If progrok is useful, star the repo!\");\n log.dim(` ${GITHUB_URL}`);\n log.dim(\"─\".repeat(50) + \"\\n\");\n\n writeConfig({\n ...config,\n onboarding: { ...config.onboarding, starPrompted: true },\n });\n}\n"],"mappings":"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","names":["Command","Command","Command","Command","Command","Command","express","join","join","express","Command","Command","Command","res","data","Command","Command","Command","existsSync","readFileSync","fileURLToPath","dirname","join","subcommand","Command","readFileSync","fileURLToPath","dirname","join","ROOT","join","dirname","fileURLToPath","readPackageVersion","readFileSync","Command","readFileSync","writeFileSync","existsSync","mkdirSync","ensureConfigDir","existsSync","mkdirSync","readFileSync","writeFileSync","readFileSync","fileURLToPath","dirname","join","__dirname","Command"]}