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,409 +0,0 @@
1
- import { assertLoopbackHost } from "../utils/network.js";
2
- import { displayRef, serializeRef } from "./refs.js";
3
- import { sanitizeInferenceToolSchemas } from "../providers/protocol/json-schema.js";
4
- import { estimateAnthropicInputTokens } from "../providers/protocol/token-estimate.js";
5
- import { normalizeLocalApiUrl } from "../providers/proxy-shared.js";
6
- import { randomBytes, randomUUID, timingSafeEqual } from "node:crypto";
7
- import { createServer } from "node:http";
8
- //#region src/core/proxy-hub-server.ts
9
- var MAX_REQUEST_BYTES = 10 * 1024 * 1024;
10
- var HOP_BY_HOP = /* @__PURE__ */ new Set([
11
- "connection",
12
- "keep-alive",
13
- "proxy-authenticate",
14
- "proxy-authorization",
15
- "te",
16
- "trailer",
17
- "transfer-encoding",
18
- "upgrade",
19
- "content-encoding",
20
- "content-length"
21
- ]);
22
- /** Shared provider-owned backend cache for the Hub runtime and catalog refresh. */
23
- var ProxyHubBackendRegistry = class {
24
- deps;
25
- log;
26
- backends = /* @__PURE__ */ new Map();
27
- constructor(deps, log) {
28
- this.deps = deps;
29
- this.log = log;
30
- }
31
- async open(source) {
32
- const sourceId = serializeRef(source);
33
- const existing = this.backends.get(sourceId);
34
- if (existing) return existing;
35
- const accounts = await this.accountsFor(source);
36
- const provider = this.deps.accountRegistry.get(source.provider);
37
- if (!provider.createProxyHubBackend) throw new Error(`${provider.name} does not support Proxy Hub`);
38
- const token = randomBytes(32).toString("hex");
39
- const entry = {
40
- token,
41
- handle: await provider.createProxyHubBackend({
42
- source,
43
- accounts,
44
- token,
45
- log: (line) => this.log(`[${displayRef(source)}] ${line}`)
46
- })
47
- };
48
- this.backends.set(sourceId, entry);
49
- return entry;
50
- }
51
- async close() {
52
- await Promise.allSettled([...this.backends.values()].map((entry) => entry.handle.close()));
53
- this.backends.clear();
54
- }
55
- async accountsFor(source) {
56
- if (source.kind === "account") {
57
- const account = await this.deps.accounts.get(source.provider, source.name);
58
- if (!account) throw new Error(`Proxy Hub source ${displayRef(source)} does not exist`);
59
- return [{
60
- name: account.meta.name,
61
- snapshotDir: account.snapshotDir,
62
- proxy: account.proxy
63
- }];
64
- }
65
- const pool = await this.deps.pools.get(source.provider);
66
- if (!pool || pool.mode !== "multi") throw new Error(`Proxy Hub source ${displayRef(source)} is not an enabled multi-account pool`);
67
- const resolved = (await Promise.all(pool.members.filter((member) => member.enabled).map((member) => this.deps.accounts.get(source.provider, member.account)))).filter((account) => account != null);
68
- if (resolved.length === 0) throw new Error(`Proxy Hub source ${displayRef(source)} has no saved accounts`);
69
- return resolved.map((account) => ({
70
- name: account.meta.name,
71
- snapshotDir: account.snapshotDir,
72
- proxy: account.proxy
73
- }));
74
- }
75
- };
76
- /**
77
- * The single public listener. Provider servers run as private loopback
78
- * backends in this same process; their per-backend token is never exposed to a
79
- * client. This keeps provider protocol code provider-owned while eliminating
80
- * the user-visible endpoint/process fan-out.
81
- */
82
- var ProxyHubServer = class {
83
- deps;
84
- opts;
85
- instanceId;
86
- backends;
87
- closed = false;
88
- log;
89
- server;
90
- constructor(deps, opts) {
91
- this.deps = deps;
92
- this.opts = opts;
93
- assertLoopbackHost(opts.host);
94
- this.instanceId = opts.instanceId ?? randomUUID();
95
- this.log = opts.log ?? (() => {});
96
- this.backends = new ProxyHubBackendRegistry(deps, this.log);
97
- this.server = createServer((req, res) => {
98
- this.handle(req, res).catch((error) => this.fail(res, error));
99
- });
100
- }
101
- async listen() {
102
- await new Promise((resolve, reject) => {
103
- this.server.once("error", reject);
104
- this.server.listen(this.opts.port, this.opts.host, () => resolve());
105
- });
106
- const address = this.server.address();
107
- if (!address || typeof address === "string") throw new Error("Proxy Hub did not bind a TCP listener");
108
- return {
109
- endpoint: `http://${this.opts.host}:${address.port}`,
110
- port: address.port
111
- };
112
- }
113
- async close() {
114
- if (this.closed) return;
115
- this.closed = true;
116
- this.server.closeIdleConnections?.();
117
- await Promise.allSettled([this.backends.close()]);
118
- await new Promise((resolve) => {
119
- const force = setTimeout(() => {
120
- this.server.closeAllConnections?.();
121
- resolve();
122
- }, 1500);
123
- force.unref?.();
124
- this.server.close((error) => {
125
- clearTimeout(force);
126
- if (error && error.code !== "ERR_SERVER_NOT_RUNNING") {}
127
- resolve();
128
- });
129
- });
130
- this.server.closeAllConnections?.();
131
- }
132
- async handle(req, res) {
133
- const url = new URL(normalizeLocalApiUrl(req.url ?? "/"), `http://${this.opts.host}`);
134
- const path = url.pathname;
135
- const method = req.method ?? "GET";
136
- if ((method === "GET" || method === "HEAD") && (path === "/" || path === "/health")) {
137
- this.json(res, 200, {
138
- ok: true,
139
- service: "anypick-proxy-hub",
140
- instanceId: this.instanceId,
141
- hub: this.opts.name
142
- });
143
- return;
144
- }
145
- if (!path.startsWith("/v1/")) {
146
- this.json(res, 404, { error: {
147
- type: "not_found_error",
148
- message: `Not found: ${path}`
149
- } });
150
- return;
151
- }
152
- const route = await this.authenticate(req);
153
- if (!route) {
154
- this.json(res, 401, { error: {
155
- type: "authentication_error",
156
- message: "Invalid proxy token"
157
- } });
158
- return;
159
- }
160
- if (route.manifest.hub !== this.opts.name) {
161
- this.json(res, 403, { error: {
162
- type: "permission_error",
163
- message: "Route is not valid for this hub"
164
- } });
165
- return;
166
- }
167
- if (method === "GET" && path === "/v1/models") {
168
- this.json(res, 200, {
169
- object: "list",
170
- data: route.manifest.routes.map((target) => ({
171
- id: target.model,
172
- object: "model",
173
- owned_by: "anypick"
174
- }))
175
- });
176
- return;
177
- }
178
- if (method !== "POST") {
179
- this.json(res, 405, { error: {
180
- type: "invalid_request_error",
181
- message: "POST required"
182
- } });
183
- return;
184
- }
185
- const request = parseRequest(await readBody(req));
186
- if (!request || typeof request.model !== "string" || !request.model.trim()) {
187
- this.json(res, 400, { error: {
188
- type: "invalid_request_error",
189
- message: "model is required"
190
- } });
191
- return;
192
- }
193
- const target = route.manifest.routes.find((candidate) => candidate.model === request.model);
194
- if (!target) {
195
- this.json(res, 400, { error: {
196
- type: "invalid_request_error",
197
- message: `Model ${request.model} is not available for this proxy route`
198
- } });
199
- return;
200
- }
201
- if (path === "/v1/messages/count_tokens") {
202
- const inputTokens = estimateAnthropicInputTokens(request);
203
- this.log(`count_tokens ${safeLogField(target.model)} → ${inputTokens} (local estimate)`);
204
- this.json(res, 200, { input_tokens: inputTokens });
205
- return;
206
- }
207
- request.model = target.upstreamModel;
208
- const sanitized = sanitizeInferenceToolSchemas(url.pathname, request);
209
- const backend = await this.backends.open(target.source);
210
- const startedAt = Date.now();
211
- const model = safeLogField(target.model);
212
- const source = safeLogField(displayRef(target.source));
213
- try {
214
- const outcome = await this.forward(req, res, url, Buffer.from(JSON.stringify(sanitized.body)), backend);
215
- const elapsed = Date.now() - startedAt;
216
- if (outcome === "client-disconnect") this.log(`route ${model} -> ${source} client disconnect ${elapsed}ms`);
217
- else this.log(`route ${model} -> ${source} ${res.statusCode} ${elapsed}ms`);
218
- } catch (error) {
219
- this.log(`route ${model} -> ${source} failed ${Date.now() - startedAt}ms`);
220
- throw error;
221
- }
222
- }
223
- async authenticate(req) {
224
- const raw = requestToken(req);
225
- if (!raw) return null;
226
- const routes = this.deps.hubs.listRouteSecrets(this.opts.name);
227
- let authenticated = null;
228
- for (const candidate of routes) if (sameSecret(raw, candidate.token)) authenticated = candidate;
229
- return authenticated;
230
- }
231
- async forward(req, res, url, body, backend) {
232
- const headers = new Headers();
233
- for (const [key, value] of Object.entries(req.headers)) {
234
- const normalized = key.toLowerCase();
235
- if (value === void 0 || HOP_BY_HOP.has(normalized) || normalized === "host" || normalized === "authorization" || normalized === "content-length") continue;
236
- headers.set(key, Array.isArray(value) ? value.join(", ") : value);
237
- }
238
- headers.set("authorization", `Bearer ${backend.token}`);
239
- headers.set("content-length", String(body.byteLength));
240
- const abort = new AbortController();
241
- const markClientGone = () => {
242
- if (!abort.signal.aborted) abort.abort(/* @__PURE__ */ new Error("client disconnected"));
243
- };
244
- const onRequestAbort = () => markClientGone();
245
- const onResponseClose = () => {
246
- if (!res.writableFinished) markClientGone();
247
- };
248
- req.once("aborted", onRequestAbort);
249
- res.once("close", onResponseClose);
250
- try {
251
- const upstream = await fetch(`${backend.handle.endpoint}${url.pathname}${url.search}`, {
252
- method: req.method,
253
- headers,
254
- body: new Uint8Array(body),
255
- signal: abort.signal,
256
- redirect: "manual"
257
- });
258
- for (const [key, value] of upstream.headers.entries()) if (!HOP_BY_HOP.has(key.toLowerCase())) res.setHeader(key, value);
259
- res.statusCode = upstream.status;
260
- if (!upstream.body) {
261
- res.end();
262
- return "ok";
263
- }
264
- return await pipeWebStreamToResponse(upstream.body, res, abort);
265
- } catch (error) {
266
- if (isBenignClientClose(error, res, abort.signal)) {
267
- if (!res.writableEnded && !res.destroyed) res.end();
268
- return "client-disconnect";
269
- }
270
- throw error;
271
- } finally {
272
- req.removeListener("aborted", onRequestAbort);
273
- res.removeListener("close", onResponseClose);
274
- }
275
- }
276
- json(res, status, body) {
277
- const raw = JSON.stringify(body);
278
- res.writeHead(status, {
279
- "content-type": "application/json; charset=utf-8",
280
- "content-length": Buffer.byteLength(raw)
281
- });
282
- res.end(raw);
283
- }
284
- fail(res, error) {
285
- const message = error instanceof Error ? error.message : String(error);
286
- if (isBenignClientClose(error, res, void 0)) {
287
- if (!res.writableEnded && !res.destroyed) res.end();
288
- return;
289
- }
290
- this.log(`error ${message}`);
291
- if (!res.headersSent) this.json(res, 502, { error: {
292
- type: "proxy_error",
293
- message: "Proxy Hub backend failed"
294
- } });
295
- else if (!res.writableEnded) res.end();
296
- }
297
- };
298
- /**
299
- * Copy a fetch body onto the client response with backpressure. Returns
300
- * `client-disconnect` when Claude (or another client) cancels mid-stream —
301
- * never throws "Premature close" for that case.
302
- */
303
- async function pipeWebStreamToResponse(body, res, abort) {
304
- let clientGone = abort.signal.aborted;
305
- const onAbort = () => {
306
- clientGone = true;
307
- body.cancel().catch(() => {});
308
- };
309
- abort.signal.addEventListener("abort", onAbort, { once: true });
310
- const reader = body.getReader();
311
- try {
312
- while (!clientGone && !res.writableEnded && !res.destroyed) {
313
- const { done, value } = await reader.read();
314
- if (done) break;
315
- if (!value?.byteLength) continue;
316
- if (!res.write(Buffer.from(value))) {
317
- if (!await waitForDrain(res)) {
318
- clientGone = true;
319
- if (!abort.signal.aborted) abort.abort(/* @__PURE__ */ new Error("client disconnected"));
320
- reader.cancel().catch(() => {});
321
- break;
322
- }
323
- }
324
- }
325
- if (!res.writableEnded && !res.destroyed) res.end();
326
- return clientGone || abort.signal.aborted ? "client-disconnect" : "ok";
327
- } catch (error) {
328
- if (clientGone || isBenignClientClose(error, res, abort.signal)) {
329
- if (!res.writableEnded && !res.destroyed) res.end();
330
- return "client-disconnect";
331
- }
332
- throw error;
333
- } finally {
334
- abort.signal.removeEventListener("abort", onAbort);
335
- try {
336
- reader.releaseLock();
337
- } catch {}
338
- }
339
- }
340
- function waitForDrain(res) {
341
- if (res.writableEnded || res.destroyed || res.socket?.destroyed) return Promise.resolve(false);
342
- if (!res.writableNeedDrain) return Promise.resolve(true);
343
- return new Promise((resolve) => {
344
- const done = (ok) => {
345
- res.removeListener("drain", onDrain);
346
- res.removeListener("close", onFail);
347
- res.removeListener("error", onFail);
348
- resolve(ok);
349
- };
350
- const onDrain = () => done(true);
351
- const onFail = () => done(false);
352
- res.once("drain", onDrain);
353
- res.once("close", onFail);
354
- res.once("error", onFail);
355
- });
356
- }
357
- /**
358
- * fetch throws AbortError when we cancel for a client hang-up. Residual
359
- * stream errors after the client is gone are also not hub failures.
360
- */
361
- function isBenignClientClose(error, res, signal) {
362
- if (signal?.aborted) return true;
363
- if (!error || typeof error !== "object") return false;
364
- const value = error;
365
- if (value.name === "AbortError" || value.code === "ABORT_ERR") return true;
366
- if (value.code === "ERR_STREAM_PREMATURE_CLOSE") return true;
367
- if (typeof value.message === "string" && (/premature close/i.test(value.message) || /aborted|client disconnected|this operation was aborted|terminated|other side closed/i.test(value.message))) return true;
368
- if (Array.isArray(value.errors)) {
369
- for (const nested of value.errors) if (isBenignClientClose(nested, res, signal)) return true;
370
- }
371
- if (res.destroyed || res.writableFinished || res.writableEnded) return typeof value.message === "string" && (/ECONNRESET|EPIPE|socket hang up|write after end|terminated/i.test(value.message) || value.code === "ECONNRESET" || value.code === "EPIPE" || value.code === "UND_ERR_SOCKET");
372
- return value.cause ? isBenignClientClose(value.cause, res, signal) : false;
373
- }
374
- function safeLogField(value) {
375
- return value.replaceAll(/[\r\n\t]/gu, " ").slice(0, 256);
376
- }
377
- function requestToken(req) {
378
- if (typeof req.headers.authorization !== "string") return null;
379
- return /^Bearer\s+(.+)$/iu.exec(req.headers.authorization.trim())?.[1]?.trim() || null;
380
- }
381
- function sameSecret(input, expected) {
382
- const left = Buffer.from(input);
383
- const right = Buffer.from(expected);
384
- return left.length === right.length && timingSafeEqual(left, right);
385
- }
386
- async function readBody(req) {
387
- const chunks = [];
388
- let size = 0;
389
- for await (const chunk of req) {
390
- const next = typeof chunk === "string" ? new TextEncoder().encode(chunk) : chunk instanceof Uint8Array ? new Uint8Array(chunk) : void 0;
391
- if (!next) throw new Error("Proxy Hub received an invalid request body chunk");
392
- size += next.byteLength;
393
- if (size > MAX_REQUEST_BYTES) throw new Error("Request body exceeds Proxy Hub limit");
394
- chunks.push(next);
395
- }
396
- return Buffer.concat(chunks);
397
- }
398
- function parseRequest(body) {
399
- try {
400
- const parsed = JSON.parse(body.toString("utf8"));
401
- return parsed && typeof parsed === "object" && !Array.isArray(parsed) ? parsed : null;
402
- } catch {
403
- return null;
404
- }
405
- }
406
- //#endregion
407
- export { ProxyHubBackendRegistry, ProxyHubServer };
408
-
409
- //# sourceMappingURL=proxy-hub-server.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proxy-hub-server.js","names":[],"sources":["../../src/core/proxy-hub-server.ts"],"sourcesContent":["import { randomBytes, randomUUID, timingSafeEqual } from 'node:crypto';\nimport { createServer, type IncomingMessage, type Server, type ServerResponse } from 'node:http';\nimport type { ProxyHubBackendHandle, ProxyHubSourceRef } from '../types';\nimport { sanitizeInferenceToolSchemas } from '../providers/protocol/json-schema';\nimport { normalizeLocalApiUrl } from '../providers/proxy-shared';\nimport { estimateAnthropicInputTokens } from '../providers/protocol/token-estimate';\nimport { assertLoopbackHost } from '../utils/network';\nimport { displayRef, serializeRef } from './refs';\nimport type { AccountService } from './service';\nimport type { PoolStore } from './pool-store';\nimport type { ProviderRegistry } from './registry';\nimport type { ProxyHubRouteSecret, ProxyHubStore } from './proxy-hub-store';\n\nconst MAX_REQUEST_BYTES = 10 * 1024 * 1024;\nconst HOP_BY_HOP = new Set([\n 'connection',\n 'keep-alive',\n 'proxy-authenticate',\n 'proxy-authorization',\n 'te',\n 'trailer',\n 'transfer-encoding',\n 'upgrade',\n // Never forward these on the hub→client leg: fetch may have already\n // decompressed the backend body, and Node will re-chunk the stream.\n 'content-encoding',\n 'content-length',\n]);\n\nexport interface ProxyHubServerDeps {\n hubs: ProxyHubStore;\n accounts: AccountService;\n pools: PoolStore;\n accountRegistry: ProviderRegistry;\n}\n\nexport interface ProxyHubServerOptions {\n name: string;\n host: string;\n port: number;\n instanceId?: string;\n log?: (line: string) => void;\n}\n\nexport interface ProxyHubBackendSession {\n token: string;\n handle: ProxyHubBackendHandle;\n}\n\n/** Shared provider-owned backend cache for the Hub runtime and catalog refresh. */\nexport class ProxyHubBackendRegistry {\n private readonly backends = new Map<string, ProxyHubBackendSession>();\n\n constructor(\n private readonly deps: ProxyHubServerDeps,\n private readonly log: (line: string) => void,\n ) {}\n\n async open(source: ProxyHubSourceRef): Promise<ProxyHubBackendSession> {\n const sourceId = serializeRef(source);\n const existing = this.backends.get(sourceId);\n if (existing) {\n return existing;\n }\n const accounts = await this.accountsFor(source);\n const provider = this.deps.accountRegistry.get(source.provider);\n if (!provider.createProxyHubBackend) {\n throw new Error(`${provider.name} does not support Proxy Hub`);\n }\n const token = randomBytes(32).toString('hex');\n const handle = await provider.createProxyHubBackend({\n source,\n accounts,\n token,\n log: (line) => this.log(`[${displayRef(source)}] ${line}`),\n });\n const entry: ProxyHubBackendSession = { token, handle };\n this.backends.set(sourceId, entry);\n return entry;\n }\n\n async close(): Promise<void> {\n await Promise.allSettled([...this.backends.values()].map((entry) => entry.handle.close()));\n this.backends.clear();\n }\n\n private async accountsFor(source: ProxyHubSourceRef) {\n if (source.kind === 'account') {\n const account = await this.deps.accounts.get(source.provider, source.name);\n if (!account) {\n throw new Error(`Proxy Hub source ${displayRef(source)} does not exist`);\n }\n return [{ name: account.meta.name, snapshotDir: account.snapshotDir, proxy: account.proxy }];\n }\n const pool = await this.deps.pools.get(source.provider);\n if (!pool || pool.mode !== 'multi') {\n throw new Error(\n `Proxy Hub source ${displayRef(source)} is not an enabled multi-account pool`,\n );\n }\n const accounts = await Promise.all(\n pool.members\n .filter((member) => member.enabled)\n .map((member) => this.deps.accounts.get(source.provider, member.account)),\n );\n const resolved = accounts.filter(\n (account): account is NonNullable<typeof account> => account != null,\n );\n if (resolved.length === 0) {\n throw new Error(`Proxy Hub source ${displayRef(source)} has no saved accounts`);\n }\n return resolved.map((account) => ({\n name: account.meta.name,\n snapshotDir: account.snapshotDir,\n proxy: account.proxy,\n }));\n }\n}\n\n/**\n * The single public listener. Provider servers run as private loopback\n * backends in this same process; their per-backend token is never exposed to a\n * client. This keeps provider protocol code provider-owned while eliminating\n * the user-visible endpoint/process fan-out.\n */\nexport class ProxyHubServer {\n readonly instanceId: string;\n private readonly backends: ProxyHubBackendRegistry;\n private closed = false;\n private readonly log: (line: string) => void;\n private readonly server: Server;\n\n constructor(\n private readonly deps: ProxyHubServerDeps,\n private readonly opts: ProxyHubServerOptions,\n ) {\n assertLoopbackHost(opts.host);\n this.instanceId = opts.instanceId ?? randomUUID();\n this.log = opts.log ?? (() => {});\n this.backends = new ProxyHubBackendRegistry(deps, this.log);\n this.server = createServer((req, res) => {\n void this.handle(req, res).catch((error) => this.fail(res, error));\n });\n }\n\n async listen(): Promise<{ endpoint: string; port: number }> {\n await new Promise<void>((resolve, reject) => {\n this.server.once('error', reject);\n this.server.listen(this.opts.port, this.opts.host, () => resolve());\n });\n const address = this.server.address();\n if (!address || typeof address === 'string') {\n throw new Error('Proxy Hub did not bind a TCP listener');\n }\n return { endpoint: `http://${this.opts.host}:${address.port}`, port: address.port };\n }\n\n async close(): Promise<void> {\n if (this.closed) {\n return;\n }\n this.closed = true;\n // Drop keep-alive / mid-stream clients so close() does not hang under\n // `tsx watch` reloads (tsx force-kills after 5s if we stall on open SSE).\n this.server.closeIdleConnections?.();\n await Promise.allSettled([this.backends.close()]);\n await new Promise<void>((resolve) => {\n const force = setTimeout(() => {\n this.server.closeAllConnections?.();\n resolve();\n }, 1_500);\n force.unref?.();\n this.server.close((error) => {\n clearTimeout(force);\n if (error && (error as NodeJS.ErrnoException).code !== 'ERR_SERVER_NOT_RUNNING') {\n // Still resolve — caller is shutting down.\n }\n resolve();\n });\n });\n this.server.closeAllConnections?.();\n }\n\n private async handle(req: IncomingMessage, res: ServerResponse): Promise<void> {\n // Codex treats a model-provider `base_url` as a prefix and calls\n // `/responses`; OpenAI SDKs call `/v1/responses`. Canonicalize to `/v1/*`\n // before routing so both spellings reach the same backend.\n const url = new URL(normalizeLocalApiUrl(req.url ?? '/'), `http://${this.opts.host}`);\n const path = url.pathname;\n const method = req.method ?? 'GET';\n\n if ((method === 'GET' || method === 'HEAD') && (path === '/' || path === '/health')) {\n this.json(res, 200, {\n ok: true,\n service: 'anypick-proxy-hub',\n instanceId: this.instanceId,\n hub: this.opts.name,\n });\n return;\n }\n if (!path.startsWith('/v1/')) {\n this.json(res, 404, { error: { type: 'not_found_error', message: `Not found: ${path}` } });\n return;\n }\n\n const route = await this.authenticate(req);\n if (!route) {\n this.json(res, 401, {\n error: { type: 'authentication_error', message: 'Invalid proxy token' },\n });\n return;\n }\n if (route.manifest.hub !== this.opts.name) {\n this.json(res, 403, {\n error: { type: 'permission_error', message: 'Route is not valid for this hub' },\n });\n return;\n }\n\n if (method === 'GET' && path === '/v1/models') {\n this.json(res, 200, {\n object: 'list',\n data: route.manifest.routes.map((target) => ({\n id: target.model,\n object: 'model',\n owned_by: 'anypick',\n })),\n });\n return;\n }\n\n if (method !== 'POST') {\n this.json(res, 405, { error: { type: 'invalid_request_error', message: 'POST required' } });\n return;\n }\n\n const body = await readBody(req);\n const request = parseRequest(body);\n if (!request || typeof request.model !== 'string' || !request.model.trim()) {\n this.json(res, 400, {\n error: { type: 'invalid_request_error', message: 'model is required' },\n });\n return;\n }\n const target = route.manifest.routes.find((candidate) => candidate.model === request.model);\n if (!target) {\n this.json(res, 400, {\n error: {\n type: 'invalid_request_error',\n message: `Model ${request.model} is not available for this proxy route`,\n },\n });\n return;\n }\n\n // Claude Code polls this for context budgeting. Many provider backends\n // (xAI Grok, etc.) do not implement it and return 404 — never forward, or\n // the upstream may treat the spam as abuse.\n if (path === '/v1/messages/count_tokens') {\n const inputTokens = estimateAnthropicInputTokens(request);\n this.log(`count_tokens ${safeLogField(target.model)} → ${inputTokens} (local estimate)`);\n this.json(res, 200, { input_tokens: inputTokens });\n return;\n }\n\n request.model = target.upstreamModel;\n // Claude Code emits `\"required\": null` on tool schemas; strict backends\n // (xAI) reject that. Sanitize here so every provider backend benefits.\n const sanitized = sanitizeInferenceToolSchemas(url.pathname, request);\n const backend = await this.backends.open(target.source);\n const startedAt = Date.now();\n const model = safeLogField(target.model);\n const source = safeLogField(displayRef(target.source));\n try {\n const outcome = await this.forward(\n req,\n res,\n url,\n Buffer.from(JSON.stringify(sanitized.body)),\n backend,\n );\n const elapsed = Date.now() - startedAt;\n if (outcome === 'client-disconnect') {\n // Claude (and other clients) cancel in-flight tool rounds often; this is\n // not a backend failure. Log quietly so real errors stay visible.\n this.log(`route ${model} -> ${source} client disconnect ${elapsed}ms`);\n } else {\n this.log(`route ${model} -> ${source} ${res.statusCode} ${elapsed}ms`);\n }\n } catch (error) {\n this.log(`route ${model} -> ${source} failed ${Date.now() - startedAt}ms`);\n throw error;\n }\n }\n\n private async authenticate(req: IncomingMessage): Promise<ProxyHubRouteSecret | null> {\n const raw = requestToken(req);\n if (!raw) {\n return null;\n }\n const routes = this.deps.hubs.listRouteSecrets(this.opts.name);\n let authenticated: ProxyHubRouteSecret | null = null;\n for (const candidate of routes) {\n if (sameSecret(raw, candidate.token)) {\n authenticated = candidate;\n }\n }\n return authenticated;\n }\n\n private async forward(\n req: IncomingMessage,\n res: ServerResponse,\n url: URL,\n body: Buffer,\n backend: ProxyHubBackendSession,\n ): Promise<'ok' | 'client-disconnect'> {\n const headers = new Headers();\n for (const [key, value] of Object.entries(req.headers)) {\n const normalized = key.toLowerCase();\n if (\n value === undefined ||\n HOP_BY_HOP.has(normalized) ||\n normalized === 'host' ||\n normalized === 'authorization' ||\n // Request content-length is set from the rewritten body below.\n normalized === 'content-length'\n ) {\n continue;\n }\n headers.set(key, Array.isArray(value) ? value.join(', ') : value);\n }\n headers.set('authorization', `Bearer ${backend.token}`);\n headers.set('content-length', String(body.byteLength));\n\n const abort = new AbortController();\n const markClientGone = () => {\n if (!abort.signal.aborted) {\n abort.abort(new Error('client disconnected'));\n }\n };\n const onRequestAbort = () => markClientGone();\n // Successful completion also emits 'close'. Only cancel upstream when the\n // client hung up before we finished writing.\n const onResponseClose = () => {\n if (!res.writableFinished) {\n markClientGone();\n }\n };\n req.once('aborted', onRequestAbort);\n res.once('close', onResponseClose);\n try {\n const upstream = await fetch(`${backend.handle.endpoint}${url.pathname}${url.search}`, {\n method: req.method,\n headers,\n body: new Uint8Array(body),\n signal: abort.signal,\n redirect: 'manual',\n });\n for (const [key, value] of upstream.headers.entries()) {\n if (!HOP_BY_HOP.has(key.toLowerCase())) {\n res.setHeader(key, value);\n }\n }\n res.statusCode = upstream.status;\n if (!upstream.body) {\n res.end();\n return 'ok';\n }\n // Manual pipe (not stream.pipeline): Claude cancels tool rounds constantly.\n // pipeline() rejects with \"Premature close\" on those disconnects; the\n // reader loop treats them as a normal client-disconnect outcome instead.\n return await pipeWebStreamToResponse(upstream.body, res, abort);\n } catch (error) {\n if (isBenignClientClose(error, res, abort.signal)) {\n if (!res.writableEnded && !res.destroyed) {\n res.end();\n }\n return 'client-disconnect';\n }\n throw error;\n } finally {\n req.removeListener('aborted', onRequestAbort);\n res.removeListener('close', onResponseClose);\n }\n }\n\n private json(res: ServerResponse, status: number, body: unknown): void {\n const raw = JSON.stringify(body);\n res.writeHead(status, {\n 'content-type': 'application/json; charset=utf-8',\n 'content-length': Buffer.byteLength(raw),\n });\n res.end(raw);\n }\n\n private fail(res: ServerResponse, error: unknown): void {\n const message = error instanceof Error ? error.message : String(error);\n // Client cancel after headers is common with Claude tool loops; do not\n // spam hub logs or invent a 502 body the client will never read.\n if (isBenignClientClose(error, res, undefined)) {\n if (!res.writableEnded && !res.destroyed) {\n res.end();\n }\n return;\n }\n this.log(`error ${message}`);\n if (!res.headersSent) {\n this.json(res, 502, { error: { type: 'proxy_error', message: 'Proxy Hub backend failed' } });\n } else if (!res.writableEnded) {\n res.end();\n }\n }\n}\n\n/**\n * Copy a fetch body onto the client response with backpressure. Returns\n * `client-disconnect` when Claude (or another client) cancels mid-stream —\n * never throws \"Premature close\" for that case.\n */\nasync function pipeWebStreamToResponse(\n body: ReadableStream<Uint8Array>,\n res: ServerResponse,\n abort: AbortController,\n): Promise<'ok' | 'client-disconnect'> {\n let clientGone = abort.signal.aborted;\n const onAbort = () => {\n clientGone = true;\n void body.cancel().catch(() => {});\n };\n abort.signal.addEventListener('abort', onAbort, { once: true });\n const reader = body.getReader() as ReadableStreamDefaultReader<Uint8Array>;\n try {\n while (!clientGone && !res.writableEnded && !res.destroyed) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n if (!value?.byteLength) {\n continue;\n }\n if (!res.write(Buffer.from(value))) {\n if (!(await waitForDrain(res))) {\n clientGone = true;\n if (!abort.signal.aborted) {\n abort.abort(new Error('client disconnected'));\n }\n void reader.cancel().catch(() => {});\n break;\n }\n }\n }\n if (!res.writableEnded && !res.destroyed) {\n res.end();\n }\n return clientGone || abort.signal.aborted ? 'client-disconnect' : 'ok';\n } catch (error) {\n if (clientGone || isBenignClientClose(error, res, abort.signal)) {\n if (!res.writableEnded && !res.destroyed) {\n res.end();\n }\n return 'client-disconnect';\n }\n throw error;\n } finally {\n abort.signal.removeEventListener('abort', onAbort);\n try {\n reader.releaseLock();\n } catch {\n // already released / cancelled\n }\n }\n}\n\nfunction waitForDrain(res: ServerResponse): Promise<boolean> {\n if (res.writableEnded || res.destroyed || res.socket?.destroyed) {\n return Promise.resolve(false);\n }\n if (!res.writableNeedDrain) {\n return Promise.resolve(true);\n }\n return new Promise((resolve) => {\n const done = (ok: boolean) => {\n res.removeListener('drain', onDrain);\n res.removeListener('close', onFail);\n res.removeListener('error', onFail);\n resolve(ok);\n };\n const onDrain = () => done(true);\n const onFail = () => done(false);\n res.once('drain', onDrain);\n res.once('close', onFail);\n res.once('error', onFail);\n });\n}\n\n/**\n * fetch throws AbortError when we cancel for a client hang-up. Residual\n * stream errors after the client is gone are also not hub failures.\n */\nfunction isBenignClientClose(\n error: unknown,\n res: ServerResponse,\n signal: AbortSignal | undefined,\n): boolean {\n if (signal?.aborted) {\n return true;\n }\n if (!error || typeof error !== 'object') {\n return false;\n }\n const value = error as {\n name?: string;\n code?: string;\n message?: string;\n cause?: unknown;\n errors?: unknown[];\n };\n if (value.name === 'AbortError' || value.code === 'ABORT_ERR') {\n return true;\n }\n if (value.code === 'ERR_STREAM_PREMATURE_CLOSE') {\n return true;\n }\n if (\n typeof value.message === 'string' &&\n (/premature close/i.test(value.message) ||\n /aborted|client disconnected|this operation was aborted|terminated|other side closed/i.test(\n value.message,\n ))\n ) {\n return true;\n }\n // AggregateError from multi-stream cleanup — inspect nested errors.\n if (Array.isArray(value.errors)) {\n for (const nested of value.errors) {\n if (isBenignClientClose(nested, res, signal)) {\n return true;\n }\n }\n }\n // Client already gone / response fully written — any residual stream error is\n // not actionable for the user.\n if (res.destroyed || res.writableFinished || res.writableEnded) {\n return (\n typeof value.message === 'string' &&\n (/ECONNRESET|EPIPE|socket hang up|write after end|terminated/i.test(value.message) ||\n value.code === 'ECONNRESET' ||\n value.code === 'EPIPE' ||\n value.code === 'UND_ERR_SOCKET')\n );\n }\n return value.cause ? isBenignClientClose(value.cause, res, signal) : false;\n}\n\nfunction safeLogField(value: string): string {\n return value.replaceAll(/[\\r\\n\\t]/gu, ' ').slice(0, 256);\n}\n\nfunction requestToken(req: IncomingMessage): string | null {\n if (typeof req.headers.authorization !== 'string') {\n return null;\n }\n const match = /^Bearer\\s+(.+)$/iu.exec(req.headers.authorization.trim());\n return match?.[1]?.trim() || null;\n}\n\nfunction sameSecret(input: string, expected: string): boolean {\n const left = Buffer.from(input);\n const right = Buffer.from(expected);\n return left.length === right.length && timingSafeEqual(left, right);\n}\n\nasync function readBody(req: IncomingMessage): Promise<Buffer> {\n const chunks: Uint8Array[] = [];\n let size = 0;\n for await (const chunk of req as AsyncIterable<unknown>) {\n const next =\n typeof chunk === 'string'\n ? new TextEncoder().encode(chunk)\n : chunk instanceof Uint8Array\n ? new Uint8Array(chunk)\n : undefined;\n if (!next) {\n throw new Error('Proxy Hub received an invalid request body chunk');\n }\n size += next.byteLength;\n if (size > MAX_REQUEST_BYTES) {\n throw new Error('Request body exceeds Proxy Hub limit');\n }\n chunks.push(next);\n }\n return Buffer.concat(chunks);\n}\n\nfunction parseRequest(body: Buffer): Record<string, unknown> | null {\n try {\n const parsed = JSON.parse(body.toString('utf8')) as unknown;\n return parsed && typeof parsed === 'object' && !Array.isArray(parsed)\n ? (parsed as Record<string, unknown>)\n : null;\n } catch {\n return null;\n }\n}\n"],"mappings":"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"}
@@ -1,97 +0,0 @@
1
- import type { ClientId, Protocol, ProxyHubConfig, ProxyHubSource, ProxyHubSourceRef, ProxyHubStatus } from '../types.js';
2
- import { type ProxyHubServerDeps } from './proxy-hub-server.js';
3
- import { type CompiledProxyHubRoutes } from './proxy-hub-routes.js';
4
- import { ProxyHubStore, type ProxyHubRouteSecret } from './proxy-hub-store.js';
5
- export interface ProxyHubCatalogSnapshot {
6
- source: ProxyHubSourceRef;
7
- catalogId: string;
8
- models: string[];
9
- }
10
- export interface ProxyHubPreview extends CompiledProxyHubRoutes {
11
- config: ProxyHubConfig;
12
- catalogs: ProxyHubCatalogSnapshot[];
13
- unavailable: Array<{
14
- source: ProxyHubSourceRef;
15
- reason: string;
16
- }>;
17
- }
18
- /**
19
- * Owns Hub configuration and route attachment. The server owns no persisted
20
- * mutation: it reads these versioned, token-scoped manifests at its boundary.
21
- */
22
- export declare class ProxyHubService {
23
- private readonly root;
24
- private readonly store;
25
- private readonly deps;
26
- private readonly previewCache;
27
- private readonly previewPending;
28
- constructor(root: string, store: ProxyHubStore, deps: ProxyHubServerDeps);
29
- /**
30
- * Optional re-publisher for the live Codex config block, wired in app.ts so this
31
- * service does not depend on Codex/Proxy services it was not constructed with.
32
- */
33
- private codexLiveConfigSync?;
34
- setCodexLiveConfigSync(fn: () => Promise<void>): void;
35
- private syncCodexLiveConfig;
36
- get(name?: string): Promise<ProxyHubConfig>;
37
- save(config: Omit<ProxyHubConfig, 'revision' | 'createdAt' | 'updatedAt'> & Partial<Pick<ProxyHubConfig, 'revision' | 'createdAt' | 'updatedAt'>>): Promise<ProxyHubConfig>;
38
- setSources(name: string, sources: ProxyHubSource[]): Promise<ProxyHubConfig>;
39
- /**
40
- * Drop a deleted saved account from Hub sources and model owners.
41
- * AccountService calls this after the account row is gone so a removed
42
- * login cannot keep blocking attach or linger in Hub Sources.
43
- */
44
- forgetAccount(providerId: string, accountName: string, name?: string): Promise<void>;
45
- setModelOwner(name: string, model: string, source: ProxyHubSourceRef | undefined): Promise<ProxyHubConfig>;
46
- /**
47
- * Persist one explicit source choice for a set of colliding raw model ids.
48
- * Discovery and the single config write share the Hub/provider lock set, so
49
- * a stale Tray action can never assign a model to a source that stopped
50
- * advertising it while the action was in flight.
51
- */
52
- setModelOwners(name: string, models: readonly string[], source: ProxyHubSourceRef | undefined): Promise<ProxyHubConfig>;
53
- /** Refresh source catalogs through provider-owned in-process backends. */
54
- preview(name?: string): Promise<ProxyHubPreview>;
55
- /** Force provider-owned catalog discovery instead of accepting the 10 s preview cache. */
56
- refreshPreview(name?: string): Promise<ProxyHubPreview>;
57
- private loadPreview;
58
- /** Read a bounded tail of the detached Hub process log. */
59
- logs(name?: string, lines?: number): Promise<string>;
60
- private previewWithConfig;
61
- attachRoute(routeId: string, client: ClientId, protocol: Protocol, name?: string, requiredModels?: readonly string[]): Promise<ProxyHubRouteSecret>;
62
- getAttachedRoute(routeId: string): ProxyHubRouteSecret | null;
63
- getAttachedRouteCount(name?: string): number;
64
- restoreRoute(routeId: string, previous: ProxyHubRouteSecret | null): Promise<void>;
65
- detachRoute(routeId: string, name?: string): Promise<void>;
66
- /** Start the singleton detached Hub process, reusing only a verified instance. */
67
- ensureRunning(name?: string): Promise<{
68
- endpoint: string;
69
- startedNow: boolean;
70
- pid: number;
71
- instanceId: string;
72
- }>;
73
- private ensureRunningWithConfig;
74
- /**
75
- * Reclaim a live hub whose pid record was lost or points at a dead process.
76
- * Identity comes from /health (service + hub name + instanceId), not from
77
- * "something is listening on the port".
78
- */
79
- private adoptLiveHub;
80
- stop(name?: string): Promise<void>;
81
- status(name?: string): Promise<ProxyHubStatus>;
82
- private validateSources;
83
- private cachedPreview;
84
- /**
85
- * Read a versioned config, acquire its complete sorted scope set, then prove
86
- * it did not change before using it. A source edit that wins the small race
87
- * is retried with its new provider scopes instead of running discovery while
88
- * an unlisted provider account can mutate.
89
- */
90
- private withStableConfig;
91
- private validateRoutesForClient;
92
- private adapterForSource;
93
- private adapterForAccount;
94
- }
95
- /** Count user decisions, not raw model rows, for compact status surfaces. */
96
- export declare function proxyHubIssueCount(preview: Pick<ProxyHubPreview, 'conflicts' | 'sourceChoices'>): number;
97
- //# sourceMappingURL=proxy-hub-service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"proxy-hub-service.d.ts","sourceRoot":"","sources":["../../src/core/proxy-hub-service.ts"],"names":[],"mappings":"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"}