anypick 1.0.0 → 1.1.0

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 (1231) hide show
  1. package/README.md +16 -582
  2. package/bin/anypick.js +249 -0
  3. package/package.json +14 -106
  4. package/dist/adapters.d.ts +0 -4
  5. package/dist/adapters.d.ts.map +0 -1
  6. package/dist/adapters.js +0 -2
  7. package/dist/catalog/model-fetch.d.ts +0 -34
  8. package/dist/catalog/model-fetch.d.ts.map +0 -1
  9. package/dist/catalog/model-fetch.js +0 -99
  10. package/dist/catalog/model-fetch.js.map +0 -1
  11. package/dist/catalog/providers.d.ts +0 -42
  12. package/dist/catalog/providers.d.ts.map +0 -1
  13. package/dist/catalog/providers.js +0 -424
  14. package/dist/catalog/providers.js.map +0 -1
  15. package/dist/cli/bootstrap.d.ts +0 -3
  16. package/dist/cli/bootstrap.d.ts.map +0 -1
  17. package/dist/cli/bootstrap.js +0 -78
  18. package/dist/cli/bootstrap.js.map +0 -1
  19. package/dist/cli/commands.d.ts +0 -29
  20. package/dist/cli/commands.d.ts.map +0 -1
  21. package/dist/cli/commands.js +0 -1043
  22. package/dist/cli/commands.js.map +0 -1
  23. package/dist/cli/completion.d.ts +0 -6
  24. package/dist/cli/completion.d.ts.map +0 -1
  25. package/dist/cli/completion.js +0 -202
  26. package/dist/cli/completion.js.map +0 -1
  27. package/dist/cli/errors.d.ts +0 -20
  28. package/dist/cli/errors.d.ts.map +0 -1
  29. package/dist/cli/errors.js +0 -47
  30. package/dist/cli/errors.js.map +0 -1
  31. package/dist/cli/format.d.ts +0 -6
  32. package/dist/cli/format.d.ts.map +0 -1
  33. package/dist/cli/format.js +0 -75
  34. package/dist/cli/format.js.map +0 -1
  35. package/dist/cli/help.d.ts +0 -6
  36. package/dist/cli/help.d.ts.map +0 -1
  37. package/dist/cli/help.js +0 -66
  38. package/dist/cli/help.js.map +0 -1
  39. package/dist/cli/interactive-accounts.d.ts +0 -3
  40. package/dist/cli/interactive-accounts.d.ts.map +0 -1
  41. package/dist/cli/interactive-accounts.js +0 -86
  42. package/dist/cli/interactive-accounts.js.map +0 -1
  43. package/dist/cli/interactive-maintenance.d.ts +0 -4
  44. package/dist/cli/interactive-maintenance.d.ts.map +0 -1
  45. package/dist/cli/interactive-maintenance.js +0 -30
  46. package/dist/cli/interactive-maintenance.js.map +0 -1
  47. package/dist/cli/interactive.d.ts +0 -14
  48. package/dist/cli/interactive.d.ts.map +0 -1
  49. package/dist/cli/interactive.js +0 -242
  50. package/dist/cli/interactive.js.map +0 -1
  51. package/dist/cli/launch-client.d.ts +0 -18
  52. package/dist/cli/launch-client.d.ts.map +0 -1
  53. package/dist/cli/launch-client.js +0 -117
  54. package/dist/cli/launch-client.js.map +0 -1
  55. package/dist/cli/launcher-model.d.ts +0 -64
  56. package/dist/cli/launcher-model.d.ts.map +0 -1
  57. package/dist/cli/launcher-model.js +0 -200
  58. package/dist/cli/launcher-model.js.map +0 -1
  59. package/dist/cli/launcher-render.d.ts +0 -22
  60. package/dist/cli/launcher-render.d.ts.map +0 -1
  61. package/dist/cli/launcher-render.js +0 -113
  62. package/dist/cli/launcher-render.js.map +0 -1
  63. package/dist/cli/launcher.d.ts +0 -27
  64. package/dist/cli/launcher.d.ts.map +0 -1
  65. package/dist/cli/launcher.js +0 -93
  66. package/dist/cli/launcher.js.map +0 -1
  67. package/dist/cli/local-health.d.ts +0 -17
  68. package/dist/cli/local-health.d.ts.map +0 -1
  69. package/dist/cli/local-health.js +0 -31
  70. package/dist/cli/local-health.js.map +0 -1
  71. package/dist/cli/plugin-commands.d.ts +0 -4
  72. package/dist/cli/plugin-commands.d.ts.map +0 -1
  73. package/dist/cli/plugin-commands.js +0 -160
  74. package/dist/cli/plugin-commands.js.map +0 -1
  75. package/dist/cli/primary.d.ts +0 -18
  76. package/dist/cli/primary.d.ts.map +0 -1
  77. package/dist/cli/primary.js +0 -593
  78. package/dist/cli/primary.js.map +0 -1
  79. package/dist/cli/render-util.d.ts +0 -24
  80. package/dist/cli/render-util.d.ts.map +0 -1
  81. package/dist/cli/render-util.js +0 -58
  82. package/dist/cli/render-util.js.map +0 -1
  83. package/dist/cli/ux.d.ts +0 -43
  84. package/dist/cli/ux.d.ts.map +0 -1
  85. package/dist/cli/ux.js +0 -114
  86. package/dist/cli/ux.js.map +0 -1
  87. package/dist/cli.d.ts +0 -3
  88. package/dist/cli.d.ts.map +0 -1
  89. package/dist/cli.js +0 -35
  90. package/dist/cli.js.map +0 -1
  91. package/dist/clients/claude-client-apply.d.ts +0 -8
  92. package/dist/clients/claude-client-apply.d.ts.map +0 -1
  93. package/dist/clients/claude-client-apply.js +0 -108
  94. package/dist/clients/claude-client-apply.js.map +0 -1
  95. package/dist/clients/claude-code.d.ts +0 -5
  96. package/dist/clients/claude-code.d.ts.map +0 -1
  97. package/dist/clients/claude-code.js +0 -189
  98. package/dist/clients/claude-code.js.map +0 -1
  99. package/dist/clients/claude-settings-guard.d.ts +0 -18
  100. package/dist/clients/claude-settings-guard.d.ts.map +0 -1
  101. package/dist/clients/codex-desktop-catalog.d.ts +0 -67
  102. package/dist/clients/codex-desktop-catalog.d.ts.map +0 -1
  103. package/dist/clients/codex-desktop-catalog.js +0 -212
  104. package/dist/clients/codex-desktop-catalog.js.map +0 -1
  105. package/dist/clients/codex.d.ts +0 -181
  106. package/dist/clients/codex.d.ts.map +0 -1
  107. package/dist/clients/codex.js +0 -783
  108. package/dist/clients/codex.js.map +0 -1
  109. package/dist/clients/env-files.d.ts +0 -14
  110. package/dist/clients/env-files.d.ts.map +0 -1
  111. package/dist/clients/env-files.js +0 -50
  112. package/dist/clients/env-files.js.map +0 -1
  113. package/dist/clients/gemini-client-utils.d.ts +0 -4
  114. package/dist/clients/gemini-client-utils.d.ts.map +0 -1
  115. package/dist/clients/gemini-client-utils.js +0 -33
  116. package/dist/clients/gemini-client-utils.js.map +0 -1
  117. package/dist/clients/gemini.d.ts +0 -16
  118. package/dist/clients/gemini.d.ts.map +0 -1
  119. package/dist/clients/gemini.js +0 -233
  120. package/dist/clients/gemini.js.map +0 -1
  121. package/dist/clients/index.d.ts +0 -14
  122. package/dist/clients/index.d.ts.map +0 -1
  123. package/dist/clients/index.js +0 -18
  124. package/dist/clients/index.js.map +0 -1
  125. package/dist/clients/isolation.d.ts +0 -28
  126. package/dist/clients/isolation.d.ts.map +0 -1
  127. package/dist/clients/isolation.js +0 -131
  128. package/dist/clients/isolation.js.map +0 -1
  129. package/dist/clients/kiro.d.ts +0 -10
  130. package/dist/clients/kiro.d.ts.map +0 -1
  131. package/dist/clients/kiro.js +0 -168
  132. package/dist/clients/kiro.js.map +0 -1
  133. package/dist/clients/model-roles.d.ts +0 -58
  134. package/dist/clients/model-roles.d.ts.map +0 -1
  135. package/dist/clients/model-roles.js +0 -139
  136. package/dist/clients/model-roles.js.map +0 -1
  137. package/dist/clients/registry.d.ts +0 -7
  138. package/dist/clients/registry.d.ts.map +0 -1
  139. package/dist/clients/registry.js +0 -16
  140. package/dist/clients/registry.js.map +0 -1
  141. package/dist/clients/resolve.d.ts +0 -27
  142. package/dist/clients/resolve.d.ts.map +0 -1
  143. package/dist/clients/resolve.js +0 -49
  144. package/dist/clients/resolve.js.map +0 -1
  145. package/dist/core/account-codec.d.ts +0 -32
  146. package/dist/core/account-codec.d.ts.map +0 -1
  147. package/dist/core/account-codec.js +0 -134
  148. package/dist/core/account-codec.js.map +0 -1
  149. package/dist/core/account-transfer.d.ts +0 -20
  150. package/dist/core/account-transfer.d.ts.map +0 -1
  151. package/dist/core/account-transfer.js +0 -136
  152. package/dist/core/account-transfer.js.map +0 -1
  153. package/dist/core/activation-executor.d.ts +0 -72
  154. package/dist/core/activation-executor.d.ts.map +0 -1
  155. package/dist/core/activation-executor.js +0 -690
  156. package/dist/core/activation-executor.js.map +0 -1
  157. package/dist/core/activation-models.d.ts +0 -6
  158. package/dist/core/activation-models.d.ts.map +0 -1
  159. package/dist/core/activation-models.js +0 -33
  160. package/dist/core/activation-models.js.map +0 -1
  161. package/dist/core/activation-planner.d.ts +0 -38
  162. package/dist/core/activation-planner.d.ts.map +0 -1
  163. package/dist/core/activation-planner.js +0 -248
  164. package/dist/core/activation-planner.js.map +0 -1
  165. package/dist/core/activation-protocol.d.ts +0 -3
  166. package/dist/core/activation-protocol.d.ts.map +0 -1
  167. package/dist/core/activation-protocol.js +0 -9
  168. package/dist/core/activation-protocol.js.map +0 -1
  169. package/dist/core/activation-transport.d.ts +0 -15
  170. package/dist/core/activation-transport.d.ts.map +0 -1
  171. package/dist/core/activation-transport.js +0 -23
  172. package/dist/core/activation-transport.js.map +0 -1
  173. package/dist/core/app.d.ts +0 -149
  174. package/dist/core/app.d.ts.map +0 -1
  175. package/dist/core/app.js +0 -372
  176. package/dist/core/app.js.map +0 -1
  177. package/dist/core/binding-service.d.ts +0 -93
  178. package/dist/core/binding-service.d.ts.map +0 -1
  179. package/dist/core/binding-service.js +0 -281
  180. package/dist/core/binding-service.js.map +0 -1
  181. package/dist/core/binding-store.d.ts +0 -23
  182. package/dist/core/binding-store.d.ts.map +0 -1
  183. package/dist/core/binding-store.js +0 -154
  184. package/dist/core/binding-store.js.map +0 -1
  185. package/dist/core/brand.d.ts +0 -18
  186. package/dist/core/brand.d.ts.map +0 -1
  187. package/dist/core/brand.js +0 -22
  188. package/dist/core/brand.js.map +0 -1
  189. package/dist/core/capabilities.d.ts +0 -30
  190. package/dist/core/capabilities.d.ts.map +0 -1
  191. package/dist/core/capabilities.js +0 -27
  192. package/dist/core/capabilities.js.map +0 -1
  193. package/dist/core/client-state-store.d.ts +0 -17
  194. package/dist/core/client-state-store.d.ts.map +0 -1
  195. package/dist/core/client-state-store.js +0 -47
  196. package/dist/core/client-state-store.js.map +0 -1
  197. package/dist/core/codec/account.d.ts +0 -52
  198. package/dist/core/codec/account.d.ts.map +0 -1
  199. package/dist/core/codec/account.js +0 -69
  200. package/dist/core/codec/account.js.map +0 -1
  201. package/dist/core/codec/bindings.d.ts +0 -38
  202. package/dist/core/codec/bindings.d.ts.map +0 -1
  203. package/dist/core/codec/bindings.js +0 -79
  204. package/dist/core/codec/bindings.js.map +0 -1
  205. package/dist/core/codec/operations.d.ts +0 -36
  206. package/dist/core/codec/operations.d.ts.map +0 -1
  207. package/dist/core/codec/operations.js +0 -82
  208. package/dist/core/codec/operations.js.map +0 -1
  209. package/dist/core/codec/primitives.d.ts +0 -59
  210. package/dist/core/codec/primitives.d.ts.map +0 -1
  211. package/dist/core/codec/primitives.js +0 -123
  212. package/dist/core/codec/primitives.js.map +0 -1
  213. package/dist/core/codec/proxy-hub.d.ts +0 -43
  214. package/dist/core/codec/proxy-hub.d.ts.map +0 -1
  215. package/dist/core/codec/proxy-hub.js +0 -69
  216. package/dist/core/codec/proxy-hub.js.map +0 -1
  217. package/dist/core/codec/runtime.d.ts +0 -41
  218. package/dist/core/codec/runtime.d.ts.map +0 -1
  219. package/dist/core/codec/runtime.js +0 -66
  220. package/dist/core/codec/runtime.js.map +0 -1
  221. package/dist/core/codec.d.ts +0 -43
  222. package/dist/core/codec.d.ts.map +0 -1
  223. package/dist/core/codec.js +0 -69
  224. package/dist/core/codec.js.map +0 -1
  225. package/dist/core/codex-live-config.d.ts +0 -92
  226. package/dist/core/codex-live-config.d.ts.map +0 -1
  227. package/dist/core/codex-live-config.js +0 -263
  228. package/dist/core/codex-live-config.js.map +0 -1
  229. package/dist/core/config-service.d.ts +0 -35
  230. package/dist/core/config-service.d.ts.map +0 -1
  231. package/dist/core/config-service.js +0 -87
  232. package/dist/core/config-service.js.map +0 -1
  233. package/dist/core/config.d.ts +0 -14
  234. package/dist/core/config.d.ts.map +0 -1
  235. package/dist/core/config.js +0 -45
  236. package/dist/core/config.js.map +0 -1
  237. package/dist/core/db-schema.d.ts +0 -30
  238. package/dist/core/db-schema.d.ts.map +0 -1
  239. package/dist/core/db-schema.js +0 -278
  240. package/dist/core/db-schema.js.map +0 -1
  241. package/dist/core/db.d.ts +0 -72
  242. package/dist/core/db.d.ts.map +0 -1
  243. package/dist/core/db.js +0 -192
  244. package/dist/core/db.js.map +0 -1
  245. package/dist/core/doctor-fixes.d.ts +0 -3
  246. package/dist/core/doctor-fixes.d.ts.map +0 -1
  247. package/dist/core/doctor-fixes.js +0 -102
  248. package/dist/core/doctor-fixes.js.map +0 -1
  249. package/dist/core/doctor-format.d.ts +0 -10
  250. package/dist/core/doctor-format.d.ts.map +0 -1
  251. package/dist/core/doctor-format.js +0 -45
  252. package/dist/core/doctor-format.js.map +0 -1
  253. package/dist/core/doctor-report.d.ts +0 -3
  254. package/dist/core/doctor-report.d.ts.map +0 -1
  255. package/dist/core/doctor-report.js +0 -174
  256. package/dist/core/doctor-report.js.map +0 -1
  257. package/dist/core/doctor-scan.d.ts +0 -7
  258. package/dist/core/doctor-scan.d.ts.map +0 -1
  259. package/dist/core/doctor-scan.js +0 -139
  260. package/dist/core/doctor-scan.js.map +0 -1
  261. package/dist/core/doctor-types.d.ts +0 -89
  262. package/dist/core/doctor-types.d.ts.map +0 -1
  263. package/dist/core/doctor-types.js +0 -14
  264. package/dist/core/doctor-types.js.map +0 -1
  265. package/dist/core/doctor-utils.d.ts +0 -3
  266. package/dist/core/doctor-utils.d.ts.map +0 -1
  267. package/dist/core/doctor-utils.js +0 -36
  268. package/dist/core/doctor-utils.js.map +0 -1
  269. package/dist/core/doctor.d.ts +0 -14
  270. package/dist/core/doctor.d.ts.map +0 -1
  271. package/dist/core/doctor.js +0 -127
  272. package/dist/core/doctor.js.map +0 -1
  273. package/dist/core/events.d.ts +0 -58
  274. package/dist/core/events.d.ts.map +0 -1
  275. package/dist/core/events.js +0 -88
  276. package/dist/core/events.js.map +0 -1
  277. package/dist/core/journal.d.ts +0 -23
  278. package/dist/core/journal.d.ts.map +0 -1
  279. package/dist/core/journal.js +0 -93
  280. package/dist/core/journal.js.map +0 -1
  281. package/dist/core/lease-store.d.ts +0 -22
  282. package/dist/core/lease-store.d.ts.map +0 -1
  283. package/dist/core/lease-store.js +0 -81
  284. package/dist/core/lease-store.js.map +0 -1
  285. package/dist/core/migrate-bindings.d.ts +0 -10
  286. package/dist/core/migrate-bindings.d.ts.map +0 -1
  287. package/dist/core/migrate-bindings.js +0 -98
  288. package/dist/core/migrate-bindings.js.map +0 -1
  289. package/dist/core/migrate-fs.d.ts +0 -11
  290. package/dist/core/migrate-fs.d.ts.map +0 -1
  291. package/dist/core/migrate-fs.js +0 -184
  292. package/dist/core/migrate-fs.js.map +0 -1
  293. package/dist/core/model-cache-store.d.ts +0 -27
  294. package/dist/core/model-cache-store.d.ts.map +0 -1
  295. package/dist/core/model-cache-store.js +0 -50
  296. package/dist/core/model-cache-store.js.map +0 -1
  297. package/dist/core/model-discovery.d.ts +0 -66
  298. package/dist/core/model-discovery.d.ts.map +0 -1
  299. package/dist/core/model-discovery.js +0 -127
  300. package/dist/core/model-discovery.js.map +0 -1
  301. package/dist/core/model-policy.d.ts +0 -40
  302. package/dist/core/model-policy.d.ts.map +0 -1
  303. package/dist/core/model-policy.js +0 -77
  304. package/dist/core/model-policy.js.map +0 -1
  305. package/dist/core/model-roles.d.ts +0 -9
  306. package/dist/core/model-roles.d.ts.map +0 -1
  307. package/dist/core/model-roles.js +0 -20
  308. package/dist/core/model-roles.js.map +0 -1
  309. package/dist/core/mutation-lock.d.ts +0 -31
  310. package/dist/core/mutation-lock.d.ts.map +0 -1
  311. package/dist/core/mutation-lock.js +0 -69
  312. package/dist/core/mutation-lock.js.map +0 -1
  313. package/dist/core/paths.d.ts +0 -49
  314. package/dist/core/paths.d.ts.map +0 -1
  315. package/dist/core/paths.js +0 -110
  316. package/dist/core/paths.js.map +0 -1
  317. package/dist/core/plugin-loader.d.ts +0 -40
  318. package/dist/core/plugin-loader.d.ts.map +0 -1
  319. package/dist/core/plugin-loader.js +0 -184
  320. package/dist/core/plugin-loader.js.map +0 -1
  321. package/dist/core/plugin-service.d.ts +0 -32
  322. package/dist/core/plugin-service.d.ts.map +0 -1
  323. package/dist/core/plugin-service.js +0 -110
  324. package/dist/core/plugin-service.js.map +0 -1
  325. package/dist/core/plugin-store.d.ts +0 -18
  326. package/dist/core/plugin-store.d.ts.map +0 -1
  327. package/dist/core/plugin-store.js +0 -50
  328. package/dist/core/plugin-store.js.map +0 -1
  329. package/dist/core/pool-store.d.ts +0 -44
  330. package/dist/core/pool-store.d.ts.map +0 -1
  331. package/dist/core/pool-store.js +0 -198
  332. package/dist/core/pool-store.js.map +0 -1
  333. package/dist/core/preset-store.d.ts +0 -29
  334. package/dist/core/preset-store.d.ts.map +0 -1
  335. package/dist/core/preset-store.js +0 -105
  336. package/dist/core/preset-store.js.map +0 -1
  337. package/dist/core/profile-service.d.ts +0 -50
  338. package/dist/core/profile-service.d.ts.map +0 -1
  339. package/dist/core/profile-service.js +0 -149
  340. package/dist/core/profile-service.js.map +0 -1
  341. package/dist/core/profile-store.d.ts +0 -20
  342. package/dist/core/profile-store.d.ts.map +0 -1
  343. package/dist/core/profile-store.js +0 -92
  344. package/dist/core/profile-store.js.map +0 -1
  345. package/dist/core/profile-synth.d.ts +0 -24
  346. package/dist/core/profile-synth.d.ts.map +0 -1
  347. package/dist/core/profile-synth.js +0 -30
  348. package/dist/core/profile-synth.js.map +0 -1
  349. package/dist/core/project-root.d.ts +0 -7
  350. package/dist/core/project-root.d.ts.map +0 -1
  351. package/dist/core/project-root.js +0 -23
  352. package/dist/core/project-root.js.map +0 -1
  353. package/dist/core/proxy-hub-cli.d.ts +0 -3
  354. package/dist/core/proxy-hub-cli.d.ts.map +0 -1
  355. package/dist/core/proxy-hub-cli.js +0 -80
  356. package/dist/core/proxy-hub-cli.js.map +0 -1
  357. package/dist/core/proxy-hub-routes.d.ts +0 -22
  358. package/dist/core/proxy-hub-routes.d.ts.map +0 -1
  359. package/dist/core/proxy-hub-routes.js +0 -92
  360. package/dist/core/proxy-hub-routes.js.map +0 -1
  361. package/dist/core/proxy-hub-server.d.ts +0 -59
  362. package/dist/core/proxy-hub-server.d.ts.map +0 -1
  363. package/dist/core/proxy-hub-server.js +0 -409
  364. package/dist/core/proxy-hub-server.js.map +0 -1
  365. package/dist/core/proxy-hub-service.d.ts +0 -97
  366. package/dist/core/proxy-hub-service.d.ts.map +0 -1
  367. package/dist/core/proxy-hub-service.js +0 -553
  368. package/dist/core/proxy-hub-service.js.map +0 -1
  369. package/dist/core/proxy-hub-store.d.ts +0 -28
  370. package/dist/core/proxy-hub-store.d.ts.map +0 -1
  371. package/dist/core/proxy-hub-store.js +0 -152
  372. package/dist/core/proxy-hub-store.js.map +0 -1
  373. package/dist/core/proxy-lifecycle.d.ts +0 -26
  374. package/dist/core/proxy-lifecycle.d.ts.map +0 -1
  375. package/dist/core/proxy-lifecycle.js +0 -33
  376. package/dist/core/proxy-lifecycle.js.map +0 -1
  377. package/dist/core/proxy-ports.d.ts +0 -50
  378. package/dist/core/proxy-ports.d.ts.map +0 -1
  379. package/dist/core/proxy-ports.js +0 -86
  380. package/dist/core/proxy-ports.js.map +0 -1
  381. package/dist/core/proxy-service.d.ts +0 -184
  382. package/dist/core/proxy-service.d.ts.map +0 -1
  383. package/dist/core/proxy-service.js +0 -860
  384. package/dist/core/proxy-service.js.map +0 -1
  385. package/dist/core/quota-guard-policy.d.ts +0 -8
  386. package/dist/core/quota-guard-policy.d.ts.map +0 -1
  387. package/dist/core/quota-guard-policy.js +0 -21
  388. package/dist/core/quota-guard-policy.js.map +0 -1
  389. package/dist/core/realign-proxy-clients.d.ts +0 -19
  390. package/dist/core/realign-proxy-clients.d.ts.map +0 -1
  391. package/dist/core/realign-proxy-clients.js +0 -40
  392. package/dist/core/realign-proxy-clients.js.map +0 -1
  393. package/dist/core/refs.d.ts +0 -84
  394. package/dist/core/refs.d.ts.map +0 -1
  395. package/dist/core/refs.js +0 -250
  396. package/dist/core/refs.js.map +0 -1
  397. package/dist/core/registry.d.ts +0 -46
  398. package/dist/core/registry.d.ts.map +0 -1
  399. package/dist/core/registry.js +0 -70
  400. package/dist/core/registry.js.map +0 -1
  401. package/dist/core/resolve-source.d.ts +0 -54
  402. package/dist/core/resolve-source.d.ts.map +0 -1
  403. package/dist/core/resolve-source.js +0 -148
  404. package/dist/core/resolve-source.js.map +0 -1
  405. package/dist/core/runtime-service.d.ts +0 -158
  406. package/dist/core/runtime-service.d.ts.map +0 -1
  407. package/dist/core/runtime-service.js +0 -422
  408. package/dist/core/runtime-service.js.map +0 -1
  409. package/dist/core/service.d.ts +0 -200
  410. package/dist/core/service.d.ts.map +0 -1
  411. package/dist/core/service.js +0 -643
  412. package/dist/core/service.js.map +0 -1
  413. package/dist/core/store-snapshot.d.ts +0 -10
  414. package/dist/core/store-snapshot.d.ts.map +0 -1
  415. package/dist/core/store-snapshot.js +0 -79
  416. package/dist/core/store-snapshot.js.map +0 -1
  417. package/dist/core/store.d.ts +0 -68
  418. package/dist/core/store.d.ts.map +0 -1
  419. package/dist/core/store.js +0 -159
  420. package/dist/core/store.js.map +0 -1
  421. package/dist/core/tray-runtime.d.ts +0 -15
  422. package/dist/core/tray-runtime.d.ts.map +0 -1
  423. package/dist/core/tray-runtime.js +0 -33
  424. package/dist/core/tray-runtime.js.map +0 -1
  425. package/dist/core/tray-settings-service.d.ts +0 -7
  426. package/dist/core/tray-settings-service.d.ts.map +0 -1
  427. package/dist/core/tray-settings-service.js +0 -24
  428. package/dist/core/tray-settings-service.js.map +0 -1
  429. package/dist/core/update.d.ts +0 -26
  430. package/dist/core/update.d.ts.map +0 -1
  431. package/dist/core/update.js +0 -128
  432. package/dist/core/update.js.map +0 -1
  433. package/dist/index.d.ts +0 -12
  434. package/dist/index.d.ts.map +0 -1
  435. package/dist/index.js +0 -7
  436. package/dist/network/egress/allowlist.d.ts +0 -2
  437. package/dist/network/egress/allowlist.d.ts.map +0 -1
  438. package/dist/network/egress/allowlist.js +0 -14
  439. package/dist/network/egress/allowlist.js.map +0 -1
  440. package/dist/network/egress/direct.d.ts +0 -17
  441. package/dist/network/egress/direct.d.ts.map +0 -1
  442. package/dist/network/egress/direct.js +0 -28
  443. package/dist/network/egress/direct.js.map +0 -1
  444. package/dist/network/egress/errors.d.ts +0 -4
  445. package/dist/network/egress/errors.d.ts.map +0 -1
  446. package/dist/network/egress/errors.js +0 -8
  447. package/dist/network/egress/errors.js.map +0 -1
  448. package/dist/network/egress/index.d.ts +0 -6
  449. package/dist/network/egress/index.d.ts.map +0 -1
  450. package/dist/network/egress/index.js +0 -11
  451. package/dist/network/egress/index.js.map +0 -1
  452. package/dist/network/egress/types.d.ts +0 -16
  453. package/dist/network/egress/types.d.ts.map +0 -1
  454. package/dist/presentation/client-name.d.ts +0 -14
  455. package/dist/presentation/client-name.d.ts.map +0 -1
  456. package/dist/presentation/client-name.js +0 -22
  457. package/dist/presentation/client-name.js.map +0 -1
  458. package/dist/presentation/layout.d.ts +0 -7
  459. package/dist/presentation/layout.d.ts.map +0 -1
  460. package/dist/presentation/layout.js +0 -10
  461. package/dist/presentation/layout.js.map +0 -1
  462. package/dist/providers/auth-fingerprint.d.ts +0 -56
  463. package/dist/providers/auth-fingerprint.d.ts.map +0 -1
  464. package/dist/providers/auth-fingerprint.js +0 -163
  465. package/dist/providers/auth-fingerprint.js.map +0 -1
  466. package/dist/providers/claude.d.ts +0 -43
  467. package/dist/providers/claude.d.ts.map +0 -1
  468. package/dist/providers/claude.js +0 -191
  469. package/dist/providers/claude.js.map +0 -1
  470. package/dist/providers/codex-identity.d.ts +0 -13
  471. package/dist/providers/codex-identity.d.ts.map +0 -1
  472. package/dist/providers/codex-identity.js +0 -69
  473. package/dist/providers/codex-identity.js.map +0 -1
  474. package/dist/providers/codex-refresh.d.ts +0 -30
  475. package/dist/providers/codex-refresh.d.ts.map +0 -1
  476. package/dist/providers/codex-refresh.js +0 -64
  477. package/dist/providers/codex-refresh.js.map +0 -1
  478. package/dist/providers/codex-usage.d.ts +0 -3
  479. package/dist/providers/codex-usage.d.ts.map +0 -1
  480. package/dist/providers/codex-usage.js +0 -42
  481. package/dist/providers/codex-usage.js.map +0 -1
  482. package/dist/providers/codex.d.ts +0 -61
  483. package/dist/providers/codex.d.ts.map +0 -1
  484. package/dist/providers/codex.js +0 -212
  485. package/dist/providers/codex.js.map +0 -1
  486. package/dist/providers/gemini-antigravity-oauth.d.ts +0 -83
  487. package/dist/providers/gemini-antigravity-oauth.d.ts.map +0 -1
  488. package/dist/providers/gemini-antigravity-oauth.js +0 -343
  489. package/dist/providers/gemini-antigravity-oauth.js.map +0 -1
  490. package/dist/providers/gemini-antigravity-state.d.ts +0 -35
  491. package/dist/providers/gemini-antigravity-state.d.ts.map +0 -1
  492. package/dist/providers/gemini-antigravity-state.js +0 -433
  493. package/dist/providers/gemini-antigravity-state.js.map +0 -1
  494. package/dist/providers/gemini-env.d.ts +0 -8
  495. package/dist/providers/gemini-env.d.ts.map +0 -1
  496. package/dist/providers/gemini-env.js +0 -78
  497. package/dist/providers/gemini-env.js.map +0 -1
  498. package/dist/providers/gemini-identity.d.ts +0 -2
  499. package/dist/providers/gemini-identity.d.ts.map +0 -1
  500. package/dist/providers/gemini-identity.js +0 -14
  501. package/dist/providers/gemini-identity.js.map +0 -1
  502. package/dist/providers/gemini-proxy/main.d.ts +0 -3
  503. package/dist/providers/gemini-proxy/main.d.ts.map +0 -1
  504. package/dist/providers/gemini-proxy/main.js +0 -176
  505. package/dist/providers/gemini-proxy/main.js.map +0 -1
  506. package/dist/providers/gemini-proxy/server.d.ts +0 -57
  507. package/dist/providers/gemini-proxy/server.d.ts.map +0 -1
  508. package/dist/providers/gemini-proxy/server.js +0 -1240
  509. package/dist/providers/gemini-proxy/server.js.map +0 -1
  510. package/dist/providers/gemini-proxy-entry.d.ts +0 -2
  511. package/dist/providers/gemini-proxy-entry.d.ts.map +0 -1
  512. package/dist/providers/gemini-proxy-entry.js +0 -16
  513. package/dist/providers/gemini-proxy-entry.js.map +0 -1
  514. package/dist/providers/gemini-proxy-lifecycle.d.ts +0 -11
  515. package/dist/providers/gemini-proxy-lifecycle.d.ts.map +0 -1
  516. package/dist/providers/gemini-proxy-lifecycle.js +0 -131
  517. package/dist/providers/gemini-proxy-lifecycle.js.map +0 -1
  518. package/dist/providers/gemini.d.ts +0 -137
  519. package/dist/providers/gemini.d.ts.map +0 -1
  520. package/dist/providers/gemini.js +0 -471
  521. package/dist/providers/gemini.js.map +0 -1
  522. package/dist/providers/grok-proxy/auth.d.ts +0 -27
  523. package/dist/providers/grok-proxy/auth.d.ts.map +0 -1
  524. package/dist/providers/grok-proxy/auth.js +0 -123
  525. package/dist/providers/grok-proxy/auth.js.map +0 -1
  526. package/dist/providers/grok-proxy/main.d.ts +0 -3
  527. package/dist/providers/grok-proxy/main.d.ts.map +0 -1
  528. package/dist/providers/grok-proxy/main.js +0 -111
  529. package/dist/providers/grok-proxy/main.js.map +0 -1
  530. package/dist/providers/grok-proxy/server.d.ts +0 -46
  531. package/dist/providers/grok-proxy/server.d.ts.map +0 -1
  532. package/dist/providers/grok-proxy/server.js +0 -595
  533. package/dist/providers/grok-proxy/server.js.map +0 -1
  534. package/dist/providers/grok.d.ts +0 -38
  535. package/dist/providers/grok.d.ts.map +0 -1
  536. package/dist/providers/grok.js +0 -250
  537. package/dist/providers/grok.js.map +0 -1
  538. package/dist/providers/index.d.ts +0 -14
  539. package/dist/providers/index.d.ts.map +0 -1
  540. package/dist/providers/index.js +0 -23
  541. package/dist/providers/index.js.map +0 -1
  542. package/dist/providers/kiro-secret-store.d.ts +0 -39
  543. package/dist/providers/kiro-secret-store.d.ts.map +0 -1
  544. package/dist/providers/kiro-secret-store.js +0 -168
  545. package/dist/providers/kiro-secret-store.js.map +0 -1
  546. package/dist/providers/kiro.d.ts +0 -50
  547. package/dist/providers/kiro.d.ts.map +0 -1
  548. package/dist/providers/kiro.js +0 -373
  549. package/dist/providers/kiro.js.map +0 -1
  550. package/dist/providers/model-policy.d.ts +0 -15
  551. package/dist/providers/model-policy.d.ts.map +0 -1
  552. package/dist/providers/model-policy.js +0 -26
  553. package/dist/providers/model-policy.js.map +0 -1
  554. package/dist/providers/opencode-auth.d.ts +0 -67
  555. package/dist/providers/opencode-auth.d.ts.map +0 -1
  556. package/dist/providers/opencode-auth.js +0 -146
  557. package/dist/providers/opencode-auth.js.map +0 -1
  558. package/dist/providers/opencode-cli-entry.d.ts +0 -36
  559. package/dist/providers/opencode-cli-entry.d.ts.map +0 -1
  560. package/dist/providers/opencode-cli-entry.js +0 -90
  561. package/dist/providers/opencode-cli-entry.js.map +0 -1
  562. package/dist/providers/opencode-proxy/abort.d.ts +0 -8
  563. package/dist/providers/opencode-proxy/abort.d.ts.map +0 -1
  564. package/dist/providers/opencode-proxy/abort.js +0 -42
  565. package/dist/providers/opencode-proxy/abort.js.map +0 -1
  566. package/dist/providers/opencode-proxy/anthropic-handler.d.ts +0 -4
  567. package/dist/providers/opencode-proxy/anthropic-handler.d.ts.map +0 -1
  568. package/dist/providers/opencode-proxy/anthropic-handler.js +0 -108
  569. package/dist/providers/opencode-proxy/anthropic-handler.js.map +0 -1
  570. package/dist/providers/opencode-proxy/auth.d.ts +0 -38
  571. package/dist/providers/opencode-proxy/auth.d.ts.map +0 -1
  572. package/dist/providers/opencode-proxy/auth.js +0 -128
  573. package/dist/providers/opencode-proxy/auth.js.map +0 -1
  574. package/dist/providers/opencode-proxy/body.d.ts +0 -9
  575. package/dist/providers/opencode-proxy/body.d.ts.map +0 -1
  576. package/dist/providers/opencode-proxy/body.js +0 -69
  577. package/dist/providers/opencode-proxy/body.js.map +0 -1
  578. package/dist/providers/opencode-proxy/catalog-handlers.d.ts +0 -7
  579. package/dist/providers/opencode-proxy/catalog-handlers.d.ts.map +0 -1
  580. package/dist/providers/opencode-proxy/catalog-handlers.js +0 -132
  581. package/dist/providers/opencode-proxy/catalog-handlers.js.map +0 -1
  582. package/dist/providers/opencode-proxy/catalog.d.ts +0 -41
  583. package/dist/providers/opencode-proxy/catalog.d.ts.map +0 -1
  584. package/dist/providers/opencode-proxy/catalog.js +0 -146
  585. package/dist/providers/opencode-proxy/catalog.js.map +0 -1
  586. package/dist/providers/opencode-proxy/cli.d.ts +0 -2
  587. package/dist/providers/opencode-proxy/cli.d.ts.map +0 -1
  588. package/dist/providers/opencode-proxy/cli.js +0 -162
  589. package/dist/providers/opencode-proxy/cli.js.map +0 -1
  590. package/dist/providers/opencode-proxy/constants.d.ts +0 -13
  591. package/dist/providers/opencode-proxy/constants.d.ts.map +0 -1
  592. package/dist/providers/opencode-proxy/constants.js +0 -15
  593. package/dist/providers/opencode-proxy/constants.js.map +0 -1
  594. package/dist/providers/opencode-proxy/context-budget.d.ts +0 -31
  595. package/dist/providers/opencode-proxy/context-budget.d.ts.map +0 -1
  596. package/dist/providers/opencode-proxy/context-budget.js +0 -165
  597. package/dist/providers/opencode-proxy/context-budget.js.map +0 -1
  598. package/dist/providers/opencode-proxy/errors.d.ts +0 -5
  599. package/dist/providers/opencode-proxy/errors.d.ts.map +0 -1
  600. package/dist/providers/opencode-proxy/errors.js +0 -45
  601. package/dist/providers/opencode-proxy/errors.js.map +0 -1
  602. package/dist/providers/opencode-proxy/forwarders.d.ts +0 -7
  603. package/dist/providers/opencode-proxy/forwarders.d.ts.map +0 -1
  604. package/dist/providers/opencode-proxy/forwarders.js +0 -214
  605. package/dist/providers/opencode-proxy/forwarders.js.map +0 -1
  606. package/dist/providers/opencode-proxy/http.d.ts +0 -11
  607. package/dist/providers/opencode-proxy/http.d.ts.map +0 -1
  608. package/dist/providers/opencode-proxy/http.js +0 -97
  609. package/dist/providers/opencode-proxy/http.js.map +0 -1
  610. package/dist/providers/opencode-proxy/models.d.ts +0 -42
  611. package/dist/providers/opencode-proxy/models.d.ts.map +0 -1
  612. package/dist/providers/opencode-proxy/models.js +0 -148
  613. package/dist/providers/opencode-proxy/models.js.map +0 -1
  614. package/dist/providers/opencode-proxy/openai-handler.d.ts +0 -5
  615. package/dist/providers/opencode-proxy/openai-handler.d.ts.map +0 -1
  616. package/dist/providers/opencode-proxy/openai-handler.js +0 -115
  617. package/dist/providers/opencode-proxy/openai-handler.js.map +0 -1
  618. package/dist/providers/opencode-proxy/router.d.ts +0 -4
  619. package/dist/providers/opencode-proxy/router.d.ts.map +0 -1
  620. package/dist/providers/opencode-proxy/router.js +0 -65
  621. package/dist/providers/opencode-proxy/router.js.map +0 -1
  622. package/dist/providers/opencode-proxy/runtime.d.ts +0 -23
  623. package/dist/providers/opencode-proxy/runtime.d.ts.map +0 -1
  624. package/dist/providers/opencode-proxy/runtime.js +0 -158
  625. package/dist/providers/opencode-proxy/runtime.js.map +0 -1
  626. package/dist/providers/opencode-proxy/server.d.ts +0 -13
  627. package/dist/providers/opencode-proxy/server.d.ts.map +0 -1
  628. package/dist/providers/opencode-proxy/server.js +0 -52
  629. package/dist/providers/opencode-proxy/server.js.map +0 -1
  630. package/dist/providers/opencode-proxy/stream.d.ts +0 -4
  631. package/dist/providers/opencode-proxy/stream.d.ts.map +0 -1
  632. package/dist/providers/opencode-proxy/stream.js +0 -71
  633. package/dist/providers/opencode-proxy/stream.js.map +0 -1
  634. package/dist/providers/opencode-proxy/translate-stream.d.ts +0 -3
  635. package/dist/providers/opencode-proxy/translate-stream.d.ts.map +0 -1
  636. package/dist/providers/opencode-proxy/translate-stream.js +0 -205
  637. package/dist/providers/opencode-proxy/translate-stream.js.map +0 -1
  638. package/dist/providers/opencode-proxy/translate.d.ts +0 -11
  639. package/dist/providers/opencode-proxy/translate.d.ts.map +0 -1
  640. package/dist/providers/opencode-proxy/translate.js +0 -250
  641. package/dist/providers/opencode-proxy/translate.js.map +0 -1
  642. package/dist/providers/opencode-proxy/types.d.ts +0 -110
  643. package/dist/providers/opencode-proxy/types.d.ts.map +0 -1
  644. package/dist/providers/opencode-proxy/types.js +0 -38
  645. package/dist/providers/opencode-proxy/types.js.map +0 -1
  646. package/dist/providers/opencode-proxy-lifecycle.d.ts +0 -11
  647. package/dist/providers/opencode-proxy-lifecycle.d.ts.map +0 -1
  648. package/dist/providers/opencode-proxy-lifecycle.js +0 -144
  649. package/dist/providers/opencode-proxy-lifecycle.js.map +0 -1
  650. package/dist/providers/opencode.d.ts +0 -40
  651. package/dist/providers/opencode.d.ts.map +0 -1
  652. package/dist/providers/opencode.js +0 -190
  653. package/dist/providers/opencode.js.map +0 -1
  654. package/dist/providers/protocol/anthropic-convert.d.ts +0 -12
  655. package/dist/providers/protocol/anthropic-convert.d.ts.map +0 -1
  656. package/dist/providers/protocol/anthropic-convert.js +0 -113
  657. package/dist/providers/protocol/anthropic-convert.js.map +0 -1
  658. package/dist/providers/protocol/anthropic-helpers.d.ts +0 -13
  659. package/dist/providers/protocol/anthropic-helpers.d.ts.map +0 -1
  660. package/dist/providers/protocol/anthropic-helpers.js +0 -179
  661. package/dist/providers/protocol/anthropic-helpers.js.map +0 -1
  662. package/dist/providers/protocol/anthropic-stream-reader.d.ts +0 -13
  663. package/dist/providers/protocol/anthropic-stream-reader.d.ts.map +0 -1
  664. package/dist/providers/protocol/anthropic-stream-reader.js +0 -46
  665. package/dist/providers/protocol/anthropic-stream-reader.js.map +0 -1
  666. package/dist/providers/protocol/anthropic-stream.d.ts +0 -7
  667. package/dist/providers/protocol/anthropic-stream.d.ts.map +0 -1
  668. package/dist/providers/protocol/anthropic-stream.js +0 -318
  669. package/dist/providers/protocol/anthropic-stream.js.map +0 -1
  670. package/dist/providers/protocol/anthropic-types.d.ts +0 -240
  671. package/dist/providers/protocol/anthropic-types.d.ts.map +0 -1
  672. package/dist/providers/protocol/anthropic.d.ts +0 -20
  673. package/dist/providers/protocol/anthropic.d.ts.map +0 -1
  674. package/dist/providers/protocol/gemini/translate-anthropic.d.ts +0 -15
  675. package/dist/providers/protocol/gemini/translate-anthropic.d.ts.map +0 -1
  676. package/dist/providers/protocol/gemini/translate-anthropic.js +0 -84
  677. package/dist/providers/protocol/gemini/translate-anthropic.js.map +0 -1
  678. package/dist/providers/protocol/gemini/translate-chat.d.ts +0 -5
  679. package/dist/providers/protocol/gemini/translate-chat.d.ts.map +0 -1
  680. package/dist/providers/protocol/gemini/translate-chat.js +0 -142
  681. package/dist/providers/protocol/gemini/translate-chat.js.map +0 -1
  682. package/dist/providers/protocol/gemini/translate-models.d.ts +0 -40
  683. package/dist/providers/protocol/gemini/translate-models.d.ts.map +0 -1
  684. package/dist/providers/protocol/gemini/translate-models.js +0 -186
  685. package/dist/providers/protocol/gemini/translate-models.js.map +0 -1
  686. package/dist/providers/protocol/gemini/translate-responses.d.ts +0 -6
  687. package/dist/providers/protocol/gemini/translate-responses.d.ts.map +0 -1
  688. package/dist/providers/protocol/gemini/translate-responses.js +0 -187
  689. package/dist/providers/protocol/gemini/translate-responses.js.map +0 -1
  690. package/dist/providers/protocol/gemini/translate-schema.d.ts +0 -9
  691. package/dist/providers/protocol/gemini/translate-schema.d.ts.map +0 -1
  692. package/dist/providers/protocol/gemini/translate-schema.js +0 -48
  693. package/dist/providers/protocol/gemini/translate-schema.js.map +0 -1
  694. package/dist/providers/protocol/gemini/translate-shared.d.ts +0 -8
  695. package/dist/providers/protocol/gemini/translate-shared.d.ts.map +0 -1
  696. package/dist/providers/protocol/gemini/translate-shared.js +0 -47
  697. package/dist/providers/protocol/gemini/translate-shared.js.map +0 -1
  698. package/dist/providers/protocol/gemini/translate-thinking.d.ts +0 -7
  699. package/dist/providers/protocol/gemini/translate-thinking.d.ts.map +0 -1
  700. package/dist/providers/protocol/gemini/translate-thinking.js +0 -65
  701. package/dist/providers/protocol/gemini/translate-thinking.js.map +0 -1
  702. package/dist/providers/protocol/gemini/translate-types.d.ts +0 -133
  703. package/dist/providers/protocol/gemini/translate-types.d.ts.map +0 -1
  704. package/dist/providers/protocol/gemini/translate.d.ts +0 -7
  705. package/dist/providers/protocol/gemini/translate.d.ts.map +0 -1
  706. package/dist/providers/protocol/json-schema.d.ts +0 -52
  707. package/dist/providers/protocol/json-schema.d.ts.map +0 -1
  708. package/dist/providers/protocol/json-schema.js +0 -189
  709. package/dist/providers/protocol/json-schema.js.map +0 -1
  710. package/dist/providers/protocol/token-estimate.d.ts +0 -15
  711. package/dist/providers/protocol/token-estimate.d.ts.map +0 -1
  712. package/dist/providers/protocol/token-estimate.js +0 -34
  713. package/dist/providers/protocol/token-estimate.js.map +0 -1
  714. package/dist/providers/proxy-hub-backend.d.ts +0 -4
  715. package/dist/providers/proxy-hub-backend.d.ts.map +0 -1
  716. package/dist/providers/proxy-hub-backend.js +0 -11
  717. package/dist/providers/proxy-hub-backend.js.map +0 -1
  718. package/dist/providers/proxy-process.d.ts +0 -35
  719. package/dist/providers/proxy-process.d.ts.map +0 -1
  720. package/dist/providers/proxy-process.js +0 -119
  721. package/dist/providers/proxy-process.js.map +0 -1
  722. package/dist/providers/proxy-shared.d.ts +0 -43
  723. package/dist/providers/proxy-shared.d.ts.map +0 -1
  724. package/dist/providers/proxy-shared.js +0 -128
  725. package/dist/providers/proxy-shared.js.map +0 -1
  726. package/dist/providers/quota-guard.d.ts +0 -49
  727. package/dist/providers/quota-guard.d.ts.map +0 -1
  728. package/dist/providers/quota-guard.js +0 -107
  729. package/dist/providers/quota-guard.js.map +0 -1
  730. package/dist/providers/reasoning.d.ts +0 -27
  731. package/dist/providers/reasoning.d.ts.map +0 -1
  732. package/dist/providers/reasoning.js +0 -61
  733. package/dist/providers/reasoning.js.map +0 -1
  734. package/dist/providers/upstream-policy.d.ts +0 -33
  735. package/dist/providers/upstream-policy.d.ts.map +0 -1
  736. package/dist/providers/upstream-policy.js +0 -97
  737. package/dist/providers/upstream-policy.js.map +0 -1
  738. package/dist/public-types.d.ts +0 -3
  739. package/dist/public-types.d.ts.map +0 -1
  740. package/dist/public.d.ts +0 -19
  741. package/dist/public.d.ts.map +0 -1
  742. package/dist/public.js +0 -16
  743. package/dist/public.js.map +0 -1
  744. package/dist/sources/account-adapters.d.ts +0 -64
  745. package/dist/sources/account-adapters.d.ts.map +0 -1
  746. package/dist/sources/account-adapters.js +0 -205
  747. package/dist/sources/account-adapters.js.map +0 -1
  748. package/dist/sources/gateway-adapters.d.ts +0 -26
  749. package/dist/sources/gateway-adapters.d.ts.map +0 -1
  750. package/dist/sources/gateway-adapters.js +0 -43
  751. package/dist/sources/gateway-adapters.js.map +0 -1
  752. package/dist/sources/kiro-proxy-bin.d.ts +0 -41
  753. package/dist/sources/kiro-proxy-bin.d.ts.map +0 -1
  754. package/dist/sources/kiro-proxy-bin.js +0 -140
  755. package/dist/sources/kiro-proxy-bin.js.map +0 -1
  756. package/dist/sources/proxy-hub-adapters.d.ts +0 -7
  757. package/dist/sources/proxy-hub-adapters.d.ts.map +0 -1
  758. package/dist/sources/proxy-hub-adapters.js +0 -26
  759. package/dist/sources/proxy-hub-adapters.js.map +0 -1
  760. package/dist/testing.d.ts +0 -9
  761. package/dist/testing.d.ts.map +0 -1
  762. package/dist/testing.js +0 -6
  763. package/dist/tray/AnyPickTray.swift +0 -3
  764. package/dist/tray/activity.d.ts +0 -18
  765. package/dist/tray/activity.d.ts.map +0 -1
  766. package/dist/tray/activity.js +0 -51
  767. package/dist/tray/activity.js.map +0 -1
  768. package/dist/tray/app-icons/icon-1024.png +0 -0
  769. package/dist/tray/app-icons/icon-128.png +0 -0
  770. package/dist/tray/app-icons/icon-16.png +0 -0
  771. package/dist/tray/app-icons/icon-256.png +0 -0
  772. package/dist/tray/app-icons/icon-32.png +0 -0
  773. package/dist/tray/app-icons/icon-512.png +0 -0
  774. package/dist/tray/app-icons/icon-64.png +0 -0
  775. package/dist/tray/icons/claude.svg +0 -1
  776. package/dist/tray/icons/googlegemini.svg +0 -1
  777. package/dist/tray/icons/grok.svg +0 -1
  778. package/dist/tray/icons/kiro.svg +0 -1
  779. package/dist/tray/icons/openai.svg +0 -1
  780. package/dist/tray/icons/opencode.svg +0 -1
  781. package/dist/tray/icons/openrouter.svg +0 -1
  782. package/dist/tray/model-role-actions.d.ts +0 -15
  783. package/dist/tray/model-role-actions.d.ts.map +0 -1
  784. package/dist/tray/model-role-actions.js +0 -41
  785. package/dist/tray/model-role-actions.js.map +0 -1
  786. package/dist/tray/native/AccountsPanel.swift +0 -434
  787. package/dist/tray/native/AppEntry.swift +0 -229
  788. package/dist/tray/native/MainWindow.swift +0 -300
  789. package/dist/tray/native/ManageFormChrome.swift +0 -332
  790. package/dist/tray/native/ManageForms.swift +0 -472
  791. package/dist/tray/native/ManagePanel.swift +0 -356
  792. package/dist/tray/native/Models.swift +0 -259
  793. package/dist/tray/native/ModelsEditor.swift +0 -390
  794. package/dist/tray/native/ModelsOverview.swift +0 -76
  795. package/dist/tray/native/ModelsPickers.swift +0 -273
  796. package/dist/tray/native/ModelsRoutePickers.swift +0 -718
  797. package/dist/tray/native/MonitorPanel.swift +0 -375
  798. package/dist/tray/native/ProxyPanel.swift +0 -326
  799. package/dist/tray/native/QuickActivityRow.swift +0 -40
  800. package/dist/tray/native/QuickNav.swift +0 -62
  801. package/dist/tray/native/QuickPanel.swift +0 -447
  802. package/dist/tray/native/QuickRouteRow.swift +0 -189
  803. package/dist/tray/native/QuickServiceRows.swift +0 -292
  804. package/dist/tray/native/RoutingIssues.swift +0 -293
  805. package/dist/tray/native/SettingsPanel.swift +0 -225
  806. package/dist/tray/native/SharedUI.swift +0 -681
  807. package/dist/tray/native/Store.swift +0 -540
  808. package/dist/tray/native/Theme.swift +0 -139
  809. package/dist/tray/native/TrayChrome.swift +0 -657
  810. package/dist/tray/native/TrayControls.swift +0 -475
  811. package/dist/tray/native/TrayPreferences.swift +0 -46
  812. package/dist/tray/native/sources.txt +0 -26
  813. package/dist/tray/native-sources.d.ts +0 -8
  814. package/dist/tray/native-sources.d.ts.map +0 -1
  815. package/dist/tray/native-sources.js +0 -19
  816. package/dist/tray/native-sources.js.map +0 -1
  817. package/dist/tray/protocol.d.ts +0 -79
  818. package/dist/tray/protocol.d.ts.map +0 -1
  819. package/dist/tray/protocol.js +0 -145
  820. package/dist/tray/protocol.js.map +0 -1
  821. package/dist/tray/settings.d.ts +0 -15
  822. package/dist/tray/settings.d.ts.map +0 -1
  823. package/dist/tray/settings.js +0 -72
  824. package/dist/tray/settings.js.map +0 -1
  825. package/dist/tray/snapshot-client-routes.d.ts +0 -11
  826. package/dist/tray/snapshot-client-routes.d.ts.map +0 -1
  827. package/dist/tray/snapshot-client-routes.js +0 -305
  828. package/dist/tray/snapshot-client-routes.js.map +0 -1
  829. package/dist/tray/snapshot-helpers.d.ts +0 -20
  830. package/dist/tray/snapshot-helpers.d.ts.map +0 -1
  831. package/dist/tray/snapshot-helpers.js +0 -74
  832. package/dist/tray/snapshot-helpers.js.map +0 -1
  833. package/dist/tray/snapshot-hub.d.ts +0 -7
  834. package/dist/tray/snapshot-hub.d.ts.map +0 -1
  835. package/dist/tray/snapshot-hub.js +0 -93
  836. package/dist/tray/snapshot-hub.js.map +0 -1
  837. package/dist/tray/snapshot-resources.d.ts +0 -19
  838. package/dist/tray/snapshot-resources.d.ts.map +0 -1
  839. package/dist/tray/snapshot-resources.js +0 -216
  840. package/dist/tray/snapshot-resources.js.map +0 -1
  841. package/dist/tray/snapshot-types.d.ts +0 -229
  842. package/dist/tray/snapshot-types.d.ts.map +0 -1
  843. package/dist/tray/snapshot-usage.d.ts +0 -9
  844. package/dist/tray/snapshot-usage.d.ts.map +0 -1
  845. package/dist/tray/snapshot-usage.js +0 -35
  846. package/dist/tray/snapshot-usage.js.map +0 -1
  847. package/dist/tray/snapshot.d.ts +0 -7
  848. package/dist/tray/snapshot.d.ts.map +0 -1
  849. package/dist/tray/snapshot.js +0 -48
  850. package/dist/tray/snapshot.js.map +0 -1
  851. package/dist/tray/supervisor-actions.d.ts +0 -19
  852. package/dist/tray/supervisor-actions.d.ts.map +0 -1
  853. package/dist/tray/supervisor-actions.js +0 -224
  854. package/dist/tray/supervisor-actions.js.map +0 -1
  855. package/dist/tray/supervisor-activity.d.ts +0 -5
  856. package/dist/tray/supervisor-activity.d.ts.map +0 -1
  857. package/dist/tray/supervisor-activity.js +0 -19
  858. package/dist/tray/supervisor-activity.js.map +0 -1
  859. package/dist/tray/supervisor-errors.d.ts +0 -9
  860. package/dist/tray/supervisor-errors.d.ts.map +0 -1
  861. package/dist/tray/supervisor-errors.js +0 -91
  862. package/dist/tray/supervisor-errors.js.map +0 -1
  863. package/dist/tray/supervisor-logs.d.ts +0 -6
  864. package/dist/tray/supervisor-logs.d.ts.map +0 -1
  865. package/dist/tray/supervisor-logs.js +0 -52
  866. package/dist/tray/supervisor-logs.js.map +0 -1
  867. package/dist/tray/supervisor-mutations.d.ts +0 -14
  868. package/dist/tray/supervisor-mutations.d.ts.map +0 -1
  869. package/dist/tray/supervisor-mutations.js +0 -218
  870. package/dist/tray/supervisor-mutations.js.map +0 -1
  871. package/dist/tray/supervisor-native.d.ts +0 -22
  872. package/dist/tray/supervisor-native.d.ts.map +0 -1
  873. package/dist/tray/supervisor-native.js +0 -227
  874. package/dist/tray/supervisor-native.js.map +0 -1
  875. package/dist/tray/supervisor-proxies.d.ts +0 -6
  876. package/dist/tray/supervisor-proxies.d.ts.map +0 -1
  877. package/dist/tray/supervisor-proxies.js +0 -37
  878. package/dist/tray/supervisor-proxies.js.map +0 -1
  879. package/dist/tray/supervisor-tauri.d.ts +0 -13
  880. package/dist/tray/supervisor-tauri.d.ts.map +0 -1
  881. package/dist/tray/supervisor-tauri.js +0 -36
  882. package/dist/tray/supervisor-tauri.js.map +0 -1
  883. package/dist/tray/supervisor.d.ts +0 -17
  884. package/dist/tray/supervisor.d.ts.map +0 -1
  885. package/dist/tray/supervisor.js +0 -372
  886. package/dist/tray/supervisor.js.map +0 -1
  887. package/dist/tray/terminal-launcher.d.ts +0 -12
  888. package/dist/tray/terminal-launcher.d.ts.map +0 -1
  889. package/dist/tray/terminal-launcher.js +0 -130
  890. package/dist/tray/terminal-launcher.js.map +0 -1
  891. package/dist/tui/actions/ensure-proxy-up.d.ts +0 -15
  892. package/dist/tui/actions/ensure-proxy-up.d.ts.map +0 -1
  893. package/dist/tui/actions/ensure-proxy-up.js +0 -41
  894. package/dist/tui/actions/ensure-proxy-up.js.map +0 -1
  895. package/dist/tui/actions/use-account-actions.d.ts +0 -35
  896. package/dist/tui/actions/use-account-actions.d.ts.map +0 -1
  897. package/dist/tui/actions/use-account-actions.js +0 -527
  898. package/dist/tui/actions/use-account-actions.js.map +0 -1
  899. package/dist/tui/actions/use-app-bindings.d.ts +0 -83
  900. package/dist/tui/actions/use-app-bindings.d.ts.map +0 -1
  901. package/dist/tui/actions/use-app-bindings.js +0 -472
  902. package/dist/tui/actions/use-app-bindings.js.map +0 -1
  903. package/dist/tui/actions/use-gateway-actions.d.ts +0 -45
  904. package/dist/tui/actions/use-gateway-actions.d.ts.map +0 -1
  905. package/dist/tui/actions/use-gateway-actions.js +0 -370
  906. package/dist/tui/actions/use-gateway-actions.js.map +0 -1
  907. package/dist/tui/actions/use-home-filter.d.ts +0 -24
  908. package/dist/tui/actions/use-home-filter.d.ts.map +0 -1
  909. package/dist/tui/actions/use-home-filter.js +0 -48
  910. package/dist/tui/actions/use-home-filter.js.map +0 -1
  911. package/dist/tui/actions/use-model-role-editor.d.ts +0 -44
  912. package/dist/tui/actions/use-model-role-editor.d.ts.map +0 -1
  913. package/dist/tui/actions/use-model-role-editor.js +0 -68
  914. package/dist/tui/actions/use-model-role-editor.js.map +0 -1
  915. package/dist/tui/actions/use-provider-filter.d.ts +0 -10
  916. package/dist/tui/actions/use-provider-filter.d.ts.map +0 -1
  917. package/dist/tui/actions/use-provider-filter.js +0 -22
  918. package/dist/tui/actions/use-provider-filter.js.map +0 -1
  919. package/dist/tui/actions/use-proxy-actions.d.ts +0 -31
  920. package/dist/tui/actions/use-proxy-actions.d.ts.map +0 -1
  921. package/dist/tui/actions/use-proxy-actions.js +0 -474
  922. package/dist/tui/actions/use-proxy-actions.js.map +0 -1
  923. package/dist/tui/actions/use-text-input-submit.d.ts +0 -16
  924. package/dist/tui/actions/use-text-input-submit.d.ts.map +0 -1
  925. package/dist/tui/actions/use-text-input-submit.js +0 -96
  926. package/dist/tui/actions/use-text-input-submit.js.map +0 -1
  927. package/dist/tui/actions/use-tray-runtime-actions.d.ts +0 -18
  928. package/dist/tui/actions/use-tray-runtime-actions.d.ts.map +0 -1
  929. package/dist/tui/actions/use-tray-runtime-actions.js +0 -78
  930. package/dist/tui/actions/use-tray-runtime-actions.js.map +0 -1
  931. package/dist/tui/app-ui-helpers.d.ts +0 -14
  932. package/dist/tui/app-ui-helpers.d.ts.map +0 -1
  933. package/dist/tui/app-ui-helpers.js +0 -48
  934. package/dist/tui/app-ui-helpers.js.map +0 -1
  935. package/dist/tui/app-ui.d.ts +0 -19
  936. package/dist/tui/app-ui.d.ts.map +0 -1
  937. package/dist/tui/app-ui.js +0 -98
  938. package/dist/tui/app-ui.js.map +0 -1
  939. package/dist/tui/components/chrome/header.d.ts +0 -39
  940. package/dist/tui/components/chrome/header.d.ts.map +0 -1
  941. package/dist/tui/components/chrome/header.js +0 -161
  942. package/dist/tui/components/chrome/header.js.map +0 -1
  943. package/dist/tui/components/chrome/inputs.d.ts +0 -34
  944. package/dist/tui/components/chrome/inputs.d.ts.map +0 -1
  945. package/dist/tui/components/chrome/inputs.js +0 -82
  946. package/dist/tui/components/chrome/inputs.js.map +0 -1
  947. package/dist/tui/components/chrome/layout.d.ts +0 -61
  948. package/dist/tui/components/chrome/layout.d.ts.map +0 -1
  949. package/dist/tui/components/chrome/layout.js +0 -119
  950. package/dist/tui/components/chrome/layout.js.map +0 -1
  951. package/dist/tui/components/chrome/legacy.d.ts +0 -84
  952. package/dist/tui/components/chrome/legacy.d.ts.map +0 -1
  953. package/dist/tui/components/chrome/legacy.js +0 -6
  954. package/dist/tui/components/chrome/rows.d.ts +0 -89
  955. package/dist/tui/components/chrome/rows.d.ts.map +0 -1
  956. package/dist/tui/components/chrome/rows.js +0 -151
  957. package/dist/tui/components/chrome/rows.js.map +0 -1
  958. package/dist/tui/components/chrome/status.d.ts +0 -50
  959. package/dist/tui/components/chrome/status.d.ts.map +0 -1
  960. package/dist/tui/components/chrome/status.js +0 -157
  961. package/dist/tui/components/chrome/status.js.map +0 -1
  962. package/dist/tui/components/chrome.d.ts +0 -7
  963. package/dist/tui/components/chrome.d.ts.map +0 -1
  964. package/dist/tui/components/chrome.js +0 -7
  965. package/dist/tui/components.d.ts +0 -26
  966. package/dist/tui/components.d.ts.map +0 -1
  967. package/dist/tui/components.js +0 -182
  968. package/dist/tui/components.js.map +0 -1
  969. package/dist/tui/model/anypick.d.ts +0 -106
  970. package/dist/tui/model/anypick.d.ts.map +0 -1
  971. package/dist/tui/model/anypick.js +0 -116
  972. package/dist/tui/model/anypick.js.map +0 -1
  973. package/dist/tui/model/bindings.d.ts +0 -39
  974. package/dist/tui/model/bindings.d.ts.map +0 -1
  975. package/dist/tui/model/bindings.js +0 -102
  976. package/dist/tui/model/bindings.js.map +0 -1
  977. package/dist/tui/model/detail.d.ts +0 -6
  978. package/dist/tui/model/detail.d.ts.map +0 -1
  979. package/dist/tui/model/detail.js +0 -85
  980. package/dist/tui/model/detail.js.map +0 -1
  981. package/dist/tui/model/gateway.d.ts +0 -46
  982. package/dist/tui/model/gateway.d.ts.map +0 -1
  983. package/dist/tui/model/gateway.js +0 -134
  984. package/dist/tui/model/gateway.js.map +0 -1
  985. package/dist/tui/model/home-format.d.ts +0 -52
  986. package/dist/tui/model/home-format.d.ts.map +0 -1
  987. package/dist/tui/model/home-format.js +0 -64
  988. package/dist/tui/model/home-format.js.map +0 -1
  989. package/dist/tui/model/home-load.d.ts +0 -8
  990. package/dist/tui/model/home-load.d.ts.map +0 -1
  991. package/dist/tui/model/home-load.js +0 -244
  992. package/dist/tui/model/home-load.js.map +0 -1
  993. package/dist/tui/model/identity.d.ts +0 -53
  994. package/dist/tui/model/identity.d.ts.map +0 -1
  995. package/dist/tui/model/identity.js +0 -176
  996. package/dist/tui/model/identity.js.map +0 -1
  997. package/dist/tui/model/line-editor.d.ts +0 -99
  998. package/dist/tui/model/line-editor.d.ts.map +0 -1
  999. package/dist/tui/model/line-editor.js +0 -186
  1000. package/dist/tui/model/line-editor.js.map +0 -1
  1001. package/dist/tui/model/names.d.ts +0 -28
  1002. package/dist/tui/model/names.d.ts.map +0 -1
  1003. package/dist/tui/model/names.js +0 -42
  1004. package/dist/tui/model/names.js.map +0 -1
  1005. package/dist/tui/model/pool.d.ts +0 -11
  1006. package/dist/tui/model/pool.d.ts.map +0 -1
  1007. package/dist/tui/model/pool.js +0 -115
  1008. package/dist/tui/model/pool.js.map +0 -1
  1009. package/dist/tui/model/provider-filter.d.ts +0 -14
  1010. package/dist/tui/model/provider-filter.d.ts.map +0 -1
  1011. package/dist/tui/model/provider-filter.js +0 -46
  1012. package/dist/tui/model/provider-filter.js.map +0 -1
  1013. package/dist/tui/model/proxy-hub.d.ts +0 -23
  1014. package/dist/tui/model/proxy-hub.d.ts.map +0 -1
  1015. package/dist/tui/model/proxy-hub.js +0 -69
  1016. package/dist/tui/model/proxy-hub.js.map +0 -1
  1017. package/dist/tui/model/proxy-labels.d.ts +0 -5
  1018. package/dist/tui/model/proxy-labels.d.ts.map +0 -1
  1019. package/dist/tui/model/proxy-labels.js +0 -18
  1020. package/dist/tui/model/proxy-labels.js.map +0 -1
  1021. package/dist/tui/model/proxy.d.ts +0 -15
  1022. package/dist/tui/model/proxy.d.ts.map +0 -1
  1023. package/dist/tui/model/proxy.js +0 -214
  1024. package/dist/tui/model/proxy.js.map +0 -1
  1025. package/dist/tui/model/root.d.ts +0 -20
  1026. package/dist/tui/model/root.d.ts.map +0 -1
  1027. package/dist/tui/model/root.js +0 -126
  1028. package/dist/tui/model/root.js.map +0 -1
  1029. package/dist/tui/model/route-builder.d.ts +0 -25
  1030. package/dist/tui/model/route-builder.d.ts.map +0 -1
  1031. package/dist/tui/model/route-builder.js +0 -199
  1032. package/dist/tui/model/route-builder.js.map +0 -1
  1033. package/dist/tui/model/screen.d.ts +0 -260
  1034. package/dist/tui/model/screen.d.ts.map +0 -1
  1035. package/dist/tui/model/types.d.ts +0 -179
  1036. package/dist/tui/model/types.d.ts.map +0 -1
  1037. package/dist/tui/model.d.ts +0 -18
  1038. package/dist/tui/model.d.ts.map +0 -1
  1039. package/dist/tui/model.js +0 -17
  1040. package/dist/tui/proxy-models-fetch.d.ts +0 -34
  1041. package/dist/tui/proxy-models-fetch.d.ts.map +0 -1
  1042. package/dist/tui/proxy-models-fetch.js +0 -87
  1043. package/dist/tui/proxy-models-fetch.js.map +0 -1
  1044. package/dist/tui/routes/account.d.ts +0 -4
  1045. package/dist/tui/routes/account.d.ts.map +0 -1
  1046. package/dist/tui/routes/account.js +0 -327
  1047. package/dist/tui/routes/account.js.map +0 -1
  1048. package/dist/tui/routes/apps.d.ts +0 -3
  1049. package/dist/tui/routes/apps.d.ts.map +0 -1
  1050. package/dist/tui/routes/apps.js +0 -296
  1051. package/dist/tui/routes/apps.js.map +0 -1
  1052. package/dist/tui/routes/common.d.ts +0 -4
  1053. package/dist/tui/routes/common.d.ts.map +0 -1
  1054. package/dist/tui/routes/common.js +0 -117
  1055. package/dist/tui/routes/common.js.map +0 -1
  1056. package/dist/tui/routes/context.d.ts +0 -43
  1057. package/dist/tui/routes/context.d.ts.map +0 -1
  1058. package/dist/tui/routes/gateway.d.ts +0 -3
  1059. package/dist/tui/routes/gateway.d.ts.map +0 -1
  1060. package/dist/tui/routes/gateway.js +0 -199
  1061. package/dist/tui/routes/gateway.js.map +0 -1
  1062. package/dist/tui/routes/proxy.d.ts +0 -3
  1063. package/dist/tui/routes/proxy.d.ts.map +0 -1
  1064. package/dist/tui/routes/proxy.js +0 -234
  1065. package/dist/tui/routes/proxy.js.map +0 -1
  1066. package/dist/tui/screens/account-detail.d.ts +0 -14
  1067. package/dist/tui/screens/account-detail.d.ts.map +0 -1
  1068. package/dist/tui/screens/account-detail.js +0 -98
  1069. package/dist/tui/screens/account-detail.js.map +0 -1
  1070. package/dist/tui/screens/accounts-home.d.ts +0 -42
  1071. package/dist/tui/screens/accounts-home.d.ts.map +0 -1
  1072. package/dist/tui/screens/accounts-home.js +0 -321
  1073. package/dist/tui/screens/accounts-home.js.map +0 -1
  1074. package/dist/tui/screens/add-account.d.ts +0 -70
  1075. package/dist/tui/screens/add-account.d.ts.map +0 -1
  1076. package/dist/tui/screens/add-account.js +0 -323
  1077. package/dist/tui/screens/add-account.js.map +0 -1
  1078. package/dist/tui/screens/anypick-home.d.ts +0 -39
  1079. package/dist/tui/screens/anypick-home.d.ts.map +0 -1
  1080. package/dist/tui/screens/anypick-home.js +0 -253
  1081. package/dist/tui/screens/anypick-home.js.map +0 -1
  1082. package/dist/tui/screens/anypick-preview.d.ts +0 -13
  1083. package/dist/tui/screens/anypick-preview.d.ts.map +0 -1
  1084. package/dist/tui/screens/anypick-preview.js +0 -49
  1085. package/dist/tui/screens/anypick-preview.js.map +0 -1
  1086. package/dist/tui/screens/app-route-preview.d.ts +0 -14
  1087. package/dist/tui/screens/app-route-preview.d.ts.map +0 -1
  1088. package/dist/tui/screens/app-route-preview.js +0 -35
  1089. package/dist/tui/screens/app-route-preview.js.map +0 -1
  1090. package/dist/tui/screens/app-route-source.d.ts +0 -15
  1091. package/dist/tui/screens/app-route-source.d.ts.map +0 -1
  1092. package/dist/tui/screens/app-route-source.js +0 -97
  1093. package/dist/tui/screens/app-route-source.js.map +0 -1
  1094. package/dist/tui/screens/apps-home.d.ts +0 -22
  1095. package/dist/tui/screens/apps-home.d.ts.map +0 -1
  1096. package/dist/tui/screens/apps-home.js +0 -111
  1097. package/dist/tui/screens/apps-home.js.map +0 -1
  1098. package/dist/tui/screens/confirm.d.ts +0 -19
  1099. package/dist/tui/screens/confirm.d.ts.map +0 -1
  1100. package/dist/tui/screens/confirm.js +0 -42
  1101. package/dist/tui/screens/confirm.js.map +0 -1
  1102. package/dist/tui/screens/credential-form.d.ts +0 -30
  1103. package/dist/tui/screens/credential-form.d.ts.map +0 -1
  1104. package/dist/tui/screens/credential-form.js +0 -241
  1105. package/dist/tui/screens/credential-form.js.map +0 -1
  1106. package/dist/tui/screens/gateway-connection-form.d.ts +0 -16
  1107. package/dist/tui/screens/gateway-connection-form.d.ts.map +0 -1
  1108. package/dist/tui/screens/gateway-connection-form.js +0 -127
  1109. package/dist/tui/screens/gateway-connection-form.js.map +0 -1
  1110. package/dist/tui/screens/gateway-pick-provider.d.ts +0 -19
  1111. package/dist/tui/screens/gateway-pick-provider.d.ts.map +0 -1
  1112. package/dist/tui/screens/gateway-pick-provider.js +0 -62
  1113. package/dist/tui/screens/gateway-pick-provider.js.map +0 -1
  1114. package/dist/tui/screens/gateways-home.d.ts +0 -38
  1115. package/dist/tui/screens/gateways-home.d.ts.map +0 -1
  1116. package/dist/tui/screens/gateways-home.js +0 -247
  1117. package/dist/tui/screens/gateways-home.js.map +0 -1
  1118. package/dist/tui/screens/health.d.ts +0 -16
  1119. package/dist/tui/screens/health.d.ts.map +0 -1
  1120. package/dist/tui/screens/health.js +0 -109
  1121. package/dist/tui/screens/health.js.map +0 -1
  1122. package/dist/tui/screens/help.d.ts +0 -10
  1123. package/dist/tui/screens/help.d.ts.map +0 -1
  1124. package/dist/tui/screens/help.js +0 -213
  1125. package/dist/tui/screens/help.js.map +0 -1
  1126. package/dist/tui/screens/manage-apps.d.ts +0 -29
  1127. package/dist/tui/screens/manage-apps.d.ts.map +0 -1
  1128. package/dist/tui/screens/manage-apps.js +0 -165
  1129. package/dist/tui/screens/manage-apps.js.map +0 -1
  1130. package/dist/tui/screens/proxy-board-helpers.d.ts +0 -9
  1131. package/dist/tui/screens/proxy-board-helpers.d.ts.map +0 -1
  1132. package/dist/tui/screens/proxy-board-helpers.js +0 -70
  1133. package/dist/tui/screens/proxy-board-helpers.js.map +0 -1
  1134. package/dist/tui/screens/proxy-board.d.ts +0 -43
  1135. package/dist/tui/screens/proxy-board.d.ts.map +0 -1
  1136. package/dist/tui/screens/proxy-board.js +0 -351
  1137. package/dist/tui/screens/proxy-board.js.map +0 -1
  1138. package/dist/tui/screens/proxy-hub.d.ts +0 -21
  1139. package/dist/tui/screens/proxy-hub.d.ts.map +0 -1
  1140. package/dist/tui/screens/proxy-hub.js +0 -150
  1141. package/dist/tui/screens/proxy-hub.js.map +0 -1
  1142. package/dist/tui/screens/proxy-models-utils.d.ts +0 -13
  1143. package/dist/tui/screens/proxy-models-utils.d.ts.map +0 -1
  1144. package/dist/tui/screens/proxy-models-utils.js +0 -53
  1145. package/dist/tui/screens/proxy-models-utils.js.map +0 -1
  1146. package/dist/tui/screens/proxy-models.d.ts +0 -65
  1147. package/dist/tui/screens/proxy-models.d.ts.map +0 -1
  1148. package/dist/tui/screens/proxy-models.js +0 -252
  1149. package/dist/tui/screens/proxy-models.js.map +0 -1
  1150. package/dist/tui/screens/proxy.d.ts +0 -26
  1151. package/dist/tui/screens/proxy.d.ts.map +0 -1
  1152. package/dist/tui/screens/text-input.d.ts +0 -18
  1153. package/dist/tui/screens/text-input.d.ts.map +0 -1
  1154. package/dist/tui/screens/text-input.js +0 -67
  1155. package/dist/tui/screens/text-input.js.map +0 -1
  1156. package/dist/tui/screens/tray-runtime.d.ts +0 -19
  1157. package/dist/tui/screens/tray-runtime.d.ts.map +0 -1
  1158. package/dist/tui/screens/tray-runtime.js +0 -108
  1159. package/dist/tui/screens/tray-runtime.js.map +0 -1
  1160. package/dist/tui/use-tui-nav.d.ts +0 -40
  1161. package/dist/tui/use-tui-nav.d.ts.map +0 -1
  1162. package/dist/tui/use-tui-nav.js +0 -256
  1163. package/dist/tui/use-tui-nav.js.map +0 -1
  1164. package/dist/tui/use-tui-shell.d.ts +0 -46
  1165. package/dist/tui/use-tui-shell.d.ts.map +0 -1
  1166. package/dist/tui/use-tui-shell.js +0 -95
  1167. package/dist/tui/use-tui-shell.js.map +0 -1
  1168. package/dist/types/account.d.ts +0 -410
  1169. package/dist/types/account.d.ts.map +0 -1
  1170. package/dist/types/account.js +0 -7
  1171. package/dist/types/account.js.map +0 -1
  1172. package/dist/types/bindings.d.ts +0 -300
  1173. package/dist/types/bindings.d.ts.map +0 -1
  1174. package/dist/types/catalog.d.ts +0 -165
  1175. package/dist/types/catalog.d.ts.map +0 -1
  1176. package/dist/types/clients.d.ts +0 -174
  1177. package/dist/types/clients.d.ts.map +0 -1
  1178. package/dist/types/clients.js +0 -11
  1179. package/dist/types/clients.js.map +0 -1
  1180. package/dist/types/plugins.d.ts +0 -89
  1181. package/dist/types/plugins.d.ts.map +0 -1
  1182. package/dist/types/plugins.js +0 -14
  1183. package/dist/types/plugins.js.map +0 -1
  1184. package/dist/types/proxy-hub.d.ts +0 -109
  1185. package/dist/types/proxy-hub.d.ts.map +0 -1
  1186. package/dist/types.d.ts +0 -7
  1187. package/dist/types.d.ts.map +0 -1
  1188. package/dist/types.js +0 -1
  1189. package/dist/utils/errors.d.ts +0 -61
  1190. package/dist/utils/errors.d.ts.map +0 -1
  1191. package/dist/utils/errors.js +0 -119
  1192. package/dist/utils/errors.js.map +0 -1
  1193. package/dist/utils/fs.d.ts +0 -39
  1194. package/dist/utils/fs.d.ts.map +0 -1
  1195. package/dist/utils/fs.js +0 -126
  1196. package/dist/utils/fs.js.map +0 -1
  1197. package/dist/utils/lock.d.ts +0 -33
  1198. package/dist/utils/lock.d.ts.map +0 -1
  1199. package/dist/utils/lock.js +0 -95
  1200. package/dist/utils/lock.js.map +0 -1
  1201. package/dist/utils/log.d.ts +0 -10
  1202. package/dist/utils/log.d.ts.map +0 -1
  1203. package/dist/utils/log.js +0 -21
  1204. package/dist/utils/log.js.map +0 -1
  1205. package/dist/utils/network.d.ts +0 -3
  1206. package/dist/utils/network.d.ts.map +0 -1
  1207. package/dist/utils/network.js +0 -13
  1208. package/dist/utils/network.js.map +0 -1
  1209. package/dist/utils/process/binary.d.ts +0 -14
  1210. package/dist/utils/process/binary.d.ts.map +0 -1
  1211. package/dist/utils/process/binary.js +0 -29
  1212. package/dist/utils/process/binary.js.map +0 -1
  1213. package/dist/utils/process/follow.d.ts +0 -2
  1214. package/dist/utils/process/follow.d.ts.map +0 -1
  1215. package/dist/utils/process/follow.js +0 -90
  1216. package/dist/utils/process/follow.js.map +0 -1
  1217. package/dist/utils/process/health.d.ts +0 -43
  1218. package/dist/utils/process/health.d.ts.map +0 -1
  1219. package/dist/utils/process/health.js +0 -132
  1220. package/dist/utils/process/health.js.map +0 -1
  1221. package/dist/utils/process/pid.d.ts +0 -95
  1222. package/dist/utils/process/pid.d.ts.map +0 -1
  1223. package/dist/utils/process/pid.js +0 -243
  1224. package/dist/utils/process/pid.js.map +0 -1
  1225. package/dist/utils/process.d.ts +0 -5
  1226. package/dist/utils/process.d.ts.map +0 -1
  1227. package/dist/utils/process.js +0 -5
  1228. package/dist/utils/slug.d.ts +0 -18
  1229. package/dist/utils/slug.d.ts.map +0 -1
  1230. package/dist/utils/slug.js +0 -42
  1231. package/dist/utils/slug.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"server.js","names":[],"sources":["../../../src/providers/grok-proxy/server.ts"],"sourcesContent":["/**\n * Dual-protocol reverse proxy for Grok CLI OIDC sessions.\n *\n * Compatibility (same base URL for both clients):\n * • OpenAI — Codex / OpenAI SDK → /v1/chat/completions, /v1/responses, /v1/models\n * • Anthropic — Claude Code → /v1/messages\n *\n * Upstream cli-chat-proxy.grok.com already speaks both shapes; we inject the\n * CLI OIDC Bearer and forward. Model IDs and /v1/models are deliberately\n * passed through without a local catalog, so newly released models work\n * without a AnyPick update. Optional translate mode\n * (GROK_PROXY_TRANSLATE_ANTHROPIC=1) rewrites Anthropic → chat/completions\n * for OpenAI-only upstreams.\n *\n * Clients point BASE_URL here with any dummy API key / auth token.\n */\nimport { createServer, type IncomingMessage, type Server, type ServerResponse } from 'node:http';\nimport { GROK_MODELS } from '../../catalog/providers';\nimport { ensureAccessToken, type GrokSession } from './auth';\nimport {\n anthropicToOpenAI,\n estimateAnthropicInputTokens,\n openAIToAnthropic,\n pipeOpenAIStreamToAnthropic,\n sanitizeInferenceToolSchemas,\n type AnthropicMessageRequest,\n type OpenAIChatResponse,\n} from '../protocol/anthropic';\nimport { HOP_BY_HOP, normalizeLocalApiUrl, readBody, requireProxyAuth } from '../proxy-shared';\nimport { assertLoopbackHost } from '../../utils/network';\nimport { classifyUpstreamFailure, CooldownRegistry } from '../upstream-policy';\n\nexport interface GrokProxyServerOptions {\n host: string;\n port: number;\n authPath: string;\n upstream?: string;\n clientVersion?: string;\n /**\n * When true, POST /v1/messages is translated to OpenAI chat/completions\n * instead of passed through. Default: false (native Anthropic upstream).\n * Also enabled by env GROK_PROXY_TRANSLATE_ANTHROPIC=1.\n */\n translateAnthropic?: boolean;\n /** Per-instance high-entropy secret (PROXY-01) required on credentialed routes. */\n token?: string;\n /** Append request traces to this logger. */\n log?: (line: string) => void;\n quiet?: boolean;\n}\n\nconst DEFAULT_UPSTREAM = 'https://cli-chat-proxy.grok.com';\nconst DEFAULT_CLIENT_VERSION = '0.2.101';\n\nconst COMPAT_LABEL = 'OpenAI + Anthropic API';\n\nexport function createGrokProxyServer(opts: GrokProxyServerOptions): Server {\n assertLoopbackHost(opts.host);\n const upstream = (opts.upstream ?? DEFAULT_UPSTREAM).replace(/\\/$/, '');\n const clientVersion = opts.clientVersion ?? DEFAULT_CLIENT_VERSION;\n const translateAnthropic =\n opts.translateAnthropic ?? process.env.GROK_PROXY_TRANSLATE_ANTHROPIC === '1';\n const proxyToken = opts.token ?? process.env.ANYPICK_PROXY_TOKEN ?? '';\n const log =\n opts.log ?? (opts.quiet ? () => {} : (line: string) => process.stderr.write(`${line}\\n`));\n\n let cached: GrokSession | undefined;\n const cooldowns = new CooldownRegistry();\n\n const server = createServer((req, res) => {\n void handle(req, res);\n });\n\n async function handle(req: IncomingMessage, res: ServerResponse): Promise<void> {\n const url = normalizeLocalApiUrl(req.url ?? '/');\n const path = url.split('?')[0] ?? '/';\n const method = req.method ?? 'GET';\n\n if (!checkCors(req, res)) {\n return;\n }\n if (method === 'OPTIONS') {\n res.writeHead(204);\n res.end();\n return;\n }\n\n if ((method === 'GET' || method === 'HEAD') && (path === '/' || path === '/health')) {\n json(res, 200, {\n ok: true,\n service: 'anypick-grok-proxy',\n compatibility: COMPAT_LABEL,\n instanceId: process.env.ANYPICK_INSTANCE_ID ?? null,\n clients: {\n codex: 'OPENAI_BASE_URL → /v1/chat/completions',\n claude: 'ANTHROPIC_BASE_URL → /v1/messages',\n },\n endpoints: {\n openai: ['/v1/chat/completions', '/v1/responses', '/v1/models'],\n anthropic: ['/v1/messages', '/v1/messages/count_tokens'],\n },\n translateAnthropic,\n upstream,\n });\n return;\n }\n\n // Only /v1/* (OpenAI + Anthropic share this prefix)\n if (!path.startsWith('/v1/') && path !== '/v1') {\n json(res, 404, {\n error: {\n message: `Not found: ${path}. Codex/OpenAI: /v1/chat/completions · Claude: /v1/messages · models: /v1/models`,\n type: 'not_found_error',\n },\n });\n return;\n }\n\n // Every /v1/* route exercises upstream credential authority (PROXY-01).\n if (!requireProxyAuth(req, res, proxyToken)) {\n return;\n }\n\n // Claude Code polls this for context sizing. xAI does not implement it;\n // answer locally so we never spam cli-chat-proxy with 404 traffic.\n if (method === 'POST' && path === '/v1/messages/count_tokens') {\n await handleCountTokens(req, res);\n return;\n }\n\n // Optional Anthropic → OpenAI translation for OpenAI-only upstreams\n if (translateAnthropic && method === 'POST' && path === '/v1/messages') {\n await handleAnthropicTranslated(req, res);\n return;\n }\n\n // Hub catalog discovery needs a usable OpenAI-shaped list even when\n // cli-chat-proxy.grok.com returns 404/empty for /v1/models.\n if ((method === 'GET' || method === 'HEAD') && path === '/v1/models') {\n await handleListModels(req, res, url, method);\n return;\n }\n\n log(`${method} ${path}`);\n await proxyPassThrough(req, res, url, method);\n }\n\n async function handleCountTokens(req: IncomingMessage, res: ServerResponse): Promise<void> {\n try {\n let body: {\n model?: string;\n system?: unknown;\n messages?: unknown;\n tools?: unknown;\n [key: string]: unknown;\n };\n try {\n body = JSON.parse((await readBody(req)).toString('utf8') || '{}') as typeof body;\n } catch {\n json(res, 400, {\n type: 'error',\n error: { type: 'invalid_request_error', message: 'Invalid JSON body' },\n });\n return;\n }\n const inputTokens = estimateAnthropicInputTokens(body);\n const model = typeof body.model === 'string' && body.model.trim() ? body.model.trim() : '?';\n log(`POST /v1/messages/count_tokens → ${inputTokens} (local · ${model})`);\n json(res, 200, { input_tokens: inputTokens });\n } catch (err) {\n const message = err instanceof Error ? err.message : String(err);\n log(` ✗ count_tokens ${message}`);\n if (!res.headersSent) {\n json(res, 502, {\n type: 'error',\n error: { type: 'proxy_error', message },\n });\n }\n }\n }\n\n /**\n * Prefer the live upstream catalog. If it is missing or empty, fall back to\n * the static GROK_MODELS map so Proxy Hub can still publish routes.\n */\n async function handleListModels(\n req: IncomingMessage,\n res: ServerResponse,\n url: string,\n method: string,\n ): Promise<void> {\n try {\n const { token, session } = await ensureAccessToken(opts.authPath, cached);\n cached = session;\n const target = `${upstream}${url}`;\n const headers = buildUpstreamHeaders(req, token, clientVersion);\n let upstreamRes = await fetchGrok(\n target,\n {\n method,\n headers,\n signal: AbortSignal.timeout(12_000),\n redirect: 'manual',\n },\n `${method}:${url}`,\n );\n\n if (upstreamRes.status === 401 && cached?.refreshToken) {\n log(' → 401 on /v1/models, refreshing OIDC token…');\n const refreshed = await ensureAccessToken(opts.authPath);\n cached = refreshed.session;\n const retryHeaders = buildUpstreamHeaders(req, refreshed.token, clientVersion);\n upstreamRes = await fetchGrok(\n target,\n {\n method,\n headers: retryHeaders,\n signal: AbortSignal.timeout(12_000),\n redirect: 'manual',\n },\n `${method}:${url}`,\n );\n }\n\n if (upstreamRes.ok) {\n const text = await upstreamRes.text();\n const models = modelIdsFromCatalogBody(text);\n if (models.length > 0) {\n log(` list models ← ${models.length} (upstream)`);\n // Re-emit a normalized OpenAI list so Hub parsing stays strict.\n json(res, 200, {\n object: 'list',\n data: models.map((id) => ({ id, object: 'model', owned_by: 'xai' })),\n });\n return;\n }\n log(' list models ← empty upstream; using static GROK_MODELS');\n } else {\n log(` list models ← ${upstreamRes.status}; using static GROK_MODELS`);\n }\n } catch (err) {\n log(\n ` list models ✗ ${err instanceof Error ? err.message : String(err)}; using static GROK_MODELS`,\n );\n }\n\n const models = staticGrokModelIds();\n log(` list models ← ${models.length} (fallback)`);\n json(res, 200, {\n object: 'list',\n data: models.map((id) => ({ id, object: 'model', owned_by: 'xai' })),\n });\n }\n\n /**\n * Native pass-through (default): inject OIDC Bearer, forward with only the\n * tool-schema hygiene needed for strict xAI validation.\n */\n async function proxyPassThrough(\n req: IncomingMessage,\n res: ServerResponse,\n url: string,\n method: string,\n ): Promise<void> {\n try {\n const { token, session } = await ensureAccessToken(opts.authPath, cached);\n cached = session;\n\n const target = `${upstream}${url}`;\n const rawBody =\n method === 'GET' || method === 'HEAD' || method === 'OPTIONS'\n ? undefined\n : await readBody(req);\n const body = rawBody ? sanitizePassThroughBody(pathOf(url), rawBody) : undefined;\n\n // content-length must match the body we actually send — schema sanitize can\n // shrink the payload when stripping null tool-schema keywords.\n const headers = buildUpstreamHeaders(req, token, clientVersion, body?.byteLength);\n if (body) {\n headers['content-length'] = String(body.byteLength);\n }\n\n const upstreamRes = await fetchGrok(\n target,\n {\n method,\n headers,\n body: body && body.length > 0 ? new Uint8Array(body) : undefined,\n signal: AbortSignal.timeout(600_000),\n redirect: 'manual',\n },\n `${method}:${url}`,\n );\n\n if (upstreamRes.status === 401 && cached?.refreshToken) {\n log(' → 401, refreshing OIDC token…');\n const refreshed = await ensureAccessToken(opts.authPath);\n cached = refreshed.session;\n const retryHeaders = buildUpstreamHeaders(\n req,\n refreshed.token,\n clientVersion,\n body?.byteLength,\n );\n if (body) {\n retryHeaders['content-length'] = String(body.byteLength);\n }\n const retry = await fetchGrok(\n target,\n {\n method,\n headers: retryHeaders,\n body: body && body.length > 0 ? new Uint8Array(body) : undefined,\n signal: AbortSignal.timeout(600_000),\n redirect: 'manual',\n },\n `${method}:${url}`,\n );\n await pipeResponse(retry, res, log);\n return;\n }\n\n await pipeResponse(upstreamRes, res, log);\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n log(` ✗ ${msg}`);\n if (!res.headersSent) {\n json(res, 502, {\n error: { message: msg, type: 'proxy_error' },\n });\n } else {\n res.end();\n }\n }\n }\n\n /**\n * Translate Anthropic Messages → OpenAI chat/completions (optional mode).\n */\n async function handleAnthropicTranslated(\n req: IncomingMessage,\n res: ServerResponse,\n ): Promise<void> {\n log('POST /v1/messages (translate → chat/completions)');\n try {\n const raw = await readBody(req);\n let body: AnthropicMessageRequest;\n try {\n body = JSON.parse(raw.toString('utf8') || '{}') as AnthropicMessageRequest;\n } catch {\n json(res, 400, {\n type: 'error',\n error: {\n type: 'invalid_request_error',\n message: 'Invalid JSON body',\n },\n });\n return;\n }\n\n if (!body.model) {\n json(res, 400, {\n type: 'error',\n error: {\n type: 'invalid_request_error',\n message: 'model is required',\n },\n });\n return;\n }\n if (body.max_tokens == null) {\n body.max_tokens = 4096;\n }\n\n const openaiBody = anthropicToOpenAI(body);\n const stream = Boolean(body.stream);\n openaiBody.stream = stream;\n\n const payload = Buffer.from(JSON.stringify(openaiBody), 'utf8');\n const { token, session } = await ensureAccessToken(opts.authPath, cached);\n cached = session;\n\n const target = `${upstream}/v1/chat/completions`;\n let upstreamRes = await fetchUpstream(target, token, payload);\n\n if (upstreamRes.status === 401 && cached?.refreshToken) {\n log(' → 401, refreshing OIDC token…');\n const refreshed = await ensureAccessToken(opts.authPath);\n cached = refreshed.session;\n upstreamRes = await fetchUpstream(target, refreshed.token, payload);\n }\n\n log(` ← ${upstreamRes.status} (via chat/completions)`);\n\n if (stream) {\n if (!upstreamRes.ok) {\n const errText = await upstreamRes.text();\n let message = errText;\n try {\n const parsed = JSON.parse(errText) as {\n error?: { message?: string };\n };\n message = parsed.error?.message ?? errText;\n } catch {\n // keep raw\n }\n res.writeHead(upstreamRes.status, {\n 'content-type': 'application/json; charset=utf-8',\n });\n res.end(\n JSON.stringify({\n type: 'error',\n error: { type: 'api_error', message },\n }),\n );\n return;\n }\n\n res.writeHead(200, {\n 'content-type': 'text/event-stream; charset=utf-8',\n 'cache-control': 'no-cache',\n connection: 'keep-alive',\n 'x-accel-buffering': 'no',\n });\n\n await pipeOpenAIStreamToAnthropic(\n upstreamRes,\n (chunk) => {\n res.write(chunk);\n },\n body.model,\n );\n res.end();\n return;\n }\n\n const text = await upstreamRes.text();\n let parsed: OpenAIChatResponse;\n try {\n parsed = JSON.parse(text) as OpenAIChatResponse;\n } catch {\n json(res, 502, {\n type: 'error',\n error: {\n type: 'api_error',\n message: `Upstream returned non-JSON: ${text.slice(0, 200)}`,\n },\n });\n return;\n }\n\n const converted = openAIToAnthropic(parsed, body.model);\n if ('type' in converted && converted.type === 'error') {\n json(res, upstreamRes.status >= 400 ? upstreamRes.status : 502, converted);\n return;\n }\n json(res, upstreamRes.ok ? 200 : upstreamRes.status, converted);\n } catch (err) {\n const msg = err instanceof Error ? err.message : String(err);\n log(` ✗ anthropic ${msg}`);\n if (!res.headersSent) {\n json(res, 502, {\n type: 'error',\n error: { type: 'proxy_error', message: msg },\n });\n } else {\n res.end();\n }\n }\n }\n\n async function fetchUpstream(target: string, token: string, payload: Buffer): Promise<Response> {\n return fetchGrok(\n target,\n {\n method: 'POST',\n headers: {\n authorization: `Bearer ${token}`,\n 'content-type': 'application/json',\n accept: 'application/json',\n 'x-grok-client-version': clientVersion,\n 'x-grok-client-identifier': 'anypick-grok-proxy',\n 'user-agent': `anypick-grok-proxy/${clientVersion}`,\n },\n body: new Uint8Array(payload),\n signal: AbortSignal.timeout(600_000),\n redirect: 'manual',\n },\n `POST:${target}`,\n );\n }\n\n async function fetchGrok(target: string, init: RequestInit, route: string): Promise<Response> {\n const isInference = init.method === 'POST';\n const key = `grok:${route}`;\n if (isInference) {\n const remaining = cooldowns.remainingMs(key);\n if (remaining > 0) {\n return new Response(\n JSON.stringify({\n error: {\n type: 'rate_limit_error',\n message: 'Grok route is cooling down.',\n },\n }),\n {\n status: 429,\n headers: {\n 'content-type': 'application/json',\n 'retry-after': String(Math.ceil(remaining / 1000)),\n },\n },\n );\n }\n }\n const response = await fetch(target, init);\n if (!isInference || response.status !== 429) {\n return response;\n }\n const body = await response.arrayBuffer();\n const failure = classifyUpstreamFailure(\n response.status,\n response.headers,\n new TextDecoder().decode(body),\n );\n if (failure.retryAfterMs) {\n cooldowns.set(key, failure.retryAfterMs);\n }\n return new Response(body, {\n status: response.status,\n headers: response.headers,\n });\n }\n\n return server;\n}\n\nfunction buildUpstreamHeaders(\n req: IncomingMessage,\n token: string,\n clientVersion: string,\n contentLength?: number,\n): Record<string, string> {\n const headers: Record<string, string> = {\n authorization: `Bearer ${token}`,\n 'x-grok-client-version': clientVersion,\n 'x-grok-client-identifier': 'anypick-grok-proxy',\n 'user-agent': `anypick-grok-proxy/${clientVersion}`,\n accept: req.headers.accept ?? 'application/json',\n };\n\n if (req.headers['content-type']) {\n headers['content-type'] = String(req.headers['content-type']);\n } else if (contentLength && contentLength > 0) {\n headers['content-type'] = 'application/json';\n }\n\n // Claude sends anthropic-version; forward it for native Anthropic upstream\n if (req.headers['anthropic-version']) {\n headers['anthropic-version'] = String(req.headers['anthropic-version']);\n }\n if (req.headers['anthropic-beta']) {\n headers['anthropic-beta'] = String(req.headers['anthropic-beta']);\n }\n\n // Forward select client headers but never client Authorization / x-api-key\n for (const [k, v] of Object.entries(req.headers)) {\n if (!v || HOP_BY_HOP.has(k.toLowerCase())) {\n continue;\n }\n if (k.toLowerCase() === 'authorization') {\n continue;\n }\n if (k.toLowerCase().startsWith('x-grok-')) {\n continue;\n }\n if (k.toLowerCase() === 'x-api-key') {\n continue;\n }\n if (k.toLowerCase() === 'anthropic-version') {\n continue;\n }\n if (k.toLowerCase() === 'anthropic-beta') {\n continue;\n }\n if (Array.isArray(v)) {\n headers[k] = v.join(', ');\n } else {\n headers[k] = v;\n }\n }\n\n return headers;\n}\n\nasync function pipeResponse(\n upstreamRes: Response,\n res: ServerResponse,\n log: (line: string) => void,\n): Promise<void> {\n // Buffer small error bodies so the hub log shows the real upstream reason\n // (e.g. xAI schema validation) without replaying multi-MB success streams.\n if (upstreamRes.status >= 400) {\n const errText = await upstreamRes.text();\n const snippet = errText.replaceAll(/[\\r\\n\\t]+/gu, ' ').slice(0, 400);\n log(` ← ${upstreamRes.status} ${snippet}`);\n const outHeaders: Record<string, string> = {};\n upstreamRes.headers.forEach((value, key) => {\n if (HOP_BY_HOP.has(key.toLowerCase()) || key.toLowerCase() === 'content-encoding') {\n return;\n }\n if (key.toLowerCase() === 'content-length') {\n return;\n }\n outHeaders[key] = value;\n });\n const payload = Buffer.from(errText, 'utf8');\n outHeaders['content-length'] = String(payload.byteLength);\n res.writeHead(upstreamRes.status, outHeaders);\n res.end(payload);\n return;\n }\n\n log(` ← ${upstreamRes.status}`);\n const outHeaders: Record<string, string> = {};\n upstreamRes.headers.forEach((value, key) => {\n if (HOP_BY_HOP.has(key.toLowerCase())) {\n return;\n }\n if (key.toLowerCase() === 'content-encoding') {\n return;\n }\n outHeaders[key] = value;\n });\n\n res.writeHead(upstreamRes.status, outHeaders);\n\n if (!upstreamRes.body) {\n res.end();\n return;\n }\n\n // Mirror opencode-proxy/stream.ts: honor backpressure and cancel xAI when the\n // hub/client hangs up. Without this, concurrent Claude tool rounds leave\n // half-open upstream streams and the hub logs \"Premature close\".\n let bytes = 0;\n let clientGone = false;\n const onClose = () => {\n clientGone = true;\n void upstreamRes.body?.cancel().catch(() => {});\n };\n res.once('close', onClose);\n const reader = upstreamRes.body.getReader() as ReadableStreamDefaultReader<Uint8Array>;\n try {\n while (!clientGone && !res.writableEnded && !res.destroyed) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n if (!value?.byteLength) {\n continue;\n }\n bytes += value.byteLength;\n if (!res.write(Buffer.from(value))) {\n if (!(await waitForDrain(res))) {\n clientGone = true;\n void reader.cancel().catch(() => {});\n break;\n }\n }\n }\n if (clientGone) {\n log(` ✗ client disconnected after ${bytes} bytes`);\n }\n } catch (err) {\n if (!clientGone && !isBenignStreamError(err)) {\n log(\n ` ✗ stream interrupted after ${bytes} bytes: ${err instanceof Error ? err.message : String(err)}`,\n );\n }\n } finally {\n res.removeListener('close', onClose);\n try {\n reader.releaseLock();\n } catch {\n // already released / cancelled\n }\n if (!res.writableEnded) {\n res.end();\n }\n }\n}\n\nfunction waitForDrain(res: ServerResponse): Promise<boolean> {\n if (res.writableEnded || res.destroyed || res.socket?.destroyed) {\n return Promise.resolve(false);\n }\n if (!res.writableNeedDrain) {\n return Promise.resolve(true);\n }\n return new Promise((resolve) => {\n const done = (ok: boolean) => {\n res.removeListener('drain', onDrain);\n res.removeListener('close', onFail);\n res.removeListener('error', onFail);\n resolve(ok);\n };\n const onDrain = () => done(true);\n const onFail = () => done(false);\n res.once('drain', onDrain);\n res.once('close', onFail);\n res.once('error', onFail);\n });\n}\n\nfunction isBenignStreamError(err: unknown): boolean {\n if (!err || typeof err !== 'object') {\n return false;\n }\n const value = err as { name?: string; code?: string; message?: string };\n if (value.name === 'AbortError' || value.code === 'ABORT_ERR') {\n return true;\n }\n if (value.code === 'ERR_STREAM_PREMATURE_CLOSE') {\n return true;\n }\n return (\n typeof value.message === 'string' &&\n /aborted|premature close|ECONNRESET|EPIPE|socket hang up/i.test(value.message)\n );\n}\n\nfunction checkCors(req: IncomingMessage, res: ServerResponse): boolean {\n const origin = req.headers.origin;\n if (origin) {\n try {\n const parsed = new URL(origin);\n const loopback =\n (parsed.hostname === 'localhost' ||\n parsed.hostname === '127.0.0.1' ||\n parsed.hostname === '[::1]') &&\n (parsed.protocol === 'http:' || parsed.protocol === 'https:');\n if (!loopback) {\n json(res, 403, {\n error: {\n type: 'forbidden_origin',\n message: 'Only loopback browser origins are allowed.',\n },\n });\n return false;\n }\n res.setHeader('access-control-allow-origin', origin);\n res.setHeader('vary', 'Origin');\n } catch {\n json(res, 403, {\n error: { type: 'forbidden_origin', message: 'Invalid browser origin.' },\n });\n return false;\n }\n }\n res.setHeader('access-control-allow-methods', 'GET,POST,OPTIONS,HEAD');\n res.setHeader(\n 'access-control-allow-headers',\n [\n 'authorization',\n 'content-type',\n 'x-api-key',\n 'openai-beta',\n 'openai-organization',\n 'anthropic-version',\n 'anthropic-beta',\n ].join(','),\n );\n return true;\n}\n\n/** Canonical ids from the static map (unique, stable order). */\nexport function staticGrokModelIds(): string[] {\n return [...new Set(Object.values(GROK_MODELS).filter((id) => id.trim().length > 0))];\n}\n\n/** Accept OpenAI `{ data:[{id}] }`, `{ models:[] }`, or a bare string array. */\nexport function modelIdsFromCatalogBody(text: string): string[] {\n let value: unknown;\n try {\n value = JSON.parse(text) as unknown;\n } catch {\n return [];\n }\n if (Array.isArray(value)) {\n return value\n .map((entry) =>\n typeof entry === 'string'\n ? entry\n : entry && typeof entry === 'object'\n ? (entry as { id?: unknown }).id\n : undefined,\n )\n .filter((id): id is string => typeof id === 'string' && id.trim().length > 0);\n }\n if (!value || typeof value !== 'object') {\n return [];\n }\n const record = value as { data?: unknown; models?: unknown };\n const list = Array.isArray(record.data)\n ? record.data\n : Array.isArray(record.models)\n ? record.models\n : null;\n if (!list) {\n return [];\n }\n return list\n .map((entry) =>\n typeof entry === 'string'\n ? entry\n : entry && typeof entry === 'object'\n ? (entry as { id?: unknown }).id\n : undefined,\n )\n .filter((id): id is string => typeof id === 'string' && id.trim().length > 0);\n}\n\nfunction json(res: ServerResponse, status: number, body: unknown): void {\n const raw = JSON.stringify(body);\n res.writeHead(status, {\n 'content-type': 'application/json; charset=utf-8',\n 'content-length': Buffer.byteLength(raw),\n });\n res.end(raw);\n}\n\nfunction pathOf(url: string): string {\n return url.split('?')[0] ?? url;\n}\n\n/**\n * Claude Code (and some MCP tool packs) put `\"required\": null` on tool\n * input_schema. xAI schema validation rejects that; strip null keywords\n * before the body leaves the loopback proxy.\n */\nfunction sanitizePassThroughBody(path: string, body: Buffer): Buffer {\n if (body.length === 0) {\n return body;\n }\n let parsed: unknown;\n try {\n parsed = JSON.parse(body.toString('utf8')) as unknown;\n } catch {\n return body;\n }\n if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {\n return body;\n }\n const { body: next, changed } = sanitizeInferenceToolSchemas(\n path,\n parsed as Record<string, unknown>,\n );\n return changed ? Buffer.from(JSON.stringify(next), 'utf8') : body;\n}\n\nexport function listenGrokProxy(\n opts: GrokProxyServerOptions,\n): Promise<{ server: Server; endpoint: string; port: number }> {\n const server = createGrokProxyServer(opts);\n return new Promise((resolve, reject) => {\n server.once('error', reject);\n server.listen(opts.port, opts.host, () => {\n const addr = server.address();\n if (!addr || typeof addr === 'string') {\n reject(new Error('Failed to bind Grok proxy'));\n return;\n }\n const endpoint = `http://${opts.host}:${addr.port}`;\n resolve({ server, endpoint, port: addr.port });\n });\n });\n}\n"],"mappings":"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"}
@@ -1,38 +0,0 @@
1
- import type { Account, AccountMeta, LiveAuthStatus, Provider, ProxyContext, ProxyHubBackendContext, ProxyHubBackendHandle, ProxyHandle, ProxyStatus, SourceAdapter } from '../types.js';
2
- export declare class GrokProvider implements Provider {
3
- private readonly home;
4
- readonly id = "grok";
5
- readonly name = "xAI Grok";
6
- readonly shortName = "Grok";
7
- readonly description = "Manages ~/.grok/auth.json + OpenAI/Anthropic compat proxy (Codex + Claude)";
8
- readonly defaultProxyPort = 8080;
9
- readonly proxyCompatibility = "OpenAI + Anthropic API";
10
- roleDefaults(): Record<string, string>;
11
- suggestModels(): Record<string, string>;
12
- roleFriendlyModels(): readonly string[];
13
- staticFallbackModels(): readonly string[];
14
- constructor(home?: string);
15
- sourceAdapter(account: Account): SourceAdapter;
16
- poolSourceAdapter(): SourceAdapter;
17
- createProxyHubBackend(ctx: ProxyHubBackendContext): Promise<ProxyHubBackendHandle>;
18
- private get authPath();
19
- detectLive(): Promise<LiveAuthStatus>;
20
- backup(destDir: string): Promise<Partial<Pick<AccountMeta, 'identity' | 'label' | 'notes'>>>;
21
- restore(srcDir: string): Promise<void>;
22
- describeSnapshot(srcDir: string): Promise<Partial<Pick<AccountMeta, 'identity' | 'label' | 'notes'>>>;
23
- /**
24
- * Delete local Grok auth.json only — does NOT revoke OIDC tokens server-side.
25
- */
26
- clearLive(): Promise<void>;
27
- /**
28
- * Refresh OIDC tokens inside a snapshot dir (auth.json).
29
- */
30
- refreshAuth(authDir: string): Promise<Partial<Pick<AccountMeta, 'identity' | 'label' | 'notes'>>>;
31
- snapshotMatchesLive(snapshotDir: string): Promise<boolean>;
32
- startProxy(ctx: ProxyContext): Promise<ProxyHandle>;
33
- stopProxy(ctx: ProxyContext): Promise<void>;
34
- proxyStatus(ctx: ProxyContext): Promise<ProxyStatus>;
35
- readProxyLogs(ctx: ProxyContext, lines?: number): Promise<string>;
36
- }
37
- export declare const grokProvider: GrokProvider;
38
- //# sourceMappingURL=grok.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grok.d.ts","sourceRoot":"","sources":["../../src/providers/grok.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,OAAO,EACP,WAAW,EACX,cAAc,EACd,QAAQ,EACR,YAAY,EACZ,sBAAsB,EACtB,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,aAAa,EACd,MAAM,UAAU,CAAC;AAgClB,qBAAa,YAAa,YAAW,QAAQ;IA4B/B,OAAO,CAAC,QAAQ,CAAC,IAAI;IA3BjC,QAAQ,CAAC,EAAE,UAAU;IACrB,QAAQ,CAAC,IAAI,cAAc;IAC3B,QAAQ,CAAC,SAAS,UAAU;IAC5B,QAAQ,CAAC,WAAW,gFAC2D;IAC/E,QAAQ,CAAC,gBAAgB,QAAgB;IACzC,QAAQ,CAAC,kBAAkB,4BAA4B;IAKvD,YAAY,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAErC;IAED,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAEtC;IAED,kBAAkB,IAAI,SAAS,MAAM,EAAE,CAEtC;IAED,oBAAoB,IAAI,SAAS,MAAM,EAAE,CAExC;IAED,YAA6B,IAAI,SAAY,EAAI;IAEjD,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,aAAa,CAE7C;IAED,iBAAiB,IAAI,aAAa,CAEjC;IAEK,qBAAqB,CAAC,GAAG,EAAE,sBAAsB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAmBvF;IAED,OAAO,KAAK,QAAQ,GAEnB;IAEK,UAAU,IAAI,OAAO,CAAC,cAAc,CAAC,CAmB1C;IAEK,MAAM,CACV,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAarE;IAEK,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3C;IAEK,gBAAgB,CACpB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAerE;IAED;;OAEG;IACG,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAS/B;IAED;;OAEG;IACG,WAAW,CACf,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CASrE;IAEK,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE/D;IAIK,UAAU,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CA8GxD;IAEK,SAAS,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAEhD;IAEK,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAiBzD;IAEK,aAAa,CAAC,GAAG,EAAE,YAAY,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAQlE;CACF;AA6BD,eAAO,MAAM,YAAY,cAAqB,CAAC"}
@@ -1,250 +0,0 @@
1
- import { AnyPickError } from "../utils/errors.js";
2
- import { backupRequiredFile, ensureDir, pathExists, readJsonFile, restoreRequiredFile } from "../utils/fs.js";
3
- import { waitForHttp } from "../utils/process/health.js";
4
- import { isProcessRunning, readPidFile, spawnDetached, stopPidFile } from "../utils/process/pid.js";
5
- import { assertLoopbackHost } from "../utils/network.js";
6
- import { grokAccountAdapter, poolAdapterFor } from "../sources/account-adapters.js";
7
- import { rolesFromLiveDiscovery } from "./model-policy.js";
8
- import { closeProxyHubBackend } from "./proxy-hub-backend.js";
9
- import { snapshotMatchesLiveDefault } from "./auth-fingerprint.js";
10
- import { listenGrokProxy } from "./grok-proxy/server.js";
11
- import { existsSync } from "node:fs";
12
- import { join } from "node:path";
13
- import { writeFile } from "node:fs/promises";
14
- import { homedir } from "node:os";
15
- import { fileURLToPath } from "node:url";
16
- //#region src/providers/grok.ts
17
- /**
18
- * xAI Grok CLI / Grok Build
19
- *
20
- * Live auth: ~/.grok/auth.json (OIDC)
21
- *
22
- * Built-in dual-protocol proxy:
23
- * OpenAI (/v1/chat/completions) → Codex
24
- * Anthropic (/v1/messages) → Claude Code
25
- * Injects CLI OIDC token and forwards to cli-chat-proxy.grok.com.
26
- * No external binary required.
27
- */
28
- var DEFAULT_PORT = 8080;
29
- var GrokProvider = class {
30
- home;
31
- id = "grok";
32
- name = "xAI Grok";
33
- shortName = "Grok";
34
- description = "Manages ~/.grok/auth.json + OpenAI/Anthropic compat proxy (Codex + Claude)";
35
- defaultProxyPort = DEFAULT_PORT;
36
- proxyCompatibility = "OpenAI + Anthropic API";
37
- roleDefaults() {
38
- return rolesFromLiveDiscovery();
39
- }
40
- suggestModels() {
41
- return {};
42
- }
43
- roleFriendlyModels() {
44
- return [];
45
- }
46
- staticFallbackModels() {
47
- return [];
48
- }
49
- constructor(home = homedir()) {
50
- this.home = home;
51
- }
52
- sourceAdapter(account) {
53
- return grokAccountAdapter(account);
54
- }
55
- poolSourceAdapter() {
56
- return poolAdapterFor(this.id, this);
57
- }
58
- async createProxyHubBackend(ctx) {
59
- if (ctx.accounts.length !== 1) throw new AnyPickError("Grok multi-account pools are not available through Proxy Hub yet.", "POOL_NOT_ENABLED");
60
- const account = ctx.accounts[0];
61
- const options = account.proxy.options ?? {};
62
- const { server, endpoint } = await listenGrokProxy({
63
- host: "127.0.0.1",
64
- port: 0,
65
- authPath: join(account.snapshotDir, "auth.json"),
66
- upstream: typeof options.upstream === "string" ? options.upstream : void 0,
67
- clientVersion: typeof options.clientVersion === "string" ? options.clientVersion : void 0,
68
- token: ctx.token,
69
- log: ctx.log
70
- });
71
- return {
72
- endpoint,
73
- close: () => closeProxyHubBackend(server)
74
- };
75
- }
76
- get authPath() {
77
- return process.env.GROK_AUTH_PATH ?? join(this.home, ".grok", "auth.json");
78
- }
79
- async detectLive() {
80
- const path = this.authPath;
81
- if (!await pathExists(path)) return { present: false };
82
- try {
83
- const data = await readJsonFile(path);
84
- const sessions = Object.values(data).filter((v) => v && typeof v === "object");
85
- if (sessions.length === 0) return { present: false };
86
- return {
87
- present: true,
88
- identity: firstEmail(sessions)
89
- };
90
- } catch {
91
- return {
92
- present: true,
93
- details: "auth.json present (unreadable)"
94
- };
95
- }
96
- }
97
- async backup(destDir) {
98
- const dest = join(destDir, "auth.json");
99
- await backupRequiredFile(this.authPath, dest, "Grok auth.json");
100
- try {
101
- const data = await readJsonFile(dest);
102
- return { identity: firstEmail(Object.values(data).filter((v) => v && typeof v === "object")) };
103
- } catch {
104
- return {};
105
- }
106
- }
107
- async restore(srcDir) {
108
- await restoreRequiredFile(join(srcDir, "auth.json"), this.authPath, "auth.json");
109
- }
110
- async describeSnapshot(srcDir) {
111
- const path = join(srcDir, "auth.json");
112
- if (!await pathExists(path)) return {};
113
- try {
114
- const data = await readJsonFile(path);
115
- return { identity: firstEmail(Object.values(data).filter((v) => v && typeof v === "object")) };
116
- } catch {
117
- return {};
118
- }
119
- }
120
- /**
121
- * Delete local Grok auth.json only — does NOT revoke OIDC tokens server-side.
122
- */
123
- async clearLive() {
124
- const { rm } = await import("node:fs/promises");
125
- for (const p of [this.authPath, `${this.authPath}.lock`]) try {
126
- await rm(p, { force: true });
127
- } catch {}
128
- }
129
- /**
130
- * Refresh OIDC tokens inside a snapshot dir (auth.json).
131
- */
132
- async refreshAuth(authDir) {
133
- const path = join(authDir, "auth.json");
134
- if (!await pathExists(path)) throw new Error(`No auth.json in ${authDir}`);
135
- const { loadGrokSession, refreshSession } = await import("./grok-proxy/auth.js");
136
- return { identity: (await refreshSession(path, await loadGrokSession(path))).email };
137
- }
138
- async snapshotMatchesLive(snapshotDir) {
139
- return snapshotMatchesLiveDefault("grok", snapshotDir);
140
- }
141
- async startProxy(ctx) {
142
- const host = ctx.config.host ?? "127.0.0.1";
143
- assertLoopbackHost(host);
144
- const port = ctx.config.port ?? DEFAULT_PORT;
145
- const mainJs = resolveProxyMain();
146
- if (!await pathExists(mainJs)) throw new AnyPickError(`Grok proxy entry not found at ${mainJs}. Run: pnpm build`, "PROXY_BINARY_MISSING");
147
- await ensureDir(ctx.runtimeDir);
148
- const logPath = join(ctx.runtimeDir, "proxy.log");
149
- const pidPath = join(ctx.runtimeDir, "proxy.pid");
150
- await writeFile(logPath, "", { mode: 384 });
151
- const authPath = await pathExists(this.authPath) ? this.authPath : join(ctx.snapshotDir, "auth.json");
152
- if (!await pathExists(authPath)) throw new AnyPickError("No Grok auth available to start proxy. Save/login first.", "NO_LIVE_AUTH");
153
- const clientVersion = (typeof ctx.config.options?.clientVersion === "string" ? ctx.config.options.clientVersion : void 0) ?? process.env.GROK_CLIENT_VERSION ?? "0.2.101";
154
- const upstream = (typeof ctx.config.options?.upstream === "string" ? ctx.config.options.upstream : void 0) ?? process.env.GROK_PROXY_UPSTREAM ?? "https://cli-chat-proxy.grok.com";
155
- const endpoint = `http://${host}:${port}`;
156
- const { pid, instanceId } = await spawnDetached(process.execPath, [
157
- mainJs,
158
- "--port",
159
- String(port),
160
- "--host",
161
- host,
162
- "--auth-path",
163
- authPath,
164
- "--upstream",
165
- upstream,
166
- "--client-version",
167
- clientVersion
168
- ], {
169
- logPath,
170
- pidPath,
171
- endpoint,
172
- provider: "grok",
173
- account: ctx.accountName,
174
- env: {
175
- ...process.env,
176
- GROK_AUTH_PATH: authPath,
177
- ...ctx.token ? { ANYPICK_PROXY_TOKEN: ctx.token } : {},
178
- ANYPICK_PROXY_LOG: logPath
179
- }
180
- });
181
- if (!await waitForHttp(`${endpoint}/health`, {
182
- timeoutMs: 5e3,
183
- requirePid: pid,
184
- expectInstanceId: instanceId
185
- }) || !isProcessRunning(pid)) {
186
- const { readFile } = await import("node:fs/promises");
187
- let tail = "";
188
- try {
189
- tail = (await readFile(logPath, "utf8")).split(/\r?\n/).slice(-20).join("\n");
190
- } catch {}
191
- if (isProcessRunning(pid)) try {
192
- process.kill(pid, "SIGTERM");
193
- } catch {}
194
- throw new AnyPickError(`Grok proxy failed to bind ${host}:${port}.${tail ? `\n${tail}` : ""}`, "PROXY_START_FAILED");
195
- }
196
- return {
197
- endpoint,
198
- compatibility: this.proxyCompatibility,
199
- pid,
200
- instanceId,
201
- token: ctx.token,
202
- logPath
203
- };
204
- }
205
- async stopProxy(ctx) {
206
- await stopPidFile(join(ctx.runtimeDir, "proxy.pid"));
207
- }
208
- async proxyStatus(ctx) {
209
- const pidPath = join(ctx.runtimeDir, "proxy.pid");
210
- const logPath = join(ctx.runtimeDir, "proxy.log");
211
- const pid = await readPidFile(pidPath);
212
- const running = pid != null && isProcessRunning(pid);
213
- const host = ctx.config.host ?? "127.0.0.1";
214
- const port = ctx.config.port ?? DEFAULT_PORT;
215
- return {
216
- enabled: ctx.config.enabled,
217
- running,
218
- endpoint: running ? `http://${host}:${port}` : void 0,
219
- compatibility: this.proxyCompatibility,
220
- pid: running ? pid ?? void 0 : void 0,
221
- logPath: await pathExists(logPath) ? logPath : void 0,
222
- detail: running ? void 0 : ctx.config.enabled ? "stopped" : "disabled"
223
- };
224
- }
225
- async readProxyLogs(ctx, lines = 50) {
226
- const logPath = join(ctx.runtimeDir, "proxy.log");
227
- if (!await pathExists(logPath)) return "(no log file yet)";
228
- const { readFile } = await import("node:fs/promises");
229
- return (await readFile(logPath, "utf8")).split(/\r?\n/).slice(-lines).join("\n");
230
- }
231
- };
232
- function resolveProxyMain() {
233
- const here = fileURLToPath(new URL(".", import.meta.url));
234
- const primary = join(here, "grok-proxy", "main.js");
235
- if (existsSync(primary)) return primary;
236
- const fromSrc = join(here, "..", "..", "dist", "providers", "grok-proxy", "main.js");
237
- if (existsSync(fromSrc)) return fromSrc;
238
- return primary;
239
- }
240
- function firstEmail(sessions) {
241
- for (const s of sessions) {
242
- if (typeof s.email === "string" && s.email) return s.email;
243
- if (typeof s.user_id === "string" && s.user_id) return s.user_id;
244
- }
245
- }
246
- var grokProvider = new GrokProvider();
247
- //#endregion
248
- export { GrokProvider, grokProvider };
249
-
250
- //# sourceMappingURL=grok.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"grok.js","names":[],"sources":["../../src/providers/grok.ts"],"sourcesContent":["import { existsSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { homedir } from 'node:os';\nimport { fileURLToPath } from 'node:url';\nimport type {\n Account,\n AccountMeta,\n LiveAuthStatus,\n Provider,\n ProxyContext,\n ProxyHubBackendContext,\n ProxyHubBackendHandle,\n ProxyHandle,\n ProxyStatus,\n SourceAdapter,\n} from '../types';\nimport { grokAccountAdapter, poolAdapterFor } from '../sources/account-adapters';\nimport { backupRequiredFile, pathExists, readJsonFile, restoreRequiredFile } from '../utils/fs';\nimport {\n isProcessRunning,\n readPidFile,\n spawnDetached,\n stopPidFile,\n waitForHttp,\n} from '../utils/process';\nimport { AnyPickError } from '../utils/errors';\nimport { snapshotMatchesLiveDefault } from './auth-fingerprint';\nimport { ensureDir } from '../utils/fs';\nimport { writeFile } from 'node:fs/promises';\nimport { assertLoopbackHost } from '../utils/network';\nimport { rolesFromLiveDiscovery } from './model-policy';\nimport { listenGrokProxy } from './grok-proxy/server';\nimport { closeProxyHubBackend } from './proxy-hub-backend';\n\n/**\n * xAI Grok CLI / Grok Build\n *\n * Live auth: ~/.grok/auth.json (OIDC)\n *\n * Built-in dual-protocol proxy:\n * OpenAI (/v1/chat/completions) → Codex\n * Anthropic (/v1/messages) → Claude Code\n * Injects CLI OIDC token and forwards to cli-chat-proxy.grok.com.\n * No external binary required.\n */\nconst DEFAULT_PORT = 8080;\n\nexport class GrokProvider implements Provider {\n readonly id = 'grok';\n readonly name = 'xAI Grok';\n readonly shortName = 'Grok';\n readonly description =\n 'Manages ~/.grok/auth.json + OpenAI/Anthropic compat proxy (Codex + Claude)';\n readonly defaultProxyPort = DEFAULT_PORT;\n readonly proxyCompatibility = 'OpenAI + Anthropic API';\n\n // Prefer the running proxy's /v1/models (account-scoped). Static maps are the\n // offline fallback so tray/TUI still offer a usable catalog when the proxy is\n // stopped or discovery fails.\n roleDefaults(): Record<string, string> {\n return rolesFromLiveDiscovery();\n }\n\n suggestModels(): Record<string, string> {\n return {};\n }\n\n roleFriendlyModels(): readonly string[] {\n return [];\n }\n\n staticFallbackModels(): readonly string[] {\n return [];\n }\n\n constructor(private readonly home = homedir()) {}\n\n sourceAdapter(account: Account): SourceAdapter {\n return grokAccountAdapter(account);\n }\n\n poolSourceAdapter(): SourceAdapter {\n return poolAdapterFor(this.id, this);\n }\n\n async createProxyHubBackend(ctx: ProxyHubBackendContext): Promise<ProxyHubBackendHandle> {\n if (ctx.accounts.length !== 1) {\n throw new AnyPickError(\n 'Grok multi-account pools are not available through Proxy Hub yet.',\n 'POOL_NOT_ENABLED',\n );\n }\n const account = ctx.accounts[0];\n const options = account.proxy.options ?? {};\n const { server, endpoint } = await listenGrokProxy({\n host: '127.0.0.1',\n port: 0,\n authPath: join(account.snapshotDir, 'auth.json'),\n upstream: typeof options.upstream === 'string' ? options.upstream : undefined,\n clientVersion: typeof options.clientVersion === 'string' ? options.clientVersion : undefined,\n token: ctx.token,\n log: ctx.log,\n });\n return { endpoint, close: () => closeProxyHubBackend(server) };\n }\n\n private get authPath(): string {\n return process.env.GROK_AUTH_PATH ?? join(this.home, '.grok', 'auth.json');\n }\n\n async detectLive(): Promise<LiveAuthStatus> {\n const path = this.authPath;\n if (!(await pathExists(path))) {\n return { present: false };\n }\n try {\n const data = await readJsonFile<Record<string, unknown>>(path);\n const sessions = Object.values(data).filter((v) => v && typeof v === 'object') as Record<\n string,\n unknown\n >[];\n if (sessions.length === 0) {\n return { present: false };\n }\n const identity = firstEmail(sessions);\n return { present: true, identity };\n } catch {\n return { present: true, details: 'auth.json present (unreadable)' };\n }\n }\n\n async backup(\n destDir: string,\n ): Promise<Partial<Pick<AccountMeta, 'identity' | 'label' | 'notes'>>> {\n const dest = join(destDir, 'auth.json');\n await backupRequiredFile(this.authPath, dest, 'Grok auth.json');\n try {\n const data = await readJsonFile<Record<string, unknown>>(dest);\n const sessions = Object.values(data).filter((v) => v && typeof v === 'object') as Record<\n string,\n unknown\n >[];\n return { identity: firstEmail(sessions) };\n } catch {\n return {};\n }\n }\n\n async restore(srcDir: string): Promise<void> {\n await restoreRequiredFile(join(srcDir, 'auth.json'), this.authPath, 'auth.json');\n }\n\n async describeSnapshot(\n srcDir: string,\n ): Promise<Partial<Pick<AccountMeta, 'identity' | 'label' | 'notes'>>> {\n const path = join(srcDir, 'auth.json');\n if (!(await pathExists(path))) {\n return {};\n }\n try {\n const data = await readJsonFile<Record<string, unknown>>(path);\n const sessions = Object.values(data).filter((v) => v && typeof v === 'object') as Record<\n string,\n unknown\n >[];\n return { identity: firstEmail(sessions) };\n } catch {\n return {};\n }\n }\n\n /**\n * Delete local Grok auth.json only — does NOT revoke OIDC tokens server-side.\n */\n async clearLive(): Promise<void> {\n const { rm } = await import('node:fs/promises');\n for (const p of [this.authPath, `${this.authPath}.lock`]) {\n try {\n await rm(p, { force: true });\n } catch {\n // ignore\n }\n }\n }\n\n /**\n * Refresh OIDC tokens inside a snapshot dir (auth.json).\n */\n async refreshAuth(\n authDir: string,\n ): Promise<Partial<Pick<AccountMeta, 'identity' | 'label' | 'notes'>>> {\n const path = join(authDir, 'auth.json');\n if (!(await pathExists(path))) {\n throw new Error(`No auth.json in ${authDir}`);\n }\n const { loadGrokSession, refreshSession } = await import('./grok-proxy/auth');\n const session = await loadGrokSession(path);\n const updated = await refreshSession(path, session);\n return { identity: updated.email };\n }\n\n async snapshotMatchesLive(snapshotDir: string): Promise<boolean> {\n return snapshotMatchesLiveDefault('grok', snapshotDir);\n }\n\n // ── Built-in proxy ──────────────────────────────────────────────\n\n async startProxy(ctx: ProxyContext): Promise<ProxyHandle> {\n const host = ctx.config.host ?? '127.0.0.1';\n assertLoopbackHost(host);\n const port = ctx.config.port ?? DEFAULT_PORT;\n const mainJs = resolveProxyMain();\n if (!(await pathExists(mainJs))) {\n throw new AnyPickError(\n `Grok proxy entry not found at ${mainJs}. Run: pnpm build`,\n 'PROXY_BINARY_MISSING',\n );\n }\n\n await ensureDir(ctx.runtimeDir);\n const logPath = join(ctx.runtimeDir, 'proxy.log');\n const pidPath = join(ctx.runtimeDir, 'proxy.pid');\n await writeFile(logPath, '', { mode: 0o600 });\n\n // Prefer live auth (already restored on switch); fall back to snapshot.\n const authPath = (await pathExists(this.authPath))\n ? this.authPath\n : join(ctx.snapshotDir, 'auth.json');\n\n if (!(await pathExists(authPath))) {\n throw new AnyPickError(\n 'No Grok auth available to start proxy. Save/login first.',\n 'NO_LIVE_AUTH',\n );\n }\n\n const clientVersion =\n (typeof ctx.config.options?.clientVersion === 'string'\n ? ctx.config.options.clientVersion\n : undefined) ??\n process.env.GROK_CLIENT_VERSION ??\n '0.2.101';\n\n const upstream =\n (typeof ctx.config.options?.upstream === 'string'\n ? ctx.config.options.upstream\n : undefined) ??\n process.env.GROK_PROXY_UPSTREAM ??\n 'https://cli-chat-proxy.grok.com';\n\n const endpoint = `http://${host}:${port}`;\n const { pid, instanceId } = await spawnDetached(\n process.execPath,\n [\n mainJs,\n '--port',\n String(port),\n '--host',\n host,\n '--auth-path',\n authPath,\n '--upstream',\n upstream,\n '--client-version',\n clientVersion,\n ],\n {\n logPath,\n pidPath,\n endpoint,\n provider: 'grok',\n account: ctx.accountName,\n env: {\n ...process.env,\n GROK_AUTH_PATH: authPath,\n ...(ctx.token ? { ANYPICK_PROXY_TOKEN: ctx.token } : {}),\n ANYPICK_PROXY_LOG: logPath,\n },\n },\n );\n\n const ready = await waitForHttp(`${endpoint}/health`, {\n timeoutMs: 5000,\n requirePid: pid,\n expectInstanceId: instanceId,\n });\n\n if (!ready || !isProcessRunning(pid)) {\n const { readFile } = await import('node:fs/promises');\n let tail = '';\n try {\n const raw = await readFile(logPath, 'utf8');\n tail = raw.split(/\\r?\\n/).slice(-20).join('\\n');\n } catch {\n // ignore\n }\n if (isProcessRunning(pid)) {\n try {\n process.kill(pid, 'SIGTERM');\n } catch {\n // ignore\n }\n }\n throw new AnyPickError(\n `Grok proxy failed to bind ${host}:${port}.${tail ? `\\n${tail}` : ''}`,\n 'PROXY_START_FAILED',\n );\n }\n\n return {\n endpoint,\n compatibility: this.proxyCompatibility,\n pid,\n instanceId,\n token: ctx.token,\n logPath,\n };\n }\n\n async stopProxy(ctx: ProxyContext): Promise<void> {\n await stopPidFile(join(ctx.runtimeDir, 'proxy.pid'));\n }\n\n async proxyStatus(ctx: ProxyContext): Promise<ProxyStatus> {\n const pidPath = join(ctx.runtimeDir, 'proxy.pid');\n const logPath = join(ctx.runtimeDir, 'proxy.log');\n const pid = await readPidFile(pidPath);\n const running = pid != null && isProcessRunning(pid);\n const host = ctx.config.host ?? '127.0.0.1';\n const port = ctx.config.port ?? DEFAULT_PORT;\n\n return {\n enabled: ctx.config.enabled,\n running,\n endpoint: running ? `http://${host}:${port}` : undefined,\n compatibility: this.proxyCompatibility,\n pid: running ? (pid ?? undefined) : undefined,\n logPath: (await pathExists(logPath)) ? logPath : undefined,\n detail: running ? undefined : ctx.config.enabled ? 'stopped' : 'disabled',\n };\n }\n\n async readProxyLogs(ctx: ProxyContext, lines = 50): Promise<string> {\n const logPath = join(ctx.runtimeDir, 'proxy.log');\n if (!(await pathExists(logPath))) {\n return '(no log file yet)';\n }\n const { readFile } = await import('node:fs/promises');\n const raw = await readFile(logPath, 'utf8');\n return raw.split(/\\r?\\n/).slice(-lines).join('\\n');\n }\n}\n\nfunction resolveProxyMain(): string {\n // dist/providers/grok.js → dist/providers/grok-proxy/main.js\n // When running via tsx from src/, fall back to dist build output.\n const here = fileURLToPath(new URL('.', import.meta.url));\n const primary = join(here, 'grok-proxy', 'main.js');\n if (existsSync(primary)) {\n return primary;\n }\n const fromSrc = join(here, '..', '..', 'dist', 'providers', 'grok-proxy', 'main.js');\n if (existsSync(fromSrc)) {\n return fromSrc;\n }\n return primary;\n}\n\nfunction firstEmail(sessions: Record<string, unknown>[]): string | undefined {\n for (const s of sessions) {\n if (typeof s.email === 'string' && s.email) {\n return s.email;\n }\n if (typeof s.user_id === 'string' && s.user_id) {\n return s.user_id;\n }\n }\n return undefined;\n}\n\nexport const grokProvider = new GrokProvider();\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AA6CA,IAAM,eAAe;AAErB,IAAa,eAAb,MAA8C;CA4Bf;CA3B7B,KAAc;CACd,OAAgB;CAChB,YAAqB;CACrB,cACE;CACF,mBAA4B;CAC5B,qBAA8B;CAK9B,eAAuC;EACrC,OAAO,uBAAuB;CAChC;CAEA,gBAAwC;EACtC,OAAO,CAAC;CACV;CAEA,qBAAwC;EACtC,OAAO,CAAC;CACV;CAEA,uBAA0C;EACxC,OAAO,CAAC;CACV;CAEA,YAAY,OAAwB,QAAQ,GAAG;EAAlB,KAAA,OAAA;CAAmB;CAEhD,cAAc,SAAiC;EAC7C,OAAO,mBAAmB,OAAO;CACnC;CAEA,oBAAmC;EACjC,OAAO,eAAe,KAAK,IAAI,IAAI;CACrC;CAEA,MAAM,sBAAsB,KAA6D;EACvF,IAAI,IAAI,SAAS,WAAW,GAC1B,MAAM,IAAI,aACR,qEACA,kBACF;EAEF,MAAM,UAAU,IAAI,SAAS;EAC7B,MAAM,UAAU,QAAQ,MAAM,WAAW,CAAC;EAC1C,MAAM,EAAE,QAAQ,aAAa,MAAM,gBAAgB;GACjD,MAAM;GACN,MAAM;GACN,UAAU,KAAK,QAAQ,aAAa,WAAW;GAC/C,UAAU,OAAO,QAAQ,aAAa,WAAW,QAAQ,WAAW,KAAA;GACpE,eAAe,OAAO,QAAQ,kBAAkB,WAAW,QAAQ,gBAAgB,KAAA;GACnF,OAAO,IAAI;GACX,KAAK,IAAI;EACX,CAAC;EACD,OAAO;GAAE;GAAU,aAAa,qBAAqB,MAAM;EAAE;CAC/D;CAEA,IAAY,WAAmB;EAC7B,OAAO,QAAQ,IAAI,kBAAkB,KAAK,KAAK,MAAM,SAAS,WAAW;CAC3E;CAEA,MAAM,aAAsC;EAC1C,MAAM,OAAO,KAAK;EAClB,IAAI,CAAE,MAAM,WAAW,IAAI,GACzB,OAAO,EAAE,SAAS,MAAM;EAE1B,IAAI;GACF,MAAM,OAAO,MAAM,aAAsC,IAAI;GAC7D,MAAM,WAAW,OAAO,OAAO,IAAI,CAAC,CAAC,QAAQ,MAAM,KAAK,OAAO,MAAM,QAAQ;GAI7E,IAAI,SAAS,WAAW,GACtB,OAAO,EAAE,SAAS,MAAM;GAG1B,OAAO;IAAE,SAAS;IAAM,UADP,WAAW,QACJ;GAAS;EACnC,QAAQ;GACN,OAAO;IAAE,SAAS;IAAM,SAAS;GAAiC;EACpE;CACF;CAEA,MAAM,OACJ,SACqE;EACrE,MAAM,OAAO,KAAK,SAAS,WAAW;EACtC,MAAM,mBAAmB,KAAK,UAAU,MAAM,gBAAgB;EAC9D,IAAI;GACF,MAAM,OAAO,MAAM,aAAsC,IAAI;GAK7D,OAAO,EAAE,UAAU,WAJF,OAAO,OAAO,IAAI,CAAC,CAAC,QAAQ,MAAM,KAAK,OAAO,MAAM,QAIvC,CAAQ,EAAE;EAC1C,QAAQ;GACN,OAAO,CAAC;EACV;CACF;CAEA,MAAM,QAAQ,QAA+B;EAC3C,MAAM,oBAAoB,KAAK,QAAQ,WAAW,GAAG,KAAK,UAAU,WAAW;CACjF;CAEA,MAAM,iBACJ,QACqE;EACrE,MAAM,OAAO,KAAK,QAAQ,WAAW;EACrC,IAAI,CAAE,MAAM,WAAW,IAAI,GACzB,OAAO,CAAC;EAEV,IAAI;GACF,MAAM,OAAO,MAAM,aAAsC,IAAI;GAK7D,OAAO,EAAE,UAAU,WAJF,OAAO,OAAO,IAAI,CAAC,CAAC,QAAQ,MAAM,KAAK,OAAO,MAAM,QAIvC,CAAQ,EAAE;EAC1C,QAAQ;GACN,OAAO,CAAC;EACV;CACF;;;;CAKA,MAAM,YAA2B;EAC/B,MAAM,EAAE,OAAO,MAAM,OAAO;EAC5B,KAAK,MAAM,KAAK,CAAC,KAAK,UAAU,GAAG,KAAK,SAAS,MAAM,GACrD,IAAI;GACF,MAAM,GAAG,GAAG,EAAE,OAAO,KAAK,CAAC;EAC7B,QAAQ,CAER;CAEJ;;;;CAKA,MAAM,YACJ,SACqE;EACrE,MAAM,OAAO,KAAK,SAAS,WAAW;EACtC,IAAI,CAAE,MAAM,WAAW,IAAI,GACzB,MAAM,IAAI,MAAM,mBAAmB,SAAS;EAE9C,MAAM,EAAE,iBAAiB,mBAAmB,MAAM,OAAO;EAGzD,OAAO,EAAE,WAAU,MADG,eAAe,MAAM,MADrB,gBAAgB,IAAI,CACQ,EAAA,CACvB,MAAM;CACnC;CAEA,MAAM,oBAAoB,aAAuC;EAC/D,OAAO,2BAA2B,QAAQ,WAAW;CACvD;CAIA,MAAM,WAAW,KAAyC;EACxD,MAAM,OAAO,IAAI,OAAO,QAAQ;EAChC,mBAAmB,IAAI;EACvB,MAAM,OAAO,IAAI,OAAO,QAAQ;EAChC,MAAM,SAAS,iBAAiB;EAChC,IAAI,CAAE,MAAM,WAAW,MAAM,GAC3B,MAAM,IAAI,aACR,iCAAiC,OAAO,oBACxC,sBACF;EAGF,MAAM,UAAU,IAAI,UAAU;EAC9B,MAAM,UAAU,KAAK,IAAI,YAAY,WAAW;EAChD,MAAM,UAAU,KAAK,IAAI,YAAY,WAAW;EAChD,MAAM,UAAU,SAAS,IAAI,EAAE,MAAM,IAAM,CAAC;EAG5C,MAAM,WAAY,MAAM,WAAW,KAAK,QAAQ,IAC5C,KAAK,WACL,KAAK,IAAI,aAAa,WAAW;EAErC,IAAI,CAAE,MAAM,WAAW,QAAQ,GAC7B,MAAM,IAAI,aACR,4DACA,cACF;EAGF,MAAM,iBACH,OAAO,IAAI,OAAO,SAAS,kBAAkB,WAC1C,IAAI,OAAO,QAAQ,gBACnB,KAAA,MACJ,QAAQ,IAAI,uBACZ;EAEF,MAAM,YACH,OAAO,IAAI,OAAO,SAAS,aAAa,WACrC,IAAI,OAAO,QAAQ,WACnB,KAAA,MACJ,QAAQ,IAAI,uBACZ;EAEF,MAAM,WAAW,UAAU,KAAK,GAAG;EACnC,MAAM,EAAE,KAAK,eAAe,MAAM,cAChC,QAAQ,UACR;GACE;GACA;GACA,OAAO,IAAI;GACX;GACA;GACA;GACA;GACA;GACA;GACA;GACA;EACF,GACA;GACE;GACA;GACA;GACA,UAAU;GACV,SAAS,IAAI;GACb,KAAK;IACH,GAAG,QAAQ;IACX,gBAAgB;IAChB,GAAI,IAAI,QAAQ,EAAE,qBAAqB,IAAI,MAAM,IAAI,CAAC;IACtD,mBAAmB;GACrB;EACF,CACF;EAQA,IAAI,CAAC,MANe,YAAY,GAAG,SAAS,UAAU;GACpD,WAAW;GACX,YAAY;GACZ,kBAAkB;EACpB,CAAC,KAEa,CAAC,iBAAiB,GAAG,GAAG;GACpC,MAAM,EAAE,aAAa,MAAM,OAAO;GAClC,IAAI,OAAO;GACX,IAAI;IAEF,QAAO,MADW,SAAS,SAAS,MAAM,EAAA,CAC/B,MAAM,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,IAAI;GAChD,QAAQ,CAER;GACA,IAAI,iBAAiB,GAAG,GACtB,IAAI;IACF,QAAQ,KAAK,KAAK,SAAS;GAC7B,QAAQ,CAER;GAEF,MAAM,IAAI,aACR,6BAA6B,KAAK,GAAG,KAAK,GAAG,OAAO,KAAK,SAAS,MAClE,oBACF;EACF;EAEA,OAAO;GACL;GACA,eAAe,KAAK;GACpB;GACA;GACA,OAAO,IAAI;GACX;EACF;CACF;CAEA,MAAM,UAAU,KAAkC;EAChD,MAAM,YAAY,KAAK,IAAI,YAAY,WAAW,CAAC;CACrD;CAEA,MAAM,YAAY,KAAyC;EACzD,MAAM,UAAU,KAAK,IAAI,YAAY,WAAW;EAChD,MAAM,UAAU,KAAK,IAAI,YAAY,WAAW;EAChD,MAAM,MAAM,MAAM,YAAY,OAAO;EACrC,MAAM,UAAU,OAAO,QAAQ,iBAAiB,GAAG;EACnD,MAAM,OAAO,IAAI,OAAO,QAAQ;EAChC,MAAM,OAAO,IAAI,OAAO,QAAQ;EAEhC,OAAO;GACL,SAAS,IAAI,OAAO;GACpB;GACA,UAAU,UAAU,UAAU,KAAK,GAAG,SAAS,KAAA;GAC/C,eAAe,KAAK;GACpB,KAAK,UAAW,OAAO,KAAA,IAAa,KAAA;GACpC,SAAU,MAAM,WAAW,OAAO,IAAK,UAAU,KAAA;GACjD,QAAQ,UAAU,KAAA,IAAY,IAAI,OAAO,UAAU,YAAY;EACjE;CACF;CAEA,MAAM,cAAc,KAAmB,QAAQ,IAAqB;EAClE,MAAM,UAAU,KAAK,IAAI,YAAY,WAAW;EAChD,IAAI,CAAE,MAAM,WAAW,OAAO,GAC5B,OAAO;EAET,MAAM,EAAE,aAAa,MAAM,OAAO;EAElC,QAAO,MADW,SAAS,SAAS,MAAM,EAAA,CAC/B,MAAM,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI;CACnD;AACF;AAEA,SAAS,mBAA2B;CAGlC,MAAM,OAAO,cAAc,IAAI,IAAI,KAAK,OAAO,KAAK,GAAG,CAAC;CACxD,MAAM,UAAU,KAAK,MAAM,cAAc,SAAS;CAClD,IAAI,WAAW,OAAO,GACpB,OAAO;CAET,MAAM,UAAU,KAAK,MAAM,MAAM,MAAM,QAAQ,aAAa,cAAc,SAAS;CACnF,IAAI,WAAW,OAAO,GACpB,OAAO;CAET,OAAO;AACT;AAEA,SAAS,WAAW,UAAyD;CAC3E,KAAK,MAAM,KAAK,UAAU;EACxB,IAAI,OAAO,EAAE,UAAU,YAAY,EAAE,OACnC,OAAO,EAAE;EAEX,IAAI,OAAO,EAAE,YAAY,YAAY,EAAE,SACrC,OAAO,EAAE;CAEb;AAEF;AAEA,IAAa,eAAe,IAAI,aAAa"}
@@ -1,14 +0,0 @@
1
- import type { ProviderRegistry } from '../core/registry.js';
2
- import { codexProvider } from './codex.js';
3
- import { claudeProvider } from './claude.js';
4
- import { geminiProvider } from './gemini.js';
5
- import { grokProvider } from './grok.js';
6
- import { kiroProvider } from './kiro.js';
7
- import { opencodeProvider } from './opencode.js';
8
- /**
9
- * Register built-in providers. Call once at CLI startup.
10
- * To add a provider: implement Provider, import here, register().
11
- */
12
- export declare function registerBuiltinProviders(registry: ProviderRegistry): void;
13
- export { claudeProvider, codexProvider, geminiProvider, grokProvider, kiroProvider, opencodeProvider, };
14
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxC,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,CAOzE;AAED,OAAO,EACL,cAAc,EACd,aAAa,EACb,cAAc,EACd,YAAY,EACZ,YAAY,EACZ,gBAAgB,GACjB,CAAC"}
@@ -1,23 +0,0 @@
1
- import { geminiProvider } from "./gemini.js";
2
- import { codexProvider } from "./codex.js";
3
- import { claudeProvider } from "./claude.js";
4
- import { grokProvider } from "./grok.js";
5
- import { kiroProvider } from "./kiro.js";
6
- import { opencodeProvider } from "./opencode.js";
7
- //#region src/providers/index.ts
8
- /**
9
- * Register built-in providers. Call once at CLI startup.
10
- * To add a provider: implement Provider, import here, register().
11
- */
12
- function registerBuiltinProviders(registry) {
13
- registry.register(claudeProvider);
14
- registry.register(codexProvider);
15
- registry.register(geminiProvider);
16
- registry.register(grokProvider);
17
- registry.register(kiroProvider);
18
- registry.register(opencodeProvider);
19
- }
20
- //#endregion
21
- export { claudeProvider, codexProvider, geminiProvider, grokProvider, kiroProvider, opencodeProvider, registerBuiltinProviders };
22
-
23
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/providers/index.ts"],"sourcesContent":["import type { ProviderRegistry } from '../core/registry';\nimport { codexProvider } from './codex';\nimport { claudeProvider } from './claude';\nimport { geminiProvider } from './gemini';\nimport { grokProvider } from './grok';\nimport { kiroProvider } from './kiro';\nimport { opencodeProvider } from './opencode';\n\n/**\n * Register built-in providers. Call once at CLI startup.\n * To add a provider: implement Provider, import here, register().\n */\nexport function registerBuiltinProviders(registry: ProviderRegistry): void {\n registry.register(claudeProvider);\n registry.register(codexProvider);\n registry.register(geminiProvider);\n registry.register(grokProvider);\n registry.register(kiroProvider);\n registry.register(opencodeProvider);\n}\n\nexport {\n claudeProvider,\n codexProvider,\n geminiProvider,\n grokProvider,\n kiroProvider,\n opencodeProvider,\n};\n"],"mappings":";;;;;;;;;;;AAYA,SAAgB,yBAAyB,UAAkC;CACzE,SAAS,SAAS,cAAc;CAChC,SAAS,SAAS,aAAa;CAC/B,SAAS,SAAS,cAAc;CAChC,SAAS,SAAS,YAAY;CAC9B,SAAS,SAAS,YAAY;CAC9B,SAAS,SAAS,gBAAgB;AACpC"}
@@ -1,39 +0,0 @@
1
- /**
2
- * kiro-cli's secret store.
3
- *
4
- * Since kiro-cli 2.x the login is no longer a file under ~/.aws/sso/cache. It
5
- * lives in the OS keychain, mirrored into an `auth_kv` table in kiro-cli's own
6
- * SQLite database, and kiro-cli reads the keychain *first* — so switching a Kiro
7
- * account has to write both tiers. Restoring only the database would be
8
- * silently ignored while a stale keychain item is still readable, which is the
9
- * worst possible outcome: anypick reports a switch that did not happen.
10
- *
11
- * Every access mirrors what kiro-cli itself does — `/usr/bin/security` and
12
- * `INSERT OR REPLACE INTO auth_kv` — so an item anypick writes carries the same
13
- * keychain ACL and kiro-cli reads it back without an authorization prompt.
14
- *
15
- * The secret never crosses `argv`: `security(1)` is driven through its `-i`
16
- * stdin mode, and the value is passed as hex (`-X`) because `-i` unquoting
17
- * mangles backslashes, which JSON escapes contain.
18
- */
19
- /** Login kinds kiro-cli stores, each under its own keychain service name. */
20
- export declare const KIRO_SECRET_KEYS: readonly ['kirocli:social:token', 'kirocli:odic:token', 'kirocli:odic:device-registration', 'kirocli:external-idp:token'];
21
- /** Keyed by the names in `KIRO_SECRET_KEYS`; absent keys are simply not stored. */
22
- export type KiroSecrets = Record<string, string>;
23
- /** kiro-cli's data directory, following the same platform rules it does. */
24
- export declare function kiroSecretDbPath(home?: string): string;
25
- /** Every secret kiro-cli currently holds. Empty when it is not logged in. */
26
- export declare function readKiroSecrets(home?: string): Promise<KiroSecrets>;
27
- /** Replace the stored login. Writes both tiers; the keychain is best-effort. */
28
- export declare function writeKiroSecrets(secrets: KiroSecrets, home?: string): Promise<void>;
29
- /** Forget the local login. Does not call Kiro/AWS logout. */
30
- export declare function clearKiroSecrets(home?: string): Promise<void>;
31
- /**
32
- * A human label for the stored login.
33
- *
34
- * The token carries no email — the only per-account signal is the profile id at
35
- * the tail of `profile_arn`, so it is paired with the identity provider to give
36
- * something a person can tell two Google logins apart by.
37
- */
38
- export declare function kiroSecretIdentity(secrets: KiroSecrets): string | undefined;
39
- //# sourceMappingURL=kiro-secret-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kiro-secret-store.d.ts","sourceRoot":"","sources":["../../src/providers/kiro-secret-store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAOH,6EAA6E;AAC7E,eAAO,MAAM,gBAAgB,YAC3B,sBAAsB,EACtB,oBAAoB,EACpB,kCAAkC,EAClC,4BAA4B,CACpB,CAAC;AAEX,mFAAmF;AACnF,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAUjD,4EAA4E;AAC5E,wBAAgB,gBAAgB,CAAC,IAAI,SAAY,GAAG,MAAM,CAczD;AAED,6EAA6E;AAC7E,wBAAsB,eAAe,CAAC,IAAI,SAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAuB5E;AAED,gFAAgF;AAChF,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,SAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAc5F;AAED,6DAA6D;AAC7D,wBAAsB,gBAAgB,CAAC,IAAI,SAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAQtE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,GAAG,SAAS,CA4B3E"}