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":"proxy-service.js","names":[],"sources":["../../src/core/proxy-service.ts"],"sourcesContent":["/**\n * Proxy lifecycle ownership (start/stop/status/logs) and multi-account pool\n * management for account-backed proxies.\n *\n * This was extracted from AccountService so that proxy concerns live in their\n * own collaborator: a Provider owns *where* live auth lives and how to\n * snapshot/restore it; this service owns *how a running proxy for that account\n * is orchestrated*. Client-config realignment (writing BASE_URL into bound\n * clients) is injected as RealignProxyClientsDeps rather than imported, so the\n * proxy service stays below the binding/runtime subsystems.\n *\n * Listen-port selection lives in `ProxyPortAllocator` (proxy-ports.ts), and the\n * lease table is a constructor dependency — both were previously inlined here,\n * which made this class impossible to construct in a test without also standing\n * up the whole app graph.\n */\n\nimport type {\n AccountProxyConfig,\n Provider,\n ProviderProxyPool,\n ProxyContext,\n ProxyHandle,\n ProxyStatus,\n} from '../types';\nimport { AnyPickError } from '../utils/errors';\nimport { normalizeAccountName } from '../utils/slug';\nimport { ensureDir, pathExists } from '../utils/fs';\nimport {\n followFile,\n isListenPortFree,\n isProcessRunning,\n readPidFile,\n readPidRecord,\n} from '../utils/process';\nimport type { ProviderRegistry } from './registry';\nimport type { AccountStore } from './store';\nimport type { LeaseStore } from './lease-store';\nimport { accountSnapshotDir } from './paths';\nimport { PoolStore, poolRuntimeDir } from './pool-store';\nimport {\n realignClientsToAccountProxy,\n type RealignProxyClientsDeps,\n} from './realign-proxy-clients';\nimport { providerCanProxy } from './capabilities';\nimport { ProxyPortAllocator, validatePort } from './proxy-ports';\nimport { readFile } from 'node:fs/promises';\nimport { randomBytes } from 'node:crypto';\nimport { assertLoopbackHost } from '../utils/network';\nimport { withMutationLock } from './mutation-lock';\nimport type { QuotaGuardPolicy } from '../types';\nimport { readQuotaGuardState, type QuotaGuardEvent } from '../providers/quota-guard';\n\n/** Best-effort port extraction from an endpoint like http://127.0.0.1:8080. */\nfunction portFromEndpoint(endpoint: string): number {\n const m = /:(\\d+)(?:\\/|$)/.exec(endpoint);\n return m ? Number(m[1]) : 8080;\n}\n\n/**\n * A single-account proxy is never a pool member, so pool options must not reach\n * it. Older versions persisted `authDirs` onto the primary account's config and\n * nothing removed them when the pool went back to single mode; `authDirs` then\n * takes precedence over the account's own snapshot dir, so the proxy serves\n * whichever account happened to be primary. Dropping them on read retires those\n * records without a migration.\n */\nfunction withoutPoolOptions(config: AccountProxyConfig): AccountProxyConfig {\n if (!config.options) {\n return { ...config };\n }\n const { pool: _pool, authDirs: _authDirs, ...options } = config.options;\n return { ...config, options };\n}\n\n/**\n * Owns proxy lifecycle and multi-account pools.\n * Constructed by the app composition root and exposed as `app.proxy`.\n */\nexport class ProxyService {\n readonly pools: PoolStore;\n /**\n * Optional dependency used when a proxy starts: realign bound clients'\n * BASE_URLs to the new endpoint. Injected at construction (composition time)\n * rather than wired afterwards, so the service has no upward dependency on\n * the app graph.\n */\n private readonly realign?: RealignProxyClientsDeps;\n /**\n * Lease table. Every proxy started through this service records a lease keyed\n * to the owning process, so `reapStaleLeases` can stop orphaned proxies on the\n * next startup — not just proxies started by the activation pipeline.\n *\n * Optional so a caller can build a proxy service without lease bookkeeping,\n * but supplied at construction: it used to be wired by `setLeaseStore()` after\n * the fact, which meant the service was observably half-built between the two\n * calls and could not be constructed in a test without replaying that dance.\n */\n private readonly leases?: LeaseStore;\n /** Listen-port allocation (see proxy-ports.ts). */\n private readonly ports: ProxyPortAllocator;\n\n constructor(\n private readonly store: AccountStore,\n private readonly registry: ProviderRegistry,\n pools?: PoolStore,\n realign?: RealignProxyClientsDeps,\n leases?: LeaseStore,\n private readonly quotaGuardPolicy: () => Promise<QuotaGuardPolicy> = async () => ({\n enabled: false,\n cooldownMinutes: 60,\n }),\n ) {\n this.pools = pools ?? new PoolStore(store.root, store.db);\n this.realign = realign;\n this.leases = leases;\n this.ports = new ProxyPortAllocator(registry, store);\n }\n\n /**\n * Optional re-publisher for the live Codex config block, wired in app.ts so this\n * service does not depend on Hub/Codex services it was not constructed with.\n */\n private codexLiveConfigSync?: () => Promise<void>;\n\n setCodexLiveConfigSync(fn: () => Promise<void>): void {\n this.codexLiveConfigSync = fn;\n }\n\n private async syncCodexLiveConfig(): Promise<void> {\n try {\n await this.codexLiveConfigSync?.();\n } catch {\n // Best-effort: a failed live-block refresh must never fail a proxy op.\n }\n }\n\n /**\n * Record a lease for a freshly started proxy owned by this process, replacing\n * any prior lease for the same provider/account. No-op when no lease store is\n * wired. Best-effort: lease bookkeeping must never fail a proxy start.\n */\n private recordLease(\n provider: string,\n account: string | undefined,\n handle: ProxyHandle,\n forcedOwnerPid?: number,\n ): string | undefined {\n if (!this.leases) {\n return undefined;\n }\n try {\n const previous = this.leases.findByProviderAccount(provider, account);\n // Preserve a live supervisor (tray) owner. Legacy leases used the child\n // proxy PID itself; those are deliberately replaced by the real owner.\n const ownerPid =\n forcedOwnerPid ??\n (previous && previous.ownerPid !== handle.pid && isProcessRunning(previous.ownerPid)\n ? previous.ownerPid\n : process.pid);\n this.leases.releaseByProviderAccount(provider, account);\n const lease = this.leases.create({\n provider,\n account,\n port: portFromEndpoint(handle.endpoint),\n endpoint: handle.endpoint,\n ownerPid,\n instanceId: handle.instanceId,\n });\n handle.leaseId = lease.leaseId;\n return lease.leaseId;\n } catch {\n // lease bookkeeping is best-effort\n return undefined;\n }\n }\n\n /** Release the lease for a stopped proxy. No-op without a lease store. */\n private releaseLease(provider: string, account?: string): void {\n if (!this.leases) {\n return;\n }\n try {\n this.leases.releaseByProviderAccount(provider, account);\n } catch {\n // best-effort\n }\n }\n\n provider(id: string): Provider {\n return this.registry.get(id);\n }\n\n listProviders(): Provider[] {\n return this.registry.list();\n }\n\n // ── Multi-account proxy pool (opt-in; default is single) ────────\n\n async getPool(providerId: string): Promise<ProviderProxyPool> {\n this.requireProxyProvider(providerId);\n const accounts = await this.store.listAccounts(providerId);\n return this.pools.syncMembers(\n providerId,\n accounts.map((a) => a.meta.name),\n );\n }\n\n /** Opt-in multi-account pool for a provider. */\n async enablePoolMulti(\n providerId: string,\n opts: { port?: number; host?: string; start?: boolean } = {},\n ): Promise<{ pool: ProviderProxyPool; started?: ProxyHandle }> {\n const provider = this.requireProxyProvider(providerId);\n const accounts = await this.store.listAccounts(providerId);\n if (accounts.length === 0) {\n throw new AnyPickError(`No saved logins for ${providerId}. Save one first.`, 'NO_ACCOUNTS');\n }\n const port = validatePort(opts.port ?? provider.defaultProxyPort ?? 8080);\n assertLoopbackHost(opts.host ?? '127.0.0.1');\n const pool = await this.pools.enableMulti(\n providerId,\n accounts.map((a) => a.meta.name),\n { port, host: opts.host ?? '127.0.0.1' },\n );\n let started: ProxyHandle | undefined;\n if (opts.start !== false) {\n started = await this.startPoolProxy(providerId);\n }\n return { pool, started };\n }\n\n /** Back to per-account proxies (default). Stops pool process if running. */\n async disablePoolMulti(providerId: string): Promise<ProviderProxyPool> {\n this.requireProxyProvider(providerId);\n try {\n await this.stopPoolProxy(providerId);\n } catch {\n // ignore\n }\n return this.pools.disableMulti(providerId);\n }\n\n async setPoolMemberEnabled(\n providerId: string,\n account: string,\n enabled: boolean,\n ): Promise<ProviderProxyPool> {\n this.requireProxyProvider(providerId);\n const name = normalizeAccountName(account);\n await this.store.requireAccount(providerId, name);\n const pool = await this.pools.setMemberEnabled(providerId, name, enabled);\n // Hot-reload pool if multi + running\n if (pool.mode === 'multi' && pool.enabled) {\n const st = await this.poolProxyStatus(providerId);\n if (st.running) {\n await this.startPoolProxy(providerId);\n }\n }\n return pool;\n }\n\n async startPoolProxy(providerId: string): Promise<ProxyHandle> {\n const provider = this.requireProxyProvider(providerId);\n const pool = await this.getPool(providerId);\n if (pool.mode !== 'multi') {\n throw new AnyPickError(\n `Pool multi-mode is off for ${providerId} (default is single account). Enable with: anypick proxy pool enable ${providerId}`,\n 'POOL_NOT_ENABLED',\n );\n }\n const enabled = pool.members.filter((m) => m.enabled);\n if (enabled.length === 0) {\n throw new AnyPickError(\n `No enabled accounts in ${providerId} pool. Enable a member first.`,\n 'POOL_EMPTY',\n );\n }\n\n const host = pool.host ?? '127.0.0.1';\n assertLoopbackHost(host);\n const port = validatePort(pool.port ?? provider.defaultProxyPort ?? 8080);\n\n // Persist enabled + port\n await this.pools.set({\n ...pool,\n enabled: true,\n host,\n port,\n });\n\n // Use first enabled account's proxy process; for Gemini pass all auth dirs\n const primary = enabled[0];\n const config: AccountProxyConfig = {\n enabled: true,\n host,\n port,\n };\n\n // Ensure primary account proxy config matches pool port. The pool's auth\n // dirs stay out of it: they are absolute paths under the data root and this\n // record outlives both the data root (there is no ~/.rotate migration) and\n // the pool itself, after which the primary's own single-account proxy would\n // still be handed --auth-dirs, which wins over its snapshot dir.\n await this.store.setProxyConfig(providerId, primary.account, config);\n\n // Route pool runtime to shared dir for pid when multi\n const runtimeDir = poolRuntimeDir(this.store.root, providerId);\n await ensureDir(runtimeDir);\n\n if (!provider.startProxy) {\n throw new AnyPickError('PROXY_NOT_IMPLEMENTED', 'PROXY_NOT_IMPLEMENTED');\n }\n\n // Stop previous pool / primary proxy\n try {\n await this.stopPoolProxy(providerId);\n } catch {\n // ignore\n }\n try {\n await this.stopProxyInternal(provider, primary.account);\n } catch {\n // ignore\n }\n\n const priorState = await this.store.readProxyState(providerId, primary.account);\n const poolToken =\n priorState?.token && priorState.token.length > 0\n ? priorState.token\n : randomBytes(32).toString('hex');\n const quotaGuard = await this.quotaGuardPolicy();\n const ctx: ProxyContext = {\n providerId,\n accountName: primary.account,\n snapshotDir: accountSnapshotDir(this.store.root, providerId, primary.account),\n runtimeDir,\n config: {\n ...config,\n options: {\n pool: true,\n authDirs: enabled.map((m) => accountSnapshotDir(this.store.root, providerId, m.account)),\n quotaGuardAccountNames: enabled.map((m) => m.account),\n quotaGuard: {\n enabled: quotaGuard.enabled,\n cooldownMs: quotaGuard.cooldownMinutes * 60_000,\n },\n },\n },\n token: poolToken,\n };\n const handle = await provider.startProxy(ctx);\n await this.store.writeProxyState(providerId, primary.account, {\n accountName: primary.account,\n endpoint: handle.endpoint,\n compatibility: handle.compatibility ?? provider.proxyCompatibility,\n pid: handle.pid,\n logPath: handle.logPath,\n startedAt: new Date().toISOString(),\n token: poolToken,\n });\n this.recordLease(providerId, undefined, handle);\n handle.startedNow = true;\n return handle;\n }\n\n /** Restart only pools that are currently serving, after changing a pool-wide policy. */\n async restartRunningPools(): Promise<void> {\n for (const provider of this.registry.list().filter((entry) => providerCanProxy(entry))) {\n try {\n const pool = await this.getPool(provider.id);\n const status = await this.poolProxyStatus(provider.id);\n if (pool.mode === 'multi' && pool.enabled && status.running) {\n await this.startPoolProxy(provider.id);\n }\n } catch {\n // An unrelated provider must not prevent a setting from applying to its pool.\n }\n }\n }\n\n /** Secret-free audit events written by an enabled compatibility proxy pool. */\n async quotaGuardEvents(): Promise<QuotaGuardEvent[]> {\n const events: QuotaGuardEvent[] = [];\n for (const provider of this.registry.list().filter((entry) => providerCanProxy(entry))) {\n try {\n const pool = await this.getPool(provider.id);\n if (pool.mode !== 'multi') {\n continue;\n }\n const state = await readQuotaGuardState(\n `${poolRuntimeDir(this.store.root, provider.id)}/quota-guard.json`,\n );\n events.push(\n ...state.events.map((event) => ({\n ...event,\n providerId: event.providerId ?? provider.id,\n })),\n );\n } catch {\n // Runtime observability is best-effort and must never make a proxy unavailable.\n }\n }\n return events.toSorted((left, right) => right.createdAt.localeCompare(left.createdAt));\n }\n\n async stopPoolProxy(providerId: string): Promise<void> {\n const provider = this.requireProxyProvider(providerId);\n const pool = await this.pools.getOrDefault(providerId);\n const primary = pool.members.find((m) => m.enabled)?.account;\n const runtimeDir = poolRuntimeDir(this.store.root, providerId);\n if (provider.stopProxy && primary) {\n const config = await this.store.getProxyConfig(providerId, primary);\n await provider.stopProxy({\n providerId,\n accountName: primary,\n snapshotDir: accountSnapshotDir(this.store.root, providerId, primary),\n runtimeDir,\n config: { ...config, enabled: false },\n });\n }\n this.releaseLease(providerId, undefined);\n }\n\n async poolProxyStatus(providerId: string): Promise<ProxyStatus> {\n const provider = this.requireProxyProvider(providerId);\n const pool = await this.pools.getOrDefault(providerId);\n const primary = pool.members.find((m) => m.enabled)?.account;\n if (!primary || pool.mode !== 'multi') {\n return {\n enabled: pool.mode === 'multi' && pool.enabled,\n running: false,\n detail: pool.mode === 'single' ? 'single-account mode' : 'no enabled members',\n };\n }\n const runtimeDir = poolRuntimeDir(this.store.root, providerId);\n const config = await this.store.getProxyConfig(providerId, primary);\n if (provider.proxyStatus) {\n return provider.proxyStatus({\n providerId,\n accountName: primary,\n snapshotDir: accountSnapshotDir(this.store.root, providerId, primary),\n runtimeDir,\n config: {\n ...config,\n enabled: pool.enabled,\n host: pool.host ?? config.host,\n port: pool.port ?? config.port,\n },\n });\n }\n return {\n enabled: pool.enabled,\n running: false,\n };\n }\n\n // ── Proxy commands ──────────────────────────────────────────────\n\n requireProxyProvider(providerId: string): Provider {\n const provider = this.registry.get(providerId);\n if (!providerCanProxy(provider)) {\n throw new AnyPickError(\n `Provider \"${providerId}\" does not support a compatibility proxy.`,\n 'PROXY_UNSUPPORTED',\n );\n }\n return provider;\n }\n\n async enableProxy(\n providerId: string,\n name: string,\n opts: {\n port?: number;\n host?: string;\n start?: boolean;\n /** Provider options merge (e.g. opencode plan: zen|go). */\n options?: Record<string, unknown>;\n } = {},\n ): Promise<{ config: AccountProxyConfig; started?: ProxyHandle }> {\n const provider = this.requireProxyProvider(providerId);\n const accountName = normalizeAccountName(name);\n await this.store.requireAccount(providerId, accountName);\n\n const existing = await this.store.getProxyConfig(providerId, accountName);\n const port = await this.ports.resolve(provider, {\n requested: opts.port,\n existing: existing.port,\n providerId,\n accountName,\n });\n const config: AccountProxyConfig = {\n ...existing,\n enabled: true,\n port,\n host: opts.host ?? existing.host ?? '127.0.0.1',\n options: opts.options != null ? { ...existing.options, ...opts.options } : existing.options,\n };\n assertLoopbackHost(config.host ?? '127.0.0.1');\n await this.store.setProxyConfig(providerId, accountName, config);\n\n let started: ProxyHandle | undefined;\n const active = await this.store.getActive(providerId);\n const shouldStart = opts.start !== false && active === accountName;\n if (shouldStart) {\n started = await this.startProxyInternal(provider, accountName, config);\n }\n void this.syncCodexLiveConfig();\n\n return { config, started };\n }\n\n /** Restore a previously captured config without starting a process. Scoped\n * ephemeral runs use this to avoid leaving an account auto-proxy enabled. */\n async restoreProxyConfig(\n providerId: string,\n name: string,\n config: AccountProxyConfig,\n ): Promise<void> {\n const accountName = normalizeAccountName(name);\n await this.store.requireAccount(providerId, accountName);\n await this.store.setProxyConfig(providerId, accountName, config);\n }\n\n /**\n * Update proxy listen port/host without toggling enabled.\n * Restarts the proxy if it is currently running.\n */\n async configureProxy(\n providerId: string,\n name: string,\n opts: {\n port?: number;\n host?: string;\n restart?: boolean;\n /** Provider options merge (e.g. opencode plan: zen|go). */\n options?: Record<string, unknown>;\n } = {},\n ): Promise<{\n config: AccountProxyConfig;\n restarted?: ProxyHandle;\n wasRunning: boolean;\n }> {\n const provider = this.requireProxyProvider(providerId);\n const accountName = normalizeAccountName(name);\n await this.store.requireAccount(providerId, accountName);\n\n if (opts.port == null && opts.host == null && opts.options == null) {\n throw new AnyPickError(\n 'Pass --port and/or --host to configure the proxy.',\n 'PROXY_CONFIG_EMPTY',\n );\n }\n\n const existing = await this.store.getProxyConfig(providerId, accountName);\n let port: number;\n if (opts.port != null) {\n port = validatePort(opts.port);\n await this.ports.assertAvailable(port, providerId, accountName);\n } else if (existing.port != null) {\n port = existing.port;\n } else {\n port = await this.ports.allocateFrom(\n provider.defaultProxyPort ?? 8080,\n providerId,\n accountName,\n );\n }\n\n const config: AccountProxyConfig = {\n ...existing,\n port,\n host: opts.host ?? existing.host ?? '127.0.0.1',\n options: opts.options != null ? { ...existing.options, ...opts.options } : existing.options,\n };\n assertLoopbackHost(config.host ?? '127.0.0.1');\n await this.store.setProxyConfig(providerId, accountName, config);\n\n const before = await this.proxyStatus(providerId, accountName);\n const wasRunning = before.running;\n let restarted: ProxyHandle | undefined;\n if (wasRunning && opts.restart !== false) {\n await this.stopProxyInternal(provider, accountName);\n restarted = await this.startProxyInternal(provider, accountName, config);\n }\n void this.syncCodexLiveConfig();\n\n return { config, restarted, wasRunning };\n }\n\n async disableProxy(providerId: string, name: string): Promise<AccountProxyConfig> {\n const provider = this.requireProxyProvider(providerId);\n const accountName = normalizeAccountName(name);\n await this.store.requireAccount(providerId, accountName);\n\n const existing = await this.store.getProxyConfig(providerId, accountName);\n const config: AccountProxyConfig = { ...existing, enabled: false };\n await this.store.setProxyConfig(providerId, accountName, config);\n\n await this.stopProxyInternal(provider, accountName);\n void this.syncCodexLiveConfig();\n return config;\n }\n\n async startProxy(\n providerId: string,\n name?: string,\n opts: { port?: number; host?: string } = {},\n ): Promise<ProxyHandle> {\n const provider = this.requireProxyProvider(providerId);\n const accountName = name\n ? normalizeAccountName(name)\n : await this.requireActiveName(providerId);\n\n const account = await this.store.requireAccount(providerId, accountName);\n assertLoopbackHost(opts.host ?? account.proxy.host ?? '127.0.0.1');\n if (!account.proxy.enabled) {\n throw new AnyPickError(\n `Proxy is not enabled for ${providerId}/${accountName}. Run: anypick proxy enable ${providerId} ${accountName}`,\n 'PROXY_DISABLED',\n );\n }\n\n let config = account.proxy;\n if (opts.port != null || opts.host != null) {\n let port: number;\n if (opts.port != null) {\n port = validatePort(opts.port);\n await this.ports.assertAvailable(port, providerId, accountName);\n } else if (config.port != null) {\n port = config.port;\n } else {\n port = await this.ports.allocateFrom(\n provider.defaultProxyPort ?? 8080,\n providerId,\n accountName,\n );\n }\n config = {\n ...config,\n port,\n host: opts.host ?? config.host ?? '127.0.0.1',\n };\n await this.store.setProxyConfig(providerId, accountName, config);\n } else if (config.port == null) {\n // Legacy configs without a port: allocate and persist so restarts stay stable\n const port = await this.ports.resolve(provider, {\n providerId,\n accountName,\n });\n config = { ...config, port, host: config.host ?? '127.0.0.1' };\n await this.store.setProxyConfig(providerId, accountName, config);\n }\n\n const handle = await this.startProxyInternal(provider, accountName, config);\n void this.syncCodexLiveConfig();\n return handle;\n }\n\n async stopProxy(providerId: string, name?: string): Promise<void> {\n const provider = this.requireProxyProvider(providerId);\n const accountName = name\n ? normalizeAccountName(name)\n : await this.requireActiveName(providerId);\n await this.store.requireAccount(providerId, accountName);\n await this.stopProxyInternal(provider, accountName);\n void this.syncCodexLiveConfig();\n }\n\n async proxyStatus(providerId: string, name?: string): Promise<ProxyStatus> {\n const provider = this.requireProxyProvider(providerId);\n const accountName = name\n ? normalizeAccountName(name)\n : await this.requireActiveName(providerId);\n\n const account = await this.store.requireAccount(providerId, accountName);\n const ctx = this.buildProxyContext(providerId, accountName, account.proxy);\n const host = account.proxy.host ?? '127.0.0.1';\n const port = account.proxy.port ?? provider.defaultProxyPort ?? undefined;\n\n let status: ProxyStatus;\n if (provider.proxyStatus) {\n status = await provider.proxyStatus(ctx);\n } else {\n // Default: pid file + saved state\n const pid = await readPidFile(this.store.pidPath(providerId, accountName));\n const running = pid != null && isProcessRunning(pid);\n const state = await this.store.readProxyState(providerId, accountName);\n const logPath = this.store.logPath(providerId, accountName);\n\n status = {\n enabled: account.proxy.enabled,\n running,\n endpoint: running ? state?.endpoint : undefined,\n compatibility: running\n ? (state?.compatibility ?? provider.proxyCompatibility)\n : provider.proxyCompatibility,\n pid: running ? (pid ?? undefined) : undefined,\n logPath: (await pathExists(logPath)) ? logPath : undefined,\n detail: running ? undefined : account.proxy.enabled ? 'stopped' : 'disabled',\n };\n }\n\n // Always surface configured bind address (even when stopped). When the\n // provider selected a different port (for example after a collision),\n // proxy_state is authoritative while that exact process is alive. TUI and\n // client realignment must probe the endpoint the child actually owns.\n status.port = port;\n status.host = host;\n if (status.running && status.pid != null) {\n const runtimeState = await this.store.readProxyState(providerId, accountName);\n if (runtimeState?.pid === status.pid && runtimeState.endpoint) {\n status.endpoint = runtimeState.endpoint;\n status.port = portFromEndpoint(runtimeState.endpoint);\n try {\n status.host = new URL(runtimeState.endpoint).hostname;\n } catch {\n // Keep the configured host for malformed legacy state.\n }\n }\n }\n if (!status.endpoint && status.running && port != null) {\n status.endpoint = `http://${host}:${port}`;\n }\n return status;\n }\n\n async proxyLogs(providerId: string, name?: string, lines = 50): Promise<string> {\n const provider = this.requireProxyProvider(providerId);\n const accountName = name\n ? normalizeAccountName(name)\n : await this.requireActiveName(providerId);\n\n const account = await this.store.requireAccount(providerId, accountName);\n const ctx = this.buildProxyContext(providerId, accountName, account.proxy);\n\n if (provider.readProxyLogs) {\n return provider.readProxyLogs(ctx, lines);\n }\n\n const logPath = this.store.logPath(providerId, accountName);\n if (!(await pathExists(logPath))) {\n return '(no log file yet)';\n }\n const raw = await readFile(logPath, 'utf8');\n const all = raw.split(/\\r?\\n/);\n return all.slice(Math.max(0, all.length - lines)).join('\\n');\n }\n\n /**\n * Stream proxy logs live (tail -f style). Calls `onLine` for each new line\n * and resolves when `signal` aborts. Returns immediately if no log file yet.\n */\n async proxyLogsFollow(\n providerId: string,\n name: string | undefined,\n onLine: (line: string) => void,\n opts: { lines?: number; signal?: AbortSignal } = {},\n ): Promise<void> {\n const accountName = name\n ? normalizeAccountName(name)\n : await this.requireActiveName(providerId);\n const logPath = this.store.logPath(providerId, accountName);\n\n if (!(await pathExists(logPath))) {\n onLine('(waiting for log file…)');\n }\n\n // Print the current tail first so the user has context.\n if (opts.lines && (await pathExists(logPath))) {\n const raw = await readFile(logPath, 'utf8');\n const all = raw\n .split('\\n')\n .map((l) => l.replace(/\\r$/, ''))\n .filter(Boolean);\n for (const l of all.slice(Math.max(0, all.length - opts.lines))) {\n onLine(l);\n }\n }\n\n const onAbort = () => {};\n opts.signal?.addEventListener('abort', onAbort);\n\n try {\n await followFile(logPath, onLine, opts.signal);\n } finally {\n opts.signal?.removeEventListener('abort', onAbort);\n }\n }\n\n /**\n * List proxy-capable accounts (for `anypick proxy` / status).\n * If provider omitted → all proxy providers. If name omitted → active or all enabled.\n */\n async listProxyRows(providerId?: string): Promise<\n Array<{\n provider: string;\n name: string;\n active: boolean;\n status: ProxyStatus;\n }>\n > {\n const providers = providerId\n ? [this.requireProxyProvider(providerId)]\n : this.registry.list().filter((p) => providerCanProxy(p));\n\n const rows = [];\n for (const p of providers) {\n const active = await this.store.getActive(p.id);\n const accounts = await this.store.listAccounts(p.id);\n for (const a of accounts) {\n // Show active always; others only if proxy enabled or running\n const status = await this.proxyStatus(p.id, a.meta.name).catch(\n (): ProxyStatus => ({\n enabled: a.proxy.enabled,\n running: false,\n detail: 'unavailable',\n }),\n );\n if (a.meta.name === active || a.proxy.enabled || status.running) {\n rows.push({\n provider: p.id,\n name: a.meta.name,\n active: a.meta.name === active,\n status,\n });\n }\n }\n }\n return rows;\n }\n\n /**\n * Start proxies. No args → active account on each proxy provider (if enabled).\n */\n async startProxies(\n providerId?: string,\n name?: string,\n ): Promise<\n Array<{\n provider: string;\n name: string;\n ok: boolean;\n endpoint?: string;\n realignedClients?: string[];\n error?: string;\n }>\n > {\n const targets = await this.resolveProxyTargets(providerId, name, {\n requireEnabled: true,\n preferActive: !name,\n });\n const out: Array<{\n provider: string;\n name: string;\n ok: boolean;\n endpoint?: string;\n realignedClients?: string[];\n error?: string;\n }> = [];\n for (const t of targets) {\n try {\n const handle = await this.startProxy(t.provider, t.name);\n out.push({\n provider: t.provider,\n name: t.name,\n ok: true,\n endpoint: handle.endpoint,\n realignedClients: handle.realignedClients,\n });\n } catch (err) {\n out.push({\n provider: t.provider,\n name: t.name,\n ok: false,\n error: err instanceof Error ? err.message : String(err),\n });\n }\n }\n return out;\n }\n\n async stopProxies(\n providerId?: string,\n name?: string,\n ): Promise<Array<{ provider: string; name: string; ok: boolean; error?: string }>> {\n const targets = await this.resolveProxyTargets(providerId, name, {\n requireEnabled: false,\n preferActive: !name,\n runningOnly: !name && !providerId,\n });\n const out = [];\n for (const t of targets) {\n try {\n await this.stopProxy(t.provider, t.name);\n out.push({ provider: t.provider, name: t.name, ok: true });\n } catch (err) {\n out.push({\n provider: t.provider,\n name: t.name,\n ok: false,\n error: err instanceof Error ? err.message : String(err),\n });\n }\n }\n return out;\n }\n\n /** Transfer all currently running proxy leases to a long-lived supervisor. */\n async adoptRunningProxies(ownerPid = process.pid): Promise<number> {\n let adopted = 0;\n for (const row of await this.listProxyRows()) {\n const { status } = row;\n if (!status.running || status.pid == null || !status.endpoint) {\n continue;\n }\n this.recordLease(\n row.provider,\n row.name,\n {\n endpoint: status.endpoint,\n compatibility: status.compatibility,\n pid: status.pid,\n logPath: status.logPath,\n },\n ownerPid,\n );\n adopted += 1;\n }\n for (const provider of this.registry.list().filter((item) => providerCanProxy(item))) {\n try {\n const status = await this.poolProxyStatus(provider.id);\n if (!status.running || status.pid == null || !status.endpoint) {\n continue;\n }\n this.recordLease(\n provider.id,\n undefined,\n {\n endpoint: status.endpoint,\n compatibility: status.compatibility,\n pid: status.pid,\n logPath: status.logPath,\n },\n ownerPid,\n );\n adopted += 1;\n } catch {\n // Provider has no configured pool.\n }\n }\n return adopted;\n }\n\n // ── Internals (also used by AccountService for switch/stash/delete) ──\n\n /** Stop a proxy during account lifecycle ops (switch/stash/delete). */\n async stopProxyForAccount(provider: Provider, accountName: string): Promise<void> {\n await this.stopProxyInternal(provider, accountName);\n void this.syncCodexLiveConfig();\n }\n\n /** Start a proxy as part of account switch (when enabled). */\n async startProxyForAccount(\n provider: Provider,\n accountName: string,\n config: AccountProxyConfig,\n ): Promise<{ endpoint?: string; running: boolean; error?: string }> {\n if (!providerCanProxy(provider) || !config.enabled) {\n return { running: false };\n }\n try {\n const handle = await this.startProxyInternal(provider, accountName, config);\n void this.syncCodexLiveConfig();\n return {\n endpoint: handle.endpoint,\n running: true,\n };\n } catch (err) {\n return {\n running: false,\n error: err instanceof Error ? err.message : String(err),\n };\n }\n }\n\n private async resolveProxyTargets(\n providerId: string | undefined,\n name: string | undefined,\n opts: {\n requireEnabled: boolean;\n preferActive: boolean;\n runningOnly?: boolean;\n },\n ): Promise<Array<{ provider: string; name: string }>> {\n if (providerId && name) {\n this.requireProxyProvider(providerId);\n await this.store.requireAccount(providerId, normalizeAccountName(name));\n return [{ provider: providerId, name: normalizeAccountName(name) }];\n }\n\n if (providerId) {\n const p = this.requireProxyProvider(providerId);\n if (opts.preferActive) {\n const active = await this.store.getActive(p.id);\n if (active) {\n const acc = await this.store.requireAccount(p.id, active);\n if (!opts.requireEnabled || acc.proxy.enabled) {\n return [{ provider: p.id, name: active }];\n }\n }\n }\n const accounts = await this.store.listAccounts(p.id);\n return accounts\n .filter((a) => !opts.requireEnabled || a.proxy.enabled)\n .map((a) => ({ provider: p.id, name: a.meta.name }));\n }\n\n // All proxy providers\n const providers = this.registry.list().filter((p) => providerCanProxy(p));\n const targets: Array<{ provider: string; name: string }> = [];\n for (const p of providers) {\n if (opts.runningOnly) {\n const accounts = await this.store.listAccounts(p.id);\n for (const account of accounts) {\n const status = await this.proxyStatus(p.id, account.meta.name);\n if (status.running) {\n targets.push({ provider: p.id, name: account.meta.name });\n }\n }\n continue;\n }\n const active = await this.store.getActive(p.id);\n if (active) {\n const acc = await this.store.getAccount(p.id, active);\n if (!acc) {\n continue;\n }\n if (!opts.requireEnabled || acc.proxy.enabled) {\n targets.push({ provider: p.id, name: active });\n }\n }\n }\n return targets;\n }\n\n private async requireActiveName(providerId: string): Promise<string> {\n const active = await this.store.getActive(providerId);\n if (!active) {\n throw new AnyPickError(\n `No active account for \"${providerId}\". Pass an account name.`,\n 'NO_ACTIVE_ACCOUNT',\n );\n }\n return active;\n }\n\n private buildProxyContext(\n providerId: string,\n accountName: string,\n config: AccountProxyConfig,\n token?: string,\n ): ProxyContext {\n return {\n providerId,\n accountName,\n snapshotDir: accountSnapshotDir(this.store.root, providerId, accountName),\n runtimeDir: this.store.runtimeDir(providerId, accountName),\n config,\n token,\n };\n }\n\n private async startProxyInternal(\n provider: Provider,\n accountName: string,\n config: AccountProxyConfig,\n ): Promise<ProxyHandle> {\n return withMutationLock(this.store.root, `proxy/${provider.id}/${accountName}`, () =>\n this.startProxyInternalUnlocked(provider, accountName, config),\n );\n }\n\n private async startProxyInternalUnlocked(\n provider: Provider,\n accountName: string,\n config: AccountProxyConfig,\n ): Promise<ProxyHandle> {\n if (!provider.startProxy) {\n throw new AnyPickError(\n `Provider \"${provider.id}\" declares proxy support but does not implement startProxy().`,\n 'PROXY_NOT_IMPLEMENTED',\n );\n }\n\n let effective = withoutPoolOptions(config);\n const host = effective.host ?? '127.0.0.1';\n assertLoopbackHost(host);\n let port = effective.port ?? provider.defaultProxyPort ?? 8080;\n const pidPath = this.store.pidPath(provider.id, accountName);\n const existingPid = await readPidFile(pidPath);\n const previousState = await this.store.readProxyState(provider.id, accountName);\n\n // Per-instance high-entropy secret (PROXY-01). Reuse a prior token so a\n // process-reuse realign binds clients to the already-running child's secret.\n const proxyToken =\n previousState?.token && previousState.token.length > 0\n ? previousState.token\n : randomBytes(32).toString('hex');\n\n // Already healthy on our pid → reuse process, still realign clients (port/config drift)\n if (existingPid != null && isProcessRunning(existingPid) && port !== 0) {\n const candidates = [previousState?.endpoint, `http://${host}:${port}`].filter(\n (value, index, all): value is string => Boolean(value) && all.indexOf(value) === index,\n );\n for (const candidate of candidates) {\n try {\n const { waitForHttp } = await import('../utils/process');\n const ok = await waitForHttp(candidate, {\n timeoutMs: 800,\n requirePid: existingPid,\n });\n if (!ok) {\n continue;\n }\n const actual = new URL(candidate);\n const actualHost = actual.hostname === '::1' ? '[::1]' : actual.hostname;\n const actualPort = Number(actual.port);\n if (actualPort > 0 && (actualPort !== port || actualHost !== host)) {\n port = actualPort;\n effective = { ...effective, port, host: actualHost };\n await this.store.setProxyConfig(provider.id, accountName, effective);\n }\n const handle: ProxyHandle = {\n endpoint: candidate,\n compatibility: provider.proxyCompatibility,\n pid: existingPid,\n logPath: this.store.logPath(provider.id, accountName),\n startedNow: false,\n token: proxyToken,\n };\n await this.store.writeProxyState(provider.id, accountName, {\n accountName,\n endpoint: handle.endpoint,\n compatibility: handle.compatibility,\n pid: handle.pid,\n logPath: handle.logPath,\n startedAt: new Date().toISOString(),\n token: proxyToken,\n });\n handle.realignedClients = await this.realignBoundClients(\n provider.id,\n accountName,\n handle.endpoint,\n proxyToken,\n );\n this.recordLease(provider.id, accountName, handle);\n return handle;\n } catch {\n // Try the next known endpoint before replacing the child.\n }\n }\n // Only stop *our* pid file process (never foreign listeners)\n await this.stopProxyInternalUnlocked(provider, accountName);\n } else if (existingPid != null) {\n // Stale pid file\n await this.stopProxyInternalUnlocked(provider, accountName);\n }\n\n // Port taken (by anyone) → bump to next free port. Never kill foreign processes.\n if (port !== 0 && !(await isListenPortFree(port, host))) {\n const next = await this.ports.allocateFrom(port + 1, provider.id, accountName);\n effective = { ...effective, port: next, host };\n await this.store.setProxyConfig(provider.id, accountName, effective);\n port = next;\n } else if (effective.port == null) {\n effective = { ...effective, port, host };\n await this.store.setProxyConfig(provider.id, accountName, effective);\n }\n\n const ctx = this.buildProxyContext(provider.id, accountName, effective, proxyToken);\n const handle = await provider.startProxy(ctx);\n\n // Child died immediately — don't claim success on someone else's health endpoint\n if (handle.pid != null && !isProcessRunning(handle.pid)) {\n // Port race: try once more on next free port\n if (port !== 0) {\n const next = await this.ports.allocateFrom(port + 1, provider.id, accountName);\n effective = { ...effective, port: next, host };\n await this.store.setProxyConfig(provider.id, accountName, effective);\n const retry = await provider.startProxy(\n this.buildProxyContext(provider.id, accountName, effective, proxyToken),\n );\n if (retry.pid != null && isProcessRunning(retry.pid)) {\n await this.store.writeProxyState(provider.id, accountName, {\n accountName,\n endpoint: retry.endpoint,\n compatibility: retry.compatibility ?? provider.proxyCompatibility,\n pid: retry.pid,\n logPath: retry.logPath ?? this.store.logPath(provider.id, accountName),\n startedAt: new Date().toISOString(),\n token: proxyToken,\n });\n retry.startedNow = true;\n retry.token = proxyToken;\n this.recordLease(provider.id, accountName, retry);\n retry.realignedClients = await this.realignBoundClients(\n provider.id,\n accountName,\n retry.endpoint,\n proxyToken,\n );\n return retry;\n }\n }\n throw new AnyPickError(\n `Proxy for ${provider.id}/${accountName} failed to bind (tried port ${port}). Check: anypick proxy logs ${provider.id} ${accountName}`,\n 'PROXY_START_FAILED',\n );\n }\n\n await this.store.writeProxyState(provider.id, accountName, {\n accountName,\n endpoint: handle.endpoint,\n compatibility: handle.compatibility ?? provider.proxyCompatibility,\n pid: handle.pid,\n logPath: handle.logPath ?? this.store.logPath(provider.id, accountName),\n startedAt: new Date().toISOString(),\n token: proxyToken,\n });\n\n handle.startedNow = true;\n this.recordLease(provider.id, accountName, handle);\n\n handle.realignedClients = await this.realignBoundClients(\n provider.id,\n accountName,\n handle.endpoint,\n proxyToken,\n );\n return handle;\n }\n\n /** Rewrite bound clients' BASE_URL to the live proxy endpoint. */\n private async realignBoundClients(\n providerId: string,\n accountName: string,\n endpoint: string,\n token?: string,\n ): Promise<string[]> {\n if (!this.realign) {\n return [];\n }\n try {\n return await realignClientsToAccountProxy(\n this.realign,\n providerId,\n accountName,\n endpoint,\n token,\n );\n } catch {\n return [];\n }\n }\n\n private async stopProxyInternal(provider: Provider, accountName: string): Promise<void> {\n return withMutationLock(this.store.root, `proxy/${provider.id}/${accountName}`, () =>\n this.stopProxyInternalUnlocked(provider, accountName),\n );\n }\n\n private async stopProxyInternalUnlocked(provider: Provider, accountName: string): Promise<void> {\n const config = await this.store.getProxyConfig(provider.id, accountName);\n const ctx = this.buildProxyContext(provider.id, accountName, config);\n\n const pidPath = this.store.pidPath(provider.id, accountName);\n const before = await readPidRecord(pidPath);\n if (provider.stopProxy) {\n await provider.stopProxy(ctx);\n } else {\n // Generic pid-file stop if provider did not implement stopProxy\n const { stopPidFile } = await import('../utils/process');\n await stopPidFile(this.store.pidPath(provider.id, accountName));\n }\n\n // A provider may fail closed when it cannot verify PID ownership. Do not\n // erase state/leases in that case: an orphaned credential-bearing proxy is\n // safer to diagnose than to forget.\n if (before && isProcessRunning(before.pid)) {\n // In-process providers (including the test fake) share the CLI PID, so\n // PID liveness alone cannot tell whether their server has stopped.\n // Ask a provider-specific status probe when available; detached providers\n // still fail closed if their recorded process remains alive.\n const status = provider.proxyStatus ? await provider.proxyStatus(ctx) : undefined;\n if (!status || status.running) {\n throw new AnyPickError(\n `Could not verify that the ${provider.name} proxy stopped (pid ${before.pid}).`,\n {\n code: 'PROXY_STOP_UNVERIFIED',\n suggestions: ['Run anypick doctor to inspect the proxy record before retrying.'],\n },\n );\n }\n }\n\n await this.store.clearProxyState(provider.id, accountName);\n this.releaseLease(provider.id, accountName);\n }\n}\n"],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type { GlobalConfig, QuotaGuardPolicy } from '../types.js';
2
- export declare const DEFAULT_QUOTA_GUARD_POLICY: QuotaGuardPolicy;
3
- /**
4
- * Quota Guard only governs multi-account compatibility proxies. It never
5
- * changes a native tool login or sends a saved credential anywhere.
6
- */
7
- export declare function quotaGuardPolicy(config: GlobalConfig): QuotaGuardPolicy;
8
- //# sourceMappingURL=quota-guard-policy.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quota-guard-policy.d.ts","sourceRoot":"","sources":["../../src/core/quota-guard-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE/D,eAAO,MAAM,0BAA0B,EAAE,gBAGxC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAavE"}
@@ -1,21 +0,0 @@
1
- //#region src/core/quota-guard-policy.ts
2
- var DEFAULT_QUOTA_GUARD_POLICY = {
3
- enabled: false,
4
- cooldownMinutes: 60
5
- };
6
- /**
7
- * Quota Guard only governs multi-account compatibility proxies. It never
8
- * changes a native tool login or sends a saved credential anywhere.
9
- */
10
- function quotaGuardPolicy(config) {
11
- const raw = config.ui?.quotaGuard;
12
- const cooldownMinutes = raw?.cooldownMinutes;
13
- return {
14
- enabled: raw?.enabled === true,
15
- cooldownMinutes: typeof cooldownMinutes === "number" && Number.isInteger(cooldownMinutes) && cooldownMinutes >= 1 && cooldownMinutes <= 1440 ? cooldownMinutes : DEFAULT_QUOTA_GUARD_POLICY.cooldownMinutes
16
- };
17
- }
18
- //#endregion
19
- export { DEFAULT_QUOTA_GUARD_POLICY, quotaGuardPolicy };
20
-
21
- //# sourceMappingURL=quota-guard-policy.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"quota-guard-policy.js","names":[],"sources":["../../src/core/quota-guard-policy.ts"],"sourcesContent":["import type { GlobalConfig, QuotaGuardPolicy } from '../types';\n\nexport const DEFAULT_QUOTA_GUARD_POLICY: QuotaGuardPolicy = {\n enabled: false,\n cooldownMinutes: 60,\n};\n\n/**\n * Quota Guard only governs multi-account compatibility proxies. It never\n * changes a native tool login or sends a saved credential anywhere.\n */\nexport function quotaGuardPolicy(config: GlobalConfig): QuotaGuardPolicy {\n const raw = config.ui?.quotaGuard;\n const cooldownMinutes = raw?.cooldownMinutes;\n return {\n enabled: raw?.enabled === true,\n cooldownMinutes:\n typeof cooldownMinutes === 'number' &&\n Number.isInteger(cooldownMinutes) &&\n cooldownMinutes >= 1 &&\n cooldownMinutes <= 24 * 60\n ? cooldownMinutes\n : DEFAULT_QUOTA_GUARD_POLICY.cooldownMinutes,\n };\n}\n"],"mappings":";AAEA,IAAa,6BAA+C;CAC1D,SAAS;CACT,iBAAiB;AACnB;;;;;AAMA,SAAgB,iBAAiB,QAAwC;CACvE,MAAM,MAAM,OAAO,IAAI;CACvB,MAAM,kBAAkB,KAAK;CAC7B,OAAO;EACL,SAAS,KAAK,YAAY;EAC1B,iBACE,OAAO,oBAAoB,YAC3B,OAAO,UAAU,eAAe,KAChC,mBAAmB,KACnB,mBAAmB,OACf,kBACA,2BAA2B;CACnC;AACF"}
@@ -1,19 +0,0 @@
1
- /**
2
- * When a proxy rebinds to a new port/endpoint, rewrite every bound client
3
- * (settings.json / env) so ANTHROPIC_BASE_URL / OPENAI_BASE_URL stay in sync.
4
- * User should never need `anypick use --current` just because the port bumped.
5
- */
6
- import type { BindingStore } from './binding-store.js';
7
- import type { RuntimeService } from './runtime-service.js';
8
- import type { ClientStateStore } from './client-state-store.js';
9
- export interface RealignProxyClientsDeps {
10
- bindings: BindingStore;
11
- runtime: RuntimeService;
12
- clientState?: ClientStateStore;
13
- }
14
- /**
15
- * Find clients bound to provider/account (global + project bindings + client_state)
16
- * and re-apply the live proxy endpoint into their native config.
17
- */
18
- export declare function realignClientsToAccountProxy(deps: RealignProxyClientsDeps, providerId: string, accountName: string, endpoint: string, token?: string): Promise<string[]>;
19
- //# sourceMappingURL=realign-proxy-clients.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"realign-proxy-clients.d.ts","sourceRoot":"","sources":["../../src/core/realign-proxy-clients.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAG7D,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,cAAc,CAAC;IACxB,WAAW,CAAC,EAAE,gBAAgB,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAsB,4BAA4B,CAChD,IAAI,EAAE,uBAAuB,EAC7B,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAChB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,EAAE,CAAC,CA6CnB"}
@@ -1,40 +0,0 @@
1
- import { modelRolesFromClientOptions } from "./model-roles.js";
2
- //#region src/core/realign-proxy-clients.ts
3
- /**
4
- * Find clients bound to provider/account (global + project bindings + client_state)
5
- * and re-apply the live proxy endpoint into their native config.
6
- */
7
- async function realignClientsToAccountProxy(deps, providerId, accountName, endpoint, token) {
8
- const clients = /* @__PURE__ */ new Set();
9
- for (const b of deps.bindings.listGlobal()) if (bindingMatchesAccount(b.spec.source, providerId, accountName)) clients.add(b.client);
10
- if (deps.clientState) {
11
- for (const st of await deps.clientState.list()) if (st.mode === "account" && st.accountRef?.provider === providerId && st.accountRef?.name === accountName) clients.add(st.clientId);
12
- }
13
- const updated = [];
14
- for (const clientId of clients) try {
15
- const global = deps.bindings.getGlobal(clientId);
16
- const roles = modelRolesFromClientOptions(global?.spec.clientOptions);
17
- const modelId = global?.spec.model.mode === "explicit" ? global.spec.model.id : roles?.default;
18
- await deps.runtime.applyProxyEndpoint(clientId, {
19
- endpoint,
20
- apiKey: token ?? "anypick-proxy",
21
- defaultModel: modelId,
22
- modelRoles: roles,
23
- accountRef: {
24
- provider: providerId,
25
- name: accountName
26
- },
27
- label: `proxy:${providerId}/${accountName}`
28
- });
29
- updated.push(clientId);
30
- } catch {}
31
- return updated;
32
- }
33
- function bindingMatchesAccount(source, providerId, accountName) {
34
- if (source.kind === "account") return source.provider === providerId && source.name === accountName;
35
- return false;
36
- }
37
- //#endregion
38
- export { realignClientsToAccountProxy };
39
-
40
- //# sourceMappingURL=realign-proxy-clients.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"realign-proxy-clients.js","names":[],"sources":["../../src/core/realign-proxy-clients.ts"],"sourcesContent":["/**\n * When a proxy rebinds to a new port/endpoint, rewrite every bound client\n * (settings.json / env) so ANTHROPIC_BASE_URL / OPENAI_BASE_URL stay in sync.\n * User should never need `anypick use --current` just because the port bumped.\n */\n\nimport type { BindingStore } from './binding-store';\nimport type { RuntimeService } from './runtime-service';\nimport type { ClientStateStore } from './client-state-store';\nimport { modelRolesFromClientOptions } from './model-roles';\n\nexport interface RealignProxyClientsDeps {\n bindings: BindingStore;\n runtime: RuntimeService;\n clientState?: ClientStateStore;\n}\n\n/**\n * Find clients bound to provider/account (global + project bindings + client_state)\n * and re-apply the live proxy endpoint into their native config.\n */\nexport async function realignClientsToAccountProxy(\n deps: RealignProxyClientsDeps,\n providerId: string,\n accountName: string,\n endpoint: string,\n token?: string,\n): Promise<string[]> {\n const clients = new Set<string>();\n\n for (const b of deps.bindings.listGlobal()) {\n if (bindingMatchesAccount(b.spec.source, providerId, accountName)) {\n clients.add(b.client);\n }\n }\n // Project bindings are scoped to a project activation. Rewriting a native\n // global client config here would leak that project binding globally.\n\n if (deps.clientState) {\n for (const st of await deps.clientState.list()) {\n if (\n st.mode === 'account' &&\n st.accountRef?.provider === providerId &&\n st.accountRef?.name === accountName\n ) {\n clients.add(st.clientId);\n }\n }\n }\n\n const updated: string[] = [];\n for (const clientId of clients) {\n try {\n const global = deps.bindings.getGlobal(clientId);\n const roles = modelRolesFromClientOptions(global?.spec.clientOptions);\n const modelId =\n global?.spec.model.mode === 'explicit' ? global.spec.model.id : roles?.default;\n\n await deps.runtime.applyProxyEndpoint(clientId, {\n endpoint,\n apiKey: token ?? 'anypick-proxy',\n defaultModel: modelId,\n modelRoles: roles,\n accountRef: { provider: providerId, name: accountName },\n label: `proxy:${providerId}/${accountName}`,\n });\n updated.push(clientId);\n } catch {\n // Best-effort — one broken client should not block others\n }\n }\n return updated;\n}\n\nfunction bindingMatchesAccount(\n source: { kind: string; provider?: string; name?: string },\n providerId: string,\n accountName: string,\n): boolean {\n if (source.kind === 'account') {\n return source.provider === providerId && source.name === accountName;\n }\n // A single-account process must never rewrite clients bound to a provider\n // pool (or another account). Pool lifecycle owns its own client binding.\n return false;\n}\n"],"mappings":";;;;;;AAqBA,eAAsB,6BACpB,MACA,YACA,aACA,UACA,OACmB;CACnB,MAAM,0BAAU,IAAI,IAAY;CAEhC,KAAK,MAAM,KAAK,KAAK,SAAS,WAAW,GACvC,IAAI,sBAAsB,EAAE,KAAK,QAAQ,YAAY,WAAW,GAC9D,QAAQ,IAAI,EAAE,MAAM;CAMxB,IAAI,KAAK;OACF,MAAM,MAAM,MAAM,KAAK,YAAY,KAAK,GAC3C,IACE,GAAG,SAAS,aACZ,GAAG,YAAY,aAAa,cAC5B,GAAG,YAAY,SAAS,aAExB,QAAQ,IAAI,GAAG,QAAQ;CAAA;CAK7B,MAAM,UAAoB,CAAC;CAC3B,KAAK,MAAM,YAAY,SACrB,IAAI;EACF,MAAM,SAAS,KAAK,SAAS,UAAU,QAAQ;EAC/C,MAAM,QAAQ,4BAA4B,QAAQ,KAAK,aAAa;EACpE,MAAM,UACJ,QAAQ,KAAK,MAAM,SAAS,aAAa,OAAO,KAAK,MAAM,KAAK,OAAO;EAEzE,MAAM,KAAK,QAAQ,mBAAmB,UAAU;GAC9C;GACA,QAAQ,SAAS;GACjB,cAAc;GACd,YAAY;GACZ,YAAY;IAAE,UAAU;IAAY,MAAM;GAAY;GACtD,OAAO,SAAS,WAAW,GAAG;EAChC,CAAC;EACD,QAAQ,KAAK,QAAQ;CACvB,QAAQ,CAER;CAEF,OAAO;AACT;AAEA,SAAS,sBACP,QACA,YACA,aACS;CACT,IAAI,OAAO,SAAS,WAClB,OAAO,OAAO,aAAa,cAAc,OAAO,SAAS;CAI3D,OAAO;AACT"}
@@ -1,84 +0,0 @@
1
- /**
2
- * Deterministic resource reference parsing (spec §15).
3
- *
4
- * Grammar:
5
- * provider/account → account
6
- * account/provider/account → account
7
- * gateway-name → gateway
8
- * gateway/gateway-name → gateway
9
- * @preset-name → preset
10
- * preset/preset-name → preset
11
- *
12
- * No cross-kind ambiguity. Fuzzy matching never used for direct execution.
13
- */
14
- import type { AccountPoolResourceRef, AccountResourceRef, ClientId, GatewayResourceRef, ProxyHubResourceRef, PresetResourceRef, ResourceRef } from '../types.js';
15
- /** Known account-auth provider ids (file-snapshot providers). */
16
- declare const DEFAULT_ACCOUNT_PROVIDERS: Set<string>;
17
- export interface ParseRefContext {
18
- /** Known account provider ids (default: builtin set). */
19
- accountProviders?: ReadonlySet<string>;
20
- /**
21
- * Optional exact gateway existence check. When provided and plain input
22
- * is not a gateway but an exact preset exists, throws NOT_FOUND with @suggestion.
23
- */
24
- gatewayExists?: (name: string) => boolean | Promise<boolean>;
25
- presetExists?: (name: string) => boolean | Promise<boolean>;
26
- }
27
- /**
28
- * Mutation scope covering a provider's live credential file *and* all of its
29
- * saved snapshots.
30
- *
31
- * Deliberately coarser than one lock per account. Every snapshot mutation is
32
- * reached through the single live auth file the provider owns on disk, so two
33
- * activations pointing different clients at different accounts of the same
34
- * provider are not independent — per-account locks would let them interleave
35
- * two rewrites of that one file. Save/use/stash also resolve their target
36
- * account *by identity* mid-operation, so the exact account is not knowable
37
- * up front and could not be locked in a fixed order (ADR 0009).
38
- */
39
- export declare function providerScope(providerId: string): string;
40
- /**
41
- * Mutation scope an activation must hold for its resolved source. Account and
42
- * pool sources both reach the provider's live auth, so they collapse onto
43
- * `providerScope`, which is what the services lock — one lock file, so the
44
- * nested service call re-enters instead of self-deadlocking.
45
- */
46
- export declare function mutationScopeForRef(ref: ResourceRef): string;
47
- export declare function serializeRef(ref: ResourceRef): string;
48
- export declare function displayRef(ref: ResourceRef): string;
49
- export declare function accountRef(provider: string, name: string): AccountResourceRef;
50
- export declare function gatewayRef(name: string): GatewayResourceRef;
51
- export declare function proxyHubRef(name: string): ProxyHubResourceRef;
52
- export declare function presetRef(name: string): PresetResourceRef;
53
- export declare function accountPoolRef(provider: string): AccountPoolResourceRef;
54
- /**
55
- * Parse a source/preset reference string into a typed ResourceRef.
56
- * Synchronous path — does not perform existence checks.
57
- * Use resolveSourceRef for existence + preset suggestion.
58
- */
59
- export declare function parseRef(input: string, ctx?: ParseRefContext): ResourceRef;
60
- /**
61
- * Resolve a reference with optional existence checks.
62
- * When a plain gateway name is missing but an exact preset exists,
63
- * throws NOT_FOUND suggesting `@name` (never auto-resolves).
64
- */
65
- export declare function resolveSourceRef(input: string, ctx: ParseRefContext & {
66
- gatewayExists: (name: string) => boolean | Promise<boolean>;
67
- presetExists?: (name: string) => boolean | Promise<boolean>;
68
- accountExists?: (provider: string, name: string) => boolean | Promise<boolean>;
69
- }): Promise<ResourceRef>;
70
- /**
71
- * Optional native-account shorthand: `anypick use codex/personal`
72
- * Valid only when provider is also a supported client and the account
73
- * is a native source for that same client.
74
- */
75
- export declare function parseNativeAccountShorthand(input: string, opts: {
76
- accountProviders: ReadonlySet<string>;
77
- clientIds: ReadonlySet<string>;
78
- }): {
79
- client: ClientId;
80
- source: AccountResourceRef;
81
- } | null;
82
- export declare function isKnownAccountProvider(id: string, providers?: ReadonlySet<string>): boolean;
83
- export { DEFAULT_ACCOUNT_PROVIDERS };
84
- //# sourceMappingURL=refs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"refs.d.ts","sourceRoot":"","sources":["../../src/core/refs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EACV,sBAAsB,EACtB,kBAAkB,EAClB,QAAQ,EACR,kBAAkB,EAClB,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACZ,MAAM,UAAU,CAAC;AAGlB,iEAAiE;AACjE,QAAA,MAAM,yBAAyB,aAA2D,CAAC;AAE3F,MAAM,WAAW,eAAe;IAC9B,yDAAyD;IACzD,gBAAgB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACvC;;;OAGG;IACH,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC7D;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAc5D;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAiBrD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,WAAW,GAAG,MAAM,CAiBnD;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAE7E;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,CAE3D;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,mBAAmB,CAE7D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,CAEzD;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,sBAAsB,CAEvE;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,GAAE,eAAoB,GAAG,WAAW,CA2I9E;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,eAAe,GAAG;IACrB,aAAa,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5D,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5D,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAChF,GACA,OAAO,CAAC,WAAW,CAAC,CA2EtB;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE;IACJ,gBAAgB,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,SAAS,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAChC,GACA;IAAE,MAAM,EAAE,QAAQ,CAAC;IAAC,MAAM,EAAE,kBAAkB,CAAA;CAAE,GAAG,IAAI,CA+BzD;AAED,wBAAgB,sBAAsB,CACpC,EAAE,EAAE,MAAM,EACV,SAAS,GAAE,WAAW,CAAC,MAAM,CAA6B,GACzD,OAAO,CAET;AAED,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
package/dist/core/refs.js DELETED
@@ -1,250 +0,0 @@
1
- import { ExitCode, anypickError } from "../utils/errors.js";
2
- //#region src/core/refs.ts
3
- /** Known account-auth provider ids (file-snapshot providers). */
4
- var DEFAULT_ACCOUNT_PROVIDERS = /* @__PURE__ */ new Set([
5
- "codex",
6
- "gemini",
7
- "grok",
8
- "kiro",
9
- "opencode"
10
- ]);
11
- /**
12
- * Mutation scope covering a provider's live credential file *and* all of its
13
- * saved snapshots.
14
- *
15
- * Deliberately coarser than one lock per account. Every snapshot mutation is
16
- * reached through the single live auth file the provider owns on disk, so two
17
- * activations pointing different clients at different accounts of the same
18
- * provider are not independent — per-account locks would let them interleave
19
- * two rewrites of that one file. Save/use/stash also resolve their target
20
- * account *by identity* mid-operation, so the exact account is not knowable
21
- * up front and could not be locked in a fixed order (ADR 0009).
22
- */
23
- function providerScope(providerId) {
24
- return `provider/${providerId}`;
25
- }
26
- /**
27
- * Mutation scope an activation must hold for its resolved source. Account and
28
- * pool sources both reach the provider's live auth, so they collapse onto
29
- * `providerScope`, which is what the services lock — one lock file, so the
30
- * nested service call re-enters instead of self-deadlocking.
31
- */
32
- function mutationScopeForRef(ref) {
33
- switch (ref.kind) {
34
- case "account":
35
- case "account-pool": return providerScope(ref.provider);
36
- case "gateway":
37
- case "proxy-hub":
38
- case "preset": return serializeRef(ref);
39
- default: throw new Error(`Unknown resource ref: ${JSON.stringify(ref)}`);
40
- }
41
- }
42
- function serializeRef(ref) {
43
- switch (ref.kind) {
44
- case "account": return `account/${ref.provider}/${ref.name}`;
45
- case "gateway": return `gateway/${ref.name}`;
46
- case "proxy-hub": return `hub/${ref.name}`;
47
- case "preset": return `preset/${ref.name}`;
48
- case "account-pool": return `pool/${ref.provider}`;
49
- default: throw new Error(`Unknown resource ref: ${JSON.stringify(ref)}`);
50
- }
51
- }
52
- function displayRef(ref) {
53
- switch (ref.kind) {
54
- case "account": return `${ref.provider}/${ref.name}`;
55
- case "gateway": return ref.name;
56
- case "proxy-hub": return `hub:${ref.name}`;
57
- case "preset": return `@${ref.name}`;
58
- case "account-pool": return `pool:${ref.provider}`;
59
- default: throw new Error(`Unknown resource ref: ${JSON.stringify(ref)}`);
60
- }
61
- }
62
- function accountRef(provider, name) {
63
- return {
64
- kind: "account",
65
- provider,
66
- name
67
- };
68
- }
69
- function gatewayRef(name) {
70
- return {
71
- kind: "gateway",
72
- name
73
- };
74
- }
75
- function proxyHubRef(name) {
76
- return {
77
- kind: "proxy-hub",
78
- name
79
- };
80
- }
81
- function presetRef(name) {
82
- return {
83
- kind: "preset",
84
- name
85
- };
86
- }
87
- function accountPoolRef(provider) {
88
- return {
89
- kind: "account-pool",
90
- provider
91
- };
92
- }
93
- /**
94
- * Parse a source/preset reference string into a typed ResourceRef.
95
- * Synchronous path — does not perform existence checks.
96
- * Use resolveSourceRef for existence + preset suggestion.
97
- */
98
- function parseRef(input, ctx = {}) {
99
- const raw = input.trim();
100
- if (!raw) throw anypickError("Empty resource reference.", "INVALID_REFERENCE", {
101
- exitCode: ExitCode.INVALID_USAGE,
102
- suggestions: [
103
- "Accounts use provider/name: grok/work",
104
- "Gateways use their saved name: openrouter-work",
105
- "Presets use @name: @work-grok"
106
- ]
107
- });
108
- const providers = ctx.accountProviders ?? DEFAULT_ACCOUNT_PROVIDERS;
109
- if (raw.startsWith("@")) {
110
- const name = raw.slice(1).trim();
111
- if (!name) throw anypickError("Preset name is required after @.", "INVALID_REFERENCE", { exitCode: ExitCode.INVALID_USAGE });
112
- return presetRef(name);
113
- }
114
- if (raw.startsWith("preset/")) {
115
- const name = raw.slice(7).trim();
116
- if (!name) throw anypickError("Preset name is required after preset/.", "INVALID_REFERENCE", { exitCode: ExitCode.INVALID_USAGE });
117
- return presetRef(name);
118
- }
119
- if (raw.startsWith("hub:") || raw.startsWith("hub/")) {
120
- const name = raw.startsWith("hub:") ? raw.slice(4).trim() : raw.slice(4).trim();
121
- if (!name || name.includes("/") || name.includes(":")) throw anypickError(`Invalid Proxy Hub reference: ${raw}`, "INVALID_REFERENCE", { exitCode: ExitCode.INVALID_USAGE });
122
- return proxyHubRef(name);
123
- }
124
- if (raw.startsWith("pool:") || raw.startsWith("pool/")) {
125
- const provider = raw.startsWith("pool:") ? raw.slice(5).trim() : raw.slice(5).trim();
126
- if (!provider || provider.includes("/") || provider.includes(":")) throw anypickError(`Invalid pool reference: ${raw}. Expected pool:provider (e.g. pool:gemini)`, "INVALID_REFERENCE", { exitCode: ExitCode.INVALID_USAGE });
127
- if (!providers.has(provider)) throw anypickError(`Unknown account provider "${provider}" in pool reference: ${raw}`, "INVALID_REFERENCE", {
128
- exitCode: ExitCode.INVALID_USAGE,
129
- suggestions: [`Known: ${[...providers].toSorted().join(", ")}`]
130
- });
131
- return accountPoolRef(provider);
132
- }
133
- if (raw.startsWith("gateway/")) {
134
- const name = raw.slice(8).trim();
135
- if (!name || name.includes("/")) throw anypickError(`Invalid gateway reference: ${raw}`, "INVALID_REFERENCE", { exitCode: ExitCode.INVALID_USAGE });
136
- return gatewayRef(name);
137
- }
138
- if (raw.startsWith("account/")) {
139
- const rest = raw.slice(8);
140
- const slash = rest.indexOf("/");
141
- if (slash <= 0 || slash === rest.length - 1) throw anypickError(`Invalid account reference: ${raw}. Expected account/provider/name`, "INVALID_REFERENCE", { exitCode: ExitCode.INVALID_USAGE });
142
- return accountRef(rest.slice(0, slash), rest.slice(slash + 1));
143
- }
144
- const slash = raw.indexOf("/");
145
- if (slash > 0) {
146
- const provider = raw.slice(0, slash);
147
- const name = raw.slice(slash + 1);
148
- if (providers.has(provider)) {
149
- if (!name || name.includes("/")) throw anypickError(`Invalid account reference: ${raw}. Expected provider/account`, "INVALID_REFERENCE", { exitCode: ExitCode.INVALID_USAGE });
150
- return accountRef(provider, name);
151
- }
152
- throw anypickError(`Unknown account provider "${provider}" in reference: ${raw}`, "INVALID_REFERENCE", {
153
- exitCode: ExitCode.INVALID_USAGE,
154
- suggestions: [
155
- `Known account providers: ${[...providers].toSorted().join(", ")}`,
156
- "Gateways use a plain name without /",
157
- "Presets use @name"
158
- ]
159
- });
160
- }
161
- if (raw.includes("/") || raw.startsWith("@")) throw anypickError(`Invalid gateway name: ${raw}`, "INVALID_REFERENCE", { exitCode: ExitCode.INVALID_USAGE });
162
- return gatewayRef(raw);
163
- }
164
- /**
165
- * Resolve a reference with optional existence checks.
166
- * When a plain gateway name is missing but an exact preset exists,
167
- * throws NOT_FOUND suggesting `@name` (never auto-resolves).
168
- */
169
- async function resolveSourceRef(input, ctx) {
170
- const ref = parseRef(input, ctx);
171
- if (ref.kind === "gateway") {
172
- if (!await ctx.gatewayExists(ref.name)) {
173
- if (ctx.presetExists && await ctx.presetExists(ref.name)) throw anypickError(`Gateway \`${ref.name}\` was not found.\n\nA preset with that name exists.\nDid you mean:\n anypick use <client> --with @${ref.name}`, "RESOURCE_NOT_FOUND", {
174
- exitCode: ExitCode.NOT_FOUND,
175
- suggestions: [`anypick use <client> --with @${ref.name}`],
176
- details: {
177
- kind: "gateway",
178
- name: ref.name,
179
- presetSuggestion: ref.name
180
- }
181
- });
182
- throw anypickError(`Gateway \`${ref.name}\` was not found.`, "GATEWAY_NOT_FOUND", {
183
- exitCode: ExitCode.NOT_FOUND,
184
- suggestions: [
185
- "Accounts use provider/name:",
186
- " anypick use claude --with grok/work",
187
- "Gateways use their saved name:",
188
- " anypick use claude --with openrouter-work",
189
- "Presets use @name:",
190
- " anypick use claude --with @work-grok"
191
- ],
192
- details: {
193
- kind: "gateway",
194
- name: ref.name
195
- }
196
- });
197
- }
198
- return ref;
199
- }
200
- if (ref.kind === "proxy-hub") {
201
- if (ref.name !== "default") throw anypickError(`Proxy Hub \`${ref.name}\` was not found.`, "RESOURCE_NOT_FOUND", { exitCode: ExitCode.NOT_FOUND });
202
- return ref;
203
- }
204
- if (ref.kind === "account" && ctx.accountExists) {
205
- if (!await ctx.accountExists(ref.provider, ref.name)) throw anypickError(`Account \`${ref.provider}/${ref.name}\` was not found.`, "ACCOUNT_NOT_FOUND", {
206
- exitCode: ExitCode.NOT_FOUND,
207
- suggestions: [`anypick add account ${ref.provider} --current --name ${ref.name}`, `anypick list accounts`],
208
- details: {
209
- kind: "account",
210
- provider: ref.provider,
211
- name: ref.name
212
- }
213
- });
214
- }
215
- if (ref.kind === "preset" && ctx.presetExists) {
216
- if (!await ctx.presetExists(ref.name)) throw anypickError(`Preset \`@${ref.name}\` was not found.`, "PRESET_NOT_FOUND", {
217
- exitCode: ExitCode.NOT_FOUND,
218
- suggestions: ["anypick list presets"],
219
- details: {
220
- kind: "preset",
221
- name: ref.name
222
- }
223
- });
224
- }
225
- return ref;
226
- }
227
- /**
228
- * Optional native-account shorthand: `anypick use codex/personal`
229
- * Valid only when provider is also a supported client and the account
230
- * is a native source for that same client.
231
- */
232
- function parseNativeAccountShorthand(input, opts) {
233
- const raw = input.trim();
234
- if (!raw || raw.startsWith("@") || raw.startsWith("account/") || raw.startsWith("gateway/") || raw.startsWith("preset/")) return null;
235
- const slash = raw.indexOf("/");
236
- if (slash <= 0) return null;
237
- const provider = raw.slice(0, slash);
238
- const name = raw.slice(slash + 1);
239
- if (!name || name.includes("/")) return null;
240
- if (!opts.accountProviders.has(provider)) return null;
241
- if (!opts.clientIds.has(provider)) return null;
242
- return {
243
- client: provider,
244
- source: accountRef(provider, name)
245
- };
246
- }
247
- //#endregion
248
- export { DEFAULT_ACCOUNT_PROVIDERS, accountPoolRef, accountRef, displayRef, gatewayRef, mutationScopeForRef, parseNativeAccountShorthand, parseRef, presetRef, providerScope, proxyHubRef, resolveSourceRef, serializeRef };
249
-
250
- //# sourceMappingURL=refs.js.map