anypick 1.0.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/LICENSE +21 -0
  2. package/README.md +589 -0
  3. package/dist/adapters.d.ts +4 -0
  4. package/dist/adapters.d.ts.map +1 -0
  5. package/dist/adapters.js +2 -0
  6. package/dist/catalog/model-fetch.d.ts +34 -0
  7. package/dist/catalog/model-fetch.d.ts.map +1 -0
  8. package/dist/catalog/model-fetch.js +99 -0
  9. package/dist/catalog/model-fetch.js.map +1 -0
  10. package/dist/catalog/providers.d.ts +42 -0
  11. package/dist/catalog/providers.d.ts.map +1 -0
  12. package/dist/catalog/providers.js +424 -0
  13. package/dist/catalog/providers.js.map +1 -0
  14. package/dist/cli/bootstrap.d.ts +3 -0
  15. package/dist/cli/bootstrap.d.ts.map +1 -0
  16. package/dist/cli/bootstrap.js +78 -0
  17. package/dist/cli/bootstrap.js.map +1 -0
  18. package/dist/cli/commands.d.ts +29 -0
  19. package/dist/cli/commands.d.ts.map +1 -0
  20. package/dist/cli/commands.js +1043 -0
  21. package/dist/cli/commands.js.map +1 -0
  22. package/dist/cli/completion.d.ts +6 -0
  23. package/dist/cli/completion.d.ts.map +1 -0
  24. package/dist/cli/completion.js +202 -0
  25. package/dist/cli/completion.js.map +1 -0
  26. package/dist/cli/errors.d.ts +20 -0
  27. package/dist/cli/errors.d.ts.map +1 -0
  28. package/dist/cli/errors.js +47 -0
  29. package/dist/cli/errors.js.map +1 -0
  30. package/dist/cli/format.d.ts +6 -0
  31. package/dist/cli/format.d.ts.map +1 -0
  32. package/dist/cli/format.js +75 -0
  33. package/dist/cli/format.js.map +1 -0
  34. package/dist/cli/help.d.ts +6 -0
  35. package/dist/cli/help.d.ts.map +1 -0
  36. package/dist/cli/help.js +66 -0
  37. package/dist/cli/help.js.map +1 -0
  38. package/dist/cli/interactive-accounts.d.ts +3 -0
  39. package/dist/cli/interactive-accounts.d.ts.map +1 -0
  40. package/dist/cli/interactive-accounts.js +86 -0
  41. package/dist/cli/interactive-accounts.js.map +1 -0
  42. package/dist/cli/interactive-maintenance.d.ts +4 -0
  43. package/dist/cli/interactive-maintenance.d.ts.map +1 -0
  44. package/dist/cli/interactive-maintenance.js +30 -0
  45. package/dist/cli/interactive-maintenance.js.map +1 -0
  46. package/dist/cli/interactive.d.ts +14 -0
  47. package/dist/cli/interactive.d.ts.map +1 -0
  48. package/dist/cli/interactive.js +242 -0
  49. package/dist/cli/interactive.js.map +1 -0
  50. package/dist/cli/launch-client.d.ts +18 -0
  51. package/dist/cli/launch-client.d.ts.map +1 -0
  52. package/dist/cli/launch-client.js +117 -0
  53. package/dist/cli/launch-client.js.map +1 -0
  54. package/dist/cli/launcher-model.d.ts +64 -0
  55. package/dist/cli/launcher-model.d.ts.map +1 -0
  56. package/dist/cli/launcher-model.js +200 -0
  57. package/dist/cli/launcher-model.js.map +1 -0
  58. package/dist/cli/launcher-render.d.ts +22 -0
  59. package/dist/cli/launcher-render.d.ts.map +1 -0
  60. package/dist/cli/launcher-render.js +113 -0
  61. package/dist/cli/launcher-render.js.map +1 -0
  62. package/dist/cli/launcher.d.ts +27 -0
  63. package/dist/cli/launcher.d.ts.map +1 -0
  64. package/dist/cli/launcher.js +93 -0
  65. package/dist/cli/launcher.js.map +1 -0
  66. package/dist/cli/local-health.d.ts +17 -0
  67. package/dist/cli/local-health.d.ts.map +1 -0
  68. package/dist/cli/local-health.js +31 -0
  69. package/dist/cli/local-health.js.map +1 -0
  70. package/dist/cli/plugin-commands.d.ts +4 -0
  71. package/dist/cli/plugin-commands.d.ts.map +1 -0
  72. package/dist/cli/plugin-commands.js +160 -0
  73. package/dist/cli/plugin-commands.js.map +1 -0
  74. package/dist/cli/primary.d.ts +18 -0
  75. package/dist/cli/primary.d.ts.map +1 -0
  76. package/dist/cli/primary.js +593 -0
  77. package/dist/cli/primary.js.map +1 -0
  78. package/dist/cli/render-util.d.ts +24 -0
  79. package/dist/cli/render-util.d.ts.map +1 -0
  80. package/dist/cli/render-util.js +58 -0
  81. package/dist/cli/render-util.js.map +1 -0
  82. package/dist/cli/ux.d.ts +43 -0
  83. package/dist/cli/ux.d.ts.map +1 -0
  84. package/dist/cli/ux.js +114 -0
  85. package/dist/cli/ux.js.map +1 -0
  86. package/dist/cli.d.ts +3 -0
  87. package/dist/cli.d.ts.map +1 -0
  88. package/dist/cli.js +35 -0
  89. package/dist/cli.js.map +1 -0
  90. package/dist/clients/claude-client-apply.d.ts +8 -0
  91. package/dist/clients/claude-client-apply.d.ts.map +1 -0
  92. package/dist/clients/claude-client-apply.js +108 -0
  93. package/dist/clients/claude-client-apply.js.map +1 -0
  94. package/dist/clients/claude-code.d.ts +5 -0
  95. package/dist/clients/claude-code.d.ts.map +1 -0
  96. package/dist/clients/claude-code.js +189 -0
  97. package/dist/clients/claude-code.js.map +1 -0
  98. package/dist/clients/claude-settings-guard.d.ts +18 -0
  99. package/dist/clients/claude-settings-guard.d.ts.map +1 -0
  100. package/dist/clients/codex-desktop-catalog.d.ts +67 -0
  101. package/dist/clients/codex-desktop-catalog.d.ts.map +1 -0
  102. package/dist/clients/codex-desktop-catalog.js +212 -0
  103. package/dist/clients/codex-desktop-catalog.js.map +1 -0
  104. package/dist/clients/codex.d.ts +181 -0
  105. package/dist/clients/codex.d.ts.map +1 -0
  106. package/dist/clients/codex.js +783 -0
  107. package/dist/clients/codex.js.map +1 -0
  108. package/dist/clients/env-files.d.ts +14 -0
  109. package/dist/clients/env-files.d.ts.map +1 -0
  110. package/dist/clients/env-files.js +50 -0
  111. package/dist/clients/env-files.js.map +1 -0
  112. package/dist/clients/gemini-client-utils.d.ts +4 -0
  113. package/dist/clients/gemini-client-utils.d.ts.map +1 -0
  114. package/dist/clients/gemini-client-utils.js +33 -0
  115. package/dist/clients/gemini-client-utils.js.map +1 -0
  116. package/dist/clients/gemini.d.ts +16 -0
  117. package/dist/clients/gemini.d.ts.map +1 -0
  118. package/dist/clients/gemini.js +233 -0
  119. package/dist/clients/gemini.js.map +1 -0
  120. package/dist/clients/index.d.ts +14 -0
  121. package/dist/clients/index.d.ts.map +1 -0
  122. package/dist/clients/index.js +18 -0
  123. package/dist/clients/index.js.map +1 -0
  124. package/dist/clients/isolation.d.ts +28 -0
  125. package/dist/clients/isolation.d.ts.map +1 -0
  126. package/dist/clients/isolation.js +131 -0
  127. package/dist/clients/isolation.js.map +1 -0
  128. package/dist/clients/kiro.d.ts +10 -0
  129. package/dist/clients/kiro.d.ts.map +1 -0
  130. package/dist/clients/kiro.js +168 -0
  131. package/dist/clients/kiro.js.map +1 -0
  132. package/dist/clients/model-roles.d.ts +58 -0
  133. package/dist/clients/model-roles.d.ts.map +1 -0
  134. package/dist/clients/model-roles.js +139 -0
  135. package/dist/clients/model-roles.js.map +1 -0
  136. package/dist/clients/registry.d.ts +7 -0
  137. package/dist/clients/registry.d.ts.map +1 -0
  138. package/dist/clients/registry.js +16 -0
  139. package/dist/clients/registry.js.map +1 -0
  140. package/dist/clients/resolve.d.ts +27 -0
  141. package/dist/clients/resolve.d.ts.map +1 -0
  142. package/dist/clients/resolve.js +49 -0
  143. package/dist/clients/resolve.js.map +1 -0
  144. package/dist/core/account-codec.d.ts +32 -0
  145. package/dist/core/account-codec.d.ts.map +1 -0
  146. package/dist/core/account-codec.js +134 -0
  147. package/dist/core/account-codec.js.map +1 -0
  148. package/dist/core/account-transfer.d.ts +20 -0
  149. package/dist/core/account-transfer.d.ts.map +1 -0
  150. package/dist/core/account-transfer.js +136 -0
  151. package/dist/core/account-transfer.js.map +1 -0
  152. package/dist/core/activation-executor.d.ts +72 -0
  153. package/dist/core/activation-executor.d.ts.map +1 -0
  154. package/dist/core/activation-executor.js +690 -0
  155. package/dist/core/activation-executor.js.map +1 -0
  156. package/dist/core/activation-models.d.ts +6 -0
  157. package/dist/core/activation-models.d.ts.map +1 -0
  158. package/dist/core/activation-models.js +33 -0
  159. package/dist/core/activation-models.js.map +1 -0
  160. package/dist/core/activation-planner.d.ts +38 -0
  161. package/dist/core/activation-planner.d.ts.map +1 -0
  162. package/dist/core/activation-planner.js +248 -0
  163. package/dist/core/activation-planner.js.map +1 -0
  164. package/dist/core/activation-protocol.d.ts +3 -0
  165. package/dist/core/activation-protocol.d.ts.map +1 -0
  166. package/dist/core/activation-protocol.js +9 -0
  167. package/dist/core/activation-protocol.js.map +1 -0
  168. package/dist/core/activation-transport.d.ts +15 -0
  169. package/dist/core/activation-transport.d.ts.map +1 -0
  170. package/dist/core/activation-transport.js +23 -0
  171. package/dist/core/activation-transport.js.map +1 -0
  172. package/dist/core/app.d.ts +149 -0
  173. package/dist/core/app.d.ts.map +1 -0
  174. package/dist/core/app.js +372 -0
  175. package/dist/core/app.js.map +1 -0
  176. package/dist/core/binding-service.d.ts +93 -0
  177. package/dist/core/binding-service.d.ts.map +1 -0
  178. package/dist/core/binding-service.js +281 -0
  179. package/dist/core/binding-service.js.map +1 -0
  180. package/dist/core/binding-store.d.ts +23 -0
  181. package/dist/core/binding-store.d.ts.map +1 -0
  182. package/dist/core/binding-store.js +154 -0
  183. package/dist/core/binding-store.js.map +1 -0
  184. package/dist/core/brand.d.ts +18 -0
  185. package/dist/core/brand.d.ts.map +1 -0
  186. package/dist/core/brand.js +22 -0
  187. package/dist/core/brand.js.map +1 -0
  188. package/dist/core/capabilities.d.ts +30 -0
  189. package/dist/core/capabilities.d.ts.map +1 -0
  190. package/dist/core/capabilities.js +27 -0
  191. package/dist/core/capabilities.js.map +1 -0
  192. package/dist/core/client-state-store.d.ts +17 -0
  193. package/dist/core/client-state-store.d.ts.map +1 -0
  194. package/dist/core/client-state-store.js +47 -0
  195. package/dist/core/client-state-store.js.map +1 -0
  196. package/dist/core/codec/account.d.ts +52 -0
  197. package/dist/core/codec/account.d.ts.map +1 -0
  198. package/dist/core/codec/account.js +69 -0
  199. package/dist/core/codec/account.js.map +1 -0
  200. package/dist/core/codec/bindings.d.ts +38 -0
  201. package/dist/core/codec/bindings.d.ts.map +1 -0
  202. package/dist/core/codec/bindings.js +79 -0
  203. package/dist/core/codec/bindings.js.map +1 -0
  204. package/dist/core/codec/operations.d.ts +36 -0
  205. package/dist/core/codec/operations.d.ts.map +1 -0
  206. package/dist/core/codec/operations.js +82 -0
  207. package/dist/core/codec/operations.js.map +1 -0
  208. package/dist/core/codec/primitives.d.ts +59 -0
  209. package/dist/core/codec/primitives.d.ts.map +1 -0
  210. package/dist/core/codec/primitives.js +123 -0
  211. package/dist/core/codec/primitives.js.map +1 -0
  212. package/dist/core/codec/proxy-hub.d.ts +43 -0
  213. package/dist/core/codec/proxy-hub.d.ts.map +1 -0
  214. package/dist/core/codec/proxy-hub.js +69 -0
  215. package/dist/core/codec/proxy-hub.js.map +1 -0
  216. package/dist/core/codec/runtime.d.ts +41 -0
  217. package/dist/core/codec/runtime.d.ts.map +1 -0
  218. package/dist/core/codec/runtime.js +66 -0
  219. package/dist/core/codec/runtime.js.map +1 -0
  220. package/dist/core/codec.d.ts +43 -0
  221. package/dist/core/codec.d.ts.map +1 -0
  222. package/dist/core/codec.js +69 -0
  223. package/dist/core/codec.js.map +1 -0
  224. package/dist/core/codex-live-config.d.ts +92 -0
  225. package/dist/core/codex-live-config.d.ts.map +1 -0
  226. package/dist/core/codex-live-config.js +263 -0
  227. package/dist/core/codex-live-config.js.map +1 -0
  228. package/dist/core/config-service.d.ts +35 -0
  229. package/dist/core/config-service.d.ts.map +1 -0
  230. package/dist/core/config-service.js +87 -0
  231. package/dist/core/config-service.js.map +1 -0
  232. package/dist/core/config.d.ts +14 -0
  233. package/dist/core/config.d.ts.map +1 -0
  234. package/dist/core/config.js +45 -0
  235. package/dist/core/config.js.map +1 -0
  236. package/dist/core/db-schema.d.ts +30 -0
  237. package/dist/core/db-schema.d.ts.map +1 -0
  238. package/dist/core/db-schema.js +278 -0
  239. package/dist/core/db-schema.js.map +1 -0
  240. package/dist/core/db.d.ts +72 -0
  241. package/dist/core/db.d.ts.map +1 -0
  242. package/dist/core/db.js +192 -0
  243. package/dist/core/db.js.map +1 -0
  244. package/dist/core/doctor-fixes.d.ts +3 -0
  245. package/dist/core/doctor-fixes.d.ts.map +1 -0
  246. package/dist/core/doctor-fixes.js +102 -0
  247. package/dist/core/doctor-fixes.js.map +1 -0
  248. package/dist/core/doctor-format.d.ts +10 -0
  249. package/dist/core/doctor-format.d.ts.map +1 -0
  250. package/dist/core/doctor-format.js +45 -0
  251. package/dist/core/doctor-format.js.map +1 -0
  252. package/dist/core/doctor-report.d.ts +3 -0
  253. package/dist/core/doctor-report.d.ts.map +1 -0
  254. package/dist/core/doctor-report.js +174 -0
  255. package/dist/core/doctor-report.js.map +1 -0
  256. package/dist/core/doctor-scan.d.ts +7 -0
  257. package/dist/core/doctor-scan.d.ts.map +1 -0
  258. package/dist/core/doctor-scan.js +139 -0
  259. package/dist/core/doctor-scan.js.map +1 -0
  260. package/dist/core/doctor-types.d.ts +89 -0
  261. package/dist/core/doctor-types.d.ts.map +1 -0
  262. package/dist/core/doctor-types.js +14 -0
  263. package/dist/core/doctor-types.js.map +1 -0
  264. package/dist/core/doctor-utils.d.ts +3 -0
  265. package/dist/core/doctor-utils.d.ts.map +1 -0
  266. package/dist/core/doctor-utils.js +36 -0
  267. package/dist/core/doctor-utils.js.map +1 -0
  268. package/dist/core/doctor.d.ts +14 -0
  269. package/dist/core/doctor.d.ts.map +1 -0
  270. package/dist/core/doctor.js +127 -0
  271. package/dist/core/doctor.js.map +1 -0
  272. package/dist/core/events.d.ts +58 -0
  273. package/dist/core/events.d.ts.map +1 -0
  274. package/dist/core/events.js +88 -0
  275. package/dist/core/events.js.map +1 -0
  276. package/dist/core/journal.d.ts +23 -0
  277. package/dist/core/journal.d.ts.map +1 -0
  278. package/dist/core/journal.js +93 -0
  279. package/dist/core/journal.js.map +1 -0
  280. package/dist/core/lease-store.d.ts +22 -0
  281. package/dist/core/lease-store.d.ts.map +1 -0
  282. package/dist/core/lease-store.js +81 -0
  283. package/dist/core/lease-store.js.map +1 -0
  284. package/dist/core/migrate-bindings.d.ts +10 -0
  285. package/dist/core/migrate-bindings.d.ts.map +1 -0
  286. package/dist/core/migrate-bindings.js +98 -0
  287. package/dist/core/migrate-bindings.js.map +1 -0
  288. package/dist/core/migrate-fs.d.ts +11 -0
  289. package/dist/core/migrate-fs.d.ts.map +1 -0
  290. package/dist/core/migrate-fs.js +184 -0
  291. package/dist/core/migrate-fs.js.map +1 -0
  292. package/dist/core/model-cache-store.d.ts +27 -0
  293. package/dist/core/model-cache-store.d.ts.map +1 -0
  294. package/dist/core/model-cache-store.js +50 -0
  295. package/dist/core/model-cache-store.js.map +1 -0
  296. package/dist/core/model-discovery.d.ts +66 -0
  297. package/dist/core/model-discovery.d.ts.map +1 -0
  298. package/dist/core/model-discovery.js +127 -0
  299. package/dist/core/model-discovery.js.map +1 -0
  300. package/dist/core/model-policy.d.ts +40 -0
  301. package/dist/core/model-policy.d.ts.map +1 -0
  302. package/dist/core/model-policy.js +77 -0
  303. package/dist/core/model-policy.js.map +1 -0
  304. package/dist/core/model-roles.d.ts +9 -0
  305. package/dist/core/model-roles.d.ts.map +1 -0
  306. package/dist/core/model-roles.js +20 -0
  307. package/dist/core/model-roles.js.map +1 -0
  308. package/dist/core/mutation-lock.d.ts +31 -0
  309. package/dist/core/mutation-lock.d.ts.map +1 -0
  310. package/dist/core/mutation-lock.js +69 -0
  311. package/dist/core/mutation-lock.js.map +1 -0
  312. package/dist/core/paths.d.ts +49 -0
  313. package/dist/core/paths.d.ts.map +1 -0
  314. package/dist/core/paths.js +110 -0
  315. package/dist/core/paths.js.map +1 -0
  316. package/dist/core/plugin-loader.d.ts +40 -0
  317. package/dist/core/plugin-loader.d.ts.map +1 -0
  318. package/dist/core/plugin-loader.js +184 -0
  319. package/dist/core/plugin-loader.js.map +1 -0
  320. package/dist/core/plugin-service.d.ts +32 -0
  321. package/dist/core/plugin-service.d.ts.map +1 -0
  322. package/dist/core/plugin-service.js +110 -0
  323. package/dist/core/plugin-service.js.map +1 -0
  324. package/dist/core/plugin-store.d.ts +18 -0
  325. package/dist/core/plugin-store.d.ts.map +1 -0
  326. package/dist/core/plugin-store.js +50 -0
  327. package/dist/core/plugin-store.js.map +1 -0
  328. package/dist/core/pool-store.d.ts +44 -0
  329. package/dist/core/pool-store.d.ts.map +1 -0
  330. package/dist/core/pool-store.js +198 -0
  331. package/dist/core/pool-store.js.map +1 -0
  332. package/dist/core/preset-store.d.ts +29 -0
  333. package/dist/core/preset-store.d.ts.map +1 -0
  334. package/dist/core/preset-store.js +105 -0
  335. package/dist/core/preset-store.js.map +1 -0
  336. package/dist/core/profile-service.d.ts +50 -0
  337. package/dist/core/profile-service.d.ts.map +1 -0
  338. package/dist/core/profile-service.js +149 -0
  339. package/dist/core/profile-service.js.map +1 -0
  340. package/dist/core/profile-store.d.ts +20 -0
  341. package/dist/core/profile-store.d.ts.map +1 -0
  342. package/dist/core/profile-store.js +92 -0
  343. package/dist/core/profile-store.js.map +1 -0
  344. package/dist/core/profile-synth.d.ts +24 -0
  345. package/dist/core/profile-synth.d.ts.map +1 -0
  346. package/dist/core/profile-synth.js +30 -0
  347. package/dist/core/profile-synth.js.map +1 -0
  348. package/dist/core/project-root.d.ts +7 -0
  349. package/dist/core/project-root.d.ts.map +1 -0
  350. package/dist/core/project-root.js +23 -0
  351. package/dist/core/project-root.js.map +1 -0
  352. package/dist/core/proxy-hub-cli.d.ts +3 -0
  353. package/dist/core/proxy-hub-cli.d.ts.map +1 -0
  354. package/dist/core/proxy-hub-cli.js +80 -0
  355. package/dist/core/proxy-hub-cli.js.map +1 -0
  356. package/dist/core/proxy-hub-routes.d.ts +22 -0
  357. package/dist/core/proxy-hub-routes.d.ts.map +1 -0
  358. package/dist/core/proxy-hub-routes.js +92 -0
  359. package/dist/core/proxy-hub-routes.js.map +1 -0
  360. package/dist/core/proxy-hub-server.d.ts +59 -0
  361. package/dist/core/proxy-hub-server.d.ts.map +1 -0
  362. package/dist/core/proxy-hub-server.js +409 -0
  363. package/dist/core/proxy-hub-server.js.map +1 -0
  364. package/dist/core/proxy-hub-service.d.ts +97 -0
  365. package/dist/core/proxy-hub-service.d.ts.map +1 -0
  366. package/dist/core/proxy-hub-service.js +553 -0
  367. package/dist/core/proxy-hub-service.js.map +1 -0
  368. package/dist/core/proxy-hub-store.d.ts +28 -0
  369. package/dist/core/proxy-hub-store.d.ts.map +1 -0
  370. package/dist/core/proxy-hub-store.js +152 -0
  371. package/dist/core/proxy-hub-store.js.map +1 -0
  372. package/dist/core/proxy-lifecycle.d.ts +26 -0
  373. package/dist/core/proxy-lifecycle.d.ts.map +1 -0
  374. package/dist/core/proxy-lifecycle.js +33 -0
  375. package/dist/core/proxy-lifecycle.js.map +1 -0
  376. package/dist/core/proxy-ports.d.ts +50 -0
  377. package/dist/core/proxy-ports.d.ts.map +1 -0
  378. package/dist/core/proxy-ports.js +86 -0
  379. package/dist/core/proxy-ports.js.map +1 -0
  380. package/dist/core/proxy-service.d.ts +184 -0
  381. package/dist/core/proxy-service.d.ts.map +1 -0
  382. package/dist/core/proxy-service.js +860 -0
  383. package/dist/core/proxy-service.js.map +1 -0
  384. package/dist/core/quota-guard-policy.d.ts +8 -0
  385. package/dist/core/quota-guard-policy.d.ts.map +1 -0
  386. package/dist/core/quota-guard-policy.js +21 -0
  387. package/dist/core/quota-guard-policy.js.map +1 -0
  388. package/dist/core/realign-proxy-clients.d.ts +19 -0
  389. package/dist/core/realign-proxy-clients.d.ts.map +1 -0
  390. package/dist/core/realign-proxy-clients.js +40 -0
  391. package/dist/core/realign-proxy-clients.js.map +1 -0
  392. package/dist/core/refs.d.ts +84 -0
  393. package/dist/core/refs.d.ts.map +1 -0
  394. package/dist/core/refs.js +250 -0
  395. package/dist/core/refs.js.map +1 -0
  396. package/dist/core/registry.d.ts +46 -0
  397. package/dist/core/registry.d.ts.map +1 -0
  398. package/dist/core/registry.js +70 -0
  399. package/dist/core/registry.js.map +1 -0
  400. package/dist/core/resolve-source.d.ts +54 -0
  401. package/dist/core/resolve-source.d.ts.map +1 -0
  402. package/dist/core/resolve-source.js +148 -0
  403. package/dist/core/resolve-source.js.map +1 -0
  404. package/dist/core/runtime-service.d.ts +158 -0
  405. package/dist/core/runtime-service.d.ts.map +1 -0
  406. package/dist/core/runtime-service.js +422 -0
  407. package/dist/core/runtime-service.js.map +1 -0
  408. package/dist/core/service.d.ts +200 -0
  409. package/dist/core/service.d.ts.map +1 -0
  410. package/dist/core/service.js +643 -0
  411. package/dist/core/service.js.map +1 -0
  412. package/dist/core/store-snapshot.d.ts +10 -0
  413. package/dist/core/store-snapshot.d.ts.map +1 -0
  414. package/dist/core/store-snapshot.js +79 -0
  415. package/dist/core/store-snapshot.js.map +1 -0
  416. package/dist/core/store.d.ts +68 -0
  417. package/dist/core/store.d.ts.map +1 -0
  418. package/dist/core/store.js +159 -0
  419. package/dist/core/store.js.map +1 -0
  420. package/dist/core/tray-runtime.d.ts +15 -0
  421. package/dist/core/tray-runtime.d.ts.map +1 -0
  422. package/dist/core/tray-runtime.js +33 -0
  423. package/dist/core/tray-runtime.js.map +1 -0
  424. package/dist/core/tray-settings-service.d.ts +7 -0
  425. package/dist/core/tray-settings-service.d.ts.map +1 -0
  426. package/dist/core/tray-settings-service.js +24 -0
  427. package/dist/core/tray-settings-service.js.map +1 -0
  428. package/dist/core/update.d.ts +26 -0
  429. package/dist/core/update.d.ts.map +1 -0
  430. package/dist/core/update.js +128 -0
  431. package/dist/core/update.js.map +1 -0
  432. package/dist/index.d.ts +12 -0
  433. package/dist/index.d.ts.map +1 -0
  434. package/dist/index.js +7 -0
  435. package/dist/network/egress/allowlist.d.ts +2 -0
  436. package/dist/network/egress/allowlist.d.ts.map +1 -0
  437. package/dist/network/egress/allowlist.js +14 -0
  438. package/dist/network/egress/allowlist.js.map +1 -0
  439. package/dist/network/egress/direct.d.ts +17 -0
  440. package/dist/network/egress/direct.d.ts.map +1 -0
  441. package/dist/network/egress/direct.js +28 -0
  442. package/dist/network/egress/direct.js.map +1 -0
  443. package/dist/network/egress/errors.d.ts +4 -0
  444. package/dist/network/egress/errors.d.ts.map +1 -0
  445. package/dist/network/egress/errors.js +8 -0
  446. package/dist/network/egress/errors.js.map +1 -0
  447. package/dist/network/egress/index.d.ts +6 -0
  448. package/dist/network/egress/index.d.ts.map +1 -0
  449. package/dist/network/egress/index.js +11 -0
  450. package/dist/network/egress/index.js.map +1 -0
  451. package/dist/network/egress/types.d.ts +16 -0
  452. package/dist/network/egress/types.d.ts.map +1 -0
  453. package/dist/presentation/client-name.d.ts +14 -0
  454. package/dist/presentation/client-name.d.ts.map +1 -0
  455. package/dist/presentation/client-name.js +22 -0
  456. package/dist/presentation/client-name.js.map +1 -0
  457. package/dist/presentation/layout.d.ts +7 -0
  458. package/dist/presentation/layout.d.ts.map +1 -0
  459. package/dist/presentation/layout.js +10 -0
  460. package/dist/presentation/layout.js.map +1 -0
  461. package/dist/providers/auth-fingerprint.d.ts +56 -0
  462. package/dist/providers/auth-fingerprint.d.ts.map +1 -0
  463. package/dist/providers/auth-fingerprint.js +163 -0
  464. package/dist/providers/auth-fingerprint.js.map +1 -0
  465. package/dist/providers/claude.d.ts +43 -0
  466. package/dist/providers/claude.d.ts.map +1 -0
  467. package/dist/providers/claude.js +191 -0
  468. package/dist/providers/claude.js.map +1 -0
  469. package/dist/providers/codex-identity.d.ts +13 -0
  470. package/dist/providers/codex-identity.d.ts.map +1 -0
  471. package/dist/providers/codex-identity.js +69 -0
  472. package/dist/providers/codex-identity.js.map +1 -0
  473. package/dist/providers/codex-refresh.d.ts +30 -0
  474. package/dist/providers/codex-refresh.d.ts.map +1 -0
  475. package/dist/providers/codex-refresh.js +64 -0
  476. package/dist/providers/codex-refresh.js.map +1 -0
  477. package/dist/providers/codex-usage.d.ts +3 -0
  478. package/dist/providers/codex-usage.d.ts.map +1 -0
  479. package/dist/providers/codex-usage.js +42 -0
  480. package/dist/providers/codex-usage.js.map +1 -0
  481. package/dist/providers/codex.d.ts +61 -0
  482. package/dist/providers/codex.d.ts.map +1 -0
  483. package/dist/providers/codex.js +212 -0
  484. package/dist/providers/codex.js.map +1 -0
  485. package/dist/providers/gemini-antigravity-oauth.d.ts +83 -0
  486. package/dist/providers/gemini-antigravity-oauth.d.ts.map +1 -0
  487. package/dist/providers/gemini-antigravity-oauth.js +343 -0
  488. package/dist/providers/gemini-antigravity-oauth.js.map +1 -0
  489. package/dist/providers/gemini-antigravity-state.d.ts +35 -0
  490. package/dist/providers/gemini-antigravity-state.d.ts.map +1 -0
  491. package/dist/providers/gemini-antigravity-state.js +433 -0
  492. package/dist/providers/gemini-antigravity-state.js.map +1 -0
  493. package/dist/providers/gemini-env.d.ts +8 -0
  494. package/dist/providers/gemini-env.d.ts.map +1 -0
  495. package/dist/providers/gemini-env.js +78 -0
  496. package/dist/providers/gemini-env.js.map +1 -0
  497. package/dist/providers/gemini-identity.d.ts +2 -0
  498. package/dist/providers/gemini-identity.d.ts.map +1 -0
  499. package/dist/providers/gemini-identity.js +14 -0
  500. package/dist/providers/gemini-identity.js.map +1 -0
  501. package/dist/providers/gemini-proxy/main.d.ts +3 -0
  502. package/dist/providers/gemini-proxy/main.d.ts.map +1 -0
  503. package/dist/providers/gemini-proxy/main.js +176 -0
  504. package/dist/providers/gemini-proxy/main.js.map +1 -0
  505. package/dist/providers/gemini-proxy/server.d.ts +57 -0
  506. package/dist/providers/gemini-proxy/server.d.ts.map +1 -0
  507. package/dist/providers/gemini-proxy/server.js +1240 -0
  508. package/dist/providers/gemini-proxy/server.js.map +1 -0
  509. package/dist/providers/gemini-proxy-entry.d.ts +2 -0
  510. package/dist/providers/gemini-proxy-entry.d.ts.map +1 -0
  511. package/dist/providers/gemini-proxy-entry.js +16 -0
  512. package/dist/providers/gemini-proxy-entry.js.map +1 -0
  513. package/dist/providers/gemini-proxy-lifecycle.d.ts +11 -0
  514. package/dist/providers/gemini-proxy-lifecycle.d.ts.map +1 -0
  515. package/dist/providers/gemini-proxy-lifecycle.js +131 -0
  516. package/dist/providers/gemini-proxy-lifecycle.js.map +1 -0
  517. package/dist/providers/gemini.d.ts +137 -0
  518. package/dist/providers/gemini.d.ts.map +1 -0
  519. package/dist/providers/gemini.js +471 -0
  520. package/dist/providers/gemini.js.map +1 -0
  521. package/dist/providers/grok-proxy/auth.d.ts +27 -0
  522. package/dist/providers/grok-proxy/auth.d.ts.map +1 -0
  523. package/dist/providers/grok-proxy/auth.js +123 -0
  524. package/dist/providers/grok-proxy/auth.js.map +1 -0
  525. package/dist/providers/grok-proxy/main.d.ts +3 -0
  526. package/dist/providers/grok-proxy/main.d.ts.map +1 -0
  527. package/dist/providers/grok-proxy/main.js +111 -0
  528. package/dist/providers/grok-proxy/main.js.map +1 -0
  529. package/dist/providers/grok-proxy/server.d.ts +46 -0
  530. package/dist/providers/grok-proxy/server.d.ts.map +1 -0
  531. package/dist/providers/grok-proxy/server.js +595 -0
  532. package/dist/providers/grok-proxy/server.js.map +1 -0
  533. package/dist/providers/grok.d.ts +38 -0
  534. package/dist/providers/grok.d.ts.map +1 -0
  535. package/dist/providers/grok.js +250 -0
  536. package/dist/providers/grok.js.map +1 -0
  537. package/dist/providers/index.d.ts +14 -0
  538. package/dist/providers/index.d.ts.map +1 -0
  539. package/dist/providers/index.js +23 -0
  540. package/dist/providers/index.js.map +1 -0
  541. package/dist/providers/kiro-secret-store.d.ts +39 -0
  542. package/dist/providers/kiro-secret-store.d.ts.map +1 -0
  543. package/dist/providers/kiro-secret-store.js +168 -0
  544. package/dist/providers/kiro-secret-store.js.map +1 -0
  545. package/dist/providers/kiro.d.ts +50 -0
  546. package/dist/providers/kiro.d.ts.map +1 -0
  547. package/dist/providers/kiro.js +373 -0
  548. package/dist/providers/kiro.js.map +1 -0
  549. package/dist/providers/model-policy.d.ts +15 -0
  550. package/dist/providers/model-policy.d.ts.map +1 -0
  551. package/dist/providers/model-policy.js +26 -0
  552. package/dist/providers/model-policy.js.map +1 -0
  553. package/dist/providers/opencode-auth.d.ts +67 -0
  554. package/dist/providers/opencode-auth.d.ts.map +1 -0
  555. package/dist/providers/opencode-auth.js +146 -0
  556. package/dist/providers/opencode-auth.js.map +1 -0
  557. package/dist/providers/opencode-cli-entry.d.ts +36 -0
  558. package/dist/providers/opencode-cli-entry.d.ts.map +1 -0
  559. package/dist/providers/opencode-cli-entry.js +90 -0
  560. package/dist/providers/opencode-cli-entry.js.map +1 -0
  561. package/dist/providers/opencode-proxy/abort.d.ts +8 -0
  562. package/dist/providers/opencode-proxy/abort.d.ts.map +1 -0
  563. package/dist/providers/opencode-proxy/abort.js +42 -0
  564. package/dist/providers/opencode-proxy/abort.js.map +1 -0
  565. package/dist/providers/opencode-proxy/anthropic-handler.d.ts +4 -0
  566. package/dist/providers/opencode-proxy/anthropic-handler.d.ts.map +1 -0
  567. package/dist/providers/opencode-proxy/anthropic-handler.js +108 -0
  568. package/dist/providers/opencode-proxy/anthropic-handler.js.map +1 -0
  569. package/dist/providers/opencode-proxy/auth.d.ts +38 -0
  570. package/dist/providers/opencode-proxy/auth.d.ts.map +1 -0
  571. package/dist/providers/opencode-proxy/auth.js +128 -0
  572. package/dist/providers/opencode-proxy/auth.js.map +1 -0
  573. package/dist/providers/opencode-proxy/body.d.ts +9 -0
  574. package/dist/providers/opencode-proxy/body.d.ts.map +1 -0
  575. package/dist/providers/opencode-proxy/body.js +69 -0
  576. package/dist/providers/opencode-proxy/body.js.map +1 -0
  577. package/dist/providers/opencode-proxy/catalog-handlers.d.ts +7 -0
  578. package/dist/providers/opencode-proxy/catalog-handlers.d.ts.map +1 -0
  579. package/dist/providers/opencode-proxy/catalog-handlers.js +132 -0
  580. package/dist/providers/opencode-proxy/catalog-handlers.js.map +1 -0
  581. package/dist/providers/opencode-proxy/catalog.d.ts +41 -0
  582. package/dist/providers/opencode-proxy/catalog.d.ts.map +1 -0
  583. package/dist/providers/opencode-proxy/catalog.js +146 -0
  584. package/dist/providers/opencode-proxy/catalog.js.map +1 -0
  585. package/dist/providers/opencode-proxy/cli.d.ts +2 -0
  586. package/dist/providers/opencode-proxy/cli.d.ts.map +1 -0
  587. package/dist/providers/opencode-proxy/cli.js +162 -0
  588. package/dist/providers/opencode-proxy/cli.js.map +1 -0
  589. package/dist/providers/opencode-proxy/constants.d.ts +13 -0
  590. package/dist/providers/opencode-proxy/constants.d.ts.map +1 -0
  591. package/dist/providers/opencode-proxy/constants.js +15 -0
  592. package/dist/providers/opencode-proxy/constants.js.map +1 -0
  593. package/dist/providers/opencode-proxy/context-budget.d.ts +31 -0
  594. package/dist/providers/opencode-proxy/context-budget.d.ts.map +1 -0
  595. package/dist/providers/opencode-proxy/context-budget.js +165 -0
  596. package/dist/providers/opencode-proxy/context-budget.js.map +1 -0
  597. package/dist/providers/opencode-proxy/errors.d.ts +5 -0
  598. package/dist/providers/opencode-proxy/errors.d.ts.map +1 -0
  599. package/dist/providers/opencode-proxy/errors.js +45 -0
  600. package/dist/providers/opencode-proxy/errors.js.map +1 -0
  601. package/dist/providers/opencode-proxy/forwarders.d.ts +7 -0
  602. package/dist/providers/opencode-proxy/forwarders.d.ts.map +1 -0
  603. package/dist/providers/opencode-proxy/forwarders.js +214 -0
  604. package/dist/providers/opencode-proxy/forwarders.js.map +1 -0
  605. package/dist/providers/opencode-proxy/http.d.ts +11 -0
  606. package/dist/providers/opencode-proxy/http.d.ts.map +1 -0
  607. package/dist/providers/opencode-proxy/http.js +97 -0
  608. package/dist/providers/opencode-proxy/http.js.map +1 -0
  609. package/dist/providers/opencode-proxy/models.d.ts +42 -0
  610. package/dist/providers/opencode-proxy/models.d.ts.map +1 -0
  611. package/dist/providers/opencode-proxy/models.js +148 -0
  612. package/dist/providers/opencode-proxy/models.js.map +1 -0
  613. package/dist/providers/opencode-proxy/openai-handler.d.ts +5 -0
  614. package/dist/providers/opencode-proxy/openai-handler.d.ts.map +1 -0
  615. package/dist/providers/opencode-proxy/openai-handler.js +115 -0
  616. package/dist/providers/opencode-proxy/openai-handler.js.map +1 -0
  617. package/dist/providers/opencode-proxy/router.d.ts +4 -0
  618. package/dist/providers/opencode-proxy/router.d.ts.map +1 -0
  619. package/dist/providers/opencode-proxy/router.js +65 -0
  620. package/dist/providers/opencode-proxy/router.js.map +1 -0
  621. package/dist/providers/opencode-proxy/runtime.d.ts +23 -0
  622. package/dist/providers/opencode-proxy/runtime.d.ts.map +1 -0
  623. package/dist/providers/opencode-proxy/runtime.js +158 -0
  624. package/dist/providers/opencode-proxy/runtime.js.map +1 -0
  625. package/dist/providers/opencode-proxy/server.d.ts +13 -0
  626. package/dist/providers/opencode-proxy/server.d.ts.map +1 -0
  627. package/dist/providers/opencode-proxy/server.js +52 -0
  628. package/dist/providers/opencode-proxy/server.js.map +1 -0
  629. package/dist/providers/opencode-proxy/stream.d.ts +4 -0
  630. package/dist/providers/opencode-proxy/stream.d.ts.map +1 -0
  631. package/dist/providers/opencode-proxy/stream.js +71 -0
  632. package/dist/providers/opencode-proxy/stream.js.map +1 -0
  633. package/dist/providers/opencode-proxy/translate-stream.d.ts +3 -0
  634. package/dist/providers/opencode-proxy/translate-stream.d.ts.map +1 -0
  635. package/dist/providers/opencode-proxy/translate-stream.js +205 -0
  636. package/dist/providers/opencode-proxy/translate-stream.js.map +1 -0
  637. package/dist/providers/opencode-proxy/translate.d.ts +11 -0
  638. package/dist/providers/opencode-proxy/translate.d.ts.map +1 -0
  639. package/dist/providers/opencode-proxy/translate.js +250 -0
  640. package/dist/providers/opencode-proxy/translate.js.map +1 -0
  641. package/dist/providers/opencode-proxy/types.d.ts +110 -0
  642. package/dist/providers/opencode-proxy/types.d.ts.map +1 -0
  643. package/dist/providers/opencode-proxy/types.js +38 -0
  644. package/dist/providers/opencode-proxy/types.js.map +1 -0
  645. package/dist/providers/opencode-proxy-lifecycle.d.ts +11 -0
  646. package/dist/providers/opencode-proxy-lifecycle.d.ts.map +1 -0
  647. package/dist/providers/opencode-proxy-lifecycle.js +144 -0
  648. package/dist/providers/opencode-proxy-lifecycle.js.map +1 -0
  649. package/dist/providers/opencode.d.ts +40 -0
  650. package/dist/providers/opencode.d.ts.map +1 -0
  651. package/dist/providers/opencode.js +190 -0
  652. package/dist/providers/opencode.js.map +1 -0
  653. package/dist/providers/protocol/anthropic-convert.d.ts +12 -0
  654. package/dist/providers/protocol/anthropic-convert.d.ts.map +1 -0
  655. package/dist/providers/protocol/anthropic-convert.js +113 -0
  656. package/dist/providers/protocol/anthropic-convert.js.map +1 -0
  657. package/dist/providers/protocol/anthropic-helpers.d.ts +13 -0
  658. package/dist/providers/protocol/anthropic-helpers.d.ts.map +1 -0
  659. package/dist/providers/protocol/anthropic-helpers.js +179 -0
  660. package/dist/providers/protocol/anthropic-helpers.js.map +1 -0
  661. package/dist/providers/protocol/anthropic-stream-reader.d.ts +13 -0
  662. package/dist/providers/protocol/anthropic-stream-reader.d.ts.map +1 -0
  663. package/dist/providers/protocol/anthropic-stream-reader.js +46 -0
  664. package/dist/providers/protocol/anthropic-stream-reader.js.map +1 -0
  665. package/dist/providers/protocol/anthropic-stream.d.ts +7 -0
  666. package/dist/providers/protocol/anthropic-stream.d.ts.map +1 -0
  667. package/dist/providers/protocol/anthropic-stream.js +318 -0
  668. package/dist/providers/protocol/anthropic-stream.js.map +1 -0
  669. package/dist/providers/protocol/anthropic-types.d.ts +240 -0
  670. package/dist/providers/protocol/anthropic-types.d.ts.map +1 -0
  671. package/dist/providers/protocol/anthropic.d.ts +20 -0
  672. package/dist/providers/protocol/anthropic.d.ts.map +1 -0
  673. package/dist/providers/protocol/gemini/translate-anthropic.d.ts +15 -0
  674. package/dist/providers/protocol/gemini/translate-anthropic.d.ts.map +1 -0
  675. package/dist/providers/protocol/gemini/translate-anthropic.js +84 -0
  676. package/dist/providers/protocol/gemini/translate-anthropic.js.map +1 -0
  677. package/dist/providers/protocol/gemini/translate-chat.d.ts +5 -0
  678. package/dist/providers/protocol/gemini/translate-chat.d.ts.map +1 -0
  679. package/dist/providers/protocol/gemini/translate-chat.js +142 -0
  680. package/dist/providers/protocol/gemini/translate-chat.js.map +1 -0
  681. package/dist/providers/protocol/gemini/translate-models.d.ts +40 -0
  682. package/dist/providers/protocol/gemini/translate-models.d.ts.map +1 -0
  683. package/dist/providers/protocol/gemini/translate-models.js +186 -0
  684. package/dist/providers/protocol/gemini/translate-models.js.map +1 -0
  685. package/dist/providers/protocol/gemini/translate-responses.d.ts +6 -0
  686. package/dist/providers/protocol/gemini/translate-responses.d.ts.map +1 -0
  687. package/dist/providers/protocol/gemini/translate-responses.js +187 -0
  688. package/dist/providers/protocol/gemini/translate-responses.js.map +1 -0
  689. package/dist/providers/protocol/gemini/translate-schema.d.ts +9 -0
  690. package/dist/providers/protocol/gemini/translate-schema.d.ts.map +1 -0
  691. package/dist/providers/protocol/gemini/translate-schema.js +48 -0
  692. package/dist/providers/protocol/gemini/translate-schema.js.map +1 -0
  693. package/dist/providers/protocol/gemini/translate-shared.d.ts +8 -0
  694. package/dist/providers/protocol/gemini/translate-shared.d.ts.map +1 -0
  695. package/dist/providers/protocol/gemini/translate-shared.js +47 -0
  696. package/dist/providers/protocol/gemini/translate-shared.js.map +1 -0
  697. package/dist/providers/protocol/gemini/translate-thinking.d.ts +7 -0
  698. package/dist/providers/protocol/gemini/translate-thinking.d.ts.map +1 -0
  699. package/dist/providers/protocol/gemini/translate-thinking.js +65 -0
  700. package/dist/providers/protocol/gemini/translate-thinking.js.map +1 -0
  701. package/dist/providers/protocol/gemini/translate-types.d.ts +133 -0
  702. package/dist/providers/protocol/gemini/translate-types.d.ts.map +1 -0
  703. package/dist/providers/protocol/gemini/translate.d.ts +7 -0
  704. package/dist/providers/protocol/gemini/translate.d.ts.map +1 -0
  705. package/dist/providers/protocol/json-schema.d.ts +52 -0
  706. package/dist/providers/protocol/json-schema.d.ts.map +1 -0
  707. package/dist/providers/protocol/json-schema.js +189 -0
  708. package/dist/providers/protocol/json-schema.js.map +1 -0
  709. package/dist/providers/protocol/token-estimate.d.ts +15 -0
  710. package/dist/providers/protocol/token-estimate.d.ts.map +1 -0
  711. package/dist/providers/protocol/token-estimate.js +34 -0
  712. package/dist/providers/protocol/token-estimate.js.map +1 -0
  713. package/dist/providers/proxy-hub-backend.d.ts +4 -0
  714. package/dist/providers/proxy-hub-backend.d.ts.map +1 -0
  715. package/dist/providers/proxy-hub-backend.js +11 -0
  716. package/dist/providers/proxy-hub-backend.js.map +1 -0
  717. package/dist/providers/proxy-process.d.ts +35 -0
  718. package/dist/providers/proxy-process.d.ts.map +1 -0
  719. package/dist/providers/proxy-process.js +119 -0
  720. package/dist/providers/proxy-process.js.map +1 -0
  721. package/dist/providers/proxy-shared.d.ts +43 -0
  722. package/dist/providers/proxy-shared.d.ts.map +1 -0
  723. package/dist/providers/proxy-shared.js +128 -0
  724. package/dist/providers/proxy-shared.js.map +1 -0
  725. package/dist/providers/quota-guard.d.ts +49 -0
  726. package/dist/providers/quota-guard.d.ts.map +1 -0
  727. package/dist/providers/quota-guard.js +107 -0
  728. package/dist/providers/quota-guard.js.map +1 -0
  729. package/dist/providers/reasoning.d.ts +27 -0
  730. package/dist/providers/reasoning.d.ts.map +1 -0
  731. package/dist/providers/reasoning.js +61 -0
  732. package/dist/providers/reasoning.js.map +1 -0
  733. package/dist/providers/upstream-policy.d.ts +33 -0
  734. package/dist/providers/upstream-policy.d.ts.map +1 -0
  735. package/dist/providers/upstream-policy.js +97 -0
  736. package/dist/providers/upstream-policy.js.map +1 -0
  737. package/dist/public-types.d.ts +3 -0
  738. package/dist/public-types.d.ts.map +1 -0
  739. package/dist/public.d.ts +19 -0
  740. package/dist/public.d.ts.map +1 -0
  741. package/dist/public.js +16 -0
  742. package/dist/public.js.map +1 -0
  743. package/dist/sources/account-adapters.d.ts +64 -0
  744. package/dist/sources/account-adapters.d.ts.map +1 -0
  745. package/dist/sources/account-adapters.js +205 -0
  746. package/dist/sources/account-adapters.js.map +1 -0
  747. package/dist/sources/gateway-adapters.d.ts +26 -0
  748. package/dist/sources/gateway-adapters.d.ts.map +1 -0
  749. package/dist/sources/gateway-adapters.js +43 -0
  750. package/dist/sources/gateway-adapters.js.map +1 -0
  751. package/dist/sources/kiro-proxy-bin.d.ts +41 -0
  752. package/dist/sources/kiro-proxy-bin.d.ts.map +1 -0
  753. package/dist/sources/kiro-proxy-bin.js +140 -0
  754. package/dist/sources/kiro-proxy-bin.js.map +1 -0
  755. package/dist/sources/proxy-hub-adapters.d.ts +7 -0
  756. package/dist/sources/proxy-hub-adapters.d.ts.map +1 -0
  757. package/dist/sources/proxy-hub-adapters.js +26 -0
  758. package/dist/sources/proxy-hub-adapters.js.map +1 -0
  759. package/dist/testing.d.ts +9 -0
  760. package/dist/testing.d.ts.map +1 -0
  761. package/dist/testing.js +6 -0
  762. package/dist/tray/AnyPickTray.swift +3 -0
  763. package/dist/tray/activity.d.ts +18 -0
  764. package/dist/tray/activity.d.ts.map +1 -0
  765. package/dist/tray/activity.js +51 -0
  766. package/dist/tray/activity.js.map +1 -0
  767. package/dist/tray/app-icons/icon-1024.png +0 -0
  768. package/dist/tray/app-icons/icon-128.png +0 -0
  769. package/dist/tray/app-icons/icon-16.png +0 -0
  770. package/dist/tray/app-icons/icon-256.png +0 -0
  771. package/dist/tray/app-icons/icon-32.png +0 -0
  772. package/dist/tray/app-icons/icon-512.png +0 -0
  773. package/dist/tray/app-icons/icon-64.png +0 -0
  774. package/dist/tray/icons/claude.svg +1 -0
  775. package/dist/tray/icons/googlegemini.svg +1 -0
  776. package/dist/tray/icons/grok.svg +1 -0
  777. package/dist/tray/icons/kiro.svg +1 -0
  778. package/dist/tray/icons/openai.svg +1 -0
  779. package/dist/tray/icons/opencode.svg +1 -0
  780. package/dist/tray/icons/openrouter.svg +1 -0
  781. package/dist/tray/model-role-actions.d.ts +15 -0
  782. package/dist/tray/model-role-actions.d.ts.map +1 -0
  783. package/dist/tray/model-role-actions.js +41 -0
  784. package/dist/tray/model-role-actions.js.map +1 -0
  785. package/dist/tray/native/AccountsPanel.swift +434 -0
  786. package/dist/tray/native/AppEntry.swift +229 -0
  787. package/dist/tray/native/MainWindow.swift +300 -0
  788. package/dist/tray/native/ManageFormChrome.swift +332 -0
  789. package/dist/tray/native/ManageForms.swift +472 -0
  790. package/dist/tray/native/ManagePanel.swift +356 -0
  791. package/dist/tray/native/Models.swift +259 -0
  792. package/dist/tray/native/ModelsEditor.swift +390 -0
  793. package/dist/tray/native/ModelsOverview.swift +76 -0
  794. package/dist/tray/native/ModelsPickers.swift +273 -0
  795. package/dist/tray/native/ModelsRoutePickers.swift +718 -0
  796. package/dist/tray/native/MonitorPanel.swift +375 -0
  797. package/dist/tray/native/ProxyPanel.swift +326 -0
  798. package/dist/tray/native/QuickActivityRow.swift +40 -0
  799. package/dist/tray/native/QuickNav.swift +62 -0
  800. package/dist/tray/native/QuickPanel.swift +447 -0
  801. package/dist/tray/native/QuickRouteRow.swift +189 -0
  802. package/dist/tray/native/QuickServiceRows.swift +292 -0
  803. package/dist/tray/native/RoutingIssues.swift +293 -0
  804. package/dist/tray/native/SettingsPanel.swift +225 -0
  805. package/dist/tray/native/SharedUI.swift +681 -0
  806. package/dist/tray/native/Store.swift +540 -0
  807. package/dist/tray/native/Theme.swift +139 -0
  808. package/dist/tray/native/TrayChrome.swift +657 -0
  809. package/dist/tray/native/TrayControls.swift +475 -0
  810. package/dist/tray/native/TrayPreferences.swift +46 -0
  811. package/dist/tray/native/sources.txt +26 -0
  812. package/dist/tray/native-sources.d.ts +8 -0
  813. package/dist/tray/native-sources.d.ts.map +1 -0
  814. package/dist/tray/native-sources.js +19 -0
  815. package/dist/tray/native-sources.js.map +1 -0
  816. package/dist/tray/protocol.d.ts +79 -0
  817. package/dist/tray/protocol.d.ts.map +1 -0
  818. package/dist/tray/protocol.js +145 -0
  819. package/dist/tray/protocol.js.map +1 -0
  820. package/dist/tray/settings.d.ts +15 -0
  821. package/dist/tray/settings.d.ts.map +1 -0
  822. package/dist/tray/settings.js +72 -0
  823. package/dist/tray/settings.js.map +1 -0
  824. package/dist/tray/snapshot-client-routes.d.ts +11 -0
  825. package/dist/tray/snapshot-client-routes.d.ts.map +1 -0
  826. package/dist/tray/snapshot-client-routes.js +305 -0
  827. package/dist/tray/snapshot-client-routes.js.map +1 -0
  828. package/dist/tray/snapshot-helpers.d.ts +20 -0
  829. package/dist/tray/snapshot-helpers.d.ts.map +1 -0
  830. package/dist/tray/snapshot-helpers.js +74 -0
  831. package/dist/tray/snapshot-helpers.js.map +1 -0
  832. package/dist/tray/snapshot-hub.d.ts +7 -0
  833. package/dist/tray/snapshot-hub.d.ts.map +1 -0
  834. package/dist/tray/snapshot-hub.js +93 -0
  835. package/dist/tray/snapshot-hub.js.map +1 -0
  836. package/dist/tray/snapshot-resources.d.ts +19 -0
  837. package/dist/tray/snapshot-resources.d.ts.map +1 -0
  838. package/dist/tray/snapshot-resources.js +216 -0
  839. package/dist/tray/snapshot-resources.js.map +1 -0
  840. package/dist/tray/snapshot-types.d.ts +229 -0
  841. package/dist/tray/snapshot-types.d.ts.map +1 -0
  842. package/dist/tray/snapshot-usage.d.ts +9 -0
  843. package/dist/tray/snapshot-usage.d.ts.map +1 -0
  844. package/dist/tray/snapshot-usage.js +35 -0
  845. package/dist/tray/snapshot-usage.js.map +1 -0
  846. package/dist/tray/snapshot.d.ts +7 -0
  847. package/dist/tray/snapshot.d.ts.map +1 -0
  848. package/dist/tray/snapshot.js +48 -0
  849. package/dist/tray/snapshot.js.map +1 -0
  850. package/dist/tray/supervisor-actions.d.ts +19 -0
  851. package/dist/tray/supervisor-actions.d.ts.map +1 -0
  852. package/dist/tray/supervisor-actions.js +224 -0
  853. package/dist/tray/supervisor-actions.js.map +1 -0
  854. package/dist/tray/supervisor-activity.d.ts +5 -0
  855. package/dist/tray/supervisor-activity.d.ts.map +1 -0
  856. package/dist/tray/supervisor-activity.js +19 -0
  857. package/dist/tray/supervisor-activity.js.map +1 -0
  858. package/dist/tray/supervisor-errors.d.ts +9 -0
  859. package/dist/tray/supervisor-errors.d.ts.map +1 -0
  860. package/dist/tray/supervisor-errors.js +91 -0
  861. package/dist/tray/supervisor-errors.js.map +1 -0
  862. package/dist/tray/supervisor-logs.d.ts +6 -0
  863. package/dist/tray/supervisor-logs.d.ts.map +1 -0
  864. package/dist/tray/supervisor-logs.js +52 -0
  865. package/dist/tray/supervisor-logs.js.map +1 -0
  866. package/dist/tray/supervisor-mutations.d.ts +14 -0
  867. package/dist/tray/supervisor-mutations.d.ts.map +1 -0
  868. package/dist/tray/supervisor-mutations.js +218 -0
  869. package/dist/tray/supervisor-mutations.js.map +1 -0
  870. package/dist/tray/supervisor-native.d.ts +22 -0
  871. package/dist/tray/supervisor-native.d.ts.map +1 -0
  872. package/dist/tray/supervisor-native.js +227 -0
  873. package/dist/tray/supervisor-native.js.map +1 -0
  874. package/dist/tray/supervisor-proxies.d.ts +6 -0
  875. package/dist/tray/supervisor-proxies.d.ts.map +1 -0
  876. package/dist/tray/supervisor-proxies.js +37 -0
  877. package/dist/tray/supervisor-proxies.js.map +1 -0
  878. package/dist/tray/supervisor-tauri.d.ts +13 -0
  879. package/dist/tray/supervisor-tauri.d.ts.map +1 -0
  880. package/dist/tray/supervisor-tauri.js +36 -0
  881. package/dist/tray/supervisor-tauri.js.map +1 -0
  882. package/dist/tray/supervisor.d.ts +17 -0
  883. package/dist/tray/supervisor.d.ts.map +1 -0
  884. package/dist/tray/supervisor.js +372 -0
  885. package/dist/tray/supervisor.js.map +1 -0
  886. package/dist/tray/terminal-launcher.d.ts +12 -0
  887. package/dist/tray/terminal-launcher.d.ts.map +1 -0
  888. package/dist/tray/terminal-launcher.js +130 -0
  889. package/dist/tray/terminal-launcher.js.map +1 -0
  890. package/dist/tui/actions/ensure-proxy-up.d.ts +15 -0
  891. package/dist/tui/actions/ensure-proxy-up.d.ts.map +1 -0
  892. package/dist/tui/actions/ensure-proxy-up.js +41 -0
  893. package/dist/tui/actions/ensure-proxy-up.js.map +1 -0
  894. package/dist/tui/actions/use-account-actions.d.ts +35 -0
  895. package/dist/tui/actions/use-account-actions.d.ts.map +1 -0
  896. package/dist/tui/actions/use-account-actions.js +527 -0
  897. package/dist/tui/actions/use-account-actions.js.map +1 -0
  898. package/dist/tui/actions/use-app-bindings.d.ts +83 -0
  899. package/dist/tui/actions/use-app-bindings.d.ts.map +1 -0
  900. package/dist/tui/actions/use-app-bindings.js +472 -0
  901. package/dist/tui/actions/use-app-bindings.js.map +1 -0
  902. package/dist/tui/actions/use-gateway-actions.d.ts +45 -0
  903. package/dist/tui/actions/use-gateway-actions.d.ts.map +1 -0
  904. package/dist/tui/actions/use-gateway-actions.js +370 -0
  905. package/dist/tui/actions/use-gateway-actions.js.map +1 -0
  906. package/dist/tui/actions/use-home-filter.d.ts +24 -0
  907. package/dist/tui/actions/use-home-filter.d.ts.map +1 -0
  908. package/dist/tui/actions/use-home-filter.js +48 -0
  909. package/dist/tui/actions/use-home-filter.js.map +1 -0
  910. package/dist/tui/actions/use-model-role-editor.d.ts +44 -0
  911. package/dist/tui/actions/use-model-role-editor.d.ts.map +1 -0
  912. package/dist/tui/actions/use-model-role-editor.js +68 -0
  913. package/dist/tui/actions/use-model-role-editor.js.map +1 -0
  914. package/dist/tui/actions/use-provider-filter.d.ts +10 -0
  915. package/dist/tui/actions/use-provider-filter.d.ts.map +1 -0
  916. package/dist/tui/actions/use-provider-filter.js +22 -0
  917. package/dist/tui/actions/use-provider-filter.js.map +1 -0
  918. package/dist/tui/actions/use-proxy-actions.d.ts +31 -0
  919. package/dist/tui/actions/use-proxy-actions.d.ts.map +1 -0
  920. package/dist/tui/actions/use-proxy-actions.js +474 -0
  921. package/dist/tui/actions/use-proxy-actions.js.map +1 -0
  922. package/dist/tui/actions/use-text-input-submit.d.ts +16 -0
  923. package/dist/tui/actions/use-text-input-submit.d.ts.map +1 -0
  924. package/dist/tui/actions/use-text-input-submit.js +96 -0
  925. package/dist/tui/actions/use-text-input-submit.js.map +1 -0
  926. package/dist/tui/actions/use-tray-runtime-actions.d.ts +18 -0
  927. package/dist/tui/actions/use-tray-runtime-actions.d.ts.map +1 -0
  928. package/dist/tui/actions/use-tray-runtime-actions.js +78 -0
  929. package/dist/tui/actions/use-tray-runtime-actions.js.map +1 -0
  930. package/dist/tui/app-ui-helpers.d.ts +14 -0
  931. package/dist/tui/app-ui-helpers.d.ts.map +1 -0
  932. package/dist/tui/app-ui-helpers.js +48 -0
  933. package/dist/tui/app-ui-helpers.js.map +1 -0
  934. package/dist/tui/app-ui.d.ts +19 -0
  935. package/dist/tui/app-ui.d.ts.map +1 -0
  936. package/dist/tui/app-ui.js +98 -0
  937. package/dist/tui/app-ui.js.map +1 -0
  938. package/dist/tui/components/chrome/header.d.ts +39 -0
  939. package/dist/tui/components/chrome/header.d.ts.map +1 -0
  940. package/dist/tui/components/chrome/header.js +161 -0
  941. package/dist/tui/components/chrome/header.js.map +1 -0
  942. package/dist/tui/components/chrome/inputs.d.ts +34 -0
  943. package/dist/tui/components/chrome/inputs.d.ts.map +1 -0
  944. package/dist/tui/components/chrome/inputs.js +82 -0
  945. package/dist/tui/components/chrome/inputs.js.map +1 -0
  946. package/dist/tui/components/chrome/layout.d.ts +61 -0
  947. package/dist/tui/components/chrome/layout.d.ts.map +1 -0
  948. package/dist/tui/components/chrome/layout.js +119 -0
  949. package/dist/tui/components/chrome/layout.js.map +1 -0
  950. package/dist/tui/components/chrome/legacy.d.ts +84 -0
  951. package/dist/tui/components/chrome/legacy.d.ts.map +1 -0
  952. package/dist/tui/components/chrome/legacy.js +6 -0
  953. package/dist/tui/components/chrome/rows.d.ts +89 -0
  954. package/dist/tui/components/chrome/rows.d.ts.map +1 -0
  955. package/dist/tui/components/chrome/rows.js +151 -0
  956. package/dist/tui/components/chrome/rows.js.map +1 -0
  957. package/dist/tui/components/chrome/status.d.ts +50 -0
  958. package/dist/tui/components/chrome/status.d.ts.map +1 -0
  959. package/dist/tui/components/chrome/status.js +157 -0
  960. package/dist/tui/components/chrome/status.js.map +1 -0
  961. package/dist/tui/components/chrome.d.ts +7 -0
  962. package/dist/tui/components/chrome.d.ts.map +1 -0
  963. package/dist/tui/components/chrome.js +7 -0
  964. package/dist/tui/components.d.ts +26 -0
  965. package/dist/tui/components.d.ts.map +1 -0
  966. package/dist/tui/components.js +182 -0
  967. package/dist/tui/components.js.map +1 -0
  968. package/dist/tui/model/anypick.d.ts +106 -0
  969. package/dist/tui/model/anypick.d.ts.map +1 -0
  970. package/dist/tui/model/anypick.js +116 -0
  971. package/dist/tui/model/anypick.js.map +1 -0
  972. package/dist/tui/model/bindings.d.ts +39 -0
  973. package/dist/tui/model/bindings.d.ts.map +1 -0
  974. package/dist/tui/model/bindings.js +102 -0
  975. package/dist/tui/model/bindings.js.map +1 -0
  976. package/dist/tui/model/detail.d.ts +6 -0
  977. package/dist/tui/model/detail.d.ts.map +1 -0
  978. package/dist/tui/model/detail.js +85 -0
  979. package/dist/tui/model/detail.js.map +1 -0
  980. package/dist/tui/model/gateway.d.ts +46 -0
  981. package/dist/tui/model/gateway.d.ts.map +1 -0
  982. package/dist/tui/model/gateway.js +134 -0
  983. package/dist/tui/model/gateway.js.map +1 -0
  984. package/dist/tui/model/home-format.d.ts +52 -0
  985. package/dist/tui/model/home-format.d.ts.map +1 -0
  986. package/dist/tui/model/home-format.js +64 -0
  987. package/dist/tui/model/home-format.js.map +1 -0
  988. package/dist/tui/model/home-load.d.ts +8 -0
  989. package/dist/tui/model/home-load.d.ts.map +1 -0
  990. package/dist/tui/model/home-load.js +244 -0
  991. package/dist/tui/model/home-load.js.map +1 -0
  992. package/dist/tui/model/identity.d.ts +53 -0
  993. package/dist/tui/model/identity.d.ts.map +1 -0
  994. package/dist/tui/model/identity.js +176 -0
  995. package/dist/tui/model/identity.js.map +1 -0
  996. package/dist/tui/model/line-editor.d.ts +99 -0
  997. package/dist/tui/model/line-editor.d.ts.map +1 -0
  998. package/dist/tui/model/line-editor.js +186 -0
  999. package/dist/tui/model/line-editor.js.map +1 -0
  1000. package/dist/tui/model/names.d.ts +28 -0
  1001. package/dist/tui/model/names.d.ts.map +1 -0
  1002. package/dist/tui/model/names.js +42 -0
  1003. package/dist/tui/model/names.js.map +1 -0
  1004. package/dist/tui/model/pool.d.ts +11 -0
  1005. package/dist/tui/model/pool.d.ts.map +1 -0
  1006. package/dist/tui/model/pool.js +115 -0
  1007. package/dist/tui/model/pool.js.map +1 -0
  1008. package/dist/tui/model/provider-filter.d.ts +14 -0
  1009. package/dist/tui/model/provider-filter.d.ts.map +1 -0
  1010. package/dist/tui/model/provider-filter.js +46 -0
  1011. package/dist/tui/model/provider-filter.js.map +1 -0
  1012. package/dist/tui/model/proxy-hub.d.ts +23 -0
  1013. package/dist/tui/model/proxy-hub.d.ts.map +1 -0
  1014. package/dist/tui/model/proxy-hub.js +69 -0
  1015. package/dist/tui/model/proxy-hub.js.map +1 -0
  1016. package/dist/tui/model/proxy-labels.d.ts +5 -0
  1017. package/dist/tui/model/proxy-labels.d.ts.map +1 -0
  1018. package/dist/tui/model/proxy-labels.js +18 -0
  1019. package/dist/tui/model/proxy-labels.js.map +1 -0
  1020. package/dist/tui/model/proxy.d.ts +15 -0
  1021. package/dist/tui/model/proxy.d.ts.map +1 -0
  1022. package/dist/tui/model/proxy.js +214 -0
  1023. package/dist/tui/model/proxy.js.map +1 -0
  1024. package/dist/tui/model/root.d.ts +20 -0
  1025. package/dist/tui/model/root.d.ts.map +1 -0
  1026. package/dist/tui/model/root.js +126 -0
  1027. package/dist/tui/model/root.js.map +1 -0
  1028. package/dist/tui/model/route-builder.d.ts +25 -0
  1029. package/dist/tui/model/route-builder.d.ts.map +1 -0
  1030. package/dist/tui/model/route-builder.js +199 -0
  1031. package/dist/tui/model/route-builder.js.map +1 -0
  1032. package/dist/tui/model/screen.d.ts +260 -0
  1033. package/dist/tui/model/screen.d.ts.map +1 -0
  1034. package/dist/tui/model/types.d.ts +179 -0
  1035. package/dist/tui/model/types.d.ts.map +1 -0
  1036. package/dist/tui/model.d.ts +18 -0
  1037. package/dist/tui/model.d.ts.map +1 -0
  1038. package/dist/tui/model.js +17 -0
  1039. package/dist/tui/proxy-models-fetch.d.ts +34 -0
  1040. package/dist/tui/proxy-models-fetch.d.ts.map +1 -0
  1041. package/dist/tui/proxy-models-fetch.js +87 -0
  1042. package/dist/tui/proxy-models-fetch.js.map +1 -0
  1043. package/dist/tui/routes/account.d.ts +4 -0
  1044. package/dist/tui/routes/account.d.ts.map +1 -0
  1045. package/dist/tui/routes/account.js +327 -0
  1046. package/dist/tui/routes/account.js.map +1 -0
  1047. package/dist/tui/routes/apps.d.ts +3 -0
  1048. package/dist/tui/routes/apps.d.ts.map +1 -0
  1049. package/dist/tui/routes/apps.js +296 -0
  1050. package/dist/tui/routes/apps.js.map +1 -0
  1051. package/dist/tui/routes/common.d.ts +4 -0
  1052. package/dist/tui/routes/common.d.ts.map +1 -0
  1053. package/dist/tui/routes/common.js +117 -0
  1054. package/dist/tui/routes/common.js.map +1 -0
  1055. package/dist/tui/routes/context.d.ts +43 -0
  1056. package/dist/tui/routes/context.d.ts.map +1 -0
  1057. package/dist/tui/routes/gateway.d.ts +3 -0
  1058. package/dist/tui/routes/gateway.d.ts.map +1 -0
  1059. package/dist/tui/routes/gateway.js +199 -0
  1060. package/dist/tui/routes/gateway.js.map +1 -0
  1061. package/dist/tui/routes/proxy.d.ts +3 -0
  1062. package/dist/tui/routes/proxy.d.ts.map +1 -0
  1063. package/dist/tui/routes/proxy.js +234 -0
  1064. package/dist/tui/routes/proxy.js.map +1 -0
  1065. package/dist/tui/screens/account-detail.d.ts +14 -0
  1066. package/dist/tui/screens/account-detail.d.ts.map +1 -0
  1067. package/dist/tui/screens/account-detail.js +98 -0
  1068. package/dist/tui/screens/account-detail.js.map +1 -0
  1069. package/dist/tui/screens/accounts-home.d.ts +42 -0
  1070. package/dist/tui/screens/accounts-home.d.ts.map +1 -0
  1071. package/dist/tui/screens/accounts-home.js +321 -0
  1072. package/dist/tui/screens/accounts-home.js.map +1 -0
  1073. package/dist/tui/screens/add-account.d.ts +70 -0
  1074. package/dist/tui/screens/add-account.d.ts.map +1 -0
  1075. package/dist/tui/screens/add-account.js +323 -0
  1076. package/dist/tui/screens/add-account.js.map +1 -0
  1077. package/dist/tui/screens/anypick-home.d.ts +39 -0
  1078. package/dist/tui/screens/anypick-home.d.ts.map +1 -0
  1079. package/dist/tui/screens/anypick-home.js +253 -0
  1080. package/dist/tui/screens/anypick-home.js.map +1 -0
  1081. package/dist/tui/screens/anypick-preview.d.ts +13 -0
  1082. package/dist/tui/screens/anypick-preview.d.ts.map +1 -0
  1083. package/dist/tui/screens/anypick-preview.js +49 -0
  1084. package/dist/tui/screens/anypick-preview.js.map +1 -0
  1085. package/dist/tui/screens/app-route-preview.d.ts +14 -0
  1086. package/dist/tui/screens/app-route-preview.d.ts.map +1 -0
  1087. package/dist/tui/screens/app-route-preview.js +35 -0
  1088. package/dist/tui/screens/app-route-preview.js.map +1 -0
  1089. package/dist/tui/screens/app-route-source.d.ts +15 -0
  1090. package/dist/tui/screens/app-route-source.d.ts.map +1 -0
  1091. package/dist/tui/screens/app-route-source.js +97 -0
  1092. package/dist/tui/screens/app-route-source.js.map +1 -0
  1093. package/dist/tui/screens/apps-home.d.ts +22 -0
  1094. package/dist/tui/screens/apps-home.d.ts.map +1 -0
  1095. package/dist/tui/screens/apps-home.js +111 -0
  1096. package/dist/tui/screens/apps-home.js.map +1 -0
  1097. package/dist/tui/screens/confirm.d.ts +19 -0
  1098. package/dist/tui/screens/confirm.d.ts.map +1 -0
  1099. package/dist/tui/screens/confirm.js +42 -0
  1100. package/dist/tui/screens/confirm.js.map +1 -0
  1101. package/dist/tui/screens/credential-form.d.ts +30 -0
  1102. package/dist/tui/screens/credential-form.d.ts.map +1 -0
  1103. package/dist/tui/screens/credential-form.js +241 -0
  1104. package/dist/tui/screens/credential-form.js.map +1 -0
  1105. package/dist/tui/screens/gateway-connection-form.d.ts +16 -0
  1106. package/dist/tui/screens/gateway-connection-form.d.ts.map +1 -0
  1107. package/dist/tui/screens/gateway-connection-form.js +127 -0
  1108. package/dist/tui/screens/gateway-connection-form.js.map +1 -0
  1109. package/dist/tui/screens/gateway-pick-provider.d.ts +19 -0
  1110. package/dist/tui/screens/gateway-pick-provider.d.ts.map +1 -0
  1111. package/dist/tui/screens/gateway-pick-provider.js +62 -0
  1112. package/dist/tui/screens/gateway-pick-provider.js.map +1 -0
  1113. package/dist/tui/screens/gateways-home.d.ts +38 -0
  1114. package/dist/tui/screens/gateways-home.d.ts.map +1 -0
  1115. package/dist/tui/screens/gateways-home.js +247 -0
  1116. package/dist/tui/screens/gateways-home.js.map +1 -0
  1117. package/dist/tui/screens/health.d.ts +16 -0
  1118. package/dist/tui/screens/health.d.ts.map +1 -0
  1119. package/dist/tui/screens/health.js +109 -0
  1120. package/dist/tui/screens/health.js.map +1 -0
  1121. package/dist/tui/screens/help.d.ts +10 -0
  1122. package/dist/tui/screens/help.d.ts.map +1 -0
  1123. package/dist/tui/screens/help.js +213 -0
  1124. package/dist/tui/screens/help.js.map +1 -0
  1125. package/dist/tui/screens/manage-apps.d.ts +29 -0
  1126. package/dist/tui/screens/manage-apps.d.ts.map +1 -0
  1127. package/dist/tui/screens/manage-apps.js +165 -0
  1128. package/dist/tui/screens/manage-apps.js.map +1 -0
  1129. package/dist/tui/screens/proxy-board-helpers.d.ts +9 -0
  1130. package/dist/tui/screens/proxy-board-helpers.d.ts.map +1 -0
  1131. package/dist/tui/screens/proxy-board-helpers.js +70 -0
  1132. package/dist/tui/screens/proxy-board-helpers.js.map +1 -0
  1133. package/dist/tui/screens/proxy-board.d.ts +43 -0
  1134. package/dist/tui/screens/proxy-board.d.ts.map +1 -0
  1135. package/dist/tui/screens/proxy-board.js +351 -0
  1136. package/dist/tui/screens/proxy-board.js.map +1 -0
  1137. package/dist/tui/screens/proxy-hub.d.ts +21 -0
  1138. package/dist/tui/screens/proxy-hub.d.ts.map +1 -0
  1139. package/dist/tui/screens/proxy-hub.js +150 -0
  1140. package/dist/tui/screens/proxy-hub.js.map +1 -0
  1141. package/dist/tui/screens/proxy-models-utils.d.ts +13 -0
  1142. package/dist/tui/screens/proxy-models-utils.d.ts.map +1 -0
  1143. package/dist/tui/screens/proxy-models-utils.js +53 -0
  1144. package/dist/tui/screens/proxy-models-utils.js.map +1 -0
  1145. package/dist/tui/screens/proxy-models.d.ts +65 -0
  1146. package/dist/tui/screens/proxy-models.d.ts.map +1 -0
  1147. package/dist/tui/screens/proxy-models.js +252 -0
  1148. package/dist/tui/screens/proxy-models.js.map +1 -0
  1149. package/dist/tui/screens/proxy.d.ts +26 -0
  1150. package/dist/tui/screens/proxy.d.ts.map +1 -0
  1151. package/dist/tui/screens/text-input.d.ts +18 -0
  1152. package/dist/tui/screens/text-input.d.ts.map +1 -0
  1153. package/dist/tui/screens/text-input.js +67 -0
  1154. package/dist/tui/screens/text-input.js.map +1 -0
  1155. package/dist/tui/screens/tray-runtime.d.ts +19 -0
  1156. package/dist/tui/screens/tray-runtime.d.ts.map +1 -0
  1157. package/dist/tui/screens/tray-runtime.js +108 -0
  1158. package/dist/tui/screens/tray-runtime.js.map +1 -0
  1159. package/dist/tui/use-tui-nav.d.ts +40 -0
  1160. package/dist/tui/use-tui-nav.d.ts.map +1 -0
  1161. package/dist/tui/use-tui-nav.js +256 -0
  1162. package/dist/tui/use-tui-nav.js.map +1 -0
  1163. package/dist/tui/use-tui-shell.d.ts +46 -0
  1164. package/dist/tui/use-tui-shell.d.ts.map +1 -0
  1165. package/dist/tui/use-tui-shell.js +95 -0
  1166. package/dist/tui/use-tui-shell.js.map +1 -0
  1167. package/dist/types/account.d.ts +410 -0
  1168. package/dist/types/account.d.ts.map +1 -0
  1169. package/dist/types/account.js +7 -0
  1170. package/dist/types/account.js.map +1 -0
  1171. package/dist/types/bindings.d.ts +300 -0
  1172. package/dist/types/bindings.d.ts.map +1 -0
  1173. package/dist/types/catalog.d.ts +165 -0
  1174. package/dist/types/catalog.d.ts.map +1 -0
  1175. package/dist/types/clients.d.ts +174 -0
  1176. package/dist/types/clients.d.ts.map +1 -0
  1177. package/dist/types/clients.js +11 -0
  1178. package/dist/types/clients.js.map +1 -0
  1179. package/dist/types/plugins.d.ts +89 -0
  1180. package/dist/types/plugins.d.ts.map +1 -0
  1181. package/dist/types/plugins.js +14 -0
  1182. package/dist/types/plugins.js.map +1 -0
  1183. package/dist/types/proxy-hub.d.ts +109 -0
  1184. package/dist/types/proxy-hub.d.ts.map +1 -0
  1185. package/dist/types.d.ts +7 -0
  1186. package/dist/types.d.ts.map +1 -0
  1187. package/dist/types.js +1 -0
  1188. package/dist/utils/errors.d.ts +61 -0
  1189. package/dist/utils/errors.d.ts.map +1 -0
  1190. package/dist/utils/errors.js +119 -0
  1191. package/dist/utils/errors.js.map +1 -0
  1192. package/dist/utils/fs.d.ts +39 -0
  1193. package/dist/utils/fs.d.ts.map +1 -0
  1194. package/dist/utils/fs.js +126 -0
  1195. package/dist/utils/fs.js.map +1 -0
  1196. package/dist/utils/lock.d.ts +33 -0
  1197. package/dist/utils/lock.d.ts.map +1 -0
  1198. package/dist/utils/lock.js +95 -0
  1199. package/dist/utils/lock.js.map +1 -0
  1200. package/dist/utils/log.d.ts +10 -0
  1201. package/dist/utils/log.d.ts.map +1 -0
  1202. package/dist/utils/log.js +21 -0
  1203. package/dist/utils/log.js.map +1 -0
  1204. package/dist/utils/network.d.ts +3 -0
  1205. package/dist/utils/network.d.ts.map +1 -0
  1206. package/dist/utils/network.js +13 -0
  1207. package/dist/utils/network.js.map +1 -0
  1208. package/dist/utils/process/binary.d.ts +14 -0
  1209. package/dist/utils/process/binary.d.ts.map +1 -0
  1210. package/dist/utils/process/binary.js +29 -0
  1211. package/dist/utils/process/binary.js.map +1 -0
  1212. package/dist/utils/process/follow.d.ts +2 -0
  1213. package/dist/utils/process/follow.d.ts.map +1 -0
  1214. package/dist/utils/process/follow.js +90 -0
  1215. package/dist/utils/process/follow.js.map +1 -0
  1216. package/dist/utils/process/health.d.ts +43 -0
  1217. package/dist/utils/process/health.d.ts.map +1 -0
  1218. package/dist/utils/process/health.js +132 -0
  1219. package/dist/utils/process/health.js.map +1 -0
  1220. package/dist/utils/process/pid.d.ts +95 -0
  1221. package/dist/utils/process/pid.d.ts.map +1 -0
  1222. package/dist/utils/process/pid.js +243 -0
  1223. package/dist/utils/process/pid.js.map +1 -0
  1224. package/dist/utils/process.d.ts +5 -0
  1225. package/dist/utils/process.d.ts.map +1 -0
  1226. package/dist/utils/process.js +5 -0
  1227. package/dist/utils/slug.d.ts +18 -0
  1228. package/dist/utils/slug.d.ts.map +1 -0
  1229. package/dist/utils/slug.js +42 -0
  1230. package/dist/utils/slug.js.map +1 -0
  1231. package/package.json +121 -0
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Isolated temporary client runtime helpers (spec §9.7.1).
3
+ *
4
+ * Rules:
5
+ * - owner-only temp directory (0o700)
6
+ * - copy only explicit allowlist entries from listIsolatablePaths
7
+ * - reject path traversal, destinations outside temp root, unsafe symlinks
8
+ * - never recursively copy a full home directory
9
+ */
10
+ import type { IsolatablePath, IsolatedClientRuntime } from '../types.js';
11
+ export { syntheticProxyProfile } from '../core/profile-synth.js';
12
+ export declare function createTempRuntimeRoot(prefix?: string): Promise<string>;
13
+ /**
14
+ * Validate destinationPath stays inside runtimeRoot (no `..` escape).
15
+ */
16
+ export declare function resolveSafeDestination(runtimeRoot: string, destinationPath: string): string;
17
+ /**
18
+ * Reject symlinks that would escape the allowlist source policy.
19
+ * Policy: do not follow symlinks when copying; fail if source is a symlink.
20
+ */
21
+ export declare function assertSafeSource(sourcePath: string): Promise<void>;
22
+ /**
23
+ * Copy allowlisted isolatable paths into runtimeRoot.
24
+ * Missing optional paths are skipped; missing required paths fail.
25
+ */
26
+ export declare function materializeIsolatablePaths(runtimeRoot: string, paths: readonly IsolatablePath[]): Promise<string[]>;
27
+ export declare function makeIsolatedRuntime(directory: string, environment: Record<string, string>): IsolatedClientRuntime;
28
+ //# sourceMappingURL=isolation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isolation.d.ts","sourceRoot":"","sources":["../../src/clients/isolation.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAKtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,wBAAsB,qBAAqB,CAAC,MAAM,SAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAQvF;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM,CAoC3F;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAexE;AAED;;;GAGG;AACH,wBAAsB,0BAA0B,CAC9C,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,SAAS,cAAc,EAAE,GAC/B,OAAO,CAAC,MAAM,EAAE,CAAC,CAuDnB;AAgCD,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,qBAAqB,CAiBvB"}
@@ -0,0 +1,131 @@
1
+ import { ExitCode, anypickError } from "../utils/errors.js";
2
+ import { pathExists } from "../utils/fs.js";
3
+ import { syntheticProxyProfile } from "../core/profile-synth.js";
4
+ import { dirname, isAbsolute, join, normalize, relative, resolve, sep } from "node:path";
5
+ import { chmod, cp, lstat, mkdir, mkdtemp, readdir, rm, stat } from "node:fs/promises";
6
+ import { tmpdir } from "node:os";
7
+ //#region src/clients/isolation.ts
8
+ /**
9
+ * Isolated temporary client runtime helpers (spec §9.7.1).
10
+ *
11
+ * Rules:
12
+ * - owner-only temp directory (0o700)
13
+ * - copy only explicit allowlist entries from listIsolatablePaths
14
+ * - reject path traversal, destinations outside temp root, unsafe symlinks
15
+ * - never recursively copy a full home directory
16
+ */
17
+ async function createTempRuntimeRoot(prefix = "anypick-client-") {
18
+ const root = await mkdtemp(join(tmpdir(), prefix));
19
+ try {
20
+ await chmod(root, 448);
21
+ } catch {}
22
+ return root;
23
+ }
24
+ /**
25
+ * Validate destinationPath stays inside runtimeRoot (no `..` escape).
26
+ */
27
+ function resolveSafeDestination(runtimeRoot, destinationPath) {
28
+ if (!destinationPath || destinationPath.includes("\0")) throw anypickError(`Invalid isolation destination: ${destinationPath}`, "INVALID_USAGE", { exitCode: ExitCode.INVALID_USAGE });
29
+ if (isAbsolute(destinationPath)) throw anypickError(`Isolation destination must be relative: ${destinationPath}`, "INVALID_USAGE", { exitCode: ExitCode.INVALID_USAGE });
30
+ const normalized = normalize(destinationPath);
31
+ if (normalized === ".." || normalized.startsWith(`..${sep}`) || normalized.includes(`${sep}..${sep}`) || normalized.endsWith(`${sep}..`)) throw anypickError(`Isolation destination escapes runtime root: ${destinationPath}`, "INVALID_USAGE", { exitCode: ExitCode.INVALID_USAGE });
32
+ const abs = resolve(runtimeRoot, normalized);
33
+ const rel = relative(resolve(runtimeRoot), abs);
34
+ if (rel.startsWith("..") || isAbsolute(rel)) throw anypickError(`Isolation destination escapes runtime root: ${destinationPath}`, "INVALID_USAGE", { exitCode: ExitCode.INVALID_USAGE });
35
+ return abs;
36
+ }
37
+ /**
38
+ * Reject symlinks that would escape the allowlist source policy.
39
+ * Policy: do not follow symlinks when copying; fail if source is a symlink.
40
+ */
41
+ async function assertSafeSource(sourcePath) {
42
+ try {
43
+ if ((await lstat(sourcePath)).isSymbolicLink()) throw anypickError(`Isolation refuses to copy symlink: ${sourcePath}`, "INVALID_USAGE", { exitCode: ExitCode.INVALID_USAGE });
44
+ } catch (err) {
45
+ if (err && typeof err === "object" && "code" in err) throw err;
46
+ throw err;
47
+ }
48
+ }
49
+ /**
50
+ * Copy allowlisted isolatable paths into runtimeRoot.
51
+ * Missing optional paths are skipped; missing required paths fail.
52
+ */
53
+ async function materializeIsolatablePaths(runtimeRoot, paths) {
54
+ const copied = [];
55
+ for (const entry of paths) {
56
+ const dest = resolveSafeDestination(runtimeRoot, entry.destinationPath);
57
+ if (!await pathExists(entry.sourcePath)) {
58
+ if (entry.required) throw anypickError(`Required client path missing for isolation: ${entry.sourcePath}`, "MISSING_DEPENDENCY", { exitCode: ExitCode.MISSING_DEPENDENCY });
59
+ continue;
60
+ }
61
+ await assertSafeSource(entry.sourcePath);
62
+ await mkdir(dirname(dest), {
63
+ recursive: true,
64
+ mode: 448
65
+ });
66
+ if (entry.kind === "directory") {
67
+ await cp(entry.sourcePath, dest, {
68
+ recursive: true,
69
+ verbatimSymlinks: true,
70
+ filter: async (src) => {
71
+ try {
72
+ if ((await lstat(src)).isSymbolicLink()) return false;
73
+ return true;
74
+ } catch {
75
+ return false;
76
+ }
77
+ }
78
+ });
79
+ await clampModeRecursively(dest);
80
+ } else {
81
+ const { copyFile, chmod: chmodFile } = await import("node:fs/promises");
82
+ await copyFile(entry.sourcePath, dest);
83
+ try {
84
+ await chmodFile(dest, (await stat(entry.sourcePath)).mode & 384 || 384);
85
+ } catch {}
86
+ }
87
+ copied.push(dest);
88
+ }
89
+ return copied;
90
+ }
91
+ /**
92
+ * Walk a copied subtree and clamp every entry to owner-only permissions.
93
+ * Files cap at 0o600 (drop all group/other bits); directories at 0o700.
94
+ * Used after `cp` since it preserves the source tree's modes verbatim and
95
+ * would otherwise carry world/group-readable secrets into the isolated home.
96
+ */
97
+ async function clampModeRecursively(root) {
98
+ const entries = await readdir(root, { withFileTypes: true });
99
+ for (const entry of entries) {
100
+ const full = join(root, entry.name);
101
+ if (entry.isDirectory()) {
102
+ await clampModeRecursively(full);
103
+ try {
104
+ await chmod(full, 448);
105
+ } catch {}
106
+ } else if (entry.isFile()) try {
107
+ await chmod(full, (await stat(full)).mode & 384 || 384);
108
+ } catch {}
109
+ }
110
+ }
111
+ function makeIsolatedRuntime(directory, environment) {
112
+ let cleaned = false;
113
+ return {
114
+ directory,
115
+ environment,
116
+ async cleanup() {
117
+ if (cleaned) return;
118
+ cleaned = true;
119
+ try {
120
+ await rm(directory, {
121
+ recursive: true,
122
+ force: true
123
+ });
124
+ } catch {}
125
+ }
126
+ };
127
+ }
128
+ //#endregion
129
+ export { assertSafeSource, createTempRuntimeRoot, makeIsolatedRuntime, materializeIsolatablePaths, resolveSafeDestination, syntheticProxyProfile };
130
+
131
+ //# sourceMappingURL=isolation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isolation.js","names":[],"sources":["../../src/clients/isolation.ts"],"sourcesContent":["/**\n * Isolated temporary client runtime helpers (spec §9.7.1).\n *\n * Rules:\n * - owner-only temp directory (0o700)\n * - copy only explicit allowlist entries from listIsolatablePaths\n * - reject path traversal, destinations outside temp root, unsafe symlinks\n * - never recursively copy a full home directory\n */\n\nimport { chmod, cp, lstat, mkdir, mkdtemp, readdir, rm, stat } from 'node:fs/promises';\nimport { tmpdir } from 'node:os';\nimport { dirname, isAbsolute, join, normalize, relative, resolve, sep } from 'node:path';\nimport type { IsolatablePath, IsolatedClientRuntime } from '../types';\nimport { anypickError, ExitCode } from '../utils/errors';\nimport { pathExists } from '../utils/fs';\n\n// Moved to core so core does not take value imports from the clients package.\nexport { syntheticProxyProfile } from '../core/profile-synth';\n\nexport async function createTempRuntimeRoot(prefix = 'anypick-client-'): Promise<string> {\n const root = await mkdtemp(join(tmpdir(), prefix));\n try {\n await chmod(root, 0o700);\n } catch {\n // best-effort on platforms without chmod\n }\n return root;\n}\n\n/**\n * Validate destinationPath stays inside runtimeRoot (no `..` escape).\n */\nexport function resolveSafeDestination(runtimeRoot: string, destinationPath: string): string {\n if (!destinationPath || destinationPath.includes('\\0')) {\n throw anypickError(`Invalid isolation destination: ${destinationPath}`, 'INVALID_USAGE', {\n exitCode: ExitCode.INVALID_USAGE,\n });\n }\n if (isAbsolute(destinationPath)) {\n throw anypickError(\n `Isolation destination must be relative: ${destinationPath}`,\n 'INVALID_USAGE',\n { exitCode: ExitCode.INVALID_USAGE },\n );\n }\n const normalized = normalize(destinationPath);\n if (\n normalized === '..' ||\n normalized.startsWith(`..${sep}`) ||\n normalized.includes(`${sep}..${sep}`) ||\n normalized.endsWith(`${sep}..`)\n ) {\n throw anypickError(\n `Isolation destination escapes runtime root: ${destinationPath}`,\n 'INVALID_USAGE',\n { exitCode: ExitCode.INVALID_USAGE },\n );\n }\n const abs = resolve(runtimeRoot, normalized);\n const rel = relative(resolve(runtimeRoot), abs);\n if (rel.startsWith('..') || isAbsolute(rel)) {\n throw anypickError(\n `Isolation destination escapes runtime root: ${destinationPath}`,\n 'INVALID_USAGE',\n { exitCode: ExitCode.INVALID_USAGE },\n );\n }\n return abs;\n}\n\n/**\n * Reject symlinks that would escape the allowlist source policy.\n * Policy: do not follow symlinks when copying; fail if source is a symlink.\n */\nexport async function assertSafeSource(sourcePath: string): Promise<void> {\n try {\n const st = await lstat(sourcePath);\n if (st.isSymbolicLink()) {\n throw anypickError(`Isolation refuses to copy symlink: ${sourcePath}`, 'INVALID_USAGE', {\n exitCode: ExitCode.INVALID_USAGE,\n });\n }\n } catch (err) {\n if (err && typeof err === 'object' && 'code' in err) {\n // ENOENT handled by caller via required flag\n throw err;\n }\n throw err;\n }\n}\n\n/**\n * Copy allowlisted isolatable paths into runtimeRoot.\n * Missing optional paths are skipped; missing required paths fail.\n */\nexport async function materializeIsolatablePaths(\n runtimeRoot: string,\n paths: readonly IsolatablePath[],\n): Promise<string[]> {\n const copied: string[] = [];\n for (const entry of paths) {\n const dest = resolveSafeDestination(runtimeRoot, entry.destinationPath);\n const exists = await pathExists(entry.sourcePath);\n if (!exists) {\n if (entry.required) {\n throw anypickError(\n `Required client path missing for isolation: ${entry.sourcePath}`,\n 'MISSING_DEPENDENCY',\n { exitCode: ExitCode.MISSING_DEPENDENCY },\n );\n }\n continue;\n }\n await assertSafeSource(entry.sourcePath);\n await mkdir(dirname(dest), { recursive: true, mode: 0o700 });\n\n if (entry.kind === 'directory') {\n await cp(entry.sourcePath, dest, {\n recursive: true,\n // do not follow symlinks\n verbatimSymlinks: true,\n filter: async (src) => {\n try {\n const st = await lstat(src);\n if (st.isSymbolicLink()) {\n return false;\n }\n return true;\n } catch {\n return false;\n }\n },\n });\n // cp preserves the source tree's modes verbatim for directory contents,\n // so clamp every copied file/dir to owner-only (0o600 / 0o700) after the\n // copy. Symlinks are already excluded by the filter above.\n await clampModeRecursively(dest);\n } else {\n const { copyFile, chmod: chmodFile } = await import('node:fs/promises');\n await copyFile(entry.sourcePath, dest);\n try {\n // never more permissive than 0o600 for files\n const srcStat = await stat(entry.sourcePath);\n const mode = srcStat.mode & 0o777;\n const restrictive = mode & 0o600; // drop group/other write/exec at least\n await chmodFile(dest, restrictive || 0o600);\n } catch {\n // ignore\n }\n }\n copied.push(dest);\n }\n return copied;\n}\n\n/**\n * Walk a copied subtree and clamp every entry to owner-only permissions.\n * Files cap at 0o600 (drop all group/other bits); directories at 0o700.\n * Used after `cp` since it preserves the source tree's modes verbatim and\n * would otherwise carry world/group-readable secrets into the isolated home.\n */\nasync function clampModeRecursively(root: string): Promise<void> {\n const entries = await readdir(root, { withFileTypes: true });\n for (const entry of entries) {\n const full = join(root, entry.name);\n if (entry.isDirectory()) {\n await clampModeRecursively(full);\n try {\n await chmod(full, 0o700);\n } catch {\n // ignore best-effort\n }\n } else if (entry.isFile()) {\n try {\n const st = await stat(full);\n const mode = st.mode & 0o777;\n await chmod(full, mode & 0o600 || 0o600);\n } catch {\n // ignore best-effort\n }\n }\n // symlinks are skipped (excluded by the copy filter)\n }\n}\n\nexport function makeIsolatedRuntime(\n directory: string,\n environment: Record<string, string>,\n): IsolatedClientRuntime {\n let cleaned = false;\n return {\n directory,\n environment,\n async cleanup() {\n if (cleaned) {\n return;\n }\n cleaned = true;\n try {\n await rm(directory, { recursive: true, force: true });\n } catch {\n // best-effort\n }\n },\n };\n}\n"],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { ClientAdapter } from '../types.js';
2
+ /**
3
+ * Kiro client adapter — primarily env-file based.
4
+ * Native Kiro auth remains under account backup/restore (SSO cache files).
5
+ *
6
+ * Ephemeral run uses an isolated temporary HOME so live config is untouched.
7
+ */
8
+ export declare function createKiroClient(home?: string): ClientAdapter;
9
+ export declare const kiroClient: ClientAdapter;
10
+ //# sourceMappingURL=kiro.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kiro.d.ts","sourceRoot":"","sources":["../../src/clients/kiro.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,aAAa,EAOd,MAAM,UAAU,CAAC;AAiElB;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,SAAgC,GAAG,aAAa,CAoJpF;AAYD,eAAO,MAAM,UAAU,eAAqB,CAAC"}
@@ -0,0 +1,168 @@
1
+ import { ensureDir, writeTextFile } from "../utils/fs.js";
2
+ import { resolveFromContext } from "./resolve.js";
3
+ import { syntheticProxyProfile } from "../core/profile-synth.js";
4
+ import { removeClientEnvFiles, writeClientEnvFiles } from "./env-files.js";
5
+ import { createTempRuntimeRoot, makeIsolatedRuntime, materializeIsolatablePaths } from "./isolation.js";
6
+ import { DEFAULT_MODEL_ROLE } from "./model-roles.js";
7
+ import { join } from "node:path";
8
+ import { homedir } from "node:os";
9
+ //#region src/clients/kiro.ts
10
+ async function applyKiroContext(ctx) {
11
+ const r = resolveFromContext(ctx);
12
+ const env = { OPENAI_API_KEY: r.apiKey };
13
+ if (r.endpoint) env.OPENAI_BASE_URL = r.endpoint;
14
+ if (r.defaultModel) env.OPENAI_MODEL = r.defaultModel;
15
+ if (r.endpoint) {
16
+ env.ANTHROPIC_BASE_URL = r.endpoint;
17
+ env.ANTHROPIC_AUTH_TOKEN = r.apiKey;
18
+ }
19
+ if (ctx.dryRun) return {
20
+ managedPaths: [join(ctx.anypickRoot, "clients", "kiro", "env.sh"), join(ctx.anypickRoot, "clients", "kiro", "env.ps1")],
21
+ managedEnvKeys: Object.keys(env)
22
+ };
23
+ if (ctx.isolatedHome) {
24
+ const envPaths = await writeClientEnvFiles(join(ctx.isolatedHome, ".anypick"), "kiro", env);
25
+ const dotenv = join(ctx.isolatedHome, ".kiro-anypick.env");
26
+ await writeTextFile(dotenv, Object.entries(env).map(([k, v]) => `${k}=${JSON.stringify(v)}`).join("\n") + "\n", 384);
27
+ return {
28
+ managedPaths: [...envPaths, dotenv],
29
+ managedEnvKeys: Object.keys(env)
30
+ };
31
+ }
32
+ return {
33
+ managedPaths: await writeClientEnvFiles(ctx.anypickRoot, "kiro", env),
34
+ managedEnvKeys: Object.keys(env)
35
+ };
36
+ }
37
+ /**
38
+ * Kiro client adapter — primarily env-file based.
39
+ * Native Kiro auth remains under account backup/restore (SSO cache files).
40
+ *
41
+ * Ephemeral run uses an isolated temporary HOME so live config is untouched.
42
+ */
43
+ function createKiroClient(home = process.env.HOME ?? homedir()) {
44
+ return {
45
+ id: "kiro",
46
+ name: "Kiro",
47
+ shortName: "Kiro",
48
+ binaryName: "kiro",
49
+ binaryEnvVar: "KIRO_BINARY",
50
+ description: "Amazon Kiro (runtime env overlay)",
51
+ supportedApiStyles: [
52
+ "openai",
53
+ "anthropic",
54
+ "custom"
55
+ ],
56
+ nativeInstallations: [{
57
+ sourceId: "kiro",
58
+ executables: ["kiro-cli", "kiro"],
59
+ macApplications: ["Kiro.app", "Kiro CLI.app"]
60
+ }],
61
+ capabilities: {
62
+ id: "kiro",
63
+ acceptedProtocols: ["openai", "anthropic"],
64
+ supportsEnvironmentOverlay: false,
65
+ supportsIsolatedHome: true,
66
+ supportsPersistentConfig: true,
67
+ protocolPreference: "anthropic"
68
+ },
69
+ modelRoles: () => DEFAULT_MODEL_ROLE,
70
+ async validate(_ctx) {},
71
+ async apply(ctx) {
72
+ return applyKiroContext(ctx);
73
+ },
74
+ async listIsolatablePaths(_liveState) {
75
+ return [];
76
+ },
77
+ async createIsolatedRuntime(plan, paths) {
78
+ const runtimeRoot = await createTempRuntimeRoot("anypick-kiro-");
79
+ const isoHome = join(runtimeRoot, "home");
80
+ await ensureDir(isoHome);
81
+ await materializeIsolatablePaths(isoHome, paths);
82
+ const profile = plan.profile ?? syntheticProxyProfile({
83
+ name: `ephemeral-${plan.source.display}`,
84
+ endpoint: plan.transport.endpoint ?? "",
85
+ apiKey: "anypick-proxy",
86
+ defaultModel: plan.model.mode === "explicit" ? plan.model.id : void 0
87
+ });
88
+ const endpoint = plan.transport.endpoint ?? (plan.transport.managedProxy ? `http://127.0.0.1:${plan.transport.managedProxy.port}` : profile.meta.endpoint ?? "");
89
+ const ctx = {
90
+ profile: {
91
+ ...profile,
92
+ meta: {
93
+ ...profile.meta,
94
+ endpoint
95
+ },
96
+ secrets: {
97
+ ...profile.secrets,
98
+ apiKey: profile.secrets.apiKey ?? "anypick-proxy"
99
+ }
100
+ },
101
+ clientId: "kiro",
102
+ dryRun: plan.dryRun,
103
+ verbose: plan.verbose,
104
+ proxyEndpoint: endpoint || void 0,
105
+ anypickRoot: plan.anypickRoot,
106
+ isolatedHome: isoHome
107
+ };
108
+ let env;
109
+ if (!plan.dryRun) {
110
+ await applyKiroContext(ctx);
111
+ env = {
112
+ HOME: isoHome,
113
+ OPENAI_API_KEY: ctx.profile.secrets.apiKey ?? "anypick-proxy",
114
+ ...endpoint ? {
115
+ OPENAI_BASE_URL: endpoint,
116
+ ANTHROPIC_BASE_URL: endpoint,
117
+ ANTHROPIC_AUTH_TOKEN: ctx.profile.secrets.apiKey ?? "anypick-proxy"
118
+ } : {}
119
+ };
120
+ } else env = { HOME: isoHome };
121
+ return makeIsolatedRuntime(runtimeRoot, env);
122
+ },
123
+ async applyPersistent(plan) {
124
+ const profile = plan.profile ?? syntheticProxyProfile({
125
+ name: `proxy-${plan.source.display}`,
126
+ endpoint: plan.transport.endpoint ?? "",
127
+ apiKey: "anypick-proxy",
128
+ defaultModel: plan.model.mode === "explicit" ? plan.model.id : void 0
129
+ });
130
+ const endpoint = plan.transport.endpoint ?? (plan.transport.managedProxy ? `http://127.0.0.1:${plan.transport.managedProxy.port}` : profile.meta.endpoint ?? "");
131
+ return applyKiroContext({
132
+ profile: {
133
+ ...profile,
134
+ meta: {
135
+ ...profile.meta,
136
+ endpoint
137
+ }
138
+ },
139
+ clientId: "kiro",
140
+ dryRun: plan.dryRun,
141
+ verbose: plan.verbose,
142
+ proxyEndpoint: endpoint || void 0,
143
+ anypickRoot: plan.anypickRoot
144
+ });
145
+ },
146
+ async reset(state) {
147
+ await removeClientEnvFiles(inferAnyPickRoot(state) ?? process.env.ANYPICK_HOME ?? join(homedir(), ".anypick"), "kiro");
148
+ },
149
+ async inspect() {
150
+ return {
151
+ present: true,
152
+ configPaths: [],
153
+ summary: "Kiro runtime uses anypick env files (account auth separate)"
154
+ };
155
+ }
156
+ };
157
+ }
158
+ function inferAnyPickRoot(state) {
159
+ for (const p of state.managedPaths) {
160
+ const idx = p.replace(/\\/g, "/").indexOf("/clients/kiro/");
161
+ if (idx > 0) return p.slice(0, idx);
162
+ }
163
+ }
164
+ var kiroClient = createKiroClient();
165
+ //#endregion
166
+ export { createKiroClient, kiroClient };
167
+
168
+ //# sourceMappingURL=kiro.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kiro.js","names":[],"sources":["../../src/clients/kiro.ts"],"sourcesContent":["import { join } from 'node:path';\nimport { homedir } from 'node:os';\nimport type {\n ApplyContext,\n ClientAdapter,\n ClientInspectResult,\n ClientLiveState,\n ClientState,\n IsolatablePath,\n IsolatedClientRuntime,\n ResolvedClientPlan,\n} from '../types';\nimport { resolveFromContext } from './resolve';\nimport { removeClientEnvFiles, writeClientEnvFiles } from './env-files';\nimport { ensureDir, pathExists, writeTextFile } from '../utils/fs';\nimport {\n createTempRuntimeRoot,\n makeIsolatedRuntime,\n materializeIsolatablePaths,\n syntheticProxyProfile,\n} from './isolation';\nimport { DEFAULT_MODEL_ROLE } from './model-roles';\n\nasync function applyKiroContext(ctx: ApplyContext) {\n const r = resolveFromContext(ctx);\n const env: Record<string, string> = {\n OPENAI_API_KEY: r.apiKey,\n };\n if (r.endpoint) {\n env.OPENAI_BASE_URL = r.endpoint;\n }\n if (r.defaultModel) {\n env.OPENAI_MODEL = r.defaultModel;\n }\n // Anthropic-compatible consumers of Kiro proxy\n if (r.endpoint) {\n env.ANTHROPIC_BASE_URL = r.endpoint;\n env.ANTHROPIC_AUTH_TOKEN = r.apiKey;\n }\n\n if (ctx.dryRun) {\n return {\n managedPaths: [\n join(ctx.anypickRoot, 'clients', 'kiro', 'env.sh'),\n join(ctx.anypickRoot, 'clients', 'kiro', 'env.ps1'),\n ],\n managedEnvKeys: Object.keys(env),\n };\n }\n\n if (ctx.isolatedHome) {\n // Write env into isolated tree only — never touch live anypick root env files\n const isoAnyPick = join(ctx.isolatedHome, '.anypick');\n const envPaths = await writeClientEnvFiles(isoAnyPick, 'kiro', env);\n // Also drop a small dotenv for launchers that source it\n const dotenv = join(ctx.isolatedHome, '.kiro-anypick.env');\n await writeTextFile(\n dotenv,\n Object.entries(env)\n .map(([k, v]) => `${k}=${JSON.stringify(v)}`)\n .join('\\n') + '\\n',\n 0o600,\n );\n return {\n managedPaths: [...envPaths, dotenv],\n managedEnvKeys: Object.keys(env),\n };\n }\n\n const envPaths = await writeClientEnvFiles(ctx.anypickRoot, 'kiro', env);\n return {\n managedPaths: envPaths,\n managedEnvKeys: Object.keys(env),\n };\n}\n\n/**\n * Kiro client adapter — primarily env-file based.\n * Native Kiro auth remains under account backup/restore (SSO cache files).\n *\n * Ephemeral run uses an isolated temporary HOME so live config is untouched.\n */\nexport function createKiroClient(home = process.env.HOME ?? homedir()): ClientAdapter {\n const adapter: ClientAdapter = {\n id: 'kiro',\n name: 'Kiro',\n shortName: 'Kiro',\n binaryName: 'kiro',\n binaryEnvVar: 'KIRO_BINARY',\n description: 'Amazon Kiro (runtime env overlay)',\n supportedApiStyles: ['openai', 'anthropic', 'custom'],\n nativeInstallations: [\n {\n sourceId: 'kiro',\n executables: ['kiro-cli', 'kiro'],\n macApplications: ['Kiro.app', 'Kiro CLI.app'],\n },\n ],\n capabilities: {\n id: 'kiro',\n acceptedProtocols: ['openai', 'anthropic'],\n supportsEnvironmentOverlay: false,\n supportsIsolatedHome: true,\n supportsPersistentConfig: true,\n protocolPreference: 'anthropic',\n },\n modelRoles: () => DEFAULT_MODEL_ROLE,\n\n async validate(_ctx: ApplyContext): Promise<void> {\n // No key format/presence checks — local proxies use arbitrary tokens.\n },\n\n async apply(ctx: ApplyContext) {\n return applyKiroContext(ctx);\n },\n\n async listIsolatablePaths(_liveState: ClientLiveState): Promise<readonly IsolatablePath[]> {\n // Kiro runtime is env-driven; no live config files required.\n // Keep allowlist empty (still implements isolation via env in temp home).\n return [];\n },\n\n async createIsolatedRuntime(\n plan: ResolvedClientPlan,\n paths: readonly IsolatablePath[],\n ): Promise<IsolatedClientRuntime> {\n const runtimeRoot = await createTempRuntimeRoot('anypick-kiro-');\n const isoHome = join(runtimeRoot, 'home');\n await ensureDir(isoHome);\n await materializeIsolatablePaths(isoHome, paths);\n\n const profile =\n plan.profile ??\n syntheticProxyProfile({\n name: `ephemeral-${plan.source.display}`,\n endpoint: plan.transport.endpoint ?? '',\n apiKey: 'anypick-proxy',\n defaultModel: plan.model.mode === 'explicit' ? plan.model.id : undefined,\n });\n\n const endpoint =\n plan.transport.endpoint ??\n (plan.transport.managedProxy\n ? `http://127.0.0.1:${plan.transport.managedProxy.port}`\n : (profile.meta.endpoint ?? ''));\n\n const ctx: ApplyContext = {\n profile: {\n ...profile,\n meta: { ...profile.meta, endpoint },\n secrets: {\n ...profile.secrets,\n apiKey: profile.secrets.apiKey ?? 'anypick-proxy',\n },\n },\n clientId: 'kiro',\n dryRun: plan.dryRun,\n verbose: plan.verbose,\n proxyEndpoint: endpoint || undefined,\n anypickRoot: plan.anypickRoot,\n isolatedHome: isoHome,\n };\n\n let env: Record<string, string>;\n if (!plan.dryRun) {\n await applyKiroContext(ctx);\n env = {\n HOME: isoHome,\n OPENAI_API_KEY: ctx.profile.secrets.apiKey ?? 'anypick-proxy',\n ...(endpoint\n ? {\n OPENAI_BASE_URL: endpoint,\n ANTHROPIC_BASE_URL: endpoint,\n ANTHROPIC_AUTH_TOKEN: ctx.profile.secrets.apiKey ?? 'anypick-proxy',\n }\n : {}),\n };\n } else {\n env = { HOME: isoHome };\n }\n\n return makeIsolatedRuntime(runtimeRoot, env);\n },\n\n async applyPersistent(plan: ResolvedClientPlan) {\n const profile =\n plan.profile ??\n syntheticProxyProfile({\n name: `proxy-${plan.source.display}`,\n endpoint: plan.transport.endpoint ?? '',\n apiKey: 'anypick-proxy',\n defaultModel: plan.model.mode === 'explicit' ? plan.model.id : undefined,\n });\n const endpoint =\n plan.transport.endpoint ??\n (plan.transport.managedProxy\n ? `http://127.0.0.1:${plan.transport.managedProxy.port}`\n : (profile.meta.endpoint ?? ''));\n const ctx: ApplyContext = {\n profile: {\n ...profile,\n meta: { ...profile.meta, endpoint },\n },\n clientId: 'kiro',\n dryRun: plan.dryRun,\n verbose: plan.verbose,\n proxyEndpoint: endpoint || undefined,\n anypickRoot: plan.anypickRoot,\n };\n return applyKiroContext(ctx);\n },\n\n async reset(state: ClientState): Promise<void> {\n const anypickRoot =\n inferAnyPickRoot(state) ?? process.env.ANYPICK_HOME ?? join(homedir(), '.anypick');\n await removeClientEnvFiles(anypickRoot, 'kiro');\n },\n\n async inspect(): Promise<ClientInspectResult> {\n void home;\n void pathExists;\n return {\n present: true,\n configPaths: [],\n summary: 'Kiro runtime uses anypick env files (account auth separate)',\n };\n },\n };\n\n return adapter;\n}\n\nfunction inferAnyPickRoot(state: ClientState): string | undefined {\n for (const p of state.managedPaths) {\n const idx = p.replace(/\\\\/g, '/').indexOf('/clients/kiro/');\n if (idx > 0) {\n return p.slice(0, idx);\n }\n }\n return undefined;\n}\n\nexport const kiroClient = createKiroClient();\n"],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Client-shaped model roles + provider default maps for proxy → app apply.
3
+ *
4
+ * Model *policy* (which model fills which role, what to suggest, what to fall
5
+ * back to) belongs to the provider, not to this module. Callers pass a
6
+ * `ModelPolicy` resolved from the provider or catalog registry; when none is
7
+ * supplied these functions return generic, vendor-neutral answers rather than
8
+ * guessing a specific vendor's model ids.
9
+ */
10
+ import type { ClientAdapter, ClientModelRole, ModelPolicy } from '../types.js';
11
+ /** Resolves a provider/catalog id to its model policy, if it has one. */
12
+ export type ModelPolicyLookup = (providerId: string) => ModelPolicy | undefined;
13
+ export declare const CLAUDE_MODEL_ROLES: readonly ClientModelRole[];
14
+ /**
15
+ * Codex Desktop only surfaces ~5 allowlisted GPT picker slots. AnyPick maps
16
+ * Hub models onto those slots (see `codex-desktop-catalog.ts`). Configure Models
17
+ * exposes one required Default plus four optional models — same multi-picker
18
+ * shape as Claude's Default/Sonnet/Opus/Haiku, but for the Desktop list rather
19
+ * than Claude Code env roles. Stable ids stay `list2`…`list5` (binding storage).
20
+ */
21
+ export declare const CODEX_DESKTOP_MODEL_ROLES: readonly ClientModelRole[];
22
+ export declare const DEFAULT_MODEL_ROLE: readonly ClientModelRole[];
23
+ /**
24
+ * Roles an app can map when applying a proxy/profile.
25
+ *
26
+ * Prefer passing a `ClientAdapter` (or anything with `modelRoles()`). The string
27
+ * overload is only a fallback for call sites that have not resolved the
28
+ * adapter yet — it returns the neutral single-role default so third-party
29
+ * clients never inherit Anthropic's multi-role labels by id coincidence.
30
+ */
31
+ export declare function modelRolesForClient(client: Pick<ClientAdapter, 'id' | 'modelRoles'> | string): readonly ClientModelRole[];
32
+ /**
33
+ * Default role → model id when pointing a client at a proxy for this provider.
34
+ * Values are bare ids suitable for Claude Code / Codex env injection.
35
+ *
36
+ * Pass a ClientAdapter (or anything with modelRoles) as the second argument so
37
+ * multi-role clients keep their slots. A bare client id falls back to the
38
+ * neutral single-role default.
39
+ */
40
+ export declare function defaultModelRolesForProxy(providerId: string, client: Pick<ClientAdapter, 'id' | 'modelRoles'> | string, lookup?: ModelPolicyLookup): Record<string, string>;
41
+ /**
42
+ * Reconcile provider templates with the models the proxy actually exposes.
43
+ * Existing user-selected roles are merged later and therefore are preserved.
44
+ *
45
+ * Only applies to providers that declare `roleModelHints()` — i.e. those whose
46
+ * roles are filled from live discovery. Without hints the declared defaults are
47
+ * already authoritative and must not be second-guessed against a live list.
48
+ */
49
+ export declare function modelDefaultsForSuggestions(providerId: string, defaults: Record<string, string>, suggestions: string[], lookup?: ModelPolicyLookup): Record<string, string>;
50
+ /** Autocomplete candidates for a proxy provider (unique bare ids + aliases). */
51
+ export declare function suggestModelsForProxyProvider(providerId: string, lookup?: ModelPolicyLookup): string[];
52
+ /**
53
+ * Merge user roles over defaults. Empty strings are dropped.
54
+ * Ensures `default` is set when any role is present (from default role or first value).
55
+ */
56
+ export declare function normalizeModelRoles(roles: Record<string, string> | undefined, defaults: Record<string, string>): Record<string, string>;
57
+ export { modelRolesFromClientOptions } from '../core/model-roles.js';
58
+ //# sourceMappingURL=model-roles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-roles.d.ts","sourceRoot":"","sources":["../../src/clients/model-roles.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5E,yEAAyE;AACzE,MAAM,MAAM,iBAAiB,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK,WAAW,GAAG,SAAS,CAAC;AAEhF,eAAO,MAAM,kBAAkB,EAAE,SAAS,eAAe,EAK/C,CAAC;AAEX;;;;;;GAMG;AACH,eAAO,MAAM,yBAAyB,EAAE,SAAS,eAAe,EAMtD,CAAC;AAEX,eAAO,MAAM,kBAAkB,EAAE,SAAS,eAAe,EAE/C,CAAC;AAEX;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,YAAY,CAAC,GAAG,MAAM,GACxD,SAAS,eAAe,EAAE,CAQ5B;AAED;;;;;;;GAOG;AACH,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,YAAY,CAAC,GAAG,MAAM,EACzD,MAAM,CAAC,EAAE,iBAAiB,GACzB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAWxB;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,WAAW,EAAE,MAAM,EAAE,EACrB,MAAM,CAAC,EAAE,iBAAiB,GACzB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwBxB;AAED,gFAAgF;AAChF,wBAAgB,6BAA6B,CAC3C,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,iBAAiB,GACzB,MAAM,EAAE,CAoBV;AAsBD;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,EACzC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAiBxB;AAGD,OAAO,EAAE,2BAA2B,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,139 @@
1
+ import { modelRolesFromClientOptions } from "../core/model-roles.js";
2
+ import "../catalog/providers.js";
3
+ //#region src/clients/model-roles.ts
4
+ var CLAUDE_MODEL_ROLES = [
5
+ {
6
+ id: "default",
7
+ label: "Default"
8
+ },
9
+ {
10
+ id: "sonnet",
11
+ label: "Sonnet"
12
+ },
13
+ {
14
+ id: "opus",
15
+ label: "Opus"
16
+ },
17
+ {
18
+ id: "haiku",
19
+ label: "Haiku"
20
+ }
21
+ ];
22
+ /**
23
+ * Codex Desktop only surfaces ~5 allowlisted GPT picker slots. AnyPick maps
24
+ * Hub models onto those slots (see `codex-desktop-catalog.ts`). Configure Models
25
+ * exposes one required Default plus four optional models — same multi-picker
26
+ * shape as Claude's Default/Sonnet/Opus/Haiku, but for the Desktop list rather
27
+ * than Claude Code env roles. Stable ids stay `list2`…`list5` (binding storage).
28
+ */
29
+ var CODEX_DESKTOP_MODEL_ROLES = [
30
+ {
31
+ id: "default",
32
+ label: "Default"
33
+ },
34
+ {
35
+ id: "list2",
36
+ label: "Model 2"
37
+ },
38
+ {
39
+ id: "list3",
40
+ label: "Model 3"
41
+ },
42
+ {
43
+ id: "list4",
44
+ label: "Model 4"
45
+ },
46
+ {
47
+ id: "list5",
48
+ label: "Model 5"
49
+ }
50
+ ];
51
+ var DEFAULT_MODEL_ROLE = [{
52
+ id: "default",
53
+ label: "Default"
54
+ }];
55
+ /**
56
+ * Roles an app can map when applying a proxy/profile.
57
+ *
58
+ * Prefer passing a `ClientAdapter` (or anything with `modelRoles()`). The string
59
+ * overload is only a fallback for call sites that have not resolved the
60
+ * adapter yet — it returns the neutral single-role default so third-party
61
+ * clients never inherit Anthropic's multi-role labels by id coincidence.
62
+ */
63
+ function modelRolesForClient(client) {
64
+ if (typeof client === "string") return DEFAULT_MODEL_ROLE;
65
+ if (typeof client.modelRoles === "function") return client.modelRoles();
66
+ return DEFAULT_MODEL_ROLE;
67
+ }
68
+ /**
69
+ * Default role → model id when pointing a client at a proxy for this provider.
70
+ * Values are bare ids suitable for Claude Code / Codex env injection.
71
+ *
72
+ * Pass a ClientAdapter (or anything with modelRoles) as the second argument so
73
+ * multi-role clients keep their slots. A bare client id falls back to the
74
+ * neutral single-role default.
75
+ */
76
+ function defaultModelRolesForProxy(providerId, client, lookup) {
77
+ const roles = modelRolesForClient(client);
78
+ const template = providerModelTemplate(providerId, lookup);
79
+ const out = {};
80
+ for (const role of roles) {
81
+ const v = template[role.id] ?? template.default;
82
+ if (v) out[role.id] = v;
83
+ }
84
+ return out;
85
+ }
86
+ /**
87
+ * Reconcile provider templates with the models the proxy actually exposes.
88
+ * Existing user-selected roles are merged later and therefore are preserved.
89
+ *
90
+ * Only applies to providers that declare `roleModelHints()` — i.e. those whose
91
+ * roles are filled from live discovery. Without hints the declared defaults are
92
+ * already authoritative and must not be second-guessed against a live list.
93
+ */
94
+ function modelDefaultsForSuggestions(providerId, defaults, suggestions, lookup) {
95
+ const hints = lookup?.(providerId)?.roleModelHints?.();
96
+ if (!suggestions.length || !hints) return defaults;
97
+ const ids = new Set(suggestions);
98
+ const lower = suggestions.map((id) => [id, id.toLowerCase()]);
99
+ const pick = (role, current) => {
100
+ if (current && ids.has(current)) return current;
101
+ for (const token of hints[role] ?? []) {
102
+ const match = lower.find(([, id]) => id.includes(token));
103
+ if (match) return match[0];
104
+ }
105
+ return suggestions[0];
106
+ };
107
+ const out = { ...defaults };
108
+ for (const role of Object.keys(out)) out[role] = pick(role, out[role]) ?? out[role];
109
+ return out;
110
+ }
111
+ /**
112
+ * Merge user roles over defaults. Empty strings are dropped.
113
+ * Ensures `default` is set when any role is present (from default role or first value).
114
+ */
115
+ function normalizeModelRoles(roles, defaults) {
116
+ const merged = { ...defaults };
117
+ if (roles) for (const [k, v] of Object.entries(roles)) {
118
+ const t = typeof v === "string" ? v.trim() : "";
119
+ if (t) merged[k] = t;
120
+ }
121
+ for (const k of Object.keys(merged)) if (!merged[k]?.trim()) delete merged[k];
122
+ return merged;
123
+ }
124
+ /**
125
+ * Role → model template for a provider.
126
+ *
127
+ * A provider that declares `roleDefaults()` owns the answer. Otherwise we fall
128
+ * back to a single generic `default` role: inventing Claude/GPT ids for an
129
+ * unknown provider produces model names its API will reject.
130
+ */
131
+ function providerModelTemplate(providerId, lookup) {
132
+ const declared = lookup?.(providerId)?.roleDefaults?.();
133
+ if (declared) return declared;
134
+ return { default: "default" };
135
+ }
136
+ //#endregion
137
+ export { CLAUDE_MODEL_ROLES, CODEX_DESKTOP_MODEL_ROLES, DEFAULT_MODEL_ROLE, defaultModelRolesForProxy, modelDefaultsForSuggestions, modelRolesForClient, modelRolesFromClientOptions, normalizeModelRoles };
138
+
139
+ //# sourceMappingURL=model-roles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model-roles.js","names":[],"sources":["../../src/clients/model-roles.ts"],"sourcesContent":["/**\n * Client-shaped model roles + provider default maps for proxy → app apply.\n *\n * Model *policy* (which model fills which role, what to suggest, what to fall\n * back to) belongs to the provider, not to this module. Callers pass a\n * `ModelPolicy` resolved from the provider or catalog registry; when none is\n * supplied these functions return generic, vendor-neutral answers rather than\n * guessing a specific vendor's model ids.\n */\n\nimport type { ClientAdapter, ClientModelRole, ModelPolicy } from '../types';\nimport { OPENAI_MODELS, ANTHROPIC_MODELS } from '../catalog/providers';\n\n/** Resolves a provider/catalog id to its model policy, if it has one. */\nexport type ModelPolicyLookup = (providerId: string) => ModelPolicy | undefined;\n\nexport const CLAUDE_MODEL_ROLES: readonly ClientModelRole[] = [\n { id: 'default', label: 'Default' },\n { id: 'sonnet', label: 'Sonnet' },\n { id: 'opus', label: 'Opus' },\n { id: 'haiku', label: 'Haiku' },\n] as const;\n\n/**\n * Codex Desktop only surfaces ~5 allowlisted GPT picker slots. AnyPick maps\n * Hub models onto those slots (see `codex-desktop-catalog.ts`). Configure Models\n * exposes one required Default plus four optional models — same multi-picker\n * shape as Claude's Default/Sonnet/Opus/Haiku, but for the Desktop list rather\n * than Claude Code env roles. Stable ids stay `list2`…`list5` (binding storage).\n */\nexport const CODEX_DESKTOP_MODEL_ROLES: readonly ClientModelRole[] = [\n { id: 'default', label: 'Default' },\n { id: 'list2', label: 'Model 2' },\n { id: 'list3', label: 'Model 3' },\n { id: 'list4', label: 'Model 4' },\n { id: 'list5', label: 'Model 5' },\n] as const;\n\nexport const DEFAULT_MODEL_ROLE: readonly ClientModelRole[] = [\n { id: 'default', label: 'Default' },\n] as const;\n\n/**\n * Roles an app can map when applying a proxy/profile.\n *\n * Prefer passing a `ClientAdapter` (or anything with `modelRoles()`). The string\n * overload is only a fallback for call sites that have not resolved the\n * adapter yet — it returns the neutral single-role default so third-party\n * clients never inherit Anthropic's multi-role labels by id coincidence.\n */\nexport function modelRolesForClient(\n client: Pick<ClientAdapter, 'id' | 'modelRoles'> | string,\n): readonly ClientModelRole[] {\n if (typeof client === 'string') {\n return DEFAULT_MODEL_ROLE;\n }\n if (typeof client.modelRoles === 'function') {\n return client.modelRoles();\n }\n return DEFAULT_MODEL_ROLE;\n}\n\n/**\n * Default role → model id when pointing a client at a proxy for this provider.\n * Values are bare ids suitable for Claude Code / Codex env injection.\n *\n * Pass a ClientAdapter (or anything with modelRoles) as the second argument so\n * multi-role clients keep their slots. A bare client id falls back to the\n * neutral single-role default.\n */\nexport function defaultModelRolesForProxy(\n providerId: string,\n client: Pick<ClientAdapter, 'id' | 'modelRoles'> | string,\n lookup?: ModelPolicyLookup,\n): Record<string, string> {\n const roles = modelRolesForClient(client);\n const template = providerModelTemplate(providerId, lookup);\n const out: Record<string, string> = {};\n for (const role of roles) {\n const v = template[role.id] ?? template.default;\n if (v) {\n out[role.id] = v;\n }\n }\n return out;\n}\n\n/**\n * Reconcile provider templates with the models the proxy actually exposes.\n * Existing user-selected roles are merged later and therefore are preserved.\n *\n * Only applies to providers that declare `roleModelHints()` — i.e. those whose\n * roles are filled from live discovery. Without hints the declared defaults are\n * already authoritative and must not be second-guessed against a live list.\n */\nexport function modelDefaultsForSuggestions(\n providerId: string,\n defaults: Record<string, string>,\n suggestions: string[],\n lookup?: ModelPolicyLookup,\n): Record<string, string> {\n const hints = lookup?.(providerId)?.roleModelHints?.();\n if (!suggestions.length || !hints) {\n return defaults;\n }\n const ids = new Set(suggestions);\n const lower = suggestions.map((id) => [id, id.toLowerCase()] as const);\n const pick = (role: string, current: string | undefined): string | undefined => {\n if (current && ids.has(current)) {\n return current;\n }\n for (const token of hints[role] ?? []) {\n const match = lower.find(([, id]) => id.includes(token));\n if (match) {\n return match[0];\n }\n }\n return suggestions[0];\n };\n const out = { ...defaults };\n for (const role of Object.keys(out)) {\n out[role] = pick(role, out[role]) ?? out[role];\n }\n return out;\n}\n\n/** Autocomplete candidates for a proxy provider (unique bare ids + aliases). */\nexport function suggestModelsForProxyProvider(\n providerId: string,\n lookup?: ModelPolicyLookup,\n): string[] {\n const map = providerSuggestMap(providerId, lookup);\n const seen = new Set<string>();\n const out: string[] = [];\n const push = (v: string) => {\n if (!v || seen.has(v)) {\n return;\n }\n seen.add(v);\n out.push(v);\n };\n for (const [alias, id] of Object.entries(map)) {\n push(id);\n push(alias);\n }\n // Role-friendly short names first-class for Claude Code\n for (const extra of roleFriendlyExtras(providerId, lookup)) {\n push(extra);\n }\n return out;\n}\n\n/**\n * Provider-declared friendly ids, or a generic multi-vendor list for an unknown\n * provider. A provider that declares a policy but no friendly models gets an\n * empty list — that is an answer, not a gap.\n */\nfunction roleFriendlyExtras(providerId: string, lookup?: ModelPolicyLookup): readonly string[] {\n const policy = lookup?.(providerId);\n if (policy) {\n return policy.roleFriendlyModels?.() ?? [];\n }\n return [\n 'claude-sonnet-5',\n 'claude-opus-5',\n 'claude-haiku-4-5',\n 'gpt-5.6-sol',\n 'gemini-3.1-pro-preview',\n 'gemini-3.6-flash',\n ];\n}\n\n/**\n * Merge user roles over defaults. Empty strings are dropped.\n * Ensures `default` is set when any role is present (from default role or first value).\n */\nexport function normalizeModelRoles(\n roles: Record<string, string> | undefined,\n defaults: Record<string, string>,\n): Record<string, string> {\n const merged: Record<string, string> = { ...defaults };\n if (roles) {\n for (const [k, v] of Object.entries(roles)) {\n const t = typeof v === 'string' ? v.trim() : '';\n if (t) {\n merged[k] = t;\n }\n }\n }\n // Drop empty\n for (const k of Object.keys(merged)) {\n if (!merged[k]?.trim()) {\n delete merged[k];\n }\n }\n return merged;\n}\n\n// Moved to core so core does not take value imports from the clients package.\nexport { modelRolesFromClientOptions } from '../core/model-roles';\n\n/**\n * Role → model template for a provider.\n *\n * A provider that declares `roleDefaults()` owns the answer. Otherwise we fall\n * back to a single generic `default` role: inventing Claude/GPT ids for an\n * unknown provider produces model names its API will reject.\n */\nfunction providerModelTemplate(\n providerId: string,\n lookup?: ModelPolicyLookup,\n): Record<string, string> {\n const declared = lookup?.(providerId)?.roleDefaults?.();\n if (declared) {\n return declared;\n }\n return { default: 'default' };\n}\n\n/**\n * Alias → id suggestion map for a provider.\n *\n * A provider that declares a policy owns its own map (possibly empty, when its\n * catalog is only knowable from a live `/v1/models` call). Only an unknown\n * provider falls back to the built-in Anthropic+OpenAI aliases.\n */\nfunction providerSuggestMap(\n providerId: string,\n lookup?: ModelPolicyLookup,\n): Record<string, string> {\n const policy = lookup?.(providerId);\n if (policy) {\n return policy.suggestModels?.() ?? {};\n }\n return {\n ...ANTHROPIC_MODELS,\n ...OPENAI_MODELS,\n };\n}\n"],"mappings":";;;AAgBA,IAAa,qBAAiD;CAC5D;EAAE,IAAI;EAAW,OAAO;CAAU;CAClC;EAAE,IAAI;EAAU,OAAO;CAAS;CAChC;EAAE,IAAI;EAAQ,OAAO;CAAO;CAC5B;EAAE,IAAI;EAAS,OAAO;CAAQ;AAChC;;;;;;;;AASA,IAAa,4BAAwD;CACnE;EAAE,IAAI;EAAW,OAAO;CAAU;CAClC;EAAE,IAAI;EAAS,OAAO;CAAU;CAChC;EAAE,IAAI;EAAS,OAAO;CAAU;CAChC;EAAE,IAAI;EAAS,OAAO;CAAU;CAChC;EAAE,IAAI;EAAS,OAAO;CAAU;AAClC;AAEA,IAAa,qBAAiD,CAC5D;CAAE,IAAI;CAAW,OAAO;AAAU,CACpC;;;;;;;;;AAUA,SAAgB,oBACd,QAC4B;CAC5B,IAAI,OAAO,WAAW,UACpB,OAAO;CAET,IAAI,OAAO,OAAO,eAAe,YAC/B,OAAO,OAAO,WAAW;CAE3B,OAAO;AACT;;;;;;;;;AAUA,SAAgB,0BACd,YACA,QACA,QACwB;CACxB,MAAM,QAAQ,oBAAoB,MAAM;CACxC,MAAM,WAAW,sBAAsB,YAAY,MAAM;CACzD,MAAM,MAA8B,CAAC;CACrC,KAAK,MAAM,QAAQ,OAAO;EACxB,MAAM,IAAI,SAAS,KAAK,OAAO,SAAS;EACxC,IAAI,GACF,IAAI,KAAK,MAAM;CAEnB;CACA,OAAO;AACT;;;;;;;;;AAUA,SAAgB,4BACd,YACA,UACA,aACA,QACwB;CACxB,MAAM,QAAQ,SAAS,UAAU,CAAC,EAAE,iBAAiB;CACrD,IAAI,CAAC,YAAY,UAAU,CAAC,OAC1B,OAAO;CAET,MAAM,MAAM,IAAI,IAAI,WAAW;CAC/B,MAAM,QAAQ,YAAY,KAAK,OAAO,CAAC,IAAI,GAAG,YAAY,CAAC,CAAU;CACrE,MAAM,QAAQ,MAAc,YAAoD;EAC9E,IAAI,WAAW,IAAI,IAAI,OAAO,GAC5B,OAAO;EAET,KAAK,MAAM,SAAS,MAAM,SAAS,CAAC,GAAG;GACrC,MAAM,QAAQ,MAAM,MAAM,GAAG,QAAQ,GAAG,SAAS,KAAK,CAAC;GACvD,IAAI,OACF,OAAO,MAAM;EAEjB;EACA,OAAO,YAAY;CACrB;CACA,MAAM,MAAM,EAAE,GAAG,SAAS;CAC1B,KAAK,MAAM,QAAQ,OAAO,KAAK,GAAG,GAChC,IAAI,QAAQ,KAAK,MAAM,IAAI,KAAK,KAAK,IAAI;CAE3C,OAAO;AACT;;;;;AAoDA,SAAgB,oBACd,OACA,UACwB;CACxB,MAAM,SAAiC,EAAE,GAAG,SAAS;CACrD,IAAI,OACF,KAAK,MAAM,CAAC,GAAG,MAAM,OAAO,QAAQ,KAAK,GAAG;EAC1C,MAAM,IAAI,OAAO,MAAM,WAAW,EAAE,KAAK,IAAI;EAC7C,IAAI,GACF,OAAO,KAAK;CAEhB;CAGF,KAAK,MAAM,KAAK,OAAO,KAAK,MAAM,GAChC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,GACnB,OAAO,OAAO;CAGlB,OAAO;AACT;;;;;;;;AAYA,SAAS,sBACP,YACA,QACwB;CACxB,MAAM,WAAW,SAAS,UAAU,CAAC,EAAE,eAAe;CACtD,IAAI,UACF,OAAO;CAET,OAAO,EAAE,SAAS,UAAU;AAC9B"}
@@ -0,0 +1,7 @@
1
+ import type { ClientAdapter } from '../types.js';
2
+ import { Registry } from '../core/registry.js';
3
+ export declare class ClientRegistry extends Registry<ClientAdapter> {
4
+ constructor();
5
+ }
6
+ export declare const clientRegistry: ClientRegistry;
7
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/clients/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE5C,qBAAa,cAAe,SAAQ,QAAQ,CAAC,aAAa,CAAC;IACzD,cAMC;CACF;AAED,eAAO,MAAM,cAAc,gBAAuB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { Registry } from "../core/registry.js";
2
+ //#region src/clients/registry.ts
3
+ var ClientRegistry = class extends Registry {
4
+ constructor() {
5
+ super({
6
+ kind: "Client",
7
+ duplicateCode: "DUPLICATE_CLIENT",
8
+ unknownCode: "UNKNOWN_CLIENT"
9
+ });
10
+ }
11
+ };
12
+ new ClientRegistry();
13
+ //#endregion
14
+ export { ClientRegistry };
15
+
16
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","names":[],"sources":["../../src/clients/registry.ts"],"sourcesContent":["import type { ClientAdapter } from '../types';\nimport { Registry } from '../core/registry';\n\nexport class ClientRegistry extends Registry<ClientAdapter> {\n constructor() {\n super({\n kind: 'Client',\n duplicateCode: 'DUPLICATE_CLIENT',\n unknownCode: 'UNKNOWN_CLIENT',\n });\n }\n}\n\nexport const clientRegistry = new ClientRegistry();\n"],"mappings":";;AAGA,IAAa,iBAAb,cAAoC,SAAwB;CAC1D,cAAc;EACZ,MAAM;GACJ,MAAM;GACN,eAAe;GACf,aAAa;EACf,CAAC;CACH;AACF;AAE8B,IAAI,eAAe"}